@arcgis/core 4.23.0-next.20220128 → 4.23.0-next.20220202

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 (288) hide show
  1. package/Graphic.js +1 -1
  2. package/TimeExtent.js +1 -1
  3. package/assets/esri/core/workers/RemoteClient.js +1 -1
  4. package/assets/esri/core/workers/chunks/01a10fe5ad6941b0ee8c.js +1 -0
  5. package/assets/esri/core/workers/chunks/{7a5f5acfbd4ca1a5c1f3.js → 06116433eb6e669f146b.js} +1 -1
  6. package/assets/esri/core/workers/chunks/09a05d778b6fac710828.js +1 -0
  7. package/assets/esri/core/workers/chunks/{83d00afae4406ec78bc9.js → 0c6be307709523eb8a05.js} +1 -1
  8. package/assets/esri/core/workers/chunks/0e215fa28a0448169132.js +1 -0
  9. package/assets/esri/core/workers/chunks/{391e96192d1ec4e55ce2.js → 101b4f02f0572afb666f.js} +1 -1
  10. package/assets/esri/core/workers/chunks/11750e96065b4d7b926b.js +1 -0
  11. package/assets/esri/core/workers/chunks/{929c9b7cdab7c4ca3d87.js → 17c51f5a13f471e6656a.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{ed0bcc66fb1e0ee75a4b.js → 1f34957ef42e5b5977d0.js} +1 -1
  13. package/assets/esri/core/workers/chunks/2f4e425be3a3bdfd8d29.js +1 -0
  14. package/assets/esri/core/workers/chunks/34bed896b68993cabaa1.js +1 -0
  15. package/assets/esri/core/workers/chunks/3e1679b01429fd73cffe.js +1 -0
  16. package/assets/esri/core/workers/chunks/{99619fcb772807c74f3b.js → 444829a840b8ded16fd7.js} +1 -1
  17. package/assets/esri/core/workers/chunks/467b5faa1c90d9821609.js +1 -0
  18. package/assets/esri/core/workers/chunks/49353182a16218a84251.js +1 -0
  19. package/assets/esri/core/workers/chunks/4bfc2eeb0738c393d8ec.js +1 -0
  20. package/assets/esri/core/workers/chunks/4de996ebc432f5e149bc.js +1 -0
  21. package/assets/esri/core/workers/chunks/{422537fc3df707bb62c9.js → 5038935db9b1ebe61d02.js} +1 -1
  22. package/assets/esri/core/workers/chunks/50976921acf7bd636123.js +1 -0
  23. package/assets/esri/core/workers/chunks/50ef2622fd0d9a241979.js +1 -0
  24. package/assets/esri/core/workers/chunks/{5790d171072b3c7d108f.js → 53aa2ab4e569c994a32d.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{7903a3e2e0faff0f86c0.js → 56657f890e0f79f5d2ad.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{db3c729ce0c0b2690dc9.js → 574e33f28c106d607fe3.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{952980635afc7ec81804.js → 5b02ba8ed152dba53155.js} +1 -1
  28. package/assets/esri/core/workers/chunks/60c06d1bb3f8a26cb5ac.js +1 -0
  29. package/assets/esri/core/workers/chunks/{c2253a9f29c1aabb2b75.js → 66c47983e93071de28b1.js} +1 -1
  30. package/assets/esri/core/workers/chunks/6be326edd9829781d926.js +1 -0
  31. package/assets/esri/core/workers/chunks/70d6bb3c7112cb702389.js +1 -0
  32. package/assets/esri/core/workers/chunks/{5bcb3240b3c005e5fe72.js → 7215af7810d15e89aa5a.js} +1 -1
  33. package/assets/esri/core/workers/chunks/7509c1693ffedc0fa018.js +1 -0
  34. package/assets/esri/core/workers/chunks/76c1d663f6d3f935c87f.js +1 -0
  35. package/assets/esri/core/workers/chunks/7ccbb923f113b3e21545.js +1 -0
  36. package/assets/esri/core/workers/chunks/810a763373d7f78ae398.js +1 -0
  37. package/assets/esri/core/workers/chunks/82194fec53054c37061f.js +1 -0
  38. package/assets/esri/core/workers/chunks/82c59a71b7f087148089.js +1 -0
  39. package/assets/esri/core/workers/chunks/84eee02122b56a22d49e.js +1 -0
  40. package/assets/esri/core/workers/chunks/{dd13772a5e2eccc6a2bc.js → 8598f762f15ca68d52b7.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{3c673495e5f507c4a9e5.js → 88458dcaff8edc50620c.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{5ec98f4ddac707d0fbd1.js → 88815d533808aabb1fa9.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{0463ba46df855a92b9c0.js → 8941f09329d9d39fb2fe.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{655b55ac0cd533d7e9d7.js → 8ad5dc818dc73f4b9a76.js} +1 -1
  45. package/assets/esri/core/workers/chunks/8e96cddb069b643d864a.js +1 -0
  46. package/assets/esri/core/workers/chunks/{f2124f4d0f2b8a91f0ea.js → 90c5edcd8a609224ce55.js} +1 -1
  47. package/assets/esri/core/workers/chunks/9230b20eba4304d421b4.js +1 -0
  48. package/assets/esri/core/workers/chunks/{bac9fc90e6756e211160.js → 94d9951509c0db09547a.js} +1 -1
  49. package/assets/esri/core/workers/chunks/996d6ae7f2e2273f9bce.js +1 -0
  50. package/assets/esri/core/workers/chunks/{37c03cfc19086ce631c6.js → 9bd603ec98d24cd918e9.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{c1135cb02ec46c491459.js → 9ce961bc390202c87941.js} +1 -1
  52. package/assets/esri/core/workers/chunks/9d4a35d4a85db80c4071.js +1 -0
  53. package/assets/esri/core/workers/chunks/9f0ad28e66862ba971a3.js +1 -0
  54. package/assets/esri/core/workers/chunks/{b3f5e91116112b0b612a.js → 9fd47b8fe25657ac0237.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{b9e9cb354822c6d995a4.js → a276e60209f3d877a8d0.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{aeaa1667c2d9f1b3366b.js → a85ed251d3d3668e474f.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{44f0c3663b293afbd172.js → acf10f747215e9ff54dc.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{69fd99b7c76e9992ccf3.js → b32bf9808cb4be3a6bd0.js} +1 -1
  59. package/assets/esri/core/workers/chunks/b3dc80ddbfa81026e937.js +1 -0
  60. package/assets/esri/core/workers/chunks/b548e6b3add4154ac4e6.js +1 -0
  61. package/assets/esri/core/workers/chunks/b6c55bdd8c957b062bc1.js +1 -0
  62. package/assets/esri/core/workers/chunks/{9d77467aa71d345fc1b6.js → bcc01bbffaa3bb5f60a8.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{1f8c6a179e39fd4c5e6f.js → bd152e8b43cc4a6844dd.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{0d02c6ad1f4688bfa374.js → bf7c44644fe7b0aa60cf.js} +1 -1
  65. package/assets/esri/core/workers/chunks/c0dc5882362479794224.js +1 -0
  66. package/assets/esri/core/workers/chunks/c8b574a76807f4ea7a70.js +1 -0
  67. package/assets/esri/core/workers/chunks/d09a0b2dc3a6fc10fa41.js +1 -0
  68. package/assets/esri/core/workers/chunks/{ec10151a2a95e95a0bb5.js → d304fe0ac836afd46e3d.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{37a7bd30352b1309b8f8.js → d3f05b8e4bd53eb1eb9d.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{be588873c16770ceb9ef.js → d46b511bbb83e68f1ece.js} +1 -1
  71. package/assets/esri/core/workers/chunks/{17de7a324dfa7f57ad5d.js → d780e946149b1c3d1246.js} +1 -1
  72. package/assets/esri/core/workers/chunks/d80bcf5ed1f54e0c4f5a.js +1 -0
  73. package/assets/esri/core/workers/chunks/{8cbb04a9065aa3756638.js → dc04a8ba6c770bdc2bd4.js} +1 -1
  74. package/assets/esri/core/workers/chunks/{89820b200ee44e678af5.js → dd891a98105904f8a06b.js} +1 -1
  75. package/assets/esri/core/workers/chunks/e5ab037c2a90411c453b.js +1 -0
  76. package/assets/esri/core/workers/chunks/ef2df21e1af3aa7ced29.js +1 -0
  77. package/assets/esri/core/workers/chunks/f5a7281ae24e837efc61.js +1 -0
  78. package/assets/esri/core/workers/chunks/{ff6abdc72076f3994659.js → f7150547d7e3259a0f29.js} +1 -1
  79. package/assets/esri/core/workers/chunks/{2c607d30ff8ca1b61286.js → fe0c3b7c9b428d9c3f25.js} +1 -1
  80. package/assets/esri/images/portal/mediaservice16.png +0 -0
  81. package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
  82. package/assets/esri/widgets/Directions/t9n/Directions.json +1 -1
  83. package/assets/esri/widgets/Directions/t9n/Directions_ar.json +1 -1
  84. package/assets/esri/widgets/Directions/t9n/Directions_bg.json +1 -1
  85. package/assets/esri/widgets/Directions/t9n/Directions_bs.json +1 -1
  86. package/assets/esri/widgets/Directions/t9n/Directions_ca.json +1 -1
  87. package/assets/esri/widgets/Directions/t9n/Directions_cs.json +1 -1
  88. package/assets/esri/widgets/Directions/t9n/Directions_da.json +1 -1
  89. package/assets/esri/widgets/Directions/t9n/Directions_de.json +1 -1
  90. package/assets/esri/widgets/Directions/t9n/Directions_el.json +1 -1
  91. package/assets/esri/widgets/Directions/t9n/Directions_en.json +1 -1
  92. package/assets/esri/widgets/Directions/t9n/Directions_es.json +1 -1
  93. package/assets/esri/widgets/Directions/t9n/Directions_et.json +1 -1
  94. package/assets/esri/widgets/Directions/t9n/Directions_fi.json +1 -1
  95. package/assets/esri/widgets/Directions/t9n/Directions_fr.json +1 -1
  96. package/assets/esri/widgets/Directions/t9n/Directions_he.json +1 -1
  97. package/assets/esri/widgets/Directions/t9n/Directions_hr.json +1 -1
  98. package/assets/esri/widgets/Directions/t9n/Directions_hu.json +1 -1
  99. package/assets/esri/widgets/Directions/t9n/Directions_id.json +1 -1
  100. package/assets/esri/widgets/Directions/t9n/Directions_it.json +1 -1
  101. package/assets/esri/widgets/Directions/t9n/Directions_ja.json +1 -1
  102. package/assets/esri/widgets/Directions/t9n/Directions_ko.json +1 -1
  103. package/assets/esri/widgets/Directions/t9n/Directions_lt.json +1 -1
  104. package/assets/esri/widgets/Directions/t9n/Directions_lv.json +1 -1
  105. package/assets/esri/widgets/Directions/t9n/Directions_nb.json +1 -1
  106. package/assets/esri/widgets/Directions/t9n/Directions_nl.json +1 -1
  107. package/assets/esri/widgets/Directions/t9n/Directions_pl.json +1 -1
  108. package/assets/esri/widgets/Directions/t9n/Directions_pt-BR.json +1 -1
  109. package/assets/esri/widgets/Directions/t9n/Directions_pt-PT.json +1 -1
  110. package/assets/esri/widgets/Directions/t9n/Directions_ro.json +1 -1
  111. package/assets/esri/widgets/Directions/t9n/Directions_ru.json +1 -1
  112. package/assets/esri/widgets/Directions/t9n/Directions_sk.json +1 -1
  113. package/assets/esri/widgets/Directions/t9n/Directions_sl.json +1 -1
  114. package/assets/esri/widgets/Directions/t9n/Directions_sr.json +1 -1
  115. package/assets/esri/widgets/Directions/t9n/Directions_sv.json +1 -1
  116. package/assets/esri/widgets/Directions/t9n/Directions_th.json +1 -1
  117. package/assets/esri/widgets/Directions/t9n/Directions_tr.json +1 -1
  118. package/assets/esri/widgets/Directions/t9n/Directions_uk.json +1 -1
  119. package/assets/esri/widgets/Directions/t9n/Directions_vi.json +1 -1
  120. package/assets/esri/widgets/Directions/t9n/Directions_zh-CN.json +1 -1
  121. package/assets/esri/widgets/Directions/t9n/Directions_zh-HK.json +1 -1
  122. package/assets/esri/widgets/Directions/t9n/Directions_zh-TW.json +1 -1
  123. package/chunks/Heatmap.glsl.js +10 -0
  124. package/chunks/HeatmapDensity.glsl.js +21 -0
  125. package/core/maybe.js +1 -1
  126. package/core/promiseUtils.js +1 -1
  127. package/interfaces.d.ts +455 -45
  128. package/layers/RouteLayer.d.ts +4 -0
  129. package/layers/RouteLayer.js +1 -1
  130. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  131. package/layers/graphics/data/optimizedFeatureQueryEngineAdapter.js +1 -1
  132. package/layers/graphics/featureConversionUtils.js +1 -1
  133. package/layers/mixins/ArcGISImageService.js +1 -1
  134. package/layers/support/rasterFunctions/vectorFieldUtils.js +1 -1
  135. package/package.json +1 -1
  136. package/portal/PortalItem.js +1 -1
  137. package/renderers/support/rendererConversion.js +1 -1
  138. package/rest/support/DirectionLine.d.ts +4 -0
  139. package/rest/support/DirectionPoint.d.ts +4 -0
  140. package/rest/support/FeatureSet.js +1 -1
  141. package/rest/support/RouteInfo.d.ts +4 -0
  142. package/rest/support/RouteInfo.js +1 -1
  143. package/rest/support/RouteSolveResult.d.ts +4 -0
  144. package/support/featureFlags.js +1 -1
  145. package/support/revision.js +1 -1
  146. package/symbols/TextSymbol3DLayer.js +1 -1
  147. package/symbols/support/Symbol3DHalo.js +1 -1
  148. package/symbols/support/Symbol3DTextBackground.js +5 -0
  149. package/views/2d/engine/RasterVFContainer.js +5 -0
  150. package/views/2d/engine/RasterVFDisplayObject.js +1 -1
  151. package/views/2d/engine/flow/AnimatedFlowView2D.js +1 -1
  152. package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
  153. package/views/2d/engine/webgl/brushes/raster/BrushVectorField.js +1 -1
  154. package/views/2d/engine/webgl/cpuMapped/Buffer.js +1 -1
  155. package/views/2d/engine/webgl/mesh/templates/WGLBaseTextTemplate.js +1 -1
  156. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  157. package/views/2d/layers/ImageryLayerView2D.js +1 -1
  158. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  159. package/views/2d/layers/RouteLayerView2D.js +1 -1
  160. package/views/2d/layers/features/processors/HeatmapProcessor.js +1 -1
  161. package/views/2d/layers/features/processors/SymbolProcessor.js +1 -1
  162. package/views/2d/layers/features/support/AttributeStore.js +1 -1
  163. package/views/2d/layers/features/support/ClusterStore.js +1 -1
  164. package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
  165. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  166. package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
  167. package/views/2d/layers/imagery/ImageryVFStrategy.js +5 -0
  168. package/views/2d/layers/imagery/ImageryView2D.js +1 -1
  169. package/views/2d/layers/imagery/VectorFieldTileView2D.js +1 -1
  170. package/views/2d/layers/imagery/VectorFieldView2D.js +5 -0
  171. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  172. package/views/3d/environment/CloudsComposition.js +1 -1
  173. package/views/3d/environment/CloudsGenerator.js +1 -1
  174. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  175. package/views/3d/environment/Fog.js +1 -1
  176. package/views/3d/environment/NoiseTextureAtlas.js +1 -1
  177. package/views/3d/environment/PanoramicAtmosphere.js +1 -1
  178. package/views/3d/environment/Precipitation.js +1 -1
  179. package/views/3d/environment/SimpleAtmosphere.js +1 -1
  180. package/views/3d/environment/Stars.js +1 -1
  181. package/views/3d/interactive/analysisTools/lineOfSight/LineOfSightTool.js +1 -1
  182. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  183. package/views/3d/layers/I3SMeshView3D.js +1 -1
  184. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  185. package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
  186. package/views/3d/layers/graphics/Graphics3DWebStyleSymbol.js +1 -1
  187. package/views/3d/layers/graphics/labelPlacement.js +1 -1
  188. package/views/3d/layers/i3s/I3SCrossfadeHelper.js +1 -1
  189. package/views/3d/layers/i3s/I3SIndex.js +1 -1
  190. package/views/3d/layers/i3s/I3SMaterialUtil.js +1 -1
  191. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  192. package/views/3d/layers/i3s/PointRenderer.js +1 -1
  193. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  194. package/views/3d/support/LaserLineRenderer.js +1 -1
  195. package/views/3d/terrain/OverlayRenderer.js +1 -1
  196. package/views/3d/terrain/TerrainRenderer.js +1 -1
  197. package/views/3d/terrain/TileRenderer.js +1 -1
  198. package/views/3d/webgl-engine/core/renderPasses/RenderPass.js +1 -1
  199. package/views/3d/webgl-engine/lib/CompositingHelper.js +1 -1
  200. package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +5 -0
  201. package/views/3d/webgl-engine/lib/HighlightHelper.js +1 -1
  202. package/views/3d/webgl-engine/lib/RenderingContext.js +1 -1
  203. package/views/3d/webgl-engine/lib/SSAOHelper.js +1 -1
  204. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  205. package/views/3d/webgl-engine/lib/ShadowCastRenderer.js +1 -1
  206. package/views/3d/webgl-engine/lib/ShadowHighlightHelper.js +1 -1
  207. package/views/3d/webgl-engine/lib/SmaaRenderPass.js +1 -1
  208. package/views/3d/webgl-engine/lib/TextRenderParameters.js +1 -1
  209. package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
  210. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  211. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  212. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  213. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +5 -0
  214. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  215. package/views/3d/webgl-engine/shaders/Heatmap.glsl.js +5 -0
  216. package/views/3d/webgl-engine/shaders/HeatmapDensity.glsl.js +5 -0
  217. package/views/3d/webgl-engine/shaders/HeatmapDensityTechnique.js +5 -0
  218. package/views/3d/webgl-engine/shaders/HeatmapTechnique.js +5 -0
  219. package/views/draw/support/Box.js +1 -1
  220. package/views/draw/support/GraphicMover.js +1 -1
  221. package/views/draw/support/HighlightHelper.js +5 -0
  222. package/views/draw/support/Reshape.js +1 -1
  223. package/views/draw/support/layerUtils.js +1 -1
  224. package/webdoc/support/{Thumbnail.js → SlideThumbnail.js} +1 -1
  225. package/webmap/Bookmark.js +1 -1
  226. package/webmap/Version.js +1 -1
  227. package/webscene/Slide.js +1 -1
  228. package/webscene/Version.js +1 -1
  229. package/webscene/support/SlideVisibleLayer.js +1 -1
  230. package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
  231. package/widgets/Bookmarks.js +1 -1
  232. package/widgets/Directions/DirectionsViewModel.js +1 -1
  233. package/widgets/Directions/support/directionsUtils.js +1 -1
  234. package/widgets/Directions/support/resources.js +1 -1
  235. package/widgets/Directions.js +1 -1
  236. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  237. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  238. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  239. package/widgets/FeatureTable.js +1 -1
  240. package/widgets/Sketch/SketchViewModel.js +1 -1
  241. package/widgets/Sketch.js +1 -1
  242. package/widgets/TimeSlider.js +1 -1
  243. package/widgets/Widget.js +1 -1
  244. package/widgets/support/vnodeCache.js +5 -0
  245. package/widgets/support/widgetUtils.js +1 -1
  246. package/assets/esri/core/workers/chunks/0453fad5cb819797b4f6.js +0 -1
  247. package/assets/esri/core/workers/chunks/0cd0a6eef51fc5b9ea61.js +0 -1
  248. package/assets/esri/core/workers/chunks/0d684f16f37d5dc385dd.js +0 -1
  249. package/assets/esri/core/workers/chunks/16b6d0f8378582c051c3.js +0 -1
  250. package/assets/esri/core/workers/chunks/1877ab1b6a115dbba1c5.js +0 -1
  251. package/assets/esri/core/workers/chunks/1b2a961f776a0b57e57a.js +0 -1
  252. package/assets/esri/core/workers/chunks/1b3fd66577b19aa5f2b6.js +0 -1
  253. package/assets/esri/core/workers/chunks/1c733b7db092a2a88ef3.js +0 -1
  254. package/assets/esri/core/workers/chunks/27474b007988855bea9d.js +0 -1
  255. package/assets/esri/core/workers/chunks/357033117dfe61eb81ea.js +0 -1
  256. package/assets/esri/core/workers/chunks/483d5d8593d96d0f0b15.js +0 -1
  257. package/assets/esri/core/workers/chunks/4ba6de8aa7e2960bad49.js +0 -1
  258. package/assets/esri/core/workers/chunks/4be35af7d6babbfe9d84.js +0 -1
  259. package/assets/esri/core/workers/chunks/5457962a70bd3c557a75.js +0 -1
  260. package/assets/esri/core/workers/chunks/57856b4a9b8784a69844.js +0 -1
  261. package/assets/esri/core/workers/chunks/57b349d1dbc0bed75b79.js +0 -1
  262. package/assets/esri/core/workers/chunks/5d11b97b667921d67ae7.js +0 -1
  263. package/assets/esri/core/workers/chunks/5dbe555a5a662ff3d9ce.js +0 -1
  264. package/assets/esri/core/workers/chunks/64b7e8d812ea8fcf269e.js +0 -1
  265. package/assets/esri/core/workers/chunks/75d812955a473d0e8960.js +0 -1
  266. package/assets/esri/core/workers/chunks/96f148a556a2418038de.js +0 -1
  267. package/assets/esri/core/workers/chunks/9876a1bae350795fab36.js +0 -1
  268. package/assets/esri/core/workers/chunks/a8692bffb76444c34760.js +0 -1
  269. package/assets/esri/core/workers/chunks/ba762bcfd74af0bb8218.js +0 -1
  270. package/assets/esri/core/workers/chunks/c093dff4592832ac0973.js +0 -1
  271. package/assets/esri/core/workers/chunks/c984b3040e120e502b11.js +0 -1
  272. package/assets/esri/core/workers/chunks/cdbc005eebec1503b99d.js +0 -1
  273. package/assets/esri/core/workers/chunks/d1fe53b597351dc58305.js +0 -1
  274. package/assets/esri/core/workers/chunks/e218bde41ffbcc5194f5.js +0 -1
  275. package/assets/esri/core/workers/chunks/e287f49184d076af17e2.js +0 -1
  276. package/assets/esri/core/workers/chunks/e93dfdede0532a89ffa5.js +0 -1
  277. package/assets/esri/core/workers/chunks/e9e5196b44b6923be1a3.js +0 -1
  278. package/assets/esri/core/workers/chunks/ea595b0df5050eda2a13.js +0 -1
  279. package/assets/esri/core/workers/chunks/eb82ff10cef2bde6e57f.js +0 -1
  280. package/assets/esri/core/workers/chunks/ee6e0db58dc64410e687.js +0 -1
  281. package/assets/esri/core/workers/chunks/f0a9f161805fc7a30fc5.js +0 -1
  282. package/assets/esri/core/workers/chunks/fc7e31d87555beb63291.js +0 -1
  283. package/assets/esri/core/workers/chunks/fff6b0338f06dad0c45d.js +0 -1
  284. package/views/2d/layers/imagery/ImageryGraphicsView2D.js +0 -5
  285. package/widgets/Directions/support/CostSummary.js +0 -5
  286. package/widgets/Directions/support/RouteSection.js +0 -5
  287. package/widgets/Directions/support/RouteSections.js +0 -5
  288. package/widgets/Directions/support/maneuverUtils.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{HandleOwnerMixin as l}from"../core/HandleOwner.js";import{on as o,watch as s}from"../core/watchUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import u from"./FeatureTable/FeatureTableViewModel.js";import c from"./FeatureTable/Grid/support/ButtonMenu.js";import m from"./FeatureTable/Grid/support/ButtonMenuItem.js";import"./support/widgetUtils.js";import{messageBundle as h}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as p}from"./support/jsxFactory.js";import{onLocaleChange as g}from"../intl/locale.js";import{substitute as v}from"../intl/substitute.js";import{fetchMessageBundle as w}from"../intl/messages.js";const b={header:!0,menu:!0,menuItems:{clearSelection:!0,refreshData:!0,toggleColumns:!0},selectionColumn:!0,columnMenus:!0},f={base:"esri-feature-table",header:"esri-feature-table__header",title:"esri-feature-table__title",content:"esri-feature-table__content",loader:"esri-feature-table__loader",loaderContainer:"esri-feature-table__loader-container",menuContainer:"esri-feature-table__menu",menuIcon:"esri-icon-handle-horizontal",menuItemGroupOpenedIcon:"esri-icon-down",menuItemGroupClosedIcon:"esri-icon-right",checkmarkIcon:"esri-icon-check-mark",widget:"esri-widget"};let M=class extends(l(d)){constructor(e,l){super(e,l),this.attachmentsEnabled=null,this.columns=new t,this.editingEnabled=null,this.fieldConfigs=null,this.filterGeometry=null,this.grid=null,this.highlightOnRowSelectEnabled=!0,this.label=void 0,this.layer=null,this.messages=null,this.menu=null,this.menuConfig=null,this.pageSize=50,this.view=null,this.viewModel=new u,this.visibleElements={...b}}initialize(){var e,t,l;const i=async()=>this.messages=await w("esri/widgets/FeatureTable/t9n/FeatureTable");i(),this.handles.add([g(i),o(this,"grid.selectedItems","change",(e=>this._onSelectionChange(e))),s(this,["viewModel.store.querying","viewModel.store.syncing","grid.size"],(()=>this.scheduleRender())),o(this,"viewModel.columns","change",(()=>this._updateMenuItems())),s(this,"menuConfig",(()=>this._syncMenuConfig())),s(this,"messages",(()=>{var e;this.menu.label=null==(e=this.messages)?void 0:e.options,this._updateMenuItems()}))]),this._set("menu",new c({label:null==(e=this.messages)?void 0:e.options,iconClass:f.menuIcon,...this.menuConfig}));const{attachmentsEnabled:n,relatedRecordsEnabled:r}=this;null==(t=this.viewModel)||null==(l=t.store)||l.set({attachmentsEnabled:n,relatedRecordsEnabled:r})}destroy(){var e;this.clearSelection(),this.handles.removeAll(),null==(e=this.menu)||e.destroy()}castVisibleElements(e){var t;const l={...b,...e};return null==(t=this.grid)||t.set("visibleElements",{...this.grid.visibleElements,selectionColumn:l.selectionColumn,columnMenus:l.columnMenus}),l}clearHighlights(){}clearSelection(){}deselectRows(){}hideColumn(e){var t;null==(t=this.grid)||t.hideColumn(e),this._updateMenuItems()}refresh(){}showColumn(e){var t;null==(t=this.grid)||t.showColumn(e),this._updateMenuItems()}sortColumn(){}selectRows(){}scrollToIndex(){}render(){var e;return p("div",{bind:this,class:this.classes(f.base,f.widget)},this.visibleElements.header?this._renderHeader():null,p("div",{class:f.content},"disabled"!==this.state&&(null==(e=this.grid)?void 0:e.render())))}_renderHeader(){return p("div",{key:"header",class:f.header},this._renderLoader(),this._renderTitle(),this.visibleElements.menu?this._renderMenu():null)}_renderTitle(){return p("div",{class:f.title,key:"title"},this._getTitle())}_getTitle(){const{grid:e,layer:{title:t},messages:l,viewModel:{size:o}}=this;return e?v(l.header,{title:t,count:o,selected:e.selectedItems.length||0}):""}_renderLoader(){const{state:e,store:t}=this.viewModel,l="loading"===e||t.syncing||t.querying;return p("div",{class:f.loaderContainer},l?p("div",{class:f.loader,key:"loader"}):null)}_renderMenu(){return p("div",{class:f.menuContainer},this.menu.render())}_onSelectionChange(e){const{added:t,removed:l}=e;this.emit("selection-change",{added:[...t],removed:[...l]})}_syncMenuConfig(){var e;null==(e=this.menu)||e.set({...this.menuConfig,items:this._getMenuItems()})}_updateMenuItems(){var e;null==(e=this.menu)||e.set("items",this._getMenuItems())}_getMenuItems(){var e;const t=null==(e=this.menuConfig)?void 0:e.items,l=this._getDefaultMenuItems(),o=[];return(null==l?void 0:l.length)&&o.push(...l),(null==t?void 0:t.length)&&o.push(...t),o}_getDefaultMenuItems(){var e;const{messages:t,viewModel:l,visibleElements:o}=this,{menuItems:s}=o,i=[];return(null==s?void 0:s.clearSelection)&&i.push(new m({selectionEnabled:!1,label:null==t?void 0:t.clearSelection,clickFunction:()=>this.clearSelection()})),(null==s?void 0:s.refreshData)&&i.push(new m({selectionEnabled:!1,label:null==t?void 0:t.refreshData,clickFunction:()=>this.refresh()})),(null==s?void 0:s.toggleColumns)&&i.push(new m({iconClass:f.menuItemGroupClosedIcon,label:null==t?void 0:t.toggleColumns,clickFunction:this._toggleMenuItemSelectedIcon,items:null==l||null==(e=l.columns)?void 0:e.items.map((({header:e,hidden:t,path:l})=>new m({label:e||l,selected:!t,selectionEnabled:!0,iconClass:f.checkmarkIcon,clickFunction:()=>this._toggleColumnFromMenuItem(l)})))})),i.length?i:null}_toggleMenuItemSelectedIcon({item:e}){null==e||e.set("iconClass",null!=e&&e.selected?f.menuItemGroupOpenedIcon:f.menuItemGroupClosedIcon)}_toggleColumnFromMenuItem(e){const{grid:t,viewModel:l}=this,o=l.findColumn(e);null!=o&&o.hidden?t.showColumn(e):t.hideColumn(e)}};e([i("viewModel.attachmentsEnabled")],M.prototype,"attachmentsEnabled",void 0),e([i("viewModel.columns")],M.prototype,"columns",void 0),e([i("viewModel.editingEnabled")],M.prototype,"editingEnabled",void 0),e([i("viewModel.fieldConfigs")],M.prototype,"fieldConfigs",void 0),e([i("viewModel.filterGeometry")],M.prototype,"filterGeometry",void 0),e([i("viewModel.grid")],M.prototype,"grid",void 0),e([i("viewModel.highlightOnRowSelectEnabled")],M.prototype,"highlightOnRowSelectEnabled",void 0),e([r({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],M.prototype,"label",void 0),e([i("viewModel.layer")],M.prototype,"layer",void 0),e([r(),h("esri/widgets/FeatureTable/t9n/FeatureTable")],M.prototype,"messages",void 0),e([r({readOnly:!0})],M.prototype,"menu",void 0),e([r()],M.prototype,"menuConfig",void 0),e([i("viewModel.pageSize")],M.prototype,"pageSize",void 0),e([i("viewModel.relatedRecordsEnabled")],M.prototype,"relatedRecordsEnabled",void 0),e([i("viewModel.state")],M.prototype,"state",void 0),e([i("viewModel.view")],M.prototype,"view",void 0),e([r()],M.prototype,"viewModel",void 0),e([r()],M.prototype,"visibleElements",void 0),e([n("visibleElements")],M.prototype,"castVisibleElements",null),e([i("viewModel.clearHighlights")],M.prototype,"clearHighlights",null),e([i("viewModel.clearSelection")],M.prototype,"clearSelection",null),e([i("viewModel.deselectRows")],M.prototype,"deselectRows",null),e([i("viewModel.refresh")],M.prototype,"refresh",null),e([i("viewModel.sortColumn")],M.prototype,"sortColumn",null),e([i("viewModel.selectRows")],M.prototype,"selectRows",null),e([i("viewModel.scrollToIndex")],M.prototype,"scrollToIndex",null),M=e([a("esri.widgets.FeatureTable")],M);const y=M;export{y as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{HandleOwnerMixin as l}from"../core/HandleOwner.js";import{on as o,watch as i}from"../core/reactiveUtils.js";import{aliasOf as s}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import c from"./FeatureTable/FeatureTableViewModel.js";import u from"./FeatureTable/Grid/support/ButtonMenu.js";import h from"./FeatureTable/Grid/support/ButtonMenuItem.js";import"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{tsx as p}from"./support/jsxFactory.js";import{onLocaleChange as g}from"../intl/locale.js";import{substitute as v}from"../intl/substitute.js";import{fetchMessageBundle as w}from"../intl/messages.js";const b={header:!0,menu:!0,menuItems:{clearSelection:!0,refreshData:!0,toggleColumns:!0,selectedRecordsFilterToggle:!0},selectionColumn:!0,columnMenus:!0},f={base:"esri-feature-table",header:"esri-feature-table__header",title:"esri-feature-table__title",content:"esri-feature-table__content",loader:"esri-feature-table__loader",loaderContainer:"esri-feature-table__loader-container",menuContainer:"esri-feature-table__menu",menuIcon:"esri-icon-handle-horizontal",menuItemGroupOpenedIcon:"esri-icon-down",menuItemGroupClosedIcon:"esri-icon-right",checkmarkIcon:"esri-icon-check-mark",widget:"esri-widget"};let y=class extends(l(a)){constructor(e,l){super(e,l),this.attachmentsEnabled=null,this.columns=new t,this.editingEnabled=null,this.fieldConfigs=null,this.filterGeometry=null,this.grid=null,this.highlightOnRowSelectEnabled=!0,this.label=void 0,this.layer=null,this.messages=null,this.menu=null,this.menuConfig=null,this.pageSize=50,this.view=null,this.viewModel=new c,this.visibleElements={...b}}initialize(){var e,t,l;const s=async()=>this.messages=await w("esri/widgets/FeatureTable/t9n/FeatureTable");s(),this.handles.add([g(s),o((()=>this.viewModel.columns),"change",(()=>this._syncMenuConfig())),o((()=>this.viewModel.activeFilters),"change",(()=>this._syncMenuConfig())),o((()=>this.grid.selectedItems),"change",(e=>{this._syncMenuConfig(),this._onSelectionChange(e)})),i((()=>[this.viewModel.store.querying,this.viewModel.store.syncing]),(()=>this.scheduleRender())),i((()=>this.menuConfig),(()=>this._syncMenuConfig())),i((()=>this.messages),(()=>{var e;this.menu.label=null==(e=this.messages)?void 0:e.options,this._syncMenuConfig()}))]),this._set("menu",new u({label:null==(e=this.messages)?void 0:e.options,iconClass:f.menuIcon,...this.menuConfig}));const{attachmentsEnabled:n,relatedRecordsEnabled:r}=this;null==(t=this.viewModel)||null==(l=t.store)||l.set({attachmentsEnabled:n,relatedRecordsEnabled:r})}destroy(){var e;this.clearSelection(),this.handles.removeAll(),null==(e=this.menu)||e.destroy()}castVisibleElements(e){var t;const l={...b,...e};return null==(t=this.grid)||t.set("visibleElements",{...this.grid.visibleElements,selectionColumn:l.selectionColumn,columnMenus:l.columnMenus}),l}clearHighlights(){}clearSelection(){}deselectRows(){}filterBySelection(){}hideColumn(e){var t;null==(t=this.grid)||t.hideColumn(e),this._syncMenuConfig()}refresh(){}showColumn(e){var t;null==(t=this.grid)||t.showColumn(e),this._syncMenuConfig()}sortColumn(){}selectRows(){}scrollToIndex(){}render(){var e;return p("div",{bind:this,class:this.classes(f.base,f.widget)},this.visibleElements.header?this._renderHeader():null,p("div",{class:f.content},"disabled"!==this.state&&(null==(e=this.grid)?void 0:e.render())))}_renderHeader(){return p("div",{key:"header",class:f.header},this._renderLoader(),this._renderTitle(),this.visibleElements.menu?this._renderMenu():null)}_renderTitle(){return p("div",{class:f.title,key:"title"},this._getTitle())}_getTitle(){const{grid:e,layer:{title:t},messages:l,viewModel:{size:o}}=this;return e?v(l.header,{title:t,count:o,selected:e.selectedItems.length||0}):""}_renderLoader(){const{state:e,store:t}=this.viewModel,l="loading"===e||t.syncing||t.querying;return p("div",{class:f.loaderContainer},l?p("div",{class:f.loader,key:"loader"}):null)}_renderMenu(){return p("div",{class:f.menuContainer},this.menu.render())}_onSelectionChange(e){const{added:t,removed:l}=e;this.emit("selection-change",{added:[...t],removed:[...l]})}_syncMenuConfig(){var e;null==(e=this.menu)||e.set({...this.menuConfig,items:this._getMenuItems()})}_getMenuItems(){var e;const t=null==(e=this.menuConfig)?void 0:e.items,l=this._getDefaultMenuItems(),o=[];return(null==l?void 0:l.length)&&o.push(...l),(null==t?void 0:t.length)&&o.push(...t),o}_getDefaultMenuItems(){var e;const{messages:t,viewModel:l,visibleElements:o}=this,{menuItems:i}=o,s=[];if(null!=i&&i.selectedRecordsFilterToggle&&(this._hasActiveSelection()||this._hasSelectionFilter())){const e=this._getSelectedRecordsMenuItemTitle(),t=new h({selectionEnabled:!1,label:e,clickFunction:()=>{this._toggleSelectedRecordsView(),t.set("label",e)}});s.push(t)}return(null==i?void 0:i.clearSelection)&&s.push(new h({selectionEnabled:!1,label:null==t?void 0:t.clearSelection,clickFunction:()=>this.clearSelection()})),(null==i?void 0:i.refreshData)&&s.push(new h({selectionEnabled:!1,label:null==t?void 0:t.refreshData,clickFunction:()=>this.refresh()})),(null==i?void 0:i.toggleColumns)&&s.push(new h({iconClass:f.menuItemGroupClosedIcon,label:null==t?void 0:t.toggleColumns,clickFunction:this._toggleMenuItemSelectedIcon,items:null==l||null==(e=l.columns)?void 0:e.items.map((({header:e,hidden:t,path:l})=>new h({label:e||l,selected:!t,selectionEnabled:!0,iconClass:f.checkmarkIcon,clickFunction:()=>this._toggleColumnFromMenuItem(l)})))})),s.length?s:null}_getSelectedRecordsMenuItemTitle(){const{messages:e,viewModel:t}=this;return t.store.objectIds&&t.store.objectIds.length?e.showAllRecords:e.showSelected}_toggleMenuItemSelectedIcon({item:e}){null==e||e.set("iconClass",null!=e&&e.selected?f.menuItemGroupOpenedIcon:f.menuItemGroupClosedIcon)}_toggleColumnFromMenuItem(e){const{grid:t,viewModel:l}=this,o=l.findColumn(e);null!=o&&o.hidden?t.showColumn(e):t.hideColumn(e)}_toggleSelectedRecordsView(){this._hasSelectionFilter()?this.viewModel.removeSelectionFilter():this.viewModel.filterBySelection()}_hasActiveSelection(){return!!this.grid.selectedItems.map((e=>e.objectId)).length}_hasSelectionFilter(){return!!this.viewModel.activeFilters.find((e=>"selection"===e.type))}};e([s("viewModel.attachmentsEnabled")],y.prototype,"attachmentsEnabled",void 0),e([s("viewModel.columns")],y.prototype,"columns",void 0),e([s("viewModel.editingEnabled")],y.prototype,"editingEnabled",void 0),e([s("viewModel.fieldConfigs")],y.prototype,"fieldConfigs",void 0),e([s("viewModel.filterGeometry")],y.prototype,"filterGeometry",void 0),e([s("viewModel.grid")],y.prototype,"grid",void 0),e([s("viewModel.highlightOnRowSelectEnabled")],y.prototype,"highlightOnRowSelectEnabled",void 0),e([r({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],y.prototype,"label",void 0),e([s("viewModel.layer")],y.prototype,"layer",void 0),e([r(),m("esri/widgets/FeatureTable/t9n/FeatureTable")],y.prototype,"messages",void 0),e([r({readOnly:!0})],y.prototype,"menu",void 0),e([r()],y.prototype,"menuConfig",void 0),e([s("viewModel.pageSize")],y.prototype,"pageSize",void 0),e([s("viewModel.relatedRecordsEnabled")],y.prototype,"relatedRecordsEnabled",void 0),e([s("viewModel.state")],y.prototype,"state",void 0),e([s("viewModel.view")],y.prototype,"view",void 0),e([r()],y.prototype,"viewModel",void 0),e([r()],y.prototype,"visibleElements",void 0),e([n("visibleElements")],y.prototype,"castVisibleElements",null),e([s("viewModel.clearHighlights")],y.prototype,"clearHighlights",null),e([s("viewModel.clearSelection")],y.prototype,"clearSelection",null),e([s("viewModel.deselectRows")],y.prototype,"deselectRows",null),e([s("viewModel.filterBySelection")],y.prototype,"filterBySelection",null),e([s("viewModel.refresh")],y.prototype,"refresh",null),e([s("viewModel.sortColumn")],y.prototype,"sortColumn",null),e([s("viewModel.selectRows")],y.prototype,"selectRows",null),e([s("viewModel.scrollToIndex")],y.prototype,"scrollToIndex",null),y=e([d("esri.widgets.FeatureTable")],y);const M=y;export{M 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/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import{symbolTypes as t}from"../../symbols.js";import o from"../../core/Collection.js";import"../../core/has.js";import i from"../../core/Error.js";import a from"../../core/Evented.js";import r from"../../core/Handles.js";import s from"../../core/Logger.js";import{isSome as n,destroyMaybe as p,unwrap as l,abortMaybe as h,isNone as c,unwrapOr as d,get as u}from"../../core/maybe.js";import{createAbortError as y,whenOrAbort as m}from"../../core/promiseUtils.js";import{watch as v}from"../../core/reactiveUtils.js";import{watch as g,on as f,init as _,when as w,whenNotOnce as G,whenOnce as b}from"../../core/watchUtils.js";import{property as T}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/accessorSupport/ensureType.js";import{subclass as E}from"../../core/accessorSupport/decorators/subclass.js";import{getReferenceEllipsoid as O}from"../../geometry/projectionEllipsoid.js";import{geometryToCoordinates as S}from"../../geometry/support/coordsUtils.js";import A from"../../layers/GraphicsLayer.js";import{isDOMContainer as k}from"../../views/DOMContainer.js";import{SupportedGraphicResult as C,isSupportedGraphicResultMessage as H}from"../../views/3d/interactive/editingTools/isSupportedGraphicUtils.js";import{isSupportedGraphic as I}from"../../views/3d/interactive/editingTools/moveGraphic/isSupportedGraphic.js";import{isSupportedGraphic as M}from"../../views/3d/interactive/editingTools/reshapeGraphic/isSupportedGraphic.js";import{isSupportedGraphic as R}from"../../views/3d/interactive/editingTools/transformGraphic/isSupportedGraphic.js";import{addUniqueLayer as D}from"../../views/draw/support/layerUtils.js";import{ViewEventPriorities as U}from"../../views/input/InputManager.js";import{SKETCH_KEYS as P}from"../../views/interactive/keybindings.js";import{SnappingManager as x}from"../../views/interactive/snapping/SnappingManager.js";import j from"../../views/interactive/snapping/SnappingOptions.js";import{createScreenPointFromEvent as L}from"../../views/support/screenUtils.js";import{OperationHandle as F,UpdateOperationHandle as V}from"./support/OperationHandle.js";import W from"../../symbols/SimpleMarkerSymbol.js";import K from"../../symbols/SimpleFillSymbol.js";import q from"../../symbols/SimpleLineSymbol.js";const Z="esri.widgets.Sketch.SketchViewModel",z=s.getLogger(Z),B={defaultZ:0},N={reshapeOptions:{edgeOperation:"split",shapeOperation:"move",vertexOperation:"move"},enableMoveAllGraphics:!0,enableRotation:!0,enableScaling:!0,multipleSelectionEnabled:!0,preserveAspectRatio:!1,toggleToolOnClick:!0,enableZ:!0,tool:"transform"};let $=class extends a.EventedAccessor{constructor(e){super(e),this._numUpdating=0,this._handles=new r,this._internalGraphicsLayer=new A({listMode:"hide",internal:!0,title:"SVM Internal"}),this._operationHandle=null,this._viewHandles=new r,this.activeFillSymbol=null,this.activeLineSymbol=null,this.activeVertexSymbol=null,this.allowDeleteKey=!0,this.layer=null,this.pointSymbol=new W({style:"circle",size:6,color:[255,255,255],outline:{color:[50,50,50],width:1}}),this.polygonSymbol=new K({color:[150,150,150,.2],outline:{color:[50,50,50],width:2}}),this.polylineSymbol=new q({color:[130,130,130,1],width:2}),this._snappingManager=null,this.updateGraphics=new o,this.updateOnGraphicClick=!0,this.updatePointSymbol=new W({size:10,color:[0,200,255,.5],outline:{color:"black",width:1}}),this.updatePolygonSymbol=new K({color:[12,207,255,.2],outline:{join:"round",color:[12,207,255],width:2}}),this.updatePolylineSymbol=new q({color:[12,207,255],width:2}),this.vertexSymbol=new W({style:"circle",size:6,color:[255,255,255],outline:{color:[50,50,50],width:1}}),this._moduleLoaderAbortController=null,this._viewReadyAbortController=null,this._originalAutoOpenEnabled=null,this.defaultCreateOptions=B,this.defaultUpdateOptions=N,this.snappingOptions=new j}initialize(){this._handles.add([g(this,"layer",(()=>{this.cancel(),this._internalGraphicsLayer.elevationInfo=n(this.layer)?this.layer.elevationInfo:null})),f(this,"view.map.layers","change",(e=>{e.removed.includes(this.layer)&&this.cancel()})),f(this,"layer.graphics","change",(e=>{if(n(this._operationHandle))for(const t of e.removed)this.updateGraphics.includes(t)&&(this.updateGraphics.length>1?this._operationHandle.removeFromSelection(t):this._operationHandle.cancel())})),_(this,"layer.elevationInfo",(()=>{this.cancel(),this._internalGraphicsLayer.elevationInfo=n(this.layer)?this.layer.elevationInfo:null}),!0),_(this,"view",(e=>{p(this._snappingManager),e&&(this._snappingManager=new x({view:e,options:this.snappingOptions}),"2d"===e.type?import("../../views/2d/interactive/editingTools.js"):"3d"===e.type&&(import("../../views/3d/interactive/editingTools.js"),import("../../views/3d/layers/GraphicsLayerView3D.js")))}),!0)])}destroy(){this.cancel(),this._handles=p(this._handles),this._viewHandles=p(this._viewHandles),this._removeDefaultLayer(),this._snappingManager=p(this._snappingManager),this._set("view",null),this.emit("destroy")}get _defaultUpdateTool(){return"3d"===this.view.type?"move":"transform"}get updating(){return this._numUpdating>0}get activeTool(){return this._operationHandle&&this._operationHandle.tool?this._operationHandle.tool:null}get activeComponent(){return this._operationHandle?this._operationHandle.activeComponent:null}get createGraphic(){return!n(this.activeComponent)||"draw-3d"!==this.activeComponent.type&&"draw-2d"!==this.activeComponent.type?this._get("createGraphic"):l(this.activeComponent.graphic)}set defaultCreateOptions(e){this._set("defaultCreateOptions",{...B,...e})}set defaultUpdateOptions(e){this._set("defaultUpdateOptions",{...N,...e,reshapeOptions:{...N.reshapeOptions,...null==e?void 0:e.reshapeOptions}})}set snappingOptions(e){n(this._snappingManager)&&(this._snappingManager.options=e),this._set("snappingOptions",e)}get state(){var e;const t=!(null==(e=this.view)||!e.ready||!this.layer),o=this._operationHandle;return t&&o?"active":t?"ready":"disabled"}get view(){return this._get("view")}set view(e){const t=this._get("view");if(t){const{container:e,map:o}=t;e&&(t.cursor=null),o&&o.remove(this._internalGraphicsLayer),this._viewHandles.removeAll(),this.cancel()}const o="view-ready";this._handles.remove(o),e&&this._handles.add(w(e,"ready",(t=>{this._viewHandles.removeAll(),t&&this._viewHandles.add(this._generateViewHandles(e))}),!0),o),this._set("view",e)}cancel(){this._moduleLoaderAbortController=h(this._moduleLoaderAbortController),this._viewReadyAbortController=h(this._viewReadyAbortController),this._operationHandle&&this._operationHandle.cancel()}complete(){this._operationHandle&&this._operationHandle.complete()}delete(){const{state:e,updateGraphics:t}=this;if("active"===e&&t.length){const{activeTool:e,layer:o}=this,i=t.toArray();o.removeMany(i),this.cancel(),this._emitDeleteEvent({graphics:i,tool:e})}}async create(e,t){if(this.cancel(),await this._waitViewReady(),"disabled"===this.state)throw this.layer||this._logError("sketch:missing-property","Property 'layer' is missing on SketchViewModel."),this.view||this._logError("sketch:missing-property","Property 'view' is missing on SketchViewModel."),y();if(n(this.view.activeTool)&&(this.view.activeTool=null),!e)return void this._logError("sketch:missing-parameter","Missing parameter 'tool'.");D(this.view,this._internalGraphicsLayer);const o=await this._setupCreateOperation(e,t);if(c(o)||this.destroyed)return void this.view.map.remove(this._internalGraphicsLayer);const i=()=>{if(o===this._operationHandle){const t=this.createGraphic,i=this._operationHandle.cancelled;this._operationHandle.destroy(),this._operationHandle=null,this._set("createGraphic",null),this.view&&this.view.map&&this.view.map.remove(this._internalGraphicsLayer),o.cancelled||null==t||this.layer.add(t),this.emit("create",{graphic:t,state:i?"cancel":"complete",tool:e,toolEventInfo:null,type:"create"})}};o.on("complete",i),this._operationHandle=o,this.view.ready&&k(this.view)&&this.view.focus()}async update(e,t){this.cancel(),await this._waitViewReady();const{layer:o,view:i,state:a}=this;if("disabled"===a)throw i||this._logError("sketch:missing-property","Property 'view' is missing on SketchViewModel."),o||this._logError("sketch:missing-property","Property 'layer' is missing on SketchViewModel."),y();n(this.view.activeTool)&&(this.view.activeTool=null);const r=Array.isArray(e)?e:[e];if(null==e||!r||!r.length)return void this._logError("sketch:missing-parameter","Missing parameter 'graphics'.");if(r.some((e=>e.layer!==o?(this._logError("sketch:invalid-parameter","Parameter 'graphics' contains one or more graphics missing from the supplied GraphicsLayer."),!0):c(e.geometry)?(this._logError("sketch:invalid-parameter","Parameter 'graphics' contains one or more graphics with an unsupported geometry."),!0):"2d"===i.type&&!i.spatialReference.equals(e.geometry.spatialReference)&&(this._logError("sketch:invalid-parameter","Parameter 'graphics' contains one or more graphics with a spatial reference different from the supplied MapView."),!0))))return;const s=await this._setupUpdateOperation(r,t);this.destroyed||c(s)||te(s)||(D(this.view,this._internalGraphicsLayer),this._setUpdateOperationHandle(s,t),this.emit("update",{graphics:r,state:"start",aborted:!1,tool:s.tool,toolEventInfo:null,type:"update"}))}undo(){this.canUndo()&&this._operationHandle.undo()}redo(){this.canRedo()&&this._operationHandle.redo()}canUndo(){return!(!this._operationHandle||!this._operationHandle.canUndo())}canRedo(){return!(!this._operationHandle||!this._operationHandle.canRedo())}toggleUpdateTool(){this._operationHandle&&this._operationHandle.toggleTool&&this._operationHandle.toggleTool()}async _getFirstHit(e){const t=[];switch(this.view.type){case"2d":{const o=[];this.view.map.allLayers.forEach((e=>{"vector-tile"!==e.type&&"imagery"!==e.type||o.push(e)}));const i=await this.view.hitTest(e,{exclude:o});if(i.results.length>0){const e=i.results[0];e.graphic&&t.push(e)}}break;case"3d":{const o=[this.view.map.ground];this.view.map.allLayers.forEach((e=>{"integrated-mesh"===e.type&&o.push(e)}));const i=await this.view.hitTest(e,{exclude:o});if(i.results.length>0){const e=i.results[0];(!i.ground.mapPoint||this.view.map.ground.opacity<1||i.ground.distance-d(e.distance,0)>-Math.min(3*i.ground.distance,"global"===this.view.viewingMode?O(this.view.renderCoordsHelper.spatialReference).radius/this.view.renderCoordsHelper.unitInMeters:Number.POSITIVE_INFINITY))&&t.push(e)}}}return{screenPoint:e,results:t}}_generateViewHandles(e){return[e.on("immediate-click",(async t=>{const o="active"===this.state&&"create"===this._operationHandle.type;if("disabled"===this.state||o||!this.updateOnGraphicClick)return;this._beginAsyncOperation();const i=(await t.async((()=>this._getFirstHit(L(t))))).results;let a=null;if(i.length){for(const r of i)if(r.graphic){const o=r.graphic;if(this.updateGraphics.includes(o)||o.layer===this.layer){t.stopPropagation(),a=o;break}"2d"!==e.type||this._isComponentGraphic(o)||"active"!==this.state||this.cancel()}}else"active"===this.state&&this.cancel();n(a)&&!this.updateGraphics.includes(a)&&await this.update([a],{...this.defaultUpdateOptions,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions}}),this._endAsyncOperation()}),U.WIDGET)]}async _setupCreateOperation(e,t){const o={hasZ:"3d"===this.view.type,...this.defaultCreateOptions,...t},i=await this._setupDrawGraphicTool(e,this.view,o);return c(i)?null:(this.view.tools.add(i),this.view.activeTool=i,this._setupCreateOperationHandle(i))}async _setupDrawGraphicTool(e,t,o){if("multipoint"===e&&"3d"===t.type)return this._logError("sketch:create","Multipoint geometries are not supported in SceneView"),null;const i="rectangle"!==e,a="rectangle"!==e;this.snappingOptions.enabledToggled=!1;const r={view:t,mode:"rectangle"===e||"circle"===e?"hybrid":"click",...o,snapToScene:!1,geometryType:e,graphicSymbol:this._getGraphicSymbolFromTool(e),snappingManager:this._snappingManager,forceUniformSize:a,centered:i};return"2d"===this.view.type?this._makeDrawGraphicTool2D(r):this._makeDrawGraphicTool3D(r)}async _makeDrawGraphicTool2D(e){const t=await this._requireModule(import("../../views/2d/interactive/editingTools.js"));return te(t)||this.destroyed?null:new t.module.DrawGraphicTool2D({...e,activeVertexSymbol:this.activeVertexSymbol,regularVerticesSymbol:this.vertexSymbol,activeLineSymbol:this.activeLineSymbol,activeFillSymbol:Y(e.geometryType)?this.activeFillSymbol:null})}async _makeDrawGraphicTool3D(e){const t=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));return te(t)||this.destroyed?null:new t.module.DrawGraphicTool3D({...e,elevationInfo:this.layer.elevationInfo,snapToScene:!n(this.layer.elevationInfo)||"absolute-height"===this.layer.elevationInfo.mode})}_setupCreateOperationHandle(e){let t=null;const o=e.forceUniformSize,i=e.centered,a=[this.view.on("key-down",(t=>{if(t.key===P.pan)t.stopPropagation(),t.repeat||(e.enabled=!1);else if(t.key===P.complete)t.stopPropagation(),e.completeCreateOperation();else if(t.key!==P.vertexAdd||t.repeat)t.key===P.undo?(t.stopPropagation(),r.undo()):t.key===P.redo?(t.stopPropagation(),r.redo()):t.key!==P.snappingToggle||"rectangle"===e.geometryType||"circle"===e.geometryType||t.repeat?t.key!==P.constraint||"rectangle"!==e.geometryType&&"circle"!==e.geometryType||t.repeat?t.key===P.center&&(t.repeat||(e.centered=!i,t.stopPropagation())):(e.forceUniformSize=!o,t.stopPropagation()):(this.snappingOptions.enabledToggled=!0,t.stopPropagation());else{const o=e.drawOperation.geometryType;"polyline"!==o&&"polygon"!==o&&"multipoint"!==o||(t.stopPropagation(),e.drawOperation.commitStagedVertex())}}),U.WIDGET),this.view.on("key-up",(t=>{t.key===P.pan?e.enabled=!0:t.key===P.snappingToggle&&"rectangle"!==e.geometryType&&"circle"!==e.geometryType?(this.snappingOptions.enabledToggled=!1,t.stopPropagation()):t.key!==P.constraint||"rectangle"!==e.geometryType&&"circle"!==e.geometryType?t.key===P.center&&(e.centered=i,t.stopPropagation()):(e.forceUniformSize=o,t.stopPropagation())}),U.WIDGET),e.on("vertex-add",(o=>{switch(t=c(t)?"start":"active",o.operation){case"apply":this.emit("create",{graphic:l(e.graphic),state:t,tool:this.activeTool,toolEventInfo:o,type:"create"});break;case"undo":this._emitUndoEvent({graphics:[l(e.graphic)],tool:e.geometryType});break;case"redo":this._emitRedoEvent({graphics:[l(e.graphic)],tool:e.geometryType})}})),e.on("cursor-update",(t=>{e.drawOperation.numCommittedVertices>0&&this.emit("create",{graphic:l(e.graphic),state:"active",tool:this.activeTool,toolEventInfo:{coordinates:t.vertices[0].coordinates,type:"cursor-update"},type:"create"})})),e.on("vertex-remove",(t=>{switch(t.operation){case"apply":this.emit("create",{graphic:l(e.graphic),state:"active",tool:this.activeTool,toolEventInfo:t,type:"create"});break;case"undo":this._emitUndoEvent({graphics:[l(e.graphic)],tool:e.geometryType});break;case"redo":this._emitRedoEvent({graphics:[l(e.graphic)],tool:e.geometryType})}})),e.on("complete",(e=>{this._set("createGraphic",l(e.graphic)),t="complete",e.aborted?r&&r.cancel():r&&r.complete()})),v((()=>this._getGraphicSymbolFromTool(e.geometryType)),(t=>{e.graphicSymbol=t}))],r=new F({activeComponent:e,tool:e.geometryType,type:"create",onEnd:()=>{var t;a.forEach((e=>e.remove())),a.length=0,null==(t=this.view.tools)||t.remove(e),e.destroy()},undo:()=>{e.canUndo&&e.undo()},redo:()=>{e.canRedo&&e.redo()},canUndo:()=>e.canUndo,canRedo:()=>e.canRedo});return r}_getGraphicSymbolFromTool(e){switch(e){case"point":case"multipoint":return this.pointSymbol;case"polyline":return this.polylineSymbol;case"circle":case"rectangle":case"polygon":return this.polygonSymbol;default:return null}}async _setupUpdateOperation(e,t){const{layer:o,view:i}=this,a={tool:this._defaultUpdateTool,...this.defaultUpdateOptions,...t,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions,...null==t?void 0:t.reshapeOptions}};let r=a.tool;for(const s of e)o.remove(s),o.add(s);if("3d"===i.type){if(0===e.length)return null;switch(r){case"move":return this._setupMove3DOperation(e,a,i,r);case"reshape":{if(e.length>1)return this._logError("sketch:reshape-multiple","Reshape operation does not support multiple graphics."),null;const t=M(e[0]);return t===C.SUPPORTED?this._setupReshape3DOperation(e[0],a,i):(this._logError("sketch:reshape",`Reshape operation not supported for provided graphic(s) (${H(t)}).`),null)}case"transform":return this._setupGraphicTransform3DOperation(e,a,i)}}switch(r){case"move":return this._setupMoveOperation(e,a,i);case"reshape":{if(e.length>1)return this._logError("sketch:reshape-multiple","Reshape operation does not support multiple graphics."),null;const t=M(e[0]);return t===C.SUPPORTED?this._setupTransformOrReshapeOperation(e,r,a,i):(this._logError("sketch:reshape",`Reshape operation not supported for provided graphic(s) (${H(t)}).`),null)}case"transform":if(1===e.length){const t=u(e[0].geometry,"type");"point"!==t&&"multipoint"!==t||(r="reshape")}return this._setupTransformOrReshapeOperation(e,r,a,i)}}async _setupMove3DOperation(e,t,o,i,a=!1){for(const l of e){const e=I(l);if(e!==C.SUPPORTED)return this._logError("sketch:move",`Move operation not supported for provided graphic(s) (${H(e)}).`),null}const r=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(te(r))return r;const s=new r.module.GraphicMoveTool({view:o,enableZ:t.enableZ,snappingManager:this._snappingManager});this.view.tools.add(s),s.graphics.addMany(e),a||this.updateGraphics.addMany(e);const n=[],p=new V({activeComponent:s,tool:i,type:"update",onEnd:()=>{var e;n.forEach((e=>e.remove())),n.length=0,null==(e=this.view.tools)||e.remove(s),s.destroyed||s.destroy()},undo:()=>{J(p,this.updateGraphics.toArray()),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:i})},redo:()=>{Q(p,this.updateGraphics.toArray()),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:i})},addToSelection:e=>{this.updateGraphics.push(e),s.graphics.push(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:"selection-change"},type:"update"})},removeFromSelection:e=>{const t=this.updateGraphics.indexOf(e);p.history.undo.forEach((e=>e.updates.splice(t,1))),p.history.redo.forEach((e=>e.updates.splice(t,1))),this.updateGraphics.remove(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:"selection-change"},type:"update"}),0!==this.updateGraphics.length?s.graphics.remove(e):p.complete()},toggleTool:async()=>{if(1!==this.updateGraphics.length||!1===t.toggleToolOnClick)return;if("transform"!==i)return;const e=this.updateGraphics.getItemAt(0);if(M(e)!==C.SUPPORTED)return;const a=await this._setupReshape3DOperation(e,t,o,!0);te(a)||(p.onEnd(),p.destroy(),this._setUpdateOperationHandle(a,t))}});return n.push(...this._getHandlesForComponent(p,t),this.view.on("immediate-click",(e=>this._getCommonUpdateOperationClickHandlers(p,e,t)),U.WIDGET),o.on("key-down",(e=>{this._getCommonUpdateOperationKeyDownHandlers(p,e),e.key===P.snappingToggle&&(this.snappingOptions.enabledToggled=!0,e.stopPropagation())}),U.WIDGET),o.on("key-up",(e=>{e.key===P.snappingToggle&&(this.snappingOptions.enabledToggled=!1,e.stopPropagation())}),U.WIDGET)),p}_setupGraphicTransform3DOperation(e,t,o,i=!1){if(1===e.length&&R(e[0])===C.SUPPORTED){const a=e[0],r=a.geometry;if(n(r)&&("point"===r.type||"mesh"===r.type))return this._setupPointTransform3DOperation(a,t,o);if(n(r)&&("polygon"===r.type||"polyline"===r.type))return this._setupPolyTransform3DOperation(a,t,o,i)}return this._setupMove3DOperation(e,t,o,"transform",i)}async _setupPointTransform3DOperation(e,t,o){const i="transform",{enableRotation:a,enableScaling:r,enableZ:s}=t,n=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(te(n))return n;const p=new n.module.GraphicTransformTool({graphic:e,view:o,enableRotation:a,enableScaling:r,enableZ:s,snappingManager:this._snappingManager});this.view.tools.add(p),this.updateGraphics.add(e);const l=[],h=new V({activeComponent:p,tool:i,type:"update",onEnd:()=>{var e;l.forEach((e=>e.remove())),l.length=0,null==(e=this.view.tools)||e.remove(p),p.destroyed||p.destroy()},undo:()=>{J(h,this.updateGraphics.toArray()),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:i})},redo:()=>{Q(h,this.updateGraphics.toArray()),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:i})},addToSelection:async e=>{this.updateGraphics.add(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:"selection-change"},type:"update"});const i=await this._setupMove3DOperation(this.updateGraphics.toArray(),t,o,"transform",!0);te(i)||(h.onEnd(),h.destroy(),this._setUpdateOperationHandle(i,t))},removeFromSelection:e=>{this.updateGraphics.remove(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:"selection-change"},type:"update"}),h.complete()},toggleTool:()=>{}});return l.push(...this._getHandlesForComponent(h,t),this.view.on("immediate-click",(e=>this._getCommonUpdateOperationClickHandlers(h,e,t)),U.WIDGET),o.on("key-down",(e=>{this._getCommonUpdateOperationKeyDownHandlers(h,e),e.key===P.snappingToggle&&(this.snappingOptions.enabledToggled=!0,e.stopPropagation())}),U.WIDGET),o.on("key-up",(e=>{e.key===P.snappingToggle&&(this.snappingOptions.enabledToggled=!1,e.stopPropagation())}),U.WIDGET)),h}async _setupPolyTransform3DOperation(e,t,o,i=!1){const a="transform",{enableRotation:r,enableScaling:s,enableZ:n,preserveAspectRatio:p}=t,l=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(te(l))return l;const h=new l.module.ExtentTransformTool({graphic:e,view:o,enableRotation:r,enableScaling:s,enableZ:n,preserveAspectRatio:p});this.view.tools.add(h),i||this.updateGraphics.add(e);const c=[],d=new V({activeComponent:h,tool:a,type:"update",onEnd:()=>{var e;c.forEach((e=>e.remove())),c.length=0,null==(e=this.view.tools)||e.remove(h),h.destroyed||h.destroy()},canUndo:()=>h.canUndo,undo:()=>{h.undo(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:a})},canRedo:()=>h.canRedo,redo:()=>{h.redo(),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:a})},addToSelection:async e=>{this.updateGraphics.add(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:"selection-change"},type:"update"});const i=await this._setupMove3DOperation(this.updateGraphics.toArray(),t,o,"transform",!0);te(i)||(d.onEnd(),d.destroy(),this._setUpdateOperationHandle(i,t))},removeFromSelection:e=>{this.updateGraphics.remove(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:"selection-change"},type:"update"}),d.complete()},toggleTool:async()=>{if(1!==this.updateGraphics.length||!1===t.toggleToolOnClick)return;const e=this.updateGraphics.getItemAt(0);if(M(e)!==C.SUPPORTED)return;const i=await this._setupReshape3DOperation(e,t,o,!0);te(i)||(d.onEnd(),d.destroy(),this._setUpdateOperationHandle(i,t))}});return c.push(...this._getHandlesForComponent(d,t),this.view.on("immediate-click",(e=>this._getCommonUpdateOperationClickHandlers(d,e,t)),U.WIDGET),this.view.on("key-down",(e=>this._getCommonUpdateOperationKeyDownHandlers(d,e)),U.WIDGET),this.view.on("key-down",(e=>{e.key!==P.constraint||e.repeat||(h.preserveAspectRatio=!h.preserveAspectRatio,e.stopPropagation())}),U.WIDGET),this.view.on("key-up",(e=>{e.key===P.constraint&&(h.preserveAspectRatio=!h.preserveAspectRatio,e.stopPropagation())}),U.WIDGET)),d}async _setupMoveOperation(e,t,o){const i="move";this.updateGraphics.addMany(e);const a=await this._getGraphicMover(e,t,o);if(te(a))return a;const r=new V({activeComponent:a,tool:i,type:"update",onEnd:()=>{var e;this._displayDefaultCursor(),p.forEach((e=>e.remove())),n.forEach((e=>e.remove())),p=[],n=[],a.destroy(),null==(e=this._internalGraphicsLayer)||e.removeMany([...this.updateGraphics.toArray()])},undo:()=>{const e=this.updateGraphics.toArray();J(r,e),r.refreshComponent(),this._emitUndoEvent({graphics:e,tool:i})},redo:()=>{const e=this.updateGraphics.toArray();Q(r,e),r.refreshComponent(),this._emitRedoEvent({graphics:e,tool:i})},addToSelection:e=>{this.updateGraphics.push(e),a.graphics=this.updateGraphics.toArray(),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:"selection-change"},type:"update"})},removeFromSelection:e=>{const t=this.updateGraphics.indexOf(e);r.history.undo.forEach((e=>e.updates.splice(t,1))),r.history.redo.forEach((e=>e.updates.splice(t,1))),this.updateGraphics.remove(e);const o=this.updateGraphics.toArray();this.emit("update",{graphics:o,state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:"selection-change"},type:"update"}),0!==this.updateGraphics.length?a.graphics=o:r.complete()}});let s=!1,n=[o.on("immediate-click",(e=>this._getCommonUpdateOperationClickHandlers(r,e,t)),U.WIDGET),o.on("key-down",(e=>{this._getCommonUpdateOperationKeyDownHandlers(r,e),e.key!==P.constraint||e.repeat||(s=!0,a.enableMoveAllGraphics=!a.enableMoveAllGraphics)}),U.WIDGET),o.on("key-up",(e=>{e.key===P.constraint&&s&&(s=!1,a.enableMoveAllGraphics=!a.enableMoveAllGraphics)}),U.WIDGET)],p=this._getHandlesForComponent(r,t);return r}async _setupReshape3DOperation(e,t,o,i=!1){const a="reshape",r=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(te(r))return r;this.snappingOptions.enabledToggled=!1;const s=new r.module.GraphicReshapeTool({view:o,graphic:e,enableZVertex:t.enableZ&&"move"===t.reshapeOptions.vertexOperation,enableZShape:t.enableZ&&"move"===t.reshapeOptions.shapeOperation,enableMoveGraphic:"move"===t.reshapeOptions.shapeOperation||"move-xy"===t.reshapeOptions.shapeOperation,enableMidpoints:"split"===t.reshapeOptions.edgeOperation,enableEdgeOffset:"offset"===t.reshapeOptions.edgeOperation,snappingManager:this._snappingManager});o.tools.add(s),i||this.updateGraphics.add(e);const n=[],p=new V({activeComponent:s,tool:a,type:"update",onEnd:()=>{var e;n.forEach((e=>e.remove())),n.length=0,null==(e=this.view.tools)||e.remove(s),s.destroyed||s.destroy()},canUndo:()=>s.canUndo,undo:()=>{s.undo(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:a})},canRedo:()=>s.canRedo,redo:()=>{s.redo(),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:a})},addToSelection:async e=>{this.updateGraphics.add(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:"selection-change"},type:"update"});const i=await this._setupMove3DOperation(this.updateGraphics.toArray(),t,o,"transform",!0);te(i)||(p.onEnd(),p.destroy(),this._setUpdateOperationHandle(i,t))},removeFromSelection:e=>{this.updateGraphics.remove(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:"selection-change"},type:"update"}),p.complete()},toggleTool:async()=>{if(!1===t.toggleToolOnClick)return;const e=await this._setupGraphicTransform3DOperation(this.updateGraphics.toArray(),t,o,!0);te(e)||(p.onEnd(),p.destroy(),this._setUpdateOperationHandle(e,t))}});return n.push(...this._getHandlesForComponent(p,t),o.on("immediate-click",(e=>this._getCommonUpdateOperationClickHandlers(p,e,t)),U.WIDGET),o.on("key-down",(e=>{this._getCommonUpdateOperationKeyDownHandlers(p,e),e.key===P.snappingToggle&&(this.snappingOptions.enabledToggled=!0,e.stopPropagation())}),U.WIDGET),o.on("key-up",(e=>{e.key===P.snappingToggle&&(this.snappingOptions.enabledToggled=!1,e.stopPropagation())}),U.WIDGET)),p}async _setupTransformOrReshapeOperation(e,t,o,i){this.updateGraphics.addMany(e);const a="transform"===t?await this._getBox(e,o,i):await this._getReshape(e,o,i);if(te(a))return a;const r=new V({activeComponent:a,type:"update",onEnd:()=>{p.forEach((e=>e.remove())),s.forEach((e=>e.remove())),p=[],s=[],r.activeComponent&&!r.activeComponent.destroyed&&r.activeComponent.destroy(),this._internalGraphicsLayer.removeMany(this.updateGraphics.toArray())},undo:()=>{J(r,this.updateGraphics.toArray()),r.refreshComponent(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:r.tool})},redo:()=>{Q(r,this.updateGraphics.toArray()),r.refreshComponent(),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:r.tool})},addToSelection:async e=>{let t=r.activeComponent;if("reshape"===t.type){const t=[...this.updateGraphics,e];this.updateGraphics.removeAll();const a=await this._setupMoveOperation(t,o,i);if(te(a))return;r.onEnd(),r.destroy(),this._setUpdateOperationHandle(a,o)}else this.updateGraphics.add(e),t=t,t.graphics=this.updateGraphics.toArray(),t.refresh(),r.resetHistory();this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:"selection-change"},type:"update"})},removeFromSelection:async e=>{const t=this.updateGraphics.indexOf(e);r.history.undo.forEach((e=>e.updates.splice(t,1))),r.history.redo.forEach((e=>e.updates.splice(t,1))),this.updateGraphics.remove(e);const o=this.updateGraphics.toArray();if(0===o.length)r.complete();else{const e=o[0].geometry;1!==o.length||!n(e)||"point"!==e.type&&"multipoint"!==e.type?r.activeComponent.graphics=o:r.toggleTool()}this.emit("update",{graphics:o,state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:"selection-change"},type:"update"})},toggleTool:async()=>{if(this.updateGraphics.length>1)return;const e=this.updateGraphics.getItemAt(0),t=e.geometry;if(n(t)&&("reshape"===r.tool&&("point"===t.type||"multipoint"===t.type)||"transform"===r.tool&&"extent"===t.type))return;let a=null;"transform"===r.tool?a=await this._getReshape([e],o,i):"reshape"===r.tool&&(a=await this._getBox([e],o,i)),te(a)||(r.activeComponent.destroy(),r.activeComponent=a,r.activeComponent&&(p.forEach((e=>e.remove())),p=this._getHandlesForComponent(r,o)))}});let s=[i.on("immediate-click",(e=>this._getCommonUpdateOperationClickHandlers(r,e,o)),U.WIDGET),i.on("key-down",(e=>{if(this._getCommonUpdateOperationKeyDownHandlers(r,e),e.key!==P.snappingToggle||e.repeat||(this.snappingOptions.enabledToggled=!0,e.stopPropagation()),e.key===P.constraint&&!e.repeat&&r){const e=r.activeComponent;e&&"box"===e.type&&(e.preserveAspectRatio=!e.preserveAspectRatio)}}),U.WIDGET),i.on("key-up",(e=>{var t;if(e.key===P.snappingToggle&&"reshape"===(null==r||null==(t=r.activeComponent)?void 0:t.type)&&(this.snappingOptions.enabledToggled=!1,e.stopPropagation()),e.key===P.constraint&&r){const e=r.activeComponent;e&&"box"===e.type&&(e.preserveAspectRatio=!e.preserveAspectRatio)}}),U.WIDGET)],p=this._getHandlesForComponent(r,o);return r}async _getGraphicMover(e,t,o){const{enableMoveAllGraphics:i}=t,a=await this._requireModule(import("../../views/draw/support/GraphicMover.js"));return te(a)?a:new a.module.default({enableMoveAllGraphics:i,graphics:e,view:o,callbacks:{onGraphicMoveStart:({dx:e,dy:t,graphic:o})=>{this._displayGrabbingCursor(),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:o,type:"move-start"},type:"update"})},onGraphicMove:({dx:e,dy:t,graphic:o})=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:o,type:"move"},type:"update"}),onGraphicMoveStop:({dx:e,dy:t,graphic:o})=>{this._displayPointerCursor(),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:o,type:"move-stop"},type:"update"})},onGraphicPointerOver:()=>this._displayPointerCursor(),onGraphicPointerOut:()=>this._displayDefaultCursor()}})}async _getBox(e,t,o){const{enableRotation:i,enableScaling:a,preserveAspectRatio:r}=t,s=await this._requireModule(import("../../views/draw/support/Box.js"));return te(s)?s:new s.module.default({graphics:e,enableRotation:i,enableScaling:a,preserveAspectRatio:r,layer:this._internalGraphicsLayer,view:o,callbacks:{onMoveStart:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onMove:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onMoveStop:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onScaleStart:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onScale:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onScaleStop:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onRotateStart:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onRotate:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onRotateStop:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"})}})}async _getReshape(e,t,o){var i,a;const r="split"===(null==(i=t.reshapeOptions)?void 0:i.edgeOperation),s="move"===(null==(a=t.reshapeOptions)?void 0:a.shapeOperation),n=await this._requireModule(import("../../views/draw/support/Reshape.js"));return te(n)?n:new n.module.default({enableMidpoints:r,enableMovement:s,graphic:e[0],layer:this._internalGraphicsLayer,snappingManager:this._snappingManager,view:o,callbacks:{onReshapeStart:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onReshape:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onReshapeStop:({mover:e,type:t})=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e,type:t},type:"update"}),onMoveStart:({dx:e,dy:t,mover:o,type:i})=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:o,type:i},type:"update"}),onMove:({dx:e,dy:t,mover:o,type:i})=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:o,type:i},type:"update"}),onMoveStop:({dx:e,dy:t,mover:o,type:i})=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:o,type:i},type:"update"}),onVertexAdd:({added:e,type:t,vertices:o})=>{const i=e.map((e=>S(e.geometry)));this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:i,vertices:o,type:t},type:"update"})},onVertexRemove:({removed:e,type:t,vertices:o})=>{const i=e.map((e=>S(e.geometry)));this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{removed:i,vertices:o,type:t},type:"update"})}}})}_getHandlesForComponent(e,t){const o=e.activeComponent;switch(o.type){case"graphic-mover":return[o.on("graphic-click",(({graphic:t,viewEvent:o})=>{var i;null!=(i=o.native)&&i.shiftKey&&(o.stopPropagation(),e.removeFromSelection(t))})),o.on("graphic-move-start",(t=>e.addToHistory(ee(t.allGraphics))))];case"box":return[o.on("graphic-click",(o=>this._onTransformOrReshape2DGraphicClick(e,t,o))),o.on("move-start",(t=>e.addToHistory(ee(t.graphics)))),o.on("rotate-start",(t=>e.addToHistory(ee(t.graphics)))),o.on("scale-start",(t=>e.addToHistory(ee(t.graphics))))];case"reshape":return[o.on("graphic-click",(o=>this._onTransformOrReshape2DGraphicClick(e,t,o))),o.on("move-start",(t=>e.addToHistory(ee([t.mover])))),o.on("reshape-start",(t=>e.addToHistory(ee([t.graphic])))),o.on("vertex-add",(t=>e.addToHistory(ee([t.oldGraphic])))),o.on("vertex-remove",(t=>e.addToHistory(ee([t.oldGraphic]))))];case"move-3d":return[o.on("graphic-move-start",(t=>{e.addToHistory(ee(t.allGraphics)),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:0,dy:0,mover:t.allGraphics.length>0?t.allGraphics[0]:null,type:"move-start"},type:"update"})})),o.on("graphic-move",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e.dx,dy:e.dy,mover:e.allGraphics.length>0?e.allGraphics[0]:null,type:"move"},type:"update"})})),o.on("graphic-move-stop",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:0,dy:0,mover:e.allGraphics.length>0?e.allGraphics[0]:null,type:"move-stop"},type:"update"})})),o.on("immediate-click",(o=>{o.shiftKey?this._toggleSelection([o.graphic],e,t):e.toggleTool()}))];case"transform-3d":return[o.on("record-undo",(({record:t})=>{e.addToHistory({updates:[t]})})),o.on("graphic-translate-start",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,dx:e.dxScreen,dy:e.dyScreen,type:"move-start"},type:"update"})})),o.on("graphic-translate-stop",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,dx:e.dxScreen,dy:e.dyScreen,type:"move-stop"},type:"update"})})),o.on("graphic-rotate-start",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,angle:e.angle,type:"rotate-start"},type:"update"})})),o.on("graphic-rotate-stop",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,angle:e.angle,type:"rotate-stop"},type:"update"})})),o.on("graphic-scale-start",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,xScale:e.xScale,yScale:e.yScale,type:"scale-start"},type:"update"})})),o.on("graphic-scale-stop",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,xScale:e.xScale,yScale:e.yScale,type:"scale-stop"},type:"update"})})),o.on("graphic-translate",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,dx:e.dxScreen,dy:e.dyScreen,type:"move"},type:"update"})})),o.on("graphic-rotate",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,angle:e.angle,type:"rotate"},type:"update"})})),o.on("graphic-scale",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,xScale:e.xScale,yScale:e.yScale,type:"scale"},type:"update"})})),o.on("immediate-click",(o=>{o.shiftKey?this._toggleSelection([o.graphic],e,t):e.toggleTool()}))];case"reshape-3d":return[o.on("reshape",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:e,type:"update"})})),o.on("move",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:e,type:"update"})})),o.on("vertex-add",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:e,type:"update"})})),o.on("vertex-remove",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:e,type:"update"})})),o.on("immediate-click",(o=>{o.shiftKey?this._toggleSelection([o.graphic],e,t):e.toggleTool()}))];default:return}}_onTransformOrReshape2DGraphicClick(e,t,o){var i;const{graphic:a,viewEvent:r}=o;return null!=(i=r.native)&&i.shiftKey&&a.layer===this.layer?(r.stopPropagation(),e.removeFromSelection(a)):t.toggleToolOnClick?(r.stopPropagation(),e.toggleTool()):void 0}_setUpdateOperationHandle(e,t){this._operationHandle=e;const o=this.view.map;this._disablePopup(t);const i=()=>{if(e===this._operationHandle){const i=this.updateGraphics.toArray(),a=this._operationHandle.tool;this._operationHandle.destroy(),this._operationHandle=null,this._internalGraphicsLayer.removeMany(this.updateGraphics.toArray()),this.updateGraphics.removeAll(),o&&o.remove(this._internalGraphicsLayer),this._restorePopup(t),this.emit("update",{graphics:i,state:"complete",aborted:e.cancelled,tool:a,toolEventInfo:null,type:"update"})}};e.on("complete",i)}async _getCommonUpdateOperationClickHandlers(e,t,o){const i=L(t),a=(await t.async((()=>this._getFirstHit(i)))).results;if(!a.length)return void e.complete();if(t.native.shiftKey&&this._toggleSelection(a.map((e=>e.graphic)),e,o))return void t.stopPropagation();a.some((e=>e.graphic&&this.updateGraphics.includes(e.graphic)))?t.stopPropagation():e.complete()}_toggleSelection(e,t,o){const i=!!o.multipleSelectionEnabled;return e.some((e=>null!=e&&(!(!i||e.layer!==this.layer)&&(this.updateGraphics.includes(e)?t.removeFromSelection(e):t.addToSelection(e),!0))))}_getCommonUpdateOperationKeyDownHandlers(e,t){if(!e)return;const o=t.key;o===P.undo&&e.canUndo()?(t.stopPropagation(),e.undo()):o===P.redo&&e.canRedo()?(t.stopPropagation(),e.redo()):o===P.cancel?(t.stopPropagation(),e.cancel()):this.allowDeleteKey&&P.delete.includes(o)&&this._onDeleteKey(t)}_onDeleteKey(e){if(!this._operationHandle||"update"!==this._operationHandle.type)return;const t=this.activeComponent,o=this.updateGraphics.toArray();c(t)||"reshape-3d"===t.type||("reshape"!==t.type||1===o.length&&"point"===u(o[0].geometry,"type"))&&(e.stopPropagation(),this.delete())}_removeDefaultLayer(){this._internalGraphicsLayer&&(this.view&&this.view.map&&this.view.map.remove(this._internalGraphicsLayer),this._internalGraphicsLayer=p(this._internalGraphicsLayer))}_isComponentGraphic(e){const{activeComponent:t}=this;return!(!e||c(t))&&(e.attributes&&e.attributes.esriSketchTool||"draw-2d"===t.type&&t.graphic===e||("box"===t.type||"reshape"===t.type)&&t.isUIGraphic(e))}_displayPointerCursor(){this.view&&this.view.container&&"pointer"!==this.view.cursor&&(this.view.cursor="pointer")}_displayGrabbingCursor(){this.view&&this.view.container&&"grabbing"!==this.view.cursor&&(this.view.cursor="grabbing")}_displayDefaultCursor(){this.view&&this.view.container&&null!==this.view.cursor&&(this.view.cursor=null)}_logError(e,t,o){z.error(new i(e,t,o))}async _requireModule(e){const t=new AbortController;this._moduleLoaderAbortController=t;const o=await e;return this._moduleLoaderAbortController!==t||t.signal.aborted?{requireError:"aborted"}:{module:o}}_emitUndoEvent(e){this.emit("undo",{...e,type:"undo"})}_emitRedoEvent(e){this.emit("redo",{...e,type:"redo"})}_emitDeleteEvent(e){this.emit("delete",{...e,type:"delete"})}test(){return{operationHandle:this._operationHandle,defaultUpdateOptions:N}}wait(){return G(this,"updating")}_beginAsyncOperation(){this._numUpdating+=1,this.notifyChange("updating")}_endAsyncOperation(){this._numUpdating-=1,this.notifyChange("updating")}_disablePopupEnabled(e){var t;return"3d"!==(null==(t=this.view)?void 0:t.type)||this.updateOnGraphicClick||n(e)&&e.toggleToolOnClick}_disablePopup(e){if(!this._disablePopupEnabled(e))return;const t=this.view.popup;t&&c(this._originalAutoOpenEnabled)&&(this._originalAutoOpenEnabled=t.autoOpenEnabled,t.autoOpenEnabled=!1)}_restorePopup(e){if(!this._disablePopupEnabled(e))return;const t=this.view.popup;t&&n(this._originalAutoOpenEnabled)&&(t.autoOpenEnabled=this._originalAutoOpenEnabled,this._originalAutoOpenEnabled=null)}async _waitViewReady(){this.view&&(h(this._viewReadyAbortController),this._viewReadyAbortController=new AbortController,await m(b(this.view,"ready"),this._viewReadyAbortController.signal))}};function Y(e){return"polygon"===e||"rectangle"===e||"circle"===e}function J(e,t){X("undo",e.history.undo,e.history.redo,t)}function Q(e,t){X("redo",e.history.redo,e.history.undo,t)}function X(e,t,o,i){const a=t.pop().updates,r=[];i.forEach(((t,o)=>{const i=a[o];null!=i&&("geometry"in i&&n(i.geometry)&&(r.push({geometry:t.geometry}),t.geometry=i.geometry),"symbol"in i&&n(i.symbol)&&(r.push({symbol:t.symbol}),t.symbol=i.symbol),"undo"in i&&(r.push(i),i[e](t)))})),o.push({updates:r})}function ee(e){return{updates:e.map((e=>({geometry:e.geometry})))}}function te(e){return"requireError"in e&&"aborted"===e.requireError}e([T()],$.prototype,"updating",null),e([T()],$.prototype,"_operationHandle",void 0),e([T({readOnly:!0})],$.prototype,"activeTool",null),e([T()],$.prototype,"activeFillSymbol",void 0),e([T()],$.prototype,"activeLineSymbol",void 0),e([T()],$.prototype,"activeVertexSymbol",void 0),e([T()],$.prototype,"allowDeleteKey",void 0),e([T({readOnly:!0})],$.prototype,"createGraphic",null),e([T()],$.prototype,"defaultCreateOptions",null),e([T()],$.prototype,"defaultUpdateOptions",null),e([T()],$.prototype,"layer",void 0),e([T({types:t})],$.prototype,"pointSymbol",void 0),e([T({types:t})],$.prototype,"polygonSymbol",void 0),e([T({types:t})],$.prototype,"polylineSymbol",void 0),e([T({type:j,nonNullable:!0})],$.prototype,"snappingOptions",null),e([T()],$.prototype,"_snappingManager",void 0),e([T({readOnly:!0})],$.prototype,"state",null),e([T({readOnly:!0})],$.prototype,"updateGraphics",void 0),e([T()],$.prototype,"updateOnGraphicClick",void 0),e([T({types:t})],$.prototype,"updatePointSymbol",void 0),e([T({types:t})],$.prototype,"updatePolygonSymbol",void 0),e([T({types:t})],$.prototype,"updatePolylineSymbol",void 0),e([T({types:t})],$.prototype,"vertexSymbol",void 0),e([T({value:null})],$.prototype,"view",null),e([T()],$.prototype,"cancel",null),e([T()],$.prototype,"complete",null),e([T()],$.prototype,"delete",null),e([T()],$.prototype,"create",null),e([T()],$.prototype,"update",null),e([T()],$.prototype,"undo",null),e([T()],$.prototype,"redo",null),e([T()],$.prototype,"canUndo",null),e([T()],$.prototype,"canRedo",null),e([T()],$.prototype,"toggleUpdateTool",null),$=e([E(Z)],$);const oe=$;export{oe as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import{symbolTypes as t}from"../../symbols.js";import o from"../../core/Collection.js";import"../../core/has.js";import i from"../../core/Error.js";import a from"../../core/Evented.js";import r from"../../core/Handles.js";import s from"../../core/Logger.js";import{isSome as n,destroyMaybe as p,unwrap as l,abortMaybe as h,isNone as c,unwrapOr as d,get as u}from"../../core/maybe.js";import{createAbortError as y,whenOrAbort as m}from"../../core/promiseUtils.js";import{watch as v}from"../../core/reactiveUtils.js";import{watch as g,on as f,init as _,when as w,whenNotOnce as G,whenOnce as b}from"../../core/watchUtils.js";import{property as T}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/accessorSupport/ensureType.js";import{subclass as E}from"../../core/accessorSupport/decorators/subclass.js";import{getReferenceEllipsoid as O}from"../../geometry/projectionEllipsoid.js";import{geometryToCoordinates as S}from"../../geometry/support/coordsUtils.js";import A from"../../layers/GraphicsLayer.js";import{isDOMContainer as k}from"../../views/DOMContainer.js";import{SupportedGraphicResult as C,isSupportedGraphicResultMessage as H}from"../../views/3d/interactive/editingTools/isSupportedGraphicUtils.js";import{isSupportedGraphic as I}from"../../views/3d/interactive/editingTools/moveGraphic/isSupportedGraphic.js";import{isSupportedGraphic as M}from"../../views/3d/interactive/editingTools/reshapeGraphic/isSupportedGraphic.js";import{isSupportedGraphic as R}from"../../views/3d/interactive/editingTools/transformGraphic/isSupportedGraphic.js";import{addUniqueLayer as D}from"../../views/draw/support/layerUtils.js";import{ViewEventPriorities as U}from"../../views/input/InputManager.js";import{SKETCH_KEYS as P}from"../../views/interactive/keybindings.js";import{SnappingManager as x}from"../../views/interactive/snapping/SnappingManager.js";import j from"../../views/interactive/snapping/SnappingOptions.js";import{createScreenPointFromEvent as L}from"../../views/support/screenUtils.js";import{OperationHandle as F,UpdateOperationHandle as V}from"./support/OperationHandle.js";import W from"../../symbols/SimpleMarkerSymbol.js";import K from"../../symbols/SimpleFillSymbol.js";import q from"../../symbols/SimpleLineSymbol.js";const Z="esri.widgets.Sketch.SketchViewModel",z=s.getLogger(Z),B={defaultZ:0},N={reshapeOptions:{edgeOperation:"split",shapeOperation:"move",vertexOperation:"move"},enableMoveAllGraphics:!0,enableRotation:!0,enableScaling:!0,multipleSelectionEnabled:!0,preserveAspectRatio:!1,toggleToolOnClick:!0,enableZ:!0,tool:"transform"};let $=class extends a.EventedAccessor{constructor(e){super(e),this._numUpdating=0,this._handles=new r,this._internalGraphicsLayer=new A({listMode:"hide",internal:!0,title:"SVM Internal"}),this._operationHandle=null,this._viewHandles=new r,this.activeFillSymbol=null,this.activeLineSymbol=null,this.activeVertexSymbol=null,this.allowDeleteKey=!0,this.layer=null,this.pointSymbol=new W({style:"circle",size:6,color:[255,255,255],outline:{color:[50,50,50],width:1}}),this.polygonSymbol=new K({color:[150,150,150,.2],outline:{color:[50,50,50],width:2}}),this.polylineSymbol=new q({color:[130,130,130,1],width:2}),this._snappingManager=null,this.updateGraphics=new o,this.updateOnGraphicClick=!0,this.updatePointSymbol=new W({size:10,color:[0,200,255,.5],outline:{color:"black",width:1}}),this.updatePolygonSymbol=new K({color:[12,207,255,.2],outline:{join:"round",color:[12,207,255],width:2}}),this.updatePolylineSymbol=new q({color:[12,207,255],width:2}),this.vertexSymbol=new W({style:"circle",size:6,color:[255,255,255],outline:{color:[50,50,50],width:1}}),this._moduleLoaderAbortController=null,this._viewReadyAbortController=null,this._originalAutoOpenEnabled=null,this.defaultCreateOptions=B,this.defaultUpdateOptions=N,this.snappingOptions=new j}initialize(){this._handles.add([g(this,"layer",(()=>{this.cancel(),this._internalGraphicsLayer.elevationInfo=n(this.layer)?this.layer.elevationInfo:null})),f(this,"view.map.layers","change",(e=>{e.removed.includes(this.layer)&&this.cancel()})),f(this,"layer.graphics","change",(e=>{if(n(this._operationHandle))for(const t of e.removed)this.updateGraphics.includes(t)&&(this.updateGraphics.length>1?this._operationHandle.removeFromSelection(t):this._operationHandle.cancel())})),_(this,"layer.elevationInfo",(()=>{this.cancel(),this._internalGraphicsLayer.elevationInfo=n(this.layer)?this.layer.elevationInfo:null}),!0),_(this,"view",(e=>{p(this._snappingManager),e&&(this._snappingManager=new x({view:e,options:this.snappingOptions}),"2d"===e.type?import("../../views/2d/interactive/editingTools.js"):"3d"===e.type&&(import("../../views/3d/interactive/editingTools.js"),import("../../views/3d/layers/GraphicsLayerView3D.js")))}),!0)])}destroy(){this.cancel(),this._handles=p(this._handles),this._viewHandles=p(this._viewHandles),this._removeDefaultLayer(),this._snappingManager=p(this._snappingManager),this._set("view",null),this.emit("destroy")}get _defaultUpdateTool(){return"3d"===this.view.type?"move":"transform"}get updating(){return this._numUpdating>0}get activeTool(){return this._operationHandle&&this._operationHandle.tool?this._operationHandle.tool:null}get activeComponent(){return this._operationHandle?this._operationHandle.activeComponent:null}get createGraphic(){return!n(this.activeComponent)||"draw-3d"!==this.activeComponent.type&&"draw-2d"!==this.activeComponent.type?this._get("createGraphic"):l(this.activeComponent.graphic)}set defaultCreateOptions(e){this._set("defaultCreateOptions",{...B,...e})}set defaultUpdateOptions(e){this._set("defaultUpdateOptions",{...N,...e,reshapeOptions:{...N.reshapeOptions,...null==e?void 0:e.reshapeOptions}})}set snappingOptions(e){n(this._snappingManager)&&(this._snappingManager.options=e),this._set("snappingOptions",e)}get state(){var e;const t=!(null==(e=this.view)||!e.ready||!this.layer),o=this._operationHandle;return t&&o?"active":t?"ready":"disabled"}get view(){return this._get("view")}set view(e){const t=this._get("view");if(t){const{container:e,map:o}=t;e&&(t.cursor=null),o&&o.remove(this._internalGraphicsLayer),this._viewHandles.removeAll(),this.cancel()}const o="view-ready";this._handles.remove(o),e&&this._handles.add(w(e,"ready",(t=>{this._viewHandles.removeAll(),t&&this._viewHandles.add(this._generateViewHandles(e))}),!0),o),this._set("view",e)}cancel(){this._moduleLoaderAbortController=h(this._moduleLoaderAbortController),this._viewReadyAbortController=h(this._viewReadyAbortController),this._operationHandle&&this._operationHandle.cancel()}complete(){this._operationHandle&&this._operationHandle.complete()}delete(){const{state:e,updateGraphics:t}=this;if("active"===e&&t.length){const{activeTool:e,layer:o}=this,i=t.toArray();o.removeMany(i),this.cancel(),this._emitDeleteEvent({graphics:i,tool:e})}}async create(e,t){if(this.cancel(),await this._waitViewReady(),"disabled"===this.state)throw this.layer||this._logError("sketch:missing-property","Property 'layer' is missing on SketchViewModel."),this.view||this._logError("sketch:missing-property","Property 'view' is missing on SketchViewModel."),y();if(n(this.view.activeTool)&&(this.view.activeTool=null),!e)return void this._logError("sketch:missing-parameter","Missing parameter 'tool'.");D(this.view,this._internalGraphicsLayer);const o=await this._setupCreateOperation(e,t);if(c(o)||this.destroyed)return void this.view.map.remove(this._internalGraphicsLayer);const i=()=>{if(o===this._operationHandle){const t=this.createGraphic,i=this._operationHandle.cancelled;this._operationHandle.destroy(),this._operationHandle=null,this._set("createGraphic",null),this.view&&this.view.map&&this.view.map.remove(this._internalGraphicsLayer),o.cancelled||null==t||this.layer.add(t),this.emit("create",{graphic:t,state:i?"cancel":"complete",tool:e,toolEventInfo:null,type:"create"})}};o.on("complete",i),this._operationHandle=o,this.view.ready&&k(this.view)&&this.view.focus()}async update(e,t){this.cancel(),await this._waitViewReady();const{layer:o,view:i,state:a}=this;if("disabled"===a)throw i||this._logError("sketch:missing-property","Property 'view' is missing on SketchViewModel."),o||this._logError("sketch:missing-property","Property 'layer' is missing on SketchViewModel."),y();n(this.view.activeTool)&&(this.view.activeTool=null);const r=Array.isArray(e)?e:[e];if(null==e||!r||!r.length)return void this._logError("sketch:missing-parameter","Missing parameter 'graphics'.");if(r.some((e=>e.layer!==o?(this._logError("sketch:invalid-parameter","Parameter 'graphics' contains one or more graphics missing from the supplied GraphicsLayer."),!0):c(e.geometry)?(this._logError("sketch:invalid-parameter","Parameter 'graphics' contains one or more graphics with an unsupported geometry."),!0):"2d"===i.type&&!i.spatialReference.equals(e.geometry.spatialReference)&&(this._logError("sketch:invalid-parameter","Parameter 'graphics' contains one or more graphics with a spatial reference different from the supplied MapView."),!0))))return;const s=await this._setupUpdateOperation(r,t);this.destroyed||c(s)||te(s)||(D(this.view,this._internalGraphicsLayer),this._setUpdateOperationHandle(s,t),this.emit("update",{graphics:r,state:"start",aborted:!1,tool:s.tool,toolEventInfo:null,type:"update"}))}undo(){this.canUndo()&&this._operationHandle.undo()}redo(){this.canRedo()&&this._operationHandle.redo()}canUndo(){return!(!this._operationHandle||!this._operationHandle.canUndo())}canRedo(){return!(!this._operationHandle||!this._operationHandle.canRedo())}toggleUpdateTool(){this._operationHandle&&this._operationHandle.toggleTool&&this._operationHandle.toggleTool()}async _getFirstHit(e){const t=[];switch(this.view.type){case"2d":{const o=[];this.view.map.allLayers.forEach((e=>{"vector-tile"!==e.type&&"imagery"!==e.type||o.push(e)}));const i=await this.view.hitTest(e,{exclude:o});if(i.results.length>0){const e=i.results[0];e.graphic&&t.push(e)}}break;case"3d":{const o=[this.view.map.ground];this.view.map.allLayers.forEach((e=>{"integrated-mesh"===e.type&&o.push(e)}));const i=await this.view.hitTest(e,{exclude:o});if(i.results.length>0){const e=i.results[0];(!i.ground.mapPoint||this.view.map.ground.opacity<1||i.ground.distance-d(e.distance,0)>-Math.min(3*i.ground.distance,"global"===this.view.viewingMode?O(this.view.renderCoordsHelper.spatialReference).radius/this.view.renderCoordsHelper.unitInMeters:Number.POSITIVE_INFINITY))&&t.push(e)}}}return{screenPoint:e,results:t}}_generateViewHandles(e){return[e.on("immediate-click",(async t=>{const o="active"===this.state&&"create"===this._operationHandle.type;if("disabled"===this.state||o||!this.updateOnGraphicClick)return;this._beginAsyncOperation();const i=(await t.async((()=>this._getFirstHit(L(t))))).results;let a=null;if(i.length){for(const r of i)if(r.graphic){const o=r.graphic;if(this.updateGraphics.includes(o)||o.layer===this.layer){t.stopPropagation(),a=o;break}"2d"!==e.type||this._isComponentGraphic(o)||"active"!==this.state||this.cancel()}}else"active"===this.state&&this.cancel();n(a)&&!this.updateGraphics.includes(a)&&await this.update([a],{...this.defaultUpdateOptions,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions}}),this._endAsyncOperation()}),U.WIDGET)]}async _setupCreateOperation(e,t){const o={hasZ:"3d"===this.view.type,...this.defaultCreateOptions,...t},i=await this._setupDrawGraphicTool(e,this.view,o);return c(i)?null:(this.view.tools.add(i),this.view.activeTool=i,this._setupCreateOperationHandle(i))}async _setupDrawGraphicTool(e,t,o){if("multipoint"===e&&"3d"===t.type)return this._logError("sketch:create","Multipoint geometries are not supported in SceneView"),null;const i="rectangle"!==e,a="rectangle"!==e;this.snappingOptions.enabledToggled=!1;const r={view:t,mode:"rectangle"===e||"circle"===e?"hybrid":"click",...o,snapToScene:!1,geometryType:e,graphicSymbol:this._getGraphicSymbolFromTool(e),snappingManager:this._snappingManager,forceUniformSize:a,centered:i};return"2d"===this.view.type?this._makeDrawGraphicTool2D(r):this._makeDrawGraphicTool3D(r)}async _makeDrawGraphicTool2D(e){const t=await this._requireModule(import("../../views/2d/interactive/editingTools.js"));return te(t)||this.destroyed?null:new t.module.DrawGraphicTool2D({...e,activeVertexSymbol:this.activeVertexSymbol,regularVerticesSymbol:this.vertexSymbol,activeLineSymbol:this.activeLineSymbol,activeFillSymbol:Y(e.geometryType)?this.activeFillSymbol:null})}async _makeDrawGraphicTool3D(e){const t=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));return te(t)||this.destroyed?null:new t.module.DrawGraphicTool3D({...e,elevationInfo:this.layer.elevationInfo,snapToScene:!n(this.layer.elevationInfo)||"absolute-height"===this.layer.elevationInfo.mode})}_setupCreateOperationHandle(e){let t=null;const o=e.forceUniformSize,i=e.centered,a=[this.view.on("key-down",(t=>{if(t.key===P.pan)t.stopPropagation(),t.repeat||(e.enabled=!1);else if(t.key===P.complete)t.stopPropagation(),e.completeCreateOperation();else if(t.key!==P.vertexAdd||t.repeat)t.key===P.undo?(t.stopPropagation(),r.undo()):t.key===P.redo?(t.stopPropagation(),r.redo()):t.key!==P.snappingToggle||"rectangle"===e.geometryType||"circle"===e.geometryType||t.repeat?t.key!==P.constraint||"rectangle"!==e.geometryType&&"circle"!==e.geometryType||t.repeat?t.key===P.center&&(t.repeat||(e.centered=!i,t.stopPropagation())):(e.forceUniformSize=!o,t.stopPropagation()):(this.snappingOptions.enabledToggled=!0,t.stopPropagation());else{const o=e.drawOperation.geometryType;"polyline"!==o&&"polygon"!==o&&"multipoint"!==o||(t.stopPropagation(),e.drawOperation.commitStagedVertex())}}),U.WIDGET),this.view.on("key-up",(t=>{t.key===P.pan?e.enabled=!0:t.key===P.snappingToggle&&"rectangle"!==e.geometryType&&"circle"!==e.geometryType?(this.snappingOptions.enabledToggled=!1,t.stopPropagation()):t.key!==P.constraint||"rectangle"!==e.geometryType&&"circle"!==e.geometryType?t.key===P.center&&(e.centered=i,t.stopPropagation()):(e.forceUniformSize=o,t.stopPropagation())}),U.WIDGET),e.on("vertex-add",(o=>{switch(t=c(t)?"start":"active",o.operation){case"apply":this.emit("create",{graphic:l(e.graphic),state:t,tool:this.activeTool,toolEventInfo:o,type:"create"});break;case"undo":this._emitUndoEvent({graphics:[l(e.graphic)],tool:e.geometryType});break;case"redo":this._emitRedoEvent({graphics:[l(e.graphic)],tool:e.geometryType})}})),e.on("cursor-update",(t=>{e.drawOperation.numCommittedVertices>0&&this.emit("create",{graphic:l(e.graphic),state:"active",tool:this.activeTool,toolEventInfo:{coordinates:t.vertices[0].coordinates,type:"cursor-update"},type:"create"})})),e.on("vertex-remove",(t=>{switch(t.operation){case"apply":this.emit("create",{graphic:l(e.graphic),state:"active",tool:this.activeTool,toolEventInfo:t,type:"create"});break;case"undo":this._emitUndoEvent({graphics:[l(e.graphic)],tool:e.geometryType});break;case"redo":this._emitRedoEvent({graphics:[l(e.graphic)],tool:e.geometryType})}})),e.on("complete",(e=>{this._set("createGraphic",l(e.graphic)),t="complete",e.aborted?r&&r.cancel():r&&r.complete()})),v((()=>this._getGraphicSymbolFromTool(e.geometryType)),(t=>{e.graphicSymbol=t}))],r=new F({activeComponent:e,tool:e.geometryType,type:"create",onEnd:()=>{var t;a.forEach((e=>e.remove())),a.length=0,null==(t=this.view.tools)||t.remove(e),e.destroy()},undo:()=>{e.canUndo&&e.undo()},redo:()=>{e.canRedo&&e.redo()},canUndo:()=>e.canUndo,canRedo:()=>e.canRedo});return r}_getGraphicSymbolFromTool(e){switch(e){case"point":case"multipoint":return this.pointSymbol;case"polyline":return this.polylineSymbol;case"circle":case"rectangle":case"polygon":return this.polygonSymbol;default:return null}}async _setupUpdateOperation(e,t){const{layer:o,view:i}=this,a={tool:this._defaultUpdateTool,...this.defaultUpdateOptions,...t,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions,...null==t?void 0:t.reshapeOptions}};let r=a.tool;for(const s of e)o.remove(s),o.add(s);if("3d"===i.type){if(0===e.length)return null;switch(r){case"move":return this._setupMove3DOperation(e,a,i,r);case"reshape":{if(e.length>1)return this._logError("sketch:reshape-multiple","Reshape operation does not support multiple graphics."),null;const t=M(e[0]);return t===C.SUPPORTED?this._setupReshape3DOperation(e[0],a,i):(this._logError("sketch:reshape",`Reshape operation not supported for provided graphic(s) (${H(t)}).`),null)}case"transform":return this._setupGraphicTransform3DOperation(e,a,i)}}switch(r){case"move":return this._setupMoveOperation(e,a,i);case"reshape":{if(e.length>1)return this._logError("sketch:reshape-multiple","Reshape operation does not support multiple graphics."),null;const t=M(e[0]);return t===C.SUPPORTED?this._setupTransformOrReshapeOperation(e,r,a,i):(this._logError("sketch:reshape",`Reshape operation not supported for provided graphic(s) (${H(t)}).`),null)}case"transform":if(1===e.length){const t=u(e[0].geometry,"type");"point"!==t&&"multipoint"!==t||(r="reshape")}return this._setupTransformOrReshapeOperation(e,r,a,i)}}async _setupMove3DOperation(e,t,o,i,a=!1){for(const l of e){const e=I(l);if(e!==C.SUPPORTED)return this._logError("sketch:move",`Move operation not supported for provided graphic(s) (${H(e)}).`),null}const r=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(te(r))return r;const s=new r.module.GraphicMoveTool({view:o,enableZ:t.enableZ,snappingManager:this._snappingManager});this.view.tools.add(s),s.graphics.addMany(e),a||this.updateGraphics.addMany(e);const n=[],p=new V({activeComponent:s,tool:i,type:"update",onEnd:()=>{var e;n.forEach((e=>e.remove())),n.length=0,null==(e=this.view.tools)||e.remove(s),s.destroyed||s.destroy()},undo:()=>{J(p,this.updateGraphics.toArray()),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:i})},redo:()=>{Q(p,this.updateGraphics.toArray()),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:i})},addToSelection:e=>{this.updateGraphics.push(e),s.graphics.push(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:"selection-change"},type:"update"})},removeFromSelection:e=>{const t=this.updateGraphics.indexOf(e);p.history.undo.forEach((e=>e.updates.splice(t,1))),p.history.redo.forEach((e=>e.updates.splice(t,1))),this.updateGraphics.remove(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:"selection-change"},type:"update"}),0!==this.updateGraphics.length?s.graphics.remove(e):p.complete()},toggleTool:async()=>{if(1!==this.updateGraphics.length||!1===t.toggleToolOnClick)return;if("transform"!==i)return;const e=this.updateGraphics.getItemAt(0);if(M(e)!==C.SUPPORTED)return;const a=await this._setupReshape3DOperation(e,t,o,!0);te(a)||(p.onEnd(),p.destroy(),this._setUpdateOperationHandle(a,t))}});return n.push(...this._getHandlesForComponent(p,t),this.view.on("immediate-click",(e=>this._getCommonUpdateOperationClickHandlers(p,e,t)),U.WIDGET),o.on("key-down",(e=>{this._getCommonUpdateOperationKeyDownHandlers(p,e),e.key===P.snappingToggle&&(this.snappingOptions.enabledToggled=!0,e.stopPropagation())}),U.WIDGET),o.on("key-up",(e=>{e.key===P.snappingToggle&&(this.snappingOptions.enabledToggled=!1,e.stopPropagation())}),U.WIDGET)),p}_setupGraphicTransform3DOperation(e,t,o,i=!1){if(1===e.length&&R(e[0])===C.SUPPORTED){const a=e[0],r=a.geometry;if(n(r)&&("point"===r.type||"mesh"===r.type))return this._setupPointTransform3DOperation(a,t,o);if(n(r)&&("polygon"===r.type||"polyline"===r.type))return this._setupPolyTransform3DOperation(a,t,o,i)}return this._setupMove3DOperation(e,t,o,"transform",i)}async _setupPointTransform3DOperation(e,t,o){const i="transform",{enableRotation:a,enableScaling:r,enableZ:s}=t,n=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(te(n))return n;const p=new n.module.GraphicTransformTool({graphic:e,view:o,enableRotation:a,enableScaling:r,enableZ:s,snappingManager:this._snappingManager});this.view.tools.add(p),this.updateGraphics.add(e);const l=[],h=new V({activeComponent:p,tool:i,type:"update",onEnd:()=>{var e;l.forEach((e=>e.remove())),l.length=0,null==(e=this.view.tools)||e.remove(p),p.destroyed||p.destroy()},undo:()=>{J(h,this.updateGraphics.toArray()),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:i})},redo:()=>{Q(h,this.updateGraphics.toArray()),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:i})},addToSelection:async e=>{this.updateGraphics.add(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:"selection-change"},type:"update"});const i=await this._setupMove3DOperation(this.updateGraphics.toArray(),t,o,"transform",!0);te(i)||(h.onEnd(),h.destroy(),this._setUpdateOperationHandle(i,t))},removeFromSelection:e=>{this.updateGraphics.remove(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:"selection-change"},type:"update"}),h.complete()},toggleTool:()=>{}});return l.push(...this._getHandlesForComponent(h,t),this.view.on("immediate-click",(e=>this._getCommonUpdateOperationClickHandlers(h,e,t)),U.WIDGET),o.on("key-down",(e=>{this._getCommonUpdateOperationKeyDownHandlers(h,e),e.key===P.snappingToggle&&(this.snappingOptions.enabledToggled=!0,e.stopPropagation())}),U.WIDGET),o.on("key-up",(e=>{e.key===P.snappingToggle&&(this.snappingOptions.enabledToggled=!1,e.stopPropagation())}),U.WIDGET)),h}async _setupPolyTransform3DOperation(e,t,o,i=!1){const a="transform",{enableRotation:r,enableScaling:s,enableZ:n,preserveAspectRatio:p}=t,l=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(te(l))return l;const h=new l.module.ExtentTransformTool({graphic:e,view:o,enableRotation:r,enableScaling:s,enableZ:n,preserveAspectRatio:p});this.view.tools.add(h),i||this.updateGraphics.add(e);const c=[],d=new V({activeComponent:h,tool:a,type:"update",onEnd:()=>{var e;c.forEach((e=>e.remove())),c.length=0,null==(e=this.view.tools)||e.remove(h),h.destroyed||h.destroy()},canUndo:()=>h.canUndo,undo:()=>{h.undo(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:a})},canRedo:()=>h.canRedo,redo:()=>{h.redo(),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:a})},addToSelection:async e=>{this.updateGraphics.add(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:"selection-change"},type:"update"});const i=await this._setupMove3DOperation(this.updateGraphics.toArray(),t,o,"transform",!0);te(i)||(d.onEnd(),d.destroy(),this._setUpdateOperationHandle(i,t))},removeFromSelection:e=>{this.updateGraphics.remove(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:"selection-change"},type:"update"}),d.complete()},toggleTool:async()=>{if(1!==this.updateGraphics.length||!1===t.toggleToolOnClick)return;const e=this.updateGraphics.getItemAt(0);if(M(e)!==C.SUPPORTED)return;const i=await this._setupReshape3DOperation(e,t,o,!0);te(i)||(d.onEnd(),d.destroy(),this._setUpdateOperationHandle(i,t))}});return c.push(...this._getHandlesForComponent(d,t),this.view.on("immediate-click",(e=>this._getCommonUpdateOperationClickHandlers(d,e,t)),U.WIDGET),this.view.on("key-down",(e=>this._getCommonUpdateOperationKeyDownHandlers(d,e)),U.WIDGET),this.view.on("key-down",(e=>{e.key!==P.constraint||e.repeat||(h.preserveAspectRatio=!h.preserveAspectRatio,e.stopPropagation())}),U.WIDGET),this.view.on("key-up",(e=>{e.key===P.constraint&&(h.preserveAspectRatio=!h.preserveAspectRatio,e.stopPropagation())}),U.WIDGET)),d}async _setupMoveOperation(e,t,o){const i="move";this.updateGraphics.addMany(e);const a=await this._getGraphicMover(e,t,o);if(te(a))return a;const r=new V({activeComponent:a,tool:i,type:"update",onEnd:()=>{var e;this._displayDefaultCursor(),p.forEach((e=>e.remove())),n.forEach((e=>e.remove())),p=[],n=[],a.destroy(),null==(e=this._internalGraphicsLayer)||e.removeMany([...this.updateGraphics.toArray()])},undo:()=>{const e=this.updateGraphics.toArray();J(r,e),r.refreshComponent(),this._emitUndoEvent({graphics:e,tool:i})},redo:()=>{const e=this.updateGraphics.toArray();Q(r,e),r.refreshComponent(),this._emitRedoEvent({graphics:e,tool:i})},addToSelection:e=>{this.updateGraphics.push(e),a.graphics=this.updateGraphics.toArray(),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:"selection-change"},type:"update"})},removeFromSelection:e=>{const t=this.updateGraphics.indexOf(e);r.history.undo.forEach((e=>e.updates.splice(t,1))),r.history.redo.forEach((e=>e.updates.splice(t,1))),this.updateGraphics.remove(e);const o=this.updateGraphics.toArray();this.emit("update",{graphics:o,state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:"selection-change"},type:"update"}),0!==this.updateGraphics.length?a.graphics=o:r.complete()}});let s=!1,n=[o.on("immediate-click",(e=>this._getCommonUpdateOperationClickHandlers(r,e,t)),U.WIDGET),o.on("key-down",(e=>{this._getCommonUpdateOperationKeyDownHandlers(r,e),e.key!==P.constraint||e.repeat||(s=!0,a.enableMoveAllGraphics=!a.enableMoveAllGraphics)}),U.WIDGET),o.on("key-up",(e=>{e.key===P.constraint&&s&&(s=!1,a.enableMoveAllGraphics=!a.enableMoveAllGraphics)}),U.WIDGET)],p=this._getHandlesForComponent(r,t);return r}async _setupReshape3DOperation(e,t,o,i=!1){const a="reshape",r=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(te(r))return r;this.snappingOptions.enabledToggled=!1;const s=new r.module.GraphicReshapeTool({view:o,graphic:e,enableZVertex:t.enableZ&&"move"===t.reshapeOptions.vertexOperation,enableZShape:t.enableZ&&"move"===t.reshapeOptions.shapeOperation,enableMoveGraphic:"move"===t.reshapeOptions.shapeOperation||"move-xy"===t.reshapeOptions.shapeOperation,enableMidpoints:"split"===t.reshapeOptions.edgeOperation,enableEdgeOffset:"offset"===t.reshapeOptions.edgeOperation,snappingManager:this._snappingManager});o.tools.add(s),i||this.updateGraphics.add(e);const n=[],p=new V({activeComponent:s,tool:a,type:"update",onEnd:()=>{var e;n.forEach((e=>e.remove())),n.length=0,null==(e=this.view.tools)||e.remove(s),s.destroyed||s.destroy()},canUndo:()=>s.canUndo,undo:()=>{s.undo(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:a})},canRedo:()=>s.canRedo,redo:()=>{s.redo(),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:a})},addToSelection:async e=>{this.updateGraphics.add(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:"selection-change"},type:"update"});const i=await this._setupMove3DOperation(this.updateGraphics.toArray(),t,o,"transform",!0);te(i)||(p.onEnd(),p.destroy(),this._setUpdateOperationHandle(i,t))},removeFromSelection:e=>{this.updateGraphics.remove(e),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:"selection-change"},type:"update"}),p.complete()},toggleTool:async()=>{if(!1===t.toggleToolOnClick)return;const e=await this._setupGraphicTransform3DOperation(this.updateGraphics.toArray(),t,o,!0);te(e)||(p.onEnd(),p.destroy(),this._setUpdateOperationHandle(e,t))}});return n.push(...this._getHandlesForComponent(p,t),o.on("immediate-click",(e=>this._getCommonUpdateOperationClickHandlers(p,e,t)),U.WIDGET),o.on("key-down",(e=>{this._getCommonUpdateOperationKeyDownHandlers(p,e),e.key===P.snappingToggle&&(this.snappingOptions.enabledToggled=!0,e.stopPropagation())}),U.WIDGET),o.on("key-up",(e=>{e.key===P.snappingToggle&&(this.snappingOptions.enabledToggled=!1,e.stopPropagation())}),U.WIDGET)),p}async _setupTransformOrReshapeOperation(e,t,o,i){this.updateGraphics.addMany(e);const a="transform"===t?await this._getBox(e,o,i):await this._getReshape(e,o,i);if(te(a))return a;const r=new V({activeComponent:a,type:"update",onEnd:()=>{p.forEach((e=>e.remove())),s.forEach((e=>e.remove())),p=[],s=[],r.activeComponent&&!r.activeComponent.destroyed&&r.activeComponent.destroy(),this._internalGraphicsLayer.removeMany(this.updateGraphics.toArray())},undo:()=>{J(r,this.updateGraphics.toArray()),r.refreshComponent(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:r.tool})},redo:()=>{Q(r,this.updateGraphics.toArray()),r.refreshComponent(),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:r.tool})},addToSelection:async e=>{let t=r.activeComponent;if("reshape"===t.type){const t=[...this.updateGraphics,e];this.updateGraphics.removeAll();const a=await this._setupMoveOperation(t,o,i);if(te(a))return;r.onEnd(),r.destroy(),this._setUpdateOperationHandle(a,o)}else this.updateGraphics.add(e),t=t,t.graphics=this.updateGraphics.toArray(),t.refresh(),r.resetHistory();this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[e],removed:[],type:"selection-change"},type:"update"})},removeFromSelection:async e=>{const t=this.updateGraphics.indexOf(e);r.history.undo.forEach((e=>e.updates.splice(t,1))),r.history.redo.forEach((e=>e.updates.splice(t,1))),this.updateGraphics.remove(e);const o=this.updateGraphics.toArray();if(0===o.length)r.complete();else{const e=o[0].geometry;1!==o.length||!n(e)||"point"!==e.type&&"multipoint"!==e.type?r.activeComponent.graphics=o:r.toggleTool()}this.emit("update",{graphics:o,state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:[],removed:[e],type:"selection-change"},type:"update"})},toggleTool:async()=>{if(this.updateGraphics.length>1)return;const e=this.updateGraphics.getItemAt(0),t=e.geometry;if(n(t)&&("reshape"===r.tool&&("point"===t.type||"multipoint"===t.type)||"transform"===r.tool&&"extent"===t.type))return;let a=null;"transform"===r.tool?a=await this._getReshape([e],o,i):"reshape"===r.tool&&(a=await this._getBox([e],o,i)),te(a)||(r.activeComponent.destroy(),r.activeComponent=a,r.activeComponent&&(p.forEach((e=>e.remove())),p=this._getHandlesForComponent(r,o)))}});let s=[i.on("immediate-click",(e=>this._getCommonUpdateOperationClickHandlers(r,e,o)),U.WIDGET),i.on("key-down",(e=>{if(this._getCommonUpdateOperationKeyDownHandlers(r,e),e.key!==P.snappingToggle||e.repeat||(this.snappingOptions.enabledToggled=!0,e.stopPropagation()),e.key===P.constraint&&!e.repeat&&r){const e=r.activeComponent;e&&"box"===e.type&&(e.preserveAspectRatio=!e.preserveAspectRatio)}}),U.WIDGET),i.on("key-up",(e=>{var t;if(e.key===P.snappingToggle&&"reshape"===(null==r||null==(t=r.activeComponent)?void 0:t.type)&&(this.snappingOptions.enabledToggled=!1,e.stopPropagation()),e.key===P.constraint&&r){const e=r.activeComponent;e&&"box"===e.type&&(e.preserveAspectRatio=!e.preserveAspectRatio)}}),U.WIDGET)],p=this._getHandlesForComponent(r,o);return r}async _getGraphicMover(e,t,o){const{enableMoveAllGraphics:i}=t,a=await this._requireModule(import("../../views/draw/support/GraphicMover.js"));return te(a)?a:new a.module.default({enableMoveAllGraphics:i,highlightsEnabled:!0,indicatorsEnabled:!1,graphics:e,view:o,callbacks:{onGraphicMoveStart:({dx:e,dy:t,graphic:o})=>{this._displayGrabbingCursor(),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:o,type:"move-start"},type:"update"})},onGraphicMove:({dx:e,dy:t,graphic:o})=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:o,type:"move"},type:"update"}),onGraphicMoveStop:({dx:e,dy:t,graphic:o})=>{this._displayPointerCursor(),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:o,type:"move-stop"},type:"update"})},onGraphicPointerOver:()=>this._displayPointerCursor(),onGraphicPointerOut:()=>this._displayDefaultCursor()}})}async _getBox(e,t,o){const{enableRotation:i,enableScaling:a,preserveAspectRatio:r}=t,s=await this._requireModule(import("../../views/draw/support/Box.js"));return te(s)?s:new s.module.default({graphics:e,enableRotation:i,enableScaling:a,preserveAspectRatio:r,layer:this._internalGraphicsLayer,view:o,callbacks:{onMoveStart:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onMove:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onMoveStop:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onScaleStart:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onScale:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onScaleStop:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onRotateStart:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onRotate:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onRotateStop:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"})}})}async _getReshape(e,t,o){var i,a;const r="split"===(null==(i=t.reshapeOptions)?void 0:i.edgeOperation),s="move"===(null==(a=t.reshapeOptions)?void 0:a.shapeOperation),n=await this._requireModule(import("../../views/draw/support/Reshape.js"));return te(n)?n:new n.module.default({enableMidpoints:r,enableMovement:s,graphic:e[0],layer:this._internalGraphicsLayer,snappingManager:this._snappingManager,view:o,callbacks:{onReshapeStart:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onReshape:e=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e},type:"update"}),onReshapeStop:({mover:e,type:t})=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e,type:t},type:"update"}),onMoveStart:({dx:e,dy:t,mover:o,type:i})=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:o,type:i},type:"update"}),onMove:({dx:e,dy:t,mover:o,type:i})=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:o,type:i},type:"update"}),onMoveStop:({dx:e,dy:t,mover:o,type:i})=>this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e,dy:t,mover:o,type:i},type:"update"}),onVertexAdd:({added:e,type:t,vertices:o})=>{const i=e.map((e=>S(e.geometry)));this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{added:i,vertices:o,type:t},type:"update"})},onVertexRemove:({removed:e,type:t,vertices:o})=>{const i=e.map((e=>S(e.geometry)));this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{removed:i,vertices:o,type:t},type:"update"})}}})}_getHandlesForComponent(e,t){const o=e.activeComponent;switch(o.type){case"graphic-mover":return[o.on("graphic-click",(({graphic:t,viewEvent:o})=>{var i;null!=(i=o.native)&&i.shiftKey&&(o.stopPropagation(),e.removeFromSelection(t))})),o.on("graphic-move-start",(t=>e.addToHistory(ee(t.allGraphics))))];case"box":return[o.on("graphic-click",(o=>this._onTransformOrReshape2DGraphicClick(e,t,o))),o.on("move-start",(t=>e.addToHistory(ee(t.graphics)))),o.on("rotate-start",(t=>e.addToHistory(ee(t.graphics)))),o.on("scale-start",(t=>e.addToHistory(ee(t.graphics))))];case"reshape":return[o.on("graphic-click",(o=>this._onTransformOrReshape2DGraphicClick(e,t,o))),o.on("move-start",(t=>e.addToHistory(ee([t.mover])))),o.on("reshape-start",(t=>e.addToHistory(ee([t.graphic])))),o.on("vertex-add",(t=>e.addToHistory(ee([t.oldGraphic])))),o.on("vertex-remove",(t=>e.addToHistory(ee([t.oldGraphic]))))];case"move-3d":return[o.on("graphic-move-start",(t=>{e.addToHistory(ee(t.allGraphics)),this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:0,dy:0,mover:t.allGraphics.length>0?t.allGraphics[0]:null,type:"move-start"},type:"update"})})),o.on("graphic-move",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:e.dx,dy:e.dy,mover:e.allGraphics.length>0?e.allGraphics[0]:null,type:"move"},type:"update"})})),o.on("graphic-move-stop",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:0,dy:0,mover:e.allGraphics.length>0?e.allGraphics[0]:null,type:"move-stop"},type:"update"})})),o.on("immediate-click",(o=>{o.shiftKey?this._toggleSelection([o.graphic],e,t):e.toggleTool()}))];case"transform-3d":return[o.on("record-undo",(({record:t})=>{e.addToHistory({updates:[t]})})),o.on("graphic-translate-start",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,dx:e.dxScreen,dy:e.dyScreen,type:"move-start"},type:"update"})})),o.on("graphic-translate-stop",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,dx:e.dxScreen,dy:e.dyScreen,type:"move-stop"},type:"update"})})),o.on("graphic-rotate-start",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,angle:e.angle,type:"rotate-start"},type:"update"})})),o.on("graphic-rotate-stop",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,angle:e.angle,type:"rotate-stop"},type:"update"})})),o.on("graphic-scale-start",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,xScale:e.xScale,yScale:e.yScale,type:"scale-start"},type:"update"})})),o.on("graphic-scale-stop",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,xScale:e.xScale,yScale:e.yScale,type:"scale-stop"},type:"update"})})),o.on("graphic-translate",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,dx:e.dxScreen,dy:e.dyScreen,type:"move"},type:"update"})})),o.on("graphic-rotate",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,angle:e.angle,type:"rotate"},type:"update"})})),o.on("graphic-scale",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.graphic,xScale:e.xScale,yScale:e.yScale,type:"scale"},type:"update"})})),o.on("immediate-click",(o=>{o.shiftKey?this._toggleSelection([o.graphic],e,t):e.toggleTool()}))];case"reshape-3d":return[o.on("reshape",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:e,type:"update"})})),o.on("move",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:e,type:"update"})})),o.on("vertex-add",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:e,type:"update"})})),o.on("vertex-remove",(e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:e,type:"update"})})),o.on("immediate-click",(o=>{o.shiftKey?this._toggleSelection([o.graphic],e,t):e.toggleTool()}))];default:return}}_onTransformOrReshape2DGraphicClick(e,t,o){var i;const{graphic:a,viewEvent:r}=o;return null!=(i=r.native)&&i.shiftKey&&a.layer===this.layer?(r.stopPropagation(),e.removeFromSelection(a)):t.toggleToolOnClick?(r.stopPropagation(),e.toggleTool()):void 0}_setUpdateOperationHandle(e,t){this._operationHandle=e;const o=this.view.map;this._disablePopup(t);const i=()=>{if(e===this._operationHandle){const i=this.updateGraphics.toArray(),a=this._operationHandle.tool;this._operationHandle.destroy(),this._operationHandle=null,this._internalGraphicsLayer.removeMany(this.updateGraphics.toArray()),this.updateGraphics.removeAll(),o&&o.remove(this._internalGraphicsLayer),this._restorePopup(t),this.emit("update",{graphics:i,state:"complete",aborted:e.cancelled,tool:a,toolEventInfo:null,type:"update"})}};e.on("complete",i)}async _getCommonUpdateOperationClickHandlers(e,t,o){const i=L(t),a=(await t.async((()=>this._getFirstHit(i)))).results;if(!a.length)return void e.complete();if(t.native.shiftKey&&this._toggleSelection(a.map((e=>e.graphic)),e,o))return void t.stopPropagation();a.some((e=>e.graphic&&this.updateGraphics.includes(e.graphic)))?t.stopPropagation():e.complete()}_toggleSelection(e,t,o){const i=!!o.multipleSelectionEnabled;return e.some((e=>null!=e&&(!(!i||e.layer!==this.layer)&&(this.updateGraphics.includes(e)?t.removeFromSelection(e):t.addToSelection(e),!0))))}_getCommonUpdateOperationKeyDownHandlers(e,t){if(!e)return;const o=t.key;o===P.undo&&e.canUndo()?(t.stopPropagation(),e.undo()):o===P.redo&&e.canRedo()?(t.stopPropagation(),e.redo()):o===P.cancel?(t.stopPropagation(),e.cancel()):this.allowDeleteKey&&P.delete.includes(o)&&this._onDeleteKey(t)}_onDeleteKey(e){if(!this._operationHandle||"update"!==this._operationHandle.type)return;const t=this.activeComponent,o=this.updateGraphics.toArray();c(t)||"reshape-3d"===t.type||("reshape"!==t.type||1===o.length&&"point"===u(o[0].geometry,"type"))&&(e.stopPropagation(),this.delete())}_removeDefaultLayer(){this._internalGraphicsLayer&&(this.view&&this.view.map&&this.view.map.remove(this._internalGraphicsLayer),this._internalGraphicsLayer=p(this._internalGraphicsLayer))}_isComponentGraphic(e){const{activeComponent:t}=this;return!(!e||c(t))&&(e.attributes&&e.attributes.esriSketchTool||"draw-2d"===t.type&&t.graphic===e||("box"===t.type||"reshape"===t.type)&&t.isUIGraphic(e))}_displayPointerCursor(){this.view&&this.view.container&&"pointer"!==this.view.cursor&&(this.view.cursor="pointer")}_displayGrabbingCursor(){this.view&&this.view.container&&"grabbing"!==this.view.cursor&&(this.view.cursor="grabbing")}_displayDefaultCursor(){this.view&&this.view.container&&null!==this.view.cursor&&(this.view.cursor=null)}_logError(e,t,o){z.error(new i(e,t,o))}async _requireModule(e){const t=new AbortController;this._moduleLoaderAbortController=t;const o=await e;return this._moduleLoaderAbortController!==t||t.signal.aborted?{requireError:"aborted"}:{module:o}}_emitUndoEvent(e){this.emit("undo",{...e,type:"undo"})}_emitRedoEvent(e){this.emit("redo",{...e,type:"redo"})}_emitDeleteEvent(e){this.emit("delete",{...e,type:"delete"})}test(){return{operationHandle:this._operationHandle,defaultUpdateOptions:N}}wait(){return G(this,"updating")}_beginAsyncOperation(){this._numUpdating+=1,this.notifyChange("updating")}_endAsyncOperation(){this._numUpdating-=1,this.notifyChange("updating")}_disablePopupEnabled(e){var t;return"3d"!==(null==(t=this.view)?void 0:t.type)||this.updateOnGraphicClick||n(e)&&e.toggleToolOnClick}_disablePopup(e){if(!this._disablePopupEnabled(e))return;const t=this.view.popup;t&&c(this._originalAutoOpenEnabled)&&(this._originalAutoOpenEnabled=t.autoOpenEnabled,t.autoOpenEnabled=!1)}_restorePopup(e){if(!this._disablePopupEnabled(e))return;const t=this.view.popup;t&&n(this._originalAutoOpenEnabled)&&(t.autoOpenEnabled=this._originalAutoOpenEnabled,this._originalAutoOpenEnabled=null)}async _waitViewReady(){this.view&&(h(this._viewReadyAbortController),this._viewReadyAbortController=new AbortController,await m(b(this.view,"ready"),this._viewReadyAbortController.signal))}};function Y(e){return"polygon"===e||"rectangle"===e||"circle"===e}function J(e,t){X("undo",e.history.undo,e.history.redo,t)}function Q(e,t){X("redo",e.history.redo,e.history.undo,t)}function X(e,t,o,i){const a=t.pop().updates,r=[];i.forEach(((t,o)=>{const i=a[o];null!=i&&("geometry"in i&&n(i.geometry)&&(r.push({geometry:t.geometry}),t.geometry=i.geometry),"symbol"in i&&n(i.symbol)&&(r.push({symbol:t.symbol}),t.symbol=i.symbol),"undo"in i&&(r.push(i),i[e](t)))})),o.push({updates:r})}function ee(e){return{updates:e.map((e=>({geometry:e.geometry})))}}function te(e){return"requireError"in e&&"aborted"===e.requireError}e([T()],$.prototype,"updating",null),e([T()],$.prototype,"_operationHandle",void 0),e([T({readOnly:!0})],$.prototype,"activeTool",null),e([T()],$.prototype,"activeFillSymbol",void 0),e([T()],$.prototype,"activeLineSymbol",void 0),e([T()],$.prototype,"activeVertexSymbol",void 0),e([T()],$.prototype,"allowDeleteKey",void 0),e([T({readOnly:!0})],$.prototype,"createGraphic",null),e([T()],$.prototype,"defaultCreateOptions",null),e([T()],$.prototype,"defaultUpdateOptions",null),e([T()],$.prototype,"layer",void 0),e([T({types:t})],$.prototype,"pointSymbol",void 0),e([T({types:t})],$.prototype,"polygonSymbol",void 0),e([T({types:t})],$.prototype,"polylineSymbol",void 0),e([T({type:j,nonNullable:!0})],$.prototype,"snappingOptions",null),e([T()],$.prototype,"_snappingManager",void 0),e([T({readOnly:!0})],$.prototype,"state",null),e([T({readOnly:!0})],$.prototype,"updateGraphics",void 0),e([T()],$.prototype,"updateOnGraphicClick",void 0),e([T({types:t})],$.prototype,"updatePointSymbol",void 0),e([T({types:t})],$.prototype,"updatePolygonSymbol",void 0),e([T({types:t})],$.prototype,"updatePolylineSymbol",void 0),e([T({types:t})],$.prototype,"vertexSymbol",void 0),e([T({value:null})],$.prototype,"view",null),e([T()],$.prototype,"cancel",null),e([T()],$.prototype,"complete",null),e([T()],$.prototype,"delete",null),e([T()],$.prototype,"create",null),e([T()],$.prototype,"update",null),e([T()],$.prototype,"undo",null),e([T()],$.prototype,"redo",null),e([T()],$.prototype,"canUndo",null),e([T()],$.prototype,"canRedo",null),e([T()],$.prototype,"toggleUpdateTool",null),$=e([E(Z)],$);const oe=$;export{oe as default};
package/widgets/Sketch.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{handlesGroup as o}from"../core/handleUtils.js";import{removeMaybe as i,destroyMaybe as s,isNone as n,isSome as l}from"../core/maybe.js";import{aliasOf as r}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as a}from"../core/accessorSupport/decorators/cast.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import u from"../views/interactive/snapping/SnappingOptions.js";import h from"./Widget.js";import p from"./Sketch/SketchViewModel.js";import v from"./support/SelectionToolbar.js";import g from"./support/SnappingControls.js";import{isRTL as m}from"./support/widgetUtils.js";import{messageBundle as _}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as w}from"./support/decorators/vmEvent.js";import{tsx as f}from"./support/jsxFactory.js";import{substitute as b}from"../intl/substitute.js";const y={base:"esri-sketch",verticalLayout:"esri-sketch--vertical",panel:"esri-sketch__panel",infoPanel:"esri-sketch__info-panel",section:"esri-sketch__section",toolSection:"esri-sketch__tool-section",infoSection:"esri-sketch__info-section",infoCountSection:"esri-sketch__info-count-section",menuContainer:"esri-sketch__menu-container",menuHeader:"esri-sketch__menu-header",menuTitle:"esri-sketch__menu-title",featureCountBadge:"esri-sketch__feature-count-badge",featureCountText:"esri-sketch__feature-count-text",featureCountNumber:"esri-sketch__feature-count-number",actionToggle:"esri-sketch__action-toggle",actionToggleOn:"esri-sketch__action-toggle--on",actionTitle:"esri-sketch__item-action-title",actionIcon:"esri-sketch__item-action-icon",disabled:"esri-disabled",esriWidget:"esri-widget",rotating:"esri-rotating",widgetIcon:"esri-icon-edit"},M={createTools:{point:!0,polyline:!0,polygon:!0,rectangle:!0,circle:!0},selectionTools:{"rectangle-selection":!0,"lasso-selection":!0},undoRedoMenu:!0,settingsMenu:!0};let C=class extends h{constructor(e,o){super(e,o),this._activeCreateOptions=null,this._defaultViewModel=null,this._menuOpen=!1,this._selectionToolbar=null,this._selectionHandlesGroup=null,this._snappingControls=null,this._viewModelHandlesGroup=null,this.availableCreateTools=["point","polyline","polygon","rectangle","circle"],this.createGraphic=null,this.creationMode="continuous",this.defaultCreateOptions=null,this.defaultUpdateOptions=null,this.iconClass=y.widgetIcon,this.label=void 0,this.layer=null,this.layout="horizontal",this.messages=null,this.snappingOptions=new u,this.updateGraphics=new t,this.view=null,this.visibleElements={...M},this._activateCreateTool=this._activateCreateTool.bind(this),null!=e&&e.viewModel||(this._defaultViewModel=new p,this.viewModel=this._defaultViewModel)}initialize(){const{layer:e,view:t}=this,i=new v({view:"2d"===(null==t?void 0:t.type)?t:null,layers:e?[e]:null});this._selectionHandlesGroup=o([i.watch("activeToolInfo",(e=>{e&&this.viewModel.cancel()})),i.on("complete",(e=>this._onSelectionOperationComplete(e)))]),this._selectionToolbar=i,this._setUpSnappingControls()}loadDependencies(){return import("@esri/calcite-components/dist/components/calcite-action.js")}destroy(){this._selectionToolbar.destroy(),this._cleanupViewModel(),this._selectionHandlesGroup=i(this._selectionHandlesGroup),this._snappingControls=s(this._snappingControls)}get activeTool(){const e=this._selectionToolbar.activeToolInfo;if(e)switch(e.toolName){case"lasso":return"lasso-selection";case"rectangle":return"rectangle-selection";case"default":return"custom-selection"}return this.viewModel.activeTool}get state(){return this._selectionToolbar.activeToolInfo?"active":this.viewModel.state}set viewModel(e){e!==this._get("viewModel")&&((n(this._defaultViewModel)||this._defaultViewModel!==e)&&this._cleanupViewModel(),this._set("viewModel",e),this.viewModel&&(this._viewModelHandlesGroup=o([this.viewModel.on("create",(e=>{this.scheduleRender(),this._onCreateOperation(e)})),this.viewModel.on("update",(()=>this.scheduleRender())),this.viewModel.on("delete",(e=>this.emit("delete",e))),this.viewModel.on("undo",(()=>this.scheduleRender())),this.viewModel.on("redo",(()=>this.scheduleRender())),this.viewModel.watch("layer",(e=>{this._selectionToolbar.layers=e?[e]:null})),this.viewModel.watch("view",(e=>{this._selectionToolbar.view="2d"===(null==e?void 0:e.type)?e:null,this._setUpSnappingControls()})),this.viewModel.watch("state",(()=>this.notifyChange("state")))])))}castVisibleElements(e){return{...M,...e,createTools:{...M.createTools,...null==e?void 0:e.createTools},selectionTools:{...M.selectionTools,...null==e?void 0:e.selectionTools}}}create(e,t){this._activeCreateOptions=t||null,this.viewModel.create(e,t)}update(e,t){return this.viewModel.update(e,t)}complete(){}cancel(){this._selectionToolbar.cancel(),this.viewModel.cancel()}undo(){var e;this.viewModel.undo(),null==(e=this.view)||e.focus()}redo(){var e;this.viewModel.redo(),null==(e=this.view)||e.focus()}delete(){}render(){const{label:e,layout:t,viewModel:{state:o}}=this;return f("div",{"aria-label":e,class:this.classes(y.base,y.esriWidget,{[y.disabled]:"disabled"===o,[y.verticalLayout]:"vertical"===t})},f("div",{role:"toolbar",class:y.panel},this.renderTopPanelContents()),f("div",{class:this.classes(y.panel,y.infoPanel)},this.renderInfoPanelContents()))}renderTopPanelContents(){const e=this.classes(y.section,y.toolSection),{availableCreateTools:t,visibleElements:o}=this;return[f("div",{role:"menu",key:"selection-button-container",class:e},this.renderDefaultSelectionButton(),this.renderSelectionToolbar()),t&&t.length?f("div",{role:"menu",class:e},this.renderDrawButtons()):null,o.undoRedoMenu?f("div",{role:"menu",key:"undo-redo-menu-button-container",class:e},this.renderUndoRedoMenuButtons()):null,o.settingsMenu?f("div",{key:"settings-menu-button-container",class:y.section},this.renderSettingsMenuButton()):null]}renderInfoPanelContents(){return this._menuOpen?this.renderSettingsMenu():this.updateGraphics.length?[f("div",{class:this.classes(y.section,y.infoSection,y.infoCountSection),key:"feature-count-container"},this.renderFeatureCount()),f("div",{class:this.classes(y.section,y.infoSection),key:"delete-button-container"},this.renderDeleteButton())]:void 0}renderSettingsMenu(){const{settings:e}=this.messages;return[f("div",{role:"menu",class:y.menuContainer,key:"settings-menu-container"},f("header",{class:y.menuHeader,key:"settings-menu-header"},f("span",{class:y.menuTitle},e)),this.renderSnappingControls())]}renderSnappingControls(){if(l(this._snappingControls))return this._snappingControls.render()}renderFeatureCount(){const{layout:e,messages:t,updateGraphics:{length:o}}=this,i=b(1===o?t.featureCount:t.featuresCount,{count:o});return f("div",{class:y.featureCountBadge,"aria-label":i},f("span",{class:y.featureCountNumber},"vertical"===e?o:i))}renderDeleteButton(){const e=this.messages.deleteFeature;return f("calcite-action",{bind:this,icon:"trash",label:e,onclick:this.delete,scale:"s",text:e,title:e})}renderDefaultSelectionButton(){if(!this.viewModel.updateOnGraphicClick)return;const e=this.messages.selectFeature;return f("calcite-action",{active:"ready"===this.state,bind:this,icon:"cursor",label:e,onclick:this._activateDefaultSelectTool,scale:"s",text:e,title:e})}renderSelectionToolbar(){var e;if("2d"!==(null==(e=this.view)?void 0:e.type))return;const t=this.visibleElements.selectionTools;return this._selectionToolbar.visibleElements={lassoTool:!!t["lasso-selection"],rectangleTool:!!t["rectangle-selection"]},this._selectionToolbar.render()}renderDrawButtons(){const e=this.visibleElements.createTools;return this.availableCreateTools.map((t=>"point"===t&&e.point?this.renderPointButton():"polyline"===t&&e.polyline?this.renderPolylineButton():"polygon"===t&&e.polygon?this.renderPolygonButton():"rectangle"===t&&e.rectangle?this.renderRectangleButton():"circle"===t&&e.circle?this.renderCircleButton():void 0))}renderPointButton(){const e="point",t=this.messages.drawPoint;return f("calcite-action",{active:this.activeTool===e,bind:this,icon:"pin",label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t})}renderPolygonButton(){const e="polygon",t=this.messages.drawPolygon;return f("calcite-action",{active:this.activeTool===e,bind:this,icon:"polygon",label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t})}renderPolylineButton(){const e="polyline",t=this.messages.drawPolyline;return f("calcite-action",{active:this.activeTool===e,bind:this,icon:"line",label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t})}renderCircleButton(){const e="circle",t=this.messages.drawCircle;return f("calcite-action",{active:this.activeTool===e,bind:this,icon:"circle",label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t})}renderRectangleButton(){const e="rectangle",t=this.messages.drawRectangle;return f("calcite-action",{active:this.activeTool===e,bind:this,icon:"rectangle",label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t})}renderUndoRedoMenuButtons(){return[this.renderUndoButton(),this.renderRedoButton()]}renderUndoButton(){const e=this.messages.undo;return f("calcite-action",{disabled:!this.viewModel.canUndo(),bind:this,icon:m(this.container)?"redo":"undo",label:e,onclick:this.undo,scale:"s",text:e,title:e})}renderRedoButton(){const e=this.messages.redo;return f("calcite-action",{disabled:!this.viewModel.canRedo(),bind:this,icon:m(this.container)?"undo":"redo",label:e,onclick:this.redo,scale:"s",text:e,title:e})}renderSettingsMenuButton(){const e=this.messages.settings;return f("calcite-action",{active:this._menuOpen,bind:this,icon:"gear",label:e,onclick:this._toggleMenu,scale:"s",text:e,title:e})}_activateCreateTool(e){this.activeTool!==e?(this._selectionToolbar.cancel(),this.create(e)):this.cancel()}_onCreateOperation(e){if("complete"!==e.state)return;const{creationMode:t}=this,{type:o}=e;if("create"===o){const{tool:o,graphic:i}=e,s=this._activeCreateOptions;this._activeCreateOptions=null,"continuous"===t?this.create(o,s):"update"===t&&this.update([i])}}_toggleMenu(){this._menuOpen=!this._menuOpen,this.scheduleRender()}_onSelectionOperationComplete(e){const{viewModel:{defaultUpdateOptions:t}}=this,{selection:o}=e;if(!e.aborted&&o.length){const e=t.tool,i=o.length>1&&"reshape"===e?"transform":e;this.update(o,{...t,tool:i})}this.notifyChange("state")}_activateDefaultSelectTool(){var e;this.cancel(),null==(e=this.view)||e.focus()}_cleanupViewModel(){this._defaultViewModel=s(this._defaultViewModel),this._viewModelHandlesGroup=i(this._viewModelHandlesGroup)}_setUpSnappingControls(){const{snappingOptions:e,view:t}=this;if(this._snappingControls=s(this._snappingControls),!e||!t)return;const o=new g({snappingOptions:e,view:t,visibleElements:{header:!1}});this._snappingControls=o}};e([c()],C.prototype,"activeTool",null),e([c({cast:e=>{if(!e||!e.length)return null;const t=new Set(["point","polyline","polygon","rectangle","circle"]);return e.filter((e=>t.has(e)))}})],C.prototype,"availableCreateTools",void 0),e([r("viewModel.createGraphic")],C.prototype,"createGraphic",void 0),e([c()],C.prototype,"creationMode",void 0),e([r("viewModel.defaultCreateOptions")],C.prototype,"defaultCreateOptions",void 0),e([r("viewModel.defaultUpdateOptions")],C.prototype,"defaultUpdateOptions",void 0),e([c()],C.prototype,"iconClass",void 0),e([c({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],C.prototype,"label",void 0),e([r("viewModel.layer")],C.prototype,"layer",void 0),e([c({type:["horizontal","vertical"]})],C.prototype,"layout",void 0),e([c(),_("esri/widgets/Sketch/t9n/Sketch")],C.prototype,"messages",void 0),e([r("viewModel.snappingOptions")],C.prototype,"snappingOptions",void 0),e([c()],C.prototype,"state",null),e([r("viewModel.updateGraphics")],C.prototype,"updateGraphics",void 0),e([r("viewModel.view")],C.prototype,"view",void 0),e([c(),w(["create","update","undo","redo"])],C.prototype,"viewModel",null),e([c()],C.prototype,"visibleElements",void 0),e([a("visibleElements")],C.prototype,"castVisibleElements",null),e([r("viewModel.complete")],C.prototype,"complete",null),e([r("viewModel.delete")],C.prototype,"delete",null),C=e([d("esri.widgets.Sketch")],C);const T=C;export{T as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{handlesGroup as o}from"../core/handleUtils.js";import{removeMaybe as i,destroyMaybe as s,isNone as n,isSome as l}from"../core/maybe.js";import{aliasOf as r}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as a}from"../core/accessorSupport/decorators/cast.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import p from"../views/interactive/snapping/SnappingOptions.js";import u from"./Widget.js";import h from"./Sketch/SketchViewModel.js";import v from"./support/SelectionToolbar.js";import g from"./support/SnappingControls.js";import{isRTL as m}from"./support/widgetUtils.js";import{messageBundle as _}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as w}from"./support/decorators/vmEvent.js";import{tsx as b}from"./support/jsxFactory.js";import{substitute as f}from"../intl/substitute.js";const y={base:"esri-sketch",verticalLayout:"esri-sketch--vertical",panel:"esri-sketch__panel",infoPanel:"esri-sketch__info-panel",section:"esri-sketch__section",toolSection:"esri-sketch__tool-section",infoSection:"esri-sketch__info-section",infoCountSection:"esri-sketch__info-count-section",menuContainer:"esri-sketch__menu-container",menuHeader:"esri-sketch__menu-header",menuTitle:"esri-sketch__menu-title",featureCountBadge:"esri-sketch__feature-count-badge",featureCountText:"esri-sketch__feature-count-text",featureCountNumber:"esri-sketch__feature-count-number",actionToggle:"esri-sketch__action-toggle",actionToggleOn:"esri-sketch__action-toggle--on",actionTitle:"esri-sketch__item-action-title",actionIcon:"esri-sketch__item-action-icon",disabled:"esri-disabled",esriWidget:"esri-widget",rotating:"esri-rotating",widgetIcon:"esri-icon-edit"},C={createTools:{point:!0,polyline:!0,polygon:!0,rectangle:!0,circle:!0},selectionTools:{"rectangle-selection":!0,"lasso-selection":!0},undoRedoMenu:!0,settingsMenu:!0,snappingControls:!0,snappingControlsElements:{header:!1,enabledToggle:!0,selfEnabledToggle:!0,featureEnabledToggle:!0,layerList:!0}};let M=class extends u{constructor(e,o){super(e,o),this._activeCreateOptions=null,this._defaultViewModel=null,this._menuOpen=!1,this._selectionToolbar=null,this._selectionHandlesGroup=null,this._snappingControls=null,this._viewModelHandlesGroup=null,this.availableCreateTools=["point","polyline","polygon","rectangle","circle"],this.createGraphic=null,this.creationMode="continuous",this.defaultCreateOptions=null,this.defaultUpdateOptions=null,this.iconClass=y.widgetIcon,this.label=void 0,this.layer=null,this.layout="horizontal",this.messages=null,this.snappingOptions=new p,this.updateGraphics=new t,this.view=null,this.visibleElements={...C},this._activateCreateTool=this._activateCreateTool.bind(this),null!=e&&e.viewModel||(this._defaultViewModel=new h,this.viewModel=this._defaultViewModel)}initialize(){const{layer:e,view:t}=this,i=new v({view:"2d"===(null==t?void 0:t.type)?t:null,layers:e?[e]:null});this._selectionHandlesGroup=o([i.watch("activeToolInfo",(e=>{e&&this.viewModel.cancel()})),i.on("complete",(e=>this._onSelectionOperationComplete(e)))]),this._selectionToolbar=i,this._setUpSnappingControls()}loadDependencies(){return import("@esri/calcite-components/dist/components/calcite-action.js")}destroy(){this._selectionToolbar.destroy(),this._cleanupViewModel(),this._selectionHandlesGroup=i(this._selectionHandlesGroup),this._snappingControls=s(this._snappingControls)}get activeTool(){const e=this._selectionToolbar.activeToolInfo;if(e)switch(e.toolName){case"lasso":return"lasso-selection";case"rectangle":return"rectangle-selection";case"default":return"custom-selection"}return this.viewModel.activeTool}get state(){return this._selectionToolbar.activeToolInfo?"active":this.viewModel.state}set viewModel(e){e!==this._get("viewModel")&&((n(this._defaultViewModel)||this._defaultViewModel!==e)&&this._cleanupViewModel(),this._set("viewModel",e),this.viewModel&&(this._viewModelHandlesGroup=o([this.viewModel.on("create",(e=>{this.scheduleRender(),this._onCreateOperation(e)})),this.viewModel.on("update",(()=>this.scheduleRender())),this.viewModel.on("delete",(e=>this.emit("delete",e))),this.viewModel.on("undo",(()=>this.scheduleRender())),this.viewModel.on("redo",(()=>this.scheduleRender())),this.viewModel.watch("layer",(e=>{this._selectionToolbar.layers=e?[e]:null})),this.viewModel.watch("view",(e=>{this._selectionToolbar.view="2d"===(null==e?void 0:e.type)?e:null,this._setUpSnappingControls()})),this.viewModel.watch("state",(()=>this.notifyChange("state")))])))}castVisibleElements(e){const t={...C,...e,createTools:{...C.createTools,...null==e?void 0:e.createTools},selectionTools:{...C.selectionTools,...null==e?void 0:e.selectionTools},snappingControlsElements:{...C.snappingControlsElements,...null==e?void 0:e.snappingControlsElements}};return l(this._snappingControls)&&(this._snappingControls.visibleElements=t.snappingControlsElements),t}create(e,t){this._activeCreateOptions=t||null,this.viewModel.create(e,t)}update(e,t){return this.viewModel.update(e,t)}complete(){}cancel(){this._selectionToolbar.cancel(),this.viewModel.cancel()}undo(){var e;this.viewModel.undo(),null==(e=this.view)||e.focus()}redo(){var e;this.viewModel.redo(),null==(e=this.view)||e.focus()}delete(){}render(){const{label:e,layout:t,viewModel:{state:o}}=this;return b("div",{"aria-label":e,class:this.classes(y.base,y.esriWidget,{[y.disabled]:"disabled"===o,[y.verticalLayout]:"vertical"===t})},b("div",{role:"toolbar",class:y.panel},this.renderTopPanelContents()),b("div",{class:this.classes(y.panel,y.infoPanel)},this.renderInfoPanelContents()))}renderTopPanelContents(){const e=this.classes(y.section,y.toolSection),{availableCreateTools:t,visibleElements:o}=this;return[b("div",{role:"menu",key:"selection-button-container",class:e},this.renderDefaultSelectionButton(),this.renderSelectionToolbar()),t&&t.length?b("div",{role:"menu",class:e},this.renderDrawButtons()):null,o.undoRedoMenu?b("div",{role:"menu",key:"undo-redo-menu-button-container",class:e},this.renderUndoRedoMenuButtons()):null,o.settingsMenu?b("div",{key:"settings-menu-button-container",class:y.section},this.renderSettingsMenuButton()):null]}renderInfoPanelContents(){return this._menuOpen?this.renderSettingsMenu():this.updateGraphics.length?[b("div",{class:this.classes(y.section,y.infoSection,y.infoCountSection),key:"feature-count-container"},this.renderFeatureCount()),b("div",{class:this.classes(y.section,y.infoSection),key:"delete-button-container"},this.renderDeleteButton())]:void 0}renderSettingsMenu(){const{settings:e}=this.messages;return[b("div",{role:"menu",class:y.menuContainer,key:"settings-menu-container"},b("header",{class:y.menuHeader,key:"settings-menu-header"},b("span",{class:y.menuTitle},e)),this.renderSnappingControls())]}renderSnappingControls(){const{snappingControls:e}=this.visibleElements;if(l(this._snappingControls)&&e)return this._snappingControls.render()}renderFeatureCount(){const{layout:e,messages:t,updateGraphics:{length:o}}=this,i=f(1===o?t.featureCount:t.featuresCount,{count:o});return b("div",{class:y.featureCountBadge,"aria-label":i},b("span",{class:y.featureCountNumber},"vertical"===e?o:i))}renderDeleteButton(){const e=this.messages.deleteFeature;return b("calcite-action",{bind:this,icon:"trash",label:e,onclick:this.delete,scale:"s",text:e,title:e})}renderDefaultSelectionButton(){if(!this.viewModel.updateOnGraphicClick)return;const e=this.messages.selectFeature;return b("calcite-action",{active:"ready"===this.state,bind:this,icon:"cursor",label:e,onclick:this._activateDefaultSelectTool,scale:"s",text:e,title:e})}renderSelectionToolbar(){var e;if("2d"!==(null==(e=this.view)?void 0:e.type))return;const t=this.visibleElements.selectionTools;return this._selectionToolbar.visibleElements={lassoTool:!!t["lasso-selection"],rectangleTool:!!t["rectangle-selection"]},this._selectionToolbar.render()}renderDrawButtons(){const e=this.visibleElements.createTools;return this.availableCreateTools.map((t=>"point"===t&&e.point?this.renderPointButton():"polyline"===t&&e.polyline?this.renderPolylineButton():"polygon"===t&&e.polygon?this.renderPolygonButton():"rectangle"===t&&e.rectangle?this.renderRectangleButton():"circle"===t&&e.circle?this.renderCircleButton():void 0))}renderPointButton(){const e="point",t=this.messages.drawPoint;return b("calcite-action",{active:this.activeTool===e,bind:this,icon:"pin",label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t})}renderPolygonButton(){const e="polygon",t=this.messages.drawPolygon;return b("calcite-action",{active:this.activeTool===e,bind:this,icon:"polygon",label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t})}renderPolylineButton(){const e="polyline",t=this.messages.drawPolyline;return b("calcite-action",{active:this.activeTool===e,bind:this,icon:"line",label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t})}renderCircleButton(){const e="circle",t=this.messages.drawCircle;return b("calcite-action",{active:this.activeTool===e,bind:this,icon:"circle",label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t})}renderRectangleButton(){const e="rectangle",t=this.messages.drawRectangle;return b("calcite-action",{active:this.activeTool===e,bind:this,icon:"rectangle",label:t,onclick:()=>this._activateCreateTool(e),scale:"s",text:t,title:t})}renderUndoRedoMenuButtons(){return[this.renderUndoButton(),this.renderRedoButton()]}renderUndoButton(){const e=this.messages.undo;return b("calcite-action",{disabled:!this.viewModel.canUndo(),bind:this,icon:m(this.container)?"redo":"undo",label:e,onclick:this.undo,scale:"s",text:e,title:e})}renderRedoButton(){const e=this.messages.redo;return b("calcite-action",{disabled:!this.viewModel.canRedo(),bind:this,icon:m(this.container)?"undo":"redo",label:e,onclick:this.redo,scale:"s",text:e,title:e})}renderSettingsMenuButton(){const e=this.messages.settings;return b("calcite-action",{active:this._menuOpen,bind:this,icon:"gear",label:e,onclick:this._toggleMenu,scale:"s",text:e,title:e})}_activateCreateTool(e){this.activeTool!==e?(this._selectionToolbar.cancel(),this.create(e)):this.cancel()}_onCreateOperation(e){if("complete"!==e.state)return;const{creationMode:t}=this,{type:o}=e;if("create"===o){const{tool:o,graphic:i}=e,s=this._activeCreateOptions;this._activeCreateOptions=null,"continuous"===t?this.create(o,s):"update"===t&&this.update([i])}}_toggleMenu(){this._menuOpen=!this._menuOpen,this.scheduleRender()}_onSelectionOperationComplete(e){const{viewModel:{defaultUpdateOptions:t}}=this,{selection:o}=e;if(!e.aborted&&o.length){const e=t.tool,i=o.length>1&&"reshape"===e?"transform":e;this.update(o,{...t,tool:i})}this.notifyChange("state")}_activateDefaultSelectTool(){var e;this.cancel(),null==(e=this.view)||e.focus()}_cleanupViewModel(){this._defaultViewModel=s(this._defaultViewModel),this._viewModelHandlesGroup=i(this._viewModelHandlesGroup)}_setUpSnappingControls(){const{snappingOptions:e,view:t}=this;if(this._snappingControls=s(this._snappingControls),!e||!t)return;const o=new g({snappingOptions:e,view:t,visibleElements:this.visibleElements.snappingControlsElements});this._snappingControls=o}};e([c()],M.prototype,"activeTool",null),e([c({cast:e=>{if(!e||!e.length)return null;const t=new Set(["point","polyline","polygon","rectangle","circle"]);return e.filter((e=>t.has(e)))}})],M.prototype,"availableCreateTools",void 0),e([r("viewModel.createGraphic")],M.prototype,"createGraphic",void 0),e([c()],M.prototype,"creationMode",void 0),e([r("viewModel.defaultCreateOptions")],M.prototype,"defaultCreateOptions",void 0),e([r("viewModel.defaultUpdateOptions")],M.prototype,"defaultUpdateOptions",void 0),e([c()],M.prototype,"iconClass",void 0),e([c({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],M.prototype,"label",void 0),e([r("viewModel.layer")],M.prototype,"layer",void 0),e([c({type:["horizontal","vertical"]})],M.prototype,"layout",void 0),e([c(),_("esri/widgets/Sketch/t9n/Sketch")],M.prototype,"messages",void 0),e([r("viewModel.snappingOptions")],M.prototype,"snappingOptions",void 0),e([c()],M.prototype,"state",null),e([r("viewModel.updateGraphics")],M.prototype,"updateGraphics",void 0),e([r("viewModel.view")],M.prototype,"view",void 0),e([c(),w(["create","update","undo","redo"])],M.prototype,"viewModel",null),e([c()],M.prototype,"visibleElements",void 0),e([a("visibleElements")],M.prototype,"castVisibleElements",null),e([r("viewModel.complete")],M.prototype,"complete",null),e([r("viewModel.delete")],M.prototype,"delete",null),M=e([d("esri.widgets.Sketch")],M);const T=M;export{T 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/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import t from"../TimeInterval.js";import{equals as i}from"../core/arrayUtils.js";import s from"../core/Collection.js";import{neverReached as n}from"../core/compilerUtils.js";import{on as o}from"../core/events.js";import{isSome as a,isNone as r,andThen as l}from"../core/maybe.js";import{throttle as m}from"../core/throttle.js";import{truncateDate as u,offsetDate as c}from"../core/timeUtils.js";import{init as d}from"../core/watchUtils.js";import{aliasOf as p}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as v}from"../core/accessorSupport/decorators/property.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as w,convertDateFormatToIntlOptions as y}from"../intl/date.js";import f from"./Slider.js";import x from"./Widget.js";import{accessibleHandler as b}from"./support/decorators/accessibleHandler.js";import{messageBundle as _}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as g}from"./support/decorators/vmEvent.js";import{tsx as k}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import{getCalciteThemeClass as j}from"./support/widgetThemeUtils.js";import T from"./TimeSlider/TimeSliderViewModel.js";const E="esri-time-slider",S={widgetIcon:"esri-icon-time-clock",esriWidget:"esri-widget",esriWidgetButton:"esri-widget--button",esriButtonDisabled:"esri-button--disabled",esriDisabled:"esri-disabled",timeSlider:`${E}`,timeSliderOutOfBounds:`${E}--out-of-bounds`,timeSliderMode:`${E}__mode--`,timeSliderLayout:`${E}__layout--`,timeSliderRow:`${E}__row`,animation:`${E}__animation`,animationButton:`${E}__animation-button`,animationPlay:"esri-icon-play",animationPause:"esri-icon-pause",timeExtent:`${E}__time-extent`,timeExtentGroup:`${E}__time-extent-group`,timeExtentDate:`${E}__time-extent-date`,timeExtentTime:`${E}__time-extent-time`,timeExtentSeparator:`${E}__time-extent-separator`,playbackControls:`${E}__playback-controls`,min:`${E}__min`,minDate:`${E}__min-date`,minTime:`${E}__min-time`,slider:`${E}__slider`,sliderMajorTick:"majorTick",sliderMinorTick:"minorTick",max:`${E}__max`,maxDate:`${E}__max-date`,maxTime:`${E}__max-time`,previous:`${E}__previous`,previousButton:`${E}__previous-button`,previousIcon:"esri-icon-reverse",next:`${E}__next`,nextButton:`${E}__next-button`,nextIcon:"esri-icon-forward",warning:`${E}__warning`,warningIcon:"esri-icon-notice-triangle",warningText:`${E}__warning-text`,hasActions:`${E}--has-actions`,actions:`${E}__actions`,actionsButton:`${E}__actions-button`},M=3,$=100,C=858,D=new s([{minor:new t({value:100,unit:"milliseconds"}),major:new t({value:1,unit:"seconds"}),format:{second:"numeric"}},{minor:new t({value:500,unit:"milliseconds"}),major:new t({value:5,unit:"seconds"}),format:{second:"numeric"}},{minor:new t({value:1,unit:"seconds"}),major:new t({value:20,unit:"seconds"}),format:{minute:"numeric",second:"numeric"}},{minor:new t({value:2,unit:"seconds"}),major:new t({value:30,unit:"seconds"}),format:{minute:"numeric",second:"numeric"}},{minor:new t({value:10,unit:"seconds"}),major:new t({value:1,unit:"minutes"}),format:{minute:"numeric"}},{minor:new t({value:15,unit:"seconds"}),major:new t({value:5,unit:"minutes"}),format:{hour:"numeric",minute:"numeric"}},{minor:new t({value:1,unit:"minutes"}),major:new t({value:20,unit:"minutes"}),format:{hour:"numeric",minute:"numeric"}},{minor:new t({value:5,unit:"minutes"}),major:new t({value:2,unit:"hours"}),format:{hour:"numeric",minute:"numeric"}},{minor:new t({value:15,unit:"minutes"}),major:new t({value:6,unit:"hours"}),format:{hour:"numeric",minute:"numeric"}},{minor:new t({value:1,unit:"hours"}),major:new t({value:1,unit:"days"}),format:{day:"numeric",month:"short"}},{minor:new t({value:6,unit:"hours"}),major:new t({value:1,unit:"weeks"}),format:{day:"numeric",month:"short"}},{minor:new t({value:1,unit:"days"}),major:new t({value:1,unit:"months"}),format:{month:"long"}},{minor:new t({value:2,unit:"days"}),major:new t({value:1,unit:"months"}),format:{month:"short"}},{minor:new t({value:3,unit:"days"}),major:new t({value:1,unit:"months"}),format:{month:"short"}},{minor:new t({value:4,unit:"days"}),major:new t({value:3,unit:"months"}),format:{month:"short",year:"numeric"}},{minor:new t({value:1,unit:"weeks"}),major:new t({value:1,unit:"years"}),format:{year:"numeric"}},{minor:new t({value:1,unit:"months"}),major:new t({value:1,unit:"years"}),format:{year:"numeric"}},{minor:new t({value:2,unit:"months"}),major:new t({value:2,unit:"years"}),format:{year:"numeric"}},{minor:new t({value:1,unit:"years"}),major:new t({value:1,unit:"decades"}),format:{year:"numeric"}},{minor:new t({value:2,unit:"years"}),major:new t({value:5,unit:"decades"}),format:{year:"numeric"}},{minor:new t({value:5,unit:"decades"}),major:new t({value:10,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:1,unit:"centuries"}),major:new t({value:10,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:2,unit:"centuries"}),major:new t({value:20,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:5,unit:"centuries"}),major:new t({value:50,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:10,unit:"centuries"}),major:new t({value:100,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:20,unit:"centuries"}),major:new t({value:200,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:50,unit:"centuries"}),major:new t({value:500,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:100,unit:"centuries"}),major:new t({value:1e3,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:200,unit:"centuries"}),major:new t({value:1e3,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:500,unit:"centuries"}),major:new t({value:5e3,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:1e3,unit:"centuries"}),major:new t({value:1e4,unit:"centuries"}),format:{era:"short",year:"numeric"}}]);let F=class extends x{constructor(e,t){super(e,t),this._ignoreNextSliderUpdate=!1,this._slider=new f({precision:0,visibleElements:{rangeLabels:!1},rangeLabelInputsEnabled:!1,thumbsConstrained:!1}),this._tickFormat=null,this.actions=null,this.disabled=!1,this.effectiveStops=null,this.fullTimeExtent=null,this.iconClass=S.widgetIcon,this.label=void 0,this.labelFormatFunction=null,this.loop=!1,this.messages=null,this.messagesCommon=null,this.mode="time-window",this.playRate=1e3,this.stops={count:10},this.tickConfigs=null,this.timeExtent=null,this.timeVisible=!1,this.view=null,this.viewModel=new T}initialize(){this.own([this._slider.watch("values",(e=>{if(this._ignoreNextSliderUpdate)return void(this._ignoreNextSliderUpdate=!1);const t=this.viewModel.valuesToTimeExtent(e);a(this.timeExtent)?a(t)?this.timeExtent.equals(t)||(this.timeExtent=t):this.timeExtent=null:a(t)&&(this.timeExtent=t)})),o(window,"resize",m((()=>this.scheduleRender()),$)),d(this,"effectiveStops",(()=>this._updateSliderSteps()))])}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-action.js"),import("@esri/calcite-components/dist/components/calcite-action-menu.js")])}destroy(){this._slider.destroy(),this._tickFormat=null}get interactive(){return!this.disabled&&this.viewModel&&"disabled"!==this.viewModel.state}set layout(e){-1===["auto","compact","wide"].indexOf(e)&&(e="auto"),this._set("layout",e)}static async getPropertiesFromWebMap(e,t){return T.getPropertiesFromWebMap(e,t)}next(){}play(){}previous(){}stop(){return null}render(){const{_slider:e,actions:t,domNode:s,effectiveStops:n,fullTimeExtent:o,interactive:m,messagesCommon:u,mode:c,tickConfigs:d,timeExtent:p,timeVisible:v,viewModel:{state:h,timeExtentValues:y}}=this;if(a(o)){const{start:t,end:i}=o;if(a(t)&&a(i)){const s=t.getTime(),n=i.getTime(),o=e.min!==s||e.max!==n;if(o&&(e.min=s,e.max=n),a(d))e.tickConfigs!==d&&(e.tickConfigs=d);else{var f;const t=(n-s)/((null==(f=e.trackElement)?void 0:f.offsetWidth)||400),i=D.find((e=>e.minor.toMilliseconds()>M*t)),a=this._tickFormat!==i&&null!=i;if(a&&(this._tickFormat=i),o||a){const t={mode:"position",values:this._getTickPositions(i.minor),labelsVisible:!1,tickCreatedFunction:(e,t)=>{t.classList.add(S.sliderMinorTick)}},s={mode:"position",values:this._getTickPositions(i.major),labelsVisible:!0,tickCreatedFunction:(e,t)=>{t.classList.add(S.sliderMajorTick)},labelFormatFunction:e=>w(e,i.format)};e.tickConfigs=[t,s]}}}}const x=r(this.fullTimeExtent)||r(this.timeExtent)||this.timeExtent.isAllTime||this.timeExtent.isEmpty||a(this.timeExtent.start)&&(this.timeExtent.start<this.fullTimeExtent.start||this.timeExtent.start>this.fullTimeExtent.end)||a(this.timeExtent.end)&&(this.timeExtent.end>this.fullTimeExtent.end||this.timeExtent.end<this.fullTimeExtent.start);if(x)switch(this._ignoreNextSliderUpdate=!0,c){case"time-window":e.values=[e.min,e.max];break;case"instant":case"cumulative-from-end":e.values=[e.min];break;case"cumulative-from-start":e.values=[e.max]}else a(y)?i(e.values,y)||(e.values=y):e.values=null;e.disabled=!m;const b="ready"===h,_="playing"===h,g=x||!m||r(n)||0===n.length,T="auto"===this.layout?s.clientWidth<C?"compact":"wide":this.layout,E=k("div",{class:S.animation},k("button",{"aria-disabled":g?"true":"false","aria-label":_?u.control.stop:u.control.play,bind:this,class:this.classes(S.esriWidgetButton,S.animationButton,g&&S.esriButtonDisabled),disabled:g,title:_?u.control.stop:u.control.play,onclick:this._playOrStopClick,type:"button"},k("div",{class:this.classes((b||g)&&S.animationPlay,_&&S.animationPause)}))),$=a(this.labelFormatFunction)?k("div",{key:"extent",bind:this,class:S.timeExtentDate,"data-type":"extent","data-layout":T,"data-date":l(p,(e=>[e.start,e.end])),afterCreate:this._createLabel,afterUpdate:this._createLabel}):r(p)||a(p)&&p.isAllTime?[k("div",{class:this.classes(S.warning,S.warningIcon)}),k("div",{key:"warning-text",class:S.warningText},this.messages.noTimeExtent)]:p.isEmpty?[k("div",{class:this.classes(S.warning,S.warningIcon)}),k("div",{key:"warning-text",class:S.warningText},this.messages.emptyTimeExtent)]:[a(p.start)&&k("div",{key:"start-date-group",class:S.timeExtentGroup},k("div",{key:"start-date",class:S.timeExtentDate},this._formatDate(p.start)),v&&k("div",{key:"start-time",class:S.timeExtentTime},this._formatTime(p.start))),a(p.start)&&a(p.end)&&p.start.getTime()!==p.end.getTime()&&k("div",{key:"separator",class:S.timeExtentSeparator},"–"),a(p.end)&&(r(p.start)||p.start.getTime()!==p.end.getTime())&&k("div",{key:"end-date-group",class:S.timeExtentGroup},k("div",{key:"end-date",class:S.timeExtentDate},this._formatDate(p.end)),v&&k("div",{key:"end-time",class:S.timeExtentTime},this._formatTime(p.end)))],F=k("div",{class:this.classes(S.timeExtent,!m&&S.esriButtonDisabled)},[$]),B=a(this.labelFormatFunction)?k("div",{key:"min-date",bind:this,class:S.minDate,"data-date":l(o,(e=>e.start)),"data-type":"min","data-layout":T,afterCreate:this._createLabel,afterUpdate:this._createLabel}):a(o)&&a(o.start)&&[k("div",{key:"min-date",class:S.minDate},this._formatDate(o.start)),v&&k("div",{key:"min-time",class:S.minTime},this._formatTime(o.start))],L=k("div",{class:this.classes(S.min,!m&&S.esriButtonDisabled)},[B]),U=k("div",{class:S.slider},e.render()),W=a(this.labelFormatFunction)?k("div",{key:"max-date",bind:this,class:S.maxDate,"data-date":l(o,(e=>e.end)),"data-type":"max","data-layout":T,afterCreate:this._createLabel,afterUpdate:this._createLabel}):a(o)&&a(o.end)&&[k("div",{key:"max-date",class:S.maxDate},this._formatDate(o.end)),v&&k("div",{key:"max-time",class:S.maxTime},this._formatTime(o.end))],I=k("div",{class:this.classes(S.max,!m&&S.esriButtonDisabled)},[W]),O=k("div",{class:S.previous},k("button",{"aria-disabled":g?"true":"false","aria-label":u.pagination.previous,bind:this,class:this.classes(S.esriWidgetButton,S.previousButton,(_||g)&&S.esriButtonDisabled),disabled:g,title:u.pagination.previous,onclick:this._previousClick,type:"button"},k("div",{class:S.previousIcon}))),P=k("div",{class:S.next},k("button",{"aria-disabled":g?"true":"false","aria-label":u.pagination.next,bind:this,class:this.classes(S.esriWidgetButton,S.nextButton,(_||g)&&S.esriButtonDisabled),disabled:g,title:u.pagination.next,onclick:this._nextClick,type:"button"},k("div",{class:S.nextIcon}))),A=(null==t?void 0:t.length)>0,R=A&&k("div",{class:S.actions,title:u.options},k("calcite-action-menu",{label:u.options,class:S.actionsButton},t.toArray().map((e=>k("calcite-action",{bind:this,icon:e.icon,id:e.id,onCalciteActionClick:()=>this.viewModel.triggerAction(e),text:e.title,textEnabled:!0})))));return k("div",{class:this.classes(S.timeSlider,S.esriWidget,`${S.timeSliderMode}${c}`,`${S.timeSliderLayout}${T}`,!m&&S.esriDisabled,x&&S.timeSliderOutOfBounds,A&&S.hasActions,j())},"wide"===T&&k("div",{class:S.timeSliderRow},k("div",{class:S.playbackControls},[E,F,L,U,I,O,P]),R),"compact"===T&&[k("div",{key:"time-slider-row-1",class:S.timeSliderRow},[F,R]),k("div",{key:"time-slider-row-2",class:S.timeSliderRow},[U]),k("div",{key:"time-slider-row-3",class:S.timeSliderRow},[L,O,E,P,I])])}updateWebDocument(e){var t;null==(t=this.viewModel)||t.updateWebDocument(e)}_createLabel(e){if(r(this.labelFormatFunction))return;const t=e.getAttribute("data-type"),i=e.getAttribute("data-layout"),s=e["data-date"];this.labelFormatFunction(s,t,e,i)}_getTickPositions(e){const{fullTimeExtent:t}=this;if(r(t)||r(t.start)||r(t.end))return[];const{start:i,end:s}=t,n=[],{value:o,unit:a}=e;let l=u(i,a);for(;l.getTime()<=s.getTime();)l.getTime()>=i.getTime()&&n.push(l.getTime()),l=c(l,o,a);return n}_formatDate(e){return e?w(e,y("short-date")):null}_formatTime(e){return e?w(e,y("long-time")):null}_updateSliderSteps(){this._slider.steps=a(this.effectiveStops)&&this.effectiveStops.length>0?this.effectiveStops.map((e=>e.getTime())):null}_playOrStopClick(){switch(this.viewModel.state){case"ready":this.viewModel.play();break;case"playing":this.viewModel.stop();break;case"disabled":break;default:n(this.viewModel.state)}}_previousClick(){this.viewModel.previous()}_nextClick(){this.viewModel.next()}};e([p("viewModel.actions")],F.prototype,"actions",void 0),e([v()],F.prototype,"disabled",void 0),e([p("viewModel.effectiveStops")],F.prototype,"effectiveStops",void 0),e([p("viewModel.fullTimeExtent")],F.prototype,"fullTimeExtent",void 0),e([v()],F.prototype,"iconClass",void 0),e([v({readOnly:!0})],F.prototype,"interactive",null),e([v({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],F.prototype,"label",void 0),e([v()],F.prototype,"labelFormatFunction",void 0),e([v({value:"auto"})],F.prototype,"layout",null),e([p("viewModel.loop")],F.prototype,"loop",void 0),e([v(),_("esri/widgets/TimeSlider/t9n/TimeSlider")],F.prototype,"messages",void 0),e([v(),_("esri/t9n/common")],F.prototype,"messagesCommon",void 0),e([p("viewModel.mode")],F.prototype,"mode",void 0),e([p("viewModel.playRate")],F.prototype,"playRate",void 0),e([p("viewModel.stops")],F.prototype,"stops",void 0),e([v()],F.prototype,"tickConfigs",void 0),e([p("viewModel.timeExtent")],F.prototype,"timeExtent",void 0),e([v({nonNullable:!0})],F.prototype,"timeVisible",void 0),e([p("viewModel.view")],F.prototype,"view",void 0),e([v({type:T}),g("trigger-action")],F.prototype,"viewModel",void 0),e([p("viewModel.next")],F.prototype,"next",null),e([p("viewModel.play")],F.prototype,"play",null),e([p("viewModel.previous")],F.prototype,"previous",null),e([p("viewModel.stop")],F.prototype,"stop",null),e([b()],F.prototype,"_playOrStopClick",null),e([b()],F.prototype,"_previousClick",null),e([b()],F.prototype,"_nextClick",null),F=e([h("esri.widgets.TimeSlider")],F);const B=F;export{B as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"../TimeInterval.js";import{equals as i}from"../core/arrayUtils.js";import s from"../core/Collection.js";import{neverReached as n}from"../core/compilerUtils.js";import{isSome as o,isNone as a,applySome as r}from"../core/maybe.js";import{watch as l,initial as m}from"../core/reactiveUtils.js";import{truncateDate as u,offsetDate as d}from"../core/timeUtils.js";import{aliasOf as c}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as p}from"../core/accessorSupport/decorators/property.js";import{subclass as v}from"../core/accessorSupport/decorators/subclass.js";import{formatDate as h,convertDateFormatToIntlOptions as w}from"../intl/date.js";import y from"./Slider.js";import f from"./Widget.js";import{accessibleHandler as x}from"./support/decorators/accessibleHandler.js";import{messageBundle as b}from"./support/decorators/messageBundle.js";import"../core/Logger.js";import{vmEvent as _}from"./support/decorators/vmEvent.js";import{tsx as g}from"./support/jsxFactory.js";import{onResize as k}from"./support/widgetUtils.js";import{getCalciteThemeClass as j}from"./support/widgetThemeUtils.js";import T from"./TimeSlider/TimeSliderViewModel.js";const E="esri-time-slider",S={widgetIcon:"esri-icon-time-clock",esriWidget:"esri-widget",esriWidgetButton:"esri-widget--button",esriButtonDisabled:"esri-button--disabled",esriDisabled:"esri-disabled",timeSlider:`${E}`,timeSliderOutOfBounds:`${E}--out-of-bounds`,timeSliderMode:`${E}__mode--`,timeSliderLayout:`${E}__layout--`,timeSliderRow:`${E}__row`,animation:`${E}__animation`,animationButton:`${E}__animation-button`,animationPlay:"esri-icon-play",animationPause:"esri-icon-pause",timeExtent:`${E}__time-extent`,timeExtentGroup:`${E}__time-extent-group`,timeExtentDate:`${E}__time-extent-date`,timeExtentTime:`${E}__time-extent-time`,timeExtentSeparator:`${E}__time-extent-separator`,playbackControls:`${E}__playback-controls`,min:`${E}__min`,minDate:`${E}__min-date`,minTime:`${E}__min-time`,slider:`${E}__slider`,sliderMajorTick:"majorTick",sliderMinorTick:"minorTick",max:`${E}__max`,maxDate:`${E}__max-date`,maxTime:`${E}__max-time`,previous:`${E}__previous`,previousButton:`${E}__previous-button`,previousIcon:"esri-icon-reverse",next:`${E}__next`,nextButton:`${E}__next-button`,nextIcon:"esri-icon-forward",warning:`${E}__warning`,warningIcon:"esri-icon-notice-triangle",warningText:`${E}__warning-text`,hasActions:`${E}--has-actions`,actions:`${E}__actions`,actionsButton:`${E}__actions-button`},M=3,$=858,C=new s([{minor:new t({value:100,unit:"milliseconds"}),major:new t({value:1,unit:"seconds"}),format:{second:"numeric"}},{minor:new t({value:500,unit:"milliseconds"}),major:new t({value:5,unit:"seconds"}),format:{second:"numeric"}},{minor:new t({value:1,unit:"seconds"}),major:new t({value:20,unit:"seconds"}),format:{minute:"numeric",second:"numeric"}},{minor:new t({value:2,unit:"seconds"}),major:new t({value:30,unit:"seconds"}),format:{minute:"numeric",second:"numeric"}},{minor:new t({value:10,unit:"seconds"}),major:new t({value:1,unit:"minutes"}),format:{minute:"numeric"}},{minor:new t({value:15,unit:"seconds"}),major:new t({value:5,unit:"minutes"}),format:{hour:"numeric",minute:"numeric"}},{minor:new t({value:1,unit:"minutes"}),major:new t({value:20,unit:"minutes"}),format:{hour:"numeric",minute:"numeric"}},{minor:new t({value:5,unit:"minutes"}),major:new t({value:2,unit:"hours"}),format:{hour:"numeric",minute:"numeric"}},{minor:new t({value:15,unit:"minutes"}),major:new t({value:6,unit:"hours"}),format:{hour:"numeric",minute:"numeric"}},{minor:new t({value:1,unit:"hours"}),major:new t({value:1,unit:"days"}),format:{day:"numeric",month:"short"}},{minor:new t({value:6,unit:"hours"}),major:new t({value:1,unit:"weeks"}),format:{day:"numeric",month:"short"}},{minor:new t({value:1,unit:"days"}),major:new t({value:1,unit:"months"}),format:{month:"long"}},{minor:new t({value:2,unit:"days"}),major:new t({value:1,unit:"months"}),format:{month:"short"}},{minor:new t({value:3,unit:"days"}),major:new t({value:1,unit:"months"}),format:{month:"short"}},{minor:new t({value:4,unit:"days"}),major:new t({value:3,unit:"months"}),format:{month:"short",year:"numeric"}},{minor:new t({value:1,unit:"weeks"}),major:new t({value:1,unit:"years"}),format:{year:"numeric"}},{minor:new t({value:1,unit:"months"}),major:new t({value:1,unit:"years"}),format:{year:"numeric"}},{minor:new t({value:2,unit:"months"}),major:new t({value:2,unit:"years"}),format:{year:"numeric"}},{minor:new t({value:1,unit:"years"}),major:new t({value:1,unit:"decades"}),format:{year:"numeric"}},{minor:new t({value:2,unit:"years"}),major:new t({value:5,unit:"decades"}),format:{year:"numeric"}},{minor:new t({value:5,unit:"decades"}),major:new t({value:10,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:1,unit:"centuries"}),major:new t({value:10,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:2,unit:"centuries"}),major:new t({value:20,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:5,unit:"centuries"}),major:new t({value:50,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:10,unit:"centuries"}),major:new t({value:100,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:20,unit:"centuries"}),major:new t({value:200,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:50,unit:"centuries"}),major:new t({value:500,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:100,unit:"centuries"}),major:new t({value:1e3,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:200,unit:"centuries"}),major:new t({value:1e3,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:500,unit:"centuries"}),major:new t({value:5e3,unit:"centuries"}),format:{era:"short",year:"numeric"}},{minor:new t({value:1e3,unit:"centuries"}),major:new t({value:1e4,unit:"centuries"}),format:{era:"short",year:"numeric"}}]);let D=class extends f{constructor(e,t){super(e,t),this._ignoreNextSliderUpdate=!1,this._slider=new y({precision:0,visibleElements:{rangeLabels:!1},rangeLabelInputsEnabled:!1,thumbsConstrained:!1}),this._tickFormat=null,this.actions=null,this.disabled=!1,this.effectiveStops=null,this.fullTimeExtent=null,this.iconClass=S.widgetIcon,this.label=void 0,this.labelFormatFunction=null,this.loop=!1,this.messages=null,this.messagesCommon=null,this.mode="time-window",this.playRate=1e3,this.stops={count:10},this.tickConfigs=null,this.timeExtent=null,this.timeVisible=!1,this.view=null,this.viewModel=new T}initialize(){this.own([l((()=>this._slider.values),(e=>{if(this._ignoreNextSliderUpdate)return void(this._ignoreNextSliderUpdate=!1);const t=this.viewModel.valuesToTimeExtent(e);o(this.timeExtent)?o(t)?this.timeExtent.equals(t)||(this.timeExtent=t):this.timeExtent=null:o(t)&&(this.timeExtent=t)})),l((()=>this.effectiveStops),(()=>this._updateSliderSteps()),m)])}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-action.js"),import("@esri/calcite-components/dist/components/calcite-action-menu.js")])}destroy(){this._slider.destroy(),this._tickFormat=null}get interactive(){return!this.disabled&&this.viewModel&&"disabled"!==this.viewModel.state}set layout(e){-1===["auto","compact","wide"].indexOf(e)&&(e="auto"),this._set("layout",e)}static async getPropertiesFromWebMap(e,t){return T.getPropertiesFromWebMap(e,t)}next(){}play(){}previous(){}stop(){return null}render(){const{_slider:e,actions:t,domNode:s,effectiveStops:n,fullTimeExtent:l,interactive:m,messages:u,messagesCommon:d,mode:c,tickConfigs:p,timeExtent:v,timeVisible:w,viewModel:{state:y,timeExtentValues:f}}=this;if(o(l)){const{start:t,end:i}=l;if(o(t)&&o(i)){const s=t.getTime(),n=i.getTime(),a=e.min!==s||e.max!==n;if(a&&(e.min=s,e.max=n),o(p))e.tickConfigs!==p&&(e.tickConfigs=p);else{var x;const t=(n-s)/((null==(x=e.trackElement)?void 0:x.offsetWidth)||400),i=C.find((e=>e.minor.toMilliseconds()>M*t)),o=this._tickFormat!==i&&null!=i;if(o&&(this._tickFormat=i),a||o){const t={mode:"position",values:this._getTickPositions(i.minor),labelsVisible:!1,tickCreatedFunction:(e,t)=>{t.classList.add(S.sliderMinorTick)}},s={mode:"position",values:this._getTickPositions(i.major),labelsVisible:!0,tickCreatedFunction:(e,t)=>{t.classList.add(S.sliderMajorTick)},labelFormatFunction:e=>h(e,i.format)};e.tickConfigs=[t,s]}}}}const b=a(this.fullTimeExtent)||a(this.timeExtent)||this.timeExtent.isAllTime||this.timeExtent.isEmpty||o(this.timeExtent.start)&&(this.timeExtent.start<this.fullTimeExtent.start||this.timeExtent.start>this.fullTimeExtent.end)||o(this.timeExtent.end)&&(this.timeExtent.end>this.fullTimeExtent.end||this.timeExtent.end<this.fullTimeExtent.start);if(b)switch(this._ignoreNextSliderUpdate=!0,c){case"time-window":e.values=[e.min,e.max];break;case"instant":case"cumulative-from-end":e.values=[e.min];break;case"cumulative-from-start":e.values=[e.max]}else o(f)?i(e.values,f)||(e.values=f):e.values=null;e.disabled=!m;const _="ready"===y,T="playing"===y,E=b||!m||a(n)||0===n.length,D="auto"===this.layout?s.clientWidth<$?"compact":"wide":this.layout,F=g("div",{class:S.animation},g("button",{"aria-disabled":E?"true":"false","aria-label":T?d.control.stop:d.control.play,bind:this,class:this.classes(S.esriWidgetButton,S.animationButton,E&&S.esriButtonDisabled),disabled:E,title:T?d.control.stop:d.control.play,onclick:this._playOrStopClick,type:"button"},g("div",{class:this.classes((_||E)&&S.animationPlay,T&&S.animationPause)}))),B=o(this.labelFormatFunction)?g("div",{key:"extent",bind:this,class:S.timeExtentDate,"data-type":"extent","data-layout":D,"data-date":r(v,(e=>[e.start,e.end])),afterCreate:this._createLabel,afterUpdate:this._createLabel}):a(v)||o(v)&&v.isAllTime?[g("div",{class:this.classes(S.warning,S.warningIcon)}),g("div",{key:"warning-text",class:S.warningText},u.noTimeExtent)]:v.isEmpty?[g("div",{class:this.classes(S.warning,S.warningIcon)}),g("div",{key:"warning-text",class:S.warningText},u.emptyTimeExtent)]:[o(v.start)&&g("div",{key:"start-date-group",class:S.timeExtentGroup},g("div",{key:"start-date",class:S.timeExtentDate},this._formatDate(v.start)),w&&g("div",{key:"start-time",class:S.timeExtentTime},this._formatTime(v.start))),o(v.start)&&o(v.end)&&v.start.getTime()!==v.end.getTime()&&g("div",{key:"separator",class:S.timeExtentSeparator},"–"),o(v.end)&&(a(v.start)||v.start.getTime()!==v.end.getTime())&&g("div",{key:"end-date-group",class:S.timeExtentGroup},g("div",{key:"end-date",class:S.timeExtentDate},this._formatDate(v.end)),w&&g("div",{key:"end-time",class:S.timeExtentTime},this._formatTime(v.end)))],L=g("div",{class:this.classes(S.timeExtent,!m&&S.esriButtonDisabled)},[B]),U=o(this.labelFormatFunction)?g("div",{key:"min-date",bind:this,class:S.minDate,"data-date":r(l,(e=>e.start)),"data-type":"min","data-layout":D,afterCreate:this._createLabel,afterUpdate:this._createLabel}):o(l)&&o(l.start)&&[g("div",{key:"min-date",class:S.minDate},this._formatDate(l.start)),w&&g("div",{key:"min-time",class:S.minTime},this._formatTime(l.start))],W=g("div",{class:this.classes(S.min,!m&&S.esriButtonDisabled)},[U]),I=g("div",{class:S.slider},e.render()),O=o(this.labelFormatFunction)?g("div",{key:"max-date",bind:this,class:S.maxDate,"data-date":r(l,(e=>e.end)),"data-type":"max","data-layout":D,afterCreate:this._createLabel,afterUpdate:this._createLabel}):o(l)&&o(l.end)&&[g("div",{key:"max-date",class:S.maxDate},this._formatDate(l.end)),w&&g("div",{key:"max-time",class:S.maxTime},this._formatTime(l.end))],P=g("div",{class:this.classes(S.max,!m&&S.esriButtonDisabled)},[O]),A=g("div",{class:S.previous},g("button",{"aria-disabled":E?"true":"false","aria-label":d.pagination.previous,bind:this,class:this.classes(S.esriWidgetButton,S.previousButton,(T||E)&&S.esriButtonDisabled),disabled:E,title:d.pagination.previous,onclick:this._previousClick,type:"button"},g("div",{class:S.previousIcon}))),R=g("div",{class:S.next},g("button",{"aria-disabled":E?"true":"false","aria-label":d.pagination.next,bind:this,class:this.classes(S.esriWidgetButton,S.nextButton,(T||E)&&S.esriButtonDisabled),disabled:E,title:d.pagination.next,onclick:this._nextClick,type:"button"},g("div",{class:S.nextIcon}))),V=(null==t?void 0:t.length)>0,N=V&&g("div",{class:S.actions,title:d.options},g("calcite-action-menu",{label:d.options,class:S.actionsButton},t.toArray().map((e=>g("calcite-action",{bind:this,icon:e.icon,id:e.id,onCalciteActionClick:()=>this.viewModel.triggerAction(e),text:e.title,textEnabled:!0})))));return g("div",{class:this.classes(S.timeSlider,S.esriWidget,`${S.timeSliderMode}${c}`,`${S.timeSliderLayout}${D}`,!m&&S.esriDisabled,b&&S.timeSliderOutOfBounds,V&&S.hasActions,j()),afterCreate:e=>{this.own(k(e,(()=>this.scheduleRender())))},"aria-label":u.widgetLabel},"wide"===D&&g("div",{class:S.timeSliderRow},g("div",{class:S.playbackControls},[F,L,W,I,P,A,R]),N),"compact"===D&&[g("div",{key:"time-slider-row-1",class:S.timeSliderRow},[L,N]),g("div",{key:"time-slider-row-2",class:S.timeSliderRow},[I]),g("div",{key:"time-slider-row-3",class:S.timeSliderRow},[W,A,F,R,P])])}updateWebDocument(e){var t;null==(t=this.viewModel)||t.updateWebDocument(e)}_createLabel(e){if(a(this.labelFormatFunction))return;const t=e.getAttribute("data-type"),i=e.getAttribute("data-layout"),s=e["data-date"];this.labelFormatFunction(s,t,e,i)}_getTickPositions(e){const{fullTimeExtent:t}=this;if(a(t)||a(t.start)||a(t.end))return[];const{start:i,end:s}=t,n=[],{value:o,unit:r}=e;let l=u(i,r);for(;l.getTime()<=s.getTime();)l.getTime()>=i.getTime()&&n.push(l.getTime()),l=d(l,o,r);return n}_formatDate(e){return e?h(e,w("short-date")):null}_formatTime(e){return e?h(e,w("long-time")):null}_updateSliderSteps(){this._slider.steps=o(this.effectiveStops)&&this.effectiveStops.length>0?this.effectiveStops.map((e=>e.getTime())):null}_playOrStopClick(){switch(this.viewModel.state){case"ready":this.viewModel.play();break;case"playing":this.viewModel.stop();break;case"disabled":break;default:n(this.viewModel.state)}}_previousClick(){this.viewModel.previous()}_nextClick(){this.viewModel.next()}};e([c("viewModel.actions")],D.prototype,"actions",void 0),e([p()],D.prototype,"disabled",void 0),e([c("viewModel.effectiveStops")],D.prototype,"effectiveStops",void 0),e([c("viewModel.fullTimeExtent")],D.prototype,"fullTimeExtent",void 0),e([p()],D.prototype,"iconClass",void 0),e([p({readOnly:!0})],D.prototype,"interactive",null),e([p({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],D.prototype,"label",void 0),e([p()],D.prototype,"labelFormatFunction",void 0),e([p({value:"auto"})],D.prototype,"layout",null),e([c("viewModel.loop")],D.prototype,"loop",void 0),e([p(),b("esri/widgets/TimeSlider/t9n/TimeSlider")],D.prototype,"messages",void 0),e([p(),b("esri/t9n/common")],D.prototype,"messagesCommon",void 0),e([c("viewModel.mode")],D.prototype,"mode",void 0),e([c("viewModel.playRate")],D.prototype,"playRate",void 0),e([c("viewModel.stops")],D.prototype,"stops",void 0),e([p()],D.prototype,"tickConfigs",void 0),e([c("viewModel.timeExtent")],D.prototype,"timeExtent",void 0),e([p({nonNullable:!0})],D.prototype,"timeVisible",void 0),e([c("viewModel.view")],D.prototype,"view",void 0),e([p({type:T}),_("trigger-action")],D.prototype,"viewModel",void 0),e([c("viewModel.next")],D.prototype,"next",null),e([c("viewModel.play")],D.prototype,"play",null),e([c("viewModel.previous")],D.prototype,"previous",null),e([c("viewModel.stop")],D.prototype,"stop",null),e([x()],D.prototype,"_playOrStopClick",null),e([x()],D.prototype,"_previousClick",null),e([x()],D.prototype,"_nextClick",null),D=e([v("esri.widgets.TimeSlider")],D);const F=D;export{F as default};
package/widgets/Widget.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{deprecated as t}from"../core/deprecate.js";import{byId as r}from"../core/domUtils.js";import s from"../core/Evented.js";import o from"../core/Handles.js";import"../core/has.js";import{clone as i}from"../core/lang.js";import n from"../core/Logger.js";import{destroyMaybe as a}from"../core/maybe.js";import{EsriPromiseMixin as d}from"../core/Promise.js";import{debounce as l,throwIfNotAbortError as c,eachAlways as p}from"../core/promiseUtils.js";import{generateUUID as h}from"../core/uuid.js";import{init as m,whenOnce as u}from"../core/watchUtils.js";import{property as g}from"../core/accessorSupport/decorators/property.js";import{cast as y}from"../core/accessorSupport/decorators/cast.js";import{subclass as v}from"../core/accessorSupport/decorators/subclass.js";import{runTracked as _}from"../core/accessorSupport/tracking.js";import{SimpleTrackingTarget as f}from"../core/accessorSupport/tracking/SimpleTrackingTarget.js";import{createAdvancedProjector as j}from"../libs/maquette-advanced-projector/projector.js";import{commitAssetPath as w}from"./support/componentsUtils.js";import{isWidgetConstructor as k,processWidgets as b,WIDGET_SYMBOL as R}from"./support/jsxWidgetSupport.js";import{classes as S}from"./support/widgetUtils.js";import{getThemeName as C}from"./support/widgetThemeUtils.js";import{onLocaleChange as T}from"../intl/locale.js";import{fetchMessageBundle as H}from"../intl/messages.js";const P="esri.widgets.Widget",E=n.getLogger(P);let L=0;const N=new Map,I={widgetIcon:"esri-icon-checkbox-unchecked"};function U(e,t){for(const r in t)null!=e[r]&&("object"==typeof e[r]&&"object"==typeof t[r]?U(e[r],t[r]):e[r]=t[r]);return e}const F=j({postProcessProjectionOptions(e){const t=e.eventHandlerInterceptor,r=/capture$/i;e.eventHandlerInterceptor=(e,s,o,i)=>{const n=t(e,s,o,i),a=r.test(e);if(!((e=e.replace(r,"")).toLowerCase()in o)||a){const t=e[2].toLowerCase()+e.slice(3),r=e=>n.call(o,e);o.addEventListener(t,r,a);const s=()=>o.removeEventListener(t,r,a),d=i.afterRemoved;i.afterRemoved=e=>{null==d||d(e),s()}}return n}},handleInterceptedEvent(e,t,r,s){const{eventPhase:o,type:i}=s,n=o===Event.CAPTURING_PHASE;let a=`on${i}${n?"capture":""}`;const d=t.properties;(a in d||(a=`on${i[0].toUpperCase()}${i.slice(1)}${n?"Capture":""}`,a in d))&&(N.clear(),e.scheduleRender(),d[a].call(d.bind||r,s))}});let $=!1,x=class extends(d(s.EventedAccessor)){constructor(e,r){super(e,r),this._attached=!1,this._internalHandles=new o,this._projector=F,this._readyForTrueRender=!1,this.domNode=null,this.iconClass=I.widgetIcon,this.label=this.declaredClass.split(".").pop(),this.visible=!0,this.key=this,this._loadLocale=l((async()=>{if(this._messageBundleProps&&this._messageBundleProps.length){const e=await p(this._messageBundleProps.map((async({bundlePath:e,propertyName:t})=>{let r=await H(e);this.uiStrings&&Object.keys(this.uiStrings)&&(r=U(i(r),this.uiStrings)),this[t]=r})));for(const t of e)t.error&&E.error("widget-intl:locale-error",this.declaredClass,t.error)}await this.loadLocale()})),w();const s=["light","dark"],n=C()||"light";s.includes(n)||t(E,"The following themes are deprecated: light-blue, dark-blue, light-green, dark-green, light-purple, dark-purple, light-red, and dark-red.",{version:"4.19",warnOnce:!0,see:"https://developers.arcgis.com/javascript/latest/styling/"});const a="esri-widget-uid-"+h(),d=this.render.bind(this);this._trackingTarget=new f((()=>this.scheduleRender()));const c=()=>{var e;if(!this._readyForTrueRender||this.destroyed)return null;if(!this.visible)return{vnodeSelector:"div",properties:{key:a,class:"",styles:{display:"none"}},domNode:void 0,children:void 0,text:void 0};const t=d();let{properties:r}=t;r||(t.properties=r={});let{key:s,styles:o}=r;s||(r.key=a),o||(r.styles=o={}),o.display||(o.display="");let i=0;return null==(e=t.children)||e.forEach((e=>{if(k(e.vnodeSelector))return;let{properties:t}=e;t||(e.properties=t={}),t.key||(t.key=`${this.id}--${i++}`)})),b(this,t)};this.render=()=>{if($)return c();let e=N.get(this);if(e)return e;this._trackingTarget.clear(),$=!0;try{e=_(this._trackingTarget,c)}finally{$=!1}return N.set(this,e),e},this.addResolvingPromise(this._resourcesFetch=this.beforeFirstRender().then((()=>{this._readyForTrueRender=!0,this._postInitialize()})))}normalizeCtorArgs(e,t){const r={...e};return t&&(r.container=t),r}postInitialize(){}beforeFirstRender(){return Promise.all([this.loadDependencies(),this._loadLocale()]).then((()=>{})).catch(c)}async loadDependencies(){}async loadLocale(){}destroy(){this.destroyed||(this._trackingTarget=a(this._trackingTarget),this.viewModel=a(this.viewModel),this._detach(this.container),this._set("container",null),this._internalHandles.destroy(),this._emitter.clear(),this.render=()=>null,this._projector=null,N.delete(this))}set container(e){this._get("container")||this._set("container",e)}castContainer(e){return r(e)}get id(){return this._get("id")||this.get("container.id")||Date.now().toString(16)+"-widget-"+L++}set id(e){e&&this._set("id",e)}get renderable(){return this._resourcesFetch}get test(){return{projector:this._projector,handles:this._internalHandles}}render(){throw new Error("not implemented")}scheduleRender(){this.destroyed||(N.delete(this),this._projector.scheduleRender())}classes(...e){return S.apply(this,e)}own(e){arguments.length>1&&(e=Array.prototype.slice.call(arguments)),this._internalHandles.add(e)}renderNow(){N.delete(this),this._projector.renderNow()}_postInitialize(){var e;if(this.destroyed)return;this.scheduleRender(),null!=(e=this._delegatedEventNames)&&e.length&&this._internalHandles.add(m(this,"viewModel",((e,t)=>{t&&this._internalHandles.remove("delegated-events"),e&&this._internalHandles.add(this._delegatedEventNames.map((t=>e.on(t,(e=>{this.emit(t,e)})))),"delegated-events")}))),this.postInitialize();const t=async()=>{await this._loadLocale().catch(c),this.scheduleRender()};this._internalHandles.add([T(t),this.watch("uiStrings",t),u(this,"container",(async e=>{this.destroyed||this._attach(e)}))])}_attach(e){e&&(this._projector.merge(e,this.render),this._attached=!0)}_detach(e){e&&this._attached&&(this._projector.detach(this.render),e.parentNode&&e.parentNode.removeChild(e),this._attached=!1)}};x[R]=!0,e([g()],x.prototype,"_readyForTrueRender",void 0),e([g({value:null})],x.prototype,"container",null),e([y("container")],x.prototype,"castContainer",null),e([g({aliasOf:"container"})],x.prototype,"domNode",void 0),e([g()],x.prototype,"iconClass",void 0),e([g()],x.prototype,"id",null),e([g()],x.prototype,"label",void 0),e([g()],x.prototype,"renderable",null),e([g()],x.prototype,"uiStrings",void 0),e([g()],x.prototype,"viewModel",void 0),e([g()],x.prototype,"visible",void 0),e([g()],x.prototype,"key",void 0),e([g()],x.prototype,"children",void 0),e([g()],x.prototype,"afterCreate",void 0),e([g()],x.prototype,"afterUpdate",void 0),e([g()],x.prototype,"afterRemoved",void 0),x=e([v(P)],x);const z=x;export{z as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{deprecated as t}from"../core/deprecate.js";import{byId as r}from"../core/domUtils.js";import o from"../core/Evented.js";import s from"../core/Handles.js";import"../core/has.js";import{clone as i}from"../core/lang.js";import n from"../core/Logger.js";import{destroyMaybe as a}from"../core/maybe.js";import{EsriPromiseMixin as d}from"../core/Promise.js";import{debounce as l,throwIfNotAbortError as c,eachAlways as p}from"../core/promiseUtils.js";import{generateUUID as h}from"../core/uuid.js";import{init as m,whenOnce as u}from"../core/watchUtils.js";import{property as g}from"../core/accessorSupport/decorators/property.js";import{cast as y}from"../core/accessorSupport/decorators/cast.js";import{subclass as v}from"../core/accessorSupport/decorators/subclass.js";import{runTracked as _}from"../core/accessorSupport/tracking.js";import{SimpleTrackingTarget as f}from"../core/accessorSupport/tracking/SimpleTrackingTarget.js";import{createAdvancedProjector as j}from"../libs/maquette-advanced-projector/projector.js";import{commitAssetPath as w}from"./support/componentsUtils.js";import{isWidgetConstructor as k,processWidgets as b,WIDGET_SYMBOL as R}from"./support/jsxWidgetSupport.js";import{getVNodeCache as S,setVNodeCache as C,deleteVNodeCache as T,clearVNodeCache as H}from"./support/vnodeCache.js";import{classes as P}from"./support/widgetUtils.js";import{getThemeName as E}from"./support/widgetThemeUtils.js";import{onLocaleChange as L}from"../intl/locale.js";import{fetchMessageBundle as N}from"../intl/messages.js";const I="esri.widgets.Widget",U=n.getLogger(I);let F=0;const $={widgetIcon:"esri-icon-checkbox-unchecked"};function x(e,t){for(const r in t)null!=e[r]&&("object"==typeof e[r]&&"object"==typeof t[r]?x(e[r],t[r]):e[r]=t[r]);return e}const z=j({postProcessProjectionOptions(e){const t=e.eventHandlerInterceptor,r=/capture$/i;e.eventHandlerInterceptor=(e,o,s,i)=>{const n=t(e,o,s,i),a=r.test(e);if(!((e=e.replace(r,"")).toLowerCase()in s)||a){const t=e[2].toLowerCase()+e.slice(3),r=e=>n.call(s,e);s.addEventListener(t,r,a);const o=()=>s.removeEventListener(t,r,a),d=i.afterRemoved;i.afterRemoved=e=>{null==d||d(e),o()}}return n}},handleInterceptedEvent(e,t,r,o){const{eventPhase:s,type:i}=o,n=s===Event.CAPTURING_PHASE;let a=`on${i}${n?"capture":""}`;const d=t.properties;(a in d||(a=`on${i[0].toUpperCase()}${i.slice(1)}${n?"Capture":""}`,a in d))&&(H(),e.scheduleRender(),d[a].call(d.bind||r,o))}});let A=!1,M=class extends(d(o.EventedAccessor)){constructor(e,r){super(e,r),this._attached=!1,this._internalHandles=new s,this._projector=z,this._readyForTrueRender=!1,this.domNode=null,this.iconClass=$.widgetIcon,this.label=this.declaredClass.split(".").pop(),this.visible=!0,this.key=this,this._loadLocale=l((async()=>{if(this._messageBundleProps&&this._messageBundleProps.length){const e=await p(this._messageBundleProps.map((async({bundlePath:e,propertyName:t})=>{let r=await N(e);this.uiStrings&&Object.keys(this.uiStrings)&&(r=x(i(r),this.uiStrings)),this[t]=r})));for(const t of e)t.error&&U.error("widget-intl:locale-error",this.declaredClass,t.error)}await this.loadLocale()})),w();const o=["light","dark"],n=E()||"light";o.includes(n)||t(U,"The following themes are deprecated: light-blue, dark-blue, light-green, dark-green, light-purple, dark-purple, light-red, and dark-red.",{version:"4.19",warnOnce:!0,see:"https://developers.arcgis.com/javascript/latest/styling/"});const a="esri-widget-uid-"+h(),d=this.render.bind(this);this._trackingTarget=new f((()=>this.scheduleRender()));const c=()=>{var e;if(!this._readyForTrueRender||this.destroyed)return null;if(!this.visible)return{vnodeSelector:"div",properties:{key:a,class:"",styles:{display:"none"}},domNode:void 0,children:void 0,text:void 0};const t=d();let{properties:r}=t;r||(t.properties=r={});let{key:o,styles:s}=r;o||(r.key=a),s||(r.styles=s={}),s.display||(s.display="");let i=0;return null==(e=t.children)||e.forEach((e=>{if(k(e.vnodeSelector))return;let{properties:t}=e;t||(e.properties=t={}),t.key||(t.key=`${this.id}--${i++}`)})),b(this,t)};this.render=()=>{if(A)return c();let e=S(this);if(e)return e;this._trackingTarget.clear(),A=!0;try{e=_(this._trackingTarget,c)}finally{A=!1}return C(this,e),e},this.addResolvingPromise(this._resourcesFetch=this.beforeFirstRender().then((()=>{this._readyForTrueRender=!0,this._postInitialize()})))}normalizeCtorArgs(e,t){const r={...e};return t&&(r.container=t),r}postInitialize(){}beforeFirstRender(){return Promise.all([this.loadDependencies(),this._loadLocale()]).then((()=>{})).catch(c)}async loadDependencies(){}async loadLocale(){}destroy(){this.destroyed||(this._trackingTarget=a(this._trackingTarget),this.viewModel=a(this.viewModel),this._detach(this.container),this._set("container",null),this._internalHandles.destroy(),this._emitter.clear(),this.render=()=>null,this._projector=null,T(this))}set container(e){this._get("container")||this._set("container",e)}castContainer(e){return r(e)}get id(){return this._get("id")||this.get("container.id")||Date.now().toString(16)+"-widget-"+F++}set id(e){e&&this._set("id",e)}get renderable(){return this._resourcesFetch}get test(){return{projector:this._projector,handles:this._internalHandles}}render(){throw new Error("not implemented")}scheduleRender(){this.destroyed||(T(this),this._projector.scheduleRender())}classes(...e){return P.apply(this,e)}own(e){arguments.length>1&&(e=Array.prototype.slice.call(arguments)),this._internalHandles.add(e)}renderNow(){T(this),this._projector.renderNow()}_postInitialize(){var e;if(this.destroyed)return;this.scheduleRender(),null!=(e=this._delegatedEventNames)&&e.length&&this._internalHandles.add(m(this,"viewModel",((e,t)=>{t&&this._internalHandles.remove("delegated-events"),e&&this._internalHandles.add(this._delegatedEventNames.map((t=>e.on(t,(e=>{this.emit(t,e)})))),"delegated-events")}))),this.postInitialize();const t=async()=>{await this._loadLocale().catch(c),this.scheduleRender()};this._internalHandles.add([L(t),this.watch("uiStrings",t),u(this,"container",(async e=>{this.destroyed||this._attach(e)}))])}_attach(e){e&&(this._projector.merge(e,this.render),this._attached=!0)}_detach(e){e&&this._attached&&(this._projector.detach(this.render),e.parentNode&&e.parentNode.removeChild(e),this._attached=!1)}};M[R]=!0,e([g()],M.prototype,"_readyForTrueRender",void 0),e([g({value:null})],M.prototype,"container",null),e([y("container")],M.prototype,"castContainer",null),e([g({aliasOf:"container"})],M.prototype,"domNode",void 0),e([g()],M.prototype,"iconClass",void 0),e([g()],M.prototype,"id",null),e([g()],M.prototype,"label",void 0),e([g()],M.prototype,"renderable",null),e([g()],M.prototype,"uiStrings",void 0),e([g()],M.prototype,"viewModel",void 0),e([g()],M.prototype,"visible",void 0),e([g()],M.prototype,"key",void 0),e([g()],M.prototype,"children",void 0),e([g()],M.prototype,"afterCreate",void 0),e([g()],M.prototype,"afterUpdate",void 0),e([g()],M.prototype,"afterRemoved",void 0),M=e([v(I)],M);const O=M;export{O as default};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
+ */
5
+ const n=new Map;function t(){n.clear()}function e(t){return n.get(t)}function c(t,e){n.set(t,e)}function o(t){n.delete(t)}export{t as clearVNodeCache,o as deleteVNodeCache,e as getVNodeCache,c as setVNodeCache};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import e from"@esri/arcgis-html-sanitizer";import t from"../../core/ArrayPool.js";import{makeHandle as n}from"../../core/handleUtils.js";import"../../core/has.js";import r from"../../core/Logger.js";var i,o,s=function(e){if("WebkitTransition"in e.style)i="webkitTransitionEnd",o="webkitAnimationEnd";else{if(!("transition"in e.style))throw new Error("Your browser is not supported!");i="transitionend",o="animationend"}},a=function(e){i||s(e)},l=function(e,t){return void 0===t&&(t=e+"-active"),function(n){a(n);var r=!1,s=function(a){r||(r=!0,n.removeEventListener(i,s),n.removeEventListener(o,s),n.classList.remove(e),n.classList.remove(t))};n.classList.add(e),n.addEventListener(i,s),n.addEventListener(o,s),requestAnimationFrame((function(){n.classList.add(t)}))}},c=function(e,t){return void 0===t&&(t=e+"-active"),function(n,r){a(n);var s=!1,l=function(e){s||(s=!0,n.removeEventListener(i,l),n.removeEventListener(o,l),r())};n.classList.add(e),n.addEventListener(i,l),n.addEventListener(o,l),requestAnimationFrame((function(){n.classList.add(t)}))}};const d=r.getLogger("esri.widgets.support.widgetUtils");function u(e){const n=t.acquire();for(let t=0;t<arguments.length;t++){const e=arguments[t],r=typeof e;if("string"===r)n.push(e);else if(Array.isArray(e))n.push.apply(n,e);else if("object"===r)for(const t in e)e[t]&&n.push(t)}const r=n.join(" ");return t.release(n),r}const p=(()=>{const e=new Map,t=new ResizeObserver((t=>{for(const n of t)e.get(n.target)(n)}));return(r,i,o)=>(e.has(r)&&d.error("Already observing element",r),e.set(r,i),t.observe(r,o),n((()=>{t.unobserve(r),e.delete(r)})))})();function g(e){const t=null==e?void 0:e.closest("[dir]");return null!==t&&t instanceof HTMLElement&&"rtl"===t.dir||"rtl"===document.dir}function f(e){return g(e)?"rtl":"ltr"}function m(e){const t="data-node-ref";this[e.getAttribute(t)]=null}function h(e){const t="data-node-ref";this[e.getAttribute(t)]=e}function v(e,t){return("enter"===e?l:c)(t)}const w=["dd","dl","dt","h1","h2","h3","h4","h5","h6","sub","sup",...["animate","animatetransform","circle","clippath","defs","ellipse","g","image","line","lineargradient","marker","mask","path","pattern","polygon","polyline","radialgradient","rect","stop","svg","switch","symbol","text","textpath","tspan","use"]],L=w.reduce(((e,t)=>(e[t]=[],e)),{}),b=["align","alink","alt","bgcolor","border","cellpadding","cellspacing","class","color","cols","colspan","coords","d","dir","face","height","hspace","ismap","lang","marginheight","marginwidth","multiple","nohref","noresize","noshade","nowrap","ref","rel","rev","rows","rowspan","scrolling","shape","span","summary","tabindex","title","usemap","valign","value","vlink","vspace","width"],y=new e({whiteList:L,onTagAttr:(e,t,n)=>{const r=`${t}="${n}"`;if(b.includes(t))return r},stripIgnoreTag:!0,stripIgnoreTagBody:["script","style"]},!0);function E(e,t){const n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.top+n.height,o=r.top+r.height,s=n.top,a=r.top;(i>o||s<a)&&e.scrollIntoView({block:"end"})}function A(e){return"Enter"===e||" "===e}export{w as additionalAllowedTags,u as classes,v as cssTransition,m as discardNode,f as getDir,A as isActivationKey,g as isRTL,E as keepMenuItemWithinView,p as onResize,y as renderingSanitizer,b as safeAttrs,h as storeNode};
5
+ import e from"@esri/arcgis-html-sanitizer";import t from"../../core/ArrayPool.js";import{makeHandle as n}from"../../core/handleUtils.js";import"../../core/has.js";import r from"../../core/Logger.js";import{clearVNodeCache as i}from"./vnodeCache.js";var o,s,a=function(e){if("WebkitTransition"in e.style)o="webkitTransitionEnd",s="webkitAnimationEnd";else{if(!("transition"in e.style))throw new Error("Your browser is not supported!");o="transitionend",s="animationend"}},c=function(e){o||a(e)},l=function(e,t){return void 0===t&&(t=e+"-active"),function(n){c(n);var r=!1,i=function(a){r||(r=!0,n.removeEventListener(o,i),n.removeEventListener(s,i),n.classList.remove(e),n.classList.remove(t))};n.classList.add(e),n.addEventListener(o,i),n.addEventListener(s,i),requestAnimationFrame((function(){n.classList.add(t)}))}},d=function(e,t){return void 0===t&&(t=e+"-active"),function(n,r){c(n);var i=!1,a=function(e){i||(i=!0,n.removeEventListener(o,a),n.removeEventListener(s,a),r())};n.classList.add(e),n.addEventListener(o,a),n.addEventListener(s,a),requestAnimationFrame((function(){n.classList.add(t)}))}};const u=r.getLogger("esri.widgets.support.widgetUtils");function p(e){const n=t.acquire();for(let t=0;t<arguments.length;t++){const e=arguments[t],r=typeof e;if("string"===r)n.push(e);else if(Array.isArray(e))n.push.apply(n,e);else if("object"===r)for(const t in e)e[t]&&n.push(t)}const r=n.join(" ");return t.release(n),r}const g=(()=>{const e=new Map,t=new ResizeObserver((t=>{i();for(const n of t)e.get(n.target)(n)}));return(r,i,o)=>(e.has(r)&&u.error("Already observing element",r),e.set(r,i),t.observe(r,o),n((()=>{t.unobserve(r),e.delete(r)})))})();function f(e){const t=null==e?void 0:e.closest("[dir]");return null!==t&&t instanceof HTMLElement&&"rtl"===t.dir||"rtl"===document.dir}function m(e){return f(e)?"rtl":"ltr"}function h(e){const t="data-node-ref";this[e.getAttribute(t)]=null}function v(e){const t="data-node-ref";this[e.getAttribute(t)]=e}function w(e,t){return("enter"===e?l:d)(t)}const L=["dd","dl","dt","h1","h2","h3","h4","h5","h6","sub","sup",...["animate","animatetransform","circle","clippath","defs","ellipse","g","image","line","lineargradient","marker","mask","path","pattern","polygon","polyline","radialgradient","rect","stop","svg","switch","symbol","text","textpath","tspan","use"]],b=L.reduce(((e,t)=>(e[t]=[],e)),{}),y=["align","alink","alt","bgcolor","border","cellpadding","cellspacing","class","color","cols","colspan","coords","d","dir","face","height","hspace","ismap","lang","marginheight","marginwidth","multiple","nohref","noresize","noshade","nowrap","ref","rel","rev","rows","rowspan","scrolling","shape","span","summary","tabindex","title","usemap","valign","value","vlink","vspace","width"],E=new e({whiteList:b,onTagAttr:(e,t,n)=>{const r=`${t}="${n}"`;if(y.includes(t))return r},stripIgnoreTag:!0,stripIgnoreTagBody:["script","style"]},!0);function A(e,t){const n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.top+n.height,o=r.top+r.height,s=n.top,a=r.top;(i>o||s<a)&&e.scrollIntoView({block:"end"})}function k(e){return"Enter"===e||" "===e}export{L as additionalAllowedTags,p as classes,w as cssTransition,h as discardNode,m as getDir,k as isActivationKey,f as isRTL,A as keepMenuItemWithinView,g as onResize,E as renderingSanitizer,y as safeAttrs,v as storeNode};