@vertigis/arcgis-extensions 51.14.1 → 52.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 (374) hide show
  1. package/AppConfig.schema.json +0 -4
  2. package/config.js +1 -1
  3. package/data/FeatureSet.d.ts +0 -36
  4. package/data/FeatureSet.js +1 -1
  5. package/data/_TableExtension.d.ts +1 -1
  6. package/docs/html/assets/navigation.js +1 -1
  7. package/docs/html/assets/search.js +1 -1
  8. package/docs/html/classes/Entity.EntityBase.html +5 -10
  9. package/docs/html/classes/Hyperlink.Hyperlink.html +2 -7
  10. package/docs/html/classes/LanguageResources.LanguageResources.html +4 -59
  11. package/docs/html/classes/data_ArcGISServiceTableExtension.ArcGISServiceTableExtension.html +9 -14
  12. package/docs/html/classes/data_Attachment.Attachment.html +5 -10
  13. package/docs/html/classes/data_Feature.Feature.html +7 -12
  14. package/docs/html/classes/data_FeatureList.FeatureList.html +32 -59
  15. package/docs/html/classes/data_FeatureSet.FeatureSet.html +6 -61
  16. package/docs/html/classes/data_FeatureSettings.FeatureSettings.html +3 -8
  17. package/docs/html/classes/data_FeatureSourceBase.FeatureSourceBase.html +8 -13
  18. package/docs/html/classes/data_FeatureSourceBase.RelationshipCollection.html +31 -58
  19. package/docs/html/classes/data_FeatureStream.FeatureStream.html +6 -11
  20. package/docs/html/classes/data_FieldExtension.FieldExtension.html +6 -11
  21. package/docs/html/classes/data_PopupContentExtension.PopupContentExtension.html +6 -11
  22. package/docs/html/classes/data_RelationshipBase.RelationshipBase.html +5 -60
  23. package/docs/html/classes/data_Schema.Schema.html +5 -10
  24. package/docs/html/classes/data_TaskSettings.TaskSettings.html +3 -8
  25. package/docs/html/classes/data__TableExtension.TableExtension.html +9 -14
  26. package/docs/html/classes/data__TableExtension.TableFeatureSettings.html +3 -8
  27. package/docs/html/classes/data__TableExtension.TableSchema.html +7 -12
  28. package/docs/html/classes/layer_preset_LayerPreset.LayerPreset.html +7 -12
  29. package/docs/html/classes/layer_preset_LayerPresetSettings.LayerPresetSetting.html +5 -60
  30. package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerExtension.html +9 -14
  31. package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerRelationshipCollection.html +31 -58
  32. package/docs/html/classes/mapping_BasemapExtension.BasemapExtension.html +6 -11
  33. package/docs/html/classes/mapping_Bookmark.Bookmark.html +5 -10
  34. package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtension.html +9 -14
  35. package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerSchema.html +5 -10
  36. package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerExtension.html +9 -14
  37. package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerSchema.html +5 -10
  38. package/docs/html/classes/mapping_BuildingSceneLayerExtension.BuildingSceneLayerExtension.html +9 -14
  39. package/docs/html/classes/mapping_BuildingSceneLayerExtension.BuildingSceneLayerReadOnlySchema.html +5 -10
  40. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerExtension.html +9 -14
  41. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerFeatureSettings.html +3 -8
  42. package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerSchema.html +5 -10
  43. package/docs/html/classes/mapping_CSVLayerExtension.CSVLayerExtension.html +9 -14
  44. package/docs/html/classes/mapping_ElevationLayerExtension.ElevationLayerExtension.html +9 -14
  45. package/docs/html/classes/mapping_FeatureCollectionLayerExtension.FeatureCollectionLayerExtension.html +9 -14
  46. package/docs/html/classes/mapping_FeatureLayerExtension.FeatureLayerExtension.html +9 -14
  47. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerExtensionBase.html +9 -14
  48. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerReadOnlySchema.html +5 -10
  49. package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerSchema.html +5 -10
  50. package/docs/html/classes/mapping_GeoJSONLayerExtension.GeoJSONLayerExtension.html +9 -14
  51. package/docs/html/classes/mapping_GeoRSSLayerExtension.GeoRSSLayerExtension.html +9 -14
  52. package/docs/html/classes/mapping_GraphicsLayerExtension.GraphicsLayerExtension.html +9 -14
  53. package/docs/html/classes/mapping_GroundExtension.GroundExtension.html +6 -11
  54. package/docs/html/classes/mapping_GroupLayerExtension.GroupLayerExtension.html +9 -14
  55. package/docs/html/classes/mapping_GroupLayerExtension.GroupLayerExtensionCollection.html +32 -59
  56. package/docs/html/classes/mapping_ImageryLayerExtension.ImageryLayerExtension.html +9 -14
  57. package/docs/html/classes/mapping_ImageryTileLayerExtension.ImageryTileLayerExtension.html +9 -14
  58. package/docs/html/classes/mapping_IntegratedMeshLayerExtension.IntegratedMeshLayerExtension.html +9 -14
  59. package/docs/html/classes/mapping_KMLLayerExtension.KMLLayerExtension.html +9 -14
  60. package/docs/html/classes/mapping_KMLSublayerExtension.KMLSublayerExtension.html +9 -14
  61. package/docs/html/classes/mapping_MapConstraints.MapConstraints.html +3 -8
  62. package/docs/html/classes/mapping_MapExtension.MapExtension.html +6 -11
  63. package/docs/html/classes/mapping_MapImageLayerExtension.MapImageLayerExtension.html +9 -14
  64. package/docs/html/classes/mapping_MapImageSublayerExtension.MapImageSublayerExtension.html +9 -14
  65. package/docs/html/classes/mapping_MapNotesLayerExtension.MapNotesLayerExtension.html +9 -14
  66. package/docs/html/classes/mapping_MapNotesSublayerExtension.MapNotesSublayerExtension.html +9 -14
  67. package/docs/html/classes/mapping_MapNotesSublayerExtension.MapNotesSublayerExtensionSchema.html +5 -10
  68. package/docs/html/classes/mapping_MediaLayerExtension.MediaLayerExtension.html +9 -14
  69. package/docs/html/classes/mapping_OpenStreetMapLayerExtension.OpenStreetMapLayerExtension.html +9 -14
  70. package/docs/html/classes/mapping_PointCloudLayerExtension.PointCloudLayerExtension.html +9 -14
  71. package/docs/html/classes/mapping_RouteLayerExtension.RouteLayerExtension.html +9 -14
  72. package/docs/html/classes/mapping_RouteLayerExtension.RouteLayerExtensionSchema.html +5 -10
  73. package/docs/html/classes/mapping_SceneLayerExtension.SceneLayerExtension.html +9 -14
  74. package/docs/html/classes/mapping_StreamLayerExtension.StreamLayerExtension.html +9 -14
  75. package/docs/html/classes/mapping_StreamLayerExtension.StreamLayerSchema.html +5 -10
  76. package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerExtension.html +9 -14
  77. package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerRelationshipCollection.html +31 -58
  78. package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerSchema.html +5 -10
  79. package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerExtension.html +9 -14
  80. package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerRelationshipCollection.html +31 -58
  81. package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerSchema.html +5 -10
  82. package/docs/html/classes/mapping_TileLayerExtension.TileLayerExtension.html +9 -14
  83. package/docs/html/classes/mapping_TileSublayerExtension.TileSublayerExtension.html +9 -14
  84. package/docs/html/classes/mapping_UnsupportedLayerExtension.UnsupportedLayerExtension.html +9 -14
  85. package/docs/html/classes/mapping_VectorTileLayerExtension.VectorTileLayerExtension.html +9 -14
  86. package/docs/html/classes/mapping_WFSLayerExtension.WFSLayerExtension.html +9 -14
  87. package/docs/html/classes/mapping_WMSLayerExtension.WMSLayerExtension.html +9 -14
  88. package/docs/html/classes/mapping_WMSSublayerExtension.WMSSublayerExtension.html +9 -14
  89. package/docs/html/classes/mapping_WMTSLayerExtension.WMTSLayerExtension.html +9 -14
  90. package/docs/html/classes/mapping_WebTileLayerExtension.WebTileLayerExtension.html +9 -14
  91. package/docs/html/classes/mapping__LayerExtension.LayerExtension.html +9 -14
  92. package/docs/html/classes/mapping__LayerExtension.LayerExtensionReadOnlySchema.html +5 -10
  93. package/docs/html/classes/mapping__LayerExtension.LayerExtensionSchema.html +5 -10
  94. package/docs/html/classes/mapping__LayerExtensionCollectionImpl.LayerExtensionCollectionImpl.html +32 -59
  95. package/docs/html/classes/mapping__SublayerExtension.SubSublayerExtensionCollection.html +32 -59
  96. package/docs/html/classes/mapping__SublayerExtension.SublayerExtension.html +9 -14
  97. package/docs/html/classes/mapping__SublayerExtension.SublayerSchema.html +5 -10
  98. package/docs/html/classes/mapping_support_ArrayWrappedCollection.ArrayWrappedCollection.html +31 -58
  99. package/docs/html/classes/mapping_support_LayerListSettings.ExtensionBaseLayerListSettings.html +3 -8
  100. package/docs/html/classes/mapping_support_LayerListSettings.LayerListSettings.html +2 -7
  101. package/docs/html/classes/mapping_support__LayerExtensionCollection.LayerExtensionCollectionBase.html +32 -59
  102. package/docs/html/classes/mapping_support__SublayerExtensionCollection.SublayerExtensionCollectionBase.html +32 -59
  103. package/docs/html/classes/menus_Menu.Menu.html +6 -11
  104. package/docs/html/classes/menus_MenuItem.MenuItem.html +6 -11
  105. package/docs/html/classes/support_FormatSettings.FormatSettings.html +3 -8
  106. package/docs/html/classes/support_InitializableBase.InitializableBase.html +4 -9
  107. package/docs/html/classes/support_InitializableCollectionProxy.InitializableCollectionProxy.html +32 -59
  108. package/docs/html/classes/support_ReadOnlyInitializableCollection.ReadOnlyInitializableCollection.html +32 -59
  109. package/docs/html/classes/support_Serializable.SerializableBase.html +5 -60
  110. package/docs/html/classes/support_Settings.Settings.html +3 -8
  111. package/docs/html/classes/support__ArcGISRelationshipCollection.ArcGISRelationshipCollection.html +31 -58
  112. package/docs/html/classes/tasks_geocoding_ArcGISGeocoder.ArcGISGeocoder.html +10 -15
  113. package/docs/html/classes/tasks_geocoding_Geocoder.Geocoder.html +9 -14
  114. package/docs/html/classes/tasks_identify_IdentifyService.IdentifyService.html +4 -9
  115. package/docs/html/classes/tasks_query_ArcGISRelationship.ArcGISRelationship.html +5 -60
  116. package/docs/html/classes/tasks_query_QueryBasedRelationship.QueryBasedRelationship.html +5 -60
  117. package/docs/html/classes/tasks_query_QueryError.QueryError.html +1 -7
  118. package/docs/html/classes/tasks_query_QueryService.QueryService.html +4 -9
  119. package/docs/html/classes/tasks_search_SearchService.SearchService.html +5 -10
  120. package/docs/html/classes/utilities_CaseInsensitiveObservableMap.CaseInsensitiveObservableMap.html +4 -35
  121. package/docs/html/classes/utilities_CollectionProxy.CollectionProxy.html +32 -59
  122. package/docs/html/classes/utilities_CopyOnWriteCollection.CopyOnWriteCollection.html +31 -58
  123. package/docs/html/classes/utilities_MapTransformCollection.MapTransformCollection.html +31 -58
  124. package/docs/html/classes/utilities_ObservableMap.ObservableMap.html +7 -38
  125. package/docs/html/classes/utilities_ObservableSet.ObservableSet.html +7 -62
  126. package/docs/html/classes/utilities_ReadOnlyCollection.ReadOnlyCollection.html +31 -58
  127. package/docs/html/classes/utilities_ReadOnlyMap.ReadOnlyMap.html +7 -38
  128. package/docs/html/classes/utilities_format_date.DateFormatter.html +5 -60
  129. package/docs/html/classes/utilities_format_number.NumberFormatter.html +5 -60
  130. package/docs/html/classes/utilities_format_time.TimeFormatter.html +5 -60
  131. package/docs/html/hierarchy.html +1 -1
  132. package/docs/html/interfaces/data_Feature.PresentableAttributes.html +8 -39
  133. package/docs/html/interfaces/data__Relationship.Relationship-1.html +6 -61
  134. package/docs/html/interfaces/data_support__dxfInterfaces.SimpleMarkerSymbolDXF.html +2 -2
  135. package/docs/html/interfaces/support_Serializable.Serializable.html +5 -60
  136. package/docs/html/modules/locale.html +0 -4
  137. package/docs/html/modules/support_esri.html +0 -1
  138. package/docs/html/modules/utilities_collection.html +0 -1
  139. package/docs/html/modules/utilities_watch.html +1 -4
  140. package/docs/html/modules.html +0 -4
  141. package/docs/html/variables/version.version.html +1 -1
  142. package/layer-preset/LayerPresetSettings.d.ts +1 -1
  143. package/locale.d.ts +0 -36
  144. package/locale.js +1 -1
  145. package/mapping/BuildingSceneLayerExtension.js +1 -1
  146. package/mapping/_LayerExtension.d.ts +2 -1
  147. package/mapping/_LayerExtension.js +1 -1
  148. package/mapping/_SublayerExtension.d.ts +2 -1
  149. package/mapping/_SublayerExtension.js +1 -1
  150. package/mapping/support/ArrayWrappedCollection.d.ts +2 -0
  151. package/mapping/support/ArrayWrappedCollection.js +1 -1
  152. package/mapping/support/PopupTemplateFeatureSettings.js +1 -1
  153. package/package.json +1 -1
  154. package/support/Serializable.d.ts +2 -39
  155. package/support/Serializable.js +1 -1
  156. package/support/esri.d.ts +1 -6
  157. package/support/esri.js +1 -1
  158. package/support/observableUtils.d.ts +0 -1
  159. package/support/observableUtils.js +1 -1
  160. package/tasks/query/QueryError.d.ts +0 -12
  161. package/tasks/query/QueryError.js +1 -1
  162. package/utilities/CollectionProxy.d.ts +18 -17
  163. package/utilities/CollectionProxy.js +1 -1
  164. package/utilities/ObservableMap.d.ts +2 -31
  165. package/utilities/ObservableMap.js +1 -1
  166. package/utilities/ObservableSet.d.ts +1 -38
  167. package/utilities/ObservableSet.js +1 -1
  168. package/utilities/ReadOnlyMap.d.ts +1 -14
  169. package/utilities/ReadOnlyMap.js +1 -1
  170. package/utilities/collection.d.ts +0 -5
  171. package/utilities/collection.js +1 -1
  172. package/utilities/uuid.js +1 -1
  173. package/utilities/watch.d.ts +0 -49
  174. package/utilities/watch.js +1 -1
  175. package/version.d.ts +1 -1
  176. package/version.js +1 -1
  177. package/ErrorBase.d.ts +0 -5
  178. package/ErrorBase.js +0 -1
  179. package/docs/html/classes/ErrorBase.ErrorBase.html +0 -3
  180. package/docs/html/classes/support_Observable.Observable.html +0 -53
  181. package/docs/html/classes/utilities_ObservableWeakSet.ObservableWeakSet.html +0 -77
  182. package/docs/html/functions/locale.getBestMatchLocale.html +0 -6
  183. package/docs/html/functions/locale.getRegisteredLocales.html +0 -6
  184. package/docs/html/functions/locale.isRegistered.html +0 -6
  185. package/docs/html/functions/locale.load.html +0 -6
  186. package/docs/html/functions/support_Observable.deprecatedGetPropertyPath.html +0 -7
  187. package/docs/html/functions/support_Observable.deprecatedNotifyChange.html +0 -5
  188. package/docs/html/functions/support_Observable.deprecatedSet.html +0 -9
  189. package/docs/html/functions/support_Observable.deprecatedWatch.html +0 -9
  190. package/docs/html/functions/support_Observable.deprecatedWatchProperty.html +0 -14
  191. package/docs/html/functions/support_Observable.getPropertyByPath.html +0 -9
  192. package/docs/html/functions/utilities_watch.watchCollectionPropertyEach.html +0 -11
  193. package/docs/html/functions/utilities_watch.watchEach.html +0 -18
  194. package/docs/html/interfaces/support_Observable.IDeprecatedObservable.html +0 -57
  195. package/docs/html/modules/ErrorBase.html +0 -2
  196. package/docs/html/modules/support_Observable.html +0 -9
  197. package/docs/html/modules/tasks_identify_StreamLayerQueryIdentifyProvider.html +0 -2
  198. package/docs/html/modules/utilities_ObservableWeakSet.html +0 -2
  199. package/docs/html/types/utilities_watch.WatchCallback.html +0 -3
  200. package/docs/html/variables/support_esri.Evented.html +0 -2
  201. package/docs/html/variables/tasks_identify_StreamLayerQueryIdentifyProvider.StreamLayerQueryIdentifyProvider.html +0 -1
  202. package/docs/html/variables/utilities_collection.Collection.html +0 -2
  203. package/locale/_localeDeprecation.d.ts +0 -1
  204. package/locale/_localeDeprecation.js +0 -1
  205. package/locale/af.d.ts +0 -1
  206. package/locale/af.js +0 -1
  207. package/locale/ar-MA.d.ts +0 -1
  208. package/locale/ar-MA.js +0 -1
  209. package/locale/ar-SA.d.ts +0 -1
  210. package/locale/ar-SA.js +0 -1
  211. package/locale/ar-TN.d.ts +0 -1
  212. package/locale/ar-TN.js +0 -1
  213. package/locale/ar.d.ts +0 -1
  214. package/locale/ar.js +0 -1
  215. package/locale/az.d.ts +0 -1
  216. package/locale/az.js +0 -1
  217. package/locale/be.d.ts +0 -1
  218. package/locale/be.js +0 -1
  219. package/locale/bg.d.ts +0 -1
  220. package/locale/bg.js +0 -1
  221. package/locale/bn.d.ts +0 -1
  222. package/locale/bn.js +0 -1
  223. package/locale/bs.d.ts +0 -1
  224. package/locale/bs.js +0 -1
  225. package/locale/ca.d.ts +0 -1
  226. package/locale/ca.js +0 -1
  227. package/locale/core.d.ts +0 -79
  228. package/locale/core.js +0 -1
  229. package/locale/cs.d.ts +0 -1
  230. package/locale/cs.js +0 -1
  231. package/locale/cv.d.ts +0 -1
  232. package/locale/cv.js +0 -1
  233. package/locale/cy.d.ts +0 -1
  234. package/locale/cy.js +0 -1
  235. package/locale/da.d.ts +0 -1
  236. package/locale/da.js +0 -1
  237. package/locale/de-AT.d.ts +0 -1
  238. package/locale/de-AT.js +0 -1
  239. package/locale/de.d.ts +0 -1
  240. package/locale/de.js +0 -1
  241. package/locale/el.d.ts +0 -1
  242. package/locale/el.js +0 -1
  243. package/locale/en-AU.d.ts +0 -1
  244. package/locale/en-AU.js +0 -1
  245. package/locale/en-CA.d.ts +0 -1
  246. package/locale/en-CA.js +0 -1
  247. package/locale/en-GB.d.ts +0 -1
  248. package/locale/en-GB.js +0 -1
  249. package/locale/en.d.ts +0 -1
  250. package/locale/en.js +0 -1
  251. package/locale/es.d.ts +0 -1
  252. package/locale/es.js +0 -1
  253. package/locale/et.d.ts +0 -1
  254. package/locale/et.js +0 -1
  255. package/locale/eu.d.ts +0 -1
  256. package/locale/eu.js +0 -1
  257. package/locale/fa.d.ts +0 -1
  258. package/locale/fa.js +0 -1
  259. package/locale/fi.d.ts +0 -1
  260. package/locale/fi.js +0 -1
  261. package/locale/fo.d.ts +0 -1
  262. package/locale/fo.js +0 -1
  263. package/locale/fr-CA.d.ts +0 -1
  264. package/locale/fr-CA.js +0 -1
  265. package/locale/fr.d.ts +0 -1
  266. package/locale/fr.js +0 -1
  267. package/locale/gl.d.ts +0 -1
  268. package/locale/gl.js +0 -1
  269. package/locale/he.d.ts +0 -1
  270. package/locale/he.js +0 -1
  271. package/locale/hi.d.ts +0 -1
  272. package/locale/hi.js +0 -1
  273. package/locale/hr.d.ts +0 -1
  274. package/locale/hr.js +0 -1
  275. package/locale/hu.d.ts +0 -1
  276. package/locale/hu.js +0 -1
  277. package/locale/hy.d.ts +0 -1
  278. package/locale/hy.js +0 -1
  279. package/locale/id.d.ts +0 -1
  280. package/locale/id.js +0 -1
  281. package/locale/inv.d.ts +0 -1
  282. package/locale/inv.js +0 -1
  283. package/locale/is.d.ts +0 -1
  284. package/locale/is.js +0 -1
  285. package/locale/it.d.ts +0 -1
  286. package/locale/it.js +0 -1
  287. package/locale/ja.d.ts +0 -1
  288. package/locale/ja.js +0 -1
  289. package/locale/ka.d.ts +0 -1
  290. package/locale/ka.js +0 -1
  291. package/locale/km.d.ts +0 -1
  292. package/locale/km.js +0 -1
  293. package/locale/ko.d.ts +0 -1
  294. package/locale/ko.js +0 -1
  295. package/locale/lt.d.ts +0 -1
  296. package/locale/lt.js +0 -1
  297. package/locale/lv.d.ts +0 -1
  298. package/locale/lv.js +0 -1
  299. package/locale/mk.d.ts +0 -1
  300. package/locale/mk.js +0 -1
  301. package/locale/ml.d.ts +0 -1
  302. package/locale/ml.js +0 -1
  303. package/locale/mr.d.ts +0 -1
  304. package/locale/mr.js +0 -1
  305. package/locale/ms-MY.d.ts +0 -1
  306. package/locale/ms-MY.js +0 -1
  307. package/locale/ms.d.ts +0 -1
  308. package/locale/ms.js +0 -1
  309. package/locale/my.d.ts +0 -1
  310. package/locale/my.js +0 -1
  311. package/locale/nb.d.ts +0 -1
  312. package/locale/nb.js +0 -1
  313. package/locale/ne.d.ts +0 -1
  314. package/locale/ne.js +0 -1
  315. package/locale/nl.d.ts +0 -1
  316. package/locale/nl.js +0 -1
  317. package/locale/nn.d.ts +0 -1
  318. package/locale/nn.js +0 -1
  319. package/locale/no.d.ts +0 -1
  320. package/locale/no.js +0 -1
  321. package/locale/pl.d.ts +0 -1
  322. package/locale/pl.js +0 -1
  323. package/locale/pt-BR.d.ts +0 -1
  324. package/locale/pt-BR.js +0 -1
  325. package/locale/pt.d.ts +0 -1
  326. package/locale/pt.js +0 -1
  327. package/locale/ro.d.ts +0 -1
  328. package/locale/ro.js +0 -1
  329. package/locale/ru.d.ts +0 -1
  330. package/locale/ru.js +0 -1
  331. package/locale/si.d.ts +0 -1
  332. package/locale/si.js +0 -1
  333. package/locale/sk.d.ts +0 -1
  334. package/locale/sk.js +0 -1
  335. package/locale/sl.d.ts +0 -1
  336. package/locale/sl.js +0 -1
  337. package/locale/sq.d.ts +0 -1
  338. package/locale/sq.js +0 -1
  339. package/locale/sr-Cyrl.d.ts +0 -1
  340. package/locale/sr-Cyrl.js +0 -1
  341. package/locale/sr-ME.d.ts +0 -1
  342. package/locale/sr-ME.js +0 -1
  343. package/locale/sr.d.ts +0 -1
  344. package/locale/sr.js +0 -1
  345. package/locale/sv.d.ts +0 -1
  346. package/locale/sv.js +0 -1
  347. package/locale/ta.d.ts +0 -1
  348. package/locale/ta.js +0 -1
  349. package/locale/th.d.ts +0 -1
  350. package/locale/th.js +0 -1
  351. package/locale/tl.d.ts +0 -1
  352. package/locale/tl.js +0 -1
  353. package/locale/tr.d.ts +0 -1
  354. package/locale/tr.js +0 -1
  355. package/locale/tzm-Latn.d.ts +0 -1
  356. package/locale/tzm-Latn.js +0 -1
  357. package/locale/tzm.d.ts +0 -1
  358. package/locale/tzm.js +0 -1
  359. package/locale/uk.d.ts +0 -1
  360. package/locale/uk.js +0 -1
  361. package/locale/uz.d.ts +0 -1
  362. package/locale/uz.js +0 -1
  363. package/locale/vi.d.ts +0 -1
  364. package/locale/vi.js +0 -1
  365. package/locale/zh-TW.d.ts +0 -1
  366. package/locale/zh-TW.js +0 -1
  367. package/locale/zh.d.ts +0 -1
  368. package/locale/zh.js +0 -1
  369. package/support/Observable.d.ts +0 -242
  370. package/support/Observable.js +0 -1
  371. package/tasks/identify/StreamLayerQueryIdentifyProvider.d.ts +0 -2
  372. package/tasks/identify/StreamLayerQueryIdentifyProvider.js +0 -1
  373. package/utilities/ObservableWeakSet.d.ts +0 -52
  374. package/utilities/ObservableWeakSet.js +0 -1
package/locale.d.ts CHANGED
@@ -2,24 +2,6 @@
2
2
  * The invariant locale. This is the default locale.
3
3
  */
4
4
  export declare const INVARIANT = "inv";
5
- /**
6
- * Indicates whether a given locale is available for use.
7
- *
8
- * @deprecated This library now supports any locale supported by the browser or
9
- * Node. There is no longer a special subset of locales that are managed by
10
- * this library. This function will always return `true`.
11
- * @param locale The locale to check.
12
- */
13
- export declare function isRegistered(locale: string): boolean;
14
- /**
15
- * Gets a list of all registered locales.
16
- *
17
- * @deprecated This library now supports any locale supported by the browser or
18
- * Node. There is no longer a special subset of locales that are managed by
19
- * this library. This function will always return an empty array since locales
20
- * can no longer be loaded/registered.
21
- */
22
- export declare function getRegisteredLocales(): string[];
23
5
  /**
24
6
  * Gets the current locale.
25
7
  */
@@ -30,28 +12,10 @@ export declare function get(): string;
30
12
  * @param locale The locale to set.
31
13
  */
32
14
  export declare function set(locale: string): void;
33
- /**
34
- * Asynchronously loads a locale.
35
- *
36
- * @deprecated This library now supports any locale supported by the browser or
37
- * Node. There is no longer a special subset of locales that are managed by
38
- * this library. Calling this function has no effect.
39
- * @param locale The locale to load.
40
- */
41
- export declare function load(locale: string): Promise<void>;
42
15
  /**
43
16
  * Returns the user's locale as detected by the browser.
44
17
  */
45
18
  export declare function detectLocale(): string;
46
- /**
47
- * Gets the best matching VertiGIS locale for the given locale.
48
- *
49
- * @deprecated This library now supports any locale supported by the browser or
50
- * Node. There is no longer a special subset of locales that are managed by
51
- * this library. This function will just return the input locale.
52
- * @param locale The locale value to convert.
53
- */
54
- export declare function getBestMatchLocale(locale: string): string;
55
19
  /**
56
20
  * Gets the matching locales for the given locale, from most specific to least
57
21
  * specific. For example, the input `"zh-Hans-CN"` would produce `["zh-Hans-CN",
package/locale.js CHANGED
@@ -1 +1 @@
1
- import{checkArg as t}from"./utilities/checkArg.js";export const INVARIANT="inv";let e="inv";export function isRegistered(t){return!0}export function getRegisteredLocales(){return[]}export function get(){return e}export function set(r){t("locale",r).isNotMissing().isNotEmpty(),e=r}export async function load(t){}export function detectLocale(){return navigator.language||"inv"}export function getBestMatchLocale(t){return t}export function getMatchingLocales(t){let e;try{e=parseLocale(function(t){const e=parseLocale(t);let r=e.language;e.script&&(r+=`-${e.script}`);e.territory&&(r+=`-${e.territory}`);return r}(t))}catch{return[]}const r=[t];if(e.script){const t=`${e.language}-${e.script}`;r.includes(t)||r.push(t)}if(e.territory){const t=`${e.language}-${e.territory}`;r.includes(t)||r.push(t)}return r.includes(e.language)||r.push(e.language),r.push("inv"),r}export function parseLocale(t){if("string"!=typeof t)throw new Error("Invalid locale.");const e=t.split("-");if(e.length<1||e.length>3||e.some((t=>0===t.length)))throw new Error(`Invalid locale: ${t}`);const r={language:e[0].toLowerCase()};return 2===e.length?2===e[1].length?r.territory=e[1].toUpperCase():r.script=e[1][0].toUpperCase()+e[1].slice(1).toLowerCase():3===e.length&&(r.script=e[1][0].toUpperCase()+e[1].slice(1).toLowerCase(),r.territory=e[2].toUpperCase()),r}
1
+ import{checkArg as t}from"./utilities/checkArg.js";export const INVARIANT="inv";let e="inv";export function get(){return e}export function set(r){t("locale",r).isNotMissing().isNotEmpty(),e=r}export function detectLocale(){return navigator.language||"inv"}export function getMatchingLocales(t){let e;try{e=parseLocale(function(t){const e=parseLocale(t);let r=e.language;e.script&&(r+=`-${e.script}`);e.territory&&(r+=`-${e.territory}`);return r}(t))}catch{return[]}const r=[t];if(e.script){const t=`${e.language}-${e.script}`;r.includes(t)||r.push(t)}if(e.territory){const t=`${e.language}-${e.territory}`;r.includes(t)||r.push(t)}return r.includes(e.language)||r.push(e.language),r.push("inv"),r}export function parseLocale(t){if("string"!=typeof t)throw new Error("Invalid locale.");const e=t.split("-");if(e.length<1||e.length>3||e.some((t=>0===t.length)))throw new Error(`Invalid locale: ${t}`);const r={language:e[0].toLowerCase()};return 2===e.length?2===e[1].length?r.territory=e[1].toUpperCase():r.script=e[1][0].toUpperCase()+e[1].slice(1).toLowerCase():3===e.length&&(r.script=e[1][0].toUpperCase()+e[1].slice(1).toLowerCase(),r.territory=e[2].toUpperCase()),r}
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{InvalidOperationError as r}from"../InvalidOperationError.js";import{serializable as t}from"../support/Serializable.js";import{isBuildingSceneLayer as s}from"../utilities/_layers.js";import{flatten as i}from"../utilities/array.js";import{checkArg as a}from"../utilities/checkArg.js";import{watchCollectionPropertyEach as l}from"../utilities/watch.js";import{LayerExtension as o,LayerExtensionSchema as n}from"./_LayerExtension.js";import{SublayerExtension as y}from"./_SublayerExtension.js";import{SublayerExtensionCollectionBase as u}from"./support/_SublayerExtensionCollection.js";const p="SublayerExtension collection for BuildingLayerExtension is readonly";let d=class extends o{get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}_deferredSublayerProperties;constructor(e){super(e),l(this,"layer.allSublayers","outFields",(()=>{this.layer.outFields=[...new Set(i(this.layer.allSublayers.toArray().filter((e=>"building-component"===e.type)).map((e=>e.outFields?e.outFields.includes("*")?e.fields?.map((e=>e.name))??[]:e.outFields:[]))))]}))}_createSublayerExtension(e){return y.factory.create(e)}_applyLayerProperties(e,r){return a("layerJson",e).isNotMissing(),a("layerJson.layerType",e.layerType).satisfies((e=>!e||"BuildingSceneLayer"===e)),a("layer",r).isNotMissing().satisfies(s),super._applyLayerProperties(e,r)}async _onInitialize(){await super._onInitialize(),this._deferredSublayerProperties&&(this.assignProperties({layer:{layerType:"BuildingSceneLayer",sublayers:this._deferredSublayerProperties}}),this._deferredSublayerProperties=void 0)}_createSublayerExtensionCollection(){return new h(this)}_isSupportedLayer(e){return s(e)}_createSchema(){return new c(this)}async _applyPortalItemProperties(e){if("Scene Service"!==e.type)throw new Error(`Cannot create Scene Layer from Portal item that has type: ${e.type}`);if(!e.typeKeywords.includes("Building"))throw new Error("Cannot create building scene layer from Portal item that does not reference a building scene layer.");this.layer.url=e.url||this.layer.url}_capabilities(){return{...super._capabilities(),supportsStandardizedQueries:!0}}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"BuildingSceneLayer"},deserialize:r=>{if(this._toPropertyDef(e.layer).deserialize(r),r&&!s(r)&&r.sublayers&&!this.layer?.sublayers){this._deferredSublayerProperties=this._deferredSublayerProperties||[];for(const e of r.sublayers){const r=this._deferredSublayerProperties.findIndex((r=>r.title===e.title));r>=0?this._deferredSublayerProperties[r]={...this._deferredSublayerProperties[r],...e}:this._deferredSublayerProperties.push({...e})}}}}}}};d=e([t],d);export{d as BuildingSceneLayerExtension};let c=class extends n{_getPropertyBindings(){return{spatialReference:"spatialReference"}}_setSetting(e,t){if(this._layerBindings.has(e))throw new r("This schema property is read-only.");super._setSetting(e,t)}};c=e([t],c);export{c as BuildingSceneLayerReadOnlySchema};class h extends u{constructor(e){super(e,"layer.sublayers"),this._layerExtension=e}add(e,t){if(a("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.layer.sublayers&&!this._parent.layer.sublayers.includes(e.sublayer))throw new r(p);return super.add(e,t)}removeAt(e){throw new r(p)}reorder(e,t){throw new r(p)}reverse(){throw new r(p)}sort(e){throw new r(p)}splice(e,t,...s){throw new r(p)}_createSublayerExtension(e){return this._parent._createSublayerExtension(e)}}
1
+ import{__decorate as e}from"tslib";import{InvalidOperationError as r}from"../InvalidOperationError.js";import{serializable as t}from"../support/Serializable.js";import{watchEach as s}from"../support/observableUtils.js";import{isBuildingSceneLayer as i}from"../utilities/_layers.js";import{flatten as a}from"../utilities/array.js";import{checkArg as l}from"../utilities/checkArg.js";import{LayerExtension as o,LayerExtensionSchema as n}from"./_LayerExtension.js";import{SublayerExtension as y}from"./_SublayerExtension.js";import{SublayerExtensionCollectionBase as u}from"./support/_SublayerExtensionCollection.js";const p="SublayerExtension collection for BuildingLayerExtension is readonly";let d=class extends o{get layer(){return super.layer}get sublayerExtensions(){return super.sublayerExtensions}get supportsSublayers(){return!0}get _layerView(){return this.layer&&this.mapExtension?._allLayerViews.find((e=>e.layer===this.layer))}_deferredSublayerProperties;constructor(e){super(e),this._watchHandles.push(s(this,"layer.allSublayers.[].outFields",(()=>{this.layer.outFields=[...new Set(a(this.layer.allSublayers.toArray().filter((e=>"building-component"===e.type)).map((e=>e.outFields?e.outFields.includes("*")?e.fields?.map((e=>e.name))??[]:e.outFields:[]))))]})))}_createSublayerExtension(e){return y.factory.create(e)}_applyLayerProperties(e,r){return l("layerJson",e).isNotMissing(),l("layerJson.layerType",e.layerType).satisfies((e=>!e||"BuildingSceneLayer"===e)),l("layer",r).isNotMissing().satisfies(i),super._applyLayerProperties(e,r)}async _onInitialize(){await super._onInitialize(),this._deferredSublayerProperties&&(this.assignProperties({layer:{layerType:"BuildingSceneLayer",sublayers:this._deferredSublayerProperties}}),this._deferredSublayerProperties=void 0)}_createSublayerExtensionCollection(){return new h(this)}_isSupportedLayer(e){return i(e)}_createSchema(){return new c(this)}async _applyPortalItemProperties(e){if("Scene Service"!==e.type)throw new Error(`Cannot create Scene Layer from Portal item that has type: ${e.type}`);if(!e.typeKeywords.includes("Building"))throw new Error("Cannot create building scene layer from Portal item that does not reference a building scene layer.");this.layer.url=e.url||this.layer.url}_capabilities(){return{...super._capabilities(),supportsStandardizedQueries:!0}}_getSerializableProperties(){const e=super._getSerializableProperties();return{...e,layer:{...this._toPropertyDef(e.layer),default:{layerType:"BuildingSceneLayer"},deserialize:r=>{if(this._toPropertyDef(e.layer).deserialize(r),r&&!i(r)&&r.sublayers&&!this.layer?.sublayers){this._deferredSublayerProperties=this._deferredSublayerProperties||[];for(const e of r.sublayers){const r=this._deferredSublayerProperties.findIndex((r=>r.title===e.title));r>=0?this._deferredSublayerProperties[r]={...this._deferredSublayerProperties[r],...e}:this._deferredSublayerProperties.push({...e})}}}}}}};d=e([t],d);export{d as BuildingSceneLayerExtension};let c=class extends n{_getPropertyBindings(){return{spatialReference:"spatialReference"}}_setSetting(e,t){if(this._layerBindings.has(e))throw new r("This schema property is read-only.");super._setSetting(e,t)}};c=e([t],c);export{c as BuildingSceneLayerReadOnlySchema};class h extends u{constructor(e){super(e,"layer.sublayers"),this._layerExtension=e}add(e,t){if(l("sublayerX",e).isNotMissing(),e.sublayer&&this._parent.layer.sublayers&&!this._parent.layer.sublayers.includes(e.sublayer))throw new r(p);return super.add(e,t)}removeAt(e){throw new r(p)}reorder(e,t){throw new r(p)}reverse(){throw new r(p)}sort(e){throw new r(p)}splice(e,t,...s){throw new r(p)}_createSublayerExtension(e){return this._parent._createSublayerExtension(e)}}
@@ -393,7 +393,8 @@ export declare abstract class LayerExtension<TProperties extends LayerExtensionP
393
393
  private _setupSublayersHandles;
394
394
  private readonly _onVisibleChanged;
395
395
  private readonly _onSublayersSublayerVisibleChanged;
396
- private readonly _onSublayersChange;
396
+ private readonly _onSublayersAfterAdd;
397
+ private readonly _onSublayersAfterRemove;
397
398
  private _ensureAChildSublayerVisible;
398
399
  private _ensureAtMostOneChildSublayerVisible;
399
400
  }
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import{ArgumentError as i}from"../ArgumentError.js";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{ItemType as r}from"../ItemType.js";import{FeatureSourceBase as a}from"../data/FeatureSourceBase.js";import{FieldExtension as n}from"../data/FieldExtension.js";import{PopupContentExtension as o}from"../data/PopupContentExtension.js";import{Schema as l}from"../data/Schema.js";import{layerToJson as y,getLayerJsonType as h,jsonToLayer as d,applyJsonToLayer as p}from"../json/LayerJson.js";import{DefaultArcGISRequestHelper as u}from"../support/ArcGISRequestHelper.js";import{ReadOnlyInitializableCollection as c}from"../support/ReadOnlyInitializableCollection.js";import{serializable as f}from"../support/Serializable.js";import{createIHandle as _,notifyChange as g,onWatch as b,watch as m,watchEach as E}from"../support/observableUtils.js";import x from"../utilities/_ReferenceCountedHandle.js";import{getEquivalencyTypeForLayers as S,getLayerUrl as L,isLayer as v}from"../utilities/_layers.js";import{checkArg as w}from"../utilities/checkArg.js";import{compare as M}from"../utilities/collection.js";import{load as P}from"../utilities/esri.js";import{isGroupLayerExtension as I}from"../utilities/extensions.js";import{hasMmapLayer as A}from"../utilities/layers.js";import{getLogger as C}from"../utilities/log.js";import{deepClone as j,objectKeys as z}from"../utilities/object.js";import{toPortalItem as H}from"../utilities/portal.js";import{onCollectionPropertyChange as T}from"../utilities/watch.js";import{_assignSublayerExtensions as R}from"./_SublayerExtension.js";import{ExtensionBaseLayerListSettings as V,fromLayerListMode as D}from"./support/LayerListSettings.js";import{SublayerExtensionCollectionBase as F}from"./support/_SublayerExtensionCollection.js";const O="Invalid type of layer for this type of layer extension.",$="This type of layer does not have features.",N="This type of layer cannot have sublayers.",k=Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsAttachmentEditing:!1,supportsStandardizedQueries:!1});export class LayerExtension extends a{get layer(){return this._layer}get mapExtension(){return this._mapExtension}get basemapExtension(){return this._basemapExtension}get groundExtension(){return this._groundExtension}get parentLayerExtension(){return this._parentLayerExtension}get hasFeatures(){return!1}get capabilities(){return this._capabilities()}get renderer(){}get visibilityMode(){return this._visibilityMode}set visibilityMode(e){this._visibilityMode=e,"exclusive"===e&&this._ensureAtMostOneChildSublayerVisible()}get sublayerExtensions(){return this._sublayerExtensions}get requestHelper(){return this._requestHelper||(this._requestHelper=new u),this._requestHelper}set requestHelper(e){this._requestHelper=e}get title(){return this.layer?.title??this._deferredLayerProperties?.title??("string"==typeof this._deferredLayerProperties?.$ref?this._deferredLayerProperties?.$ref:this._deferredLayerProperties?.$ref?.title??this._deferredLayerProperties?.$ref?.id)??"Layer"}get supportsSublayers(){return!1}get effectiveMinScale(){return this.layer&&this.layer.minScale||0}get effectiveMaxScale(){return this.layer&&this.layer.maxScale||0}get isEffectivelyVisible(){const e=!!this.layer&&this.layer.visible;return this.parentLayerExtension?this.parentLayerExtension.isEffectivelyVisible&&e:e}get effectiveFullExtent(){return this.layer?this.layer.fullExtent:void 0}get canChangeScale(){return!0}get canChangeOpacity(){return!0}get canChangeLabels(){return!1}get canChangeRenderer(){return!1}get canChangeDefinitionExpression(){return!1}get initialDefinitionExpression(){return this._initialDefinitionExpression}get initialRenderer(){return this._initialRenderer}get initialVisibility(){return this._initialVisibility??this.layer?.visible??!1}get _layerId(){return this.layer?.id??this._deferredLayerProperties?.$ref?.id}get _layerSupportsHideChildren(){return this.supportsSublayers}get _sublayers(){if(this.supportsSublayers)return this.layer?this.layer.sublayers:void 0}static factory;get dynamicallyAddedLayer(){return this._dynamicallyAddedLayer}set dynamicallyAddedLayer(e){this._dynamicallyAddedLayer=e}tpkSource;layerListSettings;allSublayerExtensions;get sublayersAreReadOnly(){return!0}_itemType=r.LAYER_EXTENSION;_watchHandles=[];_layerWatchHandles=[];_mapExtension;_basemapExtension;_groundExtension;_parentLayerExtension;_sublayerExtensions;_layer;_dynamicallyAddedLayer=!1;_deferredLayerProperties;_requestHelper;_initialDefinitionExpression;_initialRenderer;_initialVisibility;_visibilityMode="independent";_portalItem;constructor(e){super(e);const t={...this.getDefaults(),...e};w("properties.layer",t.layer).isNotMissing();const{layer:i}=t;let s;if(i?.hasOwnProperty("listMode")&&(s=D(i.listMode)),this.layerListSettings=this._createLayerListSettings({...s,...t.layerListSettings}),v(i))w("properties.layer",i).satisfies((e=>this._isSupportedLayer(e)),O),this._setLayer(i);else if(i){if(i.$portalItem){const e=i.$portalItem;this._portalItem=H(e)}this._deferredLayerProperties=i}this._sublayerExtensions=this._createSublayerExtensionCollection(),this.allSublayerExtensions=new W(this),b(this,"isEffectivelyVisible",(()=>m(this,"parentLayerExtension.isEffectivelyVisible",(()=>g(this,"isEffectivelyVisible")),{sync:!0}))),b(this,"_sublayers",(()=>m(this,"layer.sublayers",(()=>g(this,"_sublayers")),{sync:!0})))}static create(e){if(!LayerExtension.factory)throw new s("Cannot create layer extension: no layer extension factory has been registered.");return LayerExtension.factory.create(e)}static async fromPortalItem(e,t){w("portalItemLike",e).isNotMissing();const s=t??{};w("layerExtensionProperties.layer",s.layer).satisfies((e=>!v(e)));const r={...s.layer};w("layerExtensionProperties.layer.$ref",r.$ref).satisfies((e=>null==e));const a=new u,n=H(e);let o;await P(n);const l=n.typeKeywords??"";if("Map Service"===n.type)o=l.includes("Tiled")||l.includes("Hosted Service")?"ArcGISTiledMapServiceLayer":"ArcGISMapServiceLayer";else if("Feature Service"===n.type)o=l.includes("SubtypeGroupLayer")?"SubtypeGroupLayer":"ArcGISFeatureLayer";else if("Image Service"===n.type){const e=await LayerExtension._getLayerData(n.url,a);e.cacheType?"Map"===e.cacheType?o="ArcGISTiledImageServiceLayer":("Elevation"===e.cacheType||l.includes("Elevation 3D Layer"))&&(o="ArcGISTiledElevationServiceLayer"):o=e.singleFusedMapCache||e.tileInfo||l.includes("Hosted Service")?"ArcGISTiledImageServiceLayer":"ArcGISImageServiceLayer"}else if("CSV"===n.type)o="CSV";else if("KML"===n.type)o="KML";else if("Scene Service"===n.type)l.includes("3DObject")||l.includes("Point")?o="ArcGISSceneServiceLayer":l.includes("IntegratedMesh")?o="IntegratedMeshLayer":l.includes("PointCloud")?o="PointCloudLayer":l.includes("Building")&&(o="BuildingSceneLayer");else if("Stream Service"===n.type)o="ArcGISStreamLayer";else if("Vector Tile Service"===n.type)o="VectorTileLayer";else if("Feature Collection"===n.type){o="ArcGISFeatureLayer";const e=await n.fetchData();r.featureCollection=e}else if("WFS"===n.type){o="WFS";const e=await n.fetchData();Object.assign(r,e)}else if("WMTS"===n.type){o="WebTiledLayer";const e=await n.fetchData();Object.assign(r,e)}else if("WMS"===n.type){o="WMS";const e=await n.fetchData();Object.assign(r,e)}if(!o)throw new i("portalItem","Could not determine correct type of LayerExtension to create from portal item");if(r.layerType&&r.layerType!==o)throw new i("layerExtensionProperties.layer.layerType","Layer type defined in layer properties does not match layer type from portal item");return r.layerType=o,r.$portalItem=n,s.layer=r,LayerExtension.create(s)}static async _getLayerData(e,t){const i=await t.request(e,{query:{f:"json"}});if(!i?.data)throw new Error(`Response to request for url ${e} was invalid.`);return i.data}getFeatures(e,t){if(!this.hasFeatures)throw new s($);return super.getFeatures(e,t)}getFullExtent(){return this.effectiveFullExtent}async addFeatures(e,t){if(w("features",e).isNotMissing(),!this.hasFeatures)throw new s($);await super.addFeatures(e,t)}async updateFeatures(e,t){if(w("features",e).isNotMissing(),!this.hasFeatures)throw new s($);await super.updateFeatures(e,t)}async deleteFeatures(e,t){if(w("features",e).isNotMissing(),!this.hasFeatures)throw new s($);await super.deleteFeatures(e,t)}async _createBackingLayer(){this._portalItem||this.layer||this._deferredLayerProperties?.$ref?!this.layer&&this._portalItem&&this._setLayer(await this._createLayer(this.getDefaults().layer)):(this._setLayer(await this._createLayer(this._deferredLayerProperties)),w("properties.layer",this._layer).satisfies((e=>this._isSupportedLayer(e)),O),this._deferredLayerProperties=void 0)}_setMapExtension(e){if(this.mapExtension===e)return;const t=this.mapExtension;this._mapExtension=e,t&&this.featureSettings.formatSettings.parent===t.formatSettings&&(this.featureSettings.formatSettings.parent=void 0),e&&(this.featureSettings.formatSettings.parent||(this.featureSettings.formatSettings.parent=e.formatSettings)),this._resolveLayer(),g(this,"mapExtension")}_setBasemapExtension(e){this.basemapExtension!==e&&(this._basemapExtension=e,this._resolveLayer(),e&&(this.taskSettings.parent=e.taskSettings),g(this,"basemapExtension"))}_setGroundExtension(e){this.groundExtension!==e&&(this._groundExtension=e,this._resolveLayer(),e&&(this.taskSettings.parent=e.taskSettings),g(this,"groundExtension"))}_setParentLayerExtension(e){if(this.parentLayerExtension===e)return;const t=this._parentLayerExtension;this._parentLayerExtension=e,t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=this.mapExtension?this.mapExtension.formatSettings:void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=void 0)),e&&((!this.featureSettings.formatSettings.parent||this.mapExtension&&this.featureSettings.formatSettings.parent===this.mapExtension.formatSettings)&&(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),this.taskSettings.parent||(this.taskSettings.parent=e.taskSettings)),this._resolveLayer(),g(this,"parentLayerExtension")}_resolveLayer(e){if(this.layer||!this._deferredLayerProperties)return;const t=e??this.basemapExtension?.basemap?.baseLayers??this.groundExtension?.ground?.layers??this.parentLayerExtension?.layer?.layers??this.mapExtension?.map.layers;if(!t)return;const i=[];let s;for(const e of t){const t=S(e,this._deferredLayerProperties);if("none"!==t){if("solid"===t){s=e;break}i.push(e)}}s||1!==i.length||(s=i[0]),s&&this._isSupportedLayer(s)&&(this._setLayer(s),this._deferredLayerProperties.$portalItem&&J().warn("LayerExtension defined with both $ref and $portalItem. Ignoring $portalItem."))}async _switchLayer(e){if(e===this.layer)return;w("newLayer",e).isNotMissing().satisfies((e=>this._isSupportedLayer(e)),O),this.isInitialized&&await P(e);const t=new Map;if(this._sublayers)for(const e of this._sublayers.toArray())t.set(e.id,this.sublayerExtensions.forSublayer(e));e.visible=this.layer.visible,e.opacity=this.layer.opacity,e.listMode=this.layer.listMode,e.hasOwnProperty("labelsVisible")&&this.layer.hasOwnProperty("labelsVisible")&&(e.labelsVisible=this.layer.labelsVisible);const i=this.schema.fieldExtensions.toArray(),s=this.featureSettings.popupContentExtensions.toArray();this._setLayer(e),i.forEach((e=>{const t=this.schema.fields.find((t=>n.matchesRef(e,{$ref:t.name})));t&&e._switchField(t)})),s.forEach(((e,t)=>{const i=this.featureSettings.popupContentExtensions.find((e=>o.matchesRef(s,t,e.toJSON().content)));i&&e._switchContent(i.content)}));const r=[];if(this._sublayers){const e=this._sublayers.filter((e=>t.has(e.id))).toArray();r.push(...e.map((async e=>{const i=t.get(e.id);await i._switchSublayer(e),this._sublayerExtensions._register(i)})))}this.isInitialized&&r.push(this._initializeChildren()),await Promise.all(r)}_getProjectWebmapJSON(){if(!this.layer)return;let e=y(this.layer);if(!this.dynamicallyAddedLayer){const{id:t,title:i,layerType:s,opacity:r}=e;e={id:t,title:i,layerType:s,visibility:this.layer.visible,opacity:r}}return e}_onSublayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(t){J().error({message:`Error occurred while initializing sublayer extension for sublayer '${e.title??e.sublayer.id??e.id}'.`,error:t})}};async _onDestroy(){this._watchHandles.forEach((e=>e?.remove())),this._layerWatchHandles.forEach((e=>e?.remove())),await Promise.all(this.sublayerExtensions.toArray().map((e=>e.destroy()))),await super._onDestroy()}_getSerializableProperties(){return{...super._getSerializableProperties(),iconUrl:{serializeModes:["initial","project"],serialize:e=>"project"!==e||this.dynamicallyAddedLayer?this.iconUrl:this.getDefault("iconUrl")},visibilityMode:{serializeModes:["initial","project"],serialize:e=>"project"!==e||this.dynamicallyAddedLayer?this.visibilityMode:this.getDefault("visibilityMode"),default:"independent"},tpkSource:{serializeModes:["initial"]},layerListSettings:{serializeModes:["initial","project"],serialize:e=>"project"!==e||this.dynamicallyAddedLayer?this.layerListSettings:this.getDefault("layerListSettings")},sublayerExtensions:{serializeModes:["initial","project"],serialize:e=>this.sublayerExtensions.map((e=>e.toItemUri())).toArray(),deserialize:e=>{R(this.sublayerExtensions,e,(e=>this._createSublayerExtension(e)))}},layer:{serializeModes:["initial","project"],serialize:e=>{if(this.layer){if((this._mapExtension||this._parentLayerExtension||this._basemapExtension||this._groundExtension)&&(this._layer.id||this._layer.title)){const e=h(this._layer),t=this._getSerializableRefLayerProperties(),i=L(this._layer),s=i?{url:i}:{};return{$ref:{id:this._layer.id,title:this._layer.title,subtype:this._getSerializableLayerType(),...s},layerType:e,...t}}return y(this.layer)}return this._deferredLayerProperties?j(this._deferredLayerProperties):void 0},isDefault:()=>{throw new Error("Missing implementation for _getSerializableProperties() > layer > default. Subclasses of LayerExtension must implement this.")},deserialize:e=>{if(v(e)){if(e!==this.layer)throw new Error("Property 'layer' is read-only.")}else if(e){if(this._layer)return this._applyLayerProperties(e,this.layer);this._deferredLayerProperties&&(this._deferredLayerProperties={...this._deferredLayerProperties,...e})}}},dynamicallyAddedLayer:{serializeModes:["project"],default:!1},requestHelper:{serialize:!1}}}_getSerializableLayerType(){}_getSerializableRefLayerProperties(){return{}}_createSublayerExtension(e){if(!this.supportsSublayers)throw new s(N);throw new Error("Missing implementation for _createSublayerExtension(). Subclasses of LayerExtension that support sublayers must implement this.")}async _onInitialize(){if(await super._onInitialize(),await this._createBackingLayer(),this._portalItem&&(await P(this._portalItem),await this._applyPortalItemProperties(this._portalItem),this.layer.title=this._portalItem.title,this.layer.portalItem=this._portalItem,this.iconUrl||(this.iconUrl=this._portalItem.thumbnailUrl),await this._applyLayerProperties(this._deferredLayerProperties,this.layer),this._deferredLayerProperties=void 0),this._resolveLayer(),!this.layer){const e=this._deferredLayerProperties.$ref;throw this._mapExtension||this._parentLayerExtension||this._basemapExtension||this._groundExtension?new s(`No layer found matching reference "${"string"==typeof e?e:JSON.stringify(e)}".`):new s("Cannot resolve layer reference: missing parent.")}this._deferredLayerProperties&&(await this._applyLayerProperties(this._deferredLayerProperties,this.layer),this._deferredLayerProperties=void 0),await this._initializeLayer(),await P(this.layer),this.supportsSublayers&&!this.layer.sublayers&&this.layer._set("sublayers",new t),this._initialDefinitionExpression="definitionExpression"in this.layer?this.layer.definitionExpression:void 0,this._initialRenderer=this.renderer?.clone(),this._initialVisibility=this.layer.visible,this._sublayerExtensions.onParentInitialized()}async _postInitialize(){await super._postInitialize(),this.layerListSettings.onLayerExtensionInitialized(),this.supportsSublayers&&this._watchHandles.push(T(this,"layer.sublayers",(async e=>{const t=(e.added??[]).map((e=>this.sublayerExtensions.forSublayer(e)));await Promise.all(t.map(this._onSublayerAddedPostInitialize))})))}_applyPortalItemProperties(e){throw new s("Cannot use this type of layer extension with a PortalItem.")}async _initializeLayer(){}_createLayerListSettings(e){return new G(e,this)}_createSublayerExtensionCollection(){return new B(this)}_capabilities(){return k}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.sublayerExtensions}async _createLayer(e){return d(e)}_applyLayerProperties(e,t){w("layerJson",e).isNotMissing();const i=e.layerType||e.type;return w("layerJson.layerType",i).satisfies((e=>!e||e===this.getDefault("layer")?.layerType)),w("layer",t).isNotMissing().satisfies((e=>this._isSupportedLayer(e))),p(e,t)}_setLayer(e){if(this._layer=e,this._layerWatchHandles.forEach((e=>e.remove())),this._layerWatchHandles.length=0,this._layerWatchHandles.push(m(e,"visible",((e,t,i)=>{this._onVisibleChanged(e),this.mapExtension?.emit("layer-visibility-change",i)})),b(this,"effectiveMinScale",(()=>m(this.layer,"minScale",(()=>g(this,"effectiveMinScale")),{sync:!0}))),b(this,"effectiveMaxScale",(()=>m(this.layer,"maxScale",(()=>g(this,"effectiveMaxScale")),{sync:!0}))),b(this,"title",(()=>m(this.layer,"title",(()=>g(this,"title")),{sync:!0})))),"definitionExpression"in e&&this._watchHandles.push(m(e,"definitionExpression",((e,t,i)=>{this.mapExtension?.emit("layer-definition-expression-change",i)}))),this.supportsSublayers)if(this._sublayers)this._setupSublayersHandles();else{const t=m(e,"sublayers",(()=>{this._setupSublayersHandles()}),{sync:!0,once:!0});this._layerWatchHandles.push(t)}g(this,"layer"),g(this,"title"),g(this,"effectiveMinScale"),g(this,"effectiveMaxScale"),g(this,"isEffectivelyVisible")}_setupSublayersHandles(){this._layerWatchHandles.push(this._sublayers.on("change",this._onSublayersChange),E(this._sublayers,"[].visible",this._onSublayersSublayerVisibleChanged))}_onVisibleChanged=e=>{if("inherited"===this.visibilityMode&&this.supportsSublayers&&this._sublayers)for(const t of this._sublayers.toArray())t.visible=e;g(this,"isEffectivelyVisible")};_onSublayersSublayerVisibleChanged=(e,t,i)=>{e&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(i)};_onSublayersChange=e=>{e.added?.length&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(e.added[e.added.length-1])};_ensureAChildSublayerVisible(e){for(const t of this._sublayers.toArray())t!==e&&(t.visible=!1)}_ensureAtMostOneChildSublayerVisible(){this.layer&&this._sublayers&&this._ensureAChildSublayerVisible(this._sublayers.find((e=>e.visible)))}}class B extends F{constructor(e){super(e,"_sublayers"),this._layerExtension=e}add(e,t){if(w("sublayerX",e).isNotMissing(),!this._layerExtension.supportsSublayers)throw new s(N);const i=e.sublayer?e.sublayer.layer:void 0;return i&&i!==this._layerExtension.layer&&i.sublayers.remove(e.sublayer),super.add(e,t)}}class W extends c{get _collection(){return this._layerExtension.sublayerExtensions.flatten((e=>e.sublayerExtensions))}_layerExtension;_onChangeLayerExtensionsHandle=new x((()=>{const e=new WeakMap,i=new Set,s=r=>{const a=new t(r.added).flatten((e=>e.sublayerExtensions)),n=new t(r.moved).flatten((e=>e.sublayerExtensions)),o=new t(r.removed).flatten((e=>e.sublayerExtensions));for(const t of a)if(!e.has(t)){const r=t.sublayerExtensions.on("change",s);e.set(t,r),i.add(r)}for(const t of o){const s=e.get(t);s&&(s.remove(),e.delete(t),i.delete(s))}this.emit("change",{added:a.toArray(),moved:n.toArray(),removed:o.toArray(),target:this})};i.add(this._layerExtension.sublayerExtensions.on("change",s));const r=this._layerExtension.sublayerExtensions.flatten((e=>e.sublayerExtensions));for(const t of r){const r=t.sublayerExtensions.on("change",s);e.set(t,r),i.add(r)}return _(i)}));_onAfterAddLayerExtensionsHandle=new x((()=>{const e=new WeakMap,t=new Set,i=i=>{const s=e.get(i);s&&(s.remove(),e.delete(i),t.delete(s))},s=e=>{const t=e.item,s=t.sublayerExtensions.flatten((e=>e.sublayerExtensions));for(const e of s)i(e);i(t)},r=i=>{this.emit("after-add",{...i,target:this});const a=i.item.sublayerExtensions.flatten((e=>e.sublayerExtensions));for(const n of a)if(this.emit("after-add",{...i,item:n,target:this}),!e.has(n)){const i=n.sublayerExtensions.on("after-add",r),a=n.sublayerExtensions.on("after-remove",s),o=_([i,a]);e.set(n,o),t.add(o)}};t.add(this._layerExtension.sublayerExtensions.on("after-add",r)),t.add(this._layerExtension.sublayerExtensions.on("after-remove",s));const a=this._layerExtension.sublayerExtensions.flatten((e=>e.sublayerExtensions));for(const i of a){const a=i.sublayerExtensions.on("after-add",r),n=i.sublayerExtensions.on("after-remove",s),o=_([a,n]);e.set(i,o),t.add(o)}return _(t)}));_onAfterRemoveLayerExtensionsHandle=new x((()=>{const e=new WeakMap,t=new Set,i=i=>{const s=e.get(i);s&&(s.remove(),e.delete(i),t.delete(s))},s=e=>{this.emit("after-remove",{...e,target:this});const t=e.item,s=t.sublayerExtensions.flatten((e=>e.sublayerExtensions));for(const t of s)this.emit("after-remove",{...e,item:t,target:this}),i(t);i(t)},r=i=>{const a=i.item,n=a.sublayerExtensions.on("after-add",r),o=a.sublayerExtensions.on("after-remove",s),l=_([n,o]);e.set(a,l),t.add(l)};t.add(this._layerExtension.sublayerExtensions.on("after-remove",s)),t.add(this._layerExtension.sublayerExtensions.on("after-add",r));const a=this._layerExtension.sublayerExtensions.flatten((e=>e.sublayerExtensions));for(const i of a){const a=i.sublayerExtensions.on("after-add",r),n=i.sublayerExtensions.on("after-remove",s),o=_([a,n]);e.set(i,o),t.add(o)}return _(t)}));constructor(e){super(),this._layerExtension=e}on(e,t){const i=[];return"change"===e?i.push(this._onChangeLayerExtensionsHandle.add()):"after-add"===e?i.push(this._onAfterAddLayerExtensionsHandle.add()):"after-remove"===e&&i.push(this._onAfterRemoveLayerExtensionsHandle.add()),i.push(super.on(e,t)),_(i)}findById(e){return w("id",e).isNotMissing(),this.find((t=>t.id===e))}findBySublayerId(e){return w("id",e).isNotMissing(),this.find((t=>t._sublayerId===e))}forSublayer(e){return w("sublayer",e).isNotMissing(),this.findBySublayerId(e.id)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.sublayer}}let G=class extends V{get _esriLayer(){return this._extension.layer}get _listModePath(){return"layer.listMode"}get _supportsChildren(){return this._extension.supportsSublayers}};G=e([f],G);export{G as LayerExtensionLayerListSettings};function q(e){return"object"==typeof e?e:{property:e}}let U=class extends l{_layerExtension;_layerBindings=new Map;constructor(e){super(),this._layerExtension=e,this._bindSettingsToLayerProperties(),e.layer?this._onLayerResolved(e.layer):m(e,"layer",(()=>{this._onLayerResolved(e.layer)}),{sync:!0,once:!0})}_getPropertyBindings(){return{}}_hasSettingIncludingAncestor(e){return!(!this._layerBindings.has(e)||!this._layerExtension.layer)||super._hasSettingIncludingAncestor(e)}_getSetting(e,t){if(this._layerBindings.has(e)){const t=q(this._layerBindings.get(e));if(t.hasOwnProperty("value"))return t.value;if(this._layerExtension.layer)return this._layerExtension.layer[t.property]}return super._getSetting(e,t)}_setSetting(e,t){if(this._layerBindings.has(e)){const i=q(this._layerBindings.get(e));if(i.readonly||i.hasOwnProperty("value"))throw new s(ERR_SCHEMA_READ_ONLY);if(this._layerExtension.layer)return void(this._layerExtension.layer[i.property]=t)}super._setSetting(e,t)}_bindSettingsToLayerProperties(){const e=this._getPropertyBindings();for(const t of z(e)){const i=q(e[t]);this._layerBindings.set(t,i),i.hasOwnProperty("value")||b(this,t,(()=>m(this._layerExtension,`layer.${String(i.property)}`,(()=>g(this,t)),{sync:!i.hasOwnProperty("sync")||i.sync})))}}_onLayerResolved(e){for(const t of this._layerBindings.keys())this.isModified(t)&&(e[t]=this[t],this.reset(t))}};U=e([f],U);export{U as LayerExtensionSchema};export function _assignLayerExtensions(e,t){return M(e,t,{onNew:(t,i)=>{e.add(t instanceof LayerExtension?t:LayerExtension.create(t),Y(t)?void 0:i)},onMatch:(t,i,s,r)=>{i instanceof LayerExtension||t.assignProperties(i),s===r||Y(i)||e.reorder(t,r)},onMissing:t=>{(A([t])||I(t)&&0===t.layerExtensions.toArray().length)&&e.remove(t)},equals:(e,t)=>{const i="solid"===S(e.layer,t.layer);return t instanceof LayerExtension?e===t||i:i||e.id===t.id}})}function J(){return C("geocortex.api.mapping.LayerExtension")}function Y(e){return e instanceof LayerExtension?!!e._deferredLayerProperties?.$ref:!v(e.layer)&&!!e.layer?.$ref}let K=class extends U{_setSetting(e,t){if(this._layerBindings.has(e))throw new s(ERR_SCHEMA_READ_ONLY);super._setSetting(e,t)}};K=e([f],K);export{K as LayerExtensionReadOnlySchema};export const ERR_SCHEMA_READ_ONLY="This schema property is read-only.";
1
+ import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import{ArgumentError as i}from"../ArgumentError.js";import{InvalidOperationError as s}from"../InvalidOperationError.js";import{ItemType as r}from"../ItemType.js";import{FeatureSourceBase as a}from"../data/FeatureSourceBase.js";import{FieldExtension as n}from"../data/FieldExtension.js";import{PopupContentExtension as o}from"../data/PopupContentExtension.js";import{Schema as l}from"../data/Schema.js";import{layerToJson as y,getLayerJsonType as h,jsonToLayer as d,applyJsonToLayer as u}from"../json/LayerJson.js";import{DefaultArcGISRequestHelper as p}from"../support/ArcGISRequestHelper.js";import{ReadOnlyInitializableCollection as c}from"../support/ReadOnlyInitializableCollection.js";import{serializable as f}from"../support/Serializable.js";import{createIHandle as _,notifyChange as b,onWatch as m,watch as g,watchEach as E}from"../support/observableUtils.js";import x from"../utilities/_ReferenceCountedHandle.js";import{getEquivalencyTypeForLayers as S,getLayerUrl as L,isLayer as v}from"../utilities/_layers.js";import{checkArg as w}from"../utilities/checkArg.js";import{compare as M}from"../utilities/collection.js";import{load as I}from"../utilities/esri.js";import{isGroupLayerExtension as P}from"../utilities/extensions.js";import{hasMmapLayer as A}from"../utilities/layers.js";import{getLogger as C}from"../utilities/log.js";import{deepClone as j,objectKeys as z}from"../utilities/object.js";import{toPortalItem as H}from"../utilities/portal.js";import{onCollectionPropertyChange as T}from"../utilities/watch.js";import{_assignSublayerExtensions as R}from"./_SublayerExtension.js";import{ExtensionBaseLayerListSettings as V,fromLayerListMode as D}from"./support/LayerListSettings.js";import{SublayerExtensionCollectionBase as F}from"./support/_SublayerExtensionCollection.js";const O="Invalid type of layer for this type of layer extension.",$="This type of layer does not have features.",N="This type of layer cannot have sublayers.",k=Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsAttachmentEditing:!1,supportsStandardizedQueries:!1});export class LayerExtension extends a{get layer(){return this._layer}get mapExtension(){return this._mapExtension}get basemapExtension(){return this._basemapExtension}get groundExtension(){return this._groundExtension}get parentLayerExtension(){return this._parentLayerExtension}get hasFeatures(){return!1}get capabilities(){return this._capabilities()}get renderer(){}get visibilityMode(){return this._visibilityMode}set visibilityMode(e){this._visibilityMode=e,"exclusive"===e&&this._ensureAtMostOneChildSublayerVisible()}get sublayerExtensions(){return this._sublayerExtensions}get requestHelper(){return this._requestHelper||(this._requestHelper=new p),this._requestHelper}set requestHelper(e){this._requestHelper=e}get title(){return this.layer?.title??this._deferredLayerProperties?.title??("string"==typeof this._deferredLayerProperties?.$ref?this._deferredLayerProperties?.$ref:this._deferredLayerProperties?.$ref?.title??this._deferredLayerProperties?.$ref?.id)??"Layer"}get supportsSublayers(){return!1}get effectiveMinScale(){return this.layer&&this.layer.minScale||0}get effectiveMaxScale(){return this.layer&&this.layer.maxScale||0}get isEffectivelyVisible(){const e=!!this.layer&&this.layer.visible;return this.parentLayerExtension?this.parentLayerExtension.isEffectivelyVisible&&e:e}get effectiveFullExtent(){return this.layer?this.layer.fullExtent:void 0}get canChangeScale(){return!0}get canChangeOpacity(){return!0}get canChangeLabels(){return!1}get canChangeRenderer(){return!1}get canChangeDefinitionExpression(){return!1}get initialDefinitionExpression(){return this._initialDefinitionExpression}get initialRenderer(){return this._initialRenderer}get initialVisibility(){return this._initialVisibility??this.layer?.visible??!1}get _layerId(){return this.layer?.id??this._deferredLayerProperties?.$ref?.id}get _layerSupportsHideChildren(){return this.supportsSublayers}get _sublayers(){if(this.supportsSublayers)return this.layer?this.layer.sublayers:void 0}static factory;get dynamicallyAddedLayer(){return this._dynamicallyAddedLayer}set dynamicallyAddedLayer(e){this._dynamicallyAddedLayer=e}tpkSource;layerListSettings;allSublayerExtensions;get sublayersAreReadOnly(){return!0}_itemType=r.LAYER_EXTENSION;_watchHandles=[];_layerWatchHandles=[];_mapExtension;_basemapExtension;_groundExtension;_parentLayerExtension;_sublayerExtensions;_layer;_dynamicallyAddedLayer=!1;_deferredLayerProperties;_requestHelper;_initialDefinitionExpression;_initialRenderer;_initialVisibility;_visibilityMode="independent";_portalItem;constructor(e){super(e);const t={...this.getDefaults(),...e};w("properties.layer",t.layer).isNotMissing();const{layer:i}=t;let s;if(i?.hasOwnProperty("listMode")&&(s=D(i.listMode)),this.layerListSettings=this._createLayerListSettings({...s,...t.layerListSettings}),v(i))w("properties.layer",i).satisfies((e=>this._isSupportedLayer(e)),O),this._setLayer(i);else if(i){if(i.$portalItem){const e=i.$portalItem;this._portalItem=H(e)}this._deferredLayerProperties=i}this._sublayerExtensions=this._createSublayerExtensionCollection(),this.allSublayerExtensions=new W(this),m(this,"isEffectivelyVisible",(()=>g(this,"parentLayerExtension.isEffectivelyVisible",(()=>b(this,"isEffectivelyVisible")),{sync:!0}))),m(this,"_sublayers",(()=>g(this,"layer.sublayers",(()=>b(this,"_sublayers")),{sync:!0})))}static create(e){if(!LayerExtension.factory)throw new s("Cannot create layer extension: no layer extension factory has been registered.");return LayerExtension.factory.create(e)}static async fromPortalItem(e,t){w("portalItemLike",e).isNotMissing();const s=t??{};w("layerExtensionProperties.layer",s.layer).satisfies((e=>!v(e)));const r={...s.layer};w("layerExtensionProperties.layer.$ref",r.$ref).satisfies((e=>null==e));const a=new p,n=H(e);let o;await I(n);const l=n.typeKeywords??"";if("Map Service"===n.type)o=l.includes("Tiled")||l.includes("Hosted Service")?"ArcGISTiledMapServiceLayer":"ArcGISMapServiceLayer";else if("Feature Service"===n.type)o=l.includes("SubtypeGroupLayer")?"SubtypeGroupLayer":"ArcGISFeatureLayer";else if("Image Service"===n.type){const e=await LayerExtension._getLayerData(n.url,a);e.cacheType?"Map"===e.cacheType||l.includes("Tiled Imagery")?o="ArcGISTiledImageServiceLayer":"Elevation"===e.cacheType||l.includes("Elevation 3D Layer")?o="ArcGISTiledElevationServiceLayer":"Raster"===e.cacheType&&(o="ArcGISImageServiceLayer"):o=e.singleFusedMapCache||e.tileInfo||l.includes("Hosted Service")?"ArcGISTiledImageServiceLayer":"ArcGISImageServiceLayer"}else if("CSV"===n.type)o="CSV";else if("KML"===n.type)o="KML";else if("Scene Service"===n.type)l.includes("3DObject")||l.includes("Point")?o="ArcGISSceneServiceLayer":l.includes("IntegratedMesh")?o="IntegratedMeshLayer":l.includes("PointCloud")?o="PointCloudLayer":l.includes("Building")&&(o="BuildingSceneLayer");else if("Stream Service"===n.type)o="ArcGISStreamLayer";else if("Vector Tile Service"===n.type)o="VectorTileLayer";else if("Feature Collection"===n.type){o="ArcGISFeatureLayer";const e=await n.fetchData();r.featureCollection=e}else if("WFS"===n.type){o="WFS";const e=await n.fetchData();Object.assign(r,e)}else if("WMTS"===n.type){o="WebTiledLayer";const e=await n.fetchData();Object.assign(r,e)}else if("WMS"===n.type){o="WMS";const e=await n.fetchData();Object.assign(r,e)}if(!o)throw new i("portalItem","Could not determine correct type of LayerExtension to create from portal item");if(r.layerType&&r.layerType!==o)throw new i("layerExtensionProperties.layer.layerType","Layer type defined in layer properties does not match layer type from portal item");return r.layerType=o,r.$portalItem=n,s.layer=r,LayerExtension.create(s)}static async _getLayerData(e,t){const i=await t.request(e,{query:{f:"json"}});if(!i?.data)throw new Error(`Response to request for url ${e} was invalid.`);return i.data}getFeatures(e,t){if(!this.hasFeatures)throw new s($);return super.getFeatures(e,t)}getFullExtent(){return this.effectiveFullExtent}async addFeatures(e,t){if(w("features",e).isNotMissing(),!this.hasFeatures)throw new s($);await super.addFeatures(e,t)}async updateFeatures(e,t){if(w("features",e).isNotMissing(),!this.hasFeatures)throw new s($);await super.updateFeatures(e,t)}async deleteFeatures(e,t){if(w("features",e).isNotMissing(),!this.hasFeatures)throw new s($);await super.deleteFeatures(e,t)}async _createBackingLayer(){this._portalItem||this.layer||this._deferredLayerProperties?.$ref?!this.layer&&this._portalItem&&this._setLayer(await this._createLayer(this.getDefaults().layer)):(this._setLayer(await this._createLayer(this._deferredLayerProperties)),w("properties.layer",this._layer).satisfies((e=>this._isSupportedLayer(e)),O),this._deferredLayerProperties=void 0)}_setMapExtension(e){if(this.mapExtension===e)return;const t=this.mapExtension;this._mapExtension=e,t&&this.featureSettings.formatSettings.parent===t.formatSettings&&(this.featureSettings.formatSettings.parent=void 0),e&&(this.featureSettings.formatSettings.parent||(this.featureSettings.formatSettings.parent=e.formatSettings)),this._resolveLayer(),b(this,"mapExtension")}_setBasemapExtension(e){this.basemapExtension!==e&&(this._basemapExtension=e,this._resolveLayer(),e&&(this.taskSettings.parent=e.taskSettings),b(this,"basemapExtension"))}_setGroundExtension(e){this.groundExtension!==e&&(this._groundExtension=e,this._resolveLayer(),e&&(this.taskSettings.parent=e.taskSettings),b(this,"groundExtension"))}_setParentLayerExtension(e){if(this.parentLayerExtension===e)return;const t=this._parentLayerExtension;this._parentLayerExtension=e,t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=this.mapExtension?this.mapExtension.formatSettings:void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=void 0)),e&&((!this.featureSettings.formatSettings.parent||this.mapExtension&&this.featureSettings.formatSettings.parent===this.mapExtension.formatSettings)&&(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),this.taskSettings.parent||(this.taskSettings.parent=e.taskSettings)),this._resolveLayer(),b(this,"parentLayerExtension")}_resolveLayer(e){if(this.layer||!this._deferredLayerProperties)return;const t=e??this.basemapExtension?.basemap?.baseLayers??this.groundExtension?.ground?.layers??this.parentLayerExtension?.layer?.layers??this.mapExtension?.map.layers;if(!t)return;const i=[];let s;for(const e of t){const t=S(e,this._deferredLayerProperties);if("none"!==t){if("solid"===t){s=e;break}i.push(e)}}s||1!==i.length||(s=i[0]),s&&this._isSupportedLayer(s)&&(this._setLayer(s),this._deferredLayerProperties.$portalItem&&J().warn("LayerExtension defined with both $ref and $portalItem. Ignoring $portalItem."))}async _switchLayer(e){if(e===this.layer)return;w("newLayer",e).isNotMissing().satisfies((e=>this._isSupportedLayer(e)),O),this.isInitialized&&await I(e);const t=new Map;if(this._sublayers)for(const e of this._sublayers.toArray())t.set(e.id,this.sublayerExtensions.forSublayer(e));e.visible=this.layer.visible,e.opacity=this.layer.opacity,e.listMode=this.layer.listMode,e.hasOwnProperty("labelsVisible")&&this.layer.hasOwnProperty("labelsVisible")&&(e.labelsVisible=this.layer.labelsVisible);const i=this.schema.fieldExtensions.toArray(),s=this.featureSettings.popupContentExtensions.toArray();this._setLayer(e),i.forEach((e=>{const t=this.schema.fields.find((t=>n.matchesRef(e,{$ref:t.name})));t&&e._switchField(t)})),s.forEach(((e,t)=>{const i=this.featureSettings.popupContentExtensions.find((e=>o.matchesRef(s,t,e.toJSON().content)));i&&e._switchContent(i.content)}));const r=[];if(this._sublayers){const e=this._sublayers.filter((e=>t.has(e.id))).toArray();r.push(...e.map((async e=>{const i=t.get(e.id);await i._switchSublayer(e),this._sublayerExtensions._register(i)})))}this.isInitialized&&r.push(this._initializeChildren()),await Promise.all(r)}_getProjectWebmapJSON(){if(!this.layer)return;let e=y(this.layer);if(!this.dynamicallyAddedLayer){const{id:t,title:i,layerType:s,opacity:r}=e;e={id:t,title:i,layerType:s,visibility:this.layer.visible,opacity:r}}return e}_onSublayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(t){J().error({message:`Error occurred while initializing sublayer extension for sublayer '${e.title??e.sublayer.id??e.id}'.`,error:t})}};async _onDestroy(){this._watchHandles.forEach((e=>e?.remove())),this._layerWatchHandles.forEach((e=>e?.remove())),await Promise.all(this.sublayerExtensions.toArray().map((e=>e.destroy()))),await super._onDestroy()}_getSerializableProperties(){return{...super._getSerializableProperties(),iconUrl:{serializeModes:["initial","project"],serialize:e=>"project"!==e||this.dynamicallyAddedLayer?this.iconUrl:this.getDefault("iconUrl")},visibilityMode:{serializeModes:["initial","project"],serialize:e=>"project"!==e||this.dynamicallyAddedLayer?this.visibilityMode:this.getDefault("visibilityMode"),default:"independent"},tpkSource:{serializeModes:["initial"]},layerListSettings:{serializeModes:["initial","project"],serialize:e=>"project"!==e||this.dynamicallyAddedLayer?this.layerListSettings:this.getDefault("layerListSettings")},sublayerExtensions:{serializeModes:["initial","project"],serialize:e=>this.sublayerExtensions.map((e=>e.toItemUri())).toArray(),deserialize:e=>{R(this.sublayerExtensions,e,(e=>this._createSublayerExtension(e)))}},layer:{serializeModes:["initial","project"],serialize:e=>{if(this.layer){if((this._mapExtension||this._parentLayerExtension||this._basemapExtension||this._groundExtension)&&(this._layer.id||this._layer.title)){const e=h(this._layer),t=this._getSerializableRefLayerProperties(),i=L(this._layer),s=i?{url:i}:{};return{$ref:{id:this._layer.id,title:this._layer.title,subtype:this._getSerializableLayerType(),...s},layerType:e,...t}}return y(this.layer)}return this._deferredLayerProperties?j(this._deferredLayerProperties):void 0},isDefault:()=>{throw new Error("Missing implementation for _getSerializableProperties() > layer > default. Subclasses of LayerExtension must implement this.")},deserialize:e=>{if(v(e)){if(e!==this.layer)throw new Error("Property 'layer' is read-only.")}else if(e){if(this._layer)return this._applyLayerProperties(e,this.layer);this._deferredLayerProperties&&(this._deferredLayerProperties={...this._deferredLayerProperties,...e})}}},dynamicallyAddedLayer:{serializeModes:["project"],default:!1},requestHelper:{serialize:!1}}}_getSerializableLayerType(){}_getSerializableRefLayerProperties(){return{}}_createSublayerExtension(e){if(!this.supportsSublayers)throw new s(N);throw new Error("Missing implementation for _createSublayerExtension(). Subclasses of LayerExtension that support sublayers must implement this.")}async _onInitialize(){if(await super._onInitialize(),await this._createBackingLayer(),this._portalItem&&(await I(this._portalItem),await this._applyPortalItemProperties(this._portalItem),this.layer.title=this._portalItem.title,this.layer.portalItem=this._portalItem,this.iconUrl||(this.iconUrl=this._portalItem.thumbnailUrl),await this._applyLayerProperties(this._deferredLayerProperties,this.layer),this._deferredLayerProperties=void 0),this._resolveLayer(),!this.layer){const e=this._deferredLayerProperties.$ref;throw this._mapExtension||this._parentLayerExtension||this._basemapExtension||this._groundExtension?new s(`No layer found matching reference "${"string"==typeof e?e:JSON.stringify(e)}".`):new s("Cannot resolve layer reference: missing parent.")}this._deferredLayerProperties&&(await this._applyLayerProperties(this._deferredLayerProperties,this.layer),this._deferredLayerProperties=void 0),await this._initializeLayer(),await I(this.layer),this.supportsSublayers&&!this.layer.sublayers&&this.layer._set("sublayers",new t),this._initialDefinitionExpression="definitionExpression"in this.layer?this.layer.definitionExpression:void 0,this._initialRenderer=this.renderer?.clone(),this._initialVisibility=this.layer.visible,this._sublayerExtensions.onParentInitialized()}async _postInitialize(){await super._postInitialize(),this.layerListSettings.onLayerExtensionInitialized(),this.supportsSublayers&&this._watchHandles.push(T(this,"layer.sublayers",(async e=>{const t=(e.added??[]).map((e=>this.sublayerExtensions.forSublayer(e)));await Promise.all(t.map(this._onSublayerAddedPostInitialize))})))}_applyPortalItemProperties(e){throw new s("Cannot use this type of layer extension with a PortalItem.")}async _initializeLayer(){}_createLayerListSettings(e){return new G(e,this)}_createSublayerExtensionCollection(){return new B(this)}_capabilities(){return k}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.sublayerExtensions}async _createLayer(e){return d(e)}_applyLayerProperties(e,t){w("layerJson",e).isNotMissing();const i=e.layerType||e.type;return w("layerJson.layerType",i).satisfies((e=>!e||e===this.getDefault("layer")?.layerType)),w("layer",t).isNotMissing().satisfies((e=>this._isSupportedLayer(e))),u(e,t)}_setLayer(e){if(this._layer=e,this._layerWatchHandles.forEach((e=>e.remove())),this._layerWatchHandles.length=0,this._layerWatchHandles.push(g(e,"visible",((e,t,i)=>{this._onVisibleChanged(e),this.mapExtension?.emit("layer-visibility-change",i)})),m(this,"effectiveMinScale",(()=>g(this.layer,"minScale",(()=>b(this,"effectiveMinScale")),{sync:!0}))),m(this,"effectiveMaxScale",(()=>g(this.layer,"maxScale",(()=>b(this,"effectiveMaxScale")),{sync:!0}))),m(this,"title",(()=>g(this.layer,"title",(()=>b(this,"title")),{sync:!0})))),"definitionExpression"in e&&this._watchHandles.push(g(e,"definitionExpression",((e,t,i)=>{this.mapExtension?.emit("layer-definition-expression-change",i)}))),this.supportsSublayers)if(this._sublayers)this._setupSublayersHandles();else{const t=g(e,"sublayers",(()=>{this._setupSublayersHandles()}),{sync:!0,once:!0});this._layerWatchHandles.push(t)}b(this,"layer"),b(this,"title"),b(this,"effectiveMinScale"),b(this,"effectiveMaxScale"),b(this,"isEffectivelyVisible")}_setupSublayersHandles(){this._layerWatchHandles.push(this._sublayers.on("after-add",this._onSublayersAfterAdd),this._sublayers.on("after-remove",this._onSublayersAfterRemove),E(this._sublayers,"[].visible",this._onSublayersSublayerVisibleChanged,{sync:!0}))}_onVisibleChanged=e=>{if("inherited"===this.visibilityMode&&this.supportsSublayers&&this._sublayers)for(const t of this._sublayers.toArray())t.visible=e;b(this,"isEffectivelyVisible")};_onSublayersSublayerVisibleChanged=(e,t,i)=>{e&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(i)};_onSublayersAfterAdd=e=>{1!==this._sublayers.length||e.item.visible||"exclusive"!==this.visibilityMode?e.item.visible&&"exclusive"===this.visibilityMode&&(e.item.visible=!1):e.item.visible=!0};_onSublayersAfterRemove=e=>{0!==this._sublayers.length&&"exclusive"===this.visibilityMode&&e.item.visible&&this._ensureAChildSublayerVisible(this._sublayers.getItemAt(0))};_ensureAChildSublayerVisible(e){for(const t of this._sublayers.toArray())t!==e&&(t.visible=!1)}_ensureAtMostOneChildSublayerVisible(){this.layer&&this._sublayers&&this._ensureAChildSublayerVisible(this._sublayers.find((e=>e.visible)))}}class B extends F{constructor(e){super(e,"_sublayers"),this._layerExtension=e}add(e,t){if(w("sublayerX",e).isNotMissing(),!this._layerExtension.supportsSublayers)throw new s(N);const i=e.sublayer?e.sublayer.layer:void 0;return i&&i!==this._layerExtension.layer&&i.sublayers.remove(e.sublayer),super.add(e,t)}}class W extends c{get _collection(){return this._layerExtension.sublayerExtensions.flatten((e=>e.sublayerExtensions))}_layerExtension;_onChangeLayerExtensionsHandle=new x((()=>{const e=new WeakMap,i=new Set,s=r=>{const a=new t(r.added).flatten((e=>e.sublayerExtensions)),n=new t(r.moved).flatten((e=>e.sublayerExtensions)),o=new t(r.removed).flatten((e=>e.sublayerExtensions));for(const t of a)if(!e.has(t)){const r=t.sublayerExtensions.on("change",s);e.set(t,r),i.add(r)}for(const t of o){const s=e.get(t);s&&(s.remove(),e.delete(t),i.delete(s))}this.emit("change",{added:a.toArray(),moved:n.toArray(),removed:o.toArray(),target:this})};i.add(this._layerExtension.sublayerExtensions.on("change",s));const r=this._layerExtension.sublayerExtensions.flatten((e=>e.sublayerExtensions));for(const t of r){const r=t.sublayerExtensions.on("change",s);e.set(t,r),i.add(r)}return _(i)}));_onAfterAddLayerExtensionsHandle=new x((()=>{const e=new WeakMap,t=new Set,i=i=>{const s=e.get(i);s&&(s.remove(),e.delete(i),t.delete(s))},s=e=>{const t=e.item,s=t.sublayerExtensions.flatten((e=>e.sublayerExtensions));for(const e of s)i(e);i(t)},r=i=>{this.emit("after-add",{...i,target:this});const a=i.item.sublayerExtensions.flatten((e=>e.sublayerExtensions));for(const n of a)if(this.emit("after-add",{...i,item:n,target:this}),!e.has(n)){const i=n.sublayerExtensions.on("after-add",r),a=n.sublayerExtensions.on("after-remove",s),o=_([i,a]);e.set(n,o),t.add(o)}};t.add(this._layerExtension.sublayerExtensions.on("after-add",r)),t.add(this._layerExtension.sublayerExtensions.on("after-remove",s));const a=this._layerExtension.sublayerExtensions.flatten((e=>e.sublayerExtensions));for(const i of a){const a=i.sublayerExtensions.on("after-add",r),n=i.sublayerExtensions.on("after-remove",s),o=_([a,n]);e.set(i,o),t.add(o)}return _(t)}));_onAfterRemoveLayerExtensionsHandle=new x((()=>{const e=new WeakMap,t=new Set,i=i=>{const s=e.get(i);s&&(s.remove(),e.delete(i),t.delete(s))},s=e=>{this.emit("after-remove",{...e,target:this});const t=e.item,s=t.sublayerExtensions.flatten((e=>e.sublayerExtensions));for(const t of s)this.emit("after-remove",{...e,item:t,target:this}),i(t);i(t)},r=i=>{const a=i.item,n=a.sublayerExtensions.on("after-add",r),o=a.sublayerExtensions.on("after-remove",s),l=_([n,o]);e.set(a,l),t.add(l)};t.add(this._layerExtension.sublayerExtensions.on("after-remove",s)),t.add(this._layerExtension.sublayerExtensions.on("after-add",r));const a=this._layerExtension.sublayerExtensions.flatten((e=>e.sublayerExtensions));for(const i of a){const a=i.sublayerExtensions.on("after-add",r),n=i.sublayerExtensions.on("after-remove",s),o=_([a,n]);e.set(i,o),t.add(o)}return _(t)}));constructor(e){super(),this._layerExtension=e}on(e,t){const i=[];return"change"===e?i.push(this._onChangeLayerExtensionsHandle.add()):"after-add"===e?i.push(this._onAfterAddLayerExtensionsHandle.add()):"after-remove"===e&&i.push(this._onAfterRemoveLayerExtensionsHandle.add()),i.push(super.on(e,t)),_(i)}findById(e){return w("id",e).isNotMissing(),this.find((t=>t.id===e))}findBySublayerId(e){return w("id",e).isNotMissing(),this.find((t=>t._sublayerId===e))}forSublayer(e){return w("sublayer",e).isNotMissing(),this.findBySublayerId(e.id)}_itemIsInitialized(e){return super._itemIsInitialized(e)&&!!e.sublayer}}let G=class extends V{get _esriLayer(){return this._extension.layer}get _listModePath(){return"layer.listMode"}get _supportsChildren(){return this._extension.supportsSublayers}};G=e([f],G);export{G as LayerExtensionLayerListSettings};function q(e){return"object"==typeof e?e:{property:e}}let U=class extends l{_layerExtension;_layerBindings=new Map;constructor(e){super(),this._layerExtension=e,this._bindSettingsToLayerProperties(),e.layer?this._onLayerResolved(e.layer):g(e,"layer",(()=>{this._onLayerResolved(e.layer)}),{sync:!0,once:!0})}_getPropertyBindings(){return{}}_hasSettingIncludingAncestor(e){return!(!this._layerBindings.has(e)||!this._layerExtension.layer)||super._hasSettingIncludingAncestor(e)}_getSetting(e,t){if(this._layerBindings.has(e)){const t=q(this._layerBindings.get(e));if(t.hasOwnProperty("value"))return t.value;if(this._layerExtension.layer)return this._layerExtension.layer[t.property]}return super._getSetting(e,t)}_setSetting(e,t){if(this._layerBindings.has(e)){const i=q(this._layerBindings.get(e));if(i.readonly||i.hasOwnProperty("value"))throw new s(ERR_SCHEMA_READ_ONLY);if(this._layerExtension.layer)return void(this._layerExtension.layer[i.property]=t)}super._setSetting(e,t)}_bindSettingsToLayerProperties(){const e=this._getPropertyBindings();for(const t of z(e)){const i=q(e[t]);this._layerBindings.set(t,i),i.hasOwnProperty("value")||m(this,t,(()=>g(this._layerExtension,`layer.${String(i.property)}`,(()=>b(this,t)),{sync:!i.hasOwnProperty("sync")||i.sync})))}}_onLayerResolved(e){for(const t of this._layerBindings.keys())this.isModified(t)&&(e[t]=this[t],this.reset(t))}};U=e([f],U);export{U as LayerExtensionSchema};export function _assignLayerExtensions(e,t){return M(e,t,{onNew:(t,i)=>{e.add(t instanceof LayerExtension?t:LayerExtension.create(t),Y(t)?void 0:i)},onMatch:(t,i,s,r)=>{i instanceof LayerExtension||t.assignProperties(i),s===r||Y(i)||e.reorder(t,r)},onMissing:t=>{(A([t])||P(t)&&0===t.layerExtensions.toArray().length)&&e.remove(t)},equals:(e,t)=>{const i="solid"===S(e.layer,t.layer);return t instanceof LayerExtension?e===t||i:i||e.id===t.id}})}function J(){return C("geocortex.api.mapping.LayerExtension")}function Y(e){return e instanceof LayerExtension?!!e._deferredLayerProperties?.$ref:!v(e.layer)&&!!e.layer?.$ref}let K=class extends U{_setSetting(e,t){if(this._layerBindings.has(e))throw new s(ERR_SCHEMA_READ_ONLY);super._setSetting(e,t)}};K=e([f],K);export{K as LayerExtensionReadOnlySchema};export const ERR_SCHEMA_READ_ONLY="This schema property is read-only.";
@@ -363,7 +363,8 @@ export declare abstract class SublayerExtension<TProperties extends SublayerExte
363
363
  private _setSublayer;
364
364
  private readonly _onSetSublayerVisible;
365
365
  private readonly _onSetSublayersSublayerVisible;
366
- private readonly _onSublayersChange;
366
+ private readonly _onSublayersAfterAdd;
367
+ private readonly _onSublayersAfterRemove;
367
368
  private _ensureAChildSublayerVisible;
368
369
  private _ensureAtMostOneChildSublayerVisible;
369
370
  }
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import{InvalidOperationError as i}from"../InvalidOperationError.js";import{isSublayerExtension as s,ItemType as r}from"../ItemType.js";import{FeatureSourceBase as a}from"../data/FeatureSourceBase.js";import{Schema as n}from"../data/Schema.js";import{serializable as l}from"../support/Serializable.js";import{notifyChange as o,onWatch as u,watch as y,watchEach as h}from"../support/observableUtils.js";import{isBuildingComponentSublayer as b,isBuildingGroupSublayer as f,isKMLSublayer as p,isMapImageSublayer as c,isMapNotesSublayer as S,isSubtypeSublayer as d,isTileLayer as _,isWMSSublayer as g,isWMTSSublayer as x}from"../utilities/_layers.js";import{checkArg as E}from"../utilities/checkArg.js";import{compare as v}from"../utilities/collection.js";import{load as m}from"../utilities/esri.js";import{parse as w}from"../utilities/format/number.js";import{getLogger as M}from"../utilities/log.js";import{deepClone as P,objectKeys as C}from"../utilities/object.js";import{onCollectionPropertyChange as V}from"../utilities/watch.js";import{fromLayerListMode as z,LayerListSettings as $}from"./support/LayerListSettings.js";import{SublayerExtensionCollectionBase as A}from"./support/_SublayerExtensionCollection.js";const F=M("SublayerExtension"),R="Invalid type of sublayer for this type of sublayer extension.",j="This type of layer does not have features.",T="This type of sublayer extension cannot have child sublayer extensions.",I=Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsAttachmentEditing:!1,supportsStandardizedQueries:!1});export function getSublayerType(e){if(c(e))return _(e?.layer)?"ArcGISTiledSublayer":"ArcGISMapServiceSublayer";if(p(e))return"KMLSublayer";if(x(e))return"WMTSSublayer";if(g(e))return"WMSSublayer";if(b(e))return"BuildingComponentSublayer";if(f(e))return"BuildingGroupSublayer";if(d(e))return"SubtypeSublayer";if(S(e))return"MapNotesSublayer";throw new Error(`Unknown sublayer type for sublayer: "${e?.title}"`)}export class SublayerExtension extends a{static factory;get sublayer(){return this._sublayer}get layerExtension(){return this._layerExtension}get parentSublayerExtension(){return this._parentSublayerExtension}get hasFeatures(){return!1}get sublayerExtensions(){return this._sublayerExtensions}get renderer(){}layerListSettings;get visibilityMode(){return this.canToggleVisibility?this._visibilityMode:"inherited"}set visibilityMode(e){E("visibilityMode",e).satisfies((e=>this.canToggleVisibility||"inherited"===e),'Sublayers of this type only support a visibility mode of "inherited".'),this._visibilityMode=e,"exclusive"===e&&this._ensureAtMostOneChildSublayerVisible()}get capabilities(){return this._capabilities()}get effectiveMinScale(){const e=this.sublayer?this.sublayer.minScale:0;if(this.parentSublayerExtension){const t=this.parentSublayerExtension.effectiveMinScale||1/0;if(t<(e||1/0))return t}if(this.layerExtension){const t=this.layerExtension.effectiveMinScale||1/0;if(t<(e||1/0))return t}return e}get effectiveMaxScale(){const e=this.sublayer?this.sublayer.maxScale:0;return this.parentSublayerExtension&&this.parentSublayerExtension.effectiveMaxScale>e?this.parentSublayerExtension.effectiveMaxScale:this.layerExtension&&this.layerExtension.effectiveMaxScale>e?this.layerExtension.effectiveMaxScale:e}get isEffectivelyVisible(){const e=!!this.sublayer&&this.sublayer.visible;return this.parentSublayerExtension?this.parentSublayerExtension.isEffectivelyVisible&&e:this.layerExtension?this.layerExtension.isEffectivelyVisible&&e:e}get title(){return this.sublayer?.title??("string"==typeof this._deferredSublayerProperties?.$ref||"number"==typeof this._deferredSublayerProperties?.$ref?this._deferredSublayerProperties?.$ref.toString():this._deferredSublayerProperties?.$ref?.title??this._deferredSublayerProperties?.$ref?.id.toString())??"Sublayer"}get supportsSublayers(){return!1}get canToggleVisibility(){return!0}get canChangeOpacity(){return!0}get canChangeScale(){return!0}get canChangeRenderer(){return!1}get canChangeLabels(){return!1}get canChangeDefinitionExpression(){return!1}get _layerSupportsHideChildren(){return!1}get _sublayerId(){return this.sublayer?.id??("number"==typeof this._deferredSublayerProperties?.$ref?this._deferredSublayerProperties?.$ref:this._deferredSublayerProperties?.$ref?.id)}get _sublayers(){if(this.supportsSublayers)return this.sublayer?.sublayers}get effectiveFullExtent(){return this._effectiveFullExtent?this._effectiveFullExtent:this.parentSublayerExtension?this.parentSublayerExtension.effectiveFullExtent:this.layerExtension?this.layerExtension.effectiveFullExtent:void 0}get initialDefinitionExpression(){return this._initialDefinitionExpression}get initialRenderer(){return this._initialRenderer}get initialVisibility(){return this._initialVisibility??this.sublayer?.visible??!1}_effectiveFullExtent;_itemType=r.SUBLAYER_EXTENSION;_watchHandles=[];_sublayerExtensions;_layerExtension;_parentSublayerExtension;_initialDefinitionExpression;_initialRenderer;_initialVisibility;_sublayer;_visibilityMode;_deferredSublayerProperties;_originalRef;constructor(e){super(e);const t=e||{};this._visibilityMode=this.canToggleVisibility?"independent":"inherited",this._sublayerExtensions=this._createSublayerExtensionCollection();const i=t.sublayer;let s;i?.hasOwnProperty("listMode")&&(s=z(i.listMode)),this.layerListSettings=this._createLayerListSettings({...s,...t.layerListSettings}),L(i)?(E("properties.sublayer",i).satisfies((e=>this._isSupportedSublayer(e)),R),this._setSublayer(i)):i&&(this._deferredSublayerProperties=i),u(this,"isEffectivelyVisible",(()=>y(this,"parentSublayerExtension.isEffectivelyVisible",(()=>o(this,"isEffectivelyVisible")),{sync:!0})))}static create(e){if(!SublayerExtension.factory)throw new i("Cannot create sublayer extension: no sublayer extension factory has been registered.");return SublayerExtension.factory.create(e)}static _matchesRef(e,t,i){if(!e||!t?.$ref)return!1;let s=t.$ref;if("string"==typeof s){const e=w(s);s={id:isNaN(e)?s:e,title:s}}else"number"==typeof s&&(s={id:s});const r=d(e)?e.subtypeCode:e.id;return"both"===i?r===s.id&&e.title===s.title:"by-id"===i?r===s.id:"by-title"===i&&e.title===s.title}getFeatures(e,t){if(!this.hasFeatures)throw new i(j);return super.getFeatures(e,t)}getFullExtent(){return this.effectiveFullExtent}async addFeatures(e,t){if(E("features",e).isNotMissing(),!this.hasFeatures)throw new i(j);await super.addFeatures(e,t)}async updateFeatures(e,t){if(E("features",e).isNotMissing(),!this.hasFeatures)throw new i(j);await super.updateFeatures(e,t)}async deleteFeatures(e,t){if(E("features",e).isNotMissing(),!this.hasFeatures)throw new i(j);await super.deleteFeatures(e,t)}_resolveSublayer(){if(this._sublayer||!this._deferredSublayerProperties||!this.layerExtension?.layer||!this.layerExtension.layer.sublayers)return;const e=e=>t=>SublayerExtension._matchesRef(t,this._deferredSublayerProperties,e),t=this.layerExtension.layer.sublayers.flatten((e=>e.sublayers));let i=t.find(e("both"));if(i||(i=t.find(e("by-title"))),i||(i=t.find(e("by-id"))),i&&this._isSupportedSublayer(i)){this._setSublayer(i);const e={sublayer:{title:this.title,...this._deferredSublayerProperties}};this.assignProperties(e),this._originalRef=this._deferredSublayerProperties.$ref,this._deferredSublayerProperties=void 0}}_setLayerExtension(e){const t=this.layerExtension;this._layerExtension=e,this.layerExtension&&(u(this,"effectiveMinScale",(()=>y(this.layerExtension,"effectiveMinScale",(()=>o(this,"effectiveMinScale")),{sync:!0}))),u(this,"effectiveMaxScale",(()=>y(this.layerExtension,"effectiveMaxScale",(()=>o(this,"effectiveMaxScale")),{sync:!0}))),u(this,"isEffectivelyVisible",(()=>y(this.layerExtension,"isEffectivelyVisible",(()=>o(this,"isEffectivelyVisible")),{sync:!0})))),this._parentSublayerExtension||(t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=void 0)),e&&(this.featureSettings.formatSettings.parent||(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),this.taskSettings.parent||(this.taskSettings.parent=e.taskSettings))),this._resolveSublayer(),o(this,"layerExtension"),this.supportsSublayers&&this._sublayerExtensions.onLayerExtensionChanged()}_setParentSublayerExtension(e){if(this._parentSublayerExtension===e)return;const t=this._parentSublayerExtension;this._parentSublayerExtension=e,this.parentSublayerExtension&&(u(this,"effectiveMinScale",(()=>y(this.parentSublayerExtension,"effectiveMinScale",(()=>o(this,"effectiveMinScale")),{sync:!0}))),u(this,"effectiveMaxScale",(()=>y(this.parentSublayerExtension,"effectiveMaxScale",(()=>o(this,"effectiveMaxScale")),{sync:!0})))),t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=this.layerExtension?this.layerExtension.featureSettings.formatSettings:void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=this.layerExtension?this.layerExtension.taskSettings:void 0)),e&&((!this.featureSettings.formatSettings.parent||this.layerExtension&&this.featureSettings.formatSettings.parent===this.layerExtension.featureSettings.formatSettings)&&(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),(!this.taskSettings.parent||this.layerExtension&&this.taskSettings.parent===this.layerExtension.taskSettings)&&(this.taskSettings.parent=e.taskSettings)),this._resolveSublayer(),o(this,"parentSublayerExtension")}async _switchSublayer(e){if(e===this.sublayer)return;E("newSublayer",e).isNotMissing().satisfies((e=>e.id===this.sublayer.id),"Sublayer ID must match existing sublayer.").satisfies((e=>this._isSupportedSublayer(e)),R),this.isInitialized&&await m(e);const t=new Map;if(this.sublayer?.sublayers)for(const e of this.sublayer.sublayers.toArray())t.set(e.id,this.sublayerExtensions.forSublayer(e));this.canToggleVisibility&&(e.visible=this.sublayer.visible),this.canChangeOpacity&&(e.opacity=this.sublayer.opacity),this._setSublayer(e);const i=[];if(this.supportsSublayers&&this.sublayer.sublayers){const e=this.sublayer.sublayers.filter((e=>t.has(e.id))).toArray();i.push(...e.map((async e=>{const i=t.get(e.id);await i._switchSublayer(e),this._sublayerExtensions._register(i)})))}this.isInitialized&&i.push(this._initializeChildren()),await Promise.all(i)}async _postInitialize(){await super._postInitialize(),this.supportsSublayers&&this._watchHandles.push(V(this,"sublayer.sublayers",(async e=>{const t=(e.added??[]).map((e=>this.sublayerExtensions.forSublayer(e)));await Promise.all(t.map(this._onSublayerAddedPostInitialize))})))}_onSublayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(t){F.error({message:`Error occurred while initializing sublayer extension for sublayer '${e.title??e.sublayer.id??e.id}'.`,error:t})}};async _onDestroy(){this._watchHandles.forEach((e=>e?.remove())),await Promise.all(this.sublayerExtensions.toArray().map((e=>e.destroy()))),await super._onDestroy()}_getSerializableProperties(){return{...super._getSerializableProperties(),visibilityMode:{serializeModes:["initial"],default:this.canToggleVisibility?"independent":"inherited"},layerListSettings:"initial",sublayerExtensions:{serializeModes:["initial","project"],serialize:()=>this.sublayerExtensions.map((e=>e.toItemUri())).toArray(),deserialize:e=>{_assignSublayerExtensions(this.sublayerExtensions,e,(e=>this._createSublayerExtension(e)))}},sublayer:{serializeModes:["initial","project"],serialize:()=>{if(this.sublayer){if(!this._layerExtension)return this._serializeSublayer(this._sublayer);{const e=getSublayerType(this._sublayer);if(this._originalRef)return{$ref:this._originalRef,$sublayerType:e};if(this._sublayer.title||this._sublayer.id)return{...this._createSublayerRef(),$sublayerType:e}}}else if(this._deferredSublayerProperties)return P(this._deferredSublayerProperties)},deserialize:e=>{if(L(e)){if(e!==this.sublayer)throw new Error("Property 'sublayer' is read-only.")}else{if(this._sublayer)return this._applySublayerProperties(e,this._sublayer);this._deferredSublayerProperties&&(this._deferredSublayerProperties={...this._deferredSublayerProperties,...e})}}},requestHelper:{serialize:!1}}}_createSublayerExtension(e){throw new i(T)}_createSchema(){return new k(this)}_createLayerListSettings(e){return new $(e)}_capabilities(){return I}async _onInitialize(){if(await super._onInitialize(),this._sublayer||this._deferredSublayerProperties?.$ref||(this._setSublayer(await this._createSublayer(this._deferredSublayerProperties)),this._deferredSublayerProperties=void 0),this._resolveSublayer(),!this._sublayer){const e=this._deferredSublayerProperties?.$ref;if(!this._layerExtension)throw new i("Cannot resolve sublayer reference: missing parent layer extension.");throw new i(`No sublayer found matching reference "${"string"==typeof e?e:JSON.stringify(e)}".`)}this._initialDefinitionExpression="definitionExpression"in this.sublayer?this.sublayer.definitionExpression:void 0,this._initialRenderer=this.renderer?.clone(),this._initialVisibility=this.sublayer.visible,this.supportsSublayers&&this._sublayerExtensions.onParentInitialized()}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.sublayerExtensions}_createSublayerRef(){return{$ref:{id:d(this._sublayer)?this._sublayer.subtypeCode:this._sublayer.id,title:this._sublayer.title}}}_createSublayerExtensionCollection(){return new SubSublayerExtensionCollection(this)}_watchSublayerProperties(){this._watchHandles.push(u(this,"effectiveMinScale",(()=>y(this.sublayer,"minScale",(()=>o(this,"effectiveMinScale")),{sync:!0}))),u(this,"effectiveMaxScale",(()=>y(this.sublayer,"maxScale",(()=>o(this,"effectiveMaxScale")),{sync:!0}))),u(this,"title",(()=>y(this.sublayer,"title",(()=>o(this,"title")),{sync:!0}))))}_setSublayer(e){this._sublayer=e,this._watchHandles.push(y(e,"visible",((e,t,i)=>{this._onSetSublayerVisible(e),this.layerExtension?.mapExtension?.emit("layer-visibility-change",i)}),{sync:!0})),"definitionExpression"in e&&this._watchHandles.push(y(e,"definitionExpression",((e,t,i)=>{this.layerExtension?.mapExtension?.emit("layer-definition-expression-change",i)}))),this.supportsSublayers&&this._watchHandles.push(V(e,"sublayers",this._onSublayersChange,!0),h(e,"sublayers.[].visible",this._onSetSublayersSublayerVisible,{sync:!0})),this._onSetSublayerVisible(this.sublayer.visible),"exclusive"===this.visibilityMode&&this._ensureAtMostOneChildSublayerVisible(),this._watchSublayerProperties(),o(this,"sublayer"),o(this,"title"),o(this,"effectiveMinScale"),o(this,"effectiveMaxScale"),o(this,"isEffectivelyVisible")}_onSetSublayerVisible=e=>{if("inherited"===this.visibilityMode&&this.supportsSublayers&&this.sublayerExtensions)for(const t of this.sublayerExtensions.toArray())t.sublayer&&t.canToggleVisibility&&(t.sublayer.visible=e);o(this,"isEffectivelyVisible")};_onSetSublayersSublayerVisible=(e,t,i)=>{e&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(i)};_onSublayersChange=e=>{e.added?.length&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(e.added[e.added.length-1])};_ensureAChildSublayerVisible(e){for(const t of this._sublayers.toArray())t!==e&&(t.visible=!1)}_ensureAtMostOneChildSublayerVisible(){this.sublayer&&this._sublayers&&this._ensureAChildSublayerVisible(this._sublayers.find((e=>e.visible)))}}let k=class extends n{_sublayerExtension;_sublayerBindings=new Map;constructor(e){super(),this._sublayerExtension=e,this._bindSettingsToSublayerProperties()}get spatialReference(){if(this._sublayerExtension.layerExtension)return this._sublayerExtension.layerExtension.schema.spatialReference}set spatialReference(e){throw new i("Cannot set sublayer schema spatial reference.")}_getPropertyBindings(){return{}}_bindSettingsToSublayerProperties(){const e=this._getPropertyBindings();for(const t of C(e)){let i=e[t];"string"==typeof i&&(i={property:i}),this._sublayerBindings.set(t,i),i.hasOwnProperty("value")||u(this,t,(()=>y(this._sublayerExtension,`sublayer.${String(i.property)}`,(()=>o(this,t)),{sync:!i.hasOwnProperty("sync")||i.sync})))}}};k=e([l],k);export{k as SublayerSchema};export class SubSublayerExtensionCollection extends A{get _layerExtension(){return this._parent.layerExtension}constructor(e,t){super(e,t??"sublayer.sublayers")}add(e,s){if(E("sublayerX",e).isNotMissing(),!this._parent.supportsSublayers)throw new i(T);return e.sublayer&&this._parent.sublayer&&!this._parent.sublayer.sublayers&&(this._parent.sublayer.sublayers=new t),e.parentSublayerExtension&&e.parentSublayerExtension.sublayerExtensions.remove(e),super.add(e,s)}_onAdded(e){super._onAdded(e),e._setParentSublayerExtension(this._parent)}_onRemoved(e){super._onRemoved(e),e._setParentSublayerExtension(void 0)}}export function _assignSublayerExtensions(e,t,i){v(e,t,{onNew:(t,r)=>{try{e.add(s(t)?t:i(t),N(t)?void 0:r)}catch(e){F.warn({message:`Error occurred while adding sublayer extension for sublayer '${t.title??t.sublayer?.id??t.id}'.`,error:e})}},onMatch:(t,i,r,a)=>{try{s(i)||t.assignProperties(i),r===a||N(i)||e.reorder(t,a)}catch(e){F.warn({message:`Error occurred while assigning sublayer extension properties for sublayer '${t.title??t.sublayer?.id??t.id}'.`,error:e})}},equals:(e,t)=>{if(s(t)){if(e===t)return!0;const i=d(t.sublayer)?t.sublayer.subtypeCode:t.sublayer?.id;return SublayerExtension._matchesRef(e.sublayer,{$ref:{id:i,title:t.sublayer?.title}},"both")}return SublayerExtension._matchesRef(e.sublayer,t.sublayer,"both")||e.id===t.id}})}function L(e){return e&&"function"==typeof e.set}function N(e){return s(e)?!!e._deferredSublayerProperties?.$ref:!L(e.sublayer)&&!!e.sublayer?.$ref}
1
+ import{__decorate as e}from"tslib";import t from"@arcgis/core/core/Collection";import{InvalidOperationError as i}from"../InvalidOperationError.js";import{isSublayerExtension as s,ItemType as r}from"../ItemType.js";import{FeatureSourceBase as a}from"../data/FeatureSourceBase.js";import{Schema as n}from"../data/Schema.js";import{serializable as l}from"../support/Serializable.js";import{createIHandle as o,notifyChange as u,onWatch as y,watch as h,watchEach as b}from"../support/observableUtils.js";import{isBuildingComponentSublayer as f,isBuildingGroupSublayer as p,isKMLSublayer as c,isMapImageSublayer as S,isMapNotesSublayer as d,isSubtypeSublayer as _,isTileLayer as x,isWMSSublayer as g,isWMTSSublayer as E}from"../utilities/_layers.js";import{checkArg as v}from"../utilities/checkArg.js";import{compare as m}from"../utilities/collection.js";import{load as w}from"../utilities/esri.js";import{parse as M}from"../utilities/format/number.js";import{getLogger as P}from"../utilities/log.js";import{deepClone as V,objectKeys as C}from"../utilities/object.js";import{onCollectionPropertyChange as A}from"../utilities/watch.js";import{fromLayerListMode as z,LayerListSettings as $}from"./support/LayerListSettings.js";import{SublayerExtensionCollectionBase as R}from"./support/_SublayerExtensionCollection.js";const F=P("SublayerExtension"),j="Invalid type of sublayer for this type of sublayer extension.",T="This type of layer does not have features.",I="This type of sublayer extension cannot have child sublayer extensions.",k=Object.freeze({supportsAdd:!1,supportsUpdate:!1,supportsDelete:!1,supportsEditing:!1,supportsQuery:!1,supportsAttachmentEditing:!1,supportsStandardizedQueries:!1});export function getSublayerType(e){if(S(e))return x(e?.layer)?"ArcGISTiledSublayer":"ArcGISMapServiceSublayer";if(c(e))return"KMLSublayer";if(E(e))return"WMTSSublayer";if(g(e))return"WMSSublayer";if(f(e))return"BuildingComponentSublayer";if(p(e))return"BuildingGroupSublayer";if(_(e))return"SubtypeSublayer";if(d(e))return"MapNotesSublayer";throw new Error(`Unknown sublayer type for sublayer: "${e?.title}"`)}export class SublayerExtension extends a{static factory;get sublayer(){return this._sublayer}get layerExtension(){return this._layerExtension}get parentSublayerExtension(){return this._parentSublayerExtension}get hasFeatures(){return!1}get sublayerExtensions(){return this._sublayerExtensions}get renderer(){}layerListSettings;get visibilityMode(){return this.canToggleVisibility?this._visibilityMode:"inherited"}set visibilityMode(e){v("visibilityMode",e).satisfies((e=>this.canToggleVisibility||"inherited"===e),'Sublayers of this type only support a visibility mode of "inherited".'),this._visibilityMode=e,"exclusive"===e&&this._ensureAtMostOneChildSublayerVisible()}get capabilities(){return this._capabilities()}get effectiveMinScale(){const e=this.sublayer?this.sublayer.minScale:0;if(this.parentSublayerExtension){const t=this.parentSublayerExtension.effectiveMinScale||1/0;if(t<(e||1/0))return t}if(this.layerExtension){const t=this.layerExtension.effectiveMinScale||1/0;if(t<(e||1/0))return t}return e}get effectiveMaxScale(){const e=this.sublayer?this.sublayer.maxScale:0;return this.parentSublayerExtension&&this.parentSublayerExtension.effectiveMaxScale>e?this.parentSublayerExtension.effectiveMaxScale:this.layerExtension&&this.layerExtension.effectiveMaxScale>e?this.layerExtension.effectiveMaxScale:e}get isEffectivelyVisible(){const e=!!this.sublayer&&this.sublayer.visible;return this.parentSublayerExtension?this.parentSublayerExtension.isEffectivelyVisible&&e:this.layerExtension?this.layerExtension.isEffectivelyVisible&&e:e}get title(){return this.sublayer?.title??("string"==typeof this._deferredSublayerProperties?.$ref||"number"==typeof this._deferredSublayerProperties?.$ref?this._deferredSublayerProperties?.$ref.toString():this._deferredSublayerProperties?.$ref?.title??this._deferredSublayerProperties?.$ref?.id.toString())??"Sublayer"}get supportsSublayers(){return!1}get canToggleVisibility(){return!0}get canChangeOpacity(){return!0}get canChangeScale(){return!0}get canChangeRenderer(){return!1}get canChangeLabels(){return!1}get canChangeDefinitionExpression(){return!1}get _layerSupportsHideChildren(){return!1}get _sublayerId(){return this.sublayer?.id??("number"==typeof this._deferredSublayerProperties?.$ref?this._deferredSublayerProperties?.$ref:this._deferredSublayerProperties?.$ref?.id)}get _sublayers(){if(this.supportsSublayers)return this.sublayer?.sublayers}get effectiveFullExtent(){return this._effectiveFullExtent?this._effectiveFullExtent:this.parentSublayerExtension?this.parentSublayerExtension.effectiveFullExtent:this.layerExtension?this.layerExtension.effectiveFullExtent:void 0}get initialDefinitionExpression(){return this._initialDefinitionExpression}get initialRenderer(){return this._initialRenderer}get initialVisibility(){return this._initialVisibility??this.sublayer?.visible??!1}_effectiveFullExtent;_itemType=r.SUBLAYER_EXTENSION;_watchHandles=[];_sublayerExtensions;_layerExtension;_parentSublayerExtension;_initialDefinitionExpression;_initialRenderer;_initialVisibility;_sublayer;_visibilityMode;_deferredSublayerProperties;_originalRef;constructor(e){super(e);const t=e||{};this._visibilityMode=this.canToggleVisibility?"independent":"inherited",this._sublayerExtensions=this._createSublayerExtensionCollection();const i=t.sublayer;let s;i?.hasOwnProperty("listMode")&&(s=z(i.listMode)),this.layerListSettings=this._createLayerListSettings({...s,...t.layerListSettings}),N(i)?(v("properties.sublayer",i).satisfies((e=>this._isSupportedSublayer(e)),j),this._setSublayer(i)):i&&(this._deferredSublayerProperties=i),y(this,"isEffectivelyVisible",(()=>h(this,"parentSublayerExtension.isEffectivelyVisible",(()=>u(this,"isEffectivelyVisible")),{sync:!0})))}static create(e){if(!SublayerExtension.factory)throw new i("Cannot create sublayer extension: no sublayer extension factory has been registered.");return SublayerExtension.factory.create(e)}static _matchesRef(e,t,i){if(!e||!t?.$ref)return!1;let s=t.$ref;if("string"==typeof s){const e=M(s);s={id:isNaN(e)?s:e,title:s}}else"number"==typeof s&&(s={id:s});const r=_(e)?e.subtypeCode:e.id;return"both"===i?r===s.id&&e.title===s.title:"by-id"===i?r===s.id:"by-title"===i&&e.title===s.title}getFeatures(e,t){if(!this.hasFeatures)throw new i(T);return super.getFeatures(e,t)}getFullExtent(){return this.effectiveFullExtent}async addFeatures(e,t){if(v("features",e).isNotMissing(),!this.hasFeatures)throw new i(T);await super.addFeatures(e,t)}async updateFeatures(e,t){if(v("features",e).isNotMissing(),!this.hasFeatures)throw new i(T);await super.updateFeatures(e,t)}async deleteFeatures(e,t){if(v("features",e).isNotMissing(),!this.hasFeatures)throw new i(T);await super.deleteFeatures(e,t)}_resolveSublayer(){if(this._sublayer||!this._deferredSublayerProperties||!this.layerExtension?.layer||!this.layerExtension.layer.sublayers)return;const e=e=>t=>SublayerExtension._matchesRef(t,this._deferredSublayerProperties,e),t=this.layerExtension.layer.sublayers.flatten((e=>e.sublayers));let i=t.find(e("both"));if(i||(i=t.find(e("by-title"))),i||(i=t.find(e("by-id"))),i&&this._isSupportedSublayer(i)){this._setSublayer(i);const e={sublayer:{title:this.title,...this._deferredSublayerProperties}};this.assignProperties(e),this._originalRef=this._deferredSublayerProperties.$ref,this._deferredSublayerProperties=void 0}}_setLayerExtension(e){const t=this.layerExtension;this._layerExtension=e,this.layerExtension&&(y(this,"effectiveMinScale",(()=>h(this.layerExtension,"effectiveMinScale",(()=>u(this,"effectiveMinScale")),{sync:!0}))),y(this,"effectiveMaxScale",(()=>h(this.layerExtension,"effectiveMaxScale",(()=>u(this,"effectiveMaxScale")),{sync:!0}))),y(this,"isEffectivelyVisible",(()=>h(this.layerExtension,"isEffectivelyVisible",(()=>u(this,"isEffectivelyVisible")),{sync:!0})))),this._parentSublayerExtension||(t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=void 0)),e&&(this.featureSettings.formatSettings.parent||(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),this.taskSettings.parent||(this.taskSettings.parent=e.taskSettings))),this._resolveSublayer(),u(this,"layerExtension"),this.supportsSublayers&&this._sublayerExtensions.onLayerExtensionChanged()}_setParentSublayerExtension(e){if(this._parentSublayerExtension===e)return;const t=this._parentSublayerExtension;this._parentSublayerExtension=e,this.parentSublayerExtension&&(y(this,"effectiveMinScale",(()=>h(this.parentSublayerExtension,"effectiveMinScale",(()=>u(this,"effectiveMinScale")),{sync:!0}))),y(this,"effectiveMaxScale",(()=>h(this.parentSublayerExtension,"effectiveMaxScale",(()=>u(this,"effectiveMaxScale")),{sync:!0})))),t&&(this.featureSettings.formatSettings.parent===t.featureSettings.formatSettings&&(this.featureSettings.formatSettings.parent=this.layerExtension?this.layerExtension.featureSettings.formatSettings:void 0),this.taskSettings.parent===t.taskSettings&&(this.taskSettings.parent=this.layerExtension?this.layerExtension.taskSettings:void 0)),e&&((!this.featureSettings.formatSettings.parent||this.layerExtension&&this.featureSettings.formatSettings.parent===this.layerExtension.featureSettings.formatSettings)&&(this.featureSettings.formatSettings.parent=e.featureSettings.formatSettings),(!this.taskSettings.parent||this.layerExtension&&this.taskSettings.parent===this.layerExtension.taskSettings)&&(this.taskSettings.parent=e.taskSettings)),this._resolveSublayer(),u(this,"parentSublayerExtension")}async _switchSublayer(e){if(e===this.sublayer)return;v("newSublayer",e).isNotMissing().satisfies((e=>e.id===this.sublayer.id),"Sublayer ID must match existing sublayer.").satisfies((e=>this._isSupportedSublayer(e)),j),this.isInitialized&&await w(e);const t=new Map;if(this.sublayer?.sublayers)for(const e of this.sublayer.sublayers.toArray())t.set(e.id,this.sublayerExtensions.forSublayer(e));this.canToggleVisibility&&(e.visible=this.sublayer.visible),this.canChangeOpacity&&(e.opacity=this.sublayer.opacity),this._setSublayer(e);const i=[];if(this.supportsSublayers&&this.sublayer.sublayers){const e=this.sublayer.sublayers.filter((e=>t.has(e.id))).toArray();i.push(...e.map((async e=>{const i=t.get(e.id);await i._switchSublayer(e),this._sublayerExtensions._register(i)})))}this.isInitialized&&i.push(this._initializeChildren()),await Promise.all(i)}async _postInitialize(){await super._postInitialize(),this.supportsSublayers&&this._watchHandles.push(A(this,"sublayer.sublayers",(async e=>{const t=(e.added??[]).map((e=>this.sublayerExtensions.forSublayer(e)));await Promise.all(t.map(this._onSublayerAddedPostInitialize))})))}_onSublayerAddedPostInitialize=async e=>{try{await e.initialize()}catch(t){F.error({message:`Error occurred while initializing sublayer extension for sublayer '${e.title??e.sublayer.id??e.id}'.`,error:t})}};async _onDestroy(){this._watchHandles.forEach((e=>e?.remove())),await Promise.all(this.sublayerExtensions.toArray().map((e=>e.destroy()))),await super._onDestroy()}_getSerializableProperties(){return{...super._getSerializableProperties(),visibilityMode:{serializeModes:["initial"],default:this.canToggleVisibility?"independent":"inherited"},layerListSettings:"initial",sublayerExtensions:{serializeModes:["initial","project"],serialize:()=>this.sublayerExtensions.map((e=>e.toItemUri())).toArray(),deserialize:e=>{_assignSublayerExtensions(this.sublayerExtensions,e,(e=>this._createSublayerExtension(e)))}},sublayer:{serializeModes:["initial","project"],serialize:()=>{if(this.sublayer){if(!this._layerExtension)return this._serializeSublayer(this._sublayer);{const e=getSublayerType(this._sublayer);if(this._originalRef)return{$ref:this._originalRef,$sublayerType:e};if(this._sublayer.title||this._sublayer.id)return{...this._createSublayerRef(),$sublayerType:e}}}else if(this._deferredSublayerProperties)return V(this._deferredSublayerProperties)},deserialize:e=>{if(N(e)){if(e!==this.sublayer)throw new Error("Property 'sublayer' is read-only.")}else{if(this._sublayer)return this._applySublayerProperties(e,this._sublayer);this._deferredSublayerProperties&&(this._deferredSublayerProperties={...this._deferredSublayerProperties,...e})}}},requestHelper:{serialize:!1}}}_createSublayerExtension(e){throw new i(I)}_createSchema(){return new L(this)}_createLayerListSettings(e){return new $(e)}_capabilities(){return k}async _onInitialize(){if(await super._onInitialize(),this._sublayer||this._deferredSublayerProperties?.$ref||(this._setSublayer(await this._createSublayer(this._deferredSublayerProperties)),this._deferredSublayerProperties=void 0),this._resolveSublayer(),!this._sublayer){const e=this._deferredSublayerProperties?.$ref;if(!this._layerExtension)throw new i("Cannot resolve sublayer reference: missing parent layer extension.");throw new i(`No sublayer found matching reference "${"string"==typeof e?e:JSON.stringify(e)}".`)}this._initialDefinitionExpression="definitionExpression"in this.sublayer?this.sublayer.definitionExpression:void 0,this._initialRenderer=this.renderer?.clone(),this._initialVisibility=this.sublayer.visible,this.supportsSublayers&&this._sublayerExtensions.onParentInitialized()}*_initializableChildCollections(){yield*super._initializableChildCollections(),yield this.sublayerExtensions}_createSublayerRef(){return{$ref:{id:_(this._sublayer)?this._sublayer.subtypeCode:this._sublayer.id,title:this._sublayer.title}}}_createSublayerExtensionCollection(){return new SubSublayerExtensionCollection(this)}_watchSublayerProperties(){this._watchHandles.push(y(this,"effectiveMinScale",(()=>h(this.sublayer,"minScale",(()=>u(this,"effectiveMinScale")),{sync:!0}))),y(this,"effectiveMaxScale",(()=>h(this.sublayer,"maxScale",(()=>u(this,"effectiveMaxScale")),{sync:!0}))),y(this,"title",(()=>h(this.sublayer,"title",(()=>u(this,"title")),{sync:!0}))))}_setSublayer(e){if(this._sublayer=e,this._watchHandles.push(h(e,"visible",((e,t,i)=>{this._onSetSublayerVisible(e),this.layerExtension?.mapExtension?.emit("layer-visibility-change",i)}),{sync:!0})),"definitionExpression"in e&&this._watchHandles.push(h(e,"definitionExpression",((e,t,i)=>{this.layerExtension?.mapExtension?.emit("layer-definition-expression-change",i)}))),this.supportsSublayers){let t;this._watchHandles.push(h(e,"sublayers",(e=>{t&&t.remove(),t=o([e.on("after-add",this._onSublayersAfterAdd),e.on("after-remove",this._onSublayersAfterRemove)]),this._ensureAtMostOneChildSublayerVisible()}),{sync:!0}),t,b(e,"sublayers.[].visible",this._onSetSublayersSublayerVisible,{sync:!0}))}this._onSetSublayerVisible(this.sublayer.visible),"exclusive"===this.visibilityMode&&this._ensureAtMostOneChildSublayerVisible(),this._watchSublayerProperties(),u(this,"sublayer"),u(this,"title"),u(this,"effectiveMinScale"),u(this,"effectiveMaxScale"),u(this,"isEffectivelyVisible")}_onSetSublayerVisible=e=>{if("inherited"===this.visibilityMode&&this.supportsSublayers&&this.sublayerExtensions)for(const t of this.sublayerExtensions.toArray())t.sublayer&&t.canToggleVisibility&&(t.sublayer.visible=e);u(this,"isEffectivelyVisible")};_onSetSublayersSublayerVisible=(e,t,i)=>{e&&"exclusive"===this.visibilityMode&&this._ensureAChildSublayerVisible(i)};_onSublayersAfterAdd=e=>{1!==this._sublayers.length||e.item.visible||"exclusive"!==this.visibilityMode?e.item.visible&&"exclusive"===this.visibilityMode&&(e.item.visible=!1):e.item.visible=!0};_onSublayersAfterRemove=e=>{0!==this._sublayers.length&&"exclusive"===this.visibilityMode&&e.item.visible&&this._ensureAChildSublayerVisible(this._sublayers.getItemAt(0))};_ensureAChildSublayerVisible(e){for(const t of this._sublayers.toArray())t!==e&&(t.visible=!1)}_ensureAtMostOneChildSublayerVisible(){this.sublayer&&this._sublayers&&this._ensureAChildSublayerVisible(this._sublayers.find((e=>e.visible)))}}let L=class extends n{_sublayerExtension;_sublayerBindings=new Map;constructor(e){super(),this._sublayerExtension=e,this._bindSettingsToSublayerProperties()}get spatialReference(){if(this._sublayerExtension.layerExtension)return this._sublayerExtension.layerExtension.schema.spatialReference}set spatialReference(e){throw new i("Cannot set sublayer schema spatial reference.")}_getPropertyBindings(){return{}}_bindSettingsToSublayerProperties(){const e=this._getPropertyBindings();for(const t of C(e)){let i=e[t];"string"==typeof i&&(i={property:i}),this._sublayerBindings.set(t,i),i.hasOwnProperty("value")||y(this,t,(()=>h(this._sublayerExtension,`sublayer.${String(i.property)}`,(()=>u(this,t)),{sync:!i.hasOwnProperty("sync")||i.sync})))}}};L=e([l],L);export{L as SublayerSchema};export class SubSublayerExtensionCollection extends R{get _layerExtension(){return this._parent.layerExtension}constructor(e,t){super(e,t??"sublayer.sublayers")}add(e,s){if(v("sublayerX",e).isNotMissing(),!this._parent.supportsSublayers)throw new i(I);return e.sublayer&&this._parent.sublayer&&!this._parent.sublayer.sublayers&&(this._parent.sublayer.sublayers=new t),e.parentSublayerExtension&&e.parentSublayerExtension.sublayerExtensions.remove(e),super.add(e,s)}_onAdded(e){super._onAdded(e),e._setParentSublayerExtension(this._parent)}_onRemoved(e){super._onRemoved(e),e._setParentSublayerExtension(void 0)}}export function _assignSublayerExtensions(e,t,i){m(e,t,{onNew:(t,r)=>{try{e.add(s(t)?t:i(t),O(t)?void 0:r)}catch(e){F.warn({message:`Error occurred while adding sublayer extension for sublayer '${t.title??t.sublayer?.id??t.id}'.`,error:e})}},onMatch:(t,i,r,a)=>{try{s(i)||t.assignProperties(i),r===a||O(i)||e.reorder(t,a)}catch(e){F.warn({message:`Error occurred while assigning sublayer extension properties for sublayer '${t.title??t.sublayer?.id??t.id}'.`,error:e})}},equals:(e,t)=>{if(s(t)){if(e===t)return!0;const i=_(t.sublayer)?t.sublayer.subtypeCode:t.sublayer?.id;return SublayerExtension._matchesRef(e.sublayer,{$ref:{id:i,title:t.sublayer?.title}},"both")}return SublayerExtension._matchesRef(e.sublayer,t.sublayer,"both")||e.id===t.id}})}function N(e){return e&&"function"==typeof e.set}function O(e){return s(e)?!!e._deferredSublayerProperties?.$ref:!N(e.sublayer)&&!!e.sublayer?.$ref}
@@ -36,4 +36,6 @@ export declare class ArrayWrappedCollection<T> extends CollectionProxy<T> {
36
36
  constructor(properties: ArrayWrappedCollectionProperties);
37
37
  add(item: T, index?: number): this;
38
38
  private _onTargetResolved;
39
+ private _setProp;
40
+ private _getProp;
39
41
  }
@@ -1 +1 @@
1
- import t from"@arcgis/core/core/Collection";import{deprecatedGetPropertyPath as r,deprecatedSet as e}from"../../support/Observable.js";import{watch as s}from"../../support/observableUtils.js";import{CollectionProxy as o}from"../../utilities/CollectionProxy.js";export class ArrayWrappedCollection extends o{_parent;_targetProperty;_arrayProperty;get _target(){return this._targetProperty?r(this._parent,this._targetProperty):this._parent}constructor(r,o){if(super(),o)this._parent=r,this._targetProperty=r.hasOwnProperty("sublayer")?"sublayer":"layer",this._arrayProperty=o;else{const{parent:t,targetProperty:e,arrayProperty:s}=r;this._parent=t,this._targetProperty=e,this._arrayProperty=s}if(this._target)this._onTargetResolved(this._target);else{this._collection=new t;const r=s(this._parent,this._targetProperty,(()=>{const t=this._target;t&&(this.length&&e(t,this._arrayProperty,this.toArray()),this._onTargetResolved(t),r.remove())}),{sync:!0})}}add(t,s){const o=this._target;return o&&!r(o,this._arrayProperty)&&(e(o,this._arrayProperty,[]),this._collection=a(r(o,this._arrayProperty)??[])),super.add(t,s)}_onTargetResolved(t){this._collection=a(t[this._arrayProperty]),s(this._parent,this._targetProperty?`${this._targetProperty}.${this._arrayProperty}`:this._arrayProperty,(()=>{this._target&&(this._collection=a(r(this._target,this._arrayProperty)??[]))}),{sync:!0})}}function a(r){const e=Array.isArray(r)?r:[],s=new t;return Object.defineProperty(s,"_items",{get:()=>e}),Object.defineProperty(s,"length",{get:()=>e.length,set:t=>e.length=t}),s}
1
+ import t from"@arcgis/core/core/Collection";import{watch as r}from"../../support/observableUtils.js";import{CollectionProxy as e}from"../../utilities/CollectionProxy.js";export class ArrayWrappedCollection extends e{_parent;_targetProperty;_arrayProperty;get _target(){return this._targetProperty?this._getProp(this._parent,this._targetProperty):this._parent}constructor(e,o){if(super(),o)this._parent=e,this._targetProperty=e.hasOwnProperty("sublayer")?"sublayer":"layer",this._arrayProperty=o;else{const{parent:t,targetProperty:r,arrayProperty:o}=e;this._parent=t,this._targetProperty=r,this._arrayProperty=o}if(this._target)this._onTargetResolved(this._target);else{this._collection=new t;const e=r(this._parent,this._targetProperty,(()=>{const t=this._target;t&&(this.length&&this._setProp(t,this._arrayProperty,this.toArray()),this._onTargetResolved(t),e.remove())}),{sync:!0})}}add(t,r){const e=this._target;return e&&!this._getProp(e,this._arrayProperty)&&(this._setProp(e,this._arrayProperty,[]),this._collection=o(this._getProp(e,this._arrayProperty)??[])),super.add(t,r)}_onTargetResolved(t){this._collection=o(this._getProp(t,this._arrayProperty)??[]),r(this._parent,this._targetProperty?`${this._targetProperty}.${this._arrayProperty}`:this._arrayProperty,(()=>{this._target&&(this._collection=o(this._getProp(this._target,this._arrayProperty)??[]))}),{sync:!0})}_setProp(t,r,e){if(!r)return t;const o=r.split(".");let s=t;for(;s&&"object"==typeof s&&o.length>1;)s=s[o.shift()];return s&&"object"==typeof s&&(s[o[0]]=e),t}_getProp(t,r){if(!r)return;const e=r.split(".");let o=t;for(;o&&"object"==typeof o&&e.length;)o=o[e.shift()];return e.length?void 0:o}}function o(r){const e=Array.isArray(r)?r:[],o=new t;return Object.defineProperty(o,"_items",{get:()=>e}),Object.defineProperty(o,"length",{get:()=>e.length,set:t=>e.length=t}),o}
@@ -1 +1 @@
1
- import{__decorate as e}from"tslib";import{isSublayerExtension as t,isTableExtension as s}from"../../ItemType.js";import{FeatureSettings as i}from"../../data/FeatureSettings.js";import{TableExtension as n}from"../../data/_TableExtension.js";import{getPropertyByPath as r}from"../../support/Observable.js";import{serializable as o}from"../../support/Serializable.js";import{notifyChange as a,onWatch as _,watch as y}from"../../support/observableUtils.js";import{LayerExtension as p}from"../_LayerExtension.js";import{SublayerExtension as l}from"../_SublayerExtension.js";let h=class extends i{_layerExtension;get _bindings(){return this._propertyBindings||(this._propertyBindings=new Map),this._propertyBindings}_propertyBindings;constructor(e){super(),this._layerExtension=e,this._bindSettingToLayerProperty("popupTemplate");const i=this._getLayerLike();if(i)this._onLayerResolved(i);else{const i=e=>this._onLayerResolved(e);t(e)?y(e,"sublayer",i,{sync:!0,once:!0}):s(e)?y(e,"table",i,{sync:!0,once:!0}):y(e,"layer",i,{sync:!0,once:!0})}}_getSerializableProperties(){return{...super._getSerializableProperties(),popupTemplate:{serialize:!1}}}_hasSettingIncludingAncestor(e){const t=this._getLayerLike();return!(!this._bindings.has(e)||!t)||super._hasSettingIncludingAncestor(e)}_getSetting(e,t){const s=this._getLayerLike();return this._bindings.has(e)&&s?r(s,this._bindings.get(e)):super._getSetting(e,t)}_setSetting(e,t){const s=this._getLayerLike();this._bindings.has(e)&&s?s.set({[this._bindings.get(e)]:t}):super._setSetting(e,t)}_bindSettingToLayerProperty(e,t){const s=this._getLayerLikeType();if(!s)return;const i=t||e;this._bindings.set(e,i),_(this,e,(()=>y(this._layerExtension,`${s}.${i}`,(()=>a(this,e)),{sync:!0})))}_onLayerResolved(e){for(const t of this._bindings.keys())this.isModified(t)&&(e.set({[t]:this.get(t)}),this.reset(t))}_getLayerLike(){return this._layerExtension instanceof p?this._layerExtension.layer:this._layerExtension instanceof n?this._layerExtension.table:this._layerExtension instanceof l?this._layerExtension.sublayer:void 0}_getLayerLikeType(){return this._layerExtension instanceof p?"layer":this._layerExtension instanceof n?"table":this._layerExtension instanceof l?"sublayer":void 0}};h=e([o],h);export{h as PopupTemplateFeatureSettings};
1
+ import{__decorate as e}from"tslib";import{isSublayerExtension as t,isTableExtension as i}from"../../ItemType.js";import{FeatureSettings as s}from"../../data/FeatureSettings.js";import{TableExtension as n}from"../../data/_TableExtension.js";import{serializable as r}from"../../support/Serializable.js";import{notifyChange as o,onWatch as a,watch as y}from"../../support/observableUtils.js";import{LayerExtension as _}from"../_LayerExtension.js";import{SublayerExtension as l}from"../_SublayerExtension.js";let p=class extends s{_layerExtension;get _bindings(){return this._propertyBindings||(this._propertyBindings=new Map),this._propertyBindings}_propertyBindings;constructor(e){super(),this._layerExtension=e,this._bindSettingToLayerProperty("popupTemplate");const s=this._getLayerLike();if(s)this._onLayerResolved(s);else{const s=e=>this._onLayerResolved(e);t(e)?y(e,"sublayer",s,{sync:!0,once:!0}):i(e)?y(e,"table",s,{sync:!0,once:!0}):y(e,"layer",s,{sync:!0,once:!0})}}_getSerializableProperties(){return{...super._getSerializableProperties(),popupTemplate:{serialize:!1}}}_hasSettingIncludingAncestor(e){const t=this._getLayerLike();return!(!this._bindings.has(e)||!t)||super._hasSettingIncludingAncestor(e)}_getSetting(e,t){const i=this._getLayerLike();if(this._bindings.has(e)&&i){const t=this._bindings.get(e).split(".");let s=i;for(;s&&"object"==typeof s&&t.length;)s=s[t.shift()];return s}return super._getSetting(e,t)}_setSetting(e,t){const i=this._getLayerLike();this._bindings.has(e)&&i?i.set({[this._bindings.get(e)]:t}):super._setSetting(e,t)}_bindSettingToLayerProperty(e,t){const i=this._getLayerLikeType();if(!i)return;const s=t||e;this._bindings.set(e,s),a(this,e,(()=>y(this._layerExtension,`${i}.${s}`,(()=>o(this,e)),{sync:!0})))}_onLayerResolved(e){for(const t of this._bindings.keys())this.isModified(t)&&(e.set({[t]:this[t]}),this.reset(t))}_getLayerLike(){return this._layerExtension instanceof _?this._layerExtension.layer:this._layerExtension instanceof n?this._layerExtension.table:this._layerExtension instanceof l?this._layerExtension.sublayer:void 0}_getLayerLikeType(){return this._layerExtension instanceof _?"layer":this._layerExtension instanceof n?"table":this._layerExtension instanceof l?"sublayer":void 0}};p=e([r],p);export{p as PopupTemplateFeatureSettings};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vertigis/arcgis-extensions",
3
3
  "license": "SEE LICENSE IN LICENSE",
4
- "version": "51.14.1",
4
+ "version": "52.0.0",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://dev.azure.com/vertigis/Studio/_git/arcgis-extensions-ts"
@@ -1,6 +1,4 @@
1
1
  import Evented from "@arcgis/core/core/Evented.js";
2
- import type { WatchCallback } from "../utilities/watch.js";
3
- import { type IDeprecatedObservable } from "./Observable.js";
4
2
  /**
5
3
  * A class that can take in initial property values in its constructor.
6
4
  */
@@ -8,7 +6,7 @@ export type SerializableClass<P, T extends SerializableBase<P>> = new (propertie
8
6
  /**
9
7
  * An object that can be serialized to/from plain JSON.
10
8
  */
11
- export interface Serializable<TProperties> extends IDeprecatedObservable {
9
+ export interface Serializable<TProperties> {
12
10
  /**
13
11
  * Returns a serializable representation of the item.
14
12
  *
@@ -62,7 +60,7 @@ export interface Serializable<TProperties> extends IDeprecatedObservable {
62
60
  * Default implementation of a {@link Serializable} that supports observability
63
61
  * and serialization.
64
62
  */
65
- export declare abstract class SerializableBase<TProperties> extends Evented implements Serializable<TProperties>, IDeprecatedObservable {
63
+ export declare abstract class SerializableBase<TProperties> extends Evented implements Serializable<TProperties> {
66
64
  private readonly _assignPropertiesPromises;
67
65
  constructor(_properties?: TProperties);
68
66
  /**
@@ -96,41 +94,6 @@ export declare abstract class SerializableBase<TProperties> extends Evented impl
96
94
  * @inheritDoc
97
95
  */
98
96
  getDefault<K extends keyof TProperties>(key: K): TProperties[K];
99
- /**
100
- * @deprecated
101
- * @inheritdoc
102
- */
103
- set<T>(propertyPath: string, value: T): this;
104
- /**
105
- * @deprecated
106
- * @inheritdoc
107
- */
108
- set(properties: HashMap<any>): this;
109
- /**
110
- * @deprecated
111
- * @inheritdoc
112
- */
113
- get<T>(propertyPath: string): T;
114
- /**
115
- * @deprecated
116
- * @inheritdoc
117
- */
118
- get(propertyPath: string): any;
119
- /**
120
- * @deprecated
121
- * @inheritdoc
122
- */
123
- watch(path: string | string[], callback: WatchCallback, sync?: boolean): IHandle;
124
- /**
125
- * @deprecated
126
- * @inheritdoc
127
- */
128
- notifyChange(propertyKey: keyof this): void;
129
- /**
130
- * @deprecated
131
- * @inheritdoc
132
- */
133
- _watchProperty(propertyKey: keyof this, subpath: string, callback: WatchCallback, sync: boolean): IHandle;
134
97
  /**
135
98
  * The property keys and their metadata that are used to implement
136
99
  * serializing and deserializing the class instance.
@@ -1 +1 @@
1
- import e from"@arcgis/core/core/Evented.js";import t from"safe-stable-stringify";import{filter as r,isPlainObject as i,map as s,objectKeys as o}from"../utilities/object.js";import{deprecatedGetPropertyPath as n,deprecatedNotifyChange as a,deprecatedSet as l,deprecatedWatch as f,deprecatedWatchProperty as u}from"./Observable.js";const c=new WeakSet;export class SerializableBase extends e{_assignPropertiesPromises=[];constructor(e){if(super(),!c.has(this.constructor))throw new Error(`Class "${this.constructor.name}" must be marked as "@serializable" since it extends ${SerializableBase.name} (make sure it is the _last_ decorator on the class).`)}toJSON(e="all"){return filterJSONProperties(this._getSerializableProperties(),this,e)}assignProperties(e){const t=p(this._getSerializableProperties(),this,e,!0);this._assignPropertiesPromises.push(t),(async()=>{try{await t}finally{this._assignPropertiesPromises.splice(this._assignPropertiesPromises.indexOf(t),1)}})()}async assignPropertiesAsync(e){await this.finishAssignProperties();const t=assignPropertiesAsync(this._getSerializableProperties(),this,e);this._assignPropertiesPromises.push(t);try{await t}finally{this._assignPropertiesPromises.splice(this._assignPropertiesPromises.indexOf(t),1)}}async finishAssignProperties(){await Promise.all(this._assignPropertiesPromises)}getSerializableProperties(e="all"){return getSerializableProperties(this._getSerializableProperties(),e)}getDefaults(){return getDefaults(this._getSerializableProperties())}getDefault(e){return this.getDefaults()[e]}set(e,t){return l(this,e,t)}get(e){return n(this,e)}watch(e,t,r){return f(this,e,t,r)}notifyChange(e){a(this,e)}_watchProperty(e,t,r,i){return u(this,e,t,r,i)}_getSerializableProperties(){return{}}_toPropertyDef(e){return toPropertyDef(e)}}export function serializable(e){if(!isSerializable(e.prototype))throw new Error(`Class "${e.name}" is marked as @serializable but does not implement 'Serializable'.`);class t extends e{constructor(e,...r){super(e,...r),this.constructor===t&&this.assignProperties({...this.getDefaults(),...e})}}return c.add(t),t}export function shouldExcludeDefaults(e){return"initial"===e||"project"===e}export function filterJSONProperties(e,r,i){let s=i;"initial"!==s&&"initial-with-defaults"!==s&&"preferences"!==s&&"project"!==s&&(s="all");const n={},a=getSerializableProperties(e,s);for(const e of o(a)){const i=a[e],o=h(e,i,r,s);if(shouldExcludeDefaults(s)){let r=!1;r=i.hasOwnProperty("default")?t(o)===t(i.default):i.isDefault?i.isDefault(o,s):isDefault(o),r||(n[e]=o)}else n[e]=o}if(!shouldExcludeDefaults(s)&&"preferences"!==s||!isDefault(n))return n}export function assignProperties(e,t,r){r&&p(e,t,r,!0)}export function assignPropertiesAsync(e,t,r){return p(e,t,r)}function p(e,t,r,s=!1){if(!r)return Promise.resolve();const o=[];return Object.keys(e).forEach((n=>{const a=e[n];if(r.hasOwnProperty(n)&&(Array.isArray(e[n])||!1!==a.deserialize))try{const e=r[n]??void 0;if(a?.deserialize){const t=a.deserialize(e);t&&o.push(t)}else"object"!=typeof t[n]||!t[n]||!i(e)&&void 0!==e||s||"function"!=typeof t[n].assignPropertiesAsync?"object"==typeof t[n]&&t[n]&&(i(e)||void 0===e)&&"function"==typeof t[n].assignProperties?t[n].assignProperties(e):t[n]=e:o.push(t[n].assignPropertiesAsync(e))}catch(e){if(s)throw e;o.push(Promise.reject(e))}})),Promise.all(o).then()}export function getDefaults(e){const t={},r=o(e).filter((t=>"object"==typeof e[t]));for(const i of r){const r=e[i];r.hasOwnProperty("default")&&(t[i]=r.default)}return t}export function getDefault(e,t){return getDefaults(e)[t]}export function isDefault(e){if(null==e)return!0;if(e.constructor===Object){if(!Object.keys(e).length)return!0}return!(!Array.isArray(e)||e.length)}function h(e,t,r,i){const s=t?.serialize?t.serialize(i):r[e];if(s&&"function"==typeof s.toItemUri)return s.toItemUri();if(s&&"function"==typeof s.toJSON)return s.toJSON(i);if(Array.isArray(s))return s.map(((e,t)=>h(t,void 0,s,i)));if(s&&"function"==typeof s.toArray){const e=s.toArray();return e.map(((t,r)=>h(r,void 0,e,i)))}if(s&&"object"==typeof s){const e={};for(const t of Object.keys(s))e[t]=h(t,void 0,s,i);return e}return t?.serialize?s:r[e]}export function toPropertyDef(e){const t={serializeModes:[]};return"string"==typeof e?{...t,serializeModes:[e]}:Array.isArray(e)?{...t,serializeModes:e}:{...t,...e}}export function isSerializable(e){return["assignProperties","getDefaults","getSerializableProperties","toJSON"].every((t=>"function"==typeof e[t]))}export function getSerializableProperties(e,t="all"){const i=s(e,(e=>toPropertyDef(e))),o=r(i,(e=>function(e,t){if(!1===t.serialize)return!1;const r="initial-with-defaults"===e?"initial":e;return"all"===e||t.serializeModes?.includes(r)}(t,e)));return o}
1
+ import e from"@arcgis/core/core/Evented.js";import t from"safe-stable-stringify";import{filter as r,isPlainObject as i,map as s,objectKeys as o}from"../utilities/object.js";const n=new WeakSet;export class SerializableBase extends e{_assignPropertiesPromises=[];constructor(e){if(super(),!n.has(this.constructor))throw new Error(`Class "${this.constructor.name}" must be marked as "@serializable" since it extends ${SerializableBase.name} (make sure it is the _last_ decorator on the class).`)}toJSON(e="all"){return filterJSONProperties(this._getSerializableProperties(),this,e)}assignProperties(e){const t=a(this._getSerializableProperties(),this,e,!0);this._assignPropertiesPromises.push(t),(async()=>{try{await t}finally{this._assignPropertiesPromises.splice(this._assignPropertiesPromises.indexOf(t),1)}})()}async assignPropertiesAsync(e){await this.finishAssignProperties();const t=assignPropertiesAsync(this._getSerializableProperties(),this,e);this._assignPropertiesPromises.push(t);try{await t}finally{this._assignPropertiesPromises.splice(this._assignPropertiesPromises.indexOf(t),1)}}async finishAssignProperties(){await Promise.all(this._assignPropertiesPromises)}getSerializableProperties(e="all"){return getSerializableProperties(this._getSerializableProperties(),e)}getDefaults(){return getDefaults(this._getSerializableProperties())}getDefault(e){return this.getDefaults()[e]}_getSerializableProperties(){return{}}_toPropertyDef(e){return toPropertyDef(e)}}export function serializable(e){if(!isSerializable(e.prototype))throw new Error(`Class "${e.name}" is marked as @serializable but does not implement 'Serializable'.`);class t extends e{constructor(e,...r){super(e,...r),this.constructor===t&&this.assignProperties({...this.getDefaults(),...e})}}return n.add(t),t}export function shouldExcludeDefaults(e){return"initial"===e||"project"===e}export function filterJSONProperties(e,r,i){let s=i;"initial"!==s&&"initial-with-defaults"!==s&&"preferences"!==s&&"project"!==s&&(s="all");const n={},a=getSerializableProperties(e,s);for(const e of o(a)){const i=a[e],o=l(e,i,r,s);if(shouldExcludeDefaults(s)){let r=!1;r=i.hasOwnProperty("default")?t(o)===t(i.default):i.isDefault?i.isDefault(o,s):isDefault(o),r||(n[e]=o)}else n[e]=o}if(!shouldExcludeDefaults(s)&&"preferences"!==s||!isDefault(n))return n}export function assignProperties(e,t,r){r&&a(e,t,r,!0)}export function assignPropertiesAsync(e,t,r){return a(e,t,r)}function a(e,t,r,s=!1){if(!r)return Promise.resolve();const o=[];return Object.keys(e).forEach((n=>{const a=e[n];if(r.hasOwnProperty(n)&&(Array.isArray(e[n])||!1!==a.deserialize))try{const e=r[n]??void 0;if(a?.deserialize){const t=a.deserialize(e);t&&o.push(t)}else"object"!=typeof t[n]||!t[n]||!i(e)&&void 0!==e||s||"function"!=typeof t[n].assignPropertiesAsync?"object"==typeof t[n]&&t[n]&&(i(e)||void 0===e)&&"function"==typeof t[n].assignProperties?t[n].assignProperties(e):t[n]=e:o.push(t[n].assignPropertiesAsync(e))}catch(e){if(s)throw e;o.push(Promise.reject(e))}})),Promise.all(o).then()}export function getDefaults(e){const t={},r=o(e).filter((t=>"object"==typeof e[t]));for(const i of r){const r=e[i];r.hasOwnProperty("default")&&(t[i]=r.default)}return t}export function getDefault(e,t){return getDefaults(e)[t]}export function isDefault(e){if(null==e)return!0;if(e.constructor===Object){if(!Object.keys(e).length)return!0}return!(!Array.isArray(e)||e.length)}function l(e,t,r,i){const s=t?.serialize?t.serialize(i):r[e];if(s&&"function"==typeof s.toItemUri)return s.toItemUri();if(s&&"function"==typeof s.toJSON)return s.toJSON(i);if(Array.isArray(s))return s.map(((e,t)=>l(t,void 0,s,i)));if(s&&"function"==typeof s.toArray){const e=s.toArray();return e.map(((t,r)=>l(r,void 0,e,i)))}if(s&&"object"==typeof s){const e={};for(const t of Object.keys(s))e[t]=l(t,void 0,s,i);return e}return t?.serialize?s:r[e]}export function toPropertyDef(e){const t={serializeModes:[]};return"string"==typeof e?{...t,serializeModes:[e]}:Array.isArray(e)?{...t,serializeModes:e}:{...t,...e}}export function isSerializable(e){return["assignProperties","getDefaults","getSerializableProperties","toJSON"].every((t=>"function"==typeof e[t]))}export function getSerializableProperties(e,t="all"){const i=s(e,(e=>toPropertyDef(e))),o=r(i,(e=>function(e,t){if(!1===t.serialize)return!1;const r="initial-with-defaults"===e?"initial":e;return"all"===e||t.serializeModes?.includes(r)}(t,e)));return o}
package/support/esri.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import type Accessor from "@arcgis/core/core/Accessor";
2
2
  import Collection from "@arcgis/core/core/Collection";
3
- import Evented from "@arcgis/core/core/Evented";
4
3
  import type Layer from "@arcgis/core/layers/Layer";
5
4
  import type BarChartMediaInfo from "@arcgis/core/popup/content/BarChartMediaInfo";
6
5
  import type ColumnChartMediaInfo from "@arcgis/core/popup/content/ColumnChartMediaInfo";
@@ -10,11 +9,7 @@ import type PieChartMediaInfo from "@arcgis/core/popup/content/PieChartMediaInfo
10
9
  * @deprecated Use "@arcgis/core/core/Collection" instead.
11
10
  */
12
11
  declare const DeprecatedCollection: typeof Collection;
13
- /**
14
- * @deprecated Use "@arcgis/core/core/Evented" instead.
15
- */
16
- declare const DeprecatedEvented: typeof Evented;
17
- export { DeprecatedCollection as Collection, DeprecatedEvented as Evented };
12
+ export { DeprecatedCollection as Collection };
18
13
  export type BuildingComponentSublayerCapabilities = __esri.BuildingComponentSublayerCapabilities;
19
14
  export type BuildingComponentSublayerCapabilitiesData = __esri.BuildingComponentSublayerCapabilitiesData;
20
15
  export type CIMLineSymbol = __esri.CIMLineSymbol;
package/support/esri.js CHANGED
@@ -1 +1 @@
1
- import e from"@arcgis/core/core/Collection";import a from"@arcgis/core/core/Evented";const n=e,E=a;export{n as Collection,E as Evented};export var WellKnownBasemap;!function(e){e.SATELLITE="satellite",e.HYBRID="hybrid",e.HYBRID_VECTOR="hybrid-vector",e.STREETS="streets",e.STREETS_VECTOR="streets-vector",e.TOPO="topo",e.TOPO_VECTOR="topo-vector",e.STREETS_NAVIGATION_VECTOR="streets-navigation-vector",e.STREETS_NIGHT_VECTOR="streets-night-vector",e.TERRAIN="terrain",e.TERRAIN_VECTOR="terrain-vector",e.DARK_GRAY="dark-gray",e.DARK_GRAY_VECTOR="dark-gray-vector",e.GRAY="gray",e.GRAY_VECTOR="gray-vector",e.OCEANS="oceans",e.OCEANS_VECTOR="oceans-vector",e.OPEN_STREET_MAP="osm",e.OPEN_STREET_MAP_VECTOR="osm-vector",e.STREETS_RELIEF_VECTOR="streets-relief-vector"}(WellKnownBasemap||(WellKnownBasemap={}));export const wellKnownBasemapTitles={[WellKnownBasemap.SATELLITE]:"Imagery",[WellKnownBasemap.HYBRID]:"Imagery with Labels",[WellKnownBasemap.HYBRID_VECTOR]:"Imagery with Labels",[WellKnownBasemap.STREETS]:"Streets",[WellKnownBasemap.STREETS_VECTOR]:"Streets",[WellKnownBasemap.TOPO]:"Topographic",[WellKnownBasemap.TOPO_VECTOR]:"Topographic",[WellKnownBasemap.STREETS_NAVIGATION_VECTOR]:"World Navigation Map",[WellKnownBasemap.STREETS_NIGHT_VECTOR]:"World Street Map (Night)",[WellKnownBasemap.TERRAIN]:"Terrain with Labels",[WellKnownBasemap.TERRAIN_VECTOR]:"Terrain with Labels",[WellKnownBasemap.DARK_GRAY]:"Dark Gray Canvas",[WellKnownBasemap.DARK_GRAY_VECTOR]:"Dark Gray Canvas",[WellKnownBasemap.GRAY]:"Light Gray Canvas",[WellKnownBasemap.GRAY_VECTOR]:"Light Gray Canvas",[WellKnownBasemap.OCEANS]:"Oceans",[WellKnownBasemap.OCEANS_VECTOR]:"Oceans",[WellKnownBasemap.OPEN_STREET_MAP]:"OpenStreetMap",[WellKnownBasemap.OPEN_STREET_MAP_VECTOR]:"OpenStreetMap",[WellKnownBasemap.STREETS_RELIEF_VECTOR]:"World Street Map (with Relief)"};
1
+ import e from"@arcgis/core/core/Collection";const a=e;export{a as Collection};export var WellKnownBasemap;!function(e){e.SATELLITE="satellite",e.HYBRID="hybrid",e.HYBRID_VECTOR="hybrid-vector",e.STREETS="streets",e.STREETS_VECTOR="streets-vector",e.TOPO="topo",e.TOPO_VECTOR="topo-vector",e.STREETS_NAVIGATION_VECTOR="streets-navigation-vector",e.STREETS_NIGHT_VECTOR="streets-night-vector",e.TERRAIN="terrain",e.TERRAIN_VECTOR="terrain-vector",e.DARK_GRAY="dark-gray",e.DARK_GRAY_VECTOR="dark-gray-vector",e.GRAY="gray",e.GRAY_VECTOR="gray-vector",e.OCEANS="oceans",e.OCEANS_VECTOR="oceans-vector",e.OPEN_STREET_MAP="osm",e.OPEN_STREET_MAP_VECTOR="osm-vector",e.STREETS_RELIEF_VECTOR="streets-relief-vector"}(WellKnownBasemap||(WellKnownBasemap={}));export const wellKnownBasemapTitles={[WellKnownBasemap.SATELLITE]:"Imagery",[WellKnownBasemap.HYBRID]:"Imagery with Labels",[WellKnownBasemap.HYBRID_VECTOR]:"Imagery with Labels",[WellKnownBasemap.STREETS]:"Streets",[WellKnownBasemap.STREETS_VECTOR]:"Streets",[WellKnownBasemap.TOPO]:"Topographic",[WellKnownBasemap.TOPO_VECTOR]:"Topographic",[WellKnownBasemap.STREETS_NAVIGATION_VECTOR]:"World Navigation Map",[WellKnownBasemap.STREETS_NIGHT_VECTOR]:"World Street Map (Night)",[WellKnownBasemap.TERRAIN]:"Terrain with Labels",[WellKnownBasemap.TERRAIN_VECTOR]:"Terrain with Labels",[WellKnownBasemap.DARK_GRAY]:"Dark Gray Canvas",[WellKnownBasemap.DARK_GRAY_VECTOR]:"Dark Gray Canvas",[WellKnownBasemap.GRAY]:"Light Gray Canvas",[WellKnownBasemap.GRAY_VECTOR]:"Light Gray Canvas",[WellKnownBasemap.OCEANS]:"Oceans",[WellKnownBasemap.OCEANS_VECTOR]:"Oceans",[WellKnownBasemap.OPEN_STREET_MAP]:"OpenStreetMap",[WellKnownBasemap.OPEN_STREET_MAP_VECTOR]:"OpenStreetMap",[WellKnownBasemap.STREETS_RELIEF_VECTOR]:"World Street Map (with Relief)"};
@@ -225,7 +225,6 @@ export declare class ObservableMixin {
225
225
  private readonly __isObservable;
226
226
  private readonly _subscribedPaths;
227
227
  private readonly _onWatchPaths;
228
- private readonly _esriProps;
229
228
  private _onWatch;
230
229
  private _notifyChange;
231
230
  private _watch;
@@ -1 +1 @@
1
- import t from"@arcgis/core/core/Accessor";import e from"@arcgis/core/core/Collection.js";import{Property as r}from"@arcgis/core/core/accessorSupport/Property";import{trackAccess as n}from"@arcgis/core/core/accessorSupport/tracking";import{watch as o}from"@arcgis/core/core/reactiveUtils";import{}from"../utilities/ObservableMap.js";function s(t){return null!=t&&"object"==typeof t&&"__isObservable"in t&&t.__isObservable}function i(t){if(s(t))return t}function c(e){return e instanceof t}function a(t){return t instanceof e||null!=t&&"esri.core.Collection"===t.declaredClass}function l(t){return s(t)&&"ObservableMap"===t[Symbol.toStringTag]}function u(t){return a(t)||l(t)||function(t){return s(t)&&"ObservableSet"===t[Symbol.toStringTag]}(t)}class h{}export function observable(t){return class extends(t??h){__isObservable=!0;_subscribedPaths=new Map;_onWatchPaths=new Map;_esriProps=new Map;constructor(...t){return super(...t),function(t){return new Proxy(t,{get:(t,e,r)=>{if("_esriProps"===e)return Reflect.get(t,e,r);const o=Reflect.get(t,e,r);let s=t._esriProps.get(e);return null==s&&(s=new w(e.toString(),o),t._esriProps.set(e,s)),n(s),o},set:(t,e,r,n)=>{if(Reflect.set(t,e,r,n),"_esriProps"===e)return!0;const o=t._esriProps.get(e);if(o){if(!o.invalidated&&r===o.currentValue)return!0;o.invalidate(),o.currentValue=r,o.commit()}return!0}})}(this)}_onWatch(t,e){let r,n;"string"==typeof t?(r=t,n=e):n=t;let o=this._onWatchPaths.get(r);if(null==o&&(o=[],this._onWatchPaths.set(r,o)),o.push(n),null!=r&&this._subscribedPaths.has(r)){this._subscribedPaths.get(r).onWatchHandles.set(n,n())}else if(null==r&&this._subscribedPaths.size>0)for(const[t,e]of this._subscribedPaths){const r=n(t);e.onWatchHandles.set(n,r)}const s=new WeakRef(this);return{remove:()=>{const t=s.deref();if(null==t)return;if(!t._onWatchPaths.has(r))return;const e=t._onWatchPaths.get(r),o=e.indexOf(n);if(-1!==o&&e.splice(o,1),null!=r&&t._subscribedPaths.has(r)){const e=t._subscribedPaths.get(r),o=e.onWatchHandles.get(n);null!=o&&(o.remove(),e.onWatchHandles.delete(n))}else if(null==r&&t._subscribedPaths.size>0)for(const[,e]of t._subscribedPaths){const t=e.onWatchHandles.get(n);null!=t&&(t.remove(),e.onWatchHandles.delete(n))}0===e.length&&t._onWatchPaths.delete(r)}}}_notifyChange(t){let e;e=null==t?this._subscribedPaths.keys():[t];for(const t of e){if(this._esriProps.has(t)){const e=this._esriProps.get(t),r=this[t];r!==e.currentValue&&(e.invalidate(),e.currentValue=r,e.commit())}const e=this._subscribedPaths.get(t);if(null==e)continue;const r=e.currentValue,n=this[t];if(Object.is(n,r))continue;e.currentValue=n;const o=[...e.callbacks];for(const t of o)t(n,r,this)}}_watch(t,e,r){const n=[];if(t.includes(".")){if(t.includes("[]"))return this._recurseCollectionWatch(t,e,r);const o=t.split("."),s=o.shift(),i=new AbortController,{signal:c}=i,a=new WeakRef(this);let l;const u=v(e,t),h=()=>{if(c.aborted)return void(l=void 0);const t=a.deref();if(null==t){for(const t of n)t.remove();return n.length=0,void(l=void 0)}let e=t[s],r=t;for(let t=0;t<o.length;t++)if(r=e,e=e?.[o[t]],null==e){t<o.length-1&&(r=void 0);break}if(e!==l){const t=l;l=e,u(e,t,r)}},f=r?.sync?v(h,t):_(h,t,c);let b,p,w;if([l,w,b,p]=this._recurseWatch(t,f),n.push(g(b,p)),r?.initial){(r?.sync?v(e,t):_(e,t,c))(l,l,w)}return d(n,i)}return this._watchSingle(t,e,r)}_recurseWatch(t,e){const r=t.split("."),n=r.shift(),o=[];let a,l;if(r.length>0){const t=this[n];if(s(t)){const[n,s,c,u]=i(t)._recurseWatch(r.join("."),e);o.push(g(c,u)),a=n,l=s}else if(c(t)){const[n,s,i]=f(t,r,e,{sync:!0});o.push(i),a=n,l=s}}const u=this._watchSingle(n,((t,n)=>{if(t!==n){if(r.length>0){if(s(n)||c(n)){for(const t of o)t.remove();o.length=0}if(s(t)){const[,,n,s]=i(t)._recurseWatch(r.join("."),e);o.push(g(n,s))}else if(c(t)){const[,,n]=f(t,r,e,{sync:!0});o.push(n)}}e()}}),{sync:!0});return[r.length>0?a:this._subscribedPaths.get(n)?.currentValue,r.length>0?l:this,o,u]}_recurseCollectionWatch(t,e,r){const n=t.split("."),o=n.shift();if("[]"===n[0])return this._collectionWatch(o,n,e,r);{const t=[],a=this._watchSingle(o,(o=>{for(const e of t)e.remove();t.length=0,s(o)?t.push(i(o)._recurseCollectionWatch(n.join("."),e,r)):c(o)&&t.push(f(o,n,e,r)[2])})),l=this[o];return s(l)?t.push(i(l)._recurseCollectionWatch(n.join("."),e,r)):c(l)&&t.push(f(l,n,e,r)[2]),g(t,a)}}_collectionWatch(t,e,r,n){const o=[];u(this[t])&&o.push(b(this[t],e.join("."),r,n));const s=this._watchSingle(t,((t,s)=>{if(u(s)){for(const t of o)t.remove();o.length=0}u(t)&&o.push(b(t,e.join("."),r,n))}),{sync:!0});return g(o,s)}_watchSingle(t,e,r){let n=this._subscribedPaths.get(t)?.callbacks;if(null==n){let e=Object.getOwnPropertyDescriptor(this,t),r=this;for(;null==e&&(r=Object.getPrototypeOf(r),null!=r);)e=Object.getOwnPropertyDescriptor(r,t);if(null==e)return console.warn(`[observableUtils]: The property ${t.toString()} you are trying to watch does not exist on the object and will not be watched. This is likely a coding error. Please check the property name and ensure it exists on the object. In the future this will throw an exception.`),{remove:()=>{}};if(!1===e.configurable)return console.warn(`[observableUtils]: Property "${t.toString()}" is not configurable so it cannot be watched. In the future this will throw an exception.`),{remove:()=>{}};n=[];const o=new Map;if(this._subscribedPaths.set(t,{callbacks:n,currentValue:this[t],onWatchHandles:o}),!0!==e.writable&&null==e.set||(this._subscribedPaths.get(t).originalDescriptor=e,null!=e.value&&(e.value=void 0),this._createWatchDescriptor(t,e)),this._onWatchPaths.has(t))for(const e of this._onWatchPaths.get(t))o.set(e,e());if(this._onWatchPaths.has(void 0))for(const e of this._onWatchPaths.get(void 0))o.set(e,e(t))}const o=new AbortController,s=v(e,t.toString()),{currentValue:i}=this._subscribedPaths.get(t);let c=i;const a=(t,e,r)=>{const n=c;c=t,s(t,n,r)},l=r?.sync?v(a,t.toString()):_(a,t.toString(),o.signal);return n.push(l),r?.initial&&l(i,i,this),this._createSingleWatchRemoveHandle(t,l,o)}_createWatchDescriptor(t,e){const r={configurable:!0,enumerable:e.enumerable};null==e.get?(r.get=()=>this._subscribedPaths.get(t).currentValue,r.set=e=>{const r=this._subscribedPaths.get(t),n=r.currentValue;if(Object.is(n,e))return;r.currentValue=e;const o=[...r.callbacks];for(const t of o)t(e,n,this)}):(r.get=e.get,r.set=r=>{const n=this._subscribedPaths.get(t),o=n.currentValue;if(Object.is(o,r))return void e.set.call(this,r);n.currentValue=r,e.set.call(this,r);const s=[...n.callbacks];for(const t of s)t(r,o,this)}),Object.defineProperty(this,t,r)}_createSingleWatchRemoveHandle(t,e,r){const n=new WeakRef(this);return{remove:()=>{r.abort();const o=n.deref();if(null==o)return;if(!o._subscribedPaths.has(t))return;const{callbacks:s}=o._subscribedPaths.get(t),i=s.indexOf(e);if(i>=0&&s.splice(i,1),0===s.length){const e=o._subscribedPaths.get(t);o._subscribedPaths.delete(t);for(const t of e.onWatchHandles.values())t.remove();null!=e.originalDescriptor&&(null==e.originalDescriptor.get&&(e.originalDescriptor.value=e.currentValue),Object.defineProperty(o,t,e.originalDescriptor))}}}}}}export function watch(t,e,r,n){if(!s(t)&&c(t))return f(t,e.split("."),r,n)[2];const o=i(t);if(null==o)throw new Error("Object is not observable");if(n?.once){let t;const s=new AbortController,{signal:i}=s,c=n?.sync?v(r,e):_(r,e,i);let a=!1;const l=(e,r,n)=>{i.aborted||(a=!0,t?.remove(),t=void 0,c(e,r,n))};t=o._watch(e,l,{...n,sync:!0});const u=d([t],s);return a&&u.remove(),u}return o._watch(e,r,n)}export function watchEach(t,e,r,n){if(u(t)&&e.startsWith("[]."))return b(t,e,r,n);if(!s(t)&&c(t))return f(t,e.split("."),r,n)[2];const o=i(t);if(null==o)throw new Error("Object is not observable");return o._watch(e,r,n)}export async function once(t,e,r){const{signal:n}=r??{};return new Promise(((r,o)=>{if(n?.aborted)return void o();const s=()=>{i.remove(),o()},i=watch(t,e,(()=>{n?.removeEventListener("abort",s),r()}),{once:!0});n?.addEventListener("abort",s)}))}export function notifyChange(t,e){const r=i(t);if(null==r)throw new Error("Object is not observable");if(null!=e&&"string"!=typeof e)throw new Error("Path must be a string");r._notifyChange(e)}export function onWatch(t,e,r){const n=i(t);if(null==n)throw new Error("Object is not observable");if("string"==typeof e)return n._onWatch(e,r);if("function"!=typeof e)throw new Error("Path must be a string or a function");return n._onWatch(e)}export function watchEvent(t,e,r,n){const o=r[0],s=r[1],i=new WeakMap,c=new Set;let a;return a=watch(t,e,((t,e)=>{if(null!=e&&i.has(e)){const t=i.get(e);t.remove(),i.delete(e),c.delete(t)}if(null!=t&&!i.has(t)){const e=t.on(o,s);i.set(t,e),c.add(e)}t!==e&&n?.(t,e)}),{sync:!0,initial:!0}),g(c,a)}export function when(t,e,r,n){const{invert:o=!1,once:s,...i}=n??{};let c;const a=v(r,e);let l=!1;return c=watch(t,e,(t=>{!t===o&&(a(),s&&(l=!0,c?.remove(),c=void 0))}),{...i,initial:!0}),s&&l&&c?.remove(),c}export function whenOnce(t,e,r){const{signal:n,invert:o=!1}=r??{};return new Promise(((r,s)=>{if(n?.aborted)return void s();const i=()=>{n?.removeEventListener("abort",i),c.remove(),s()},c=when(t,e,(()=>{n?.aborted||(n?.removeEventListener("abort",i),r())}),{invert:o,once:!0});n?.addEventListener("abort",i)}))}export function createIHandle(t){return{remove:()=>{for(const e of t)e.remove()}}}function f(t,e,r,n){const s=e.indexOf("[]");if(-1!==s){const o=e.slice(0,s),i=e.slice(s),c=[],[a,l,h]=f(t,o,((t,e)=>{if(u(e)){for(const t of c)t.remove();c.length=0}u(t)&&c.push(b(t,i.join("."),r,n))}),{sync:!0});return u(a)&&c.push(b(a,i.join("."),r,n)),[a,l,g(c,h)]}return function(t,e,r,n){const s=new WeakRef(t);let i;const c=()=>{let t=s.deref();if(null==t)return i?.remove(),[void 0,void 0];let r=t;for(let n=0;n<e.length;n++)if(t=r,r=t[e[n]],null==r){n<e.length-1&&(t=void 0);break}return[r,t]},a=new AbortController,{signal:l}=a,u=n?.initial&&!1===n?.sync?_(r,e.join("."),l):v(r,e.join(".")),h=function(t){const e=(e,r)=>{Object.is(e[0],r?.[0])||t(e[0],r?.[0],e[1])};return e}(u),[f,b]=c();return n?.initial&&n?.once?(u(f,f,b),[f,b,d([],a)]):(i=o(c,h,{...n,initial:!1}),n?.initial&&u(f,f,b),[f,b,d([i],a)])}(t,e,r,n)}function b(t,e,r,n){const o=new WeakMap,i=new Set,u=e.slice(3),h=t=>{if(!s(t)&&!c(t)||o.has(t))return;if(!(u.split(".")[0]in t))return;const e=watch(t,u,r,n);o.set(t,e),i.add(e)};i.add(t.on("after-add",(t=>{let e=t.item;"target"in t&&l(t.target)&&(e=t.item[1]),h(e)}))),i.add(t.on("after-remove",(t=>{let e=t.item;if("target"in t&&l(t.target)&&(e=t.item[1]),!s(e)&&!c(e))return;const r=o.get(e);null!=r&&(r.remove(),o.delete(e),i.delete(r))})));for(const e of a(t)?t:t.values())h(e);return g(i)}function d(t,e){return{remove:()=>{e?.abort();for(const e of t)e.remove()}}}function g(t,...e){return{remove:()=>{for(const e of t)e.remove();for(const t of e)t.remove()}}}const p="[observableUtils]: Error thrown by watch callback. Thrown errors from watch callbacks should be avoided where possible, they affect the performance of the entire watch system. Watch property:";function v(t,e){return(...r)=>{try{const n=t(...r);"object"==typeof n&&n instanceof Promise&&n.catch((t=>{console.error(`${p} ${e}`,t)}))}catch(t){console.error(`${p} ${e}`,t)}}}function _(t,e,r){const n=v(t,e);let o=new AbortController;return(...t)=>{o.abort(),o=new AbortController;const{signal:e}=o;queueMicrotask((()=>{r.aborted||e.aborted||n(...t)}))}}class w extends r{invalidated=!0;_currentValue;get currentValue(){return this._currentValue}set currentValue(t){this._currentValue=t,this.invalidated=!1}constructor(t,e){super(t,{}),this._currentValue=e}onInvalidated(){this.invalidated=!0,super.onInvalidated()}}
1
+ import t from"@arcgis/core/core/Accessor";import e from"@arcgis/core/core/Collection.js";import{watch as n}from"@arcgis/core/core/reactiveUtils";import{}from"../utilities/ObservableMap.js";import{generateUuid as r}from"../utilities/uuid.js";function o(t){return null!=t&&"object"==typeof t&&"__isObservable"in t&&t.__isObservable}function s(t){if(o(t))return t}function i(e){return e instanceof t}function c(t){return t instanceof e||null!=t&&"esri.core.Collection"===t.declaredClass}function a(t){return o(t)&&"ObservableMap"===t[Symbol.toStringTag]}function l(t){return c(t)||a(t)||function(t){return o(t)&&"ObservableSet"===t[Symbol.toStringTag]}(t)}class h{}export function observable(t){return class extends(t??h){__isObservable=!0;_subscribedPaths=new Map;_onWatchPaths=new Map;_onWatch(t,e){let n,o;"string"==typeof t?(n=t,o=e):o=t;let s=this._onWatchPaths.get(n);null==s&&(s=new Map,this._onWatchPaths.set(n,s));const i=r();if(s.set(i,o),null!=n&&this._subscribedPaths.has(n)){this._subscribedPaths.get(n).onWatchHandles.set(i,o())}else if(null==n&&this._subscribedPaths.size>0)for(const[t,e]of this._subscribedPaths){const n=o(t);e.onWatchHandles.set(i,n)}const c=new WeakRef(this);return{remove:()=>{const t=c.deref();if(null==t)return;if(!t._onWatchPaths.has(n))return;const e=t._onWatchPaths.get(n);if(e.delete(i),null!=n&&t._subscribedPaths.has(n)){const e=t._subscribedPaths.get(n),r=e.onWatchHandles.get(i);null!=r&&(r.remove(),e.onWatchHandles.delete(i))}else if(null==n&&t._subscribedPaths.size>0)for(const[,e]of t._subscribedPaths){const t=e.onWatchHandles.get(i);null!=t&&(t.remove(),e.onWatchHandles.delete(i))}0===e.size&&t._onWatchPaths.delete(n)}}}_notifyChange(t){let e;e=null==t?this._subscribedPaths.keys():[t];for(const t of e){const e=this._subscribedPaths.get(t);if(null==e)continue;const n=e.currentValue,r=this[t];if(Object.is(r,n))continue;e.currentValue=r;const o=[...e.callbacks.values()];for(const t of o)t(r,n,this)}}_watch(t,e,n){const r=[];if(t.includes(".")){if(t.includes("[]"))return this._recurseCollectionWatch(t,e,n);const o=t.split("."),s=o.shift(),i=new AbortController,{signal:c}=i,a=new WeakRef(this);let l;const h=p(e,t),u=()=>{if(c.aborted)return void(l=void 0);const t=a.deref();if(null==t){for(const t of r)t.remove();return r.length=0,void(l=void 0)}let e=t[s],n=t;for(let t=0;t<o.length;t++)if(n=e,e=e?.[o[t]],null==e){t<o.length-1&&(n=void 0);break}if(e!==l){const t=l;l=e,h(e,t,n)}},f=n?.sync?p(u,t):w(u,t,c);let b,v,_;if([l,_,b,v]=this._recurseWatch(t,f),r.push(g(b,v)),n?.initial){(n?.sync?p(e,t):w(e,t,c))(l,l,_)}return d(r,i)}return this._watchSingle(t,e,n)}_recurseWatch(t,e){const n=t.split("."),r=n.shift(),c=[];let a,l;if(n.length>0){const t=this[r];if(o(t)){const[r,o,i,h]=s(t)._recurseWatch(n.join("."),e);c.push(g(i,h)),a=r,l=o}else if(i(t)){const[r,o,s]=f(t,n,e,{sync:!0});c.push(s),a=r,l=o}}const h=this._watchSingle(r,((t,r)=>{if(t!==r){if(n.length>0){if(o(r)||i(r)){for(const t of c)t.remove();c.length=0}if(o(t)){const[,,r,o]=s(t)._recurseWatch(n.join("."),e);c.push(g(r,o))}else if(i(t)){const[,,r]=f(t,n,e,{sync:!0});c.push(r)}}e()}}),{sync:!0});return[n.length>0?a:this._subscribedPaths.get(r)?.currentValue,n.length>0?l:this,c,h]}_recurseCollectionWatch(t,e,n){const r=t.split("."),c=r.shift();if("[]"===r[0])return this._collectionWatch(c,r,e,n);{const t=[],a=this._watchSingle(c,(c=>{for(const e of t)e.remove();t.length=0,o(c)?t.push(s(c)._recurseCollectionWatch(r.join("."),e,n)):i(c)&&t.push(f(c,r,e,n)[2])})),l=this[c];return o(l)?t.push(s(l)._recurseCollectionWatch(r.join("."),e,n)):i(l)&&t.push(f(l,r,e,n)[2]),g(t,a)}}_collectionWatch(t,e,n,r){const o=[];l(this[t])&&o.push(b(this[t],e.join("."),n,r));const s=this._watchSingle(t,((t,s)=>{if(l(s)){for(const t of o)t.remove();o.length=0}l(t)&&o.push(b(t,e.join("."),n,r))}),{sync:!0});return g(o,s)}_watchSingle(t,e,n){let o=this._subscribedPaths.get(t)?.callbacks;if(null==o){let e=Object.getOwnPropertyDescriptor(this,t),n=this;for(;null==e&&(n=Object.getPrototypeOf(n),null!=n);)e=Object.getOwnPropertyDescriptor(n,t);if(null==e)return console.warn(`[observableUtils]: The property ${t.toString()} you are trying to watch does not exist on the object and will not be watched. This is likely a coding error or an optional property on an interface that is not implemented on the object. Please check the property name and ensure it exists on the object. Only properties that exist on the object at the time they are watched can be observed for changes.`),{remove:()=>{}};if(!1===e.configurable)throw new Error(`Property "${t.toString()}" is not configurable so it cannot be watched`);o=new Map;const r=new Map;if(this._subscribedPaths.set(t,{callbacks:o,currentValue:this[t],onWatchHandles:r}),!0!==e.writable&&null==e.set||(this._subscribedPaths.get(t).originalDescriptor=e,null!=e.value&&(e.value=void 0),this._createWatchDescriptor(t,e)),this._onWatchPaths.has(t))for(const[e,n]of this._onWatchPaths.get(t))r.set(e,n());if(this._onWatchPaths.has(void 0))for(const[e,n]of this._onWatchPaths.get(void 0))r.set(e,n(t))}const s=new AbortController,i=p(e,t.toString()),{currentValue:c}=this._subscribedPaths.get(t);let a=c;const l=(t,e,n)=>{const r=a;a=t,i(t,r,n)},h=n?.sync?p(l,t.toString()):w(l,t.toString(),s.signal),u=r();return o.set(u,h),n?.initial&&h(c,c,this),this._createSingleWatchRemoveHandle(t,u,s)}_createWatchDescriptor(t,e){const n={configurable:!0,enumerable:e.enumerable};null==e.get?(n.get=()=>this._subscribedPaths.get(t).currentValue,n.set=e=>{const n=this._subscribedPaths.get(t),r=n.currentValue;if(Object.is(r,e))return;n.currentValue=e;const o=[...n.callbacks.values()];for(const t of o)t(e,r,this)}):(n.get=e.get,n.set=n=>{const r=this._subscribedPaths.get(t),o=r.currentValue;if(Object.is(o,n))return void e.set.call(this,n);r.currentValue=n,e.set.call(this,n);const s=[...r.callbacks.values()];for(const t of s)t(n,o,this)}),Object.defineProperty(this,t,n)}_createSingleWatchRemoveHandle(t,e,n){const r=new WeakRef(this);return{remove:()=>{n.abort();const o=r.deref();if(null==o)return;if(!o._subscribedPaths.has(t))return;const{callbacks:s}=o._subscribedPaths.get(t);if(s.delete(e),0===s.size){const e=o._subscribedPaths.get(t);o._subscribedPaths.delete(t);for(const t of e.onWatchHandles.values())t.remove();null!=e.originalDescriptor&&(null==e.originalDescriptor.get&&(e.originalDescriptor.value=e.currentValue),Object.defineProperty(o,t,e.originalDescriptor))}}}}}}const u=new FinalizationRegistry((t=>{t.remove()}));export function watch(t,e,n,r){if(!o(t)&&i(t))return _(t,f(t,e.split("."),n,r)[2]);const c=s(t);if(null==c)throw new Error("Object is not observable");if(r?.once){let t;const o=new AbortController,{signal:s}=o,i=r?.sync?p(n,e):w(n,e,s);let a=!1;const l=(e,n,r)=>{s.aborted||(a=!0,t?.remove(),t=void 0,i(e,n,r))};t=c._watch(e,l,{...r,sync:!0});const h=d([t],o);return a?(h.remove(),h):_(c,h)}return _(c,c._watch(e,n,r))}export function watchEach(t,e,n,r){if(l(t)&&e.startsWith("[]."))return _(t,b(t,e,n,r));if(!o(t)&&i(t))return _(t,f(t,e.split("."),n,r)[2]);const c=s(t);if(null==c)throw new Error("Object is not observable");return _(c,c._watch(e,n,r))}export async function once(t,e,n){const{signal:r}=n??{};return new Promise(((n,o)=>{if(r?.aborted)return void o();const s=()=>{i.remove(),o()},i=watch(t,e,(()=>{r?.removeEventListener("abort",s),n()}),{once:!0});r?.addEventListener("abort",s)}))}export function notifyChange(t,e){const n=s(t);if(null==n)throw new Error("Object is not observable");if(null!=e&&"string"!=typeof e)throw new Error("Path must be a string");n._notifyChange(e)}export function onWatch(t,e,n){const r=s(t);if(null==r)throw new Error("Object is not observable");if("string"==typeof e)return _(r,r._onWatch(e,n));if("function"!=typeof e)throw new Error("Path must be a string or a function");return _(r,r._onWatch(e))}export function watchEvent(t,e,n,r){const o=n[0],s=n[1],i=new WeakMap,c=new Set;let a;return a=watch(t,e,((t,e)=>{if(null!=e&&i.has(e)){const t=i.get(e);t.remove(),i.delete(e),c.delete(t)}if(null!=t&&!i.has(t)){const e=t.on(o,s);i.set(t,e),c.add(e)}t!==e&&r?.(t,e)}),{sync:!0,initial:!0}),_(t,g(c,a))}export function when(t,e,n,r){const{invert:o=!1,once:s,...i}=r??{};let c;const a=p(n,e);let l=!1;return c=watch(t,e,(t=>{!t===o&&(a(),s&&(l=!0,c?.remove(),c=void 0))}),{...i,initial:!0}),s&&l&&c?.remove(),c}export function whenOnce(t,e,n){const{signal:r,invert:o=!1}=n??{};return new Promise(((n,s)=>{if(r?.aborted)return void s();const i=()=>{r?.removeEventListener("abort",i),c.remove(),s()},c=when(t,e,(()=>{r?.aborted||(r?.removeEventListener("abort",i),n())}),{invert:o,once:!0});r?.addEventListener("abort",i)}))}export function createIHandle(t){return{remove:()=>{for(const e of t)e.remove()}}}function f(t,e,r,o){const s=e.indexOf("[]");if(-1!==s){const n=e.slice(0,s),i=e.slice(s),c=[],[a,h,u]=f(t,n,((t,e)=>{if(l(e)){for(const t of c)t.remove();c.length=0}l(t)&&c.push(b(t,i.join("."),r,o))}),{sync:!0});return l(a)&&c.push(b(a,i.join("."),r,o)),[a,h,g(c,u)]}return function(t,e,r,o){const s=new WeakRef(t);let i;const c=()=>{let t=s.deref();if(null==t)return i?.remove(),[void 0,void 0];let n=t;for(let r=0;r<e.length;r++)if(t=n,n=t[e[r]],null==n){r<e.length-1&&(t=void 0);break}return[n,t]},a=new AbortController,{signal:l}=a,h=o?.initial&&!1===o?.sync?w(r,e.join("."),l):p(r,e.join(".")),u=function(t){const e=(e,n)=>{Object.is(e[0],n?.[0])||t(e[0],n?.[0],e[1])};return e}(h),[f,b]=c();return o?.initial&&o?.once?(h(f,f,b),[f,b,d([],a)]):(i=n(c,u,{...o,initial:!1}),o?.initial&&h(f,f,b),[f,b,d([i],a)])}(t,e,r,o)}function b(t,e,n,r){const s=new WeakMap,l=new Set,h=e.slice(3),u=t=>{if(!o(t)&&!i(t)||s.has(t))return;if(!(h.split(".")[0]in t))return;const e=watch(t,h,n,r);s.set(t,e),l.add(e)};l.add(t.on("after-add",(t=>{let e=t.item;"target"in t&&a(t.target)&&(e=t.item[1]),u(e)}))),l.add(t.on("after-remove",(t=>{let e=t.item;if("target"in t&&a(t.target)&&(e=t.item[1]),!o(e)&&!i(e))return;const n=s.get(e);null!=n&&(n.remove(),s.delete(e),l.delete(n))})));for(const e of c(t)?t:t.values())u(e);return g(l)}function d(t,e){return{remove:()=>{e?.abort();for(const e of t)e.remove()}}}function g(t,...e){return{remove:()=>{for(const e of t)e.remove();for(const t of e)t.remove()}}}const v="[observableUtils]: Error thrown by watch callback. Thrown errors from watch callbacks should be avoided where possible, they affect the performance of the entire watch system. Watch property:";function p(t,e){return(...n)=>{try{const r=t(...n);"object"==typeof r&&r instanceof Promise&&r.catch((t=>{console.error(`${v} ${e}`,t)}))}catch(t){console.error(`${v} ${e}`,t)}}}function w(t,e,n){const r=p(t,e);let o=new AbortController;return(...t)=>{o.abort(),o=new AbortController;const{signal:e}=o;queueMicrotask((()=>{n.aborted||e.aborted||r(...t)}))}}function _(t,e){return u.register(t,e,e),{remove:()=>{u.unregister(e),e.remove()}}}
@@ -8,18 +8,6 @@ export declare class QueryError extends Error {
8
8
  * source.
9
9
  */
10
10
  readonly errors: Map<FeatureSource, Error>;
11
- /**
12
- * The first source in `errors`.
13
- *
14
- * @deprecated Use `errors` to get all sources with errors.
15
- */
16
- get source(): FeatureSource;
17
- /**
18
- * The first error in `errors`.
19
- *
20
- * @deprecated Use `errors` to get all errors.
21
- */
22
- get error(): Error;
23
11
  /**
24
12
  * Initializes a new instance of the {@link QueryError} class.
25
13
  *