@vertigis/arcgis-extensions 34.7.0 → 35.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AppConfig.schema.json +8 -4
- package/ItemType.js +1 -1
- package/LanguageResources.js +1 -1
- package/data/ArcGISServiceTableExtension.js +1 -1
- package/data/Attachment.js +1 -1
- package/data/Feature.js +1 -1
- package/data/FeatureList.js +1 -1
- package/data/FeatureSet.js +1 -1
- package/data/FeatureSettings.js +1 -1
- package/data/FeatureSourceBase.js +1 -1
- package/data/FeatureStream.js +1 -1
- package/data/FieldExtension.js +1 -1
- package/data/Schema.js +1 -1
- package/data/Table.js +1 -1
- package/data/_TableExtension.js +1 -1
- package/data/convert.js +1 -1
- package/data/support/attachments.js +1 -1
- package/declarations/arcgis-js-api-extensions/index.d.ts +11 -120
- package/docs/html/assets/search.js +1 -1
- package/docs/html/classes/data_FeatureStream.FeatureStream.html +1 -1
- package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerExtension.html +5 -3
- package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerSchema.html +1 -1
- package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtension.html +18 -16
- package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerSchema.html +5 -5
- package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerExtension.html +5 -3
- package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerSchema.html +2 -2
- package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerExtension.html +5 -3
- package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerSchema.html +2 -2
- package/docs/html/classes/mapping_KMLSublayerExtension.KMLSublayerExtension.html +5 -3
- package/docs/html/classes/mapping_MapImageSublayerExtension.MapImageSublayerExtension.html +5 -3
- package/docs/html/classes/mapping_TileSublayerExtension.TileSublayerExtension.html +5 -3
- package/docs/html/classes/mapping_WMSSublayerExtension.WMSSublayerExtension.html +5 -3
- package/docs/html/classes/mapping_WMTSSublayerExtension.WMTSSublayerExtension.html +5 -3
- package/docs/html/classes/mapping__SublayerExtension.SubSublayerExtensionCollection.html +6 -6
- package/docs/html/classes/mapping__SublayerExtension.SublayerExtension.html +5 -3
- package/docs/html/classes/mapping__SublayerExtension.SublayerSchema.html +2 -2
- package/docs/html/classes/tasks_identify_BuildingComponentSublayerClientSideIdentifyProvider.BuildingComponentSublayerClientSideIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_BuildingComponentSublayerHitTestIdentifyProvider.BuildingComponentSublayerHitTestIdentifyProvider.html +4 -4
- package/docs/html/classes/tasks_identify_CSVLayer3DHitTestIdentifyProvider.CSVLayer3DHitTestIdentifyProvider.html +4 -4
- package/docs/html/classes/tasks_identify_ClientSideIdentifyProvider.ClientSideIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_FeatureLayer3DHitTestIdentifyProvider.FeatureLayer3DHitTestIdentifyProvider.html +4 -4
- package/docs/html/classes/tasks_identify_FeatureLayerClientSideIdentifyProvider.FeatureLayerClientSideIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_HitTestIdentifyProvider.HitTestIdentifyProvider.html +6 -6
- package/docs/html/classes/tasks_identify_PointCloudLayerHitTestIdentifyProvider.PointCloudLayerHitTestIdentifyProvider.html +4 -4
- package/docs/html/classes/tasks_identify_SceneLayerClientSideIdentifyProvider.SceneLayerClientSideIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_identify_SceneLayerHitTestIdentifyProvider.SceneLayerHitTestIdentifyProvider.html +3 -3
- package/docs/html/classes/tasks_identify_StreamLayerClientSideQueryIdentifyProvider.StreamLayerClientSideQueryIdentifyProvider.html +2 -2
- package/docs/html/classes/tasks_query_BuildingComponentSublayerClientSideQueryProvider.BuildingComponentSublayerClientSideQueryProvider.html +6 -3
- package/docs/html/classes/tasks_query_ClientSideQueryProvider.ClientSideQueryProvider.html +6 -3
- package/docs/html/classes/tasks_query_QueryService.QueryService.html +3 -3
- package/docs/html/classes/tasks_query_SceneLayerClientSideQueryProvider.SceneLayerClientSideQueryProvider.html +6 -3
- package/docs/html/classes/tasks_query_SceneLayerQueryProvider.SceneLayerQueryProvider.html +2 -2
- package/docs/html/classes/tasks_query_StreamLayerClientSideQueryProvider.StreamLayerClientSideQueryProvider.html +4 -4
- package/docs/html/classes/utilities_asyncIterable.AsyncQueue.html +1 -1
- package/docs/html/classes/utilities_geometry.CoordinateSystemBounds.html +1 -1
- package/docs/html/enums/support_esri.WellKnownBasemap.html +1 -1
- package/docs/html/interfaces/data__TableExtension.TableExtensionProperties.html +1 -1
- package/docs/html/interfaces/data_support_attachments.AttachmentEnabledLayer.html +2 -2
- package/docs/html/interfaces/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/portal_Domain.DomainBase.html +1 -1
- package/docs/html/interfaces/portal_ImageServiceLayer.ImageServiceLayer-1.html +17 -17
- package/docs/html/interfaces/portal_Item.Item-1.html +48 -48
- package/docs/html/interfaces/portal_LayerDefinition.FieldOverride.html +3 -3
- package/docs/html/interfaces/portal_LayerDefinition.LayerDefinition-1.html +49 -50
- package/docs/html/interfaces/portal_LayerDefinition.LayerDefinitionDefaults.html +8 -8
- package/docs/html/interfaces/portal_LayerDefinition.LayerTimeInfo.html +9 -9
- package/docs/html/interfaces/portal_LayerDefinition.OrderByClause.html +9 -5
- package/docs/html/interfaces/portal_LayerDefinition.TimeInfoExportOptions.html +4 -4
- package/docs/html/interfaces/portal_PopupInfo.OrderByFields.html +2 -2
- package/docs/html/interfaces/portal_PopupInfo.PopupElement.html +5 -5
- package/docs/html/interfaces/portal_PopupInfo.PopupInfo-1.html +8 -8
- package/docs/html/interfaces/portal_PopupInfo.RelatedRecordsInfo.html +2 -2
- package/docs/html/interfaces/support_esri.AccessorLike.html +4 -4
- package/docs/html/interfaces/support_esri.ChangeEvent.html +4 -4
- package/docs/html/interfaces/support_esri.LayerWithSublayers.html +1 -1
- package/docs/html/interfaces/support_esri.PointCloudLayerCachedStatistics.html +1 -1
- package/docs/html/interfaces/support_esri.PointCloudLayerCachedStatisticsFrequentValues.html +1 -1
- package/docs/html/interfaces/support_esri.PointCloudLayerCachedStatisticsHistogram.html +1 -1
- package/docs/html/interfaces/support_esri.PointCloudLayerCachedStatisticsLabel.html +1 -1
- package/docs/html/interfaces/support_esri.PointCloudLayerCachedStatisticsLabels.html +1 -1
- package/docs/html/interfaces/support_esri.PointCloudLayerCachedStatisticsStats.html +1 -1
- package/docs/html/interfaces/support_esri.SublayerLike.html +14 -14
- package/docs/html/interfaces/utilities_geometry.GeoJSONLineString.html +2 -2
- package/docs/html/interfaces/utilities_geometry.GeoJSONMultiLineString.html +2 -2
- package/docs/html/interfaces/utilities_geometry.GeoJSONMultiPoint.html +2 -2
- package/docs/html/interfaces/utilities_geometry.GeoJSONMultiPolygon.html +2 -2
- package/docs/html/interfaces/utilities_geometry.GeoJSONPoint.html +2 -2
- package/docs/html/interfaces/utilities_geometry.GeoJSONPolygon.html +2 -2
- package/docs/html/interfaces/utilities_geometry.GeographicTransformationJson.html +1 -1
- package/docs/html/interfaces/utilities_geometry.GeographicTransformationStepJson.html +3 -3
- package/docs/html/interfaces/utilities_geometry.GmlOptions.html +3 -3
- package/docs/html/modules/data_convert.html +5 -5
- package/docs/html/modules/mapping_MapExtension.html +1 -1
- package/docs/html/modules/portal_Domain.Domain.html +6 -6
- package/docs/html/modules/portal_Domain.DomainType.html +2 -2
- package/docs/html/modules/portal_Domain.html +2 -2
- package/docs/html/modules/portal_ImageServiceLayer.ImageServiceLayer.html +1 -1
- package/docs/html/modules/portal_LayerDefinition.LayerDefinition.html +2 -2
- package/docs/html/modules/portal_LayerDefinition.LayerDefinitionCapabilities.html +6 -6
- package/docs/html/modules/portal_LayerDefinition.html +2 -2
- package/docs/html/modules/portal_PopupInfo.PopupInfo.html +1 -1
- package/docs/html/modules/portal_PopupInfo.html +1 -1
- package/docs/html/modules/support__query.html +2 -2
- package/docs/html/modules/support_esri.html +10 -10
- package/docs/html/modules/utilities_esri.html +2 -2
- package/docs/html/modules/utilities_geometry.html +25 -25
- package/docs/html/modules/version.html +1 -1
- package/layer-preset/LayerPreset.js +1 -1
- package/locale/language.js +1 -1
- package/mapping/ArcGISSublayerExtension.js +1 -1
- package/mapping/BasemapExtension.js +1 -1
- package/mapping/BuildingComponentSublayerExtension.d.ts +1 -0
- package/mapping/BuildingComponentSublayerExtension.js +1 -1
- package/mapping/BuildingSceneLayerExtension.js +1 -1
- package/mapping/BuildingSublayerExtension.js +1 -1
- package/mapping/CSVLayerExtension.js +1 -1
- package/mapping/FeatureCollectionLayerExtension.js +1 -1
- package/mapping/FeatureLayerExtension.js +1 -1
- package/mapping/FeatureLayerExtensionBase.js +1 -1
- package/mapping/GraphicsLayerExtension.js +1 -1
- package/mapping/GroundExtension.js +1 -1
- package/mapping/GroupLayerExtension.js +1 -1
- package/mapping/ImageryLayerExtension.js +1 -1
- package/mapping/ImageryTileLayerExtension.js +1 -1
- package/mapping/KMLLayerExtension.js +1 -1
- package/mapping/KMLSublayerExtension.js +1 -1
- package/mapping/MapExtension.js +1 -1
- package/mapping/MapImageLayerExtension.js +1 -1
- package/mapping/MapImageSublayerExtension.js +1 -1
- package/mapping/PointCloudLayerExtension.js +1 -1
- package/mapping/SceneLayerExtension.js +1 -1
- package/mapping/StreamLayerExtension.js +1 -1
- package/mapping/WMTSLayerExtension.js +1 -1
- package/mapping/WMTSSublayerExtension.js +1 -1
- package/mapping/_LayerExtension.js +1 -1
- package/mapping/_SublayerExtension.d.ts +4 -0
- package/mapping/_SublayerExtension.js +1 -1
- package/mapping/support/LayerListSettings.js +1 -1
- package/mapping/support/WfsCapabilities.js +1 -1
- package/mapping/support/_LayerExtensionCollection.js +1 -1
- package/mapping/support/_SublayerExtensionCollection.js +1 -1
- package/mapping/support/layers.js +1 -1
- package/mapping/support/ogc.js +1 -1
- package/menus/Menu.js +1 -1
- package/menus/MenuItem.js +1 -1
- package/package.json +4 -3
- package/portal/BaseMap.js +1 -1
- package/portal/Domain.d.ts +1 -1
- package/portal/DrawingInfo.js +1 -1
- package/portal/FeatureLayer.js +1 -1
- package/portal/ImageServiceLayer.d.ts +1 -1
- package/portal/IntegratedMeshLayer.js +1 -1
- package/portal/Layer.js +1 -1
- package/portal/LayerDefinition.d.ts +7 -4
- package/portal/LayerDefinition.js +1 -1
- package/portal/Lighting.js +1 -1
- package/portal/MapServiceLayer.js +1 -1
- package/portal/PointCloudLayer.js +1 -1
- package/portal/PopupInfo.js +1 -1
- package/portal/Slide.js +1 -1
- package/portal/Symbol.js +1 -1
- package/portal/Table.js +1 -1
- package/portal/TiledImageServiceLayer.js +1 -1
- package/portal/TiledMapServiceLayer.js +1 -1
- package/portal/WebMap.js +1 -1
- package/portal/WebScene.js +1 -1
- package/portal/Widgets.js +1 -1
- package/support/ArcGISRequestHelper.js +1 -1
- package/support/Cancellable.js +1 -1
- package/support/Observable.js +1 -1
- package/support/Serializable.js +1 -1
- package/support/Settings.js +1 -1
- package/support/_ArcGISRelationshipCollection.js +1 -1
- package/support/_query.js +1 -1
- package/support/esri.d.ts +2 -0
- package/support/utilities.js +1 -1
- package/tasks/geocoding/ArcGISGeocoder.js +1 -1
- package/tasks/geocoding/utilities.js +1 -1
- package/tasks/identify/BuildingComponentSublayerClientSideIdentifyProvider.js +1 -1
- package/tasks/identify/BuildingComponentSublayerHitTestIdentifyProvider.js +1 -1
- package/tasks/identify/CSVLayer3DHitTestIdentifyProvider.js +1 -1
- package/tasks/identify/CSVLayerClientSideQueryIdentifyProvider.js +1 -1
- package/tasks/identify/ClientSideIdentifyProvider.js +1 -1
- package/tasks/identify/FeatureLayer3DHitTestIdentifyProvider.js +1 -1
- package/tasks/identify/FeatureLayerClientSideIdentifyProvider.js +1 -1
- package/tasks/identify/FeatureLayerQueryIdentifyProvider.js +1 -1
- package/tasks/identify/HitTestIdentifyProvider.js +1 -1
- package/tasks/identify/IdentifyProviderBase.js +1 -1
- package/tasks/identify/IdentifyService.js +1 -1
- package/tasks/identify/ImageryLayerIdentifyProvider.js +1 -1
- package/tasks/identify/PointCloudLayerHitTestIdentifyProvider.js +1 -1
- package/tasks/identify/SceneLayerHitTestIdentifyProvider.js +1 -1
- package/tasks/identify/SceneLayerQueryIdentifyProvider.js +1 -1
- package/tasks/identify/StreamLayerClientSideQueryIdentifyProvider.js +1 -1
- package/tasks/identify/WMSSublayerIdentifyProvider.js +1 -1
- package/tasks/identify/_utilities.js +1 -1
- package/tasks/query/ArcGISRelationship.js +1 -1
- package/tasks/query/BuildingComponentSublayerClientSideQueryProvider.js +1 -1
- package/tasks/query/CSVLayerClientSideQueryProvider.js +1 -1
- package/tasks/query/ClientSideQueryProvider.d.ts +5 -0
- package/tasks/query/ClientSideQueryProvider.js +1 -1
- package/tasks/query/FeatureLayerQueryProvider.js +1 -1
- package/tasks/query/ImageryLayerQueryProvider.js +1 -1
- package/tasks/query/QueryService.js +1 -1
- package/tasks/query/SceneLayerClientSideQueryProvider.js +1 -1
- package/tasks/query/SceneLayerQueryProvider.js +1 -1
- package/tasks/query/StreamLayerClientSideQueryProvider.d.ts +4 -0
- package/tasks/query/StreamLayerClientSideQueryProvider.js +1 -1
- package/tasks/search/ArcGISGeocoderSearchProvider.js +1 -1
- package/tasks/search/GeocoderSearchProvider.js +1 -1
- package/tasks/search/QuerySearchProvider.js +1 -1
- package/tasks/search/SearchService.js +1 -1
- package/tasks/search/_utilities.js +1 -1
- package/utilities/_layers.js +1 -1
- package/utilities/arcade.js +1 -1
- package/utilities/checkArg.js +1 -1
- package/utilities/date.js +1 -1
- package/utilities/esri.js +1 -1
- package/utilities/extensions.js +1 -1
- package/utilities/geometry.js +1 -1
- package/utilities/mapping.js +1 -1
- package/utilities/number.js +1 -1
- package/utilities/portal.js +1 -1
- package/utilities/query.js +1 -1
- package/utilities/renderers.js +1 -1
- package/utilities/scaleRanges.js +1 -1
- package/utilities/string.js +1 -1
- package/utilities/symbol.js +1 -1
- package/utilities/watch.js +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__decorate}from"tslib";import{InvalidOperationError}from"../InvalidOperationError.js";import{isSublayerExtension,ItemType}from"../ItemType.js";import{FeatureSourceBase}from"../data/FeatureSourceBase.js";import{Schema}from"../data/Schema.js";import{serializable}from"../support/Serializable.js";import{isBuildingComponentSublayer,isBuildingGroupSublayer,isKMLSublayer,isMapImageSublayer,isTileLayer,isWMSSublayer,isWMTSSublayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{compare}from"../utilities/collection.js";import{load}from"../utilities/esri.js";import{getLogger}from"../utilities/log.js";import{parse}from"../utilities/number.js";import{deepClone}from"../utilities/object.js";import{onCollectionPropertyChange,watchCollectionPropertyEach}from"../utilities/watch.js";import{fromLayerListMode,LayerListSettings}from"./support/LayerListSettings.js";import{SublayerExtensionCollectionBase}from"./support/_SublayerExtensionCollection.js";const log=getLogger("SublayerExtension"),ERR_INVALID_SUBLAYER_TYPE="Invalid type of sublayer for this type of sublayer extension.",ERR_FEATURES_NOT_SUPPORTED="This type of layer does not have features.",ERR_SUBLAYERX_NOT_SUPPORTED="This type of sublayer extension cannot have child sublayer extensions.",DEFAULT_CAPABILITIES=Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsAttachmentEditing:!1});export function getSublayerType(e){if(isMapImageSublayer(e))return isTileLayer(null==e?void 0:e.layer)?"ArcGISTiledSublayer":"ArcGISMapServiceSublayer";if(isKMLSublayer(e))return"KMLSublayer";if(isWMTSSublayer(e))return"WMTSSublayer";if(isWMSSublayer(e))return"WMSSublayer";if(isBuildingComponentSublayer(e))return"BuildingComponentSublayer";if(isBuildingGroupSublayer(e))return"BuildingGroupSublayer";throw new Error(`Unknown sublayer type for ESRI sublayer: ${e}`)}export class SublayerExtension extends FeatureSourceBase{constructor(e){super(e),this._itemType=ItemType.SUBLAYER_EXTENSION,this._watchHandles=[],this._onSublayerAddedPostInitialize=async e=>{var t,i;try{await e.initialize()}catch(s){log.error({message:`Error occurred while initializing sublayer extension for sublayer '${null!==(i=null!==(t=e.title)&&void 0!==t?t:e.sublayer.id)&&void 0!==i?i:e.id}'.`,error:s})}},this._onSetSublayerVisible=e=>{if("inherited"===this.visibilityMode&&this.supportsSublayers&&this.sublayerExtensions)for(const t of this.sublayerExtensions.toArray())t.sublayer&&t.canToggleVisibility&&(t.sublayer.visible=e);this.notifyChange("isEffectivelyVisible")},this._onSetSublayersSublayerVisible=(e,t,i,s)=>{e&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(s)},this._onSublayersChange=e=>{var t;(null===(t=e.added)||void 0===t?void 0:t.length)&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(e.added[e.added.length-1])};const t=e||{};this._visibilityMode=this.canToggleVisibility?"independent":"inherited",this._sublayerExtensions=this._createSublayerExtensionCollection();const i=t.sublayer;let s;(null==i?void 0:i.hasOwnProperty("listMode"))&&(s=fromLayerListMode(i.listMode)),this.layerListSettings=this._createLayerListSettings({...s,...t.layerListSettings}),isSublayer(i)?(checkArg("properties.sublayer",i).satisfies((e=>this._isSupportedSublayer(e)),ERR_INVALID_SUBLAYER_TYPE),this._setSublayer(i)):i&&(this._deferredSublayerProperties=i),this.watch("parentSublayerExtension.isEffectivelyVisible",(()=>this.notifyChange("isEffectivelyVisible")))}get sublayer(){return this._sublayer}get layerExtension(){return this._layerExtension}get parentSublayerExtension(){return this._parentSublayerExtension}get hasFeatures(){return!1}get sublayerExtensions(){return this._sublayerExtensions}get renderer(){}get visibilityMode(){return this.canToggleVisibility?this._visibilityMode:"inherited"}set visibilityMode(e){checkArg("visibilityMode",e).satisfies((e=>this.canToggleVisibility||"inherited"===e),'Sublayers of this type only support a visibility mode of "inherited".'),this._visibilityMode=e,"exclusive"===e&&this._ensureAtMostOneChildSublayerVisible()}get capabilities(){return this._capabilities()}get effectiveMinScale(){const e=this.sublayer?this.sublayer.minScale:0;if(this.parentSublayerExtension){const t=this.parentSublayerExtension.effectiveMinScale||1/0;if(t<(e||1/0))return t}if(this.layerExtension){const t=this.layerExtension.effectiveMinScale||1/0;if(t<(e||1/0))return t}return e}get effectiveMaxScale(){const e=this.sublayer?this.sublayer.maxScale:0;return this.parentSublayerExtension&&this.parentSublayerExtension.effectiveMaxScale>e?this.parentSublayerExtension.effectiveMaxScale:this.layerExtension&&this.layerExtension.effectiveMaxScale>e?this.layerExtension.effectiveMaxScale:e}get isEffectivelyVisible(){const e=!!this.sublayer&&this.sublayer.visible;return this.parentSublayerExtension?this.parentSublayerExtension.isEffectivelyVisible&&e:this.layerExtension?this.layerExtension.isEffectivelyVisible&&e:e}get title(){var e,t,i,s,r,a,n,l,o,u,y;return null!==(y=null!==(t=null===(e=this.sublayer)||void 0===e?void 0:e.title)&&void 0!==t?t:"string"==typeof(null===(i=this._deferredSublayerProperties)||void 0===i?void 0:i.$ref)||"number"==typeof(null===(s=this._deferredSublayerProperties)||void 0===s?void 0:s.$ref)?null===(r=this._deferredSublayerProperties)||void 0===r?void 0:r.$ref.toString():null!==(l=null===(n=null===(a=this._deferredSublayerProperties)||void 0===a?void 0:a.$ref)||void 0===n?void 0:n.title)&&void 0!==l?l:null===(u=null===(o=this._deferredSublayerProperties)||void 0===o?void 0:o.$ref)||void 0===u?void 0:u.id.toString())&&void 0!==y?y:"Sublayer"}get supportsSublayers(){return!1}get canToggleVisibility(){return!0}get canChangeOpacity(){return!0}get canChangeScale(){return!0}get canChangeRenderer(){return!1}get _layerSupportsHideChildren(){return!1}get _sublayers(){var e;if(this.supportsSublayers)return null===(e=this.sublayer)||void 0===e?void 0:e.sublayers}get effectiveFullExtent(){return this._effectiveFullExtent?this._effectiveFullExtent:this.parentSublayerExtension?this.parentSublayerExtension.effectiveFullExtent:this.layerExtension?this.layerExtension.effectiveFullExtent:void 0}static create(e){if(!SublayerExtension.factory)throw new InvalidOperationError("Cannot create sublayer extension: no sublayer extension factory has been registered.");return SublayerExtension.factory.create(e)}static _matchesRef(e,t,i){if(!e||!t)return!1;let s=t.$ref;if("string"==typeof s){const e=parse(s);s={id:isNaN(e)?s:e,title:s}}else"number"==typeof s&&(s={id:s});return"both"===i?e.id===s.id&&e.title===s.title:"by-id"===i?e.id===s.id:"by-title"===i&&e.title===s.title}getFeatures(e,t){if(!this.hasFeatures)throw new InvalidOperationError(ERR_FEATURES_NOT_SUPPORTED);return super.getFeatures(e,t)}getFullExtent(){return this.effectiveFullExtent}async addFeatures(e,t){if(checkArg("features",e).isNotMissing(),!this.hasFeatures)throw new InvalidOperationError(ERR_FEATURES_NOT_SUPPORTED);await super.addFeatures(e,t)}async updateFeatures(e,t){if(checkArg("features",e).isNotMissing(),!this.hasFeatures)throw new InvalidOperationError(ERR_FEATURES_NOT_SUPPORTED);await super.updateFeatures(e,t)}async deleteFeatures(e,t){if(checkArg("features",e).isNotMissing(),!this.hasFeatures)throw new InvalidOperationError(ERR_FEATURES_NOT_SUPPORTED);await super.deleteFeatures(e,t)}_resolveSublayer(){if(this._sublayer||!this._deferredSublayerProperties||!this.layerExtension||!this.layerExtension.layer||!this.layerExtension.layer.sublayers)return;const e=e=>t=>SublayerExtension._matchesRef(t,this._deferredSublayerProperties,e),t=this.layerExtension.layer.sublayers.flatten((e=>e.sublayers));let i=t.find(e("both"));if(i||(i=t.find(e("by-title"))),i||(i=t.find(e("by-id"))),i&&this._isSupportedSublayer(i)){this._setSublayer(i);const e={sublayer:this._deferredSublayerProperties};this.assignProperties(e),this._originalRef=this._deferredSublayerProperties.$ref,this._deferredSublayerProperties=void 0}}_setLayerExtension(e){const t=this.layerExtension;this._layerExtension=e,this.layerExtension&&(this.layerExtension.watch("effectiveMinScale",(()=>this.notifyChange("effectiveMinScale"))),this.layerExtension.watch("effectiveMaxScale",(()=>this.notifyChange("effectiveMaxScale"))),this.layerExtension.watch("isEffectivelyVisible",(()=>this.notifyChange("isEffectivelyVisible")))),this._parentSublayerExtension||(t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=void 0)),e&&(this.featureSettings.formatSettings.parent||(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),this.taskSettings.parent||(this.taskSettings.parent=e.taskSettings))),this._resolveSublayer(),this.notifyChange("layerExtension"),this._sublayerExtensions.onLayerExtensionChanged()}_setParentSublayerExtension(e){const t=this._parentSublayerExtension;this._parentSublayerExtension=e,this.parentSublayerExtension&&(this.parentSublayerExtension.watch("effectiveMinScale",(()=>this.notifyChange("effectiveMinScale"))),this.parentSublayerExtension.watch("effectiveMaxScale",(()=>this.notifyChange("effectiveMaxScale")))),t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=this.layerExtension?this.layerExtension.featureSettings.formatSettings:void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=this.layerExtension?this.layerExtension.taskSettings:void 0)),e&&((!this.featureSettings.formatSettings.parent||this.layerExtension&&this.featureSettings.formatSettings.parent===this.layerExtension.featureSettings.formatSettings)&&(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),(!this.taskSettings.parent||this.layerExtension&&this.taskSettings.parent===this.layerExtension.taskSettings)&&(this.taskSettings.parent=e.taskSettings)),this._resolveSublayer(),this.notifyChange("parentSublayerExtension")}async _switchSublayer(e){var t;if(e===this.sublayer)return;checkArg("newSublayer",e).isNotMissing().satisfies((e=>e.id===this.sublayer.id),"Sublayer ID must match existing sublayer.").satisfies((e=>this._isSupportedSublayer(e)),ERR_INVALID_SUBLAYER_TYPE),this.isInitialized&&await load(e);const i=new Map;if(null===(t=this.sublayer)||void 0===t?void 0:t.sublayers)for(const e of this.sublayer.sublayers.toArray())i.set(e.id,this.sublayerExtensions.forSublayer(e));this.canToggleVisibility&&(e.visible=this.sublayer.visible),this.canChangeOpacity&&(e.opacity=this.sublayer.opacity),this._setSublayer(e);const s=[];if(this.sublayer.sublayers){const e=this.sublayer.sublayers.filter((e=>i.has(e.id))).toArray();s.push(...e.map((async e=>{const t=i.get(e.id);await t._switchSublayer(e),this._sublayerExtensions._register(t)})))}this.isInitialized&&s.push(this._initializeChildren()),await Promise.all(s)}async _postInitialize(){await super._postInitialize(),this._watchHandles.push(onCollectionPropertyChange(this,"sublayer.sublayers",(async e=>{var t;const i=(null!==(t=e.added)&&void 0!==t?t:[]).map((e=>this.sublayerExtensions.forSublayer(e)));await Promise.all(i.map(this._onSublayerAddedPostInitialize))})))}async _onDestroy(){this._watchHandles.forEach((e=>null==e?void 0:e.remove())),await Promise.all(this.sublayerExtensions.toArray().map((e=>e.destroy()))),await super._onDestroy()}_getSerializableProperties(){return{...super._getSerializableProperties(),iconUrl:"initial",visibilityMode:{serializeModes:["initial"],default:this.canToggleVisibility?"independent":"inherited"},layerListSettings:"initial",sublayerExtensions:{serializeModes:["initial","project"],serialize:()=>this.sublayerExtensions.map((e=>e.toItemUri())).toArray(),deserialize:e=>{_assignSublayerExtensions(this.sublayerExtensions,e,(e=>this._createSublayerExtension(e)))}},sublayer:{serializeModes:["initial","project"],serialize:()=>{if(this.sublayer){if(!this._layerExtension)return this._serializeSublayer(this._sublayer);{const e=getSublayerType(this._sublayer);if(this._originalRef)return{$ref:this._originalRef,$sublayerType:e};if(this._sublayer.title||this._sublayer.id)return{...this._createSublayerRef(),$sublayerType:e}}}else if(this._deferredSublayerProperties)return deepClone(this._deferredSublayerProperties)},deserialize:e=>{if(isSublayer(e)){if(e!==this.sublayer)throw new Error("Property 'sublayer' is read-only.")}else this._sublayer?this._applySublayerProperties(e,this._sublayer):this._deferredSublayerProperties&&(this._deferredSublayerProperties={...this._deferredSublayerProperties,...e})}},requestHelper:{serialize:!1}}}_createSublayerExtension(e){throw new InvalidOperationError(ERR_SUBLAYERX_NOT_SUPPORTED)}_createSchema(){return new SublayerSchema(this)}_createLayerListSettings(e){return new LayerListSettings(e)}_capabilities(){return DEFAULT_CAPABILITIES}async _onInitialize(){var e,t;if(await super._onInitialize(),this._sublayer||this._deferredSublayerProperties&&(null===(e=this._deferredSublayerProperties)||void 0===e?void 0:e.$ref)||(this._setSublayer(await this._createSublayer(this._deferredSublayerProperties)),this._deferredSublayerProperties=void 0),this._resolveSublayer(),!this._sublayer){const e=null===(t=this._deferredSublayerProperties)||void 0===t?void 0:t.$ref;if(!this._layerExtension)throw new InvalidOperationError("Cannot resolve sublayer reference: missing parent layer extension.");throw new InvalidOperationError(`No sublayer found matching reference "${e}".`)}this._sublayerExtensions.onParentInitialized()}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.sublayerExtensions}_createSublayerRef(){return{$ref:{id:this._sublayer.id,title:this._sublayer.title}}}_createSublayerExtensionCollection(){return new SubSublayerExtensionCollection(this)}_setSublayer(e){this._sublayer=e,e.watch("visible",this._onSetSublayerVisible,!0),this.supportsSublayers&&(onCollectionPropertyChange(e,"sublayers",this._onSublayersChange,!0),watchCollectionPropertyEach(e,"sublayers","visible",this._onSetSublayersSublayerVisible,!0)),this._onSetSublayerVisible(this.sublayer.visible),"exclusive"===this.visibilityMode&&this._ensureAtMostOneChildSublayerVisible(),this.sublayer.watch("minScale",(()=>this.notifyChange("effectiveMinScale"))),this.sublayer.watch("maxScale",(()=>this.notifyChange("effectiveMaxScale"))),this.notifyChange("sublayer"),this.notifyChange("title"),this.notifyChange("effectiveMinScale"),this.notifyChange("effectiveMaxScale"),this.notifyChange("isEffectivelyVisible")}_ensureAChildSublayerVisible(e){for(const t of this._sublayers.toArray())t!==e&&(t.visible=!1)}_ensureAtMostOneChildSublayerVisible(){this.sublayer&&this._sublayers&&this._ensureAChildSublayerVisible(this._sublayers.find((e=>e.visible)))}}let SublayerSchema=class extends Schema{constructor(e){super(),this._sublayerExtension=e}get spatialReference(){if(this._sublayerExtension.layerExtension)return this._sublayerExtension.layerExtension.schema.spatialReference}set spatialReference(e){throw new InvalidOperationError("Cannot set sublayer schema spatial reference.")}};SublayerSchema=__decorate([serializable],SublayerSchema);export{SublayerSchema};export class SubSublayerExtensionCollection extends SublayerExtensionCollectionBase{constructor(e){super(e,"sublayer.sublayers")}get _layerExtension(){return this._parent.layerExtension}add(e,t){if(checkArg("sublayerX",e).isNotMissing(),!this._parent.supportsSublayers)throw new InvalidOperationError(ERR_SUBLAYERX_NOT_SUPPORTED);e.sublayer&&this._parent.sublayer&&!this._parent.sublayer.sublayers&&(this._parent.sublayer.sublayers=[]),e.parentSublayerExtension&&e.parentSublayerExtension.sublayerExtensions.remove(e),super.add(e,t)}_onAdded(e){super._onAdded(e),e._setParentSublayerExtension(this._parent)}_onRemoved(e){super._onRemoved(e),e._setParentSublayerExtension(void 0)}}export function _assignSublayerExtensions(e,t,i){compare(e,t,{onNew:(t,s)=>{e.add(isSublayerExtension(t)?t:i(t),isSublayerRef(t)?void 0:s)},onMatch:(t,i,s,r)=>{isSublayerExtension(i)||t.assignProperties(i),s===r||isSublayerRef(i)||e.reorder(t,r)},equals:(e,t)=>isSublayerExtension(t)?t===e:!!SublayerExtension._matchesRef(e.sublayer,t.sublayer,"both")||e.id===t.id})}function isSublayer(e){return e&&"function"==typeof e.get}function isSublayerRef(e){var t,i;return isSublayerExtension(e)?!!(null===(t=e._deferredSublayerProperties)||void 0===t?void 0:t.$ref):!isSublayer(e.sublayer)&&!!(null===(i=e.sublayer)||void 0===i?void 0:i.$ref)}
|
|
1
|
+
import{__decorate}from"tslib";import{InvalidOperationError}from"../InvalidOperationError.js";import{isSublayerExtension,ItemType}from"../ItemType.js";import{FeatureSourceBase}from"../data/FeatureSourceBase.js";import{Schema}from"../data/Schema.js";import{serializable}from"../support/Serializable.js";import{isBuildingComponentSublayer,isBuildingGroupSublayer,isKMLSublayer,isMapImageSublayer,isTileLayer,isWMSSublayer,isWMTSSublayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{compare}from"../utilities/collection.js";import{load}from"../utilities/esri.js";import{getLogger}from"../utilities/log.js";import{parse}from"../utilities/number.js";import{deepClone}from"../utilities/object.js";import{onCollectionPropertyChange,watchCollectionPropertyEach}from"../utilities/watch.js";import{fromLayerListMode,LayerListSettings}from"./support/LayerListSettings.js";import{SublayerExtensionCollectionBase}from"./support/_SublayerExtensionCollection.js";const log=getLogger("SublayerExtension"),ERR_INVALID_SUBLAYER_TYPE="Invalid type of sublayer for this type of sublayer extension.",ERR_FEATURES_NOT_SUPPORTED="This type of layer does not have features.",ERR_SUBLAYERX_NOT_SUPPORTED="This type of sublayer extension cannot have child sublayer extensions.",DEFAULT_CAPABILITIES=Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsAttachmentEditing:!1});export function getSublayerType(e){if(isMapImageSublayer(e))return isTileLayer(e?.layer)?"ArcGISTiledSublayer":"ArcGISMapServiceSublayer";if(isKMLSublayer(e))return"KMLSublayer";if(isWMTSSublayer(e))return"WMTSSublayer";if(isWMSSublayer(e))return"WMSSublayer";if(isBuildingComponentSublayer(e))return"BuildingComponentSublayer";if(isBuildingGroupSublayer(e))return"BuildingGroupSublayer";throw new Error(`Unknown sublayer type for ESRI sublayer: ${e}`)}export class SublayerExtension extends FeatureSourceBase{constructor(e){super(e),this._itemType=ItemType.SUBLAYER_EXTENSION,this._watchHandles=[],this._onSublayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(t){log.error({message:`Error occurred while initializing sublayer extension for sublayer '${e.title??e.sublayer.id??e.id}'.`,error:t})}},this._onSetSublayerVisible=e=>{if("inherited"===this.visibilityMode&&this.supportsSublayers&&this.sublayerExtensions)for(const t of this.sublayerExtensions.toArray())t.sublayer&&t.canToggleVisibility&&(t.sublayer.visible=e);this.notifyChange("isEffectivelyVisible")},this._onSetSublayersSublayerVisible=(e,t,i,s)=>{e&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(s)},this._onSublayersChange=e=>{e.added?.length&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(e.added[e.added.length-1])};const t=e||{};this._visibilityMode=this.canToggleVisibility?"independent":"inherited",this._sublayerExtensions=this._createSublayerExtensionCollection();const i=t.sublayer;let s;i?.hasOwnProperty("listMode")&&(s=fromLayerListMode(i.listMode)),this.layerListSettings=this._createLayerListSettings({...s,...t.layerListSettings}),isSublayer(i)?(checkArg("properties.sublayer",i).satisfies((e=>this._isSupportedSublayer(e)),ERR_INVALID_SUBLAYER_TYPE),this._setSublayer(i)):i&&(this._deferredSublayerProperties=i),this.watch("parentSublayerExtension.isEffectivelyVisible",(()=>this.notifyChange("isEffectivelyVisible")))}get sublayer(){return this._sublayer}get layerExtension(){return this._layerExtension}get parentSublayerExtension(){return this._parentSublayerExtension}get hasFeatures(){return!1}get sublayerExtensions(){return this._sublayerExtensions}get renderer(){}get visibilityMode(){return this.canToggleVisibility?this._visibilityMode:"inherited"}set visibilityMode(e){checkArg("visibilityMode",e).satisfies((e=>this.canToggleVisibility||"inherited"===e),'Sublayers of this type only support a visibility mode of "inherited".'),this._visibilityMode=e,"exclusive"===e&&this._ensureAtMostOneChildSublayerVisible()}get capabilities(){return this._capabilities()}get effectiveMinScale(){const e=this.sublayer?this.sublayer.minScale:0;if(this.parentSublayerExtension){const t=this.parentSublayerExtension.effectiveMinScale||1/0;if(t<(e||1/0))return t}if(this.layerExtension){const t=this.layerExtension.effectiveMinScale||1/0;if(t<(e||1/0))return t}return e}get effectiveMaxScale(){const e=this.sublayer?this.sublayer.maxScale:0;return this.parentSublayerExtension&&this.parentSublayerExtension.effectiveMaxScale>e?this.parentSublayerExtension.effectiveMaxScale:this.layerExtension&&this.layerExtension.effectiveMaxScale>e?this.layerExtension.effectiveMaxScale:e}get isEffectivelyVisible(){const e=!!this.sublayer&&this.sublayer.visible;return this.parentSublayerExtension?this.parentSublayerExtension.isEffectivelyVisible&&e:this.layerExtension?this.layerExtension.isEffectivelyVisible&&e:e}get title(){return this.sublayer?.title??("string"==typeof this._deferredSublayerProperties?.$ref||"number"==typeof this._deferredSublayerProperties?.$ref?this._deferredSublayerProperties?.$ref.toString():this._deferredSublayerProperties?.$ref?.title??this._deferredSublayerProperties?.$ref?.id.toString())??"Sublayer"}get supportsSublayers(){return!1}get canToggleVisibility(){return!0}get canChangeOpacity(){return!0}get canChangeScale(){return!0}get canChangeRenderer(){return!1}get _layerSupportsHideChildren(){return!1}get _sublayers(){if(this.supportsSublayers)return this.sublayer?.sublayers}get effectiveFullExtent(){return this._effectiveFullExtent?this._effectiveFullExtent:this.parentSublayerExtension?this.parentSublayerExtension.effectiveFullExtent:this.layerExtension?this.layerExtension.effectiveFullExtent:void 0}static create(e){if(!SublayerExtension.factory)throw new InvalidOperationError("Cannot create sublayer extension: no sublayer extension factory has been registered.");return SublayerExtension.factory.create(e)}static _matchesRef(e,t,i){if(!e||!t)return!1;let s=t.$ref;if("string"==typeof s){const e=parse(s);s={id:isNaN(e)?s:e,title:s}}else"number"==typeof s&&(s={id:s});return"both"===i?e.id===s.id&&e.title===s.title:"by-id"===i?e.id===s.id:"by-title"===i&&e.title===s.title}getFeatures(e,t){if(!this.hasFeatures)throw new InvalidOperationError(ERR_FEATURES_NOT_SUPPORTED);return super.getFeatures(e,t)}getFullExtent(){return this.effectiveFullExtent}async addFeatures(e,t){if(checkArg("features",e).isNotMissing(),!this.hasFeatures)throw new InvalidOperationError(ERR_FEATURES_NOT_SUPPORTED);await super.addFeatures(e,t)}async updateFeatures(e,t){if(checkArg("features",e).isNotMissing(),!this.hasFeatures)throw new InvalidOperationError(ERR_FEATURES_NOT_SUPPORTED);await super.updateFeatures(e,t)}async deleteFeatures(e,t){if(checkArg("features",e).isNotMissing(),!this.hasFeatures)throw new InvalidOperationError(ERR_FEATURES_NOT_SUPPORTED);await super.deleteFeatures(e,t)}_resolveSublayer(){if(this._sublayer||!this._deferredSublayerProperties||!this.layerExtension||!this.layerExtension.layer||!this.layerExtension.layer.sublayers)return;const e=e=>t=>SublayerExtension._matchesRef(t,this._deferredSublayerProperties,e),t=this.layerExtension.layer.sublayers.flatten((e=>e.sublayers));let i=t.find(e("both"));if(i||(i=t.find(e("by-title"))),i||(i=t.find(e("by-id"))),i&&this._isSupportedSublayer(i)){this._setSublayer(i);const e={sublayer:this._deferredSublayerProperties};this.assignProperties(e),this._originalRef=this._deferredSublayerProperties.$ref,this._deferredSublayerProperties=void 0}}_setLayerExtension(e){const t=this.layerExtension;this._layerExtension=e,this.layerExtension&&(this.layerExtension.watch("effectiveMinScale",(()=>this.notifyChange("effectiveMinScale"))),this.layerExtension.watch("effectiveMaxScale",(()=>this.notifyChange("effectiveMaxScale"))),this.layerExtension.watch("isEffectivelyVisible",(()=>this.notifyChange("isEffectivelyVisible")))),this._parentSublayerExtension||(t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=void 0)),e&&(this.featureSettings.formatSettings.parent||(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),this.taskSettings.parent||(this.taskSettings.parent=e.taskSettings))),this._resolveSublayer(),this.notifyChange("layerExtension"),this._sublayerExtensions.onLayerExtensionChanged()}_setParentSublayerExtension(e){const t=this._parentSublayerExtension;this._parentSublayerExtension=e,this.parentSublayerExtension&&(this.parentSublayerExtension.watch("effectiveMinScale",(()=>this.notifyChange("effectiveMinScale"))),this.parentSublayerExtension.watch("effectiveMaxScale",(()=>this.notifyChange("effectiveMaxScale")))),t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=this.layerExtension?this.layerExtension.featureSettings.formatSettings:void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=this.layerExtension?this.layerExtension.taskSettings:void 0)),e&&((!this.featureSettings.formatSettings.parent||this.layerExtension&&this.featureSettings.formatSettings.parent===this.layerExtension.featureSettings.formatSettings)&&(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),(!this.taskSettings.parent||this.layerExtension&&this.taskSettings.parent===this.layerExtension.taskSettings)&&(this.taskSettings.parent=e.taskSettings)),this._resolveSublayer(),this.notifyChange("parentSublayerExtension")}async _switchSublayer(e){if(e===this.sublayer)return;checkArg("newSublayer",e).isNotMissing().satisfies((e=>e.id===this.sublayer.id),"Sublayer ID must match existing sublayer.").satisfies((e=>this._isSupportedSublayer(e)),ERR_INVALID_SUBLAYER_TYPE),this.isInitialized&&await load(e);const t=new Map;if(this.sublayer?.sublayers)for(const e of this.sublayer.sublayers.toArray())t.set(e.id,this.sublayerExtensions.forSublayer(e));this.canToggleVisibility&&(e.visible=this.sublayer.visible),this.canChangeOpacity&&(e.opacity=this.sublayer.opacity),this._setSublayer(e);const i=[];if(this.sublayer.sublayers){const e=this.sublayer.sublayers.filter((e=>t.has(e.id))).toArray();i.push(...e.map((async e=>{const i=t.get(e.id);await i._switchSublayer(e),this._sublayerExtensions._register(i)})))}this.isInitialized&&i.push(this._initializeChildren()),await Promise.all(i)}async _postInitialize(){await super._postInitialize(),this._watchHandles.push(onCollectionPropertyChange(this,"sublayer.sublayers",(async e=>{const t=(e.added??[]).map((e=>this.sublayerExtensions.forSublayer(e)));await Promise.all(t.map(this._onSublayerAddedPostInitialize))})))}async _onDestroy(){this._watchHandles.forEach((e=>e?.remove())),await Promise.all(this.sublayerExtensions.toArray().map((e=>e.destroy()))),await super._onDestroy()}_getSerializableProperties(){return{...super._getSerializableProperties(),iconUrl:"initial",visibilityMode:{serializeModes:["initial"],default:this.canToggleVisibility?"independent":"inherited"},layerListSettings:"initial",sublayerExtensions:{serializeModes:["initial","project"],serialize:()=>this.sublayerExtensions.map((e=>e.toItemUri())).toArray(),deserialize:e=>{_assignSublayerExtensions(this.sublayerExtensions,e,(e=>this._createSublayerExtension(e)))}},sublayer:{serializeModes:["initial","project"],serialize:()=>{if(this.sublayer){if(!this._layerExtension)return this._serializeSublayer(this._sublayer);{const e=getSublayerType(this._sublayer);if(this._originalRef)return{$ref:this._originalRef,$sublayerType:e};if(this._sublayer.title||this._sublayer.id)return{...this._createSublayerRef(),$sublayerType:e}}}else if(this._deferredSublayerProperties)return deepClone(this._deferredSublayerProperties)},deserialize:e=>{if(isSublayer(e)){if(e!==this.sublayer)throw new Error("Property 'sublayer' is read-only.")}else this._sublayer?this._applySublayerProperties(e,this._sublayer):this._deferredSublayerProperties&&(this._deferredSublayerProperties={...this._deferredSublayerProperties,...e})}},requestHelper:{serialize:!1}}}_createSublayerExtension(e){throw new InvalidOperationError(ERR_SUBLAYERX_NOT_SUPPORTED)}_createSchema(){return new SublayerSchema(this)}_createLayerListSettings(e){return new LayerListSettings(e)}_capabilities(){return DEFAULT_CAPABILITIES}async _onInitialize(){if(await super._onInitialize(),this._sublayer||this._deferredSublayerProperties&&this._deferredSublayerProperties?.$ref||(this._setSublayer(await this._createSublayer(this._deferredSublayerProperties)),this._deferredSublayerProperties=void 0),this._resolveSublayer(),!this._sublayer){const e=this._deferredSublayerProperties?.$ref;if(!this._layerExtension)throw new InvalidOperationError("Cannot resolve sublayer reference: missing parent layer extension.");throw new InvalidOperationError(`No sublayer found matching reference "${e}".`)}this._sublayerExtensions.onParentInitialized()}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.sublayerExtensions}_createSublayerRef(){return{$ref:{id:this._sublayer.id,title:this._sublayer.title}}}_createSublayerExtensionCollection(){return new SubSublayerExtensionCollection(this)}_watchSublayerProperties(){this._watchHandles.push(this.sublayer.watch("minScale",(()=>this._notifyChange("effectiveMinScale")),!0),this.sublayer.watch("maxScale",(()=>this._notifyChange("effectiveMaxScale")),!0))}_setSublayer(e){this._sublayer=e,this._watchHandles.push(e.watch("visible",this._onSetSublayerVisible,!0)),this.supportsSublayers&&this._watchHandles.push(onCollectionPropertyChange(e,"sublayers",this._onSublayersChange,!0),watchCollectionPropertyEach(e,"sublayers","visible",this._onSetSublayersSublayerVisible,!0)),this._onSetSublayerVisible(this.sublayer.visible),"exclusive"===this.visibilityMode&&this._ensureAtMostOneChildSublayerVisible(),this._watchSublayerProperties(),this.notifyChange("sublayer"),this.notifyChange("title"),this.notifyChange("effectiveMinScale"),this.notifyChange("effectiveMaxScale"),this.notifyChange("isEffectivelyVisible")}_ensureAChildSublayerVisible(e){for(const t of this._sublayers.toArray())t!==e&&(t.visible=!1)}_ensureAtMostOneChildSublayerVisible(){this.sublayer&&this._sublayers&&this._ensureAChildSublayerVisible(this._sublayers.find((e=>e.visible)))}}let SublayerSchema=class extends Schema{constructor(e){super(),this._sublayerExtension=e}get spatialReference(){if(this._sublayerExtension.layerExtension)return this._sublayerExtension.layerExtension.schema.spatialReference}set spatialReference(e){throw new InvalidOperationError("Cannot set sublayer schema spatial reference.")}};SublayerSchema=__decorate([serializable],SublayerSchema);export{SublayerSchema};export class SubSublayerExtensionCollection extends SublayerExtensionCollectionBase{constructor(e){super(e,"sublayer.sublayers")}get _layerExtension(){return this._parent.layerExtension}add(e,t){if(checkArg("sublayerX",e).isNotMissing(),!this._parent.supportsSublayers)throw new InvalidOperationError(ERR_SUBLAYERX_NOT_SUPPORTED);e.sublayer&&this._parent.sublayer&&!this._parent.sublayer.sublayers&&(this._parent.sublayer.sublayers=[]),e.parentSublayerExtension&&e.parentSublayerExtension.sublayerExtensions.remove(e),super.add(e,t)}_onAdded(e){super._onAdded(e),e._setParentSublayerExtension(this._parent)}_onRemoved(e){super._onRemoved(e),e._setParentSublayerExtension(void 0)}}export function _assignSublayerExtensions(e,t,i){compare(e,t,{onNew:(t,s)=>{e.add(isSublayerExtension(t)?t:i(t),isSublayerRef(t)?void 0:s)},onMatch:(t,i,s,r)=>{isSublayerExtension(i)||t.assignProperties(i),s===r||isSublayerRef(i)||e.reorder(t,r)},equals:(e,t)=>isSublayerExtension(t)?t===e:!!SublayerExtension._matchesRef(e.sublayer,t.sublayer,"both")||e.id===t.id})}function isSublayer(e){return e&&"function"==typeof e.get}function isSublayerRef(e){return isSublayerExtension(e)?!!e._deferredSublayerProperties?.$ref:!isSublayer(e.sublayer)&&!!e.sublayer?.$ref}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__decorate}from"tslib";import{whenDefinedOnce}from"@arcgis/core/core/watchUtils";import{InvalidOperationError}from"../../InvalidOperationError.js";import{isLayerExtension}from"../../ItemType.js";import{serializable,SerializableBase}from"../../support/Serializable.js";import{checkArg}from"../../utilities/checkArg.js";export class LayerListSettingsProperties{}let LayerListSettings=class extends SerializableBase{get expanded(){return this._expanded}set expanded(e){this._expanded=e}get included(){return this._included}set included(e){this._included=e}get initialExpanded(){return this._initialExpanded}get initialChildrenIncluded(){return this._initialChildrenIncluded}get initialIncluded(){return this._initialIncluded}get childrenIncluded(){return this._childrenIncluded}set childrenIncluded(e){this._childrenIncluded=e}_getSerializableProperties(){return{expanded:{serializeModes:["initial"],default:!1},included:{serializeModes:["initial"],default:!0},childrenIncluded:{serializeModes:["initial"],default:!0}}}};LayerListSettings=__decorate([serializable],LayerListSettings);export{LayerListSettings};export class ExtensionBaseLayerListSettings extends LayerListSettings{constructor(e,i,t){
|
|
1
|
+
import{__decorate}from"tslib";import{whenDefinedOnce}from"@arcgis/core/core/watchUtils";import{InvalidOperationError}from"../../InvalidOperationError.js";import{isLayerExtension}from"../../ItemType.js";import{serializable,SerializableBase}from"../../support/Serializable.js";import{checkArg}from"../../utilities/checkArg.js";export class LayerListSettingsProperties{}let LayerListSettings=class extends SerializableBase{get expanded(){return this._expanded}set expanded(e){this._expanded=e}get included(){return this._included}set included(e){this._included=e}get initialExpanded(){return this._initialExpanded}get initialChildrenIncluded(){return this._initialChildrenIncluded}get initialIncluded(){return this._initialIncluded}get childrenIncluded(){return this._childrenIncluded}set childrenIncluded(e){this._childrenIncluded=e}_getSerializableProperties(){return{expanded:{serializeModes:["initial"],default:!1},included:{serializeModes:["initial"],default:!0},childrenIncluded:{serializeModes:["initial"],default:!0}}}};LayerListSettings=__decorate([serializable],LayerListSettings);export{LayerListSettings};export class ExtensionBaseLayerListSettings extends LayerListSettings{constructor(e,i,t){checkArg("extension",i).isNotMissing().isDefined(),super(e),this._extension=i,this._defaultChildrenIncluded=t;const d=isLayerExtension(i)?"layer":"sublayer";"included"in e?(this._initialIncluded=e.included,this._notifyChange("initialIncluded")):(whenDefinedOnce(i,d,(()=>{this._initialIncluded=this.included,this._notifyChange("initialIncluded")})),void 0===this._initialIncluded&&(this._initialIncluded=!0,this._notifyChange("initialIncluded"))),"childrenIncluded"in e?(this._initialChildrenIncluded=e.childrenIncluded,this._notifyChange("initialChildrenIncluded")):(whenDefinedOnce(i,d,(()=>{this._initialChildrenIncluded=this.childrenIncluded,this._notifyChange("initialChildrenIncluded")})),void 0===this._initialChildrenIncluded&&(this._initialChildrenIncluded=!0,this._notifyChange("initialChildrenIncluded"))),whenDefinedOnce(i,d,(()=>{void 0===this._initialEsriLayerListMode&&(this._initialEsriLayerListMode=this._esriLayer.listMode)})),this._initialExpanded=e.expanded??!1}get included(){return void 0!==super.included?super.included:!this._esriLayer||"hide"!==this._esriLayer.listMode}set included(e){checkArg("value",e).satisfies((e=>"boolean"==typeof e),"LayerListSettings must be set to boolean values"),super.included=e,this._setListMode()}get childrenIncluded(){return void 0!==super.childrenIncluded?super.childrenIncluded:this._esriLayer?this._supportsChildren&&"show"===this._esriLayer.listMode:this._defaultChildrenIncluded??this._supportsChildren}set childrenIncluded(e){if(checkArg("value",e).satisfies((e=>"boolean"==typeof e),"LayerListSettings must be set to boolean values"),!this._supportsChildren&&e)throw new InvalidOperationError("Cannot set 'childrenIncluded' to true on a layer that does not support sublayers.");super.childrenIncluded=e,this._setListMode()}get expanded(){return super.expanded}set expanded(e){if(checkArg("value",e).satisfies((e=>"boolean"==typeof e),"LayerListSettings must be set to boolean values"),!this._supportsChildren&&e)throw new InvalidOperationError("Cannot set 'expanded' to true on a layer that does not support sublayers.");super.expanded=e}onLayerExtensionInitialized(){this._setListMode(),this._extension.watch(this._listModePath,((e,i)=>{e!==i&&(super.childrenIncluded=void 0,super.included=void 0)}),!0)}_getSerializableProperties(){return{...super._getSerializableProperties(),included:{serializeModes:["initial"],isDefault:e=>!!e},childrenIncluded:{serializeModes:["initial"],isDefault:e=>e===this._childrenIncludedSerializationDefault()}}}_childrenIncludedSerializationDefault(){return this._esriLayer?"show"===this._initialEsriLayerListMode:this._defaultChildrenIncluded??this._supportsChildren}_setListMode(){const e=this._esriLayer;e&&(void 0===this._initialEsriLayerListMode&&(this._initialEsriLayerListMode=e.listMode),!this.childrenIncluded&&this._extension._layerSupportsHideChildren&&this.included?e.listMode="hide-children":this.childrenIncluded||this.included?e.listMode="show":e.listMode="hide")}}export function fromLayerListMode(e){const i={};return"hide"===e?i.included=!1:"show"===e?i.included=!0:"hide-children"===e&&(i.childrenIncluded=!1),i}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ArgumentError}from"../../ArgumentError.js";import{InvalidOperationError}from"../../InvalidOperationError.js";import{DefaultRequestHelper}from"../../utilities/RequestHelper.js";import{OgcNamespace}from"../../utilities/_ogc.js";import{checkArg}from"../../utilities/checkArg.js";import{Uri}from"../../utilities/uri.js";import{WfsFeatureType}from"./WfsFeatureType.js";export var WfsVersions;!function(e){e.WFS_1_0="1.0.0",e.WFS_1_1="1.1.0",e.WFS_2_0="2.0.0"}(WfsVersions||(WfsVersions={}));export class WfsCapabilities{constructor(e){this.requestHelper=new DefaultRequestHelper,this._allowsWfsQuery=!0,this._isInitialized=!1,this._isDestroyed=!1,this._implementsBasicWfs=!0,this._getFeatureOutputFormats=new Array,this._featureTypes=new Array,this.assignProperties(e)}get isInitialized(){return this._isInitialized}get isDestroyed(){return this._isDestroyed}get url(){return this._url}get wfsVersion(){return this._wfsVersion}get title(){return this._title}get describeFeatureTypeGetUrl(){return this._describeFeatureTypeGetUrl}get describeFeatureTypePostUrl(){return this._describeFeatureTypePostUrl}get getFeatureGetUrl(){return this._getFeatureGetUrl}get getFeaturePostUrl(){return this._getFeaturePostUrl}get getFeatureOutputFormats(){return this._getFeatureOutputFormats}get implementsBasicWfs(){return this._implementsBasicWfs}get allowsWfsQuery(){return this._allowsWfsQuery}get featureTypes(){return this._featureTypes}assignProperties(e){if(checkArg("properties",e).isNotMissing(),!e.hasOwnProperty("url"))throw new ArgumentError("WfsCapabilities requires a URL");this._url=e.url}async initialize(){if(this._isInitialized)return;const e=new Uri(this.url);e.queryValues.set("request","GetCapabilities"),e.queryValues.set("service","WFS");const t=await this.requestHelper.request(e.toString()),s=await t.text(),
|
|
1
|
+
import{ArgumentError}from"../../ArgumentError.js";import{InvalidOperationError}from"../../InvalidOperationError.js";import{DefaultRequestHelper}from"../../utilities/RequestHelper.js";import{OgcNamespace}from"../../utilities/_ogc.js";import{checkArg}from"../../utilities/checkArg.js";import{Uri}from"../../utilities/uri.js";import{WfsFeatureType}from"./WfsFeatureType.js";export var WfsVersions;!function(e){e.WFS_1_0="1.0.0",e.WFS_1_1="1.1.0",e.WFS_2_0="2.0.0"}(WfsVersions||(WfsVersions={}));export class WfsCapabilities{constructor(e){this.requestHelper=new DefaultRequestHelper,this._allowsWfsQuery=!0,this._isInitialized=!1,this._isDestroyed=!1,this._implementsBasicWfs=!0,this._getFeatureOutputFormats=new Array,this._featureTypes=new Array,this.assignProperties(e)}get isInitialized(){return this._isInitialized}get isDestroyed(){return this._isDestroyed}get url(){return this._url}get wfsVersion(){return this._wfsVersion}get title(){return this._title}get describeFeatureTypeGetUrl(){return this._describeFeatureTypeGetUrl}get describeFeatureTypePostUrl(){return this._describeFeatureTypePostUrl}get getFeatureGetUrl(){return this._getFeatureGetUrl}get getFeaturePostUrl(){return this._getFeaturePostUrl}get getFeatureOutputFormats(){return this._getFeatureOutputFormats}get implementsBasicWfs(){return this._implementsBasicWfs}get allowsWfsQuery(){return this._allowsWfsQuery}get featureTypes(){return this._featureTypes}assignProperties(e){if(checkArg("properties",e).isNotMissing(),!e.hasOwnProperty("url"))throw new ArgumentError("WfsCapabilities requires a URL");this._url=e.url}async initialize(){if(this._isInitialized)return;const e=new Uri(this.url);e.queryValues.set("request","GetCapabilities"),e.queryValues.set("service","WFS");const t=await this.requestHelper.request(e.toString()),s=await t.text(),r=(new DOMParser).parseFromString(s,"text/xml");if(!t||!r||!r.childNodes||0===r.childNodes.length)throw new Error(`Response to request for url ${e.toString()} was invalid.`);this._parseCapabilities(r.childNodes[0]),await this._initializeFeatureTypeInfos(),this._isInitialized=!0}async destroy(){this._isDestroyed=!0}_parseCapabilities(e){if(checkArg("data",e).isNotMissing(),"WFS_Capabilities"!==e.localName)throw new ArgumentError("Unable to parse WFS capabilities: unexpected element encountered.");this._parseServiceIdentification(e),this._parseOperationsMetadata(e),this._parseFeatureTypeList(e)}_parseServiceIdentification(e){checkArg("element",e).isNotMissing();let t=e.getElementsByTagName("ows:ServiceIdentification");t.length||(t=e.getElementsByTagName("ServiceIdentification")),t.length>0&&(this._setWfsVersion(t[0]),this._setWfsTitle(t[0]))}_setWfsVersion(e){checkArg("element",e).isNotMissing();const t=e.getElementsByTagNameNS(e.namespaceURI,"ServiceTypeVersion");if(t.length>0){switch(this._getValue(t[0])){case WfsVersions.WFS_1_0:this._wfsVersion=WfsVersions.WFS_1_0;break;case WfsVersions.WFS_1_1:this._wfsVersion=WfsVersions.WFS_1_1;break;case WfsVersions.WFS_2_0:default:this._wfsVersion=WfsVersions.WFS_2_0}}}_setWfsTitle(e){checkArg("element",e).isNotMissing();const t=e.getElementsByTagNameNS(e.namespaceURI,"Title");let s;t.length>0&&(s=this._getValue(t[0])),null!=s&&(this._title=s)}_parseOperationsMetadata(e){checkArg("element",e).isNotMissing();let t=e.getElementsByTagName("ows:OperationsMetadata");if(t.length||(t=e.getElementsByTagName("OperationsMetadata")),t.length>0){const e=Array.from(t[0].getElementsByTagNameNS(t[0].namespaceURI,"Operation"));e.length>0&&(this._parseGetFeature(e),this._parseDescribeFeatureType(e));const s=Array.from(t[0].getElementsByTagNameNS(t[0].namespaceURI,"Constraint"));s.length>0&&this._parseConstraints(s)}}_parseConstraints(e){if(checkArg("elements",e).isNotMissing(),this.wfsVersion===WfsVersions.WFS_2_0){const t=this._getElementByAttribute(e,"name","ImplementsBasicWFS");if(t){const e=this._getChildElementByLocalName(t,"DefaultValue");if(e){const t=this._getValue(e);this._implementsBasicWfs="TRUE"===t.toUpperCase()}}const s=this._getElementByAttribute(e,"name","QueryExpressions");if(s){const e=this._getChildElementByLocalName(s,"AllowedValues");if(e){Array.from(e.getElementsByTagNameNS(e.namespaceURI,"Value")).some((e=>"wfs:Query"===this._getValue(e)))&&(this._allowsWfsQuery=!0)}}}}_parseGetFeature(e){checkArg("elements",e).isNotMissing();const t=this._getElementByAttribute(e,"name","GetFeature");t&&(this._getFeatureGetUrl=this._parseUrlFromOperationElement(t,"Get"),this._getFeaturePostUrl=this._parseUrlFromOperationElement(t,"Post"),this._setOutputFormat(t))}_parseDescribeFeatureType(e){checkArg("elements",e).isNotMissing();const t=this._getElementByAttribute(e,"name","DescribeFeatureType");t&&(this._describeFeatureTypeGetUrl=this._parseUrlFromOperationElement(t,"Get"),this._describeFeatureTypePostUrl=this._parseUrlFromOperationElement(t,"Post"))}_setOutputFormat(e){let t;checkArg("elements",e).isNotMissing();const s=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"Parameter"));if(s.length>0){const e=this._getElementByAttribute(s,"name","outputFormat");if(e&&(t=this.wfsVersion===WfsVersions.WFS_1_0||this.wfsVersion===WfsVersions.WFS_1_1?e:this._getChildElementByLocalName(e,"AllowedValues"),t)){const e=Array.from(t.getElementsByTagNameNS(t.namespaceURI,"Value"));this._getFeatureOutputFormats.push(...e.map((e=>this._getValue(e))).filter((e=>e?.includes("xml"))))}}}_parseUrlFromOperationElement(e,t){checkArg("elements",e).isNotMissing(),checkArg("verb",t).isNotMissing();const s=this._getChildElementByLocalName(e,"DCP");if(s){const e=this._getChildElementByLocalName(s,"HTTP");if(e){const s=this._getChildElementByLocalName(e,t);if(s){const e=s.getAttributeNS(OgcNamespace.XLINK,"href");if(e)return e}}}}_parseFeatureTypeList(e){checkArg("element",e).isNotMissing();const t=this._getChildElementByLocalName(e,"FeatureTypeList");null!==t&&this._parseFeatureTypes(t)}_parseFeatureTypes(e){checkArg("element",e).isNotMissing();const t=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"FeatureType"));for(const e of t){const t=this._parseFeatureType(e);null!==t&&this._featureTypes.push(t)}}_parseFeatureType(e){checkArg("element",e).isNotMissing();const t={},s=this._getChildElementByLocalName(e,"Name");if(null!==s){const e=this._getValue(s);null!==e&&(t.name=e)}const r=this._getChildElementByLocalName(e,"Title");if(null!==r){const e=this._getValue(r);null!==e&&(t.title=e)}let i="DefaultCRS";this.wfsVersion!==WfsVersions.WFS_1_0&&this.wfsVersion!==WfsVersions.WFS_1_1||(i="DefaultSRS");const a=this._getChildElementByLocalName(e,i);if(null!==a){const e=this._getValue(a);null!==e&&(t.defaultCrs=e)}let n="OtherCRS";this.wfsVersion!==WfsVersions.WFS_1_0&&this.wfsVersion!==WfsVersions.WFS_1_1||(n="OtherSRS");const o=Array.from(e.getElementsByTagNameNS(e.namespaceURI,n));if(null!==o){t.otherCrs=new Array;for(const e of o){const s=this._getValue(e);null!==s&&t.otherCrs.push(s)}}return new WfsFeatureType(t)}_getChildElementByLocalName(e,t){checkArg("element",e).isNotMissing(),checkArg("localName",t).isNotMissing();const s=e.getElementsByTagNameNS(e.namespaceURI,t);if(s.length>0)return s[0];const r=e.getElementsByTagName(t);return r.length>0?r[0]:void 0}_getElementByAttribute(e,t,s){checkArg("elements",e).isNotMissing(),checkArg("name",t).isNotMissing(),checkArg("value",s).isNotMissing();for(const r of e)if(r.hasAttribute(t)&&r.getAttribute(t)===s)return r}_getValue(e){if(checkArg("element",e).isNotMissing(),1!==e.childNodes.length||e.childNodes[0].nodeType!==Node.TEXT_NODE)throw new ArgumentError("Unable to parse element value.");return e.childNodes[0].data}async _initializeFeatureTypeInfos(){if(!this.describeFeatureTypeGetUrl)throw new InvalidOperationError("Cannot retrieve feature type info as no DescribeFeatureType url is available");if(0===this.featureTypes.length)return;const e=new Uri(this.url);e.queryValues.set("SERVICE","WFS"),e.queryValues.set("VERSION",this.wfsVersion),e.queryValues.set("REQUEST","DescribeFeatureType");const t=await this.requestHelper.request(e.toString()),s=await t.text(),r=(new DOMParser).parseFromString(s,"text/xml");if(!t||!r||r.childNodes.length<1)throw new Error("Response to WFS DescribeFeatureType request was invalid.");for(const e of this.featureTypes)this._parseFeatureTypeInfo(e,r.childNodes[0])}_parseFeatureTypeInfo(e,t){checkArg("featureType",e).isNotMissing(),checkArg("element",t).isNotMissing();const s=t.namespaceURI,r=new Array;for(const e of Array.from(t.childNodes))"element"===e.localName&&r.push(e);let i=this._getElementByAttribute(r,s,e.name);if(!i){const t=e.name.indexOf(":");if(t>=0){const s=e.name.slice(t+1,e.name.length);i=this._getElementByAttribute(r,"name",s)}}if(!i)throw new InvalidOperationError(`Unable to parse attribute information for feature type: ${e.name}`);const a=i.getAttribute("type"),n=Array.from(t.getElementsByTagNameNS(s,"complexType"));let o=this._getElementByAttribute(n,"name",a);if(!o){const e=a.indexOf(":");if(e>=0){const t=a.slice(e+1,a.length);o=this._getElementByAttribute(n,"name",t)}}if(!o)throw new InvalidOperationError(`Unable to parse attribute information for feature type: ${e.name}`);const l=o.getElementsByTagNameNS(s,"extension");if(l&&l.length>0){const t=l[0].getElementsByTagNameNS(s,"sequence");if(t&&t.length>0){const r=t[0].getElementsByTagNameNS(s,"element");r&&r.length>0&&this._parseAttributes(e,r)}}}_parseAttributes(e,t){const s=Array.from(t);for(const t of s)if(t.getAttribute("type").startsWith("gml")){const s=t.getAttribute("name");e.attributes.push(s),e.geometryField=s}else e.attributes.push(t.getAttribute("name"))}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{InvalidOperationError}from"../../InvalidOperationError.js";import{InitializableCollectionProxy}from"../../support/InitializableCollectionProxy.js";import{checkArg}from"../../utilities/checkArg.js";import{Collection}from"../../utilities/collection.js";import{layersAreEquivalent}from"../../utilities/layers.js";import{getLogger}from"../../utilities/log.js";import{onCollectionPropertyChange}from"../../utilities/watch.js";import{LayerExtension}from"../_LayerExtension.js";export class LayerExtensionCollectionBase extends InitializableCollectionProxy{constructor(e,i){super(),this._layerExtensionMap=new WeakMap,this._uninitializedLayerExtensions=new Collection,this._parent=e,this._layersProperty=i,onCollectionPropertyChange(this._parent,this._layersProperty,(e=>{try{const i={added:(e.added||[]).map((e=>this._forLayer(e))),moved:(e.moved||[]).map((e=>this._forLayer(e))),removed:(e.removed||[]).map((e=>this._forLayer(e)))};this.emit("change",i)}catch(e){e instanceof Error&&getCollectionLogger().error(e.message)}})),this._parent.watch(`${this._layersProperty}.length`,(()=>this.notifyChange("length")))}get _collection(){return this._layers.map((e=>this._forLayer(e))).concat(this._uninitializedLayerExtensions)}get _layers(){let e=this._parent.get(this._layersProperty);return e||(this._tempLayers||(this._tempLayers=new Collection),e=this._tempLayers),e}emit(e,i){const t=super.emit(e,i);return"change"===e&&this._mapExtension&&this._mapExtension.allLayerExtensions.emit(e,i),t}clone(){const e=super.clone();return e._layerExtensionMap=this._layerExtensionMap,e}findById(e){return checkArg("id",e).isNotMissing(),this.find((i=>i.id===e))}findByLayerId(e){return checkArg("id",e).isNotMissing(),this.find((i=>i.layer.id===e))}forLayer(e){if(checkArg("layer",e).isNotMissing(),this._layers.includes(e))return this._forLayer(e)}add(e,i){if(checkArg("layerX",e).isNotMissing(),this._register(e),e.layer)this._layers.includes(e.layer)?void 0!==i&&this._layers.reorder(e.layer,i):this._layers.add(e.layer,i);else if(!e.isInitialized){const t=e.watch("layer",(()=>{e.layer&&(this._forLayer(e.layer),this._layers.includes(e.layer)||this._layers.add(e.layer,i)),t.remove()}),!0)}}removeAt(e){const i=this.getItemAt(e);if(void 0!==i){if(this._uninitializedLayerExtensions.includes(i)){this._uninitializedLayerExtensions.remove(i);const e={added:[],moved:[],removed:[i],target:this};this.emit("change",e)}else this._layers.remove(i.layer);return this._onRemoved(i),i}}reorder(e,i){if(this._uninitializedLayerExtensions.includes(e)){if(this._uninitializedLayerExtensions.some((e=>e.isInitialized)))throw new InvalidOperationError("Unable to reorder a mix of initialized / uninitialized layers.");this._uninitializedLayerExtensions.reorder(e,i)}if(e&&e.layer&&this._layers.includes(e.layer))return this._layers.reorder(e.layer,i),e}sort(e){this._layers.sort(((i,t)=>e(this._forLayer(i),this._forLayer(t))))}onParentInitialized(){
|
|
1
|
+
import{InvalidOperationError}from"../../InvalidOperationError.js";import{InitializableCollectionProxy}from"../../support/InitializableCollectionProxy.js";import{checkArg}from"../../utilities/checkArg.js";import{Collection}from"../../utilities/collection.js";import{layersAreEquivalent}from"../../utilities/layers.js";import{getLogger}from"../../utilities/log.js";import{onCollectionPropertyChange}from"../../utilities/watch.js";import{LayerExtension}from"../_LayerExtension.js";export class LayerExtensionCollectionBase extends InitializableCollectionProxy{constructor(e,i){super(),this._layerExtensionMap=new WeakMap,this._uninitializedLayerExtensions=new Collection,this._parent=e,this._layersProperty=i,onCollectionPropertyChange(this._parent,this._layersProperty,(e=>{try{const i={added:(e.added||[]).map((e=>this._forLayer(e))),moved:(e.moved||[]).map((e=>this._forLayer(e))),removed:(e.removed||[]).map((e=>this._forLayer(e)))};this.emit("change",i)}catch(e){e instanceof Error&&getCollectionLogger().error(e.message)}})),this._parent.watch(`${this._layersProperty}.length`,(()=>this.notifyChange("length")))}get _collection(){return this._layers.map((e=>this._forLayer(e))).concat(this._uninitializedLayerExtensions)}get _layers(){let e=this._parent.get(this._layersProperty);return e||(this._tempLayers||(this._tempLayers=new Collection),e=this._tempLayers),e}emit(e,i){const t=super.emit(e,i);return"change"===e&&this._mapExtension&&this._mapExtension.allLayerExtensions.emit(e,i),t}clone(){const e=super.clone();return e._layerExtensionMap=this._layerExtensionMap,e}findById(e){return checkArg("id",e).isNotMissing(),this.find((i=>i.id===e))}findByLayerId(e){return checkArg("id",e).isNotMissing(),this.find((i=>i.layer.id===e))}forLayer(e){if(checkArg("layer",e).isNotMissing(),this._layers.includes(e))return this._forLayer(e)}add(e,i){if(checkArg("layerX",e).isNotMissing(),this._register(e),e.layer)this._layers.includes(e.layer)?void 0!==i&&this._layers.reorder(e.layer,i):this._layers.add(e.layer,i);else if(!e.isInitialized){const t=e.watch("layer",(()=>{e.layer&&(this._forLayer(e.layer),this._layers.includes(e.layer)||this._layers.add(e.layer,i)),t.remove()}),!0)}}removeAt(e){const i=this.getItemAt(e);if(void 0!==i){if(this._uninitializedLayerExtensions.includes(i)){this._uninitializedLayerExtensions.remove(i);const e={added:[],moved:[],removed:[i],target:this};this.emit("change",e)}else this._layers.remove(i.layer);return this._onRemoved(i),i}}reorder(e,i){if(this._uninitializedLayerExtensions.includes(e)){if(this._uninitializedLayerExtensions.some((e=>e.isInitialized)))throw new InvalidOperationError("Unable to reorder a mix of initialized / uninitialized layers.");this._uninitializedLayerExtensions.reorder(e,i)}if(e&&e.layer&&this._layers.includes(e.layer))return this._layers.reorder(e.layer,i),e}sort(e){this._layers.sort(((i,t)=>e(this._forLayer(i),this._forLayer(t))))}onParentInitialized(){this._tempLayers?.length&&(this.addMany(this._tempLayers.map((e=>this._forLayer(e)))),this._tempLayers=void 0)}onMapExtensionChanged(){for(const e of this.toArray())e._setMapExtension(this._mapExtension)}_forLayer(e){for(const e of this._uninitializedLayerExtensions.toArray())e._resolveLayer(this._layers),e.layer&&(this._layerExtensionMap.set(e.layer,e),this._uninitializedLayerExtensions.remove(e),this.emit("change",{added:[],moved:[],removed:[e],target:this}));if(!this._layerExtensionMap.has(e)){const i=this._uninitializedLayerExtensions.find((i=>layersAreEquivalent(e,i)));if(i)return i;const t=LayerExtension.create({layer:e});this._register(t)}return this._layerExtensionMap.get(e)}_register(e){if(checkArg("layerX",e).isNotMissing(),e._setMapExtension(this._mapExtension),e.layer||e._resolveLayer(this._layers),e.layer){const i=this._layerExtensionMap.get(e.layer);if(e===i)return;if(this._layerExtensionMap.set(e.layer,e),i&&(this._onRemoved(i),this._layers.includes(e.layer))){const t={added:[e],moved:[],removed:[i],target:this};this.emit("change",t)}}else{this._uninitializedLayerExtensions.add(e);const i={added:[e],moved:[],removed:[],target:this};this.emit("change",i)}this._onAdded(e)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.layer}_onAdded(e){}_onRemoved(e){e._setMapExtension(void 0)}}function getCollectionLogger(){return getLogger("geocortex.api.support.LayerExtensionCollection")}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{InitializableCollectionProxy}from"../../support/InitializableCollectionProxy.js";import{checkArg}from"../../utilities/checkArg.js";import{Collection}from"../../utilities/collection.js";import{onCollectionPropertyChange}from"../../utilities/watch.js";import{SublayerExtension}from"../_SublayerExtension.js";export class SublayerExtensionCollectionBase extends InitializableCollectionProxy{constructor(e,t){super(),this._sublayerExtensionMap=new WeakMap,this._uninitializedSublayerExtensions=new Set,this._parent=e,this._sublayersProperty=t,onCollectionPropertyChange(this._parent,this._sublayersProperty,(e=>{const t={added:(e.added||[]).map((e=>this._forSublayer(e))),moved:(e.moved||[]).map((e=>this._forSublayer(e))),removed:(e.removed||[]).map((e=>this._forSublayer(e)))};this.emit("change",t)})),this._parent.watch(`${this._sublayersProperty}.length`,(()=>this.notifyChange("length")))}get _collection(){return this._sublayers.map((e=>this._forSublayer(e))).concat(Array.from(this._uninitializedSublayerExtensions))}get _sublayers(){let e=this._parent.get(this._sublayersProperty);return e||(this._tempSublayers||(this._tempSublayers=new Collection),e=this._tempSublayers),e}clone(){const e=super.clone();return e._sublayerExtensionMap=this._sublayerExtensionMap,e}findById(e){return checkArg("id",e).isNotMissing(),this.find((t=>t.id===e))}findBySublayerId(e){return checkArg("id",e).isNotMissing(),this.find((t=>t.sublayer.id===e))}forSublayer(e){if(checkArg("sublayer",e).isNotMissing(),!(this._sublayers.indexOf(e)<0))return this._forSublayer(e)}add(e,t){checkArg("sublayerX",e).isNotMissing(),this._register(e),e.sublayer&&(this._sublayers.includes(e.sublayer)?void 0!==t&&this.reorder(e,t):this._sublayers.add(e.sublayer,t))}removeAt(e){const t=this.getItemAt(e);if(void 0!==t){if(this._uninitializedSublayerExtensions.has(t)){this._uninitializedSublayerExtensions.delete(t);const e={added:[],moved:[],removed:[t],target:this};this.emit("change",e)}else this._sublayers.removeAt(e);return this._onRemoved(t),t}}reorder(e,t){if(!e)return;const s=this._sublayers.indexOf(e.sublayer);return s<0?void 0:(s!==t&&this._sublayers.reorder(e.sublayer,t),e)}sort(e){this._sublayers.sort(((t,s)=>e(this._forSublayer(t),this._forSublayer(s))))}emit(e,t){const s=super.emit(e,t);return"change"===e&&this._layerExtension&&this._layerExtension.allSublayerExtensions.emit(e,t),s}onParentInitialized(){
|
|
1
|
+
import{InitializableCollectionProxy}from"../../support/InitializableCollectionProxy.js";import{checkArg}from"../../utilities/checkArg.js";import{Collection}from"../../utilities/collection.js";import{onCollectionPropertyChange}from"../../utilities/watch.js";import{SublayerExtension}from"../_SublayerExtension.js";export class SublayerExtensionCollectionBase extends InitializableCollectionProxy{constructor(e,t){super(),this._sublayerExtensionMap=new WeakMap,this._uninitializedSublayerExtensions=new Set,this._parent=e,this._sublayersProperty=t,onCollectionPropertyChange(this._parent,this._sublayersProperty,(e=>{const t={added:(e.added||[]).map((e=>this._forSublayer(e))),moved:(e.moved||[]).map((e=>this._forSublayer(e))),removed:(e.removed||[]).map((e=>this._forSublayer(e)))};this.emit("change",t)})),this._parent.watch(`${this._sublayersProperty}.length`,(()=>this.notifyChange("length")))}get _collection(){return this._sublayers.map((e=>this._forSublayer(e))).concat(Array.from(this._uninitializedSublayerExtensions))}get _sublayers(){let e=this._parent.get(this._sublayersProperty);return e||(this._tempSublayers||(this._tempSublayers=new Collection),e=this._tempSublayers),e}clone(){const e=super.clone();return e._sublayerExtensionMap=this._sublayerExtensionMap,e}findById(e){return checkArg("id",e).isNotMissing(),this.find((t=>t.id===e))}findBySublayerId(e){return checkArg("id",e).isNotMissing(),this.find((t=>t.sublayer.id===e))}forSublayer(e){if(checkArg("sublayer",e).isNotMissing(),!(this._sublayers.indexOf(e)<0))return this._forSublayer(e)}add(e,t){checkArg("sublayerX",e).isNotMissing(),this._register(e),e.sublayer&&(this._sublayers.includes(e.sublayer)?void 0!==t&&this.reorder(e,t):this._sublayers.add(e.sublayer,t))}removeAt(e){const t=this.getItemAt(e);if(void 0!==t){if(this._uninitializedSublayerExtensions.has(t)){this._uninitializedSublayerExtensions.delete(t);const e={added:[],moved:[],removed:[t],target:this};this.emit("change",e)}else this._sublayers.removeAt(e);return this._onRemoved(t),t}}reorder(e,t){if(!e)return;const s=this._sublayers.indexOf(e.sublayer);return s<0?void 0:(s!==t&&this._sublayers.reorder(e.sublayer,t),e)}sort(e){this._sublayers.sort(((t,s)=>e(this._forSublayer(t),this._forSublayer(s))))}emit(e,t){const s=super.emit(e,t);return"change"===e&&this._layerExtension&&this._layerExtension.allSublayerExtensions.emit(e,t),s}onParentInitialized(){this._tempSublayers?.length&&(this.addMany(this._tempSublayers.map((e=>this._forSublayer(e)))),this._tempSublayers=void 0)}onLayerExtensionChanged(){for(const e of this.toArray())e._setLayerExtension(this._layerExtension)}_register(e){if(checkArg("sublayerX",e).isNotMissing(),e._setLayerExtension(this._layerExtension),e.sublayer||e._resolveSublayer(),e.sublayer){const t=this._sublayerExtensionMap.get(e.sublayer);if(e===t)return;if(this._sublayerExtensionMap.set(e.sublayer,e),t&&(this._onRemoved(t),this._sublayers.includes(e.sublayer))){const s={added:[e],moved:[],removed:[t],target:this};this.emit("change",s)}}else{this._uninitializedSublayerExtensions.add(e);const t={added:[e],moved:[],removed:[],target:this};this.emit("change",t)}this._onAdded(e)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.sublayer}_onAdded(e){}_onRemoved(e){e._setLayerExtension(void 0)}_forSublayer(e){for(const e of this._uninitializedSublayerExtensions)e._resolveSublayer(),e.sublayer&&(this._sublayerExtensionMap.set(e.sublayer,e),this._uninitializedSublayerExtensions.delete(e));if(!this._sublayerExtensionMap.has(e)){const t=SublayerExtension.create({sublayer:e});this._register(t)}return this._sublayerExtensionMap.get(e)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export function addOutFields(
|
|
1
|
+
export function addOutFields(t,e){if(t.outFields?.includes("*")||!e?.length)return;const n=new Set((t.outFields??[]).concat(...e));t.outFields=[...n]}
|
package/mapping/support/ogc.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import FieldInfo from"@arcgis/core/popup/FieldInfo";import{ArgumentError}from"../../ArgumentError.js";import{Feature}from"../../data/Feature.js";import{FieldExtension}from"../../data/FieldExtension.js";import{Field}from"../../portal/Field.js";import{isGmlNamespace,OgcNamespace}from"../../utilities/_ogc.js";import{checkArg}from"../../utilities/checkArg.js";import{gmlToEsri}from"../../utilities/geometry.js";export function wfsFeatureCollectionToFeatures(e,t){let o;checkArg("featureCollection",e).isNotMissing(),checkArg("featureCollection.localName",e.localName).satisfies((e=>"FeatureCollection"===e),"Unable to parse WFS FeatureCollection: unexpected element encountered");const i=e.namespaceURI;return i===OgcNamespace.WFS?o=Array.from(e.getElementsByTagNameNS(OgcNamespace.GML,"featureMember")):i===OgcNamespace.WFS_2_0&&(o=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"member"))),o.map((e=>_memberToFeature(e,t)))}function _memberToFeature(e,t){let o,i;checkArg("member",e).isNotMissing();const r=new Map;if(e.childElementCount>0){const t=e.firstElementChild;if(o=_getMemberId(t),t.childElementCount>0){const e=Array.from(t.childNodes).filter((e=>e.nodeType===e.ELEMENT_NODE));for(const t of e)t.childElementCount>0&&isGmlNamespace(t.firstElementChild.namespaceURI)&&null==i?i=gmlToEsri(t.firstElementChild):r.set(t.localName,_getAttributeValue(t))}}const n=new Feature({id:o,attributes:r,geometry:i,source:t}),s=[];for(const e of n.presentableAttributes.keys())s.push(e);const{popupTemplate:a}=n.settings;if(a&&(n.title||(a.title="{ID}",n.attributes.set("ID",n.id)),a.fieldInfos&&0!==a.fieldInfos.length||(a.fieldInfos=s.map((e=>new FieldInfo({fieldName:e}))))),0===
|
|
1
|
+
import FieldInfo from"@arcgis/core/popup/FieldInfo";import{ArgumentError}from"../../ArgumentError.js";import{Feature}from"../../data/Feature.js";import{FieldExtension}from"../../data/FieldExtension.js";import{Field}from"../../portal/Field.js";import{isGmlNamespace,OgcNamespace}from"../../utilities/_ogc.js";import{checkArg}from"../../utilities/checkArg.js";import{gmlToEsri}from"../../utilities/geometry.js";export function wfsFeatureCollectionToFeatures(e,t){let o;checkArg("featureCollection",e).isNotMissing(),checkArg("featureCollection.localName",e.localName).satisfies((e=>"FeatureCollection"===e),"Unable to parse WFS FeatureCollection: unexpected element encountered");const i=e.namespaceURI;return i===OgcNamespace.WFS?o=Array.from(e.getElementsByTagNameNS(OgcNamespace.GML,"featureMember")):i===OgcNamespace.WFS_2_0&&(o=Array.from(e.getElementsByTagNameNS(e.namespaceURI,"member"))),o.map((e=>_memberToFeature(e,t)))}function _memberToFeature(e,t){let o,i;checkArg("member",e).isNotMissing();const r=new Map;if(e.childElementCount>0){const t=e.firstElementChild;if(o=_getMemberId(t),t.childElementCount>0){const e=Array.from(t.childNodes).filter((e=>e.nodeType===e.ELEMENT_NODE));for(const t of e)t.childElementCount>0&&isGmlNamespace(t.firstElementChild.namespaceURI)&&null==i?i=gmlToEsri(t.firstElementChild):r.set(t.localName,_getAttributeValue(t))}}const n=new Feature({id:o,attributes:r,geometry:i,source:t}),s=[];for(const e of n.presentableAttributes.keys())s.push(e);const{popupTemplate:a}=n.settings;if(a&&(n.title||(a.title="{ID}",n.attributes.set("ID",n.id)),a.fieldInfos&&0!==a.fieldInfos.length||(a.fieldInfos=s.map((e=>new FieldInfo({fieldName:e}))))),0===t?.schema.fieldExtensions.initializedItems.length)for(const e of s){const o=new FieldExtension({field:Field.toEsriApiField({name:e,alias:e})});t.schema.fieldExtensions.add(o)}return n}function _getMemberId(e){checkArg("element",e).isNotMissing();const t=Array.from(e.attributes);for(const e of t){if(isGmlNamespace(e.namespaceURI)&&e.nodeType===Node.ATTRIBUTE_NODE)return e.nodeValue;if(!(void 0!==e.namespaceURI&&null!==e.namespaceURI||"fid"!==e.localName&&"gid"!==e.localName||e.nodeType!==Node.ATTRIBUTE_NODE))return e.nodeValue}}function _getAttributeValue(e){if(checkArg("element",e).isNotMissing(),1!==e.childNodes.length||e.childNodes[0].nodeType!==Node.TEXT_NODE)throw new ArgumentError("Unable to parse feature attribute");return e.childNodes[0].data}
|
package/menus/Menu.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Menu_1;import{__decorate}from"tslib";import{EntityBase}from"../Entity.js";import{InvalidOperationError}from"../InvalidOperationError.js";import{isMenuItem,ItemType}from"../ItemType.js";import{serializable}from"../support/Serializable.js";import{CollectionProxy}from"../utilities/CollectionProxy.js";import{checkArg}from"../utilities/checkArg.js";import{Collection,compare}from"../utilities/collection.js";import{getLogger}from"../utilities/log.js";import{MenuItem}from"./MenuItem.js";const log=getLogger("geocortex.api.menus.Menu");let Menu=Menu_1=class extends EntityBase{constructor(e){super(e),this._itemType=ItemType.MENU,this._items=new MenuItemCollection(this)}get parentItem(){return this._parentItem}get title(){return this._title}set title(e){this._title=e}get items(){return this._items}static create(e){if(!Menu_1.factory)throw new InvalidOperationError("Cannot create menu: no menu factory has been registered.");return Menu_1.factory.create(e)}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.items}_getSerializableProperties(){return{...super._getSerializableProperties(),items:{serializeModes:["initial"],default:[],deserialize:e=>{const t=new Map;for(const i of e)isMenuItem(i)?t.set(i.toJSON(),i):t.set(i,void 0);compare(this.items,t.keys(),{onNew:e=>{this.items.add(t.get(e)||MenuItem.create(e))},onMissing:e=>{this.items.remove(e)},onMatch:(e,i,r,n)=>{r!==n&&this.items.reorder(e,n),t.get(i)!==e&&e.assignProperties(i)},equals:(e,t)=>e.id===t.id})}},title:"initial"}}};Menu.factory={create:e=>new Menu_1(e)},Menu=Menu_1=__decorate([serializable],Menu);export{Menu};class MenuItemCollection extends CollectionProxy{constructor(e){super(new Collection),this._menu=e}add(e,t){if(checkArg("menuItem",e).isNotMissing(),this._createsCircularReference(this._allSubmenus(e)))throw new InvalidOperationError("Adding menu item would create circular menu dependency.");e.menu&&(e.menu!==this._menu&&log.debug("A MenuItem can only have one parent. The MenuItem has been removed from its original Menu."),e.menu.items.remove(e)),e._menu=this._menu,super.add(e,t)}removeAt(e){const t=super.removeAt(e);return t&&delete t._menu,t}_createsCircularReference(e,t,i){
|
|
1
|
+
var Menu_1;import{__decorate}from"tslib";import{EntityBase}from"../Entity.js";import{InvalidOperationError}from"../InvalidOperationError.js";import{isMenuItem,ItemType}from"../ItemType.js";import{serializable}from"../support/Serializable.js";import{CollectionProxy}from"../utilities/CollectionProxy.js";import{checkArg}from"../utilities/checkArg.js";import{Collection,compare}from"../utilities/collection.js";import{getLogger}from"../utilities/log.js";import{MenuItem}from"./MenuItem.js";const log=getLogger("geocortex.api.menus.Menu");let Menu=Menu_1=class extends EntityBase{constructor(e){super(e),this._itemType=ItemType.MENU,this._items=new MenuItemCollection(this)}get parentItem(){return this._parentItem}get title(){return this._title}set title(e){this._title=e}get items(){return this._items}static create(e){if(!Menu_1.factory)throw new InvalidOperationError("Cannot create menu: no menu factory has been registered.");return Menu_1.factory.create(e)}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.items}_getSerializableProperties(){return{...super._getSerializableProperties(),items:{serializeModes:["initial"],default:[],deserialize:e=>{const t=new Map;for(const i of e)isMenuItem(i)?t.set(i.toJSON(),i):t.set(i,void 0);compare(this.items,t.keys(),{onNew:e=>{this.items.add(t.get(e)||MenuItem.create(e))},onMissing:e=>{this.items.remove(e)},onMatch:(e,i,r,n)=>{r!==n&&this.items.reorder(e,n),t.get(i)!==e&&e.assignProperties(i)},equals:(e,t)=>e.id===t.id})}},title:"initial"}}};Menu.factory={create:e=>new Menu_1(e)},Menu=Menu_1=__decorate([serializable],Menu);export{Menu};class MenuItemCollection extends CollectionProxy{constructor(e){super(new Collection),this._menu=e}add(e,t){if(checkArg("menuItem",e).isNotMissing(),this._createsCircularReference(this._allSubmenus(e)))throw new InvalidOperationError("Adding menu item would create circular menu dependency.");e.menu&&(e.menu!==this._menu&&log.debug("A MenuItem can only have one parent. The MenuItem has been removed from its original Menu."),e.menu.items.remove(e)),e._menu=this._menu,super.add(e,t)}removeAt(e){const t=super.removeAt(e);return t&&delete t._menu,t}_createsCircularReference(e,t,i){const r=t??this._menu,n=i??(this._menu.parentItem?.root?this._menu.parentItem.root:this._menu);if(e.includes(r))return!0;if(r===n)return!1;const o=r.parentItem.menu;return this._createsCircularReference(e,o,n)}_allSubmenus(e){const t=new Collection;if(e.submenu){t.add(e.submenu);for(const i of e.submenu.items.toArray())t.addMany(this._allSubmenus(i))}return t}}
|
package/menus/MenuItem.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var MenuItem_1;import{__decorate}from"tslib";import{EntityBase}from"../Entity.js";import{InvalidOperationError}from"../InvalidOperationError.js";import{isMenu,ItemType}from"../ItemType.js";import{serializable}from"../support/Serializable.js";import{Collection}from"../utilities/collection.js";import{Menu}from"./Menu.js";let MenuItem=MenuItem_1=class extends EntityBase{constructor(e){
|
|
1
|
+
var MenuItem_1;import{__decorate}from"tslib";import{EntityBase}from"../Entity.js";import{InvalidOperationError}from"../InvalidOperationError.js";import{isMenu,ItemType}from"../ItemType.js";import{serializable}from"../support/Serializable.js";import{Collection}from"../utilities/collection.js";import{Menu}from"./Menu.js";let MenuItem=MenuItem_1=class extends EntityBase{constructor(e){super(e),this._itemType=ItemType.MENU_ITEM,this._isToggled=!1,this._isEnabled=!0,this._hideOnDisable=!1,this._isToggled=e?.isToggled??!1}get canBeToggled(){return!!this.alternate}get isToggled(){return this._isToggled}get submenu(){return this._submenu}set submenu(e){if(e&&this._createsCircularReference(this._allSubmenus(e)))throw new InvalidOperationError("Menu is already part of the menu hierarchy.");this._submenu&&delete this._submenu._parentItem,this._submenu=e,this._submenu&&(this._submenu._parentItem=this)}get menu(){return this._menu}get root(){return this.menu?.parentItem?.root?this.menu.parentItem.root:this.menu}get iconId(){return this._iconId}set iconId(e){this._iconId=e}get title(){return this._title}set title(e){this._title=e}get description(){return this._description}set description(e){this._description=e}get isEnabled(){return this._isEnabled}set isEnabled(e){this._isEnabled=e}get hideOnDisable(){return this._hideOnDisable}set hideOnDisable(e){this._hideOnDisable=e}get action(){return this._action}set action(e){this._action=e}get alternate(){return this._alternate}set alternate(e){this._alternate=e}static create(e){if(!MenuItem_1.factory)throw new InvalidOperationError("Cannot create menu item: no menu item factory has been registered.");return MenuItem_1.factory.create(e)}toggle(){if(!this.canBeToggled)throw new InvalidOperationError("This menu item cannot be toggled. Set `alternate` to enable toggling.");this._isToggled=!this._isToggled;for(const e of Object.keys(this.alternate)){const t=this.alternate[e];this.alternate[e]=this[e],this[e]=t}}async _onInitialize(){await super._onInitialize(),this.submenu&&await this.submenu.initialize()}_getSerializableProperties(){return{...super._getSerializableProperties(),iconId:"initial",title:"initial",description:"initial",isEnabled:{serializeModes:["initial"],default:!0},hideOnDisable:{serializeModes:["initial"],default:!1},isToggled:{serializeModes:["initial"],deserialize:!1,default:!1},action:"initial",alternate:{serializeModes:["initial"],deserialize:e=>{this.alternate=e?{...e}:void 0}},submenu:{serializeModes:["initial"],deserialize:e=>{e?isMenu(e)?this.submenu=e:this.submenu?this.submenu.assignProperties(e):this.submenu=Menu.create(e):this.submenu=void 0}}}}_createsCircularReference(e,t,i){if(!t&&!this.menu)return!1;const n=t??this.menu,s=i??(this.menu.parentItem&&this.menu.parentItem.root?this.menu.parentItem.root:this.menu);if(e.includes(n))return!0;if(n===s)return!1;const r=n.parentItem.menu;return this._createsCircularReference(e,r,s)}_allSubmenus(e){const t=new Collection;t.add(e);for(const i of e.items.toArray())i.submenu&&t.addMany(this._allSubmenus(i.submenu));return t}};MenuItem.factory={create:e=>new MenuItem_1(e)},MenuItem=MenuItem_1=__decorate([serializable],MenuItem);export{MenuItem};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertigis/arcgis-extensions",
|
|
3
3
|
"license": "SEE LICENSE IN LICENSE",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "35.0.2",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://geocortex.visualstudio.com/Geocortex/_git/geocortex-api-ts"
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"xlsx": "~0.18.2"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
60
|
-
"@arcgis/core": "4.
|
|
60
|
+
"@arcgis/core": "4.23.3",
|
|
61
61
|
"@types/chai": "4.3.0",
|
|
62
62
|
"@types/chai-as-promised": "7.1.5",
|
|
63
63
|
"@types/jest": "26.0.22",
|
|
@@ -94,6 +94,7 @@
|
|
|
94
94
|
"node-fetch": "2.6.1",
|
|
95
95
|
"path-equal": "1.1.2",
|
|
96
96
|
"prettier": "2.5.1",
|
|
97
|
+
"resize-observer-polyfill": "1.5.1",
|
|
97
98
|
"simple-git-hooks": "2.7.0",
|
|
98
99
|
"terser": "5.12.0",
|
|
99
100
|
"testdouble": "3.2.3",
|
|
@@ -105,7 +106,7 @@
|
|
|
105
106
|
"whatwg-fetch": "3.6.2"
|
|
106
107
|
},
|
|
107
108
|
"peerDependencies": {
|
|
108
|
-
"@arcgis/core": "~4.
|
|
109
|
+
"@arcgis/core": "~4.23.0",
|
|
109
110
|
"tslib": "^2.3.1"
|
|
110
111
|
},
|
|
111
112
|
"type": "module",
|
package/portal/BaseMap.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{WellKnownBasemap,wellKnownBasemapTitles}from"../support/esri.js";import{basemapsAreEquivalent,isLayerWithLegendEnabledProperty,standardBasemaps}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{LayerBase}from"./LayerBase.js";export var BaseMap;function baseLayerToJson(e){const a=LayerBase.fromEsriApiLayer(e);return isLayerWithLegendEnabledProperty(e)&&(a.showLegend=e.legendEnabled),delete a.listMode,delete a.refreshInterval,a}!function(e){async function a(e,a,s){
|
|
1
|
+
import{WellKnownBasemap,wellKnownBasemapTitles}from"../support/esri.js";import{basemapsAreEquivalent,isLayerWithLegendEnabledProperty,standardBasemaps}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{LayerBase}from"./LayerBase.js";export var BaseMap;function baseLayerToJson(e){const a=LayerBase.fromEsriApiLayer(e);return isLayerWithLegendEnabledProperty(e)&&(a.showLegend=e.legendEnabled),delete a.listMode,delete a.refreshInterval,a}!function(e){async function a(e,a,s){checkArg("json",e).isNotMissing(),checkArg("basemap",a).isNotMissing(),e.hasOwnProperty("title")&&(a.title=e.title);const r=e.baseMapLayers?.filter((e=>!e.path));r&&(await LayerBase.applyToEsriApiLayers(a.baseLayers,r.filter((e=>!e.isReference)),s),await LayerBase.applyToEsriApiLayers(a.referenceLayers,r.filter((e=>e.isReference)),s))}e.toEsriApiBasemap=async function(e,s){checkArg("json",e).isNotMissing();const r={baseMapLayers:[],...e},i=(await import("@arcgis/core/Basemap")).default,t=new i,n=Object.values(WellKnownBasemap).find((e=>basemapsAreEquivalent(standardBasemaps[e],r)));if(n){let e;switch(n){case WellKnownBasemap.HYBRID_VECTOR:case WellKnownBasemap.TERRAIN_VECTOR:case WellKnownBasemap.OCEANS_VECTOR:case WellKnownBasemap.OPEN_STREET_MAP_VECTOR:e=i.fromId(n.replace("-vector",""));break;default:e=i.fromId(n)}t.id=n,t.title=wellKnownBasemapTitles[n],t.thumbnailUrl=e.thumbnailUrl}return await a(r,t,s),t},e.applyToEsriApiBasemap=a,e.fromEsriApiBasemap=function(e){return checkArg("basemap",e).isNotMissing(),{title:e.title,baseMapLayers:e.baseLayers.toArray().map(baseLayerToJson).concat(e.referenceLayers.toArray().map((e=>({...baseLayerToJson(e),isReference:!0}))))}}}(BaseMap||(BaseMap={}));
|
package/portal/Domain.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type EsriDomain from "
|
|
1
|
+
import type { Domain as EsriDomain } from "../support/esri";
|
|
2
2
|
import type { DomainType as EsriApiDomainType } from "../support/esri.js";
|
|
3
3
|
import { CodedValueDomain } from "./CodedValueDomain.js";
|
|
4
4
|
import { InheritedDomain } from "./InheritedDomain.js";
|
package/portal/DrawingInfo.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import stableStringify from"safe-stable-stringify";import{Warning as EsriWarning}from"../support/_esriInternal.js";import{isFeatureLayer,isMapImageSublayer as isEsriSublayer,isPointCloudLayer,isSceneLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{LabelingInfo}from"./LabelingInfo.js";import{PointCloudRenderer}from"./PointCloudRenderer.js";import{Renderer}from"./Renderer.js";export var DrawingInfo;!function(e){e.applyToEsriApiLayer=async function(e,r){checkArg("json",e).isNotMissing(),checkArg("layer",r).isNotMissing(),(isFeatureLayer(r)||isSceneLayer(r)||isEsriSublayer(r))&&(e.hasOwnProperty("labelingInfo")&&e.labelingInfo&&(r.labelingInfo=[],e.labelingInfo.forEach((e=>{r.labelingInfo.push(LabelingInfo.toEsriApiLabelClass(e))}))),e.hasOwnProperty("showLabels")&&(r.labelsVisible=e.showLabels)),e.hasOwnProperty("renderer")&&(e.renderer?isPointCloudLayer(r)?r.renderer=await PointCloudRenderer.toEsriApiPointCloudRenderer(e.renderer):r.renderer=Renderer.toEsriApiRenderer(e.renderer):r.renderer=void 0,!r.renderer&&e.renderer&&r.loadWarnings.push(new EsriWarning("renderer:unsupported",`Renderers of type '${e.renderer.type||"unknown"}' are not supported`,{definition:e.renderer}))),e.hasOwnProperty("transparency")&&(r.opacity=1-e.transparency/100)},e.fromEsriApiLayer=function(e){
|
|
1
|
+
import stableStringify from"safe-stable-stringify";import{Warning as EsriWarning}from"../support/_esriInternal.js";import{isFeatureLayer,isMapImageSublayer as isEsriSublayer,isPointCloudLayer,isSceneLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{LabelingInfo}from"./LabelingInfo.js";import{PointCloudRenderer}from"./PointCloudRenderer.js";import{Renderer}from"./Renderer.js";export var DrawingInfo;!function(e){e.applyToEsriApiLayer=async function(e,r){checkArg("json",e).isNotMissing(),checkArg("layer",r).isNotMissing(),(isFeatureLayer(r)||isSceneLayer(r)||isEsriSublayer(r))&&(e.hasOwnProperty("labelingInfo")&&e.labelingInfo&&(r.labelingInfo=[],e.labelingInfo.forEach((e=>{r.labelingInfo.push(LabelingInfo.toEsriApiLabelClass(e))}))),e.hasOwnProperty("showLabels")&&(r.labelsVisible=e.showLabels)),e.hasOwnProperty("renderer")&&(e.renderer?isPointCloudLayer(r)?r.renderer=await PointCloudRenderer.toEsriApiPointCloudRenderer(e.renderer):r.renderer=Renderer.toEsriApiRenderer(e.renderer):r.renderer=void 0,!r.renderer&&e.renderer&&r.loadWarnings.push(new EsriWarning("renderer:unsupported",`Renderers of type '${e.renderer.type||"unknown"}' are not supported`,{definition:e.renderer}))),e.hasOwnProperty("transparency")&&(r.opacity=1-e.transparency/100)},e.fromEsriApiLayer=function(e){checkArg("layer",e).isNotMissing();const r={};return isEsriSublayer(e)&&!e.layer?.capabilities?.exportMap?.supportsDynamicLayers||(e.renderer&&(isEsriSublayer(e)&&"map-layer"===e.source.type&&e.sourceJSON?.drawingInfo?.renderer&&stableStringify(e.renderer?.toJSON())===stableStringify(Renderer.toEsriApiRenderer(e.sourceJSON?.drawingInfo?.renderer).toJSON())||(r.renderer=Renderer.fromEsriApiRenderer(e.renderer))),void 0!==e.opacity&&isEsriSublayer(e)&&(r.transparency=100*(1-e.opacity)),e.labelingInfo&&e.labelingInfo.length&&(r.labelingInfo=[],e.labelingInfo.forEach((e=>{r.labelingInfo.push(LabelingInfo.fromEsriApiLabelClass(e))}))),void 0!==e.labelsVisible&&null!==e.labelsVisible&&(r.showLabels=e.labelsVisible)),r}}(DrawingInfo||(DrawingInfo={}));
|
package/portal/FeatureLayer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import Portal from"@arcgis/core/portal/Portal";import PortalItem from"@arcgis/core/portal/PortalItem";import{isCSVLayer,isFeatureLayer,isGraphicsLayer,isStreamLayer}from"../utilities/_layers.js";import{isNumeric}from"../utilities/_number.js";import{checkArg}from"../utilities/checkArg.js";import{Collection}from"../utilities/collection.js";import{Feature}from"./Feature.js";import{Field}from"./Field.js";import{FormInfo}from"./FormInfo.js";import{GeometryType}from"./Geometry.js";import{LayerDefinition}from"./LayerDefinition.js";import{PopupInfo}from"./PopupInfo.js";import{defaultLineRenderer,defaultPointRenderer,defaultPolygonRenderer}from"./Renderer.js";import{toEsriApiSymbol}from"./Symbol.js";import{Type}from"./Type.js";import{GRAPHICS_LAYER_ID}from"./_FeatureLayer.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";const ERR_FEATURE_LAYER_GEOMETRY_TYPES="Feature layer graphics must have the same geometry types.",ERR_FEATURE_LAYER_SOURCE="Feature layer must have a URL or a source, but not both.",GRAPHIC_ID_FIELD="graphic-id",GRAPHICS_LAYER_TYPE="graphics-layer",FEATURE_COLLECTION_LAYER_TYPE="feature-collection-layer";export var FeatureLayer;!function(e){async function r(e,r,o){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISFeatureLayer"===e||"ArcGISStreamLayer"===e||"CSV"===e),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",r).isNotMissing().satisfies((e=>isFeatureLayer(e)||isStreamLayer(e)||isCSVLayer(e)||isGraphicsLayer(e)),ERR_LAYER_TYPE_MISMATCH),isFeatureLayer(r)||isStreamLayer(r)||isCSVLayer(r)?(checkArg("layerJson",e).satisfies((e=>!i(e))),e.hasOwnProperty("disablePopup")&&(r.popupEnabled=!e.disablePopup),e.hasOwnProperty("screenSizePerspective")&&(r.screenSizePerspectiveEnabled=e.screenSizePerspective),e.hasOwnProperty("showLabels")&&(r.labelsVisible=e.showLabels),e.hasOwnProperty("featureCollection")?(checkArg("layerJson.url",e).satisfies((e=>!e.url)),checkArg("layerJson.featureCollection.layers",e.featureCollection.layers).isNotMissing(),checkArg("layerJson.featureCollection.layers",e.featureCollection.layers).satisfies((e=>1===e.length)),await applyToEsriApiFeatureLayerWithSource(e,r)):(checkArg("layerJson.source",e).satisfies((e=>!e.featureCollection)),await applyToEsriApiFeatureLayerWithUrl(e,r,o))):isGraphicsLayer(r)&&(e.hasOwnProperty("featureCollection")&&checkArg("layerJson",e).satisfies(i),applyToEsriApiGraphicsLayer(e,r))}function i(e){var r;return(null===(r=e.id)||void 0===r?void 0:r.startsWith(GRAPHICS_LAYER_ID))||e.$ref&&"graphics-layer"===e.$ref.subtype||"ArcGISFeatureLayer"===e.layerType&&e.featureCollection&&e.featureCollection.layers&&e.featureCollection.layers.length>1}e.esriFeatureLayerDefaults={labelsVisible:!0,legendEnabled:!0,popupEnabled:!0,hasM:!1,hasZ:!1,visible:!0,opacity:1,wkid:4326,minScale:0,maxScale:0,screenSizePerspective:!0},e.toEsriApiLayer=async function(e,o){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISFeatureLayer"===e),ERR_LAYER_TYPE_MISMATCH);const a=i(e)?new((await import("@arcgis/core/layers/GraphicsLayer")).default):new((await import("@arcgis/core/layers/FeatureLayer")).default);return setDefaultRenderer(e),await r(e,a,o),a},e.applyToEsriApiLayer=r,e.fromEsriApiFeatureLayer=function(r){checkArg("layer",r).isNotMissing(),checkArg("layer.source",r).satisfies((e=>!(Collection.isCollection(e.source)&&e.url)),ERR_FEATURE_LAYER_SOURCE);const i={...fromEsriApiLayerToLayerBase(r,e.esriFeatureLayerDefaults),...fromEsriApiLayerToOperationalLayer(r),layerType:"ArcGISFeatureLayer"};return r.popupEnabled!==e.esriFeatureLayerDefaults.popupEnabled&&(i.disablePopup=!r.popupEnabled),r.screenSizePerspectiveEnabled!==e.esriFeatureLayerDefaults.screenSizePerspective&&(i.screenSizePerspective=r.screenSizePerspectiveEnabled),r.labelsVisible!==e.esriFeatureLayerDefaults.labelsVisible&&(i.showLabels=r.labelsVisible),isFeatureLayer(r)&&Collection.isCollection(r.source)?fromEsriApiFeatureLayerWithSource(r,i):fromEsriApiFeatureLayerWithUrl(r,i),i},e.fromEsriApiGraphicsLayer=function(r){var i;checkArg("layer",r).isNotMissing();const o={...fromEsriApiLayerToLayerBase(r,e.esriFeatureLayerDefaults),layerType:"ArcGISFeatureLayer",featureCollection:{layers:[],showLegend:!1}};if(o.id=GRAPHICS_LAYER_ID+o.id,!r.graphics)return o;const a=r.graphics.toArray();for(const e of a){const t=GeometryType.fromEsriApiGeometryType(e.geometry.type);let s=o.featureCollection.layers.find((e=>e.layerDefinition.geometryType===t));s||(s={featureSet:{features:[],geometryType:t},layerDefinition:{geometryType:t,minScale:r.minScale,maxScale:r.maxScale,fields:[]}},o.featureCollection.layers.push(s));const n=Feature.fromEsriApiGraphic(e);n.attributes["graphic-id"]=a.indexOf(e);for(const[r,o]of Object.entries(null!==(i=e.attributes)&&void 0!==i?i:{})){let e=s.layerDefinition.fields.find((e=>e.name===r));e||(e={name:r,alias:r,editable:!0,nullable:!0},"number"==typeof o?e.type="esriFieldTypeDouble":o instanceof Date?e.type="esriFieldTypeDate":e.type="esriFieldTypeString",s.layerDefinition.fields.push(e))}s.featureSet.features.push(n)}return o},e.isGraphicsLayerJson=i,e.isFeatureCollection=function(e){var r,i;return!(null===(r=e.id)||void 0===r?void 0:r.startsWith(GRAPHICS_LAYER_ID))&&e.$ref&&"feature-collection-layer"===e.$ref.subtype||(null===(i=e.featureCollection)||void 0===i?void 0:i.layers)&&1===e.featureCollection.layers.length},e.isMapNotesLayer=function(e){return"notes"===e.featureCollectionType}}(FeatureLayer||(FeatureLayer={}));export var FeatureLayerMode;function setDefaultRenderer(e){var r,i;if(null===(r=e.featureCollection)||void 0===r?void 0:r.layers)for(const r of e.featureCollection.layers)if(null===(i=r.layerDefinition)||void 0===i?void 0:i.geometryType){r.layerDefinition.drawingInfo=r.layerDefinition.drawingInfo||{};let{renderer:e}=r.layerDefinition.drawingInfo;if(!e)switch(r.layerDefinition.geometryType){case"esriGeometryPoint":case"esriGeometryMultipoint":e=defaultPointRenderer;break;case"esriGeometryPolyline":e=defaultLineRenderer;break;case"esriGeometryPolygon":case"esriGeometryEnvelope":e=defaultPolygonRenderer}r.layerDefinition.drawingInfo.renderer=e}}async function applyToEsriApiFeatureLayerWithUrl(e,r,i){applyLayerBaseToEsriApiLayer(e,r),applyOperationalLayerToEsriApiLayer(e,r),e.hasOwnProperty("url")&&(r.url=e.url),isFeatureLayer(r)&&(e.hasOwnProperty("itemId")&&(r.portalItem?r.portalItem.id=e.itemId:r.portalItem=new PortalItem({id:e.itemId,portal:i||Portal.getDefault()})),e.hasOwnProperty("formInfo")&&(r.formTemplate=FormInfo.toEsriApiFormTemplate(e.formInfo))),e.hasOwnProperty("popupInfo")&&(r.popupTemplate=PopupInfo.toEsriApiPopupTemplate(e.popupInfo)),e.hasOwnProperty("mode")&&(r.mode=e.mode),e.hasOwnProperty("layerDefinition")&&(await LayerDefinition.applyToEsriApiLayer(e.layerDefinition,r),r.version=_getLayerDefinitionVersion(e.layerDefinition))}async function applyToEsriApiFeatureLayerWithSource(e,r){const i=e.featureCollection.layers[0];if(applyLayerBaseToEsriApiLayer(e,r),applyOperationalLayerToEsriApiLayer(e,r),r.legendEnabled=e.featureCollection.showLegend,i.hasOwnProperty("layerDefinition")){const e=i.layerDefinition;await LayerDefinition.applyToEsriApiLayer(e,r),r.version=_getLayerDefinitionVersion(e),e.hasOwnProperty("types")&&(r.types=e.types.map((e=>Type.toEsriApiFeatureType(e))))}i.hasOwnProperty("popupInfo")&&(r.popupTemplate=PopupInfo.toEsriApiPopupTemplate(i.popupInfo)),i.hasOwnProperty("formInfo")&&(r.formTemplate=FormInfo.toEsriApiFormTemplate(i.formInfo)),r.source||(r.source=new Collection),i.hasOwnProperty("featureSet")&&i.featureSet.geometryType&&(r.geometryType=GeometryType.toEsriApiGeometryType(i.featureSet.geometryType),i.featureSet.features&&!r.loaded&&(r.source.removeAll(),r.source.addMany(i.featureSet.features.map(Feature.toEsriApiGraphic))))}function applyToEsriApiGraphicsLayer(e,r){var i,o,a;applyLayerBaseToEsriApiLayer(e,r),r.id=r.id.replace(GRAPHICS_LAYER_ID,"");const t=r;if(r&&(t._fields=null!==(i=t._fields)&&void 0!==i?i:[],e.featureCollectionType&&(r.featureCollectionType=e.featureCollectionType)),e.hasOwnProperty("featureCollection")&&e.featureCollection.layers){const i=new Collection;for(const r of e.featureCollection.layers){if(!r.featureSet||!r.featureSet.features)continue;const e=new Collection;e.addMany(r.featureSet.features.map(Feature.toEsriApiGraphic)),e.forEach((e=>{null===e.symbol&&(e.symbol=getGraphicSymbol(e,r.layerDefinition))})),r.popupInfo&&e.forEach((e=>{null===e.popupTemplate&&(e.popupTemplate=PopupInfo.toEsriApiPopupTemplate(r.popupInfo))})),(null===(a=null===(o=r.layerDefinition)||void 0===o?void 0:o.fields)||void 0===a?void 0:a.length)>0&&r.layerDefinition.fields.forEach((e=>{const r=Field.toEsriApiField(e);"oid"!==r.type&&(t._fields=t._fields.filter((e=>e.name!==r.name)),t._fields.push(r))})),i.addMany(e)}const s=e=>e.attributes["graphic-id"];i.every((e=>"number"==typeof s(e)))&&i.sort(((e,r)=>s(e)>s(r)?1:s(e)<s(r)?-1:0));for(const e of i.toArray())delete e.attributes["graphic-id"];r.graphics.removeAll(),r.graphics.addMany(i)}}function getGraphicSymbol(e,r){var i;let o;if(null===(i=null==r?void 0:r.drawingInfo)||void 0===i?void 0:i.renderer)if("uniqueValue"===r.drawingInfo.renderer.type&&r.drawingInfo.renderer.uniqueValueInfos.length>0){const{uniqueValueInfos:i}=r.drawingInfo.renderer,a=i.find((r=>r.value===e.attributes.TYPEID.toString()));a&&(o=toEsriApiSymbol(a.symbol))}else"simple"===r.drawingInfo.renderer.type&&(o=toEsriApiSymbol(r.drawingInfo.renderer.symbol));return o}function fromEsriApiFeatureLayerWithUrl(e,r){checkArg("layer",e).isNotMissing(),checkArg("featureLayer",r).isNotMissing(),isFeatureLayer(e)?(r.url=isNumeric(e.layerId)?`${e.url}/${e.layerId}`:e.url,e.portalItem&&(r.itemId=e.portalItem.id),e.formTemplate&&(r.formInfo=FormInfo.fromEsriApiFormTemplate(e.formTemplate))):r.url=e.url,r.layerDefinition=LayerDefinition.fromEsriApiLayer(e,FeatureLayer.esriFeatureLayerDefaults),e.popupTemplate&&(r.popupInfo=PopupInfo.fromEsriApiPopupTemplate(e.popupTemplate)),isNaN(e.mode)||(r.mode=e.mode)}function fromEsriApiFeatureLayerWithSource(e,r){checkArg("layer",e).isNotMissing(),checkArg("featureLayer",r).isNotMissing(),checkArg("layer.geometryType",e.geometryType).isNotMissing(),checkArg("layer.source",e).satisfies(_hasSameGeometryType,ERR_FEATURE_LAYER_GEOMETRY_TYPES);const i={featureSet:{features:e.source.map(Feature.fromEsriApiGraphic).toArray(),geometryType:GeometryType.fromEsriApiGeometryType(e.geometryType)},layerDefinition:LayerDefinition.fromEsriApiLayer(e)};e.types&&(i.layerDefinition.types=e.types.map((e=>Type.fromEsriApiFeatureType(e)))),e.typeIdField&&(i.layerDefinition.typeIdField=e.typeIdField),e.popupTemplate&&(i.popupInfo=PopupInfo.fromEsriApiPopupTemplate(e.popupTemplate)),e.formTemplate&&(r.formInfo=FormInfo.fromEsriApiFormTemplate(e.formTemplate)),r.featureCollection={layers:[i],showLegend:e.legendEnabled}}function _getLayerDefinitionVersion(e){return e.currentVersion?e.currentVersion:e.hasOwnProperty("capabilities")||e.hasOwnProperty("drawingInfo")||e.hasOwnProperty("hasAttachments")||e.hasOwnProperty("htmlPopupType")||e.hasOwnProperty("relationships")||e.hasOwnProperty("timeInfo")||e.hasOwnProperty("typeIdField")||e.hasOwnProperty("types")?10:void 0}function _hasSameGeometryType(e){return!(e.source&&e.source.length>0)||e.source.every((r=>r.geometry.type===e.geometryType))}!function(e){e[e.MODE_SNAPSHOT=0]="MODE_SNAPSHOT",e[e.MODE_ONDEMAND=1]="MODE_ONDEMAND",e[e.MODE_SELECTION=2]="MODE_SELECTION",e[e.MODE_AUTO=6]="MODE_AUTO"}(FeatureLayerMode||(FeatureLayerMode={}));
|
|
1
|
+
import Portal from"@arcgis/core/portal/Portal";import PortalItem from"@arcgis/core/portal/PortalItem";import{isCSVLayer,isFeatureLayer,isGraphicsLayer,isStreamLayer}from"../utilities/_layers.js";import{isNumeric}from"../utilities/_number.js";import{checkArg}from"../utilities/checkArg.js";import{Collection}from"../utilities/collection.js";import{Feature}from"./Feature.js";import{Field}from"./Field.js";import{FormInfo}from"./FormInfo.js";import{GeometryType}from"./Geometry.js";import{LayerDefinition}from"./LayerDefinition.js";import{PopupInfo}from"./PopupInfo.js";import{defaultLineRenderer,defaultPointRenderer,defaultPolygonRenderer}from"./Renderer.js";import{toEsriApiSymbol}from"./Symbol.js";import{Type}from"./Type.js";import{GRAPHICS_LAYER_ID}from"./_FeatureLayer.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";const ERR_FEATURE_LAYER_GEOMETRY_TYPES="Feature layer graphics must have the same geometry types.",ERR_FEATURE_LAYER_SOURCE="Feature layer must have a URL or a source, but not both.",GRAPHIC_ID_FIELD="graphic-id",GRAPHICS_LAYER_TYPE="graphics-layer",FEATURE_COLLECTION_LAYER_TYPE="feature-collection-layer";export var FeatureLayer;!function(e){async function r(e,r,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISFeatureLayer"===e||"ArcGISStreamLayer"===e||"CSV"===e),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",r).isNotMissing().satisfies((e=>isFeatureLayer(e)||isStreamLayer(e)||isCSVLayer(e)||isGraphicsLayer(e)),ERR_LAYER_TYPE_MISMATCH),isFeatureLayer(r)||isStreamLayer(r)||isCSVLayer(r)?(checkArg("layerJson",e).satisfies((e=>!i(e))),e.hasOwnProperty("disablePopup")&&(r.popupEnabled=!e.disablePopup),e.hasOwnProperty("screenSizePerspective")&&(r.screenSizePerspectiveEnabled=e.screenSizePerspective),e.hasOwnProperty("showLabels")&&(r.labelsVisible=e.showLabels),e.hasOwnProperty("featureCollection")?(checkArg("layerJson.url",e).satisfies((e=>!e.url)),checkArg("layerJson.featureCollection.layers",e.featureCollection.layers).isNotMissing(),checkArg("layerJson.featureCollection.layers",e.featureCollection.layers).satisfies((e=>1===e.length)),await applyToEsriApiFeatureLayerWithSource(e,r)):(checkArg("layerJson.source",e).satisfies((e=>!e.featureCollection)),await applyToEsriApiFeatureLayerWithUrl(e,r,a))):isGraphicsLayer(r)&&(e.hasOwnProperty("featureCollection")&&checkArg("layerJson",e).satisfies(i),applyToEsriApiGraphicsLayer(e,r))}function i(e){return e.id?.startsWith(GRAPHICS_LAYER_ID)||e.$ref&&"graphics-layer"===e.$ref.subtype||"ArcGISFeatureLayer"===e.layerType&&e.featureCollection&&e.featureCollection.layers&&e.featureCollection.layers.length>1}e.esriFeatureLayerDefaults={labelsVisible:!0,legendEnabled:!0,popupEnabled:!0,hasM:!1,hasZ:!1,visible:!0,opacity:1,wkid:4326,minScale:0,maxScale:0,screenSizePerspective:!0},e.toEsriApiLayer=async function(e,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"ArcGISFeatureLayer"===e),ERR_LAYER_TYPE_MISMATCH);const t=i(e)?new((await import("@arcgis/core/layers/GraphicsLayer")).default):new((await import("@arcgis/core/layers/FeatureLayer")).default);return setDefaultRenderer(e),await r(e,t,a),t},e.applyToEsriApiLayer=r,e.fromEsriApiFeatureLayer=function(r){checkArg("layer",r).isNotMissing(),checkArg("layer.source",r).satisfies((e=>!(Collection.isCollection(e.source)&&e.url)),ERR_FEATURE_LAYER_SOURCE);const i={...fromEsriApiLayerToLayerBase(r,e.esriFeatureLayerDefaults),...fromEsriApiLayerToOperationalLayer(r),layerType:"ArcGISFeatureLayer"};return r.popupEnabled!==e.esriFeatureLayerDefaults.popupEnabled&&(i.disablePopup=!r.popupEnabled),r.screenSizePerspectiveEnabled!==e.esriFeatureLayerDefaults.screenSizePerspective&&(i.screenSizePerspective=r.screenSizePerspectiveEnabled),r.labelsVisible!==e.esriFeatureLayerDefaults.labelsVisible&&(i.showLabels=r.labelsVisible),isFeatureLayer(r)&&Collection.isCollection(r.source)?fromEsriApiFeatureLayerWithSource(r,i):fromEsriApiFeatureLayerWithUrl(r,i),i},e.fromEsriApiGraphicsLayer=function(r){checkArg("layer",r).isNotMissing();const i={...fromEsriApiLayerToLayerBase(r,e.esriFeatureLayerDefaults),layerType:"ArcGISFeatureLayer",featureCollection:{layers:[],showLegend:!1}};if(i.id=GRAPHICS_LAYER_ID+i.id,!r.graphics)return i;const a=r.graphics.toArray();for(const e of a){const t=GeometryType.fromEsriApiGeometryType(e.geometry.type);let o=i.featureCollection.layers.find((e=>e.layerDefinition.geometryType===t));o||(o={featureSet:{features:[],geometryType:t},layerDefinition:{geometryType:t,minScale:r.minScale,maxScale:r.maxScale,fields:[]}},i.featureCollection.layers.push(o));const s=Feature.fromEsriApiGraphic(e);s.attributes["graphic-id"]=a.indexOf(e);for(const[r,i]of Object.entries(e.attributes??{})){let e=o.layerDefinition.fields.find((e=>e.name===r));e||(e={name:r,alias:r,editable:!0,nullable:!0},"number"==typeof i?e.type="esriFieldTypeDouble":i instanceof Date?e.type="esriFieldTypeDate":e.type="esriFieldTypeString",o.layerDefinition.fields.push(e))}o.featureSet.features.push(s)}return i},e.isGraphicsLayerJson=i,e.isFeatureCollection=function(e){return!e.id?.startsWith(GRAPHICS_LAYER_ID)&&e.$ref&&"feature-collection-layer"===e.$ref.subtype||e.featureCollection?.layers&&1===e.featureCollection.layers.length},e.isMapNotesLayer=function(e){return"notes"===e.featureCollectionType}}(FeatureLayer||(FeatureLayer={}));export var FeatureLayerMode;function setDefaultRenderer(e){if(e.featureCollection?.layers)for(const r of e.featureCollection.layers)if(r.layerDefinition?.geometryType){r.layerDefinition.drawingInfo=r.layerDefinition.drawingInfo||{};let{renderer:e}=r.layerDefinition.drawingInfo;if(!e)switch(r.layerDefinition.geometryType){case"esriGeometryPoint":case"esriGeometryMultipoint":e=defaultPointRenderer;break;case"esriGeometryPolyline":e=defaultLineRenderer;break;case"esriGeometryPolygon":case"esriGeometryEnvelope":e=defaultPolygonRenderer}r.layerDefinition.drawingInfo.renderer=e}}async function applyToEsriApiFeatureLayerWithUrl(e,r,i){applyLayerBaseToEsriApiLayer(e,r),applyOperationalLayerToEsriApiLayer(e,r),e.hasOwnProperty("url")&&(r.url=e.url),isFeatureLayer(r)&&(e.hasOwnProperty("itemId")&&(r.portalItem?r.portalItem.id=e.itemId:r.portalItem=new PortalItem({id:e.itemId,portal:i||Portal.getDefault()})),e.hasOwnProperty("formInfo")&&(r.formTemplate=FormInfo.toEsriApiFormTemplate(e.formInfo))),e.hasOwnProperty("popupInfo")&&(r.popupTemplate=PopupInfo.toEsriApiPopupTemplate(e.popupInfo)),e.hasOwnProperty("mode")&&(r.mode=e.mode),e.hasOwnProperty("layerDefinition")&&(await LayerDefinition.applyToEsriApiLayer(e.layerDefinition,r),r.version=_getLayerDefinitionVersion(e.layerDefinition))}async function applyToEsriApiFeatureLayerWithSource(e,r){const i=e.featureCollection.layers[0];if(applyLayerBaseToEsriApiLayer(e,r),applyOperationalLayerToEsriApiLayer(e,r),r.legendEnabled=e.featureCollection.showLegend,i.hasOwnProperty("layerDefinition")){const e=i.layerDefinition;await LayerDefinition.applyToEsriApiLayer(e,r),r.version=_getLayerDefinitionVersion(e),e.hasOwnProperty("types")&&(r.types=e.types.map((e=>Type.toEsriApiFeatureType(e))))}i.hasOwnProperty("popupInfo")&&(r.popupTemplate=PopupInfo.toEsriApiPopupTemplate(i.popupInfo)),i.hasOwnProperty("formInfo")&&(r.formTemplate=FormInfo.toEsriApiFormTemplate(i.formInfo)),r.source||(r.source=new Collection),i.hasOwnProperty("featureSet")&&i.featureSet.geometryType&&(r.geometryType=GeometryType.toEsriApiGeometryType(i.featureSet.geometryType),i.featureSet.features&&!r.loaded&&(r.source.removeAll(),r.source.addMany(i.featureSet.features.map(Feature.toEsriApiGraphic))))}function applyToEsriApiGraphicsLayer(e,r){applyLayerBaseToEsriApiLayer(e,r),r.id=r.id.replace(GRAPHICS_LAYER_ID,"");const i=r;if(r&&(i._fields=i._fields??[],e.featureCollectionType&&(r.featureCollectionType=e.featureCollectionType)),e.hasOwnProperty("featureCollection")&&e.featureCollection.layers){const a=new Collection;for(const r of e.featureCollection.layers){if(!r.featureSet||!r.featureSet.features)continue;const e=new Collection;e.addMany(r.featureSet.features.map(Feature.toEsriApiGraphic)),e.forEach((e=>{null===e.symbol&&(e.symbol=getGraphicSymbol(e,r.layerDefinition))})),r.popupInfo&&e.forEach((e=>{null===e.popupTemplate&&(e.popupTemplate=PopupInfo.toEsriApiPopupTemplate(r.popupInfo))})),r.layerDefinition?.fields?.length>0&&r.layerDefinition.fields.forEach((e=>{const r=Field.toEsriApiField(e);"oid"!==r.type&&(i._fields=i._fields.filter((e=>e.name!==r.name)),i._fields.push(r))})),a.addMany(e)}const t=e=>e.attributes["graphic-id"];a.every((e=>"number"==typeof t(e)))&&a.sort(((e,r)=>t(e)>t(r)?1:t(e)<t(r)?-1:0));for(const e of a.toArray())delete e.attributes["graphic-id"];r.graphics.removeAll(),r.graphics.addMany(a)}}function getGraphicSymbol(e,r){let i;if(r?.drawingInfo?.renderer)if("uniqueValue"===r.drawingInfo.renderer.type&&r.drawingInfo.renderer.uniqueValueInfos.length>0){const{uniqueValueInfos:a}=r.drawingInfo.renderer,t=a.find((r=>r.value===e.attributes.TYPEID.toString()));t&&(i=toEsriApiSymbol(t.symbol))}else"simple"===r.drawingInfo.renderer.type&&(i=toEsriApiSymbol(r.drawingInfo.renderer.symbol));return i}function fromEsriApiFeatureLayerWithUrl(e,r){checkArg("layer",e).isNotMissing(),checkArg("featureLayer",r).isNotMissing(),isFeatureLayer(e)?(r.url=isNumeric(e.layerId)?`${e.url}/${e.layerId}`:e.url,e.portalItem&&(r.itemId=e.portalItem.id),e.formTemplate&&(r.formInfo=FormInfo.fromEsriApiFormTemplate(e.formTemplate))):r.url=e.url,r.layerDefinition=LayerDefinition.fromEsriApiLayer(e,FeatureLayer.esriFeatureLayerDefaults),e.popupTemplate&&(r.popupInfo=PopupInfo.fromEsriApiPopupTemplate(e.popupTemplate)),isNaN(e.mode)||(r.mode=e.mode)}function fromEsriApiFeatureLayerWithSource(e,r){checkArg("layer",e).isNotMissing(),checkArg("featureLayer",r).isNotMissing(),checkArg("layer.geometryType",e.geometryType).isNotMissing(),checkArg("layer.source",e).satisfies(_hasSameGeometryType,ERR_FEATURE_LAYER_GEOMETRY_TYPES);const i={featureSet:{features:e.source.map(Feature.fromEsriApiGraphic).toArray(),geometryType:GeometryType.fromEsriApiGeometryType(e.geometryType)},layerDefinition:LayerDefinition.fromEsriApiLayer(e)};e.types&&(i.layerDefinition.types=e.types.map((e=>Type.fromEsriApiFeatureType(e)))),e.typeIdField&&(i.layerDefinition.typeIdField=e.typeIdField),e.popupTemplate&&(i.popupInfo=PopupInfo.fromEsriApiPopupTemplate(e.popupTemplate)),e.formTemplate&&(r.formInfo=FormInfo.fromEsriApiFormTemplate(e.formTemplate)),r.featureCollection={layers:[i],showLegend:e.legendEnabled}}function _getLayerDefinitionVersion(e){return e.currentVersion?e.currentVersion:e.hasOwnProperty("capabilities")||e.hasOwnProperty("drawingInfo")||e.hasOwnProperty("hasAttachments")||e.hasOwnProperty("htmlPopupType")||e.hasOwnProperty("relationships")||e.hasOwnProperty("timeInfo")||e.hasOwnProperty("typeIdField")||e.hasOwnProperty("types")?10:void 0}function _hasSameGeometryType(e){return!(e.source&&e.source.length>0)||e.source.every((r=>r.geometry.type===e.geometryType))}!function(e){e[e.MODE_SNAPSHOT=0]="MODE_SNAPSHOT",e[e.MODE_ONDEMAND=1]="MODE_ONDEMAND",e[e.MODE_SELECTION=2]="MODE_SELECTION",e[e.MODE_AUTO=6]="MODE_AUTO"}(FeatureLayerMode||(FeatureLayerMode={}));
|
|
@@ -62,7 +62,7 @@ export interface ImageServiceLayer extends OperationalLayerBase, BaseMapLayerBas
|
|
|
62
62
|
* An array of bandIds that are visible, can specify bands to export or
|
|
63
63
|
* rearrange band order(from image service).
|
|
64
64
|
*/
|
|
65
|
-
bandIds?:
|
|
65
|
+
bandIds?: number[];
|
|
66
66
|
/**
|
|
67
67
|
* The attribution information for the layer. (not in the documentation).
|
|
68
68
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import Portal from"@arcgis/core/portal/Portal";import PortalItem from"@arcgis/core/portal/PortalItem";import{isIntegratedMeshLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";export var IntegratedMeshLayer;!function(e){async function r(e,r,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"IntegratedMeshLayer"===e),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",r).isNotMissing().satisfies(isIntegratedMeshLayer,ERR_LAYER_TYPE_MISMATCH),applyLayerBaseToEsriApiLayer(e,r),applyOperationalLayerToEsriApiLayer(e,r),e.hasOwnProperty("url")&&(r.url=e.url),e.hasOwnProperty("itemId")&&(r.portalItem?r.portalItem.id=e.itemId:r.portalItem=new PortalItem({id:e.itemId,portal:a||Portal.getDefault()}))}e.esriIntegratedMeshLayerDefaults={visible:!0,opacity:1},e.toEsriApiLayer=async function(e,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"IntegratedMeshLayer"===e),ERR_LAYER_TYPE_MISMATCH);const t={};
|
|
1
|
+
import Portal from"@arcgis/core/portal/Portal";import PortalItem from"@arcgis/core/portal/PortalItem";import{isIntegratedMeshLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";export var IntegratedMeshLayer;!function(e){async function r(e,r,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"IntegratedMeshLayer"===e),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",r).isNotMissing().satisfies(isIntegratedMeshLayer,ERR_LAYER_TYPE_MISMATCH),applyLayerBaseToEsriApiLayer(e,r),applyOperationalLayerToEsriApiLayer(e,r),e.hasOwnProperty("url")&&(r.url=e.url),e.hasOwnProperty("itemId")&&(r.portalItem?r.portalItem.id=e.itemId:r.portalItem=new PortalItem({id:e.itemId,portal:a||Portal.getDefault()}))}e.esriIntegratedMeshLayerDefaults={visible:!0,opacity:1},e.toEsriApiLayer=async function(e,a){checkArg("layerJson",e).isNotMissing(),checkArg("layerJson.layerType",e.layerType).satisfies((e=>!e||"IntegratedMeshLayer"===e),ERR_LAYER_TYPE_MISMATCH);const t={};e?.url&&(t.url=e.url);const i=new((await import("@arcgis/core/layers/IntegratedMeshLayer")).default);return await r(e,i,a),i},e.applyToEsriApiLayer=r,e.fromEsriApiIntegratedMeshLayer=function(r){checkArg("layer",r).isNotMissing();const a={...fromEsriApiLayerToLayerBase(r,e.esriIntegratedMeshLayerDefaults),...fromEsriApiLayerToOperationalLayer(r),layerType:"IntegratedMeshLayer",url:r.url};return r.portalItem&&(a.itemId=r.portalItem.id),a}}(IntegratedMeshLayer||(IntegratedMeshLayer={}));
|
package/portal/Layer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ArgumentError}from"../ArgumentError.js";import{isMapImageSublayer,isWMTSLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{LayerDefinition}from"./LayerDefinition.js";import{PopupInfo}from"./PopupInfo.js";export var Layer;!function(e){async function i(e,i){if(checkArg("sublayer",i).isNotMissing(),e&&(e.hasOwnProperty("defaultVisibility")&&(i.visible=e.defaultVisibility),e.hasOwnProperty("id")&&(i.id=e.id),e.hasOwnProperty("title")&&(i.title=e.title),isMapImageSublayer(i)&&(e.hasOwnProperty("maxScale")&&(i.maxScale=e.maxScale),e.hasOwnProperty("minScale")&&(i.minScale=e.minScale),e.hasOwnProperty("name")&&(i.title=e.name),e.hasOwnProperty("popupInfo")&&(i.popupTemplate=PopupInfo.toEsriApiPopupTemplate(e.popupInfo)),e.hasOwnProperty("showLegend")&&(i.legendEnabled=e.showLegend,i.showLegend=e.showLegend),e.hasOwnProperty("layerDefinition")&&await LayerDefinition.applyToEsriApiLayer(e.layerDefinition,i),e.hasOwnProperty("subLayerIds")&&i.sublayers))){const r=e.subLayerIds.map((e=>+e)),a=i.sublayers.toArray().filter((e=>!r.includes(+e.id)));i.sublayers.removeMany(a)}}e.toEsriApiSublayer=async function(e,r){let a;if("ArcGISMapServiceLayer"!==r)throw new ArgumentError(`Unable to create sublayers for layer type "${r}".`);return a=new((await import("@arcgis/core/layers/support/Sublayer")).default),await i(e,a),a},e.applyToEsriApiSublayer=i,e.applyToEsriApiLayer=async function(e,i){checkArg("layer",i).isNotMissing(),e&&(e.hasOwnProperty("defaultVisibility")&&(i.visible=e.defaultVisibility),e.hasOwnProperty("id")&&(i.id=e.id),e.hasOwnProperty("maxScale")&&(i.maxScale=e.maxScale),e.hasOwnProperty("minScale")&&(i.minScale=e.minScale),e.hasOwnProperty("title")&&(i.title=e.title),e.hasOwnProperty("name")&&(i.title=e.name),e.hasOwnProperty("popupInfo")&&(i.popupTemplate=PopupInfo.toEsriApiPopupTemplate(e.popupInfo)),e.hasOwnProperty("showLegend")&&(i.legendEnabled=e.showLegend,i.showLegend=e.showLegend),e.hasOwnProperty("layerDefinition")&&await LayerDefinition.applyToEsriApiLayer(e.layerDefinition,i))},e.fromEsriApiSublayer=function(e,i=
|
|
1
|
+
import{ArgumentError}from"../ArgumentError.js";import{isMapImageSublayer,isWMTSLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{LayerDefinition}from"./LayerDefinition.js";import{PopupInfo}from"./PopupInfo.js";export var Layer;!function(e){async function i(e,i){if(checkArg("sublayer",i).isNotMissing(),e&&(e.hasOwnProperty("defaultVisibility")&&(i.visible=e.defaultVisibility),e.hasOwnProperty("id")&&(i.id=e.id),e.hasOwnProperty("title")&&(i.title=e.title),isMapImageSublayer(i)&&(e.hasOwnProperty("maxScale")&&(i.maxScale=e.maxScale),e.hasOwnProperty("minScale")&&(i.minScale=e.minScale),e.hasOwnProperty("name")&&(i.title=e.name),e.hasOwnProperty("popupInfo")&&(i.popupTemplate=PopupInfo.toEsriApiPopupTemplate(e.popupInfo)),e.hasOwnProperty("showLegend")&&(i.legendEnabled=e.showLegend,i.showLegend=e.showLegend),e.hasOwnProperty("layerDefinition")&&await LayerDefinition.applyToEsriApiLayer(e.layerDefinition,i),e.hasOwnProperty("subLayerIds")&&i.sublayers))){const r=e.subLayerIds.map((e=>+e)),a=i.sublayers.toArray().filter((e=>!r.includes(+e.id)));i.sublayers.removeMany(a)}}e.toEsriApiSublayer=async function(e,r){let a;if("ArcGISMapServiceLayer"!==r)throw new ArgumentError(`Unable to create sublayers for layer type "${r}".`);return a=new((await import("@arcgis/core/layers/support/Sublayer")).default),await i(e,a),a},e.applyToEsriApiSublayer=i,e.applyToEsriApiLayer=async function(e,i){checkArg("layer",i).isNotMissing(),e&&(e.hasOwnProperty("defaultVisibility")&&(i.visible=e.defaultVisibility),e.hasOwnProperty("id")&&(i.id=e.id),e.hasOwnProperty("maxScale")&&(i.maxScale=e.maxScale),e.hasOwnProperty("minScale")&&(i.minScale=e.minScale),e.hasOwnProperty("title")&&(i.title=e.title),e.hasOwnProperty("name")&&(i.title=e.name),e.hasOwnProperty("popupInfo")&&(i.popupTemplate=PopupInfo.toEsriApiPopupTemplate(e.popupInfo)),e.hasOwnProperty("showLegend")&&(i.legendEnabled=e.showLegend,i.showLegend=e.showLegend),e.hasOwnProperty("layerDefinition")&&await LayerDefinition.applyToEsriApiLayer(e.layerDefinition,i))},e.fromEsriApiSublayer=function(e,i=e?.layer){checkArg("sublayer",e).isNotMissing().satisfies((e=>!isWMTSLayer(e.layer)));const r={id:e.id,title:e.title};if(null!==e.visible&&void 0!==e.visible&&(r.defaultVisibility=e.visible),isMapImageSublayer(e)&&(r.minScale=e.minScale,r.maxScale=e.maxScale,r.layerDefinition=LayerDefinition.fromEsriApiLayer(e),e.popupTemplate&&(r.popupInfo=PopupInfo.fromEsriApiPopupTemplate(e.popupTemplate)),null!==e.legendEnabled&&void 0!==e.legendEnabled&&(r.showLegend=e.legendEnabled)),e.sublayers?.length&&(r.subLayerIds=e.sublayers.map((e=>e.id)).toArray()),i?.sublayers){const a=[],o=(i,o)=>{if(i)for(const t of i.toArray()){if(t===e){r.parentLayerId=o;break}a.push(t)}};for(o(i.sublayers,-1);void 0===r.parentLayerId&&0!==a.length;){const e=a.pop();o(e.sublayers,e.id)}}else r.parentLayerId=-1;return r}}(Layer||(Layer={}));
|
|
@@ -235,8 +235,7 @@ export interface LayerDefinition {
|
|
|
235
235
|
*/
|
|
236
236
|
objectIdField?: string;
|
|
237
237
|
/**
|
|
238
|
-
* Determines the display order of features on the map
|
|
239
|
-
* undocumented in the web map spec but supported by Esri's viewer).
|
|
238
|
+
* Determines the display order of features on the map.
|
|
240
239
|
*/
|
|
241
240
|
orderBy?: OrderByClause[];
|
|
242
241
|
/**
|
|
@@ -451,9 +450,13 @@ export interface OrderByClause {
|
|
|
451
450
|
*/
|
|
452
451
|
field?: string;
|
|
453
452
|
/**
|
|
454
|
-
* The [Arcade
|
|
453
|
+
* The [Arcade
|
|
454
|
+
* expression](https://developers.arcgis.com/javascript/latest/arcade/)
|
|
455
|
+
* whose return value will be used to sort features. (Currently undocumented
|
|
456
|
+
* by ESRI's Webmap Spec).
|
|
455
457
|
*
|
|
456
|
-
* [Read
|
|
458
|
+
* [Read
|
|
459
|
+
* more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-mixins-OrderedLayer.html#orderBy).
|
|
457
460
|
*/
|
|
458
461
|
valueExpression?: string;
|
|
459
462
|
/**
|
|
@@ -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){
|
|
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){checkArg("json",e).isNotMissing(),checkArg("layer",i).isNotMissing();const r=i,t=i;if(isFeatureLayerBase(r)&&(e.hasOwnProperty("objectIdField")&&(isStreamLayer(r)?r.objectIdField="__esri_stream_id__":r.objectIdField=e.objectIdField),e.hasOwnProperty("geometryType")&&(r.geometryType=GeometryType.toEsriApiGeometryType(e.geometryType)),e.hasOwnProperty("hasAttachments")&&t._set("capabilities.data.supportsAttachment",e.hasAttachments),e.hasOwnProperty("maxRecordCount")&&(t.maxRecordCount=e.maxRecordCount),e.hasOwnProperty("hasM")&&t._set("hasM",e.hasM),e.hasOwnProperty("hasZ")&&t._set("hasZ",e.hasZ),e.hasOwnProperty("templates")&&(r.templates=e.templates.map((e=>Template.toEsriApiFeatureTemplate(e))))),e.hasOwnProperty("orderBy")&&(isFeatureLayer(r)||isCSVLayer(r))&&(e.orderBy?r.orderBy=e.orderBy.map((e=>({field:e.field,order:"desc"===e.order?"descending":"ascending"}))):r.orderBy=void 0),e.hasOwnProperty("source")&&isEsriSublayer(i)&&!i.layer?.loaded){const{type:i,...r}=e.source;"dataLayer"===i?t._set("source",new DataLayerSource(r)):"mapLayer"===i&&t._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))})),t._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):i.fullExtent?.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={}){checkArg("layer",e).isNotMissing();const r={},t=e,a=e;if(isFeatureLayerBase(t)){const s=e;t.objectIdField&&(r.objectIdField=t.objectIdField),s.geometryType&&(r.geometryType=GeometryType.fromEsriApiGeometryType(s.geometryType)),t.capabilities&&t.capabilities.data.supportsAttachment!==i.hasAttachments&&(r.hasAttachments=t.capabilities.data.supportsAttachment),isNaN(a.maxRecordCount)||null==a.maxRecordCount||(r.maxRecordCount=a.maxRecordCount),t.capabilities&&(r.capabilities=LayerDefinitionCapabilities.fromEsriApiFeatureLayerCapabilities(t.capabilities),t.capabilities.query&&(r.supportsAdvancedQueries=t.capabilities.query.supportsOrderBy||t.capabilities.query.supportsDistinct,r.supportsStatistics=t.capabilities.query.supportsStatistics)),t.hasM!==i.hasM&&(r.hasM=t.hasM),t.hasZ!==i.hasZ&&(r.hasZ=t.hasZ),t.templates&&t.templates.length>0&&(r.templates=t.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,(isBuildingComponentSublayer(e)?!!e.layer?.elevationInfo:!!e.elevationInfo)&&(r.elevationInfo=ElevationInfo.fromEsriApiElevationInfo(e.elevationInfo)),(isFeatureLayer(e)&&e.source||isCSVLayer(e)||isGraphicsLayer(e)||isGeoJSONLayer(e)||isStreamLayer(e))&&(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(t)||isCSVLayer(t))&&t.orderBy&&(r.orderBy=t.orderBy.map((e=>({field:e.field,order:"descending"===e.order?"desc":"asc"})))),isFeatureLayer(t)||isCSVLayer(t)||isStreamLayer(t)||isSceneLayer(t)||isBuildingSceneLayer(t)){const{maxScale:e}=t,{minScale:a}=t;isNaN(e)||null===e||e===i.maxScale&&e===a||(r.maxScale=e),isNaN(a)||null===a||a===i.minScale&&a===e||(r.minScale=a)}return isTimeAwareLayer(t)&&(r.timeInfo=t.timeInfo?.toJSON()),r.name=e.title,isLayer(e)&&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 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={}));
|
package/portal/Lighting.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import EsriLighting from"@arcgis/core/webscene/Lighting";import{checkArg}from"../utilities/checkArg.js";export var Lighting;!function(i){i.toEsriApiLighting=function(i){checkArg("lightingJson",i).isNotMissing();const t=new EsriLighting;return i.hasOwnProperty("datetime")&&(t.date=new Date(i.datetime)),i.hasOwnProperty("directShadows")&&(t.directShadowsEnabled=!!i.directShadows),i.hasOwnProperty("displayUTCOffset")&&(t.displayUTCOffset=i.displayUTCOffset),t},i.fromEsriApiLighting=function(i){
|
|
1
|
+
import EsriLighting from"@arcgis/core/webscene/Lighting";import{checkArg}from"../utilities/checkArg.js";export var Lighting;!function(i){i.toEsriApiLighting=function(i){checkArg("lightingJson",i).isNotMissing();const t=new EsriLighting;return i.hasOwnProperty("datetime")&&(t.date=new Date(i.datetime)),i.hasOwnProperty("directShadows")&&(t.directShadowsEnabled=!!i.directShadows),i.hasOwnProperty("displayUTCOffset")&&(t.displayUTCOffset=i.displayUTCOffset),t},i.fromEsriApiLighting=function(i){return checkArg("lighting",i).isNotMissing(),{datetime:i.date?.getTime(),directShadows:i.directShadowsEnabled,displayUTCOffset:i.displayUTCOffset}}}(Lighting||(Lighting={}));
|
|
@@ -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){
|
|
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){const a=r.capabilities?.exportMap?.supportsDynamicLayers;if(e.layers)if(a&&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)=>{const o=+e.id,l=i.get(o);if(l)if(null!=e.parentLayerId&&-1!==e.parentLayerId){const r=i.get(e.parentLayerId);r&&(r.sublayers=r.sublayers??new Collection,r.sublayers.add(l))}else r.sublayers.add(l);else{const i=r.allSublayers.find((e=>e.id===o));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{isPointCloudLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";export var PointCloudLayer;!function(r){async function e(r,e){checkArg("layerJson",r).isNotMissing(),checkArg("layerJson.layerType",r.layerType).satisfies((r=>!r||"PointCloudLayer"===r),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",e).isNotMissing().satisfies(isPointCloudLayer,ERR_LAYER_TYPE_MISMATCH),applyLayerBaseToEsriApiLayer(r,e),applyOperationalLayerToEsriApiLayer(r,e),r.hasOwnProperty("url")&&(e.url=r.url)}r.esriPointCloudLayerDefaults={visible:!0},r.toEsriApiLayer=async function(r){checkArg("layerJson",r).isNotMissing(),checkArg("layerJson.layerType",r.layerType).satisfies((r=>!r||"PointCloudLayer"===r),ERR_LAYER_TYPE_MISMATCH);const i={};
|
|
1
|
+
import{isPointCloudLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{ERR_LAYER_TYPE_MISMATCH,applyLayerBaseToEsriApiLayer,applyOperationalLayerToEsriApiLayer,fromEsriApiLayerToLayerBase,fromEsriApiLayerToOperationalLayer}from"./_layerHelper.js";export var PointCloudLayer;!function(r){async function e(r,e){checkArg("layerJson",r).isNotMissing(),checkArg("layerJson.layerType",r.layerType).satisfies((r=>!r||"PointCloudLayer"===r),ERR_LAYER_TYPE_MISMATCH),checkArg("layer",e).isNotMissing().satisfies(isPointCloudLayer,ERR_LAYER_TYPE_MISMATCH),applyLayerBaseToEsriApiLayer(r,e),applyOperationalLayerToEsriApiLayer(r,e),r.hasOwnProperty("url")&&(e.url=r.url)}r.esriPointCloudLayerDefaults={visible:!0},r.toEsriApiLayer=async function(r){checkArg("layerJson",r).isNotMissing(),checkArg("layerJson.layerType",r.layerType).satisfies((r=>!r||"PointCloudLayer"===r),ERR_LAYER_TYPE_MISMATCH);const i={};r?.url&&(i.url=r.url);const a=new((await import("@arcgis/core/layers/PointCloudLayer")).default);return await e(r,a),a},r.applyToEsriApiLayer=e,r.fromEsriApiPointCloudLayer=function(r){return checkArg("layer",r).isNotMissing(),{...fromEsriApiLayerToLayerBase(r),...fromEsriApiLayerToOperationalLayer(r),layerType:"PointCloudLayer",url:r.url}}}(PointCloudLayer||(PointCloudLayer={}));
|
package/portal/PopupInfo.js
CHANGED
|
@@ -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(
|
|
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={}));
|