@vertigis/arcgis-extensions 49.9.0 → 50.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/AppConfig.schema.json +23 -6
  2. package/Hyperlink.d.ts +3 -1
  3. package/Hyperlink.js +1 -1
  4. package/data/ArcGISServiceTableExtension.js +1 -1
  5. package/data/Feature.d.ts +1 -3
  6. package/data/Feature.js +1 -1
  7. package/data/FeatureSet.d.ts +40 -2
  8. package/data/FeatureSet.js +1 -1
  9. package/data/FeatureSettings.js +1 -1
  10. package/data/FeatureSourceBase.d.ts +22 -27
  11. package/data/FeatureSourceBase.js +1 -1
  12. package/data/FieldExtension.d.ts +0 -3
  13. package/data/FieldExtension.js +1 -1
  14. package/data/PopupContentExtension.js +1 -1
  15. package/data/Schema.js +1 -1
  16. package/data/_Relationship.d.ts +1 -2
  17. package/data/_TableExtension.d.ts +1 -1
  18. package/data/_TableExtension.js +1 -1
  19. package/docs/html/assets/highlight.css +38 -10
  20. package/docs/html/assets/navigation.js +1 -1
  21. package/docs/html/assets/search.js +1 -1
  22. package/docs/html/classes/Entity.EntityBase.html +12 -74
  23. package/docs/html/classes/Hyperlink.Hyperlink.html +10 -72
  24. package/docs/html/classes/LanguageResources.LanguageResources.html +36 -30
  25. package/docs/html/classes/data_ArcGISServiceTableExtension.ArcGISServiceTableExtension.html +35 -97
  26. package/docs/html/classes/data_Attachment.Attachment.html +12 -74
  27. package/docs/html/classes/data_Feature.Feature.html +16 -76
  28. package/docs/html/classes/data_FeatureList.FeatureList.html +73 -17
  29. package/docs/html/classes/data_FeatureSet.FeatureSet.html +39 -33
  30. package/docs/html/classes/data_FeatureSettings.FeatureSettings.html +11 -71
  31. package/docs/html/classes/data_FeatureSourceBase.FeatureSourceBase.html +35 -98
  32. package/docs/html/classes/data_FeatureSourceBase.RelationshipCollection.html +72 -16
  33. package/docs/html/classes/data_FeatureStream.FeatureStream.html +13 -75
  34. package/docs/html/classes/data_FieldExtension.FieldExtension.html +13 -75
  35. package/docs/html/classes/data_PopupContentExtension.PopupContentExtension.html +13 -75
  36. package/docs/html/classes/data_RelationshipBase.RelationshipBase.html +37 -31
  37. package/docs/html/classes/data_Schema.Schema.html +13 -73
  38. package/docs/html/classes/data_TaskSettings.TaskSettings.html +12 -72
  39. package/docs/html/classes/data__TableExtension.TableExtension.html +34 -96
  40. package/docs/html/classes/data__TableExtension.TableFeatureSettings.html +11 -71
  41. package/docs/html/classes/data__TableExtension.TableSchema.html +15 -75
  42. package/docs/html/classes/layer_preset_LayerPreset.LayerPreset.html +14 -76
  43. package/docs/html/classes/layer_preset_LayerPresetSettings.LayerPresetSetting.html +36 -30
  44. package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerExtension.html +35 -97
  45. package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerRelationshipCollection.html +72 -16
  46. package/docs/html/classes/mapping_BasemapExtension.BasemapExtension.html +14 -76
  47. package/docs/html/classes/mapping_Bookmark.Bookmark.html +12 -74
  48. package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtension.html +35 -97
  49. package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerSchema.html +13 -73
  50. package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerExtension.html +35 -97
  51. package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerSchema.html +13 -73
  52. package/docs/html/classes/mapping_BuildingSceneLayerExtension.BuildingSceneLayerExtension.html +35 -97
  53. package/docs/html/classes/mapping_BuildingSceneLayerExtension.BuildingSceneLayerReadOnlySchema.html +13 -73
  54. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerExtension.html +35 -97
  55. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerFeatureSettings.html +11 -53
  56. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerSchema.html +13 -73
  57. package/docs/html/classes/mapping_CSVLayerExtension.CSVLayerExtension.html +35 -97
  58. package/docs/html/classes/mapping_ElevationLayerExtension.ElevationLayerExtension.html +35 -97
  59. package/docs/html/classes/mapping_FeatureCollectionLayerExtension.FeatureCollectionLayerExtension.html +35 -97
  60. package/docs/html/classes/mapping_FeatureLayerExtension.FeatureLayerExtension.html +35 -97
  61. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerExtensionBase.html +35 -97
  62. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerReadOnlySchema.html +13 -73
  63. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerSchema.html +13 -73
  64. package/docs/html/classes/mapping_GeoJSONLayerExtension.GeoJSONLayerExtension.html +35 -97
  65. package/docs/html/classes/mapping_GeoRSSLayerExtension.GeoRSSLayerExtension.html +35 -97
  66. package/docs/html/classes/mapping_GraphicsLayerExtension.GraphicsLayerExtension.html +35 -97
  67. package/docs/html/classes/mapping_GroundExtension.GroundExtension.html +13 -75
  68. package/docs/html/classes/mapping_GroupLayerExtension.GroupLayerExtension.html +35 -97
  69. package/docs/html/classes/mapping_GroupLayerExtension.GroupLayerExtensionCollection.html +74 -23
  70. package/docs/html/classes/mapping_ImageryLayerExtension.ImageryLayerExtension.html +35 -97
  71. package/docs/html/classes/mapping_ImageryTileLayerExtension.ImageryTileLayerExtension.html +35 -97
  72. package/docs/html/classes/mapping_IntegratedMeshLayerExtension.IntegratedMeshLayerExtension.html +35 -97
  73. package/docs/html/classes/mapping_KMLLayerExtension.KMLLayerExtension.html +35 -97
  74. package/docs/html/classes/mapping_KMLSublayerExtension.KMLSublayerExtension.html +35 -97
  75. package/docs/html/classes/mapping_MapConstraints.MapConstraints.html +12 -72
  76. package/docs/html/classes/mapping_MapExtension.MapExtension.html +13 -75
  77. package/docs/html/classes/mapping_MapImageLayerExtension.MapImageLayerExtension.html +35 -97
  78. package/docs/html/classes/mapping_MapImageSublayerExtension.MapImageSublayerExtension.html +35 -97
  79. package/docs/html/classes/mapping_MapNotesLayerExtension.MapNotesLayerExtension.html +35 -97
  80. package/docs/html/classes/mapping_MapNotesSublayerExtension.MapNotesSublayerExtension.html +35 -97
  81. package/docs/html/classes/mapping_MapNotesSublayerExtension.MapNotesSublayerExtensionSchema.html +13 -73
  82. package/docs/html/classes/mapping_MediaLayerExtension.MediaLayerExtension.html +35 -97
  83. package/docs/html/classes/mapping_OpenStreetMapLayerExtension.OpenStreetMapLayerExtension.html +35 -97
  84. package/docs/html/classes/mapping_PointCloudLayerExtension.PointCloudLayerExtension.html +35 -97
  85. package/docs/html/classes/mapping_RouteLayerExtension.RouteLayerExtension.html +35 -97
  86. package/docs/html/classes/mapping_RouteLayerExtension.RouteLayerExtensionSchema.html +13 -73
  87. package/docs/html/classes/mapping_SceneLayerExtension.SceneLayerExtension.html +35 -97
  88. package/docs/html/classes/mapping_StreamLayerExtension.StreamLayerExtension.html +35 -97
  89. package/docs/html/classes/mapping_StreamLayerExtension.StreamLayerSchema.html +13 -73
  90. package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerExtension.html +35 -97
  91. package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerRelationshipCollection.html +72 -16
  92. package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerSchema.html +13 -73
  93. package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerExtension.html +35 -97
  94. package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerRelationshipCollection.html +72 -16
  95. package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerSchema.html +13 -73
  96. package/docs/html/classes/mapping_TileLayerExtension.TileLayerExtension.html +35 -97
  97. package/docs/html/classes/mapping_TileSublayerExtension.TileSublayerExtension.html +35 -97
  98. package/docs/html/classes/mapping_UnsupportedLayerExtension.UnsupportedLayerExtension.html +35 -97
  99. package/docs/html/classes/mapping_VectorTileLayerExtension.VectorTileLayerExtension.html +35 -97
  100. package/docs/html/classes/mapping_WFSLayerExtension.WFSLayerExtension.html +35 -97
  101. package/docs/html/classes/mapping_WMSLayerExtension.WMSLayerExtension.html +35 -97
  102. package/docs/html/classes/mapping_WMSSublayerExtension.WMSSublayerExtension.html +35 -97
  103. package/docs/html/classes/mapping_WMTSLayerExtension.WMTSLayerExtension.html +35 -97
  104. package/docs/html/classes/mapping_WebTileLayerExtension.WebTileLayerExtension.html +35 -97
  105. package/docs/html/classes/mapping__LayerExtension.LayerExtension.html +35 -97
  106. package/docs/html/classes/mapping__LayerExtension.LayerExtensionReadOnlySchema.html +13 -73
  107. package/docs/html/classes/mapping__LayerExtension.LayerExtensionSchema.html +13 -73
  108. package/docs/html/classes/mapping__LayerExtensionCollectionImpl.LayerExtensionCollectionImpl.html +74 -23
  109. package/docs/html/classes/mapping__SublayerExtension.SubSublayerExtensionCollection.html +74 -23
  110. package/docs/html/classes/mapping__SublayerExtension.SublayerExtension.html +35 -97
  111. package/docs/html/classes/mapping__SublayerExtension.SublayerSchema.html +13 -73
  112. package/docs/html/classes/mapping_support_ArrayWrappedCollection.ArrayWrappedCollection.html +72 -16
  113. package/docs/html/classes/mapping_support_LayerListSettings.ExtensionBaseLayerListSettings.html +9 -71
  114. package/docs/html/classes/mapping_support_LayerListSettings.LayerListSettings.html +10 -72
  115. package/docs/html/classes/mapping_support__LayerExtensionCollection.LayerExtensionCollectionBase.html +77 -26
  116. package/docs/html/classes/mapping_support__SublayerExtensionCollection.SublayerExtensionCollectionBase.html +77 -26
  117. package/docs/html/classes/menus_Menu.Menu.html +13 -75
  118. package/docs/html/classes/menus_MenuItem.MenuItem.html +13 -75
  119. package/docs/html/classes/support_FormatSettings.FormatSettings.html +12 -72
  120. package/docs/html/classes/support_InitializableBase.InitializableBase.html +21 -83
  121. package/docs/html/classes/support_InitializableCollectionProxy.InitializableCollectionProxy.html +73 -17
  122. package/docs/html/classes/support_Observable.Observable.html +27 -26
  123. package/docs/html/classes/support_ReadOnlyInitializableCollection.ReadOnlyInitializableCollection.html +73 -17
  124. package/docs/html/classes/support_Serializable.SerializableBase.html +38 -32
  125. package/docs/html/classes/support_Settings.Settings.html +15 -75
  126. package/docs/html/classes/support__ArcGISRelationshipCollection.ArcGISRelationshipCollection.html +72 -16
  127. package/docs/html/classes/support_observableUtils.ObservableMixin.html +3 -0
  128. package/docs/html/classes/tasks_geocoding_ArcGISGeocoder.ArcGISGeocoder.html +35 -97
  129. package/docs/html/classes/tasks_geocoding_Geocoder.Geocoder.html +33 -95
  130. package/docs/html/classes/tasks_identify_IdentifyService.IdentifyService.html +11 -73
  131. package/docs/html/classes/tasks_query_ArcGISRelationship.ArcGISRelationship.html +36 -30
  132. package/docs/html/classes/tasks_query_QueryBasedRelationship.QueryBasedRelationship.html +36 -30
  133. package/docs/html/classes/tasks_query_QueryService.QueryService.html +11 -73
  134. package/docs/html/classes/tasks_search_SearchService.SearchService.html +12 -74
  135. package/docs/html/classes/utilities_CaseInsensitiveObservableMap.CaseInsensitiveObservableMap.html +24 -27
  136. package/docs/html/classes/utilities_CollectionProxy.CollectionProxy.html +73 -17
  137. package/docs/html/classes/utilities_CopyOnWriteCollection.CopyOnWriteCollection.html +72 -16
  138. package/docs/html/classes/utilities_MapTransformCollection.MapTransformCollection.html +72 -16
  139. package/docs/html/classes/utilities_ObservableMap.ObservableMap.html +26 -32
  140. package/docs/html/classes/utilities_ObservableSet.ObservableSet.html +38 -32
  141. package/docs/html/classes/utilities_ObservableWeakSet.ObservableWeakSet.html +44 -42
  142. package/docs/html/classes/utilities_ReadOnlyCollection.ReadOnlyCollection.html +72 -16
  143. package/docs/html/classes/utilities_ReadOnlyMap.ReadOnlyMap.html +23 -29
  144. package/docs/html/classes/utilities_format_date.DateFormatter.html +37 -31
  145. package/docs/html/classes/utilities_format_number.NumberFormatter.html +37 -31
  146. package/docs/html/classes/utilities_format_time.TimeFormatter.html +37 -31
  147. package/docs/html/functions/support_Observable.deprecatedGetPropertyPath.html +7 -0
  148. package/docs/html/functions/support_Observable.deprecatedNotifyChange.html +5 -0
  149. package/docs/html/functions/support_Observable.deprecatedSet.html +9 -0
  150. package/docs/html/functions/support_Observable.deprecatedWatch.html +9 -0
  151. package/docs/html/functions/support_Observable.deprecatedWatchProperty.html +14 -0
  152. package/docs/html/functions/support_Observable.getPropertyByPath.html +3 -2
  153. package/docs/html/functions/support_observableUtils.createIHandle.html +8 -0
  154. package/docs/html/functions/support_observableUtils.notifyChange.html +8 -0
  155. package/docs/html/functions/support_observableUtils.observable-1.html +31 -0
  156. package/docs/html/functions/support_observableUtils.onWatch.html +14 -0
  157. package/docs/html/functions/support_observableUtils.once.html +11 -0
  158. package/docs/html/functions/support_observableUtils.watch.html +24 -0
  159. package/docs/html/functions/support_observableUtils.watchEach.html +33 -0
  160. package/docs/html/functions/support_observableUtils.watchEvent.html +12 -0
  161. package/docs/html/functions/support_observableUtils.when.html +9 -0
  162. package/docs/html/functions/support_observableUtils.whenOnce.html +9 -0
  163. package/docs/html/functions/utilities_checkArg.checkArg.html +1 -1
  164. package/docs/html/functions/utilities_watch.onCollectionPropertyChange.html +6 -1
  165. package/docs/html/functions/utilities_watch.watchCollectionPropertyEach.html +5 -4
  166. package/docs/html/functions/utilities_watch.watchEach.html +8 -6
  167. package/docs/html/hierarchy.html +1 -1
  168. package/docs/html/interfaces/data_ArcGISServiceTableExtension.ArcGISServiceTableExtensionProperties.html +1 -1
  169. package/docs/html/interfaces/data_Feature.PresentableAttributes.html +24 -30
  170. package/docs/html/interfaces/data_Schema.SchemaProperties.html +2 -2
  171. package/docs/html/interfaces/data__Relationship.Relationship-1.html +35 -29
  172. package/docs/html/interfaces/data__TableExtension.TableExtensionProperties.html +1 -1
  173. package/docs/html/interfaces/json_AnnotationLayerJson.AnnotationLayerJson.html +2 -2
  174. package/docs/html/interfaces/json_BasemapLayerJson.BasemapLayerJsonBase.html +2 -2
  175. package/docs/html/interfaces/json_BingLayerJson.BingLayerJson.html +2 -2
  176. package/docs/html/interfaces/json_BuildingSceneLayerJson.BuildingSceneLayerJson.html +2 -2
  177. package/docs/html/interfaces/json_CSVLayerJson.CSVLayerJson.html +2 -2
  178. package/docs/html/interfaces/json_FeatureLayerJson.FeatureLayerJson.html +2 -2
  179. package/docs/html/interfaces/json_GeoJSONLayerJson.GeoJSONLayerJson.html +2 -2
  180. package/docs/html/interfaces/json_GeoRSSLayerJson.GeoRSSLayerJson.html +2 -2
  181. package/docs/html/interfaces/json_GroupLayerJson.GroupLayerJson.html +2 -2
  182. package/docs/html/interfaces/json_ImageServiceLayerJson.ImageServiceLayerJson.html +2 -2
  183. package/docs/html/interfaces/json_ImageServiceVectorLayerJson.ImageServiceVectorLayerJson.html +2 -2
  184. package/docs/html/interfaces/json_IntegratedMeshLayerJson.IntegratedMeshLayerJson.html +2 -2
  185. package/docs/html/interfaces/json_ItemJson.ItemJson.html +2 -2
  186. package/docs/html/interfaces/json_KMLLayerJson.KMLLayerJson.html +2 -2
  187. package/docs/html/interfaces/json_LayerJson.LayerJsonBase.html +2 -2
  188. package/docs/html/interfaces/json_MapServiceLayerJson.MapServiceLayerJson.html +2 -2
  189. package/docs/html/interfaces/json_MediaLayerJson.MediaLayerJson.html +2 -2
  190. package/docs/html/interfaces/json_OpenStreetMapLayerJson.OpenStreetMapLayerJson.html +2 -2
  191. package/docs/html/interfaces/json_OperationalLayerJson.OperationalLayerJsonBase.html +2 -2
  192. package/docs/html/interfaces/json_PointCloudLayerJson.PointCloudLayerJson.html +2 -2
  193. package/docs/html/interfaces/json_RasterDataElevationLayerJson.RasterDataElevationLayerJson.html +2 -2
  194. package/docs/html/interfaces/json_SceneLayerJson.SceneLayerJson.html +2 -2
  195. package/docs/html/interfaces/json_StreamLayerJson.StreamLayerJson.html +2 -2
  196. package/docs/html/interfaces/json_SubtypeGroupLayerJson.SubtypeGroupLayerJson.html +2 -2
  197. package/docs/html/interfaces/json_SubtypeGroupLayerJson.SubtypeSubtypeGroupLayerJson.html +2 -2
  198. package/docs/html/interfaces/json_SubtypeSublayerJson.SubtypeSublayerJson.html +2 -2
  199. package/docs/html/interfaces/json_TiledElevationServiceLayerJson.TiledElevationServiceLayerJson.html +2 -2
  200. package/docs/html/interfaces/json_TiledImageServiceLayerJson.TiledImageServiceLayerJson.html +2 -2
  201. package/docs/html/interfaces/json_TiledMapServiceLayerJson.TiledMapServiceLayerJson.html +2 -2
  202. package/docs/html/interfaces/json_VectorTileLayerJson.VectorTileLayerJson.html +2 -2
  203. package/docs/html/interfaces/json_WFSLayerJson.WFSLayerJson.html +2 -2
  204. package/docs/html/interfaces/json_WMSLayerJson.WMSLayerJson.html +2 -2
  205. package/docs/html/interfaces/json_WebTileLayerJson.WebTileLayerJson.html +2 -2
  206. package/docs/html/interfaces/mapping_ArcGISSublayerExtension.ArcGISSublayerExtensionProperties.html +1 -1
  207. package/docs/html/interfaces/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtensionProperties.html +1 -1
  208. package/docs/html/interfaces/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerExtensionProperties.html +1 -1
  209. package/docs/html/interfaces/mapping_BuildingSceneLayerExtension.BuildingSceneLayerExtensionProperties.html +1 -1
  210. package/docs/html/interfaces/mapping_BuildingSceneLayerExtension.BuildingSceneLayerProperties.html +2 -2
  211. package/docs/html/interfaces/mapping_BuildingSublayerExtension.BuildingSublayerExtensionProperties.html +1 -1
  212. package/docs/html/interfaces/mapping_CSVLayerExtension.CSVLayerExtensionProperties.html +1 -1
  213. package/docs/html/interfaces/mapping_ElevationLayerExtension.ElevationLayerExtensionProperties.html +1 -1
  214. package/docs/html/interfaces/mapping_FeatureLayerExtension.FeatureLayerExtensionProperties.html +1 -1
  215. package/docs/html/interfaces/mapping_FeatureLayerExtension.FeatureLayerProperties.html +2 -2
  216. package/docs/html/interfaces/mapping_FeatureLayerExtensionBase.FeatureLayerBaseProperties.html +2 -2
  217. package/docs/html/interfaces/mapping_FeatureLayerExtensionBase.FeatureLayerExtensionBaseProperties.html +1 -1
  218. package/docs/html/interfaces/mapping_GeoJSONLayerExtension.GeoJSONLayerExtensionProperties.html +1 -1
  219. package/docs/html/interfaces/mapping_GeoRSSLayerExtension.GeoRSSLayerExtensionProperties.html +1 -1
  220. package/docs/html/interfaces/mapping_GraphicsLayerExtension.GraphicsLayerExtensionProperties.html +1 -1
  221. package/docs/html/interfaces/mapping_GroupLayerExtension.GroupLayerExtensionProperties.html +1 -1
  222. package/docs/html/interfaces/mapping_ImageryLayerExtension.ImageryLayerExtensionProperties.html +1 -1
  223. package/docs/html/interfaces/mapping_ImageryTileLayerExtension.ImageryTileLayerExtensionProperties.html +1 -1
  224. package/docs/html/interfaces/mapping_IntegratedMeshLayerExtension.IntegratedMeshLayerExtensionProperties.html +1 -1
  225. package/docs/html/interfaces/mapping_KMLLayerExtension.KMLLayerExtensionProperties.html +1 -1
  226. package/docs/html/interfaces/mapping_KMLSublayerExtension.KMLSublayerExtensionProperties.html +1 -1
  227. package/docs/html/interfaces/mapping_MapExtension.MapExtensionProperties.html +3 -3
  228. package/docs/html/interfaces/mapping_MapImageLayerExtension.MapImageLayerExtensionProperties.html +4 -4
  229. package/docs/html/interfaces/mapping_MapImageSublayerExtension.MapImageSublayerExtensionProperties.html +1 -1
  230. package/docs/html/interfaces/mapping_MapNotesLayerExtension.MapNotesLayerExtensionProperties.html +1 -1
  231. package/docs/html/interfaces/mapping_MapNotesSublayerExtension.MapNotesSublayerExtensionProperties.html +1 -1
  232. package/docs/html/interfaces/mapping_MediaLayerExtension.MediaLayerExtensionProperties.html +1 -1
  233. package/docs/html/interfaces/mapping_OpenStreetMapLayerExtension.OpenStreetMapLayerExtensionProperties.html +1 -1
  234. package/docs/html/interfaces/mapping_PointCloudLayerExtension.PointCloudLayerExtensionProperties.html +1 -1
  235. package/docs/html/interfaces/mapping_PointCloudLayerExtension.PointCloudLayerProperties.html +2 -2
  236. package/docs/html/interfaces/mapping_RouteLayerExtension.RouteLayerExtensionProperties.html +1 -1
  237. package/docs/html/interfaces/mapping_SceneLayerExtension.SceneLayerExtensionProperties.html +1 -1
  238. package/docs/html/interfaces/mapping_StreamLayerExtension.StreamLayerExtensionProperties.html +1 -1
  239. package/docs/html/interfaces/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerExtensionProperties.html +1 -1
  240. package/docs/html/interfaces/mapping_SubtypeSublayerExtension.SubtypeSublayerExtensionProperties.html +1 -1
  241. package/docs/html/interfaces/mapping_TileLayerExtension.TileLayerExtensionProperties.html +1 -1
  242. package/docs/html/interfaces/mapping_TileSublayerExtension.TileSublayerExtensionProperties.html +1 -1
  243. package/docs/html/interfaces/mapping_VectorTileLayerExtension.VectorTileLayerExtensionProperties.html +1 -1
  244. package/docs/html/interfaces/mapping_WFSLayerExtension.WFSLayerExtensionProperties.html +1 -1
  245. package/docs/html/interfaces/mapping_WMSLayerExtension.WMSLayerExtensionProperties.html +1 -1
  246. package/docs/html/interfaces/mapping_WMSSublayerExtension.WMSSublayerExtensionProperties.html +1 -1
  247. package/docs/html/interfaces/mapping_WMTSLayerExtension.WMTSLayerExtensionProperties.html +1 -1
  248. package/docs/html/interfaces/mapping_WebTileLayerExtension.WebTileLayerExtensionProperties.html +1 -1
  249. package/docs/html/interfaces/mapping__LayerExtension.LayerExtensionProperties.html +1 -1
  250. package/docs/html/interfaces/mapping__SublayerExtension.SublayerExtensionProperties.html +1 -1
  251. package/docs/html/interfaces/mapping_support_ArrayWrappedCollection.ArrayWrappedCollectionProperties.html +3 -3
  252. package/docs/html/interfaces/support_InitializableBase.Initializable.html +1 -1
  253. package/docs/html/interfaces/support_Observable.IDeprecatedObservable.html +57 -0
  254. package/docs/html/interfaces/support_Serializable.Serializable.html +60 -5
  255. package/docs/html/interfaces/support_esri.SublayerLike.html +2 -29
  256. package/docs/html/interfaces/support_observableUtils.IHandle.html +9 -0
  257. package/docs/html/interfaces/support_observableUtils.WatchEachOptions.html +29 -0
  258. package/docs/html/interfaces/support_observableUtils.WatchOptions.html +26 -0
  259. package/docs/html/interfaces/utilities_collection.AfterItemChangeEvent.html +4 -0
  260. package/docs/html/modules/support_Observable.html +8 -2
  261. package/docs/html/modules/support_esri.html +4 -3
  262. package/docs/html/modules/support_observableUtils.html +20 -0
  263. package/docs/html/modules/utilities_ObservableWeakSet.html +1 -1
  264. package/docs/html/modules/utilities_collection.html +1 -0
  265. package/docs/html/modules/utilities_watch.html +4 -4
  266. package/docs/html/modules.html +1 -0
  267. package/docs/html/types/support_esri.CollectionAfterEvent.html +1 -0
  268. package/docs/html/types/support_esri.CollectionAfterItemEvent.html +1 -1
  269. package/docs/html/types/support_esri.CollectionEvent.html +1 -0
  270. package/docs/html/types/support_esri.CollectionItemEvent.html +1 -0
  271. package/docs/html/types/support_observableUtils.Observable.html +5 -0
  272. package/docs/html/types/support_observableUtils.ObservablePropertyPath.html +9 -0
  273. package/docs/html/types/support_observableUtils.TargetTypeFromPath.html +14 -0
  274. package/docs/html/types/support_observableUtils.ValueTypeFromPath.html +14 -0
  275. package/docs/html/types/support_observableUtils.WhenOptions.html +7 -0
  276. package/docs/html/types/utilities_watch.WatchCallback.html +3 -0
  277. package/docs/html/variables/version.version.html +1 -1
  278. package/layer-preset/LayerPreset.js +1 -1
  279. package/mapping/ArcGISSublayerExtension.js +1 -1
  280. package/mapping/BasemapExtension.d.ts +1 -1
  281. package/mapping/BasemapExtension.js +1 -1
  282. package/mapping/BuildingComponentSublayerExtension.js +1 -1
  283. package/mapping/CSVLayerExtension.js +1 -1
  284. package/mapping/FeatureLayerExtension.js +1 -1
  285. package/mapping/FeatureLayerExtensionBase.js +1 -1
  286. package/mapping/GeoJSONLayerExtension.js +1 -1
  287. package/mapping/GeoRSSLayerExtension.js +1 -1
  288. package/mapping/GraphicsLayerExtension.js +1 -1
  289. package/mapping/GroundExtension.js +1 -1
  290. package/mapping/GroupLayerExtension.js +1 -1
  291. package/mapping/ImageryLayerExtension.js +1 -1
  292. package/mapping/KMLLayerExtension.js +1 -1
  293. package/mapping/MapExtension.d.ts +1 -1
  294. package/mapping/MapExtension.js +1 -1
  295. package/mapping/MapNotesSublayerExtension.js +1 -1
  296. package/mapping/PointCloudLayerExtension.js +1 -1
  297. package/mapping/RouteLayerExtension.js +1 -1
  298. package/mapping/SceneLayerExtension.js +1 -1
  299. package/mapping/StreamLayerExtension.js +1 -1
  300. package/mapping/SubtypeGroupLayerExtension.js +1 -1
  301. package/mapping/SubtypeSublayerExtension.js +1 -1
  302. package/mapping/WFSLayerExtension.js +1 -1
  303. package/mapping/WMTSLayerExtension.js +1 -1
  304. package/mapping/_LayerExtension.js +1 -1
  305. package/mapping/_SublayerExtension.d.ts +1 -1
  306. package/mapping/_SublayerExtension.js +1 -1
  307. package/mapping/support/ArrayWrappedCollection.d.ts +3 -3
  308. package/mapping/support/ArrayWrappedCollection.js +1 -1
  309. package/mapping/support/LayerListSettings.d.ts +3 -1
  310. package/mapping/support/LayerListSettings.js +1 -1
  311. package/mapping/support/PopupTemplateFeatureSettings.js +1 -1
  312. package/mapping/support/_LayerExtensionCollection.d.ts +19 -4
  313. package/mapping/support/_LayerExtensionCollection.js +1 -1
  314. package/mapping/support/_SublayerExtensionCollection.d.ts +19 -4
  315. package/mapping/support/_SublayerExtensionCollection.js +1 -1
  316. package/package.json +1 -1
  317. package/portal/BuildingSceneLayer.js +1 -1
  318. package/portal/SubtypeGroupLayer.js +1 -1
  319. package/portal/WMSLayer.js +1 -1
  320. package/support/InitializableBase.d.ts +12 -3
  321. package/support/InitializableBase.js +1 -1
  322. package/support/InitializeError.js +1 -1
  323. package/support/Observable.d.ts +164 -14
  324. package/support/Observable.js +1 -1
  325. package/support/Serializable.d.ts +40 -3
  326. package/support/Serializable.js +1 -1
  327. package/support/Settings.d.ts +6 -7
  328. package/support/Settings.js +1 -1
  329. package/support/esri.d.ts +6 -52
  330. package/support/observableUtils.d.ts +560 -0
  331. package/support/observableUtils.js +1 -0
  332. package/tasks/geocoding/ArcGISGeocoder.js +1 -1
  333. package/tasks/query/ClientSideQueryProvider.js +1 -1
  334. package/utilities/CollectionProxy.d.ts +54 -23
  335. package/utilities/CollectionProxy.js +1 -1
  336. package/utilities/MapTransformCollection.js +1 -1
  337. package/utilities/ObservableMap.d.ts +35 -4
  338. package/utilities/ObservableMap.js +1 -1
  339. package/utilities/ObservableSet.d.ts +44 -3
  340. package/utilities/ObservableSet.js +1 -1
  341. package/utilities/ObservableWeakSet.d.ts +3 -0
  342. package/utilities/ReadOnlyMap.d.ts +15 -2
  343. package/utilities/ReadOnlyMap.js +1 -1
  344. package/utilities/collection.d.ts +9 -0
  345. package/utilities/collection.js +1 -1
  346. package/utilities/watch.d.ts +25 -7
  347. package/utilities/watch.js +1 -1
  348. package/version.d.ts +1 -1
  349. package/version.js +1 -1
  350. package/docs/html/interfaces/support_esri.AccessorLike.html +0 -29
  351. package/docs/html/types/support_esri.WatchCallback.html +0 -3
@@ -1 +1 @@
1
- var e;import{__decorate as t}from"tslib";import r from"@arcgis/core/Ground";import{ArgumentError as i}from"../ArgumentError.js";import{EntityBase as s}from"../Entity.js";import{InvalidOperationError as n}from"../InvalidOperationError.js";import{ItemType as o}from"../ItemType.js";import{TaskSettings as a}from"../data/TaskSettings.js";import{DEFAULT_ELEVATION_ID as d,DEFAULT_ELEVATION_TITLE as u,DEFAULT_ELEVATION_URL as l,applyJsonToGround as h,_createDefaultElevationService as p}from"../json/GroundJson.js";import{serializable as g}from"../support/Serializable.js";import{checkArg as _}from"../utilities/checkArg.js";import{load as m}from"../utilities/esri.js";import{getLogger as f}from"../utilities/log.js";import{deepClone as c}from"../utilities/object.js";import{onCollectionPropertyChange as y}from"../utilities/watch.js";import{_assignLayerExtensions as E}from"./_LayerExtension.js";import{LayerExtensionCollectionBase as x}from"./support/_LayerExtensionCollection.js";const G=f("GroundExtension");export const defaultGroundExtensionFactory={create:e=>new P(e)};function w(e){return"esri.Ground"===e?.declaredClass}let P=class extends s{static{e=this}get ground(){return this._ground}get mapExtension(){return this._mapExtension}get layerExtensions(){return this._layerExtensions}static factory=defaultGroundExtensionFactory;taskSettings;_itemType=o.GROUND_EXTENSION;_watchHandles=[];_mapExtension;_ground;_layerExtensions;_deferredGroundProperties;constructor(e){super(e),this._layerExtensions=new z(this),this.taskSettings=this._createTaskSettings(),this.taskSettings.enableSearch=!1,this.taskSettings.enableQuery=!1,this.taskSettings.enableIdentify=!1;const{ground:t}=e??{};w(t)?this._setGround(t):t?this._deferredGroundProperties=t:this._setGround(new r)}static isDefaultGround(e){if(!e.layers.length)return!0;if(1!==e.layers.length)return!1;const t=e.layers.getItemAt(0);return t.url===l&&t.id===d&&t.title===u}static create(t){if(!e.factory)throw new n("Cannot create GroundExtension: no GroundExtension factory has been registered.");return e.factory.create(t)}_setMapExtension(e){this.mapExtension!==e&&(this._mapExtension=e,this.notifyChange("mapExtension"),this._layerExtensions.onMapExtensionChanged())}_resolveGround(){if(this._ground||!this._deferredGroundProperties||!this.mapExtension)return;const{ground:e}=this.mapExtension.map;this._setGround(e),this.assignProperties({ground:this._deferredGroundProperties}),this._deferredGroundProperties=void 0}_createTaskSettings(){return new a}_getSerializableProperties(){return{...super._getSerializableProperties(),ground:{serializeModes:["initial"],serialize:t=>this.ground&&("all"===t||!e.isDefaultGround(this.ground)&&this.ground.layers.length)?this.mapExtension?{$ref:"map.ground"}:this.ground.toJSON():this._deferredGroundProperties?c(this._deferredGroundProperties):void 0,isDefault:e=>!e||!e.layers?.length&&!e.$ref,deserialize:t=>{if(w(t)){if(t!==this.ground)throw new i("properties.ground","Property 'ground' is read-only.")}else if("world-elevation"===t){if(!this._ground||!e.isDefaultGround(this._ground))throw new i("properties.ground","Property 'ground' is read-only.")}else if(this._ground&&t)return h(t,this._ground)}},layerExtensions:{serialize:!1,deserialize:e=>{E(this.layerExtensions,e)}},taskSettings:{serialize:!1}}}async _onInitialize(){if(this.ground||this._deferredGroundProperties&&("world-elevation"===this._deferredGroundProperties?this._setGround(new r({layers:[await p()]})):this._deferredGroundProperties.$ref||this._setGround((await import("@arcgis/core/Ground")).default.fromJSON(this._deferredGroundProperties))),this._resolveGround(),!this._ground&&!this._mapExtension)throw new n("Cannot resolve Ground reference: missing parent map extension.");await m(this.ground),this._layerExtensions.onParentInitialized()}async _postInitialize(){await super._postInitialize(),this._watchHandles.push(y(this,"layer.layers",(async e=>{const t=(e.added??[]).map((e=>this.layerExtensions.forLayer(e)));await Promise.all(t.map(this._onLayerAddedPostInitialize))})))}_onLayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(t){G.error({message:`Error occurred while initializing layer extension for layer '${e.title??e.layer.id??e.id}'.`,error:t})}};async _onDestroy(){this._watchHandles.forEach((e=>e?.remove())),await super._onDestroy()}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.layerExtensions}_setGround(e){this._ground=e,this.mapExtension&&(this.mapExtension.map.ground=e),this.notifyChange("ground")}};P=e=t([g],P);export{P as GroundExtension};class z extends x{get _mapExtension(){return this._parent.mapExtension}constructor(e){super(e,"ground.layers")}add(e,t){return _("layerX",e).isNotMissing(),e.groundExtension&&e.groundExtension!==this._parent&&e.groundExtension.layerExtensions.remove(e),e._setGroundExtension(this._parent),super.add(e,t)}_onRemoved(e){super._onRemoved(e),e._setGroundExtension(void 0)}}
1
+ var e;import{__decorate as t}from"tslib";import r from"@arcgis/core/Ground";import{ArgumentError as i}from"../ArgumentError.js";import{EntityBase as s}from"../Entity.js";import{InvalidOperationError as n}from"../InvalidOperationError.js";import{ItemType as o}from"../ItemType.js";import{TaskSettings as a}from"../data/TaskSettings.js";import{DEFAULT_ELEVATION_ID as d,DEFAULT_ELEVATION_TITLE as u,DEFAULT_ELEVATION_URL as l,applyJsonToGround as h,_createDefaultElevationService as p}from"../json/GroundJson.js";import{serializable as m}from"../support/Serializable.js";import{notifyChange as _}from"../support/observableUtils.js";import{checkArg as g}from"../utilities/checkArg.js";import{load as f}from"../utilities/esri.js";import{getLogger as c}from"../utilities/log.js";import{deepClone as y}from"../utilities/object.js";import{onCollectionPropertyChange as E}from"../utilities/watch.js";import{_assignLayerExtensions as x}from"./_LayerExtension.js";import{LayerExtensionCollectionBase as G}from"./support/_LayerExtensionCollection.js";const w=c("GroundExtension");export const defaultGroundExtensionFactory={create:e=>new z(e)};function P(e){return"esri.Ground"===e?.declaredClass}let z=class extends s{static{e=this}get ground(){return this._ground}get mapExtension(){return this._mapExtension}get layerExtensions(){return this._layerExtensions}static factory=defaultGroundExtensionFactory;taskSettings;_itemType=o.GROUND_EXTENSION;_watchHandles=[];_mapExtension;_ground;_layerExtensions;_deferredGroundProperties;constructor(e){super(e),this._layerExtensions=new j(this),this.taskSettings=this._createTaskSettings(),this.taskSettings.enableSearch=!1,this.taskSettings.enableQuery=!1,this.taskSettings.enableIdentify=!1;const{ground:t}=e??{};P(t)?this._setGround(t):t?this._deferredGroundProperties=t:this._setGround(new r)}static isDefaultGround(e){if(!e.layers.length)return!0;if(1!==e.layers.length)return!1;const t=e.layers.getItemAt(0);return t.url===l&&t.id===d&&t.title===u}static create(t){if(!e.factory)throw new n("Cannot create GroundExtension: no GroundExtension factory has been registered.");return e.factory.create(t)}_setMapExtension(e){this.mapExtension!==e&&(this._mapExtension=e,_(this,"mapExtension"),this._layerExtensions.onMapExtensionChanged())}_resolveGround(){if(this._ground||!this._deferredGroundProperties||!this.mapExtension)return;const{ground:e}=this.mapExtension.map;this._setGround(e),this.assignProperties({ground:this._deferredGroundProperties}),this._deferredGroundProperties=void 0}_createTaskSettings(){return new a}_getSerializableProperties(){return{...super._getSerializableProperties(),ground:{serializeModes:["initial"],serialize:t=>this.ground&&("all"===t||!e.isDefaultGround(this.ground)&&this.ground.layers.length)?this.mapExtension?{$ref:"map.ground"}:this.ground.toJSON():this._deferredGroundProperties?y(this._deferredGroundProperties):void 0,isDefault:e=>!e||!e.layers?.length&&!e.$ref,deserialize:t=>{if(P(t)){if(t!==this.ground)throw new i("properties.ground","Property 'ground' is read-only.")}else if("world-elevation"===t){if(!this._ground||!e.isDefaultGround(this._ground))throw new i("properties.ground","Property 'ground' is read-only.")}else if(this._ground&&t)return h(t,this._ground)}},layerExtensions:{serialize:!1,deserialize:e=>{x(this.layerExtensions,e)}},taskSettings:{serialize:!1}}}async _onInitialize(){if(this.ground||this._deferredGroundProperties&&("world-elevation"===this._deferredGroundProperties?this._setGround(new r({layers:[await p()]})):this._deferredGroundProperties.$ref||this._setGround((await import("@arcgis/core/Ground")).default.fromJSON(this._deferredGroundProperties))),this._resolveGround(),!this._ground&&!this._mapExtension)throw new n("Cannot resolve Ground reference: missing parent map extension.");await f(this.ground),this._layerExtensions.onParentInitialized()}async _postInitialize(){await super._postInitialize(),this._watchHandles.push(E(this,"ground.layers",(async e=>{const t=(e.added??[]).map((e=>this.layerExtensions.forLayer(e)));await Promise.all(t.map(this._onLayerAddedPostInitialize))})))}_onLayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(t){w.error({message:`Error occurred while initializing layer extension for layer '${e.title??e.layer.id??e.id}'.`,error:t})}};async _onDestroy(){this._watchHandles.forEach((e=>e?.remove())),await super._onDestroy()}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.layerExtensions}_setGround(e){this._ground=e,this.mapExtension&&(this.mapExtension.map.ground=e),_(this,"ground")}};z=e=t([m],z);export{z as GroundExtension};class j extends G{get _mapExtension(){return this._parent.mapExtension}constructor(e){super(e,"ground.layers")}add(e,t){return g("layerX",e).isNotMissing(),e.groundExtension&&e.groundExtension!==this._parent&&e.groundExtension.layerExtensions.remove(e),e._setGroundExtension(this._parent),super.add(e,t)}_onRemoved(e){super._onRemoved(e),e._setGroundExtension(void 0)}}
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import i from"@arcgis/core/core/Collection";import{serializable as t}from"../support/Serializable.js";import{isGroupLayer as s,layersAreEquivalent as r}from"../utilities/_layers.js";import{checkArg as a}from"../utilities/checkArg.js";import{find as n}from"../utilities/iterable.js";import{getLogger as o}from"../utilities/log.js";import{onCollectionPropertyChange as l,watchEach as y}from"../utilities/watch.js";import{_assignLayerExtensions as d,LayerExtension as p}from"./_LayerExtension.js";import{ExtensionBaseLayerListSettings as h}from"./support/LayerListSettings.js";import{LayerExtensionCollectionBase as c}from"./support/_LayerExtensionCollection.js";const u=o("GroupLayerExtension");let _=class extends p{_layerExtensions;_visibilityModeField;get layer(){return super.layer}get layerExtensions(){return this._layerExtensions}get supportsSublayers(){return!0}get visibilityMode(){return this.layer?this.layer.visibilityMode:this._visibilityModeField||"independent"}set visibilityMode(e){this._visibilityModeField=e,this.layer&&(this.layer.visibilityMode=e)}get effectiveFullExtent(){return this.layerExtensions.initializedItems.length?this.layerExtensions.initializedItems.toArray().map((e=>e.layer.fullExtent)).reduce(((e,i)=>e?i?e.clone().union(i):e:i)):void 0}get effectiveMinScale(){const e=this.layerExtensions.initializedItems.map((e=>e.effectiveMinScale||1/0)).toArray(),i=Math.max(...e);return isFinite(i)?i:0}get effectiveMaxScale(){const e=this.layerExtensions.initializedItems.map((e=>e.effectiveMaxScale)).toArray(),i=Math.min(...e);return isFinite(i)?i:0}constructor(e){super(e),this._layerExtensions=this._createLayerExtensionCollection(),y(this.layerExtensions,"effectiveMinScale",(()=>this.notifyChange("effectiveMinScale"))),y(this.layerExtensions,"effectiveMaxScale",(()=>this.notifyChange("effectiveMaxScale"))),this.watch("layer",(()=>{this.layer&&void 0!==this._visibilityModeField&&(this.layer.visibilityMode=this._visibilityModeField)}))}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();return!e||this.dynamicallyAddedLayer||(e.layers=this.layerExtensions.toArray().filter((e=>e.layer)).map((e=>e._getProjectWebmapJSON()))),e}_setMapExtension(e){this.mapExtension!==e&&(super._setMapExtension(e),this._layerExtensions.onMapExtensionChanged())}async _switchLayer(e){const i=new Map;this.layer&&this.layer.layers.forEach((e=>{i.set(e,this.layerExtensions.forLayer(e))})),await super._switchLayer(e);const t=[];if(this.layer)for(const e of this.layer.layers.toArray()){const s=n(i.entries(),(([i])=>r(i,e)));s&&t.push((async()=>{const i=s[1];await i._switchLayer(e),this.layerExtensions._register(i)})())}this.isInitialized&&t.push(this._initializeChildren()),await Promise.all(t)}_getSerializableProperties(){const e=super._getSerializableProperties(),i={...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"GroupLayer"}},layerExtensions:{serializeModes:["initial","project"],deserialize:e=>{d(this.layerExtensions,e)}},visibilityMode:{...this._toPropertyDef(e.visibilityMode),isDefault:()=>void 0===this._visibilityModeField}};return delete i.visibilityMode.default,i}async _onInitialize(){await super._onInitialize(),this.layer.layers||(this.layer.layers=new i),this._layerExtensions.onParentInitialized()}async _postInitialize(){await super._postInitialize(),this._watchHandles.push(l(this,"layer.layers",(async e=>{const i=(e.added??[]).map((e=>this.layerExtensions.forLayer(e)));await Promise.all(i.map(this._onLayerAddedPostInitialize))})))}_onLayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(i){u.error({message:`Error occurred while initializing layer extension for layer '${e.title??e.layer.id??e.id}'.`,error:i})}};async _onDestroy(){await Promise.all(this.layerExtensions.toArray().map((e=>e.destroy()))),await super._onDestroy()}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.layerExtensions}_isSupportedLayer(e){return s(e)}_createLayerExtensionCollection(){return new GroupLayerExtensionCollection(this)}_createLayerListSettings(e){return new x(e,this)}};_=e([t],_);export{_ as GroupLayerExtension};let x=class extends h{get _layerSupportsHideChildren(){return!0}get _esriLayer(){return this._extension.layer}get _listModePath(){return"layer.listMode"}get _supportsChildren(){return!0}};x=e([t],x);export class GroupLayerExtensionCollection extends c{get _mapExtension(){return this._parent.mapExtension}constructor(e){super(e,"layer.layers")}add(e,i){return a("layerX",e).isNotMissing(),e.parentLayerExtension&&e.parentLayerExtension!==this._parent&&e.parentLayerExtension.layerExtensions.remove(e),e._setParentLayerExtension(this._parent),super.add(e,i)}_onAdded(e){super._onAdded(e),e._setParentLayerExtension(this._parent)}_onRemoved(e){super._onRemoved(e),e._setParentLayerExtension(void 0)}}
1
+ import{__decorate as e}from"tslib";import i from"@arcgis/core/core/Collection";import{serializable as t}from"../support/Serializable.js";import{notifyChange as s,onWatch as r,watch as a,watchEach as n}from"../support/observableUtils.js";import{isGroupLayer as o,layersAreEquivalent as l}from"../utilities/_layers.js";import{checkArg as y}from"../utilities/checkArg.js";import{find as p}from"../utilities/iterable.js";import{getLogger as d}from"../utilities/log.js";import{onCollectionPropertyChange as c}from"../utilities/watch.js";import{_assignLayerExtensions as h,LayerExtension as u}from"./_LayerExtension.js";import{ExtensionBaseLayerListSettings as _}from"./support/LayerListSettings.js";import{LayerExtensionCollectionBase as x}from"./support/_LayerExtensionCollection.js";const m=d("GroupLayerExtension");let f=class extends u{_layerExtensions;_visibilityModeField;get layer(){return super.layer}get layerExtensions(){return this._layerExtensions}get supportsSublayers(){return!0}get visibilityMode(){return this.layer?this.layer.visibilityMode:this._visibilityModeField||"independent"}set visibilityMode(e){this._visibilityModeField=e,this.layer&&(this.layer.visibilityMode=e)}get effectiveFullExtent(){return this.layerExtensions.initializedItems.length?this.layerExtensions.initializedItems.toArray().map((e=>e.layer.fullExtent)).reduce(((e,i)=>e?i?e.clone().union(i):e:i)):void 0}get effectiveMinScale(){const e=this.layerExtensions.initializedItems.map((e=>e.effectiveMinScale||1/0)).toArray(),i=Math.max(...e);return isFinite(i)?i:0}get effectiveMaxScale(){const e=this.layerExtensions.initializedItems.map((e=>e.effectiveMaxScale)).toArray(),i=Math.min(...e);return isFinite(i)?i:0}constructor(e){super(e),this._layerExtensions=this._createLayerExtensionCollection(),r(this,"effectiveMinScale",(()=>n(this.layerExtensions,"[].effectiveMinScale",(()=>s(this,"effectiveMinScale")),{sync:!0}))),r(this,"effectiveMaxScale",(()=>n(this.layerExtensions,"[].effectiveMaxScale",(()=>s(this,"effectiveMaxScale")),{sync:!0}))),a(this,"layer",(()=>{this.layer&&void 0!==this._visibilityModeField&&(this.layer.visibilityMode=this._visibilityModeField)}))}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();return!e||this.dynamicallyAddedLayer||(e.layers=this.layerExtensions.toArray().filter((e=>e.layer)).map((e=>e._getProjectWebmapJSON()))),e}_setMapExtension(e){this.mapExtension!==e&&(super._setMapExtension(e),this._layerExtensions.onMapExtensionChanged())}async _switchLayer(e){const i=new Map;this.layer&&this.layer.layers.forEach((e=>{i.set(e,this.layerExtensions.forLayer(e))})),await super._switchLayer(e);const t=[];if(this.layer)for(const e of this.layer.layers.toArray()){const s=p(i.entries(),(([i])=>l(i,e)));s&&t.push((async()=>{const i=s[1];await i._switchLayer(e),this.layerExtensions._register(i)})())}this.isInitialized&&t.push(this._initializeChildren()),await Promise.all(t)}_getSerializableProperties(){const e=super._getSerializableProperties(),i={...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"GroupLayer"}},layerExtensions:{serializeModes:["initial","project"],deserialize:e=>{h(this.layerExtensions,e)}},visibilityMode:{...this._toPropertyDef(e.visibilityMode),isDefault:()=>void 0===this._visibilityModeField}};return delete i.visibilityMode.default,i}async _onInitialize(){await super._onInitialize(),this.layer.layers||(this.layer.layers=new i),this._layerExtensions.onParentInitialized()}async _postInitialize(){await super._postInitialize(),this._watchHandles.push(c(this,"layer.layers",(async e=>{const i=(e.added??[]).map((e=>this.layerExtensions.forLayer(e)));await Promise.all(i.map(this._onLayerAddedPostInitialize))})))}_onLayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(i){m.error({message:`Error occurred while initializing layer extension for layer '${e.title??e.layer.id??e.id}'.`,error:i})}};async _onDestroy(){await Promise.all(this.layerExtensions.toArray().map((e=>e.destroy()))),await super._onDestroy()}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.layerExtensions}_isSupportedLayer(e){return o(e)}_createLayerExtensionCollection(){return new GroupLayerExtensionCollection(this)}_createLayerListSettings(e){return new E(e,this)}};f=e([t],f);export{f as GroupLayerExtension};let E=class extends _{get _layerSupportsHideChildren(){return!0}get _esriLayer(){return this._extension.layer}get _listModePath(){return"layer.listMode"}get _supportsChildren(){return!0}};E=e([t],E);export class GroupLayerExtensionCollection extends x{get _mapExtension(){return this._parent.mapExtension}constructor(e){super(e,"layer.layers")}add(e,i){return y("layerX",e).isNotMissing(),e.parentLayerExtension&&e.parentLayerExtension!==this._parent&&e.parentLayerExtension.layerExtensions.remove(e),e._setParentLayerExtension(this._parent),super.add(e,i)}_onAdded(e){super._onAdded(e),e._setParentLayerExtension(this._parent)}_onRemoved(e){super._onRemoved(e),e._setParentLayerExtension(void 0)}}
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import{layerToJson as r}from"../json/LayerJson.js";import{serializable as i}from"../support/Serializable.js";import{ReadOnlyCollection as a}from"../utilities/ReadOnlyCollection.js";import{isImageryLayer as s}from"../utilities/_layers.js";import{getAllFieldInfos as l}from"../utilities/esri.js";import{LayerExtension as n,LayerExtensionSchema as o}from"./_LayerExtension.js";import{ArrayWrappedCollection as p}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as u}from"./support/PopupTemplateFeatureSettings.js";const y="Raster.";let d=class extends n{get hasFeatures(){return!0}get capabilities(){return this._layerCapabilities?this._layerCapabilities:this._capabilities()}get layer(){return super.layer}includeCatalogItems=!0;get hasRasterAttributeTable(){return this._hasRasterAttributeTable}get canChangeDefinitionExpression(){return!0}_layerCapabilities;_hasRasterAttributeTable;_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{layerDefinition:t}=r(this.layer),{definitionExpression:i,drawingInfo:a}=t??{};return i&&(e.layerDefinition={...e.layerDefinition,definitionExpression:i}),a&&(e.layerDefinition={...e.layerDefinition,drawingInfo:a}),e}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISImageServiceLayer"}},includeCatalogItems:{serializeModes:["initial"],default:!0}}}async _onInitialize(){await super._onInitialize();const e=await this.requestHelper.request(this.layer.url,{query:{f:"json"}});if(!e?.data)throw new Error(`Response to request for url ${this.layer.url} was invalid`);const{data:t}=e;if(t.capabilities){const e=t.capabilities.split(",").map((e=>e.trim()));this._layerCapabilities={supportsAdd:e.includes("Create"),supportsUpdate:e.includes("Update"),supportsDelete:e.includes("Delete"),supportsEditing:e.includes("Editing"),supportsQuery:e.includes("Catalog"),supportsStandardizedQueries:t.useStandardizedQueries,supportsAttachmentEditing:!1}}this._hasRasterAttributeTable=t.hasRasterAttributeTable}async _applyPortalItemProperties(e){if("Image Service"!==e.type)throw new Error(`Cannot create Imagery Layer from Portal item that has type: ${e.type}`);if(e.typeKeywords.includes("Elevation 3D Layer"))throw new Error("Cannot create Imagery Layer from Portal item that references an Elevation layer");e.url&&(this.layer.url=e.url)}_isSupportedLayer(e){return s(e)}_createSchema(){return new f(this)}_createFeatureSettings(){return new c(this)}};d=e([i],d);export{d as ImageryLayerExtension};let c=class extends u{get _defaultOutFields(){if(null==this.popupTemplate)return["*"];const e=l(this.popupTemplate),t=this.featureSource?.schema?.primaryKeyField;if(e&&t){return super._defaultOutFields.filter((e=>!e.startsWith(y)))}return["*"]}};c=e([i],c);let f=class extends o{_fieldsCollection;constructor(e){super(e),this._fieldsCollection=new a(new p({parent:e,targetProperty:"layer",arrayProperty:"fields"})),this.notifyChange("_fields")}get _fields(){return new a(this._fieldsCollection?.concat(this._rasterFields)??new t)}get _rasterFields(){const{layer:e}=this._layerExtension;return"loaded"!==this._layerExtension.layer?.loadStatus?new t:new t(e?.rasterFields?.filter((e=>e.name.startsWith(y))))}_getPropertyBindings(){return{primaryKeyField:{property:"objectIdField",readonly:!0},spatialReference:{property:"spatialReference",readonly:!0},geometryType:{value:"polygon"}}}};f=e([i],f);
1
+ import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import{layerToJson as r}from"../json/LayerJson.js";import{serializable as i}from"../support/Serializable.js";import{notifyChange as a,watch as s}from"../support/observableUtils.js";import{ReadOnlyCollection as l}from"../utilities/ReadOnlyCollection.js";import{isImageryLayer as o}from"../utilities/_layers.js";import{getAllFieldInfos as n}from"../utilities/esri.js";import{LayerExtension as p,LayerExtensionSchema as u}from"./_LayerExtension.js";import{ArrayWrappedCollection as y}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as d}from"./support/PopupTemplateFeatureSettings.js";const c="Raster.";let f=class extends p{get hasFeatures(){return!0}get capabilities(){return this._layerCapabilities?this._layerCapabilities:this._capabilities()}get layer(){return super.layer}includeCatalogItems=!0;get hasRasterAttributeTable(){return this._hasRasterAttributeTable}get canChangeDefinitionExpression(){return!0}_layerCapabilities;_hasRasterAttributeTable;_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{layerDefinition:t}=r(this.layer),{definitionExpression:i,drawingInfo:a}=t??{};return i&&(e.layerDefinition={...e.layerDefinition,definitionExpression:i}),a&&(e.layerDefinition={...e.layerDefinition,drawingInfo:a}),e}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISImageServiceLayer"}},includeCatalogItems:{serializeModes:["initial"],default:!0}}}async _onInitialize(){await super._onInitialize();const e=await this.requestHelper.request(this.layer.url,{query:{f:"json"}});if(!e?.data)throw new Error(`Response to request for url ${this.layer.url} was invalid`);const{data:t}=e;if(t.capabilities){const e=t.capabilities.split(",").map((e=>e.trim()));this._layerCapabilities={supportsAdd:e.includes("Create"),supportsUpdate:e.includes("Update"),supportsDelete:e.includes("Delete"),supportsEditing:e.includes("Editing"),supportsQuery:e.includes("Catalog"),supportsStandardizedQueries:t.useStandardizedQueries,supportsAttachmentEditing:!1}}this._hasRasterAttributeTable=t.hasRasterAttributeTable}async _applyPortalItemProperties(e){if("Image Service"!==e.type)throw new Error(`Cannot create Imagery Layer from Portal item that has type: ${e.type}`);if(e.typeKeywords.includes("Elevation 3D Layer"))throw new Error("Cannot create Imagery Layer from Portal item that references an Elevation layer");e.url&&(this.layer.url=e.url)}_isSupportedLayer(e){return o(e)}_createSchema(){return new h(this)}_createFeatureSettings(){return new m(this)}};f=e([i],f);export{f as ImageryLayerExtension};let m=class extends d{get _defaultOutFields(){if(null==this.popupTemplate)return["*"];const e=n(this.popupTemplate),t=this.featureSource?.schema?.primaryKeyField;if(e&&t){return super._defaultOutFields.filter((e=>!e.startsWith(c)))}return["*"]}};m=e([i],m);let h=class extends u{_fieldsCollection;constructor(e){super(e),this._fieldsCollection=new l(new y({parent:e,targetProperty:"layer",arrayProperty:"fields"})),a(this,"_fields");const t=s(this._layerExtension,"layer.loadStatus",(()=>{"loaded"===this._layerExtension.layer?.loadStatus&&(a(this,"_fields"),t.remove())}),{sync:!0})}get _fields(){return new l(this._fieldsCollection?.concat(this._rasterFields())??new t)}_getPropertyBindings(){return{primaryKeyField:{property:"objectIdField",readonly:!0},spatialReference:{property:"spatialReference",readonly:!0},geometryType:{value:"polygon"}}}_rasterFields(){const{layer:e}=this._layerExtension;return"loaded"!==this._layerExtension.layer?.loadStatus?new t:new t(e?.rasterFields?.filter((e=>e.name.startsWith(c))))}};h=e([i],h);
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import r from"@arcgis/core/config";import t from"@arcgis/core/core/Collection";import i from"@arcgis/core/geometry/SpatialReference";import a from"@arcgis/core/layers/support/Field";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{Schema as l}from"../data/Schema.js";import{layerToJson as n}from"../json/LayerJson.js";import{translate as o}from"../locale/language.js";import{serializable as p}from"../support/Serializable.js";import{ReadOnlyCollection as y}from"../utilities/ReadOnlyCollection.js";import{isKMLLayer as c}from"../utilities/_layers.js";import{checkArg as m}from"../utilities/checkArg.js";import{toAbsoluteUri as u}from"../utilities/uri.js";import{LayerExtension as d}from"./_LayerExtension.js";import{SublayerExtension as h}from"./_SublayerExtension.js";import{SublayerExtensionCollectionBase as b}from"./support/_SublayerExtensionCollection.js";export const DEFAULT_KML_UTILITY="https://utility.arcgis.com/sharing/kml";const g="SublayerExtension collection for KMLLayerExtension is readonly";let _=class extends d{get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get hasFeatures(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}get _layerSupportsHideChildren(){return!1}get _graphics(){return this._layerView?this._layerView.allVisiblePoints.concat(this._layerView.allVisiblePolygons).concat(this._layerView.allVisiblePolylines).toArray():[]}_createSublayerExtension(e){return h.factory.create(e,"KMLSublayer")}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{visibleFolders:r}=n(this.layer);return e.visibleFolders=r,e}async _applyPortalItemProperties(e){if("KML"!==e.type)throw new Error(`Cannot create KML Layer from Portal item that has type: ${e.type}`);this.layer.url=e.url??u("data",`${e.itemUrl}/`)}_capabilities(){return{...super._capabilities(),supportsStandardizedQueries:!0}}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"KML"}}}}_createSchema(){return new x}_isSupportedLayer(e){return c(e)}async _initializeLayer(){r.kmlServiceUrl||(r.kmlServiceUrl=DEFAULT_KML_UTILITY)}_createSublayerExtensionCollection(){return new f(this)}};_=e([p],_);export{_ as KMLLayerExtension};class f extends b{_layerExtension;constructor(e){super(e,"layer.sublayers"),this._layerExtension=e}add(e,r){if(m("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.layer.sublayers&&!this._parent.layer.sublayers.includes(e.sublayer))throw new s(g);return super.add(e,r)}removeAt(e){throw new s(g)}reorder(e,r){throw new s(g)}reverse(){throw new s(g)}sort(e){throw new s(g)}splice(e,r,...t){throw new s(g)}_createClone(){return new f(this._layerExtension)}_createSublayerExtension(e){return this._parent._createSublayerExtension(e)}}const w="This schema property is read-only.";let x=class extends l{_fieldCollection;constructor(){super(),this._fieldCollection=this._createFieldCollection(),this.notifyChange("_fields")}get spatialReference(){return i.WGS84}set spatialReference(e){throw new s(w)}get primaryKeyField(){return"id"}set primaryKeyField(e){throw new s(w)}get _fields(){return this._fieldCollection}_createFieldCollection(){const e=new t;return e.add(new a({name:"id",alias:o("gcx.api.mapping.kml-sublayer-extension.schema.id"),editable:!1,type:"oid"})),e.add(new a({name:"name",alias:o("gcx.api.mapping.kml-sublayer-extension.schema.name"),editable:!1,type:"string"})),e.add(new a({name:"description",alias:o("gcx.api.mapping.kml-sublayer-extension.schema.description"),editable:!1,type:"string"})),e.add(new a({name:"visibility",alias:o("gcx.api.mapping.kml-sublayer-extension.schema.visibility"),editable:!1,type:"integer"})),e.add(new a({name:"balloonStyleText",alias:o("gcx.api.mapping.kml-sublayer-extension.schema.balloonStyleText"),editable:!1,type:"string"})),e.add(new a({name:"styleUrl",alias:o("gcx.api.mapping.kml-sublayer-extension.schema.styleUrl"),editable:!1,type:"string"})),new y(e)}};x=e([p],x);
1
+ import{__decorate as e}from"tslib";import r from"@arcgis/core/config";import t from"@arcgis/core/core/Collection";import i from"@arcgis/core/geometry/SpatialReference";import a from"@arcgis/core/layers/support/Field";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{Schema as l}from"../data/Schema.js";import{layerToJson as n}from"../json/LayerJson.js";import{translate as o}from"../locale/language.js";import{serializable as p}from"../support/Serializable.js";import{notifyChange as y}from"../support/observableUtils.js";import{ReadOnlyCollection as c}from"../utilities/ReadOnlyCollection.js";import{isKMLLayer as m}from"../utilities/_layers.js";import{checkArg as u}from"../utilities/checkArg.js";import{toAbsoluteUri as d}from"../utilities/uri.js";import{LayerExtension as b}from"./_LayerExtension.js";import{SublayerExtension as h}from"./_SublayerExtension.js";import{SublayerExtensionCollectionBase as g}from"./support/_SublayerExtensionCollection.js";export const DEFAULT_KML_UTILITY="https://utility.arcgis.com/sharing/kml";const _="SublayerExtension collection for KMLLayerExtension is readonly";let f=class extends b{get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get hasFeatures(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}get _layerSupportsHideChildren(){return!1}get _graphics(){return this._layerView?this._layerView.allVisiblePoints.concat(this._layerView.allVisiblePolygons).concat(this._layerView.allVisiblePolylines).toArray():[]}_createSublayerExtension(e){return h.factory.create(e,"KMLSublayer")}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{visibleFolders:r}=n(this.layer);return e.visibleFolders=r,e}async _applyPortalItemProperties(e){if("KML"!==e.type)throw new Error(`Cannot create KML Layer from Portal item that has type: ${e.type}`);this.layer.url=e.url??d("data",`${e.itemUrl}/`)}_capabilities(){return{...super._capabilities(),supportsStandardizedQueries:!0}}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"KML"}}}}_createSchema(){return new S}_isSupportedLayer(e){return m(e)}async _initializeLayer(){r.kmlServiceUrl||(r.kmlServiceUrl=DEFAULT_KML_UTILITY)}_createSublayerExtensionCollection(){return new w(this)}};f=e([p],f);export{f as KMLLayerExtension};class w extends g{_layerExtension;constructor(e){super(e,"layer.sublayers"),this._layerExtension=e}add(e,r){if(u("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.layer.sublayers&&!this._parent.layer.sublayers.includes(e.sublayer))throw new s(_);return super.add(e,r)}removeAt(e){throw new s(_)}reorder(e,r){throw new s(_)}reverse(){throw new s(_)}sort(e){throw new s(_)}splice(e,r,...t){throw new s(_)}_createClone(){return new w(this._layerExtension)}_createSublayerExtension(e){return this._parent._createSublayerExtension(e)}}const x="This schema property is read-only.";let S=class extends l{_fieldCollection;constructor(){super(),this._fieldCollection=this._createFieldCollection(),y(this,"_fields")}get spatialReference(){return i.WGS84}set spatialReference(e){throw new s(x)}get primaryKeyField(){return"id"}set primaryKeyField(e){throw new s(x)}get _fields(){return this._fieldCollection}_createFieldCollection(){const e=new t;return e.add(new a({name:"id",alias:o("gcx.api.mapping.kml-sublayer-extension.schema.id"),editable:!1,type:"oid"})),e.add(new a({name:"name",alias:o("gcx.api.mapping.kml-sublayer-extension.schema.name"),editable:!1,type:"string"})),e.add(new a({name:"description",alias:o("gcx.api.mapping.kml-sublayer-extension.schema.description"),editable:!1,type:"string"})),e.add(new a({name:"visibility",alias:o("gcx.api.mapping.kml-sublayer-extension.schema.visibility"),editable:!1,type:"integer"})),e.add(new a({name:"balloonStyleText",alias:o("gcx.api.mapping.kml-sublayer-extension.schema.balloonStyleText"),editable:!1,type:"string"})),e.add(new a({name:"styleUrl",alias:o("gcx.api.mapping.kml-sublayer-extension.schema.styleUrl"),editable:!1,type:"string"})),new c(e)}};S=e([p],S);
@@ -32,7 +32,7 @@ import type { GroundExtensionProperties } from "./GroundExtension.js";
32
32
  import { GroundExtension } from "./GroundExtension.js";
33
33
  import type { MapConstraintsProperties } from "./MapConstraints.js";
34
34
  import { MapConstraints } from "./MapConstraints.js";
35
- import type { LayerExtensionProperties, LayerExtension } from "./_LayerExtension.js";
35
+ import type { LayerExtension, LayerExtensionProperties } from "./_LayerExtension.js";
36
36
  import type { LayerExtensionCollection, LayerExtensionCollectionBase } from "./support/_LayerExtensionCollection.js";
37
37
  /**
38
38
  * A web map definition or reference.
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import{ArgumentError as i}from"../ArgumentError.js";import{EntityBase as s}from"../Entity.js";import{InvalidOperationError as a}from"../InvalidOperationError.js";import{isBasemapExtension as n,isBookmark as o,isGroundExtension as r,isLayerPreset as p,isMenu as h,isTableExtension as m,ItemType as l}from"../ItemType.js";import{TableExtension as d}from"../data/TableExtension.js";import{layerToParentJsonCache as b}from"../json/LayerJson.js";import{applyJsonToWebMap as c}from"../json/WebMapJson.js";import{applyJsonToWebScene as _}from"../json/WebSceneJson.js";import{LayerPreset as u}from"../layer-preset/LayerPreset.js";import{Menu as w}from"../menus/Menu.js";import{DefaultArcGISRequestHelper as E}from"../support/ArcGISRequestHelper.js";import{FormatSettings as f}from"../support/FormatSettings.js";import{InitializableCollectionProxy as x}from"../support/InitializableCollectionProxy.js";import{ReadOnlyInitializableCollection as y}from"../support/ReadOnlyInitializableCollection.js";import{serializable as M}from"../support/Serializable.js";import{WellKnownBasemap as g}from"../support/esri.js";import{ReadOnlyCollection as I}from"../utilities/ReadOnlyCollection.js";import{basemapsAreEquivalent as v,createStandardBasemap as S,getStandardBasemapId as O,isStandardBasemap as z}from"../utilities/basemaps.js";import{checkArg as A}from"../utilities/checkArg.js";import{compare as P}from"../utilities/collection.js";import{load as T}from"../utilities/esri.js";import{isGroupLayerExtension as C}from"../utilities/extensions.js";import{filter as V}from"../utilities/iterable.js";import{isWMTSLayer as k,layersAreEquivalent as B}from"../utilities/layers.js";import{getLogger as j}from"../utilities/log.js";import{getMapSpatialReference as L,isMap as N,isWebMap as R,isWebScene as W}from"../utilities/mapping.js";import{toPortalItem as H}from"../utilities/portal.js";import{parallelEach as J}from"../utilities/promise.js";import{onCollectionPropertyChange as F,onEach as q}from"../utilities/watch.js";import{BasemapExtension as G}from"./BasemapExtension.js";import{Bookmark as D}from"./Bookmark.js";import{GroundExtension as $}from"./GroundExtension.js";import{MapConstraints as U}from"./MapConstraints.js";import{_assignLayerExtensions as X}from"./_LayerExtension.js";import{LayerExtensionCollectionImpl as Y}from"./_LayerExtensionCollectionImpl.js";const K=j("MapExtension");let Q=class extends s{get webMap(){return this._webMap}get webScene(){return this._webScene}get map(){return this._currentMap}get viewMode(){return this.map?W(this.map)?"scene":"map":this.initialViewMode}get initialViewMode(){return this.webMap&&this.webScene?this._initialViewMode||"map":W(this.map)||this.webScene&&!this.webMap?"scene":"map"}set initialViewMode(e){this._initialViewMode=e}get requestHelper(){return this._requestHelper||(this._requestHelper=new E),this._requestHelper}set requestHelper(e){this._requestHelper=e}get basemapExtension(){return this._basemapExtension}set basemapExtension(e){const t=this._basemapExtension;if(t!==e)if(t&&t._setMapExtension(void 0),e){if(e._setMapExtension(this),this.isInitialized&&!e.basemap){if(e.isInitialized)throw e._setMapExtension(void 0),new a("Cannot set MapExtension.basemapExtension without a valid Esri Basemap object");e.initialize()}this._ensureIsBasemapOption(e),this.map&&e.basemap&&e.basemap!==this.map.basemap?this.map.basemap=e.basemap:this._basemapExtension=e}else this.map.basemap=void 0,this._basemapExtension=void 0}get groundExtension(){return this._groundExtension||(this.groundExtension=$.create({ground:this.map?.ground})),this._groundExtension}set groundExtension(e){if(!e)throw new a("Cannot set map.ground to undefined");const t=this._groundExtension;t!==e&&(t&&t._setMapExtension(void 0),e._setMapExtension(this),e._resolveGround(),e.ground?(this._groundExtensions.set(e.ground,e),this.map&&e.ground!==this.map.ground?this.map.ground=e.ground:this._groundExtension=e):this._groundExtension=e)}get basemapOptions(){return this._basemapOptions}get bookmarks(){return this._bookmarks}get initialBasemapExtension(){return this._initialBasemapExtension}get initialLayerPreset(){return this._initialLayerPreset}set initialLayerPreset(e){if(!e)return void(this._initialLayerPreset=void 0);const t=p(e)?e:new u(e);this._initialLayerPreset=t}get _spatialReference(){return L(this.map)}get webMapItemTitle(){if(this._webMapItem)return this._webMapItem.title}get webSceneItemTitle(){if(this._webSceneItem)return this._webSceneItem.title}get title(){return this._title?this._title:this._webMapItem&&"map"===this.viewMode?this.webMapItemTitle:this._webSceneItem&&"scene"===this.viewMode?this.webSceneItemTitle:void 0}set title(e){this._title=e}formatSettings;constraints;onClick;onHover;onHoverEnd;onInitialized;onViewpointChanged;get contextMenu(){return this._contextMenu}set contextMenu(e){this._contextMenu=e,e&&this.isInitialized&&!e.isInitialized&&(async()=>{try{await e.initialize()}catch(e){e instanceof Error&&K.error({message:"An error occurred while initializing context menu.",error:e})}})()}isSwitchingMap=!1;_layerViews=new t;get _allLayerViews(){const e=i=>{const s=[i];return t.isCollection(i.sublayerViews)?s.push(...i.sublayerViews.toArray().flatMap(e)):t.isCollection(i.layerViews)&&s.push(...i.layerViews.toArray().flatMap(e)),s};return this._layerViews.toArray().flatMap(e)}get layerExtensions(){return this._layerExtensions}tableExtensions;allLayerExtensions;_itemType=l.MAP_EXTENSION;_map;_scene;_deserializedMapPromise;_deserializedViewMode;_deserializedViewModePromise;_deferredProperties;_currentMap;_requestHelper;_basemapExtension;_groundExtension;_basemapOptions;_groundExtensions;_bookmarks;_layerExtensions;_webMap;_webMapItem;_webScene;_webSceneItem;_title;_initialViewMode;_initialLayerPreset;_initialBasemapExtension;_skipBasemapOptions=!1;_createScenePromise;_createMapPromise;_contextMenu;constructor(e){super(e);let s={...e};this._basemapOptions=new Z(this),this._groundExtensions=new WeakMap,this._layerExtensions=this._createLayerExtensionCollection(),this.tableExtensions=this._createTableExtensionCollection(),this.formatSettings=this._createFormatSettings(),this._bookmarks=new t,this.constraints=new U,this.watch(["_map","_scene"],(e=>{e&&(q(e.layers,"layerview-create",(e=>{this._layerViews.add(e.layerView)})),q(e.layers,"layerview-destroy",(e=>{this._layerViews.remove(e.layerView)})))}));const{webMap:a,webScene:n,initialViewMode:o,map:r,basemapOptions:p}=s;if(this._webMap=a,this._webScene=n,this._webMapItem=ie(a),this._webSceneItem=ie(n),this.initialViewMode=o,W(r)&&n)throw new i("Cannot specify webScene property if map is initialized to a WebScene instance.");if(N(r)&&a)throw new i("Cannot specify webMap property if map is initialized to a 2D Map instance.");if(W(r)||R(r)||N(r))this.assignProperties({basemapOptions:p}),this._skipBasemapOptions=!!p;else{const{layerExtensions:e,tableExtensions:t,groundExtension:i,basemapOptions:a,basemapExtension:n,...o}=s;this._deferredProperties={layerExtensions:e,tableExtensions:t,groundExtension:i,basemapOptions:a,basemapExtension:n},s=o,a&&(this._skipBasemapOptions=!0)}this._initMapFromProperties(s),this.watch("map.basemap",(()=>this._onBasemapChange()),!0),this.watch("map.ground",(()=>this._onGroundChange()),!0),this.allLayerExtensions=new te(this),this.map?.basemap&&this._onBasemapChange()}getLayerExtensionsForView(e=this.viewMode){return(("map"===e?this._map:this._scene)?.layers.toArray()??[]).map((e=>this._layerExtensions._forLayer(e))).filter((e=>!e.dynamicallyAddedLayer))}getAllFeatureSources(e=()=>!0){const t=[],i=a=>{a.hasFeatures&&t.push(a);for(const t of a.sublayerExtensions.initializedItems.filter(e).toArray())s(t);if(C(a))for(const t of a.layerExtensions.initializedItems.filter(e).toArray())i(t)},s=i=>{t.push(i);for(const t of i.sublayerExtensions.initializedItems.filter(e).toArray())s(t)};for(const t of this.layerExtensions.initializedItems.filter(e).toArray())i(t);for(const i of this.tableExtensions.initializedItems.filter(e).toArray())t.push(i);if(this.basemapExtension){for(const t of this.basemapExtension.baseLayerExtensions.initializedItems.filter(e).toArray())i(t);for(const t of this.basemapExtension.referenceLayerExtensions.initializedItems.filter(e).toArray())i(t)}return t}isSupportedViewMode(e){return e===this.viewMode||!(!this.webMap&&!this.webScene)&&("scene"===e?!!this.webScene:!!this.webMap)}async switchViewMode(e){if(A("viewMode",e).isNotMissing().satisfies((e=>this.isSupportedViewMode(e)),"Unsupported view mode."),this.viewMode===e)return;let t;"scene"===e?(await this._createScene(),t=this._scene):(await this._createMap(),t=this._map),t.basemap=this.map?.basemap,await this.switchMap(t),this.notifyChange("viewMode"),this.notifyChange("title")}async switchMap(e){if(A("newMap",e).isNotMissing(),e===this.map)return;if(!this.map)return void this._setMap(e);this.isSwitchingMap=!0,this.isInitialized&&await ne(e);const t=new Map(this.map.layers.map((e=>[e,this.layerExtensions.forLayer(e)]))),i=new Map(this.map.tables.map((e=>[e,this.tableExtensions.forTable(e)]))),{basemapExtension:s}=this;this._setMap(e),this._updateBookmarks();const a=[];for(const e of this.map.layers.toArray()){const i=[...V(t.entries(),(([t])=>B(t,e)))];if(1===i.length){const[t]=i;a.push((async()=>{const i=t[1];await i._switchLayer(e),this._layerExtensions._register(i)})())}else{const t=this._layerExtensions._forLayer(e);t&&t.layer!==e&&a.push(t._switchLayer(e))}}for(const e of this.map.tables.toArray()){const t=[...V(i.entries(),(([t])=>B(t,e)))];if(1===t.length){const[i]=t;a.push((async()=>{const t=i[1];await t._switchTable(e),this.tableExtensions.add(t)})())}else{const t=this.tableExtensions.forTable(e);t&&t.table!==e&&a.push(t._switchTable(e))}}this.map.basemap&&s&&v(this.map.basemap,s.basemap)&&a.push((async()=>{await s._switchBasemap(this.map.basemap),this.basemapExtension=s})()),await Promise.all(a),this.isInitialized&&await this._initializeChildren(),this.isSwitchingMap=!1}on(e,t){return super.on(e,t)}async setWebMap(e){if(!e&&this.webMap&&!this.webScene)throw new a("Cannot unset both webMap and webScene.");const t=this._map?.basemap;this._webMap=e,this._map=void 0,this._createMapPromise=void 0,this._webMapItem=ie(e),await T(this._webMapItem),"map"===this.viewMode&&(e?(this._basemapOptions.isExplicitlyModified||this._basemapOptions.removeAllInternal(),await this._createMap(),await this.switchMap(this._map),this._cleanPreviousBasemapOptions(t),await this._createStandardBasemapOptions(),this._basemapOptions.reorderInternal(this.basemapExtension,0),this._initialBasemapExtension=this.basemapExtension):(this._cleanPreviousBasemapOptions(t),await this.switchViewMode("scene"))),this.notifyChange("webMap"),this.notifyChange("initialViewMode"),this.notifyChange("title")}async setWebScene(e){if(!e&&this.webScene&&!this.webMap)throw new a("Cannot unset both webMap and webScene.");const t=this._scene?.basemap;this._webScene=e,this._scene=void 0,this._createScenePromise=void 0,this._webSceneItem=ie(e),await T(this._webSceneItem),"scene"===this.viewMode&&(e?(this._basemapOptions.isExplicitlyModified||this._basemapOptions.removeAllInternal(),await this._createScene(),await this.switchMap(this._scene),this._cleanPreviousBasemapOptions(t),await this._createStandardBasemapOptions(),this._basemapOptions.reorderInternal(this.basemapExtension,0),this._initialBasemapExtension=this.basemapExtension):(this._cleanPreviousBasemapOptions(t),await this.switchViewMode("map"))),this.notifyChange("webScene"),this.notifyChange("initialViewMode"),this.notifyChange("title")}getDefaults(){const e=super.getDefaults();return e.initialViewMode="map",e}async _createScene(){if(!this._scene&&this.webScene)return this._createScenePromise=this._createScenePromise??(async()=>{const e=(await import("@arcgis/core/WebScene")).default;se(this.webScene)?(this._webSceneItem.type="Web Scene",this._scene=new e({portalItem:this._webSceneItem})):this._scene=e.fromJSON(this.webScene)})()}async _createMap(){if(!this._map&&this.webMap)return this._createMapPromise=this._createMapPromise??(async()=>{const e=(await import("@arcgis/core/WebMap")).default;se(this.webMap)?(this._webMapItem.type="Web Map",this._map=new e({portalItem:this._webMapItem})):this._map=e.fromJSON(this.webMap)})()}_getSerializableProperties(){return{...super._getSerializableProperties(),layerExtensions:{serializeModes:["initial","project"],deserialize:e=>{if(this.map&&e){const t="map"===this.viewMode,i=(t?this._scene:this._map)?.layers.toArray()??[],s=e.filter((e=>!i.includes(e.layer)&&!i.some((t=>e.layer&&B(t,e.layer)))));X(this.layerExtensions,s)}},serialize:e=>{if(this._deferredProperties?.layerExtensions)return this._deferredProperties.layerExtensions;{const t="map"===this.viewMode,i=(t?this._map:this._scene)?.layers.toArray();let s=(t?this._scene:this._map)?.layers.toArray()??[];return s=s.filter((e=>!i.find((t=>B(t,e))))),this.layerExtensions.concat(s.map((e=>this._layerExtensions._forLayer(e)))).filter((t=>"initial"!==e||!t.dynamicallyAddedLayer)).toArray()}}},tableExtensions:{serializeModes:["initial","project"],deserialize:e=>{this.map?P(this.tableExtensions,e,{onNew:(e,t)=>{this.tableExtensions.add(m(e)?e:d.create(e),t)},onMatch:(e,t,i,s)=>{m(t)||e.assignProperties(t),i!==s&&this.tableExtensions.reorder(e,s)},equals:(e,t)=>m(t)?t===e:!!d._matchesRef(e,t.table)||e.id===t.id}):this._deferredProperties={...this._deferredProperties,tableExtensions:e}},serialize:()=>this._deferredProperties?.tableExtensions?this._deferredProperties?.tableExtensions:this.tableExtensions.toArray()},basemapExtension:{serializeModes:["project"],deserialize:e=>{if(this.map)if(e)if(n(e))this.basemapExtension=e;else{if(this.basemapExtension)return this.basemapExtension.assignPropertiesAsync(e);this.basemapExtension=G.create(e)}else this.basemapExtension=void 0;else this._deferredProperties={...this._deferredProperties,basemapExtension:e}},serialize:()=>this._deferredProperties?.basemapExtension?this._deferredProperties?.basemapExtension:this.basemapExtension},basemapOptions:{serializeModes:["initial"],deserialize:e=>{this._skipBasemapOptions?this._skipBasemapOptions=!1:(P(this.basemapOptions,e,{onNew:(e,t)=>{this.basemapOptions.add(n(e)?e:G.create(e),t)},onMatch:(e,t,i,s)=>{n(t)||e.assignProperties(t),i!==s&&this.basemapOptions.reorder(e,s)},onMissing:e=>{this.basemapOptions.remove(e)},equals:(e,t)=>{if(n(t))return t===e;if(e.id&&t.id)return e.id===t.id;{const i=e.toJSON();return v(i.basemap,t.basemap||t.baseMap)}}}),this.basemapExtension&&this._ensureIsBasemapOption(this.basemapExtension),this.isInitialized&&J(this.basemapOptions.toArray(),(e=>e._createBackingBasemap())))},serialize:()=>this._deferredProperties?.basemapOptions?this._deferredProperties?.basemapOptions:this.basemapOptions.toArray()},groundExtension:{serializeModes:["initial"],deserialize:e=>{if(this.map){if(!r(e))return this.groundExtension.assignPropertiesAsync(e);this.groundExtension=e}else this._deferredProperties={...this._deferredProperties,groundExtension:e}},serialize:()=>this._deferredProperties?.groundExtension?this._deferredProperties?.groundExtension:this.groundExtension},bookmarks:{serialize:()=>this.bookmarks.map((e=>e.toJSON())).toArray(),deserialize:e=>{this.bookmarks.addMany(e.map((e=>o(e)?e:new D(e))))}},webMap:{serializeModes:["initial"],deserialize:!1},webScene:{serializeModes:["initial"],deserialize:!1},initialLayerPreset:"initial",initialViewMode:{serializeModes:["initial","project"],serialize:e=>"project"===e?this.viewMode:"scene"!==this.initialViewMode||!this.webScene&&this.webMap?"map":"scene",deserialize:e=>{this.viewMode!==e&&(this._deserializedViewMode=e),this._initialViewMode=e},isDefault:(e,t)=>"project"!==t&&"map"===e},formatSettings:"initial",constraints:"initial",title:"initial",onClick:"initial",onHover:"initial",onHoverEnd:"initial",onInitialized:"initial",onViewpointChanged:"initial",contextMenu:{serializeModes:["initial"],deserialize:e=>{e?h(e)?this.contextMenu=e:this.contextMenu?this.contextMenu.assignProperties(e):this.contextMenu=w.create(e):this.contextMenu=void 0}},map:{serializeModes:["project"],serialize:()=>{b.lookup=new WeakMap;const e=this.layerExtensions.toArray().filter((e=>e.layer)).map((e=>e._getProjectWebmapJSON())),t=this.tableExtensions.toArray().filter((e=>e.table)).map((e=>({id:e.table.id,title:e.table.title})));return b.lookup=void 0,e.length>0||t.length>0?{operationalLayers:e,tables:t}:{}},deserialize:e=>{if(!this.map)throw new i("Cannot specify JSON object for the 'map' property. It must be an ArcGIS API Map instance. To specify JSON, use 'webMap' or 'webScene' instead.");if(N(e)||R(e)||W(e)){if(e!==this.map)throw new i("properties.map","Property 'map' is read-only.")}else this._deserializedMapPromise=(async()=>{this._deserializedViewMode&&this.webMap&&this.webScene&&(this._deserializedViewModePromise=this.switchViewMode(this._deserializedViewMode),await this._deserializedViewModePromise,this._deserializedViewMode=void 0,this._deserializedViewModePromise=void 0),await this._applyMapProperties(e,this.map),this._deserializedMapPromise=void 0})()}},requestHelper:{serialize:!1}}}async _applyMapProperties(e,t,i){await J(this.basemapOptions.toArray(),(e=>e._createBackingBasemap()));let s=e;const a=this.basemapOptions.find((e=>v(e.basemap,s.baseMap)));a&&(t.basemap=a.basemap,s={...s,baseMap:{...s.baseMap,title:t.basemap.title}}),W(t)?await _(s,t,i):await c(s,t,i)}_createFormatSettings(){return new f}_createLayerExtensionCollection(){return new Y(this)}_createTableExtensionCollection(){return new ee(this)}async _onInitialize(){await super._onInitialize();const{basemapOptions:e,basemapExtension:t,webMap:i,webScene:s,...a}=this._deferredProperties??{};if(this.map||("scene"===this.initialViewMode?(await this._createScene(),this._setMap(this._scene)):(await this._createMap(),this._setMap(this._map))),this._webMapItem||this._webSceneItem?(await Promise.all([ne(this.map),T(this._webMapItem),T(this._webSceneItem)]),ae(this._webMapItem,"webMap","Web Map"),ae(this._webSceneItem,"webScene","Web Scene")):await ne(this.map),t&&(!n(t)&&t.basemap?this.basemapExtension=G.create(t):await this.assignPropertiesAsync({basemapExtension:t}),await this.basemapExtension._createBackingBasemap()),e){const t=e.find((e=>n(e)&&v(this.map.basemap,e.toJSON().basemap)));if(t){const e=t.toJSON().basemap?.id??t.basemap?.id,i=t.toJSON().basemap?.title;await t._switchBasemap(this.map.basemap),this.basemapExtension=t,e&&(this.map.basemap.id=e),i&&(this.map.basemap.title=i)}await this.assignPropertiesAsync({basemapOptions:e})}await this.assignPropertiesAsync(a),this._deferredProperties=void 0,this._initialBasemapExtension=this.basemapExtension,this._updateBookmarks();for(const e of this.layerExtensions.toArray())await e._createBackingLayer();await Promise.all(this.tableExtensions.map((e=>e._createBackingTable())).toArray())}async _postInitialize(){await super._postInitialize(),await this._createStandardBasemapOptions(),await J(this.basemapOptions.toArray(),(e=>e._createBackingBasemap())),this.initialLayerPreset&&await this.initialLayerPreset.applyTo(this)}*_initializableChildCollections(){yield*super._initializableChildCollections();const e=new t(this.layerExtensions.filter((e=>!!e.layer)));e.remove=e=>this.layerExtensions.remove(e);const i=new t(this.tableExtensions.filter((e=>!!e.table)));if(i.remove=e=>this.tableExtensions.remove(e),yield e,yield i,this.basemapExtension){const e=new t;e.add(this.basemapExtension),yield e}const s=new t;s.add(this.groundExtension),yield s}_initMapFromProperties(e){const t=e.map;N(t)||R(t)||W(t)?this._setMap(t):"scene"===this.initialViewMode?e.webScene&&!se(e.webScene)&&(this._deferredProperties={webScene:e.webScene,...this._deferredProperties}):e.webMap&&!se(e.webMap)&&(this._deferredProperties={webMap:e.webMap,...this._deferredProperties})}_setMap(e){W(e)?this._scene=e:this._map=e,this._currentMap=e,this.basemapExtension?.basemap&&!e.basemap&&(e.basemap=this.basemapExtension.basemap),this.groundExtension?.ground&&!e.ground&&(e.ground=this.groundExtension.ground),this.notifyChange("map")}_onBasemapChange(){if(this._basemapExtension){if(this.basemapExtension.basemap==this.map.basemap)return;this._basemapExtension._setMapExtension(void 0)}if(this.map.basemap){let e=this.basemapOptions.find((e=>this.map.basemap===e.basemap));if(!e){const t=this.basemapOptions.find((e=>v(e.basemap,this.map.basemap)));t?(e=t,e._switchBasemap(this.map.basemap)):(e=G.create({basemap:this.map.basemap}),this._basemapOptions.addInternal(e,0))}e.mapExtension!==this&&e._setMapExtension(this),this._basemapExtension=e}else this._basemapExtension=void 0;this.notifyChange("basemapExtension")}_onGroundChange(){if(this._groundExtension){if(this.map.ground&&this.groundExtension.ground===this.map.ground)return void(this._groundExtensions.has(this.map.ground)||this._groundExtensions.set(this.map.ground,this.groundExtension));this.groundExtension._setMapExtension(void 0)}this.map.ground&&!this._groundExtensions.has(this.map.ground)&&this._groundExtensions.set(this.map.ground,$.create({ground:this.map.ground}));const e=this._groundExtensions.get(this.map.ground);e&&e.mapExtension!==this&&e._setMapExtension(this),this._groundExtension=e,this.notifyChange("groundExtension")}async _createStandardBasemapOptions(){const e=this._spatialReference;!this._basemapOptions.isExplicitlyModified&&e?.isWebMercator&&await J([g.SATELLITE,g.HYBRID_VECTOR,g.STREETS_VECTOR,g.TOPO_VECTOR,g.STREETS_NAVIGATION_VECTOR,g.STREETS_NIGHT_VECTOR,g.TERRAIN_VECTOR,g.DARK_GRAY_VECTOR,g.GRAY_VECTOR,g.OCEANS_VECTOR,g.OPEN_STREET_MAP_VECTOR],(async e=>{const t=await S(e);v(this.map.basemap,t)?this._basemapOptions.addInternal(this.basemapExtension):this._basemapOptions.addInternal(G.create({basemap:t}),void 0,!1)}))}_ensureIsBasemapOption(e){const t=this.basemapOptions.findIndex((t=>t.basemap===e.basemap));t>=0?this._basemapOptions.getItemAt(t)!==e&&(this._basemapOptions.removeAtInternal(t),this._basemapOptions.addInternal(e,t)):this._basemapOptions.addInternal(e,0)}_cleanPreviousBasemapOptions(e){if(e&&!z(e))for(let t=this._basemapOptions.length-1;t>=0;t--){const i=this._basemapOptions.getItemAt(t),s=v(i.basemap,e),a=v(i.basemap,this._map?.basemap)||v(i.basemap,this._scene?.basemap);s&&!a&&this._basemapOptions.removeAtInternal(t)}}_updateBookmarks(){this.bookmarks.removeMany(this.bookmarks.filter((e=>"map"===e.source))),R(this.map)&&this.map.bookmarks?.length>0?this.map.bookmarks.forEach((e=>{this.bookmarks.add(new D({source:"map",title:e.name,viewpoint:e.viewpoint}))})):W(this.map)&&this.map.presentation?.slides?.length>0&&this.map.presentation.slides.forEach((e=>{const t={source:"map",title:e.title.text,viewpoint:e.viewpoint},i=new D(t);this.bookmarks.add(i)}))}};Q=e([M],Q);export{Q as MapExtension};class Z extends x{isExplicitlyModified=!1;_mapExtension;constructor(e){super(new t),this._mapExtension=e}add(e,t){return super.add(e,t),this.isExplicitlyModified=!0,1===this.length&&this._mapExtension.map&&!this._mapExtension.basemapExtension&&(this._mapExtension.basemapExtension=e),this}addMany(e,t){return super.addMany(e,t),this.isExplicitlyModified=!0,this}addInternal(e,t,i=!0){const s=e=>{const t="-vector";return e?.endsWith(t)?e.substring(0,e.length-7):e};let a;if(e.basemap){const t=s(e.basemap.id);if(a=z(e.basemap)?this.findIndex((e=>s(e.basemap?.id)===t)):this.findIndex((t=>v(t.basemap,e.basemap))),a>=0){if(!i)return;super.removeAt(a)}}super.add(e,t??(a>=0?a:void 0))}removeAt(e){const t=super.removeAt(e);return t&&(this.isExplicitlyModified=!0,t===this._mapExtension.basemapExtension&&(e<this.length?this._mapExtension.basemapExtension=this.getItemAt(e):this.length?this._mapExtension.basemapExtension=this.getItemAt(e-1):this._mapExtension.basemapExtension=void 0)),t}removeAll(){return this._mapExtension.basemapExtension=void 0,super.removeAll()}removeAtInternal(e){return super.removeAt(e)}removeAllInternal(){for(;this.length;)this.removeAtInternal(this.length-1)}reorder(e,t){return super.reorder(e,t),this.isExplicitlyModified=!0,e}reorderInternal(e,t){return super.reorder(e,t)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.basemap}}class ee extends x{get _collection(){return this._tables.map((e=>this._forTable(e))).concat(Array.from(this._uninitializedTableExtensions))}get _tables(){return this._mapExtension.map?.tables??new I(new t)}_mapExtension;_tableExtensionMap=new WeakMap;_uninitializedTableExtensions=new Set;constructor(e){super(),this._mapExtension=e,F(this._mapExtension,"map.tables",(e=>{const t={added:(e.added||[]).map((e=>this._forTable(e))),moved:(e.moved||[]).map((e=>this._forTable(e))),removed:(e.removed||[]).map((e=>this._forTable(e))),target:this};this.emit("change",t)})),this._mapExtension.watch("map.tables.length",(()=>this.notifyChange("length")))}toJSON(){const e=[];return this.forEach((t=>{e.push(`item://${encodeURIComponent(l.TABLE_EXTENSION)}/${encodeURIComponent(t.id)}`)})),e}clone(){const e=new ee(this._mapExtension);return e._tableExtensionMap=this._tableExtensionMap,e}findById(e){return A("id",e).isNotMissing(),this.find((t=>t.id===e))}findByTableId(e){return A("id",e).isNotMissing(),this.find((t=>t._tableId===e))}forTable(e){if(A("table",e).isNotMissing(),this._tables.includes(e))return this._forTable(e)}add(e,t){if(A("tableX",e).isNotMissing(),e.mapExtension&&e.mapExtension.tableExtensions.remove(e),e._setMapExtension(this._mapExtension),e.table){const i=this._tableExtensionMap.get(e.table);if(this._tableExtensionMap.set(e.table,e),i&&i!==e&&this._onRemoved(i),this._tables.includes(e.table))if(void 0===t){const t={added:[e],moved:[],removed:i?[i]:[],target:this};this.emit("change",t)}else this._tables.reorder(e.table,t);else this._tables.add(e.table,t)}else{this._uninitializedTableExtensions.add(e);const t={added:[e],moved:[],removed:[],target:this};this.emit("change",t)}return this._onAdded(e),this}removeAt(e){const t=this.getItemAt(e);if(void 0!==t){if(this._uninitializedTableExtensions.has(t)){this._uninitializedTableExtensions.delete(t);const e={added:[],moved:[],removed:[t],target:this};this.emit("change",e)}else this._tables.remove(t.table);return this._onRemoved(t),t}}reorder(e,t){if(e&&this._tables.includes(e.table))return this._tables.reorder(e.table,t),e}sort(e){return this._tables.sort(((t,i)=>e(this._forTable(t),this._forTable(i)))),this}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.table}_onAdded(e){}_onRemoved(e){e._setMapExtension(void 0)}_forTable(e){for(const e of this._uninitializedTableExtensions)e._resolveTable(),e.table&&(this._tableExtensionMap.set(e.table,e),this._uninitializedTableExtensions.delete(e));if(!this._tableExtensionMap.has(e)){const t=d.create({table:e});this._tableExtensionMap.set(e,t),t._setMapExtension(this._mapExtension),this._onAdded(t)}return this._tableExtensionMap.get(e)}}class te extends y{get _collection(){let e=this._mapExtension.layerExtensions.flatten((e=>C(e)?e.layerExtensions:[]));return this._mapExtension.basemapExtension&&(e=e.concat(this._mapExtension.basemapExtension.baseLayerExtensions.toArray()).concat(this._mapExtension.basemapExtension.referenceLayerExtensions.toArray())),e=e.concat(this._mapExtension.groundExtension.layerExtensions.toArray()),e}_mapExtension;_eventedLayers=new WeakSet;constructor(e){super(),this._mapExtension=e}findById(e){return A("id",e).isNotMissing(),this.find((t=>t.id===e))}findByLayerId(e){return A("id",e).isNotMissing(),this.find((t=>t._layerId===e))}forLayer(e){return A("layer",e).isNotMissing(),this.findByLayerId(e.id)}emit(e,i){if("change"===e){const s=new t;s.addMany(i.added);const a=s.flatten((e=>C(e)?e.layerExtensions:[])).toArray().filter((e=>!this._eventedLayers.has(e.layer))),n=new t;n.addMany(i.removed);const o=n.flatten((e=>C(e)?e.layerExtensions:[])).toArray(),r=new t;r.addMany(i.moved);const p=r.flatten((e=>C(e)?e.layerExtensions:[])).toArray();return a.forEach((e=>{e.layer&&this._eventedLayers.add(e.layer)})),o.forEach((e=>{e.layer&&this._eventedLayers.delete(e.layer)})),super.emit(e,{added:a,removed:o,moved:p,target:this})}return super.emit(e,i)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.layer}}function ie(e){if(!(null==e||"object"==typeof e&&e?.baseMap))return H(e)}function se(e){return"object"!=typeof e||e&&!e.baseMap}function ae(e,t,i){if(e?.type&&e.type!==i)throw new Error(`Invalid portal item type "${e.type}" for property ${t}.`)}async function ne(e){await T(e),e.basemap&&(await T(e.basemap),e.basemap.baseLayers.filter((e=>k(e))).map((e=>{const t=e;return t.activeLayer.imageFormat=t.activeLayer.imageFormat??(t.activeLayer.imageFormats?.length>0?t.activeLayer.imageFormats[0]:""),t.activeLayer.styleId=t.activeLayer.styleId??"",t})),e.basemap.id=O(e.basemap)??e.basemap.id)}
1
+ import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import{ArgumentError as i}from"../ArgumentError.js";import{EntityBase as s}from"../Entity.js";import{InvalidOperationError as a}from"../InvalidOperationError.js";import{isBasemapExtension as n,isBookmark as o,isGroundExtension as r,isLayerPreset as p,isMenu as h,isTableExtension as m,ItemType as l}from"../ItemType.js";import{TableExtension as d}from"../data/TableExtension.js";import{layerToParentJsonCache as c}from"../json/LayerJson.js";import{applyJsonToWebMap as b}from"../json/WebMapJson.js";import{applyJsonToWebScene as _}from"../json/WebSceneJson.js";import{LayerPreset as f}from"../layer-preset/LayerPreset.js";import{Menu as E}from"../menus/Menu.js";import{DefaultArcGISRequestHelper as x}from"../support/ArcGISRequestHelper.js";import{FormatSettings as u}from"../support/FormatSettings.js";import{InitializableCollectionProxy as w}from"../support/InitializableCollectionProxy.js";import{ReadOnlyInitializableCollection as y}from"../support/ReadOnlyInitializableCollection.js";import{serializable as g}from"../support/Serializable.js";import{WellKnownBasemap as M}from"../support/esri.js";import{createIHandle as v,notifyChange as I,onWatch as S,watch as A,watchEvent as O}from"../support/observableUtils.js";import{ReadOnlyCollection as z}from"../utilities/ReadOnlyCollection.js";import P from"../utilities/_ReferenceCountedHandle.js";import{basemapsAreEquivalent as T,createStandardBasemap as V,getStandardBasemapId as B,isStandardBasemap as L}from"../utilities/basemaps.js";import{checkArg as k}from"../utilities/checkArg.js";import{compare as C}from"../utilities/collection.js";import{load as j}from"../utilities/esri.js";import{isGroupLayerExtension as R}from"../utilities/extensions.js";import{filter as H}from"../utilities/iterable.js";import{isWMTSLayer as N,layersAreEquivalent as W}from"../utilities/layers.js";import{getLogger as J}from"../utilities/log.js";import{getMapSpatialReference as F,isMap as q,isWebMap as G,isWebScene as D}from"../utilities/mapping.js";import{toPortalItem as U}from"../utilities/portal.js";import{parallelEach as $}from"../utilities/promise.js";import{onCollectionPropertyChange as X,onEach as Y}from"../utilities/watch.js";import{BasemapExtension as K}from"./BasemapExtension.js";import{Bookmark as Q}from"./Bookmark.js";import{GroundExtension as Z}from"./GroundExtension.js";import{MapConstraints as ee}from"./MapConstraints.js";import{_assignLayerExtensions as te}from"./_LayerExtension.js";import{LayerExtensionCollectionImpl as ie}from"./_LayerExtensionCollectionImpl.js";const se=J("MapExtension");let ae=class extends s{get webMap(){return this._webMap}get webScene(){return this._webScene}get map(){return this._currentMap}get viewMode(){return this.map?D(this.map)?"scene":"map":this.initialViewMode}get initialViewMode(){return this.webMap&&this.webScene?this._initialViewMode||"map":D(this.map)||this.webScene&&!this.webMap?"scene":"map"}set initialViewMode(e){this._initialViewMode=e}get requestHelper(){return this._requestHelper||(this._requestHelper=new x),this._requestHelper}set requestHelper(e){this._requestHelper=e}get basemapExtension(){return this._basemapExtension}set basemapExtension(e){const t=this._basemapExtension;if(t!==e)if(t&&t._setMapExtension(void 0),e){if(e._setMapExtension(this),this.isInitialized&&!e.basemap){if(e.isInitialized)throw e._setMapExtension(void 0),new a("Cannot set MapExtension.basemapExtension without a valid Esri Basemap object");e.initialize()}this._ensureIsBasemapOption(e),this.map&&e.basemap&&e.basemap!==this.map.basemap?this.map.basemap=e.basemap:this._basemapExtension=e}else this.map.basemap=void 0,this._basemapExtension=void 0}get groundExtension(){return this._groundExtension||(this.groundExtension=Z.create({ground:this.map?.ground})),this._groundExtension}set groundExtension(e){if(!e)throw new a("Cannot set map.ground to undefined");const t=this._groundExtension;t!==e&&(t&&t._setMapExtension(void 0),e._setMapExtension(this),e._resolveGround(),e.ground?(this._groundExtensions.set(e.ground,e),this.map&&e.ground!==this.map.ground?this.map.ground=e.ground:this._groundExtension=e):this._groundExtension=e)}get basemapOptions(){return this._basemapOptions}get bookmarks(){return this._bookmarks}get initialBasemapExtension(){return this._initialBasemapExtension}get initialLayerPreset(){return this._initialLayerPreset}set initialLayerPreset(e){if(!e)return void(this._initialLayerPreset=void 0);const t=p(e)?e:new f(e);this._initialLayerPreset=t}get _spatialReference(){return F(this.map)}get webMapItemTitle(){if(this._webMapItem)return this._webMapItem.title}get webSceneItemTitle(){if(this._webSceneItem)return this._webSceneItem.title}get title(){return this._title?this._title:this._webMapItem&&"map"===this.viewMode?this.webMapItemTitle:this._webSceneItem&&"scene"===this.viewMode?this.webSceneItemTitle:void 0}set title(e){this._title=e}formatSettings;constraints;onClick;onHover;onHoverEnd;onInitialized;onViewpointChanged;get contextMenu(){return this._contextMenu}set contextMenu(e){this._contextMenu=e,e&&this.isInitialized&&!e.isInitialized&&(async()=>{try{await e.initialize()}catch(e){e instanceof Error&&se.error({message:"An error occurred while initializing context menu.",error:e})}})()}isSwitchingMap=!1;_layerViews=new t;get _allLayerViews(){const e=i=>{const s=[i];return t.isCollection(i.sublayerViews)?s.push(...i.sublayerViews.toArray().flatMap(e)):t.isCollection(i.layerViews)&&s.push(...i.layerViews.toArray().flatMap(e)),s};return this._layerViews.toArray().flatMap(e)}get layerExtensions(){return this._layerExtensions}tableExtensions;allLayerExtensions;_itemType=l.MAP_EXTENSION;_map;_scene;_deserializedMapPromise;_deserializedViewMode;_deserializedViewModePromise;_deferredProperties;_currentMap;_requestHelper;_basemapExtension;_groundExtension;_basemapOptions;_groundExtensions;_bookmarks;_layerExtensions;_webMap;_webMapItem;_webScene;_webSceneItem;_title;_initialViewMode;_initialLayerPreset;_initialBasemapExtension;_skipBasemapOptions=!1;_createScenePromise;_createMapPromise;_contextMenu;constructor(e){super(e);let s={...e};this._basemapOptions=new ne(this),this._groundExtensions=new WeakMap,this._layerExtensions=this._createLayerExtensionCollection(),this.tableExtensions=this._createTableExtensionCollection(),this.formatSettings=this._createFormatSettings(),this._bookmarks=new t,this.constraints=new ee;const a=[],n=[];A(this,"_map",(e=>{if(e)a.push(Y(e.layers,"layerview-create",(e=>{this._layerViews.add(e.layerView)})),Y(e.layers,"layerview-destroy",(e=>{this._layerViews.remove(e.layerView)})));else for(const e of a)e.remove()}),{sync:!0}),A(this,"_scene",(e=>{if(e)n.push(Y(e.layers,"layerview-create",(e=>{this._layerViews.add(e.layerView)})),Y(e.layers,"layerview-destroy",(e=>{this._layerViews.remove(e.layerView)})));else for(const e of n)e.remove()}),{sync:!0});const{webMap:o,webScene:r,initialViewMode:p,map:h,basemapOptions:m}=s;if(this._webMap=o,this._webScene=r,this._webMapItem=pe(o),this._webSceneItem=pe(r),this.initialViewMode=p,D(h)&&r)throw new i("Cannot specify webScene property if map is initialized to a WebScene instance.");if(q(h)&&o)throw new i("Cannot specify webMap property if map is initialized to a 2D Map instance.");if(D(h)||G(h)||q(h))this.assignProperties({basemapOptions:m}),this._skipBasemapOptions=!!m;else{const{layerExtensions:e,tableExtensions:t,groundExtension:i,basemapOptions:a,basemapExtension:n,...o}=s;this._deferredProperties={layerExtensions:e,tableExtensions:t,groundExtension:i,basemapOptions:a,basemapExtension:n},s=o,a&&(this._skipBasemapOptions=!0)}this._initMapFromProperties(s),A(this,"map.basemap",(()=>this._onBasemapChange()),{sync:!0}),A(this,"map.ground",(()=>this._onGroundChange()),{sync:!0}),this.allLayerExtensions=new re(this),this.map?.basemap&&this._onBasemapChange()}getLayerExtensionsForView(e=this.viewMode){return(("map"===e?this._map:this._scene)?.layers.toArray()??[]).map((e=>this._layerExtensions._forLayer(e))).filter((e=>!e.dynamicallyAddedLayer))}getAllFeatureSources(e=()=>!0){const t=[],i=a=>{a.hasFeatures&&t.push(a);for(const t of a.sublayerExtensions.initializedItems.filter(e).toArray())s(t);if(R(a))for(const t of a.layerExtensions.initializedItems.filter(e).toArray())i(t)},s=i=>{t.push(i);for(const t of i.sublayerExtensions.initializedItems.filter(e).toArray())s(t)};for(const t of this.layerExtensions.initializedItems.filter(e).toArray())i(t);for(const i of this.tableExtensions.initializedItems.filter(e).toArray())t.push(i);if(this.basemapExtension){for(const t of this.basemapExtension.baseLayerExtensions.initializedItems.filter(e).toArray())i(t);for(const t of this.basemapExtension.referenceLayerExtensions.initializedItems.filter(e).toArray())i(t)}return t}isSupportedViewMode(e){return e===this.viewMode||!(!this.webMap&&!this.webScene)&&("scene"===e?!!this.webScene:!!this.webMap)}async switchViewMode(e){if(k("viewMode",e).isNotMissing().satisfies((e=>this.isSupportedViewMode(e)),"Unsupported view mode."),this.viewMode===e)return;let t;"scene"===e?(await this._createScene(),t=this._scene):(await this._createMap(),t=this._map),t.basemap=this.map?.basemap,await this.switchMap(t),I(this,"viewMode"),I(this,"title")}async switchMap(e){if(k("newMap",e).isNotMissing(),e===this.map)return;if(!this.map)return void this._setMap(e);this.isSwitchingMap=!0,this.isInitialized&&await le(e);const t=new Map(this.map.layers.map((e=>[e,this.layerExtensions.forLayer(e)]))),i=new Map(this.map.tables.map((e=>[e,this.tableExtensions.forTable(e)]))),{basemapExtension:s}=this;this._setMap(e),this._updateBookmarks();const a=[];for(const e of this.map.layers.toArray()){const i=[...H(t.entries(),(([t])=>W(t,e)))];if(1===i.length){const[t]=i;a.push((async()=>{const i=t[1];await i._switchLayer(e),this._layerExtensions._register(i)})())}else{const t=this._layerExtensions._forLayer(e);t&&t.layer!==e&&a.push(t._switchLayer(e))}}for(const e of this.map.tables.toArray()){const t=[...H(i.entries(),(([t])=>W(t,e)))];if(1===t.length){const[i]=t;a.push((async()=>{const t=i[1];await t._switchTable(e),this.tableExtensions.add(t)})())}else{const t=this.tableExtensions.forTable(e);t&&t.table!==e&&a.push(t._switchTable(e))}}this.map.basemap&&s&&T(this.map.basemap,s.basemap)&&a.push((async()=>{await s._switchBasemap(this.map.basemap),this.basemapExtension=s})()),await Promise.all(a),this.isInitialized&&await this._initializeChildren(),this.isSwitchingMap=!1}on(e,t){return super.on(e,t)}async setWebMap(e){if(!e&&this.webMap&&!this.webScene)throw new a("Cannot unset both webMap and webScene.");const t=this._map?.basemap;this._webMap=e,this._map=void 0,this._createMapPromise=void 0,this._webMapItem=pe(e),await j(this._webMapItem),"map"===this.viewMode&&(e?(this._basemapOptions.isExplicitlyModified||this._basemapOptions.removeAllInternal(),await this._createMap(),await this.switchMap(this._map),this._cleanPreviousBasemapOptions(t),await this._createStandardBasemapOptions(),this._basemapOptions.reorderInternal(this.basemapExtension,0),this._initialBasemapExtension=this.basemapExtension):(this._cleanPreviousBasemapOptions(t),await this.switchViewMode("scene"))),I(this,"webMap"),I(this,"initialViewMode"),I(this,"title")}async setWebScene(e){if(!e&&this.webScene&&!this.webMap)throw new a("Cannot unset both webMap and webScene.");const t=this._scene?.basemap;this._webScene=e,this._scene=void 0,this._createScenePromise=void 0,this._webSceneItem=pe(e),await j(this._webSceneItem),"scene"===this.viewMode&&(e?(this._basemapOptions.isExplicitlyModified||this._basemapOptions.removeAllInternal(),await this._createScene(),await this.switchMap(this._scene),this._cleanPreviousBasemapOptions(t),await this._createStandardBasemapOptions(),this._basemapOptions.reorderInternal(this.basemapExtension,0),this._initialBasemapExtension=this.basemapExtension):(this._cleanPreviousBasemapOptions(t),await this.switchViewMode("map"))),I(this,"webScene"),I(this,"initialViewMode"),I(this,"title")}getDefaults(){const e=super.getDefaults();return e.initialViewMode="map",e}async _createScene(){if(!this._scene&&this.webScene)return this._createScenePromise=this._createScenePromise??(async()=>{const e=(await import("@arcgis/core/WebScene")).default;he(this.webScene)?(this._webSceneItem.type="Web Scene",this._scene=new e({portalItem:this._webSceneItem})):this._scene=e.fromJSON(this.webScene)})()}async _createMap(){if(!this._map&&this.webMap)return this._createMapPromise=this._createMapPromise??(async()=>{const e=(await import("@arcgis/core/WebMap")).default;he(this.webMap)?(this._webMapItem.type="Web Map",this._map=new e({portalItem:this._webMapItem})):this._map=e.fromJSON(this.webMap)})()}_getSerializableProperties(){return{...super._getSerializableProperties(),layerExtensions:{serializeModes:["initial","project"],deserialize:e=>{if(this.map&&e){const t="map"===this.viewMode,i=(t?this._scene:this._map)?.layers.toArray()??[],s=e.filter((e=>!i.includes(e.layer)&&!i.some((t=>e.layer&&W(t,e.layer)))));te(this.layerExtensions,s)}},serialize:e=>{if(this._deferredProperties?.layerExtensions)return this._deferredProperties.layerExtensions;{const t="map"===this.viewMode,i=(t?this._map:this._scene)?.layers.toArray();let s=(t?this._scene:this._map)?.layers.toArray()??[];return s=s.filter((e=>!i.find((t=>W(t,e))))),this.layerExtensions.concat(s.map((e=>this._layerExtensions._forLayer(e)))).filter((t=>"initial"!==e||!t.dynamicallyAddedLayer)).toArray()}}},tableExtensions:{serializeModes:["initial","project"],deserialize:e=>{this.map?C(this.tableExtensions,e,{onNew:(e,t)=>{this.tableExtensions.add(m(e)?e:d.create(e),t)},onMatch:(e,t,i,s)=>{m(t)||e.assignProperties(t),i!==s&&this.tableExtensions.reorder(e,s)},equals:(e,t)=>m(t)?t===e:!!d._matchesRef(e,t.table)||e.id===t.id}):this._deferredProperties={...this._deferredProperties,tableExtensions:e}},serialize:()=>this._deferredProperties?.tableExtensions?this._deferredProperties?.tableExtensions:this.tableExtensions.toArray()},basemapExtension:{serializeModes:["project"],deserialize:e=>{if(this.map)if(e)if(n(e))this.basemapExtension=e;else{if(this.basemapExtension)return this.basemapExtension.assignPropertiesAsync(e);this.basemapExtension=K.create(e)}else this.basemapExtension=void 0;else this._deferredProperties={...this._deferredProperties,basemapExtension:e}},serialize:()=>this._deferredProperties?.basemapExtension?this._deferredProperties?.basemapExtension:this.basemapExtension},basemapOptions:{serializeModes:["initial"],deserialize:e=>{this._skipBasemapOptions?this._skipBasemapOptions=!1:(C(this.basemapOptions,e,{onNew:(e,t)=>{this.basemapOptions.add(n(e)?e:K.create(e),t)},onMatch:(e,t,i,s)=>{n(t)||e.assignProperties(t),i!==s&&this.basemapOptions.reorder(e,s)},onMissing:e=>{this.basemapOptions.remove(e)},equals:(e,t)=>{if(n(t))return t===e;if(e.id&&t.id)return e.id===t.id;{const i=e.toJSON();return T(i.basemap,t.basemap||t.baseMap)}}}),this.basemapExtension&&this._ensureIsBasemapOption(this.basemapExtension),this.isInitialized&&$(this.basemapOptions.toArray(),(e=>e._createBackingBasemap())))},serialize:()=>this._deferredProperties?.basemapOptions?this._deferredProperties?.basemapOptions:this.basemapOptions.toArray()},groundExtension:{serializeModes:["initial"],deserialize:e=>{if(this.map){if(!r(e))return this.groundExtension.assignPropertiesAsync(e);this.groundExtension=e}else this._deferredProperties={...this._deferredProperties,groundExtension:e}},serialize:()=>this._deferredProperties?.groundExtension?this._deferredProperties?.groundExtension:this.groundExtension},bookmarks:{serialize:()=>this.bookmarks.map((e=>e.toJSON())).toArray(),deserialize:e=>{this.bookmarks.addMany(e.map((e=>o(e)?e:new Q(e))))}},webMap:{serializeModes:["initial"],deserialize:!1},webScene:{serializeModes:["initial"],deserialize:!1},initialLayerPreset:"initial",initialViewMode:{serializeModes:["initial","project"],serialize:e=>"project"===e?this.viewMode:"scene"!==this.initialViewMode||!this.webScene&&this.webMap?"map":"scene",deserialize:e=>{this.viewMode!==e&&(this._deserializedViewMode=e),this._initialViewMode=e},isDefault:(e,t)=>"project"!==t&&"map"===e},formatSettings:"initial",constraints:"initial",title:"initial",onClick:"initial",onHover:"initial",onHoverEnd:"initial",onInitialized:"initial",onViewpointChanged:"initial",contextMenu:{serializeModes:["initial"],deserialize:e=>{e?h(e)?this.contextMenu=e:this.contextMenu?this.contextMenu.assignProperties(e):this.contextMenu=E.create(e):this.contextMenu=void 0}},map:{serializeModes:["project"],serialize:()=>{c.lookup=new WeakMap;const e=this.layerExtensions.toArray().filter((e=>e.layer)).map((e=>e._getProjectWebmapJSON())),t=this.tableExtensions.toArray().filter((e=>e.table)).map((e=>({id:e.table.id,title:e.table.title})));return c.lookup=void 0,e.length>0||t.length>0?{operationalLayers:e,tables:t}:{}},deserialize:e=>{if(!this.map)throw new i("Cannot specify JSON object for the 'map' property. It must be an ArcGIS API Map instance. To specify JSON, use 'webMap' or 'webScene' instead.");if(q(e)||G(e)||D(e)){if(e!==this.map)throw new i("properties.map","Property 'map' is read-only.")}else this._deserializedMapPromise=(async()=>{this._deserializedViewMode&&this.webMap&&this.webScene&&(this._deserializedViewModePromise=this.switchViewMode(this._deserializedViewMode),await this._deserializedViewModePromise,this._deserializedViewMode=void 0,this._deserializedViewModePromise=void 0),await this._applyMapProperties(e,this.map),this._deserializedMapPromise=void 0})()}},requestHelper:{serialize:!1}}}async _applyMapProperties(e,t,i){await $(this.basemapOptions.toArray(),(e=>e._createBackingBasemap()));let s=e;const a=this.basemapOptions.find((e=>T(e.basemap,s.baseMap)));a&&(t.basemap=a.basemap,s={...s,baseMap:{...s.baseMap,title:t.basemap.title}}),D(t)?await _(s,t,i):await b(s,t,i)}_createFormatSettings(){return new u}_createLayerExtensionCollection(){return new ie(this)}_createTableExtensionCollection(){return new oe(this)}async _onInitialize(){await super._onInitialize();const{basemapOptions:e,basemapExtension:t,webMap:i,webScene:s,...a}=this._deferredProperties??{};if(this.map||("scene"===this.initialViewMode?(await this._createScene(),this._setMap(this._scene)):(await this._createMap(),this._setMap(this._map))),this._webMapItem||this._webSceneItem?(await Promise.all([le(this.map),j(this._webMapItem),j(this._webSceneItem)]),me(this._webMapItem,"webMap","Web Map"),me(this._webSceneItem,"webScene","Web Scene")):await le(this.map),t&&(!n(t)&&t.basemap?this.basemapExtension=K.create(t):await this.assignPropertiesAsync({basemapExtension:t}),await this.basemapExtension._createBackingBasemap()),e){const t=e.find((e=>n(e)&&T(this.map.basemap,e.toJSON().basemap)));if(t){const e=t.toJSON().basemap?.id??t.basemap?.id,i=t.toJSON().basemap?.title;await t._switchBasemap(this.map.basemap),this.basemapExtension=t,e&&(this.map.basemap.id=e),i&&(this.map.basemap.title=i)}await this.assignPropertiesAsync({basemapOptions:e})}await this.assignPropertiesAsync(a),this._deferredProperties=void 0,this._initialBasemapExtension=this.basemapExtension,this._updateBookmarks();for(const e of this.layerExtensions.toArray())await e._createBackingLayer();await Promise.all(this.tableExtensions.map((e=>e._createBackingTable())).toArray())}async _postInitialize(){await super._postInitialize(),await this._createStandardBasemapOptions(),await $(this.basemapOptions.toArray(),(e=>e._createBackingBasemap())),this.initialLayerPreset&&await this.initialLayerPreset.applyTo(this)}*_initializableChildCollections(){yield*super._initializableChildCollections();const e=new t(this.layerExtensions.filter((e=>!!e.layer)));e.remove=e=>this.layerExtensions.remove(e);const i=new t(this.tableExtensions.filter((e=>!!e.table)));if(i.remove=e=>this.tableExtensions.remove(e),yield e,yield i,this.basemapExtension){const e=new t;e.add(this.basemapExtension),yield e}const s=new t;s.add(this.groundExtension),yield s}_initMapFromProperties(e){const t=e.map;q(t)||G(t)||D(t)?this._setMap(t):"scene"===this.initialViewMode?e.webScene&&!he(e.webScene)&&(this._deferredProperties={webScene:e.webScene,...this._deferredProperties}):e.webMap&&!he(e.webMap)&&(this._deferredProperties={webMap:e.webMap,...this._deferredProperties})}_setMap(e){D(e)?this._scene=e:this._map=e,this._currentMap=e,this.basemapExtension?.basemap&&!e.basemap&&(e.basemap=this.basemapExtension.basemap),this.groundExtension?.ground&&!e.ground&&(e.ground=this.groundExtension.ground),I(this,"map")}_onBasemapChange(){if(this._basemapExtension){if(this.basemapExtension.basemap==this.map.basemap)return;this._basemapExtension._setMapExtension(void 0)}if(this.map.basemap){let e=this.basemapOptions.find((e=>this.map.basemap===e.basemap));if(!e){const t=this.basemapOptions.find((e=>T(e.basemap,this.map.basemap)));t?(e=t,e._switchBasemap(this.map.basemap)):(e=K.create({basemap:this.map.basemap}),this._basemapOptions.addInternal(e,0))}e.mapExtension!==this&&e._setMapExtension(this),this._basemapExtension=e}else this._basemapExtension=void 0;I(this,"basemapExtension")}_onGroundChange(){if(this._groundExtension){if(this.map.ground&&this.groundExtension.ground===this.map.ground)return void(this._groundExtensions.has(this.map.ground)||this._groundExtensions.set(this.map.ground,this.groundExtension));this.groundExtension._setMapExtension(void 0)}this.map.ground&&!this._groundExtensions.has(this.map.ground)&&this._groundExtensions.set(this.map.ground,Z.create({ground:this.map.ground}));const e=this._groundExtensions.get(this.map.ground);e&&e.mapExtension!==this&&e._setMapExtension(this),this._groundExtension=e,I(this,"groundExtension")}async _createStandardBasemapOptions(){const e=this._spatialReference;!this._basemapOptions.isExplicitlyModified&&e?.isWebMercator&&await $([M.SATELLITE,M.HYBRID_VECTOR,M.STREETS_VECTOR,M.TOPO_VECTOR,M.STREETS_NAVIGATION_VECTOR,M.STREETS_NIGHT_VECTOR,M.TERRAIN_VECTOR,M.DARK_GRAY_VECTOR,M.GRAY_VECTOR,M.OCEANS_VECTOR,M.OPEN_STREET_MAP_VECTOR],(async e=>{const t=await V(e);T(this.map.basemap,t)?this._basemapOptions.addInternal(this.basemapExtension):this._basemapOptions.addInternal(K.create({basemap:t}),void 0,!1)}))}_ensureIsBasemapOption(e){const t=this.basemapOptions.findIndex((t=>t.basemap===e.basemap));t>=0?this._basemapOptions.getItemAt(t)!==e&&(this._basemapOptions.removeAtInternal(t),this._basemapOptions.addInternal(e,t)):this._basemapOptions.addInternal(e,0)}_cleanPreviousBasemapOptions(e){if(e&&!L(e))for(let t=this._basemapOptions.length-1;t>=0;t--){const i=this._basemapOptions.getItemAt(t),s=T(i.basemap,e),a=T(i.basemap,this._map?.basemap)||T(i.basemap,this._scene?.basemap);s&&!a&&this._basemapOptions.removeAtInternal(t)}}_updateBookmarks(){this.bookmarks.removeMany(this.bookmarks.filter((e=>"map"===e.source))),G(this.map)&&this.map.bookmarks?.length>0?this.map.bookmarks.forEach((e=>{this.bookmarks.add(new Q({source:"map",title:e.name,viewpoint:e.viewpoint}))})):D(this.map)&&this.map.presentation?.slides?.length>0&&this.map.presentation.slides.forEach((e=>{const t={source:"map",title:e.title.text,viewpoint:e.viewpoint},i=new Q(t);this.bookmarks.add(i)}))}};ae=e([g],ae);export{ae as MapExtension};class ne extends w{isExplicitlyModified=!1;_mapExtension;constructor(e){super(new t),this._mapExtension=e}add(e,t){return super.add(e,t),this.isExplicitlyModified=!0,1===this.length&&this._mapExtension.map&&!this._mapExtension.basemapExtension&&(this._mapExtension.basemapExtension=e),this}addMany(e,t){return super.addMany(e,t),this.isExplicitlyModified=!0,this}addInternal(e,t,i=!0){const s=e=>{const t="-vector";return e?.endsWith(t)?e.substring(0,e.length-7):e};let a;if(e.basemap){const t=s(e.basemap.id);if(a=L(e.basemap)?this.findIndex((e=>s(e.basemap?.id)===t)):this.findIndex((t=>T(t.basemap,e.basemap))),a>=0){if(!i)return;super.removeAt(a)}}super.add(e,t??(a>=0?a:void 0))}removeAt(e){const t=super.removeAt(e);return t&&(this.isExplicitlyModified=!0,t===this._mapExtension.basemapExtension&&(e<this.length?this._mapExtension.basemapExtension=this.getItemAt(e):this.length?this._mapExtension.basemapExtension=this.getItemAt(e-1):this._mapExtension.basemapExtension=void 0)),t}removeAll(){return this._mapExtension.basemapExtension=void 0,super.removeAll()}removeAtInternal(e){return super.removeAt(e)}removeAllInternal(){for(;this.length;)this.removeAtInternal(this.length-1)}reorder(e,t){return super.reorder(e,t),this.isExplicitlyModified=!0,e}reorderInternal(e,t){return super.reorder(e,t)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.basemap}}class oe extends w{get _collection(){return this._tables.map((e=>this._forTable(e))).concat(Array.from(this._uninitializedTableExtensions))}get _tables(){return this._mapExtension.map?.tables??new z(new t)}_mapExtension;_tableExtensionMap=new WeakMap;_uninitializedTableExtensions=new Set;_onChangeMapTablesHandle=new P((()=>X(this._mapExtension,"map.tables",(e=>{const t={added:(e.added||[]).map((e=>this._forTable(e))),moved:(e.moved||[]).map((e=>this._forTable(e))),removed:(e.removed||[]).map((e=>this._forTable(e))),target:this};this.emit("change",t)}))));_onBeforeAddMapTablesHandle=new P((()=>O(this._mapExtension,"map.tables",["before-add",e=>this.emit("before-add",{...e,item:this._forTable(e.item),target:this})])));_onBeforeRemoveMapTablesHandle=new P((()=>O(this._mapExtension,"map.tables",["before-remove",e=>this.emit("before-remove",{...e,item:this._forTable(e.item),target:this})])));_onBeforeChangesMapTablesHandle=new P((()=>O(this._mapExtension,"map.tables",["before-changes",e=>this.emit("before-changes",{...e,target:this})])));_onAfterAddMapTablesHandle=new P((()=>O(this._mapExtension,"map.tables",["after-add",e=>this.emit("after-add",{...e,item:this._forTable(e.item),target:this})],(e=>{if(null!=e)for(const t of e)this.emit("after-add",{item:this._forTable(t),target:this})}))));_onAfterRemoveMapTablesHandle=new P((()=>O(this._mapExtension,"map.tables",["after-remove",e=>this.emit("after-remove",{...e,item:this._forTable(e.item),target:this})],((e,t)=>{if(null!=t)for(const e of t)this.emit("after-remove",{item:this._forTable(e),target:this})}))));_onAfterChangesMapTablesHandle=new P((()=>O(this._mapExtension,"map.tables",["after-changes",e=>this.emit("after-changes",{...e,target:this})],(()=>{this.emit("after-changes",{target:this})}))));constructor(e){super(),this._mapExtension=e,S(this,"length",(()=>A(this._mapExtension,"map.tables.length",(()=>I(this,"length")),{sync:!0})))}on(e,t){const i=[];return"change"===e?i.push(this._onChangeMapTablesHandle.add()):"before-add"===e?i.push(this._onBeforeAddMapTablesHandle.add()):"before-remove"===e?i.push(this._onBeforeRemoveMapTablesHandle.add()):"before-changes"===e?i.push(this._onBeforeChangesMapTablesHandle.add()):"after-add"===e?i.push(this._onAfterAddMapTablesHandle.add()):"after-remove"===e?i.push(this._onAfterRemoveMapTablesHandle.add()):"after-changes"===e&&i.push(this._onAfterChangesMapTablesHandle.add()),i.push(super.on(e,t)),v(i)}toJSON(){const e=[];return this.forEach((t=>{e.push(`item://${encodeURIComponent(l.TABLE_EXTENSION)}/${encodeURIComponent(t.id)}`)})),e}clone(){const e=new oe(this._mapExtension);return e._tableExtensionMap=this._tableExtensionMap,e}findById(e){return k("id",e).isNotMissing(),this.find((t=>t.id===e))}findByTableId(e){return k("id",e).isNotMissing(),this.find((t=>t._tableId===e))}forTable(e){if(k("table",e).isNotMissing(),this._tables.includes(e))return this._forTable(e)}add(e,t){if(k("tableX",e).isNotMissing(),e.mapExtension&&e.mapExtension.tableExtensions.remove(e),e._setMapExtension(this._mapExtension),e.table){const i=this._tableExtensionMap.get(e.table);if(this._tableExtensionMap.set(e.table,e),i&&i!==e&&this._onRemoved(i),this._tables.includes(e.table))if(void 0===t){const t={added:[e],moved:[],removed:i?[i]:[],target:this};i&&this.emit("after-remove",{item:i,target:this}),this.emit("after-add",{item:e,target:this}),this.emit("change",t)}else this._tables.reorder(e.table,t);else this._tables.add(e.table,t)}else{this._uninitializedTableExtensions.add(e);const t={added:[e],moved:[],removed:[],target:this};this.emit("after-add",{item:e,target:this}),this.emit("change",t)}return this._onAdded(e),this}removeAt(e){const t=this.getItemAt(e);if(void 0!==t){if(this._uninitializedTableExtensions.has(t)){this._uninitializedTableExtensions.delete(t);const e={added:[],moved:[],removed:[t],target:this};this.emit("after-remove",{item:t,target:this}),this.emit("change",e)}else this._tables.remove(t.table);return this._onRemoved(t),t}}reorder(e,t){if(e&&this._tables.includes(e.table))return this._tables.reorder(e.table,t),e}sort(e){return this._tables.sort(((t,i)=>e(this._forTable(t),this._forTable(i)))),this}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.table}_onAdded(e){}_onRemoved(e){e._setMapExtension(void 0)}_forTable(e){for(const e of this._uninitializedTableExtensions)e._resolveTable(),e.table&&(this._tableExtensionMap.set(e.table,e),this._uninitializedTableExtensions.delete(e));if(!this._tableExtensionMap.has(e)){const t=d.create({table:e});this._tableExtensionMap.set(e,t),t._setMapExtension(this._mapExtension),this._onAdded(t)}return this._tableExtensionMap.get(e)}}class re extends y{get _collection(){let e=this._mapExtension.layerExtensions.flatten((e=>R(e)?e.layerExtensions:[]));return this._mapExtension.basemapExtension&&(e=e.concat(this._mapExtension.basemapExtension.baseLayerExtensions.toArray()).concat(this._mapExtension.basemapExtension.referenceLayerExtensions.toArray())),e=e.concat(this._mapExtension.groundExtension.layerExtensions.toArray()),e}_mapExtension;_onChangeLayerExtensionsHandle=new P((()=>{const e=new WeakMap,i=new Set,s=a=>{const n=new t(a.added).flatten((e=>R(e)?e.layerExtensions:[])),o=new t(a.moved).flatten((e=>R(e)?e.layerExtensions:[])),r=new t(a.removed).flatten((e=>R(e)?e.layerExtensions:[]));for(const t of n)if(!e.has(t)&&R(t)){const a=t.layerExtensions.on("change",s);e.set(t,a),i.add(a)}for(const t of r){const s=e.get(t);s&&(s.remove(),e.delete(t),i.delete(s))}this.emit("change",{added:n.toArray(),moved:o.toArray(),removed:r.toArray(),target:this})};i.add(this._mapExtension.layerExtensions.on("change",s));const a=this._mapExtension.layerExtensions.flatten((e=>R(e)?e.layerExtensions:[]));for(const t of a)if(R(t)){const a=t.layerExtensions.on("change",s);e.set(t,a),i.add(a)}return i.add(X(this._mapExtension,"basemapExtension.baseLayerExtensions",(e=>{this.emit("change",{...e,target:this})}))),i.add(X(this._mapExtension,"basemapExtension.referenceLayerExtensions",(e=>{this.emit("change",{...e,target:this})}))),i.add(this._mapExtension.groundExtension.layerExtensions.on("change",(e=>{this.emit("change",{...e,target:this})}))),v(i)}));_onAfterAddLayerExtensionsHandle=new P((()=>{const e=new WeakMap,t=new Set,i=i=>{const s=e.get(i);s&&(s.remove(),e.delete(i),t.delete(s))},s=e=>{const t=e.item;if(R(t)){const e=t.layerExtensions.flatten((e=>R(e)?e.layerExtensions:[]));for(const t of e)i(t)}i(t)},a=i=>{this.emit("after-add",{...i,target:this});const n=i.item;if(R(n)){const o=n.layerExtensions.flatten((e=>R(e)?e.layerExtensions:[]));for(const n of o)if(this.emit("after-add",{...i,item:n,target:this}),!e.has(n)&&R(n)){const i=n.layerExtensions.on("after-add",a),o=n.layerExtensions.on("after-remove",s),r=v([i,o]);e.set(n,r),t.add(r)}}};t.add(this._mapExtension.layerExtensions.on("after-add",a)),t.add(this._mapExtension.layerExtensions.on("after-remove",s));const n=this._mapExtension.layerExtensions.flatten((e=>R(e)?e.layerExtensions:[]));for(const i of n)if(R(i)){const n=i.layerExtensions.on("after-add",a),o=i.layerExtensions.on("after-remove",s),r=v([n,o]);e.set(i,r),t.add(r)}return t.add(O(this._mapExtension,"basemapExtension.baseLayerExtensions",["after-add",e=>this.emit("after-add",{...e,target:this})])),t.add(O(this._mapExtension,"basemapExtension.referenceLayerExtensions",["after-add",e=>this.emit("after-add",{...e,target:this})])),t.add(this._mapExtension.groundExtension.layerExtensions.on("after-add",(e=>{this.emit("after-add",{...e,target:this})}))),v(t)}));_onAfterRemoveLayerExtensionsHandle=new P((()=>{const e=new WeakMap,t=new Set,i=i=>{const s=e.get(i);s&&(s.remove(),e.delete(i),t.delete(s))},s=e=>{this.emit("after-remove",{...e,target:this});const t=e.item;if(R(t)){const s=t.layerExtensions.flatten((e=>R(e)?e.layerExtensions:[]));for(const t of s)this.emit("after-remove",{...e,item:t,target:this}),i(t)}i(t)},a=i=>{const n=i.item;if(R(n)){const i=n.layerExtensions.on("after-add",a),o=n.layerExtensions.on("after-remove",s),r=v([i,o]);e.set(n,r),t.add(r)}};t.add(this._mapExtension.layerExtensions.on("after-remove",s)),t.add(this._mapExtension.layerExtensions.on("after-add",a));const n=this._mapExtension.layerExtensions.flatten((e=>R(e)?e.layerExtensions:[]));for(const i of n)if(R(i)){const n=i.layerExtensions.on("after-add",a),o=i.layerExtensions.on("after-remove",s),r=v([n,o]);e.set(i,r),t.add(r)}return t.add(O(this._mapExtension,"basemapExtension.baseLayerExtensions",["after-remove",e=>this.emit("after-remove",{...e,target:this})])),t.add(O(this._mapExtension,"basemapExtension.referenceLayerExtensions",["after-remove",e=>this.emit("after-remove",{...e,target:this})])),t.add(this._mapExtension.groundExtension.layerExtensions.on("after-remove",(e=>{this.emit("after-remove",{...e,target:this})}))),v(t)}));constructor(e){super(),this._mapExtension=e}on(e,t){const i=[];return"change"===e?i.push(this._onChangeLayerExtensionsHandle.add()):"after-add"===e?i.push(this._onAfterAddLayerExtensionsHandle.add()):"after-remove"===e&&i.push(this._onAfterRemoveLayerExtensionsHandle.add()),i.push(super.on(e,t)),v(i)}findById(e){return k("id",e).isNotMissing(),this.find((t=>t.id===e))}findByLayerId(e){return k("id",e).isNotMissing(),this.find((t=>t._layerId===e))}forLayer(e){return k("layer",e).isNotMissing(),this.findByLayerId(e.id)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.layer}}function pe(e){if(!(null==e||"object"==typeof e&&e?.baseMap))return U(e)}function he(e){return"object"!=typeof e||e&&!e.baseMap}function me(e,t,i){if(e?.type&&e.type!==i)throw new Error(`Invalid portal item type "${e.type}" for property ${t}.`)}async function le(e){await j(e),e.basemap&&(await j(e.basemap),e.basemap.baseLayers.filter((e=>N(e))).map((e=>{const t=e;return t.activeLayer.imageFormat=t.activeLayer.imageFormat??(t.activeLayer.imageFormats?.length>0?t.activeLayer.imageFormats[0]:""),t.activeLayer.styleId=t.activeLayer.styleId??"",t})),e.basemap.id=B(e.basemap)??e.basemap.id)}
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{InvalidOperationError as t}from"../InvalidOperationError.js";import{serializable as r}from"../support/Serializable.js";import{isMapNotesSublayer as s}from"../utilities/_layers.js";import{SublayerExtension as i,SublayerSchema as n,SubSublayerExtensionCollection as a}from"./_SublayerExtension.js";const o="Map Notes sublayers cannot be created or configured from JSON. They must be created with an ESRI MapNotesSublayer object.",l="SublayerExtension collection for MapNotesLayerExtension is readonly";let u=class extends i{get sublayer(){return super.sublayer}get layerExtension(){return super.layerExtension}get sublayerExtensions(){return super.sublayerExtensions}get canChangeScale(){return!1}get canChangeOpacity(){return!1}get canToggleVisibility(){return!0}get hasFeatures(){return!0}constructor(e){super(e);const r=e?.sublayer;if(!this.sublayer&&!r?.$ref)throw new t(o);const s=this.sublayer?.layer??this.layerExtension?.layer;s&&s._fields&&this.schema?.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(s._fields))}_capabilities(){return{...super._capabilities(),supportsQuery:!0,supportsStandardizedQueries:!0}}_createSchema(){return new p(this)}async _onInitialize(){await super._onInitialize(),this.watch("sublayer.layer",(e=>{e._fields&&this.schema?.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(e._fields))}))}_isSupportedSublayer(e){return s(e)}_createSublayer(e){throw new t(o)}async _applySublayerProperties(e,t){}_createSublayerExtensionCollection(){return new y(this)}_serializeSublayer(e){return this._createSublayerRef()}};u=e([r],u);export{u as MapNotesSublayerExtension};class y extends a{get _layerExtension(){return super._layerExtension}constructor(e,t){super(e,"__GCX_NO_VALUE")}add(e,r){throw new t(l)}removeAt(e){throw new t(l)}reorder(e,r){throw new t(l)}reverse(){throw new t(l)}sort(e){throw new t(l)}splice(e,r,...s){throw new t(l)}_createClone(){return new y(this._parent)}_createSublayerExtension(e){return this._layerExtension._createSublayerExtension(e)}}let p=class extends n{get geometryType(){return this._getSetting("geometryType",this._getDefaultGeometryType())}set geometryType(e){this._setSetting("geometryType",e)}_getDefaultGeometryType(){const e=this._sublayerExtension.sublayer?.graphics.getItemAt(0)?.geometry?.type;return"Areas"===this._sublayerExtension.title||"Polygons"===this._sublayerExtension.title||"polygon"===e?"polygon":"Lines"===this._sublayerExtension.title||"Polylines"===this._sublayerExtension.title||"polyline"===e?"polyline":"Points"===this._sublayerExtension.title||"Text"===this._sublayerExtension.title||"point"===e?"point":"Multipoints"===this._sublayerExtension.title||"multipoint"===e?"multipoint":void 0}};p=e([r],p);export{p as MapNotesSublayerExtensionSchema};
1
+ import{__decorate as e}from"tslib";import{InvalidOperationError as t}from"../InvalidOperationError.js";import{serializable as r}from"../support/Serializable.js";import{watch as s}from"../support/observableUtils.js";import{isMapNotesSublayer as i}from"../utilities/_layers.js";import{SublayerExtension as n,SublayerSchema as o,SubSublayerExtensionCollection as a}from"./_SublayerExtension.js";const l="Map Notes sublayers cannot be created or configured from JSON. They must be created with an ESRI MapNotesSublayer object.",u="SublayerExtension collection for MapNotesLayerExtension is readonly";let y=class extends n{get sublayer(){return super.sublayer}get layerExtension(){return super.layerExtension}get sublayerExtensions(){return super.sublayerExtensions}get canChangeScale(){return!1}get canChangeOpacity(){return!1}get canToggleVisibility(){return!0}get hasFeatures(){return!0}constructor(e){super(e);const r=e?.sublayer;if(!this.sublayer&&!r?.$ref)throw new t(l);const s=this.sublayer?.layer??this.layerExtension?.layer;s&&s._fields&&this.schema?.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(s._fields))}_capabilities(){return{...super._capabilities(),supportsQuery:!0,supportsStandardizedQueries:!0}}_createSchema(){return new h(this)}async _onInitialize(){await super._onInitialize(),s(this,"sublayer.layer",(e=>{e._fields&&this.schema?.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(e._fields))}))}_isSupportedSublayer(e){return i(e)}_createSublayer(e){throw new t(l)}async _applySublayerProperties(e,t){}_createSublayerExtensionCollection(){return new p(this)}_serializeSublayer(e){return this._createSublayerRef()}};y=e([r],y);export{y as MapNotesSublayerExtension};class p extends a{get _layerExtension(){return super._layerExtension}constructor(e,t){super(e,"__GCX_NO_VALUE")}add(e,r){throw new t(u)}removeAt(e){throw new t(u)}reorder(e,r){throw new t(u)}reverse(){throw new t(u)}sort(e){throw new t(u)}splice(e,r,...s){throw new t(u)}_createClone(){return new p(this._parent)}_createSublayerExtension(e){return this._layerExtension._createSublayerExtension(e)}}let h=class extends o{get geometryType(){return this._getSetting("geometryType",this._getDefaultGeometryType())}set geometryType(e){this._setSetting("geometryType",e)}_getDefaultGeometryType(){const e=this._sublayerExtension.sublayer?.graphics.getItemAt(0)?.geometry?.type;return"Areas"===this._sublayerExtension.title||"Polygons"===this._sublayerExtension.title||"polygon"===e?"polygon":"Lines"===this._sublayerExtension.title||"Polylines"===this._sublayerExtension.title||"polyline"===e?"polyline":"Points"===this._sublayerExtension.title||"Text"===this._sublayerExtension.title||"point"===e?"point":"Multipoints"===this._sublayerExtension.title||"multipoint"===e?"multipoint":void 0}};h=e([r],h);export{h as MapNotesSublayerExtensionSchema};
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import t from"@arcgis/core/layers/support/CodedValueDomain";import r from"@arcgis/core/popup/ExpressionInfo";import i from"@arcgis/core/popup/FieldInfo";import{serializable as s}from"../support/Serializable.js";import{ReadOnlyCollection as a}from"../utilities/ReadOnlyCollection.js";import{isPointCloudLayer as n}from"../utilities/_layers.js";import{LayerExtension as l,LayerExtensionSchema as o}from"./_LayerExtension.js";import{ArrayWrappedCollection as p}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as u}from"./support/PopupTemplateFeatureSettings.js";import{addOutFields as f}from"./support/layers.js";let d=class extends l{_enableClientSideData;get layer(){return super.layer}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}get hasFeatures(){return!0}get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}get canChangeOpacity(){return!1}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();return e&&delete e.opacity,e}async _onInitialize(){await super._onInitialize(),this._updateClientSideFields(),this._watchHandles.push(this.watch("layer",(()=>{this._updateClientSideFields()}),!0))}async _postInitialize(){await super._postInitialize(),await this._setDecodedPopupFieldInfos()}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"PointCloudLayer"}},enableClientSideData:{serializeModes:["initial"],default:!0}}}_isSupportedLayer(e){return n(e)}_createSchema(){return new m(this)}_createFeatureSettings(){return new u(this)}_updateClientSideFields(){this.layer&&this._enableClientSideData&&f(this.layer,this.featureSettings.outFields)}async _setDecodedPopupFieldInfos(){const e=this.schema.fields.find((e=>"CLASS_CODE"===e.name));if(e){const r=await this.layer.queryCachedStatistics("CLASS_CODE"),i=r?.labels?.labels;i&&(e.domain=new t({codedValues:i.map((e=>({code:e.value,name:e.label})))}))}if(null==this.featureSettings.popupTemplate.expressionInfos&&(this.featureSettings.popupTemplate.expressionInfos=[]),this.schema.fields.some((e=>"RGB"===e.name))){this.featureSettings.popupTemplate.fieldInfos.find((e=>"RGB"===e.fieldName)).visible=!1,this.featureSettings.popupTemplate.fieldInfos=[...this.featureSettings.popupTemplate.fieldInfos,new i({fieldName:"expression/__gcx-rgb"})],this.featureSettings.popupTemplate.expressionInfos=[...this.featureSettings.popupTemplate.expressionInfos,new r({expression:"var rgb = $feature.RGB; var red = Floor(rgb/65536,0); var green = Floor((rgb-(red*65536))/256,0); var blue = rgb-(red*65536)-(green*256); return 'rgb(' + red + ',' + green + ',' + blue + ')';",name:"__gcx-rgb",returnType:"string",title:"RGB"})]}if(this.schema.fields.some((e=>"RETURNS"===e.name))){this.featureSettings.popupTemplate.fieldInfos.find((e=>"RETURNS"===e.fieldName)).visible=!1,this.featureSettings.popupTemplate.fieldInfos=[...this.featureSettings.popupTemplate.fieldInfos,new i({fieldName:"expression/__gcx-returns"})],this.featureSettings.popupTemplate.expressionInfos=[...this.featureSettings.popupTemplate.expressionInfos,new r({expression:"var returnnumber = $feature.RETURNS % 16; var numberofreturns = Floor($feature.RETURNS / 16); return returnnumber + ' / ' + numberofreturns;",name:"__gcx-returns",returnType:"string",title:"RETURNS"})]}}};d=e([s],d);export{d as PointCloudLayerExtension};let m=class extends o{_fieldCollection;constructor(e){super(e),this._fieldCollection=new a(new p({parent:e,targetProperty:"layer",arrayProperty:"fields"})),this.notifyChange("_fields")}get _fields(){return this._fieldCollection}_getPropertyBindings(){return{spatialReference:{property:"spatialReference",readonly:!0}}}};m=e([s],m);
1
+ import{__decorate as e}from"tslib";import t from"@arcgis/core/layers/support/CodedValueDomain";import r from"@arcgis/core/popup/ExpressionInfo";import i from"@arcgis/core/popup/FieldInfo";import{serializable as s}from"../support/Serializable.js";import{notifyChange as a,watch as n}from"../support/observableUtils.js";import{ReadOnlyCollection as l}from"../utilities/ReadOnlyCollection.js";import{isPointCloudLayer as o}from"../utilities/_layers.js";import{LayerExtension as p,LayerExtensionSchema as u}from"./_LayerExtension.js";import{ArrayWrappedCollection as f}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as d}from"./support/PopupTemplateFeatureSettings.js";import{addOutFields as m}from"./support/layers.js";let g=class extends p{_enableClientSideData;get layer(){return super.layer}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}get hasFeatures(){return!0}get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}get canChangeOpacity(){return!1}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();return e&&delete e.opacity,e}async _onInitialize(){await super._onInitialize(),this._updateClientSideFields(),n(this,"layer",(()=>{this._updateClientSideFields()}),{sync:!0})}async _postInitialize(){await super._postInitialize(),await this._setDecodedPopupFieldInfos()}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"PointCloudLayer"}},enableClientSideData:{serializeModes:["initial"],default:!0}}}_isSupportedLayer(e){return o(e)}_createSchema(){return new c(this)}_createFeatureSettings(){return new d(this)}_updateClientSideFields(){this.layer&&this._enableClientSideData&&m(this.layer,this.featureSettings.outFields)}async _setDecodedPopupFieldInfos(){const e=this.schema.fields.find((e=>"CLASS_CODE"===e.name));if(e){const r=await this.layer.queryCachedStatistics("CLASS_CODE"),i=r?.labels?.labels;i&&(e.domain=new t({codedValues:i.map((e=>({code:e.value,name:e.label})))}))}if(null==this.featureSettings.popupTemplate.expressionInfos&&(this.featureSettings.popupTemplate.expressionInfos=[]),this.schema.fields.some((e=>"RGB"===e.name))){this.featureSettings.popupTemplate.fieldInfos.find((e=>"RGB"===e.fieldName)).visible=!1,this.featureSettings.popupTemplate.fieldInfos=[...this.featureSettings.popupTemplate.fieldInfos,new i({fieldName:"expression/__gcx-rgb"})],this.featureSettings.popupTemplate.expressionInfos=[...this.featureSettings.popupTemplate.expressionInfos,new r({expression:"var rgb = $feature.RGB; var red = Floor(rgb/65536,0); var green = Floor((rgb-(red*65536))/256,0); var blue = rgb-(red*65536)-(green*256); return 'rgb(' + red + ',' + green + ',' + blue + ')';",name:"__gcx-rgb",returnType:"string",title:"RGB"})]}if(this.schema.fields.some((e=>"RETURNS"===e.name))){this.featureSettings.popupTemplate.fieldInfos.find((e=>"RETURNS"===e.fieldName)).visible=!1,this.featureSettings.popupTemplate.fieldInfos=[...this.featureSettings.popupTemplate.fieldInfos,new i({fieldName:"expression/__gcx-returns"})],this.featureSettings.popupTemplate.expressionInfos=[...this.featureSettings.popupTemplate.expressionInfos,new r({expression:"var returnnumber = $feature.RETURNS % 16; var numberofreturns = Floor($feature.RETURNS / 16); return returnnumber + ' / ' + numberofreturns;",name:"__gcx-returns",returnType:"string",title:"RETURNS"})]}}};g=e([s],g);export{g as PointCloudLayerExtension};let c=class extends u{_fieldCollection;constructor(e){super(e),this._fieldCollection=new l(new f({parent:e,targetProperty:"layer",arrayProperty:"fields"})),a(this,"_fields")}get _fields(){return this._fieldCollection}_getPropertyBindings(){return{spatialReference:{property:"spatialReference",readonly:!0}}}};c=e([s],c);
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{_isRouteLayerJson as r}from"../json/FeatureLayerJson.js";import{applyJsonToLayer as t}from"../json/LayerJson.js";import{serializable as a}from"../support/Serializable.js";import{isRouteLayer as s}from"../utilities/_layers.js";import{checkArg as i}from"../utilities/checkArg.js";import{LayerExtension as o,LayerExtensionSchema as l}from"./_LayerExtension.js";export const ROUTE_LAYER_TYPE="route-layer";let p=class extends o{get hasFeatures(){return!0}get layer(){return super.layer}get supportsSublayers(){return!1}constructor(e){super(e),this.layer&&this.layer._fields&&this.schema?.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(this.layer._fields))}async _onInitialize(){return this.watch("layer",(e=>{e._fields&&this.schema?.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(e._fields))})),super._onInitialize()}_applyLayerProperties(e,t){return e.hasOwnProperty("featureCollection")&&i("layerJson",e).satisfies(r),super._applyLayerProperties(e,t)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISFeatureLayer",featureCollectionType:"route"}}}}_isSupportedLayer(e){return s(e)}async _applyPortalItemProperties(e){if("Feature Collection"!==e.type)throw new Error(`Cannot create Route Layer from Portal item that has type: ${e.type}`);const a=await e.fetchData();if(!r({layerType:"ArcGISFeatureLayer",featureCollection:a}))throw new Error("Cannot create Route Layer from Portal item that contains a non route layer feature collection");return t({layerType:"ArcGISFeatureLayer",featureCollection:a},this.layer)}_capabilities(){return{supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!0,supportsUpdate:!1,supportsAttachmentEditing:!1,supportsStandardizedQueries:!0}}_getSerializableLayerType(){return"route-layer"}_getSerializableRefLayerProperties(){return this.layer?.featureCollectionType?{featureCollectionType:this.layer.featureCollectionType}:{}}_createSchema(){const e=new n(this);return e.primaryKeyField="globalid",e}};p=e([a],p);export{p as RouteLayerExtension};let n=class extends l{get hasGeometry(){return!0}};n=e([a],n);export{n as RouteLayerExtensionSchema};
1
+ import{__decorate as e}from"tslib";import{_isRouteLayerJson as r}from"../json/FeatureLayerJson.js";import{applyJsonToLayer as t}from"../json/LayerJson.js";import{serializable as a}from"../support/Serializable.js";import{watch as s}from"../support/observableUtils.js";import{isRouteLayer as o}from"../utilities/_layers.js";import{checkArg as i}from"../utilities/checkArg.js";import{LayerExtension as l,LayerExtensionSchema as p}from"./_LayerExtension.js";export const ROUTE_LAYER_TYPE="route-layer";let n=class extends l{get hasFeatures(){return!0}get layer(){return super.layer}get supportsSublayers(){return!1}constructor(e){super(e),this.layer&&this.layer._fields&&this.schema?.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(this.layer._fields))}async _onInitialize(){return s(this,"layer",(e=>{e._fields&&this.schema?.fields&&(this.schema.fields.removeAll(),this.schema.fields.addMany(e._fields))})),super._onInitialize()}_applyLayerProperties(e,t){return e.hasOwnProperty("featureCollection")&&i("layerJson",e).satisfies(r),super._applyLayerProperties(e,t)}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISFeatureLayer",featureCollectionType:"route"}}}}_isSupportedLayer(e){return o(e)}async _applyPortalItemProperties(e){if("Feature Collection"!==e.type)throw new Error(`Cannot create Route Layer from Portal item that has type: ${e.type}`);const a=await e.fetchData();if(!r({layerType:"ArcGISFeatureLayer",featureCollection:a}))throw new Error("Cannot create Route Layer from Portal item that contains a non route layer feature collection");return t({layerType:"ArcGISFeatureLayer",featureCollection:a},this.layer)}_capabilities(){return{supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!0,supportsUpdate:!1,supportsAttachmentEditing:!1,supportsStandardizedQueries:!0}}_getSerializableLayerType(){return"route-layer"}_getSerializableRefLayerProperties(){return this.layer?.featureCollectionType?{featureCollectionType:this.layer.featureCollectionType}:{}}_createSchema(){const e=new y(this);return e.primaryKeyField="globalid",e}};n=e([a],n);export{n as RouteLayerExtension};let y=class extends p{get hasGeometry(){return!0}};y=e([a],y);export{y as RouteLayerExtensionSchema};
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{serializable as t}from"../support/Serializable.js";import{ReadOnlyCollection as r}from"../utilities/ReadOnlyCollection.js";import{isSceneLayer as i}from"../utilities/_layers.js";import{LayerExtension as a,LayerExtensionSchema as s}from"./_LayerExtension.js";import{ArrayWrappedCollection as l}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as n}from"./support/PopupTemplateFeatureSettings.js";import{addOutFields as o}from"./support/layers.js";let p=class extends a{get layer(){return super.layer}get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}_enableClientSideData;get renderer(){return this.layer?.renderer}get hasFeatures(){return!0}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}get canChangeDefinitionExpression(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}_capabilities(){return Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsAttachmentEditing:!1,supportsStandardizedQueries:!0})}async _onInitialize(){await super._onInitialize(),this._updateClientSideFields(),this._watchHandles.push(this.watch("layer",(()=>{this._updateClientSideFields()}),!0)),this.layer.associatedLayer||this.layer.outFields||(this.layer.outFields=this.layer.fields.map((e=>e.name)),this.layer.outFields&&!this.layer.outFields.includes(this.layer.objectIdField)&&this.layer.outFields.push(this.layer.objectIdField))}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISSceneServiceLayer"}},enableClientSideData:{serializeModes:["initial"],default:!1}}}_isSupportedLayer(e){return i(e)}_createSchema(){return new d(this)}_createFeatureSettings(){return new n(this)}async _applyPortalItemProperties(e){if("Scene Service"!==e.type)throw new Error(`Cannot create Scene Layer from Portal item that has type: ${e.type}`);if(!e.typeKeywords.includes("3DObject")&&!e.typeKeywords.includes("Point"))throw new Error("Cannot create Scene Layer from Portal item that does not reference a Scene layer");this.layer.url=e.url||this.layer.url}_updateClientSideFields(){this.layer&&this._enableClientSideData&&o(this.layer,this.featureSettings.outFields)}};p=e([t],p);export{p as SceneLayerExtension};let d=class extends s{_fieldsCollection;constructor(e){super(e),this._fieldsCollection=new r(new l({parent:e,targetProperty:"layer",arrayProperty:"fields"})),this.notifyChange("_fields")}_getPropertyBindings(){return{spatialReference:"spatialReference",geometryType:"geometryType"}}get _fields(){return this._fieldsCollection}};d=e([t],d);
1
+ import{__decorate as e}from"tslib";import{serializable as t}from"../support/Serializable.js";import{notifyChange as r,watch as i}from"../support/observableUtils.js";import{ReadOnlyCollection as s}from"../utilities/ReadOnlyCollection.js";import{isSceneLayer as a}from"../utilities/_layers.js";import{LayerExtension as l,LayerExtensionSchema as n}from"./_LayerExtension.js";import{ArrayWrappedCollection as o}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as p}from"./support/PopupTemplateFeatureSettings.js";import{addOutFields as d}from"./support/layers.js";let u=class extends l{get layer(){return super.layer}get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}_enableClientSideData;get renderer(){return this.layer?.renderer}get hasFeatures(){return!0}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}get canChangeDefinitionExpression(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}_capabilities(){return Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsAttachmentEditing:!1,supportsStandardizedQueries:!0})}async _onInitialize(){await super._onInitialize(),this._updateClientSideFields(),this._watchHandles.push(i(this,"layer",(()=>{this._updateClientSideFields()}),{sync:!0})),this.layer.associatedLayer||this.layer.outFields||(this.layer.outFields=this.layer.fields.map((e=>e.name)),this.layer.outFields&&!this.layer.outFields.includes(this.layer.objectIdField)&&this.layer.outFields.push(this.layer.objectIdField))}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISSceneServiceLayer"}},enableClientSideData:{serializeModes:["initial"],default:!1}}}_isSupportedLayer(e){return a(e)}_createSchema(){return new y(this)}_createFeatureSettings(){return new p(this)}async _applyPortalItemProperties(e){if("Scene Service"!==e.type)throw new Error(`Cannot create Scene Layer from Portal item that has type: ${e.type}`);if(!e.typeKeywords.includes("3DObject")&&!e.typeKeywords.includes("Point"))throw new Error("Cannot create Scene Layer from Portal item that does not reference a Scene layer");this.layer.url=e.url||this.layer.url}_updateClientSideFields(){this.layer&&this._enableClientSideData&&d(this.layer,this.featureSettings.outFields)}};u=e([t],u);export{u as SceneLayerExtension};let y=class extends n{_fieldsCollection;constructor(e){super(e),this._fieldsCollection=new s(new o({parent:e,targetProperty:"layer",arrayProperty:"fields"})),r(this,"_fields")}_getPropertyBindings(){return{spatialReference:"spatialReference",geometryType:"geometryType"}}get _fields(){return this._fieldsCollection}};y=e([t],y);
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{applyJsonToLayer as t,layerToJson as r}from"../json/LayerJson.js";import{serializable as i}from"../support/Serializable.js";import{ReadOnlyCollection as a}from"../utilities/ReadOnlyCollection.js";import{isStreamLayer as n}from"../utilities/_layers.js";import{LayerExtension as s,LayerExtensionSchema as o}from"./_LayerExtension.js";import{ArrayWrappedCollection as l}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as p}from"./support/PopupTemplateFeatureSettings.js";let y=class extends s{get layer(){return super.layer}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}get hasFeatures(){return!0}get renderer(){return this.layer.renderer}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}get canChangeDefinitionExpression(){return!0}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{layerDefinition:t}=r(this.layer),{definitionExpression:i,drawingInfo:a}=t??{};return i&&(e.layerDefinition={...e.layerDefinition,definitionExpression:i}),a&&(e.layerDefinition={...e.layerDefinition,drawingInfo:a}),e}_capabilities(){return{...super._capabilities(),supportsStandardizedQueries:!0}}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISStreamLayer"}}}}_createSchema(){return new c(this)}_isSupportedLayer(e){return n(e)}_createFeatureSettings(){return new u(this)}async _applyPortalItemProperties(e){if("Stream Service"!==e.type)throw new Error(`Cannot create Stream Layer from Portal item that has type: ${e.type}`);this.layer.url=e.url||this.layer.url;const r=await e.fetchData();r&&Object.keys(r).length>0&&await t(r,this.layer)}};y=e([i],y);export{y as StreamLayerExtension};let c=class extends o{_fieldCollection;constructor(e){super(e),this._fieldCollection=this._createFieldCollection(),this.notifyChange("_fields")}get _fields(){return this._fieldCollection}_createFieldCollection(){return new a(new l({parent:this._layerExtension,targetProperty:"layer",arrayProperty:"fields"}))}_getPropertyBindings(){return{primaryKeyField:"objectIdField",geometryType:"geometryType",spatialReference:"spatialReference",displayField:"displayField"}}};c=e([i],c);export{c as StreamLayerSchema};let u=class extends p{get zoomScale(){const e="point"===this._layerExtension.schema.geometryType?this._layerExtension.layer.maxScale:void 0;return this._getSetting("zoomScale",e)}set zoomScale(e){this._setSetting("zoomScale",e)}};u=e([i],u);
1
+ import{__decorate as e}from"tslib";import{applyJsonToLayer as r,layerToJson as t}from"../json/LayerJson.js";import{serializable as i}from"../support/Serializable.js";import{notifyChange as a}from"../support/observableUtils.js";import{ReadOnlyCollection as n}from"../utilities/ReadOnlyCollection.js";import{isStreamLayer as s}from"../utilities/_layers.js";import{LayerExtension as o,LayerExtensionSchema as l}from"./_LayerExtension.js";import{ArrayWrappedCollection as p}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as y}from"./support/PopupTemplateFeatureSettings.js";let c=class extends o{get layer(){return super.layer}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}get hasFeatures(){return!0}get renderer(){return this.layer.renderer}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}get canChangeDefinitionExpression(){return!0}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{layerDefinition:r}=t(this.layer),{definitionExpression:i,drawingInfo:a}=r??{};return i&&(e.layerDefinition={...e.layerDefinition,definitionExpression:i}),a&&(e.layerDefinition={...e.layerDefinition,drawingInfo:a}),e}_capabilities(){return{...super._capabilities(),supportsStandardizedQueries:!0}}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"ArcGISStreamLayer"}}}}_createSchema(){return new u(this)}_isSupportedLayer(e){return s(e)}_createFeatureSettings(){return new m(this)}async _applyPortalItemProperties(e){if("Stream Service"!==e.type)throw new Error(`Cannot create Stream Layer from Portal item that has type: ${e.type}`);this.layer.url=e.url||this.layer.url;const t=await e.fetchData();t&&Object.keys(t).length>0&&await r(t,this.layer)}};c=e([i],c);export{c as StreamLayerExtension};let u=class extends l{_fieldCollection;constructor(e){super(e),this._fieldCollection=this._createFieldCollection(),a(this,"_fields")}get _fields(){return this._fieldCollection}_createFieldCollection(){return new n(new p({parent:this._layerExtension,targetProperty:"layer",arrayProperty:"fields"}))}_getPropertyBindings(){return{primaryKeyField:"objectIdField",geometryType:"geometryType",spatialReference:"spatialReference",displayField:"displayField"}}};u=e([i],u);export{u as StreamLayerSchema};let m=class extends y{get zoomScale(){const e="point"===this._layerExtension.schema.geometryType?this._layerExtension.layer.maxScale:void 0;return this._getSetting("zoomScale",e)}set zoomScale(e){this._setSetting("zoomScale",e)}};m=e([i],m);
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import t from"@arcgis/core/layers/support/FeatureTemplate.js";import r from"@arcgis/core/layers/support/FeatureType.js";import s from"@arcgis/core/rest/support/AttachmentQuery";import{toAttachment as i}from"../data/Attachment.js";import{addAttachment as a,deleteAttachments as l,supportsAttachmentEditing as n}from"../data/support/attachments.js";import{applyJsonToLayer as o,layerToJson as y}from"../json/LayerJson.js";import{serializable as u}from"../support/Serializable.js";import{ArcGISRelationshipCollection as p}from"../support/_ArcGISRelationshipCollection.js";import{applyEdits as d}from"../support/_featureEdit.js";import{ReadOnlyCollection as c}from"../utilities/ReadOnlyCollection.js";import{isFeatureLayer as h,isSubtypeGroupLayer as m}from"../utilities/_layers.js";import{getGdbVersion as b}from"../utilities/_version.js";import{parse as _}from"../utilities/format/number.js";import{caseInsensitiveEquals as f}from"../utilities/string.js";import{onCollectionPropertyChange as g}from"../utilities/watch.js";import{LayerExtension as S,LayerExtensionReadOnlySchema as C}from"./_LayerExtension.js";import{SublayerExtension as F}from"./_SublayerExtension.js";import{ArrayWrappedCollection as w}from"./support/ArrayWrappedCollection.js";import{addOutFields as x}from"./support/layers.js";let j=class extends S{attachmentTypes;get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get sublayersAreReadOnly(){return!1}get hasFeatures(){return!0}get canChangeDefinitionExpression(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}_subtypes;_enableClientSideData;constructor(e){super(e),g(this,"layer.sublayers",this._onSubtypeSublayersChange)}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const t=y(this.layer);return t.layers&&(e.layers=t.layers.map((e=>{const{layerDefinition:t,visibility:r,subtypeCode:s,layerType:i}=e,a={layerType:i,visibility:r,subtypeCode:s};return t?.drawingInfo&&(a.layerDefinition={drawingInfo:t.drawingInfo}),a}))),e}_createRelationships(){return new SubtypeGroupLayerRelationshipCollection(this)}async _onInitialize(){await super._onInitialize(),await this.relationships.initialize(),this._updateSubtypes(),this._addTemplatesToSublayers(),this._addDomainsToFields()}async _postInitialize(){await super._postInitialize(),this._updateClientSideFields(),this._watchHandles.push(this.watch("layer",(()=>{this._updateClientSideFields()}),!0))}_capabilities(){const e=n(this.layer);return this.layer?.capabilities?.operations?{...this.layer.capabilities.operations,supportsAttachmentEditing:e,supportsStandardizedQueries:this.layer.capabilities?.query?.supportsStandardizedQueriesOnly}:{...super._capabilities(),supportsAttachmentEditing:e}}_createSublayerExtension(e){return F.factory.create(e,"SubtypeSublayer")}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"SubtypeGroupLayer"}},enableClientSideData:{serializeModes:["initial"],default:!1},attachmentTypes:["initial"]}}_isSupportedLayer(e){return m(e)}_createSchema(){return new E(this)}async _getAttachments(e){if(!this.layer?.capabilities?.data?.supportsAttachment)return[];const t=+e.primaryKey,r=this.layer?.gdbVersion??b(this.layer?.customParameters),a=new s({objectIds:[t]}),l=await this.layer.queryAttachments(a);return l?.[t]?.length?l[t].map((e=>i(e,{gdbVersion:r}))):[]}async _addAttachment(e,t){return a(e,this.layer,t,{attachmentTypes:this.attachmentTypes})}async _deleteAttachments(e,t){return l(e,this.layer,t)}async _applyPortalItemProperties(e){if("Feature Service"!==e.type)throw new Error(`Cannot create SubtypeGroupLayer from Portal item that has type: ${e.type}`);let{url:t}=e;t.match(".*MapServer/\\d{1,}/?$")||t.match(".*FeatureServer/\\d{1,}/?$")||(t=`${t}/0`),this.layer.url=t||this.layer.url;const r=await e.fetchData();r&&await o(r,this.layer)}async*_getFeatures(e,t){this.layer||(yield*super._getFeatures(e,t));const r=this.layer.createQuery();r.objectIds=e.map((e=>_(e))),r.where=void 0,r.outFields=t.outFields,r.returnGeometry=t.returnGeometry,yield*(await import("../support/_query.js")).executeQuery(r,this,this.layer,t.cancelToken)}async _addFeatures(e,t){await d({adds:e},this.layer,t)}async _updateFeatures(e,t){await d({updates:e},this.layer,t)}async _deleteFeatures(e,t){await d({deletes:e},this.layer,t)}_onSubtypeSublayersChange=e=>{e.removed?.length&&(this.sublayerExtensions.removeMany(this.sublayerExtensions.filter((e=>!e.sublayer))),this._updateSubtypes())};_updateClientSideFields(){this.layer&&this._enableClientSideData&&(x(this.layer,this.featureSettings.outFields),this.allSublayerExtensions.forEach((e=>x(this.layer,e.featureSettings.outFields))))}_updateSubtypes(){if(!this.layer.subtypes)return;const e=[];for(const t of this.layer.sublayers){const s=this.layer.subtypes.find((e=>e.code===t.subtypeCode));s&&e.push(new r({id:s.code,name:s.name,domains:s.domains??{},templates:t.templates}))}this._subtypes=e}_addTemplatesToSublayers(){const e=this.layer.sourceJSON?.templates?.map((e=>t.fromJSON(e)));for(let r=0;r<this.sublayerExtensions.length;r++){const s=this.sublayerExtensions.getItemAt(r);if(null==s.sublayer)continue;const i=this.layer.sourceJSON?.types.filter((e=>e.name===s.title))[0]?.templates;(null==s.sublayer.templates||0===s.sublayer.templates.length||I(s))&&i?s.sublayer.templates=i.map((e=>t.fromJSON(e))):1!==e.length||1===this.sublayerExtensions.length||s.sublayer.templates?I(s)&&(s.sublayer.templates[0].name=s.sublayer.title):s.sublayer.templates=e.map((e=>{const r=t.fromJSON(e.toJSON());r.name=s.title;const i=r.prototype?.attributes;return"number"==typeof i?.[this.layer.subtypeField]&&(i[this.layer.subtypeField]=s.sublayer.subtypeCode),r}))}}_addDomainsToFields(){if(this._subtypes)for(const e of this._subtypes)for(const[t,r]of Object.entries(e.domains)){const e=this.layer.fields.find((e=>f(e.name,t)));e&&!e.domain&&(e.domain=r)}}};j=e([u],j);export{j as SubtypeGroupLayerExtension};let E=class extends C{_fieldCollection;_typesCollection;constructor(e){super(e),this._fieldCollection=this._createFieldCollection(),this._typesCollection=this._createTypesCollection(),this.notifyChange("_fields")}get types(){return this._typesCollection}get _fields(){return this._fieldCollection}_createFieldCollection(){return new c(new w({parent:this._layerExtension,targetProperty:"layer",arrayProperty:"fields"}))}_createTypesCollection(){return new c(new w({parent:this._layerExtension,arrayProperty:"_subtypes"}))}_getPropertyBindings(){return{primaryKeyField:"objectIdField",geometryType:"geometryType",spatialReference:"spatialReference",displayField:"displayField",typeIdField:"subtypeField"}}};E=e([u],E);export{E as SubtypeGroupLayerSchema};export class SubtypeGroupLayerRelationshipCollection extends p{get _sourceUrl(){const e=this._source.layer;if(e)return`${e.url}/${e.layerId}`}get _sourceLayerId(){const e=this._source.layer;return e?.layerId}_findRelatedSource(e){if(!this._source.mapExtension||!this._source.layer||!this._sourceUrl)return;const t=this._sourceUrl.slice(0,this._sourceUrl.length-`${this._sourceLayerId}`.length-1),r=this._source.mapExtension.allLayerExtensions.initializedItems.find((r=>(h(r.layer)||m(r.layer))&&r.layer.url===t&&r.layer.layerId===e));return r||this._source.mapExtension.tableExtensions.initializedItems.find((r=>h(r.table)&&r.table.url===t&&r.table.layerId===e))}}function I(e){return 1===e.sublayer?.templates?.length&&"New Feature"===e.sublayer.templates[0].name}
1
+ import{__decorate as e}from"tslib";import t from"@arcgis/core/layers/support/FeatureTemplate.js";import r from"@arcgis/core/layers/support/FeatureType.js";import s from"@arcgis/core/rest/support/AttachmentQuery";import{toAttachment as i}from"../data/Attachment.js";import{addAttachment as a,deleteAttachments as l,supportsAttachmentEditing as n}from"../data/support/attachments.js";import{applyJsonToLayer as o,layerToJson as y}from"../json/LayerJson.js";import{serializable as p}from"../support/Serializable.js";import{ArcGISRelationshipCollection as u}from"../support/_ArcGISRelationshipCollection.js";import{applyEdits as d}from"../support/_featureEdit.js";import{notifyChange as c,watch as h}from"../support/observableUtils.js";import{ReadOnlyCollection as m}from"../utilities/ReadOnlyCollection.js";import{isFeatureLayer as b,isSubtypeGroupLayer as _}from"../utilities/_layers.js";import{getGdbVersion as f}from"../utilities/_version.js";import{parse as S}from"../utilities/format/number.js";import{caseInsensitiveEquals as g}from"../utilities/string.js";import{onCollectionPropertyChange as C}from"../utilities/watch.js";import{LayerExtension as F,LayerExtensionReadOnlySchema as w}from"./_LayerExtension.js";import{SublayerExtension as j}from"./_SublayerExtension.js";import{ArrayWrappedCollection as x}from"./support/ArrayWrappedCollection.js";import{addOutFields as E}from"./support/layers.js";let I=class extends F{attachmentTypes;get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get sublayersAreReadOnly(){return!1}get hasFeatures(){return!0}get canChangeDefinitionExpression(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}_subtypes;_enableClientSideData;constructor(e){super(e),C(this,"layer.sublayers",this._onSubtypeSublayersChange)}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const t=y(this.layer);return t.layers&&(e.layers=t.layers.map((e=>{const{layerDefinition:t,visibility:r,subtypeCode:s,layerType:i}=e,a={layerType:i,visibility:r,subtypeCode:s};return t?.drawingInfo&&(a.layerDefinition={drawingInfo:t.drawingInfo}),a}))),e}_createRelationships(){return new SubtypeGroupLayerRelationshipCollection(this)}async _onInitialize(){await super._onInitialize(),await this.relationships.initialize(),this._updateSubtypes(),this._addTemplatesToSublayers(),this._addDomainsToFields()}async _postInitialize(){await super._postInitialize(),this._updateClientSideFields(),this._watchHandles.push(h(this,"layer",(()=>{this._updateClientSideFields()}),{sync:!0}))}_capabilities(){const e=n(this.layer);return this.layer?.capabilities?.operations?{...this.layer.capabilities.operations,supportsAttachmentEditing:e,supportsStandardizedQueries:this.layer.capabilities?.query?.supportsStandardizedQueriesOnly}:{...super._capabilities(),supportsAttachmentEditing:e}}_createSublayerExtension(e){return j.factory.create(e,"SubtypeSublayer")}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"SubtypeGroupLayer"}},enableClientSideData:{serializeModes:["initial"],default:!1},attachmentTypes:["initial"]}}_isSupportedLayer(e){return _(e)}_createSchema(){return new T(this)}async _getAttachments(e){if(!this.layer?.capabilities?.data?.supportsAttachment)return[];const t=+e.primaryKey,r=this.layer?.gdbVersion??f(this.layer?.customParameters),a=new s({objectIds:[t]}),l=await this.layer.queryAttachments(a);return l?.[t]?.length?l[t].map((e=>i(e,{gdbVersion:r}))):[]}async _addAttachment(e,t){return a(e,this.layer,t,{attachmentTypes:this.attachmentTypes})}async _deleteAttachments(e,t){return l(e,this.layer,t)}async _applyPortalItemProperties(e){if("Feature Service"!==e.type)throw new Error(`Cannot create SubtypeGroupLayer from Portal item that has type: ${e.type}`);let{url:t}=e;t.match(".*MapServer/\\d{1,}/?$")||t.match(".*FeatureServer/\\d{1,}/?$")||(t=`${t}/0`),this.layer.url=t||this.layer.url;const r=await e.fetchData();r&&await o(r,this.layer)}async*_getFeatures(e,t){this.layer||(yield*super._getFeatures(e,t));const r=this.layer.createQuery();r.objectIds=e.map((e=>S(e))),r.where=void 0,r.outFields=t.outFields,r.returnGeometry=t.returnGeometry,yield*(await import("../support/_query.js")).executeQuery(r,this,this.layer,t.cancelToken)}async _addFeatures(e,t){await d({adds:e},this.layer,t)}async _updateFeatures(e,t){await d({updates:e},this.layer,t)}async _deleteFeatures(e,t){await d({deletes:e},this.layer,t)}_onSubtypeSublayersChange=e=>{e.removed?.length&&(this.sublayerExtensions.removeMany(this.sublayerExtensions.filter((e=>!e.sublayer))),this._updateSubtypes())};_updateClientSideFields(){this.layer&&this._enableClientSideData&&(E(this.layer,this.featureSettings.outFields),this.allSublayerExtensions.forEach((e=>E(this.layer,e.featureSettings.outFields))))}_updateSubtypes(){if(!this.layer.subtypes)return;const e=[];for(const t of this.layer.sublayers){const s=this.layer.subtypes.find((e=>e.code===t.subtypeCode));s&&e.push(new r({id:s.code,name:s.name,domains:s.domains??{},templates:t.templates}))}this._subtypes=e}_addTemplatesToSublayers(){const e=this.layer.sourceJSON?.templates?.map((e=>t.fromJSON(e)));for(let r=0;r<this.sublayerExtensions.length;r++){const s=this.sublayerExtensions.getItemAt(r);if(null==s.sublayer)continue;const i=this.layer.sourceJSON?.types.filter((e=>e.name===s.title))[0]?.templates;(null==s.sublayer.templates||0===s.sublayer.templates.length||A(s))&&i?s.sublayer.templates=i.map((e=>t.fromJSON(e))):1!==e.length||1===this.sublayerExtensions.length||s.sublayer.templates?A(s)&&(s.sublayer.templates[0].name=s.sublayer.title):s.sublayer.templates=e.map((e=>{const r=t.fromJSON(e.toJSON());r.name=s.title;const i=r.prototype?.attributes;return"number"==typeof i?.[this.layer.subtypeField]&&(i[this.layer.subtypeField]=s.sublayer.subtypeCode),r}))}}_addDomainsToFields(){if(this._subtypes)for(const e of this._subtypes)for(const[t,r]of Object.entries(e.domains)){const e=this.layer.fields.find((e=>g(e.name,t)));e&&!e.domain&&(e.domain=r)}}};I=e([p],I);export{I as SubtypeGroupLayerExtension};let T=class extends w{_fieldCollection;_typesCollection;constructor(e){super(e),this._fieldCollection=this._createFieldCollection(),this._typesCollection=this._createTypesCollection(),c(this,"_fields")}get types(){return this._typesCollection}get _fields(){return this._fieldCollection}_createFieldCollection(){return new m(new x({parent:this._layerExtension,targetProperty:"layer",arrayProperty:"fields"}))}_createTypesCollection(){return new m(new x({parent:this._layerExtension,arrayProperty:"_subtypes"}))}_getPropertyBindings(){return{primaryKeyField:"objectIdField",geometryType:"geometryType",spatialReference:"spatialReference",displayField:"displayField",typeIdField:"subtypeField"}}};T=e([p],T);export{T as SubtypeGroupLayerSchema};export class SubtypeGroupLayerRelationshipCollection extends u{get _sourceUrl(){const e=this._source.layer;if(e)return`${e.url}/${e.layerId}`}get _sourceLayerId(){const e=this._source.layer;return e?.layerId}_findRelatedSource(e){if(!this._source.mapExtension||!this._source.layer||!this._sourceUrl)return;const t=this._sourceUrl.slice(0,this._sourceUrl.length-`${this._sourceLayerId}`.length-1),r=this._source.mapExtension.allLayerExtensions.initializedItems.find((r=>(b(r.layer)||_(r.layer))&&r.layer.url===t&&r.layer.layerId===e));return r||this._source.mapExtension.tableExtensions.initializedItems.find((r=>b(r.table)&&r.table.url===t&&r.table.layerId===e))}}function A(e){return 1===e.sublayer?.templates?.length&&"New Feature"===e.sublayer.templates[0].name}
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import r from"@arcgis/core/rest/support/AttachmentQuery";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{toAttachment as i}from"../data/Attachment.js";import{addAttachment as a,deleteAttachments as n}from"../data/support/attachments.js";import{applyJsonToSublayer as o,jsonToSublayer as l,sublayerToJson as y}from"../json/SublayerJson.js";import{serializable as u}from"../support/Serializable.js";import{ArcGISRelationshipCollection as p}from"../support/_ArcGISRelationshipCollection.js";import{applyEdits as c}from"../support/_featureEdit.js";import{ReadOnlyCollection as d}from"../utilities/ReadOnlyCollection.js";import{getGdbVersion as h}from"../utilities/_version.js";import{parse as m}from"../utilities/format/number.js";import{isFeatureLayer as b,isSubtypeGroupLayer as _,isSubtypeSublayer as g}from"../utilities/layers.js";import{caseInsensitiveEquals as f}from"../utilities/string.js";import{SublayerExtension as x,SublayerSchema as E}from"./_SublayerExtension.js";import{ArrayWrappedCollection as S}from"./support/ArrayWrappedCollection.js";import{ExtensionBaseLayerListSettings as w}from"./support/LayerListSettings.js";import{PopupTemplateFeatureSettings as F}from"./support/PopupTemplateFeatureSettings.js";let C=class extends x{get supportsSublayers(){return!1}get layerExtension(){return super.layerExtension}get renderer(){return this.sublayer?.renderer}get hasFeatures(){return!0}get sublayer(){return super.sublayer}get sublayerExtensions(){return super.sublayerExtensions}get attachmentTypes(){return this.layerExtension?.attachmentTypes}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}get canChangeOpacity(){return!1}async _addAttachment(e,t){return a(e,this.sublayer.layer,t,{attachmentTypes:this.layerExtension?.attachmentTypes})}async _deleteAttachments(e,t){return n(e,this.sublayer.layer,t)}_isSupportedSublayer(e){return g(e)}_createLayerListSettings(e){return new z(e,this)}_createFeatureSettings(){return new T(this)}_createSublayer(e){return l(e,"SubtypeGroupLayer")}_createSchema(){return new I(this)}_createRelationships(){return new SubtypeSublayerRelationshipCollection(this)}async _applySublayerProperties(e,t){return o(e,t)}_capabilities(){return this.layerExtension?.capabilities}async _onInitialize(){const e=(await import("@arcgis/core/layers/support/SubtypeSublayer.js")).default;"layer"in e.prototype||Object.defineProperty(e.prototype,"layer",{get:function(){return this.parent},set:function(e){this.parent=e}}),await super._onInitialize(),await this.relationships.initialize(),this._watchHandles.push(this.watch("layerExtension.attachmentTypes",(()=>this.notifyChange("attachmentTypes")))),this._addDomainsToFields()}async _postInitialize(){await super._postInitialize(),this.layerListSettings.onLayerExtensionInitialized()}_getFeatures(e,t){if(!this.sublayer?.layer)return super._getFeatures(e,t);const r=this.sublayer?.layer.createQuery();r.objectIds=e.map((e=>m(e))),r.where=void 0,r.outFields=t.outFields,r.returnGeometry=t.returnGeometry;const s=this;return{async*[Symbol.asyncIterator](){yield*(await import("../support/_query.js")).executeQuery(r,s,s.sublayer.layer,t.cancelToken)}}}async _getAttachments(e){if(!this.sublayer?.layer?.capabilities?.data?.supportsAttachment)return[];const t=+e.primaryKey,s=this.sublayer?.layer?.gdbVersion??h(this.sublayer?.layer?.customParameters),a=new r({objectIds:[t]}),n=await this.sublayer.layer.queryAttachments(a);return n?.[t]?.length?n[t].map((e=>i(e,{gdbVersion:s}))):[]}async _addFeatures(e,t){await c({adds:e},this.sublayer.layer,t)}async _updateFeatures(e,t){await c({updates:e},this.sublayer.layer,t)}async _deleteFeatures(e,t){await c({deletes:e},this.sublayer.layer,t)}_serializeSublayer(e){return y(e)}_addDomainsToFields(){const e=this.sublayer.parent.subtypes.find((e=>e.code===this.sublayer.subtypeCode));if(e?.domains)for(const[t,r]of Object.entries(e.domains)){const e=this.sublayer.fields.find((e=>f(e.name,t)));e&&!e.domain&&(e.domain=r)}}};C=e([u],C);export{C as SubtypeSublayerExtension};const j="This schema property is read-only.";let I=class extends E{_fieldCollection;_readonlyTypesCollection;_typesCollection;get primaryKeyField(){return this._sublayerExtension.sublayer?.layer?.objectIdField}set primaryKeyField(e){throw new s(j)}get geometryType(){return this._sublayerExtension.sublayer?.layer?.geometryType}set geometryType(e){throw new s(j)}get displayField(){return this._sublayerExtension.sublayer?.layer?.displayField}set displayField(e){throw new s(j)}get typeIdField(){return this._sublayerExtension.sublayer?.layer?.subtypeField}set typeIdField(e){throw new s(j)}get types(){return this._readonlyTypesCollection}constructor(e){super(e),this._fieldCollection=this._createFieldCollection(),this._typesCollection=new t,this._readonlyTypesCollection=new d(this._typesCollection);const r=()=>this._sublayerExtension.sublayer?.subtypeCode,s=()=>{const e=this._sublayerExtension.layerExtension?._subtypes?.find((e=>e.id===r()));return!!e&&(this._typesCollection.add(e),!0)};if(this._sublayerExtension.layerExtension?._subtypes?.some((e=>e.id===r())))s();else{const e=this._sublayerExtension.watch("layerExtension._subtypes",(()=>{s()&&e.remove()}),!0)}this.notifyChange("_fields")}get _fields(){return this._fieldCollection}_createFieldCollection(){return new d(new S({parent:this._sublayerExtension,targetProperty:"sublayer",arrayProperty:"fields"}))}_getPropertyBindings(){return{primaryKeyField:"parent.objectIdField",geometryType:"parent.geometryType",spatialReference:"parent.spatialReference",displayField:"parent.displayField",typeIdField:"parent.typeIdField"}}};I=e([u],I);export{I as SubtypeSublayerSchema};let T=class extends F{get zoomScale(){const e="point"===this._layerExtension.schema.geometryType?this._layerExtension.sublayer.maxScale:void 0;return this._getSetting("zoomScale",e)}set zoomScale(e){this._setSetting("zoomScale",e)}};T=e([u],T);let z=class extends w{get _layerSupportsHideChildren(){return!1}get _esriLayer(){return this._extension.sublayer}get _listModePath(){return"sublayer.listMode"}get _supportsChildren(){return!1}};z=e([u],z);export class SubtypeSublayerRelationshipCollection extends p{get _sourceUrl(){const e=this._source.sublayer?.layer;if(e)return`${e.url}/${e.layerId}`}get _sourceLayerId(){const e=this._source.sublayer?.layer;return e?.layerId}_findRelatedSource(e){if(!this._source.layerExtension?.mapExtension||!this._source.sublayer||!this._sourceUrl)return;const t=this._sourceUrl.slice(0,this._sourceUrl.length-`${this._sourceLayerId}`.length-1),r=this._source.layerExtension.mapExtension.allLayerExtensions.initializedItems.find((r=>(b(r.layer)||_(r.layer))&&r.layer.url===t&&r.layer.layerId===e));return r||this._source.layerExtension.mapExtension.tableExtensions.initializedItems.find((r=>b(r.table)&&r.table.url===t&&r.table.layerId===e))}}
1
+ import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import r from"@arcgis/core/rest/support/AttachmentQuery";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{toAttachment as i}from"../data/Attachment.js";import{addAttachment as a,deleteAttachments as n}from"../data/support/attachments.js";import{applyJsonToSublayer as o,jsonToSublayer as l,sublayerToJson as y}from"../json/SublayerJson.js";import{serializable as u}from"../support/Serializable.js";import{ArcGISRelationshipCollection as p}from"../support/_ArcGISRelationshipCollection.js";import{applyEdits as c}from"../support/_featureEdit.js";import{notifyChange as d,onWatch as h,watch as m}from"../support/observableUtils.js";import{ReadOnlyCollection as b}from"../utilities/ReadOnlyCollection.js";import{getGdbVersion as _}from"../utilities/_version.js";import{parse as g}from"../utilities/format/number.js";import{isFeatureLayer as f,isSubtypeGroupLayer as x,isSubtypeSublayer as E}from"../utilities/layers.js";import{caseInsensitiveEquals as S}from"../utilities/string.js";import{SublayerExtension as F,SublayerSchema as w}from"./_SublayerExtension.js";import{ArrayWrappedCollection as j}from"./support/ArrayWrappedCollection.js";import{ExtensionBaseLayerListSettings as C}from"./support/LayerListSettings.js";import{PopupTemplateFeatureSettings as I}from"./support/PopupTemplateFeatureSettings.js";let T=class extends F{get supportsSublayers(){return!1}get layerExtension(){return super.layerExtension}get renderer(){return this.sublayer?.renderer}get hasFeatures(){return!0}get sublayer(){return super.sublayer}get sublayerExtensions(){return super.sublayerExtensions}get attachmentTypes(){return this.layerExtension?.attachmentTypes}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}get canChangeOpacity(){return!1}async _addAttachment(e,t){return a(e,this.sublayer.layer,t,{attachmentTypes:this.layerExtension?.attachmentTypes})}async _deleteAttachments(e,t){return n(e,this.sublayer.layer,t)}_isSupportedSublayer(e){return E(e)}_createLayerListSettings(e){return new R(e,this)}_createFeatureSettings(){return new A(this)}_createSublayer(e){return l(e,"SubtypeGroupLayer")}_createSchema(){return new L(this)}_createRelationships(){return new SubtypeSublayerRelationshipCollection(this)}async _applySublayerProperties(e,t){return o(e,t)}_capabilities(){return this.layerExtension?.capabilities}async _onInitialize(){const e=(await import("@arcgis/core/layers/support/SubtypeSublayer.js")).default;"layer"in e.prototype||Object.defineProperty(e.prototype,"layer",{get:function(){return this.parent},set:function(e){this.parent=e}}),await super._onInitialize(),await this.relationships.initialize(),this._watchHandles.push(h(this,"attachmentTypes",(()=>m(this,"layerExtension.attachmentTypes",(()=>d(this,"attachmentTypes")),{sync:!0})))),this._addDomainsToFields()}async _postInitialize(){await super._postInitialize(),this.layerListSettings.onLayerExtensionInitialized()}_getFeatures(e,t){if(!this.sublayer?.layer)return super._getFeatures(e,t);const r=this.sublayer?.layer.createQuery();r.objectIds=e.map((e=>g(e))),r.where=void 0,r.outFields=t.outFields,r.returnGeometry=t.returnGeometry;const s=this;return{async*[Symbol.asyncIterator](){yield*(await import("../support/_query.js")).executeQuery(r,s,s.sublayer.layer,t.cancelToken)}}}async _getAttachments(e){if(!this.sublayer?.layer?.capabilities?.data?.supportsAttachment)return[];const t=+e.primaryKey,s=this.sublayer?.layer?.gdbVersion??_(this.sublayer?.layer?.customParameters),a=new r({objectIds:[t]}),n=await this.sublayer.layer.queryAttachments(a);return n?.[t]?.length?n[t].map((e=>i(e,{gdbVersion:s}))):[]}async _addFeatures(e,t){await c({adds:e},this.sublayer.layer,t)}async _updateFeatures(e,t){await c({updates:e},this.sublayer.layer,t)}async _deleteFeatures(e,t){await c({deletes:e},this.sublayer.layer,t)}_serializeSublayer(e){return y(e)}_addDomainsToFields(){const e=this.sublayer.parent.subtypes.find((e=>e.code===this.sublayer.subtypeCode));if(e?.domains)for(const[t,r]of Object.entries(e.domains)){const e=this.sublayer.fields.find((e=>S(e.name,t)));e&&!e.domain&&(e.domain=r)}}};T=e([u],T);export{T as SubtypeSublayerExtension};const z="This schema property is read-only.";let L=class extends w{_fieldCollection;_readonlyTypesCollection;_typesCollection;get primaryKeyField(){return this._sublayerExtension.sublayer?.layer?.objectIdField}set primaryKeyField(e){throw new s(z)}get geometryType(){return this._sublayerExtension.sublayer?.layer?.geometryType}set geometryType(e){throw new s(z)}get displayField(){return this._sublayerExtension.sublayer?.layer?.displayField}set displayField(e){throw new s(z)}get typeIdField(){return this._sublayerExtension.sublayer?.layer?.subtypeField}set typeIdField(e){throw new s(z)}get types(){return this._readonlyTypesCollection}constructor(e){super(e),this._fieldCollection=this._createFieldCollection(),this._typesCollection=new t,this._readonlyTypesCollection=new b(this._typesCollection);const r=()=>this._sublayerExtension.sublayer?.subtypeCode,s=()=>{const e=this._sublayerExtension.layerExtension?._subtypes?.find((e=>e.id===r()));return!!e&&(this._typesCollection.add(e),!0)};if(this._sublayerExtension.layerExtension?._subtypes?.some((e=>e.id===r())))s();else{const e=m(this._sublayerExtension,"layerExtension._subtypes",(()=>{s()&&e.remove()}),{sync:!0})}d(this,"_fields")}get _fields(){return this._fieldCollection}_createFieldCollection(){return new b(new j({parent:this._sublayerExtension,targetProperty:"sublayer",arrayProperty:"fields"}))}_getPropertyBindings(){return{primaryKeyField:"parent.objectIdField",geometryType:"parent.geometryType",spatialReference:"parent.spatialReference",displayField:"parent.displayField",typeIdField:"parent.typeIdField"}}};L=e([u],L);export{L as SubtypeSublayerSchema};let A=class extends I{get zoomScale(){const e="point"===this._layerExtension.schema.geometryType?this._layerExtension.sublayer.maxScale:void 0;return this._getSetting("zoomScale",e)}set zoomScale(e){this._setSetting("zoomScale",e)}};A=e([u],A);let R=class extends C{get _layerSupportsHideChildren(){return!1}get _esriLayer(){return this._extension.sublayer}get _listModePath(){return"sublayer.listMode"}get _supportsChildren(){return!1}};R=e([u],R);export class SubtypeSublayerRelationshipCollection extends p{get _sourceUrl(){const e=this._source.sublayer?.layer;if(e)return`${e.url}/${e.layerId}`}get _sourceLayerId(){const e=this._source.sublayer?.layer;return e?.layerId}_findRelatedSource(e){if(!this._source.layerExtension?.mapExtension||!this._source.sublayer||!this._sourceUrl)return;const t=this._sourceUrl.slice(0,this._sourceUrl.length-`${this._sourceLayerId}`.length-1),r=this._source.layerExtension.mapExtension.allLayerExtensions.initializedItems.find((r=>(f(r.layer)||x(r.layer))&&r.layer.url===t&&r.layer.layerId===e));return r||this._source.layerExtension.mapExtension.tableExtensions.initializedItems.find((r=>f(r.table)&&r.table.url===t&&r.table.layerId===e))}}
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{layerToJson as t}from"../json/LayerJson.js";import{serializable as i}from"../support/Serializable.js";import{ReadOnlyCollection as r}from"../utilities/ReadOnlyCollection.js";import{isWFSLayer as a}from"../utilities/_layers.js";import{LayerExtension as s,LayerExtensionSchema as n}from"./_LayerExtension.js";import{ArrayWrappedCollection as l}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as o}from"./support/PopupTemplateFeatureSettings.js";import{addOutFields as p}from"./support/layers.js";let d=class extends s{get renderer(){return this.layer?.renderer}get hasFeatures(){return!0}get layer(){return super.layer}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}get canChangeDefinitionExpression(){return!0}get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}_enableClientSideData;get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{layerDefinition:i}=t(this.layer),{definitionExpression:r,drawingInfo:a}=i??{};return r&&(e.layerDefinition={...e.layerDefinition,definitionExpression:r}),a&&(e.layerDefinition={...e.layerDefinition,drawingInfo:a}),e}async _onInitialize(){await super._onInitialize(),this._updateClientSideFields(),this._watchHandles.push(this.watch("layer",(()=>{this._updateClientSideFields()}),!0))}_applyPortalItemProperties(e){if("WFS"!==e.type)throw new Error(`Cannot create WFS layer from Portal item that has type: ${e.type}`);this.layer.url=e.url||this.layer.url}_capabilities(){return this.layer?.capabilities?.operations?{...this.layer.capabilities.operations,supportsAttachmentEditing:!1,supportsStandardizedQueries:this.layer.capabilities?.query?.supportsStandardizedQueriesOnly}:{...super._capabilities(),supportsStandardizedQueries:!0}}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"WFS"}},enableClientSideData:{serializeModes:["initial"],default:!1}}}_isSupportedLayer(e){return a(e)}_createFeatureSettings(){return new o(this)}_createSchema(){return new y(this)}async*_getFeatures(e,t){const i=this.layer.createQuery();i.objectIds=e,i.where=void 0,i.outFields=t.outFields,i.returnGeometry=t.returnGeometry,yield*(await import("../support/_query.js")).executeQuery(i,this,this.layer,t.cancelToken)}_updateClientSideFields(){this.layer&&this._enableClientSideData&&p(this.layer,this.featureSettings.outFields)}};d=e([i],d);export{d as WFSLayerExtension};let y=class extends n{_fieldsCollection;constructor(e){super(e),this._fieldsCollection=new r(new l({parent:e,targetProperty:"layer",arrayProperty:"fields"})),this.notifyChange("_fields")}_getPropertyBindings(){return{primaryKeyField:"objectIdField",geometryType:"geometryType",spatialReference:"spatialReference",displayField:"displayField"}}get _fields(){return this._fieldsCollection}};y=e([i],y);
1
+ import{__decorate as e}from"tslib";import{layerToJson as t}from"../json/LayerJson.js";import{serializable as r}from"../support/Serializable.js";import{notifyChange as i,watch as a}from"../support/observableUtils.js";import{ReadOnlyCollection as s}from"../utilities/ReadOnlyCollection.js";import{isWFSLayer as n}from"../utilities/_layers.js";import{LayerExtension as l,LayerExtensionSchema as o}from"./_LayerExtension.js";import{ArrayWrappedCollection as p}from"./support/ArrayWrappedCollection.js";import{PopupTemplateFeatureSettings as d}from"./support/PopupTemplateFeatureSettings.js";import{addOutFields as y}from"./support/layers.js";let u=class extends l{get renderer(){return this.layer?.renderer}get hasFeatures(){return!0}get layer(){return super.layer}get canChangeLabels(){return!0}get canChangeRenderer(){return!0}get canChangeDefinitionExpression(){return!0}get enableClientSideData(){return this._enableClientSideData}set enableClientSideData(e){this._enableClientSideData=e,this._updateClientSideFields()}_enableClientSideData;get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}_getProjectWebmapJSON(){const e=super._getProjectWebmapJSON();if(!e||this.dynamicallyAddedLayer)return e;const{layerDefinition:r}=t(this.layer),{definitionExpression:i,drawingInfo:a}=r??{};return i&&(e.layerDefinition={...e.layerDefinition,definitionExpression:i}),a&&(e.layerDefinition={...e.layerDefinition,drawingInfo:a}),e}async _onInitialize(){await super._onInitialize(),this._updateClientSideFields(),this._watchHandles.push(a(this,"layer",(()=>{this._updateClientSideFields()}),{sync:!0}))}_applyPortalItemProperties(e){if("WFS"!==e.type)throw new Error(`Cannot create WFS layer from Portal item that has type: ${e.type}`);this.layer.url=e.url||this.layer.url}_capabilities(){return this.layer?.capabilities?.operations?{...this.layer.capabilities.operations,supportsAttachmentEditing:!1,supportsStandardizedQueries:this.layer.capabilities?.query?.supportsStandardizedQueriesOnly}:{...super._capabilities(),supportsStandardizedQueries:!0}}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"WFS"}},enableClientSideData:{serializeModes:["initial"],default:!1}}}_isSupportedLayer(e){return n(e)}_createFeatureSettings(){return new d(this)}_createSchema(){return new h(this)}async*_getFeatures(e,t){const r=this.layer.createQuery();r.objectIds=e,r.where=void 0,r.outFields=t.outFields,r.returnGeometry=t.returnGeometry,yield*(await import("../support/_query.js")).executeQuery(r,this,this.layer,t.cancelToken)}_updateClientSideFields(){this.layer&&this._enableClientSideData&&y(this.layer,this.featureSettings.outFields)}};u=e([r],u);export{u as WFSLayerExtension};let h=class extends o{_fieldsCollection;constructor(e){super(e),this._fieldsCollection=new s(new p({parent:e,targetProperty:"layer",arrayProperty:"fields"})),i(this,"_fields")}_getPropertyBindings(){return{primaryKeyField:"objectIdField",geometryType:"geometryType",spatialReference:"spatialReference",displayField:"displayField"}}get _fields(){return this._fieldsCollection}};h=e([r],h);
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{applyJsonToLayer as t,jsonToLayer as r,layerToJson as a}from"../json/LayerJson.js";import{serializable as i}from"../support/Serializable.js";import{isWMTSLayer as s}from"../utilities/_layers.js";import{getLogger as o}from"../utilities/log.js";import{LayerExtension as l,LayerExtensionLayerListSettings as n}from"./_LayerExtension.js";const y=o("WMTSLayerExtension");let m=class extends l{get supportsSublayers(){return!1}get layer(){return super.layer}get _layerSupportsHideChildren(){return!1}toJSON(e="all"){const t=super.toJSON(e);if(t)return t.layer.$ref&&(t.layer.wmtsInfo={}),t}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"WebTiledLayer",wmtsInfo:{}}}}}_createLayerListSettings(e){return new n(e,this,!1)}async _onInitialize(){try{await super._onInitialize()}catch(e){if("RESTful"!==this.layer.serviceMode)throw e;{y.warn(`WMTS Layer '${this.id}' failed to load with the 'RESTful' service mode. Now attempting to load the layer with the 'KVP' service mode...`);const e=this.layer;await this._switchLayer(await r(a(e))),this.mapExtension?.map?.layers.remove(e),this.layer.serviceMode="KVP",this.mapExtension?.map?.layers.add(this.layer),await super._onInitialize()}}finally{this._ensureActiveLayerDefaults()}this.layer.watch("activeLayer",(e=>{this._ensureActiveLayerDefaults(),this.layer.title=e.title,this.notifyChange("title")}),!0)}_isSupportedLayer(e){return s(e)}async _applyPortalItemProperties(e){if("WMTS"!==e.type)throw new Error(`Cannot create WMTS layer from Portal item that has type: ${e.type}`);const r={layerType:"WebTiledLayer",...await e.fetchData()};return t(r,this.layer)}_ensureActiveLayerDefaults(){const e=this.layer?.activeLayer;e&&(e.imageFormats=e.imageFormats?.length?e.imageFormats:["image/png"],e.imageFormat=e.imageFormat||e.imageFormats[0],e.styleId=e.styleId??"")}};m=e([i],m);export{m as WMTSLayerExtension};
1
+ import{__decorate as e}from"tslib";import{applyJsonToLayer as t,jsonToLayer as r,layerToJson as a}from"../json/LayerJson.js";import{serializable as i}from"../support/Serializable.js";import{notifyChange as s,watch as o}from"../support/observableUtils.js";import{isWMTSLayer as l}from"../utilities/_layers.js";import{getLogger as y}from"../utilities/log.js";import{LayerExtension as n,LayerExtensionLayerListSettings as m}from"./_LayerExtension.js";const p=y("WMTSLayerExtension");let h=class extends n{get supportsSublayers(){return!1}get layer(){return super.layer}get _layerSupportsHideChildren(){return!1}toJSON(e="all"){const t=super.toJSON(e);if(t)return t.layer.$ref&&(t.layer.wmtsInfo={}),t}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"WebTiledLayer",wmtsInfo:{}}}}}_createLayerListSettings(e){return new m(e,this,!1)}async _onInitialize(){try{await super._onInitialize()}catch(e){if("RESTful"!==this.layer.serviceMode)throw e;{p.warn(`WMTS Layer '${this.id}' failed to load with the 'RESTful' service mode. Now attempting to load the layer with the 'KVP' service mode...`);const e=this.layer;await this._switchLayer(await r(a(e))),this.mapExtension?.map?.layers.remove(e),this.layer.serviceMode="KVP",this.mapExtension?.map?.layers.add(this.layer),await super._onInitialize()}}finally{this._ensureActiveLayerDefaults()}o(this.layer,"activeLayer",(e=>{this._ensureActiveLayerDefaults(),this.layer.title=e.title,s(this,"title")}),{sync:!0})}_isSupportedLayer(e){return l(e)}async _applyPortalItemProperties(e){if("WMTS"!==e.type)throw new Error(`Cannot create WMTS layer from Portal item that has type: ${e.type}`);const r={layerType:"WebTiledLayer",...await e.fetchData()};return t(r,this.layer)}_ensureActiveLayerDefaults(){const e=this.layer?.activeLayer;e&&(e.imageFormats=e.imageFormats?.length?e.imageFormats:["image/png"],e.imageFormat=e.imageFormat||e.imageFormats[0],e.styleId=e.styleId??"")}};h=e([i],h);export{h as WMTSLayerExtension};