You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
8.9 KiB
20 lines
8.9 KiB
// 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 ../../../Graphic ../../../core/Error ../../../core/Logger ../../../core/maybe ../../../core/promiseUtils ../../../core/reactiveUtils ../../../core/accessorSupport/decorators/property ../../../core/has ../../../core/RandomLCG ../../../core/accessorSupport/decorators/subclass ../../../core/sql/WhereClause ../../../layers/buildingSublayers/BuildingComponentSublayer ../../../layers/support/FeatureFilter ../../../layers/support/fieldUtils ../../../rest/support/Query ./BuildingSublayerView3D ./I3SMeshView3D ./II3SMeshView3D ./i3s/BuildingFilterUtil ./i3s/I3SGeometryUtil ./i3s/I3SMeshViewFilter ./i3s/I3SQueryEngine ./i3s/I3SQueryFeatureAdapter ./i3s/I3SQueryFeatureStore ./i3s/I3SUtil ./support/DefinitionExpressionSceneLayerView ./support/TemporalSceneLayerView ../../layers/BuildingComponentSublayerView ../../layers/support/popupUtils ../../support/layerViewUtils ../../support/Scheduler".split(" "), |
|
function(g,x,r,m,y,t,p,k,f,O,z,A,P,B,l,u,C,D,E,v,F,q,G,H,I,w,J,K,L,n,M,N){f=class extends K.TemporalSceneLayerView(J.DefinitionExpressionSceneLayerView(D.I3SMeshView3D(C.BuildingSublayerView3DMixin(L)))){constructor(){super(...arguments);this.type="building-component-sublayer-3d";this.layerView=null;this._elevationContext="scene";this._supportsLabeling=this._isIntegratedMesh=!1;this.requiredFields=[];this.progressiveLoadFactor=1;this._queryEngine=null}get i3slayer(){return this.sublayer}get layerUid(){return this.sublayer.layer.uid}get sublayerUid(){return this.sublayer.uid}get layerId(){return this.sublayer.layer.id}get sublayerId(){return this.sublayer.id}get layerPopupEnabledAndHasTemplate(){return this.sublayer.popupEnabled&& |
|
n.hasPopupTemplate(this.sublayer,this.layerView?.view.popup?.defaultPopupTemplateEnabled)}initialize(){this._updatingHandles.add(()=>this.mergedFilter,b=>{null!=b&&q.I3SMeshViewFilter.checkSupport(b)?null!=this._i3sFilter?this._i3sFilter.viewFilter=b:this._i3sFilter=new q.I3SMeshViewFilter({viewFilter:b,layerFieldsIndex:this.sublayer.fieldsIndex,loadAsyncModule:c=>this._loadAsyncModule(c),addSqlFilter:(c,d)=>this.addSqlFilter(c,d,this.logError),addTimeFilter:(c,d)=>this.addTimeFilter(c,d)}):this._i3sFilter= |
|
y.destroyMaybe(this._i3sFilter)},p.syncAndInitial);this._updatingHandles.add(()=>[this.sublayer.renderer,this.definitionExpressionFields,this.filterExpressionFields],()=>this._updateRequiredFields());this._updatingHandles.add(()=>this.sublayer.renderer,b=>this._rendererChange(b),p.initial);const a=()=>this._filterChange();this._updatingHandles.add(()=>this.parsedDefinitionExpression,a);this._updatingHandles.add(()=>this._i3sFilter?.sortedObjectIds,a);this._updatingHandles.add(()=>this._i3sFilter?.parsedWhereClause, |
|
a);this._updatingHandles.add(()=>this.getTimeFilterDependencies(),a);this._updatingHandles.add(()=>this.mergedFilter,a);this._updatingHandles.add(()=>[this._i3sFilter?.parsedGeometry,this.filter?.spatialRelationship],()=>this._geometryFilterChange());this._updatingHandles.add(()=>this.parsedFilterExpressions,()=>this._updateSymbologyOverride(),p.initial);this.addResolvingPromise(this._updateRequiredFields())}get lodFactor(){return this.view.qualitySettings.sceneService.object.lodFactor}get parsedFilterExpressions(){return"Overview"!== |
|
this.sublayer.modelName&&this.layerView?this.layerView.filterExpressions.map(([a,b])=>{let c;try{c=A.WhereClause.create(a,this.sublayer.fieldsIndex)}catch(d){return m.getLogger(this).error("Failed to parse filterExpression: "+d),null}if(!c.isStandardized)return m.getLogger(this).error("filterExpression is using non standard function"),null;a=[];w.findFieldsCaseInsensitive(c.fieldNames,this.sublayer.fields,{missingFields:a});return 0<a.length?(m.getLogger(this).error(`filterExpression references unknown fields: ${a.join(", ")}`), |
|
null):[c,b]}).filter(a=>null!=a):[]}get filter(){return this._get("filter")}set filter(a){this._set("filter",q.I3SMeshViewFilter.checkSupport(a)?a:null)}isUpdating(){return super.isUpdating()||(this._i3sFilter?.updating??!1)}_updateSymbologyOverride(){const a=this.parsedFilterExpressions;0<a.length?this._setSymbologyOverride((b,c)=>{for(const [d,h]of a)try{if(d.testFeature(b))return v.applyFilterMode(c,h)}catch(e){this.logError(e)}return v.applyFilterMode(c,null)},this.filterExpressionFields):this._setSymbologyOverride(null, |
|
null)}get filterExpressionFields(){return l.fixFields(this.sublayer.fieldsIndex,this.parsedFilterExpressions.reduce((a,[b])=>a.concat(b.fieldNames),[]))}get availableFields(){var a=this.sublayer;const b=a.fieldsIndex;let c=this.requiredFields;if(a.outFields||a.layer.outFields)a=[...(a.outFields||[]),...(a.layer.outFields||[])],c=[...l.unpackFieldNames(b,a),...c];return l.fixFields(b,c)}_createLayerGraphic(a){return new x({attributes:a,layer:this.sublayer.layer,sourceLayer:this.sublayer})}canResume(){return super.canResume()&& |
|
M.isInEffectiveScaleRange(this.i3slayer.effectiveScaleRange,this.view.terrainScale)&&(!this._controller||this._controller.rootNodeVisible)}async fetchPopupFeaturesFromGraphics(a,b){var c=this._validateFetchPopupFeatures(b);if(c)throw c;if(0===a.length)return[];const d=[],h=[];c=null!=this.sublayer.associatedLayer?await this.sublayer.associatedLayer.load(b):this.sublayer;c=l.unpackFieldNames(this.sublayer.fieldsIndex,await n.getRequiredFields(c,n.getFetchPopupTemplate(this.sublayer,b)));t.throwIfAborted(b); |
|
b=new Set;for(const e of a)l.populateMissingFields(c,e,b)?h.push(e):d.push(e);if(0===h.length)return d;null!=this.sublayer.associatedLayer&&await this.sublayer.associatedLayer.load().catch(()=>m.getLogger(this).warn("Failed to load associated feature layer. Displaying popup attributes from cached attributes."));return this.whenGraphicAttributes(h,Array.from(b)).catch(e=>{t.throwIfAbortError(e);return h}).then(e=>d.concat(e))}async _updateRequiredFields(){const a=l.fixFields(this.sublayer.fieldsIndex, |
|
[...(this.sublayer.renderer?await this.sublayer.renderer.getRequiredFields(this.sublayer.fieldsIndex):[]),...this.definitionExpressionFields,...this.filterExpressionFields]);this._set("requiredFields",a)}_validateFetchPopupFeatures(a){const {sublayer:b}=this,{popupEnabled:c}=b;if(!c)return new r("buildingscenelayerview3d:fetchPopupFeatures","Popups are disabled",{sublayer:b});if(!n.getFetchPopupTemplate(b,a))return new r("buildingscenelayerview3d:fetchPopupFeatures","Layer does not define a popup template", |
|
{sublayer:b})}getFilters(){const a=super.getFilters();this.addSqlFilter(a,this.parsedDefinitionExpression,this.logError);this._i3sFilter?.addFilters(a,this.view,this._controller.crsIndex,this._collection);return a}createQuery(){const a={outFields:["*"],returnGeometry:!1,outSpatialReference:this.view.spatialReference};return null!=this.filter?this.filter.createQuery(a):new u(a)}queryExtent(a,b){return this._ensureQueryEngine().executeQueryForExtent(this._ensureQuery(a),b?.signal)}queryFeatureCount(a, |
|
b){return this._ensureQueryEngine().executeQueryForCount(this._ensureQuery(a),b?.signal)}queryFeatures(a,b){return this._ensureQueryEngine().executeQuery(this._ensureQuery(a),b?.signal).then(c=>{if(!c?.features)return c;const d=this.sublayer,h=d.layer;for(const e of c.features)e.layer=h,e.sourceLayer=d;return c})}queryObjectIds(a,b){return this._ensureQueryEngine().executeQueryForIds(this._ensureQuery(a),b?.signal)}_ensureQueryEngine(){null==this._queryEngine&&(this._queryEngine=this._createQueryEngine()); |
|
return this._queryEngine}_createQueryEngine(){const a=F.createGetFeatureExtent(this.view.spatialReference,this.view.renderSpatialReference,this._collection);return new G.I3SQueryEngine({layerView:this,priority:N.TaskPriority.FEATURE_QUERY_ENGINE,spatialIndex:new I.I3SQueryFeatureStore({featureAdapter:new H.I3SQueryFeatureAdapter({objectIdField:this.sublayer.objectIdField,attributeStorageInfo:this.sublayer.attributeStorageInfo,getFeatureExtent:a}),forAllFeatures:(b,c)=>this._forAllFeatures((d,h,e)=> |
|
b({id:d,index:h,meta:e}),c,E.ForAllFeaturesMode.QUERYABLE),getFeatureExtent:a,sourceSpatialReference:w.getIndexCrs(this.sublayer),viewSpatialReference:this.view.spatialReference})})}_ensureQuery(a){return this._addDefinitionExpressionToQuery(null==a?this.createQuery():u.from(a))}};g.__decorate([k.property()],f.prototype,"i3slayer",null);g.__decorate([k.property()],f.prototype,"layerView",void 0);g.__decorate([k.property()],f.prototype,"lodFactor",null);g.__decorate([k.property({readOnly:!0})],f.prototype, |
|
"parsedFilterExpressions",null);g.__decorate([k.property({type:B})],f.prototype,"filter",null);g.__decorate([k.property()],f.prototype,"_i3sFilter",void 0);g.__decorate([k.property({type:[String],readOnly:!0})],f.prototype,"filterExpressionFields",null);g.__decorate([k.property({type:[String],readOnly:!0})],f.prototype,"requiredFields",void 0);g.__decorate([k.property({type:[String],readOnly:!0})],f.prototype,"availableFields",null);return f=g.__decorate([z.subclass("esri.views.3d.layers.BuildingComponentSublayerView3D")], |
|
f)}); |