@arcgis/core 5.2.0-next.63 → 5.2.0-next.64

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 (382) hide show
  1. package/arcade/Feature.js +1 -1
  2. package/arcade/ImmutableArray.js +1 -1
  3. package/arcade/ImmutablePathArray.js +1 -1
  4. package/arcade/ImmutablePointArray.js +1 -1
  5. package/arcade/Pixel.js +1 -1
  6. package/arcade/Voxel.js +1 -1
  7. package/arcade/arcadeAsyncRuntime.js +1 -1
  8. package/arcade/arcadeCompiler.js +1 -1
  9. package/arcade/arcadeRuntime.js +1 -1
  10. package/arcade/containerUtils.js +1 -1
  11. package/arcade/debug.js +1 -1
  12. package/arcade/deepClone.js +1 -1
  13. package/arcade/functions/convertdirection.js +1 -1
  14. package/arcade/functions/date.js +1 -1
  15. package/arcade/functions/feature.js +1 -1
  16. package/arcade/functions/featuresetbase.js +1 -1
  17. package/arcade/functions/featuresetgeom.js +1 -1
  18. package/arcade/functions/featuresetstats.js +1 -1
  19. package/arcade/functions/featuresetstring.js +1 -1
  20. package/arcade/functions/fieldStats.js +1 -1
  21. package/arcade/functions/geomasync.js +1 -1
  22. package/arcade/functions/geometry.js +1 -1
  23. package/arcade/functions/geomsync.js +1 -1
  24. package/arcade/functions/knowledgegraph.js +1 -1
  25. package/arcade/functions/maths.js +1 -1
  26. package/arcade/functions/stats.js +1 -1
  27. package/arcade/functions/string.js +1 -1
  28. package/arcade/functions/track.js +1 -1
  29. package/arcade/geometry/functions.js +1 -1
  30. package/arcade/languageUtils.js +1 -1
  31. package/arcade.js +1 -1
  32. package/arcgisGlobal.d.ts +9 -0
  33. package/assets/esri/core/workers/RemoteClient.js +1 -1
  34. package/assets/esri/core/workers/chunks/{44e64186318728d1be51.js → 067b00498ae85f635f60.js} +1 -1
  35. package/assets/esri/core/workers/chunks/0977f4d77c36175c2895.js +1 -0
  36. package/assets/esri/core/workers/chunks/{62f3ca0719ac6bc76512.js → 09c43bcb09aad02e83a9.js} +1 -1
  37. package/assets/esri/core/workers/chunks/0b20f92bae2b4c40d299.js +1 -0
  38. package/assets/esri/core/workers/chunks/0c3c311400ee352187ea.js +1 -0
  39. package/assets/esri/core/workers/chunks/0c582abc8d25249eb530.js +1 -0
  40. package/assets/esri/core/workers/chunks/0d6776055e9b34c14151.js +1 -0
  41. package/assets/esri/core/workers/chunks/0d7d54e74b5639a0be6e.js +1 -0
  42. package/assets/esri/core/workers/chunks/0da5b27b070ab780f8b3.js +1 -0
  43. package/assets/esri/core/workers/chunks/0e6b6fcc55cc43ede1fc.js +1 -0
  44. package/assets/esri/core/workers/chunks/{bcb5017500d144b73908.js → 126f1f6b355723db6c4f.js} +1 -1
  45. package/assets/esri/core/workers/chunks/12a64eca4c571926d9d4.js +1 -0
  46. package/assets/esri/core/workers/chunks/{b2c0262c4a76b8a86200.js → 149284464115981694ff.js} +1 -1
  47. package/assets/esri/core/workers/chunks/1642fa1263d8f4a45101.js +1 -0
  48. package/assets/esri/core/workers/chunks/1840d74ebae777a0200b.js +1 -0
  49. package/assets/esri/core/workers/chunks/19bf6826e7d9a4d52035.js +1 -0
  50. package/assets/esri/core/workers/chunks/1bfbdec791e19f5a2534.js +1 -0
  51. package/assets/esri/core/workers/chunks/1d8280f63a6698e74f20.js +1 -0
  52. package/assets/esri/core/workers/chunks/{a12803108c3b12808698.js → 242cad472fbc38b24dbc.js} +2 -2
  53. package/assets/esri/core/workers/chunks/25197ecb324d6f08e03e.js +1 -0
  54. package/assets/esri/core/workers/chunks/253c231b5a52f1d2d3a5.js +1 -0
  55. package/assets/esri/core/workers/chunks/25999b6f96ec305a7679.js +1 -0
  56. package/assets/esri/core/workers/chunks/259bdacfb7b0f866a8d0.js +1 -0
  57. package/assets/esri/core/workers/chunks/28565756f884d0851003.js +1 -0
  58. package/assets/esri/core/workers/chunks/2a5a165848413764381b.js +1 -0
  59. package/assets/esri/core/workers/chunks/2e7a5bb740281ef59199.js +1 -0
  60. package/assets/esri/core/workers/chunks/{285a5bd708f0fe1c620c.js → 2ea3ca68cfa4d34e8f3b.js} +1 -1
  61. package/assets/esri/core/workers/chunks/2f87a49bdd00f899d81d.js +1 -0
  62. package/assets/esri/core/workers/chunks/{37a95f097533bad1b338.js → 302d91b7c480c6c9304b.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{3d6d2b42ba2ad7086d5d.js → 3b493e8043ec1a2a5d96.js} +1 -1
  64. package/assets/esri/core/workers/chunks/40e48b720d89cd067892.js +1 -0
  65. package/assets/esri/core/workers/chunks/{a833fc9250635eb4152f.js → 41f7f3615d3ecb87c59a.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{95b3b8fe45ef4ac6b277.js → 450bc48a7389607bce1e.js} +1 -1
  67. package/assets/esri/core/workers/chunks/465a050fd838ee8eddf3.js +1 -0
  68. package/assets/esri/core/workers/chunks/{0d61c8d348b09179777a.js → 46d8a1d6f7341ad20749.js} +1 -1
  69. package/assets/esri/core/workers/chunks/4710f21b138a2c9a0345.js +1 -0
  70. package/assets/esri/core/workers/chunks/48a0dfaabb9b4bce4191.js +1 -0
  71. package/assets/esri/core/workers/chunks/49a3888bf9e2481642ac.js +1 -0
  72. package/assets/esri/core/workers/chunks/{4ee900e5dbb130fa0c7b.js → 4a40b894ec89b0a4f9bf.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{d847c3cb2043a983145b.js → 4addea2e35b0c845743e.js} +1 -1
  74. package/assets/esri/core/workers/chunks/{e0a4d0288abd334b0673.js → 4ae626868e14bedd7fc5.js} +1 -1
  75. package/assets/esri/core/workers/chunks/529ee4670940720e888b.js +1 -0
  76. package/assets/esri/core/workers/chunks/{a3c882fe7599dc0f4f27.js → 59d1708ae13c6e7e6e55.js} +1 -1
  77. package/assets/esri/core/workers/chunks/59dd83e5aee2908c7eca.js +1 -0
  78. package/assets/esri/core/workers/chunks/{b8bdacebd4d24ba90f3f.js → 5fde1234c5cccaee6763.js} +1 -1
  79. package/assets/esri/core/workers/chunks/60f9b37dd738d884c48d.js +1 -0
  80. package/assets/esri/core/workers/chunks/6123894e2ae9233cdf89.js +1 -0
  81. package/assets/esri/core/workers/chunks/62c8413f3bbc1378273d.js +1 -0
  82. package/assets/esri/core/workers/chunks/6501ee40bf25f9f75d02.js +1 -0
  83. package/assets/esri/core/workers/chunks/663cf8bff17c894cd5f8.js +1 -0
  84. package/assets/esri/core/workers/chunks/6b536d03b4bef408035b.js +1 -0
  85. package/assets/esri/core/workers/chunks/6d1371b521c7f94fd77e.js +1 -0
  86. package/assets/esri/core/workers/chunks/6d5038d4351fe29e2718.js +1 -0
  87. package/assets/esri/core/workers/chunks/6f102c90908c9900cdaa.js +1 -0
  88. package/assets/esri/core/workers/chunks/6f39545710d1b35d922c.js +1 -0
  89. package/assets/esri/core/workers/chunks/7278fdf6bfcdffa10a7f.js +1 -0
  90. package/assets/esri/core/workers/chunks/72eb0ac55026a4f5d6a7.js +1 -0
  91. package/assets/esri/core/workers/chunks/73cb499d7d68c59ba34e.js +1 -0
  92. package/assets/esri/core/workers/chunks/{b8d788e110c212a879ab.js → 73f228d966b89c73c9e9.js} +1 -1
  93. package/assets/esri/core/workers/chunks/76bccc318d7cc33829a7.js +1 -0
  94. package/assets/esri/core/workers/chunks/{23a3d8f91caf3136b2aa.js → 771ead806efbe9c91fdc.js} +1 -1
  95. package/assets/esri/core/workers/chunks/777eafdb86b26b35c803.js +1 -0
  96. package/assets/esri/core/workers/chunks/7821aeba3e414b318a75.js +1 -0
  97. package/assets/esri/core/workers/chunks/78b80da3bbc1b608fe83.js +1 -0
  98. package/assets/esri/core/workers/chunks/7b531feba4fd662575f9.js +1 -0
  99. package/assets/esri/core/workers/chunks/7c57354d026e27e056d4.js +1 -0
  100. package/assets/esri/core/workers/chunks/7d163d9d90393e491ee5.js +1 -0
  101. package/assets/esri/core/workers/chunks/7d4c65311064a5c2e0b1.js +1 -0
  102. package/assets/esri/core/workers/chunks/{0474af7687466d8befd2.js → 7e2794705b4e679fcb3f.js} +1 -1
  103. package/assets/esri/core/workers/chunks/7ebbb90d80600d9ba889.js +1 -0
  104. package/assets/esri/core/workers/chunks/7f125963555dc1ce63ad.js +1 -0
  105. package/assets/esri/core/workers/chunks/{763cbb6716e398436a6d.js → 7f6eee102871769fdf8f.js} +1 -1
  106. package/assets/esri/core/workers/chunks/805c97b875d3066fb8df.js +1 -0
  107. package/assets/esri/core/workers/chunks/8566449c39eba55147f5.js +1 -0
  108. package/assets/esri/core/workers/chunks/86ed75b7169b8ee43025.js +1 -0
  109. package/assets/esri/core/workers/chunks/{9482a6d7baa24bbf5693.js → 89132395eca329b9ab92.js} +1 -1
  110. package/assets/esri/core/workers/chunks/{28bc5e8e82f188b30eb9.js → 894343e415639df88243.js} +1 -1
  111. package/assets/esri/core/workers/chunks/8b4759cef5ae5e43253b.js +1 -0
  112. package/assets/esri/core/workers/chunks/8ba4175f5e9a24ffecf7.js +1 -0
  113. package/assets/esri/core/workers/chunks/8be707044d992ef5f1d8.js +1 -0
  114. package/assets/esri/core/workers/chunks/{bd862382f72ebd446b46.js → 8d2cac1952e817daaf1f.js} +1 -1
  115. package/assets/esri/core/workers/chunks/8e38c5e63aae42bdf5a4.js +29 -0
  116. package/assets/esri/core/workers/chunks/{02ab09285a5c4ca98066.js → 8f785b722b1a131bf370.js} +1 -1
  117. package/assets/esri/core/workers/chunks/8f9874f42f21a4cb3acd.js +1 -0
  118. package/assets/esri/core/workers/chunks/90f4b81c6034253b70d7.js +1 -0
  119. package/assets/esri/core/workers/chunks/917c11cb40a7742d7f98.js +1 -0
  120. package/assets/esri/core/workers/chunks/93ab247ff34694ac60eb.js +1 -0
  121. package/assets/esri/core/workers/chunks/{6e45d0db97ffa4509177.js → 94bf7f0da6ad3f7ea277.js} +1 -1
  122. package/assets/esri/core/workers/chunks/9c57161ad48d8d546dc7.js +1 -0
  123. package/assets/esri/core/workers/chunks/{b2cf1d3f0d48eac23a84.js → 9c5dff4f13102871786e.js} +1 -1
  124. package/assets/esri/core/workers/chunks/9d0bda096cdbd7e22f4b.js +1 -0
  125. package/assets/esri/core/workers/chunks/9dfb7d120195991e9672.js +1 -0
  126. package/assets/esri/core/workers/chunks/9ed5e6b06afea6c85330.js +1 -0
  127. package/assets/esri/core/workers/chunks/{79b857bb301f9c4169d6.js → 9fee8441fbac9f723f77.js} +1 -1
  128. package/assets/esri/core/workers/chunks/a108f276659d5f25352c.js +1 -0
  129. package/assets/esri/core/workers/chunks/a2d8bc0efddd2e13b1ad.js +1 -0
  130. package/assets/esri/core/workers/chunks/{b32ede7805c7c6644e4c.js → a3bf8aa81ee398da5b52.js} +1 -1
  131. package/assets/esri/core/workers/chunks/{5b30231ae0a8f4b8435f.js → a504fa17d83facf1c01f.js} +1 -1
  132. package/assets/esri/core/workers/chunks/{538fe46dfd685a490e23.js → a7f42ada0aa69873a938.js} +1 -1
  133. package/assets/esri/core/workers/chunks/a97e0b9b057664911c14.js +1 -0
  134. package/assets/esri/core/workers/chunks/{cb58aff1ff186fa18345.js → a9f616f22042b0dce8b9.js} +1 -1
  135. package/assets/esri/core/workers/chunks/afd63c18ce4656271c8e.js +1 -0
  136. package/assets/esri/core/workers/chunks/{f04cb48fc73635d0572f.js → b059dabb1c732829487c.js} +1 -1
  137. package/assets/esri/core/workers/chunks/b313464b987db8a3987a.js +1 -0
  138. package/assets/esri/core/workers/chunks/b318823aefcefad6fad5.js +1 -0
  139. package/assets/esri/core/workers/chunks/b378e504a5b1afc8d0ce.js +1 -0
  140. package/assets/esri/core/workers/chunks/{9fb87a7dba62b527c0ba.js → b3a1a93c6dc9247cb048.js} +1 -1
  141. package/assets/esri/core/workers/chunks/b5397dc03fa0bd654ba6.js +1 -0
  142. package/assets/esri/core/workers/chunks/b5b698008b8f3f4d5d61.js +1 -0
  143. package/assets/esri/core/workers/chunks/b7bcb31737b01d7736d0.js +1 -0
  144. package/assets/esri/core/workers/chunks/b9a1046ca2cd0cca5da5.js +1 -0
  145. package/assets/esri/core/workers/chunks/{cda04571d7623c17ada2.js → b9c7aa04861f545a559c.js} +1 -1
  146. package/assets/esri/core/workers/chunks/{7df795bc4fa1d433463b.js → ba030767cf935f967454.js} +1 -1
  147. package/assets/esri/core/workers/chunks/{53d165b4f30fd64e5d8a.js → bd311c85437743cf7d2f.js} +1 -1
  148. package/assets/esri/core/workers/chunks/bd88228f781a0399d8bd.js +1 -0
  149. package/assets/esri/core/workers/chunks/bfb626805405646a0419.js +1 -0
  150. package/assets/esri/core/workers/chunks/{e65ee26feca0564aeb9b.js → c1e45e24f5ef719a714c.js} +18 -18
  151. package/assets/esri/core/workers/chunks/c203df41f9d2e4b80889.js +1 -0
  152. package/assets/esri/core/workers/chunks/{278409028bc5af45b507.js → c4c83b5129c279c3615b.js} +1 -1
  153. package/assets/esri/core/workers/chunks/c6ef0636073e28350c91.js +1 -0
  154. package/assets/esri/core/workers/chunks/c7e391df714839484cd1.js +1 -0
  155. package/assets/esri/core/workers/chunks/cded485ad893a7dd2948.js +1 -0
  156. package/assets/esri/core/workers/chunks/{1cf8fb704c48ac3d3b15.js → cf360767310fb45660a8.js} +1 -1
  157. package/assets/esri/core/workers/chunks/{8f2fecd8a0a972d68590.js → cf8ce63711488f2e677c.js} +1 -1
  158. package/assets/esri/core/workers/chunks/d214ac457ac970479536.js +1 -0
  159. package/assets/esri/core/workers/chunks/d4058352db1e8255b52e.js +1 -0
  160. package/assets/esri/core/workers/chunks/d4d385d19e62ef1c286f.js +1 -0
  161. package/assets/esri/core/workers/chunks/d4f005dadba75422b401.js +1 -0
  162. package/assets/esri/core/workers/chunks/{52c4b4dabcb0d162be72.js → d5e15021928e95c11463.js} +1 -1
  163. package/assets/esri/core/workers/chunks/{fc639c730115e07a4a1a.js → d6500f6b2ff115d9eb09.js} +1 -1
  164. package/assets/esri/core/workers/chunks/e1492d2404c3ed82931e.js +1 -0
  165. package/assets/esri/core/workers/chunks/e34ed3b818b2eb4116c5.js +1 -0
  166. package/assets/esri/core/workers/chunks/e7149d23615fee31ab7e.js +1 -0
  167. package/assets/esri/core/workers/chunks/ec774f5d6ea5c29536e5.js +1 -0
  168. package/assets/esri/core/workers/chunks/ed71a4e353715db0a6e9.js +1 -0
  169. package/assets/esri/core/workers/chunks/{3f775deea48e268411f1.js → ef27bf1d7941ae265ca4.js} +1 -1
  170. package/assets/esri/core/workers/chunks/{1e342d532925569daadb.js → f475672ff4c2ec9367c2.js} +1 -1
  171. package/assets/esri/core/workers/chunks/{cc414fd2e313d89d524d.js → f54eba484f40d5eeb590.js} +1 -1
  172. package/assets/esri/core/workers/chunks/{04ffe788d2efc0a076dd.js → f5c9659fc5d571d501c9.js} +1 -1
  173. package/assets/esri/core/workers/chunks/f622b27ebdf1c918fd6d.js +1 -0
  174. package/assets/esri/core/workers/chunks/{dd95f50dac3f33cdb6d2.js → f6a13f07a5f7b781a9a8.js} +1 -1
  175. package/assets/esri/core/workers/chunks/{d849bdaf5bdfdc37531a.js → f6f7d885b4d6080e3f58.js} +1 -1
  176. package/assets/esri/core/workers/chunks/f8b8d3d2710c83acccf3.js +1 -0
  177. package/assets/esri/core/workers/chunks/f95870bb4d8e4e13e69e.js +1 -0
  178. package/assets/esri/core/workers/chunks/fa59f10ed0f182a2a7f3.js +1 -0
  179. package/assets/esri/core/workers/chunks/faa55265020591fd2224.js +1 -0
  180. package/assets/esri/core/workers/chunks/fc827f58db3194922056.js +1 -0
  181. package/chunks/_commonjsHelpers.js +1 -1
  182. package/chunks/aiServices.js +1 -1
  183. package/chunks/array.js +1 -1
  184. package/chunks/languageUtils.js +1 -1
  185. package/config.js +1 -1
  186. package/form/ExpressionInfo.d.ts +1 -1
  187. package/form/ExpressionInfo.js +1 -1
  188. package/form/elements/FieldElement.d.ts +3 -2
  189. package/form/elements/inputs/ComboBoxInput.d.ts +4 -15
  190. package/form/elements/inputs/ComboBoxInput.js +1 -1
  191. package/form/elements/inputs/DynamicChoiceInput.d.ts +31 -0
  192. package/form/elements/inputs/DynamicChoiceInput.js +2 -0
  193. package/form/elements/inputs/Input.d.ts +1 -1
  194. package/form/elements/inputs/RadioButtonsInput.d.ts +4 -15
  195. package/form/elements/inputs/RadioButtonsInput.js +1 -1
  196. package/form/elements/inputs/SingleChoiceInput.d.ts +18 -0
  197. package/form/elements/inputs/SingleChoiceInput.js +2 -0
  198. package/form/elements/inputs.d.ts +11 -2
  199. package/form/elements/inputs.js +1 -1
  200. package/geometry/support/normalizeUtils.d.ts +1 -1
  201. package/kernel.js +1 -1
  202. package/layers/ImageryTileLayer.d.ts +1 -1
  203. package/layers/RouteLayer.d.ts +1 -1
  204. package/layers/mixins/ArcGISImageService.d.ts +24 -24
  205. package/layers/mixins/TiledImagery.d.ts +1 -1
  206. package/layers/orientedImagery/transformations/rectifyMapPoint.js +1 -1
  207. package/layers/video/VideoController.js +1 -1
  208. package/networks/support/CircuitExportJobInfo.d.ts +1 -1
  209. package/networks/support/CircuitVerifyJobInfo.d.ts +1 -1
  210. package/networks/support/TopologyValidationJobInfo.d.ts +1 -1
  211. package/networks/support/TraceJobInfo.d.ts +1 -1
  212. package/package.json +2 -2
  213. package/portal/jsonTypes.d.ts +1 -1
  214. package/rest/closestFacility.d.ts +1 -1
  215. package/rest/find.d.ts +1 -1
  216. package/rest/geometryService.d.ts +21 -21
  217. package/rest/geoprocessor.d.ts +2 -2
  218. package/rest/identify.d.ts +1 -1
  219. package/rest/imageService.d.ts +19 -19
  220. package/rest/lastMileDelivery.d.ts +8 -8
  221. package/rest/locator.d.ts +4 -4
  222. package/rest/networkService.d.ts +1 -1
  223. package/rest/networks/queryAssociations.d.ts +1 -1
  224. package/rest/networks/synthesizeAssociationGeometries.d.ts +1 -1
  225. package/rest/networks/trace.d.ts +1 -1
  226. package/rest/networks/traverseAssociations.d.ts +1 -1
  227. package/rest/places.d.ts +3 -3
  228. package/rest/print.d.ts +1 -1
  229. package/rest/query.d.ts +11 -11
  230. package/rest/route.d.ts +1 -1
  231. package/rest/serviceArea.d.ts +1 -1
  232. package/rest/support/JobInfo.d.ts +5 -5
  233. package/rest/symbolService.d.ts +1 -1
  234. package/support/revision.js +1 -1
  235. package/views/3d/analysis/LineOfSight/LineOfSightReshapeTool3D.js +1 -1
  236. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  237. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  238. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  239. package/views/3d/layers/graphics/Graphics3DPathSymbolLayerConstants.js +1 -1
  240. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  241. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathEvaluate.glsl.js +49 -32
  242. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexInfo.glsl.js +5 -5
  243. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +23 -23
  244. package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
  245. package/views/3d/webgl-engine/lib/PathBuilder.js +1 -1
  246. package/views/3d/webgl-engine/lib/PathEvaluator.js +1 -1
  247. package/views/3d/webgl-engine/lib/PathExtruder.js +1 -1
  248. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  249. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  250. package/views/draw/support/InteractiveHandle.js +1 -1
  251. package/views/draw/support/managers/SurfaceManager.js +1 -1
  252. package/views/interactive/Tooltip.d.ts +3 -3
  253. package/views/interactive/Tooltip.js +1 -1
  254. package/views/interactive/options/ElevationOptions.d.ts +20 -0
  255. package/views/interactive/options/ElevationOptions.js +2 -0
  256. package/views/interactive/options/LabelOptions.d.ts +74 -0
  257. package/views/interactive/options/LabelOptions.js +2 -0
  258. package/views/interactive/options/SnappingOptions.d.ts +157 -0
  259. package/views/interactive/options/SnappingOptions.js +2 -0
  260. package/views/interactive/options/TooltipOptions.d.ts +152 -0
  261. package/views/interactive/options/TooltipOptions.js +2 -0
  262. package/views/interactive/options/TooltipVisibleElements.d.ts +105 -0
  263. package/views/interactive/options/TooltipVisibleElements.js +2 -0
  264. package/views/interactive/options/ValueOptions.d.ts +63 -0
  265. package/views/interactive/options/ValueOptions.js +2 -0
  266. package/views/interactive/sketch/SketchLabelOptions.d.ts +7 -9
  267. package/views/interactive/sketch/SketchLabelOptions.js +1 -1
  268. package/views/interactive/sketch/SketchTooltipElevationOptions.js +1 -1
  269. package/views/interactive/sketch/SketchTooltipOptions.d.ts +8 -50
  270. package/views/interactive/sketch/SketchTooltipOptions.js +1 -1
  271. package/views/interactive/sketch/SketchTooltipVisibleElements.d.ts +10 -95
  272. package/views/interactive/sketch/SketchTooltipVisibleElements.js +1 -1
  273. package/views/interactive/sketch/SketchValueOptions.d.ts +7 -45
  274. package/views/interactive/sketch/SketchValueOptions.js +1 -1
  275. package/views/interactive/sketch/Units.d.ts +10 -29
  276. package/views/interactive/sketch/Units.js +1 -1
  277. package/views/interactive/snapping/SnappingOptions.d.ts +7 -78
  278. package/views/interactive/snapping/SnappingOptions.js +1 -1
  279. package/views/interactive/support/Units.d.ts +33 -0
  280. package/views/interactive/support/Units.js +2 -0
  281. package/views/interactive/support/types.d.ts +33 -0
  282. package/views/interactive/tooltip/types.d.ts +6 -2
  283. package/assets/esri/core/workers/chunks/02dd79beb13eff6be85e.js +0 -1
  284. package/assets/esri/core/workers/chunks/0623acb2bd14a61b65c9.js +0 -29
  285. package/assets/esri/core/workers/chunks/069b6d8bdb34ee88d437.js +0 -1
  286. package/assets/esri/core/workers/chunks/0790bf0eb276cd9166f6.js +0 -1
  287. package/assets/esri/core/workers/chunks/08c2bf9defcece9e049a.js +0 -1
  288. package/assets/esri/core/workers/chunks/0ae0483b72f5e8d00d55.js +0 -1
  289. package/assets/esri/core/workers/chunks/0d1224693a62a26a0e72.js +0 -1
  290. package/assets/esri/core/workers/chunks/10b367563f894ceb9864.js +0 -1
  291. package/assets/esri/core/workers/chunks/11e00ca5ac1b004f4ecc.js +0 -1
  292. package/assets/esri/core/workers/chunks/13033178de9f637a2356.js +0 -1
  293. package/assets/esri/core/workers/chunks/13c893e448bedc5c1cef.js +0 -1
  294. package/assets/esri/core/workers/chunks/14cd8bb1ad4da8d1d2ca.js +0 -1
  295. package/assets/esri/core/workers/chunks/15c2d9bec0455fc363a9.js +0 -1
  296. package/assets/esri/core/workers/chunks/246cd372d4184233f48e.js +0 -1
  297. package/assets/esri/core/workers/chunks/268ab65afc3fce775ad2.js +0 -1
  298. package/assets/esri/core/workers/chunks/279a9a38b04a21cdfd11.js +0 -1
  299. package/assets/esri/core/workers/chunks/2a1c6df073e6ca6a6365.js +0 -1
  300. package/assets/esri/core/workers/chunks/3406a01dad6338e3c548.js +0 -1
  301. package/assets/esri/core/workers/chunks/36781219ca9ba5d7fe52.js +0 -1
  302. package/assets/esri/core/workers/chunks/36999a2e383c8eb3c398.js +0 -1
  303. package/assets/esri/core/workers/chunks/36f8a912842181e1f0aa.js +0 -1
  304. package/assets/esri/core/workers/chunks/3f1a7f8a9ead64bf0b7b.js +0 -1
  305. package/assets/esri/core/workers/chunks/41e821ce229bc56dc1a1.js +0 -1
  306. package/assets/esri/core/workers/chunks/456e616f32e7de696d38.js +0 -1
  307. package/assets/esri/core/workers/chunks/478540265c86436da05e.js +0 -1
  308. package/assets/esri/core/workers/chunks/479f486ec1797629ec70.js +0 -1
  309. package/assets/esri/core/workers/chunks/484b3e2a220c440ccbb4.js +0 -1
  310. package/assets/esri/core/workers/chunks/4a340836ddbc856993f2.js +0 -1
  311. package/assets/esri/core/workers/chunks/54b9667450d066c6f6ce.js +0 -1
  312. package/assets/esri/core/workers/chunks/57b07448da06d0302a46.js +0 -1
  313. package/assets/esri/core/workers/chunks/5a9ff50fdcc99ae28cce.js +0 -1
  314. package/assets/esri/core/workers/chunks/5dc17b76c6ecc24e7b9a.js +0 -1
  315. package/assets/esri/core/workers/chunks/5e3d5347223f0111f40f.js +0 -1
  316. package/assets/esri/core/workers/chunks/5eb6f37c74a217772eca.js +0 -1
  317. package/assets/esri/core/workers/chunks/6210fb6cd31844f23964.js +0 -1
  318. package/assets/esri/core/workers/chunks/638ed1297efdb24f4711.js +0 -1
  319. package/assets/esri/core/workers/chunks/63ede7295938f7010808.js +0 -1
  320. package/assets/esri/core/workers/chunks/661a59133ae34f172174.js +0 -1
  321. package/assets/esri/core/workers/chunks/687cf21e027f49b44d22.js +0 -1
  322. package/assets/esri/core/workers/chunks/6c2b5087a9df65267f4e.js +0 -1
  323. package/assets/esri/core/workers/chunks/6d247ff53421d27628ce.js +0 -1
  324. package/assets/esri/core/workers/chunks/700c08dd2e734c15e621.js +0 -1
  325. package/assets/esri/core/workers/chunks/70452f6d63e9be8d03dd.js +0 -1
  326. package/assets/esri/core/workers/chunks/733b2e181683d5fc7c95.js +0 -1
  327. package/assets/esri/core/workers/chunks/7659391f952d134164cf.js +0 -1
  328. package/assets/esri/core/workers/chunks/7889f4a17cf249f2acc5.js +0 -1
  329. package/assets/esri/core/workers/chunks/7a2dcd57849048c6e00d.js +0 -1
  330. package/assets/esri/core/workers/chunks/7a2dfa42610fe8414ed7.js +0 -1
  331. package/assets/esri/core/workers/chunks/7ce52b850dd785bfa33f.js +0 -1
  332. package/assets/esri/core/workers/chunks/7fdd6a5fa062778be55d.js +0 -1
  333. package/assets/esri/core/workers/chunks/81accb1820e2735fa376.js +0 -1
  334. package/assets/esri/core/workers/chunks/8210fc9e072209e26fa9.js +0 -1
  335. package/assets/esri/core/workers/chunks/8369edafab7bdc59b95a.js +0 -1
  336. package/assets/esri/core/workers/chunks/84fa102a93b2144c28fb.js +0 -1
  337. package/assets/esri/core/workers/chunks/85ce7673d42526a79fd2.js +0 -1
  338. package/assets/esri/core/workers/chunks/8722e2790272e90a1897.js +0 -1
  339. package/assets/esri/core/workers/chunks/8a1970e68bc1e833cb7f.js +0 -1
  340. package/assets/esri/core/workers/chunks/8bb20ef549ec1c86b38e.js +0 -1
  341. package/assets/esri/core/workers/chunks/8c535c6a39d2be2ed655.js +0 -1
  342. package/assets/esri/core/workers/chunks/92696cce2b980373f9ad.js +0 -1
  343. package/assets/esri/core/workers/chunks/98b27cf8acbfa4259758.js +0 -1
  344. package/assets/esri/core/workers/chunks/9a6208ab670ad74e6f7d.js +0 -1
  345. package/assets/esri/core/workers/chunks/a09ce34fc7c8abe64ed5.js +0 -1
  346. package/assets/esri/core/workers/chunks/a10f63a08d976be058be.js +0 -1
  347. package/assets/esri/core/workers/chunks/a5f058567419ea70dff6.js +0 -1
  348. package/assets/esri/core/workers/chunks/a965d151515b76dd7566.js +0 -1
  349. package/assets/esri/core/workers/chunks/afeeb11b39e140303b5a.js +0 -1
  350. package/assets/esri/core/workers/chunks/b5c7813495657f844171.js +0 -1
  351. package/assets/esri/core/workers/chunks/b7170816736769d3b7b0.js +0 -1
  352. package/assets/esri/core/workers/chunks/b8e5d7aefddddbd0a10c.js +0 -1
  353. package/assets/esri/core/workers/chunks/b958f87f23f984131d09.js +0 -1
  354. package/assets/esri/core/workers/chunks/b9f40681af1fa00b5bbe.js +0 -1
  355. package/assets/esri/core/workers/chunks/c4c25db769a78e677e33.js +0 -1
  356. package/assets/esri/core/workers/chunks/c85ba0700eafdc8d6f9e.js +0 -1
  357. package/assets/esri/core/workers/chunks/ca118c42c0f609ca7912.js +0 -1
  358. package/assets/esri/core/workers/chunks/cb17cd8aaf77238c0236.js +0 -1
  359. package/assets/esri/core/workers/chunks/d03f427442bb0c287d05.js +0 -1
  360. package/assets/esri/core/workers/chunks/d08d3c6f21e6ba8268ca.js +0 -1
  361. package/assets/esri/core/workers/chunks/d37a72111dffc4c4db70.js +0 -1
  362. package/assets/esri/core/workers/chunks/d41ab2abcfacc87809b5.js +0 -1
  363. package/assets/esri/core/workers/chunks/d4ed094962a41d756c95.js +0 -1
  364. package/assets/esri/core/workers/chunks/d51c41c1944df0cbab3e.js +0 -1
  365. package/assets/esri/core/workers/chunks/d83ea3e4e9ab45334068.js +0 -1
  366. package/assets/esri/core/workers/chunks/d9b83d7dd7d1f7729a91.js +0 -1
  367. package/assets/esri/core/workers/chunks/dbcec48c4ba104a6d0b5.js +0 -1
  368. package/assets/esri/core/workers/chunks/dc24e80d061f7b063608.js +0 -1
  369. package/assets/esri/core/workers/chunks/df30053a10d4930924d5.js +0 -1
  370. package/assets/esri/core/workers/chunks/e5bb7ee670a3ba5ba3fe.js +0 -1
  371. package/assets/esri/core/workers/chunks/e5c75459de85a6dd2f14.js +0 -1
  372. package/assets/esri/core/workers/chunks/e798ca23f02a2dd65bd4.js +0 -1
  373. package/assets/esri/core/workers/chunks/f1299b4fc760ccca1518.js +0 -1
  374. package/assets/esri/core/workers/chunks/f65adaaa33d9f3b131f6.js +0 -1
  375. package/assets/esri/core/workers/chunks/f6715b8765cd36d81ec8.js +0 -1
  376. package/assets/esri/core/workers/chunks/f7fa932ade85cb2847b6.js +0 -1
  377. package/assets/esri/core/workers/chunks/f9a4f4efd63b8189a4eb.js +0 -1
  378. package/assets/esri/core/workers/chunks/f9b654f801cb416e9e17.js +0 -1
  379. package/assets/esri/core/workers/chunks/fa1c58e5b582d61a03ab.js +0 -1
  380. package/assets/esri/core/workers/chunks/fdec3a2e100688c42e41.js +0 -1
  381. package/assets/esri/core/workers/chunks/fefbde2c2e527bb716ee.js +0 -1
  382. /package/assets/esri/core/workers/chunks/{a12803108c3b12808698.js.LICENSE.txt → 242cad472fbc38b24dbc.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import e from"../../../core/Accessor.js";import n from"../../../core/Logger.js";import{memoize as i}from"../../../core/memoize.js";import{ignoreAbortErrors as o}from"../../../core/promiseUtils.js";import{valueInUnit as s}from"../../../core/quantity.js";import{createScreenPoint as r}from"../../../core/screenUtils.js";import{property as a,subclass as p}from"../../../core/accessorSupport/decorators.js";import{fromArray as l,create as u}from"../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{normalize as g}from"../../../core/libs/gl-matrix-2/math/vec2.js";import c from"../../../geometry/Point.js";import{pointEquals as d}from"../../../layers/graphics/dehydratedFeatureComparison.js";import{makeDehydratedPoint as h}from"../../../layers/graphics/dehydratedPoint.js";import{getZFromVertexSnappingCandidates as f}from"./drawUtils.js";import{getPolylineOrPolygonConstraint as m,getPointConstraint as S,pointToConstraintSpace as y,constraintSpaceToPoint as P}from"../../interactive/sketch/constraintUtils.js";import{SnappingContext as M}from"../../interactive/snapping/SnappingContext.js";import{SnappingOperation as v}from"../../interactive/snapping/SnappingOperation.js";let x=class extends e{constructor(t){super(t),this._snappingOperation=null,this.role="primary",this.captureMode="capture-always",this.defaultCaptureMode="capture-always",this.snappingEnabled=!0,this.selfSnappingEnabled=!0,this.editSession=null,this.outputMapPositionOfDragStart=null,this.selectedSnappingResult=null,this.screenPosition=null,this.inputMapPosition=null,this.drawToolDragging=!1,this.manipulatorDragging=!1,this._getSnappingContext=i((t,e,n,i,o,s)=>n?new M({elevationInfo:i,pointer:t,vertexHandle:e,editGeometryOperations:n,visualizer:o,suppressSelfSnapping:!s}):null)}get grabbable(){return"grabbable-object"===this.captureMode}get following(){const{captureMode:t}=this;return"capture-always"===t||"capture-when-engaged"===t}get outputMapPosition(){return this._get("outputMapPosition")}set outputMapPosition(t){const e=this._get("outputMapPosition");t&&e&&d(t,e)||this._set("outputMapPosition",t)}get dragging(){return this.drawToolDragging||this.manipulatorDragging}get firstPointZ(){const t=this.editSession?.lastPointAddedBySession;if(!t)return null;const e=this.editSession?.getInformationAboutPoint(0,t.partIndex);return e?.point.hasZ?e.point.z:null}async moveTo(t,e){const{snappingManager:n,skipSnapping:i,surfaceManager:s,pointerType:r,editGeometryOperations:a,snappingVisualizer:p}=e,l=this._getSnappingContext(r??"mouse",this.editSession?.endVertex,a,s?.elevationInfo,p,this.selfSnappingEnabled),u=this._ensureSnappingOperation(e);t&&(this.screenPosition=t);const g=this.screenPosition;if(!g)return null;const f=e.surfaceManager?.screenToMap(g,{firstPointZ:this.firstPointZ});if(this.inputMapPosition=f,this.selectedSnappingResult=null,!n||!f||!l||i||!this.snappingEnabled)return this.selectedSnappingResult=void 0,this.outputMapPosition=this._finalizeSnappingAndConstraintResult(null,f,e);const m=h(f.x,f.y,f.z,f?.spatialReference),S=u.snap({point:m},n,l);return o(S.then(()=>{const t=u.stagedPoint;return d(this.selectedSnappingResult,t)||(this.selectedSnappingResult=new c({...t})),this.outputMapPosition=this._finalizeSnappingAndConstraintResult(this.selectedSnappingResult,f,e)}))}async moveDeltaRelativeToScreen(t,e,n){const{inputMapPosition:i,screenPosition:o,firstPointZ:s}=this;if(!i)return null;const a=n.surfaceManager?n.surfaceManager.mapToScreen(i,{firstPointZ:s}):o;if(!a)return null;const p=r(a.x+t,a.y+e);return this.moveTo(p,n)}async noteDragStart(t,e){if(this.drawToolDragging=!0,e.skipSnapping||!this.snappingEnabled)return null;const{snappingManager:i,surfaceManager:s,pointerType:r,editGeometryOperations:a,snappingVisualizer:p}=e,l=this._getSnappingContext(r??"mouse",this.editSession?.endVertex,a,s?.elevationInfo,p,this.selfSnappingEnabled),u=this._ensureSnappingOperation(e),g=s?.screenToMap(t,{firstPointZ:this.firstPointZ});if(this.outputMapPositionOfDragStart=null,i&&l&&g){const t=u.snap({point:h(g.x,g.y,g.z,g?.spatialReference)},i,l);return o(t.then(()=>{const t=u.stagedPoint?new c({...u.stagedPoint}):null;return this.outputMapPositionOfDragStart=this._finalizeSnappingAndConstraintResult(t,g,e)})).catch(t=>(n.getLogger(this).error("drawtool:handle:snapping-failed",t),null))}return this.outputMapPositionOfDragStart=g,null}async noteDragEnd(t,e){return this.moveTo(t,e).finally(()=>this.drawToolDragging=!1)}async moveDeltaRelativeToSketchSegment(t,e){const n=this.editSession?.endVertex?.leftSegment?.leftVertex?.pos,{firstPointZ:i}=this,o=this.inputMapPosition?e.surfaceManager?.mapToScreen(this.inputMapPosition,{firstPointZ:i})??this.screenPosition:this.screenPosition;if(!n||!o)return null;const s=e.editGeometryOperations?.data?.coordinateHelper.vectorToPoint(n);if(!s)return null;const r=e.surfaceManager?.mapToScreen(s,{firstPointZ:i});if(!r)return null;const a=[o.x-r.x,o.y-r.y],p=g(u(),l(a)),[c,d]=[p[0]*t,p[1]*t];return this.moveDeltaRelativeToScreen(c,d,e)}refreshConstraint(t){const e=this.outputMapPosition??this.inputMapPosition;return this.outputMapPosition=this._finalizeSnappingAndConstraintResult(null,e,t)}_finalizeSnappingAndConstraintResult(t,e,n){const i=t??e;return i&&(i.z=f(n.snappingManager)??i.z),this._ensureZ(this._applyTooltipConstraints(i,n),n)}_applyTooltipConstraints(t,e){let n=t;const i=e.tooltipManager?.getConstraints(this);if(!i&&!e.interactiveHandleManager?.customConstraints)return n;if(!n)return n;const o=e.interactiveHandleManager?.customConstraints,r=e.editGeometryOperations?.data?.coordinateHelper;if(!r)return n;if(o&&this.editSession&&n){const t={handle:this,editSession:this.editSession,toScreen:t=>e.surfaceManager?.mapToScreen(t,{firstPointZ:this.firstPointZ})??null};for(const e of o)n=e(n,t)||n}const a=this.editSession?.endVertex,p=a?.leftSegment?.leftVertex,l=p?.leftSegment?.leftVertex,u=p&&r.vectorToPoint(p.pos),g=l&&r.vectorToPoint(l.pos);if(!i)return n;const d=(u||g)&&"primary"===this.role?m(u,g,i):S(i);if(!n||!i||!d)return n;const{context:h}=i,f=y(n,h),M=f?d.closestTo(f):void 0;if(!M)return n;const v=P(M,n,h),x="2d"===e.surfaceManager?.view?.type||"absolute-height"!==h.elevationInfo.mode,T=i.elevation,{hasZ:b,metersPerVerticalUnit:w}=e.surfaceManager??{};if(null!=v&&x&&null!=T&&b&&w&&(v.z=s(T,"meters")/w),!v)return null;return new c({x:v.x,y:v.y,z:v.z,hasM:v.hasM,hasZ:v.hasZ,m:v.m,spatialReference:v.spatialReference})}_ensureZ(t,e){return t&&e.hasZ?(null!=t.z&&t.hasZ||(t.z=e.defaultZ??0,t.hasZ=!0),t):t}_ensureSnappingOperation({view:t}){return this._snappingOperation??=new v({view:t})}};t([a()],x.prototype,"_snappingOperation",void 0),t([a()],x.prototype,"role",void 0),t([a()],x.prototype,"name",void 0),t([a()],x.prototype,"captureMode",void 0),t([a()],x.prototype,"defaultCaptureMode",void 0),t([a()],x.prototype,"grabbable",null),t([a()],x.prototype,"following",null),t([a()],x.prototype,"snappingEnabled",void 0),t([a()],x.prototype,"selfSnappingEnabled",void 0),t([a()],x.prototype,"editSession",void 0),t([a()],x.prototype,"outputMapPosition",null),t([a()],x.prototype,"outputMapPositionOfDragStart",void 0),t([a()],x.prototype,"selectedSnappingResult",void 0),t([a()],x.prototype,"screenPosition",void 0),t([a()],x.prototype,"inputMapPosition",void 0),t([a()],x.prototype,"dragging",null),t([a()],x.prototype,"drawToolDragging",void 0),t([a()],x.prototype,"manipulatorDragging",void 0),t([a({readOnly:!0})],x.prototype,"firstPointZ",null),x=t([p("esri.views.draw.support.InteractiveHandle")],x);export{x as InteractiveHandle};
2
+ import{__decorate as t}from"tslib";import e from"../../../core/Accessor.js";import n from"../../../core/Logger.js";import{memoize as i}from"../../../core/memoize.js";import{ignoreAbortErrors as o}from"../../../core/promiseUtils.js";import{valueInUnit as s}from"../../../core/quantity.js";import{createScreenPoint as r}from"../../../core/screenUtils.js";import{property as a,subclass as p}from"../../../core/accessorSupport/decorators.js";import{fromArray as l,create as u}from"../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{normalize as c}from"../../../core/libs/gl-matrix-2/math/vec2.js";import g from"../../../geometry/Point.js";import{pointEquals as d}from"../../../layers/graphics/dehydratedFeatureComparison.js";import{makeDehydratedPoint as f}from"../../../layers/graphics/dehydratedPoint.js";import{getZFromVertexSnappingCandidates as h}from"./drawUtils.js";import{getPolylineOrPolygonConstraint as m,getPointConstraint as S,pointToConstraintSpace as P,constraintSpaceToPoint as y}from"../../interactive/sketch/constraintUtils.js";import{SnappingContext as v}from"../../interactive/snapping/SnappingContext.js";import{SnappingOperation as M}from"../../interactive/snapping/SnappingOperation.js";let T=class extends e{constructor(t){super(t),this._snappingOperation=null,this.role="primary",this.captureMode="capture-always",this.defaultCaptureMode="capture-always",this.snappingEnabled=!0,this.selfSnappingEnabled=!0,this.editSession=null,this.outputMapPositionOfDragStart=null,this.selectedSnappingResult=null,this.screenPosition=null,this.inputMapPosition=null,this.drawToolDragging=!1,this.manipulatorDragging=!1,this._getSnappingContext=i((t,e,n,i,o,s)=>n?new v({elevationInfo:i,pointer:t,vertexHandle:e,editGeometryOperations:n,visualizer:o,suppressSelfSnapping:!s}):null)}get grabbable(){return"grabbable-object"===this.captureMode}get following(){const{captureMode:t}=this;return"capture-always"===t||"capture-when-engaged"===t}get outputMapPosition(){return this._get("outputMapPosition")}set outputMapPosition(t){const e=this._get("outputMapPosition");t&&e&&d(t,e)||this._set("outputMapPosition",t)}get dragging(){return this.drawToolDragging||this.manipulatorDragging}get firstPointZ(){const t=this.editSession?.lastPointAddedBySession;if(!t)return null;const e=this.editSession?.getInformationAboutPoint(0,t.partIndex);return e?.point.hasZ?e.point.z:null}async moveTo(t,e){const{snappingManager:n,skipSnapping:i,surfaceManager:s,pointerType:r,editGeometryOperations:a,snappingVisualizer:p}=e,l=this._getSnappingContext(r??"mouse",this.editSession?.endVertex,a,s?.elevationInfo,p,this.selfSnappingEnabled),u=this._ensureSnappingOperation(e);t&&(this.screenPosition=t);const c=this.screenPosition;if(!c)return null;const h=this.firstPointZ,m=s?.screenToMap(c,{firstPointZ:h});if(this.inputMapPosition=m,this.selectedSnappingResult=null,!n||!m||!l||i||!this.snappingEnabled)return this.selectedSnappingResult=void 0,this.outputMapPosition=this._finalizeSnappingAndConstraintResult(null,m,e);const S=f(m.x,m.y,m.z,m?.spatialReference),P=s?.screenToScene?.(c,{firstPointZ:h}),y=u.snap({point:S,scenePoint:P},n,l);return o(y.then(()=>{const t=u.stagedPoint;return d(this.selectedSnappingResult,t)||(this.selectedSnappingResult=new g({...t})),this.outputMapPosition=this._finalizeSnappingAndConstraintResult(this.selectedSnappingResult,m,e)}))}async moveDeltaRelativeToScreen(t,e,n){const{inputMapPosition:i,screenPosition:o,firstPointZ:s}=this;if(!i)return null;const a=n.surfaceManager?n.surfaceManager.mapToScreen(i,{firstPointZ:s}):o;if(!a)return null;const p=r(a.x+t,a.y+e);return this.moveTo(p,n)}async noteDragStart(t,e){if(this.drawToolDragging=!0,e.skipSnapping||!this.snappingEnabled)return null;const{snappingManager:i,surfaceManager:s,pointerType:r,editGeometryOperations:a,snappingVisualizer:p}=e,l=this._getSnappingContext(r??"mouse",this.editSession?.endVertex,a,s?.elevationInfo,p,this.selfSnappingEnabled),u=this._ensureSnappingOperation(e),c=this.firstPointZ,d=s?.screenToMap(t,{firstPointZ:c});if(this.outputMapPositionOfDragStart=null,i&&l&&d){const r=u.snap({point:f(d.x,d.y,d.z,d?.spatialReference),scenePoint:s?.screenToScene?.(t,{firstPointZ:c})},i,l);return o(r.then(()=>{const t=u.stagedPoint?new g({...u.stagedPoint}):null;return this.outputMapPositionOfDragStart=this._finalizeSnappingAndConstraintResult(t,d,e)})).catch(t=>(n.getLogger(this).error("drawtool:handle:snapping-failed",t),null))}return this.outputMapPositionOfDragStart=d,null}async noteDragEnd(t,e){return this.moveTo(t,e).finally(()=>this.drawToolDragging=!1)}async moveDeltaRelativeToSketchSegment(t,e){const n=this.editSession?.endVertex?.leftSegment?.leftVertex?.pos,{firstPointZ:i}=this,o=this.inputMapPosition?e.surfaceManager?.mapToScreen(this.inputMapPosition,{firstPointZ:i})??this.screenPosition:this.screenPosition;if(!n||!o)return null;const s=e.editGeometryOperations?.data?.coordinateHelper.vectorToPoint(n);if(!s)return null;const r=e.surfaceManager?.mapToScreen(s,{firstPointZ:i});if(!r)return null;const a=[o.x-r.x,o.y-r.y],p=c(u(),l(a)),[g,d]=[p[0]*t,p[1]*t];return this.moveDeltaRelativeToScreen(g,d,e)}refreshConstraint(t){const e=this.outputMapPosition??this.inputMapPosition;return this.outputMapPosition=this._finalizeSnappingAndConstraintResult(null,e,t)}_finalizeSnappingAndConstraintResult(t,e,n){const i=t??e;i&&(i.z=h(n.snappingManager)??i.z);const o=(i?n.surfaceManager?.constrainZToEffectiveSurface?.(i):null)??i;return this._ensureZ(this._applyTooltipConstraints(o,n),n)}_applyTooltipConstraints(t,e){let n=t;const i=e.tooltipManager?.getConstraints(this);if(!i&&!e.interactiveHandleManager?.customConstraints)return n;if(!n)return n;const o=e.interactiveHandleManager?.customConstraints,r=e.editGeometryOperations?.data?.coordinateHelper;if(!r)return n;if(o&&this.editSession&&n){const t={handle:this,editSession:this.editSession,toScreen:t=>e.surfaceManager?.mapToScreen(t,{firstPointZ:this.firstPointZ})??null};for(const e of o)n=e(n,t)||n}const a=this.editSession?.endVertex,p=a?.leftSegment?.leftVertex,l=p?.leftSegment?.leftVertex,u=p&&r.vectorToPoint(p.pos),c=l&&r.vectorToPoint(l.pos);if(!i)return n;const d=(u||c)&&"primary"===this.role?m(u,c,i):S(i);if(!n||!i||!d)return n;const{context:f}=i,h=P(n,f),v=h?d.closestTo(h):void 0;if(!v)return n;const M=y(v,n,f),T="2d"===e.surfaceManager?.view?.type||"absolute-height"!==f.elevationInfo.mode,Z=i.elevation,{hasZ:x,metersPerVerticalUnit:b}=e.surfaceManager??{};if(null!=M&&T&&null!=Z&&x&&b&&(M.z=s(Z,"meters")/b),!M)return null;return new g({x:M.x,y:M.y,z:M.z,hasM:M.hasM,hasZ:M.hasZ,m:M.m,spatialReference:M.spatialReference})}_ensureZ(t,e){return t&&e.hasZ?(null!=t.z&&t.hasZ||(t.z=e.defaultZ??0,t.hasZ=!0),t):t}_ensureSnappingOperation({view:t}){return this._snappingOperation??=new M({view:t})}};t([a()],T.prototype,"_snappingOperation",void 0),t([a()],T.prototype,"role",void 0),t([a()],T.prototype,"name",void 0),t([a()],T.prototype,"captureMode",void 0),t([a()],T.prototype,"defaultCaptureMode",void 0),t([a()],T.prototype,"grabbable",null),t([a()],T.prototype,"following",null),t([a()],T.prototype,"snappingEnabled",void 0),t([a()],T.prototype,"selfSnappingEnabled",void 0),t([a()],T.prototype,"editSession",void 0),t([a()],T.prototype,"outputMapPosition",null),t([a()],T.prototype,"outputMapPositionOfDragStart",void 0),t([a()],T.prototype,"selectedSnappingResult",void 0),t([a()],T.prototype,"screenPosition",void 0),t([a()],T.prototype,"inputMapPosition",void 0),t([a()],T.prototype,"dragging",null),t([a()],T.prototype,"drawToolDragging",void 0),t([a()],T.prototype,"manipulatorDragging",void 0),t([a({readOnly:!0})],T.prototype,"firstPointZ",null),T=t([p("esri.views.draw.support.InteractiveHandle")],T);export{T as InteractiveHandle};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{valueInUnit as r}from"../../../../core/quantity.js";import{watch as i,syncAndInitial as o}from"../../../../core/reactiveUtils.js";import{getMetersPerVerticalUnitForSR as n}from"../../../../core/units.js";import{property as a}from"../../../../core/accessorSupport/decorators/property.js";import{subclass as s}from"../../../../core/accessorSupport/decorators/subclass.js";import{SceneDrawSurface as l,ElevationDrawSurface as c,MapDrawSurface as u}from"../../drawSurfaces.js";let f=class extends t{constructor(e){super(e),this._viewDrawSurface=null,this._elevationDrawSurface=null,this._firstPointZ=null,this.getContext=null,this.hasZ=!1,this.spatialReference=null,this.elevationInfo=null,this.excludedGraphicsLayer=null,this.view=null,this.defaultZ=null,this.snapToSceneEnabled=null}initialize(){super.initialize(),this._setupSurfaces(),this.addHandles(i(()=>({surface:this._elevationDrawSurface,defaultZ:this._effectiveDefaultZ}),({surface:e,defaultZ:t})=>{e&&(e.defaultZ=t)},o))}get _effectiveDrawSurface(){if(!this._elevationDrawSurface)return this._viewDrawSurface;const{hasZ:e,elevationInfo:t,_viewDrawSurface:r,_elevationDrawSurface:i,drawAtFixedElevation:o,constraintsEnabled:n,elevationConstraint:a,snapToSceneEnabled:s}=this;return!e||"on-the-ground"===t?.mode||o||!1===s||n&&a&&this.metersPerVerticalUnit?i:r}get _effectiveDefaultZ(){const{constraintsEnabled:e,elevationConstraint:t,drawAtFixedElevation:i,defaultZ:o}=this,{metersPerVerticalUnit:n}=this,a=t&&n?r(t,"meters")/n:null;return i||e&&null!=a?a??this._firstPointZ??o:null}get context(){return this.getContext()}get constraintsEnabled(){return this.context?.constraintsEnabled}get elevationConstraint(){return this.context?.elevationConstraint}get drawAtFixedElevation(){return this.context?.drawAtFixedElevation??!1}get metersPerVerticalUnit(){const e=this.spatialReference;return e?n(e):null}get test(){return{viewSurface:this._viewDrawSurface,elevationSurface:this._elevationDrawSurface,effectiveSurface:this._effectiveDrawSurface,setFirstPointZ:e=>this._firstPointZ=e}}screenToMap(e,t){this._firstPointZ=t.firstPointZ;const r=this._effectiveDrawSurface;return r?r?.screenToMap(e):this.view?.toMap(e)}mapToScreen(e,t){this._firstPointZ=t.firstPointZ;const r=this._effectiveDrawSurface;return r?r.mapToScreen(e):this.view?.toScreen(e)}_setupSurfaces(){const{view:e,elevationInfo:t,excludedGraphicsLayer:r,hasZ:i}=this;"3d"===e?.type?(this._viewDrawSurface=new l(e,t,r?[r]:void 0),this._elevationDrawSurface=new c(t??{mode:"absolute-height",offset:0},this.defaultZ,e,r??void 0)):"2d"===e?.type&&(this._viewDrawSurface??=new u(e,i,this.defaultZ??void 0))}};e([a()],f.prototype,"_viewDrawSurface",void 0),e([a()],f.prototype,"_elevationDrawSurface",void 0),e([a()],f.prototype,"_effectiveDrawSurface",null),e([a()],f.prototype,"_effectiveDefaultZ",null),e([a()],f.prototype,"_firstPointZ",void 0),e([a({constructOnly:!0})],f.prototype,"getContext",void 0),e([a()],f.prototype,"context",null),e([a({constructOnly:!0})],f.prototype,"hasZ",void 0),e([a({constructOnly:!0})],f.prototype,"spatialReference",void 0),e([a({constructOnly:!0})],f.prototype,"elevationInfo",void 0),e([a({constructOnly:!0})],f.prototype,"excludedGraphicsLayer",void 0),e([a({constructOnly:!0})],f.prototype,"view",void 0),e([a()],f.prototype,"constraintsEnabled",null),e([a()],f.prototype,"elevationConstraint",null),e([a()],f.prototype,"drawAtFixedElevation",null),e([a()],f.prototype,"defaultZ",void 0),e([a()],f.prototype,"snapToSceneEnabled",void 0),e([a()],f.prototype,"metersPerVerticalUnit",null),f=e([s("esri.views.draw.support.managers.SurfaceManager")],f);export{f as SurfaceManager};
2
+ import{__decorate as t}from"tslib";import e from"../../../../core/Accessor.js";import{valueInUnit as r}from"../../../../core/quantity.js";import{watch as i,syncAndInitial as n}from"../../../../core/reactiveUtils.js";import{getMetersPerVerticalUnitForSR as o}from"../../../../core/units.js";import{property as s}from"../../../../core/accessorSupport/decorators/property.js";import{subclass as a}from"../../../../core/accessorSupport/decorators/subclass.js";import{getEffectiveElevationInfo as c}from"../../../../support/elevationInfoUtils.js";import{SceneDrawSurface as l,ElevationDrawSurface as u,MapDrawSurface as f}from"../../drawSurfaces.js";let p=class extends e{constructor(t){super(t),this._viewDrawSurface=null,this._elevationDrawSurface=null,this._firstPointZ=null,this.getContext=null,this.hasZ=!1,this.spatialReference=null,this.elevationInfo=null,this.excludedGraphicsLayer=null,this.view=null,this.defaultZ=null,this.snapToSceneEnabled=null}initialize(){this._setupSurfaces(),this.addHandles(i(()=>({surface:this._elevationDrawSurface,defaultZ:this._effectiveDefaultZ}),({surface:t,defaultZ:e})=>{t&&(t.defaultZ=e)},n))}get _constraintZ(){const{elevationConstraint:t,metersPerVerticalUnit:e}=this;return t&&e?r(t,"meters")/e:null}get _activeConstraintZ(){return this.constraintsEnabled?this._constraintZ:null}get _effectiveElevationInfo(){return c(this.hasZ,this.elevationInfo)}get _snapToScene(){const{constraintsEnabled:t,drawAtFixedElevation:e,snapToSceneEnabled:r}=this,i=this._effectiveElevationInfo.mode;let n=!!t||"absolute-height"===i;return null!=r&&(n=r),"on-the-ground"!==i&&!e&&null==this._activeConstraintZ&&n}get _effectiveDrawSurface(){return this._elevationDrawSurface?this.hasZ&&this._snapToScene?this._viewDrawSurface:this._elevationDrawSurface:this._viewDrawSurface}get _effectiveDefaultZ(){if(!this.hasZ)return null;if(this._snapToScene)return null;const t=this._activeConstraintZ;return this.drawAtFixedElevation||null!=t?t??this._firstPointZ??this.defaultZ:this.defaultZ}get context(){return this.getContext()}get constraintsEnabled(){return this.context?.constraintsEnabled}get elevationConstraint(){return this.context?.elevationConstraint}get drawAtFixedElevation(){return this.context?.drawAtFixedElevation??!1}get metersPerVerticalUnit(){const t=this.spatialReference;return t?o(t):null}get test(){return{viewSurface:this._viewDrawSurface,elevationSurface:this._elevationDrawSurface,effectiveSurface:this._effectiveDrawSurface,setFirstPointZ:t=>this._firstPointZ=t}}screenToMap(t,e){this._firstPointZ=e.firstPointZ;const r=this._effectiveDrawSurface;return r?r?.screenToMap(t):this.view?.toMap(t)}screenToScene(t,e){if(this._firstPointZ=e.firstPointZ,"3d"!==this.view?.type)return null;const r=this._viewDrawSurface,i=this._effectiveDrawSurface;return r&&i&&r!==i?r.screenToMap(t):null}constrainZToEffectiveSurface(t){if("3d"!==this.view?.type)return t;const e=this._effectiveDrawSurface;return e&&e!==this._viewDrawSurface?e.constrainZ(t):t}mapToScreen(t,e){this._firstPointZ=e.firstPointZ;const r=this._effectiveDrawSurface;return r?r.mapToScreen(t):this.view?.toScreen(t)}_setupSurfaces(){const{view:t,excludedGraphicsLayer:e,hasZ:r}=this,i=this._effectiveElevationInfo;"3d"===t?.type?(this._viewDrawSurface=new l(t,i,e?[e]:void 0),this._elevationDrawSurface=new u(i,this.defaultZ,t,e??void 0)):"2d"===t?.type&&(this._viewDrawSurface??=new f(t,r,this.defaultZ??void 0))}};t([s()],p.prototype,"_viewDrawSurface",void 0),t([s()],p.prototype,"_elevationDrawSurface",void 0),t([s()],p.prototype,"_constraintZ",null),t([s()],p.prototype,"_activeConstraintZ",null),t([s()],p.prototype,"_effectiveElevationInfo",null),t([s()],p.prototype,"_snapToScene",null),t([s()],p.prototype,"_effectiveDrawSurface",null),t([s()],p.prototype,"_effectiveDefaultZ",null),t([s()],p.prototype,"_firstPointZ",void 0),t([s({constructOnly:!0})],p.prototype,"getContext",void 0),t([s()],p.prototype,"context",null),t([s({constructOnly:!0})],p.prototype,"hasZ",void 0),t([s({constructOnly:!0})],p.prototype,"spatialReference",void 0),t([s({constructOnly:!0})],p.prototype,"elevationInfo",void 0),t([s({constructOnly:!0})],p.prototype,"excludedGraphicsLayer",void 0),t([s({constructOnly:!0})],p.prototype,"view",void 0),t([s()],p.prototype,"constraintsEnabled",null),t([s()],p.prototype,"elevationConstraint",null),t([s()],p.prototype,"drawAtFixedElevation",null),t([s()],p.prototype,"defaultZ",void 0),t([s()],p.prototype,"snapToSceneEnabled",void 0),t([s()],p.prototype,"metersPerVerticalUnit",null),p=t([a("esri.views.draw.support.managers.SurfaceManager")],p);export{p as SurfaceManager};
@@ -4,13 +4,13 @@ import type { TooltipMode } from "./tooltip/types.js";
4
4
  export interface TooltipProperties {}
5
5
 
6
6
  /**
7
- * Object which represents a tooltip that is shown while sketching and editing.
7
+ * Object which represents a tooltip that is shown while sketching, editing, or placing analyses.
8
8
  *
9
9
  * @since 4.31
10
10
  * @see [Sketch](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/)
11
11
  * @see [SketchViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/)
12
- * @see [SketchTooltipOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/sketch/SketchTooltipOptions/)
13
- * @see [SketchValueOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/sketch/SketchValueOptions/)
12
+ * @see [TooltipOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/TooltipOptions/)
13
+ * @see [ValueOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ValueOptions/)
14
14
  * @see [Sample - Sketch in 3D](https://developers.arcgis.com/javascript/latest/sample-code/sketch-3d/)
15
15
  * @see [Sample - Edit features in 3D with the Editor widget](https://developers.arcgis.com/javascript/latest/sample-code/editor-3d/)
16
16
  */
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import{EventedAccessor as e}from"../../core/Evented.js";import{on as o}from"../../core/events.js";import{destroyMaybe as n}from"../../core/maybe.js";import{watch as i,syncAndInitial as s,initial as r,when as l,sync as p}from"../../core/reactiveUtils.js";import{cloneScreenPoint as a,createScreenPoint as u}from"../../core/screenUtils.js";import{property as c,subclass as d}from"../../core/accessorSupport/decorators.js";import{UpdatingHandles as h}from"../../core/support/UpdatingHandles.js";import{setCalciteModeClass as f}from"../../support/modeUtils.js";import{base as m}from"./tooltip/css.js";import{tooltipContentFactory as y}from"./tooltip/content/tooltipContentFactory.js";import{isRTL as g}from"../../widgets/support/widgetUtils.js";const v={base:`${m}`,ltr:`${m}--ltr`,rtl:`${m}--rtl`,debug:`${m}--debug`},_=20,P=16,b="bottom-end",C={topStart:"top-start",topEnd:"top-end",bottomStart:"bottom-start",bottomEnd:"bottom-end"};let M=class extends e{constructor(t){super(t),this.info=null,this.options=null,this.position=null,this.inputModePosition=null,this.content=null,this._focused=!1,this.hidden=!1,this.outerContainer=document.createElement("div"),this.debug=!1,this._updatingHandles=new h,this._lastPosition=null,this._rtl=!1,this._prevXY=[0,0]}initialize(){const{outerContainer:t}=this;this.addHandles([i(()=>this.view.overlay?.surface,e=>{t.remove(),e?.appendChild(t),this._rtl=g(e)},s),i(()=>this.info,(e,o)=>{if(null!=this.content&&null!=e&&null!=o&&e.type===o.type)this.content.info=e;else{n(this.content);const o=y(this,e);o?(this.content=o,o.container&&t.appendChild(o.container),this.exitInputMode()):this.content=null}},s),i(()=>({container:this.outerContainer,style:this._outerContainerStyle}),({container:t,style:e})=>{Object.assign(t.style,e)},r),i(()=>({outerContainer:this.outerContainer,placement:this.effectivePlacement,effectiveOffset:this._effectiveOffset,rtl:this._rtl,debug:this.debug}),({outerContainer:t,placement:e,effectiveOffset:o,rtl:n,debug:i})=>{const{classList:s}=t;s.add(v.base),s.toggle(v.rtl,n),s.toggle(v.ltr,!n),s.toggle(v.debug,i),this.outerContainer.style.setProperty("--offset",`${o}px`),f(t),x(t,e)},r),l(()=>"feedback"===this.mode,()=>{this.inputModePosition=null,this._clearOverride("effectivePlacement")},p),o(this.outerContainer,"paste",t=>{this.emit("paste",t)}),o(this.outerContainer,["focusin","focusout"],()=>{this._focused=this.content?.container?.contains(document.activeElement)??!1})])}destroy(){this.info=null,this.content=n(this.content),this.outerContainer.remove(),this._updatingHandles.destroy()}get isInInputMode(){return!!this.inputModePosition}get mode(){return this.content?.mode??"feedback"}get focused(){return this._focused}get visible(){return"none"!==this._outerContainerStyle.display}get contentContainer(){return this.content?.container}get effectivePlacement(){const t=this.options?.placement;return"auto"===t?I(this.view.inputManager?.latestPenInfo)??b:t??b}get updating(){return this._updatingHandles.updating}get _screenPoint(){const{inputManager:t}=this.view;return t?.multiTouchActive?null:t?.latestPointerInfo?.location}get _effectiveOffset(){return this.options?.offset??_}get _outerContainerStyle(){const t=this.inputModePosition??this.position??this._screenPoint;if(this._lastPosition=a(t),null!=t&&null!=this.content&&(!this.hidden||this.inputModePosition)){return{display:"block",transform:`translate(${Math.round(t.x)}px, ${Math.round(t.y)}px)`}}return{display:"none",transform:"none"}}clear(){this.info=null}async enterInputMode(t){const e=this.position??this._lastPosition??this._screenPoint,o=this.inputModePosition=a(e),{effectivePlacement:n}=this;this._override("effectivePlacement",n);const i=()=>{o&&(this.inputModePosition=w(this.contentContainer,o,this._effectiveOffset,this.view),Object.assign(this.outerContainer.style,this._outerContainerStyle))};await this._updatingHandles.addPromise(this.content?.enterInputMode(t,i))}async exitInputMode(t){this.inputModePosition=null,await this._updatingHandles.addPromise(this.content?.exitInputMode(t))}onDragStart(t,e){this._prevXY=[t,e]}onDrag(t,e){const o=t-this._prevXY[0],n=e-this._prevXY[1];this._prevXY=[t,e];const{inputModePosition:i}=this;if(i){const{view:s}=this,r=t-s.position[0],l=e-s.position[1];if(r<0||r>s.width||l<0||l>s.height-P)return;this.inputModePosition=u(i.x+o,i.y+n)}}onDragEnd(){this._prevXY=[0,0]}};function w(t,e,o,n){if(!t||!n.container)return e;const i=t.getBoundingClientRect(),{left:s,top:r}=n.container.getBoundingClientRect();let{x:l,y:p}=e;const a=i.left-s-o;a<0&&(l-=a);const c=i.right-s+o-n.width;c>0&&(l-=c);const d=i.top-r-o;d<0&&(p-=d);const h=i.bottom-r+o-n.height;return h>0&&(p-=h),u(l,p)}t([c({nonNullable:!0})],M.prototype,"view",void 0),t([c()],M.prototype,"info",void 0),t([c()],M.prototype,"options",void 0),t([c()],M.prototype,"position",void 0),t([c()],M.prototype,"inputModePosition",void 0),t([c()],M.prototype,"isInInputMode",null),t([c()],M.prototype,"content",void 0),t([c({readOnly:!0})],M.prototype,"mode",null),t([c()],M.prototype,"_focused",void 0),t([c({readOnly:!0})],M.prototype,"focused",null),t([c()],M.prototype,"hidden",void 0),t([c({readOnly:!0})],M.prototype,"outerContainer",void 0),t([c({readOnly:!0})],M.prototype,"contentContainer",null),t([c({readOnly:!0})],M.prototype,"effectivePlacement",null),t([c()],M.prototype,"debug",void 0),t([c()],M.prototype,"updating",null),t([c()],M.prototype,"_lastPosition",void 0),t([c()],M.prototype,"_screenPoint",null),t([c()],M.prototype,"_rtl",void 0),t([c()],M.prototype,"_effectiveOffset",null),t([c()],M.prototype,"_outerContainerStyle",null),M=t([d("esri.views.interactive.Tooltip")],M);const O=["top","bottom","leading","trailing"].flatMap(t=>[j(`${t}-start`),j(t),j(`${t}-end`)]);function j(t){return`${v.base}--${t}`}function x({classList:t},e){O.forEach(e=>t.remove(e)),t.add(j(e))}function I(t){if(null==t)return null;const{tiltX:e,tiltY:o}=t;return e<0&&o<0?C.bottomEnd:e<0&&o>0?C.topEnd:e>0&&o>0?C.topStart:e>0&&o<0?C.bottomStart:null}export{M as default};
2
+ import{__decorate as t}from"tslib";import{EventedAccessor as e}from"../../core/Evented.js";import{on as o}from"../../core/events.js";import{destroyMaybe as n}from"../../core/maybe.js";import{watch as i,syncAndInitial as s,initial as r,when as l,sync as p}from"../../core/reactiveUtils.js";import{cloneScreenPoint as a,createScreenPoint as u}from"../../core/screenUtils.js";import{property as c,subclass as d}from"../../core/accessorSupport/decorators.js";import{UpdatingHandles as h}from"../../core/support/UpdatingHandles.js";import{setCalciteModeClass as f}from"../../support/modeUtils.js";import m from"./options/TooltipOptions.js";import{base as g}from"./tooltip/css.js";import{tooltipContentFactory as y}from"./tooltip/content/tooltipContentFactory.js";import{isRTL as v}from"../../widgets/support/widgetUtils.js";const _={base:`${g}`,ltr:`${g}--ltr`,rtl:`${g}--rtl`,debug:`${g}--debug`},P=20,b=16,C="bottom-end",M={topStart:"top-start",topEnd:"top-end",bottomStart:"bottom-start",bottomEnd:"bottom-end"};let O=class extends e{constructor(t){super(t),this.info=null,this.position=null,this.inputModePosition=null,this.content=null,this._focused=!1,this.hidden=!1,this.outerContainer=document.createElement("div"),this.debug=!1,this._updatingHandles=new h,this._lastPosition=null,this._rtl=!1,this._prevXY=[0,0]}initialize(){const{outerContainer:t}=this;this.addHandles([i(()=>this.view.overlay?.surface,e=>{t.remove(),e?.appendChild(t),this._rtl=v(e)},s),i(()=>this.info,(e,o)=>{if(null!=this.content&&null!=e&&null!=o&&e.type===o.type)this.content.info=e;else{n(this.content);const o=y(this,e);o?(this.content=o,o.container&&t.appendChild(o.container),this.exitInputMode()):this.content=null}},s),i(()=>({container:this.outerContainer,style:this._outerContainerStyle}),({container:t,style:e})=>{Object.assign(t.style,e)},r),i(()=>({outerContainer:this.outerContainer,placement:this.effectivePlacement,effectiveOffset:this._effectiveOffset,rtl:this._rtl,debug:this.debug}),({outerContainer:t,placement:e,effectiveOffset:o,rtl:n,debug:i})=>{const{classList:s}=t;s.add(_.base),s.toggle(_.rtl,n),s.toggle(_.ltr,!n),s.toggle(_.debug,i),this.outerContainer.style.setProperty("--offset",`${o}px`),f(t),I(t,e)},r),l(()=>"feedback"===this.mode,()=>{this.inputModePosition=null,this._clearOverride("effectivePlacement")},p),o(this.outerContainer,"paste",t=>{this.emit("paste",t)}),o(this.outerContainer,["focusin","focusout"],()=>{this._focused=this.content?.container?.contains(document.activeElement)??!1})])}destroy(){this.info=null,this.content=n(this.content),this.outerContainer.remove(),this._updatingHandles.destroy()}get options(){return this._get("options")}set options(t){this._set("options",t)}get isInInputMode(){return!!this.inputModePosition}get mode(){return this.content?.mode??"feedback"}get focused(){return this._focused}get visible(){return"none"!==this._outerContainerStyle.display}get contentContainer(){return this.content?.container}get effectivePlacement(){const t=this.options?.placement;return"auto"===t?S(this.view.inputManager?.latestPenInfo)??C:t??C}get updating(){return this._updatingHandles.updating}get _screenPoint(){const{inputManager:t}=this.view;return t?.multiTouchActive?null:t?.latestPointerInfo?.location}get _effectiveOffset(){return this.options?.offset??P}get _outerContainerStyle(){const t=this.inputModePosition??this.position??this._screenPoint;if(this._lastPosition=a(t),null!=t&&null!=this.content&&(!this.hidden||this.inputModePosition)){return{display:"block",transform:`translate(${Math.round(t.x)}px, ${Math.round(t.y)}px)`}}return{display:"none",transform:"none"}}clear(){this.info=null}async enterInputMode(t){const e=this.position??this._lastPosition??this._screenPoint,o=this.inputModePosition=a(e),{effectivePlacement:n}=this;this._override("effectivePlacement",n);const i=()=>{o&&(this.inputModePosition=j(this.contentContainer,o,this._effectiveOffset,this.view),Object.assign(this.outerContainer.style,this._outerContainerStyle))};await this._updatingHandles.addPromise(this.content?.enterInputMode(t,i))}async exitInputMode(t){this.inputModePosition=null,await this._updatingHandles.addPromise(this.content?.exitInputMode(t))}onDragStart(t,e){this._prevXY=[t,e]}onDrag(t,e){const o=t-this._prevXY[0],n=e-this._prevXY[1];this._prevXY=[t,e];const{inputModePosition:i}=this;if(i){const{view:s}=this,r=t-s.position[0],l=e-s.position[1];if(r<0||r>s.width||l<0||l>s.height-b)return;this.inputModePosition=u(i.x+o,i.y+n)}}onDragEnd(){this._prevXY=[0,0]}};function j(t,e,o,n){if(!t||!n.container)return e;const i=t.getBoundingClientRect(),{left:s,top:r}=n.container.getBoundingClientRect();let{x:l,y:p}=e;const a=i.left-s-o;a<0&&(l-=a);const c=i.right-s+o-n.width;c>0&&(l-=c);const d=i.top-r-o;d<0&&(p-=d);const h=i.bottom-r+o-n.height;return h>0&&(p-=h),u(l,p)}t([c({nonNullable:!0})],O.prototype,"view",void 0),t([c()],O.prototype,"info",void 0),t([c({type:m})],O.prototype,"options",null),t([c()],O.prototype,"position",void 0),t([c()],O.prototype,"inputModePosition",void 0),t([c()],O.prototype,"isInInputMode",null),t([c()],O.prototype,"content",void 0),t([c({readOnly:!0})],O.prototype,"mode",null),t([c()],O.prototype,"_focused",void 0),t([c({readOnly:!0})],O.prototype,"focused",null),t([c()],O.prototype,"hidden",void 0),t([c({readOnly:!0})],O.prototype,"outerContainer",void 0),t([c({readOnly:!0})],O.prototype,"contentContainer",null),t([c({readOnly:!0})],O.prototype,"effectivePlacement",null),t([c()],O.prototype,"debug",void 0),t([c()],O.prototype,"updating",null),t([c()],O.prototype,"_lastPosition",void 0),t([c()],O.prototype,"_screenPoint",null),t([c()],O.prototype,"_rtl",void 0),t([c()],O.prototype,"_effectiveOffset",null),t([c()],O.prototype,"_outerContainerStyle",null),O=t([d("esri.views.interactive.Tooltip")],O);const w=["top","bottom","leading","trailing"].flatMap(t=>[x(`${t}-start`),x(t),x(`${t}-end`)]);function x(t){return`${_.base}--${t}`}function I({classList:t},e){w.forEach(e=>t.remove(e)),t.add(x(e))}function S(t){if(null==t)return null;const{tiltX:e,tiltY:o}=t;return e<0&&o<0?M.bottomEnd:e<0&&o>0?M.topEnd:e>0&&o>0?M.topStart:e>0&&o<0?M.bottomStart:null}export{O as default};
@@ -0,0 +1,20 @@
1
+ import type Accessor from "../../../core/Accessor.js";
2
+
3
+ /**
4
+ * @internal
5
+ * @since 5.2
6
+ */
7
+ export interface ElevationOptionsProperties extends Partial<Pick<ElevationOptions, "mode">> {}
8
+
9
+ /**
10
+ * @internal
11
+ * @since 5.2
12
+ */
13
+ export abstract class ElevationOptions extends Accessor {
14
+ /**
15
+ * @default "absolute-height"
16
+ * @internal
17
+ * @since 5.2
18
+ */
19
+ accessor mode: "absolute-height" | "relative-to-ground" | "relative-to-scene";
20
+ }
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import{__decorate as o}from"tslib";import t from"../../../core/Accessor.js";import{property as e,subclass as r}from"../../../core/accessorSupport/decorators.js";let s=class extends t{constructor(o){super(o),this.mode="absolute-height"}toJSON(){return{mode:this.mode}}};o([e({type:String,nonNullable:!0})],s.prototype,"mode",void 0),s=o([r("esri.views.interactive.options.ElevationOptions")],s);export{s as ElevationOptions};
@@ -0,0 +1,74 @@
1
+ import type Accessor from "../../../core/Accessor.js";
2
+
3
+ /** @since 5.2 */
4
+ export interface LabelOptionsProperties extends Partial<Pick<LabelOptions, "enabled">> {}
5
+
6
+ /**
7
+ * The `LabelOptions` class allows users to configure the labels which are shown next to each
8
+ * segment of a graphic while sketching, editing or placing analyses. The labels display each segment's
9
+ * horizontal length and are not shown for non-planar polygons and polylines.
10
+ *
11
+ * [![sketch-3d](https://developers.arcgis.com/javascript/latest/assets/references/core/views/interactive/sketch/sketchlabels.avif)](https://developers.arcgis.com/javascript/latest/sample-code/sketch-3d/)
12
+ *
13
+ * How the segment lengths are computed depends on the view's spatial reference. In geographic coordinate systems (GCS)
14
+ * and in Web Mercator, the lengths are computed geodetically. In projected coordinate systems (PCS),
15
+ * apart from Web Mercator, the lengths are computed in a Euclidean manner (in the respective PCS).
16
+ *
17
+ * <span id="set"></span>
18
+ * ## Set the unit system for labels
19
+ *
20
+ * Use either a [Portal](https://developers.arcgis.com/javascript/latest/references/core/portal/Portal/) or [PortalItem](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalItem/) to establish the unit system for labels while sketching, editing, or placing analyses.
21
+ *
22
+ * <details>
23
+ * <summary>Read More</summary>
24
+ *
25
+ * The unit of measurement used in the labels can be programmatically set
26
+ * through the [PortalItem](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalItem/) of a [Map](https://developers.arcgis.com/javascript/latest/references/core/Map/) by defining the [Portal.units](https://developers.arcgis.com/javascript/latest/references/core/portal/Portal/#units) property.
27
+ *
28
+ * ```js
29
+ * // Create a PortalItem instance for the map used in the 3D view
30
+ * view.map.portalItem = new PortalItem({
31
+ * portal: {
32
+ * units: "english" //or "metric"
33
+ * },
34
+ * });
35
+ * ```
36
+ *
37
+ * Or, if a [PortalItem](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalItem/) already exists, the [Portal.units](https://developers.arcgis.com/javascript/latest/references/core/portal/Portal/#units) property can be directly set or changed.
38
+ *
39
+ * ```js
40
+ * // Set the units directly on an existing PortalItem of the 3D view
41
+ * view.map.portalItem.portal.units = "english" //or "metric"
42
+ * ```
43
+ *
44
+ * In alternative, if there is no an existing [Portal](https://developers.arcgis.com/javascript/latest/references/core/portal/Portal/), it is possible to set the [Portal.units](https://developers.arcgis.com/javascript/latest/references/core/portal/Portal/#units) property
45
+ * from a new default `Portal` created using the [Portal.getDefault()](https://developers.arcgis.com/javascript/latest/references/core/portal/Portal/#getDefault) method.
46
+ *
47
+ * ```js
48
+ * // Create an instance of a new Portal and set the unit
49
+ * const portal = Portal.getDefault();
50
+ * portal.units = "english" //or "metric"
51
+ * ```
52
+ *
53
+ * </details>
54
+ *
55
+ * @since 5.2
56
+ * @see [Sketch](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/)
57
+ * @see [SketchViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/)
58
+ * @see [TooltipOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/TooltipOptions/)
59
+ * @see [ValueOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ValueOptions/)
60
+ * @see [Editor](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/)
61
+ * @see [Sample - Sketch in 3D](https://developers.arcgis.com/javascript/latest/sample-code/sketch-3d/)
62
+ * @see [Sample - Edit features in 3D with the Editor widget](https://developers.arcgis.com/javascript/latest/sample-code/editor-3d/)
63
+ */
64
+ export default class LabelOptions extends Accessor {
65
+ /** @since 5.2 */
66
+ constructor(properties?: LabelOptionsProperties);
67
+ /**
68
+ * Whether labels are shown next to each segment of a geometry while sketching, editing, or placing analyses.
69
+ *
70
+ * @default false
71
+ * @since 5.2
72
+ */
73
+ accessor enabled: boolean;
74
+ }
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import{__decorate as o}from"tslib";import e from"../../../core/Accessor.js";import{property as r,subclass as t}from"../../../core/accessorSupport/decorators.js";let s=class extends e{constructor(o){super(o),this.enabled=!1}};o([r({type:Boolean,nonNullable:!0})],s.prototype,"enabled",void 0),s=o([t("esri.views.interactive.options.LabelOptions")],s);export{s as default};
@@ -0,0 +1,157 @@
1
+ import type Accessor from "../../../core/Accessor.js";
2
+ import type Collection from "../../../core/Collection.js";
3
+ import type FeatureSnappingLayerSource from "../snapping/FeatureSnappingLayerSource.js";
4
+ import type { FeatureSnappingLayerSourceProperties } from "../snapping/FeatureSnappingLayerSource.js";
5
+ import type { ReadonlyArrayOrCollection } from "../../../core/Collection.js";
6
+
7
+ /** @since 5.2 */
8
+ export interface SnappingOptionsProperties extends Partial<Pick<SnappingOptions, "attributeRulesEnabled" | "distance" | "enabled" | "featureEnabled" | "gridEnabled" | "selfEnabled">> {
9
+ /**
10
+ * List of sources for feature snapping. Please refer to [FeatureSnappingLayerSource](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/FeatureSnappingLayerSource/) for additional information on what layer sources are supported.
11
+ *
12
+ * @since 5.2
13
+ */
14
+ featureSources?: ReadonlyArrayOrCollection<FeatureSnappingLayerSourceProperties>;
15
+ }
16
+
17
+ /**
18
+ * The `SnappingOptions` class allows users to configure snapping for their editing or drawing experience in both the [Sketch.snappingOptions](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/#snappingOptions) and [Editor.snappingOptions](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/#snappingOptions) widgets.
19
+ *
20
+ * Snapping options provide the ability to specify whether an application will utilize self snapping, feature snapping, or both. Both are described below.
21
+ *
22
+ * It is also possible to toggle snapping by pressing and holding down the `CTRL` key. This toggles the snapping on/off.
23
+ *
24
+ * #### Self snapping (Geometry guides)
25
+ * Self snapping is set via the [selfEnabled](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/SnappingOptions/#selfEnabled) property. This means that while a user is actively creating or updating a feature or graphic, they will see visualizations to help identify perpendicular and parallel lines, in addition to visualizations which aid in snapping to an extension of an existing feature. The following briefly demonstrates what self snapping looks like in a 2D application. Although this is shown for 2D, the same premise applies for 3D as well.
26
+ *
27
+ * <video src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/snapping-self-2d.webm" aria-label="self-snapping" autoplay muted playsinline loop></video>
28
+ * #### Feature snapping
29
+ * Feature snapping is set via the [featureEnabled](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/SnappingOptions/#featureEnabled) property. It provides the ability to snap vertices of a graphic or feature that is currently being drawn or reshaped to that of an existing feature's vertex, edge, or end point. These existing features belong to layers within the [Map](https://developers.arcgis.com/javascript/latest/references/core/Map/) and must be specified in the [featureSources](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/SnappingOptions/#featureSources) property. The following two images demonstrate feature snapping in a 2D application. Similar to self snapping, the same premise applies for 3D as well.
30
+ *
31
+ * <video src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/snapping-feature-2d.webm" aria-label="feature-snapping-create" autoplay muted playsinline loop></video>
32
+ *
33
+ * The above shows feature snapping to an existing feature's vertex endpoint and edge while creating a new feature. The bottom demonstrates taking an existing feature and reshaping its geometry to snap to another feature's vertex points.
34
+ *
35
+ * <video src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/snapping-reshape-2d.webm" aria-label="feature-snapping-update" autoplay muted playsinline loop></video>
36
+ *
37
+ * > [!WARNING]
38
+ * >
39
+ * > **Things to consider:**
40
+ * > Layer types currently supported for snapping are: [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/), [GraphicsLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GraphicsLayer/) (except Mesh geometries),
41
+ * > [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/), [WFSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/WFSLayer/), [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
42
+ * > [MapNotesLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MapNotesLayer/) (2D only), [3D Object SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/) (3D only), and
43
+ * > [BuildingSceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/BuildingSceneLayer/) (3D only).
44
+ * > Snapping is not yet implemented when using the [Sketch widget's](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/) circle tool. It will be addressed in a future release.
45
+ * > Enabling snapping via the `CTRL` key is not currently supported using the [Sketch widget's](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/) rectangle and circle tools. However, snapping can still be activated by setting the [enabled](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/SnappingOptions/#enabled) property to `true` in the [Sketch widget](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/) or its [view model](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/). *Note that this enables snapping for all tools. This behavior is subject to change in a future release.*
46
+ *
47
+ * Name | Details | 3D Example | 2D Example |
48
+ * ---------|---------|----------|:-----------:|
49
+ * Rectangle | Snap lines that are perpendicular to each other | <img alt="Rectangle" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/snapping-rectangle.avif" width="268px"> | <img alt="Rectangle-2d" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/snapping-rectangle-2d.avif" width="268px"> |
50
+ * Parallel | Snap to all parallel lines | <img alt="Parallel" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/snapping-parallel.avif" width="268px"> | <img alt="Parallel-2d" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/snapping-parallel-2.avif" width="268px"> |
51
+ * Extension | Snap to an extension of the current shape | <img alt="Extension" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/snapping-extension.avif" width="268px"> | <img alt="Extension-2" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/snapping-extension-2.avif" width="268px"> |
52
+ * Vertex (as seen when updating geometries)| Snap vertices to an existing vertex | <img alt="Vertex" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/snapping-vertex-3d.avif" width="143px"> | <img alt="Vertex-2" src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/sketch/snapping-vertex-2.avif" width="143px"> |
53
+ *
54
+ * @since 5.2
55
+ * @see [FeatureSnappingLayerSource](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/FeatureSnappingLayerSource/)
56
+ * @see [Sketch](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/)
57
+ * @see [SketchViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/)
58
+ * @see [Editor](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/)
59
+ * @see [Sample - Sketch widget](https://developers.arcgis.com/javascript/latest/sample-code/sketch-geometries/)
60
+ * @see [Sample - Sketch in 3D](https://developers.arcgis.com/javascript/latest/sample-code/sketch-3d/)
61
+ * @see [Sample - Edit features in 3D with the Editor widget](https://developers.arcgis.com/javascript/latest/sample-code/editor-3d/)
62
+ * @see [Sample - Editor widget with configurations](https://developers.arcgis.com/javascript/latest/sample-code/widgets-editor-configurable/)
63
+ * @see [Sample - Snapping with Sketch widget and Magnifier](https://developers.arcgis.com/javascript/latest/sample-code/sketch-snapping-magnifier/)
64
+ * @example
65
+ * // Create a new instance of Sketch, and set
66
+ * // a layer for one of the featureSources property.
67
+ * // This enables feature snapping on that layer.
68
+ * const sketch = new Sketch({
69
+ * layer: graphicsLayer,
70
+ * view: view,
71
+ * snappingOptions: { // autocasts to SnappingOptions()
72
+ * enabled: true, // global snapping is turned on
73
+ * // assigns a collection of FeatureSnappingLayerSource() and enables feature snapping on this layer
74
+ * featureSources: [{ layer: graphicsLayer, enabled: true }]
75
+ * }
76
+ * });
77
+ */
78
+ export default class SnappingOptions extends Accessor {
79
+ /** @since 5.2 */
80
+ constructor(properties?: SnappingOptionsProperties);
81
+ /**
82
+ * When true, enables support for attribute rule-based snapping.
83
+ * When enabled, resources needed for rule-based snapping, including any Utility Networks present
84
+ * in the map, will be automatically loaded.
85
+ *
86
+ * @default false
87
+ * @since 5.2
88
+ */
89
+ accessor attributeRulesEnabled: boolean;
90
+ /**
91
+ * Snapping distance for snapping in pixels.
92
+ *
93
+ * @default 5
94
+ * @since 5.2
95
+ */
96
+ accessor distance: number;
97
+ /**
98
+ * Global configuration to turn snapping on or off. Note that snapping is
99
+ * turned off by default.
100
+ *
101
+ * @default false
102
+ * @since 5.2
103
+ */
104
+ accessor enabled: boolean;
105
+ /**
106
+ * Global configuration option to turn feature snapping on or off.
107
+ *
108
+ * @default true
109
+ * @since 5.2
110
+ */
111
+ accessor featureEnabled: boolean;
112
+ /**
113
+ * List of sources for feature snapping. Please refer to [FeatureSnappingLayerSource](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/FeatureSnappingLayerSource/) for additional information on what layer sources are supported.
114
+ *
115
+ * @since 5.2
116
+ */
117
+ get featureSources(): Collection<FeatureSnappingLayerSource>;
118
+ set featureSources(value: ReadonlyArrayOrCollection<FeatureSnappingLayerSourceProperties>);
119
+ /**
120
+ * Turns the grid on or off. The grid is a network of columns and rows used to divide the view into equal-area squares.
121
+ * The [GridControls](https://developers.arcgis.com/javascript/latest/references/core/widgets/support/GridControls/) provides a user interface to interact and configure the grid's properties.
122
+ *
123
+ * > [!WARNING]
124
+ * >
125
+ * > **Note**
126
+ * >
127
+ * > It is recommended to wait for the view to be loaded first before setting the `gridEnabled` prop in the [GridControls](https://developers.arcgis.com/javascript/latest/references/core/widgets/support/GridControls/) constructor. The grid is dependent on the view to be loaded first for it to be displayed.
128
+ * > - This grid is only supported in a 2D [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/).
129
+ *
130
+ * @default false
131
+ * @since 5.2
132
+ * @see [GridControls](https://developers.arcgis.com/javascript/latest/references/core/widgets/support/GridControls/)
133
+ * @example
134
+ * // Turn on the grid programmatically for the GridControls.
135
+ * // Wait for the view to load first.
136
+ * view.when(() => {
137
+ * const gridControls = new GridControls({
138
+ * view,
139
+ * snappingOptions: {
140
+ * enabled: true,
141
+ * gridEnabled: true
142
+ * }
143
+ * });
144
+ * // Add GridControls to the view
145
+ * view.ui.add(gridControls, "top-left");
146
+ * });
147
+ */
148
+ accessor gridEnabled: boolean;
149
+ /**
150
+ * Global configuration option to turn self snapping (within one feature while
151
+ * either drawing or reshaping) on or off.
152
+ *
153
+ * @default true
154
+ * @since 5.2
155
+ */
156
+ accessor selfEnabled: boolean;
157
+ }
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import{difference as r}from"../../../core/arrayUtils.js";import o from"../../../core/Collection.js";import i from"../../../core/Logger.js";import{property as a,subclass as n}from"../../../core/accessorSupport/decorators.js";import s from"../snapping/FeatureSnappingLayerSource.js";import{defaults as l}from"../snapping/Settings.js";let u=class extends t{constructor(e){super(e),this.enabled=!1,this.enabledToggled=!1,this.forceDisabled=!1,this.selfEnabled=!0,this.featureEnabled=!0,this.gridEnabled=!1,this.attributeRulesEnabled=!1,this.featureSources=new o,this.distance=l.distance,this.touchSensitivityMultiplier=l.touchSensitivityMultiplier}get effectiveEnabled(){return!this.forceDisabled&&(this.enabledToggled?!this.enabled:this.enabled)}get effectiveGridEnabled(){return this.effectiveEnabled&&this.gridEnabled}get effectiveSelfEnabled(){return this.effectiveEnabled&&this.selfEnabled}get effectiveFeatureEnabled(){return this.effectiveEnabled&&this.featureEnabled}get _effectiveFeatureSources(){const e=this.featureSources;e.some(d)&&i.getLogger(this).warnOnce("Do not configure SubtypeGroupLayer sources in SnappingOptions.featureSources directly. Create a FeatureSnappingLayerSource for each SubtypeSublayer.");const t=e.filter(c),a=this._get("_effectiveFeatureSources")?.filter(d)??new o;for(const r of t){const e=a.find(e=>e.layer===r.layer.parent);if(e)e.sublayerSources.includes(r)||e.sublayerSources.add(r);else if(r.layer.parent){const e=new s({layer:r.layer.parent});e.sublayerSources.add(r),a.add(e)}}for(const r of a){const e=r.sublayerSources.filter(e=>!t.includes(e));r.sublayerSources.removeMany(e)}a.removeMany(a.filter(e=>0===e.sublayerSources.length));const n=e.filter(p),l=this._get("_effectiveFeatureSources")??new o,{added:u,removed:f}=r(l.toArray(),[...n,...a]);return l.removeMany(f),l.addMany(u),l}};function d(e){return"subtype-group"===e.layer.type}function p(e){return"subtype-group"!==e.layer.type}function c(e){return"subtype-sublayer"===e.layer.type}e([a()],u.prototype,"enabled",void 0),e([a()],u.prototype,"enabledToggled",void 0),e([a()],u.prototype,"forceDisabled",void 0),e([a()],u.prototype,"selfEnabled",void 0),e([a()],u.prototype,"featureEnabled",void 0),e([a()],u.prototype,"gridEnabled",void 0),e([a()],u.prototype,"attributeRulesEnabled",void 0),e([a({type:o.ofType(s)})],u.prototype,"featureSources",void 0),e([a()],u.prototype,"distance",void 0),e([a()],u.prototype,"touchSensitivityMultiplier",void 0),e([a({readOnly:!0})],u.prototype,"effectiveEnabled",null),e([a({readOnly:!0})],u.prototype,"effectiveGridEnabled",null),e([a({readOnly:!0})],u.prototype,"effectiveSelfEnabled",null),e([a({readOnly:!0})],u.prototype,"effectiveFeatureEnabled",null),e([a({readOnly:!0})],u.prototype,"_effectiveFeatureSources",null),u=e([n("esri.views.interactive.options.SnappingOptions")],u);export{u as default};
@@ -0,0 +1,152 @@
1
+ import type Accessor from "../../../core/Accessor.js";
2
+ import type TooltipVisibleElements from "./TooltipVisibleElements.js";
3
+ import type { Icon } from "@esri/calcite-components/components/calcite-icon";
4
+ import type { ElevationOptions, ElevationOptionsProperties } from "./ElevationOptions.js";
5
+ import type { TooltipVisibleElementsProperties } from "./TooltipVisibleElements.js";
6
+
7
+ /** @since 5.2 */
8
+ export interface TooltipOptionsProperties extends Partial<Pick<TooltipOptions, "enabled" | "forceEnabled" | "helpMessage" | "helpMessageIcon" | "inputEnabled">> {
9
+ /**
10
+ * Configuration for elevation values displayed in the tooltip.
11
+ *
12
+ * @internal
13
+ * @since 5.2
14
+ */
15
+ elevation?: ElevationOptionsProperties;
16
+ /**
17
+ * The elements that are displayed within the tooltip.
18
+ *
19
+ * @since 5.2
20
+ */
21
+ visibleElements?: TooltipVisibleElementsProperties;
22
+ }
23
+
24
+ /**
25
+ * The `TooltipOptions` class allows users to configure the tooltips which are shown while sketching, editing or placing analyses.
26
+ *
27
+ * To enter the tooltip UI's [input mode](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/TooltipOptions/#inputEnabled),
28
+ * press the `Tab` key while drawing a new feature, or when editing a point, mesh, or a selected vertex.
29
+ *
30
+ * [<video src="https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/editor/editing-constraints.webm" aria-label="sketch-3d-with-constraints" autoplay muted playsinline loop></video>](https://developers.arcgis.com/javascript/latest/sample-code/sketch-3d/)
31
+ *
32
+ * #### Available tooltip inputs and constraints
33
+ *
34
+ * **Direction** field and its respective constraint controls the direction (angle) of a segment (applies to polylines/polygons while drawing).\
35
+ * It has two options that can be set either in the tooltip's UI or with
36
+ * [valueOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ValueOptions/):
37
+ * - **Deflection** – **relative** angle that is measured from the previous segment (default).
38
+ * Positive values are measured in a clockwise direction. Negative values are measured in a counterclockwise direction.
39
+ * - **Direction** – **absolute** angle that is measured clockwise from the main axis of the map (typically north).
40
+ *
41
+ * **Distance** field and its respective constraint controls the length of a segment (applies to polylines/polygons while drawing). Distance field is also shown
42
+ * when editing an edge offset in SceneView.
43
+ *
44
+ * **Coordinates** fields edit the longitude and latitude (in geographic coordinate systems and
45
+ * in Web Mercator) or X and Y values (in projected coordinate systems) of a point or a vertex
46
+ * of a polyline/polygon.\
47
+ * The coordinates can be entered as separate values or as a latitude+longitude pair. In case of the latter,
48
+ * the pair can be typed or pasted into either of the two coordinate fields and the input is converted to decimal degree format.
49
+ * The coordinates may use DD (decimal degrees), DDM (degrees and decimal minutes), or DMS (degrees, minutes, and seconds) format.
50
+ * See more about [supported latitude/longitude strings](https://developers.arcgis.com/javascript/latest/references/core/geometry/coordinateFormatter/#fromLatitudeLongitude).
51
+ *
52
+ * **Elevation (Z)** field and its respective constraint edits the Z value of a point or a vertex of a polyline/polygon geometry.\
53
+ * When drawing polygon or polyline segments, the Z (elevation) field is locked by default.
54
+ * This means that all vertices use the Z value of the first vertex. The constraint can be unlocked in the tooltips' input mode.
55
+ *
56
+ * **Orientation** field edits the orientation of a mesh. The angle is measured clockwise from the main axis
57
+ * of the map (typically north).\
58
+ * Note that the orientation field is connected to the mesh geometry's
59
+ * [rotation transform](https://developers.arcgis.com/javascript/latest/references/core/geometry/support/MeshTransform/#rotationAngle) property.
60
+ * The latter is an arithmetic rotation which is measured counterclockwise from the 3 o'clock position (typically east).
61
+ *
62
+ * **Scale** field edits the scale of a mesh.
63
+ *
64
+ * *The following fields are read-only: **Total length** (for polylines only), **Area** (for polygons only),
65
+ * or fields shown when dragging the manipulators, such as relative **Distance**, **Radius**, relative **Rotation**, relative **Scale**, and **Size**.*
66
+ *
67
+ * ##### Considerations when using distance, direction, and deflection constraints
68
+ *
69
+ * - In geographic coordinate systems (GCS) and in Web Mercator, the constraints are computed geodetically.
70
+ * - In projected coordinate systems (PCS), apart from Web Mercator, the constraints are computed in a Euclidean manner (in the respective PCS).
71
+ * - In 3D, the distance, direction, and deflection constraints are computed on a horizontal plane, dependent on the view's spatial reference.
72
+ *
73
+ * #### Available gestures
74
+ *
75
+ * Gesture | Action |
76
+ * ---------|---------|
77
+ * `Tab` | Activates the input mode and focuses on the next field. |
78
+ * Input value + `Tab` | Applies the constraint and focuses on the next field. |
79
+ * Empty value + `Tab` | Removes the constraint and focuses on the next field. |
80
+ * Input value + `Enter` | Applies the constraint and closes the input mode. |
81
+ * Empty value + `Enter` | Removes the constraint and closes the input mode. |
82
+ * Lock icon | Toggles the constraint on and off. |
83
+ * `Esc` | Closes the input mode but keeps any applied constraints. |
84
+ * Left-click-drag (on tooltip header) | Allows to change the position of the tooltip in input mode. |
85
+ *
86
+ * @since 5.2
87
+ * @see [LabelOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/LabelOptions/)
88
+ * @see [ValueOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/options/ValueOptions/)
89
+ * @see [Sample - Sketch in 3D](https://developers.arcgis.com/javascript/latest/sample-code/sketch-3d/)
90
+ * @see [Sample - Edit features in 3D with the Editor widget](https://developers.arcgis.com/javascript/latest/sample-code/editor-3d/)
91
+ */
92
+ export default class TooltipOptions extends Accessor {
93
+ /** @since 5.2 */
94
+ constructor(properties?: TooltipOptionsProperties);
95
+ /**
96
+ * Effective value of `enabled` considering the state of `forceEnabled`.
97
+ *
98
+ * @internal
99
+ */
100
+ get effectiveEnabled(): boolean;
101
+ /**
102
+ * Configuration for elevation values displayed in the tooltip.
103
+ *
104
+ * @internal
105
+ * @since 5.2
106
+ */
107
+ get elevation(): ElevationOptions;
108
+ set elevation(value: ElevationOptionsProperties);
109
+ /**
110
+ * Whether tooltips are shown while sketching, editing or placing analyses.
111
+ *
112
+ * @default false
113
+ * @since 5.2
114
+ */
115
+ accessor enabled: boolean;
116
+ /**
117
+ * Temporary override option for `enabled`. Can for example be used to allow a keybinding to
118
+ * temporarily show the tooltips.
119
+ *
120
+ * @default false
121
+ * @internal
122
+ */
123
+ accessor forceEnabled: boolean;
124
+ /**
125
+ * A custom help message that is displayed at the bottom of the tooltip. If not set, the default
126
+ * help message based on the current state of the tool is shown.
127
+ *
128
+ * @since 5.2
129
+ */
130
+ accessor helpMessage: string | null | undefined;
131
+ /**
132
+ * An icon that is displayed next to the help message at the bottom of the tooltip. If not set,
133
+ * the default info icon is shown.
134
+ *
135
+ * @since 5.2
136
+ */
137
+ accessor helpMessageIcon: Icon["icon"] | null | undefined;
138
+ /**
139
+ * Whether users can focus the tooltip and input constraint values.
140
+ *
141
+ * @default true
142
+ * @since 5.2
143
+ */
144
+ accessor inputEnabled: boolean;
145
+ /**
146
+ * The elements that are displayed within the tooltip.
147
+ *
148
+ * @since 5.2
149
+ */
150
+ get visibleElements(): TooltipVisibleElements;
151
+ set visibleElements(value: TooltipVisibleElementsProperties);
152
+ }
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import{__decorate as e}from"tslib";import o from"../../../core/Accessor.js";import{property as t,subclass as l}from"../../../core/accessorSupport/decorators.js";import{ElevationOptions as i}from"./ElevationOptions.js";import s from"./TooltipVisibleElements.js";let p=class extends o{constructor(e){super(e),this.enabled=!1,this.forceEnabled=!1,this.helpMessage=null,this.helpMessageIcon=null,this.inputEnabled=!0,this.elevation=new i,this.placement="auto",this.offset=null,this.visibleElements=new s,this.visualVariables=null,this.xyMode="auto"}get effectiveEnabled(){return this.forceEnabled||this.enabled}};e([t({type:Boolean,nonNullable:!0})],p.prototype,"enabled",void 0),e([t()],p.prototype,"forceEnabled",void 0),e([t()],p.prototype,"effectiveEnabled",null),e([t()],p.prototype,"helpMessage",void 0),e([t()],p.prototype,"helpMessageIcon",void 0),e([t({type:Boolean,nonNullable:!0})],p.prototype,"inputEnabled",void 0),e([t({type:i,nonNullable:!0})],p.prototype,"elevation",void 0),e([t()],p.prototype,"placement",void 0),e([t()],p.prototype,"offset",void 0),e([t({type:s,nonNullable:!0})],p.prototype,"visibleElements",void 0),e([t()],p.prototype,"visualVariables",void 0),e([t()],p.prototype,"xyMode",void 0),p=e([l("esri.views.interactive.options.TooltipOptions")],p);const n=p;export{n as default};