@arcgis/core 5.0.0-next.69 → 5.0.0-next.70

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 (310) hide show
  1. package/Map.d.ts +3 -1
  2. package/analysis/Analysis.d.ts +1 -0
  3. package/analysis/Dimension/types.d.ts +1 -0
  4. package/analysis/DimensionAnalysis.d.ts +10 -10
  5. package/analysis/DimensionSimpleStyle.d.ts +14 -13
  6. package/analysis/DirectLineMeasurementAnalysis.d.ts +1 -1
  7. package/analysis/DistanceMeasurementAnalysis.d.ts +2 -1
  8. package/analysis/ElevationProfile/ElevationProfileLineScene.d.ts +3 -3
  9. package/analysis/ElevationProfile/ElevationProfileLineViewOptions.d.ts +1 -1
  10. package/analysis/ElevationProfile/types.d.ts +2 -0
  11. package/analysis/LengthDimension.d.ts +22 -21
  12. package/analysis/LineOfSightAnalysis.d.ts +2 -2
  13. package/analysis/ShadowCast/MinDurationOptions.d.ts +2 -2
  14. package/analysis/ShadowCast/types.d.ts +6 -2
  15. package/analysis/Slice/types.d.ts +1 -0
  16. package/analysis/Viewshed.d.ts +22 -20
  17. package/analysis/ViewshedAnalysis.d.ts +13 -13
  18. package/analysis/VolumeMeasurement/VolumeMeasurementDisplayUnits.d.ts +1 -2
  19. package/analysis/VolumeMeasurement/VolumeMeasurementInputUnits.d.ts +2 -2
  20. package/analysis/VolumeMeasurement/types.d.ts +1 -0
  21. package/analysis/VolumeMeasurementAnalysis.d.ts +1 -0
  22. package/analysis/types.d.ts +5 -0
  23. package/arcade.d.ts +2 -2
  24. package/assets/esri/core/workers/RemoteClient.js +1 -1
  25. package/assets/esri/core/workers/chunks/04364f3dd7578c2acb71.js +1 -0
  26. package/assets/esri/core/workers/chunks/18ed69d563986dc2eb21.js +1 -0
  27. package/assets/esri/core/workers/chunks/{4c04c54330b693892cfc.js → 1a45b4b4803337f4b99f.js} +2 -2
  28. package/assets/esri/core/workers/chunks/{60c7f896f2246a8aa6d7.js → 244006d4b0547d574401.js} +53 -53
  29. package/assets/esri/core/workers/chunks/329b10897c6965948b84.js +1 -0
  30. package/assets/esri/core/workers/chunks/4387aaf9d5e8f6d1833d.js +1 -0
  31. package/assets/esri/core/workers/chunks/{944dfa9309da8f49a616.js → 6a3d66d7c92f90cc2a17.js} +1 -1
  32. package/assets/esri/core/workers/chunks/760a759f9697adde6dd4.js +1 -0
  33. package/assets/esri/core/workers/chunks/798d227205bd958de6a7.js +1 -0
  34. package/assets/esri/core/workers/chunks/{9d88b4ba8e511da64583.js → 98d68b145226e7527c84.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{8ad6595ad44c2d60c1ce.js → a79fad422d41019c8232.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{10e474d664b20adcd917.js → db4661fd82dc61162115.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{1d1e25bb61eeeee8ee94.js → df2ba5f9d57080fca183.js} +1 -1
  38. package/assets/esri/themes/base/widgets/_UtilityNetworkAssociations.scss +5 -3
  39. package/assets/esri/themes/base/widgets/_UtilityNetworkValidateTopology.scss +15 -11
  40. package/assets/esri/themes/dark/main.css +1 -1
  41. package/assets/esri/themes/light/main.css +1 -1
  42. package/assets/esri/themes/light/view.css +1 -1
  43. package/chunks/ComponentShader.glsl.js +43 -43
  44. package/chunks/DefaultMaterial.glsl.js +1 -1
  45. package/config.js +1 -1
  46. package/form/elements/inputs/attachments/Input.d.ts +6 -6
  47. package/geometry/Mesh.d.ts +20 -21
  48. package/geometry/Polygon.d.ts +1 -8
  49. package/geometry/Polygon.js +1 -1
  50. package/geometry/geometryEngine.d.ts +19 -19
  51. package/geometry/support/MeshComponent.d.ts +3 -3
  52. package/geometry/support/MeshGeoreferencedVertexSpace.d.ts +2 -2
  53. package/geometry/support/MeshLocalVertexSpace.d.ts +2 -2
  54. package/geometry/support/MeshMaterial.d.ts +8 -8
  55. package/geometry/support/MeshMaterialMetallicRoughness.d.ts +1 -1
  56. package/geometry/support/MeshTexture.d.ts +3 -3
  57. package/geometry/support/MeshTextureTransform.d.ts +3 -3
  58. package/geometry/support/MeshTransform.d.ts +1 -1
  59. package/geometry/support/MeshVertexAttributes.d.ts +13 -5
  60. package/geometry/support/intersects.js +1 -1
  61. package/geometry/support/intersectsBase.js +1 -1
  62. package/geometry/support/meshUtils/centerAt.js +1 -1
  63. package/geometry/support/meshUtils/geographicUtils.js +1 -1
  64. package/geometry/support/meshUtils/georeference.js +1 -1
  65. package/geometry/support/meshUtils/rotate.js +1 -1
  66. package/geometry/support/meshUtils/scale.js +1 -1
  67. package/geometry/support/meshUtils/types.d.ts +44 -52
  68. package/geometry/support/meshUtils.d.ts +6 -50
  69. package/geometry/support/meshUtils.js +1 -1
  70. package/interfaces.d.ts +5 -151
  71. package/kernel.js +1 -1
  72. package/layers/BaseDynamicLayer.d.ts +2 -2
  73. package/layers/BaseElevationLayer.d.ts +2 -2
  74. package/layers/BuildingSceneLayer.d.ts +2 -2
  75. package/layers/CSVLayer.d.ts +2 -2
  76. package/layers/CatalogLayer.d.ts +2 -2
  77. package/layers/DimensionLayer.d.ts +2 -2
  78. package/layers/ElevationLayer.d.ts +2 -2
  79. package/layers/FeatureLayer.d.ts +2 -2
  80. package/layers/GeoJSONLayer.d.ts +2 -2
  81. package/layers/GeoRSSLayer.d.ts +2 -2
  82. package/layers/GraphicsLayer.d.ts +2 -2
  83. package/layers/GroupLayer.d.ts +2 -2
  84. package/layers/ImageryLayer.d.ts +2 -2
  85. package/layers/ImageryTileLayer.d.ts +2 -2
  86. package/layers/IntegratedMesh3DTilesLayer.d.ts +2 -2
  87. package/layers/IntegratedMeshLayer.d.ts +2 -2
  88. package/layers/KMLLayer.d.ts +2 -2
  89. package/layers/Layer.d.ts +9 -7
  90. package/layers/LineOfSightLayer.d.ts +3 -3
  91. package/layers/MapImageLayer.d.ts +2 -2
  92. package/layers/MapNotesLayer.d.ts +2 -2
  93. package/layers/MediaLayer.d.ts +2 -2
  94. package/layers/OGCFeatureLayer.d.ts +2 -2
  95. package/layers/OrientedImageryLayer.d.ts +2 -2
  96. package/layers/ParquetLayer.d.ts +2 -2
  97. package/layers/PointCloudLayer.d.ts +2 -2
  98. package/layers/RouteLayer.d.ts +2 -2
  99. package/layers/SceneLayer.d.ts +2 -2
  100. package/layers/SubtypeGroupLayer.d.ts +2 -2
  101. package/layers/TileLayer.d.ts +2 -2
  102. package/layers/UnknownLayer.d.ts +2 -2
  103. package/layers/UnsupportedLayer.d.ts +2 -2
  104. package/layers/VectorTileLayer.d.ts +2 -2
  105. package/layers/VideoLayer.d.ts +2 -2
  106. package/layers/ViewshedLayer.d.ts +2 -2
  107. package/layers/VoxelLayer.d.ts +2 -2
  108. package/layers/WCSLayer.d.ts +2 -2
  109. package/layers/WFSLayer.d.ts +2 -2
  110. package/layers/WMSLayer.d.ts +2 -2
  111. package/layers/WMTSLayer.d.ts +2 -2
  112. package/layers/catalog/CatalogDynamicGroupLayer.d.ts +2 -2
  113. package/layers/catalog/CatalogFootprintLayer.d.ts +2 -2
  114. package/layers/knowledgeGraph/KnowledgeGraphSublayer.d.ts +2 -2
  115. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  116. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  117. package/layers/orientedImagery/transformations/utils.js +1 -1
  118. package/layers/raster/types.d.ts +8 -1
  119. package/layers/support/PixelBlock.d.ts +7 -7
  120. package/layers/support/RasterInfo.d.ts +2 -9
  121. package/layers/types.d.ts +77 -2
  122. package/networks/support/CircuitSection.d.ts +20 -2
  123. package/networks/support/CircuitSection.js +1 -1
  124. package/networks/support/Subcircuit.d.ts +12 -10
  125. package/networks/support/Subcircuit.js +1 -1
  126. package/networks/support/typeUtils.d.ts +2 -0
  127. package/networks/support/typeUtils.js +1 -1
  128. package/package.json +2 -2
  129. package/rest/support/AttributeBinsQuery.d.ts +7 -1
  130. package/rest/support/NormalizationBinParametersMixin.d.ts +29 -9
  131. package/support/revision.js +1 -1
  132. package/symbols/patterns/LinePattern3D.d.ts +3 -3
  133. package/symbols/patterns/Pattern3D.d.ts +3 -3
  134. package/unionTypes.d.ts +17 -17
  135. package/views/2d/analysis/AreaMeasurementAnalysisView2D.d.ts +6 -5
  136. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.d.ts +7 -6
  137. package/views/2d/engine/vectorTiles/shaders/sources/shaderRepository.js +1 -1
  138. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  139. package/views/2d/types.d.ts +1 -1
  140. package/views/3d/analysis/AreaMeasurementAnalysisView3D.d.ts +2 -2
  141. package/views/3d/analysis/DirectLineMeasurement/types.d.ts +1 -0
  142. package/views/3d/analysis/ElevationProfile/ElevationProfileLineSceneComputation.js +1 -1
  143. package/views/3d/analysis/VolumeMeasurement/types.d.ts +1 -0
  144. package/views/3d/analysis/types.d.ts +2 -0
  145. package/views/3d/constraints/Constraints.d.ts +2 -2
  146. package/views/3d/environment/ChapmanApproximation.glsl.js +1 -1
  147. package/views/3d/environment/CloudsComposition.js +1 -1
  148. package/views/3d/environment/Fog.js +1 -1
  149. package/views/3d/layers/DimensionLayerView3D.js +1 -1
  150. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  151. package/views/3d/layers/I3SMeshView3D.js +1 -1
  152. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  153. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  154. package/views/3d/layers/LineOfSightLayerView3D.js +1 -1
  155. package/views/3d/layers/ViewshedLayerView3D.js +1 -1
  156. package/views/3d/layers/i3s/I3SMaterialUtil.js +1 -1
  157. package/views/3d/support/LayerPerformanceInfo.d.ts +1 -1
  158. package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
  159. package/views/3d/webgl-engine/collections/Component/ComponentObject.js +1 -1
  160. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  161. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  162. package/views/3d/webgl-engine/collections/Component/Material/ComponentShader.glsl.js +1 -1
  163. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  164. package/views/3d/webgl-engine/collections/Component/SourceGeometry.js +1 -1
  165. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  166. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js +1 -1
  167. package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js +1 -1
  168. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +3 -3
  169. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +7 -7
  170. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js +1 -1
  171. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  172. package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
  173. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  174. package/views/3d/webgl-engine/materials/ViewingModeConfiguration.js +5 -0
  175. package/views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js +2 -2
  176. package/views/BreakpointsOwner.d.ts +9 -10
  177. package/views/MapView.d.ts +18 -17
  178. package/views/SceneView.d.ts +30 -89
  179. package/views/SceneView.js +1 -1
  180. package/views/View2D.d.ts +0 -37
  181. package/views/View2D.js +1 -1
  182. package/views/ViewAnimation.d.ts +2 -3
  183. package/views/analysis/ElevationProfile/types.d.ts +7 -6
  184. package/views/analysis/types.d.ts +1 -0
  185. package/views/animation/types.d.ts +3 -1
  186. package/views/layers/DimensionLayerView.d.ts +97 -4
  187. package/views/layers/DimensionLayerView.js +1 -1
  188. package/views/layers/HighlightLayerViewMixin.d.ts +1 -59
  189. package/views/layers/HighlightLayerViewMixin.js +1 -1
  190. package/views/layers/ImageryLayerViewMixin.d.ts +1 -55
  191. package/views/layers/LineOfSightLayerView.d.ts +77 -4
  192. package/views/layers/LineOfSightLayerView.js +1 -1
  193. package/views/layers/ViewshedLayerView.d.ts +96 -5
  194. package/views/layers/ViewshedLayerView.js +1 -1
  195. package/views/navigation/Navigation.d.ts +1 -22
  196. package/views/navigation/Navigation.js +1 -1
  197. package/views/support/Scheduler.js +1 -1
  198. package/views/types.d.ts +75 -5
  199. package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.d.ts +4 -4
  200. package/widgets/AreaMeasurement3D.d.ts +2 -2
  201. package/widgets/BasemapGallery.d.ts +1 -1
  202. package/widgets/BasemapToggle.d.ts +1 -1
  203. package/widgets/Bookmarks.d.ts +1 -1
  204. package/widgets/BuildingExplorer/BuildingExplorerViewModel.d.ts +2 -2
  205. package/widgets/BuildingExplorer/BuildingLevel.d.ts +2 -2
  206. package/widgets/BuildingExplorer/BuildingNumericFilterViewModel.d.ts +2 -2
  207. package/widgets/BuildingExplorer/BuildingPhase.d.ts +2 -2
  208. package/widgets/BuildingExplorer.d.ts +3 -3
  209. package/widgets/Compass.d.ts +1 -1
  210. package/widgets/CoordinateConversion.d.ts +1 -1
  211. package/widgets/Daylight/DaylightViewModel.d.ts +3 -3
  212. package/widgets/Daylight/VisibleElements.d.ts +2 -2
  213. package/widgets/Daylight/types.d.ts +2 -2
  214. package/widgets/Daylight.d.ts +3 -3
  215. package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.d.ts +4 -4
  216. package/widgets/DirectLineMeasurement3D.d.ts +2 -2
  217. package/widgets/DirectionalPad.d.ts +1 -1
  218. package/widgets/ElevationProfile/ElevationProfileLine.d.ts +2 -2
  219. package/widgets/ElevationProfile/ElevationProfileLineGround.d.ts +2 -2
  220. package/widgets/ElevationProfile/ElevationProfileLineInput.d.ts +2 -2
  221. package/widgets/ElevationProfile/ElevationProfileLineQuery.d.ts +2 -2
  222. package/widgets/ElevationProfile/ElevationProfileLineView.d.ts +3 -3
  223. package/widgets/ElevationProfile/ElevationProfileViewModel.d.ts +2 -2
  224. package/widgets/ElevationProfile/ElevationProfileVisibleElements.d.ts +2 -2
  225. package/widgets/ElevationProfile/types.d.ts +9 -9
  226. package/widgets/ElevationProfile.d.ts +2 -2
  227. package/widgets/Expand/ExpandViewModel.d.ts +1 -1
  228. package/widgets/Expand.d.ts +1 -1
  229. package/widgets/Feature.d.ts +1 -1
  230. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +1 -1
  231. package/widgets/Features.d.ts +1 -1
  232. package/widgets/Fullscreen/FullscreenViewModel.d.ts +1 -1
  233. package/widgets/Fullscreen.d.ts +1 -1
  234. package/widgets/Home.d.ts +1 -1
  235. package/widgets/LayerList.d.ts +12 -0
  236. package/widgets/Legend.d.ts +1 -1
  237. package/widgets/LineOfSight/LineOfSightTarget.d.ts +2 -2
  238. package/widgets/LineOfSight/LineOfSightViewModel.d.ts +2 -2
  239. package/widgets/LineOfSight.d.ts +2 -2
  240. package/widgets/Locate/LocateViewModel.d.ts +1 -1
  241. package/widgets/Locate.d.ts +1 -1
  242. package/widgets/NavigationToggle/NavigationToggleViewModel.d.ts +1 -1
  243. package/widgets/NavigationToggle.d.ts +1 -1
  244. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  245. package/widgets/OrientedImageryViewer/components/Arrow.js +1 -1
  246. package/widgets/OrientedImageryViewer/components/ImageViewer.js +1 -1
  247. package/widgets/OrientedImageryViewer/components/ImageViewerViewModel.js +1 -1
  248. package/widgets/OrientedImageryViewer/components/NavigationNode.js +1 -1
  249. package/widgets/OrientedImageryViewer/components/NavigationUI360.js +1 -1
  250. package/widgets/OrientedImageryViewer/components/NavigationUIPanoramicViewModel.js +1 -1
  251. package/widgets/OrientedImageryViewer/components/NavigationUIViewModel.js +1 -1
  252. package/widgets/OrientedImageryViewer/components/SequentialNavigationUI.js +1 -1
  253. package/widgets/OrientedImageryViewer/constants.js +1 -1
  254. package/widgets/OrientedImageryViewer/navigation/NavigationManager.js +1 -1
  255. package/widgets/OrientedImageryViewer/navigation/NavigationManagerPanoramic.js +1 -1
  256. package/widgets/OrientedImageryViewer/navigation/utils.js +1 -1
  257. package/widgets/OrientedImageryViewer/support/MediaPrefetcher.js +5 -0
  258. package/widgets/OrientedImageryViewer/support/NonPanoramicMedia.js +1 -1
  259. package/widgets/OrientedImageryViewer/support/NonPanoramicMediaCollection.js +1 -1
  260. package/widgets/OrientedImageryViewer/support/resolveMediaProps.js +5 -0
  261. package/widgets/OrientedImageryViewer/utils.js +1 -1
  262. package/widgets/OrientedImageryViewer.js +1 -1
  263. package/widgets/PanoramicViewer/PanoramicViewerViewModel.js +1 -1
  264. package/widgets/PanoramicViewer.js +1 -1
  265. package/widgets/Print/CustomTemplate.d.ts +1 -1
  266. package/widgets/Print/PrintViewModel.d.ts +1 -1
  267. package/widgets/Print.d.ts +1 -1
  268. package/widgets/ScaleBar.d.ts +1 -1
  269. package/widgets/Search.d.ts +1 -1
  270. package/widgets/ShadowCast/DiscreteOptions.d.ts +2 -2
  271. package/widgets/ShadowCast/DurationOptions.d.ts +2 -2
  272. package/widgets/ShadowCast/ShadowCastViewModel.d.ts +3 -3
  273. package/widgets/ShadowCast/ShadowCastVisibleElements.d.ts +2 -2
  274. package/widgets/ShadowCast/ThresholdOptions.d.ts +2 -2
  275. package/widgets/ShadowCast/types.d.ts +2 -2
  276. package/widgets/ShadowCast.d.ts +1 -1
  277. package/widgets/Slice/SliceViewModel.d.ts +2 -2
  278. package/widgets/Slice.d.ts +2 -2
  279. package/widgets/Swipe.d.ts +1 -1
  280. package/widgets/TimeZoneLabel.d.ts +1 -1
  281. package/widgets/Track.d.ts +1 -1
  282. package/widgets/UtilityNetworkValidateTopology.js +1 -1
  283. package/widgets/VideoPlayer.d.ts +1 -1
  284. package/widgets/VideoPlayer.js +1 -1
  285. package/widgets/Weather/VisibleElements.d.ts +2 -2
  286. package/widgets/Weather/WeatherViewModel.d.ts +2 -2
  287. package/widgets/Weather/types.d.ts +1 -1
  288. package/widgets/Weather.d.ts +2 -2
  289. package/widgets/Zoom.d.ts +1 -1
  290. package/widgets/support/GridControls.d.ts +1 -1
  291. package/assets/esri/core/workers/chunks/35961e71f69ae1d24b9e.js +0 -1
  292. package/assets/esri/core/workers/chunks/3cce8e894bf37c3e598e.js +0 -1
  293. package/assets/esri/core/workers/chunks/7ee68f67f9cc48a328f0.js +0 -1
  294. package/assets/esri/core/workers/chunks/a931515a2569713e743b.js +0 -1
  295. package/assets/esri/core/workers/chunks/bb4574a87ca21e719f0d.js +0 -1
  296. package/assets/esri/core/workers/chunks/c9f868f85d740ee32715.js +0 -1
  297. package/geometry.d.ts +0 -136
  298. package/geometry.js +0 -5
  299. package/pointCloudRenderers.d.ts +0 -112
  300. package/pointCloudRenderers.js +0 -5
  301. package/rasterRenderers.d.ts +0 -151
  302. package/rasterRenderers.js +0 -5
  303. package/renderers.d.ts +0 -166
  304. package/renderers.js +0 -5
  305. package/views/layers/DimensionLayerViewMixin.d.ts +0 -1
  306. package/views/layers/DimensionLayerViewMixin.js +0 -5
  307. package/views/layers/LineOfSightLayerViewMixin.d.ts +0 -1
  308. package/views/layers/LineOfSightLayerViewMixin.js +0 -5
  309. package/views/layers/ViewshedLayerViewMixin.d.ts +0 -98
  310. package/views/layers/ViewshedLayerViewMixin.js +0 -5
@@ -1,37 +1,7 @@
1
1
  import type Graphic from "../../Graphic.js";
2
- import type HighlightOptions from "../support/HighlightOptions.js";
3
2
  import type { ResourceHandle } from "../../core/Handles.js";
4
- import type { HighlightOptionsProperties } from "../support/HighlightOptions.js";
5
3
 
6
- export interface HighlightLayerViewMixinProperties {
7
- /**
8
- * Options for configuring the highlight. Use the [highlight()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-HighlightLayerViewMixin.html#highlight) method on the layer view
9
- * to highlight a feature.
10
- *
11
- * > [!WARNING]
12
- * >
13
- * > **Known Limitations**
14
- * >
15
- * > The `highlightOptions` on layer views are only supported in [2D MapViews](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html). To
16
- * > configure highlights for a [3D SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html), use
17
- * > [SceneView#highlights](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#highlights) instead.
18
- *
19
- * @deprecated since version 4.34. Use the [View#highlights](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#highlights) property instead.
20
- * @since 4.26
21
- * @see [highlight()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-HighlightLayerViewMixin.html#highlight)
22
- * @see [Sample: Highlight SceneLayer](https://developers.arcgis.com/javascript/latest/sample-code/highlight-scenelayer/)
23
- * @example
24
- * // Features in the layerview will be highlighted with bright
25
- * // yellow colors in the map.
26
- * const layerView = await view.whenLayerView(layer);
27
- * layerView.highlightOptions = {
28
- * color: [255, 255, 0, 1],
29
- * haloOpacity: 0.9,
30
- * fillOpacity: 0.2
31
- * };
32
- */
33
- highlightOptions?: HighlightOptionsProperties | null;
34
- }
4
+ export interface HighlightLayerViewMixinProperties {}
35
5
 
36
6
  /**
37
7
  * Mixin for highlight method on layer views.
@@ -40,34 +10,6 @@ export interface HighlightLayerViewMixinProperties {
40
10
  */
41
11
  export abstract class HighlightLayerViewMixin {
42
12
  constructor(...args: any[]);
43
- /**
44
- * Options for configuring the highlight. Use the [highlight()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-HighlightLayerViewMixin.html#highlight) method on the layer view
45
- * to highlight a feature.
46
- *
47
- * > [!WARNING]
48
- * >
49
- * > **Known Limitations**
50
- * >
51
- * > The `highlightOptions` on layer views are only supported in [2D MapViews](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html). To
52
- * > configure highlights for a [3D SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html), use
53
- * > [SceneView#highlights](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#highlights) instead.
54
- *
55
- * @deprecated since version 4.34. Use the [View#highlights](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#highlights) property instead.
56
- * @since 4.26
57
- * @see [highlight()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-HighlightLayerViewMixin.html#highlight)
58
- * @see [Sample: Highlight SceneLayer](https://developers.arcgis.com/javascript/latest/sample-code/highlight-scenelayer/)
59
- * @example
60
- * // Features in the layerview will be highlighted with bright
61
- * // yellow colors in the map.
62
- * const layerView = await view.whenLayerView(layer);
63
- * layerView.highlightOptions = {
64
- * color: [255, 255, 0, 1],
65
- * haloOpacity: 0.9,
66
- * fillOpacity: 0.2
67
- * };
68
- */
69
- get highlightOptions(): HighlightOptions | null | undefined;
70
- set highlightOptions(value: HighlightOptionsProperties | null | undefined);
71
13
  /**
72
14
  * Highlights the given feature(s) in a layer view using the named [HighlightOptions](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-support-HighlightOptions.html)
73
15
  * from the view's [View#highlights](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#highlights) collection. If no `name` is provided, the
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import{subclass as i}from"../../core/accessorSupport/decorators.js";const s=s=>{const e=s;let r=class extends e{get highlightOptions(){}set highlightOptions(t){}};return r=t([i("esri.views.layers.HighlightLayerViewMixin")],r),r};export{s as HighlightLayerViewMixin};
5
+ import{__decorate as r}from"tslib";import{subclass as e}from"../../core/accessorSupport/decorators.js";const s=s=>{const o=s;let t=class extends o{};return t=r([e("esri.views.layers.HighlightLayerViewMixin")],t),t};export{s as HighlightLayerViewMixin};
@@ -1,66 +1,12 @@
1
- import type HighlightOptions from "../support/HighlightOptions.js";
2
1
  import type { ResourceHandle } from "../../core/Handles.js";
3
2
  import type { PixelData } from "../../layers/support/types.js";
4
3
  import type { PixelHighlightTarget, HighlightTarget } from "../types.js";
5
4
  import type { LayerViewHighlightOptions } from "./types.js";
6
- import type { HighlightOptionsProperties } from "../support/HighlightOptions.js";
7
5
 
8
- export interface ImageryLayerViewMixinProperties {
9
- /**
10
- * Options for configuring the highlight. Use the [ImageryLayerView#highlight()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ImageryLayerView.html#highlight) method on the layer view
11
- * to highlight a feature.
12
- *
13
- * > [!WARNING]
14
- * >
15
- * > **Known Limitations**
16
- * >
17
- * > The `highlightOptions` on layer views are only supported in [2D MapViews](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html).
18
- *
19
- * @deprecated since version 4.34. Use the [View#highlights](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#highlights) property instead.
20
- * @since 4.26
21
- * @see [ImageryLayerView#highlight()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ImageryLayerView.html#highlight)
22
- * @see [Sample: Highlight SceneLayer](https://developers.arcgis.com/javascript/latest/sample-code/highlight-scenelayer/)
23
- * @example
24
- * // Features in the layerview will be highlighted with bright
25
- * // yellow colors in the map.
26
- * const layerView = await view.whenLayerView(layer);
27
- * layerView.highlightOptions = {
28
- * color: [255, 255, 0, 1],
29
- * haloOpacity: 0.9,
30
- * fillOpacity: 0.2
31
- * };
32
- */
33
- highlightOptions?: HighlightOptionsProperties | null;
34
- }
6
+ export interface ImageryLayerViewMixinProperties {}
35
7
 
36
8
  export abstract class ImageryLayerViewMixin {
37
9
  constructor(...args: any[]);
38
- /**
39
- * Options for configuring the highlight. Use the [ImageryLayerView#highlight()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ImageryLayerView.html#highlight) method on the layer view
40
- * to highlight a feature.
41
- *
42
- * > [!WARNING]
43
- * >
44
- * > **Known Limitations**
45
- * >
46
- * > The `highlightOptions` on layer views are only supported in [2D MapViews](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html).
47
- *
48
- * @deprecated since version 4.34. Use the [View#highlights](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#highlights) property instead.
49
- * @since 4.26
50
- * @see [ImageryLayerView#highlight()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ImageryLayerView.html#highlight)
51
- * @see [Sample: Highlight SceneLayer](https://developers.arcgis.com/javascript/latest/sample-code/highlight-scenelayer/)
52
- * @example
53
- * // Features in the layerview will be highlighted with bright
54
- * // yellow colors in the map.
55
- * const layerView = await view.whenLayerView(layer);
56
- * layerView.highlightOptions = {
57
- * color: [255, 255, 0, 1],
58
- * haloOpacity: 0.9,
59
- * fillOpacity: 0.2
60
- * };
61
- */
62
- get highlightOptions(): HighlightOptions | null | undefined;
63
- set highlightOptions(value: HighlightOptionsProperties | null | undefined);
64
10
  /**
65
11
  * An object that provides the user access to
66
12
  * [PixelBlock#pixels](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-PixelBlock.html#pixels) and their values in the layer.
@@ -1,7 +1,11 @@
1
+ import type LineOfSightLayer from "../../layers/LineOfSightLayer.js";
2
+ import type LineOfSightAnalysisView3D from "../3d/analysis/LineOfSightAnalysisView3D.js";
1
3
  import type LayerView from "./LayerView.js";
4
+ import type { AbortOptions } from "../../core/promiseUtils.js";
5
+ import type { LineOfSightPlacementResult } from "../3d/analysis/LineOfSight/types.js";
2
6
  import type { LayerViewProperties } from "./LayerView.js";
3
7
 
4
- export interface LineOfSightLayerViewProperties extends LayerViewProperties {}
8
+ export interface LineOfSightLayerViewProperties extends LayerViewProperties, Partial<Pick<LineOfSightLayerView, "interactive">> {}
5
9
 
6
10
  /**
7
11
  * Represents the [LayerView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html) of a [LineOfSightLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-LineOfSightLayer.html)
@@ -10,8 +14,8 @@ export interface LineOfSightLayerViewProperties extends LayerViewProperties {}
10
14
  * The line of sight layer view controls whether the [LineOfSightLayer#analysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-LineOfSightLayer.html#analysis) in its associated
11
15
  * [LineOfSightLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-LineOfSightLayer.html) can be created or edited interactively.
12
16
  *
13
- * It allows to create an observer and/or targets interactively using the {@link views/layers/LineOfSightLayerView#place} method, query the {@link views/layers/LineOfSightLayerView#results},
14
- * or make an existing analysis editable by enabling the {@link views/layers/LineOfSightLayerView#interactive} property.
17
+ * It allows to create an observer and/or targets interactively using the [place()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LineOfSightLayerView.html#place) method, query the [results](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LineOfSightLayerView.html#results),
18
+ * or make an existing analysis editable by enabling the [interactive](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LineOfSightLayerView.html#interactive) property.
15
19
  *
16
20
  * The view for the layer can be retrieved using [SceneView#whenLayerView()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#whenLayerView).
17
21
  *
@@ -31,4 +35,73 @@ export interface LineOfSightLayerViewProperties extends LayerViewProperties {}
31
35
  * @see [LineOfSightAnalysisView3D](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-3d-analysis-LineOfSightAnalysisView3D.html)
32
36
  * @see [Line Of Sight component](https://developers.arcgis.com/javascript/latest/references/map-components/arcgis-line-of-sight/)
33
37
  */
34
- export default abstract class LineOfSightLayerView extends LayerView {}
38
+ export default abstract class LineOfSightLayerView extends LayerView {
39
+ /**
40
+ * Enables interactivity for the [layer](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LineOfSightLayerView.html#layer). When set to `true`, manipulators will be displayed,
41
+ * allowing users to click and drag to edit the layer's
42
+ * [LineOfSightLayer#analysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-LineOfSightLayer.html#analysis) if it has a valid
43
+ * [LineOfSightAnalysis#observer](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-LineOfSightAnalysis.html#observer) and
44
+ * [LineOfSightAnalysis#targets](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-LineOfSightAnalysis.html#targets). Right-clicking a target will remove it.
45
+ *
46
+ * This property is automatically set to `true` when the analysis is assigned to a
47
+ * [Line Of Sight component](https://developers.arcgis.com/javascript/latest/references/map-components/arcgis-line-of-sight/).
48
+ *
49
+ * @default false
50
+ */
51
+ accessor interactive: boolean;
52
+ /** The layer being viewed. */
53
+ get layer(): LineOfSightLayer;
54
+ /**
55
+ * Analysis results for each target.
56
+ *
57
+ * The order of results matches the order of targets, so if the index of the target is known the collection can be
58
+ * indexed directly:
59
+ *
60
+ * ```js
61
+ * const layerView = await view.whenLayerView(lineOfSightLayer);
62
+ * const result = layerView.results.at(targetIdx);
63
+ * ```
64
+ *
65
+ * Given a [target](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-LineOfSightAnalysisTarget.html) object, the results collection can also be
66
+ * searched:
67
+ *
68
+ * ```js
69
+ * const result = layerView.results.find((result) => result.target === targetObject);
70
+ * ```
71
+ */
72
+ get results(): LineOfSightAnalysisView3D["results"];
73
+ /**
74
+ * Starts the interactive placement of an observer and/or targets on the [layer](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LineOfSightLayerView.html#layer)'s
75
+ * [LineOfSightLayer#analysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-LineOfSightLayer.html#analysis).
76
+ *
77
+ * If the analysis does not have a valid observer yet, this method will allow placing an observer, which can be followed
78
+ * by zero or more targets. Otherwise, if it already has a valid observer, it will allow placing targets.
79
+ *
80
+ * The placement operation will finish when the user presses the escape key.
81
+ * To stop the placing programmatically, pass an abort signal as an argument when calling the method.
82
+ * The promise resolves when the operation is productive, i.e. an oberver or any targets were added.
83
+ * Otherwise, if nothing was added or signal was aborted, the promise is rejected.
84
+ *
85
+ * Calling this method sets [interactive](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LineOfSightLayerView.html#interactive) to `true`.
86
+ *
87
+ * @param options - An object specifying additional options.
88
+ * @returns A promise
89
+ * which resolves when the operation is completed successfully - i.e. the user places an observer and/or target(s),
90
+ * leaving the analysis in a valid state. Otherwise, the promise is rejected.
91
+ * @since 4.33
92
+ * @example
93
+ * const abortController = new AbortController();
94
+ *
95
+ * try {
96
+ * await layerView.place({ signal: abortController.signal });
97
+ * } catch (error) {
98
+ * if (error.name === "AbortError") {
99
+ * console.log("Placement operation was cancelled.");
100
+ * }
101
+ * }
102
+ *
103
+ * // cancel the placement operation at some later point
104
+ * abortController.abort();
105
+ */
106
+ place(options?: AbortOptions | null | undefined): Promise<LineOfSightPlacementResult>;
107
+ }
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"./LayerView.js";import{LineOfSightLayerViewMixin as i}from"./LineOfSightLayerViewMixin.js";class r extends(i(e)){}export{r as default};
5
+ import{__decorate as e}from"tslib";import t from"../../core/Collection.js";import{createAbortError as r}from"../../core/promiseUtils.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import i from"./LayerView.js";class o extends i{constructor(){super(...arguments),this.layer=null}get interactive(){return this.analysisView?.interactive??!1}set interactive(e){null!=this.analysisView&&(this.analysisView.interactive=e)}get results(){return this.analysisView?.results??new t}place(e){if(null!=this.analysisView)return this.analysisView.place(e);throw r()}}e([s()],o.prototype,"layer",void 0),e([s()],o.prototype,"interactive",null),e([s({readOnly:!0})],o.prototype,"results",null);export{o as default};
@@ -1,8 +1,11 @@
1
+ import type Viewshed from "../../analysis/Viewshed.js";
2
+ import type ViewshedLayer from "../../layers/ViewshedLayer.js";
1
3
  import type LayerView from "./LayerView.js";
2
- import type { ViewshedLayerViewMixin, ViewshedLayerViewMixinProperties } from "./ViewshedLayerViewMixin.js";
4
+ import type { AbortOptions } from "../../core/promiseUtils.js";
5
+ import type { ViewshedPlacementResult } from "../3d/analysis/Viewshed/types.js";
3
6
  import type { LayerViewProperties } from "./LayerView.js";
4
7
 
5
- export interface ViewshedLayerViewProperties extends LayerViewProperties, ViewshedLayerViewMixinProperties {}
8
+ export interface ViewshedLayerViewProperties extends LayerViewProperties, Partial<Pick<ViewshedLayerView, "interactive" | "selectedViewshed">> {}
6
9
 
7
10
  /**
8
11
  * Represents the [LayerView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html) of a [ViewshedLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ViewshedLayer.html)
@@ -13,7 +16,7 @@ export interface ViewshedLayerViewProperties extends LayerViewProperties, Viewsh
13
16
  *
14
17
  * It allows to create new viewsheds interactively using the [place()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ViewshedLayerView.html#place) method,
15
18
  * or to make existing viewsheds selectable and editable by enabling the [interactive](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ViewshedLayerView.html#interactive) property.
16
- * To select a viewshed, hover and click on its field-of-view manipulators.
19
+ * To select a viewshed, hover and click on any of its manipulators.
17
20
  *
18
21
  * The view for the layer can be retrieved using [SceneView#whenLayerView()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#whenLayerView).
19
22
  *
@@ -33,5 +36,93 @@ export interface ViewshedLayerViewProperties extends LayerViewProperties, Viewsh
33
36
  * @see [ViewshedAnalysisView3D](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-3d-analysis-ViewshedAnalysisView3D.html)
34
37
  * @see [Sample - ViewshedLayer in slides](https://developers.arcgis.com/javascript/latest/sample-code/layers-viewshed/)
35
38
  */
36
- export default abstract class ViewshedLayerView extends ViewshedLayerViewSuperclass {}
37
- declare const ViewshedLayerViewSuperclass: typeof LayerView & typeof ViewshedLayerViewMixin
39
+ export default abstract class ViewshedLayerView extends LayerView {
40
+ /**
41
+ * Enables interactivity for the [layer](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ViewshedLayerView.html#layer). When set to `true` and the layer's
42
+ * [ViewshedLayer#source](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ViewshedLayer.html#source) includes any
43
+ * valid [ViewshedAnalysis#viewsheds](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-ViewshedAnalysis.html#viewsheds), they become selectable and editable.
44
+ *
45
+ * @default false
46
+ */
47
+ accessor interactive: boolean;
48
+ /** The layer being viewed. */
49
+ get layer(): ViewshedLayer;
50
+ /**
51
+ * The selected viewshed. If [interactive](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ViewshedLayerView.html#interactive) is `true`, any viewshed in the
52
+ * [layer](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ViewshedLayerView.html#layer) can be selected by clicking on it in the view. As long as [interactive](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ViewshedLayerView.html#interactive)
53
+ * remains `true`, the properties of the selected viewshed can be edited by interacting with
54
+ * manipulators in the view.
55
+ */
56
+ accessor selectedViewshed: Viewshed | null | undefined;
57
+ /**
58
+ * Starts the interactive creation of new viewsheds and adds them to the layer
59
+ * [ViewshedLayer#source](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ViewshedLayer.html#source).
60
+ *
61
+ * The first click in the scene places the observer point and the second sets the viewshed's orientation.
62
+ *
63
+ * The creation process will finish when the user double-clicks the mouse or presses the escape key.
64
+ * To stop the creation programmatically, pass an abort signal as an argument when calling the method.
65
+ *
66
+ * This method is similar to the [place()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ViewshedLayerView.html#place) method, but it allows to create multiple viewsheds in a row.
67
+ *
68
+ * Calling this method sets [interactive](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ViewshedLayerView.html#interactive) to `true`.
69
+ *
70
+ * > [!WARNING]
71
+ * >
72
+ * > Note that when placing viewsheds interactively, the viewshed is created with a 1.5 meter vertical offset from the scene.
73
+ * > _This behavior is subject to change in a future release._
74
+ *
75
+ * @param options - An object specifying additional options.
76
+ * @returns A promise which resolves when creation is completed successfully or rejected if it is
77
+ * canceled.
78
+ * @example
79
+ * const abortController = new AbortController();
80
+ *
81
+ * try {
82
+ * await viewshedLayerView.createViewsheds({ signal: abortController.signal });
83
+ * } catch (error) {
84
+ * if (error.name === "AbortError") {
85
+ * console.log("Creation operation was cancelled.");
86
+ * }
87
+ * }
88
+ *
89
+ * // cancel the placement operation at some later point
90
+ * abortController.abort();
91
+ */
92
+ createViewsheds(options?: AbortOptions | null | undefined): Promise<void>;
93
+ /**
94
+ * Starts the interactive placement of a single viewshed, adding it to the [layer](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ViewshedLayerView.html#layer)'s
95
+ * [ViewshedLayer#source](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ViewshedLayer.html#source).
96
+ *
97
+ * The first click in the scene places the observer point and the second sets the viewshed's orientation.
98
+ *
99
+ * The placement operation will finish when the user presses the escape key.
100
+ * To stop the placing programmatically, pass an abort signal as an argument when calling the method.
101
+ *
102
+ * Calling this method sets [interactive](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-ViewshedLayerView.html#interactive) to `true`.
103
+ *
104
+ * > [!WARNING]
105
+ * >
106
+ * > Note that when placing viewsheds interactively, the viewshed is created with a 1.5 meter vertical offset from the scene.
107
+ * > _This behavior is subject to change in a future release._
108
+ *
109
+ * @param options - An object specifying additional options.
110
+ * @returns A promise which
111
+ * resolves when the operation is completed successfully or rejected if it is canceled.
112
+ * @since 4.33
113
+ * @example
114
+ * const abortController = new AbortController();
115
+ *
116
+ * try {
117
+ * await viewshedLayerView.place({ signal: abortController.signal });
118
+ * } catch (error) {
119
+ * if (error.name === "AbortError") {
120
+ * console.log("Placement operation was cancelled.");
121
+ * }
122
+ * }
123
+ *
124
+ * // cancel the placement operation at some later point
125
+ * abortController.abort();
126
+ */
127
+ place(options?: AbortOptions | null | undefined): Promise<ViewshedPlacementResult>;
128
+ }
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"./LayerView.js";import{ViewshedLayerViewMixin as i}from"./ViewshedLayerViewMixin.js";class r extends(i(e)){}export{r as default};
5
+ import{__decorate as e}from"tslib";import{createAbortError as s}from"../../core/promiseUtils.js";import{property as i}from"../../core/accessorSupport/decorators.js";import t from"./LayerView.js";class r extends t{constructor(){super(...arguments),this.layer=null}get interactive(){return this.analysisView?.interactive??!1}set interactive(e){null!=this.analysisView&&(this.analysisView.interactive=e)}get selectedViewshed(){return this.analysisView?.selectedViewshed}set selectedViewshed(e){null!=this.analysisView&&(this.analysisView.selectedViewshed=e)}async createViewsheds(e){await(this.analysisView?.createViewsheds(e))}place(e){if(null!=this.analysisView)return this.analysisView.place(e);throw s()}}e([i()],r.prototype,"layer",void 0),e([i()],r.prototype,"interactive",null),e([i()],r.prototype,"selectedViewshed",null);export{r as default};
@@ -3,7 +3,7 @@ import type NavigationActionMap from "./NavigationActionMap.js";
3
3
  import type GamepadSettings from "./gamepad/GamepadSettings.js";
4
4
  import type { NavigationActionMapProperties } from "./NavigationActionMap.js";
5
5
 
6
- export interface NavigationProperties extends Partial<Pick<Navigation, "browserTouchPanEnabled" | "momentumEnabled" | "mouseWheelZoomEnabled">> {
6
+ export interface NavigationProperties extends Partial<Pick<Navigation, "browserTouchPanEnabled" | "momentumEnabled">> {
7
7
  /**
8
8
  * The navigation action map defines the default behavior of the navigation controls.
9
9
  *
@@ -113,25 +113,4 @@ export default abstract class Navigation extends Accessor {
113
113
  * view.navigation.momentumEnabled = false;
114
114
  */
115
115
  accessor momentumEnabled: boolean;
116
- /**
117
- * Indicates whether the view can be zoomed in or out with the mouse wheel.
118
- * When a map occupies part the screen, page navigation may be difficult at times since
119
- * mouse wheel movement over the map can be interpreted as map zooming rather than
120
- * page scrolling. In some cases, setting `mouseWheelZoomEnabled` to `false` can make
121
- * scrollable webpages with maps easier to navigate.
122
- *
123
- * @deprecated since version 4.32. Use [actionMap.mouseWheel](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-navigation-NavigationActionMap.html#mouseWheel) instead.
124
- * @default true
125
- * @since 4.14
126
- * @example
127
- * // To disable mouse wheel zooming in a MapView.
128
- * const view = new MapView({
129
- * container: "viewDiv",
130
- * map: new Map({
131
- * basemap: "streets-vector"
132
- * })
133
- * });
134
- * view.navigation.mouseWheelZoomEnabled = false;
135
- */
136
- accessor mouseWheelZoomEnabled: boolean;
137
116
  }
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as o}from"tslib";import e from"../../core/Accessor.js";import{deprecatedProperty as t}from"../../core/deprecate.js";import a from"../../core/Logger.js";import{property as r,subclass as n}from"../../core/accessorSupport/decorators.js";import s from"./NavigationActionMap.js";import m from"./gamepad/GamepadSettings.js";let p=class extends e{constructor(o){super(o),this.actionMap=new s,this.browserTouchPanEnabled=!0,this.gamepad=new m,this.momentumEnabled=!0}get mouseWheelZoomEnabled(){return"zoom"===this.actionMap.mouseWheel}set mouseWheelZoomEnabled(o){t(a.getLogger(this),"mouseWheelZoomEnabled",{replacement:"actionMap.mouseWheel",version:"4.32",warnOnce:!0}),this.actionMap.mouseWheel=o?"zoom":"none"}};o([r({type:s,nonNullable:!0})],p.prototype,"actionMap",void 0),o([r({type:Boolean})],p.prototype,"browserTouchPanEnabled",void 0),o([r({type:m,nonNullable:!0})],p.prototype,"gamepad",void 0),o([r({type:Boolean})],p.prototype,"momentumEnabled",void 0),o([r({type:Boolean})],p.prototype,"mouseWheelZoomEnabled",null),p=o([n("esri.views.navigation.Navigation")],p);const i=p;export{i as default};
5
+ import{__decorate as o}from"tslib";import t from"../../core/Accessor.js";import{property as e,subclass as a}from"../../core/accessorSupport/decorators.js";import r from"./NavigationActionMap.js";import p from"./gamepad/GamepadSettings.js";let n=class extends t{constructor(o){super(o),this.actionMap=new r,this.browserTouchPanEnabled=!0,this.gamepad=new p,this.momentumEnabled=!0}};o([e({type:r,nonNullable:!0})],n.prototype,"actionMap",void 0),o([e({type:Boolean})],n.prototype,"browserTouchPanEnabled",void 0),o([e({type:p,nonNullable:!0})],n.prototype,"gamepad",void 0),o([e({type:Boolean})],n.prototype,"momentumEnabled",void 0),n=o([a("esri.views.navigation.Navigation")],n);const i=n;export{i as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{removeUnordered as e,filterInPlace as t}from"../../core/arrayUtils.js";import s from"../../core/Handles.js";import"../../core/has.js";import r from"../../core/Logger.js";import{removeMaybe as i}from"../../core/maybe.js";import{recordPerformance as a}from"../../core/performance.js";import n from"../../core/PerformanceSampler.js";import{isAborted as u,createAbortError as _,when as h,isPromiseLike as o,ignoreAbortErrors as E}from"../../core/promiseUtils.js";import{watch as d,initial as T,when as c}from"../../core/reactiveUtils.js";import{signal as m}from"../../core/signal.js";import{Milliseconds as l}from"../../core/time.js";import R from"./debugFlags.js";import{PromiseQueue as g}from"./PromiseQueue.js";import{Yield as I}from"./Yield.js";function p(){return new C}const f={RESOURCE_CONTROLLER_IMMEDIATE:"immediate",RESOURCE_CONTROLLER:"schedule",SLIDE:"slide",STREAM_DATA_LOADER:"stream loader",ELEVATION_QUERY:"elevation query",TERRAIN_SURFACE:"terrain",SURFACE_GEOMETRY_UPDATES:"surface geometry updates",LOD_RENDERER:"LoD renderer",GRAPHICS_CORE:"Graphics3D",I3S_CONTROLLER:"I3S",POINT_CLOUD_LAYER:"point cloud",FEATURE_TILE_FETCHER:"feature fetcher",STREAM_CONTROLLER:"stream controller",OVERLAY:"overlay",OVERLAY_RENDERER:"overlay renderer",STAGE:"stage",GRAPHICS_DECONFLICTOR:"graphics deconflictor",FILTER_VISIBILITY:"graphics filter visibility",SCALE_VISIBILITY:"graphics scale visibility",FRUSTUM_VISIBILITY:"graphics frustum visibility",POINT_OF_INTEREST_FREQUENT:"POI frequent",POINT_OF_INTEREST_INFREQUENT:"POI infrequent",LABELER:"labeler",FEATURE_QUERY_ENGINE:"feature query",FEATURE_TILE_TREE:"feature tile tree",FEATURE_TILE_TREE_ACTIVE:"fast feature tile tree",ELEVATION_ALIGNMENT:"elevation alignment",ELEVATION_ALIGNMENT_SCENE:"elevation alignment scene",TEXT_TEXTURE_ATLAS:"text texture atlas",TEXTURE_UNLOAD:"texture unload",LINE_OF_SIGHT_TOOL:"line of sight tool",LINE_OF_SIGHT_TOOL_INTERACTIVE:"interactive line of sight tool",VOLUME_MEASUREMENT:"volume measurement",ELEVATION_PROFILE:"elevation profile",SNAPPING:"snapping",SHADOW_ACCUMULATOR:"shadow accumulator",CLOUDS_GENERATOR:"clouds generator",FLOW_GENERATOR:"flow generator",MAPVIEW_FETCH_QUEUE:"mapview fetch queue",MAPVIEW_LAYERVIEW_UPDATE:"mapview layerview update",MAPVIEW_VECTOR_TILE_PARSING_QUEUE:"mapview vector tile parsing queue",NONE:0,TEST_PRIO:1},L=0,O=new Map([[f.RESOURCE_CONTROLLER_IMMEDIATE,L],[f.RESOURCE_CONTROLLER,4],[f.SLIDE,L],[f.STREAM_DATA_LOADER,L],[f.ELEVATION_QUERY,L],[f.TERRAIN_SURFACE,1],[f.SURFACE_GEOMETRY_UPDATES,1],[f.LOD_RENDERER,2],[f.GRAPHICS_CORE,2],[f.I3S_CONTROLLER,2],[f.POINT_CLOUD_LAYER,2],[f.FEATURE_TILE_FETCHER,2],[f.STREAM_CONTROLLER,2],[f.CLOUDS_GENERATOR,2],[f.OVERLAY,4],[f.OVERLAY_RENDERER,4],[f.STAGE,4],[f.GRAPHICS_DECONFLICTOR,4],[f.FILTER_VISIBILITY,4],[f.SCALE_VISIBILITY,4],[f.FRUSTUM_VISIBILITY,4],[f.POINT_OF_INTEREST_FREQUENT,6],[f.POINT_OF_INTEREST_INFREQUENT,30],[f.LABELER,8],[f.FEATURE_QUERY_ENGINE,8],[f.FEATURE_TILE_TREE,16],[f.FEATURE_TILE_TREE_ACTIVE,L],[f.ELEVATION_ALIGNMENT,12],[f.ELEVATION_ALIGNMENT_SCENE,14],[f.TEXT_TEXTURE_ATLAS,12],[f.TEXTURE_UNLOAD,12],[f.LINE_OF_SIGHT_TOOL,16],[f.LINE_OF_SIGHT_TOOL_INTERACTIVE,L],[f.VOLUME_MEASUREMENT,4],[f.SNAPPING,L],[f.SHADOW_ACCUMULATOR,30],[f.FLOW_GENERATOR,12],[f.MAPVIEW_FETCH_QUEUE,L],[f.MAPVIEW_LAYERVIEW_UPDATE,2],[f.MAPVIEW_VECTOR_TILE_PARSING_QUEUE,L]]);function A(e){return O.has(e)?O.get(e):"number"==typeof e?e:1}const N=l(6.5),b=l(1),S=l(30),U=l(1e3/30),k=l(100),P=.9;class C{get updating(){return this._updating.value}_updatingChanged(){this._updating.value=this._tasks.some(e=>e.needsUpdate)}constructor(){this._updating=m(!0),this._microTaskQueued=!1,this._frameNumber=0,this.performanceInfo={total:new n("total"),tasks:new Map},this._frameTaskTimes=new Map,this._budget=new y,this.state=1,this._tasks=new Array,this._runQueue=new Array,this._load=0,this._forceTask=!1,this._debug=!1,this._debugHandle=d(()=>R.SCHEDULER_LOG_SLOW_TASKS,e=>this._debug=e,T);for(const e of Object.keys(f))this.performanceInfo.tasks.set(f[e],new n(String(f[e])))}destroy(){this._tasks.forEach(e=>e.remove()),this._tasks.length=0,this._runQueue.length=0,i(this._debugHandle),this._microTaskQueued=!1,this._updatingChanged()}taskRunningChanged(e){this._updatingChanged(),e&&this._budget.remaining>0&&!this._microTaskQueued&&(this._microTaskQueued=!0,queueMicrotask(()=>{this._microTaskQueued&&(this._microTaskQueued=!1,this._budget.remaining>0&&this._schedule()&&this._runFrame())}))}registerTask(e,t){const s=new F(this,e,t);return this._tasks.push(s),this._updatingChanged(),this.performanceInfo.tasks.has(e)||this.performanceInfo.tasks.set(e,new n(e)),s}get load(){return this._load}frame(e){if(this._startFrameTaskTimes(),this._updateBudget(e)){const e=this._budget.now();this._runFrame();const t=this._budget.now();this._recordFrameTaskTimes(t-e);const s=2===this.state?"Idle":1===this.state?"Interacting":"Animating";return a(`${s} Frame Tasks`,e,t,"Maps SDK","Scheduling"),!0}return this._recordFrameTaskTimes(0),!1}_updateBudget(e){this._test&&(this._test.usedBudget=0),++this._frameNumber;let t=N,s=e.frameDuration,r=b;switch(this.state){case 2:t=l(0),s=l(Math.max(k,e.frameDuration)),r=S;break;case 1:s=l(Math.max(U,e.frameDuration))}return s=l(s-e.elapsedFrameTime-t),2!==this.state&&s<b&&!this._forceTask?(this._forceTask=!0,!1):(s=l(Math.max(s,r)),this._budget.reset(s),this._updateLoad(),this._schedule())}_runFrame(){this._forceTask=!1,this._microTaskQueued=!1,this._run(),this._test&&(this._test.usedBudget=this._budget.elapsed)}stopFrame(){this._budget.reset(l(0)),this._budget.madeProgress()}removeTask(t){e(this._tasks,t),e(this._runQueue,t),this._updatingChanged()}_updateTask(e){this._tasks.forEach(t=>{t.name===e&&t.setPriority(e)})}_getState(e){if(this._runQueue.some(t=>t.name===e))return"s";let t="i";return this._tasks.forEach(s=>{s.name===e&&s.needsUpdate&&(s.schedulePriority<=1?t="r":"r"!==t&&(t="w"))}),t}_getRuntime(e){let t=0;return this._tasks.forEach(s=>{s.name===e&&(t+=s.runtime)}),t}_resetRuntimes(){this._tasks.forEach(e=>e.runtime=0)}_getRunning(){const e=new Map;if(this._tasks.forEach(t=>{t.needsUpdate&&e.set(t.name,(e.get(t.name)||0)+1)}),0===e.size)return null;let t="";return e.forEach((e,s)=>{t+=e>1?` ${e}x ${s}`:` ${s}`}),t}_updateLoad(){const e=this._tasks.reduce((e,t)=>t.needsUpdate?++e:e,0);this._load=this._load*P+e*(1-P)}_schedule(){for(t(this._runQueue,e=>!!e.needsUpdate||(e.schedulePriority=e.basePriority,!1)),this._tasks.forEach(e=>{e.basePriority===L&&e.needsUpdate&&!this._runQueue.includes(e)&&e.blockFrame!==this._frameNumber&&this._runQueue.unshift(e)});0===this._runQueue.length;){let e=!1,t=0;if(this._tasks.forEach(s=>{if(s.needsUpdate&&0!==s.schedulePriority&&s.basePriority!==L&&s.blockFrame!==this._frameNumber)if(e=!0,t=Math.max(t,s.basePriority),1===s.schedulePriority)s.schedulePriority=0,this._runQueue.push(s);else--s.schedulePriority}),!e)return this._updatingChanged(),!1}return this._updatingChanged(),!0}_run(){do{for(;this._runQueue.length>0;){const t=this._budget.now(),s=this._runQueue.pop();this._budget.resetProgress();try{s.task.runTask(this._budget)===I&&(s.blockFrame=this._frameNumber)}catch(e){r.getLogger("esri.views.support.Scheduler").error(`Exception in task "${s.name}"`,e),s.blockFrame=this._frameNumber}!this._budget.hasProgressed&&s.blockFrame!==this._frameNumber&&s.needsUpdate&&(s.name,f.I3S_CONTROLLER,s.blockFrame=this._frameNumber),s.schedulePriority=s.basePriority;const i=this._budget.now(),n=i-t;if(a(`${s.name}`,t,i,"Maps SDK","Scheduling"),s.runtime+=n,this._frameTaskTimes.set(s.priority,this._frameTaskTimes.get(s.priority)+n),this._budget.remaining<=0)return void this._updatingChanged()}}while(this._schedule());this._updatingChanged()}_startFrameTaskTimes(){for(const e of Object.keys(f))this._frameTaskTimes.set(f[e],0)}_recordFrameTaskTimes(e){this._frameTaskTimes.forEach((e,t)=>this.performanceInfo.tasks.get(t).push(e)),this.performanceInfo.total.push(e)}get test(){return this._test}}class F{get task(){return this._task.value}get readyToRun(){return this._queue.readyToRun}get updating(){return this._queue.updating}constructor(e,t,r){this._scheduler=e,this.name=t,this.blockFrame=0,this.runtime=0,this._queue=new g,this._handles=new s,this._basePriority=A(t),this.schedulePriority=this._basePriority,this._task=m(null!=r?r:this._queue),this._handles.add(c(()=>this.task.readyToRun,t=>e.taskRunningChanged(t)))}remove(){this.processQueue(w),this._scheduler.removeTask(this),this.schedule=Q.schedule,this.reschedule=Q.reschedule,this.scheduleGenerator=Q.scheduleGenerator,this._handles.destroy()}get basePriority(){return this._basePriority}setPriority(e){if(this.name===e)return;this.name=e;const t=A(e);this._basePriority!==L&&0===this.schedulePriority||(this.schedulePriority=t),this._basePriority=t}get priority(){return this.name}set priority(e){this.setPriority(e)}get needsUpdate(){return this.readyToRun||!this.task.destroyed&&this.task.readyToRun}schedule(e,t,s){return this._queue.push(e,t,s)}reschedule(e,t,s){return this._queue.unshift(e,t,s)}scheduleGenerator(e,t,s){return this._queue.pushGenerator(e,t,s)}processQueue(e){return this._queue.runTask(e)}}class y{constructor(){this._begin=performance?.now()??0,this._budget=0,this._done=!1,this._progressed=!1,this._enabled=!0}run(e){return!this.done&&(!0===e()&&this.madeProgress(),!0)}get done(){return this._done}get budget(){return this._budget}madeProgress(){return this._progressed=!0,this._done=this.elapsed>=this._budget&&this._enabled,this._done}get enabled(){return this._enabled}set enabled(e){this._enabled=e}reset(e){this._begin=this.now(),this._budget=e,this.resetProgress()}get remaining(){return Math.max(this._budget-this.elapsed,0)}now(){return performance.now()}get elapsed(){return this.now()-this._begin}resetProgress(){this._progressed=!1,this._done=!1}get hasProgressed(){return this._progressed}}const w=new y;function M(e){const t=new y;return t.reset(e),t}w.enabled=!1;class D{remove(){}processQueue(){}schedule(e,t,s){try{if(u(t)){const e=_();return s?Promise.resolve(s(e)):Promise.reject(e)}return h(e(w))}catch(r){return Promise.reject(r)}}reschedule(e,t,s){return this.schedule(e,t,s)}async scheduleGenerator(e,t,s){if(u(t)){const e=_();if(s)return s(e);throw e}const r=e(w);for(;;){const e=r.next(w),i=o(e)?await e:e;if(u(t)){const e=_();if(s){const t=s(e),i=r.return(null);return o(i)&&await E(i),t}const t=r.throw(e);throw o(t)&&await E(t),e}if(i.done)return i.value}}}const Q=new D;export{Q as ImmediateTask,f as TaskPriority,A as getTaskPriority,M as makeBudget,p as newScheduler,w as noBudget,O as taskPriorities};
5
+ import{removeUnordered as e,filterInPlace as t}from"../../core/arrayUtils.js";import s from"../../core/Handles.js";import"../../core/has.js";import r from"../../core/Logger.js";import{removeMaybe as i}from"../../core/maybe.js";import{recordPerformance as a}from"../../core/performance.js";import n from"../../core/PerformanceSampler.js";import{isAborted as u,createAbortError as _,when as h,isPromiseLike as o,ignoreAbortErrors as E}from"../../core/promiseUtils.js";import{watch as d,initial as T,when as c}from"../../core/reactiveUtils.js";import{signal as m}from"../../core/signal.js";import{Milliseconds as R}from"../../core/time.js";import l from"./debugFlags.js";import{PromiseQueue as g}from"./PromiseQueue.js";import{Yield as I}from"./Yield.js";function A(){return new C}const p={RESOURCE_CONTROLLER_IMMEDIATE:"immediate",RESOURCE_CONTROLLER:"schedule",SLIDE:"slide",STREAM_DATA_LOADER:"stream loader",ELEVATION_QUERY:"elevation query",TERRAIN_SURFACE:"terrain",SURFACE_GEOMETRY_UPDATES:"surface geometry updates",LOD_RENDERER:"LoD renderer",GRAPHICS_CORE:"Graphics3D",I3S_CONTROLLER:"I3S",POINT_CLOUD_LAYER:"point cloud",FEATURE_TILE_FETCHER:"feature fetcher",STREAM_CONTROLLER:"stream controller",OVERLAY:"overlay",OVERLAY_RENDERER:"overlay renderer",STAGE:"stage",GRAPHICS_DECONFLICTOR:"graphics deconflictor",FILTER_VISIBILITY:"graphics filter visibility",SCALE_VISIBILITY:"graphics scale visibility",FRUSTUM_VISIBILITY:"graphics frustum visibility",POINT_OF_INTEREST_FREQUENT:"POI frequent",POINT_OF_INTEREST_INFREQUENT:"POI infrequent",LABELER:"labeler",FEATURE_QUERY_ENGINE:"feature query",FEATURE_TILE_TREE:"feature tile tree",FEATURE_TILE_TREE_ACTIVE:"fast feature tile tree",ELEVATION_ALIGNMENT:"elevation alignment",ELEVATION_ALIGNMENT_SCENE:"elevation alignment scene",TEXT_TEXTURE_ATLAS:"text texture atlas",TEXTURE_UNLOAD:"texture unload",LINE_OF_SIGHT_TOOL:"line of sight tool",LINE_OF_SIGHT_TOOL_INTERACTIVE:"interactive line of sight tool",VOLUME_MEASUREMENT:"volume measurement",ELEVATION_PROFILE:"elevation profile",SNAPPING:"snapping",SHADOW_ACCUMULATOR:"shadow accumulator",CLOUDS_GENERATOR:"clouds generator",FLOW_GENERATOR:"flow generator",GAUSSIAN_SPLAT_SORTING:"gaussian splat sorting",GAUSSIAN_SPLAT_TEXTURE_ATLAS:"gaussian splat texture atlas",MAPVIEW_FETCH_QUEUE:"mapview fetch queue",MAPVIEW_LAYERVIEW_UPDATE:"mapview layerview update",MAPVIEW_VECTOR_TILE_PARSING_QUEUE:"mapview vector tile parsing queue",NONE:0,TEST_PRIO:1},f=0,L=new Map([[p.RESOURCE_CONTROLLER_IMMEDIATE,f],[p.RESOURCE_CONTROLLER,4],[p.SLIDE,f],[p.STREAM_DATA_LOADER,f],[p.ELEVATION_QUERY,f],[p.TERRAIN_SURFACE,1],[p.SURFACE_GEOMETRY_UPDATES,1],[p.LOD_RENDERER,2],[p.GRAPHICS_CORE,2],[p.I3S_CONTROLLER,2],[p.POINT_CLOUD_LAYER,2],[p.FEATURE_TILE_FETCHER,2],[p.STREAM_CONTROLLER,2],[p.CLOUDS_GENERATOR,2],[p.OVERLAY,4],[p.OVERLAY_RENDERER,4],[p.STAGE,4],[p.GRAPHICS_DECONFLICTOR,4],[p.FILTER_VISIBILITY,4],[p.SCALE_VISIBILITY,4],[p.FRUSTUM_VISIBILITY,4],[p.POINT_OF_INTEREST_FREQUENT,6],[p.POINT_OF_INTEREST_INFREQUENT,30],[p.LABELER,8],[p.FEATURE_QUERY_ENGINE,8],[p.FEATURE_TILE_TREE,16],[p.FEATURE_TILE_TREE_ACTIVE,f],[p.ELEVATION_ALIGNMENT,12],[p.ELEVATION_ALIGNMENT_SCENE,14],[p.TEXT_TEXTURE_ATLAS,12],[p.TEXTURE_UNLOAD,12],[p.LINE_OF_SIGHT_TOOL,16],[p.LINE_OF_SIGHT_TOOL_INTERACTIVE,f],[p.VOLUME_MEASUREMENT,4],[p.SNAPPING,f],[p.SHADOW_ACCUMULATOR,30],[p.FLOW_GENERATOR,12],[p.GAUSSIAN_SPLAT_SORTING,2],[p.GAUSSIAN_SPLAT_TEXTURE_ATLAS,12],[p.MAPVIEW_FETCH_QUEUE,f],[p.MAPVIEW_LAYERVIEW_UPDATE,2],[p.MAPVIEW_VECTOR_TILE_PARSING_QUEUE,f]]);function O(e){return L.has(e)?L.get(e):"number"==typeof e?e:1}const N=R(6.5),S=R(1),U=R(30),b=R(1e3/30),P=R(100),k=.9;class C{get updating(){return this._updating.value}_updatingChanged(){this._updating.value=this._tasks.some(e=>e.needsUpdate)}constructor(){this._updating=m(!0),this._microTaskQueued=!1,this._frameNumber=0,this.performanceInfo={total:new n("total"),tasks:new Map},this._frameTaskTimes=new Map,this._budget=new y,this.state=1,this._tasks=new Array,this._runQueue=new Array,this._load=0,this._forceTask=!1,this._debug=!1,this._debugHandle=d(()=>l.SCHEDULER_LOG_SLOW_TASKS,e=>this._debug=e,T);for(const e of Object.keys(p))this.performanceInfo.tasks.set(p[e],new n(String(p[e])))}destroy(){this._tasks.forEach(e=>e.remove()),this._tasks.length=0,this._runQueue.length=0,i(this._debugHandle),this._microTaskQueued=!1,this._updatingChanged()}taskRunningChanged(e){this._updatingChanged(),e&&this._budget.remaining>0&&!this._microTaskQueued&&(this._microTaskQueued=!0,queueMicrotask(()=>{this._microTaskQueued&&(this._microTaskQueued=!1,this._budget.remaining>0&&this._schedule()&&this._runFrame())}))}registerTask(e,t){const s=new F(this,e,t);return this._tasks.push(s),this._updatingChanged(),this.performanceInfo.tasks.has(e)||this.performanceInfo.tasks.set(e,new n(e)),s}get load(){return this._load}frame(e){if(this._startFrameTaskTimes(),this._updateBudget(e)){const e=this._budget.now();this._runFrame();const t=this._budget.now();this._recordFrameTaskTimes(t-e);const s=2===this.state?"Idle":1===this.state?"Interacting":"Animating";return a(`${s} Frame Tasks`,e,t,"Maps SDK","Scheduling"),!0}return this._recordFrameTaskTimes(0),!1}_updateBudget(e){this._test&&(this._test.usedBudget=0),++this._frameNumber;let t=N,s=e.frameDuration,r=S;switch(this.state){case 2:t=R(0),s=R(Math.max(P,e.frameDuration)),r=U;break;case 1:s=R(Math.max(b,e.frameDuration))}return s=R(s-e.elapsedFrameTime-t),2!==this.state&&s<S&&!this._forceTask?(this._forceTask=!0,!1):(s=R(Math.max(s,r)),this._budget.reset(s),this._updateLoad(),this._schedule())}_runFrame(){this._forceTask=!1,this._microTaskQueued=!1,this._run(),this._test&&(this._test.usedBudget=this._budget.elapsed)}stopFrame(){this._budget.reset(R(0)),this._budget.madeProgress()}removeTask(t){e(this._tasks,t),e(this._runQueue,t),this._updatingChanged()}_updateTask(e){this._tasks.forEach(t=>{t.name===e&&t.setPriority(e)})}_getState(e){if(this._runQueue.some(t=>t.name===e))return"s";let t="i";return this._tasks.forEach(s=>{s.name===e&&s.needsUpdate&&(s.schedulePriority<=1?t="r":"r"!==t&&(t="w"))}),t}_getRuntime(e){let t=0;return this._tasks.forEach(s=>{s.name===e&&(t+=s.runtime)}),t}_resetRuntimes(){this._tasks.forEach(e=>e.runtime=0)}_getRunning(){const e=new Map;if(this._tasks.forEach(t=>{t.needsUpdate&&e.set(t.name,(e.get(t.name)||0)+1)}),0===e.size)return null;let t="";return e.forEach((e,s)=>{t+=e>1?` ${e}x ${s}`:` ${s}`}),t}_updateLoad(){const e=this._tasks.reduce((e,t)=>t.needsUpdate?++e:e,0);this._load=this._load*k+e*(1-k)}_schedule(){for(t(this._runQueue,e=>!!e.needsUpdate||(e.schedulePriority=e.basePriority,!1)),this._tasks.forEach(e=>{e.basePriority===f&&e.needsUpdate&&!this._runQueue.includes(e)&&e.blockFrame!==this._frameNumber&&this._runQueue.unshift(e)});0===this._runQueue.length;){let e=!1,t=0;if(this._tasks.forEach(s=>{if(s.needsUpdate&&0!==s.schedulePriority&&s.basePriority!==f&&s.blockFrame!==this._frameNumber)if(e=!0,t=Math.max(t,s.basePriority),1===s.schedulePriority)s.schedulePriority=0,this._runQueue.push(s);else--s.schedulePriority}),!e)return this._updatingChanged(),!1}return this._updatingChanged(),!0}_run(){do{for(;this._runQueue.length>0;){const t=this._budget.now(),s=this._runQueue.pop();this._budget.resetProgress();try{s.task.runTask(this._budget)===I&&(s.blockFrame=this._frameNumber)}catch(e){r.getLogger("esri.views.support.Scheduler").error(`Exception in task "${s.name}"`,e),s.blockFrame=this._frameNumber}!this._budget.hasProgressed&&s.blockFrame!==this._frameNumber&&s.needsUpdate&&(s.name,p.I3S_CONTROLLER,s.blockFrame=this._frameNumber),s.schedulePriority=s.basePriority;const i=this._budget.now(),n=i-t;if(a(`${s.name}`,t,i,"Maps SDK","Scheduling"),s.runtime+=n,this._frameTaskTimes.set(s.priority,this._frameTaskTimes.get(s.priority)+n),this._budget.remaining<=0)return void this._updatingChanged()}}while(this._schedule());this._updatingChanged()}_startFrameTaskTimes(){for(const e of Object.keys(p))this._frameTaskTimes.set(p[e],0)}_recordFrameTaskTimes(e){this._frameTaskTimes.forEach((e,t)=>this.performanceInfo.tasks.get(t).push(e)),this.performanceInfo.total.push(e)}get test(){return this._test}}class F{get task(){return this._task.value}get readyToRun(){return this._queue.readyToRun}get updating(){return this._queue.updating}constructor(e,t,r){this._scheduler=e,this.name=t,this.blockFrame=0,this.runtime=0,this._queue=new g,this._handles=new s,this._basePriority=O(t),this.schedulePriority=this._basePriority,this._task=m(null!=r?r:this._queue),this._handles.add(c(()=>this.task.readyToRun,t=>e.taskRunningChanged(t)))}remove(){this.processQueue(w),this._scheduler.removeTask(this),this.schedule=D.schedule,this.reschedule=D.reschedule,this.scheduleGenerator=D.scheduleGenerator,this._handles.destroy()}get basePriority(){return this._basePriority}setPriority(e){if(this.name===e)return;this.name=e;const t=O(e);this._basePriority!==f&&0===this.schedulePriority||(this.schedulePriority=t),this._basePriority=t}get priority(){return this.name}set priority(e){this.setPriority(e)}get needsUpdate(){return this.readyToRun||!this.task.destroyed&&this.task.readyToRun}schedule(e,t,s){return this._queue.push(e,t,s)}reschedule(e,t,s){return this._queue.unshift(e,t,s)}scheduleGenerator(e,t,s){return this._queue.pushGenerator(e,t,s)}processQueue(e){return this._queue.runTask(e)}}class y{constructor(){this._begin=performance?.now()??0,this._budget=0,this._done=!1,this._progressed=!1,this._enabled=!0}run(e){return!this.done&&(!0===e()&&this.madeProgress(),!0)}get done(){return this._done}get budget(){return this._budget}madeProgress(){return this._progressed=!0,this._done=this.elapsed>=this._budget&&this._enabled,this._done}get enabled(){return this._enabled}set enabled(e){this._enabled=e}reset(e){this._begin=this.now(),this._budget=e,this.resetProgress()}get remaining(){return Math.max(this._budget-this.elapsed,0)}now(){return performance.now()}get elapsed(){return this.now()-this._begin}resetProgress(){this._progressed=!1,this._done=!1}get hasProgressed(){return this._progressed}}const w=new y;function M(e){const t=new y;return t.reset(e),t}w.enabled=!1;class G{remove(){}processQueue(){}schedule(e,t,s){try{if(u(t)){const e=_();return s?Promise.resolve(s(e)):Promise.reject(e)}return h(e(w))}catch(r){return Promise.reject(r)}}reschedule(e,t,s){return this.schedule(e,t,s)}async scheduleGenerator(e,t,s){if(u(t)){const e=_();if(s)return s(e);throw e}const r=e(w);for(;;){const e=r.next(w),i=o(e)?await e:e;if(u(t)){const e=_();if(s){const t=s(e),i=r.return(null);return o(i)&&await E(i),t}const t=r.throw(e);throw o(t)&&await E(t),e}if(i.done)return i.value}}}const D=new G;export{D as ImmediateTask,p as TaskPriority,O as getTaskPriority,M as makeBudget,A as newScheduler,w as noBudget,L as taskPriorities};