@arcgis/core 5.0.0-next.86 → 5.0.0-next.88

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 (508) hide show
  1. package/Ground.js +1 -1
  2. package/Map.d.ts +4 -0
  3. package/WebLinkChart.d.ts +6 -3
  4. package/WebScene.js +1 -1
  5. package/analysis/ShadowCastAnalysis.d.ts +1 -0
  6. package/analysis/VolumeMeasurement/VolumeMeasurementDisplayUnits.d.ts +14 -2
  7. package/analysis/VolumeMeasurement/VolumeMeasurementDisplayUnits.js +1 -1
  8. package/applications/Components/OrientedImageryViewer/galleryUtils.d.ts +80 -0
  9. package/applications/Components/OrientedImageryViewer/galleryUtils.js +5 -0
  10. package/applications/Components/clipboard.d.ts +106 -0
  11. package/applications/Components/clipboard.js +5 -0
  12. package/assets/esri/core/libs/libtess/libtess-f32.wasm +0 -0
  13. package/assets/esri/core/libs/libtess/libtess-f64.wasm +0 -0
  14. package/assets/esri/core/t9n/Units.json +1 -1
  15. package/assets/esri/core/t9n/Units_ar.json +1 -1
  16. package/assets/esri/core/t9n/Units_bg.json +1 -1
  17. package/assets/esri/core/t9n/Units_bs.json +1 -1
  18. package/assets/esri/core/t9n/Units_ca.json +1 -1
  19. package/assets/esri/core/t9n/Units_cs.json +1 -1
  20. package/assets/esri/core/t9n/Units_da.json +1 -1
  21. package/assets/esri/core/t9n/Units_de.json +1 -1
  22. package/assets/esri/core/t9n/Units_el.json +1 -1
  23. package/assets/esri/core/t9n/Units_en.json +1 -1
  24. package/assets/esri/core/t9n/Units_es.json +1 -1
  25. package/assets/esri/core/t9n/Units_et.json +1 -1
  26. package/assets/esri/core/t9n/Units_fi.json +1 -1
  27. package/assets/esri/core/t9n/Units_fr.json +1 -1
  28. package/assets/esri/core/t9n/Units_he.json +1 -1
  29. package/assets/esri/core/t9n/Units_hr.json +1 -1
  30. package/assets/esri/core/t9n/Units_hu.json +1 -1
  31. package/assets/esri/core/t9n/Units_id.json +1 -1
  32. package/assets/esri/core/t9n/Units_it.json +1 -1
  33. package/assets/esri/core/t9n/Units_ja.json +1 -1
  34. package/assets/esri/core/t9n/Units_ko.json +1 -1
  35. package/assets/esri/core/t9n/Units_lt.json +1 -1
  36. package/assets/esri/core/t9n/Units_lv.json +1 -1
  37. package/assets/esri/core/t9n/Units_nl.json +1 -1
  38. package/assets/esri/core/t9n/Units_no.json +1 -1
  39. package/assets/esri/core/t9n/Units_pl.json +1 -1
  40. package/assets/esri/core/t9n/Units_pt-BR.json +1 -1
  41. package/assets/esri/core/t9n/Units_pt-PT.json +1 -1
  42. package/assets/esri/core/t9n/Units_ro.json +1 -1
  43. package/assets/esri/core/t9n/Units_ru.json +1 -1
  44. package/assets/esri/core/t9n/Units_sk.json +1 -1
  45. package/assets/esri/core/t9n/Units_sl.json +1 -1
  46. package/assets/esri/core/t9n/Units_sr.json +1 -1
  47. package/assets/esri/core/t9n/Units_sv.json +1 -1
  48. package/assets/esri/core/t9n/Units_th.json +1 -1
  49. package/assets/esri/core/t9n/Units_tr.json +1 -1
  50. package/assets/esri/core/t9n/Units_uk.json +1 -1
  51. package/assets/esri/core/t9n/Units_vi.json +1 -1
  52. package/assets/esri/core/t9n/Units_zh-CN.json +1 -1
  53. package/assets/esri/core/t9n/Units_zh-HK.json +1 -1
  54. package/assets/esri/core/t9n/Units_zh-TW.json +1 -1
  55. package/assets/esri/core/workers/RemoteClient.js +1 -1
  56. package/assets/esri/core/workers/chunks/{6298e71e6c480d6f46e3.js → 0276e689e1371b40cff3.js} +1 -1
  57. package/assets/esri/core/workers/chunks/045a9cc900bb4ac8afde.js +1 -0
  58. package/assets/esri/core/workers/chunks/048173088bbeb1f6b8b6.js +1 -0
  59. package/assets/esri/core/workers/chunks/0be8b9d9ef56c37e74c3.js +1 -0
  60. package/assets/esri/core/workers/chunks/0bef671165e64f90ac86.js +1 -0
  61. package/assets/esri/core/workers/chunks/0c025d2b0d3162b07feb.js +1 -0
  62. package/assets/esri/core/workers/chunks/0c4ed18d67dea0c99f01.js +1 -0
  63. package/assets/esri/core/workers/chunks/0e0208b87566f4470f1d.js +1 -0
  64. package/assets/esri/core/workers/chunks/{981f05b5ef6f9c3f7e8a.js → 0fc0fd7618ef25dd6b67.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{1facc1b45345a095b9a7.js → 149c4181eaea32e9ac15.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{f1e1666bede364c069fc.js → 15c180deb8d09127ad31.js} +1 -1
  67. package/assets/esri/core/workers/chunks/1616ee2f6dce0203f1d5.js +1 -0
  68. package/assets/esri/core/workers/chunks/21bb414cb0623ffad577.js +1 -0
  69. package/assets/esri/core/workers/chunks/21c84e014c73bd85f4a3.js +1 -0
  70. package/assets/esri/core/workers/chunks/262677294d8c653e2b0b.js +1 -0
  71. package/assets/esri/core/workers/chunks/{5139bbe8f94df01467c7.js → 28a6a59033baa44bafab.js} +1 -1
  72. package/assets/esri/core/workers/chunks/{c5d56b85d34026507902.js → 28c273f34ffde25cebc6.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{b7e40118b4d645e9f8e1.js → 2a12026f1ca9e8900a8b.js} +1 -1
  74. package/assets/esri/core/workers/chunks/2bc9f407f89d554a43ce.js +1 -0
  75. package/assets/esri/core/workers/chunks/2f21c5ae4fbe85c2792b.js +1 -0
  76. package/assets/esri/core/workers/chunks/3332ee9727874953523c.js +1 -0
  77. package/assets/esri/core/workers/chunks/{c477b0ce55211339c4cb.js → 33f44cc192c72064b5b6.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{1cf27708d17a4de75b68.js → 3672125daca3df24c8ab.js} +1 -1
  79. package/assets/esri/core/workers/chunks/37a607f3835ec6f60834.js +1 -0
  80. package/assets/esri/core/workers/chunks/{3ebd4cdafa7682062447.js → 39dd80c184ac48f877f1.js} +1 -1
  81. package/assets/esri/core/workers/chunks/3a3adf9b6502ad698aea.js +1 -0
  82. package/assets/esri/core/workers/chunks/{4a857a7f5e00dfab2b44.js → 3c663035cf872b66cb98.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{32b09ca094377a305881.js → 3d924488471601a17915.js} +1 -1
  84. package/assets/esri/core/workers/chunks/{743165f9bc4d85748a0d.js → 42b56932340b6d0bc712.js} +1 -1
  85. package/assets/esri/core/workers/chunks/4de93e9f91fd891ed96f.js +1 -0
  86. package/assets/esri/core/workers/chunks/4eb02a03956d1c9c77ee.js +1 -0
  87. package/assets/esri/core/workers/chunks/{15132d36e7ccbb3c009e.js → 555a252bdb87e340bd02.js} +1 -1
  88. package/assets/esri/core/workers/chunks/{5d791bfca20791d8e0af.js → 5670e430584f020a3530.js} +1 -1
  89. package/assets/esri/core/workers/chunks/{70df4331ed29d823bf38.js → 5b297353b058323f8080.js} +1 -1
  90. package/assets/esri/core/workers/chunks/5ef5dcca7c9b376f7f77.js +1 -0
  91. package/assets/esri/core/workers/chunks/{c12c095937b21e39ad3c.js → 614c63dae0158da0ed3d.js} +1 -1
  92. package/assets/esri/core/workers/chunks/{5734aefbce8b6425630c.js → 63b46983155b1672e07a.js} +1 -1
  93. package/assets/esri/core/workers/chunks/{8b575ac55bc396c0c477.js → 687677acc05b5e87effe.js} +1 -1
  94. package/assets/esri/core/workers/chunks/{1aee859eaffa54ef2515.js → 727321c615f35d708d46.js} +1 -1
  95. package/assets/esri/core/workers/chunks/731cab5887c05f221279.js +1 -0
  96. package/assets/esri/core/workers/chunks/779fe8ccc4041f0b65a0.js +1 -0
  97. package/assets/esri/core/workers/chunks/782c24211daacb47b0b2.js +1 -0
  98. package/assets/esri/core/workers/chunks/79067e7d1ebc46afd775.js +1 -0
  99. package/assets/esri/core/workers/chunks/7a454e4d6df3360e0ab9.js +1 -0
  100. package/assets/esri/core/workers/chunks/7da56ba34c81d2bbaf25.js +1 -0
  101. package/assets/esri/core/workers/chunks/{d8b72c6f5f9b2d013b7f.js → 824b45b04b4f4f91dbce.js} +1 -1
  102. package/assets/esri/core/workers/chunks/836d10ceb93ed19f0aa6.js +1 -0
  103. package/assets/esri/core/workers/chunks/{68d0bae1816061d96307.js → 837d39e70880e4310bda.js} +1 -1
  104. package/assets/esri/core/workers/chunks/{746190bb70aa78ba0bfc.js → 8936f9398414be26b83f.js} +4 -4
  105. package/assets/esri/core/workers/chunks/8bcb2180ecc88a39b317.js +1 -0
  106. package/assets/esri/core/workers/chunks/{e95f90d59041640727da.js → 8c5d827cbf8869defb87.js} +1 -1
  107. package/assets/esri/core/workers/chunks/{7449af8f3637c1694660.js → 97155c8ac832d7c46f24.js} +1 -1
  108. package/assets/esri/core/workers/chunks/{fbf21fda283836e8633c.js → 98cb131b62e30aee35e1.js} +1 -1
  109. package/assets/esri/core/workers/chunks/{e067bbf12f711fd5b9a6.js → 9b3b9df0aa0fdcc77aa2.js} +1 -1
  110. package/assets/esri/core/workers/chunks/{5852d291ef41201030d5.js → 9fa1512baa6e95d3f878.js} +21 -21
  111. package/assets/esri/core/workers/chunks/{8cb13b3776f07536c79f.js → a0d459bdb91ee892d4b6.js} +1 -1
  112. package/assets/esri/core/workers/chunks/{96616126aaf319cd1c6f.js → a5ed35f53769feb751db.js} +1 -1
  113. package/assets/esri/core/workers/chunks/{b6530c66804bede649d7.js → aa09e261d1f7dffaad8c.js} +1 -1
  114. package/assets/esri/core/workers/chunks/b268b4cbf5b0c856f88e.js +1 -0
  115. package/assets/esri/core/workers/chunks/b2f6cee006788ce3bd16.js +1 -0
  116. package/assets/esri/core/workers/chunks/{198ae9e02366870d3ec8.js → b46e772e415e2cfca896.js} +1 -1
  117. package/assets/esri/core/workers/chunks/{cee29c3a94376f6740d7.js → b4ab715a3c506e122f35.js} +1 -1
  118. package/assets/esri/core/workers/chunks/{b5ca894a6cb1a19676d5.js → b9756dce0b3af1a9dc54.js} +1 -1
  119. package/assets/esri/core/workers/chunks/baa7e90ec5259057d86b.js +1 -0
  120. package/assets/esri/core/workers/chunks/{52ae2073604deef63ea2.js → c083045d21636b95f26f.js} +1 -1
  121. package/assets/esri/core/workers/chunks/c267e57eb7f779115aba.js +1 -0
  122. package/assets/esri/core/workers/chunks/{5a0c5271304189a2401d.js → c38098f7073a10efdb1e.js} +1 -1
  123. package/assets/esri/core/workers/chunks/{adecd31fd64d6753682d.js → c7c865dc1a93e781a3e3.js} +1 -1
  124. package/assets/esri/core/workers/chunks/c8e56dc1239118ac2a60.js +1 -0
  125. package/assets/esri/core/workers/chunks/cb6083f7294c8de297e1.js +1 -0
  126. package/assets/esri/core/workers/chunks/cb6c9469d7c16727cd12.js +1 -0
  127. package/assets/esri/core/workers/chunks/{e7e508258ad27468a6a5.js → cc6d9b2062b9de629111.js} +1 -1
  128. package/assets/esri/core/workers/chunks/d5386c0e77063c87fddd.js +1 -0
  129. package/assets/esri/core/workers/chunks/d782671235af2db1c458.js +1 -0
  130. package/assets/esri/core/workers/chunks/de33ce9b6f4e6c0e1389.js +1 -0
  131. package/assets/esri/core/workers/chunks/{0abb084b8a137f4fcdfc.js → e1c5773c12d9947bdc5f.js} +1 -1
  132. package/assets/esri/core/workers/chunks/e55ce8466aa979ac1e6b.js +1 -0
  133. package/assets/esri/core/workers/chunks/{21739c37160061f229ef.js → e585883d0036aa866420.js} +1 -1
  134. package/assets/esri/core/workers/chunks/e6d6d664fc9f2cd6a042.js +1 -0
  135. package/assets/esri/core/workers/chunks/e7cdc2a21104d84aec4a.js +1 -0
  136. package/assets/esri/core/workers/chunks/e9edf3987039def65859.js +1 -0
  137. package/assets/esri/core/workers/chunks/{3b434f318fdbbe4111e3.js → edbe52c2848486d64b16.js} +1 -1
  138. package/assets/esri/core/workers/chunks/{4f8895eb57ec6ab4b318.js → f5a61fa75ac877b5bb74.js} +1 -1
  139. package/assets/esri/core/workers/chunks/feba6c9ae162a0a8ea3a.js +1 -0
  140. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  141. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  142. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  143. package/assets/esri/themes/base/widgets/_FeatureTable.scss +9 -1
  144. package/assets/esri/themes/dark/main.css +1 -1
  145. package/assets/esri/themes/light/main.css +1 -1
  146. package/assets/esri/themes/light/view.css +1 -1
  147. package/chunks/{TextureOnly.glsl.js → Texture.glsl.js} +2 -2
  148. package/chunks/{WaterSurface.glsl.js → Water.glsl.js} +6 -6
  149. package/chunks/bundle.js +1 -1
  150. package/chunks/libtess-f32.js +1 -1
  151. package/chunks/libtess-f64.js +1 -1
  152. package/config.js +1 -1
  153. package/copyright.txt +84 -0
  154. package/core/Promise.d.ts +1 -1
  155. package/core/arrayUtils.js +1 -1
  156. package/core/quantity.js +1 -1
  157. package/core/quantityFormatUtils.js +1 -1
  158. package/core/units.d.ts +1 -1
  159. package/core/units.js +1 -1
  160. package/core/workers/WorkerHandle.js +1 -1
  161. package/editing/Clipboard.js +5 -0
  162. package/effects/FocusAreas.d.ts +1 -0
  163. package/form/FormTemplate.js +1 -1
  164. package/geometry/ellipsoidUtils.js +1 -1
  165. package/geometry/libtess.js +1 -1
  166. package/geometry/operators/geodesicBufferOperator.d.ts +1 -0
  167. package/geometry/operators/geodesicProximityOperator.d.ts +1 -0
  168. package/geometry/operators/geodeticAreaOperator.d.ts +1 -0
  169. package/geometry/operators/geodeticDensifyOperator.d.ts +1 -0
  170. package/geometry/operators/geodeticDistanceOperator.d.ts +1 -0
  171. package/geometry/operators/geodeticLengthOperator.d.ts +1 -0
  172. package/geometry/operators/geodeticUtilsOperator.d.ts +1 -0
  173. package/geometry/operators/shapePreservingProjectOperator.d.ts +1 -0
  174. package/geometry/operators/support/geographicTransformationUtils.d.ts +1 -0
  175. package/geometry/projection/projectors.js +1 -1
  176. package/geometry/projectionUtils.js +1 -1
  177. package/geometry/support/meshUtils/projection.js +1 -1
  178. package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
  179. package/geometry/support/planetGCSUtils.js +1 -1
  180. package/geometry/support/spatialReferenceUtils.js +1 -1
  181. package/identity/IdentityModal.js +1 -1
  182. package/interfaces.d.ts +2 -2
  183. package/kernel.js +1 -1
  184. package/layers/CatalogLayer.d.ts +1 -0
  185. package/layers/FeatureLayer.d.ts +6 -0
  186. package/layers/GeoJSONLayer.d.ts +1 -0
  187. package/layers/Layer.d.ts +1 -0
  188. package/layers/LinkChartLayer.d.ts +2 -2
  189. package/layers/MediaLayer.d.ts +1 -0
  190. package/layers/OGCFeatureLayer.d.ts +1 -0
  191. package/layers/ParquetLayer.d.ts +6 -0
  192. package/layers/SubtypeGroupLayer.d.ts +1 -0
  193. package/layers/WFSLayer.d.ts +1 -0
  194. package/layers/catalog/CatalogFootprintLayer.d.ts +1 -0
  195. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  196. package/layers/mixins/ArcGISImageService.d.ts +30 -16
  197. package/layers/mixins/BlendLayer.d.ts +1 -0
  198. package/layers/mixins/FeatureEffectLayer.d.ts +2 -0
  199. package/layers/mixins/ImageryTileMixin.d.ts +2 -1
  200. package/layers/mixins/ImageryTileMixin.js +1 -1
  201. package/layers/mixins/ScaleRangeLayer.d.ts +0 -42
  202. package/layers/orientedImagery/transformations/utils.js +1 -1
  203. package/layers/raster/datasets/RawBlockCache.js +1 -1
  204. package/layers/raster/functions/SpectralConversionFunction.js +5 -0
  205. package/layers/raster/functions/SpectralConversionFunctionArguments.js +5 -0
  206. package/layers/raster/functions/conversionUtils.js +1 -1
  207. package/layers/raster/functions/rasterFunctionHelper.js +1 -1
  208. package/layers/raster/functions/vectorFieldUtils.js +1 -1
  209. package/layers/support/FeatureFilter.d.ts +4 -0
  210. package/layers/support/parquetUtils.d.ts +44 -1
  211. package/layers/support/rasterFunctionUtils.d.ts +0 -4
  212. package/layers/support/vectorTileLayerLoader.js +1 -1
  213. package/layers/support/wmsUtils.js +1 -1
  214. package/networks/CircuitManager.d.ts +6 -5
  215. package/networks/CircuitManager.js +1 -1
  216. package/networks/Network.d.ts +1 -0
  217. package/networks/UtilityNetwork.js +1 -1
  218. package/networks/support/Circuit.d.ts +2 -4
  219. package/networks/support/CircuitLocation.d.ts +1 -7
  220. package/networks/support/CircuitLocation.js +1 -1
  221. package/networks/support/CircuitPathConnectivityElement.js +1 -1
  222. package/networks/support/CircuitSection.d.ts +2 -4
  223. package/networks/support/Subcircuit.d.ts +2 -2
  224. package/package.json +4 -4
  225. package/renderers/FlowRenderer.d.ts +1 -0
  226. package/renderers/support/colorRampUtils.js +1 -1
  227. package/rest/featureService/types.d.ts +2 -2
  228. package/rest/imageService.d.ts +36 -19
  229. package/rest/imageService.js +1 -1
  230. package/rest/knowledgeGraph/GraphSearch.d.ts +0 -1
  231. package/rest/knowledgeGraph/GraphSearchStreaming.d.ts +0 -1
  232. package/rest/networks/circuits/support/QueryCircuitsParameters.js +1 -1
  233. package/rest/networks/circuits/support/VerifyCircuitsParameters.d.ts +30 -0
  234. package/rest/networks/circuits/support/VerifyCircuitsParameters.js +1 -1
  235. package/rest/networks/circuits/verifyCircuits.js +1 -1
  236. package/rest/networks/support/Association.js +1 -1
  237. package/rest/networks/support/NetworkElement.d.ts +2 -1
  238. package/rest/networks/support/TelecomNetworkElement.js +1 -1
  239. package/rest/networks/support/TraceLocation.d.ts +1 -1
  240. package/rest/query.d.ts +4 -0
  241. package/rest/support/BinParametersBase.d.ts +9 -28
  242. package/rest/support/DateBinParameters.d.ts +0 -17
  243. package/rest/support/TopFeaturesQuery.d.ts +1 -0
  244. package/smartMapping/raster/support/adapters/ImageryLayerAdapter.js +1 -1
  245. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  246. package/support/revision.js +1 -1
  247. package/symbols/CIMSymbol.d.ts +1 -0
  248. package/symbols/LineSymbolMarker.d.ts +2 -2
  249. package/symbols/SimpleFillSymbol.d.ts +2 -1
  250. package/symbols/SimpleLineSymbol.d.ts +4 -4
  251. package/symbols/support/cimSymbolUtils.d.ts +2 -0
  252. package/symbols/types.d.ts +140 -28
  253. package/views/2d/constraints/ZoomConstraint.js +1 -1
  254. package/views/2d/engine/imagery/RasterBitmap.js +1 -1
  255. package/views/2d/engine/imagery/RasterVFContainer.js +1 -1
  256. package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
  257. package/views/2d/engine/imagery/RasterVFTileContainer.js +1 -1
  258. package/views/2d/engine/rasterBrushes.js +1 -1
  259. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterProcessorTechnique.js +1 -1
  260. package/views/2d/engine/webgl/shaderGraph/techniques/raster/VectorFieldTechnique.js +5 -0
  261. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/AspectTechnique.js +1 -1
  262. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/BandArithmeticTechnique.js +1 -1
  263. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ColormapToRGBTechnique.js +1 -1
  264. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/CompositeBandTechnique.js +1 -1
  265. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ComputeChangeTechnique.js +1 -1
  266. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ContrastBrightnessTechnique.js +1 -1
  267. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ConvolutionTechnique.js +1 -1
  268. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/CurvatureTechnique.js +1 -1
  269. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ExtractBandTechnique.js +1 -1
  270. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/FocalStatisticsTechnique.js +1 -1
  271. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/GrayscaleTechnique.js +1 -1
  272. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/HillshadeTechnique.js +1 -1
  273. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/LocalTechnique.js +1 -1
  274. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/MaskTechnique.js +1 -1
  275. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/NDVITechnique.js +1 -1
  276. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/RemapTechnique.js +1 -1
  277. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ReprojectTechnique.js +1 -1
  278. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ShadedReliefTechnique.js +1 -1
  279. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/SlopeTechnique.js +1 -1
  280. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/SpectralConversionTechnique.js +5 -0
  281. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/StretchTechnique.js +1 -1
  282. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/MagDirShader.js +5 -0
  283. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/ScalarShader.js +5 -0
  284. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/SpectralConversionShader.js +5 -0
  285. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  286. package/views/2d/layers/MediaLayerView2D.js +1 -1
  287. package/views/2d/layers/TileLayerView2D.js +1 -1
  288. package/views/2d/layers/imagery/ImageryVFStrategy.js +1 -1
  289. package/views/2d/layers/imagery/VectorFieldTileView2D.js +1 -1
  290. package/views/2d/types.d.ts +6 -1
  291. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  292. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  293. package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
  294. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  295. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementRawResult.js +5 -0
  296. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementResult.d.ts +5 -1
  297. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementResult.js +1 -1
  298. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
  299. package/views/3d/environment/EnvironmentManager.js +1 -1
  300. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  301. package/views/3d/interactive/visualElements/LaserlineVisualElement.js +1 -1
  302. package/views/3d/layers/FlowSubView3D.js +1 -1
  303. package/views/3d/layers/I3SMeshViewLabeler.js +1 -1
  304. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  305. package/views/3d/layers/SceneLayerWorker.js +1 -1
  306. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  307. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  308. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  309. package/views/3d/layers/graphics/emissiveUtils.js +5 -0
  310. package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
  311. package/views/3d/layers/support/layerUtils.js +1 -1
  312. package/views/3d/state/ViewState.js +1 -1
  313. package/views/3d/support/gaussianSplatting/GaussianSplatFadeHelper.js +1 -1
  314. package/views/3d/support/mathUtils.js +1 -1
  315. package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
  316. package/views/3d/support/supportedSpatialReference.js +1 -1
  317. package/views/3d/terrain/BlendLayers.glsl.js +5 -0
  318. package/views/3d/terrain/BlendLayersTechnique.js +1 -1
  319. package/views/3d/terrain/OverlayRenderer.js +1 -1
  320. package/views/3d/terrain/RasterColorizer.glsl.js +5 -0
  321. package/views/3d/terrain/RasterColorizerTechnique.js +1 -1
  322. package/views/3d/terrain/terrainUtils.js +1 -1
  323. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +3 -3
  324. package/views/3d/webgl-engine/core/shaderLibrary/shading/{Water.glsl.js → WaterColor.glsl.js} +2 -2
  325. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +2 -2
  326. package/views/3d/webgl-engine/core/shaderLibrary/util/EllipsoidMode.js +1 -1
  327. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  328. package/views/3d/webgl-engine/effects/highlight/HighlightApply.glsl.js +5 -0
  329. package/views/3d/webgl-engine/effects/highlight/HighlightApplyTechnique.js +1 -1
  330. package/views/3d/webgl-engine/effects/highlight/HighlightBlur.glsl.js +5 -0
  331. package/views/3d/webgl-engine/effects/highlight/HighlightBlurTechnique.js +1 -1
  332. package/views/3d/webgl-engine/effects/highlight/HighlightDownsample.glsl.js +5 -0
  333. package/views/3d/webgl-engine/effects/highlight/HighlightDownsampleTechnique.js +1 -1
  334. package/views/3d/webgl-engine/effects/highlight/HighlightToSingle.glsl.js +5 -0
  335. package/views/3d/webgl-engine/effects/highlight/HighlightToSingleTechnique.js +1 -1
  336. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.glsl.js +5 -0
  337. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightTechnique.js +1 -1
  338. package/views/3d/webgl-engine/effects/laserlines/Laserline.glsl.js +5 -0
  339. package/views/3d/webgl-engine/effects/laserlines/LaserlinePath.glsl.js +5 -0
  340. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathTechnique.js +1 -1
  341. package/views/3d/webgl-engine/effects/laserlines/LaserlineTechnique.js +1 -1
  342. package/views/3d/webgl-engine/effects/magnifier/Magnifier.glsl.js +5 -0
  343. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  344. package/views/3d/webgl-engine/effects/magnifier/MagnifierTechnique.js +1 -1
  345. package/views/3d/webgl-engine/effects/smaa/BlendWeights.glsl.js +5 -0
  346. package/views/3d/webgl-engine/effects/smaa/Blur.glsl.js +5 -0
  347. package/views/3d/webgl-engine/effects/smaa/EdgeDetect.glsl.js +5 -0
  348. package/views/3d/webgl-engine/effects/smaa/SMAABlendWeightsTechnique.js +1 -1
  349. package/views/3d/webgl-engine/effects/smaa/SMAABlurTechnique.js +1 -1
  350. package/views/3d/webgl-engine/effects/smaa/SMAAEdgeDetectTechnique.js +1 -1
  351. package/views/3d/webgl-engine/effects/ssao/SSAO.glsl.js +5 -0
  352. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  353. package/views/3d/webgl-engine/effects/ssao/SSAOBlur.glsl.js +5 -0
  354. package/views/3d/webgl-engine/effects/ssao/SSAOBlurTechnique.js +1 -1
  355. package/views/3d/webgl-engine/effects/ssao/SSAOTechnique.js +1 -1
  356. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  357. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  358. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  359. package/views/3d/webgl-engine/lib/Texture.glsl.js +5 -0
  360. package/views/3d/webgl-engine/lib/TextureTechnique.js +1 -1
  361. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShader.glsl.js +5 -0
  362. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechnique.js +1 -1
  363. package/views/3d/webgl-engine/{shaders → materials}/Path.glsl.js +1 -1
  364. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  365. package/views/3d/webgl-engine/{shaders/WaterSurface.glsl.js → materials/Water.glsl.js} +1 -1
  366. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  367. package/views/3d/webgl-engine/materials/renderers/MergedBuffer.js +1 -1
  368. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  369. package/views/3d/webgl-engine/shaders/AnimatedLine.glsl.js +31 -23
  370. package/views/3d/webgl.js +1 -1
  371. package/views/VideoView.d.ts +1 -0
  372. package/views/VideoView.js +1 -1
  373. package/views/input/ViewEvents.js +1 -1
  374. package/views/input/recognizers/VerticalTwoFingerDrag.js +1 -1
  375. package/views/input/types.d.ts +94 -0
  376. package/views/interactive/snapping/FeatureSnappingLayerSource.d.ts +1 -0
  377. package/views/interactive/tooltip/components/DrawHeaderActions.js +1 -1
  378. package/views/layers/FeatureLayerViewMixin.d.ts +1 -0
  379. package/views/support/MeasurementWorker.js +1 -1
  380. package/views/support/MeasurementWorkerHandle.js +1 -1
  381. package/views/support/euclideanAreaMeasurementUtils.js +1 -1
  382. package/views/support/measurementUtils.js +1 -1
  383. package/views/support/screenUtils.js +1 -1
  384. package/views/webgl/ShaderBuilder.js +1 -1
  385. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  386. package/widgets/AreaMeasurement2D.d.ts +1 -0
  387. package/widgets/AreaMeasurement2D.js +1 -1
  388. package/widgets/Attachments.d.ts +1 -0
  389. package/widgets/BasemapLayerList.d.ts +1 -0
  390. package/widgets/BasemapLayerList.js +1 -1
  391. package/widgets/BuildingExplorer.d.ts +1 -1
  392. package/widgets/CatalogLayerList.d.ts +1 -0
  393. package/widgets/CatalogLayerList.js +1 -1
  394. package/widgets/Directions.d.ts +1 -0
  395. package/widgets/Directions.js +1 -1
  396. package/widgets/DistanceMeasurement2D.d.ts +1 -0
  397. package/widgets/DistanceMeasurement2D.js +1 -1
  398. package/widgets/Editor/AddAssociationWorkflow.js +1 -1
  399. package/widgets/Editor.d.ts +1 -0
  400. package/widgets/Editor.js +1 -1
  401. package/widgets/FeatureForm.d.ts +1 -0
  402. package/widgets/FeatureForm.js +1 -1
  403. package/widgets/FeatureTable.d.ts +1 -0
  404. package/widgets/FeatureTable.js +1 -1
  405. package/widgets/FloorFilter.d.ts +1 -0
  406. package/widgets/FloorFilter.js +1 -1
  407. package/widgets/LayerList.d.ts +1 -0
  408. package/widgets/LayerList.js +1 -1
  409. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  410. package/widgets/OrientedImageryViewer/adapters/sketch/DataCaptureAdapter.js +1 -1
  411. package/widgets/OrientedImageryViewer/adapters/sketch/TriangulatedMeasurementAdapter.js +1 -1
  412. package/widgets/OrientedImageryViewer/adapters/view/MapViewAdapter.js +1 -1
  413. package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
  414. package/widgets/OrientedImageryViewer/components/ImageOverlays.js +1 -1
  415. package/widgets/OrientedImageryViewer/components/OverlayLayersListViewModel.js +1 -1
  416. package/widgets/OrientedImageryViewer/services/TransformationService.js +5 -0
  417. package/widgets/OrientedImageryViewer/support/dataCaptureUtils.js +5 -0
  418. package/widgets/OrientedImageryViewer/support/geometryUtils.js +5 -0
  419. package/widgets/OrientedImageryViewer/support/typeUtils.js +5 -0
  420. package/widgets/ScaleRangeSlider/ScaleRanges.d.ts +43 -1
  421. package/widgets/ScaleRangeSlider.d.ts +1 -0
  422. package/widgets/ScaleRangeSlider.js +1 -1
  423. package/widgets/Sketch.d.ts +1 -0
  424. package/widgets/Sketch.js +1 -1
  425. package/widgets/Slider/SliderViewModel.js +1 -1
  426. package/widgets/Swipe.d.ts +1 -1
  427. package/widgets/TableList.d.ts +2 -0
  428. package/widgets/TableList.js +1 -1
  429. package/widgets/TimeSlider.d.ts +1 -0
  430. package/widgets/TimeSlider.js +1 -1
  431. package/widgets/UtilityNetworkAssociations.d.ts +2 -0
  432. package/widgets/UtilityNetworkAssociations.js +1 -1
  433. package/widgets/UtilityNetworkTrace/support/GeometryHandler.js +1 -1
  434. package/widgets/UtilityNetworkTrace.d.ts +2 -0
  435. package/widgets/UtilityNetworkTrace.js +1 -1
  436. package/widgets/UtilityNetworkValidateTopology.d.ts +2 -0
  437. package/widgets/UtilityNetworkValidateTopology.js +1 -1
  438. package/widgets/ValuePicker.d.ts +1 -0
  439. package/widgets/ValuePicker.js +1 -1
  440. package/widgets/support/SnappingControls.d.ts +1 -0
  441. package/widgets/support/UtilityNetworkAssociations/FeatureUtilityNetworkAssociationsViewModel.js +1 -1
  442. package/widgets/support/UtilityNetworkAssociations/utils/createAssociation.js +1 -1
  443. package/assets/esri/core/workers/chunks/00e135dc1b4cb024973d.js +0 -1
  444. package/assets/esri/core/workers/chunks/03d037f9f04f165aac63.js +0 -1
  445. package/assets/esri/core/workers/chunks/03da31c7635d077e8d99.js +0 -1
  446. package/assets/esri/core/workers/chunks/0dcf1f3b6aa84cbe03a9.js +0 -1
  447. package/assets/esri/core/workers/chunks/165cf8031af160c99d70.js +0 -1
  448. package/assets/esri/core/workers/chunks/185c97bc63ce546995ce.js +0 -1
  449. package/assets/esri/core/workers/chunks/1a62c456e791c82050fe.js +0 -1
  450. package/assets/esri/core/workers/chunks/21163137e345badb1aaf.js +0 -1
  451. package/assets/esri/core/workers/chunks/25dead73dfc5a4c19285.js +0 -1
  452. package/assets/esri/core/workers/chunks/2767b69085c9f7a1e1af.js +0 -1
  453. package/assets/esri/core/workers/chunks/43e9eaedf65921b58eb2.js +0 -1
  454. package/assets/esri/core/workers/chunks/4caec60ac0a5851730c6.js +0 -1
  455. package/assets/esri/core/workers/chunks/4f4bdf9f5323fa702e6c.js +0 -1
  456. package/assets/esri/core/workers/chunks/5119e3159617b8e1ea13.js +0 -1
  457. package/assets/esri/core/workers/chunks/59d3f3fbae775fd7686e.js +0 -1
  458. package/assets/esri/core/workers/chunks/5a706eecd8a988fae6b7.js +0 -1
  459. package/assets/esri/core/workers/chunks/5ba2bbbb42ef1920579d.js +0 -1
  460. package/assets/esri/core/workers/chunks/5cc731f161012b63c77a.js +0 -1
  461. package/assets/esri/core/workers/chunks/5fa8fe6353dbdda0b06a.js +0 -1
  462. package/assets/esri/core/workers/chunks/6107b58457a70c8de9da.js +0 -1
  463. package/assets/esri/core/workers/chunks/654eef3ad30f34c42e12.js +0 -1
  464. package/assets/esri/core/workers/chunks/6d9e92d9c2503d5dc8dd.js +0 -1
  465. package/assets/esri/core/workers/chunks/7130b09300032d3a5925.js +0 -1
  466. package/assets/esri/core/workers/chunks/7f7c4ffbdf7b20dc7a54.js +0 -1
  467. package/assets/esri/core/workers/chunks/804c9666d0dc548b9f79.js +0 -1
  468. package/assets/esri/core/workers/chunks/8258b1c8ba6d44ba19c3.js +0 -1
  469. package/assets/esri/core/workers/chunks/8f2fc50eb988c0228b05.js +0 -1
  470. package/assets/esri/core/workers/chunks/8f3abaabc61858e929a5.js +0 -1
  471. package/assets/esri/core/workers/chunks/97ad3eb25ad003c16148.js +0 -1
  472. package/assets/esri/core/workers/chunks/a270e34bb248114ec280.js +0 -1
  473. package/assets/esri/core/workers/chunks/a56a5e00964d4cd59a66.js +0 -1
  474. package/assets/esri/core/workers/chunks/a774b4fc7df801503bea.js +0 -1
  475. package/assets/esri/core/workers/chunks/b1015e1f25b60c08d2cf.js +0 -1
  476. package/assets/esri/core/workers/chunks/c18a2948ae3cb527d8bb.js +0 -1
  477. package/assets/esri/core/workers/chunks/cb66a74448a6c0c20d5d.js +0 -1
  478. package/assets/esri/core/workers/chunks/d4f4c0201d8b641709c0.js +0 -1
  479. package/assets/esri/core/workers/chunks/d6d9d56b3733622deab6.js +0 -1
  480. package/assets/esri/core/workers/chunks/dedd9d47ccc019ffc484.js +0 -1
  481. package/assets/esri/core/workers/chunks/e271065410ba5c872f53.js +0 -1
  482. package/assets/esri/core/workers/chunks/e8a0654cebafa22b5b56.js +0 -1
  483. package/assets/esri/core/workers/chunks/ecf7d34b37ce6f0877af.js +0 -1
  484. package/assets/esri/core/workers/chunks/f25eb512592a84a508c1.js +0 -1
  485. package/assets/esri/core/workers/chunks/f64ec13167eb51da2f9b.js +0 -1
  486. package/layers/graphics/sources/ParquetSource.d.ts +0 -45
  487. package/views/2d/engine/imagery/BrushVectorField.js +0 -5
  488. package/views/3d/analysis/AreaMeasurement/support/utils.js +0 -5
  489. package/views/3d/analysis/VolumeMeasurement/volumeMeasurementUtils.js +0 -5
  490. package/views/3d/webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js +0 -5
  491. package/views/3d/webgl-engine/core/shaderLibrary/util/BlendLayers.glsl.js +0 -5
  492. package/views/3d/webgl-engine/core/shaderLibrary/util/TextureOnly.glsl.js +0 -5
  493. package/views/3d/webgl-engine/shaders/BlendWeights.glsl.js +0 -5
  494. package/views/3d/webgl-engine/shaders/Blur.glsl.js +0 -5
  495. package/views/3d/webgl-engine/shaders/EdgeDetect.glsl.js +0 -5
  496. package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +0 -5
  497. package/views/3d/webgl-engine/shaders/HighlightBlur.glsl.js +0 -5
  498. package/views/3d/webgl-engine/shaders/HighlightDownsample.glsl.js +0 -5
  499. package/views/3d/webgl-engine/shaders/HighlightToSingle.glsl.js +0 -5
  500. package/views/3d/webgl-engine/shaders/LaserlinePath.glsl.js +0 -5
  501. package/views/3d/webgl-engine/shaders/Laserlines.glsl.js +0 -5
  502. package/views/3d/webgl-engine/shaders/Magnifier.glsl.js +0 -5
  503. package/views/3d/webgl-engine/shaders/SSAO.glsl.js +0 -5
  504. package/views/3d/webgl-engine/shaders/SSAOBlur.glsl.js +0 -5
  505. package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +0 -5
  506. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeShader.glsl.js +0 -5
  507. package/widgets/OrientedImageryViewer/dataCaptureUtils.js +0 -5
  508. /package/chunks/{Laserlines.glsl.js → Laserline.glsl.js} +0 -0
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../Color.js";import i from"../Viewpoint.js";import s from"../core/Accessor.js";import{EventedMixin as r}from"../core/Evented.js";import{destroyMaybe as o}from"../core/maybe.js";import{EsriPromiseMixin as a}from"../core/Promise.js";import{watch as n,initial as l,whenOnce as p,syncAndInitial as m}from"../core/reactiveUtils.js";import{property as h,cast as d,subclass as c}from"../core/accessorSupport/decorators.js";import{ensureClass as g}from"../core/accessorSupport/ensureType.js";import f from"../geometry/Extent.js";import u from"../geometry/Point.js";import y from"../geometry/SpatialReference.js";import{load as j,execute as w}from"../geometry/operators/projectOperator.js";import b from"../layers/support/ExtentAndRotationGeoreference.js";import{MediaElementView as v}from"../layers/support/MediaElementView.js";import M from"../layers/support/TileInfo.js";import _ from"../layers/support/VideoElement.js";import{DOMContainer as S}from"./DOMContainer.js";import{Viewport2DBaseMixin as C}from"./Viewport2DBaseMixin.js";import{Viewport2DMixin as V}from"./Viewport2DMixin.js";import x from"./2d/AnimationManager.js";import G from"./2d/MapViewConstraints.js";import"../core/RandomLCG.js";import"../core/Logger.js";import"../core/has.js";import"../core/scheduling.js";import"../core/mathUtils.js";import"../config.js";import"../symbols/cim/defaultCIMValues.js";import"../core/floatRGBA.js";import"../symbols/Font.js";import"../core/ObjectPool.js";import"../geometry/support/spatialReferenceUtils.js";import"../symbols/cim/effects/EffectAddControlPoints.js";import"../symbols/cim/effects/EffectArrow.js";import"../symbols/cim/effects/EffectBuffer.js";import"../symbols/cim/effects/EffectControlMeasureLine.js";import"../symbols/cim/effects/EffectCut.js";import"../symbols/cim/effects/EffectDashes.js";import"../symbols/cim/effects/EffectDonut.js";import"../symbols/cim/effects/EffectEnclosingPolygon.js";import"../symbols/cim/effects/EffectJog.js";import"../symbols/cim/effects/EffectMove.js";import"../symbols/cim/effects/EffectOffset.js";import"../symbols/cim/effects/EffectRadial.js";import"../symbols/cim/effects/EffectReverse.js";import"../symbols/cim/effects/EffectRotate.js";import"../symbols/cim/effects/EffectScale.js";import"../symbols/cim/effects/EffectSuppress.js";import"../symbols/cim/effects/EffectTaperedPolygon.js";import"../symbols/cim/effects/EffectWave.js";import"../symbols/cim/placements/PlacementAlongLineSameSize.js";import"../symbols/cim/placements/PlacementAtExtremities.js";import"../symbols/cim/placements/PlacementAtMeasuredUnits.js";import"../symbols/cim/placements/PlacementAtRatioPositions.js";import"../symbols/cim/placements/PlacementInsidePolygon.js";import"../symbols/cim/placements/PlacementOnLine.js";import"../symbols/cim/placements/PlacementOnVertices.js";import"../symbols/cim/placements/PlacementPolygonCenter.js";import"../symbols/cim/constants.js";import"../core/libs/gl-matrix-2/factories/vec2f32.js";import"../geometry/Polygon.js";import"../symbols/support/defaults.js";import"../symbols/cim/OverrideHelper.js";import{Container as P}from"./2d/engine/Container.js";import"../core/libs/gl-matrix-2/factories/vec4f32.js";import"./2d/engine/webgl/shaders/BackgroundPrograms.js";import"./webgl/enums.js";import"./webgl/Program.js";import"./webgl/Util.js";import"./webgl/VertexAttributeLayouts.js";import"./webgl/BufferObject.js";import"./2d/engine/webgl/AFeatureTile.js";import"./2d/engine/webgl/DisplayEntity.js";import"./2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"./2d/engine/webgl/cpuMapped/MappedMesh.js";import"./2d/engine/webgl/number.js";import"./2d/engine/webgl/shaders/TileInfoPrograms.js";import"./webgl/Texture.js";import"./2d/engine/webgl/shaders/BitBlitPrograms.js";import"../request.js";import"../core/urlUtils.js";import"../core/pbf.js";import"./2d/engine/webgl/shaders/StencilPrograms.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js";import"./2d/engine/webgl/shaders/HighlightPrograms.js";import"./webgl/FramebufferObject.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/BlitShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/BloomShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/BlurShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/ColorizeShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/DropShadowShader.js";import"./2d/engine/webgl/meshing/SimpleMesh.js";import"./webgl/Renderbuffer.js";import"./2d/engine/webgl/PooledUint32Array.js";import"./2d/engine/webgl/Profiler.js";import"./2d/engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"./2d/engine/webgl/shaderGraph/techniques/animated/attributes.js";import"./2d/engine/webgl/mesh/templates/templateUtils.js";import"./2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/ComplexFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/FillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/PatternFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapMeshWriter.js";import"../geometry/support/aaBoundingBox.js";import"./2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/TexturedLineMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js";import"../core/sql/UnknownTimeZone.js";import"luxon";import"../intl/locale.js";import"../geometry/Geometry.js";import"../geometry/Multipoint.js";import"../geometry/Polyline.js";import"../layers/support/fieldUtils.js";import"../time/constants.js";import"./2d/engine/webgl/animations/instructions.js";import"./2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartMeshWriter.js";import"./webgl/checkWebGLError.js";import"./webgl/renderState.js";import"./3d/webgl-engine/core/shaderModules/glsl.js";import"./webgl/testSVGPremultipliedAlpha.js";import{ManagedCanvas as E}from"./2d/engine/ManagedCanvas.js";import"./2d/engine/transitions/FadeTransition.js";import"./2d/engine/webgl/meshing/definitions.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"./2d/LabelManager.js";import"./2d/layers/graphics/GraphicsView2D.js";import"./2d/engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js";import"../core/libs/gl-matrix-2/factories/vec3f32.js";import"../geometry/support/normalizeUtils.js";import"./2d/layers/support/util.js";import q from"./2d/navigation/MapViewNavigation.js";import"../core/asyncUtils.js";import"../core/support/UpdatingHandles.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../core/units.js";import"../geometry/ellipsoidUtils.js";import"../geometry/operators/support/GeographicTransformation.js";import"../geometry/projection/projectors.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../geometry/support/geodesicConstants.js";import"../geometry/support/Ellipsoid.js";import{ViewStateManager as D}from"./2d/ViewStateManager.js";import R from"./2d/engine/webgl/Overlay.js";import z from"./2d/engine/webgl/OverlayContainer.js";import O from"./navigation/Navigation.js";import T from"./ui/DefaultUI.js";import W from"./ui/video/DefaultUIVideo.js";const A=new t("#000");let U;async function k(){const[,{ParentStage:e}]=await Promise.all([import("./2d/webglDeps.js"),import("./2d/mapViewDeps.js")]);U=e}const B=.01,F=["feature","geojson","csv","stream","ogc-feature","catalog","wfs","parquet","graphics","group"];let H=class extends(V(C(S(r(a(s)))))){constructor(e){super(e),this._isValid=!1,this._prevZoomEnabled=!1,this._prevRotationEnabled=!1,this.stage=null,this.childStage=null,this._operationalDataView=null,this.operationalDataVisible=!1,this.layer=null,this.map=null,this.navigation=new O,this.ready=!1,this.spatialReference=new y({wkid:0}),this.stateManager=new D({constraints:new G({view:this,minScale:1,maxScale:B})}),this.type="2d",this.ui=new W,this.view2dType="video",this.addHandles([n(()=>this.preconditionsReady,e=>e?this._startup():this._teardown()),n(()=>this.layer,(e,t)=>{t&&(this._teardown(),this._startup()),this.addResolvingPromise(p(()=>this.ready))},l),n(()=>this.videoSize,([e,t])=>{this._extent&&e&&t&&(this._extent.xmax=e,this._extent.ymax=t)}),n(()=>this.size,e=>{this._operationalDataView&&this._operationalDataView.stateManager.resize(e[0],e[1])}),n(()=>[this.layer?.frameEffect,this._effectsContainer],()=>{this._effectsContainer&&(this._effectsContainer.effect=this.layer?.frameEffect??null)},m)])}initialize(){this._prevZoomEnabled="zoom"===this.navigation.actionMap.mouseWheel&&this.ui.components.includes("zoom"),this._prevRotationEnabled="rotate"===this.navigation.actionMap.dragSecondary&&this.ui.components.includes("compass"),this.addHandles([n(()=>[this.operationalDataVisible,this.childStage],()=>{this.childStage&&(this.childStage.videoScreenRenderer.visible=this.operationalDataVisible),this.operationalDataVisible&&(this.scale=1,this.rotation=0),this.navigation&&(this._prevZoomEnabled&&(this.navigation.actionMap.mouseWheel=this.operationalDataVisible?"none":"zoom",this.navigation.actionMap.dragPrimary=this.operationalDataVisible?"none":"pan",this.ui.components&&(this.ui.components=this.operationalDataVisible?this.ui.components.filter(e=>"zoom"!==e):[...new Set([...this.ui.components,"zoom"])])),this._prevRotationEnabled&&(this.navigation.actionMap.dragSecondary=this.operationalDataVisible?"none":"rotate",this.ui.components&&(this.ui.components=this.operationalDataVisible?this.ui.components.filter(e=>"compass"!==e):[...new Set([...this.ui.components,"compass"])])))},m)]),this.addResolvingPromise(k().then(()=>(this._isValid=!0,p(()=>this.ready))))}destroy(){this._teardown(),this.removeAllHandles(),this._set("preconditionsReady",!1),this.frameTask=o(this.frameTask),this.goToManager.destroy(),this.inputManager.destroy(),this._set("inputManager",null)}get constraintsInfo(){return{lods:null,spatialReference:this.spatialReference}}get preconditionsReady(){return!(!this._isValid||0===this.width||0===this.height||0===this.videoSize[0]||0===this.videoSize[1])}get rendering(){return this.stage?.renderRequested??!1}get scale(){return this.stateManager?.scale??0}set scale(e){this.stateManager&&(this.stateManager.scale=e)}get videoSize(){if(!this.layer?.videoWidth||!this.layer?.videoHeight)return[0,0];const[e,t]=this.size,i=(this.layer?.videoWidth||0)/(this.layer?.videoHeight||0),s=t*i,r=e/i;return e/t>=1?i>=1?s<=e?[s,t]:[e,r]:r<=t?[e,r]:[s,t]:i>=1?r<=t?[e,r]:[s,t]:s<=e?[s,t]:[e,r]}async hitTest(e,t){return this._operationalDataView&&this._operationalDataView.ready?this._operationalDataView.hitTest(e,t):{screenPoint:e,results:[]}}_startup(){if(!this.layer)return;const e=this._getViewpoint();this.stateManager.startup(e,this.size,e.targetGeometry.spatialReference);const t={renderingOptions:this.renderingOptions,backgroundColor:A,groundControlPoints:()=>this.layer?.groundControlPoints,getSize:()=>this.videoSize},i=new U(this.surface,t,new E(this.surface));this.stage=i,this._prepareStage(this.stage),this.childStage=i.childStage,this._prepareChildStage(this.childStage);const s=new x({view:this});this._set("animationManager",s);const r=new q({view:this,animationManager:s});this._set("mapViewNavigation",r),this._updateConstraints(),this.frameTask.start(),this._set("ready",!0)}_teardown(){this.stage.destroy(),this.stage=null,this._videoElementView=null,this._overlayContainer.removeAllChildren(),this._overlayContainer=null,this.removeHandles("video-view"),this._set("ready",!1),this.stateManager.teardown(),this.frameTask.stop(),this.stationaryManager.clear()}_getViewpoint(){return new i({targetGeometry:new u({x:this.videoSize[0]/2,y:this.videoSize[1]/2,spatialReference:this.spatialReference}),scale:1})}_prepareStage(e){this.addHandles([n(()=>this.stationary,t=>e.stationary=t,m),n(()=>this.state.id,()=>e.state=this.state,m),n(()=>this.renderingOptions,t=>e.renderingOptions=t,m)],"video-view"),this._extent=new f({xmin:0,ymin:0,xmax:this.videoSize[0],ymax:this.videoSize[1],spatialReference:{wkid:0}}),this._videoElementView=new v({element:new _({video:this.layer?.videoElement,georeference:new b({extent:this._extent}),autoplay:!1}),spatialReference:this.spatialReference});const t=new R(this._videoElementView);this._overlayContainer=new z,this._overlayContainer.addChild(t),this._effectsContainer=new P,this._effectsContainer.addChild(this._overlayContainer),this.stage.addChild(this._effectsContainer);const i=document.createElement("div");i.classList.add("esri-video-poster"),this.container?.classList.add("esri-video-view"),this.container?.appendChild(i)}_prepareChildStage(e){this.addHandles([n(()=>this.map,async t=>{if(!t)return;const{default:i}=await import("./video/VideoOperationalDataView.js");this._operationalDataView=new i({stage:e,layerViewFilter:e=>new Set(F).has(e.type),width:this.size[0],height:this.size[1],map:t}),p(()=>this._operationalDataView?.ready).then(()=>{e.videoScreenRenderer.visible=this.operationalDataVisible})},m),n(()=>this.layer?.groundControlPoints,async()=>{if(!this.layer?.groundControlPoints||!e.state)return;const t=this.layer.groundControlPoints,i=t?.length;if(!i)return;await j();const s=new Array(i),r=e.state.spatialReference;for(let e=0;e<i;e++){const{lat:i,lon:o}=t[e];s[e]=w(new u(o,i),r)}let o=1/0,a=1/0,n=-1/0,l=-1/0;for(const e of s)o=Math.min(o,e.x),a=Math.min(a,e.y),n=Math.max(n,e.x),l=Math.max(l,e.y);const p=f.fromJSON({xmin:o,ymin:a,xmax:n,ymax:l,spatialReference:r});await(this._operationalDataView?.goTo(p,{animate:!1}).catch(()=>{}))},m)])}_updateConstraints(){this._updateZoomConstraints(),this._updatePanConstraints()}_updateZoomConstraints(){const e=this.videoSize,t=Math.max(e[0]/this.size[0],e[1]/this.size[1]),i=[];for(let r=t;r>B;r/=2)i.push(r);i.push(B);const{lods:s}=M.create({scales:i});this.constraints.set({lods:s,minScale:t})}_updatePanConstraints(){const e=e=>{if(!e.targetGeometry)return e;const[t,i]=this.videoSize,s=t*e.scale/2,r=i*e.scale/2,o=e.targetGeometry.clone();return o.x=Math.max(s,Math.min(t-s,o.x)),o.y=Math.max(r,Math.min(i-r,o.y)),e.targetGeometry=o,e};this.constraints.customConstraints.add({constrain:e,applyPanConstraint:e})}};e([h()],H.prototype,"_overlayContainer",void 0),e([h()],H.prototype,"_isValid",void 0),e([h()],H.prototype,"_effectsContainer",void 0),e([h()],H.prototype,"constraintsInfo",null),e([h()],H.prototype,"operationalDataVisible",void 0),e([h()],H.prototype,"layer",void 0),e([h()],H.prototype,"map",void 0),e([h({type:O,nonNullable:!0})],H.prototype,"navigation",void 0),e([h({readOnly:!0})],H.prototype,"preconditionsReady",null),e([h({readOnly:!0})],H.prototype,"ready",void 0),e([h({readOnly:!0})],H.prototype,"rendering",null),e([h()],H.prototype,"scale",null),e([h()],H.prototype,"spatialReference",void 0),e([h()],H.prototype,"stateManager",void 0),e([h()],H.prototype,"type",void 0),e([h(),d(e=>e instanceof T?e:g(W,e))],H.prototype,"ui",void 0),e([h({readOnly:!0})],H.prototype,"videoSize",null),e([h({readOnly:!0})],H.prototype,"view2dType",void 0),H=e([c("esri.views.VideoView")],H);const L=H;export{L as default};
5
+ import{__decorate as e}from"tslib";import t from"../Color.js";import i from"../Viewpoint.js";import s from"../core/Accessor.js";import{EventedMixin as r}from"../core/Evented.js";import{destroyMaybe as o}from"../core/maybe.js";import{EsriPromiseMixin as a}from"../core/Promise.js";import{watch as n,initial as l,whenOnce as p,syncAndInitial as m}from"../core/reactiveUtils.js";import{property as h,cast as d,subclass as c}from"../core/accessorSupport/decorators.js";import{ensureClass as g}from"../core/accessorSupport/ensureType.js";import f from"../geometry/Extent.js";import u from"../geometry/Point.js";import y from"../geometry/SpatialReference.js";import{load as j,execute as w}from"../geometry/operators/projectOperator.js";import b from"../layers/support/ExtentAndRotationGeoreference.js";import{MediaElementView as v}from"../layers/support/MediaElementView.js";import M from"../layers/support/TileInfo.js";import _ from"../layers/support/VideoElement.js";import{DOMContainer as S}from"./DOMContainer.js";import{Viewport2DBaseMixin as C}from"./Viewport2DBaseMixin.js";import{Viewport2DMixin as V}from"./Viewport2DMixin.js";import x from"./2d/AnimationManager.js";import G from"./2d/MapViewConstraints.js";import"../core/RandomLCG.js";import"../core/Logger.js";import"../core/has.js";import"../core/scheduling.js";import"../core/mathUtils.js";import"../config.js";import"../symbols/cim/defaultCIMValues.js";import"../core/floatRGBA.js";import"../symbols/Font.js";import"../core/ObjectPool.js";import"../geometry/support/spatialReferenceUtils.js";import"../symbols/cim/effects/EffectAddControlPoints.js";import"../symbols/cim/effects/EffectArrow.js";import"../symbols/cim/effects/EffectBuffer.js";import"../symbols/cim/effects/EffectControlMeasureLine.js";import"../symbols/cim/effects/EffectCut.js";import"../symbols/cim/effects/EffectDashes.js";import"../symbols/cim/effects/EffectDonut.js";import"../symbols/cim/effects/EffectEnclosingPolygon.js";import"../symbols/cim/effects/EffectJog.js";import"../symbols/cim/effects/EffectMove.js";import"../symbols/cim/effects/EffectOffset.js";import"../symbols/cim/effects/EffectRadial.js";import"../symbols/cim/effects/EffectReverse.js";import"../symbols/cim/effects/EffectRotate.js";import"../symbols/cim/effects/EffectScale.js";import"../symbols/cim/effects/EffectSuppress.js";import"../symbols/cim/effects/EffectTaperedPolygon.js";import"../symbols/cim/effects/EffectWave.js";import"../symbols/cim/placements/PlacementAlongLineSameSize.js";import"../symbols/cim/placements/PlacementAtExtremities.js";import"../symbols/cim/placements/PlacementAtMeasuredUnits.js";import"../symbols/cim/placements/PlacementAtRatioPositions.js";import"../symbols/cim/placements/PlacementInsidePolygon.js";import"../symbols/cim/placements/PlacementOnLine.js";import"../symbols/cim/placements/PlacementOnVertices.js";import"../symbols/cim/placements/PlacementPolygonCenter.js";import"../symbols/cim/constants.js";import"../core/libs/gl-matrix-2/factories/vec2f32.js";import"../geometry/Polygon.js";import"../symbols/support/defaults.js";import"../symbols/cim/OverrideHelper.js";import{Container as P}from"./2d/engine/Container.js";import"../core/libs/gl-matrix-2/factories/vec4f32.js";import"./2d/engine/webgl/shaders/BackgroundPrograms.js";import"./webgl/enums.js";import"./webgl/Program.js";import"./webgl/Util.js";import"./webgl/VertexAttributeLayouts.js";import"./webgl/BufferObject.js";import"./2d/engine/webgl/AFeatureTile.js";import"./2d/engine/webgl/DisplayEntity.js";import"./2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"./2d/engine/webgl/cpuMapped/MappedMesh.js";import"./2d/engine/webgl/number.js";import"./2d/engine/webgl/shaders/TileInfoPrograms.js";import"./webgl/Texture.js";import"./2d/engine/webgl/shaders/BitBlitPrograms.js";import"../request.js";import"../core/urlUtils.js";import"../core/pbf.js";import"./2d/engine/webgl/shaders/StencilPrograms.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js";import"./2d/engine/webgl/shaders/HighlightPrograms.js";import"./webgl/FramebufferObject.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/BlitShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/BloomShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/BlurShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/ColorizeShader.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/DropShadowShader.js";import"./2d/engine/webgl/meshing/SimpleMesh.js";import"./webgl/Renderbuffer.js";import"./2d/engine/webgl/PooledUint32Array.js";import"./2d/engine/webgl/Profiler.js";import"./2d/engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"./2d/engine/webgl/shaderGraph/techniques/animated/attributes.js";import"./2d/engine/webgl/mesh/templates/templateUtils.js";import"./2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/ComplexFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/FillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/PatternFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapMeshWriter.js";import"../geometry/support/aaBoundingBox.js";import"./2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/line/TexturedLineMeshWriter.js";import"./2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js";import"../core/sql/UnknownTimeZone.js";import"luxon";import"../intl/locale.js";import"../geometry/Geometry.js";import"../geometry/Multipoint.js";import"../geometry/Polyline.js";import"../layers/support/fieldUtils.js";import"../time/constants.js";import"./2d/engine/webgl/animations/instructions.js";import"./2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartMeshWriter.js";import"./webgl/checkWebGLError.js";import"./webgl/renderState.js";import"./3d/webgl-engine/core/shaderModules/glsl.js";import"./webgl/testSVGPremultipliedAlpha.js";import{ManagedCanvas as E}from"./2d/engine/ManagedCanvas.js";import"./2d/engine/transitions/FadeTransition.js";import"./2d/engine/webgl/meshing/definitions.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"./2d/LabelManager.js";import"./2d/layers/graphics/GraphicsView2D.js";import"./2d/engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js";import"../core/libs/gl-matrix-2/factories/vec3f32.js";import"../geometry/support/normalizeUtils.js";import"./2d/layers/support/util.js";import q from"./2d/navigation/MapViewNavigation.js";import"../core/asyncUtils.js";import"../core/support/UpdatingHandles.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../core/units.js";import"../geometry/ellipsoidUtils.js";import"../geometry/spatialReferenceEllipsoidUtils.js";import"../geometry/operators/support/GeographicTransformation.js";import"../geometry/projection/projectors.js";import"./2d/engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../geometry/support/geodesicConstants.js";import"../geometry/support/Ellipsoid.js";import{ViewStateManager as D}from"./2d/ViewStateManager.js";import R from"./2d/engine/webgl/Overlay.js";import z from"./2d/engine/webgl/OverlayContainer.js";import O from"./navigation/Navigation.js";import T from"./ui/DefaultUI.js";import W from"./ui/video/DefaultUIVideo.js";const U=new t("#000");let A;async function k(){const[,{ParentStage:e}]=await Promise.all([import("./2d/webglDeps.js"),import("./2d/mapViewDeps.js")]);A=e}const B=.01,F=["feature","geojson","csv","stream","ogc-feature","catalog","wfs","parquet","graphics","group"];let H=class extends(V(C(S(r(a(s)))))){constructor(e){super(e),this._isValid=!1,this._prevZoomEnabled=!1,this._prevRotationEnabled=!1,this.stage=null,this.childStage=null,this._operationalDataView=null,this.operationalDataVisible=!1,this.layer=null,this.map=null,this.navigation=new O,this.ready=!1,this.spatialReference=new y({wkid:0}),this.stateManager=new D({constraints:new G({view:this,minScale:1,maxScale:B})}),this.type="2d",this.ui=new W,this.view2dType="video",this.addHandles([n(()=>this.preconditionsReady,e=>e?this._startup():this._teardown()),n(()=>this.layer,(e,t)=>{t&&(this._teardown(),this._startup()),this.addResolvingPromise(p(()=>this.ready))},l),n(()=>this.videoSize,([e,t])=>{this._extent&&e&&t&&(this._extent.xmax=e,this._extent.ymax=t)}),n(()=>this.size,e=>{this._operationalDataView&&this._operationalDataView.stateManager.resize(e[0],e[1])}),n(()=>[this.layer?.frameEffect,this._effectsContainer],()=>{this._effectsContainer&&(this._effectsContainer.effect=this.layer?.frameEffect??null)},m)])}initialize(){this._prevZoomEnabled="zoom"===this.navigation.actionMap.mouseWheel&&this.ui.components.includes("zoom"),this._prevRotationEnabled="rotate"===this.navigation.actionMap.dragSecondary&&this.ui.components.includes("compass"),this.addHandles([n(()=>[this.operationalDataVisible,this.childStage],()=>{this.childStage&&(this.childStage.videoScreenRenderer.visible=this.operationalDataVisible),this.operationalDataVisible&&(this.scale=1,this.rotation=0),this.navigation&&(this._prevZoomEnabled&&(this.navigation.actionMap.mouseWheel=this.operationalDataVisible?"none":"zoom",this.navigation.actionMap.dragPrimary=this.operationalDataVisible?"none":"pan",this.ui.components&&(this.ui.components=this.operationalDataVisible?this.ui.components.filter(e=>"zoom"!==e):[...new Set([...this.ui.components,"zoom"])])),this._prevRotationEnabled&&(this.navigation.actionMap.dragSecondary=this.operationalDataVisible?"none":"rotate",this.ui.components&&(this.ui.components=this.operationalDataVisible?this.ui.components.filter(e=>"compass"!==e):[...new Set([...this.ui.components,"compass"])])))},m)]),this.addResolvingPromise(k().then(()=>(this._isValid=!0,p(()=>this.ready))))}destroy(){this._teardown(),this.removeAllHandles(),this._set("preconditionsReady",!1),this.frameTask=o(this.frameTask),this.goToManager.destroy(),this.inputManager.destroy(),this._set("inputManager",null)}get constraintsInfo(){return{lods:null,spatialReference:this.spatialReference}}get preconditionsReady(){return!(!this._isValid||0===this.width||0===this.height||0===this.videoSize[0]||0===this.videoSize[1])}get rendering(){return this.stage?.renderRequested??!1}get scale(){return this.stateManager?.scale??0}set scale(e){this.stateManager&&(this.stateManager.scale=e)}get videoSize(){if(!this.layer?.videoWidth||!this.layer?.videoHeight)return[0,0];const[e,t]=this.size,i=(this.layer?.videoWidth||0)/(this.layer?.videoHeight||0),s=t*i,r=e/i;return e/t>=1?i>=1?s<=e?[s,t]:[e,r]:r<=t?[e,r]:[s,t]:i>=1?r<=t?[e,r]:[s,t]:s<=e?[s,t]:[e,r]}async hitTest(e,t){return this._operationalDataView&&this._operationalDataView.ready?this._operationalDataView.hitTest(e,t):{screenPoint:e,results:[]}}_startup(){if(!this.layer)return;const e=this._getViewpoint();this.stateManager.startup(e,this.size,e.targetGeometry.spatialReference);const t={renderingOptions:this.renderingOptions,backgroundColor:U,groundControlPoints:()=>this.layer?.groundControlPoints,getSize:()=>this.videoSize},i=new A(this.surface,t,new E(this.surface));this.stage=i,this._prepareStage(this.stage),this.childStage=i.childStage,this._prepareChildStage(this.childStage);const s=new x({view:this});this._set("animationManager",s);const r=new q({view:this,animationManager:s});this._set("mapViewNavigation",r),this._updateConstraints(),this.frameTask.start(),this._set("ready",!0)}_teardown(){this.stage.destroy(),this.stage=null,this._videoElementView=null,this._overlayContainer.removeAllChildren(),this._overlayContainer=null,this.removeHandles("video-view"),this._set("ready",!1),this.stateManager.teardown(),this.frameTask.stop(),this.stationaryManager.clear()}_getViewpoint(){return new i({targetGeometry:new u({x:this.videoSize[0]/2,y:this.videoSize[1]/2,spatialReference:this.spatialReference}),scale:1})}_prepareStage(e){this.addHandles([n(()=>this.stationary,t=>e.stationary=t,m),n(()=>this.state.id,()=>e.state=this.state,m),n(()=>this.renderingOptions,t=>e.renderingOptions=t,m)],"video-view"),this._extent=new f({xmin:0,ymin:0,xmax:this.videoSize[0],ymax:this.videoSize[1],spatialReference:{wkid:0}}),this._videoElementView=new v({element:new _({video:this.layer?.videoElement,georeference:new b({extent:this._extent}),autoplay:!1}),spatialReference:this.spatialReference});const t=new R(this._videoElementView);this._overlayContainer=new z,this._overlayContainer.addChild(t),this._effectsContainer=new P,this._effectsContainer.addChild(this._overlayContainer),this.stage.addChild(this._effectsContainer);const i=document.createElement("div");i.classList.add("esri-video-poster"),this.container?.classList.add("esri-video-view"),this.container?.appendChild(i)}_prepareChildStage(e){this.addHandles([n(()=>this.map,async t=>{if(!t)return;const{default:i}=await import("./video/VideoOperationalDataView.js");this._operationalDataView=new i({stage:e,layerViewFilter:e=>new Set(F).has(e.type),width:this.size[0],height:this.size[1],map:t}),p(()=>this._operationalDataView?.ready).then(()=>{e.videoScreenRenderer.visible=this.operationalDataVisible})},m),n(()=>this.layer?.groundControlPoints,async()=>{if(!this.layer?.groundControlPoints||!e.state)return;const t=this.layer.groundControlPoints,i=t?.length;if(!i)return;await j();const s=new Array(i),r=e.state.spatialReference;for(let e=0;e<i;e++){const{lat:i,lon:o}=t[e];s[e]=w(new u(o,i),r)}let o=1/0,a=1/0,n=-1/0,l=-1/0;for(const e of s)o=Math.min(o,e.x),a=Math.min(a,e.y),n=Math.max(n,e.x),l=Math.max(l,e.y);const p=f.fromJSON({xmin:o,ymin:a,xmax:n,ymax:l,spatialReference:r});await(this._operationalDataView?.goTo(p,{animate:!1}).catch(()=>{}))},m)])}_updateConstraints(){this._updateZoomConstraints(),this._updatePanConstraints()}_updateZoomConstraints(){const e=this.videoSize,t=Math.max(e[0]/this.size[0],e[1]/this.size[1]),i=[];for(let r=t;r>B;r/=2)i.push(r);i.push(B);const{lods:s}=M.create({scales:i});this.constraints.set({lods:s,minScale:t})}_updatePanConstraints(){const e=e=>{if(!e.targetGeometry)return e;const[t,i]=this.videoSize,s=t*e.scale/2,r=i*e.scale/2,o=e.targetGeometry.clone();return o.x=Math.max(s,Math.min(t-s,o.x)),o.y=Math.max(r,Math.min(i-r,o.y)),e.targetGeometry=o,e};this.constraints.customConstraints.add({constrain:e,applyPanConstraint:e})}};e([h()],H.prototype,"_overlayContainer",void 0),e([h()],H.prototype,"_isValid",void 0),e([h()],H.prototype,"_effectsContainer",void 0),e([h()],H.prototype,"constraintsInfo",null),e([h()],H.prototype,"operationalDataVisible",void 0),e([h()],H.prototype,"layer",void 0),e([h()],H.prototype,"map",void 0),e([h({type:O,nonNullable:!0})],H.prototype,"navigation",void 0),e([h({readOnly:!0})],H.prototype,"preconditionsReady",null),e([h({readOnly:!0})],H.prototype,"ready",void 0),e([h({readOnly:!0})],H.prototype,"rendering",null),e([h()],H.prototype,"scale",null),e([h()],H.prototype,"spatialReference",void 0),e([h()],H.prototype,"stateManager",void 0),e([h()],H.prototype,"type",void 0),e([h(),d(e=>e instanceof T?e:g(W,e))],H.prototype,"ui",void 0),e([h({readOnly:!0})],H.prototype,"videoSize",null),e([h({readOnly:!0})],H.prototype,"view2dType",void 0),H=e([c("esri.views.VideoView")],H);const L=H;export{L as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{makeHandle as e}from"../../core/handleUtils.js";import"../../core/has.js";import{rad2deg as t}from"../../core/mathUtils.js";import{createScreenPoint as n}from"../../core/screenUtils.js";import{InputHandler as a}from"./InputHandler.js";import{ViewEventPriorities as r}from"./InputManager.js";const i=["click","double-click","immediate-click","immediate-double-click","hold","drag","key-down","key-up","pointer-down","pointer-move","pointer-up","pointer-drag","mouse-wheel","pointer-enter","pointer-leave","gamepad","focus","blur"],o={};function s(e){return!!o[e]}function p(e){for(const t of e)if(!s(t))return!1;return!0}i.forEach(e=>{o[e]=!0});class c{constructor(e){this._handlers=new Map,this._counter=0,this._handlerCounts=new Map,this.view=e,this.inputManager=null}connect(e){e&&this.disconnect(),this.inputManager=e,this._handlers.forEach(({handler:e,priority:t},n)=>this.inputManager?.installHandlers(n,[e],t))}disconnect(){this.inputManager&&this._handlers.forEach((e,t)=>this.inputManager?.uninstallHandlers(t)),this.inputManager=null}destroy(){this.disconnect(),this._handlers.clear(),this.view=null}on(t,n,a,i){const o=Array.isArray(t)?t:t.split(",");if(!p(o))return o.some(s)&&console.error("Error: registering input events and other events on the view at the same time is not supported."),null;let c,u;Array.isArray(n)?u=n:(c=n,u=[]),"function"==typeof a?c=a:i=a,i=null!=i?i:r.DEFAULT;const d=this._createUniqueGroupName(),m=new l(this.view,o,u,c);this._handlers.set(d,{handler:m,priority:i});for(const e of o){const t=this._handlerCounts.get(e)||0;this._handlerCounts.set(e,t+1)}return this.inputManager&&this.inputManager.installHandlers(d,[m],i),e(()=>this._removeHandler(d,o))}hasHandler(e){return!!this._handlerCounts.get(e)}_removeHandler(e,t){if(this._handlers.has(e)){this._handlers.delete(e);for(const e of t){const t=this._handlerCounts.get(e);void 0===t||(1===t?this._handlerCounts.delete(e):this._handlerCounts.set(e,t-1))}}this.inputManager&&this.inputManager.uninstallHandlers(e)}_createUniqueGroupName(){return this._counter+=1,`viewEvents_${this._counter}`}}class l extends a{constructor(e,t,n,a){super(!0),this._latestDragStart=void 0,this.view=e;for(const r of t)switch(r){case"click":this.registerIncoming("click",n,t=>a(m(e,t)));break;case"double-click":this.registerIncoming("double-click",n,t=>a(g(e,t)));break;case"immediate-click":this.registerIncoming("immediate-click",n,t=>a(f(e,t)));break;case"immediate-double-click":this.registerIncoming("immediate-double-click",n,t=>a(v(e,t)));break;case"hold":this.registerIncoming("hold",n,t=>a(h(e,t)));break;case"drag":this.registerIncoming("drag",n,e=>{const t=this._wrapDrag(e);t&&a(t)});break;case"key-down":this.registerIncoming("key-down",n,e=>a(y(e)));break;case"key-up":this.registerIncoming("key-up",n,e=>a(k(e)));break;case"pointer-down":this.registerIncoming("pointer-down",n,e=>a(I(e,"pointer-down")));break;case"pointer-move":this.registerIncoming("pointer-move",n,e=>a(I(e,"pointer-move")));break;case"pointer-up":this.registerIncoming("pointer-up",n,e=>a(I(e,"pointer-up")));break;case"pointer-drag":this.registerIncoming("pointer-drag",n,e=>a(D(e)));break;case"mouse-wheel":this.registerIncoming("mouse-wheel",n,e=>a(P(e)));break;case"pointer-enter":this.registerIncoming("pointer-enter",n,e=>a(I(e,"pointer-enter")));break;case"pointer-leave":this.registerIncoming("pointer-leave",n,e=>a(I(e,"pointer-leave")));break;case"gamepad":this.registerIncoming("gamepad",n,e=>{a(_(e))});break;case"focus":this.registerIncoming("focus",n,e=>{a(u(e))});break;case"blur":this.registerIncoming("blur",n,e=>{a(d(e))})}}_wrapDrag(e){const n=e.data,{x:a,y:r}=n.center,{action:i,pointerType:o,button:s}=n;if("start"===i&&(this._latestDragStart=n),!this._latestDragStart)return;const p=n.pointer.native,c=n.buttons,{cancelable:l,timestamp:u}=e,d={x:this._latestDragStart.center.x,y:this._latestDragStart.center.y};return"end"===i&&(this._latestDragStart=void 0),{type:"drag",action:i,x:a,y:r,origin:d,pointerType:o,button:s,buttons:c,radius:n.radius,angle:t(n.angle),native:p,timestamp:u,cancelable:l,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}}function u(e){return{type:"focus",timestamp:e.timestamp,native:e.data.native,cancelable:e.cancelable,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function d(e){return{type:"blur",timestamp:e.timestamp,native:e.data.native,cancelable:e.cancelable,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function m(e,t){const{pointerType:a,button:r,buttons:i,x:o,y:s,native:p,eventId:c}=t.data,{cancelable:l,timestamp:u}=t;return{type:"click",pointerType:a,button:r,buttons:i,x:o,y:s,native:p,timestamp:u,screenPoint:n(o,s),mapPoint:b(e,o,s),eventId:c,cancelable:l,stopPropagation:()=>t.stopPropagation(),defer:e=>t.defer(e),preventDefault:()=>t.preventDefault()}}function g(e,t){const{pointerType:n,button:a,buttons:r,x:i,y:o,native:s,eventId:p}=t.data,{cancelable:c,timestamp:l}=t;return{type:"double-click",pointerType:n,button:a,buttons:r,x:i,y:o,native:s,timestamp:l,mapPoint:b(e,i,o),eventId:p,cancelable:c,stopPropagation:()=>t.stopPropagation(),defer:e=>t.defer(e),preventDefault:()=>t.preventDefault()}}function f(e,t){const{pointerType:n,button:a,buttons:r,x:i,y:o,native:s,eventId:p}=t.data,c=s.pointerId,{cancelable:l,timestamp:u}=t;return{type:"immediate-click",pointerId:c,pointerType:n,button:a,buttons:r,x:i,y:o,native:s,timestamp:u,mapPoint:b(e,i,o),eventId:p,cancelable:l,stopPropagation:()=>t.stopPropagation(),defer:e=>t.defer(e),preventDefault:()=>t.preventDefault()}}function v(e,t){const{pointerType:n,button:a,buttons:r,x:i,y:o,native:s,eventId:p}=t.data,c=s.pointerId,{cancelable:l,timestamp:u}=t;return{type:"immediate-double-click",pointerId:c,pointerType:n,button:a,buttons:r,x:i,y:o,native:s,timestamp:u,mapPoint:b(e,i,o),eventId:p,cancelable:l,stopPropagation:()=>t.stopPropagation(),defer:e=>t.defer(e),preventDefault:()=>t.preventDefault()}}function h(e,t){const{pointerType:n,button:a,buttons:r,x:i,y:o,native:s}=t.data,{cancelable:p,timestamp:c}=t;return{type:"hold",pointerType:n,button:a,buttons:r,x:i,y:o,native:s,timestamp:c,mapPoint:b(e,i,o),cancelable:p,stopPropagation:()=>t.stopPropagation(),defer:e=>t.defer(e),preventDefault:()=>t.preventDefault()}}function b(e,t,a){return e.toMap(n(t,a),{exclude:[]})}function y(e){const{key:t,repeat:n,native:a}=e.data,{cancelable:r,timestamp:i}=e;return{type:"key-down",key:t,repeat:n,native:a,timestamp:i,cancelable:r,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function k(e){const{key:t,native:n}=e.data,{cancelable:a,timestamp:r}=e;return{type:"key-up",key:t,native:n,timestamp:r,cancelable:a,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function I(e,t){const{x:n,y:a,button:r,buttons:i,native:o,eventId:s}=e.data,p=o.pointerId,c=o.pointerType,{cancelable:l,timestamp:u}=e;return{type:t,x:n,y:a,pointerId:p,pointerType:c,button:r,buttons:i,native:o,timestamp:u,eventId:s,cancelable:l,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function D(e){const{x:t,y:n,buttons:a,native:r,eventId:i}=e.data.currentEvent,{button:o}=e.data.startEvent,s=e.data.startEvent.native.pointerId,p=e.data.startEvent.native.pointerType,c=e.data.action,l={x:e.data.startEvent.x,y:e.data.startEvent.y},{cancelable:u,timestamp:d}=e;return{type:"pointer-drag",x:t,y:n,pointerId:s,pointerType:p,button:o,buttons:a,action:c,origin:l,native:r,timestamp:d,eventId:i,cancelable:u,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function P(e){const{cancelable:t,data:n,timestamp:a}=e,{x:r,y:i,deltaY:o,native:s}=n;return{type:"mouse-wheel",x:r,y:i,deltaY:o,native:s,timestamp:a,cancelable:t,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function _(e){const{action:t,state:n,device:a}=e.data,{cancelable:r,timestamp:i}=e,{buttons:o,axes:s}=n;return{type:"gamepad",device:a,timestamp:i,action:t,buttons:o,axes:s,cancelable:r,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}export{c as ViewEvents,i as eventTypes};
5
+ import{makeHandle as e}from"../../core/handleUtils.js";import"../../core/has.js";import{rad2deg as t}from"../../core/mathUtils.js";import{createScreenPoint as n}from"../../core/screenUtils.js";import{InputHandler as a}from"./InputHandler.js";import{ViewEventPriorities as r}from"./InputManager.js";const i=["click","double-click","immediate-click","immediate-double-click","hold","drag","key-down","key-up","pointer-down","pointer-move","pointer-up","pointer-drag","mouse-wheel","pointer-enter","pointer-leave","gamepad","focus","blur","double-tap-drag","vertical-two-finger-drag"],o={};function s(e){return!!o[e]}function p(e){for(const t of e)if(!s(t))return!1;return!0}i.forEach(e=>{o[e]=!0});class c{constructor(e){this._handlers=new Map,this._counter=0,this._handlerCounts=new Map,this.view=e,this.inputManager=null}connect(e){e&&this.disconnect(),this.inputManager=e,this._handlers.forEach(({handler:e,priority:t},n)=>this.inputManager?.installHandlers(n,[e],t))}disconnect(){this.inputManager&&this._handlers.forEach((e,t)=>this.inputManager?.uninstallHandlers(t)),this.inputManager=null}destroy(){this.disconnect(),this._handlers.clear(),this.view=null}on(t,n,a,i){const o=Array.isArray(t)?t:t.split(",");if(!p(o))return o.some(s)&&console.error("Error: registering input events and other events on the view at the same time is not supported."),null;let c,u;Array.isArray(n)?u=n:(c=n,u=[]),"function"==typeof a?c=a:i=a,i=null!=i?i:r.DEFAULT;const d=this._createUniqueGroupName(),m=new l(this.view,o,u,c);this._handlers.set(d,{handler:m,priority:i});for(const e of o){const t=this._handlerCounts.get(e)||0;this._handlerCounts.set(e,t+1)}return this.inputManager&&this.inputManager.installHandlers(d,[m],i),e(()=>this._removeHandler(d,o))}hasHandler(e){return!!this._handlerCounts.get(e)}_removeHandler(e,t){if(this._handlers.has(e)){this._handlers.delete(e);for(const e of t){const t=this._handlerCounts.get(e);void 0===t||(1===t?this._handlerCounts.delete(e):this._handlerCounts.set(e,t-1))}}this.inputManager&&this.inputManager.uninstallHandlers(e)}_createUniqueGroupName(){return this._counter+=1,`viewEvents_${this._counter}`}}class l extends a{constructor(e,t,n,a){super(!0),this._latestDragStart=void 0,this.view=e;for(const r of t)switch(r){case"click":this.registerIncoming("click",n,t=>a(m(e,t)));break;case"double-click":this.registerIncoming("double-click",n,t=>a(g(e,t)));break;case"immediate-click":this.registerIncoming("immediate-click",n,t=>a(f(e,t)));break;case"immediate-double-click":this.registerIncoming("immediate-double-click",n,t=>a(v(e,t)));break;case"hold":this.registerIncoming("hold",n,t=>a(b(e,t)));break;case"drag":this.registerIncoming("drag",n,e=>{const t=this._wrapDrag(e);t&&a(t)});break;case"key-down":this.registerIncoming("key-down",n,e=>a(y(e)));break;case"key-up":this.registerIncoming("key-up",n,e=>a(k(e)));break;case"pointer-down":this.registerIncoming("pointer-down",n,e=>a(I(e,"pointer-down")));break;case"pointer-move":this.registerIncoming("pointer-move",n,e=>a(I(e,"pointer-move")));break;case"pointer-up":this.registerIncoming("pointer-up",n,e=>a(I(e,"pointer-up")));break;case"pointer-drag":this.registerIncoming("pointer-drag",n,e=>a(D(e)));break;case"mouse-wheel":this.registerIncoming("mouse-wheel",n,e=>a(P(e)));break;case"pointer-enter":this.registerIncoming("pointer-enter",n,e=>a(I(e,"pointer-enter")));break;case"pointer-leave":this.registerIncoming("pointer-leave",n,e=>a(I(e,"pointer-leave")));break;case"gamepad":this.registerIncoming("gamepad",n,e=>{a(_(e))});break;case"focus":this.registerIncoming("focus",n,e=>{a(u(e))});break;case"blur":this.registerIncoming("blur",n,e=>{a(d(e))});break;case"double-tap-drag":this.registerIncoming("double-tap-drag",n,e=>a(x(e)));break;case"vertical-two-finger-drag":this.registerIncoming("vertical-two-finger-drag",n,e=>a(w(e)))}}_wrapDrag(e){const n=e.data,{x:a,y:r}=n.center,{action:i,pointerType:o,button:s}=n;if("start"===i&&(this._latestDragStart=n),!this._latestDragStart)return;const p=n.pointer.native,c=n.buttons,{cancelable:l,timestamp:u}=e,d={x:this._latestDragStart.center.x,y:this._latestDragStart.center.y};return"end"===i&&(this._latestDragStart=void 0),{type:"drag",action:i,x:a,y:r,origin:d,pointerType:o,button:s,buttons:c,radius:n.radius,angle:t(n.angle),native:p,timestamp:u,cancelable:l,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}}function u(e){return{type:"focus",timestamp:e.timestamp,native:e.data.native,cancelable:e.cancelable,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function d(e){return{type:"blur",timestamp:e.timestamp,native:e.data.native,cancelable:e.cancelable,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function m(e,t){const{pointerType:a,button:r,buttons:i,x:o,y:s,native:p,eventId:c}=t.data,{cancelable:l,timestamp:u}=t;return{type:"click",pointerType:a,button:r,buttons:i,x:o,y:s,native:p,timestamp:u,screenPoint:n(o,s),mapPoint:h(e,o,s),eventId:c,cancelable:l,stopPropagation:()=>t.stopPropagation(),defer:e=>t.defer(e),preventDefault:()=>t.preventDefault()}}function g(e,t){const{pointerType:n,button:a,buttons:r,x:i,y:o,native:s,eventId:p}=t.data,{cancelable:c,timestamp:l}=t;return{type:"double-click",pointerType:n,button:a,buttons:r,x:i,y:o,native:s,timestamp:l,mapPoint:h(e,i,o),eventId:p,cancelable:c,stopPropagation:()=>t.stopPropagation(),defer:e=>t.defer(e),preventDefault:()=>t.preventDefault()}}function f(e,t){const{pointerType:n,button:a,buttons:r,x:i,y:o,native:s,eventId:p}=t.data,c=s.pointerId,{cancelable:l,timestamp:u}=t;return{type:"immediate-click",pointerId:c,pointerType:n,button:a,buttons:r,x:i,y:o,native:s,timestamp:u,mapPoint:h(e,i,o),eventId:p,cancelable:l,stopPropagation:()=>t.stopPropagation(),defer:e=>t.defer(e),preventDefault:()=>t.preventDefault()}}function v(e,t){const{pointerType:n,button:a,buttons:r,x:i,y:o,native:s,eventId:p}=t.data,c=s.pointerId,{cancelable:l,timestamp:u}=t;return{type:"immediate-double-click",pointerId:c,pointerType:n,button:a,buttons:r,x:i,y:o,native:s,timestamp:u,mapPoint:h(e,i,o),eventId:p,cancelable:l,stopPropagation:()=>t.stopPropagation(),defer:e=>t.defer(e),preventDefault:()=>t.preventDefault()}}function b(e,t){const{pointerType:n,button:a,buttons:r,x:i,y:o,native:s}=t.data,{cancelable:p,timestamp:c}=t;return{type:"hold",pointerType:n,button:a,buttons:r,x:i,y:o,native:s,timestamp:c,mapPoint:h(e,i,o),cancelable:p,stopPropagation:()=>t.stopPropagation(),defer:e=>t.defer(e),preventDefault:()=>t.preventDefault()}}function h(e,t,a){return e.toMap(n(t,a),{exclude:[]})}function y(e){const{key:t,repeat:n,native:a}=e.data,{cancelable:r,timestamp:i}=e;return{type:"key-down",key:t,repeat:n,native:a,timestamp:i,cancelable:r,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function k(e){const{key:t,native:n}=e.data,{cancelable:a,timestamp:r}=e;return{type:"key-up",key:t,native:n,timestamp:r,cancelable:a,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function I(e,t){const{x:n,y:a,button:r,buttons:i,native:o,eventId:s}=e.data,p=o.pointerId,c=o.pointerType,{cancelable:l,timestamp:u}=e;return{type:t,x:n,y:a,pointerId:p,pointerType:c,button:r,buttons:i,native:o,timestamp:u,eventId:s,cancelable:l,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function D(e){const{x:t,y:n,buttons:a,native:r,eventId:i}=e.data.currentEvent,{button:o}=e.data.startEvent,s=e.data.startEvent.native.pointerId,p=e.data.startEvent.native.pointerType,c=e.data.action,l={x:e.data.startEvent.x,y:e.data.startEvent.y},{cancelable:u,timestamp:d}=e;return{type:"pointer-drag",x:t,y:n,pointerId:s,pointerType:p,button:o,buttons:a,action:c,origin:l,native:r,timestamp:d,eventId:i,cancelable:u,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function P(e){const{cancelable:t,data:n,timestamp:a}=e,{x:r,y:i,deltaY:o,native:s}=n;return{type:"mouse-wheel",x:r,y:i,deltaY:o,native:s,timestamp:a,cancelable:t,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function _(e){const{action:t,state:n,device:a}=e.data,{cancelable:r,timestamp:i}=e,{buttons:o,axes:s}=n;return{type:"gamepad",device:a,timestamp:i,action:t,buttons:o,axes:s,cancelable:r,stopPropagation:()=>e.stopPropagation(),defer:t=>e.defer(t),preventDefault:()=>e.preventDefault()}}function x(e){const{cancelable:t,data:n,timestamp:a}=e,{action:r,button:i,buttons:o,pointer:s,pointerType:p,delta:c}=n,{native:l}=s,{x:u,y:d}=c;return{type:"double-tap-drag",action:r,button:i,buttons:o,cancelable:t,native:l,pointerType:p,timestamp:a,x:u,y:d,defer:t=>e.defer(t),preventDefault:()=>e.preventDefault(),stopPropagation:()=>e.stopPropagation()}}function w(e){const{cancelable:t,data:n,timestamp:a}=e,{action:r,delta:i,pointer:o}=n,{native:s}=o;return{type:"vertical-two-finger-drag",action:r,cancelable:t,native:s,timestamp:a,y:i,defer:t=>e.defer(t),preventDefault:()=>e.preventDefault(),stopPropagation:()=>e.stopPropagation()}}export{c as ViewEvents,i as eventTypes};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{DragEventSeparator as t}from"../DragEventSeparator.js";import{InputHandler as e}from"../InputHandler.js";class a extends e{constructor(e=20,a=40){super(!1),this._threshold=e,this._maxDelta=a,this._state="ready",this._emittedArtificalEnd2=!1,this._vertical=this.registerOutgoing("vertical-two-finger-drag"),this._artificalDrag=this.registerOutgoing("drag"),this._dragEventSeparator=new t({start:(t,e)=>this._observeStart(t,e),update:(t,e,a)=>this._observeUpdate(t,e,a),end:(t,e)=>this._observeEnd(e)}),this.registerIncoming("drag",t=>this._dragEventSeparator.handle(t))}get failed(){return"failed"===this._state}_observeStart(t,e){1===t&&this._emittedArtificalEnd2&&(this._emittedArtificalEnd2=!1,this._artificalDrag.emit({action:"start",button:e.data.button,buttons:e.data.buttons,pointerType:e.data.pointerType,timestamp:e.data.timestamp,pointers:e.data.pointers,pointer:e.data.pointer,angle:e.data.angle,radius:e.data.radius,center:e.data.center}),e.stopPropagation()),this._state=2===t?"ready":"failed"}_observeUpdate(t,e,a){if("failed"!==this._state&&2===t)return"active"===this._state?(this._vertical.emit({delta:e.data.center.y-this._thresholdReachedCenter.y,action:"update"}),void e.stopPropagation()):void(this._checkMovementWithinLimits(e.data,a.data)?this._checkVerticalThresholdReached(e.data,a.data)&&(this._state="active",this._emittedArtificalEnd2=!0,this._thresholdReachedCenter=e.data.center,this._artificalDrag.emit({action:"end",button:e.data.button,buttons:e.data.buttons,pointerType:e.data.pointerType,timestamp:e.data.timestamp,pointers:e.data.pointers,pointer:e.data.pointer,angle:e.data.angle,radius:e.data.radius,center:e.data.center}),this._vertical.emit({delta:e.data.center.y-this._thresholdReachedCenter.y,action:"begin"}),e.stopPropagation()):this._state="failed")}_observeEnd(t){"active"===this._state&&(this._vertical.emit({delta:t.data.center.y-this._thresholdReachedCenter.y,action:"end"}),this._state="ready",t.stopPropagation())}_checkMovementWithinLimits(t,e){let a=-1/0,i=1/0,r=-1/0,s=1/0;for(const{x:m,y:g}of e.pointers.values())a=Math.max(a,m),i=Math.min(i,m),r=Math.max(r,g),s=Math.min(s,g);let n=-1/0,h=1/0,d=-1/0,o=1/0;for(const{x:m,y:g}of t.pointers.values())n=Math.max(n,m),h=Math.min(h,m),d=Math.max(d,g),o=Math.min(o,g);const c=a-i,l=r-s,p=n-h,_=d-o;return Math.abs(t.center.x-e.center.x)<this._threshold&&Math.abs(p-c)<=this._maxDelta&&Math.abs(_-l)<=this._maxDelta}_checkVerticalThresholdReached(t,e){let a=Math.abs(t.center.y-e.center.y);return t.pointers.forEach((t,i)=>{const r=e.pointers.get(i);a=Math.min(a,Math.abs(t.y-r.y))}),a>=this._threshold}}export{a as VerticalTwoFingerDrag};
5
+ import{DragEventSeparator as t}from"../DragEventSeparator.js";import{InputHandler as e}from"../InputHandler.js";class a extends e{constructor(e=20,a=40){super(!1),this._threshold=e,this._maxDelta=a,this._state="ready",this._emittedArtificalEnd2=!1,this._vertical=this.registerOutgoing("vertical-two-finger-drag"),this._artificalDrag=this.registerOutgoing("drag"),this._dragEventSeparator=new t({start:(t,e)=>this._observeStart(t,e),update:(t,e,a)=>this._observeUpdate(t,e,a),end:(t,e)=>this._observeEnd(e)}),this.registerIncoming("drag",t=>this._dragEventSeparator.handle(t))}get failed(){return"failed"===this._state}_observeStart(t,e){1===t&&this._emittedArtificalEnd2&&(this._emittedArtificalEnd2=!1,this._artificalDrag.emit({action:"start",button:e.data.button,buttons:e.data.buttons,pointerType:e.data.pointerType,timestamp:e.data.timestamp,pointers:e.data.pointers,pointer:e.data.pointer,angle:e.data.angle,radius:e.data.radius,center:e.data.center}),e.stopPropagation()),this._state=2===t?"ready":"failed"}_observeUpdate(t,e,a){if("failed"!==this._state&&2===t)return"active"===this._state?(this._vertical.emit({delta:e.data.center.y-this._thresholdReachedCenter.y,action:"update",pointer:e.data.pointer}),void e.stopPropagation()):void(this._checkMovementWithinLimits(e.data,a.data)?this._checkVerticalThresholdReached(e.data,a.data)&&(this._state="active",this._emittedArtificalEnd2=!0,this._thresholdReachedCenter=e.data.center,this._artificalDrag.emit({action:"end",button:e.data.button,buttons:e.data.buttons,pointerType:e.data.pointerType,timestamp:e.data.timestamp,pointers:e.data.pointers,pointer:e.data.pointer,angle:e.data.angle,radius:e.data.radius,center:e.data.center}),this._vertical.emit({delta:e.data.center.y-this._thresholdReachedCenter.y,action:"begin",pointer:e.data.pointer}),e.stopPropagation()):this._state="failed")}_observeEnd(t){"active"===this._state&&(this._vertical.emit({delta:t.data.center.y-this._thresholdReachedCenter.y,action:"end",pointer:t.data.pointer}),this._state="ready",t.stopPropagation())}_checkMovementWithinLimits(t,e){let a=-1/0,i=1/0,r=-1/0,s=1/0;for(const{x:m,y:g}of e.pointers.values())a=Math.max(a,m),i=Math.min(i,m),r=Math.max(r,g),s=Math.min(s,g);let n=-1/0,o=1/0,d=-1/0,h=1/0;for(const{x:m,y:g}of t.pointers.values())n=Math.max(n,m),o=Math.min(o,m),d=Math.max(d,g),h=Math.min(h,g);const c=a-i,p=r-s,l=n-o,_=d-h;return Math.abs(t.center.x-e.center.x)<this._threshold&&Math.abs(l-c)<=this._maxDelta&&Math.abs(_-p)<=this._maxDelta}_checkVerticalThresholdReached(t,e){let a=Math.abs(t.center.y-e.center.y);return t.pointers.forEach((t,i)=>{const r=e.pointers.get(i);a=Math.min(a,Math.abs(t.y-r.y))}),a>=this._threshold}}export{a as VerticalTwoFingerDrag};
@@ -653,6 +653,78 @@ export interface LayerViewDestroyEvent {
653
653
  layerView: LayerView;
654
654
  }
655
655
 
656
+ /** @since 5.0 */
657
+ export interface DoubleTapDragEvent extends ViewEvent<PointerEvent | MouseEvent> {
658
+ /**
659
+ * Indicates the state of the drag.
660
+ * The two values `added` and `removed` indicate a change in the number of pointers involved.
661
+ *
662
+ * @since 5.0
663
+ */
664
+ action: "begin" | "update" | "end";
665
+ /**
666
+ * Indicates which mouse button was clicked at the start of the drag.
667
+ * See [MouseEvent.button](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button).
668
+ *
669
+ * Value | Description
670
+ * ------|------------
671
+ * 0 | left mouse button (or touch)
672
+ * 1 | middle mouse button
673
+ * 2 | right mouse button
674
+ *
675
+ * @since 5.0
676
+ */
677
+ button: MouseButton;
678
+ /**
679
+ * Indicates which mouse buttons are pressed when the event is triggered.
680
+ * See [MouseEvent.buttons](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons).
681
+ *
682
+ * @since 5.0
683
+ */
684
+ buttons: number;
685
+ /**
686
+ * The event type.
687
+ *
688
+ * @since 5.0
689
+ */
690
+ type: "double-tap-drag";
691
+ /**
692
+ * The horizontal distance from the drag origin in pixels.
693
+ *
694
+ * @since 5.0
695
+ */
696
+ x: number;
697
+ /**
698
+ * The vertical distance from the drag origin in pixels.
699
+ *
700
+ * @since 5.0
701
+ */
702
+ y: number;
703
+ }
704
+
705
+ /** @since 5.0 */
706
+ export interface VerticalTwoFingerDragEvent extends ViewEvent<PointerEvent | MouseEvent> {
707
+ /**
708
+ * Indicates the state of the drag.
709
+ * The two values `added` and `removed` indicate a change in the number of pointers involved.
710
+ *
711
+ * @since 5.0
712
+ */
713
+ action: "begin" | "update" | "end";
714
+ /**
715
+ * The event type.
716
+ *
717
+ * @since 5.0
718
+ */
719
+ type: "vertical-two-finger-drag";
720
+ /**
721
+ * The vertical distance from the drag origin in pixels.
722
+ *
723
+ * @since 5.0
724
+ */
725
+ y: number;
726
+ }
727
+
656
728
  /** @since 5.0 */
657
729
  export interface ViewBaseEventTypes {
658
730
  /**
@@ -766,6 +838,17 @@ export interface ViewEventTypes extends ViewBaseEventTypes {
766
838
  * });
767
839
  */
768
840
  "double-click": DoubleClickEvent;
841
+ /**
842
+ * Fires while the pointer is drag following a double-tap gesture on the view.
843
+ *
844
+ * @since 5.0
845
+ * @example
846
+ * view.on("double-tap-drag", (event) => {
847
+ * // Display the distance moved from the drag origin.
848
+ * console.log("x distance:", event.x, "y distance:", event.y);
849
+ * });
850
+ */
851
+ "double-tap-drag": DoubleTapDragEvent;
769
852
  /**
770
853
  * Fires during a pointer drag on the view.
771
854
  *
@@ -901,4 +984,15 @@ export interface ViewEventTypes extends ViewBaseEventTypes {
901
984
  * @since 5.0
902
985
  */
903
986
  "pointer-up": PointerUpEvent;
987
+ /**
988
+ * Fires while the two pointers are dragged on the view.
989
+ *
990
+ * @since 5.0
991
+ * @example
992
+ * view.on("vertical-two-finger-drag", (event) => {
993
+ * // Display the distance moved vertically from the drag origin.
994
+ * console.log("y distance:", event.y);
995
+ * });
996
+ */
997
+ "vertical-two-finger-drag": VerticalTwoFingerDragEvent;
904
998
  }
@@ -27,6 +27,7 @@ export interface FeatureSnappingLayerSourceProperties<T extends Layer | SubtypeS
27
27
  * > [!WARNING]
28
28
  * >
29
29
  * > **Known Limitations**
30
+ * >
30
31
  * > Layer types currently supported for snapping are: [FeatureLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html),
31
32
  * > [GraphicsLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-GraphicsLayer.html) (except Mesh geometries), [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-GeoJSONLayer.html),
32
33
  * > [WFSLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-WFSLayer.html), [CSVLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-CSVLayer.html),
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{property as t,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{drawContentHeaderActions as i}from"../css.js";import{directionModeIcons as s}from"./directionModeIcons.js";import r from"../../../../widgets/Widget.js";import{loadCalciteComponents as n}from"../../../../widgets/support/componentsUtils.js";import{messageBundle as c,tsx as d}from"../../../../widgets/support/widget.js";let l=class extends r{constructor(e){super(e),this.visibleElements={}}render(){return d("div",{class:i},this._isElementVisible("direction")?d(a,{messages:this.messages,sketchOptions:this.sketchOptions}):null)}loadDependencies(){return n({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group")})}_isElementVisible(e){return this.visibleElements?.[e]??this.sketchOptions.tooltips.visibleElements[e]}};function a(e){const{directionMode:t}=e.sketchOptions.values,o=e.messages?.sketch,i=o?.directionModeSelect?.title,r="absolute",n="relative";return d("calcite-dropdown",{key:"direction-mode",placement:"bottom-end",scale:"s",widthScale:"s",onCalciteDropdownSelect:t=>{const o=t.currentTarget.selectedItems?.[0]?.getAttribute("data-mode");e.sketchOptions.values.directionMode=o??"absolute"}},d("calcite-button",{alignment:"end",appearance:"transparent",iconStart:s[t],kind:"neutral",label:i,scale:"s",slot:"trigger",title:i}),d("calcite-dropdown-group",{selectionMode:"single"},d("calcite-dropdown-item",{"data-mode":n,"data-testid":"tooltip-direction-mode-relative",iconStart:s.relative,key:"relative",selected:t===n},o?.directionModeSelect?.relative),d("calcite-dropdown-item",{"data-mode":r,"data-testid":"tooltip-direction-mode-absolute",iconStart:s.absolute,key:"absolute",selected:t===r},o?.directionModeSelect?.absolute)))}e([c("esri/views/interactive/tooltip/t9n/Tooltip"),t()],l.prototype,"messages",void 0),e([t()],l.prototype,"sketchOptions",void 0),e([t()],l.prototype,"visibleElements",void 0),l=e([o("esri.views.interactive.tooltip.components.DrawHeaderActions")],l);export{l as DrawHeaderActions};
5
+ import{__decorate as e}from"tslib";import{property as t,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{drawContentHeaderActions as i}from"../css.js";import{directionModeIcons as s}from"./directionModeIcons.js";import r from"../../../../widgets/Widget.js";import{loadCalciteComponents as n}from"../../../../widgets/support/componentsUtils.js";import{messageBundle as c,tsx as d}from"../../../../widgets/support/widget.js";let l=class extends r{constructor(e){super(e),this.visibleElements={}}render(){return d("div",{class:i},this._isElementVisible("direction")?d(p,{messages:this.messages,sketchOptions:this.sketchOptions}):null)}loadDependencies(){return n({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),dropdown:()=>import("@esri/calcite-components/dist/components/calcite-dropdown"),"dropdown-item":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-item"),"dropdown-group":()=>import("@esri/calcite-components/dist/components/calcite-dropdown-group")})}_isElementVisible(e){return this.visibleElements?.[e]??this.sketchOptions.tooltips.visibleElements[e]}};function p(e){const{directionMode:t}=e.sketchOptions.values,o=e.messages?.sketch,i=o?.directionModeSelect?.title,r="absolute",n="relative";return d("calcite-dropdown",{key:"direction-mode",placement:"bottom-end",scale:"s",onCalciteDropdownSelect:t=>{const o=t.currentTarget.selectedItems?.[0]?.getAttribute("data-mode");e.sketchOptions.values.directionMode=o??"absolute"}},d("calcite-button",{alignment:"end",appearance:"transparent",iconStart:s[t],kind:"neutral",label:i,scale:"s",slot:"trigger",title:i}),d("calcite-dropdown-group",{selectionMode:"single"},d("calcite-dropdown-item",{"data-mode":n,"data-testid":"tooltip-direction-mode-relative",iconStart:s.relative,key:"relative",selected:t===n},o?.directionModeSelect?.relative),d("calcite-dropdown-item",{"data-mode":r,"data-testid":"tooltip-direction-mode-absolute",iconStart:s.absolute,key:"absolute",selected:t===r},o?.directionModeSelect?.absolute)))}e([c("esri/views/interactive/tooltip/t9n/Tooltip"),t()],l.prototype,"messages",void 0),e([t()],l.prototype,"sketchOptions",void 0),e([t()],l.prototype,"visibleElements",void 0),l=e([o("esri.views.interactive.tooltip.components.DrawHeaderActions")],l);export{l as DrawHeaderActions};
@@ -443,6 +443,7 @@ export abstract class FeatureLayerViewMixin {
443
443
  * > [!WARNING]
444
444
  * >
445
445
  * > **Notes**
446
+ * >
446
447
  * > The `queryAttributeBins()` method is unrelated to querying bins in [FeatureReductionBinning](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-FeatureReductionBinning.html).
447
448
  *
448
449
  * @param binsQuery - Specifies the parameters of the `queryAttributeBins()` operation. The [AttributeBinsQuery#binParameters](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-AttributeBinsQuery.html#binParameters) property must be set.
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{createArea as t,createLength as r}from"../../core/quantity.js";import e from"../../geometry/Polygon.js";import o from"../../geometry/Polyline.js";import{l as i,e as n}from"../../chunks/geodeticAreaOperator.js";import{l as a,e as s}from"../../chunks/geodeticLengthOperator.js";async function m({geometryJSON:r,options:o}){await i();const a=e.fromJSON(r),s=o?.unit??"square-meters",{execute:m}=await import("../../geometry/operators/simplifyOperator.js"),p=m(a)??a,c=n(p,{unit:s,...o});return{area:t(c,s),centroid:o?.returnCentroid?(await u(p)).toJSON():void 0}}async function u(t){const{execute:r}=await import("../../geometry/operators/centroidOperator.js");return r(t)}async function p({geometryJSON:t,options:i}){await a();const n=i?.unit??"meters",m={...i,unit:n},u="rings"in t?e.fromJSON(t):o.fromJSON(t);return r(s(u,m),n)}async function c({geometryJSON:r,options:o}){const i=e.fromJSON(r),n=o?.unit??"square-meters",[{execute:a},{execute:s}]=await Promise.all([import("../../geometry/operators/simplifyOperator.js"),import("../../geometry/operators/areaOperator.js")]),m=a(i)??i,p=s(m,{unit:n,...o});return{area:t(p,n),centroid:o?.returnCentroid?(await u(m)).toJSON():void 0}}async function y({geometryJSON:t,options:i}){const{execute:n}=await import("../../geometry/operators/lengthOperator.js"),a=i?.unit??"meters",s={...i,unit:a},m="rings"in t?e.fromJSON(t):o.fromJSON(t);return r(n(m,s),a)}export{m as geodesicArea,p as geodesicLength,c as planarArea,y as planarLength};
5
+ import{createArea as e,createLength as t}from"../../core/quantity.js";import{deriveLengthUnitFromAreaUnit as r}from"../../core/units.js";import{set as o,scale as n,normalize as i,cross as a,subtract as s,dot as c,add as m}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as p}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{isEarth as f,isSphericalECEF as l}from"../../geometry/ellipsoidUtils.js";import u from"../../geometry/Point.js";import g from"../../geometry/Polygon.js";import y from"../../geometry/Polyline.js";import{projectWithoutEngine as h}from"../../geometry/projectionUtils.js";import d from"../../geometry/SpatialReference.js";import{WGS84ECEFSpatialReference as j,getSphericalPCPF as R,SphericalECEFSpatialReference as O}from"../../geometry/spatialReferenceEllipsoidUtils.js";import{l as w,e as S}from"../../chunks/geodeticAreaOperator.js";import{l as J,e as N}from"../../chunks/geodeticLengthOperator.js";import{projectDirection as x}from"../../geometry/projection/projectDirection.js";import{isWGS84 as v,isWebMercator as P,isCGCS2000 as U,equals as M}from"../../geometry/support/spatialReferenceUtils.js";import{makeOrthonormal as k}from"../3d/support/mathUtils.js";async function C({geometryJSON:t,options:o}){await w();const n=b(t,o),i=o?.unit??"square-meters",{execute:a}=await import("../../geometry/operators/simplifyOperator.js"),s=a(n)??n,c=S(s,{unit:i,...o}),m=e(c,i),p=o?.lengthUnit??r(i),[f,l]=await Promise.all([o?.returnCentroid?q(s).then(e=>e.toJSON()):void 0,o?.returnLength?z(s,{unit:p}):void 0]);return{area:m,centroid:f,length:l}}function b(e,t){const r="rings"in e?g.fromJSON(e):y.fromJSON(e);if(t?.stagedPoint){const e=u.fromJSON(t.stagedPoint),o=("rings"in r?r.rings:r.paths).at(-1);if(o){const{x:t,y:n,z:i,m:a}=e,s=r.hasZ&&r.hasM?[t,n,i??0,a??0]:r.hasZ?[t,n,i??0]:r.hasM?[t,n,a??0]:[t,n];o.push(s)}}return r}async function q(e){const{execute:t}=await import("../../geometry/operators/centroidOperator.js");return t(e)}async function z(e,r){await J();const o=r?.unit??"meters";return t(N(e,{...r,unit:o}),o)}async function E({geometryJSON:e,options:t}){return z(b(e,t),t)}function L({geometryJSON:e,options:t}){return Z(b(e,t),t)}async function Z(t,o){const n=o?.unit??"square-meters",i=o?.lengthUnit??r(n),[{execute:a},{execute:s}]=await Promise.all([import("../../geometry/operators/simplifyOperator.js"),import("../../geometry/operators/areaOperator.js")]),c=a(t)??t,m=s(c,{unit:n,...o}),p=e(m,n),[f,l]=await Promise.all([o?.returnCentroid?q(c).then(e=>e.toJSON()):void 0,o?.returnLength?$(c,{unit:i}):void 0]);return{area:p,centroid:f,length:l}}async function $(e,r){const{execute:o}=await import("../../geometry/operators/lengthOperator.js"),n=r?.unit??"meters";return t(o(e,{...r,unit:n}),n)}async function A({geometryJSON:e,options:t}){return $(b(e,t),t)}async function D(e){const{geometryJSON:t}=e,r=G(t.spatialReference);if(!r)throw new Error("Cannot compute horizontal area without a valid spatial reference.");switch(r.mode){case 0:return L(e);case 1:return W(r,e)}}async function W(e,{geometryJSON:t,options:r}){const o=b(t,r),n=K,i=H,a=I,s=M(o.spatialReference,e.spatialReference)?o.clone():h(o,o.spatialReference,e.spatialReference);if(!s)throw new Error(`Cannot project geometry from ${o.spatialReference?.wkid??"unknown"} to ${e.spatialReference.wkid}.`);F(s,n,i,a);const{area:c,centroid:m,length:p}=await Z(s,r);return{area:c,centroid:B(m,n,i,a,e.spatialReference,o.spatialReference),length:p}}function B(e,t,r,o,i,a){if(!e)return e;n(r,r,e.x),n(o,o,e.y);const s=Q;return m(s,r,o),m(s,s,t),e.x=s[0],e.y=s[1],e.z=s[2],e.spatialReference=i,h(e,e.spatialReference,a)?.toJSON()??void 0}function F(e,t,r,m){let p=0;o(t,0,0,0);for(const o of e.rings)for(const e of o)t[0]+=e[0],t[1]+=e[1],t[2]+=e[2],p++;n(t,t,1/p);const f=T;i(f,t);const l=V,u=Math.atan2(f[1],f[0]);o(l,-Math.sin(u),Math.cos(u),0),M(e.spatialReference,j)&&(x(t,f,O,f,e.spatialReference),x(t,l,O,l,e.spatialReference)),k(l,f,r),a(m,r,f);const g=Q;for(const n of e.rings)for(const e of n){o(g,e[0],e[1],e[2]),s(g,g,t);const n=c(r,g),i=c(m,g);e[0]=n,e[1]=i}e.hasZ=!1,e.spatialReference=d.WebMercator}function G(e){return e?f(e)?v(e)||P(e)||U(e)||l(e)||M(e,j)?{mode:1,spatialReference:j}:{mode:0,spatialReference:e}:{mode:1,spatialReference:R(e)}:null}const H=p(),I=p(),K=p(),Q=p(),T=p(),V=p();export{L as area2D,D as areaHorizontal,C as geodesicArea,E as geodesicLength,A as length2D};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{WorkerHandle as t}from"../../core/workers/WorkerHandle.js";import e from"../../geometry/Point.js";class o extends t{constructor(){super("MeasurementWorker","geodesicArea",{},void 0,{strategy:"distributed"})}async geodesicArea(t,o,r){const i=this._geometryWithStagedPointJSON(t,o),{area:n,centroid:a}=await this.invokeMethod("geodesicArea",{geometryJSON:i,options:o},r);return{area:n,centroid:a?e.fromJSON(a):void 0}}geodesicLength(t,e,o){const r=this._geometryWithStagedPointJSON(t,e);return this.invokeMethod("geodesicLength",{geometryJSON:r,options:e},o)}async planarArea(t,o,r){const i=this._geometryWithStagedPointJSON(t,o),{area:n,centroid:a}=await this.invokeMethod("planarArea",{geometryJSON:i,options:o},r);return{area:n,centroid:a?e.fromJSON(a):void 0}}planarLength(t,e,o){const r=this._geometryWithStagedPointJSON(t,e);return this.invokeMethod("planarLength",{geometryJSON:r,options:e},o)}_geometryWithStagedPointJSON(t,e){const o=t.toJSON();if(e?.stagedPoint){const r="paths"in o?o.paths:o.rings;r.at(-1)?.push(this._pointToArray(e.stagedPoint,t))}return o}_pointToArray(t,{hasZ:e,hasM:o}){return e&&o?[t.x,t.y,t.z??0,t.m??0]:e?[t.x,t.y,t.z??0]:o?[t.x,t.y,t.m??0]:[t.x,t.y]}}export{o as MeasurementWorkerHandle};
5
+ import{WorkerHandle as t}from"../../core/workers/WorkerHandle.js";import e from"../../geometry/Point.js";class o extends t{constructor(){super("MeasurementWorker","geodesicArea",{},void 0,{strategy:"distributed"})}async geodesicArea(t,o,r){const n=t.toJSON(),{area:i,centroid:a,length:s}=await this.invokeMethod("geodesicArea",{geometryJSON:n,options:{...o,stagedPoint:o?.stagedPoint?.toJSON()}},r);return{area:i,centroid:a?e.fromJSON(a):void 0,length:s}}geodesicLength(t,e,o){const r=t.toJSON();return this.invokeMethod("geodesicLength",{geometryJSON:r,options:{...e,stagedPoint:e?.stagedPoint?.toJSON()}},o)}async area2D(t,o,r){const n=t.toJSON(),{area:i,centroid:a,length:s}=await this.invokeMethod("area2D",{geometryJSON:n,options:{...o,stagedPoint:o?.stagedPoint?.toJSON()}},r);return{area:i,centroid:a?e.fromJSON(a):void 0,length:s}}length2D(t,e,o){const r=t.toJSON();return this.invokeMethod("length2D",{geometryJSON:r,options:{...e,stagedPoint:e?.stagedPoint?.toJSON()}},o)}async areaHorizontal(t,o,r){const n=t.toJSON(),{area:i,centroid:a,length:s}=await this.invokeMethod("areaHorizontal",{geometryJSON:n,options:{...o,stagedPoint:o?.stagedPoint?.toJSON()}},r);return{area:i,centroid:a?e.fromJSON(a):void 0,length:s}}}export{o as MeasurementWorkerHandle};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{createArea as t}from"../../core/quantity.js";import{areaUnitFromSpatialReference as o}from"../../core/units.js";import{e as r}from"../../chunks/earcut.js";import{set as n,scaleAndAdd as e,squaredLength as s}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as i}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{projectVectorToVector as c}from"../../geometry/projection/projectVectorToVector.js";import{fromPoints as f,wrap as l,getNormal as u,projectPointLocal as m}from"../../geometry/support/plane.js";import{areaPoints2d as p}from"../../geometry/support/triangle.js";import{computeEuclideanMeasurementSR as a}from"./measurementUtils.js";function g(t,o=x()){return h(t,o)}function j(t,o=x()){return h(t,o,!1)}function h(r,g,j=r.hasZ){const h=a(r.spatialReference),x=o(h);if(null==x)return null;const v=(t,o)=>!(o.length<2)&&(n(t,o[0],o[1],j&&o[2]||0),!0);let C=0;for(const t of r.rings){const o=t.length;if(o<3)continue;const{positionsWorldCoords:a}=g;for(;a.length<o;)a.push(i());const j=y,x=n(d,0,0,0),R=1/o;for(let n=0;n<o;n++){if(!v(j,t[n]))return null;if(!c(j,r.spatialReference,a[n],h))return null;e(x,x,a[n],R)}const V=f(a[0],a[1],x,l());if(0===s(u(V)))continue;for(let t=0;t<o;t++)m(V,x,a[t],a[t]);const W=b(a);for(let t=0;t<W.length;t+=3)C+=p(a[W[t]],a[W[t+1]],a[W[t+2]])}return t(C,x)}const y=i(),d=i();function x(){return{positionsWorldCoords:[]}}function b(t){return r(v(t),[],2)}function v(t){const o=new Float64Array(2*t.length);for(let r=0;r<t.length;++r){const n=t[r],e=2*r;o[e]=n[0],o[e+1]=n[1]}return o}export{h as computeEuclideanPlanarArea,x as createEuclideanPlanarAreaCache,j as euclideanHorizontalPlanarArea,g as euclideanPlanarArea,b as triangulate};
5
+ import{createArea as t}from"../../core/quantity.js";import{areaUnitFromSpatialReference as o}from"../../core/units.js";import{e as r}from"../../chunks/earcut.js";import{set as n,scaleAndAdd as e,squaredLength as s}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as i}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{projectVectorToVector as c}from"../../geometry/projection/projectVectorToVector.js";import{fromPoints as f,wrap as l,getNormal as u,projectPointLocal as m}from"../../geometry/support/plane.js";import{areaPoints2d as p}from"../../geometry/support/triangle.js";import{computeEuclideanMeasurementSR as a}from"./measurementUtils.js";function g(t,o=x()){return h(t,o)}function j(t,o=x()){return h(t,o,!1)}function h(r,g,j=r.hasZ){const h=a(r.spatialReference),x=o(h);if(null==x)return null;const v=(t,o)=>!(o.length<2)&&(n(t,o[0],o[1],j&&o[2]||0),!0);let C=0;for(const t of r.rings){const o=t.length;if(o<3)continue;const{positionsWorldCoords:a}=g;for(;a.length<o;)a.push(i());const j=y,x=n(d,0,0,0),R=1/o;for(let n=0;n<o;n++){if(!v(j,t[n]))return null;if(!c(j,r.spatialReference,a[n],h))return null;e(x,x,a[n],R)}const V=f(a[0],a[1],x,l());if(0===s(u(V)))continue;for(let t=0;t<o;t++)m(V,x,a[t],a[t]);const W=b(a);for(let t=0;t<W.length;t+=3)C+=p(a[W[t]],a[W[t+1]],a[W[t+2]])}return t(C,x)}const y=i(),d=i();function x(){return{positionsWorldCoords:[]}}function b(t){return r(v(t),[],2)}function v(t){const o=new Float64Array(2*t.length);for(let r=0;r<t.length;++r){const n=t[r],e=2*r;o[e]=n[0],o[e+1]=n[1]}return o}export{h as computeEuclideanPlanarArea,x as createEuclideanPlanarAreaCache,j as euclideanHorizontalPlanarArea,g as euclideanPlanarArea,v as flatten2DVertexDataToArray,b as triangulate};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{isSphericalECEF as e}from"../../geometry/ellipsoidUtils.js";import{WGS84ECEFSpatialReference as r,getSphericalPCPF as t}from"../../geometry/spatialReferenceEllipsoidUtils.js";import{isEarth as o,isWGS84 as i,isWebMercator as s,isCGCS2000 as p}from"../../geometry/support/spatialReferenceUtils.js";function l(l){return o(l)?i(l)||s(l)||p(l)||e(l)?r:l:t(l)}export{l as computeEuclideanMeasurementSR};
5
+ import{isEarth as e,isSphericalECEF as r}from"../../geometry/ellipsoidUtils.js";import{WGS84ECEFSpatialReference as t,getSphericalPCPF as o}from"../../geometry/spatialReferenceEllipsoidUtils.js";import{isWGS84 as i,isWebMercator as s,isCGCS2000 as p}from"../../geometry/support/spatialReferenceUtils.js";function l(l){return e(l)?i(l)||s(l)||p(l)||r(l)?t:l:o(l)}export{l as computeEuclideanMeasurementSR};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{createScreenPoint as e,createScreenPointArray as t}from"../../core/screenUtils.js";function n(t){return e(t.x,t.y)}function c(e){return t(e.x,e.y)}function i(t,n){const c=(t instanceof HTMLElement?t:t.surface)?.getBoundingClientRect();return c?e(n.clientX-c.left,n.clientY-c.top):e(0,0)}function r(e,t){return t instanceof Event?i(e,t):n(t)}function o(e){if(e instanceof Event)return!0;if("object"==typeof e&&"type"in e){switch(e.type){case"click":case"double-click":case"pointer-down":case"pointer-drag":case"pointer-enter":case"pointer-leave":case"pointer-up":case"pointer-move":case"immediate-click":case"immediate-double-click":case"hold":case"drag":case"mouse-wheel":return!0;default:return!1}}return!1}export{c as createScreenPointArrayFromEvent,n as createScreenPointFromEvent,i as createScreenPointFromNativeEvent,r as createScreenPointFromSupportedEvent,o as isSupportedScreenPointEvent};
5
+ import{createScreenPoint as e,createScreenPointArray as t}from"../../core/screenUtils.js";function n(t){return e(t.x,t.y)}function c(e){return t(e.x,e.y)}function r(t,n){const c=(t instanceof HTMLElement?t:t.surface)?.getBoundingClientRect();return c?e(n.clientX-c.left,n.clientY-c.top):e(0,0)}function i(e,t){return t instanceof Event?r(e,t):n(t)}function o(e){if(e instanceof Event)return!0;if("object"==typeof e&&"type"in e){switch(e.type){case"click":case"double-click":case"pointer-down":case"pointer-drag":case"pointer-enter":case"pointer-leave":case"pointer-up":case"pointer-move":case"immediate-click":case"immediate-double-click":case"hold":case"drag":case"mouse-wheel":case"double-tap-drag":case"vertical-two-finger-drag":return!0;default:return!1}}return!1}export{c as createScreenPointArrayFromEvent,n as createScreenPointFromEvent,r as createScreenPointFromNativeEvent,i as createScreenPointFromSupportedEvent,o as isSupportedScreenPointEvent};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../core/Error.js";import"../../core/has.js";import t from"../../core/Logger.js";const r=()=>t.getLogger("esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder");class n{constructor(){this._includedModules=new Map}include(e,t){this._includedModules.has(e)?this._includedModules.get(e):(this._includedModules.set(e,t),e(this.builder,t))}}class s extends n{constructor(){super(...arguments),this.vertex=new u,this.fragment=new u,this.attributes=new c,this.varyings=new h,this.outputs=new m}get fragmentUniforms(){return this.fragment.uniforms.entries}get attributeNames(){return this.attributes.names}get builder(){return this}generate(e,t=!1){const r=this.attributes.generateSource(e),n=this.varyings.generateSource(e),s="vertex"===e?this.vertex:this.fragment,i=s.uniforms.generateSource(),a=s.code.generateSource(),o=s.main.generateSource(t),u=this.debugName?`// ${this.debugName}\n`:"",c="vertex"===e?_:l,h=s.constants.generateSource(),m=this.outputs.generateSource(e);return`#version 300 es\n${u}\n${c}\n${h.join("\n")}\n${i.join("\n")}\n${r.join("\n")}\n${n.join("\n")}\n${m.join("\n")}\n${a.join("\n")}\n${o.join("\n")}`}generateBind(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[0];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[0];r&&t.set(e.name,r)});const r=Array.from(t.values()),n=r.length;return t=>{for(let s=0;s<n;++s)r[s](e,t)}}generateBindPass(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[1];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[1];r&&t.set(e.name,r)});const r=Array.from(t.values()),n=r.length;return(t,s)=>{for(let i=0;i<n;++i)r[i](e,t,s)}}generateBindDraw(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[2];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[2];r&&t.set(e.name,r)});const r=Array.from(t.values()),n=r.length;return(t,s,i)=>{for(let a=0;a<n;++a)r[a](e,i,t,s)}}}class i{constructor(e){this._stage=e,this._entries=new Map}add(...e){for(const t of e)this._add(t);return this._stage}get(e){return this._entries.get(e)}_add(t){if(null!=t){if(this._entries.has(t.name)&&!this._entries.get(t.name).equals(t))throw new e("shaderbuilder:duplicate-uniform",`Duplicate uniform name ${t.name} for different uniform type`);this._entries.set(t.name,t)}else r().error(`Trying to add null Uniform from ${(new Error).stack}.`)}generateSource(){return Array.from(this._entries.values()).map(({name:e,arraySize:t,type:r})=>null!=t?`uniform ${r} ${e}[${t}];`:`uniform ${r} ${e};`)}get entries(){return Array.from(this._entries.values())}}class a{constructor(e){this._stage=e,this._bodies=new Array}add(e){return this._bodies.push(e),this._stage}generateSource(t){if(this._bodies.length>0)return[`void main() {\n ${this._bodies.join("\n")||""} \n}`];if(t)throw new e("shaderbuilder:missing-main","Shader does not contain main function body.");return[]}}class o{constructor(e){this._stage=e,this._entries=new Array}add(e){return this._entries.push(e),this._stage}generateSource(){return this._entries}}class u extends n{constructor(){super(...arguments),this.uniforms=new i(this),this.main=new a(this),this.code=new o(this),this.constants=new d(this)}get builder(){return this}}class c{constructor(){this._entries=new Array}add(e,t){this._entries.push([e,t])}generateSource(e){return"fragment"===e?[]:this._entries.map(e=>`in ${e[1]} ${e[0]};`)}get names(){return this._entries.map(([e])=>e)}}class h{constructor(){this._entries=new Map}add(e,t,n){this._entries.has(e)?r().warn(`Ignoring duplicate varying ${t} ${e}`):this._entries.set(e,{type:t,invariant:n?.invariant??!1})}generateSource(e){const t=new Array;return this._entries.forEach((r,n)=>t.push((r.invariant&&"vertex"===e?"invariant ":"")+("int"===r.type?"flat ":"")+("vertex"===e?"out":"in")+` ${r.type} ${n};`)),t}}class m{constructor(){this._entries=new Map}add(e,t,n=0){const s=this._entries.get(n);s?.name!==e||s?.type!==t?this._entries.set(n,{name:e,type:t}):r().warn(`Fragment shader output location ${n} occupied`)}static{this.DEFAULT_TYPE="vec4"}static{this.DEFAULT_NAME="fragColor"}generateSource(e){if("vertex"===e)return[];0===this._entries.size&&this._entries.set(0,{name:m.DEFAULT_NAME,type:m.DEFAULT_TYPE});const t=new Array;return this._entries.forEach((e,r)=>t.push(`layout(location = ${r}) out ${e.type} ${e.name};`)),t}}class d{constructor(e){this._stage=e,this._entries=new Set}add(e,t,r){let n="ERROR_CONSTRUCTOR_STRING";switch(t){case"float":n=d._numberToFloatStr(r);break;case"int":n=d._numberToIntStr(r);break;case"uint":n=d._numberToUintStr(r);break;case"bool":n=r.toString();break;case"vec2":n=`vec2(${d._numberToFloatStr(r[0])}, ${d._numberToFloatStr(r[1])})`;break;case"vec3":n=`vec3(${d._numberToFloatStr(r[0])}, ${d._numberToFloatStr(r[1])}, ${d._numberToFloatStr(r[2])})`;break;case"vec4":n=`vec4(${d._numberToFloatStr(r[0])}, ${d._numberToFloatStr(r[1])}, ${d._numberToFloatStr(r[2])}, ${d._numberToFloatStr(r[3])})`;break;case"ivec2":n=`ivec2(${d._numberToIntStr(r[0])}, ${d._numberToIntStr(r[1])})`;break;case"ivec3":n=`ivec3(${d._numberToIntStr(r[0])}, ${d._numberToIntStr(r[1])}, ${d._numberToIntStr(r[2])})`;break;case"ivec4":n=`ivec4(${d._numberToIntStr(r[0])}, ${d._numberToIntStr(r[1])}, ${d._numberToIntStr(r[2])}, ${d._numberToIntStr(r[3])})`;break;case"uvec2":n=`uvec2(${d._numberToUintStr(r[0])}, ${d._numberToUintStr(r[1])})`;break;case"uvec3":n=`uvec3(${d._numberToUintStr(r[0])}, ${d._numberToUintStr(r[1])}, ${d._numberToUintStr(r[2])})`;break;case"uvec4":n=`uvec4(${d._numberToUintStr(r[0])}, ${d._numberToUintStr(r[1])}, ${d._numberToUintStr(r[2])}, ${d._numberToUintStr(r[3])})`;break;case"mat2":case"mat3":case"mat4":n=`${t}(${Array.prototype.map.call(r,e=>d._numberToFloatStr(e)).join(", ")})`}return this._entries.add(`const ${t} ${e} = ${n};`),this._stage}static _numberToIntStr(e){return e.toFixed(0)}static _numberToUintStr(e){return`${e.toFixed(0)}u`}static _numberToFloatStr(e){return Number.isInteger(e)?e.toFixed(1):e.toString()}generateSource(){return Array.from(this._entries)}}const l="#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n precision highp sampler2DShadow;\n#else\n precision mediump float;\n precision mediump int;\n precision mediump sampler2D;\n precision mediump usampler2D;\n precision mediump sampler2DArray;\n precision mediump sampler2DShadow;\n#endif",_="precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n precision highp sampler2DShadow;\n\n\n invariant gl_Position;\n ";export{o as Code,n as Includes,a as Main,s as ShaderBuilder,u as Stage,i as Uniforms};
5
+ import e from"../../core/Error.js";import"../../core/has.js";import t from"../../core/Logger.js";const r=()=>t.getLogger("esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder");class n{constructor(){this._includedModules=new Map}include(e,t){this._includedModules.has(e)?this._includedModules.get(e):(this._includedModules.set(e,t),e(this.builder,t))}}class s extends n{constructor(){super(...arguments),this.vertex=new u,this.fragment=new u,this.attributes=new c,this.varyings=new h,this.outputs=new m}get attributeNames(){return this.attributes.names}get builder(){return this}generate(e,t=!1){const r=this.attributes.generateSource(e),n=this.varyings.generateSource(e),s="vertex"===e?this.vertex:this.fragment,i=s.uniforms.generateSource(),a=s.code.generateSource(),o=s.main.generateSource(t),u=this.debugName?`// ${this.debugName}\n`:"",c="vertex"===e?_:l,h=s.constants.generateSource(),m=this.outputs.generateSource(e);return`#version 300 es\n${u}\n${c}\n${h.join("\n")}\n${i.join("\n")}\n${r.join("\n")}\n${n.join("\n")}\n${m.join("\n")}\n${a.join("\n")}\n${o.join("\n")}`}generateBind(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[0];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[0];r&&t.set(e.name,r)});const r=Array.from(t.values()),n=r.length;return t=>{for(let s=0;s<n;++s)r[s](e,t)}}generateBindPass(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[1];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[1];r&&t.set(e.name,r)});const r=Array.from(t.values()),n=r.length;return(t,s)=>{for(let i=0;i<n;++i)r[i](e,t,s)}}generateBindDraw(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[2];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[2];r&&t.set(e.name,r)});const r=Array.from(t.values()),n=r.length;return(t,s,i)=>{for(let a=0;a<n;++a)r[a](e,i,t,s)}}}class i{constructor(e){this._stage=e,this._entries=new Map}add(...e){for(const t of e)this._add(t);return this._stage}get(e){return this._entries.get(e)}_add(t){if(null!=t){if(this._entries.has(t.name)&&!this._entries.get(t.name).equals(t))throw new e("shaderbuilder:duplicate-uniform",`Duplicate uniform name ${t.name} for different uniform type`);this._entries.set(t.name,t)}else r().error(`Trying to add null Uniform from ${(new Error).stack}.`)}generateSource(){return Array.from(this._entries.values()).map(({name:e,arraySize:t,type:r})=>null!=t?`uniform ${r} ${e}[${t}];`:`uniform ${r} ${e};`)}get entries(){return Array.from(this._entries.values())}}class a{constructor(e){this._stage=e,this._bodies=new Array}add(e){return this._bodies.push(e),this._stage}generateSource(t){if(this._bodies.length>0)return[`void main() {\n ${this._bodies.join("\n")||""} \n}`];if(t)throw new e("shaderbuilder:missing-main","Shader does not contain main function body.");return[]}}class o{constructor(e){this._stage=e,this._entries=new Array}add(e){return this._entries.push(e),this._stage}generateSource(){return this._entries}}class u extends n{constructor(){super(...arguments),this.uniforms=new i(this),this.main=new a(this),this.code=new o(this),this.constants=new d(this)}get builder(){return this}}class c{constructor(){this._entries=new Array}add(e,t){this._entries.push([e,t])}generateSource(e){return"fragment"===e?[]:this._entries.map(e=>`in ${e[1]} ${e[0]};`)}get names(){return this._entries.map(([e])=>e)}}class h{constructor(){this._entries=new Map}add(e,t,n){this._entries.has(e)?r().warn(`Ignoring duplicate varying ${t} ${e}`):this._entries.set(e,{type:t,invariant:n?.invariant??!1})}generateSource(e){const t=new Array;return this._entries.forEach((r,n)=>t.push((r.invariant&&"vertex"===e?"invariant ":"")+("int"===r.type?"flat ":"")+("vertex"===e?"out":"in")+` ${r.type} ${n};`)),t}}class m{constructor(){this._entries=new Map}add(e,t,n=0){const s=this._entries.get(n);s?.name!==e||s?.type!==t?this._entries.set(n,{name:e,type:t}):r().warn(`Fragment shader output location ${n} occupied`)}static{this.DEFAULT_TYPE="vec4"}static{this.DEFAULT_NAME="fragColor"}generateSource(e){if("vertex"===e)return[];0===this._entries.size&&this._entries.set(0,{name:m.DEFAULT_NAME,type:m.DEFAULT_TYPE});const t=new Array;return this._entries.forEach((e,r)=>t.push(`layout(location = ${r}) out ${e.type} ${e.name};`)),t}}class d{constructor(e){this._stage=e,this._entries=new Set}add(e,t,r){let n="ERROR_CONSTRUCTOR_STRING";switch(t){case"float":n=d._numberToFloatStr(r);break;case"int":n=d._numberToIntStr(r);break;case"uint":n=d._numberToUintStr(r);break;case"bool":n=r.toString();break;case"vec2":n=`vec2(${d._numberToFloatStr(r[0])}, ${d._numberToFloatStr(r[1])})`;break;case"vec3":n=`vec3(${d._numberToFloatStr(r[0])}, ${d._numberToFloatStr(r[1])}, ${d._numberToFloatStr(r[2])})`;break;case"vec4":n=`vec4(${d._numberToFloatStr(r[0])}, ${d._numberToFloatStr(r[1])}, ${d._numberToFloatStr(r[2])}, ${d._numberToFloatStr(r[3])})`;break;case"ivec2":n=`ivec2(${d._numberToIntStr(r[0])}, ${d._numberToIntStr(r[1])})`;break;case"ivec3":n=`ivec3(${d._numberToIntStr(r[0])}, ${d._numberToIntStr(r[1])}, ${d._numberToIntStr(r[2])})`;break;case"ivec4":n=`ivec4(${d._numberToIntStr(r[0])}, ${d._numberToIntStr(r[1])}, ${d._numberToIntStr(r[2])}, ${d._numberToIntStr(r[3])})`;break;case"uvec2":n=`uvec2(${d._numberToUintStr(r[0])}, ${d._numberToUintStr(r[1])})`;break;case"uvec3":n=`uvec3(${d._numberToUintStr(r[0])}, ${d._numberToUintStr(r[1])}, ${d._numberToUintStr(r[2])})`;break;case"uvec4":n=`uvec4(${d._numberToUintStr(r[0])}, ${d._numberToUintStr(r[1])}, ${d._numberToUintStr(r[2])}, ${d._numberToUintStr(r[3])})`;break;case"mat2":case"mat3":case"mat4":n=`${t}(${Array.prototype.map.call(r,e=>d._numberToFloatStr(e)).join(", ")})`}return this._entries.add(`const ${t} ${e} = ${n};`),this._stage}static _numberToIntStr(e){return e.toFixed(0)}static _numberToUintStr(e){return`${e.toFixed(0)}u`}static _numberToFloatStr(e){return Number.isInteger(e)?e.toFixed(1):e.toString()}generateSource(){return Array.from(this._entries)}}const l="#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n precision highp sampler2DShadow;\n#else\n precision mediump float;\n precision mediump int;\n precision mediump sampler2D;\n precision mediump usampler2D;\n precision mediump sampler2DArray;\n precision mediump sampler2DShadow;\n#endif",_="precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n precision highp sampler2DShadow;\n\n\n invariant gl_Position;\n ";export{o as Code,n as Includes,a as Main,s as ShaderBuilder,u as Stage,i as Uniforms};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../../Graphic.js";import{fetchMessageBundle as r,onLocaleChange as i}from"../../intl.js";import{multiplyOpacity as s,getContrast as a}from"../../core/colorUtils.js";import{destroyMaybe as n}from"../../core/maybe.js";import{watch as o,initial as m}from"../../core/reactiveUtils.js";import{formatDecimal as l,formatImperialArea as p,formatMetricArea as c,formatImperialLength as u,formatMetricLength as h}from"../../core/unitFormatUtils.js";import{convertUnit as d}from"../../core/units.js";import{property as v,subclass as y}from"../../core/accessorSupport/decorators.js";import{UpdatingHandles as f}from"../../core/support/UpdatingHandles.js";import{isSupported as g,geodesicDensify as _,geodesicLengths as w,geodesicAreas as b}from"../../geometry/geodesicUtils.js";import L from"../../geometry/Point.js";import j from"../../geometry/Polygon.js";import S from"../../geometry/Polyline.js";import{e as A}from"../../chunks/areaOperator.js";import{e as k,l as G}from"../../chunks/geodeticAreaOperator.js";import{e as x,l as M}from"../../chunks/geodeticDensifyOperator.js";import{e as q,l as O}from"../../chunks/geodeticLengthOperator.js";import{e as C}from"../../chunks/lengthOperator.js";import{e as H}from"../../chunks/simplifyOperator.js";import{polygonCentroidPoint as R}from"../../geometry/support/centroid.js";import T from"../../layers/GraphicsLayer.js";import U from"../../symbols/Font.js";import z from"../../symbols/SimpleFillSymbol.js";import D from"../../symbols/SimpleLineSymbol.js";import P from"../../symbols/SimpleMarkerSymbol.js";import E from"../../symbols/TextSymbol.js";import{SnappingVisualizer2D as V}from"../../views/2d/interactive/SnappingVisualizer2D.js";import F from"../../views/draw/Draw.js";import{createCoordinateHelper as W}from"../../views/interactive/coordinateHelper.js";import{createManipulatorDragEventPipeline as I,screenToMap as B,dragManipulatedObject as J}from"../../views/interactive/dragEventPipeline.js";import{GraphicManipulator as N}from"../../views/interactive/GraphicManipulator.js";import{InteractiveToolBase as K}from"../../views/interactive/InteractiveToolBase.js";import{EditGeometry as Q}from"../../views/interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as X}from"../../views/interactive/editGeometry/EditGeometryOperations.js";import{SnappingContext as Y}from"../../views/interactive/snapping/SnappingContext.js";import{createSnapDragEventPipelineStep as Z}from"../../views/interactive/snapping/SnappingDragPipelineStep.js";import{setupSnappingToggleHandles as $}from"../../views/interactive/snapping/snappingUtils.js";const ee=1e5;let te=class extends K{constructor(e){super(e),this._measurementLayer=new T({internal:!0,listMode:"hide",visible:!1,title:"Area measurement layer"}),this._manipulatorLayer=new T({internal:!0,listMode:"hide",visible:!1,title:"Area measurement manipulator layer"}),this._snappingLayer=new T({internal:!0,listMode:"hide",visible:!1,title:"Area measurement snapping layer"}),this._updatingHandles=new f,this._vertices=[],this._drawActive=!1,this.measurement=null,this.measurementLabel=null}initialize(){r("esri/core/t9n/Units").then(e=>{this.messages=e});const e=this.view;this._draw=new F({view:e}),e.map.addMany([this._measurementLayer,this._manipulatorLayer,this._snappingLayer]),e.focus(),this.addHandles([i(async()=>{this.messages=await r("esri/core/t9n/Units")}),o(()=>[this.unit,this.messages],()=>{this._updateGraphics()},m),o(()=>[this.view.effectiveTheme.accentColor,this.view.effectiveTheme.textColor],()=>{if(!this._vertices.length)return;const e=this._vertices.map(({coord:e})=>e);for(const{handle:t}of this._vertices)t.remove();this._vertices=[],this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this._snappingLayer.removeAll(),this.manipulators.removeAll(),this._updateSketch(e)})]),$(this)}destroy(){const{map:e}=this.view;this._draw.view=null,this._draw=n(this._draw),e.removeMany([this._measurementLayer,this._manipulatorLayer,this._snappingLayer]),this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this._snappingLayer.removeAll(),this._set("measurement",null),this._set("measurementLabel",null),this._measurementLayer=n(this._measurementLayer),this._manipulatorLayer=n(this._manipulatorLayer),this._snappingLayer=n(this._snappingLayer),this._updatingHandles=n(this._updatingHandles),this._resetVertices()}get cursor(){return this._drawActive?"crosshair":null}set editable(e){this._set("editable",e),e||this._draw.reset()}get snappingOptions(){return this.snappingManager.options}get updating(){return this._updatingHandles.updating||this.snappingManager.updating}onActivate(){this._drawActive||0!==this._vertices.length||this._startSketch()}onShow(){this._measurementLayer.visible=!0,this._manipulatorLayer.visible=!0,this._snappingLayer.visible=!0}onHide(){this._measurementLayer.visible=!1,this._manipulatorLayer.visible=!1,this._snappingLayer.visible=!1}reset(){this.manipulators.removeAll(),this._resetVertices(),this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this._set("measurement",null),this._set("measurementLabel",null),this._draw.reset(),this._drawActive=!1}_getSnappingContext(e){return new Y({elevationInfo:{mode:"on-the-ground",offset:0},pointer:e,editGeometryOperations:new X(new Q("point",W(!1,!1,this.view.spatialReference)),2),visualizer:new V(this._snappingLayer)})}_resetVertices(){for(const{handle:e}of this._vertices)e.remove();this._vertices=[]}_startSketch(){this._drawActive=!0;const{snappingManager:e}=this;this._draw.create("polyline",{mode:"click",snappingManager:e}).on(["draw-complete","vertex-add","vertex-update","vertex-remove","cursor-update","undo","redo"],e=>{this._updateSketch(e.vertices),"draw-complete"===e.type&&this._stopSketch()})}_stopSketch(){if(this._vertices.length<3)return this.reset(),void this._startSketch();this.manipulators.forEach(({manipulator:e})=>{e.interactive=!0}),this._drawActive=!1,this.finishToolCreation()}_updateSketch(e){const{spatialReference:t}=this.view;for(;this._vertices.length>e.length;){const{handle:e,manipulator:t}=this._vertices.pop();e.remove(),this.manipulators.remove(t)}for(let r=this._vertices.length;r<e.length;r++){const[i,s]=e[r],a=new L({x:i,y:s,spatialReference:t}),n=re(a,this.view,this._manipulatorLayer);this.manipulators.add(n);const o=X.fromGeometry(a,2);o.on("vertex-update",e=>{const t=e.vertices.at(0);t&&(this._vertices[r].coord=[t.pos[0],t.pos[1]],this._updateGraphics())});const m=I(n,(e,t,r,i)=>{const s=this._getSnappingContext(i),{snappingManager:a}=this,n=this._updatingHandles,{snappingStep:m}=Z({snappingContext:s,snappingManager:a,updatingHandles:n});t.next(B(this.view)).next(t=>{if("start"===t.action){const r=new L(t.mapStart);e.graphic.geometry=r,o.trySetGeometry(r)}return t}).next(...m).next(J({operations:o})).next(()=>{e.graphic.geometry=o.data.geometry})});this._vertices.push({manipulator:n,coord:[i,s],handle:m})}if(this._vertices.length){const r=this._vertices.length-1,i=this._vertices[r],[s,a]=e[r];i.coord[0]===s&&i.coord[1]===a||(i.coord=[s,a],i.manipulator.graphic.geometry=new L({x:s,y:a,spatialReference:t}));const n=this._drawActive?this._vertices[r].manipulator:null;this.manipulators.forEach(({manipulator:e})=>{e.interactive=null==n||e!==n})}this._updateGraphics()}_updateGraphics(){if(this._vertices.length<2)return void this._measurementLayer.removeAll();const e=ie(this._vertices.map(({coord:e})=>e),this.view.spatialReference);if(!e)return;const{measurement:r,fillGeometry:i,outlineGeometry:n}=e;this._set("measurement",r);const o=r?ne(this.messages,r,this.unit):null;if(this._set("measurementLabel",o),!i&&!n)return;let m,l,p;const{graphics:c}=this._measurementLayer,u=3===c.length,{effectiveTheme:h}=this.view;u?(m=c.at(0),l=c.at(1),p=c.at(2)):(m=new t({symbol:new z({color:s(h.accentColor,.3),outline:null})}),l=new t({symbol:new D({color:h.accentColor,width:2})}),p=new t({symbol:new E({color:h.textColor,font:new U({size:14,family:"sans-serif"}),haloColor:s(a(h.textColor,160),.5),haloSize:2})}),c.removeAll(),c.addMany([m,l,p])),m.geometry=i,l.geometry=n;const d=i?R(i):null,v=d?L.fromJSON(d):null;p.geometry=v,p.symbol.text=o?.area??""}};function re(e,r,i){const a=8,n={style:"circle",color:s(r.effectiveTheme.accentColor,.5),outline:{type:"simple-line",width:0}},o=new P({...n,size:a}),m=new P({...n,size:1.5*a}),l=new t({geometry:e,symbol:o});return new N({view:r,layer:i,graphic:l,focusedSymbol:m})}function ie(e,t){if(2===e.length){const r=new S({paths:[e],spatialReference:t});let i;return i=t.isGeographic?g(t)?_(r,ee):x(r,ee,{unit:"meters"}):t.isWebMercator?x(r,ee,{unit:"meters"}):r,{measurement:null,fillGeometry:null,outlineGeometry:i}}e.push(e[0]);const r=new S({paths:[e],spatialReference:t}),i=new j({rings:[e],spatialReference:t});let s,a,n=null,o=null;if(t.isGeographic)if(g(t)){if(n=_(r,ee),o=_(i,ee),o=H(o),!o)return null;s=w([r],"meters")[0],a=b([o],"square-meters")[0]}else{if(n=x(r,ee,{unit:"meters"}),o=x(i,ee,{unit:"meters"}),o=H(o),!o)return null;s=q(r,{unit:"meters"}),a=k(o,{unit:"square-meters"})}else if(t.isWebMercator){if(n=x(r,ee,{unit:"meters"}),o=x(i,ee,{unit:"meters"}),o=H(o),!o)return null;s=q(r,{unit:"meters"}),a=k(o,{unit:"square-meters"})}else{if(n=r,o=H(i),!o)return null;s=C(r,{unit:"meters"}),a=A(o,{unit:"square-meters"})}return{measurement:{geometry:o,area:a,perimeter:s},fillGeometry:o,outlineGeometry:n}}function se(e){return null!=e}async function ae(e){(e?.isGeographic&&!g(e)||e?.isWebMercator)&&await Promise.all([G(),M(),O()])}function ne(e,t,r){if(!t||!e)return null;const i={area:null,perimeter:null},{area:s,perimeter:a}=t;switch(r){case"metric":i.area=c(e,s,"square-meters");break;case"imperial":i.area=p(e,s,"square-meters");break;default:{const t=d(s,"square-meters",r);i.area=l(e,t,r);break}}const n=oe(r);if(n)switch(n){case"metric":i.perimeter=h(e,a,"meters");break;case"imperial":i.perimeter=u(e,a,"meters");break;default:{const t=d(a,"meters",n);i.perimeter=l(e,t,n);break}}else i.perimeter="";return i}function oe(e){switch(e){case"metric":case"ares":case"hectares":return"metric";case"imperial":case"acres":return"imperial";case"square-inches":return"inches";case"square-feet":return"feet";case"square-yards":return"yards";case"square-miles":return"miles";case"square-nautical-miles":return"nautical-miles";case"square-us-feet":return"us-feet";case"square-meters":return"meters";case"square-kilometers":return"kilometers";case"square-millimeters":return"millimeters";case"square-centimeters":return"centimeters";case"square-decimeters":return"decimeters";default:return null}}e([v()],te.prototype,"_drawActive",void 0),e([v({readOnly:!0})],te.prototype,"cursor",null),e([v({value:!0})],te.prototype,"editable",null),e([v({readOnly:!0})],te.prototype,"measurement",void 0),e([v({readOnly:!0})],te.prototype,"measurementLabel",void 0),e([v()],te.prototype,"messages",void 0),e([v({constructOnly:!0})],te.prototype,"snappingManager",void 0),e([v()],te.prototype,"unit",void 0),e([v()],te.prototype,"updating",null),e([v({constructOnly:!0})],te.prototype,"view",void 0),te=e([y("esri.widgets.AreaMeasurement2D.AreaMeasurement2DTool")],te);export{te as AreaMeasurement2DTool,ie as createAreaMeasurementInfo2D,ne as createAreaMeasurementLabel,se as isSupported,ae as loadGeometryOperators};
5
+ import{__decorate as e}from"tslib";import t from"../../Graphic.js";import{fetchMessageBundle as r,onLocaleChange as i}from"../../intl.js";import{multiplyOpacity as s,getContrast as a}from"../../core/colorUtils.js";import{destroyMaybe as n}from"../../core/maybe.js";import{watch as o,initial as m}from"../../core/reactiveUtils.js";import{formatDecimal as l,formatImperialArea as p,formatMetricArea as c,formatImperialLength as h,formatMetricLength as u}from"../../core/unitFormatUtils.js";import{convertUnit as d,deriveLengthUnitFromAreaUnit as v}from"../../core/units.js";import{property as y,subclass as g}from"../../core/accessorSupport/decorators.js";import{UpdatingHandles as f}from"../../core/support/UpdatingHandles.js";import{isSupported as _,geodesicDensify as w,geodesicLengths as b,geodesicAreas as L}from"../../geometry/geodesicUtils.js";import j from"../../geometry/Point.js";import S from"../../geometry/Polygon.js";import A from"../../geometry/Polyline.js";import{e as G}from"../../chunks/areaOperator.js";import{e as k,l as x}from"../../chunks/geodeticAreaOperator.js";import{e as M,l as O}from"../../chunks/geodeticDensifyOperator.js";import{e as C,l as H}from"../../chunks/geodeticLengthOperator.js";import{e as R}from"../../chunks/lengthOperator.js";import{e as T}from"../../chunks/simplifyOperator.js";import{polygonCentroidPoint as U}from"../../geometry/support/centroid.js";import q from"../../layers/GraphicsLayer.js";import z from"../../symbols/Font.js";import D from"../../symbols/SimpleFillSymbol.js";import P from"../../symbols/SimpleLineSymbol.js";import E from"../../symbols/SimpleMarkerSymbol.js";import V from"../../symbols/TextSymbol.js";import{SnappingVisualizer2D as F}from"../../views/2d/interactive/SnappingVisualizer2D.js";import W from"../../views/draw/Draw.js";import{createCoordinateHelper as I}from"../../views/interactive/coordinateHelper.js";import{createManipulatorDragEventPipeline as B,screenToMap as J,dragManipulatedObject as N}from"../../views/interactive/dragEventPipeline.js";import{GraphicManipulator as K}from"../../views/interactive/GraphicManipulator.js";import{InteractiveToolBase as Q}from"../../views/interactive/InteractiveToolBase.js";import{EditGeometry as X}from"../../views/interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as Y}from"../../views/interactive/editGeometry/EditGeometryOperations.js";import{SnappingContext as Z}from"../../views/interactive/snapping/SnappingContext.js";import{createSnapDragEventPipelineStep as $}from"../../views/interactive/snapping/SnappingDragPipelineStep.js";import{setupSnappingToggleHandles as ee}from"../../views/interactive/snapping/snappingUtils.js";const te=1e5;let re=class extends Q{constructor(e){super(e),this._measurementLayer=new q({internal:!0,listMode:"hide",visible:!1,title:"Area measurement layer"}),this._manipulatorLayer=new q({internal:!0,listMode:"hide",visible:!1,title:"Area measurement manipulator layer"}),this._snappingLayer=new q({internal:!0,listMode:"hide",visible:!1,title:"Area measurement snapping layer"}),this._updatingHandles=new f,this._vertices=[],this._drawActive=!1,this.measurement=null,this.measurementLabel=null}initialize(){r("esri/core/t9n/Units").then(e=>{this.messages=e});const e=this.view;this._draw=new W({view:e}),e.map.addMany([this._measurementLayer,this._manipulatorLayer,this._snappingLayer]),e.focus(),this.addHandles([i(async()=>{this.messages=await r("esri/core/t9n/Units")}),o(()=>[this.unit,this.messages],()=>{this._updateGraphics()},m),o(()=>[this.view.effectiveTheme.accentColor,this.view.effectiveTheme.textColor],()=>{if(!this._vertices.length)return;const e=this._vertices.map(({coord:e})=>e);for(const{handle:t}of this._vertices)t.remove();this._vertices=[],this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this._snappingLayer.removeAll(),this.manipulators.removeAll(),this._updateSketch(e)})]),ee(this)}destroy(){const{map:e}=this.view;this._draw.view=null,this._draw=n(this._draw),e.removeMany([this._measurementLayer,this._manipulatorLayer,this._snappingLayer]),this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this._snappingLayer.removeAll(),this._set("measurement",null),this._set("measurementLabel",null),this._measurementLayer=n(this._measurementLayer),this._manipulatorLayer=n(this._manipulatorLayer),this._snappingLayer=n(this._snappingLayer),this._updatingHandles=n(this._updatingHandles),this._resetVertices()}get cursor(){return this._drawActive?"crosshair":null}set editable(e){this._set("editable",e),e||this._draw.reset()}get snappingOptions(){return this.snappingManager.options}get updating(){return this._updatingHandles.updating||this.snappingManager.updating}onActivate(){this._drawActive||0!==this._vertices.length||this._startSketch()}onShow(){this._measurementLayer.visible=!0,this._manipulatorLayer.visible=!0,this._snappingLayer.visible=!0}onHide(){this._measurementLayer.visible=!1,this._manipulatorLayer.visible=!1,this._snappingLayer.visible=!1}reset(){this.manipulators.removeAll(),this._resetVertices(),this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this._set("measurement",null),this._set("measurementLabel",null),this._draw.reset(),this._drawActive=!1}_getSnappingContext(e){return new Z({elevationInfo:{mode:"on-the-ground",offset:0},pointer:e,editGeometryOperations:new Y(new X("point",I(!1,!1,this.view.spatialReference)),2),visualizer:new F(this._snappingLayer)})}_resetVertices(){for(const{handle:e}of this._vertices)e.remove();this._vertices=[]}_startSketch(){this._drawActive=!0;const{snappingManager:e}=this;this._draw.create("polyline",{mode:"click",snappingManager:e}).on(["draw-complete","vertex-add","vertex-update","vertex-remove","cursor-update","undo","redo"],e=>{this._updateSketch(e.vertices),"draw-complete"===e.type&&this._stopSketch()})}_stopSketch(){if(this._vertices.length<3)return this.reset(),void this._startSketch();this.manipulators.forEach(({manipulator:e})=>{e.interactive=!0}),this._drawActive=!1,this.finishToolCreation()}_updateSketch(e){const{spatialReference:t}=this.view;for(;this._vertices.length>e.length;){const{handle:e,manipulator:t}=this._vertices.pop();e.remove(),this.manipulators.remove(t)}for(let r=this._vertices.length;r<e.length;r++){const[i,s]=e[r],a=new j({x:i,y:s,spatialReference:t}),n=ie(a,this.view,this._manipulatorLayer);this.manipulators.add(n);const o=Y.fromGeometry(a,2);o.on("vertex-update",e=>{const t=e.vertices.at(0);t&&(this._vertices[r].coord=[t.pos[0],t.pos[1]],this._updateGraphics())});const m=B(n,(e,t,r,i)=>{const s=this._getSnappingContext(i),{snappingManager:a}=this,n=this._updatingHandles,{snappingStep:m}=$({snappingContext:s,snappingManager:a,updatingHandles:n});t.next(J(this.view)).next(t=>{if("start"===t.action){const r=new j(t.mapStart);e.graphic.geometry=r,o.trySetGeometry(r)}return t}).next(...m).next(N({operations:o})).next(()=>{e.graphic.geometry=o.data.geometry})});this._vertices.push({manipulator:n,coord:[i,s],handle:m})}if(this._vertices.length){const r=this._vertices.length-1,i=this._vertices[r],[s,a]=e[r];i.coord[0]===s&&i.coord[1]===a||(i.coord=[s,a],i.manipulator.graphic.geometry=new j({x:s,y:a,spatialReference:t}));const n=this._drawActive?this._vertices[r].manipulator:null;this.manipulators.forEach(({manipulator:e})=>{e.interactive=null==n||e!==n})}this._updateGraphics()}_updateGraphics(){if(this._vertices.length<2)return void this._measurementLayer.removeAll();const e=se(this._vertices.map(({coord:e})=>e),this.view.spatialReference);if(!e)return;const{measurement:r,fillGeometry:i,outlineGeometry:n}=e;this._set("measurement",r);const o=r?oe(this.messages,r,this.unit):null;if(this._set("measurementLabel",o),!i&&!n)return;let m,l,p;const{graphics:c}=this._measurementLayer,h=3===c.length,{effectiveTheme:u}=this.view;h?(m=c.at(0),l=c.at(1),p=c.at(2)):(m=new t({symbol:new D({color:s(u.accentColor,.3),outline:null})}),l=new t({symbol:new P({color:u.accentColor,width:2})}),p=new t({symbol:new V({color:u.textColor,font:new z({size:14,family:"sans-serif"}),haloColor:s(a(u.textColor,160),.5),haloSize:2})}),c.removeAll(),c.addMany([m,l,p])),m.geometry=i,l.geometry=n;const d=i?U(i):null,v=d?j.fromJSON(d):null;p.geometry=v,p.symbol.text=o?.area??""}};function ie(e,r,i){const a=8,n={style:"circle",color:s(r.effectiveTheme.accentColor,.5),outline:{type:"simple-line",width:0}},o=new E({...n,size:a}),m=new E({...n,size:1.5*a}),l=new t({geometry:e,symbol:o});return new K({view:r,layer:i,graphic:l,focusedSymbol:m})}function se(e,t){if(2===e.length){const r=new A({paths:[e],spatialReference:t});let i;return i=t.isGeographic?_(t)?w(r,te):M(r,te,{unit:"meters"}):t.isWebMercator?M(r,te,{unit:"meters"}):r,{measurement:null,fillGeometry:null,outlineGeometry:i}}e.push(e[0]);const r=new A({paths:[e],spatialReference:t}),i=new S({rings:[e],spatialReference:t});let s,a,n=null,o=null;if(t.isGeographic)if(_(t)){if(n=w(r,te),o=w(i,te),o=T(o),!o)return null;s=b([r],"meters")[0],a=L([o],"square-meters")[0]}else{if(n=M(r,te,{unit:"meters"}),o=M(i,te,{unit:"meters"}),o=T(o),!o)return null;s=C(r,{unit:"meters"}),a=k(o,{unit:"square-meters"})}else if(t.isWebMercator){if(n=M(r,te,{unit:"meters"}),o=M(i,te,{unit:"meters"}),o=T(o),!o)return null;s=C(r,{unit:"meters"}),a=k(o,{unit:"square-meters"})}else{if(n=r,o=T(i),!o)return null;s=R(r,{unit:"meters"}),a=G(o,{unit:"square-meters"})}return{measurement:{geometry:o,area:a,perimeter:s},fillGeometry:o,outlineGeometry:n}}function ae(e){return null!=e}async function ne(e){(e?.isGeographic&&!_(e)||e?.isWebMercator)&&await Promise.all([x(),O(),H()])}function oe(e,t,r){if(!t||!e)return null;const i={area:null,perimeter:null},{area:s,perimeter:a}=t;switch(r){case"metric":i.area=c(e,s,"square-meters");break;case"imperial":i.area=p(e,s,"square-meters");break;default:{const t=d(s,"square-meters",r);i.area=l(e,t,r);break}}const n=v(r);if(n)switch(n){case"metric":i.perimeter=u(e,a,"meters");break;case"imperial":i.perimeter=h(e,a,"meters");break;default:{const t=d(a,"meters",n);i.perimeter=l(e,t,n);break}}else i.perimeter="";return i}e([y()],re.prototype,"_drawActive",void 0),e([y({readOnly:!0})],re.prototype,"cursor",null),e([y({value:!0})],re.prototype,"editable",null),e([y({readOnly:!0})],re.prototype,"measurement",void 0),e([y({readOnly:!0})],re.prototype,"measurementLabel",void 0),e([y()],re.prototype,"messages",void 0),e([y({constructOnly:!0})],re.prototype,"snappingManager",void 0),e([y()],re.prototype,"unit",void 0),e([y()],re.prototype,"updating",null),e([y({constructOnly:!0})],re.prototype,"view",void 0),re=e([g("esri.widgets.AreaMeasurement2D.AreaMeasurement2DTool")],re);export{re as AreaMeasurement2DTool,se as createAreaMeasurementInfo2D,oe as createAreaMeasurementLabel,ae as isSupported,ne as loadGeometryOperators};
@@ -105,6 +105,7 @@ export interface AreaMeasurement2DProperties extends WidgetProperties, Partial<P
105
105
  * > Snapping is disabled by default. This can be enabled by setting the [snappingOptions](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-AreaMeasurement2D.html#snappingOptions) property.
106
106
  * > Please refer to [FeatureSnappingLayerSource](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-FeatureSnappingLayerSource.html) for additional information on what layer sources are supported.
107
107
  *
108
+ * @deprecated since version 5.0. Use the [Area Measurement 2D](https://developers.arcgis.com/javascript/latest/references/map-components/arcgis-area-measurement-2d/) component instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/).
108
109
  * @since 4.10
109
110
  * @see [Sample - Measurement in 2D](https://developers.arcgis.com/javascript/latest/sample-code/widgets-measurement-2d/)
110
111
  * @see [AreaMeasurement2DViewModel](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-AreaMeasurement2D-AreaMeasurement2DViewModel.html)
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{property as s,subclass as i}from"../core/accessorSupport/decorators.js";import o from"../views/interactive/snapping/SnappingOptions.js";import n from"./Widget.js";import r from"./AreaMeasurement2D/AreaMeasurement2DViewModel.js";import{globalCss as p}from"./support/globalCss.js";import{MeasurementWidgetContent as a}from"./support/MeasurementWidgetContent.js";import{messageBundle as l,tsx as u}from"./support/widget.js";const m="esri-area-measurement-2d",v={base:m,newMeasurementButton:`${m}__clear-button`};let d=class extends n{constructor(e,t){super(e,t),this.messages=null,this.messagesUnits=null,this.messagesCommon=null,this.viewModel=new r}get active(){return this.viewModel.active}get icon(){return"measure-area"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}render(){const{messages:e,messagesCommon:s,messagesUnits:i,unit:o,unitOptions:n,viewModel:r,visible:l}=this,{active:m,measurementLabel:d,state:g,supported:w}=r;return u("div",{"aria-label":e.widgetLabel,class:this.classes(v.base,p.widget,p.panel),key:this,role:"region"},l?u(a,{active:m,measurementItems:[{key:"area",title:i?.measures.area,value:d?.area},{key:"perimeter",title:e.perimeter,value:d?.perimeter}],messages:{...e,notApplicable:s.notApplicable},newMeasurementButtonClass:v.newMeasurementButton,state:g,supported:w,unit:o,unitOptions:n,onNewMeasurementClick:()=>{t(r.start())},onUnitChange:e=>{this.unit=e}}):null)}};e([s({readOnly:!0})],d.prototype,"active",null),e([s()],d.prototype,"icon",null),e([s()],d.prototype,"label",null),e([s(),l("esri/widgets/AreaMeasurement2D/t9n/AreaMeasurement2D")],d.prototype,"messages",void 0),e([s(),l("esri/core/t9n/Units")],d.prototype,"messagesUnits",void 0),e([s(),l("esri/t9n/common")],d.prototype,"messagesCommon",void 0),e([s({type:o})],d.prototype,"snappingOptions",null),e([s()],d.prototype,"uiStrings",void 0),e([s()],d.prototype,"unit",null),e([s()],d.prototype,"unitOptions",null),e([s()],d.prototype,"view",null),e([s({type:r})],d.prototype,"viewModel",void 0),e([s({type:Boolean})],d.prototype,"visible",null),d=e([i("esri.widgets.AreaMeasurement2D")],d);const g=d;export{g as default};
5
+ import{__decorate as e}from"tslib";import{deprecateWidget as t}from"../core/deprecate.js";import s from"../core/Logger.js";import{ignoreAbortErrors as i}from"../core/promiseUtils.js";import{property as o,subclass as r}from"../core/accessorSupport/decorators.js";import n from"../views/interactive/snapping/SnappingOptions.js";import a from"./Widget.js";import p from"./AreaMeasurement2D/AreaMeasurement2DViewModel.js";import{globalCss as l}from"./support/globalCss.js";import{MeasurementWidgetContent as m}from"./support/MeasurementWidgetContent.js";import{messageBundle as u,tsx as g}from"./support/widget.js";const v="esri-area-measurement-2d",d={base:v,newMeasurementButton:`${v}__clear-button`};let c=class extends a{constructor(e,i){super(e,i),this.messages=null,this.messagesUnits=null,this.messagesCommon=null,this.viewModel=new p,t(s.getLogger(this),"Area Measurement 2D","arcgis-area-measurement-2d",{version:"5.0"})}get active(){return this.viewModel.active}get icon(){return"measure-area"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}render(){const{messages:e,messagesCommon:t,messagesUnits:s,unit:o,unitOptions:r,viewModel:n,visible:a}=this,{active:p,measurementLabel:u,state:v,supported:c}=n;return g("div",{"aria-label":e.widgetLabel,class:this.classes(d.base,l.widget,l.panel),key:this,role:"region"},a?g(m,{active:p,measurementItems:[{key:"area",title:s?.measures.area,value:u?.area},{key:"perimeter",title:e.perimeter,value:u?.perimeter}],messages:{...e,notApplicable:t.notApplicable},newMeasurementButtonClass:d.newMeasurementButton,state:v,supported:c,unit:o,unitOptions:r,onNewMeasurementClick:()=>{i(n.start())},onUnitChange:e=>{this.unit=e}}):null)}};e([o({readOnly:!0})],c.prototype,"active",null),e([o()],c.prototype,"icon",null),e([o()],c.prototype,"label",null),e([o(),u("esri/widgets/AreaMeasurement2D/t9n/AreaMeasurement2D")],c.prototype,"messages",void 0),e([o(),u("esri/core/t9n/Units")],c.prototype,"messagesUnits",void 0),e([o(),u("esri/t9n/common")],c.prototype,"messagesCommon",void 0),e([o({type:n})],c.prototype,"snappingOptions",null),e([o()],c.prototype,"uiStrings",void 0),e([o()],c.prototype,"unit",null),e([o()],c.prototype,"unitOptions",null),e([o()],c.prototype,"view",null),e([o({type:p})],c.prototype,"viewModel",void 0),e([o({type:Boolean})],c.prototype,"visible",null),c=e([r("esri.widgets.AreaMeasurement2D")],c);const w=c;export{w as default};
@@ -77,6 +77,7 @@ export interface VisibleElements {
77
77
  * > [!WARNING]
78
78
  * >
79
79
  * > **Known Limitations**
80
+ * >
80
81
  * > Editing attachments is currently available using the [Editor](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html) widget.
81
82
  *
82
83
  * The following image displays the various displays of the attachment widget.
@@ -80,6 +80,7 @@ export interface BasemapLayerListEvents extends BasemapLayerListViewModelEvents
80
80
  * [Sample - LayerList widget](https://developers.arcgis.com/javascript/latest/sample-code/widgets-layerlist/)\
81
81
  * [Sample - LayerList widget with actions](https://developers.arcgis.com/javascript/latest/sample-code/widgets-layerlist-actions/)
82
82
  *
83
+ * @deprecated since version 5.0. Use the [Basemap Layer List](https://developers.arcgis.com/javascript/latest/references/map-components/arcgis-basemap-layer-list/) component instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/).
83
84
  * @since 4.13
84
85
  * @see [BasemapLayerListViewModel](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapLayerList-BasemapLayerListViewModel.html)
85
86
  * @example