@vertigis/arcgis-extensions 34.7.0 → 35.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/AppConfig.schema.json +8 -4
  2. package/data/ArcGISServiceTableExtension.js +1 -1
  3. package/declarations/arcgis-js-api-extensions/index.d.ts +11 -120
  4. package/docs/html/assets/search.js +1 -1
  5. package/docs/html/classes/data_FeatureStream.FeatureStream.html +1 -1
  6. package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerExtension.html +5 -3
  7. package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerSchema.html +1 -1
  8. package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtension.html +18 -16
  9. package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerSchema.html +5 -5
  10. package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerExtension.html +5 -3
  11. package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerSchema.html +2 -2
  12. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerExtension.html +5 -3
  13. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerSchema.html +2 -2
  14. package/docs/html/classes/mapping_KMLSublayerExtension.KMLSublayerExtension.html +5 -3
  15. package/docs/html/classes/mapping_MapImageSublayerExtension.MapImageSublayerExtension.html +5 -3
  16. package/docs/html/classes/mapping_TileSublayerExtension.TileSublayerExtension.html +5 -3
  17. package/docs/html/classes/mapping_WMSSublayerExtension.WMSSublayerExtension.html +5 -3
  18. package/docs/html/classes/mapping_WMTSSublayerExtension.WMTSSublayerExtension.html +5 -3
  19. package/docs/html/classes/mapping__SublayerExtension.SubSublayerExtensionCollection.html +6 -6
  20. package/docs/html/classes/mapping__SublayerExtension.SublayerExtension.html +5 -3
  21. package/docs/html/classes/mapping__SublayerExtension.SublayerSchema.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 +4 -4
  24. package/docs/html/classes/tasks_identify_CSVLayer3DHitTestIdentifyProvider.CSVLayer3DHitTestIdentifyProvider.html +4 -4
  25. package/docs/html/classes/tasks_identify_ClientSideIdentifyProvider.ClientSideIdentifyProvider.html +2 -2
  26. package/docs/html/classes/tasks_identify_FeatureLayer3DHitTestIdentifyProvider.FeatureLayer3DHitTestIdentifyProvider.html +4 -4
  27. package/docs/html/classes/tasks_identify_FeatureLayerClientSideIdentifyProvider.FeatureLayerClientSideIdentifyProvider.html +2 -2
  28. package/docs/html/classes/tasks_identify_HitTestIdentifyProvider.HitTestIdentifyProvider.html +6 -6
  29. package/docs/html/classes/tasks_identify_PointCloudLayerHitTestIdentifyProvider.PointCloudLayerHitTestIdentifyProvider.html +4 -4
  30. package/docs/html/classes/tasks_identify_SceneLayerClientSideIdentifyProvider.SceneLayerClientSideIdentifyProvider.html +2 -2
  31. package/docs/html/classes/tasks_identify_SceneLayerHitTestIdentifyProvider.SceneLayerHitTestIdentifyProvider.html +3 -3
  32. package/docs/html/classes/tasks_identify_StreamLayerClientSideQueryIdentifyProvider.StreamLayerClientSideQueryIdentifyProvider.html +2 -2
  33. package/docs/html/classes/tasks_query_BuildingComponentSublayerClientSideQueryProvider.BuildingComponentSublayerClientSideQueryProvider.html +6 -3
  34. package/docs/html/classes/tasks_query_ClientSideQueryProvider.ClientSideQueryProvider.html +6 -3
  35. package/docs/html/classes/tasks_query_QueryService.QueryService.html +3 -3
  36. package/docs/html/classes/tasks_query_SceneLayerClientSideQueryProvider.SceneLayerClientSideQueryProvider.html +6 -3
  37. package/docs/html/classes/tasks_query_SceneLayerQueryProvider.SceneLayerQueryProvider.html +2 -2
  38. package/docs/html/classes/tasks_query_StreamLayerClientSideQueryProvider.StreamLayerClientSideQueryProvider.html +4 -4
  39. package/docs/html/classes/utilities_asyncIterable.AsyncQueue.html +1 -1
  40. package/docs/html/classes/utilities_geometry.CoordinateSystemBounds.html +1 -1
  41. package/docs/html/enums/support_esri.WellKnownBasemap.html +1 -1
  42. package/docs/html/interfaces/data__TableExtension.TableExtensionProperties.html +1 -1
  43. package/docs/html/interfaces/data_support_attachments.AttachmentEnabledLayer.html +2 -2
  44. package/docs/html/interfaces/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtensionProperties.html +1 -1
  45. package/docs/html/interfaces/portal_Domain.DomainBase.html +1 -1
  46. package/docs/html/interfaces/portal_ImageServiceLayer.ImageServiceLayer-1.html +17 -17
  47. package/docs/html/interfaces/portal_Item.Item-1.html +48 -48
  48. package/docs/html/interfaces/portal_LayerDefinition.FieldOverride.html +3 -3
  49. package/docs/html/interfaces/portal_LayerDefinition.LayerDefinition-1.html +49 -50
  50. package/docs/html/interfaces/portal_LayerDefinition.LayerDefinitionDefaults.html +8 -8
  51. package/docs/html/interfaces/portal_LayerDefinition.LayerTimeInfo.html +9 -9
  52. package/docs/html/interfaces/portal_LayerDefinition.OrderByClause.html +9 -5
  53. package/docs/html/interfaces/portal_LayerDefinition.TimeInfoExportOptions.html +4 -4
  54. package/docs/html/interfaces/portal_PopupInfo.OrderByFields.html +2 -2
  55. package/docs/html/interfaces/portal_PopupInfo.PopupElement.html +5 -5
  56. package/docs/html/interfaces/portal_PopupInfo.PopupInfo-1.html +8 -8
  57. package/docs/html/interfaces/portal_PopupInfo.RelatedRecordsInfo.html +2 -2
  58. package/docs/html/interfaces/support_esri.AccessorLike.html +4 -4
  59. package/docs/html/interfaces/support_esri.ChangeEvent.html +4 -4
  60. package/docs/html/interfaces/support_esri.LayerWithSublayers.html +1 -1
  61. package/docs/html/interfaces/support_esri.PointCloudLayerCachedStatistics.html +1 -1
  62. package/docs/html/interfaces/support_esri.PointCloudLayerCachedStatisticsFrequentValues.html +1 -1
  63. package/docs/html/interfaces/support_esri.PointCloudLayerCachedStatisticsHistogram.html +1 -1
  64. package/docs/html/interfaces/support_esri.PointCloudLayerCachedStatisticsLabel.html +1 -1
  65. package/docs/html/interfaces/support_esri.PointCloudLayerCachedStatisticsLabels.html +1 -1
  66. package/docs/html/interfaces/support_esri.PointCloudLayerCachedStatisticsStats.html +1 -1
  67. package/docs/html/interfaces/support_esri.SublayerLike.html +14 -14
  68. package/docs/html/interfaces/utilities_geometry.GeoJSONLineString.html +2 -2
  69. package/docs/html/interfaces/utilities_geometry.GeoJSONMultiLineString.html +2 -2
  70. package/docs/html/interfaces/utilities_geometry.GeoJSONMultiPoint.html +2 -2
  71. package/docs/html/interfaces/utilities_geometry.GeoJSONMultiPolygon.html +2 -2
  72. package/docs/html/interfaces/utilities_geometry.GeoJSONPoint.html +2 -2
  73. package/docs/html/interfaces/utilities_geometry.GeoJSONPolygon.html +2 -2
  74. package/docs/html/interfaces/utilities_geometry.GeographicTransformationJson.html +1 -1
  75. package/docs/html/interfaces/utilities_geometry.GeographicTransformationStepJson.html +3 -3
  76. package/docs/html/interfaces/utilities_geometry.GmlOptions.html +3 -3
  77. package/docs/html/modules/mapping_MapExtension.html +1 -1
  78. package/docs/html/modules/portal_Domain.Domain.html +6 -6
  79. package/docs/html/modules/portal_Domain.DomainType.html +2 -2
  80. package/docs/html/modules/portal_Domain.html +2 -2
  81. package/docs/html/modules/portal_ImageServiceLayer.ImageServiceLayer.html +1 -1
  82. package/docs/html/modules/portal_LayerDefinition.LayerDefinition.html +2 -2
  83. package/docs/html/modules/portal_LayerDefinition.LayerDefinitionCapabilities.html +6 -6
  84. package/docs/html/modules/portal_LayerDefinition.html +2 -2
  85. package/docs/html/modules/portal_PopupInfo.PopupInfo.html +1 -1
  86. package/docs/html/modules/portal_PopupInfo.html +1 -1
  87. package/docs/html/modules/support__query.html +2 -2
  88. package/docs/html/modules/support_esri.html +10 -10
  89. package/docs/html/modules/utilities_esri.html +2 -2
  90. package/docs/html/modules/utilities_geometry.html +25 -25
  91. package/docs/html/modules/version.html +1 -1
  92. package/mapping/BuildingComponentSublayerExtension.d.ts +1 -0
  93. package/mapping/BuildingComponentSublayerExtension.js +1 -1
  94. package/mapping/MapExtension.js +1 -1
  95. package/mapping/_SublayerExtension.d.ts +4 -0
  96. package/mapping/_SublayerExtension.js +1 -1
  97. package/package.json +4 -3
  98. package/portal/Domain.d.ts +1 -1
  99. package/portal/ImageServiceLayer.d.ts +1 -1
  100. package/portal/LayerDefinition.d.ts +7 -4
  101. package/portal/LayerDefinition.js +1 -1
  102. package/portal/MapServiceLayer.js +1 -1
  103. package/portal/PopupInfo.js +1 -1
  104. package/support/esri.d.ts +2 -0
  105. package/tasks/query/ClientSideQueryProvider.d.ts +5 -0
  106. package/tasks/query/ClientSideQueryProvider.js +1 -1
  107. package/tasks/query/QueryService.js +1 -1
  108. package/tasks/query/SceneLayerClientSideQueryProvider.js +1 -1
  109. package/tasks/query/SceneLayerQueryProvider.js +1 -1
  110. package/tasks/query/StreamLayerClientSideQueryProvider.d.ts +4 -0
  111. package/tasks/query/StreamLayerClientSideQueryProvider.js +1 -1
  112. package/utilities/geometry.js +1 -1
  113. package/version.d.ts +1 -1
  114. package/version.js +1 -1
@@ -1 +1 @@
1
- import EsriExtent from"@arcgis/core/geometry/Extent";import EsriTimeInfo from"@arcgis/core/layers/support/TimeInfo";import{DataLayerSource,MapLayerSource}from"../support/_esriInternal.js";import{isBuildingSceneLayer,isCSVLayer,isFeatureLayer,isFeatureLayerBase,isMapImageSublayer as isEsriSublayer,isSceneLayer,isStreamLayer,isTimeAwareLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{isEmpty}from"../utilities/object.js";import{DrawingInfo}from"./DrawingInfo.js";import{ElevationInfo}from"./ElevationInfo.js";import{FeatureReduction}from"./FeatureReduction.js";import{Field as PortalField}from"./Field.js";import{GeometryType}from"./Geometry.js";import{SpatialReference}from"./SpatialReference.js";import{Template}from"./Template.js";export var LayerDefinition;!function(e){e.applyToEsriApiLayer=async function(e,i){var t,r;checkArg("json",e).isNotMissing(),checkArg("layer",i).isNotMissing();const a=i,s=i;if(isFeatureLayerBase(a)&&(e.hasOwnProperty("objectIdField")&&(isStreamLayer(a)?a.objectIdField="__esri_stream_id__":a.objectIdField=e.objectIdField),e.hasOwnProperty("geometryType")&&(a.geometryType=GeometryType.toEsriApiGeometryType(e.geometryType)),e.hasOwnProperty("hasAttachments")&&s._set("capabilities.data.supportsAttachment",e.hasAttachments),e.hasOwnProperty("maxRecordCount")&&(s.maxRecordCount=e.maxRecordCount),e.hasOwnProperty("hasM")&&s._set("hasM",e.hasM),e.hasOwnProperty("hasZ")&&s._set("hasZ",e.hasZ),e.hasOwnProperty("templates")&&(a.templates=e.templates.map((e=>Template.toEsriApiFeatureTemplate(e))))),e.hasOwnProperty("orderBy")&&(isFeatureLayer(a)||isCSVLayer(a))&&(e.orderBy?a.orderBy=e.orderBy.map((e=>({field:e.field,order:"desc"===e.order?"descending":"ascending"}))):a.orderBy=void 0),e.hasOwnProperty("source")&&isEsriSublayer(i)&&!(null===(t=i.layer)||void 0===t?void 0:t.loaded)){const{type:i,...t}=e.source;"dataLayer"===i?s._set("source",new DataLayerSource(t)):"mapLayer"===i&&s._set("source",new MapLayerSource(t))}if(e.hasOwnProperty("copyrightText")&&(i.copyright=e.copyrightText),e.hasOwnProperty("defaultVisibility")&&(i.visible=e.defaultVisibility),e.hasOwnProperty("definitionExpression")&&(i.definitionExpression=e.definitionExpression),e.hasOwnProperty("elevationInfo")&&e.elevationInfo&&(i.elevationInfo=ElevationInfo.toEsriApiElevationInfo(e.elevationInfo)),e.hasOwnProperty("extent")&&(i.fullExtent=e.extent?EsriExtent.fromJSON(e.extent):void 0),e.hasOwnProperty("fields")){const i=[];e.fields.forEach((e=>{i.push(PortalField.toEsriApiField(e))})),s._set("fields",i)}e.hasOwnProperty("maxScale")&&(i.maxScale=e.maxScale),e.hasOwnProperty("minScale")&&(i.minScale=e.minScale),e.hasOwnProperty("name")&&!i.title&&(i.title=e.name);try{e.hasOwnProperty("spatialReference")?i.spatialReference=SpatialReference.toEsriApiSpatialReference(e.spatialReference):(null===(r=i.fullExtent)||void 0===r?void 0:r.spatialReference)&&i.spatialReference&&(i.spatialReference=i.fullExtent.spatialReference.clone())}catch{}e.hasOwnProperty("timeInfo")&&isTimeAwareLayer(i)&&(i.timeInfo=EsriTimeInfo.fromJSON(e.timeInfo)),e.hasOwnProperty("featureReduction")&&e.featureReduction&&await FeatureReduction.applyToEsriApiLayer(e.featureReduction,i),e.hasOwnProperty("drawingInfo")&&await DrawingInfo.applyToEsriApiLayer(e.drawingInfo,i)},e.fromEsriApiLayer=function(e,i={}){var t;checkArg("layer",e).isNotMissing();const r={},a=e,s=e;if(isFeatureLayerBase(a)){const t=e;a.objectIdField&&(r.objectIdField=a.objectIdField),t.geometryType&&(r.geometryType=GeometryType.fromEsriApiGeometryType(t.geometryType)),a.capabilities&&a.capabilities.data.supportsAttachment!==i.hasAttachments&&(r.hasAttachments=a.capabilities.data.supportsAttachment),isNaN(s.maxRecordCount)||null==s.maxRecordCount||(r.maxRecordCount=s.maxRecordCount),a.capabilities&&(r.capabilities=LayerDefinitionCapabilities.fromEsriApiFeatureLayerCapabilities(a.capabilities),a.capabilities.query&&(r.supportsAdvancedQueries=a.capabilities.query.supportsOrderBy||a.capabilities.query.supportsDistinct,r.supportsStatistics=a.capabilities.query.supportsStatistics)),a.hasM!==i.hasM&&(r.hasM=a.hasM),a.hasZ!==i.hasZ&&(r.hasZ=a.hasZ),a.templates&&a.templates.length>0&&(r.templates=a.templates.map((e=>Template.fromEsriApiFeatureTemplate(e))))}if(e.featureReduction&&(r.featureReduction=FeatureReduction.fromEsriApiLayer(e)),isEsriSublayer(e)&&e.source&&("data-layer"===e.source.type||"map-layer"===e.source.type)&&(r.source=e.source.toJSON()),e.copyright&&(r.copyrightText=e.copyright),e.visible===i.visible||isEsriSublayer(e)||(r.defaultVisibility=e.visible),e.definitionExpression&&(r.definitionExpression=e.definitionExpression),r.drawingInfo=DrawingInfo.fromEsriApiLayer(e),isEmpty(r.drawingInfo)&&delete r.drawingInfo,e.elevationInfo&&(r.elevationInfo=ElevationInfo.fromEsriApiElevationInfo(e.elevationInfo)),!isEsriSublayer(e)&&(!isFeatureLayer(e)||e.source)&&(e.fullExtent&&!e.fullExtent.equals(i.fullExtent)&&(r.extent=e.fullExtent.toJSON()),e.fields&&e.fields.length>0)){const i=[];e.fields.forEach((e=>{i.push(PortalField.fromEsriApiField(e))})),r.fields=i}if((isFeatureLayer(a)||isCSVLayer(a))&&a.orderBy&&(r.orderBy=a.orderBy.map((e=>({field:e.field,order:"descending"===e.order?"desc":"asc"})))),isFeatureLayer(a)||isCSVLayer(a)||isStreamLayer(a)||isSceneLayer(a)||isBuildingSceneLayer(a)){const{maxScale:e}=a,{minScale:t}=a;isNaN(e)||null===e||e===i.maxScale&&e===t||(r.maxScale=e),isNaN(t)||null===t||t===i.minScale&&t===e||(r.minScale=t)}return isTimeAwareLayer(a)&&(r.timeInfo=null===(t=a.timeInfo)||void 0===t?void 0:t.toJSON()),r.name=e.title,e.spatialReference&&e.spatialReference.wkid!==i.wkid&&(r.spatialReference=SpatialReference.fromEsriApiSpatialReference(e.spatialReference)),r}}(LayerDefinition||(LayerDefinition={}));export var LayerDefinitionCapabilities;!function(e){e.ADD="Add",e.DELETE="Delete",e.EDITING="Editing",e.QUERY="Query",e.UPDATE="Update",e.fromEsriApiFeatureLayerCapabilities=function(i){checkArg("capabilities",i).isNotMissing();const t=[];return i.operations.supportsAdd&&t.push(e.ADD),i.operations.supportsDelete&&t.push(e.DELETE),i.operations.supportsEditing&&t.push(e.EDITING),i.operations.supportsQuery&&t.push(e.QUERY),i.operations.supportsUpdate&&t.push(e.UPDATE),t.join(",")}}(LayerDefinitionCapabilities||(LayerDefinitionCapabilities={}));
1
+ import EsriExtent from"@arcgis/core/geometry/Extent";import EsriTimeInfo from"@arcgis/core/layers/support/TimeInfo";import{DataLayerSource,MapLayerSource}from"../support/_esriInternal.js";import{isBuildingSceneLayer,isCSVLayer,isFeatureLayer,isFeatureLayerBase,isGeoJSONLayer,isMapImageSublayer as isEsriSublayer,isSceneLayer,isStreamLayer,isTimeAwareLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{isBuildingComponentSublayer,isGraphicsLayer,isLayer}from"../utilities/layers.js";import{isEmpty}from"../utilities/object.js";import{DrawingInfo}from"./DrawingInfo.js";import{ElevationInfo}from"./ElevationInfo.js";import{FeatureReduction}from"./FeatureReduction.js";import{Field as PortalField}from"./Field.js";import{GeometryType}from"./Geometry.js";import{SpatialReference}from"./SpatialReference.js";import{Template}from"./Template.js";export var LayerDefinition;!function(e){e.applyToEsriApiLayer=async function(e,i){var r,t;checkArg("json",e).isNotMissing(),checkArg("layer",i).isNotMissing();const a=i,s=i;if(isFeatureLayerBase(a)&&(e.hasOwnProperty("objectIdField")&&(isStreamLayer(a)?a.objectIdField="__esri_stream_id__":a.objectIdField=e.objectIdField),e.hasOwnProperty("geometryType")&&(a.geometryType=GeometryType.toEsriApiGeometryType(e.geometryType)),e.hasOwnProperty("hasAttachments")&&s._set("capabilities.data.supportsAttachment",e.hasAttachments),e.hasOwnProperty("maxRecordCount")&&(s.maxRecordCount=e.maxRecordCount),e.hasOwnProperty("hasM")&&s._set("hasM",e.hasM),e.hasOwnProperty("hasZ")&&s._set("hasZ",e.hasZ),e.hasOwnProperty("templates")&&(a.templates=e.templates.map((e=>Template.toEsriApiFeatureTemplate(e))))),e.hasOwnProperty("orderBy")&&(isFeatureLayer(a)||isCSVLayer(a))&&(e.orderBy?a.orderBy=e.orderBy.map((e=>({field:e.field,order:"desc"===e.order?"descending":"ascending"}))):a.orderBy=void 0),e.hasOwnProperty("source")&&isEsriSublayer(i)&&!(null===(r=i.layer)||void 0===r?void 0:r.loaded)){const{type:i,...r}=e.source;"dataLayer"===i?s._set("source",new DataLayerSource(r)):"mapLayer"===i&&s._set("source",new MapLayerSource(r))}if(e.hasOwnProperty("copyrightText")&&(i.copyright=e.copyrightText),e.hasOwnProperty("defaultVisibility")&&(i.visible=e.defaultVisibility),e.hasOwnProperty("definitionExpression")&&(i.definitionExpression=e.definitionExpression),e.hasOwnProperty("elevationInfo")&&e.elevationInfo&&(i.elevationInfo=ElevationInfo.toEsriApiElevationInfo(e.elevationInfo)),e.hasOwnProperty("extent")&&(i.fullExtent=e.extent?EsriExtent.fromJSON(e.extent):void 0),e.hasOwnProperty("fields")){const i=[];e.fields.forEach((e=>{i.push(PortalField.toEsriApiField(e))})),s._set("fields",i)}e.hasOwnProperty("maxScale")&&(i.maxScale=e.maxScale),e.hasOwnProperty("minScale")&&(i.minScale=e.minScale),e.hasOwnProperty("name")&&!i.title&&(i.title=e.name);try{e.hasOwnProperty("spatialReference")?i.spatialReference=SpatialReference.toEsriApiSpatialReference(e.spatialReference):(null===(t=i.fullExtent)||void 0===t?void 0:t.spatialReference)&&i.spatialReference&&(i.spatialReference=i.fullExtent.spatialReference.clone())}catch{}e.hasOwnProperty("timeInfo")&&isTimeAwareLayer(i)&&(i.timeInfo=EsriTimeInfo.fromJSON(e.timeInfo)),e.hasOwnProperty("featureReduction")&&e.featureReduction&&await FeatureReduction.applyToEsriApiLayer(e.featureReduction,i),e.hasOwnProperty("drawingInfo")&&await DrawingInfo.applyToEsriApiLayer(e.drawingInfo,i)},e.fromEsriApiLayer=function(e,i={}){var r,t;checkArg("layer",e).isNotMissing();const a={},s=e,o=e;if(isFeatureLayerBase(s)){const r=e;s.objectIdField&&(a.objectIdField=s.objectIdField),r.geometryType&&(a.geometryType=GeometryType.fromEsriApiGeometryType(r.geometryType)),s.capabilities&&s.capabilities.data.supportsAttachment!==i.hasAttachments&&(a.hasAttachments=s.capabilities.data.supportsAttachment),isNaN(o.maxRecordCount)||null==o.maxRecordCount||(a.maxRecordCount=o.maxRecordCount),s.capabilities&&(a.capabilities=LayerDefinitionCapabilities.fromEsriApiFeatureLayerCapabilities(s.capabilities),s.capabilities.query&&(a.supportsAdvancedQueries=s.capabilities.query.supportsOrderBy||s.capabilities.query.supportsDistinct,a.supportsStatistics=s.capabilities.query.supportsStatistics)),s.hasM!==i.hasM&&(a.hasM=s.hasM),s.hasZ!==i.hasZ&&(a.hasZ=s.hasZ),s.templates&&s.templates.length>0&&(a.templates=s.templates.map((e=>Template.fromEsriApiFeatureTemplate(e))))}if(e.featureReduction&&(a.featureReduction=FeatureReduction.fromEsriApiLayer(e)),isEsriSublayer(e)&&e.source&&("data-layer"===e.source.type||"map-layer"===e.source.type)&&(a.source=e.source.toJSON()),e.copyright&&(a.copyrightText=e.copyright),e.visible===i.visible||isEsriSublayer(e)||(a.defaultVisibility=e.visible),e.definitionExpression&&(a.definitionExpression=e.definitionExpression),a.drawingInfo=DrawingInfo.fromEsriApiLayer(e),isEmpty(a.drawingInfo)&&delete a.drawingInfo,(isBuildingComponentSublayer(e)?!!(null===(r=e.layer)||void 0===r?void 0:r.elevationInfo):!!e.elevationInfo)&&(a.elevationInfo=ElevationInfo.fromEsriApiElevationInfo(e.elevationInfo)),(isFeatureLayer(e)&&e.source||isCSVLayer(e)||isGraphicsLayer(e)||isGeoJSONLayer(e)||isStreamLayer(e))&&(e.fullExtent&&!e.fullExtent.equals(i.fullExtent)&&(a.extent=e.fullExtent.toJSON()),e.fields&&e.fields.length>0)){const i=[];e.fields.forEach((e=>{i.push(PortalField.fromEsriApiField(e))})),a.fields=i}if((isFeatureLayer(s)||isCSVLayer(s))&&s.orderBy&&(a.orderBy=s.orderBy.map((e=>({field:e.field,order:"descending"===e.order?"desc":"asc"})))),isFeatureLayer(s)||isCSVLayer(s)||isStreamLayer(s)||isSceneLayer(s)||isBuildingSceneLayer(s)){const{maxScale:e}=s,{minScale:r}=s;isNaN(e)||null===e||e===i.maxScale&&e===r||(a.maxScale=e),isNaN(r)||null===r||r===i.minScale&&r===e||(a.minScale=r)}return isTimeAwareLayer(s)&&(a.timeInfo=null===(t=s.timeInfo)||void 0===t?void 0:t.toJSON()),a.name=e.title,isLayer(e)&&e.spatialReference&&e.spatialReference.wkid!==i.wkid&&(a.spatialReference=SpatialReference.fromEsriApiSpatialReference(e.spatialReference)),a}}(LayerDefinition||(LayerDefinition={}));export var LayerDefinitionCapabilities;!function(e){e.ADD="Add",e.DELETE="Delete",e.EDITING="Editing",e.QUERY="Query",e.UPDATE="Update",e.fromEsriApiFeatureLayerCapabilities=function(i){checkArg("capabilities",i).isNotMissing();const r=[];return i.operations.supportsAdd&&r.push(e.ADD),i.operations.supportsDelete&&r.push(e.DELETE),i.operations.supportsEditing&&r.push(e.EDITING),i.operations.supportsQuery&&r.push(e.QUERY),i.operations.supportsUpdate&&r.push(e.UPDATE),r.join(",")}}(LayerDefinitionCapabilities||(LayerDefinitionCapabilities={}));
@@ -1 +1 @@
1
- import Collection from"@arcgis/core/core/Collection";import Portal from"@arcgis/core/portal/Portal";import EsriPortalItem from"@arcgis/core/portal/PortalItem";import{isMapImageLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{compareAsync}from"../utilities/collection.js";import{deepClone}from"../utilities/object.js";import{Layer}from"./Layer.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyBasemapLayerToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";export var MapServiceLayer;function isDynamicLayer(e){if(e.layerDefinition){if(e.layerDefinition.source)return!0;const{drawingInfo:r}=e.layerDefinition;if(r&&(r.renderer||r.labelingInfo||void 0!==r.showLabels&&null!==r.showLabels))return!0}return!1}function fixDynamicLayer(e){const{layerDefinition:r}=e;if(r){r.source&&(delete r.source,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.source"));const{drawingInfo:e}=r;e&&(e.renderer&&(delete e.renderer,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.drawingInfo.renderer")),e.labelingInfo&&(delete e.labelingInfo,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.drawingInfo.labelingInfo")),void 0!==e.showLabels&&null!==e.showLabels&&(delete e.showLabels,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.showLabels.labelingInfo")))}}async function applySublayerPropertiesToEsriApiLayer(e,r){var a,i;const s=null===(i=null===(a=r.capabilities)||void 0===a?void 0:a.exportMap)||void 0===i?void 0:i.supportsDynamicLayers;if(e.layers)if(s&&e.layers.some(isDynamicLayer)){const a=[...e.layers].reverse(),i=new Map;await compareAsync(r.allSublayers,a,{equals:(e,r)=>+e.id==+r.id,onMatch:async(e,r)=>{await Layer.applyToEsriApiSublayer(r,e)},onMissing:e=>{r.sublayers.remove(e)},onNew:async e=>{const a=await Layer.toEsriApiSublayer(e,"ArcGISMapServiceLayer");a.layer=r,i.set(a.id,a)}}),a.forEach(((e,s)=>{var o;const l=+e.id,y=i.get(l);if(y)if(null!=e.parentLayerId&&-1!==e.parentLayerId){const r=i.get(e.parentLayerId);r&&(r.sublayers=null!==(o=r.sublayers)&&void 0!==o?o:new Collection,r.sublayers.add(y))}else r.sublayers.add(y);else{const i=r.allSublayers.find((e=>e.id===l));if(i){let o,l=r.allSublayers.find((r=>r.id===e.parentLayerId));if(l){o=a.filter((e=>e.parentLayerId===l.id)).map((e=>a.indexOf(e))).indexOf(s)}else o=s,l=r;l.sublayers.reorder(i,o)}}})),r.allSublayers.refresh()}else if(r.sublayers)for(const a of e.layers){if(void 0===a.id||null===a.id)continue;const e=r.allSublayers.find((e=>e.id===a.id));e&&(isDynamicLayer(a)&&fixDynamicLayer(a),await Layer.applyToEsriApiSublayer(a,e))}if(e.visibleLayers&&r.allSublayers)for(const a of r.allSublayers.toArray())a.visible=e.visibleLayers.includes(a.id)}!function(e){async function r(e,r,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISMapServiceLayer"===e),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",r).isNotMissing().satisfies(isMapImageLayer,ERR_LAYER_TYPE_MISMATCH);const i=deepClone(e);if(applyLayerBaseToEsriApiLayer(i,r),applyBasemapLayerToEsriApiLayer(i,r),applyOperationalLayerToEsriApiLayer(i,r),i.hasOwnProperty("url")&&(r.url=i.url),i.hasOwnProperty("itemId")&&(r.portalItem?r.portalItem.id=i.itemId:r.portalItem=new EsriPortalItem({id:i.itemId,portal:a||Portal.getDefault()})),r.loaded)await applySublayerPropertiesToEsriApiLayer(i,r);else{const e=r.load;let a=!1;r.load=async()=>{await e(),a||(a=!0,await applySublayerPropertiesToEsriApiLayer(i,r))}}}e.esriMapImageLayerDefaults={legendEnabled:!0,visible:!0,opacity:1},e.toEsriApiLayer=async function(e){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISMapServiceLayer"===e),ERR_LAYER_TYPE_MISMATCH);const a=new((await import("@arcgis/core/layers/MapImageLayer")).default);return await r(e,a),a},e.applyToEsriApiLayer=r,e.fromEsriApiMapImageLayer=function(r){checkArg("layer",r).isNotMissing();const a={...fromEsriApiLayerToLayerBase(r,e.esriMapImageLayerDefaults),...fromEsriApiLayerToOperationalLayer(r),layerType:"ArcGISMapServiceLayer",url:r.url};if(r.portalItem&&(a.itemId=r.portalItem.id),r.sublayers){a.layers=[],a.visibleLayers=[];const e=i=>{i.visible&&a.visibleLayers.push(i.id),a.layers.push(Layer.fromEsriApiSublayer(i,r)),i.sublayers&&i.sublayers.reverse().forEach(e)};r.sublayers.reverse().forEach(e)}return a}}(MapServiceLayer||(MapServiceLayer={}));
1
+ import Collection from"@arcgis/core/core/Collection";import Portal from"@arcgis/core/portal/Portal";import EsriPortalItem from"@arcgis/core/portal/PortalItem";import{isMapImageLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{compareAsync}from"../utilities/collection.js";import{deepClone}from"../utilities/object.js";import{Layer}from"./Layer.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyBasemapLayerToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";export var MapServiceLayer;function isDynamicLayer(e){if(e.layerDefinition){if(e.layerDefinition.source)return!0;const{drawingInfo:r}=e.layerDefinition;if(r&&(r.renderer||r.labelingInfo||void 0!==r.showLabels&&null!==r.showLabels))return!0}return!1}function fixDynamicLayer(e){const{layerDefinition:r}=e;if(r){r.source&&(delete r.source,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.source"));const{drawingInfo:e}=r;e&&(e.renderer&&(delete e.renderer,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.drawingInfo.renderer")),e.labelingInfo&&(delete e.labelingInfo,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.drawingInfo.labelingInfo")),void 0!==e.showLabels&&null!==e.showLabels&&(delete e.showLabels,console.warn("The map service does not support dynamic layers. Ignoring property: layer.layerDefinition.showLabels.labelingInfo")))}}async function applySublayerPropertiesToEsriApiLayer(e,r){var a,i;const s=null===(i=null===(a=r.capabilities)||void 0===a?void 0:a.exportMap)||void 0===i?void 0:i.supportsDynamicLayers;if(e.layers)if(s&&e.layers.some(isDynamicLayer)){const a=[...e.layers].reverse(),i=new Map;await compareAsync(r.allSublayers,a,{equals:(e,r)=>+e.id==+r.id,onMatch:async(e,r)=>{await Layer.applyToEsriApiSublayer(r,e)},onMissing:e=>{r.sublayers.remove(e)},onNew:async e=>{const a=await Layer.toEsriApiSublayer(e,"ArcGISMapServiceLayer");a.layer=r,i.set(a.id,a)}}),a.forEach(((e,s)=>{var o;const l=+e.id,y=i.get(l);if(y)if(null!=e.parentLayerId&&-1!==e.parentLayerId){const r=i.get(e.parentLayerId);r&&(r.sublayers=null!==(o=r.sublayers)&&void 0!==o?o:new Collection,r.sublayers.add(y))}else r.sublayers.add(y);else{const i=r.allSublayers.find((e=>e.id===l));if(i){let o,l=r.allSublayers.find((r=>r.id===e.parentLayerId));if(l){o=a.filter((e=>e.parentLayerId===l.id)).map((e=>a.indexOf(e))).indexOf(s)}else o=s,l=r;l.sublayers.reorder(i,o)}}}))}else if(r.sublayers)for(const a of e.layers){if(void 0===a.id||null===a.id)continue;const e=r.allSublayers.find((e=>e.id===a.id));e&&(isDynamicLayer(a)&&fixDynamicLayer(a),await Layer.applyToEsriApiSublayer(a,e))}if(e.visibleLayers&&r.allSublayers)for(const a of r.allSublayers.toArray())a.visible=e.visibleLayers.includes(a.id)}!function(e){async function r(e,r,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISMapServiceLayer"===e),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",r).isNotMissing().satisfies(isMapImageLayer,ERR_LAYER_TYPE_MISMATCH);const i=deepClone(e);if(applyLayerBaseToEsriApiLayer(i,r),applyBasemapLayerToEsriApiLayer(i,r),applyOperationalLayerToEsriApiLayer(i,r),i.hasOwnProperty("url")&&(r.url=i.url),i.hasOwnProperty("itemId")&&(r.portalItem?r.portalItem.id=i.itemId:r.portalItem=new EsriPortalItem({id:i.itemId,portal:a||Portal.getDefault()})),r.loaded)await applySublayerPropertiesToEsriApiLayer(i,r);else{const e=r.load;let a=!1;r.load=async()=>{await e(),a||(a=!0,await applySublayerPropertiesToEsriApiLayer(i,r))}}}e.esriMapImageLayerDefaults={legendEnabled:!0,visible:!0,opacity:1},e.toEsriApiLayer=async function(e){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISMapServiceLayer"===e),ERR_LAYER_TYPE_MISMATCH);const a=new((await import("@arcgis/core/layers/MapImageLayer")).default);return await r(e,a),a},e.applyToEsriApiLayer=r,e.fromEsriApiMapImageLayer=function(r){checkArg("layer",r).isNotMissing();const a={...fromEsriApiLayerToLayerBase(r,e.esriMapImageLayerDefaults),...fromEsriApiLayerToOperationalLayer(r),layerType:"ArcGISMapServiceLayer",url:r.url};if(r.portalItem&&(a.itemId=r.portalItem.id),r.sublayers){a.layers=[],a.visibleLayers=[];const e=i=>{i.visible&&a.visibleLayers.push(i.id),a.layers.push(Layer.fromEsriApiSublayer(i,r)),i.sublayers&&i.sublayers.reverse().forEach(e)};r.sublayers.reverse().forEach(e)}return a}}(MapServiceLayer||(MapServiceLayer={}));
@@ -1 +1 @@
1
- import EsriPopupTemplate from"@arcgis/core/PopupTemplate";import{checkArg}from"../utilities/checkArg.js";import{deepClone}from"../utilities/object.js";export var PopupInfo;!function(p){p.toEsriApiPopupTemplate=function(p){checkArg("json",p).isNotMissing();const e=deepClone(p);e.popupElements&&(e.popupElements=e.popupElements.map((p=>("attachments"===p.type&&"auto"===p.displayType&&delete p.displayType,p))));const o=EsriPopupTemplate.fromJSON(e);return o.content||(o.content=[]),o},p.fromEsriApiPopupTemplate=function(p){return checkArg("popupTemplate",p).isNotMissing(),p.toJSON()}}(PopupInfo||(PopupInfo={}));
1
+ import EsriPopupTemplate from"@arcgis/core/PopupTemplate";import{checkArg}from"../utilities/checkArg.js";import{deepClone}from"../utilities/object.js";export var PopupInfo;!function(o){o.toEsriApiPopupTemplate=function(o){checkArg("json",o).isNotMissing();const p=deepClone(o),e=EsriPopupTemplate.fromJSON(p);return e.content||(e.content=[]),e},o.fromEsriApiPopupTemplate=function(o){return checkArg("popupTemplate",o).isNotMissing(),o.toJSON()}}(PopupInfo||(PopupInfo={}));
package/support/esri.d.ts CHANGED
@@ -52,6 +52,8 @@ export declare type locatorSuggestLocationsParams = __esri.locatorSuggestLocatio
52
52
  export declare type TimeIntervalUnits = __esri.TimeIntervalProperties["unit"];
53
53
  export declare type WebMapTimeSliderObject = __esri.WebMapTimeSlider;
54
54
  export declare type WebMapWidgetsObject = __esri.Widgets;
55
+ export declare type EditsResult = __esri.EditsResult;
56
+ export declare type Domain = __esri.CodedValueDomain | __esri.InheritedDomain | __esri.RangeDomain;
55
57
  export interface PointCloudLayerCachedStatistics {
56
58
  attribute: string;
57
59
  labels: PointCloudLayerCachedStatisticsLabels;
@@ -20,6 +20,11 @@ export declare type ClientSideQueryableSublayerExtension = BuildingComponentSubl
20
20
  * A query provider that only uses client-side data.
21
21
  */
22
22
  export declare abstract class ClientSideQueryProvider extends QueryProviderBase {
23
+ /**
24
+ * Whether to wait for the layerView.updating flag to return false before
25
+ * executing the query.
26
+ */
27
+ protected get _waitForUpdatingFinished(): boolean;
23
28
  /**
24
29
  * @inheritdoc
25
30
  */
@@ -1 +1 @@
1
- import{toFeature}from"../../data/Feature.js";import{cancelifyWithAbortSignal}from"../../support/Cancellable.js";import*as asyncIterable from"../../utilities/asyncIterable.js";import{isBuildingComponentSublayer}from"../../utilities/layers.js";import{QueryProviderBase}from"./QueryProviderBase.js";export class ClientSideQueryProvider extends QueryProviderBase{_query(e,t,r){const a=this;return async function*(){const i=await a._getClientSideLayerGraphics(e,t,r);i&&i.length?yield*i.map((t=>toFeature(t,{source:e}))):yield*asyncIterable.empty()}()}async _count(e,t,r){const a=await this._getClientSideLayerGraphics(e,t,r);return{source:e,count:a?a.length:0}}_createQuery(e,t,r){var a;const{_layerView:i,featureSettings:n}=e,s=isBuildingComponentSublayer(e.sublayer)?null===(a=e.layerExtension)||void 0===a?void 0:a.mapExtension:e.mapExtension,o=i.createQuery();return o.where=t,o.geometry=r.spatialFilter,o.outFields=n.outFields,o.returnGeometry=r.returnGeometry,o.outSpatialReference=r.outSpatialReference,o.maxAllowableOffset=r.maxAllowableOffset,o.num=r.maxResults,o.returnZ="scene"===(null==s?void 0:s.viewMode),o}async _getClientSideLayerGraphics(e,t,r){const{_layerView:a}=e;if(!a)return;await new Promise(((e,t)=>{a.updating||e();const r=a.watch("updating",(t=>{t||(r.remove(),e())}))}));const i=await cancelifyWithAbortSignal((async i=>a.queryFeatures(this._createQuery(e,t,r),{signal:i})),r.cancelToken);return null==i?void 0:i.features}}
1
+ import{toFeature}from"../../data/Feature.js";import{cancelify,cancelifyWithAbortSignal}from"../../support/Cancellable.js";import*as asyncIterable from"../../utilities/asyncIterable.js";import{isBuildingComponentSublayer}from"../../utilities/layers.js";import{QueryProviderBase}from"./QueryProviderBase.js";export class ClientSideQueryProvider extends QueryProviderBase{get _waitForUpdatingFinished(){return!0}_query(e,t,r){const i=this;return async function*(){const a=await i._getClientSideLayerGraphics(e,t,r);a&&a.length?yield*a.map((t=>toFeature(t,{source:e}))):yield*asyncIterable.empty()}()}async _count(e,t,r){const i=await this._getClientSideLayerGraphics(e,t,r);return{source:e,count:i?i.length:0}}_createQuery(e,t,r){var i;const{_layerView:a,featureSettings:n}=e,s=isBuildingComponentSublayer(e.sublayer)?null===(i=e.layerExtension)||void 0===i?void 0:i.mapExtension:e.mapExtension,o=a.createQuery();return o.where=t,o.geometry=r.spatialFilter,o.outFields=n.outFields,o.returnGeometry=r.returnGeometry,o.outSpatialReference=r.outSpatialReference,o.maxAllowableOffset=r.maxAllowableOffset,o.num=r.maxResults,o.returnZ="scene"===(null==s?void 0:s.viewMode),o}async _getClientSideLayerGraphics(e,t,r){const{_layerView:i}=e;if(!i)return;this._waitForUpdatingFinished&&await cancelify(new Promise(((e,t)=>{i.updating||e();const r=i.watch("updating",(t=>{t||(r.remove(),e())}))})),r.cancelToken);const a=await cancelifyWithAbortSignal((async a=>i.queryFeatures(this._createQuery(e,t,r),{signal:a})),r.cancelToken);return null==a?void 0:a.features}}
@@ -1 +1 @@
1
- import{InvalidOperationError}from"../../InvalidOperationError.js";import{isCancellation}from"../../support/utilities.js";import{checkArg}from"../../utilities/checkArg.js";import{Collection}from"../../utilities/collection.js";import{ArcGISServiceTableQueryProvider}from"./ArcGISServiceTableQueryProvider.js";import{ArcGISSublayerQueryProvider}from"./ArcGISSublayerQueryProvider.js";import{BuildingComponentSublayerClientSideQueryProvider}from"./BuildingComponentSublayerClientSideQueryProvider.js";import{CSVLayerClientSideQueryProvider}from"./CSVLayerClientSideQueryProvider.js";import{FeatureLayerQueryProvider}from"./FeatureLayerQueryProvider.js";import{GeoRSSLayerQueryProvider}from"./GeoRSSLayerQueryProvider.js";import{ImageryLayerQueryProvider}from"./ImageryLayerQueryProvider.js";import{KMLLayerQueryProvider}from"./KMLLayerQueryProvider.js";import{QueryError}from"./QueryError.js";import{QueryOptions}from"./QueryOptions.js";import{SceneLayerClientSideQueryProvider}from"./SceneLayerClientSideQueryProvider.js";import{SceneLayerQueryProvider}from"./SceneLayerQueryProvider.js";import{StreamLayerClientSideQueryProvider}from"./StreamLayerClientSideQueryProvider.js";export class QueryService{constructor(){this.providers=new Collection,this.providers.add(new ArcGISServiceTableQueryProvider),this.providers.add(new ArcGISSublayerQueryProvider),this.providers.add(new CSVLayerClientSideQueryProvider),this.providers.add(new FeatureLayerQueryProvider),this.providers.add(new GeoRSSLayerQueryProvider),this.providers.add(new ImageryLayerQueryProvider),this.providers.add(new KMLLayerQueryProvider),this.providers.add(new BuildingComponentSublayerClientSideQueryProvider),this.providers.add(new SceneLayerQueryProvider),this.providers.add(new SceneLayerClientSideQueryProvider),this.providers.add(new StreamLayerClientSideQueryProvider)}isSupported(r){return!!this.providers.find((e=>e.isSupported(r)))}query(r,e,i){checkArg("source",r).isNotMissing(),checkArg("where",e).isNotMissing().isNotEmpty();const o=this.providers.find((e=>e.isSupported(r)));if(!o)throw new InvalidOperationError("Unable to query: no provider registered for this type of feature source.");return async function*(){try{await r.initialize();const t={...QueryOptions.DEFAULTS,...QueryOptions.fromFeatureSource(r),...i},d=o.query(r,e,t);for await(const r of d)t.outSpatialReference&&(r.schema.spatialReference=t.outSpatialReference),yield r}catch(e){throw isCancellation(e)?e:new QueryError(r,e)}}()}async count(r,e,i){checkArg("source",r).isNotMissing(),checkArg("where",e).isNotMissing();const o=this.providers.find((e=>e.isSupported(r)));if(!o)throw new InvalidOperationError("Unable to query: no provider registered for this type of feature source.");try{await r.initialize();const t={returnGeometry:!1,outFields:void 0};return await o.count(r,e,{...QueryOptions.fromFeatureSource(r),...i,...t})}catch(e){throw isCancellation(e)?e:new QueryError(r,e)}}}
1
+ import{InvalidOperationError}from"../../InvalidOperationError.js";import{isCancellation}from"../../support/utilities.js";import{checkArg}from"../../utilities/checkArg.js";import{Collection}from"../../utilities/collection.js";import{ArcGISServiceTableQueryProvider}from"./ArcGISServiceTableQueryProvider.js";import{ArcGISSublayerQueryProvider}from"./ArcGISSublayerQueryProvider.js";import{BuildingComponentSublayerClientSideQueryProvider}from"./BuildingComponentSublayerClientSideQueryProvider.js";import{CSVLayerClientSideQueryProvider}from"./CSVLayerClientSideQueryProvider.js";import{FeatureLayerQueryProvider}from"./FeatureLayerQueryProvider.js";import{GeoRSSLayerQueryProvider}from"./GeoRSSLayerQueryProvider.js";import{ImageryLayerQueryProvider}from"./ImageryLayerQueryProvider.js";import{KMLLayerQueryProvider}from"./KMLLayerQueryProvider.js";import{QueryError}from"./QueryError.js";import{QueryOptions}from"./QueryOptions.js";import{SceneLayerClientSideQueryProvider}from"./SceneLayerClientSideQueryProvider.js";import{SceneLayerQueryProvider}from"./SceneLayerQueryProvider.js";import{StreamLayerClientSideQueryProvider}from"./StreamLayerClientSideQueryProvider.js";export class QueryService{constructor(){this.providers=new Collection,this.providers.add(new ArcGISServiceTableQueryProvider),this.providers.add(new ArcGISSublayerQueryProvider),this.providers.add(new CSVLayerClientSideQueryProvider),this.providers.add(new FeatureLayerQueryProvider),this.providers.add(new GeoRSSLayerQueryProvider),this.providers.add(new ImageryLayerQueryProvider),this.providers.add(new KMLLayerQueryProvider),this.providers.add(new BuildingComponentSublayerClientSideQueryProvider),this.providers.add(new SceneLayerClientSideQueryProvider),this.providers.add(new SceneLayerQueryProvider),this.providers.add(new StreamLayerClientSideQueryProvider)}isSupported(r){return!!this.providers.find((e=>e.isSupported(r)))}query(r,e,i){checkArg("source",r).isNotMissing(),checkArg("where",e).isNotMissing().isNotEmpty();const o=this.providers.find((e=>e.isSupported(r)));if(!o)throw new InvalidOperationError("Unable to query: no provider registered for this type of feature source.");return async function*(){try{await r.initialize();const t={...QueryOptions.DEFAULTS,...QueryOptions.fromFeatureSource(r),...i},d=o.query(r,e,t);for await(const r of d)t.outSpatialReference&&(r.schema.spatialReference=t.outSpatialReference),yield r}catch(e){throw isCancellation(e)?e:new QueryError(r,e)}}()}async count(r,e,i){checkArg("source",r).isNotMissing(),checkArg("where",e).isNotMissing();const o=this.providers.find((e=>e.isSupported(r)));if(!o)throw new InvalidOperationError("Unable to query: no provider registered for this type of feature source.");try{await r.initialize();const t={returnGeometry:!1,outFields:void 0};return await o.count(r,e,{...QueryOptions.fromFeatureSource(r),...i,...t})}catch(e){throw isCancellation(e)?e:new QueryError(r,e)}}}
@@ -1 +1 @@
1
- import{isSceneLayer}from"../../utilities/_layers.js";import{isWebScene}from"../../utilities/mapping.js";import{ClientSideQueryProvider}from"./ClientSideQueryProvider.js";export class SceneLayerClientSideQueryProvider extends ClientSideQueryProvider{isSupported(e){var r;const i=!!e._layerView&&isWebScene(null===(r=e.mapExtension)||void 0===r?void 0:r.map),{layer:t}=e;return isSceneLayer(t)&&i}_createQuery(e,r,i){const t=super._createQuery(e,r,i);return"mesh"===e.layer.geometryType&&(t.returnGeometry=!1),t}}
1
+ import{isSceneLayer}from"../../utilities/_layers.js";import{isWebScene}from"../../utilities/mapping.js";import{ClientSideQueryProvider}from"./ClientSideQueryProvider.js";export class SceneLayerClientSideQueryProvider extends ClientSideQueryProvider{isSupported(e){var r;const i=!!e._layerView&&isWebScene(null===(r=e.mapExtension)||void 0===r?void 0:r.map),{layer:t}=e;return isSceneLayer(t)&&i&&(e.enableClientSideData||!e.layer.associatedLayer)}_createQuery(e,r,i){const t=super._createQuery(e,r,i);return"mesh"===e.layer.geometryType&&(t.returnGeometry=!1),t}}
@@ -1 +1 @@
1
- import{executeQuery,executeCount}from"../../support/_query.js";import{isSceneLayer}from"../../utilities/_layers.js";import{QueryProviderBase}from"./QueryProviderBase.js";export class SceneLayerQueryProvider extends QueryProviderBase{isSupported(e){const{layer:r}=e;return isSceneLayer(r)&&!!r.associatedLayer&&!e.enableClientSideData}_query(e,r,t){const{layer:a}=e,s=a.associatedLayer.createQuery();return s.where=r,s.outFields=t.outFields,s.returnGeometry=t.returnGeometry,s.outSpatialReference=t.outSpatialReference,s.maxAllowableOffset=t.maxAllowableOffset,t.spatialFilter&&(s.spatialRelationship="intersects",s.geometry=t.spatialFilter),s.num=t.maxResults,s.returnZ=!0,executeQuery(s,e,a.associatedLayer,t.cancelToken)}async _count(e,r,t){const{layer:a}=e,s=a.associatedLayer.createQuery();return s.where=r,s.outFields=t.outFields,s.returnGeometry=t.returnGeometry,t.spatialFilter&&(s.spatialRelationship="intersects",s.geometry=t.spatialFilter),s.num=t.maxResults,executeCount(s,e,a.associatedLayer,t.cancelToken)}}
1
+ import{executeQuery,executeCount}from"../../support/_query.js";import{isSceneLayer}from"../../utilities/_layers.js";import{QueryProviderBase}from"./QueryProviderBase.js";export class SceneLayerQueryProvider extends QueryProviderBase{isSupported(e){const{layer:r}=e;return isSceneLayer(r)&&!!r.associatedLayer}_query(e,r,t){const{layer:a}=e,s=a.associatedLayer.createQuery();return s.where=r,s.outFields=t.outFields,s.returnGeometry=t.returnGeometry,s.outSpatialReference=t.outSpatialReference,s.maxAllowableOffset=t.maxAllowableOffset,t.spatialFilter&&(s.spatialRelationship="intersects",s.geometry=t.spatialFilter),s.num=t.maxResults,s.returnZ=!0,executeQuery(s,e,a.associatedLayer,t.cancelToken)}async _count(e,r,t){const{layer:a}=e,s=a.associatedLayer.createQuery();return s.where=r,s.outFields=t.outFields,s.returnGeometry=t.returnGeometry,t.spatialFilter&&(s.spatialRelationship="intersects",s.geometry=t.spatialFilter),s.num=t.maxResults,executeCount(s,e,a.associatedLayer,t.cancelToken)}}
@@ -6,6 +6,10 @@ import type { QueryOptions } from "./QueryOptions.js";
6
6
  * A query provider for stream layers.
7
7
  */
8
8
  export declare class StreamLayerClientSideQueryProvider extends ClientSideQueryProvider {
9
+ /**
10
+ * @inheritdoc
11
+ */
12
+ protected get _waitForUpdatingFinished(): boolean;
9
13
  /**
10
14
  * @inheritdoc
11
15
  */
@@ -1 +1 @@
1
- import{isStreamLayer}from"../../utilities/_layers.js";import{isWebScene}from"../../utilities/mapping.js";import{ClientSideQueryProvider}from"./ClientSideQueryProvider.js";export class StreamLayerClientSideQueryProvider extends ClientSideQueryProvider{isSupported(e){var r;const i=e._layerView&&isWebScene(null===(r=e.mapExtension)||void 0===r?void 0:r.map),{layer:t}=e;return isStreamLayer(t)&&!i}_createQuery(e,r,i){var t;const s=super._createQuery(e,r,i),o=null===(t=s.outFields)||void 0===t?void 0:t.findIndex((e=>"__esri_stream_id__"===e));return o>=0&&s.outFields.splice(o,1),s}}
1
+ import{isStreamLayer}from"../../utilities/_layers.js";import{isWebScene}from"../../utilities/mapping.js";import{ClientSideQueryProvider}from"./ClientSideQueryProvider.js";export class StreamLayerClientSideQueryProvider extends ClientSideQueryProvider{get _waitForUpdatingFinished(){return!1}isSupported(e){var r;const i=e._layerView&&isWebScene(null===(r=e.mapExtension)||void 0===r?void 0:r.map),{layer:t}=e;return isStreamLayer(t)&&!i}_createQuery(e,r,i){var t;const s=super._createQuery(e,r,i),o=null===(t=s.outFields)||void 0===t?void 0:t.findIndex((e=>"__esri_stream_id__"===e));return o>=0&&s.outFields.splice(o,1),s}}
@@ -1 +1 @@
1
- import Extent from"@arcgis/core/geometry/Extent";import Multipoint from"@arcgis/core/geometry/Multipoint";import Point from"@arcgis/core/geometry/Point";import Polygon from"@arcgis/core/geometry/Polygon";import Polyline from"@arcgis/core/geometry/Polyline";import SpatialReference from"@arcgis/core/geometry/SpatialReference";import{buffer as esriBuffer,difference,geodesicBuffer as esriGeodesicBuffer,union}from"@arcgis/core/geometry/geometryEngine";import{isSupported,isLoaded,load,getTransformation,project as projectionEngineProject}from"@arcgis/core/geometry/projection";import{canProject,project as webMercatorProject}from"@arcgis/core/geometry/support/webMercatorUtils";import{buffer as esriGeometryServiceBuffer,project as esriGeometryServiceProject}from"@arcgis/core/rest/geometryService";import BufferParameters from"@arcgis/core/rest/support/BufferParameters";import ProjectParameters from"@arcgis/core/rest/support/ProjectParameters";import{ArgumentError}from"../ArgumentError.js";import{config}from"../config.js";import{GeometryServiceError}from"./GeometryServiceError.js";import{getGmlNS,ogcSrsToEsriSr}from"./_ogc.js";import{groupBy}from"./array.js";import{checkArg}from"./checkArg.js";import{isEsriObject}from"./esri.js";import{parse}from"./number.js";export{}from"./transformation.js";const wktRegex=/^(POINT|MULTIPOINT|LINESTRING|MULTILINESTRING|POLYGON)\s(?:(ZM|Z|M)\s)?(\(.+\))$/,wktPointRegex=/^\(?([-\d.]+)\s([-\d.]+)(?:\s([-\d.]+))?(?:\s([-\d.]+))?\)?$/,wktArrayRegex=/^\(([-\d.\s(),]+)\)$/,gmlToEsriParseError="Unable to convert the GML geometry into an Esri geometry.",DEFAULT_GEOMETRY_SERVICE_URL="https://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer",wktNameRegex=/^(PROJCS|GEOGCS|VERTCS|GEOGTRAN|VERTTRAN)\s?\[\s?"(\w+)",.*/,commonWktStrings={4326:{name:"GCS_WGS_1984",wkt:'GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]'},102100:{name:"WGS_1984_Web_Mercator_Auxiliary_Sphere",wkt:'PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]'}},wktModules={PROJCS:"projected",GEOGCS:"geographic",VERTCS:"vertical",GEOGTRAN:"transformations",VERTTRAN:"vertical-transformations"},wktData={};export class CoordinateSystemBounds{constructor(e){this.limit=e}get min(){return-this.limit}get max(){return this.limit}get range(){return 2*this.limit}}export const WEB_MERCATOR_BOUNDS=new CoordinateSystemBounds(20037508.342788905);export const GEOGRAPHIC_BOUNDS=new CoordinateSystemBounds(180);export function getBounds(e){return e.isWebMercator?WEB_MERCATOR_BOUNDS:e.isGeographic?GEOGRAPHIC_BOUNDS:void 0}export function getScreenExtent(e){if(!e||0===e.length)return;let r,t,n,o;const{spatialReference:i}=e[0];let s;i.isWebMercator?s=WEB_MERCATOR_BOUNDS:i.isGeographic&&(s=GEOGRAPHIC_BOUNDS);const a=(e,i)=>{(!t||e>t)&&(t=e),(!r||e<r)&&(r=e),(!o||i>o)&&(o=i),(!n||i<n)&&(n=i)},c=e=>s&&Math.sign(e.extent.xmax)!==Math.sign(e.extent.xmin),l=e=>{const r=c(e)?denormalize([e.points],s)[0]:e.points;for(const e of r)a(e[0],e[1])},m=e=>{const r=c(e)?denormalize(e.rings,s):e.rings;for(const e of r)for(const r of e)a(r[0],r[1])},g=e=>{const r=c(e)?denormalize(e.paths,s):e.paths;for(const e of r)for(const r of e)a(r[0],r[1])};for(const r of e.filter((e=>e.spatialReference.equals(i))))switch(r.type){case"point":a(r.x,r.y);break;case"multipoint":l(r);break;case"extent":m(Polygon.fromExtent(r));break;case"polyline":g(r);break;case"polygon":m(r);break;default:throw new Error(`Cannot determine a valid screen extent for geometry type ${r.type}`)}return new Extent({xmin:r>t?t:r,xmax:t<r?r:t,ymin:n,ymax:o,spatialReference:i})}function denormalize(e,r){if(!r)return e;const t=[...e];let n=-1/0,o=1/0;for(let e of t){let t=-1/0,i=1/0;for(const n of e){for(;n[0]<r.min;)n[0]+=r.range;for(;n[0]>r.max;)n[0]-=r.range;i=Math.min(i,n[0]),t=Math.max(t,n[0])}let s=Math.min(o,i),a=Math.max(n,t);if(a-s>r.limit){t=-1/0,i=1/0;const c=[...e];for(const e of c)e[0]<0?e[0]+=r.range:e[0]-=r.range,i=Math.min(i,e[0]),t=Math.max(t,e[0]);const l=Math.min(o,i),m=Math.max(n,t);m-l<a-s&&(e=c,s=l,a=m)}o=Math.min(s,i),n=Math.max(a,t)}return t}export function denormalizeExtent(e,r){if(!r)return e;const t=Polygon.fromExtent(e);return t.rings=denormalize(t.rings,r),t.extent}export function esriToWKT(e){checkArg("geometry",e).isNotMissing();const r=`${e.hasZ?"Z":""}${e.hasM?"M":""}${e.hasM||e.hasZ?" ":""}`;if(isPoint(e)){const{x:t,y:n,z:o,m:i}=e,s=[t,n];return e.hasZ&&s.push(o),e.hasM&&s.push(i),`POINT ${r}(${_createWktPoint(s)})`}if(isMultipoint(e))return`MULTIPOINT ${r}(${_createWktPointArray(e.points)})`;if(isPolyline(e))return e.paths.length>1?`MULTILINESTRING ${r}(${_createWkt2DPointArray(e.paths)})`:`LINESTRING ${r}(${_createWktPointArray(e.paths[0])})`;if(isPolygon(e))return`POLYGON ${r}(${_createWkt2DPointArray(e.rings)})`;if(isExtent(e)){const t=[e.xmin,e.ymax];return`POLYGON ${r}(${_createWkt2DPointArray([[t,[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin],t]])})`}throw new ArgumentError("Cannot determine what type of WKT geometry to create")}export function wktToEsri(e,r){var t,n;checkArg("geometry",e).isNotMissing();const o=e.match(wktRegex);if(o){const e=null===(t=o[2])||void 0===t?void 0:t.includes("Z"),i=null===(n=o[2])||void 0===n?void 0:n.includes("M");switch(o[1]){case"POINT":{const t=_parseWktPoint(o[3],o[2]);return new Point({x:t[0],y:t[1],z:e?t[2]:void 0,m:!e&&i?t[2]:i?t[3]:void 0,hasZ:e,hasM:i,spatialReference:r||SpatialReference.WGS84})}case"MULTIPOINT":{const t=_parseWktPointArray(o[3],o[2]);return new Multipoint({points:t,hasZ:e,hasM:i,spatialReference:r||SpatialReference.WGS84})}case"LINESTRING":{const t=_parseWktPointArray(o[3],o[2]);return new Polyline({paths:[t],hasZ:e,hasM:i,spatialReference:r||SpatialReference.WGS84})}case"MULTILINESTRING":{const t=_parseWkt2DPointArray(o[3],o[2]);return new Polyline({paths:t,hasZ:e,hasM:i,spatialReference:r||SpatialReference.WGS84})}case"POLYGON":{const t=_parseWkt2DPointArray(o[3],o[2]);return new Polygon({rings:t,hasZ:e,hasM:i,spatialReference:r||SpatialReference.WGS84})}}}throw new ArgumentError("Cannot determine what type of esri geometry to create")}export function esriToGeoJSON(e){if(checkArg("geometry",e).isNotMissing(),isPoint(e)){const{x:r,y:t}=e;return{type:"Point",coordinates:[r,t]}}if(isMultipoint(e))return{type:"MultiPoint",coordinates:e.points};if(isPolyline(e))return e.paths.length>1?{type:"MultiLineString",coordinates:e.paths}:{type:"LineString",coordinates:e.paths[0]};if(isPolygon(e))return{type:"Polygon",coordinates:e.rings};if(isExtent(e)){const r=[e.xmin,e.ymax];return{type:"Polygon",coordinates:[[r,[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin],r]]}}throw new ArgumentError("Cannot determine what type of WKT geometry to create")}export function geoJSONToEsri(e){switch(checkArg("geometry",e).isNotMissing(),checkArg("geometry.type",e.type).isNotMissing(),e.type){case"Point":return checkArg("geometry.coordinates",e.coordinates).satisfies(_isGeoJSONPoint),new Point({x:e.coordinates[0],y:e.coordinates[1],spatialReference:SpatialReference.WGS84});case"MultiPoint":return checkArg("geometry.coordinates",e.coordinates).satisfies(_isGeoJSONPointArray),new Multipoint({points:e.coordinates,spatialReference:SpatialReference.WGS84});case"LineString":return checkArg("geometry.coordinates",e.coordinates).satisfies(_isGeoJSONPointArray),new Polyline({paths:[e.coordinates],spatialReference:SpatialReference.WGS84});case"MultiLineString":return checkArg("geometry.coordinates",e.coordinates).satisfies(_isGeoJSON2DPointArray),new Polyline({paths:e.coordinates,spatialReference:SpatialReference.WGS84});case"Polygon":return checkArg("geometry.coordinates",e.coordinates).satisfies(_isGeoJSON2DPointArray),new Polygon({rings:e.coordinates,spatialReference:SpatialReference.WGS84});case"MultiPolygon":return checkArg("geometry.coordinates",e.coordinates).satisfies(_isGeoJSON2DPointArrayArray),new Polygon({rings:e.coordinates.flat(),spatialReference:SpatialReference.WGS84})}throw new ArgumentError("Cannot determine what type of esri geometry to create")}export function gmlToEsri(e){switch(checkArg("geometry",e).isNotMissing(),e.localName){case"Point":return _createEsriPoint(e);case"MultiPoint":return _createEsriMultiPoint(e);case"LineString":case"Curve":case"MultiLineString":case"MultiCurve":return _createEsriPolyline(e);case"Polygon":case"MultiPolygon":return _createEsriPolygon(e);default:throw new ArgumentError("Unrecognized geometry type.")}}export function esriToGml(e,r){switch(checkArg("geometry",e).isNotMissing(),checkArg("geometry type",e.type).isNotMissing(),checkArg("gmlVersion",r.gmlVersion).isNotMissing(),e.type){case"point":return _createGmlPointElement(e,r);case"polyline":return _createGmlLineStringElement(e,r);case"polygon":case"extent":return _createGmlPolygonElement(e,r);default:throw new ArgumentError(`Unrecognized geometry type: ${e.type}. Must be one of point, polyline or polygon.`)}}export async function esriWkidToWkt(e){checkArg("wkid",e).isNotMissing();let r=commonWktStrings[`${e}`];if(!r)for(const t of Object.keys(wktModules)){const n=wktModules[t];if(r=(await fetchEsriProjCodes(n))[e],r){const t=r.wkt.match(wktNameRegex);commonWktStrings[e]={name:t[2],wkt:r.wkt};break}}if(!r)throw new Error(`Failed to find Wkt for id ${e}`);return r.wkt}export async function esriWktToWkid(e){checkArg("wkt",e).isNotMissing();const r=e.match(wktNameRegex);if(r){let e=Object.keys(commonWktStrings).find((e=>commonWktStrings[e].name===r[2]));if(!e){const t=wktModules[r[1]];if(t){const n=await fetchEsriProjCodes(t);e=Object.keys(n).find((e=>n[e].name===r[2])),e&&(commonWktStrings[e]={name:r[2],wkt:n[e].wkt})}}if(e)return parseInt(e)}throw new Error(`Failed to find Wkid for ${e}`)}export function createCrossTypeUnion(e){const r=[],t=groupBy(e,(e=>e.type));for(const e of GEOM_ORDER){const n=t.get(e);let o;if(null==n?void 0:n.length){o=n.length>1?union(n):n[0];for(const e of r)o=difference(o,e);o&&r.push(o)}}return r}const GEOM_ORDER=["mesh","extent","polygon","polyline","multipoint","point"];async function fetchEsriProjCodes(e){if(void 0===wktData[e])switch(e){case wktModules.GEOGCS:wktData[e]=(await import("esri-proj-codes/geographic.json")).default;break;case wktModules.PROJCS:wktData[e]=(await import("esri-proj-codes/projected.json")).default;break;case wktModules.GEOGTRAN:wktData[e]=(await import("esri-proj-codes/transformations.json")).default;break;case wktModules.VERTCS:wktData[e]=(await import("esri-proj-codes/vertical.json")).default;break;case wktModules.VERTTRAN:wktData[e]=(await import("esri-proj-codes/vertical-transformations.json")).default}const r=wktData[e];if(!r)throw new Error(`Invalid esri-proj-codes module: ${e}`);return r}export async function project(e,r,t){checkArg("geometries",e).isNotMissing().satisfies(_geometriesAreUniform,"All geometries must have the same type and spatial reference."),checkArg("outSpatialReference",r).isNotMissing();const n=Array.from(e);if(n.length<=0)return n;const o=_getInputSpatialReference(e),i=_getProjectOptions(o,r,t);if(void 0===i){if(o.equals(r))return n;if(canProject(o,r))return n.map((e=>webMercatorProject(e,r)));if(isSupported()&&(isLoaded()||await load(),null!==getTransformation(o,r))){const e=projectionEngineProject(n,r);return Array.isArray(e)?e:[e]}}if(i&&i.steps.length>1)throw new ArgumentError("GeographicTransformation","Geometry Service can't handle a two step transformation");return _projectWithGeometryService(n,r,i)}export async function buffer(e,r,t,n=!1){const o=Array.isArray(e),i=Array.isArray(r);if(o!==i)throw new ArgumentError("Geometries and distances must be the same type.");const s=Array.isArray(e)?e[0].spatialReference:e.spatialReference;if(s.isWebMercator||s.isWGS84)return esriGeodesicBuffer(e,r,t,n);if(s.isGeographic){const s=new BufferParameters({geometries:o?e:[e],distances:i?r:[r],unit:t,unionResults:n});return esriGeometryServiceBuffer(getGeometryServiceUrl(),s)}return esriBuffer(e,r,t,n)}export function removeZValues(e){const r=e;switch(r.type){case"point":r.z=void 0;break;case"polyline":case"polygon":_removeZCoords(r.paths||r.rings,r.hasM).forEach(((e,t)=>e.forEach(((e,n)=>r.setPoint(t,n,e)))));break;case"extent":r.zmax=void 0,r.zmin=void 0}return r}function _removeZCoords(e,r=!1){const t=r?3:2;return e.map((e=>e.map((e=>e.slice(0,t)))))}function _createWktPoint(e){return e.join(" ")}function _createWktPointArray(e){return e.map(_createWktPoint).join(", ")}function _createWkt2DPointArray(e){return e.map((e=>`(${_createWktPointArray(e)})`)).join(", ")}function _parseInvariant(e){return parse({locale:"inv"},e)}function _parseWktPoint(e,r){const t=null!=r?r:"",n=e.match(wktPointRegex);if(n){const e=[_parseInvariant(n[1]),_parseInvariant(n[2])];return(t.includes("Z")||!t.includes("Z")&&t.includes("M"))&&n[3]&&e.push(_parseInvariant(n[3])),t.includes("M")&&n[4]&&e.push(_parseInvariant(n[4])),e}throw new ArgumentError(`Detected invalid WKT point: ${e}`)}function _parseWktPointArray(e,r){const t=e.match(wktArrayRegex);if(t)return _parseWktArray(t[1]).map((e=>_parseWktPoint(e,r)));throw new ArgumentError(`Detected invalid WKT point array: ${e}`)}function _parseWkt2DPointArray(e,r){const t=e.match(wktArrayRegex);if(t)return _parseWktArray(t[1]).map((e=>_parseWktPointArray(e,r)));throw new ArgumentError(`Detected invalid WKT 2D point array: ${e}`)}function _parseWktArray(e){let r=e.trim().replace(/\s*,\s*/g,","),t=0;for(let e=0;e<r.length;e++)switch(r.charAt(e)){case"(":t++;break;case")":t--;break;case",":0===t&&(r=`${r.substr(0,e)}&${r.substr(e+1)}`)}return r.split("&")}function _isGeoJSONPoint(e){return!!Array.isArray(e)&&!e.some((e=>"number"!=typeof e))}function _isGeoJSONPointArray(e){return!!Array.isArray(e)&&!e.some((e=>!_isGeoJSONPoint(e)))}function _isGeoJSON2DPointArray(e){return!!Array.isArray(e)&&!e.some((e=>!_isGeoJSONPointArray(e)))}function _isGeoJSON2DPointArrayArray(e){return!!Array.isArray(e)&&!e.some((e=>!_isGeoJSON2DPointArray(e)))}async function _projectWithGeometryService(e,r,t){const n=new ProjectParameters({geometries:e,outSpatialReference:r});(null==t?void 0:t.hasOwnProperty("transformation"))&&(n.transformation=t.steps[0].wkid?{wkid:t.steps[0].wkid}:{wkt:t.steps[0].wkt},n.transformForward=!t.hasOwnProperty("transformForward")||!t.steps[0].isInverse);try{return await esriGeometryServiceProject(getGeometryServiceUrl(),n)}catch(e){throw e instanceof Error?new GeometryServiceError(e):e}}function _geometriesAreUniform(e){const r=[...e];if(!(r.length>0))return!0;const t=r[0].type,n=r[0].spatialReference;return r.every((e=>e.type===t&&e.spatialReference.equals(n)))}function _getInputSpatialReference(e){for(const r of e)if(null!==(null==r?void 0:r.spatialReference))return r.spatialReference;return SpatialReference.WebMercator}function _getProjectOptions(e,r,t){return(null==t?void 0:t.hasOwnProperty("steps"))?{...t}:_getTransformProjectOptions(e,r)}function _getTransformProjectOptions(e,r){if(checkArg("inSr",e).isNotMissing(),checkArg("outSR",r).isNotMissing(),0===config.autoTransformations.length)return;const t=config.autoTransformations.filter((r=>r.inSpatialReference.equals(e))).filter((e=>e.outSpatialReference.equals(r)));if(t.length>0)return{...t[0].transformation};const n=config.autoTransformations.filter((e=>e.inSpatialReference.equals(r))).filter((r=>r.outSpatialReference.equals(e)));return n.length>0?{...n[0].transformation}:void 0}function _createEsriPoint(e){const r=_getEsriSpatialReference(e),t=_parseGmlCoordPair(e);if(t&&t.length>1)return new Point({x:t[0],y:t[1],spatialReference:r});throw new ArgumentError(gmlToEsriParseError)}function _createEsriMultiPoint(e){const r=new Array,t=_getEsriSpatialReference(e);if(e.childElementCount>0){const t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"pointMember")),n=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"pointMembers")),o=t.concat(...n);for(const e of o){const t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"Point"));for(const e of t)r.push(_parseGmlCoordPair(e))}}if(r&&r.length>0)return new Multipoint({points:r,spatialReference:t});throw new ArgumentError(gmlToEsriParseError)}function _createEsriPolyline(e){let r;const t=_getEsriSpatialReference(e);if("LineString"===e.localName?r=_parseGmlLineString(e):"Curve"===e.localName&&e.childElementCount>0?r=_parseGmlCurve(e):"MultiLineString"===e.localName&&e.childElementCount>0?r=_parseGmlMultiLineString(e):"MultiCurve"===e.localName&&e.childElementCount>0&&(r=_parseGmlMultiCurve(e)),r&&r.length>0)return new Polyline({paths:r,spatialReference:t});throw new ArgumentError(gmlToEsriParseError)}function _createEsriPolygon(e){let r;const t=_getEsriSpatialReference(e);if("Polygon"===e.localName?r=_parseGmlPolygon(e):"MultiPolygon"===e.localName&&(r=_parseGmlMultiPolygon(e)),r&&r.length>0)return new Polygon({rings:r,spatialReference:t});throw new ArgumentError(gmlToEsriParseError)}function _parseGmlLineString(e){return[_parseGmlCoords(e)]}function _parseGmlCurve(e){const r=new Array,t=e.getElementsByTagNameNS(e.namespaceURI,"segments");if(t.length>0){const n=Array.from(t[0].getElementsByTagNameNS(e.namespaceURI,"LineStringSegment"));for(const e of n){const t=_parseGmlCoords(e);r.push(t)}}return r}function _parseGmlMultiLineString(e){const r=new Array,t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"lineStringMember"));for(const e of t){const t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"LineString"));for(const e of t)r.push(_parseGmlCoords(e))}return r}function _parseGmlMultiCurve(e){const r=new Array,t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"curveMember")),n=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"curveMembers")),o=t.concat(...n);for(const e of o){const t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"LineString"));for(const e of t)r.push(_parseGmlCoords(e))}return r}function _parseGmlPolygon(e){checkArg("geometry",e).isNotMissing();const r=new Array,t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"outerBoundaryIs")),n=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"innerBoundaryIs")),o=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"exterior")),i=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"interior")),s=t.concat(...n).concat(...o).concat(...i);for(const e of s){const t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"LinearRing"));for(const e of t)r.push(_parseGmlCoords(e))}return r}function _parseGmlMultiPolygon(e){checkArg("geometry",e).isNotMissing();const r=new Array,t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"polygonMember"));for(const e of t){const t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"Polygon"));for(const e of t){const t=_parseGmlPolygon(e);r.push(...t)}}return r}function _parseGmlCoordPair(e){if(checkArg("geometry",e).isNotMissing(),"Point"!==e.localName)throw new ArgumentError(gmlToEsriParseError);const r=e.getElementsByTagNameNS(e.namespaceURI,"coordinates"),t=e.getElementsByTagNameNS(e.namespaceURI,"pos");if(r.length>0&&r[0].childNodes[0].nodeType===Node.TEXT_NODE){return _parseGmlCoordPairFromString(r[0].childNodes[0].data)}if(t.length>0&&t[0].childNodes[0].nodeType===Node.TEXT_NODE){return _parseGmlCoordPairFromString(t[0].childNodes[0].data)}throw new ArgumentError(gmlToEsriParseError)}function _parseGmlCoordPairFromString(e){const r=e.replace(/,/g,"").split(" ").map(Number);if(2===r.length)return[r[0],r[1]];throw new ArgumentError(gmlToEsriParseError)}function _parseGmlCoords(e){if(checkArg("geometry",e).isNotMissing(),"LineString"!==e.localName&&"LinearRing"!==e.localName&&"LineStringSegment"!==e.localName)throw new ArgumentError(gmlToEsriParseError);const r=e.getElementsByTagNameNS(e.namespaceURI,"coordinates"),t=e.getElementsByTagNameNS(e.namespaceURI,"posList");if(r.length>0&&r[0].childNodes[0].nodeType===Node.TEXT_NODE){return _parseCoordsFromString(r[0].childNodes[0].data)}if(t.length>0&&t[0].childNodes[0].nodeType===Node.TEXT_NODE){return _parseCoordsFromString(t[0].childNodes[0].data)}throw new ArgumentError(gmlToEsriParseError)}function _parseCoordsFromString(e){const r=e.replace(/,/g,"").split(" ").map(Number),t=new Array;for(let e=0;e<r.length;e+=2){if(void 0===r[e+1])throw new ArgumentError(gmlToEsriParseError);t.push([r[e],r[e+1]])}if(t.length>0)return t;throw new ArgumentError(gmlToEsriParseError)}function _getEsriSpatialReference(e){return checkArg("geometry",e).isNotMissing(),e.hasAttribute("srsName")?ogcSrsToEsriSr(e.getAttribute("srsName")):SpatialReference.WebMercator}function _createGmlPointElement(e,r){const t=getGmlNS(r.gmlVersion),n=_createElementWithNS(t,"Point","gml");let o,i;_applySrsAttributes(n,_getSrsName(e,r),r.hasOwnProperty("srsDimension")?r.srsDimension:void 0),"2.0"===r.gmlVersion||"3.0"===r.gmlVersion?(o=_createElementWithNS(t,"coordinates","gml"),i=_esriPointToString(", ",e)):(o=_createElementWithNS(t,"pos","gml"),i=_esriPointToString(" ",e)),n.appendChild(o);const s=_createTextNode(i);return o.appendChild(s),n}function _createGmlLineStringElement(e,r){const t=getGmlNS(r.gmlVersion),n=_createElementWithNS(t,"LineString","gml");let o,i;_applySrsAttributes(n,_getSrsName(e,r),r.hasOwnProperty("srsDimension")?r.srsDimension:void 0),"2.0"===r.gmlVersion||"3.0"===r.gmlVersion?(o=_createElementWithNS(t,"coordinates","gml"),i=_esriPolylineToString(", ",e)):(o=_createElementWithNS(t,"posList","gml"),i=_esriPolylineToString(" ",e)),n.appendChild(o);const s=_createTextNode(i);return o.appendChild(s),n}function _createGmlPolygonElement(e,r){const t=getGmlNS(r.gmlVersion),n=_createElementWithNS(t,"Polygon","gml");_applySrsAttributes(n,_getSrsName(e,r),r.hasOwnProperty("srsDimension")?r.srsDimension:void 0);const o="2.0"===r.gmlVersion?_createElementWithNS(t,"outerBoundaryIs","gml"):_createElementWithNS(t,"exterior","gml");n.appendChild(o);const i=_createElementWithNS(t,"LinearRing","gml");let s,a;o.appendChild(i),"2.0"===r.gmlVersion||"3.0"===r.gmlVersion?(s=_createElementWithNS(t,"coordinates","gml"),a=_esriPolygonToString(", ",e)):(s=_createElementWithNS(t,"posList","gml"),a=_esriPolygonToString(" ",e)),i.appendChild(s);const c=_createTextNode(a);return s.appendChild(c),n}function _getSrsName(e,r){if(r.hasOwnProperty("srsName"))return r.srsName;if(void 0!==e.spatialReference.wkid&&null!==e.spatialReference.wkid){if(e.spatialReference.wkid<32767)return`EPSG:${e.spatialReference.wkid}`;if(102100===e.spatialReference.wkid||900913===e.spatialReference.wkid||102113===e.spatialReference.wkid)return"EPSG:3857"}throw new ArgumentError("Unable to convert Esri WKT spatial reference to an OGC spatial reference")}function _applySrsAttributes(e,r,t){if(null!=r&&(e.setAttribute("srsName",r),null!=t)){const r=t<1?2:t;e.setAttribute("srsDimension",r.toString())}}function _createElementWithNS(e,r,t){checkArg("namespace",e).isNotMissing(),checkArg("name",r).isNotMissing();return document.implementation.createDocument(void 0,"temp",void 0).createElementNS(e,t?`${t}:${r}`:r)}function _createTextNode(e){return document.implementation.createDocument(void 0,"temp",void 0).createTextNode(e)}function _esriPointToString(e,r){const t=r;return" "===e?`${t.x} ${t.y}`:`${t.x}, ${t.y}`}function _esriPolylineToString(e,r){return r.paths[0].map((r=>r.join(e))).join(" ")}function _esriPolygonToString(e,r){let t;if(isPolygon(r))t=r.rings[0];else if(isExtent(r)){const{xmin:e,xmax:n,ymin:o,ymax:i}=r;t=[[e,i],[n,i],[n,o],[e,o],[e,i]]}return t.map((r=>r.join(e))).join(" ")}function getGeometryServiceUrl(){var e,r,t;return null!==(t=null!==(e=config.geometryServiceUrl)&&void 0!==e?e:null===(r=config._geometryService)||void 0===r?void 0:r.url)&&void 0!==t?t:DEFAULT_GEOMETRY_SERVICE_URL}export function isGeometry(e){return isPoint(e)||isMultipoint(e)||isPolyline(e)||isPolygon(e)||isExtent(e)||isMesh(e)}export function isPoint(e){return isEsriObject(e)&&"point"===(null==e?void 0:e.type)}export function isMultipoint(e){return isEsriObject(e)&&"multipoint"===(null==e?void 0:e.type)}export function isPolyline(e){return isEsriObject(e)&&"polyline"===(null==e?void 0:e.type)}export function isPolygon(e){return isEsriObject(e)&&"polygon"===(null==e?void 0:e.type)}export function isExtent(e){return isEsriObject(e)&&"extent"===(null==e?void 0:e.type)}export function isMesh(e){return isEsriObject(e)&&"mesh"===(null==e?void 0:e.type)}
1
+ import Extent from"@arcgis/core/geometry/Extent";import Multipoint from"@arcgis/core/geometry/Multipoint";import Point from"@arcgis/core/geometry/Point";import Polygon from"@arcgis/core/geometry/Polygon";import Polyline from"@arcgis/core/geometry/Polyline";import SpatialReference from"@arcgis/core/geometry/SpatialReference";import{buffer as esriBuffer,difference,geodesicBuffer as esriGeodesicBuffer,union}from"@arcgis/core/geometry/geometryEngine";import{isLoaded,load,getTransformation,project as projectionEngineProject}from"@arcgis/core/geometry/projection";import{canProject,project as webMercatorProject}from"@arcgis/core/geometry/support/webMercatorUtils";import{buffer as esriGeometryServiceBuffer,project as esriGeometryServiceProject}from"@arcgis/core/rest/geometryService";import BufferParameters from"@arcgis/core/rest/support/BufferParameters";import ProjectParameters from"@arcgis/core/rest/support/ProjectParameters";import{ArgumentError}from"../ArgumentError.js";import{config}from"../config.js";import{GeometryServiceError}from"./GeometryServiceError.js";import{getGmlNS,ogcSrsToEsriSr}from"./_ogc.js";import{groupBy}from"./array.js";import{checkArg}from"./checkArg.js";import{isEsriObject}from"./esri.js";import{parse}from"./number.js";export{}from"./transformation.js";const wktRegex=/^(POINT|MULTIPOINT|LINESTRING|MULTILINESTRING|POLYGON)\s(?:(ZM|Z|M)\s)?(\(.+\))$/,wktPointRegex=/^\(?([-\d.]+)\s([-\d.]+)(?:\s([-\d.]+))?(?:\s([-\d.]+))?\)?$/,wktArrayRegex=/^\(([-\d.\s(),]+)\)$/,gmlToEsriParseError="Unable to convert the GML geometry into an Esri geometry.",DEFAULT_GEOMETRY_SERVICE_URL="https://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer",wktNameRegex=/^(PROJCS|GEOGCS|VERTCS|GEOGTRAN|VERTTRAN)\s?\[\s?"(\w+)",.*/,commonWktStrings={4326:{name:"GCS_WGS_1984",wkt:'GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]'},102100:{name:"WGS_1984_Web_Mercator_Auxiliary_Sphere",wkt:'PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]'}},wktModules={PROJCS:"projected",GEOGCS:"geographic",VERTCS:"vertical",GEOGTRAN:"transformations",VERTTRAN:"vertical-transformations"},wktData={};export class CoordinateSystemBounds{constructor(e){this.limit=e}get min(){return-this.limit}get max(){return this.limit}get range(){return 2*this.limit}}export const WEB_MERCATOR_BOUNDS=new CoordinateSystemBounds(20037508.342788905);export const GEOGRAPHIC_BOUNDS=new CoordinateSystemBounds(180);export function getBounds(e){return e.isWebMercator?WEB_MERCATOR_BOUNDS:e.isGeographic?GEOGRAPHIC_BOUNDS:void 0}export function getScreenExtent(e){if(!e||0===e.length)return;let r,t,n,o;const{spatialReference:i}=e[0];let s;i.isWebMercator?s=WEB_MERCATOR_BOUNDS:i.isGeographic&&(s=GEOGRAPHIC_BOUNDS);const a=(e,i)=>{(!t||e>t)&&(t=e),(!r||e<r)&&(r=e),(!o||i>o)&&(o=i),(!n||i<n)&&(n=i)},c=e=>s&&Math.sign(e.extent.xmax)!==Math.sign(e.extent.xmin),l=e=>{const r=c(e)?denormalize([e.points],s)[0]:e.points;for(const e of r)a(e[0],e[1])},m=e=>{const r=c(e)?denormalize(e.rings,s):e.rings;for(const e of r)for(const r of e)a(r[0],r[1])},g=e=>{const r=c(e)?denormalize(e.paths,s):e.paths;for(const e of r)for(const r of e)a(r[0],r[1])};for(const r of e.filter((e=>e.spatialReference.equals(i))))switch(r.type){case"point":a(r.x,r.y);break;case"multipoint":l(r);break;case"extent":m(Polygon.fromExtent(r));break;case"polyline":g(r);break;case"polygon":m(r);break;default:throw new Error(`Cannot determine a valid screen extent for geometry type ${r.type}`)}return new Extent({xmin:r>t?t:r,xmax:t<r?r:t,ymin:n,ymax:o,spatialReference:i})}function denormalize(e,r){if(!r)return e;const t=[...e];let n=-1/0,o=1/0;for(let e of t){let t=-1/0,i=1/0;for(const n of e){for(;n[0]<r.min;)n[0]+=r.range;for(;n[0]>r.max;)n[0]-=r.range;i=Math.min(i,n[0]),t=Math.max(t,n[0])}let s=Math.min(o,i),a=Math.max(n,t);if(a-s>r.limit){t=-1/0,i=1/0;const c=[...e];for(const e of c)e[0]<0?e[0]+=r.range:e[0]-=r.range,i=Math.min(i,e[0]),t=Math.max(t,e[0]);const l=Math.min(o,i),m=Math.max(n,t);m-l<a-s&&(e=c,s=l,a=m)}o=Math.min(s,i),n=Math.max(a,t)}return t}export function denormalizeExtent(e,r){if(!r)return e;const t=Polygon.fromExtent(e);return t.rings=denormalize(t.rings,r),t.extent}export function esriToWKT(e){checkArg("geometry",e).isNotMissing();const r=`${e.hasZ?"Z":""}${e.hasM?"M":""}${e.hasM||e.hasZ?" ":""}`;if(isPoint(e)){const{x:t,y:n,z:o,m:i}=e,s=[t,n];return e.hasZ&&s.push(o),e.hasM&&s.push(i),`POINT ${r}(${_createWktPoint(s)})`}if(isMultipoint(e))return`MULTIPOINT ${r}(${_createWktPointArray(e.points)})`;if(isPolyline(e))return e.paths.length>1?`MULTILINESTRING ${r}(${_createWkt2DPointArray(e.paths)})`:`LINESTRING ${r}(${_createWktPointArray(e.paths[0])})`;if(isPolygon(e))return`POLYGON ${r}(${_createWkt2DPointArray(e.rings)})`;if(isExtent(e)){const t=[e.xmin,e.ymax];return`POLYGON ${r}(${_createWkt2DPointArray([[t,[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin],t]])})`}throw new ArgumentError("Cannot determine what type of WKT geometry to create")}export function wktToEsri(e,r){var t,n;checkArg("geometry",e).isNotMissing();const o=e.match(wktRegex);if(o){const e=null===(t=o[2])||void 0===t?void 0:t.includes("Z"),i=null===(n=o[2])||void 0===n?void 0:n.includes("M");switch(o[1]){case"POINT":{const t=_parseWktPoint(o[3],o[2]);return new Point({x:t[0],y:t[1],z:e?t[2]:void 0,m:!e&&i?t[2]:i?t[3]:void 0,hasZ:e,hasM:i,spatialReference:r||SpatialReference.WGS84})}case"MULTIPOINT":{const t=_parseWktPointArray(o[3],o[2]);return new Multipoint({points:t,hasZ:e,hasM:i,spatialReference:r||SpatialReference.WGS84})}case"LINESTRING":{const t=_parseWktPointArray(o[3],o[2]);return new Polyline({paths:[t],hasZ:e,hasM:i,spatialReference:r||SpatialReference.WGS84})}case"MULTILINESTRING":{const t=_parseWkt2DPointArray(o[3],o[2]);return new Polyline({paths:t,hasZ:e,hasM:i,spatialReference:r||SpatialReference.WGS84})}case"POLYGON":{const t=_parseWkt2DPointArray(o[3],o[2]);return new Polygon({rings:t,hasZ:e,hasM:i,spatialReference:r||SpatialReference.WGS84})}}}throw new ArgumentError("Cannot determine what type of esri geometry to create")}export function esriToGeoJSON(e){if(checkArg("geometry",e).isNotMissing(),isPoint(e)){const{x:r,y:t}=e;return{type:"Point",coordinates:[r,t]}}if(isMultipoint(e))return{type:"MultiPoint",coordinates:e.points};if(isPolyline(e))return e.paths.length>1?{type:"MultiLineString",coordinates:e.paths}:{type:"LineString",coordinates:e.paths[0]};if(isPolygon(e))return{type:"Polygon",coordinates:e.rings};if(isExtent(e)){const r=[e.xmin,e.ymax];return{type:"Polygon",coordinates:[[r,[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin],r]]}}throw new ArgumentError("Cannot determine what type of WKT geometry to create")}export function geoJSONToEsri(e){switch(checkArg("geometry",e).isNotMissing(),checkArg("geometry.type",e.type).isNotMissing(),e.type){case"Point":return checkArg("geometry.coordinates",e.coordinates).satisfies(_isGeoJSONPoint),new Point({x:e.coordinates[0],y:e.coordinates[1],spatialReference:SpatialReference.WGS84});case"MultiPoint":return checkArg("geometry.coordinates",e.coordinates).satisfies(_isGeoJSONPointArray),new Multipoint({points:e.coordinates,spatialReference:SpatialReference.WGS84});case"LineString":return checkArg("geometry.coordinates",e.coordinates).satisfies(_isGeoJSONPointArray),new Polyline({paths:[e.coordinates],spatialReference:SpatialReference.WGS84});case"MultiLineString":return checkArg("geometry.coordinates",e.coordinates).satisfies(_isGeoJSON2DPointArray),new Polyline({paths:e.coordinates,spatialReference:SpatialReference.WGS84});case"Polygon":return checkArg("geometry.coordinates",e.coordinates).satisfies(_isGeoJSON2DPointArray),new Polygon({rings:e.coordinates,spatialReference:SpatialReference.WGS84});case"MultiPolygon":return checkArg("geometry.coordinates",e.coordinates).satisfies(_isGeoJSON2DPointArrayArray),new Polygon({rings:e.coordinates.flat(),spatialReference:SpatialReference.WGS84})}throw new ArgumentError("Cannot determine what type of esri geometry to create")}export function gmlToEsri(e){switch(checkArg("geometry",e).isNotMissing(),e.localName){case"Point":return _createEsriPoint(e);case"MultiPoint":return _createEsriMultiPoint(e);case"LineString":case"Curve":case"MultiLineString":case"MultiCurve":return _createEsriPolyline(e);case"Polygon":case"MultiPolygon":return _createEsriPolygon(e);default:throw new ArgumentError("Unrecognized geometry type.")}}export function esriToGml(e,r){switch(checkArg("geometry",e).isNotMissing(),checkArg("geometry type",e.type).isNotMissing(),checkArg("gmlVersion",r.gmlVersion).isNotMissing(),e.type){case"point":return _createGmlPointElement(e,r);case"polyline":return _createGmlLineStringElement(e,r);case"polygon":case"extent":return _createGmlPolygonElement(e,r);default:throw new ArgumentError(`Unrecognized geometry type: ${e.type}. Must be one of point, polyline or polygon.`)}}export async function esriWkidToWkt(e){checkArg("wkid",e).isNotMissing();let r=commonWktStrings[`${e}`];if(!r)for(const t of Object.keys(wktModules)){const n=wktModules[t];if(r=(await fetchEsriProjCodes(n))[e],r){const t=r.wkt.match(wktNameRegex);commonWktStrings[e]={name:t[2],wkt:r.wkt};break}}if(!r)throw new Error(`Failed to find Wkt for id ${e}`);return r.wkt}export async function esriWktToWkid(e){checkArg("wkt",e).isNotMissing();const r=e.match(wktNameRegex);if(r){let e=Object.keys(commonWktStrings).find((e=>commonWktStrings[e].name===r[2]));if(!e){const t=wktModules[r[1]];if(t){const n=await fetchEsriProjCodes(t);e=Object.keys(n).find((e=>n[e].name===r[2])),e&&(commonWktStrings[e]={name:r[2],wkt:n[e].wkt})}}if(e)return parseInt(e)}throw new Error(`Failed to find Wkid for ${e}`)}export function createCrossTypeUnion(e){const r=[],t=groupBy(e,(e=>e.type));for(const e of GEOM_ORDER){const n=t.get(e);let o;if(null==n?void 0:n.length){o=n.length>1?union(n):n[0];for(const e of r)o=difference(o,e);o&&r.push(o)}}return r}const GEOM_ORDER=["mesh","extent","polygon","polyline","multipoint","point"];async function fetchEsriProjCodes(e){if(void 0===wktData[e])switch(e){case wktModules.GEOGCS:wktData[e]=(await import("esri-proj-codes/geographic.json")).default;break;case wktModules.PROJCS:wktData[e]=(await import("esri-proj-codes/projected.json")).default;break;case wktModules.GEOGTRAN:wktData[e]=(await import("esri-proj-codes/transformations.json")).default;break;case wktModules.VERTCS:wktData[e]=(await import("esri-proj-codes/vertical.json")).default;break;case wktModules.VERTTRAN:wktData[e]=(await import("esri-proj-codes/vertical-transformations.json")).default}const r=wktData[e];if(!r)throw new Error(`Invalid esri-proj-codes module: ${e}`);return r}export async function project(e,r,t){checkArg("geometries",e).isNotMissing().satisfies(_geometriesAreUniform,"All geometries must have the same type and spatial reference."),checkArg("outSpatialReference",r).isNotMissing();const n=Array.from(e);if(n.length<=0)return n;const o=_getInputSpatialReference(e),i=_getProjectOptions(o,r,t);if(void 0===i){if(o.equals(r))return n;if(canProject(o,r))return n.map((e=>webMercatorProject(e,r)));if(isLoaded()||await load(),null!==getTransformation(o,r)){const e=projectionEngineProject(n,r);return Array.isArray(e)?e:[e]}}if(i&&i.steps.length>1)throw new ArgumentError("GeographicTransformation","Geometry Service can't handle a two step transformation");return _projectWithGeometryService(n,r,i)}export async function buffer(e,r,t,n=!1){const o=Array.isArray(e),i=Array.isArray(r);if(o!==i)throw new ArgumentError("Geometries and distances must be the same type.");const s=Array.isArray(e)?e[0].spatialReference:e.spatialReference;if(s.isWebMercator||s.isWGS84)return esriGeodesicBuffer(e,r,t,n);if(s.isGeographic){const s=new BufferParameters({geometries:o?e:[e],distances:i?r:[r],unit:t,unionResults:n});return esriGeometryServiceBuffer(getGeometryServiceUrl(),s)}return esriBuffer(e,r,t,n)}export function removeZValues(e){const r=e;switch(r.type){case"point":r.z=void 0;break;case"polyline":case"polygon":_removeZCoords(r.paths||r.rings,r.hasM).forEach(((e,t)=>e.forEach(((e,n)=>r.setPoint(t,n,e)))));break;case"extent":r.zmax=void 0,r.zmin=void 0}return r}function _removeZCoords(e,r=!1){const t=r?3:2;return e.map((e=>e.map((e=>e.slice(0,t)))))}function _createWktPoint(e){return e.join(" ")}function _createWktPointArray(e){return e.map(_createWktPoint).join(", ")}function _createWkt2DPointArray(e){return e.map((e=>`(${_createWktPointArray(e)})`)).join(", ")}function _parseInvariant(e){return parse({locale:"inv"},e)}function _parseWktPoint(e,r){const t=null!=r?r:"",n=e.match(wktPointRegex);if(n){const e=[_parseInvariant(n[1]),_parseInvariant(n[2])];return(t.includes("Z")||!t.includes("Z")&&t.includes("M"))&&n[3]&&e.push(_parseInvariant(n[3])),t.includes("M")&&n[4]&&e.push(_parseInvariant(n[4])),e}throw new ArgumentError(`Detected invalid WKT point: ${e}`)}function _parseWktPointArray(e,r){const t=e.match(wktArrayRegex);if(t)return _parseWktArray(t[1]).map((e=>_parseWktPoint(e,r)));throw new ArgumentError(`Detected invalid WKT point array: ${e}`)}function _parseWkt2DPointArray(e,r){const t=e.match(wktArrayRegex);if(t)return _parseWktArray(t[1]).map((e=>_parseWktPointArray(e,r)));throw new ArgumentError(`Detected invalid WKT 2D point array: ${e}`)}function _parseWktArray(e){let r=e.trim().replace(/\s*,\s*/g,","),t=0;for(let e=0;e<r.length;e++)switch(r.charAt(e)){case"(":t++;break;case")":t--;break;case",":0===t&&(r=`${r.substr(0,e)}&${r.substr(e+1)}`)}return r.split("&")}function _isGeoJSONPoint(e){return!!Array.isArray(e)&&!e.some((e=>"number"!=typeof e))}function _isGeoJSONPointArray(e){return!!Array.isArray(e)&&!e.some((e=>!_isGeoJSONPoint(e)))}function _isGeoJSON2DPointArray(e){return!!Array.isArray(e)&&!e.some((e=>!_isGeoJSONPointArray(e)))}function _isGeoJSON2DPointArrayArray(e){return!!Array.isArray(e)&&!e.some((e=>!_isGeoJSON2DPointArray(e)))}async function _projectWithGeometryService(e,r,t){const n=new ProjectParameters({geometries:e,outSpatialReference:r});(null==t?void 0:t.hasOwnProperty("transformation"))&&(n.transformation=t.steps[0].wkid?{wkid:t.steps[0].wkid}:{wkt:t.steps[0].wkt},n.transformForward=!t.hasOwnProperty("transformForward")||!t.steps[0].isInverse);try{return await esriGeometryServiceProject(getGeometryServiceUrl(),n)}catch(e){throw e instanceof Error?new GeometryServiceError(e):e}}function _geometriesAreUniform(e){const r=[...e];if(!(r.length>0))return!0;const t=r[0].type,n=r[0].spatialReference;return r.every((e=>e.type===t&&e.spatialReference.equals(n)))}function _getInputSpatialReference(e){for(const r of e)if(null!==(null==r?void 0:r.spatialReference))return r.spatialReference;return SpatialReference.WebMercator}function _getProjectOptions(e,r,t){return(null==t?void 0:t.hasOwnProperty("steps"))?{...t}:_getTransformProjectOptions(e,r)}function _getTransformProjectOptions(e,r){if(checkArg("inSr",e).isNotMissing(),checkArg("outSR",r).isNotMissing(),0===config.autoTransformations.length)return;const t=config.autoTransformations.filter((r=>r.inSpatialReference.equals(e))).filter((e=>e.outSpatialReference.equals(r)));if(t.length>0)return{...t[0].transformation};const n=config.autoTransformations.filter((e=>e.inSpatialReference.equals(r))).filter((r=>r.outSpatialReference.equals(e)));return n.length>0?{...n[0].transformation}:void 0}function _createEsriPoint(e){const r=_getEsriSpatialReference(e),t=_parseGmlCoordPair(e);if(t&&t.length>1)return new Point({x:t[0],y:t[1],spatialReference:r});throw new ArgumentError(gmlToEsriParseError)}function _createEsriMultiPoint(e){const r=new Array,t=_getEsriSpatialReference(e);if(e.childElementCount>0){const t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"pointMember")),n=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"pointMembers")),o=t.concat(...n);for(const e of o){const t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"Point"));for(const e of t)r.push(_parseGmlCoordPair(e))}}if(r&&r.length>0)return new Multipoint({points:r,spatialReference:t});throw new ArgumentError(gmlToEsriParseError)}function _createEsriPolyline(e){let r;const t=_getEsriSpatialReference(e);if("LineString"===e.localName?r=_parseGmlLineString(e):"Curve"===e.localName&&e.childElementCount>0?r=_parseGmlCurve(e):"MultiLineString"===e.localName&&e.childElementCount>0?r=_parseGmlMultiLineString(e):"MultiCurve"===e.localName&&e.childElementCount>0&&(r=_parseGmlMultiCurve(e)),r&&r.length>0)return new Polyline({paths:r,spatialReference:t});throw new ArgumentError(gmlToEsriParseError)}function _createEsriPolygon(e){let r;const t=_getEsriSpatialReference(e);if("Polygon"===e.localName?r=_parseGmlPolygon(e):"MultiPolygon"===e.localName&&(r=_parseGmlMultiPolygon(e)),r&&r.length>0)return new Polygon({rings:r,spatialReference:t});throw new ArgumentError(gmlToEsriParseError)}function _parseGmlLineString(e){return[_parseGmlCoords(e)]}function _parseGmlCurve(e){const r=new Array,t=e.getElementsByTagNameNS(e.namespaceURI,"segments");if(t.length>0){const n=Array.from(t[0].getElementsByTagNameNS(e.namespaceURI,"LineStringSegment"));for(const e of n){const t=_parseGmlCoords(e);r.push(t)}}return r}function _parseGmlMultiLineString(e){const r=new Array,t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"lineStringMember"));for(const e of t){const t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"LineString"));for(const e of t)r.push(_parseGmlCoords(e))}return r}function _parseGmlMultiCurve(e){const r=new Array,t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"curveMember")),n=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"curveMembers")),o=t.concat(...n);for(const e of o){const t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"LineString"));for(const e of t)r.push(_parseGmlCoords(e))}return r}function _parseGmlPolygon(e){checkArg("geometry",e).isNotMissing();const r=new Array,t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"outerBoundaryIs")),n=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"innerBoundaryIs")),o=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"exterior")),i=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"interior")),s=t.concat(...n).concat(...o).concat(...i);for(const e of s){const t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"LinearRing"));for(const e of t)r.push(_parseGmlCoords(e))}return r}function _parseGmlMultiPolygon(e){checkArg("geometry",e).isNotMissing();const r=new Array,t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"polygonMember"));for(const e of t){const t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"Polygon"));for(const e of t){const t=_parseGmlPolygon(e);r.push(...t)}}return r}function _parseGmlCoordPair(e){if(checkArg("geometry",e).isNotMissing(),"Point"!==e.localName)throw new ArgumentError(gmlToEsriParseError);const r=e.getElementsByTagNameNS(e.namespaceURI,"coordinates"),t=e.getElementsByTagNameNS(e.namespaceURI,"pos");if(r.length>0&&r[0].childNodes[0].nodeType===Node.TEXT_NODE){return _parseGmlCoordPairFromString(r[0].childNodes[0].data)}if(t.length>0&&t[0].childNodes[0].nodeType===Node.TEXT_NODE){return _parseGmlCoordPairFromString(t[0].childNodes[0].data)}throw new ArgumentError(gmlToEsriParseError)}function _parseGmlCoordPairFromString(e){const r=e.replace(/,/g,"").split(" ").map(Number);if(2===r.length)return[r[0],r[1]];throw new ArgumentError(gmlToEsriParseError)}function _parseGmlCoords(e){if(checkArg("geometry",e).isNotMissing(),"LineString"!==e.localName&&"LinearRing"!==e.localName&&"LineStringSegment"!==e.localName)throw new ArgumentError(gmlToEsriParseError);const r=e.getElementsByTagNameNS(e.namespaceURI,"coordinates"),t=e.getElementsByTagNameNS(e.namespaceURI,"posList");if(r.length>0&&r[0].childNodes[0].nodeType===Node.TEXT_NODE){return _parseCoordsFromString(r[0].childNodes[0].data)}if(t.length>0&&t[0].childNodes[0].nodeType===Node.TEXT_NODE){return _parseCoordsFromString(t[0].childNodes[0].data)}throw new ArgumentError(gmlToEsriParseError)}function _parseCoordsFromString(e){const r=e.replace(/,/g,"").split(" ").map(Number),t=new Array;for(let e=0;e<r.length;e+=2){if(void 0===r[e+1])throw new ArgumentError(gmlToEsriParseError);t.push([r[e],r[e+1]])}if(t.length>0)return t;throw new ArgumentError(gmlToEsriParseError)}function _getEsriSpatialReference(e){return checkArg("geometry",e).isNotMissing(),e.hasAttribute("srsName")?ogcSrsToEsriSr(e.getAttribute("srsName")):SpatialReference.WebMercator}function _createGmlPointElement(e,r){const t=getGmlNS(r.gmlVersion),n=_createElementWithNS(t,"Point","gml");let o,i;_applySrsAttributes(n,_getSrsName(e,r),r.hasOwnProperty("srsDimension")?r.srsDimension:void 0),"2.0"===r.gmlVersion||"3.0"===r.gmlVersion?(o=_createElementWithNS(t,"coordinates","gml"),i=_esriPointToString(", ",e)):(o=_createElementWithNS(t,"pos","gml"),i=_esriPointToString(" ",e)),n.appendChild(o);const s=_createTextNode(i);return o.appendChild(s),n}function _createGmlLineStringElement(e,r){const t=getGmlNS(r.gmlVersion),n=_createElementWithNS(t,"LineString","gml");let o,i;_applySrsAttributes(n,_getSrsName(e,r),r.hasOwnProperty("srsDimension")?r.srsDimension:void 0),"2.0"===r.gmlVersion||"3.0"===r.gmlVersion?(o=_createElementWithNS(t,"coordinates","gml"),i=_esriPolylineToString(", ",e)):(o=_createElementWithNS(t,"posList","gml"),i=_esriPolylineToString(" ",e)),n.appendChild(o);const s=_createTextNode(i);return o.appendChild(s),n}function _createGmlPolygonElement(e,r){const t=getGmlNS(r.gmlVersion),n=_createElementWithNS(t,"Polygon","gml");_applySrsAttributes(n,_getSrsName(e,r),r.hasOwnProperty("srsDimension")?r.srsDimension:void 0);const o="2.0"===r.gmlVersion?_createElementWithNS(t,"outerBoundaryIs","gml"):_createElementWithNS(t,"exterior","gml");n.appendChild(o);const i=_createElementWithNS(t,"LinearRing","gml");let s,a;o.appendChild(i),"2.0"===r.gmlVersion||"3.0"===r.gmlVersion?(s=_createElementWithNS(t,"coordinates","gml"),a=_esriPolygonToString(", ",e)):(s=_createElementWithNS(t,"posList","gml"),a=_esriPolygonToString(" ",e)),i.appendChild(s);const c=_createTextNode(a);return s.appendChild(c),n}function _getSrsName(e,r){if(r.hasOwnProperty("srsName"))return r.srsName;if(void 0!==e.spatialReference.wkid&&null!==e.spatialReference.wkid){if(e.spatialReference.wkid<32767)return`EPSG:${e.spatialReference.wkid}`;if(102100===e.spatialReference.wkid||900913===e.spatialReference.wkid||102113===e.spatialReference.wkid)return"EPSG:3857"}throw new ArgumentError("Unable to convert Esri WKT spatial reference to an OGC spatial reference")}function _applySrsAttributes(e,r,t){if(null!=r&&(e.setAttribute("srsName",r),null!=t)){const r=t<1?2:t;e.setAttribute("srsDimension",r.toString())}}function _createElementWithNS(e,r,t){checkArg("namespace",e).isNotMissing(),checkArg("name",r).isNotMissing();return document.implementation.createDocument(void 0,"temp",void 0).createElementNS(e,t?`${t}:${r}`:r)}function _createTextNode(e){return document.implementation.createDocument(void 0,"temp",void 0).createTextNode(e)}function _esriPointToString(e,r){const t=r;return" "===e?`${t.x} ${t.y}`:`${t.x}, ${t.y}`}function _esriPolylineToString(e,r){return r.paths[0].map((r=>r.join(e))).join(" ")}function _esriPolygonToString(e,r){let t;if(isPolygon(r))t=r.rings[0];else if(isExtent(r)){const{xmin:e,xmax:n,ymin:o,ymax:i}=r;t=[[e,i],[n,i],[n,o],[e,o],[e,i]]}return t.map((r=>r.join(e))).join(" ")}function getGeometryServiceUrl(){var e,r,t;return null!==(t=null!==(e=config.geometryServiceUrl)&&void 0!==e?e:null===(r=config._geometryService)||void 0===r?void 0:r.url)&&void 0!==t?t:DEFAULT_GEOMETRY_SERVICE_URL}export function isGeometry(e){return isPoint(e)||isMultipoint(e)||isPolyline(e)||isPolygon(e)||isExtent(e)||isMesh(e)}export function isPoint(e){return isEsriObject(e)&&"point"===(null==e?void 0:e.type)}export function isMultipoint(e){return isEsriObject(e)&&"multipoint"===(null==e?void 0:e.type)}export function isPolyline(e){return isEsriObject(e)&&"polyline"===(null==e?void 0:e.type)}export function isPolygon(e){return isEsriObject(e)&&"polygon"===(null==e?void 0:e.type)}export function isExtent(e){return isEsriObject(e)&&"extent"===(null==e?void 0:e.type)}export function isMesh(e){return isEsriObject(e)&&"mesh"===(null==e?void 0:e.type)}
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.7.0";
4
+ export declare const version = "35.0.0";
package/version.js CHANGED
@@ -1 +1 @@
1
- export const version="34.7.0";
1
+ export const version="35.0.0";