(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-6c40627a"],{"0e50":function(e,t,s){"use strict";s.r(t),s.d(t,"default",(function(){return v}));var r=s("a4ee"),a=(s("e06a"),s("8d60")),n=s("2eab"),u=s("658b"),i=s("ce50"),o=s("c120"),d=s("fa8a"),l=s("6d5f"),c=s("b2b2"),p=s("9d1d"),h=s("f4cc"),y=s("e041"),m=s("59b2"),b=(s("b50f"),s("cea0"),s("d386")),f=s("3af1"),g=s("a9ab"),R=s("88d1"),F=s("003a"),O=s("d8b2"),q=s("feec"),I=s("5996");const _=new d["a"]({originalAndCurrentFeatures:"original-and-current-features",none:"none"});async function S(e){if("string"==typeof e){const t=Object(y["h"])(e);return t||{data:e}}return new Promise((t,s)=>{const r=new FileReader;r.readAsDataURL(e),r.onload=()=>t(Object(y["h"])(r.result)),r.onerror=e=>s(e)})}const w=new Set(["Feature Layer","Table"]);let j=class extends l["a"]{constructor(){super(...arguments),this.type="feature-layer",this.refresh=Object(h["i"])(async()=>{var e,t;await this.load();const s=null==(e=this.sourceJSON.editingInfo)?void 0:e.lastEditDate;if(null==s)return{dataChanged:!0,updates:{}};try{await this._fetchService(null)}catch{return{dataChanged:!0,updates:{}}}const r=s!==(null==(t=this.sourceJSON.editingInfo)?void 0:t.lastEditDate);return{dataChanged:r,updates:r?{editingInfo:this.sourceJSON.editingInfo,extent:this.sourceJSON.extent}:null}})}load(e){const t=Object(c["k"])(e)?e.signal:null;return this.addResolvingPromise(this._fetchService(this.layer.sourceJSON,t)),Promise.resolve(this)}get queryTask(){const{capabilities:{query:{supportsFormatPBF:e}},parsedUrl:t,dynamicDataSource:s,infoFor3D:r,gdbVersion:a,spatialReference:n,fieldsIndex:u}=this.layer,i=Object(o["a"])("featurelayer-pbf")&&e&&Object(c["j"])(r)?"pbf":"json";return new q["a"]({url:t.path,format:i,fieldsIndex:u,infoFor3D:r,dynamicDataSource:s,gdbVersion:a,sourceSpatialReference:n})}async addAttachment(e,t){await this.load();const s=e.attributes[this.layer.objectIdField],r=this.layer.parsedUrl.path+"/"+s+"/addAttachment",a=this._getLayerRequestOptions(),u=this._getFormDataForAttachment(t,a.query);try{const e=await Object(n["default"])(r,{body:u});return this._createFeatureEditResult(e.data.addAttachmentResult)}catch(i){throw this._createAttachmentErrorResult(s,i)}}async updateAttachment(e,t,s){await this.load();const r=e.attributes[this.layer.objectIdField],a=this.layer.parsedUrl.path+"/"+r+"/updateAttachment",u=this._getLayerRequestOptions({query:{attachmentId:t}}),i=this._getFormDataForAttachment(s,u.query);try{const e=await Object(n["default"])(a,{body:i});return this._createFeatureEditResult(e.data.updateAttachmentResult)}catch(o){throw this._createAttachmentErrorResult(r,o)}}async applyEdits(e,t){await this.load();const s=e.addFeatures.map(this._serializeFeature,this),r=e.updateFeatures.map(this._serializeFeature,this),a=this._getFeatureIds(e.deleteFeatures,null==t?void 0:t.globalIdUsed);Object(F["a"])(s,r,this.layer.spatialReference);const u=[],i=[],o=[...e.deleteAttachments];for(const n of e.addAttachments)u.push(await this._serializeAttachment(n));for(const n of e.updateAttachments)i.push(await this._serializeAttachment(n));const d=u.length||i.length||o.length?{adds:u,updates:i,deletes:o}:null,l={gdbVersion:(null==t?void 0:t.gdbVersion)||this.layer.gdbVersion,rollbackOnFailure:null==t?void 0:t.rollbackOnFailureEnabled,useGlobalIds:null==t?void 0:t.globalIdUsed,returnEditMoment:null==t?void 0:t.returnEditMoment,usePreviousEditMoment:null==t?void 0:t.usePreviousEditMoment,sessionId:null==t?void 0:t.sessionId};null!=t&&t.returnServiceEditsOption?(l.edits=JSON.stringify([{id:this.layer.layerId,adds:s,updates:r,deletes:a,attachments:d}]),l.returnServiceEditsOption=_.toJSON(null==t?void 0:t.returnServiceEditsOption),l.returnServiceEditsInSourceSR=null==t?void 0:t.returnServiceEditsInSourceSR):(l.adds=s.length?JSON.stringify(s):null,l.updates=r.length?JSON.stringify(r):null,l.deletes=a.length?null!=t&&t.globalIdUsed?JSON.stringify(a):a.join(","):null,l.attachments=d&&JSON.stringify(d));const c=this._getLayerRequestOptions({method:"post",query:l}),p=null!=t&&t.returnServiceEditsOption?this.layer.url:this.layer.parsedUrl.path,h=await Object(n["default"])(p+"/applyEdits",c);return this._createEditsResult(h)}async deleteAttachments(e,t){await this.load();const s=e.attributes[this.layer.objectIdField],r=this.layer.parsedUrl.path+"/"+s+"/deleteAttachments";try{return(await Object(n["default"])(r,this._getLayerRequestOptions({query:{attachmentIds:t.join(",")},method:"post"}))).data.deleteAttachmentResults.map(this._createFeatureEditResult)}catch(a){throw this._createAttachmentErrorResult(s,a)}}fetchRecomputedExtents(e={}){const t=e.signal;return this.load({signal:t}).then(async()=>{const t=this._getLayerRequestOptions({...e,query:{returnUpdates:!0}}),{layerId:s,url:r}=this.layer,{data:a}=await Object(n["default"])(`${r}/${s}`,t),{id:i,extent:o,fullExtent:d,timeExtent:l}=a,c=o||d;return{id:i,fullExtent:c&&f["a"].fromJSON(c),timeExtent:l&&u["a"].fromJSON({start:l[0],end:l[1]})}})}async queryAttachments(e,t={}){const{parsedUrl:s}=this.layer,r=s.path;await this.load();const a=this._getLayerRequestOptions(t);if(!this.layer.get("capabilities.operations.supportsQueryAttachments")){const{objectIds:t}=e,s=[];for(const e of t){const t=r+"/"+e+"/attachments";s.push(Object(n["default"])(t,a))}return Promise.all(s).then(e=>t.map((t,s)=>({parentObjectId:t,attachmentInfos:e[s].data.attachmentInfos}))).then(e=>Object(O["b"])(e,r))}return this.queryTask.executeAttachmentQuery(e,a)}async queryFeatures(e,t){return await this.load(),this.queryTask.execute(e,{...t,query:this._createRequestQueryOptions(t)})}async queryFeaturesJSON(e,t){return await this.load(),this.queryTask.executeJSON(e,{...t,query:this._createRequestQueryOptions(t)})}async queryObjectIds(e,t){return await this.load(),this.queryTask.executeForIds(e,{...t,query:this._createRequestQueryOptions(t)})}async queryFeatureCount(e,t){return await this.load(),this.queryTask.executeForCount(e,{...t,query:this._createRequestQueryOptions(t)})}async queryExtent(e,t){return await this.load(),this.queryTask.executeForExtent(e,{...t,query:this._createRequestQueryOptions(t)})}async queryRelatedFeatures(e,t){return await this.load(),this.queryTask.executeRelationshipQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryRelatedFeaturesCount(e,t){return await this.load(),this.queryTask.executeRelationshipQueryForCount(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopFeatures(e,t){return await this.load(),this.queryTask.executeTopFeaturesQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopObjectIds(e,t){return await this.load(),this.queryTask.executeForTopIds(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopExtents(e,t){return await this.load(),this.queryTask.executeForTopExtents(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopCount(e,t){return await this.load(),this.queryTask.executeForTopCount(e,{...t,query:this._createRequestQueryOptions(t)})}_createRequestQueryOptions(e){const t={...this.layer.customParameters,token:this.layer.apiKey,...null==e?void 0:e.query};return this.layer.datesInUnknownTimezone&&(t.timeReferenceUnknownClient=!0),t}async _fetchService(e,t){if(!e){const{data:s}=await Object(n["default"])(this.layer.parsedUrl.path,this._getLayerRequestOptions({query:Object(o["a"])("featurelayer-advanced-symbols")?{returnAdvancedSymbols:!0}:{},signal:t}));e=s}this.sourceJSON=this._patchServiceJSON(e);const s=e.type;if(!w.has(s))throw new i["a"]("feature-layer-source:unsupported-type",`Source type "${s}" is not supported`)}_patchServiceJSON(e){var t;if("Table"!==e.type&&e.geometryType&&(null==e||null==(t=e.drawingInfo)||!t.renderer)&&!e.defaultSymbol){const t=Object(R["d"])(e.geometryType).renderer;Object(p["c"])("drawingInfo.renderer",t,e)}return"esriGeometryMultiPatch"===e.geometryType&&e.infoFor3D&&(e.geometryType="mesh"),e}_serializeFeature(e){const{geometry:t,attributes:s}=e;return Object(c["j"])(t)?{attributes:s}:"mesh"===t.type||"extent"===t.type?null:{geometry:t.toJSON(),attributes:s}}async _serializeAttachment(e){const{feature:t,attachment:s}=e,{globalId:r,name:a,contentType:n,data:u,uploadId:i}=s,o={globalId:r,parentGlobalId:null,contentType:null,name:null,uploadId:null,data:null};if(t&&(o.parentGlobalId="attributes"in t?t.attributes&&t.attributes[this.layer.globalIdField]:t.globalId),i)o.uploadId=i;else if(u){const e=await S(u);o.contentType=e.mediaType,o.data=e.data,u instanceof File&&(o.name=u.name)}return a&&(o.name=a),n&&(o.contentType=n),o}_getFeatureIds(e,t){const s=e[0];return s?this._canUseGlobalIds(t,e)?this._getGlobalIdsFromFeatureIdentifier(e):"objectId"in s?this._getObjectIdsFromFeatureIdentifier(e):this._getIdsFromFeatures(e):[]}_getIdsFromFeatures(e){const t=this.layer.objectIdField;return e.map(e=>e.attributes&&e.attributes[t])}_canUseGlobalIds(e,t){return e&&"globalId"in t[0]}_getObjectIdsFromFeatureIdentifier(e){return e.map(e=>e.objectId)}_getGlobalIdsFromFeatureIdentifier(e){return e.map(e=>e.globalId)}_createEditsResult(e){var t;const s=e.data,{layerId:r}=this.layer,a=[];let n=null;if(Array.isArray(s))for(const o of s)a.push({id:o.id,editedFeatures:o.editedFeatures}),o.id===r&&(n={addResults:o.addResults,updateResults:o.updateResults,deleteResults:o.deleteResults,attachments:o.attachments,editMoment:o.editMoment});else n=s;const u=null==(t=n)?void 0:t.attachments,i={addFeatureResults:n.addResults?n.addResults.map(this._createFeatureEditResult,this):[],updateFeatureResults:n.updateResults?n.updateResults.map(this._createFeatureEditResult,this):[],deleteFeatureResults:n.deleteResults?n.deleteResults.map(this._createFeatureEditResult,this):[],addAttachmentResults:u&&u.addResults?u.addResults.map(this._createFeatureEditResult,this):[],updateAttachmentResults:u&&u.updateResults?u.updateResults.map(this._createFeatureEditResult,this):[],deleteAttachmentResults:u&&u.deleteResults?u.deleteResults.map(this._createFeatureEditResult,this):[]};if(n.editMoment&&(i.editMoment=n.editMoment),a.length>0){i.editedFeatureResults=[];for(const e of a){const{adds:t,updates:s,deletes:r,spatialReference:a}=e.editedFeatures,n=a?new I["a"](a):null;i.editedFeatureResults.push({layerId:e.id,editedFeatures:{adds:(null==t?void 0:t.map(e=>this._createEditedFeature(e,n)))||[],updates:(null==s?void 0:s.map(e=>({original:this._createEditedFeature(e[0],n),current:this._createEditedFeature(e[1],n)})))||[],deletes:(null==r?void 0:r.map(e=>this._createEditedFeature(e,n)))||[],spatialReference:n}})}}return i}_createEditedFeature(e,t){return new a["a"]({attributes:e.attributes,geometry:Object(g["a"])({...e.geometry,spatialReference:t})})}_createFeatureEditResult(e){const t=!0===e.success?null:e.error||{code:void 0,description:void 0};return{objectId:e.objectId,globalId:e.globalId,error:t?new i["a"]("feature-layer-source:edit-failure",t.description,{code:t.code}):null}}_createAttachmentErrorResult(e,t){const s=t.details.messages&&t.details.messages[0]||t.message,r=t.details.httpStatus||t.details.messageCode;return{objectId:e,globalId:null,error:new i["a"]("feature-layer-source:attachment-failure",s,{code:r})}}_getFormDataForAttachment(e,t){const s=e instanceof FormData?e:e&&e.elements?new FormData(e):null;if(s)for(const r in t){const e=t[r];null!=e&&(s.set?s.set(r,e):s.append(r,e))}return s}_getLayerRequestOptions(e={}){const{parsedUrl:t,gdbVersion:s,dynamicDataSource:r}=this.layer;return{...e,query:{gdbVersion:s,layer:r?JSON.stringify({source:r}):void 0,...t.query,f:"json",...this._createRequestQueryOptions(e)},responseType:"json"}}};Object(r["a"])([Object(m["b"])()],j.prototype,"type",void 0),Object(r["a"])([Object(m["b"])({constructOnly:!0})],j.prototype,"layer",void 0),Object(r["a"])([Object(m["b"])({readOnly:!0})],j.prototype,"queryTask",null),j=Object(r["a"])([Object(b["a"])("esri.layers.graphics.sources.FeatureLayerSource")],j);const v=j},"88d1":function(e,t,s){"use strict";s.d(t,"a",(function(){return p})),s.d(t,"b",(function(){return l})),s.d(t,"c",(function(){return c})),s.d(t,"d",(function(){return i}));var r=s("c120"),a=s("7ffa"),n=s("a94c"),u=s("8246");function i(e){return{renderer:{type:"simple",symbol:"esriGeometryPoint"===e||"esriGeometryMultipoint"===e?u["c"]:"esriGeometryPolyline"===e?u["e"]:u["d"]}}}const o=/^[_$a-zA-Z][_$a-zA-Z0-9]*$/;let d=1;function l(e,t){if(Object(r["a"])("esri-csp-restrictions"))return()=>({[t]:null,...e});try{let s=`this.${t} = null;`;for(const t in e)s+=`this${o.test(t)?"."+t:`["${t}"]`} = ${JSON.stringify(e[t])};`;const r=new Function(`\n return class AttributesClass$${d++} {\n constructor() {\n ${s};\n }\n }\n `)();return()=>new r}catch(s){return()=>({[t]:null,...e})}}function c(e={}){return[{name:"New Feature",description:"",prototype:{attributes:Object(a["a"])(e)}}]}function p(e,t){return{attachment:null,data:{isVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:e},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:t,supportsDelete:t,supportsEditing:t,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryAttachments:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:t,supportsExceedsLimitStatistics:!0},query:n["a"],queryRelated:{supportsCount:!0,supportsOrderBy:!0,supportsPagination:!0},editing:{supportsGeometryUpdate:t,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1}}}},a94c:function(e,t,s){"use strict";s.d(t,"a",(function(){return r}));const r={supportsStatistics:!0,supportsPercentileStatistics:!0,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsCentroid:!0,supportsCacheHint:!1,supportsDistance:!0,supportsDistinct:!0,supportsExtent:!0,supportsGeometryProperties:!1,supportsHavingClause:!0,supportsOrderBy:!0,supportsPagination:!0,supportsQuantization:!0,supportsQuantizationEditMode:!1,supportsQueryGeometry:!0,supportsResultType:!1,supportsSqlExpression:!0,supportsMaxRecordCountFactor:!1,supportsStandardizedQueriesOnly:!0,supportsTopFeaturesQuery:!1,supportsQueryByOthers:!0,supportsHistoricMoment:!1,supportsFormatPBF:!1,supportsDisjointSpatialRelationship:!0,supportsDefaultSpatialReference:!1,supportsCompactGeometry:!1,maxRecordCountFactor:void 0,maxRecordCount:void 0,standardMaxRecordCount:void 0,tileMaxRecordCount:void 0}}}]); //# sourceMappingURL=chunk-6c40627a.6494bf0a.js.map