@vertigis/arcgis-extensions 41.1.0 → 41.2.0

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.
@@ -35,6 +35,7 @@
35
35
  <a href="tasks_identify_IdentifyOptions.IdentifyOptions-1.html#maxAllowableOffset" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>max<wbr/>Allowable<wbr/>Offset?</span></a>
36
36
  <a href="tasks_identify_IdentifyOptions.IdentifyOptions-1.html#maxResults" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>max<wbr/>Results?</span></a>
37
37
  <a href="tasks_identify_IdentifyOptions.IdentifyOptions-1.html#onSourceComplete" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>on<wbr/>Source<wbr/>Complete?</span></a>
38
+ <a href="tasks_identify_IdentifyOptions.IdentifyOptions-1.html#outFields" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>out<wbr/>Fields?</span></a>
38
39
  <a href="tasks_identify_IdentifyOptions.IdentifyOptions-1.html#outSpatialReference" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>out<wbr/>Spatial<wbr/>Reference?</span></a>
39
40
  <a href="tasks_identify_IdentifyOptions.IdentifyOptions-1.html#returnGeometry" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>return<wbr/>Geometry?</span></a>
40
41
  <a href="tasks_identify_IdentifyOptions.IdentifyOptions-1.html#tolerance" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>tolerance?</span></a>
@@ -77,6 +78,12 @@ about the tasks&#39;s result for each source.</p>
77
78
  <li>
78
79
  <h5><span class="tsd-kind-parameter">result</span>: <a href="tasks_TaskResult.TaskResult.html" class="tsd-signature-type tsd-kind-interface">TaskResult</a></h5></li></ul></div>
79
80
  <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></li></ul></div></section>
81
+ <section class="tsd-panel tsd-member"><a id="outFields" class="tsd-anchor"></a>
82
+ <h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>out<wbr/>Fields</span><a href="#outFields" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
83
+ <div class="tsd-signature"><span class="tsd-kind-property">out<wbr/>Fields</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div>
84
+ <div class="tsd-comment tsd-typography"><p>List of fields that should be returned that overrides the default out
85
+ fields.</p>
86
+ </div></section>
80
87
  <section class="tsd-panel tsd-member"><a id="outSpatialReference" class="tsd-anchor"></a>
81
88
  <h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>out<wbr/>Spatial<wbr/>Reference</span><a href="#outSpatialReference" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
82
89
  <div class="tsd-signature"><span class="tsd-kind-property">out<wbr/>Spatial<wbr/>Reference</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type ">SpatialReference</span></div>
@@ -114,6 +121,7 @@ operations.</p>
114
121
  <li><a href="#maxAllowableOffset" class=""><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>max<wbr/>Allowable<wbr/>Offset</span></a></li>
115
122
  <li><a href="#maxResults" class=""><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>max<wbr/>Results</span></a></li>
116
123
  <li><a href="#onSourceComplete" class=""><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>on<wbr/>Source<wbr/>Complete</span></a></li>
124
+ <li><a href="#outFields" class=""><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>out<wbr/>Fields</span></a></li>
117
125
  <li><a href="#outSpatialReference" class=""><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>out<wbr/>Spatial<wbr/>Reference</span></a></li>
118
126
  <li><a href="#returnGeometry" class=""><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>return<wbr/>Geometry</span></a></li>
119
127
  <li><a href="#tolerance" class=""><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-1024-path"></use><use href="#icon-1024-text"></use></svg><span>tolerance</span></a></li></ul></div></details></div>
@@ -16,7 +16,7 @@
16
16
  <li><a href="../modules/version.html">version</a></li>
17
17
  <li><a href="version.version.html">version</a></li></ul>
18
18
  <h1>Variable version<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
19
- <div class="tsd-signature"><span class="tsd-kind-variable">version</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;41.1.0&quot;</span><span class="tsd-signature-symbol"> = &quot;41.1.0&quot;</span></div>
19
+ <div class="tsd-signature"><span class="tsd-kind-variable">version</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;41.2.0&quot;</span><span class="tsd-signature-symbol"> = &quot;41.2.0&quot;</span></div>
20
20
  <div class="tsd-comment tsd-typography"><p>The current version of the Geocortex ArcGIS Extensions API.</p>
21
21
  </div></div>
22
22
  <div class="col-sidebar">
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vertigis/arcgis-extensions",
3
3
  "license": "SEE LICENSE IN LICENSE",
4
- "version": "41.1.0",
4
+ "version": "41.2.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://dev.azure.com/vertigis/Studio/_git/arcgis-extensions-ts"
@@ -1 +1 @@
1
- import{executeQuery as e,executeCountByQuery as r}from"../../support/_query.js";import{empty as t}from"../../utilities/asyncIterable.js";import{isMapImageSublayer as s}from"../../utilities/layers.js";import{IdentifyProviderBase as u}from"./IdentifyProviderBase.js";export class ArcGISSublayerQueryIdentifyProvider extends u{isSupported(e,r,t){return s(e.sublayer)&&e.capabilities.supportsQuery}_identify(r,s,u){const o=r,i=o.sublayer.createQuery();return o.capabilities.supportsQuery?(i.geometry=s,i.outFields=r.featureSettings.outFields,i.returnGeometry=u.returnGeometry,i.outSpatialReference=u.outSpatialReference,i.maxAllowableOffset=u.maxAllowableOffset,r.supportsPagination&&(i.num=u.maxResults),e(i,o,o.sublayer,u.cancelToken)):t()}async _count(e,t,s){const u=e;if(!u.capabilities.supportsQuery)return{source:e,count:0};const o=u.sublayer.createQuery();return o.geometry=t,o.num=s.maxResults,o.returnGeometry=s.returnGeometry,o.outFields=e.featureSettings.outFields,r(o,u,u.sublayer,s.cancelToken)}}
1
+ import{executeQuery as e,executeCountByQuery as t}from"../../support/_query.js";import{empty as r}from"../../utilities/asyncIterable.js";import{isMapImageSublayer as s}from"../../utilities/layers.js";import{IdentifyProviderBase as u}from"./IdentifyProviderBase.js";export class ArcGISSublayerQueryIdentifyProvider extends u{isSupported(e,t,r){return s(e.sublayer)&&e.capabilities.supportsQuery}_identify(t,s,u){const o=t,i=o.sublayer.createQuery();return o.capabilities.supportsQuery?(i.geometry=s,i.outFields=u.outFields??t.featureSettings.outFields,i.returnGeometry=u.returnGeometry,i.outSpatialReference=u.outSpatialReference,i.maxAllowableOffset=u.maxAllowableOffset,t.supportsPagination&&(i.num=u.maxResults),e(i,o,o.sublayer,u.cancelToken)):r()}async _count(e,r,s){const u=e;if(!u.capabilities.supportsQuery)return{source:e,count:0};const o=u.sublayer.createQuery();return o.geometry=r,o.num=s.maxResults,o.returnGeometry=s.returnGeometry,o.outFields=s.outFields??e.featureSettings.outFields,t(o,u,u.sublayer,s.cancelToken)}}
@@ -1 +1 @@
1
- import{toFeature as e}from"../../data/Feature.js";import{cancelifyWithAbortSignal as t}from"../../support/Cancellable.js";import{executeQuery as r,executeCount as a}from"../../support/_query.js";import{isCSVLayerExtension as i}from"../../utilities/extensions.js";import{removeZValues as o}from"../../utilities/geometry.js";import{IdentifyProviderBase as n}from"./IdentifyProviderBase.js";import{hitTestForClusterFeatures as s}from"./_utilities.js";async function u(e,r,a,i){const o=await s(e,r);if(0===o.length)return[];i.aggregateIds=o.map((e=>e.getObjectId()));const n=await t((t=>e._layerView.queryFeatures(i,{signal:t})),a.cancelToken);return n?.features}export class CSVLayerClientSideQueryIdentifyProvider extends n{isSupported(e,t,r){return i(e)&&!!e.layer}_identify(t,a,i,n){return async function*(){const s=t,l=s.layer.createQuery();if(l.outFields=t.featureSettings.outFields,l.returnGeometry=i.returnGeometry,l.outSpatialReference=i.outSpatialReference,l.maxAllowableOffset=i.maxAllowableOffset,l.num=i.maxResults,l.returnZ="scene"===s.mapExtension?.viewMode,"cluster"===s?.layer?.featureReduction?.type&&"point"===n){const r=await u(s,a,i,l);if(r?.length>0)return void(yield*r.map((r=>e(r,{source:t}))))}let c=a;c&&!s.layer.capabilities?.data?.supportsZ&&(c=o(c.clone())),l.geometry=c,yield*r(l,s,s.layer,i.cancelToken)}()}async _count(e,t,r,i){const n=e,s=n.layer.createQuery();if(s.num=r.maxResults,s.returnGeometry=r.returnGeometry,s.outFields=e.featureSettings.outFields,"cluster"===n?.layer?.featureReduction?.type&&"point"===i){const e=await u(n,t,r,s);if(e?.length>0)return{source:n,count:e.length}}if(!s.aggregateIds){let e=t;e&&!n.layer.capabilities?.data?.supportsZ&&(e=o(e.clone())),s.geometry=e}return a(s,n,n.layer,r.cancelToken)}}
1
+ import{toFeature as e}from"../../data/Feature.js";import{cancelifyWithAbortSignal as t}from"../../support/Cancellable.js";import{executeQuery as r,executeCount as a}from"../../support/_query.js";import{isCSVLayerExtension as i}from"../../utilities/extensions.js";import{removeZValues as o}from"../../utilities/geometry.js";import{IdentifyProviderBase as n}from"./IdentifyProviderBase.js";import{hitTestForClusterFeatures as s}from"./_utilities.js";async function u(e,r,a,i){const o=await s(e,r);if(0===o.length)return[];i.aggregateIds=o.map((e=>e.getObjectId()));const n=await t((t=>e._layerView.queryFeatures(i,{signal:t})),a.cancelToken);return n?.features}export class CSVLayerClientSideQueryIdentifyProvider extends n{isSupported(e,t,r){return i(e)&&!!e.layer}_identify(t,a,i,n){return async function*(){const s=t,l=s.layer.createQuery();if(l.outFields=i.outFields??t.featureSettings.outFields,l.returnGeometry=i.returnGeometry,l.outSpatialReference=i.outSpatialReference,l.maxAllowableOffset=i.maxAllowableOffset,l.num=i.maxResults,l.returnZ="scene"===s.mapExtension?.viewMode,"cluster"===s?.layer?.featureReduction?.type&&"point"===n){const r=await u(s,a,i,l);if(r?.length>0)return void(yield*r.map((r=>e(r,{source:t}))))}let c=a;c&&!s.layer.capabilities?.data?.supportsZ&&(c=o(c.clone())),l.geometry=c,yield*r(l,s,s.layer,i.cancelToken)}()}async _count(e,t,r,i){const n=e,s=n.layer.createQuery();if(s.num=r.maxResults,s.returnGeometry=r.returnGeometry,s.outFields=r.outFields??e.featureSettings.outFields,"cluster"===n?.layer?.featureReduction?.type&&"point"===i){const e=await u(n,t,r,s);if(e?.length>0)return{source:n,count:e.length}}if(!s.aggregateIds){let e=t;e&&!n.layer.capabilities?.data?.supportsZ&&(e=o(e.clone())),s.geometry=e}return a(s,n,n.layer,r.cancelToken)}}
@@ -1 +1 @@
1
- import{toFeature as e}from"../../data/Feature.js";import{cancelifyWithAbortSignal as t}from"../../support/Cancellable.js";import*as r from"../../utilities/asyncIterable.js";import{isSubtypeSublayerExtension as i}from"../../utilities/extensions.js";import{isBuildingComponentSublayer as a}from"../../utilities/layers.js";import{IdentifyProviderBase as s}from"./IdentifyProviderBase.js";export class ClientSideIdentifyProvider extends s{_identify(t,i,a,s){const n=this;return async function*(){const o=await n._getClientSideLayerGraphics(t,i,a,s);o?.length?yield*o.map((r=>e(r,{source:t}))):yield*r.empty()}()}async _count(e,t,r,i){const a=await this._getClientSideLayerGraphics(e,t,r,i);return{source:e,count:a?a.length:0}}_createQuery(e,t,r,s){const n=i(e)?e.layerExtension:e,{_layerView:o,featureSettings:l}=n,u=a(n.sublayer)?e.layerExtension?.mapExtension:e.mapExtension,c=o.createQuery();return c.geometry=t,c.outFields=l.outFields,c.returnGeometry=r.returnGeometry,c.outSpatialReference=r.outSpatialReference,c.maxAllowableOffset=r.maxAllowableOffset,c.num=r.maxResults,c.returnZ="scene"===u?.viewMode,c.aggregateIds=s,c}async _getClientSideLayerGraphics(e,r,a,s){const n=i(e)?e.layerExtension:e,{_layerView:o}=n;if(!o)return;const l=await t((async t=>o.queryFeatures(this._createQuery(e,r,a),{signal:t})),a.cancelToken);return l?.features}}
1
+ import{toFeature as e}from"../../data/Feature.js";import{cancelifyWithAbortSignal as t}from"../../support/Cancellable.js";import*as r from"../../utilities/asyncIterable.js";import{isSubtypeSublayerExtension as i}from"../../utilities/extensions.js";import{isBuildingComponentSublayer as s}from"../../utilities/layers.js";import{IdentifyProviderBase as a}from"./IdentifyProviderBase.js";export class ClientSideIdentifyProvider extends a{_identify(t,i,s,a){const n=this;return async function*(){const o=await n._getClientSideLayerGraphics(t,i,s,a);o?.length?yield*o.map((r=>e(r,{source:t}))):yield*r.empty()}()}async _count(e,t,r,i){const s=await this._getClientSideLayerGraphics(e,t,r,i);return{source:e,count:s?s.length:0}}_createQuery(e,t,r,a){const n=i(e)?e.layerExtension:e,{_layerView:o,featureSettings:l}=n,u=s(n.sublayer)?e.layerExtension?.mapExtension:e.mapExtension,c=o.createQuery();return c.geometry=t,c.outFields=r.outFields||l.outFields,c.returnGeometry=r.returnGeometry,c.outSpatialReference=r.outSpatialReference,c.maxAllowableOffset=r.maxAllowableOffset,c.num=r.maxResults,c.returnZ="scene"===u?.viewMode,c.aggregateIds=a,c}async _getClientSideLayerGraphics(e,r,s,a){const n=i(e)?e.layerExtension:e,{_layerView:o}=n;if(!o)return;const l=await t((async t=>o.queryFeatures(this._createQuery(e,r,s),{signal:t})),s.cancelToken);return l?.features}}
@@ -1 +1 @@
1
- import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isFeatureCollectionLayerExtension as r,isFeatureLayerExtension as a}from"../../utilities/extensions.js";import{removeZValues as o}from"../../utilities/geometry.js";import{isFeatureLayer as s}from"../../utilities/layers.js";import{IdentifyProviderBase as i}from"./IdentifyProviderBase.js";export class FeatureLayerQueryIdentifyProvider extends i{isSupported(e,t,o){return(a(e)||r(e))&&s(e.layer)}_identify(t,r,a){const s=t,i=s.layer.createQuery();let l=r;return!l||s.layer.hasZ&&s.layer.capabilities?.data?.supportsZ||(l=o(l.clone())),i.geometry=l,i.outFields=t.featureSettings.outFields,i.returnGeometry=a.returnGeometry,i.outSpatialReference=a.outSpatialReference,i.maxAllowableOffset=a.maxAllowableOffset,s.layer.capabilities.query.supportsPagination&&(i.num=a.maxResults),i.returnZ="scene"===t.mapExtension?.viewMode,e(i,s,s.layer,a.cancelToken)}_count(e,r,a){const s=e,i=s.layer.createQuery();let l=r;return!l||s.layer.hasZ&&s.layer.capabilities?.data?.supportsZ||(l=o(l.clone())),i.geometry=l,i.num=a.maxResults,i.returnGeometry=a.returnGeometry,i.outFields=e.featureSettings.outFields,t(i,s,s.layer,a.cancelToken)}}
1
+ import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isFeatureCollectionLayerExtension as r,isFeatureLayerExtension as a}from"../../utilities/extensions.js";import{removeZValues as o}from"../../utilities/geometry.js";import{isFeatureLayer as s}from"../../utilities/layers.js";import{IdentifyProviderBase as i}from"./IdentifyProviderBase.js";export class FeatureLayerQueryIdentifyProvider extends i{isSupported(e,t,o){return(a(e)||r(e))&&s(e.layer)}_identify(t,r,a){const s=t,i=s.layer.createQuery();let l=r;return!l||s.layer.hasZ&&s.layer.capabilities?.data?.supportsZ||(l=o(l.clone())),i.geometry=l,i.outFields=a.outFields??t.featureSettings.outFields,i.returnGeometry=a.returnGeometry,i.outSpatialReference=a.outSpatialReference,i.maxAllowableOffset=a.maxAllowableOffset,s.layer.capabilities.query.supportsPagination&&(i.num=a.maxResults),i.returnZ="scene"===t.mapExtension?.viewMode,e(i,s,s.layer,a.cancelToken)}_count(e,r,a){const s=e,i=s.layer.createQuery();let l=r;return!l||s.layer.hasZ&&s.layer.capabilities?.data?.supportsZ||(l=o(l.clone())),i.geometry=l,i.num=a.maxResults,i.returnGeometry=a.returnGeometry,i.outFields=a.outFields??e.featureSettings.outFields,t(i,s,s.layer,a.cancelToken)}}
@@ -1 +1 @@
1
- import{toFeature as e}from"../../data/Feature.js";import{cancelifyWithAbortSignal as t}from"../../support/Cancellable.js";import{executeQuery as r,executeCount as a}from"../../support/_query.js";import{isGeoJSONLayerExtension as i}from"../../utilities/extensions.js";import{removeZValues as o}from"../../utilities/geometry.js";import{IdentifyProviderBase as n}from"./IdentifyProviderBase.js";import{hitTestForClusterFeatures as s}from"./_utilities.js";async function u(e,r,a,i){const o=await s(e,r);if(0===o.length)return[];i.aggregateIds=o.map((e=>e.getObjectId()));const n=await t((t=>e._layerView.queryFeatures(i,{signal:t})),a.cancelToken);return n?.features}export class GeoJSONLayerClientSideQueryIdentifyProvider extends n{isSupported(e,t,r){return i(e)&&!!e.layer}_identify(t,a,i,n){return async function*(){const s=t,l=s.layer.createQuery();if(l.outFields=t.featureSettings.outFields,l.returnGeometry=i.returnGeometry,l.outSpatialReference=i.outSpatialReference,l.maxAllowableOffset=i.maxAllowableOffset,l.num=i.maxResults,l.returnZ="scene"===s.mapExtension?.viewMode,"cluster"===s?.layer?.featureReduction?.type&&"point"===n){const r=await u(s,a,i,l);if(r?.length>0)return void(yield*r.map((r=>e(r,{source:t}))))}let c=a;c&&!s.layer.capabilities?.data?.supportsZ&&(c=o(c.clone())),l.geometry=c,yield*r(l,s,s.layer,i.cancelToken)}()}async _count(e,t,r,i){const n=e,s=n.layer.createQuery();if(s.num=r.maxResults,s.returnGeometry=r.returnGeometry,s.outFields=e.featureSettings.outFields,"cluster"===n?.layer?.featureReduction?.type&&"point"===i){const e=await u(n,t,r,s);if(e?.length>0)return{source:n,count:e.length}}if(!s.aggregateIds){let e=t;e&&!n.layer.capabilities?.data?.supportsZ&&(e=o(e.clone())),s.geometry=e}return a(s,n,n.layer,r.cancelToken)}}
1
+ import{toFeature as e}from"../../data/Feature.js";import{cancelifyWithAbortSignal as t}from"../../support/Cancellable.js";import{executeQuery as r,executeCount as a}from"../../support/_query.js";import{isGeoJSONLayerExtension as i}from"../../utilities/extensions.js";import{removeZValues as o}from"../../utilities/geometry.js";import{IdentifyProviderBase as n}from"./IdentifyProviderBase.js";import{hitTestForClusterFeatures as s}from"./_utilities.js";async function u(e,r,a,i){const o=await s(e,r);if(0===o.length)return[];i.aggregateIds=o.map((e=>e.getObjectId()));const n=await t((t=>e._layerView.queryFeatures(i,{signal:t})),a.cancelToken);return n?.features}export class GeoJSONLayerClientSideQueryIdentifyProvider extends n{isSupported(e,t,r){return i(e)&&!!e.layer}_identify(t,a,i,n){return async function*(){const s=t,l=s.layer.createQuery();if(l.outFields=i.outFields??t.featureSettings.outFields,l.returnGeometry=i.returnGeometry,l.outSpatialReference=i.outSpatialReference,l.maxAllowableOffset=i.maxAllowableOffset,l.num=i.maxResults,l.returnZ="scene"===s.mapExtension?.viewMode,"cluster"===s?.layer?.featureReduction?.type&&"point"===n){const r=await u(s,a,i,l);if(r?.length>0)return void(yield*r.map((r=>e(r,{source:t}))))}let c=a;c&&!s.layer.capabilities?.data?.supportsZ&&(c=o(c.clone())),l.geometry=c,yield*r(l,s,s.layer,i.cancelToken)}()}async _count(e,t,r,i){const n=e,s=n.layer.createQuery();if(s.num=r.maxResults,s.returnGeometry=r.returnGeometry,s.outFields=r.outFields??e.featureSettings.outFields,"cluster"===n?.layer?.featureReduction?.type&&"point"===i){const e=await u(n,t,r,s);if(e?.length>0)return{source:n,count:e.length}}if(!s.aggregateIds){let e=t;e&&!n.layer.capabilities?.data?.supportsZ&&(e=o(e.clone())),s.geometry=e}return a(s,n,n.layer,r.cancelToken)}}
@@ -1 +1 @@
1
- import{isGeoRssLayerExtension as e}from"../../utilities/extensions.js";import{GeoRSSLayerQueryProvider as r}from"../query/GeoRSSLayerQueryProvider.js";import{IdentifyProviderBase as t}from"./IdentifyProviderBase.js";export class GeoRSSLayerIdentifyProvider extends t{constructor(){super(...arguments),this._provider=new r}isSupported(r,t,o){return e(r)}_identify(e,r,t){const o=e,s={cancelToken:t.cancelToken,outFields:e.featureSettings.outFields,returnGeometry:t.returnGeometry,spatialFilter:r,maxResults:t.maxResults};return this._provider.query(o,"1=1",s)}_count(e,r,t){const o=e,s={cancelToken:t.cancelToken,spatialFilter:r,maxResults:t.maxResults,returnGeometry:t.returnGeometry,outFields:e.featureSettings.outFields};return this._provider.count(o,"1=1",s)}}
1
+ import{isGeoRssLayerExtension as e}from"../../utilities/extensions.js";import{GeoRSSLayerQueryProvider as t}from"../query/GeoRSSLayerQueryProvider.js";import{IdentifyProviderBase as r}from"./IdentifyProviderBase.js";export class GeoRSSLayerIdentifyProvider extends r{constructor(){super(...arguments),this._provider=new t}isSupported(t,r,o){return e(t)}_identify(e,t,r){const o=e,s={cancelToken:r.cancelToken,outFields:r.outFields??e.featureSettings.outFields,returnGeometry:r.returnGeometry,spatialFilter:t,maxResults:r.maxResults};return this._provider.query(o,"1=1",s)}_count(e,t,r){const o=e,s={cancelToken:r.cancelToken,spatialFilter:t,maxResults:r.maxResults,returnGeometry:r.returnGeometry,outFields:r.outFields??e.featureSettings.outFields};return this._provider.count(o,"1=1",s)}}
@@ -16,6 +16,11 @@ export interface IdentifyOptions {
16
16
  * Whether geometry for features should be returned.
17
17
  */
18
18
  returnGeometry?: boolean;
19
+ /**
20
+ * List of fields that should be returned that overrides the default out
21
+ * fields.
22
+ */
23
+ outFields?: string[];
19
24
  /**
20
25
  * The spatial reference for the returned geometry.
21
26
  */
@@ -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 l}from"../../support/_query.js";import{toArray as c}from"../../utilities/asyncIterable.js";import{isPoint as u,isPolygon as m,isPolyline as f}from"../../utilities/esri.js";import{isImageryLayerExtension as g}from"../../utilities/extensions.js";import{getLogger as p}from"../../utilities/log.js";import{isNumeric as y}from"../../utilities/number.js";import{IdentifyProviderBase as d}from"./IdentifyProviderBase.js";const I=p("ImageryLayerIdentifyProvider");export class ImageryLayerIdentifyProvider extends d{isSupported(e,t,r){return g(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 c(this._getResultFeatures(i,a,r))).length}}async _executeIdentifyTask(e,t,i){const{layer:s}=e,o=new a({geometry:t,mosaicRule:s.mosaicRule,renderingRule:s.renderingRule,returnCatalogItems:e.includeCatalogItems,returnGeometry:e.includeCatalogItems&&i.returnGeometry});l(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;const n=i._rasterAttributeTableFieldPrefix;y(s)&&(s=parseFloat(s)),y(o)&&(o=parseFloat(o)),t.attributes.set(`${n}ServicePixelValue`,o),t.attributes.set(`${n}ServicePixelValue.Raw`,o),t.attributes.set(`${n}ItemPixelValue`,s);const l=i.serviceRasterInfo?.attributeTable??i.rasterInfo?.attributeTable;if(l){const{features:e,fields:r}=l,a=e.find((e=>e.getAttribute("Value")===s));r.forEach((e=>{"Value"!==e.name&&"oid"!==e.type&&t.attributes.set(`${n}${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=[],{outFields:n}=t.featureSettings;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 l=await i;l.length>0&&l.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 l}from"../../support/_query.js";import{toArray as c}from"../../utilities/asyncIterable.js";import{isPoint as u,isPolygon as m,isPolyline as f}from"../../utilities/esri.js";import{isImageryLayerExtension as g}from"../../utilities/extensions.js";import{getLogger as p}from"../../utilities/log.js";import{isNumeric as y}from"../../utilities/number.js";import{IdentifyProviderBase as d}from"./IdentifyProviderBase.js";const I=p("ImageryLayerIdentifyProvider");export class ImageryLayerIdentifyProvider extends d{isSupported(e,t,r){return g(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 c(this._getResultFeatures(i,a,r))).length}}async _executeIdentifyTask(e,t,i){const{layer:s}=e,o=new a({geometry:t,mosaicRule:s.mosaicRule,renderingRule:s.renderingRule,returnCatalogItems:e.includeCatalogItems,returnGeometry:e.includeCatalogItems&&i.returnGeometry});l(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;const n=i._rasterAttributeTableFieldPrefix;y(s)&&(s=parseFloat(s)),y(o)&&(o=parseFloat(o)),t.attributes.set(`${n}ServicePixelValue`,o),t.attributes.set(`${n}ServicePixelValue.Raw`,o),t.attributes.set(`${n}ItemPixelValue`,s);const l=i.serviceRasterInfo?.attributeTable??i.rasterInfo?.attributeTable;if(l){const{features:e,fields:r}=l,a=e.find((e=>e.getAttribute("Value")===s));r.forEach((e=>{"Value"!==e.name&&"oid"!==e.type&&t.attributes.set(`${n}${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 l=await i;l.length>0&&l.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{KMLLayerQueryProvider as e}from"../query/KMLLayerQueryProvider.js";import{IdentifyProviderBase as r}from"./IdentifyProviderBase.js";export class KMLLayerQueryIdentifyProvider extends r{constructor(){super(...arguments),this._provider=new e}isSupported(e,r,t){return this._provider.isSupported(e)}_identify(e,r,t){const s={cancelToken:t.cancelToken,outFields:e.featureSettings.outFields,returnGeometry:t.returnGeometry,spatialFilter:r,maxResults:t.maxResults};return this._provider.query(e,"1=1",s)}_count(e,r,t){const s={cancelToken:t.cancelToken,spatialFilter:r,maxResults:t.maxResults};return this._provider.count(e,"1=1",s)}}
1
+ import{KMLLayerQueryProvider as e}from"../query/KMLLayerQueryProvider.js";import{IdentifyProviderBase as r}from"./IdentifyProviderBase.js";export class KMLLayerQueryIdentifyProvider extends r{constructor(){super(...arguments),this._provider=new e}isSupported(e,r,t){return this._provider.isSupported(e)}_identify(e,r,t){const s={cancelToken:t.cancelToken,outFields:t.outFields??e.featureSettings.outFields,returnGeometry:t.returnGeometry,spatialFilter:r,maxResults:t.maxResults};return this._provider.query(e,"1=1",s)}_count(e,r,t){const s={cancelToken:t.cancelToken,spatialFilter:r,maxResults:t.maxResults};return this._provider.count(e,"1=1",s)}}
@@ -1 +1 @@
1
- import{executeQuery as e,executeCount as r}from"../../support/_graphicsQuery.js";import{isMapNotesSublayer as t}from"../../utilities/_layers.js";import{IdentifyProviderBase as s}from"./IdentifyProviderBase.js";export class MapNotesSublayerQueryIdentifyProvider extends s{isSupported(e,r,s){const{sublayer:a}=e;return t(a)&&e.capabilities.supportsQuery}_identify(r,t,s){const{sublayer:a}=r,i={cancelToken:s.cancelToken,outFields:r.featureSettings.outFields,returnGeometry:s.returnGeometry,spatialFilter:t,maxResults:s.maxResults};return e("1=1",r,a.graphics,i)}_count(e,t,s){const{sublayer:a}=e,i={cancelToken:s.cancelToken,spatialFilter:t,maxResults:s.maxResults};return r("1=1",e,a.graphics,i)}}
1
+ import{executeQuery as e,executeCount as r}from"../../support/_graphicsQuery.js";import{isMapNotesSublayer as t}from"../../utilities/_layers.js";import{IdentifyProviderBase as s}from"./IdentifyProviderBase.js";export class MapNotesSublayerQueryIdentifyProvider extends s{isSupported(e,r,s){const{sublayer:i}=e;return t(i)&&e.capabilities.supportsQuery}_identify(r,t,s){const{sublayer:i}=r,a={cancelToken:s.cancelToken,outFields:s.outFields??r.featureSettings.outFields,returnGeometry:s.returnGeometry,spatialFilter:t,maxResults:s.maxResults};return e("1=1",r,i.graphics,a)}_count(e,t,s){const{sublayer:i}=e,a={cancelToken:s.cancelToken,spatialFilter:t,maxResults:s.maxResults};return r("1=1",e,i.graphics,a)}}
@@ -1 +1 @@
1
- import{executeQuery as r,executeCount as e}from"../../support/_graphicsQuery.js";import{isRouteLayer as t}from"../../utilities/_layers.js";import{_toRouteLayerGraphic as o}from"../support/_routeLayerUtils.js";import{IdentifyProviderBase as s}from"./IdentifyProviderBase.js";export class RouteLayerQueryIdentifyProvider extends s{isSupported(r,e,o){const{layer:s}=r;return t(s)&&r.capabilities.supportsQuery}_identify(e,t,o){const s={cancelToken:o.cancelToken,outFields:e.featureSettings.outFields,returnGeometry:o.returnGeometry,spatialFilter:t,maxResults:o.maxResults};return r("1=1",e,this._getAllGraphics(e),s)}_count(r,t,o){const s={cancelToken:o.cancelToken,spatialFilter:t,maxResults:o.maxResults};return e("1=1",r,this._getAllGraphics(r),s)}_getAllGraphics(r){const e=[...r.layer.stops?.toArray()??[],...r.layer.directionPoints?.toArray()??[],...r.layer.directionLines?.toArray()??[],...r.layer.pointBarriers?.toArray()??[],...r.layer.polylineBarriers?.toArray()??[],...r.layer.polygonBarriers?.toArray()??[]].map(o);return r.layer.routeInfo&&e.unshift(o(r.layer.routeInfo)),e}}
1
+ import{executeQuery as r,executeCount as e}from"../../support/_graphicsQuery.js";import{isRouteLayer as t}from"../../utilities/_layers.js";import{_toRouteLayerGraphic as o}from"../support/_routeLayerUtils.js";import{IdentifyProviderBase as s}from"./IdentifyProviderBase.js";export class RouteLayerQueryIdentifyProvider extends s{isSupported(r,e,o){const{layer:s}=r;return t(s)&&r.capabilities.supportsQuery}_identify(e,t,o){const s={cancelToken:o.cancelToken,outFields:o.outFields??e.featureSettings.outFields,returnGeometry:o.returnGeometry,spatialFilter:t,maxResults:o.maxResults};return r("1=1",e,this._getAllGraphics(e),s)}_count(r,t,o){const s={cancelToken:o.cancelToken,spatialFilter:t,maxResults:o.maxResults};return e("1=1",r,this._getAllGraphics(r),s)}_getAllGraphics(r){const e=[...r.layer.stops?.toArray()??[],...r.layer.directionPoints?.toArray()??[],...r.layer.directionLines?.toArray()??[],...r.layer.pointBarriers?.toArray()??[],...r.layer.polylineBarriers?.toArray()??[],...r.layer.polygonBarriers?.toArray()??[]].map(o);return r.layer.routeInfo&&e.unshift(o(r.layer.routeInfo)),e}}
@@ -1 +1 @@
1
- import{isSceneLayer as e}from"../../utilities/layers.js";import{ClientSideIdentifyProvider as t}from"./ClientSideIdentifyProvider.js";export class SceneLayerClientSideIdentifyProvider extends t{isSupported(t,r,i){return e(t.layer)}_createQuery(e,t,r){const{mapExtension:i,_layerView:a,featureSettings:l}=e,o=a.createQuery();return o.geometry=t,o.outFields=l.outFields,o.outSpatialReference=r.outSpatialReference,o.maxAllowableOffset=r.maxAllowableOffset,o.num=r.maxResults,o.returnZ="scene"===i.viewMode,o}}
1
+ import{isSceneLayer as e}from"../../utilities/layers.js";import{ClientSideIdentifyProvider as t}from"./ClientSideIdentifyProvider.js";export class SceneLayerClientSideIdentifyProvider extends t{isSupported(t,r,i){return e(t.layer)}_createQuery(e,t,r){const{mapExtension:i,_layerView:l,featureSettings:o}=e,s=l.createQuery();return s.geometry=t,s.outFields=r.outFields||o.outFields,s.outSpatialReference=r.outSpatialReference,s.maxAllowableOffset=r.maxAllowableOffset,s.num=r.maxResults,s.returnZ="scene"===i.viewMode,s}}
@@ -1 +1 @@
1
- import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isSubtypeSublayerExtension as r}from"../../utilities/extensions.js";import{removeZValues as s}from"../../utilities/geometry.js";import{isSubtypeSublayer as u}from"../../utilities/layers.js";import{IdentifyProviderBase as o}from"./IdentifyProviderBase.js";export class SubtypeSublayerQueryIdentifyProvider extends o{isSupported(e,t,s){return r(e)&&u(e.sublayer)&&!!e.sublayer.layer}_identify(t,r,u){const o=t,{layer:a}=o.sublayer,i=a.createQuery();let l=r;return l&&(a.hasZ||a.capabilities?.data?.supportsZ)&&(l=s(l.clone())),i.geometry=l,i.outFields=t.featureSettings.outFields,i.returnGeometry=u.returnGeometry,i.outSpatialReference=u.outSpatialReference,i.maxAllowableOffset=u.maxAllowableOffset,i.where=`${a.subtypeField}=${o.sublayer.subtypeCode}`,a.capabilities.query.supportsPagination&&(i.num=u.maxResults),e(i,o,a,u.cancelToken)}_count(e,r,u){const o=e,{layer:a}=o.sublayer,i=a.createQuery();let l=r;return l&&(a.hasZ||a.capabilities?.data?.supportsZ)&&(l=s(l.clone())),i.geometry=l,i.num=u.maxResults,i.returnGeometry=u.returnGeometry,i.outFields=e.featureSettings.outFields,i.where=`${a.subtypeField}=${o.sublayer.subtypeCode}`,t(i,o,a,u.cancelToken)}}
1
+ import{executeQuery as e,executeCount as t}from"../../support/_query.js";import{isSubtypeSublayerExtension as r}from"../../utilities/extensions.js";import{removeZValues as s}from"../../utilities/geometry.js";import{isSubtypeSublayer as u}from"../../utilities/layers.js";import{IdentifyProviderBase as o}from"./IdentifyProviderBase.js";export class SubtypeSublayerQueryIdentifyProvider extends o{isSupported(e,t,s){return r(e)&&u(e.sublayer)&&!!e.sublayer.layer}_identify(t,r,u){const o=t,{layer:i}=o.sublayer,a=i.createQuery();let l=r;return l&&(i.hasZ||i.capabilities?.data?.supportsZ)&&(l=s(l.clone())),a.geometry=l,a.outFields=u.outFields??t.featureSettings.outFields,a.returnGeometry=u.returnGeometry,a.outSpatialReference=u.outSpatialReference,a.maxAllowableOffset=u.maxAllowableOffset,a.where=`${i.subtypeField}=${o.sublayer.subtypeCode}`,i.capabilities.query.supportsPagination&&(a.num=u.maxResults),e(a,o,i,u.cancelToken)}_count(e,r,u){const o=e,{layer:i}=o.sublayer,a=i.createQuery();let l=r;return l&&(i.hasZ||i.capabilities?.data?.supportsZ)&&(l=s(l.clone())),a.geometry=l,a.num=u.maxResults,a.returnGeometry=u.returnGeometry,a.outFields=u.outFields??e.featureSettings.outFields,a.where=`${i.subtypeField}=${o.sublayer.subtypeCode}`,t(a,o,i,u.cancelToken)}}
@@ -1 +1 @@
1
- import e from"@arcgis/core/geometry/SpatialReference";import{ArgumentError as t}from"../../ArgumentError.js";import{wfsFeatureCollectionToFeatures as s}from"../../mapping/support/ogc.js";import{DefaultRequestHelper as r}from"../../utilities/RequestHelper.js";import{OgcNamespace as i,inferGmlVersion as a,getEpsgCode as n}from"../../utilities/_ogc.js";import{checkArg as o}from"../../utilities/checkArg.js";import{isWMSSublayerExtension as l}from"../../utilities/extensions.js";import{esriToGml as u,project as m,esriWktToWkid as c}from"../../utilities/geometry.js";import{IdentifyProviderBase as p}from"./IdentifyProviderBase.js";export class WMSSublayerIdentifyProvider extends p{constructor(){super(...arguments),this.requestHelper=new r}isSupported(e,t,s){return l(e)&&void 0!==e.layerExtension&&void 0!==e.layerExtension.wfsUrl&&void 0!==e.layerExtension.wfsCapabilities}_identify(e,t,r){const i=(async()=>{const s=e;await s.layerExtension.wfsCapabilities.initialize();const i=this._resolveWfsFeatureType(s),a=await this._createGetFeatureSpatialQuery(e,t,i,r),n={method:"post",body:(new XMLSerializer).serializeToString(a),headers:{"Content-Type":"text/xml; charset=utf-8"}};return this.requestHelper.request(s.layerExtension.wfsUrl,n)})();return async function*(){const t=await i,r=await t.text(),a=(new DOMParser).parseFromString(r,"text/xml");if(!t||!a||a.childNodes.length<1)throw new Error("Response to WFS GetFeature request was invalid.");yield*await s(a.childNodes[0],e)}()}async _count(e,t,r={}){const i=(async()=>{const s=e;await s.initialize(),await s.layerExtension.wfsCapabilities.initialize();const i=this._resolveWfsFeatureType(s),a=await this._createGetFeatureSpatialQuery(e,t,i,r),n={method:"post",body:(new XMLSerializer).serializeToString(a),headers:{"Content-Type":"text/xml; charset=utf-8"}};return this.requestHelper.request(s.layerExtension.wfsUrl,n)})(),a=await i,n=await a.text(),o=(new DOMParser).parseFromString(n,"text/xml");if(!a||!o||o.childNodes.length<1)throw new Error("Response to WFS GetFeature request was invalid.");const l=await s(o.childNodes[0],e);return{source:e,count:l.length}}_resolveWfsFeatureType(e){o("sublayerX",e).isNotMissing().satisfies((e=>e.layerExtension?.wfsCapabilities?.featureTypes?.length>0),"Could not find a matching WFS feature type.");let s=e.layerExtension.wfsCapabilities.featureTypes.filter((t=>t.name===e.sublayer.name));if(s.length>0||(s=e.layerExtension.wfsCapabilities.featureTypes.filter((t=>this._spliceName(t.name)===e.sublayer.name))),!(s.length>0))throw new t("sublayerX","Could not find a matching WFS feature type");return s[0]}_spliceName(e){o("name",e).isNotNull();const t=e.indexOf(":");return t<0?e:e.slice(t+1,e.length)}async _createGetFeatureSpatialQuery(e,t,s,r){o("source",e).isNotMissing().satisfies((e=>l(e))),o("geometry",t).isNotMissing().satisfies((e=>["extent","point","polygon","polyline"].includes(e.type)));const i=e,a=i.layerExtension.wfsCapabilities,n=this._createGetFeatureElement(a,r),u=await this._createQueryElement(s,t);n.appendChild(u);let m=s.attributes;const{outFields:c}=e.featureSettings;c&&c.length>0&&(c.includes("*")||(m=c));for(const e of m){const t=this._createElement("wfs","PropertyName");t.textContent=e,u.appendChild(t)}const p=this._createFilterElement(i);u.appendChild(p);const f=this._createSpatialOperatorElement(i);p.appendChild(f);const y=this._createGeometryFieldElement(i,s);f.appendChild(y);const h=await this._createGeometryElement(i,t,a,s);return f.appendChild(h),n}_createGetFeatureElement(e,t){const s=this._createElement("wfs","GetFeature");s.setAttribute("service","WFS"),s.setAttribute("version",`${e.wfsVersion}`),s.setAttribute("xmlns:xs",i.XS),s.setAttribute("xmlns:ogc",i.OGC),s.setAttribute("xmlns:wfs",this._getWfsNameSpace(e.wfsVersion)),s.setAttribute("xmlns:gml",this._getGmlNameSpace(e.wfsVersion)),s.setAttribute("outputFormat",this._getOutputFormat(e));let r=1e3;if(t?.maxResults&&(r=t.maxResults),s.setAttribute("count",r.toString()),"2.0.0"===e.wfsVersion)s.setAttribute("xmlns:fes",i.FES_2_0);else s.setAttribute("xmlns:fes",i.FES);return s}async _createQueryElement(e,t){const s=this._createElement("wfs","Query"),r=await this._getSrsName(e,t);return s.setAttribute("typeNames",e.name),s.setAttribute("srsName",r),s}_createFilterElement(e){return"2.0.0"===e.layerExtension.wfsCapabilities.wfsVersion?this._createElement("fes","Filter"):this._createElement("ogc","Filter")}_createSpatialOperatorElement(e){return"2.0.0"===e.layerExtension.wfsCapabilities.wfsVersion?this._createElement("fes","Intersects"):this._createElement("ogc","Intersects")}_createGeometryFieldElement(e,t){if(o("featureType.geometryField",t.geometryField).isNotMissing("The WFS feature type does not have a geometry field"),"2.0.0"===e.layerExtension.wfsCapabilities.wfsVersion){const e=this._createElement("fes","ValueReference");return e.textContent=t.geometryField,e}{const e=this._createElement("ogc","PropertyName");return e.textContent=t.geometryField,e}}async _createGeometryElement(e,t,s,r){o("geometry",t).isNotMissing(),o("geometry.spatialReference",t.spatialReference).isNotMissing();const i={gmlVersion:a(s.wfsVersion)};if(i.srsName=await this._getSrsName(r,t),i.srsName===r.defaultCrs){const e=n(r.defaultCrs),s=await this.projectGeometry(t,e);return u(s,i)}return u(t,i)}async projectGeometry(t,s){const r=await m([t],new e({wkid:s}));if(r&&r.length>0)return r[0];throw new Error("Unable to create a geometry element.")}_createElement(e,t){o("name",t).isNotMissing();const s=document.implementation.createDocument(void 0,"temp",void 0);return e?s.createElement(`${e}:${t}`):s.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}}_getOutputFormat(e){const t=["text/xml; version=gml/","text/xml; subType=gml/","application/gml+xml; version="],s=["2.1","2.1.2","2.1.1","2.0.0"],r=["3.2","3.2.1","3.1","3.1.1","3.1.0","3.0.1","3.0.0"];let i;switch(e.wfsVersion){case"1.0.0":return i=this._matchOutputFormat(t,s,e),i||"GML2";case"1.1.0":return i=this._matchOutputFormat(t,r,e),i||"text/xml; subtype=gml/3.1.1";default:return i=this._matchOutputFormat(t,r,e),i||"text/gml+xml; version=3.2"}}_matchOutputFormat(e,t,s){for(const r of t)for(const t of e){const e=s.getFeatureOutputFormats.filter((e=>e===`${t}${r}`));if(e&&e.length>0)return e[0]}}async _getSrsName(e,t){o("wfsFeatureType",e).isNotMissing(),o("geometry",t).isNotMissing();const s=t.spatialReference.wkid?t.spatialReference.wkid:await c(t.spatialReference.wkt);if(s===n(e.defaultCrs))return`EPSG:${s}`;for(const t of e.otherCrs)if(s===n(t))return`EPSG:${s}`;return e.defaultCrs}}
1
+ import e from"@arcgis/core/geometry/SpatialReference";import{ArgumentError as t}from"../../ArgumentError.js";import{wfsFeatureCollectionToFeatures as s}from"../../mapping/support/ogc.js";import{DefaultRequestHelper as r}from"../../utilities/RequestHelper.js";import{OgcNamespace as i,inferGmlVersion as a,getEpsgCode as n}from"../../utilities/_ogc.js";import{checkArg as o}from"../../utilities/checkArg.js";import{isWMSSublayerExtension as l}from"../../utilities/extensions.js";import{esriToGml as u,project as m,esriWktToWkid as c}from"../../utilities/geometry.js";import{IdentifyProviderBase as p}from"./IdentifyProviderBase.js";export class WMSSublayerIdentifyProvider extends p{constructor(){super(...arguments),this.requestHelper=new r}isSupported(e,t,s){return l(e)&&void 0!==e.layerExtension&&void 0!==e.layerExtension.wfsUrl&&void 0!==e.layerExtension.wfsCapabilities}_identify(e,t,r){const i=(async()=>{const s=e;await s.layerExtension.wfsCapabilities.initialize();const i=this._resolveWfsFeatureType(s),a=await this._createGetFeatureSpatialQuery(e,t,i,r),n={method:"post",body:(new XMLSerializer).serializeToString(a),headers:{"Content-Type":"text/xml; charset=utf-8"}};return this.requestHelper.request(s.layerExtension.wfsUrl,n)})();return async function*(){const t=await i,r=await t.text(),a=(new DOMParser).parseFromString(r,"text/xml");if(!t||!a||a.childNodes.length<1)throw new Error("Response to WFS GetFeature request was invalid.");yield*await s(a.childNodes[0],e)}()}async _count(e,t,r={}){const i=(async()=>{const s=e;await s.initialize(),await s.layerExtension.wfsCapabilities.initialize();const i=this._resolveWfsFeatureType(s),a=await this._createGetFeatureSpatialQuery(e,t,i,r),n={method:"post",body:(new XMLSerializer).serializeToString(a),headers:{"Content-Type":"text/xml; charset=utf-8"}};return this.requestHelper.request(s.layerExtension.wfsUrl,n)})(),a=await i,n=await a.text(),o=(new DOMParser).parseFromString(n,"text/xml");if(!a||!o||o.childNodes.length<1)throw new Error("Response to WFS GetFeature request was invalid.");const l=await s(o.childNodes[0],e);return{source:e,count:l.length}}_resolveWfsFeatureType(e){o("sublayerX",e).isNotMissing().satisfies((e=>e.layerExtension?.wfsCapabilities?.featureTypes?.length>0),"Could not find a matching WFS feature type.");let s=e.layerExtension.wfsCapabilities.featureTypes.filter((t=>t.name===e.sublayer.name));if(s.length>0||(s=e.layerExtension.wfsCapabilities.featureTypes.filter((t=>this._spliceName(t.name)===e.sublayer.name))),!(s.length>0))throw new t("sublayerX","Could not find a matching WFS feature type");return s[0]}_spliceName(e){o("name",e).isNotNull();const t=e.indexOf(":");return t<0?e:e.slice(t+1,e.length)}async _createGetFeatureSpatialQuery(e,t,s,r){o("source",e).isNotMissing().satisfies((e=>l(e))),o("geometry",t).isNotMissing().satisfies((e=>["extent","point","polygon","polyline"].includes(e.type)));const i=e,a=i.layerExtension.wfsCapabilities,n=this._createGetFeatureElement(a,r),u=await this._createQueryElement(s,t);n.appendChild(u);let m=s.attributes;const c=r.outFields??e.featureSettings.outFields;c&&c.length>0&&(c.includes("*")||(m=c));for(const e of m){const t=this._createElement("wfs","PropertyName");t.textContent=e,u.appendChild(t)}const p=this._createFilterElement(i);u.appendChild(p);const f=this._createSpatialOperatorElement(i);p.appendChild(f);const y=this._createGeometryFieldElement(i,s);f.appendChild(y);const h=await this._createGeometryElement(i,t,a,s);return f.appendChild(h),n}_createGetFeatureElement(e,t){const s=this._createElement("wfs","GetFeature");s.setAttribute("service","WFS"),s.setAttribute("version",`${e.wfsVersion}`),s.setAttribute("xmlns:xs",i.XS),s.setAttribute("xmlns:ogc",i.OGC),s.setAttribute("xmlns:wfs",this._getWfsNameSpace(e.wfsVersion)),s.setAttribute("xmlns:gml",this._getGmlNameSpace(e.wfsVersion)),s.setAttribute("outputFormat",this._getOutputFormat(e));let r=1e3;if(t?.maxResults&&(r=t.maxResults),s.setAttribute("count",r.toString()),"2.0.0"===e.wfsVersion)s.setAttribute("xmlns:fes",i.FES_2_0);else s.setAttribute("xmlns:fes",i.FES);return s}async _createQueryElement(e,t){const s=this._createElement("wfs","Query"),r=await this._getSrsName(e,t);return s.setAttribute("typeNames",e.name),s.setAttribute("srsName",r),s}_createFilterElement(e){return"2.0.0"===e.layerExtension.wfsCapabilities.wfsVersion?this._createElement("fes","Filter"):this._createElement("ogc","Filter")}_createSpatialOperatorElement(e){return"2.0.0"===e.layerExtension.wfsCapabilities.wfsVersion?this._createElement("fes","Intersects"):this._createElement("ogc","Intersects")}_createGeometryFieldElement(e,t){if(o("featureType.geometryField",t.geometryField).isNotMissing("The WFS feature type does not have a geometry field"),"2.0.0"===e.layerExtension.wfsCapabilities.wfsVersion){const e=this._createElement("fes","ValueReference");return e.textContent=t.geometryField,e}{const e=this._createElement("ogc","PropertyName");return e.textContent=t.geometryField,e}}async _createGeometryElement(e,t,s,r){o("geometry",t).isNotMissing(),o("geometry.spatialReference",t.spatialReference).isNotMissing();const i={gmlVersion:a(s.wfsVersion)};if(i.srsName=await this._getSrsName(r,t),i.srsName===r.defaultCrs){const e=n(r.defaultCrs),s=await this.projectGeometry(t,e);return u(s,i)}return u(t,i)}async projectGeometry(t,s){const r=await m([t],new e({wkid:s}));if(r&&r.length>0)return r[0];throw new Error("Unable to create a geometry element.")}_createElement(e,t){o("name",t).isNotMissing();const s=document.implementation.createDocument(void 0,"temp",void 0);return e?s.createElement(`${e}:${t}`):s.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}}_getOutputFormat(e){const t=["text/xml; version=gml/","text/xml; subType=gml/","application/gml+xml; version="],s=["2.1","2.1.2","2.1.1","2.0.0"],r=["3.2","3.2.1","3.1","3.1.1","3.1.0","3.0.1","3.0.0"];let i;switch(e.wfsVersion){case"1.0.0":return i=this._matchOutputFormat(t,s,e),i||"GML2";case"1.1.0":return i=this._matchOutputFormat(t,r,e),i||"text/xml; subtype=gml/3.1.1";default:return i=this._matchOutputFormat(t,r,e),i||"text/gml+xml; version=3.2"}}_matchOutputFormat(e,t,s){for(const r of t)for(const t of e){const e=s.getFeatureOutputFormats.filter((e=>e===`${t}${r}`));if(e&&e.length>0)return e[0]}}async _getSrsName(e,t){o("wfsFeatureType",e).isNotMissing(),o("geometry",t).isNotMissing();const s=t.spatialReference.wkid?t.spatialReference.wkid:await c(t.spatialReference.wkt);if(s===n(e.defaultCrs))return`EPSG:${s}`;for(const t of e.otherCrs)if(s===n(t))return`EPSG:${s}`;return e.defaultCrs}}
package/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * The current version of the Geocortex ArcGIS Extensions API.
3
3
  */
4
- export declare const version = "41.1.0";
4
+ export declare const version = "41.2.0";
package/version.js CHANGED
@@ -1 +1 @@
1
- export const version="41.1.0";
1
+ export const version="41.2.0";