@arcgis/core 5.1.0-next.52 → 5.1.0-next.54

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 (437) hide show
  1. package/applications/Components/SketchTooltipControls.d.ts +3 -2
  2. package/applications/Components/SketchTooltipControls.js +1 -1
  3. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  4. package/assets/esri/core/workers/RemoteClient.js +1 -1
  5. package/assets/esri/core/workers/chunks/009db7b459b18f6a668b.js +1 -0
  6. package/assets/esri/core/workers/chunks/097c037705ab485372ee.js +1 -0
  7. package/assets/esri/core/workers/chunks/0ab19ad980fda1cf402a.js +1 -0
  8. package/assets/esri/core/workers/chunks/0b79630ad435a7734104.js +1 -0
  9. package/assets/esri/core/workers/chunks/0f4759efc0982fb0ea03.js +1 -0
  10. package/assets/esri/core/workers/chunks/{386435341e949f5573b4.js → 0fc60b4c44c4e865b699.js} +2 -2
  11. package/assets/esri/core/workers/chunks/{f4d31d96681b649ddc95.js → 0ff12fe9e358100668d9.js} +1 -1
  12. package/assets/esri/core/workers/chunks/11fed97adc9bca0f95e9.js +1 -0
  13. package/assets/esri/core/workers/chunks/123e15c9e068a053d54e.js +1 -0
  14. package/assets/esri/core/workers/chunks/1613123918e9b0f7cfdb.js +1 -0
  15. package/assets/esri/core/workers/chunks/16a46688df5fad5cf8d5.js +1 -0
  16. package/assets/esri/core/workers/chunks/16ed8c0af8bb8b400163.js +1 -0
  17. package/assets/esri/core/workers/chunks/16f5cd740321a3539bf1.js +1 -0
  18. package/assets/esri/core/workers/chunks/173d94e162b210dee0a2.js +1 -0
  19. package/assets/esri/core/workers/chunks/199f70c0373f6008a545.js +1 -0
  20. package/assets/esri/core/workers/chunks/1a198c9e17f7a058669e.js +1 -0
  21. package/assets/esri/core/workers/chunks/1fdd736c4932655ff1d9.js +1 -0
  22. package/assets/esri/core/workers/chunks/{d2af5342fbe80e2d8c60.js → 20f9f3470cad47d01803.js} +1 -1
  23. package/assets/esri/core/workers/chunks/2304f7b8173cf86dd805.js +1 -0
  24. package/assets/esri/core/workers/chunks/2327b368673a974dee8b.js +1 -0
  25. package/assets/esri/core/workers/chunks/23eb204d3cb818adea32.js +1 -0
  26. package/assets/esri/core/workers/chunks/{eedeff8b344ff699b0b9.js → 2714ec856c2b3223425b.js} +1 -1
  27. package/assets/esri/core/workers/chunks/2757cf54656b5d318b11.js +1 -0
  28. package/assets/esri/core/workers/chunks/2aaeaf022af8493281dc.js +1 -0
  29. package/assets/esri/core/workers/chunks/34acecd7a314fed12335.js +1 -0
  30. package/assets/esri/core/workers/chunks/34fe4570eef9e73839b8.js +1 -0
  31. package/assets/esri/core/workers/chunks/{cdeb6aec578a1c07d663.js → 3cb0f020f9bfc6653c5d.js} +1 -1
  32. package/assets/esri/core/workers/chunks/40bcfc4f8efe7de7ec9d.js +1 -0
  33. package/assets/esri/core/workers/chunks/42e084704dea6e4135b6.js +1 -0
  34. package/assets/esri/core/workers/chunks/{5b3bb636e3bec625e515.js → 4301cb9670fa7c907460.js} +1 -1
  35. package/assets/esri/core/workers/chunks/48eca6f51112ba80bd3b.js +1 -0
  36. package/assets/esri/core/workers/chunks/4c38af9ae023fde2b5cd.js +1 -0
  37. package/assets/esri/core/workers/chunks/4c8c69d081ed37bf5bc5.js +1 -0
  38. package/assets/esri/core/workers/chunks/{cc1f3a2f281a2f6e0f94.js → 4d54beab8ae5ff31e7b0.js} +1 -1
  39. package/assets/esri/core/workers/chunks/4e7bb224bde9e5039263.js +1 -0
  40. package/assets/esri/core/workers/chunks/4f847a426973bd350c11.js +1 -0
  41. package/assets/esri/core/workers/chunks/52c90975cf22add7ee2b.js +1 -0
  42. package/assets/esri/core/workers/chunks/55214e1d9f3d98fa7ed9.js +1 -0
  43. package/assets/esri/core/workers/chunks/55bb5b7817c2963c8bfa.js +1 -0
  44. package/assets/esri/core/workers/chunks/57dc80942e51dedd8335.js +1 -0
  45. package/assets/esri/core/workers/chunks/59289867cce97da74e39.js +1 -0
  46. package/assets/esri/core/workers/chunks/5a9620cb66c8e64e4668.js +1 -0
  47. package/assets/esri/core/workers/chunks/5d202f60891fcae7174d.js +1 -0
  48. package/assets/esri/core/workers/chunks/{f7fb121169b7e5a5adbc.js → 6666ef3fd6ce877a4509.js} +1 -1
  49. package/assets/esri/core/workers/chunks/69644b8a6ce340ca1159.js +1 -0
  50. package/assets/esri/core/workers/chunks/6ab8ed12d162d79a8c55.js +1 -0
  51. package/assets/esri/core/workers/chunks/796d27d1bbb2eed53cbd.js +1 -0
  52. package/assets/esri/core/workers/chunks/7d56b2ac5030dd8b748e.js +1 -0
  53. package/assets/esri/core/workers/chunks/7ef1c1f765b6d423e474.js +1 -0
  54. package/assets/esri/core/workers/chunks/{720a33a7f118d2769133.js → 851dd71d28681d4eccfd.js} +1 -1
  55. package/assets/esri/core/workers/chunks/8569ae372fc64641b6b1.js +1 -0
  56. package/assets/esri/core/workers/chunks/{88c6cc90606409b5c884.js → 87d2021e91d025a2a142.js} +1 -1
  57. package/assets/esri/core/workers/chunks/929b26999321519824b9.js +1 -0
  58. package/assets/esri/core/workers/chunks/932a0b39d85a76377d52.js +1 -0
  59. package/assets/esri/core/workers/chunks/94f80c46ccf5e19038b8.js +1 -0
  60. package/assets/esri/core/workers/chunks/{fe7dec83e40014c55a6b.js → 96e799ca97989a6ed448.js} +1 -1
  61. package/assets/esri/core/workers/chunks/979c2f52b6d6e1e8241b.js +1 -0
  62. package/assets/esri/core/workers/chunks/{617328964d480d4a3a45.js → 9806cc96414065ae0afe.js} +1 -1
  63. package/assets/esri/core/workers/chunks/9db2ff1d4cbb5d1b623e.js +1 -0
  64. package/assets/esri/core/workers/chunks/a462aa1c7b68efad6906.js +1 -0
  65. package/assets/esri/core/workers/chunks/{987dc23fdc0a8c7150b9.js → a5bf2718c02a0e645013.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{f5fd59291cb161fdc05b.js → a787fe09d3df9d4254ba.js} +1 -1
  67. package/assets/esri/core/workers/chunks/a7b315a660f0f4e1d197.js +1 -0
  68. package/assets/esri/core/workers/chunks/a8e111a5cfd6151d5dbb.js +1 -0
  69. package/assets/esri/core/workers/chunks/a971e61336f455b953d5.js +1 -0
  70. package/assets/esri/core/workers/chunks/aed45f7e7eee154a21b8.js +1 -0
  71. package/assets/esri/core/workers/chunks/b2b77598048818c957b7.js +1 -0
  72. package/assets/esri/core/workers/chunks/b39b4db86a1049f0b901.js +1 -0
  73. package/assets/esri/core/workers/chunks/{3fa5f102b6f77c523a76.js → b3e5dcb530cef678c8f8.js} +1 -1
  74. package/assets/esri/core/workers/chunks/{c6a0e770c1a89d3b5913.js → b43889ed9737c27e89f1.js} +1 -1
  75. package/assets/esri/core/workers/chunks/b59f03c64e4965d87291.js +1 -0
  76. package/assets/esri/core/workers/chunks/bad82ce3f84f7efb7ab7.js +1 -0
  77. package/assets/esri/core/workers/chunks/bae1d6dd2376dff271e8.js +1 -0
  78. package/assets/esri/core/workers/chunks/bb047157f09471ecea53.js +1 -0
  79. package/assets/esri/core/workers/chunks/bbb9659f79511c2c4690.js +1 -0
  80. package/assets/esri/core/workers/chunks/bc3b22dc08c147b8d425.js +1 -0
  81. package/assets/esri/core/workers/chunks/be60a6e210186ff09ae2.js +1 -0
  82. package/assets/esri/core/workers/chunks/c03190faca955bffc8c1.js +1 -0
  83. package/assets/esri/core/workers/chunks/c1ad062ccc1817cbee4c.js +1 -0
  84. package/assets/esri/core/workers/chunks/{daf65bccc45dc5c400ae.js → c460ca93ed8e20d8b53a.js} +1 -1
  85. package/assets/esri/core/workers/chunks/c86b15f6a18880f921cd.js +1 -0
  86. package/assets/esri/core/workers/chunks/c93454e37ae0f124bcb0.js +1 -0
  87. package/assets/esri/core/workers/chunks/{3fcc8c455af56ae89030.js → ccf845ac0ac354507a25.js} +1 -1
  88. package/assets/esri/core/workers/chunks/cd14b6157862f33ab116.js +1 -0
  89. package/assets/esri/core/workers/chunks/ce59ec4f0cfbdf780bcb.js +1 -0
  90. package/assets/esri/core/workers/chunks/{7480bd6f892abf444cac.js → d1aa1d51662f4a01e793.js} +3 -3
  91. package/assets/esri/core/workers/chunks/d31e68e73527c88b8276.js +1 -0
  92. package/assets/esri/core/workers/chunks/{15a45e26964c2eb381a6.js → d4961d307651431328a8.js} +1 -1
  93. package/assets/esri/core/workers/chunks/{81b830f0d620587966ca.js → d53c6fc10425adc2c0cf.js} +1 -1
  94. package/assets/esri/core/workers/chunks/d69cdee402ba4fc3735f.js +1 -0
  95. package/assets/esri/core/workers/chunks/d6f1ed8d8f76a32bc81d.js +1 -0
  96. package/assets/esri/core/workers/chunks/d7456829e404874a9e2f.js +1 -0
  97. package/assets/esri/core/workers/chunks/d9444dd0d40aa8332b28.js +1 -0
  98. package/assets/esri/core/workers/chunks/da0a61f73d45ea9e71fc.js +1 -0
  99. package/assets/esri/core/workers/chunks/{9ae90a4b281d4103e8bb.js → dc07dc1cd30edc0c4193.js} +1 -1
  100. package/assets/esri/core/workers/chunks/{fdf8fe0f50a9ae548c16.js → ddc7956d80498518551e.js} +1 -1
  101. package/assets/esri/core/workers/chunks/{29c91b5c9ddcea85f39a.js → e23fc5853e2f4016936b.js} +1 -1
  102. package/assets/esri/core/workers/chunks/e2d1d9929ed7744785a1.js +1 -0
  103. package/assets/esri/core/workers/chunks/e543bb228f3f9d937d43.js +1 -0
  104. package/assets/esri/core/workers/chunks/ec21311584e4fb13e510.js +1 -0
  105. package/assets/esri/core/workers/chunks/ec91d5081f423755cb07.js +1 -0
  106. package/assets/esri/core/workers/chunks/{eb36417edc11fa80e312.js → ee8cd91c27e9cdfc3b2e.js} +1 -1
  107. package/assets/esri/core/workers/chunks/f3f26f6116ab9126c2e7.js +1 -0
  108. package/assets/esri/core/workers/chunks/f4472e3486fdc33abb9a.js +1 -0
  109. package/assets/esri/core/workers/chunks/f80f04657762666b9165.js +1 -0
  110. package/assets/esri/core/workers/chunks/f8eb14170f927aecfbc8.js +1 -0
  111. package/assets/esri/core/workers/chunks/f8ee1a99580a7da42cde.js +1 -0
  112. package/assets/esri/core/workers/chunks/fcda652fb5262696d59c.js +1 -0
  113. package/assets/esri/core/workers/chunks/{792219a079c28bcdc003.js → fcfaaced184f8da3e28d.js} +1 -1
  114. package/assets/esri/core/workers/chunks/fe92f54e45fd21ccd75f.js +1 -0
  115. package/assets/esri/core/workers/chunks/ff0cb1eec14d34214f12.js +1 -0
  116. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core-simd.wasm +0 -0
  117. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core.wasm +0 -0
  118. package/chunks/OITBlend.glsl.js +2 -2
  119. package/chunks/ShadowHighlight.glsl.js +1 -1
  120. package/chunks/Viewshed.glsl.js +2 -2
  121. package/chunks/arcgis-knowledge-client-core-simd.js +1 -1
  122. package/chunks/arcgis-knowledge-client-core.js +1 -1
  123. package/config.js +1 -1
  124. package/core/arrayUtils.js +1 -1
  125. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  126. package/core/maybe.js +1 -1
  127. package/geometry/SpatialReference.js +1 -1
  128. package/geometry/operators/support/apiConverter.js +1 -1
  129. package/geometry/support/aaBoundingBox.js +1 -1
  130. package/geometry/support/geometryUtils.js +1 -1
  131. package/kernel.js +1 -1
  132. package/layers/FeatureLayer.js +1 -1
  133. package/layers/OrientedImageryLayer.js +1 -1
  134. package/layers/graphics/data/QueryEngineCapabilities.js +1 -1
  135. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  136. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  137. package/layers/knowledgeGraph/nodeMovementUtils.js +1 -1
  138. package/layers/mixins/ArcGISImageService.js +1 -1
  139. package/layers/mixins/FeatureLayerBase.js +1 -1
  140. package/layers/raster/datasets/FunctionRaster.js +1 -1
  141. package/layers/raster/functions/AspectFunction.js +1 -1
  142. package/layers/raster/functions/BaseRasterFunction.js +1 -1
  143. package/layers/raster/functions/ConvolutionFunction.js +1 -1
  144. package/layers/raster/functions/CurvatureFunction.js +1 -1
  145. package/layers/raster/functions/HillshadeFunction.js +1 -1
  146. package/layers/raster/functions/ShadedReliefFunction.js +1 -1
  147. package/layers/raster/functions/SlopeFunction.js +1 -1
  148. package/layers/raster/functions/StatisticsFunction.js +1 -1
  149. package/layers/raster/functions/pixelUtils.js +1 -1
  150. package/layers/support/capabilities.js +1 -1
  151. package/layers/support/serviceCapabilitiesUtils.js +1 -1
  152. package/package.json +3 -3
  153. package/rest/knowledgeGraph/wasmInterface/knowledgeWasmAccess.js +1 -1
  154. package/support/revision.js +1 -1
  155. package/support/tests/serviceMockDependencies.js +1 -1
  156. package/views/2d/engine/flow/FlowContainer.js +1 -1
  157. package/views/2d/engine/flow/FlowStrategy.js +1 -1
  158. package/views/2d/engine/flow/FlowView2D.js +1 -1
  159. package/views/2d/engine/flow/dataUtils.js +1 -1
  160. package/views/2d/engine/flow/particleConstants.js +2 -0
  161. package/views/2d/engine/flow/styles/Imagery.js +1 -1
  162. package/views/2d/engine/flow/styles/Particles.js +1 -1
  163. package/views/2d/engine/flow/styles/Stack.js +1 -1
  164. package/views/2d/engine/flow/styles/Streamlines.js +1 -1
  165. package/views/2d/engine/flow/utils.js +1 -1
  166. package/views/2d/engine/imagery/RasterVFContainer.js +1 -1
  167. package/views/2d/engine/webgl/Painter.js +1 -1
  168. package/views/2d/engine/webgl/Profiler.js +1 -1
  169. package/views/2d/engine/webgl/WGLContainer.js +1 -1
  170. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  171. package/views/2d/engine/webgl/shaderGraph/techniques/TechniqueRegistry.js +1 -1
  172. package/views/2d/engine/webgl/shaderGraph/techniques/TestTechnique.js +1 -1
  173. package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
  174. package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillTechnique.js +1 -1
  175. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillTechnique.js +1 -1
  176. package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillTechnique.js +1 -1
  177. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillTechnique.js +1 -1
  178. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillTechnique.js +1 -1
  179. package/views/2d/engine/webgl/shaderGraph/techniques/flow/FlowTechnique.js +2 -0
  180. package/views/2d/engine/webgl/shaderGraph/techniques/grid/GridTechnique.js +1 -1
  181. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapTechnique.js +1 -1
  182. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  183. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelTechnique.js +1 -1
  184. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeTechnique.js +1 -1
  185. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineTechnique.js +1 -1
  186. package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineTechnique.js +1 -1
  187. package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
  188. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerTechnique.js +1 -1
  189. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterRegistry.js +1 -1
  190. package/views/2d/engine/webgl/shaderGraph/techniques/opacity/OpacityTechnique.js +1 -1
  191. package/views/2d/engine/webgl/shaderGraph/techniques/overlay/OverlayTechnique.js +1 -1
  192. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartTechnique.js +1 -1
  193. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js +2 -0
  194. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowParticlesShader.js +2 -0
  195. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowStreamlinesShader.js +2 -0
  196. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowUtils.js +2 -0
  197. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextTechnique.js +1 -1
  198. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileDebugInfoTechnique.js +1 -1
  199. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileStencilTechnique.js +1 -1
  200. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueBackground.js +1 -1
  201. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueCircle.js +1 -1
  202. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueFill.js +1 -1
  203. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueLine.js +1 -1
  204. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueSymbol.js +1 -1
  205. package/views/2d/engine/webgl/shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js +1 -1
  206. package/views/2d/engine/webgl/shaderGraph/typed/TypedShaderProgram.js +1 -1
  207. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  208. package/views/2d/interactive/editingTools/draw/DrawGraphicTool2D.js +1 -1
  209. package/views/2d/layers/features/FeatureContainer.js +1 -1
  210. package/views/2d/layers/features/RenderState.js +1 -1
  211. package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
  212. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  213. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  214. package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
  215. package/views/3d/layers/I3SMeshView3D.js +1 -1
  216. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  217. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  218. package/views/3d/layers/i3s/I3SMaterialUtil.js +1 -1
  219. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  220. package/views/3d/layers/support/Tiles3DBVH.js +1 -1
  221. package/views/3d/layers/support/Tiles3DMeshIntersectionHandler.js +1 -1
  222. package/views/3d/support/ResourceController.js +1 -1
  223. package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
  224. package/views/3d/support/orientedBoundingBox.js +1 -1
  225. package/views/3d/terrain/OverlayRenderer.js +1 -1
  226. package/views/3d/terrain/TerrainRenderer.js +1 -1
  227. package/views/3d/webgl/ManagedFBO.d.ts +1 -0
  228. package/views/3d/webgl/ManagedFBOResource.d.ts +1 -0
  229. package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
  230. package/views/3d/webgl-engine/collections/Component/ComponentObjectFixedBVH.js +1 -1
  231. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  232. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterialRepository.js +1 -1
  233. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  234. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  235. package/views/3d/webgl-engine/core/FBOCache.js +1 -1
  236. package/views/3d/webgl-engine/core/FBOCacheUsage.js +1 -1
  237. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +1 -1
  238. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +1 -1
  239. package/views/3d/webgl-engine/effects/RenderNodes.js +1 -1
  240. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  241. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  242. package/views/3d/webgl-engine/lib/GLMaterial.js +1 -1
  243. package/views/3d/webgl-engine/lib/GLMaterialLoader.js +2 -0
  244. package/views/3d/webgl-engine/lib/GLMaterialParameters.js +1 -1
  245. package/views/3d/webgl-engine/lib/GLMaterialRepository.js +1 -1
  246. package/views/3d/webgl-engine/lib/MainFramebuffer.js +1 -1
  247. package/views/3d/webgl-engine/lib/OrderIndependentTransparency.js +1 -1
  248. package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
  249. package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
  250. package/views/3d/webgl-engine/lib/RenderContext.js +1 -1
  251. package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
  252. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  253. package/views/3d/webgl-engine/lib/ReprojectionUniforms.js +2 -0
  254. package/views/3d/webgl-engine/lib/ScreenSpaceReflectionsUniforms.js +2 -0
  255. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  256. package/views/3d/webgl-engine/lib/TriangleIntersectionData.js +1 -1
  257. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  258. package/views/3d/webgl-engine/lib/lodRendering/LodComponentData.js +1 -1
  259. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  260. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  261. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  262. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  263. package/views/3d/webgl-engine/materials/PolygonOffset.js +1 -1
  264. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  265. package/views/3d/webgl-engine/materials/TriangleMaterial.js +1 -1
  266. package/views/3d/webgl-engine/materials/TriangleTechniqueConfiguration.js +1 -1
  267. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  268. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  269. package/views/3d/webgl-engine/materials/renderers/VaoRenderer.js +1 -1
  270. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  271. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  272. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  273. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  274. package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +1 -1
  275. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  276. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  277. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  278. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  279. package/views/3d/webgl.js +1 -1
  280. package/views/draw/DrawTool.js +1 -1
  281. package/views/draw/plugins/ShapePlugin.js +1 -1
  282. package/views/draw/support/managers/GlobalStateManager.js +1 -1
  283. package/views/draw/support/types.d.ts +9 -0
  284. package/views/interactive/SegmentLabels.js +1 -1
  285. package/views/webgl/AllocationTracer.js +1 -1
  286. package/views/webgl/Program.js +1 -1
  287. package/views/webgl/RenderingContext.js +1 -1
  288. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  289. package/widgets/Editor/components/Settings.js +1 -1
  290. package/widgets/Features/FeaturesViewModel.js +1 -1
  291. package/widgets/Features.js +1 -1
  292. package/widgets/Search/SearchViewModel.js +1 -1
  293. package/widgets/Search/support/layerSearchUtils.js +1 -1
  294. package/widgets/Search/support/locatorUtils.js +1 -1
  295. package/widgets/Sketch.js +1 -1
  296. package/widgets/support/SketchTooltipControls.js +1 -1
  297. package/assets/esri/core/workers/chunks/001492854799c35b53bb.js +0 -1
  298. package/assets/esri/core/workers/chunks/004f991251f09b36fb09.js +0 -1
  299. package/assets/esri/core/workers/chunks/01dd849a2d335e9f3e16.js +0 -1
  300. package/assets/esri/core/workers/chunks/027d733a99f50cadcf22.js +0 -1
  301. package/assets/esri/core/workers/chunks/03d85a706669aaf24d49.js +0 -1
  302. package/assets/esri/core/workers/chunks/0450133e81bce4b48b84.js +0 -1
  303. package/assets/esri/core/workers/chunks/085778ecd39f46324a6b.js +0 -1
  304. package/assets/esri/core/workers/chunks/08dce0019b52042b01fa.js +0 -1
  305. package/assets/esri/core/workers/chunks/0b661b90f7ee3ae23425.js +0 -1
  306. package/assets/esri/core/workers/chunks/0d8294982853308225da.js +0 -1
  307. package/assets/esri/core/workers/chunks/156aecac067213642aae.js +0 -1
  308. package/assets/esri/core/workers/chunks/167e4ff7cbc88b42db71.js +0 -1
  309. package/assets/esri/core/workers/chunks/184e9147f7a2f0ae5915.js +0 -1
  310. package/assets/esri/core/workers/chunks/19f59a2a97c33ff92650.js +0 -1
  311. package/assets/esri/core/workers/chunks/1a481f3ae3146682eb00.js +0 -1
  312. package/assets/esri/core/workers/chunks/2b7d020367cb4ebb3c3d.js +0 -1
  313. package/assets/esri/core/workers/chunks/30654845ca1334f1c206.js +0 -1
  314. package/assets/esri/core/workers/chunks/3104b10770903c265626.js +0 -1
  315. package/assets/esri/core/workers/chunks/33f00633131581e06328.js +0 -1
  316. package/assets/esri/core/workers/chunks/34207774bc371e95ba3c.js +0 -1
  317. package/assets/esri/core/workers/chunks/35dbe1eeb6932b03aea2.js +0 -1
  318. package/assets/esri/core/workers/chunks/365ad1ffd496ed86637b.js +0 -1
  319. package/assets/esri/core/workers/chunks/380bb57bccc266d6442a.js +0 -1
  320. package/assets/esri/core/workers/chunks/3874362bf7d43adc41bb.js +0 -1
  321. package/assets/esri/core/workers/chunks/38dc1c4b8721efd4a165.js +0 -1
  322. package/assets/esri/core/workers/chunks/39f3bea123f20c816ab2.js +0 -1
  323. package/assets/esri/core/workers/chunks/3e9700445518b8f9ae1b.js +0 -1
  324. package/assets/esri/core/workers/chunks/42f3fdad1728433b3510.js +0 -1
  325. package/assets/esri/core/workers/chunks/436941ec88439667022e.js +0 -1
  326. package/assets/esri/core/workers/chunks/4812482f28f7205b0938.js +0 -1
  327. package/assets/esri/core/workers/chunks/5317cbef0aac29761575.js +0 -1
  328. package/assets/esri/core/workers/chunks/5351e71ce7839636d06d.js +0 -1
  329. package/assets/esri/core/workers/chunks/54a9e17d6c0fef6a9146.js +0 -1
  330. package/assets/esri/core/workers/chunks/55985c9c48b8e1d1c634.js +0 -1
  331. package/assets/esri/core/workers/chunks/55edd712c6d2d044e550.js +0 -1
  332. package/assets/esri/core/workers/chunks/5e5b358e603b13b4d7d7.js +0 -1
  333. package/assets/esri/core/workers/chunks/63b9e4a7dad358605c38.js +0 -1
  334. package/assets/esri/core/workers/chunks/64da1ad9df9094ef5c12.js +0 -1
  335. package/assets/esri/core/workers/chunks/666f201d222c50ab8428.js +0 -1
  336. package/assets/esri/core/workers/chunks/66d4cbb35d0c290150bf.js +0 -1
  337. package/assets/esri/core/workers/chunks/677d3674cb2c0c05fb7e.js +0 -1
  338. package/assets/esri/core/workers/chunks/6f58ec80abebb7bfbbb0.js +0 -1
  339. package/assets/esri/core/workers/chunks/7100c9038739121c2c4b.js +0 -1
  340. package/assets/esri/core/workers/chunks/7380177f16d914fdbc63.js +0 -1
  341. package/assets/esri/core/workers/chunks/794f604d4267e374f7dd.js +0 -1
  342. package/assets/esri/core/workers/chunks/7ae8f73c8e2afae98ecb.js +0 -1
  343. package/assets/esri/core/workers/chunks/7d4af7e2cb2f234e12eb.js +0 -1
  344. package/assets/esri/core/workers/chunks/7dba4121cdd20dbc4b20.js +0 -1
  345. package/assets/esri/core/workers/chunks/807b12ace0099300b9b9.js +0 -1
  346. package/assets/esri/core/workers/chunks/816a4b03f2ea49238a6c.js +0 -1
  347. package/assets/esri/core/workers/chunks/842b442cc012d0797333.js +0 -1
  348. package/assets/esri/core/workers/chunks/8903ff28896bd6f34b0d.js +0 -1
  349. package/assets/esri/core/workers/chunks/89e9bc8789b100316136.js +0 -1
  350. package/assets/esri/core/workers/chunks/8afe32d3db9669f972bc.js +0 -1
  351. package/assets/esri/core/workers/chunks/91fd28f50477d16e294e.js +0 -1
  352. package/assets/esri/core/workers/chunks/953f671bdeb2ca9b9f37.js +0 -1
  353. package/assets/esri/core/workers/chunks/98011b93acf3d5f0b5a2.js +0 -1
  354. package/assets/esri/core/workers/chunks/9c7fd5db0813bdc38582.js +0 -1
  355. package/assets/esri/core/workers/chunks/a2fee1611319665e6aed.js +0 -1
  356. package/assets/esri/core/workers/chunks/a644e30f65347ce846ed.js +0 -1
  357. package/assets/esri/core/workers/chunks/a64daa4945923a178fe5.js +0 -1
  358. package/assets/esri/core/workers/chunks/a84d67c1a1008bca2075.js +0 -1
  359. package/assets/esri/core/workers/chunks/a85575a8d1da09280cd7.js +0 -1
  360. package/assets/esri/core/workers/chunks/ac4f7309a249132c22da.js +0 -1
  361. package/assets/esri/core/workers/chunks/aeb1900cfdd0e51cc5f8.js +0 -1
  362. package/assets/esri/core/workers/chunks/ba62f3aa811430787863.js +0 -1
  363. package/assets/esri/core/workers/chunks/bb659dcd297b895830df.js +0 -1
  364. package/assets/esri/core/workers/chunks/c03d0091a6f385b9ce8d.js +0 -1
  365. package/assets/esri/core/workers/chunks/c20aaca8085ce897bd12.js +0 -1
  366. package/assets/esri/core/workers/chunks/c3e711dc608eedda2d14.js +0 -1
  367. package/assets/esri/core/workers/chunks/c48d1ee37c207bfb0aac.js +0 -1
  368. package/assets/esri/core/workers/chunks/c4a9006cc6d2938570e0.js +0 -1
  369. package/assets/esri/core/workers/chunks/c692ea68509bddbf7b42.js +0 -1
  370. package/assets/esri/core/workers/chunks/cb8c17daec7055bf99cc.js +0 -1
  371. package/assets/esri/core/workers/chunks/d7439d357f68160844cb.js +0 -1
  372. package/assets/esri/core/workers/chunks/df3e79b56c37156e7895.js +0 -1
  373. package/assets/esri/core/workers/chunks/df8b80b17e371c9be4e6.js +0 -1
  374. package/assets/esri/core/workers/chunks/e77198f8ab47441423c5.js +0 -1
  375. package/assets/esri/core/workers/chunks/e786da40a1c87bed64ca.js +0 -1
  376. package/assets/esri/core/workers/chunks/e8aafef6342c50340a27.js +0 -1
  377. package/assets/esri/core/workers/chunks/ec00348d74e29f48613a.js +0 -1
  378. package/assets/esri/core/workers/chunks/f4201e7dcae224d0caf0.js +0 -1
  379. package/assets/esri/core/workers/chunks/f7cc05fbfc97b4d36eba.js +0 -1
  380. package/assets/esri/core/workers/chunks/f9d369a4683f88ee9d76.js +0 -1
  381. package/assets/esri/core/workers/chunks/fc534c94d55331578195.js +0 -1
  382. package/assets/esri/themes/base/colors/css/brand_colors.css +0 -76
  383. package/assets/esri/themes/base/colors/css/calcite_core_colors.css +0 -169
  384. package/assets/esri/themes/base/colors/css/calcite_core_colors_dark.css +0 -169
  385. package/assets/esri/themes/base/colors/css/calcite_gray_colors.css +0 -43
  386. package/assets/esri/themes/base/colors/css/calcite_gray_colors_dark.css +0 -43
  387. package/assets/esri/themes/base/colors/css/calcite_highlight_colors.css +0 -43
  388. package/assets/esri/themes/base/colors/css/calcite_highlight_colors_dark.css +0 -43
  389. package/assets/esri/themes/base/colors/css/calcite_vibrant_colors.css +0 -67
  390. package/assets/esri/themes/base/colors/css/calcite_vibrant_colors_dark.css +0 -67
  391. package/assets/esri/themes/base/colors/css/complete.css +0 -610
  392. package/assets/esri/themes/base/colors/css/scss/brand_colors.scss +0 -128
  393. package/assets/esri/themes/base/colors/css/scss/calcite_core_colors.scss +0 -289
  394. package/assets/esri/themes/base/colors/css/scss/calcite_core_colors_dark.scss +0 -285
  395. package/assets/esri/themes/base/colors/css/scss/calcite_gray_colors.scss +0 -96
  396. package/assets/esri/themes/base/colors/css/scss/calcite_gray_colors_dark.scss +0 -91
  397. package/assets/esri/themes/base/colors/css/scss/calcite_highlight_colors.scss +0 -69
  398. package/assets/esri/themes/base/colors/css/scss/calcite_highlight_colors_dark.scss +0 -65
  399. package/assets/esri/themes/base/colors/css/scss/calcite_vibrant_colors.scss +0 -128
  400. package/assets/esri/themes/base/colors/css/scss/calcite_vibrant_colors_dark.scss +0 -124
  401. package/assets/esri/themes/base/colors/css/scss/complete.scss +0 -11
  402. package/assets/esri/themes/base/colors/patterns_json/brand_colors.css +0 -366
  403. package/assets/esri/themes/base/colors/patterns_json/calcite_core_colors.css +0 -687
  404. package/assets/esri/themes/base/colors/patterns_json/calcite_core_colors_dark.css +0 -673
  405. package/assets/esri/themes/base/colors/patterns_json/calcite_gray_colors.css +0 -177
  406. package/assets/esri/themes/base/colors/patterns_json/calcite_gray_colors_dark.css +0 -169
  407. package/assets/esri/themes/base/colors/patterns_json/calcite_highlight_colors.css +0 -178
  408. package/assets/esri/themes/base/colors/patterns_json/calcite_highlight_colors_dark.css +0 -169
  409. package/assets/esri/themes/base/colors/patterns_json/calcite_vibrant_colors.css +0 -273
  410. package/assets/esri/themes/base/colors/patterns_json/calcite_vibrant_colors_dark.css +0 -265
  411. package/assets/esri/themes/base/colors/patterns_json/complete.css +0 -2847
  412. package/assets/esri/themes/base/colors/patterns_json/scss/brand_colors.scss +0 -464
  413. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_core_colors.scss +0 -967
  414. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_core_colors_dark.scss +0 -964
  415. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_gray_colors.scss +0 -265
  416. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_gray_colors_dark.scss +0 -263
  417. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_highlight_colors.scss +0 -237
  418. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_highlight_colors_dark.scss +0 -235
  419. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_vibrant_colors.scss +0 -376
  420. package/assets/esri/themes/base/colors/patterns_json/scss/calcite_vibrant_colors_dark.scss +0 -347
  421. package/assets/esri/themes/base/colors/patterns_json/scss/complete.scss +0 -12
  422. package/assets/esri/themes/base/icons/readme/download.png +0 -0
  423. package/assets/esri/themes/base/icons/readme/import-icons.png +0 -0
  424. package/assets/esri/themes/base/icons/readme/import.png +0 -0
  425. package/assets/esri/themes/base/icons/readme/load.png +0 -0
  426. package/assets/esri/themes/base/icons/selection.json +0 -1
  427. package/assets/esri/themes/base/icons/style.css +0 -774
  428. package/views/2d/engine/brushes.js +0 -2
  429. package/views/2d/engine/flow/BrushFlow.js +0 -2
  430. package/views/2d/engine/rasterBrushes.js +0 -2
  431. package/views/2d/engine/webgl/brushes/BrushClip.js +0 -2
  432. package/views/2d/engine/webgl/brushes/WGLBrush.js +0 -2
  433. package/views/2d/engine/webgl/painter/RenderPass.js +0 -2
  434. package/views/2d/engine/webgl/shaders/BackgroundPrograms.js +0 -2
  435. package/views/2d/engine/webgl/shaders/TileInfoPrograms.js +0 -2
  436. package/views/3d/webgl-engine/lib/GLMaterials.js +0 -2
  437. /package/assets/esri/core/workers/chunks/{386435341e949f5573b4.js.LICENSE.txt → 0fc60b4c44c4e865b699.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import e from"../../../../../core/Accessor.js";import"../../../../../core/has.js";import{disposeMaybe as i}from"../../../../../core/maybe.js";import{property as s,subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{GLMaterials as a}from"../../lib/GLMaterials.js";import{assert as n}from"../../lib/Util.js";import{DrawParameters as o}from"../DrawParameters.js";import{getStrideForDataType as l}from"./IndexLayout.js";import{defaultHighlightName as h}from"../../../../support/HighlightDefaults.js";let d=class extends e{constructor(t){super(t),this._glMaterials=null,this._drawParameters=new o,this._highlightNames=new Set,this._produces=new Map}initialize(){this._updateProduces()}destroy(){this.uninitializeRenderContext()}get _hasHighlights(){return this._highlightNames.size>0}hasHighlight(t){return this._highlightNames.has(t)}get produces(){return this._produces}_updateProduces(){this.material.produces.forEach((t,e)=>{this._produces.set(e,e=>!(0===this.dataByBaseInstance.size||!(10!==e&&6!==e||this._hasHighlights))&&t(e))})}initializeRenderContext(t){this._glMaterials=new a(this.material,t.materials)}uninitializeRenderContext(){this._glMaterials=i(this._glMaterials)}acquireTechniques(t){if(!this.material.shouldRender(t))return null;const{output:e,bind:i}=t,s=this.material.produces.get(i.slot);if(!s?.(e))return null;const{highlight:r,slot:a}=i,n=6===e,o=10===e,l=o||n,d=r?.name;if(l&&(0===this._highlightNames.size||o&&d&&!this._highlightNames.has(d)))return null;const u=t=>o&&!!d&&!t.has(d),c=7===e,g=!(l||c);for(const m of this.dataByBaseInstance.values())for(const s of m.dataByOrigin.values())for(const r of s.buffers){if(u(r.highlightNames))continue;const s=n?r.drawCommandsHighlights.get(h):l?d?r.drawCommandsHighlights.get(d):r.drawCommandsHighlights.size>0:((c&&r.needsMultipleCommands?r.drawCommandsShadowHighlightRest:r.drawCommandsDefault)||null)?.length??!1,o=g&&r.drawCommandsOccludees||null;if(s||o?.length){const s=this._glMaterials.load(t.rctx,a,e),r=s?.beginSlot(i);if(r)return r}}return null}render(t,e){const{output:i,bind:s}=t,{highlight:r}=s,a=10===i,o=r?.name??"";if(a&&!r)return;const l=6===i,d=a||l,p=7===i,w=!(d||p),{rctx:_}=t,C=_.bindTechnique(e,s,this.material.parameters),x=this.material.useIndexing;for(const B of this.dataByBaseInstance.values()){const{baseInstanceData:t}=B,i=null!=t;n(!(i&&x),"Instanced indexed rendering is not supported");const r=i?f:x?m:g,H=i?c:u;for(const n of B.dataByOrigin.values()){this._drawParameters.origin=n.origin;for(const i of n.buffers){if(a&&(!i.hasHighlights||!i.drawCommandsHighlights.has(o)))continue;if(l&&(!i.hasHighlights||!i.drawCommandsHighlights.has(h)))continue;this._drawParameters.textureBuffer=i.textureBuffer?.texture;const n=H(i),u=y(n,i.needsMultipleCommands,o,l,d,p),c=b(n,w);(u?.length||c?.length)&&(C.bindDraw(s,this.material.parameters,this._drawParameters),r(_,i,t,e,u,c,s)),this._drawParameters.textureBuffer=null}}}}updateHighlights(){const{_highlightNames:t}=this;t.clear();for(const e of this.dataByBaseInstance.values())for(const i of e.dataByOrigin.values())for(const e of i.buffers)for(const i of e.highlightNames)t.add(i);this._updateProduces()}get test(){}};t([s({constructOnly:!0})],d.prototype,"material",void 0),t([s({constructOnly:!0})],d.prototype,"dataByBaseInstance",void 0),d=t([r("esri.views.3d.webgl-engine.materials.renderers.VaoRenderer")],d);const u=t=>t,c=t=>t.instancedCommandVAOs,g=(t,{vao:e},i,s,r,a,n)=>{s.ensureAttributeLocations(e),t.bindVAO(e),p(t,s,r,n,!1),p(t,s,a,n,!0)},m=(t,{vao:e},i,s,r,a,o)=>{s.ensureAttributeLocations(e),t.bindVAO(e);const l=e.indexBuffer?.indexType;n(null!=l,"Missing index array"),w(t,s,r,o,!1,l),w(t,s,a,o,!0,l)},f=(t,e,{baseCommand:i},s,r,a,n)=>{_(t,s,i,r,n,!1),_(t,s,i,a,n,!0)};function p(t,e,i,s,r){if(i?.length){t.setPipelineState(e.getPipeline(s,r));for(const s of i)t.drawArrays(e.primitiveType,s.first,s.count)}}function w(t,e,i,s,r,a){if(!i?.length)return;const n=l(a);t.setPipelineState(e.getPipeline(s,r));for(const o of i)t.drawElements(e.primitiveType,o.count,a,o.first*n)}function _(t,e,{first:i,count:s},r,a,n){if(r?.length){t.setPipelineState(e.getPipeline(a,n));for(const{vao:a,instanceCount:n}of r)e.ensureAttributeLocations(a),t.bindVAO(a),t.drawArraysInstanced(e.primitiveType,i,s,n)}}function y(t,e,i,s,r,a){const n=r&&!s?t.drawCommandsHighlights.get(i)??null:null;return s?t.drawCommandsHighlights.get(h):r?n:a&&e?t.drawCommandsShadowHighlightRest:t.drawCommandsDefault}function b(t,e){return e&&t.drawCommandsOccludees||null}export{d as VaoRenderer};
2
+ import{__decorate as t}from"tslib";import e from"../../../../../core/Accessor.js";import"../../../../../core/has.js";import{disposeMaybe as i}from"../../../../../core/maybe.js";import{property as s,subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{GLMaterialLoader as a}from"../../lib/GLMaterialLoader.js";import{assert as n}from"../../lib/Util.js";import{DrawParameters as o}from"../DrawParameters.js";import{getStrideForDataType as l}from"./IndexLayout.js";import{defaultHighlightName as h}from"../../../../support/HighlightDefaults.js";let d=class extends e{constructor(t){super(t),this._glMaterialLoader=null,this._drawParameters=new o,this._highlightNames=new Set,this._produces=new Map}initialize(){this._updateProduces()}destroy(){this.uninitializeRenderContext()}get _hasHighlights(){return this._highlightNames.size>0}hasHighlight(t){return this._highlightNames.has(t)}get produces(){return this._produces}_updateProduces(){this.material.produces.forEach((t,e)=>{this._produces.set(e,e=>!(0===this.dataByBaseInstance.size||!(10!==e&&6!==e||this._hasHighlights))&&t(e))})}initializeRenderContext(t){this._glMaterialLoader=new a(this.material,t.materials)}uninitializeRenderContext(){this._glMaterialLoader=i(this._glMaterialLoader)}acquireTechniques(t){if(!this.material.shouldRender(t))return null;const{output:e,bind:i}=t,s=this.material.produces.get(i.slot);if(!s?.(e))return null;const{highlight:r,slot:a}=i,n=6===e,o=10===e,l=o||n,d=r?.name;if(l&&(0===this._highlightNames.size||o&&d&&!this._highlightNames.has(d)))return null;const u=t=>o&&!!d&&!t.has(d),c=7===e,g=!(l||c);for(const m of this.dataByBaseInstance.values())for(const s of m.dataByOrigin.values())for(const r of s.buffers){if(u(r.highlightNames))continue;const s=n?r.drawCommandsHighlights.get(h):l?d?r.drawCommandsHighlights.get(d):r.drawCommandsHighlights.size>0:((c&&r.needsMultipleCommands?r.drawCommandsShadowHighlightRest:r.drawCommandsDefault)||null)?.length??!1,o=g&&r.drawCommandsOccludees||null;if(s||o?.length){const s=this._glMaterialLoader.load(t.rctx,a,e),r=s?.beginSlot(i);if(r)return r}}return null}render(t,e){const{output:i,bind:s}=t,{highlight:r}=s,a=10===i,o=r?.name??"";if(a&&!r)return;const l=6===i,d=a||l,p=7===i,w=!(d||p),{rctx:_}=t,C=_.bindTechnique(e,s,this.material.parameters),x=this.material.useIndexing;for(const B of this.dataByBaseInstance.values()){const{baseInstanceData:t}=B,i=null!=t;n(!(i&&x),"Instanced indexed rendering is not supported");const r=i?f:x?m:g,H=i?c:u;for(const n of B.dataByOrigin.values()){this._drawParameters.origin=n.origin;for(const i of n.buffers){if(a&&(!i.hasHighlights||!i.drawCommandsHighlights.has(o)))continue;if(l&&(!i.hasHighlights||!i.drawCommandsHighlights.has(h)))continue;this._drawParameters.textureBuffer=i.textureBuffer?.texture;const n=H(i),u=y(n,i.needsMultipleCommands,o,l,d,p),c=b(n,w);(u?.length||c?.length)&&(C.bindDraw(s,this.material.parameters,this._drawParameters),r(_,i,t,e,u,c,s)),this._drawParameters.textureBuffer=null}}}}updateHighlights(){const{_highlightNames:t}=this;t.clear();for(const e of this.dataByBaseInstance.values())for(const i of e.dataByOrigin.values())for(const e of i.buffers)for(const i of e.highlightNames)t.add(i);this._updateProduces()}get test(){}};t([s({constructOnly:!0})],d.prototype,"material",void 0),t([s({constructOnly:!0})],d.prototype,"dataByBaseInstance",void 0),d=t([r("esri.views.3d.webgl-engine.materials.renderers.VaoRenderer")],d);const u=t=>t,c=t=>t.instancedCommandVAOs,g=(t,{vao:e},i,s,r,a,n)=>{s.ensureAttributeLocations(e),t.bindVAO(e),p(t,s,r,n,!1),p(t,s,a,n,!0)},m=(t,{vao:e},i,s,r,a,o)=>{s.ensureAttributeLocations(e),t.bindVAO(e);const l=e.indexBuffer?.indexType;n(null!=l,"Missing index array"),w(t,s,r,o,!1,l),w(t,s,a,o,!0,l)},f=(t,e,{baseCommand:i},s,r,a,n)=>{_(t,s,i,r,n,!1),_(t,s,i,a,n,!0)};function p(t,e,i,s,r){if(i?.length){t.setPipelineState(e.getPipeline(s,r));for(const s of i)t.drawArrays(e.primitiveType,s.first,s.count)}}function w(t,e,i,s,r,a){if(!i?.length)return;const n=l(a);t.setPipelineState(e.getPipeline(s,r));for(const o of i)t.drawElements(e.primitiveType,o.count,a,o.first*n)}function _(t,e,{first:i,count:s},r,a,n){if(r?.length){t.setPipelineState(e.getPipeline(a,n));for(const{vao:a,instanceCount:n}of r)e.ensureAttributeLocations(a),t.bindVAO(a),t.drawArraysInstanced(e.primitiveType,i,s,n)}}function y(t,e,i,s,r,a){const n=r&&!s?t.drawCommandsHighlights.get(i)??null:null;return s?t.drawCommandsHighlights.get(h):r?n:a&&e?t.drawCommandsShadowHighlightRest:t.drawCommandsDefault}function b(t,e){return e&&t.drawCommandsOccludees||null}export{d as VaoRenderer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{isOITColor as o}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as t}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{depthWrite as i,depthTest as n,blending as a}from"../lib/OrderIndependentTransparency.js";import{PositionUvGLLayout as c}from"../materials/DefaultLayouts.js";import{C as l}from"../../../../chunks/CheckerBoard.glsl.js";import{makePipelineState as p,defaultColorWrite as d}from"../../../webgl/renderState.js";let m=class extends s{constructor(e,r){super(e,r,c),this.shader=new t(l,()=>import("./CheckerBoard.glsl.js"))}initializePipeline(e){const{output:r,transparent:t,polygonOffset:s}=e,c=!o(r);return p({blending:t?a(r):null,depthTest:n(r),depthWrite:i(e),colorWrite:d,polygonOffset:c?s?h:null:{factor:-1,units:-25}})}};m=e([r("esri.views.3d.webgl-engine.shaders.CheckerBoardTechnique")],m);const h={factor:0,units:-25};export{m as CheckerBoardTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as t}from"../core/shaderTechnique/ShaderTechnique.js";import{depthWrite as s,depthTest as i,blending as a}from"../lib/OrderIndependentTransparency.js";import{PositionUvGLLayout as n}from"../materials/DefaultLayouts.js";import{polygonOffset as l}from"../materials/PolygonOffset.js";import{C as p}from"../../../../chunks/CheckerBoard.glsl.js";import{makePipelineState as m,defaultColorWrite as c}from"../../../webgl/renderState.js";let d=class extends t{constructor(e,r){super(e,r,n),this.shader=new o(p,()=>import("./CheckerBoard.glsl.js"))}initializePipeline(e){const{output:r,transparent:o}=e;return m({blending:o?a(r):null,depthTest:i(r),depthWrite:s(e),colorWrite:c,polygonOffset:l(e)})}};d=e([r("esri.views.3d.webgl-engine.shaders.CheckerBoardTechnique")],d);export{d as CheckerBoardTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as t}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as o}from"../../support/buffer/glUtil.js";import{newLayout as i}from"../../support/buffer/InterleavedLayout.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as l}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as n}from"../effects/geometry/olidUtils.js";import{oitPolygonOffset as a,depthWrite as c,depthTest as p,blending as u}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as m,stencilBaseAllZerosParams as d,stencilWriteMaskOn as f}from"../lib/StencilUtils.js";import{VisualVariablePassParameters as h}from"../materials/VisualVariablePassParameters.js";import{C as g}from"../../../../chunks/ColorMaterial.glsl.js";import{makePipelineState as j,defaultColorWrite as b,cullingParams as P}from"../../../webgl/renderState.js";class C extends h{constructor(){super(...arguments),this.color=t}}let S=class extends l{constructor(e,r){super(e,r,o(T(r))),this.shader=new s(g,()=>import("./ColorMaterial.glsl.js")),this.ignoreUnused=!0}_createPipeline(e,r){const{output:t,transparent:o,cullFace:i,draped:s,hasOccludees:l}=e;return j({blending:o?u(t):null,culling:P(i),depthTest:s?null:p(t),depthWrite:c(e),colorWrite:b,stencilWrite:l?f:null,stencilTest:l?r?m:d:null,polygonOffset:a(e)})}initializePipeline(e){return this._occludeePipelineState=this._createPipeline(e,!0),this._createPipeline(e,!1)}getPipeline(e,r){return r?this._occludeePipelineState:super.getPipeline(e)}};function T(e){const r=i().vec3f("position");return n()&&r.vec4u8("olidColor"),e.hasVVColor?r.f32("colorFeatureAttribute"):e.hasVertexColors&&r.vec4u8("color",{glNormalized:!0}),r.freeze()}S=e([r("esri.views.3d.webgl-engine.shaders.ColorMaterialTechnique")],S);export{C as ColorMaterialPassParameters,S as ColorMaterialTechnique,T as getLayout};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as t}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as o}from"../../support/buffer/glUtil.js";import{newLayout as i}from"../../support/buffer/InterleavedLayout.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as l}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as n}from"../effects/geometry/olidUtils.js";import{depthWrite as a,depthTest as c,blending as p}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as u,stencilBaseAllZerosParams as m,stencilWriteMaskOn as f}from"../lib/StencilUtils.js";import{polygonOffset as d}from"../materials/PolygonOffset.js";import{VisualVariablePassParameters as h}from"../materials/VisualVariablePassParameters.js";import{C as g}from"../../../../chunks/ColorMaterial.glsl.js";import{makePipelineState as j,defaultColorWrite as b,cullingParams as P}from"../../../webgl/renderState.js";class C extends h{constructor(){super(...arguments),this.color=t}}let S=class extends l{constructor(e,r){super(e,r,o(T(r))),this.shader=new s(g,()=>import("./ColorMaterial.glsl.js")),this.ignoreUnused=!0}_createPipeline(e,r){const{output:t,transparent:o,cullFace:i,draped:s,hasOccludees:l}=e;return j({blending:o?p(t):null,culling:P(i),depthTest:s?null:c(t),depthWrite:a(e),colorWrite:b,stencilWrite:l?f:null,stencilTest:l?r?u:m:null,polygonOffset:d(e)})}initializePipeline(e){return this._occludeePipelineState=this._createPipeline(e,!0),this._createPipeline(e,!1)}getPipeline(e,r){return r?this._occludeePipelineState:super.getPipeline(e)}};function T(e){const r=i().vec3f("position");return n()&&r.vec4u8("olidColor"),e.hasVVColor?r.f32("colorFeatureAttribute"):e.hasVertexColors&&r.vec4u8("color",{glNormalized:!0}),r.freeze()}S=e([r("esri.views.3d.webgl-engine.shaders.ColorMaterialTechnique")],S);export{C as ColorMaterialPassParameters,S as ColorMaterialTechnique,T as getLayout};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as i,freeze as s,create as r}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as l}from"../../support/buffer/glUtil.js";import{newLayout as n}from"../../support/buffer/InterleavedLayout.js";import{VertexNormalPassParameters as a,VertexNormalDrawParameters as c}from"../core/shaderLibrary/attributes/VertexNormal.glsl.js";import{ReloadableShader as h}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as u}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as p}from"../effects/geometry/olidUtils.js";import{oitPolygonOffset as m,depthWrite as d,depthTest as f,blending as v}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as g,stencilBaseAllZerosParams as b,stencilWriteMaskOn as S}from"../lib/StencilUtils.js";import{getRenderInstanceDataLayout as y}from"../lib/lodRendering/RenderInstanceData.js";import{advancedMRRFactors as j}from"../materials/pbrUtils.js";import{D as T}from"../../../../chunks/DefaultMaterial.glsl.js";import{makePipelineState as x,cullingParams as C,defaultColorWrite as P}from"../../../webgl/renderState.js";import{alphaCutoff as O}from"../../../../webscene/support/AlphaCutoff.js";class D extends a{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=j,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=2,this.instanced=!1,this.instancedFeatureAttribute=!1,this.instancedColor=!1,this.instanceColorEncodesAlphaIgnore=!1,this.emissiveStrengthFromSymbol=0,this.emissiveStrengthKHR=1,this.emissiveSource=1,this.emissiveBaseColor=i,this.instancedDoublePrecision=!1,this.normalType=0,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=s(.2,.2,.2),this.diffuse=s(.8,.8,.8),this.externalColor=o(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=r(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.modelTransformation=null,this.drivenOpacity=!1,this.writeDepth=!0,this.customDepthTest=0,this.textureAlphaMode=0,this.textureAlphaCutoff=O,this.textureAlphaPremultiplied=!1,this.renderOccluded=1,this.testsTransparentRenderOrder=0,this.isDecoration=!1}get hasVVSize(){return!!this.vvSize}get hasVVColor(){return!!this.vvColor}get hasVVOpacity(){return!!this.vvOpacity}}class V extends c{constructor(){super(...arguments),this.origin=r(),this.slicePlaneLocalOrigin=this.origin}}let w=class extends u{constructor(e,t){let i=l(z(t));t.instanced&&t.instancedDoublePrecision&&(i=i.concat(l(y(t)))),super(e,t,i),this.shader=new h(T,()=>import("./DefaultMaterial.glsl.js")),this.ignoreUnused=!0}_makePipeline(e,t){const{output:i,transparent:s,cullFace:r,customDepthTest:o,hasOccludees:l}=e;return x({blending:s?v(i):null,culling:M(e)?C(r):null,depthTest:f(i,A(o)),depthWrite:d(e),colorWrite:P,stencilWrite:l?S:null,stencilTest:l?t?g:b:null,polygonOffset:m(e)})}initializePipeline(e){return this._occludeePipelineState=this._makePipeline(e,!0),this._makePipeline(e,!1)}getPipeline(e,t){return t?this._occludeePipelineState:super.getPipeline(e)}};function A(e){switch(e){case 1:return 515;case 0:case 3:return 513;case 2:return 516}}function M(e){return 0!==e.cullFace||!e.hasSlicePlane&&(!e.transparent&&!e.doubleSidedMode)}function z(e){const t=n().vec3f("position");return 1===e.normalType?t.vec2i16("normalCompressed",{glNormalized:!0}):t.vec3f("normal"),e.hasVertexTangents&&t.vec4f("tangent"),e.hasTextures&&t.vec2f16("uv0"),e.hasVertexColors&&t.vec4u8("color",{glNormalized:!0}),e.hasSymbolColors&&t.vec4u8("symbolColor"),!e.instanced&&p()&&t.vec4u8("olidColor"),t}w=e([t("esri.views.3d.webgl-engine.shaders.DefaultMaterialTechnique")],w);export{V as DefaultMaterialDrawParameters,D as DefaultMaterialPassParameters,w as DefaultMaterialTechnique,z as getLayout};
2
+ import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as i,freeze as s,create as r}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as l}from"../../support/buffer/glUtil.js";import{newLayout as n}from"../../support/buffer/InterleavedLayout.js";import{VertexNormalPassParameters as a,VertexNormalDrawParameters as c}from"../core/shaderLibrary/attributes/VertexNormal.glsl.js";import{ReloadableShader as h}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as u}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as m}from"../effects/geometry/olidUtils.js";import{depthWrite as p,depthTest as d,blending as f}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as g,stencilBaseAllZerosParams as v,stencilWriteMaskOn as b}from"../lib/StencilUtils.js";import{getRenderInstanceDataLayout as S}from"../lib/lodRendering/RenderInstanceData.js";import{advancedMRRFactors as y}from"../materials/pbrUtils.js";import{polygonOffset as j}from"../materials/PolygonOffset.js";import{D as T}from"../../../../chunks/DefaultMaterial.glsl.js";import{makePipelineState as x,cullingParams as C,defaultColorWrite as P}from"../../../webgl/renderState.js";import{alphaCutoff as O}from"../../../../webscene/support/AlphaCutoff.js";class D extends a{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=y,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=2,this.instanced=!1,this.instancedFeatureAttribute=!1,this.instancedColor=!1,this.instanceColorEncodesAlphaIgnore=!1,this.emissiveStrengthFromSymbol=0,this.emissiveStrengthKHR=1,this.emissiveSource=1,this.emissiveBaseColor=i,this.instancedDoublePrecision=!1,this.normalType=0,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=s(.2,.2,.2),this.diffuse=s(.8,.8,.8),this.externalColor=o(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=r(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.modelTransformation=null,this.drivenOpacity=!1,this.writeDepth=!0,this.customDepthTest=0,this.textureAlphaMode=0,this.textureAlphaCutoff=O,this.textureAlphaPremultiplied=!1,this.renderOccluded=1,this.testsTransparentRenderOrder=0,this.isDecoration=!1}get hasVVSize(){return!!this.vvSize}get hasVVColor(){return!!this.vvColor}get hasVVOpacity(){return!!this.vvOpacity}}class V extends c{constructor(){super(...arguments),this.origin=r(),this.slicePlaneLocalOrigin=this.origin}}let w=class extends u{constructor(e,t){let i=l(z(t));t.instanced&&t.instancedDoublePrecision&&(i=i.concat(l(S(t)))),super(e,t,i),this.shader=new h(T,()=>import("./DefaultMaterial.glsl.js")),this.ignoreUnused=!0}_makePipeline(e,t){const{output:i,transparent:s,cullFace:r,customDepthTest:o,hasOccludees:l}=e;return x({blending:s?f(i):null,culling:M(e)?C(r):null,depthTest:d(i,A(o)),depthWrite:p(e),colorWrite:P,stencilWrite:l?b:null,stencilTest:l?t?g:v:null,polygonOffset:j(e)})}initializePipeline(e){return this._occludeePipelineState=this._makePipeline(e,!0),this._makePipeline(e,!1)}getPipeline(e,t){return t?this._occludeePipelineState:super.getPipeline(e)}};function A(e){switch(e){case 1:return 515;case 0:case 3:return 513;case 2:return 516}}function M(e){return 0!==e.cullFace||!e.hasSlicePlane&&(!e.transparent&&!e.doubleSidedMode)}function z(e){const t=n().vec3f("position");return 1===e.normalType?t.vec2i16("normalCompressed",{glNormalized:!0}):t.vec3f("normal"),e.hasVertexTangents&&t.vec4f("tangent"),e.hasTextures&&t.vec2f16("uv0"),e.hasVertexColors&&t.vec4u8("color",{glNormalized:!0}),e.hasSymbolColors&&t.vec4u8("symbolColor"),!e.instanced&&m()&&t.vec4u8("olidColor"),t}w=e([t("esri.views.3d.webgl-engine.shaders.DefaultMaterialTechnique")],w);export{V as DefaultMaterialDrawParameters,D as DefaultMaterialPassParameters,w as DefaultMaterialTechnique,z as getLayout};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as i}from"../../support/buffer/glUtil.js";import{ReloadableShader as r}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{oitPolygonOffset as l,depthWrite as o,depthTest as n,blending as p}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as a,stencilBaseAllZerosParams as c,stencilWriteMaskOn as u}from"../lib/StencilUtils.js";import{PositionUvLayout as m}from"../materials/DefaultLayouts.js";import{I as d}from"../../../../chunks/ImageMaterial.glsl.js";import{makePipelineState as h,defaultColorWrite as g,cullingParams as f}from"../../../webgl/renderState.js";let j=class extends s{constructor(e,t){super(e,t,i(b(t))),this.shader=new r(d,()=>import("./ImageMaterial.glsl.js")),this.ignoreUnused=!0}_getPipelineState(e,t){const{output:i,hasOccludees:r,cullFace:s}=e;return h({blending:p(i,!0),culling:f(s),depthTest:n(i),depthWrite:o(e),colorWrite:g,stencilWrite:r?u:null,stencilTest:r?t?a:c:null,polygonOffset:l(e)})}initializePipeline(e){return this._occludeePipeline=this._getPipelineState(e,!0),this._getPipelineState(e,!1)}getPipeline(e,t){return t?this._occludeePipeline:super.getPipeline(e)}};function b(e){let t=m;return e.perspectiveInterpolation&&(t=t.clone().f32("perspectiveDivide")),t}j=e([t("esri.views.3d.webgl-engine.shaders.ImageMaterialTechnique")],j);export{j as ImageMaterialTechnique,b as getLayout};
2
+ import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as r}from"../../support/buffer/glUtil.js";import{ReloadableShader as i}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{depthWrite as l,depthTest as o,blending as n}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as p,stencilBaseAllZerosParams as a,stencilWriteMaskOn as c}from"../lib/StencilUtils.js";import{PositionUvLayout as m}from"../materials/DefaultLayouts.js";import{polygonOffset as u}from"../materials/PolygonOffset.js";import{I as d}from"../../../../chunks/ImageMaterial.glsl.js";import{makePipelineState as f,defaultColorWrite as h,cullingParams as g}from"../../../webgl/renderState.js";let j=class extends s{constructor(e,t){super(e,t,r(P(t))),this.shader=new i(d,()=>import("./ImageMaterial.glsl.js")),this.ignoreUnused=!0}_getPipelineState(e,t){const{output:r,hasOccludees:i,cullFace:s}=e;return f({blending:n(r,!0),culling:g(s),depthTest:o(r),depthWrite:l(e),colorWrite:h,stencilWrite:i?c:null,stencilTest:i?t?p:a:null,polygonOffset:u(e)})}initializePipeline(e){return this._occludeePipeline=this._getPipelineState(e,!0),this._getPipelineState(e,!1)}getPipeline(e,t){return t?this._occludeePipeline:super.getPipeline(e)}};function P(e){let t=m;return e.perspectiveInterpolation&&(t=t.clone().f32("perspectiveDivide")),t}j=e([t("esri.views.3d.webgl-engine.shaders.ImageMaterialTechnique")],j);export{j as ImageMaterialTechnique,P as getLayout};
@@ -5,7 +5,7 @@ import{isColor as o,isOITColor as l,isOITFrontFace as r}from"../core/shaderLibra
5
5
  ${t(h,"if (finalColor.a < alphaCutoff) { discard; }")}
6
6
  ${t(j||C,"float noise = ditherNoise();")}
7
7
 
8
- ${t(j,`${t(v,"fragColor = finalColor;","fragColor = premultiplyAlpha(finalColor);")}\n fragColor = vec4(fragColor.rgb * floatBlendOutputScale + noise, fragColor.a);\n fragAlpha = finalColor.a * floatBlendOutputScale + noise;`)}
8
+ ${t(j,`fragColor = ${t(v,"finalColor","premultiplyAlpha(finalColor)")};\n fragColor = vec4(fragColor.rgb * floatBlendOutputScale + noise, fragColor.a);\n fragAlpha = finalColor.a * floatBlendOutputScale + noise;`)}
9
9
  ${t(y&&v&&h,"finalColor.rgb /= finalColor.a;")}
10
10
  ${t(E,"fragColor = finalColor;")}
11
11
  ${t(C,`fragEmission = ${t(b,"mix(finalColor.a * getEmissions(emissiveSymbolColor), vec4(0.0), snow);","finalColor.a * getEmissions(emissiveSymbolColor);")}\n fragEmission = vec4(fragEmission.rgb * floatBlendOutputScale + noise, fragEmission.a);`)}
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as r}from"../../support/buffer/glUtil.js";import{ReloadableShader as i}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{oitPolygonOffset as n,depthWrite as l,depthTest as o,blending as p}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as a,stencilBaseAllZerosParams as c,stencilWriteMaskOn as u}from"../lib/StencilUtils.js";import{P as d}from"../../../../chunks/Pattern.glsl.js";import{getLayout as m}from"./PatternLayouts.js";import{makePipelineState as h,defaultColorWrite as f,cullingParams as P}from"../../../webgl/renderState.js";let g=class extends s{constructor(e,t){super(e,t,r(m(t))),this.shader=new i(d,()=>import("./Pattern.glsl.js")),this.ignoreUnused=!0}_setPipelineState(e,t){const{output:r,cullFace:i,draped:s,hasOccludees:d}=e;return h({blending:p(r),culling:P(i),depthTest:s?null:o(r),depthWrite:l(e),colorWrite:f,stencilWrite:d?u:null,stencilTest:d?t?a:c:null,polygonOffset:n(e)})}initializePipeline(e){return this._occludeePipelineState=this._setPipelineState(e,!0),this._setPipelineState(e,!1)}getPipeline(e,t){return t?this._occludeePipelineState:super.getPipeline(e)}};g=e([t("esri.views.3d.webgl-engine.shaders.PatternTechnique")],g);export{g as PatternTechnique};
2
+ import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as r}from"../../support/buffer/glUtil.js";import{ReloadableShader as i}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{depthWrite as o,depthTest as l,blending as n}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as p,stencilBaseAllZerosParams as a,stencilWriteMaskOn as c}from"../lib/StencilUtils.js";import{polygonOffset as u}from"../materials/PolygonOffset.js";import{P as m}from"../../../../chunks/Pattern.glsl.js";import{getLayout as d}from"./PatternLayouts.js";import{makePipelineState as h,defaultColorWrite as f,cullingParams as P}from"../../../webgl/renderState.js";let g=class extends s{constructor(e,t){super(e,t,r(d(t))),this.shader=new i(m,()=>import("./Pattern.glsl.js")),this.ignoreUnused=!0}_setPipelineState(e,t){const{output:r,cullFace:i,draped:s,hasOccludees:m}=e;return h({blending:n(r),culling:P(i),depthTest:s?null:l(r),depthWrite:o(e),colorWrite:f,stencilWrite:m?c:null,stencilTest:m?t?p:a:null,polygonOffset:u(e)})}initializePipeline(e){return this._occludeePipelineState=this._setPipelineState(e,!0),this._setPipelineState(e,!1)}getPipeline(e,t){return t?this._occludeePipelineState:super.getPipeline(e)}};g=e([t("esri.views.3d.webgl-engine.shaders.PatternTechnique")],g);export{g as PatternTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as i}from"../../support/buffer/glUtil.js";import{newLayout as r}from"../../support/buffer/InterleavedLayout.js";import{ReloadableShader as l}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as n}from"../effects/geometry/olidUtils.js";import{oitPolygonOffset as o,depthWrite as c,depthTest as u,blending as p}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as a,stencilBaseAllZerosParams as d,stencilWriteMaskOn as f,stencilToolTransparentOccluderParams as h,depthCompareAlways as m,stencilToolMaskOccluderParams as b,stencilWriteMaskOff as g,depthCompareLess as P}from"../lib/StencilUtils.js";import{R as T}from"../../../../chunks/RibbonLine.glsl.js";import{PrimitiveType as W}from"../../../webgl/enums.js";import{makePipelineState as j,defaultColorWrite as v,unpremultipliedAlphaToPremultipliedAlpha as S}from"../../../webgl/renderState.js";let _=class extends s{constructor(e,t){super(e,t,i(y(t))),this.shader=new l(T,()=>import("./RibbonLine.glsl.js")),this.ignoreUnused=!0,this.primitiveType=t.wireframe?W.LINES:W.TRIANGLE_STRIP}_makePipelineState(e,t){const{output:i,hasOccludees:r}=e;return j({blending:p(i),depthTest:u(i),depthWrite:c(e),colorWrite:v,stencilWrite:r?f:null,stencilTest:r?t?a:d:null,polygonOffset:o(e)})}initializePipeline(e){if(e.occluder){const{hasOccludees:t}=e;this._occluderPipelineTransparent=j({blending:S,polygonOffset:o(e),depthTest:m,depthWrite:null,colorWrite:v,stencilWrite:null,stencilTest:t?h:null}),this._occluderPipelineOpaque=j({blending:S,polygonOffset:o(e),depthTest:t?m:P,depthWrite:null,colorWrite:v,stencilWrite:t?g:null,stencilTest:t?b:null}),this._occluderPipelineMaskWrite=j({blending:null,polygonOffset:o(e),depthTest:P,depthWrite:null,colorWrite:null,stencilWrite:t?f:null,stencilTest:t?a:null})}return this._occludeePipeline=this._makePipelineState(e,!0),this._makePipelineState(e,!1)}getPipeline(e,t){if(t)return this._occludeePipeline;switch(e.occluder){case 12:return this._occluderPipelineTransparent??super.getPipeline(e);case 11:return this._occluderPipelineOpaque??super.getPipeline(e);default:e.occluder;case void 0:case null:return this._occluderPipelineMaskWrite??super.getPipeline(e)}}};function y(e){const t=r().vec3f("position").vec4f16("previousDelta").vec4f16("nextDelta").f32("u0").vec2f16("lineParameters");return e.hasVVColor?t.f32("colorFeatureAttribute"):t.vec4u8("color",{glNormalized:!0}),e.hasVVSize?t.f32("sizeFeatureAttribute"):t.f32("size"),e.hasVVOpacity&&t.f32("opacityFeatureAttribute"),n()&&t.vec4u8("olidColor"),e.hasAnimation&&t.vec4f16("timeStamps"),t}_=e([t("esri.views.3d.webgl-engine.shaders.RibbonLineTechnique")],_);export{_ as RibbonLineTechnique,y as getLayout};
2
+ import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as i}from"../../support/buffer/glUtil.js";import{newLayout as r}from"../../support/buffer/InterleavedLayout.js";import{ReloadableShader as l}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as n}from"../effects/geometry/olidUtils.js";import{depthWrite as o,depthTest as c,blending as u}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as p,stencilBaseAllZerosParams as a,stencilWriteMaskOn as d,stencilToolTransparentOccluderParams as f,depthCompareAlways as m,stencilToolMaskOccluderParams as h,stencilWriteMaskOff as g,depthCompareLess as b}from"../lib/StencilUtils.js";import{polygonOffset as P}from"../materials/PolygonOffset.js";import{R as T}from"../../../../chunks/RibbonLine.glsl.js";import{PrimitiveType as W}from"../../../webgl/enums.js";import{makePipelineState as j,defaultColorWrite as v,unpremultipliedAlphaToPremultipliedAlpha as S}from"../../../webgl/renderState.js";let _=class extends s{constructor(e,t){super(e,t,i(y(t))),this.shader=new l(T,()=>import("./RibbonLine.glsl.js")),this.ignoreUnused=!0,this.primitiveType=t.wireframe?W.LINES:W.TRIANGLE_STRIP}_makePipelineState(e,t){const{output:i,hasOccludees:r}=e;return j({blending:u(i),depthTest:c(i),depthWrite:o(e),colorWrite:v,stencilWrite:r?d:null,stencilTest:r?t?p:a:null,polygonOffset:P(e)})}initializePipeline(e){if(e.occluder){const{hasOccludees:t}=e;this._occluderPipelineTransparent=j({blending:S,polygonOffset:P(e),depthTest:m,depthWrite:null,colorWrite:v,stencilWrite:null,stencilTest:t?f:null}),this._occluderPipelineOpaque=j({blending:S,polygonOffset:P(e),depthTest:t?m:b,depthWrite:null,colorWrite:v,stencilWrite:t?g:null,stencilTest:t?h:null}),this._occluderPipelineMaskWrite=j({blending:null,polygonOffset:P(e),depthTest:b,depthWrite:null,colorWrite:null,stencilWrite:t?d:null,stencilTest:t?p:null})}return this._occludeePipeline=this._makePipelineState(e,!0),this._makePipelineState(e,!1)}getPipeline(e,t){if(t)return this._occludeePipeline;switch(e.occluder){case 12:return this._occluderPipelineTransparent??super.getPipeline(e);case 11:return this._occluderPipelineOpaque??super.getPipeline(e);default:e.occluder;case void 0:case null:return this._occluderPipelineMaskWrite??super.getPipeline(e)}}};function y(e){const t=r().vec3f("position").vec4f16("previousDelta").vec4f16("nextDelta").f32("u0").vec2f16("lineParameters");return e.hasVVColor?t.f32("colorFeatureAttribute"):t.vec4u8("color",{glNormalized:!0}),e.hasVVSize?t.f32("sizeFeatureAttribute"):t.f32("size"),e.hasVVOpacity&&t.f32("opacityFeatureAttribute"),n()&&t.vec4u8("olidColor"),e.hasAnimation&&t.vec4f16("timeStamps"),t}_=e([t("esri.views.3d.webgl-engine.shaders.RibbonLineTechnique")],_);export{_ as RibbonLineTechnique,y as getLayout};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{glLayout as o}from"../../support/buffer/glUtil.js";import{newLayout as t}from"../../support/buffer/InterleavedLayout.js";import{isOITFrontFace as s}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as i}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as n}from"../core/shaderTechnique/ShaderTechnique.js";import{oitPolygonOffset as a,depthWrite as l,blending as d}from"../lib/OrderIndependentTransparency.js";import{S as p}from"../../../../chunks/ShadedColorMaterial.glsl.js";import{makePipelineState as c,defaultColorWrite as u,cullingParams as f}from"../../../webgl/renderState.js";let m=class extends n{constructor(e,r){super(e,r,o(h(r))),this.shader=new i(p,()=>import("./ShadedColorMaterial.glsl.js"))}initializePipeline(e){const{output:r,transparent:o,cullFace:t,shadingEnabled:i}=e,n=s(r);return c({blending:o?d(r):null,culling:f(t),depthTest:{func:n?513:i?515:513},depthWrite:l(e),colorWrite:u,polygonOffset:a(e)})}};function h(e){const r=t().vec3f("position").vec3f("normal");return e.screenSizeEnabled&&r.vec3f("offset"),r}m=e([r("esri.views.3d.webgl-engine.shaders.ShadedColorMaterialTechnique")],m);export{m as ShadedColorMaterialTechnique,h as getLayout};
2
+ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{glLayout as o}from"../../support/buffer/glUtil.js";import{newLayout as t}from"../../support/buffer/InterleavedLayout.js";import{isOITFrontFace as s}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as i}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as n}from"../core/shaderTechnique/ShaderTechnique.js";import{depthWrite as a,blending as l}from"../lib/OrderIndependentTransparency.js";import{polygonOffset as p}from"../materials/PolygonOffset.js";import{S as d}from"../../../../chunks/ShadedColorMaterial.glsl.js";import{makePipelineState as c,defaultColorWrite as f,cullingParams as m}from"../../../webgl/renderState.js";let u=class extends n{constructor(e,r){super(e,r,o(h(r))),this.shader=new i(d,()=>import("./ShadedColorMaterial.glsl.js"))}initializePipeline(e){const{output:r,transparent:o,cullFace:t,shadingEnabled:i}=e,n=s(r);return c({blending:o?l(r):null,culling:m(t),depthTest:{func:n?513:i?515:513},depthWrite:a(e),colorWrite:f,polygonOffset:p(e)})}};function h(e){const r=t().vec3f("position").vec3f("normal");return e.screenSizeEnabled&&r.vec3f("offset"),r}u=e([r("esri.views.3d.webgl-engine.shaders.ShadedColorMaterialTechnique")],u);export{u as ShadedColorMaterialTechnique,h as getLayout};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import"../../../../core/libs/gl-matrix-2/math/mat4.js";import"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import"../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../core/shaderLibrary/output/ReadDepth.glsl.js";import"../core/shaderLibrary/shading/PiUtils.glsl.js";import"../core/shaderLibrary/util/LocalFromScreenSpace.glsl.js";import"../core/shaderModules/Float2PassUniform.js";import"../core/shaderModules/Float3PassUniform.js";import"../core/shaderModules/FloatPassUniform.js";import"../core/shaderModules/FloatsPassUniform.js";import"../core/shaderModules/glsl.js";import"../core/shaderModules/IntegerPassUniform.js";import"../core/shaderModules/Matrix4BindUniform.js";import"../core/shaderModules/Matrix4sPassUniform.js";import"../core/shaderModules/Texture2DPassUniform.js";import"../../../webgl/ShaderBuilder.js";export{V as ViewshedPassParameters,b as build}from"../../../../chunks/Viewshed.glsl.js";
2
+ import"../../../../core/libs/gl-matrix-2/math/mat4.js";import"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import"../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../core/shaderLibrary/output/ReadDepth.glsl.js";import"../core/shaderLibrary/shading/PiUtils.glsl.js";import"../core/shaderLibrary/util/LocalFromScreenSpace.glsl.js";import"../core/shaderModules/Float2PassUniform.js";import"../core/shaderModules/Float3PassUniform.js";import"../core/shaderModules/FloatPassUniform.js";import"../core/shaderModules/FloatsPassUniform.js";import"../core/shaderModules/glsl.js";import"../core/shaderModules/IntegerPassUniform.js";import"../core/shaderModules/Matrix4BindUniform.js";import"../core/shaderModules/Matrix4sPassUniform.js";import"../core/shaderModules/Texture2DBindUniform.js";import"../core/shaderModules/Texture2DPassUniform.js";import"../../../webgl/ShaderBuilder.js";export{V as ViewshedPassParameters,b as build}from"../../../../chunks/Viewshed.glsl.js";
package/views/3d/webgl.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import o from"../../Camera.js";import{rad2deg as e,deg2rad as r}from"../../core/mathUtils.js";import{create as t}from"../../core/libs/gl-matrix-2/factories/mat4f64.js";import{scale as i,add as n}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as c}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import l from"../../geometry/Point.js";import a from"../../geometry/SpatialReference.js";import{computeTranslationToOriginAndRotation as s}from"../../geometry/projection/computeTranslationToOriginAndRotation.js";import{projectBuffer as m}from"../../geometry/projection/projectBuffer.js";import{projectPointToVector as p}from"../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as f}from"../../geometry/projection/projectVectorToVector.js";import{cameraOnContentAlongViewDirection as u}from"./camera/intersectionUtils.js";import{directionToHeadingTilt as R,viewModeDependentUtil as A}from"./support/viewingModeUtils.js";const d={OPAQUE:"opaque-color",TRANSPARENT:"transparent-color",COMPOSITE:"composite-color",FINAL:"final-color"},T=[d.FINAL,d.COMPOSITE,d.OPAQUE,d.TRANSPARENT],N={ANTIALIASING:"aa-color",CUTFILL_COLOR:"cutfill-color",CUTFILL_COMPUTATION:"cutfill-computation",FOCUSAREA_COLOR:"focusarea-color",FOCUSAREA:"focusarea",PRE_TRANSPARENT:"pre-transparent-color",HIGHLIGHT_COLOR:"highlight-color",LASERLINES:"laserline-color",MAGNIFIER:"magnifier-color",OCCLUDED:"occluded-color",OPAQUE_ENVIRONMENT:"opaque-environment-color",AMBIENT_ILLUMINATION:"ambient-illumination",TRANSPARENT_ENVIRONMENT:"transparent-environment-color",VIEWSHED:"viewshed-color"},E=Array.from(Object.values(N)).concat(T);function O(o,e,r,t,i,n,c){return t=t||o.spatialReference,m(e,t,r,i,o.renderCoordsHelper.spatialReference,n,c)?i:null}function I(o,e,r,t,i,n,c){return n=n||o.spatialReference,m(e,o.renderCoordsHelper.spatialReference,r,t,n,i,c)?t:null}function j(o,e,r,i){return i||(i=t()),r=r||o.spatialReference,s(r,e,i,o.renderCoordsHelper.spatialReference)?i:null}function g(r,t,i){const n=r.renderSpatialReference,c=R(r,t.eye,t.viewForward,t.up,L);let s=r.spatialReference;return f(t.eye,n,C,s)||(s=a.WGS84,f(t.eye,n,C,s)),null==i?i=new o(new l(C,s),c.heading,c.tilt,e(t.fov)):(i.position.x=C[0],i.position.y=C[1],i.position.z=C[2],i.position.spatialReference=s,i.heading=c.heading,i.tilt=c.tilt,i.fov=e(t.fov)),i.layout.row=t.row,i.layout.rows=t.rows,i.layout.column=t.column,i.layout.columns=t.columns,i}function y(o,e){if(!e)return null;const t=o.renderSpatialReference,l=A(o).headingTiltToDirectionUp,a=c();if(!p(e.position,a,t))return null;const s=l(a,e.heading,e.tilt);i(s.direction,s.direction,o.state.camera.distance),n(s.direction,s.direction,a);const m=u(o,a,s.direction,s.up);return m.fov=r(e.fov),m.row=e.layout.row,m.rows=e.layout.rows,m.column=e.layout.column,m.columns=e.layout.columns,m}const C=c(),L={heading:0,tilt:0};export{E as AllInternalRenderNodeOutputs,T as AllRenderNodeOutputs,N as InternalRenderCategory,d as RenderNodeOutput,g as fromRenderCamera,I as fromRenderCoordinates,j as renderCoordinateTransformAt,y as toRenderCamera,O as toRenderCoordinates};
2
+ import o from"../../Camera.js";import{rad2deg as e,deg2rad as r}from"../../core/mathUtils.js";import{create as t}from"../../core/libs/gl-matrix-2/factories/mat4f64.js";import{scale as i,add as n}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as a}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import c from"../../geometry/Point.js";import l from"../../geometry/SpatialReference.js";import{computeTranslationToOriginAndRotation as s}from"../../geometry/projection/computeTranslationToOriginAndRotation.js";import{projectBuffer as m}from"../../geometry/projection/projectBuffer.js";import{projectPointToVector as p}from"../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as f}from"../../geometry/projection/projectVectorToVector.js";import{cameraOnContentAlongViewDirection as u}from"./camera/intersectionUtils.js";import{directionToHeadingTilt as R,viewModeDependentUtil as A}from"./support/viewingModeUtils.js";const d={OPAQUE:"opaque-color",TRANSPARENT:"transparent-color",COMPOSITE:"composite-color",FINAL:"final-color"},T=[d.FINAL,d.COMPOSITE,d.OPAQUE,d.TRANSPARENT],N={ANTIALIASING:"aa-color",CUTFILL_COLOR:"cutfill-color",CUTFILL_COMPUTATION:"cutfill-computation",FOCUSAREA_COLOR:"focusarea-color",FOCUSAREA:"focusarea",PRE_TRANSPARENT:"pre-transparent",HIGHLIGHT_COLOR:"highlight-color",LASERLINES:"laserlines",MAGNIFIER:"magnifier",OCCLUDED:"occluded",OPAQUE_ENVIRONMENT:"opaque-environment",AMBIENT_ILLUMINATION:"ambient-illumination",TRANSPARENT_ENVIRONMENT:"transparent-environment",VIEWSHED:"viewshed"},E=Array.from(Object.values(N)).concat(T);function O(o,e,r,t,i,n,a){return t=t||o.spatialReference,m(e,t,r,i,o.renderCoordsHelper.spatialReference,n,a)?i:null}function I(o,e,r,t,i,n,a){return n=n||o.spatialReference,m(e,o.renderCoordsHelper.spatialReference,r,t,n,i,a)?t:null}function j(o,e,r,i){return i||(i=t()),r=r||o.spatialReference,s(r,e,i,o.renderCoordsHelper.spatialReference)?i:null}function g(r,t,i){const n=r.renderSpatialReference,a=R(r,t.eye,t.viewForward,t.up,L);let s=r.spatialReference;return f(t.eye,n,C,s)||(s=l.WGS84,f(t.eye,n,C,s)),null==i?i=new o(new c(C,s),a.heading,a.tilt,e(t.fov)):(i.position.x=C[0],i.position.y=C[1],i.position.z=C[2],i.position.spatialReference=s,i.heading=a.heading,i.tilt=a.tilt,i.fov=e(t.fov)),i.layout.row=t.row,i.layout.rows=t.rows,i.layout.column=t.column,i.layout.columns=t.columns,i}function y(o,e){if(!e)return null;const t=o.renderSpatialReference,c=A(o).headingTiltToDirectionUp,l=a();if(!p(e.position,l,t))return null;const s=c(l,e.heading,e.tilt);i(s.direction,s.direction,o.state.camera.distance),n(s.direction,s.direction,l);const m=u(o,l,s.direction,s.up);return m.fov=r(e.fov),m.row=e.layout.row,m.rows=e.layout.rows,m.column=e.layout.column,m.columns=e.layout.columns,m}const C=a(),L={heading:0,tilt:0};export{E as AllInternalRenderNodeOutputs,T as AllRenderNodeOutputs,N as InternalRenderCategory,d as RenderNodeOutput,g as fromRenderCamera,I as fromRenderCoordinates,j as renderCoordinateTransformAt,y as toRenderCamera,O as toRenderCoordinates};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__addDisposableResource as e,__disposeResources as t,__decorate as i}from"tslib";import{disposable as a}from"../../core/handleUtils.js";import n from"../../core/Logger.js";import{getOrCreateMapValue as r}from"../../core/MapUtils.js";import{destroyMaybe as o}from"../../core/maybe.js";import{when as s,initial as d,on as l,sync as p,watch as c}from"../../core/reactiveUtils.js";import{screenPointEqual as u,createScreenPoint as h}from"../../core/screenUtils.js";import{diff as g}from"../../core/accessorSupport/diffUtils.js";import{property as m}from"../../core/accessorSupport/decorators/property.js";import{subclass as v}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as y}from"../../core/support/UpdatingHandles.js";import f from"../../geometry/Polygon.js";import{i as M,e as _}from"../../chunks/simplifyOperator.js";import{isExtent as w}from"../../geometry/support/jsonTypeUtils.js";import{isPolygon as b}from"../../geometry/support/typeUtils.js";import{isCurvedGeometry as C}from"../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as H}from"../../geometry/support/curves/densifyCurvedGeometry.js";import{getMaxDeviationInPixels as P,getMinSegmentsPerCurve as S}from"../2d/layers/graphics/densificationConstants.js";import{createSnappingVisualizer as x}from"./support/createSnappingVisualizer.js";import{multipointFromGeometry as k,markHandled as j,getPointerType as E}from"./support/drawToolUtils.js";import{PluginContext as T}from"./support/PluginContext.js";import{viewEventToCommand as G}from"./support/input/drawToolInput.js";import{EditSessionManager as O}from"./support/managers/EditSessionManager.js";import{GlobalStateManager as V}from"./support/managers/GlobalStateManager.js";import{InteractiveHandleManager as I}from"./support/managers/InteractiveHandleManager.js";import{MeasurementManager as A}from"./support/managers/MeasurementManager.js";import{PluginLifecycleManager as U}from"./support/managers/PluginLifecycleManager.js";import{SurfaceManager as R}from"./support/managers/SurfaceManager.js";import{TooltipManager as F}from"./support/managers/TooltipManager.js";import{ViewEventPriorities as D}from"../input/InputManager.js";import{createCoordinateHelper as L}from"../interactive/coordinateHelper.js";import{InteractiveToolBase as Z}from"../interactive/InteractiveToolBase.js";import{KeyBindings as q,mediaKeys as B,sketchKeys as z,advancedSketchKeys as K,tooltipKeys as Q}from"../interactive/keybindings.js";import{isInputModeAvailable as N}from"../interactive/tooltip/tooltipCommonUtils.js";const W=Symbol();let $=class extends Z{constructor(e){super(e),this._shapeVisualId=Symbol(),this._vertexVisualId=Symbol(),this._pluginContexts=new Map,this._queuedFeedbackEvents=[],this._flushingQueuedFeedbackEvents=!1,this._snappingVisualizer=null,this._updatingHandles=new y,this._keybindings=this._makeKeyBindings(),this._pendingBeginRequest=null,this.type="draw-2.0",this.automaticManipulatorSelection=!0,this.snappingManager=null,this.sketchOptions=null,this.elevationInfo=null,this.hasZ=!1,this.defaultZ=0,this.lastScreenPosition=null,this.measurementManager=new A,this.globalStateManager=new V({getPluginStack:()=>this.pluginStack}),this.editSessionManager=new O({getContext:()=>this._editSessionManagerContext}),this.lifecycleManager=new U({getContext:this._getContextForPlugin.bind(this),editSessionManager:this.editSessionManager,afterAttach:this._afterAttach.bind(this),afterDetach:this._afterDetach.bind(this),beforeResume:this._beforeResume.bind(this)}),this.surfaceManager=null,this.interactiveHandleManager=null,this.renderer=null,this.enableVertexVisuals=!0}initialize(){const{view:e}=this;this.interactiveHandleManager=new I({view:e,renderer:this.renderer}),this._override("manipulators",this.interactiveHandleManager.manipulators),this.tooltipManager=new F({getDependencies:()=>this._tooltipDependencies,getLastScreenPosition:()=>this.lastScreenPosition}),this.addHandles(s(()=>this.renderer,t=>{t.addOrUpdateVisual(this._shapeVisualId,{role:"outputGeometry"}),t.addOrUpdateVisual(this._vertexVisualId,{role:"vertex"}),this._updatingHandles.addPromise(x(e,t).then(e=>this._snappingVisualizer=e))},d)),this.addHandles([s(()=>this.view,e=>{this.surfaceManager?.destroy(),this.surfaceManager=new R({spatialReference:this.coordinateHelper.spatialReference,excludedGraphicsLayer:null,defaultZ:this.defaultZ,hasZ:this.hasZ,view:e,elevationInfo:this.elevationInfo,getContext:()=>({drawAtFixedElevation:this.globalStateManager.drawAtFixedElevation,elevationConstraint:this.tooltipManager?.elevationConstraint,constraintsEnabled:this.tooltipManager?.constraintsEnabled??!1})})},d),s(()=>this.sketchOptions?.tooltips.effectiveEnabled,()=>this.measurementManager.preloadMeasurementUtils(),{once:!0,initial:!0}),l(()=>this.editSessionManager,"cancelPlugin",({plugin:e})=>{this._suspendPlugin(e)},p),l(()=>this.editSessionManager,"restartPlugin",({restartInfo:e})=>{this._resumePlugin(e)},p),c(()=>this.lifecycleManager.updating,e=>{e||this._emitQueuedFeedbackEvents()},p),l(()=>this.editGeometryOperations,["vertex-add","vertex-update","vertex-remove"],e=>{const t=e.vertices.map(e=>({componentIndex:0,vertexIndex:e.index,coordinates:this.coordinateHelper.vectorToArray(e.pos)})),i=t.map(e=>e.coordinates);switch(e.type){case"vertex-add":this._emitWhenReady(e.type,{...e,added:i,vertices:t});break;case"vertex-update":this._emitWhenReady(e.type,{...e,updated:i,vertices:t});break;case"vertex-remove":this._emitWhenReady(e.type,{...e,removed:i,vertices:t})}})])}destroy(){this.active&&this.onDeactivate(),this.editSessionManager.destroy(),this.lifecycleManager.destroy(),this.measurementManager.destroy(),this.globalStateManager.destroy();for(const e of this._pluginContexts.values())e.destroy();this._pluginContexts.clear(),this.surfaceManager=o(this.surfaceManager),this.interactiveHandleManager=o(this.interactiveHandleManager),this.tooltipManager=o(this.tooltipManager)}get _tooltipDependencies(){const{defaultZ:e,editGeometryOperations:t,sketchOptions:i,directionOptions:a,view:n}=this;return t&&i&&n?{defaultZ:e,directionOptions:a,editGeometryOperations:t,sketchOptions:i,view:n,getActiveHandle:()=>this.interactiveHandleManager?.focusedHandle,getAllHandles:()=>this.interactiveHandleManager?.allhandles,getHelpMessageKey:()=>this.helpMessageKey,notifyTooltipsChanged:()=>{const{interactiveHandleManager:e,movementCommandContext:t}=this;e&&t&&e.reapplyPositions(t)}}:null}get _editSessionManagerContext(){const{coordinateHelper:e,view:t}=this;if(!t)return null;return{coordinateHelper:e,viewingMode:"3d"===t.type&&"global"===t.viewingMode?1:2}}get _densificationParameters(){const{view:e,coordinateHelper:t}=this,i=t.spatialReference,a=e?.spatialReference,n=e.resolution;if(!(i&&a&&n&&Number.isFinite(n)))return null;const r=a.metersPerUnit/i.metersPerUnit;return{maxDeviation:2**Math.round(Math.log2(n))*P()*r,minSegmentsPerCurve:S()}}get test(){return{densificationParameters:this._densificationParameters}}get updating(){return this._updatingHandles.updating||this.lifecycleManager.updating}get coordinateHelper(){return L(this.hasZ,!1,this.view.spatialReference)}get editGeometry(){return this.editGeometryOperations?.data}get editGeometryOperations(){return this.editSessionManager.editGeometryOperations}get unprocessedGeometry(){return this.editSessionManager.outputGeometry}get simplifiedGeometryPreview(){const e=this.editSessionManager.outputGeometry;if(e&&b(e))try{const t=this._densificationParameters,i=C(e)&&t?new f({...H(e,t)}):e;if(!M(i))return _(i)}catch(t){return e}return e}get canUndo(){return this.editSessionManager.canUndo}get canRedo(){return this.editSessionManager.canRedo}get pluginStack(){return this.lifecycleManager.pluginStack}get mostDownstreamPlugin(){return this.pluginStack.at(-1)}get mostUpstreamPlugin(){return this.pluginStack.at(0)}get positionOfLastUserInput(){return this.lastScreenPosition?this.view.toMap(this.lastScreenPosition):this.view.center}get movementCommandContext(){const{editGeometryOperations:e,tooltipManager:t,surfaceManager:i,snappingManager:a,interactiveHandleManager:n,_snappingVisualizer:r,defaultZ:o,hasZ:s,globalStateManager:{drawAtFixedElevation:d},view:l}=this;return{tooltipManager:t,editGeometryOperations:e,surfaceManager:i,interactiveHandleManager:n,snappingManager:a,snappingVisualizer:r,pointerType:"mouse",hasZ:s,defaultZ:o,view:l,drawAtFixedElevation:d}}get tooltip(){return this.tooltipManager?.tooltip}get activeTooltipInfo(){return this.tooltipManager?.tooltipInfo}get helpMessageKey(){return this.pluginStack.items.findLast(e=>e.helpMessageKey)?.helpMessageKey??"noTool"}begin(e){this.active?(this.lifecycleManager.begin(e),this._pendingBeginRequest=null):this._pendingBeginRequest=e}complete(e){const t=this.lifecycleManager;e&&t.complete(e),0===t.pluginStack.length&&(this._finalizeAndSimplifyGeometryResult(),this.emit("complete",{geometry:this.finalGeometry,aborted:!1,type:"complete",vertices:[]}),this.view?.activeTool===this&&(this.view.activeTool=null))}cancelFirstUserLeafPlugin(){const e=this.pluginStack.toArray().findLast(e=>!0!==e.configuration?.hidden);e&&this.lifecycleManager.cancel(e)}replaceLeaf(e){const t=this.lifecycleManager;t.updating?n.getLogger(this).info("Ignoring command; arrived while updating:","replaceLeaf"):t.replaceLeaf(e)}finishPart(){const e=this.mostUpstreamPlugin,t=e?.configuration;if(this.editGeometryOperations&&t&&t.kind?.includes("multipart")){const e=this.pluginStack.at(1);e&&this.complete(e)}}undo(){this._guardCommand({action:"undo"},()=>this.editSessionManager.undo())}redo(){this._guardCommand({action:"redo"},()=>this.editSessionManager.redo())}executeCommand(e){return this._handleCommand(e)}addPromise(e){return this._updatingHandles.addPromise(e)}getGeometryIfCompleted(){const e=this.lifecycleManager.gatherCompletablePlugins();return this.editSessionManager?.generatePreviewGeometryForPlugins(e)}onActivate(){super.onActivate();const{view:e}=this;this.lastScreenPosition=e?.inputManager.latestPointerInfo?.location,this.renderer?.activate(),this._pendingBeginRequest&&(this.begin(this._pendingBeginRequest),this._pendingBeginRequest=null),this.enableVertexVisuals&&this.addHandles(c(()=>this.unprocessedGeometry,e=>{this.renderer?.addOrUpdateVisual(this._vertexVisualId,{geometry:e?k(e):null})},d)),this.addHandles([c(()=>this.simplifiedGeometryPreview,e=>{this.renderer?.addOrUpdateVisual(this._shapeVisualId,{geometry:e})},d),s(()=>this.interactiveHandleManager?.capturingHandle?.screenPosition,e=>this.lastScreenPosition=e,{initial:!0,equals:u}),c(()=>this.interactiveHandleManager?.capturingHandle?.outputMapPosition,(e,t)=>{const i=this.interactiveHandleManager?.capturingHandle?.editSession?.endVertex;e&&t&&i&&this._emitWhenReady("cursor-update",{updated:i.pos,type:"vertex-update",operation:"apply",vertices:[{componentIndex:i.part.index,vertexIndex:i.index,coordinates:i.pos}]})},p),this._keybindings.register(e,D.TOOL),c(()=>e.viewpoint,(e,t)=>{e&&t&&g(e,t)&&this._handleCommand({action:"viewpoint-moved"})})],W)}onDeactivate(){super.onDeactivate(),this.removeHandles(W),this.renderer?.deactivate(),this.snappingManager?.doneSnapping(),this.lifecycleManager.cancelAll(),this._pendingBeginRequest=null}onInputEvent(e){const t=G(e);t&&this._handleCommand(t)}_emitWhenReady(e,t){if(this.destroyed)return;const i=()=>{this.emit(e,t)};this.lifecycleManager.updating||this._flushingQueuedFeedbackEvents?this._queuedFeedbackEvents.push(i):i()}_emitQueuedFeedbackEvents(){if(!(this.destroyed||this._flushingQueuedFeedbackEvents||this.lifecycleManager.updating||0===this._queuedFeedbackEvents.length)){this._flushingQueuedFeedbackEvents=!0;try{for(;!this.destroyed&&!this.lifecycleManager.updating&&this._queuedFeedbackEvents.length>0;)this._queuedFeedbackEvents.shift()?.()}finally{this._flushingQueuedFeedbackEvents=!1}}}async _handleCommand(e){if(this.lifecycleManager.updating)n.getLogger(this).info("Ignoring command; arrived while updating:",e.action);else switch(e.action){case"view-drag":return await this._handleViewDragCommand(e);case"vertex-add":return this._guardCommand(e,()=>{j(e),this._commitNext()});case"vertex-add-and-finish-part":return this._handleVertexAddAndFinishPartCommand(e);case"cancel":return this._guardCommand(e,()=>this.cancel());case"complete":return this._guardCommand(e,()=>{this.mostUpstreamPlugin&&(j(e),this.complete(this.mostUpstreamPlugin))});case"finish-part":return this._guardCommand(e,()=>this.finishPart());case"undo":return this._guardCommand(e,()=>this.editSessionManager.undo());case"redo":return this._guardCommand(e,()=>this.editSessionManager.redo());case"next-manipulator":return this._guardCommand(e,()=>this.interactiveHandleManager?.cycleManipulator("forward"));case"previous-manipulator":return this._guardCommand(e,()=>this.interactiveHandleManager?.cycleManipulator("backward"));case"toggle-manipulator-follow":this.interactiveHandleManager?.toggleFollow()&&j(e);break;case"viewpoint-moved":return await this._handleViewpointMovedCommand(e);case"manipulator-move-to":return await this._handleManipulatorMoveToCommand(e);case"manipulator-drag-to":return await this._handleManipulatorDragToCommand(e);case"vertex-add-at-point":return await this._handleVertexAddAtPointCommand(e);case"show-tooltip":return this._guardCommand(e,async()=>{const t=this.tooltipManager?.tooltip;t&&N(t.info)&&(await t.enterInputMode(),j(e))});case"constraint-center":this.globalStateManager.setCentered(e.enabled);break;case"constraint-aspect":this.globalStateManager.setPreserveAspectRatio(e.enabled)}}async _handleViewDragCommand(e){if(!this.editable)return;const t=e.originalEvent,i=this.interactiveHandleManager?.capturingHandle;(!t||!("pointerType"in t)||"touch"!==t.pointerType||"capture-always"!==i?.captureMode&&"capture-when-engaged"!==i?.captureMode)&&"capture-when-engaged"!==this.interactiveHandleManager?.capturingHandle?.captureMode?this._before(e)&&j(e):j(e)}_handleVertexAddAndFinishPartCommand(e){this._before(e)||(j(e),this._commitNext(),this.finishPart())}async _handleViewpointMovedCommand(e){this.editable&&(await this._updatingHandles.addPromise(this.interactiveHandleManager?.capturingHandle?.moveTo(null,{...this.movementCommandContext,pointerType:E(e.originalEvent)})),this.interactiveHandleManager?.updateAllScreenPositions())}async _handleManipulatorMoveToCommand(e){if(!this.editable)return;const t=this._updateLastScreenPosition(e);this.interactiveHandleManager?.capturingHandle&&j(e),await this._updatingHandles.addPromise(this.interactiveHandleManager?.capturingHandle?.moveTo(t,{...this.movementCommandContext,pointerType:E(e.originalEvent)}))}async _handleManipulatorDragToCommand(e){if(!this.editable)return;const t=E(e.originalEvent),i=this._updateLastScreenPosition(e),a=this.interactiveHandleManager?.findHandleByManipulator(i);"touch"===t&&a&&"start"===e.state&&this.interactiveHandleManager?.releaseHandle();const n=this.interactiveHandleManager?.findHandleDragging(),r=this.interactiveHandleManager?.capturingHandle,o=n??r??a;o&&!a&&j(e),"capture-when-engaged"===o?.captureMode||"capture-always"===o?.captureMode&&"touch"===t?"end"===e.state?await this._updatingHandles.addPromise(o.noteDragEnd(i,{...this.movementCommandContext,pointerType:t}).then(()=>{o&&"touch"===E(e.originalEvent)&&"grabbable-object"!==o.captureMode&&"capture-when-engaged"!==o.defaultCaptureMode&&"primary"===o.role&&(1===this.interactiveHandleManager?.handleCount?this._handleCommand({action:"vertex-add"}):this.interactiveHandleManager?.releaseHandle())})):"start"===e.state?await this._updatingHandles.addPromise(o.noteDragStart(i,{...this.movementCommandContext,pointerType:t}).then(()=>{o&&"touch"===E(e.originalEvent)&&"grabbable-object"!==o.captureMode&&"capture-when-engaged"!==o.defaultCaptureMode&&!o.editSession?.lastPointAddedBySession&&this._handleCommand({action:"vertex-add"})})):await this._updatingHandles.addPromise(o?.moveTo(i,{...this.movementCommandContext,pointerType:E(e.originalEvent)})):"grabbable-object"===o?.captureMode&&(this.interactiveHandleManager?.releaseHandle(r),await this._updatingHandles.addPromise(o.moveTo(i,{...this.movementCommandContext,pointerType:t})))}async _handleVertexAddAtPointCommand(e){const t=this._updateLastScreenPosition(e),i=this.interactiveHandleManager?.capturingHandle??this.interactiveHandleManager?.findHandleByManipulator(t);this.editable&&i&&(this._before(e)||(j(e),await this._updatingHandles.addPromise(i.moveTo(t,{...this.movementCommandContext,skipSnapping:!0,pointerType:E(e.originalEvent)}).finally(()=>this._commitNext()))))}_makeKeyBindings(){const e=new q,t=(t,i)=>{e.addToggle(t,e=>this._handleCommand({action:i,originalEvent:e,enabled:"key-down"===e.type}))},i=(t,i)=>{e.add(t,e=>this._handleCommand({action:i,originalEvent:e}))};return t(B.preserveAspectRatio,"constraint-aspect"),t(z.center,"constraint-center"),i(K.toggleFollowManipulator,"toggle-manipulator-follow"),i(z.undo,"undo"),i(z.redo,"redo"),i(z.complete,"complete"),i(z.vertexAdd,"vertex-add"),i({key:Q.enterInputMode,continuePropagation:!0,repeats:!0},"show-tooltip"),e}_afterAttach(){}_afterDetach(e){this.interactiveHandleManager?.unregisterCustomConstraint(e),this.interactiveHandleManager?.unregisterHandle(e),this.tooltipManager?.unregisterPluginFields(e),this.globalStateManager.clearPluginOverrides(e);const t=this._pluginContexts.get(e);t&&(t.destroy(),this._pluginContexts.delete(e))}_beforeResume(e,t){this.interactiveHandleManager?.replaceEditSessions(e,t)}_commitNext(){const i={stack:[],error:void 0,hasError:!1};try{const t=this.mostDownstreamPlugin;if(!t)return;this.tooltipManager?.storeConstraintSnapshot();let n=!1;const r=this.editGeometryOperations;e(i,r?a(r.on("vertex-add",()=>n=!0)):null,!1);t.completeStep?t.completeStep():this.complete(t),n&&this.tooltipManager?.unlockOnVertexPlacement()}catch(n){i.error=n,i.hasError=!0}finally{t(i)}}_suspendPlugin(e){this.lifecycleManager.suspend(e),this.measurementManager.suspendPlugin(e)}_resumePlugin(e){this.lifecycleManager.resume(e)}_updateLastScreenPosition(e){const t=h(e.x,e.y);return this.lastScreenPosition=t,t}_getContextForPlugin(e,t){const i=r(this._pluginContexts,e,()=>new T({drawTool:this,plugin:e,session:t}));return i.session=t,i}_finalizeAndSimplifyGeometryResult(){const e=this.unprocessedGeometry;try{const t=e?_(e):e;t&&!w(t)?this.finalGeometry=t:this.finalGeometry=e}catch(t){n.getLogger(this).error("draw-tool:complete","geometry simplification failed",t)}}_before(e){if(!this.hasEventListener(`before-${e.action}`))return!1;const t=new CustomEvent(`before-${e.action}`,{detail:e,cancelable:!0});return this.emit(`before-${e.action}`,t),t.defaultPrevented}_guardCommand(e,t,i){return this._before(e)?i?.():t()}};i([m()],$.prototype,"_snappingVisualizer",void 0),i([m()],$.prototype,"_tooltipDependencies",null),i([m()],$.prototype,"_editSessionManagerContext",null),i([m()],$.prototype,"_densificationParameters",null),i([m({constructOnly:!0,nonNullable:!0})],$.prototype,"view",void 0),i([m()],$.prototype,"automaticManipulatorSelection",void 0),i([m()],$.prototype,"updating",null),i([m()],$.prototype,"coordinateHelper",null),i([m()],$.prototype,"editGeometry",null),i([m()],$.prototype,"editGeometryOperations",null),i([m()],$.prototype,"unprocessedGeometry",null),i([m()],$.prototype,"finalGeometry",void 0),i([m()],$.prototype,"simplifiedGeometryPreview",null),i([m()],$.prototype,"snappingManager",void 0),i([m()],$.prototype,"sketchOptions",void 0),i([m()],$.prototype,"elevationInfo",void 0),i([m()],$.prototype,"hasZ",void 0),i([m()],$.prototype,"defaultZ",void 0),i([m()],$.prototype,"directionOptions",void 0),i([m()],$.prototype,"canUndo",null),i([m()],$.prototype,"canRedo",null),i([m()],$.prototype,"pluginStack",null),i([m()],$.prototype,"mostDownstreamPlugin",null),i([m()],$.prototype,"mostUpstreamPlugin",null),i([m()],$.prototype,"lastScreenPosition",void 0),i([m()],$.prototype,"positionOfLastUserInput",null),i([m()],$.prototype,"tooltipManager",void 0),i([m()],$.prototype,"measurementManager",void 0),i([m()],$.prototype,"globalStateManager",void 0),i([m()],$.prototype,"editSessionManager",void 0),i([m()],$.prototype,"lifecycleManager",void 0),i([m()],$.prototype,"surfaceManager",void 0),i([m()],$.prototype,"interactiveHandleManager",void 0),i([m()],$.prototype,"renderer",void 0),i([m()],$.prototype,"movementCommandContext",null),i([m()],$.prototype,"tooltip",null),i([m()],$.prototype,"activeTooltipInfo",null),i([m()],$.prototype,"helpMessageKey",null),i([m({constructOnly:!0})],$.prototype,"enableVertexVisuals",void 0),$=i([v("esri.views.draw.DrawTool")],$);export{$ as DrawTool};
2
+ import{__addDisposableResource as e,__disposeResources as t,__decorate as i}from"tslib";import{createTask as a}from"../../core/asyncUtils.js";import{disposable as n}from"../../core/handleUtils.js";import s from"../../core/Logger.js";import{getOrCreateMapValue as r}from"../../core/MapUtils.js";import{destroyMaybe as o,abortMaybe as l}from"../../core/maybe.js";import{when as d,initial as p,watch as c,on as h,sync as g}from"../../core/reactiveUtils.js";import{screenPointEqual as u,createScreenPoint as m}from"../../core/screenUtils.js";import{diff as v}from"../../core/accessorSupport/diffUtils.js";import{property as y}from"../../core/accessorSupport/decorators/property.js";import{subclass as f}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as M}from"../../core/support/UpdatingHandles.js";import _ from"../../geometry/Polygon.js";import{i as b,e as w}from"../../chunks/simplifyOperator.js";import{isExtent as S}from"../../geometry/support/jsonTypeUtils.js";import{isPolygon as C}from"../../geometry/support/typeUtils.js";import{isCurvedGeometry as H}from"../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as x}from"../../geometry/support/curves/densifyCurvedGeometry.js";import{getEffectiveElevationInfo as P}from"../../support/elevationInfoUtils.js";import{getMaxDeviationInPixels as L,getMinSegmentsPerCurve as k}from"../2d/layers/graphics/densificationConstants.js";import{createSnappingVisualizer as O}from"./support/createSnappingVisualizer.js";import{multipointFromGeometry as j,markHandled as I,getPointerType as G}from"./support/drawToolUtils.js";import{PluginContext as T}from"./support/PluginContext.js";import{viewEventToCommand as E}from"./support/input/drawToolInput.js";import{EditSessionManager as V}from"./support/managers/EditSessionManager.js";import{GlobalStateManager as U}from"./support/managers/GlobalStateManager.js";import{InteractiveHandleManager as A}from"./support/managers/InteractiveHandleManager.js";import{MeasurementManager as D}from"./support/managers/MeasurementManager.js";import{PluginLifecycleManager as R}from"./support/managers/PluginLifecycleManager.js";import{SurfaceManager as F}from"./support/managers/SurfaceManager.js";import{TooltipManager as Z}from"./support/managers/TooltipManager.js";import{ViewEventPriorities as q}from"../input/InputManager.js";import{createCoordinateHelper as B}from"../interactive/coordinateHelper.js";import{InteractiveToolBase as z}from"../interactive/InteractiveToolBase.js";import{KeyBindings as K,mediaKeys as Q,sketchKeys as N,advancedSketchKeys as W,tooltipKeys as $}from"../interactive/keybindings.js";import{isInputModeAvailable as J}from"../interactive/tooltip/tooltipCommonUtils.js";const X=Symbol();let Y=class extends z{constructor(e){super(e),this._shapeVisualId=Symbol(),this._vertexVisualId=Symbol(),this._pluginContexts=new Map,this._queuedFeedbackEvents=[],this._flushingQueuedFeedbackEvents=!1,this._snappingVisualizer=null,this._segmentLabels=null,this._segmentLabelsImportTask=null,this._updatingHandles=new M,this._keybindings=this._makeKeyBindings(),this._pendingBeginRequest=null,this.type="draw-2.0",this.automaticManipulatorSelection=!0,this.snappingManager=null,this.sketchOptions=null,this.elevationInfo=null,this.hasZ=!1,this.defaultZ=0,this.lastScreenPosition=null,this.measurementManager=new D,this.globalStateManager=new U({getPluginStack:()=>this.pluginStack}),this.editSessionManager=new V({getContext:()=>this._editSessionManagerContext}),this.lifecycleManager=new R({getContext:this._getContextForPlugin.bind(this),editSessionManager:this.editSessionManager,afterAttach:this._afterAttach.bind(this),afterDetach:this._afterDetach.bind(this),beforeResume:this._beforeResume.bind(this)}),this.surfaceManager=null,this.interactiveHandleManager=null,this.renderer=null,this.enableVertexVisuals=!0}initialize(){const{view:e}=this;this.interactiveHandleManager=new A({view:e,renderer:this.renderer}),this._override("manipulators",this.interactiveHandleManager.manipulators),this.tooltipManager=new Z({getDependencies:()=>this._tooltipDependencies,getLastScreenPosition:()=>this.lastScreenPosition}),this.addHandles(d(()=>this.renderer,t=>{t.addOrUpdateVisual(this._shapeVisualId,{role:"outputGeometry"}),t.addOrUpdateVisual(this._vertexVisualId,{role:"vertex"}),this._updatingHandles.addPromise(O(e,t).then(e=>this._snappingVisualizer=e))},p)),this.addHandles([d(()=>this.view,e=>{this.surfaceManager?.destroy(),this.surfaceManager=new F({spatialReference:this.coordinateHelper.spatialReference,excludedGraphicsLayer:null,defaultZ:this.defaultZ,hasZ:this.hasZ,view:e,elevationInfo:this.elevationInfo,getContext:()=>({drawAtFixedElevation:this.globalStateManager.drawAtFixedElevation,elevationConstraint:this.tooltipManager?.elevationConstraint,constraintsEnabled:this.tooltipManager?.constraintsEnabled??!1})})},p),d(()=>this.sketchOptions?.tooltips.effectiveEnabled,()=>this.measurementManager.preloadMeasurementUtils(),{once:!0,initial:!0}),c(()=>[this.editGeometryOperations,this.sketchOptions?.labels.enabled,this.globalStateManager.segmentLabelsDisabled],()=>{this._updatingHandles.addPromise(this._setupSegmentLabels())},p),h(()=>this.editSessionManager,"cancelPlugin",({plugin:e})=>{this._suspendPlugin(e)},g),h(()=>this.editSessionManager,"restartPlugin",({restartInfo:e})=>{this._resumePlugin(e)},g),c(()=>this.lifecycleManager.updating,e=>{e||this._emitQueuedFeedbackEvents()},g),h(()=>this.editGeometryOperations,["vertex-add","vertex-update","vertex-remove"],e=>{const t=e.vertices.map(e=>({componentIndex:0,vertexIndex:e.index,coordinates:this.coordinateHelper.vectorToArray(e.pos)})),i=t.map(e=>e.coordinates);switch(e.type){case"vertex-add":this._emitWhenReady(e.type,{...e,added:i,vertices:t});break;case"vertex-update":this._emitWhenReady(e.type,{...e,updated:i,vertices:t});break;case"vertex-remove":this._emitWhenReady(e.type,{...e,removed:i,vertices:t})}})])}destroy(){this.active&&this.onDeactivate(),this.editSessionManager.destroy(),this.lifecycleManager.destroy(),this.measurementManager.destroy(),this.globalStateManager.destroy();for(const e of this._pluginContexts.values())e.destroy();this._pluginContexts.clear(),this.surfaceManager=o(this.surfaceManager),this.interactiveHandleManager=o(this.interactiveHandleManager),this._segmentLabelsImportTask=l(this._segmentLabelsImportTask),this._segmentLabels=o(this._segmentLabels),this.tooltipManager=o(this.tooltipManager)}get _tooltipDependencies(){const{defaultZ:e,editGeometryOperations:t,sketchOptions:i,directionOptions:a,view:n}=this;return t&&i&&n?{defaultZ:e,directionOptions:a,editGeometryOperations:t,sketchOptions:i,view:n,getActiveHandle:()=>this.interactiveHandleManager?.focusedHandle,getAllHandles:()=>this.interactiveHandleManager?.allhandles,getHelpMessageKey:()=>this.helpMessageKey,notifyTooltipsChanged:()=>{const{interactiveHandleManager:e,movementCommandContext:t}=this;e&&t&&e.reapplyPositions(t)}}:null}get _editSessionManagerContext(){const{coordinateHelper:e,view:t}=this;if(!t)return null;return{coordinateHelper:e,viewingMode:"3d"===t.type&&"global"===t.viewingMode?1:2}}get _densificationParameters(){const{view:e,coordinateHelper:t}=this,i=t.spatialReference,a=e?.spatialReference,n=e.resolution;if(!(i&&a&&n&&Number.isFinite(n)))return null;const s=a.metersPerUnit/i.metersPerUnit;return{maxDeviation:2**Math.round(Math.log2(n))*L()*s,minSegmentsPerCurve:k()}}get test(){return{densificationParameters:this._densificationParameters,segmentLabels:this._segmentLabels}}get updating(){return this._updatingHandles.updating||this.lifecycleManager.updating||!!this._segmentLabels?.updating}get coordinateHelper(){return B(this.hasZ,!1,this.view.spatialReference)}get editGeometry(){return this.editGeometryOperations?.data}get editGeometryOperations(){return this.editSessionManager.editGeometryOperations}get unprocessedGeometry(){return this.editSessionManager.outputGeometry}get simplifiedGeometryPreview(){const e=this.editSessionManager.outputGeometry;if(e&&C(e))try{const t=this._densificationParameters,i=H(e)&&t?new _({...x(e,t)}):e;if(!b(i))return w(i)}catch(t){return e}return e}get canUndo(){return this.editSessionManager.canUndo}get canRedo(){return this.editSessionManager.canRedo}get pluginStack(){return this.lifecycleManager.pluginStack}get mostDownstreamPlugin(){return this.pluginStack.at(-1)}get mostUpstreamPlugin(){return this.pluginStack.at(0)}get positionOfLastUserInput(){return this.lastScreenPosition?this.view.toMap(this.lastScreenPosition):this.view.center}get movementCommandContext(){const{editGeometryOperations:e,tooltipManager:t,surfaceManager:i,snappingManager:a,interactiveHandleManager:n,_snappingVisualizer:s,defaultZ:r,hasZ:o,globalStateManager:{drawAtFixedElevation:l},view:d}=this;return{tooltipManager:t,editGeometryOperations:e,surfaceManager:i,interactiveHandleManager:n,snappingManager:a,snappingVisualizer:s,pointerType:"mouse",hasZ:o,defaultZ:r,view:d,drawAtFixedElevation:l}}get tooltip(){return this.tooltipManager?.tooltip}get activeTooltipInfo(){return this.tooltipManager?.tooltipInfo}get helpMessageKey(){return this.pluginStack.items.findLast(e=>e.helpMessageKey)?.helpMessageKey??"noTool"}begin(e){this.active?(this.lifecycleManager.begin(e),this._pendingBeginRequest=null):this._pendingBeginRequest=e}complete(e){const t=this.lifecycleManager;e&&t.complete(e),0===t.pluginStack.length&&(this._finalizeAndSimplifyGeometryResult(),this.emit("complete",{geometry:this.finalGeometry,aborted:!1,type:"complete",vertices:[]}),this.view?.activeTool===this&&(this.view.activeTool=null))}cancelFirstUserLeafPlugin(){const e=this.pluginStack.toArray().findLast(e=>!0!==e.configuration?.hidden);e&&this.lifecycleManager.cancel(e)}replaceLeaf(e){const t=this.lifecycleManager;t.updating?s.getLogger(this).info("Ignoring command; arrived while updating:","replaceLeaf"):t.replaceLeaf(e)}finishPart(){const e=this.mostUpstreamPlugin,t=e?.configuration;if(this.editGeometryOperations&&t&&t.kind?.includes("multipart")){const e=this.pluginStack.at(1);e&&this.complete(e)}}undo(){this._guardCommand({action:"undo"},()=>this.editSessionManager.undo())}redo(){this._guardCommand({action:"redo"},()=>this.editSessionManager.redo())}executeCommand(e){return this._handleCommand(e)}addPromise(e){return this._updatingHandles.addPromise(e)}getGeometryIfCompleted(){const e=this.lifecycleManager.gatherCompletablePlugins();return this.editSessionManager?.generatePreviewGeometryForPlugins(e)}onActivate(){super.onActivate();const{view:e}=this;this.lastScreenPosition=e?.inputManager.latestPointerInfo?.location,this.renderer?.activate(),this._pendingBeginRequest&&(this.begin(this._pendingBeginRequest),this._pendingBeginRequest=null),this.enableVertexVisuals&&this.addHandles(c(()=>this.unprocessedGeometry,e=>{this.renderer?.addOrUpdateVisual(this._vertexVisualId,{geometry:e?j(e):null})},p)),this.addHandles([c(()=>this.simplifiedGeometryPreview,e=>{this.renderer?.addOrUpdateVisual(this._shapeVisualId,{geometry:e})},p),d(()=>this.interactiveHandleManager?.capturingHandle?.screenPosition,e=>this.lastScreenPosition=e,{initial:!0,equals:u}),c(()=>this.interactiveHandleManager?.capturingHandle?.outputMapPosition,(e,t)=>{const i=this.interactiveHandleManager?.capturingHandle?.editSession?.endVertex;e&&t&&i&&this._emitWhenReady("cursor-update",{updated:i.pos,type:"vertex-update",operation:"apply",vertices:[{componentIndex:i.part.index,vertexIndex:i.index,coordinates:i.pos}]})},g),this._keybindings.register(e,q.TOOL),c(()=>e.viewpoint,(e,t)=>{e&&t&&v(e,t)&&this._handleCommand({action:"viewpoint-moved"})})],X)}onDeactivate(){super.onDeactivate(),this.removeHandles(X),this.renderer?.deactivate(),this.snappingManager?.doneSnapping(),this.lifecycleManager.cancelAll(),this._pendingBeginRequest=null}onInputEvent(e){const t=E(e);t&&this._handleCommand(t)}_emitWhenReady(e,t){if(this.destroyed)return;const i=()=>{this.emit(e,t)};this.lifecycleManager.updating||this._flushingQueuedFeedbackEvents?this._queuedFeedbackEvents.push(i):i()}_emitQueuedFeedbackEvents(){if(!(this.destroyed||this._flushingQueuedFeedbackEvents||this.lifecycleManager.updating||0===this._queuedFeedbackEvents.length)){this._flushingQueuedFeedbackEvents=!0;try{for(;!this.destroyed&&!this.lifecycleManager.updating&&this._queuedFeedbackEvents.length>0;)this._queuedFeedbackEvents.shift()?.()}finally{this._flushingQueuedFeedbackEvents=!1}}}async _handleCommand(e){if(this.lifecycleManager.updating)s.getLogger(this).info("Ignoring command; arrived while updating:",e.action);else switch(e.action){case"view-drag":return await this._handleViewDragCommand(e);case"vertex-add":return this._guardCommand(e,()=>{I(e),this._commitNext()});case"vertex-add-and-finish-part":return this._handleVertexAddAndFinishPartCommand(e);case"cancel":return this._guardCommand(e,()=>this.cancel());case"complete":return this._guardCommand(e,()=>{this.mostUpstreamPlugin&&(I(e),this.complete(this.mostUpstreamPlugin))});case"finish-part":return this._guardCommand(e,()=>this.finishPart());case"undo":return this._guardCommand(e,()=>this.editSessionManager.undo());case"redo":return this._guardCommand(e,()=>this.editSessionManager.redo());case"next-manipulator":return this._guardCommand(e,()=>this.interactiveHandleManager?.cycleManipulator("forward"));case"previous-manipulator":return this._guardCommand(e,()=>this.interactiveHandleManager?.cycleManipulator("backward"));case"toggle-manipulator-follow":this.interactiveHandleManager?.toggleFollow()&&I(e);break;case"viewpoint-moved":return await this._handleViewpointMovedCommand(e);case"manipulator-move-to":return await this._handleManipulatorMoveToCommand(e);case"manipulator-drag-to":return await this._handleManipulatorDragToCommand(e);case"vertex-add-at-point":return await this._handleVertexAddAtPointCommand(e);case"show-tooltip":return this._guardCommand(e,async()=>{const t=this.tooltipManager?.tooltip;t&&J(t.info)&&(await t.enterInputMode(),I(e))});case"constraint-center":this.globalStateManager.setCentered(e.enabled);break;case"constraint-aspect":this.globalStateManager.setPreserveAspectRatio(e.enabled)}}async _handleViewDragCommand(e){if(!this.editable)return;const t=e.originalEvent,i=this.interactiveHandleManager?.capturingHandle;(!t||!("pointerType"in t)||"touch"!==t.pointerType||"capture-always"!==i?.captureMode&&"capture-when-engaged"!==i?.captureMode)&&"capture-when-engaged"!==this.interactiveHandleManager?.capturingHandle?.captureMode?this._before(e)&&I(e):I(e)}_handleVertexAddAndFinishPartCommand(e){this._before(e)||(I(e),this._commitNext(),this.finishPart())}async _handleViewpointMovedCommand(e){this.editable&&(await this._updatingHandles.addPromise(this.interactiveHandleManager?.capturingHandle?.moveTo(null,{...this.movementCommandContext,pointerType:G(e.originalEvent)})),this.interactiveHandleManager?.updateAllScreenPositions())}async _handleManipulatorMoveToCommand(e){if(!this.editable)return;const t=this._updateLastScreenPosition(e);this.interactiveHandleManager?.capturingHandle&&I(e),await this._updatingHandles.addPromise(this.interactiveHandleManager?.capturingHandle?.moveTo(t,{...this.movementCommandContext,pointerType:G(e.originalEvent)}))}async _handleManipulatorDragToCommand(e){if(!this.editable)return;const t=G(e.originalEvent),i=this._updateLastScreenPosition(e),a=this.interactiveHandleManager?.findHandleByManipulator(i);"touch"===t&&a&&"start"===e.state&&this.interactiveHandleManager?.releaseHandle();const n=this.interactiveHandleManager?.findHandleDragging(),s=this.interactiveHandleManager?.capturingHandle,r=n??s??a;r&&!a&&I(e),"capture-when-engaged"===r?.captureMode||"capture-always"===r?.captureMode&&"touch"===t?"end"===e.state?await this._updatingHandles.addPromise(r.noteDragEnd(i,{...this.movementCommandContext,pointerType:t}).then(()=>{r&&"touch"===G(e.originalEvent)&&"grabbable-object"!==r.captureMode&&"capture-when-engaged"!==r.defaultCaptureMode&&"primary"===r.role&&(1===this.interactiveHandleManager?.handleCount?this._handleCommand({action:"vertex-add"}):this.interactiveHandleManager?.releaseHandle())})):"start"===e.state?await this._updatingHandles.addPromise(r.noteDragStart(i,{...this.movementCommandContext,pointerType:t}).then(()=>{r&&"touch"===G(e.originalEvent)&&"grabbable-object"!==r.captureMode&&"capture-when-engaged"!==r.defaultCaptureMode&&!r.editSession?.lastPointAddedBySession&&this._handleCommand({action:"vertex-add"})})):await this._updatingHandles.addPromise(r?.moveTo(i,{...this.movementCommandContext,pointerType:G(e.originalEvent)})):"grabbable-object"===r?.captureMode&&(this.interactiveHandleManager?.releaseHandle(s),await this._updatingHandles.addPromise(r.moveTo(i,{...this.movementCommandContext,pointerType:t})))}async _handleVertexAddAtPointCommand(e){const t=this._updateLastScreenPosition(e),i=this.interactiveHandleManager?.capturingHandle??this.interactiveHandleManager?.findHandleByManipulator(t);this.editable&&i&&(this._before(e)||(I(e),await this._updatingHandles.addPromise(i.moveTo(t,{...this.movementCommandContext,skipSnapping:!0,pointerType:G(e.originalEvent)}).finally(()=>this._commitNext()))))}_makeKeyBindings(){const e=new K,t=(t,i)=>{e.addToggle(t,e=>this._handleCommand({action:i,originalEvent:e,enabled:"key-down"===e.type}))},i=(t,i)=>{e.add(t,e=>this._handleCommand({action:i,originalEvent:e}))};return t(Q.preserveAspectRatio,"constraint-aspect"),t(N.center,"constraint-center"),i(W.toggleFollowManipulator,"toggle-manipulator-follow"),i(N.undo,"undo"),i(N.redo,"redo"),i(N.complete,"complete"),i(N.vertexAdd,"vertex-add"),i({key:$.enterInputMode,continuePropagation:!0,repeats:!0},"show-tooltip"),e}_afterAttach(){}_afterDetach(e){this.interactiveHandleManager?.unregisterCustomConstraint(e),this.interactiveHandleManager?.unregisterHandle(e),this.tooltipManager?.unregisterPluginFields(e),this.globalStateManager.clearPluginOverrides(e);const t=this._pluginContexts.get(e);t&&(t.destroy(),this._pluginContexts.delete(e))}_beforeResume(e,t){this.interactiveHandleManager?.replaceEditSessions(e,t)}_commitNext(){const i={stack:[],error:void 0,hasError:!1};try{const t=this.mostDownstreamPlugin;if(!t)return;this.tooltipManager?.storeConstraintSnapshot();let a=!1;const s=this.editGeometryOperations;e(i,s?n(s.on("vertex-add",()=>a=!0)):null,!1);t.completeStep?t.completeStep():this.complete(t),a&&this.tooltipManager?.unlockOnVertexPlacement()}catch(a){i.error=a,i.hasError=!0}finally{t(i)}}_suspendPlugin(e){this.lifecycleManager.suspend(e),this.measurementManager.suspendPlugin(e)}_resumePlugin(e){this.lifecycleManager.resume(e)}_updateLastScreenPosition(e){const t=m(e.x,e.y);return this.lastScreenPosition=t,t}_getContextForPlugin(e,t){const i=r(this._pluginContexts,e,()=>new T({drawTool:this,plugin:e,session:t}));return i.session=t,i}_finalizeAndSimplifyGeometryResult(){const e=this.unprocessedGeometry;try{const t=e?w(e):e;t&&!S(t)?this.finalGeometry=t:this.finalGeometry=e}catch(t){s.getLogger(this).error("draw-tool:complete","geometry simplification failed",t)}}_before(e){if(!this.hasEventListener(`before-${e.action}`))return!1;const t=new CustomEvent(`before-${e.action}`,{detail:e,cancelable:!0});return this.emit(`before-${e.action}`,t),t.defaultPrevented}_guardCommand(e,t,i){return this._before(e)?i?.():t()}async _setupSegmentLabels(){const e=this.editGeometryOperations,t=this.sketchOptions?.labels,i=!!t?.enabled,a=this.globalStateManager.segmentLabelsDisabled;if(!e||!t||!i)return void(this._segmentLabels=o(this._segmentLabels));if(a)return void(this._segmentLabels&&(this._segmentLabels.visible=!1));if(this._segmentLabels?.context?.editGeometryOperations===e&&this._segmentLabels.context.labelOptions===t)return void(this._segmentLabels.visible=!0);const n=await this._createSegmentLabels(e,t);n&&(this._segmentLabels=o(this._segmentLabels),this._segmentLabels=n)}async _createSegmentLabels(e,t){return(this._segmentLabelsImportTask??=a(async i=>{if("3d"===this.view.type){const a=import("../3d/interactive/SegmentLabels3D.js"),{SegmentLabels3D:n}=await this._updatingHandles.addPromise(a);return this._isSegmentLabelsSetupStale(i,e,t)?null:new n({context:{view:this.view,editGeometryOperations:e,elevationInfo:P(this.hasZ,this.elevationInfo),labelOptions:t},visible:!0})}const a=import("../2d/interactive/SegmentLabels2D.js"),{SegmentLabels2D:n}=await this._updatingHandles.addPromise(a);return this._isSegmentLabelsSetupStale(i,e,t)?null:new n({context:{view:this.view,editGeometryOperations:e,elevationInfo:P(this.hasZ,this.elevationInfo),labelOptions:t},visible:!0})})).promise}_isSegmentLabelsSetupStale(e,t,i){return e.aborted||this.editGeometryOperations!==t||this.sketchOptions?.labels!==i||!i.enabled||this.globalStateManager.segmentLabelsDisabled}};i([y()],Y.prototype,"_snappingVisualizer",void 0),i([y()],Y.prototype,"_segmentLabels",void 0),i([y()],Y.prototype,"_segmentLabelsImportTask",void 0),i([y()],Y.prototype,"_tooltipDependencies",null),i([y()],Y.prototype,"_editSessionManagerContext",null),i([y()],Y.prototype,"_densificationParameters",null),i([y({constructOnly:!0,nonNullable:!0})],Y.prototype,"view",void 0),i([y()],Y.prototype,"automaticManipulatorSelection",void 0),i([y()],Y.prototype,"updating",null),i([y()],Y.prototype,"coordinateHelper",null),i([y()],Y.prototype,"editGeometry",null),i([y()],Y.prototype,"editGeometryOperations",null),i([y()],Y.prototype,"unprocessedGeometry",null),i([y()],Y.prototype,"finalGeometry",void 0),i([y()],Y.prototype,"simplifiedGeometryPreview",null),i([y()],Y.prototype,"snappingManager",void 0),i([y()],Y.prototype,"sketchOptions",void 0),i([y()],Y.prototype,"elevationInfo",void 0),i([y()],Y.prototype,"hasZ",void 0),i([y()],Y.prototype,"defaultZ",void 0),i([y()],Y.prototype,"directionOptions",void 0),i([y()],Y.prototype,"canUndo",null),i([y()],Y.prototype,"canRedo",null),i([y()],Y.prototype,"pluginStack",null),i([y()],Y.prototype,"mostDownstreamPlugin",null),i([y()],Y.prototype,"mostUpstreamPlugin",null),i([y()],Y.prototype,"lastScreenPosition",void 0),i([y()],Y.prototype,"positionOfLastUserInput",null),i([y()],Y.prototype,"tooltipManager",void 0),i([y()],Y.prototype,"measurementManager",void 0),i([y()],Y.prototype,"globalStateManager",void 0),i([y()],Y.prototype,"editSessionManager",void 0),i([y()],Y.prototype,"lifecycleManager",void 0),i([y()],Y.prototype,"surfaceManager",void 0),i([y()],Y.prototype,"interactiveHandleManager",void 0),i([y()],Y.prototype,"renderer",void 0),i([y()],Y.prototype,"movementCommandContext",null),i([y()],Y.prototype,"tooltip",null),i([y()],Y.prototype,"activeTooltipInfo",null),i([y()],Y.prototype,"helpMessageKey",null),i([y({constructOnly:!0})],Y.prototype,"enableVertexVisuals",void 0),Y=i([f("esri.views.draw.DrawTool")],Y);export{Y as DrawTool};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{watch as t,syncAndInitial as i,sync as s}from"../../../core/reactiveUtils.js";import{property as r,subclass as a}from"../../../core/accessorSupport/decorators.js";import{PluginBase as n}from"./PluginBase.js";import{createSquare as o,createCircle as l,createEllipse as d,createRectangle as p}from"../support/createUtils.js";import{knownFieldDisplayOrders as h}from"../support/types.js";const u=Symbol("own-shape"),c=Symbol("shape-area-measurement"),m=Symbol("shape-size-measurement-x"),f=Symbol("shape-size-measurement-y"),y=Symbol("shape-area-field"),g=Symbol("shape-x-size-field"),_=Symbol("shape-y-size-field"),S=Symbol("shape-radius-field");let v=class extends n{constructor(){super(...arguments),this.shapeType="rectangle",this.defaultCentered=!1,this.defaultUniform=!1}get _globalModifierState(){return this._context?.getGlobalState()}get helpMessageKey(){return this._interactiveHandle?.dragging?"shapeEndHybrid":"shapeStartHybrid"}get effectiveUniform(){return this.defaultUniform!==!!this._globalModifierState?.preserveAspectRatio}get effectiveCentered(){return this.defaultCentered!==this._globalModifierState?.centered}set shapeResult(e){this._set("shapeResult",e),e?"center"in e?(this._radiusField?.show(),this._xSizeField?.hide(),this._ySizeField?.hide(),this._areaField?.show()):"midpoints"in e&&e.midpoints&&(this._radiusField?.hide(),this._xSizeField?.show(),this._ySizeField?.show(),this._areaField?.show()):(this._xSizeField?.hide(),this._ySizeField?.hide(),this._radiusField?.hide(),this._areaField?.hide());const t=e?.geometry,i=this._session;if(i&&t){const e=t.curveRings??t.rings,s=e?.at(0);s&&i.appendOrReplacePart(u,s)}}start(e){super.start(e),this._interactiveHandle??=e.createInteractiveHandle({defaultCaptureMode:"capture-when-engaged",selfSnappingEnabled:!1},{disableDefaultXYFields:!0}),this.addHandles([t(()=>[this._interactiveHandle?.outputMapPosition,this.effectiveCentered,this.effectiveUniform],([e,t,i])=>{if(!e||this._isComplete)return;const s=this._interactiveHandle?.outputMapPositionOfDragStart??e,r=s===e?null:e;this.shapeResult=this._generateShape(s,r,t,i)},i),t(()=>this._interactiveHandle?.dragging,(t,i)=>{t&&e.setGlobalState("drawAtFixedElevation",!0),!t&&i&&"grabbable-object"!==this._interactiveHandle?.captureMode&&e.requestComplete()},s)],this._ownHandlesKey),this._areaField??=this._context?.createMeasuredField({id:y,preset:"area",getMeasurementInput:()=>this.shapeResult?.geometry,measure:async(e,t)=>{if(!e)return null;const i=t.inputUnitInfos.area.unit;return this._context?.measureArea(e,c,"tooltip",i)},fieldProperties:{displayOrder:h.ShapeMeasurements}});const r=Symbol("Size-group");this._xSizeField??=this._context?.createMeasuredField({id:g,preset:"generic-length",getMeasurementInput:()=>this.shapeResult,measure:async(e,t)=>e&&"midpoints"in e&&e.midpoints?this._context?.measureDistance([e.midpoints?.left,e.midpoints?.right],m,"tooltip",t.inputUnitInfos.length.unit):null,fieldProperties:{displayOrder:h.Middle+1,displayGroup:r,title:e=>e.messages.sketch.size,readOnly:!0}}),this._ySizeField??=this._context?.createMeasuredField({id:_,preset:"generic-length",getMeasurementInput:()=>this.shapeResult,measure:async(e,t)=>e&&"midpoints"in e&&e.midpoints?this._context?.measureDistance([e.midpoints?.bottom,e.midpoints?.top],f,"tooltip",t.inputUnitInfos.length.unit):null,fieldProperties:{displayOrder:h.Middle+2,displayGroup:r,title:e=>e.messages.sketch.size,readOnly:!0}}),this._radiusField??=this._context?.createMeasuredField({id:S,preset:"radius",getMeasurementInput:()=>this.shapeResult,measure:async(e,t)=>{if(e&&"center"in e&&null!=e.center)return this._context?.measureDistance([e.center,e.edge],f,"tooltip",t.inputUnitInfos.length.unit)},fieldProperties:{displayOrder:h.Middle+1,readOnly:!0}})}_generateShape(e,t,i,s){const{shapeType:r}=this,{resolution:a}=this._context?.getViewInformation()??{},n=this._context?.getViewAlignedSurfaceCoordinateSystem(e);if(!n||null==a)return null;const h=[e.x,e.y],u=t&&[t.x,t.y];if(!u){const e=[[h,n.makeMapPoint(h[0]+48*a,h[1])],n,!0];return"rectangle"===r?o(...e):l(...e,void 0)}const c=[[h,u],n,i];return s?"circle"===r?l(...c,void 0):o(...c):"circle"===r?d(...c):p(...c)}};e([r()],v.prototype,"_interactiveHandle",void 0),e([r()],v.prototype,"_areaField",void 0),e([r()],v.prototype,"_xSizeField",void 0),e([r()],v.prototype,"_ySizeField",void 0),e([r()],v.prototype,"_radiusField",void 0),e([r()],v.prototype,"_globalModifierState",null),e([r()],v.prototype,"shapeType",void 0),e([r()],v.prototype,"defaultCentered",void 0),e([r()],v.prototype,"defaultUniform",void 0),e([r()],v.prototype,"helpMessageKey",null),e([r()],v.prototype,"effectiveUniform",null),e([r()],v.prototype,"effectiveCentered",null),e([r()],v.prototype,"shapeResult",null),v=e([a("esri.views.draw.plugins.ShapePlugin")],v);export{v as ShapePlugin};
2
+ import{__decorate as e}from"tslib";import{watch as t,syncAndInitial as i,sync as s}from"../../../core/reactiveUtils.js";import{property as r,subclass as a}from"../../../core/accessorSupport/decorators.js";import{PluginBase as n}from"./PluginBase.js";import{createSquare as o,createCircle as l,createEllipse as d,createRectangle as p}from"../support/createUtils.js";import{knownFieldDisplayOrders as h}from"../support/types.js";const u=Symbol("own-shape"),c=Symbol("shape-area-measurement"),m=Symbol("shape-size-measurement-x"),f=Symbol("shape-size-measurement-y"),y=Symbol("shape-area-field"),g=Symbol("shape-x-size-field"),_=Symbol("shape-y-size-field"),S=Symbol("shape-radius-field");let v=class extends n{constructor(){super(...arguments),this.shapeType="rectangle",this.defaultCentered=!1,this.defaultUniform=!1}get _globalModifierState(){return this._context?.getGlobalState()}get helpMessageKey(){return this._interactiveHandle?.dragging?"shapeEndHybrid":"shapeStartHybrid"}get effectiveUniform(){return this.defaultUniform!==!!this._globalModifierState?.preserveAspectRatio}get effectiveCentered(){return this.defaultCentered!==this._globalModifierState?.centered}set shapeResult(e){this._set("shapeResult",e),e?"center"in e?(this._radiusField?.show(),this._xSizeField?.hide(),this._ySizeField?.hide(),this._areaField?.show()):"midpoints"in e&&e.midpoints&&(this._radiusField?.hide(),this._xSizeField?.show(),this._ySizeField?.show(),this._areaField?.show()):(this._xSizeField?.hide(),this._ySizeField?.hide(),this._radiusField?.hide(),this._areaField?.hide());const t=e?.geometry,i=this._session;if(i&&t){const e=t.curveRings??t.rings,s=e?.at(0);s&&i.appendOrReplacePart(u,s)}}start(e){super.start(e),e.setGlobalState("segmentLabelsDisabled","circle"===this.shapeType||void 0),this._interactiveHandle??=e.createInteractiveHandle({defaultCaptureMode:"capture-when-engaged",selfSnappingEnabled:!1},{disableDefaultXYFields:!0}),this.addHandles([t(()=>[this._interactiveHandle?.outputMapPosition,this.effectiveCentered,this.effectiveUniform],([e,t,i])=>{if(!e||this._isComplete)return;const s=this._interactiveHandle?.outputMapPositionOfDragStart??e,r=s===e?null:e;this.shapeResult=this._generateShape(s,r,t,i)},i),t(()=>this._interactiveHandle?.dragging,(t,i)=>{t&&e.setGlobalState("drawAtFixedElevation",!0),!t&&i&&"grabbable-object"!==this._interactiveHandle?.captureMode&&e.requestComplete()},s)],this._ownHandlesKey),this._areaField??=this._context?.createMeasuredField({id:y,preset:"area",getMeasurementInput:()=>this.shapeResult?.geometry,measure:async(e,t)=>{if(!e)return null;const i=t.inputUnitInfos.area.unit;return this._context?.measureArea(e,c,"tooltip",i)},fieldProperties:{displayOrder:h.ShapeMeasurements}});const r=Symbol("Size-group");this._xSizeField??=this._context?.createMeasuredField({id:g,preset:"generic-length",getMeasurementInput:()=>this.shapeResult,measure:async(e,t)=>e&&"midpoints"in e&&e.midpoints?this._context?.measureDistance([e.midpoints?.left,e.midpoints?.right],m,"tooltip",t.inputUnitInfos.length.unit):null,fieldProperties:{displayOrder:h.Middle+1,displayGroup:r,title:e=>e.messages.sketch.size,readOnly:!0}}),this._ySizeField??=this._context?.createMeasuredField({id:_,preset:"generic-length",getMeasurementInput:()=>this.shapeResult,measure:async(e,t)=>e&&"midpoints"in e&&e.midpoints?this._context?.measureDistance([e.midpoints?.bottom,e.midpoints?.top],f,"tooltip",t.inputUnitInfos.length.unit):null,fieldProperties:{displayOrder:h.Middle+2,displayGroup:r,title:e=>e.messages.sketch.size,readOnly:!0}}),this._radiusField??=this._context?.createMeasuredField({id:S,preset:"radius",getMeasurementInput:()=>this.shapeResult,measure:async(e,t)=>{if(e&&"center"in e&&null!=e.center)return this._context?.measureDistance([e.center,e.edge],f,"tooltip",t.inputUnitInfos.length.unit)},fieldProperties:{displayOrder:h.Middle+1,readOnly:!0}})}_generateShape(e,t,i,s){const{shapeType:r}=this,{resolution:a}=this._context?.getViewInformation()??{},n=this._context?.getViewAlignedSurfaceCoordinateSystem(e);if(!n||null==a)return null;const h=[e.x,e.y],u=t&&[t.x,t.y];if(!u){const e=[[h,n.makeMapPoint(h[0]+48*a,h[1])],n,!0];return"rectangle"===r?o(...e):l(...e,void 0)}const c=[[h,u],n,i];return s?"circle"===r?l(...c,void 0):o(...c):"circle"===r?d(...c):p(...c)}};e([r()],v.prototype,"_interactiveHandle",void 0),e([r()],v.prototype,"_areaField",void 0),e([r()],v.prototype,"_xSizeField",void 0),e([r()],v.prototype,"_ySizeField",void 0),e([r()],v.prototype,"_radiusField",void 0),e([r()],v.prototype,"_globalModifierState",null),e([r()],v.prototype,"shapeType",void 0),e([r()],v.prototype,"defaultCentered",void 0),e([r()],v.prototype,"defaultUniform",void 0),e([r()],v.prototype,"helpMessageKey",null),e([r()],v.prototype,"effectiveUniform",null),e([r()],v.prototype,"effectiveCentered",null),e([r()],v.prototype,"shapeResult",null),v=e([a("esri.views.draw.plugins.ShapePlugin")],v);export{v as ShapePlugin};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import r from"../../../../core/ReactiveMap.js";import{property as i}from"../../../../core/accessorSupport/decorators.js";import{subclass as s}from"../../../../core/accessorSupport/decorators/subclass.js";let o=class extends t{constructor(e){super(e),this._drawAtFixedElevationOverrides=new r,this.preserveAspectRatio=!1,this.centered=!1}get drawAtFixedElevation(){return this._getDrawAtFixedElevation()}getGlobalState(){return{preserveAspectRatio:this.preserveAspectRatio,centered:this.centered,drawAtFixedElevation:this._getDrawAtFixedElevation()}}setCentered(e){this.centered=e}setPreserveAspectRatio(e){this.preserveAspectRatio=e}setGlobalState(e,t,r){"drawAtFixedElevation"===t&&this._setDrawAtFixedElevation(e,r)}clearPluginOverrides(e){this._drawAtFixedElevationOverrides.delete(e)}_setDrawAtFixedElevation(e,t){null==t?this._drawAtFixedElevationOverrides.delete(e):this._drawAtFixedElevationOverrides.set(e,t)}_getDrawAtFixedElevation(){const e=this.getPluginStack?.();if(!e)return!1;for(let t=e.length-1;t>=0;t--){const r=e.at(t),i=this._drawAtFixedElevationOverrides.get(r);if(null!=i)return i}return!1}};e([i({constructOnly:!0})],o.prototype,"getPluginStack",void 0),e([i()],o.prototype,"preserveAspectRatio",void 0),e([i()],o.prototype,"centered",void 0),e([i()],o.prototype,"drawAtFixedElevation",null),o=e([s("esri.views.draw.support.managers.GlobalStateManager")],o);export{o as GlobalStateManager};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import s from"../../../../core/ReactiveMap.js";import{property as r}from"../../../../core/accessorSupport/decorators.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";let a=class extends t{constructor(e){super(e),this._drawAtFixedElevationOverrides=new s,this._segmentLabelsDisabledOverrides=new s,this.preserveAspectRatio=!1,this.centered=!1}get drawAtFixedElevation(){return this._getDrawAtFixedElevation()}get segmentLabelsDisabled(){return this._getSegmentLabelsDisabled()}getGlobalState(){return{preserveAspectRatio:this.preserveAspectRatio,centered:this.centered,drawAtFixedElevation:this._getDrawAtFixedElevation(),segmentLabelsDisabled:this._getSegmentLabelsDisabled()}}setCentered(e){this.centered=e}setPreserveAspectRatio(e){this.preserveAspectRatio=e}setGlobalState(e,t,s){"drawAtFixedElevation"===t?this._setDrawAtFixedElevation(e,s):"segmentLabelsDisabled"===t&&this._setSegmentLabelsDisabled(e,s)}clearPluginOverrides(e){this._drawAtFixedElevationOverrides.delete(e),this._segmentLabelsDisabledOverrides.delete(e)}_setDrawAtFixedElevation(e,t){null==t?this._drawAtFixedElevationOverrides.delete(e):this._drawAtFixedElevationOverrides.set(e,t)}_setSegmentLabelsDisabled(e,t){null==t?this._segmentLabelsDisabledOverrides.delete(e):this._segmentLabelsDisabledOverrides.set(e,t)}_getDrawAtFixedElevation(){const e=this.getPluginStack?.();if(!e)return!1;for(let t=e.length-1;t>=0;t--){const s=e.at(t),r=this._drawAtFixedElevationOverrides.get(s);if(null!=r)return r}return!1}_getSegmentLabelsDisabled(){const e=this.getPluginStack?.();if(!e)return!1;for(let t=e.length-1;t>=0;t--){const s=e.at(t),r=this._segmentLabelsDisabledOverrides.get(s);if(null!=r)return r}return!1}};e([r({constructOnly:!0})],a.prototype,"getPluginStack",void 0),e([r()],a.prototype,"preserveAspectRatio",void 0),e([r()],a.prototype,"centered",void 0),e([r()],a.prototype,"drawAtFixedElevation",null),e([r()],a.prototype,"segmentLabelsDisabled",null),a=e([i("esri.views.draw.support.managers.GlobalStateManager")],a);export{a as GlobalStateManager};
@@ -351,6 +351,15 @@ export interface GlobalState {
351
351
  * @internal
352
352
  */
353
353
  drawAtFixedElevation: boolean;
354
+ /**
355
+ * Indicates whether segment labels should be disabled. This should be
356
+ * used when segment labels would be inappropriate for the plugin.
357
+ * For example, when drawing a false circle, where you don't want to
358
+ * emphasize individual segments.
359
+ *
360
+ * @internal
361
+ */
362
+ segmentLabelsDisabled: boolean;
354
363
  }
355
364
 
356
365
  /**
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../Color.js";import{onLocaleChange as s}from"../../intl.js";import o from"../../core/Accessor.js";import{createTask as r}from"../../core/asyncUtils.js";import{multiplyOpacity as i,getContrast as n}from"../../core/colorUtils.js";import{makeHandle as a}from"../../core/handleUtils.js";import"../../core/has.js";import{getOrCreateMapValue as l}from"../../core/MapUtils.js";import{deg2rad as d}from"../../core/mathUtils.js";import{debounce as c}from"../../core/promiseUtils.js";import{formatLength as p}from"../../core/quantityFormatUtils.js";import{on as m}from"../../core/reactiveUtils.js";import{createScreenPointArray as h}from"../../core/screenUtils.js";import{getMetersPerUnit as u,getMetersPerVerticalUnitForSR as f}from"../../core/units.js";import{property as g,subclass as _}from"../../core/accessorSupport/decorators.js";import{squaredDistance as b,set as x,normalize as y,scale as v,add as U,lerp as j}from"../../core/libs/gl-matrix-2/math/vec2.js";import{create as L}from"../../core/libs/gl-matrix-2/factories/vec2f64.js";import{clone as I}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{isVec3 as k}from"../../core/libs/gl-matrix-2/types/vec3.js";import{UpdatingHandles as C}from"../../core/support/UpdatingHandles.js";import w from"../../geometry/Polyline.js";import{isClockwise as P}from"../../geometry/support/coordsUtils.js";import{getEndpoint as T,isCoordinate as H,cloneCurve as M}from"../../geometry/support/curves/curveUtils.js";import{interpolate2D as D}from"../../geometry/support/curves/interpolateCurve.js";import{fetchMessageBundle as O}from"../../intl/messages.js";import{getConvertedElevationFromVector as S,absoluteHeightElevationInfo as R}from"../../support/elevationInfoUtils.js";import{getDefaultUnitForView as G}from"../../support/getDefaultUnitForView.js";import A from"../overlay/TextOverlayItem.js";import{MeasurementWorkerHandle as V}from"../support/MeasurementWorkerHandle.js";const W=3025,q={default:15,far:25};let z=class extends o{constructor(e){super(e),this.context=null,this.stagedVertex=null,this.visible=!0,this.edgeDistance="default",this._updatingHandles=new C,this._messageUnitsTask=null,this._labelInfos=[],this._nextLabelIndex=0,this._debouncedLabelUpdates=new Map,this._measurementWorker=new V({preloadGeodetic:!0})}initialize(){this.addHandles([this._updatingHandles.add(()=>[null!=this.context&&this.getCameraOrExtent(this.context),this.visible,this._edgeDistancePixels,this.stagedVertex,this._messagesUnits],()=>this._update()),m(()=>this.context?.editGeometryOperations,["vertex-add","vertex-remove"],()=>this._update()),m(()=>this.context?.editGeometryOperations,"vertex-update",e=>this._update(e.vertices)),this._updatingHandles.add(()=>this._colors,e=>this._updateStyle(e)),s(()=>this._refreshMessages()),a(()=>this._messageUnitsTask?.abort())]),this._refreshMessages()}destroy(){for(this._nextLabelIndex=0;this._labelInfos.length;)this._destroyLabel(this._labelInfos.pop());this._measurementWorker.destroy(),this._updatingHandles.destroy()}get updating(){return!this._messageUnitsTask?.finished||this._updatingHandles.updating}get test(){}get _messagesUnits(){return this._messageUnitsTask?.value}get _edgeDistancePixels(){return q[this.edgeDistance]}get _colors(){const e=this.context?.view.effectiveTheme.textColor??t.fromArray([255,255,255]);return{textColor:e,backgroundColor:i(n(e,160),.6)}}_update(e){if(this.destroyed)return;this._nextLabelIndex=0;const{context:t,stagedVertex:s}=this;if(!t)return this._destroyUnusedLabels();const o=t.editGeometryOperations.data,{parts:r,geometry:i,coordinateHelper:n}=o;if(!i)return this._destroyUnusedLabels();const a=r.length;for(let l=0;l<a;++l){const r=this.getRing(i,o,s,n,l),d=r.map(e=>k(e)?e:n.arrayToXYZ(T(e)));if(r.length<2||!F(r,t.view,t.elevationInfo,n.spatialReference))continue;const c=1===a&&!P(d);let p=B,m=E;this.toScreenPointArray(t,d[0],p);for(let s=1;s<r.length;++s){const o=d[s-1],i=d[s],n=r[s];this.toScreenPointArray(t,i,m);const a=s===d.length-1,h=!(!e?.length||e.some(({index:e,part:t})=>t.index===l&&(e===s-1||e===s||a&&0===e)));this._addLabel(t,o,p,i,k(n)?null:n,m,c,h),[p,m]=[m,p]}}this._destroyUnusedLabels()}_updateStyle({textColor:e,backgroundColor:t}){const s=this._nextLabelIndex,o=this._labelInfos;for(let r=0;r<s;++r){const{label:s}=o[r];s.textColor=e,s.backgroundColor=t}}_updateLabelMeasurement(e,t,s,o,r){return l(this._debouncedLabelUpdates,o,()=>c(async(e,t,s,o,r)=>{const{spatialReference:i,coordinateHelper:n}=e.editGeometryOperations.data,a=!r||H(r),l=await(a?this._measurementWorker.autoDistance2DBetweenPoints(n.arrayToPoint(t),n.arrayToPoint(s)):this._measurementWorker.autoLength2D(new w({spatialReference:i,curvePaths:[[[t[0],t[1]],r]]})));if(o.destroyed)return;const d=this._messagesUnits,c=G(e.view);o.text=null!=d&&null!=l?p(d,l,c):""}))(e,I(t),I(s),o,r?M(r):void 0)}_addLabel(e,t,s,o,r,i,n,a=!1){const{label:l,wasReused:d}=this._getOrCreateLabel(e);if(!this.visible||b(s,i)<W)return void(l.visible=!1);const{coordinateHelper:c}=e.editGeometryOperations.data;a&&d||this._updatingHandles.consumePromise(this._updateLabelMeasurement(e,t,o,l,r)),l.visible=!0;const p=i[0]-s[0],m=i[1]-s[1];if(n?x(Y,-m,p):x(Y,m,-p),y(Y,Y),v(Y,Y,this._edgeDistancePixels),r&&!H(r)){const s=c.arrayToXYZ(D(t,r,.5)),o=this.toScreenPointArray(e,s);U(Z,o,Y)}else j(Z,s,i,.5),U(Z,Z,Y);l.position=[Z[0],Z[1]],Math.abs(Y[0])>Math.abs(Y[1])?l.anchor=Y[0]>0?"left":"right":l.anchor=-Y[1]<0?"top":"bottom"}_getOrCreateLabel(e){const t=this._labelInfos.length>this._nextLabelIndex,{textColor:s,backgroundColor:o}=this._colors;if(t){const e=this._labelInfos[this._nextLabelIndex++],{label:t}=e;return t.textColor=s,t.backgroundColor=o,e.wasReused=!0,e}const r=new A({anchor:"center",fontSize:8,textColor:s,backgroundColor:o});e.view.overlay?.items.add(r);const i={label:r,wasReused:!1};return this._labelInfos.push(i),this._nextLabelIndex=this._labelInfos.length,i}_destroyUnusedLabels(){for(;this._labelInfos.length>this._nextLabelIndex;)this._destroyLabel(this._labelInfos.pop())}_destroyLabel({label:e}){this.context?.view.overlay?.items.remove(e),e.destroy(),this._debouncedLabelUpdates.delete(e)}_refreshMessages(){this._messageUnitsTask?.abort(),this._messageUnitsTask=r(()=>O("esri/core/t9n/Units"))}};function F(e,t,s,o){if("2d"===t.type)return!0;const r=u(o)??1,i=f(o),n=e=>S(t,e,o,s,R)??0;for(let a=1;a<e.length;++a){const t=e[a-1],s=e[a];if(!k(t)||!k(s))return!1;const o=(s[0]-t[0])*r,l=(s[1]-t[1])*r,d=(n(s)-n(t))*i;if(Math.abs(d)/Math.sqrt(o*o+l*l)>X)return!1}return!0}e([g()],z.prototype,"context",void 0),e([g()],z.prototype,"stagedVertex",void 0),e([g()],z.prototype,"visible",void 0),e([g()],z.prototype,"edgeDistance",void 0),e([g()],z.prototype,"updating",null),e([g()],z.prototype,"_messageUnitsTask",void 0),e([g()],z.prototype,"_messagesUnits",null),e([g()],z.prototype,"_edgeDistancePixels",null),e([g()],z.prototype,"_colors",null),z=e([_("esri.views.interactive.SegmentLabels")],z);const X=d(5),Y=L(),Z=L(),B=h(),E=h();export{z as SegmentLabels};
2
+ import{__decorate as e}from"tslib";import t from"../../Color.js";import{onLocaleChange as s}from"../../intl.js";import o from"../../core/Accessor.js";import{createTask as r}from"../../core/asyncUtils.js";import{multiplyOpacity as i,getContrast as a}from"../../core/colorUtils.js";import{makeHandle as n}from"../../core/handleUtils.js";import"../../core/has.js";import{getOrCreateMapValue as l}from"../../core/MapUtils.js";import{deg2rad as d}from"../../core/mathUtils.js";import{debounce as c}from"../../core/promiseUtils.js";import{formatLength as p}from"../../core/quantityFormatUtils.js";import{on as m}from"../../core/reactiveUtils.js";import{createScreenPointArray as h}from"../../core/screenUtils.js";import{getMetersPerUnit as u,getMetersPerVerticalUnitForSR as f}from"../../core/units.js";import{property as g,subclass as _}from"../../core/accessorSupport/decorators.js";import{squaredDistance as b,set as x,normalize as y,scale as v,add as U,lerp as j}from"../../core/libs/gl-matrix-2/math/vec2.js";import{create as L}from"../../core/libs/gl-matrix-2/factories/vec2f64.js";import{clone as I}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{isVec3 as k}from"../../core/libs/gl-matrix-2/types/vec3.js";import{UpdatingHandles as C}from"../../core/support/UpdatingHandles.js";import w from"../../geometry/Polyline.js";import{isClockwise as P}from"../../geometry/support/coordsUtils.js";import{getEndpoint as T,isCoordinate as H,cloneCurve as M}from"../../geometry/support/curves/curveUtils.js";import{interpolate2D as D}from"../../geometry/support/curves/interpolateCurve.js";import{fetchMessageBundle as O}from"../../intl/messages.js";import{getConvertedElevationFromVector as S,absoluteHeightElevationInfo as R}from"../../support/elevationInfoUtils.js";import{getDefaultUnitForView as G}from"../../support/getDefaultUnitForView.js";import A from"../overlay/TextOverlayItem.js";import{MeasurementWorkerHandle as V}from"../support/MeasurementWorkerHandle.js";const W=3025,N={default:15,far:25};let q=class extends o{constructor(e){super(e),this.context=null,this.stagedVertex=null,this.visible=!0,this.edgeDistance="default",this._updatingHandles=new C,this._messageUnitsTask=null,this._labelInfos=[],this._nextLabelIndex=0,this._debouncedLabelUpdates=new Map,this._measurementWorker=new V({preloadGeodetic:!0})}initialize(){this.addHandles([this._updatingHandles.add(()=>[null!=this.context&&this.getCameraOrExtent(this.context),this.visible,this._edgeDistancePixels,this.stagedVertex,this._messagesUnits],()=>this._update()),m(()=>this.context?.editGeometryOperations,["vertex-add","vertex-remove"],()=>this._update()),m(()=>this.context?.editGeometryOperations,"vertex-update",e=>this._update(e.vertices)),this._updatingHandles.add(()=>this._colors,e=>this._updateStyle(e)),s(()=>this._refreshMessages()),n(()=>this._messageUnitsTask?.abort())]),this._refreshMessages()}destroy(){for(this._nextLabelIndex=0;this._labelInfos.length;)this._destroyLabel(this._labelInfos.pop());this._measurementWorker.destroy(),this._updatingHandles.destroy()}get updating(){return!this._messageUnitsTask?.finished||this._updatingHandles.updating}get test(){}get _messagesUnits(){return this._messageUnitsTask?.value}get _edgeDistancePixels(){return N[this.edgeDistance]}get _colors(){const e=this.context?.view.effectiveTheme.textColor??t.fromArray([255,255,255]);return{textColor:e,backgroundColor:i(a(e,160),.6)}}_update(e){if(this.destroyed)return;this._nextLabelIndex=0;const{context:t,stagedVertex:s}=this;if(!t)return this._destroyUnusedLabels();const o=t.editGeometryOperations.data,{parts:r,geometry:i,coordinateHelper:a}=o;if(!i)return this._destroyUnusedLabels();const n=r.length;for(let l=0;l<n;++l){const r=this.getRing(i,o,s,a,l),d=r.map(e=>k(e)?e:a.arrayToXYZ(T(e)));if(r.length<2||!z(r,t.view,t.elevationInfo,a.spatialReference))continue;const c=1===n&&!P(d);let p=Z,m=B;this.toScreenPointArray(t,d[0],p);for(let s=1;s<r.length;++s){const o=d[s-1],i=d[s],a=r[s];this.toScreenPointArray(t,i,m);const n=s===d.length-1,h=!(!e?.length||e.some(({index:e,part:t})=>t.index===l&&(e===s-1||e===s||n&&0===e)));this._addLabel(t,o,p,i,k(a)?null:a,m,c,h),[p,m]=[m,p]}}this._destroyUnusedLabels()}_updateStyle({textColor:e,backgroundColor:t}){const s=this._nextLabelIndex,o=this._labelInfos;for(let r=0;r<s;++r){const{label:s}=o[r];s.textColor=e,s.backgroundColor=t}}_updateLabelMeasurement(e,t,s,o,r){return l(this._debouncedLabelUpdates,o,()=>c(async(e,t,s,o,r)=>{const{spatialReference:i,coordinateHelper:a}=e.editGeometryOperations.data,n=!r||H(r),l=await(n?this._measurementWorker.autoDistance2DBetweenPoints(a.arrayToPoint(t),a.arrayToPoint(s)):this._measurementWorker.autoLength2D(new w({spatialReference:i,curvePaths:[[[t[0],t[1]],r]]})));if(o.destroyed)return;const d=this._messagesUnits,c=G(e.view);o.text=null==d||null==l||Number.isNaN(l.value)?"":p(d,l,c)}))(e,I(t),I(s),o,r?M(r):void 0)}_addLabel(e,t,s,o,r,i,a,n=!1){const{label:l,wasReused:d}=this._getOrCreateLabel(e);if(!this.visible||b(s,i)<W)return void(l.visible=!1);const{coordinateHelper:c}=e.editGeometryOperations.data;n&&d||this._updatingHandles.consumePromise(this._updateLabelMeasurement(e,t,o,l,r)),l.visible=!0;const p=i[0]-s[0],m=i[1]-s[1];if(a?x(X,-m,p):x(X,m,-p),y(X,X),v(X,X,this._edgeDistancePixels),r&&!H(r)){const s=c.arrayToXYZ(D(t,r,.5)),o=this.toScreenPointArray(e,s);U(Y,o,X)}else j(Y,s,i,.5),U(Y,Y,X);l.position=[Y[0],Y[1]],Math.abs(X[0])>Math.abs(X[1])?l.anchor=X[0]>0?"left":"right":l.anchor=-X[1]<0?"top":"bottom"}_getOrCreateLabel(e){const t=this._labelInfos.length>this._nextLabelIndex,{textColor:s,backgroundColor:o}=this._colors;if(t){const e=this._labelInfos[this._nextLabelIndex++],{label:t}=e;return t.textColor=s,t.backgroundColor=o,e.wasReused=!0,e}const r=new A({anchor:"center",fontSize:8,textColor:s,backgroundColor:o});e.view.overlay?.items.add(r);const i={label:r,wasReused:!1};return this._labelInfos.push(i),this._nextLabelIndex=this._labelInfos.length,i}_destroyUnusedLabels(){for(;this._labelInfos.length>this._nextLabelIndex;)this._destroyLabel(this._labelInfos.pop())}_destroyLabel({label:e}){this.context?.view.overlay?.items.remove(e),e.destroy(),this._debouncedLabelUpdates.delete(e)}_refreshMessages(){this._messageUnitsTask?.abort(),this._messageUnitsTask=r(()=>O("esri/core/t9n/Units"))}};function z(e,t,s,o){if("2d"===t.type)return!0;const r=u(o)??1,i=f(o),a=e=>S(t,e,o,s,R)??0;for(let n=1;n<e.length;++n){const t=e[n-1],s=e[n];if(!k(t)||!k(s))return!1;const o=(s[0]-t[0])*r,l=(s[1]-t[1])*r,d=(a(s)-a(t))*i;if(Math.abs(d)/Math.sqrt(o*o+l*l)>F)return!1}return!0}e([g()],q.prototype,"context",void 0),e([g()],q.prototype,"stagedVertex",void 0),e([g()],q.prototype,"visible",void 0),e([g()],q.prototype,"edgeDistance",void 0),e([g()],q.prototype,"updating",null),e([g()],q.prototype,"_messageUnitsTask",void 0),e([g()],q.prototype,"_messagesUnits",null),e([g()],q.prototype,"_edgeDistancePixels",null),e([g()],q.prototype,"_colors",null),q=e([_("esri.views.interactive.SegmentLabels")],q);const F=d(5),X=L(),Y=L(),Z=h(),B=h();export{q as SegmentLabels};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- class e{constructor(e){this._objectType=e,this._active=new Map,Error.stackTraceLimit=30}get _stack(){const e=(new Error).stack.split("\n");return e.shift(),e.shift(),e.shift(),e.join("\n")}add(e){this._active.set(e,new t(this._stack))}remove(e){this._active.delete(e)}addReference(e){const t=this._active.get(e);t&&t.retains.push(this._stack)}removeReference(e){const t=this._active.get(e);t&&t.releases.push(this._stack)}resetLog(){const e=new Map;let t="";this._active.forEach((s,{usedMemory:r})=>{e.has(s.from)||(e.set(s.from,new Map),s.retains.length>0&&(t+=` First reference count mismatch:\n Retain:\n ${s.retains.join("\n\n ")}\n\n Release: ${s.releases.join("\n\n ")}\n`));const n=e.get(s.from);n.set(r??0,n.get(r??0)??1)}),this._active.clear();let s=0;const r=new Array;return e.forEach((e,t)=>{let n=0;e.forEach((e,t)=>n+=e*t),e.set(-1,n),s+=n,r.push([t,e])}),e.clear(),r.sort((e,t)=>t[1].get(-1)-e[1].get(-1)),r.reduce((e,[t,s])=>{const r=Math.round(s.get(-1)/1024);s.delete(-1);return e+=` ${r}KB from ${Array.from(s.values()).reduce((e,t)=>e+t,0)} allocations at ${t}\n`},`Total ${this._objectType} memory: ${Math.round(s/1024)}KB\n${t}`)}}class t{constructor(e){this.from=e,this.retains=new Array,this.releases=new Array}}export{e as AllocationTracer};
2
+ class e{constructor(e){this._objectType=e,this._active=new Map,Error.stackTraceLimit=30}get _stack(){const e=(new Error).stack.split("\n");return e.shift(),e.shift(),e.shift(),e.join("\n")}add(e){this._active.set(e,new t(this._stack))}remove(e){this._active.delete(e)}addReference(e){const t=this._active.get(e);t&&t.retains.push(this._stack)}removeReference(e){const t=this._active.get(e);t&&t.releases.push(this._stack)}resetLog(){const e=new Map;let t="";this._active.forEach((s,{usedMemory:r})=>{e.has(s.from)||(e.set(s.from,new Map),s.retains.length>0&&(t+=` First reference count mismatch:\n Retain:\n ${s.retains.join("\n\n ")}\n\n Release: ${s.releases.join("\n\n ")}\n`));const n=e.get(s.from),a=r??0;n.set(a,(n.get(a)??0)+1)}),this._active.clear();let s=0;const r=new Array;return e.forEach((e,t)=>{let n=0;e.forEach((e,t)=>n+=e*t),e.set(-1,n),s+=n,r.push([t,e])}),e.clear(),r.sort((e,t)=>t[1].get(-1)-e[1].get(-1)),r.reduce((e,[t,s])=>{const r=Math.round(s.get(-1)/1024);s.delete(-1);return e+=` ${r}KB from ${Array.from(s.values()).reduce((e,t)=>e+t,0)} allocations at ${t}\n`},`Total ${this._objectType} memory: ${Math.round(s/1024)}KB\n${t}`)}}class t{constructor(e){this.from=e,this.retains=new Array,this.releases=new Array}}export{e as AllocationTracer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import has from"../../core/has.js";import{webglValidateShadersEnabled as t,webglDebugEnabled as e}from"./checkWebGLError.js";import{ResourceType as o}from"./enums.js";import{transpileShader as i}from"./ShaderTranspiler.js";const n=4294967295,r=!!has("esri-tests-disable-gpu-memory-measurements");class s{constructor(e,s,m,h,f=new Map,l=[]){this._context=e,this._compiled=!1,this._linesOfCode=0,this._nameToUniformLocation=new Map,this._nameToUniform1=new Map,this._nameToUniform1v=new Map,this._nameToUniform2=new Map,this._nameToUniform3=new Map,this._nameToUniform4=new Map,this._nameToUniformMatrix3=new Map,this._nameToUniformMatrix4=new Map,e||console.error("RenderingContext isn't initialized!"),0===s.length&&console.error("Shaders source should not be empty!"),s=i(s,35633),m=i(m,35632),this._vShader=a(this._context,35633,s),this._fShader=a(this._context,35632,m),c.enabled&&(this._linesOfCode=s.match(/\n/g).length+m.match(/\n/g).length+2,e.instanceCounter.increment(o.LinesOfCode,this._vShader,this._linesOfCode)),this._vShader&&this._fShader||console.error("Error loading shaders!"),e.instanceCounter.increment(o.Shader,this),t()&&(this.vertexShader=s,this.fragmentShader=m),this.usedMemory=r?0:s.length+m.length;const _=this._context.gl,g=_.createProgram();_.attachShader(g,this._vShader),_.attachShader(g,this._fShader),h.forEach((t,e)=>_.bindAttribLocation(g,t,e)),this.hasTransformFeedbackVaryings=!!l?.length,this.hasTransformFeedbackVaryings&&_.transformFeedbackVaryings(g,l,_.SEPARATE_ATTRIBS),_.linkProgram(g),t()&&!_.getProgramParameter(g,_.LINK_STATUS)&&console.error(`Could not link shader\nvalidated: ${_.getProgramParameter(g,_.VALIDATE_STATUS)}, gl error ${_.getError()}, vertex: ${_.getShaderParameter(this._vShader,_.COMPILE_STATUS)}, fragment: ${_.getShaderParameter(this._fShader,_.COMPILE_STATUS)}, info log: ${_.getProgramInfoLog(g)}, vertex source: ${this.vertexShader}, fragment source: ${this.fragmentShader}`);for(const[t,o]of f){const e=_.getUniformBlockIndex(g,t);e<n&&_.uniformBlockBinding(g,e,o)}this._glName=g,e.instanceCounter.increment(o.Program,this)}get glName(){return this._glName}get hasGLName(){return null!=this._glName}get compiled(){return!!this._compiled||(this._context.capabilities.parallelShaderCompile&&null!=this.glName?(this._compiled=!!this._context.gl.getProgramParameter(this.glName,37297),this._compiled):(this._compiled=!0,!0))}dispose(){const t=this._context.gl,e=this._context.instanceCounter;this._nameToUniformLocation.forEach(t=>t&&e.decrement(o.Uniform,t)),this._nameToUniformLocation.clear(),this._vShader&&(this._linesOfCode>0&&(e.decrement(o.LinesOfCode,this._vShader,this._linesOfCode),this._linesOfCode=0),t.deleteShader(this._vShader),this._vShader=null,e.decrement(o.Shader,this)),this._fShader&&(t.deleteShader(this._fShader),this._fShader=null),this._glName&&(t.deleteProgram(this._glName),this._glName=null,e.decrement(o.Program,this))}_getUniformLocation(t){const e=this._nameToUniformLocation.get(t);if(void 0!==e)return e;if(this.glName){const e=this._context.gl.getUniformLocation(this.glName,t);return this._nameToUniformLocation.set(t,e),e&&this._context.instanceCounter.increment(o.Uniform,e),e}return null}hasUniform(t){return null!=this._getUniformLocation(t)}setUniform1i(t,e,o){l(o,e);const i=this._nameToUniform1.get(t);void 0!==i&&e===i||(this._context.gl.uniform1i(this._getUniformLocation(t),e),this._nameToUniform1.set(t,e))}setUniform1iv(t,e,o){_(o,e),f(this._nameToUniform1v,t,e)&&this._context.gl.uniform1iv(this._getUniformLocation(t),e)}setUniform2iv(t,e,o){_(o,e),f(this._nameToUniform2,t,e)&&this._context.gl.uniform2iv(this._getUniformLocation(t),e)}setUniform3iv(t,e,o){_(o,e),f(this._nameToUniform3,t,e)&&this._context.gl.uniform3iv(this._getUniformLocation(t),e)}setUniform4iv(t,e,o){_(o,e),f(this._nameToUniform4,t,e)&&this._context.gl.uniform4iv(this._getUniformLocation(t),e)}setUniform1f(t,e,o){l(o,e);const i=this._nameToUniform1.get(t);void 0!==i&&e===i||(this._context.gl.uniform1f(this._getUniformLocation(t),e),this._nameToUniform1.set(t,e))}setUniform1fv(t,e,o){_(o,e),f(this._nameToUniform1v,t,e)&&this._context.gl.uniform1fv(this._getUniformLocation(t),e)}setUniform2f(t,e,o,i){l(i,e,o);const n=this._nameToUniform2.get(t);void 0===n?(this._context.gl.uniform2f(this._getUniformLocation(t),e,o),this._nameToUniform2.set(t,[e,o])):e===n[0]&&o===n[1]||(this._context.gl.uniform2f(this._getUniformLocation(t),e,o),n[0]=e,n[1]=o)}setUniform2fv(t,e,o){_(o,e),f(this._nameToUniform2,t,e)&&this._context.gl.uniform2fv(this._getUniformLocation(t),e)}setUniform3f(t,e,o,i,n){l(n,e,o,i);const r=this._nameToUniform3.get(t);void 0===r?(this._context.gl.uniform3f(this._getUniformLocation(t),e,o,i),this._nameToUniform3.set(t,[e,o,i])):e===r[0]&&o===r[1]&&i===r[2]||(this._context.gl.uniform3f(this._getUniformLocation(t),e,o,i),r[0]=e,r[1]=o,r[2]=i)}setUniform3fv(t,e,o){_(o,e);const i=this._getUniformLocation(t);null!=i&&f(this._nameToUniform3,t,e)&&this._context.gl.uniform3fv(i,e)}setUniform4f(t,e,o,i,n,r){l(r,e,o,i,n);const s=this._nameToUniform4.get(t);void 0===s?(this._context.gl.uniform4f(this._getUniformLocation(t),e,o,i,n),this._nameToUniform4.set(t,[e,o,i,n])):void 0!==s&&e===s[0]&&o===s[1]&&i===s[2]&&n===s[3]||(this._context.gl.uniform4f(this._getUniformLocation(t),e,o,i,n),s[0]=e,s[1]=o,s[2]=i,s[3]=n)}setUniform4fv(t,e,o){_(o,e);const i=this._getUniformLocation(t);null!=i&&f(this._nameToUniform4,t,e)&&this._context.gl.uniform4fv(i,e)}setUniformMatrix3fv(t,e,o=!1,i){_(i,e);const n=this._getUniformLocation(t);null!=n&&f(this._nameToUniformMatrix3,t,e)&&this._context.gl.uniformMatrix3fv(n,o,e)}setUniformMatrix4fv(t,e,o=!1,i){_(i,e);const n=this._getUniformLocation(t);if(null!=n){const i=this._nameToUniformMatrix4,r=i.get(t);let s=!1;if(r){const o=e.length;if(r.length!==o)i.set(t,Array.from(e)),s=!0;else for(let t=0;t<o;++t){const i=e[t];if(r[t]!==i){for(r[t]=i;t<o;++t)r[t]=e[t];s=!0;break}}}else i.set(t,Array.from(e)),s=!0;s&&this._context.gl.uniformMatrix4fv(n,o,e)}}setUniformMatrices4fv(t,e,o=!1,i){_(i,e);const n=this._getUniformLocation(t);null!=n&&f(this._nameToUniformMatrix4,t,e)&&this._context.gl.uniformMatrix4fv(n,o,e)}stop(){}}function a(e,o,i){const n=e.gl,r=n.createShader(o);return n.shaderSource(r,i),n.compileShader(r),t()&&!n.getShaderParameter(r,n.COMPILE_STATUS)&&(console.error("Compile error in ".concat(35633===o?"vertex":"fragment"," shader")),console.error(n.getShaderInfoLog(r)),console.error(m(i))),r}function m(t){let e=2;return t.replaceAll("\n",()=>"\n"+h(e++)+":")}function h(t){return t>=1e3?t.toString():(" "+t).slice(-3)}function f(t,e,o){const i=t.get(e);if(!i)return t.set(e,Array.from(o)),!0;const n=o.length;if(i.length!==n)return t.set(e,Array.from(o)),!0;for(let r=0;r<n;++r){const t=o[r];if(i[r]!==t){for(i[r]=t;r<n;++r)i[r]=o[r];return!0}}return!1}const c={enabled:!1},l=e()?(t,...e)=>_(t,e):()=>{},_=e()?(t,e)=>{if(t?.supportsNaN)return;const o=e.length;for(let i=0;i<o;++i){const t=e[i];Number.isNaN(t)&&console.error(`Got ${t} as uniform value from ${(new Error).stack}`)}}:()=>{};export{s as DisposableProgram,c as test};
2
+ import{numbersEquals as t}from"../../core/arrayUtils.js";import has from"../../core/has.js";import{webglValidateShadersEnabled as e,webglDebugEnabled as o}from"./checkWebGLError.js";import{ResourceType as i}from"./enums.js";import{transpileShader as n}from"./ShaderTranspiler.js";const r=4294967295,s=!!has("esri-tests-disable-gpu-memory-measurements");class a{constructor(t,o,a,h,f=new Map,c=[]){this._context=t,this._compiled=!1,this._linesOfCode=0,this._nameToUniformLocation=new Map,this._nameToUniform1=new Map,this._nameToUniform1v=new Map,this._nameToUniform2=new Map,this._nameToUniform3=new Map,this._nameToUniform4=new Map,this._nameToUniformMatrix3=new Map,this._nameToUniformMatrix4=new Map,t||console.error("RenderingContext isn't initialized!"),0===o.length&&console.error("Shaders source should not be empty!"),o=n(o,35633),a=n(a,35632),this._vShader=m(this._context,35633,o),this._fShader=m(this._context,35632,a),l.enabled&&(this._linesOfCode=o.match(/\n/g).length+a.match(/\n/g).length+2,t.instanceCounter.increment(i.LinesOfCode,this._vShader,this._linesOfCode)),this._vShader&&this._fShader||console.error("Error loading shaders!"),t.instanceCounter.increment(i.Shader,this),e()&&(this.vertexShader=o,this.fragmentShader=a),this.usedMemory=s?0:o.length+a.length;const _=this._context.gl,g=_.createProgram();_.attachShader(g,this._vShader),_.attachShader(g,this._fShader),h.forEach((t,e)=>_.bindAttribLocation(g,t,e)),this.hasTransformFeedbackVaryings=!!c?.length,this.hasTransformFeedbackVaryings&&_.transformFeedbackVaryings(g,c,_.SEPARATE_ATTRIBS),_.linkProgram(g),e()&&!_.getProgramParameter(g,_.LINK_STATUS)&&console.error(`Could not link shader\nvalidated: ${_.getProgramParameter(g,_.VALIDATE_STATUS)}, gl error ${_.getError()}, vertex: ${_.getShaderParameter(this._vShader,_.COMPILE_STATUS)}, fragment: ${_.getShaderParameter(this._fShader,_.COMPILE_STATUS)}, info log: ${_.getProgramInfoLog(g)}, vertex source: ${this.vertexShader}, fragment source: ${this.fragmentShader}`);for(const[e,i]of f){const t=_.getUniformBlockIndex(g,e);t<r&&_.uniformBlockBinding(g,t,i)}this._glName=g,t.instanceCounter.increment(i.Program,this)}get glName(){return this._glName}get hasGLName(){return null!=this._glName}get compiled(){return!!this._compiled||(this._context.capabilities.parallelShaderCompile&&null!=this.glName?(this._compiled=!!this._context.gl.getProgramParameter(this.glName,37297),this._compiled):(this._compiled=!0,!0))}dispose(){const t=this._context.gl,e=this._context.instanceCounter;this._nameToUniformLocation.forEach(t=>t&&e.decrement(i.Uniform,t)),this._nameToUniformLocation.clear(),this._vShader&&(this._linesOfCode>0&&(e.decrement(i.LinesOfCode,this._vShader,this._linesOfCode),this._linesOfCode=0),t.deleteShader(this._vShader),this._vShader=null,e.decrement(i.Shader,this)),this._fShader&&(t.deleteShader(this._fShader),this._fShader=null),this._glName&&(t.deleteProgram(this._glName),this._glName=null,e.decrement(i.Program,this))}_getUniformLocation(t){const e=this._nameToUniformLocation.get(t);if(void 0!==e)return e;if(this.glName){const e=this._context.gl.getUniformLocation(this.glName,t);return this._nameToUniformLocation.set(t,e),e&&this._context.instanceCounter.increment(i.Uniform,e),e}return null}hasUniform(t){return null!=this._getUniformLocation(t)}setUniform1i(t,e,o){_(o,e);const i=this._nameToUniform1.get(t);void 0!==i&&e===i||(this._context.gl.uniform1i(this._getUniformLocation(t),e),this._nameToUniform1.set(t,e))}setUniform1iv(t,e,o){g(o,e),c(this._nameToUniform1v,t,e)&&this._context.gl.uniform1iv(this._getUniformLocation(t),e)}setUniform2iv(t,e,o){g(o,e),c(this._nameToUniform2,t,e)&&this._context.gl.uniform2iv(this._getUniformLocation(t),e)}setUniform3iv(t,e,o){g(o,e),c(this._nameToUniform3,t,e)&&this._context.gl.uniform3iv(this._getUniformLocation(t),e)}setUniform4iv(t,e,o){g(o,e),c(this._nameToUniform4,t,e)&&this._context.gl.uniform4iv(this._getUniformLocation(t),e)}setUniform1f(t,e,o){_(o,e);const i=this._nameToUniform1.get(t);void 0!==i&&e===i||(this._context.gl.uniform1f(this._getUniformLocation(t),e),this._nameToUniform1.set(t,e))}setUniform1fv(t,e,o){g(o,e),c(this._nameToUniform1v,t,e)&&this._context.gl.uniform1fv(this._getUniformLocation(t),e)}setUniform2f(t,e,o,i){_(i,e,o);const n=this._nameToUniform2.get(t);void 0===n?(this._context.gl.uniform2f(this._getUniformLocation(t),e,o),this._nameToUniform2.set(t,[e,o])):e===n[0]&&o===n[1]||(this._context.gl.uniform2f(this._getUniformLocation(t),e,o),n[0]=e,n[1]=o)}setUniform2fv(t,e,o){g(o,e),c(this._nameToUniform2,t,e)&&this._context.gl.uniform2fv(this._getUniformLocation(t),e)}setUniform3f(t,e,o,i,n){_(n,e,o,i);const r=this._nameToUniform3.get(t);void 0===r?(this._context.gl.uniform3f(this._getUniformLocation(t),e,o,i),this._nameToUniform3.set(t,[e,o,i])):e===r[0]&&o===r[1]&&i===r[2]||(this._context.gl.uniform3f(this._getUniformLocation(t),e,o,i),r[0]=e,r[1]=o,r[2]=i)}setUniform3fv(t,e,o){g(o,e);const i=this._getUniformLocation(t);null!=i&&c(this._nameToUniform3,t,e)&&this._context.gl.uniform3fv(i,e)}setUniform4f(t,e,o,i,n,r){_(r,e,o,i,n);const s=this._nameToUniform4.get(t);void 0===s?(this._context.gl.uniform4f(this._getUniformLocation(t),e,o,i,n),this._nameToUniform4.set(t,[e,o,i,n])):void 0!==s&&e===s[0]&&o===s[1]&&i===s[2]&&n===s[3]||(this._context.gl.uniform4f(this._getUniformLocation(t),e,o,i,n),s[0]=e,s[1]=o,s[2]=i,s[3]=n)}setUniform4fv(t,e,o){g(o,e);const i=this._getUniformLocation(t);null!=i&&c(this._nameToUniform4,t,e)&&this._context.gl.uniform4fv(i,e)}setUniformMatrix3fv(t,e,o=!1,i){g(i,e);const n=this._getUniformLocation(t);null!=n&&c(this._nameToUniformMatrix3,t,e)&&this._context.gl.uniformMatrix3fv(n,o,e)}setUniformMatrix4fv(t,e,o=!1,i){g(i,e);const n=this._getUniformLocation(t);if(null!=n){const i=this._nameToUniformMatrix4,r=i.get(t);let s=!1;if(r){const o=e.length;if(r.length!==o)i.set(t,Array.from(e)),s=!0;else for(let t=0;t<o;++t){const i=e[t];if(r[t]!==i){for(r[t]=i;t<o;++t)r[t]=e[t];s=!0;break}}}else i.set(t,Array.from(e)),s=!0;s&&this._context.gl.uniformMatrix4fv(n,o,e)}}setUniformMatrices4fv(t,e,o=!1,i){g(i,e);const n=this._getUniformLocation(t);null!=n&&c(this._nameToUniformMatrix4,t,e)&&this._context.gl.uniformMatrix4fv(n,o,e)}stop(){}}function m(t,o,i){const n=t.gl,r=n.createShader(o);return n.shaderSource(r,i),n.compileShader(r),e()&&!n.getShaderParameter(r,n.COMPILE_STATUS)&&(console.error("Compile error in ".concat(35633===o?"vertex":"fragment"," shader")),console.error(n.getShaderInfoLog(r)),console.error(h(i))),r}function h(t){let e=2;return t.replaceAll("\n",()=>"\n"+f(e++)+":")}function f(t){return t>=1e3?t.toString():(" "+t).slice(-3)}function c(e,o,i){const n=e.get(o);return!t(n,i)&&(e.set(o,Array.from(i)),!0)}const l={enabled:!1},_=o()?(t,...e)=>g(t,e):()=>{},g=o()?(t,e)=>{if(t?.supportsNaN)return;const o=e.length;for(let i=0;i<o;++i){const t=e[i];Number.isNaN(t)&&console.error(`Got ${t} as uniform value from ${(new Error).stack}`)}}:()=>{};export{a as DisposableProgram,l as test};