@arcgis/core 5.2.0-next.136 → 5.2.0-next.138

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 (507) hide show
  1. package/analysis/LineOfSightAnalysisObserver.d.ts +12 -0
  2. package/analysis/LineOfSightAnalysisObserver.js +1 -1
  3. package/analysis/LineOfSightAnalysisTarget.d.ts +12 -0
  4. package/analysis/LineOfSightAnalysisTarget.js +1 -1
  5. package/arcade/featureset/sources/FeatureLayerParquet.js +1 -1
  6. package/arcgisGlobal.d.ts +4 -0
  7. package/assets/components/assets/icon/blockHeightMedium16.json +1 -0
  8. package/assets/components/assets/icon/blockHeightMedium24.json +1 -0
  9. package/assets/components/assets/icon/blockHeightMedium32.json +1 -0
  10. package/assets/components/assets/icon/blockHeightShort16.json +1 -0
  11. package/assets/components/assets/icon/blockHeightShort24.json +1 -0
  12. package/assets/components/assets/icon/blockHeightShort32.json +1 -0
  13. package/assets/components/assets/icon/blockHeightTall16.json +1 -0
  14. package/assets/components/assets/icon/blockHeightTall24.json +1 -0
  15. package/assets/components/assets/icon/blockHeightTall32.json +1 -0
  16. package/assets/components/assets/icon/cursorCircle16.json +1 -0
  17. package/assets/components/assets/icon/cursorCircle24.json +1 -0
  18. package/assets/components/assets/icon/cursorCircle32.json +1 -0
  19. package/assets/components/assets/icon/dictionary16.json +1 -0
  20. package/assets/components/assets/icon/dictionary24.json +1 -0
  21. package/assets/components/assets/icon/dictionary32.json +1 -0
  22. package/assets/components/assets/icon/jobDependency16.json +1 -0
  23. package/assets/components/assets/icon/jobDependency24.json +1 -0
  24. package/assets/components/assets/icon/jobDependency32.json +1 -0
  25. package/assets/components/assets/icon/referenceChip16.json +1 -0
  26. package/assets/components/assets/icon/referenceChip24.json +1 -0
  27. package/assets/components/assets/icon/referenceChip32.json +1 -0
  28. package/assets/esri/core/workers/RemoteClient.js +1 -1
  29. package/assets/esri/core/workers/chunks/{4e6f95d8c624d513849a.js → 05963f57cbe5a5249496.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{0b8681ca4a83e97f1f71.js → 067de1910190da228291.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{3c0fd1c6cda44e9f40ab.js → 070684943698fa43c2b4.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{bc1cb4b9a02e6c78deb7.js → 076e8d2e08ff2a013736.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{c10e040368065411506a.js → 10445313d0d57b34511b.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{d537c59b46cdaaf66034.js → 1188d0a136fffc009643.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{20af3f085f60c32c6c53.js → 178083d8ed7707b45ca2.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{f5efe3e800c6e23efcf3.js → 1819c45655c836b9a8d7.js} +1 -1
  37. package/assets/esri/core/workers/chunks/1b946714ca4a1a7359d4.js +2 -0
  38. package/assets/esri/core/workers/chunks/{d8d8b38ac8a91d9e45fc.js → 1cc744ab5eee5ee3bed8.js} +1 -1
  39. package/assets/esri/core/workers/chunks/{05e39b4de7f62c5b22cc.js → 20f75cc777af13fa249b.js} +1 -1
  40. package/assets/esri/core/workers/chunks/2a1ec30f9ad305763f81.js +2 -0
  41. package/assets/esri/core/workers/chunks/34570e6bbf559f18c1a5.js +1 -0
  42. package/assets/esri/core/workers/chunks/{60f6d5da9480dd36e877.js → 3dddae78286d05eb10fc.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{9efd30bbd02ec0d1031b.js → 3ec3589f6e74d7cb87cf.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{0bec054fca104f3bf141.js → 3f776d9fd2ab68b21fca.js} +1 -1
  45. package/assets/esri/core/workers/chunks/402a82c77420254831bc.js +1 -0
  46. package/assets/esri/core/workers/chunks/{e2ebf0ea3af2e6907987.js → 406f24ec13eb30d43405.js} +1 -1
  47. package/assets/esri/core/workers/chunks/43fc42405167a5537039.js +1 -0
  48. package/assets/esri/core/workers/chunks/{ddedc414bb478b376221.js → 46b2d4addfc73f9183a4.js} +1 -1
  49. package/assets/esri/core/workers/chunks/498d6dfd3bb0d3490548.js +1 -0
  50. package/assets/esri/core/workers/chunks/{36ef86701883a20dd6f6.js → 4a640548032355e57acd.js} +1 -1
  51. package/assets/esri/core/workers/chunks/5566f14afb63065e438f.js +1 -0
  52. package/assets/esri/core/workers/chunks/{c3b96d1d43afccd23e45.js → 590e6c70206122e4cc3c.js} +2 -2
  53. package/assets/esri/core/workers/chunks/{54860dd53a46cf4c47f3.js → 59295b99bdff4045a0e7.js} +1 -1
  54. package/assets/esri/core/workers/chunks/5aeb5e18514644fe2cf9.js +1 -0
  55. package/assets/esri/core/workers/chunks/{5da86409d70098fc6a10.js → 5b3cfe95314a75a735c1.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{a54678bfa0f1807b61cd.js → 5c855af73ee3c3e764fb.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{06da3409992bb1fa85b0.js → 5e90c1b49f2b7e21d05a.js} +39 -31
  58. package/assets/esri/core/workers/chunks/5fd099ca1024707387b2.js +1 -0
  59. package/assets/esri/core/workers/chunks/{30f808cac8a34f95ea6e.js → 6079d27f4ab319fb8f0c.js} +1 -1
  60. package/assets/esri/core/workers/chunks/66c2a28a851130b87c04.js +1 -0
  61. package/assets/esri/core/workers/chunks/{dac90b3631f7f7158f68.js → 67f15538c51838201fc7.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{cfaba0470619786e1ef8.js → 68d8ae42ab71d01a70a5.js} +2 -2
  63. package/assets/esri/core/workers/chunks/6aebf7cfd294e88bf926.js +1 -0
  64. package/assets/esri/core/workers/chunks/{864e7030c4ddbfcf0114.js → 6ccf9535013fe672c93b.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{ba7f0cf7e495d3ec2d55.js → 6e62581d933e7298d1f6.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{83b5dd4029e00abd80bf.js → 700b1d5bc67b7e1b3ff3.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{f9fea72cc222a30ef2f9.js → 72399062767abdfb0bee.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{2a7fbfd77002a24bf737.js → 747461bb6a1bc2f0a64d.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{c333f6ed42985bb2b11f.js → 7851aef196eea5d6c94e.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{f0b6bd6fab5320c3082f.js → 7a05b18f655c1167ce0a.js} +1 -1
  71. package/assets/esri/core/workers/chunks/{04296b75d0f81fbd1bb5.js → 864194927d05ebc4cc31.js} +1 -1
  72. package/assets/esri/core/workers/chunks/{3c4a13a9f0b305394a26.js → 876f7633c15f1e31078d.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{62298dba3f6cbdc3f4ae.js → 879b2f0ff1977bca9376.js} +1 -1
  74. package/assets/esri/core/workers/chunks/{b547b3bce729c9dac90d.js → 898359be6996fd9763b8.js} +1 -1
  75. package/assets/esri/core/workers/chunks/8cb716f110d164030309.js +1 -0
  76. package/assets/esri/core/workers/chunks/8dc1c3042267618fd710.js +2 -0
  77. package/assets/esri/core/workers/chunks/{625f02db93d7fbf175ca.js → 9001e9a1e81bce175ddd.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{9ffa6c8d93d3443834c6.js → 912080c90b5cc2e817cf.js} +1 -1
  79. package/assets/esri/core/workers/chunks/96c50a0dda0f1503ef92.js +2 -0
  80. package/assets/esri/core/workers/chunks/{13e4379441499599c3b5.js → 9cbde13e536676767900.js} +1 -1
  81. package/assets/esri/core/workers/chunks/{408db4f32850b77264ae.js → 9cd3fcb5fca6f9dbbcd8.js} +1 -1
  82. package/assets/esri/core/workers/chunks/a054da6cbd8ee4774a57.js +1 -0
  83. package/assets/esri/core/workers/chunks/a05790444115e4cf1bcc.js +1 -0
  84. package/assets/esri/core/workers/chunks/{d1f2685782b423ef87a6.js → a556dd4e9e6d35e33a2c.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{00d576d355599c88931e.js → bc38def1983089514e4b.js} +1 -1
  86. package/assets/esri/core/workers/chunks/{0725e515f3004bdd5c56.js → ca2adcbcf44454484fd5.js} +1 -1
  87. package/assets/esri/core/workers/chunks/{f3507b9e831ffd7a6bf8.js → cca8bd07bcd1d267a2e8.js} +1 -1
  88. package/assets/esri/core/workers/chunks/cfae60b9d2f2939e9c16.js +1 -0
  89. package/assets/esri/core/workers/chunks/{1d6b2a64f4e40e5cc13d.js → d201fbf3ceff946d2bd6.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{4439078780d9ba49fd26.js → d51bb11baadc741c46bc.js} +1 -1
  91. package/assets/esri/core/workers/chunks/db1ab9b9c8bf5c7635d3.js +1 -0
  92. package/assets/esri/core/workers/chunks/de02a6a1f4810f99e9bb.js +1 -0
  93. package/assets/esri/core/workers/chunks/e630f3c56c077cb2bd8e.js +1 -0
  94. package/assets/esri/core/workers/chunks/e81173724e8de8c1e65b.js +1 -0
  95. package/assets/esri/core/workers/chunks/{2025288bed125594ceda.js → f6e62d2d279a328cbed7.js} +1 -1
  96. package/assets/esri/core/workers/chunks/{47c19778fcee7154ca38.js → f8bc474434fd365ab174.js} +1 -1
  97. package/assets/esri/core/workers/chunks/{9a20dc26cb9c7b2087cf.js → f95a1f878c9c1146180e.js} +1 -1
  98. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ar.json +1 -1
  99. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bg.json +1 -1
  100. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bs.json +1 -1
  101. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ca.json +1 -1
  102. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.cs.json +1 -1
  103. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.da.json +1 -1
  104. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.de.json +1 -1
  105. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.el.json +1 -1
  106. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.en.json +1 -1
  107. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.es.json +1 -1
  108. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.et.json +1 -1
  109. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fi.json +1 -1
  110. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fr.json +1 -1
  111. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.he.json +1 -1
  112. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hr.json +1 -1
  113. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hu.json +1 -1
  114. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.id.json +1 -1
  115. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.it.json +1 -1
  116. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ja.json +1 -1
  117. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ko.json +1 -1
  118. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lt.json +1 -1
  119. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lv.json +1 -1
  120. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.nl.json +1 -1
  121. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.no.json +1 -1
  122. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pl.json +1 -1
  123. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-BR.json +1 -1
  124. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-PT.json +1 -1
  125. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ro.json +1 -1
  126. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ru.json +1 -1
  127. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sk.json +1 -1
  128. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sl.json +1 -1
  129. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sr.json +1 -1
  130. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sv.json +1 -1
  131. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.th.json +1 -1
  132. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.tr.json +1 -1
  133. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.uk.json +1 -1
  134. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.vi.json +1 -1
  135. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-CN.json +1 -1
  136. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-HK.json +1 -1
  137. package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-TW.json +1 -1
  138. package/assets/esri/widgets/FeatureForm/t9n/messages.ar.json +1 -1
  139. package/assets/esri/widgets/FeatureForm/t9n/messages.bg.json +1 -1
  140. package/assets/esri/widgets/FeatureForm/t9n/messages.bs.json +1 -1
  141. package/assets/esri/widgets/FeatureForm/t9n/messages.ca.json +1 -1
  142. package/assets/esri/widgets/FeatureForm/t9n/messages.cs.json +1 -1
  143. package/assets/esri/widgets/FeatureForm/t9n/messages.da.json +1 -1
  144. package/assets/esri/widgets/FeatureForm/t9n/messages.de.json +1 -1
  145. package/assets/esri/widgets/FeatureForm/t9n/messages.el.json +1 -1
  146. package/assets/esri/widgets/FeatureForm/t9n/messages.es.json +1 -1
  147. package/assets/esri/widgets/FeatureForm/t9n/messages.et.json +1 -1
  148. package/assets/esri/widgets/FeatureForm/t9n/messages.fi.json +1 -1
  149. package/assets/esri/widgets/FeatureForm/t9n/messages.fr.json +1 -1
  150. package/assets/esri/widgets/FeatureForm/t9n/messages.he.json +1 -1
  151. package/assets/esri/widgets/FeatureForm/t9n/messages.hr.json +1 -1
  152. package/assets/esri/widgets/FeatureForm/t9n/messages.hu.json +1 -1
  153. package/assets/esri/widgets/FeatureForm/t9n/messages.id.json +1 -1
  154. package/assets/esri/widgets/FeatureForm/t9n/messages.it.json +1 -1
  155. package/assets/esri/widgets/FeatureForm/t9n/messages.ja.json +1 -1
  156. package/assets/esri/widgets/FeatureForm/t9n/messages.ko.json +1 -1
  157. package/assets/esri/widgets/FeatureForm/t9n/messages.lt.json +1 -1
  158. package/assets/esri/widgets/FeatureForm/t9n/messages.lv.json +1 -1
  159. package/assets/esri/widgets/FeatureForm/t9n/messages.nl.json +1 -1
  160. package/assets/esri/widgets/FeatureForm/t9n/messages.no.json +1 -1
  161. package/assets/esri/widgets/FeatureForm/t9n/messages.pl.json +1 -1
  162. package/assets/esri/widgets/FeatureForm/t9n/messages.pt-BR.json +1 -1
  163. package/assets/esri/widgets/FeatureForm/t9n/messages.pt-PT.json +1 -1
  164. package/assets/esri/widgets/FeatureForm/t9n/messages.ro.json +1 -1
  165. package/assets/esri/widgets/FeatureForm/t9n/messages.ru.json +1 -1
  166. package/assets/esri/widgets/FeatureForm/t9n/messages.sk.json +1 -1
  167. package/assets/esri/widgets/FeatureForm/t9n/messages.sl.json +1 -1
  168. package/assets/esri/widgets/FeatureForm/t9n/messages.sr.json +1 -1
  169. package/assets/esri/widgets/FeatureForm/t9n/messages.sv.json +1 -1
  170. package/assets/esri/widgets/FeatureForm/t9n/messages.th.json +1 -1
  171. package/assets/esri/widgets/FeatureForm/t9n/messages.tr.json +1 -1
  172. package/assets/esri/widgets/FeatureForm/t9n/messages.uk.json +1 -1
  173. package/assets/esri/widgets/FeatureForm/t9n/messages.vi.json +1 -1
  174. package/assets/esri/widgets/FeatureForm/t9n/messages.zh-CN.json +1 -1
  175. package/assets/esri/widgets/FeatureForm/t9n/messages.zh-HK.json +1 -1
  176. package/assets/esri/widgets/FeatureForm/t9n/messages.zh-TW.json +1 -1
  177. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ar.json +1 -1
  178. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.bg.json +1 -1
  179. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.bs.json +1 -1
  180. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ca.json +1 -1
  181. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.cs.json +1 -1
  182. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.da.json +1 -1
  183. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.de.json +1 -1
  184. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.el.json +1 -1
  185. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.en.json +1 -1
  186. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.es.json +1 -1
  187. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.et.json +1 -1
  188. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.fi.json +1 -1
  189. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.fr.json +1 -1
  190. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.he.json +1 -1
  191. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.hr.json +1 -1
  192. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.hu.json +1 -1
  193. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.id.json +1 -1
  194. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.it.json +1 -1
  195. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ja.json +1 -1
  196. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ko.json +1 -1
  197. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.lt.json +1 -1
  198. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.lv.json +1 -1
  199. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.nl.json +1 -1
  200. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.no.json +1 -1
  201. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pl.json +1 -1
  202. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pt-BR.json +1 -1
  203. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.pt-PT.json +1 -1
  204. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ro.json +1 -1
  205. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.ru.json +1 -1
  206. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sk.json +1 -1
  207. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sl.json +1 -1
  208. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sr.json +1 -1
  209. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.sv.json +1 -1
  210. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.th.json +1 -1
  211. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.tr.json +1 -1
  212. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.uk.json +1 -1
  213. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.vi.json +1 -1
  214. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-CN.json +1 -1
  215. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-HK.json +1 -1
  216. package/assets/esri/widgets/OrientedImageryViewer/t9n/messages.zh-TW.json +1 -1
  217. package/chunks/Bufferer-CclWhXVb.js +1 -1
  218. package/chunks/Component.glsl.js +3 -3
  219. package/chunks/DefaultMaterial.glsl.js +2 -2
  220. package/chunks/Distance2DCalculator-DjIp2uQi.js +1 -1
  221. package/chunks/Envelope.js +1 -1
  222. package/chunks/Envelope2D.js +1 -1
  223. package/chunks/FocusArea.glsl.js +8 -10
  224. package/chunks/GaussianSplat.glsl.js +2 -2
  225. package/chunks/GeodeticDistanceCalculator-zRp89-dW.js +1 -1
  226. package/chunks/GeodeticUtils.js +1 -1
  227. package/chunks/Geometry.js +1 -1
  228. package/chunks/GeometryCleaner-CIE8Wfmb.js +1 -1
  229. package/chunks/GlobalIllumination.glsl.js +3 -3
  230. package/chunks/LineMarker.glsl.js +35 -42
  231. package/chunks/MultiPathImpl.js +1 -1
  232. package/chunks/OperatorAffineTransform.js +1 -1
  233. package/chunks/OperatorClip.js +1 -1
  234. package/chunks/OperatorDensify.js +1 -1
  235. package/chunks/OperatorDistance.js +1 -1
  236. package/chunks/OperatorGeneralize.js +1 -1
  237. package/chunks/OperatorGeodesicBuffer.js +1 -1
  238. package/chunks/OperatorGeodeticArea.js +1 -1
  239. package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
  240. package/chunks/OperatorGeodeticDistance.js +1 -1
  241. package/chunks/OperatorGeodeticLength.js +1 -1
  242. package/chunks/OperatorGraphicBuffer.js +1 -1
  243. package/chunks/OperatorIntegrate.js +1 -1
  244. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  245. package/chunks/OperatorProximity.js +1 -1
  246. package/chunks/OperatorProximityGeodesic.js +1 -1
  247. package/chunks/OperatorShapePreservingLength.js +1 -1
  248. package/chunks/OperatorShapePreservingProject.js +1 -1
  249. package/chunks/OperatorSimplifyOGC.js +1 -1
  250. package/chunks/Path.glsl.js +2 -2
  251. package/chunks/Point2D.js +1 -1
  252. package/chunks/RealisticTree.glsl.js +2 -2
  253. package/chunks/RibbonLine.glsl.js +51 -57
  254. package/chunks/SideCalculator2D-DX0718xq.js +1 -1
  255. package/chunks/Terrain.glsl.js +2 -2
  256. package/chunks/Transformation2D.js +1 -1
  257. package/chunks/UnitFactory.js +1 -1
  258. package/config.js +1 -1
  259. package/core/workers/RemoteClient.js +1 -1
  260. package/core/workers/workerFactory.js +1 -1
  261. package/editing/fieldUtils.d.ts +12 -0
  262. package/editing/sharedTemplates/templateDefinitions/TemplateDefinitionBase.js +1 -1
  263. package/geometry/operators/extendOperator.js +1 -1
  264. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  265. package/geometry/operators/gx/operatorBoundary.js +1 -1
  266. package/geometry/operators/gx/operatorBuffer.js +1 -1
  267. package/geometry/operators/gx/operatorConvexHull.js +1 -1
  268. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  269. package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
  270. package/geometry/operators/gx/operatorLocateBetween.js +1 -1
  271. package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
  272. package/geometry/operators/gx/operatorOffset.js +1 -1
  273. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  274. package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
  275. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  276. package/geometry/operators/isNearOperator.js +1 -1
  277. package/geometry/operators/reshapeOperator.js +1 -1
  278. package/geometry/operators/support/jsonConverter.js +1 -1
  279. package/geometry/support/curves/ellipticArc7Utils.js +1 -1
  280. package/geometry/support/ellipseUtils.js +2 -0
  281. package/interfaces.d.ts +15 -18
  282. package/kernel.js +1 -1
  283. package/layers/LinkChartLayer.js +1 -1
  284. package/layers/ParquetLayer.js +1 -1
  285. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  286. package/layers/list/LayerItemCollection.d.ts +1 -0
  287. package/layers/list/types.d.ts +5 -1
  288. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  289. package/layers/orientedImagery/queries.js +1 -1
  290. package/layers/support/TimeSeriesCalculation.d.ts +1 -1
  291. package/layers/support/TimeSeriesCalculation.js +1 -1
  292. package/layers/support/dataSeriesUtils.d.ts +10 -0
  293. package/layers/support/timeSeriesUtils.js +17 -6
  294. package/libs/lyr3d/Lyr3DModule.js +1 -1
  295. package/networks/UtilityNetwork.d.ts +15 -0
  296. package/networks/UtilityNetwork.js +1 -1
  297. package/package.json +4 -4
  298. package/popup/FeatureContent.d.ts +14 -1
  299. package/popup/FeatureContent.js +1 -1
  300. package/popup/FeatureContentCollection.d.ts +4 -10
  301. package/popup/FeatureContentCollection.js +1 -1
  302. package/popup/actions.js +1 -1
  303. package/popup/support/featureUtils.js +1 -1
  304. package/renderers/support/RenderingInfo.js +1 -1
  305. package/renderers/support/renderingInfoUtils.js +1 -1
  306. package/renderers/visualVariables/SizeVariable.d.ts +16 -20
  307. package/renderers/visualVariables/support/SizeStop.d.ts +6 -2
  308. package/rest/networks/support/TraceLocation.js +1 -1
  309. package/rest/networks/support/TraceResult.d.ts +7 -0
  310. package/rest/networks/support/TraceResult.js +1 -1
  311. package/smartMapping/renderers/color.js +1 -1
  312. package/smartMapping/renderers/opacity.js +1 -1
  313. package/smartMapping/renderers/size.js +1 -1
  314. package/smartMapping/renderers/support/timeSeriesUtils.js +1 -1
  315. package/smartMapping/statistics/histogramForTimeSeries.d.ts +11 -0
  316. package/smartMapping/statistics/histogramForTimeSeries.js +2 -0
  317. package/smartMapping/statistics/summaryStatisticsForTimeSeries.d.ts +11 -0
  318. package/smartMapping/statistics/summaryStatisticsForTimeSeries.js +2 -0
  319. package/smartMapping/statistics/support/timeSeriesUtils.js +24 -0
  320. package/smartMapping/statistics/types.d.ts +50 -0
  321. package/support/tests/serviceMockDependencies.js +1 -1
  322. package/support/tests/setupServiceMocksMesh.js +1 -1
  323. package/symbols/cim/CIMPlacements.js +1 -1
  324. package/symbols/cim/callouts/calloutAnalysisUtils.js +1 -1
  325. package/symbols/cim/callouts/effects/BackgroundCallout.js +1 -1
  326. package/symbols/cim/callouts/effects/BalloonCallout.js +1 -1
  327. package/symbols/cim/callouts/effects/PointSymbolCallout.js +1 -1
  328. package/symbols/cim/callouts/effects/calloutUtils.js +1 -1
  329. package/symbols/cim/cimAnalyzer.js +1 -1
  330. package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
  331. package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
  332. package/views/2d/engine/vectorTiles/decluttering/CollisionJob.js +1 -1
  333. package/views/2d/engine/vectorTiles/decluttering/SymbolFader.js +1 -1
  334. package/views/2d/engine/vectorTiles/decluttering/jobsUtil.js +1 -1
  335. package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
  336. package/views/2d/engine/webgl/definitions.js +1 -1
  337. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  338. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
  339. package/views/2d/engine/webgl/shaderGraph/techniques/animated/ComputedAnimatedParams.js +1 -1
  340. package/views/2d/engine/webgl/shaderGraph/techniques/markers/ComputedMarkerParams.js +1 -1
  341. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/CalloutMeshWriterPolicy.js +1 -1
  342. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  343. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextParams.js +1 -1
  344. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  345. package/views/2d/layers/SketchLayerView2D.js +1 -1
  346. package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
  347. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  348. package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +1 -1
  349. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  350. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  351. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  352. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  353. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  354. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  355. package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
  356. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  357. package/views/2d/layers/features/layerAdapters/labelingUtils.js +1 -1
  358. package/views/2d/layers/features/schema/ExceedsLimitCache.js +1 -1
  359. package/views/2d/layers/features/schema/TimeSchema.js +2 -0
  360. package/views/2d/layers/features/schema/processor/LabelMatcherSchema.js +1 -1
  361. package/views/2d/layers/features/schema/processor/MatcherSchema.js +1 -1
  362. package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
  363. package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
  364. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  365. package/views/2d/layers/support/annodime/cimAnnotations.js +1 -1
  366. package/views/2d/layers/support/vectorTileDebugUtils.js +1 -1
  367. package/views/2d/layers/support/visualVariableSimpleUtils.js +1 -1
  368. package/views/2d/types.d.ts +2 -1
  369. package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
  370. package/views/3d/analysis/LineOfSight/LineOfSightItemManipulatedObject3D.js +1 -1
  371. package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
  372. package/views/3d/analysis/LineOfSightAnalysisView3D.d.ts +24 -0
  373. package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
  374. package/views/3d/analysis/Viewshed/ViewshedObserverManipulatedObject3D.js +1 -1
  375. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  376. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  377. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  378. package/views/3d/camera/constraintUtils.js +1 -1
  379. package/views/3d/input/handlers/ground/GroundDoubleClickMove.js +1 -1
  380. package/views/3d/input/handlers/ground/GroundNavigation.js +1 -1
  381. package/views/3d/interactive/editingTools/tooltipUtils3D.js +1 -1
  382. package/views/3d/interactive/placementTools/GroundNavigationPlacementTool3D.js +1 -1
  383. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  384. package/views/3d/layers/i3s/I3SOverrides.js +1 -1
  385. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  386. package/views/3d/state/controllers/GroundNavigationController.js +1 -1
  387. package/views/3d/state/controllers/momentum/GroundNavigationMomentumController.js +1 -1
  388. package/views/3d/state/utils/OffsetCorrectionController.js +1 -1
  389. package/views/3d/state/utils/groundNavigationUtils.js +1 -1
  390. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  391. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  392. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +16 -8
  393. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +5 -1
  394. package/views/3d/webgl-engine/core/shaderLibrary/shading/evaluateSceneLightingFragment.glsl.js +12 -0
  395. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +2 -2
  396. package/views/3d/webgl-engine/effects/focusArea/FocusArea.glsl.js +1 -1
  397. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  398. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  399. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  400. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  401. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  402. package/views/SelectionManager.d.ts +3 -3
  403. package/views/draw/support/Reshape.js +1 -1
  404. package/views/interactive/options/bindViewToolOptions.js +1 -1
  405. package/views/interactive/sketch/SketchLabelOptions.d.ts +3 -0
  406. package/views/interactive/sketch/SketchLabelOptions.js +1 -1
  407. package/views/interactive/sketch/SketchTooltipOptions.d.ts +3 -0
  408. package/views/interactive/sketch/SketchTooltipOptions.js +1 -1
  409. package/views/interactive/sketch/SketchValueOptions.d.ts +3 -0
  410. package/views/interactive/sketch/SketchValueOptions.js +1 -1
  411. package/views/interactive/snapping/SnappingOptions.d.ts +3 -0
  412. package/views/interactive/snapping/SnappingOptions.js +1 -1
  413. package/views/interactive/snapping/snappingUtils.js +1 -1
  414. package/views/interactive/tooltip/fields/parsingAndFormattingUtils.js +1 -1
  415. package/views/layers/SketchLayerView.d.ts +34 -0
  416. package/views/layers/SketchLayerView.js +2 -0
  417. package/views/layers/types.d.ts +3 -2
  418. package/views/selection/types.d.ts +15 -4
  419. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  420. package/widgets/BasemapGallery.js +1 -1
  421. package/widgets/Bookmarks/BookmarksViewModel.d.ts +4 -0
  422. package/widgets/Bookmarks/BookmarksVisibleElements.d.ts +5 -1
  423. package/widgets/Bookmarks/types.d.ts +2 -0
  424. package/widgets/Editor/EditorViewModel.d.ts +31 -30
  425. package/widgets/Editor/EditorViewModel.js +1 -1
  426. package/widgets/Editor/components/Settings.js +1 -1
  427. package/widgets/Editor/types.d.ts +44 -0
  428. package/widgets/Editor.d.ts +30 -27
  429. package/widgets/Editor.js +1 -1
  430. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +1 -1
  431. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  432. package/widgets/FeatureTable/support/FeatureStore.d.ts +1 -1
  433. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  434. package/widgets/FeatureTable.d.ts +6 -0
  435. package/widgets/FeatureTable.js +1 -1
  436. package/widgets/Histogram/types.d.ts +10 -2
  437. package/widgets/HistogramRangeSlider/types.d.ts +4 -1
  438. package/widgets/LayerList/LayerListViewModel.d.ts +2 -1
  439. package/widgets/Legend/LegendViewModel.d.ts +2 -0
  440. package/widgets/Legend/styles/card/CardView.d.ts +2 -0
  441. package/widgets/Legend/styles/classic/ClassicView.d.ts +4 -1
  442. package/widgets/Legend.d.ts +3 -0
  443. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.d.ts +7 -0
  444. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  445. package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
  446. package/widgets/OrientedImageryViewer/support/VideoFeatureCache.js +2 -0
  447. package/widgets/OrientedImageryViewer/types.d.ts +9 -0
  448. package/widgets/OrientedImageryViewer.d.ts +7 -0
  449. package/widgets/OrientedImageryViewer.js +2 -2
  450. package/widgets/PanoramicVideoViewer.js +1 -1
  451. package/widgets/PanoramicViewer/PanoramicVideoViewerViewModel.js +1 -1
  452. package/widgets/ScaleRangeSlider/types.d.ts +9 -2
  453. package/widgets/Sketch/SketchViewModel.d.ts +32 -1
  454. package/widgets/Sketch/SketchViewModel.js +1 -1
  455. package/widgets/Sketch.d.ts +27 -1
  456. package/widgets/Sketch.js +1 -1
  457. package/widgets/Slider/types.d.ts +58 -13
  458. package/widgets/Slider.d.ts +6 -0
  459. package/widgets/smartMapping/BinaryColorSizeSlider/BinaryColorSizeSliderViewModel.d.ts +2 -0
  460. package/widgets/smartMapping/ClassedColorSlider/ClassedColorSliderViewModel.d.ts +2 -0
  461. package/widgets/smartMapping/ClassedSizeSlider/ClassedSizeSliderViewModel.d.ts +2 -0
  462. package/widgets/smartMapping/ColorSizeSlider/ColorSizeSliderViewModel.d.ts +2 -0
  463. package/widgets/smartMapping/ColorSlider/ColorSliderViewModel.d.ts +2 -0
  464. package/widgets/smartMapping/HeatmapSlider/HeatmapSliderViewModel.d.ts +2 -0
  465. package/widgets/smartMapping/OpacitySlider/OpacitySliderViewModel.d.ts +2 -0
  466. package/widgets/smartMapping/SizeSlider/SizeSliderViewModel.d.ts +3 -0
  467. package/widgets/smartMapping/SmartMappingPrimaryHandleSliderViewModel.d.ts +2 -0
  468. package/widgets/smartMapping/SmartMappingSliderViewModel.d.ts +2 -0
  469. package/widgets/smartMapping/types.d.ts +30 -7
  470. package/widgets/support/FilterBuilder/FilterBuilderViewModel.d.ts +21 -11
  471. package/widgets/support/FilterBuilder/FilterBuilderViewModel.js +1 -1
  472. package/widgets/support/FilterBuilder/types.d.ts +28 -0
  473. package/widgets/support/FilterBuilder.js +1 -1
  474. package/widgets/support/FilterCondition/FilterConditionViewModel.d.ts +24 -0
  475. package/widgets/support/FilterCondition/FilterConditionViewModel.js +1 -1
  476. package/widgets/support/FilterCondition/types.d.ts +16 -1
  477. package/widgets/support/FilterCondition.js +1 -1
  478. package/widgets/support/SnappingControls/snappingLayerListUtils.js +1 -1
  479. package/widgets/support/iconUtils.js +1 -1
  480. package/assets/esri/core/workers/chunks/0606ab6fdfc1dfea3856.js +0 -1
  481. package/assets/esri/core/workers/chunks/078dcd17f46403d44b24.js +0 -1
  482. package/assets/esri/core/workers/chunks/1289204f8ca96032c17a.js +0 -1
  483. package/assets/esri/core/workers/chunks/12b5a645c0987a0efe54.js +0 -2
  484. package/assets/esri/core/workers/chunks/152fe3d6ad7aebbd23d1.js +0 -1
  485. package/assets/esri/core/workers/chunks/17b938ba49fb1e7ab8c4.js +0 -1
  486. package/assets/esri/core/workers/chunks/1dbb3e25e005a8220779.js +0 -2
  487. package/assets/esri/core/workers/chunks/3d6fef25af7e1a51e1bd.js +0 -1
  488. package/assets/esri/core/workers/chunks/3ef367c9b7bf1588307d.js +0 -1
  489. package/assets/esri/core/workers/chunks/5f4feca26102088ea565.js +0 -1
  490. package/assets/esri/core/workers/chunks/74211d096cc3296e0968.js +0 -1
  491. package/assets/esri/core/workers/chunks/7926faab76a721a2e1c4.js +0 -1
  492. package/assets/esri/core/workers/chunks/ad28486bc6afaa346de5.js +0 -1
  493. package/assets/esri/core/workers/chunks/ad29c729e90b5866713c.js +0 -1
  494. package/assets/esri/core/workers/chunks/b72a2514aa4cc4ae7d1b.js +0 -1
  495. package/assets/esri/core/workers/chunks/bb51cf52b8ea8283f4f8.js +0 -1
  496. package/assets/esri/core/workers/chunks/be761749f8d77fbd9df5.js +0 -1
  497. package/assets/esri/core/workers/chunks/dbfd25aa0d19aed5890c.js +0 -1
  498. package/assets/esri/core/workers/chunks/de28a86775235bd5d3c4.js +0 -2
  499. package/assets/esri/core/workers/chunks/f6cfc901267a229de7a1.js +0 -2
  500. package/assets/esri/core/workers/chunks/fb147097149a89e671ff.js +0 -1
  501. package/support/revision.js +0 -2
  502. /package/assets/esri/core/workers/chunks/{1dbb3e25e005a8220779.js.LICENSE.txt → 1b946714ca4a1a7359d4.js.LICENSE.txt} +0 -0
  503. /package/assets/esri/core/workers/chunks/{f6cfc901267a229de7a1.js.LICENSE.txt → 2a1ec30f9ad305763f81.js.LICENSE.txt} +0 -0
  504. /package/assets/esri/core/workers/chunks/{c3b96d1d43afccd23e45.js.LICENSE.txt → 590e6c70206122e4cc3c.js.LICENSE.txt} +0 -0
  505. /package/assets/esri/core/workers/chunks/{cfaba0470619786e1ef8.js.LICENSE.txt → 68d8ae42ab71d01a70a5.js.LICENSE.txt} +0 -0
  506. /package/assets/esri/core/workers/chunks/{de28a86775235bd5d3c4.js.LICENSE.txt → 8dc1c3042267618fd710.js.LICENSE.txt} +0 -0
  507. /package/assets/esri/core/workers/chunks/{12b5a645c0987a0efe54.js.LICENSE.txt → 96c50a0dda0f1503ef92.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{handlesGroup as e}from"../../../../../../core/handleUtils.js";import"../../../../../../core/has.js";import{getOrCreateMapValue as t}from"../../../../../../core/MapUtils.js";import{notDeepEqual as n}from"../../../../../../core/object.js";import{throwIfAborted as r,onAbort as i}from"../../../../../../core/promiseUtils.js";import{QueueProcessor as a}from"../../../../../../core/QueueProcessor.js";import{difference as o}from"../../../../../../core/SetUtils.js";import{openWithPorts as s}from"../../../../../../core/workers/workers.js";import{isFileProviderChangedError as c}from"../../../../../../layers/graphics/sources/parquet/fileProviderChangedError.js";import{loadParquetModule as l}from"../../../../../../libs/librust-parquet/loadParquetModule.js";import{ALoadStrategy as u}from"./ALoadStrategy.js";import{fetchQueueConcurrency as d}from"./constants.js";import{ParquetSourceChunk as f}from"./chunks/ParquetSourceChunk.js";import{FeatureSetReaderParquet as p}from"../../support/FeatureSetReaderParquet.js";class m{constructor(t,n){this.subscription=t,this.chunks=[],this.ids=[],this._controller=new AbortController,this._handles=e([i(t.signal,()=>this._controller.abort()),i(n,()=>this._controller.abort())])}destroy(){this._controller.abort(),this._handles.remove()}get options(){return{signal:this._controller.signal}}addBinaryData(e){this.chunks.push(e)}addSourceChunkId(e){this.ids.push(e)}}class h extends u{constructor(e,t,n,r){if(super(e.metadata,t,n),this._service=e,this._loadStates=new Map,this._queue=new a({concurrency:d,process:e=>this._loadTile(e)}),!e.geometryInfo.displayOptimization)throw Error(`InternalError: ParquetTileLoadStrategy only supports XZ-enabled parquet files`);this._loaded=this._load(r)}destroy(){super.destroy(),this._loaded.finally(()=>{this._client.close(),this._client=null;for(let e of this._ports)e.close()}).catch(()=>{})}get about(){return{willQueryAllFeatures:!0,willQueryFullResolutionGeometry:!0}}get availableFields(){return this._schema.partial.availableFields}get definitionExpression(){return this._schema.full.definitionExpression}async tryUpdate(e,t){await this._loaded;let r=!0;return n(this.availableFields,t.availableFields)&&await this._updateFields(t.availableFields),this._schema.partial.dataSourceHash!==t.dataSourceHash&&(r=!1),this._schema.partial=t,r}async load(e){try{return await this._loaded,t(this._loadStates,e.key.id,()=>new m(e,this._options)),await this._queue.push(e)}catch(e){if(!g(e))throw e}}unload(e){let t=this._loadStates.get(e.tile.id);if(t!=null){for(let e of t.ids)this.store.removeById(e);t.destroy(),this._loadStates.delete(e.tile.id)}}async _load(e){this._ports=await e.layerView.openMemoryPorts(),this._client=await s(this._ports,{maxNumberOfConcurrentJobs:20}),this._proxy=this._client.createInvokeProxy(),this._indexMap=await this._proxy.getIndexMap()}_onOverride(){}async _updateFields(e){let t=new Set(e),n=o(t,new Set(this.availableFields));if(this._service.metadata.fieldsIndex!=null&&n.size){let e=Array.from(this.store.insertedChunks()).map(e=>e.updateFields(this._proxy,Array.from(n),this._options));await Promise.all(e)}}async _loadTile(e){let t=e.tile,n=e.signal,i=this._loadStates.get(t.id);await this._downloadTileData(e),r(n);let a=new f(this.metadata,null,t,null,0,!0);i.addSourceChunkId(a.chunkId),this.store.insert(a)}async _downloadTileData(e){let t=await l(),n=e.tile,i=e.signal,a=this._loadStates.get(n.id),o=await this._proxy.queryStream({type:`tile`,extent:n.extent,transform:n.normalizedTransform,outFields:Array.from(this.availableFields),returnGeometry:!0,returnZ:this._schema.full.returnZ,returnM:this._schema.full.returnM,outSpatialReference:this.metadata.outSpatialReference.toJSON(),resolution:n.resolution,where:this.definitionExpression},{signal:i}),s=0;for(;;){let e=await this._proxy.getStreamNext(o,{signal:i});if(r(i),e==null)break;let{fileId:c,buffer:l}=e,u=t.ParquetChunk.deserialize(new Uint8Array(l)),d=new p(this.metadata,this._indexMap,u,c,n.transform),m=new f(this.metadata,d,n,c,s++,!1);a.addBinaryData({data:u,fileId:c}),a.addSourceChunkId(m.chunkId),this.store.insert(m)}}}function g(e){return c(e)||_(e)}function _(e){return typeof e==`object`&&!!e&&`message`in e&&e.message===`Protocol Violation: transport error`}export{h as ParquetTileLoadStrategy};
2
+ import{handlesGroup as e}from"../../../../../../core/handleUtils.js";import"../../../../../../core/has.js";import{getOrCreateMapValue as t}from"../../../../../../core/MapUtils.js";import{notDeepEqual as n}from"../../../../../../core/object.js";import{throwIfAborted as r,onAbort as i}from"../../../../../../core/promiseUtils.js";import{QueueProcessor as a}from"../../../../../../core/QueueProcessor.js";import{difference as o}from"../../../../../../core/SetUtils.js";import{openWithPorts as s}from"../../../../../../core/workers/workers.js";import{isFileProviderChangedError as c}from"../../../../../../layers/graphics/sources/parquet/fileProviderChangedError.js";import{loadParquetModule as l}from"../../../../../../libs/librust-parquet/loadParquetModule.js";import{ALoadStrategy as u}from"./ALoadStrategy.js";import{fetchQueueConcurrency as d}from"./constants.js";import{ParquetSourceChunk as f}from"./chunks/ParquetSourceChunk.js";import{FeatureSetReaderParquet as p}from"../../support/FeatureSetReaderParquet.js";class m{constructor(t,n){this.subscription=t,this.chunks=[],this.ids=[],this._controller=new AbortController,this._handles=e([i(t.signal,()=>this._controller.abort()),i(n,()=>this._controller.abort())])}destroy(){this._controller.abort(),this._handles.remove()}get options(){return{signal:this._controller.signal}}addBinaryData(e){this.chunks.push(e)}addSourceChunkId(e){this.ids.push(e)}}class h extends u{constructor(e,t,n,r){if(super(e.metadata,t,n),this._service=e,this._loadStates=new Map,this._queue=new a({concurrency:d,process:e=>this._loadTile(e)}),!e.geometryInfo.displayOptimization)throw Error(`InternalError: ParquetTileLoadStrategy only supports XZ-enabled parquet files`);this._loaded=this._load(r)}destroy(){super.destroy(),this._loaded.finally(()=>{this._client.close(),this._client=null;for(let e of this._ports)e.close()}).catch(()=>{})}get about(){return{willQueryAllFeatures:!1,willQueryFullResolutionGeometry:!1}}get availableFields(){return this._schema.partial.availableFields}get definitionExpression(){return this._schema.full.definitionExpression}async tryUpdate(e,t){await this._loaded;let r=!0;return n(this.availableFields,t.availableFields)&&await this._updateFields(t.availableFields),this._schema.partial.dataSourceHash!==t.dataSourceHash&&(r=!1),this._schema.partial=t,r}async load(e){try{return await this._loaded,t(this._loadStates,e.key.id,()=>new m(e,this._options)),await this._queue.push(e)}catch(e){if(!g(e))throw e}}unload(e){let t=this._loadStates.get(e.tile.id);if(t!=null){for(let e of t.ids)this.store.removeById(e);t.destroy(),this._loadStates.delete(e.tile.id)}}async _load(e){this._ports=await e.layerView.openMemoryPorts(),this._client=await s(this._ports,{maxNumberOfConcurrentJobs:20}),this._proxy=this._client.createInvokeProxy(),this._indexMap=await this._proxy.getIndexMap()}_onOverride(){}async _updateFields(e){let t=new Set(e),n=o(t,new Set(this.availableFields));if(this._service.metadata.fieldsIndex!=null&&n.size){let e=Array.from(this.store.insertedChunks()).map(e=>e.updateFields(this._proxy,Array.from(n),this._options));await Promise.all(e)}}async _loadTile(e){let t=e.tile,n=e.signal,i=this._loadStates.get(t.id);await this._downloadTileData(e),r(n);let a=new f(this.metadata,null,t,null,0,!0);i.addSourceChunkId(a.chunkId),this.store.insert(a)}async _downloadTileData(e){let t=await l(),n=e.tile,i=e.signal,a=this._loadStates.get(n.id),o=await this._proxy.queryStream({type:`tile`,extent:n.extent,transform:n.normalizedTransform,outFields:Array.from(this.availableFields),returnGeometry:!0,returnZ:this._schema.full.returnZ,returnM:this._schema.full.returnM,outSpatialReference:this.metadata.outSpatialReference.toJSON(),resolution:n.resolution,where:this.definitionExpression},{signal:i}),s=0;for(;;){let e=await this._proxy.getStreamNext(o,{signal:i});if(r(i),e==null)break;let{fileId:c,buffer:l}=e,u=t.ParquetChunk.deserialize(new Uint8Array(l)),d=new p(this.metadata,this._indexMap,u,c,n.transform),m=new f(this.metadata,d,n,c,s++,!1);a.addBinaryData({data:u,fileId:c}),a.addSourceChunkId(m.chunkId),this.store.insert(m)}}}function g(e){return c(e)||_(e)}function _(e){return typeof e==`object`&&!!e&&`message`in e&&e.message===`Protocol Violation: transport error`}export{h as ParquetTileLoadStrategy};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{nonPointFeatureFields as e,featureFields as t}from"./virtualFields.js";function n(n,r){let i,a,o=[];if(r===`line`){n={...n,angle:0},i=`CIMLineSymbol`;let t;switch(n.horizontalAlignment){case`Center`:t=.5;break;case`Left`:t=0;break;case`Right`:t=1;break;case`Justify`:t=.5;break;default:t=.5}a={type:`CIMMarkerPlacementAtRatioPositions`,angleToLine:!0,placePerPart:!1,keepUpright:!1,positionArray:[t],flipFirst:!1},o=e}else r===`multipoint`?(i=`CIMLineSymbol`,a={type:`PrivatePlacementMultipoint`},o=e):(i=`CIMPointSymbol`,a=void 0,o=t);let s={type:`CIMSymbolReference`,primitiveOverrides:[],symbol:{type:i,symbolLayers:[{type:`CIMVectorMarker`,markerPlacement:a,enable:!0,size:40,colorLocked:!1,anchorPointUnits:`Relative`,frame:{xmin:-20,ymin:-20,xmax:20,ymax:20},markerGraphics:[{type:`CIMMarkerGraphic`,geometry:{x:0,y:0},symbol:n}],scaleSymbolsProportionally:!0,respectFrame:!0}]}};for(let e of o)e.addPrimitiveOverride(s);return{data:s}}function r(e){return{point:n(e,`point`),line:n(e,`line`),multipoint:n(e,`multipoint`)}}function i(e){let t={};for(let n of e){let e=n.iD??0,{symbol:i}=n;t[e]=r(i)}return t}export{n as getCIMSymbol,i as getCIMSymbols,r as getTrio};
2
+ import{nonPointFeatureFields as e,featureFields as t}from"./virtualFields.js";function n(n,r){let i,a,o=[];if(n={...n,lineWidth:5e3},r===`line`){n={...n,angle:0},i=`CIMLineSymbol`;let t;switch(n.horizontalAlignment){case`Center`:t=.5;break;case`Left`:t=0;break;case`Right`:t=1;break;case`Justify`:t=.5;break;default:t=.5}a={type:`CIMMarkerPlacementAtRatioPositions`,angleToLine:!0,placePerPart:!1,keepUpright:!1,positionArray:[t],flipFirst:!1},o=e}else r===`multipoint`?(i=`CIMLineSymbol`,a={type:`PrivatePlacementMultipoint`},o=e):(i=`CIMPointSymbol`,a=void 0,o=t);let s={type:`CIMSymbolReference`,primitiveOverrides:[],symbol:{type:i,symbolLayers:[{type:`CIMVectorMarker`,markerPlacement:a,enable:!0,size:40,colorLocked:!1,anchorPointUnits:`Relative`,frame:{xmin:-20,ymin:-20,xmax:20,ymax:20},markerGraphics:[{type:`CIMMarkerGraphic`,geometry:{x:0,y:0},symbol:n}],scaleSymbolsProportionally:!0,respectFrame:!0}]}};for(let e of o)e.addPrimitiveOverride(s);return{data:s}}function r(e){return{point:n(e,`point`),line:n(e,`line`),multipoint:n(e,`multipoint`)}}function i(e){let t={};for(let n of e){let e=n.iD??0,{symbol:i}=n;t[e]=r(i)}return t}export{n as getCIMSymbol,i as getCIMSymbols,r as getTrio};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"./DebugOverlay.js";function t(t,n){t.container.addChild(new e({getMesh:e=>t.layer.type===`vector-tile`?a(t,e,n):i(t,e,n),getColors:o,getOpacities:s}))}const n=(t,n,r)=>{let i=0,a=[],o=[];for(let s of t.children)if(s.symbols)for(let c of s.symbols.values())for(let s of c)for(let c of s.colliders(t)){let t=(c.xScreen+c.dxScreen)*n,l=(c.yScreen+c.dyScreen)*n,u=c.width*n,d=c.height*n,f=s.uniqueSymbol?.parts[c.partIndex].targetOpacity>.5;if(!f&&r!==`all`)continue;let p=f?2:0,m=f?3:0,h=e.makeFlags(p,m);a.push(t,l,h,t+u,l,h,t,l+d,h,t+u,l+d,h),o.push(i,i+1,i+2,i+1,i+3,i+2),i+=4;let g=f?3:1,_=f?3:0,v=e.makeFlags(g,_);a.push(t,l,v,t+u,l,v,t,l+1,v,t+u,l+1,v),o.push(i,i+1,i+2,i+1,i+3,i+2),i+=4,a.push(t,l+d-1,v,t+u,l+d-1,v,t,l+d,v,t+u,l+d,v),o.push(i,i+1,i+2,i+1,i+3,i+2),i+=4,a.push(t,l,v,t+1,l,v,t,l+d,v,t+1,l+d,v),o.push(i,i+1,i+2,i+1,i+3,i+2),i+=4,a.push(t+u-1,l,v,t+u,l,v,t+u-1,l+d,v,t+u,l+d,v),o.push(i,i+1,i+2,i+1,i+3,i+2),i+=4}return{vertexData:a,indexData:o,vertexCount:i}},r=(t,n)=>{let{vertexData:r,indexData:i,vertexCount:a}=n,[o,s]=t.decluttererOffset,c=e.makeFlags(2,3),l=256+o,u=256+s;for(let e of[-3,3])for(let t of[-3,3])r.push(256,256,c,256+e,256+t,c,l,u,c,l+e,u+t,c),i.push(a,a+1,a+2,a+1,a+3,a+2),a+=4},i=(e,t,r)=>{let{pixelRatio:i}=t.state,{vertexData:a,indexData:o}=n(e.featureContainer,i,r);return{vertexData:new Int16Array(a),indexData:new Uint32Array(o)}},a=(e,t,i)=>{let{pixelRatio:a}=t.state,o=e._vectorTileContainer,{vertexData:s,indexData:c,vertexCount:l}=n(o,a,i),{symbolFader:u}=o;return u&&r(u,{vertexData:s,indexData:c,vertexCount:l}),{vertexData:new Int16Array(s),indexData:new Uint32Array(c)}},o=()=>[1,.5,0,1,1,0,0,1,0,1,.5,1,0,.5,0,1],s=()=>[.05,.01,.15,.2];export{t as showCollisionBoxes};
2
+ import e from"./DebugOverlay.js";function t(t,n){t.container.addChild(new e({getMesh:e=>t.layer.type===`vector-tile`?a(t,e,n):i(t,e,n),getColors:o,getOpacities:s}))}const n=(t,n,r,i)=>{let a=0,o=[],s=[];for(let c of t.children)if(c.symbols)for(let l of c.symbols.values())for(let c of l)for(let l of c.colliders(t,r)){let t=(l.xScreen+l.dxScreen)*n,r=(l.yScreen+l.dyScreen)*n,u=l.width*n,d=l.height*n,f=c.uniqueSymbol?.parts[l.partIndex].targetOpacity>.5;if(!f&&i!==`all`)continue;let p=f?2:0,m=f?3:0,h=e.makeFlags(p,m);o.push(t,r,h,t+u,r,h,t,r+d,h,t+u,r+d,h),s.push(a,a+1,a+2,a+1,a+3,a+2),a+=4;let g=f?3:1,_=f?3:0,v=e.makeFlags(g,_);o.push(t,r,v,t+u,r,v,t,r+1,v,t+u,r+1,v),s.push(a,a+1,a+2,a+1,a+3,a+2),a+=4,o.push(t,r+d-1,v,t+u,r+d-1,v,t,r+d,v,t+u,r+d,v),s.push(a,a+1,a+2,a+1,a+3,a+2),a+=4,o.push(t,r,v,t+1,r,v,t,r+d,v,t+1,r+d,v),s.push(a,a+1,a+2,a+1,a+3,a+2),a+=4,o.push(t+u-1,r,v,t+u,r,v,t+u-1,r+d,v,t+u,r+d,v),s.push(a,a+1,a+2,a+1,a+3,a+2),a+=4}return{vertexData:o,indexData:s,vertexCount:a}},r=(t,n)=>{let{vertexData:r,indexData:i,vertexCount:a}=n,[o,s]=t.decluttererOffset,c=e.makeFlags(2,3),l=256+o,u=256+s;for(let e of[-3,3])for(let t of[-3,3])r.push(256,256,c,256+e,256+t,c,l,u,c,l+e,u+t,c),i.push(a,a+1,a+2,a+1,a+3,a+2),a+=4},i=(e,t,r)=>{let{pixelRatio:i,scale:a}=t.state,{vertexData:o,indexData:s}=n(e.featureContainer,i,a,r);return{vertexData:new Int16Array(o),indexData:new Uint32Array(s)}},a=(e,t,i)=>{let{pixelRatio:a,scale:o}=t.state,s=e._vectorTileContainer,{vertexData:c,indexData:l,vertexCount:u}=n(s,a,o,i),{symbolFader:d}=s;return d&&r(d,{vertexData:c,indexData:l,vertexCount:u}),{vertexData:new Int16Array(c),indexData:new Uint32Array(l)}},o=()=>[1,.5,0,1,1,0,0,1,0,1,.5,1,0,.5,0,1],s=()=>[.05,.01,.15,.2];export{t as showCollisionBoxes};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{clamp as e}from"../../../../core/mathUtils.js";import{meterIn as t}from"../../../../renderers/support/lengthUtils.js";const n=Math.PI;function r(e,t){switch(t.transformationType){case`additive`:return a(e,t);case`constant`:return o(t,e);case`clamped-linear`:return s(e,t);case`proportional`:return c(e,t);case`stops`:return l(e,t);case`real-world-size`:return u(e,t);case`identity`:return e;case`unknown`:return null}}function i(e,t){return typeof e==`number`?e:r(t,e)}function a(e,t){return e+(i(t.minSize,e)||t.minDataValue)}function o(e,t){let n=e.stops,r=n?.length&&n[0].size;return r??=e.minSize,i(r,t)}function s(e,t){let n=t.minDataValue,r=t.maxDataValue,a=(e-n)/(r-n),o=i(t.minSize,e),s=i(t.maxSize,e);return e<=n?o:e>=r?s:o+a*(s-o)}function c(t,n){let r=t/n.minDataValue,a=i(n.minSize,t),o=i(n.maxSize,t),s=null;return s=r*a,e(s,a,o)}function l(e,t){let[n,r,a]=d(e,t.cache.ipData);if(n===r)return i(t.stops[n].size,e);{let o=i(t.stops[n].size,e);return o+(i(t.stops[r].size,e)-o)*a}}function u(e,r){let i=t[r.valueUnit],{valueRepresentation:a}=r,o=null;return o=a===`area`?2*Math.sqrt(e/n)/i:a===`radius`||a===`distance`?2*e/i:e/i,o}function d(e,t){if(!t)return;let n=0,r=t.length-1;return t.some((t,i)=>e<t?(r=i,!0):(n=i,!1)),[n,r,(e-t[n])/(t[r]-t[n])]}export{r as getSizeForValueSimple};
2
+ import{clamp as e}from"../../../../core/mathUtils.js";import{meterIn as t}from"../../../../renderers/support/lengthUtils.js";const n=Math.PI;function r(e,t,n){switch(t.transformationType){case`additive`:return a(e,t,n);case`constant`:return o(t,e,n);case`clamped-linear`:return s(e,t,n);case`proportional`:return c(e,t,n);case`stops`:return l(e,t,n);case`real-world-size`:return u(e,t);case`identity`:return e;case`unknown`:return null}}function i(e,t,n){return typeof e==`number`?e:r(e.valueExpression===`$view.scale`?n:t,e,n)}function a(e,t,n){return e+(i(t.minSize,e,n)||t.minDataValue)}function o(e,t,n){let r=e.stops,a=r?.length&&r[0].size;return a??=e.minSize,i(a,t,n)}function s(e,t,n){let r=t.minDataValue,a=t.maxDataValue,o=(e-r)/(a-r),s=i(t.minSize,e,n),c=i(t.maxSize,e,n);return e<=r?s:e>=a?c:s+o*(c-s)}function c(t,n,r){let a=t/n.minDataValue,o=i(n.minSize,t,r),s=i(n.maxSize,t,r),c=null;return c=a*o,e(c,o,s)}function l(e,t,n){let[r,a,o]=d(e,t.cache.ipData);if(r===a)return i(t.stops[r].size,e,n);{let s=i(t.stops[r].size,e,n);return s+(i(t.stops[a].size,e,n)-s)*o}}function u(e,r){let i=t[r.valueUnit],{valueRepresentation:a}=r,o=null;return o=a===`area`?2*Math.sqrt(e/n)/i:a===`radius`||a===`distance`?2*e/i:e/i,o}function d(e,t){if(!t)return;let n=0,r=t.length-1;return t.some((t,i)=>e<t?(r=i,!0):(n=i,!1)),[n,r,(e-t[n])/(t[r]-t[n])]}export{r as getSizeForValueSimple};
@@ -14,6 +14,7 @@ import type MediaLayerView from "../layers/MediaLayerView.js";
14
14
  import type OGCFeatureLayerView from "../layers/OGCFeatureLayerView.js";
15
15
  import type OrientedImageryLayerView from "../layers/OrientedImageryLayerView.js";
16
16
  import type ParquetLayerView from "../layers/ParquetLayerView.js";
17
+ import type SketchLayerView from "../layers/SketchLayerView.js";
17
18
  import type StreamLayerView from "../layers/StreamLayerView.js";
18
19
  import type VectorTileLayerView from "../layers/VectorTileLayerView.js";
19
20
  import type WFSLayerView from "../layers/WFSLayerView.js";
@@ -65,7 +66,7 @@ export interface LayerView2DMap {
65
66
  /** @since 5.0 */
66
67
  "map-notes": never;
67
68
  /** @since 5.2 */
68
- sketch: never;
69
+ sketch: SketchLayerView;
69
70
  /** @since 5.0 */
70
71
  media: MediaLayerView;
71
72
  /** @since 5.0 */
@@ -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{watch as n,syncAndInitial as r}from"../../../../core/reactiveUtils.js";import{property as i,subclass as a}from"../../../../core/accessorSupport/decorators.js";import{snapshotLineOfSightTargetState as o,restoreLineOfSightTargetState as s}from"./LineOfSightAuthoringUtils.js";import{LineOfSightItemManipulatedObject3D as c}from"./LineOfSightItemManipulatedObject3D.js";import{LineOfSightItemTool as l}from"./LineOfSightItemTool.js";import{discRadiusSmall as u}from"../../interactive/editingTools/manipulations/config.js";import{MoveTool3D as d}from"../../interactive/editingTools/move/MoveTool3D.js";import{bindViewToolOptions as f}from"../../../interactive/options/bindViewToolOptions.js";import p from"../../../interactive/options/InteractiveToolOptions.js";let m=class extends t{get visible(){return this._get(`visible`)??!0}set visible(e){this._set(`visible`,e),this._itemTool.visible=e,this._moveTool.visible=e}get manipulatorsInteractive(){return this._get(`manipulatorsInteractive`)??!0}set manipulatorsInteractive(e){this._set(`manipulatorsInteractive`,e),this._itemTool.manipulatorsInteractive=e}constructor(e){super(e),this._selectedItem=null,this._objectByItem=new Map,this._undoStack=[],this._redoStack=[],this._itemTool=new l({analysisViewData:e.analysisViewData,snappingManager:e.snappingManager,view:e.view}),this._moveTool=new d({enableVisualElements:!1,manipulatorRadius:u,snappingManager:e.snappingManager,toolOptions:new p,view:e.view})}initialize(){this.view.tools.add(this._itemTool),this.view.tools.add(this._moveTool),this._itemTool.visible=this.visible,this._moveTool.visible=this.visible,this._itemTool.manipulatorsInteractive=this.manipulatorsInteractive;let e=e=>{let t=e.at(0);t!=null&&this._itemTool.showInteractionVisuals(t)},t=()=>this._itemTool.hideInteractionVisuals();this.addHandles([f(this._moveTool.toolOptions,()=>this.view.options),n(()=>({observer:this.analysis.observer,targets:this.analysis.targets.toArray()}),({observer:e,targets:t})=>this._syncObjects(e,t),r),this._itemTool.events.on(`select-item`,({item:e})=>this._setSelectedItem(e)),this._itemTool.events.on(`selection-cleared`,()=>{if(this._moveTool.hasFocusedManipulators){let e=this._selectedItem==null?null:this._objectByItem.get(this._selectedItem);this._itemTool.selectObject(e)}else this._setSelectedItem(null)}),this._itemTool.events.on(`delete-item`,({target:e})=>this._deleteTarget(e)),this._itemTool.events.on(`record-undo`,({record:e})=>this._recordHistory(h([e]))),this._moveTool.events.on(`record-undo`,({updates:e})=>this._recordHistory(h(e))),this._moveTool.events.on(`hold`,({objects:t})=>e(t)),this._moveTool.events.on(`move-start`,({objects:t})=>e(t)),this._moveTool.events.on(`move-stop`,t),n(()=>this._moveTool.firstGrabbedManipulator,e=>{e??t()})])}destroy(){this.stop(),this.view.tools.remove(this._itemTool),this.view.tools.remove(this._moveTool),this._itemTool.destroy(),this._moveTool.destroy();for(let e of this._objectByItem.values())this.removeHandles(e),e.destroy();this._objectByItem.clear(),this._undoStack.length=0,this._redoStack.length=0}get active(){return this._itemTool.active||this._moveTool.active}get canRedo(){return this._redoStack.length>0}get canUndo(){return this._undoStack.length>0}get hasSelection(){return this._selectedItem!=null}get selectedItem(){return this._selectedItem}get updating(){return this._itemTool.updating||this._moveTool.updating}get laserLineVisualElement(){return this._itemTool.laserLineVisualElement}get verticalLineVisualElement(){return this._itemTool.verticalLineVisualElement}selectItem(e){return this._objectByItem.has(e)?(this._setSelectedItem(e),!0):!1}clearSelection(){return this.hasSelection?(this._setSelectedItem(null),!0):!1}deleteSelectedItem(){let e=this._selectedItem;if(e==null)return!1;let t=this.analysis.targets.find(t=>t===e);return t!=null&&this._deleteTarget(t)}getObserverManipulator(){let e=this.analysis.observer,t=e==null?null:this._itemTool.getManipulator(e);return t!=null&&g(t)?t:null}getTargetManipulator(e){let t=this._itemTool.getManipulator(e);return t!=null&&_(t)?t:null}hasManipulatorAt(e,t){return this._itemTool.hasManipulatorAt(e,t)}redo(){let e=this._redoStack.pop();e!=null&&(e.redo()?(this._undoStack.push(e),this._notifyHistoryChanged()):this._redoStack.push(e))}setEditableFlag(e,t){this._itemTool.setEditableFlag(e,t),this._moveTool.setEditableFlag(e,t)}stop(){(this.view.activeTool===this._itemTool||this.view.activeTool===this._moveTool)&&(this.view.activeTool=null),this._itemTool.hideInteractionVisuals(),this.snappingManager.doneSnapping(),this.clearSelection()}undo(){let e=this._undoStack.pop();e!=null&&(e.undo(),this._redoStack.push(e),this._notifyHistoryChanged())}_syncObjects(e,t){let n=new Set(e==null?t:[e,...t]);for(let[e,t]of this._objectByItem)n.has(e)||(this._selectedItem===e&&this._setSelectedItem(null),this.removeHandles(t),this._itemTool.removeObject(t),this._objectByItem.delete(e),t.destroy());e!=null&&this._ensureObject(e,`observer`);for(let e of t)this._ensureObject(e,`target`);this._setSelectedItem(this._selectedItem)}_ensureObject(e,t){if(this._objectByItem.has(e))return;let n=new c({analysisViewData:this.analysisViewData,intersector:this.intersector,item:e,itemType:t,view:this.view});this._objectByItem.set(e,n),this._itemTool.addObject(n),this.addHandles(n.on(`modified-externally`,()=>{this._selectedItem===e&&this._setSelectedItem(e)}),n)}_setSelectedItem(e){let t=e==null?null:this._objectByItem.get(e);this._selectedItem=t==null?null:e,this._itemTool.selectObject(t),this._moveTool.objects.removeAll(),t!=null&&this._moveTool.objects.add(t),this._itemTool.interacting=this._selectedItem!=null}_deleteTarget(e){if(this.analysis.targets.length<=1)return!1;let t=this.analysis.targets.indexOf(e);if(t<0)return!1;let n=o(e),r=this._selectedItem===e;return this.analysis.targets.remove(e),this._recordHistory({undo:()=>{s(n,e),this.analysis.targets.add(e,Math.min(t,this.analysis.targets.length)),r&&this._setSelectedItem(e)},redo:()=>this.analysis.targets.includes(e)&&this.analysis.targets.length<=1?!1:(this.analysis.targets.remove(e),this._selectedItem===e&&this._setSelectedItem(null),!0)}),!0}_recordHistory(e){this._undoStack.push(e),this._redoStack.length=0,this._notifyHistoryChanged()}_notifyHistoryChanged(){this.notifyChange(`canUndo`),this.notifyChange(`canRedo`)}get testInfo(){return{moveTooltip:this._moveTool.tooltip}}};e([i({constructOnly:!0})],m.prototype,`analysisViewData`,void 0),e([i({constructOnly:!0})],m.prototype,`analysis`,void 0),e([i({constructOnly:!0})],m.prototype,`intersector`,void 0),e([i({constructOnly:!0})],m.prototype,`snappingManager`,void 0),e([i({constructOnly:!0})],m.prototype,`view`,void 0),e([i()],m.prototype,`visible`,null),e([i()],m.prototype,`manipulatorsInteractive`,null),e([i()],m.prototype,`_selectedItem`,void 0),e([i()],m.prototype,`active`,null),e([i()],m.prototype,`canRedo`,null),e([i()],m.prototype,`canUndo`,null),e([i()],m.prototype,`selectedItem`,null),e([i()],m.prototype,`updating`,null),m=e([a(`esri.views.3d.analysis.LineOfSight.LineOfSightEditTool`)],m);function h(e){return{undo:()=>{for(let t=e.length-1;t>=0;t--)e[t].undo(null)},redo:()=>{for(let t of e)t.redo(null);return!0}}}function g(e){return e.metadata.type===`observer`}function _(e){return e.metadata.type===`target`}export{m as LineOfSightEditTool};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{watch as n,syncAndInitial as r}from"../../../../core/reactiveUtils.js";import{property as i,subclass as a}from"../../../../core/accessorSupport/decorators.js";import{snapshotLineOfSightTargetState as o,restoreLineOfSightTargetState as s}from"./LineOfSightAuthoringUtils.js";import{LineOfSightItemManipulatedObject3D as c}from"./LineOfSightItemManipulatedObject3D.js";import{LineOfSightItemTool as l}from"./LineOfSightItemTool.js";import{discRadiusSmall as u}from"../../interactive/editingTools/manipulations/config.js";import{MoveTool3D as d}from"../../interactive/editingTools/move/MoveTool3D.js";import{bindViewToolOptions as f}from"../../../interactive/options/bindViewToolOptions.js";import p from"../../../interactive/options/InteractiveToolOptions.js";const m=Symbol(`inactiveMoveManipulatorDisplay`);let h=class extends t{get visible(){return this._get(`visible`)??!0}set visible(e){this._set(`visible`,e),this._itemTool.visible=e,this._moveTool.visible=e}get manipulatorsInteractive(){return this._get(`manipulatorsInteractive`)??!0}set manipulatorsInteractive(e){this._set(`manipulatorsInteractive`,e),this._itemTool.manipulatorsInteractive=e}constructor(e){super(e),this._selectedItem=null,this._objectByItem=new Map,this._undoStack=[],this._redoStack=[],this._itemTool=new l({analysisViewData:e.analysisViewData,snappingManager:e.snappingManager,view:e.view}),this._moveTool=new d({enableVisualElements:!1,manipulatorRadius:u,snappingManager:e.snappingManager,toolOptions:new p,view:e.view})}initialize(){this.view.tools.add(this._itemTool),this.view.tools.add(this._moveTool),this._itemTool.visible=this.visible,this._moveTool.visible=this.visible,this._itemTool.manipulatorsInteractive=this.manipulatorsInteractive;let e=e=>{let t=e.at(0);t!=null&&this._itemTool.showInteractionVisuals(t)},t=()=>this._itemTool.hideInteractionVisuals();this.addHandles([f(this._moveTool.toolOptions,()=>this.view.options),n(()=>({observer:this.analysis.observer,targets:this.analysis.targets.toArray()}),({observer:e,targets:t})=>this._syncObjects(e,t),r),this._itemTool.events.on(`select-item`,({item:e})=>this._setSelectedItem(e)),this._itemTool.events.on(`selection-cleared`,()=>{if(this._moveTool.hasFocusedManipulators){let e=this._selectedItem==null?null:this._objectByItem.get(this._selectedItem);this._itemTool.selectObject(e)}else this._setSelectedItem(null)}),this._itemTool.events.on(`delete-item`,({target:e})=>this._deleteTarget(e)),this._itemTool.events.on(`record-undo`,({record:e})=>this._recordHistory(g([e]))),this._moveTool.events.on(`record-undo`,({updates:e})=>this._recordHistory(g(e))),this._moveTool.events.on(`hold`,({objects:t})=>e(t)),this._moveTool.events.on(`move-start`,({objects:t})=>e(t)),this._moveTool.events.on(`move-stop`,t),n(()=>({sphereGrabbed:this._itemTool.hasGrabbedManipulators,manipulators:this._moveTool.manipulators.toArray()}),({sphereGrabbed:e})=>{let t=[];e&&this._moveTool.manipulators.forEach(({manipulator:e})=>{t.push(e.disableDisplay())}),this.removeHandles(m),this.addHandles(t,m)},r),n(()=>this._moveTool.firstGrabbedManipulator,e=>{e??t()})])}destroy(){this.removeHandles(m),this.stop(),this.view.tools.remove(this._itemTool),this.view.tools.remove(this._moveTool),this._itemTool.destroy(),this._moveTool.destroy();for(let e of this._objectByItem.values())this.removeHandles(e),e.destroy();this._objectByItem.clear(),this._undoStack.length=0,this._redoStack.length=0}get active(){return this._itemTool.active||this._moveTool.active}get canRedo(){return this._redoStack.length>0}get canUndo(){return this._undoStack.length>0}get hasSelection(){return this._selectedItem!=null}get selectedItem(){return this._selectedItem}get updating(){return this._itemTool.updating||this._moveTool.updating}get laserLineVisualElement(){return this._itemTool.laserLineVisualElement}get verticalLineVisualElement(){return this._itemTool.verticalLineVisualElement}selectItem(e){return this._objectByItem.has(e)?(this._setSelectedItem(e),!0):!1}clearSelection(){return this.hasSelection?(this._setSelectedItem(null),!0):!1}deleteSelectedItem(){let e=this._selectedItem;if(e==null)return!1;let t=this.analysis.targets.find(t=>t===e);return t!=null&&this._deleteTarget(t)}getObserverManipulator(){let e=this.analysis.observer,t=e==null?null:this._itemTool.getManipulator(e);return t!=null&&_(t)?t:null}getTargetManipulator(e){let t=this._itemTool.getManipulator(e);return t!=null&&v(t)?t:null}hasManipulatorAt(e,t){return this._itemTool.hasManipulatorAt(e,t)}redo(){let e=this._redoStack.pop();e!=null&&(e.redo()?(this._undoStack.push(e),this._notifyHistoryChanged()):this._redoStack.push(e))}setEditableFlag(e,t){this._itemTool.setEditableFlag(e,t),this._moveTool.setEditableFlag(e,t)}stop(){(this.view.activeTool===this._itemTool||this.view.activeTool===this._moveTool)&&(this.view.activeTool=null),this._itemTool.hideInteractionVisuals(),this.snappingManager.doneSnapping(),this.clearSelection()}undo(){let e=this._undoStack.pop();e!=null&&(e.undo(),this._redoStack.push(e),this._notifyHistoryChanged())}_syncObjects(e,t){let n=new Set(e==null?t:[e,...t]);for(let[e,t]of this._objectByItem)n.has(e)||(this._selectedItem===e&&this._setSelectedItem(null),this.removeHandles(t),this._itemTool.removeObject(t),this._objectByItem.delete(e),t.destroy());e!=null&&this._ensureObject(e);for(let e of t)this._ensureObject(e);this._setSelectedItem(this._selectedItem)}_ensureObject(e){if(this._objectByItem.has(e))return;let t=new c({analysisViewData:this.analysisViewData,intersector:this.intersector,item:e,view:this.view});this._objectByItem.set(e,t),this._itemTool.addObject(t),this.addHandles(t.on(`modified-externally`,()=>{this._selectedItem===e&&this._setSelectedItem(e)}),t)}_setSelectedItem(e){let t=e==null?null:this._objectByItem.get(e);this._selectedItem=t==null?null:e,this._itemTool.selectObject(t),this._moveTool.objects.removeAll(),t!=null&&this._moveTool.objects.add(t),this._itemTool.interacting=this._selectedItem!=null}_deleteTarget(e){if(this.analysis.targets.length<=1)return!1;let t=this.analysis.targets.indexOf(e);if(t<0)return!1;let n=o(e),r=this._selectedItem===e;return this.analysis.targets.remove(e),this._recordHistory({undo:()=>{s(n,e),this.analysis.targets.add(e,Math.min(t,this.analysis.targets.length)),r&&this._setSelectedItem(e)},redo:()=>this.analysis.targets.includes(e)&&this.analysis.targets.length<=1?!1:(this.analysis.targets.remove(e),this._selectedItem===e&&this._setSelectedItem(null),!0)}),!0}_recordHistory(e){this._undoStack.push(e),this._redoStack.length=0,this._notifyHistoryChanged()}_notifyHistoryChanged(){this.notifyChange(`canUndo`),this.notifyChange(`canRedo`)}get testInfo(){return{moveTooltip:this._moveTool.tooltip}}};e([i({constructOnly:!0})],h.prototype,`analysisViewData`,void 0),e([i({constructOnly:!0})],h.prototype,`analysis`,void 0),e([i({constructOnly:!0})],h.prototype,`intersector`,void 0),e([i({constructOnly:!0})],h.prototype,`snappingManager`,void 0),e([i({constructOnly:!0})],h.prototype,`view`,void 0),e([i()],h.prototype,`visible`,null),e([i()],h.prototype,`manipulatorsInteractive`,null),e([i()],h.prototype,`_selectedItem`,void 0),e([i()],h.prototype,`active`,null),e([i()],h.prototype,`canRedo`,null),e([i()],h.prototype,`canUndo`,null),e([i()],h.prototype,`selectedItem`,null),e([i()],h.prototype,`updating`,null),h=e([a(`esri.views.3d.analysis.LineOfSight.LineOfSightEditTool`)],h);function g(e){return{undo:()=>{for(let t=e.length-1;t>=0;t--)e[t].undo(null)},redo:()=>{for(let t of e)t.redo(null);return!0}}}function _(e){return e.metadata.type===`observer`}function v(e){return e.metadata.type===`target`}export{h as LineOfSightEditTool};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{EventedAccessor as t}from"../../../../core/Evented.js";import{destroyMaybe as n}from"../../../../core/maybe.js";import{watch as r,syncAndInitial as i}from"../../../../core/reactiveUtils.js";import{property as a,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{absoluteHeightElevationInfo as s}from"../../../../support/elevationInfoUtils.js";import{convertLineOfSightElevationMode as c,snapshotLineOfSightObserverState as l,snapshotLineOfSightTargetState as u,restoreLineOfSightObserverState as d,restoreLineOfSightTargetState as f,updateLineOfSightItemFromAuthoredPoint as p}from"./LineOfSightAuthoringUtils.js";import{EditGeometryOperations as m}from"../../../interactive/editGeometry/EditGeometryOperations.js";const h=Symbol(`line-of-sight-item-operations`);let g=class extends t{constructor(e){super(e),this._operations=null,this._dragIntersectionContext=null,this._syncSource=null}initialize(){this.addHandles([r(()=>{let{elevationInfo:e,feature:t,position:n}=this.item;return{elevationInfo:e,elevationMode:e?.mode,elevationOffset:e?.offset,elevationUnit:e?.unit,feature:t,position:n,positionCoordinates:n?.toArray(),spatialReference:n?.spatialReference}},()=>this._syncOperationsFromItem(),i),r(()=>{let{origin:e}=this;return{origin:e,originCoordinates:e?.toArray(),spatialReference:e?.spatialReference}},()=>this.emit(`committed`),i)])}destroy(){this.removeHandles(h),this._operations=n(this._operations),this._dragIntersectionContext=null}get operations(){return this._operations}get elevationInfo(){return this.item.elevationInfo??s}get visible(){return this.analysisViewData.visible&&this.origin!=null}get isDraped(){return this.elevationInfo.mode===`on-the-ground`}get origin(){return this.itemType===`observer`?this.analysisViewData.elevationAlignedObserver:this.analysisViewData.computations.find(e=>e.target===this.item)?.elevationAlignedTargetLocation??null}get updating(){return!1}toMap(e){return this.intersector.getScreenPointIntersection(e)?.mapPoint}createUndoRecord(){let e=this._snapshotState(),t=null;return{undo:()=>{t=this._snapshotState(),this._restoreSnapshot(e)},redo:()=>{t!=null&&(e=this._snapshotState(),this._restoreSnapshot(t))}}}setElevationMode(e){let{position:t,elevationInfo:n}=this.item;if(t==null||e===this.elevationInfo.mode)return null;let r=c({view:this.view,point:t,sourceElevationInfo:n,mode:e,preserveZ:!0}),i=this.createUndoRecord();this._syncSource=`operations`;try{this.item.elevationInfo=r.elevationInfo,this.item.position=r.position}finally{this._syncSource=null}return this._syncOperationsFromItem(!1),i}updateDragIntersection(e){if(e.action===`cancel`){this._dragIntersectionContext=null;return}this._dragIntersectionContext={dragging:e.action!==`end`,intersection:this.intersector.getScreenPointIntersection(e.screenPoint)}}_snapshotState(){return this.itemType===`observer`?l(this.item):u(this.item)}_restoreSnapshot(e){this.itemType===`observer`?d(e,this.item):f(e,this.item),this.destroyed||(this._syncOperationsFromItem(),this.emit(`committed`))}_replaceOperations(e){this.removeHandles(h),this._operations=n(this._operations),this._operations=e,e!=null&&this.addHandles(e.data.on(`change`,()=>this._operationsGeometryChanged()),h)}_syncOperationsFromItem(e=!0){let{position:t}=this.item,n=this._operations;if(this._syncSource!==`operations`){this._syncSource=`item`;try{if(t==null){if(n==null)return;this._replaceOperations(null)}else!n?.data.geometry?.equals(t)&&!n?.trySetGeometry(t)&&this._replaceOperations(m.fromGeometry(t,this.view.state.viewingMode));e?this._emitModifiedExternally():this.emit(`committed`)}finally{this._syncSource=null}}}_operationsGeometryChanged(){let e=this._operations?.data.geometry;if(this._syncSource===`item`||e?.type!==`point`)return;let t=this._dragIntersectionContext;this._syncSource=`operations`;try{t==null?this.item.position=e:p(this.view,this.item,this.intersector,e,{elevationInfo:this.item.elevationInfo,preservedIntersection:t.intersection})}finally{this._syncSource=null}t!=null&&!t.dragging&&(this._dragIntersectionContext=null),this.emit(`committed`)}_emitModifiedExternally(){this.emit(`modified-externally`),this.emit(`committed`)}};e([a({constructOnly:!0})],g.prototype,`analysisViewData`,void 0),e([a({constructOnly:!0})],g.prototype,`intersector`,void 0),e([a({constructOnly:!0})],g.prototype,`item`,void 0),e([a({constructOnly:!0})],g.prototype,`itemType`,void 0),e([a({constructOnly:!0})],g.prototype,`view`,void 0),e([a()],g.prototype,`_operations`,void 0),g=e([o(`esri.views.3d.analysis.LineOfSight.LineOfSightItemManipulatedObject3D`)],g);export{g as LineOfSightItemManipulatedObject3D};
2
+ import{__decorate as e}from"tslib";import{EventedAccessor as t}from"../../../../core/Evented.js";import{destroyMaybe as n}from"../../../../core/maybe.js";import{watch as r,syncAndInitial as i}from"../../../../core/reactiveUtils.js";import{property as a,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{absoluteHeightElevationInfo as s}from"../../../../support/elevationInfoUtils.js";import{convertLineOfSightElevationMode as c,snapshotLineOfSightObserverState as l,snapshotLineOfSightTargetState as u,restoreLineOfSightObserverState as d,restoreLineOfSightTargetState as f,updateLineOfSightItemFromAuthoredPoint as p}from"./LineOfSightAuthoringUtils.js";import{EditGeometryOperations as m}from"../../../interactive/editGeometry/EditGeometryOperations.js";const h=Symbol(`line-of-sight-item-operations`);let g=class extends t{constructor(e){super(e),this._operations=null,this._dragIntersectionContext=null,this._syncSource=null}initialize(){this.addHandles([r(()=>{let{elevationInfo:e,feature:t,position:n}=this.item;return{elevationInfo:e,elevationMode:e?.mode,elevationOffset:e?.offset,elevationUnit:e?.unit,feature:t,position:n,positionCoordinates:n?.toArray(),spatialReference:n?.spatialReference}},()=>this._syncOperationsFromItem(),i),r(()=>{let{origin:e}=this;return{origin:e,originCoordinates:e?.toArray(),spatialReference:e?.spatialReference}},()=>this.emit(`committed`),i)])}destroy(){this.removeHandles(h),this._operations=n(this._operations),this._dragIntersectionContext=null}get operations(){return this._operations}get elevationInfo(){return this.item.elevationInfo??s}get visible(){return this.analysisViewData.visible&&this.origin!=null}get isDraped(){return this.elevationInfo.mode===`on-the-ground`}get origin(){return this.item.type===`observer`?this.analysisViewData.elevationAlignedObserver:this.analysisViewData.computations.find(e=>e.target===this.item)?.elevationAlignedTargetLocation??null}get updating(){return!1}toMap(e){return this.intersector.getScreenPointIntersection(e)?.mapPoint}createUndoRecord(){let e=this._snapshotState(),t=null;return{undo:()=>{t=this._snapshotState(),this._restoreSnapshot(e)},redo:()=>{t!=null&&(e=this._snapshotState(),this._restoreSnapshot(t))}}}setElevationMode(e){let{position:t,elevationInfo:n}=this.item;if(t==null||e===this.elevationInfo.mode)return null;let r=c({view:this.view,point:t,sourceElevationInfo:n,mode:e,preserveZ:!0}),i=this.createUndoRecord();this._syncSource=`operations`;try{this.item.elevationInfo=r.elevationInfo,this.item.position=r.position}finally{this._syncSource=null}return this._syncOperationsFromItem(!1),i}updateDragIntersection(e){if(e.action===`cancel`){this._dragIntersectionContext=null;return}this._dragIntersectionContext={dragging:e.action!==`end`,intersection:this.intersector.getScreenPointIntersection(e.screenPoint)}}_snapshotState(){let{item:e}=this;return e.type===`observer`?l(e):u(e)}_restoreSnapshot(e){let{item:t}=this;t.type===`observer`?d(e,t):f(e,t),this.destroyed||(this._syncOperationsFromItem(),this.emit(`committed`))}_replaceOperations(e){this.removeHandles(h),this._operations=n(this._operations),this._operations=e,e!=null&&this.addHandles(e.data.on(`change`,()=>this._operationsGeometryChanged()),h)}_syncOperationsFromItem(e=!0){let{position:t}=this.item,n=this._operations;if(this._syncSource!==`operations`){this._syncSource=`item`;try{if(t==null){if(n==null)return;this._replaceOperations(null)}else!n?.data.geometry?.equals(t)&&!n?.trySetGeometry(t)&&this._replaceOperations(m.fromGeometry(t,this.view.state.viewingMode));e?this._emitModifiedExternally():this.emit(`committed`)}finally{this._syncSource=null}}}_operationsGeometryChanged(){let e=this._operations?.data.geometry;if(this._syncSource===`item`||e?.type!==`point`)return;let t=this._dragIntersectionContext;this._syncSource=`operations`;try{t==null?this.item.position=e:p(this.view,this.item,this.intersector,e,{elevationInfo:this.item.elevationInfo,preservedIntersection:t.intersection})}finally{this._syncSource=null}t!=null&&!t.dragging&&(this._dragIntersectionContext=null),this.emit(`committed`)}_emitModifiedExternally(){this.emit(`modified-externally`),this.emit(`committed`)}};e([a({constructOnly:!0})],g.prototype,`analysisViewData`,void 0),e([a({constructOnly:!0})],g.prototype,`intersector`,void 0),e([a({constructOnly:!0})],g.prototype,`item`,void 0),e([a({constructOnly:!0})],g.prototype,`view`,void 0),e([a()],g.prototype,`_operations`,void 0),g=e([o(`esri.views.3d.analysis.LineOfSight.LineOfSightItemManipulatedObject3D`)],g);export{g as LineOfSightItemManipulatedObject3D};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{EventEmitter as t}from"../../../../core/Evented.js";import{handlesGroup as n}from"../../../../core/handleUtils.js";import{destroyMaybe as r,removeMaybe as i}from"../../../../core/maybe.js";import{initial as a,watch as o}from"../../../../core/reactiveUtils.js";import{property as s,subclass as c}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as l}from"../../../../core/support/UpdatingHandles.js";import{create as u,fromPoints as d}from"../../../../geometry/support/lineSegment.js";import{LineOfSightInteractionVisuals as f}from"./LineOfSightInteractionVisuals.js";import{LineOfSightObserverManipulator as p,LineOfSightTargetManipulator as m,LineOfSightTargetManipulatorState as h,getInteractiveLineOfSightTargetManipulatorState as g}from"./LineOfSightManipulators.js";import{SnappingVisualizer3D as _}from"../../interactive/SnappingVisualizer3D.js";import{screenToMapAtSceneSurface as v}from"../../interactive/editingTools/dragEventPipeline3D.js";import{connectTooltipToManipulatedObject as y}from"../../interactive/editingTools/tooltipUtils3D.js";import{mouseButtons as b}from"../../../input/mouseButtons.js";import{createManipulatorDragEventPipeline as x,dragAtLocation as S,sceneSnappingAtLocation as C,dragManipulatedObject as w}from"../../../interactive/dragEventPipeline.js";import{InteractiveToolBase as T}from"../../../interactive/InteractiveToolBase.js";import{bindViewToolOptions as E}from"../../../interactive/options/bindViewToolOptions.js";import D from"../../../interactive/options/InteractiveToolOptions.js";import{SnappingContext as O}from"../../../interactive/snapping/SnappingContext.js";import{createSnapDragEventPipelineStep as k}from"../../../interactive/snapping/SnappingDragPipelineStep.js";import{makeTooltip as A,enterInputModeIfAvailable as j}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{MovePointTooltipInfo as M}from"../../../interactive/tooltip/infos/MovePointTooltipInfo.js";const N=u();let P=class extends T{constructor(e){super(e),this.events=new t,this.automaticManipulatorSelection=!1,this.removeIncompleteOnCancel=!1,this.interacting=!1,this.manipulatorsInteractive=!0,this._objectByItem=new Map,this._manipulatorByObject=new Map,this._updatingHandles=new l,this._toolOptions=new D,this._interactionVisuals=null,this._grabbedManipulator=null,this._visualsManipulator=null,this._tooltipHandle=null,this._tooltipObject=null,this._tooltipUndoRecord=null,this._tooltipInfo=new M({toolOptions:this._toolOptions,viewType:`3d`})}initialize(){let{view:e}=this;this._tooltip=A(()=>({view:e,options:this._toolOptions.tooltips})),this._interactionVisuals=new f({view:e}),this.addHandles([E(this._toolOptions,()=>e.options),this._updatingHandles.add(()=>({analysisVisible:this.analysisViewData.visible,computations:this.analysisViewData.computations.toArray().map(e=>({isTargetVisible:e.computationResult.isTargetVisible,isValid:e.computationResult.isValid,target:e.target})),grabbedManipulator:this._grabbedManipulator,interacting:this.interacting,manipulatorsInteractive:this.manipulatorsInteractive,visible:this.visible}),()=>this._syncManipulators(),a),o(()=>this._tooltip.mode,e=>{e!==`input`&&this._grabbedManipulator==null&&this._disconnectTooltip()})]),this.finishToolCreation()}destroy(){this._disconnectTooltip(),this._tooltip=r(this._tooltip),this._interactionVisuals=r(this._interactionVisuals),this._updatingHandles.destroy(),this._objectByItem.clear(),this._manipulatorByObject.clear(),super.destroy()}get updating(){return this._updatingHandles.updating||this.snappingManager.updating}get laserLineVisualElement(){return this._interactionVisuals?.laserLineVisualElement??null}get verticalLineVisualElement(){return this._interactionVisuals?.verticalLineVisualElement??null}showInteractionVisuals(e){this._visualsManipulator=this._manipulatorByObject.get(e),this._syncInteractionVisuals()}hideInteractionVisuals(){this._visualsManipulator=null,this._syncInteractionVisuals()}addObject(e){if(this._manipulatorByObject.has(e))return;let t=e.itemType===`observer`?new p(this.view,{deleting:!1,intersection:null,type:`observer`}):new m(this.view,{deleting:!1,target:e.item,type:`target`});t.cursor=`move`,this._objectByItem.set(e.item,e),this._manipulatorByObject.set(e,t),this.manipulators.add(t),this.addHandles(this._connectManipulator(e,t),e),this._syncManipulator(e,t)}removeObject(e){let t=this._manipulatorByObject.get(e);t!=null&&(this._grabbedManipulator===t&&(this._grabbedManipulator=null),this._tooltipObject===e&&this._disconnectTooltip(),this._visualsManipulator===t&&this.hideInteractionVisuals(),this.removeHandles(e),this.manipulators.remove(t),t.destroy(),this._objectByItem.delete(e.item),this._manipulatorByObject.delete(e))}getManipulator(e){let t=this._objectByItem.get(e);return t==null?null:this._manipulatorByObject.get(t)}hasManipulatorAt(e,t){for(let n of this._manipulatorByObject.values())if(n.consumesClicks&&n.intersectionDistance(e,t)!=null)return!0;return!1}selectObject(e){this._tooltipObject!=null&&this._tooltipObject!==e&&this._disconnectTooltip();let t=!1;for(let[n,r]of this._manipulatorByObject){let i=n===e;r.selected=i,t||=i}return this._syncManipulators(),t}onInputEvent(e){e.type===`hold`&&this._grabbedManipulator!=null&&(this._visualsManipulator=this._grabbedManipulator,this._syncInteractionVisuals()),j(e,this._tooltip)}onManipulatorSelectionChanged(){[...this._manipulatorByObject.values()].some(e=>e.selected)||this.events.emit(`selection-cleared`)}_connectManipulator(e,t){let r=()=>this._syncManipulator(e,t);return n([e.on(`committed`,r),e.on(`modified-externally`,r),t.events.on(`immediate-click`,n=>{this.events.emit(`select-item`,{item:e.item}),n.button===b.Right&&t.metadata.type===`target`&&this.events.emit(`delete-item`,{target:t.metadata.target}),n.stopPropagation()}),t.events.on(`grab-changed`,({action:n})=>{n===`start`?(this.events.emit(`select-item`,{item:e.item}),this._grabbedManipulator=t,this._connectTooltip(e)):this._grabbedManipulator===t&&(this._grabbedManipulator=null,this.hideInteractionVisuals(),this._tooltip.mode!==`input`&&this._disconnectTooltip())}),t.events.on(`drag`,t=>{e.updateDragIntersection(t),t.action===`start`&&this.showInteractionVisuals(e)}),t.events.on(`location-update`,()=>this._syncInteractionVisuals()),this._createDragHandle(e,t)])}_createDragHandle(e,t){return x(t,(n,r,i,a)=>{let o=e.operations;if(o==null)return;let s=null,{cancelSnapping:c,snappingStep:l}=k({snappingContext:new O({editGeometryOperations:o,elevationInfo:e.elevationInfo,pointer:a,visualizer:new _}),snappingManager:this.snappingManager,updatingHandles:this._updatingHandles,useZ:!0});i.next(e=>(s?.undo(null),s=null,e)).next(c);let u=o.data.allVerticesUnordered.at(0);r.next(t=>(t.action===`start`&&(s=e.createUndoRecord()),{...t,snapOrigin:u?.pos})).next(S(this.view,t.elevationAlignedLocation)).next(v(this.view,o.data.geometry,e.elevationInfo,o.data.spatialReference)).next(C(this.view,e.elevationInfo)).next(...l).next(w(e)).next(e=>(e.action===`end`&&s!=null&&(this.events.emit(`record-undo`,{record:s}),s=null),e))})}_connectTooltip(e){this._disconnectTooltip(),this._tooltipObject=e,this._tooltipHandle=y(this._tooltip,e,()=>({activeTooltipInfo:this._tooltipInfo,onRecordUndo:e=>this.events.emit(`record-undo`,{record:e}),callbacks:{onBeforeUpdate:()=>this.endDrag(),onMoveStart:()=>{this._tooltipUndoRecord=e.createUndoRecord()},onMove:()=>{},onMoveStop:()=>{this._tooltipUndoRecord!=null&&(this.events.emit(`record-undo`,{record:this._tooltipUndoRecord}),this._tooltipUndoRecord=null)},onRotateStart:()=>{},onRotate:()=>{},onRotateStop:()=>{},onScaleStart:()=>{},onScale:()=>{},onScaleStop:()=>{}},toolOptions:this._toolOptions}))}_disconnectTooltip(){this._tooltipHandle=i(this._tooltipHandle),this._tooltipObject=null,this._tooltipUndoRecord=null,this._tooltip.clear()}_syncManipulators(){for(let[e,t]of this._manipulatorByObject)this._syncManipulator(e,t);this._syncInteractionVisuals()}_syncManipulator(e,t){let n=e.origin;if(t.available=this.visible&&e.visible&&n!=null,t.interactive=this.manipulatorsInteractive&&(this._grabbedManipulator==null||this._grabbedManipulator===t),n!=null&&(t.elevationAlignedLocation=n),e.itemType!==`target`)return;let r=this.analysisViewData.computations.find(t=>t.target===e.item),i=r==null||!r.computationResult.isValid?h.undefined:r.computationResult.isTargetVisible?h.visible:h.occluded;t.state=this.interacting&&t.selected?g(i):i}_syncInteractionVisuals(){let e=this._interactionVisuals,t=this._visualsManipulator,n=this.visible&&this.analysisViewData.visible;if(e==null||t==null||!n){e?.hide();return}let r=[...this._manipulatorByObject.entries()].find(([e])=>e.itemType===`observer`)?.[1];if(r==null){e.hide();return}let i=t===r?null:d(r.renderLocation,t.renderLocation,N);e.update({target:t.renderLocation,lineVerticalPlaneSegment:i,visible:!0})}};e([s({constructOnly:!0})],P.prototype,`analysisViewData`,void 0),e([s({constructOnly:!0})],P.prototype,`snappingManager`,void 0),e([s({constructOnly:!0})],P.prototype,`view`,void 0),e([s()],P.prototype,`automaticManipulatorSelection`,void 0),e([s()],P.prototype,`removeIncompleteOnCancel`,void 0),e([s()],P.prototype,`interacting`,void 0),e([s()],P.prototype,`manipulatorsInteractive`,void 0),e([s()],P.prototype,`_grabbedManipulator`,void 0),e([s()],P.prototype,`updating`,null),P=e([c(`esri.views.3d.analysis.LineOfSight.LineOfSightItemTool`)],P);export{P as LineOfSightItemTool};
2
+ import{__decorate as e}from"tslib";import{EventEmitter as t}from"../../../../core/Evented.js";import{handlesGroup as n}from"../../../../core/handleUtils.js";import{destroyMaybe as r,removeMaybe as i}from"../../../../core/maybe.js";import a from"../../../../core/ReactiveMap.js";import{initial as o,watch as s,syncAndInitial as c}from"../../../../core/reactiveUtils.js";import{property as l,subclass as u}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as d}from"../../../../core/support/UpdatingHandles.js";import{create as f,fromPoints as p}from"../../../../geometry/support/lineSegment.js";import{LineOfSightInteractionVisuals as m}from"./LineOfSightInteractionVisuals.js";import{LineOfSightObserverManipulator as h,LineOfSightTargetManipulator as g,LineOfSightTargetManipulatorState as _,getInteractiveLineOfSightTargetManipulatorState as v}from"./LineOfSightManipulators.js";import{SnappingVisualizer3D as y}from"../../interactive/SnappingVisualizer3D.js";import{screenToMapAtSceneSurface as b}from"../../interactive/editingTools/dragEventPipeline3D.js";import{connectTooltipToManipulatedObject as x}from"../../interactive/editingTools/tooltipUtils3D.js";import{mouseButtons as S}from"../../../input/mouseButtons.js";import{createManipulatorDragEventPipeline as C,dragAtLocation as w,sceneSnappingAtLocation as T,dragManipulatedObject as E}from"../../../interactive/dragEventPipeline.js";import{InteractiveToolBase as D}from"../../../interactive/InteractiveToolBase.js";import{bindViewToolOptions as O}from"../../../interactive/options/bindViewToolOptions.js";import k from"../../../interactive/options/InteractiveToolOptions.js";import{SnappingContext as A}from"../../../interactive/snapping/SnappingContext.js";import{createSnapDragEventPipelineStep as j}from"../../../interactive/snapping/SnappingDragPipelineStep.js";import{makeTooltip as M,enterInputModeIfAvailable as N}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{MovePointTooltipInfo as P}from"../../../interactive/tooltip/infos/MovePointTooltipInfo.js";const F=f(),I=Symbol(`inactiveManipulatorDisplay`);let L=class extends D{get _manipulatorsToHide(){let e=this._manipulatorByObject.values();return this.view.tools.some(e=>e.hasGrabbedManipulators)||e.some(e=>e.grabbing)?e.filter(e=>!e.grabbing).toArray():[]}constructor(e){super(e),this.events=new t,this.automaticManipulatorSelection=!1,this.removeIncompleteOnCancel=!1,this.interacting=!1,this.manipulatorsInteractive=!0,this._objectByItem=new Map,this._manipulatorByObject=new a,this._updatingHandles=new d,this._toolOptions=new k,this._interactionVisuals=null,this._grabbedManipulator=null,this._visualsManipulator=null,this._tooltipHandle=null,this._tooltipObject=null,this._tooltipUndoRecord=null,this._tooltipInfo=new P({toolOptions:this._toolOptions,viewType:`3d`})}initialize(){let{view:e}=this;this._tooltip=M(()=>({view:e,options:this._toolOptions.tooltips})),this._interactionVisuals=new m({view:e}),this.addHandles([O(this._toolOptions,()=>e.options),this._updatingHandles.add(()=>({analysisVisible:this.analysisViewData.visible,computations:this.analysisViewData.computations.toArray().map(e=>({isTargetVisible:e.computationResult.isTargetVisible,isValid:e.computationResult.isValid,target:e.target})),grabbedManipulator:this._grabbedManipulator,interacting:this.interacting,manipulatorsInteractive:this.manipulatorsInteractive,visible:this.visible}),()=>this._syncManipulators(),o),s(()=>this._manipulatorsToHide,e=>{let t=e.map(e=>e.disableDisplay());this.removeHandles(I),this.addHandles(t,I)},c),s(()=>this._tooltip.mode,e=>{e!==`input`&&this._grabbedManipulator==null&&this._disconnectTooltip()})]),this.finishToolCreation()}destroy(){this.removeHandles(I),this._disconnectTooltip(),this._tooltip=r(this._tooltip),this._interactionVisuals=r(this._interactionVisuals),this._updatingHandles.destroy(),this._objectByItem.clear(),this._manipulatorByObject.clear(),super.destroy()}get updating(){return this._updatingHandles.updating||this.snappingManager.updating}get laserLineVisualElement(){return this._interactionVisuals?.laserLineVisualElement??null}get verticalLineVisualElement(){return this._interactionVisuals?.verticalLineVisualElement??null}showInteractionVisuals(e){this._visualsManipulator=this._manipulatorByObject.get(e),this._syncInteractionVisuals()}hideInteractionVisuals(){this._visualsManipulator=null,this._syncInteractionVisuals()}addObject(e){if(this._manipulatorByObject.has(e))return;let t=e.item.type===`observer`?new h(this.view,{deleting:!1,intersection:null,type:`observer`}):new g(this.view,{deleting:!1,target:e.item,type:`target`});t.cursor=`move`,this._objectByItem.set(e.item,e),this._manipulatorByObject.set(e,t),this.manipulators.add(t),this.addHandles(this._connectManipulator(e,t),e),this._syncManipulator(e,t)}removeObject(e){let t=this._manipulatorByObject.get(e);t!=null&&(this._grabbedManipulator===t&&(this._grabbedManipulator=null),this._tooltipObject===e&&this._disconnectTooltip(),this._visualsManipulator===t&&this.hideInteractionVisuals(),this.removeHandles(e),this.removeHandles(e),this._objectByItem.delete(e.item),this._manipulatorByObject.delete(e),this.manipulators.remove(t),t.destroy())}getManipulator(e){let t=this._objectByItem.get(e);return t==null?null:this._manipulatorByObject.get(t)}hasManipulatorAt(e,t){for(let n of this._manipulatorByObject.values())if(n.consumesClicks&&n.intersectionDistance(e,t)!=null)return!0;return!1}selectObject(e){this._tooltipObject!=null&&this._tooltipObject!==e&&this._disconnectTooltip();let t=!1;for(let[n,r]of this._manipulatorByObject){let i=n===e;r.selected=i,t||=i}return this._syncManipulators(),t}onInputEvent(e){e.type===`hold`&&this._grabbedManipulator!=null&&(this._visualsManipulator=this._grabbedManipulator,this._syncInteractionVisuals()),N(e,this._tooltip)}onManipulatorSelectionChanged(){[...this._manipulatorByObject.values()].some(e=>e.selected)||this.events.emit(`selection-cleared`)}_connectManipulator(e,t){let r=()=>this._syncManipulator(e,t);return n([e.on(`committed`,r),e.on(`modified-externally`,r),t.events.on(`immediate-click`,n=>{this.events.emit(`select-item`,{item:e.item}),n.button===S.Right&&t.metadata.type===`target`&&this.events.emit(`delete-item`,{target:t.metadata.target}),n.stopPropagation()}),t.events.on(`grab-changed`,({action:n})=>{n===`start`?(this.events.emit(`select-item`,{item:e.item}),this._grabbedManipulator=t,this._connectTooltip(e)):this._grabbedManipulator===t&&(this._grabbedManipulator=null,this.hideInteractionVisuals(),this._tooltip.mode!==`input`&&this._disconnectTooltip()),this._manipulatorByObject.set(e,t)}),t.events.on(`drag`,t=>{e.updateDragIntersection(t),t.action===`start`&&this.showInteractionVisuals(e)}),t.events.on(`location-update`,()=>this._syncInteractionVisuals()),this._createDragHandle(e,t)])}_createDragHandle(e,t){return C(t,(n,r,i,a)=>{let o=e.operations;if(o==null)return;let s=null,{cancelSnapping:c,snappingStep:l}=j({snappingContext:new A({editGeometryOperations:o,elevationInfo:e.elevationInfo,pointer:a,visualizer:new y}),snappingManager:this.snappingManager,updatingHandles:this._updatingHandles,useZ:!0});i.next(e=>(s?.undo(null),s=null,e)).next(c);let u=o.data.allVerticesUnordered.at(0);r.next(t=>(t.action===`start`&&(s=e.createUndoRecord()),{...t,snapOrigin:u?.pos})).next(w(this.view,t.elevationAlignedLocation)).next(b(this.view,o.data.geometry,e.elevationInfo,o.data.spatialReference)).next(T(this.view,e.elevationInfo)).next(...l).next(E(e)).next(e=>(e.action===`end`&&s!=null&&(this.events.emit(`record-undo`,{record:s}),s=null),e))})}_connectTooltip(e){this._disconnectTooltip(),this._tooltipObject=e,this._tooltipHandle=x(this._tooltip,e,()=>({activeTooltipInfo:this._tooltipInfo,onRecordUndo:e=>this.events.emit(`record-undo`,{record:e}),callbacks:{onBeforeUpdate:()=>this.endDrag(),onMoveStart:()=>{this._tooltipUndoRecord=e.createUndoRecord()},onMove:()=>{},onMoveStop:()=>{this._tooltipUndoRecord!=null&&(this.events.emit(`record-undo`,{record:this._tooltipUndoRecord}),this._tooltipUndoRecord=null)},onRotateStart:()=>{},onRotate:()=>{},onRotateStop:()=>{},onScaleStart:()=>{},onScale:()=>{},onScaleStop:()=>{}},toolOptions:this._toolOptions}))}_disconnectTooltip(){this._tooltipHandle=i(this._tooltipHandle),this._tooltipObject=null,this._tooltipUndoRecord=null,this._tooltip.clear()}_syncManipulators(){for(let[e,t]of this._manipulatorByObject)this._syncManipulator(e,t);this._syncInteractionVisuals()}_syncManipulator(e,t){let n=e.origin;if(t.available=this.visible&&e.visible&&n!=null,t.interactive=this.manipulatorsInteractive&&(this._grabbedManipulator==null||this._grabbedManipulator===t),n!=null&&(t.elevationAlignedLocation=n),e.item.type!==`target`)return;let r=this.analysisViewData.computations.find(t=>t.target===e.item),i=r==null||!r.computationResult.isValid?_.undefined:r.computationResult.isTargetVisible?_.visible:_.occluded;t.state=this.interacting&&t.selected?v(i):i}_syncInteractionVisuals(){let e=this._interactionVisuals,t=this._visualsManipulator,n=this.visible&&this.analysisViewData.visible;if(e==null||t==null||!n){e?.hide();return}let r=[...this._manipulatorByObject.entries()].find(([e])=>e.item.type===`observer`)?.[1];if(r==null){e.hide();return}let i=t===r?null:p(r.renderLocation,t.renderLocation,F);e.update({target:t.renderLocation,lineVerticalPlaneSegment:i,visible:!0})}};e([l({constructOnly:!0})],L.prototype,`analysisViewData`,void 0),e([l({constructOnly:!0})],L.prototype,`snappingManager`,void 0),e([l({constructOnly:!0})],L.prototype,`view`,void 0),e([l()],L.prototype,`automaticManipulatorSelection`,void 0),e([l()],L.prototype,`removeIncompleteOnCancel`,void 0),e([l()],L.prototype,`interacting`,void 0),e([l()],L.prototype,`manipulatorsInteractive`,void 0),e([l()],L.prototype,`_grabbedManipulator`,void 0),e([l()],L.prototype,`_manipulatorsToHide`,null),e([l()],L.prototype,`updating`,null),L=e([u(`esri.views.3d.analysis.LineOfSight.LineOfSightItemTool`)],L);export{L as LineOfSightItemTool};
@@ -1,4 +1,6 @@
1
1
  import type LineOfSightAnalysis from "../../../analysis/LineOfSightAnalysis.js";
2
+ import type LineOfSightAnalysisObserver from "../../../analysis/LineOfSightAnalysisObserver.js";
3
+ import type LineOfSightAnalysisTarget from "../../../analysis/LineOfSightAnalysisTarget.js";
2
4
  import type Collection from "../../../core/Collection.js";
3
5
  import type AnalysisView3D from "./AnalysisView3D.js";
4
6
  import type LineOfSightAnalysisResult from "./LineOfSightAnalysisResult.js";
@@ -73,6 +75,28 @@ export default abstract class LineOfSightAnalysisView3D extends AnalysisView3D {
73
75
  * ```
74
76
  */
75
77
  get results(): Collection<LineOfSightAnalysisResult | null | undefined>;
78
+ /**
79
+ * The observer or target currently selected for interactive editing. Use the item's `type` property to determine
80
+ * whether it is an observer or a target.
81
+ *
82
+ * @since 5.2
83
+ * @example
84
+ * ```ts
85
+ * const analysisView = await view.whenAnalysisView(analysis);
86
+ * analysisView.interactive = true;
87
+ *
88
+ * reactiveUtils.watch(() => analysisView.selectedItem, (item) => {
89
+ * if (item?.type === "observer") {
90
+ * const observer = item; // LineOfSightAnalysisObserver
91
+ * console.log("Selected observer:", observer.position);
92
+ * } else if (item?.type === "target") {
93
+ * const target = item; // LineOfSightAnalysisTarget
94
+ * console.log("Selected target:", target.position);
95
+ * }
96
+ * });
97
+ * ```
98
+ */
99
+ get selectedItem(): LineOfSightAnalysisObserver | LineOfSightAnalysisTarget | null | undefined;
76
100
  /**
77
101
  * The analysis view type.
78
102
  *
@@ -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/Collection.js";import"../../../../core/has.js";import{mapCollection as n}from"../../../../core/mapCollectionUtils.js";import{destroyMaybe as r,removeMaybe as i}from"../../../../core/maybe.js";import{watch as a,sync as o,initial as s}from"../../../../core/reactiveUtils.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as u}from"../../../../core/support/UpdatingHandles.js";import{ViewshedInteractionVisuals as d}from"./ViewshedInteractionVisuals.js";import{ViewshedSnappingController as f}from"./ViewshedSnappingController.js";import{ViewshedSubTool as p}from"./ViewshedSubTool.js";import{findSubTool as m}from"./viewshedSubToolUtils.js";import{connectTooltipToManipulatedObject as h}from"../../interactive/editingTools/tooltipUtils3D.js";import{InteractiveToolBase as g}from"../../../interactive/InteractiveToolBase.js";import{sketchKeys as _}from"../../../interactive/keybindings.js";import{bindViewToolOptions as v}from"../../../interactive/options/bindViewToolOptions.js";import y from"../../../interactive/options/InteractiveToolOptions.js";import{enterInputModeIfAvailable as b,makeTooltip as x}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{MovePointTooltipInfo as S}from"../../../interactive/tooltip/infos/MovePointTooltipInfo.js";let C=class extends g{constructor(e){super(e),this.subToolHandles=new t,this.removeIncompleteOnCancel=!1,this.automaticManipulatorSelection=!1,this.multiTouchEnabled=!1,this._selectedManipulator=null,this._observerToolOptions=new y,this._observerTooltipConnectionHandle=null,this._updatingHandles=new u}initialize(){let{snappingManager:e,view:t}=this;this._interactionVisuals=new d({view:t}),this._snappingController=new f({snappingManager:e,view:t}),this._initializeObserverTooltip(t);let r=this.analysisViewData.viewshedComputedDataHandles;this.subToolHandles=n(()=>r,({viewshedComputedData:e})=>{let t=new p({analysis:this.analysis,analysisViewData:this.analysisViewData,parentTool:this,view:this.view,viewshedComputedData:e});return{subTool:t,remove:()=>{this.selectedViewshed===e.viewshed&&(this.selectedViewshed=null),t.destroy()}}}),this.addHandles([v(this._observerToolOptions,()=>t.options),a(()=>this.firstGrabbedManipulator,e=>{if(e!=null){let t=this._findSubTool(e)?.viewshed;this.selectedViewshed=t,this._selectManipulator(e)}else this._selectedSubTool?.onManipulatorSelectionChanged()},o),this._updatingHandles.add(()=>{let e=this.selectedViewshedComputedData;return e==null?null:{subTool:this._selectedSubTool,observer:e.elevationAlignedObserverRenderSpace,target:e.elevationAlignedTargetRenderSpace}},e=>{if(e==null)return;let{subTool:t,observer:n,target:r}=e;t?.moveInteractionState.dragging?this._updateInteractionVisualsLocation(n,!0):t?.scaleOrientInteractionState.dragging&&this._updateInteractionVisualsLocation(r,!1)},s),this._updatingHandles.add(()=>this.analysisViewData.visible,()=>this.updateInteractionVisualsVisibility(),s),this._updatingHandles.add(()=>this.selectedViewshed,e=>{let t=this._selectedManipulator,n=this._selectedSubTool;this._connectObserverTooltip(n),e==null?this._selectManipulator(null):(t==null||!n.hasManipulator(t))&&this._selectManipulator(n.observerManipulator)},s)])}destroy(){this._selectManipulator(null),this._disconnectObserverTooltip(),r(this.subToolHandles),r(this._interactionVisuals),r(this._snappingController),r(this._observerTooltip),this._updatingHandles.destroy()}get updating(){return!!this._snappingController?.updating||this._updatingHandles.updating||this.subToolHandles.some(({subTool:e})=>e.updating)}get grabbing(){return this.subToolHandles.some(({subTool:e})=>e.grabbing)}get cursor(){return null}get selectedViewshed(){return this.analysisViewData.selectedViewshed}set selectedViewshed(e){this.analysisViewData.selectedViewshed=e}get selectedViewshedComputedData(){return this._selectedSubTool?.viewshedComputedData}onManipulatorSelectionChanged(){this.subToolHandles.forEach(({subTool:e})=>e.onManipulatorSelectionChanged())}updateInteractionVisualsVisibility(e=!1){let t=this._selectedSubTool,n=this.selectedViewshedComputedData;if(t==null||n==null){this._interactionVisuals?.setVisibility(!1);return}let r=t.moveInteractionState,i=e?r.grabbing:r.dragging,a=t.scaleOrientInteractionState,o=e?a.grabbing:a.dragging;if(!(this.analysisViewData.visible&&(i||o))){this._interactionVisuals?.setVisibility(!1);return}let s=i?n.elevationAlignedObserverRenderSpace:n.elevationAlignedTargetRenderSpace;this._interactionVisuals?.update({location:s,laserlineVisible:!0,verticalLineVisible:i,intersectsWorldUp:i})}createObserverMoveSnappingPipeline(e,t,n,r=!1){return this._snappingController.createObserverMoveSnappingPipeline(e,t,n,r)}onActivate(){this.updateInteractionVisualsVisibility()}onDeactivate(){this.updateInteractionVisualsVisibility()}onInputEvent(e){if(!this.destroyed&&!b(e,this._observerTooltip))switch(e.type){case`key-down`:_.cancel===e.key?this._cancelKeyHandler(e):_.delete.includes(e.key)&&this._deleteKeyHandler(e);break;case`hold`:this.updateInteractionVisualsVisibility(!0)}}_updateInteractionVisualsLocation(e,t){this._interactionVisuals?.updateLocation(e,t)}_initializeObserverTooltip(e){let t=this._observerToolOptions;this._observerTooltip=x(()=>({view:e,options:t.tooltips})),this._observerTooltipInfo=new S({toolOptions:t,viewType:e.type})}_connectObserverTooltip(e){if(this._disconnectObserverTooltip(),e==null){this._observerTooltip.clear();return}let t=e.observerManipulatedObject;this._observerTooltipConnectionHandle=h(this._observerTooltip,t,()=>({toolOptions:this._observerToolOptions,activeTooltipInfo:this._observerTooltipInfo,callbacks:{onBeforeUpdate:()=>this.updateInteractionVisualsVisibility(),onMoveStart:()=>{},onMove:()=>{},onMoveStop:()=>{},onRotateStart:()=>{},onRotate:()=>{},onRotateStop:()=>{},onScaleStart:()=>{},onScale:()=>{},onScaleStop:()=>{}}}))}_disconnectObserverTooltip(){this._observerTooltipConnectionHandle=i(this._observerTooltipConnectionHandle)}_cancelKeyHandler(e){this.grabbing||(this.selectedViewshed=null,e.stopPropagation())}_deleteKeyHandler(e){let t=this.selectedViewshed;t!=null&&(this.analysis.viewsheds.remove(t),e.stopPropagation())}get _selectedSubTool(){return this._findSubTool(this.selectedViewshed)}_findSubTool(e){return m(this.subToolHandles,e)}_selectManipulator(e){let t=this._selectedManipulator;t!==e&&(this._selectedManipulator=e,t!=null&&(t.selected=!1),e!=null&&(e.selected=!0),this._findSubTool(t)?.onManipulatorSelectionChanged(),this._selectedSubTool?.onManipulatorSelectionChanged())}get test(){}};e([c({constructOnly:!0})],C.prototype,`analysis`,void 0),e([c({constructOnly:!0})],C.prototype,`analysisViewData`,void 0),e([c({constructOnly:!0})],C.prototype,`intersector`,void 0),e([c({constructOnly:!0})],C.prototype,`snappingManager`,void 0),e([c({constructOnly:!0})],C.prototype,`view`,void 0),e([c()],C.prototype,`subToolHandles`,void 0),e([c()],C.prototype,`removeIncompleteOnCancel`,void 0),e([c()],C.prototype,`automaticManipulatorSelection`,void 0),e([c()],C.prototype,`multiTouchEnabled`,void 0),e([c()],C.prototype,`_selectedManipulator`,void 0),e([c()],C.prototype,`_interactionVisuals`,void 0),e([c()],C.prototype,`_snappingController`,void 0),e([c()],C.prototype,`_observerTooltip`,void 0),e([c()],C.prototype,`_observerTooltipInfo`,void 0),e([c()],C.prototype,`updating`,null),e([c()],C.prototype,`grabbing`,null),e([c()],C.prototype,`cursor`,null),e([c()],C.prototype,`selectedViewshed`,null),e([c()],C.prototype,`selectedViewshedComputedData`,null),e([c()],C.prototype,`_selectedSubTool`,null),C=e([l(`esri.views.3d.analysis.Viewshed.ViewshedEditTool`)],C);export{C as ViewshedEditTool};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Collection.js";import"../../../../core/has.js";import{mapCollection as n}from"../../../../core/mapCollectionUtils.js";import{destroyMaybe as r,removeMaybe as i}from"../../../../core/maybe.js";import{watch as a,sync as o,initial as s}from"../../../../core/reactiveUtils.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as u}from"../../../../core/support/UpdatingHandles.js";import{ViewshedInteractionVisuals as d}from"./ViewshedInteractionVisuals.js";import{ViewshedSnappingController as f}from"./ViewshedSnappingController.js";import{ViewshedSubTool as p}from"./ViewshedSubTool.js";import{findSubTool as m}from"./viewshedSubToolUtils.js";import{connectTooltipToManipulatedObject as h}from"../../interactive/editingTools/tooltipUtils3D.js";import{InteractiveToolBase as g}from"../../../interactive/InteractiveToolBase.js";import{sketchKeys as _}from"../../../interactive/keybindings.js";import{bindViewToolOptions as v}from"../../../interactive/options/bindViewToolOptions.js";import y from"../../../interactive/options/InteractiveToolOptions.js";import{enterInputModeIfAvailable as b,makeTooltip as x}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{MovePointTooltipInfo as S}from"../../../interactive/tooltip/infos/MovePointTooltipInfo.js";const C=Symbol(`inactiveManipulatorDisplay`);let w=class extends g{constructor(e){super(e),this.subToolHandles=new t,this.removeIncompleteOnCancel=!1,this.automaticManipulatorSelection=!1,this.multiTouchEnabled=!1,this._selectedManipulator=null,this._observerToolOptions=new y,this._observerTooltipConnectionHandle=null,this._updatingHandles=new u}initialize(){let{snappingManager:e,view:t}=this;this._interactionVisuals=new d({view:t}),this._snappingController=new f({snappingManager:e,view:t}),this._initializeObserverTooltip(t);let r=this.analysisViewData.viewshedComputedDataHandles;this.subToolHandles=n(()=>r,({viewshedComputedData:e})=>{let t=new p({analysis:this.analysis,analysisViewData:this.analysisViewData,parentTool:this,view:this.view,viewshedComputedData:e});return{subTool:t,remove:()=>{this.selectedViewshed===e.viewshed&&(this.selectedViewshed=null),t.destroy()}}}),this.addHandles([v(this._observerToolOptions,()=>t.options),a(()=>this.firstGrabbedManipulator,e=>{if(e!=null){let t=this._findSubTool(e)?.viewshed;this.selectedViewshed=t,this._selectManipulator(e)}else this._selectedSubTool?.onManipulatorSelectionChanged()},o),a(()=>({grabbedManipulator:this.firstGrabbedManipulator,subTools:this.subToolHandles.map(({subTool:e})=>e).toArray()}),({grabbedManipulator:e,subTools:t})=>{let n=e==null?[]:t.map(t=>t.hideInactiveManipulators(e));this.removeHandles(C),this.addHandles(n,C),t.forEach(t=>t.setInteractive(t=>e==null||t===e))},o),this._updatingHandles.add(()=>{let e=this.selectedViewshedComputedData;return e==null?null:{subTool:this._selectedSubTool,observer:e.elevationAlignedObserverRenderSpace,target:e.elevationAlignedTargetRenderSpace}},e=>{if(e==null)return;let{subTool:t,observer:n,target:r}=e;t?.moveInteractionState.dragging?this._updateInteractionVisualsLocation(n,!0):t?.scaleOrientInteractionState.dragging&&this._updateInteractionVisualsLocation(r,!1)},s),this._updatingHandles.add(()=>this.analysisViewData.visible,()=>this.updateInteractionVisualsVisibility(),s),this._updatingHandles.add(()=>this.selectedViewshed,e=>{let t=this._selectedManipulator,n=this._selectedSubTool;this._connectObserverTooltip(n),e==null?this._selectManipulator(null):(t==null||!n.hasManipulator(t))&&this._selectManipulator(n.observerManipulator)},s)])}destroy(){this.removeHandles(C),this._selectManipulator(null),this._disconnectObserverTooltip(),r(this.subToolHandles),r(this._interactionVisuals),r(this._snappingController),r(this._observerTooltip),this._updatingHandles.destroy()}get updating(){return!!this._snappingController?.updating||this._updatingHandles.updating||this.subToolHandles.some(({subTool:e})=>e.updating)}get grabbing(){return this.subToolHandles.some(({subTool:e})=>e.grabbing)}get cursor(){return null}get selectedViewshed(){return this.analysisViewData.selectedViewshed}set selectedViewshed(e){this.analysisViewData.selectedViewshed=e}get selectedViewshedComputedData(){return this._selectedSubTool?.viewshedComputedData}onManipulatorSelectionChanged(){this.subToolHandles.forEach(({subTool:e})=>e.onManipulatorSelectionChanged())}updateInteractionVisualsVisibility(e=!1){let t=this._selectedSubTool,n=this.selectedViewshedComputedData;if(t==null||n==null){this._interactionVisuals?.setVisibility(!1);return}let r=t.moveInteractionState,i=e?r.grabbing:r.dragging,a=t.scaleOrientInteractionState,o=e?a.grabbing:a.dragging;if(!(this.analysisViewData.visible&&(i||o))){this._interactionVisuals?.setVisibility(!1);return}let s=i?n.elevationAlignedObserverRenderSpace:n.elevationAlignedTargetRenderSpace;this._interactionVisuals?.update({location:s,laserlineVisible:!0,verticalLineVisible:i,intersectsWorldUp:i})}createObserverMoveSnappingPipeline(e,t,n,r=!1){return this._snappingController.createObserverMoveSnappingPipeline(e,t,n,r)}onActivate(){this.updateInteractionVisualsVisibility()}onDeactivate(){this.updateInteractionVisualsVisibility()}onInputEvent(e){if(!this.destroyed&&!b(e,this._observerTooltip))switch(e.type){case`key-down`:_.cancel===e.key?this._cancelKeyHandler(e):_.delete.includes(e.key)&&this._deleteKeyHandler(e);break;case`hold`:this.updateInteractionVisualsVisibility(!0)}}_updateInteractionVisualsLocation(e,t){this._interactionVisuals?.updateLocation(e,t)}_initializeObserverTooltip(e){let t=this._observerToolOptions;this._observerTooltip=x(()=>({view:e,options:t.tooltips})),this._observerTooltipInfo=new S({toolOptions:t,viewType:e.type})}_connectObserverTooltip(e){if(this._disconnectObserverTooltip(),e==null){this._observerTooltip.clear();return}let t=e.observerManipulatedObject;this._observerTooltipConnectionHandle=h(this._observerTooltip,t,()=>({toolOptions:this._observerToolOptions,activeTooltipInfo:this._observerTooltipInfo,callbacks:{onBeforeUpdate:()=>this.updateInteractionVisualsVisibility(),onMoveStart:()=>{},onMove:()=>{},onMoveStop:()=>{},onRotateStart:()=>{},onRotate:()=>{},onRotateStop:()=>{},onScaleStart:()=>{},onScale:()=>{},onScaleStop:()=>{}}}))}_disconnectObserverTooltip(){this._observerTooltipConnectionHandle=i(this._observerTooltipConnectionHandle)}_cancelKeyHandler(e){this.grabbing||(this.selectedViewshed=null,e.stopPropagation())}_deleteKeyHandler(e){let t=this.selectedViewshed;t!=null&&(this.analysis.viewsheds.remove(t),e.stopPropagation())}get _selectedSubTool(){return this._findSubTool(this.selectedViewshed)}_findSubTool(e){return m(this.subToolHandles,e)}_selectManipulator(e){let t=this._selectedManipulator;t!==e&&(this._selectedManipulator=e,t!=null&&(t.selected=!1),e!=null&&(e.selected=!0),this._findSubTool(t)?.onManipulatorSelectionChanged(),this._selectedSubTool?.onManipulatorSelectionChanged())}get test(){}};e([c({constructOnly:!0})],w.prototype,`analysis`,void 0),e([c({constructOnly:!0})],w.prototype,`analysisViewData`,void 0),e([c({constructOnly:!0})],w.prototype,`intersector`,void 0),e([c({constructOnly:!0})],w.prototype,`snappingManager`,void 0),e([c({constructOnly:!0})],w.prototype,`view`,void 0),e([c()],w.prototype,`subToolHandles`,void 0),e([c()],w.prototype,`removeIncompleteOnCancel`,void 0),e([c()],w.prototype,`automaticManipulatorSelection`,void 0),e([c()],w.prototype,`multiTouchEnabled`,void 0),e([c()],w.prototype,`_selectedManipulator`,void 0),e([c()],w.prototype,`_interactionVisuals`,void 0),e([c()],w.prototype,`_snappingController`,void 0),e([c()],w.prototype,`_observerTooltip`,void 0),e([c()],w.prototype,`_observerTooltipInfo`,void 0),e([c()],w.prototype,`updating`,null),e([c()],w.prototype,`grabbing`,null),e([c()],w.prototype,`cursor`,null),e([c()],w.prototype,`selectedViewshed`,null),e([c()],w.prototype,`selectedViewshedComputedData`,null),e([c()],w.prototype,`_selectedSubTool`,null),w=e([l(`esri.views.3d.analysis.Viewshed.ViewshedEditTool`)],w);export{w as ViewshedEditTool};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{EventedAccessor as t}from"../../../../core/Evented.js";import{destroyMaybe as n}from"../../../../core/maybe.js";import{watch as r,syncAndInitial as i}from"../../../../core/reactiveUtils.js";import{property as a,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{tryProject as s}from"../../../../geometry/projectionUtils.js";import{absoluteHeightElevationInfo as c}from"../../../../support/elevationInfoUtils.js";import{viewingModeFromString as l}from"../../../ViewingMode.js";import{EditGeometryOperations as u}from"../../../interactive/editGeometry/EditGeometryOperations.js";const d=Symbol(`observerOperations`);let f=class extends t{constructor(e){super(e),this._operations=null}initialize(){this.addHandles(r(()=>this.subTool.observer,e=>this._syncObserver(e),i))}destroy(){this.removeHandles(d),this._operations=n(this._operations)}get operations(){return this._operations}get elevationInfo(){return this.subTool.viewshedComputedData?.effectiveElevationInfo??c}get visible(){return this.subTool.analysisViewData.visible&&(this.subTool.viewshedComputedData?.valid??!1)}get isDraped(){return!1}get origin(){return this.subTool.observer}get updating(){return!1}toMap(e){return this.view.toMap(e)}_syncObserver(e){let t=e==null?null:s(e,this.view.spatialReference);if(t==null){this.removeHandles(d),this._operations=n(this._operations),this.emit(`committed`);return}let r=this._operations?.data.geometry;if(r?.type===`point`&&r.equals(t))return;if(this._operations?.trySetGeometry(t)){this.emit(`modified-externally`),this.emit(`committed`);return}this.removeHandles(d),this._operations=n(this._operations);let i=u.fromGeometry(t,l(this.view.viewingMode));this._operations=i,this.addHandles(i.data.on(`change`,()=>{let e=i.data.geometry;e.type===`point`&&(this.subTool.observer=e,this.emit(`committed`))}),d),this.emit(`committed`)}};e([a({constructOnly:!0})],f.prototype,`view`,void 0),e([a({constructOnly:!0})],f.prototype,`subTool`,void 0),f=e([o(`esri.views.3d.analysis.Viewshed.ViewshedObserverManipulatedObject3D`)],f);export{f as ViewshedObserverManipulatedObject3D};
2
+ import{__decorate as e}from"tslib";import{EventedAccessor as t}from"../../../../core/Evented.js";import{destroyMaybe as n}from"../../../../core/maybe.js";import{watch as r,syncAndInitial as i}from"../../../../core/reactiveUtils.js";import{property as a,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{tryProject as s}from"../../../../geometry/projectionUtils.js";import{absoluteHeightElevationInfo as c}from"../../../../support/elevationInfoUtils.js";import l from"../../../../symbols/support/ElevationInfo.js";import{viewingModeFromString as u}from"../../../ViewingMode.js";import{EditGeometryOperations as d}from"../../../interactive/editGeometry/EditGeometryOperations.js";const f=Symbol(`observerOperations`);let p=class extends t{constructor(e){super(e),this._operations=null}initialize(){this.addHandles(r(()=>this.subTool.observer,e=>this._syncObserver(e),i))}destroy(){this.removeHandles(f),this._operations=n(this._operations)}get operations(){return this._operations}get elevationInfo(){return this.subTool.viewshedComputedData?.effectiveElevationInfo??c}get visible(){return this.subTool.analysisViewData.visible&&(this.subTool.viewshedComputedData?.valid??!1)}get isDraped(){return this.elevationInfo.mode===`on-the-ground`}get origin(){return this.subTool.observer}get updating(){return!1}toMap(e){return this.view.toMap(e)}setElevationMode(e){let t=this.subTool.viewshed;if(!t?.observer||e===this.elevationInfo.mode)return;let n=t.elevationInfo?.clone()??new l;n.mode=e,t.elevationInfo=n,this.emit(`committed`)}_syncObserver(e){let t=e==null?null:s(e,this.view.spatialReference);if(t==null){this.removeHandles(f),this._operations=n(this._operations),this.emit(`committed`);return}let r=this._operations?.data.geometry;if(r?.type===`point`&&r.equals(t))return;if(this._operations?.trySetGeometry(t)){this.emit(`modified-externally`),this.emit(`committed`);return}this.removeHandles(f),this._operations=n(this._operations);let i=d.fromGeometry(t,u(this.view.viewingMode));this._operations=i,this.addHandles(i.data.on(`change`,()=>{let e=i.data.geometry;e.type===`point`&&(this.subTool.observer=e,this.emit(`committed`))}),f),this.emit(`committed`)}};e([a({constructOnly:!0})],p.prototype,`view`,void 0),e([a({constructOnly:!0})],p.prototype,`subTool`,void 0),p=e([o(`esri.views.3d.analysis.Viewshed.ViewshedObserverManipulatedObject3D`)],p);export{p as ViewshedObserverManipulatedObject3D};
@@ -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"../../../../analysis/Viewshed.js";import n from"../../../../core/Accessor.js";import"../../../../core/has.js";import{createAbortError as r,throwIfAborted as i,onAbort as a}from"../../../../core/promiseUtils.js";import{watch as o,syncAndInitial as s,sync as c}from"../../../../core/reactiveUtils.js";import{property as l,subclass as u}from"../../../../core/accessorSupport/decorators.js";import{create as d}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{absoluteHeightElevationInfo as f}from"../../../../support/elevationInfoUtils.js";import{createDrawTool as p,getFeatureReference as m}from"./placementUtils.js";import{detachToolFromView as h}from"./toolLifecycleUtils.js";import g from"./ViewshedPlacementOperation.js";import{createViewshedPlacementRootPluginConfiguration as _}from"./ViewshedPlacementRootPlugin.js";import{computeParametersFromTargetPoint as v}from"./viewshedToolUtils.js";import{vectorToRender as y}from"../../interactive/support/viewUtils.js";import{DrawManipulator3D as b}from"../../../draw/DrawManipulator3D.js";import{ViewEventPriorities as x}from"../../../input/InputManager.js";import{sketchKeys as S}from"../../../interactive/keybindings.js";import{bindViewToolOptions as C}from"../../../interactive/options/bindViewToolOptions.js";import w from"../../../interactive/options/InteractiveToolOptions.js";const T=Symbol(`hiddenManipulatorHandle`);let E=class extends n{constructor(e){super(e),this.placementMode=`multiple`,this.observerPlacementElevationInfo=null,this.stagedViewshed=null,this._placeOperation=null,this._drawTool=null,this._renderer=null,this._toolOptions=new w,this._observerScenePoint=d(),this._targetScenePoint=d(),this._mapPointVector=d(),this.creationState=null}initialize(){this.addHandles([C(this._toolOptions,()=>this.view.options),o(()=>[this._drawTool?.tooltipManager,this.creationState===`placing-observer`],([e,t])=>{e&&(e.enabled=t)},s),this.view.on(`key-down`,e=>this._handleKeyDown(e),x.DEFAULT),o(()=>{let{stagedViewshed:e}=this;return{stagedViewshed:e,stagedViewshedInAnalysis:e!=null&&this.analysis.viewsheds.includes(e)}},({stagedViewshed:e,stagedViewshedInAnalysis:t})=>{e!=null&&!t&&this.analysis.viewsheds.add(e)},c)])}destroy(){this._cancelPlacementOperation()}get updating(){return!!this._drawTool?.updating}get active(){return!!this._drawTool?.active}startPlaceOperation(e,t){this._removeStaged(),this.creationState=null,this._rejectPlaceOperation(r()),i(t);let{resolve:n,reject:o,promise:s}=Promise.withResolvers(),c=a(t,()=>this._cancelPlacementOperation());return this._placeOperation=new g({abortHandle:c,reject:o,resolve:n}),this.placementMode=e,this.observerPlacementElevationInfo=t?.elevationInfo,this.callbacks.setSelectedViewshed(null),this._startObserverPlacement(),s}cancelPlaceOperation(){(this.creationState!=null||this._placeOperation!=null)&&(this._cancelPlacementOperation(),this.callbacks.cancelTool())}_handleDeleteDuringCreation(){return this.creationState!=null&&(this._destroyDrawTool(),this._removeStaged(),this.callbacks.setSelectedViewshed(null),this._startObserverPlacement(),!0)}_handleKeyDown(e){this.creationState!=null&&(S.cancel===e.key?(this._handleCancelDuringCreation(),e.stopPropagation(),e.preventDefault()):S.delete.includes(e.key)&&(this._handleDeleteDuringCreation(),e.stopPropagation(),e.preventDefault()))}_handleCancelDuringCreation(){if(this._removeStaged()&&this.placementMode===`multiple`){this.callbacks.setSelectedViewshed(null),this._startObserverPlacement();return}this._destroyDrawTool(),this._abortCreation()}_removeStaged(){let{stagedViewshed:e}=this;return this.stagedViewshed=null,e?(this.analysis.viewsheds.remove(e),!0):!1}_cancelPlacementOperation(){this._destroyDrawTool(),this._removeStaged(),this.creationState=null,this._finishPlaceOperation()}_abortCreation(){this.callbacks.cancelTool(),this.creationState=null,this._finishPlaceOperation()}_handleObserverPlacementComplete(e,n,r){let i=new t({observer:e,elevationInfo:this.observerPlacementElevationInfo,feature:r});this.analysis.viewsheds.add(i),this.stagedViewshed=i,this.creationState=`placing-target`,this._updateStagedViewshed(n),this.callbacks.setSelectedViewshed(null)}_onCancel(e){let t=this._removeStaged();if(this.creationState===`placing-observer`){if(t&&this.placementMode===`multiple`){this.callbacks.setSelectedViewshed(null),this._startObserverPlacement();return}this._destroyDrawTool(e),this._abortCreation();return}if(!t){this._destroyDrawTool(e),this._abortCreation();return}if(this.creationState=`placing-observer`,this.callbacks.setSelectedViewshed(null),this.placementMode===`multiple`){this._startPointPlacement();return}this._destroyDrawTool(e),this._abortCreation()}_handleTargetPlacementComplete(e){this._updateStagedViewshed(e);let t=this.stagedViewshed;return t?.valid?(this._placeOperation?.markPlacedViewshed(),this.stagedViewshed=null,this.callbacks.setSelectedViewshed(t),!0):!1}_finishPlaceOperation(){this._clearPlaceOperationAndRun(e=>e?.finish())}_rejectPlaceOperation(e){this._clearPlaceOperationAndRun(t=>t?.reject(e))}_clearPlaceOperationAndRun(e){let t=this._placeOperation;this._placeOperation=null,this.observerPlacementElevationInfo=null,e(t)}_startObserverPlacement(){this.creationState=`placing-observer`,this._startPointPlacement()}_startPointPlacement(){this._drawTool&&this._destroyDrawTool(this._drawTool);let{drawTool:e,renderer:t}=p({analysisViewData:this.analysisViewData,snappingManager:this.snappingManager,view:this.view,toolOptions:this._toolOptions,elevationInfo:this._observerDrawToolElevationInfo,getSnapToSceneEnabled:()=>this._snapToSceneEnabled,onCancel:e=>this._onCancel(e),onComplete:e=>this._onComplete(e),onManipulatorCountChange:e=>this._onManipulatorCountChange(e),isPlacingObserver:()=>this.creationState===`placing-observer`});this._drawTool=e,this._renderer=t;try{this.view.addAndActivateTool(e),e.begin([_({mode:this.placementMode,onObserverComplete:(e,t)=>this._onObserverMapPointComplete(e,t),onTargetComplete:e=>this._onTargetMapPointComplete(e),onObserverPreview:e=>this._onObserverMapPointPreview(e),onTargetPreview:e=>this._onTargetMapPointPreview(e)})])}catch(t){this._destroyDrawTool(e),this._rejectPlaceOperation(t instanceof Error?t:Error(String(t)))}}_onComplete(e){this._removeStaged(),this._finishPlaceOperation(),this._destroyDrawTool(e),this.creationState=null}_onObserverMapPointComplete(e,t){let{intersector:n,snappingManager:r,view:i}=this,a=e.clone(),o=this._toScenePoint(e,this._targetScenePoint,this._observerDrawToolElevationInfo),s=m({intersector:n,snappingManager:r,screenPoint:t,view:i});this._renderer?.updatePlacementLocation(o),this._handleObserverPlacementComplete(a,o,s),this._setDrawToolElevationInfo(f)}_onTargetMapPointComplete(e){let t=this._toScenePoint(e,this._targetScenePoint);return this._renderer?.updatePlacementLocation(t),this._handleTargetPlacementComplete(t)?(this.placementMode===`multiple`&&(this.creationState=`placing-observer`,this._setDrawToolElevationInfo(this._observerDrawToolElevationInfo),this._onObserverMapPointPreview(e)),!0):!1}_onObserverMapPointPreview(e){let t=e.clone(),n=this._toScenePoint(t,this._observerScenePoint,this._observerDrawToolElevationInfo);this._renderer?.updatePlacementLocation(n)}_onTargetMapPointPreview(e){let t=this._toScenePoint(e,this._targetScenePoint);this._renderer?.updatePlacementLocation(t),this._updateStagedViewshed(t)}_setDrawToolElevationInfo(e){let t=this._drawTool;t&&(t.elevationInfo=e)}get _observerDrawToolElevationInfo(){return this.observerPlacementElevationInfo??f}get _snapToSceneEnabled(){let e=this.observerPlacementElevationInfo?.mode;return this.creationState!==`placing-observer`||e==null||e===`absolute-height`?null:!1}_onManipulatorCountChange(e){e.removeHandles(T);let t=[];e.manipulators.forEach(({manipulator:e})=>{e instanceof b&&t.push(e.disableDisplay())}),e.addHandles(t,T)}_destroyDrawTool(e=this._drawTool){this._drawTool=null,this._renderer=null,e&&h(this.view,e)}_toScenePoint(e,t,n=f){let{x:r,y:i,z:a,spatialReference:o}=e,s=this._mapPointVector;return s[0]=r,s[1]=i,s[2]=a??0,y(s,o,n,this.view,t)}_updateStagedViewshed(e){let t=this.stagedViewshed;if(!t)return;let n=this.callbacks.findViewshedComputedData(t);if(!n)return;let{heading:r,tilt:i,farDistance:a}=v(this.view,n,e);t.farDistance=a,t.tilt=i,t.heading=r}get test(){}};e([l({constructOnly:!0})],E.prototype,`analysis`,void 0),e([l({constructOnly:!0})],E.prototype,`analysisViewData`,void 0),e([l({constructOnly:!0})],E.prototype,`intersector`,void 0),e([l({constructOnly:!0})],E.prototype,`snappingManager`,void 0),e([l({constructOnly:!0})],E.prototype,`view`,void 0),e([l({constructOnly:!0})],E.prototype,`callbacks`,void 0),e([l()],E.prototype,`placementMode`,void 0),e([l()],E.prototype,`observerPlacementElevationInfo`,void 0),e([l()],E.prototype,`stagedViewshed`,void 0),e([l()],E.prototype,`_placeOperation`,void 0),e([l()],E.prototype,`_drawTool`,void 0),e([l()],E.prototype,`_renderer`,void 0),e([l()],E.prototype,`_toolOptions`,void 0),e([l()],E.prototype,`updating`,null),e([l()],E.prototype,`active`,null),e([l()],E.prototype,`creationState`,void 0),E=e([u(`esri.views.3d.analysis.Viewshed.ViewshedPlacementController`)],E);export{E as ViewshedPlacementController};
2
+ import{__decorate as e}from"tslib";import t from"../../../../analysis/Viewshed.js";import n from"../../../../core/Accessor.js";import"../../../../core/has.js";import{createAbortError as r,throwIfAborted as i,onAbort as a}from"../../../../core/promiseUtils.js";import{watch as o,sync as s}from"../../../../core/reactiveUtils.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{create as u}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getConvertedElevation as d,absoluteHeightElevationInfo as f}from"../../../../support/elevationInfoUtils.js";import p from"../../../../symbols/support/ElevationInfo.js";import{createDrawTool as m,getFeatureReference as h}from"./placementUtils.js";import{detachToolFromView as g}from"./toolLifecycleUtils.js";import _ from"./ViewshedPlacementOperation.js";import{createViewshedPlacementRootPluginConfiguration as v}from"./ViewshedPlacementRootPlugin.js";import{computeParametersFromTargetPoint as y}from"./viewshedToolUtils.js";import{vectorToRender as b}from"../../interactive/support/viewUtils.js";import{DrawManipulator3D as x}from"../../../draw/DrawManipulator3D.js";import{ViewEventPriorities as S}from"../../../input/InputManager.js";import{sketchKeys as C}from"../../../interactive/keybindings.js";import{bindViewToolOptions as w}from"../../../interactive/options/bindViewToolOptions.js";import T from"../../../interactive/options/InteractiveToolOptions.js";const E=Symbol(`hiddenManipulatorHandle`);let D=class extends n{constructor(e){super(e),this.placementMode=`multiple`,this.observerPlacementElevationInfo=null,this.stagedViewshed=null,this._placeOperation=null,this._drawTool=null,this._renderer=null,this._toolOptions=new T,this._observerScenePoint=u(),this._targetScenePoint=u(),this._mapPointVector=u(),this.creationState=null}initialize(){this.addHandles([w(this._toolOptions,()=>this.view.options),o(()=>[this._drawTool?.tooltipManager,this.creationState],([e,t])=>{e&&(e.enabled=t===`placing-observer`)}),o(()=>[this._drawTool?.activeTooltipInfo,this.creationState],([e,t])=>{e&&(e.elevationModeContext=t===`placing-observer`?this._elevationModeContext:null)}),this.view.on(`key-down`,e=>this._handleKeyDown(e),S.DEFAULT),o(()=>{let{stagedViewshed:e}=this;return{stagedViewshed:e,stagedViewshedInAnalysis:e!=null&&this.analysis.viewsheds.includes(e)}},({stagedViewshed:e,stagedViewshedInAnalysis:t})=>{e!=null&&!t&&this.analysis.viewsheds.add(e)},s)])}destroy(){this._cancelPlacementOperation()}get updating(){return!!this._drawTool?.updating}get active(){return!!this._drawTool?.active}get _elevationModeContext(){let e=this;return{get mode(){return e._observerDrawToolElevationInfo.mode},get disabled(){return!e._drawTool?.interactiveHandleManager?.focusedHandle?.outputMapPosition},onChange:e=>this.setElevationMode(e)}}setElevationMode(e){let t=this._drawTool,n=t?.interactiveHandleManager?.focusedHandle,r=n?.outputMapPosition;if(this.creationState!==`placing-observer`||!t||!n||!r||e===this._observerDrawToolElevationInfo.mode)return;let i=this.observerPlacementElevationInfo?.clone()??new p;i.mode=e;let a=r.clone();t.activeTooltipInfo?.getConstraintFieldByName(n,`elevation`)?.locked||(a.z=d(this.view,r,this._observerDrawToolElevationInfo,i)),t.defaultZ=a.z,this.observerPlacementElevationInfo=i,this._setDrawToolElevationInfo(i),n.inputMapPosition=a.clone(),n.selectedSnappingResult=null,n.outputMapPosition=a,this._onObserverMapPointPreview(a)}startPlaceOperation(e,t){this._removeStaged(),this.creationState=null,this._rejectPlaceOperation(r()),i(t);let{resolve:n,reject:o,promise:s}=Promise.withResolvers(),c=a(t,()=>this._cancelPlacementOperation());return this._placeOperation=new _({abortHandle:c,reject:o,resolve:n}),this.placementMode=e,this.observerPlacementElevationInfo=t?.elevationInfo,this.callbacks.setSelectedViewshed(null),this._startObserverPlacement(),s}cancelPlaceOperation(){(this.creationState!=null||this._placeOperation!=null)&&(this._cancelPlacementOperation(),this.callbacks.cancelTool())}_handleDeleteDuringCreation(){return this.creationState!=null&&(this._destroyDrawTool(),this._removeStaged(),this.callbacks.setSelectedViewshed(null),this._startObserverPlacement(),!0)}_handleKeyDown(e){this.creationState!=null&&(C.cancel===e.key?(this._handleCancelDuringCreation(),e.stopPropagation(),e.preventDefault()):C.delete.includes(e.key)&&(this._handleDeleteDuringCreation(),e.stopPropagation(),e.preventDefault()))}_handleCancelDuringCreation(){if(this._removeStaged()&&this.placementMode===`multiple`){this.callbacks.setSelectedViewshed(null),this._startObserverPlacement();return}this._destroyDrawTool(),this._abortCreation()}_removeStaged(){let{stagedViewshed:e}=this;return this.stagedViewshed=null,e?(this.analysis.viewsheds.remove(e),!0):!1}_cancelPlacementOperation(){this._destroyDrawTool(),this._removeStaged(),this.creationState=null,this._finishPlaceOperation()}_abortCreation(){this.callbacks.cancelTool(),this.creationState=null,this._finishPlaceOperation()}_handleObserverPlacementComplete(e,n,r){let i=new t({observer:e,elevationInfo:this.observerPlacementElevationInfo,feature:r});this.analysis.viewsheds.add(i),this.stagedViewshed=i,this.creationState=`placing-target`,this._updateStagedViewshed(n),this.callbacks.setSelectedViewshed(null)}_onCancel(e){let t=this._removeStaged();if(this.creationState===`placing-observer`){if(t&&this.placementMode===`multiple`){this.callbacks.setSelectedViewshed(null),this._startObserverPlacement();return}this._destroyDrawTool(e),this._abortCreation();return}if(!t){this._destroyDrawTool(e),this._abortCreation();return}if(this.creationState=`placing-observer`,this.callbacks.setSelectedViewshed(null),this.placementMode===`multiple`){this._startPointPlacement();return}this._destroyDrawTool(e),this._abortCreation()}_handleTargetPlacementComplete(e){this._updateStagedViewshed(e);let t=this.stagedViewshed;return t?.valid?(this._placeOperation?.markPlacedViewshed(),this.stagedViewshed=null,this.callbacks.setSelectedViewshed(t),!0):!1}_finishPlaceOperation(){this._clearPlaceOperationAndRun(e=>e?.finish())}_rejectPlaceOperation(e){this._clearPlaceOperationAndRun(t=>t?.reject(e))}_clearPlaceOperationAndRun(e){let t=this._placeOperation;this._placeOperation=null,this.observerPlacementElevationInfo=null,e(t)}_startObserverPlacement(){this.creationState=`placing-observer`,this._startPointPlacement()}_startPointPlacement(){this._drawTool&&this._destroyDrawTool(this._drawTool);let{drawTool:e,renderer:t}=m({analysisViewData:this.analysisViewData,snappingManager:this.snappingManager,view:this.view,toolOptions:this._toolOptions,elevationInfo:this._observerDrawToolElevationInfo,getSnapToSceneEnabled:()=>this._snapToSceneEnabled,onCancel:e=>this._onCancel(e),onComplete:e=>this._onComplete(e),onManipulatorCountChange:e=>this._onManipulatorCountChange(e),isPlacingObserver:()=>this.creationState===`placing-observer`});this._drawTool=e,this._renderer=t;try{this.view.addAndActivateTool(e),e.begin([v({mode:this.placementMode,onObserverComplete:(e,t)=>this._onObserverMapPointComplete(e,t),onTargetComplete:e=>this._onTargetMapPointComplete(e),onObserverPreview:e=>this._onObserverMapPointPreview(e),onTargetPreview:e=>this._onTargetMapPointPreview(e)})])}catch(t){this._destroyDrawTool(e),this._rejectPlaceOperation(t instanceof Error?t:Error(String(t)))}}_onComplete(e){this._removeStaged(),this._finishPlaceOperation(),this._destroyDrawTool(e),this.creationState=null}_onObserverMapPointComplete(e,t){let{intersector:n,snappingManager:r,view:i}=this,a=e.clone(),o=this._toScenePoint(e,this._targetScenePoint,this._observerDrawToolElevationInfo),s=h({intersector:n,snappingManager:r,screenPoint:t,view:i});this._renderer?.updatePlacementLocation(o),this._handleObserverPlacementComplete(a,o,s),this._setDrawToolElevationInfo(f)}_onTargetMapPointComplete(e){let t=this._toScenePoint(e,this._targetScenePoint);return this._renderer?.updatePlacementLocation(t),this._handleTargetPlacementComplete(t)?(this.placementMode===`multiple`&&(this.creationState=`placing-observer`,this._setDrawToolElevationInfo(this._observerDrawToolElevationInfo),this._onObserverMapPointPreview(e)),!0):!1}_onObserverMapPointPreview(e){let t=e.clone(),n=this._toScenePoint(t,this._observerScenePoint,this._observerDrawToolElevationInfo);this._renderer?.updatePlacementLocation(n)}_onTargetMapPointPreview(e){let t=this._toScenePoint(e,this._targetScenePoint);this._renderer?.updatePlacementLocation(t),this._updateStagedViewshed(t)}_setDrawToolElevationInfo(e){let t=this._drawTool;t&&(t.elevationInfo=e)}get _observerDrawToolElevationInfo(){return this.observerPlacementElevationInfo??f}get _snapToSceneEnabled(){let e=this.observerPlacementElevationInfo?.mode;return this.creationState!==`placing-observer`||e==null||e===`absolute-height`?null:!1}_onManipulatorCountChange(e){e.removeHandles(E);let t=[];e.manipulators.forEach(({manipulator:e})=>{e instanceof x&&t.push(e.disableDisplay())}),e.addHandles(t,E)}_destroyDrawTool(e=this._drawTool){this._drawTool=null,this._renderer=null,e&&g(this.view,e)}_toScenePoint(e,t,n=f){let{x:r,y:i,z:a,spatialReference:o}=e,s=this._mapPointVector;return s[0]=r,s[1]=i,s[2]=a??0,b(s,o,n,this.view,t)}_updateStagedViewshed(e){let t=this.stagedViewshed;if(!t)return;let n=this.callbacks.findViewshedComputedData(t);if(!n)return;let{heading:r,tilt:i,farDistance:a}=y(this.view,n,e);t.farDistance=a,t.tilt=i,t.heading=r}get test(){}};e([c({constructOnly:!0})],D.prototype,`analysis`,void 0),e([c({constructOnly:!0})],D.prototype,`analysisViewData`,void 0),e([c({constructOnly:!0})],D.prototype,`intersector`,void 0),e([c({constructOnly:!0})],D.prototype,`snappingManager`,void 0),e([c({constructOnly:!0})],D.prototype,`view`,void 0),e([c({constructOnly:!0})],D.prototype,`callbacks`,void 0),e([c()],D.prototype,`placementMode`,void 0),e([c()],D.prototype,`observerPlacementElevationInfo`,void 0),e([c()],D.prototype,`stagedViewshed`,void 0),e([c()],D.prototype,`_placeOperation`,void 0),e([c()],D.prototype,`_drawTool`,void 0),e([c()],D.prototype,`_renderer`,void 0),e([c()],D.prototype,`_toolOptions`,void 0),e([c()],D.prototype,`updating`,null),e([c()],D.prototype,`active`,null),e([c()],D.prototype,`creationState`,void 0),e([c()],D.prototype,`_elevationModeContext`,null),D=e([l(`esri.views.3d.analysis.Viewshed.ViewshedPlacementController`)],D);export{D as ViewshedPlacementController};
@@ -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{isSome as n}from"../../../../core/arrayUtils.js";import{cyclicalDegrees as r,Cyclical as i}from"../../../../core/Cyclical.js";import{handlesGroup as a}from"../../../../core/handleUtils.js";import{deg2rad as o}from"../../../../core/mathUtils.js";import{destroyMaybe as s}from"../../../../core/maybe.js";import{watch as c,syncAndInitial as l,initial as u}from"../../../../core/reactiveUtils.js";import{property as d,subclass as f}from"../../../../core/accessorSupport/decorators.js";import{sub as p,len as m,dot as h}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as g}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as _}from"../../../../core/support/UpdatingHandles.js";import{getFeatureReference as v}from"./placementUtils.js";import{viewshedToolManipulatorConfiguration as y}from"./ViewshedConfiguration.js";import{ViewshedFieldOfViewManipulation as b,isSideHorizontal as x,flipSide as S}from"./ViewshedFieldOfViewManipulation.js";import{ViewshedObserverManipulatedObject3D as C}from"./ViewshedObserverManipulatedObject3D.js";import{ViewshedScaleOrientManipulation as w}from"./ViewshedScaleOrientManipulation.js";import{ViewshedObserverManipulator as T}from"./viewshedToolManipulatorUtils.js";import{screenToMapAtSceneSurface as E}from"../../interactive/editingTools/dragEventPipeline3D.js";import{discRadiusSmall as D}from"../../interactive/editingTools/manipulations/config.js";import{MoveManipulation as O}from"../../interactive/editingTools/manipulations/MoveManipulation.js";import{createManipulatorDragEventPipeline as k,resetManipulatedObject as A,sceneSnappingAtLocation as j,dragManipulatedObject as M,sceneSnappingAtProjectedLocation as N,resetProperties as P}from"../../../interactive/dragEventPipeline.js";const F=Symbol(`dragHandles`);let I=class extends t{constructor(e){super(e),this._moveManipulation=null,this._observerManipulator=null,this._observerManipulatedObject=null,this._fieldOfViewManipulation=null,this._scaleOrientManipulation=null,this._updatingHandles=new _,this._grabbing=!1,this.viewshedComputedData=null}initialize(){this._moveManipulation=this._createMoveManipulation(),this._fieldOfViewManipulation=new b({view:this.view,tool:this.parentTool}),this._scaleOrientManipulation=new w({view:this.view,tool:this.parentTool}),this._observerManipulator=new T(this.view,this.parentTool),this._observerManipulatedObject=new C({view:this.view,subTool:this}),this.addHandles([c(()=>this.elevationAlignedObserverRenderSpace,e=>{e!=null&&(this._moveManipulation.renderLocation=e,this._observerManipulator.renderLocation=e)},l),this._updatingHandles.add(()=>this.viewshedComputedData?.heading,e=>{e&&(this._moveManipulation.angle=o(90-e))},u),this._updatingHandles.add(()=>{let{viewshedComputedData:e}=this;return{viewshedComputedData:e,observer:this.elevationAlignedObserverRenderSpace,operations:this._observerManipulatedObject.operations}},({viewshedComputedData:e,observer:t,operations:r},i)=>{this._grabbing&&t!==i?.observer||(this.removeHandles(F),e?.valid&&r!=null&&this.addHandles([this._buildObserverManipulatorDragPipeline(e),this._buildMoveManipulationDragPipeline(e),this._buildFOVDragPipeline(e),this._buildScaleOrientDragPipeline(e)].filter(n),F))},u),this._updatingHandles.add(()=>{let e=this.viewshedComputedData;return e?.valid?{viewshedCompData:e,target:e.elevationAlignedTargetRenderSpace,hFOV:e.horizontalFieldOfView,vFOV:e.verticalFieldOfView}:null},e=>{e!=null&&this._fieldOfViewManipulation.updateManipulatorsTransform(e.viewshedCompData)},u),this._updatingHandles.add(()=>{let e=this.viewshedComputedData;return e?.valid?{viewshedCompData:e,hFOV:e.horizontalFieldOfView,vFOV:e.verticalFieldOfView,tilt:e.tilt}:null},e=>{e!=null&&this._fieldOfViewManipulation.updateManipulatorVisuals(e.viewshedCompData)},u),this._updatingHandles.add(()=>{let{viewshedComputedData:e,analysisViewData:t}=this,n=t.visible&&(e?.valid??!1),r=t.selectedViewshed===e?.viewshed,i=n&&r,a=e?.effectiveElevationInfo.mode;return{controlsAvailable:i,selected:r,visibleAndValid:n,zManipulationAvailable:i&&a!==`on-the-ground`}},({controlsAvailable:e,selected:t,visibleAndValid:n,zManipulationAvailable:r})=>{this._moveManipulation.available=e,this._moveManipulation.zManipulation.available=r,this._scaleOrientManipulation.available=e,this._observerManipulator.available=n,this._observerManipulator.collisionPriority=t?2:0,this._fieldOfViewManipulation.available=e},u),this._updatingHandles.add(()=>{let e=this.viewshedComputedData;if(!e?.valid)return null;let{observer:t,target:n,verticalFieldOfView:r,horizontalFieldOfView:i}=e;return{viewshedCompData:e,observer:t,target:n,verticalFieldOfView:r,horizontalFieldOfView:i}},e=>{e!=null&&this._scaleOrientManipulation.updateManipulators(e.viewshedCompData)},u)]),this._forEachManipulator(e=>{this.addHandles([e.events.on(`grab-changed`,t=>{this._grabbing=t.action===`start`,t.action===`end`&&this.parentTool.updateInteractionVisualsVisibility(),this.parentTool.subToolHandles.forEach(({subTool:e})=>{e!==this&&e._setInteractive(!this._grabbing)}),this._setInteractive(t=>t===e||!this._grabbing)}),e.events.on(`drag`,e=>{e.action===`start`&&this.parentTool.updateInteractionVisualsVisibility()})])})}destroy(){this._observerManipulatedObject=s(this._observerManipulatedObject),this._moveManipulation=s(this._moveManipulation),this._fieldOfViewManipulation=s(this._fieldOfViewManipulation),this._scaleOrientManipulation=s(this._scaleOrientManipulation),this.parentTool.manipulators.remove(this._observerManipulator),this._observerManipulator=s(this._observerManipulator),this._updatingHandles.destroy()}get updating(){return this._updatingHandles.updating}get viewshed(){return this.viewshedComputedData?.viewshed}get grabbing(){return this._grabbing}get observer(){return this.viewshed?.observer}set observer(e){let t=this.viewshed;t!=null&&(t.observer=e)}get elevationAlignedObserverRenderSpace(){return this.viewshedComputedData?.elevationAlignedObserverRenderSpace}get discManipulator(){return this._moveManipulation.xyManipulation.discManipulator}get observerManipulator(){return this._observerManipulator}get observerManipulatedObject(){return this._observerManipulatedObject}get moveInteractionState(){let{dragging:e,grabbing:t}=this._moveManipulation;return{dragging:e||this._observerManipulator.dragging,grabbing:t||this._observerManipulator.grabbing}}get scaleOrientInteractionState(){let{dragging:e,grabbing:t}=this._scaleOrientManipulation;return{dragging:e,grabbing:t}}_setInteractive(e){let t=typeof e==`boolean`;this._observerManipulator.interactive=t?e:e(this._observerManipulator),this._forEachManipulation(n=>{n.interactive=t?e:n.someManipulator(e)})}onManipulatorSelectionChanged(){this._someManipulatorSelected()||this.analysisViewData.selectedViewshed===this.viewshed&&(this.analysisViewData.selectedViewshed=null)}hasManipulator(e){let t=!1;return this._forEachManipulator(n=>{t||=n===e}),t}_someManipulatorSelected(){return this._moveManipulation.selected||this._observerManipulator.selected||this._fieldOfViewManipulation.selected||this._scaleOrientManipulation.selected}_createMoveManipulation(){return new O({view:this.view,tool:this.parentTool,snapToScene:!1,xyAvailable:!0,xyAxisAvailable:!0,zAvailable:!0,radius:D})}_buildObserverManipulatorDragPipeline(e){let{effectiveElevationInfo:t,viewshed:n}=e,r=this._observerManipulatedObject,i=r.operations;if(i==null)return null;let a=i.data.spatialReference;return k(this._observerManipulator,(e,o,s,c)=>{let{parentTool:l,view:u}=this,{intersector:d,snappingManager:f}=l,{geometry:p}=i.data;if(p.type!==`point`)return;let m=n.feature,h=A(r);s=s.next(e=>(n.feature=m,h(e)));let g=l.createObserverMoveSnappingPipeline(0,c,t,!0),_=o.next(E(u,p,t,a)).next(j(u,t));if(g!=null){let{snappingStep:e,cancelSnapping:t}=g;s.next(t),_=_.next(...e)}_.next(e=>(n.feature=v({intersector:d,snappingManager:f,screenPoint:e.screenEnd,view:u}),e)).next(M(r))})}_buildMoveManipulationDragPipeline(e){let{effectiveElevationInfo:t}=e,n=this._observerManipulatedObject,r=n.operations;return r==null?null:this._moveManipulation.createDragPipeline((e,r,i,a,o)=>{a=a.next(A(n));let s=this.parentTool.createObserverMoveSnappingPipeline(e,o,t);if(s!=null){let{snappingStep:e,cancelSnapping:r}=s;return a=a.next(r),i=i.next(N(this.view,t)).next(...e).next(M(n)),{steps:i,cancel:a}}return i=i.next(M(n)),{steps:i,cancel:a}},t,r.data.spatialReference,void 0)}_buildFOVDragPipeline(e){let t=0,n=0;return this._fieldOfViewManipulation.createDragPipeline((i,a,o)=>{if(e==null)return{steps:a,cancel:o};let s=e.viewshed,c=null;return o=o.next(P(s,[`horizontalFieldOfView`,`verticalFieldOfView`])),{steps:a.next(i=>{i.action===`start`&&(c=null,t=e.horizontalFieldOfView,n=e.verticalFieldOfView);let a=i.deltaAngle;if(c==null&&a!==0){let e=i.side===`bottom`||i.side===`left`?a>0:a<0;c=x(i.side)?t===0&&e||t===360&&!e:n===0&&e}let o=c?S(i.side):i.side,l=0;switch(o){case`left`:l=t/2-a;break;case`right`:l=t/2+a;break;case`top`:l=n+a*2;break;case`bottom`:l=n-a*2}return x(o)?(l=r.normalize(l),l=l>270?0:l>180?180:l,s.horizontalFieldOfView=l*2):s.verticalFieldOfView=l,i}),cancel:o}},e)}_buildScaleOrientDragPipeline(e){let t=0,n=0,i=(t,n)=>(r,i,a)=>{if(e==null)return{steps:i,cancel:a};let o=e.viewshed;return a=a.next(P(o,[t])),i=i.next(n(o,e)),{steps:i,cancel:a}};return a([this._scaleOrientManipulation.createHeadingDragPipeline(i(`heading`,(t,i)=>i=>(i.action===`start`&&(n=e.heading),t.heading=r.normalize(n+i.deltaAngle),i)),e),this._scaleOrientManipulation.createTiltDragPipeline(i(`tilt`,(n,r)=>r=>{r.action===`start`&&(t=e.tilt);let i=t+r.deltaAngle;return i<-90?i=180:i>270&&(i=0),n.tilt=R.clamp(i),r}),e),this._scaleOrientManipulation.createDistanceDragPipeline(i(`farDistance`,(e,t)=>n=>{let r=p(L,n.renderEnd,t.elevationAlignedObserverRenderSpace),i=m(r)*t.metersPerUnit;return e.farDistance=h(r,t.targetDirection)<0?y.scaleOrientMinDistance:i,n}),e)])}_forEachManipulator(e){this._forEachManipulation(t=>{t.forEachManipulator(e)}),e(this._observerManipulator)}_forEachManipulation(e){e(this._moveManipulation),e(this._fieldOfViewManipulation),e(this._scaleOrientManipulation)}get test(){return{observerManipulator:this._observerManipulator,moveManipulation:this._moveManipulation,fieldOfViewManipulation:this._fieldOfViewManipulation,scaleOrientManipulation:this._scaleOrientManipulation,viewshedComputedData:this.viewshedComputedData}}};e([d({constructOnly:!0})],I.prototype,`analysis`,void 0),e([d({constructOnly:!0})],I.prototype,`analysisViewData`,void 0),e([d({constructOnly:!0})],I.prototype,`parentTool`,void 0),e([d({constructOnly:!0,nonNullable:!0})],I.prototype,`view`,void 0),e([d()],I.prototype,`updating`,null),e([d()],I.prototype,`viewshed`,null),e([d()],I.prototype,`_grabbing`,void 0),e([d()],I.prototype,`grabbing`,null),e([d()],I.prototype,`viewshedComputedData`,void 0),e([d()],I.prototype,`observer`,null),e([d()],I.prototype,`elevationAlignedObserverRenderSpace`,null),I=e([f(`esri.views.3d.analysis.Viewshed.ViewshedSubTool`)],I);const L=g(),R=new i(0,180);export{I as ViewshedSubTool};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{isSome as n}from"../../../../core/arrayUtils.js";import{cyclicalDegrees as r,Cyclical as i}from"../../../../core/Cyclical.js";import{handlesGroup as a}from"../../../../core/handleUtils.js";import{deg2rad as o}from"../../../../core/mathUtils.js";import{destroyMaybe as s}from"../../../../core/maybe.js";import{watch as c,syncAndInitial as l,initial as u}from"../../../../core/reactiveUtils.js";import{property as d,subclass as f}from"../../../../core/accessorSupport/decorators.js";import{sub as p,len as m,dot as h}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as g}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as _}from"../../../../core/support/UpdatingHandles.js";import{getFeatureReference as v}from"./placementUtils.js";import{viewshedToolManipulatorConfiguration as y}from"./ViewshedConfiguration.js";import{ViewshedFieldOfViewManipulation as b,isSideHorizontal as x,flipSide as S}from"./ViewshedFieldOfViewManipulation.js";import{ViewshedObserverManipulatedObject3D as C}from"./ViewshedObserverManipulatedObject3D.js";import{ViewshedScaleOrientManipulation as w}from"./ViewshedScaleOrientManipulation.js";import{ViewshedObserverManipulator as T}from"./viewshedToolManipulatorUtils.js";import{screenToMapAtSceneSurface as E}from"../../interactive/editingTools/dragEventPipeline3D.js";import{discRadiusSmall as D}from"../../interactive/editingTools/manipulations/config.js";import{MoveManipulation as O}from"../../interactive/editingTools/manipulations/MoveManipulation.js";import{createManipulatorDragEventPipeline as k,resetManipulatedObject as A,sceneSnappingAtLocation as j,dragManipulatedObject as M,sceneSnappingAtProjectedLocation as N,resetProperties as P}from"../../../interactive/dragEventPipeline.js";const F=Symbol(`dragHandles`);let I=class extends t{constructor(e){super(e),this._moveManipulation=null,this._observerManipulator=null,this._observerManipulatedObject=null,this._fieldOfViewManipulation=null,this._scaleOrientManipulation=null,this._updatingHandles=new _,this._grabbing=!1,this.viewshedComputedData=null}initialize(){this._moveManipulation=this._createMoveManipulation(),this._fieldOfViewManipulation=new b({view:this.view,tool:this.parentTool}),this._scaleOrientManipulation=new w({view:this.view,tool:this.parentTool}),this._observerManipulator=new T(this.view,this.parentTool),this._observerManipulatedObject=new C({view:this.view,subTool:this}),this.addHandles([c(()=>this.elevationAlignedObserverRenderSpace,e=>{e!=null&&(this._moveManipulation.renderLocation=e,this._observerManipulator.renderLocation=e)},l),this._updatingHandles.add(()=>this.viewshedComputedData?.heading,e=>{e&&(this._moveManipulation.angle=o(90-e))},u),this._updatingHandles.add(()=>{let{viewshedComputedData:e}=this;return{viewshedComputedData:e,observer:this.elevationAlignedObserverRenderSpace,operations:this._observerManipulatedObject.operations}},({viewshedComputedData:e,observer:t,operations:r},i)=>{this._grabbing&&t!==i?.observer||(this.removeHandles(F),e?.valid&&r!=null&&this.addHandles([this._buildObserverManipulatorDragPipeline(e),this._buildMoveManipulationDragPipeline(e),this._buildFOVDragPipeline(e),this._buildScaleOrientDragPipeline(e)].filter(n),F))},u),this._updatingHandles.add(()=>{let e=this.viewshedComputedData;return e?.valid?{viewshedCompData:e,target:e.elevationAlignedTargetRenderSpace,hFOV:e.horizontalFieldOfView,vFOV:e.verticalFieldOfView}:null},e=>{e!=null&&this._fieldOfViewManipulation.updateManipulatorsTransform(e.viewshedCompData)},u),this._updatingHandles.add(()=>{let e=this.viewshedComputedData;return e?.valid?{viewshedCompData:e,hFOV:e.horizontalFieldOfView,vFOV:e.verticalFieldOfView,tilt:e.tilt}:null},e=>{e!=null&&this._fieldOfViewManipulation.updateManipulatorVisuals(e.viewshedCompData)},u),this._updatingHandles.add(()=>{let{viewshedComputedData:e,analysisViewData:t}=this,n=t.visible&&(e?.valid??!1),r=t.selectedViewshed===e?.viewshed,i=n&&r,a=e?.effectiveElevationInfo.mode;return{controlsAvailable:i,selected:r,visibleAndValid:n,zManipulationAvailable:i&&a!==`on-the-ground`}},({controlsAvailable:e,selected:t,visibleAndValid:n,zManipulationAvailable:r})=>{this._moveManipulation.available=e,this._moveManipulation.zManipulation.available=r,this._scaleOrientManipulation.available=e,this._observerManipulator.available=n,this._observerManipulator.collisionPriority=t?2:0,this._fieldOfViewManipulation.available=e},u),this._updatingHandles.add(()=>{let e=this.viewshedComputedData;if(!e?.valid)return null;let{observer:t,target:n,verticalFieldOfView:r,horizontalFieldOfView:i}=e;return{viewshedCompData:e,observer:t,target:n,verticalFieldOfView:r,horizontalFieldOfView:i}},e=>{e!=null&&this._scaleOrientManipulation.updateManipulators(e.viewshedCompData)},u)]),this._forEachManipulator(e=>{this.addHandles([e.events.on(`grab-changed`,t=>{this._grabbing=t.action===`start`,t.action===`end`&&this.parentTool.updateInteractionVisualsVisibility(),this.parentTool.subToolHandles.forEach(({subTool:e})=>{e!==this&&e.setInteractive(!this._grabbing)}),this.setInteractive(t=>t===e||!this._grabbing)}),e.events.on(`drag`,e=>{e.action===`start`&&this.parentTool.updateInteractionVisualsVisibility()})])})}destroy(){this._observerManipulatedObject=s(this._observerManipulatedObject),this._moveManipulation=s(this._moveManipulation),this._fieldOfViewManipulation=s(this._fieldOfViewManipulation),this._scaleOrientManipulation=s(this._scaleOrientManipulation),this.parentTool.manipulators.remove(this._observerManipulator),this._observerManipulator=s(this._observerManipulator),this._updatingHandles.destroy()}get updating(){return this._updatingHandles.updating}get viewshed(){return this.viewshedComputedData?.viewshed}get grabbing(){return this._grabbing}get observer(){return this.viewshed?.observer}set observer(e){let t=this.viewshed;t!=null&&(t.observer=e)}get elevationAlignedObserverRenderSpace(){return this.viewshedComputedData?.elevationAlignedObserverRenderSpace}get discManipulator(){return this._moveManipulation.xyManipulation.discManipulator}get observerManipulator(){return this._observerManipulator}get observerManipulatedObject(){return this._observerManipulatedObject}get moveInteractionState(){let{dragging:e,grabbing:t}=this._moveManipulation;return{dragging:e||this._observerManipulator.dragging,grabbing:t||this._observerManipulator.grabbing}}get scaleOrientInteractionState(){let{dragging:e,grabbing:t}=this._scaleOrientManipulation;return{dragging:e,grabbing:t}}setInteractive(e){let t=typeof e==`boolean`;this._observerManipulator.interactive=t?e:e(this._observerManipulator),this._forEachManipulation(n=>{n.interactive=t?e:n.someManipulator(e)})}hideInactiveManipulators(e){let t=[];return this._forEachManipulation(n=>{n.hasManipulator(e)?n!==this._moveManipulation&&t.push(a(n.mapManipulators(t=>t===e||n===this._fieldOfViewManipulation&&t.grabbing?null:t.disableDisplay?.()))):t.push(n.hideManipulators())}),this._observerManipulator!==e&&t.push(this._observerManipulator.disableDisplay()),a(t)}onManipulatorSelectionChanged(){this._someManipulatorSelected()||this.analysisViewData.selectedViewshed===this.viewshed&&(this.analysisViewData.selectedViewshed=null)}hasManipulator(e){let t=!1;return this._forEachManipulator(n=>{t||=n===e}),t}_someManipulatorSelected(){return this._moveManipulation.selected||this._observerManipulator.selected||this._fieldOfViewManipulation.selected||this._scaleOrientManipulation.selected}_createMoveManipulation(){return new O({view:this.view,tool:this.parentTool,snapToScene:!1,xyAvailable:!0,xyAxisAvailable:!0,zAvailable:!0,radius:D})}_buildObserverManipulatorDragPipeline(e){let{effectiveElevationInfo:t,viewshed:n}=e,r=this._observerManipulatedObject,i=r.operations;if(i==null)return null;let a=i.data.spatialReference;return k(this._observerManipulator,(e,o,s,c)=>{let{parentTool:l,view:u}=this,{intersector:d,snappingManager:f}=l,{geometry:p}=i.data;if(p.type!==`point`)return;let m=n.feature,h=A(r);s=s.next(e=>(n.feature=m,h(e)));let g=l.createObserverMoveSnappingPipeline(0,c,t,!0),_=o.next(E(u,p,t,a)).next(j(u,t));if(g!=null){let{snappingStep:e,cancelSnapping:t}=g;s.next(t),_=_.next(...e)}_.next(e=>(n.feature=v({intersector:d,snappingManager:f,screenPoint:e.screenEnd,view:u}),e)).next(M(r))})}_buildMoveManipulationDragPipeline(e){let{effectiveElevationInfo:t}=e,n=this._observerManipulatedObject,r=n.operations;return r==null?null:this._moveManipulation.createDragPipeline((e,r,i,a,o)=>{a=a.next(A(n));let s=this.parentTool.createObserverMoveSnappingPipeline(e,o,t);if(s!=null){let{snappingStep:e,cancelSnapping:r}=s;return a=a.next(r),i=i.next(N(this.view,t)).next(...e).next(M(n)),{steps:i,cancel:a}}return i=i.next(M(n)),{steps:i,cancel:a}},t,r.data.spatialReference,void 0)}_buildFOVDragPipeline(e){let t=0,n=0;return this._fieldOfViewManipulation.createDragPipeline((i,a,o)=>{if(e==null)return{steps:a,cancel:o};let s=e.viewshed,c=null;return o=o.next(P(s,[`horizontalFieldOfView`,`verticalFieldOfView`])),{steps:a.next(i=>{i.action===`start`&&(c=null,t=e.horizontalFieldOfView,n=e.verticalFieldOfView);let a=i.deltaAngle;if(c==null&&a!==0){let e=i.side===`bottom`||i.side===`left`?a>0:a<0;c=x(i.side)?t===0&&e||t===360&&!e:n===0&&e}let o=c?S(i.side):i.side,l=0;switch(o){case`left`:l=t/2-a;break;case`right`:l=t/2+a;break;case`top`:l=n+a*2;break;case`bottom`:l=n-a*2}return x(o)?(l=r.normalize(l),l=l>270?0:l>180?180:l,s.horizontalFieldOfView=l*2):s.verticalFieldOfView=l,i}),cancel:o}},e)}_buildScaleOrientDragPipeline(e){let t=0,n=0,i=(t,n)=>(r,i,a)=>{if(e==null)return{steps:i,cancel:a};let o=e.viewshed;return a=a.next(P(o,[t])),i=i.next(n(o,e)),{steps:i,cancel:a}};return a([this._scaleOrientManipulation.createHeadingDragPipeline(i(`heading`,(t,i)=>i=>(i.action===`start`&&(n=e.heading),t.heading=r.normalize(n+i.deltaAngle),i)),e),this._scaleOrientManipulation.createTiltDragPipeline(i(`tilt`,(n,r)=>r=>{r.action===`start`&&(t=e.tilt);let i=t+r.deltaAngle;return i<-90?i=180:i>270&&(i=0),n.tilt=R.clamp(i),r}),e),this._scaleOrientManipulation.createDistanceDragPipeline(i(`farDistance`,(e,t)=>n=>{let r=p(L,n.renderEnd,t.elevationAlignedObserverRenderSpace),i=m(r)*t.metersPerUnit;return e.farDistance=h(r,t.targetDirection)<0?y.scaleOrientMinDistance:i,n}),e)])}_forEachManipulator(e){this._forEachManipulation(t=>{t.forEachManipulator(e)}),e(this._observerManipulator)}_forEachManipulation(e){e(this._moveManipulation),e(this._fieldOfViewManipulation),e(this._scaleOrientManipulation)}get test(){return{observerManipulator:this._observerManipulator,moveManipulation:this._moveManipulation,fieldOfViewManipulation:this._fieldOfViewManipulation,scaleOrientManipulation:this._scaleOrientManipulation,viewshedComputedData:this.viewshedComputedData}}};e([d({constructOnly:!0})],I.prototype,`analysis`,void 0),e([d({constructOnly:!0})],I.prototype,`analysisViewData`,void 0),e([d({constructOnly:!0})],I.prototype,`parentTool`,void 0),e([d({constructOnly:!0,nonNullable:!0})],I.prototype,`view`,void 0),e([d()],I.prototype,`updating`,null),e([d()],I.prototype,`viewshed`,null),e([d()],I.prototype,`_grabbing`,void 0),e([d()],I.prototype,`grabbing`,null),e([d()],I.prototype,`viewshedComputedData`,void 0),e([d()],I.prototype,`observer`,null),e([d()],I.prototype,`elevationAlignedObserverRenderSpace`,null),I=e([f(`esri.views.3d.analysis.Viewshed.ViewshedSubTool`)],I);const L=g(),R=new i(0,180);export{I as ViewshedSubTool};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{deg2rad as t}from"../../../../core/mathUtils.js";import{valueInUnit as n}from"../../../../core/quantity.js";import{watch as r,sync as i,syncAndInitial as a}from"../../../../core/reactiveUtils.js";import{verticalLengthUnitFromSpatialReference as o,convertUnit as s}from"../../../../core/units.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{rotateZ as u}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{subtract as d,lerp as f}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{clone as p,fromArray as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as h}from"../../../../core/support/UpdatingHandles.js";import{sv3d as g,sm4d as _}from"../../../../geometry/support/vectorStacks.js";import{IsShiftEdgeOnScreenFlag as v}from"../Slice/sliceToolUtils.js";import{calculateTranslateRotateFromBases as y}from"../../interactive/manipulatorUtils.js";import{screenToZConstrained as b}from"../../interactive/editingTools/dragEventPipeline3D.js";import{ShiftManipulator as x}from"../../interactive/manipulators/ShiftManipulator.js";import{createManipulatorDragEventPipeline as S,addMapTranslation as C}from"../../../interactive/dragEventPipeline.js";import{InteractiveToolBase as w}from"../../../interactive/InteractiveToolBase.js";import T from"../../../interactive/options/InteractiveToolOptions.js";import E from"../../../interactive/support/Units.js";import{makeTooltip as D,enterInputModeIfAvailable as O}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{ElevationTooltipInfo as k}from"../../../interactive/tooltip/infos/ElevationTooltipInfo.js";import{elevationFromZ as A}from"../../../support/euclideanLengthMeasurementUtils.js";let j=class extends w{constructor(e){super(e),this.multiTouchEnabled=!1,this._updatingHandles=new h,this.toolOptions=new T}initialize(){let{view:e}=this;this._shiftManipulator=new x(e,0,8),this._shiftManipulator.state|=v,this.manipulators.add(this._shiftManipulator),this.addHandles([this._createDragPipeline(),r(()=>this.analysisViewData.targetGeometry,()=>this._updateManipulatorPosition(),i),r(()=>this._showManipulator,e=>this._updateManipulatorVisibility(e),a)]),this._initializeTooltip(),this.finishToolCreation()}_initializeTooltip(){let{view:e}=this;this.tooltip=D(()=>({view:e,options:this.toolOptions.tooltips})),this._tooltipInfo=new k({toolOptions:this.toolOptions}),this.toolOptions.tooltips.enabled=!0,this.toolOptions.tooltips.placement=`trailing`,this._updateToolOptions(),this.addHandles([this._updatingHandles.add(()=>this.analysisViewData.effectiveTargetElevation,()=>this._updateTooltip()),this._updatingHandles.add(()=>this._shouldShowTooltip,e=>{e?this._showTooltip():this._hideTooltip()}),this.tooltip.on(`commit`,()=>{let e=this._tooltipInfo.elevation.actual,t=o(this.view.spatialReference);if(e==null||t==null)return;let r=n(e,t);this._updateValue(r,{recordUndo:this.analysis.cutFillOptions.targetElevation})}),r(()=>[this.analysis.displayUnits.elevation,this.analysis.inputUnits.elevation,e.options.displayUnits.verticalLength,e.options.inputUnits.verticalLength],()=>this._updateToolOptions(),a)])}destroy(){this._shiftManipulator.destroy(),this.tooltip.destroy(),this._updatingHandles.destroy()}get updating(){return this._updatingHandles.updating}onInputEvent(e){if(!this.destroyed&&!O(e,this.tooltip))return super.onInputEvent(e)}onHide(){this._hideTooltip()}onEditableChange(){this.internallyEditable||this._hideTooltip()}get _shouldShowTooltip(){return this._showManipulator&&(this.hasFocusedManipulators||this.tooltip.mode===`input`)}get _showManipulator(){let{interactive:e,targetGeometry:t,visible:n}=this.analysisViewData,{measureType:r}=this.analysis;return n&&e&&t!=null&&r===`cut-fill`}_createDragPipeline(){return S(this._shiftManipulator,(e,t,n)=>{let r=p(e.renderLocation),i=this.analysis.inputUnits.elevation??`meters`,a=o(this.view.spatialReference),c;t.next(b(this.view,r,this.view.spatialReference)).next(C()).next(e=>{if(e.action===`start`){let{targetElevation:e}=this.analysis.cutFillOptions;c=e&&a?s(e,i,a):void 0}return this._updateValue(c==null?e.mapEnd.z:c+e.translationZ,e.action===`end`?{recordUndo:c}:void 0),e}),n.next(()=>{this._updateValue(c)})})}_updateManipulatorPosition(){let{targetGeometry:e}=this.analysisViewData,{renderCoordsHelper:n}=this.view;if(!e)return;let r=e.rings[0],i=m(r[0]),a=m(r[1]);n.toRenderCoords(i,e.spatialReference,i),n.toRenderCoords(a,e.spatialReference,a);let o=g.get();d(o,a,i);let s=g.get();f(s,i,a,.5);let c=n.worldBasisAtPosition(s,1,g.get()),l=n.worldBasisAtPosition(s,0,g.get()),h=y(c,l,s,_.get()),v=n.headingAtPosition(s,o),b=e.isClockwise(e.rings[0])?-Math.PI/2:Math.PI/2;u(h,h,t(v)+b),h[12]=0,h[13]=0,h[14]=0,this._shiftManipulator.renderLocation=p(s),this._shiftManipulator.modelTransform=h}_updateManipulatorVisibility(e){this._shiftManipulator.available=e}_updateValue(e,t){let n=A(e,this.view.spatialReference);if(n==null)return;let r=this.analysis.inputUnits.elevation??`meters`,i=s(n.value,n.unit,r),a=e=>void(this.analysis.cutFillOptions.targetElevation=e);if(a(i),t&&`recordUndo`in t){let e=t.recordUndo;this.emit(`record-undo`,{apply:()=>a(i),undo:()=>a(e)})}}_getUpdatedTooltipInfo(){let{effectiveTargetElevation:e}=this.analysisViewData;return e&&(this._tooltipInfo.elevation.actual=A(e,this.view.spatialReference)),this._tooltipInfo}_updateTooltip(){this._shouldShowTooltip&&(this.tooltip.info=this._getUpdatedTooltipInfo())}_showTooltip(){this._updateTooltip()}_hideTooltip(){this.tooltip?.clear(),this.tooltip?.exitInputMode({focusOnView:!1})}_updateToolOptions(){let{analysis:e}=this,{displayUnits:t,inputUnits:n}=e,r=this.view.options;this.toolOptions.values.inputUnits=new E({verticalLength:n.elevation??r.inputUnits.verticalLength}),this.toolOptions.values.displayUnits=new E({verticalLength:t.elevation??r.displayUnits.verticalLength})}};e([c()],j.prototype,`multiTouchEnabled`,void 0),e([c()],j.prototype,`updating`,null),e([c({constructOnly:!0})],j.prototype,`analysis`,void 0),e([c({constructOnly:!0})],j.prototype,`view`,void 0),e([c({constructOnly:!0})],j.prototype,`analysisViewData`,void 0),e([c({constructOnly:!0,type:T})],j.prototype,`toolOptions`,void 0),e([c()],j.prototype,`_shouldShowTooltip`,null),e([c()],j.prototype,`_showManipulator`,null),j=e([l(`esri.views.3d.analysis.VolumeMeasurement.VolumeMeasurementShiftTool`)],j);export{j as VolumeMeasurementShiftTool};
2
+ import{__decorate as e}from"tslib";import{deg2rad as t}from"../../../../core/mathUtils.js";import{valueInUnit as n}from"../../../../core/quantity.js";import{watch as r,sync as i,syncAndInitial as a}from"../../../../core/reactiveUtils.js";import{verticalLengthUnitFromSpatialReference as o,convertUnit as s}from"../../../../core/units.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{rotateZ as u}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{subtract as d,lerp as f}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{clone as p,fromArray as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as h}from"../../../../core/support/UpdatingHandles.js";import{sv3d as g,sm4d as _}from"../../../../geometry/support/vectorStacks.js";import{IsShiftEdgeOnScreenFlag as v}from"../Slice/sliceToolUtils.js";import{calculateTranslateRotateFromBases as y}from"../../interactive/manipulatorUtils.js";import{screenToZConstrained as b}from"../../interactive/editingTools/dragEventPipeline3D.js";import{ShiftManipulator as x}from"../../interactive/manipulators/ShiftManipulator.js";import{createManipulatorDragEventPipeline as S,addMapTranslation as C}from"../../../interactive/dragEventPipeline.js";import{InteractiveToolBase as w}from"../../../interactive/InteractiveToolBase.js";import{bindToolUnits as T}from"../../../interactive/options/bindViewToolOptions.js";import E from"../../../interactive/options/InteractiveToolOptions.js";import{makeTooltip as D,enterInputModeIfAvailable as O}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{ElevationTooltipInfo as k}from"../../../interactive/tooltip/infos/ElevationTooltipInfo.js";import{elevationFromZ as A}from"../../../support/euclideanLengthMeasurementUtils.js";let j=class extends w{constructor(e){super(e),this.multiTouchEnabled=!1,this._updatingHandles=new h,this.toolOptions=new E}initialize(){let{view:e}=this;this._shiftManipulator=new x(e,0,8),this._shiftManipulator.state|=v,this.manipulators.add(this._shiftManipulator),this.addHandles([this._createDragPipeline(),r(()=>this.analysisViewData.targetGeometry,()=>this._updateManipulatorPosition(),i),r(()=>this._showManipulator,e=>this._updateManipulatorVisibility(e),a)]),this._initializeTooltip(),this.finishToolCreation()}_initializeTooltip(){let{view:e}=this;this.tooltip=D(()=>({view:e,options:this.toolOptions.tooltips})),this._tooltipInfo=new k({toolOptions:this.toolOptions}),this.toolOptions.tooltips.enabled=!0,this.toolOptions.tooltips.placement=`trailing`,this.addHandles([T(this.toolOptions.values,()=>this.view.options,()=>({displayUnits:{verticalLength:this.analysis.displayUnits.elevation},inputUnits:{verticalLength:this.analysis.inputUnits.elevation}})),this._updatingHandles.add(()=>this.analysisViewData.effectiveTargetElevation,()=>this._updateTooltip()),this._updatingHandles.add(()=>this._shouldShowTooltip,e=>{e?this._showTooltip():this._hideTooltip()}),this.tooltip.on(`commit`,()=>{let e=this._tooltipInfo.elevation.actual,t=o(this.view.spatialReference);if(e==null||t==null)return;let r=n(e,t);this._updateValue(r,{recordUndo:this.analysis.cutFillOptions.targetElevation})})])}destroy(){this._shiftManipulator.destroy(),this.tooltip.destroy(),this._updatingHandles.destroy()}get updating(){return this._updatingHandles.updating}onInputEvent(e){if(!this.destroyed&&!O(e,this.tooltip))return super.onInputEvent(e)}onHide(){this._hideTooltip()}onEditableChange(){this.internallyEditable||this._hideTooltip()}get _shouldShowTooltip(){return this._showManipulator&&(this.hasFocusedManipulators||this.tooltip.mode===`input`)}get _showManipulator(){let{interactive:e,targetGeometry:t,visible:n}=this.analysisViewData,{measureType:r}=this.analysis;return n&&e&&t!=null&&r===`cut-fill`}_createDragPipeline(){return S(this._shiftManipulator,(e,t,n)=>{let r=p(e.renderLocation),i=this.analysis.inputUnits.elevation??`meters`,a=o(this.view.spatialReference),c;t.next(b(this.view,r,this.view.spatialReference)).next(C()).next(e=>{if(e.action===`start`){let{targetElevation:e}=this.analysis.cutFillOptions;c=e&&a?s(e,i,a):void 0}return this._updateValue(c==null?e.mapEnd.z:c+e.translationZ,e.action===`end`?{recordUndo:c}:void 0),e}),n.next(()=>{this._updateValue(c)})})}_updateManipulatorPosition(){let{targetGeometry:e}=this.analysisViewData,{renderCoordsHelper:n}=this.view;if(!e)return;let r=e.rings[0],i=m(r[0]),a=m(r[1]);n.toRenderCoords(i,e.spatialReference,i),n.toRenderCoords(a,e.spatialReference,a);let o=g.get();d(o,a,i);let s=g.get();f(s,i,a,.5);let c=n.worldBasisAtPosition(s,1,g.get()),l=n.worldBasisAtPosition(s,0,g.get()),h=y(c,l,s,_.get()),v=n.headingAtPosition(s,o),b=e.isClockwise(e.rings[0])?-Math.PI/2:Math.PI/2;u(h,h,t(v)+b),h[12]=0,h[13]=0,h[14]=0,this._shiftManipulator.renderLocation=p(s),this._shiftManipulator.modelTransform=h}_updateManipulatorVisibility(e){this._shiftManipulator.available=e}_updateValue(e,t){let n=A(e,this.view.spatialReference);if(n==null)return;let r=this.analysis.inputUnits.elevation??`meters`,i=s(n.value,n.unit,r),a=e=>void(this.analysis.cutFillOptions.targetElevation=e);if(a(i),t&&`recordUndo`in t){let e=t.recordUndo;this.emit(`record-undo`,{apply:()=>a(i),undo:()=>a(e)})}}_getUpdatedTooltipInfo(){let{effectiveTargetElevation:e}=this.analysisViewData;return e&&(this._tooltipInfo.elevation.actual=A(e,this.view.spatialReference)),this._tooltipInfo}_updateTooltip(){this._shouldShowTooltip&&(this.tooltip.info=this._getUpdatedTooltipInfo())}_showTooltip(){this._updateTooltip()}_hideTooltip(){this.tooltip?.clear(),this.tooltip?.exitInputMode({focusOnView:!1})}};e([c()],j.prototype,`multiTouchEnabled`,void 0),e([c()],j.prototype,`updating`,null),e([c({constructOnly:!0})],j.prototype,`analysis`,void 0),e([c({constructOnly:!0})],j.prototype,`view`,void 0),e([c({constructOnly:!0})],j.prototype,`analysisViewData`,void 0),e([c({constructOnly:!0,type:E})],j.prototype,`toolOptions`,void 0),e([c()],j.prototype,`_shouldShowTooltip`,null),e([c()],j.prototype,`_showManipulator`,null),j=e([l(`esri.views.3d.analysis.VolumeMeasurement.VolumeMeasurementShiftTool`)],j);export{j as VolumeMeasurementShiftTool};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{add as e,subtract as t}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{clone as n,create as r}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{applyAltitudeConstraint as i,getAltitudeConstraintError as a}from"./constraintUtils/altitude.js";import{hasConstraintType as o}from"./constraintUtils/common.js";import{ConstraintOptions as s}from"./constraintUtils/ConstraintOptions.js";import{applyDistanceConstraint as c,getDistanceConstraintError as l}from"./constraintUtils/distance.js";import{applySurfaceCollisionConstraint as u}from"./constraintUtils/surfaceCollision.js";import{applyTiltConstraint as d,getTiltConstraintError as f}from"./constraintUtils/tilt.js";import{inOutCubic as p}from"../../animation/easing.js";function m(e,t,n=b,r=t,i=null){r!==t&&r.copyFrom(t),r.computeUp(e.state.viewingMode);let a=!1;for(let t=0;t<x;t++){let t=0;for(let i of y)if(o(n.selection,i.type)){let o=Math.abs(i.error(e,r,n));i.apply(e,r,n)&&(a=!0,t+=o)}if(t===0)break}i?.copyFrom(r);let s=o(n.selection,8),c=h(n.interactionType,e);return s&&u(e,null,r,c)&&(a=!0),a&&r.computeUp(e.state.viewingMode),a}function h(e,t){switch(e){case 4:case 6:return 1;case 5:return t.state.isGlobal?2:1;default:return 0}}function g(e){let t=Math.min(1,e/150);return p(t)}function _(e,t,n){return f(e,t,n)*t.distance}function v(i,a,o){let s=n(a.eye);m(i,a,o),a.center=e(r(),a.center,t(r(),a.eye,s))}const y=[{type:1,error:_,apply:d},{type:2,error:a,apply:i},{type:4,error:l,apply:c}],b=new s,x=5;export{m as applyAll,v as applyConstraintsAndUpdateCenterRenderCamera,g as pixelDistanceToInteractionFactor};
2
+ import{add as e,subtract as t}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{clone as n,create as r}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{applyAltitudeConstraint as i,getAltitudeConstraintError as a}from"./constraintUtils/altitude.js";import{hasConstraintType as o}from"./constraintUtils/common.js";import{ConstraintOptions as s}from"./constraintUtils/ConstraintOptions.js";import{applyDistanceConstraint as c,getDistanceConstraintError as l}from"./constraintUtils/distance.js";import{applySurfaceCollisionConstraint as u}from"./constraintUtils/surfaceCollision.js";import{applyTiltConstraint as d,getTiltConstraintError as f}from"./constraintUtils/tilt.js";import{inOutCubic as p}from"../../animation/easing.js";function m(e,t,n=x,r=t,i=null){r!==t&&r.copyFrom(t),r.computeUp(e.state.viewingMode);let a=!1;for(let t=0;t<S;t++){let t=0;for(let i of b)if(o(n.selection,i.type)){let o=Math.abs(i.error(e,r,n));i.apply(e,r,n)&&(a=!0,t+=o)}if(t===0)break}i?.copyFrom(r);let s=o(n.selection,8),c=h(n.interactionType,e);return s&&u(e,null,r,c)&&(a=!0),a&&r.computeUp(e.state.viewingMode),a}function h(e,t){switch(e){case 4:case 6:return 1;case 5:return t.state.isGlobal?2:1;default:return 0}}function g(e){let t=Math.min(1,e/150);return p(t)}function _(e,t,n){return f(e,t,n)*t.distance}const v=r();function y(r,i,a){let o=n(i.eye);m(r,i,a),i.center=e(v,i.center,t(v,i.eye,o))}const b=[{type:1,error:_,apply:d},{type:2,error:a,apply:i},{type:4,error:l,apply:c}],x=new s,S=5;export{m as applyAll,y as applyConstraintsAndUpdateCenterRenderCamera,g as pixelDistanceToInteractionFactor};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{ignoreAbortErrors as e}from"../../../../../core/promiseUtils.js";import{createScreenPointArray as t}from"../../../../../core/screenUtils.js";import{copy as n,subtract as r,add as i}from"../../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as a}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as o}from"../../../../../geometry/ellipsoidUtils.js";import{fromRenderCamera as s}from"../../../webgl.js";import{shortenTranslation as c}from"../../../state/utils/groundNavigationUtils.js";import{pickPointAndInitSphere as l}from"../../../state/utils/navigationUtils.js";import{OffsetCorrectionController as u}from"../../../state/utils/OffsetCorrectionController.js";import d from"../../../webgl/RenderCamera.js";import{InputHandler as f}from"../../../../input/InputHandler.js";import{eventMatchesPointerAction as p}from"../../../../input/handlers/support.js";class m extends f{constructor(e,t){super(!0),this._view=e,this._tmpTranslation=a(),this._tmpTargetLocation=a(),this._tmpCenterOffset=a(),this.registerIncoming(`double-click`,t,e=>this._handleDoubleClick(e)),this._offsetCorrectionController=new u(this._view)}_handleDoubleClick(e){if(this._view.navigation.mode.type!==`ground`)return;let{data:t}=e;p(t,`primary`)&&(this._move(e),e.stopPropagation())}_move(a){let u=this._view.state.camera,f=new d().copyFrom(u),p=t(a.data.x,a.data.y);if(this._view.state.isGlobal){let e=l(this._view,this._view.state.camera,p,o(this._view.spatialReference).radius,1,{});if(e.scenePickPoint==null||!e.hasGeometryIntersection)return;n(this._tmpTargetLocation,e.scenePickPoint)}else if(!this._view.sceneIntersectionHelper.intersectScreenFreePointFallback(p,this._tmpTargetLocation,{}))return;r(this._tmpTranslation,this._tmpTargetLocation,u.eye),c(this._tmpTranslation,this._tmpTranslation,.99,2),i(this._tmpTargetLocation,u.eye,this._tmpTranslation),r(this._tmpCenterOffset,f.center,f.eye),f.eye=this._tmpTargetLocation,f.center=i(this._tmpCenterOffset,this._tmpTargetLocation,this._tmpCenterOffset),this._offsetCorrectionController.immediatelyCorrectGroundElevation(f,1e3),e(this._view.goTo(s(this._view,f),{liftOffDisabled:!0,duration:500}))}}export{m as GroundDoubleClickMove};
2
+ import{ignoreAbortErrors as e}from"../../../../../core/promiseUtils.js";import{createScreenPointArray as t}from"../../../../../core/screenUtils.js";import{copy as n,subtract as r,add as i,distance as a}from"../../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as o}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as s}from"../../../../../geometry/ellipsoidUtils.js";import{fromRenderCamera as c}from"../../../webgl.js";import{shortenTranslation as l}from"../../../state/utils/groundNavigationUtils.js";import{pickPointAndInitSphere as u}from"../../../state/utils/navigationUtils.js";import{OffsetCorrectionController as d}from"../../../state/utils/OffsetCorrectionController.js";import f from"../../../webgl/RenderCamera.js";import{InputHandler as p}from"../../../../input/InputHandler.js";import{eventMatchesPointerAction as m}from"../../../../input/handlers/support.js";class h extends p{constructor(e,t){super(!0),this._view=e,this._tmpTranslation=o(),this._tmpTargetLocation=o(),this._tmpCenterOffset=o(),this.registerIncoming(`double-click`,t,e=>this._handleDoubleClick(e)),this._offsetCorrectionController=new d(this._view)}_handleDoubleClick(e){if(this._view.navigation.mode.type!==`ground`)return;let{data:t}=e;m(t,`primary`)&&(this._move(e),e.stopPropagation())}_move(o){let d=this._view.state.camera,p=new f().copyFrom(d),m=t(o.data.x,o.data.y);if(this._view.state.isGlobal){let e=u(this._view,this._view.state.camera,m,s(this._view.spatialReference).radius,1,{});if(e.scenePickPoint==null||!e.hasGeometryIntersection)return;n(this._tmpTargetLocation,e.scenePickPoint)}else if(!this._view.sceneIntersectionHelper.intersectScreenFreePointFallback(m,this._tmpTargetLocation,{}))return;r(this._tmpTranslation,this._tmpTargetLocation,d.eye),l(this._tmpTranslation,this._tmpTranslation,.99,2),i(this._tmpTargetLocation,d.eye,this._tmpTranslation),r(this._tmpCenterOffset,p.center,p.eye),p.eye=this._tmpTargetLocation,p.center=i(this._tmpCenterOffset,this._tmpTargetLocation,this._tmpCenterOffset),this._offsetCorrectionController.immediatelyCorrectGroundElevation({camera:p,correctionLimit:1e3}),e(this._view.goTo(c(this._view,p),{liftOffDisabled:!0,duration:500*Math.max(1,Math.sqrt(a(p.eye,this._view.state.camera.eye)/100))}))}}export{h as GroundDoubleClickMove};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../../core/has.js";import{GroundNavigationController as e}from"../../../state/controllers/GroundNavigationController.js";import{InputHandler as t}from"../../../../input/InputHandler.js";import{eventMatchesPointerActions as n}from"../../../../input/handlers/support.js";class r extends t{constructor(e,t,n){super(!0),this._view=e,this.pointerActions=t,this._modifiers=n,this._lastEndTimestamp=0,this._lastTimestamp=0,this.registerIncoming(`drag`,n,e=>this._handleDrag(e))}_handleDrag(e){if(e.data.pointers.size===1&&!n(e.data,this.pointerActions))return;let t=e.timestamp-this._lastEndTimestamp,r=this._momentum&&this._momentum.running&&t<40;switch(e.data.action){case`start`:case`update`:if(r)break;!this._controller||!this._controller.running?this._startController(e):e.data.timestamp-this._lastTimestamp>2&&(this._controller.update(e.data),this._lastTimestamp=e.timestamp);break;case`end`:case`removed`:this._endController(e,!0);break;case`added`:this._endController(e,!1),this._startController(e)}e.stopPropagation()}_endController(e,t){if(this._controller?.running){this._lastEndTimestamp=e.timestamp;let n=this._controller.end(e.data);t&&n&&(this._momentum=n,this._view.state.switchCameraController(this._momentum))}this._controller=null}_startController(e){this._controller=this._createController(),this._view.state.switchCameraController(this._controller),this._controller.begin(e.data),this._lastTimestamp=e.timestamp}_createController(){return new e({view:this._view})}get test(){}}export{r as GroundNavigation};
2
+ import"../../../../../core/has.js";import{GroundNavigationController as e}from"../../../state/controllers/GroundNavigationController.js";import{PinchAndPanControllerGlobal as t}from"../../../state/controllers/PinchAndPanControllerGlobal.js";import{groundNavigationConstants as n}from"../../../state/utils/groundNavigationUtils.js";import{InputHandler as r}from"../../../../input/InputHandler.js";import{eventMatchesPointerActions as i}from"../../../../input/handlers/support.js";class a extends r{constructor(e,t,n){super(!0),this._view=e,this.pointerActions=t,this._modifiers=n,this._lastEndTimestamp=0,this._lastTimestamp=0,this.registerIncoming(`drag`,n,e=>this._handleDrag(e))}_handleDrag(e){if(e.data.pointers.size===1&&!i(e.data,this.pointerActions))return;let t=e.timestamp-this._lastEndTimestamp,n=this._momentum&&this._momentum.running&&t<40;switch(e.data.action){case`start`:case`update`:if(n)break;!this._controller||!this._controller.running?this._startController(e):e.data.timestamp-this._lastTimestamp>2&&(this._controller.update(e.data),this._lastTimestamp=e.timestamp);break;case`end`:case`removed`:this._endController(e,!0);break;case`added`:this._endController(e,!1),this._startController(e)}e.stopPropagation()}_endController(e,t){if(this._controller?.running){this._lastEndTimestamp=e.timestamp;let n=this._controller.end(e.data);t&&n&&(this._momentum=n,this._view.state.switchCameraController(this._momentum))}this._controller=null}_startController(e){this._controller=this._createController(),this._view.state.switchCameraController(this._controller),this._controller.begin(e.data),this._lastTimestamp=e.timestamp}_createController(){return this._view.viewingMode===`global`&&this._view.state.camera.relativeElevation>n.maxElevation?new t({view:this._view}):new e({view:this._view})}get test(){}}export{a as GroundNavigation};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{handlesGroup as e,makeHandle as t}from"../../../../core/handleUtils.js";import{createAngle as n,createLength as r}from"../../../../core/quantity.js";import{watch as i,syncAndInitial as a,sync as o}from"../../../../core/reactiveUtils.js";import{manipulatedObjectGeometry as s,supportsElevationMode as c}from"./manipulatedObjectUtils.js";import{connectPasteEvent as l,updateMeshTransformFromTooltipInfo as u,getXYZDeltasFromTooltipInfo as d,updateTooltipInfoFromMeshTransform as f}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{elevationFromPoint as p}from"../../../support/euclideanLengthMeasurementUtils.js";function m(n,r,c){function u(){let e=c(),t=e.toolOptions.tooltips.effectiveEnabled?e.activeTooltipInfo:null;return{...e,activeTooltipInfo:t}}let d=!1,f=!0;function p(e){if(f&&!d){d=!0;try{e()}finally{d=!1}}}function m(e){let{activeTooltipInfo:t,toolOptions:i,scaleRotateTransform:a}=e;p(()=>{if(t){t.toolOptions=i,v(t,r),b(t,a);let n=h(r,t);n&&(n.elevationModeContext=_(e))}n.info=t})}function _({callbacks:e,onRecordUndo:t}){return t?{get mode(){return r.elevationInfo.mode},get disabled(){return!f||r.updating||s(r)==null},onChange:n=>{if(!f||r.updating)return;e.onBeforeUpdate();let i=r.setElevationMode?.(n);i&&(t(i),m(u()))}}:null}return e([t(()=>{f=!1;let e=h(r,c().activeTooltipInfo);e&&(e.elevationModeContext=null)}),i(u,m,a),i(()=>{let e=u(),{activeTooltipInfo:t}=e;if(t)return{context:e,activeTooltipInfo:t,key:t.key,geometry:s(r)}},(e,t)=>{e&&t&&t.key!==e.key&&p(()=>g(r,e.context))},o),r.on(`committed`,()=>{queueMicrotask(()=>m(u()))}),l(n,{onBeforePaste:()=>{d=!0},onAfterPaste:()=>{g(r,u()),d=!1}})])}function h(e,t){return c(e)&&t?.type===`move-point`?t:null}function g(e,{activeTooltipInfo:t,callbacks:n}){if(!t)return;n.onBeforeUpdate();let r=s(e);switch(r?.type){case`mesh`:_(t,r.origin,e,n),`orientation`in t&&`scale`in t&&u(t,r,n);break;case`point`:_(t,r,e,n)}}function _(e,t,n,r){let{dx:i,dy:a,dz:o}=d(e,t);(i!==0||a!==0||o!==0)&&(r.onMoveStart(),n.operations?.move(i,a,o,0),r.onMove(i,a,o),r.onMoveStop())}function v(e,t){let n=s(t),r=n?.type;if(!e||!n||r!==`mesh`&&r!==`point`)return;let i=r===`mesh`,a=i?n.origin:n;e.setLocationFromPoint(a),y(e,a,t),e.type===`transform-mesh`&&i&&f(e,n),e.clearInputValues()}function y(e,t,n){e.elevation.actual=p(t),e.elevation.visible=!!n.operations?.data.coordinateHelper.hasZ(),e.elevation.readOnly=!1,e.elevation.showAsZ=!0}function b(e,t){if(e?.type!==`transform-point`)return;if(!t){e.orientation.actual=void 0,e.size.actual=void 0,e.orientation.visible=!1,e.size.visible=!1;return}let i=t.mode,{size:a,orientationClockwise:o}=t.adapter,{visualVariables:s}=e.toolOptions.tooltips,c=s?.rotation,l=o!=null&&(i==null||i===`rotate`);e.orientation.actual=l?n(o,`radians`,`geographic`):void 0,e.orientation.precision=x(c?.valueType),e.orientation.visible=l;let u=s?.size,d=a!=null&&(i==null||i===`scale`);e.size.actual=d?r(a,u?.unit??`meters`):void 0,e.size.precision=x(u?.valueType),e.size.visible=d}function x(e){switch(e){case`integer`:case`long`:return 0;default:return null}}export{m as connectTooltipToManipulatedObject,y as updateElevationFromPoint,v as updateTooltipInfoFromManipulatedObject,_ as updateXYZFromTooltipInfo};
2
+ import{handlesGroup as e,makeHandle as t}from"../../../../core/handleUtils.js";import{createAngle as n,createLength as r}from"../../../../core/quantity.js";import{watch as i,syncAndInitial as a,sync as o}from"../../../../core/reactiveUtils.js";import{manipulatedObjectGeometry as s,supportsElevationMode as c}from"./manipulatedObjectUtils.js";import{connectPasteEvent as l,updateMeshTransformFromTooltipInfo as u,getXYZDeltasFromTooltipInfo as d,updateTooltipInfoFromMeshTransform as f}from"../../../interactive/tooltip/tooltipCommonUtils.js";import{elevationFromPoint as p}from"../../../support/euclideanLengthMeasurementUtils.js";function m(n,r,c){function u(){let e=c(),t=e.toolOptions.tooltips.effectiveEnabled?e.activeTooltipInfo:null;return{...e,activeTooltipInfo:t}}let d=!1,f=!0;function p(e){if(f&&!d){d=!0;try{e()}finally{d=!1}}}function m(e){let{activeTooltipInfo:t,toolOptions:i,scaleRotateTransform:a}=e;p(()=>{if(t){t.toolOptions=i,v(t,r),b(t,a);let n=h(r,t);n&&(n.elevationModeContext=_(e))}n.info=t})}function _({callbacks:e,onRecordUndo:t}){return{get mode(){return r.elevationInfo.mode},get disabled(){return!f||r.updating||s(r)==null},onChange:n=>{if(!f||r.updating)return;e.onBeforeUpdate();let i=r.setElevationMode?.(n);i&&t?.(i),m(u())}}}return e([t(()=>{f=!1;let e=h(r,c().activeTooltipInfo);e&&(e.elevationModeContext=null)}),i(u,m,a),i(()=>{let e=u(),{activeTooltipInfo:t}=e;if(t)return{context:e,activeTooltipInfo:t,key:t.key,geometry:s(r)}},(e,t)=>{e&&t&&t.key!==e.key&&p(()=>g(r,e.context))},o),r.on(`committed`,()=>{queueMicrotask(()=>m(u()))}),l(n,{onBeforePaste:()=>{d=!0},onAfterPaste:()=>{g(r,u()),d=!1}})])}function h(e,t){return c(e)&&t?.type===`move-point`?t:null}function g(e,{activeTooltipInfo:t,callbacks:n}){if(!t)return;n.onBeforeUpdate();let r=s(e);switch(r?.type){case`mesh`:_(t,r.origin,e,n),`orientation`in t&&`scale`in t&&u(t,r,n);break;case`point`:_(t,r,e,n)}}function _(e,t,n,r){let{dx:i,dy:a,dz:o}=d(e,t);(i!==0||a!==0||o!==0)&&(r.onMoveStart(),n.operations?.move(i,a,o,0),r.onMove(i,a,o),r.onMoveStop())}function v(e,t){let n=s(t),r=n?.type;if(!e||!n||r!==`mesh`&&r!==`point`)return;let i=r===`mesh`,a=i?n.origin:n;e.setLocationFromPoint(a),y(e,a,t),e.type===`transform-mesh`&&i&&f(e,n),e.clearInputValues()}function y(e,t,n){e.elevation.actual=p(t),e.elevation.visible=!!n.operations?.data.coordinateHelper.hasZ(),e.elevation.readOnly=!1,e.elevation.showAsZ=!0}function b(e,t){if(e?.type!==`transform-point`)return;if(!t){e.orientation.actual=void 0,e.size.actual=void 0,e.orientation.visible=!1,e.size.visible=!1;return}let i=t.mode,{size:a,orientationClockwise:o}=t.adapter,{visualVariables:s}=e.toolOptions.tooltips,c=s?.rotation,l=o!=null&&(i==null||i===`rotate`);e.orientation.actual=l?n(o,`radians`,`geographic`):void 0,e.orientation.precision=x(c?.valueType),e.orientation.visible=l;let u=s?.size,d=a!=null&&(i==null||i===`scale`);e.size.actual=d?r(a,u?.unit??`meters`):void 0,e.size.precision=x(u?.valueType),e.size.visible=d}function x(e){switch(e){case`integer`:case`long`:return 0;default:return null}}export{m as connectTooltipToManipulatedObject,y as updateElevationFromPoint,v as updateTooltipInfoFromManipulatedObject,_ as updateXYZFromTooltipInfo};
@@ -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"../../../../Camera.js";import{clock as n}from"../../../../core/clock.js";import r from"../../../../core/Logger.js";import{rad2deg as i}from"../../../../core/mathUtils.js";import{onAbort as a}from"../../../../core/promiseUtils.js";import{createScreenPointArray as o}from"../../../../core/screenUtils.js";import{property as s,subclass as c}from"../../../../core/accessorSupport/decorators.js";import{subtract as l,add as u,copy as d,cross as f,normalize as p,scale as m,dot as h}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as g}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import _ from"../../../../geometry/Point.js";import{shortenTranslation as v}from"../../state/utils/groundNavigationUtils.js";import{OffsetCorrectionController as y}from"../../state/utils/OffsetCorrectionController.js";import b from"../../webgl/RenderCamera.js";import{InteractiveToolBase as x}from"../../../interactive/InteractiveToolBase.js";let S=class extends x{constructor(e){super(e),this.isGroundNavigationPlacementTool=!0,this._internalAbortController=new AbortController,this._tmpMouseDirection=g(),this._tmpWorldUp=g(),this._tmpHorizontalForward=g(),this._tmpTranslation=g(),this._tmpScratchVector=g(),this._hasErrorCursor=!1}initialize(){this.signal&&this.addHandles([a(this.signal,()=>{this.cancel(),this.active&&(this.view.activeTool=null)})]),this.finishToolCreation()}cancel(){super.cancel(),this._internalAbortController?.abort()}onDeactivate(){this.emit(`cancel`)}get cursor(){return this.active?this._hasErrorCursor?`not-allowed`:`crosshair`:null}async onInputEvent(e){if(!this.active||e.type!==`immediate-click`)return;e.stopPropagation();let n=this.view.state.camera,i=this.view.sceneIntersectionHelper,a=g();if(!i.intersectScreen(o(e.x,e.y),a)){r.getLogger(this).warn(`The clicked location did not produce a valid target. Try again by clicking in a different location.`),this._showErrorCursor();return}if(l(this._tmpTranslation,a,n.eye),v(this._tmpTranslation,this._tmpTranslation,.999,.5),u(a,n.eye,this._tmpTranslation),this.groundMode?.offset){let e=new b().copyFrom(n);e.eye=a,new y(this.view).immediatelyCorrectGroundElevation(e,void 0,void 0,this.groundMode),d(a,e.eye)}let s=this.cameraTurningEnabled?this._computeHeadingOffset(n,a):0,c=this.view.renderCoordsHelper.fromRenderCoords(a,new _({spatialReference:this.view.spatialReference})),f=new t({position:c,heading:this.view.camera.heading+s,tilt:85});this.emit(`success`,f),this.view.activeTool=null}_computeHeadingOffset(e,t){let n=this.view.renderCoordsHelper.worldUpAtPosition(t,this._tmpWorldUp),r=f(this._tmpHorizontalForward,n,e.viewRight);l(this._tmpMouseDirection,t,e.eye),p(this._tmpMouseDirection,this._tmpMouseDirection),l(this._tmpMouseDirection,this._tmpMouseDirection,m(this._tmpScratchVector,n,h(n,this._tmpMouseDirection))),p(this._tmpMouseDirection,this._tmpMouseDirection);let a=f(g(),this._tmpMouseDirection,r),o=Math.sign(h(a,n)),s=Math.acos(h(this._tmpMouseDirection,r));return o*i(s)}_showErrorCursor(){this._hasErrorCursor=!0,this._errorTimeout?.remove(),this._errorTimeout=n.setTimeout(()=>{this._hasErrorCursor=!1,this._errorTimeout=void 0},500)}};e([s({constructOnly:!0})],S.prototype,`view`,void 0),e([s({constructOnly:!0})],S.prototype,`signal`,void 0),e([s({constructOnly:!0})],S.prototype,`cameraTurningEnabled`,void 0),e([s({constructOnly:!0})],S.prototype,`groundMode`,void 0),e([s()],S.prototype,`_hasErrorCursor`,void 0),e([s({readOnly:!0})],S.prototype,`cursor`,null),S=e([c(`esri.views.3d.interactive.placementTools.GroundNavigationPlacementTool3D`)],S);export{S as GroundNavigationPlacementTool3D};
2
+ import{__decorate as e}from"tslib";import t from"../../../../Camera.js";import{clock as n}from"../../../../core/clock.js";import r from"../../../../core/Logger.js";import{rad2deg as i}from"../../../../core/mathUtils.js";import{onAbort as a}from"../../../../core/promiseUtils.js";import{createScreenPointArray as o}from"../../../../core/screenUtils.js";import{property as s,subclass as c}from"../../../../core/accessorSupport/decorators.js";import{subtract as l,add as u,copy as d,cross as f,normalize as p,scale as m,dot as h}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as g}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import _ from"../../../../geometry/Point.js";import{shortenTranslation as v}from"../../state/utils/groundNavigationUtils.js";import{OffsetCorrectionController as y}from"../../state/utils/OffsetCorrectionController.js";import b from"../../webgl/RenderCamera.js";import{InteractiveToolBase as x}from"../../../interactive/InteractiveToolBase.js";let S=class extends x{constructor(e){super(e),this.isGroundNavigationPlacementTool=!0,this._internalAbortController=new AbortController,this._tmpMouseDirection=g(),this._tmpWorldUp=g(),this._tmpHorizontalForward=g(),this._tmpTranslation=g(),this._tmpScratchVector=g(),this._hasErrorCursor=!1}initialize(){this.signal&&this.addHandles([a(this.signal,()=>{this.cancel(),this.active&&(this.view.activeTool=null)})]),this.finishToolCreation()}cancel(){super.cancel(),this._internalAbortController?.abort()}onDeactivate(){this.emit(`cancel`)}get cursor(){return this.active?this._hasErrorCursor?`not-allowed`:`crosshair`:null}async onInputEvent(e){if(!this.active||e.type!==`immediate-click`)return;e.stopPropagation();let n=this.view.state.camera,i=this.view.sceneIntersectionHelper,a=g();if(!i.intersectScreen(o(e.x,e.y),a)){r.getLogger(this).warn(`The clicked location did not produce a valid target. Try again by clicking in a different location.`),this._showErrorCursor();return}if(l(this._tmpTranslation,a,n.eye),v(this._tmpTranslation,this._tmpTranslation,.999,.5),u(a,n.eye,this._tmpTranslation),this.groundMode?.offset){let e=new b().copyFrom(n);e.eye=a,new y(this.view).immediatelyCorrectGroundElevation({camera:e,navigationModeOverride:this.groundMode}),d(a,e.eye)}let s=this.cameraTurningEnabled?this._computeHeadingOffset(n,a):0,c=this.view.renderCoordsHelper.fromRenderCoords(a,new _({spatialReference:this.view.spatialReference})),f=new t({position:c,heading:this.view.camera.heading+s,tilt:85});this.emit(`success`,f),this.view.activeTool=null}_computeHeadingOffset(e,t){let n=this.view.renderCoordsHelper.worldUpAtPosition(t,this._tmpWorldUp),r=f(this._tmpHorizontalForward,n,e.viewRight);l(this._tmpMouseDirection,t,e.eye),p(this._tmpMouseDirection,this._tmpMouseDirection),l(this._tmpMouseDirection,this._tmpMouseDirection,m(this._tmpScratchVector,n,h(n,this._tmpMouseDirection))),p(this._tmpMouseDirection,this._tmpMouseDirection);let a=f(g(),this._tmpMouseDirection,r),o=Math.sign(h(a,n)),s=Math.acos(h(this._tmpMouseDirection,r));return o*i(s)}_showErrorCursor(){this._hasErrorCursor=!0,this._errorTimeout?.remove(),this._errorTimeout=n.setTimeout(()=>{this._hasErrorCursor=!1,this._errorTimeout=void 0},500)}};e([s({constructOnly:!0})],S.prototype,`view`,void 0),e([s({constructOnly:!0})],S.prototype,`signal`,void 0),e([s({constructOnly:!0})],S.prototype,`cameraTurningEnabled`,void 0),e([s({constructOnly:!0})],S.prototype,`groundMode`,void 0),e([s()],S.prototype,`_hasErrorCursor`,void 0),e([s({readOnly:!0})],S.prototype,`cursor`,null),S=e([c(`esri.views.3d.interactive.placementTools.GroundNavigationPlacementTool3D`)],S);export{S as GroundNavigationPlacementTool3D};