@vertigis/arcgis-extensions 54.3.0 → 54.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Entity.d.ts +1 -1
- package/Hyperlink.d.ts +6 -6
- package/Hyperlink.js +1 -1
- package/LanguageResources.d.ts +1 -1
- package/LanguageResources.js +1 -1
- package/PortalUri.d.ts +2 -2
- package/data/Attachment.d.ts +9 -9
- package/data/Feature.js +1 -1
- package/data/RelationshipBase.d.ts +3 -3
- package/data/Schema.js +1 -1
- package/data/_Relationship.d.ts +4 -4
- package/data/_Relationship.js +1 -1
- package/declarations/arcgis-js-api-extensions/index.d.ts +7 -7
- package/docs/html/classes/PortalUri.PortalUri.html +4 -4
- package/docs/html/classes/data_RelationshipBase.RelationshipBase.html +2 -2
- package/docs/html/classes/support_Cancellable.Cancellation.html +2 -2
- package/docs/html/classes/tasks_identify_ArcGISSublayerIdentifyProvider.ArcGISSublayerIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_ArcGISSublayerQueryIdentifyProvider.ArcGISSublayerQueryIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_BuildingComponentSublayerClientSideIdentifyProvider.BuildingComponentSublayerClientSideIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_BuildingComponentSublayerHitTestIdentifyProvider.BuildingComponentSublayerHitTestIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_CSVLayer3DHitTestIdentifyProvider.CSVLayer3DHitTestIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_CSVLayerClientSideQueryIdentifyProvider.CSVLayerClientSideQueryIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_ClientSideIdentifyProvider.ClientSideIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_FeatureLayer3DHitTestIdentifyProvider.FeatureLayer3DHitTestIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_FeatureLayerClientSideIdentifyProvider.FeatureLayerClientSideIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_FeatureLayerQueryIdentifyProvider.FeatureLayerQueryIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_GeoJSONLayer3DHitTestIdentifyProvider.GeoJSONLayer3DHitTestIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_GeoJSONLayerClientSideQueryIdentifyProvider.GeoJSONLayerClientSideQueryIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_GeoRSSLayerIdentifyProvider.GeoRSSLayerIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_GraphicsLayerQueryIdentifyProvider.GraphicsLayerQueryIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_HitTestIdentifyProvider.HitTestIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_IdentifyProviderBase.IdentifyProviderBase.html +2 -2
- package/docs/html/classes/tasks_identify_ImageryLayerIdentifyProvider.ImageryLayerIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_KMLLayerQueryIdentifyProvider.KMLLayerQueryIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_MapNotesSublayerQueryIdentifyProvider.MapNotesSublayerQueryIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_PointCloudLayerHitTestIdentifyProvider.PointCloudLayerHitTestIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_RouteLayerQueryIdentifyProvider.RouteLayerQueryIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_SceneLayerClientSideIdentifyProvider.SceneLayerClientSideIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_SceneLayerHitTestIdentifyProvider.SceneLayerHitTestIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_SceneLayerQueryIdentifyProvider.SceneLayerQueryIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_StreamLayerClientSideQueryIdentifyProvider.StreamLayerClientSideQueryIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_SubtypeSublayerClientSideIdentifyProvider.SubtypeSublayerClientSideIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_WFSLayerClientSideIdentifyProvider.WFSLayerClientSideIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_WFSLayerQueryIdentifyProvider.WFSLayerQueryIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_WMSLayerFeatureInfoIdentifyProvider.WMSLayerFeatureInfoIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_WMSSublayerIdentifyProvider.WMSSublayerIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_query_ArcGISRelationship.ArcGISRelationship.html +2 -2
- package/docs/html/classes/tasks_query_QueryBasedRelationship.QueryBasedRelationship.html +2 -2
- package/docs/html/classes/tasks_search_ArcGISGeocoderSearchProvider.ArcGISGeocoderSearchProvider.html +3 -3
- package/docs/html/classes/tasks_search_GeocoderSearchProvider.GeocoderSearchProvider.html +3 -3
- package/docs/html/classes/utilities_CaseInsensitiveObservableMap.CaseInsensitiveObservableMap.html +2 -2
- package/docs/html/functions/data__Relationship.fromEsriApiCardinality.html +1 -1
- package/docs/html/functions/data__Relationship.toEsriApiCardinality.html +1 -1
- package/docs/html/functions/support_InitializableBase.initializeCollection.html +1 -1
- package/docs/html/functions/support_Serializable.filterJSONProperties.html +1 -1
- package/docs/html/interfaces/data_Attachment.AttachmentInfo.html +8 -8
- package/docs/html/interfaces/data__Relationship.Relationship-1.html +5 -5
- package/docs/html/interfaces/support_InitializableBase.InitializeWarningEvent.html +3 -3
- package/docs/html/types/support_Serializable.SerializableClass.html +1 -1
- package/docs/html/variables/version.version.html +1 -1
- package/layer-preset/LayerPreset.d.ts +7 -7
- package/layer-preset/LayerPreset.js +1 -1
- package/locale/language.d.ts +4 -4
- package/locale/language.js +1 -1
- package/mapping/Bookmark.d.ts +3 -3
- package/mapping/support/featureService.js +1 -1
- package/menus/Menu.d.ts +1 -1
- package/menus/Menu.js +1 -1
- package/menus/MenuItem.d.ts +12 -12
- package/menus/MenuItem.js +1 -1
- package/package.json +2 -2
- package/support/Cancellable.d.ts +2 -2
- package/support/InitializableBase.d.ts +1 -1
- package/support/InitializableBase.js +1 -1
- package/support/Serializable.d.ts +3 -2
- package/support/Serializable.js +1 -1
- package/support/_ArcGISRelationshipCollection.js +1 -1
- package/support/_featureEdit.js +1 -1
- package/support/_graphicsQuery.js +1 -1
- package/support/_query.js +1 -1
- package/tasks/identify/ArcGISSublayerQueryIdentifyProvider.js +1 -1
- package/tasks/identify/CSVLayerClientSideQueryIdentifyProvider.js +1 -1
- package/tasks/identify/ClientSideIdentifyProvider.d.ts +1 -1
- package/tasks/identify/ClientSideIdentifyProvider.js +1 -1
- package/tasks/identify/FeatureLayerClientSideIdentifyProvider.js +1 -1
- package/tasks/identify/FeatureLayerQueryIdentifyProvider.js +1 -1
- package/tasks/identify/GeoJSONLayerClientSideQueryIdentifyProvider.js +1 -1
- package/tasks/identify/HitTestIdentifyProvider.d.ts +1 -1
- package/tasks/identify/HitTestIdentifyProvider.js +1 -1
- package/tasks/identify/IdentifyProviderBase.d.ts +1 -1
- package/tasks/identify/IdentifyService.js +1 -1
- package/tasks/identify/ImageryLayerIdentifyProvider.js +1 -1
- package/tasks/identify/SubtypeSublayerQueryIdentifyProvider.js +1 -1
- package/tasks/identify/WFSLayerQueryIdentifyProvider.js +1 -1
- package/tasks/identify/WMSLayerFeatureInfoIdentifyProvider.js +1 -1
- package/tasks/identify/WMSSublayerIdentifyProvider.js +1 -1
- package/tasks/query/ArcGISRelationship.js +1 -1
- package/tasks/query/ArcGISSublayerQueryProvider.js +1 -1
- package/tasks/query/CSVLayerClientSideQueryProvider.js +1 -1
- package/tasks/query/ClientSideQueryProvider.js +1 -1
- package/tasks/query/FeatureLayerQueryProvider.js +1 -1
- package/tasks/query/GeoJSONLayerClientSideQueryProvider.js +1 -1
- package/tasks/query/SceneLayerQueryProvider.js +1 -1
- package/tasks/query/SubtypeSublayerQueryProvider.js +1 -1
- package/tasks/query/WFSLayerQueryProvider.js +1 -1
- package/tasks/search/ArcGISGeocoderSearchProvider.d.ts +2 -1
- package/tasks/search/ArcGISGeocoderSearchProvider.js +1 -1
- package/tasks/search/GeocoderSearchProvider.d.ts +4 -3
- package/tasks/search/GeocoderSearchProvider.js +1 -1
- package/tasks/search/SearchProviderBase.js +1 -1
- package/tasks/search/SearchService.js +1 -1
- package/tasks/search/_utilities.js +1 -1
- package/utilities/CaseInsensitiveObservableMap.d.ts +2 -2
- package/utilities/CaseInsensitiveObservableMap.js +1 -1
- package/utilities/arcade.js +1 -1
- package/utilities/uri.d.ts +1 -1
- package/utilities/uri.js +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{toFeature as e}from"../../data/Feature.js";import*as t from"../../utilities/asyncIterable.js";import{isPoint as r}from"../../utilities/esri.js";import{isCSVLayerExtension as i,isFeatureLayerExtension as s,isPointCloudLayerExtension as n,isSceneLayerExtension as o}from"../../utilities/extensions.js";import{isBuildingComponentSublayer as a}from"../../utilities/layers.js";import{caseInsensitiveEquals as u}from"../../utilities/string.js";import{IdentifyProviderBase as y}from"./IdentifyProviderBase.js";export class HitTestIdentifyProvider extends y{queryProvider;isSupported(e,t,r){return"point"===t?.type||!this._supportsQuery(e)}_identify(r,a,y){const p=this,c={...y};return async function*(){const y=await l(r,a),d=i(m=r)||s(m)||n(m)||o(m)?r.layer:r.sublayer;var m,f;if(y?.length){const t="point-cloud"===d.type?void 0:d.objectIdField;if(p.queryProvider&&p._supportsQuery(r)&&t&&(f=y[0],!r.featureSettings.outFields.every((e=>f.attributes.hasOwnProperty(e))))){const e="string"===d.fields?.find((e=>u(e.name,t)))?.type,i=y.map((r=>`${t} = ${e?`'${r.getAttribute(t)}'`:r.getAttribute(t)}`)).join(" OR ");yield*p.queryProvider.query(r,i,c)}else yield*y.map((t=>e(t,{source:r})))}else yield*t.empty()}()}async _count(e,t,r){const i=await l(e,t);return{source:e,count:i?i.length:0}}_supportsQuery(e){return!0}async _applyTolerance(e){return e}}async function l(e,t){const i=a(e.sublayer),s=i?e.layerExtension?.mapExtension:e.mapExtension,n=i?e.sublayer:e.layer,o=e._layerView.view;if("map"===s.viewMode||!o)return;const u=await o.hitTest(o.toScreen(r(t)?t:t.extent.center));let y=u?u.results.sort(p).map((e=>e.graphic)).filter((e=>(e.sourceLayer??e.layer)===n)):void 0;const l=i?e.sublayer.objectIdField:e.layer.objectIdField;if(y&&l){const e=new Set(y.map((e=>e.getAttribute(l))));y=[...e].map((e=>y.find((t=>t.getAttribute(l)===e))))}return y}function p(e,t){return e.distance<=t.distance?-1:1}
|
|
@@ -32,7 +32,7 @@ export declare abstract class IdentifyProviderBase implements IdentifyProvider {
|
|
|
32
32
|
* @param geometryType The geometry type before a tolerance buffer is
|
|
33
33
|
* applied.
|
|
34
34
|
*/
|
|
35
|
-
protected _identifyMany(sources: FeatureSource[], geometry: GeometryUnion, options
|
|
35
|
+
protected _identifyMany(sources: FeatureSource[], geometry: GeometryUnion, options?: IdentifyOptions, geometryType?: string): AsyncIterable<Feature>;
|
|
36
36
|
/**
|
|
37
37
|
* Adds a tolerance to input geometries if configured in the options.
|
|
38
38
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__decorate as e}from"tslib";import i from"@arcgis/core/core/Collection";import{isLayerExtension as r,isMapExtension as t,isSublayerExtension as o}from"../../ItemType.js";import{MapExtension as s}from"../../mapping/MapExtension.js";import{InitializableBase as n}from"../../support/InitializableBase.js";import{serializable as d}from"../../support/Serializable.js";import{isCancellation as a}from"../../support/utilities.js";import{AsyncQueue as y,empty as f}from"../../utilities/asyncIterable.js";import{checkArg as p}from"../../utilities/checkArg.js";import{createCrossTypeUnion as l}from"../../utilities/geometry.js";import{isMap as u}from"../../utilities/mapping.js";import{parallelEach as c}from"../../utilities/promise.js";import{IdentifyError as v}from"./IdentifyError.js";import{IdentifyOptions as w}from"./IdentifyOptions.js";let m=class extends n{providers=new i;isSupported(e,i,r){return!!this.providers.find((t=>t.isSupported(e,i,r)))}identify(e,r,o){p("sources",e).isNotMissing(),p("geometry",r).isNotMissing();const n={...w.DEFAULTS,...o},{outSpatialReference:d,onSourceComplete:m}=n;if(void 0!==o?.maxResults&&o.maxResults<=0)return f();let h,S;Array.isArray(r)?(p("geometry",r).isNotEmpty(),h=r):h=[r];let I=[];i.isCollection(e)?I=e.toArray():t(e)?S=e:u(e)?S=new s({map:e}):I=[...e];let P=0;const g=new y,L=new Map,b=(e,i,r)=>{if(!i||0===e.length)return;P++;const t=new Map;for(const i of e)t.set(i,{source:i,count:0,time:-1});(async()=>{try{if(g.isDone)return;const o=Date.now();await c(e,(e=>e.initialize()));for await(const s of i.identify(e,r,n)){const e=t.get(s.source);if(e&&(e.count++,e.time<0&&(e.time=Date.now()-o)),g.isDone)return;d&&(s.schema.spatialReference=d),g.add(s)}for(const i of e){const e=t.get(i);e&&e.time<0&&(e.time=Date.now()-o)}}catch(i){for(const r of e){const e=t.get(r);e&&(e.failureReason=i)}if(a(i))return void g.reject(i);L.set(e,i)}finally{for(const i of e){const e=t.get(i);e&&m?.(e)}}0==--P&&(L.size?g.reject(new v(L)):g.done())})()};return(async()=>{await this.initialize();try{S&&(await S.initialize(),I=S.getAllFeatureSources(isIdentifiable))}catch(e){g.reject(new Error("Map failed to initialize.",{cause:e}))}if(g.isDone)return;const e=await l(h),i=new Map;for(const r of I)for(const t of e){const e=this.providers.find((e=>e.isSupported(r,t,n)));if(null!=e)if(i.has(e)){const o=i.get(e);o.has(t)?o.get(t).push(r):o.set(t,[r])}else i.set(e,new Map([[t,[r]]]))}for(const[e,r]of i)for(const[i,t]of r)b(t,e,i);0===P&&g.done()})(),g}count(e,r,o){p("sources",e).isNotMissing(),p("geometry",r).isNotMissing();const n={...o,returnGeometry:!1};let d,f=[];i.isCollection(e)?f=e.toArray():t(e)?d=e:u(e)?d=new s({map:e}):f=[...e];let l=0;const c=new y,w=new Map,m=e=>{const i=this.providers.find((i=>i.isSupported(e,r,o)));i&&(l++,(async()=>{if(!c.isDone){try{if(await e.initialize(),c.isDone)return;c.add(await i.count(e,r,n))}catch(i){if(a(i))return void c.reject(i);w.set(e,i)}0==--l&&(w.size?c.reject(new v(w)):c.done())}})())};return(async()=>{await this.initialize();try{d&&(await d.initialize(),f=d.getAllFeatureSources(isIdentifiable))}catch(e){c.reject(new Error("Map failed to initialize.",{cause:e}))}f.forEach(m),0===l&&c.done()})(),c}async _onInitialize(){await super._onInitialize();const{ArcGISSublayerQueryIdentifyProvider:e,ArcGISSublayerIdentifyProvider:i,BuildingComponentSublayerClientSideIdentifyProvider:r,BuildingComponentSublayerHitTestIdentifyProvider:t,CSVLayer3DHitTestIdentifyProvider:o,CSVLayerClientSideQueryIdentifyProvider:s,FeatureLayer3DHitTestIdentifyProvider:n,FeatureLayerClientSideIdentifyProvider:d,FeatureLayerQueryIdentifyProvider:a,GeoJSONLayer3DHitTestIdentifyProvider:y,GeoJSONLayerClientSideQueryIdentifyProvider:f,GeoRSSLayerIdentifyProvider:p,GraphicsLayerQueryIdentifyProvider:l,ImageryLayerIdentifyProvider:u,KMLLayerQueryIdentifyProvider:c,MapNotesSublayerQueryIdentifyProvider:v,PointCloudLayerHitTestIdentifyProvider:w,RouteLayerQueryIdentifyProvider:m,SceneLayerClientSideIdentifyProvider:h,SceneLayerHitTestIdentifyProvider:S,SceneLayerQueryIdentifyProvider:I,StreamLayerClientSideQueryIdentifyProvider:P,SubtypeSublayerClientSideIdentifyProvider:g,SubtypeSublayerQueryIdentifyProvider:L,WFSLayerClientSideIdentifyProvider:b,WFSLayerQueryIdentifyProvider:j,WMSSublayerIdentifyProvider:C,WMSLayerFeatureInfoIdentifyProvider:M}=await import("./defaultProviders.js");this.providers.add(new e),this.providers.add(new i),this.providers.add(new o),this.providers.add(new s),this.providers.add(new n),this.providers.add(new d),this.providers.add(new a),this.providers.add(new y),this.providers.add(new f),this.providers.add(new p),this.providers.add(new u),this.providers.add(new c),this.providers.add(new b),this.providers.add(new j),this.providers.add(new C),this.providers.add(new w),this.providers.add(new S),this.providers.add(new I),this.providers.add(new h),this.providers.add(new P),this.providers.add(new l),this.providers.add(new t),this.providers.add(new r),this.providers.add(new g),this.providers.add(new L),this.providers.add(new m),this.providers.add(new v),this.providers.add(new M)}};m=e([d],m);export{m as IdentifyService};export function isIdentifiable(e){return!!e.taskSettings.enableIdentify&&(r(e)?e.layer?.visible:!o(e)||e.sublayer?.visible)}
|
|
1
|
+
import{__decorate as e}from"tslib";import i from"@arcgis/core/core/Collection";import{isLayerExtension as r,isMapExtension as t,isSublayerExtension as o}from"../../ItemType.js";import{MapExtension as s}from"../../mapping/MapExtension.js";import{InitializableBase as n}from"../../support/InitializableBase.js";import{serializable as d}from"../../support/Serializable.js";import{isCancellation as a}from"../../support/utilities.js";import{AsyncQueue as y,empty as f}from"../../utilities/asyncIterable.js";import{checkArg as p}from"../../utilities/checkArg.js";import{createCrossTypeUnion as l}from"../../utilities/geometry.js";import{isMap as u}from"../../utilities/mapping.js";import{parallelEach as c}from"../../utilities/promise.js";import{IdentifyError as v}from"./IdentifyError.js";import{IdentifyOptions as w}from"./IdentifyOptions.js";let m=class extends n{providers=new i;isSupported(e,i,r){return!!this.providers.find((t=>t.isSupported(e,i,r)))}identify(e,r,o){p("sources",e).isNotMissing(),p("geometry",r).isNotMissing();const n={...w.DEFAULTS,...o},{outSpatialReference:d,onSourceComplete:m}=n;if(void 0!==o?.maxResults&&o.maxResults<=0)return f();let h,S;Array.isArray(r)?(p("geometry",r).isNotEmpty(),h=r):h=[r];let I=[];i.isCollection(e)?I=e.toArray():t(e)?S=e:u(e)?S=new s({map:e}):I=[...e];let P=0;const g=new y,L=new Map,b=(e,i,r)=>{if(!i||0===e.length)return;P++;const t=new Map;for(const i of e)t.set(i,{source:i,count:0,time:-1});(async()=>{try{if(g.isDone)return;const o=Date.now();await c(e,(e=>e.initialize()));for await(const s of i.identify(e,r,n)){const e=t.get(s.source);if(e&&(e.count++,e.time<0&&(e.time=Date.now()-o)),g.isDone)return;d&&(s.schema.spatialReference=d),g.add(s)}for(const i of e){const e=t.get(i);e&&e.time<0&&(e.time=Date.now()-o)}}catch(i){for(const r of e){const e=t.get(r);e&&(e.failureReason=i)}if(a(i))return void g.reject(i);L.set(e,i)}finally{for(const i of e){const e=t.get(i);e&&m?.(e)}}0==--P&&(L.size?g.reject(new v(L)):g.done())})()};return(async()=>{await this.initialize();try{S&&(await S.initialize(),I=S.getAllFeatureSources(isIdentifiable))}catch(e){g.reject(new Error("Map failed to initialize.",{cause:e}))}if(g.isDone)return;const e=await l(h),i=new Map;for(const r of I)for(const t of e){const e=this.providers.find((e=>e.isSupported(r,t,n)));if(null!=e)if(i.has(e)){const o=i.get(e);o.has(t)?o.get(t).push(r):o.set(t,[r])}else i.set(e,new Map([[t,[r]]]))}for(const[e,r]of i)for(const[i,t]of r)b(t,e,i);0===P&&g.done()})(),g}count(e,r,o){p("sources",e).isNotMissing(),p("geometry",r).isNotMissing();const n={...o,returnGeometry:!1};let d,f=[];i.isCollection(e)?f=e.toArray():t(e)?d=e:u(e)?d=new s({map:e}):f=[...e];let l=0;const c=new y,w=new Map,m=e=>{const i=this.providers.find((i=>i.isSupported(e,r,o)));i&&(l++,(async()=>{if(!c.isDone){try{if(await e.initialize(),c.isDone)return;c.add(await i.count(e,r,n))}catch(i){if(a(i))return void c.reject(i);w.set(e,i)}0==--l&&(w.size?c.reject(new v(w)):c.done())}})())};return(async()=>{await this.initialize();try{d&&(await d.initialize(),f=d.getAllFeatureSources(isIdentifiable))}catch(e){c.reject(new Error("Map failed to initialize.",{cause:e}))}f.forEach(m),0===l&&c.done()})(),c}async _onInitialize(){await super._onInitialize();const{ArcGISSublayerQueryIdentifyProvider:e,ArcGISSublayerIdentifyProvider:i,BuildingComponentSublayerClientSideIdentifyProvider:r,BuildingComponentSublayerHitTestIdentifyProvider:t,CSVLayer3DHitTestIdentifyProvider:o,CSVLayerClientSideQueryIdentifyProvider:s,FeatureLayer3DHitTestIdentifyProvider:n,FeatureLayerClientSideIdentifyProvider:d,FeatureLayerQueryIdentifyProvider:a,GeoJSONLayer3DHitTestIdentifyProvider:y,GeoJSONLayerClientSideQueryIdentifyProvider:f,GeoRSSLayerIdentifyProvider:p,GraphicsLayerQueryIdentifyProvider:l,ImageryLayerIdentifyProvider:u,KMLLayerQueryIdentifyProvider:c,MapNotesSublayerQueryIdentifyProvider:v,PointCloudLayerHitTestIdentifyProvider:w,RouteLayerQueryIdentifyProvider:m,SceneLayerClientSideIdentifyProvider:h,SceneLayerHitTestIdentifyProvider:S,SceneLayerQueryIdentifyProvider:I,StreamLayerClientSideQueryIdentifyProvider:P,SubtypeSublayerClientSideIdentifyProvider:g,SubtypeSublayerQueryIdentifyProvider:L,WFSLayerClientSideIdentifyProvider:b,WFSLayerQueryIdentifyProvider:j,WMSSublayerIdentifyProvider:C,WMSLayerFeatureInfoIdentifyProvider:M}=await import("./defaultProviders.js");this.providers.add(new e),this.providers.add(new i),this.providers.add(new o),this.providers.add(new s),this.providers.add(new n),this.providers.add(new d),this.providers.add(new a),this.providers.add(new y),this.providers.add(new f),this.providers.add(new p),this.providers.add(new u),this.providers.add(new c),this.providers.add(new b),this.providers.add(new j),this.providers.add(new C),this.providers.add(new w),this.providers.add(new S),this.providers.add(new I),this.providers.add(new h),this.providers.add(new P),this.providers.add(new l),this.providers.add(new t),this.providers.add(new r),this.providers.add(new g),this.providers.add(new L),this.providers.add(new m),this.providers.add(new v),this.providers.add(new M)}};m=e([d],m);export{m as IdentifyService};export function isIdentifiable(e){return!!e.taskSettings.enableIdentify&&(r(e)?e.layer?.visible:!o(e)||(e.sublayer?.visible??!1))}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"@arcgis/core/geometry/Point";import t from"@arcgis/core/geometry/Polygon";import{identify as r}from"@arcgis/core/rest/imageService";import a from"@arcgis/core/rest/support/ImageIdentifyParameters";import i from"@arcgis/core/rest/support/ProjectParameters";import{Feature as s,toFeature as o}from"../../data/Feature.js";import{cancelifyWithAbortSignal as n}from"../../support/Cancellable.js";import{constrainQueryTimeExtentToView as c}from"../../support/_query.js";import{toArray as l}from"../../utilities/asyncIterable.js";import{isPoint as u,isPolygon as m,isPolyline as f}from"../../utilities/esri.js";import{isImageryLayerExtension as p}from"../../utilities/extensions.js";import{getLogger as y}from"../../utilities/log.js";import{isNumeric as g}from"../../utilities/number.js";import{IdentifyProviderBase as d}from"./IdentifyProviderBase.js";const I=y("ImageryLayerIdentifyProvider"),h="Raster.";export class ImageryLayerIdentifyProvider extends d{isSupported(e,t,r){return p(e)}async*_identify(r,a,i){const s=r;let o=a;if(a&&!u(a)&&!m(a))if(f(a)){I.debug("An identify on an Imagery Layer (ArcGISImageServiceLayer) was performed using polyline geometry, which is not supported. The center vertex of in the input geometry was used instead.");const t=a.paths[0][Math.floor(a.paths[0].length/2)];o=new e({spatialReference:a.spatialReference,x:t[0],y:t[1]})}else o=t.fromExtent(a.extent);const n=await this._executeIdentifyTask(s,o,i);yield*this._getResultFeatures(n,s,i)}async _count(e,t,r){const a=e;r.returnGeometry=!1;const i=await this._executeIdentifyTask(a,t,r);return{source:e,count:(await l(this._getResultFeatures(i,a,r))).length}}async _executeIdentifyTask(e,t,i){const{layer:s}=e,o=new a({geometry:t,mosaicRule:s.mosaicRule,rasterFunction:s.rasterFunction,returnCatalogItems:e.includeCatalogItems,returnGeometry:e.includeCatalogItems&&i.returnGeometry});c(o,e);return n((async e=>r(s.url,o,{signal:e})),i.cancelToken)}_getPixelData(e,t,r,a){const{layer:i}=a;let s=r.properties?.Values[e]??r.value,o=r.value;g(s)&&(s=parseFloat(s)),g(o)&&(o=parseFloat(o)),t.attributes.set(`${h}ServicePixelValue`,o),t.attributes.set(`${h}ServicePixelValue.Raw`,o),t.attributes.set(`${h}ItemPixelValue`,s);const n=i.serviceRasterInfo?.attributeTable??i.rasterInfo?.attributeTable;if(n){const{features:e,fields:r}=n,a=e.find((e=>e.getAttribute("Value")===s));r.forEach((e=>{"Value"!==e.name&&"oid"!==e.type&&t.attributes.set(`${h}${e.name}`,a?.getAttribute(e.name))}))}}async*_getResultFeatures(e,t,r){if("NoData"===e.value)return;const a=r.outSpatialReference&&r.outSpatialReference.wkid!==t.layer.spatialReference.wkid;if(t.includeCatalogItems&&e.catalogItems){let i=Promise.resolve([]);a&&r.returnGeometry&&(i=this._projectGeometries(t.layer.url,e.catalogItems.features.map((e=>e.geometry)),r.outSpatialReference,r.cancelToken));const s=[],n=r.outFields||t.featureSettings.outFields;e.catalogItems.features.forEach(((r,a)=>{const i=o(r,{source:t});if(n&&!n.includes("*"))for(const e of i.attributes.keys())n.includes(e)||i.attributes.delete(e);i.attributes.set("visible",1===e.catalogItemVisibilities[a]),this._getPixelData(a,i,e,t),s.push(i)}));const c=await i;c.length>0&&c.forEach(((e,t)=>s[t].geometry=e)),yield*s}if(!t.includeCatalogItems||!e.catalogItems){const i=new s({source:t});i.geometry=a?(await this._projectGeometries(t.layer.url,[e.location],r.outSpatialReference,r.cancelToken))[0]:e.location,this._getPixelData(0,i,e,t),yield i}}async _projectGeometries(e,t,r,a){const s=new i({geometries:t,outSpatialReference:r}),{project:o}=await import("@arcgis/core/rest/geometryService");return n((async t=>o(e,s,{signal:t})),a)}}
|
|
1
|
+
import e from"@arcgis/core/geometry/Point";import t from"@arcgis/core/geometry/Polygon";import{identify as r}from"@arcgis/core/rest/imageService";import a from"@arcgis/core/rest/support/ImageIdentifyParameters";import i from"@arcgis/core/rest/support/ProjectParameters";import{Feature as s,toFeature as o}from"../../data/Feature.js";import{cancelifyWithAbortSignal as n}from"../../support/Cancellable.js";import{constrainQueryTimeExtentToView as c}from"../../support/_query.js";import{toArray as l}from"../../utilities/asyncIterable.js";import{isPoint as u,isPolygon as m,isPolyline as f}from"../../utilities/esri.js";import{isImageryLayerExtension as p}from"../../utilities/extensions.js";import{getLogger as y}from"../../utilities/log.js";import{isNumeric as g}from"../../utilities/number.js";import{IdentifyProviderBase as d}from"./IdentifyProviderBase.js";const I=y("ImageryLayerIdentifyProvider"),h="Raster.";export class ImageryLayerIdentifyProvider extends d{isSupported(e,t,r){return p(e)}async*_identify(r,a,i){const s=r;let o=a;if(a&&!u(a)&&!m(a))if(f(a)){I.debug("An identify on an Imagery Layer (ArcGISImageServiceLayer) was performed using polyline geometry, which is not supported. The center vertex of in the input geometry was used instead.");const t=a.paths[0][Math.floor(a.paths[0].length/2)];o=new e({spatialReference:a.spatialReference,x:t[0],y:t[1]})}else o=t.fromExtent(a.extent);const n=await this._executeIdentifyTask(s,o,i);yield*this._getResultFeatures(n,s,i)}async _count(e,t,r){const a=e;r.returnGeometry=!1;const i=await this._executeIdentifyTask(a,t,r);return{source:e,count:(await l(this._getResultFeatures(i,a,r))).length}}async _executeIdentifyTask(e,t,i){const{layer:s}=e,o=new a({geometry:t,mosaicRule:s.mosaicRule,rasterFunction:s.rasterFunction,returnCatalogItems:e.includeCatalogItems,returnGeometry:e.includeCatalogItems&&i.returnGeometry});c(o,e);return n((async e=>r(s.url,o,{signal:e})),i.cancelToken)}_getPixelData(e,t,r,a){const{layer:i}=a;let s=r.properties?.Values?.[e]??r.value,o=r.value;g(s)&&(s=parseFloat(s)),g(o)&&(o=parseFloat(o)),t.attributes.set(`${h}ServicePixelValue`,o),t.attributes.set(`${h}ServicePixelValue.Raw`,o),t.attributes.set(`${h}ItemPixelValue`,s);const n=i.serviceRasterInfo?.attributeTable??i.rasterInfo?.attributeTable;if(n){const{features:e,fields:r}=n,a=e.find((e=>e.getAttribute("Value")===s));r.forEach((e=>{"Value"!==e.name&&"oid"!==e.type&&t.attributes.set(`${h}${e.name}`,a?.getAttribute(e.name))}))}}async*_getResultFeatures(e,t,r){if("NoData"===e.value)return;const a=r.outSpatialReference&&r.outSpatialReference.wkid!==t.layer.spatialReference.wkid;if(t.includeCatalogItems&&e.catalogItems){let i=Promise.resolve([]);a&&r.returnGeometry&&(i=this._projectGeometries(t.layer.url,e.catalogItems.features.map((e=>e.geometry)),r.outSpatialReference,r.cancelToken));const s=[],n=r.outFields||t.featureSettings.outFields;e.catalogItems.features.forEach(((r,a)=>{const i=o(r,{source:t});if(n&&!n.includes("*"))for(const e of i.attributes.keys())n.includes(e)||i.attributes.delete(e);i.attributes.set("visible",1===e.catalogItemVisibilities?.[a]),this._getPixelData(a,i,e,t),s.push(i)}));const c=await i;c.length>0&&c.forEach(((e,t)=>s[t].geometry=e)),yield*s}if(!t.includeCatalogItems||!e.catalogItems){const i=new s({source:t});i.geometry=a?(await this._projectGeometries(t.layer.url,[e.location],r.outSpatialReference,r.cancelToken))[0]:e.location,this._getPixelData(0,i,e,t),yield i}}async _projectGeometries(e,t,r,a){const s=new i({geometries:t,outSpatialReference:r}),{project:o}=await import("@arcgis/core/rest/geometryService");return n((async t=>o(e,s,{signal:t})),a)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{executeQuery as e,executeCount as t,constrainQueryTimeExtentToView as r}from"../../support/_query.js";import{AsyncQueue as s}from"../../utilities/asyncIterable.js";import{isSubtypeSublayerExtension as i}from"../../utilities/extensions.js";import{removeZValues as o}from"../../utilities/geometry.js";import{isSubtypeSublayer as u}from"../../utilities/layers.js";import{caseInsensitiveEquals as n}from"../../utilities/string.js";import{IdentifyOptions as
|
|
1
|
+
import{executeQuery as e,executeCount as t,constrainQueryTimeExtentToView as r}from"../../support/_query.js";import{AsyncQueue as s}from"../../utilities/asyncIterable.js";import{isSubtypeSublayerExtension as i}from"../../utilities/extensions.js";import{removeZValues as o}from"../../utilities/geometry.js";import{isSubtypeSublayer as u}from"../../utilities/layers.js";import{caseInsensitiveEquals as n}from"../../utilities/string.js";import{IdentifyOptions as a}from"./IdentifyOptions.js";import{IdentifyProviderBase as l}from"./IdentifyProviderBase.js";export class SubtypeSublayerQueryIdentifyProvider extends l{isSupported(e,t,r){return i(e)&&u(e.sublayer)&&!!e.sublayer.layer}_identify(t,r,s){const i=t,{layer:o}=i.sublayer,u=this._createIdentifyQuery(o,r,s,s.outFields??t.featureSettings.outFields);return u.where=`${o.subtypeField}=${i.sublayer.subtypeCode}`,u.returnZ=o.hasZ,e(u,i,o,s.cancelToken)}_identifyMany(t,i,o){if(1===t.length){const e={...a.DEFAULTS,...a.fromFeatureSource(t[0]),...o};return this._identify(t[0],i,e)}const u=new s,l=t.length;let y=0;const f=t.reduce(((e,t)=>{const r=t,s={...a.DEFAULTS,...a.fromFeatureSource(r),...o},i=s.outFields??r.featureSettings.outFields;if(e.has(r.sublayer.layer)){const t=e.get(r.sublayer.layer);let o=!1;for(const{sources:e,identifyOptions:a,outFields:y}of t)if(l=s,(u=a).returnGeometry===l.returnGeometry&&(u.outSpatialReference===l.outSpatialReference||u.outSpatialReference?.equals(l.outSpatialReference))&&u.maxAllowableOffset===l.maxAllowableOffset&&u.maxResults===l.maxResults&&i.length===y.length&&i.every((e=>y.some((t=>n(e,t)))))){e.push(r),o=!0;break}o||t.push({sources:[r],identifyOptions:s,outFields:i})}else e.set(r.sublayer.layer,[{sources:[r],identifyOptions:s,outFields:i}]);var u,l;return e}),new Map);for(const[t,s]of f)for(const{sources:o,identifyOptions:a,outFields:f}of s)(async()=>{if(u.isDone)return;const s=new Map,c=[];for(const e of o)s.set(e.sublayer.subtypeCode,e),c.push(e.sublayer.subtypeCode);const d=this._createIdentifyQuery(t,i,a,f);let p=!1;d.outFields.some((e=>"*"===e||n(e,t.subtypeField)))||(p=!0,d.outFields=[...d.outFields,t.subtypeField]),d.where=`${t.subtypeField} IN (${c.join(",")})`,r(d,o[0]);try{for await(const r of e(d,(e=>{const r=e.attributes;let i=r[t.subtypeField];if(void 0===i){i=r[Object.keys(r).find((e=>n(e,t.subtypeField)))]}return s.get(i)}),t,a.cancelToken)){if(u.isDone)return;p&&r.attributes.delete(t.subtypeField),u.add(r)}}catch(e){u.reject(e)}finally{y+=o.length,y===l&&u.done()}})();return u}_count(e,r,s){const i=e,{layer:o}=i.sublayer,u=this._createBasicQuery(o,r,s,s.outFields??e.featureSettings.outFields);return u.num=s.maxResults,u.where=`${o.subtypeField}=${i.sublayer.subtypeCode}`,t(u,i,o,s.cancelToken)}_createIdentifyQuery(e,t,r,s){const i=this._createBasicQuery(e,t,r,s);return i.outSpatialReference=r.outSpatialReference,i.maxAllowableOffset=r.maxAllowableOffset,e.capabilities.query.supportsPagination&&(i.num=r.maxResults),i}_createBasicQuery(e,t,r,s){const i=e.createQuery();return i.geometry=t,(e.hasZ||e.capabilities?.data?.supportsZ)&&(i.geometry&&(i.geometry=o(t.clone())),i.returnZ=!0),i.outFields=s,i.returnGeometry=r.returnGeometry??i.returnGeometry,i}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isWFSLayerExtension as r}from"../../utilities/extensions.js";import{IdentifyProviderBase as o}from"./IdentifyProviderBase.js";export class WFSLayerQueryIdentifyProvider extends o{isSupported(e,t,o){return r(e)}_identify(t,r,o){const
|
|
1
|
+
import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isWFSLayerExtension as r}from"../../utilities/extensions.js";import{IdentifyProviderBase as o}from"./IdentifyProviderBase.js";export class WFSLayerQueryIdentifyProvider extends o{isSupported(e,t,o){return r(e)}_identify(t,r,o){const u=t,s=u.layer.createQuery(),n=r;return s.geometry=n,s.outFields=o.outFields??t.featureSettings.outFields,s.returnGeometry=o.returnGeometry??s.returnGeometry,s.outSpatialReference=o.outSpatialReference,s.maxAllowableOffset=o.maxAllowableOffset,u.layer.capabilities.query.supportsPagination&&(s.num=o.maxResults),e(s,u,u.layer,o.cancelToken)}_count(e,r,o){const u=e,s=u.layer.createQuery();return s.geometry=r,s.num=o.maxResults,s.returnGeometry=o.returnGeometry??s.returnGeometry,s.outFields=o.outFields??e.featureSettings.outFields,t(s,u,u.layer,o.cancelToken)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"@arcgis/core/layers/support/Field.js";import t from"@arcgis/core/popup/FieldInfo.js";import o from"@arcgis/core/request";import{Feature as r}from"../../data/Feature.js";import{wfsFeatureCollectionToFeatures as s}from"../../mapping/support/ogc.js";import{geoJSONToEsri as i}from"../../utilities/_geoJson.js";import{take as a,toArray as n}from"../../utilities/asyncIterable.js";import{isWMSLayerExtension as l}from"../../utilities/extensions.js";import{IdentifyProviderBase as m}from"./IdentifyProviderBase.js";import{isIdentifiable as u}from"./IdentifyService.js";const f=["application/json","application/geojson","text/xml"],c=["OBJECTID","GLOBALID"];export class WMSLayerFeatureInfoIdentifyProvider extends m{isSupported(e,t,o){return l(e)&&e.layer?.featureInfoFormats?.some((e=>f.includes(e)))&&!e.wfsUrl&&"point"===t?.type}_identify(e,t,r,s){const i=this,n=e._layerView,{extent:l}=n.view,m="point"===t.type?t:t.extent.center,c=n.view.toScreen(m),p=e.layer.featureInfoFormats.find((e=>f.includes(e))),{xmin:y,ymin:d,xmax:g,ymax:F,spatialReference:x}=l,I=`${y},${d},${g},${F}`,h=`EPSG:${x.latestWkid??x.wkid}`,w=e.sublayerExtensions.filter(u).map((({sublayer:e})=>e.name)).filter(Boolean).join();return async function*(){const t=await o(e.layer.featureInfoUrl,{query:{SERVICE:"WMS",LAYERS:w,QUERY_LAYERS:w,REQUEST:"GetFeatureInfo",FORMAT:e.layer.imageFormat,INFO_FORMAT:p,FEATURE_COUNT:r.maxResults,BBOX:I,CRS:h,WIDTH:n.view.width.toString(),HEIGHT:n.view.height.toString(),I:Math.round(c.x).toString(),J:Math.round(c.y).toString(),version:e.layer.version},responseType:"text/xml"===p?"xml":"json"});let s;switch(p){case"application/json":case"application/geojson":s=i._jsonToFeatures(t,r,x,e);break;case"text/xml":s=i._xmlToFeatures(t,e,r)}r.maxResults?yield*a(s,r.maxResults):yield*s}()}async _count(e,t,o){return{source:e,count:(await n(this.identify(e,t,o))).length}}_normalizeFeature(o,r){const s=[];for(const e of o.attributes.keys())s.push(e);!r.returnGeometry&&o.geometry&&(o.geometry=void 0);const{featureSettings:i}=o.source,{popupTemplate:a}=i;if(a&&i._isDefaultPopupTemplate){if(!o.title){const e=c.find((e=>o.attributes.has(e)))??"ID";a.title=`{${e}}`,o.attributes.has(e)||o.attributes.set(e,o.id)}for(const e of s)a.fieldInfos
|
|
1
|
+
import e from"@arcgis/core/layers/support/Field.js";import t from"@arcgis/core/popup/FieldInfo.js";import o from"@arcgis/core/request";import{Feature as r}from"../../data/Feature.js";import{wfsFeatureCollectionToFeatures as s}from"../../mapping/support/ogc.js";import{geoJSONToEsri as i}from"../../utilities/_geoJson.js";import{take as a,toArray as n}from"../../utilities/asyncIterable.js";import{isWMSLayerExtension as l}from"../../utilities/extensions.js";import{IdentifyProviderBase as m}from"./IdentifyProviderBase.js";import{isIdentifiable as u}from"./IdentifyService.js";const f=["application/json","application/geojson","text/xml"],c=["OBJECTID","GLOBALID"];export class WMSLayerFeatureInfoIdentifyProvider extends m{isSupported(e,t,o){return l(e)&&(e.layer?.featureInfoFormats?.some((e=>f.includes(e)))??!1)&&!e.wfsUrl&&"point"===t?.type}_identify(e,t,r,s){const i=this,n=e._layerView,{extent:l}=n.view,m="point"===t.type?t:t.extent.center,c=n.view.toScreen(m),p=e.layer.featureInfoFormats.find((e=>f.includes(e))),{xmin:y,ymin:d,xmax:g,ymax:F,spatialReference:x}=l,I=`${y},${d},${g},${F}`,h=`EPSG:${x.latestWkid??x.wkid}`,w=e.sublayerExtensions.filter(u).map((({sublayer:e})=>e.name)).filter(Boolean).join();return async function*(){const t=await o(e.layer.featureInfoUrl,{query:{SERVICE:"WMS",LAYERS:w,QUERY_LAYERS:w,REQUEST:"GetFeatureInfo",FORMAT:e.layer.imageFormat,INFO_FORMAT:p,FEATURE_COUNT:r.maxResults,BBOX:I,CRS:h,WIDTH:n.view.width.toString(),HEIGHT:n.view.height.toString(),I:Math.round(c.x).toString(),J:Math.round(c.y).toString(),version:e.layer.version},responseType:"text/xml"===p?"xml":"json"});let s;switch(p){case"application/json":case"application/geojson":s=i._jsonToFeatures(t,r,x,e);break;case"text/xml":s=i._xmlToFeatures(t,e,r)}null!=s&&(r.maxResults?yield*a(s,r.maxResults):yield*s)}()}async _count(e,t,o){return{source:e,count:(await n(this.identify(e,t,o))).length}}_normalizeFeature(o,r){const s=[];for(const e of o.attributes.keys())s.push(e);!r.returnGeometry&&o.geometry&&(o.geometry=void 0);const{featureSettings:i}=o.source,{popupTemplate:a}=i;if(a&&i._isDefaultPopupTemplate){if(!o.title){const e=c.find((e=>o.attributes.has(e)))??"ID";a.title=`{${e}}`,o.attributes.has(e)||o.attributes.set(e,o.id)}for(const e of s)a.fieldInfos?.some((t=>t.fieldName===e))||(a.fieldInfos||(a.fieldInfos=[]),a.fieldInfos.push(new t({fieldName:e})))}const{source:n}=o;for(const t of s)n.schema.findFieldByName(t)||n.schema.fields.add(new e({name:t,alias:t}));return o}async*_xmlToFeatures(e,t,o){const r=e.data.childNodes[0];if("FeatureCollection"===r.localName)for(const e of await s(r,t))yield this._normalizeFeature(e,o);else yield*this._membersToFeature(r,t,o)}async*_jsonToFeatures(e,t,o,s){const a=e.data,n=new Map;for(const e of a.features){let a;const l=e.properties;t.returnGeometry&&e.geometry&&(a=i(e.geometry),a&&(a.spatialReference=o));let m=n.get(e.layerName);m||(m=s.sublayerExtensions.find((t=>t.sublayer.name===e.layerName))??s,n.set(e.layerName,m)),yield this._normalizeFeature(new r({attributes:l,geometry:a,source:m,id:e.id}),t)}}*_membersToFeature(e,t,o){for(const s of e.getElementsByTagName("FIELDS")){const e=new Map;for(const t of s.getAttributeNames())e.set(t,s.getAttribute(t));yield this._normalizeFeature(new r({attributes:e,source:t}),o)}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"@arcgis/core/geometry/SpatialReference";import{InvalidOperationError as t}from"../../InvalidOperationError.js";import{wfsFeatureCollectionToFeatures as r}from"../../mapping/support/ogc.js";import{DefaultRequestHelper as
|
|
1
|
+
import e from"@arcgis/core/geometry/SpatialReference";import{InvalidOperationError as t}from"../../InvalidOperationError.js";import{wfsFeatureCollectionToFeatures as r}from"../../mapping/support/ogc.js";import{DefaultRequestHelper as s}from"../../utilities/RequestHelper.js";import{OgcNamespace as i,inferGmlVersion as a}from"../../utilities/_ogc.js";import{checkArg as n}from"../../utilities/checkArg.js";import{isWMSSublayerExtension as o}from"../../utilities/extensions.js";import{esriToGml as l,project as c,esriWktToWkid as m}from"../../utilities/geometry.js";import{IdentifyProviderBase as u}from"./IdentifyProviderBase.js";const p="2.0.0";export class WMSSublayerIdentifyProvider extends u{requestHelper=new s;isSupported(e,t,r){return o(e)&&void 0!==e.layerExtension?.wfsUrl}_identify(e,t,s){const i=(async()=>{if(await e.initialize(),await e.initializeWfs(),!e.wfsLayerInfo)return;const r=await this._createGetFeatureSpatialQuery(e,t,s),i={method:"post",body:(new XMLSerializer).serializeToString(r),headers:{"Content-Type":"text/xml; charset=utf-8"}};return this.requestHelper.request(e.layerExtension.wfsUrl,i)})();return async function*(){const t=await i;if(t){const s=await t.text(),i=(new DOMParser).parseFromString(s,"text/xml");if(!t||!i||i.childNodes.length<1)throw new Error("Response to WFS GetFeature request was invalid.");yield*await r(i.childNodes[0],e)}}()}async _count(e,t,s={}){const i=(async()=>{if(await e.initialize(),await e.initializeWfs(),!e.wfsLayerInfo)return;const r=await this._createGetFeatureSpatialQuery(e,t,s),i={method:"post",body:(new XMLSerializer).serializeToString(r),headers:{"Content-Type":"text/xml; charset=utf-8"}};return this.requestHelper.request(e.layerExtension.wfsUrl,i)})();let a;const n=await i;if(n){const t=await n.text(),s=(new DOMParser).parseFromString(t,"text/xml");if(!n||!s||s.childNodes.length<1)throw new Error("Response to WFS GetFeature request was invalid.");a=await r(s.childNodes[0],e)}return{source:e,count:a?.length??0}}async _createGetFeatureSpatialQuery(e,t,r){n("sublayerX",e).isNotMissing(),n("geometry",t).isNotMissing().satisfies((e=>["extent","point","polygon","polyline"].includes(e.type)));const s=e.wfsLayerInfo,i=s.wfsCapabilities.featureTypes.find((e=>e.namespaceUri===s.namespaceUri&&e.name===s.name)),a=this._createGetFeatureElement(r),o=await this._createQueryElement(i,t);a.appendChild(o);let l=s.fields.map((e=>e.name)).filter((e=>"__esri_wfs_id__"!==e));const c=r?.outFields??e.featureSettings.outFields;c&&c.length>0&&(c.includes("*")||(l=c));const{geometryField:m}=e.wfsLayerInfo;l.includes(m)||(l=l.concat(m));for(const e of l){const t=this._createElement("wfs","PropertyName");t.textContent=e,o.appendChild(t)}const u=this._createElement("fes","Filter");o.appendChild(u);const p=this._createElement("fes","Intersects");u.appendChild(p);const f=this._createGeometryFieldElement(e);p.appendChild(f);const d=await this._createGeometryElement(e,t);return p.appendChild(d),a}_createGetFeatureElement(e){const t=this._createElement("wfs","GetFeature");t.setAttribute("service","WFS"),t.setAttribute("version",p),t.setAttribute("xmlns:xs",i.XS),t.setAttribute("xmlns:ogc",i.OGC),t.setAttribute("xmlns:wfs",this._getWfsNameSpace(p)),t.setAttribute("xmlns:gml",this._getGmlNameSpace(p)),t.setAttribute("outputFormat","application/gml+xml; version=3.2");let r=1e3;return e?.maxResults&&(r=e.maxResults),t.setAttribute("count",r.toString()),t.setAttribute("xmlns:fes",i.FES_2_0),t}async _createQueryElement(e,t){const r=this._createElement("wfs","Query"),s=await this._getCompatibleSR(e,t),i=this._getSrsName(s);return r.setAttribute("typeNames",e.name),r.setAttribute("srsName",i),r}_createGeometryFieldElement(e){const{geometryField:r}=e.wfsLayerInfo;if(!r)throw new t("The WFS feature type does not have a geometry field");const s=this._createElement("fes","ValueReference");return s.textContent=r,s}async _createGeometryElement(e,t){n("geometry",t).isNotMissing(),n("geometry.spatialReference",t.spatialReference).isNotMissing();const r={gmlVersion:a(p)},s=await this._getCompatibleSR(e.wfsFeatureType,t);if(r.srsName=this._getSrsName(s),s.equals(t.spatialReference))return l(t,r);{const s=await this.projectGeometry(t,e.wfsFeatureType.defaultSpatialReference);return l(s,r)}}async projectGeometry(t,r){const s=await c([t],new e({wkid:r}));if(s&&s.length>0)return s[0];throw new Error("Unable to create a geometry element.")}_createElement(e,t){n("name",t).isNotMissing();const r=document.implementation.createDocument(null,"temp",void 0);return e?r.createElement(`${e}:${t}`):r.createElement(t)}_getWfsNameSpace(e){switch(e){case"1.0.0":case"1.1.0":return i.WFS;default:return i.WFS_2_0}}_getGmlNameSpace(e){switch(e){case"1.0.0":case"1.1.0":return i.GML;default:return i.GML_3_2}}async _getCompatibleSR(t,r){n("wfsFeatureType",t).isNotMissing(),n("geometry",r).isNotMissing();const s=r.spatialReference.wkid?r.spatialReference:new e({wkid:await m(r.spatialReference.wkt)});return t.supportedSpatialReferences.map((t=>new e({wkid:t}))).find((e=>e.equals(s)))??new e({wkid:t.defaultSpatialReference})}_getSrsName(e){return`EPSG:${e.wkid}`}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__decorate as e}from"tslib";import i from"@arcgis/core/rest/support/RelationshipQuery";import{
|
|
1
|
+
import{__decorate as e}from"tslib";import i from"@arcgis/core/rest/support/RelationshipQuery";import{InvalidOperationError as t}from"../../InvalidOperationError.js";import{isSublayerExtension as r}from"../../ItemType.js";import{RelationshipBase as a}from"../../data/RelationshipBase.js";import{cancelifyWithAbortSignal as s}from"../../support/Cancellable.js";import{serializable as o}from"../../support/Serializable.js";import{isFeatureLayer as l,isMapImageSublayer as n,isSubtypeGroupLayer as u}from"../../utilities/_layers.js";import{checkArg as p}from"../../utilities/checkArg.js";import{isArcGISServiceTableExtension as y,isFeatureLayerExtension as d,isSubtypeGroupLayerExtension as c,isSubtypeSublayerExtension as m}from"../../utilities/extensions.js";import{QueryService as h}from"./QueryService.js";const f="Cannot get related features without feature source.",g=new WeakMap;let F=class extends a{relatedSource;cardinality;keyField;relationshipType="ArcGISRelationship";queryService;relatedKeyField;relationshipTableId;originForeignKey;destinationForeignKey;constructor(e){super(e),p("properties",e).isNotMissing(),p("properties.relatedSource",e.relatedSource).isNotMissing(),p("properties.keyField",e.keyField).isNotMissing().isNotEmpty(),this.relatedSource=e.relatedSource,this.keyField=e.keyField,this.relatedKeyField=e.relatedKeyField,this.cardinality=e.cardinality||"many-to-many",this.relationshipTableId=e.relationshipTableId,this.queryService=e.queryService||new h,this.originForeignKey=e.originForeignKey,this.destinationForeignKey=e.destinationForeignKey}get isAttributed(){return"number"==typeof this.relationshipTableId}_getSerializableProperties(){return{...super._getSerializableProperties(),keyField:"initial",relatedKeyField:"initial",$relationshipType:{serializeModes:["initial"],serialize:()=>"ArcGISRelationship"},cardinality:"initial",relatedSource:"initial",queryService:{serialize:!1},destinationForeignKey:"initial",originForeignKey:"initial",relationshipTableId:"initial"}}async _getRelatedFeatures(e,i){if(!this.source)throw new t(f);return s((async i=>(await w([e],S(this.source),this.relatedSource,{relationshipId:+this.id,signal:i})).get(e)),i?.cancelToken)}async _getAllRelatedFeatures(e){if(!this.source)throw new t(f);return w(e,S(this.source),this.relatedSource,{relationshipId:+this.id})}};F=e([o],F);export{F as ArcGISRelationship};function S(e){let i;if(y(e))i=e.table;else if(d(e))i=e.layer;else if(r(e)&&n(e.sublayer))i=e.sublayer;else if(m(e)&&e.sublayer?.layer)i=e.sublayer.layer;else{if(!c(e))throw new Error(`Cannot query for related records. Unsupported FeatureSource: ${e.title} (${e.itemType}/${e.id})`);i=e.layer}return i}const b={returnGeometry:!0};async function w(e,t,r,a){const s=e.map((e=>null==e.primaryKey?NaN:+e.primaryKey)),{signal:o,...n}=a,p=new i({...b,objectIds:s.filter((e=>!isNaN(e)&&"number"==typeof e)),outFields:r?.featureSettings.outFields??["*"],...n});let y;if(l(t)||u(t))y=t;else{const e=t;if(!g.has(e)){const i=await e.createFeatureLayer();i&&g.set(e,i)}y=g.get(e)}const d=await y.queryRelatedFeatures(p,{signal:o}),c=new Map,[m,h]=await Promise.all([(await import("../../data/FeatureSet.js")).FeatureSet,(await import("../../data/Feature.js")).toFeature]);return s.forEach(((i,t)=>{c.set(e[t],new m({source:r,features:d[i]?.features.map((e=>h(e,{source:r})))??[]}))})),c}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{executeQuery as e,executeCountByQuery as r}from"../../support/_query.js";import{isMapImageSublayerExtension as t}from"../../utilities/extensions.js";import{QueryProviderBase as s}from"./QueryProviderBase.js";export class ArcGISSublayerQueryProvider extends s{isSupported(e){return t(e)&&e.capabilities.supportsQuery}_query(r,t,s){const{sublayer:a}=r,
|
|
1
|
+
import{executeQuery as e,executeCountByQuery as r}from"../../support/_query.js";import{isMapImageSublayerExtension as t}from"../../utilities/extensions.js";import{QueryProviderBase as s}from"./QueryProviderBase.js";export class ArcGISSublayerQueryProvider extends s{isSupported(e){return t(e)&&e.capabilities.supportsQuery}_query(r,t,s){const{sublayer:a}=r,o=a.createQuery();return o.where=t,o.outFields=s.outFields,o.returnGeometry=s.returnGeometry??o.returnGeometry,o.outSpatialReference=s.outSpatialReference,o.maxAllowableOffset=s.maxAllowableOffset,o.returnZ=a.layer?.sourceJSON?.hasZ,s.spatialFilter&&(o.spatialRelationship="intersects",o.geometry=s.spatialFilter),r.supportsPagination&&(o.num=s.maxResults),e(o,r,a,s.cancelToken)}_count(e,t,s){const{sublayer:a}=e,o=a.createQuery();return o.where=t,o.returnGeometry=s.returnGeometry??o.returnGeometry,o.outFields=s.outFields,s.spatialFilter&&(o.spatialRelationship="intersects",o.geometry=s.spatialFilter),o.num=s.maxResults,r(o,e,a,s.cancelToken)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isCSVLayer as r}from"../../utilities/_layers.js";import{removeZValues as s}from"../../utilities/geometry.js";import{QueryProviderBase as i}from"./QueryProviderBase.js";export class CSVLayerClientSideQueryProvider extends i{isSupported(e){const{layer:t}=e;return r(t)}_query(t,r,i){const{layer:
|
|
1
|
+
import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isCSVLayer as r}from"../../utilities/_layers.js";import{removeZValues as s}from"../../utilities/geometry.js";import{QueryProviderBase as i}from"./QueryProviderBase.js";export class CSVLayerClientSideQueryProvider extends i{isSupported(e){const{layer:t}=e;return r(t)}_query(t,r,i){const{layer:o}=t,a=o.createQuery();a.where=r,a.outFields=i.outFields,a.returnGeometry=i.returnGeometry??a.returnGeometry,a.outSpatialReference=i.outSpatialReference,a.maxAllowableOffset=i.maxAllowableOffset,a.returnZ="scene"===t.mapExtension?.viewMode;let l=i.spatialFilter;return l&&(a.spatialRelationship="intersects",o.capabilities?.data?.supportsZ||(l=s(l.clone())),a.geometry=l),o.capabilities.query.supportsPagination&&(a.num=i.maxResults),e(a,t,o,i.cancelToken)}async _count(e,r,i){const{layer:o}=e,a=o.createQuery();a.where=r,a.outFields=i.outFields,a.returnGeometry=i.returnGeometry??a.returnGeometry;let l=i.spatialFilter;return l&&(a.spatialRelationship="intersects",l&&!o.capabilities?.data?.supportsZ&&(l=s(l.clone())),a.geometry=l),a.num=i.maxResults,t(a,e,o,i.cancelToken)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{toFeature as e}from"../../data/Feature.js";import{cancelify as t,cancelifyWithAbortSignal as r}from"../../support/Cancellable.js";import{watch as i}from"../../support/observableUtils.js";import*as a from"../../utilities/asyncIterable.js";import{isSubtypeSublayerExtension as s}from"../../utilities/extensions.js";import{isBuildingComponentSublayer as n}from"../../utilities/layers.js";import{QueryProviderBase as o}from"./QueryProviderBase.js";export class ClientSideQueryProvider extends o{get _waitForUpdatingFinished(){return!0}_query(t,r,i){const s=this;return async function*(){const n=await s._getClientSideLayerGraphics(t,r,i);n?.length?yield*n.map((r=>e(r,{source:t}))):yield*a.empty()}()}async _count(e,t,r){const i=await this._getClientSideLayerGraphics(e,t,r);return{source:e,count:i?i.length:0}}_createQuery(e,t,r){const i=s(e)?e.layerExtension:e,{_layerView:a,featureSettings:o}=i,l=n(i.sublayer)?e.layerExtension?.mapExtension:e.mapExtension,u=a.createQuery();return u.where=t,u.geometry=r.spatialFilter,u.outFields=o.outFields,u.returnGeometry=r.returnGeometry,u.outSpatialReference=r.outSpatialReference,u.maxAllowableOffset=r.maxAllowableOffset,u.num=r.maxResults,u.returnZ="scene"===l?.viewMode,u}async _getClientSideLayerGraphics(e,a,n){const o=s(e)?e.layerExtension:e,{_layerView:l}=o;if(!l)return;this._waitForUpdatingFinished&&await t(new Promise(((e,t)=>{l.updating||e();const r=i(l,"updating",(t=>{t||(r.remove(),e())}))})),n.cancelToken);const u=await r((async t=>l.queryFeatures(this._createQuery(e,a,n),{signal:t})),n.cancelToken);return u?.features}}
|
|
1
|
+
import{toFeature as e}from"../../data/Feature.js";import{cancelify as t,cancelifyWithAbortSignal as r}from"../../support/Cancellable.js";import{watch as i}from"../../support/observableUtils.js";import*as a from"../../utilities/asyncIterable.js";import{isSubtypeSublayerExtension as s}from"../../utilities/extensions.js";import{isBuildingComponentSublayer as n}from"../../utilities/layers.js";import{QueryProviderBase as o}from"./QueryProviderBase.js";export class ClientSideQueryProvider extends o{get _waitForUpdatingFinished(){return!0}_query(t,r,i){const s=this;return async function*(){const n=await s._getClientSideLayerGraphics(t,r,i);n?.length?yield*n.map((r=>e(r,{source:t}))):yield*a.empty()}()}async _count(e,t,r){const i=await this._getClientSideLayerGraphics(e,t,r);return{source:e,count:i?i.length:0}}_createQuery(e,t,r){const i=s(e)?e.layerExtension:e,{_layerView:a,featureSettings:o}=i,l=n(i.sublayer)?e.layerExtension?.mapExtension:e.mapExtension,u=a.createQuery();return u.where=t,u.geometry=r.spatialFilter,u.outFields=o.outFields,u.returnGeometry=r.returnGeometry??u.returnGeometry,u.outSpatialReference=r.outSpatialReference,u.maxAllowableOffset=r.maxAllowableOffset,u.num=r.maxResults,u.returnZ="scene"===l?.viewMode,u}async _getClientSideLayerGraphics(e,a,n){const o=s(e)?e.layerExtension:e,{_layerView:l}=o;if(!l)return;this._waitForUpdatingFinished&&await t(new Promise(((e,t)=>{l.updating||e();const r=i(l,"updating",(t=>{t||(r.remove(),e())}))})),n.cancelToken);const u=await r((async t=>l.queryFeatures(this._createQuery(e,a,n),{signal:t})),n.cancelToken);return u?.features}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isFeatureLayer as r}from"../../utilities/_layers.js";import{removeZValues as s}from"../../utilities/geometry.js";import{QueryProviderBase as a}from"./QueryProviderBase.js";export class FeatureLayerQueryProvider extends a{isSupported(e){const{layer:t}=e;return r(t)&&e.capabilities.supportsQuery}_query(t,r,a){const{layer:i}=t,o=i.createQuery();o.where=r,o.outFields=a.outFields,o.returnGeometry=a.returnGeometry,o.outSpatialReference=a.outSpatialReference,o.maxAllowableOffset=a.maxAllowableOffset,o.returnZ=i.hasZ;let l=a.spatialFilter;return l&&(o.spatialRelationship="intersects",!l||i.hasZ&&i.capabilities?.data?.supportsZ||(l=s(l.clone())),o.geometry=l),i.capabilities.query.supportsPagination&&(o.num=a.maxResults),e(o,t,i,a.cancelToken)}_count(e,r,a){const{layer:i}=e,o=i.createQuery();o.where=r,o.outFields=a.outFields,o.returnGeometry=a.returnGeometry;let l=a.spatialFilter;return l&&(o.spatialRelationship="intersects",!l||i.hasZ&&i.capabilities?.data?.supportsZ||(l=s(l.clone())),o.geometry=l),o.num=a.maxResults,t(o,e,i,a.cancelToken)}}
|
|
1
|
+
import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isFeatureLayer as r}from"../../utilities/_layers.js";import{removeZValues as s}from"../../utilities/geometry.js";import{QueryProviderBase as a}from"./QueryProviderBase.js";export class FeatureLayerQueryProvider extends a{isSupported(e){const{layer:t}=e;return r(t)&&e.capabilities.supportsQuery}_query(t,r,a){const{layer:i}=t,o=i.createQuery();o.where=r,o.outFields=a.outFields,o.returnGeometry=a.returnGeometry??o.returnGeometry,o.outSpatialReference=a.outSpatialReference,o.maxAllowableOffset=a.maxAllowableOffset,o.returnZ=i.hasZ;let l=a.spatialFilter;return l&&(o.spatialRelationship="intersects",!l||i.hasZ&&i.capabilities?.data?.supportsZ||(l=s(l.clone())),o.geometry=l),i.capabilities.query.supportsPagination&&(o.num=a.maxResults),e(o,t,i,a.cancelToken)}_count(e,r,a){const{layer:i}=e,o=i.createQuery();o.where=r,o.outFields=a.outFields,o.returnGeometry=a.returnGeometry??o.returnGeometry;let l=a.spatialFilter;return l&&(o.spatialRelationship="intersects",!l||i.hasZ&&i.capabilities?.data?.supportsZ||(l=s(l.clone())),o.geometry=l),o.num=a.maxResults,t(o,e,i,a.cancelToken)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isGeoJSONLayer as r}from"../../utilities/_layers.js";import{removeZValues as s}from"../../utilities/geometry.js";import{QueryProviderBase as a}from"./QueryProviderBase.js";export class GeoJSONLayerClientSideQueryProvider extends a{isSupported(e){const{layer:t}=e;return r(t)}_query(t,r,a){const{layer:
|
|
1
|
+
import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isGeoJSONLayer as r}from"../../utilities/_layers.js";import{removeZValues as s}from"../../utilities/geometry.js";import{QueryProviderBase as a}from"./QueryProviderBase.js";export class GeoJSONLayerClientSideQueryProvider extends a{isSupported(e){const{layer:t}=e;return r(t)}_query(t,r,a){const{layer:o}=t,i=o.createQuery();i.where=r,i.outFields=a.outFields,i.returnGeometry=a.returnGeometry??i.returnGeometry,i.outSpatialReference=a.outSpatialReference,i.maxAllowableOffset=a.maxAllowableOffset,i.returnZ=o.hasZ;let l=a.spatialFilter;return l&&(i.spatialRelationship="intersects",o.capabilities?.data?.supportsZ||(l=s(l.clone())),i.geometry=l),o.capabilities.query.supportsPagination&&(i.num=a.maxResults),e(i,t,o,a.cancelToken)}async _count(e,r,a){const{layer:o}=e,i=o.createQuery();i.where=r,i.outFields=a.outFields,i.returnGeometry=a.returnGeometry??i.returnGeometry;let l=a.spatialFilter;return l&&(i.spatialRelationship="intersects",l&&!o.capabilities?.data?.supportsZ&&(l=s(l.clone())),i.geometry=l),i.num=a.maxResults,t(i,e,o,a.cancelToken)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{executeQuery as e,executeCount as r,concatenateWhereClauses as t}from"../../support/_query.js";import{isSceneLayer as a}from"../../utilities/_layers.js";import{QueryProviderBase as s}from"./QueryProviderBase.js";export class SceneLayerQueryProvider extends s{isSupported(e){const{layer:r}=e;return a(r)&&!!r.associatedLayer}_query(r,a,s){const{layer:
|
|
1
|
+
import{executeQuery as e,executeCount as r,concatenateWhereClauses as t}from"../../support/_query.js";import{isSceneLayer as a}from"../../utilities/_layers.js";import{QueryProviderBase as s}from"./QueryProviderBase.js";export class SceneLayerQueryProvider extends s{isSupported(e){const{layer:r}=e;return a(r)&&!!r.associatedLayer}_query(r,a,s){const{layer:o}=r,i=o.associatedLayer.createQuery();return i.where=t(a,o.definitionExpression),i.outFields=s.outFields,i.returnGeometry=s.returnGeometry??i.returnGeometry,i.outSpatialReference=s.outSpatialReference,i.maxAllowableOffset=s.maxAllowableOffset,s.spatialFilter&&(i.spatialRelationship="intersects",i.geometry=s.spatialFilter),i.num=s.maxResults,i.returnZ=!0,e(i,r,o.associatedLayer,s.cancelToken)}async _count(e,t,a){const{layer:s}=e,o=s.associatedLayer.createQuery();return o.where=t,o.outFields=a.outFields,o.returnGeometry=a.returnGeometry??o.returnGeometry,a.spatialFilter&&(o.spatialRelationship="intersects",o.geometry=a.spatialFilter),o.num=a.maxResults,r(o,e,s.associatedLayer,a.cancelToken)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{executeQuery as e,executeCount as t,concatenateWhereClauses as r,constrainQueryTimeExtentToView as s}from"../../support/_query.js";import{isSubtypeSublayer as o}from"../../utilities/_layers.js";import{AsyncQueue as u}from"../../utilities/asyncIterable.js";import{removeZValues as i}from"../../utilities/geometry.js";import{caseInsensitiveEquals as a}from"../../utilities/string.js";import{QueryOptions as l}from"./QueryOptions.js";import{QueryProviderBase as n}from"./QueryProviderBase.js";export class SubtypeSublayerQueryProvider extends n{isSupported(e){const{sublayer:t}=e;return o(t)&&t.layer&&e.layerExtension?.capabilities.supportsQuery}_query(t,s,o){const{sublayer:u}=t,i=this._createQuery(u.layer,o,o.outFields??t.featureSettings.outFields);return i.where=r(`${u.layer.subtypeField}=${u.subtypeCode}`,s),e(i,t,u.layer,o.cancelToken)}_queryMany(t,o,i){if(1===t.length){const e={...l.DEFAULTS,...l.fromFeatureSource(t[0]),...i};return this._query(t[0],o,e)}const n=new u,y=t.length;let c=0;const p=t.reduce(((e,t)=>{const r=t,s={...l.DEFAULTS,...l.fromFeatureSource(r),...i},o=s.outFields??r.featureSettings.outFields;if(e.has(r.sublayer.layer)){const t=e.get(r.sublayer.layer);let i=!1;for(const{sources:e,queryOptions:l,outFields:y}of t)if(n=s,(u=l).returnGeometry===n.returnGeometry&&(u.outSpatialReference===n.outSpatialReference||u.outSpatialReference?.equals(n.outSpatialReference))&&u.maxAllowableOffset===n.maxAllowableOffset&&o.length===y.length&&o.every((e=>y.some((t=>a(e,t)))))){e.push(r),i=!0;break}i||t.push({sources:[r],queryOptions:s,outFields:o})}else e.set(r.sublayer.layer,[{sources:[r],queryOptions:s,outFields:o}]);var u,n;return e}),new Map);for(const[t,u]of p)for(const{sources:i,queryOptions:l,outFields:p}of u)(async()=>{if(n.isDone)return;const u=new Map,f=[];for(const e of i)u.set(e.sublayer.subtypeCode,e),f.push(e.sublayer.subtypeCode);const d=this._createQuery(t,l,p);let b=!1;d.outFields.some((e=>"*"===e||a(e,t.subtypeField)))||(b=!0,d.outFields=[...d.outFields,t.subtypeField]),d.where="1=1"===o?"":o,d.where=r(`${t.subtypeField} IN (${f.join(",")})`,d.where),s(d,i[0]);try{for await(const r of e(d,(e=>{
|
|
1
|
+
import{executeQuery as e,executeCount as t,concatenateWhereClauses as r,constrainQueryTimeExtentToView as s}from"../../support/_query.js";import{isSubtypeSublayer as o}from"../../utilities/_layers.js";import{AsyncQueue as u}from"../../utilities/asyncIterable.js";import{removeZValues as i}from"../../utilities/geometry.js";import{caseInsensitiveEquals as a}from"../../utilities/string.js";import{QueryOptions as l}from"./QueryOptions.js";import{QueryProviderBase as n}from"./QueryProviderBase.js";export class SubtypeSublayerQueryProvider extends n{isSupported(e){const{sublayer:t}=e;return o(t)&&t.layer&&e.layerExtension?.capabilities.supportsQuery}_query(t,s,o){const{sublayer:u}=t,i=this._createQuery(u.layer,o,o.outFields??t.featureSettings.outFields);return i.where=r(`${u.layer.subtypeField}=${u.subtypeCode}`,s),e(i,t,u.layer,o.cancelToken)}_queryMany(t,o,i){if(1===t.length){const e={...l.DEFAULTS,...l.fromFeatureSource(t[0]),...i};return this._query(t[0],o,e)}const n=new u,y=t.length;let c=0;const p=t.reduce(((e,t)=>{const r=t,s={...l.DEFAULTS,...l.fromFeatureSource(r),...i},o=s.outFields??r.featureSettings.outFields;if(e.has(r.sublayer.layer)){const t=e.get(r.sublayer.layer);let i=!1;for(const{sources:e,queryOptions:l,outFields:y}of t)if(n=s,(u=l).returnGeometry===n.returnGeometry&&(u.outSpatialReference===n.outSpatialReference||u.outSpatialReference?.equals(n.outSpatialReference))&&u.maxAllowableOffset===n.maxAllowableOffset&&o.length===y.length&&o.every((e=>y.some((t=>a(e,t)))))){e.push(r),i=!0;break}i||t.push({sources:[r],queryOptions:s,outFields:o})}else e.set(r.sublayer.layer,[{sources:[r],queryOptions:s,outFields:o}]);var u,n;return e}),new Map);for(const[t,u]of p)for(const{sources:i,queryOptions:l,outFields:p}of u)(async()=>{if(n.isDone)return;const u=new Map,f=[];for(const e of i)u.set(e.sublayer.subtypeCode,e),f.push(e.sublayer.subtypeCode);const d=this._createQuery(t,l,p);let b=!1;d.outFields.some((e=>"*"===e||a(e,t.subtypeField)))||(b=!0,d.outFields=[...d.outFields,t.subtypeField]),d.where="1=1"===o?"":o,d.where=r(`${t.subtypeField} IN (${f.join(",")})`,d.where),s(d,i[0]);try{for await(const r of e(d,(e=>{const r=e.attributes;let s=r[t.subtypeField];if(void 0===s){s=r[Object.keys(r).find((e=>a(e,t.subtypeField)))]}return u.get(s)}),t,l.cancelToken)){if(n.isDone)return;b&&r.attributes.delete(t.subtypeField),n.add(r)}}catch(e){n.reject(e)}finally{c+=i.length,c===y&&n.done()}})();return n}_count(e,s,o){const{sublayer:u}=e,i=this._createBasicQuery(u.layer,o,o.outFields??e.featureSettings.outFields);return i.where=r(`${u.layer.subtypeField}=${u.subtypeCode}`,s),t(i,e,u.layer,o.cancelToken)}_createQuery(e,t,r){const s=this._createBasicQuery(e,t,r);return s.outSpatialReference=t.outSpatialReference,s.maxAllowableOffset=t.maxAllowableOffset,s.returnZ=e.hasZ,s}_createBasicQuery(e,t,r){const s=e.createQuery();s.outFields=r,s.returnGeometry=t.returnGeometry??s.returnGeometry;let o=t.spatialFilter;return o&&(s.spatialRelationship="intersects",!o||e.hasZ&&e.capabilities?.data?.supportsZ||(o=i(o.clone())),s.geometry=o),e.capabilities.query.supportsPagination&&(s.num=t.maxResults),s}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isWFSLayerExtension as r}from"../../utilities/extensions.js";import{QueryProviderBase as s}from"./QueryProviderBase.js";export class WFSLayerQueryProvider extends s{isSupported(e){return r(e)&&e.capabilities.supportsQuery}_query(t,r,s){const{layer:o}=t,i=o.createQuery();i.where=r,i.outFields=s.outFields,i.returnGeometry=s.returnGeometry,i.outSpatialReference=s.outSpatialReference,i.maxAllowableOffset=s.maxAllowableOffset;const a=s.spatialFilter;return a&&(i.spatialRelationship="intersects",i.geometry=a),o.capabilities.query.supportsPagination&&(i.num=s.maxResults),e(i,t,o,s.cancelToken)}_count(e,r,s){const{layer:o}=e,i=o.createQuery();i.where=r,i.outFields=s.outFields,i.returnGeometry=s.returnGeometry;const a=s.spatialFilter;return a&&(i.spatialRelationship="intersects",i.geometry=a),i.num=s.maxResults,t(i,e,o,s.cancelToken)}}
|
|
1
|
+
import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isWFSLayerExtension as r}from"../../utilities/extensions.js";import{QueryProviderBase as s}from"./QueryProviderBase.js";export class WFSLayerQueryProvider extends s{isSupported(e){return r(e)&&e.capabilities.supportsQuery}_query(t,r,s){const{layer:o}=t,i=o.createQuery();i.where=r,i.outFields=s.outFields,i.returnGeometry=s.returnGeometry??i.returnGeometry,i.outSpatialReference=s.outSpatialReference,i.maxAllowableOffset=s.maxAllowableOffset;const a=s.spatialFilter;return a&&(i.spatialRelationship="intersects",i.geometry=a),o.capabilities.query.supportsPagination&&(i.num=s.maxResults),e(i,t,o,s.cancelToken)}_count(e,r,s){const{layer:o}=e,i=o.createQuery();i.where=r,i.outFields=s.outFields,i.returnGeometry=s.returnGeometry??i.returnGeometry;const a=s.spatialFilter;return a&&(i.spatialRelationship="intersects",i.geometry=a),i.num=s.maxResults,t(i,e,o,s.cancelToken)}}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Feature } from "../../data/Feature.js";
|
|
2
2
|
import type { FeatureSource } from "../../data/FeatureSource.js";
|
|
3
|
+
import type { ArcGISGeocoder } from "../geocoding/ArcGISGeocoder.js";
|
|
3
4
|
import { GeocoderSearchProvider } from "./GeocoderSearchProvider.js";
|
|
4
5
|
import type { SearchOptions } from "./SearchOptions.js";
|
|
5
6
|
/**
|
|
@@ -7,5 +8,5 @@ import type { SearchOptions } from "./SearchOptions.js";
|
|
|
7
8
|
*/
|
|
8
9
|
export declare class ArcGISGeocoderSearchProvider extends GeocoderSearchProvider {
|
|
9
10
|
isSupported(source: FeatureSource): boolean;
|
|
10
|
-
protected _search(sources:
|
|
11
|
+
protected _search(sources: ArcGISGeocoder[], searchText: string, options: SearchOptions): AsyncIterable<Feature>;
|
|
11
12
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{SCORE_FIELD as e,SCORE_FIELD_ORIGINAL as t}from"../../data/Feature.js";import{isArcGISGeocoder as r}from"../geocoding/utilities.js";import{GeocoderSearchProvider as s}from"./GeocoderSearchProvider.js";const a=.001;export class ArcGISGeocoderSearchProvider extends s{isSupported(e){return r(e)}async*_search(r,s,i){const
|
|
1
|
+
import{SCORE_FIELD as e,SCORE_FIELD_ORIGINAL as t}from"../../data/Feature.js";import{isArcGISGeocoder as r}from"../geocoding/utilities.js";import{GeocoderSearchProvider as s}from"./GeocoderSearchProvider.js";const a=.001;export class ArcGISGeocoderSearchProvider extends s{isSupported(e){return r(e)}async*_search(r,s,i){const o=r[0],{cancelToken:c,currentScale:n,initialSearchArea:u,outSpatialReference:l,maxResults:d}=i??{},f={cancelToken:c,searchPoint:n?u?.extent?.center:void 0,searchArea:n?void 0:u,outFields:o.featureSettings.outFields,outSpatialReference:l,maxResults:d};if(!s)return;const p=s.replace(/^"*|"*$/g,"");let S=0,b=a;for await(const r of o.geocode(p,f)){if(r.attributes.get("Match_addr")===p)r.attributes.set(e,100),r.attributes.set(t,100);else{let s=r.attributes.get(e);s=s>99?99:s,r.attributes.set(e,s),r.attributes.set(t,s),s===S?(r.attributes.set(e,S-b),r.attributes.set(t,S-b),b+=a):(S=s,b=a)}yield r}}}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Feature } from "../../data/Feature.js";
|
|
2
2
|
import type { FeatureSource } from "../../data/FeatureSource.js";
|
|
3
|
+
import type { Geocoder } from "../../tasks/geocoding/Geocoder.js";
|
|
3
4
|
import type { CountResult } from "../CountResult.js";
|
|
4
5
|
import type { SearchOptions } from "./SearchOptions.js";
|
|
5
6
|
import { SearchProviderBase } from "./SearchProviderBase.js";
|
|
@@ -15,13 +16,13 @@ export declare class GeocoderSearchProvider extends SearchProviderBase {
|
|
|
15
16
|
/**
|
|
16
17
|
* @inheritDoc
|
|
17
18
|
*/
|
|
18
|
-
protected _search(sources:
|
|
19
|
+
protected _search(sources: Geocoder[], searchText: string, options: SearchOptions): AsyncIterable<Feature>;
|
|
19
20
|
/**
|
|
20
21
|
* @inheritDoc
|
|
21
22
|
*/
|
|
22
|
-
protected _count(sources:
|
|
23
|
+
protected _count(sources: Geocoder[], searchText: string, options: SearchOptions): Promise<CountResult[]>;
|
|
23
24
|
/**
|
|
24
25
|
* @inheritDoc
|
|
25
26
|
*/
|
|
26
|
-
protected _suggest(sources:
|
|
27
|
+
protected _suggest(sources: Geocoder[], searchText: string, options: SearchOptions): Promise<SearchSuggestion[]>;
|
|
27
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isGeocoder as e}from"../../ItemType.js";import{SCORE_FIELD as t,SCORE_FIELD_ORIGINAL as a}from"../../data/Feature.js";import{SearchProviderBase as r}from"./SearchProviderBase.js";const c=.001;export class GeocoderSearchProvider extends r{isSupported(t){return e(t)}async*_search(e,r,s){const
|
|
1
|
+
import{isGeocoder as e}from"../../ItemType.js";import{SCORE_FIELD as t,SCORE_FIELD_ORIGINAL as a}from"../../data/Feature.js";import{SearchProviderBase as r}from"./SearchProviderBase.js";const c=.001;export class GeocoderSearchProvider extends r{isSupported(t){return e(t)}async*_search(e,r,s){const n=e[0],{cancelToken:o,currentScale:i,initialSearchArea:u,outSpatialReference:l,maxResults:d}=s??{},S={cancelToken:o,searchPoint:i?u?.extent?.center:void 0,searchArea:i?void 0:u,outFields:n.featureSettings.outFields,outSpatialReference:l,maxResults:d};if(!r)return;let m=0,f=c;for await(const e of n.geocode(r,S)){const r=e.attributes.get(t);r===m?(e.attributes.set(t,m-f),e.attributes.set(a,m-f),f+=c):(m=r,f=c),yield e}}async _count(e,t,a){const r=e[0],{cancelToken:c,currentScale:s,initialSearchArea:n,maxResults:o}=a??{},i={cancelToken:c,searchPoint:s?n?.extent?.center:void 0,searchArea:s?void 0:n,maxResults:o};return t?[await r.count(t,i)]:[]}async _suggest(e,t,a){const r=e[0],{cancelToken:s,currentScale:n,initialSearchArea:o,outSpatialReference:i,maxSuggestions:u}=a??{},l={cancelToken:s,searchPoint:n?o?.extent?.center:void 0,searchArea:n?void 0:o,outFields:["*"],outSpatialReference:i,maxResults:u},d=await r.suggest(t,l);let S=100;return d.map((e=>(S-=c,{featureSource:r,suggestion:e,score:S})))}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{InvalidOperationError as r}from"../../InvalidOperationError.js";import{checkArg as s}from"../../utilities/checkArg.js";import*as i from"../../utilities/promise.js";import{SearchOptions as e}from"./SearchOptions.js";export class SearchProviderBase{search(e,t,o){s("source",e).isNotMissing();const a=Array.isArray(e)?e:[e];if(!a.every((r=>this.isSupported(r))))throw new r("Unsupported feature source.");const n=this;return async function*(){t&&(await i.parallelEach(a,(r=>r.initialize())),yield*n._search(a,t,o))}()}async suggest(i,t,o){s("source",i).isNotMissing();const a=Array.isArray(i)?i:[i];if(!a.every((r=>this.isSupported(r))))throw new r("Unsupported feature source.");return t?this._suggest(a,t,{...e.DEFAULTS,...o}):[]}async count(e,t,o){s("source",e).isNotMissing();const a=Array.isArray(e)?e:[e];if(!a.every((r=>this.isSupported(r))))throw new r("Unsupported feature source.");
|
|
1
|
+
import{InvalidOperationError as r}from"../../InvalidOperationError.js";import{checkArg as s}from"../../utilities/checkArg.js";import*as i from"../../utilities/promise.js";import{SearchOptions as e}from"./SearchOptions.js";export class SearchProviderBase{search(e,t,o){s("source",e).isNotMissing();const a=Array.isArray(e)?e:[e];if(!a.every((r=>this.isSupported(r))))throw new r("Unsupported feature source.");const n=this;return async function*(){t&&(await i.parallelEach(a,(r=>r.initialize())),yield*n._search(a,t,{...o}))}()}async suggest(i,t,o){s("source",i).isNotMissing();const a=Array.isArray(i)?i:[i];if(!a.every((r=>this.isSupported(r))))throw new r("Unsupported feature source.");return t?this._suggest(a,t,{...e.DEFAULTS,...o}):[]}async count(e,t,o){s("source",e).isNotMissing();const a=Array.isArray(e)?e:[e];if(!a.every((r=>this.isSupported(r))))throw new r("Unsupported feature source.");return t?(await i.parallelEach(a,(r=>r.initialize())),this._count(a,t,{...o})):[]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import i from"@arcgis/core/geometry/Point";import*as r from"@arcgis/core/geometry/operators/distanceOperator";import{isLayerExtension as a,isMapExtension as o,isSublayerExtension as s}from"../../ItemType.js";import{SCORE_FIELD as n,SCORE_FIELD_ORIGINAL as c}from"../../data/Feature.js";import{MapExtension as l}from"../../mapping/MapExtension.js";import{cancelify as u}from"../../support/Cancellable.js";import{InitializableBase as p}from"../../support/InitializableBase.js";import{serializable as f}from"../../support/Serializable.js";import{isCancellation as m}from"../../support/utilities.js";import{groupBy as d}from"../../utilities/array.js";import{AsyncQueue as h}from"../../utilities/asyncIterable.js";import{checkArg as y}from"../../utilities/checkArg.js";import{isMap as w}from"../../utilities/mapping.js";import{parallelEach as g}from"../../utilities/promise.js";import{SearchError as S}from"./SearchError.js";import{SearchOptions as x}from"./SearchOptions.js";import{SubtypeSublayerQuerySearchProvider as v}from"./SubtypeSublayerQuerySearchProvider.js";let j=class extends p{providers=new t;isSupported(e){return!!this.providers.find((t=>t.isSupported(e)))}search(e,a,s){y("sources",e).isNotMissing();const n={...x.DEFAULTS,...s},{outSpatialReference:c,onSourceComplete:u}=n;let p,f=[];t.isCollection(e)?f=e.toArray():o(e)?p=e:w(e)?p=new l({map:e}):f=[...e];let v=0;const j=new h,z=[],A=(e,t)=>{if(!t||0===e.length)return;v++;const o=new Map;for(const t of e)o.set(t,{source:t,count:0,time:-1});(async()=>{const l=await async function(e){if(!e.near||!e.initialSearchArea?.extent?.spatialReference.equals(e.near.spatialReference))return;const{extent:t}=e.initialSearchArea,{spatialReference:a}=t,[o,s,n,c]=[r.execute(new i({x:t.xmin,y:t.ymin,spatialReference:a}),e.near,void 0),r.execute(new i({x:t.xmin,y:t.ymax,spatialReference:a}),e.near,void 0),r.execute(new i({x:t.xmax,y:t.ymin,spatialReference:a}),e.near,void 0),r.execute(new i({x:t.xmax,y:t.ymax,spatialReference:a}),e.near,void 0)];return Math.max(o,s,n,c)}(n),p=[];try{if(j.isDone)return;const i=Date.now();await g(e,(e=>e.initialize()));for await(const r of t.search(e,a,s)){const e=o.get(r.source);if(e&&(e.count++,e.time<0&&(e.time=Date.now()-i)),j.isDone)return;c&&(r.schema.spatialReference=c),await b(r,l,s);let t=!1;p.push(r.attributes.on("change",(async()=>{t||(t=!0,await b(r,l,s),t=!1)}))),j.add(r)}for(const t of e){const e=o.get(t);e&&e.time<0&&(e.time=Date.now()-i)}}catch(t){for(const i of e){o.get(i).failureReason=t}if(m(t))return void j.reject(t);t instanceof S?z.push(t):z.push([e,t])}finally{p.forEach((e=>e.remove()));for(const t of e){const e=o.get(t);u?.(e)}}0==--v&&(z.length?j.reject(new S(z)):j.done())})()};return(async()=>{try{p&&(await p.initialize(),f=p.getAllFeatureSources(isSearchable))}catch(e){j.reject(new Error("Map failed to initialize.",{cause:e}))}await this.initialize(),d(f,(e=>this.providers.find((t=>t.isSupported(e))))).forEach(A),0===v&&j.done()})(),j}count(e,i,r){y("sources",e).isNotMissing();const a={...r,returnGeometry:!1};let s,n=[];t.isCollection(e)?n=e.toArray():o(e)?s=e:w(e)?s=new l({map:e}):n=[...e];let c=0;const u=new h,p=new Map,f=(e,t)=>{t&&(c++,(async()=>{if(!u.isDone){try{if(await g(e,(e=>e.initialize())),u.isDone)return;u.addMany(await t.count(e,i,a))}catch(t){if(m(t))return void u.reject(t);p.set(e,t)}0==--c&&(p.size?u.reject(new S(p)):u.done())}})())};return(async()=>{try{s&&(await s.initialize(),n=s.getAllFeatureSources(isSearchable))}catch(e){u.reject(new Error("Map failed to initialize.",{cause:e}))}await this.initialize(),d(n,(e=>this.providers.find((t=>t.isSupported(e))))).forEach(f),0===c&&u.done()})(),u}async suggest(e,t,i){y("sources",e).isNotMissing();const r={...x.DEFAULTS,...i};return u(this._suggest(e,t,r),r.cancelToken)}async _onInitialize(){await super._onInitialize();const{QuerySearchProvider:e,ArcGISGeocoderSearchProvider:t,GeocoderSearchProvider:i}=await import("./defaultProviders.js"),r=new e;await r.queryService.initialize(),this.providers.add(new v(r)),this.providers.add(r),this.providers.add(new t),this.providers.add(new i)}async _suggest(e,i,r){let a,s=[];t.isCollection(e)?s=e.toArray():o(e)?a=e:w(e)?a=new l({map:e}):s=[...e];const n=[];if(a)try{await a.initialize(),s=a.getAllFeatureSources(isSearchable)}catch(e){throw new Error("Map failed to initialize.",{cause:e})}await this.initialize();const c=d(s,(e=>this.providers.find((t=>t.isSupported(e)))));return await g(c.entries(),(async([e,t])=>{if(e)try{const a=await e.suggest(t,i,r);for(const e of a)if(e.feature)n.push(e);else{const t=n.findIndex((t=>t.suggestion===e.suggestion));t>=0?e.score>n[t].score&&(n[t]=e):n.push(e)}}catch(e){throw m(e)?e:new S([[t,e]])}})),n.sort(((e,t)=>t.score-e.score)).slice(0,r
|
|
1
|
+
import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import i from"@arcgis/core/geometry/Point";import*as r from"@arcgis/core/geometry/operators/distanceOperator";import{isLayerExtension as a,isMapExtension as o,isSublayerExtension as s}from"../../ItemType.js";import{SCORE_FIELD as n,SCORE_FIELD_ORIGINAL as c}from"../../data/Feature.js";import{MapExtension as l}from"../../mapping/MapExtension.js";import{cancelify as u}from"../../support/Cancellable.js";import{InitializableBase as p}from"../../support/InitializableBase.js";import{serializable as f}from"../../support/Serializable.js";import{isCancellation as m}from"../../support/utilities.js";import{groupBy as d}from"../../utilities/array.js";import{AsyncQueue as h}from"../../utilities/asyncIterable.js";import{checkArg as y}from"../../utilities/checkArg.js";import{isMap as w}from"../../utilities/mapping.js";import{parallelEach as g}from"../../utilities/promise.js";import{SearchError as S}from"./SearchError.js";import{SearchOptions as x}from"./SearchOptions.js";import{SubtypeSublayerQuerySearchProvider as v}from"./SubtypeSublayerQuerySearchProvider.js";let j=class extends p{providers=new t;isSupported(e){return!!this.providers.find((t=>t.isSupported(e)))}search(e,a,s){y("sources",e).isNotMissing();const n={...x.DEFAULTS,...s},{outSpatialReference:c,onSourceComplete:u}=n;let p,f=[];t.isCollection(e)?f=e.toArray():o(e)?p=e:w(e)?p=new l({map:e}):f=[...e];let v=0;const j=new h,z=[],A=(e,t)=>{if(!t||0===e.length)return;v++;const o=new Map;for(const t of e)o.set(t,{source:t,count:0,time:-1});(async()=>{const l=await async function(e){if(!e.near||!e.initialSearchArea?.extent?.spatialReference.equals(e.near.spatialReference))return;const{extent:t}=e.initialSearchArea,{spatialReference:a}=t,[o,s,n,c]=[r.execute(new i({x:t.xmin,y:t.ymin,spatialReference:a}),e.near,void 0),r.execute(new i({x:t.xmin,y:t.ymax,spatialReference:a}),e.near,void 0),r.execute(new i({x:t.xmax,y:t.ymin,spatialReference:a}),e.near,void 0),r.execute(new i({x:t.xmax,y:t.ymax,spatialReference:a}),e.near,void 0)];return Math.max(o,s,n,c)}(n),p=[];try{if(j.isDone)return;const i=Date.now();await g(e,(e=>e.initialize()));for await(const r of t.search(e,a,s)){const e=o.get(r.source);if(e&&(e.count++,e.time<0&&(e.time=Date.now()-i)),j.isDone)return;c&&(r.schema.spatialReference=c),await b(r,l,{...s});let t=!1;p.push(r.attributes.on("change",(async()=>{t||(t=!0,await b(r,l,{...s}),t=!1)}))),j.add(r)}for(const t of e){const e=o.get(t);e&&e.time<0&&(e.time=Date.now()-i)}}catch(t){for(const i of e){o.get(i).failureReason=t}if(m(t))return void j.reject(t);t instanceof S?z.push(t):z.push([e,t])}finally{p.forEach((e=>e.remove()));for(const t of e){const e=o.get(t);u?.(e)}}0==--v&&(z.length?j.reject(new S(z)):j.done())})()};return(async()=>{try{p&&(await p.initialize(),f=p.getAllFeatureSources(isSearchable))}catch(e){j.reject(new Error("Map failed to initialize.",{cause:e}))}await this.initialize(),d(f,(e=>this.providers.find((t=>t.isSupported(e))))).forEach(A),0===v&&j.done()})(),j}count(e,i,r){y("sources",e).isNotMissing();const a={...r,returnGeometry:!1};let s,n=[];t.isCollection(e)?n=e.toArray():o(e)?s=e:w(e)?s=new l({map:e}):n=[...e];let c=0;const u=new h,p=new Map,f=(e,t)=>{t&&(c++,(async()=>{if(!u.isDone){try{if(await g(e,(e=>e.initialize())),u.isDone)return;u.addMany(await t.count(e,i,a))}catch(t){if(m(t))return void u.reject(t);p.set(e,t)}0==--c&&(p.size?u.reject(new S(p)):u.done())}})())};return(async()=>{try{s&&(await s.initialize(),n=s.getAllFeatureSources(isSearchable))}catch(e){u.reject(new Error("Map failed to initialize.",{cause:e}))}await this.initialize(),d(n,(e=>this.providers.find((t=>t.isSupported(e))))).forEach(f),0===c&&u.done()})(),u}async suggest(e,t,i){y("sources",e).isNotMissing();const r={...x.DEFAULTS,...i};return u(this._suggest(e,t,r),r.cancelToken)}async _onInitialize(){await super._onInitialize();const{QuerySearchProvider:e,ArcGISGeocoderSearchProvider:t,GeocoderSearchProvider:i}=await import("./defaultProviders.js"),r=new e;await r.queryService.initialize(),this.providers.add(new v(r)),this.providers.add(r),this.providers.add(new t),this.providers.add(new i)}async _suggest(e,i,r){let a,s=[];t.isCollection(e)?s=e.toArray():o(e)?a=e:w(e)?a=new l({map:e}):s=[...e];const n=[];if(a)try{await a.initialize(),s=a.getAllFeatureSources(isSearchable)}catch(e){throw new Error("Map failed to initialize.",{cause:e})}await this.initialize();const c=d(s,(e=>this.providers.find((t=>t.isSupported(e)))));return await g(c.entries(),(async([e,t])=>{if(e)try{const a=await e.suggest(t,i,r);for(const e of a)if(e.feature)n.push(e);else{const t=n.findIndex((t=>t.suggestion===e.suggestion));t>=0?e.score>n[t].score&&(n[t]=e):n.push(e)}}catch(e){throw m(e)?e:new S([[t,e]])}})),n.sort(((e,t)=>t.score-e.score)).slice(0,r?.maxSuggestions)}};j=e([f],j);export{j as SearchService};export function isSearchable(e){return!!e.taskSettings.enableSearch&&(a(e)?e.layer?.visible:!s(e)||(e.sublayer?.visible??!1))}async function b(e,t,i){if(!(t&&i.near&&i.initialSearchArea&&e.geometry&&i.near.spatialReference.equals(e.geometry.spatialReference)&&e.attributes.has(n)))return;const a=(t-r.execute(e.geometry,i.near,void 0))/t,o=(2*e.attributes.get(c)+a)/3;e.attributes.set(n,o)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isCodedValueDomain as t}from"../../utilities/esri.js";import{NumberFormat as e,DateFormat as r,TimeFormat as s}from"../../utilities/format/formats.js";import{format as i}from"../../utilities/format/number.js";import{caseInsensitiveEquals as a}from"../../utilities/string.js";const n="\t";export function getSearchableValue(o,
|
|
1
|
+
import{isCodedValueDomain as t}from"../../utilities/esri.js";import{NumberFormat as e,DateFormat as r,TimeFormat as s}from"../../utilities/format/formats.js";import{format as i}from"../../utilities/format/number.js";import{caseInsensitiveEquals as a}from"../../utilities/string.js";const n="\t";export function getSearchableValue(o,u){const m=Array.from(o.attributes.keys()).find((t=>a(t,u.name)));if(null==m)return"";const f=o.attributes.get(m);if(null==f)return"";if(o.schema.subtypeField){if(t(o.subtype?.domains?.[m])||t(u.domain))return o.presentableAttributes.get(m)??""}else if(t(o.type?.domains?.[m]))return o.presentableAttributes.get(m)??"";switch(u.type){case"integer":case"small-integer":case"big-integer":case"double":case"single":case"oid":return[o.presentableAttributes.get(m),o.format(`{${m}:#.####################}`),o.format(`{${m}:#,#.####################}`),i(e.ROUND_TRIP,f)].join(n);case"date":case"timestamp-offset":return[o.presentableAttributes.get(m),o.format(`{${m}:${r.FULL}}`),o.format(`{${m}:${r.DATE_SHORT}}`)].join(n);case"date-only":return[o.presentableAttributes.get(m),o.format(`{${m}:${r.DATE_LONG}}`),o.format(`{${m}:${r.DATE_SHORT}}`)].join(n);case"time-only":return[o.presentableAttributes.get(m),o.format(`${m}:${s.TIME_SHORT}`),o.format(`${m}:${s.TIME_LONG}`)].join(n);default:return o.presentableAttributes.get(m)??""}}
|
|
@@ -5,8 +5,8 @@ import { ObservableMap } from "./ObservableMap.js";
|
|
|
5
5
|
export declare class CaseInsensitiveObservableMap<V> extends ObservableMap<string, V> {
|
|
6
6
|
private readonly _originalKeys;
|
|
7
7
|
delete(key: string): boolean;
|
|
8
|
-
get(key: string): V;
|
|
9
|
-
set(key: string, value
|
|
8
|
+
get(key: string): V | undefined;
|
|
9
|
+
set(key: string, value: V): this;
|
|
10
10
|
has(key: string): boolean;
|
|
11
11
|
keys(): MapIterator<string>;
|
|
12
12
|
entries(): MapIterator<[string, V]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ObservableMap as e}from"./ObservableMap.js";import{map as r}from"./iterable.js";export class CaseInsensitiveObservableMap extends e{_originalKeys=new Map;delete(e){return this._originalKeys.delete(e),super.delete(e
|
|
1
|
+
import{ObservableMap as e}from"./ObservableMap.js";import{map as r}from"./iterable.js";import{getLogger as t}from"./log.js";const n=t("CaseInsensitiveObservableMap");export class CaseInsensitiveObservableMap extends e{_originalKeys=new Map;delete(e){return null==e?(n.warn("Deprecated: Attempted to delete a value with a null or undefined key. Operation ignored. This may throw an error in future versions."),!1):(this._originalKeys.delete(e),super.delete(e.toLocaleLowerCase()))}get(e){if(null!=e)return super.get(e.toLocaleLowerCase());n.warn("Deprecated: Attempted to get a value with a null or undefined key. Operation ignored. This may throw an error in future versions.")}set(e,r){return null==e?(n.warn("Deprecated: Attempted to set a value with a null or undefined key. Operation ignored. This may throw an error in future versions."),this):(this._originalKeys.set(e.toLocaleLowerCase(),e),super.set(e.toLocaleLowerCase(),r))}has(e){return null==e?(n.warn("Deprecated: Attempted to check existence of a value with a null or undefined key. Operation ignored. This may throw an error in future versions."),!1):super.has(e.toLocaleLowerCase())}*keys(){for(const e of super.keys())yield this._originalKeys.get(e)}entries(){return r(super.entries(),(([e,r])=>[this._originalKeys.get(e),r]))}[Symbol.iterator](){return this.entries()}}
|
package/utilities/arcade.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as e from"@arcgis/core/arcade/arcade";import*as r from"@arcgis/core/support/arcadeUtils";import{checkArg as a}from"./checkArg.js";const t=new Map;export function isArcadeScriptAsync(a,t){const s=i(a,t);return["$datastore","$map","$layer"].some((e=>r.hasVariable(s,e)))||e.scriptIsAsync({...s,isAsync:void 0,usesFeatureSet:void 0,usesGeometry:void 0},void 0)}export function arcadeScriptUsesGeometry(e,r){return!!i(e,r).usesGeometry}export async function enableGeometrySupportIfNeeded(r){const{spatialReference:a}=r.geometry,t=r.source?.layer?.elevationInfo?.featureExpressionInfo?.expression;t&&arcadeScriptUsesGeometry(t,a)&&await e.enableGeometrySupport()}export function runArcadeExpression(t,s){const{map:o,layer:n,vars:c,feature:p,spatialReference:
|
|
1
|
+
import*as e from"@arcgis/core/arcade/arcade";import*as r from"@arcgis/core/support/arcadeUtils";import{checkArg as a}from"./checkArg.js";const t=new Map;export function isArcadeScriptAsync(a,t){const s=i(a,t);return["$datastore","$map","$layer"].some((e=>r.hasVariable(s,e)))||e.scriptIsAsync({...s,isAsync:void 0,usesFeatureSet:void 0,usesGeometry:void 0},void 0)}export function arcadeScriptUsesGeometry(e,r){return!!i(e,r).usesGeometry}export async function enableGeometrySupportIfNeeded(r){const{spatialReference:a}=r.geometry??{},t=r.source?.layer?.elevationInfo?.featureExpressionInfo?.expression;t&&arcadeScriptUsesGeometry(t,a)&&await e.enableGeometrySupport()}export function runArcadeExpression(t,s){const{map:o,layer:n,vars:c,feature:p,spatialReference:u,emitErrorOnMissingVariables:f=!0}=s;a("$map and $layer parameters are not supported in synchronous arcade",s).satisfies((()=>!o&&!n));const l=r.getViewInfo({spatialReference:u}),m=r.createExecContext(p?.toGraphic(),l);if(c)for(const e of Object.keys(c))m.vars[e]=c[e];const y=i(t,u);if(r.hasVariable(y,"$feature"))if(f)a("params.feature",p).isNotMissing();else if(!p)return;return e.executeScript(y,m)}export async function runAsyncArcadeExpression(t,s){const{map:o,layer:n,vars:c,feature:p,spatialReference:u,emitErrorOnMissingVariables:f=!0}=s,l={...i(t,u)},m=["$datastore","$map","$layer"].filter((e=>r.hasVariable(l,e)));await r.loadScriptDependencies(l,!0,m);const y=r.getViewInfo({spatialReference:u}),d=r.createExecContext(p?.toGraphic(),y);if(l.isAsync=!0,l.usesFeatureSet=!0,await Promise.all([e.enableAsyncSupport(),(async()=>{await import("@arcgis/core/arcade/functions/featuresetbase.js"),await e.enableFeatureSetSupport()})(),l.usesGeometry&&e.enableGeometrySupport()]),!r.hasVariable(l,"$feature")||(f&&a("params.feature",p).isNotMissing(),p)){if(m.includes("$map")){if(f&&a("params.map",o).isNotMissing(),!o)return;d.vars.$map=r.convertMapToFeatureSetCollection({map:o,spatialReference:u})}if(m.includes("$layer")){if(f&&a("params.layer",n).isNotMissing(),!n)return;d.vars.$layer=r.convertFeatureLayerToFeatureSet({layer:n,spatialReference:u})}if(m.includes("$datastore")){f&&a("params.layer",n).isNotMissing();const e=n?.url;if(!e)return;d.vars.$datastore=r.convertServiceUrlToWorkspace({url:e,spatialReference:u})}if(c)for(const e of Object.keys(c))d.vars[e]=c[e];return r.createFunction(l,d)(d)}}const s=["__proto__"];function i(r,a){const i=`${r}-${a?.wkid}`;if(t.has(i))return t.get(i);const o=s.filter((e=>r.includes(e)));if(0!==o.length)throw new Error(`Invalid Arcade expression tokens: ${o.join()}`);const n=e.parseScript(r,a);return t.set(i,n),n}
|
package/utilities/uri.d.ts
CHANGED
|
@@ -80,7 +80,7 @@ export declare class Uri {
|
|
|
80
80
|
* outlined in RFC-3986 section 5.2.2. Note that the result might not
|
|
81
81
|
* actually be an absolute URI if baseUri is not itself absolute.
|
|
82
82
|
*/
|
|
83
|
-
toAbsoluteUri(baseUri: Uri | string): Uri;
|
|
83
|
+
toAbsoluteUri(baseUri: Uri | string | undefined): Uri;
|
|
84
84
|
private _parseUri;
|
|
85
85
|
}
|
|
86
86
|
/**
|
package/utilities/uri.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export class Uri{static _keys=["scheme","user","password","host","port","path","query","fragment"];static _queryRegex=/(?:^|&)(?:([^&=]*)=)?([^&]*)/g;static _uriRegex=/^(?:([^:/?#]+):)?(?:\/\/(?:([^:@]*)(?::([^:@]*))?@)?([^:/?#]*)(?::(\d*))?)?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/;scheme;get authority(){const t=this.password?`:${encodeURIComponent(this.password)}`:"";return`${this.user?`${encodeURIComponent(this.user)}${t}@`:""}${encodeURIComponent(this.host)||""}${this.port?`:${this.port}`:""}`}user;password;host;port;path;get query(){
|
|
1
|
+
export class Uri{static _keys=["scheme","user","password","host","port","path","query","fragment"];static _queryRegex=/(?:^|&)(?:([^&=]*)=)?([^&]*)/g;static _uriRegex=/^(?:([^:/?#]+):)?(?:\/\/(?:([^:@]*)(?::([^:@]*))?@)?([^:/?#]*)(?::(\d*))?)?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/;scheme;get authority(){const t=this.password?`:${encodeURIComponent(this.password)}`:"";return`${this.user?`${encodeURIComponent(this.user)}${t}@`:""}${encodeURIComponent(this.host)||""}${this.port?`:${this.port}`:""}`}user;password;host;port;path;get query(){return[...Array.from(this.queryValues).filter((([t])=>"string"==typeof t)).map((([t,e])=>`${encodeURIComponent(`${t}`)}=${encodeURIComponent(e)}`)),...Array.from(this.queryValues).filter((([t])=>"number"==typeof t)).sort((([t],[e])=>t-e)).map((([t,e])=>`${encodeURIComponent(e)}`))].join("&")}set query(t){if(this.queryValues.clear(),!t)return;let e=0;t.replace(Uri._queryRegex,((t,...r)=>(r[0]?this.queryValues.set(decodeURIComponent(r[0]),decodeURIComponent(r[1]??"")):r[1]&&this.queryValues.set(e++,decodeURIComponent(r[1])),t)))}queryValues=new Map;fragment;get isRelative(){return!this.scheme}get isAbsolute(){return!this.isRelative}constructor(t){t&&this._parseUri(t)}clone(){return new Uri(this.toString())}toString(){const t=this.scheme?`${encodeURIComponent(this.scheme)}:`:"",e=this.authority?`//${this.authority}`:"";return`${t}${e}${e&&this.path&&!this.path.startsWith("/")?`/${this.path}`:this.path}${this.queryValues.size?`?${this.query}`:""}${this.fragment?`#${encodeURIComponent(this.fragment)}`:""}`}toAbsoluteUri(t){if(!t||this.isAbsolute)return this.clone();const e="string"==typeof t?new Uri(t):t,r=new Uri;if(this.authority)r.host=this.host,r.port=this.port,r.user=this.user,r.password=this.password,r.path=this.path,r.query=this.query;else{if(this.path){if(this.path.startsWith("/"))r.path=this.path;else{const t=e.path.split("/");t.pop();const s=this.path.split("/");for(const e of s)"."!==e&&(".."===e?t.pop():t.push(e));r.path=t.join("/")}r.query=this.query}else r.path=e.path,r.query=this.query?this.query:e.query;r.host=e.host,r.port=e.port,r.user=e.user,r.password=e.password}return r.scheme=e.scheme,r.fragment=this.fragment,r}_parseUri(t){const e=Uri._uriRegex.exec(t);if(null==e)throw new Error(`Invalid URI: ${t}`);for(let t=0;t<Uri._keys.length;t++)this[Uri._keys[t]]=decodeURIComponent(e[t+1]||"")}}export function isRelativeUri(t){return!t?.match(/^\w+:\/\//)}export function isAbsoluteUri(t){return!isRelativeUri(t)}export function isPackageUri(t){return!(!t||"string"!=typeof t)&&t.startsWith("@")}export function toAbsoluteUri(t,e){return t?new Uri(t).toAbsoluteUri(e).toString():t}export function addQueryParameter(t,e,r){const s="string"==typeof t?new Uri(t):t.clone();return s.queryValues.set(e,r),s.toString()}export function removeQueryParameter(t,e){const r="string"==typeof t?new Uri(t):t.clone();return r.queryValues.delete(e),r.toString()}
|
package/version.d.ts
CHANGED
package/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version="54.3.
|
|
1
|
+
export const version="54.3.2";
|