@vertigis/arcgis-extensions 54.2.0 → 54.3.1

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.
Files changed (123) hide show
  1. package/Entity.d.ts +1 -1
  2. package/Hyperlink.d.ts +6 -6
  3. package/Hyperlink.js +1 -1
  4. package/LanguageResources.d.ts +1 -1
  5. package/LanguageResources.js +1 -1
  6. package/PortalUri.d.ts +2 -2
  7. package/data/Attachment.d.ts +9 -9
  8. package/data/Feature.js +1 -1
  9. package/data/RelationshipBase.d.ts +3 -3
  10. package/data/Schema.js +1 -1
  11. package/data/_Relationship.d.ts +4 -4
  12. package/data/_Relationship.js +1 -1
  13. package/data/support/_lpkxConverter.js +1 -1
  14. package/data/support/lpkxInterfaces.d.ts +8 -0
  15. package/declarations/arcgis-js-api-extensions/index.d.ts +7 -7
  16. package/docs/html/assets/search.js +1 -1
  17. package/docs/html/classes/PortalUri.PortalUri.html +4 -4
  18. package/docs/html/classes/data_RelationshipBase.RelationshipBase.html +2 -2
  19. package/docs/html/classes/support_Cancellable.Cancellation.html +2 -2
  20. package/docs/html/classes/tasks_identify_ArcGISSublayerIdentifyProvider.ArcGISSublayerIdentifyProvider.html +2 -2
  21. package/docs/html/classes/tasks_identify_ArcGISSublayerQueryIdentifyProvider.ArcGISSublayerQueryIdentifyProvider.html +2 -2
  22. package/docs/html/classes/tasks_identify_BuildingComponentSublayerClientSideIdentifyProvider.BuildingComponentSublayerClientSideIdentifyProvider.html +2 -2
  23. package/docs/html/classes/tasks_identify_BuildingComponentSublayerHitTestIdentifyProvider.BuildingComponentSublayerHitTestIdentifyProvider.html +2 -2
  24. package/docs/html/classes/tasks_identify_CSVLayer3DHitTestIdentifyProvider.CSVLayer3DHitTestIdentifyProvider.html +2 -2
  25. package/docs/html/classes/tasks_identify_CSVLayerClientSideQueryIdentifyProvider.CSVLayerClientSideQueryIdentifyProvider.html +2 -2
  26. package/docs/html/classes/tasks_identify_ClientSideIdentifyProvider.ClientSideIdentifyProvider.html +2 -2
  27. package/docs/html/classes/tasks_identify_FeatureLayer3DHitTestIdentifyProvider.FeatureLayer3DHitTestIdentifyProvider.html +2 -2
  28. package/docs/html/classes/tasks_identify_FeatureLayerClientSideIdentifyProvider.FeatureLayerClientSideIdentifyProvider.html +2 -2
  29. package/docs/html/classes/tasks_identify_FeatureLayerQueryIdentifyProvider.FeatureLayerQueryIdentifyProvider.html +2 -2
  30. package/docs/html/classes/tasks_identify_GeoJSONLayer3DHitTestIdentifyProvider.GeoJSONLayer3DHitTestIdentifyProvider.html +2 -2
  31. package/docs/html/classes/tasks_identify_GeoJSONLayerClientSideQueryIdentifyProvider.GeoJSONLayerClientSideQueryIdentifyProvider.html +2 -2
  32. package/docs/html/classes/tasks_identify_GeoRSSLayerIdentifyProvider.GeoRSSLayerIdentifyProvider.html +2 -2
  33. package/docs/html/classes/tasks_identify_GraphicsLayerQueryIdentifyProvider.GraphicsLayerQueryIdentifyProvider.html +2 -2
  34. package/docs/html/classes/tasks_identify_HitTestIdentifyProvider.HitTestIdentifyProvider.html +2 -2
  35. package/docs/html/classes/tasks_identify_IdentifyProviderBase.IdentifyProviderBase.html +2 -2
  36. package/docs/html/classes/tasks_identify_ImageryLayerIdentifyProvider.ImageryLayerIdentifyProvider.html +2 -2
  37. package/docs/html/classes/tasks_identify_KMLLayerQueryIdentifyProvider.KMLLayerQueryIdentifyProvider.html +2 -2
  38. package/docs/html/classes/tasks_identify_MapNotesSublayerQueryIdentifyProvider.MapNotesSublayerQueryIdentifyProvider.html +2 -2
  39. package/docs/html/classes/tasks_identify_PointCloudLayerHitTestIdentifyProvider.PointCloudLayerHitTestIdentifyProvider.html +2 -2
  40. package/docs/html/classes/tasks_identify_RouteLayerQueryIdentifyProvider.RouteLayerQueryIdentifyProvider.html +2 -2
  41. package/docs/html/classes/tasks_identify_SceneLayerClientSideIdentifyProvider.SceneLayerClientSideIdentifyProvider.html +2 -2
  42. package/docs/html/classes/tasks_identify_SceneLayerHitTestIdentifyProvider.SceneLayerHitTestIdentifyProvider.html +2 -2
  43. package/docs/html/classes/tasks_identify_SceneLayerQueryIdentifyProvider.SceneLayerQueryIdentifyProvider.html +2 -2
  44. package/docs/html/classes/tasks_identify_StreamLayerClientSideQueryIdentifyProvider.StreamLayerClientSideQueryIdentifyProvider.html +2 -2
  45. package/docs/html/classes/tasks_identify_SubtypeSublayerClientSideIdentifyProvider.SubtypeSublayerClientSideIdentifyProvider.html +2 -2
  46. package/docs/html/classes/tasks_identify_WFSLayerClientSideIdentifyProvider.WFSLayerClientSideIdentifyProvider.html +2 -2
  47. package/docs/html/classes/tasks_identify_WFSLayerQueryIdentifyProvider.WFSLayerQueryIdentifyProvider.html +2 -2
  48. package/docs/html/classes/tasks_identify_WMSLayerFeatureInfoIdentifyProvider.WMSLayerFeatureInfoIdentifyProvider.html +2 -2
  49. package/docs/html/classes/tasks_identify_WMSSublayerIdentifyProvider.WMSSublayerIdentifyProvider.html +2 -2
  50. package/docs/html/classes/tasks_query_ArcGISRelationship.ArcGISRelationship.html +2 -2
  51. package/docs/html/classes/tasks_query_QueryBasedRelationship.QueryBasedRelationship.html +2 -2
  52. package/docs/html/classes/tasks_search_ArcGISGeocoderSearchProvider.ArcGISGeocoderSearchProvider.html +3 -3
  53. package/docs/html/classes/tasks_search_GeocoderSearchProvider.GeocoderSearchProvider.html +3 -3
  54. package/docs/html/classes/utilities_CaseInsensitiveObservableMap.CaseInsensitiveObservableMap.html +2 -2
  55. package/docs/html/functions/data__Relationship.fromEsriApiCardinality.html +1 -1
  56. package/docs/html/functions/data__Relationship.toEsriApiCardinality.html +1 -1
  57. package/docs/html/functions/support_InitializableBase.initializeCollection.html +1 -1
  58. package/docs/html/functions/support_Serializable.filterJSONProperties.html +1 -1
  59. package/docs/html/interfaces/data_Attachment.AttachmentInfo.html +8 -8
  60. package/docs/html/interfaces/data__Relationship.Relationship-1.html +5 -5
  61. package/docs/html/interfaces/data_support_lpkxInterfaces.LyrxLayerDefinition.html +7 -4
  62. package/docs/html/interfaces/support_InitializableBase.InitializeWarningEvent.html +3 -3
  63. package/docs/html/types/support_Serializable.SerializableClass.html +1 -1
  64. package/docs/html/variables/version.version.html +1 -1
  65. package/layer-preset/LayerPreset.d.ts +7 -7
  66. package/layer-preset/LayerPreset.js +1 -1
  67. package/locale/language.d.ts +4 -4
  68. package/locale/language.js +1 -1
  69. package/mapping/Bookmark.d.ts +3 -3
  70. package/mapping/support/featureService.js +1 -1
  71. package/menus/Menu.d.ts +1 -1
  72. package/menus/Menu.js +1 -1
  73. package/menus/MenuItem.d.ts +12 -12
  74. package/menus/MenuItem.js +1 -1
  75. package/package.json +1 -1
  76. package/support/Cancellable.d.ts +2 -2
  77. package/support/InitializableBase.d.ts +1 -1
  78. package/support/InitializableBase.js +1 -1
  79. package/support/Serializable.d.ts +3 -2
  80. package/support/Serializable.js +1 -1
  81. package/support/_ArcGISRelationshipCollection.js +1 -1
  82. package/support/_featureEdit.js +1 -1
  83. package/support/_graphicsQuery.js +1 -1
  84. package/support/_query.js +1 -1
  85. package/tasks/identify/ArcGISSublayerQueryIdentifyProvider.js +1 -1
  86. package/tasks/identify/CSVLayerClientSideQueryIdentifyProvider.js +1 -1
  87. package/tasks/identify/ClientSideIdentifyProvider.d.ts +1 -1
  88. package/tasks/identify/ClientSideIdentifyProvider.js +1 -1
  89. package/tasks/identify/FeatureLayerClientSideIdentifyProvider.js +1 -1
  90. package/tasks/identify/FeatureLayerQueryIdentifyProvider.js +1 -1
  91. package/tasks/identify/GeoJSONLayerClientSideQueryIdentifyProvider.js +1 -1
  92. package/tasks/identify/HitTestIdentifyProvider.d.ts +1 -1
  93. package/tasks/identify/HitTestIdentifyProvider.js +1 -1
  94. package/tasks/identify/IdentifyProviderBase.d.ts +1 -1
  95. package/tasks/identify/IdentifyService.js +1 -1
  96. package/tasks/identify/ImageryLayerIdentifyProvider.js +1 -1
  97. package/tasks/identify/SubtypeSublayerQueryIdentifyProvider.js +1 -1
  98. package/tasks/identify/WFSLayerQueryIdentifyProvider.js +1 -1
  99. package/tasks/identify/WMSLayerFeatureInfoIdentifyProvider.js +1 -1
  100. package/tasks/identify/WMSSublayerIdentifyProvider.js +1 -1
  101. package/tasks/query/ArcGISRelationship.js +1 -1
  102. package/tasks/query/ArcGISSublayerQueryProvider.js +1 -1
  103. package/tasks/query/CSVLayerClientSideQueryProvider.js +1 -1
  104. package/tasks/query/ClientSideQueryProvider.js +1 -1
  105. package/tasks/query/FeatureLayerQueryProvider.js +1 -1
  106. package/tasks/query/GeoJSONLayerClientSideQueryProvider.js +1 -1
  107. package/tasks/query/SceneLayerQueryProvider.js +1 -1
  108. package/tasks/query/SubtypeSublayerQueryProvider.js +1 -1
  109. package/tasks/query/WFSLayerQueryProvider.js +1 -1
  110. package/tasks/search/ArcGISGeocoderSearchProvider.d.ts +2 -1
  111. package/tasks/search/ArcGISGeocoderSearchProvider.js +1 -1
  112. package/tasks/search/GeocoderSearchProvider.d.ts +4 -3
  113. package/tasks/search/GeocoderSearchProvider.js +1 -1
  114. package/tasks/search/SearchProviderBase.js +1 -1
  115. package/tasks/search/SearchService.js +1 -1
  116. package/tasks/search/_utilities.js +1 -1
  117. package/utilities/CaseInsensitiveObservableMap.d.ts +2 -2
  118. package/utilities/CaseInsensitiveObservableMap.js +1 -1
  119. package/utilities/arcade.js +1 -1
  120. package/utilities/uri.d.ts +1 -1
  121. package/utilities/uri.js +1 -1
  122. package/version.d.ts +1 -1
  123. package/version.js +1 -1
@@ -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=>{if(null!=e.attributes){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;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
+ 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: FeatureSource[], searchText: string, options: SearchOptions): AsyncIterable<Feature>;
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[o]=r,{cancelToken:c,currentScale:n,initialSearchArea:u,outSpatialReference:l,maxResults:d}=i??{},f={cancelToken:c,searchPoint:n&&u?.extent?.center,searchArea:!n&&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
+ 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: FeatureSource[], searchText: string, options: SearchOptions): AsyncIterable<Feature>;
19
+ protected _search(sources: Geocoder[], searchText: string, options: SearchOptions): AsyncIterable<Feature>;
19
20
  /**
20
21
  * @inheritDoc
21
22
  */
22
- protected _count(sources: FeatureSource[], searchText: string, options: SearchOptions): Promise<CountResult[]>;
23
+ protected _count(sources: Geocoder[], searchText: string, options: SearchOptions): Promise<CountResult[]>;
23
24
  /**
24
25
  * @inheritDoc
25
26
  */
26
- protected _suggest(sources: FeatureSource[], searchText: string, options: SearchOptions): Promise<SearchSuggestion[]>;
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[n]=e,{cancelToken:o,currentScale:i,initialSearchArea:u,outSpatialReference:l,maxResults:S}=s??{},m={cancelToken:o,searchPoint:i&&u?.extent?.center,searchArea:!i&&u,outFields:n.featureSettings.outFields,outSpatialReference:l,maxResults:S};if(!r)return;let f=0,h=c;for await(const e of n.geocode(r,m)){const r=e.attributes.get(t);r===f?(e.attributes.set(t,f-h),e.attributes.set(a,f-h),h+=c):(f=r,h=c),yield e}}async _count(e,t,a){const[r]=e,{cancelToken:c,currentScale:s,initialSearchArea:n,maxResults:o}=a??{},i={cancelToken:c,searchPoint:s&&n?.extent?.center,searchArea:!s&&n,maxResults:o};if(t)return[await r.count(t,i)]}async _suggest(e,t,a){const[r]=e,{cancelToken:s,currentScale:n,initialSearchArea:o,outSpatialReference:i,maxSuggestions:u}=a??{},l={cancelToken:s,searchPoint:n&&o?.extent?.center,searchArea:!n&&o,outFields:["*"],outSpatialReference:i,maxResults:u},S=await r.suggest(t,l);let m=100;return S.map((e=>(m-=c,{featureSource:r,suggestion:e,score:m})))}}
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.");if(t)return await i.parallelEach(a,(r=>r.initialize())),this._count(a,t,o)}}
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.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)}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
+ 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,m){const u=Array.from(o.attributes.keys()).find((t=>a(t,m.name))),f=o.attributes.get(u);if(null==f)return"";if(o.schema.subtypeField){if(t(o.subtype?.domains?.[u])||t(m.domain))return o.presentableAttributes.get(u)}else if(t(o.type?.domains?.[u]))return o.presentableAttributes.get(u);switch(m.type){case"integer":case"small-integer":case"big-integer":case"double":case"single":case"oid":return[o.presentableAttributes.get(u),o.format(`{${u}:#.####################}`),o.format(`{${u}:#,#.####################}`),i(e.ROUND_TRIP,f)].join(n);case"date":case"timestamp-offset":return[o.presentableAttributes.get(u),o.format(`{${u}:${r.FULL}}`),o.format(`{${u}:${r.DATE_SHORT}}`)].join(n);case"date-only":return[o.presentableAttributes.get(u),o.format(`{${u}:${r.DATE_LONG}}`),o.format(`{${u}:${r.DATE_SHORT}}`)].join(n);case"time-only":return[o.presentableAttributes.get(u),o.format(`${u}:${s.TIME_SHORT}`),o.format(`${u}:${s.TIME_LONG}`)].join(n);default:return o.presentableAttributes.get(u)}}
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?: V): this;
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?.toLocaleLowerCase())}get(e){return super.get(e?.toLocaleLowerCase())}set(e,r){return this._originalKeys.set(e?.toLocaleLowerCase(),e),super.set(e?.toLocaleLowerCase(),r)}has(e){return 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()}}
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()}}
@@ -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:f,emitErrorOnMissingVariables:u=!0}=s;a("$map and $layer parameters are not supported in synchronous arcade",s).satisfies((()=>!o&&!n));const l=r.getViewInfo({spatialReference:f}),m=r.createExecContext(p?.toGraphic(),l);if(c)for(const e of Object.keys(c))m.vars[e]=c[e];const y=i(t,f);if(r.hasVariable(y,"$feature"))if(u)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:f,emitErrorOnMissingVariables:u=!0}=s,l={...i(t,f)},m=["$datastore","$map","$layer"].filter((e=>r.hasVariable(l,e)));await r.loadScriptDependencies(l,!0,m);const y=r.getViewInfo({spatialReference:f}),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"))if(u)a("params.feature",p).isNotMissing();else if(!p)return;if(m.includes("$map")){if(u)a("params.map",o).isNotMissing();else if(!o)return;d.vars.$map=r.convertMapToFeatureSetCollection({map:o,spatialReference:f})}if(m.includes("$layer")){if(u)a("params.layer",n).isNotMissing();else if(!n)return;d.vars.$layer=r.convertFeatureLayerToFeatureSet({layer:n,spatialReference:f})}if(m.includes("$datastore")){if(u)a("params.layer",n).isNotMissing();else if(!n)return;d.vars.$datastore=r.convertServiceUrlToWorkspace({url:n.url,spatialReference:f})}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}
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}
@@ -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(){const t=Array.from(this.queryValues).filter((([t])=>"string"==typeof t)).map((([t,e])=>`${encodeURIComponent(`${t}`)}=${encodeURIComponent(e)}`)),e=Array.from(this.queryValues).filter((([t])=>"number"==typeof t)).sort((([t],[e])=>t-e)).map((([t,e])=>`${encodeURIComponent(e)}`));return[].concat(t,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);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()}
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
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * The current version of the Geocortex ArcGIS Extensions API.
3
3
  */
4
- export declare const version = "54.2.0";
4
+ export declare const version = "54.3.1";
package/version.js CHANGED
@@ -1 +1 @@
1
- export const version="54.2.0";
1
+ export const version="54.3.1";