// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built define("require exports ../../kernel ../../symbols ../../core/asyncUtils ../../core/Error ../../core/jsonMap ../../core/sql ../../core/accessorSupport/extensions/serializableProperty/reader ./featureQueryAll ./layerUtils ../../renderers/SimpleRenderer ../../renderers/UniqueValueRenderer ../../rest/support/AttachmentQuery ../../rest/support/Query ../../rest/support/RelationshipQuery".split(" "),function(t,g,m,z,A,h,p,B,C,D,E,F,G,H,n,u){function q(a,b,c){const {attributes:d}=b,{objectIdField:e}=a;return a.capabilities?.data?.supportsAttachment? b?d?e&&d[e]?Promise.resolve():Promise.reject(new h(c,`feature is missing the identifying attribute ${e}`)):Promise.reject(new h(c,"'attributes' are required on a feature to query attachments")):Promise.reject(new h(c,"A feature is required to add/delete/update attachments")):Promise.reject(new h(c,"this layer doesn't support attachments"))}async function l(a){return(await a.load()).source}async function v(a,b){if(m.id&&!m.id.findCredential(a)){var c;try{const d=await E.getOwningPortalUrl(a,b);d&& (c=await m.id.checkSignInStatus(`${d}/sharing`))}catch(d){}if(c)try{await m.id.getCredential(a,{signal:null!=b?b.signal:null})}catch(d){}}}async function w(a,b,c){if(null==b)return null;const d=[],{objectIdField:e}=a;b.forEach(f=>{let k=null;"attributes"in f?({attributes:f}=f,k={globalId:f[c],objectId:null!=f[e]&&-1!==f[e]?f[e]:null}):k={globalId:f.globalId,objectId:null!=f.objectId&&-1!==f.objectId?f.objectId:null};null!=k.globalId&&(null!=k.objectId&&-1!==k.objectId||d.push(k.globalId))});if(0=== d.length)return null;b=a.createQuery();b.where=d.map(f=>`${c}='${f}'`).join(" OR ");b.returnGeometry=!1;b.outFields=[e,c];b.cacheHint=!1;b=await A.resultOrAbort(D.queryAllJSON(a,b));if(!b.ok)return null;a=new Map;b=b.value.features;for(const f of b){b=f.attributes[c];const k=f.attributes[e];null!=b&&null!=k&&-1!==k&&a.set(b,k)}return a}function x(a){return a.sourceJSON?.isMultiServicesView||I(a)}function I(a){return!!a.sourceJSON?.capabilities?.toLowerCase().split(",").map(b=>b.trim()).includes("map")} p=new p.JSONMap({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"});const r=C.createTypeReader({types:z.symbolTypesRenderer});g.addAttachment=async function(a,b,c,d){const e=await l(a);await q(a,b,d);if(!e.addAttachment)throw new h(d,"Layer source does not support addAttachment capability");return e.addAttachment(b,c)};g.applyEdits=async function(a,b,c){const {applyEdits:d}=await new Promise((f, k)=>t(["../graphics/editingSupport"],f,k));a=await a.load();let e=c;"feature"===a.type&&a.infoFor3D&&null!=b.deleteFeatures&&null!=a.globalIdField&&(e={...e,globalIdToObjectId:await w(a,b.deleteFeatures,a.globalIdField)});return d(a,a.source,b,c)};g.computeEffectiveEditingEnabled=function(a){return x(a)?!1:a.userHasUpdateItemPrivileges||a.editingEnabled};g.createDefaultRenderer=function(a,b){if(a.defaultSymbol)return a.types?.length?new G({defaultSymbol:r(a.defaultSymbol,a,b),field:a.typeIdField, uniqueValueInfos:a.types.map(c=>({id:c.id,symbol:r(c.symbol,c,b)}))}):new F({symbol:r(a.defaultSymbol,a,b)})};g.createQuery=function(a){const b=new n,c=a.capabilities?.data,d=a.capabilities?.query;b.historicMoment=a.historicMoment;b.gdbVersion=a.gdbVersion;b.returnGeometry=!0;d&&(b.compactGeometryEnabled=d.supportsCompactGeometry,b.defaultSpatialReferenceEnabled=d.supportsDefaultSpatialReference);c&&(c.supportsZ&&null!=a.returnZ&&(b.returnZ=a.returnZ),c.supportsM&&null!=a.returnM&&(b.returnM=a.returnM)); b.outFields=["*"];const {timeOffset:e,timeExtent:f}=a;b.timeExtent=null!=e&&null!=f?f.offset(-e.value,e.unit):f||null;b.multipatchOption="multipatch"===a.geometryType?"xyFootprint":null;return b};g.deleteAttachments=async function(a,b,c,d){const e=await l(a);await q(a,b,d);if(!e.deleteAttachments)throw new h(d,"Layer source does not support deleteAttachments capability");return e.deleteAttachments(b,c)};g.ensureCredentialIfSignedIn=v;g.ensureLayerCredential=async function(a,b,c){const d=a.parsedUrl?.path; d&&a.authenticationTriggerEvent===b&&await v(d,c)};g.fetchRecomputedExtents=async function(a,b,c){a=(await a.load({signal:b?.signal})).source;if(!a.fetchRecomputedExtents)throw new h(c,"Layer source does not support fetchUpdates capability");return a.fetchRecomputedExtents(b)};g.geometryTypeKebabDict=p;g.getFeatureSubtype=function(a,b){const {subtypes:c,subtypeField:d}=a;if(!b||!c?.length||!d)return null;const e=b.attributes[d];return null==e?null:c.find(f=>f.code===e)};g.getFeatureType=function(a, b,c){if(!b||!c||!a)return null;const d=c.getAttribute(b);return null==d?null:a.find(e=>{({id:e}=e);return null!=e&&e.toString()===d.toString()})??null};g.getGlobalIdToObjectIdMap=w;g.hasDataChanged=async function(a){const b=a.source;if(b?.refresh)try{const {dataChanged:c,updates:d}=await b.refresh();null!=d&&(a.sourceJSON={...a.sourceJSON,...d},a.read(d,{origin:"service",url:a.parsedUrl}));if(c)return!0}catch{}if(a.definitionExpression)try{return(await B.parseWhereClause(a.definitionExpression,a.fieldsIndex)).hasDateFunctions}catch{}return!1}; g.isLayerCacheStale=function(a){let b=a.sourceJSON?.cacheMaxAge;if(!b)return!1;a=a.editingInfo?.lastEditDate?.getTime();if(null==a)return!0;b*=1E3;return Date.now()-at(["../graphics/editingSupport"],e,f));a=await a.load();return d(a,a.source,b,c)};Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})});