@vertigis/arcgis-extensions 35.2.0 → 35.3.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.
Files changed (98) hide show
  1. package/data/convert.js +1 -1
  2. package/docs/html/assets/search.js +1 -1
  3. package/docs/html/classes/data_FeatureStream.FeatureStream.html +1 -1
  4. package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerExtension.html +24 -21
  5. package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerSchema.html +1 -1
  6. package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtension.html +22 -19
  7. package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerSchema.html +1 -1
  8. package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerExtension.html +26 -23
  9. package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerSchema.html +2 -2
  10. package/docs/html/classes/mapping_BuildingSceneLayerExtension.BuildingSceneLayerExtension.html +34 -31
  11. package/docs/html/classes/mapping_BuildingSceneLayerExtension.BuildingSceneLayerReadOnlySchema.html +3 -3
  12. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerExtension.html +31 -28
  13. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerSchema.html +2 -2
  14. package/docs/html/classes/mapping_CSVLayerExtension.CSVLayerExtension.html +40 -40
  15. package/docs/html/classes/mapping_ElevationLayerExtension.ElevationLayerExtension.html +37 -34
  16. package/docs/html/classes/mapping_FeatureCollectionLayerExtension.FeatureCollectionLayerExtension.html +34 -31
  17. package/docs/html/classes/mapping_FeatureLayerExtension.FeatureLayerExtension.html +45 -45
  18. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerExtensionBase.html +37 -34
  19. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerSchema.html +4 -4
  20. package/docs/html/classes/mapping_GeoRSSLayerExtension.GeoRSSLayerExtension.html +37 -34
  21. package/docs/html/classes/mapping_GraphicsLayerExtension.GraphicsLayerExtension.html +33 -30
  22. package/docs/html/classes/mapping_GroupLayerExtension.GroupLayerExtension.html +34 -31
  23. package/docs/html/classes/mapping_ImageryLayerExtension.ImageryLayerExtension.html +37 -34
  24. package/docs/html/classes/mapping_ImageryTileLayerExtension.ImageryTileLayerExtension.html +35 -32
  25. package/docs/html/classes/mapping_IntegratedMeshLayerExtension.IntegratedMeshLayerExtension.html +38 -35
  26. package/docs/html/classes/mapping_KMLLayerExtension.KMLLayerExtension.html +35 -32
  27. package/docs/html/classes/mapping_KMLSublayerExtension.KMLSublayerExtension.html +28 -25
  28. package/docs/html/classes/mapping_MapImageLayerExtension.MapImageLayerExtension.html +36 -33
  29. package/docs/html/classes/mapping_MapImageSublayerExtension.MapImageSublayerExtension.html +22 -22
  30. package/docs/html/classes/mapping_OpenStreetMapLayerExtension.OpenStreetMapLayerExtension.html +39 -36
  31. package/docs/html/classes/mapping_PointCloudLayerExtension.PointCloudLayerExtension.html +37 -34
  32. package/docs/html/classes/mapping_SceneLayerExtension.SceneLayerExtension.html +40 -40
  33. package/docs/html/classes/mapping_StreamLayerExtension.StreamLayerExtension.html +40 -40
  34. package/docs/html/classes/mapping_StreamLayerExtension.StreamLayerSchema.html +7 -7
  35. package/docs/html/classes/mapping_TileLayerExtension.TileLayerExtension.html +33 -30
  36. package/docs/html/classes/mapping_TileSublayerExtension.TileSublayerExtension.html +23 -20
  37. package/docs/html/classes/mapping_UnsupportedLayerExtension.UnsupportedLayerExtension.html +38 -35
  38. package/docs/html/classes/mapping_VectorTileLayerExtension.VectorTileLayerExtension.html +36 -33
  39. package/docs/html/classes/mapping_WMSLayerExtension.WMSLayerExtension.html +35 -32
  40. package/docs/html/classes/mapping_WMSSublayerExtension.WMSSublayerExtension.html +27 -24
  41. package/docs/html/classes/mapping_WMTSLayerExtension.WMTSLayerExtension.html +34 -31
  42. package/docs/html/classes/mapping_WMTSSublayerExtension.WMTSSublayerExtension.html +28 -25
  43. package/docs/html/classes/mapping_WebTileLayerExtension.WebTileLayerExtension.html +39 -36
  44. package/docs/html/classes/mapping__LayerExtension.ArrayWrappedCollection.html +2 -2
  45. package/docs/html/classes/mapping__LayerExtension.LayerExtension.html +41 -38
  46. package/docs/html/classes/mapping__LayerExtension.LayerExtensionSchema.html +5 -5
  47. package/docs/html/classes/mapping__SublayerExtension.SubSublayerExtensionCollection.html +6 -6
  48. package/docs/html/classes/mapping__SublayerExtension.SublayerExtension.html +34 -31
  49. package/docs/html/classes/mapping__SublayerExtension.SublayerSchema.html +2 -2
  50. package/docs/html/classes/menus_MenuItem.MenuItem.html +3 -3
  51. package/docs/html/classes/utilities_asyncIterable.AsyncQueue.html +1 -1
  52. package/docs/html/enums/data_convert.GeometryFormat.html +7 -7
  53. package/docs/html/interfaces/data_convert.FromCsvOptions.html +13 -13
  54. package/docs/html/interfaces/data_convert.FromShapefileOptions.html +9 -9
  55. package/docs/html/interfaces/data_convert.FromXLSXOptions.html +12 -12
  56. package/docs/html/interfaces/data_convert.ToCsvOptions.html +13 -13
  57. package/docs/html/interfaces/data_convert.ToShapefileOptions.html +8 -8
  58. package/docs/html/interfaces/data_convert.ToXLSXOptions.html +10 -10
  59. package/docs/html/interfaces/portal_DrawingInfo.DrawingInfo-1.html +7 -7
  60. package/docs/html/interfaces/portal_LayerDefinition.FieldOverride.html +3 -3
  61. package/docs/html/interfaces/portal_LayerDefinition.LayerDefinition-1.html +48 -48
  62. package/docs/html/interfaces/portal_LayerDefinition.LayerDefinitionDefaults.html +8 -8
  63. package/docs/html/interfaces/portal_LayerDefinition.LayerTimeInfo.html +9 -9
  64. package/docs/html/interfaces/portal_LayerDefinition.OrderByClause.html +3 -3
  65. package/docs/html/interfaces/portal_LayerDefinition.TimeInfoExportOptions.html +4 -4
  66. package/docs/html/interfaces/portal_PointCloudLayer.PointCloudLayer-1.html +12 -4
  67. package/docs/html/modules/data_convert.html +6 -6
  68. package/docs/html/modules/mapping__LayerExtension.html +1 -1
  69. package/docs/html/modules/portal_DrawingInfo.DrawingInfo.html +3 -3
  70. package/docs/html/modules/portal_LayerDefinition.LayerDefinition.html +3 -3
  71. package/docs/html/modules/portal_LayerDefinition.LayerDefinitionCapabilities.html +6 -6
  72. package/docs/html/modules/portal_LayerDefinition.html +2 -2
  73. package/docs/html/modules/portal_PointCloudLayer.PointCloudLayer.html +4 -4
  74. package/docs/html/modules/version.html +1 -1
  75. package/mapping/CSVLayerExtension.d.ts +4 -0
  76. package/mapping/CSVLayerExtension.js +1 -1
  77. package/mapping/FeatureLayerExtension.d.ts +4 -0
  78. package/mapping/FeatureLayerExtension.js +1 -1
  79. package/mapping/MapImageSublayerExtension.d.ts +4 -0
  80. package/mapping/MapImageSublayerExtension.js +1 -1
  81. package/mapping/SceneLayerExtension.d.ts +4 -0
  82. package/mapping/SceneLayerExtension.js +1 -1
  83. package/mapping/StreamLayerExtension.d.ts +4 -0
  84. package/mapping/StreamLayerExtension.js +1 -1
  85. package/mapping/_LayerExtension.d.ts +5 -0
  86. package/mapping/_LayerExtension.js +1 -1
  87. package/mapping/_SublayerExtension.d.ts +5 -0
  88. package/mapping/_SublayerExtension.js +1 -1
  89. package/menus/MenuItem.d.ts +1 -1
  90. package/package.json +2 -3
  91. package/portal/DrawingInfo.d.ts +3 -1
  92. package/portal/DrawingInfo.js +1 -1
  93. package/portal/LayerDefinition.d.ts +2 -1
  94. package/portal/LayerDefinition.js +1 -1
  95. package/portal/PointCloudLayer.d.ts +17 -0
  96. package/portal/PointCloudLayer.js +1 -1
  97. package/version.d.ts +1 -1
  98. 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(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
+ 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 canChangeLabels(){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}
@@ -59,7 +59,7 @@ export declare class MenuItem<TMenuItemProps extends MenuItemProperties = MenuIt
59
59
  * @inheritdoc
60
60
  */
61
61
  protected readonly _itemType: string;
62
- private _isToggled;
62
+ protected _isToggled: boolean;
63
63
  private _submenu;
64
64
  private _iconId;
65
65
  private _isEnabled;
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": "35.2.0",
4
+ "version": "35.3.2",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://geocortex.visualstudio.com/Geocortex/_git/geocortex-api-ts"
@@ -51,7 +51,7 @@
51
51
  "elasticlunr": "~0.9.5",
52
52
  "esri-proj-codes": "~1.0.3",
53
53
  "safe-stable-stringify": "^2.3.1",
54
- "jszip": "~3.9.1",
54
+ "jszip": "~3.10.0",
55
55
  "moment-timezone": "~0.5.34",
56
56
  "shpjs": "~4.0.2 ",
57
57
  "xlsx": "~0.18.5"
@@ -62,7 +62,6 @@
62
62
  "@types/chai": "4.3.1",
63
63
  "@types/chai-as-promised": "7.1.5",
64
64
  "@types/jest": "27.5.1",
65
- "@types/jszip": "3.4.1",
66
65
  "@types/moment": "2.13.0",
67
66
  "@types/moment-timezone": "0.5.30",
68
67
  "@types/node": "14.14.41",
@@ -1,8 +1,10 @@
1
+ import type EsriCSVLayer from "@arcgis/core/layers/CSVLayer";
1
2
  import type EsriFeatureLayer from "@arcgis/core/layers/FeatureLayer";
2
3
  import type EsriImageryLayer from "@arcgis/core/layers/ImageryLayer";
3
4
  import type EsriLayer from "@arcgis/core/layers/Layer";
4
5
  import type EsriPointCloudLayer from "@arcgis/core/layers/PointCloudLayer";
5
6
  import type EsriSceneLayer from "@arcgis/core/layers/SceneLayer";
7
+ import type EsriStreamLayer from "@arcgis/core/layers/StreamLayer";
6
8
  import type EsriSublayer from "@arcgis/core/layers/support/Sublayer";
7
9
  import { LabelingInfo } from "./LabelingInfo.js";
8
10
  import type { PointCloudFilter } from "./PointCloudFilter.js";
@@ -14,7 +16,7 @@ export declare namespace DrawingInfo {
14
16
  * @param json The layer definition JSON to apply.
15
17
  * @param layer The Layer object to apply it to.
16
18
  */
17
- function applyToEsriApiLayer(json: DrawingInfo, layer: EsriFeatureLayer | EsriImageryLayer | EsriSceneLayer | EsriPointCloudLayer | EsriSublayer): Promise<void>;
19
+ function applyToEsriApiLayer(json: DrawingInfo, layer: EsriStreamLayer | EsriCSVLayer | EsriFeatureLayer | EsriImageryLayer | EsriSceneLayer | EsriPointCloudLayer | EsriSublayer): Promise<void>;
18
20
  /**
19
21
  * Creates ArcGIS Portal drawing info JSON from a Layer object.
20
22
  *
@@ -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){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={}));
1
+ import stableStringify from"safe-stable-stringify";import{Warning as EsriWarning}from"../support/_esriInternal.js";import{isCSVLayer,isFeatureLayer,isMapImageSublayer as isEsriSublayer,isPointCloudLayer,isSceneLayer,isStreamLayer}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)||isCSVLayer(r)||isStreamLayer(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={}));
@@ -5,6 +5,7 @@ import type EsriFeatureLayer from "@arcgis/core/layers/FeatureLayer";
5
5
  import type EsriImageryLayer from "@arcgis/core/layers/ImageryLayer";
6
6
  import type EsriImageryTileLayer from "@arcgis/core/layers/ImageryTileLayer";
7
7
  import type EsriLayer from "@arcgis/core/layers/Layer";
8
+ import type EsriPointCloudLayer from "@arcgis/core/layers/PointCloudLayer";
8
9
  import type EsriSceneLayer from "@arcgis/core/layers/SceneLayer";
9
10
  import type EsriStreamLayer from "@arcgis/core/layers/StreamLayer";
10
11
  import type EsriBuildingComponentSublayer from "@arcgis/core/layers/buildingSublayers/BuildingComponentSublayer";
@@ -30,7 +31,7 @@ export declare namespace LayerDefinition {
30
31
  * @param json The layer definition JSON to apply.
31
32
  * @param layer The Layer object to apply it to.
32
33
  */
33
- function applyToEsriApiLayer(json: LayerDefinition, layer: EsriFeatureLayer | EsriStreamLayer | EsriImageryLayer | EsriImageryTileLayer | EsriCSVLayer | EsriSceneLayer | EsriBuildingSceneLayer | EsriSublayer | EsriBuildingComponentSublayer): Promise<void>;
34
+ function applyToEsriApiLayer(json: LayerDefinition, layer: EsriFeatureLayer | EsriStreamLayer | EsriImageryLayer | EsriImageryTileLayer | EsriCSVLayer | EsriSceneLayer | EsriBuildingSceneLayer | EsriPointCloudLayer | EsriSublayer | EsriBuildingComponentSublayer): Promise<void>;
34
35
  /**
35
36
  * Creates ArcGIS Portal layer definition JSON from a Layer object.
36
37
  *
@@ -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,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={}));
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,isPointCloudLayer}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)||isPointCloudLayer(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={}));
@@ -1,11 +1,14 @@
1
1
  import type EsriPointCloudLayer from "@arcgis/core/layers/PointCloudLayer";
2
+ import { LayerDefinition } from "./LayerDefinition.js";
2
3
  import type { OperationalLayerBase } from "./OperationalLayer.js";
4
+ import { PopupInfo } from "./PopupInfo.js";
3
5
  export declare namespace PointCloudLayer {
4
6
  /**
5
7
  * Default values from Esri JavaScript API documentation.
6
8
  */
7
9
  const esriPointCloudLayerDefaults: {
8
10
  visible: boolean;
11
+ popupEnabled: boolean;
9
12
  };
10
13
  /**
11
14
  * Converts an ArcGIS Portal JSON representation of a point cloud layer to
@@ -40,10 +43,24 @@ export declare namespace PointCloudLayer {
40
43
  * {@link https://developers.arcgis.com/web-scene-specification/objects/pointCloudLayer/}.
41
44
  */
42
45
  export interface PointCloudLayer extends OperationalLayerBase {
46
+ /**
47
+ * Indicates whether to allow a client to ignore popups defined by the service item.
48
+ */
49
+ disablePopup?: boolean;
50
+ /**
51
+ * A layerDefinition object defining the attribute schema and drawing
52
+ * information for the layer.
53
+ */
54
+ layerDefinition?: LayerDefinition;
43
55
  /**
44
56
  * The type of layer.
45
57
  */
46
58
  layerType: "PointCloudLayer";
59
+ /**
60
+ * A PopupInfo object defining the content of pop-up windows when you click
61
+ * or query a feature.
62
+ */
63
+ popupInfo?: PopupInfo;
47
64
  /**
48
65
  * URL to the ArcGIS Server Image Service.
49
66
  */
@@ -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={};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={}));
1
+ import{isPointCloudLayer}from"../utilities/_layers.js";import{checkArg}from"../utilities/checkArg.js";import{LayerDefinition}from"./LayerDefinition.js";import{PopupInfo}from"./PopupInfo.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.hasOwnProperty("layerDefinition")&&await LayerDefinition.applyToEsriApiLayer(r.layerDefinition,e),r.hasOwnProperty("disablePopup")&&(e.popupEnabled=!r.disablePopup),r.hasOwnProperty("popupInfo")&&(e.popupTemplate=PopupInfo.toEsriApiPopupTemplate(r.popupInfo))}r.esriPointCloudLayerDefaults={visible:!0,popupEnabled:!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 o=new((await import("@arcgis/core/layers/PointCloudLayer")).default);return await e(r,o),o},r.applyToEsriApiLayer=e,r.fromEsriApiPointCloudLayer=function(e){checkArg("layer",e).isNotMissing();const i={...fromEsriApiLayerToLayerBase(e),...fromEsriApiLayerToOperationalLayer(e),layerType:"PointCloudLayer",layerDefinition:LayerDefinition.fromEsriApiLayer(e,r.esriPointCloudLayerDefaults),url:e.url};return e.popupEnabled!==r.esriPointCloudLayerDefaults.popupEnabled&&(i.disablePopup=!e.popupEnabled),e.popupTemplate&&(i.popupInfo=PopupInfo.fromEsriApiPopupTemplate(e.popupTemplate)),i}}(PointCloudLayer||(PointCloudLayer={}));
package/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * The current version of the Geocortex ArcGIS Extensions API.
3
3
  */
4
- export declare const version = "35.2.0";
4
+ export declare const version = "35.3.2";
package/version.js CHANGED
@@ -1 +1 @@
1
- export const version="35.2.0";
1
+ export const version="35.3.2";