@vertigis/arcgis-extensions 34.3.0 → 34.4.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 (60) hide show
  1. package/declarations/arcgis-js-api-extensions/index.d.ts +4 -0
  2. package/docs/html/assets/js/search.js +1 -1
  3. package/docs/html/classes/tasks_identify_imagerylayeridentifyprovider.imagerylayeridentifyprovider.html +3 -3
  4. package/docs/html/enums/support_esri.wellknownbasemap.html +21 -21
  5. package/docs/html/interfaces/portal_layerdefinition.fieldoverride.html +3 -3
  6. package/docs/html/interfaces/portal_layerdefinition.layerdefinition-1.html +48 -48
  7. package/docs/html/interfaces/portal_layerdefinition.layerdefinitiondefaults.html +8 -8
  8. package/docs/html/interfaces/portal_layerdefinition.layertimeinfo.html +9 -9
  9. package/docs/html/interfaces/portal_layerdefinition.orderbyclause.html +3 -3
  10. package/docs/html/interfaces/portal_layerdefinition.timeinfoexportoptions.html +4 -4
  11. package/docs/html/interfaces/portal_popupinfo.orderbyfields.html +2 -2
  12. package/docs/html/interfaces/portal_popupinfo.popupelement.html +5 -5
  13. package/docs/html/interfaces/portal_popupinfo.popupinfo-1.html +8 -8
  14. package/docs/html/interfaces/portal_popupinfo.relatedrecordsinfo.html +2 -2
  15. package/docs/html/interfaces/portal_webmap.webmap-1.html +16 -16
  16. package/docs/html/interfaces/portal_widgets.floorfilter.html +20 -8
  17. package/docs/html/interfaces/portal_widgets.range.html +16 -4
  18. package/docs/html/interfaces/portal_widgets.timeslider.html +18 -6
  19. package/docs/html/interfaces/portal_widgets.widgets.html +16 -4
  20. package/docs/html/interfaces/support__restapijson.restapimapservicetimeinfo.html +341 -0
  21. package/docs/html/interfaces/support__restapijson.restapiservicetimeinfo.html +242 -0
  22. package/docs/html/interfaces/support_esri.accessorlike.html +4 -4
  23. package/docs/html/interfaces/support_esri.changeevent.html +4 -4
  24. package/docs/html/interfaces/support_esri.layerwithsublayers.html +1 -1
  25. package/docs/html/interfaces/support_esri.pointcloudlayercachedstatistics.html +3 -3
  26. package/docs/html/interfaces/support_esri.pointcloudlayercachedstatisticsfrequentvalues.html +2 -2
  27. package/docs/html/interfaces/support_esri.pointcloudlayercachedstatisticshistogram.html +3 -3
  28. package/docs/html/interfaces/support_esri.pointcloudlayercachedstatisticslabel.html +2 -2
  29. package/docs/html/interfaces/support_esri.pointcloudlayercachedstatisticslabels.html +1 -1
  30. package/docs/html/interfaces/support_esri.pointcloudlayercachedstatisticsstats.html +9 -9
  31. package/docs/html/interfaces/support_esri.sublayerlike.html +14 -14
  32. package/docs/html/interfaces/utilities__layers.timeawarelayer.html +354 -0
  33. package/docs/html/modules/portal_layerdefinition.html +2 -2
  34. package/docs/html/modules/portal_layerdefinition.layerdefinition.html +2 -2
  35. package/docs/html/modules/portal_layerdefinition.layerdefinitioncapabilities.html +6 -6
  36. package/docs/html/modules/portal_popupinfo.html +1 -1
  37. package/docs/html/modules/portal_popupinfo.popupinfo.html +1 -1
  38. package/docs/html/modules/portal_webmap.webmap.html +1 -1
  39. package/docs/html/modules/portal_widgets.html +172 -6
  40. package/docs/html/modules/support__query.html +58 -0
  41. package/docs/html/modules/support__restapijson.html +20 -0
  42. package/docs/html/modules/support_esri.html +73 -31
  43. package/docs/html/modules/utilities__layers.html +149 -35
  44. package/docs/html/modules/version.html +1 -1
  45. package/package.json +1 -1
  46. package/portal/LayerDefinition.js +1 -1
  47. package/portal/PopupInfo.js +1 -1
  48. package/portal/WebMap.d.ts +1 -1
  49. package/portal/WebMap.js +1 -1
  50. package/portal/Widgets.d.ts +35 -2
  51. package/portal/Widgets.js +1 -1
  52. package/support/_query.d.ts +12 -1
  53. package/support/_query.js +1 -1
  54. package/support/_restApiJson.d.ts +38 -1
  55. package/support/esri.d.ts +3 -0
  56. package/tasks/identify/ImageryLayerIdentifyProvider.js +1 -1
  57. package/utilities/_layers.d.ts +46 -0
  58. package/utilities/_layers.js +1 -1
  59. package/version.d.ts +1 -1
  60. package/version.js +1 -1
@@ -1,3 +1,4 @@
1
+ import type { TimeIntervalUnits, WebMapWidgetsObject } from "../support/esri.js";
1
2
  /**
2
3
  * The widgets object contains widgets that should be exposed to the user.
3
4
  *
@@ -103,7 +104,7 @@ export interface TimeSlider {
103
104
  /**
104
105
  * The units used to define the interval. See {@link TimeUnitsEnum}.
105
106
  */
106
- units?: TimeUnitsEnum;
107
+ units?: TimeUnits;
107
108
  };
108
109
  };
109
110
  }
@@ -132,4 +133,36 @@ export interface Range {
132
133
  /**
133
134
  * Time units enum.
134
135
  */
135
- export declare type TimeUnitsEnum = "esriTimeUnitsCenturies" | "esriTimeUnitsDays" | "esriTimeUnitsDecades" | "esriTimeUnitsHours" | "esriTimeUnitsMilliseconds" | "esriTimeUnitsMinutes" | "esriTimeUnitsMonths" | "esriTimeUnitsSeconds" | "esriTimeUnitsWeeks" | "esriTimeUnitsYears";
136
+ export declare type TimeUnits = "esriTimeUnitsCenturies" | "esriTimeUnitsDays" | "esriTimeUnitsDecades" | "esriTimeUnitsHours" | "esriTimeUnitsMilliseconds" | "esriTimeUnitsMinutes" | "esriTimeUnitsMonths" | "esriTimeUnitsSeconds" | "esriTimeUnitsWeeks" | "esriTimeUnitsYears";
137
+ /**
138
+ * Applies Portal WebMapWidgets config to an ESRI JS API WebMapWidgets object.
139
+ *
140
+ * @param portalWidgetsConfig The portal webmap widgets config.
141
+ * @param esriWidgetsObject The ESRI JS API WebMapWidgets object. If this
142
+ * property is undefined or not included, a new instance will be created and
143
+ * returned.
144
+ */
145
+ export declare function applyToEsriApiWidgetsObject(portalWidgetsConfig: Widgets, esriWidgetsObject?: WebMapWidgetsObject): WebMapWidgetsObject;
146
+ /**
147
+ * Applies Esri JS API WebMapWidgets object properties to a Portal WebMapWidgets
148
+ * oject.
149
+ *
150
+ * @param esriWidgetsObject The ESRI JS API WebMapWidgets object.
151
+ * @param portalWidgetsConfig The Portal webmap widgets config. If this property
152
+ * is undefined or not included, a new isntance will be created and returned.
153
+ */
154
+ export declare function fromEsriApiWidgetsObject(esriWidgetsObject: WebMapWidgetsObject, portalWidgetsConfig?: Widgets): Widgets;
155
+ /**
156
+ * Returns the ESRI 4.x JS API version of TimeInterval units, given ESRI Webmap
157
+ * Spec TimeInterval units.
158
+ *
159
+ * @param unit The ESRI Webmap Spec TimeInterval units.
160
+ */
161
+ export declare function toEsriApiTimeInterval(unit: TimeUnits): TimeIntervalUnits;
162
+ /**
163
+ * Returns the ESRI Webmap Spec TimeInterval units, given ESRI 4.x JS API
164
+ * version of TimeInterval units.
165
+ *
166
+ * @param unit The ESRI 4.x JS API TimeInterval units.
167
+ */
168
+ export declare function fromEsriApiTimeInterval(unit: TimeIntervalUnits): TimeUnits;
package/portal/Widgets.js CHANGED
@@ -1 +1 @@
1
- export{};
1
+ import TimeExtent from"@arcgis/core/TimeExtent";import TimeInterval from"@arcgis/core/TimeInterval";export function applyToEsriApiWidgetsObject(e,i){var t;const r=null!=i?i:{},n=null===(t=null==e?void 0:e.timeSlider)||void 0===t?void 0:t.properties;if(n){const{endTime:e,startTime:i,numberOfStops:t,thumbCount:s,timeStopInterval:o}=n;r.timeSlider={currentTimeExtent:new TimeExtent({start:i,end:e}),numStops:t,numThumbs:s,stopInterval:new TimeInterval({unit:(null==o?void 0:o.units)?toEsriApiTimeInterval(o.units):void 0,value:null==o?void 0:o.interval})}}return r}export function fromEsriApiWidgetsObject(e,i){var t,r,n;const s=null!=i?i:{},o=null==e?void 0:e.timeSlider;if(o){(null===(t=s.timeSlider)||void 0===t?void 0:t.properties)||(s.timeSlider={properties:{}});const e=s.timeSlider.properties,{stopInterval:i,numThumbs:u,numStops:m,currentTimeExtent:a}=o;e.thumbCount=u,e.numberOfStops=m,e.startTime=null===(r=null==a?void 0:a.start)||void 0===r?void 0:r.valueOf(),e.endTime=null===(n=null==a?void 0:a.end)||void 0===n?void 0:n.valueOf(),i&&(e.timeStopInterval||(e.timeStopInterval={}),e.timeStopInterval.units=i.unit?fromEsriApiTimeInterval(i.unit):void 0,e.timeStopInterval.interval=i.value)}return s}export function toEsriApiTimeInterval(e){switch(e){case"esriTimeUnitsCenturies":return"centuries";case"esriTimeUnitsDays":return"days";case"esriTimeUnitsDecades":return"decades";case"esriTimeUnitsHours":return"hours";case"esriTimeUnitsMilliseconds":return"milliseconds";case"esriTimeUnitsMinutes":return"minutes";case"esriTimeUnitsMonths":return"months";case"esriTimeUnitsSeconds":return"seconds";case"esriTimeUnitsWeeks":return"weeks";case"esriTimeUnitsYears":return"years";default:throw new Error("Unknown time interval unit")}}export function fromEsriApiTimeInterval(e){switch(e){case"centuries":return"esriTimeUnitsCenturies";case"days":return"esriTimeUnitsDays";case"decades":return"esriTimeUnitsDecades";case"hours":return"esriTimeUnitsHours";case"milliseconds":return"esriTimeUnitsMilliseconds";case"minutes":return"esriTimeUnitsMinutes";case"months":return"esriTimeUnitsMonths";case"seconds":return"esriTimeUnitsSeconds";case"weeks":return"esriTimeUnitsWeeks";case"years":return"esriTimeUnitsYears";default:throw new Error("Unknown time interval unit")}}
@@ -1 +1,12 @@
1
- export {};
1
+ import type ImageIdentifyParameters from "@arcgis/core/rest/support/ImageIdentifyParameters";
2
+ import type Query from "@arcgis/core/rest/support/Query";
3
+ import type { FeatureSource } from "../data/FeatureSource.js";
4
+ /**
5
+ * Takes a Query instance and updates its timeExtent property to be the
6
+ * intersection of the FeatureSource.layer.timeExtent and the associated
7
+ * MapView.timeExtent (if available).
8
+ *
9
+ * @param query The query instance.
10
+ * @param featureSource The source to be queried.
11
+ */
12
+ export declare function constrainQueryTimeExtentToView(query: Query | ImageIdentifyParameters, featureSource: FeatureSource): void;
package/support/_query.js CHANGED
@@ -1 +1 @@
1
- import{toFeature}from"../data/Feature.js";import{checkArg}from"../utilities/checkArg.js";import{cancelifyWithAbortSignal}from"./Cancellable.js";export function escape(e){return e.replace(/([%'])/g,"$1$1")}export function concatenateWhereClauses(e,n){return(null==e?void 0:e.length)>0&&(null==n?void 0:n.length)>0?`(${e}) and (${n})`:null!=e?e:n}export function executeQuery(e,n,t,r){return checkArg("query",e).isNotMissing(),checkArg("source",n).isNotMissing(),checkArg("queryable",t).isNotMissing(),e.where=concatenateWhereClauses(t.definitionExpression,e.where),async function*(){const i=e.num;let s=(await cancelifyWithAbortSignal((async n=>t.queryFeatures(e,{signal:n})),r)).features;i>0&&s.length>i&&(s=s.slice(0,i)),yield*s.map((e=>toFeature(e,{source:n})))}()}export async function executeCount(e,n,t,r){checkArg("query",e).isNotMissing(),checkArg("source",n).isNotMissing(),checkArg("queryable",t).isNotMissing(),e.where=concatenateWhereClauses(t.definitionExpression,e.where);const i=e.num;e.num=void 0;let s=await cancelifyWithAbortSignal((async n=>t.queryFeatureCount(e,{signal:n})),r);return i>0&&s>i&&(s=i),{source:n,count:s}}export async function executeCountByQuery(e,n,t,r){checkArg("query",e).isNotMissing(),checkArg("source",n).isNotMissing(),checkArg("queryable",t).isNotMissing(),e.where=concatenateWhereClauses(t.definitionExpression,e.where);const i=e.num;let s=(await cancelifyWithAbortSignal((async n=>t.queryFeatures(e,{signal:n})),r)).features.length;return i>0&&s>i&&(s=i),{source:n,count:s}}
1
+ import{isLayerExtension,isSublayerExtension}from"../ItemType.js";import{toFeature}from"../data/Feature.js";import{isTimeAwareLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{cancelifyWithAbortSignal}from"./Cancellable.js";export function escape(e){return e.replace(/([%'])/g,"$1$1")}export function concatenateWhereClauses(e,t){return(null==e?void 0:e.length)>0&&(null==t?void 0:t.length)>0?`(${e}) and (${t})`:e||t}export function executeQuery(e,t,i,n){return checkArg("query",e).isNotMissing(),checkArg("source",t).isNotMissing(),checkArg("queryable",i).isNotMissing(),e.where=concatenateWhereClauses(i.definitionExpression,e.where),constrainQueryTimeExtentToView(e,t),async function*(){const r=e.num;let o=(await cancelifyWithAbortSignal((async t=>i.queryFeatures(e,{signal:t})),n)).features;r>0&&o.length>r&&(o=o.slice(0,r)),yield*o.map((e=>toFeature(e,{source:t})))}()}export async function executeCount(e,t,i,n){checkArg("query",e).isNotMissing(),checkArg("source",t).isNotMissing(),checkArg("queryable",i).isNotMissing(),e.where=concatenateWhereClauses(i.definitionExpression,e.where),constrainQueryTimeExtentToView(e,t);const r=e.num;e.num=void 0;let o=await cancelifyWithAbortSignal((async t=>i.queryFeatureCount(e,{signal:t})),n);return r>0&&o>r&&(o=r),{source:t,count:o}}export async function executeCountByQuery(e,t,i,n){checkArg("query",e).isNotMissing(),checkArg("source",t).isNotMissing(),checkArg("queryable",i).isNotMissing(),e.where=concatenateWhereClauses(i.definitionExpression,e.where),constrainQueryTimeExtentToView(e,t);const r=e.num;let o=(await cancelifyWithAbortSignal((async t=>i.queryFeatures(e,{signal:t})),n)).features.length;return r>0&&o>r&&(o=r),{source:t,count:o}}export function constrainQueryTimeExtentToView(e,t){var i,n,r,o,s,a,u;let c;if(isLayerExtension(t)?c=t:isSublayerExtension(t)&&(c=t.layerExtension),!isTimeAwareLayer(null==c?void 0:c.layer))return;const{layer:l,mapExtension:y}=c,m=null===(n=null===(i=null==y?void 0:y._layerViews.find((e=>e.layer===l)))||void 0===i?void 0:i.view)||void 0===n?void 0:n.timeExtent;if(e.timeExtent||(e.timeExtent=null===(r=l.timeExtent)||void 0===r?void 0:r.clone()),l.useViewTime&&m)if(e.timeExtent){const t=[null===(o=e.timeExtent.start)||void 0===o?void 0:o.valueOf(),null===(s=m.start)||void 0===s?void 0:s.valueOf()].filter((e=>!!e)),i=[null===(a=e.timeExtent.end)||void 0===a?void 0:a.valueOf(),null===(u=m.end)||void 0===u?void 0:u.valueOf()].filter((e=>!!e));e.timeExtent.start=t.length?new Date(Math.max(...t)):void 0,e.timeExtent.end=i.length?new Date(Math.min(...i)):void 0}else e.timeExtent=null==m?void 0:m.clone()}
@@ -1 +1,38 @@
1
- export {};
1
+ /**
2
+ * Time Info returned from REST API Services.
3
+ */
4
+ export interface RestApiServiceTimeInfo {
5
+ /**
6
+ * New in 10.1. The name of the attribute used as start time.
7
+ */
8
+ startTimeField: string;
9
+ /**
10
+ * New in 10.1. The name of the attribute used as end time.
11
+ */
12
+ endTimeField: string;
13
+ /**
14
+ * Added at 10.0. The time extent of the service (start/end), represented
15
+ * using "Epoch time": milliseconds since 1970.
16
+ */
17
+ timeExtent: [number, number];
18
+ /**
19
+ * Added at 10.0. The time reference of the service.
20
+ */
21
+ timeReference: unknown;
22
+ }
23
+ /**
24
+ * Time Info returned from REST API MapServices.
25
+ */
26
+ export interface RestApiMapServiceTimeInfo extends RestApiServiceTimeInfo {
27
+ timeExtent: [number, number];
28
+ timeReference: {
29
+ timeZone: string;
30
+ respectsDaylightSaving: boolean;
31
+ };
32
+ timeRelation: "esriTimeRelationOverlaps" | "esriTimeRelationOverlapsStartWithinEnd" | "esriTimeRelationAfterStartOverlapsEnd>";
33
+ defaultTimeIntervalUnits: "esriTimeUnitsCenturies" | "esriTimeUnitsDays" | "esriTimeUnitsDecades" | "esriTimeUnitsHours" | "esriTimeUnitsMilliseconds" | "esriTimeUnitsMinutes" | "esriTimeUnitsMonths" | "esriTimeUnitsSeconds" | "esriTimeUnitsWeeks" | "esriTimeUnitsYears" | "esriTimeUnitsUnknown";
34
+ defaultTimeInterval: unknown;
35
+ defaultTimeWindow: unknown;
36
+ hasLiveData: boolean;
37
+ liveModeOffsetDirection: "pastAndFuture" | "past" | "future";
38
+ }
package/support/esri.d.ts CHANGED
@@ -48,6 +48,9 @@ export declare type LocatorSuggestLocationsParams = __esri.LocatorSuggestLocatio
48
48
  export declare type locatorAddressToLocationsParams = __esri.locatorAddressToLocationsParams;
49
49
  export declare type locatorAddressesToLocationsParams = __esri.locatorAddressesToLocationsParams;
50
50
  export declare type locatorSuggestLocationsParams = __esri.locatorSuggestLocationsParams;
51
+ export declare type TimeIntervalUnits = __esri.TimeIntervalProperties["unit"];
52
+ export declare type WebMapTimeSliderObject = __esri.WebMapTimeSlider;
53
+ export declare type WebMapWidgetsObject = __esri.Widgets;
51
54
  export interface PointCloudLayerCachedStatistics {
52
55
  attribute: string;
53
56
  labels: PointCloudLayerCachedStatisticsLabels;
@@ -1 +1 @@
1
- import Point from"@arcgis/core/geometry/Point";import Polygon from"@arcgis/core/geometry/Polygon";import{project}from"@arcgis/core/rest/geometryService";import{identify as imageIdentify}from"@arcgis/core/rest/imageService";import ImageIdentifyParameters from"@arcgis/core/rest/support/ImageIdentifyParameters";import ProjectParams from"@arcgis/core/rest/support/ProjectParameters";import{Feature,toFeature}from"../../data/Feature.js";import{cancelifyWithAbortSignal}from"../../support/Cancellable.js";import{toArray}from"../../utilities/asyncIterable.js";import{isImageryLayerExtension}from"../../utilities/extensions.js";import{isPoint,isPolygon,isPolyline}from"../../utilities/geometry.js";import{getLogger}from"../../utilities/log.js";import{isNumeric}from"../../utilities/number.js";import{IdentifyProviderBase}from"./IdentifyProviderBase.js";const log=getLogger("ImageryLayerIdentifyProvider");export class ImageryLayerIdentifyProvider extends IdentifyProviderBase{isSupported(e,t,r){return isImageryLayerExtension(e)}async*_identify(e,t,r){const i=e;let a=t;if(t&&!isPoint(t)&&!isPolygon(t))if(isPolyline(t)){log.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 e=t.paths[0][Math.floor(t.paths[0].length/2)];a=new Point({spatialReference:t.spatialReference,x:e[0],y:e[1]})}else a=Polygon.fromExtent(t.extent);const o=await this._executeIdentifyTask(i,a,r);yield*this._getResultFeatures(o,i,r)}async _count(e,t,r){const i=e;r.returnGeometry=!1;const a=await this._executeIdentifyTask(i,t,r);return{source:e,count:(await toArray(this._getResultFeatures(a,i,r))).length}}async _executeIdentifyTask(e,t,r){const{layer:i}=e,a=new ImageIdentifyParameters({geometry:t,mosaicRule:i.mosaicRule,renderingRule:i.renderingRule,returnCatalogItems:e.includeCatalogItems,returnGeometry:e.includeCatalogItems&&r.returnGeometry});return cancelifyWithAbortSignal((async e=>imageIdentify(i.url,a,{signal:e})),r.cancelToken)}_getPixelData(e,t,r,i){var a,o,s,n,l;const{layer:c}=i;let u=null!==(o=null===(a=r.properties)||void 0===a?void 0:a.Values[e])&&void 0!==o?o:r.value,m=r.value;const g=c.rasterAttributeTableFieldPrefix;isNumeric(u)&&(u=parseFloat(u)),isNumeric(m)&&(m=parseFloat(m)),t.attributes.set(`${g}ServicePixelValue`,m),t.attributes.set(`${g}ServicePixelValue.Raw`,m),t.attributes.set(`${g}ItemPixelValue`,u);const y=null!==(n=null===(s=c.serviceRasterInfo)||void 0===s?void 0:s.attributeTable)&&void 0!==n?n:null===(l=c.rasterInfo)||void 0===l?void 0:l.attributeTable;if(y){const{features:e,fields:r}=y,i=e.find((e=>e.getAttribute("Value")===u));r.forEach((e=>{"Value"!==e.name&&"oid"!==e.type&&t.attributes.set(`${g}${e.name}`,null==i?void 0:i.getAttribute(e.name))}))}}async*_getResultFeatures(e,t,r){if("NoData"===e.value)return;const i=r.outSpatialReference&&r.outSpatialReference.wkid!==t.layer.spatialReference.wkid;if(t.includeCatalogItems&&e.catalogItems){let a=Promise.resolve([]);i&&r.returnGeometry&&(a=this._projectGeometries(t.layer.url,e.catalogItems.features.map((e=>e.geometry)),r.outSpatialReference,r.cancelToken));const o=[],{outFields:s}=t.featureSettings;e.catalogItems.features.forEach(((r,i)=>{const a=toFeature(r,{source:t});if(s&&!s.includes("*"))for(const e of a.attributes.keys())s.includes(e)||a.attributes.delete(e);a.attributes.set("visible",1===e.catalogItemVisibilities[i]),this._getPixelData(i,a,e,t),o.push(a)}));const n=await a;n.length>0&&n.forEach(((e,t)=>o[t].geometry=e)),yield*o}if(!t.includeCatalogItems||!e.catalogItems){const a=new Feature({source:t});a.geometry=i?(await this._projectGeometries(t.layer.url,[e.location],r.outSpatialReference,r.cancelToken))[0]:e.location,this._getPixelData(0,a,e,t),yield a}}_projectGeometries(e,t,r,i){const a=new ProjectParams({geometries:t,outSpatialReference:r});return cancelifyWithAbortSignal((async t=>project(e,a,{signal:t})),i)}}
1
+ import Point from"@arcgis/core/geometry/Point";import Polygon from"@arcgis/core/geometry/Polygon";import{project}from"@arcgis/core/rest/geometryService";import{identify as imageIdentify}from"@arcgis/core/rest/imageService";import ImageIdentifyParameters from"@arcgis/core/rest/support/ImageIdentifyParameters";import ProjectParams from"@arcgis/core/rest/support/ProjectParameters";import{Feature,toFeature}from"../../data/Feature.js";import{cancelifyWithAbortSignal}from"../../support/Cancellable.js";import{constrainQueryTimeExtentToView}from"../../support/_query.js";import{toArray}from"../../utilities/asyncIterable.js";import{isImageryLayerExtension}from"../../utilities/extensions.js";import{isPoint,isPolygon,isPolyline}from"../../utilities/geometry.js";import{getLogger}from"../../utilities/log.js";import{isNumeric}from"../../utilities/number.js";import{IdentifyProviderBase}from"./IdentifyProviderBase.js";const log=getLogger("ImageryLayerIdentifyProvider");export class ImageryLayerIdentifyProvider extends IdentifyProviderBase{isSupported(e,t,r){return isImageryLayerExtension(e)}async*_identify(e,t,r){const i=e;let a=t;if(t&&!isPoint(t)&&!isPolygon(t))if(isPolyline(t)){log.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 e=t.paths[0][Math.floor(t.paths[0].length/2)];a=new Point({spatialReference:t.spatialReference,x:e[0],y:e[1]})}else a=Polygon.fromExtent(t.extent);const o=await this._executeIdentifyTask(i,a,r);yield*this._getResultFeatures(o,i,r)}async _count(e,t,r){const i=e;r.returnGeometry=!1;const a=await this._executeIdentifyTask(i,t,r);return{source:e,count:(await toArray(this._getResultFeatures(a,i,r))).length}}async _executeIdentifyTask(e,t,r){const{layer:i}=e,a=new ImageIdentifyParameters({geometry:t,mosaicRule:i.mosaicRule,renderingRule:i.renderingRule,returnCatalogItems:e.includeCatalogItems,returnGeometry:e.includeCatalogItems&&r.returnGeometry});constrainQueryTimeExtentToView(a,e);return cancelifyWithAbortSignal((async e=>imageIdentify(i.url,a,{signal:e})),r.cancelToken)}_getPixelData(e,t,r,i){var a,o,s,n,l;const{layer:c}=i;let u=null!==(o=null===(a=r.properties)||void 0===a?void 0:a.Values[e])&&void 0!==o?o:r.value,m=r.value;const y=c.rasterAttributeTableFieldPrefix;isNumeric(u)&&(u=parseFloat(u)),isNumeric(m)&&(m=parseFloat(m)),t.attributes.set(`${y}ServicePixelValue`,m),t.attributes.set(`${y}ServicePixelValue.Raw`,m),t.attributes.set(`${y}ItemPixelValue`,u);const g=null!==(n=null===(s=c.serviceRasterInfo)||void 0===s?void 0:s.attributeTable)&&void 0!==n?n:null===(l=c.rasterInfo)||void 0===l?void 0:l.attributeTable;if(g){const{features:e,fields:r}=g,i=e.find((e=>e.getAttribute("Value")===u));r.forEach((e=>{"Value"!==e.name&&"oid"!==e.type&&t.attributes.set(`${y}${e.name}`,null==i?void 0:i.getAttribute(e.name))}))}}async*_getResultFeatures(e,t,r){if("NoData"===e.value)return;const i=r.outSpatialReference&&r.outSpatialReference.wkid!==t.layer.spatialReference.wkid;if(t.includeCatalogItems&&e.catalogItems){let a=Promise.resolve([]);i&&r.returnGeometry&&(a=this._projectGeometries(t.layer.url,e.catalogItems.features.map((e=>e.geometry)),r.outSpatialReference,r.cancelToken));const o=[],{outFields:s}=t.featureSettings;e.catalogItems.features.forEach(((r,i)=>{const a=toFeature(r,{source:t});if(s&&!s.includes("*"))for(const e of a.attributes.keys())s.includes(e)||a.attributes.delete(e);a.attributes.set("visible",1===e.catalogItemVisibilities[i]),this._getPixelData(i,a,e,t),o.push(a)}));const n=await a;n.length>0&&n.forEach(((e,t)=>o[t].geometry=e)),yield*o}if(!t.includeCatalogItems||!e.catalogItems){const a=new Feature({source:t});a.geometry=i?(await this._projectGeometries(t.layer.url,[e.location],r.outSpatialReference,r.cancelToken))[0]:e.location,this._getPixelData(0,a,e,t),yield a}}_projectGeometries(e,t,r,i){const a=new ProjectParams({geometries:t,outSpatialReference:r});return cancelifyWithAbortSignal((async t=>project(e,a,{signal:t})),i)}}
@@ -1,8 +1,11 @@
1
1
  import type Basemap from "@arcgis/core/Basemap";
2
+ import type TimeExtent from "@arcgis/core/TimeExtent";
3
+ import type TimeInterval from "@arcgis/core/TimeInterval";
2
4
  import type BuildingSceneLayer from "@arcgis/core/layers/BuildingSceneLayer";
3
5
  import type CSVLayer from "@arcgis/core/layers/CSVLayer";
4
6
  import type ElevationLayer from "@arcgis/core/layers/ElevationLayer";
5
7
  import type FeatureLayer from "@arcgis/core/layers/FeatureLayer";
8
+ import type GeoJSONLayer from "@arcgis/core/layers/GeoJSONLayer";
6
9
  import type GeoRssLayer from "@arcgis/core/layers/GeoRSSLayer";
7
10
  import type GraphicsLayer from "@arcgis/core/layers/GraphicsLayer";
8
11
  import type GroupLayer from "@arcgis/core/layers/GroupLayer";
@@ -16,6 +19,7 @@ import type OpenStreetMapLayer from "@arcgis/core/layers/OpenStreetMapLayer";
16
19
  import type PointCloudLayer from "@arcgis/core/layers/PointCloudLayer";
17
20
  import type SceneLayer from "@arcgis/core/layers/SceneLayer";
18
21
  import type StreamLayer from "@arcgis/core/layers/StreamLayer";
22
+ import type SubtypeGroupLayer from "@arcgis/core/layers/SubtypeGroupLayer";
19
23
  import type TileLayer from "@arcgis/core/layers/TileLayer";
20
24
  import type VectorTileLayer from "@arcgis/core/layers/VectorTileLayer";
21
25
  import type WMSLayer from "@arcgis/core/layers/WMSLayer";
@@ -25,6 +29,7 @@ import type BuildingComponentSublayer from "@arcgis/core/layers/buildingSublayer
25
29
  import type BuildingGroupSublayer from "@arcgis/core/layers/buildingSublayers/BuildingGroupSublayer";
26
30
  import type KMLSublayer from "@arcgis/core/layers/support/KMLSublayer";
27
31
  import type MapImageSublayer from "@arcgis/core/layers/support/Sublayer";
32
+ import type TimeInfo from "@arcgis/core/layers/support/TimeInfo";
28
33
  import type WMSSublayer from "@arcgis/core/layers/support/WMSSublayer";
29
34
  import type WMTSSublayer from "@arcgis/core/layers/support/WMTSSublayer";
30
35
  import type { GroupLayerExtension } from "../mapping/GroupLayerExtension.js";
@@ -60,6 +65,18 @@ export declare function isLayer(layer: unknown): layer is Layer;
60
65
  * @param layer The layer to check.
61
66
  */
62
67
  export declare function isCSVLayer(layer: unknown): layer is CSVLayer;
68
+ /**
69
+ * Returns true if layer is a GeoJSONLayer.
70
+ *
71
+ * @param layer The layer to check.
72
+ */
73
+ export declare function isGeoJSONLayer(layer: unknown): layer is GeoJSONLayer;
74
+ /**
75
+ * Returns true if layer is a SubtypeGroupLayer.
76
+ *
77
+ * @param layer The layer to check.
78
+ */
79
+ export declare function isSubtypeGroupLayer(layer: unknown): layer is SubtypeGroupLayer;
63
80
  /**
64
81
  * Returns true if layer is a StreamLayer.
65
82
  *
@@ -248,3 +265,32 @@ export declare function isLayerWithLegendEnabledProperty(layer: unknown): layer
248
265
  * @param layerXs The layers to interrogate.
249
266
  */
250
267
  export declare function hasMmapLayer(layerXs: (LayerExtension | GroupLayerExtension)[]): boolean;
268
+ /**
269
+ * A layer that support timeInfo.
270
+ */
271
+ export interface TimeAwareLayer extends Layer {
272
+ /**
273
+ * The layer's time extent.
274
+ */
275
+ timeExtent: TimeExtent;
276
+ /**
277
+ * TimeInfo provides information such as date fields that store start and
278
+ * end time for each feature and the fullTimeExtent for the layer.
279
+ */
280
+ timeInfo: TimeInfo;
281
+ /**
282
+ * A temporary offset of the time data based on a certain TimeInterval.
283
+ */
284
+ timeOffset: TimeInterval;
285
+ /**
286
+ * Determines if the layer will update its temporal data based on the view's
287
+ * timeExtent.
288
+ */
289
+ useViewTime: boolean;
290
+ }
291
+ /**
292
+ * Returns whether an ESRI Layer supports time-aware data.
293
+ *
294
+ * @param esriLayer The esri layer to check.
295
+ */
296
+ export declare function isTimeAwareLayer(esriLayer: unknown): esriLayer is TimeAwareLayer;
@@ -1 +1 @@
1
- import{LayerBase as LayerJson}from"../portal/_LayerBase.js";import{WellKnownBasemap}from"../support/esri.js";import{isGroupLayerExtension}from"./extensions.js";import{isBasemap}from"./mapping.js";export function layersAreEquivalent(e,r){if(e===r)return!0;const a=isLayer(e)?LayerJson.getLayerType(e):e.layerType;if(a!==(isLayer(r)?LayerJson.getLayerType(r):r.layerType))return!1;if("OpenStreetMap"===a)return!0;if("ArcGISFeatureLayer"===a){const a=isFeatureLayer(e)?`${e.url}/${e.layerId}`:e.url,s=isFeatureLayer(r)?`${r.url}/${r.layerId}`:r.url;return e.id===r.id||e.url&&urlsAreEquivalent(a,s)}return e.id===r.id||e.url&&urlsAreEquivalent(e.url,r.url)||(e.styleUrl||r.styleUrl)&&urlsAreEquivalent(e.url||e.styleUrl,r.url||r.styleUrl)||e.key&&e.key===r.key||e.urlTemplate&&urlsAreEquivalent(e.urlTemplate,r.urlTemplate)}export function basemapsAreEquivalent(e,r){var a,s,t,i,l,n,o,c;if(e===r)return!0;if(!e||!r)return!1;let y,p,d,u;return isBasemap(e)?(y=e.baseLayers.toArray(),d=e.referenceLayers.toArray()):(y=null!==(s=null===(a=e.baseMapLayers)||void 0===a?void 0:a.filter((e=>!e.isReference)))&&void 0!==s?s:[],d=null!==(i=null===(t=e.baseMapLayers)||void 0===t?void 0:t.filter((e=>e.isReference)))&&void 0!==i?i:[]),isBasemap(r)?(p=r.baseLayers.toArray(),u=r.referenceLayers.toArray()):(p=null!==(n=null===(l=r.baseMapLayers)||void 0===l?void 0:l.filter((e=>!e.isReference)))&&void 0!==n?n:[],u=null!==(c=null===(o=r.baseMapLayers)||void 0===o?void 0:o.filter((e=>e.isReference)))&&void 0!==c?c:[]),y.length===p.length&&y.every(((e,r)=>layersAreEquivalent(e,p[r])))&&d.length===u.length&&d.every(((e,r)=>layersAreEquivalent(e,u[r])))}export const standardBasemaps={[WellKnownBasemap.DARK_GRAY]:{baseMapLayers:[{id:"dark-gray-base-layer",title:"World Dark Gray Base",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Base/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{isReference:!0,id:"dark-gray-reference-layer",title:"World Dark Gray Reference",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Reference/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.DARK_GRAY_VECTOR]:{baseMapLayers:[{id:"dark-gray-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Dark Gray Base",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/5e9b3685f4c24d8781073dd928ebda50/resources/styles/root.json"},{id:"dark-gray-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Dark Gray Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/747cb7a5329c478cbe6981076cc879c5/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.GRAY]:{baseMapLayers:[{id:"gray-base-layer",title:"World Light Gray Base",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{isReference:!0,id:"gray-reference-layer",title:"World Light Gray Reference",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Reference/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.GRAY_VECTOR]:{baseMapLayers:[{id:"gray-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Light Gray Base",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/291da5eab3a0412593b66d384379f89f/resources/styles/root.json"},{id:"gray-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Light Gray Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/1768e8369a214dfab4e2167d5c5f2454/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.HYBRID]:{baseMapLayers:[{id:"hybrid-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",title:"World Imagery"},{id:"hybrid-reference-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer",title:"World Boundaries and Places",isReference:!0}]},[WellKnownBasemap.HYBRID_VECTOR]:{baseMapLayers:[{id:"hybrid-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",title:"World Imagery"},{id:"hybrid-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Hybrid Reference Layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/30d6b8271e1849cd9c3042060001f425/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.NATIONAL_GEOGRAPHIC]:{baseMapLayers:[{id:"national-geographic-base-layer",title:"NatGeo World Map",url:"https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.OCEANS]:{baseMapLayers:[{id:"oceans-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer",title:"World Ocean Base"},{id:"oceans-reference-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,title:"World Ocean Reference",url:"https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Reference/MapServer",isReference:!0}]},[WellKnownBasemap.OCEANS_VECTOR]:{baseMapLayers:[{id:"oceans-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer",title:"World Ocean Base"},{id:"oceans-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"World Ocean Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/89860a5baf424f3ea0c655115faababe/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.OPEN_STREET_MAP]:{baseMapLayers:[{id:"osm-base-layer",layerType:"OpenStreetMap",showLegend:!1,title:"OpenStreetMap"}]},[WellKnownBasemap.OPEN_STREET_MAP_VECTOR]:{baseMapLayers:[{id:"osm-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"OpenStreetMap",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/3e1a00aeae81496587988075fe529f71/resources/styles/root.json"}]},[WellKnownBasemap.SATELLITE]:{baseMapLayers:[{id:"satellite-base-layer",title:"World Imagery",url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.STREETS]:{baseMapLayers:[{id:"streets-base-layer",title:"World Street Map",url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.STREETS_NAVIGATION_VECTOR]:{baseMapLayers:[{id:"streets-navigation-vector-base-layer",title:"World Navigation Map",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/63c47b7177f946b49902c24129b87252/resources/styles/root.json"}]},[WellKnownBasemap.STREETS_NIGHT_VECTOR]:{baseMapLayers:[{id:"streets-night-vector-base-layer",title:"World Street Map (Night)",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/86f556a2d1fd468181855a35e344567f/resources/styles/root.json"}]},[WellKnownBasemap.STREETS_RELIEF_VECTOR]:{baseMapLayers:[{id:"world-hillshade-layer",title:"World Hillshade",url:"https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{id:"streets-relief-vector-base-layer",title:"World Streets Relief",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/b266e6d17fc345b498345613930fbd76/resources/styles/root.json"}]},[WellKnownBasemap.STREETS_VECTOR]:{baseMapLayers:[{id:"streets-vector-base-layer",title:"World Street Map",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/de26a3cf4cc9451298ea173c4b324736/resources/styles/root.json"}]},[WellKnownBasemap.TERRAIN]:{baseMapLayers:[{id:"terrain-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer",title:"World Terrain Base"},{id:"terrain-reference-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Reference_Overlay/MapServer",title:"World Terrain Reference",isReference:!0}]},[WellKnownBasemap.TERRAIN_VECTOR]:{baseMapLayers:[{id:"world-hillshade",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",title:"World Hillshade"},{id:"terrain-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"World Terrain Base",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/33064a20de0c48d2bb61efa8faca93a8/resources/styles/root.json"},{id:"terrain-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"World Terrain Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/14fbc125ccc9488888b014db09f35f67/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.TOPO]:{baseMapLayers:[{id:"topo-base-layer",title:"World Topo Map",url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.TOPO_VECTOR]:{baseMapLayers:[{id:"world-hillshade-layer",title:"World Hillshade",url:"https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{id:"topo-vector-base-layer",title:"World Topographic Map",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/7dc6cea0b1764a1f9af2e679f642f0f5/resources/styles/root.json"}]}};function urlsAreEquivalent(e,r){return e&&r?e.toLowerCase().replace("www.arcgis.com","cdn.arcgis.com")===r.toLowerCase().replace("www.arcgis.com","cdn.arcgis.com"):e==r}const LAYER_DECLARED_CLASS_REGEX=/^esri[./]layers[./](tools[./])?\w+Layer$/;export function isLayer(e){const r=null==e?void 0:e.declaredClass;return"string"==typeof r&&LAYER_DECLARED_CLASS_REGEX.test(r)}export function isCSVLayer(e){return"csv"===(null==e?void 0:e.type)}export function isStreamLayer(e){return"stream"===(null==e?void 0:e.type)}export function isFeatureLayerBase(e){return isCSVLayer(e)||isFeatureLayer(e)||isStreamLayer(e)}export function isFeatureLayer(e){return"feature"===(null==e?void 0:e.type)}export function isGeoRssLayer(e){return"geo-rss"===(null==e?void 0:e.type)}export function isGraphicsLayer(e){return"graphics"===(null==e?void 0:e.type)}export function isImageryLayer(e){return"imagery"===(null==e?void 0:e.type)}export function isKMLLayer(e){return"kml"===(null==e?void 0:e.type)}export function isMapImageLayer(e){return"map-image"===(null==e?void 0:e.type)}export function isOpenStreetMapLayer(e){return"open-street-map"===(null==e?void 0:e.type)}export function isWebTileLayer(e){return"web-tile"===(null==e?void 0:e.type)||"open-street-map"===(null==e?void 0:e.type)}export function isVectorTileLayer(e){return"vector-tile"===(null==e?void 0:e.type)}export function isElevationLayer(e){return"elevation"===(null==e?void 0:e.type)}export function isSceneLayer(e){return"scene"===(null==e?void 0:e.type)}export function isPointCloudLayer(e){return"point-cloud"===(null==e?void 0:e.type)}export function isIntegratedMeshLayer(e){return"integrated-mesh"===(null==e?void 0:e.type)}export function isGroupLayer(e){return"group"===(null==e?void 0:e.type)}export function isWMSLayer(e){return"wms"===(null==e?void 0:e.type)}export function isWMTSLayer(e){return"wmts"===(null==e?void 0:e.type)}export function isBuildingSceneLayer(e){return"building-scene"===(null==e?void 0:e.type)}export function isTileLayer(e){return"tile"===(null==e?void 0:e.type)}export function isImageryTileLayer(e){return"imagery-tile"===(null==e?void 0:e.type)}export function isTiledImageServiceLayer(e){return isTileLayer(e)&&isImageService(e)}export function isTiledMapServiceLayer(e){return isTileLayer(e)&&!isImageService(e)}function isImageService(e){var r,a;const s=null!==(r=e.url)&&void 0!==r?r:null===(a=e.portalItem)||void 0===a?void 0:a.url;return s&&/\/ImageServer(\/|\/?$)/i.test(s)}export function isMapImageSublayer(e){var r;return"esri.layers.support.Sublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isKMLSublayer(e){var r;return"esri.layers.support.KMLSublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isWMTSSublayer(e){var r;return"esri.layers.support.WMTSSublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isWMSSublayer(e){var r;return"esri.layers.support.WMSSublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isBuildingComponentSublayer(e){const r=e;return"building-component"===(null==r?void 0:r.type)}export function isBuildingGroupSublayer(e){const r=e;return"building-group"===(null==r?void 0:r.type)}export function isLayerWithLegendEnabledProperty(e){return!(isBuildingSceneLayer(e)||isCSVLayer(e)||isElevationLayer(e)||isGraphicsLayer(e)||isGroupLayer(e)||isIntegratedMeshLayer(e)||isKMLLayer(e)||isOpenStreetMapLayer(e)||isPointCloudLayer(e)||isWebTileLayer(e)||isWMTSLayer(e)||isVectorTileLayer(e))}export function hasMmapLayer(e){return e.some((e=>{var r;const a=e._deferredLayerProperties;return!("string"==typeof(null==a?void 0:a.$ref)||!(null===(r=null==a?void 0:a.$ref)||void 0===r?void 0:r.path))||!!isGroupLayerExtension(e)&&hasMmapLayer(e.layerExtensions.toArray())}))}
1
+ import{LayerBase as LayerJson}from"../portal/_LayerBase.js";import{WellKnownBasemap}from"../support/esri.js";import{isGroupLayerExtension}from"./extensions.js";import{isBasemap}from"./mapping.js";export function layersAreEquivalent(e,r){if(e===r)return!0;const a=isLayer(e)?LayerJson.getLayerType(e):e.layerType;if(a!==(isLayer(r)?LayerJson.getLayerType(r):r.layerType))return!1;if("OpenStreetMap"===a)return!0;if("ArcGISFeatureLayer"===a){const a=isFeatureLayer(e)?`${e.url}/${e.layerId}`:e.url,s=isFeatureLayer(r)?`${r.url}/${r.layerId}`:r.url;return e.id===r.id||e.url&&urlsAreEquivalent(a,s)}return e.id===r.id||e.url&&urlsAreEquivalent(e.url,r.url)||(e.styleUrl||r.styleUrl)&&urlsAreEquivalent(e.url||e.styleUrl,r.url||r.styleUrl)||e.key&&e.key===r.key||e.urlTemplate&&urlsAreEquivalent(e.urlTemplate,r.urlTemplate)}export function basemapsAreEquivalent(e,r){var a,s,t,i,l,n,o,c;if(e===r)return!0;if(!e||!r)return!1;let y,p,d,u;return isBasemap(e)?(y=e.baseLayers.toArray(),d=e.referenceLayers.toArray()):(y=null!==(s=null===(a=e.baseMapLayers)||void 0===a?void 0:a.filter((e=>!e.isReference)))&&void 0!==s?s:[],d=null!==(i=null===(t=e.baseMapLayers)||void 0===t?void 0:t.filter((e=>e.isReference)))&&void 0!==i?i:[]),isBasemap(r)?(p=r.baseLayers.toArray(),u=r.referenceLayers.toArray()):(p=null!==(n=null===(l=r.baseMapLayers)||void 0===l?void 0:l.filter((e=>!e.isReference)))&&void 0!==n?n:[],u=null!==(c=null===(o=r.baseMapLayers)||void 0===o?void 0:o.filter((e=>e.isReference)))&&void 0!==c?c:[]),y.length===p.length&&y.every(((e,r)=>layersAreEquivalent(e,p[r])))&&d.length===u.length&&d.every(((e,r)=>layersAreEquivalent(e,u[r])))}export const standardBasemaps={[WellKnownBasemap.DARK_GRAY]:{baseMapLayers:[{id:"dark-gray-base-layer",title:"World Dark Gray Base",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Base/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{isReference:!0,id:"dark-gray-reference-layer",title:"World Dark Gray Reference",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Reference/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.DARK_GRAY_VECTOR]:{baseMapLayers:[{id:"dark-gray-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Dark Gray Base",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/5e9b3685f4c24d8781073dd928ebda50/resources/styles/root.json"},{id:"dark-gray-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Dark Gray Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/747cb7a5329c478cbe6981076cc879c5/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.GRAY]:{baseMapLayers:[{id:"gray-base-layer",title:"World Light Gray Base",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{isReference:!0,id:"gray-reference-layer",title:"World Light Gray Reference",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Reference/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.GRAY_VECTOR]:{baseMapLayers:[{id:"gray-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Light Gray Base",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/291da5eab3a0412593b66d384379f89f/resources/styles/root.json"},{id:"gray-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Light Gray Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/1768e8369a214dfab4e2167d5c5f2454/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.HYBRID]:{baseMapLayers:[{id:"hybrid-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",title:"World Imagery"},{id:"hybrid-reference-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer",title:"World Boundaries and Places",isReference:!0}]},[WellKnownBasemap.HYBRID_VECTOR]:{baseMapLayers:[{id:"hybrid-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",title:"World Imagery"},{id:"hybrid-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"Hybrid Reference Layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/30d6b8271e1849cd9c3042060001f425/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.NATIONAL_GEOGRAPHIC]:{baseMapLayers:[{id:"national-geographic-base-layer",title:"NatGeo World Map",url:"https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.OCEANS]:{baseMapLayers:[{id:"oceans-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer",title:"World Ocean Base"},{id:"oceans-reference-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,title:"World Ocean Reference",url:"https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Reference/MapServer",isReference:!0}]},[WellKnownBasemap.OCEANS_VECTOR]:{baseMapLayers:[{id:"oceans-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer",title:"World Ocean Base"},{id:"oceans-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"World Ocean Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/89860a5baf424f3ea0c655115faababe/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.OPEN_STREET_MAP]:{baseMapLayers:[{id:"osm-base-layer",layerType:"OpenStreetMap",showLegend:!1,title:"OpenStreetMap"}]},[WellKnownBasemap.OPEN_STREET_MAP_VECTOR]:{baseMapLayers:[{id:"osm-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"OpenStreetMap",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/3e1a00aeae81496587988075fe529f71/resources/styles/root.json"}]},[WellKnownBasemap.SATELLITE]:{baseMapLayers:[{id:"satellite-base-layer",title:"World Imagery",url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.STREETS]:{baseMapLayers:[{id:"streets-base-layer",title:"World Street Map",url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.STREETS_NAVIGATION_VECTOR]:{baseMapLayers:[{id:"streets-navigation-vector-base-layer",title:"World Navigation Map",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/63c47b7177f946b49902c24129b87252/resources/styles/root.json"}]},[WellKnownBasemap.STREETS_NIGHT_VECTOR]:{baseMapLayers:[{id:"streets-night-vector-base-layer",title:"World Street Map (Night)",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/86f556a2d1fd468181855a35e344567f/resources/styles/root.json"}]},[WellKnownBasemap.STREETS_RELIEF_VECTOR]:{baseMapLayers:[{id:"world-hillshade-layer",title:"World Hillshade",url:"https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{id:"streets-relief-vector-base-layer",title:"World Streets Relief",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/b266e6d17fc345b498345613930fbd76/resources/styles/root.json"}]},[WellKnownBasemap.STREETS_VECTOR]:{baseMapLayers:[{id:"streets-vector-base-layer",title:"World Street Map",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/de26a3cf4cc9451298ea173c4b324736/resources/styles/root.json"}]},[WellKnownBasemap.TERRAIN]:{baseMapLayers:[{id:"terrain-base-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer",title:"World Terrain Base"},{id:"terrain-reference-layer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Reference_Overlay/MapServer",title:"World Terrain Reference",isReference:!0}]},[WellKnownBasemap.TERRAIN_VECTOR]:{baseMapLayers:[{id:"world-hillshade",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1,url:"https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",title:"World Hillshade"},{id:"terrain-base-layer",layerType:"VectorTileLayer",showLegend:!1,title:"World Terrain Base",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/33064a20de0c48d2bb61efa8faca93a8/resources/styles/root.json"},{id:"terrain-reference-layer",layerType:"VectorTileLayer",showLegend:!1,title:"World Terrain Reference",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/14fbc125ccc9488888b014db09f35f67/resources/styles/root.json",isReference:!0}]},[WellKnownBasemap.TOPO]:{baseMapLayers:[{id:"topo-base-layer",title:"World Topo Map",url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1}]},[WellKnownBasemap.TOPO_VECTOR]:{baseMapLayers:[{id:"world-hillshade-layer",title:"World Hillshade",url:"https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",showLegend:!1},{id:"topo-vector-base-layer",title:"World Topographic Map",layerType:"VectorTileLayer",showLegend:!1,styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/7dc6cea0b1764a1f9af2e679f642f0f5/resources/styles/root.json"}]}};function urlsAreEquivalent(e,r){return e&&r?e.toLowerCase().replace("www.arcgis.com","cdn.arcgis.com")===r.toLowerCase().replace("www.arcgis.com","cdn.arcgis.com"):e==r}const LAYER_DECLARED_CLASS_REGEX=/^esri[./]layers[./](tools[./])?\w+Layer$/;export function isLayer(e){const r=null==e?void 0:e.declaredClass;return"string"==typeof r&&LAYER_DECLARED_CLASS_REGEX.test(r)}export function isCSVLayer(e){return"csv"===(null==e?void 0:e.type)}export function isGeoJSONLayer(e){return"geojson"===(null==e?void 0:e.type)}export function isSubtypeGroupLayer(e){return"subtype-group"===(null==e?void 0:e.type)}export function isStreamLayer(e){return"stream"===(null==e?void 0:e.type)}export function isFeatureLayerBase(e){return isCSVLayer(e)||isFeatureLayer(e)||isStreamLayer(e)}export function isFeatureLayer(e){return"feature"===(null==e?void 0:e.type)}export function isGeoRssLayer(e){return"geo-rss"===(null==e?void 0:e.type)}export function isGraphicsLayer(e){return"graphics"===(null==e?void 0:e.type)}export function isImageryLayer(e){return"imagery"===(null==e?void 0:e.type)}export function isKMLLayer(e){return"kml"===(null==e?void 0:e.type)}export function isMapImageLayer(e){return"map-image"===(null==e?void 0:e.type)}export function isOpenStreetMapLayer(e){return"open-street-map"===(null==e?void 0:e.type)}export function isWebTileLayer(e){return"web-tile"===(null==e?void 0:e.type)||"open-street-map"===(null==e?void 0:e.type)}export function isVectorTileLayer(e){return"vector-tile"===(null==e?void 0:e.type)}export function isElevationLayer(e){return"elevation"===(null==e?void 0:e.type)}export function isSceneLayer(e){return"scene"===(null==e?void 0:e.type)}export function isPointCloudLayer(e){return"point-cloud"===(null==e?void 0:e.type)}export function isIntegratedMeshLayer(e){return"integrated-mesh"===(null==e?void 0:e.type)}export function isGroupLayer(e){return"group"===(null==e?void 0:e.type)}export function isWMSLayer(e){return"wms"===(null==e?void 0:e.type)}export function isWMTSLayer(e){return"wmts"===(null==e?void 0:e.type)}export function isBuildingSceneLayer(e){return"building-scene"===(null==e?void 0:e.type)}export function isTileLayer(e){return"tile"===(null==e?void 0:e.type)}export function isImageryTileLayer(e){return"imagery-tile"===(null==e?void 0:e.type)}export function isTiledImageServiceLayer(e){return isTileLayer(e)&&isImageService(e)}export function isTiledMapServiceLayer(e){return isTileLayer(e)&&!isImageService(e)}function isImageService(e){var r,a;const s=null!==(r=e.url)&&void 0!==r?r:null===(a=e.portalItem)||void 0===a?void 0:a.url;return s&&/\/ImageServer(\/|\/?$)/i.test(s)}export function isMapImageSublayer(e){var r;return"esri.layers.support.Sublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isKMLSublayer(e){var r;return"esri.layers.support.KMLSublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isWMTSSublayer(e){var r;return"esri.layers.support.WMTSSublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isWMSSublayer(e){var r;return"esri.layers.support.WMSSublayer"===(null===(r=e)||void 0===r?void 0:r.declaredClass)}export function isBuildingComponentSublayer(e){const r=e;return"building-component"===(null==r?void 0:r.type)}export function isBuildingGroupSublayer(e){const r=e;return"building-group"===(null==r?void 0:r.type)}export function isLayerWithLegendEnabledProperty(e){return!(isBuildingSceneLayer(e)||isCSVLayer(e)||isElevationLayer(e)||isGraphicsLayer(e)||isGroupLayer(e)||isIntegratedMeshLayer(e)||isKMLLayer(e)||isOpenStreetMapLayer(e)||isPointCloudLayer(e)||isWebTileLayer(e)||isWMTSLayer(e)||isVectorTileLayer(e))}export function hasMmapLayer(e){return e.some((e=>{var r;const a=e._deferredLayerProperties;return!("string"==typeof(null==a?void 0:a.$ref)||!(null===(r=null==a?void 0:a.$ref)||void 0===r?void 0:r.path))||!!isGroupLayerExtension(e)&&hasMmapLayer(e.layerExtensions.toArray())}))}export function isTimeAwareLayer(e){return isLayer(e)&&e.hasOwnProperty("timeExtent")}
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 = "34.3.0";
4
+ export declare const version = "34.4.1";
package/version.js CHANGED
@@ -1 +1 @@
1
- export const version="34.3.0";
1
+ export const version="34.4.1";