UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

1 lines 31.1 kB
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[3771],{67482:(e,t,n)=>{function r(e){return null!=s(e)||null!=a(e)}function o(e){return u.test(e)}function i(e){return s(e)??a(e)}function a(e){const t=new Date(e);return function(e,t){if(Number.isNaN(e.getTime()))return!1;let n=!0;if(c&&/\d+\W*$/.test(t)){const e=t.match(/[a-zA-Z]{2,}/);if(e){let t=!1,r=0;for(;!t&&r<=e.length;)t=!l.test(e[r]),r++;n=!t}}return n}(t,e)?Number.isNaN(t.getTime())?null:t.getTime()-6e4*t.getTimezoneOffset():null}function s(e){const t=u.exec(e);if(!t?.groups)return null;const n=t.groups,r=+n.year,o=+n.month-1,i=+n.day,a=+(n.hours??"0"),s=+(n.minutes??"0"),l=+(n.seconds??"0");if(a>23)return null;if(s>59)return null;if(l>59)return null;const c=n.ms??"0",p=c?+c.padEnd(3,"0").slice(0,3):0;let d;if(n.isUTC||!n.offsetSign)d=Date.UTC(r,o,i,a,s,l,p);else{const e=+n.offsetHours,t=+n.offsetMinutes;d=6e4*("+"===n.offsetSign?-1:1)*(60*e+t)+Date.UTC(r,o,i,a,s,l,p)}return Number.isNaN(d)?null:d}n.d(t,{Br:()=>o,Cq:()=>r,_U:()=>i});const u=/^(?:(?<year>-?\d{4,})-(?<month>\d{2})-(?<day>\d{2}))(?:T(?<hours>\d{2}):(?<minutes>\d{2}):(?<seconds>\d{2})(?:\.(?<ms>\d+))?)?(?:(?<isUTC>Z)|(?:(?<offsetSign>\+|-)(?<offsetHours>\d{2}):(?<offsetMinutes>\d{2})))?$/,l=/^((jan(uary)?)|(feb(ruary)?)|(mar(ch)?)|(apr(il)?)|(may)|(jun(e)?)|(jul(y)?)|(aug(ust)?)|(sep(tember)?)|(oct(ober)?)|(nov(ember)?)|(dec(ember)?)|(am)|(pm)|(gmt)|(utc))$/i,c=!Number.isNaN(new Date("technology 10").getTime())},50498:(e,t,n)=>{n.d(t,{Ye:()=>p,gy:()=>c,yR:()=>d});var r=n(66552),o=n(5443),i=n(91075),a=n(48526),s=n(86738),u=n(39829),l=n(82799);const c=(0,r.O)()({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon"}),p=(0,r.O)()({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryEnvelope:"extent",mesh:"mesh"}),d={base:i.A,key:"type",typeMap:{extent:o.A,multipoint:a.A,point:s.A,polyline:l.A,polygon:u.A}}},33771:(e,t,n)=>{n.r(t),n.d(t,{default:()=>_});var r=n(60999),o=n(49186),i=n(53966),a=n(74887),s=n(67076),u=n(21325),l=n(90708),c=n(58376),p=n(83221),d=n(31464),y=n(19730),f=n(85113),m=n(82832),h=n(34322),g=n(95466),w=n(54218),b=n(98623);const T="esri.layers.WFSLayer";class _{constructor(){this._customParameters=null,this._queryEngine=null,this._supportsPagination=!0}destroy(){this._queryEngine?.destroy(),this._queryEngine=null}async load(e,t={}){const{getFeatureUrl:n,getFeatureOutputFormat:r,fields:i,geometryType:s,featureType:u,maxRecordCount:l,maxTotalRecordCount:c,maxPageCount:f,objectIdField:m,customParameters:w}=e,{spatialReference:T,getFeatureSpatialReference:_}=(0,h.UH)(n,u,e.spatialReference);try{await(0,d.Nk)(_,T)}catch{throw new o.A("unsupported-projection","Projection not supported",{inSpatialReference:_,outSpatialReference:T})}(0,a.Te)(t),this._customParameters=w,this._featureType=u,this._fieldsIndex=g.A.fromLayerJSON({fields:i,dateFieldsTimeReference:i.some((e=>"esriFieldTypeDate"===e.type))?{timeZoneIANA:b.n$}:null}),this._geometryType=s,this._getFeatureUrl=n,this._getFeatureOutputFormat=r,this._getFeatureSpatialReference=_,this._maxRecordCount=l,this._maxTotalRecordCount=c,this._maxPageCount=f,this._objectIdField=m,this._spatialReference=T;let x=await this._snapshotFeatures(t);if(x.errors.length>0&&(this._supportsPagination=!1,x=await this._snapshotFeatures(t),x.errors.length>0))throw x.errors[0];return this._queryEngine=new y.do({fieldsIndex:this._fieldsIndex,geometryType:s,hasM:!1,hasZ:!1,objectIdField:m,spatialReference:T,timeInfo:null,featureStore:new p.A({geometryType:s,hasM:!1,hasZ:!1})}),this._queryEngine.featureStore.addMany(x.features),{warnings:S(x),extent:(await this._queryEngine.fetchRecomputedExtents()).fullExtent}}async applyEdits(){throw new o.A("wfs-source:editing-not-supported","applyEdits() is not supported on WFSLayer")}async queryFeatures(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQuery(e,t.signal)}async queryFeatureCount(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForCount(e,t.signal)}async queryObjectIds(e={},t={}){return await this._waitSnapshotComplete(),(await this._queryEngine.executeQueryForIds(e,t.signal)).filter(w.Et)}async queryExtent(e={},t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeQueryForExtent(e,t.signal)}async querySnapping(e,t={}){return await this._waitSnapshotComplete(),(0,c.J)(this._queryEngine,e,t.signal)}async queryAttributeBins(e,t={}){return await this._waitSnapshotComplete(),this._queryEngine.executeAttributeBinsQuery(e,t.signal)}async refresh(e){return this._customParameters=e.customParameters,this._maxRecordCount=e.maxRecordCount,this._maxTotalRecordCount=e.maxTotalRecordCount,this._maxPageCount=e.maxPageCount,this._snapshotTask?.abort(),this._snapshotTask=(0,r.UT)((e=>this._snapshotFeatures({signal:e}))),this._snapshotTask.promise.then((e=>{this._queryEngine.featureStore.clear(),this._queryEngine.featureStore.addMany(e.features);for(const t of S(e))i.A.getLogger(T).warn(new s.A("wfs-layer:refresh-warning",t.message,t.details));e.errors?.length&&i.A.getLogger(T).warn(new s.A("wfs-layer:refresh-error","Refresh completed with errors",{errors:e.errors}))}),(()=>{this._queryEngine.featureStore.clear()})),await this._waitSnapshotComplete(),{extent:(await this._queryEngine.fetchRecomputedExtents()).fullExtent}}async _waitSnapshotComplete(){if(this._snapshotTask&&!this._snapshotTask.finished){try{await this._snapshotTask.promise}catch{}return this._waitSnapshotComplete()}}async _snapshotFeatures(e){const t=e?.signal,n=this._maxTotalRecordCount,r=this._maxPageCount,o=this._supportsPagination?await(0,h.E)(this._getFeatureUrl,this._featureType.typeName,{customParameters:this._customParameters,signal:t}):void 0;let i=[];const s=[];if(null==o)try{i=await this._singleQuery(t)}catch(e){(0,a.zf)(e)||s.push(e)}else{const e=Math.min(o,n),u=function*(e,t,n){for(let r=0;r<t;r++)yield e._pageQuery(r,n)}(this,Math.max(1,Math.min(Math.ceil(e/this._maxRecordCount),r)),t);await Promise.allSettled(Array.from({length:10}).map((()=>async function(e,t,n){let r=e.next();for(;!r.done;){try{const e=await r.value;t.push(...e)}catch(e){(0,a.zf)(e)||n.push(e)}r=e.next()}}(u,i,s))))}return(0,a.Te)(t),{features:i,totalRecordCount:o,maxTotalRecordCount:n,maxPageCount:r,errors:s}}async _singleQuery(e){const t=await(0,h.x$)(this._getFeatureUrl,this._featureType.typeName,this._getFeatureSpatialReference,this._getFeatureOutputFormat,{customParameters:this._customParameters,signal:e});return this._processGeoJSON(t,{signal:e})}async _pageQuery(e,t){const n=e*this._maxRecordCount,r=await(0,h.x$)(this._getFeatureUrl,this._featureType.typeName,this._getFeatureSpatialReference,this._getFeatureOutputFormat,{customParameters:this._customParameters,startIndex:n,count:this._maxRecordCount,signal:t});return this._processGeoJSON(r,{startIndex:n,signal:t})}_processGeoJSON(e,t){(0,f.sO)(e,this._getFeatureSpatialReference.wkid);const{startIndex:n,signal:r}=t;(0,a.Te)(r);const o=(0,f.bd)(e,{geometryType:this._geometryType,hasZ:!1,objectIdField:this._objectIdField});if(!(0,u.aI)(this._spatialReference,this._getFeatureSpatialReference))for(const e of o)null!=e.geometry&&(e.geometry=(0,l.Ux)((0,d.Cv)((0,l.zv)(e.geometry,this._geometryType,!1,!1),this._getFeatureSpatialReference,this._spatialReference)));let i=n??1;for(const e of o){const t={};(0,m.MB)(this._fieldsIndex,t,e.attributes,!0),e.attributes=t,null==t[this._objectIdField]&&(e.objectId=t[this._objectIdField]=i++)}return o}}function S(e){const t=[];return null!=e.totalRecordCount&&(e.features.length<e.totalRecordCount&&t.push({name:"wfs-layer:maxRecordCount-too-low",message:`Could only fetch ${e.features.length} of ${e.totalRecordCount} in ${e.maxPageCount} queries. Try increasing the value of WFSLayer.maxRecordCount.`,details:{recordCount:e.features.length,totalRecordCount:e.totalRecordCount}}),e.totalRecordCount>e.maxTotalRecordCount&&t.push({name:"wfs-layer:large-dataset",message:`The number of ${e.totalRecordCount} features exceeds the maximum allowed of ${e.maxTotalRecordCount}.`,details:{recordCount:e.features.length,totalRecordCount:e.totalRecordCount,maxTotalRecordCount:e.maxTotalRecordCount}})),t}},85113:(e,t,n)=>{n.d(t,{BM:()=>F,bd:()=>C,sO:()=>x,xD:()=>c});var r=n(67482),o=n(49186),i=n(21325),a=n(43334),s=n(92722),u=n(30524);const l={LineString:"esriGeometryPolyline",MultiLineString:"esriGeometryPolyline",MultiPoint:"esriGeometryMultipoint",Point:"esriGeometryPoint",Polygon:"esriGeometryPolygon",MultiPolygon:"esriGeometryPolygon"};function c(e){return l[e]}function*p(e){switch(e.type){case"Feature":yield e;break;case"FeatureCollection":for(const t of e.features)t&&(yield t)}}function*d(e){if(e)switch(e.type){case"Point":yield e.coordinates;break;case"LineString":case"MultiPoint":yield*e.coordinates;break;case"MultiLineString":case"Polygon":for(const t of e.coordinates)yield*t;break;case"MultiPolygon":for(const t of e.coordinates)for(const e of t)yield*e}}function y(e){for(const t of e)if(t.length>2)return!0;return!1}function f(e){let t=0;for(let n=0;n<e.length;n++){const r=e[n],o=e[(n+1)%e.length];t+=r[0]*o[1]-o[0]*r[1]}return t<=0}function m(e){const t=e[0],n=e[e.length-1];return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]||e.push(t),e}function h(e,t,n){switch(t.type){case"LineString":case"MultiPoint":return function(e,t,n){return b(e,t.coordinates,n),e}(e,t,n);case"MultiLineString":return function(e,t,n){for(const r of t.coordinates)b(e,r,n);return e}(e,t,n);case"MultiPolygon":return function(e,t,n){for(const r of t.coordinates){g(e,r[0],n);for(let t=1;t<r.length;t++)w(e,r[t],n)}return e}(e,t,n);case"Point":return function(e,t,n){return _(e,t.coordinates,n),e}(e,t,n);case"Polygon":return function(e,t,n){const r=t.coordinates;g(e,r[0],n);for(let t=1;t<r.length;t++)w(e,r[t],n);return e}(e,t,n)}}function g(e,t,n){const r=m(t);!function(e){return!f(e)}(r)?b(e,r,n):T(e,r,n)}function w(e,t,n){const r=m(t);!function(e){return f(e)}(r)?b(e,r,n):T(e,r,n)}function b(e,t,n){for(const r of t)_(e,r,n);e.lengths.push(t.length)}function T(e,t,n){for(let r=t.length-1;r>=0;r--)_(e,t[r],n);e.lengths.push(t.length)}function _(e,t,n){const[r,o,i]=t;e.coords.push(r,o),n.hasZ&&e.coords.push(i||0)}function S(e){switch(typeof e){case"string":return(0,r.Br)(e)?"esriFieldTypeDate":"esriFieldTypeString";case"number":return"esriFieldTypeDouble";default:return"unknown"}}function x(e,t=4326){if(!e)throw new o.A("geojson-layer:empty","GeoJSON data is empty");if("Feature"!==e.type&&"FeatureCollection"!==e.type)throw new o.A("geojson-layer:unsupported-geojson-object","missing or not supported GeoJSON object type",{data:e});const{crs:n}=e;if(!n)return;const r="string"==typeof n?n:"name"===n.type?n.properties.name:"EPSG"===n.type?n.properties.code:null,a=(0,i.oT)({wkid:t})?new RegExp(".*(CRS84H?|4326)$","i"):new RegExp(`.*(${t})$`,"i");if(!r||!a.test(r))throw new o.A("geojson:unsupported-crs","unsupported GeoJSON 'crs' member",{crs:n})}function F(e,t={}){const n=[],r=new Set,o=new Set;let i,a=!1,s=null,l=!1,{geometryType:f=null}=t;for(const t of p(e)){const{geometry:e,properties:p,id:m}=t;if((!e||(f||(f=c(e.type)),c(e.type)===f))&&(a||(a=y(d(e))),l||(l=null!=m,l&&(i=typeof m,p&&(s=Object.keys(p).filter((e=>p[e]===m))))),p&&s&&l&&null!=m&&(s.length>1?s=s.filter((e=>p[e]===m)):1===s.length&&(s=p[s[0]]===m?s:[])),p))for(const e in p){if(r.has(e))continue;const t=S(p[e]);if("unknown"===t){o.add(e);continue}o.delete(e),r.add(e);const i=(0,u.rS)(e);i&&n.push({name:i,alias:e,type:t})}}const m=(0,u.rS)(1===s?.length&&s[0]||null)??void 0;if(m)for(const e of n)if(e.name===m&&(0,u.WA)(e)){e.type="esriFieldTypeOID";break}return{fields:n,geometryType:f,hasZ:a,objectIdFieldName:m,objectIdFieldType:i,unknownFields:Array.from(o)}}function C(e,t){return Array.from(function*(e,t={}){const{geometryType:n,objectIdField:r}=t;for(const o of e){const{geometry:e,properties:i,id:u}=o;if(e&&c(e.type)!==n)continue;const l=i||{};let p;r&&(p=l[r],null==u||p||(l[r]=p=u));const d=new a.Om(e?h(new s.A,e,t):null,l,null,p);yield d}}(p(e),t))}},82832:(e,t,n)=>{n.d(t,{$1:()=>h,CR:()=>m,MB:()=>d,PC:()=>g,Yx:()=>u,bP:()=>c});var r=n(67482),o=n(21325),i=n(30524);class a{constructor(){this.code=null,this.description=null}}class s{constructor(e){this.error=new a,this.globalId=null,this.objectId=null,this.success=!1,this.uniqueId=null,this.error.description=e}}function u(e){return new s(e)}class l{constructor(e){this.globalId=null,this.success=!0,this.objectId=this.uniqueId=e}}function c(e){return new l(e)}const p=new Set;function d(e,t,n,r=!1){p.clear();for(const o in n){const a=e.get(o);if(!a)continue;const s=y(a,n[o]);if(p.add(a.name),a&&(r||a.editable)){const e=(0,i.CJ)(a,s);if(e)return u((0,i.uo)(e,a,s));t[a.name]=s}}for(const t of e.requiredFields??[])if(!p.has(t.name))return u(`missing required field "${t.name}"`);return null}function y(e,t){let n=t;return(0,i.WA)(e)&&"string"==typeof t?n=parseFloat(t):(0,i.yM)(e)&&null!=t&&"string"!=typeof t?n=String(t):(0,i.vE)(e)&&"string"==typeof t&&(n=(0,r._U)(t)),(0,i.WX)(n)}let f;function m(e,t){if(!e||!(0,o.fn)(t))return e;if("rings"in e||"paths"in e){if(null==f)throw new TypeError("geometry engine not loaded");return f.simplify(t,e)}return e}async function h(e,t){!(0,o.fn)(e)||"esriGeometryPolygon"!==t&&"esriGeometryPolyline"!==t||await async function(){return null==f&&(f=await Promise.all([n.e(9930),n.e(1275)]).then(n.bind(n,47559))),f}()}const g={supportsAutoIntervalBin:!0,supportsFixedIntervalBin:!0,supportsFixedBoundariesBin:!0,supportsDateBin:!0,supportsStackBy:!0,supportsSplitBy:!0,supportsNormalization:!0,supportedStatisticTypes:["COUNT","SUM","AVG","VAR","STDDEV","MIN","MAX","PERCENTILE_CONT","PERCENTILE_DISC","CentroidAggregate","EnvelopeAggregate","ConvexHullAggregate"],supportedNormalizationTypes:["field","log","naturalLog","percentOfTotal","squareRoot"]}},34322:(e,t,n)=>{n.d(t,{E:()=>L,Fu:()=>E,O8:()=>G,UH:()=>W,YW:()=>O,i5:()=>b,mG:()=>j,x$:()=>D});var r=n(78888),o=n(49186),i=n(5479),a=n(84952),s=n(5443),u=n(57251),l=n(16930),c=n(21325),p=n(50498),d=n(85113),y=n(13043),f=n(60694),m=n(20437),h=n(30524);const g="xlink:href",w="2.0.0",b="__esri_wfs_id__",T="wfs-layer:getWFSLayerTypeInfo-error",_="wfs-layer:empty-service",S="wfs-layer:feature-type-not-found",x="wfs-layer:geojson-not-supported",F="wfs-layer:kvp-encoding-not-supported",C="wfs-layer:malformed-json",R="wfs-layer:unknown-geometry-type",A="wfs-layer:unknown-field-type",P="wfs-layer:unsupported-spatial-reference",v="wfs-layer:unsupported-wfs-version";async function E(e,t){const n=function(e){const t=Z(e);(function(e){const t=e.firstElementChild?.getAttribute("version");if(t&&t!==w)throw new o.A(v,`Unsupported WFS version ${t}. Supported version: ${w}`)})(t),B(t);const n=t.firstElementChild,r=(0,i.PP)(function(e){return(0,y.i)(e,{FeatureTypeList:{FeatureType:e=>{const t={typeName:"undefined:undefined",name:"",title:"",description:"",extent:null,namespacePrefix:"",namespaceUri:"",defaultSpatialReference:4326,supportedSpatialReferences:[]},n=new Set;return(0,y.p)(e,{Name:e=>{const{name:n,prefix:r}=J(e.textContent);t.typeName=`${r}:${n}`,t.name=n,t.namespacePrefix=r,t.namespaceUri=e.lookupNamespaceURI(r)},Abstract:e=>{t.description=e.textContent},Title:e=>{t.title=e.textContent},WGS84BoundingBox:e=>{t.extent=s.A.fromJSON(function(e){let t,n,r,o;for(const i of e.children)switch(i.localName){case"LowerCorner":[t,n]=i.textContent.split(" ").map((e=>Number.parseFloat(e)));break;case"UpperCorner":[r,o]=i.textContent.split(" ").map((e=>Number.parseFloat(e)))}return{xmin:t,ymin:n,xmax:r,ymax:o,spatialReference:c.KK}}(e))},DefaultCRS:e=>{const r=I(e);r&&(t.defaultSpatialReference=r,n.add(r))},OtherCRS:e=>{const t=I(e);t&&n.add(t)}}),t.title||(t.title=t.name),n.add(4326),t.supportedSpatialReferences.push(...n),t}}})}(n));return{operations:k(n),get featureTypes(){return Array.from(r())},readFeatureTypes:r}}((await(0,r.A)(e,{responseType:"text",query:{SERVICE:"WFS",REQUEST:"GetCapabilities",VERSION:w,...t?.customParameters},signal:t?.signal})).data);return function(e,t){(0,a.m3)(e)&&((0,a.FX)(e,t.operations.DescribeFeatureType.url,!0)&&(t.operations.DescribeFeatureType.url=(0,a.lM)(t.operations.DescribeFeatureType.url)),(0,a.FX)(e,t.operations.GetFeature.url,!0)&&(t.operations.GetFeature.url=(0,a.lM)(t.operations.GetFeature.url)))}(e,n),n}const N=["json","application/json","geojson","application/json; subtype=geojson","application/geo+json"];function M(e){for(const t of N){const n=e.findIndex((e=>e.toLowerCase()===t));if(n>=0)return e[n]}return null}function k(e){let t=!1;const n={GetCapabilities:{url:""},DescribeFeatureType:{url:""},GetFeature:{url:"",outputFormat:null,supportsPagination:!1}},r=[],i=[];if((0,y.p)(e,{OperationsMetadata:{Parameter:e=>{if("outputFormat"===e.getAttribute("name"))return{AllowedValues:{Value:({textContent:e})=>{e&&r.push(e)}}}},Operation:e=>{switch(e.getAttribute("name")){case"GetCapabilities":return{DCP:{HTTP:{Get:e=>{n.GetCapabilities.url=e.getAttribute(g)}}}};case"DescribeFeatureType":return{DCP:{HTTP:{Get:e=>{n.DescribeFeatureType.url=e.getAttribute(g)}}}};case"GetFeature":return{DCP:{HTTP:{Get:e=>{n.GetFeature.url=e.getAttribute(g)}}},Parameter:e=>{if("outputFormat"===e.getAttribute("name"))return{AllowedValues:{Value:({textContent:e})=>{e&&i.push(e)}}}}}}},Constraint:e=>{switch(e.getAttribute("name")){case"KVPEncoding":return{DefaultValue:e=>{t="true"===e.textContent.toLowerCase()}};case"ImplementsResultPaging":return{DefaultValue:e=>{n.GetFeature.supportsPagination="true"===e.textContent.toLowerCase()}}}}}}),n.GetFeature.outputFormat=M(i)??M(r),!t)throw new o.A(F,"WFS service doesn't support key/value pair (KVP) encoding");if(null==n.GetFeature.outputFormat)throw new o.A(x,"WFS service doesn't support GeoJSON output format");return n}function I(e){const t=parseInt(e.textContent?.match(/(?<wkid>\d+$)/i)?.groups?.wkid??"",10);if(!Number.isNaN(t))return t}function j(e,t,n){return(0,i.I6)(e,(e=>n?e.name===t&&e.namespaceUri===n:e.typeName===t||e.name===t))}async function G(e,t,n,r={}){const{featureType:i,extent:a}=await async function(e,t,n,r={}){const i=e.readFeatureTypes(),a=t?j(i,t,n):i.next().value,{spatialReference:s=new l.A({wkid:a?.defaultSpatialReference})}=r;if(null==a)throw t?new o.A(S,`The type '${t}' could not be found in the service`):new o.A(_,"The service is empty");let p=a.extent;if(p&&!(0,c.aI)(p.spatialReference,s))try{await(0,u.initializeProjection)(p.spatialReference,s,void 0,r),p=(0,u.project)(p,s)}catch{throw new o.A(P,"Projection not supported")}return{extent:p,spatialReference:s,featureType:a}}(e,t,n,r),{spatialReference:s}=W(e.operations.GetFeature.url,i,r.spatialReference),{fields:p,geometryType:d,swapXY:y,objectIdField:f,geometryField:m}=await async function(e,t,n,r={}){const{typeName:i}=t,[a,s]=await Promise.allSettled([q(e.operations.DescribeFeatureType.url,i,r),V(e,i,n,r)]),u=e=>new o.A(T,`An error occurred while getting info about the feature type '${i}'`,{error:e});if("rejected"===a.status)throw u(a.reason);if("rejected"===s.status)throw u(s.reason);const{fields:l,errors:c}=a.value??{},p=a.value?.geometryType||s.value?.geometryType,d=s.value?.swapXY??!1;if(null==p)throw new o.A(R,`The geometry type could not be determined for type '${i}`,{typeName:i,geometryType:p,fields:l,errors:c});return{...O(l??[]),geometryType:p,swapXY:d}}(e,i,s,r);return{url:e.operations.GetCapabilities.url,name:i.name,namespaceUri:i.namespaceUri,fields:p,geometryField:m,geometryType:d,objectIdField:f,spatialReference:r.spatialReference??new l.A({wkid:i.defaultSpatialReference}),extent:a,swapXY:y,wfsCapabilities:e,customParameters:r.customParameters}}function O(e){const t=e.find((e=>"geometry"===e.type));let n=e.find((e=>"oid"===e.type));return e=e.filter((e=>"geometry"!==e.type)),n||(n=new m.A({name:b,type:"oid",alias:b}),e.unshift(n)),{geometryField:t?.name??null,objectIdField:n.name,fields:e}}async function V(e,t,n,o={}){let i,a=!1;const[s,u]=await Promise.all([D(e.operations.GetFeature.url,t,n,e.operations.GetFeature.outputFormat,{...o,count:1}),(0,r.A)(e.operations.GetFeature.url,{responseType:"text",query:U(t,n,void 0,{...o,count:1}),signal:o?.signal})]),l="FeatureCollection"===s.type&&s.features[0]?.geometry;if(l){let e;switch(i=p.gy.fromJSON((0,d.xD)(l.type)),l.type){case"Point":e=l.coordinates;break;case"LineString":case"MultiPoint":e=l.coordinates[0];break;case"MultiLineString":case"Polygon":e=l.coordinates[0][0];break;case"MultiPolygon":e=l.coordinates[0][0][0]}const t=/<[^>]*pos[^>]*> *(-?\d+(?:\.\d+)?) (-?\d+(?:\.\d+)?)/.exec(u.data);if(t){const n=e[0].toFixed(3),r=e[1].toFixed(3),o=parseFloat(t[1]).toFixed(3);n===parseFloat(t[2]).toFixed(3)&&r===o&&(a=!0)}}return{geometryType:i,swapXY:a}}async function q(e,t,n){return function(e,t){const{name:n}=J(e),r=Z(t);B(r);const a=(0,i.I6)((0,y.i)(r.firstElementChild,{element:e=>e}),(e=>e.getAttribute("name")===n));if(null!=a){const e=a.getAttribute("type"),t=e?(0,i.I6)((0,y.i)(r.firstElementChild,{complexType:e=>e}),(t=>t.getAttribute("name")===J(e).name)):(0,i.I6)((0,y.i)(a,{complexType:e=>e}),(()=>!0));if(t)return function(e){const t=[],n=[];let r;const i=(0,y.i)(e,{complexContent:{extension:{sequence:{element:e=>e}}}});for(const a of i){const i=a.getAttribute("name");if(!i)continue;let s,u;if(a.hasAttribute("type")?s=J(a.getAttribute("type")).name:(0,y.p)(a,{simpleType:{restriction:e=>(s=J(e.getAttribute("base")).name,{maxLength:e=>{u=+e.getAttribute("value")}})}}),!s)continue;const l="true"===a.getAttribute("nillable");let c=!1;switch(s.toLowerCase()){case"integer":case"nonpositiveinteger":case"negativeinteger":case"long":case"int":case"short":case"byte":case"nonnegativeinteger":case"unsignedlong":case"unsignedint":case"unsignedshort":case"unsignedbyte":case"positiveinteger":n.push(new m.A({name:i,alias:i,type:"integer",nullable:l,length:(0,h._b)("integer")}));break;case"float":case"double":case"decimal":n.push(new m.A({name:i,alias:i,type:"double",nullable:l,length:(0,h._b)("double")}));break;case"boolean":case"string":case"gyearmonth":case"gyear":case"gmonthday":case"gday":case"gmonth":case"anyuri":case"qname":case"notation":case"normalizedstring":case"token":case"language":case"idrefs":case"entities":case"nmtoken":case"nmtokens":case"name":case"ncname":case"id":case"idref":case"entity":case"duration":case"time":n.push(new m.A({name:i,alias:i,type:"string",nullable:l,length:u??(0,h._b)("string")}));break;case"datetime":case"date":n.push(new m.A({name:i,alias:i,type:"date",nullable:l,length:u??(0,h._b)("date")}));break;case"pointpropertytype":r="point",c=!0;break;case"multipointpropertytype":r="multipoint",c=!0;break;case"curvepropertytype":case"multicurvepropertytype":case"multilinestringpropertytype":r="polyline",c=!0;break;case"surfacepropertytype":case"multisurfacepropertytype":case"multipolygonpropertytype":r="polygon",c=!0;break;case"geometrypropertytype":case"multigeometrypropertytype":c=!0,t.push(new o.A(R,`geometry type '${s}' is not supported`,{type:(new XMLSerializer).serializeToString(e)}));break;default:t.push(new o.A(A,`Unknown field type '${s}'`,{type:(new XMLSerializer).serializeToString(e)}))}c&&n.push(new m.A({name:i,alias:i,type:"geometry",nullable:l}))}for(const e of n)if("integer"===e.type&&!e.nullable&&$.has(e.name.toLowerCase())){e.type="oid";break}return{geometryType:r,fields:n,errors:t}}(t)}throw new o.A(S,`Type '${e}' not found in document`,{document:(new XMLSerializer).serializeToString(r)})}(t,(await(0,r.A)(e,{responseType:"text",query:{SERVICE:"WFS",REQUEST:"DescribeFeatureType",VERSION:w,TYPENAME:t,TYPENAMES:t,...n?.customParameters},signal:n?.signal})).data)}const $=new Set(["objectid","fid"]);async function D(e,t,n,i,a){let{data:s}=await(0,r.A)(e,{responseType:"text",query:U(t,n,i,a),signal:a?.signal});s=s.replaceAll(/": +(-?\d+),(\d+)(,)?/g,'": $1.$2$3');try{return JSON.parse(s)}catch(e){throw new o.A(C,"Error while parsing the response",{response:s,error:e})}}function U(e,t,n,r){const o="number"==typeof t?t:t.wkid;return{SERVICE:"WFS",REQUEST:"GetFeature",VERSION:w,TYPENAMES:e,OUTPUTFORMAT:n,SRSNAME:"EPSG:"+o,STARTINDEX:r?.startIndex,COUNT:r?.count,...r?.customParameters}}async function L(e,t,n){const o=await(0,r.A)(e,{responseType:"text",query:{SERVICE:"WFS",REQUEST:"GetFeature",VERSION:w,TYPENAMES:t,RESULTTYPE:"hits",...n?.customParameters},signal:n?.signal}),i=/numberMatched=["'](?<numberMatched>\d+)["']/gi.exec(o.data);if(i?.groups)return+i.groups.numberMatched}function Z(e){return(new DOMParser).parseFromString(e.trim(),"text/xml")}function J(e){const[t,n]=e.split(":");return{prefix:n?t:"",name:n??t}}function B(e){let t="",n="";if((0,y.p)(e.firstElementChild,{Exception:e=>(t=e.getAttribute("exceptionCode"),{ExceptionText:e=>{n=e.textContent}})}),t)throw new o.A(`wfs-layer:${t}`,n)}function W(e,t,n){const r={wkid:t.defaultSpatialReference},o=null!=n?.wkid?{wkid:n.wkid}:r;return{spatialReference:o,getFeatureSpatialReference:(0,f.Fi)(e)||o.wkid&&t.supportedSpatialReferences.includes(o.wkid)?{wkid:o.wkid}:{wkid:t.defaultSpatialReference}}}},13043:(e,t,n)=>{function r(e,t){if(e&&t)for(const n of e.children)if(n.localName in t){const e=t[n.localName];if("function"==typeof e){const t=e(n);t&&r(n,t)}else r(n,e)}}function*o(e,t){for(const n of e.children)if(n.localName in t){const e=t[n.localName];"function"==typeof e?yield e(n):yield*o(n,e)}}n.d(t,{i:()=>o,p:()=>r})},39357:(e,t,n)=>{n.d(t,{H:()=>u});var r,o=n(90237),i=n(25482),a=n(10107),s=(n(44208),n(53966),n(87811),n(40608));let u=r=class extends i.A{constructor(e){super(e),this.name=null,this.code=null}clone(){return new r({name:this.name,code:this.code})}};(0,o._)([(0,a.MZ)({type:String,json:{write:{isRequired:!0}}})],u.prototype,"name",void 0),(0,o._)([(0,a.MZ)({type:[String,Number],json:{write:{isRequired:!0}}})],u.prototype,"code",void 0),u=r=(0,o._)([(0,s.$)("esri.layers.support.CodedValue")],u)},53177:(e,t,n)=>{n.d(t,{A:()=>d});var r,o=n(90237),i=n(4718),a=n(10107),s=(n(44208),n(53966),n(93223)),u=n(40608),l=n(39357),c=n(76357);let p=r=class extends c.A{constructor(e){super(e),this.codedValues=null,this.type="coded-value"}getName(e){let t=null;if(this.codedValues){const n=String(e);this.codedValues.some((e=>(String(e.code)===n&&(t=e.name),!!t)))}return t}clone(){return new r({codedValues:(0,i.o8)(this.codedValues),name:this.name})}};(0,o._)([(0,a.MZ)({type:[l.H],json:{write:{isRequired:!0}}})],p.prototype,"codedValues",void 0),(0,o._)([(0,s.e)({codedValue:"coded-value"})],p.prototype,"type",void 0),p=r=(0,o._)([(0,u.$)("esri.layers.support.CodedValueDomain")],p);const d=p},76357:(e,t,n)=>{n.d(t,{A:()=>p});var r=n(90237),o=n(66552),i=n(25482),a=n(10107),s=(n(44208),n(53966),n(87811),n(93223)),u=n(40608);const l=new o.J({inherited:"inherited",codedValue:"coded-value",range:"range"});let c=class extends i.A{constructor(e){super(e),this.name=null,this.type=null}};(0,r._)([(0,a.MZ)({type:String,json:{write:!0}})],c.prototype,"name",void 0),(0,r._)([(0,s.e)(l),(0,a.MZ)({json:{write:{isRequired:!0}}})],c.prototype,"type",void 0),c=(0,r._)([(0,u.$)("esri.layers.support.Domain")],c);const p=c},20437:(e,t,n)=>{n.d(t,{A:()=>h});var r,o=n(90237),i=n(66552),a=n(25482),s=n(10107),u=n(56507),l=(n(44208),n(87811),n(93223)),c=n(36005),p=n(40608),d=n(80451),y=n(98453);const f=new i.J({binary:"binary",coordinate:"coordinate",countOrAmount:"count-or-amount",dateAndTime:"date-and-time",description:"description",locationOrPlaceName:"location-or-place-name",measurement:"measurement",nameOrTitle:"name-or-title",none:"none",orderedOrRanked:"ordered-or-ranked",percentageOrRatio:"percentage-or-ratio",typeOrCategory:"type-or-category",uniqueIdentifier:"unique-identifier"});let m=r=class extends a.A{constructor(e){super(e),this.alias=null,this.defaultValue=void 0,this.description=null,this.domain=null,this.editable=!0,this.length=void 0,this.name=null,this.nullable=!0,this.type=null,this.valueType=null,this.visible=!0}readDescription(e,{description:t}){let n=null;try{n=t?JSON.parse(t):null}catch(e){}return n?.value??null}readValueType(e,{description:t}){let n=null;try{n=t?JSON.parse(t):null}catch(e){}return n?f.fromJSON(n.fieldValueType):null}clone(){return new r({alias:this.alias,defaultValue:this.defaultValue,description:this.description,domain:this.domain?.clone()??null,editable:this.editable,length:this.length,name:this.name,nullable:this.nullable,type:this.type,valueType:this.valueType,visible:this.visible})}};(0,o._)([(0,s.MZ)({type:String,json:{write:!0}})],m.prototype,"alias",void 0),(0,o._)([(0,s.MZ)({type:[String,Number],json:{write:{allowNull:!0}}})],m.prototype,"defaultValue",void 0),(0,o._)([(0,s.MZ)()],m.prototype,"description",void 0),(0,o._)([(0,c.w)("description")],m.prototype,"readDescription",null),(0,o._)([(0,s.MZ)({types:d.gK,json:{read:{reader:d.rS},write:!0}})],m.prototype,"domain",void 0),(0,o._)([(0,s.MZ)({type:Boolean,json:{write:!0}})],m.prototype,"editable",void 0),(0,o._)([(0,s.MZ)({type:u.jz,json:{write:{overridePolicy:e=>({enabled:Number.isFinite(e)})}}})],m.prototype,"length",void 0),(0,o._)([(0,s.MZ)({type:String,json:{write:!0}})],m.prototype,"name",void 0),(0,o._)([(0,s.MZ)({type:Boolean,json:{write:!0}})],m.prototype,"nullable",void 0),(0,o._)([(0,l.e)(y.m)],m.prototype,"type",void 0),(0,o._)([(0,s.MZ)()],m.prototype,"valueType",void 0),(0,o._)([(0,c.w)("valueType",["description"])],m.prototype,"readValueType",null),(0,o._)([(0,s.MZ)({type:Boolean,json:{read:!1}})],m.prototype,"visible",void 0),m=r=(0,o._)([(0,p.$)("esri.layers.support.Field")],m);const h=m},80451:(e,t,n)=>{n.d(t,{rS:()=>h,gK:()=>m}),n(44208);var r,o=n(53177),i=n(76357),a=n(90237),s=(n(53966),n(87811),n(49186),n(93223)),u=n(40608);let l=r=class extends i.A{constructor(e){super(e),this.type="inherited"}clone(){return new r}};(0,a._)([(0,s.e)({inherited:"inherited"})],l.prototype,"type",void 0),l=r=(0,a._)([(0,u.$)("esri.layers.support.InheritedDomain")],l);const c=l;var p,d=n(10107);let y=p=class extends i.A{constructor(e){super(e),this.maxValue=null,this.minValue=null,this.type="range"}clone(){return new p({maxValue:this.maxValue,minValue:this.minValue,name:this.name})}};(0,a._)([(0,d.MZ)({json:{type:[Number],read:{source:"range",reader:(e,t)=>t.range?.[1]},write:{enabled:!1,overridePolicy(){return{enabled:null!=this.maxValue&&null==this.minValue}},target:"range",writer(e,t,n){t[n]=[this.minValue||0,e]},isRequired:!0}}})],y.prototype,"maxValue",void 0),(0,a._)([(0,d.MZ)({json:{type:[Number],read:{source:"range",reader:(e,t)=>t.range?.[0]},write:{target:"range",writer(e,t,n){t[n]=[e,this.maxValue||0]},isRequired:!0}}})],y.prototype,"minValue",void 0),(0,a._)([(0,s.e)({range:"range"})],y.prototype,"type",void 0),y=p=(0,a._)([(0,u.$)("esri.layers.support.RangeDomain")],y);const f=y,m={key:"type",base:i.A,typeMap:{range:f,"coded-value":o.A,inherited:c}};function h(e){if(!e?.type)return null;switch(e.type){case"range":return f.fromJSON(e);case"codedValue":return o.A.fromJSON(e);case"inherited":return c.fromJSON(e)}return null}}}]);