(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-722e9ff8"],{"04c4":function(e,t,i){"use strict";i.d(t,"a",(function(){return l}));var r=i("c120"),s=i("ce76");const a=5e4,n={minX:0,minY:0,maxX:0,maxY:0};function o(e,t,i){n.minX=t[0],n.minY=t[1],n.maxX=t[2],n.maxY=t[3],e.search(n,i)}class l{constructor(){this._indexInvalid=!1,this._boundsToLoad=[],this._boundsById=new Map,this._idByBounds=new Map,this._index=new s["a"](9,Object(r["a"])("esri-csp-restrictions")?e=>({minX:e[0],minY:e[1],maxX:e[2],maxY:e[3]}):["[0]","[1]","[2]","[3]"]),this._loadIndex=()=>{if(this._indexInvalid){const e=new Array(this._idByBounds.size);let t=0;this._idByBounds.forEach((i,r)=>{e[t++]=r}),this._indexInvalid=!1,this._index.clear(),this._index.load(e)}else this._boundsToLoad.length&&(this._index.load(this._boundsToLoad.filter(e=>this._idByBounds.has(e))),this._boundsToLoad.length=0)}}clear(){this._indexInvalid=!1,this._boundsToLoad.length=0,this._boundsById.clear(),this._idByBounds.clear(),this._index.clear()}delete(e){const t=this._boundsById.get(e);this._boundsById.delete(e),t&&(this._idByBounds.delete(t),this._indexInvalid||this._index.remove(t))}forEachInBounds(e,t){this._loadIndex(),o(this._index,e,e=>t(this._idByBounds.get(e)))}get(e){return this._boundsById.get(e)}has(e){return this._boundsById.has(e)}invalidateIndex(){this._indexInvalid||(this._indexInvalid=!0,this._boundsToLoad.length=0)}set(e,t){if(!this._indexInvalid){const t=this._boundsById.get(e);t&&(this._index.remove(t),this._idByBounds.delete(t))}this._boundsById.set(e,t),t&&(this._idByBounds.set(t,e),this._indexInvalid||(this._boundsToLoad.push(t),this._boundsToLoad.length>a&&this._loadIndex()))}}},"2ab4":function(e,t,i){"use strict";i.d(t,"a",(function(){return B}));var r=i("a4ee"),s=i("ce50"),a=i("b2b2"),n=i("477c"),o=i("59b2"),l=(i("b50f"),i("c120"),i("cea0"),i("d386")),u=i("d3cf"),c=i("b9c7"),h=i("69dd"),d=i("648c"),p=i("a5de"),m=i("a207"),f=i("f0b9"),b=i("9096"),y=i("c649"),g=i("e92d"),_=i("e431"),O=i("0b2d"),F=i("8188"),j=i("49a0"),v=i("1a54"),x=i("6655"),E=i("9392"),w=i("8152"),T=i("6517"),C=i("c1da"),R=i("01f2"),I=i("7585"),S=i("b7c2"),D=i("0278"),M=i("3bd5"),P=i("6061"),N=i("b7bd"),V=i("6795");const k=g["a"].getLogger("esri.views.3d.layers.support.HeatmapFeatureProcessor"),L=50;let q=class extends b["a"]{constructor(e){super(e),this.type="heatmap",this.filterVisibility={filterChanged(){},dirty:!1},this.preferredUpdatePolicy=S["m"].ASYNC,this.dataExtent=null,this._renderGeometries=new Map,this._material=new V["a"]({}),this._materialWithField=new V["a"]({isAttributeDriven:!0}),this._fieldTotal=0,this._memoryFactor=1}initialize(){this._featureStore=new T["a"]({geometryType:"esriGeometryPoint",hasZ:this.hasZ,hasM:this.hasM});const{colorBufferFloat:e,textureFloat:t}=this._renderView.capabilities,{floatBufferBlendWorking:i}=this._renderView.renderingContext.driverTest;if(null==t||!t.textureFloat)throw new s["a"]("heatmap:missing-texture-float","HeatmapRenderer requires WebGL2 or the WebGL1 extension OES_texture_float.");if(null==e||!e.textureFloat)throw new s["a"]("heatmap:missing-color-buffer-float","HeatmapRenderer requires the WebGL2 extension EXT_color_buffer_float or the WebGL1 extension WEBGL_color_buffer_float.");if(null==e||!e.floatBlend)throw new s["a"]("heatmap:missing-float-blend","HeatmapRenderer requires the WebGL extension EXT_float_blend.");if(!i)throw new s["a"]("heatmap:missing-float-blend","HeatmapRenderer requires the WebGL extension EXT_float_blend. This device claims support for it, but does not actually support it.");this._memoryFactor=this.owner.view.resourceController.memoryController.memoryFactor,this.updatingHandles.addOnCollectionChange(()=>this._loadedPointGraphics,e=>this._onLoadedFeaturesChange(e),n["a"]),this.updatingHandles.addWhen(()=>this._materialParameters,e=>this._forEachMaterial(t=>t.setParameters(e)),n["a"]),this.updatingHandles.add(()=>this._heatmapRendererField,()=>{this._recreate()},n["c"]),this.updatingHandles.add(()=>({fieldName:this._heatmapRendererFieldName,numeric:this._heatmapRendererFieldIsNumeric}),({fieldName:e,numeric:t})=>{if(Object(a["k"])(e)&&t){let t=0;this._featureStore.forEach(i=>{var r;t+=null!=(r=i.attributes[e])?r:0}),this._fieldTotal=t}else this._fieldTotal=this._featureStore.numFeatures},n["a"]),this.handles.add([Object(n["e"])(()=>({fieldName:this._heatmapRendererFieldName,field:this._heatmapRendererField}),({fieldName:e,field:t})=>{var i;e&&!t&&k.warn(`Heatmap renderer field '${e}' for layer '${null!=(i=this.layer.title)?i:this.layer.id}' not found`)}),Object(n["e"])(()=>({field:this._heatmapRendererField,numeric:this._heatmapRendererFieldIsNumeric}),({field:e,numeric:t})=>{var i;Object(a["k"])(e)&&!t&&k.warn(`Heatmap renderer field '${e.name}' for layer '${null!=(i=this.layer.title)?i:this.layer.id}' does not contain numeric values and cannot be used to drive the heatmap density`)}),this.owner.view.resourceController.memoryController.events.on("quality-changed",()=>{var e,t,i,r,s;this._memoryFactor=null!=(e=null==(t=this.owner)||null==(i=t.view)||null==(r=i.resourceController)||null==(s=r.memoryController)?void 0:s.memoryFactor)?e:1})])}destroy(){this._overlayRenderer.removeGeometries(Array.from(this._renderGeometries.values()),this.owner,M["a"].Geometry.REMOVE),this._renderGeometries.clear(),this._material=Object(a["e"])(this._material),this._materialWithField=Object(a["e"])(this._materialWithField),this._featureStore.clear(),this._featureStore=null}get layer(){return this.owner.layer}get featureStore(){return this._featureStore}get updating(){return this.updatingHandles.updating}get updatingRemaining(){return 0}get suspendInfo(){return{}}get legendEnabled(){return!0}get displayFeatureLimit(){var e,t;const i=this._memoryFactor,r=null==(e=this.owner)||null==(t=e.view)?void 0:t.qualitySettings,s=r?Math.ceil(r.heatmap.maxTotalNumberOfFeatures*i):0;return{minimumTotalNumberOfFeatures:0,maximumTotalNumberOfFeatures:s,maximumTotalNumberOfPrimitives:2*s,maximumNumberOfFeatures:s}}get hasZ(){return"hasZ"in this.layer&&this.layer.hasZ}get hasM(){return"hasM"in this.layer&&this.layer.hasM}get scaleVisibilitySuspended(){return!1}get usedMemory(){var e,t,i,r,s;const n=this.usedMemoryPerFeature*this._featureStore.numFeatures,{R32F:o}=null==(e=this._renderView)||null==(t=e.capabilities)?void 0:t.colorBufferFloat,l=null!=o?1:4,u=4,c=null!=(i=Math.ceil((null==(r=this._overlayRenderer)||null==(s=r.overlays[0])?void 0:s.resolution)*this._densityMapPixelRatio))?i:0;return c*c*l*u+n+(Object(a["k"])(this._heatmapRenderer)?3*Math.min(this._heatmapRenderer.blurRadius,L):0)*l*u}get usedMemoryPerFeature(){if(0===this._featureStore.numFeatures)return 0;let e=0;this._featureStore.forEach(t=>e+=Object(f["b"])(t.attributes)),e/=this._featureStore.numFeatures;const t=Object(f["d"])(),i=6;return i*Object(f["c"])([0,0,0],t)+i*Object(f["c"])([0,0],t)+(this._heatmapRendererFieldIsNumeric?i*t:0)+e}get unprocessedMemoryEstimate(){return 0}get performanceInfo(){return{core:{visible:this._featureStore.numFeatures,missing:0,pending:0},elevationUpdating:!1,visibilityFrustum:!0,visibilityScale:!0}}get _overlayRenderer(){return this.owner.view.basemapTerrain.overlayManager.renderer}get _overlaySpatialReference(){return Object(a["t"])(this._overlayRenderer.spatialReference)}get _materialParameters(){return{...this._blurRadiusParameters,...this._densityParameters,colorRampData:this._colorRampData,pixelRatio:this._densityMapPixelRatio}}get _densityParameters(){const e=this._heatmapRenderer;return Object(a["j"])(e)?null:{minDensity:e.minPixelIntensity,maxDensity:e.maxPixelIntensity,fieldTotal:this._fieldTotal}}get _blurRadiusParameters(){return Object(a["b"])(this._heatmapRenderer,({referenceScale:e,blurRadius:t})=>({searchRadius:this._clampSearchRadius(t),resolutionForScale:0===e?0:Object(j["a"])(e,this.owner.view.spatialReference)}))}get _colorRampData(){return Object(a["b"])(this._heatmapRenderer,e=>Object(R["d"])(e.colorStops))}get _densityMapPixelRatio(){var e,t,i;const r=this._memoryFactor;return(null!=(e=null==(t=this.owner)||null==(i=t.view)?void 0:i.qualitySettings.heatmap.pixelRatio)?e:1)*Math.sqrt(r)}get _renderView(){return this.owner.view._stage.renderView}get _featuresArePoints(){return"point"===this.layer.geometryType}get _loadedPointGraphics(){return this.owner.loadedGraphics}get _heatmapRenderer(){const e=this.layer.renderer;return"heatmap"===(null==e?void 0:e.type)?e:null}get _heatmapRendererFieldName(){return Object(a["b"])(this._heatmapRenderer,e=>e.field)}get _heatmapRendererField(){return Object(a["b"])(this._heatmapRendererFieldName,e=>this.layer.fieldsIndex.get(e))}get _heatmapRendererFieldIsNumeric(){const e=this._heatmapRendererField;return!Object(a["j"])(e)&&Object(C["p"])(e)}async whenGraphicBounds(){return null}computeAttachmentOrigin(){return null}highlight(){return A}maskOccludee(){return A}setObjectIdVisibility(){}async setup(){}_onLoadedFeaturesChange(e){if(!this._featuresArePoints)return;const{objectIdField:t}=this.layer;this._featureStore.removeManyById(e.removed.map(e=>Object(v["g"])(e,t))),this._featureStore.addMany(e.added.map(e=>new E["a"](Object(x["g"])(new w["a"],e.geometry),e.attributes,Object(a["b"])(e.centroid,e=>Object(x["g"])(new w["a"],e)),Object(v["g"])(e,t))));const i=e.added,r=e.removed;this._fieldTotal+=this._computeFieldTotalChange(i,r);const s=Object(a["o"])(r,({uid:e})=>{const t=this._renderGeometries.get(e);return this._renderGeometries.delete(e),t}),n=i.map(e=>{const t=this._pointGraphicToRenderGeometry(e);return this._renderGeometries.set(e.uid,t),t});s.length>0&&this._overlayRenderer.removeGeometries(s,this.owner,M["a"].Geometry.REMOVE),n.length>0&&this._overlayRenderer.addGeometries(n,this.owner,M["a"].Geometry.ADD,!0),(n.length>0||s.length>0)&&this._renderView.requestRender()}_recreate(){if(!this._loadedPointGraphics)return;const e=this._loadedPointGraphics.toArray();this._onLoadedFeaturesChange({added:e,removed:e})}_pointGraphicToRenderGeometry(e){const t=this._heatmapRendererFieldName,i=Object(a["k"])(t)?this._materialWithField:this._material,r=Object(O["f"])();Object(F["t"])(e.geometry,r,this._overlaySpatialReference),r[2]=I["a"];const s=[[N["a"].POSITION,{data:r,size:r.length}]],n=this._heatmapRendererFieldIsNumeric;var o;Object(a["k"])(t)&&s.push([N["a"].FEATUREATTRIBUTE,{data:[n&&null!=(o=e.attributes[t])?o:0],size:1}]);const l=new P["a"](new D["a"](s,null,S["h"].Point),i,{layerUid:this.layer.uid,graphicUid:e.uid});return Object(_["m"])(l.boundingSphere,r),l}_forEachMaterial(e){e(this._material),e(this._materialWithField)}_computeFieldTotalChange(e,t){if(Object(a["j"])(this._heatmapRendererFieldName)||!this._heatmapRendererFieldIsNumeric)return e.length-t.length;const i=this._heatmapRendererFieldName,r=(e,t)=>{var r;return e+(null!=(r=t.attributes[i])?r:0)};return e.reduce(r,0)-t.reduce(r,0)}_clampSearchRadius(e){return e>L&&k.warnOnce(`SceneView supports a maximum blurRadius of ${L} for HeatmapRenderer.`),Math.min(e,L)}};Object(r["a"])([Object(o["b"])()],q.prototype,"type",void 0),Object(r["a"])([Object(o["b"])({constructOnly:!0})],q.prototype,"owner",void 0),Object(r["a"])([Object(o["b"])()],q.prototype,"layer",null),Object(r["a"])([Object(o["b"])()],q.prototype,"featureStore",null),Object(r["a"])([Object(o["b"])()],q.prototype,"updating",null),Object(r["a"])([Object(o["b"])()],q.prototype,"updatingRemaining",null),Object(r["a"])([Object(o["b"])()],q.prototype,"suspendInfo",null),Object(r["a"])([Object(o["b"])()],q.prototype,"legendEnabled",null),Object(r["a"])([Object(o["b"])()],q.prototype,"filterVisibility",void 0),Object(r["a"])([Object(o["b"])()],q.prototype,"displayFeatureLimit",null),Object(r["a"])([Object(o["b"])()],q.prototype,"preferredUpdatePolicy",void 0),Object(r["a"])([Object(o["b"])()],q.prototype,"hasZ",null),Object(r["a"])([Object(o["b"])()],q.prototype,"hasM",null),Object(r["a"])([Object(o["b"])()],q.prototype,"dataExtent",void 0),Object(r["a"])([Object(o["b"])()],q.prototype,"_featureStore",void 0),Object(r["a"])([Object(o["b"])()],q.prototype,"_overlayRenderer",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_overlaySpatialReference",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_materialParameters",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_densityParameters",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_blurRadiusParameters",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_colorRampData",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_densityMapPixelRatio",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_renderGeometries",void 0),Object(r["a"])([Object(o["b"])()],q.prototype,"_material",void 0),Object(r["a"])([Object(o["b"])()],q.prototype,"_materialWithField",void 0),Object(r["a"])([Object(o["b"])()],q.prototype,"_renderView",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_featuresArePoints",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_loadedPointGraphics",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_heatmapRenderer",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_heatmapRendererFieldName",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_heatmapRendererField",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_heatmapRendererFieldIsNumeric",null),Object(r["a"])([Object(o["b"])()],q.prototype,"_fieldTotal",void 0),Object(r["a"])([Object(o["b"])()],q.prototype,"_memoryFactor",void 0),q=Object(r["a"])([Object(l["a"])("esri.views.3d.layers.support.HeatmapFeatureProcessor")],q);const A=Object(y["b"])();var U=i("eec2"),G=i("9305");const B=e=>{let t=class extends e{constructor(){super(...arguments),this.controller=null,this.updatePolicy=S["m"].SYNC,this.suspendResumeExtentMode="computed",this.slicePlaneEnabled=!1,this.drapeSourceType=d["b"].Features,this.fullExtentInLocalViewSpatialReference=null,this.suspendResumeExtent=null,this._controllerCreated=!1,this.clippingExtent=null,this.supportsHeightUnitConversion=!0,this.pendingController=null,this.queryEngine=null}initialize(){const e=this.layer;"isTable"in e&&e.isTable?this.addResolvingPromise(Promise.reject(new s["a"]("featurelayerview:table-not-supported","table feature layer can't be displayed",{layer:e}))):(this.addResolvingPromise(this._validateGeometryType()),this.updatingHandles.add(()=>this.layer.renderer,e=>this._recreateProcessor(e),n["a"]),this.addResolvingPromise((async()=>{const e=await Object(U["a"])(this);this.fullExtentInLocalViewSpatialReference=e,await this._initializeController()})()),this.updatingHandles.add(()=>this.updatePolicy,e=>this.processor.preferredUpdatePolicy=e),this.queryEngine=new m["a"]({layerView:this,priority:G["c"].FEATURE_QUERY_ENGINE}),this.notifyChange("updating"))}destroy(){this._destroyPendingController(),this.controller=Object(a["d"])(this.controller),this._set("processor",Object(a["d"])(this.processor)),this.queryEngine=Object(a["d"])(this.queryEngine),this.loadedGraphics=null}_destroyPendingController(){this.pendingController=Object(a["d"])(this.pendingController)}get legendEnabled(){var e;return this.canResume()&&(null==(e=this.processor)?void 0:e.legendEnabled)}get graphics3DProcessor(){var e;return"graphics-3d"===(null==(e=this.processor)?void 0:e.type)?this.processor:null}get heatmapProcessor(){var e;return"heatmap"===(null==(e=this.processor)?void 0:e.type)?this.processor:null}getGraphicFromGraphicUid(e){var t;let i=null;return null==(t=this.loadedGraphics)||t.forEach(t=>{t.uid===e&&(i=Object(u["c"])(t,this.layer))}),i}whenGraphicBounds(e,t){var i;return null==(i=this.processor)?void 0:i.whenGraphicBounds(e,t)}computeAttachmentOrigin(e,t){var i;return null==(i=this.processor)?void 0:i.computeAttachmentOrigin(e,t)}queryFeatures(e,t){return this.queryEngine.executeQuery(this._ensureQuery(e),Object(a["i"])(t,"signal"))}queryObjectIds(e,t){return this.queryEngine.executeQueryForIds(this._ensureQuery(e),Object(a["i"])(t,"signal"))}queryFeatureCount(e,t){return this.queryEngine.executeQueryForCount(this._ensureQuery(e),Object(a["i"])(t,"signal"))}queryExtent(e,t){return this.queryEngine.executeQueryForExtent(this._ensureQuery(e),Object(a["i"])(t,"signal"))}_ensureQuery(e){return Object(a["j"])(e)?this.createQuery():h["a"].from(e)}highlight(e){return this.processor.highlight(e,this.layer.objectIdField)}maskOccludee(e){return this.processor.maskOccludee(e)}canResume(){var e;return super.canResume()&&!(null!=(e=this.processor)&&e.scaleVisibilitySuspended)}getSuspendInfo(){const e=super.getSuspendInfo();return this.processor?{...e,...this.processor.suspendInfo}:e}isUpdating(){var e,t,i;return!(!this.processor||this.processor.destroyed)&&!(this._controllerCreated&&(null==(e=this.controller)||!e.updating)&&null!=(t=this.view)&&null!=(i=t.basemapTerrain)&&i.ready&&!this.processor.updating)}async _initializeController(){const e=this.createController();this.pendingController=e,await e.when(),this._setControllerWhenInitialized(e)}async _setControllerWhenInitialized(e){try{await this.when()}catch(t){}this._controllerCreated=!0,this.notifyChange("updating"),this.isResolved()&&!this.destroyed?(await Object(n["g"])(()=>{var e,t;return null==(e=this.view)||null==(t=e.basemapTerrain)?void 0:t.ready}),this.beforeSetController(e),this.pendingController=null,this.controller=e,this.loadedGraphics=e.graphics,this.notifyChange("updating")):this._destroyPendingController()}_updateClippingExtent(e){if(this.clippingExtent=e,!this.controller)return!1;switch(this.controller.type){case"stream":return!1;case"feature-tile-3d":return this.controller.extent=e,!0}}async _validateGeometryType(){switch(this.layer.geometryType){case"multipatch":case"multipoint":return Promise.reject(new s["a"]("featurelayerview3d:unsupported-geometry-type","Unsupported geometry type ${geometryType}",{geometryType:this.layer.geometryType}))}}_recreateProcessor(e){var t,i;const r="heatmap"===(null==e?void 0:e.type),s="heatmap"===(null==(t=this.processor)?void 0:t.type),a=this.processor;if(a&&r===s)return;const n=r?new q({owner:this}):new p["a"]({owner:this,frustumVisibilityEnabled:!0,scaleVisibilityEnabled:!0,filterVisibilityEnabled:!0,timeExtentVisibilityEnabled:!0,elevationAlignmentEnabled:!0,elevationFeatureExpressionEnabled:!0,preferredUpdatePolicy:this.updatePolicy,updateClippingExtent:e=>this._updateClippingExtent(e)});this._set("processor",n),null==a||a.destroy(),null==(i=this.queryEngine)||i.clear(),this.addResolvingPromise(n.setup())}_getResourceInfo(){var e,t;const i=this.controller instanceof c["a"]?this.controller:null;return{displayedNumberOfFeatures:this.loadedGraphics.length,maximumNumberOfFeatures:null!=(e=null==i?void 0:i.maximumNumberOfFeatures)?e:-1,totalNumberOfFeatures:null!=(t=null==i?void 0:i.serviceDataCount)?t:-1,nodes:0,...this.processor.performanceInfo}}get performanceInfo(){return this._getResourceInfo()}};return Object(r["a"])([Object(o["b"])()],t.prototype,"loadedGraphics",void 0),Object(r["a"])([Object(o["b"])()],t.prototype,"suspended",void 0),Object(r["a"])([Object(o["b"])({readOnly:!0})],t.prototype,"legendEnabled",null),Object(r["a"])([Object(o["b"])()],t.prototype,"updating",void 0),Object(r["a"])([Object(o["b"])()],t.prototype,"controller",void 0),Object(r["a"])([Object(o["b"])()],t.prototype,"processor",void 0),Object(r["a"])([Object(o["b"])({readOnly:!0})],t.prototype,"updatePolicy",void 0),Object(r["a"])([Object(o["b"])({readOnly:!0})],t.prototype,"suspendResumeExtentMode",void 0),Object(r["a"])([Object(o["b"])({type:Boolean})],t.prototype,"slicePlaneEnabled",void 0),Object(r["a"])([Object(o["b"])({readOnly:!0})],t.prototype,"suspendInfo",void 0),Object(r["a"])([Object(o["b"])()],t.prototype,"graphics3DProcessor",null),Object(r["a"])([Object(o["b"])()],t.prototype,"heatmapProcessor",null),t=Object(r["a"])([Object(l["a"])("esri.views.3d.layers.FeatureLikeLayerView3D")],t),t}},3895:function(e,t,i){"use strict";i.d(t,"a",(function(){return n}));var r=i("ce6d"),s=i("fe80"),a=i("c47a");class n extends r["a"]{constructor(){super(...arguments),this._set=new Set}clear(){if(this._set.size>0){const e=this.toArray();this._set.clear(),this.emit("after-changes",{type:s["a"].REMOVE}),this.emit("change",{added:[],removed:e})}}get length(){return this._set.size}addMany(e){if(0!==e.length){for(const t of e)this._set.add(t);this.emit("after-changes",{type:s["a"].ADD}),this.emit("change",{added:e,removed:[]})}}remove(e){this._set.delete(e)&&(this.emit("after-changes",{type:s["a"].REMOVE}),this.emit("change",{added:[],removed:[e]}))}removeMany(e){const t=[];for(const i of e)this._set.delete(i)&&t.push(i);t.length>0&&(this.emit("after-changes",{type:s["a"].REMOVE}),this.emit("change",{added:[],removed:t}))}toArray(){return[...this._set]}find(e){let t;return Object(a["a"])(this._set,i=>!!e(i)&&(t=i,!0)),t}forEach(e){this._set.forEach(t=>e(t))}}},6517:function(e,t,i){"use strict";i.d(t,"a",(function(){return d}));var r=i("ce50"),s=i("ce6d"),a=i("e92d"),n=i("b2b2"),o=i("4261"),l=i("9180"),u=i("6655"),c=i("04c4"),h=i("461f");class d{constructor(e){this.geometryInfo=e,this._boundsStore=new c["a"],this._featuresById=new Map,this._markedIds=new Set,this.events=new s["a"],this.featureAdapter=h["a"]}get geometryType(){return this.geometryInfo.geometryType}get hasM(){return this.geometryInfo.hasM}get hasZ(){return this.geometryInfo.hasZ}get numFeatures(){return this._featuresById.size}get fullBounds(){if(!this.numFeatures)return null;const e=Object(l["l"])(l["a"]);return this._featuresById.forEach(t=>{const i=this._boundsStore.get(t.objectId);i&&(e[0]=Math.min(i[0],e[0]),e[1]=Math.min(i[1],e[1]),e[2]=Math.max(i[2],e[2]),e[3]=Math.max(i[3],e[3]))}),e}get storeStatistics(){let e=0;return this._featuresById.forEach(t=>{Object(n["k"])(t.geometry)&&t.geometry.coords&&(e+=t.geometry.coords.length)}),{featureCount:this._featuresById.size,vertexCount:e/(this.hasZ?this.hasM?4:3:this.hasM?3:2)}}add(e){this._add(e),this._emitChanged()}addMany(e){for(const t of e)this._add(t);this._emitChanged()}clear(){this._featuresById.clear(),this._boundsStore.clear(),this._emitChanged()}removeById(e){const t=this._featuresById.get(e);return t?(this._remove(t),this._emitChanged(),t):null}removeManyById(e){this._boundsStore.invalidateIndex();for(const t of e){const e=this._featuresById.get(t);e&&this._remove(e)}this._emitChanged()}forEachBounds(e,t,i){for(const r of e){const e=this._boundsStore.get(r.objectId);e&&t(Object(o["s"])(i,e))}}getFeature(e){return this._featuresById.get(e)}has(e){return this._featuresById.has(e)}forEach(e){this._featuresById.forEach(t=>e(t))}forEachInBounds(e,t){this._boundsStore.forEachInBounds(e,e=>{t(this._featuresById.get(e))})}startMarkingUsedFeatures(){this._boundsStore.invalidateIndex(),this._markedIds.clear()}sweep(){let e=!1;this._featuresById.forEach((t,i)=>{this._markedIds.has(i)||(e=!0,this._remove(t))}),this._markedIds.clear(),e&&this._emitChanged()}_emitChanged(){this.events.emit("changed",void 0)}_add(e){if(!e)return;const t=e.objectId;if(null==t)return void a["a"].getLogger("esri.layers.graphics.data.FeatureStore").error(new r["a"]("featurestore:invalid-feature","feature id is missing",{feature:e}));const i=this._featuresById.get(t);let s;if(this._markedIds.add(t),i?(e.displayId=i.displayId,s=this._boundsStore.get(t),this._boundsStore.delete(t)):Object(n["k"])(this.onFeatureAdd)&&this.onFeatureAdd(e),Object(n["j"])(e.geometry)||!e.geometry.coords||!e.geometry.coords.length)return this._boundsStore.set(t,null),void this._featuresById.set(t,e);s=Object(u["s"])(Object(n["k"])(s)?s:Object(l["l"])(),e.geometry,this.geometryInfo.hasZ,this.geometryInfo.hasM),Object(n["k"])(s)&&this._boundsStore.set(t,s),this._featuresById.set(t,e)}_remove(e){return Object(n["k"])(this.onFeatureRemove)&&this.onFeatureRemove(e),this._markedIds.delete(e.objectId),this._boundsStore.delete(e.objectId),this._featuresById.delete(e.objectId),e}}},"66a7":function(e,t,i){"use strict";i.r(t),i.d(t,"default",(function(){return l}));var r=i("a4ee"),s=i("59b2"),a=(i("b50f"),i("c120"),i("cea0"),i("d386")),n=i("8a9a");let o=class extends n["a"]{constructor(){super(...arguments),this.type="geojson-3d"}};Object(r["a"])([Object(s["b"])()],o.prototype,"layer",void 0),o=Object(r["a"])([Object(a["a"])("esri.views.3d.layers.GeoJSONLayerView3D")],o);const l=o},"6c7a":function(e,t,i){"use strict";i.d(t,"a",(function(){return u}));var r=i("a4ee"),s=i("e92d"),a=i("f4cc"),n=i("477c"),o=i("59b2"),l=(i("b50f"),i("c120"),i("cea0"),i("d386"));const u=e=>{let t=class extends e{initialize(){this.handles.add(Object(n["b"])(()=>this.layer,"refresh",e=>{this.doRefresh(e.dataChanged).catch(e=>{Object(a["m"])(e)||s["a"].getLogger(this.declaredClass).error(e)})}),"RefreshableLayerView")}};return Object(r["a"])([Object(o["b"])()],t.prototype,"layer",void 0),t=Object(r["a"])([Object(l["a"])("esri.layers.mixins.RefreshableLayerView")],t),t}},"8a9a":function(e,t,i){"use strict";i.d(t,"a",(function(){return L}));var r=i("a4ee"),s=i("ce50"),a=i("b2b2"),n=i("477c"),o=i("59b2"),l=(i("b50f"),i("c120"),i("cea0"),i("d386")),u=i("d3cf"),c=i("b9c7"),h=i("2ab4"),d=i("66af"),p=i("e60a"),m=i("fc29"),f=i("f4cc"),b=i("1a54"),y=i("e9fc"),g=i("8d60"),_=i("78ba"),O=i("5996"),F=i("a1f3");class j{constructor(e){this._schedule=e,this._handle=new v(e)}destroy(){this._handle.destroy()}invoke(e,t){return e.buffer&&0!==e.buffer.byteLength?(e.options.sourceSpatialReference&&e.options.sourceSpatialReference instanceof O["a"]&&(e.options={...e.options,sourceSpatialReference:e.options.sourceSpatialReference.toJSON()}),this._handle.invoke(e,t).then(e=>this._schedule(()=>{if(e.spatialReference=O["a"].fromJSON(e.spatialReference),e.fields)for(let i=0;iObject(y["runQuery"])(this.layer.parsedUrl,t,"pbf",this._createRequestOptions(i)).then(t=>(Object(f["v"])(i),Object(a["k"])(this._decoder)?this._decoder.invoke({buffer:t.data,options:e},i.signal):Promise.reject(Object(f["e"])())))}return(e,t)=>Object(y["executeQuery"])(this.layer.parsedUrl,e,this.layer.spatialReference,this._createRequestOptions(t)).then(e=>Object(b["f"])(e.data))}queryFeatureCount(e,t){return this.layer.queryFeatureCount(e,t)}destroy(){this._decoder=Object(a["d"])(this._decoder)}_createRequestOptions(e){return{...e,query:{...this.layer.customParameters,token:this.layer.apiKey,...null==e?void 0:e.query}}}};Object(r["a"])([Object(o["b"])({constructOnly:!0})],x.prototype,"layer",void 0),Object(r["a"])([Object(o["b"])({constructOnly:!0})],x.prototype,"schedule",void 0),Object(r["a"])([Object(o["b"])({readOnly:!0})],x.prototype,"queryFeaturesDehydrated",null),x=Object(r["a"])([Object(l["a"])("esri.views.3d.layers.support.featureTileQuery3D.FeatureTileServiceQuery3D")],x);let E=class extends m["a"]{constructor(e){super(e)}queryFeaturesDehydrated(e,t){return this.layer.queryFeatures(e,t)}queryFeatureCount(e,t){return this.layer.queryFeatureCount(e,t)}};Object(r["a"])([Object(o["b"])({constructOnly:!0})],E.prototype,"layer",void 0),Object(r["a"])([Object(o["b"])({readOnly:!0})],E.prototype,"queryFeaturesDehydrated",null),E=Object(r["a"])([Object(l["a"])("esri.views.3d.layers.support.featureTileQuery3D.FeatureTileServiceMeshQuery3D")],E);let w=class extends m["a"]{constructor(e){super(e)}queryFeaturesDehydrated(e,t){return this.layer.queryFeatures(e,t)}};Object(r["a"])([Object(o["b"])({constructOnly:!0})],w.prototype,"layer",void 0),w=Object(r["a"])([Object(l["a"])("esri.views.3d.layers.support.featureTileQuery3D.FeatureTileServiceQuery3D")],w);let T=class extends m["a"]{constructor(e){super(e)}queryFeaturesDehydrated(e,t){return this.source.queryFeaturesJSON(e,t).then(b["f"],i=>{if(i&&"query-features-json:unsupported"===i.name)return this.layer.queryFeatures(e,t);throw i})}queryFeatureCount(e,t){return this.layer.queryFeatureCount(e,t)}};function C(e,t){return"feature"===e.type&&"feature-layer"===e.source.type?Object(a["k"])(e.infoFor3D)?new E({layer:e}):new x({layer:e,schedule:t}):"feature"===e.type&&"memory"===e.source.type||"csv"===e.type||"geojson"===e.type||"wfs"===e.type?new T({layer:e,source:e.source}):"ogc-feature"===e.type?new w({layer:e}):null}Object(r["a"])([Object(o["b"])({constructOnly:!0})],T.prototype,"layer",void 0),Object(r["a"])([Object(o["b"])({constructOnly:!0})],T.prototype,"source",void 0),T=Object(r["a"])([Object(l["a"])("esri.views.3d.layers.support.featureTileQuery3D.FeatureTileClientQuery3D")],T);class R{constructor(e){this._memoryCache=null,this._capabilities=null;const t=e.layerView.layer;this.layerView=e.layerView,this.objectIdField=t.objectIdField,this.globalIdField="globalIdField"in t?t.globalIdField:null,this.returnZ=e.returnZ,this.returnM=e.returnM;const i=this.layerView.view.resourceController;this.query=C(t,e=>i.schedule(e)),i&&this.memoryCacheEnabled&&(this._memoryCache=i.memoryController.newCache(t.uid))}get memoryCacheEnabled(){switch(this.layerView.layer.source.type){case"feature-layer":case"ogc-feature":return!0;case"csv":case"geojson":case"memory":case"wfs":return!1}}destroy(){this._memoryCache=Object(a["d"])(this._memoryCache),this.query.destroy()}createQuery(){const e=this.layerView.layer.createQuery();return e.outFields=this.layerView.availableFields,e.returnZ=this.returnZ,e.returnM=this.returnM,e.outSpatialReference=this.tilingScheme.spatialReference,e}get memoryCache(){return this._memoryCache}get viewingMode(){return this.layerView.view.state.viewingMode}get tilingScheme(){return this.layerView.view.featureTiles.tilingScheme}get scheduler(){const e=this.layerView.view.resourceController;return e?e.scheduler:null}get geometryType(){return this.layerView.layer.geometryType}get fullExtent(){return this.layerView.layer.fullExtent}get tileMaxRecordCount(){return this.layerView.layer.capabilities.query.tileMaxRecordCount}get maxRecordCount(){return this.layerView.layer.capabilities.query.maxRecordCount}get capabilities(){return Object(a["k"])(this._capabilities)||(this._capabilities=Object(p["b"])(this.layerView.layer)),this._capabilities}logFetchError(e,t){e.error("#fetchTile()",this.layerView.layer,t&&t.message?t.message:t)}}var I=i("3895"),S=i("deae"),D=i("b7c2"),M=i("ceb0"),P=i("365a"),N=i("6c7a");let V=class extends(Object(N["a"])(Object(h["a"])(Object(M["a"])(Object(d["a"])(P["a"]))))){constructor(e){super(e),this._controllerTotal=0,this._processorTotal=0,this.suspendResumeExtentMode="data"}initialize(){this.updatingHandles.add(()=>this.view.floors,()=>this.processor.filterVisibility.filterChanged()),this.handles.add(Object(n["e"])(()=>this._updatingRequiredFieldsPromise,e=>this.updatingHandles.addPromise(e),n["d"]))}destroy(){this.updatingHandles.removeAll(),this.handles.removeAll(),this.fetcherContext=Object(a["d"])(this.fetcherContext)}get maximumNumberOfFeatures(){var e,t;return null!=(e=null==(t=this.controller)?void 0:t.maximumNumberOfFeatures)?e:this._get("maximumNumberOfFeatures")}set maximumNumberOfFeatures(e){this._set("maximumNumberOfFeatures",e),this.controller&&(this.controller.maximumNumberOfFeatures=e)}get maximumNumberOfFeaturesExceeded(){return!!this.controller&&!(this.suspended||!this.controller.maximumNumberOfFeaturesExceeded)}get updatingProgressValue(){var e,t;let i=0;if(null!=(e=this.controller)&&e.updating){const e=this.controller.updatingRemaining,t=Math.max(this.controller.updatingTotal,this._controllerTotal);t>0&&(i=(t-e)/t,this._controllerTotal=t)}let r=0;if(null!=(t=this.processor)&&t.updating){const e=this.processor.updatingRemaining,t=Math.max(e,this._processorTotal);t>0&&(r=(t-e)/t,this._processorTotal=t)}return.5*(i+r)}get updatePolicy(){if(!this.controller)return D["m"].ASYNC;switch(this.controller.mode){case"snapshot":{const e=k[this.layer.geometryType];return null==e||this.controller.serviceDataCount>e?D["m"].ASYNC:D["m"].SYNC}case"tiles":return D["m"].ASYNC}}get hasZ(){const e=this.layer,t=e.capabilities&&e.capabilities.data;return!(!t||!t.supportsZ)&&("returnZ"in e&&null!=e.returnZ?e.returnZ:t.supportsZ)}get hasM(){const e=this.layer,t=e.capabilities&&e.capabilities.data;return!(!t||!t.supportsM)&&"returnM"in e&&null!=e.returnM&&e.returnM}setVisibility(e,t){var i;null==(i=this.processor)||i.setObjectIdVisibility(e,t)}createQuery(){return super.createQuery()}queryFeatures(e,t){const i=()=>super.queryFeatures(e,t);return"mesh"===this.layer.geometryType?this._queryFeaturesMesh(this._ensureQuery(e),i):i()}beforeSetController(e){e.maximumNumberOfFeatures=this.maximumNumberOfFeatures}createController(){this.fetcherContext=new R({layerView:this,returnZ:this.hasZ,returnM:this.hasM});const e=new c["a"]({layerView:this,context:this.fetcherContext,graphics:new I["a"],extent:this.clippingExtent});return this.updatingHandles.add(()=>e.serviceDataExtent,e=>{this.processor&&(this.processor.dataExtent=e)},n["a"]),this.handles.add(Object(n["e"])(()=>this.suspended,t=>{t?e.suspend():e.resume()},n["d"])),this.updatingHandles.add(()=>{var e;return null==(e=this.processor)?void 0:e.displayFeatureLimit},t=>e.displayFeatureLimit=t,n["a"]),this.handles.add(Object(n["f"])(()=>!this.updating,()=>{this._controllerTotal=0,this._processorTotal=0})),e}async doRefresh(e){e&&!this.suspended&&this.controller&&this.controller.refetch(),this.processor.filterVisibility.dirty=!0}getUsedMemory(){var e,t,i,r;return(null!=(e=null==(t=this.processor)?void 0:t.usedMemory)?e:0)+(null!=(i=null==(r=this.controller)?void 0:r.memoryForUnusedFeatures)?i:0)}getUnloadedMemory(){var e,t,i,r,s;return(null!=(e=null==(t=this.processor)?void 0:t.unprocessedMemoryEstimate)?e:0)+(null!=(i=(null==(r=this.controller)?void 0:r.expectedFeatureDiff)*(null==(s=this.processor)?void 0:s.usedMemoryPerFeature))?i:0)}ignoresMemoryFactor(){var e;return null==(e=this.controller)?void 0:e.hasMaximumNumberOfFeaturesOverride}async _queryFeaturesMesh(e,t){await this._validateQueryFeaturesMesh(e);const i=await t();if(e&&e.outStatistics||Object(a["j"])(this.graphics3DProcessor))return i;const r=this.layer.objectIdField,s=this.graphics3DProcessor.graphics3DGraphicsByObjectID,n=[];for(const a of i.features)if(a.geometry){const e=s.get(a.attributes[r]);e&&(a.geometry=Object(u["b"])(e.graphic.geometry),n.push(a))}else n.push(a);return i.features=n,i}async _validateQueryFeaturesMesh(e){if(!e)return;const t=e=>{throw new s["a"]("feature-layer-view:unsupported-query",`Queries on Mesh feature collection layers do not support '${e}'`)},i=["quantizationParameters","geometryPrecision","maxAllowableOffset"];for(const r of i)null!=e[r]&&t(r);"returnM"in e&&e.returnM&&t("returnM"),"returnCentroid"in e&&e.returnCentroid&&t("returnCentroid"),Object(a["k"])(e.outSpatialReference)&&!e.outSpatialReference.equals(this.view.spatialReference)&&t("outSpatialReference")}get performanceInfo(){var e,t,i,r,s;const n=null==(e=this.controller)?void 0:e.displayFeatureLimit,o=Object(a["k"])(n)&&n.averageSymbolComplexity,l=Object(a["k"])(o)?`f:${o.primitivesPerFeature},v:${o.primitivesPerCoordinate}`:"n/a",u={...this._getResourceInfo(),storedFeatures:0,totalVertices:0,partial:this.maximumNumberOfFeaturesExceeded,mode:null!=(t=null==(i=this.controller)?void 0:i.mode)?t:"n/a",symbolComplexity:l,nodes:null!=(r=null==(s=this.controller)?void 0:s.tileDescriptors.length)?r:0};if(this.controller&&u.displayedNumberOfFeatures){const e=this.controller.debug;u.storedFeatures=e.storedFeatures,u.totalVertices=e.totalVertices}return u}get test(){return{updatePolicy:this.updatePolicy,controller:this.controller}}};Object(r["a"])([Object(o["b"])()],V.prototype,"layer",void 0),Object(r["a"])([Object(o["b"])()],V.prototype,"controller",void 0),Object(r["a"])([Object(o["b"])()],V.prototype,"_controllerTotal",void 0),Object(r["a"])([Object(o["b"])()],V.prototype,"_processorTotal",void 0),Object(r["a"])([Object(o["b"])()],V.prototype,"maximumNumberOfFeatures",null),Object(r["a"])([Object(o["b"])()],V.prototype,"maximumNumberOfFeaturesExceeded",null),Object(r["a"])([Object(o["b"])(S["a"])],V.prototype,"updatingProgress",void 0),Object(r["a"])([Object(o["b"])({readOnly:!0})],V.prototype,"updatingProgressValue",null),Object(r["a"])([Object(o["b"])({readOnly:!0})],V.prototype,"updatePolicy",null),Object(r["a"])([Object(o["b"])({readOnly:!0})],V.prototype,"hasZ",null),Object(r["a"])([Object(o["b"])({readOnly:!0})],V.prototype,"hasM",null),Object(r["a"])([Object(o["b"])()],V.prototype,"suspendResumeExtentMode",void 0),V=Object(r["a"])([Object(l["a"])("esri.views.3d.layers.FeatureLayerViewBase3D")],V);const k={point:5e3,polygon:500,polyline:1e3},L=V},ad73:function(e,t,i){"use strict";i.d(t,"a",(function(){return n})),i.d(t,"b",(function(){return a}));var r=i("b2b2"),s=i("c1da");async function a(e,t=e.popupTemplate){if(!Object(r["k"])(t))return[];const i=await t.getRequiredFields(e.fieldsIndex),{lastEditInfoEnabled:a}=t,{objectIdField:n,typeIdField:o,globalIdField:l,relationships:u}=e;if(i.includes("*"))return["*"];const c=a?await Object(s["n"])(e):[],h=Object(s["j"])(e.fieldsIndex,[...i,...c]);return o&&h.push(o),h&&n&&e.fieldsIndex.has(n)&&-1===h.indexOf(n)&&h.push(n),h&&l&&e.fieldsIndex.has(l)&&-1===h.indexOf(l)&&h.push(l),u&&u.forEach(t=>{const{keyField:i}=t;h&&i&&e.fieldsIndex.has(i)&&-1===h.indexOf(i)&&h.push(i)}),h}function n(e,t){return e.popupTemplate?e.popupTemplate:Object(r["k"])(t)&&t.defaultPopupTemplateEnabled&&Object(r["k"])(e.defaultPopupTemplate)?e.defaultPopupTemplate:null}},b9c7:function(e,t,i){"use strict";i.d(t,"a",(function(){return M}));var r=i("a4ee"),s=i("fc29"),a=i("792b"),n=i("2c4f"),o=(i("c120"),i("ce50")),l=i("af40"),u=i("7ffa"),c=i("e92d"),h=i("b2b2"),d=i("fab3"),p=i("f4cc"),m=i("477c"),f=i("59b2"),b=(i("cea0"),i("d386")),y=i("54b4"),g=i("e2e8"),_=i("a796"),O=i("e60a"),F=i("8d60"),j=i("1219"),v=i("c128"),x=i("7533"),E=i("35c9"),w=i("a957"),T=i("ee83");const C=[[0,179,255],[117,62,128],[0,104,255],[215,189,166],[32,0,193],[98,162,206],[102,112,129],[52,125,0],[142,118,246],[138,83,0],[92,122,255],[122,55,83],[0,142,255],[81,40,179],[0,200,244],[13,24,127],[0,170,147],[19,58,241],[22,44,35]];class R{constructor(e,t,i){this.loadingGraphics=new Map,this.loadedGraphics=new Map,this.pendingGraphics=new Map,this._enabled=!0,this.tileFetcher=e,this.view=i,this.tilingScheme=new T["a"](t),this.loadedSymbols=C.map(e=>new E["a"](new v["a"]({material:{color:[e[0],e[1],e[2],.6]},outline:{color:"black",size:1}}))),this.loadingSymbols=[new E["a"](new v["a"]({material:{color:[200,200,200,.4]},outline:{color:[30,30,30],size:1}}))],this.pendingSymbols=[new E["a"](new v["a"]({material:{color:[100,100,100,.4]},outline:{color:[30,30,30],size:1}}))],this.dataExtentSymbol=new E["a"](new v["a"]({material:{color:[0,0,0,0]},outline:{color:"green",size:4}}))}destroy(){this.enabled=!1}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this.update()}update(){this._enabled?(this._synchronizeMaps(this.loadingGraphics,{filter:e=>e.isFetching,symbols:this.loadingSymbols}),this._synchronizeMaps(this.loadedGraphics,{filter:e=>!e.isFetching,symbols:this.loadedSymbols}),this._synchronizeMaps(this.pendingGraphics,{filter:e=>!e.isFetching,symbols:this.pendingSymbols}),this.showDataExtent(this.tileFetcher.filterExtent)):(this.loadingGraphics.forEach(e=>{this.view.graphics.removeMany(e)}),this.loadingGraphics.clear(),this.loadedGraphics.forEach(e=>{this.view.graphics.removeMany(e)}),this.loadedGraphics.clear(),this.pendingGraphics.forEach(e=>{this.view.graphics.removeMany(e)}),this.pendingGraphics.clear(),this.dataExtentGraphic&&(this.view.graphics.remove(this.dataExtentGraphic),this.dataExtentGraphic=null))}showDataExtent(e){if(this.dataExtentGraphic&&(this.view.graphics.remove(this.dataExtentGraphic),this.dataExtentGraphic=null),!e)return;const t=j["a"].fromExtent(e);this.dataExtentGraphic=new F["a"]({geometry:t,symbol:this.dataExtentSymbol}),this.view.graphics.add(this.dataExtentGraphic)}_synchronizeMaps(e,t){const i=[];e.forEach((e,r)=>{const s=this.tileFetcher.test.getFeatureTileById(r);s&&t.filter(s)||(this.view.graphics.removeMany(e),i.push(r))}),i.forEach(t=>e.delete(t)),this.tileFetcher.test.forEachFeatureTile(i=>{if(t.filter(i)&&!e.has(i.id)){const[r,s,a]=i.descriptor.lij;this.tilingScheme.ensureMaxLod(r);const n=this.tilingScheme.getExtentGeometry(r,s,a),o=[new F["a"]({geometry:n,symbol:t.symbols[r%t.symbols.length]}),new F["a"]({geometry:n.center,symbol:new x["a"]({verticalOffset:{screenLength:40/.75},callout:{type:"line",color:"white",border:{color:"black"}},symbolLayers:[new w["a"]({text:`${r}/${s}/${a}`,halo:{color:"white",size:1/.75},material:{color:"black"},size:16})]})})];e.set(i.id,o),this.view.graphics.addMany(o)}})}}var I=i("6611"),S=i("d347");const D=c["a"].getLogger("esri.layers.graphics.controllers.FeatureTileController3D");let M=class extends(Object(d["b"])(s["a"])){constructor(e){super(e),this.type="feature-tile-3d",this.watchUpdatingTracking=new S["a"],this.serviceDataExtent=null,this.serviceDataCount=q.NO_SERVICE_DATA_COUNT,this.vertexLimitExceeded=!1,this.displayFeatureLimit=null,this.suspended=!1,this.tileFetcher=null,this.handles=new l["a"],this.fetchDataInfoPromise=null,this.fetchDataInfoAbortController=null,this.lifeCycleAbortController=new AbortController}set extent(e){if(e&&!e.spatialReference.equals(this.layerView.view.spatialReference))return void D.error("#extent=","extent needs to be in the same spatial reference as the view");const t=this._get("extent");if(t===e)return;if(t&&e&&t.equals(e))return;const i=e?e.clone():null;this._set("extent",i)}get updating(){return!!(Object(h["k"])(this.tileFetcher)&&this.tileFetcher.updating||null!=this.fetchDataInfoPromise||"tiles"===this.mode&&this.layerView.view.featureTiles&&this.layerView.view.featureTiles.updating||this.watchUpdatingTracking&&this.watchUpdatingTracking.updating)}get updatingTotal(){return this.updating&&Object(h["k"])(this.tileFetcher)?this.tileFetcher.updatingTotal:0}get updatingRemaining(){return this.updating&&Object(h["k"])(this.tileFetcher)?this.tileFetcher.updatingRemaining:0}get expectedFeatureDiff(){return this.updating&&Object(h["k"])(this.tileFetcher)?this.tileFetcher.expectedFeatureDiff:0}get memoryForUnusedFeatures(){return Object(h["k"])(this.tileFetcher)?this.tileFetcher.memoryForUnusedFeatures:0}get maximumNumberOfFeaturesExceeded(){return!(!Object(h["k"])(this.tileFetcher)||!this.tileFetcher.maximumNumberOfFeaturesExceeded)}get maximumNumberOfFeatures(){return Object(h["k"])(this.displayFeatureLimit)?this.displayFeatureLimit.maximumNumberOfFeatures:0}set maximumNumberOfFeatures(e){e!==this.maximumNumberOfFeatures&&(null==e?this._clearOverride("maximumNumberOfFeatures"):this._override("maximumNumberOfFeatures",e))}get hasMaximumNumberOfFeaturesOverride(){return this._isOverridden("maximumNumberOfFeatures")}get mode(){var e,t;const i=this.layerView.layer;if("feature"===i.type&&Object(h["k"])(i.infoFor3D))return"snapshot";if(!1===(null==(e=this.layerView.view.qualitySettings)||null==(t=e.graphics3D)?void 0:t.snapshotAvailable)||this.serviceDataCount===q.NO_SERVICE_DATA_COUNT||this.vertexLimitExceeded)return"tiles";const r=this.layerView.view,s=r&&r.featureTiles,a=s&&s.tilingScheme;if(i&&i.minScale&&this.serviceDataExtent&&a){const e=this._approximateExtentSizeAtScale(i.minScale,a);if((this.serviceDataExtent.width/e+this.serviceDataExtent.height/e)/2>q.MAX_SNAPSHOT_MIN_SCALE_FACTOR)return"tiles"}return!this.maximumNumberOfFeatures||this.serviceDataCount<=this.maximumNumberOfFeatures?"snapshot":"tiles"}get maxTotalSnapshotVertices(){const e=this._get("maxTotalSnapshotVertices")||0,t="snapshot"===this.mode&&Object(h["k"])(this.tileFetcher)&&this.tileFetcher.totalVertices||0;return Math.max(e,t)}_approximateExtentSizeAtScale(e,t){const i=this.layerView.view,r=Math.ceil((i.width/t.pixelSize+i.height/t.pixelSize)/2),s=t.levels[0];return r*((s.tileSize[0]/(s.scale/e)+s.tileSize[1]/(s.scale/e))/2)}get tileDescriptors(){return"snapshot"===this.mode?new n["a"]([{id:"dummy-tile-full-extent",lij:[0,0,0]}]):this.layerView.view.featureTiles?this.layerView.view.featureTiles.tiles:new n["a"]}get test(){return{fetchDataInfoPromise:this.fetchDataInfoPromise,tileFetcher:this.tileFetcher}}initialize(){this.watchUpdatingTracking.add(()=>this.vertexLimitInfo,()=>this.watchUpdatingTracking.addPromise(this._updateVertexLimitExceeded(null,this.lifeCycleAbortController.signal))),this.watchUpdatingTracking.add(()=>this.mode,()=>this._modeChanged(),m["a"]),this.addResolvingPromise(Promise.resolve().then(()=>this._verifyCapabilities()).then(()=>this.watchUpdatingTracking.addPromise(this._fetchServiceDataInfo())).then(()=>this._initializeTileFetcher()))}_verifyCapabilities(){const e=this.layerView.layer;if(!e.get("capabilities.operations.supportsQuery")&&"ogc-feature"!==e.type)throw new o["a"]("graphicscontroller:query-capability-required","Service requires query capabilities to be used as a feature layer",{layer:e})}destroy(){this._cancelFetchServiceDataInfo(),this.tileFetcher=Object(h["d"])(this.tileFetcher),this.handles=Object(h["d"])(this.handles),this.tilesHandle=Object(h["s"])(this.tilesHandle),this.lifeCycleAbortController&&(this.lifeCycleAbortController.abort(),this.lifeCycleAbortController=null),this.watchUpdatingTracking.destroy(),this._set("watchUpdatingTracking",null)}suspend(){this.suspended||(this.suspended=!0,Object(h["k"])(this.tileFetcher)&&this.tileFetcher.suspend())}resume(){this.suspended&&(this.suspended=!1,Object(h["k"])(this.tileFetcher)&&this.tileFetcher.resume())}restart(){const e=()=>{Object(h["k"])(this.tileFetcher)&&this.tileFetcher.restart()};this.watchUpdatingTracking.addPromise(this._fetchServiceDataInfo().then(e,e))}refetch(){const e=()=>{Object(h["k"])(this.tileFetcher)&&this.tileFetcher.refetch()};this.watchUpdatingTracking.addPromise(this._fetchServiceDataInfo().then(e,e))}_initializeTileFetcher(){const e=this.layerView.view;if(!e)return;const t=Object(m["g"])(()=>{var t;return null==(t=e.featureTiles)?void 0:t.tilingScheme},this.lifeCycleAbortController.signal);this.watchUpdatingTracking.addPromise(t),t.then(()=>{const{layerView:t,tileDescriptors:i}=this,r=t.layer,s=new O["a"]({context:this.context,filterExtent:this.extent,tileDescriptors:i,features:this.graphics});this.tileFetcher=s,this.suspended?this.tileFetcher.suspend():this.tileFetcher.resume();const a=this.layerView.view.resourceController;a&&(this.handles.add(a.memoryController.events.on("quality-changed",e=>{s.memoryFactor=e})),this.tileFetcher.memoryFactor=a.memoryController.memoryFactor);const n="polygon"===this.context.geometryType?"polygonLodFactor":"polyline"===this.context.geometryType?"polylineLodFactor":null;n&&this.handles.add(Object(m["e"])(()=>{var e,t,i;return null==(e=this.layerView.view)||null==(t=e.qualitySettings)||null==(i=t.graphics3D)?void 0:i[n]},e=>s.lodFactor=e||1,m["a"]));const o=e=>{s.maximumNumberOfFeatures=e,s.useTileCount=this.serviceDataCount>e},l=e=>s.useTileCount=e>this.maximumNumberOfFeatures;"ogc-feature"!==r.type&&this.watchUpdatingTracking.add(()=>r.createQueryVersion,()=>this._dataFilterChanged()),this.watchUpdatingTracking.add(()=>t.availableFields,(e,t)=>this._availableFieldsChanged(t,e)),this.watchUpdatingTracking.add(()=>t.requiredFields,(e,t)=>this._requiredFieldsChanged(t,e)),this.handles.add([r.on("apply-edits",e=>this._applyEdits(e)),this.watch("extent",e=>s.filterExtent=e,!0),this.watch("tileDescriptors",e=>s.tileDescriptors=e,!0),Object(m["e"])(()=>this.maximumNumberOfFeatures,o,m["d"]),Object(m["e"])(()=>this.serviceDataCount,l,m["d"]),Object(m["e"])(()=>I["a"].FEATURE_TILE_FETCH_SHOW_TILES,t=>{t&&s&&!s.debugger?(s.debugger=new R(s,e.featureTiles.tilingScheme.toTileInfo(),e),s.debugger.update()):!t&&this.tileFetcher&&s.debugger&&(s.debugger.destroy(),s.debugger=null)},m["d"])]),this.supportsExceedsLimitQuery||this.watchUpdatingTracking.add(()=>this.maxTotalSnapshotVertices,()=>this.watchUpdatingTracking.addPromise(this._updateVertexLimitExceeded(null,this.lifeCycleAbortController.signal)))}).catch(()=>{})}_modeChanged(){switch(this.mode){case"tiles":this.tilesHandle||(this.tilesHandle=this.layerView.view.featureTiles.addClient());break;default:D.warn("Unhandled feature layer mode "+this.mode);case"snapshot":Object(h["k"])(this.tilesHandle)&&(this.tilesHandle.remove(),this.tilesHandle=null)}}_dataFilterChanged(){this._set("maxTotalSnapshotVertices",0),this.notifyChange("maxTotalSnapshotVertices"),this.refetch()}_applyEdits(e){Object(h["j"])(this.tileFetcher)||this.tileFetcher.applyEdits(e).then(e=>{e&&(e.deletedFeatures.length||e.updatedFeatures.length||e.addedFeatures.length)&&this.watchUpdatingTracking.addPromise(this._updateServiceDataExtent(this.lifeCycleAbortController.signal))}).catch(e=>{if(!Object(p["m"])(e))throw e})}_availableFieldsChanged(e,t){Object(h["k"])(this.tileFetcher)&&L(this.tileFetcher.availableFields,t)&&this.refetch()}_requiredFieldsChanged(e,t){Object(h["k"])(this.tileFetcher)&&L(this.tileFetcher.availableFields,t)&&this.restart()}_createVertexLimitExceededQuery(e){const t=this.layerView.layer,i=t.createQuery();return i.outStatistics=[new _["a"]({statisticType:"exceedslimit",maxVertexCount:e,outStatisticFieldName:"exceedslimit",maxPointCount:1e8,maxRecordCount:1e8})],t.capabilities.query.supportsCacheHint&&(i.cacheHint=!0),i}_createDataInfoQuery(){const e=this.layerView.layer,t=e.createQuery();return t.outSpatialReference=this.layerView.view.spatialReference,e.capabilities.query.supportsCacheHint&&(t.cacheHint=!0),t}_fullExtentIsAccurate(){const e=this.layerView.layer;if(e.definitionExpression)return!1;switch(e.type){case"feature":return Object(y["c"])(e.url);case"csv":case"geojson":case"ogc-feature":case"wfs":return!0;default:return}}async _updateServiceDataExtent(e){try{await this._tryUpdateServiceDataExtent(e)}catch(t){Object(p["m"])(t)||this._set("serviceDataExtent",Object(u["a"])(this.layerView.fullExtentInLocalViewSpatialReference))}}async _tryUpdateServiceDataExtent(e){const t=this.layerView,i=t.layer,r=i.capabilities.query.supportsExtent,s=Object(u["a"])(t.fullExtentInLocalViewSpatialReference),a=i.fullExtent,n=this._fullExtentIsAccurate(),o=this.serviceDataCount;if(r&&o<=q.MAX_FEATURE_COUNT_FOR_EXTENT&&(!s||!n)&&"queryExtent"in i){const t=this._createDataInfoQuery(),r=await i.queryExtent(t,{timeout:q.QUERY_EXTENT_TIMEOUT,signal:e});this._set("serviceDataExtent",r.extent)}else if(s)this._set("serviceDataExtent",s);else if(Object(h["k"])(a)){const r="portalItem"in i?i.portalItem:null,s=await Object(g["projectGeometry"])(a,t.view.spatialReference,r,e);this._set("serviceDataExtent",s)}else this._set("serviceDataExtent",null)}async _updateServiceDataCount(e){const t=this.layerView.layer;if(!("queryFeatureCount"in t))return void this._set("serviceDataCount",q.NO_SERVICE_DATA_COUNT);const i=await Object(a["d"])(t.queryFeatureCount(this._createDataInfoQuery(),{timeout:q.QUERY_STATISTICS_TIMEOUT,signal:e}));if(!0===i.ok)this._set("serviceDataCount",i.value);else{if(Object(p["m"])(i.error))throw i.error;this._set("serviceDataCount",q.NO_SERVICE_DATA_COUNT)}}get vertexLimitInfo(){if(Object(h["j"])(this.displayFeatureLimit)||Object(h["j"])(this.displayFeatureLimit.averageSymbolComplexity))return null;const{averageSymbolComplexity:e,maximumTotalNumberOfPrimitives:t}=this.displayFeatureLimit,{primitivesPerCoordinate:i,primitivesPerFeature:r}=e,s=this._get("vertexLimitInfo");return Object(h["j"])(s)||s.maximumTotalNumberOfPrimitives!==t||s.primitivesPerCoordinate!==i||s.primitivesPerFeature!==r?{primitivesPerCoordinate:i,primitivesPerFeature:r,maximumTotalNumberOfPrimitives:t}:s}get supportsExceedsLimitQuery(){const e=this.layerView.layer;return e.capabilities&&e.capabilities.operations&&e.capabilities.operations.supportsExceedsLimitStatistics}get minimumNumberOfVerticesForGeometry(){switch(this.layerView.layer.geometryType){case"point":case"multipoint":return 1;case"polygon":return 4;case"polyline":return 2;case"multipatch":case"mesh":return 3;default:return 0}}async _updateVertexLimitExceeded(e,t){const i=this.vertexLimitInfo;if(Object(h["j"])(i))return void this._set("vertexLimitExceeded",!1);const r=i.primitivesPerFeature<=0,s=this.minimumNumberOfVerticesForGeometry>1;if(!r&&!s)return void this._set("vertexLimitExceeded",!1);const{primitivesPerFeature:n,primitivesPerCoordinate:o,maximumTotalNumberOfPrimitives:l}=i;let u;0!==n&&Object(h["k"])(e)&&await e;const c=this.serviceDataCount,d=c!==q.NO_SERVICE_DATA_COUNT;if(u=d?Math.ceil((l-c*n)/(o||1)):Math.ceil(l/(o||1)),s&&(u=Math.min(u,k)),d&&this.minimumNumberOfVerticesForGeometry*c>u)return void this._set("vertexLimitExceeded",!0);if(!this.supportsExceedsLimitQuery)return void this._set("vertexLimitExceeded",this.maxTotalSnapshotVertices>u);const m=await Object(a["d"])(this.layerView.layer.queryFeatures(this._createVertexLimitExceededQuery(u),{timeout:q.QUERY_STATISTICS_TIMEOUT,signal:t}));if(!1===m.ok){if(Object(p["m"])(m.error))throw m.error;return void this._set("vertexLimitExceeded",!1)}const f=m.value.features[0];f&&f.attributes?this._set("vertexLimitExceeded",!!f.attributes.exceedslimit):this._set("vertexLimitExceeded",!1)}async _fetchServiceDataInfo(){this._cancelFetchServiceDataInfo();let e=new AbortController;const t=e.signal,i=this._updateServiceDataCount(t),r=Object(p["j"])([i,this._updateVertexLimitExceeded(i,t)]),s=r.then(()=>this._updateServiceDataExtent(t)).catch(e=>{Object(p["m"])(e)||D.error("#fetchServiceDataInfo()",e)}).then(()=>{s===this.fetchDataInfoPromise&&(this.fetchDataInfoPromise=null,this.fetchDataInfoAbortController=null),e=null});return e&&(this.fetchDataInfoPromise=s),this.fetchDataInfoAbortController=e,r.then(()=>{},()=>{})}_cancelFetchServiceDataInfo(){const e=this.fetchDataInfoAbortController;e&&(this.fetchDataInfoAbortController=null,this.fetchDataInfoPromise=null,e.abort())}get debug(){return{storedFeatures:Object(h["k"])(this.tileFetcher)?this.tileFetcher.storedFeatures:0,totalFeatures:Object(h["k"])(this.tileFetcher)?this.tileFetcher.totalFeatures:0,totalVertices:Object(h["k"])(this.tileFetcher)?this.tileFetcher.totalVertices:0}}};Object(r["a"])([Object(f["b"])({readOnly:!0})],M.prototype,"type",void 0),Object(r["a"])([Object(f["b"])({constructOnly:!0})],M.prototype,"graphics",void 0),Object(r["a"])([Object(f["b"])({constructOnly:!0})],M.prototype,"layerView",void 0),Object(r["a"])([Object(f["b"])({constructOnly:!0})],M.prototype,"context",void 0),Object(r["a"])([Object(f["b"])()],M.prototype,"extent",null),Object(r["a"])([Object(f["b"])()],M.prototype,"updating",null),Object(r["a"])([Object(f["b"])({readOnly:!0})],M.prototype,"watchUpdatingTracking",void 0),Object(r["a"])([Object(f["b"])()],M.prototype,"updatingTotal",null),Object(r["a"])([Object(f["b"])()],M.prototype,"updatingRemaining",null),Object(r["a"])([Object(f["b"])()],M.prototype,"expectedFeatureDiff",null),Object(r["a"])([Object(f["b"])()],M.prototype,"memoryForUnusedFeatures",null),Object(r["a"])([Object(f["b"])()],M.prototype,"maximumNumberOfFeaturesExceeded",null),Object(r["a"])([Object(f["b"])({readOnly:!0})],M.prototype,"serviceDataExtent",void 0),Object(r["a"])([Object(f["b"])({readOnly:!0})],M.prototype,"serviceDataCount",void 0),Object(r["a"])([Object(f["b"])({readOnly:!0})],M.prototype,"vertexLimitExceeded",void 0),Object(r["a"])([Object(f["b"])()],M.prototype,"displayFeatureLimit",void 0),Object(r["a"])([Object(f["b"])({type:Number})],M.prototype,"maximumNumberOfFeatures",null),Object(r["a"])([Object(f["b"])({readOnly:!0})],M.prototype,"mode",null),Object(r["a"])([Object(f["b"])({readOnly:!0})],M.prototype,"maxTotalSnapshotVertices",null),Object(r["a"])([Object(f["b"])({readOnly:!0,dependsOn:["mode"]})],M.prototype,"tileDescriptors",null),Object(r["a"])([Object(f["b"])()],M.prototype,"tileFetcher",void 0),Object(r["a"])([Object(f["b"])()],M.prototype,"fetchDataInfoPromise",void 0),Object(r["a"])([Object(f["b"])({readOnly:!0})],M.prototype,"vertexLimitInfo",null),M=Object(r["a"])([Object(b["a"])("esri.layers.graphics.controllers.FeatureTileController3D")],M);const P=1e4,N=12e3,V=1e4,k=5e6;function L(e,t){if(!t)return!1;for(const i of t)if(!e.has(i))return!0;return!1}var q;!function(e){function t(){e.MAX_FEATURE_COUNT_FOR_EXTENT=P,e.QUERY_STATISTICS_TIMEOUT=N,e.QUERY_EXTENT_TIMEOUT=V}e.NO_SERVICE_DATA_COUNT=1/0,e.MAX_SNAPSHOT_MIN_SCALE_FACTOR=5,e.reset=t}(q||(q={})),q.reset()},ceb0:function(e,t,i){"use strict";i.d(t,"a",(function(){return F}));var r=i("a4ee"),s=i("e20b"),a=i("ce50"),n=i("e92d"),o=i("b2b2"),l=i("f4cc"),u=i("3795"),c=i("59b2"),h=(i("b50f"),i("c120"),i("cea0"),i("d386")),d=i("22f4"),p=i("1f3b"),m=i("96d4"),f=i("c1da"),b=i("69dd"),y=i("82fa"),g=i("ad73"),_=i("f353");const O=n["a"].getLogger("esri.views.layers.FeatureLayerView"),F=e=>{let t=class extends e{constructor(...e){super(...e),this._updatingRequiredFieldsPromise=null,this.filter=null,this.timeExtent=null,this.layer=null,this.requiredFields=[],this.view=null}initialize(){Object(u["a"])(this,["layer.renderer","layer.labelingInfo","layer.elevationInfo.featureExpressionInfo","layer.displayField","filter","featureEffect","layer.timeInfo","layer.floorInfo","timeExtent"],()=>this._handleRequiredFieldsChange(),!0),Object(u["b"])(this,"view.floors","change",()=>this._handleRequiredFieldsChange()),Object(u["b"])(this,"layer.sublayer","change",()=>this._handleRequiredFieldsChange())}get availableFields(){const{layer:e,layer:{fieldsIndex:t},requiredFields:i}=this;return"outFields"in e&&e.outFields?Object(f["j"])(t,[...Object(f["u"])(t,e.outFields),...i]):Object(f["j"])(t,i)}set effect(e){Object(s["c"])(O,"effect",{replacement:"featureEffect",version:"4.22"}),this.featureEffect=e}get effect(){return Object(s["c"])(O,"effect",{replacement:"featureEffect",version:"4.22"}),this.featureEffect}get featureEffect(){return this.layer&&"featureEffect"in this.layer?this.layer.featureEffect:null}set featureEffect(e){void 0!==e?this._override("featureEffect",e):this._clearOverride("featureEffect")}get maximumNumberOfFeatures(){return 0}set maximumNumberOfFeatures(e){O.error("#maximumNumberOfFeatures=","Setting maximum number of features is not supported")}get maximumNumberOfFeaturesExceeded(){return!1}highlight(e){throw new Error("missing implementation")}createQuery(){const e={outFields:["*"],returnGeometry:!0,outSpatialReference:this.view.spatialReference},t=Object(o["k"])(this.filter)?this.filter.createQuery(e):new b["a"](e);if("feature"===this.layer.type){const e=Object(_["b"])(this);Object(o["k"])(e)&&(t.where=t.where?`(${t.where}) AND (${e})`:e)}return Object(o["k"])(this.timeExtent)&&(t.timeExtent=Object(o["k"])(t.timeExtent)?t.timeExtent.intersection(this.timeExtent):this.timeExtent.clone()),t}queryFeatures(e,t){throw new Error("missing implementation")}queryObjectIds(e,t){throw new Error("missing implementation")}queryFeatureCount(e,t){throw new Error("missing implementation")}queryExtent(e,t){throw new Error("missing implementation")}async fetchPopupFeatures(e,t){const i=this.validateFetchPopupFeatures(t);if(i)throw i;return this.fetchClientPopupFeatures(t)}_loadArcadeModules(e){if(e.get("expressionInfos.length")||Array.isArray(e.content)&&e.content.some(e=>"expression"===e.type))return Object(y["e"])()}_handleRequiredFieldsChange(){const e=this._updateRequiredFields();this._set("_updatingRequiredFieldsPromise",e),e.then(()=>{this._updatingRequiredFieldsPromise===e&&this._set("_updatingRequiredFieldsPromise",null)})}async _updateRequiredFields(){if(!this.layer||!this.view)return;const e="3d"===this.view.type,{layer:t,layer:{fieldsIndex:i,objectIdField:r}}=this,s="renderer"in t&&t.renderer,a="orderBy"in t&&t.orderBy,n=t.featureReduction,u=new Set,c=await Object(l["j"])([s?s.collectRequiredFields(u,i):null,Object(f["g"])(u,t),e?Object(f["b"])(u,t):null,Object(o["k"])(this.filter)?Object(f["f"])(u,t,this.filter):null,Object(o["k"])(this.featureEffect)?Object(f["f"])(u,t,this.featureEffect.filter):null,n?Object(f["c"])(u,t,n):null,a?Object(f["h"])(u,t,a):null]);if(t.timeInfo&&this.timeExtent&&Object(f["e"])(u,t.fieldsIndex,[t.timeInfo.startField,t.timeInfo.endField]),"feature"===t.type&&t.floorInfo&&Object(f["e"])(u,t.fieldsIndex,[t.floorInfo.floorField]),"subtype-group"===t.type){Object(f["d"])(u,i,t.subtypeField);const e=t.sublayers.map(e=>{var t;return Promise.all([null==(t=e.renderer)?void 0:t.collectRequiredFields(u,i),Object(f["g"])(u,e)])});await Object(l["j"])(e)}for(const o of c)o.error&&O.error(o.error);Object(f["d"])(u,i,r),e&&"displayField"in t&&t.displayField&&Object(f["d"])(u,i,t.displayField);const h=Array.from(u).sort();this._set("requiredFields",h)}validateFetchPopupFeatures(e){if(Object(o["j"])(e))return null;for(const t of e.clientGraphics){const i=t.layer;if("popupEnabled"in i&&!i.popupEnabled)return new a["a"]("featurelayerview:fetchPopupFeatures","Popups are disabled",{layer:i});if("popupTemplate"in i&&!Object(g["a"])(i,e))return new a["a"]("featurelayerview:fetchPopupFeatures","Layer does not define a popup template",{layer:i});if(t.isAggregate&&!(i.featureReduction&&"popupTemplate"in i.featureReduction&&i.featureReduction.popupEnabled&&i.featureReduction.popupTemplate))return new a["a"]("featurelayerview:fetchPopupFeatures","Popups are disabled",{layer:i})}}async fetchClientPopupFeatures(e){const t=Object(o["k"])(e)?e.clientGraphics:null;if(!t||0===t.length)return[];const i=new Array(t.length),r=new Map,s=await this.createPopupQuery(e);for(let a=0;ae.layer):[this.layer];for(const a of s){if(!("popupEnabled"in a))continue;const t=Object(g["a"])(a,e);if(!Object(o["k"])(t))continue;const s=await this._loadArcadeModules(t),n=s&&s.arcadeUtils.hasGeometryOperations(t);r=!("point"!==this.layer.geometryType&&!n);const l=await Object(g["b"])(this.layer,t);for(const e of l)i.add(e)}if(t.returnGeometry=r,t.returnZ=r,t.returnM=r,t.outFields=Array.from(i),t.outSpatialReference=this.view.spatialReference,"feature"===this.layer.type){const e=Object(_["b"])(this);Object(o["k"])(e)&&(t.where=t.where?`(${t.where}) AND (${e})`:e)}return t}canResume(){return!!super.canResume()&&(!Object(o["k"])(this.timeExtent)||!this.timeExtent.isEmpty)}};return Object(r["a"])([Object(c["b"])()],t.prototype,"_updatingRequiredFieldsPromise",void 0),Object(r["a"])([Object(c["b"])({readOnly:!0})],t.prototype,"availableFields",null),Object(r["a"])([Object(c["b"])()],t.prototype,"effect",null),Object(r["a"])([Object(c["b"])({type:p["a"]})],t.prototype,"featureEffect",null),Object(r["a"])([Object(c["b"])({type:m["a"]})],t.prototype,"filter",void 0),Object(r["a"])([Object(c["b"])(d["a"])],t.prototype,"timeExtent",void 0),Object(r["a"])([Object(c["b"])()],t.prototype,"layer",void 0),Object(r["a"])([Object(c["b"])({type:Number})],t.prototype,"maximumNumberOfFeatures",null),Object(r["a"])([Object(c["b"])({readOnly:!0,type:Boolean})],t.prototype,"maximumNumberOfFeaturesExceeded",null),Object(r["a"])([Object(c["b"])({readOnly:!0})],t.prototype,"requiredFields",void 0),Object(r["a"])([Object(c["b"])()],t.prototype,"suspended",void 0),Object(r["a"])([Object(c["b"])()],t.prototype,"view",void 0),t=Object(r["a"])([Object(h["a"])("esri.views.layers.FeatureLayerView")],t),t}},e60a:function(e,t,i){"use strict";i.d(t,"a",(function(){return N})),i.d(t,"b",(function(){return L}));var r=i("a4ee"),s=i("fc29"),a=i("af40"),n=i("e92d"),o=i("28eb"),l=i("b2b2"),u=i("f4cc"),c=i("5815"),h=i("3795"),d=i("59b2"),p=i("b50f"),m=(i("c120"),i("cea0"),i("d386")),f=i("9180"),b=i("1a54"),y=i("79e4"),g=i("69dd"),_=i("3c9c"),O=i("3563");class F{constructor(e,t){this.highestResolutionVersion=null,this.versions=[],this.ref(e,t)}get isReferenced(){return 0!==this.versions.length}get isSingle(){return 1===this.versions.length&&1===this.versions[0].refCount}ref(e,t){const i=this.feature;v.oldVersion=i,this.feature&&Object.defineProperty(e,"uid",{value:this.feature.uid,configurable:!0});for(const s of this.versions)if(s.resolution===t){s.refCount++;const t=this.highestResolutionVersion===s&&!Object(O["a"])(e,s.feature);return(t||this.highestResolutionVersion!==s)&&(s.feature=e),v.newVersion=t?e:i,v}const r={feature:e,resolution:t,refCount:1};return this.versions.push(r),!this.highestResolutionVersion||t0&&(this.refCount--,!this.isReferenced)?(v.newVersion=null,v):(v.newVersion=this._feature,v)}get feature(){return this._feature}}const v={oldVersion:null,newVersion:null},x=16438,E=new Set;class w{constructor(e){this.descriptor=e,this.fetchStatus=R.FETCH_NEEDED,this._features=null,this._numVertices=0,this._featureLimit=0,this.featuresMissing=!0,this._shuffled=!1,this._numFeatures=T,this._emptyFeatureRatio=0,this._estimatedSize=-1,this._estimatedUnusedSize=0,this._estimatedUnusedSizeDirty=!1,this._availableFields=E,this._displayingFeatures=null,this.alive=!0,this.filtered=!1}get displayingFeatures(){return this._displayingFeatures}set displayingFeatures(e){this._displayingFeatures=e,this.extentIncludingBorrowedFeatures=null}get perTileMaximumNumberOfFeaturesExceeded(){return!this.filtered&&(this.featuresMissing||this.features&&this.featureLimit!==this.features.length)}get features(){return this._features}get featureLimit(){return this._featureLimit}set featureLimit(e){this._featureLimit!==e&&(this._featureLimit=e,this._estimatedUnusedSizeDirty=!0)}get availableFields(){return this._availableFields}setFeatures(e,t,i){this._availableFields=Object(l["u"])(i,E),this._features=e,this._shuffled=!1,this._estimatedSize=-1,this._estimatedUnusedSizeDirty=!0,e&&e.length>0?(this._emptyFeatureRatio=t/(e.length+t),this._numVertices=e.reduce((e,t)=>e+Object(b["k"])(t.geometry),0)):(this._emptyFeatureRatio=0,this._numVertices=0)}get emptyFeatureRatio(){return this._emptyFeatureRatio}get numFeatures(){return this.hasPreciseFeatureCount?this._numFeatures:this._features?this._features.length:0}set numFeatures(e){this._numFeatures=e}get hasPreciseFeatureCount(){return this._numFeatures>T}get needsFeatureCount(){return this._numFeatures===T}get numVertices(){return this._numVertices}get id(){return this.descriptor.id}get estimatedSize(){return this.updateMemoryEstimates(),this._estimatedSize}get estimatedUnusedSize(){return this._estimatedUnusedSize}updateMemoryEstimates(){if(this._estimatedSize<0){if(this._estimatedSize=0,this._estimatedUnusedSize=0,this._features)for(let e=0;e=this.featureLimit&&(this._estimatedUnusedSize+=t)}return!0}if(this._estimatedUnusedSizeDirty){if(this._estimatedUnusedSize=0,this._estimatedUnusedSizeDirty=!1,this._features)for(let e=this.featureLimit;eObject(b["g"])(t,e)-Object(b["g"])(i,e)),Object(p["m"])(this._features,x),this._shuffled=!0,this._estimatedUnusedSizeDirty=!0}reduceFeatures(e,t,i){if(e<=0)return!1;if(!this._features)return this.featureLimit=0,!1;let r=!1;this.featureLimit=Math.ceil(this.numFeatures*e),this.featureLimit>this._features.length&&(this.featureLimit=this._features.length,this.fetchStatus===R.DONE&&this._features.length>0&&(this.fetchStatus=R.REFETCH_NEEDED,r=!0)),!this._shuffled&&e<1&&this._shuffle(i);const s=Math.max(this.featureLimit,Math.ceil(t*this.numFeatures));return this._features.length>s&&(this._features.length=s,this.featuresMissing=!0,this.fetchStatus===R.FULL&&(this.fetchStatus=R.DONE)),r}get cache(){return{availableFields:this._availableFields,features:this.features,numFeatures:this._numFeatures,emptyFeatureRatio:this._emptyFeatureRatio,fetchStatus:this.fetchStatus,featuresMissing:this.featuresMissing}}set cache(e){this.requestController=null,this._availableFields=e.availableFields,this._features=e.features,this._numFeatures=e.numFeatures,this._emptyFeatureRatio=e.emptyFeatureRatio,this.fetchStatus=e.fetchStatus,this.featuresMissing=e.featuresMissing,this._estimatedSize=-1,this._estimatedUnusedSizeDirty=!0}}const T=-1,C=-2;var R;function I(e,t,i){if(Object(l["j"])(t)||Object(l["j"])(e)||i!==t.length||i>e.length)return!1;for(let r=0;re+=t.estimatedUnusedSize),e}get totalVertices(){let e=0;return this.featureTiles.forEach(t=>e+=t.numVertices),e}get totalFeatures(){let e=0;return this.featureTiles.forEach(t=>e+=t.numFeatures),e}set filterExtent(e){if(e&&this.context.tilingScheme&&!e.spatialReference.equals(this.context.tilingScheme.spatialReference))return void P.error("#filterExtent=","extent needs to be in the same spatial reference as the tiling scheme");const t=this._get("filterExtent");if(t===e||t&&e&&t.equals(e))return;const i=e?e.clone():null;this._set("filterExtent",i),this._reclip(i,t)}initialize(){this.handles.add(Object(h["b"])(this,"tileDescriptors","change",()=>this._setDirty(),()=>this._setDirty())),this.objectIdField=this.context.objectIdField,this.FeatureReferenceClass=this.context.capabilities.supportsMultipleResolutions?F:j;const e=this.context.scheduler;Object(l["k"])(e)&&(this._frameTask=e.registerTask(M["c"].FEATURE_TILE_FETCHER,this)),this._setDirty()}destroy(){this._frameTask.remove(),this.handles=Object(l["d"])(this.handles),this.featureTiles.forEach(e=>{this._cancelFetchTile(e),this._removeTile(e)}),this.featureTiles.clear(),this.displayingFeatureReferences.clear(),this.pendingEdits&&(this.pendingEdits.controller.abort(),this.pendingEdits=null)}get paused(){return this.suspended||!!this.pendingEdits}restart(){this.featureTiles.forEach(e=>{this._cancelFetchTile(e),this._clearTile(e),this._resetFetchTile(e)}),Object(l["k"])(this.context.memoryCache)&&this.context.memoryCache.clear(),this._setDirty()}refetch(){this.featureTiles.forEach(e=>{this._cancelFetchTile(e),this._resetFetchTile(e)}),Object(l["k"])(this.context.memoryCache)&&this.context.memoryCache.clear(),this._setDirty()}suspend(){this.suspended||(this.suspended=!0,this._pause(),this._setDirty())}resume(){this.suspended&&(this.suspended=!1,this._unpause())}_pause(){this.paused&&(this.featureTiles.forEach(e=>this._cancelFetchTile(e)),this._updated())}_unpause(){this.paused||(this._setDirty(),this._updated())}get availableFields(){let e=null;return this.featureTiles.forEach(t=>{Object(l["j"])(t.displayingFeatures)||0===t.displayingFeatures.length||(Object(l["j"])(e)?e=new Set(t.availableFields):e.forEach(i=>{t.availableFields.has(i)||Object(l["t"])(e).delete(i)}))}),Object(l["k"])(e)?e:new Set}applyEdits(e){this.pendingEdits||(this.pendingEdits={edits:Promise.resolve(),count:0,controller:new AbortController},this._pause());const t=this.pendingEdits;t.count++;const i=t.edits.then(()=>e.result.catch(e=>{if(Object(u["m"])(e))throw e;return null}).then(e=>e?(this._applyEditsDeleteFeatures(e.deletedFeatures),this._applyEditsAddUpdateFeatures(e.addedFeatures,e.updatedFeatures,t.controller.signal).then(()=>e)):e).then(e=>(0==--t.count&&(this.pendingEdits===t&&(this.pendingEdits=null),Object(l["k"])(this.context.memoryCache)&&this.context.memoryCache.clear(),this._unpause(),this._updated()),e)));return t.edits=i,this._updated(),i}_applyEditsDeleteFeatures(e){if(0===e.length)return;const t=this.context.globalIdField,i=t&&this.availableFields.has(t),r=new Set,s=this.objectIdField;e.forEach(({objectId:e,globalId:a})=>{if((!e||e<0)&&t){i||P.errorOncePerTick(`Editing the specified service requires the layer's globalIdField, ${t} to be included the layer's outFields for updates to be reflected in the view`);const e=this.features.find(e=>e.attributes&&e.attributes[t]===a);e&&r.add(Object(b["g"])(e,s))}else r.add(e)}),this.featureTiles.forEach(e=>{if(!e.features)return;const t=e.features.filter(e=>!r.has(Object(b["g"])(e,this.objectIdField)));t.length!==e.features.length&&(e.setFeatures(t,0,e.availableFields),this._invalidateCounts())})}async _applyEditsAddUpdateFeatures(e,t,i){const r=[],s=new Set;if(e.forEach(e=>r.push(e.objectId)),t.forEach(e=>{r.push(e.objectId),s.add(e.objectId)}),0===r.length)return;const a=[];this.featureTiles.forEach(e=>{const t=this._applyEditsAddUpdateTile(e,r,s,i);t&&a.push(t)}),await Object(u["j"])(a)}async _applyEditsAddUpdateTile(e,t,i,r){if(!e.features)return;const s=this._createQuery(e);s.resultType=void 0,s.cacheHint=!1,s.objectIds=t;const a=await this._queryFeatures(s,r);let n=null;if(i.size>0){const t=e.features.filter(e=>!i.has(Object(b["g"])(e,this.objectIdField)));t.length!==e.features.length&&(n=t)}if(a.features.length>0){n||(n=e.features.slice());for(const e of a.features)n.push(e)}n&&(e.hasPreciseFeatureCount&&(e.numFeatures=Math.max(e.numFeatures,n.length)),e.setFeatures(n,0,G(e.availableFields,a.fields)),this._invalidateCounts())}_queryFeatures(e,t){return this.context.query.queryFeaturesDehydrated(e,{signal:t,timeout:Q})}_setDirty(){this._dirty=!0,this._updated()}get running(){return this.updating}runTask(e){if(this._frameTask.processQueue(e),!this._dirty||!this.constructed)return;this._dirty=!1;const t=this._getListOfTiles();if(this._markTilesNotAlive(t),!e.run(()=>this._addTiles(t,e))||!e.run(()=>this._filterExtentTiles(t,e))||!e.run(()=>this._removeTiles(t,e))||e.done)return void this._setDirty();const i=this._sortTiles(t);e.run(()=>this._displayTiles(i,e))&&e.run(()=>this._fetchTiles(i,e))&&e.run(()=>this._updateMemoryEstimates(i,e))||this._setDirty(),this._updated(),this.updating||this._updateMaximumNumberOfFeaturesExceeded()}_markTilesNotAlive(e){for(const t of e)t.alive=!1}_addTiles(e,t){return!this.suspended&&(this.tileDescriptors.forEach(i=>{const r=this.featureTiles.get(i.id);r?r.alive=!0:t.done||(e.push(this._addTile(i)),t.madeProgress())}),t.hasProgressed)}_filterExtentTiles(e,t){for(const i of e){if(t.done)break;i.alive&&(i.filtered=!i.intersects(this.filterExtent),i.filtered&&(this._clearTile(i),t.madeProgress()))}return t.hasProgressed}_removeTiles(e,t){for(let i=e.length-1;i>=0&&!t.done;i--){const r=e[i];r.alive||(this._removeTile(r),i!==e.length-1&&(e[i]=e[e.length-1]),e.pop(),t.madeProgress())}return t.hasProgressed}_sortTiles(e){return e.sort((e,t)=>e.descriptor.loadPriority-t.descriptor.loadPriority),e}_displayTiles(e,t){const i=this._updateRatio(e),r=e=>{const t=this._fullRatio<1?i(e)*this._farRatio:1;return e.reduceFeatures(t,this.memoryFactor,this.objectIdField)&&this._setDirty(),this._showTile(e)};for(const s of e)if(!t.run(()=>r(s))){this._setDirty();break}return t.hasProgressed}_fetchTiles(e,t){if(this.paused)return!1;let i=!1;for(const r of e){if(!r.needsFetching)continue;const e=Object(l["k"])(this.context.memoryCache)?this.context.memoryCache.pop(r.id):null;if(Object(l["k"])(e))r.cache=e,this._setDirty(),this._scheduleUpdated(),t.madeProgress();else{if(this._needsNumFeatures(r)){const e=new AbortController,s=this._fetchTileCount(r,e.signal);this._handleRequest(r,s,e,()=>r.numFeatures=C),i=!0,t.madeProgress()}if(t.done)return!0}}if(i)return t.hasProgressed;for(const r of e)if(r.needsFetching){const e=new AbortController,i=this._fetchTile(r,e.signal);if(this._handleRequest(r,i,e,e=>{r.setFeatures([],0,null),this._invalidateCounts(),r.featuresMissing=!1,this.context.logFetchError(P,e)}),t.madeProgress(),t.done)return!0}return t.hasProgressed}_updateMemoryEstimates(e,t){return e.some(e=>!t.run(()=>e.updateMemoryEstimates())&&(this._setDirty(),!0)),t.hasProgressed}_reclip(e,t){if(!this.constructed)return;const i=new Array;this.featureTiles.forEach(r=>{Object(l["j"])(r.displayingFeatures)||0===r.displayingFeatures.length||(r.intersectionIncludingBorrowed(t,H),r.intersectionIncludingBorrowed(e,z),Object(f["o"])(H,z)||i.push(r))}),this._refreshDisplayingFeatures(i),this._updated()}_refreshDisplayingFeatures(e){const t=new Set,i=this.changes.updates;for(const r of e)if(!Object(l["j"])(r.displayingFeatures))for(const e of r.displayingFeatures){const r=Object(b["g"])(e,this.objectIdField);if(t.has(r))continue;t.add(r);const{feature:s}=this.displayingFeatureReferences.get(r);i.removes.push(s),i.adds.push(s)}this._applyChanges()}_updated(){let e=0;this.paused||this.featureTiles.forEach(t=>t.isFetching?++e:0);const t=this._dirty||e>0||!!this.pendingEdits;if(this._set("updating",t),t){let t=0,i=0,r=0,s=0,a=0;const n=this.displayingFeatureReferences.size/this.numDisplayingFeatureReferences;this.featureTiles.forEach(e=>{if(++i,e.isFetching&&e.hasPreciseFeatureCount){const t=this._maximumFeaturesForTile(e)*(1-e.emptyFeatureRatio),i=Object(l["k"])(e.displayingFeatures)?e.displayingFeatures.length*n:0;a+=t-i}e.needsFetching?++s:e.numFeatures>0&&(++r,t+=e.numFeatures)}),s+=e;let o=0,u=0;t?(u=t,o=Math.min(s*t/r,t)):(u=i,o=s),a=Math.min(this.maximumNumberOfFeatures-this.features.length,a),this._set("updatingTotal",u),this._set("updatingRemaining",o),this._set("expectedFeatureDiff",a)}else this._set("updatingTotal",0),this._set("updatingRemaining",0),this._set("expectedFeatureDiff",0);this.debugger&&this.debugger.update()}_updateMaximumNumberOfFeaturesExceeded(){const e=Object(o["c"])(this.featureTiles,e=>e.perTileMaximumNumberOfFeaturesExceeded);this._set("maximumNumberOfFeaturesExceeded",e)}_updateRatio(e){const t=k(e),i=e=>1/(1<e&&this.featureTiles.forEach(e=>{if(!e.featuresMissing)return;const t=this._maximumFeaturesForTile(e);e.features&&(e.features.length>=t||e.fetchStatus===R.FULL)||(this._cancelFetchTile(e),this._resetFetchTile(e))}),this._setDirty())}_addTile(e){const t=new w(e);return this.featureTiles.set(t.id,t),this._resetFetchTile(t),this._referenceDisplayingFeaturesFromRelatedTiles(t),t}_referenceDisplayingFeaturesFromRelatedTiles(e){const t=e.descriptor.resolution;this.featureTiles.forEach(i=>{if(!(Object(l["j"])(i.displayingFeatures)||e===i||e.descriptor.lij&&i.descriptor.lij&&!Object(D["i"])(e.descriptor.lij,i.descriptor.lij))){Object(l["j"])(e.displayingFeatures)&&(e.displayingFeatures=[]),e.descriptor.extent&&i.descriptor.extent&&(Object(l["j"])(e.extentIncludingBorrowedFeatures)&&(e.extentIncludingBorrowedFeatures=Object(f["f"])(e.descriptor.extent)),Object(f["p"])(e.extentIncludingBorrowedFeatures,i.descriptor.extent,e.extentIncludingBorrowedFeatures));for(const r of i.displayingFeatures){e.displayingFeatures.push(r);const i=this.displayingFeatureReferences.get(Object(b["g"])(r,this.objectIdField));i.ref(i.feature,t),this.numDisplayingFeatureReferences++}}}),e.featureLimit=Object(l["k"])(e.displayingFeatures)?e.displayingFeatures.length:0}_removeTile(e){this._clearTile(e),this.featureTiles.delete(e.id)}_resetFetchTile(e){e.filtered=!e.intersects(this.filterExtent),e.filtered?e.needsFetching&&(e.fetchStatus=R.DONE):e.fetchStatus=R.FETCH_NEEDED}_cancelFetchTile(e){const t=e.requestController;Object(l["k"])(t)&&(e.requestController=null,e.resetFetching(),t.abort())}async _fetchTileCount(e,t){return e.numFeatures=await this._fetchCount(e,t),this._updateRatio(this._getListOfTiles()),e.fetchStatus===R.REFETCHING?R.REFETCH_NEEDED:R.FETCH_NEEDED}async _fetchTile(e,t){const i=this._maximumFeaturesForTile(e);if(i<=0)return A(e);const r=this._getMaxRecordCount(e),s=Math.ceil(i/r);if(V(e)||!this.context.capabilities.supportsMaxRecordCountFactor||e.numFeatures<=i&&s>g["a"].MAX_MAX_RECORD_COUNT_FACTOR)return this._fetchPagedTile(e,t);const a=this._createQuery(e);if(a.maxRecordCountFactor=Math.ceil(i/r),e.isRefetching&&e.features&&e.features.length>0){const t=Math.ceil(e.features.length/(1-e.emptyFeatureRatio)/r);a.maxRecordCountFactor=Math.max(t+1,a.maxRecordCountFactor)}const{features:n,exceededTransferLimit:o,fields:l}=await this._queryFeatures(a,t),u=o?a.maxRecordCountFactor>=g["a"].MAX_MAX_RECORD_COUNT_FACTOR?R.FULL:R.DONE:R.FULL;return await this._frameTask.schedule(()=>{e.featuresMissing=n.length{h&&(r+=Object(l["t"])(c.num)),a+=d.length,s+=this._removeEmptyFeatures(d),e.featuresMissing=r0&&this.context.capabilities.supportsMaxRecordCountFactor?(e.maxRecordCountFactor=Math.ceil(i/r),e.num=Math.min(e.maxRecordCountFactor*r,i)):e.num=Math.min(r),!0)}_getEffectiveTileResolution(e){if(null==e.descriptor.resolution)return null;const t=this.context.viewingMode===_["a"].Global?this.context.tilingScheme.resolutionAtLevel(3):1/0;return Math.min(e.descriptor.resolution,t)/this.lodFactor}get supportsResolution(){return this.context.capabilities.supportsMultipleResolutions&&"point"!==this.context.geometryType}_setResolutionParams(e,t){if(!this.supportsResolution)return;const i=this._getEffectiveTileResolution(t);null!=i&&(this.context.capabilities.supportsQuantization?e.quantizationParameters=new y["a"]({mode:"view",originPosition:"upper-left",tolerance:i,extent:this.context.fullExtent}):"polyline"===this.context.geometryType&&(e.maxAllowableOffset=i))}_removeEmptyFeatures(e){const t=e.length;for(let i=0;i0&&this.context.capabilities.supportsResultType?t:Object(l["k"])(i)&&i>0?i:B}_useTileQuery(e){return(!V(e)||!this.context.capabilities.supportsCacheHint)&&this.context.capabilities.supportsResultType}_handleRequest(e,t,i,r){e.fetchStatus=e.needsRefetching?R.REFETCHING:R.FETCHING,e.requestController=i;let s=!1;t.then(t=>{e.requestController=null,e.fetchStatus=t}).catch(t=>{e.requestController===i&&(e.requestController=null,e.fetchStatus=R.DONE),Object(u["m"])(t)?s=!0:r(t)}).then(()=>{s||this._setDirty(),this._scheduleUpdated()})}_scheduleUpdated(){this.handles&&!this.handles.has("scheduleUpdated")&&this.handles.add(Object(c["b"])(()=>{this.handles.remove("scheduleUpdated"),this._updated()}),"scheduleUpdated")}_showTile(e){if(Object(l["k"])(e.displayingFeatures)&&!e.needsDisplayUpdate)return!1;const t=e.features;if(0===e.featureLimit||!t){const t=Object(l["k"])(e.displayingFeatures)&&e.displayingFeatures.length>0;return this._hideTileFeatures(e),e.displayingFeatures=[],t}const i=e.descriptor.resolution,r=this.changes.updates,s=this.changes.adds,a=Math.min(e.featureLimit,t.length);e.featureLimit=a;for(let n=0;n0&&(this.features.removeMany(e.removes),e.removes.length=0),e.adds.length>0&&(this.features.addMany(e.adds),e.adds.length=0);const t=this.changes.adds,i=this.changes.removes,r=Math.min(t.length,i.length);let s=0;for(;sr&&this.features.addMany(0===s?t:t.slice(s)),i.length>r&&this.features.removeMany(0===s?i:i.slice(s)),t.length=0,i.length=0}_clearTile(e){if(this._hideTile(e),e.features&&Object(l["k"])(this.context.memoryCache)){const t=16+e.estimatedSize;this.context.memoryCache.put(e.id,e.cache,t)}e.setFeatures(null,0,null),this._invalidateCounts()}_invalidateCounts(){this.notifyChange("totalVertices"),this.notifyChange("totalFeatures"),this.notifyChange("memoryForUnusedFeatures")}_getListOfTiles(){return Array.from(this.featureTiles.values())}get storedFeatures(){return this._getListOfTiles().reduce((e,t)=>e+(t.features?t.features.length:0),0)}_maximumFeaturesForTile(e){const t=e.hasPreciseFeatureCount?e.numFeatures:1/0,i=e.hasPreciseFeatureCount?t:this.maximumNumberOfFeatures,r=this._fullRatio<1?this._farRatio:1;return Math.min(Math.ceil(i*r/(1-e.emptyFeatureRatio)),t)}get test(){return{process:e=>this.runTask(e),getFeatureTileById:e=>this.featureTiles.get(e),forEachFeatureTile:e=>this.featureTiles.forEach(e)}}};function V(e){return"dummy-tile-full-extent"===e.id}function k(e){let t=0;for(const i of e)i.features&&i.features.length>0&&i.alive&&(t=Math.max(t,i.descriptor.lij[0]));return t}function L(e){const t=e.capabilities.query;return{supportsMultipleResolutions:q(e),supportsPagination:!(!t||!t.supportsPagination),supportsResultType:!(!t||!t.supportsResultType),supportsCacheHint:!(!t||!t.supportsCacheHint),supportsQuantization:!(!t||!t.supportsQuantization),supportsQuantizationEditMode:!(!t||!t.supportsQuantizationEditMode),supportsMaxRecordCountFactor:!(!t||!t.supportsMaxRecordCountFactor),supportsFormatPBF:!(!t||!t.supportsFormatPBF)}}function q(e){switch(e.geometryType){case"polyline":return!0;case"polygon":return e.capabilities&&e.capabilities.query&&e.capabilities.query.supportsQuantization;default:return!1}}function A(e){return e.setFeatures([],0,null),e.featuresMissing=!1,R.DONE}function U(e){return Object(l["j"])(e)?new Set:new Set(e.map(e=>e.name))}function G(e,t){if(Object(l["j"])(e)||Object(l["j"])(t))return U(t);const i=new Set;for(const{name:r}of t)e.has(r)&&i.add(r);return i}Object(r["a"])([Object(d["b"])({constructOnly:!0})],N.prototype,"features",void 0),Object(r["a"])([Object(d["b"])()],N.prototype,"tileDescriptors",void 0),Object(r["a"])([Object(d["b"])({value:1/0})],N.prototype,"maximumNumberOfFeatures",null),Object(r["a"])([Object(d["b"])({value:1})],N.prototype,"memoryFactor",null),Object(r["a"])([Object(d["b"])({value:1})],N.prototype,"lodFactor",null),Object(r["a"])([Object(d["b"])()],N.prototype,"useTileCount",null),Object(r["a"])([Object(d["b"])({readOnly:!0})],N.prototype,"updating",void 0),Object(r["a"])([Object(d["b"])({readOnly:!0})],N.prototype,"updatingTotal",void 0),Object(r["a"])([Object(d["b"])({readOnly:!0})],N.prototype,"updatingRemaining",void 0),Object(r["a"])([Object(d["b"])({readOnly:!0})],N.prototype,"expectedFeatureDiff",void 0),Object(r["a"])([Object(d["b"])({readOnly:!0})],N.prototype,"memoryForUnusedFeatures",null),Object(r["a"])([Object(d["b"])({readOnly:!0})],N.prototype,"maximumNumberOfFeaturesExceeded",void 0),Object(r["a"])([Object(d["b"])({constructOnly:!0})],N.prototype,"maximumNumberOfFeaturesExceededThrottle",void 0),Object(r["a"])([Object(d["b"])({readOnly:!0})],N.prototype,"totalVertices",null),Object(r["a"])([Object(d["b"])({readOnly:!0})],N.prototype,"totalFeatures",null),Object(r["a"])([Object(d["b"])()],N.prototype,"filterExtent",null),Object(r["a"])([Object(d["b"])({constructOnly:!0})],N.prototype,"context",void 0),N=Object(r["a"])([Object(m["a"])("esri.views.3d.layers.support.FeatureTileFetcher3D")],N);const B=2e3,H=Object(f["l"])(),z=Object(f["l"])(),Q=6e5,Z=200},eec2:function(e,t,i){"use strict";i.d(t,"a",(function(){return n}));var r=i("b2b2"),s=i("9786"),a=i("e2e8");function n(e){const t=e.view.spatialReference,i=e.layer.fullExtent,n=Object(r["k"])(i)&&i.spatialReference;if(Object(r["j"])(i)||!n)return Promise.resolve(null);if(n.equals(t))return Promise.resolve(i.clone());const o=Object(s["d"])(i,t);return Object(r["k"])(o)?Promise.resolve(o):e.view.state.isLocal?Object(a["projectGeometry"])(i,t,e.layer.portalItem).then(t=>!e.destroyed&&t?t:void 0).catch(()=>null):Promise.resolve(null)}}}]); //# sourceMappingURL=chunk-722e9ff8.0a7da499.js.map