@arcgis/core 4.33.0-next.20250326 → 4.33.0-next.20250328

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 (319) hide show
  1. package/applications/Components/viewUtils.d.ts +3 -0
  2. package/applications/Components/viewUtils.js +5 -0
  3. package/applications/KnowledgeStudio/layerInternalAccessUtils.d.ts +1 -0
  4. package/applications/KnowledgeStudio/layerInternalAccessUtils.js +1 -1
  5. package/arcade/arcadeAsyncRuntime.js +1 -1
  6. package/arcade/arcadeCompiler.js +1 -1
  7. package/arcade/arcadeRuntime.js +1 -1
  8. package/arcade/functions/date.js +1 -1
  9. package/arcade/functions/feature.js +1 -1
  10. package/arcade/functions/featuresetbase.js +1 -1
  11. package/arcade/functions/featuresetgeom.js +1 -1
  12. package/arcade/functions/featuresetstats.js +1 -1
  13. package/arcade/functions/featuresetstring.js +1 -1
  14. package/arcade/functions/geomasync.js +1 -1
  15. package/arcade/functions/geometry.js +1 -1
  16. package/arcade/functions/geomsync.js +1 -1
  17. package/arcade/functions/knowledgegraph.js +1 -1
  18. package/arcade/functions/maths.js +1 -1
  19. package/arcade/functions/stats.js +1 -1
  20. package/arcade/functions/string.js +1 -1
  21. package/arcade/geometry/functions.js +1 -1
  22. package/arcade/languageUtils.js +1 -1
  23. package/assets/esri/core/workers/RemoteClient.js +1 -1
  24. package/assets/esri/core/workers/chunks/08ea652b7896c1da022d.js +1 -0
  25. package/assets/esri/core/workers/chunks/{66cae76da0582cfa8656.js → 0943695a1dcd21c45e83.js} +1 -1
  26. package/assets/esri/core/workers/chunks/09ca64184bed6abafcd9.js +1 -0
  27. package/assets/esri/core/workers/chunks/{c6bcfa99fb222894fa0e.js → 0a0e5d699ddb7052c5c0.js} +1 -1
  28. package/assets/esri/core/workers/chunks/0a675f9f69b8b13b7443.js +1 -0
  29. package/assets/esri/core/workers/chunks/0eed612e82a279ac8d1e.js +1 -0
  30. package/assets/esri/core/workers/chunks/{cbe22c58b3230b12b31a.js → 13ad4ee2e064d13ca34d.js} +1 -1
  31. package/assets/esri/core/workers/chunks/176e7c7c2a871bcb512e.js +1 -0
  32. package/assets/esri/core/workers/chunks/18d0fe269531b951e309.js +1 -0
  33. package/assets/esri/core/workers/chunks/201db423e3c6f947b77c.js +1 -0
  34. package/assets/esri/core/workers/chunks/213e82a7e3fa5b253ec1.js +1 -0
  35. package/assets/esri/core/workers/chunks/{22618753349eb9d8b3df.js → 222446da9cb58c3c3b7e.js} +1 -1
  36. package/assets/esri/core/workers/chunks/277b61af8982092a4c81.js +1 -0
  37. package/assets/esri/core/workers/chunks/2b07bdb6c4c4a5b2f968.js +1 -0
  38. package/assets/esri/core/workers/chunks/2bda2cfc6e81818d7d33.js +1 -0
  39. package/assets/esri/core/workers/chunks/2cbab0c078d0b844934c.js +1 -0
  40. package/assets/esri/core/workers/chunks/{a68b48fd1a529f69705e.js → 2fcfc21ba38d9919730a.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{193b4fecdfee927d6200.js → 37e4f588a6896f98bce3.js} +1 -1
  42. package/assets/esri/core/workers/chunks/392e64a573f67817db02.js +1 -0
  43. package/assets/esri/core/workers/chunks/3a743653b786b010a57f.js +1 -0
  44. package/assets/esri/core/workers/chunks/3be007f32ea1e18b8b3b.js +1 -0
  45. package/assets/esri/core/workers/chunks/451555af283b32a10fef.js +1 -0
  46. package/assets/esri/core/workers/chunks/{835fa4484c58d9b31c78.js → 460afde071df9f35182d.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{26bedec014488e1fc5e4.js → 4816cf647eca2f4cecc2.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{09c9e4e94f09ba9f4c22.js → 4aa0a58ded4465ea28bd.js} +1 -1
  49. package/assets/esri/core/workers/chunks/4d02e211967384994e5e.js +1 -0
  50. package/assets/esri/core/workers/chunks/4d798da25a726f179089.js +319 -0
  51. package/assets/esri/core/workers/chunks/51339193abddfe37745d.js +1 -0
  52. package/assets/esri/core/workers/chunks/{0a98dc3ea67ce97a6e7b.js → 5269793822e41dd07fe1.js} +1 -1
  53. package/assets/esri/core/workers/chunks/52d160cb7921ae7a4f57.js +1 -0
  54. package/assets/esri/core/workers/chunks/{630a9afdf0523c27ddb6.js → 555c95b149e3a82a4460.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{eab1e3c101158675abba.js → 5660f479c005149bce8d.js} +1 -1
  56. package/assets/esri/core/workers/chunks/5a51c75a2932d9da001a.js +1 -0
  57. package/assets/esri/core/workers/chunks/{37a3533f004bf2e888da.js → 5d01f0b86566d08ba29d.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{0576b035c1654a43ad5c.js → 5de3aee547113bfd59df.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{45eee326f7a649c5a15b.js → 626db8488f9d931cf55c.js} +2 -2
  60. package/assets/esri/core/workers/chunks/{5a6f7360183693f8490d.js → 6339a24874c698594101.js} +1 -1
  61. package/assets/esri/core/workers/chunks/63dade3e1cc7f5b76846.js +1 -0
  62. package/assets/esri/core/workers/chunks/6c378e7a6ca29d530880.js +1 -0
  63. package/assets/esri/core/workers/chunks/71e46e866c23372b0b58.js +1 -0
  64. package/assets/esri/core/workers/chunks/{c591527543fd75a917d4.js → 72c7126dbd27fa48fcdb.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{d459c790a3b89ac53d2d.js → 759c12b0715279e3c0f6.js} +1 -1
  66. package/assets/esri/core/workers/chunks/75a04b073231da70c18d.js +1 -0
  67. package/assets/esri/core/workers/chunks/75fa861b5757551f8fdc.js +1 -0
  68. package/assets/esri/core/workers/chunks/7655be1470ce39f0e494.js +1 -0
  69. package/assets/esri/core/workers/chunks/796cf1c2ca9955595836.js +1 -0
  70. package/assets/esri/core/workers/chunks/79c4f10da8360ee60cd2.js +1 -0
  71. package/assets/esri/core/workers/chunks/{49c346d2fb8538990f45.js → 7d1c39c2a80e20a0595f.js} +1 -1
  72. package/assets/esri/core/workers/chunks/7f36cffc6ed984b7e467.js +1 -0
  73. package/assets/esri/core/workers/chunks/{fa3eeb40e2d732c184d8.js → 7f8c7e3e41e51ab4d612.js} +1 -1
  74. package/assets/esri/core/workers/chunks/80aaf31c8eec3cff2add.js +1 -0
  75. package/assets/esri/core/workers/chunks/82353e59ac6d909dcf41.js +1 -0
  76. package/assets/esri/core/workers/chunks/84d301e1b6b0d0b48f51.js +1 -0
  77. package/assets/esri/core/workers/chunks/86931186095c23e47c0c.js +1 -0
  78. package/assets/esri/core/workers/chunks/86ee278919038260696e.js +39 -0
  79. package/assets/esri/core/workers/chunks/{4496ef270c700078df0c.js → 8752f807c05d1ec215e8.js} +1 -1
  80. package/assets/esri/core/workers/chunks/{59e4e780dcdfed555ca5.js → 8ef5e6f1c606e5e41002.js} +1 -1
  81. package/assets/esri/core/workers/chunks/{55c7c51e56d72f507c22.js → 90afead317186b31b2f9.js} +1 -1
  82. package/assets/esri/core/workers/chunks/90c893959145827961ac.js +1 -0
  83. package/assets/esri/core/workers/chunks/931275cfa2c55eb0f504.js +1 -0
  84. package/assets/esri/core/workers/chunks/{7e0e9ca84490a0c67197.js → 98da74243df03e0cc70d.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{354117429b3a0a0794c9.js → 999e8dbe6f4d0665b3ab.js} +1 -1
  86. package/assets/esri/core/workers/chunks/9c59fc2df8081e65a128.js +1 -0
  87. package/assets/esri/core/workers/chunks/a348ff2dd936c6bf9399.js +1 -0
  88. package/assets/esri/core/workers/chunks/a53e9f5092de715da025.js +1 -0
  89. package/assets/esri/core/workers/chunks/a9b6377f1fef5826f28d.js +1 -0
  90. package/assets/esri/core/workers/chunks/{8063e35dacf8f99471d8.js → aa404aaec843a4f46ab6.js} +1 -1
  91. package/assets/esri/core/workers/chunks/{21016d58428b15f7427c.js → aa712f850fd129ca5ed8.js} +1 -1
  92. package/assets/esri/core/workers/chunks/ab0113d1269675dcd520.js +1 -0
  93. package/assets/esri/core/workers/chunks/aff7c4477e1f0c31fffa.js +1 -0
  94. package/assets/esri/core/workers/chunks/{726e3f413824f02fe689.js → bd2dcc55ac3418421ee5.js} +1 -1
  95. package/assets/esri/core/workers/chunks/bf453744067267e84d1b.js +1 -0
  96. package/assets/esri/core/workers/chunks/c2f38c66fae2cdb57445.js +1 -0
  97. package/assets/esri/core/workers/chunks/c7aa4a8263e21f631004.js +1 -0
  98. package/assets/esri/core/workers/chunks/{b8a4352f83502449ff95.js → cbbbaccc0d3683e1c0fe.js} +1 -1
  99. package/assets/esri/core/workers/chunks/{e4290719c8afc2a4ee8c.js → cc441051a52bfbda9caf.js} +1 -1
  100. package/assets/esri/core/workers/chunks/{3be465c653236d6d8c1f.js → d2c7067bb6654c0e2793.js} +1 -1
  101. package/assets/esri/core/workers/chunks/{bc3f42401131a12fce9b.js → d2eb3802fa003c2d497e.js} +1 -1
  102. package/assets/esri/core/workers/chunks/d3912886ac2910290f43.js +1 -0
  103. package/assets/esri/core/workers/chunks/da7c14ae1a25fc7163ce.js +1 -0
  104. package/assets/esri/core/workers/chunks/daa54c8a317c27881763.js +1 -0
  105. package/assets/esri/core/workers/chunks/e08bff9f8247909776a4.js +1 -0
  106. package/assets/esri/core/workers/chunks/e15c612caadf7bac4ab9.js +1 -0
  107. package/assets/esri/core/workers/chunks/{d5d2a4e8e19898d86c6d.js → e2029267cddb8e2effab.js} +1 -1
  108. package/assets/esri/core/workers/chunks/e3ef0451dcdc2e966628.js +1 -0
  109. package/assets/esri/core/workers/chunks/e7e987558cf017c62458.js +1 -0
  110. package/assets/esri/core/workers/chunks/{042771b4e56355924140.js → e9993d4f2bfdc434fbcc.js} +1 -1
  111. package/assets/esri/core/workers/chunks/eabfab23246d4a052ea3.js +1 -0
  112. package/assets/esri/core/workers/chunks/ed3d1d0465f4a4d8df4a.js +1 -0
  113. package/assets/esri/core/workers/chunks/{4dc1e7d7ac2a4b0144c4.js → f128d3431da86e484117.js} +28 -29
  114. package/assets/esri/core/workers/chunks/{ed4afafbcb31491c2049.js → f452ca61842dbe8de9af.js} +1 -1
  115. package/assets/esri/core/workers/chunks/f54546c155fba2fd3a7e.js +1 -0
  116. package/assets/esri/core/workers/chunks/{4c8164955f8d844c09ee.js → f8d1c7df671733c3325c.js} +1 -1
  117. package/assets/esri/core/workers/chunks/{e45404a982e173459990.js → f92d521ed3df3c9f737b.js} +1 -1
  118. package/assets/esri/core/workers/chunks/{b2289c18c02c868a2939.js → f9bedb421d4e115a888f.js} +1 -1
  119. package/assets/esri/core/workers/chunks/{55f7b1de8882569861c0.js → faed301a25252c619cff.js} +1 -1
  120. package/assets/esri/core/workers/chunks/fb22b2e4988ecf4d6376.js +1 -0
  121. package/assets/esri/core/workers/chunks/fb455fd89b74b70a6a2b.js +1 -0
  122. package/assets/esri/core/workers/chunks/{6d77c7e9dec323fc4145.js → fb603edd374e24f366ff.js} +1 -1
  123. package/chunks/ComponentShader.glsl.js +25 -25
  124. package/chunks/HUDMaterial.glsl.js +2 -2
  125. package/chunks/LineMarker.glsl.js +26 -26
  126. package/chunks/Point2D.js +1 -1
  127. package/chunks/ProjectionTransformation.js +1 -1
  128. package/chunks/QuadraticBezier.js +1 -1
  129. package/chunks/RibbonLine.glsl.js +35 -33
  130. package/chunks/Terrain.glsl.js +33 -33
  131. package/chunks/aiServices.js +1 -1
  132. package/chunks/array.js +1 -1
  133. package/chunks/languageUtils.js +1 -1
  134. package/core/Accessor.js +1 -1
  135. package/core/accessorSupport/utils.js +1 -1
  136. package/core/workers/registry.js +1 -1
  137. package/geometry/operators/projectOperator.js +1 -1
  138. package/geometry/operators/shapePreservingProjectOperator.js +1 -1
  139. package/geometry/support/meshUtils/elevation.js +1 -1
  140. package/geometry/support/meshUtils.js +1 -1
  141. package/interfaces.d.ts +284 -10
  142. package/intl/locale.js +1 -1
  143. package/layers/LinkChartLayer.js +1 -1
  144. package/layers/MapImageLayer.js +1 -1
  145. package/layers/TileLayer.js +1 -1
  146. package/layers/support/RasterWorker.js +1 -1
  147. package/layers/support/VideoElement.js +1 -1
  148. package/layers/support/rasterDatasets/FunctionRaster.js +1 -1
  149. package/layers/support/rasterFunctions/clipUtils.js +1 -1
  150. package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
  151. package/package.json +2 -2
  152. package/rest/networks/queryAssociations.js +1 -1
  153. package/support/revision.js +1 -1
  154. package/symbols/WebStyleSymbol.js +1 -1
  155. package/symbols/support/symbolUtils.js +1 -1
  156. package/views/2d/LabelManager.js +1 -1
  157. package/views/2d/engine/webgl/Overlay.js +1 -1
  158. package/views/2d/layers/MapImageLayerView2D.js +1 -1
  159. package/views/2d/layers/TileLayerView2D.js +1 -1
  160. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  161. package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
  162. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  163. package/views/2d/layers/support/util.js +1 -1
  164. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  165. package/views/3d/analysis/Slice/RotateManipulator.js +1 -1
  166. package/views/3d/layers/DrapedSubView3D.js +1 -1
  167. package/views/3d/layers/GraphicsView3D.js +1 -1
  168. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  169. package/views/3d/layers/MapImageLayerView3D.js +1 -1
  170. package/views/3d/layers/MediaLayerView3D.js +1 -1
  171. package/views/3d/layers/TileLayerView3D.js +1 -1
  172. package/views/3d/layers/graphics/Graphics3DWebStyleSymbol.js +1 -1
  173. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  174. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  175. package/views/3d/layers/support/ImageHighlightHelper3D.js +5 -0
  176. package/views/3d/layers/support/SublayerPopupHighlightHelper3D.js +5 -0
  177. package/views/3d/terrain/Overlay.js +1 -1
  178. package/views/3d/terrain/OverlayRenderer.js +1 -1
  179. package/views/3d/terrain/RasterTile.js +1 -1
  180. package/views/3d/terrain/TerrainRenderer.js +1 -1
  181. package/views/3d/terrain/TerrainSurface.js +1 -1
  182. package/views/3d/terrain/TileCompositor.js +1 -1
  183. package/views/3d/terrain/TileRenderer.js +1 -1
  184. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  185. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  186. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  187. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +9 -10
  188. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js +11 -0
  189. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +3 -3
  190. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +3 -6
  191. package/views/3d/webgl-engine/core/shaderLibrary/terrain/BlendLayersOutput.js +1 -1
  192. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileBackground.glsl.js +1 -1
  193. package/views/3d/webgl-engine/lib/Material.js +1 -1
  194. package/views/3d/webgl-engine/lib/Program.js +1 -1
  195. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  196. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  197. package/views/3d/webgl-engine/lib/VertexAttribute.js +1 -1
  198. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  199. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  200. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  201. package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
  202. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  203. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  204. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  205. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  206. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  207. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  208. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  209. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  210. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  211. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  212. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  213. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  214. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  215. package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
  216. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  217. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  218. package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
  219. package/views/3d/webgl-engine/shaders/DefaultMaterialTechniqueConfiguration.js +1 -1
  220. package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
  221. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  222. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  223. package/views/3d/webgl-engine/shaders/NativeLineTechniqueConfiguration.js +1 -1
  224. package/views/3d/webgl-engine/shaders/PatternTechniqueConfiguration.js +1 -1
  225. package/views/3d/webgl-engine/shaders/PointRendererTechniqueConfiguration.js +1 -1
  226. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  227. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  228. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechniqueConfiguration.js +1 -1
  229. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  230. package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
  231. package/views/DOMContainer.js +1 -1
  232. package/views/FocusArea.js +1 -1
  233. package/views/GroundView.js +1 -1
  234. package/views/PopupView.js +1 -1
  235. package/views/SceneView.js +1 -1
  236. package/views/VideoView.d.ts +4 -0
  237. package/views/VideoView.js +1 -1
  238. package/views/layers/support/MapServiceLayerViewHelper.js +1 -1
  239. package/views/layers/support/highlightUtils.js +5 -0
  240. package/views/support/GroundViewElevationSampler.js +1 -1
  241. package/views/support/TextureCompressionHandle.js +5 -0
  242. package/views/support/TextureCompressionHelper.js +1 -1
  243. package/views/support/TextureCompressionWorker.js +5 -0
  244. package/views/support/TextureCompressionWorkerHandle.js +5 -0
  245. package/views/support/imageReprojection.js +1 -1
  246. package/views/webgl/ShaderBuilder.js +1 -1
  247. package/views/webgl/Texture.js +1 -1
  248. package/views/webgl/TextureDescriptor.js +1 -1
  249. package/webscene/Slide.js +1 -1
  250. package/widgets/CatalogLayerList/CatalogLayerListViewModel.js +1 -1
  251. package/widgets/CatalogLayerList.js +1 -1
  252. package/widgets/Directions.js +1 -1
  253. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/UtilityNetworkAssociationItemList.js +1 -1
  254. package/widgets/Features/FeaturesViewModel.js +1 -1
  255. package/widgets/LayerList/ListItem.js +1 -1
  256. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  257. package/widgets/Legend.js +1 -1
  258. package/widgets/TableList/ListItem.js +1 -1
  259. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  260. package/widgets/UtilityNetworkTrace.js +1 -1
  261. package/widgets/ValuePicker.js +1 -1
  262. package/widgets/support/uriUtils.js +1 -1
  263. package/assets/esri/core/workers/chunks/0059295780fa4a090f30.js +0 -319
  264. package/assets/esri/core/workers/chunks/07910d16d1efae41d4bc.js +0 -1
  265. package/assets/esri/core/workers/chunks/0a3c1642cfabf9acd5c5.js +0 -1
  266. package/assets/esri/core/workers/chunks/0b7331613f91a3258352.js +0 -1
  267. package/assets/esri/core/workers/chunks/1a09dfb2c9fd7cd84cd4.js +0 -1
  268. package/assets/esri/core/workers/chunks/1dd6d68d23ba07587ae4.js +0 -1
  269. package/assets/esri/core/workers/chunks/2079f9d28e4199714f22.js +0 -1
  270. package/assets/esri/core/workers/chunks/29ba2022c2978e9bd53e.js +0 -1
  271. package/assets/esri/core/workers/chunks/29fe3e9a0ecab74bb729.js +0 -1
  272. package/assets/esri/core/workers/chunks/35f3eef81fac7924a487.js +0 -1
  273. package/assets/esri/core/workers/chunks/3fc18638f8799b85001d.js +0 -1
  274. package/assets/esri/core/workers/chunks/4539a802cba77a7a7cc7.js +0 -1
  275. package/assets/esri/core/workers/chunks/4d7bd2bbe9045a2fee7a.js +0 -1
  276. package/assets/esri/core/workers/chunks/50b6be13c270d7ac80d3.js +0 -1
  277. package/assets/esri/core/workers/chunks/54ace3e4802934f3f9f2.js +0 -1
  278. package/assets/esri/core/workers/chunks/5656cc44e3d4547668db.js +0 -1
  279. package/assets/esri/core/workers/chunks/597f450a57750637cb4d.js +0 -1
  280. package/assets/esri/core/workers/chunks/6e7577cb6378ff34e722.js +0 -1
  281. package/assets/esri/core/workers/chunks/6eb8d7edafeafeb10cae.js +0 -1
  282. package/assets/esri/core/workers/chunks/6ff981ec0c725efe5525.js +0 -1
  283. package/assets/esri/core/workers/chunks/71bd94cc789a55910f92.js +0 -1
  284. package/assets/esri/core/workers/chunks/762567124623f6d11e67.js +0 -1
  285. package/assets/esri/core/workers/chunks/77845cd5d824c1004bfa.js +0 -1
  286. package/assets/esri/core/workers/chunks/78683f1aadc1377be5fd.js +0 -1
  287. package/assets/esri/core/workers/chunks/7a4413a188a8f1affb2f.js +0 -1
  288. package/assets/esri/core/workers/chunks/7d3b2bdc75525d47389c.js +0 -1
  289. package/assets/esri/core/workers/chunks/81bf362ec0d23ffdc90c.js +0 -39
  290. package/assets/esri/core/workers/chunks/81f2f1614ea27f4c2e65.js +0 -1
  291. package/assets/esri/core/workers/chunks/901c957c049f53318e87.js +0 -1
  292. package/assets/esri/core/workers/chunks/94f41ef15f6c61562e5e.js +0 -1
  293. package/assets/esri/core/workers/chunks/95f23bd17ce9e07fc8ef.js +0 -1
  294. package/assets/esri/core/workers/chunks/96d7f47ea8fbf345101c.js +0 -1
  295. package/assets/esri/core/workers/chunks/9f312f7284e506a84ed7.js +0 -1
  296. package/assets/esri/core/workers/chunks/a59ad50d932da1e28c8f.js +0 -1
  297. package/assets/esri/core/workers/chunks/ac86d0b31f6368bd1fb1.js +0 -1
  298. package/assets/esri/core/workers/chunks/ad9b3b83aa96db7b79ea.js +0 -1
  299. package/assets/esri/core/workers/chunks/afe94e351b4a50d7bc53.js +0 -1
  300. package/assets/esri/core/workers/chunks/b02ac03503bfff1ff922.js +0 -1
  301. package/assets/esri/core/workers/chunks/b8416f2560710258c239.js +0 -1
  302. package/assets/esri/core/workers/chunks/b948fe33b4d650eea796.js +0 -1
  303. package/assets/esri/core/workers/chunks/ba47e43ef039fe4b8c5c.js +0 -1
  304. package/assets/esri/core/workers/chunks/be002f24beb832a369ce.js +0 -1
  305. package/assets/esri/core/workers/chunks/bf3c4c1bff8b71bc0b13.js +0 -1
  306. package/assets/esri/core/workers/chunks/d45ff061bf71b73e9f26.js +0 -1
  307. package/assets/esri/core/workers/chunks/d8ddff920725acb99200.js +0 -1
  308. package/assets/esri/core/workers/chunks/db4c110ab4c26c4b768c.js +0 -1
  309. package/assets/esri/core/workers/chunks/dfa4be2e07cc4c0938b0.js +0 -1
  310. package/assets/esri/core/workers/chunks/e088edb9ffbaa1ed12eb.js +0 -1
  311. package/assets/esri/core/workers/chunks/e0ac90b4ad8c36fb7d70.js +0 -1
  312. package/assets/esri/core/workers/chunks/e491daf73ab1264aa1b9.js +0 -1
  313. package/assets/esri/core/workers/chunks/f2a6287c8d28be24f71e.js +0 -1
  314. package/assets/esri/core/workers/chunks/f454e773505c0eef2f9d.js +0 -1
  315. package/assets/esri/core/workers/chunks/f4861d73c62096f73e48.js +0 -1
  316. package/assets/esri/core/workers/chunks/f70dd16f14279bb7e60d.js +0 -1
  317. package/assets/esri/core/workers/chunks/fa011ad649c05201e92a.js +0 -1
  318. package/views/3d/webgl-engine/lib/TextureCompressionWorker.js +0 -5
  319. package/views/3d/webgl-engine/lib/TextureCompressionWorkerHandle.js +0 -5
@@ -1,319 +0,0 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2209],{4431:(e,t,r)=>{r.d(t,{U:()=>s});var i=r(63907),n=r(74038);function s(e,t=0){const r=e.stride;return Array.from(e.fields.keys()).map((i=>{const s=e.fields.get(i),o=s.constructor.ElementCount,l=a(s.constructor.ElementType),c=s.offset,d=s.optional?.glNormalized??!1;return new n._(i,o,l,c,r,d,t)}))}function a(e){const t=o[e];if(t)return t;throw new Error("BufferType not supported in WebGL")}const o={u8:i.pe.UNSIGNED_BYTE,u16:i.pe.UNSIGNED_SHORT,u32:i.pe.UNSIGNED_INT,i8:i.pe.BYTE,i16:i.pe.SHORT,i32:i.pe.INT,f16:i.pe.HALF_FLOAT,f32:i.pe.FLOAT}},6459:(e,t,r)=>{r.r(t),r.d(t,{default:()=>xn});var i=r(90237),n=r(65529),s=r(74887),a=r(36708),o=r(10107),l=r(44208),c=r(53966),d=(r(87811),r(40608)),u=r(5443),h=r(57251),f=r(16930),p=r(19730),m=r(61956),_=r(69622),g=r(4576),y=r(32587),v=r(44794),b=r(19419),w=r(69397),x=r(24326);function T(e=""){return`${e}${(0,x.c)()}`}r(37539),new Float64Array(3);class A{constructor(e,t){this._parent=e,this._subsetIndices=t,this.id=T(`featureDataSubset-${e.id}-`)}get extent(){return this._parent.extent}get featureCount(){return this._subsetIndices.length}get usedMemory(){return this._parent.usedMemory+w.qK+this._subsetIndices.byteLength}get isFullyEnabled(){for(const e of this._subsetIndices)if(!this._parent.getEnabled(e))return!1;return!0}getObjectId(e){return this._parent.getObjectId(this._subsetIndices[e])}getAttribute(e,t){return this._parent.getAttribute(this._subsetIndices[e],t)}getAttributeAsTimestamp(e,t){return this._parent.getAttribute(this._subsetIndices[e],t)}getAttributes(e){return this._parent.getAttributes(this._subsetIndices[e])}getCoordinates(e,t,r){return this._parent.getCoordinates(this._subsetIndices[e],t,r)}getOptimizedGeometry(e){return this._parent.getOptimizedGeometry(this._subsetIndices[e])}getCentroid(e,t){return this._parent.getCentroid(this._subsetIndices[e],t)}getBounds(e){return this._parent.getBounds(this._subsetIndices[e])}getBoundingBox(e){return this._parent.getBoundingBox(this._subsetIndices[e])}getObjectIdsArray(e,t,r){return this._parent.getObjectIdsArray(e,this._translatedIndices(t),r)}getCoordinatesArray(e,t,r){return this._parent.getCoordinatesArray(e,this._translatedIndices(t),r)}objectIds(e){return this._parent.objectIds(this._translatedIndices(e))}subset(e){const{_subsetIndices:t}=this,r=new Uint32Array(e.length);for(let i=0;i<r.length;++i)r[i]=t[e[i]];return new A(this._parent,r)}disableObjectIds(e){if(0===e.size)return;const{featureCount:t}=this,r=new Array;for(let i=0;i<t;++i)this.getEnabled(i)&&e.has(this.getObjectId(i))&&r.push(i);if(0!==r.length)for(const e of r)this.setEnabled(e,!1)}setEnabled(e,t){this._parent.setEnabled(this._subsetIndices[e],t)}getEnabled(e){return this._parent.getEnabled(this._subsetIndices[e])}enableAll(){const{_subsetIndices:e,_parent:t}=this;for(const r of e)t.setEnabled(r,!0)}getVisibilityArray(e,t,r){return this._parent.getVisibilityArray(e,this._translatedIndices(t),r)}enabledObjectIds(e){return this._parent.enabledObjectIds(this._translatedIndices(e))}*_translatedIndices(e){const{_subsetIndices:t}=this;if(null!=e)for(const r of e)yield t[r];else yield*t}}class I{constructor(e){this._tile=e,this.id=T(`featureData-${e.id}-`),this._enabled=new Array(e.featureCount).fill(!0)}get featureCount(){return this._tile.featureCount}get usedMemory(){return w.qK+(0,w.$B)(this.id)}get extent(){return this._tile.descriptor.extent}get isFullyEnabled(){return this._enabled.every((e=>e))}getObjectId(e){return this._tile.getObjectId(e)}getAttribute(e,t){return this._tile.getAttribute(e,t)}getAttributeAsTimestamp(e,t){return this._tile.getAttribute(e,t)}getAttributes(e){return this._tile.getAttributes(e)}getCoordinates(e,t,r){return this._tile.getCoordinates(e,t,r)}getOptimizedGeometry(e){return this._tile.getOptimizedGeometry(e)}getCentroid(e,t){return this._tile.getCentroid(e,t)}getBounds(e){return this._tile.getBounds(e)}getBoundingBox(e){return this._tile.getBoundingBox(e)}getObjectIdsArray(e,t,r){return this._tile.getObjectIdsArray(e,t,r)}getCoordinatesArray(e,t,r){return this._tile.getCoordinatesArray(e,t,r)}objectIds(e){return this._tile.objectIds(e)}subset(e){return new A(this,e)}disableObjectIds(e){if(0===e.size)return;const{_enabled:t}=this,r=new Array;for(const i of this._allFeatureIndices())t[i]&&e.has(this.getObjectId(i))&&r.push(i);if(0!==r.length)for(const e of r)t[e]=!1}setEnabled(e,t){this._enabled[e]=t}getEnabled(e){return this._enabled[e]}enableAll(){this._enabled.fill(!0)}getVisibilityArray(e,t=this._allFeatureIndices(),r=0){const{_enabled:i}=this;for(const n of t)e[r++]=Number(i[n]);return r}*enabledObjectIds(e=this._allFeatureIndices()){const{_enabled:t}=this;for(const r of e)t[r]&&(yield this.getObjectId(r))}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}}let R=class extends _.A{constructor(e){super(e),this._updatingCount=0,this.extent=null,this._tileHandles=new y.A,this._wanted=new y.A}destroy(){for(const e of this._tileHandles.values())e.abort();this._tileHandles.clear(),this._wanted.clear()}get updating(){return this._updatingCount>0}get _boundingRect(){const{extent:e}=this;return null==e?null:(0,b.VY)(e)}get _missingTiles(){const e=new Array,t=this._wanted;for(const r of this._tileHandles.values())t.has(r.id)&&!M(r)&&e.push(r);return e}async onTileTreeChange(e){++this._updatingCount;try{const{added:t,removed:r}=e,i=this._tileHandles,{_boundingRect:n}=this,s=null!=n?t.filter((e=>(0,b.HY)(n,e.extent))):t,a=this._wanted,o=new Array;for(const e of r){const{id:r}=e;if(a.delete(r),t.some((t=>S(t,e)||S(e,t))))continue;const n=i.get(r);null!=n&&o.push(this._removeTile(n))}for(const e of s)a.set(e.id,e),o.push(this._addTile(e));await Promise.allSettled(o)}finally{--this._updatingCount}}async _removeTile(e){this._tileHandles.delete(e.id),this._validate(),e.abort();const{featureData:t}=e,r=new E(e.untilSettled(),null!=t?this.createRemoveFeatureDataCommand(t.id):null);e.nextEvent=null;const{command:i}=await r.getCommand();i?.execute()}async _addTile(e){const{_tileHandles:t}=this,r=t.get(e.id);if(null!=r)return!M(r)||r.featureData.isFullyEnabled||(r.featureData.enableAll(),r.nextEvent=this._onTileLoad(r)),void await r.untilSettled();const i=new O(e);this._tileHandles.set(i.id,i);const n=this.loadTile(e,i.signal);i.nextEvent=n;const a=await n;if(i.aborted)throw(0,s.NK)();i.featureData=new I(a),function(e){if(!M(e))throw new Error}(i),i.nextEvent=this._onTileLoad(i),await i.untilSettled()}async _onTileLoad(e){const{_wanted:t,_tileHandles:r,_missingTiles:i}=this,n=e.descriptor,s=new Array,a=new Array,o=new Set;for(const l of r.values()){if(l===e)continue;const{descriptor:c,id:d}=l;if(t.has(d)||i.some((({descriptor:e})=>S(e,c)||S(c,e)))){if(M(l)){if(S(n,c)){const e=l.featureData;for(const t of e.objectIds())o.add(t)}if(S(c,n)){const t=e.featureData,r=new Set(t.objectIds()),{featureData:i}=l;i.disableObjectIds(r);const n=AbortSignal.any([l.signal,e.signal]),o=l.untilSettled();s.push(new E(o,this.createUpdateFeatureDataVisibilityCommand(i),n)),a.push(l),this._validateRemoval(i,r)}}}else{l.abort(),r.delete(d);const{featureData:e}=l;null!=e&&s.push(new E(l.untilSettled(),this.createRemoveFeatureDataCommand(e.id))),l.nextEvent=null}}o.size>0&&(e.featureData.disableObjectIds(o),this._validateRemoval(e.featureData,o)),this._validate(),s.push(new E(e.untilSettled(),this.createAddFeatureDataCommand(e.featureData,e.signal),e.signal)),a.push(e);const l=this._joinCommands(s);for(const e of a)e.nextEvent=l;await l}async _joinCommands(e){const t=(await Promise.allSettled(e.map((async e=>e.getCommand())))).map((e=>"fulfilled"!==e.status||e.value.signal?.aborted?null:e.value.command)).filter(g.Ru);0!==t.length&&t.reduce(((e,t)=>(e.append(t),e))).execute()}_validate(){if(!(0,l.A)("feature-pipeline-3d-test-validation"))return;const e=new Array;for(const t of this._tileHandles.values()){if(!M(t))continue;const{featureData:r}=t;e.push({featureData:r,objectIds:new Set(r.enabledObjectIds())})}for(let t=0;t<e.length;++t){const{featureData:r,objectIds:i}=e[t];for(let n=t+1;n<e.length;++n){const{featureData:t,objectIds:s}=e[n];for(const e of s)if(i.has(e))throw new Error(`${r.id} and ${t.id} both contain ${e}.`)}}}_validateRemoval(e,t){if((0,l.A)("feature-pipeline-3d-test-validation"))for(const r of e.enabledObjectIds())if(t.has(r))throw new Error(`Failed to remove ${r} from ${e.id}!`)}};function S({lij:[e,t,r]},{lij:[i,n,s]}){const a=i-e;return a>=0&&t===n>>a&&r===s>>a}(0,i._)([(0,o.MZ)()],R.prototype,"updating",null),(0,i._)([(0,o.MZ)({constructOnly:!0})],R.prototype,"loadTile",void 0),(0,i._)([(0,o.MZ)({constructOnly:!0})],R.prototype,"createAddFeatureDataCommand",void 0),(0,i._)([(0,o.MZ)({constructOnly:!0})],R.prototype,"createRemoveFeatureDataCommand",void 0),(0,i._)([(0,o.MZ)({constructOnly:!0})],R.prototype,"createUpdateFeatureDataVisibilityCommand",void 0),(0,i._)([(0,o.MZ)()],R.prototype,"_updatingCount",void 0),(0,i._)([(0,o.MZ)()],R.prototype,"extent",void 0),(0,i._)([(0,o.MZ)()],R.prototype,"_boundingRect",null),(0,i._)([(0,o.MZ)()],R.prototype,"_missingTiles",null),R=(0,i._)([(0,d.$)("esri.views.3d.layers.graphics.pipeline.Tile3DManager")],R);class O{constructor(e){this.descriptor=e,this._controller=new AbortController,this._featureData=(0,v.v)(null),this.nextEvent=null}get id(){return this.descriptor.id}get featureData(){return this._featureData.value}set featureData(e){this._featureData.value=e}get signal(){return this._controller.signal}abort(){this._controller.abort()}get aborted(){return this._controller.signal.aborted}async untilSettled(){try{await this.nextEvent}catch(e){(0,s.zf)(e)||console.error(e)}}}function M(e){return null!=e.featureData}class E{constructor(e,t,r){this.previousEventSettled=e,this.commandPromise=t,this.signal=r}async getCommand(){const{previousEventSettled:e,commandPromise:t,signal:r}=this,[i]=await Promise.all([t,e]);if(r?.aborted)throw(0,s.NK)();return{command:i,signal:r}}}var C=r(75503),F=r(27647),D=r(92722);class L{constructor(e,t){this._index=e,this._view=t}get usedMemory(){return w.qK+w.RS}getObjectId(){return this._view.getObjectId(this._index)}getAttribute(e){return this._view.getAttribute(this._index,e)}getAttributeAsTimestamp(e){return this._view.getAttributeAsTimestamp(this._index,e)}getAttributes(){return this._view.getAttributes(this._index)}getOptimizedGeometry(){return this._view.getOptimizedGeometry(this._index)}getCentroid(e){return this._view.getCentroid(this._index,e)}getBounds(){return this._view.getBounds(this._index)}getBoundingBox(){return this._view.getBoundingBox(this._index)}cloneWithGeometry(e){return new P(this._index,this._view,e)}}class P extends L{constructor(e,t,r){super(e,t),this._geometryOverride=r}getOptimizedGeometry(){return this._geometryOverride}getCentroid(e){return(0,F.Q)(new D.A,this._geometryOverride,e.hasZ,e.hasM)}}class B{constructor(e,t){this.featureData=e,this.bounds=t}}class N{constructor(){this._tileBounds=new Map,this.events=new n.A,this.featureAdapter=z.shared}get usedMemory(){return w.qK+w.qK*this._tileBounds.size}addTile(e){const{featureCount:t}=e;if(0===t)return;const r=new C.w(9,(t=>e.getBounds(t))),i=new Array;for(let e=0;e<t;++e)i[e]=e;r.load(i),this._tileBounds.set(e.id,new B(e,r)),this.events.emit("changed")}removeTile(e){this._tileBounds.delete(e),this.events.emit("changed")}clear(){this._tileBounds.clear(),this.events.emit("changed")}forEach(e){for(const{featureData:t,bounds:r}of this._tileBounds.values())r.all((r=>{t.getEnabled(r)&&e(new L(r,t))}))}forEachInBounds(e,t){V.minX=e[0],V.minY=e[1],V.maxX=e[2],V.maxY=e[3];for(const{featureData:e,bounds:r}of this._tileBounds.values())r.search(V,(r=>{e.getEnabled(r)&&t(new L(r,e))}))}forEachBounds(e,t){for(const r of e)t(r.getBoundingBox())}getFullExtent(e){let t=1/0,r=1/0,i=-1/0,n=-1/0;for(const{bounds:e}of this._tileBounds.values()){const{minX:s,minY:a,maxX:o,maxY:l}=e.toJSON();t=Math.min(t,s),r=Math.min(r,a),i=Math.min(i,o),n=Math.min(n,l)}return{xmin:t,ymin:r,xmax:i,ymax:n,spatialReference:e}}}class z{static{this.shared=new z}getObjectId(e){return e.getObjectId()}getAttribute(e,t){return e.getAttribute(t)}getAttributeAsTimestamp(e,t){return e.getAttributeAsTimestamp(t)}getAttributes(e){return e.getAttributes()}getGeometry(e){return e.getOptimizedGeometry()}getCentroid(e,t){return e.getCentroid(t)}cloneWithGeometry(e,t){return e.cloneWithGeometry(t)}}const V=new C.E;var j=r(80893);class U{constructor(e,t,r){this.descriptor=e,this._pages=t,this._pageSize=r;const i=w.ez+t.reduce(((e,{usedMemory:t})=>e+t),0),n=3*w.RS;this.usedMemory=w.qK+i+n,this.featureCount=t.reduce(((e,t)=>e+t.featureCount),0)}get id(){return this.descriptor.id}getObjectId(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getObjectId(r)}getAttribute(e,t){const{pageIndex:r,featurePageIndex:i}=this._translateIndex(e);return this._pages[r].getAttribute(i,t)}getAttributeAsTimestamp(e,t){const{pageIndex:r,featurePageIndex:i}=this._translateIndex(e);return this._pages[r].getAttributeAsTimestamp(i,t)}getAttributes(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getAttributes(r)}getCoordinates(e,t,r){const{pageIndex:i,featurePageIndex:n}=this._translateIndex(e);this._pages[i].getCoordinates(n,t,r)}getOptimizedGeometry(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getOptimizedGeometry(r)}getCentroid(e,t){const{pageIndex:r,featurePageIndex:i}=this._translateIndex(e);return this._pages[r].getCentroid(i,t)}getBounds(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getBounds(r)}getBoundingBox(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getBoundingBox(r)}getObjectIdsArray(e,t=this._allFeatureIndices(),r=0){let i=r;for(const{page:r,indices:n}of this._batchPageIndices(t))i=r.getObjectIdsArray(e,n,i);return i}getCoordinatesArray(e,t=this._allFeatureIndices(),r=0){let i=r;for(const{page:r,indices:n}of this._batchPageIndices(t))i=r.getCoordinatesArray(e,n,i);return i}*objectIds(e=this._allFeatureIndices()){for(const{page:t,indices:r}of this._batchPageIndices(e))for(const e of t.objectIds(r))yield e}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}_translateIndex(e){const{_pageSize:t}=this;return{pageIndex:Math.floor(e/t),featurePageIndex:e%t}}*_batchPageIndices(e){const t=new Array;{let r=0,i=new Array;for(const n of e){const{pageIndex:e,featurePageIndex:s}=this._translateIndex(n);r!==e&&(0!==i.length&&t.push({pageIndex:r,indices:i}),r=e,i=[]),i.push(s)}0!==i.length&&t.push({pageIndex:r,indices:i})}const{_pages:r}=this;for(const{pageIndex:e,indices:i}of t)yield{page:r[e],indices:i}}}var G=r(49186),H=r(51624),k=r(51850),q=r(70328),Z=r(62577),W=r(95466),$=r(53655);class Y{constructor(e){this._reader=new H.A(new Uint8Array(e),new DataView(e)),this._index=function(e){for(;e.next();){if(2===e.tag())return X(e.getMessage());e.skip()}Q()}(this._reader)}get featureCount(){return this._index.featureIndices.length}get exceededTransferLimit(){return this._index.exceededTransferLimit}get usedMemory(){return this._reader.usedMemory}getObjectId(e){return this.getAttribute(e,this._index.objectIdFieldName)}getAttribute(e,t){const{_index:{fieldsIndex:r,attributeIndices:i}}=this,n=r.get(t)?.index;if(null==n)return;const s=i[e*r.fields.length+n],a=this._reader;return a.move(s),K(a)}getAttributeAsTimestamp(e,t){const r=this.getAttribute(e,t);return"string"==typeof r?new Date(r).getTime():"number"==typeof r||null==r?r:null}getAttributes(e){const{_index:{fieldsIndex:t,attributeIndices:r}}=this,i=e*t.fields.length,n=this._reader,s={};for(const e of t.fields){const t=r[i+e.index];n.move(t),s[e.name]=K(n)}return s}getCoordinates(e,t,r=0){const i=this._reader,{transform:n,featureIndices:s}=this._index,{scale:a,translate:o}=n;i.move(s[e]),this._readCoordinates(a,o,t,r)}getOptimizedGeometry(e){const t=(0,k.vt)();return this.getCoordinates(e,t),new D.A([],t)}getCentroid(e,{hasZ:t,hasM:r}){this.getCoordinates(e,ee);const[i,n,s]=ee,a=[i,n];return t&&(a[3]=s),r&&(a[t?4:3]=0),new D.A([],a)}getBounds(e){this.getCoordinates(e,ee);const[t,r]=ee,i=new C.E;return i.minX=t,i.minY=r,i.maxX=t,i.maxY=r,i}getBoundingBox(e){this.getCoordinates(e,ee);const[t,r,i]=ee;return(0,q.fA)(t,r,i,t,r,i)}getObjectIdsArray(e,t=this._allFeatureIndices(),r=0){const i=this._reader,{objectIdFieldName:n,attributeIndices:s,fieldsIndex:a}=this._index,o=a.get(n).index,l=a.fields.length;for(const n of t){const t=s[n*l+o];i.move(t),e[r++]=K(i)}return r}getCoordinatesArray(e,t=this._allFeatureIndices(),r=0){const i=this._reader,{transform:n,featureIndices:s}=this._index,{scale:a,translate:o}=n;for(const n of t){const t=s[n];i.move(t),r=this._readCoordinates(a,o,e,r)}return r}*objectIds(e=this._allFeatureIndices()){const t=this._reader,{objectIdFieldName:r,attributeIndices:i,fieldsIndex:n}=this._index,s=n.get(r).index,a=n.fields.length;for(const r of e){const e=i[r*a+s];t.move(e),yield K(t)}}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}_readCoordinates([e,t,r],[i,n,s],a,o){const l=this._reader,c=l.getLength(),d=l.pos()+c;for(;l.pos()<d&&l.next();)switch(l.tag()){case 2:{const c=l.getLength(),d=l.pos()+c;for(;l.pos()<d&&l.next();)3===l.tag()?(l.getUInt32(),a[o++]=i+e*l.getSInt64(),a[o++]=n+t*l.getSInt64(),a[o++]=s+r*l.getSInt64()):l.skip();break}default:l.skip()}return o}}function X(e){for(;e.next();){if(1===e.tag())return J(e.getMessage());e.skip()}Q()}function J(e){let t,r,i=!1,n=!1,s=0;const a=new Array,o=new Array,l=new Array;for(;e.next();)switch(e.tag()){case 1:r=e.getString();break;case 7:0!==e.getEnum()&&Q();break;case 9:i=e.getBool()??!1;break;case 12:t=(0,Z.Q1)(e.processMessage($.ae));break;case 13:{const t=e.processMessage($.cn);t.index=s++,a.push(t);break}case 15:{o.push(e.pos());const t=e.getUInt32(),r=e.pos()+t;for(;e.pos()<r&&e.next();)1===e.tag()?(l.push(e.pos()),e.skip()):e.skip();break}case 10:n=e.getBool()??!1;break;default:e.skip()}const c=new W.A(a);return null!=t&&n&&null!=r&&c.has(r)||Q(),{transform:t,exceededTransferLimit:i,fieldsIndex:c,objectIdFieldName:r,featureIndices:o,attributeIndices:l}}function Q(){const e=new G.A("pbf-parsing-failed","Error while parsing PBF",new Error);throw console.error(e),e}function K(e){const t=e.getLength(),r=e.pos()+t;for(;e.pos()<r&&e.next();)switch(e.tag()){case 1:return e.getString();case 2:return e.getFloat();case 3:return e.getDouble();case 4:return e.getSInt32();case 5:return e.getUInt32();case 6:return e.getInt64();case 7:return e.getUInt64();case 8:return e.getSInt64();case 9:return e.getBool();default:return e.skip(),null}return null}const ee=(0,k.vt)();class te{constructor(e,t,r,i,n){this.spatialReference=e,this.url=r,this.objectIdField=i,this.capabilities=n;const{supportsMaxRecordCountFactor:s,maxRecordCount:a}=this.capabilities.query,o=s?4:1,l=(a??8e3)*o;this._pageSize=Math.min(8e3,l);const c=t.clone();c.cacheHint=!0,c.resultType="tile",c.outSpatialReference=e,c.returnGeometry=!0,c.returnZ=!0,c.maxRecordCountFactor=o,c.num=this._pageSize,c.outFields=[i],this._baseQuery=c}async fetch(e,t){const{spatialReference:r,_pageSize:i}=this,n=(0,b.w1)(e.extent,r),a=this._baseQuery.clone();a.geometry=n;const o=new Array;let l=0,c=!1,d=1;for(;!c;){const e=[];for(let r=0;r<d;++r)e.push(this._fetchPage(a,l++,t));const r=await Promise.all(e);(0,s.Te)(t);for(const e of r){const t=0!==e.featureCount;c||=!e.exceededTransferLimit||!t,t&&o.push(e)}d=Math.min(d+1,4)}return new U(e,o,i)}async _fetchPage(e,t,r){const i=e.clone();i.start=t*this._pageSize;const n=(await(0,j.kS)(this.url,i,{signal:r})).data;return(0,s.Te)(r),new Y(n)}}var re=r(58083),ie=r(9093),ne=r(97146),se=r(24151),ae=r(36563),oe=r(97768),le=r(91829),ce=r(37585),de=r(48163),ue=r(34727),he=r(26857);new Map,(()=>{let e="";for(let t=32;t<127;t++)e+=String.fromCharCode(t)})();const fe=[];{const e=16;for(let t=0;t<360;t+=360/e)fe.push([Math.cos(Math.PI*t/180),Math.sin(Math.PI*t/180)])}var pe,me;(me=pe||(pe={}))[me.Left=0]="Left",me[me.Center=1]="Center",me[me.Right=2]="Right",Object.freeze({left:0,center:.5,right:1});const _e=Object.freeze({"bottom-left":(0,de.fA)(0,0),bottom:(0,de.fA)(.5,0),"bottom-right":(0,de.fA)(1,0),left:(0,de.fA)(0,.5),center:(0,de.fA)(.5,.5),right:(0,de.fA)(1,.5),"top-left":(0,de.fA)(0,1),top:(0,de.fA)(.5,1),"top-right":(0,de.fA)(1,1)});var ge=r(4431),ye=r(49255);const ve={required:[]};ye.V.Depth;class be extends _.A{precompile(e){return!!this.acquireTechniques(e)}consumes(){return ve}get usedMemory(){return 0}get isDecoration(){return!1}get running(){return!1}modify(e){}get numGeometries(){return 0}get hasOccludees(){return!1}get hasEmissions(){return!1}forEachGeometry(e){}queryRenderOccludedState(e){return!1}}class we extends be{}class xe extends be{}var Te=r(89192);class Ae{constructor(e,t){this._material=e,this._repository=t,this._map=new Map}dispose(){this._map.forEach(((e,t)=>{null!=e&&this._repository.release(this._material,t)}))}load(e,t,r){const i=this._material.produces.get(t);if(!i?.(r))return null;this._map.has(r)||this._map.set(r,this._repository.acquire(this._material,t,r));const n=this._map.get(r);if(null!=n){if(n.ensureResources(e)===Te.Am.LOADED)return n;this._repository.requestRender()}return null}}var Ie=r(62258),Re=r(38954),Se=r(97937),Oe=r(32728),Me=r(69720),Ee=(r(96672),r(17478),r(620)),Ce=r(46540),Fe=r(28449);const De=(0,k.vt)(),Le=new Float32Array(6);Me.J;class Pe{constructor(){this.min=(0,k.fA)(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this.max=(0,k.fA)(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE)}isEmpty(){return this.max[0]<this.min[0]&&this.max[1]<this.min[1]&&this.max[2]<this.min[2]}}class Be extends Pe{constructor(){super(...arguments),this.bounds=(0,Se.c)()}}var Ne;(0,k.vt)(),(0,k.vt)(),(0,k.vt)(),(0,k.vt)(),function(e){e[e.WorldSpace=0]="WorldSpace",e[e.ObjectSpace=1]="ObjectSpace"}(Ne||(Ne={}));var ze=r(13464),Ve=r(72824);class je extends Ve.gy{constructor(e=(0,k.vt)()){super(),this.origin=e}get slicePlaneLocalOrigin(){return this.origin}}var Ue=r(77690),Ge=r(29242);var He=r(13030),ke=r(78662),qe=r(1843),Ze=r(40268),We=r(16943),$e=r(25634),Ye=r(11725),Xe=r(77194);class Je{constructor(){this.scale=0,this.factor=0,this.minScaleFactor=0}}var Qe=r(59907),Ke=r(43616),et=r(13259),tt=r(97220),rt=r(98958),it=r(59643),nt=r(33524),st=r(63907),at=r(90644);class ot extends rt.w{constructor(e,t){super(e,t,new tt.$(et.H,(()=>r.e(8241).then(r.bind(r,48241))))),this.primitiveType=t.occlusionPass?st.WR.POINTS:st.WR.TRIANGLES}initializePipeline(e){const{oitPass:t,hasPolygonOffset:r,draped:i,output:n,depthTestEnabled:s,occlusionPass:a}=e,o=t===it.Y.NONE,l=t===it.Y.ColorAlpha,c=n===ye.V.Highlight,d=s&&!i&&!l&&!a&&!c;return(0,at.Ey)({blending:(0,ye.RN)(n)?o?at.Os:(0,nt.ez)(t):null,depthTest:s&&!i?{func:st.MT.LEQUAL}:null,depthWrite:d?at.Uy:null,drawBuffers:(0,nt.m6)(t,n),colorWrite:at.kn,polygonOffset:r?lt:null})}}const lt={factor:0,units:-4};var ct=r(53466),dt=r(22911),ut=r(51976),ht=r(35256);class ft extends ht.E{constructor(e){super(),this.spherical=e,this.screenCenterOffsetUnitsEnabled=!1,this.occlusionTestEnabled=!0,this.signedDistanceFieldEnabled=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.vvSize=!1,this.vvColor=!1,this.hasVerticalOffset=!1,this.hasScreenSizePerspective=!1,this.hasRotation=!1,this.debugDrawLabelBorder=!1,this.hasPolygonOffset=!1,this.depthTestEnabled=!0,this.pixelSnappingEnabled=!0,this.draped=!1,this.terrainDepthTest=!1,this.cullAboveTerrain=!1,this.occlusionPass=!1,this.occludedFragmentFade=!1,this.objectAndLayerIdColorInstanced=!1,this.horizonCullingEnabled=!0,this.isFocused=!0,this.textureCoordinateType=ct.I.None,this.emissionSource=dt.ZX.None,this.discardInvisibleFragments=!0,this.hasVvInstancing=!1}}(0,i._)([(0,ut.W)()],ft.prototype,"screenCenterOffsetUnitsEnabled",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"occlusionTestEnabled",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"signedDistanceFieldEnabled",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"sampleSignedDistanceFieldTexelCenter",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"vvSize",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"vvColor",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"hasVerticalOffset",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"hasScreenSizePerspective",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"hasRotation",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"debugDrawLabelBorder",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"hasPolygonOffset",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"depthTestEnabled",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"pixelSnappingEnabled",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"draped",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"terrainDepthTest",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"cullAboveTerrain",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"occlusionPass",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"occludedFragmentFade",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"objectAndLayerIdColorInstanced",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"horizonCullingEnabled",void 0),(0,i._)([(0,ut.W)()],ft.prototype,"isFocused",void 0);var pt=r(49788);class mt extends Ye.im{constructor(e,t){super(e,Vt),this.produces=new Map([[ze.N.HUD_MATERIAL,e=>(0,ye.Mb)(e)&&!this.parameters.drawAsLabel],[ze.N.LABEL_MATERIAL,e=>(0,ye.Mb)(e)&&this.parameters.drawAsLabel],[ze.N.OCCLUSION_PIXELS,()=>this.parameters.occlusionTest],[ze.N.DRAPED_MATERIAL,e=>this.parameters.draped&&(0,ye.Mb)(e)]]),this._visible=!0,this._configuration=new ft(t)}getConfiguration(e,t){const r=this.parameters.draped;return this._configuration.output=e,this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.hasVerticalOffset=!!this.parameters.verticalOffset,this._configuration.hasScreenSizePerspective=!!this.parameters.screenSizePerspective,this._configuration.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits,this._configuration.hasPolygonOffset=this.parameters.polygonOffset,this._configuration.draped=r,this._configuration.occlusionTestEnabled=this.parameters.occlusionTest,this._configuration.pixelSnappingEnabled=this.parameters.pixelSnappingEnabled,this._configuration.signedDistanceFieldEnabled=this.parameters.textureIsSignedDistanceField,this._configuration.sampleSignedDistanceFieldTexelCenter=this.parameters.sampleSignedDistanceFieldTexelCenter,this._configuration.hasRotation=this.parameters.hasRotation,this._configuration.vvSize=!!this.parameters.vvSize,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.occlusionPass=t.slot===ze.N.OCCLUSION_PIXELS,this._configuration.occludedFragmentFade=this.parameters.occludedFragmentFade,this._configuration.horizonCullingEnabled=this.parameters.horizonCullingEnabled,this._configuration.isFocused=this.parameters.isFocused,this._configuration.depthTestEnabled=this.parameters.depthEnabled||t.slot===ze.N.OCCLUSION_PIXELS,(0,ye.RN)(e)&&(this._configuration.debugDrawLabelBorder=!!he.b.LABELS_SHOW_BORDER),this._configuration.oitPass=t.oitPass,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration}intersect(e,t,r,i,n,s){const{options:{selectionMode:a,hud:o,excludeLabels:l},point:c,camera:d}=r,{parameters:u}=this;if(!a||!o||l&&u.isLabel||!e.visible||!c)return;const h=e.attributes.get(Ce.r.FEATUREATTRIBUTE),f=null==h?null:(0,le.ci)(h.data,Dt),{scaleX:p,scaleY:m}=Ht(f,u,d.pixelRatio);(0,Ue.z0)(St,t),e.attributes.has(Ce.r.FEATUREATTRIBUTE)&&function(e){const t=e[0],r=e[1],i=e[2],n=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],d=1/Math.sqrt(t*t+r*r+i*i),u=1/Math.sqrt(n*n+s*s+a*a),h=1/Math.sqrt(o*o+l*l+c*c);e[0]=t*d,e[1]=r*d,e[2]=i*d,e[3]=n*u,e[4]=s*u,e[5]=a*u,e[6]=o*h,e[7]=l*h,e[8]=c*h}(St);const _=e.attributes.get(Ce.r.POSITION),g=e.attributes.get(Ce.r.SIZE),y=e.attributes.get(Ce.r.NORMAL),v=e.attributes.get(Ce.r.ROTATION),b=e.attributes.get(Ce.r.CENTEROFFSETANDDISTANCE);(0,Ee.vA)(_.size>=3);const w=(0,et.c)(u),x="screen"===this.parameters.centerOffsetUnits;for(let e=0;e<_.data.length/_.size;e++){const i=e*_.size;(0,Re.i)(bt,_.data[i],_.data[i+1],_.data[i+2]),(0,Re.t)(bt,bt,t),(0,Re.t)(bt,bt,d.viewMatrix);const n=e*b.size;if((0,Re.i)(Ct,b.data[n],b.data[n+1],b.data[n+2]),!x&&(bt[0]+=Ct[0],bt[1]+=Ct[1],0!==Ct[2])){const e=Ct[2];(0,Re.n)(Ct,bt),(0,Re.d)(bt,bt,(0,Re.h)(Ct,Ct,e))}const a=e*y.size;if((0,Re.i)(wt,y.data[a],y.data[a+1],y.data[a+2]),gt(wt,St,d,Lt),kt(this.parameters,bt,Lt,d,vt),d.applyProjection(bt,xt),xt[0]>-1){x&&(Ct[0]||Ct[1])&&(xt[0]+=Ct[0]*d.pixelRatio,0!==Ct[1]&&(xt[1]+=(0,Xe.m0)(Ct[1],vt.factorAlignment)*d.pixelRatio),d.unapplyProjection(xt,bt)),xt[0]+=this.parameters.screenOffset[0]*d.pixelRatio,xt[1]+=this.parameters.screenOffset[1]*d.pixelRatio,xt[0]=Math.floor(xt[0]),xt[1]=Math.floor(xt[1]);const t=e*g.size;Nt[0]=g.data[t],Nt[1]=g.data[t+1],(0,Xe.MD)(Nt,vt.factor,Nt);const i=Pt*d.pixelRatio;let n=0;u.textureIsSignedDistanceField&&(n=Math.min(u.outlineSize,.5*Nt[0])*d.pixelRatio/2),Nt[0]*=p,Nt[1]*=m;const a=e*v.size,o=u.rotation+v.data[a];if(yt(c,xt[0],xt[1],Nt,i,n,o,u,w)){const e=r.ray;if((0,Re.t)(At,bt,(0,re.B8)(Mt,d.viewMatrix)),xt[0]=c[0],xt[1]=c[1],d.unprojectFromRenderScreen(xt,bt)){const t=(0,k.vt)();(0,Re.c)(t,e.direction);const r=1/(0,Re.l)(t);(0,Re.h)(t,t,r),s((0,Re.j)(e.origin,bt)*r,t,-1,!0,1,At)}}}}}intersectDraped(e,t,r,i,n,s){const a=e.attributes.get(Ce.r.POSITION),o=e.attributes.get(Ce.r.SIZE),l=e.attributes.get(Ce.r.ROTATION),c=this.parameters,d=(0,et.c)(c),u=e.attributes.get(Ce.r.FEATUREATTRIBUTE),h=null==u?null:(0,le.ci)(u.data,Dt),{scaleX:f,scaleY:p}=Ht(h,c,e.screenToWorldRatio),m=Bt*e.screenToWorldRatio;for(let t=0;t<a.data.length/a.size;t++){const r=t*a.size,u=a.data[r],h=a.data[r+1],_=t*o.size;Nt[0]=o.data[_],Nt[1]=o.data[_+1];let g=0;c.textureIsSignedDistanceField&&(g=Math.min(c.outlineSize,.5*Nt[0])*e.screenToWorldRatio/2),Nt[0]*=f,Nt[1]*=p;const y=t*l.size,v=c.rotation+l.data[y];yt(i,u,h,Nt,m,g,v,c,d)&&n(s.dist,s.normal,-1,!1)}}createBufferWriter(){return new Gt}applyShaderOffsetsView(e,t,r,i,n,s,a){const o=gt(t,r,n,Lt);return this._applyVerticalGroundOffsetView(e,o,n,a),kt(this.parameters,a,o,n,s),this._applyPolygonOffsetView(a,o,i[3],n,a),this._applyCenterOffsetView(a,i,a),a}applyShaderOffsetsNDC(e,t,r,i,n){return this._applyCenterOffsetNDC(e,t,r,i),null!=n&&(0,Re.c)(n,i),this._applyPolygonOffsetNDC(i,t,r,i),i}_applyPolygonOffsetView(e,t,r,i,n){const s=i.aboveGround?1:-1;let a=Math.sign(r);0===a&&(a=s);const o=s*a;if(this.parameters.shaderPolygonOffset<=0)return(0,Re.c)(n,e);const l=(0,ue.qE)(Math.abs(t.cosAngle),.01,1),c=1-Math.sqrt(1-l*l)/l/i.viewport[2];return(0,Re.h)(n,e,o>0?c:1/c),n}_applyVerticalGroundOffsetView(e,t,r,i){const n=(0,Re.l)(e),s=r.aboveGround?1:-1,a=r.computeRenderPixelSizeAtDist(n)*Ze.R,o=(0,Re.h)(bt,t.normal,s*a);return(0,Re.g)(i,e,o),i}_applyCenterOffsetView(e,t,r){const i="screen"!==this.parameters.centerOffsetUnits;return r!==e&&(0,Re.c)(r,e),i&&(r[0]+=t[0],r[1]+=t[1],t[2]&&((0,Re.n)(wt,r),(0,Re.g)(r,r,(0,Re.h)(wt,wt,t[2])))),r}_applyCenterOffsetNDC(e,t,r,i){const n="screen"!==this.parameters.centerOffsetUnits;return i!==e&&(0,Re.c)(i,e),n||(i[0]+=t[0]/r.fullWidth*2,i[1]+=t[1]/r.fullHeight*2),i}_applyPolygonOffsetNDC(e,t,r,i){const n=this.parameters.shaderPolygonOffset;if(e!==i&&(0,Re.c)(i,e),n){const e=r.aboveGround?1:-1,s=e*Math.sign(t[3]);i[2]-=(s||e)*n}return i}set visible(e){this._visible=e}get visible(){const{color:e,outlineSize:t,outlineColor:r}=this.parameters,i=e[3]>=pt.Q||t>=pt.Q&&r[3]>=pt.Q;return this._visible&&i}createGLMaterial(e){return new _t(e)}calculateRelativeScreenBounds(e,t,r=(0,b.vt)()){return function(e,t,r,i){i[0]=e.anchorPosition[0]*-t[0]+e.screenOffset[0]*r,i[1]=e.anchorPosition[1]*-t[1]+e.screenOffset[1]*r}(this.parameters,e,t,r),r[2]=r[0]+e[0],r[3]=r[1]+e[1],r}}class _t extends $e.m8{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){return this.updateTexture(this._material.parameters.textureId),this._material.setParameters(this.textureBindParameters),this.getTechnique(ot,e)}}function gt(e,t,r,i){return function(e){return(t=e)instanceof Float32Array&&t.length>=16||function(e){return Array.isArray(e)&&e.length>=16}(e);var t}(t)&&(t=(0,Ue.z0)(Ot,t)),(0,Re.q)(i.normal,e,t),(0,Re.t)(i.normal,i.normal,r.viewInverseTransposeMatrix),i.cosAngle=(0,Re.f)(Tt,zt),i}function yt(e,t,r,i,n,s,a,o,l){let c=t-n-i[0]*l[0],d=c+i[0]+2*n,u=r-n-i[1]*l[1],h=u+i[1]+2*n;const f=o.distanceFieldBoundingBox;return o.textureIsSignedDistanceField&&null!=f&&(c+=i[0]*f[0],u+=i[1]*f[1],d-=i[0]*(1-f[2]),h-=i[1]*(1-f[3]),c-=s,d+=s,u-=s,h+=s),(0,ce.hZ)(Rt,t,r),(0,ce.e$)(It,e,Rt,(0,ue.kU)(a)),It[0]>c&&It[0]<d&&It[1]>u&&It[1]<h}const vt=new class{constructor(){this.factor=new Je,this.factorAlignment=new Je}},bt=(0,k.vt)(),wt=(0,k.vt)(),xt=(0,le.vt)(),Tt=(0,k.vt)(),At=(0,k.vt)(),It=(0,de.vt)(),Rt=(0,de.vt)(),St=(0,Ge.vt)(),Ot=(0,Ge.vt)(),Mt=(0,ie.vt)(),Et=(0,le.vt)(),Ct=(0,k.vt)(),Ft=(0,k.vt)(),Dt=(0,le.vt)(),Lt={normal:Tt,cosAngle:0},Pt=1,Bt=2,Nt=(0,de.fA)(0,0),zt=(0,k.fA)(0,0,1);class Vt extends $e.NV{constructor(){super(...arguments),this.renderOccluded=Ye.m$.Occlude,this.isDecoration=!1,this.color=(0,le.CN)(1,1,1,1),this.polygonOffset=!1,this.anchorPosition=(0,de.fA)(.5,.5),this.screenOffset=[0,0],this.shaderPolygonOffset=1e-5,this.textureIsSignedDistanceField=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.outlineColor=(0,le.CN)(1,1,1,1),this.outlineSize=0,this.distanceFieldBoundingBox=(0,le.vt)(),this.rotation=0,this.hasRotation=!1,this.vvSizeEnabled=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.vvSymbolAnchor=null,this.vvSymbolRotationMatrix=null,this.hasSlicePlane=!1,this.pixelSnappingEnabled=!0,this.occlusionTest=!0,this.occludedFragmentFade=!1,this.horizonCullingEnabled=!1,this.centerOffsetUnits="world",this.drawAsLabel=!1,this.depthEnabled=!0,this.isFocused=!0,this.focusEffect="none",this.draped=!1,this.isLabel=!1}}const jt=(0,qe.BP)().vec3f(Ce.r.POSITION).vec3f(Ce.r.NORMAL).vec2i16(Ce.r.UVI).vec4u8(Ce.r.COLOR).vec2f(Ce.r.SIZE).f32(Ce.r.ROTATION).vec4f(Ce.r.CENTEROFFSETANDDISTANCE).vec4f(Ce.r.FEATUREATTRIBUTE),Ut=jt.clone().vec4u8(Ce.r.OLIDCOLOR);class Gt{constructor(){this.vertexBufferLayout=(0,We.E)()?Ut:jt}elementCount(e){return 6*e.get(Ce.r.POSITION).indices.length}write(e,t,r,i,n,s){const{position:a,normal:o,uvi:l,color:c,size:d,rotation:u,centerOffsetAndDistance:h,featureAttribute:f}=n;(0,Qe.Hk)(r.get(Ce.r.POSITION),e,a,s,6),(0,Qe.p1)(r.get(Ce.r.NORMAL),t,o,s,6);const p=r.get(Ce.r.UVI)?.data;let m=0,_=0,g=-1-et.f,y=-1-et.f;p&&p.length>=4&&(m=p[0],_=p[1],g=-1-p[2],y=-1-p[3]);let v=r.get(Ce.r.POSITION).indices.length,b=s;for(let e=0;e<v;++e)l.set(b,0,m),l.set(b,1,_),b++,l.set(b,0,g),l.set(b,1,_),b++,l.set(b,0,g),l.set(b,1,y),b++,l.set(b,0,g),l.set(b,1,y),b++,l.set(b,0,m),l.set(b,1,y),b++,l.set(b,0,m),l.set(b,1,_),b++;(0,Qe.tb)(r.get(Ce.r.COLOR),4,c,s,6);const{data:w,indices:x}=r.get(Ce.r.SIZE);v=x.length,b=s;for(let e=0;e<v;++e){const t=w[2*x[e]],r=w[2*x[e]+1];for(let e=0;e<6;++e)d.set(b,0,t),d.set(b,1,r),b++}if((0,Qe.uO)(r.get(Ce.r.ROTATION),u,s,6),r.get(Ce.r.CENTEROFFSETANDDISTANCE)?(0,Qe.Ut)(r.get(Ce.r.CENTEROFFSETANDDISTANCE),h,s,6):(0,Qe.Pq)(h,s,6*v),r.get(Ce.r.FEATUREATTRIBUTE)?(0,Qe.Ut)(r.get(Ce.r.FEATUREATTRIBUTE),f,s,6):(0,Qe.Pq)(f,s,6*v),null!=i){const e=r.get(Ce.r.POSITION)?.indices;if(e){const t=e.length,r=n.getField(Ce.r.OLIDCOLOR,He.XP);(0,Qe.vx)(i,r,t,s,6)}}return{numVerticesPerItem:6,numItems:v}}intersect(e,t,r,i,n,s,a){const{options:{selectionMode:o,hud:l,excludeLabels:c},point:d,camera:u}=i;if(!o||!l||c&&t.isLabel||!d)return;const h=this.vertexBufferLayout.createView(e),f=h.getField(Ce.r.POSITION,He.xs),p=h.getField(Ce.r.NORMAL,He.xs),m=h.getField(Ce.r.ROTATION,He.Y$),_=h.getField(Ce.r.SIZE,He.gH),g=h.getField(Ce.r.FEATUREATTRIBUTE,He.Eq),y=h.getField(Ce.r.CENTEROFFSETANDDISTANCE,He.Eq),v="screen"===t.centerOffsetUnits,b=(0,et.c)(t);if(null==f||null==p||null==m||null==_||null==y)return;const w=null==g?null:g.getVec(0,Dt),{scaleX:x,scaleY:T}=Ht(w,t,u.pixelRatio),A=f.count/6;for(let e=0;e<A;e++){const n=6*e;if(f.getVec(n,bt),null!=r&&(0,Re.g)(bt,bt,r),(0,Re.t)(bt,bt,u.viewMatrix),y.getVec(n,Et),(0,Re.i)(Ct,Et[0],Et[1],Et[2]),!v&&(bt[0]+=Ct[0],bt[1]+=Ct[1],0!==Ct[2])){const e=Ct[2];(0,Re.n)(Ct,bt),(0,Re.d)(bt,bt,(0,Re.h)(Ct,Ct,e))}if(p.getVec(n,wt),gt(wt,St,u,Lt),kt(t,bt,Lt,u,vt),u.applyProjection(bt,xt),xt[0]>-1){v&&(Ct[0]||Ct[1])&&(xt[0]+=Ct[0]*u.pixelRatio,0!==Ct[1]&&(xt[1]+=(0,Xe.m0)(Ct[1],vt.factorAlignment)*u.pixelRatio),u.unapplyProjection(xt,bt)),xt[0]+=t.screenOffset[0]*u.pixelRatio,xt[1]+=t.screenOffset[1]*u.pixelRatio,xt[0]=Math.floor(xt[0]),xt[1]=Math.floor(xt[1]),_.getVec(n,Nt),(0,Xe.MD)(Nt,vt.factor,Nt);const r=Pt*u.pixelRatio;let s=0;t.textureIsSignedDistanceField&&(s=Math.min(t.outlineSize,.5*Nt[0])*u.pixelRatio/2),Nt[0]*=x,Nt[1]*=T;const o=m.get(n),l=t.rotation+o;if(yt(d,xt[0],xt[1],Nt,r,s,l,t,b)){const t=i.ray;if((0,Re.t)(At,bt,(0,re.B8)(Mt,u.viewMatrix)),xt[0]=d[0],xt[1]=d[1],u.unprojectFromRenderScreen(xt,bt)){const r=(0,k.vt)();(0,Re.c)(r,t.direction);const i=1/(0,Re.l)(r);(0,Re.h)(r,r,i),a((0,Re.j)(t.origin,bt)*i,r,e,!0,1,At)}}}}}}function Ht(e,t,r){return null==e||null==t.vvSize?{scaleX:r,scaleY:r}:((0,ke.VC)(Ft,t,e),{scaleX:Ft[0]*r,scaleY:Ft[1]*r})}function kt(e,t,r,i,n){if(!e.verticalOffset?.screenLength)return e.screenSizePerspective||e.screenSizePerspectiveAlignment?qt(e,n,(0,Re.l)(t),r.cosAngle):(n.factor.scale=1,n.factorAlignment.scale=1),t;const s=(0,Re.l)(t),a=e.screenSizePerspectiveAlignment??e.screenSizePerspective,o=(0,Ke.kE)(i,s,e.verticalOffset,r.cosAngle,a);return qt(e,n,s,r.cosAngle),(0,Re.h)(r.normal,r.normal,o),(0,Re.g)(t,t,r.normal)}function qt(e,t,r,i){null!=e.screenSizePerspective?(0,Xe.cJ)(i,r,e.screenSizePerspective,t.factor):(t.factor.scale=1,t.factor.factor=0,t.factor.minScaleFactor=0),null!=e.screenSizePerspectiveAlignment?(0,Xe.cJ)(i,r,e.screenSizePerspectiveAlignment,t.factorAlignment):(t.factorAlignment.factor=t.factor.factor,t.factorAlignment.scale=t.factor.scale,t.factorAlignment.minScaleFactor=t.factor.minScaleFactor)}let Zt=class extends we{constructor(e){super(e),this._glMaterials=null,this._produces=new Map,this._renderGeometries=new Map,this._vaoCache=null,this._drawParameters=new je,this._bufferWriter=null,this.slicePlaneEnabled=!1,this.isGround=!1,this.type=e.material instanceof mt?Ie.dz.HUD:Ie.dz.OBJECT,this.layerViewUid=e.layerViewUid}get produces(){return this._produces}get numFeatures(){let e=0;return this._renderGeometries.forEach((t=>e+=t.numElements/6)),e}get usedMemory(){let e=0;return this._renderGeometries.forEach((t=>{e+=t.vao.usedMemory})),e}intersect(e,t,r,i,n,s){const{material:a,_bufferWriter:o,layerViewUid:l}=this,c=this._renderGeometries;if(0!==c.size&&null!=o.intersect)for(const[t,n]of c){const{buffer:t,localOrigin:s,items:c}=n;o.intersect(t.data,a.parameters,s,e,r,i,((t,r,i,n,s,o)=>{const d=c.objectIds[i];c.visibilities[i]&&e.handleObjectIntersection({object:{id:x.M,graphicUid:d,layerViewUid:l,boundingVolumeWorldSpace:new Be,geometries:[{material:a}]},geometryId:0,primIndex:i},t,r,n,null,s,o)}))}}initialize(){this._bufferWriter=this.material.createBufferWriter(),this.material.produces.forEach(((e,t)=>{this._produces.set(t,(t=>t!==ye.V.Highlight&&t!==ye.V.ShadowHighlight&&e(t)))}))}destroy(){this._glMaterials.dispose();const e=this._renderGeometries.keys();for(const t of e)this.removeRenderGeometryBuffer(t)}acquireTechniques(e){const t=this.material;if(!t.shouldRender(e))return null;const{output:r,bind:i}=e,n=t.produces.get(i.slot);if(!n?.(r))return null;if(r===ye.V.Highlight||r===ye.V.ShadowHighlight)return null;const s=this._glMaterials.load(e.rctx,i.slot,r);return s?.beginSlot(i)}render(e,t){const r=this._renderGeometries;if(0===r.size)return;const{bind:i}=e,n=i.slot===ze.N.OCCLUDER_MATERIAL||i.slot===ze.N.TRANSPARENT_OCCLUDER_MATERIAL?i.slot:null,s=e.rctx;s.runAppleAmdDriverHelper(),s.bindTechnique(t,i,this.material.parameters);const a=t.program;for(const[e,o]of r){const{vao:e,localOrigin:r,drawCalls:l}=o;this._drawParameters.origin=r,a.bindDraw(i,this.material.parameters,this._drawParameters),t.ensureAttributeLocations(e),s.bindVAO(e),s.setPipelineState(t.getPipeline(!1,n));for(const e of l)s.drawArrays(t.primitiveType,e.start,e.count)}}initializeRenderContext(e,t){this._glMaterials=new Ae(this.material,e.materials),this._vaoCache=e.renderContext.rctx.getVaoCache(this.material.vertexAttributeLocations,(0,ge.U)(this._bufferWriter.vertexBufferLayout))}uninitializeRenderContext(){}addRenderGeometryBuffer(e,t,r,i){this.removeRenderGeometryBuffer(e);const{data:n,elementCount:s}=t,a=this._vaoCache.newVao(n.byteLength);a.vertexBuffers.get("geometry").setSubData(new Uint8Array(n),0,0,n.byteLength);const o={localOrigin:i,numElements:s,buffer:t,items:r,vao:a,drawCalls:this._produceDrawCalls(r)};this._renderGeometries.set(e,o)}updateRenderGeometryBuffer(e,t,r,i){const{data:n,elementCount:s}=t,a=this._renderGeometries.get(e);if(null==a)return;this._vaoCache.deleteVao(a.vao);const o=this._vaoCache.newVao(n.byteLength);o.vertexBuffers.get("geometry").setSubData(new Uint8Array(n),0,0,n.byteLength),a.localOrigin=i,a.numElements=s,a.buffer=t,a.items=r,a.vao=o,a.drawCalls=this._produceDrawCalls(r)}removeRenderGeometryBuffer(e){const t=this._renderGeometries.get(e);null!=t&&(this._vaoCache.deleteVao(t.vao),this._renderGeometries.delete(e))}updateVisibility(e,t){const r=this._renderGeometries.get(e);if(null==r)return;const{items:i}=r;if(i.visibilities.length!==t.length)throw new Error("Unexpected mismatch between old and new visibility flag buffer length.");i.visibilities=t,r.drawCalls=this._produceDrawCalls(i)}hasHighlight(){return!1}_produceDrawCalls(e){const{visibilities:t,ranges:r}=e,i=[];if(function(e){return"numItems"in e}(r)){if(0===r.numItems)return[];const e=r.numVertices;let n=null;for(let s=0;s<r.numItems;++s)t[s]?null==n?(n={start:s*e,count:e},i.push(n)):n.count+=e:n=null}else{const e=r.counts,n=e.length;if(0===n)return[];let s=null,a=0;for(let r=0;r<n;++r){const n=t[r],o=e[r];n?null==s?(s={start:a,count:o},i.push(s)):s.count+=o:s=null,a+=o}}return i}};(0,i._)([(0,o.MZ)({constructOnly:!0})],Zt.prototype,"material",void 0),Zt=(0,i._)([(0,d.$)("esri.views.3d.layers.graphics.pipeline.rendering.DirectRenderer")],Zt);var Wt,$t,Yt,Xt,Jt=r(91869),Qt=r(90629),Kt=r(87317),er=r(82919),tr=r(71351),rr=r(44280);r(3694),(Xt=Wt||(Wt={}))[Xt.Default=0]="Default",Xt[Xt.Screenshot=1]="Screenshot",Xt[Xt.ObjectAndLayerID=2]="ObjectAndLayerID",function(e){e[e.TOP=0]="TOP",e[e.RIGHT=1]="RIGHT",e[e.BOTTOM=2]="BOTTOM",e[e.LEFT=3]="LEFT"}($t||($t={}));let ir=Yt=class extends _.A{constructor(e){super(e),this._ray=(0,tr.vt)(),this._viewport=(0,le.fA)(0,0,1,1),this._padding=(0,le.fA)(0,0,0,0),this._fov=55/180*Math.PI,this._nearFar=(0,de.fA)(1,1e3),this._viewDirty=!0,this._viewMatrix=(0,ie.vt)(),this._viewProjectionDirty=!0,this._viewProjectionMatrix=(0,ie.vt)(),this._viewInverseTransposeMatrixDirty=!0,this._viewInverseTransposeMatrix=(0,ie.vt)(),this._frustumDirty=!0,this._frustum=(0,er.vt)(),this._fullViewport=(0,le.vt)(),this._pixelRatio=1,this.row=0,this.column=0,this._rows=1,this._columns=1,this._center=(0,k.vt)(),this._up=(0,k.vt)(),this.relativeElevation=0}get pixelRatio(){return this._pixelRatio}set pixelRatio(e){this._pixelRatio=e>0?e:1}get rows(){return this._rows}set rows(e){this._rows=Math.max(1,e)}get columns(){return this._columns}set columns(e){this._columns=Math.max(1,e)}get eye(){return this._ray.origin}set eye(e){this._compareAndSetView(e,this._ray.origin)}get center(){return this._center}set center(e){this._compareAndSetView(e,this._center,"_center")}get ray(){return(0,Re.d)(this._ray.direction,this.center,this.eye),this._ray}get up(){return this._up}set up(e){this._compareAndSetView(e,this._up,"_up")}get viewMatrix(){return this._ensureViewClean(),this._viewMatrix}set viewMatrix(e){(0,re.C)(this._viewMatrix,e),this.notifyChange("_viewMatrix"),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get viewForward(){return this._ensureViewClean(),(0,Re.i)((0,k.vt)(),-this._viewMatrix[2],-this._viewMatrix[6],-this._viewMatrix[10])}get viewUp(){return this._ensureViewClean(),(0,Re.i)((0,k.vt)(),this._viewMatrix[1],this._viewMatrix[5],this._viewMatrix[9])}get viewRight(){return this._ensureViewClean(),(0,Re.i)((0,k.vt)(),this._viewMatrix[0],this._viewMatrix[4],this._viewMatrix[8])}get nearFar(){return this._nearFar}get near(){return this._nearFar[0]}set near(e){this._nearFar[0]!==e&&(this._nearFar[0]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_nearFar"))}get far(){return this._nearFar[1]}set far(e){this._nearFar[1]!==e&&(this._nearFar[1]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_nearFar"))}get viewport(){return this._viewport}set viewport(e){this.x=e[0],this.y=e[1],this.width=e[2],this.height=e[3]}get screenViewport(){if(1===this.pixelRatio)return this._viewport;const e=(0,Kt.b)((0,le.vt)(),this._viewport,1/this.pixelRatio),t=this._get("screenViewport");return t&&(0,Kt.e)(e,t)?t:e}get screenPadding(){if(1===this.pixelRatio)return this._padding;const e=(0,Kt.b)((0,le.vt)(),this._padding,1/this.pixelRatio),t=this._get("screenPadding");return t&&(0,Kt.e)(e,t)?t:e}get x(){return this._viewport[0]}set x(e){e+=this._padding[$t.LEFT],this._viewport[0]!==e&&(this._viewport[0]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get y(){return this._viewport[1]}set y(e){e+=this._padding[$t.BOTTOM],this._viewport[1]!==e&&(this._viewport[1]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get width(){return this._viewport[2]}set width(e){this._viewport[2]!==e&&(this._viewport[2]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get height(){return this._viewport[3]}set height(e){this._viewport[3]!==e&&(this._viewport[3]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get fullWidth(){return this._viewport[2]+this._padding[$t.RIGHT]+this._padding[$t.LEFT]}set fullWidth(e){this.width=e-(this._padding[$t.RIGHT]+this._padding[$t.LEFT])}get fullHeight(){return this._viewport[3]+this._padding[$t.TOP]+this._padding[$t.BOTTOM]}set fullHeight(e){this.height=e-(this._padding[$t.TOP]+this._padding[$t.BOTTOM])}get fullViewport(){return this._fullViewport[0]=this._viewport[0]-this._padding[$t.LEFT],this._fullViewport[1]=this._viewport[1]-this._padding[$t.BOTTOM],this._fullViewport[2]=this.fullWidth,this._fullViewport[3]=this.fullHeight,this._fullViewport}get _aspect(){return this.width/this.height}get padding(){return this._padding}set padding(e){(0,Kt.a)(this._padding,e)||(this._viewport[0]+=e[$t.LEFT]-this._padding[$t.LEFT],this._viewport[1]+=e[$t.BOTTOM]-this._padding[$t.BOTTOM],this._viewport[2]-=e[$t.RIGHT]+e[$t.LEFT]-(this._padding[$t.RIGHT]+this._padding[$t.LEFT]),this._viewport[3]-=e[$t.TOP]+e[$t.BOTTOM]-(this._padding[$t.TOP]+this._padding[$t.BOTTOM]),(0,Kt.c)(this._padding,e),this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_padding"),this.notifyChange("_viewport"))}get viewProjectionMatrix(){return this._viewProjectionDirty&&((0,re.lw)(this._viewProjectionMatrix,this.projectionMatrix,this.viewMatrix),this._viewProjectionDirty=!1),this._viewProjectionMatrix}get projectionMatrix(){return this._projectionMatrixInternal}get inverseProjectionMatrix(){return(0,re.B8)((0,ie.vt)(),this.projectionMatrix)||this._get("inverseProjectionMatrix")||(0,ie.vt)()}get fov(){return this._fov}set fov(e){this._fov=e,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovX(){return function(e,t,r){return 2*Math.atan(t*Math.tan(.5*e)/Math.sqrt(t*t+r*r))}(this._fov,this.width,this.height)}set fovX(e){this._fov=function(e,t,r){return 2*Math.atan(Math.sqrt(t*t+r*r)*Math.tan(.5*e)/t)}(e,this.width,this.height),this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovY(){return function(e,t,r){return 2*Math.atan(r*Math.tan(.5*e)/Math.sqrt(t*t+r*r))}(this._fov,this.width,this.height)}set fovY(e){this._fov=function(e,t,r){return 2*Math.atan(Math.sqrt(t*t+r*r)*Math.tan(.5*e)/r)}(e,this.width,this.height),this._viewProjectionDirty=!0,this._frustumDirty=!0}get distance(){return(0,Re.j)(this.center,this.eye)}get frustum(){return this._recomputeFrustum(),this._frustum}get viewInverseTransposeMatrix(){return(this._viewInverseTransposeMatrixDirty||this._viewDirty)&&((0,re.B8)(this._viewInverseTransposeMatrix,this.viewMatrix),(0,re.mg)(this._viewInverseTransposeMatrix,this._viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this._viewInverseTransposeMatrix}depthNDCToWorld(e){const{near:t,far:r}=this;return 2*t*r/(r+t-e*(r-t))}get perRenderPixelRatio(){return Math.tan(this.fovX/2)/(this.width/2)}get perScreenPixelRatio(){return this.perRenderPixelRatio*this.pixelRatio}get aboveGround(){return null!=this.relativeElevation&&this.relativeElevation>=0}get _projectionMatrixInternal(){const e=this.width,t=this.height,r=this.near*Math.tan(this.fovY/2)*2,i=r*this._aspect,n=r/this.rows,s=i/this.columns,a=-i/2+this.column*s,o=a+s,l=-r/2+this.row*n,c=l+n,d=(0,re.$h)((0,ie.vt)(),a*(1+2*this._padding[$t.LEFT]/e),o*(1+2*this._padding[$t.RIGHT]/e),l*(1+2*this._padding[$t.BOTTOM]/t),c*(1+2*this._padding[$t.TOP]/t),this.near,this.far),u=this._get("projectionMatrix");return u&&(0,re.aI)(u,d)?u:d}copyFrom(e){(0,Re.c)(this._ray.origin,e.eye),this.center=e.center,this.up=e.up,(0,Kt.c)(this._viewport,e.viewport),this.notifyChange("_viewport"),(0,Kt.c)(this._padding,e.padding),this.notifyChange("_padding"),(0,ce.C)(this._nearFar,e.nearFar),this.notifyChange("_nearFar"),this._fov=e.fov,this.row=e.row,this.column=e.column,this.rows=e.rows,this.columns=e.columns,this.relativeElevation=e.relativeElevation;const t=e;return this._viewDirty=t._viewDirty,this._viewDirty||((0,re.C)(this._viewMatrix,e.viewMatrix),this.notifyChange("_viewMatrix")),this._viewProjectionDirty=!0,this._frustumDirty=t._frustumDirty,this._frustumDirty||((0,er.C)(this._frustum,e.frustum),this._frustumDirty=!1),t._viewInverseTransposeMatrixDirty?this._viewInverseTransposeMatrixDirty=!0:((0,re.C)(this._viewInverseTransposeMatrix,e.viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),(0,Kt.c)(this._fullViewport,e.fullViewport),this.pixelRatio=e.pixelRatio,this}copyViewFrom(e){this.eye=e.eye,this.center=e.center,this.up=e.up,this.fov=e.fov}clone(){return(new Yt).copyFrom(this)}equals(e){return(0,Re.p)(this.eye,e.eye)&&(0,Re.p)(this.center,e.center)&&(0,Re.p)(this.up,e.up)&&(0,Kt.a)(this._viewport,e.viewport)&&(0,Kt.a)(this._padding,e.padding)&&(0,ce.t2)(this.nearFar,e.nearFar)&&this._fov===e.fov&&this.pixelRatio===e.pixelRatio&&this.relativeElevation===e.relativeElevation&&this.row===e.row&&this.column===e.column&&this.rows===e.rows&&this.columns===e.columns}almostEquals(e){const t=Math.max(1,1/this.pixelRatio,1/e.pixelRatio);if(Math.abs(e.fov-this._fov)>=.001||(0,Kt.d)(e.screenPadding,this.screenPadding)>=t||(0,Kt.d)(this.screenViewport,e.screenViewport)>=t||this.row!==e.row||this.column!==e.column||this.rows!==e.rows||this.columns!==e.columns)return!1;(0,Re.a)(or,e.eye,e.center),(0,Re.a)(lr,this.eye,this.center);const r=(0,Re.f)(or,lr),i=(0,Re.z)(or),n=(0,Re.z)(lr),s=5e-4;return r*r>=(1-1e-10)*i*n&&(0,Re.y)(e.eye,this.eye)<Math.max(i,n)*s*s}computeRenderPixelSizeAt(e){return this.computeRenderPixelSizeAtDist(this._viewDirectionDistance(e))}computeRenderPixelSizeAtDist(e){return e*this.perRenderPixelRatio}computeScreenPixelSizeAt(e){return this.computeScreenPixelSizeAtDist(this._viewDirectionDistance(e))}_viewDirectionDistance(e){return Math.abs((0,rr.gr)(this.viewForward,(0,Re.d)(or,e,this.eye)))}computeScreenPixelSizeAtDist(e){return e*this.perScreenPixelRatio}computeDistanceFromRadius(e,t){return e/Math.tan(Math.min(this.fovX,this.fovY)/(2*(t||1)))}getScreenCenter(e=(0,Qt.gs)()){return e[0]=(this.padding[$t.LEFT]+this.width/2)/this.pixelRatio,e[1]=(this.padding[$t.TOP]+this.height/2)/this.pixelRatio,e}getRenderCenter(e,t=.5,r=.5){return e[0]=this.padding[$t.LEFT]+this.width*t,e[1]=this.padding[$t.BOTTOM]+this.height*r,e[2]=.5,e}setGLViewport(e){const t=this.viewport,r=this.padding;e.setViewport(t[0]-r[3],t[1]-r[2],t[2]+r[1]+r[3],t[3]+r[0]+r[2])}applyProjection(e,t){e!==sr&&(0,Re.c)(sr,e),sr[3]=1,(0,Kt.t)(sr,sr,this.projectionMatrix);const r=Math.abs(sr[3]);(0,Re.h)(sr,sr,1/r);const i=this.fullViewport;t[0]=(0,ue.Cc)(0,i[0]+i[2],.5+.5*sr[0]),t[1]=(0,ue.Cc)(0,i[1]+i[3],.5+.5*sr[1]),t[2]=.5*(sr[2]+1),t[3]=r}unapplyProjection(e,t){const r=this.fullViewport;sr[0]=(e[0]/(r[0]+r[2])*2-1)*e[3],sr[1]=(e[1]/(r[1]+r[3])*2-1)*e[3],sr[2]=(2*e[2]-1)*e[3],sr[3]=e[3],null!=this.inverseProjectionMatrix&&((0,Kt.t)(sr,sr,this.inverseProjectionMatrix),t[0]=sr[0],t[1]=sr[1],t[2]=sr[2])}projectToScreen(e,t){return this.projectToRenderScreen(e,cr),this.renderToScreen(cr,t),t}projectToRenderScreen(e,t){if(sr[0]=e[0],sr[1]=e[1],sr[2]=e[2],sr[3]=1,(0,Kt.t)(sr,sr,this.viewProjectionMatrix),0===sr[3])return null;const r=sr;(0,Re.h)(r,r,1/Math.abs(sr[3]));const i=this.fullViewport,n=(0,ue.Cc)(0,i[0]+i[2],.5+.5*r[0]),s=(0,ue.Cc)(0,i[1]+i[3],.5+.5*r[1]);return"x"in t?(t.x=n,t.y=s):(t[0]=n,t[1]=s,t.length>2&&(t[2]=.5*(r[2]+1))),t}unprojectFromScreen(e,t){return this.unprojectFromRenderScreen(this.screenToRender(e,cr),t)}unprojectFromRenderScreen(e,t){if((0,re.lw)(ar,this.projectionMatrix,this.viewMatrix),!(0,re.B8)(ar,ar))return null;const r=this.fullViewport;return sr[0]=2*(e[0]-r[0])/r[2]-1,sr[1]=2*(e[1]-r[1])/r[3]-1,sr[2]=2*e[2]-1,sr[3]=1,(0,Kt.t)(sr,sr,ar),0===sr[3]?null:(t[0]=sr[0]/sr[3],t[1]=sr[1]/sr[3],t[2]=sr[2]/sr[3],t)}constrainWindowSize(e,t,r,i){const n=e*this.pixelRatio,s=t*this.pixelRatio,a=Math.max(n-r/2,0),o=Math.max(this.fullHeight-s-i/2,0),l=-Math.min(n-r/2,0),c=-Math.min(this.fullHeight-s-i/2,0),d=r-l- -Math.min(this.fullWidth-n-r/2,0),u=i-c- -Math.min(s-i/2,0);return[Math.round(a),Math.round(o),Math.round(d),Math.round(u)]}computeUp(e){e===se.RT.Global?this._computeUpGlobal():this._computeUpLocal()}screenToRender(e,t){const r=e[0]*this.pixelRatio,i=this.fullHeight-e[1]*this.pixelRatio;return t[0]=r,t[1]=i,t}renderToScreen(e,t){const r=e[0]/this.pixelRatio,i=(this.fullHeight-e[1])/this.pixelRatio;t[0]=r,t[1]=i}_computeUpGlobal(){(0,Re.d)(or,this.center,this.eye);const e=(0,Re.l)(this.center);e<1?((0,Re.i)(this._up,0,0,1),this._markViewDirty(),this.notifyChange("_up")):Math.abs((0,Re.f)(or,this.center))>.9999*(0,Re.l)(or)*e||((0,Re.e)(this._up,or,this.center),(0,Re.e)(this._up,this._up,or),(0,Re.n)(this._up,this._up),this.notifyChange("_up"),this._markViewDirty())}_computeUpLocal(){(0,Re.o)(or,this.eye,this.center),Math.abs(or[2])<=.9999&&((0,Re.h)(or,or,or[2]),(0,Re.i)(this._up,-or[0],-or[1],1-or[2]),(0,Re.n)(this._up,this._up),this.notifyChange("_up"),this._markViewDirty())}_compareAndSetView(e,t,r=""){"number"==typeof e[0]&&isFinite(e[0])&&"number"==typeof e[1]&&isFinite(e[1])&&"number"==typeof e[2]&&isFinite(e[2])?(0,Re.p)(e,t)||((0,Re.c)(t,e),this._markViewDirty(),r.length&&this.notifyChange(r)):c.A.getLogger("esri.views.3d.webgl-engine.lib.RenderCamera").warn("RenderCamera vector contains invalid number, ignoring value")}_markViewDirty(){this._viewDirty=!0,this._frustumDirty=!0,this._viewProjectionDirty=!0}_recomputeFrustum(){this._frustumDirty&&((0,er.ui)(this.viewMatrix,this.projectionMatrix,this._frustum),this._frustumDirty=!1)}_ensureViewClean(){this._viewDirty&&((0,re.t5)(this._viewMatrix,this.eye,this.center,this.up),this.notifyChange("_viewMatrix"),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0)}};(0,i._)([(0,o.MZ)()],ir.prototype,"_viewport",void 0),(0,i._)([(0,o.MZ)()],ir.prototype,"_padding",void 0),(0,i._)([(0,o.MZ)()],ir.prototype,"_fov",void 0),(0,i._)([(0,o.MZ)()],ir.prototype,"_nearFar",void 0),(0,i._)([(0,o.MZ)()],ir.prototype,"_viewDirty",void 0),(0,i._)([(0,o.MZ)()],ir.prototype,"_viewMatrix",void 0),(0,i._)([(0,o.MZ)()],ir.prototype,"_pixelRatio",void 0),(0,i._)([(0,o.MZ)()],ir.prototype,"pixelRatio",null),(0,i._)([(0,o.MZ)()],ir.prototype,"row",void 0),(0,i._)([(0,o.MZ)()],ir.prototype,"column",void 0),(0,i._)([(0,o.MZ)()],ir.prototype,"_rows",void 0),(0,i._)([(0,o.MZ)()],ir.prototype,"rows",null),(0,i._)([(0,o.MZ)()],ir.prototype,"_columns",void 0),(0,i._)([(0,o.MZ)()],ir.prototype,"columns",null),(0,i._)([(0,o.MZ)()],ir.prototype,"eye",null),(0,i._)([(0,o.MZ)()],ir.prototype,"center",null),(0,i._)([(0,o.MZ)()],ir.prototype,"_center",void 0),(0,i._)([(0,o.MZ)()],ir.prototype,"up",null),(0,i._)([(0,o.MZ)()],ir.prototype,"_up",void 0),(0,i._)([(0,o.MZ)()],ir.prototype,"viewMatrix",null),(0,i._)([(0,o.MZ)({readOnly:!0})],ir.prototype,"viewForward",null),(0,i._)([(0,o.MZ)({readOnly:!0})],ir.prototype,"viewUp",null),(0,i._)([(0,o.MZ)({readOnly:!0})],ir.prototype,"viewRight",null),(0,i._)([(0,o.MZ)({readOnly:!0})],ir.prototype,"nearFar",null),(0,i._)([(0,o.MZ)()],ir.prototype,"near",null),(0,i._)([(0,o.MZ)()],ir.prototype,"far",null),(0,i._)([(0,o.MZ)()],ir.prototype,"viewport",null),(0,i._)([(0,o.MZ)({readOnly:!0})],ir.prototype,"screenViewport",null),(0,i._)([(0,o.MZ)({readOnly:!0})],ir.prototype,"screenPadding",null),(0,i._)([(0,o.MZ)()],ir.prototype,"x",null),(0,i._)([(0,o.MZ)()],ir.prototype,"y",null),(0,i._)([(0,o.MZ)()],ir.prototype,"width",null),(0,i._)([(0,o.MZ)()],ir.prototype,"height",null),(0,i._)([(0,o.MZ)()],ir.prototype,"fullWidth",null),(0,i._)([(0,o.MZ)()],ir.prototype,"fullHeight",null),(0,i._)([(0,o.MZ)({readOnly:!0})],ir.prototype,"_aspect",null),(0,i._)([(0,o.MZ)()],ir.prototype,"padding",null),(0,i._)([(0,o.MZ)({readOnly:!0})],ir.prototype,"projectionMatrix",null),(0,i._)([(0,o.MZ)({readOnly:!0})],ir.prototype,"inverseProjectionMatrix",null),(0,i._)([(0,o.MZ)()],ir.prototype,"fov",null),(0,i._)([(0,o.MZ)()],ir.prototype,"fovX",null),(0,i._)([(0,o.MZ)()],ir.prototype,"fovY",null),(0,i._)([(0,o.MZ)()],ir.prototype,"viewInverseTransposeMatrix",null),(0,i._)([(0,o.MZ)({readOnly:!0})],ir.prototype,"_projectionMatrixInternal",null),(0,i._)([(0,o.MZ)()],ir.prototype,"relativeElevation",void 0),ir=Yt=(0,i._)([(0,d.$)("esri.views.3d.webgl.RenderCamera")],ir);const nr=ir,sr=(0,le.vt)(),ar=(0,ie.vt)(),or=(0,k.vt)(),lr=(0,k.vt)(),cr=(0,Qt.r_)();var dr=r(39341);class ur{constructor(e=1/0,t=-1/0){this.near=e,this.far=t}set(e,t){this.near=e,this.far=t}union(e){null!=e&&(this.near=Math.min(this.near,e.near),this.far=Math.max(this.far,e.far))}within(e){return this.near<=e&&e<=this.far}static{this.zero=new ur(0,0)}}var hr=r(78230),fr=r(34275),pr=r(94656);const mr=()=>c.A.getLogger("esri.views.webgl.BufferObject");class _r{static createIndex(e,t,r){return new _r(e,st.NZ.ELEMENT_ARRAY_BUFFER,t,r)}static createVertex(e,t,r){return new _r(e,st.NZ.ARRAY_BUFFER,t,r)}static createUniform(e,t,r){return new _r(e,st.NZ.UNIFORM_BUFFER,t,r)}static createPixelPack(e,t=st._U.STREAM_READ,r){const i=new _r(e,st.NZ.PIXEL_PACK_BUFFER,t);return r&&i.setSize(r),i}static createPixelUnpack(e,t=st._U.STREAM_DRAW,r){return new _r(e,st.NZ.PIXEL_UNPACK_BUFFER,t,r)}static createTransformFeedback(e,t=st._U.STATIC_DRAW,r){const i=new _r(e,st.NZ.TRANSFORM_FEEDBACK_BUFFER,t);return i.setSize(r),i}constructor(e,t,r,i){this._context=e,this.bufferType=t,this.usage=r,this._glName=null,this._size=-1,this._indexType=void 0,e.instanceCounter.increment(st.vt.BufferObject,this),this._glName=this._context.gl.createBuffer(),(0,pr.Y2)(this._context.gl),i&&this.setData(i)}get glName(){return this._glName}get size(){return this._size}get indexType(){return this._indexType}get usedMemory(){if(this.bufferType===st.NZ.ELEMENT_ARRAY_BUFFER){if(this._indexType===st.pe.UNSIGNED_INT)return 4*this._size;if(this._indexType===st.pe.UNSIGNED_SHORT)return 2*this._size}return this._size}get _isVAOAware(){return this.bufferType===st.NZ.ELEMENT_ARRAY_BUFFER||this.bufferType===st.NZ.ARRAY_BUFFER}dispose(){this._context?.gl?(this._glName&&(this._context.gl.deleteBuffer(this._glName),this._glName=null),this._context.instanceCounter.decrement(st.vt.BufferObject,this),this._context=null):this._glName&&mr().warn("Leaked WebGL buffer object")}setSize(e,t=null){if(this.bufferType===st.NZ.ELEMENT_ARRAY_BUFFER&&null!=t)switch(this._indexType=t,t){case st.pe.UNSIGNED_SHORT:e*=2;break;case st.pe.UNSIGNED_INT:e*=4}this._setBufferData(e)}setData(e){if(!e)return;let t=e.byteLength;this.bufferType===st.NZ.ELEMENT_ARRAY_BUFFER&&((0,fr.mg)(e)?this._indexType=st.pe.UNSIGNED_BYTE:(0,fr.jq)(e)?(t/=2,this._indexType=st.pe.UNSIGNED_SHORT):(0,fr.XJ)(e)&&(t/=4,this._indexType=st.pe.UNSIGNED_INT)),this._setBufferData(t,e)}_setBufferData(e,t=null){this._size=e;const r=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);const i=this._context.gl;null!=t?i.bufferData(this.bufferType,t,this.usage):i.bufferData(this.bufferType,e,this.usage),(0,pr.Y2)(i),this._isVAOAware&&this._context.bindVAO(r)}setSubData(e,t,r,i){if(!e)return;const n=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);const{gl:s}=this._context;s.bufferSubData(this.bufferType,t*e.BYTES_PER_ELEMENT,e,r,i-r),(0,pr.Y2)(s),this._isVAOAware&&this._context.bindVAO(n)}getSubData(e,t=0,r,i){if(r<0||i<0)return;const n=function(e){return(0,g.Xj)(e)}(e)?e.BYTES_PER_ELEMENT:1;if(n*((r??0)+(i??0))>e.byteLength)return;t+n*(i??0)>this.usedMemory&&mr().warn("Potential problem getting subdata: requested data exceeds buffer size!");const s=this._context.gl;this.bufferType===st.NZ.TRANSFORM_FEEDBACK_BUFFER?(this._context.bindBuffer(this,st.NZ.TRANSFORM_FEEDBACK_BUFFER),s.getBufferSubData(st.NZ.TRANSFORM_FEEDBACK_BUFFER,t,e,r,i),this._context.unbindBuffer(st.NZ.TRANSFORM_FEEDBACK_BUFFER)):(this._context.bindBuffer(this,st.NZ.COPY_READ_BUFFER),s.getBufferSubData(st.NZ.COPY_READ_BUFFER,t,e,r,i),this._context.unbindBuffer(st.NZ.COPY_READ_BUFFER))}async getSubDataAsync(e,t=0,r,i){await this._context.clientWaitAsync(),this.getSubData(e,t,r,i)}}class gr{constructor(e,t,r){this._elementSize=t,this._buffer=_r.createVertex(e,st._U.STATIC_DRAW),this.resize(r)}destroy(){this._buffer.dispose()}get elementSize(){return this._elementSize}get capacity(){return this._capacity}get array(){return this._array}get buffer(){return this._buffer}get usedMemory(){return this._array.byteLength+this._buffer.usedMemory}copyRange(e,t,r,i=0){const n=new Uint8Array(this.array,e*this.elementSize,(t-e)*this.elementSize);new Uint8Array(r.array,i*this.elementSize).set(n)}transferAll(){this._buffer.setData(this._array)}transferRange(e,t){const r=e*this._elementSize,i=t*this._elementSize;this._buffer.setSubData(new Uint8Array(this._array),r,r,i)}resize(e){const t=e*this._elementSize,r=new ArrayBuffer(t);this._array&&(e>=this._capacity?new Uint8Array(r).set(new Uint8Array(this._array)):new Uint8Array(r).set(new Uint8Array(this._array).subarray(0,e*this._elementSize))),this._array=r,this._buffer.setSize(t),this._capacity=e}}class yr{constructor(e){this.modelOriginHi=e.getField(Ce.r.INSTANCEMODELORIGINHI,He.xs),this.modelOriginLo=e.getField(Ce.r.INSTANCEMODELORIGINLO,He.xs),this.model=e.getField(Ce.r.INSTANCEMODEL,He.jZ),this.modelNormal=e.getField(Ce.r.INSTANCEMODELNORMAL,He.jZ),this.featureAttribute=e.getField(Ce.r.INSTANCEFEATUREATTRIBUTE,He.Eq),this.color=e.getField(Ce.r.INSTANCECOLOR,He.XP),this.objectAndLayerIdColor=e.getField(Ce.r.INSTANCEOBJECTANDLAYERIDCOLOR,He.XP)}}class vr{constructor(e,t){this._rctx=e,this._instanceBufferLayout=t,this._headIndex=0,this._tailIndex=0,this._firstIndex=null,this._captureFirstIndex=!0,this._updating=!1,this._prevHeadIndex=0,this._resized=!1,this._capacity=1}destroy(){this._buffer&&this._buffer.destroy()}get buffer(){return this._buffer.buffer}get view(){return this._view}get capacity(){return this._capacity}get size(){const e=this._headIndex,t=this._tailIndex;return e>=t?e-t:e+this._capacity-t}get isEmpty(){return this._headIndex===this._tailIndex}get isFull(){return this._tailIndex===(this._headIndex+1)%this._capacity}get headIndex(){return this._headIndex}get tailIndex(){return this._tailIndex}get firstIndex(){return this._firstIndex}get usedMemory(){return this._buffer?.usedMemory??0}reset(){this._headIndex=0,this._tailIndex=0,this._firstIndex=null}startUpdateCycle(){this._captureFirstIndex=!0}beginUpdate(){(0,Ee.vA)(!this._updating,"already updating"),this._updating=!0,this._prevHeadIndex=this._headIndex}endUpdate(){(0,Ee.vA)(this._updating,"not updating"),this.size<g.$U*this.capacity&&this._shrink(),this._resized?(this._buffer.transferAll(),this._resized=!1):this._transferRange(this._prevHeadIndex,this._headIndex),this._updating=!1}allocateHead(){(0,Ee.vA)(this._updating,"not updating"),this.isFull&&this._grow();const e=this.headIndex;return this._captureFirstIndex&&(this._firstIndex=e,this._captureFirstIndex=!1),this._incrementHead(),(0,Ee.vA)(this._headIndex!==this._tailIndex,"invalid pointers"),e}freeTail(){(0,Ee.vA)(this._updating,"not updating"),(0,Ee.vA)(this.size>0,"invalid size");const e=this._tailIndex===this._firstIndex;this._incrementTail(),e&&(this._firstIndex=this._tailIndex)}_grow(){const e=Math.max(br,Math.floor(this._capacity*g.Ji));this._resize(e)}_shrink(){const e=Math.max(br,Math.floor(this._capacity*g.He));this._resize(e)}_resize(e){if((0,Ee.vA)(this._updating,"not updating"),e===this._capacity)return;const t=new gr(this._rctx,this._instanceBufferLayout.stride,e);if(this._buffer){this._firstIndex&&(this._firstIndex=(this._firstIndex+this._capacity-this._tailIndex)%this._capacity);const e=this.size,r=this._compactInstances(t);(0,Ee.vA)(r===e,"invalid compaction"),this._buffer.destroy(),this._tailIndex=0,this._headIndex=r,this._prevHeadIndex=0}this._resized=!0,this._capacity=e,this._buffer=t,this._view=new yr(this._instanceBufferLayout.createView(this._buffer.array))}_compactInstances(e){const t=this._headIndex,r=this._tailIndex;return r<t?(this._buffer.copyRange(r,t,e),t-r):r>t?(this._buffer.copyRange(r,this._capacity,e),t>0&&this._buffer.copyRange(0,t,e,this._capacity-r),t+(this._capacity-r)):0}_incrementHead(e=1){this._headIndex=(this._headIndex+e)%this._capacity}_incrementTail(e=1){this._tailIndex=(this._tailIndex+e)%this._capacity}_transferRange(e,t){e<t?this._buffer.transferRange(e,t):e>t&&(t>0&&this._buffer.transferRange(0,t),this._buffer.transferRange(e,this._capacity))}}const br=64;var wr;!function(e){e[e.ALLOCATED=1]="ALLOCATED",e[e.DEFAULT_ACTIVE=2]="DEFAULT_ACTIVE",e[e.VISIBLE=4]="VISIBLE",e[e.HIGHLIGHT=8]="HIGHLIGHT",e[e.HIGHLIGHT_ACTIVE=16]="HIGHLIGHT_ACTIVE",e[e.REMOVE=32]="REMOVE",e[e.TRANSFORM_CHANGED=64]="TRANSFORM_CHANGED",e[e.ACTIVE=18]="ACTIVE"}(wr||(wr={}));class xr{constructor(e){this.localTransform=e.getField(Ce.r.LOCALTRANSFORM,He.E$),this.globalTransform=e.getField(Ce.r.GLOBALTRANSFORM,He.E$),this.modelOrigin=e.getField(Ce.r.MODELORIGIN,He.Xm),this.model=e.getField(Ce.r.INSTANCEMODEL,He.jZ),this.modelNormal=e.getField(Ce.r.INSTANCEMODELNORMAL,He.jZ),this.modelScaleFactors=e.getField(Ce.r.MODELSCALEFACTORS,He.gH),this.boundingSphere=e.getField(Ce.r.BOUNDINGSPHERE,He.Aj),this.featureAttribute=e.getField(Ce.r.FEATUREATTRIBUTE,He.Eq),this.color=e.getField(Ce.r.COLOR,He.XP),this.objectAndLayerIdColor=e.getField(Ce.r.OLIDCOLOR,He.XP),this.state=e.getField(Ce.r.STATE,He.SL),this.lodLevel=e.getField(Ce.r.LODLEVEL,He.SL)}}let Tr=class extends _.A{constructor(e,t){super(e),this.events=new n.A,this._capacity=0,this._size=0,this._next=0,this._highlightOptionsMap=new Map,this._highlightOptionsMapPrev=new Map,this._layout=function(e){let t=(0,qe.BP)().mat4f64(Ce.r.LOCALTRANSFORM).mat4f64(Ce.r.GLOBALTRANSFORM).vec4f64(Ce.r.BOUNDINGSPHERE).vec3f64(Ce.r.MODELORIGIN).mat3f(Ce.r.INSTANCEMODEL).mat3f(Ce.r.INSTANCEMODELNORMAL).vec2f(Ce.r.MODELSCALEFACTORS);return e.includes(Ce.r.FEATUREATTRIBUTE)&&(t=t.vec4f(Ce.r.FEATUREATTRIBUTE)),e.includes(Ce.r.COLOR)&&(t=t.vec4u8(Ce.r.COLOR)),e.includes(Ce.r.OLIDCOLOR)&&(t=t.vec4u8(Ce.r.OLIDCOLOR)),t=t.u8(Ce.r.STATE).u8(Ce.r.LODLEVEL),t}(t),this._capacity=br,this._buffer=this._layout.createBuffer(this._capacity),this._view=new xr(this._buffer)}get capacity(){return this._capacity}get size(){return this._size}get view(){return this._view}addInstance(){this._size+1>this._capacity&&this._grow();const e=this._findSlot();return this._view.state.set(e,wr.ALLOCATED),this._size++,this.events.emit("instances-changed"),e}removeInstance(e){const t=this._view.state;(0,Ee.vA)(e>=0&&e<this._capacity&&!!(t.get(e)&wr.ALLOCATED),"invalid instance handle"),this._getStateFlag(e,wr.ACTIVE)?this._setStateFlags(e,wr.REMOVE):this.freeInstance(e),this.events.emit("instances-changed")}freeInstance(e){const t=this._view.state;(0,Ee.vA)(e>=0&&e<this._capacity&&!!(t.get(e)&wr.ALLOCATED),"invalid instance handle"),t.set(e,0),this._size--}setLocalTransform(e,t,r=!0){this._view.localTransform.setMat(e,t),r&&this.updateModelTransform(e)}getLocalTransform(e,t){this._view.localTransform.getMat(e,t)}setGlobalTransform(e,t,r=!0){this._view.globalTransform.setMat(e,t),r&&this.updateModelTransform(e)}getGlobalTransform(e,t){this._view.globalTransform.getMat(e,t)}updateModelTransform(e){const t=this._view,r=Ar,i=Ir;t.localTransform.getMat(e,Rr),t.globalTransform.getMat(e,Sr);const n=(0,re.lw)(Sr,Sr,Rr);(0,Re.i)(r,n[12],n[13],n[14]),t.modelOrigin.setVec(e,r),(0,Ue.z0)(i,n),t.model.setMat(e,i);const s=(0,Oe.wp)(Ar,n);s.sort(),t.modelScaleFactors.set(e,0,s[1]),t.modelScaleFactors.set(e,1,s[2]),(0,Ue.B8)(i,i),(0,Ue.mg)(i,i),t.modelNormal.setMat(e,i),this._setStateFlags(e,wr.TRANSFORM_CHANGED),this.events.emit("instance-transform-changed",{index:e})}getModelTransform(e,t){const r=this._view;r.model.getMat(e,Ir),r.modelOrigin.getVec(e,Ar),t[0]=Ir[0],t[1]=Ir[1],t[2]=Ir[2],t[3]=0,t[4]=Ir[3],t[5]=Ir[4],t[6]=Ir[5],t[7]=0,t[8]=Ir[6],t[9]=Ir[7],t[10]=Ir[8],t[11]=0,t[12]=Ar[0],t[13]=Ar[1],t[14]=Ar[2],t[15]=1}applyShaderTransformation(e,t){null!=this.shaderTransformation&&this.shaderTransformation.applyTransform(this,e,t)}getCombinedModelTransform(e,t){return this.getModelTransform(e,t),null!=this.shaderTransformation&&this.shaderTransformation.applyTransform(this,e,t),t}getCombinedLocalTransform(e,t){this._view.localTransform.getMat(e,t),null!=this.shaderTransformation&&this.shaderTransformation.applyTransform(this,e,t)}getCombinedMaxScaleFactor(e){let t=this._view.modelScaleFactors.get(e,1);return null!=this.shaderTransformation&&(this.shaderTransformation.scaleFactor(Ar,this,e),t*=Math.max(Ar[0],Ar[1],Ar[2])),t}getCombinedMedianScaleFactor(e){let t=this._view.modelScaleFactors.get(e,0);return null!=this.shaderTransformation&&(this.shaderTransformation.scaleFactor(Ar,this,e),t*=function(e,t,r){return Math.max(Math.min(e,t),Math.min(Math.max(e,t),r))}(Ar[0],Ar[1],Ar[2])),t}getModel(e,t){this._view.model.getMat(e,t)}setFeatureAttribute(e,t){this._view.featureAttribute.setVec(e,t)}getFeatureAttribute(e,t){this._view.featureAttribute.getVec(e,t)}setColor(e,t){this._view.color.setVec(e,t)}setObjectAndLayerIdColor(e,t){this._view.objectAndLayerIdColor.setVec(e,t)}setVisible(e,t){t!==this.getVisible(e)&&(this._setStateFlag(e,wr.VISIBLE,t),this.events.emit("instance-visibility-changed",{index:e}))}getVisible(e){return this._getStateFlag(e,wr.VISIBLE)}setHighlight(e,t){const{_highlightOptionsMap:r}=this,i=r.get(e);t?t!==i&&(r.set(e,t),this._setStateFlag(e,wr.HIGHLIGHT,!0),this.events.emit("instance-highlight-changed")):i&&(r.delete(e),this._setStateFlag(e,wr.HIGHLIGHT,!1),this.events.emit("instance-highlight-changed"))}get highlightOptionsMap(){return this._highlightOptionsMap}getHighlightStateFlag(e){return this._getStateFlag(e,wr.HIGHLIGHT)}geHighlightOptionsPrev(e){const t=this._highlightOptionsMapPrev.get(e)??null;return this._highlightOptionsMapPrev.delete(e),t}getHighlightName(e){const t=this.highlightOptionsMap.get(e)??null;return t?this._highlightOptionsMapPrev.set(e,t):this._highlightOptionsMapPrev.delete(e),t}getState(e){return this._view.state.get(e)}getLodLevel(e){return this._view.lodLevel.get(e)}countFlags(e){let t=0;for(let r=0;r<this._capacity;++r)this.getState(r)&e&&++t;return t}_setStateFlags(e,t){const r=this._view.state;t=r.get(e)|t,r.set(e,t)}_clearStateFlags(e,t){const r=this._view.state;t=r.get(e)&~t,r.set(e,t)}_setStateFlag(e,t,r){r?this._setStateFlags(e,t):this._clearStateFlags(e,t)}_getStateFlag(e,t){return!!(this._view.state.get(e)&t)}_grow(){this._capacity=Math.max(br,Math.floor(this._capacity*g.Ji)),this._buffer=this._layout.createBuffer(this._capacity).copyFrom(this._buffer),this._view=new xr(this._buffer)}_findSlot(){const e=this._view.state;let t=this._next;for(;e.get(t)&wr.ALLOCATED;)t=t+1===this._capacity?0:t+1;return this._next=t+1===this._capacity?0:t+1,t}};(0,i._)([(0,o.MZ)({constructOnly:!0})],Tr.prototype,"shaderTransformation",void 0),(0,i._)([(0,o.MZ)()],Tr.prototype,"_size",void 0),(0,i._)([(0,o.MZ)({readOnly:!0})],Tr.prototype,"size",null),Tr=(0,i._)([(0,d.$)("esri.views.3d.webgl-engine.lib.lodRendering.InstanceData")],Tr);const Ar=(0,k.vt)(),Ir=(0,Ge.vt)(),Rr=(0,ie.vt)(),Sr=(0,ie.vt)();class Or extends hr.A{constructor(e,t){super((e=>(0,Se.w)(this._instanceData.view.boundingSphere.getVec(e,this._tmpSphere))),{maximumDepth:25}),this._instanceData=e,this._boundingSphere=t,this._tmpSphere=(0,Se.c)(),this._tmpMat4=(0,ie.vt)()}addInstance(e){const t=this._instanceData.view.boundingSphere,r=this._instanceData.getCombinedModelTransform(e,this._tmpMat4);(0,Re.t)((0,Se.a)(this._tmpSphere),this._boundingSphere.center,r),this._tmpSphere[3]=this._boundingSphere.radius*(0,Oe.hG)(r),t.setVec(e,this._tmpSphere),this.add([e])}removeInstance(e){this.remove([e])}}class Mr{constructor(e,t){this._worldSpaceRadius=e,this._minScreenSpaceRadii=t}selectLevel(e,t,r){const i=r.computeScreenPixelSizeAt(e),n=this._worldSpaceRadius*t/i;let s=0;for(let e=1;e<this._minScreenSpaceRadii.length;++e)n>=this._minScreenSpaceRadii[e]&&(s=e);return s}}var Er=r(42293);const Cr=()=>c.A.getLogger("esri.views.webgl.VertexArrayObject");let Fr=class{constructor(e,t,r,i,n=null){this._context=e,this._locations=t,this._layout=r,this._buffers=i,this._indexBuffer=n,this._glName=null,this._initialized=!1}get glName(){return this._glName}get context(){return this._context}get vertexBuffers(){return this._buffers}get indexBuffer(){return this._indexBuffer}get byteSize(){return Array.from(this._buffers.values()).reduce(((e,t)=>e+t.usedMemory),this._indexBuffer?.usedMemory??0)}get layout(){return this._layout}get locations(){return this._locations}get usedMemory(){return this.byteSize+(this._buffers.size+(this._indexBuffer?1:0))*w.i5}get cachedMemory(){return this.usedMemory}dispose(){this._context?(this._context.getBoundVAO()===this&&this._context.bindVAO(null),this._buffers.forEach((e=>e.dispose())),this._buffers.clear(),this._indexBuffer=(0,oe.WD)(this._indexBuffer),this.disposeVAOOnly()):(this._glName||this._buffers.size>0)&&Cr().warn("Leaked WebGL VAO")}disposeVAOOnly(){this._glName&&(this._context.gl.deleteVertexArray(this._glName),this._glName=null,this._context.instanceCounter.decrement(st.vt.VertexArrayObject,this)),this._context=null}initialize(){if(this._initialized)return;const{gl:e}=this._context,t=e.createVertexArray();e.bindVertexArray(t),this._bindLayout(),e.bindVertexArray(null),this._glName=t,this._context.instanceCounter.increment(st.vt.VertexArrayObject,this),this._initialized=!0}bind(){this.initialize(),this._context.gl.bindVertexArray(this.glName)}_bindLayout(){const{_buffers:e,_layout:t,_indexBuffer:r}=this;e||Cr().error("Vertex buffer dictionary is empty!");const i=this._context.gl;this._buffers.forEach(((e,r)=>{const i=t.get(r);i?(0,Er.yu)(this._context,this._locations,e,i):Cr().error("Vertex element descriptor is empty!")})),null!=r&&i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,r.glName)}unbind(){this.initialize(),this._context.gl.bindVertexArray(null)}};class Dr extends Fr{}class Lr{constructor(e,t){const r=e.renderContext.rctx,i=t.geometry,n=t.geometry.getRenderGeometry(),s=n.material;this._materials=e.materials,s.setParameters({instancedDoublePrecision:!0}),this.geometry=i,this.material=s,this.glMaterials=new Ae(s,this._materials),this.vertexBufferLayout=n.vertexBufferLayout,this.vbo=_r.createVertex(r,st._U.STATIC_DRAW,n.buffer),this.vao=new Dr(r,dr.D,new Map([["geometry",(0,ge.U)(n.vertexBufferLayout)]]),new Map([["geometry",this.vbo]])),this.vertexCount=n.elementCount}destroy(){this.glMaterials.dispose(),this.vbo.dispose(),this.vao.dispose()}get boundingInfo(){return this.geometry.boundingInfo}get triangleCount(){return this.vertexCount/3}get usedMemory(){return 128+this.vbo.usedMemory+this.vao.usedMemory}intersect(e,t,r,i,n,s,a,o){return this.geometry.intersect(e,t,r,i,n,s,a,o)}}class Pr{static async create(e,t,r){const i=await Promise.allSettled(t.components.map((t=>e.controller.schedule((()=>new Lr(e,t)),r)))),n=i.map((e=>"fulfilled"===e.status?e.value:null)).filter(g.Ru);if((0,s.G4)(r)||n.length!==i.length){n.forEach((e=>e.destroy())),(0,s.Te)(r);for(const e of i)if("rejected"===e.status)throw e.reason}return new Pr(t.minScreenSpaceRadius,n)}constructor(e,t){this.minScreenSpaceRadius=e,this.components=t}destroy(){this.components.forEach((e=>e.destroy()))}intersect(e,t,r,i,n,s,a){this.components.forEach((o=>o.intersect(e,t,r,i,n,s,this.boundingSphere,a)))}get boundingBox(){if(null==this._boundingBox){const e=(0,q.Ie)();this.components.forEach((t=>{null!=t.boundingInfo&&((0,q.iT)(e,t.boundingInfo.bbMin),(0,q.iT)(e,t.boundingInfo.bbMax))})),this._boundingBox=e}return this._boundingBox}get boundingSphere(){if(null==this._boundingSphere){const e=this.boundingBox,t=(0,k.vt)();(0,q.gX)(e,t),this._boundingSphere={center:t,radius:.5*(0,q._F)(e)}}return this._boundingSphere}get triangleCount(){return this.components.reduce(((e,t)=>e+t.triangleCount),0)}}var Br=r(97225),Nr=r(68197);new Nr.A("cyan"),new Nr.A("black");const zr="default";new Nr.A("yellow");var Vr=r(63076);let jr=class extends xe{constructor(e,t){super(e),this.type=Ie.dz.LOD,this.isGround=!1,this._levels=[],this._defaultRenderInstanceData=new Array,this._highlightRenderInstanceDataMap=new Map,this._instanceIndex=0,this._cycleStartIndex=0,this._slicePlane=!1,this._camera=new nr,this._updateCyclesWithStaticCamera=-1,this._needFullCycle=!1,this.produces=new Map([[ze.N.OPAQUE_MATERIAL,e=>this._produces(e)],[ze.N.TRANSPARENT_MATERIAL,e=>!!this._hasTransparentLevels()&&this._produces(e)]]),this._instanceData=new Tr({shaderTransformation:e.shaderTransformation},e.optionalFields),this.addHandles(t.registerTask(Vr.W6.LOD_RENDERER,this))}initialize(){this._instanceBufferLayout=function(e){let t=(0,qe.BP)().vec3f(Ce.r.INSTANCEMODELORIGINHI).vec3f(Ce.r.INSTANCEMODELORIGINLO).mat3f(Ce.r.INSTANCEMODEL).mat3f(Ce.r.INSTANCEMODELNORMAL);return null!=e&&e.includes("featureAttribute")&&(t=t.vec4f(Ce.r.INSTANCEFEATUREATTRIBUTE)),null!=e&&e.includes("color")&&(t=t.vec4u8(Ce.r.INSTANCECOLOR)),null!=e&&e.includes("objectAndLayerIdColor")&&(t=t.vec4u8(Ce.r.INSTANCEOBJECTANDLAYERIDCOLOR)),t}(this.optionalFields),this._glInstanceBufferLayout=(0,ge.U)(this._instanceBufferLayout,1),this.addHandles([this._instanceData.events.on("instances-changed",(()=>this._requestUpdateCycle())),this._instanceData.events.on("instance-transform-changed",(({index:e})=>{this._requestUpdateCycle(),this.metadata.notifyGraphicGeometryChanged(e)})),this._instanceData.events.on("instance-visibility-changed",(({index:e})=>{this._requestUpdateCycle(!0),this.metadata.notifyGraphicVisibilityChanged(e)})),this._instanceData.events.on("instance-highlight-changed",(()=>this._requestUpdateCycle(!0)))])}get _allRenderInstanceData(){return[this._defaultRenderInstanceData,...this._highlightRenderInstanceDataMap.values()]}get _allRenderInstanceDataExceptHighlightShadow(){const e=[this._defaultRenderInstanceData];for(const t of this._highlightRenderInstanceDataMap)t[0]!==zr&&e.push(t[1]);return e}hasHighlight(e){return this._highlightRenderInstanceDataMap.has(e)}get _enableLevelSelection(){return this.symbol.levels.length>1}get levels(){return this._levels}get baseBoundingBox(){return this._levels[this._levels.length-1].boundingBox}get baseBoundingSphere(){return this._levels[this._levels.length-1].boundingSphere}get baseMaterial(){return this._levels[this._levels.length-1].components[0].material}get slicePlaneEnabled(){return this._slicePlane}set slicePlaneEnabled(e){this._slicePlane=e}get layerViewUid(){return this.metadata.layerViewUid}get instanceData(){return this._instanceData}get hasEmissions(){return this._levels.some((e=>e.components.some((e=>e.material.hasEmissions))))}get usedMemory(){return this._allRenderInstanceData.reduce(((e,t)=>t.reduce(((e,t)=>e+t.usedMemory),e)),this._levels.reduce(((e,t)=>e+t.components.reduce(((e,t)=>e+t.usedMemory),0)),0))}get renderStats(){const e=this._instanceData.size,t=[];return this._levels.forEach(((e,r)=>{const i=this._allRenderInstanceData[0][r].size+this._allRenderInstanceData[1][r].size,n=e.triangleCount;t.push({renderedInstances:i,renderedTriangles:i*n,trianglesPerInstance:n})})),{totalInstances:e,renderedInstances:t.reduce(((e,t)=>e+t.renderedInstances),0),renderedTriangles:t.reduce(((e,t)=>e+t.renderedTriangles),0),levels:t}}_createRenderInstanceDataArray(e=[]){const{rctx:t}=this._context.renderContext;return this.symbol.levels.map((r=>{e.push(new vr(t,this._instanceBufferLayout))})),e}async initializeRenderContext(e,t){this._context=e,this._createRenderInstanceDataArray(this._defaultRenderInstanceData);const r=await Promise.allSettled(this.symbol.levels.map((r=>Pr.create(e,r,t)))),i=r.map((e=>"fulfilled"===e.status?e.value:null)).filter(g.Ru);if((0,s.G4)(t)||i.length!==r.length){i.forEach((e=>e.destroy())),(0,s.Te)(t);for(const e of r)if("rejected"===e.status)throw e.reason}this._levels=i,this._levelSelector=(e=>{const t=e.baseBoundingSphere.radius,r=e.levels.map((e=>e.minScreenSpaceRadius));return new Mr(t,r)})(this)}uninitializeRenderContext(){this._invalidateOctree(),this._levels.forEach((e=>e.destroy())),this._defaultRenderInstanceData.forEach((e=>e.destroy())),this._highlightRenderInstanceDataMap.forEach((e=>e.forEach((e=>e.destroy()))))}_hasTransparentLevels(){return this._levels.some((e=>e.components.some((e=>{const t=e.material.produces.get(ze.N.TRANSPARENT_MATERIAL);return t?.(ye.V.Color)}))))}hasHighlights(){return(0,Jt.Bs)(this._highlightRenderInstanceDataMap,(e=>e.some((e=>e.size>0))))}_produces(e){return(e!==ye.V.Highlight||this.hasHighlights())&&(e!==ye.V.ShadowHighlight||this.hasHighlight(zr))}prepareRender(e){if(!he.b.LOD_INSTANCE_RENDERER_DISABLE_UPDATES){if(this._enableLevelSelection){const t=e.bind.contentCamera.equals(this._camera);this._camera.copyFrom(e.bind.contentCamera),t||this._requestUpdateCycle()}this._needFullCycle&&(this.runTask(Vr.Bb),this._needFullCycle=!1)}}acquireTechniques(e){if(!this.baseMaterial.visible||!this.baseMaterial.isVisibleForOutput(e.output))return null;const t=this._getInstanceDatas(e);if(!t)return null;const r=new Array,i=this.levels;return t.forEach((t=>i.forEach((({components:i},n)=>i.forEach((i=>r.push(this._beginComponent(e,t[n],i)))))))),r}render(e,t){const r=this._getInstanceDatas(e);if(!r||null==t)return;let i=0;e.rctx.bindVAO();const n=this.levels;r.forEach((r=>n.forEach((({components:n},s)=>n.forEach((n=>this._renderComponent(e,t[i++],r[s],n,s)))))))}_getInstanceDatas(e){const{output:t,bind:r}=e,i=t===ye.V.Highlight,n=t===ye.V.ShadowHighlight,s=!i&&!n,a=t!==ye.V.ShadowExcludeHighlight;if(s)return a?this._allRenderInstanceData:this._allRenderInstanceDataExceptHighlightShadow;const{_highlightRenderInstanceDataMap:o}=this;if(a){if(i){const e=r.highlight?.name;if(!e)return null;const t=o.get(e);return t?[t]:null}const e=o.get(zr);return n?e?[e]:null:Array.from(o.values())}return null}intersect(e,t,r,i){if(!this.baseMaterial.visible||null==this._octree)return;const n=(0,k.vt)();(0,Re.d)(n,i,r);const s=n=>{this._instanceData.getCombinedModelTransform(n,kr),e.transform.set(kr),(0,Re.t)(qr,r,e.transform.inverse),(0,Re.t)(Zr,i,e.transform.inverse);const s=this._instanceData.getState(n),a=this._instanceData.getLodLevel(n),o=this._levels.length;(0,Ee.vA)(!!(s&wr.ACTIVE),"invalid instance state"),(0,Ee.vA)(a>=0&&a<o,"invaid lod level"),this._levels[a].intersect(e,t,qr,Zr,n,this.metadata,o)};this.baseMaterial.parameters.verticalOffset?this._octree.forEach(s):this._octree.forEachAlongRay(r,n,s)}notifyShaderTransformationChanged(){this._invalidateOctree(),this._requestUpdateCycle()}get _octree(){if(null==this._octreeCached){const e=this._instanceData,t=e.view?.state;if(!t)return null;this._octreeCached=new Or(e,this.baseBoundingSphere);for(let r=0;r<e.capacity;++r)t.get(r)&wr.ACTIVE&&this._octreeCached.addInstance(r)}return this._octreeCached}_invalidateOctree(){this._octreeCached=(0,oe.pR)(this._octreeCached)}queryDepthRange(e){if(null==this._octree)return new ur;const t=e.viewForward,r=this._octree.findClosest(t,hr.A.DepthOrder.FRONT_TO_BACK,e.frustum),i=this._octree.findClosest(t,hr.A.DepthOrder.BACK_TO_FRONT,e.frustum);if(null==r||null==i)return new ur;const n=e.eye,s=this._instanceData.view;s.boundingSphere.getVec(r,Hr),(0,Re.d)(Hr,Hr,n);const a=(0,Re.f)(Hr,t)-Hr[3];s.boundingSphere.getVec(i,Hr),(0,Re.d)(Hr,Hr,n);const o=(0,Re.f)(Hr,t)+Hr[3];return new ur(a,o)}_requestUpdateCycle(e=!1){this._updateCyclesWithStaticCamera=-1,this._cycleStartIndex=this._instanceIndex,e&&(this._needFullCycle=!0,this._context.requestRender())}_startUpdateCycle(){this._updateCyclesWithStaticCamera++,this._allRenderInstanceData.forEach((e=>e.forEach((e=>e.startUpdateCycle()))))}get running(){return this._instanceData.size>0&&this._updateCyclesWithStaticCamera<1}runTask(e){const{_enableLevelSelection:t,_camera:r,_levelSelector:i}=this;this._allRenderInstanceData.forEach((e=>e.forEach((e=>e.beginUpdate()))));const n=this._instanceData,s=n.view;let a=n.size;const o=n.capacity;let l=this._instanceIndex;const c=Math.ceil(o/500),{_highlightRenderInstanceDataMap:d}=this;for(let u=0;u<a&&!e.done;++u){l===this._cycleStartIndex&&this._startUpdateCycle();const u=s.state.get(l);let h=0;if(!(u&wr.ALLOCATED)){l=l+1===o?0:l+1,a++;continue}const f=s.lodLevel.get(l);if(u&wr.DEFAULT_ACTIVE&&this._defaultRenderInstanceData[f].freeTail(),u&wr.HIGHLIGHT_ACTIVE){const e=n.geHighlightOptionsPrev(l);if(e){const t=d.get(e);if(!t)throw new G.A("Internal error in lodRenderer");t[f].freeTail(),t.every((e=>e.isEmpty))&&(t.forEach((e=>e.destroy())),d.delete(e))}}if(u&wr.REMOVE)n.freeInstance(l);else if(u&wr.VISIBLE){let e=0;if(t&&(s.modelOrigin.getVec(l,Gr),e=i.selectLevel(Gr,n.getCombinedMedianScaleFactor(l),r)),h=u&~(wr.ACTIVE|wr.TRANSFORM_CHANGED),e>=0)if(u&wr.HIGHLIGHT){const t=n.getHighlightName(l);if(t){const r=()=>{const e=this._createRenderInstanceDataArray();return e.forEach((e=>e.beginUpdate())),e},i=(0,Jt.tE)(d,t,r);if(e>=i.length)throw new G.A(`LodRenderer internal error - missing lodLevel ${e}`);Ur(i[e],s,l)}h|=wr.HIGHLIGHT_ACTIVE}else Ur(this._defaultRenderInstanceData[e],s,l),h|=wr.DEFAULT_ACTIVE;s.state.set(l,h),s.lodLevel.set(l,e)}else h=u&~(wr.ACTIVE|wr.TRANSFORM_CHANGED),s.state.set(l,h);if(null!=this._octreeCached){const e=!!(u&wr.ACTIVE),t=!!(h&wr.ACTIVE);!e&&t?this._octreeCached.addInstance(l):e&&!t?this._octreeCached.removeInstance(l):e&&t&&u&wr.TRANSFORM_CHANGED&&(this._octreeCached.removeInstance(l),this._octreeCached.addInstance(l))}l=l+1===o?0:l+1,l%c==0&&e.madeProgress()}this._instanceIndex=l,this._allRenderInstanceData.forEach((e=>e.forEach((e=>e.endUpdate())))),this._context.requestRender()}_beginComponent(e,t,r){if(0===t.size)return null;const i=r.glMaterials.load(e.rctx,e.bind.slot,e.output);return i?.beginSlot(e.bind)}_renderComponent(e,t,r,i,n){if(!t)return;const{bind:s,rctx:a}=e;a.runAppleAmdDriverHelper();const o=a.bindTechnique(t,s,i.material.parameters,$r);a.bindVAO(i.vao),t.ensureAttributeLocations(i.vao),he.b.LOD_INSTANCE_RENDERER_COLORIZE_BY_LEVEL&&e.output===ye.V.Color&&(o.setUniform4fv("externalColor",Wr[Math.min(n,Wr.length-1)]),o.setUniform1i("colorMixMode",Ke.Um.replace));const l=r.capacity,c=r.headIndex,d=r.tailIndex,u=r.firstIndex,h=this._glInstanceBufferLayout,f=(e,n)=>{(0,Er.yu)(a,dr.D,r.buffer,h,e),a.drawArraysInstanced(t.primitiveType,0,i.vertexCount,n-e),(0,Er.Hi)(a,dr.D,r.buffer,h)};i.material.transparent&&null!=u?c>d?((0,Ee.vA)(u>=d&&u<=c,"invalid firstIndex"),f(u,c),f(d,u)):c<d&&(u<=c?((0,Ee.vA)(u>=0&&u<=c,"invalid firstIndex"),f(u,c),f(d,l),f(0,u)):((0,Ee.vA)(u>=d&&u<=l,"invalid firstIndex"),f(u,l),f(0,c),f(d,u))):c>d?f(d,c):c<d&&(f(0,c),f(d,l)),a.bindVAO(null)}};function Ur(e,t,r){const i=e.allocateHead();!function(e,t,r,i){(function(e,t,r,i,n){De[0]=e.get(t,0),De[1]=e.get(t,1),De[2]=e.get(t,2),(0,Fe.jS)(De,Le,3),r.set(n,0,Le[0]),i.set(n,0,Le[1]),r.set(n,1,Le[2]),i.set(n,1,Le[3]),r.set(n,2,Le[4]),i.set(n,2,Le[5])})(e.modelOrigin,t,r.modelOriginHi,r.modelOriginLo,i),r.model.copyFrom(i,e.model,t),r.modelNormal.copyFrom(i,e.modelNormal,t),e.color&&r.color&&r.color.copyFrom(i,e.color,t),e.objectAndLayerIdColor&&r.objectAndLayerIdColor&&r.objectAndLayerIdColor.copyFrom(i,e.objectAndLayerIdColor,t),e.featureAttribute&&r.featureAttribute&&r.featureAttribute.copyFrom(i,e.featureAttribute,t)}(t,r,e.view,i)}(0,i._)([(0,o.MZ)({constructOnly:!0})],jr.prototype,"symbol",void 0),(0,i._)([(0,o.MZ)({constructOnly:!0})],jr.prototype,"optionalFields",void 0),(0,i._)([(0,o.MZ)({constructOnly:!0})],jr.prototype,"metadata",void 0),(0,i._)([(0,o.MZ)({constructOnly:!0})],jr.prototype,"shaderTransformation",void 0),(0,i._)([(0,o.MZ)()],jr.prototype,"_instanceData",void 0),(0,i._)([(0,o.MZ)()],jr.prototype,"_cycleStartIndex",void 0),(0,i._)([(0,o.MZ)({readOnly:!0})],jr.prototype,"_enableLevelSelection",null),(0,i._)([(0,o.MZ)()],jr.prototype,"_updateCyclesWithStaticCamera",void 0),(0,i._)([(0,o.MZ)({readOnly:!0})],jr.prototype,"running",null),jr=(0,i._)([(0,d.$)("esri.views.3d.webgl-engine.lib.lodRendering.LodRenderer")],jr);const Gr=(0,k.vt)(),Hr=(0,le.vt)(),kr=(0,ie.vt)(),qr=(0,k.vt)(),Zr=(0,k.vt)(),Wr=[(0,le.fA)(1,0,1,1),(0,le.fA)(0,0,1,1),(0,le.fA)(0,1,0,1),(0,le.fA)(1,1,0,1),(0,le.fA)(1,0,0,1)],$r=new Br.V;r(65215);var Yr=r(86305);r(16396);class Xr{get ray(){return this._ray}get distanceInRenderSpace(){return null!=this.dist?((0,Re.h)(Jr,this.ray.direction,this.dist),(0,Re.l)(Jr)):null}withinDistance(e){return!!(0,Yr.i3)(this)&&this.distanceInRenderSpace<=e}getIntersectionPoint(e){return!!(0,Yr.i3)(this)&&((0,Re.h)(Jr,this.ray.direction,this.dist),(0,Re.g)(e,this.ray.origin,Jr),!0)}getTransformedNormal(e){return(0,Re.c)(Qr,this.normal),Qr[3]=0,(0,Kt.t)(Qr,Qr,this.transformation),(0,Re.c)(e,Qr),(0,Re.n)(e,e)}constructor(e){this.intersector=Ie.dz.OBJECT,this.normal=(0,k.vt)(),this.transformation=(0,ie.vt)(),this._ray=(0,tr.vt)(),this.init(e)}init(e){this.dist=null,this.target=null,this.drapedLayerOrder=null,this.drapedLayerGraphicOrder=null,this.intersector=Ie.dz.OBJECT,(0,tr.C)(e,this._ray)}set(e,t,r,i,n,s,a){this.intersector=e,this.dist=r,(0,Re.c)(this.normal,i??k.Cb),(0,re.C)(this.transformation,n??ie.zK),this.target=t,this.drapedLayerOrder=s,this.drapedLayerGraphicOrder=a}copy(e){(0,tr.C)(e.ray,this._ray),this.intersector=e.intersector,this.dist=e.dist,this.target=e.target,this.drapedLayerOrder=e.drapedLayerOrder,this.drapedLayerGraphicOrder=e.drapedLayerGraphicOrder,(0,Re.c)(this.normal,e.normal),(0,re.C)(this.transformation,e.transformation)}}const Jr=(0,k.vt)(),Qr=(0,le.vt)();var Kr=r(87582);class ei{constructor(e,t,r,i){this.material=e,this.bufferWriter=e.createBufferWriter(),this.vertexBufferLayout=this.bufferWriter.vertexBufferLayout,this.buffer=t,this.elementCount=r,this.boundingInfo=i}get numTriangles(){return this.elementCount/3}get numVertices(){return this.elementCount}computeUsedMemory(){return this.buffer.byteLength+w.i5}getRenderGeometry(){return this}intersect(e,t,r,i,n,s,a,o){const l=this.bufferWriter,c=this.buffer;l.intersect(c,this.material.parameters,null,e,r,i,((r,i,l,c,d)=>function(e,t,r,i,n,s,a,o,l,c){if(e<0)return;if(s&&!s(n.rayBegin,n.rayEnd,e))return;const d=new Kr.h(a.layerViewUid,a.graphicUid(l),r,o,c);if((null==n.results.min.drapedLayerOrder||i>=n.results.min.drapedLayerOrder)&&(null==n.results.min.dist||e<n.results.min.dist)&&n.results.min.set(Ie.dz.LOD,d,e,t,n.transform.transform,i),n.options.store!==Ie.oH.MIN&&(null==n.results.max.drapedLayerOrder||i>=n.results.max.drapedLayerOrder)&&(null==n.results.max.dist||e>n.results.max.dist)&&n.results.max.set(Ie.dz.LOD,d,e,t,n.transform.transform,i),n.options.store===Ie.oH.ALL){const r=function(e){return new Xr(e)}(n.results.min.ray);r.set(Ie.dz.LOD,d,e,t,n.transform.transform,i),n.results.all.push(r)}}(r,i,l,d,e,t,s,a,n,o)))}}class ti{constructor(e,t=null){this.geometry=e,this.textures=t}get material(){return this.geometry.material}get numTriangles(){return this.geometry.numTriangles}}class ri{constructor(e,t,r){this.components=e,this.minScreenSpaceRadius=t,this.pivotOffset=r;const i=(0,g.Am)(this.components.map((e=>e.geometry)));this.numVertices=i.reduce(((e,t)=>e+t.numVertices),0)}}class ii{constructor(e){this.levels=e,this.levels.sort(((e,t)=>e.minScreenSpaceRadius===t.minScreenSpaceRadius?e.numVertices-t.numVertices:e.minScreenSpaceRadius-t.minScreenSpaceRadius))}getMaterials(){const e=[];return this.levels.forEach((t=>t.components.forEach((t=>e.push(t.geometry.material))))),(0,g.Am)(e)}getTextures(){const e=new Array;return this.levels.forEach((t=>t.components.forEach((t=>{null!=t.textures&&e.push(...t.textures)})))),(0,g.Am)(e)}getGeometries(){const e=new Array;return this.levels.forEach((t=>t.components.forEach((t=>{e.push(t.geometry)})))),(0,g.Am)(e)}getEngineGeometries(){return this.getGeometries().map((e=>e.engineGeometry)).filter((e=>null!=e))}computeUsedMemory(){const e=this.getGeometries(),t=this.getTextures(),r=e.reduce(((e,t)=>e+t.computeUsedMemory()),0);return t.reduce(((e,t)=>e+t.usedMemory),0)+r}}let ni=class{constructor(e){this._optionalFields=new Array,this._instanceGroupToIndices=new Map,this._instanceIndexToFeatureId=new Map,this._disposeResourceHandles=new Array,this._lodRendererResources=null,this._numFeatures=0,this.layerViewUid=e.layerViewUid,this.view=e.view,this.sharedResources=this.view.sharedSymbolResources,this.scheduler=this.view.resourceController.scheduler}get numFeatures(){return this._numFeatures}get usedMemory(){const e=this._lodRendererResources?.lodRenderer,t=e?.symbol;return(t?.computeUsedMemory()??0)+16*this._instanceIndexToFeatureId.size}destroy(){this._disposeResourceHandles.forEach((e=>e()))}async doLoad(e,t,r){(0,l.A)("enable-feature:objectAndLayerId-rendering")&&this._optionalFields.push(Ce.r.OLIDCOLOR);const i=function(e,t){const r=t.levels.map((t=>{const r=t.components.map((t=>{const r=e(t.materialId);if(!function(e){return null!=e&&"materialType"in e&&"default"===e.materialType}(r))throw new Error("LodRenderer only supports DefaultMaterial");const i=new ei(r,t.renderGeometryBuffer.data,t.renderGeometryBuffer.elementCount,t.boundingInfo);return new ti(i)}));return new ri(r,t.minScreenSpaceRadius)}));return new ii(r)}((e=>t(e)),e),n=this.view.stage,a=i.getMaterials();n.addMany(a),this._addDisposeResource((()=>n.removeMany(a)));const o=i.getTextures();n.addMany(o),this._addDisposeResource((()=>{o.forEach((e=>e.unload())),n.removeMany(o)})),await Promise.all(o.map((e=>this.view.stage.schedule((()=>e.load(n.renderView.renderingContext)),r)))),(0,s.Te)(r);const c=await this._createLodRenderer(i,r);this._lodRendererResources={lodRenderer:c,materials:a,textures:o}}addInstances(e,t){const r=this._lodRendererResources;if(null==r)return;const i=r.lodRenderer;if(null==i)return;const{featureIds:n,localTransforms:s,globalTransforms:a,visibility:o}=t,l=new Array,c=i.instanceData,d=n.length,u=this._instanceIndexToFeatureId;for(let e=0;e<d;++e){const t=n[e],r=c.addInstance(),i=c.view,d=16*e;i.localTransform.copyFromTypedBuffer(r,s,d),i.globalTransform.copyFromTypedBuffer(r,a,d),c.updateModelTransform(r),c.setVisible(r,Boolean(o[e])),l.push(r),u.set(r,t)}this._instanceGroupToIndices.set(e,l),this._numFeatures+=d}removeInstances(e){const t=this._instanceGroupToIndices.get(e);if(null==t)return;const r=this._lodRendererResources;if(null==r)return;const i=r.lodRenderer.instanceData,n=this._instanceIndexToFeatureId;for(const e of t)i.removeInstance(e),n.delete(e);this._numFeatures-=t.length,this._instanceGroupToIndices.delete(e)}updateVisibility(e,t){const r=this._instanceGroupToIndices.get(e);if(null==r)return;const i=this._lodRendererResources;if(null==i)return;const n=r.length;if(n!==t.length)throw new Error("Unexpected mismatch instance count and visibility flag buffer length.");const s=i.lodRenderer.instanceData;for(let e=0;e<n;++e)s.setVisible(r[e],Boolean(t[e]))}updateGlobalTransforms(e,t){const r=this._instanceGroupToIndices.get(e);if(null==r)return;const i=this._lodRendererResources;if(null==i)return;const n=r.length;if(16*n!==t.length)throw new Error("Unexpected mismatch instance count and visibility flag buffer length.");const s=i.lodRenderer.instanceData,a=s.view;for(let e=0;e<n;++e){const i=r[e],n=16*e;a.globalTransform.copyFromTypedBuffer(i,t,n),s.updateModelTransform(i)}}_addDisposeResource(e){this._disposeResourceHandles.push(e)}async _createLodRenderer(e,t){const r=this.view.stage,i={layerViewUid:this.layerViewUid,graphicUid:e=>this._instanceIndexToFeatureId.get(e)??-1,notifyGraphicGeometryChanged:e=>1,notifyGraphicVisibilityChanged:e=>1},n=new jr({symbol:e,optionalFields:this._optionalFields,metadata:i,shaderTransformation:null},this.scheduler);return n.slicePlaneEnabled=!1,this._addDisposeResource((()=>{r.removeRenderPlugin(n),n.destroy()})),await r.addRenderPlugin(n,t),n}};ni=(0,i._)([(0,d.$)("esri.views.3d.layers.graphics.pipeline.rendering.LodRenderer")],ni);var si=r(40804),ai=r(48833);const oi=(0,le.CN)(.25,.25,.75,.75);function li(e,t,r){return r&&(t/=Math.SQRT2),hi(e,((i,n)=>{let s=i-.5*e+.25,a=.5*e-n-.75;if(r){const e=(s+a)/Math.SQRT2;a=(a-s)/Math.SQRT2,s=e}return Math.max(Math.abs(s),Math.abs(a))-.5*t}))}function ci(e,t,r,i=0){t-=i,r&&(t*=Math.SQRT2);const n=.5*t;return hi(e,((t,s)=>{let a,o=t-.5*e,l=.5*e-s-1;if(r){const e=(o+l)/Math.SQRT2;l=(l-o)/Math.SQRT2,o=e}return o=Math.abs(o),l=Math.abs(l),a=o>l?o>n?Math.sqrt((o-n)*(o-n)+l*l):l:l>n?Math.sqrt(o*o+(l-n)*(l-n)):o,a-=i/2,a}))}function di(e,t,r){return(i,n)=>{const s=i-e,a=n-t;return Math.sqrt(s*s+a*a)-r}}function ui(e,t,r){const i=Math.sqrt(t*t+r*r);return(n,s)=>{const a=Math.abs(n-e)-r,o=s-e+t/2+.75,l=(t*a+r*o)/i,c=-o;return Math.max(l,c)}}function hi(e,t){const r=new Uint8Array(4*e*e);for(let i=0;i<e;i++)for(let n=0;n<e;n++){const s=n+e*i;let a=t(n,i);a=a/e+.5,(0,si.U)(a,r,4*s)}return r}var fi=r(11787),pi=r(74810);let mi=class extends _.A{constructor(e){super(),this.view=null,this.layerViewUid=null,this._materials=new Map,this._directRenderers=new Map,this._lodRenderers=new Map,this.totalFeatures=0,this.view=e.view,this.layerViewUid=e.layerViewUid}initialize(){}destroy(){this.removeAllHandles(),this._lodRenderers.forEach((e=>e.destroy()))}async createMaterial(e,t){const{view:r}=this,{sharedSymbolResources:i}=r;if(null==i)throw new Error("No shared symbol resources found!");const{textures:n}=i,s=r.state.viewingMode===se.RT.Global;let a=null;switch(t){case"default":a=function(e,t,r){const i={usePBR:t.physicalBasedRenderingEnabled,isSchematic:!0,mrrFactors:pi.Bt,ambient:k.Un,diffuse:k.Un,hasSlicePlane:t.slicePlaneEnabled,castShadows:t.castShadows,offsetTransparentBackfaces:!t.isPrimitive};t.screenSizePerspectiveEnabled&&(i.screenSizePerspective=e.screenSizePerspectiveSettings),i.externalColor=le.Un,i.isInstanced=!0;const n=new fi.$U(i,{spherical:r});return n.setParameters({cullFace:n.transparent?Te.s2.None:Te.s2.Back}),n}(i,{physicalBasedRenderingEnabled:!0,slicePlaneEnabled:!1,castShadows:!0,isPrimitive:!0,screenSizePerspectiveEnabled:!0},s);break;case"hud":{const[e,t]=_i(n,s);this.addHandles([(0,ae.hA)((()=>(0,oe.Gz)(t)))]),a=e}break;default:throw new Error(`unable to create unknown material type ${t}`)}this._materials.set(e,a)}async createDirectRenderer(e){if(this._directRenderers.has(e))return;const t=this._materials.get(e);if(null==t)throw new Error(`material not found ${e}`);const{view:r}=this,i=new Zt({material:t,layerViewUid:this.layerViewUid});this._directRenderers.set(e,i),r.stage.addRenderPlugin(i),r.stage.renderView.renderer.updateHasFlags()}async createLoDRenderer(e,t,r){const i=new ni({view:this.view,layerViewUid:this.layerViewUid});if(await i.doLoad(t,(e=>this._materials.get(e)),r),r?.aborted)throw i.destroy(),(0,s.NK)();this._lodRenderers.set(e,i)}async executeRenderCommands(e){for(const t of e)switch(t.id){case"add-direct-renderer-geometry-buffer":this._addDirectRendererGeometryBuffer(t);break;case"update-direct-renderer-geometry-buffer":this._updateDirectRendererGeometryBuffer(t);break;case"remove-direct-renderer-geometry-buffer":this._removeDirectRendererGeometryBuffer(t);break;case"add-lod-instances":this._addLodInstances(t);break;case"remove-lod-instances":this._removeLodInstances(t);break;case"update-lod-instance-data":this._updateLodInstanceData(t);break;case"update-visibility":this._updateVisibility(t)}e.length>0&&this._updateFeatureCount()}_updateFeatureCount(){let e=0;for(const t of this._directRenderers.values())e+=t.numFeatures;for(const t of this._lodRenderers.values())e+=t.numFeatures;this._set("totalFeatures",e)}get usedMemory(){let e=0;for(const t of this._directRenderers.values())e+=t.usedMemory;for(const t of this._lodRenderers.values())e+=t.usedMemory;return e}_addDirectRendererGeometryBuffer({groupId:e,rendererId:t,renderGeometryBuffer:r,renderGeometryBufferItems:i,localOrigin:n}){const s=this._directRenderers.get(t);null!=s?(s.addRenderGeometryBuffer(e,r,i,n),this.view.stage.renderView.requestRender()):console.error("no renderer assigned to provided material")}_updateDirectRendererGeometryBuffer({groupId:e,rendererId:t,renderGeometryBuffer:r,renderGeometryBufferItems:i,localOrigin:n}){const s=this._directRenderers.get(t);null!=s?(s.updateRenderGeometryBuffer(e,r,i,n),this.view.stage.renderView.requestRender()):console.error("no renderer assigned to provided material")}_removeDirectRendererGeometryBuffer({groupId:e,rendererId:t}){const r=this._directRenderers.get(t);null!=r?(r.removeRenderGeometryBuffer(e),this.view.stage.renderView.requestRender()):console.error("no renderer assigned to provided material")}_addLodInstances({rendererId:e,groupId:t,data:r}){const i=this._lodRenderers.get(e);if(null==i)throw new Error("no lod renderer assigned to provided lod renderer Id");i.addInstances(t,r),this.view.stage.renderView.requestRender()}_removeLodInstances({rendererId:e,groupId:t}){const r=this._lodRenderers.get(e);if(null==r)throw new Error("no lod renderer assigned to provided lod renderer Id");r.removeInstances(t),this.view.stage.renderView.requestRender()}_updateLodInstanceData({rendererId:e,groupId:t,globalTransforms:r}){const i=this._lodRenderers.get(e);if(null==i)throw new Error("No renderer found with the provided id");null!=r&&i.updateGlobalTransforms(t,r),this.view.stage.renderView.requestRender()}_updateVisibility({rendererId:e,groupId:t,visibility:r}){const i=this._directRenderers.get(e)??this._lodRenderers.get(e);if(null==i)throw new Error("No renderer found with the provided id");i.updateVisibility(t,r),this.view.stage.renderView.requestRender()}};function _i(e,t){const r={anchorPosition:_e.center,occlusionTest:!0,hasSlicePlane:!1,color:[1,0,0,1],outlineColor:[0,0,0,1],outlineSize:1,distanceFieldBoundingBox:oi};if(null!=e){const t=e.fromData("circle-icon",(()=>function(e,t=128,r=.5*t,i=0){const n=function(e,t=128,r=.5*t,i=0){switch(e){case"circle":default:return function(e,t){const r=e/2-.5;return hi(e,di(r,r,t/2))}(t,r);case"square":return function(e,t){return li(e,t,!1)}(t,r);case"cross":return function(e,t,r=0){return ci(e,t,!1,r)}(t,r,i);case"x":return function(e,t,r=0){return ci(e,t,!0,r)}(t,r,i);case"kite":return function(e,t){return li(e,t,!0)}(t,r);case"triangle":return function(e,t){return hi(e,ui(e/2,t,t/2))}(t,r);case"arrow":return function(e,t){const r=t,i=t/2,n=e/2,s=.8*r,a=di(n,(e-t)/2-s,Math.sqrt(s*s+i*i)),o=ui(n,r,i);return hi(e,((e,t)=>Math.max(o(e,t),-a(e,t))))}(t,r)}}(e,t,r,i);return new ai.g(n,{mipmap:!1,wrap:{s:st.pF.CLAMP_TO_EDGE,t:st.pF.CLAMP_TO_EDGE},width:t,height:t,components:4,noUnpackFlip:!0,reloadable:!0})}("circle")));r.textureId=t.texture.id,r.textureIsSignedDistanceField=!0,r.sampleSignedDistanceFieldTexelCenter=!1}return[new mt(r,t),null]}(0,i._)([(0,o.MZ)({readOnly:!0})],mi.prototype,"totalFeatures",void 0),mi=(0,i._)([(0,d.$)("esri.views.3d.layers.graphics.pipeline.rendering.FeaturePipelineRenderManager")],mi);var gi=r(29920);class yi{constructor(e,t){this._mainThreadDelegate=t,this._bufferWriters=new Map,this.globalViewingMode=e===se.RT.Global}createRenderCommandBuffer(){return{commands:[],transferList:[]}}mergeRenderCommandBuffers(e){const t=this.createRenderCommandBuffer();for(const r of e)null!=r&&(t.commands.push(...r.commands),t.transferList.push(...r.transferList));return t}async createMaterial(e){const t=T("material");let r;switch(e){case"default":r=new fi.$U({},{spherical:this.globalViewingMode});break;case"hud":r=_i(null,this.globalViewingMode)[0]}return this._bufferWriters.set(t,r.createBufferWriter()),await this._mainThreadDelegate.createMaterial(t,e),t}async createDirectRenderer(e){return await this._mainThreadDelegate.createDirectRenderer(e),e}addDirectRendererGeometry(e,t,r){const{materialId:i}=t;if(null==this._bufferWriters.get(i))throw new Error(`no bufferwriter found for material ${i}`);const{renderGeometryBuffer:n,renderGeometryBufferItems:s}=this.createRenderGeometryBuffer(t,r);return this.addDirectRendererGeometryBuffer(i,e,n,s,r)}updateDirectRendererGeometry(e,t,r){const{materialId:i}=t;if(null==this._bufferWriters.get(i))throw new Error(`no bufferwriter found for material ${i}`);const{renderGeometryBuffer:n,renderGeometryBufferItems:s}=this.createRenderGeometryBuffer(t,r);return this.updateDirectRendererGeometryBuffer(i,e,n,s,r)}addDirectRendererGeometryBuffer(e,t,r,i,n){const{objectIds:s,visibilities:a}=i;return{commands:[{id:"add-direct-renderer-geometry-buffer",rendererId:e,groupId:t,renderGeometryBuffer:r,renderGeometryBufferItems:i,localOrigin:n}],transferList:[r.data,s.buffer,a.buffer]}}updateDirectRendererGeometryBuffer(e,t,r,i,n){const{objectIds:s,visibilities:a}=i;return{commands:[{id:"update-direct-renderer-geometry-buffer",rendererId:e,groupId:t,renderGeometryBuffer:r,renderGeometryBufferItems:i,localOrigin:n}],transferList:[r.data,s.buffer,a.buffer]}}removeDirectRendererGeometryBuffer(e,t){return{commands:[{id:"remove-direct-renderer-geometry-buffer",rendererId:e,groupId:t}],transferList:[]}}async createLodRenderer(e){const t=T("lod-renderer"),r=new Set,i={levels:e.levels.map((e=>({components:e.components.map((e=>{const t=e.attributes.get(Ce.r.POSITION);if(!t||0===t.indices.length)throw new Error("positions attribute expected");const i=(0,ne.tM)(t.indices.length/3),n=new gi.j(i,3,t);if(null==this._bufferWriters.get(e.materialId))throw new Error("writer not found");const{renderGeometryBuffer:s}=this.createRenderGeometryBuffer(e,null);return r.add(s.data),{materialId:e.materialId,renderGeometryBuffer:s,boundingInfo:{bbMax:n.bbMax,bbMin:n.bbMin}}})),minScreenSpaceRadius:e.minScreenSpaceRadius})))};return await this._mainThreadDelegate.createLodRenderer(t,i,Array.from(r)),t}addLodInstances(e,t,r){return{commands:[{id:"add-lod-instances",rendererId:e,groupId:t,data:r}],transferList:[r.featureIds.buffer,r.globalTransforms.buffer,r.localTransforms.buffer,r.visibility.buffer]}}removeLodInstances(e,t){return{commands:[{id:"remove-lod-instances",rendererId:e,groupId:t}],transferList:[]}}updateLodInstancesData(e,t,r){return{commands:[{id:"update-lod-instance-data",rendererId:e,groupId:t,globalTransforms:r}],transferList:[r.buffer]}}updateVisibility(e,t,r){return{commands:[{id:"update-visibility",rendererId:e,groupId:t,visibility:r}],transferList:[r.buffer]}}async dispatchRenderCommands(e){0!==e.commands.length&&await this._mainThreadDelegate.executeRenderCommands(e)}createRenderGeometryBuffer(e,t){const{materialId:r,visibilities:i,objectIds:n}=e,s=this._bufferWriters.get(r);if(null==s)throw new Error("no registered bufferWriter for material found");let a=null;if(e.transformation&&t)(0,re.C)(vi,e.transformation),vi[12]-=t[0],vi[13]-=t[1],vi[14]-=t[2],a=vi;else{if(t)throw new Error("not implemented");e.transformation&&(a=e.transformation)}let o=null;a&&((0,re.B8)(bi,vi),(0,re.mg)(bi,bi),o=bi);const l=e.attributes,c=s.elementCount(l),d=s.vertexBufferLayout.stride/4;c>Math.floor(wi/d)&&console.warn("geometry with very large number of elements encountered");const u=s.vertexBufferLayout.createBuffer(c),h=s.write(a,o,l,e.objectAndLayerIdColor,u,0);if(null==h)throw new Error("Bufferwriter.write does not provide item information.");if(i.length!==h.numItems||n.length!==h.numItems)throw new Error("Unexpected mismatch between number of RenderGeometryBufferItems and provided objectIds/visibility flags.");return{renderGeometryBuffer:{data:u.buffer,elementCount:c},renderGeometryBufferItems:{objectIds:n,visibilities:i,ranges:{numVertices:h.numVerticesPerItem,numItems:h.numItems}}}}}const vi=(0,ie.vt)(),bi=(0,ie.vt)(),wi=4194304;class xi{constructor(e,t,r){this.renderCommandContext=e,this.renderCommandBuffer=t,this.pipelineStateCommands=r}append(e){this.appendRenderCommands(e.renderCommandBuffer),this.appendPipelineStateCommands(e.pipelineStateCommands)}appendRenderCommands(e){this.renderCommandBuffer.commands.push(...e.commands),this.renderCommandBuffer.transferList.push(...e.transferList)}appendPipelineStateCommand(e){this.pipelineStateCommands.push(e)}appendPipelineStateCommands(e){for(const t of e)this.appendPipelineStateCommand(t)}async execute(){for(const e of this.pipelineStateCommands)e();await this.renderCommandContext.dispatchRenderCommands(this.renderCommandBuffer)}}var Ti=r(9762),Ai=r(27993);function Ii(e){const{featureCount:t}=e;if(0===t)return new Uint32Array;const r=new Uint32Array(t);return e.getObjectIdsArray(r),r}function Ri(e){const{featureCount:t}=e;if(0===t)return new Float64Array;const r=new Float64Array(3*t);return e.getCoordinatesArray(r),r}function Si(e,t){const r=t.viewSpatialReference,i=t.renderSpatialReference,{extent:n}=e,s=(0,b.gX)(n),a=(0,k.vt)();return(0,Ai.F)([s[0],s[1],0],r,a,i),a}var Oi=r(48353),Mi=r(8887),Ei=r(83047);function Ci(e){const t=new Map;for(const[r,i]of e)t.set(r,{...i,indices:(0,ne.Dg)(i.indices)});return t}r(12359),r(95108),r(27615),r(52106),r(4718),r(65864);var Fi,Di,Li=r(57917),Pi=r(72385),Bi=(r(4197),r(11868)),Ni=r(27921),zi=r(46610);(Di=Fi||(Fi={})).length=function(e,t){const r=e[t],i=e[t+1],n=e[t+2];return Math.sqrt(r*r+i*i+n*n)},Di.normalize=function(e,t){const r=e[t],i=e[t+1],n=e[t+2],s=1/Math.sqrt(r*r+i*i+n*n);e[t]*=s,e[t+1]*=s,e[t+2]*=s},Di.scale=function(e,t,r){e[t]*=r,e[t+1]*=r,e[t+2]*=r},Di.add=function(e,t,r,i,n,s=t){(n=n||e)[s]=e[t]+r[i],n[s+1]=e[t+1]+r[i+1],n[s+2]=e[t+2]+r[i+2]},Di.subtract=function(e,t,r,i,n,s=t){(n=n||e)[s]=e[t]-r[i],n[s+1]=e[t+1]-r[i+1],n[s+2]=e[t+2]-r[i+2]},r(2415);const Vi=new Array(36);for(let e=0;e<6;e++)for(let t=0;t<6;t++)Vi[6*e+t]=e;const ji=new Array(36);for(let e=0;e<6;e++)ji[6*e]=0,ji[6*e+1]=1,ji[6*e+2]=2,ji[6*e+3]=2,ji[6*e+4]=3,ji[6*e+5]=0;const Ui=(0,Pi.fA)(-.5,0,-.5),Gi=(0,Pi.fA)(.5,0,-.5),Hi=(0,Pi.fA)(0,0,.5),ki=(0,Pi.fA)(0,.5,0),qi=(0,Pi.vt)(),Zi=(0,Pi.vt)(),Wi=(0,Pi.vt)(),$i=(0,Pi.vt)(),Yi=(0,Pi.vt)();function Xi(e,t){switch(e){case"cone":return((e,r,i=!1)=>({levels:e.map((e=>{const n=Ci(r(e.tesselation));return i&&function(e){const t=e,r=t.get(Ce.r.POSITION).data,i=t.get(Ce.r.NORMAL).data;if(i){const t=Ji(e,Ce.r.NORMAL).data;for(let e=0;e<i.length;e+=3){const r=i[e+1];t[e+1]=-i[e+2],t[e+2]=r}}if(r){const t=Ji(e,Ce.r.POSITION).data;for(let e=0;e<r.length;e+=3){const i=r[e+1];t[e+1]=-r[e+2],t[e+2]=i}}}(n),{components:[{attributes:n,objectAndLayerIdColor:void 0,transformation:null,materialId:t,visibilities:new Uint8Array([1]),objectIds:new Uint32Array([-1])}],minScreenSpaceRadius:e.minScreenSpaceRadius}}))}))(Qi,(e=>function(e,t,r,i,n=!0,s=!0){let a=0;const o=t,l=e;let c=(0,Pi.fA)(0,a,0),d=(0,Pi.fA)(0,a+l,0),u=(0,Pi.fA)(0,-1,0),h=(0,Pi.fA)(0,1,0);i&&(a=l,d=(0,Pi.fA)(0,0,0),c=(0,Pi.fA)(0,a,0),u=(0,Pi.fA)(0,1,0),h=(0,Pi.fA)(0,-1,0));const f=[d,c],p=[u,h],m=r+2,_=Math.sqrt(l*l+o*o);if(i)for(let e=r-1;e>=0;e--){const t=e*(2*Math.PI/r),i=(0,Pi.fA)(Math.cos(t)*o,a,Math.sin(t)*o);f.push(i);const n=(0,Pi.fA)(l*Math.cos(t)/_,-o/_,l*Math.sin(t)/_);p.push(n)}else for(let e=0;e<r;e++){const t=e*(2*Math.PI/r),i=(0,Pi.fA)(Math.cos(t)*o,a,Math.sin(t)*o);f.push(i);const n=(0,Pi.fA)(l*Math.cos(t)/_,o/_,l*Math.sin(t)/_);p.push(n)}const g=new Array,y=new Array;if(n){for(let e=3;e<f.length;e++)g.push(1),g.push(e-1),g.push(e),y.push(0),y.push(0),y.push(0);g.push(f.length-1),g.push(2),g.push(1),y.push(0),y.push(0),y.push(0)}if(s){for(let e=3;e<f.length;e++)g.push(e),g.push(e-1),g.push(0),y.push(e),y.push(e-1),y.push(1);g.push(0),g.push(2),g.push(f.length-1),y.push(1),y.push(2),y.push(p.length-1)}const v=(0,Bi.oe)(3*m);for(let e=0;e<m;e++)v[3*e]=f[e][0],v[3*e+1]=f[e][1],v[3*e+2]=f[e][2];const b=(0,Bi.oe)(3*m);for(let e=0;e<m;e++)b[3*e]=p[e][0],b[3*e+1]=p[e][1],b[3*e+2]=p[e][2];return[[Ce.r.POSITION,new zi.n(v,g,3,!0)],[Ce.r.NORMAL,new zi.n(b,y,3,!0)]]}(1,.5,e,!1)),!0);case"sphere":case"cube":case"inverted-cone":case"cylinder":case"tetrahedron":case"diamond":throw new Error("not implemented");default:return}}function Ji(e,t){let r=e.get(t);return r&&!r.exclusive&&(r={...r,exclusive:!0,data:(0,Li.S)(r.data)},e.set(t,r)),r}(0,Re.d)(qi,Ui,ki),(0,Re.d)(Zi,Ui,Gi),(0,Re.e)(Wi,qi,Zi),(0,Re.n)(Wi,Wi),(0,Re.d)(qi,Gi,ki),(0,Re.d)(Zi,Gi,Hi),(0,Re.e)($i,qi,Zi),(0,Re.n)($i,$i),(0,Re.d)(qi,Hi,ki),(0,Re.d)(Zi,Hi,Ui),(0,Re.e)(Yi,qi,Zi),(0,Re.n)(Yi,Yi),Wi[0],Wi[1],Wi[2],$i[0],$i[1],$i[2],Yi[0],Yi[1],Yi[2],(0,k.vt)();const Qi=[{tesselation:6,minScreenSpaceRadius:0},{tesselation:18,minScreenSpaceRadius:7},{tesselation:64,minScreenSpaceRadius:65}];class Ki{constructor(e){this._context=e,this.lodRendererId=null,this._loaded=!1,this._loadingPromise=null,this._primitive="cone"}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const e=this._context.renderCommandContext,t=await e.createMaterial("default"),r=Xi(this._primitive,t);this.lodRendererId=await e.createLodRenderer(r),this._loaded=!0}async createAddCommand(e){const t=this._context,{renderCommandContext:r,mainThreadDelegate:i}=t;if(null==this.lodRendererId)throw new Error("expected lod renderer id to not be null");const{featureCount:n}=e;if(0===n)return r.createRenderCommandBuffer();const s=(0,q.vt)((0,Mi.Fq)(this._primitive)),a=(0,k.ci)((0,q.Ej)(s)),o=(0,k.ci)((0,Mi.Bb)(a,{isPrimitive:!0,width:100,depth:null,height:null})),l=new Float64Array(16*n),c=new Float64Array(16*n),d=Ri(e),u=await i.applyElevationAlignmentTo(d);for(let e=0;e<n;++e){const t=e,r=u[3*e+0],i=u[3*e+1],n=u[3*e+2],s=this._computeGlobalTransform(r,i,n,this._context.viewSpatialReference,rn),d=this._computeLocalTransform(o,a,tn);this._writeMatrixToTypedBuffer(l,t,d),this._writeMatrixToTypedBuffer(c,t,s)}const h=Ii(e),f=new Uint8Array(n);e.getVisibilityArray(f);const p={featureIds:new Uint32Array(h),visibility:f,localTransforms:l,globalTransforms:c};return r.addLodInstances(this.lodRendererId,e.id,p)}async createRemoveCommand(e){const{_context:t,lodRendererId:r}=this,i=t.renderCommandContext;return null==r?i.createRenderCommandBuffer():i.removeLodInstances(r,e)}async createUpdateVisibilityCommand(e){const{lodRendererId:t,_context:r}=this,i=r.renderCommandContext;if(null==t)return i.createRenderCommandBuffer();const n=new Uint8Array(e.featureCount);return e.getVisibilityArray(n),i.updateVisibility(t,e.id,n)}async createUpdateElevationCommand(e){const{_context:t,lodRendererId:r}=this,{renderCommandContext:i,mainThreadDelegate:n}=t,{featureCount:s,id:a}=e;if(null==r||0===s)return i.createRenderCommandBuffer();const o=new Float64Array(16*s),l=Ri(e),c=await n.applyElevationAlignmentTo(l);for(let e=0;e<s;++e){const t=e,r=c[3*e+0],i=c[3*e+1],n=c[3*e+2],s=this._computeGlobalTransform(r,i,n,this._context.viewSpatialReference,rn);this._writeMatrixToTypedBuffer(o,t,s)}return i.updateLodInstancesData(r,a,o)}_writeMatrixToTypedBuffer(e,t,r){let i=16*t;for(let t=0;t<16;t++)e[i++]=r[t]}_computeGlobalTransform(e,t,r,i,n){return en[0]=e,en[1]=t,en[2]=r,(0,Oi.l)(i,en,n,this._context.renderSpatialReference),n}_computeLocalTransform(e,t,r){return(0,re.D_)(r),this._applyObjectScale(e,t,r),r}_applyObjectScale(e,t,r){const i=function(e=k.Un,t,r,i=1){const n=new Array(3);if(null==t||null==r)n[0]=1,n[1]=1,n[2]=1;else{let i,s=0;for(let a=2;a>=0;a--){const o=e[a],l=null!=o,c=0===a&&!i&&!l,d=r[a];let u;"symbol-value"===o||c?u=0!==d?t[a]/d:1:l&&"proportional"!==o&&isFinite(o)&&(u=0!==d?o/d:1),null!=u&&(n[a]=u,i=u,s=Math.max(s,Math.abs(u)))}for(let e=2;e>=0;e--)null==n[e]?n[e]=i:0===n[e]&&(n[e]=.001*s)}for(let e=2;e>=0;e--)n[e]/=i;return(0,k.ci)(n)}(e,e,t,this._context.renderCoordsHelper.unitInMeters);1===i[0]&&1===i[1]&&1===i[2]||(0,re.hs)(r,r,i)}}const en=(0,k.vt)(),tn=(0,ie.vt)(),rn=(0,ie.vt)();class nn{constructor(e){this._context=e,this.materialId=null,this._loaded=!1,this._loadingPromise=null}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const e=this._context.renderCommandContext;this.materialId=await e.createMaterial("hud"),await e.createDirectRenderer(this.materialId),this._loaded=!0}async createAddCommand(e){const{materialId:t,_context:r}=this,{renderCommandContext:i}=r;if(null==t)throw new Error("expected material not to be null");const n=await this._createGeometry(e);if(null==n)return i.createRenderCommandBuffer();const s=Si(e,r);return i.addDirectRendererGeometry(e.id,n,s)}async _createGeometry(e){const{materialId:t,_context:r}=this,{mainThreadDelegate:i}=r,{featureCount:n}=e;if(0===n||null==t)return null;const s=Ii(e),a=Ri(e),o=function(e,t){const r=e.length/3,i=t.viewSpatialReference,n=t.renderSpatialReference,s=new Float64Array(3*r);if(!(0,Ti.projectBuffer)(e,i,0,s,n,0,r))throw new Error("Failed to project coordinates");return s}(await i.applyElevationAlignmentTo(a),r),l=new Float64Array([0,0,1]),c=new Float64Array([255,255,255,255]),d=new Float64Array([24,24]),u=new Float64Array([0,0,0,1]),h=new Float64Array([0,0]),f=new Float64Array([0]),p=new Uint32Array(n);for(let e=0;e<n;++e)p[e]=e;const m=new Uint32Array(n);for(let e=0;e<n;++e)m[e]=0;const _=new zi.n(o,p,3,!0),g=new zi.n(l,m,3,!0),y=new zi.n(h,m,2,!0),v=new zi.n(c,m,4,!0),b=new zi.n(f,m,1,!0),w=new zi.n(d,m,2,!0),x=new zi.n(u,m,4,!0),T=[[Ce.r.POSITION,_],[Ce.r.NORMAL,g],[Ce.r.UV0,y],[Ce.r.COLOR,v],[Ce.r.ROTATION,b],[Ce.r.SIZE,w],[Ce.r.CENTEROFFSETANDDISTANCE,x]],A=new Uint8Array(n);return e.getVisibilityArray(A),{attributes:Ci(T),objectAndLayerIdColor:void 0,transformation:(0,ie.vt)(),materialId:t,objectIds:s,visibilities:A}}async createRemoveCommand(e){const{materialId:t,_context:r}=this,i=r.renderCommandContext;return null==t?i.createRenderCommandBuffer():i.removeDirectRendererGeometryBuffer(t,e)}async createUpdateVisibilityCommand(e){const{materialId:t,_context:r}=this,i=r.renderCommandContext;if(null==t)return i.createRenderCommandBuffer();const n=new Uint8Array(e.featureCount);return e.getVisibilityArray(n),i.updateVisibility(t,e.id,n)}async createUpdateElevationCommand(e){const{materialId:t,_context:r}=this,{renderCommandContext:i}=r,{featureCount:n,id:s}=e;if(null==t||0===n)return i.createRenderCommandBuffer();const a=await this._createGeometry(e);if(null==a)return i.createRenderCommandBuffer();const o=Si(e,r);return i.updateDirectRendererGeometry(s,a,o)}}class sn{constructor(e){this._symbols=new Array,this._featureDataPartitioning=new Map,this._context=e}async load(){this._symbols[0]=new nn(this._context),this._symbols[1]=new Ki(this._context)}async createAddCommand(e){const t=this._partition(e),r=await Promise.all(t.map((async({index:e,features:t})=>{const r=await this._provisionSymbol(e);return await(r?.createAddCommand(t))}))),i=this._context.renderCommandContext;return new xi(i,i.mergeRenderCommandBuffers(r),[()=>{this._featureDataPartitioning.set(e.id,t)}])}async createRemoveCommand(e){const{_featureDataPartitioning:t,_context:r}=this,i=r.renderCommandContext,n=t.get(e);if(null==n)return new xi(i,i.createRenderCommandBuffer(),[]);const s=await Promise.all(n.map((async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createRemoveCommand(t.id))})));return new xi(i,i.mergeRenderCommandBuffers(s),[()=>{t.delete(e)}])}async createUpdateVisibilityCommand(e){const{_featureDataPartitioning:t,_context:r}=this,i=r.renderCommandContext,n=t.get(e.id);if(null==n)return new xi(i,i.createRenderCommandBuffer(),[]);const s=await Promise.all(n.map((async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createUpdateVisibilityCommand(t))})));return new xi(i,i.mergeRenderCommandBuffers(s),[])}async createUpdateElevationCommand(){const{_featureDataPartitioning:e,_context:t}=this,r=t.renderCommandContext,i=[];for(const t of e.values()){const e=t.map((async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createUpdateElevationCommand(t))}));i.push(...e)}const n=await Promise.all(i);return new xi(r,r.mergeRenderCommandBuffers(n),[])}async _provisionSymbol(e){if(null==e)return null;const t=this._symbols[e];return t?(t.loaded||await t.load(),t):null}_getLoadedSymbol(e){if(null==e)return null;const t=this._symbols[e];return null!=t&&t.loaded?t:null}_partition(e){const t=Ii(e);if(null==t)throw new Error("unable to fetch objectIds");const{featureCount:r}=e,i=[[],[]];for(let e=0;e<r;++e)i[t[e]%2].push(e);return i.map(((t,r)=>new an(r,e.subset(new Uint32Array(t))))).filter((e=>e.features.featureCount>0))}}class an{constructor(e,t){this.index=e,this.features=t}}var on=r(73941),ln=r(98764),cn=r(65806);const dn=(0,k.vt)();var un=r(88582),hn=r(17352);function fn(e,t,r=function(e){return{operations:e,value:e.create()}}(e)){return r.operations=e,e.copy(t,r.value),r}const pn=2**50;function mn(e,t,r,i){return e.operations.setAltitudeAt(e.value,t,r,i)}function _n(e,t,r){return e.operations.elevate(e.value,t,r.value)}const gn=(0,k.vt)();(0,k.vt)();var yn=r(32114);function vn(e){return"point"===e.type}class bn{constructor(e,t,r,i){this.viewingMode=e,this.spatialReference=t,this.unitInMeters=r,this._coordinateSystem=i,this._tmpCoordinateSystem=function(e){const{value:t,operations:r}=e;return{operations:r,value:r.create(t)}}(i),this.referenceEllipsoid=(0,on.tO)(t),this.sphericalPCPF=(0,ln.lO)(t)}set extent(e){e&&function(e,t,r){e.operations.setExtent(e.value,t,r.value)}(this._coordinateSystem,e,this._coordinateSystem)}get extent(){return function(e,t){return e.operations.getExtent(e.value,t),t}(this._coordinateSystem,(0,b.vt)())}getAltitude(e){return function(e,t){return e.operations.altitudeAt(e.value,t)}(this._coordinateSystem,e)}setAltitude(e,t,r=e){return mn(this._coordinateSystem,r,t,e)}setAltitudeOfTransformation(e,t){!function(e,t,r,i){t!==i&&(0,re.C)(i,t),(0,Re.i)(gn,i[12],i[13],i[14]),mn(e,gn,r,gn),i[12]=gn[0],i[13]=gn[1],i[14]=gn[2]}(this._coordinateSystem,t,e,t)}worldUpAtPosition(e,t){return function(e,t,r){return e.operations.axisAt(e.value,t,un._.Z,r)}(this._coordinateSystem,e,t)}worldBasisAtPosition(e,t,r){return function(e,t,r,i){return e.operations.axisAt(e.value,t,r,i)}(this._coordinateSystem,e,t,r)}basisMatrixAtPosition(e,t){const r=this.worldBasisAtPosition(e,un._.X,yn.rq.get()),i=this.worldBasisAtPosition(e,un._.Y,yn.rq.get()),n=this.worldBasisAtPosition(e,un._.Z,yn.rq.get());return(0,re.hZ)(t,r[0],r[1],r[2],0,i[0],i[1],i[2],0,n[0],n[1],n[2],0,0,0,0,1),t}headingAtPosition(e,t){const r=this.worldUpAtPosition(e,yn.rq.get()),i=this.worldBasisAtPosition(e,un._.Y,yn.rq.get()),n=(0,rr.EJ)(t,i,r);return(0,ue.KJ)(n)}intersectManifoldClosestSilhouette(e,t,r){return _n(this._coordinateSystem,t,this._tmpCoordinateSystem),function(e,t,r){e.operations.intersectRayClosestSilhouette(e.value,t,r)}(this._tmpCoordinateSystem,e,r),r}intersectManifold(e,t,r){_n(this._coordinateSystem,t,this._tmpCoordinateSystem);const i=yn.rq.get();return function(e,t,r){return e.operations.intersectRay(e.value,t,r)}(this._tmpCoordinateSystem,e,i)?(0,Re.c)(r,i):null}intersectInfiniteManifold(e,t,r){if(this.viewingMode===se.RT.Global)return this.intersectManifold(e,t,r);_n(this._coordinateSystem,t,this._tmpCoordinateSystem);const i=this._tmpCoordinateSystem.value,n=yn.rq.get();return(0,Ni.Ui)(i.plane,e,n)?(0,Re.c)(r,n):null}toRenderCoords(e,t,r){return vn(e)?(0,cn.g)(e,t,this.spatialReference):(0,Ai.F)(e,t,r,this.spatialReference)}fromRenderCoords(e,t,r=null){return vn(t)?(null!=r&&(t.spatialReference=r),function(e,t,r){return!!(0,Ai.F)(e,t,dn,r.spatialReference)&&(r.x=dn[0],r.y=dn[1],r.z=dn[2],!0)}(e,this.spatialReference,t)?t:null):(0,Ai.F)(e,this.spatialReference,t,r)?t:null}static create(e,t){switch(e){case se.RT.Local:return new bn(se.RT.Local,t,(0,Ei.GA)(t),fn(hn.b,(0,hn.f)([0,0,0],[pn,0,0],[0,pn,0])));case se.RT.Global:return new bn(se.RT.Global,t,1,function(e){return fn(Se.s,(0,Se.f)(0,0,0,(0,on.tO)(e).radius))}(t))}}static renderUnitScaleFactor(e,t){return(0,Ei.KX)(e)/(0,Ei.KX)(t)}}let wn=class extends n.A.EventedAccessor{constructor(){super(...arguments),this.remoteClient=null,this._featureStore=new N,this._tileManager=null,this._renderer=null,this._fetcher=null,this._queryEngine=null,this._defaultQueryJSON=null}get updating(){return this._tileManager.updating}destroy(){this._featureStore.clear(),this._tileManager?.destroy()}async setup({viewSpatialReference:e,renderSpatialReference:t,viewingMode:r,baseQuery:i,url:n,objectIdField:s,capabilities:o,fieldsIndex:l,timeInfo:c,elevationInfo:d,fullExtent:_}){const g=f.A.fromJSON(e),y=f.A.fromJSON(t);this._fetcher=new te(g,m.A.fromJSON(i),n,s,o),this._queryEngine=new p.do({hasZ:!0,hasM:!1,geometryType:"esriGeometryPoint",objectIdField:s,fieldsIndex:l,availableFields:[s],spatialReference:e,featureStore:this._featureStore,timeInfo:c});const v={createMaterial:async(e,t)=>{const r={materialId:e,type:t};await this.remoteClient.invoke("createMaterial",r)},createDirectRenderer:async e=>{const t={materialId:e};await this.remoteClient.invoke("createDirectRenderer",t)},createLodRenderer:async(e,t,r)=>{const i={rendererId:e,lodRenderGeometry:t};await this.remoteClient.invoke("createLoDRenderer",i,{transferList:r})},executeRenderCommands:async e=>{const t={commands:e.commands};await this.remoteClient.invoke("dispatchRenderCommands",t,{transferList:e.transferList})},applyElevationAlignmentTo:async e=>{const t={mapPoints:e};return await this.remoteClient.invoke("applyElevationAlignment",t,{transferList:[e.buffer]})}};this._renderer=new sn({viewSpatialReference:g,renderSpatialReference:y,renderCoordsHelper:bn.create(r,y),renderCommandContext:new yi(r,v),elevationInfo:d??{},mainThreadDelegate:v}),this._defaultQueryJSON=new m.A({outSpatialReference:g}).toJSON();let b=null;if(null!=_){const e=u.A.fromJSON(_);await(0,h.initializeProjection)(e.spatialReference,g),b=(0,h.project)(e,g)}return this._tileManager=new R({loadTile:(e,t)=>this._fetcher.fetch(e,t),createAddFeatureDataCommand:(e,t)=>this._createAddFeatureDataCommand(e,t),createRemoveFeatureDataCommand:e=>this._createRemoveFeatureDataCommand(e),createUpdateFeatureDataVisibilityCommand:(e,t)=>this._createUpdateFeatureDataVisibilityCommand(e,t),extent:b}),this.addHandles((0,a.wB)((()=>this.updating),(e=>{this.emit("notify-updating",{updating:e})})),a.Vh),await this._renderer.load(),Tn}async executeQuery(e,t){return{result:await this._queryEngine.executeQuery(this._ensureQuery(e),t)}}async executeQueryForIds(e,t){const r=await this._queryEngine.executeQueryForIdSet(this._ensureQuery(e),t);return{result:Array.from(r)}}async executeQueryForCount(e,t){return{result:await this._queryEngine.executeQueryForCount(this._ensureQuery(e),t)}}async executeQueryForExtent(e,t){return{result:await this._queryEngine.executeQueryForExtent(this._ensureQuery(e),t)}}async executeQueryForLatestObservations(e,t){return{result:await this._queryEngine.executeQueryForLatestObservations(this._ensureQuery(e),t)}}async onTileTreeChange(e){return await this._tileManager.onTileTreeChange(e),Tn}async onElevationChange(e){return Tn}async _createAddFeatureDataCommand(e,t){const r=this._featureStore,i=await this._renderer.createAddCommand(e);return(0,s.Te)(t),i.appendPipelineStateCommand((()=>{r.addTile(e)})),i}async _createRemoveFeatureDataCommand(e){const t=this._featureStore,r=this._renderer,i=await r.createRemoveCommand(e);return i.appendPipelineStateCommand((()=>{t.removeTile(e)})),i}async _createUpdateFeatureDataVisibilityCommand(e,t){const r=this._renderer,i=await r.createUpdateVisibilityCommand(e);return(0,s.Te)(t),i}_ensureQuery(e){return e??this._defaultQueryJSON}};(0,i._)([(0,o.MZ)()],wn.prototype,"updating",null),wn=(0,i._)([(0,d.$)("esri.views.3d.layers.graphics.pipeline.Feature3DPipelineWorker")],wn);const xn=wn,Tn={result:void 0}},10536:(e,t,r)=>{function i(e){const t={};for(const r in e){if("declaredClass"===r)continue;const n=e[r];if(null!=n&&"function"!=typeof n)if(Array.isArray(n)){t[r]=[];for(let e=0;e<n.length;e++)t[r][e]=i(n[e])}else"object"==typeof n?n.toJSON&&(t[r]=JSON.stringify(n)):t[r]=n}return t}r.d(t,{z:()=>i})},13259:(e,t,r)=>{r.d(t,{H:()=>j,b:()=>L,c:()=>B,f:()=>z,s:()=>D});var i=r(37585),n=r(48163),s=r(91829),a=r(79258),o=r(49255),l=r(76591),c=r(36782),d=r(47522),u=r(40268),h=r(63578),f=r(13755),p=r(42593),m=r(42398),_=r(63365),g=r(26835),y=r(52587),v=r(20693),b=r(47286),w=r(14314),x=r(81961),T=r(71988),A=r(33094),I=r(20304),R=r(31821),S=r(12791),O=r(63761),M=r(59643),E=r(46540),C=r(14113),F=r(49788);const D={occludedFadeFactor:1};function L(e){const t=new C.N5,{signedDistanceFieldEnabled:r,occlusionTestEnabled:n,horizonCullingEnabled:D,pixelSnappingEnabled:L,hasScreenSizePerspective:z,debugDrawLabelBorder:j,vvSize:U,vvColor:G,hasRotation:H,occludedFragmentFade:k,sampleSignedDistanceFieldTexelCenter:q}=e;t.include(u.Q,e),t.vertex.include(l.rA,e);const{occlusionPass:Z,output:W,oitPass:$}=e;if(Z)return t.include(h.I,e),t;const{vertex:Y,fragment:X}=t;t.include(y.Y6),t.include(m.A,e),t.include(c.g,e),t.include(f.y),X.include(g.W),X.include(_.a),t.varyings.add("vcolor","vec4"),t.varyings.add("vtc","vec2"),t.varyings.add("vsize","vec2");const J=W===o.V.Highlight,Q=J&&n;Q&&t.varyings.add("voccluded","float"),Y.uniforms.add(new w.I("viewport",(e=>e.camera.fullViewport)),new b.G("screenOffset",((e,t)=>(0,i.hZ)(N,2*e.screenOffset[0]*t.camera.pixelRatio,2*e.screenOffset[1]*t.camera.pixelRatio))),new b.G("anchorPosition",(e=>B(e))),new T.E("materialColor",(e=>e.color)),new I.m("materialRotation",(e=>e.rotation)),new O.N("tex",(e=>e.texture))),(0,v.Nz)(Y),r&&(Y.uniforms.add(new T.E("outlineColor",(e=>e.outlineColor))),X.uniforms.add(new T.E("outlineColor",(e=>P(e)?e.outlineColor:s.uY)),new I.m("outlineSize",(e=>P(e)?e.outlineSize:0)))),D&&Y.uniforms.add(new x.V("pointDistanceSphere",((e,t)=>{const r=t.camera.eye,i=e.origin;return(0,s.fA)(i[0]-r[0],i[1]-r[1],i[2]-r[2],a.$O.radius)}))),L&&Y.include(d.K),z&&((0,y.pM)(Y),(0,y.OH)(Y)),j&&t.varyings.add("debugBorderCoords","vec4"),t.attributes.add(E.r.UVI,"vec2"),t.attributes.add(E.r.COLOR,"vec4"),t.attributes.add(E.r.SIZE,"vec2"),t.attributes.add(E.r.ROTATION,"float"),t.attributes.add(E.r.FEATUREATTRIBUTE,"vec4"),Y.code.add(D?R.H`bool behindHorizon(vec3 posModel) {
2
- vec3 camToEarthCenter = pointDistanceSphere.xyz - localOrigin;
3
- vec3 camToPos = pointDistanceSphere.xyz + posModel;
4
- float earthRadius = pointDistanceSphere.w;
5
- float a = dot(camToPos, camToPos);
6
- float b = dot(camToPos, camToEarthCenter);
7
- float c = dot(camToEarthCenter, camToEarthCenter) - earthRadius * earthRadius;
8
- return b > 0.0 && b < a && b * b > a * c;
9
- }`:R.H`bool behindHorizon(vec3 posModel) { return false; }`),Y.main.add(R.H`
10
- ProjectHUDAux projectAux;
11
- vec4 posProj = projectPositionHUD(projectAux);
12
- forwardObjectAndLayerIdColor();
13
-
14
- if (rejectBySlice(projectAux.posModel)) {
15
- // Project outside of clip plane
16
- gl_Position = vec4(1e038, 1e038, 1e038, 1.0);
17
- return;
18
- }
19
-
20
- if (behindHorizon(projectAux.posModel)) {
21
- // Project outside of clip plane
22
- gl_Position = vec4(1e038, 1e038, 1e038, 1.0);
23
- return;
24
- }
25
-
26
- vec2 inputSize;
27
- ${(0,R.If)(z,R.H`
28
- inputSize = screenSizePerspectiveScaleVec2(size, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspective);
29
- vec2 screenOffsetScaled = screenSizePerspectiveScaleVec2(screenOffset, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspectiveAlignment);`,R.H`
30
- inputSize = size;
31
- vec2 screenOffsetScaled = screenOffset;`)}
32
- ${(0,R.If)(U,R.H`inputSize *= vvScale(featureAttribute).xx;`)}
33
-
34
- vec2 combinedSize = inputSize * pixelRatio;
35
- vec4 quadOffset = vec4(0.0);
36
-
37
- ${(0,R.If)(n,R.H`
38
- bool visible = testHUDVisibility(posProj);
39
- if (!visible) {
40
- vtc = vec2(0.0);
41
- ${(0,R.If)(j,"debugBorderCoords = vec4(0.5, 0.5, 1.5 / combinedSize);")}
42
- return;
43
- }`)}
44
- ${(0,R.If)(Q,R.H`voccluded = visible ? 0.0 : 1.0;`)}
45
- `);const K=R.H`
46
- vec2 uvi1 = vec2(uvi.x < 0.0 ? 1.0 : 0.0, uvi.y < 0.0 ? 1.0 : 0.0);
47
- vec2 uv = abs(uvi + uvi1);
48
- vec2 texSize = vec2(textureSize(tex, 0));
49
- uv.x = uv.x >= ${V} ? 1.0 : uv.x / texSize.x;
50
- uv.y = uv.y >= ${V} ? 1.0 : uv.y / texSize.y;
51
- quadOffset.xy = (uvi1 - anchorPosition) * 2.0 * combinedSize;
52
-
53
- ${(0,R.If)(H,R.H`
54
- float angle = radians(materialRotation + rotation);
55
- float cosAngle = cos(angle);
56
- float sinAngle = sin(angle);
57
- mat2 rotate = mat2(cosAngle, -sinAngle, sinAngle, cosAngle);
58
-
59
- quadOffset.xy = rotate * quadOffset.xy;
60
- `)}
61
-
62
- quadOffset.xy = (quadOffset.xy + screenOffsetScaled) / viewport.zw * posProj.w;
63
- `,ee=L?r?R.H`posProj = alignToPixelOrigin(posProj, viewport.zw) + quadOffset;`:R.H`posProj += quadOffset;
64
- if (inputSize.x == size.x) {
65
- posProj = alignToPixelOrigin(posProj, viewport.zw);
66
- }`:R.H`posProj += quadOffset;`;Y.main.add(R.H`
67
- ${K}
68
- ${G?"vcolor = interpolateVVColor(featureAttribute.y) * materialColor;":"vcolor = color / 255.0 * materialColor;"}
69
-
70
- ${(0,R.If)(W===o.V.ObjectAndLayerIdColor,R.H`vcolor.a = 1.0;`)}
71
-
72
- bool alphaDiscard = vcolor.a < ${R.H.float(F.Q)};
73
- ${(0,R.If)(r,`alphaDiscard = alphaDiscard && outlineColor.a < ${R.H.float(F.Q)};`)}
74
- if (alphaDiscard) {
75
- // "early discard" if both symbol color (= fill) and outline color (if applicable) are transparent
76
- gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
77
- return;
78
- } else {
79
- ${ee}
80
- gl_Position = posProj;
81
- }
82
-
83
- vtc = uv;
84
-
85
- ${(0,R.If)(j,R.H`debugBorderCoords = vec4(uv01, 1.5 / combinedSize);`)}
86
- vsize = inputSize;
87
- `),X.uniforms.add(new O.N("tex",(e=>e.texture))),k&&(X.uniforms.add(new S.x("depthMap",(e=>e.mainDepth))),X.uniforms.add(new A.U("occludedOpacity",(e=>e.hudOccludedFragmentOpacity))));const te=j?R.H`(isBorder > 0.0 ? 0.0 : ${R.H.float(F.Q)})`:R.H.float(F.Q),re=R.H`
88
- ${(0,R.If)(j,R.H`float isBorder = float(any(lessThan(debugBorderCoords.xy, debugBorderCoords.zw)) || any(greaterThan(debugBorderCoords.xy, 1.0 - debugBorderCoords.zw)));`)}
89
-
90
- vec2 samplePos = vtc;
91
-
92
- ${(0,R.If)(q,R.H`
93
- float txSize = float(textureSize(tex, 0).x);
94
- float texelSize = 1.0 / txSize;
95
-
96
- // Calculate how much we have to add/subtract to/from each texel to reach the size of an onscreen pixel
97
- vec2 scaleFactor = (vsize - txSize) * texelSize;
98
- samplePos += (vec2(1.0, -1.0) * texelSize) * scaleFactor;`)}
99
-
100
- ${r?R.H`
101
- vec4 fillPixelColor = vcolor;
102
-
103
- // Get distance and map it into [-0.5, 0.5]
104
- float d = rgbaTofloat(texture(tex, samplePos)) - 0.5;
105
-
106
- // Distance in output units (i.e. pixels)
107
- float dist = d * vsize.x;
108
-
109
- // Create smooth transition from the icon into its outline
110
- float fillAlphaFactor = clamp(0.5 - dist, 0.0, 1.0);
111
- fillPixelColor.a *= fillAlphaFactor;
112
-
113
- if (outlineSize > 0.25) {
114
- vec4 outlinePixelColor = outlineColor;
115
- float clampedOutlineSize = min(outlineSize, 0.5*vsize.x);
116
-
117
- // Create smooth transition around outline
118
- float outlineAlphaFactor = clamp(0.5 - (abs(dist) - 0.5*clampedOutlineSize), 0.0, 1.0);
119
- outlinePixelColor.a *= outlineAlphaFactor;
120
-
121
- if (
122
- outlineAlphaFactor + fillAlphaFactor < ${te} ||
123
- fillPixelColor.a + outlinePixelColor.a < ${R.H.float(F.Q)}
124
- ) {
125
- discard;
126
- }
127
-
128
- // perform un-premultiplied over operator (see https://en.wikipedia.org/wiki/Alpha_compositing#Description)
129
- float compositeAlpha = outlinePixelColor.a + fillPixelColor.a * (1.0 - outlinePixelColor.a);
130
- vec3 compositeColor = vec3(outlinePixelColor) * outlinePixelColor.a +
131
- vec3(fillPixelColor) * fillPixelColor.a * (1.0 - outlinePixelColor.a);
132
-
133
- ${(0,R.If)(!J,R.H`fragColor = vec4(compositeColor, compositeAlpha);`)}
134
- } else {
135
- if (fillAlphaFactor < ${te}) {
136
- discard;
137
- }
138
-
139
- ${(0,R.If)(!J,R.H`fragColor = premultiplyAlpha(fillPixelColor);`)}
140
- }
141
-
142
- // visualize SDF:
143
- // fragColor = vec4(clamp(-dist/vsize.x*2.0, 0.0, 1.0), clamp(dist/vsize.x*2.0, 0.0, 1.0), 0.0, 1.0);
144
- `:R.H`
145
- vec4 texColor = texture(tex, samplePos, -0.5);
146
- if (texColor.a < ${te}) {
147
- discard;
148
- }
149
- ${(0,R.If)(!J,R.H`fragColor = texColor * premultiplyAlpha(vcolor);`)}
150
- `}
151
-
152
- ${(0,R.If)(k&&!J,R.H`
153
- float zSample = texelFetch(depthMap, ivec2(gl_FragCoord.xy), 0).x;
154
- if (zSample < gl_FragCoord.z) {
155
- fragColor *= occludedOpacity;
156
- }
157
- `)}
158
-
159
- ${(0,R.If)(!J&&j,R.H`fragColor = mix(fragColor, vec4(1.0, 0.0, 1.0, 1.0), isBorder * 0.5);`)}
160
- `;switch(W){case o.V.Color:case o.V.ColorEmission:t.outputs.add("fragColor","vec4",0),W===o.V.ColorEmission&&t.outputs.add("fragEmission","vec4",1),$===M.Y.ColorAlpha&&t.outputs.add("fragAlpha","float",W===o.V.ColorEmission?2:1),X.main.add(R.H`
161
- ${re}
162
- ${(0,R.If)($===M.Y.FrontFace,R.H`fragColor.rgb /= fragColor.a;`)}
163
- ${(0,R.If)(W===o.V.ColorEmission,R.H`fragEmission = vec4(0.0);`)}
164
- ${(0,R.If)($===M.Y.ColorAlpha,R.H`fragAlpha = fragColor.a;`)}`);break;case o.V.ObjectAndLayerIdColor:X.main.add(R.H`
165
- ${re}
166
- outputObjectAndLayerIdColor();`);break;case o.V.Highlight:t.include(p.Q,e),X.main.add(R.H`
167
- ${re}
168
- outputHighlight(${(0,R.If)(Q,R.H`voccluded == 1.0`,R.H`false`)});`)}return t}function P(e){return e.outlineColor[3]>0&&e.outlineSize>0}function B(e){return e.textureIsSignedDistanceField?(t=e.anchorPosition,r=e.distanceFieldBoundingBox,n=N,(0,i.hZ)(n,t[0]*(r[2]-r[0])+r[0],t[1]*(r[3]-r[1])+r[1])):(0,i.C)(N,e.anchorPosition),N;var t,r,n}const N=(0,n.vt)(),z=32e3,V=R.H.float(z),j=Object.freeze(Object.defineProperty({__proto__:null,build:L,calculateAnchorPosition:B,fullUV:z,shaderSettings:D},Symbol.toStringTag,{value:"Module"}))},13755:(e,t,r)=>{r.d(t,{y:()=>c});var i,n=r(47522);!function(e){e[e.Occluded=0]="Occluded",e[e.NotOccluded=1]="NotOccluded",e[e.Both=2]="Both",e[e.COUNT=3]="COUNT"}(i||(i={}));var s=r(14314),a=r(33094),o=r(31821),l=r(12791);function c(e){e.vertex.uniforms.add(new a.U("renderTransparentlyOccludedHUD",(e=>e.hudRenderStyle===i.Occluded?1:e.hudRenderStyle===i.NotOccluded?0:.75)),new s.I("viewport",(e=>e.camera.fullViewport)),new l.x("hudVisibilityTexture",(e=>e.hudVisibility?.getTexture()))),e.vertex.include(n.K),e.vertex.code.add(o.H`bool testHUDVisibility(vec4 posProj) {
169
- vec4 posProjCenter = alignToPixelCenter(posProj, viewport.zw);
170
- vec4 occlusionPixel = texture(hudVisibilityTexture, .5 + .5 * posProjCenter.xy / posProjCenter.w);
171
- if (renderTransparentlyOccludedHUD > 0.5) {
172
- return occlusionPixel.r * occlusionPixel.g > 0.0 && occlusionPixel.g * renderTransparentlyOccludedHUD < 1.0;
173
- }
174
- return occlusionPixel.r * occlusionPixel.g > 0.0 && occlusionPixel.g == 1.0;
175
- }`)}},18251:(e,t,r)=>{r.d(t,{A:()=>u});var i=r(90237),n=r(69540),s=r(25482),a=r(10107),o=(r(44208),r(53966),r(87811),r(93223)),l=r(40608),c=r(51850);let d=class extends(n.A.ClonableMixin(s.A)){constructor(e){super(e),this.type="local",this.origin=(0,c.vt)()}};(0,i._)([(0,o.e)({local:"local"},{readOnly:!0})],d.prototype,"type",void 0),(0,i._)([(0,a.MZ)({type:[Number],nonNullable:!0,json:{write:!0}})],d.prototype,"origin",void 0),d=(0,i._)([(0,l.$)("esri.geometry.support.MeshLocalVertexSpace")],d);const u=d},20437:(e,t,r)=>{r.d(t,{A:()=>_});var i,n=r(90237),s=r(66552),a=r(25482),o=r(10107),l=r(56507),c=(r(44208),r(87811),r(93223)),d=r(36005),u=r(40608),h=r(80451),f=r(98453);const p=new s.J({binary:"binary",coordinate:"coordinate",countOrAmount:"count-or-amount",dateAndTime:"date-and-time",description:"description",locationOrPlaceName:"location-or-place-name",measurement:"measurement",nameOrTitle:"name-or-title",none:"none",orderedOrRanked:"ordered-or-ranked",percentageOrRatio:"percentage-or-ratio",typeOrCategory:"type-or-category",uniqueIdentifier:"unique-identifier"});let m=class extends a.A{static{i=this}constructor(e){super(e),this.alias=null,this.defaultValue=void 0,this.description=null,this.domain=null,this.editable=!0,this.length=void 0,this.name=null,this.nullable=!0,this.type=null,this.valueType=null,this.visible=!0}readDescription(e,{description:t}){let r=null;try{r=t?JSON.parse(t):null}catch(e){}return r?.value??null}readValueType(e,{description:t}){let r=null;try{r=t?JSON.parse(t):null}catch(e){}return r?p.fromJSON(r.fieldValueType):null}clone(){return new i({alias:this.alias,defaultValue:this.defaultValue,description:this.description,domain:this.domain?.clone()??null,editable:this.editable,length:this.length,name:this.name,nullable:this.nullable,type:this.type,valueType:this.valueType,visible:this.visible})}};(0,n._)([(0,o.MZ)({type:String,json:{write:!0}})],m.prototype,"alias",void 0),(0,n._)([(0,o.MZ)({type:[String,Number],json:{write:{allowNull:!0}}})],m.prototype,"defaultValue",void 0),(0,n._)([(0,o.MZ)()],m.prototype,"description",void 0),(0,n._)([(0,d.w)("description")],m.prototype,"readDescription",null),(0,n._)([(0,o.MZ)({types:h.gK,json:{read:{reader:h.rS},write:!0}})],m.prototype,"domain",void 0),(0,n._)([(0,o.MZ)({type:Boolean,json:{write:!0}})],m.prototype,"editable",void 0),(0,n._)([(0,o.MZ)({type:l.jz,json:{write:{overridePolicy:e=>({enabled:Number.isFinite(e)})}}})],m.prototype,"length",void 0),(0,n._)([(0,o.MZ)({type:String,json:{write:!0}})],m.prototype,"name",void 0),(0,n._)([(0,o.MZ)({type:Boolean,json:{write:!0}})],m.prototype,"nullable",void 0),(0,n._)([(0,c.e)(f.m)],m.prototype,"type",void 0),(0,n._)([(0,o.MZ)()],m.prototype,"valueType",void 0),(0,n._)([(0,d.w)("valueType",["description"])],m.prototype,"readValueType",null),(0,n._)([(0,o.MZ)({type:Boolean,json:{read:!1}})],m.prototype,"visible",void 0),m=i=(0,n._)([(0,u.$)("esri.layers.support.Field")],m);const _=m},27615:(e,t,r)=>{r.d(t,{CK:()=>l,Hq:()=>o,MW:()=>c,TE:()=>d,yJ:()=>u});var i=r(38954),n=r(86738),s=r(95696),a=r(18251);function o(e){return null!=e.origin}function l(e){return o(e.vertexSpace)}function c(e,t){if(!o(e))return null;const[r,i,s]=e.origin;return new n.A({x:r,y:i,z:s,spatialReference:t})}function d(e,t){const{x:r,y:i,z:n,spatialReference:o}=e,l=[r,i,n??0];return"local"===(t?.vertexSpace??function(e){return e.isGeographic||e.isWebMercator?"local":"georeferenced"}(o))?new a.A({origin:l}):new s.A({origin:l})}function u(e,t){return e.type===t.type&&(e.origin===t.origin||null!=e.origin&&null!=t.origin&&(0,i.p)(e.origin,t.origin))}},31756:(e,t,r)=>{r.d(t,{j:()=>s});var i=r(83047),n=r(79258);const s={unknown:1,inches:(0,i.oU)(1,"meters","inches"),feet:(0,i.oU)(1,"meters","feet"),"us-feet":(0,i.oU)(1,"meters","us-feet"),yards:(0,i.oU)(1,"meters","yards"),miles:(0,i.oU)(1,"meters","miles"),"nautical-miles":(0,i.oU)(1,"meters","nautical-miles"),millimeters:(0,i.oU)(1,"meters","millimeters"),centimeters:(0,i.oU)(1,"meters","centimeters"),decimeters:(0,i.oU)(1,"meters","decimeters"),meters:(0,i.oU)(1,"meters","meters"),kilometers:(0,i.oU)(1,"meters","kilometers"),"decimal-degrees":1/(0,i.vl)(1,"meters",n.$O.radius)}},32587:(e,t,r)=>{r.d(t,{A:()=>s});var i=r(62788),n=r(95488);class s{constructor(e){this._observable=new n.I,this._map=new Map(e)}get size(){return(0,i.gc)(this._observable),this._map.size}clear(){this._map.size>0&&(this._map.clear(),this._observable.notify())}delete(e){const t=this._map.delete(e);return t&&this._observable.notify(),t}entries(){return(0,i.gc)(this._observable),this._map.entries()}forEach(e,t){(0,i.gc)(this._observable),this._map.forEach(((r,i)=>e.call(t,r,i,this)),t)}get(e){return(0,i.gc)(this._observable),this._map.get(e)}has(e){return(0,i.gc)(this._observable),this._map.has(e)}keys(){return(0,i.gc)(this._observable),this._map.keys()}set(e,t){return this._map.set(e,t),this._observable.notify(),this}values(){return(0,i.gc)(this._observable),this._map.values()}[Symbol.iterator](){return(0,i.gc)(this._observable),this._map[Symbol.iterator]()}[Symbol.dispose](){this._observable.destroy()}get[Symbol.toStringTag](){return this._map[Symbol.toStringTag]}}},39357:(e,t,r)=>{r.d(t,{H:()=>l});var i,n=r(90237),s=r(25482),a=r(10107),o=(r(44208),r(53966),r(87811),r(40608));let l=i=class extends s.A{constructor(e){super(e),this.name=null,this.code=null}clone(){return new i({name:this.name,code:this.code})}};(0,n._)([(0,a.MZ)({type:String,json:{write:{isRequired:!0}}})],l.prototype,"name",void 0),(0,n._)([(0,a.MZ)({type:[String,Number],json:{write:{isRequired:!0}}})],l.prototype,"code",void 0),l=i=(0,n._)([(0,o.$)("esri.layers.support.CodedValue")],l)},40268:(e,t,r)=>{r.d(t,{Q:()=>h,R:()=>u});var i=r(35640),n=r(52587),s=r(20693),a=r(14314),o=r(33094),l=r(20304),c=r(31821),d=r(46540);const u=.5;function h(e,t){e.include(n.Y6),e.attributes.add(d.r.POSITION,"vec3"),e.attributes.add(d.r.NORMAL,"vec3"),e.attributes.add(d.r.CENTEROFFSETANDDISTANCE,"vec4");const r=e.vertex;(0,s.NB)(r,t),(0,s.yu)(r,t),r.uniforms.add(new a.I("viewport",(e=>e.camera.fullViewport)),new l.m("polygonOffset",(e=>e.shaderPolygonOffset)),new o.U("cameraGroundRelative",(e=>e.camera.aboveGround?1:-1))),t.hasVerticalOffset&&(0,i.V)(r),r.code.add(c.H`struct ProjectHUDAux {
176
- vec3 posModel;
177
- vec3 posView;
178
- vec3 vnormal;
179
- float distanceToCamera;
180
- float absCosAngle;
181
- };`),r.code.add(c.H`
182
- float applyHUDViewDependentPolygonOffset(float pointGroundDistance, float absCosAngle, inout vec3 posView) {
183
- float pointGroundSign = ${t.terrainDepthTest?c.H.float(0):c.H`sign(pointGroundDistance)`};
184
- if (pointGroundSign == 0.0) {
185
- pointGroundSign = cameraGroundRelative;
186
- }
187
-
188
- // cameraGroundRelative is -1 if camera is below ground, 1 if above ground
189
- // groundRelative is 1 if both camera and symbol are on the same side of the ground, -1 otherwise
190
- float groundRelative = cameraGroundRelative * pointGroundSign;
191
-
192
- // view angle dependent part of polygon offset emulation: we take the absolute value because the sign that is
193
- // dropped is instead introduced using the ground-relative position of the symbol and the camera
194
- if (polygonOffset > .0) {
195
- float cosAlpha = clamp(absCosAngle, 0.01, 1.0);
196
- float tanAlpha = sqrt(1.0 - cosAlpha * cosAlpha) / cosAlpha;
197
- float factor = (1.0 - tanAlpha / viewport[2]);
198
-
199
- // same side of the terrain
200
- if (groundRelative > 0.0) {
201
- posView *= factor;
202
- }
203
- // opposite sides of the terrain
204
- else {
205
- posView /= factor;
206
- }
207
- }
208
-
209
- return groundRelative;
210
- }
211
- `),t.draped&&!t.hasVerticalOffset||(0,s.S7)(r),t.draped||(r.uniforms.add(new o.U("perDistancePixelRatio",(e=>Math.tan(e.camera.fovY/2)/(e.camera.fullViewport[2]/2)))),r.code.add(c.H`
212
- void applyHUDVerticalGroundOffset(vec3 normalModel, inout vec3 posModel, inout vec3 posView) {
213
- float distanceToCamera = length(posView);
214
-
215
- // Compute offset in world units for a half pixel shift
216
- float pixelOffset = distanceToCamera * perDistancePixelRatio * ${c.H.float(u)};
217
-
218
- // Apply offset along normal in the direction away from the ground surface
219
- vec3 modelOffset = normalModel * cameraGroundRelative * pixelOffset;
220
-
221
- // Apply the same offset also on the view space position
222
- vec3 viewOffset = (viewNormal * vec4(modelOffset, 1.0)).xyz;
223
-
224
- posModel += modelOffset;
225
- posView += viewOffset;
226
- }
227
- `)),t.screenCenterOffsetUnitsEnabled&&(0,s.Nz)(r),t.hasScreenSizePerspective&&(0,n.OH)(r),r.code.add(c.H`
228
- vec4 projectPositionHUD(out ProjectHUDAux aux) {
229
- vec3 centerOffset = centerOffsetAndDistance.xyz;
230
- float pointGroundDistance = centerOffsetAndDistance.w;
231
-
232
- aux.posModel = position;
233
- aux.posView = (view * vec4(aux.posModel, 1.0)).xyz;
234
- aux.vnormal = normal;
235
- ${t.draped?"":"applyHUDVerticalGroundOffset(aux.vnormal, aux.posModel, aux.posView);"}
236
-
237
- // Screen sized offset in world space, used for example for line callouts
238
- // Note: keep this implementation in sync with the CPU implementation, see
239
- // - MaterialUtil.verticalOffsetAtDistance
240
- // - HUDMaterial.applyVerticalOffsetTransformation
241
-
242
- aux.distanceToCamera = length(aux.posView);
243
-
244
- vec3 viewDirObjSpace = normalize(cameraPosition - aux.posModel);
245
- float cosAngle = dot(aux.vnormal, viewDirObjSpace);
246
-
247
- aux.absCosAngle = abs(cosAngle);
248
-
249
- ${t.hasScreenSizePerspective&&(t.hasVerticalOffset||t.screenCenterOffsetUnitsEnabled)?"vec3 perspectiveFactor = screenSizePerspectiveScaleFactor(aux.absCosAngle, aux.distanceToCamera, screenSizePerspectiveAlignment);":""}
250
-
251
- ${t.hasVerticalOffset?t.hasScreenSizePerspective?"float verticalOffsetScreenHeight = applyScreenSizePerspectiveScaleFactorFloat(verticalOffset.x, perspectiveFactor);":"float verticalOffsetScreenHeight = verticalOffset.x;":""}
252
-
253
- ${t.hasVerticalOffset?c.H`
254
- float worldOffset = clamp(verticalOffsetScreenHeight * verticalOffset.y * aux.distanceToCamera, verticalOffset.z, verticalOffset.w);
255
- vec3 modelOffset = aux.vnormal * worldOffset;
256
- aux.posModel += modelOffset;
257
- vec3 viewOffset = (viewNormal * vec4(modelOffset, 1.0)).xyz;
258
- aux.posView += viewOffset;
259
- // Since we elevate the object, we need to take that into account
260
- // in the distance to ground
261
- pointGroundDistance += worldOffset;`:""}
262
-
263
- float groundRelative = applyHUDViewDependentPolygonOffset(pointGroundDistance, aux.absCosAngle, aux.posView);
264
-
265
- ${t.screenCenterOffsetUnitsEnabled?"":c.H`
266
- // Apply x/y in view space, but z in screen space (i.e. along posView direction)
267
- aux.posView += vec3(centerOffset.x, centerOffset.y, 0.0);
268
-
269
- // Same material all have same z != 0.0 condition so should not lead to
270
- // branch fragmentation and will save a normalization if it's not needed
271
- if (centerOffset.z != 0.0) {
272
- aux.posView -= normalize(aux.posView) * centerOffset.z;
273
- }
274
- `}
275
-
276
- vec4 posProj = proj * vec4(aux.posView, 1.0);
277
-
278
- ${t.screenCenterOffsetUnitsEnabled?t.hasScreenSizePerspective?"float centerOffsetY = applyScreenSizePerspectiveScaleFactorFloat(centerOffset.y, perspectiveFactor);":"float centerOffsetY = centerOffset.y;":""}
279
-
280
- ${t.screenCenterOffsetUnitsEnabled?"posProj.xy += vec2(centerOffset.x, centerOffsetY) * pixelRatio * 2.0 / viewport.zw * posProj.w;":""}
281
-
282
- // constant part of polygon offset emulation
283
- posProj.z -= groundRelative * polygonOffset * posProj.w;
284
- return posProj;
285
- }
286
- `)}},47522:(e,t,r)=>{r.d(t,{K:()=>s});var i=r(32976),n=r(31821);function s(e){e.uniforms.add(new i.o("alignPixelEnabled",(e=>e.alignPixelEnabled))),e.code.add(n.H`vec4 alignToPixelCenter(vec4 clipCoord, vec2 widthHeight) {
287
- if (!alignPixelEnabled)
288
- return clipCoord;
289
- vec2 xy = vec2(0.500123) + 0.5 * clipCoord.xy / clipCoord.w;
290
- vec2 pixelSz = vec2(1.0) / widthHeight;
291
- vec2 ij = (floor(xy * widthHeight) + vec2(0.5)) * pixelSz;
292
- vec2 result = (ij * 2.0 - vec2(1.0)) * clipCoord.w;
293
- return vec4(result, clipCoord.zw);
294
- }`),e.code.add(n.H`vec4 alignToPixelOrigin(vec4 clipCoord, vec2 widthHeight) {
295
- if (!alignPixelEnabled)
296
- return clipCoord;
297
- vec2 xy = vec2(0.5) + 0.5 * clipCoord.xy / clipCoord.w;
298
- vec2 pixelSz = vec2(1.0) / widthHeight;
299
- vec2 ij = floor((xy + 0.5 * pixelSz) * widthHeight) * pixelSz;
300
- vec2 result = (ij * 2.0 - vec2(1.0)) * clipCoord.w;
301
- return vec4(result, clipCoord.zw);
302
- }`)}},51624:(e,t,r)=>{r.d(t,{A:()=>u});var i,n,s=r(44208),a=r(69397),o=r(93687);(n=i||(i={}))[n.varint=0]="varint",n[n.fixed64=1]="fixed64",n[n.delimited=2]="delimited",n[n.fixed32=5]="fixed32",n[n.unknown=99]="unknown";const l=4294967296,c=new TextDecoder("utf-8"),d=(0,s.A)("safari")||(0,s.A)("ios")?6:(0,s.A)("ff")?12:32;class u{constructor(e,t,r=0,n=(e?e.byteLength:0)){this._tag=0,this._dataType=i.unknown,this._init(e,t,r,n)}_init(e,t,r,i){this._data=e,this._dataView=t,this._pos=r,this._end=i}get usedMemory(){return 64+(0,a.Qf)(this._data)}asUnsafe(){return this}clone(){return new u(this._data,this._dataView,this._pos,this._end)}pos(){return this._pos}move(e){this._pos=e}nextTag(e){for(;;){if(this._pos===this._end)return!1;const t=this._decodeVarint();if(this._tag=t>>3,this._dataType=7&t,!e||e===this._tag)break;this.skip()}return!0}next(){if(this._pos===this._end)return!1;const e=this._decodeVarint();return this._tag=e>>3,this._dataType=7&e,!0}empty(){return this._pos>=this._end}tag(){return this._tag}getInt32(){return this._decodeVarint()}getInt64(){return this._decodeVarint()}getUInt32(){let e=4294967295;if(e=(127&this._data[this._pos])>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<7)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<14)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<21)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(15&this._data[this._pos])<<28)>>>0,this._data[this._pos++]<128)return e;throw new Error("Varint overflow")}getUInt64(){return this._decodeVarint()}getSInt32(){const e=this.getUInt32();return e>>>1^-(1&e)}getSInt64(){return this._decodeSVarint()}getBool(){const e=0!==this._data[this._pos];return this._skip(1),e}getEnum(){return this._decodeVarint()}getFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getUint32(t+4,!0)*l;return this._skip(8),r}getSFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getInt32(t+4,!0)*l;return this._skip(8),r}getDouble(){const e=this._dataView.getFloat64(this._pos,!0);return this._skip(8),e}getFixed32(){const e=this._dataView.getUint32(this._pos,!0);return this._skip(4),e}getSFixed32(){const e=this._dataView.getInt32(this._pos,!0);return this._skip(4),e}getFloat(){const e=this._dataView.getFloat32(this._pos,!0);return this._skip(4),e}getString(){const e=this._getLength(),t=this._pos,r=this._toString(this._data,t,t+e);return this._skip(e),r}getBytes(){const e=this._getLength(),t=this._pos,r=this._toBytes(this._data,t,t+e);return this._skip(e),r}getLength(){return this._getLengthUnsafe()}processMessageWithArgs(e,t,r,i){const n=this.getMessage(),s=e(n,t,r,i);return n.release(),s}processMessage(e){const t=this.getMessage(),r=e(t);return t.release(),r}getMessage(){const e=this._getLength(),t=u.pool.acquire();return t._init(this._data,this._dataView,this._pos,this._pos+e),this._skip(e),t}release(){u.pool.release(this)}dataType(){return this._dataType}skip(){switch(this._dataType){case i.varint:this._decodeVarint();break;case i.fixed64:this._skip(8);break;case i.delimited:this._skip(this._getLength());break;case i.fixed32:this._skip(4);break;default:throw new Error("Invalid data type!")}}skipLen(e){this._skip(e)}_skip(e){if(this._pos+e>this._end)throw new Error("Attempt to skip past the end of buffer!");this._pos+=e}_decodeVarint(){const e=this._data;let t=this._pos,r=0,i=0;if(this._end-t>=10)do{if(i=e[t++],r|=127&i,!(128&i))break;if(i=e[t++],r|=(127&i)<<7,!(128&i))break;if(i=e[t++],r|=(127&i)<<14,!(128&i))break;if(i=e[t++],r|=(127&i)<<21,!(128&i))break;if(i=e[t++],r+=268435456*(127&i),!(128&i))break;if(i=e[t++],r+=34359738368*(127&i),!(128&i))break;if(i=e[t++],r+=4398046511104*(127&i),!(128&i))break;if(i=e[t++],r+=562949953421312*(127&i),!(128&i))break;if(i=e[t++],r+=72057594037927940*(127&i),!(128&i))break;if(i=e[t++],r+=0x8000000000000000*(127&i),!(128&i))break;throw new Error("Varint too long!")}while(0);else{let n=1;for(;t!==this._end&&(i=e[t],128&i);)++t,r+=(127&i)*n,n*=128;if(t===this._end)throw new Error("Varint overrun!");++t,r+=i*n}return this._pos=t,r}_decodeSVarint(){const e=this._data;let t,r=0,i=0;const n=1&e[this._pos];if(i=e[this._pos++],r|=127&i,!(128&i))return n?-(r+1)/2:r/2;if(i=e[this._pos++],r|=(127&i)<<7,!(128&i))return n?-(r+1)/2:r/2;if(i=e[this._pos++],r|=(127&i)<<14,!(128&i))return n?-(r+1)/2:r/2;if(i=e[this._pos++],r|=(127&i)<<21,!(128&i))return n?-(r+1)/2:r/2;if(i=e[this._pos++],r+=268435456*(127&i),!(128&i))return n?-(r+1)/2:r/2;if(i=e[this._pos++],r+=34359738368*(127&i),!(128&i))return n?-(r+1)/2:r/2;if(i=e[this._pos++],r+=4398046511104*(127&i),!(128&i))return n?-(r+1)/2:r/2;if(t=BigInt(r),i=e[this._pos++],t+=0x2000000000000n*BigInt(127&i),!(128&i))return Number(n?-(t+1n)/2n:t/2n);if(i=e[this._pos++],t+=0x100000000000000n*BigInt(127&i),!(128&i))return Number(n?-(t+1n)/2n:t/2n);if(i=e[this._pos++],t+=0x8000000000000000n*BigInt(127&i),!(128&i))return Number(n?-(t+1n)/2n:t/2n);throw new Error("Varint too long!")}_getLength(){if(this._dataType!==i.delimited)throw new Error("Not a delimited data type!");return this._decodeVarint()}_getLengthUnsafe(){return this.getUInt32()}_toString(e,t,r){if((r=Math.min(this._end,r))-t>d){const i=e.subarray(t,r);return c.decode(i)}let i="",n="";for(let s=t;s<r;++s){const t=e[s];128&t?n+="%"+t.toString(16):(i+=decodeURIComponent(n)+String.fromCharCode(t),n="")}return n.length&&(i+=decodeURIComponent(n)),i}_toBytes(e,t,r){return r=Math.min(this._end,r),new Uint8Array(e.buffer,t,r-t)}static{this.pool=new o.A(u,void 0,(e=>{e._data=null,e._dataView=null}))}}},53177:(e,t,r)=>{r.d(t,{A:()=>h});var i,n=r(90237),s=r(4718),a=r(10107),o=(r(44208),r(53966),r(93223)),l=r(40608),c=r(39357),d=r(76357);let u=class extends d.A{static{i=this}constructor(e){super(e),this.codedValues=null,this.type="coded-value"}getName(e){let t=null;if(this.codedValues){const r=String(e);this.codedValues.some((e=>(String(e.code)===r&&(t=e.name),!!t)))}return t}clone(){return new i({codedValues:(0,s.o8)(this.codedValues),name:this.name})}};(0,n._)([(0,a.MZ)({type:[c.H],json:{write:{isRequired:!0}}})],u.prototype,"codedValues",void 0),(0,n._)([(0,o.e)({codedValue:"coded-value"})],u.prototype,"type",void 0),u=i=(0,n._)([(0,l.$)("esri.layers.support.CodedValueDomain")],u);const h=u},53655:(e,t,r)=>{r.d(t,{SH:()=>O,ae:()=>T,cn:()=>y});var i=r(49186),n=r(51624),s=r(92722),a=r(69418);const o=["esriFieldTypeSmallInteger","esriFieldTypeInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeString","esriFieldTypeDate","esriFieldTypeOID","esriFieldTypeGeometry","esriFieldTypeBlob","esriFieldTypeRaster","esriFieldTypeGUID","esriFieldTypeGlobalID","esriFieldTypeXML","esriFieldTypeBigInteger","esriFieldTypeDateOnly","esriFieldTypeTimeOnly","esriFieldTypeTimestampOffset"],l=["sqlTypeBigInt","sqlTypeBinary","sqlTypeBit","sqlTypeChar","sqlTypeDate","sqlTypeDecimal","sqlTypeDouble","sqlTypeFloat","sqlTypeGeometry","sqlTypeGUID","sqlTypeInteger","sqlTypeLongNVarchar","sqlTypeLongVarbinary","sqlTypeLongVarchar","sqlTypeNChar","sqlTypeNVarchar","sqlTypeOther","sqlTypeReal","sqlTypeSmallInt","sqlTypeSqlXml","sqlTypeTime","sqlTypeTimestamp","sqlTypeTimestamp2","sqlTypeTinyInt","sqlTypeVarbinary","sqlTypeVarchar"],c=["upperLeft","lowerLeft"];function d(e){return e>=o.length?null:o[e]}function u(e){return e>=l.length?null:l[e]}function h(e){return e>=c.length?null:c[e]}function f(e,t){return t>=e.geometryTypes.length?null:e.geometryTypes[t]}function p(e,t,r){const i=e.asUnsafe(),n=t.createPointGeometry(r);for(;i.next();)switch(i.tag()){case 3:{const e=i.getUInt32(),r=i.pos()+e;let s=0;for(;i.pos()<r;)t.addCoordinatePoint(n,i.getSInt64(),s++);break}default:i.skip()}return n}function m(e,t,r){const i=e.asUnsafe(),n=t.createGeometry(r),s=2+(r.hasZ?1:0)+(r.hasM?1:0);for(;i.next();)switch(i.tag()){case 2:{const e=i.getUInt32(),r=i.pos()+e;let s=0;for(;i.pos()<r;)t.addLength(n,i.getUInt32(),s++);break}case 3:{const e=i.getUInt32(),r=i.pos()+e;let a=0;for(t.allocateCoordinates(n);i.pos()<r;)t.addCoordinate(n,i.getSInt64(),a),a++,a===s&&(a=0);break}default:i.skip()}return n}function _(e){const t=e.asUnsafe(),r=new s.A;let i="esriGeometryPoint";for(;t.next();)switch(t.tag()){case 2:{const e=t.getUInt32(),i=t.pos()+e;for(;t.pos()<i;)r.lengths.push(t.getUInt32());break}case 3:{const e=t.getUInt32(),i=t.pos()+e;for(;t.pos()<i;)r.coords.push(t.getSInt64());break}case 1:i=a.z[t.getEnum()];break;default:t.skip()}return{queryGeometry:r,queryGeometryType:i}}function g(e){const t=e.asUnsafe();for(;t.next();)switch(t.tag()){case 1:return t.getString();case 2:return t.getFloat();case 3:return t.getDouble();case 4:return t.getSInt32();case 5:return t.getUInt32();case 6:return t.getInt64();case 7:return t.getUInt64();case 8:return t.getSInt64();case 9:return t.getBool();default:return t.skip(),null}return null}function y(e){const t=e.asUnsafe(),r={type:d(0)};for(;t.next();)switch(t.tag()){case 1:r.name=t.getString();break;case 2:r.type=d(t.getEnum());break;case 3:r.alias=t.getString();break;case 4:r.sqlType=u(t.getEnum());break;case 5:default:t.skip();break;case 6:r.defaultValue=t.getString()}return r}function v(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.name=r.getString();break;case 2:t.isSystemMaintained=r.getBool();break;default:r.skip()}return t}function b(e,t,r,i){const n=t.createFeature(r);let s=0;for(;e.next();)switch(e.tag()){case 1:{const t=i[s++].name;n.attributes[t]=e.processMessage(g);break}case 2:n.geometry=e.processMessageWithArgs(m,t,r);break;case 4:n.centroid=e.processMessageWithArgs(p,t,r);break;default:e.skip()}return n}function w(e){const t=[1,1,1,1],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function x(e){const t=[0,0,0,0],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function T(e){const t={originPosition:h(0)},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.originPosition=h(r.getEnum());break;case 2:t.scale=r.processMessage(w);break;case 3:t.translate=r.processMessage(x);break;default:r.skip()}return t}function A(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.shapeAreaFieldName=r.getString();break;case 2:t.shapeLengthFieldName=r.getString();break;case 3:t.units=r.getString();break;default:r.skip()}return t}function I(e,t){const r=t.createSpatialReference();for(;e.next();)switch(e.tag()){case 1:r.wkid=e.getUInt32();break;case 5:r.wkt=e.getString();break;case 2:r.latestWkid=e.getUInt32();break;case 3:r.vcsWkid=e.getUInt32();break;case 4:r.latestVcsWkid=e.getUInt32();break;default:e.skip()}return r}function R(e,t){const r=t.createFeatureResult(),i=e.asUnsafe();r.geometryType=f(t,0);let n=!1;for(;i.next();)switch(i.tag()){case 1:r.objectIdFieldName=i.getString();break;case 3:r.globalIdFieldName=i.getString();break;case 4:r.geohashFieldName=i.getString();break;case 5:r.geometryProperties=i.processMessage(A);break;case 7:r.geometryType=f(t,i.getEnum());break;case 8:r.spatialReference=i.processMessageWithArgs(I,t);break;case 10:r.hasZ=i.getBool();break;case 11:r.hasM=i.getBool();break;case 12:r.transform=i.processMessage(T);break;case 9:r.exceededTransferLimit=i.getBool();break;case 13:t.addField(r,i.processMessage(y));break;case 15:n||(t.prepareFeatures(r),n=!0),t.addFeature(r,i.processMessageWithArgs(b,t,r,r.fields));break;case 2:r.uniqueIdField=i.processMessage(v);break;default:i.skip()}return t.finishFeatureResult(r),r}function S(e,t){const r={};let i=null;for(;e.next();)switch(e.tag()){case 4:i=e.processMessageWithArgs(_);break;case 1:r.featureResult=e.processMessageWithArgs(R,t);break;default:e.skip()}return null!=i&&r.featureResult&&t.addQueryGeometry(r,i),r}function O(e,t){try{const r=2,i=new n.A(new Uint8Array(e),new DataView(e)),s={};for(;i.next();)i.tag()===r?s.queryResult=i.processMessageWithArgs(S,t):i.skip();return s}catch(e){throw new i.A("query:parsing-pbf","Error while parsing FeatureSet PBF payload",{error:e})}}},58501:(e,t,r)=>{r.d(t,{q:()=>n});var i=r(62815);function n(e,t,r){if(!r?.features||!r.hasZ)return;const n=(0,i.N)(r.geometryType,t,e.outSpatialReference);if(null!=n)for(const e of r.features)n(e.geometry)}},62258:(e,t,r)=>{var i,n;r.d(t,{dz:()=>i,oH:()=>n}),function(e){e[e.OBJECT=0]="OBJECT",e[e.HUD=1]="HUD",e[e.TERRAIN=2]="TERRAIN",e[e.OVERLAY=3]="OVERLAY",e[e.I3S=4]="I3S",e[e.PCL=5]="PCL",e[e.LOD=6]="LOD",e[e.VOXEL=7]="VOXEL",e[e.TILES3D=8]="TILES3D"}(i||(i={})),function(e){e[e.MIN=0]="MIN",e[e.MINMAX=1]="MINMAX",e[e.ALL=2]="ALL"}(n||(n={}))},63578:(e,t,r)=>{r.d(t,{I:()=>a});var i=r(47522),n=r(96598),s=r(31821);function a(e,t){const{vertex:r,fragment:a}=e;e.include(n.Z,t),r.include(i.K),r.main.add(s.H`vec4 posProjCenter;
303
- if (dot(position, position) > 0.0) {
304
- ProjectHUDAux projectAux;
305
- vec4 posProj = projectPositionHUD(projectAux);
306
- posProjCenter = alignToPixelCenter(posProj, viewport.zw);
307
- forwardViewPosDepth(projectAux.posView);
308
- vec3 vpos = projectAux.posModel;
309
- if (rejectBySlice(vpos)) {
310
- posProjCenter = vec4(1e038, 1e038, 1e038, 1.0);
311
- }
312
- } else {
313
- posProjCenter = vec4(1e038, 1e038, 1e038, 1.0);
314
- }
315
- gl_Position = posProjCenter;
316
- gl_PointSize = 1.0;`),a.main.add(s.H`fragColor = vec4(1);
317
- if(discardByTerrainDepth()) {
318
- fragColor.g = 0.5;
319
- }`)}},65215:(e,t,r)=>{r.d(t,{HE:()=>i,R6:()=>n}),r(51850);class i{constructor(e){this.layerViewUid=e}}class n extends i{constructor(e,t){super(e),this.graphicUid=t}}},66208:(e,t,r)=>{r.d(t,{m:()=>n});var i=r(53655);function n(e,t){const r=(0,i.SH)(e,t),n=r.queryResult.featureResult,s=r.queryResult.queryGeometry,a=r.queryResult.queryGeometryType;if(n&&n.features&&n.features.length&&n.objectIdFieldName){const e=n.objectIdFieldName;for(const t of n.features)t.attributes&&(t.objectId=t.attributes[e])}return n&&(n.queryGeometry=s,n.queryGeometryType=a),n}},66344:(e,t,r)=>{var i,n;r.d(t,{q:()=>l}),(n=i||(i={}))[n.ALL=0]="ALL",n[n.SOME=1]="SOME";class s{get size(){return this._size}constructor(e=10485760){this._maxSize=e,this._db=new Map,this._size=0,this._hit=0,this._miss=0,this._users=new Map,this._sizeLimits=new Map}destroy(){this.clearAll(),this._sizeLimits.clear(),this._users.clear()}register(e){this._users.set(e.id.slice(0,-1),e)}deregister(e){this.clear(e),this._sizeLimits.delete(e),this._users.delete(e.id.slice(0,-1))}get maxSize(){return this._maxSize}set maxSize(e){this._maxSize=Math.max(e,-1),this._checkSize()}getSize(e,t){const r=this._db.get(e.id+t);return r?.size??0}put(e,t,r,n,s){t=e.id+t;const o=this._db.get(t);if(o&&(this._size-=o.size,e.size-=o.size,this._db.delete(t),o.entry!==r&&this._notifyRemove(t,o.entry,o.size,i.ALL)),n>this._maxSize)return void this._notifyRemove(t,r,n,i.ALL);if(void 0===r)return void console.warn("Refusing to cache undefined entry ");if(!n||n<0)return console.warn(`Refusing to cache entry with size ${n} for key ${t}`),void this._notifyRemove(t,r,0,i.ALL);const l=1+Math.max(s,-4)- -3;this._db.set(t,new a(r,n,l)),this._size+=n,e.size+=n,this._checkSize()}updateSize(e,t,r,n){t=e.id+t;const s=this._db.get(t);if(s&&s.entry===r){for(this._size-=s.size,e.size-=s.size;n>this._maxSize;){const e=this._notifyRemove(t,r,n,i.SOME);if(!(null!=e&&e>0))return void this._db.delete(t);n=e}s.size=n,this._size+=n,e.size+=n,this._checkSize()}}pop(e,t){t=e.id+t;const r=this._db.get(t);if(r)return this._size-=r.size,e.size-=r.size,this._db.delete(t),++this._hit,r.entry;++this._miss}get(e,t){t=e.id+t;const r=this._db.get(t);if(void 0!==r)return this._db.delete(t),r.lives=r.lifetime,this._db.set(t,r),++this._hit,r.entry;++this._miss}peek(e,t){const r=this._db.get(e.id+t);return r?++this._hit:++this._miss,r?.entry}get performanceInfo(){const e={Size:Math.round(this._size/1048576)+"/"+Math.round(this._maxSize/1048576)+"MB","Hit rate":Math.round(100*this._getHitRate())+"%",Entries:this._db.size.toString()},t={},r=new Array;this._db.forEach(((e,i)=>{const n=e.lifetime;r[n]=(r[n]||0)+e.size,this._users.forEach((r=>{const{id:n,name:s}=r;if(i.startsWith(n)){const r=t[s]||0;t[s]=r+e.size}}))}));const i={};this._users.forEach((e=>{const r=e.name;if("hitRate"in e&&"number"==typeof e.hitRate&&!isNaN(e.hitRate)&&e.hitRate>0){const n=t[r]||0;t[r]=n,i[r]=Math.round(100*e.hitRate)+"%"}else i[r]="0%"}));const n=Object.keys(t);n.sort(((e,r)=>t[r]-t[e])),n.forEach((r=>e[r]=Math.round(t[r]/2**20)+"MB / "+i[r]));for(let t=r.length-1;t>=0;--t){const i=r[t];i&&(e["Priority "+(t+-3-1)]=Math.round(i/this._size*100)+"%")}return e}resetStats(){this._hit=this._miss=0,this._users.forEach((e=>e.resetHitRate()))}clear(e){const t=e.id;this._db.forEach(((e,r)=>{r.startsWith(t)&&(this._size-=e.size,this._db.delete(r),this._notifyRemove(r,e.entry,e.size,i.ALL))})),e.size=0}clearAll(){this._db.forEach(((e,t)=>this._notifyRemove(t,e.entry,e.size,i.ALL))),this._users.forEach((e=>e.size=0)),this._size=0,this._db.clear()}_getHitRate(){return this._hit/(this._hit+this._miss)}_notifyRemove(e,t,r,i){const n=this._users.get(e.split(o)[0])?.removeFunc,s=n?.(t,i,r);return"number"==typeof s?s:null}_checkSize(){this._sizeLimits.forEach(((e,t)=>this._checkSizeLimits(e,t))),this._checkSizeLimits(this.maxSize)}setMaxSize(e,t){null==t||t<=0?this._sizeLimits.delete(e):this._sizeLimits.set(e,t)}_checkSizeLimits(e,t){const r=t??this;if(r.size<=e)return;const i=t?.id;let n=!0;for(;n;){n=!1;for(const[s,a]of this._db)if(0===a.lifetime&&(!i||s.startsWith(i))){const i=t??this._users.get(s.split(o)[0]);if(this._purgeItem(s,a,i),r.size<=.9*e)return;n||=this._db.has(s)}}for(const[n,s]of this._db)if(!i||n.startsWith(i)){const i=t??this._users.get(n.split(o)[0]);if(this._purgeItem(n,s,i),r.size<=.9*e)return}}_purgeItem(e,t,r){if(this._db.delete(e),t.lives<=1){this._size-=t.size,r&&(r.size-=t.size);const n=this._notifyRemove(e,t.entry,t.size,i.SOME);null!=n&&n>0&&(this._size+=n,r&&(r.size+=n),t.lives=t.lifetime,t.size=n,this._db.set(e,t))}else--t.lives,this._db.set(e,t)}}class a{constructor(e,t,r){this.entry=e,this.size=t,this.lifetime=r,this.lives=r}}const o=":";class l{constructor(e,t){this.removeFunc=t,this._storage=new s,this.id="",this.name="",this.size=0,this._storage.maxSize=e,this._storage.register(this)}destroy(){this._storage.deregister(this),this._storage.destroy()}put(e,t,r=1){this._storage.put(this,e,t,r,1)}pop(e){return this._storage.pop(this,e)}get(e){return this._storage.get(this,e)}clear(){this._storage.clearAll()}get maxSize(){return this._storage.maxSize}set maxSize(e){this._storage.maxSize=e}resetHitRate(){}}},69418:(e,t,r)=>{r.d(t,{S:()=>c,z:()=>l});var i=r(83047),n=r(21325),s=r(43334),a=r(58512),o=r(92722);const l=["esriGeometryPoint","esriGeometryMultipoint","esriGeometryPolyline","esriGeometryPolygon"];class c{constructor(e){this._options=e,this.geometryTypes=l,this._coordinatePtr=0,this._vertexDimension=0}createFeatureResult(){return new a.A}prepareFeatures(e){this._vertexDimension=2,e.hasZ&&this._vertexDimension++,e.hasM&&this._vertexDimension++}finishFeatureResult(e){if(!e?.features||!e.hasZ||!this._options.sourceSpatialReference||!e.spatialReference||(0,n.aI)(e.spatialReference,this._options.sourceSpatialReference)||e.spatialReference.vcsWkid)return;const t=(0,i.G9)(this._options.sourceSpatialReference)/(0,i.G9)(e.spatialReference);if(1!==t)for(const r of e.features){if(!(0,s.N3)(r))continue;const e=r.geometry.coords;for(let r=2;r<e.length;r+=3)e[r]*=t}}addFeature(e,t){e.features.push(t)}createFeature(){return new s.Om(null,{},null,0)}createSpatialReference(){return{wkid:0}}createGeometry(){return new o.A}addField(e,t){e.fields.push(t)}allocateCoordinates(e){e.coords.length=e.lengths.reduce(((e,t)=>e+t),0)*this._vertexDimension,this._coordinatePtr=0}addCoordinate(e,t){e.coords[this._coordinatePtr++]=t}addCoordinatePoint(e,t){e.coords.push(t)}addLength(e,t){e.lengths.push(t)}addQueryGeometry(e,t){e.queryGeometry=t.queryGeometry,e.queryGeometryType=t.queryGeometryType}createPointGeometry(){return new o.A}}},72385:(e,t,r)=>{function i(){return new Float32Array(3)}function n(e){const t=new Float32Array(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function s(e,t,r){const i=new Float32Array(3);return i[0]=e,i[1]=t,i[2]=r,i}function a(){return i()}function o(){return s(1,1,1)}function l(){return s(1,0,0)}function c(){return s(0,1,0)}function d(){return s(0,0,1)}r.d(t,{fA:()=>s,o8:()=>n,vt:()=>i});const u=a(),h=o(),f=l(),p=c(),m=d();Object.freeze(Object.defineProperty({__proto__:null,ONES:h,UNIT_X:f,UNIT_Y:p,UNIT_Z:m,ZEROS:u,clone:n,create:i,fromValues:s,ones:o,unitX:l,unitY:c,unitZ:d,zeros:a},Symbol.toStringTag,{value:"Module"}))},74038:(e,t,r)=>{r.d(t,{_:()=>i});class i{constructor(e,t,r,i,n,s=!1,a=0){this.name=e,this.count=t,this.type=r,this.offset=i,this.stride=n,this.normalized=s,this.divisor=a}}},75503:(e,t,r)=>{r.d(t,{E:()=>I,w:()=>o});var i=r(4576),n=r(21818),s=(r(44208),r(3694)),a=r(11006);class o{constructor(e=9,t){this._compareMinX=h,this._compareMinY=f,this._toBBox=e=>e,this._maxEntries=Math.max(4,e||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),t&&("function"==typeof t?this._toBBox=t:this._initFormat(t)),this.clear()}destroy(){this.clear(),w.prune(),x.prune(),T.prune(),A.prune()}all(e){l(this._data,e)}search(e,t){let r=this._data;const i=this._toBBox;if(v(e,r))for(w.clear();r;){for(let n=0,s=r.children.length;n<s;n++){const s=r.children[n],a=r.leaf?i(s):s;v(e,a)&&(r.leaf?t(s):y(e,a)?l(s,t):w.push(s))}r=w.pop()}}collides(e){let t=this._data;const r=this._toBBox;if(!v(e,t))return!1;for(w.clear();t;){for(let i=0,n=t.children.length;i<n;i++){const n=t.children[i],s=t.leaf?r(n):n;if(v(e,s)){if(t.leaf||y(e,s))return!0;w.push(n)}}t=w.pop()}return!1}load(e){if(!e.length)return this;if(e.length<this._minEntries){for(let t=0,r=e.length;t<r;t++)this.insert(e[t]);return this}let t=this._build(e.slice(),0,e.length-1,0);if(this._data.children.length)if(this._data.height===t.height)this._splitRoot(this._data,t);else{if(this._data.height<t.height){const e=this._data;this._data=t,t=e}this._insert(t,this._data.height-t.height-1,!0)}else this._data=t;return this}insert(e){return e&&this._insert(e,this._data.height-1),this}clear(){return this._data=new S([]),this}remove(e){if(!e)return this;let t,r=this._data,s=null,a=0,o=!1;const l=this._toBBox(e);for(T.clear(),A.clear();r||T.length>0;){if(r||(r=T.pop(),s=T.data[T.length-1],a=A.pop()??0,o=!0),r.leaf&&(t=(0,i.qh)(r.children,(0,n.zI)(e),r.children.length,r.indexHint),-1!==t))return r.children.splice(t,1),T.push(r),this._condense(T),this;o||r.leaf||!y(r,l)?s?(a++,r=s.children[a],o=!1):r=null:(T.push(r),A.push(a),a=0,s=r,r=r.children[0])}return this}toJSON(){return this._data}fromJSON(e){return this._data=e,this}_build(e,t,r,i){const n=r-t+1;let s=this._maxEntries;if(n<=s){const i=new S(e.slice(t,r+1));return c(i,this._toBBox),i}i||(i=Math.ceil(Math.log(n)/Math.log(s)),s=Math.ceil(n/s**(i-1)));const a=new O([]);a.height=i;const o=Math.ceil(n/s),l=o*Math.ceil(Math.sqrt(s));b(e,t,r,l,this._compareMinX);for(let n=t;n<=r;n+=l){const t=Math.min(n+l-1,r);b(e,n,t,o,this._compareMinY);for(let r=n;r<=t;r+=o){const n=Math.min(r+o-1,t);a.children.push(this._build(e,r,n,i-1))}}return c(a,this._toBBox),a}_insert(e,t,r){const i=this._toBBox,n=r?e:i(e);T.clear();const s=function(e,t,r,i){for(;i.push(t),!0!==t.leaf&&i.length-1!==r;){let r,i=1/0,n=1/0;for(let s=0,a=t.children.length;s<a;s++){const a=t.children[s],o=p(a),l=_(e,a)-o;l<n?(n=l,i=o<i?o:i,r=a):l===n&&o<i&&(i=o,r=a)}t=r||t.children[0]}return t}(n,this._data,t,T);for(s.children.push(e),u(s,n);t>=0&&T.data[t].children.length>this._maxEntries;)this._split(T,t),t--;!function(e,t,r){for(let i=r;i>=0;i--)u(t.data[i],e)}(n,T,t)}_split(e,t){const r=e.data[t],i=r.children.length,n=this._minEntries;this._chooseSplitAxis(r,n,i);const s=this._chooseSplitIndex(r,n,i);if(!s)return;const a=r.children.splice(s,r.children.length-s),o=r.leaf?new S(a):new O(a);o.height=r.height,c(r,this._toBBox),c(o,this._toBBox),t?e.data[t-1].children.push(o):this._splitRoot(r,o)}_splitRoot(e,t){this._data=new O([e,t]),this._data.height=e.height+1,c(this._data,this._toBBox)}_chooseSplitIndex(e,t,r){let i,n,s;i=n=1/0;for(let a=t;a<=r-t;a++){const t=d(e,0,a,this._toBBox),o=d(e,a,r,this._toBBox),l=g(t,o),c=p(t)+p(o);l<i?(i=l,s=a,n=c<n?c:n):l===i&&c<n&&(n=c,s=a)}return s}_chooseSplitAxis(e,t,r){const i=e.leaf?this._compareMinX:h,n=e.leaf?this._compareMinY:f;this._allDistMargin(e,t,r,i)<this._allDistMargin(e,t,r,n)&&e.children.sort(i)}_allDistMargin(e,t,r,i){e.children.sort(i);const n=this._toBBox,s=d(e,0,t,n),a=d(e,r-t,r,n);let o=m(s)+m(a);for(let i=t;i<r-t;i++){const t=e.children[i];u(s,e.leaf?n(t):t),o+=m(s)}for(let i=r-t-1;i>=t;i--){const t=e.children[i];u(a,e.leaf?n(t):t),o+=m(a)}return o}_condense(e){for(let t=e.length-1;t>=0;t--){const r=e.data[t];if(0===r.children.length)if(t>0){const n=e.data[t-1],s=n.children;s.splice((0,i.qh)(s,r,s.length,n.indexHint),1)}else this.clear();else c(r,this._toBBox)}}_initFormat(e){const t=["return a"," - b",";"];this._compareMinX=new Function("a","b",t.join(e[0])),this._compareMinY=new Function("a","b",t.join(e[1])),this._toBBox=new Function("a","return {minX: a"+e[0]+", minY: a"+e[1]+", maxX: a"+e[2]+", maxY: a"+e[3]+"};")}}function l(e,t){let r=e;for(x.clear();r;){if(!0===r.leaf)for(const e of r.children)t((0,n.zI)(e));else x.pushArray(r.children);r=x.pop()??null}}function c(e,t){d(e,0,e.children.length,t,e)}function d(e,t,r,i,n){n||(n=new S([])),n.minX=1/0,n.minY=1/0,n.maxX=-1/0,n.maxY=-1/0;for(let s,a=t;a<r;a++)s=e.children[a],u(n,e.leaf?i(s):s);return n}function u(e,t){e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY)}function h(e,t){return e.minX-t.minX}function f(e,t){return e.minY-t.minY}function p(e){return(e.maxX-e.minX)*(e.maxY-e.minY)}function m(e){return e.maxX-e.minX+(e.maxY-e.minY)}function _(e,t){return(Math.max(t.maxX,e.maxX)-Math.min(t.minX,e.minX))*(Math.max(t.maxY,e.maxY)-Math.min(t.minY,e.minY))}function g(e,t){const r=Math.max(e.minX,t.minX),i=Math.max(e.minY,t.minY),n=Math.min(e.maxX,t.maxX),s=Math.min(e.maxY,t.maxY);return Math.max(0,n-r)*Math.max(0,s-i)}function y(e,t){return e.minX<=t.minX&&e.minY<=t.minY&&t.maxX<=e.maxX&&t.maxY<=e.maxY}function v(e,t){return t.minX<=e.maxX&&t.minY<=e.maxY&&t.maxX>=e.minX&&t.maxY>=e.minY}function b(e,t,r,i,n){const s=[t,r];for(;s.length;){const t=s.pop(),r=s.pop();if(t-r<=i)continue;const o=r+Math.ceil((t-r)/i/2)*i;(0,a.q)(e,o,r,t,n),s.push(r,o,o,t)}}const w=new s.A,x=new s.A,T=new s.A,A=new s.A({deallocator:void 0});class I{constructor(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0}}class R extends I{constructor(){super(...arguments),this.height=1,this.indexHint=new i.vW}}class S extends R{constructor(e){super(),this.children=e,this.leaf=!0}}class O extends R{constructor(e){super(),this.children=e,this.leaf=!1}}},76357:(e,t,r)=>{r.d(t,{A:()=>u});var i=r(90237),n=r(66552),s=r(25482),a=r(10107),o=(r(44208),r(53966),r(87811),r(93223)),l=r(40608);const c=new n.J({inherited:"inherited",codedValue:"coded-value",range:"range"});let d=class extends s.A{constructor(e){super(e),this.name=null,this.type=null}};(0,i._)([(0,a.MZ)({type:String,json:{write:!0}})],d.prototype,"name",void 0),(0,i._)([(0,o.e)(c),(0,a.MZ)({json:{write:{isRequired:!0}}})],d.prototype,"type",void 0),d=(0,i._)([(0,l.$)("esri.layers.support.Domain")],d);const u=d},78230:(e,t,r)=>{r.d(t,{A:()=>f});var i,n,s=r(93687),a=r(3694),o=r(38954),l=r(51850),c=r(82919),d=r(71351),u=r(97937),h=r(620);class f{get bounds(){return this._root.bounds}get halfSize(){return this._root.halfSize}get root(){return this._root.node}get maximumObjectsPerNode(){return this._maximumObjectsPerNode}get maximumDepth(){return this._maximumDepth}get objectCount(){return this._objectCount}constructor(e,t){this.objectToBoundingSphere=e,this._maximumObjectsPerNode=10,this._maximumDepth=20,this._degenerateObjects=new Set,this._root=new p,this._objectCount=0,t&&(void 0!==t.maximumObjectsPerNode&&(this._maximumObjectsPerNode=t.maximumObjectsPerNode),void 0!==t.maximumDepth&&(this._maximumDepth=t.maximumDepth))}destroy(){this._degenerateObjects.clear(),p.clearPool(),E[0]=null,P.prune(),U.prune()}add(e,t=e.length){this._objectCount+=t,this._grow(e,t);const r=p.acquire();for(let i=0;i<t;i++){const t=e[i];this._isDegenerate(t)?this._degenerateObjects.add(t):(r.init(this._root),this._add(t,r))}p.release(r)}remove(e,t=null){this._objectCount-=e.length;const r=p.acquire();for(const i of e){const e=t??(0,u.e)(this.objectToBoundingSphere(i),B);R(e[3])?(r.init(this._root),g(i,e,r)):this._degenerateObjects.delete(i)}p.release(r),this._shrink()}update(e,t){if(!R(t[3])&&this._isDegenerate(e))return;const r=function(e){return E[0]=e,E}(e);this.remove(r,t),this.add(r)}forEachAlongRay(e,t,r){const i=(0,d.LV)(e,t);m(this._root,(e=>{if(!function(e,t){return x((0,u.a)(t.bounds),2*-t.halfSize,D),x((0,u.a)(t.bounds),2*t.halfSize,L),(0,h.O_)(e.origin,e.direction,D,L)}(i,e))return!1;const t=e.node;return t.terminals.forAll((e=>{this._intersectsObject(i,e)&&r(e)})),null!==t.residents&&t.residents.forAll((e=>{this._intersectsObject(i,e)&&r(e)})),!0}))}forEachAlongRayWithVerticalOffset(e,t,r,i){const n=(0,d.LV)(e,t);m(this._root,(e=>{if(!function(e,t,r){return x((0,u.a)(t.bounds),2*-t.halfSize,D),x((0,u.a)(t.bounds),2*t.halfSize,L),r.applyToMinMax(D,L),(0,h.O_)(e.origin,e.direction,D,L)}(n,e,i))return!1;const t=e.node;return t.terminals.forAll((e=>{this._intersectsObjectWithOffset(n,e,i)&&r(e)})),null!==t.residents&&t.residents.forAll((e=>{this._intersectsObjectWithOffset(n,e,i)&&r(e)})),!0}))}forEach(e){m(this._root,(t=>{const r=t.node;return r.terminals.forAll(e),null!==r.residents&&r.residents.forAll(e),!0})),this._degenerateObjects.forEach(e)}forEachDegenerateObject(e){this._degenerateObjects.forEach(e)}findClosest(e,t,r,i=()=>!0,n=1/0){let s=1/0,a=1/0,l=null;const d=A(e,t),h=o=>{if(--n,!i(o))return;const d=this.objectToBoundingSphere(o);if(!(0,c.m7)(r,d))return;const h=I(e,t,(0,u.a)(d)),f=h-d[3],p=h+d[3];f<s&&(s=f,a=p,l=o)};return _(this._root,(i=>{if(n<=0||!(0,c.m7)(r,i.bounds))return!1;if((0,o.h)(F,d,i.halfSize),(0,o.g)(F,F,(0,u.a)(i.bounds)),I(e,t,F)>a)return!1;const s=i.node;return s.terminals.forAll((e=>h(e))),null!==s.residents&&s.residents.forAll((e=>h(e))),!0}),e,t),l}forEachInDepthRange(e,t,r,i,n,s,a){let l=-1/0,d=1/0;const h={setRange:e=>{r===f.DepthOrder.FRONT_TO_BACK?(l=Math.max(l,e.near),d=Math.min(d,e.far)):(l=Math.max(l,-e.far),d=Math.min(d,-e.near))}};h.setRange(i);const p=I(t,r,e),m=A(t,r),g=A(t,-r),y=e=>{if(!a(e))return;const i=this.objectToBoundingSphere(e),o=(0,u.a)(i),f=I(t,r,o)-p,m=f-i[3],_=f+i[3];m>d||_<l||!(0,c.m7)(s,i)||n(e,h)};_(this._root,(e=>{if(!(0,c.m7)(s,e.bounds))return!1;if((0,o.h)(F,m,e.halfSize),(0,o.g)(F,F,(0,u.a)(e.bounds)),I(t,r,F)-p>d)return!1;if((0,o.h)(F,g,e.halfSize),(0,o.g)(F,F,(0,u.a)(e.bounds)),I(t,r,F)-p<l)return!1;const i=e.node;return i.terminals.forAll((e=>y(e))),null!==i.residents&&i.residents.forAll((e=>y(e))),!0}),t,r)}forEachNode(e){m(this._root,(t=>e(t.node,t.bounds,t.halfSize,t.depth)))}forEachNeighbor(e,t){const r=(0,u.g)(t),i=(0,u.a)(t),n=t=>{const n=this.objectToBoundingSphere(t),s=(0,u.g)(n),a=r+s;return!((0,o.s)((0,u.a)(n),i)-a*a<=0)||e(t)};let s=!0;const a=e=>{s&&(s=n(e))};m(this._root,(e=>{const t=(0,u.g)(e.bounds),n=r+t;if((0,o.s)((0,u.a)(e.bounds),i)-n*n>0)return!1;const l=e.node;return l.terminals.forAll(a),s&&null!==l.residents&&l.residents.forAll(a),s})),s&&this.forEachDegenerateObject(a)}_intersectsObject(e,t){const r=this.objectToBoundingSphere(t);return!(r[3]>0)||(0,u.i)(r,e)}_intersectsObjectWithOffset(e,t,r){const i=this.objectToBoundingSphere(t);return!(i[3]>0)||(0,u.i)(r.applyToBoundingSphere(i),e)}_add(e,t){t.advanceTo(this.objectToBoundingSphere(e))?t.node.terminals.push(e):(t.node.residents.push(e),t.node.residents.length>this._maximumObjectsPerNode&&t.depth<this._maximumDepth&&this._split(t))}_split(e){const t=e.node.residents;e.node.residents=null;for(let r=0;r<t.length;r++){const i=p.acquire().init(e);this._add(t.at(r),i),p.release(i)}}_grow(e,t){if(0!==t&&(T(e,t,(e=>this.objectToBoundingSphere(e)),N),R(N[3])&&!this._fitsInsideTree(N)))if(v(this._root.node))(0,u.e)(N,this._root.bounds),this._root.halfSize=1.25*this._root.bounds[3],this._root.updateBoundsRadiusFromHalfSize();else{const e=this._rootBoundsForRootAsSubNode(N);this._placingRootViolatesMaxDepth(e)?this._rebuildTree(N,e):this._growRootAsSubNode(e),p.release(e)}}_rebuildTree(e,t){(0,o.c)((0,u.a)(z),(0,u.a)(t.bounds)),z[3]=t.halfSize,T([e,z],2,(e=>e),V);const r=p.acquire().init(this._root);this._root.initFrom(null,V,V[3]),this._root.increaseHalfSize(1.25),m(r,(e=>(this.add(e.node.terminals.data,e.node.terminals.length),null!==e.node.residents&&this.add(e.node.residents.data,e.node.residents.length),!0))),p.release(r)}_placingRootViolatesMaxDepth(e){const t=Math.log(e.halfSize/this._root.halfSize)*Math.LOG2E;let r=0;return m(this._root,(e=>(r=Math.max(r,e.depth),r+t<=this._maximumDepth))),r+t>this._maximumDepth}_rootBoundsForRootAsSubNode(e){const t=e[3],r=e;let i=-1/0;const n=this._root.bounds,s=this._root.halfSize;for(let e=0;e<3;e++){const a=n[e]-s-(r[e]-t),o=r[e]+t-(n[e]+s),l=Math.max(0,Math.ceil(a/(2*s))),c=Math.max(0,Math.ceil(o/(2*s)))+1,d=2**Math.ceil(Math.log(l+c)*Math.LOG2E);i=Math.max(i,d),j[e].min=l,j[e].max=c}for(let e=0;e<3;e++){let t=j[e].min,r=j[e].max;const a=(i-(t+r))/2;t+=Math.ceil(a),r+=Math.floor(a);const o=n[e]-s-t*s*2;C[e]=o+(r+t)*s}const a=i*s;return C[3]=a*M,p.acquire().initFrom(null,C,a,0)}_growRootAsSubNode(e){const t=this._root.node;(0,o.c)((0,u.a)(N),(0,u.a)(this._root.bounds)),N[3]=this._root.halfSize,this._root.init(e),e.advanceTo(N,null,!0),e.node.children=t.children,e.node.residents=t.residents,e.node.terminals=t.terminals}_shrink(){for(;;){const e=this._findShrinkIndex();if(-1===e)break;this._root.advance(e),this._root.depth=0}}_findShrinkIndex(){if(0!==this._root.node.terminals.length||this._root.isLeaf())return-1;let e=null;const t=this._root.node.children;let r=0,i=0;for(;i<t.length&&null==e;)r=i++,e=t[r];for(;i<t.length;)if(t[i++])return-1;return r}_isDegenerate(e){return!R(this.objectToBoundingSphere(e)[3])}_fitsInsideTree(e){const t=this._root.bounds,r=this._root.halfSize;return e[3]<=r&&e[0]>=t[0]-r&&e[0]<=t[0]+r&&e[1]>=t[1]-r&&e[1]<=t[1]+r&&e[2]>=t[2]-r&&e[2]<=t[2]+r}toJSON(){const{maximumDepth:e,maximumObjectsPerNode:t,_objectCount:r}=this,i=this._nodeToJSON(this._root.node);return{maximumDepth:e,maximumObjectsPerNode:t,objectCount:r,root:{bounds:this._root.bounds,halfSize:this._root.halfSize,depth:this._root.depth,node:i}}}_nodeToJSON(e){const t=e.children.map((e=>e?this._nodeToJSON(e):null)),r=e.residents?.map((e=>this.objectToBoundingSphere(e))),i=e.terminals?.map((e=>this.objectToBoundingSphere(e)));return{children:t,residents:r,terminals:i}}static fromJSON(e){const t=new f((e=>e),{maximumDepth:e.maximumDepth,maximumObjectsPerNode:e.maximumObjectsPerNode});return t._objectCount=e.objectCount,t._root.initFrom(e.root.node,e.root.bounds,e.root.halfSize,e.root.depth),t}}class p{constructor(){this.bounds=(0,u.c)(),this.halfSize=0,this.initFrom(null,null,0,0)}init(e){return this.initFrom(e.node,e.bounds,e.halfSize,e.depth)}initFrom(e,t,r,i=this.depth){return this.node=null!=e?e:p.createEmptyNode(),t&&(0,u.e)(t,this.bounds),this.halfSize=r,this.depth=i,this}increaseHalfSize(e){this.halfSize*=e,this.updateBoundsRadiusFromHalfSize()}updateBoundsRadiusFromHalfSize(){this.bounds[3]=this.halfSize*M}advance(e){let t=this.node.children[e];t||(t=p.createEmptyNode(),this.node.children[e]=t),this.node=t,this.halfSize/=2,this.depth++;const r=S[e];return this.bounds[0]+=r[0]*this.halfSize,this.bounds[1]+=r[1]*this.halfSize,this.bounds[2]+=r[2]*this.halfSize,this.updateBoundsRadiusFromHalfSize(),this}advanceTo(e,t,r=!1){for(;;){if(this.isTerminalFor(e))return t&&t(this,-1),!0;if(this.isLeaf()){if(!r)return t&&t(this,-1),!1;this.node.residents=null}const i=this._childIndex(e);t&&t(this,i),this.advance(i)}}isLeaf(){return null!=this.node.residents}isTerminalFor(e){return e[3]>this.halfSize/2}_childIndex(e){const t=this.bounds;return(t[0]<e[0]?1:0)+(t[1]<e[1]?2:0)+(t[2]<e[2]?4:0)}static createEmptyNode(){return{children:[null,null,null,null,null,null,null,null],terminals:new a.A({shrink:!0}),residents:new a.A({shrink:!0})}}static{this._pool=new s.A(p)}static acquire(){return p._pool.acquire()}static release(e){p._pool.release(e)}static clearPool(){p._pool.prune()}}function m(e,t){let r=p.acquire().init(e);const i=[r];for(;0!==i.length;){if(r=i.pop(),t(r)&&!r.isLeaf())for(let e=0;e<r.node.children.length;e++)r.node.children[e]&&i.push(p.acquire().init(r).advance(e));p.release(r)}}function _(e,t,r,i=f.DepthOrder.FRONT_TO_BACK){let n=p.acquire().init(e);const s=[n];for(function(e,t,r){if(!U.length)for(let e=0;e<8;++e)U.push({index:0,distance:0});for(let r=0;r<8;++r){const i=S[r];U.data[r].index=r,U.data[r].distance=I(e,t,i)}U.sort(((e,t)=>e.distance-t.distance));for(let e=0;e<8;++e)r[e]=U.data[e].index}(r,i,G);0!==s.length;){if(n=s.pop(),t(n)&&!n.isLeaf())for(let e=7;e>=0;--e){const t=G[e];n.node.children[t]&&s.push(p.acquire().init(n).advance(t))}p.release(n)}}function g(e,t,r){P.clear();const i=r.advanceTo(t,((e,t)=>{P.push(e.node),P.push(t)}))?r.node.terminals:r.node.residents;if(i.removeUnordered(e),0===i.length)for(let e=P.length-2;e>=0&&y(P.data[e],P.data[e+1]);e-=2);}function y(e,t){return t>=0&&(e.children[t]=null),!!v(e)&&(null===e.residents&&(e.residents=new a.A({shrink:!0})),!0)}function v(e){if(0!==e.terminals.length)return!1;if(null!==e.residents)return 0===e.residents.length;for(let t=0;t<e.children.length;t++)if(e.children[t])return!1;return!0}function b(e,t){e[0]=Math.min(e[0],t[0]-t[3]),e[1]=Math.min(e[1],t[1]-t[3]),e[2]=Math.min(e[2],t[2]-t[3])}function w(e,t){e[0]=Math.max(e[0],t[0]+t[3]),e[1]=Math.max(e[1],t[1]+t[3]),e[2]=Math.max(e[2],t[2]+t[3])}function x(e,t,r){r[0]=e[0]+t,r[1]=e[1]+t,r[2]=e[2]+t}function T(e,t,r,i){if(1===t){const t=r(e[0]);(0,u.e)(t,i)}else{D[0]=1/0,D[1]=1/0,D[2]=1/0,L[0]=-1/0,L[1]=-1/0,L[2]=-1/0;for(let i=0;i<t;i++){const t=r(e[i]);R(t[3])&&(b(D,t),w(L,t))}(0,o.m)((0,u.a)(i),D,L,.5),i[3]=Math.max(L[0]-D[0],L[1]-D[1],L[2]-D[2])/2}}function A(e,t){let r,i=1/0;for(let n=0;n<8;++n){const s=I(e,t,O[n]);s<i&&(i=s,r=O[n])}return r}function I(e,t,r){return t*(e[0]*r[0]+e[1]*r[1]+e[2]*r[2])}function R(e){return!isNaN(e)&&e!==-1/0&&e!==1/0&&e>0}(n=(i=f).DepthOrder||(i.DepthOrder={}))[n.FRONT_TO_BACK=1]="FRONT_TO_BACK",n[n.BACK_TO_FRONT=-1]="BACK_TO_FRONT";const S=[(0,l.fA)(-1,-1,-1),(0,l.fA)(1,-1,-1),(0,l.fA)(-1,1,-1),(0,l.fA)(1,1,-1),(0,l.fA)(-1,-1,1),(0,l.fA)(1,-1,1),(0,l.fA)(-1,1,1),(0,l.fA)(1,1,1)],O=[(0,l.fA)(-1,-1,-1),(0,l.fA)(-1,-1,1),(0,l.fA)(-1,1,-1),(0,l.fA)(-1,1,1),(0,l.fA)(1,-1,-1),(0,l.fA)(1,-1,1),(0,l.fA)(1,1,-1),(0,l.fA)(1,1,1)],M=Math.sqrt(3),E=[null],C=(0,u.c)(),F=(0,l.vt)(),D=(0,l.vt)(),L=(0,l.vt)(),P=new a.A,B=(0,u.c)(),N=(0,u.c)(),z=(0,u.c)(),V=(0,u.c)(),j=[{min:0,max:0},{min:0,max:0},{min:0,max:0}],U=new a.A,G=[0,0,0,0,0,0,0,0]},79677:(e,t,r)=>{r.d(t,{A:()=>f});var i,n=r(90237),s=r(25482),a=r(88930),o=r(10107),l=(r(44208),r(53966),r(87811),r(36005)),c=r(40608),d=r(43937),u=r(98623);let h=class extends s.A{static{i=this}static get allTime(){return p}static get empty(){return m}static fromArray(e){return new i({start:null!=e[0]?new Date(e[0]):e[0],end:null!=e[1]?new Date(e[1]):e[1]})}constructor(e){super(e),this.end=null,this.start=null}readEnd(e,t){return null!=t.end?new Date(t.end):null}writeEnd(e,t){t.end=e?.getTime()??null}get isAllTime(){return this.equals(i.allTime)}get isEmpty(){return this.equals(i.empty)}readStart(e,t){return null!=t.start?new Date(t.start):null}writeStart(e,t){t.start=e?.getTime()??null}clone(){return new i({end:this.end,start:this.start})}equals(e){if(!e)return!1;const t=this.start?.getTime()??this.start,r=this.end?.getTime()??this.end,i=e.start?.getTime()??e.start,n=e.end?.getTime()??e.end;return t===i&&r===n}expandTo(e,t=u.qU){if(this.isEmpty||this.isAllTime)return this.clone();let r=this.start;r&&(r=(0,a.lL)(r,e,t));let n=this.end;if(n){const r=(0,a.lL)(n,e,t);n=n.getTime()===r.getTime()?r:(0,a.S1)(r,1,e,t)}return new i({start:r,end:n})}intersection(e){if(!e)return this.clone();if(this.isEmpty||e.isEmpty)return i.empty;if(this.isAllTime)return e.clone();if(e.isAllTime)return this.clone();const t=this.start?.getTime()??-1/0,r=this.end?.getTime()??1/0,n=e.start?.getTime()??-1/0,s=e.end?.getTime()??1/0;let a,o;return n>=t&&n<=r?a=n:t>=n&&t<=s&&(a=t),r>=n&&r<=s?o=r:s>=t&&s<=r&&(o=s),null==a||null==o||isNaN(a)||isNaN(o)?i.empty:new i({start:a===-1/0?null:new Date(a),end:o===1/0?null:new Date(o)})}offset(e,t,r=u.qU){if(this.isEmpty||this.isAllTime)return this.clone();const n=new i,{start:s,end:o}=this;return null!=s&&(n.start=(0,a.S1)(s,e,t,r)),null!=o&&(n.end=(0,a.S1)(o,e,t,r)),n}toArray(){return this.isEmpty?[void 0,void 0]:[this.start?.getTime()??null,this.end?.getTime()??null]}union(e){if(!e||e.isEmpty)return this.clone();if(this.isEmpty)return e.clone();if(this.isAllTime||e.isAllTime)return p.clone();const t=null!=this.start&&null!=e.start?new Date(Math.min(this.start.getTime(),e.start.getTime())):null,r=null!=this.end&&null!=e.end?new Date(Math.max(this.end.getTime(),e.end.getTime())):null;return new i({start:t,end:r})}};(0,n._)([(0,o.MZ)({type:Date,json:{write:{allowNull:!0}}})],h.prototype,"end",void 0),(0,n._)([(0,l.w)("end")],h.prototype,"readEnd",null),(0,n._)([(0,d.K)("end")],h.prototype,"writeEnd",null),(0,n._)([(0,o.MZ)({readOnly:!0,json:{read:!1}})],h.prototype,"isAllTime",null),(0,n._)([(0,o.MZ)({readOnly:!0,json:{read:!1}})],h.prototype,"isEmpty",null),(0,n._)([(0,o.MZ)({type:Date,json:{write:{allowNull:!0}}})],h.prototype,"start",void 0),(0,n._)([(0,l.w)("start")],h.prototype,"readStart",null),(0,n._)([(0,d.K)("start")],h.prototype,"writeStart",null),h=i=(0,n._)([(0,c.$)("esri.time.TimeExtent")],h);const f=h,p=new h,m=new h({start:void 0,end:void 0})},80451:(e,t,r)=>{r.d(t,{rS:()=>_,gK:()=>m}),r(44208);var i,n=r(53177),s=r(76357),a=r(90237),o=(r(53966),r(87811),r(49186),r(93223)),l=r(40608);let c=class extends s.A{static{i=this}constructor(e){super(e),this.type="inherited"}clone(){return new i}};(0,a._)([(0,o.e)({inherited:"inherited"})],c.prototype,"type",void 0),c=i=(0,a._)([(0,l.$)("esri.layers.support.InheritedDomain")],c);const d=c;var u,h=r(10107);let f=class extends s.A{static{u=this}constructor(e){super(e),this.maxValue=null,this.minValue=null,this.type="range"}clone(){return new u({maxValue:this.maxValue,minValue:this.minValue,name:this.name})}};(0,a._)([(0,h.MZ)({json:{type:[Number],read:{source:"range",reader:(e,t)=>t.range?.[1]},write:{enabled:!1,overridePolicy(){return{enabled:null!=this.maxValue&&null==this.minValue}},target:"range",writer(e,t,r){t[r]=[this.minValue||0,e]},isRequired:!0}}})],f.prototype,"maxValue",void 0),(0,a._)([(0,h.MZ)({json:{type:[Number],read:{source:"range",reader:(e,t)=>t.range?.[0]},write:{target:"range",writer(e,t,r){t[r]=[e,this.maxValue||0]},isRequired:!0}}})],f.prototype,"minValue",void 0),(0,a._)([(0,o.e)({range:"range"})],f.prototype,"type",void 0),f=u=(0,a._)([(0,l.$)("esri.layers.support.RangeDomain")],f);const p=f,m={key:"type",base:s.A,typeMap:{range:p,"coded-value":n.A,inherited:d}};function _(e){if(!e?.type)return null;switch(e.type){case"range":return p.fromJSON(e);case"codedValue":return n.A.fromJSON(e);case"inherited":return d.fromJSON(e)}return null}},80893:(e,t,r)=>{r.d(t,{IJ:()=>p,Jf:()=>y,Pk:()=>_,eW:()=>f,gW:()=>g,kS:()=>m});var i=r(78888),n=r(84952),s=r(65864),a=r(17136),o=r(21325),l=r(10536),c=r(66208),d=r(58501);const u="Layer does not support extent calculation.";function h(e,t){const r=e.geometry,i=e.toJSON();delete i.compactGeometryEnabled,delete i.defaultSpatialReferenceEnabled;const n=i;let a,l,c;if(null!=r&&(l=r.spatialReference,c=(0,o.YX)(l),n.geometryType=(0,s.$B)(r),n.geometry=function(e,t){if(t&&"extent"===e.type)return`${e.xmin},${e.ymin},${e.xmax},${e.ymax}`;if(t&&"point"===e.type)return`${e.x},${e.y}`;const r=e.toJSON();return delete r.spatialReference,JSON.stringify(r)}(r,e.compactGeometryEnabled),n.inSR=c),i.groupByFieldsForStatistics&&(n.groupByFieldsForStatistics=i.groupByFieldsForStatistics.join(",")),i.objectIds&&(n.objectIds=i.objectIds.join(",")),i.orderByFields&&(n.orderByFields=i.orderByFields.join(",")),!i.outFields||!i.returnDistinctValues&&(t?.returnCountOnly||t?.returnExtentOnly||t?.returnIdsOnly)?delete n.outFields:i.outFields.includes("*")?n.outFields="*":n.outFields=i.outFields.join(","),i.outSR?(n.outSR=(0,o.YX)(i.outSR),a=e.outSpatialReference):r&&(i.returnGeometry||i.returnCentroid)&&(n.outSR=n.inSR,a=l),i.returnGeometry&&delete i.returnGeometry,i.outStatistics&&(n.outStatistics=JSON.stringify(i.outStatistics)),i.fullText&&(n.fullText=JSON.stringify(i.fullText)),i.pixelSize&&(n.pixelSize=JSON.stringify(i.pixelSize)),i.quantizationParameters&&(e.defaultSpatialReferenceEnabled&&null!=l&&null!=e.quantizationParameters?.extent&&l.equals(e.quantizationParameters.extent.spatialReference)&&delete i.quantizationParameters.extent.spatialReference,n.quantizationParameters=JSON.stringify(i.quantizationParameters)),i.parameterValues&&(n.parameterValues=JSON.stringify(i.parameterValues)),i.rangeValues&&(n.rangeValues=JSON.stringify(i.rangeValues)),i.dynamicDataSource&&(n.layer=JSON.stringify({source:i.dynamicDataSource}),delete i.dynamicDataSource),i.timeExtent){const e=i.timeExtent,{start:t,end:r}=e;null==t&&null==r||(n.time=t===r?t:`${t??"null"},${r??"null"}`),delete i.timeExtent}return e.defaultSpatialReferenceEnabled&&null!=l&&null!=a&&l.equals(a)&&(n.defaultSR=n.inSR,delete n.inSR,delete n.outSR),n}async function f(e,t,r,i){const n=null!=t.timeExtent&&t.timeExtent.isEmpty?{data:{features:[]}}:await v(e,t,"json",i);return(0,d.q)(t,r,n.data),n}async function p(e,t,r,i){if(null!=t.timeExtent&&t.timeExtent.isEmpty)return{data:r.createFeatureResult()};const n=await m(e,t,i),s=n;return s.data=(0,c.m)(n.data,r),s}function m(e,t,r){return v(e,t,"pbf",r)}function _(e,t,r){return null!=t.timeExtent&&t.timeExtent.isEmpty?Promise.resolve({data:{objectIds:[]}}):v(e,t,"json",r,{returnIdsOnly:!0})}function g(e,t,r){return null!=t.timeExtent&&t.timeExtent.isEmpty?Promise.resolve({data:{count:0}}):v(e,t,"json",r,{returnIdsOnly:!0,returnCountOnly:!0})}async function y(e,t,r){if(null!=t.timeExtent&&t.timeExtent.isEmpty)return{data:{count:0,extent:null}};const i=await v(e,t,"json",r,{returnExtentOnly:!0,returnCountOnly:!0}),n=i.data;if(n.hasOwnProperty("extent"))return i;if(n.features)throw new Error(u);if(n.hasOwnProperty("count"))throw new Error(u);return i}async function v(e,t,r,s={},o={}){const c="string"==typeof e?(0,n.An)(e):e,d=t.geometry?[t.geometry]:[],u=await(0,a.el)(d,null,{signal:s.signal}),f=u?.[0];null!=f&&((t=t.clone()).geometry=f);const p=(0,l.z)({...c.query,f:r,...o,...h(t,o)});return(0,i.A)((0,n.fj)(c.path,(m=o,null==t.formatOf3DObjects||m.returnCountOnly||m.returnExtentOnly||m.returnIdsOnly?"query":"query3d")),{...s,responseType:"pbf"===r?"array-buffer":"json",query:{...p,...s.query}});var m}},82919:(e,t,r)=>{r.d(t,{C:()=>g,vt:()=>_,ui:()=>y,m7:()=>v});var i=r(4341),n=r(58083),s=r(38954),a=r(51850),o=r(87317),l=r(91829),c=r(71351);function d(e){return e?{ray:(0,c.vt)(e.ray),c0:e.c0,c1:e.c1}:{ray:(0,c.vt)(),c0:0,c1:Number.MAX_VALUE}}new i.I((()=>d()));var u,h,f,p=r(27921),m=r(32114);function _(e){return e?[(0,p.vt)(e[0]),(0,p.vt)(e[1]),(0,p.vt)(e[2]),(0,p.vt)(e[3]),(0,p.vt)(e[4]),(0,p.vt)(e[5])]:[(0,p.vt)(),(0,p.vt)(),(0,p.vt)(),(0,p.vt)(),(0,p.vt)(),(0,p.vt)()]}function g(e,t){for(let r=0;r<b;r++)(0,p.C)(e[r],t[r]);return e}function y(e,t,r,i=T){const a=(0,n.lw)(m.Rc.get(),t,e);(0,n.B8)(a,a);for(let e=0;e<w;++e){const t=(0,o.t)(m.Km.get(),x[e],a);(0,s.i)(i[e],t[0]/t[3],t[1]/t[3],t[2]/t[3])}!function(e,t){(0,p.Cr)(t[h.FAR_BOTTOM_LEFT],t[h.NEAR_BOTTOM_LEFT],t[h.NEAR_TOP_LEFT],e[u.LEFT]),(0,p.Cr)(t[h.NEAR_BOTTOM_RIGHT],t[h.FAR_BOTTOM_RIGHT],t[h.FAR_TOP_RIGHT],e[u.RIGHT]),(0,p.Cr)(t[h.FAR_BOTTOM_LEFT],t[h.FAR_BOTTOM_RIGHT],t[h.NEAR_BOTTOM_RIGHT],e[u.BOTTOM]),(0,p.Cr)(t[h.NEAR_TOP_LEFT],t[h.NEAR_TOP_RIGHT],t[h.FAR_TOP_RIGHT],e[u.TOP]),(0,p.Cr)(t[h.NEAR_BOTTOM_LEFT],t[h.NEAR_BOTTOM_RIGHT],t[h.NEAR_TOP_RIGHT],e[u.NEAR]),(0,p.Cr)(t[h.FAR_BOTTOM_RIGHT],t[h.FAR_BOTTOM_LEFT],t[h.FAR_TOP_LEFT],e[u.FAR])}(r,i)}function v(e,t){for(let r=0;r<b;r++){const i=e[r];if(i[0]*t[0]+i[1]*t[1]+i[2]*t[2]+i[3]>=t[3])return!1}return!0}(f=u||(u={}))[f.LEFT=0]="LEFT",f[f.RIGHT=1]="RIGHT",f[f.BOTTOM=2]="BOTTOM",f[f.TOP=3]="TOP",f[f.NEAR=4]="NEAR",f[f.FAR=5]="FAR",function(e){e[e.NEAR_BOTTOM_LEFT=0]="NEAR_BOTTOM_LEFT",e[e.NEAR_BOTTOM_RIGHT=1]="NEAR_BOTTOM_RIGHT",e[e.NEAR_TOP_RIGHT=2]="NEAR_TOP_RIGHT",e[e.NEAR_TOP_LEFT=3]="NEAR_TOP_LEFT",e[e.FAR_BOTTOM_LEFT=4]="FAR_BOTTOM_LEFT",e[e.FAR_BOTTOM_RIGHT=5]="FAR_BOTTOM_RIGHT",e[e.FAR_TOP_RIGHT=6]="FAR_TOP_RIGHT",e[e.FAR_TOP_LEFT=7]="FAR_TOP_LEFT"}(h||(h={})),h.FAR_BOTTOM_RIGHT,h.NEAR_BOTTOM_RIGHT,h.NEAR_BOTTOM_LEFT,h.FAR_BOTTOM_LEFT,h.NEAR_BOTTOM_LEFT,h.NEAR_BOTTOM_RIGHT,h.NEAR_TOP_RIGHT,h.NEAR_TOP_LEFT,h.FAR_BOTTOM_RIGHT,h.FAR_BOTTOM_LEFT,h.FAR_TOP_LEFT,h.FAR_TOP_RIGHT,h.NEAR_BOTTOM_RIGHT,h.FAR_BOTTOM_RIGHT,h.FAR_TOP_RIGHT,h.NEAR_TOP_RIGHT,h.FAR_BOTTOM_LEFT,h.NEAR_BOTTOM_LEFT,h.NEAR_TOP_LEFT,h.FAR_TOP_LEFT,h.FAR_TOP_LEFT,h.NEAR_TOP_LEFT,h.NEAR_TOP_RIGHT,h.FAR_TOP_RIGHT;const b=6,w=8,x=[(0,l.fA)(-1,-1,-1,1),(0,l.fA)(1,-1,-1,1),(0,l.fA)(1,1,-1,1),(0,l.fA)(-1,1,-1,1),(0,l.fA)(-1,-1,1,1),(0,l.fA)(1,-1,1,1),(0,l.fA)(1,1,1,1),(0,l.fA)(-1,1,1,1)],T=(new i.I(d),[(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)(),(0,a.vt)()])},86305:(e,t,r)=>{r.d(t,{i3:()=>n}),r(38954);var i=r(51850);function n(e){return null!=e?.dist}r(17352),r(62258),(0,i.vt)()},87582:(e,t,r)=>{r.d(t,{h:()=>n}),r(62258);var i=r(65215);r(86305);class n extends i.R6{constructor(e,t,r,i,n){super(e,t),this.layerViewUid=e,this.graphicUid=t,this.triangleNr=r,this.baseBoundingSphere=i,this.numLodLevels=n}}},95696:(e,t,r)=>{r.d(t,{A:()=>u});var i,n=r(90237),s=r(69540),a=r(25482),o=r(10107),l=(r(44208),r(53966),r(87811),r(93223)),c=r(40608);let d=class extends(s.A.ClonableMixin(a.A)){static{i=this}constructor(e){super(e),this.type="georeferenced",this.origin=null}static{this.absolute=new i}};(0,n._)([(0,l.e)({georeferenced:"georeferenced"},{readOnly:!0})],d.prototype,"type",void 0),(0,n._)([(0,o.MZ)({type:[Number],nonNullable:!1,json:{write:!0}})],d.prototype,"origin",void 0),d=i=(0,n._)([(0,c.$)("esri.geometry.support.MeshGeoreferencedVertexSpace")],d);const u=d}}]);