@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
3 lines (2 loc) • 10.2 kB
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */
import{__decorate as e}from"tslib";import r from"../PopupTemplate.js";import{MultiOriginJSONSupportMixin as t}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as i}from"../core/object.js";import{urlToObject as o}from"../core/urlUtils.js";import{property as s,subclass as n}from"../core/accessorSupport/decorators.js";import{Integer as p}from"../core/accessorSupport/ensureType.js";import a from"../geometry/Extent.js";import l from"../geometry/SpatialReference.js";import{featureGeometryTypeKebabDictionary as d}from"../geometry/support/typeUtils.js";import m from"../graphic/WFSGraphicOrigin.js";import u from"./Layer.js";import{WFSSource as y}from"./graphics/sources/WFSSource.js";import{BlendLayer as f}from"./mixins/BlendLayer.js";import{CustomParametersMixin as c}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as h}from"./mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as g}from"./mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as w}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as j}from"./mixins/OperationalLayer.js";import{OrderedLayer as v}from"./mixins/OrderedLayer.js";import{PortalLayer as b}from"./mixins/PortalLayer.js";import{RefreshableLayer as F}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as x}from"./mixins/ScaleRangeLayer.js";import{useViewTimeProperty as O}from"./mixins/TemporalLayer.js";import{wfsOidFieldName as I}from"./ogc/wfsUtils.js";import{elevationInfo as S,labelsVisible as R,legendEnabled as T,opacityDrawingInfo as P,popupEnabled as q,screenSizePerspectiveEnabled as L,url as U}from"./support/commonProperties.js";import{validateBinsQuery as C}from"./support/featureLayerUtils.js";import E from"./support/Field.js";import{defineFieldProperties as D}from"./support/fieldProperties.js";import{fixRendererFields as Q}from"./support/fieldUtils.js";import W from"./support/LabelClass.js";import{reader as V}from"./support/labelingInfo.js";import{webSceneRendererTypes as B,rendererTypes as N}from"../renderers/support/typeUtils.js";import X from"../rest/support/Query.js";import{createPopupTemplate as Y}from"../support/popupUtils.js";import{timeZoneProperty as A}from"../time/timeZoneUtils.js";import{writer as G}from"../core/accessorSupport/decorators/writer.js";var J;const M=D();let Z=J=class extends(v(h(c(w(g(f(F(x(j(b(t(u)))))))))))){static fromWFSLayerInfo(e){const{customParameters:r,fields:t,geometryField:i,geometryType:o,name:s,namespaceUri:n,objectIdField:p,spatialReference:a,swapXY:l,url:d,wfsCapabilities:m}=e;return new J({customParameters:r,fields:t,geometryField:i,geometryType:o,name:s,namespaceUri:n,objectIdField:p,spatialReference:a,swapXY:l,url:d,wfsCapabilities:m})}constructor(e){super(e),this.copyright=null,this.customParameters=null,this.dateFieldsTimeZone=null,this.definitionExpression=null,this.displayField=null,this.elevationInfo=null,this.featureUrl=void 0,this.fields=null,this.fieldsIndex=null,this.fullExtent=null,this.geometryType=null,this.graphicOrigin=new m(this),this.labelsVisible=!0,this.labelingInfo=null,this.legendEnabled=!0,this.objectIdField=null,this.operationalLayerType="WFS",this.maxRecordCount=3e3,this.maxPageCount=10,this.maxTotalRecordCount=2e5,this.mode=0,this.name=null,this.namespaceUri=null,this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.screenSizePerspectiveEnabled=!0,this.source=new y({layer:this}),this.spatialReference=l.WGS84,this.spatialReferences=[4326],this.swapXY=void 0,this.title="WFS",this.type="wfs",this.url=null,this.useViewTime=!0,this.version=void 0}destroy(){this.source?.destroy()}load(e){return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["WFS"]},e).then(()=>this.source.load(e)).then(()=>{this.read(this.source.sourceJSON,{origin:"service",url:this.parsedUrl}),["objectIdField","fields","spatialReference","name","namespaceUri"].forEach(e=>this.revertToOrigin(e,"service")),Q(this.renderer,this.fieldsIndex)})),Promise.resolve(this)}get capabilities(){return this.source?.capabilities}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("geometryType"),this.commitProperty("capabilities"),(this._get("createQueryVersion")||0)+1}get defaultPopupTemplate(){return this.createPopupTemplate()}writeFields(e,r,t){const o=e.filter(e=>e.name!==I);this.geometryField&&o.unshift(new E({name:this.geometryField,alias:this.geometryField,type:"geometry"})),i(t,o.map(e=>e.toJSON()),r)}get parsedUrl(){return o(this.url)}set renderer(e){Q(e,this.fieldsIndex),this._set("renderer",e)}get wfsCapabilities(){return this.source?.wfsCapabilities}set wfsCapabilities(e){this.source&&(this.source.wfsCapabilities=e)}createPopupTemplate(e){return Y(this,e)}createQuery(){return new X({returnGeometry:!0,outFields:["*"],where:this.definitionExpression||"1=1"})}getFieldDomain(e,r){return this.getField(e)?.domain}getField(e){return this.fieldsIndex?.get(e)}queryFeatures(e,r){return this.load().then(()=>this.source.queryFeatures(X.from(e)||this.createQuery(),r)).then(e=>{if(e?.features)for(const r of e.features)r.layer=r.sourceLayer=this,r.origin=this.graphicOrigin;return e})}queryObjectIds(e,r){return this.load().then(()=>this.source.queryObjectIds(X.from(e)||this.createQuery(),r))}queryFeatureCount(e,r){return this.load().then(()=>this.source.queryFeatureCount(X.from(e)||this.createQuery(),r))}queryExtent(e,r){return this.load().then(()=>this.source.queryExtent(X.from(e)||this.createQuery(),r))}async queryAttributeBins(e,r){const{source:t,capabilities:i}=await this.load();C(e,i,"WFSLayer");const o=await import("../rest/support/AttributeBinsQuery.js"),s=await t.queryAttributeBins(o.default.from(e),r);if(s.features)for(const n of s.features)n.layer=n.sourceLayer=this;return s}async hasDataChanged(){try{const{dataChanged:e,updates:r}=await this.source.refresh();return null!=r&&this.read(r,{origin:"service",url:this.parsedUrl,ignoreDefaults:!0}),e}catch{}return!1}};e([s({readOnly:!0})],Z.prototype,"capabilities",null),e([s({type:String})],Z.prototype,"copyright",void 0),e([s({readOnly:!0})],Z.prototype,"createQueryVersion",null),e([s({json:{name:"wfsInfo.customParameters",write:{overridePolicy:e=>({enabled:!!(e&&Object.keys(e).length>0),ignoreOrigin:!0})}}})],Z.prototype,"customParameters",void 0),e([s(A("dateFieldsTimeReference"))],Z.prototype,"dateFieldsTimeZone",void 0),e([s({readOnly:!0})],Z.prototype,"defaultPopupTemplate",null),e([s({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],Z.prototype,"definitionExpression",void 0),e([s({type:String})],Z.prototype,"displayField",void 0),e([s(S)],Z.prototype,"elevationInfo",void 0),e([s({type:String,readOnly:!0,json:{name:"wfsInfo.featureUrl",write:{ignoreOrigin:!0,isRequired:!0}}})],Z.prototype,"featureUrl",void 0),e([s({type:[E],json:{name:"layerDefinition.fields",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"fields"}}}})],Z.prototype,"fields",void 0),e([G("fields")],Z.prototype,"writeFields",null),e([s(M.fieldsIndex)],Z.prototype,"fieldsIndex",void 0),e([s({type:a,json:{name:"extent"}})],Z.prototype,"fullExtent",void 0),e([s()],Z.prototype,"geometryField",void 0),e([s({type:String,json:{read:{source:"layerDefinition.geometryType",reader:d.read},write:{target:"layerDefinition.geometryType",writer:d.write,ignoreOrigin:!0},origins:{service:{read:d.read}}}})],Z.prototype,"geometryType",void 0),e([s({readOnly:!0,clonable:!1})],Z.prototype,"graphicOrigin",void 0),e([s({type:String})],Z.prototype,"id",void 0),e([s(R)],Z.prototype,"labelsVisible",void 0),e([s({type:[W],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:{reader:V},write:!0}})],Z.prototype,"labelingInfo",void 0),e([s(T)],Z.prototype,"legendEnabled",void 0),e([s({type:["show","hide"]})],Z.prototype,"listMode",void 0),e([s({type:String})],Z.prototype,"objectIdField",void 0),e([s({type:["WFS"]})],Z.prototype,"operationalLayerType",void 0),e([s({type:p,json:{name:"wfsInfo.maxFeatures",write:{ignoreOrigin:!0,isRequired:!0}}})],Z.prototype,"maxRecordCount",void 0),e([s({type:p})],Z.prototype,"maxPageCount",void 0),e([s({type:p})],Z.prototype,"maxTotalRecordCount",void 0),e([s({type:[0],readOnly:!0,json:{origins:{"web-map":{write:{ignoreOrigin:!0,isRequired:!0}}}}})],Z.prototype,"mode",void 0),e([s({type:String,json:{name:"wfsInfo.name",write:{ignoreOrigin:!0,isRequired:!0}}})],Z.prototype,"name",void 0),e([s({type:String,json:{name:"wfsInfo.wfsNamespace",write:{ignoreOrigin:!0,isRequired:!0}}})],Z.prototype,"namespaceUri",void 0),e([s(P)],Z.prototype,"opacity",void 0),e([s(M.outFields)],Z.prototype,"outFields",void 0),e([s({readOnly:!0})],Z.prototype,"parsedUrl",null),e([s(q)],Z.prototype,"popupEnabled",void 0),e([s({type:r,json:{name:"popupInfo",write:!0}})],Z.prototype,"popupTemplate",void 0),e([s({types:N,json:{origins:{service:{name:"drawingInfo.renderer"},"web-scene":{types:B,name:"layerDefinition.drawingInfo.renderer",write:!0}},name:"layerDefinition.drawingInfo.renderer",write:{ignoreOrigin:!0}}})],Z.prototype,"renderer",null),e([s(L)],Z.prototype,"screenSizePerspectiveEnabled",void 0),e([s({readOnly:!0})],Z.prototype,"source",void 0),e([s({type:l,json:{name:"layerDefinition.spatialReference",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"extent.spatialReference"}}}})],Z.prototype,"spatialReference",void 0),e([s({readOnly:!0,type:[p],json:{name:"wfsInfo.supportedSpatialReferences",write:{ignoreOrigin:!0,isRequired:!0}}})],Z.prototype,"spatialReferences",void 0),e([s({type:Boolean,value:!1,json:{name:"wfsInfo.swapXY",write:{ignoreOrigin:!0,isRequired:!0}}})],Z.prototype,"swapXY",void 0),e([s({json:{write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"name"}}}})],Z.prototype,"title",void 0),e([s({json:{read:!1},readOnly:!0})],Z.prototype,"type",void 0),e([s(U)],Z.prototype,"url",void 0),e([s(O)],Z.prototype,"useViewTime",void 0),e([s({type:String,readOnly:!0,json:{name:"wfsInfo.version",write:{ignoreOrigin:!0,isRequired:!0}}})],Z.prototype,"version",void 0),e([s()],Z.prototype,"wfsCapabilities",null),Z=J=e([n("esri.layers.WFSLayer")],Z);const z=Z;export{z as default};