@arcgis/core 5.1.0-next.18 → 5.1.0-next.19

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 (662) hide show
  1. package/Camera.d.ts +1 -1
  2. package/Ground.d.ts +7 -7
  3. package/PopupTemplate.d.ts +6 -6
  4. package/WebScene.d.ts +1 -1
  5. package/analysis/AreaMeasurementAnalysis.d.ts +1 -1
  6. package/analysis/DirectLineMeasurementAnalysis.d.ts +1 -1
  7. package/analysis/LengthDimension.d.ts +4 -4
  8. package/analysis/ShadowCastAnalysis.d.ts +3 -3
  9. package/analysis/SliceAnalysis.d.ts +1 -1
  10. package/analysis/SlicePlane.d.ts +1 -1
  11. package/analysis/VolumeMeasurement/VolumeMeasurementCutFillOptions.d.ts +1 -1
  12. package/analysis/VolumeMeasurementAnalysis.d.ts +1 -1
  13. package/applications/Components/applySetUtils.d.ts +1 -1
  14. package/applications/WebEditor/geometryUtils.d.ts +26 -0
  15. package/applications/WebEditor/geometryUtils.js +2 -0
  16. package/assets/esri/core/workers/RemoteClient.js +1 -1
  17. package/assets/esri/core/workers/chunks/045e4e520d6dffe06ba7.js +1 -0
  18. package/assets/esri/core/workers/chunks/05d6cd51ca970705e46a.js +1 -0
  19. package/assets/esri/core/workers/chunks/{fd125618f513bc2f5206.js → 08d73543c713984f6ecf.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{982e709d2cef971ecd82.js → 0d9d33f29124d464a4cb.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{07317f6b57c1314db442.js → 0e1d559d05229ef92e35.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{2762149a922275136171.js → 112227b862b935123ddf.js} +2 -2
  23. package/assets/esri/core/workers/chunks/128cdb4a02549abc68b5.js +1 -0
  24. package/assets/esri/core/workers/chunks/1336f685bae5f1251558.js +1 -0
  25. package/assets/esri/core/workers/chunks/{b71e4f48377fefe2537d.js → 15d46482ec096e3ce161.js} +1 -1
  26. package/assets/esri/core/workers/chunks/1794db88a2006711eff3.js +1 -0
  27. package/assets/esri/core/workers/chunks/{a327f36561f093dc0fab.js → 19fcc74d34cbbaa56a41.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{d0d1378e714ff0e43e26.js → 1cfa8d404d42b9eccf78.js} +1 -1
  29. package/assets/esri/core/workers/chunks/1e916e552ce7d53692d2.js +1 -0
  30. package/assets/esri/core/workers/chunks/2011da6dfc4bb89829c6.js +1 -0
  31. package/assets/esri/core/workers/chunks/{1e29a114c1cfe21121c4.js → 203ef5459fc5dde12851.js} +1 -1
  32. package/assets/esri/core/workers/chunks/215c54520d0da638fe57.js +1 -0
  33. package/assets/esri/core/workers/chunks/22045f85e503ae0ec8f4.js +1 -0
  34. package/assets/esri/core/workers/chunks/{78fc7ef00cc4931ef47d.js → 2351b713ba3d05de0728.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{0a4ebb5dca630a4ab0dd.js → 236f8137ae505c8f0764.js} +1 -1
  36. package/assets/esri/core/workers/chunks/249630af2fb01257eb75.js +1 -0
  37. package/assets/esri/core/workers/chunks/{1f30558e3ad6ac68bdb8.js → 25d34552bfb255af9467.js} +1 -1
  38. package/assets/esri/core/workers/chunks/{7cd4280d24b24045bd7e.js → 27e14277128446e76b45.js} +1 -1
  39. package/assets/esri/core/workers/chunks/3214763f268622f09986.js +1 -0
  40. package/assets/esri/core/workers/chunks/32a1ccc145c9f6091e13.js +1 -0
  41. package/assets/esri/core/workers/chunks/34691b147318b2cfdd45.js +1 -0
  42. package/assets/esri/core/workers/chunks/{18c05353d6d8950d1491.js → 36215b2c0b1020743458.js} +1 -1
  43. package/assets/esri/core/workers/chunks/3d3b1ce112be6ea31d93.js +1 -0
  44. package/assets/esri/core/workers/chunks/{2badadf8032e166b34ec.js → 3f3c63420644f9522ab1.js} +1 -1
  45. package/assets/esri/core/workers/chunks/41108f58f0f439ebba3f.js +1 -0
  46. package/assets/esri/core/workers/chunks/{bc9997d15ec0a86793c6.js → 415957a42e45eb21aa84.js} +1 -1
  47. package/assets/esri/core/workers/chunks/43c797bfc2191b51875b.js +1 -0
  48. package/assets/esri/core/workers/chunks/460a82f3e4838b13e3b4.js +1 -0
  49. package/assets/esri/core/workers/chunks/4ad6f80488aa218b95e3.js +1 -0
  50. package/assets/esri/core/workers/chunks/4e9863a11d09900baf30.js +1 -0
  51. package/assets/esri/core/workers/chunks/4fe210314813ea1f7a26.js +1 -0
  52. package/assets/esri/core/workers/chunks/5028de543cc1b8e60e65.js +1 -0
  53. package/assets/esri/core/workers/chunks/52705ccbb452a3edb064.js +1 -0
  54. package/assets/esri/core/workers/chunks/{17b39b88547968048113.js → 531c55f3b8e708ccf767.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{72acfb74fd9ab9bae923.js → 53e348f5585fa8c53fe8.js} +2 -2
  56. package/assets/esri/core/workers/chunks/54c545f44b7ce21fb604.js +1 -0
  57. package/assets/esri/core/workers/chunks/558e9fed2e58cbbf9947.js +1 -0
  58. package/assets/esri/core/workers/chunks/{b50d2d3379654de1f2f3.js → 58134617fb7530836b81.js} +1 -1
  59. package/assets/esri/core/workers/chunks/58c4be467a922fe37f01.js +1 -0
  60. package/assets/esri/core/workers/chunks/{ec4e2f18453e1cb68fed.js → 5f10f39835cb40179000.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{7b1964255722e756eba3.js → 5f9eeab833a6c08c76c4.js} +1 -1
  62. package/assets/esri/core/workers/chunks/651b46aeabf22ff53a38.js +1 -0
  63. package/assets/esri/core/workers/chunks/65f86594c42ff82095fe.js +1 -0
  64. package/assets/esri/core/workers/chunks/{90316fb569389d48920f.js → 666f201d222c50ab8428.js} +1 -1
  65. package/assets/esri/core/workers/chunks/677f5e444ff588ab670f.js +1 -0
  66. package/assets/esri/core/workers/chunks/{323f6077a659416c4cee.js → 6a9a96aa811c1d3b6edb.js} +1 -1
  67. package/assets/esri/core/workers/chunks/6bf7d8de86b9eb76f920.js +1 -0
  68. package/assets/esri/core/workers/chunks/6c0b7890c8eec7febe28.js +1 -0
  69. package/assets/esri/core/workers/chunks/{25c189e894927099c239.js → 6c85396c90941a042c33.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{18b0776aef1536867ab8.js → 6f337c3ccd84d90a35e5.js} +1 -1
  71. package/assets/esri/core/workers/chunks/711bec78dc00fad0f78d.js +1 -0
  72. package/assets/esri/core/workers/chunks/7382c9882525101eddad.js +1 -0
  73. package/assets/esri/core/workers/chunks/778ab9e4c3928b0d7d74.js +1 -0
  74. package/assets/esri/core/workers/chunks/{a3e8b7185d63a0f85931.js → 79c69ae86a1f4a56f7c7.js} +1 -1
  75. package/assets/esri/core/workers/chunks/{0420fb4b3592f8a26b1f.js → 7d2b1e5402a88b6bee85.js} +1 -1
  76. package/assets/esri/core/workers/chunks/7ec83fc059325e207825.js +1 -0
  77. package/assets/esri/core/workers/chunks/7f385e9c88df3395e678.js +1 -0
  78. package/assets/esri/core/workers/chunks/{66ed527cd8ad11d008be.js → 80d51d58db09b9f96cb5.js} +1 -1
  79. package/assets/esri/core/workers/chunks/81a45d7e9dadf678b584.js +1 -0
  80. package/assets/esri/core/workers/chunks/81c758bdc07ed9d9a132.js +1 -0
  81. package/assets/esri/core/workers/chunks/{8670d9d11950f3c61b79.js → 83711695e16912e9b9c5.js} +1 -1
  82. package/assets/esri/core/workers/chunks/8c3bf66f8543cedc72ef.js +1 -0
  83. package/assets/esri/core/workers/chunks/8cade3af17a8bb6d4e37.js +1 -0
  84. package/assets/esri/core/workers/chunks/920d6330df72e2f01d19.js +1 -0
  85. package/assets/esri/core/workers/chunks/9dc7abca1d1eb9ba5b58.js +1 -0
  86. package/assets/esri/core/workers/chunks/9e054c264b17f04b7efa.js +1 -0
  87. package/assets/esri/core/workers/chunks/a143a6f8e2f21548b244.js +1 -0
  88. package/assets/esri/core/workers/chunks/a48a6232fa33084cb686.js +1 -0
  89. package/assets/esri/core/workers/chunks/a4947d5d2fa6b7bd399b.js +1 -0
  90. package/assets/esri/core/workers/chunks/a49f1172b17c14527acf.js +1 -0
  91. package/assets/esri/core/workers/chunks/{6af14a0217077d9ab47f.js → aaf3ed508d30ed583915.js} +1 -1
  92. package/assets/esri/core/workers/chunks/{ab9156be67332338bbe4.js → aceec85ce64a3e6d8761.js} +1 -1
  93. package/assets/esri/core/workers/chunks/b10b3eb8c2ed9be14ab2.js +1 -0
  94. package/assets/esri/core/workers/chunks/b315b3771d0d19681aa5.js +1 -0
  95. package/assets/esri/core/workers/chunks/{91858b02da40ff251ab2.js → b397a9f87082705301a4.js} +2 -2
  96. package/assets/esri/core/workers/chunks/b40e4ed067da65c3d7ce.js +1 -0
  97. package/assets/esri/core/workers/chunks/b4b16914950792c46bd3.js +1 -0
  98. package/assets/esri/core/workers/chunks/{360b3499e2a671c309ce.js → b6969a42602517a6ef1c.js} +1 -1
  99. package/assets/esri/core/workers/chunks/baad696d84ab78b3d00e.js +2 -0
  100. package/assets/esri/core/workers/chunks/{2e7d4a437717606bc39c.js → bc2dcbdc414d157ab727.js} +1 -1
  101. package/assets/esri/core/workers/chunks/{1aa2187597f7c4adb67f.js → bcb254cb7297fec88679.js} +1 -1
  102. package/assets/esri/core/workers/chunks/{2d1a772abd730b61854f.js → bd2125e0a68378533641.js} +1 -1
  103. package/assets/esri/core/workers/chunks/{6bd910e0480451a8d6aa.js → bde2c3199f667b63dbe8.js} +1 -1
  104. package/assets/esri/core/workers/chunks/bf595eb10f99b8a96baa.js +1 -0
  105. package/assets/esri/core/workers/chunks/c0b6706f86665cec85f8.js +1 -0
  106. package/assets/esri/core/workers/chunks/{12fd2e26e949d90abfbd.js → c3c6d337ff53e5d921e8.js} +1 -1
  107. package/assets/esri/core/workers/chunks/c461c19e4fdbdd2e94d4.js +1 -0
  108. package/assets/esri/core/workers/chunks/{4214f46bee613dea72f3.js → c66aa57b6360963bd938.js} +1 -1
  109. package/assets/esri/core/workers/chunks/c873ac660e7d5dc88781.js +1 -0
  110. package/assets/esri/core/workers/chunks/c99f36159b5ed6f9267e.js +1 -0
  111. package/assets/esri/core/workers/chunks/cb5f4820277f3fc7ff2f.js +1 -0
  112. package/assets/esri/core/workers/chunks/cbcb3530375e280bfeac.js +1 -0
  113. package/assets/esri/core/workers/chunks/cf4202ad468501ef24cf.js +1 -0
  114. package/assets/esri/core/workers/chunks/d03d50f3247327257d8b.js +1 -0
  115. package/assets/esri/core/workers/chunks/{a5af20f3d484d2d3bafe.js → d2017b0b27b9e4ada922.js} +1 -1
  116. package/assets/esri/core/workers/chunks/d2d9c1f32a75befe168b.js +1 -0
  117. package/assets/esri/core/workers/chunks/{5c12a9b0db317620dce2.js → d39f5d57f7e35c00ca16.js} +1 -1
  118. package/assets/esri/core/workers/chunks/d5b4487a983921572e58.js +1 -0
  119. package/assets/esri/core/workers/chunks/d78b2f85ec9212a973e8.js +1 -0
  120. package/assets/esri/core/workers/chunks/d9dc8d9fc8ab2706f96b.js +1 -0
  121. package/assets/esri/core/workers/chunks/{09cf8aed89a1ea1f8b28.js → da42da04a9df651b06cc.js} +1 -1
  122. package/assets/esri/core/workers/chunks/{a82587f69c4bbcac7e0b.js → dc7df2072c0ebed5602c.js} +1 -1
  123. package/assets/esri/core/workers/chunks/dd24cddc406f610d2483.js +1 -0
  124. package/assets/esri/core/workers/chunks/dd3789e71270a4640551.js +1 -0
  125. package/assets/esri/core/workers/chunks/de5719ef663224860af5.js +1 -0
  126. package/assets/esri/core/workers/chunks/de6438fdbe38d32c4ad5.js +1 -0
  127. package/assets/esri/core/workers/chunks/ded71a656e2626a411f9.js +1 -0
  128. package/assets/esri/core/workers/chunks/df1fa0f7e8f7e2bcc2e6.js +1 -0
  129. package/assets/esri/core/workers/chunks/{b705f837caa76cee81fc.js → e09722903e63f6cc2540.js} +1 -1
  130. package/assets/esri/core/workers/chunks/e2e03622936d2b35afc0.js +1 -0
  131. package/assets/esri/core/workers/chunks/e33f5780fb45ac7ca889.js +1 -0
  132. package/assets/esri/core/workers/chunks/{eb9e913fe0dfcc71cf92.js → e4611ebd7dba7692a914.js} +1 -1
  133. package/assets/esri/core/workers/chunks/e52793690dff1a199647.js +1 -0
  134. package/assets/esri/core/workers/chunks/{c13efb74aa4602f6a1ee.js → e56a10a475ce128b5fce.js} +1 -1
  135. package/assets/esri/core/workers/chunks/{9531f17cecd50431cce2.js → e8ae71e482b8d5f54a72.js} +1 -1
  136. package/assets/esri/core/workers/chunks/ea633a6a3b9ea8ce965d.js +1 -0
  137. package/assets/esri/core/workers/chunks/eae1c098c16e2faaf90d.js +1 -0
  138. package/assets/esri/core/workers/chunks/{f7e25a85a79c4e3c1c9f.js → ec63c0fa21cd3c872633.js} +1 -1
  139. package/assets/esri/core/workers/chunks/ece363681bb09072f379.js +1 -0
  140. package/assets/esri/core/workers/chunks/edaae0fc63d16b0f675d.js +2 -0
  141. package/assets/esri/core/workers/chunks/{8650fbe1db55b7280c00.js → ef4237dc7b67c9039826.js} +1 -1
  142. package/assets/esri/core/workers/chunks/ef9106ee818ec732b670.js +1 -0
  143. package/assets/esri/core/workers/chunks/f121a0bf33c03abfa0b6.js +1 -0
  144. package/assets/esri/core/workers/chunks/{a2f38e86acf45272dbc2.js → f7506c9d57b2ae0c5fd3.js} +1 -1
  145. package/assets/esri/core/workers/chunks/fab7e3e07d700d7bb651.js +1 -0
  146. package/assets/esri/core/workers/chunks/fcc8d0b60f7c2397e550.js +1 -0
  147. package/assets/esri/core/workers/chunks/fe5aec7e2da4465422b4.js +1 -0
  148. package/assets/esri/themes/base/widgets/_BasemapGallery.scss +1 -0
  149. package/assets/esri/themes/base/widgets/_Editor.scss +1 -0
  150. package/assets/esri/themes/dark/main.css +1 -1
  151. package/assets/esri/themes/light/main.css +1 -1
  152. package/assets/esri/themes/light/view.css +1 -1
  153. package/chunks/Envelope.js +1 -1
  154. package/chunks/GeodeticDistanceCalculator-Ce-woMPw.js +1 -1
  155. package/chunks/GeodeticUtils.js +1 -1
  156. package/chunks/Geometry.js +1 -1
  157. package/chunks/MultiPathImpl.js +1 -1
  158. package/chunks/OperatorGeodesicBuffer.js +1 -1
  159. package/chunks/OperatorGeodeticArea.js +1 -1
  160. package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
  161. package/chunks/OperatorGeodeticLength.js +1 -1
  162. package/chunks/OperatorIntegrate.js +2 -0
  163. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  164. package/chunks/OperatorProximityGeodesic.js +1 -1
  165. package/chunks/OperatorShapePreservingLength.js +1 -1
  166. package/chunks/OperatorShapePreservingProject.js +1 -1
  167. package/chunks/Point2D.js +1 -1
  168. package/chunks/SpatialReference.js +1 -1
  169. package/chunks/containsOperator.js +1 -1
  170. package/chunks/disjointOperator.js +1 -1
  171. package/chunks/relateOperator.js +1 -1
  172. package/config.js +1 -1
  173. package/core/has.js +1 -1
  174. package/editing/sharedTemplates/SharedTemplateMetadata.d.ts +0 -31
  175. package/{layers/graphics/editingSupport.d.ts → editing/types.d.ts} +8 -8
  176. package/editing/types.js +2 -0
  177. package/effects/FocusAreas.d.ts +1 -1
  178. package/form/elements/FieldElement.d.ts +1 -1
  179. package/form/elements/GroupElement.d.ts +1 -1
  180. package/form/elements/TextElement.d.ts +1 -1
  181. package/form/elements/inputs/ComboBoxInput.d.ts +1 -1
  182. package/form/elements/inputs/RadioButtonsInput.d.ts +1 -1
  183. package/form/elements/inputs/SwitchInput.d.ts +1 -1
  184. package/geometry/Mesh.d.ts +7 -7
  185. package/geometry/operators/alphaShapeOperator.d.ts +1 -1
  186. package/geometry/operators/areaOperator.d.ts +1 -1
  187. package/geometry/operators/bufferOperator.d.ts +1 -1
  188. package/geometry/operators/centroidOperator.d.ts +1 -1
  189. package/geometry/operators/clipOperator.d.ts +1 -1
  190. package/geometry/operators/containsOperator.d.ts +1 -1
  191. package/geometry/operators/convexHullOperator.d.ts +1 -1
  192. package/geometry/operators/crossesOperator.d.ts +1 -1
  193. package/geometry/operators/cutOperator.d.ts +1 -1
  194. package/geometry/operators/densifyOperator.d.ts +1 -1
  195. package/geometry/operators/differenceOperator.d.ts +1 -1
  196. package/geometry/operators/disjointOperator.d.ts +1 -1
  197. package/geometry/operators/distanceOperator.d.ts +1 -1
  198. package/geometry/operators/extendOperator.js +1 -1
  199. package/geometry/operators/generalizeOperator.d.ts +1 -1
  200. package/geometry/operators/geodesicProximityOperator.d.ts +1 -1
  201. package/geometry/operators/geodeticDistanceOperator.d.ts +1 -1
  202. package/geometry/operators/geodeticUtilsOperator.d.ts +2 -2
  203. package/geometry/operators/graphicBufferOperator.d.ts +1 -1
  204. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  205. package/geometry/operators/gx/operatorAutoComplete.js +1 -1
  206. package/geometry/operators/gx/operatorConvexHull.js +1 -1
  207. package/geometry/operators/gx/operatorIntegrate.js +1 -1
  208. package/geometry/operators/gx/operatorIntersection.js +1 -1
  209. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  210. package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
  211. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  212. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  213. package/geometry/operators/intersectionOperator.d.ts +1 -1
  214. package/geometry/operators/intersectsOperator.d.ts +1 -1
  215. package/geometry/operators/isNearOperator.d.ts +1 -1
  216. package/geometry/operators/json/containsOperator.js +1 -1
  217. package/geometry/operators/json/disjointOperator.js +1 -1
  218. package/geometry/operators/lengthOperator.d.ts +1 -1
  219. package/geometry/operators/locateBetweenOperator.d.ts +1 -1
  220. package/geometry/operators/multiPartToSinglePartOperator.d.ts +1 -1
  221. package/geometry/operators/offsetOperator.d.ts +5 -5
  222. package/geometry/operators/overlapsOperator.d.ts +1 -1
  223. package/geometry/operators/proximityOperator.d.ts +1 -1
  224. package/geometry/operators/reshapeOperator.js +1 -1
  225. package/geometry/operators/simplifyOGCOperator.d.ts +1 -1
  226. package/geometry/operators/simplifyOperator.d.ts +1 -1
  227. package/geometry/operators/support/GeographicTransformation.d.ts +6 -4
  228. package/geometry/operators/support/GeographicTransformation.js +1 -1
  229. package/geometry/operators/support/GeographicTransformationStep.d.ts +5 -3
  230. package/geometry/operators/support/GeographicTransformationStep.js +1 -1
  231. package/geometry/operators/support/Transformation.d.ts +6 -6
  232. package/geometry/operators/support/jsonConverter.js +1 -1
  233. package/geometry/operators/support/projectionTransformation.js +1 -1
  234. package/geometry/operators/symmetricDifferenceOperator.d.ts +1 -1
  235. package/geometry/operators/touchesOperator.d.ts +1 -1
  236. package/geometry/operators/unionOperator.d.ts +1 -1
  237. package/geometry/operators/withinOperator.d.ts +1 -1
  238. package/geometry/support/MeshMaterialMetallicRoughness.d.ts +1 -1
  239. package/geometry/support/zscale.js +1 -1
  240. package/graphic/KnowledgeGraphGraphicOrigin.d.ts +0 -1
  241. package/graphic/LinkChartGraphicOrigin.js +1 -1
  242. package/interfaces.d.ts +60 -60
  243. package/kernel.js +1 -1
  244. package/layers/BuildingSceneLayer.d.ts +4 -4
  245. package/layers/CSVLayer.d.ts +319 -542
  246. package/layers/CSVLayer.js +1 -1
  247. package/layers/CatalogLayer.d.ts +2 -2
  248. package/layers/ElevationLayer.d.ts +1 -1
  249. package/layers/FeatureLayer.d.ts +15 -15
  250. package/layers/FeatureLayer.js +1 -1
  251. package/layers/GeoJSONLayer.d.ts +6 -6
  252. package/layers/GeoRSSLayer.d.ts +1 -1
  253. package/layers/GraphicsLayer.d.ts +2 -2
  254. package/layers/ImageryLayer.d.ts +3 -3
  255. package/layers/ImageryTileLayer.d.ts +2 -2
  256. package/layers/IntegratedMesh3DTilesLayer.d.ts +6 -6
  257. package/layers/IntegratedMeshLayer.d.ts +7 -7
  258. package/layers/MapImageLayer.d.ts +1 -1
  259. package/layers/MediaLayer.d.ts +1 -1
  260. package/layers/OGCFeatureLayer.d.ts +2 -2
  261. package/layers/OrientedImageryLayer.d.ts +6 -6
  262. package/layers/OrientedImageryLayer.js +1 -1
  263. package/layers/PointCloudLayer.d.ts +1 -1
  264. package/layers/SceneLayer.d.ts +7 -7
  265. package/layers/StreamLayer.d.ts +2 -2
  266. package/layers/SubtypeGroupLayer.d.ts +5 -5
  267. package/layers/VectorTileLayer.d.ts +2 -2
  268. package/layers/VideoLayer.d.ts +1 -1
  269. package/layers/VoxelLayer.d.ts +8 -8
  270. package/layers/WFSLayer.d.ts +6 -6
  271. package/layers/catalog/CatalogFootprintLayer.d.ts +1 -1
  272. package/layers/graphics/applyEditsUtils.js +1 -1
  273. package/layers/graphics/data/QueryEngineCapabilities.js +1 -1
  274. package/layers/graphics/data/QueryEngineResult.js +1 -1
  275. package/layers/graphics/editingSupport.js +1 -1
  276. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  277. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  278. package/layers/graphics/sources/support/CSVSourceWorker.js +1 -1
  279. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  280. package/layers/graphics/sources/support/QueryTask.js +1 -1
  281. package/layers/mixins/ArcGISImageService.js +1 -1
  282. package/layers/mixins/BlendLayer.d.ts +6 -6
  283. package/layers/mixins/EditBusLayer.d.ts +1 -1
  284. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  285. package/layers/orientedImagery/transformations/utils.js +1 -1
  286. package/layers/pointCloudFilters/PointCloudReturnFilter.d.ts +1 -1
  287. package/layers/pointCloudFilters/PointCloudValueFilter.d.ts +1 -1
  288. package/layers/raster/datasets/ImageServerRaster.js +1 -1
  289. package/layers/raster/functions/ExtractBandFunction.js +1 -1
  290. package/layers/support/DimensionalDefinition.d.ts +2 -2
  291. package/layers/support/FeatureEffect.d.ts +4 -4
  292. package/layers/support/FeatureFilter.d.ts +17 -17
  293. package/layers/support/FeatureReductionBinning.d.ts +1 -1
  294. package/layers/support/FeatureReductionCluster.d.ts +9 -9
  295. package/layers/support/LabelClass.d.ts +2 -2
  296. package/layers/support/RasterFunction.d.ts +1 -1
  297. package/layers/support/SceneFilter.d.ts +2 -2
  298. package/layers/support/SceneModification.d.ts +3 -3
  299. package/layers/support/SubtypeSublayer.d.ts +5 -5
  300. package/layers/support/arcgisLayerUrl.js +1 -1
  301. package/layers/support/capabilities.js +1 -1
  302. package/layers/support/featurePopupQueryUtils.js +1 -1
  303. package/layers/support/serviceCapabilitiesUtils.js +1 -1
  304. package/networks/support/Circuit.d.ts +11 -2
  305. package/networks/support/CircuitSection.d.ts +3 -2
  306. package/networks/support/TraceConfiguration.d.ts +5 -4
  307. package/networks/support/UNTraceConfiguration.d.ts +6 -5
  308. package/networks/support/jsonTypes.d.ts +305 -0
  309. package/package.json +3 -3
  310. package/popup/content/AttachmentsContent.d.ts +1 -1
  311. package/popup/content/BarChartMediaInfo.d.ts +1 -1
  312. package/popup/content/ColumnChartMediaInfo.d.ts +1 -1
  313. package/popup/content/FieldsContent.d.ts +1 -1
  314. package/popup/content/ImageMediaInfo.d.ts +1 -1
  315. package/popup/content/LineChartMediaInfo.d.ts +1 -1
  316. package/popup/content/MediaContent.d.ts +1 -1
  317. package/popup/content/PieChartMediaInfo.d.ts +1 -1
  318. package/popup/content/RelationshipContent.d.ts +1 -1
  319. package/popup/content/TextContent.d.ts +1 -1
  320. package/portal/schemas/definitions.js +1 -1
  321. package/portal/support/urlUtils.js +1 -1
  322. package/renderers/DotDensityRenderer.d.ts +3 -3
  323. package/renderers/FlowRenderer.d.ts +6 -6
  324. package/renderers/HeatmapRenderer.d.ts +3 -3
  325. package/renderers/PieChartRenderer.d.ts +1 -1
  326. package/renderers/RasterShadedReliefRenderer.d.ts +1 -1
  327. package/renderers/Renderer.d.ts +2 -2
  328. package/renderers/SimpleRenderer.d.ts +1 -1
  329. package/renderers/VectorFieldRenderer.d.ts +1 -1
  330. package/renderers/mixins/VisualVariablesMixin.d.ts +8 -8
  331. package/rest/featureService/FeatureService.js +1 -1
  332. package/rest/featureService/types.d.ts +7 -1
  333. package/rest/query/operations/editsZScale.js +1 -1
  334. package/rest/query/operations/pbfFlatFeatureSet.js +1 -1
  335. package/rest/query/support/AttachmentInfo.d.ts +1 -1
  336. package/rest/support/AutoIntervalBinParameters.d.ts +1 -1
  337. package/rest/support/DateBinParameters.d.ts +1 -1
  338. package/rest/support/FixedBoundariesBinParameters.d.ts +1 -1
  339. package/rest/support/FixedIntervalBinParameters.d.ts +1 -1
  340. package/rest/support/Query.d.ts +3 -2
  341. package/rest/types.d.ts +1 -3
  342. package/smartMapping/labels/clusters.d.ts +1 -1
  343. package/smartMapping/popup/clusters.d.ts +2 -2
  344. package/smartMapping/popup/templates.d.ts +1 -1
  345. package/smartMapping/raster/renderers/flow.d.ts +2 -2
  346. package/smartMapping/renderers/color.d.ts +12 -12
  347. package/smartMapping/renderers/predominance.d.ts +3 -3
  348. package/smartMapping/renderers/relationship.d.ts +15 -15
  349. package/smartMapping/renderers/univariateColorSize.d.ts +4 -4
  350. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  351. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  352. package/smartMapping/support/utils.js +1 -1
  353. package/smartMapping/symbology/color.d.ts +4 -4
  354. package/smartMapping/symbology/flow.d.ts +2 -2
  355. package/smartMapping/symbology/types.d.ts +18 -18
  356. package/support/revision.js +1 -1
  357. package/symbols/CIMSymbol.d.ts +1 -1
  358. package/symbols/FillSymbol3DLayer.d.ts +3 -3
  359. package/symbols/IconSymbol3DLayer.d.ts +1 -1
  360. package/symbols/LabelSymbol3D.d.ts +2 -2
  361. package/symbols/LineStyleMarker3D.d.ts +7 -7
  362. package/symbols/LineSymbol3D.d.ts +2 -2
  363. package/symbols/LineSymbol3DLayer.d.ts +7 -7
  364. package/symbols/LineSymbolMarker.d.ts +6 -6
  365. package/symbols/MarkerSymbol.d.ts +1 -1
  366. package/symbols/MeshSymbol3D.d.ts +2 -2
  367. package/symbols/ObjectSymbol3DLayer.d.ts +1 -1
  368. package/symbols/PathSymbol3DLayer.d.ts +14 -14
  369. package/symbols/PictureFillSymbol.d.ts +1 -1
  370. package/symbols/PictureMarkerSymbol.d.ts +1 -1
  371. package/symbols/PointSymbol3D.d.ts +3 -3
  372. package/symbols/PolygonSymbol3D.d.ts +8 -26
  373. package/symbols/PolygonSymbol3D.js +1 -1
  374. package/symbols/SimpleFillSymbol.d.ts +8 -8
  375. package/symbols/SimpleLineSymbol.d.ts +20 -20
  376. package/symbols/SimpleMarkerSymbol.d.ts +7 -7
  377. package/symbols/Symbol3DLayer.d.ts +16 -16
  378. package/symbols/TextSymbol.d.ts +1 -1
  379. package/symbols/TextSymbol3DLayer.d.ts +1 -1
  380. package/symbols/WaterSymbol3DLayer.d.ts +3 -3
  381. package/symbols/WebStyleSymbol.d.ts +1 -1
  382. package/symbols/callouts/Callout3D.d.ts +1 -1
  383. package/symbols/callouts/LineCallout3D.d.ts +3 -3
  384. package/symbols/cim/CIMCursor.js +1 -1
  385. package/symbols/cim/CIMSymbolHelper.js +1 -1
  386. package/symbols/cim/cimAnalyzer.js +1 -1
  387. package/symbols/cim/placements/PlacementAlongLineSameSize.js +1 -1
  388. package/symbols/cim/placements/PlacementAtExtremities.js +1 -1
  389. package/symbols/cim/placements/PlacementAtMeasuredUnits.js +1 -1
  390. package/symbols/cim/placements/PlacementAtRatioPositions.js +1 -1
  391. package/symbols/cim/placements/PlacementOnLine.js +1 -1
  392. package/symbols/cim/placements/PlacementOnVertices.js +1 -1
  393. package/symbols/cim/types.d.ts +30 -23
  394. package/symbols/edges/Edges3D.d.ts +1 -1
  395. package/symbols/edges/SolidEdges3D.d.ts +1 -1
  396. package/symbols/patterns/LineStylePattern3D.d.ts +11 -11
  397. package/symbols/patterns/StylePattern3D.d.ts +8 -8
  398. package/symbols/support/ElevationInfo.d.ts +2 -2
  399. package/symbols/support/IconSymbol3DLayerResource.d.ts +6 -6
  400. package/symbols/support/ObjectSymbol3DLayerResource.d.ts +7 -7
  401. package/symbols/support/Symbol3DEmissive.d.ts +24 -13
  402. package/symbols/support/Symbol3DVerticalOffset.d.ts +2 -2
  403. package/symbols/support/previewSymbol3D.js +1 -1
  404. package/versionManagement/VersionManagementService.d.ts +3 -2
  405. package/views/2d/analysis/DistanceMeasurement/utils.js +1 -1
  406. package/views/2d/engine/webgl/shaderGraph/techniques/GraphicInstanceStore.js +1 -1
  407. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedPolyShader.js +1 -1
  408. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedFillShader.js +1 -1
  409. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
  410. package/views/2d/engine/webgl/shaderGraph/techniques/animated/attributes.js +1 -1
  411. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  412. package/views/2d/layers/BaseLayerViewGL2D.d.ts +1 -1
  413. package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
  414. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  415. package/views/2d/types.d.ts +3 -3
  416. package/views/3d/environment/CloudyWeather.d.ts +1 -1
  417. package/views/3d/environment/Environment.d.ts +4 -4
  418. package/views/3d/environment/FoggyWeather.d.ts +1 -1
  419. package/views/3d/environment/RainyWeather.d.ts +1 -1
  420. package/views/3d/environment/SnowyWeather.d.ts +1 -1
  421. package/views/3d/environment/SunLighting.d.ts +1 -1
  422. package/views/3d/environment/SunnyWeather.d.ts +1 -1
  423. package/views/3d/environment/VirtualLighting.d.ts +1 -1
  424. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  425. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  426. package/views/3d/support/MemoryController.js +1 -1
  427. package/views/3d/support/orientedBoundingBox.js +1 -1
  428. package/views/3d/webgl/RenderNode.d.ts +46 -57
  429. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  430. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  431. package/views/3d/webgl.d.ts +8 -5
  432. package/views/DOMContainer.js +1 -1
  433. package/views/Magnifier.d.ts +3 -3
  434. package/views/MapView.d.ts +7 -7
  435. package/views/SceneView.d.ts +34 -37
  436. package/views/View.d.ts +2 -2
  437. package/views/analysis/ElevationProfile/ElevationProfileChart.js +1 -1
  438. package/views/draw/DrawOperation.js +1 -1
  439. package/views/draw/DrawTool.js +1 -1
  440. package/views/draw/plugins/BezierSegmentPlugin.js +1 -1
  441. package/views/draw/plugins/CircularArcSegmentPlugin.js +1 -1
  442. package/views/draw/plugins/FreehandSegmentPlugin.js +1 -1
  443. package/views/draw/plugins/MultipointPlugin.js +1 -1
  444. package/views/draw/plugins/PointPlugin.js +1 -1
  445. package/views/draw/plugins/PolygonPlugin.js +1 -1
  446. package/views/draw/plugins/PolylinePlugin.js +1 -1
  447. package/views/draw/plugins/ShapePlugin.js +1 -1
  448. package/views/draw/support/managers/TooltipManager.js +1 -1
  449. package/views/interactive/sketch/SketchLabelOptions.d.ts +1 -1
  450. package/views/interactive/sketch/SketchTooltipOptions.d.ts +1 -1
  451. package/views/interactive/snapping/RightAngleSnapper.js +1 -1
  452. package/views/interactive/snapping/RightAngleTriangleSnapper.js +1 -1
  453. package/views/interactive/snapping/SnappingOptions.d.ts +7 -7
  454. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiledFetcher.js +1 -1
  455. package/views/interactive/tooltip/content/TooltipContentDynamic.js +1 -1
  456. package/views/interactive/tooltip/infos/DynamicTooltipInfo.js +1 -1
  457. package/views/layers/FeatureLikeLayerView.js +1 -1
  458. package/views/support/HighlightOptions.d.ts +1 -1
  459. package/views/support/flow/dataUtils.js +1 -1
  460. package/views/ui/DefaultUI.d.ts +2 -2
  461. package/webscene/Environment.d.ts +10 -10
  462. package/webscene/Glow.d.ts +13 -2
  463. package/webscene/background/ColorBackground.d.ts +1 -1
  464. package/webscene/spec-certification/spec.js +1 -1
  465. package/widgets/AreaMeasurement2D.d.ts +1 -1
  466. package/widgets/AreaMeasurement3D.d.ts +2 -2
  467. package/widgets/Attachments.d.ts +1 -1
  468. package/widgets/Attribution.d.ts +1 -1
  469. package/widgets/BasemapGallery.d.ts +1 -1
  470. package/widgets/BasemapLayerList.d.ts +3 -3
  471. package/widgets/BasemapToggle.d.ts +1 -1
  472. package/widgets/Bookmarks/BookmarksVisibleElements.d.ts +1 -1
  473. package/widgets/Bookmarks.d.ts +2 -2
  474. package/widgets/BuildingExplorer.d.ts +1 -1
  475. package/widgets/CatalogLayerList.d.ts +3 -3
  476. package/widgets/Compass.d.ts +2 -2
  477. package/widgets/CoordinateConversion.d.ts +1 -1
  478. package/widgets/Daylight.d.ts +5 -5
  479. package/widgets/DirectLineMeasurement3D.d.ts +2 -2
  480. package/widgets/Directions/DirectionsViewModel.d.ts +12 -0
  481. package/widgets/Directions/DirectionsViewModel.js +1 -1
  482. package/widgets/Directions.d.ts +4 -4
  483. package/widgets/Directions.js +1 -1
  484. package/widgets/DistanceMeasurement2D.d.ts +1 -1
  485. package/widgets/Editor/CreateFeaturesWorkflow.d.ts +1 -1
  486. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  487. package/widgets/Editor/SplitFeatureWorkflow.js +1 -1
  488. package/widgets/Editor.d.ts +2 -2
  489. package/widgets/ElevationProfile/ElevationProfileLineGround.d.ts +1 -1
  490. package/widgets/ElevationProfile/ElevationProfileLineInput.d.ts +1 -1
  491. package/widgets/ElevationProfile/ElevationProfileLineView.d.ts +1 -1
  492. package/widgets/ElevationProfile.d.ts +3 -3
  493. package/widgets/Expand.d.ts +1 -1
  494. package/widgets/FeatureForm.d.ts +1 -1
  495. package/widgets/FeatureTable/ActionColumn.d.ts +1 -1
  496. package/widgets/FeatureTable/AttachmentsColumn.d.ts +1 -1
  497. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +3 -3
  498. package/widgets/FeatureTable/Grid/GroupColumn.d.ts +1 -1
  499. package/widgets/FeatureTable/RelationshipColumn.d.ts +1 -1
  500. package/widgets/FeatureTable/VisibleElements.d.ts +1 -1
  501. package/widgets/FeatureTable.d.ts +9 -9
  502. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.d.ts +5 -5
  503. package/widgets/FeatureTemplates.d.ts +8 -8
  504. package/widgets/Features/FeaturesViewModel.d.ts +2 -2
  505. package/widgets/Features/FeaturesVisibleElements.d.ts +2 -2
  506. package/widgets/Features.d.ts +1 -1
  507. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  508. package/widgets/Histogram.d.ts +2 -2
  509. package/widgets/HistogramRangeSlider.d.ts +1 -1
  510. package/widgets/Home/HomeViewModel.d.ts +2 -1
  511. package/widgets/Home/HomeViewModel.js +1 -1
  512. package/widgets/Home.d.ts +1 -1
  513. package/widgets/Home.js +1 -1
  514. package/widgets/LayerList.d.ts +4 -4
  515. package/widgets/Legend.d.ts +8 -8
  516. package/widgets/LineOfSight.d.ts +1 -1
  517. package/widgets/Locate.d.ts +2 -2
  518. package/widgets/Measurement.d.ts +1 -1
  519. package/widgets/NavigationToggle/NavigationToggleViewModel.d.ts +1 -1
  520. package/widgets/NavigationToggle.d.ts +3 -3
  521. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  522. package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
  523. package/widgets/OrientedImageryViewer/adapters/sketch/TriangulatedMeasurementAdapter.js +1 -1
  524. package/widgets/OrientedImageryViewer/components/ImageLocationViewModel.js +1 -1
  525. package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
  526. package/widgets/OrientedImageryViewer/constants.js +1 -1
  527. package/widgets/OrientedImageryViewer/imageMeasurementUtils.js +1 -1
  528. package/widgets/OrientedImageryViewer/navigation/NavigationManager.js +1 -1
  529. package/widgets/OrientedImageryViewer/navigation/queries.js +1 -1
  530. package/widgets/OrientedImageryViewer/navigation/utils.js +1 -1
  531. package/widgets/OrientedImageryViewer/services/ImageMeasurementService.js +1 -1
  532. package/widgets/OrientedImageryViewer/services/TransformationService.js +1 -1
  533. package/widgets/OrientedImageryViewer/types.js +1 -1
  534. package/widgets/OrientedImageryViewer/videoViewerUtils.js +1 -1
  535. package/widgets/OrientedImageryViewer.js +1 -1
  536. package/widgets/Popup/PopupVisibleElements.d.ts +2 -2
  537. package/widgets/Popup.d.ts +5 -5
  538. package/widgets/Print/CustomTemplate.d.ts +1 -1
  539. package/widgets/Print/TemplateOptions.d.ts +4 -4
  540. package/widgets/ScaleRangeSlider.d.ts +1 -1
  541. package/widgets/Search/SearchViewModel.d.ts +4 -4
  542. package/widgets/Search.d.ts +5 -5
  543. package/widgets/ShadowCast.d.ts +3 -3
  544. package/widgets/Sketch/SketchViewModel.d.ts +39 -39
  545. package/widgets/Sketch/SketchViewModel.js +1 -1
  546. package/widgets/Sketch/support/PluginManager.js +1 -1
  547. package/widgets/Sketch.d.ts +43 -43
  548. package/widgets/Slice.d.ts +2 -2
  549. package/widgets/Slider/SliderViewModel.d.ts +2 -2
  550. package/widgets/Slider.d.ts +9 -9
  551. package/widgets/Swipe/SwipeViewModel.d.ts +1 -1
  552. package/widgets/Swipe.d.ts +2 -2
  553. package/widgets/TableList.d.ts +1 -1
  554. package/widgets/TimeSlider/TimeSliderViewModel.d.ts +8 -8
  555. package/widgets/TimeSlider/types.d.ts +1 -1
  556. package/widgets/TimeSlider.d.ts +11 -11
  557. package/widgets/Track.d.ts +2 -2
  558. package/widgets/UtilityNetworkAssociations.d.ts +3 -3
  559. package/widgets/UtilityNetworkTrace.d.ts +4 -4
  560. package/widgets/UtilityNetworkValidateTopology.d.ts +1 -1
  561. package/widgets/ValuePicker.d.ts +5 -5
  562. package/widgets/VideoPlayer.d.ts +1 -1
  563. package/widgets/smartMapping/ClassedColorSlider.d.ts +1 -1
  564. package/widgets/smartMapping/ClassedSizeSlider.d.ts +1 -1
  565. package/widgets/smartMapping/ColorSizeSlider.d.ts +2 -2
  566. package/widgets/smartMapping/ColorSlider.d.ts +1 -1
  567. package/widgets/smartMapping/HeatmapSlider.d.ts +1 -1
  568. package/widgets/smartMapping/OpacitySlider.d.ts +1 -1
  569. package/widgets/smartMapping/SizeSlider.d.ts +1 -1
  570. package/widgets/smartMapping/SmartMappingSliderBase.d.ts +4 -4
  571. package/widgets/smartMapping/SmartMappingSliderViewModel.d.ts +6 -6
  572. package/widgets/support/GridControls.d.ts +1 -1
  573. package/widgets/support/SnappingControls/VisibleElements.d.ts +1 -1
  574. package/widgets/support/SnappingControls.d.ts +6 -6
  575. package/assets/esri/core/workers/chunks/0184b4c0c92c76c60ab2.js +0 -1
  576. package/assets/esri/core/workers/chunks/08616877b58b518e7461.js +0 -1
  577. package/assets/esri/core/workers/chunks/089cef7124173a5cd5f9.js +0 -1
  578. package/assets/esri/core/workers/chunks/0baa0d66003d23cc76a7.js +0 -1
  579. package/assets/esri/core/workers/chunks/0baf2cf9d8998045a605.js +0 -1
  580. package/assets/esri/core/workers/chunks/0bf742d48f434c4c575f.js +0 -1
  581. package/assets/esri/core/workers/chunks/0cc68540194bd9f7aa3c.js +0 -1
  582. package/assets/esri/core/workers/chunks/0e216f0075fd531c3a2b.js +0 -1
  583. package/assets/esri/core/workers/chunks/1219b588f983b4f35033.js +0 -1
  584. package/assets/esri/core/workers/chunks/13e913aa5f5113fceb16.js +0 -1
  585. package/assets/esri/core/workers/chunks/15ba0296403dd4152b88.js +0 -1
  586. package/assets/esri/core/workers/chunks/15e5471277a48f482383.js +0 -1
  587. package/assets/esri/core/workers/chunks/16abc548724e428c325a.js +0 -1
  588. package/assets/esri/core/workers/chunks/1d124a55f6804be19e09.js +0 -1
  589. package/assets/esri/core/workers/chunks/1ede5fa7a16839ed9444.js +0 -1
  590. package/assets/esri/core/workers/chunks/25267253ba578eba38cf.js +0 -1
  591. package/assets/esri/core/workers/chunks/27aa21da934ecaca381a.js +0 -1
  592. package/assets/esri/core/workers/chunks/27d1f8279df34d8b15b5.js +0 -1
  593. package/assets/esri/core/workers/chunks/2907e9a7216b5a29729b.js +0 -1
  594. package/assets/esri/core/workers/chunks/2b0891ba57ba66b913ce.js +0 -1
  595. package/assets/esri/core/workers/chunks/2bb7bb7901bd343201fc.js +0 -1
  596. package/assets/esri/core/workers/chunks/2c7e5b78d94e5850537b.js +0 -1
  597. package/assets/esri/core/workers/chunks/2d52b137ee64469a46b2.js +0 -1
  598. package/assets/esri/core/workers/chunks/2eb7df99170b7bb2a914.js +0 -1
  599. package/assets/esri/core/workers/chunks/36b8dd092697ef544f40.js +0 -1
  600. package/assets/esri/core/workers/chunks/395ee51a863757ea8124.js +0 -1
  601. package/assets/esri/core/workers/chunks/3b0cfe3db8d90e02d6c6.js +0 -1
  602. package/assets/esri/core/workers/chunks/454150571b5b664b576a.js +0 -1
  603. package/assets/esri/core/workers/chunks/4740d319f233b7f528fe.js +0 -1
  604. package/assets/esri/core/workers/chunks/4742a8c19b86a5f859f0.js +0 -1
  605. package/assets/esri/core/workers/chunks/49d58bacb5b397246978.js +0 -1
  606. package/assets/esri/core/workers/chunks/4ba4aa6c75e3f8950e65.js +0 -1
  607. package/assets/esri/core/workers/chunks/59f955c7d6b0589e7cc6.js +0 -1
  608. package/assets/esri/core/workers/chunks/5a347b1d87eb6f710136.js +0 -1
  609. package/assets/esri/core/workers/chunks/5b97cdeb5949822fbef3.js +0 -1
  610. package/assets/esri/core/workers/chunks/5cd614f50e8925eeeaf4.js +0 -1
  611. package/assets/esri/core/workers/chunks/620d7cd0b0885122aa0f.js +0 -1
  612. package/assets/esri/core/workers/chunks/6321680c8070dffa3b6c.js +0 -1
  613. package/assets/esri/core/workers/chunks/7017c2e621236c7a7da4.js +0 -1
  614. package/assets/esri/core/workers/chunks/731e6eaad319865fb780.js +0 -1
  615. package/assets/esri/core/workers/chunks/7407a1e0cef508116a0b.js +0 -1
  616. package/assets/esri/core/workers/chunks/752c43cdd38dfde912d2.js +0 -1
  617. package/assets/esri/core/workers/chunks/78936c591fd49ff955a9.js +0 -1
  618. package/assets/esri/core/workers/chunks/796f5265747ce8be910e.js +0 -1
  619. package/assets/esri/core/workers/chunks/7b7288c431933a75daca.js +0 -1
  620. package/assets/esri/core/workers/chunks/7e6309bfed6692e8d2d7.js +0 -2
  621. package/assets/esri/core/workers/chunks/7f60309d211c49721265.js +0 -1
  622. package/assets/esri/core/workers/chunks/7f9b0ef7f9b3f3fd3df9.js +0 -1
  623. package/assets/esri/core/workers/chunks/8177e95596b71bf020aa.js +0 -1
  624. package/assets/esri/core/workers/chunks/9bb04d5f2e6f6e4585a0.js +0 -1
  625. package/assets/esri/core/workers/chunks/a03196e6579d738251fc.js +0 -1
  626. package/assets/esri/core/workers/chunks/a0b715cf03895082b773.js +0 -1
  627. package/assets/esri/core/workers/chunks/a115984b794a7f90b2c0.js +0 -1
  628. package/assets/esri/core/workers/chunks/a5e91cf150f6cf6a5d2a.js +0 -1
  629. package/assets/esri/core/workers/chunks/a60a84c8c45f6d03443f.js +0 -1
  630. package/assets/esri/core/workers/chunks/aec827b50df6edc54808.js +0 -1
  631. package/assets/esri/core/workers/chunks/aef2832902b270f1a594.js +0 -1
  632. package/assets/esri/core/workers/chunks/b0b24fb60a21b995b348.js +0 -1
  633. package/assets/esri/core/workers/chunks/bb830d93e97dceac350f.js +0 -1
  634. package/assets/esri/core/workers/chunks/bd05e68b00b9878d0266.js +0 -1
  635. package/assets/esri/core/workers/chunks/bd12ca39198e6efbefbb.js +0 -1
  636. package/assets/esri/core/workers/chunks/bdd246cc50ccd5c10987.js +0 -1
  637. package/assets/esri/core/workers/chunks/c080e189764d8bb9cf25.js +0 -1
  638. package/assets/esri/core/workers/chunks/c15f0769a64863cccef0.js +0 -1
  639. package/assets/esri/core/workers/chunks/c516b185b099bf69c0ed.js +0 -1
  640. package/assets/esri/core/workers/chunks/c53048b0f153b251d792.js +0 -1
  641. package/assets/esri/core/workers/chunks/c693e8eb96ab8a4b9cbe.js +0 -1
  642. package/assets/esri/core/workers/chunks/c9babe86c00ae69e63ee.js +0 -2
  643. package/assets/esri/core/workers/chunks/cf09408cb7729126caae.js +0 -1
  644. package/assets/esri/core/workers/chunks/d9c1e1ec5c56f09fb82f.js +0 -1
  645. package/assets/esri/core/workers/chunks/e0565849281ffbe8269e.js +0 -1
  646. package/assets/esri/core/workers/chunks/e1ba6f857ca12f154e77.js +0 -1
  647. package/assets/esri/core/workers/chunks/e4f1e584f89ffb86206b.js +0 -1
  648. package/assets/esri/core/workers/chunks/e60684918100666bb892.js +0 -1
  649. package/assets/esri/core/workers/chunks/e94448b371cd17d7a472.js +0 -1
  650. package/assets/esri/core/workers/chunks/ed78e19b1e400c0db309.js +0 -1
  651. package/assets/esri/core/workers/chunks/ede1d1cc2f315a34f4ca.js +0 -1
  652. package/assets/esri/core/workers/chunks/f17a301516f008abef3a.js +0 -1
  653. package/assets/esri/core/workers/chunks/fc98b8351be567d3eb62.js +0 -1
  654. package/assets/esri/core/workers/chunks/fd5a5b05a1551cdb8c87.js +0 -1
  655. package/assets/esri/core/workers/chunks/fda0f4469d9cda637af4.js +0 -1
  656. package/assets/esri/core/workers/chunks/fe52117fe6982046c9e3.js +0 -1
  657. package/assets/esri/core/workers/chunks/ff961bb6d29ab3fe129d.js +0 -1
  658. /package/assets/esri/core/workers/chunks/{2762149a922275136171.js.LICENSE.txt → 112227b862b935123ddf.js.LICENSE.txt} +0 -0
  659. /package/assets/esri/core/workers/chunks/{72acfb74fd9ab9bae923.js.LICENSE.txt → 53e348f5585fa8c53fe8.js.LICENSE.txt} +0 -0
  660. /package/assets/esri/core/workers/chunks/{7e6309bfed6692e8d2d7.js.LICENSE.txt → b397a9f87082705301a4.js.LICENSE.txt} +0 -0
  661. /package/assets/esri/core/workers/chunks/{91858b02da40ff251ab2.js.LICENSE.txt → baad696d84ab78b3d00e.js.LICENSE.txt} +0 -0
  662. /package/assets/esri/core/workers/chunks/{c9babe86c00ae69e63ee.js.LICENSE.txt → edaae0fc63d16b0f675d.js.LICENSE.txt} +0 -0
@@ -310,7 +310,7 @@ export interface SketchViewModelEvents {
310
310
  * For example, the sample [Filter SceneLayer with FeatureFilter](https://developers.arcgis.com/javascript/latest/sample-code/layers-scenelayer-feature-masking/) demonstrates
311
311
  * an example of utilizing the SketchViewModel with a custom UI.
312
312
  *
313
- * [![layers-scenelayer-feature-masking](https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-vm-custom.png)](https://developers.arcgis.com/javascript/latest/sample-code/layers-scenelayer-feature-masking/)
313
+ * [![layers-scenelayer-feature-masking](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-vm-custom.png)](https://developers.arcgis.com/javascript/latest/sample-code/layers-scenelayer-feature-masking/)
314
314
  *
315
315
  * Additionally, users can pick and choose which draw tools are relevant to their applications. In this example, only the `point`, `polyline`, and `polygon` tools are used.
316
316
  *
@@ -327,10 +327,10 @@ export interface SketchViewModelEvents {
327
327
  *
328
328
  * Gesture | Action | Example |
329
329
  * ---------|---------|---------|
330
- * Z | Incrementally undo actions recorded in the stack. The undo/redo stack is for an individual sketch operation, meaning you can redo/undo actions while creating or updating a graphic. | <img alt="Undo" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/undo-line.gif" width="400px"> |
331
- * R | Incrementally redo actions recorded in the stack. The undo/redo stack is for an individual sketch operation, meaning you can redo/undo actions while creating or updating a graphic. | <img alt="Redo" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/redo-line.gif" width="400px"> |
332
- * Ctrl | Toggle snapping dependent on the configuration in [snappingOptions](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/#snappingOptions). | <img alt="Ctrl key" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/ctrl-key-polygon.gif" width="400px"> |
333
- * Tab | While drawing or updating features, activate the tooltips' input mode to enter values or apply constraints. Depends on [tooltipOptions](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/#tooltipOptions) configuration. | <img alt="Tab key" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/tab-key-editing-constraints.gif" width="400px"> |
330
+ * Z | Incrementally undo actions recorded in the stack. The undo/redo stack is for an individual sketch operation, meaning you can redo/undo actions while creating or updating a graphic. | <img alt="Undo" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/undo-line.gif" width="400px"> |
331
+ * R | Incrementally redo actions recorded in the stack. The undo/redo stack is for an individual sketch operation, meaning you can redo/undo actions while creating or updating a graphic. | <img alt="Redo" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/redo-line.gif" width="400px"> |
332
+ * Ctrl | Toggle snapping dependent on the configuration in [snappingOptions](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/#snappingOptions). | <img alt="Ctrl key" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/ctrl-key-polygon.gif" width="400px"> |
333
+ * Tab | While drawing or updating features, activate the tooltips' input mode to enter values or apply constraints. Depends on [tooltipOptions](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/#tooltipOptions) configuration. | <img alt="Tab key" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/tab-key-editing-constraints.gif" width="400px"> |
334
334
  *
335
335
  * #### Creating point graphics
336
336
  *
@@ -345,12 +345,12 @@ export interface SketchViewModelEvents {
345
345
  *
346
346
  * Gesture | Action | Example |
347
347
  * ---------|---------|---------|
348
- * Left-click | Adds a vertex at the pointer location. | <img alt="Left-click" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/left-click-line.gif" width="400px"> |
349
- * Left-drag | Adds a vertex for each pointer move in [hybrid](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/#defaultCreateOptions) or [freehand](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/#defaultCreateOptions) mode. | <img alt="Left drag" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/left-drag-line.gif" width="400px"> |
350
- * F | Adds a vertex to the `polyline` or `polygon` graphic. Completes the `rectangle` or `circle` polygon graphic in [click](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/#defaultCreateOptions) mode. | <img alt="F vertex add" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/f-key-line.gif" width="400px"> |
351
- * Enter | Completes the `polyline` or `polygon` graphic without the staged vertex. A `double-click` will complete the graphic at the current mouse cursor's position. | <img alt="Enter" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/enter-line.gif" width="400px"> |
352
- * Spacebar+Left-drag | Pan the view while creating a polyline or polygon graphic. | <img alt="Space left drag" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/space-left-drag.gif" width="400px"> |
353
- * Left-click on the first vertex | Completes the polygon graphic sketch. | <img alt="Left-click first vertex" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/left-click-vertex.gif" width="400px"> |
348
+ * Left-click | Adds a vertex at the pointer location. | <img alt="Left-click" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/left-click-line.gif" width="400px"> |
349
+ * Left-drag | Adds a vertex for each pointer move in [hybrid](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/#defaultCreateOptions) or [freehand](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/#defaultCreateOptions) mode. | <img alt="Left drag" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/left-drag-line.gif" width="400px"> |
350
+ * F | Adds a vertex to the `polyline` or `polygon` graphic. Completes the `rectangle` or `circle` polygon graphic in [click](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/#defaultCreateOptions) mode. | <img alt="F vertex add" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/f-key-line.gif" width="400px"> |
351
+ * Enter | Completes the `polyline` or `polygon` graphic without the staged vertex. A `double-click` will complete the graphic at the current mouse cursor's position. | <img alt="Enter" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/enter-line.gif" width="400px"> |
352
+ * Spacebar+Left-drag | Pan the view while creating a polyline or polygon graphic. | <img alt="Space left drag" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/space-left-drag.gif" width="400px"> |
353
+ * Left-click on the first vertex | Completes the polygon graphic sketch. | <img alt="Left-click first vertex" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/left-click-vertex.gif" width="400px"> |
354
354
  *
355
355
  * #### Creating polygon graphics with predefined shapes
356
356
  *
@@ -358,10 +358,10 @@ export interface SketchViewModelEvents {
358
358
  *
359
359
  * Gesture | Action | Example |
360
360
  * ------- | ------ |---------|
361
- * Left-click+Drag | Creates a `rectangle` graphic with dimensions based on the bounding box between initial click and cursor location. Creates a `circle` graphic with radius based on the distance between initial click and cursor location. | <img alt="Polygon Left-click drag" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/polygon-left-click-drag.gif" width="400px"> |
362
- * Shift+Left-click+Drag | Changes the shape from a `rectangle` to a `square` or from a `circle` to an `ellipse`. | <img alt="Shift Left-click drag" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/shift-left-click-drag.gif" width="400px"> |
363
- * Alt+Left-click+Drag | Creates a `rectangle` graphic with a center at initial click, and dimensions based on the distance between the initial click to the cursor location. Creates a `circle` graphic with a radius based on the bounding box between the initial click and the cursor location. | <img alt="Alt Left-click drag" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/alt-left-click-drag.gif" width="400px"> |
364
- * Shift+Alt+Left-click+Drag | Combines the behavior described above. | <img alt="Shift Alt Left-click drag" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/shift-alt-left-click-drag.gif" width="400px"> |
361
+ * Left-click+Drag | Creates a `rectangle` graphic with dimensions based on the bounding box between initial click and cursor location. Creates a `circle` graphic with radius based on the distance between initial click and cursor location. | <img alt="Polygon Left-click drag" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/polygon-left-click-drag.gif" width="400px"> |
362
+ * Shift+Left-click+Drag | Changes the shape from a `rectangle` to a `square` or from a `circle` to an `ellipse`. | <img alt="Shift Left-click drag" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/shift-left-click-drag.gif" width="400px"> |
363
+ * Alt+Left-click+Drag | Creates a `rectangle` graphic with a center at initial click, and dimensions based on the distance between the initial click to the cursor location. Creates a `circle` graphic with a radius based on the bounding box between the initial click and the cursor location. | <img alt="Alt Left-click drag" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/alt-left-click-drag.gif" width="400px"> |
364
+ * Shift+Alt+Left-click+Drag | Combines the behavior described above. | <img alt="Shift Alt Left-click drag" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/shift-alt-left-click-drag.gif" width="400px"> |
365
365
  *
366
366
  * <span id="update-graphics"></span>
367
367
  * #### Updating graphics
@@ -372,29 +372,29 @@ export interface SketchViewModelEvents {
372
372
  *
373
373
  * Gesture | Action | Example |
374
374
  * ---------|---------|----------|
375
- * Left-click on a graphic | Select a graphic to move, rotate or scale. | <img alt="Select a graphic" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-box-mode.gif" width="400px"> |
376
- * Shift+Left-click graphics | Select multiple graphics to move, rotate or scale.| <img alt="Select graphics" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-graphics.gif" width="400px"> |
377
- * Drag graphic | Move the selected graphic.| <img alt="Drag the graphic" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-box-move.gif" width="400px"> |
378
- * Drag rotate handle | Rotate the selected graphic.| <img alt="Rotate the graphic" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-rotate.gif" width="400px"> |
379
- * Drag scale handle | Scale the selected graphic.| <img alt="Scale the graphic" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-scale.gif" width="400px"> |
380
- * Shift+Left-click+Drag scale handle | Scale the selected graphic at the center. | <img alt="Scale the graphic at the center" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/scale-shift-left-click-drag.gif" width="400px"> |
381
- * Z | Incrementally undo actions recorded in the stack. The undo/redo stack is for an individual sketch operation, meaning you can redo/undo actions while creating or updating a graphic. | <img alt="Undo update" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-update-undo.gif" width="400px"> |
382
- * R | Incrementally redo actions recorded in the stack. The undo/redo stack is for an individual sketch operation, meaning you can redo/undo actions while creating or updating a graphic. | <img alt="Redo update" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-update-redo.gif" width="400px"> |
383
- * Left-click on view (not the graphic) | Complete the graphic update. | <img alt="Sketch update complete" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-update-complete.gif" width="400px"> |
384
- * Press `Delete` key | Remove the selected graphic(s) from the [layer](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/#layer). | <img alt="Sketch delete graphic" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-delete-graphic.gif" width="400px">
375
+ * Left-click on a graphic | Select a graphic to move, rotate or scale. | <img alt="Select a graphic" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-box-mode.gif" width="400px"> |
376
+ * Shift+Left-click graphics | Select multiple graphics to move, rotate or scale.| <img alt="Select graphics" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-graphics.gif" width="400px"> |
377
+ * Drag graphic | Move the selected graphic.| <img alt="Drag the graphic" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-box-move.gif" width="400px"> |
378
+ * Drag rotate handle | Rotate the selected graphic.| <img alt="Rotate the graphic" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-rotate.gif" width="400px"> |
379
+ * Drag scale handle | Scale the selected graphic.| <img alt="Scale the graphic" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-scale.gif" width="400px"> |
380
+ * Shift+Left-click+Drag scale handle | Scale the selected graphic at the center. | <img alt="Scale the graphic at the center" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/scale-shift-left-click-drag.gif" width="400px"> |
381
+ * Z | Incrementally undo actions recorded in the stack. The undo/redo stack is for an individual sketch operation, meaning you can redo/undo actions while creating or updating a graphic. | <img alt="Undo update" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-update-undo.gif" width="400px"> |
382
+ * R | Incrementally redo actions recorded in the stack. The undo/redo stack is for an individual sketch operation, meaning you can redo/undo actions while creating or updating a graphic. | <img alt="Redo update" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-update-redo.gif" width="400px"> |
383
+ * Left-click on view (not the graphic) | Complete the graphic update. | <img alt="Sketch update complete" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-update-complete.gif" width="400px"> |
384
+ * Press `Delete` key | Remove the selected graphic(s) from the [layer](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/#layer). | <img alt="Sketch delete graphic" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-delete-graphic.gif" width="400px">
385
385
  *
386
386
  * The following update operations can be performed on a single polyline or polygon graphic:
387
387
  *
388
388
  * Gesture | Action | Example |
389
389
  * ---------|---------|----------|
390
- * Left-click on a graphic | Select a graphic to move or reshape.| <img alt="Select a graphic" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-reshape-mode.gif" width="400px"> |
391
- * Drag graphic | Move the selected graphic.| <img alt="Drag the graphic" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-drag.gif" width="400px"> |
392
- * Left-click on a ghost vertex| Add a new vertex. | <img alt="Add a vertex" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-add-vertices.gif" width="400px"> |
393
- * Left-click on a vertex| Select a vertex. | <img alt="Select a vertex" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-selectvertex.gif" width="400px"> |
394
- * Shift+Left-click on vertices | Select or unselect multiple vertices. | <img alt="Select vertices" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-selectvertices.gif" width="400px"> |
395
- * Drag vertex | Move the selected vertex or vertices. | <img alt="Drag vertices" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-dragvertices.gif" width="400px"> |
396
- * Right-click on a vertex | Delete a vertex. | <img alt="Delete a vertex" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-delete-vertex.gif" width="400px"> |
397
- * Select multiple vertices and press `Backspace` or `Delete` key | Delete multiple vertices. | <img alt="Delete vertices" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-delete-vertices.gif" width="400px"> |
390
+ * Left-click on a graphic | Select a graphic to move or reshape.| <img alt="Select a graphic" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-reshape-mode.gif" width="400px"> |
391
+ * Drag graphic | Move the selected graphic.| <img alt="Drag the graphic" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-drag.gif" width="400px"> |
392
+ * Left-click on a ghost vertex| Add a new vertex. | <img alt="Add a vertex" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-add-vertices.gif" width="400px"> |
393
+ * Left-click on a vertex| Select a vertex. | <img alt="Select a vertex" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-selectvertex.gif" width="400px"> |
394
+ * Shift+Left-click on vertices | Select or unselect multiple vertices. | <img alt="Select vertices" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-selectvertices.gif" width="400px"> |
395
+ * Drag vertex | Move the selected vertex or vertices. | <img alt="Drag vertices" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-dragvertices.gif" width="400px"> |
396
+ * Right-click on a vertex | Delete a vertex. | <img alt="Delete a vertex" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-delete-vertex.gif" width="400px"> |
397
+ * Select multiple vertices and press `Backspace` or `Delete` key | Delete multiple vertices. | <img alt="Delete vertices" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-delete-vertices.gif" width="400px"> |
398
398
  *
399
399
  * <span id="point-transform-tool"></span>
400
400
  *
@@ -402,11 +402,11 @@ export interface SketchViewModelEvents {
402
402
  *
403
403
  * Gesture | Action | Example |
404
404
  * ---------|---------|----------|
405
- * Left-click on a graphic | Select a graphic to move, rotate or scale. | <img alt="Select a graphic" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-update-point-3D.gif" width="400px"> |
406
- * Drag inner handle | Move the selected graphic.| <img alt="Drag the graphic" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-transform-move-point.gif" width="400px"> |
407
- * Drag height handle | Move the selected graphic vertically (on the z axis).| <img alt="Drag the graphic" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-transform-movez-point.gif" width="400px"> |
408
- * Drag outer handle sideways | Rotate the selected graphic.| <img alt="Rotate the graphic" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-transform-rotate-point.gif" width="400px"> |
409
- * Drag outer handle inwards or outwards | Scale the selected graphic.| <img alt="Scale the graphic" src="https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/sketch-transform-scale-point.gif" width="400px"> |
405
+ * Left-click on a graphic | Select a graphic to move, rotate or scale. | <img alt="Select a graphic" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-update-point-3D.gif" width="400px"> |
406
+ * Drag inner handle | Move the selected graphic.| <img alt="Drag the graphic" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-transform-move-point.gif" width="400px"> |
407
+ * Drag height handle | Move the selected graphic vertically (on the z axis).| <img alt="Drag the graphic" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-transform-movez-point.gif" width="400px"> |
408
+ * Drag outer handle sideways | Rotate the selected graphic.| <img alt="Rotate the graphic" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-transform-rotate-point.gif" width="400px"> |
409
+ * Drag outer handle inwards or outwards | Scale the selected graphic.| <img alt="Scale the graphic" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/sketch-transform-scale-point.gif" width="400px"> |
410
410
  *
411
411
  * </details>
412
412
  *
@@ -441,7 +441,7 @@ export interface SketchViewModelEvents {
441
441
  * In earlier versions, setting these properties would only override the graphic symbology after completing the draw operation. The [activeFillSymbol](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/#activeFillSymbol) property allowed users to override the default drawing symbol in order to match the final `polygonSymbol`.
442
442
  * This was needed for users to see what the final graphic symbol would look like while actively drawing. Setting the `pointSymbol`, `polylineSymbol`, and `polygonSymbol` now allows users to see what the final graphic symbol will look like while still actively drawing a graphic. The image below demonstrates the behavior when setting the `polygonSymbol`.
443
443
  *
444
- * ![active-fill-active-line](https://developers.arcgis.com/javascript/latest/assets/images/apiref/widgets/sketch/active-fill-active-line.gif)
444
+ * ![active-fill-active-line](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/active-fill-active-line.gif)
445
445
  *
446
446
  * The following is the code snippet used in the example above.
447
447
  *
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../Graphic.js";import{isSome as o}from"../../core/arrayUtils.js";import i from"../../core/Collection.js";import a from"../../core/Error.js";import{EventedAccessor as r}from"../../core/Evented.js";import{drainHandles as s,destroyHandle as n}from"../../core/handleUtils.js";import"../../core/has.js";import p from"../../core/Logger.js";import{destroyMaybe as l,abortMaybe as h}from"../../core/maybe.js";import{createAbortError as c,whenOrAbort as d,ignoreAbortErrors as u}from"../../core/promiseUtils.js";import{watch as g,syncAndInitial as y,on as m,when as v,whenOnce as f}from"../../core/reactiveUtils.js";import{property as _,subclass as b}from"../../core/accessorSupport/decorators.js";import{UpdatingHandles as w}from"../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as G}from"../../geometry/ellipsoidUtils.js";import{canProjectWithoutEngine as T,isLoaded as O,load as S,project as E}from"../../geometry/projectionUtils.js";import{geometryToCoordinates as C}from"../../geometry/support/coordsUtils.js";import{equals as M}from"../../geometry/support/spatialReferenceUtils.js";import A from"../../layers/GraphicsLayer.js";import{isIntegratedMeshLayer as k}from"../../layers/support/layerUtils.js";import{getEffectiveElevationInfo as H}from"../../support/elevationInfoUtils.js";import D from"../../symbols/FillSymbol3DLayer.js";import I from"../../symbols/MeshSymbol3D.js";import P from"../../symbols/SimpleFillSymbol.js";import j from"../../symbols/SimpleLineSymbol.js";import R from"../../symbols/SimpleMarkerSymbol.js";import U from"../../symbols/TextSymbol.js";import{symbolTypes as x}from"../../symbols/support/typeUtils.js";import{isSupportedObjectResultMessage as L}from"../../views/3d/interactive/editingTools/isSupportedObjectUtils.js";import{isSupportedObject as F}from"../../views/3d/interactive/editingTools/move/isSupportedObject.js";import{isSupportedObject as V}from"../../views/3d/interactive/editingTools/reshape/isSupportedObject.js";import{isSupportedGraphic as K}from"../../views/3d/interactive/editingTools/transform/isSupportedGraphic.js";import{addUniqueLayer as W}from"../../views/draw/support/layerUtils.js";import{ViewEventPriorities as Z}from"../../views/input/InputManager.js";import{sketchKeys as q}from"../../views/interactive/keybindings.js";import N from"../../views/interactive/sketch/SketchLabelOptions.js";import z from"../../views/interactive/sketch/SketchOptions.js";import B from"../../views/interactive/sketch/SketchTooltipOptions.js";import $ from"../../views/interactive/sketch/SketchValueOptions.js";import{SnappingManager as Y}from"../../views/interactive/snapping/SnappingManager.js";import J from"../../views/interactive/snapping/SnappingOptions.js";import{setupSnappingToggleHandles as Q}from"../../views/interactive/snapping/snappingUtils.js";import{defaultHighlightName as X}from"../../views/support/HighlightDefaults.js";import{findFirstGraphicHit as ee}from"../../views/support/hitTestSelectUtils.js";import{createScreenPointFromEvent as te}from"../../views/support/screenUtils.js";import oe from"./adapters/layer/GraphicsLayerAdapter.js";import ie from"./adapters/layer/MapNotesLayerAdapter.js";import{CreateOperationHandle as ae,DrawToolOperationHandle as re,UpdateOperationHandle as se}from"./support/OperationHandle.js";import{getLegacyTool as ne,graphicsHaveTooFewVerticesForBox as pe,getModeFromCreateOptions as le,getDrawToolGeometryTypeFromCreateTool as he}from"./support/sketchUtils.js";const ce={defaultZ:0},de={reshapeOptions:{edgeOperation:"split",shapeOperation:"move",vertexOperation:"move",enableCreateCurveFromStraightEdge:!0},enableMoveAllGraphics:!0,enableRotation:!0,enableScaling:!0,multipleSelectionEnabled:!0,preserveAspectRatio:!1,toggleToolOnClick:!0,enableZ:!0,highlightOptions:{enabled:!0,name:X},tool:"transform"},ue=Symbol(),ge=Symbol();let ye=class extends r{constructor(e){super(e),this._defaultSnappingManager=null,this._internalGraphicsLayer=new A({listMode:"hide",internal:!0,title:"SVM Internal"}),this._operationHandle=null,this._updatingHandles=new w,this._viewHandlesKey="viewHandles",this.activeFillSymbol=null,this.activeLineSymbol=null,this.activeVertexSymbol=null,this.allowDeleteKey=!0,this.layer=null,this.pointSymbol=new R({style:"circle",size:6,color:[255,255,255],outline:{color:[50,50,50],width:1}}),this.polygonSymbol=new P({color:[150,150,150,.2],outline:{color:[50,50,50],width:2}}),this.polylineSymbol=new j({color:[130,130,130,1],width:2}),this.meshSymbol=new I({symbolLayers:new i([new D])}),this.updateGraphics=new i,this.updateOnGraphicClick=!0,this.creationMode="single",this.vertexSymbol=new R({style:"circle",size:6,color:[255,255,255],outline:{color:[50,50,50],width:1}}),this.sketchOptions=new z,this.useLegacyCreateTools=!0,this._moduleLoaderAbortController=null,this._viewReadyAbortController=null,this._sketchContinuationFlag=!1,this._onLayerAdapterChange=async()=>{const{_layerAdapter:e}=this;if(this.removeHandles(ge),!e)return;const t=[e.onGraphicsChange(e=>this._onLayerGraphicsChangeCallback(e)),g(()=>e.elevationInfo,e=>{e!==this._internalGraphicsLayer.elevationInfo&&(this.cancel(),this._internalGraphicsLayer&&(this._internalGraphicsLayer.elevationInfo=e))},y)].filter(o);this.addHandles(t,ge)},this._originalPopupEnabled=null,this.defaultCreateOptions=ce,this.defaultUpdateOptions=de,this.snappingOptions=e?.snappingManager?.options??e?.snappingOptions??new J,this.textSymbol=new U({text:"text"})}initialize(){this._updatingHandles.addPromise(this._setupAdvancedDrawToolIntegrationMaybe()),this.addHandles([m(()=>this.view?.map?.layers,"change",e=>{this.layer&&e.removed.includes(this.layer)&&this.cancel()}),g(()=>this._layerAdapter,()=>this._onLayerAdapterChange(),y),g(()=>this.view,e=>{this._defaultSnappingManager=l(this._defaultSnappingManager),e&&(this.snappingManager||(this._defaultSnappingManager=new Y({view:e,options:this.snappingOptions})),"2d"===e.type?(import("../../views/2d/interactive/editingTools.js"),this._updatingHandles.addPromise(this._setupAdvancedDrawToolIntegrationMaybe())):"3d"===e.type&&(import("../../views/3d/interactive/editingTools.js"),import("../../views/3d/layers/GraphicsLayerView3D.js")))},y),g(()=>this.view?.spatialReference,(e,t)=>{e&&t&&!e.equals(t)&&this.cancel()})]),Q(this)}destroy(){this.cancel(),this._removeDefaultLayer(),this._defaultSnappingManager=l(this._defaultSnappingManager),this._set("snappingManager",null),this._set("view",null),this._updatingHandles.destroy(),this._pluginManager=l(this.pluginManager),this.emit("destroy")}get _layerAdapter(){const{layer:e}=this;switch(e?.type){case"graphics":return new oe(e);case"map-notes":return new ie(e);default:return null}}get activeTool(){return this._operationHandle?.tool??null}get activeCreateToolDrawMode(){const e=this._operationHandle;if("create"===e?.type&&e.activeComponent&&"mode"in e.activeComponent)return e.activeComponent.mode;if("draw-2.0"===e?.activeComponent?.type){const t=e.activeComponent.pluginStack.map(e=>e.configuration).filter(o).toArray();if(t.length>0)return this._pluginManager?.getDrawingModeEquivalentToPluginStack(t)}return null}get activeTooltip(){const{activeComponent:e,destroyed:t}=this,o=!t&&e&&"tooltip"in e?e.tooltip:null;return o?.visible?o:null}get activeComponent(){return this._operationHandle?.activeComponent??null}get createGraphic(){return null==this.activeComponent||"draw-3d"!==this.activeComponent.type&&"draw-2d"!==this.activeComponent.type?this._get("createGraphic"):this.activeComponent.graphic}get defaultCreateOptions(){return this._get("defaultCreateOptions")}set defaultCreateOptions(e){this._set("defaultCreateOptions",{...ce,...e})}get defaultUpdateOptions(){return this._get("defaultUpdateOptions")}set defaultUpdateOptions(e){this._set("defaultUpdateOptions",{...de,...e,reshapeOptions:{...de.reshapeOptions,...e?.reshapeOptions},highlightOptions:{...de.highlightOptions,...e?.highlightOptions}})}get labelOptions(){return this.sketchOptions.labels}set labelOptions(e){this.sketchOptions.labels=e}get textSymbol(){return this._get("textSymbol")}set textSymbol(e){this._set("textSymbol",e)}get snappingOptions(){return this.snappingManager?.options??this._get("snappingOptions")}set snappingOptions(e){null!=this._defaultSnappingManager&&(this._defaultSnappingManager.options=e),this._set("snappingOptions",e)}get snappingManager(){return this._isOverridden("snappingManager")&&this._get("snappingManager"),this._defaultSnappingManager}set snappingManager(e){if(e)this._isOverridden("snappingManager")||(this._defaultSnappingManager=l(this._defaultSnappingManager)),this._override("snappingManager",e);else{const{view:e}=this;!this._defaultSnappingManager&&e&&(this._defaultSnappingManager=new Y({options:this.snappingOptions,view:e})),this._clearOverride("snappingManager")}}get state(){const e=!(!this.view?.ready||!this.layer),t=this._operationHandle;return e&&t?"active":e?"ready":"disabled"}get tooltipOptions(){return this.sketchOptions.tooltips}set tooltipOptions(e){this.sketchOptions.tooltips=e}get updating(){return this.activeComponent&&"updating"in this.activeComponent&&this.activeComponent.updating||!!(this._updatingHandles.updating||this.snappingManager?.updating||this.drawTool?.updating)}get valueOptions(){return this.sketchOptions.values}set valueOptions(e){this.sketchOptions.values=e}get view(){return this._get("view")}set view(e){const t=this._get("view");if(t){const{container:e,map:o}=t;e&&this._clearCursor(),o?.remove(this._internalGraphicsLayer),this.removeHandles(this._viewHandlesKey),this.cancel()}const o="view-ready";this.removeHandles(o),e&&this.addHandles(v(()=>e.ready,t=>{this.removeHandles(this._viewHandlesKey),t&&this.addHandles(this._generateViewHandles(e),this._viewHandlesKey)},y),o),this._set("view",e),this._updatingHandles.addPromise(this._setupAdvancedDrawToolIntegrationMaybe())}get isUsingLegacyCreateTools(){return this.useLegacyCreateTools||"2d"!==this.view?.type}get pluginManager(){return this._pluginManager}get drawTool(){return"draw-2.0"!==this.activeComponent?.type?null:this.activeComponent}get rootPlugins(){return this._pluginManager?.availablePlugins}set rootPlugins(e){this._overrideIfSome("rootPlugins",e)}get effectiveAvailablePlugins(){if(this.isUsingLegacyCreateTools)return null;const e=this.view?.type??"2d",{firstPluginWithSwappableLeaf:t}=this;return t?t.availableDownstreamPlugins.filter(t=>!t.excludedViews?.includes(e)):this.rootPlugins?.filter(t=>!t.excludedViews?.includes(e)).filter(o)??[]}get firstPluginWithSwappableLeaf(){const e=this.view?.type??"2d",t=this.drawTool?.pluginStack.toArray().map(e=>e.configuration).findLast(t=>null!=t&&!t.hidden&&t.availableDownstreamPlugins&&t.availableDownstreamPlugins.filter(t=>!t.excludedViews?.includes(e))?.length>1);return t}get multiplePluginsActive(){return!!this.drawTool&&this.drawTool.pluginStack.length>1}addGraphic(e){this._layerAdapter?.add(e)}addGraphics(e){this._layerAdapter?.addMany(e)}hasGraphic(e){return!!this._layerAdapter?.has(e)}removeGraphic(e){this._layerAdapter?.remove(e)}removeGraphics(e){this._layerAdapter?.removeMany(e)}removeAllGraphics(){this._layerAdapter?.removeAll()}cancel(){this._moduleLoaderAbortController=h(this._moduleLoaderAbortController),this._viewReadyAbortController=h(this._viewReadyAbortController),this._sketchContinuationFlag=!0,this._operationHandle?.cancel()}complete(){this._operationHandle?.complete()}delete(){const{state:e,updateGraphics:t}=this;if("active"===e&&t.length){const{activeTool:e}=this,o=t.toArray();this.removeGraphics(o),this.cancel(),this._emitDeleteEvent({graphics:o,tool:e})}}duplicate(){if("active"===this.state&&this.updateGraphics.length){const e=this.updateGraphics.map(e=>e.clone()).toArray();return this.addGraphics(e),this.emit("duplicate",{graphics:e,type:"duplicate"}),e}return[]}async create(e,t){this.cancel(),await this._waitViewReady();const{view:o,layer:i}=this;if(!o||"disabled"===this.state)throw i||this._logMissingLayer(),c();if(null!=o.activeTool&&(o.activeTool=null),!e)return void this._logError("sketch:missing-parameter","Missing parameter 'tool'.");W(o,this._internalGraphicsLayer);const a=await this._updatingHandles.addPromise(this._setupCreateOperation(e,t));if(null==a||this.destroyed)return void o.map?.remove(this._internalGraphicsLayer);const r=ne(e),s=()=>{if(a===this._operationHandle){const o=this.createGraphic,i=this._operationHandle.cancelled;if(this._operationHandle.destroy(),this._operationHandle=null,this._set("createGraphic",null),this.view?.map?.remove(this._internalGraphicsLayer),a.cancelled||null==o||this.addGraphic(o),this._sketchContinuationFlag=!1,this.emit("create",{graphic:o,state:i?"cancel":"complete",tool:r??"point",toolEventInfo:null,type:"create"}),i||this._sketchContinuationFlag)return;const{creationMode:s}=this;if("continuous"===s){if(t?.geometryToPlace)return;this._updatingHandles.consumePromise(u(this.create(e,t)))}else"update"===s&&o&&this._updatingHandles.consumePromise(u(this.update([o])))}};a.on("complete",s),this._operationHandle=a,o.ready&&o.focus()}async place(e,t){return await e.load(),this.create("mesh",{mode:"click",hasZ:e.hasZ,geometryToPlace:e,...t})}async update(e,t){this.cancel(),await this._waitViewReady();const{layer:o,view:i,state:a}=this;if(!i||"disabled"===a)throw o||this._logMissingLayer(),c();null!=i.activeTool&&(i.activeTool=null);const r=Array.isArray(e)?e:[e];if(null==e||!r?.length)return void this._logError("sketch:missing-parameter","Missing parameter 'graphics'.");if(r.some(e=>this.hasGraphic(e)?null==e.geometry&&(this._logError("sketch:invalid-parameter","Parameter 'graphics' contains one or more graphics with an unsupported geometry."),!0):(this._logError("sketch:invalid-parameter","Parameter 'graphics' contains one or more graphics missing from the supplied GraphicsLayer."),!0)))return;const s=await this._updatingHandles.addPromise(this._setupUpdateOperation(r,t));this.destroyed||null==s||Se(s)||(W(i,this._internalGraphicsLayer),this._setUpdateOperationHandle(s,t),this.emit("update",{graphics:r,state:"start",aborted:!1,tool:s.tool,toolEventInfo:null,type:"update"}))}async _updateSpatialReference(e){const t=this.view;if(t){e=Array.isArray(e)?e:[e];for(const o of e)null==o.geometry||"mesh"===o.geometry.type||M(o.geometry.spatialReference,t.spatialReference)||(T(o.geometry.spatialReference,t.spatialReference)||O()||await S(),o.geometry=E(o.geometry,t.spatialReference))}else this._logMissingView()}undo(){this.canUndo()&&this._operationHandle?.undo()}redo(){this.canRedo()&&this._operationHandle?.redo()}canUndo(){return!!this._operationHandle?.canUndo()}canRedo(){return!!this._operationHandle?.canRedo()}toggleUpdateTool(){this._operationHandle?.toggleTool()}async _getFirstHit(e){const t=this.view;if(!t)return this._logMissingView(),null;if("2d"===t.type){const o=[];t.map.allLayers.forEach(e=>{"vector-tile"!==e.type&&"imagery"!==e.type||o.push(e)});const i=await t.hitTest(e,{exclude:o});return ee(i.results)}const o=[t.map.ground];t.map.allLayers.forEach(e=>{k(e)&&o.push(e)});const i=await t.hitTest(e,{exclude:o});if(i.results.length>0){const e=i.results[0];if(null!=e&&"graphic"===e.type&&e.graphic&&(!i.ground.mapPoint||t.map.ground.opacity<1||i.ground.distance-(e.distance??0)>-Math.min(3*i.ground.distance,"global"===t.viewingMode?G(t.renderCoordsHelper.spatialReference).radius/t.renderCoordsHelper.unitInMeters:Number.POSITIVE_INFINITY)))return e}return null}_generateViewHandles(e){return[e.on("immediate-click",async e=>{const t="active"===this.state&&"create"===this._operationHandle?.type;"disabled"!==this.state&&!t&&this.updateOnGraphicClick&&await this._updatingHandles.addPromise(this._handleImmediateClick(e))},Z.WIDGET)]}async _handleImmediateClick(e){const t=await e.defer(()=>this._getFirstHit(te(e)));let o=null;if(null!=t){const i=t.graphic;this.updateGraphics.includes(i)||this.hasGraphic(i)?(e.stopPropagation(),o=i):"2d"!==this.view?.type||this._isComponentGraphic(i)||"active"!==this.state||this.cancel()}else"active"===this.state&&this.cancel();null==o||this.updateGraphics.includes(o)||await this.update([o],{...this.defaultUpdateOptions,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions}})}async _setupCreateOperation(e,t){const o=this.view;if(!o)return this._logMissingView(),null;const i={hasZ:"3d"===o.type,...this.defaultCreateOptions,...t};await this._setupAdvancedDrawToolIntegrationMaybe();const a="string"==typeof e?this.pluginManager?.getPluginsEquivalentToCreateTool(e,i.mode):e,r=ne(e);if(a&&!this.isUsingLegacyCreateTools){const e=await this._setupDrawTool(a,i,r??"polyline");if(e)return this._setupDrawToolOperationHandle(e,r??"point")}if(!r)return null;const s=await this._setupDrawGraphicTool(r,o,i);return null==s?null:(o.tools.add(s),o.activeTool=s,this._setupCreateOperationHandle(s,r))}async _setupDrawGraphicTool(e,t,o){if("multipoint"===e&&"3d"===t.type)return this._logError("sketch:create","Multipoint geometries are not supported in SceneView."),null;if(!t)return this._logMissingView(),null;const{cursor:i,defaultZ:a,hasZ:r,geometryToPlace:s,graphicProperties:n,mode:p,preserveAspectRatio:l}=o,h=le(p,e),c=he(e),d=o?.optionsPerTool?.has(e)?o.optionsPerTool.get(e):{},u=d?.preserveAspectRatio??l??"rectangle"!==e,g={centered:"rectangle"!==e&&!("circle"===e&&!u),cursor:i,defaultZ:a,forceUniformSize:u,graphicProperties:{...n,attributes:{...n?.attributes}},geometryToPlace:s,geometryType:c,mode:h,graphicSymbol:o.graphicSymbol??this._getGraphicSymbolFromTool(e),hasZ:r,snappingManager:this.snappingManager,snapToScene:!1,view:t,...d};return"2d"===t.type?this._makeDrawGraphicTool2D(g):this._makeDrawGraphicTool3D(g)}async _makeDrawGraphicTool2D(e){const t=await this._requireModule(import("../../views/2d/interactive/editingTools.js"));return Se(t)||this.destroyed?null:new t.module.DrawGraphicTool2D({...e,activeVertexSymbol:this.activeVertexSymbol,regularVerticesSymbol:this.vertexSymbol,activeLineSymbol:this.activeLineSymbol,activeFillSymbol:fe(e.geometryType)?this.activeFillSymbol:null,sketchOptions:this.sketchOptions})}async _makeDrawGraphicTool3D(e){const t=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));return Se(t)||this.destroyed?null:new t.module.DrawGraphicTool3D({...e,elevationInfo:this._layerAdapter?.elevationInfo,snapToScene:!0,sketchOptions:this.sketchOptions})}_setupCreateOperationHandle(e,t){const o=this.view;if(!o)return this._logMissingView(),null;let i=null;const a=e.forceUniformSize,r=e.centered,n=[o.on("key-down",t=>{if(t.key===q.pan)t.stopPropagation(),t.repeat||(e.enabled=!1);else if(t.key===q.complete)t.stopPropagation(),e.completeCreateOperation();else if(t.key!==q.vertexAdd||t.repeat)t.key===q.undo?(t.stopPropagation(),p.undo()):t.key===q.redo?(t.stopPropagation(),p.redo()):t.key!==q.constraint||"rectangle"!==e.geometryType&&"circle"!==e.geometryType||t.repeat?t.key===q.center&&(t.repeat||(e.centered=!r,t.stopPropagation())):(e.forceUniformSize=!a,t.stopPropagation());else{const o=e.drawOperation.geometryType;"polyline"!==o&&"polygon"!==o&&"multipoint"!==o||(t.stopPropagation(),e.drawOperation.commitStagedVertex())}},Z.WIDGET),o.on("key-up",t=>{t.key===q.pan?e.enabled=!0:t.key!==q.constraint||"rectangle"!==e.geometryType&&"circle"!==e.geometryType?t.key===q.center&&(e.centered=r,t.stopPropagation()):(e.forceUniformSize=a,t.stopPropagation())},Z.WIDGET),e.on("vertex-add",t=>{switch(i=null==i?"start":"active",t.operation){case"apply":this.emit("create",{graphic:e.graphic,state:i,tool:this.activeTool,toolEventInfo:t,type:"create"});break;case"undo":this._emitUndoEvent({graphics:[e.graphic],tool:e.geometryType});break;case"redo":this._emitRedoEvent({graphics:[e.graphic],tool:e.geometryType})}}),e.on("cursor-update",t=>{e.drawOperation.numCommittedVertices>0&&this.emit("create",{graphic: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:e.graphic,state:"active",tool:this.activeTool,toolEventInfo:t,type:"create"});break;case"undo":this._emitUndoEvent({graphics:[e.graphic],tool:e.geometryType});break;case"redo":this._emitRedoEvent({graphics:[e.graphic],tool:e.geometryType})}}),e.on("complete",e=>{this._set("createGraphic",e.graphic),i="complete",e.aborted?p&&p.cancel():p&&p.complete()}),g(()=>this._getGraphicSymbolFromTool(t),t=>{e.graphicSymbol=t})],p=new ae({activeComponent:e,type:"create",onEnd:()=>{s(n),o.tools?.remove(e)},undo:()=>{e.canUndo&&e.undo()},redo:()=>{e.canRedo&&e.redo()},canUndo:()=>e.canUndo,canRedo:()=>e.canRedo});return p}_setupDrawToolOperationHandle(e,t){const i=this.view;if(!i)return this._logMissingView(),null;let a=null;const r=[i.on("key-down",t=>{t.key===q.pan&&(t.stopPropagation(),t.repeat||(e.editable=!1))},Z.WIDGET),i.on("key-up",t=>{t.key===q.pan&&(e.editable=!0)},Z.WIDGET),e.on("before-vertex-add",t=>{const o=e.mostUpstreamPlugin?.configuration;if(o&&"legacyCreateTool"in o&&("point"===o?.legacyCreateTool||"text"===o.legacyCreateTool)){const e=t.detail.originalEvent;return void(e&&"key"in e&&e.key===q.vertexAdd&&t.preventDefault())}}),e.on("before-complete",t=>{const o=e.editGeometry,i=o?.allVertices.length??0;(i<1||"polyline"===o?.type&&i<2||"polygon"===o?.type&&i<2)&&t.preventDefault()}),e.on("vertex-add",i=>{switch(this.createGraphic&&(this.createGraphic.geometry=e.geometry),a=null==a?"start":"active",i.operation){case"apply":this.emit("create",{graphic:this.createGraphic,state:a,tool:this.activeTool,toolEventInfo:i,type:"create"});break;case"undo":this._emitUndoEvent({graphics:[this.createGraphic].filter(o),tool:t});break;case"redo":this._emitRedoEvent({graphics:[this.createGraphic].filter(o),tool:t})}}),e.on("cursor-update",t=>{this.createGraphic&&(this.createGraphic.geometry=e.geometry),(t.vertices[0]?.vertexIndex>0||t.vertices[0]?.componentIndex>0)&&this.emit("create",{graphic:this.createGraphic,state:"active",tool:this.activeTool,toolEventInfo:{coordinates:t.vertices[0].coordinates,type:"cursor-update"},type:"create"})}),e.on("vertex-remove",i=>{switch(this.createGraphic&&(this.createGraphic.geometry=e.geometry),i.operation){case"apply":this.emit("create",{graphic:this.createGraphic,state:"active",tool:this.activeTool,toolEventInfo:i,type:"create"});break;case"undo":this._emitUndoEvent({graphics:[this.createGraphic].filter(o),tool:t});break;case"redo":this._emitRedoEvent({graphics:[this.createGraphic].filter(o),tool:t})}}),e.on("complete",({geometry:e})=>{const t=this.createGraphic;t&&e&&(t.geometry=e),n.complete()})],n=new re({activeComponent:e,type:"create",onEnd:()=>{s(r),i.tools.remove(e)},undo:()=>e.undo(),redo:()=>e.redo(),canUndo:()=>e.canUndo,canRedo:()=>e.canRedo});return r.push(e.on("cancel",()=>n.cancel())),n}_getGraphicSymbolFromTool(e){switch(e){case"point":case"multipoint":return this.pointSymbol;case"polyline":case"freehandPolyline":return this.polylineSymbol;case"circle":case"rectangle":case"polygon":case"freehandPolygon":return this.polygonSymbol;case"mesh":return this.meshSymbol;case"text":return this.textSymbol}}async _setupUpdateOperation(e,t){const{view:o}=this;if(!o)return this._logMissingView(),null;const i={...this.defaultUpdateOptions,...t,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions,...t?.reshapeOptions},highlightOptions:{...this.defaultUpdateOptions.highlightOptions,...t?.highlightOptions}};let a=i.tool??de.tool;if(this.removeGraphics(e),this.addGraphics(e),"3d"===o.type){if(0===e.length)return null;switch(a){case"move":return this._setupMove3DOperation(e,i,o,a);case"reshape":return e.length>1?(this._logError("sketch:reshape-multiple","Reshape operation does not support multiple graphics."),null):this._setupReshape3DOperation(e[0],i,o);case"transform":return this._setupGraphicTransform3DOperation(e,i,o)}}switch(a){case"move":return this._setupMove2DOperation(e,i,o);case"reshape":return e.length>1?(this._logError("sketch:reshape-multiple","Reshape operation does not support multiple graphics."),null):this._setupTransformOrReshape2DOperation(e,a,i,o);case"transform":return pe(e)&&(a="reshape"),this._setupTransformOrReshape2DOperation(e,a,i,o)}}async _setupMove3DOperation(e,t,o,i,a=!1){const r=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(Se(r))return r;const{ManipulatedObject3DGraphic:n,MoveTool3D:p}=r.module,l=new Map,h=()=>{l.forEach(e=>e.destroy()),l.clear()};for(const s of e){const e=new n({view:o,graphic:s}),t=F(e);if(0!==t)return h(),this._logError("sketch:move",`Move operation not supported for provided graphic(s) (${L(t)}).`),null;l.set(s,e)}const c=new p({view:o,enableZ:t.enableZ,snappingManager:this.snappingManager,sketchOptions:this.sketchOptions});o.tools.add(c),c.objects.addMany(Array.from(l.values())),a||this.updateGraphics.addMany(e);const d=[],u=new se({activeComponent:c,tool:i,type:"update",onEnd:()=>{s(d),Oe(o,c),h()},undo:()=>{Ge(this.view,c),_e(u,this.updateGraphics.toArray()),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:i})},redo:()=>{be(u,this.updateGraphics.toArray()),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:i})},addToSelection:e=>{this.updateGraphics.push(e);const t=new n({view:o,graphic:e});l.set(e,t),c.objects.push(t),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);if(u.history.undo.forEach(e=>e.updates.splice(t,1)),u.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)return void u.complete();const o=l.get(e);o&&(c.objects.remove(o),o.destroy(),l.delete(e))},toggleTool:async()=>{if(1!==this.updateGraphics.length||!1===t.toggleToolOnClick)return;if("transform"!==i)return;const e=this.updateGraphics.at(0),a=await this._updatingHandles.addPromise(this._setupReshape3DOperation(e,t,o,!0));a&&!Se(a)&&(u.onEnd(),u.destroy(),this._setUpdateOperationHandle(a,t))}});return d.push(...this._getHandlesForComponent(u,t),o.on("immediate-click",e=>this._getCommonUpdateOperationClickHandlers(u,e,t),Z.WIDGET),o.on("key-down",e=>{this._getCommonUpdateOperationKeyDownHandlers(u,e)},Z.WIDGET)),u}_setupGraphicTransform3DOperation(e,t,o,i=!1){if(1===e.length&&0===K(e[0])){const a=e[0],r=a.geometry;if(null!=r&&("point"===r.type||"mesh"===r.type))return this._setupPointTransform3DOperation(a,t,o);if(null!=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:n}=t,p=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(Se(p))return p;const{TransformTool3D:l,ManipulatedObject3DGraphic:h}=p.module,c=new h({graphic:e,view:o}),d=new l({object:c,view:o,enableRotation:a,enableScaling:r,enableZ:n,snappingManager:this.snappingManager,sketchOptions:this.sketchOptions});o.tools.add(d),this.updateGraphics.add(e);const u=[],g=new se({activeComponent:d,tool:i,type:"update",onEnd:()=>{s(u),Oe(o,d),c.destroy()},undo:()=>{Ge(this.view,d),_e(g,this.updateGraphics.toArray()),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:i})},redo:()=>{be(g,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"}),g.onEnd(),g.destroy();const i=await this._updatingHandles.addPromise(this._setupMove3DOperation(this.updateGraphics.toArray(),t,o,"transform",!0));Se(i)||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"}),g.complete()},toggleTool:()=>{}});return u.push(...this._getHandlesForComponent(g,t),o.on("immediate-click",e=>this._getCommonUpdateOperationClickHandlers(g,e,t),Z.WIDGET),o.on("key-down",e=>{this._getCommonUpdateOperationKeyDownHandlers(g,e)},Z.WIDGET)),g}async _setupPolyTransform3DOperation(e,t,o,i=!1){const a="transform",{enableRotation:r,enableScaling:n,enableZ:p,preserveAspectRatio:l}=t,h=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(Se(h))return h;const{ManipulatedObject3DGraphic:c,ExtentTransformTool:d}=h.module,u=this.view?.inputManager?.isModifierKeyDown(q.constraint),g=new c({view:o,graphic:e}),y=new d({object:g,view:o,enableRotation:r,enableScaling:n,enableZ:p,preserveAspectRatio:!!l!=!!u,sketchOptions:this.sketchOptions});o.tools.add(y),i||this.updateGraphics.add(e);const m=[],v=new se({activeComponent:y,tool:a,type:"update",onEnd:()=>{s(m),Oe(o,y),g.destroy()},canUndo:()=>!y.destroyed&&y.canUndo,undo:()=>{y.destroyed||(y.undo(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:a}))},canRedo:()=>!y.destroyed&&y.canRedo,redo:()=>{y.destroyed||(y.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"}),v.onEnd(),v.destroy();const i=await this._updatingHandles.addPromise(this._setupMove3DOperation(this.updateGraphics.toArray(),t,o,"transform",!0));Se(i)||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"}),v.complete()},toggleTool:async()=>{if(1!==this.updateGraphics.length||!1===t.toggleToolOnClick)return;const i=await this._updatingHandles.addPromise(this._setupReshape3DOperation(e,t,o,!0));i&&!Se(i)&&(v.onEnd(),v.destroy(),this._setUpdateOperationHandle(i,t))}});return m.push(...this._getHandlesForComponent(v,t),o.on("immediate-click",e=>this._getCommonUpdateOperationClickHandlers(v,e,t),Z.WIDGET),o.on("key-down",e=>this._getCommonUpdateOperationKeyDownHandlers(v,e),Z.WIDGET),o.on("key-down",e=>{e.key!==q.constraint||e.repeat||(y.preserveAspectRatio=!y.preserveAspectRatio,e.stopPropagation())},Z.WIDGET),o.on("key-up",e=>{e.key===q.constraint&&(y.preserveAspectRatio=!y.preserveAspectRatio,e.stopPropagation())},Z.WIDGET)),v}async _setupMove2DOperation(e,t,o){const i="move";this.updateGraphics.addMany(e),await this._updatingHandles.addPromise(this._updateSpatialReference(e));const a=await this._updatingHandles.addPromise(this._getGraphicMover(e,t,o));if(Se(a))return a;const r=new se({activeComponent:a,tool:i,type:"update",onEnd:()=>{this._clearCursor(),s(l),s(p),a.destroy(),this._internalGraphicsLayer?.removeMany([...this.updateGraphics.toArray()])},undo:()=>{const e=this.updateGraphics.toArray();_e(r,e),r.refreshComponent(),this._emitUndoEvent({graphics:e,tool:i})},redo:()=>{const e=this.updateGraphics.toArray();be(r,e),r.refreshComponent(),this._emitRedoEvent({graphics:e,tool:i})},addToSelection:async e=>{await this._updatingHandles.addPromise(this._updateSpatialReference(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 n=!1;const p=[o.on("immediate-click",e=>this._getCommonUpdateOperationClickHandlers(r,e,t),Z.WIDGET),o.on("key-down",e=>{this._getCommonUpdateOperationKeyDownHandlers(r,e),e.key!==q.constraint||e.repeat||(n=!0,a.enableMoveAllGraphics=!a.enableMoveAllGraphics)},Z.WIDGET),o.on("key-up",e=>{e.key===q.constraint&&n&&(n=!1,a.enableMoveAllGraphics=!a.enableMoveAllGraphics)},Z.WIDGET)],l=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(Se(r))return r;const{ManipulatedObject3DGraphic:n,ReshapeTool3D:p}=r.module,l=new n({view:o,graphic:e}),h=V(l);if(0!==h)return l.destroy(),this._logError("sketch:reshape",`Reshape operation not supported for provided graphic(s) (${L(h)}).`),null;const c=t.reshapeOptions,d=new p({view:o,object:l,enableZVertex:t.enableZ&&"move"===c?.vertexOperation,enableZShape:t.enableZ&&"move"===c?.shapeOperation,enableMoveObject:"move"===c?.shapeOperation||"move-xy"===c?.shapeOperation,enableMidpoints:"split"===c?.edgeOperation,enableEdgeOffset:"offset"===c?.edgeOperation,snappingManager:this.snappingManager,sketchOptions:this.sketchOptions});o.tools.add(d),i||this.updateGraphics.add(l.graphic);const u=[],g=new se({activeComponent:d,tool:a,type:"update",onEnd:()=>{s(u),Oe(o,d),l.destroy()},canUndo:()=>!d.destroyed&&d.canUndo,undo:()=>{d.destroyed||(d.undo(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:a}))},canRedo:()=>!d.destroyed&&d.canRedo,redo:()=>{d.destroyed||(d.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"}),g.onEnd(),g.destroy();const i=await this._updatingHandles.addPromise(this._setupMove3DOperation(this.updateGraphics.toArray(),t,o,"transform",!0));Se(i)||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"}),g.complete()},toggleTool:async()=>{if(!1===t.toggleToolOnClick)return;g.onEnd(),g.destroy();const e=await this._updatingHandles.addPromise(this._setupGraphicTransform3DOperation(this.updateGraphics.toArray(),t,o,!0));Se(e)||this._setUpdateOperationHandle(e,t)}});return u.push(...this._getHandlesForComponent(g,t),o.on("immediate-click",e=>this._getCommonUpdateOperationClickHandlers(g,e,t),Z.WIDGET),o.on("key-down",e=>{this._getCommonUpdateOperationKeyDownHandlers(g,e)},Z.WIDGET)),g}async _setupTransformOrReshape2DOperation(e,t,o,i){this.updateGraphics.addMany(e),await this._updatingHandles.addPromise(this._updateSpatialReference(e));const a=await this._updatingHandles.addPromise("transform"===t?this._getBox(e,o,i):this._getReshape(e,o,i));if(Se(a))return a;const r=new se({activeComponent:a,type:"update",onEnd:()=>{s(p),s(n),r.activeComponent&&!r.activeComponent.destroyed&&r.activeComponent.destroy(),this._internalGraphicsLayer.removeMany(this.updateGraphics.toArray())},undo:()=>{_e(r,this.updateGraphics.toArray()),r.refreshComponent(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:r.tool})},redo:()=>{be(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(),r.onEnd(),r.destroy();const a=await this._updatingHandles.addPromise(this._setupTransformOrReshape2DOperation(t,"transform",o,i));if(Se(a))return;this._setUpdateOperationHandle(a,o)}else this.updateGraphics.add(e),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: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();0===o.length?r.complete():pe(o)?r.toggleTool():r.activeComponent.graphics=o,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.at(0),t=e.geometry;if(null!=t&&("reshape"===r.tool&&"point"===t.type||"transform"===r.tool&&"extent"===t.type))return;let a=null;"transform"===r.tool?a=await this._updatingHandles.addPromise(this._getReshape([e],o,i)):"reshape"===r.tool&&(a=await this._updatingHandles.addPromise(this._getBox([e],o,i))),Se(a)||(r.activeComponent?.destroy(),r.activeComponent=a,r.activeComponent&&(s(p),p=this._getHandlesForComponent(r,o)))}}),n=[i.on("immediate-click",e=>this._getCommonUpdateOperationClickHandlers(r,e,o),Z.WIDGET),i.on("key-down",e=>{if(this._getCommonUpdateOperationKeyDownHandlers(r,e),e.key===q.constraint&&!e.repeat&&r){const e=r.activeComponent;"box"===e?.type&&(e.preserveAspectRatio=!e.preserveAspectRatio)}},Z.WIDGET),i.on("key-up",e=>{if(e.key===q.constraint&&r){const e=r.activeComponent;"box"===e?.type&&(e.preserveAspectRatio=!e.preserveAspectRatio)}},Z.WIDGET)];let p=this._getHandlesForComponent(r,o);return r}async _getGraphicMover(e,t,o){const{enableMoveAllGraphics:i,highlightOptions:a}=t,r=await this._requireModule(import("../../views/draw/support/GraphicMover.js"));return Se(r)?r:new r.module.default({enableMoveAllGraphics:i,highlightName:a?.name,highlightsEnabled:!!a?.enabled,indicatorsEnabled:!1,graphics:e,view:o,callbacks:{onGraphicMoveStart:({dx:e,dy:t,graphic:o})=>{this._displayCursor("grabbing"),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._displayCursor("pointer"),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._displayCursor("move"),onGraphicPointerOut:()=>this._clearCursor()}})}async _getBox(e,t,o){const{enableRotation:i,enableScaling:a,highlightOptions:r,preserveAspectRatio:s}=t,n=await this._requireModule(import("../../views/draw/support/Box.js"));if(Se(n))return n;const p=this.view?.inputManager?.isModifierKeyDown(q.constraint);return new n.module.default({graphics:e,enableRotation:i,enableScaling:a,highlightName:r?.name,highlightsEnabled:!!r?.enabled,preserveAspectRatio:!!s!=!!p,layer:this._internalGraphicsLayer,view:o,sketchOptions:this.sketchOptions,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){const{highlightOptions:i,reshapeOptions:a}=t,r="split"===a?.edgeOperation,s="move"===a?.shapeOperation,n=!!a?.enableCreateCurveFromStraightEdge,p=await this._requireModule(import("../../views/draw/support/Reshape.js"));return Se(p)?p:new p.module.default({enableMidpoints:r,enableMovement:s,enableCurveOnMidpoint:n,graphic:e[0],highlightName:i?.name,highlightsEnabled:!!i?.enabled,layer:this._internalGraphicsLayer,snappingManager:this.snappingManager,sketchOptions:this.sketchOptions,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=>C(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=>C(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;if(!o)return[];switch(o.type){case"graphic-mover":return[o.on("graphic-click",({graphic:o,viewEvent:i})=>{i.native?.shiftKey&&t.multipleSelectionEnabled&&(i.stopPropagation(),e.removeFromSelection(o))}),o.on("graphic-move-start",t=>e.addToHistory(Te(t.allGraphics)))];case"box":return[o.on("graphic-click",o=>this._onTransformOrReshape2DGraphicClick(e,t,o)),o.on("move-start",t=>e.addToHistory(Te(t.graphics))),o.on("rotate-start",t=>e.addToHistory(Te(t.graphics))),o.on("scale-start",t=>e.addToHistory(Te(t.graphics)))];case"reshape":return[o.on("graphic-click",o=>this._onTransformOrReshape2DGraphicClick(e,t,o)),o.on("move-start",t=>e.addToHistory(Te([t.mover]))),o.on("reshape-start",t=>e.addToHistory(Te([t.graphic]))),o.on("vertex-add",t=>e.addToHistory(Te([t.oldGraphic]))),o.on("vertex-remove",t=>e.addToHistory(Te([t.oldGraphic])))];case"move-3d":return[o.events.on("record-undo",({updates:t})=>{e.addToHistory({updates:t})}),o.events.on("move-start",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:0,dy:0,mover:e.objects.length>0?e.objects[0].graphic:null,type:"move-start"},type:"update"})}),o.events.on("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.objects.length>0?e.objects[0].graphic:null,type:"move"},type:"update"})}),o.events.on("move-stop",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:0,dy:0,mover:e.objects.length>0?e.objects[0].graphic:null,type:"move-stop"},type:"update"})}),o.events.on("immediate-click",o=>{o.shiftKey?this._toggleSelection([o.object.graphic],e,t):e.toggleTool()})];case"transform-3d":return[o.events.on("record-undo",({updates:t})=>{e.addToHistory({updates:t})}),o.events.on("translate-start",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,dx:e.dxScreen,dy:e.dyScreen,type:"move-start"},type:"update"})}),o.events.on("translate-stop",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,dx:e.dxScreen,dy:e.dyScreen,type:"move-stop"},type:"update"})}),o.events.on("rotate-start",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,angle:e.angle,type:"rotate-start"},type:"update"})}),o.events.on("rotate-stop",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,angle:e.angle,type:"rotate-stop"},type:"update"})}),o.events.on("scale-start",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,xScale:e.xScale,yScale:e.yScale,type:"scale-start"},type:"update"})}),o.events.on("scale-stop",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,xScale:e.xScale,yScale:e.yScale,type:"scale-stop"},type:"update"})}),o.events.on("translate",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,dx:e.dxScreen,dy:e.dyScreen,type:"move"},type:"update"})}),o.events.on("rotate",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,angle:e.angle,type:"rotate"},type:"update"})}),o.events.on("scale",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,xScale:e.xScale,yScale:e.yScale,type:"scale"},type:"update"})}),o.events.on("immediate-click",o=>{o.shiftKey?this._toggleSelection([o.object.graphic],e,t):e.toggleTool()})];case"reshape-3d":return[o.events.on("reshape",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e,mover:e.object.graphic},type:"update"})}),o.events.on("move",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e,mover:e.object.graphic},type:"update"})}),o.events.on("vertex-add",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:e,type:"update"})}),o.events.on("vertex-remove",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:e,type:"update"})}),o.events.on("immediate-click",o=>{o.shiftKey?this._toggleSelection([o.object.graphic],e,t):e.toggleTool()})]}}_onTransformOrReshape2DGraphicClick(e,t,o){const{graphic:i,viewEvent:a}=o;return a.native?.shiftKey&&this.hasGraphic(i)?(a.stopPropagation(),e.removeFromSelection(i)):t.toggleToolOnClick?(a.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=te(t),a=await t.defer(()=>this._getFirstHit(i));if(null==a)return void e.complete();if(t.native.shiftKey&&this._toggleSelection([a.graphic],e,o))return void t.stopPropagation();this.updateGraphics.includes(a.graphic)?t.stopPropagation():e.complete()}_toggleSelection(e,t,o){const i=!!o.multipleSelectionEnabled;return e.some(e=>null!=e&&(!(!i||!this.hasGraphic(e))&&(this.updateGraphics.includes(e)?t.removeFromSelection(e):t.addToSelection(e),!0)))}_getCommonUpdateOperationKeyDownHandlers(e,t){if(!e)return;const o=t.key;o===q.undo&&e.canUndo()?(t.stopPropagation(),e.undo()):o===q.redo&&e.canRedo()?(t.stopPropagation(),e.redo()):o===q.cancel?(t.stopPropagation(),e.cancel()):this.allowDeleteKey&&q.delete.includes(o)&&this._onDeleteKey(t)}_onDeleteKey(e){this._operationHandle&&"update"===this._operationHandle.type&&null!=this.activeComponent&&(e.stopPropagation(),this.delete())}_removeDefaultLayer(){this._internalGraphicsLayer&&(this.view?.map?.remove(this._internalGraphicsLayer),this._internalGraphicsLayer=l(this._internalGraphicsLayer))}_isComponentGraphic(e){const{activeComponent:t}=this;return!(!e||null==t)&&(e.attributes?.esriSketchTool||"draw-2d"===t.type&&t.graphic===e||("box"===t.type||"reshape"===t.type)&&t.isUIGraphic(e))}_clearCursor(){this.removeHandles(ue)}_displayCursor(e){this.removeHandles(ue),this.view?.container&&null!=e&&this.addHandles(this.view.acquireCursor(e,"high"),ue)}_logError(e,t,o){p.getLogger(this).error(new a(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"})}_onLayerGraphicsChangeCallback(e){if(null!=this._operationHandle){const{updateGraphics:t}=this;for(const o of e.removed)if(t.includes(o)){if(!(t.length>1)){this._operationHandle.cancel();break}this._operationHandle.removeFromSelection(o)}}}async _setupAdvancedDrawToolIntegrationMaybe(){if(this.isUsingLegacyCreateTools||this.pluginManager)return;const{PluginManager:e}=await import("./support/PluginManager.js");this.isUsingLegacyCreateTools||(this._pluginManager=new e({sketchViewModel:this}))}async _setupDrawTool(e,o,i){if(this.isUsingLegacyCreateTools||!this._pluginManager)return null;const a=this.view,r=await import("../../views/draw/DrawTool.js"),s=await(this.pluginManager?.makeRenderer({useTextSymbol:"text"===i})),p=new r.DrawTool({view:a,elevationInfo:this._layerAdapter?.elevationInfo??H("3d"===a.type),hasZ:!!o.hasZ,sketchOptions:this.sketchOptions,renderer:s,defaultZ:o.defaultZ??0,directionOptions:o.directionOptions,snappingManager:this.snappingManager});p.addHandles(n(s));const l=new t({...o.graphicProperties,attributes:{...o.graphicProperties?.attributes},symbol:this._getGraphicSymbolFromTool(i)});return this._set("createGraphic",l),a.addAndActivateTool(p),p.begin(e),p}get test(){}wait(){return f(()=>!this.updating)}_disablePopupEnabled(e){return"3d"!==this.view?.type||this.updateOnGraphicClick||(e?.toggleToolOnClick??!1)}_disablePopup(e){this._disablePopupEnabled(e)&&this.view&&null==this._originalPopupEnabled&&(this._originalPopupEnabled=this.view.popupEnabled,this.view.popupEnabled=!1)}_restorePopup(e){this._disablePopupEnabled(e)&&this.view&&null!=this._originalPopupEnabled&&(this.view.popupEnabled=this._originalPopupEnabled,this._originalPopupEnabled=null)}async _waitViewReady(){const e=this.view;e?(h(this._viewReadyAbortController),this._viewReadyAbortController=new AbortController,await d(f(()=>e?.ready),this._viewReadyAbortController.signal)):this._logMissingView()}_logMissingView(){this._logError("sketch:missing-property",ve("view"))}_logMissingLayer(){this._logError(me,ve("layer"))}};e([_()],ye.prototype,"_defaultSnappingManager",void 0),e([_()],ye.prototype,"_layerAdapter",null),e([_()],ye.prototype,"_pluginManager",void 0),e([_()],ye.prototype,"_operationHandle",void 0),e([_({readOnly:!0})],ye.prototype,"_updatingHandles",void 0),e([_({readOnly:!0})],ye.prototype,"activeTool",null),e([_({readOnly:!0})],ye.prototype,"activeCreateToolDrawMode",null),e([_()],ye.prototype,"activeTooltip",null),e([_({types:x})],ye.prototype,"activeFillSymbol",void 0),e([_()],ye.prototype,"activeLineSymbol",void 0),e([_()],ye.prototype,"activeVertexSymbol",void 0),e([_()],ye.prototype,"allowDeleteKey",void 0),e([_({readOnly:!0})],ye.prototype,"createGraphic",null),e([_()],ye.prototype,"defaultCreateOptions",null),e([_()],ye.prototype,"defaultUpdateOptions",null),e([_({type:N,nonNullable:!0})],ye.prototype,"labelOptions",null),e([_()],ye.prototype,"layer",void 0),e([_({types:x})],ye.prototype,"pointSymbol",void 0),e([_({types:x})],ye.prototype,"polygonSymbol",void 0),e([_({types:x})],ye.prototype,"polylineSymbol",void 0),e([_()],ye.prototype,"meshSymbol",void 0),e([_({type:U})],ye.prototype,"textSymbol",null),e([_({type:J,nonNullable:!0})],ye.prototype,"snappingOptions",null),e([_()],ye.prototype,"snappingManager",null),e([_({readOnly:!0})],ye.prototype,"state",null),e([_({type:B,nonNullable:!0})],ye.prototype,"tooltipOptions",null),e([_({readOnly:!0})],ye.prototype,"updateGraphics",void 0),e([_()],ye.prototype,"updateOnGraphicClick",void 0),e([_()],ye.prototype,"updating",null),e([_()],ye.prototype,"creationMode",void 0),e([_({type:$,nonNullable:!0})],ye.prototype,"valueOptions",null),e([_({types:x})],ye.prototype,"vertexSymbol",void 0),e([_({value:null})],ye.prototype,"view",null),e([_({constructOnly:!0,type:z})],ye.prototype,"sketchOptions",void 0),e([_({constructOnly:!0})],ye.prototype,"useLegacyCreateTools",void 0),e([_()],ye.prototype,"isUsingLegacyCreateTools",null),e([_()],ye.prototype,"pluginManager",null),e([_()],ye.prototype,"drawTool",null),e([_()],ye.prototype,"rootPlugins",null),e([_()],ye.prototype,"effectiveAvailablePlugins",null),e([_()],ye.prototype,"firstPluginWithSwappableLeaf",null),e([_()],ye.prototype,"multiplePluginsActive",null),ye=e([b("esri.widgets.Sketch.SketchViewModel")],ye);const me="sketch:missing-property",ve=e=>`Property '${e}' is missing on SketchViewModel.`;function fe(e){return"polygon"===e||"rectangle"===e||"circle"===e}function _e(e,t){we("undo",e.history.undo,e.history.redo,t)}function be(e,t){we("redo",e.history.redo,e.history.undo,t)}function we(e,t,o,i){const a=t.pop();if(!a)return;const r=a.updates,s=[];i.forEach((t,o)=>{const i=r[o];null!=i&&("geometry"in i&&null!=i.geometry&&(s.push({geometry:t.geometry}),t.geometry=i.geometry),"symbol"in i&&null!=i.symbol&&(s.push({symbol:t.symbol}),t.symbol=i.symbol),"undo"in i&&(s.push(i),i[e](t)))}),o.push({updates:s})}function Ge(e,t){null!=e&&t.hasGrabbedManipulators&&(e.activeTool=null)}function Te(e){return{updates:e.map(({geometry:e})=>"mesh"===e?.type?{geometry:e.cloneShallow()}:{geometry:e})}}function Oe(e,t){e.tools?.remove(t),t.destroyed||t.destroy()}function Se(e){return"requireError"in e&&"aborted"===e.requireError}export{ye as default};
2
+ import{__decorate as e}from"tslib";import t from"../../Graphic.js";import{isSome as o}from"../../core/arrayUtils.js";import i from"../../core/Collection.js";import a from"../../core/Error.js";import{EventedAccessor as r}from"../../core/Evented.js";import{drainHandles as s,destroyHandle as n}from"../../core/handleUtils.js";import"../../core/has.js";import p from"../../core/Logger.js";import{destroyMaybe as l,abortMaybe as h}from"../../core/maybe.js";import{createAbortError as c,whenOrAbort as d,ignoreAbortErrors as u}from"../../core/promiseUtils.js";import{watch as g,syncAndInitial as y,on as m,when as v,whenOnce as f}from"../../core/reactiveUtils.js";import{property as _,subclass as b}from"../../core/accessorSupport/decorators.js";import{UpdatingHandles as w}from"../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as G}from"../../geometry/ellipsoidUtils.js";import{canProjectWithoutEngine as T,isLoaded as O,load as S,project as E}from"../../geometry/projectionUtils.js";import{geometryToCoordinates as C}from"../../geometry/support/coordsUtils.js";import{equals as M}from"../../geometry/support/spatialReferenceUtils.js";import A from"../../layers/GraphicsLayer.js";import{isIntegratedMeshLayer as k}from"../../layers/support/layerUtils.js";import{getEffectiveElevationInfo as H}from"../../support/elevationInfoUtils.js";import D from"../../symbols/FillSymbol3DLayer.js";import I from"../../symbols/MeshSymbol3D.js";import P from"../../symbols/SimpleFillSymbol.js";import j from"../../symbols/SimpleLineSymbol.js";import R from"../../symbols/SimpleMarkerSymbol.js";import U from"../../symbols/TextSymbol.js";import{symbolTypes as x}from"../../symbols/support/typeUtils.js";import{isSupportedObjectResultMessage as L}from"../../views/3d/interactive/editingTools/isSupportedObjectUtils.js";import{isSupportedObject as F}from"../../views/3d/interactive/editingTools/move/isSupportedObject.js";import{isSupportedObject as V}from"../../views/3d/interactive/editingTools/reshape/isSupportedObject.js";import{isSupportedGraphic as K}from"../../views/3d/interactive/editingTools/transform/isSupportedGraphic.js";import{addUniqueLayer as W}from"../../views/draw/support/layerUtils.js";import{ViewEventPriorities as Z}from"../../views/input/InputManager.js";import{sketchKeys as q}from"../../views/interactive/keybindings.js";import N from"../../views/interactive/sketch/SketchLabelOptions.js";import z from"../../views/interactive/sketch/SketchOptions.js";import B from"../../views/interactive/sketch/SketchTooltipOptions.js";import $ from"../../views/interactive/sketch/SketchValueOptions.js";import{SnappingManager as Y}from"../../views/interactive/snapping/SnappingManager.js";import J from"../../views/interactive/snapping/SnappingOptions.js";import{setupSnappingToggleHandles as Q}from"../../views/interactive/snapping/snappingUtils.js";import{defaultHighlightName as X}from"../../views/support/HighlightDefaults.js";import{findFirstGraphicHit as ee}from"../../views/support/hitTestSelectUtils.js";import{createScreenPointFromEvent as te}from"../../views/support/screenUtils.js";import oe from"./adapters/layer/GraphicsLayerAdapter.js";import ie from"./adapters/layer/MapNotesLayerAdapter.js";import{CreateOperationHandle as ae,DrawToolOperationHandle as re,UpdateOperationHandle as se}from"./support/OperationHandle.js";import{getLegacyTool as ne,graphicsHaveTooFewVerticesForBox as pe,getModeFromCreateOptions as le,getDrawToolGeometryTypeFromCreateTool as he}from"./support/sketchUtils.js";const ce={defaultZ:0},de={reshapeOptions:{edgeOperation:"split",shapeOperation:"move",vertexOperation:"move",enableCreateCurveFromStraightEdge:!0},enableMoveAllGraphics:!0,enableRotation:!0,enableScaling:!0,multipleSelectionEnabled:!0,preserveAspectRatio:!1,toggleToolOnClick:!0,enableZ:!0,highlightOptions:{enabled:!0,name:X},tool:"transform"},ue=Symbol(),ge=Symbol();let ye=class extends r{constructor(e){super(e),this._defaultSnappingManager=null,this._internalGraphicsLayer=new A({listMode:"hide",internal:!0,title:"SVM Internal"}),this._operationHandle=null,this._updatingHandles=new w,this._viewHandlesKey="viewHandles",this.activeFillSymbol=null,this.activeLineSymbol=null,this.activeVertexSymbol=null,this.allowDeleteKey=!0,this.layer=null,this.pointSymbol=new R({style:"circle",size:6,color:[255,255,255],outline:{color:[50,50,50],width:1}}),this.polygonSymbol=new P({color:[150,150,150,.2],outline:{color:[50,50,50],width:2}}),this.polylineSymbol=new j({color:[130,130,130,1],width:2}),this.meshSymbol=new I({symbolLayers:new i([new D])}),this.updateGraphics=new i,this.updateOnGraphicClick=!0,this.creationMode="single",this.vertexSymbol=new R({style:"circle",size:6,color:[255,255,255],outline:{color:[50,50,50],width:1}}),this.sketchOptions=new z,this.useLegacyCreateTools=!0,this._moduleLoaderAbortController=null,this._viewReadyAbortController=null,this._sketchContinuationFlag=!1,this._onLayerAdapterChange=async()=>{const{_layerAdapter:e}=this;if(this.removeHandles(ge),!e)return;const t=[e.onGraphicsChange(e=>this._onLayerGraphicsChangeCallback(e)),g(()=>e.elevationInfo,e=>{e!==this._internalGraphicsLayer.elevationInfo&&(this.cancel(),this._internalGraphicsLayer&&(this._internalGraphicsLayer.elevationInfo=e))},y)].filter(o);this.addHandles(t,ge)},this._originalPopupEnabled=null,this.defaultCreateOptions=ce,this.defaultUpdateOptions=de,this.snappingOptions=e?.snappingManager?.options??e?.snappingOptions??new J,this.textSymbol=new U({text:"text"})}initialize(){this._updatingHandles.addPromise(this._setupAdvancedDrawToolIntegrationMaybe()),this.addHandles([m(()=>this.view?.map?.layers,"change",e=>{this.layer&&e.removed.includes(this.layer)&&this.cancel()}),g(()=>this._layerAdapter,()=>this._onLayerAdapterChange(),y),g(()=>this.view,e=>{this._defaultSnappingManager=l(this._defaultSnappingManager),e&&(this.snappingManager||(this._defaultSnappingManager=new Y({view:e,options:this.snappingOptions})),"2d"===e.type?(import("../../views/2d/interactive/editingTools.js"),this._updatingHandles.addPromise(this._setupAdvancedDrawToolIntegrationMaybe())):"3d"===e.type&&(import("../../views/3d/interactive/editingTools.js"),import("../../views/3d/layers/GraphicsLayerView3D.js")))},y),g(()=>this.view?.spatialReference,(e,t)=>{e&&t&&!e.equals(t)&&this.cancel()})]),Q(this)}destroy(){this.cancel(),this._removeDefaultLayer(),this._defaultSnappingManager=l(this._defaultSnappingManager),this._set("snappingManager",null),this._set("view",null),this._updatingHandles.destroy(),this._pluginManager=l(this.pluginManager),this.emit("destroy")}get _layerAdapter(){const{layer:e}=this;switch(e?.type){case"graphics":return new oe(e);case"map-notes":return new ie(e);default:return null}}get activeTool(){return this._operationHandle?.tool??null}get activeCreateToolDrawMode(){const e=this._operationHandle;if("create"===e?.type&&e.activeComponent&&"mode"in e.activeComponent)return e.activeComponent.mode;if("draw-2.0"===e?.activeComponent?.type){const t=e.activeComponent.pluginStack.map(e=>e.configuration).filter(o).toArray();if(t.length>0)return this._pluginManager?.getDrawingModeEquivalentToPluginStack(t)}return null}get activeTooltip(){const{activeComponent:e,destroyed:t}=this,o=!t&&e&&"tooltip"in e?e.tooltip:null;return o?.visible?o:null}get activeComponent(){return this._operationHandle?.activeComponent??null}get createGraphic(){return null==this.activeComponent||"draw-3d"!==this.activeComponent.type&&"draw-2d"!==this.activeComponent.type?this._get("createGraphic"):this.activeComponent.graphic}get defaultCreateOptions(){return this._get("defaultCreateOptions")}set defaultCreateOptions(e){this._set("defaultCreateOptions",{...ce,...e})}get defaultUpdateOptions(){return this._get("defaultUpdateOptions")}set defaultUpdateOptions(e){this._set("defaultUpdateOptions",{...de,...e,reshapeOptions:{...de.reshapeOptions,...e?.reshapeOptions},highlightOptions:{...de.highlightOptions,...e?.highlightOptions}})}get labelOptions(){return this.sketchOptions.labels}set labelOptions(e){this.sketchOptions.labels=e}get textSymbol(){return this._get("textSymbol")}set textSymbol(e){this._set("textSymbol",e)}get snappingOptions(){return this.snappingManager?.options??this._get("snappingOptions")}set snappingOptions(e){null!=this._defaultSnappingManager&&(this._defaultSnappingManager.options=e),this._set("snappingOptions",e)}get snappingManager(){return this._isOverridden("snappingManager")&&this._get("snappingManager"),this._defaultSnappingManager}set snappingManager(e){if(e)this._isOverridden("snappingManager")||(this._defaultSnappingManager=l(this._defaultSnappingManager)),this._override("snappingManager",e);else{const{view:e}=this;!this._defaultSnappingManager&&e&&(this._defaultSnappingManager=new Y({options:this.snappingOptions,view:e})),this._clearOverride("snappingManager")}}get state(){const e=!(!this.view?.ready||!this.layer),t=this._operationHandle;return e&&t?"active":e?"ready":"disabled"}get tooltipOptions(){return this.sketchOptions.tooltips}set tooltipOptions(e){this.sketchOptions.tooltips=e}get updating(){return this.activeComponent&&"updating"in this.activeComponent&&this.activeComponent.updating||!!(this._updatingHandles.updating||this.snappingManager?.updating||this.drawTool?.updating)}get valueOptions(){return this.sketchOptions.values}set valueOptions(e){this.sketchOptions.values=e}get view(){return this._get("view")}set view(e){const t=this._get("view");if(t){const{container:e,map:o}=t;e&&this._clearCursor(),o?.remove(this._internalGraphicsLayer),this.removeHandles(this._viewHandlesKey),this.cancel()}const o="view-ready";this.removeHandles(o),e&&this.addHandles(v(()=>e.ready,t=>{this.removeHandles(this._viewHandlesKey),t&&this.addHandles(this._generateViewHandles(e),this._viewHandlesKey)},y),o),this._set("view",e),this._updatingHandles.addPromise(this._setupAdvancedDrawToolIntegrationMaybe())}get isUsingLegacyCreateTools(){return this.useLegacyCreateTools||"2d"!==this.view?.type}get pluginManager(){return this._pluginManager}get drawTool(){return"draw-2.0"!==this.activeComponent?.type?null:this.activeComponent}get rootPlugins(){return this._pluginManager?.availablePlugins}set rootPlugins(e){this._overrideIfSome("rootPlugins",e)}get effectiveAvailablePlugins(){if(this.isUsingLegacyCreateTools)return null;const e=this.view?.type??"2d",{firstPluginWithSwappableLeaf:t}=this;return t?t.availableDownstreamPlugins.filter(t=>!t.excludedViews?.includes(e)):this.rootPlugins?.filter(t=>!t.excludedViews?.includes(e)).filter(o)??[]}get firstPluginWithSwappableLeaf(){const e=this.view?.type??"2d",t=this.drawTool?.pluginStack.toArray().map(e=>e.configuration).findLast(t=>null!=t&&!t.hidden&&t.availableDownstreamPlugins&&t.availableDownstreamPlugins.filter(t=>!t.excludedViews?.includes(e))?.length>1);return t}get multiplePluginsActive(){return!!this.drawTool&&this.drawTool.pluginStack.length>1}addGraphic(e){this._layerAdapter?.add(e)}addGraphics(e){this._layerAdapter?.addMany(e)}hasGraphic(e){return!!this._layerAdapter?.has(e)}removeGraphic(e){this._layerAdapter?.remove(e)}removeGraphics(e){this._layerAdapter?.removeMany(e)}removeAllGraphics(){this._layerAdapter?.removeAll()}cancel(){this._moduleLoaderAbortController=h(this._moduleLoaderAbortController),this._viewReadyAbortController=h(this._viewReadyAbortController),this._sketchContinuationFlag=!0,this._operationHandle?.cancel()}complete(){this._operationHandle?.complete()}delete(){const{state:e,updateGraphics:t}=this;if("active"===e&&t.length){const{activeTool:e}=this,o=t.toArray();this.removeGraphics(o),this.cancel(),this._emitDeleteEvent({graphics:o,tool:e})}}duplicate(){if("active"===this.state&&this.updateGraphics.length){const e=this.updateGraphics.map(e=>e.clone()).toArray();return this.addGraphics(e),this.emit("duplicate",{graphics:e,type:"duplicate"}),e}return[]}async create(e,t){this.cancel(),await this._waitViewReady();const{view:o,layer:i}=this;if(!o||"disabled"===this.state)throw i||this._logMissingLayer(),c();if(null!=o.activeTool&&(o.activeTool=null),!e)return void this._logError("sketch:missing-parameter","Missing parameter 'tool'.");W(o,this._internalGraphicsLayer);const a=await this._updatingHandles.addPromise(this._setupCreateOperation(e,t));if(null==a||this.destroyed)return void o.map?.remove(this._internalGraphicsLayer);const r=ne(e),s=()=>{if(a===this._operationHandle){const o=this.createGraphic,i=this._operationHandle.cancelled;if(this._operationHandle.destroy(),this._operationHandle=null,this._set("createGraphic",null),this.view?.map?.remove(this._internalGraphicsLayer),a.cancelled||null==o||this.addGraphic(o),this._sketchContinuationFlag=!1,this.emit("create",{graphic:o,state:i?"cancel":"complete",tool:r??"point",toolEventInfo:null,type:"create"}),i||this._sketchContinuationFlag)return;const{creationMode:s}=this;if("continuous"===s){if(t?.geometryToPlace)return;this._updatingHandles.consumePromise(u(this.create(e,t)))}else"update"===s&&o&&this._updatingHandles.consumePromise(u(this.update([o])))}};a.on("complete",s),this._operationHandle=a,o.ready&&o.focus()}async place(e,t){return await e.load(),this.create("mesh",{mode:"click",hasZ:e.hasZ,geometryToPlace:e,...t})}async update(e,t){this.cancel(),await this._waitViewReady();const{layer:o,view:i,state:a}=this;if(!i||"disabled"===a)throw o||this._logMissingLayer(),c();null!=i.activeTool&&(i.activeTool=null);const r=Array.isArray(e)?e:[e];if(null==e||!r?.length)return void this._logError("sketch:missing-parameter","Missing parameter 'graphics'.");if(r.some(e=>this.hasGraphic(e)?null==e.geometry&&(this._logError("sketch:invalid-parameter","Parameter 'graphics' contains one or more graphics with an unsupported geometry."),!0):(this._logError("sketch:invalid-parameter","Parameter 'graphics' contains one or more graphics missing from the supplied GraphicsLayer."),!0)))return;const s=await this._updatingHandles.addPromise(this._setupUpdateOperation(r,t));this.destroyed||null==s||Se(s)||(W(i,this._internalGraphicsLayer),this._setUpdateOperationHandle(s,t),this.emit("update",{graphics:r,state:"start",aborted:!1,tool:s.tool,toolEventInfo:null,type:"update"}))}async _updateSpatialReference(e){const t=this.view;if(t){e=Array.isArray(e)?e:[e];for(const o of e)null==o.geometry||"mesh"===o.geometry.type||M(o.geometry.spatialReference,t.spatialReference)||(T(o.geometry.spatialReference,t.spatialReference)||O()||await S(),o.geometry=E(o.geometry,t.spatialReference))}else this._logMissingView()}undo(){this.canUndo()&&this._operationHandle?.undo()}redo(){this.canRedo()&&this._operationHandle?.redo()}canUndo(){return!!this._operationHandle?.canUndo()}canRedo(){return!!this._operationHandle?.canRedo()}toggleUpdateTool(){this._operationHandle?.toggleTool()}async _getFirstHit(e){const t=this.view;if(!t)return this._logMissingView(),null;if("2d"===t.type){const o=[];t.map.allLayers.forEach(e=>{"vector-tile"!==e.type&&"imagery"!==e.type||o.push(e)});const i=await t.hitTest(e,{exclude:o});return ee(i.results)}const o=[t.map.ground];t.map.allLayers.forEach(e=>{k(e)&&o.push(e)});const i=await t.hitTest(e,{exclude:o});if(i.results.length>0){const e=i.results[0];if(null!=e&&"graphic"===e.type&&e.graphic&&(!i.ground.mapPoint||t.map.ground.opacity<1||i.ground.distance-(e.distance??0)>-Math.min(3*i.ground.distance,"global"===t.viewingMode?G(t.renderCoordsHelper.spatialReference).radius/t.renderCoordsHelper.unitInMeters:Number.POSITIVE_INFINITY)))return e}return null}_generateViewHandles(e){return[e.on("immediate-click",async e=>{const t="active"===this.state&&"create"===this._operationHandle?.type;"disabled"!==this.state&&!t&&this.updateOnGraphicClick&&await this._updatingHandles.addPromise(this._handleImmediateClick(e))},Z.WIDGET)]}async _handleImmediateClick(e){const t=await e.defer(()=>this._getFirstHit(te(e)));let o=null;if(null!=t){const i=t.graphic;this.updateGraphics.includes(i)||this.hasGraphic(i)?(e.stopPropagation(),o=i):"2d"!==this.view?.type||this._isComponentGraphic(i)||"active"!==this.state||this.cancel()}else"active"===this.state&&this.cancel();null==o||this.updateGraphics.includes(o)||await this.update([o],{...this.defaultUpdateOptions,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions}})}async _setupCreateOperation(e,t){const o=this.view;if(!o)return this._logMissingView(),null;const i={hasZ:"3d"===o.type,...this.defaultCreateOptions,...t};await this._setupAdvancedDrawToolIntegrationMaybe();const a="string"==typeof e?this.pluginManager?.getPluginsEquivalentToCreateTool(e,i.mode):e,r=ne(e);if(a&&!this.isUsingLegacyCreateTools){const e=await this._setupDrawTool(a,i,r??"polyline");if(e)return this._setupDrawToolOperationHandle(e,r??"point")}if(!r)return null;const s=await this._setupDrawGraphicTool(r,o,i);return null==s?null:(o.tools.add(s),o.activeTool=s,this._setupCreateOperationHandle(s,r))}async _setupDrawGraphicTool(e,t,o){if("multipoint"===e&&"3d"===t.type)return this._logError("sketch:create","Multipoint geometries are not supported in SceneView."),null;if(!t)return this._logMissingView(),null;const{cursor:i,defaultZ:a,hasZ:r,geometryToPlace:s,graphicProperties:n,mode:p,preserveAspectRatio:l}=o,h=le(p,e),c=he(e),d=o?.optionsPerTool?.has(e)?o.optionsPerTool.get(e):{},u=d?.preserveAspectRatio??l??"rectangle"!==e,g={centered:"rectangle"!==e&&!("circle"===e&&!u),cursor:i,defaultZ:a,forceUniformSize:u,graphicProperties:{...n,attributes:{...n?.attributes}},geometryToPlace:s,geometryType:c,mode:h,graphicSymbol:o.graphicSymbol??this._getGraphicSymbolFromTool(e),hasZ:r,snappingManager:this.snappingManager,snapToScene:!1,view:t,...d};return"2d"===t.type?this._makeDrawGraphicTool2D(g):this._makeDrawGraphicTool3D(g)}async _makeDrawGraphicTool2D(e){const t=await this._requireModule(import("../../views/2d/interactive/editingTools.js"));return Se(t)||this.destroyed?null:new t.module.DrawGraphicTool2D({...e,activeVertexSymbol:this.activeVertexSymbol,regularVerticesSymbol:this.vertexSymbol,activeLineSymbol:this.activeLineSymbol,activeFillSymbol:fe(e.geometryType)?this.activeFillSymbol:null,sketchOptions:this.sketchOptions})}async _makeDrawGraphicTool3D(e){const t=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));return Se(t)||this.destroyed?null:new t.module.DrawGraphicTool3D({...e,elevationInfo:this._layerAdapter?.elevationInfo,snapToScene:!0,sketchOptions:this.sketchOptions})}_setupCreateOperationHandle(e,t){const o=this.view;if(!o)return this._logMissingView(),null;let i=null;const a=e.forceUniformSize,r=e.centered,n=[o.on("key-down",t=>{if(t.key===q.pan)t.stopPropagation(),t.repeat||(e.enabled=!1);else if(t.key===q.complete)t.stopPropagation(),e.completeCreateOperation();else if(t.key!==q.vertexAdd||t.repeat)t.key===q.undo?(t.stopPropagation(),p.undo()):t.key===q.redo?(t.stopPropagation(),p.redo()):t.key!==q.constraint||"rectangle"!==e.geometryType&&"circle"!==e.geometryType||t.repeat?t.key===q.center&&(t.repeat||(e.centered=!r,t.stopPropagation())):(e.forceUniformSize=!a,t.stopPropagation());else{const o=e.drawOperation.geometryType;"polyline"!==o&&"polygon"!==o&&"multipoint"!==o||(t.stopPropagation(),e.drawOperation.commitStagedVertex())}},Z.WIDGET),o.on("key-up",t=>{t.key===q.pan?e.enabled=!0:t.key!==q.constraint||"rectangle"!==e.geometryType&&"circle"!==e.geometryType?t.key===q.center&&(e.centered=r,t.stopPropagation()):(e.forceUniformSize=a,t.stopPropagation())},Z.WIDGET),e.on("vertex-add",t=>{switch(i=null==i?"start":"active",t.operation){case"apply":this.emit("create",{graphic:e.graphic,state:i,tool:this.activeTool,toolEventInfo:t,type:"create"});break;case"undo":this._emitUndoEvent({graphics:[e.graphic],tool:e.geometryType});break;case"redo":this._emitRedoEvent({graphics:[e.graphic],tool:e.geometryType})}}),e.on("cursor-update",t=>{e.drawOperation.numCommittedVertices>0&&this.emit("create",{graphic: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:e.graphic,state:"active",tool:this.activeTool,toolEventInfo:t,type:"create"});break;case"undo":this._emitUndoEvent({graphics:[e.graphic],tool:e.geometryType});break;case"redo":this._emitRedoEvent({graphics:[e.graphic],tool:e.geometryType})}}),e.on("complete",e=>{this._set("createGraphic",e.graphic),i="complete",e.aborted?p&&p.cancel():p&&p.complete()}),g(()=>this._getGraphicSymbolFromTool(t),t=>{e.graphicSymbol=t})],p=new ae({activeComponent:e,type:"create",onEnd:()=>{s(n),o.tools?.remove(e)},undo:()=>{e.canUndo&&e.undo()},redo:()=>{e.canRedo&&e.redo()},canUndo:()=>e.canUndo,canRedo:()=>e.canRedo});return p}_setupDrawToolOperationHandle(e,t){const i=this.view;if(!i)return this._logMissingView(),null;let a=null;const r=[i.on("key-down",t=>{t.key===q.pan&&(t.stopPropagation(),t.repeat||(e.editable=!1))},Z.WIDGET),i.on("key-up",t=>{t.key===q.pan&&(e.editable=!0)},Z.WIDGET),e.on("before-vertex-add",t=>{const o=e.mostUpstreamPlugin?.configuration;if(o&&"legacyCreateTool"in o&&("point"===o?.legacyCreateTool||"text"===o.legacyCreateTool)){const e=t.detail.originalEvent;return void(e&&"key"in e&&e.key===q.vertexAdd&&t.preventDefault())}}),e.on("before-complete",t=>{const o=e.editGeometry,i=o?.allVertices.length??0;(i<1||"polyline"===o?.type&&i<2||"polygon"===o?.type&&i<2)&&t.preventDefault()}),e.on("vertex-add",i=>{switch(this.createGraphic&&(this.createGraphic.geometry=e.unprocessedGeometry),a=null==a?"start":"active",i.operation){case"apply":this.emit("create",{graphic:this.createGraphic,state:a,tool:this.activeTool,toolEventInfo:i,type:"create"});break;case"undo":this._emitUndoEvent({graphics:[this.createGraphic].filter(o),tool:t});break;case"redo":this._emitRedoEvent({graphics:[this.createGraphic].filter(o),tool:t})}}),e.on("cursor-update",t=>{this.createGraphic&&(this.createGraphic.geometry=e.unprocessedGeometry),(t.vertices[0]?.vertexIndex>0||t.vertices[0]?.componentIndex>0)&&this.emit("create",{graphic:this.createGraphic,state:"active",tool:this.activeTool,toolEventInfo:{coordinates:t.vertices[0].coordinates,type:"cursor-update"},type:"create"})}),e.on("vertex-remove",i=>{switch(this.createGraphic&&(this.createGraphic.geometry=e.unprocessedGeometry),i.operation){case"apply":this.emit("create",{graphic:this.createGraphic,state:"active",tool:this.activeTool,toolEventInfo:i,type:"create"});break;case"undo":this._emitUndoEvent({graphics:[this.createGraphic].filter(o),tool:t});break;case"redo":this._emitRedoEvent({graphics:[this.createGraphic].filter(o),tool:t})}}),e.on("complete",({geometry:e})=>{const t=this.createGraphic;t&&e&&(t.geometry=e),n.complete()})],n=new re({activeComponent:e,type:"create",onEnd:()=>{s(r),i.tools.remove(e)},undo:()=>e.undo(),redo:()=>e.redo(),canUndo:()=>e.canUndo,canRedo:()=>e.canRedo});return r.push(e.on("cancel",()=>n.cancel())),n}_getGraphicSymbolFromTool(e){switch(e){case"point":case"multipoint":return this.pointSymbol;case"polyline":case"freehandPolyline":return this.polylineSymbol;case"circle":case"rectangle":case"polygon":case"freehandPolygon":return this.polygonSymbol;case"mesh":return this.meshSymbol;case"text":return this.textSymbol}}async _setupUpdateOperation(e,t){const{view:o}=this;if(!o)return this._logMissingView(),null;const i={...this.defaultUpdateOptions,...t,reshapeOptions:{...this.defaultUpdateOptions.reshapeOptions,...t?.reshapeOptions},highlightOptions:{...this.defaultUpdateOptions.highlightOptions,...t?.highlightOptions}};let a=i.tool??de.tool;if(this.removeGraphics(e),this.addGraphics(e),"3d"===o.type){if(0===e.length)return null;switch(a){case"move":return this._setupMove3DOperation(e,i,o,a);case"reshape":return e.length>1?(this._logError("sketch:reshape-multiple","Reshape operation does not support multiple graphics."),null):this._setupReshape3DOperation(e[0],i,o);case"transform":return this._setupGraphicTransform3DOperation(e,i,o)}}switch(a){case"move":return this._setupMove2DOperation(e,i,o);case"reshape":return e.length>1?(this._logError("sketch:reshape-multiple","Reshape operation does not support multiple graphics."),null):this._setupTransformOrReshape2DOperation(e,a,i,o);case"transform":return pe(e)&&(a="reshape"),this._setupTransformOrReshape2DOperation(e,a,i,o)}}async _setupMove3DOperation(e,t,o,i,a=!1){const r=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(Se(r))return r;const{ManipulatedObject3DGraphic:n,MoveTool3D:p}=r.module,l=new Map,h=()=>{l.forEach(e=>e.destroy()),l.clear()};for(const s of e){const e=new n({view:o,graphic:s}),t=F(e);if(0!==t)return h(),this._logError("sketch:move",`Move operation not supported for provided graphic(s) (${L(t)}).`),null;l.set(s,e)}const c=new p({view:o,enableZ:t.enableZ,snappingManager:this.snappingManager,sketchOptions:this.sketchOptions});o.tools.add(c),c.objects.addMany(Array.from(l.values())),a||this.updateGraphics.addMany(e);const d=[],u=new se({activeComponent:c,tool:i,type:"update",onEnd:()=>{s(d),Oe(o,c),h()},undo:()=>{Ge(this.view,c),_e(u,this.updateGraphics.toArray()),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:i})},redo:()=>{be(u,this.updateGraphics.toArray()),this._emitRedoEvent({graphics:this.updateGraphics.toArray(),tool:i})},addToSelection:e=>{this.updateGraphics.push(e);const t=new n({view:o,graphic:e});l.set(e,t),c.objects.push(t),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);if(u.history.undo.forEach(e=>e.updates.splice(t,1)),u.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)return void u.complete();const o=l.get(e);o&&(c.objects.remove(o),o.destroy(),l.delete(e))},toggleTool:async()=>{if(1!==this.updateGraphics.length||!1===t.toggleToolOnClick)return;if("transform"!==i)return;const e=this.updateGraphics.at(0),a=await this._updatingHandles.addPromise(this._setupReshape3DOperation(e,t,o,!0));a&&!Se(a)&&(u.onEnd(),u.destroy(),this._setUpdateOperationHandle(a,t))}});return d.push(...this._getHandlesForComponent(u,t),o.on("immediate-click",e=>this._getCommonUpdateOperationClickHandlers(u,e,t),Z.WIDGET),o.on("key-down",e=>{this._getCommonUpdateOperationKeyDownHandlers(u,e)},Z.WIDGET)),u}_setupGraphicTransform3DOperation(e,t,o,i=!1){if(1===e.length&&0===K(e[0])){const a=e[0],r=a.geometry;if(null!=r&&("point"===r.type||"mesh"===r.type))return this._setupPointTransform3DOperation(a,t,o);if(null!=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:n}=t,p=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(Se(p))return p;const{TransformTool3D:l,ManipulatedObject3DGraphic:h}=p.module,c=new h({graphic:e,view:o}),d=new l({object:c,view:o,enableRotation:a,enableScaling:r,enableZ:n,snappingManager:this.snappingManager,sketchOptions:this.sketchOptions});o.tools.add(d),this.updateGraphics.add(e);const u=[],g=new se({activeComponent:d,tool:i,type:"update",onEnd:()=>{s(u),Oe(o,d),c.destroy()},undo:()=>{Ge(this.view,d),_e(g,this.updateGraphics.toArray()),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:i})},redo:()=>{be(g,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"}),g.onEnd(),g.destroy();const i=await this._updatingHandles.addPromise(this._setupMove3DOperation(this.updateGraphics.toArray(),t,o,"transform",!0));Se(i)||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"}),g.complete()},toggleTool:()=>{}});return u.push(...this._getHandlesForComponent(g,t),o.on("immediate-click",e=>this._getCommonUpdateOperationClickHandlers(g,e,t),Z.WIDGET),o.on("key-down",e=>{this._getCommonUpdateOperationKeyDownHandlers(g,e)},Z.WIDGET)),g}async _setupPolyTransform3DOperation(e,t,o,i=!1){const a="transform",{enableRotation:r,enableScaling:n,enableZ:p,preserveAspectRatio:l}=t,h=await this._requireModule(import("../../views/3d/interactive/editingTools.js"));if(Se(h))return h;const{ManipulatedObject3DGraphic:c,ExtentTransformTool:d}=h.module,u=this.view?.inputManager?.isModifierKeyDown(q.constraint),g=new c({view:o,graphic:e}),y=new d({object:g,view:o,enableRotation:r,enableScaling:n,enableZ:p,preserveAspectRatio:!!l!=!!u,sketchOptions:this.sketchOptions});o.tools.add(y),i||this.updateGraphics.add(e);const m=[],v=new se({activeComponent:y,tool:a,type:"update",onEnd:()=>{s(m),Oe(o,y),g.destroy()},canUndo:()=>!y.destroyed&&y.canUndo,undo:()=>{y.destroyed||(y.undo(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:a}))},canRedo:()=>!y.destroyed&&y.canRedo,redo:()=>{y.destroyed||(y.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"}),v.onEnd(),v.destroy();const i=await this._updatingHandles.addPromise(this._setupMove3DOperation(this.updateGraphics.toArray(),t,o,"transform",!0));Se(i)||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"}),v.complete()},toggleTool:async()=>{if(1!==this.updateGraphics.length||!1===t.toggleToolOnClick)return;const i=await this._updatingHandles.addPromise(this._setupReshape3DOperation(e,t,o,!0));i&&!Se(i)&&(v.onEnd(),v.destroy(),this._setUpdateOperationHandle(i,t))}});return m.push(...this._getHandlesForComponent(v,t),o.on("immediate-click",e=>this._getCommonUpdateOperationClickHandlers(v,e,t),Z.WIDGET),o.on("key-down",e=>this._getCommonUpdateOperationKeyDownHandlers(v,e),Z.WIDGET),o.on("key-down",e=>{e.key!==q.constraint||e.repeat||(y.preserveAspectRatio=!y.preserveAspectRatio,e.stopPropagation())},Z.WIDGET),o.on("key-up",e=>{e.key===q.constraint&&(y.preserveAspectRatio=!y.preserveAspectRatio,e.stopPropagation())},Z.WIDGET)),v}async _setupMove2DOperation(e,t,o){const i="move";this.updateGraphics.addMany(e),await this._updatingHandles.addPromise(this._updateSpatialReference(e));const a=await this._updatingHandles.addPromise(this._getGraphicMover(e,t,o));if(Se(a))return a;const r=new se({activeComponent:a,tool:i,type:"update",onEnd:()=>{this._clearCursor(),s(l),s(p),a.destroy(),this._internalGraphicsLayer?.removeMany([...this.updateGraphics.toArray()])},undo:()=>{const e=this.updateGraphics.toArray();_e(r,e),r.refreshComponent(),this._emitUndoEvent({graphics:e,tool:i})},redo:()=>{const e=this.updateGraphics.toArray();be(r,e),r.refreshComponent(),this._emitRedoEvent({graphics:e,tool:i})},addToSelection:async e=>{await this._updatingHandles.addPromise(this._updateSpatialReference(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 n=!1;const p=[o.on("immediate-click",e=>this._getCommonUpdateOperationClickHandlers(r,e,t),Z.WIDGET),o.on("key-down",e=>{this._getCommonUpdateOperationKeyDownHandlers(r,e),e.key!==q.constraint||e.repeat||(n=!0,a.enableMoveAllGraphics=!a.enableMoveAllGraphics)},Z.WIDGET),o.on("key-up",e=>{e.key===q.constraint&&n&&(n=!1,a.enableMoveAllGraphics=!a.enableMoveAllGraphics)},Z.WIDGET)],l=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(Se(r))return r;const{ManipulatedObject3DGraphic:n,ReshapeTool3D:p}=r.module,l=new n({view:o,graphic:e}),h=V(l);if(0!==h)return l.destroy(),this._logError("sketch:reshape",`Reshape operation not supported for provided graphic(s) (${L(h)}).`),null;const c=t.reshapeOptions,d=new p({view:o,object:l,enableZVertex:t.enableZ&&"move"===c?.vertexOperation,enableZShape:t.enableZ&&"move"===c?.shapeOperation,enableMoveObject:"move"===c?.shapeOperation||"move-xy"===c?.shapeOperation,enableMidpoints:"split"===c?.edgeOperation,enableEdgeOffset:"offset"===c?.edgeOperation,snappingManager:this.snappingManager,sketchOptions:this.sketchOptions});o.tools.add(d),i||this.updateGraphics.add(l.graphic);const u=[],g=new se({activeComponent:d,tool:a,type:"update",onEnd:()=>{s(u),Oe(o,d),l.destroy()},canUndo:()=>!d.destroyed&&d.canUndo,undo:()=>{d.destroyed||(d.undo(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:a}))},canRedo:()=>!d.destroyed&&d.canRedo,redo:()=>{d.destroyed||(d.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"}),g.onEnd(),g.destroy();const i=await this._updatingHandles.addPromise(this._setupMove3DOperation(this.updateGraphics.toArray(),t,o,"transform",!0));Se(i)||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"}),g.complete()},toggleTool:async()=>{if(!1===t.toggleToolOnClick)return;g.onEnd(),g.destroy();const e=await this._updatingHandles.addPromise(this._setupGraphicTransform3DOperation(this.updateGraphics.toArray(),t,o,!0));Se(e)||this._setUpdateOperationHandle(e,t)}});return u.push(...this._getHandlesForComponent(g,t),o.on("immediate-click",e=>this._getCommonUpdateOperationClickHandlers(g,e,t),Z.WIDGET),o.on("key-down",e=>{this._getCommonUpdateOperationKeyDownHandlers(g,e)},Z.WIDGET)),g}async _setupTransformOrReshape2DOperation(e,t,o,i){this.updateGraphics.addMany(e),await this._updatingHandles.addPromise(this._updateSpatialReference(e));const a=await this._updatingHandles.addPromise("transform"===t?this._getBox(e,o,i):this._getReshape(e,o,i));if(Se(a))return a;const r=new se({activeComponent:a,type:"update",onEnd:()=>{s(p),s(n),r.activeComponent&&!r.activeComponent.destroyed&&r.activeComponent.destroy(),this._internalGraphicsLayer.removeMany(this.updateGraphics.toArray())},undo:()=>{_e(r,this.updateGraphics.toArray()),r.refreshComponent(),this._emitUndoEvent({graphics:this.updateGraphics.toArray(),tool:r.tool})},redo:()=>{be(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(),r.onEnd(),r.destroy();const a=await this._updatingHandles.addPromise(this._setupTransformOrReshape2DOperation(t,"transform",o,i));if(Se(a))return;this._setUpdateOperationHandle(a,o)}else this.updateGraphics.add(e),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: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();0===o.length?r.complete():pe(o)?r.toggleTool():r.activeComponent.graphics=o,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.at(0),t=e.geometry;if(null!=t&&("reshape"===r.tool&&"point"===t.type||"transform"===r.tool&&"extent"===t.type))return;let a=null;"transform"===r.tool?a=await this._updatingHandles.addPromise(this._getReshape([e],o,i)):"reshape"===r.tool&&(a=await this._updatingHandles.addPromise(this._getBox([e],o,i))),Se(a)||(r.activeComponent?.destroy(),r.activeComponent=a,r.activeComponent&&(s(p),p=this._getHandlesForComponent(r,o)))}}),n=[i.on("immediate-click",e=>this._getCommonUpdateOperationClickHandlers(r,e,o),Z.WIDGET),i.on("key-down",e=>{if(this._getCommonUpdateOperationKeyDownHandlers(r,e),e.key===q.constraint&&!e.repeat&&r){const e=r.activeComponent;"box"===e?.type&&(e.preserveAspectRatio=!e.preserveAspectRatio)}},Z.WIDGET),i.on("key-up",e=>{if(e.key===q.constraint&&r){const e=r.activeComponent;"box"===e?.type&&(e.preserveAspectRatio=!e.preserveAspectRatio)}},Z.WIDGET)];let p=this._getHandlesForComponent(r,o);return r}async _getGraphicMover(e,t,o){const{enableMoveAllGraphics:i,highlightOptions:a}=t,r=await this._requireModule(import("../../views/draw/support/GraphicMover.js"));return Se(r)?r:new r.module.default({enableMoveAllGraphics:i,highlightName:a?.name,highlightsEnabled:!!a?.enabled,indicatorsEnabled:!1,graphics:e,view:o,callbacks:{onGraphicMoveStart:({dx:e,dy:t,graphic:o})=>{this._displayCursor("grabbing"),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._displayCursor("pointer"),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._displayCursor("move"),onGraphicPointerOut:()=>this._clearCursor()}})}async _getBox(e,t,o){const{enableRotation:i,enableScaling:a,highlightOptions:r,preserveAspectRatio:s}=t,n=await this._requireModule(import("../../views/draw/support/Box.js"));if(Se(n))return n;const p=this.view?.inputManager?.isModifierKeyDown(q.constraint);return new n.module.default({graphics:e,enableRotation:i,enableScaling:a,highlightName:r?.name,highlightsEnabled:!!r?.enabled,preserveAspectRatio:!!s!=!!p,layer:this._internalGraphicsLayer,view:o,sketchOptions:this.sketchOptions,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){const{highlightOptions:i,reshapeOptions:a}=t,r="split"===a?.edgeOperation,s="move"===a?.shapeOperation,n=!!a?.enableCreateCurveFromStraightEdge,p=await this._requireModule(import("../../views/draw/support/Reshape.js"));return Se(p)?p:new p.module.default({enableMidpoints:r,enableMovement:s,enableCurveOnMidpoint:n,graphic:e[0],highlightName:i?.name,highlightsEnabled:!!i?.enabled,layer:this._internalGraphicsLayer,snappingManager:this.snappingManager,sketchOptions:this.sketchOptions,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=>C(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=>C(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;if(!o)return[];switch(o.type){case"graphic-mover":return[o.on("graphic-click",({graphic:o,viewEvent:i})=>{i.native?.shiftKey&&t.multipleSelectionEnabled&&(i.stopPropagation(),e.removeFromSelection(o))}),o.on("graphic-move-start",t=>e.addToHistory(Te(t.allGraphics)))];case"box":return[o.on("graphic-click",o=>this._onTransformOrReshape2DGraphicClick(e,t,o)),o.on("move-start",t=>e.addToHistory(Te(t.graphics))),o.on("rotate-start",t=>e.addToHistory(Te(t.graphics))),o.on("scale-start",t=>e.addToHistory(Te(t.graphics)))];case"reshape":return[o.on("graphic-click",o=>this._onTransformOrReshape2DGraphicClick(e,t,o)),o.on("move-start",t=>e.addToHistory(Te([t.mover]))),o.on("reshape-start",t=>e.addToHistory(Te([t.graphic]))),o.on("vertex-add",t=>e.addToHistory(Te([t.oldGraphic]))),o.on("vertex-remove",t=>e.addToHistory(Te([t.oldGraphic])))];case"move-3d":return[o.events.on("record-undo",({updates:t})=>{e.addToHistory({updates:t})}),o.events.on("move-start",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:0,dy:0,mover:e.objects.length>0?e.objects[0].graphic:null,type:"move-start"},type:"update"})}),o.events.on("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.objects.length>0?e.objects[0].graphic:null,type:"move"},type:"update"})}),o.events.on("move-stop",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{dx:0,dy:0,mover:e.objects.length>0?e.objects[0].graphic:null,type:"move-stop"},type:"update"})}),o.events.on("immediate-click",o=>{o.shiftKey?this._toggleSelection([o.object.graphic],e,t):e.toggleTool()})];case"transform-3d":return[o.events.on("record-undo",({updates:t})=>{e.addToHistory({updates:t})}),o.events.on("translate-start",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,dx:e.dxScreen,dy:e.dyScreen,type:"move-start"},type:"update"})}),o.events.on("translate-stop",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,dx:e.dxScreen,dy:e.dyScreen,type:"move-stop"},type:"update"})}),o.events.on("rotate-start",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,angle:e.angle,type:"rotate-start"},type:"update"})}),o.events.on("rotate-stop",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,angle:e.angle,type:"rotate-stop"},type:"update"})}),o.events.on("scale-start",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,xScale:e.xScale,yScale:e.yScale,type:"scale-start"},type:"update"})}),o.events.on("scale-stop",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,xScale:e.xScale,yScale:e.yScale,type:"scale-stop"},type:"update"})}),o.events.on("translate",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,dx:e.dxScreen,dy:e.dyScreen,type:"move"},type:"update"})}),o.events.on("rotate",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,angle:e.angle,type:"rotate"},type:"update"})}),o.events.on("scale",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{mover:e.object.graphic,xScale:e.xScale,yScale:e.yScale,type:"scale"},type:"update"})}),o.events.on("immediate-click",o=>{o.shiftKey?this._toggleSelection([o.object.graphic],e,t):e.toggleTool()})];case"reshape-3d":return[o.events.on("reshape",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e,mover:e.object.graphic},type:"update"})}),o.events.on("move",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:{...e,mover:e.object.graphic},type:"update"})}),o.events.on("vertex-add",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:e,type:"update"})}),o.events.on("vertex-remove",e=>{this.emit("update",{graphics:this.updateGraphics.toArray(),state:"active",aborted:!1,tool:this.activeTool,toolEventInfo:e,type:"update"})}),o.events.on("immediate-click",o=>{o.shiftKey?this._toggleSelection([o.object.graphic],e,t):e.toggleTool()})]}}_onTransformOrReshape2DGraphicClick(e,t,o){const{graphic:i,viewEvent:a}=o;return a.native?.shiftKey&&this.hasGraphic(i)?(a.stopPropagation(),e.removeFromSelection(i)):t.toggleToolOnClick?(a.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=te(t),a=await t.defer(()=>this._getFirstHit(i));if(null==a)return void e.complete();if(t.native.shiftKey&&this._toggleSelection([a.graphic],e,o))return void t.stopPropagation();this.updateGraphics.includes(a.graphic)?t.stopPropagation():e.complete()}_toggleSelection(e,t,o){const i=!!o.multipleSelectionEnabled;return e.some(e=>null!=e&&(!(!i||!this.hasGraphic(e))&&(this.updateGraphics.includes(e)?t.removeFromSelection(e):t.addToSelection(e),!0)))}_getCommonUpdateOperationKeyDownHandlers(e,t){if(!e)return;const o=t.key;o===q.undo&&e.canUndo()?(t.stopPropagation(),e.undo()):o===q.redo&&e.canRedo()?(t.stopPropagation(),e.redo()):o===q.cancel?(t.stopPropagation(),e.cancel()):this.allowDeleteKey&&q.delete.includes(o)&&this._onDeleteKey(t)}_onDeleteKey(e){this._operationHandle&&"update"===this._operationHandle.type&&null!=this.activeComponent&&(e.stopPropagation(),this.delete())}_removeDefaultLayer(){this._internalGraphicsLayer&&(this.view?.map?.remove(this._internalGraphicsLayer),this._internalGraphicsLayer=l(this._internalGraphicsLayer))}_isComponentGraphic(e){const{activeComponent:t}=this;return!(!e||null==t)&&(e.attributes?.esriSketchTool||"draw-2d"===t.type&&t.graphic===e||("box"===t.type||"reshape"===t.type)&&t.isUIGraphic(e))}_clearCursor(){this.removeHandles(ue)}_displayCursor(e){this.removeHandles(ue),this.view?.container&&null!=e&&this.addHandles(this.view.acquireCursor(e,"high"),ue)}_logError(e,t,o){p.getLogger(this).error(new a(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"})}_onLayerGraphicsChangeCallback(e){if(null!=this._operationHandle){const{updateGraphics:t}=this;for(const o of e.removed)if(t.includes(o)){if(!(t.length>1)){this._operationHandle.cancel();break}this._operationHandle.removeFromSelection(o)}}}async _setupAdvancedDrawToolIntegrationMaybe(){if(this.isUsingLegacyCreateTools||this.pluginManager)return;const{PluginManager:e}=await import("./support/PluginManager.js");this.isUsingLegacyCreateTools||(this._pluginManager=new e({sketchViewModel:this}))}async _setupDrawTool(e,o,i){if(this.isUsingLegacyCreateTools||!this._pluginManager)return null;const a=this.view,r=await import("../../views/draw/DrawTool.js"),s=await(this.pluginManager?.makeRenderer({useTextSymbol:"text"===i})),p=new r.DrawTool({view:a,elevationInfo:this._layerAdapter?.elevationInfo??H("3d"===a.type),hasZ:!!o.hasZ,sketchOptions:this.sketchOptions,renderer:s,defaultZ:o.defaultZ??0,directionOptions:o.directionOptions,snappingManager:this.snappingManager});p.addHandles(n(s));const l=new t({...o.graphicProperties,attributes:{...o.graphicProperties?.attributes},symbol:this._getGraphicSymbolFromTool(i)});return this._set("createGraphic",l),a.addAndActivateTool(p),p.begin(e),p}get test(){}wait(){return f(()=>!this.updating)}_disablePopupEnabled(e){return"3d"!==this.view?.type||this.updateOnGraphicClick||(e?.toggleToolOnClick??!1)}_disablePopup(e){this._disablePopupEnabled(e)&&this.view&&null==this._originalPopupEnabled&&(this._originalPopupEnabled=this.view.popupEnabled,this.view.popupEnabled=!1)}_restorePopup(e){this._disablePopupEnabled(e)&&this.view&&null!=this._originalPopupEnabled&&(this.view.popupEnabled=this._originalPopupEnabled,this._originalPopupEnabled=null)}async _waitViewReady(){const e=this.view;e?(h(this._viewReadyAbortController),this._viewReadyAbortController=new AbortController,await d(f(()=>e?.ready),this._viewReadyAbortController.signal)):this._logMissingView()}_logMissingView(){this._logError("sketch:missing-property",ve("view"))}_logMissingLayer(){this._logError(me,ve("layer"))}};e([_()],ye.prototype,"_defaultSnappingManager",void 0),e([_()],ye.prototype,"_layerAdapter",null),e([_()],ye.prototype,"_pluginManager",void 0),e([_()],ye.prototype,"_operationHandle",void 0),e([_({readOnly:!0})],ye.prototype,"_updatingHandles",void 0),e([_({readOnly:!0})],ye.prototype,"activeTool",null),e([_({readOnly:!0})],ye.prototype,"activeCreateToolDrawMode",null),e([_()],ye.prototype,"activeTooltip",null),e([_({types:x})],ye.prototype,"activeFillSymbol",void 0),e([_()],ye.prototype,"activeLineSymbol",void 0),e([_()],ye.prototype,"activeVertexSymbol",void 0),e([_()],ye.prototype,"allowDeleteKey",void 0),e([_({readOnly:!0})],ye.prototype,"createGraphic",null),e([_()],ye.prototype,"defaultCreateOptions",null),e([_()],ye.prototype,"defaultUpdateOptions",null),e([_({type:N,nonNullable:!0})],ye.prototype,"labelOptions",null),e([_()],ye.prototype,"layer",void 0),e([_({types:x})],ye.prototype,"pointSymbol",void 0),e([_({types:x})],ye.prototype,"polygonSymbol",void 0),e([_({types:x})],ye.prototype,"polylineSymbol",void 0),e([_()],ye.prototype,"meshSymbol",void 0),e([_({type:U})],ye.prototype,"textSymbol",null),e([_({type:J,nonNullable:!0})],ye.prototype,"snappingOptions",null),e([_()],ye.prototype,"snappingManager",null),e([_({readOnly:!0})],ye.prototype,"state",null),e([_({type:B,nonNullable:!0})],ye.prototype,"tooltipOptions",null),e([_({readOnly:!0})],ye.prototype,"updateGraphics",void 0),e([_()],ye.prototype,"updateOnGraphicClick",void 0),e([_()],ye.prototype,"updating",null),e([_()],ye.prototype,"creationMode",void 0),e([_({type:$,nonNullable:!0})],ye.prototype,"valueOptions",null),e([_({types:x})],ye.prototype,"vertexSymbol",void 0),e([_({value:null})],ye.prototype,"view",null),e([_({constructOnly:!0,type:z})],ye.prototype,"sketchOptions",void 0),e([_({constructOnly:!0})],ye.prototype,"useLegacyCreateTools",void 0),e([_()],ye.prototype,"isUsingLegacyCreateTools",null),e([_()],ye.prototype,"pluginManager",null),e([_()],ye.prototype,"drawTool",null),e([_()],ye.prototype,"rootPlugins",null),e([_()],ye.prototype,"effectiveAvailablePlugins",null),e([_()],ye.prototype,"firstPluginWithSwappableLeaf",null),e([_()],ye.prototype,"multiplePluginsActive",null),ye=e([b("esri.widgets.Sketch.SketchViewModel")],ye);const me="sketch:missing-property",ve=e=>`Property '${e}' is missing on SketchViewModel.`;function fe(e){return"polygon"===e||"rectangle"===e||"circle"===e}function _e(e,t){we("undo",e.history.undo,e.history.redo,t)}function be(e,t){we("redo",e.history.redo,e.history.undo,t)}function we(e,t,o,i){const a=t.pop();if(!a)return;const r=a.updates,s=[];i.forEach((t,o)=>{const i=r[o];null!=i&&("geometry"in i&&null!=i.geometry&&(s.push({geometry:t.geometry}),t.geometry=i.geometry),"symbol"in i&&null!=i.symbol&&(s.push({symbol:t.symbol}),t.symbol=i.symbol),"undo"in i&&(s.push(i),i[e](t)))}),o.push({updates:s})}function Ge(e,t){null!=e&&t.hasGrabbedManipulators&&(e.activeTool=null)}function Te(e){return{updates:e.map(({geometry:e})=>"mesh"===e?.type?{geometry:e.cloneShallow()}:{geometry:e})}}function Oe(e,t){e.tools?.remove(t),t.destroyed||t.destroy()}function Se(e){return"requireError"in e&&"aborted"===e.requireError}export{ye as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import{isSome as i}from"../../../core/arrayUtils.js";import{handlesGroup as l}from"../../../core/handleUtils.js";import o from"../../../core/Logger.js";import{throwIfAborted as n}from"../../../core/promiseUtils.js";import{watch as r}from"../../../core/reactiveUtils.js";import{property as s}from"../../../core/accessorSupport/decorators/property.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{BezierSegmentPlugin as u}from"../../../views/draw/plugins/BezierSegmentPlugin.js";import{CircularArcSegmentPlugin as c}from"../../../views/draw/plugins/CircularArcSegmentPlugin.js";import{FreehandSegmentPlugin as g}from"../../../views/draw/plugins/FreehandSegmentPlugin.js";import{MultipointPlugin as p}from"../../../views/draw/plugins/MultipointPlugin.js";import{PointPlugin as y}from"../../../views/draw/plugins/PointPlugin.js";import{PolygonPlugin as d}from"../../../views/draw/plugins/PolygonPlugin.js";import{PolylinePlugin as m}from"../../../views/draw/plugins/PolylinePlugin.js";import{ShapePlugin as P}from"../../../views/draw/plugins/ShapePlugin.js";let h=class extends t{constructor(e){super(e),this.sketch=null}get _simplePointPlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-leaf-point"),localizationKey:"leaf-point-segment",kind:["vertex"],geometryType:"point",icon:"line-straight",legacyCreateTool:"point",create:()=>new y,[Symbol.toStringTag]:"Point"}}get _textPointPlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-text-point"),localizationKey:"root-text",kind:["vertex"],geometryType:"point",icon:"add-text",legacyCreateTool:"text",create:()=>new y,[Symbol.toStringTag]:"Text"}}get _multipointPlugin(){const e={...this._simplePointPlugin,localizationKey:"leaf-point",icon:"point",hidden:!0};return{uniqueId:Symbol.for("esri-builtin-plugin-multipoint"),localizationKey:"root-multipoint",kind:["part"],geometryType:"multipoint",icon:"pins",legacyCreateTool:"multipoint",excludedViews:["3d"],create:()=>new p,availableDownstreamPlugins:[e],defaultDownstreamPlugin:e,[Symbol.toStringTag]:"Multipoint"}}get _freehandPlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-freehand"),localizationKey:"leaf-freehand",kind:["vertex","section","part"],geometryType:"polyline",icon:"freehand",legacyCreateTool:"freehandPolyline",create(){const e=new g;return e.completeOnDragEnd=!0,e},[Symbol.toStringTag]:"Freehand"}}get _bezierPlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-bezier-segment"),localizationKey:"leaf-bezier",kind:["vertex","section"],geometryType:"point",icon:"bezier-curve",excludedViews:["3d"],create:()=>new u,[Symbol.toStringTag]:"Bezier"}}get _endpointArcPlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-circular-arc-segment-end-first"),localizationKey:"leaf-endpoint-arc",kind:["vertex","section"],geometryType:"point",icon:"end-point-arc-segment",excludedViews:["3d"],create:()=>new c({arcDrawingMode:"end-first"}),availableDownstreamPlugins:[],[Symbol.toStringTag]:"Endpoint Arc"}}get _interiorArcPlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-circular-arc-segment-interior-first"),localizationKey:"leaf-circular-arc",kind:["vertex","section"],geometryType:"point",icon:"arc-segment",excludedViews:["3d"],create:()=>new c({arcDrawingMode:"interior-first"}),availableDownstreamPlugins:[],[Symbol.toStringTag]:"Interior Arc"}}get _singlePartPolylinePlugin(){const e=this.sketch?.visibleElements.createTools,t=!this._isExcludedByAvailableCreateTools("freehandPolyline")&&!1!==e?.freehandPolyline,l=!this._isExcludedByAvailableCreateTools("polyline")&&!1!==e?.polyline;return{uniqueId:Symbol.for("esri-builtin-plugin-simple-polyline"),localizationKey:"root-polyline",kind:["section","part"],geometryType:"polyline",legacyCreateTool:"polyline",icon:l?"line":"freehand",create:()=>new m,availableDownstreamPlugins:l?[this._simplePointPlugin,t?this._freehandPlugin:null,this._bezierPlugin,this._interiorArcPlugin,this._endpointArcPlugin].filter(i):[t?this._freehandPlugin:null].filter(i),defaultDownstreamPlugin:l?this._simplePointPlugin:this._freehandPlugin,[Symbol.toStringTag]:"Polyline"}}get _singlePartPolygonPlugin(){const e=this.sketch?.visibleElements.createTools,t=!this._isExcludedByAvailableCreateTools("freehandPolygon")&&!1!==e?.freehandPolygon,l=!this._isExcludedByAvailableCreateTools("polygon")&&!1!==e?.polygon;return{uniqueId:Symbol.for("esri-builtin-plugin-simple-polygon"),localizationKey:"root-polygon",kind:["section","part"],geometryType:"polygon",legacyCreateTool:"polygon",icon:l?"polygon":"freehand-area",create:()=>new d,availableDownstreamPlugins:l?[this._simplePointPlugin,t?this._freehandPlugin:null,this._bezierPlugin,this._interiorArcPlugin,this._endpointArcPlugin].filter(i):[t?this._freehandPlugin:null].filter(i),defaultDownstreamPlugin:l?this._simplePointPlugin:this._freehandPlugin,[Symbol.toStringTag]:"Polygon"}}get _rectanglePlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-simple-rectangle"),localizationKey:"root-rectangle",kind:["part"],geometryType:"polygon",icon:"rectangle",legacyCreateTool:"rectangle",create:()=>new P,[Symbol.toStringTag]:"Rectangle"}}get _circlePlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-simple-ellipse"),localizationKey:"root-circle",kind:["part"],geometryType:"polygon",icon:"circle",legacyCreateTool:"circle",create(){const e=new P;return e.shapeType="circle",e.defaultUniform=!0,e.defaultCentered=!0,e},[Symbol.toStringTag]:"Circle"}}set sketchViewModel(e){this._overrideIfSome("sketchViewModel",e)}get sketchViewModel(){return this.sketch?.viewModel}get effectiveRootPoint(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.point&&!this._isExcludedByAvailableCreateTools("point")?{...this._simplePointPlugin,icon:"pin",localizationKey:"root-point"}:null}get effectiveRootText(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.text&&!this._isExcludedByAvailableCreateTools("text")?this._textPointPlugin:null}get effectiveRootMultipoint(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.multipoint&&!this._isExcludedByAvailableCreateTools("multipoint")&&"3d"!==this.sketchViewModel?.view?.type?this._multipointPlugin:null}get effectiveRootPolyline(){const e=this.sketch?.visibleElements.createTools,t=!this._isExcludedByAvailableCreateTools("polyline")&&!1!==e?.polyline,i=!this._isExcludedByAvailableCreateTools("freehandPolyline")&&!1!==e?.freehandPolyline;return t||i?this._singlePartPolylinePlugin:null}get effectiveRootPolygon(){const e=this.sketch?.visibleElements.createTools,t=!this._isExcludedByAvailableCreateTools("polygon")&&!1!==e?.polygon,i=!this._isExcludedByAvailableCreateTools("freehandPolygon")&&!1!==e?.freehandPolygon;return t||i?this._singlePartPolygonPlugin:null}get effectiveRootRectangle(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.rectangle&&!this._isExcludedByAvailableCreateTools("rectangle")?this._rectanglePlugin:null}get effectiveRootCircle(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.circle&&!this._isExcludedByAvailableCreateTools("circle")?this._circlePlugin:null}get availablePlugins(){const e=[this.effectiveRootPoint,this.effectiveRootText,this.effectiveRootMultipoint,this.effectiveRootPolyline,this.effectiveRootPolygon,this.effectiveRootRectangle,this.effectiveRootCircle].filter(i),t=this.sketch?.availableCreateTools;if(!t)return e;const l=e=>{if(!e.legacyCreateTool)return Number.MAX_SAFE_INTEGER;const i=t.indexOf(e.legacyCreateTool);return-1===i?Number.MAX_SAFE_INTEGER:i};return e.map((e,t)=>({plugin:e,index:t,order:l(e)})).sort((e,t)=>e.order-t.order||e.index-t.index).map(({plugin:e})=>e)}getPluginsEquivalentToCreateTool(e,t){switch(e){case"text":return[this._textPointPlugin];case"point":return[this._simplePointPlugin];case"rectangle":return[this._rectanglePlugin];case"circle":return[this._circlePlugin];case"freehandPolyline":return[this._singlePartPolylinePlugin,this._freehandPlugin];case"freehandPolygon":return[this._singlePartPolygonPlugin,this._freehandPlugin];case"polyline":return"freehand"===t?[this._singlePartPolylinePlugin,this._freehandPlugin]:[this._singlePartPolylinePlugin,this._simplePointPlugin];case"polygon":return"freehand"===t?[this._singlePartPolygonPlugin,this._freehandPlugin]:[this._singlePartPolygonPlugin,this._simplePointPlugin];default:return null}}getDrawingModeEquivalentToPluginStack(e){const t=e.at(-1);if(t===this._freehandPlugin)return"freehand";return t===this._rectanglePlugin||t===this._circlePlugin?"hybrid":"click"}async makeRenderer(e={}){const t=this.sketchViewModel;if(!t?.view)return null;const{abortOptions:i,useTextSymbol:l}=e;return"2d"===t.view.type?await this._makeDrawToolRenderer2D({view:t.view,svm:t,useTextSymbol:l,abortOptions:i}):await this._makeDrawToolRenderer3D({view:t.view,svm:t,useTextSymbol:l,abortOptions:i})}_isExcludedByAvailableCreateTools(e){return!!this.sketch&&!this.sketch.availableCreateTools?.includes(e)}async _makeDrawToolRenderer2D(e){const{DrawToolRenderer2D:t}=await import("../../../views/2d/interactive/editingTools/draw/DrawToolRenderer2D.js"),{view:i,svm:l,useTextSymbol:o,abortOptions:r}=e;n(r);const s=o?l.textSymbol??l.pointSymbol:l.pointSymbol,a=new t({symbolOverrides:{polyline:{outputGeometry:{default:l.polylineSymbol},outline:{active:l.activeLineSymbol??void 0}},polygon:{outputGeometry:{default:l.activeFillSymbol??l.polygonSymbol}},point:{outputGeometry:{default:s},vertex:{default:l.vertexSymbol,active:l.activeVertexSymbol??void 0}}},view:i}),u=this._setupSymbolWatcher(a,l,o);return a.addHandles(u),a}async _makeDrawToolRenderer3D(e){const{view:t,svm:i,useTextSymbol:l,abortOptions:n}=e;return o.getLogger(this).warnOnce("Using DrawToolRenderer2D in 3D view. A 3D-specific implementation of DrawToolRenderer is not yet available."),this._makeDrawToolRenderer2D({view:t,svm:i,useTextSymbol:l,abortOptions:n})}_setupSymbolWatcher(e,t,i){const o=(t,i,l)=>(o,n)=>{o!==n&&e.overrideSymbol({symbol:o,geometryType:t,role:i,state:l})};return l([r(()=>t.polylineSymbol,o("polyline","outputGeometry")),r(()=>t.activeLineSymbol,o("polyline","outline","active")),r(()=>t.activeFillSymbol??t.polygonSymbol,o("polygon","outputGeometry")),r(()=>i?t.textSymbol??t.pointSymbol:t.pointSymbol,o("point","outputGeometry")),r(()=>t.vertexSymbol,o("point","vertex")),r(()=>t.activeVertexSymbol,o("point","vertex","active"))])}};e([s()],h.prototype,"_simplePointPlugin",null),e([s()],h.prototype,"_textPointPlugin",null),e([s()],h.prototype,"_multipointPlugin",null),e([s()],h.prototype,"_freehandPlugin",null),e([s()],h.prototype,"_bezierPlugin",null),e([s()],h.prototype,"_endpointArcPlugin",null),e([s()],h.prototype,"_interiorArcPlugin",null),e([s()],h.prototype,"_singlePartPolylinePlugin",null),e([s()],h.prototype,"_singlePartPolygonPlugin",null),e([s()],h.prototype,"_rectanglePlugin",null),e([s()],h.prototype,"_circlePlugin",null),e([s()],h.prototype,"sketch",void 0),e([s()],h.prototype,"sketchViewModel",null),e([s()],h.prototype,"effectiveRootPoint",null),e([s()],h.prototype,"effectiveRootText",null),e([s()],h.prototype,"effectiveRootMultipoint",null),e([s()],h.prototype,"effectiveRootPolyline",null),e([s()],h.prototype,"effectiveRootPolygon",null),e([s()],h.prototype,"effectiveRootRectangle",null),e([s()],h.prototype,"effectiveRootCircle",null),e([s()],h.prototype,"availablePlugins",null),h=e([a("esri.widgets.Sketch.support.PluginManager")],h);export{h as PluginManager};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import{isSome as i}from"../../../core/arrayUtils.js";import{handlesGroup as o}from"../../../core/handleUtils.js";import l from"../../../core/Logger.js";import{throwIfAborted as n}from"../../../core/promiseUtils.js";import{watch as r}from"../../../core/reactiveUtils.js";import{property as s}from"../../../core/accessorSupport/decorators/property.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{BezierSegmentPlugin as u}from"../../../views/draw/plugins/BezierSegmentPlugin.js";import{CircularArcSegmentPlugin as c}from"../../../views/draw/plugins/CircularArcSegmentPlugin.js";import{FreehandSegmentPlugin as g}from"../../../views/draw/plugins/FreehandSegmentPlugin.js";import{MultipointPlugin as p}from"../../../views/draw/plugins/MultipointPlugin.js";import{PointPlugin as y}from"../../../views/draw/plugins/PointPlugin.js";import{PolygonPlugin as m}from"../../../views/draw/plugins/PolygonPlugin.js";import{PolylinePlugin as d}from"../../../views/draw/plugins/PolylinePlugin.js";import{ShapePlugin as P}from"../../../views/draw/plugins/ShapePlugin.js";let h=class extends t{constructor(e){super(e),this.sketch=null}get _simplePointPlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-leaf-point"),localizationKey:"leaf-point-segment",kind:["vertex"],geometryType:"point",icon:"line-straight",legacyCreateTool:"point",create:()=>new y,[Symbol.toStringTag]:"Point"}}get _simplePointPluginRoot(){return{...this._simplePointPlugin,icon:"pin",localizationKey:"root-point",create(){const e=new y;return e.enableHelpMessages=!0,e}}}get _textPointPlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-text-point"),localizationKey:"root-text",kind:["vertex"],geometryType:"point",icon:"add-text",legacyCreateTool:"text",create:()=>new y,[Symbol.toStringTag]:"Text"}}get _multipointPlugin(){const e={...this._simplePointPlugin,localizationKey:"leaf-point",icon:"point",hidden:!0};return{uniqueId:Symbol.for("esri-builtin-plugin-multipoint"),localizationKey:"root-multipoint",kind:["part"],geometryType:"multipoint",icon:"pins",legacyCreateTool:"multipoint",excludedViews:["3d"],create:()=>new p,availableDownstreamPlugins:[e],defaultDownstreamPlugin:e,[Symbol.toStringTag]:"Multipoint"}}get _freehandPlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-freehand"),localizationKey:"leaf-freehand",kind:["vertex","section","part"],geometryType:"polyline",icon:"freehand",legacyCreateTool:"freehandPolyline",create(){const e=new g;return e.completeOnDragEnd=!0,e},[Symbol.toStringTag]:"Freehand"}}get _bezierPlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-bezier-segment"),localizationKey:"leaf-bezier",kind:["vertex","section"],geometryType:"point",icon:"bezier-curve",excludedViews:["3d"],create:()=>new u,[Symbol.toStringTag]:"Bezier"}}get _endpointArcPlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-circular-arc-segment-end-first"),localizationKey:"leaf-endpoint-arc",kind:["vertex","section"],geometryType:"point",icon:"end-point-arc-segment",excludedViews:["3d"],create:()=>new c({arcDrawingMode:"end-first"}),availableDownstreamPlugins:[],[Symbol.toStringTag]:"Endpoint Arc"}}get _interiorArcPlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-circular-arc-segment-interior-first"),localizationKey:"leaf-circular-arc",kind:["vertex","section"],geometryType:"point",icon:"arc-segment",excludedViews:["3d"],create:()=>new c({arcDrawingMode:"interior-first"}),availableDownstreamPlugins:[],[Symbol.toStringTag]:"Interior Arc"}}get _singlePartPolylinePlugin(){const e=this.sketch?.visibleElements.createTools,t=!this._isExcludedByAvailableCreateTools("freehandPolyline")&&!1!==e?.freehandPolyline,o=!this._isExcludedByAvailableCreateTools("polyline")&&!1!==e?.polyline;return{uniqueId:Symbol.for("esri-builtin-plugin-simple-polyline"),localizationKey:"root-polyline",kind:["section","part"],geometryType:"polyline",legacyCreateTool:"polyline",icon:o?"line":"freehand",create:()=>new d,availableDownstreamPlugins:o?[this._simplePointPlugin,t?this._freehandPlugin:null,this._bezierPlugin,this._interiorArcPlugin,this._endpointArcPlugin].filter(i):[t?this._freehandPlugin:null].filter(i),defaultDownstreamPlugin:o?this._simplePointPlugin:this._freehandPlugin,[Symbol.toStringTag]:"Polyline"}}get _singlePartPolygonPlugin(){const e=this.sketch?.visibleElements.createTools,t=!this._isExcludedByAvailableCreateTools("freehandPolygon")&&!1!==e?.freehandPolygon,o=!this._isExcludedByAvailableCreateTools("polygon")&&!1!==e?.polygon;return{uniqueId:Symbol.for("esri-builtin-plugin-simple-polygon"),localizationKey:"root-polygon",kind:["section","part"],geometryType:"polygon",legacyCreateTool:"polygon",icon:o?"polygon":"freehand-area",create:()=>new m,availableDownstreamPlugins:o?[this._simplePointPlugin,t?this._freehandPlugin:null,this._bezierPlugin,this._interiorArcPlugin,this._endpointArcPlugin].filter(i):[t?this._freehandPlugin:null].filter(i),defaultDownstreamPlugin:o?this._simplePointPlugin:this._freehandPlugin,[Symbol.toStringTag]:"Polygon"}}get _rectanglePlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-simple-rectangle"),localizationKey:"root-rectangle",kind:["part"],geometryType:"polygon",icon:"rectangle",legacyCreateTool:"rectangle",create:()=>new P,[Symbol.toStringTag]:"Rectangle"}}get _circlePlugin(){return{uniqueId:Symbol.for("esri-builtin-plugin-simple-ellipse"),localizationKey:"root-circle",kind:["part"],geometryType:"polygon",icon:"circle",legacyCreateTool:"circle",create(){const e=new P;return e.shapeType="circle",e.defaultUniform=!0,e.defaultCentered=!0,e},[Symbol.toStringTag]:"Circle"}}set sketchViewModel(e){this._overrideIfSome("sketchViewModel",e)}get sketchViewModel(){return this.sketch?.viewModel}get effectiveRootPoint(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.point&&!this._isExcludedByAvailableCreateTools("point")?this._simplePointPluginRoot:null}get effectiveRootText(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.text&&!this._isExcludedByAvailableCreateTools("text")?this._textPointPlugin:null}get effectiveRootMultipoint(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.multipoint&&!this._isExcludedByAvailableCreateTools("multipoint")&&"3d"!==this.sketchViewModel?.view?.type?this._multipointPlugin:null}get effectiveRootPolyline(){const e=this.sketch?.visibleElements.createTools,t=!this._isExcludedByAvailableCreateTools("polyline")&&!1!==e?.polyline,i=!this._isExcludedByAvailableCreateTools("freehandPolyline")&&!1!==e?.freehandPolyline;return t||i?this._singlePartPolylinePlugin:null}get effectiveRootPolygon(){const e=this.sketch?.visibleElements.createTools,t=!this._isExcludedByAvailableCreateTools("polygon")&&!1!==e?.polygon,i=!this._isExcludedByAvailableCreateTools("freehandPolygon")&&!1!==e?.freehandPolygon;return t||i?this._singlePartPolygonPlugin:null}get effectiveRootRectangle(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.rectangle&&!this._isExcludedByAvailableCreateTools("rectangle")?this._rectanglePlugin:null}get effectiveRootCircle(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.circle&&!this._isExcludedByAvailableCreateTools("circle")?this._circlePlugin:null}get availablePlugins(){const e=[this.effectiveRootPoint,this.effectiveRootText,this.effectiveRootMultipoint,this.effectiveRootPolyline,this.effectiveRootPolygon,this.effectiveRootRectangle,this.effectiveRootCircle].filter(i),t=this.sketch?.availableCreateTools;if(!t)return e;const o=e=>{if(!e.legacyCreateTool)return Number.MAX_SAFE_INTEGER;const i=t.indexOf(e.legacyCreateTool);return-1===i?Number.MAX_SAFE_INTEGER:i};return e.map((e,t)=>({plugin:e,index:t,order:o(e)})).sort((e,t)=>e.order-t.order||e.index-t.index).map(({plugin:e})=>e)}getPluginsEquivalentToCreateTool(e,t){switch(e){case"text":return[this._textPointPlugin];case"point":return[this._simplePointPluginRoot];case"rectangle":return[this._rectanglePlugin];case"circle":return[this._circlePlugin];case"freehandPolyline":return[this._singlePartPolylinePlugin,this._freehandPlugin];case"freehandPolygon":return[this._singlePartPolygonPlugin,this._freehandPlugin];case"polyline":return"freehand"===t?[this._singlePartPolylinePlugin,this._freehandPlugin]:[this._singlePartPolylinePlugin,this._simplePointPlugin];case"polygon":return"freehand"===t?[this._singlePartPolygonPlugin,this._freehandPlugin]:[this._singlePartPolygonPlugin,this._simplePointPlugin];default:return null}}getDrawingModeEquivalentToPluginStack(e){const t=e.at(-1);if(t===this._freehandPlugin)return"freehand";return t===this._rectanglePlugin||t===this._circlePlugin?"hybrid":"click"}async makeRenderer(e={}){const t=this.sketchViewModel;if(!t?.view)return null;const{abortOptions:i,useTextSymbol:o}=e;return"2d"===t.view.type?await this._makeDrawToolRenderer2D({view:t.view,svm:t,useTextSymbol:o,abortOptions:i}):await this._makeDrawToolRenderer3D({view:t.view,svm:t,useTextSymbol:o,abortOptions:i})}_isExcludedByAvailableCreateTools(e){return!!this.sketch&&!this.sketch.availableCreateTools?.includes(e)}async _makeDrawToolRenderer2D(e){const{DrawToolRenderer2D:t}=await import("../../../views/2d/interactive/editingTools/draw/DrawToolRenderer2D.js"),{view:i,svm:o,useTextSymbol:l,abortOptions:r}=e;n(r);const s=l?o.textSymbol??o.pointSymbol:o.pointSymbol,a=new t({symbolOverrides:{polyline:{outputGeometry:{default:o.polylineSymbol},outline:{active:o.activeLineSymbol??void 0}},polygon:{outputGeometry:{default:o.activeFillSymbol??o.polygonSymbol}},point:{outputGeometry:{default:s},vertex:{default:o.vertexSymbol,active:o.activeVertexSymbol??void 0}}},view:i}),u=this._setupSymbolWatcher(a,o,l);return a.addHandles(u),a}async _makeDrawToolRenderer3D(e){const{view:t,svm:i,useTextSymbol:o,abortOptions:n}=e;return l.getLogger(this).warnOnce("Using DrawToolRenderer2D in 3D view. A 3D-specific implementation of DrawToolRenderer is not yet available."),this._makeDrawToolRenderer2D({view:t,svm:i,useTextSymbol:o,abortOptions:n})}_setupSymbolWatcher(e,t,i){const l=(t,i,o)=>(l,n)=>{l!==n&&e.overrideSymbol({symbol:l,geometryType:t,role:i,state:o})};return o([r(()=>t.polylineSymbol,l("polyline","outputGeometry")),r(()=>t.activeLineSymbol,l("polyline","outline","active")),r(()=>t.activeFillSymbol??t.polygonSymbol,l("polygon","outputGeometry")),r(()=>i?t.textSymbol??t.pointSymbol:t.pointSymbol,l("point","outputGeometry")),r(()=>t.vertexSymbol,l("point","vertex")),r(()=>t.activeVertexSymbol,l("point","vertex","active"))])}};e([s()],h.prototype,"_simplePointPlugin",null),e([s()],h.prototype,"_simplePointPluginRoot",null),e([s()],h.prototype,"_textPointPlugin",null),e([s()],h.prototype,"_multipointPlugin",null),e([s()],h.prototype,"_freehandPlugin",null),e([s()],h.prototype,"_bezierPlugin",null),e([s()],h.prototype,"_endpointArcPlugin",null),e([s()],h.prototype,"_interiorArcPlugin",null),e([s()],h.prototype,"_singlePartPolylinePlugin",null),e([s()],h.prototype,"_singlePartPolygonPlugin",null),e([s()],h.prototype,"_rectanglePlugin",null),e([s()],h.prototype,"_circlePlugin",null),e([s()],h.prototype,"sketch",void 0),e([s()],h.prototype,"sketchViewModel",null),e([s()],h.prototype,"effectiveRootPoint",null),e([s()],h.prototype,"effectiveRootText",null),e([s()],h.prototype,"effectiveRootMultipoint",null),e([s()],h.prototype,"effectiveRootPolyline",null),e([s()],h.prototype,"effectiveRootPolygon",null),e([s()],h.prototype,"effectiveRootRectangle",null),e([s()],h.prototype,"effectiveRootCircle",null),e([s()],h.prototype,"availablePlugins",null),h=e([a("esri.widgets.Sketch.support.PluginManager")],h);export{h as PluginManager};