@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,17 +1,14 @@
1
1
  import type Collection from "@arcgis/core/core/Collection";
2
- import { Observable } from "../support/Observable.js";
3
- import type { ItemCallback, ItemCompareCallback, ItemMapCallback, ItemReduceCallback, ItemTestCallback, CollectionAfterAddEventHandler, CollectionChangeEventHandler, CollectionAfterChangesEventHandler, CollectionAfterRemoveEventHandler, CollectionBeforeAddEventHandler, CollectionBeforeChangesEventHandler, CollectionBeforeRemoveEventHandler, EventHandler, WatchCallback } from "../support/esri.js";
4
- interface CollectionCompatibleObservable<T> extends Omit<Observable, "notifyChange" | "set" | "on" | "watch" | "emit" | "get"> {
5
- on(type: string | string[], listener: EventHandler): IHandle;
6
- watch(path: string | string[], callback: WatchCallback<T>, sync: boolean | undefined): IHandle;
7
- }
8
- type CollectionCompatibleObservableConstructor = new () => CollectionCompatibleObservable<unknown>;
2
+ import Evented from "@arcgis/core/core/Evented.js";
3
+ import { type IDeprecatedObservable } from "../support/Observable.js";
4
+ import type { ItemCallback, ItemCompareCallback, ItemMapCallback, ItemReduceCallback, ItemTestCallback, CollectionAfterAddEventHandler, CollectionChangeEventHandler, CollectionAfterChangesEventHandler, CollectionAfterRemoveEventHandler, CollectionBeforeAddEventHandler, CollectionBeforeChangesEventHandler, CollectionBeforeRemoveEventHandler, EventHandler } from "../support/esri.js";
5
+ import type { WatchCallback } from "./watch.js";
9
6
  /**
10
7
  * Merge typings of Collection and CollectionProxy.
11
8
  */
12
9
  export interface CollectionProxy<T> extends Collection<T> {
13
10
  }
14
- declare const CollectionProxy_base: CollectionCompatibleObservableConstructor;
11
+ declare const CollectionProxy_base: typeof Evented & (abstract new (...args: any[]) => import("../support/observableUtils.js").ObservableMixin);
15
12
  /**
16
13
  * Base class for implementing a Collection proxy, i.e. a class that wraps an
17
14
  * existing collection and provides additional functionality or logic. The
@@ -21,7 +18,8 @@ declare const CollectionProxy_base: CollectionCompatibleObservableConstructor;
21
18
  * that need to implement special add/remove logic only need to override those
22
19
  * methods.
23
20
  */
24
- export declare abstract class CollectionProxy<T> extends CollectionProxy_base {
21
+ export declare abstract class CollectionProxy<T> extends CollectionProxy_base implements Omit<Collection<T>, "notifyChange">, IDeprecatedObservable {
22
+ private readonly _handles;
25
23
  /**
26
24
  * The number of items in the collection.
27
25
  */
@@ -49,7 +47,6 @@ export declare abstract class CollectionProxy<T> extends CollectionProxy_base {
49
47
  private _destroyed;
50
48
  private _initialized;
51
49
  private _collectionField;
52
- private readonly _collectionChangeHandle;
53
50
  /**
54
51
  * Initializes a new instance of the
55
52
  * {@link utilities/CollectionProxy!CollectionProxy} class.
@@ -92,7 +89,7 @@ export declare abstract class CollectionProxy<T> extends CollectionProxy_base {
92
89
  */
93
90
  concat(value: T[] | Collection<T>): Collection<T>;
94
91
  /**
95
- * Not implemented. Has no effect.
92
+ * Removes all event listeners and destroys the collection.
96
93
  */
97
94
  destroy(): void;
98
95
  /**
@@ -151,6 +148,13 @@ export declare abstract class CollectionProxy<T> extends CollectionProxy_base {
151
148
  * @param callback The function to call for each item in the Collection.
152
149
  */
153
150
  forEach(callback: ItemCallback<T>): void;
151
+ /**
152
+ * Returns the item at the specified index.
153
+ *
154
+ * @param index Zero-based index of the item in the Collection to retrieve.
155
+ * @returns The item in the Collection stored at the specified index.
156
+ */
157
+ at(index: number): T | undefined;
154
158
  /**
155
159
  * Returns the item at the specified index.
156
160
  *
@@ -207,10 +211,7 @@ export declare abstract class CollectionProxy<T> extends CollectionProxy_base {
207
211
  on(type: "before-changes", listener: CollectionBeforeChangesEventHandler): IHandle;
208
212
  on(type: "before-remove", listener: CollectionBeforeRemoveEventHandler<T>): IHandle;
209
213
  on(type: "change", listener: CollectionChangeEventHandler<T>): IHandle;
210
- /**
211
- * @inheritdoc
212
- */
213
- watch(path: string | string[], callback: WatchCallback, sync?: boolean): IHandle;
214
+ on(type: string, listener: EventHandler): IHandle;
214
215
  /**
215
216
  * Removes the last item from the collection and returns it.
216
217
  */
@@ -329,17 +330,47 @@ export declare abstract class CollectionProxy<T> extends CollectionProxy_base {
329
330
  */
330
331
  unshift(item: T): number;
331
332
  /**
332
- * Not implemented but necessary to be accessor like.
333
- *
334
- * @param propertyName The property.
333
+ * @deprecated
334
+ * @inheritdoc
335
335
  */
336
- protected _get<T>(propertyName: string): T;
336
+ set<T>(propertyPath: string, value: T): this;
337
337
  /**
338
- * Not implemented but necessary to be accessor like.
339
- *
340
- * @param propertyName The property.
341
- * @param value The value.
338
+ * @deprecated
339
+ * @inheritdoc
342
340
  */
341
+ set(properties: HashMap<unknown>): this;
342
+ /**
343
+ * @deprecated
344
+ * @inheritdoc
345
+ */
346
+ get<T>(propertyPath: string): T;
347
+ /**
348
+ * @deprecated
349
+ * @inheritdoc
350
+ */
351
+ get(propertyPath: string): unknown;
352
+ /**
353
+ * @deprecated
354
+ * @inheritdoc
355
+ */
356
+ watch(path: string | string[], callback: WatchCallback, sync?: boolean): IHandle;
357
+ /**
358
+ * @deprecated
359
+ * @inheritdoc
360
+ */
361
+ notifyChange(propertyKey: string): void;
362
+ notifyChange(propertyKey: keyof this): void;
363
+ /**
364
+ * @deprecated
365
+ * @inheritdoc
366
+ */
367
+ _watchProperty(propertyKey: keyof this, subpath: string, callback: WatchCallback, sync: boolean): IHandle;
368
+ addHandles<T>(handles: IHandle | IHandle[], groupKey?: GroupKey<T>): void;
369
+ removeHandles<T>(groupKey?: GroupKey<T>): void;
370
+ hasHandles<T>(groupKey?: GroupKey<T>): boolean;
371
+ protected _get(propertyName: string): any;
372
+ protected _get<T>(propertyName: string): T;
343
373
  protected _set<T>(propertyName: string, value: T): this;
374
+ private _addForwardingEvents;
344
375
  }
345
376
  export {};
@@ -1 +1 @@
1
- import{Observable as e}from"../support/Observable.js";import{_generateChangeEvent as t}from"./watch.js";export class CollectionProxy extends e{get length(){return this._collection.length}get declaredClass(){return"esri.core.Collection"}get destroyed(){return this._destroyed}set destroyed(e){this._destroyed=e}get initialized(){return this._initialized}set initialized(e){this._initialized=e}get _collection(){if(void 0===this._collectionField)throw new Error("CollectionProxy requires a backing collection.");return this._collectionField}set _collection(e){const t=this._collectionField;this._collectionField=e,this.emit("collection-changed",{newValue:e,oldValue:t}),this.emit("after-add"),this.emit("after-changes"),this.emit("after-remove"),this.emit("before-add"),this.emit("before-changes"),this.emit("before-remove"),this.notifyChange("length")}_destroyed=!1;_initialized=!0;_collectionField;_collectionChangeHandle;constructor(e){super(),this._collectionField=e}*[Symbol.iterator](){for(const e of this._collection)yield e}add(e,t){return this._collection.add(e,t),this}addMany(e,t){if(!e)return this;if(arguments.length>1){let o=t;for(let t=0;t<e.length;t++)"function"==typeof e.getItemAt?this.add(e.getItemAt(t),o++):this.add(e[t],o++)}else for(let t=0;t<e.length;t++)"function"==typeof e.getItemAt?this.add(e.getItemAt(t)):this.add(e[t]);return this}clone(){const e=Object.create(Object.getPrototypeOf(this));return e._collection=this._collection,e}concat(e){return this._collection.concat(e)}destroy(){}every(e){return this._collection.every(e)}filter(e){return this._collection.filter(e)}find(e){return this._collection.find(e)}findIndex(e){return this._collection.findIndex(e)}flatten(e){return this._collection.flatten(e)}forEach(e){return this._collection.forEach(e)}getItemAt(e){return this._collection.getItemAt(e)}includes(e){return this._collection.includes(e)}indexOf(e,t){return this._collection.indexOf(e,t)}join(e){return this._collection.join(e)}lastIndexOf(e,t){return this._collection.lastIndexOf(e,t)}map(e){return this._collection.map(e)}on(e,o){if("collection-changed"===e)return super.on(e,o);{let r=this._collection.on(e,o);const i=[super.on(e,o),super.on("collection-changed",(({newValue:i,oldValue:n})=>{if(r.remove(),r=i.on(e,o),"change"===e){const e=t(n,i);(e?.added.length||e?.removed.length||e?.moved.length)&&o(e)}}))];return{remove:()=>{r.remove();for(const e of i)e.remove()}}}}watch(e,t,o){if((Array.isArray(e)?e:[e]).includes("length")){let r=this._collection.watch(e,t,o);const i=[super.watch(e,t,o),super.on("collection-changed",(({newValue:i})=>{r.remove(),r=i.watch(e,t,o)}))];return{remove:()=>{r.remove();for(const e of i)e.remove()}}}return super.watch(e,t,o)}pop(){return this.removeAt(this.length-1)}push(e){return this.add(e,this.length),this.length}reduce(e,t){return this._collection.reduce(e,t)}reduceRight(e,t){return this._collection.reduceRight(e,t)}remove(e){return this.removeAt(this.indexOf(e))}removeAll(){const e=[];for(;this.length;){const t=this.pop();t&&e.push(t)}return e}removeAt(e){return this._collection.removeAt(e)}removeMany(e){const t=[];for(let o=0;o<e.length;o++){const r="function"==typeof e.getItemAt?e.getItemAt(o):e[o],i=this.indexOf(r);if(i>=0){const e=this.removeAt(i);e&&t.push(e)}}return t}reorder(e,t){return this._collection.reorder(e,t)}reverse(){return this._collection.reverse(),this}shift(){return this.removeAt(0)}slice(e,t){return this._collection.slice(e,t)}some(e){return this._collection.some(e)}sort(e){return this._collection.sort(e),this}splice(e,t,...o){const r=[];for(let o=t;o>0;o--){const t=this.removeAt(e);t&&r.push(t)}let i=e;return o.forEach((e=>{this.add(e,i),i++})),r}toArray(){return this._collection.toArray()}unshift(e){return this.add(e,0),this.length}_get(e){throw Error()}_set(e,t){throw Error()}}
1
+ import e from"@arcgis/core/core/Evented.js";import{deprecatedGetPropertyPath as t,deprecatedNotifyChange as i,deprecatedSet as o,deprecatedWatch as r,deprecatedWatchProperty as n}from"../support/Observable.js";import{notifyChange as s,observable as l,onWatch as c,watch as h}from"../support/observableUtils.js";import{_generateChangeEvent as d}from"./collection.js";const a="collection-proxy-collection-change-handles";export class CollectionProxy extends(l(e)){_handles=new Map;get length(){return this._collection.length}get declaredClass(){return"esri.core.Collection"}get destroyed(){return this._destroyed}set destroyed(e){this._destroyed=e}get initialized(){return this._initialized}set initialized(e){this._initialized=e}get _collection(){if(void 0===this._collectionField)throw new Error("CollectionProxy requires a backing collection.");return this._collectionField}set _collection(e){if(this._collectionField===e)return;const t=this._collectionField;this.removeHandles(a);const i=d(t,e);if(null!=i){for(const e of i.added){const t={item:e,cancellable:!1,defaultPrevented:!1,preventDefault:()=>{},target:this};this.emit("before-add",t)}for(const e of i.removed){const t={item:e,cancellable:!1,defaultPrevented:!1,preventDefault:()=>{},target:this};this.emit("before-remove",t)}this.emit("before-changes",{cancellable:!1,defaultPrevented:!1,preventDefault:()=>{},target:this})}if(this._collectionField=e,this._addForwardingEvents(),null!=i){this.emit("change",i);for(const e of i.added)this.emit("after-add",{item:e,target:this});for(const e of i.removed)this.emit("after-remove",{item:e,target:this});this.emit("after-changes")}s(this,"length")}_destroyed=!1;_initialized=!0;_collectionField;constructor(e){super(),this._collectionField=e,this._addForwardingEvents()}*[Symbol.iterator](){for(const e of this._collection)yield e}add(e,t){return this._collection.add(e,t),this}addMany(e,t){if(!e)return this;if(arguments.length>1){let i=t;for(let t=0;t<e.length;t++)"function"==typeof e.getItemAt?this.add(e.getItemAt(t),i++):this.add(e[t],i++)}else for(let t=0;t<e.length;t++)"function"==typeof e.getItemAt?this.add(e.getItemAt(t)):this.add(e[t]);return this}clone(){const e=Object.create(Object.getPrototypeOf(this));return e._collection=this._collection,e}concat(e){return this._collection.concat(e)}destroy(){this.removeHandles(),this._destroyed=!0,this._initialized=!1,this._collection.destroy()}every(e){return this._collection.every(e)}filter(e){return this._collection.filter(e)}find(e){return this._collection.find(e)}findIndex(e){return this._collection.findIndex(e)}flatten(e){return this._collection.flatten(e)}forEach(e){return this._collection.forEach(e)}at(e){return this.getItemAt(e)}getItemAt(e){return this._collection.getItemAt(e)}includes(e){return this._collection.includes(e)}indexOf(e,t){return this._collection.indexOf(e,t)}join(e){return this._collection.join(e)}lastIndexOf(e,t){return this._collection.lastIndexOf(e,t)}map(e){return this._collection.map(e)}on(e,t){return super.on(e,t)}pop(){return this.removeAt(this.length-1)}push(e){return this.add(e,this.length),this.length}reduce(e,t){return this._collection.reduce(e,t)}reduceRight(e,t){return this._collection.reduceRight(e,t)}remove(e){return this.removeAt(this.indexOf(e))}removeAll(){const e=[];for(;this.length;){const t=this.pop();t&&e.push(t)}return e}removeAt(e){return this._collection.removeAt(e)}removeMany(e){const t=[];for(let i=0;i<e.length;i++){const o="function"==typeof e.getItemAt?e.getItemAt(i):e[i],r=this.indexOf(o);if(r>=0){const e=this.removeAt(r);e&&t.push(e)}}return t}reorder(e,t){return this._collection.reorder(e,t)}reverse(){return this._collection.reverse(),this}shift(){return this.removeAt(0)}slice(e,t){return this._collection.slice(e,t)}some(e){return this._collection.some(e)}sort(e){return this._collection.sort(e),this}splice(e,t,...i){const o=[];for(let i=t;i>0;i--){const t=this.removeAt(e);t&&o.push(t)}let r=e;return i.forEach((e=>{this.add(e,r),r++})),o}toArray(){return this._collection.toArray()}unshift(e){return this.add(e,0),this.length}set(e,t){return o(this,e,t)}get(e){return t(this,e)}watch(e,t,i){return r(this,e,t,i)}notifyChange(e){i(this,e)}_watchProperty(e,t,i,o){return n(this,e,t,i,o)}addHandles(e,t){const i=Array.isArray(e)?e:[e],o=t??"default";this._handles.has(o)||this._handles.set(o,[]),this._handles.get(o).push(...i)}removeHandles(e){if(null==e)for(const e of this._handles.values())for(const t of e)t.remove();else{const t=this._handles.get(e);if(null!=t){for(const e of t)e.remove();this._handles.delete(e)}}}hasHandles(e){return null==e?this._handles.size>0:this._handles.has(e)}_get(e){return this.get(e)}_set(e,t){return this.set(e,t)}_addForwardingEvents(){null!=this._collectionField&&this.addHandles([this._collectionField.on("before-add",(e=>this.emit("before-add",e))),this._collectionField.on("before-changes",(e=>this.emit("before-changes",e))),this._collectionField.on("before-remove",(e=>this.emit("before-remove",e))),this._collectionField.on("change",(e=>this.emit("change",e))),this._collectionField.on("after-add",(e=>this.emit("after-add",e))),this._collectionField.on("after-changes",(e=>this.emit("after-changes",e))),this._collectionField.on("after-remove",(e=>this.emit("after-remove",e))),c(this,"length",(()=>h(this._collectionField,"length",(()=>s(this,"length")),{sync:!0})))],a)}}
@@ -1 +1 @@
1
- import{ReadOnlyCollection as l}from"./ReadOnlyCollection.js";import{checkArg as o}from"./checkArg.js";export class MapTransformCollection extends l{get _collection(){return this._originalCollection.map(this._callback)}_callback;_originalCollection;constructor(l,t){super(),o("originalCollection",l).isNotMissing(),this._callback=t,this._originalCollection=l,l.on("change",(l=>{this.emit("change",{added:l.added.map(this._callback),removed:l.removed.map(this._callback),moved:l.moved.map(this._callback),target:this})})),l.watch("length",(()=>this.notifyChange("length")))}}
1
+ import{onWatch as e,watch as t,notifyChange as i}from"../support/observableUtils.js";import{ReadOnlyCollection as a}from"./ReadOnlyCollection.js";export class MapTransformCollection extends a{get _collection(){return this._originalCollection.map(this._callback)}_callback;_originalCollection;constructor(a,s){super(),this._callback=s,this._originalCollection=a,a.on("change",(e=>{this.hasEventListener("change")&&this.emit("change",{added:e.added.map(this._callback),removed:e.removed.map(this._callback),moved:e.moved.map(this._callback),target:this})})),a.on("before-add",(e=>{this.hasEventListener("before-add")&&this.emit("before-add",{...e,item:this._callback(e.item),target:this})})),a.on("before-remove",(e=>{this.hasEventListener("before-remove")&&this.emit("before-remove",{...e,item:this._callback(e.item),target:this})})),a.on("before-changes",(e=>{this.hasEventListener("before-changes")&&this.emit("before-changes",{...e,target:this})})),a.on("after-add",(e=>{this.hasEventListener("after-add")&&this.emit("after-add",{...e,item:this._callback(e.item),target:this})})),a.on("after-remove",(e=>{this.hasEventListener("after-remove")&&this.emit("after-remove",{...e,item:this._callback(e.item),target:this})})),a.on("after-changes",(e=>{this.hasEventListener("after-changes")&&this.emit("after-changes",{...e,target:this})})),e(this,"length",(()=>t(this._originalCollection,"length",(()=>i(this,"length")),{sync:!0})))}}
@@ -1,5 +1,8 @@
1
- import { Observable } from "../support/Observable.js";
1
+ import Evented from "@arcgis/core/core/Evented.js";
2
+ import { type IDeprecatedObservable } from "../support/Observable.js";
2
3
  import type { EventHandler } from "../support/esri.js";
4
+ import type { AfterItemChangeEvent } from "./collection.js";
5
+ import type { WatchCallback } from "./watch.js";
3
6
  /**
4
7
  * Raised when items are added or removed from an {@link ObservableMap}.
5
8
  */
@@ -17,14 +20,15 @@ export interface MapChangeEvent<K, V> {
17
20
  */
18
21
  target: ObservableMap<K, V>;
19
22
  }
23
+ declare const ObservableMap_base: typeof Evented & (abstract new (...args: any[]) => import("../support/observableUtils.js").ObservableMixin);
20
24
  /**
21
25
  * A Map that supports observability.
22
26
  */
23
- export declare class ObservableMap<K, V> extends Observable implements Map<K, V> {
27
+ export declare class ObservableMap<K, V> extends ObservableMap_base implements Map<K, V>, IDeprecatedObservable {
24
28
  /**
25
29
  * Used by Object.toString().
26
30
  */
27
- readonly [Symbol.toStringTag]: "Map";
31
+ readonly [Symbol.toStringTag] = "ObservableMap";
28
32
  /**
29
33
  * The number of elements.
30
34
  */
@@ -53,6 +57,9 @@ export declare class ObservableMap<K, V> extends Observable implements Map<K, V>
53
57
  */
54
58
  forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: unknown): void;
55
59
  get(key: K): V;
60
+ /**
61
+ * @deprecated
62
+ */
56
63
  get(property: unknown): unknown;
57
64
  /**
58
65
  * Indicates whether or not an element with the specified key exists.
@@ -60,9 +67,15 @@ export declare class ObservableMap<K, V> extends Observable implements Map<K, V>
60
67
  * @param key The key to test for.
61
68
  */
62
69
  has(key: K): boolean;
70
+ set(key: K, value: V): this;
71
+ /**
72
+ * @deprecated
73
+ */
63
74
  set(property: unknown, value: unknown): this;
75
+ /**
76
+ * @deprecated
77
+ */
64
78
  set(properties: unknown): this;
65
- set(key: K, value?: V): this;
66
79
  /**
67
80
  * Returns the `[key, value]` pairs for each element in the map in insertion
68
81
  * order.
@@ -86,5 +99,23 @@ export declare class ObservableMap<K, V> extends Observable implements Map<K, V>
86
99
  */
87
100
  toJSON(): unknown;
88
101
  on(name: "change", callback: (event: MapChangeEvent<K, V>) => void): IHandle;
102
+ on(name: "after-add", callback: (event: AfterItemChangeEvent<ObservableMap<K, V>, [K, V]>) => void): IHandle;
103
+ on(name: "after-remove", callback: (event: AfterItemChangeEvent<ObservableMap<K, V>, [K, V]>) => void): IHandle;
89
104
  on(name: string, callback: EventHandler): IHandle;
105
+ /**
106
+ * @deprecated
107
+ * @inheritdoc
108
+ */
109
+ watch(path: string | string[], callback: WatchCallback, sync?: boolean): IHandle;
110
+ /**
111
+ * @deprecated
112
+ * @inheritdoc
113
+ */
114
+ notifyChange(propertyKey: keyof this): void;
115
+ /**
116
+ * @deprecated
117
+ * @inheritdoc
118
+ */
119
+ _watchProperty(propertyKey: keyof this, subpath: string, callback: WatchCallback, sync: boolean): IHandle;
90
120
  }
121
+ export {};
@@ -1 +1 @@
1
- import{Observable as t}from"../support/Observable.js";import{toJSON as e}from"./object.js";export class ObservableMap extends t{[Symbol.toStringTag];get size(){return this._originalMap.size}_originalMap;constructor(){super(),this._originalMap=new Map}clear(){if(!this.size)return;this.notifyChange("size");const t=Array.from(this.entries());this._originalMap.clear(),this.emit("change",{added:[],removed:t,target:this})}delete(t){if(!this.has(t))return!1;const e=this.get(t);return this.notifyChange("size"),this._originalMap.delete(t),this.emit("change",{added:[],removed:[[t,e]],target:this}),!0}forEach(t,e){this._originalMap.forEach(t,e)}get(t){return this._originalMap.get(t)}has(t){return this._originalMap.has(t)}set(t,e){const i=!this.has(t),r=this.get(t);return this.notifyChange("size"),this._originalMap.set(t,e),this.emit("change",{added:[[t,e]],removed:i?[]:[[t,r]],target:this}),this}entries(){return this._originalMap.entries()}keys(){return this._originalMap.keys()}values(){return this._originalMap.values()}[Symbol.iterator](){return this._originalMap[Symbol.iterator]()}toJSON(){return e([...this])}on(t,e){return super.on(t,e)}}
1
+ import t from"@arcgis/core/core/Evented.js";import{deprecatedNotifyChange as e,deprecatedWatch as r,deprecatedWatchProperty as i}from"../support/Observable.js";import{notifyChange as s,observable as a}from"../support/observableUtils.js";import{toJSON as o}from"./object.js";export class ObservableMap extends(a(t)){[Symbol.toStringTag]="ObservableMap";get size(){return this._originalMap.size}_originalMap;constructor(){super(),this._originalMap=new Map}clear(){if(!this.size)return;const t=Array.from(this.entries());if(this._originalMap.clear(),s(this,"size"),this.hasEventListener("after-remove"))for(const[e,r]of t)this.emit("after-remove",{item:[e,r],target:this});this.emit("change",{added:[],removed:t,target:this})}delete(t){if(!this.has(t))return!1;const e=this.get(t);return this._originalMap.delete(t),s(this,"size"),this.emit("after-remove",{item:[t,e],target:this}),this.emit("change",{added:[],removed:[[t,e]],target:this}),!0}forEach(t,e){this._originalMap.forEach(t,e)}get(t){return this._originalMap.get(t)}has(t){return this._originalMap.has(t)}set(t,e){const r=!this.has(t),i=this.get(t);return this._originalMap.set(t,e),s(this,"size"),r||this.emit("after-remove",{item:[t,i],target:this}),this.emit("after-add",{item:[t,e],target:this}),this.emit("change",{added:[[t,e]],removed:r?[]:[[t,i]],target:this}),this}entries(){return this._originalMap.entries()}keys(){return this._originalMap.keys()}values(){return this._originalMap.values()}[Symbol.iterator](){return this._originalMap[Symbol.iterator]()}toJSON(){return o([...this])}on(t,e){return super.on(t,e)}watch(t,e,i){return r(this,t,e,i)}notifyChange(t){e(this,t)}_watchProperty(t,e,r,s){return i(this,t,e,r,s)}}
@@ -1,10 +1,13 @@
1
- import { Observable } from "../support/Observable.js";
1
+ import Evented from "@arcgis/core/core/Evented.js";
2
+ import { type IDeprecatedObservable } from "../support/Observable.js";
2
3
  import type { EventHandler } from "../support/esri.js";
3
- import type { ChangeEvent } from "./collection.js";
4
+ import type { AfterItemChangeEvent, ChangeEvent } from "./collection.js";
5
+ import type { WatchCallback } from "./watch.js";
6
+ declare const ObservableSet_base: typeof Evented & (abstract new (...args: any[]) => import("../support/observableUtils.js").ObservableMixin);
4
7
  /**
5
8
  * A Set that supports observability.
6
9
  */
7
- export declare class ObservableSet<T> extends Observable implements Set<T> {
10
+ export declare class ObservableSet<T> extends ObservableSet_base implements Set<T>, IDeprecatedObservable {
8
11
  /**
9
12
  * Used by Object.toString().
10
13
  */
@@ -82,5 +85,43 @@ export declare class ObservableSet<T> extends Observable implements Set<T> {
82
85
  */
83
86
  toJSON(): unknown;
84
87
  on(name: "change", callback: (event: ChangeEvent<T>) => void): IHandle;
88
+ on(name: "after-add", callback: (event: AfterItemChangeEvent<this, T>) => void): IHandle;
89
+ on(name: "after-remove", callback: (event: AfterItemChangeEvent<this, T>) => void): IHandle;
85
90
  on(name: string, callback: EventHandler): IHandle;
91
+ /**
92
+ * @deprecated
93
+ * @inheritdoc
94
+ */
95
+ set<T>(propertyPath: string, value: T): this;
96
+ /**
97
+ * @deprecated
98
+ * @inheritdoc
99
+ */
100
+ set(properties: HashMap<unknown>): this;
101
+ /**
102
+ * @deprecated
103
+ * @inheritdoc
104
+ */
105
+ get<T>(propertyPath: string): T;
106
+ /**
107
+ * @deprecated
108
+ * @inheritdoc
109
+ */
110
+ get(propertyPath: string): unknown;
111
+ /**
112
+ * @deprecated
113
+ * @inheritdoc
114
+ */
115
+ watch(path: string | string[], callback: WatchCallback, sync?: boolean): IHandle;
116
+ /**
117
+ * @deprecated
118
+ * @inheritdoc
119
+ */
120
+ notifyChange(propertyKey: keyof this): void;
121
+ /**
122
+ * @deprecated
123
+ * @inheritdoc
124
+ */
125
+ _watchProperty(propertyKey: keyof this, subpath: string, callback: WatchCallback, sync: boolean): IHandle;
86
126
  }
127
+ export {};
@@ -1 +1 @@
1
- import{Observable as e}from"../support/Observable.js";import{toJSON as t}from"./object.js";export class ObservableSet extends e{[Symbol.toStringTag]="ObservableSet";get size(){return this._originalSet.size}_originalSet;constructor(){super(),this._originalSet=new Set}add(e){return this.has(e)||(this.notifyChange("size"),this._originalSet.add(e),this.emit("change",{added:[e],removed:[],moved:[],target:this})),this}addMany(e){const t=[];for(const i of e)this.has(i)||(t.push(i),this._originalSet.add(i));return t.length&&(this.notifyChange("size"),this.emit("change",{added:t,removed:[],moved:[],target:this})),this}clear(){if(!this.size)return;this.notifyChange("size");const e=Array.from(this.values());this._originalSet.clear(),this.emit("change",{added:[],removed:e,moved:[],target:this})}delete(e){return!!this.has(e)&&(this.notifyChange("size"),this._originalSet.delete(e),this.emit("change",{added:[],removed:[e],moved:[],target:this}),!0)}deleteMany(e){const t=[];for(const i of e)this.has(i)&&(t.push(i),this._originalSet.delete(i));return t.length&&(this.notifyChange("size"),this.emit("change",{added:[],removed:t,moved:[],target:this})),!!t.length}forEach(e,t){this._originalSet.forEach(e,t)}has(e){return this._originalSet.has(e)}entries(){return this._originalSet.entries()}keys(){return this._originalSet.keys()}values(){return this._originalSet.values()}[Symbol.iterator](){return this._originalSet[Symbol.iterator]()}toJSON(){return t([...this.values()])}on(e,t){return super.on(e,t)}}
1
+ import t from"@arcgis/core/core/Evented.js";import{deprecatedGetPropertyPath as e,deprecatedNotifyChange as i,deprecatedSet as r,deprecatedWatch as s,deprecatedWatchProperty as a}from"../support/Observable.js";import{notifyChange as h,observable as o}from"../support/observableUtils.js";import{toJSON as n}from"./object.js";export class ObservableSet extends(o(t)){[Symbol.toStringTag]="ObservableSet";get size(){return this._originalSet.size}_originalSet;constructor(){super(),this._originalSet=new Set}add(t){return this.has(t)||(this._originalSet.add(t),h(this,"size"),this.emit("after-add",{item:t,target:this}),this.emit("change",{added:[t],removed:[],moved:[],target:this})),this}addMany(t){const e=[];for(const i of t)this.has(i)||(e.push(i),this._originalSet.add(i));if(e.length){if(h(this,"size"),this.hasEventListener("after-add"))for(const t of e)this.emit("after-add",{item:t,target:this});this.emit("change",{added:e,removed:[],moved:[],target:this})}return this}clear(){if(!this.size)return;const t=Array.from(this.values());if(this._originalSet.clear(),h(this,"size"),this.hasEventListener("after-remove"))for(const e of t)this.emit("after-remove",{item:e,target:this});this.emit("change",{added:[],removed:t,moved:[],target:this})}delete(t){return!!this.has(t)&&(this._originalSet.delete(t),h(this,"size"),this.emit("after-remove",{item:t,target:this}),this.emit("change",{added:[],removed:[t],moved:[],target:this}),!0)}deleteMany(t){const e=[];for(const i of t)this.has(i)&&(e.push(i),this._originalSet.delete(i));if(e.length){if(h(this,"size"),this.hasEventListener("after-remove"))for(const t of e)this.emit("after-remove",{item:t,target:this});this.emit("change",{added:[],removed:e,moved:[],target:this})}return!!e.length}forEach(t,e){this._originalSet.forEach(t,e)}has(t){return this._originalSet.has(t)}entries(){return this._originalSet.entries()}keys(){return this._originalSet.keys()}values(){return this._originalSet.values()}[Symbol.iterator](){return this._originalSet[Symbol.iterator]()}toJSON(){return n([...this.values()])}on(t,e){return super.on(t,e)}set(t,e){return r(this,t,e)}get(t){return e(this,t)}watch(t,e,i){return s(this,t,e,i)}notifyChange(t){i(this,t)}_watchProperty(t,e,i,r){return a(this,t,e,i,r)}}
@@ -2,6 +2,9 @@ import { Observable } from "../support/Observable.js";
2
2
  import type { ChangeEvent } from "./collection.js";
3
3
  /**
4
4
  * A Set that supports observability.
5
+ *
6
+ * @deprecated This class is deprecated and will be removed in a future version.
7
+ * Use {@link utilities/ObservableSet} instead.
5
8
  */
6
9
  export declare class ObservableWeakSet<T extends object> extends Observable implements WeakSet<T> {
7
10
  /**
@@ -1,4 +1,6 @@
1
+ import type { EventHandler } from "../support/esri.js";
1
2
  import { ObservableMap, type MapChangeEvent } from "./ObservableMap.js";
3
+ import type { AfterItemChangeEvent } from "./collection.js";
2
4
  import type { WatchCallback } from "./watch.js";
3
5
  /**
4
6
  * A map that is read-only and delegates operations to an underlying
@@ -14,13 +16,24 @@ export declare class ReadOnlyMap<K, V> extends ObservableMap<K, V> {
14
16
  */
15
17
  protected readonly _originalMap: ObservableMap<K, V>;
16
18
  constructor(originalMap: ObservableMap<K, V>);
19
+ emit(type: string, event?: unknown): boolean;
17
20
  clear(): void;
18
21
  delete(key: K): boolean;
19
- emit(type: string, event?: unknown): boolean;
20
22
  set(property: unknown, value: unknown): this;
21
23
  set(properties: unknown): this;
22
24
  set(key: K, value?: V): this;
25
+ on(name: "change", callback: (event: MapChangeEvent<K, V>) => void): IHandle;
26
+ on(name: "after-add", callback: (event: AfterItemChangeEvent<ObservableMap<K, V>, [K, V]>) => void): IHandle;
27
+ on(name: "after-remove", callback: (event: AfterItemChangeEvent<ObservableMap<K, V>, [K, V]>) => void): IHandle;
28
+ on(name: string, callback: EventHandler): IHandle;
29
+ /**
30
+ * @deprecated
31
+ * @inheritdoc
32
+ */
23
33
  notifyChange(propertyKey: keyof this): void;
24
- on(name: string, callback: (event: MapChangeEvent<K, V>) => void): IHandle;
34
+ /**
35
+ * @deprecated
36
+ * @inheritdoc
37
+ */
25
38
  watch(path: string | string[], callback: WatchCallback, sync?: boolean): IHandle;
26
39
  }
@@ -1 +1 @@
1
- import{InvalidOperationError as r}from"../InvalidOperationError.js";import{ObservableMap as t}from"./ObservableMap.js";const i="This map is read-only.";export class ReadOnlyMap extends t{constructor(r){super(),this._originalMap=r}clear(){throw new r(i)}delete(t){throw new r(i)}emit(r,t){return this._originalMap.emit(r,t)}set(){throw new r(i)}notifyChange(r){this._originalMap.notifyChange(r)}on(r,t){return this._originalMap.on(r,t)}watch(r,t,i){return this._originalMap.watch(r,t,i)}}
1
+ import{InvalidOperationError as i}from"../InvalidOperationError.js";import{notifyChange as r,onWatch as t,watch as e}from"../support/observableUtils.js";import{ObservableMap as o}from"./ObservableMap.js";const s="This map is read-only.";export class ReadOnlyMap extends o{constructor(i){super(),this._originalMap=i,t(this,"size",(()=>e(this._originalMap,"size",(()=>r(this,"size")),{sync:!0})))}emit(i,r){return this._originalMap.emit(i,r)}clear(){throw new i(s)}delete(r){throw new i(s)}set(){throw new i(s)}on(i,r){return this._originalMap.on(i,r)}notifyChange(i){this._originalMap.notifyChange(i)}watch(i,r,t){return this._originalMap.watch(i,r,t)}}
@@ -7,6 +7,15 @@ import type { CompareOptions } from "./array.js";
7
7
  declare const DeprecatedCollection: typeof Collection;
8
8
  export { DeprecatedCollection as Collection };
9
9
  export type { CompareOptions, ChangeEvent };
10
+ /**
11
+ * Raised when items are added or removed from a collection like object.
12
+ */
13
+ export interface AfterItemChangeEvent<TCollection, TItem> extends __esri.CollectionAfterItemEvent<TItem> {
14
+ /**
15
+ * The collection like object that raised the event.
16
+ */
17
+ target: TCollection;
18
+ }
10
19
  /**
11
20
  * Compares two collections and invokes callbacks for items that are new,
12
21
  * missing, or matching in the second collection relative to the first.
@@ -1 +1 @@
1
- import o from"@arcgis/core/core/Collection";import{compare as r,compareAsync as c}from"./array.js";const e=o;export{e as Collection};export function compare(o,c,e){return r(o,c,e)}export async function compareAsync(o,r,e){return c(o,r,e)}
1
+ import e from"@arcgis/core/core/Collection";import{compare as r,compareAsync as t}from"./array.js";const o=e;export{o as Collection};export function compare(e,t,o){return r(e,t,o)}export async function compareAsync(e,r,o){return t(e,r,o)}export function _generateChangeEvent(r,t){const o=t??new e,n=r??new e,c=o,a=o.filter((e=>n.includes(e))),i=n.filter((e=>o.includes(e))),l={added:o.filter((e=>!n.includes(e))).toArray(),removed:n.filter((e=>!o.includes(e))).toArray(),moved:a.filter(((e,r)=>i.indexOf(e)!==r)).toArray(),target:c};if(l.added.length||l.removed.length||l.moved.length)return l}
@@ -1,8 +1,17 @@
1
- import Collection from "@arcgis/core/core/Collection";
1
+ import type Accessor from "@arcgis/core/core/Accessor";
2
+ import type Collection from "@arcgis/core/core/Collection";
2
3
  import type Evented from "@arcgis/core/core/Evented";
3
- import type { AccessorLike, ChangeEventCallback, EventHandler, WatchCallback } from "../support/esri.js";
4
+ import type { Observable as DeprecatedObservable } from "../support/Observable.js";
5
+ import type { ChangeEventCallback, EventHandler } from "../support/esri.js";
6
+ import { type Observable } from "../support/observableUtils.js";
4
7
  import type { ObservableMap } from "./ObservableMap.js";
5
- export type { WatchCallback } from "../support/esri.js";
8
+ /**
9
+ * A callback that gets invoked by esri's `watch` on classes that inherit from
10
+ * Accessor to notify observers about property changes.
11
+ *
12
+ * @deprecated
13
+ */
14
+ export type WatchCallback<T = any, U = any> = (newValue: T, oldValue: T, propertyName: string, target: U) => void;
6
15
  /**
7
16
  * Listens for an event on each item in a collection.
8
17
  *
@@ -14,6 +23,7 @@ export declare function onEach<T extends Evented>(collection: Collection<T>, eve
14
23
  /**
15
24
  * Watches a property on each item in a collection.
16
25
  *
26
+ * @deprecated Use {@link support/observableUtils!watch} instead.
17
27
  * @param collection The collection of items to watch.
18
28
  * @param path The property path to watch on each item.
19
29
  * @param callback The callback to invoke. Note that the item that changed is
@@ -21,10 +31,11 @@ export declare function onEach<T extends Evented>(collection: Collection<T>, eve
21
31
  * @param sync Whether to invoke the callback synchronously. The default is
22
32
  * `false`.
23
33
  */
24
- export declare function watchEach<T extends AccessorLike, U = unknown>(collection: Collection<T> | ObservableMap<unknown, T>, path: string | string[], callback: WatchCallback<U, T>, sync?: boolean): IHandle;
34
+ export declare function watchEach<T extends Observable, U = unknown>(collection: Collection<T> | ObservableMap<unknown, T>, path: string | string[], callback: WatchCallback<U, T>, sync?: boolean): IHandle;
25
35
  /**
26
36
  * Watches a property on each item in a collection.
27
37
  *
38
+ * @deprecated Use {@link support/observableUtils!watchEach} instead.
28
39
  * @param collection The collection of items to watch.
29
40
  * @param getValue Function used to get the current value from each item. All
30
41
  * accessed properties will be tracked.
@@ -33,10 +44,11 @@ export declare function watchEach<T extends AccessorLike, U = unknown>(collectio
33
44
  * @param sync Whether to invoke the callback synchronously. The default is
34
45
  * `false`.
35
46
  */
36
- export declare function watchEach<T extends AccessorLike, U = unknown>(collection: Collection<T> | ObservableMap<unknown, T>, getValue: (item: T) => U, callback: (newValue: U, oldValue: U | undefined, item: T) => void, sync?: boolean): IHandle;
47
+ export declare function watchEach<T extends DeprecatedObservable | Accessor, U = unknown>(collection: Collection<T> | ObservableMap<unknown, T>, getValue: (item: T) => U, callback: (newValue: U, oldValue: U | undefined, item: T) => void, sync?: boolean): IHandle;
37
48
  /**
38
49
  * Watches a property on each item in a collection property.
39
50
  *
51
+ * @deprecated Use {@link support/observableUtils!watchEach} instead.
40
52
  * @param obj The object to watch.
41
53
  * @param collectionPath The property path on the object that returns the
42
54
  * collection to watch.
@@ -46,7 +58,7 @@ export declare function watchEach<T extends AccessorLike, U = unknown>(collectio
46
58
  * @param sync Whether to invoke the callback synchronously. The default is
47
59
  * `false`.
48
60
  */
49
- export declare function watchCollectionPropertyEach(obj: AccessorLike, collectionPath: string, path: string | string[], callback: WatchCallback, sync?: boolean): IHandle;
61
+ export declare function watchCollectionPropertyEach(obj: Observable, collectionPath: string, path: string | string[], callback: WatchCallback, sync?: boolean): IHandle;
50
62
  /**
51
63
  * Listens to change events on a collection property. This function also handles
52
64
  * the case where the collection property itself is changed, in addition to
@@ -56,13 +68,19 @@ export declare function watchCollectionPropertyEach(obj: AccessorLike, collectio
56
68
  * between the two collections and emit a "change" event with the appropriate
57
69
  * values for event.added, event.removed, etc.
58
70
  *
71
+ * Because this function calculates the difference between property changes it
72
+ * is best to avoid using this function if you are only interested in the
73
+ * collection changed event occurring and not the items that were added or
74
+ * removed. In that case, use {@link support/observableUtils!watchEvent}
75
+ * instead.
76
+ *
59
77
  * @param obj The object that owns the collection property to watch.
60
78
  * @param path The collection property to watch.
61
79
  * @param callback The callback to invoke when the collection changes.
62
80
  * @param sync Whether to invoke the callback synchronously. The default is
63
81
  * `false`.
64
82
  */
65
- export declare function onCollectionPropertyChange<T>(obj: AccessorLike, path: string, callback: ChangeEventCallback<T>, sync?: boolean): IHandle;
83
+ export declare function onCollectionPropertyChange<T>(obj: Observable, path: string, callback: ChangeEventCallback<T>, sync?: boolean): IHandle;
66
84
  /**
67
85
  * Listens for an emitted event from an object and executes a callback only once
68
86
  * before removing the listener.
@@ -1 +1 @@
1
- import o from"@arcgis/core/core/Collection";import*as e from"@arcgis/core/core/reactiveUtils";import{getPropertyByPath as t}from"../support/Observable.js";import{checkArg as n}from"./checkArg.js";export function onEach(o,e,t){n("collection",o).isNotMissing(),n("eventType",e).isNotMissing().isNotEmpty(),n("callback",t).isNotMissing();const r=new Map;for(const n of o.toArray())r.set(n,n.on(e,t));const s=o.on("change",(o=>{for(const n of o.added)r.set(n,n.on(e,t));for(const e of o.removed){const o=r.get(e);o&&o.remove(),r.delete(e)}}));return{remove:()=>{s.remove(),r.forEach((o=>o.remove()))}}}export function watchEach(o,...t){let r;if(n("collection",o).isNotMissing(),"function"==typeof t[0]){const[o,s,i=!1]=t;n("getValue",o).isNotMissing(),n("callback",s).isNotMissing(),r=t=>e.watch((()=>o(t)),((o,e)=>s(o,e,t)),{sync:i})}else{const[o,e,s=!1]=t;n("path",o).isNotMissing().isNotEmpty(),n("callback",e).isNotMissing(),r=t=>t.watch(o,e,s)}const s=new Map;for(const e of"function"==typeof o.toArray?o.toArray():[...o.values()])s.set(e,r(e));const i=o.on("change",(o=>{for(const e of o.added){const o=Array.isArray(e)?e[1]:e;s.set(o,r(o))}for(const e of o.removed){const o=Array.isArray(e)?e[1]:e,t=s.get(o);t&&t.remove(),s.delete(o)}}));return{remove:()=>{i.remove(),s.forEach((o=>o.remove()))}}}export function watchCollectionPropertyEach(o,e,r,s,i=!1){n("obj",o).isNotMissing(),n("collectionProperty",e).isNotMissing().isNotEmpty(),n("path",r).isNotMissing().isNotEmpty(),n("callback",s).isNotMissing();const c=new Map,a=t(o,e);if(a)for(const o of a.toArray())c.set(o,o.watch(r,s,i));const l=onCollectionPropertyChange(o,e,(o=>{for(const e of o.added)c.set(e,e.watch(r,s,i));for(const e of o.removed){const o=c.get(e);o&&o.remove(),c.delete(e)}}),i);return{remove:()=>{l.remove(),c.forEach((o=>o.remove()))}}}export function onCollectionPropertyChange(o,e,r,s=!1){let i;n("obj",o).isNotMissing(),n("property",e).isNotMissing().isNotEmpty(),n("callback",r).isNotMissing();const c=t(o,e);c&&(i=c.on("change",r));const a=o.watch(e,((o,e)=>{i&&(i.remove(),i=void 0),o&&(i=o.on("change",r));const t=_generateChangeEvent(e,o);(t?.added.length||t?.removed.length||t?.moved.length)&&r(t)}),s);return{remove:()=>{i&&i.remove(),a.remove()}}}export function _generateChangeEvent(e,t){const n=t??new o,r=e??new o,s=n,i=n.filter((o=>r.includes(o))),c=r.filter((o=>n.includes(o))),a={added:n.filter((o=>!r.includes(o))).toArray(),removed:r.filter((o=>!n.includes(o))).toArray(),moved:i.filter(((o,e)=>c.indexOf(o)!==e)).toArray(),target:s};if(a.added.length||a.removed.length||a.moved.length)return a}export function onOnce(o,e,t){const n=o.on(e,(o=>{t(o),n.remove()}));return n}
1
+ import*as o from"@arcgis/core/core/reactiveUtils";import{getPropertyByPath as t}from"../support/Observable.js";import{createIHandle as e,watch as r}from"../support/observableUtils.js";import{checkArg as s}from"./checkArg.js";import{_generateChangeEvent as n}from"./collection.js";export function onEach(o,t,e){s("collection",o).isNotMissing(),s("eventType",t).isNotMissing().isNotEmpty(),s("callback",e).isNotMissing();const r=new Map;for(const s of o.toArray())r.set(s,s.on(t,e));const n=o.on("change",(o=>{for(const s of o.added)r.set(s,s.on(t,e));for(const t of o.removed){const o=r.get(t);o&&o.remove(),r.delete(t)}}));return{remove:()=>{n.remove(),r.forEach((o=>o.remove()))}}}export function watchEach(t,...n){let c;if(s("collection",t).isNotMissing(),"function"==typeof n[0]){const[t,e,r=!1]=n;s("getValue",t).isNotMissing(),s("callback",e).isNotMissing(),c=s=>o.watch((()=>t(s)),((o,t)=>e(o,t,s)),{sync:r})}else{const[o,t,i=!1]=n;s("path",o).isNotMissing().isNotEmpty(),s("callback",t).isNotMissing(),c=s=>{const n=[];for(const e of Array.isArray(o)?o:[o])n.push(r(s,e,((o,r,s)=>t(o,r,e,s)),{sync:i}));return e(n)}}const i=new Map;for(const o of"function"==typeof t.toArray?t.toArray():[...t.values()])i.set(o,c(o));const a=t.on("change",(o=>{for(const t of o.added){const o=Array.isArray(t)?t[1]:t;i.set(o,c(o))}for(const t of o.removed){const o=Array.isArray(t)?t[1]:t,e=i.get(o);e&&e.remove(),i.delete(o)}}));return{remove:()=>{a.remove(),i.forEach((o=>o.remove()))}}}export function watchCollectionPropertyEach(o,e,n,c,i=!1){s("obj",o).isNotMissing(),s("collectionProperty",e).isNotMissing().isNotEmpty(),s("path",n).isNotMissing().isNotEmpty(),s("callback",c).isNotMissing();const a=new Map,f=t(o,e);if(f)for(const o of f.toArray())for(const t of Array.isArray(n)?n:[n])a.set(o,r(o,t,((o,e,r)=>c(o,e,t,r)),{sync:i}));const l=onCollectionPropertyChange(o,e,(o=>{for(const t of o.added)for(const o of Array.isArray(n)?n:[n])a.set(t,r(t,o,((t,e,r)=>c(t,e,o,r)),{sync:i}));for(const t of o.removed){const o=a.get(t);o&&o.remove(),a.delete(t)}}),i);return{remove:()=>{l.remove(),a.forEach((o=>o.remove()))}}}export function onCollectionPropertyChange(o,e,c,i=!1){let a;s("obj",o).isNotMissing(),s("property",e).isNotMissing().isNotEmpty(),s("callback",c).isNotMissing();const f=t(o,e);f&&(a=f.on("change",c));const l=r(o,e,((o,t)=>{a&&(a.remove(),a=void 0),o&&(a=o.on("change",c));const e=n(t,o);(e?.added.length||e?.removed.length||e?.moved.length)&&c(e)}),{sync:i});return{remove:()=>{a&&a.remove(),l.remove()}}}export function onOnce(o,t,e){const r=o.on(t,(o=>{e(o),r.remove()}));return r}
package/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * The current version of the Geocortex ArcGIS Extensions API.
3
3
  */
4
- export declare const version = "49.9.0";
4
+ export declare const version = "50.0.0";
package/version.js CHANGED
@@ -1 +1 @@
1
- export const version="49.9.0";
1
+ export const version="50.0.0";
@@ -1,29 +0,0 @@
1
- <!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AccessorLike | @vertigis/arcgis-extensions</title><meta name="description" content="Documentation for @vertigis/arcgis-extensions"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">@vertigis/arcgis-extensions</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">@vertigis/arcgis-extensions</a></li><li><a href="../modules/support_esri.html">support/esri</a></li><li><a href="support_esri.AccessorLike.html">AccessorLike</a></li></ul><h1>Interface AccessorLike</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>An object that supports Accessor-style observability.</p>
2
- </div><div class="tsd-comment tsd-typography"></div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">AccessorLike</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><a class="tsd-kind-call-signature" href="support_esri.AccessorLike.html#get.get-1">get</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_esri.AccessorLike.html#get.get-1.T">T</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">propertyPath</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_esri.AccessorLike.html#get.get-1.T">T</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><a class="tsd-kind-call-signature" href="support_esri.AccessorLike.html#set.set-1">set</a><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_esri.AccessorLike.html#set.set-1.T-1">T</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">propertyPath</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, <span class="tsd-kind-parameter">value</span><span class="tsd-signature-symbol">: </span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_esri.AccessorLike.html#set.set-1.T-1">T</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><a class="tsd-kind-call-signature" href="support_esri.AccessorLike.html#set.set-2">set</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">props</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">HashMap</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><a class="tsd-kind-call-signature" href="support_esri.AccessorLike.html#watch.watch-1">watch</a><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">path</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span>, <span class="tsd-kind-parameter">callback</span><span class="tsd-signature-symbol">: </span><a href="../types/support_esri.WatchCallback.html" class="tsd-signature-type tsd-kind-type-alias">WatchCallback</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span>, <span class="tsd-kind-parameter">sync</span><span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IHandle</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><section class="tsd-panel tsd-hierarchy"><h4>Hierarchy (<a href="../hierarchy.html#support/esri.AccessorLike">view full</a>)</h4><ul class="tsd-hierarchy"><li><span class="target">AccessorLike</span><ul class="tsd-hierarchy"><li><a href="support_esri.SublayerLike.html" class="tsd-signature-type tsd-kind-interface">SublayerLike</a></li></ul></li></ul></section><section class="tsd-panel"><h4>Implemented by</h4><ul class="tsd-hierarchy"><li><a href="../classes/support_Observable.Observable.html" class="tsd-signature-type tsd-kind-class">Observable</a></li></ul></section><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="support_esri.AccessorLike.html#get" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get</span></a>
3
- <a href="support_esri.AccessorLike.html#set" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>set</span></a>
4
- <a href="support_esri.AccessorLike.html#watch" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>watch</span></a>
5
- </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Methods</h2></summary><section><section class="tsd-panel tsd-member"><a id="get" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>get</span><a href="#get" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="get.get-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_esri.AccessorLike.html#get.get-1.T">T</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">propertyPath</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_esri.AccessorLike.html#get.get-1.T">T</a><a href="#get.get-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Gets the value of a property denoted by the given path.</p>
6
- </div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span><a id="get.get-1.T" class="tsd-anchor"></a><span class="tsd-kind-type-parameter">T</span> = <span class="tsd-signature-type">unknown</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">propertyPath</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The name of the property to get. It can also be a
7
- path to a property deeper in the instance, for example &quot;foo.bar.baz&quot;.
8
- If a property in the path doesn't exist, then the result will be
9
- undefined.</p>
10
- </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a class="tsd-signature-type tsd-kind-type-parameter" href="support_esri.AccessorLike.html#get.get-1.T">T</a></h4><div class="tsd-comment tsd-typography"></div></li></ul></section><section class="tsd-panel tsd-member"><a id="set" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>set</span><a href="#set" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="set.set-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">set</span><span class="tsd-signature-symbol">&lt;</span><a class="tsd-signature-type tsd-kind-type-parameter" href="support_esri.AccessorLike.html#set.set-1.T-1">T</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">propertyPath</span>, <span class="tsd-kind-parameter">value</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span><a href="#set.set-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Sets the value of a property denoted by the given path.</p>
11
- </div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span><a id="set.set-1.T-1" class="tsd-anchor"></a><span class="tsd-kind-type-parameter">T</span></span></li></ul></section><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">propertyPath</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The name of the property to set. It can also be a
12
- path to a property deeper in the instance, for example &quot;foo.bar.baz&quot;.
13
- If a property along the way doesn't exist, then nothing will be set.</p>
14
- </div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">value</span>: <a class="tsd-signature-type tsd-kind-type-parameter" href="support_esri.AccessorLike.html#set.set-1.T-1">T</a></span><div class="tsd-comment tsd-typography"><p>The value to set.</p>
15
- </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4><div class="tsd-comment tsd-typography"></div></li><li class="tsd-signature tsd-anchor-link"><a id="set.set-2" class="tsd-anchor"></a><span class="tsd-kind-call-signature">set</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">props</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">this</span><a href="#set.set-2" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Sets the values of several properties.</p>
16
- </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">props</span>: <span class="tsd-signature-type">HashMap</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">&gt;</span></span><div class="tsd-comment tsd-typography"><p>On object with key/value pairs denoting the paths and values
17
- to set.</p>
18
- </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">this</span></h4><div class="tsd-comment tsd-typography"></div></li></ul></section><section class="tsd-panel tsd-member"><a id="watch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>watch</span><a href="#watch" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="watch.watch-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">watch</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">path</span>, <span class="tsd-kind-parameter">callback</span>, <span class="tsd-kind-parameter">sync</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">IHandle</span><a href="#watch.watch-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Watches a property for changes.</p>
19
- </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></span><div class="tsd-comment tsd-typography"><p>The property path to watch, which can be the name of a
20
- property, or a path like &quot;a.b.c&quot; that will be traversed. In the latter
21
- case the watch handler will be invoked any time that any of the
22
- intermediate properties change.</p>
23
- </div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">callback</span>: <a href="../types/support_esri.WatchCallback.html" class="tsd-signature-type tsd-kind-type-alias">WatchCallback</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></span><div class="tsd-comment tsd-typography"><p>The callback to invoke when the property changes.</p>
24
- </div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">sync</span>: <span class="tsd-signature-type">boolean</span></span><div class="tsd-comment tsd-typography"><p>Whether to invoke the callback synchronously. The default is
25
- <code>false</code> (will be invoked on a future tick from the one that changed the
26
- value). Async generally performs better as the callback is only invoked
27
- once for the final value if the property is changed multiple times in a
28
- tick.</p>
29
- </div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IHandle</span></h4><div class="tsd-comment tsd-typography"></div></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="tsd-otp-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#get" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get</span></a><a href="#set" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>set</span></a><a href="#watch" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>watch</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>@vertigis/arcgis-extensions</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>