@arcgis/core 4.28.0-next.20230821 → 4.28.0-next.20230823

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 (668) hide show
  1. package/Basemap.js +1 -1
  2. package/WebScene.js +1 -1
  3. package/arcade/functions/geomasync.js +1 -1
  4. package/arcade/portalUtils.js +1 -1
  5. package/assets/esri/core/workers/RemoteClient.js +1 -1
  6. package/assets/esri/core/workers/chunks/0746319459dbcd3ab6f7.js +1 -0
  7. package/assets/esri/core/workers/chunks/{587437526ea77f764986.js → 0759d4ab9695096d2bbd.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{d0c4367a197b193e95d4.js → 10c014a6d8767ae8a666.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{5ffabd1a90c5b08109aa.js → 196937631ac20795e0ae.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{e05b54a0b834b4e4268e.js → 1c2b69dfcd0db58150e2.js} +1 -1
  11. package/assets/esri/core/workers/chunks/1c2f7c95825fdac790be.js +1 -0
  12. package/assets/esri/core/workers/chunks/1f9c80815f90fd0886d7.js +1 -0
  13. package/assets/esri/core/workers/chunks/217910f88fe2c03e6bdd.js +1 -0
  14. package/assets/esri/core/workers/chunks/238966b2fc6cc3dfcc05.js +1 -0
  15. package/assets/esri/core/workers/chunks/2c9f709d64954b3c1650.js +1 -0
  16. package/assets/esri/core/workers/chunks/35faede04d4539aab6e8.js +1 -0
  17. package/assets/esri/core/workers/chunks/3e3edcbacf8eaf275b97.js +1 -0
  18. package/assets/esri/core/workers/chunks/{b78dc6cbe14e5817b4d9.js → 4968018bc693c053fdd2.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{c35b850fbfcb28133235.js → 49a1ba3e7ea204adeddb.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{12b8fe0374fa9ab4ca09.js → 49cf3ae224f56f45f65b.js} +1 -1
  21. package/assets/esri/core/workers/chunks/5330040eeacc9c03fbdb.js +1 -0
  22. package/assets/esri/core/workers/chunks/54aaa21144431b29b6ed.js +1 -0
  23. package/assets/esri/core/workers/chunks/{6c40f16e6d10321295d8.js → 5b13d28cf5efc312a21c.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{d6c96a20e9640b433719.js → 67c6618339d323460d45.js} +57 -57
  25. package/assets/esri/core/workers/chunks/{dd86f43505b636eb41c0.js → 7714c16f9c8860efd461.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{752d389c7bdcbe7004dc.js → 83e0af5522a672c2c73b.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{873111ddf4813cdd4903.js → 872d0d4bf364be43a92e.js} +1 -1
  28. package/assets/esri/core/workers/chunks/8a784ddd5607f1ddbb5b.js +1 -0
  29. package/assets/esri/core/workers/chunks/{0cad2b991d0d0fd07846.js → 8c9c4162617f31e3f5f2.js} +1 -1
  30. package/assets/esri/core/workers/chunks/8db3ee2931be5cca3f5e.js +1 -0
  31. package/assets/esri/core/workers/chunks/{fd3920159ab9748402a2.js → 92350664e2719a9e860e.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{ff755962fd1c771f5be5.js → a3b461174984a1cb92b3.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{dd4c6d000222798a0317.js → a47aff9c97c5ce52d0dc.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{028534e3d4e13c9ea687.js → a645f08a7678f2ca037c.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{d9fe6cfbc9ad2920ca9c.js → aca45e54ec925002df9a.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{40ff0e7c948615b8bfc0.js → b07d32a60307d04391fc.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{fdc703330bf194a48e0e.js → b086e798f43dacb0175f.js} +1 -1
  38. package/assets/esri/core/workers/chunks/bd0b9647880cbbec95e2.js +1 -0
  39. package/assets/esri/core/workers/chunks/{ab420bacdd63ee8fbd8b.js → bf9b5e2803a5444bd944.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{c58ca2685eb7e559f428.js → c0a2a737a3085690afc5.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{e04e8af4224fff8c3ec3.js → c34615c0b7ad83d1ad24.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{05ab09713d599687afa3.js → d105ee2e394e2c48303c.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{ef03b78659c72de93076.js → d183144fa504064d23d3.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{4f5207abb034375927c7.js → d8495c6dcd4d9bec8dd6.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{1a485d63330f5e7fe4e3.js → dba61fa8cbb57dde54b2.js} +1 -1
  46. package/assets/esri/core/workers/chunks/{8a306e3aa210861b8c17.js → deb0bd575c63d9dbcde5.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{d0a2f9ca338b60f2ba2a.js → e302fe771d92ccf945a3.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{cb0a5bc6deaa98026bb5.js → ed0dea88b2865fc6e06b.js} +1 -1
  49. package/assets/esri/core/workers/chunks/ed733eea5d065131b159.js +1 -0
  50. package/assets/esri/core/workers/chunks/{1c51c52fb2233153d7ae.js → f3ec53ee9567bb7e4d2f.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{4922a0fed7cbc6895882.js → f701a5afa1b730c51a49.js} +1 -1
  52. package/assets/esri/t9n/common.json +1 -1
  53. package/assets/esri/t9n/common_ar.json +1 -1
  54. package/assets/esri/t9n/common_bg.json +1 -1
  55. package/assets/esri/t9n/common_ca.json +1 -1
  56. package/assets/esri/t9n/common_cs.json +1 -1
  57. package/assets/esri/t9n/common_da.json +1 -1
  58. package/assets/esri/t9n/common_de.json +1 -1
  59. package/assets/esri/t9n/common_el.json +1 -1
  60. package/assets/esri/t9n/common_en.json +1 -1
  61. package/assets/esri/t9n/common_es.json +1 -1
  62. package/assets/esri/t9n/common_et.json +1 -1
  63. package/assets/esri/t9n/common_fi.json +1 -1
  64. package/assets/esri/t9n/common_fr.json +1 -1
  65. package/assets/esri/t9n/common_he.json +1 -1
  66. package/assets/esri/t9n/common_hr.json +1 -1
  67. package/assets/esri/t9n/common_hu.json +1 -1
  68. package/assets/esri/t9n/common_id.json +1 -1
  69. package/assets/esri/t9n/common_it.json +1 -1
  70. package/assets/esri/t9n/common_ja.json +1 -1
  71. package/assets/esri/t9n/common_ko.json +1 -1
  72. package/assets/esri/t9n/common_lt.json +1 -1
  73. package/assets/esri/t9n/common_lv.json +1 -1
  74. package/assets/esri/t9n/common_nb.json +1 -1
  75. package/assets/esri/t9n/common_nl.json +1 -1
  76. package/assets/esri/t9n/common_pl.json +1 -1
  77. package/assets/esri/t9n/common_pt-BR.json +1 -1
  78. package/assets/esri/t9n/common_pt-PT.json +1 -1
  79. package/assets/esri/t9n/common_ro.json +1 -1
  80. package/assets/esri/t9n/common_ru.json +1 -1
  81. package/assets/esri/t9n/common_sk.json +1 -1
  82. package/assets/esri/t9n/common_sl.json +1 -1
  83. package/assets/esri/t9n/common_sr.json +1 -1
  84. package/assets/esri/t9n/common_sv.json +1 -1
  85. package/assets/esri/t9n/common_th.json +1 -1
  86. package/assets/esri/t9n/common_tr.json +1 -1
  87. package/assets/esri/t9n/common_uk.json +1 -1
  88. package/assets/esri/t9n/common_vi.json +1 -1
  89. package/assets/esri/t9n/common_zh-CN.json +1 -1
  90. package/assets/esri/t9n/common_zh-TW.json +1 -1
  91. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +10 -17
  92. package/assets/esri/themes/dark/main.css +1 -1
  93. package/assets/esri/themes/light/main.css +1 -1
  94. package/assets/esri/themes/light/view.css +1 -1
  95. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_ar.json +1 -0
  96. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_bg.json +1 -0
  97. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_bs.json +1 -0
  98. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_ca.json +1 -0
  99. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_cs.json +1 -0
  100. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_da.json +1 -0
  101. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_de.json +1 -0
  102. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_el.json +1 -0
  103. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_es.json +1 -0
  104. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_et.json +1 -0
  105. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_fi.json +1 -0
  106. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_fr.json +1 -0
  107. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_he.json +1 -0
  108. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_hr.json +1 -0
  109. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_hu.json +1 -0
  110. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_id.json +1 -0
  111. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_it.json +1 -0
  112. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_ja.json +1 -0
  113. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_ko.json +1 -0
  114. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_lt.json +1 -0
  115. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_lv.json +1 -0
  116. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_nb.json +1 -0
  117. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_nl.json +1 -0
  118. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_pl.json +1 -0
  119. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_pt-BR.json +1 -0
  120. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_pt-PT.json +1 -0
  121. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_ro.json +1 -0
  122. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_ru.json +1 -0
  123. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_sk.json +1 -0
  124. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_sl.json +1 -0
  125. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_sr.json +1 -0
  126. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_sv.json +1 -0
  127. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_th.json +1 -0
  128. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_tr.json +1 -0
  129. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_uk.json +1 -0
  130. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_vi.json +1 -0
  131. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_zh-CN.json +1 -0
  132. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_zh-HK.json +1 -0
  133. package/assets/esri/widgets/DirectionalPad/t9n/DirectionalPad_zh-TW.json +1 -0
  134. package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
  135. package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
  136. package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
  137. package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
  138. package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
  139. package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
  140. package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
  141. package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
  142. package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
  143. package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
  144. package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
  145. package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
  146. package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
  147. package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
  148. package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
  149. package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
  150. package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
  151. package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
  152. package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
  153. package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
  154. package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
  155. package/assets/esri/widgets/Editor/t9n/Editor_nb.json +1 -1
  156. package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
  157. package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
  158. package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
  159. package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
  160. package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
  161. package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
  162. package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
  163. package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
  164. package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
  165. package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
  166. package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
  167. package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
  168. package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
  169. package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
  170. package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
  171. package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
  172. package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
  173. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ar.json +1 -1
  174. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_bg.json +1 -1
  175. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_bs.json +1 -1
  176. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ca.json +1 -1
  177. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_cs.json +1 -1
  178. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_da.json +1 -1
  179. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_de.json +1 -1
  180. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_el.json +1 -1
  181. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_es.json +1 -1
  182. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_et.json +1 -1
  183. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_fi.json +1 -1
  184. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_fr.json +1 -1
  185. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_he.json +1 -1
  186. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_hr.json +1 -1
  187. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_hu.json +1 -1
  188. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_id.json +1 -1
  189. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_it.json +1 -1
  190. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ja.json +1 -1
  191. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ko.json +1 -1
  192. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_lt.json +1 -1
  193. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_lv.json +1 -1
  194. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_nb.json +1 -1
  195. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_nl.json +1 -1
  196. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pl.json +1 -1
  197. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pt-BR.json +1 -1
  198. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pt-PT.json +1 -1
  199. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ro.json +1 -1
  200. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ru.json +1 -1
  201. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sk.json +1 -1
  202. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sl.json +1 -1
  203. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sr.json +1 -1
  204. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sv.json +1 -1
  205. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_th.json +1 -1
  206. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_tr.json +1 -1
  207. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_uk.json +1 -1
  208. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_vi.json +1 -1
  209. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-CN.json +1 -1
  210. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-HK.json +1 -1
  211. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-TW.json +1 -1
  212. package/chunks/ChapmanAtmosphere.glsl.js +1 -1
  213. package/chunks/Clouds.glsl.js +1 -1
  214. package/chunks/CloudsComposition.glsl.js +2 -2
  215. package/chunks/ComponentShader.glsl.js +36 -36
  216. package/chunks/Fog.glsl.js +1 -1
  217. package/chunks/LaserlinePath.glsl.js +1 -1
  218. package/chunks/Laserlines.glsl.js +1 -1
  219. package/chunks/LineSeries.js +1 -1
  220. package/chunks/NativeLine.glsl.js +8 -20
  221. package/chunks/PointRenderer.glsl.js +1 -1
  222. package/chunks/Precipitation.glsl.js +2 -2
  223. package/chunks/SSAOBlur.glsl.js +1 -1
  224. package/chunks/ShadowCastAccumulate.glsl.js +1 -1
  225. package/chunks/ShadowCastVisualize.glsl.js +2 -2
  226. package/chunks/ShadowHighlight.glsl.js +1 -1
  227. package/chunks/Stars.glsl.js +1 -1
  228. package/chunks/Terrain.glsl.js +35 -35
  229. package/chunks/TextureOnly.glsl.js +1 -1
  230. package/chunks/Theme.js +1 -1
  231. package/chunks/boundedPlane.js +1 -1
  232. package/chunks/cameraUtilsPlanar.js +1 -1
  233. package/chunks/cameraUtilsSpherical.js +1 -1
  234. package/chunks/chartUtilsAm5.js +1 -1
  235. package/chunks/mat3.js +1 -1
  236. package/chunks/mat3f64.js +1 -1
  237. package/chunks/mat4.js +1 -1
  238. package/chunks/mat4f64.js +1 -1
  239. package/chunks/quat.js +1 -1
  240. package/chunks/quat2.js +1 -1
  241. package/chunks/quatf64.js +1 -1
  242. package/chunks/sphere.js +1 -1
  243. package/chunks/terrainUtilsPlanar.js +1 -1
  244. package/chunks/vec3.js +1 -1
  245. package/chunks/vec3f64.js +1 -1
  246. package/chunks/vec4.js +1 -1
  247. package/chunks/vec4f64.js +1 -1
  248. package/core/VectorStack.js +1 -1
  249. package/core/accessorSupport/decorators/persistable.js +1 -1
  250. package/core/accessorSupport/testSupport.js +1 -1
  251. package/core/colorUtils.js +1 -1
  252. package/core/libs/gl-matrix-2/factories/mat3f64.js +1 -1
  253. package/core/libs/gl-matrix-2/factories/mat4f64.js +1 -1
  254. package/core/libs/gl-matrix-2/factories/quatf64.js +1 -1
  255. package/core/libs/gl-matrix-2/factories/vec3f64.js +1 -1
  256. package/core/libs/gl-matrix-2/factories/vec4f64.js +1 -1
  257. package/core/libs/gl-matrix-2/math/mat3.js +1 -1
  258. package/core/libs/gl-matrix-2/math/mat4.js +1 -1
  259. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  260. package/core/libs/gl-matrix-2/math/vec4.js +1 -1
  261. package/core/mathUtils.js +1 -1
  262. package/core/perspectiveUtils.js +1 -1
  263. package/form/elements/inputs/DatePickerInput.d.ts +4 -0
  264. package/form/elements/inputs/DatePickerInput.js +5 -0
  265. package/form/elements/inputs/DateTimeOffsetPickerInput.d.ts +4 -0
  266. package/form/elements/inputs/DateTimeOffsetPickerInput.js +5 -0
  267. package/form/elements/inputs/TimePickerInput.d.ts +4 -0
  268. package/form/elements/inputs/TimePickerInput.js +5 -0
  269. package/form/elements/support/inputs.js +1 -1
  270. package/geometry/projection/computeTranslationToOriginAndRotation.js +1 -1
  271. package/geometry/projection/projectDirection.js +1 -1
  272. package/geometry/support/MeshTransform.js +1 -1
  273. package/geometry/support/axisAngle.js +1 -1
  274. package/geometry/support/axisAngleDegrees.js +1 -1
  275. package/geometry/support/clipRay.js +1 -1
  276. package/geometry/support/coordinateSystem.js +1 -1
  277. package/geometry/support/frustum.js +1 -1
  278. package/geometry/support/lineSegment.js +1 -1
  279. package/geometry/support/meshUtils/centerAt.js +1 -1
  280. package/geometry/support/meshUtils/exporters/gltf/geometry.js +1 -1
  281. package/geometry/support/meshUtils/exporters/gltf/gltf.js +1 -1
  282. package/geometry/support/meshUtils/exporters/gltf/node.js +1 -1
  283. package/geometry/support/meshUtils/georeference.js +1 -1
  284. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  285. package/geometry/support/meshUtils/merge.js +1 -1
  286. package/geometry/support/meshUtils/offset.js +1 -1
  287. package/geometry/support/meshUtils/primitives.js +1 -1
  288. package/geometry/support/meshUtils/projection.js +1 -1
  289. package/geometry/support/meshUtils/rotate.js +1 -1
  290. package/geometry/support/meshUtils/scale.js +1 -1
  291. package/geometry/support/meshVertexSpaceUtils.js +1 -1
  292. package/geometry/support/plane.js +1 -1
  293. package/geometry/support/ray.js +1 -1
  294. package/geometry/support/triangle.js +1 -1
  295. package/geometry/support/vector.js +1 -1
  296. package/interfaces.d.ts +405 -7
  297. package/layers/VoxelWasmPerSceneView.js +1 -1
  298. package/layers/mixins/SceneService.js +1 -1
  299. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  300. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  301. package/layers/orientedImagery/transformations/imageToGroundUtils.js +1 -1
  302. package/layers/orientedImagery/transformations/utils.js +1 -1
  303. package/layers/support/ControlPointsGeoreference.js +1 -1
  304. package/layers/support/ImageElement.js +1 -1
  305. package/layers/support/SceneFilter.js +1 -1
  306. package/layers/support/layerUtils.js +1 -1
  307. package/layers/video/VideoCameraSensorModel.js +1 -1
  308. package/layers/voxel/VoxelVolume.js +1 -1
  309. package/layers/voxel/voxelPlaneUtils.js +1 -1
  310. package/package.json +1 -1
  311. package/portal/support/resourceExtension.js +1 -1
  312. package/portal/support/resourceUtils.js +1 -1
  313. package/portal/support/utils.js +5 -0
  314. package/smartMapping/popup/support/utils.js +1 -1
  315. package/smartMapping/raster/renderers/classBreaks.js +1 -1
  316. package/smartMapping/raster/support/adapters/ImageryLayerAdapter.js +1 -1
  317. package/smartMapping/raster/support/adapters/ImageryTileLayerAdapter.js +1 -1
  318. package/smartMapping/raster/support/adapters/RasterLayerAdapter.js +1 -1
  319. package/support/revision.js +1 -1
  320. package/symbols/cim/CIMImageColorSubstitutionHelper.js +1 -1
  321. package/symbols/support/previewSymbol3D.js +1 -1
  322. package/views/2d/ViewState.js +1 -1
  323. package/views/2d/engine/flow/FlowDisplayObject.js +1 -1
  324. package/views/2d/engine/imagery/RasterVFTile.js +1 -1
  325. package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
  326. package/views/2d/engine/vectorTiles/VectorTile.js +1 -1
  327. package/views/2d/engine/vectorTiles/VectorTileRendererHelper3D.js +1 -1
  328. package/views/2d/engine/webgl/Overlay.js +1 -1
  329. package/views/2d/engine/webgl/OverlayContainer.js +1 -1
  330. package/views/2d/engine/webgl/TiledDisplayObject.js +1 -1
  331. package/views/2d/engine/webgl/WGLTile.js +1 -1
  332. package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
  333. package/views/2d/engine/webgl/brushes/WGLBrushVTLSymbol.js +1 -1
  334. package/views/2d/interactive/editingTools/TransformTool.js +1 -1
  335. package/views/2d/interactive/editingTools/manipulations/RotateManipulation.js +1 -1
  336. package/views/2d/interactive/editingTools/manipulations/ScaleManipulation.js +1 -1
  337. package/views/2d/layers/graphics/GraphicBoundsRenderer.js +1 -1
  338. package/views/2d/layers/support/DebugOverlay.js +1 -1
  339. package/views/2d/navigation/actions/Pan.js +1 -1
  340. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  341. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  342. package/views/3d/analysis/Dimension/DimensionTool.js +1 -1
  343. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  344. package/views/3d/analysis/Dimension/lengthDimensionConstraintUtils.js +1 -1
  345. package/views/3d/analysis/Dimension/lengthDimensionManipulatorUtils.js +1 -1
  346. package/views/3d/analysis/Dimension/lengthDimensionUtils.js +1 -1
  347. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementController.js +1 -1
  348. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  349. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  350. package/views/3d/analysis/LineOfSight/LineOfSightIntersectionResult.js +1 -1
  351. package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
  352. package/views/3d/analysis/LineOfSight/LineOfSightVisualization.js +1 -1
  353. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  354. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  355. package/views/3d/analysis/images/Factory.js +5 -0
  356. package/views/3d/analysis/support/measurementUtils.js +1 -1
  357. package/views/3d/analysis/support/viewUtils.js +1 -1
  358. package/views/3d/animation/pointToPoint/Animation.js +1 -1
  359. package/views/3d/animation/pointToPoint/Camera.js +1 -1
  360. package/views/3d/camera/constraintUtils/altitude.js +1 -1
  361. package/views/3d/camera/constraintUtils/common.js +1 -1
  362. package/views/3d/camera/constraintUtils/distance.js +1 -1
  363. package/views/3d/camera/constraintUtils/surfaceCollision.js +1 -1
  364. package/views/3d/camera/constraintUtils/tilt.js +1 -1
  365. package/views/3d/camera/intersectionUtils.js +1 -1
  366. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  367. package/views/3d/environment/CloudsGenerator.js +1 -1
  368. package/views/3d/environment/CloudsParameters.js +1 -1
  369. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  370. package/views/3d/environment/Fog.js +1 -1
  371. package/views/3d/environment/LocalAtmosphere.js +1 -1
  372. package/views/3d/environment/MarsAtmosphere.js +1 -1
  373. package/views/3d/environment/SceneViewEnvironment.js +1 -1
  374. package/views/3d/environment/SceneViewEnvironmentManager.js +1 -1
  375. package/views/3d/environment/Stars.js +1 -1
  376. package/views/3d/environment/StarsTechnique.js +1 -1
  377. package/views/3d/externalRenderers.js +1 -1
  378. package/views/3d/glTF/internal/Resource.js +1 -1
  379. package/views/3d/interactive/Manipulator3D.js +1 -1
  380. package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
  381. package/views/3d/interactive/editingTools/dragEventPipeline3D.js +1 -1
  382. package/views/3d/interactive/editingTools/lineGraphicVisualElementUtils.js +1 -1
  383. package/views/3d/interactive/editingTools/manipulations/MoveXYAxisManipulation.js +1 -1
  384. package/views/3d/interactive/editingTools/manipulations/MoveXYDiscManipulation.js +1 -1
  385. package/views/3d/interactive/editingTools/manipulations/MoveZManipulation.js +1 -1
  386. package/views/3d/interactive/editingTools/reshapeGraphic/ReshapeOperation.js +1 -1
  387. package/views/3d/interactive/editingTools/reshapeGraphic/edgeOffsetUtils.js +1 -1
  388. package/views/3d/interactive/editingTools/transformGraphic/ExtentTransformTool.js +1 -1
  389. package/views/3d/interactive/editingTools/transformGraphic/GraphicScaleRotateTransform.js +1 -1
  390. package/views/3d/interactive/editingTools/transformGraphic/ScaleRotateMeshAdapter.js +1 -1
  391. package/views/3d/interactive/editingTools/transformGraphic/undoRecords.js +1 -1
  392. package/views/3d/interactive/manipulatorUtils.js +1 -1
  393. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js +1 -1
  394. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  395. package/views/3d/interactive/visualElements/LabelVisualElement.js +1 -1
  396. package/views/3d/interactive/visualElements/LaserlineVisualElement.js +1 -1
  397. package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
  398. package/views/3d/interactive/visualElements/MarkerVisualElement.js +1 -1
  399. package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
  400. package/views/3d/interactive/visualElements/MeasurementArrowVisualElement.js +1 -1
  401. package/views/3d/interactive/visualElements/Object3DVisualElement.js +1 -1
  402. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  403. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  404. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  405. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  406. package/views/3d/interactive/visualElements/SlicePlaneVisualElement.js +1 -1
  407. package/views/3d/interactive/visualElements/VerticesVisualElement.js +1 -1
  408. package/views/3d/interactive/visualElements/VisualElementResources.js +1 -1
  409. package/views/3d/interactive/visualElements/support/Segment.js +1 -1
  410. package/views/3d/layers/DynamicLayerView3D.js +1 -1
  411. package/views/3d/layers/I3SMeshView3D.js +1 -1
  412. package/views/3d/layers/MediaLayerView3D.js +1 -1
  413. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  414. package/views/3d/layers/PointCloudWorker.js +1 -1
  415. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  416. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  417. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  418. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  419. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  420. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  421. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  422. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  423. package/views/3d/layers/graphics/Graphics3DLodInstanceGraphicLayer.js +1 -1
  424. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  425. package/views/3d/layers/graphics/Graphics3DMeshObject3DGraphicLayer.js +1 -1
  426. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  427. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  428. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  429. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  430. package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
  431. package/views/3d/layers/graphics/LabelParameters.js +1 -1
  432. package/views/3d/layers/graphics/elevationAlignmentUtils.js +1 -1
  433. package/views/3d/layers/graphics/graphicUtils.js +1 -1
  434. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  435. package/views/3d/layers/graphics/wosrLoader.js +1 -1
  436. package/views/3d/layers/i3s/I3SClientNodeLoader.js +1 -1
  437. package/views/3d/layers/i3s/I3SElevationProvider.js +1 -1
  438. package/views/3d/layers/i3s/I3SGeometryUtil.js +1 -1
  439. package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
  440. package/views/3d/layers/i3s/I3SProjectionUtil.js +1 -1
  441. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  442. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  443. package/views/3d/layers/i3s/LoDUtil.js +1 -1
  444. package/views/3d/layers/i3s/PointRenderer.js +1 -1
  445. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  446. package/views/3d/layers/support/FeatureTileMeasurements3D.js +1 -1
  447. package/views/3d/layers/support/FeatureTileVisibility3D.js +1 -1
  448. package/views/3d/layers/support/I3STreeDebugger.js +1 -1
  449. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  450. package/views/3d/layers/support/edgeUtils.js +1 -1
  451. package/views/3d/layers/support/patternUtils.js +1 -1
  452. package/views/3d/layers/support/uvUtils.js +1 -1
  453. package/views/3d/state/Frustum.js +1 -1
  454. package/views/3d/state/NearFarHeuristic.js +1 -1
  455. package/views/3d/state/ViewStateManager.js +1 -1
  456. package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
  457. package/views/3d/state/controllers/RotateController.js +1 -1
  458. package/views/3d/state/controllers/global/PinchAndPanController.js +1 -1
  459. package/views/3d/state/controllers/global/ZoomController.js +1 -1
  460. package/views/3d/state/controllers/global/ZoomStepController.js +1 -1
  461. package/views/3d/state/controllers/local/PinchAndPanController.js +1 -1
  462. package/views/3d/state/controllers/local/ZoomController.js +1 -1
  463. package/views/3d/state/controllers/local/ZoomStepController.js +1 -1
  464. package/views/3d/state/controllers/momentum/PanPlanarMomentumController.js +1 -1
  465. package/views/3d/state/controllers/momentum/PanSphericalMomentumController.js +1 -1
  466. package/views/3d/state/controllers/momentum/RotationMomentumController.js +1 -1
  467. package/views/3d/state/controllers/momentum/ZoomPlanarMomentumController.js +1 -1
  468. package/views/3d/state/controllers/momentum/ZoomSphericalMomentumController.js +1 -1
  469. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  470. package/views/3d/state/utils/navigationUtils.js +1 -1
  471. package/views/3d/state/utils/viewUtils.js +1 -1
  472. package/views/3d/support/FrustumExtentIntersection.js +1 -1
  473. package/views/3d/support/LaserLineRenderer.js +1 -1
  474. package/views/3d/support/LaserlinePathData.js +1 -1
  475. package/views/3d/support/RenderCoordsHelper.js +1 -1
  476. package/views/3d/support/StreamTextureCollection.js +1 -1
  477. package/views/3d/support/TextureCollection.js +1 -1
  478. package/views/3d/support/cameraUtils.js +1 -1
  479. package/views/3d/support/cameraUtilsInternal.js +1 -1
  480. package/views/3d/support/engineContent/sdfPrimitives.js +1 -1
  481. package/views/3d/support/geometryUtils/ray.js +1 -1
  482. package/views/3d/support/intersectionUtils.js +1 -1
  483. package/views/3d/support/mathUtils.js +1 -1
  484. package/views/3d/support/orientedBoundingBox.js +1 -1
  485. package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
  486. package/views/3d/support/pointsOfInterest/CenterOnSurface.js +1 -1
  487. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  488. package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
  489. package/views/3d/support/sunUtils.js +1 -1
  490. package/views/3d/support/viewpointUtils.js +1 -1
  491. package/views/3d/terrain/Overlay.js +1 -1
  492. package/views/3d/terrain/OverlayContent.js +5 -0
  493. package/views/3d/terrain/OverlayManager.js +1 -1
  494. package/views/3d/terrain/OverlayRenderTarget.js +1 -1
  495. package/views/3d/terrain/OverlayRenderer.js +1 -1
  496. package/views/3d/terrain/PatchGeometry.js +1 -1
  497. package/views/3d/terrain/PatchRenderData.js +1 -1
  498. package/views/3d/terrain/SphericalPatch.js +1 -1
  499. package/views/3d/terrain/TerrainRenderer.js +1 -1
  500. package/views/3d/terrain/TerrainSurface.js +1 -1
  501. package/views/3d/terrain/TextureReference.js +1 -1
  502. package/views/3d/terrain/Tile.js +1 -1
  503. package/views/3d/terrain/TileCompositor.js +1 -1
  504. package/views/3d/terrain/TileOverlayData.js +1 -1
  505. package/views/3d/terrain/TileRenderInfo.js +1 -1
  506. package/views/3d/terrain/interfaces.js +1 -1
  507. package/views/3d/terrain/support/MultiSizeFramebuffer.js +1 -1
  508. package/views/3d/webgl-engine/Stage.js +1 -1
  509. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  510. package/views/3d/webgl-engine/collections/Component/DepthRange.js +1 -1
  511. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  512. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  513. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  514. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +1 -1
  515. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +1 -1
  516. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +1 -1
  517. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +1 -1
  518. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +1 -1
  519. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +32 -53
  520. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +6 -6
  521. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Terrain.glsl.js +1 -1
  522. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js +9 -9
  523. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  524. package/views/3d/webgl-engine/core/util/TwoVectorPosition.js +1 -1
  525. package/views/3d/webgl-engine/effects/highlight/HighlightPassParameters.js +1 -1
  526. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  527. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightTechnique.js +1 -1
  528. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  529. package/views/3d/webgl-engine/lib/BoundingInfo.js +1 -1
  530. package/views/3d/webgl-engine/lib/Camera.js +1 -1
  531. package/views/3d/webgl-engine/lib/CascadeCamera.js +1 -1
  532. package/views/3d/webgl-engine/lib/ContentObject.js +1 -1
  533. package/views/3d/webgl-engine/lib/GLMaterialRepository.js +1 -1
  534. package/views/3d/webgl-engine/lib/GLTextureMaterial.js +1 -1
  535. package/views/3d/webgl-engine/lib/Geometry.js +1 -1
  536. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  537. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  538. package/views/3d/webgl-engine/lib/ITexture.js +5 -0
  539. package/views/3d/webgl-engine/lib/Intersector.js +1 -1
  540. package/views/3d/webgl-engine/lib/IntersectorTarget.js +1 -1
  541. package/views/3d/webgl-engine/lib/LocalOriginManager.js +1 -1
  542. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  543. package/views/3d/webgl-engine/lib/ObjectAndLayerIdRenderHelper.js +1 -1
  544. package/views/3d/webgl-engine/lib/Octree.js +1 -1
  545. package/views/3d/webgl-engine/lib/Path.js +1 -1
  546. package/views/3d/webgl-engine/lib/PathExtruder.js +1 -1
  547. package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
  548. package/views/3d/webgl-engine/lib/PathVertex.js +1 -1
  549. package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
  550. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  551. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  552. package/views/3d/webgl-engine/lib/ShadowCastRenderer.js +1 -1
  553. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  554. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  555. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  556. package/views/3d/webgl-engine/lib/TextureRepository.js +1 -1
  557. package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
  558. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  559. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderParameters.js +1 -1
  560. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  561. package/views/3d/webgl-engine/lib/edgeRendering/edgeBufferWriters.js +1 -1
  562. package/views/3d/webgl-engine/lib/edgeRendering/edgePreprocessing.js +1 -1
  563. package/views/3d/webgl-engine/lib/geometryDataUtils.js +1 -1
  564. package/views/3d/webgl-engine/lib/intersectorUtils.js +1 -1
  565. package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
  566. package/views/3d/webgl-engine/lib/lodRendering/InstanceOctree.js +1 -1
  567. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  568. package/views/3d/webgl-engine/lib/octreeUtils.js +1 -1
  569. package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
  570. package/views/3d/webgl-engine/lib/verticalOffsetUtils.js +1 -1
  571. package/views/3d/webgl-engine/lighting/SceneLighting.js +1 -1
  572. package/views/3d/webgl-engine/lighting/SphericalHarmonics.js +1 -1
  573. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  574. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  575. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  576. package/views/3d/webgl-engine/materials/LineDrawParameters.js +1 -1
  577. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  578. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  579. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  580. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  581. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  582. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  583. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  584. package/views/3d/webgl-engine/materials/internal/MaterialUtil.js +1 -1
  585. package/views/3d/webgl-engine/materials/pbrUtils.js +1 -1
  586. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  587. package/views/3d/webgl-engine/parts/Model.js +1 -1
  588. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  589. package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
  590. package/views/3d/webgl-engine/shaders/NativeLineTechnique.js +1 -1
  591. package/views/3d/webgl-engine/shaders/NativeLineTechniqueConfiguration.js +1 -1
  592. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  593. package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechnique.js +1 -1
  594. package/views/GroundView.js +1 -1
  595. package/views/SceneView.js +1 -1
  596. package/views/draw/DrawManipulator.js +1 -1
  597. package/views/draw/support/createUtils.js +1 -1
  598. package/views/draw/support/surfaceCoordinateSystems.js +1 -1
  599. package/views/interactive/GraphicManipulator.js +1 -1
  600. package/views/interactive/ManipulatorCollection.js +1 -1
  601. package/views/interactive/ToolViewManagerManipulatorState.js +1 -1
  602. package/views/interactive/coordinateHelper.js +1 -1
  603. package/views/interactive/dragEventPipeline.js +1 -1
  604. package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
  605. package/views/interactive/editGeometry/support/editPlaneUtils.js +1 -1
  606. package/views/interactive/sketch/constraints.js +1 -1
  607. package/views/interactive/sketch/normalizedPoint.js +1 -1
  608. package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
  609. package/views/interactive/snapping/RightAngleSnapper.js +1 -1
  610. package/views/interactive/snapping/candidates/ParallelLineSnappingCandidate.js +1 -1
  611. package/views/interactive/snapping/candidates/RightAngleTriangleSnappingCandidate.js +1 -1
  612. package/views/interactive/snapping/featureSources/sceneLayerSource/SceneLayerSnappingSourceWorker.js +1 -1
  613. package/views/interactive/snapping/featureSources/sceneLayerSource/sceneLayerSnappingUtils.js +1 -1
  614. package/views/interactive/snapping/hints/IntersectionSnappingHint.js +1 -1
  615. package/views/interactive/snapping/hints/LineSnappingHint.js +1 -1
  616. package/views/interactive/snapping/hints/ParallelSnappingHint.js +1 -1
  617. package/views/interactive/snapping/hints/PointSnappingHint.js +1 -1
  618. package/views/interactive/snapping/hints/RightAngleSnappingHint.js +1 -1
  619. package/views/interactive/support/viewUtils.js +1 -1
  620. package/views/interactive/tooltip/constraintUtils.js +1 -1
  621. package/views/navigation/PanPlanarMomentumEstimator.js +1 -1
  622. package/views/navigation/PanSphericalMomentumEstimator.js +1 -1
  623. package/views/navigation/gamepadAndKeyboardUtils.js +1 -1
  624. package/views/support/euclideanAreaMeasurementUtils.js +1 -1
  625. package/views/support/euclideanLengthMeasurementUtils.js +1 -1
  626. package/views/support/geometry3dUtils.js +1 -1
  627. package/views/support/layerViewUtils.js +1 -1
  628. package/webdoc/support/saveUtils.js +1 -1
  629. package/webscene/Slide.js +1 -1
  630. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  631. package/widgets/Editor/CreateFeaturesWorkflowData.js +1 -1
  632. package/widgets/Editor/EditorViewModel.js +1 -1
  633. package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
  634. package/widgets/Editor/UpdateRecordWorkflowData.js +1 -1
  635. package/widgets/Editor/UpdateWorkflow.js +1 -1
  636. package/widgets/Editor/workflowUtils.js +1 -1
  637. package/widgets/Editor.js +1 -1
  638. package/widgets/ElevationProfile/support/ProfileLines3D.js +1 -1
  639. package/widgets/ElevationProfile/support/constants.js +1 -1
  640. package/widgets/ElevationProfile/support/geometryUtils.js +1 -1
  641. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  642. package/widgets/OrientedImageryViewer.js +1 -1
  643. package/widgets/Sketch.js +1 -1
  644. package/widgets/smartMapping/BinaryColorSizeSlider/BinaryColorSizeSliderViewModel.d.ts +4 -0
  645. package/widgets/smartMapping/BinaryColorSizeSlider.d.ts +4 -0
  646. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
  647. package/widgets/support/Selector2D/selectorUtils.js +1 -1
  648. package/widgets/support/templateUtils.js +5 -0
  649. package/assets/esri/core/workers/chunks/19857e5420cdf23c5f2e.js +0 -1
  650. package/assets/esri/core/workers/chunks/26289742b9280f0b5247.js +0 -1
  651. package/assets/esri/core/workers/chunks/46f6b77e586d78aeb75c.js +0 -1
  652. package/assets/esri/core/workers/chunks/4e39252f40bc57be9d12.js +0 -1
  653. package/assets/esri/core/workers/chunks/54513578f735d274a20e.js +0 -1
  654. package/assets/esri/core/workers/chunks/8dab0acdbbd5c282645a.js +0 -1
  655. package/assets/esri/core/workers/chunks/8e4b01a0cb8c8926f2b6.js +0 -1
  656. package/assets/esri/core/workers/chunks/a3a1d4f32e518e97d071.js +0 -1
  657. package/assets/esri/core/workers/chunks/b2d4a56197dcabdbae35.js +0 -1
  658. package/assets/esri/core/workers/chunks/be0565d923afba7ca300.js +0 -1
  659. package/assets/esri/core/workers/chunks/c99fa4189a114370b004.js +0 -1
  660. package/assets/esri/core/workers/chunks/daa79c14150c12d8bc3d.js +0 -1
  661. package/assets/esri/core/workers/chunks/ebd006fcd568a7731115.js +0 -1
  662. package/assets/esri/core/workers/chunks/f67388c4b7103fda6633.js +0 -1
  663. package/views/3d/analysis/Slice/images/Factory.js +0 -5
  664. /package/assets/esri/views/3d/analysis/{Slice/images → images}/heading-rotate.ts.svg +0 -0
  665. /package/assets/esri/views/3d/analysis/{Slice/images → images}/tilt-rotate.ts.svg +0 -0
  666. /package/views/3d/analysis/{Slice/images → images}/generateTextures.js +0 -0
  667. /package/views/3d/analysis/{Slice/images → images}/heading-rotate-svg.js +0 -0
  668. /package/views/3d/analysis/{Slice/images → images}/tilt-rotate-svg.js +0 -0
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../chunks/tslib.es6.js";import{createTask as e}from"../../core/asyncUtils.js";import a from"../../core/Collection.js";import{deprecated as r}from"../../core/deprecate.js";import i from"../../core/Error.js";import s from"../../core/Evented.js";import o from"../../core/Logger.js";import{abortMaybe as n}from"../../core/maybe.js";import{throwIfAborted as l}from"../../core/promiseUtils.js";import{watch as d,on as p,when as c,whenOnce as u,syncAndInitial as h,initial as w}from"../../core/reactiveUtils.js";import{property as f}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as y}from"../../core/support/UpdatingHandles.js";import k from"../../layers/GraphicsLayer.js";import{isEditableLayer as g}from"../../layers/support/editableLayers.js";import{isTable as v,getOwningPortalUrl as W,getEffectiveLayerCapabilities as b,isFeatureLayer as _}from"../../layers/support/layerUtils.js";import{parseKnownArcGISOnlineDomain as F}from"../../portal/support/urlUtils.js";import C from"../Attachments/AttachmentsViewModel.js";import E from"./CreateFeaturesWorkflow.js";import I from"./CreateWorkflow.js";import{workflowDeprecation as U}from"./deprecationUtils.js";import A from"./UpdateWorkflow.js";import{whenEditorLayerView as O}from"./workflowUtils.js";import{formTemplateHasInvalidFields as V}from"../FeatureForm/featureFormUtils.js";import j from"../FeatureForm/FeatureFormViewModel.js";import M from"../FeatureTemplates/FeatureTemplatesViewModel.js";import T from"../Sketch/SketchViewModel.js";import S from"../Spinner/SpinnerViewModel.js";import{UNSUPPORTED_DATE_FIELD_TYPES as L}from"../support/dateUtils.js";const P="esri.widgets.Editor.EditorViewModel",D=o.getLogger(P),G=["create","create-features","update"];function x(t,e,a){D.error(new i(t,e,a))}function H(t,e){return t?t.find((t=>t.layer===e)):void 0}let q=class extends s.EventedAccessor{constructor(t){super(t),this._editableItems=new a,this._sketchGraphicsLayer=new k({listMode:"hide",internal:!0}),this._updateEditableItemsTask=null,this._updatingHandles=new y,this.activeWorkflow=null,this._activityQueue=[],this.failures=[],this.attachmentsViewModel=new C({capabilities:{editing:!0}}),this.featureFormViewModel=new j,this.featureTemplatesViewModel=new M,this.sketchViewModel=new T({layer:this._sketchGraphicsLayer}),this.spinnerViewModel=new S,this.pageStack=[],this.showDiscardEditsPrompt=()=>Promise.resolve(!0),this._candidateCommitted=!1,this.useDeprecatedCreateWorkflow=!1,this.back=async()=>{this.canGoBack&&(this.activeWorkflow?.hasPreviousStep?await this.activeWorkflow.back(this.showDiscardEditsPrompt):await this._cancelWorkflow({force:!this.hasPendingEdits}))},this.saveWorkflow=async()=>{const{featureFormViewModel:t}=this;if(t.submit(),!t.submittable)return;const e=t.getValues();t.validateContingencyConstraints(e,{includeIncompleteViolations:!0}).length>0||await(this.activeWorkflow?.save())},this.selectFeature=(t,e=!1)=>{const a=this.activeWorkflow;this._candidateCommitted||"update"!==a?.type||(a.data.rootFeature=t,e&&(a.next(),this._candidateCommitted=!0))}}initialize(){this.addHandles([d((()=>{const t=this.view?.map?.editableLayers.filter((({parent:t,visible:e})=>t&&"visible"in t?e&&t.visible:e)),e=this.view?.allLayerViews,a=e?.filter((e=>!!t?.includes(e.layer)&&!e.suspended));return[t,a,this.layerInfos,this.allowedWorkflows]}),(()=>this._updateEditableItems()),h),p((()=>this.activeWorkflow),"cancel",(()=>this.emit("workflow-cancel"))),p((()=>this.activeWorkflow),"commit",(()=>this.emit("workflow-commit"))),p((()=>this.activeWorkflow),"complete",(()=>{this.emit("workflow-commit"),this._set("activeWorkflow",null)})),c((()=>this.view?.map),(t=>t.add(this._sketchGraphicsLayer)),w),d((()=>this._editableItems.toArray()),(()=>{const{activeWorkflow:t}=this;if(this.refreshCreationTemplates(),!t)return;const{stepId:e}=t;"create"!==t.type?"update"===t.type&&("awaiting-feature-to-update"===e&&!this.canUpdate||"awaiting-update-feature-candidate"===e&&!t.data.candidates.some((t=>{const e=this._editableItems.find((e=>e.layer===t.layer));return e&&e.supports.includes("update")})))&&this._cancelWorkflow():"awaiting-feature-creation-info"!==e||this.canCreate||this._cancelWorkflow()})),d((()=>this.page),((t,e)=>{const a=[...this.pageStack];if(-1===a.indexOf(t))a.push(t);else for(;a.length&&a.at(-1)!==t;)a.pop();this.pageStack=a}),h),c((()=>"awaiting-update-feature-candidate"===this.state),(()=>this._candidateCommitted=!1)),p((()=>this.featureTemplatesViewModel),"select",(async({item:t,oldItem:e})=>{const{activeWorkflow:a}=this;if(a)try{await this.cancelWorkflow({force:!this.hasPendingEdits})}catch{return void this.featureTemplatesViewModel.select(e,{emit:!1})}if(!t)return;const r={layer:t.layer,template:t.template};if(t.supportsUpload)return this.featureTemplatesViewModel.select(e,{emit:!1}),this.startCreateFeaturesWorkflow(r);this.useDeprecatedCreateWorkflow?this.startCreateWorkflowAtFeatureCreation(r):this.startCreateFeaturesWorkflowAtFeatureCreation(r)})),p((()=>this.view),"key-down",(t=>{"Escape"===t.key&&this.activeWorkflow?.keyboardCancellationEnabled&&this.back()}))])}destroy(){this._cancelWorkflow().then((()=>{this.view?.map&&this.view.map.remove(this._sketchGraphicsLayer),this.view=null})),this._updateEditableItemsTask=n(this._updateEditableItemsTask),this._updatingHandles.destroy()}get allowedWorkflows(){return this._get("allowedWorkflows")}set allowedWorkflows(t){t&&0!==t.length||(t=[...G]),this._set("allowedWorkflows",t)}get canCreate(){return this._editableItems.some((t=>t.supports.includes("create")))}get canUpdate(){return this._editableItems.some((({attachmentsOnUpdateEnabled:t,layer:e,supports:a})=>{const r=a.includes("update")||a.includes("delete")||t,i=e.parent,s=!(i&&"visible"in i)||!!i.visible;return e.visible&&s&&r}))}get editableItems(){return this._editableItems}get labelOptions(){return this.sketchViewModel.labelOptions}set labelOptions(t){this.sketchViewModel.labelOptions=t}set layerInfos(t){t?.some((t=>("allowAttachments"in t&&r(D,"Property: layerInfo.allowAttachments",{replacement:"layerInfo.attachmentsOnCreateEnabled or layerInfo.attachmentsOnUpdateEnabled",version:"4.26"}),!0))),this._set("layerInfos",t)}get snappingOptions(){return this.sketchViewModel.snappingOptions}set snappingOptions(t){this.sketchViewModel.snappingOptions=t}get state(){if(!this.view?.ready||0===this._editableItems.length)return"disabled";const t=this.attachmentsViewModel.mode;if("add"===t)return"adding-attachment";if("edit"===t)return"editing-attachment";const{activeWorkflow:e}=this;return e?e.stepId:"ready"}get syncing(){return this._activityQueue.length>0}get updating(){return this._updatingHandles.updating||!0===this.activeWorkflow?.updating}get tooltipOptions(){return this.sketchViewModel.tooltipOptions}set tooltipOptions(t){this.sketchViewModel.tooltipOptions=t}set view(t){this.sketchViewModel.view=t,this.spinnerViewModel.view=t,this._set("view",t)}get page(){const{activeWorkflow:t,state:e}=this;if("update"===t?.type&&"awaiting-feature-to-update"===t.stepId)return"ready";if("create-features"===t?.type&&0===t.numPendingFeatures){const e=t.data.upload;if(e)return"default"===e.state?"ready":"creating-features-upload-details"}return e??"disabled"}get featureFormDisabled(){const{activeWorkflow:t}=this;return"update"===t?.type&&!1===t.activeEditableItem?.attributeUpdatesEnabled}get canGoBack(){return null!=this.activeWorkflow&&!this.syncing}get shouldShowDeleteButton(){const{activeWorkflow:t}=this;return!!t&&"update"===t.type&&!!t.activeEditableItem?.supports.includes("delete")}get hasPendingEdits(){return this.activeWorkflow?.hasPendingEdits??!1}async startCreateWorkflowAtFeatureTypeSelection(){if(U(D,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),await u((()=>!this.updating)),!this.canCreate)return void x("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createCreateWorkflow();await t.start(),this._set("activeWorkflow",t)}async startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.startCreateFeaturesWorkflow()}async startCreateWorkflowAtFeatureCreation(t){if(U(D,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),await u((()=>!this.updating)),!this.canCreate)return void x("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createCreateWorkflow("awaiting-feature-to-create");e.data.creationInfo=t,await e.start(),this._set("activeWorkflow",e)}async startCreateFeaturesWorkflowAtFeatureCreation(t){return this.startCreateFeaturesWorkflow(t,"creating-features")}async startCreateFeaturesWorkflow(t,e="awaiting-feature-creation-info"){if(await u((()=>!this.updating)),!this.canCreate)throw new i("editing:unsupported-workflow","Creating features is unsupported or disabled.");await this._cancelWorkflow();const a=this._createCreateFeaturesWorkflow(t,e);await a.start(),this._set("activeWorkflow",a)}async startCreateWorkflowAtFeatureEdit(t){if(U(D,"startCreateWorkflowAtFeatureEdit"),await u((()=>!this.updating)),!this.canCreate)return void x("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createCreateWorkflow("editing-new-feature");e.data.edits.feature=t,await e.start(),this._set("activeWorkflow",e)}async startCreateFeaturesWorkflowAtFeatureEdit(t){await u((()=>!this.updating));const{initialFeature:e}=t,a=e.sourceLayer,r=a?this.findEditableItemForLayer(a):void 0;if(!this.canCreate||!r)throw new i("editing:unsupported-workflow","Creating features is unsupported or disabled.");await this._cancelWorkflow();const s=this._createCreateFeaturesWorkflow({initialFeature:e,layer:r.layer,maxFeatures:1},"creating-features");await s.start(),this._set("activeWorkflow",s)}async startUpdateWorkflowAtFeatureSelection(){if(await u((()=>!this.updating)),!this.canUpdate)return void x("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createUpdateWorkflow();await t.start(),this._set("activeWorkflow",t)}async startUpdateWorkflowAtMultipleFeatureSelection(t){if(await u((()=>!this.updating)),!this.canUpdate)return void x("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createUpdateWorkflow("awaiting-update-feature-candidate");e.data.candidates=t,await e.start(),this._set("activeWorkflow",e)}async startUpdateWorkflowAtFeatureEdit(t){if(await u((()=>!this.updating)),!this.canUpdate)return void x("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createUpdateWorkflow("editing-existing-feature");e.data.rootFeature=t,await e.start(),this._set("activeWorkflow",e)}async deleteFeatureFromWorkflow(){const{activeWorkflow:t}=this;t&&"update"===t.type?await t.deleteActiveFeature():x("editing:unsupported-workflow","Deleting requires an active update workflow.")}async cancelWorkflow(t){return this._cancelWorkflow({warn:!0,...t})}findEditableItemForLayer(t){const e="subtype-sublayer"===t.type?t.parent:t;return this._editableItems.find((t=>t.layer===e))}itemHasInvalidFormTemplate(t){return!!t&&(this.findEditableItemForLayer(t.layer)?.hasInvalidFormTemplate??!1)}itemHasUnsupportedFields(t){return!!t&&(this.findEditableItemForLayer(t.layer)?.hasUnsupportedFields??!1)}refreshCreationTemplates(){const t=[];for(const{layer:e,supports:a}of this._editableItems)e.loaded&&a.includes("create")&&!v(e)&&t.push(e);this.featureTemplatesViewModel.layers=t}async toggleUpdateWorkflow(){this.canUpdate&&(this.hasPendingEdits&&!await this.showDiscardEditsPrompt()||(this.activeWorkflow&&"awaiting-feature-to-update"===this.state?await this.cancelWorkflow({force:!0}):await this.startUpdateWorkflowAtFeatureSelection()))}async _updateEditableItems(){n(this._updateEditableItemsTask);const t=e((async t=>{const e=this.view?.allLayerViews,r=this.view?.map,i=r?.editableLayers.toArray()??[],s=r?.allTables.toArray().filter(_)??[];await Promise.all(s.map((t=>t.load())));const o=s.filter((t=>g(t))),n=[...i.reverse(),...o.reverse()].filter((t=>"mesh"!==t.geometryType||"3d"===this.view?.type));if(!e||!i)return;const d=[],p=[];for(const a of n){const r=e.find((t=>t.layer===a)),i=r?d:p;if("subtype-group"===a.type){await a.loadAll(),l(t);for(let t=a.sublayers.length-1;t>=0;--t)i.push(this._makeEditableItemForLayer(a.sublayers.at(t),!!r?.suspended))}else i.push(this._makeEditableItemForLayer(a,!!r?.suspended))}if(t.aborted)return;const c=this._editableItems;this._editableItems=new a(d.concat(p)),c.destroy()}));this._updatingHandles.addPromise(t.promise),this._updateEditableItemsTask=t}async _cancelWorkflow(t){const e=this.activeWorkflow;if(!e)return void(t&&t.warn&&x("editing:no-active-workflow","There is no active workflow to cancel."));if(!t||!1!==t.force)return this.emit("workflow-cancel"),this._set("activeWorkflow",null),void await e.cancel(t);await e.cancel(t),this._set("activeWorkflow",null)}_createCreateFeaturesWorkflow(t,e){return E.create({viewModel:this,creationInfo:t,startAt:e,applyEditsCallback:(t,e,a)=>this._applyEdits(t,e,a),addAttachmentsCallback:(t,e)=>this._addAttachments(t,e)})}_createCreateWorkflow(t){return I.create(this,t,((t,e,a)=>this._applyEdits(t,e,a)))}_createUpdateWorkflow(t){return A.create(this,t,((t,e)=>this._applyEdits(t,e)))}_addAttachments(t,e){const a=e.map((e=>this._addAttachment(t,e.feature,e.attachment)))??[];return Promise.all(a)}async _addAttachment(t,e,a){let r=null;if("geojson"===t.type||"scene"===t.type||"oriented-imagery"===t.type)throw new i("editor:attachments-not-supported","Adding attachments is not supported for this layer type");return await this._queueOperation((async()=>(r=await(t.addAttachment?.(e,a).catch((t=>{throw t?.error||t})))??null,r))),r}async _applyEdits(t,e,a){let r=null;const i=t.url?await W(t.url):null,s={returnServiceEditsOption:(!i||!F(i))&&!RegExp("/hosted/","i").test(t.url)?"original-and-current-features":void 0,...a};return await this._queueOperation((async()=>{const a=await O(this.view,t).catch((()=>null));return r=await t.applyEdits(e,s),a&&await u((()=>!a.updating)),r})),r}_queueOperation(t){this._activityQueue.push(t),this.notifyChange("syncing");const e=(t,e)=>{const a=e.indexOf(t);a>-1&&e.splice(a,1)};return t().then((t=>{if("error"in t&&t.error)throw t.error;if("addFeatureResults"in t){const{addFeatureResults:e,deleteFeatureResults:a,updateFeatureResults:r}=t,i=e.find((t=>!!t.error))||r.find((t=>!!t.error))||a.find((t=>!!t.error));if(i)throw i.error}return t})).catch((a=>{x("editing:operation-error","An error occurred.",{error:a});const r={error:a,retry:()=>(e(r,this.failures),this._queueOperation(t)),cancel:()=>{e(r,this.failures)}};this._set("failures",[...this.failures,r])})).then((()=>{e(t,this._activityQueue),this.notifyChange("syncing")}))}_makeEditableItemForLayer(t,e=!0){const a=b(t),r=a?.operations,i=H(this.layerInfos,t),s=V(t),o=t.fields.some((({type:t})=>L.has(t))),n=s||o,{allowedWorkflows:l}=this,d=l.includes("create")||l.includes("create-features"),p=l.includes("update"),c=t=>!i||!1!==i.enabled&&!1!==i[t],u=d&&!!r?.supportsAdd&&c("addEnabled"),h=p&&!!r?.supportsUpdate&&c("updateEnabled"),w=!n&&p&&!!r?.supportsDelete&&c("deleteEnabled"),f=[];e||(u&&f.push("create"),h&&f.push("update"),w&&f.push("delete"));const m=h&&!n&&(!i||!1!==i.attributeUpdatesEnabled),y=h&&!n&&!!a?.editing?.supportsGeometryUpdate&&(!i||!1!==i.geometryUpdatesEnabled),k=!(!a?.data?.supportsAttachment||i&&!1===i.allowAttachments);return{layer:t,supports:f,attributeUpdatesEnabled:m,geometryUpdatesEnabled:y,hasAttachments:k,attachmentsOnCreateEnabled:k&&d&&(!i||!1!==i.attachmentsOnCreateEnabled),attachmentsOnUpdateEnabled:!n&&k&&(!i||!1!==i.attachmentsOnUpdateEnabled),hasInvalidFormTemplate:s,hasUnsupportedFields:o}}};t([f()],q.prototype,"_editableItems",void 0),t([f({readOnly:!0})],q.prototype,"activeWorkflow",void 0),t([f({readOnly:!0})],q.prototype,"_activityQueue",void 0),t([f({value:[...G]})],q.prototype,"allowedWorkflows",null),t([f({readOnly:!0})],q.prototype,"canCreate",null),t([f({readOnly:!0})],q.prototype,"canUpdate",null),t([f()],q.prototype,"editableItems",null),t([f({readOnly:!0})],q.prototype,"failures",void 0),t([f()],q.prototype,"attachmentsViewModel",void 0),t([f()],q.prototype,"featureFormViewModel",void 0),t([f()],q.prototype,"featureTemplatesViewModel",void 0),t([f()],q.prototype,"labelOptions",null),t([f()],q.prototype,"layerInfos",null),t([f()],q.prototype,"sketchViewModel",void 0),t([f()],q.prototype,"snappingOptions",null),t([f()],q.prototype,"spinnerViewModel",void 0),t([f()],q.prototype,"state",null),t([f({readOnly:!0})],q.prototype,"syncing",null),t([f()],q.prototype,"updating",null),t([f()],q.prototype,"tooltipOptions",null),t([f()],q.prototype,"view",null),t([f()],q.prototype,"pageStack",void 0),t([f()],q.prototype,"showDiscardEditsPrompt",void 0),t([f()],q.prototype,"_candidateCommitted",void 0),t([f()],q.prototype,"page",null),t([f()],q.prototype,"featureFormDisabled",null),t([f()],q.prototype,"canGoBack",null),t([f()],q.prototype,"shouldShowDeleteButton",null),t([f()],q.prototype,"hasPendingEdits",null),t([f()],q.prototype,"useDeprecatedCreateWorkflow",void 0),q=t([m(P)],q);const B=q;export{B as default};
5
+ import{_ as t}from"../../chunks/tslib.es6.js";import{createTask as e}from"../../core/asyncUtils.js";import a from"../../core/Collection.js";import{deprecated as r}from"../../core/deprecate.js";import i from"../../core/Error.js";import s from"../../core/Evented.js";import o from"../../core/Logger.js";import{abortMaybe as n}from"../../core/maybe.js";import{throwIfAborted as l}from"../../core/promiseUtils.js";import{watch as d,on as p,when as c,whenOnce as u,syncAndInitial as h,initial as w}from"../../core/reactiveUtils.js";import{property as f}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as y}from"../../core/support/UpdatingHandles.js";import k from"../../layers/GraphicsLayer.js";import{isEditableLayer as g}from"../../layers/support/editableLayers.js";import{isTable as v,getOwningPortalUrl as W,getEffectiveLayerCapabilities as b,isFeatureLayer as _}from"../../layers/support/layerUtils.js";import{parseKnownArcGISOnlineDomain as F}from"../../portal/support/urlUtils.js";import C from"../Attachments/AttachmentsViewModel.js";import E from"./CreateFeaturesWorkflow.js";import I from"./CreateWorkflow.js";import{workflowDeprecation as U}from"./deprecationUtils.js";import A from"./UpdateWorkflow.js";import{whenEditorLayerView as O}from"./workflowUtils.js";import{formTemplateHasInvalidFields as V}from"../FeatureForm/featureFormUtils.js";import j from"../FeatureForm/FeatureFormViewModel.js";import M from"../FeatureTemplates/FeatureTemplatesViewModel.js";import T from"../Sketch/SketchViewModel.js";import S from"../Spinner/SpinnerViewModel.js";import{UNSUPPORTED_DATE_FIELD_TYPES as L}from"../support/dateUtils.js";const P="esri.widgets.Editor.EditorViewModel",D=o.getLogger(P),G=["create","create-features","update"];function x(t,e,a){D.error(new i(t,e,a))}function H(t,e){return t?t.find((t=>t.layer===e)):void 0}let q=class extends s.EventedAccessor{constructor(t){super(t),this._editableItems=new a,this._sketchGraphicsLayer=new k({listMode:"hide",internal:!0}),this._updateEditableItemsTask=null,this._updatingHandles=new y,this.activeWorkflow=null,this._activityQueue=[],this.failures=[],this.attachmentsViewModel=new C({capabilities:{editing:!0}}),this.featureFormViewModel=new j,this.featureTemplatesViewModel=new M,this.sketchViewModel=new T({layer:this._sketchGraphicsLayer}),this.spinnerViewModel=new S,this.pageStack=[],this.showDiscardEditsPrompt=()=>Promise.resolve(!0),this._candidateCommitted=!1,this.useDeprecatedCreateWorkflow=!1,this.back=async()=>{this.canGoBack&&(this.activeWorkflow?.hasPreviousStep?await this.activeWorkflow.back(this.showDiscardEditsPrompt):await this._cancelWorkflow({force:!this.hasPendingEdits}))},this.saveWorkflow=async()=>{const{featureFormViewModel:t}=this;if(t.submit(),!t.submittable)return;const e=t.getValues();t.validateContingencyConstraints(e,{includeIncompleteViolations:!0}).length>0||await(this.activeWorkflow?.save())},this.selectFeature=(t,e=!1)=>{const a=this.activeWorkflow;this._candidateCommitted||"update"!==a?.type||(a.data.rootFeature=t,e&&(a.next(),this._candidateCommitted=!0))}}initialize(){this.addHandles([d((()=>{const t=this.view?.map?.editableLayers.filter((({parent:t,visible:e})=>t&&"visible"in t?e&&t.visible:e)),e=this.view?.allLayerViews,a=e?.filter((e=>!!t?.includes(e.layer)&&!e.suspended));return[t,a,this.layerInfos,this.allowedWorkflows]}),(()=>this._updateEditableItems()),h),p((()=>this.activeWorkflow),"cancel",(()=>this.emit("workflow-cancel"))),p((()=>this.activeWorkflow),"commit",(()=>this.emit("workflow-commit"))),p((()=>this.activeWorkflow),"complete",(()=>{this.emit("workflow-commit"),this._set("activeWorkflow",null)})),c((()=>this.view?.map),(t=>t.add(this._sketchGraphicsLayer)),w),d((()=>this._editableItems.toArray()),(()=>{const{activeWorkflow:t}=this;if(this.syncFeatureTemplates(),!t)return;const{stepId:e}=t;"create"!==t.type?"update"===t.type&&("awaiting-feature-to-update"===e&&!this.canUpdate||"awaiting-update-feature-candidate"===e&&!t.data.candidates.some((t=>{const e=this._editableItems.find((e=>e.layer===t.layer));return e&&e.supports.includes("update")})))&&this._cancelWorkflow():"awaiting-feature-creation-info"!==e||this.canCreate||this._cancelWorkflow()})),d((()=>this.page),((t,e)=>{const a=[...this.pageStack];if(-1===a.indexOf(t))a.push(t);else for(;a.length&&a.at(-1)!==t;)a.pop();this.pageStack=a}),h),c((()=>"awaiting-update-feature-candidate"===this.state),(()=>this._candidateCommitted=!1)),p((()=>this.featureTemplatesViewModel),"select",(async({item:t,oldItem:e})=>{const{activeWorkflow:a}=this;if(a){if("update"===a.type&&"awaiting-feature-creation-info"===a.activeWorkflow?.stepId)return;try{await this.cancelWorkflow({force:!this.hasPendingEdits})}catch{return void this.featureTemplatesViewModel.select(e,{emit:!1})}}if(!t)return;const r={layer:t.layer,template:t.template};if(t.supportsUpload)return this.featureTemplatesViewModel.select(e,{emit:!1}),this.startCreateFeaturesWorkflow(r);this.useDeprecatedCreateWorkflow?this.startCreateWorkflowAtFeatureCreation(r):this.startCreateFeaturesWorkflowAtFeatureCreation(r)})),p((()=>this.view),"key-down",(t=>{"Escape"===t.key&&this.activeWorkflow?.keyboardCancellationEnabled&&this.back()}))])}destroy(){this._cancelWorkflow().then((()=>{this.view?.map&&this.view.map.remove(this._sketchGraphicsLayer),this.view=null})),this._updateEditableItemsTask=n(this._updateEditableItemsTask),this._updatingHandles.destroy()}get allowedWorkflows(){return this._get("allowedWorkflows")}set allowedWorkflows(t){t&&0!==t.length||(t=[...G]),this._set("allowedWorkflows",t)}get canCreate(){return this._editableItems.some((t=>t.supports.includes("create")))}get canUpdate(){return this._editableItems.some((({attachmentsOnUpdateEnabled:t,layer:e,supports:a})=>{const r=a.includes("update")||a.includes("delete")||t,i=e.parent,s=!(i&&"visible"in i)||!!i.visible;return e.visible&&s&&r}))}get editableItems(){return this._editableItems}get labelOptions(){return this.sketchViewModel.labelOptions}set labelOptions(t){this.sketchViewModel.labelOptions=t}set layerInfos(t){t?.some((t=>("allowAttachments"in t&&r(D,"Property: layerInfo.allowAttachments",{replacement:"layerInfo.attachmentsOnCreateEnabled or layerInfo.attachmentsOnUpdateEnabled",version:"4.26"}),!0))),this._set("layerInfos",t)}get snappingOptions(){return this.sketchViewModel.snappingOptions}set snappingOptions(t){this.sketchViewModel.snappingOptions=t}get state(){if(!this.view?.ready||0===this._editableItems.length)return"disabled";const t=this.attachmentsViewModel.mode;if("add"===t)return"adding-attachment";if("edit"===t)return"editing-attachment";const{activeWorkflow:e}=this;return e?"update"===e.type&&"awaiting-feature-creation-info"===e.activeWorkflow?.stepId?e.activeWorkflow.stepId:e.stepId:"ready"}get syncing(){return this._activityQueue.length>0}get updating(){return this._updatingHandles.updating||!0===this.activeWorkflow?.updating}get tooltipOptions(){return this.sketchViewModel.tooltipOptions}set tooltipOptions(t){this.sketchViewModel.tooltipOptions=t}set view(t){this.sketchViewModel.view=t,this.spinnerViewModel.view=t,this._set("view",t)}get page(){const{activeWorkflow:t,state:e}=this;if("update"===t?.type&&"awaiting-feature-to-update"===t.stepId)return"ready";if("create-features"===t?.type&&0===t.numPendingFeatures){const e=t.data.upload;if(e)return"default"===e.state?"ready":"creating-features-upload-details"}return e??"disabled"}get featureFormDisabled(){const{activeWorkflow:t}=this;return"update"===t?.type&&!1===t.activeEditableItem?.attributeUpdatesEnabled}get canGoBack(){return null!=this.activeWorkflow&&!this.syncing}get shouldShowDeleteButton(){const{activeWorkflow:t}=this;return!!t&&"update"===t.type&&!!t.activeEditableItem?.supports.includes("delete")}get hasPendingEdits(){return this.activeWorkflow?.hasPendingEdits??!1}async startCreateWorkflowAtFeatureTypeSelection(){if(U(D,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),await u((()=>!this.updating)),!this.canCreate)return void x("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createCreateWorkflow();await t.start(),this._set("activeWorkflow",t)}async startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.startCreateFeaturesWorkflow()}async startCreateWorkflowAtFeatureCreation(t){if(U(D,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),await u((()=>!this.updating)),!this.canCreate)return void x("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createCreateWorkflow("awaiting-feature-to-create");e.data.creationInfo=t,await e.start(),this._set("activeWorkflow",e)}async startCreateFeaturesWorkflowAtFeatureCreation(t){return this.startCreateFeaturesWorkflow(t,"creating-features")}async startCreateFeaturesWorkflow(t,e="awaiting-feature-creation-info"){if(await u((()=>!this.updating)),!this.canCreate)throw new i("editing:unsupported-workflow","Creating features is unsupported or disabled.");await this._cancelWorkflow();const a=this._createCreateFeaturesWorkflow(t,e);await a.start(),this._set("activeWorkflow",a)}async startCreateWorkflowAtFeatureEdit(t){if(U(D,"startCreateWorkflowAtFeatureEdit"),await u((()=>!this.updating)),!this.canCreate)return void x("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createCreateWorkflow("editing-new-feature");e.data.edits.feature=t,await e.start(),this._set("activeWorkflow",e)}async startCreateFeaturesWorkflowAtFeatureEdit(t){await u((()=>!this.updating));const{initialFeature:e}=t,a=e.sourceLayer,r=a?this.findEditableItemForLayer(a):void 0;if(!this.canCreate||!r)throw new i("editing:unsupported-workflow","Creating features is unsupported or disabled.");await this._cancelWorkflow();const s=this._createCreateFeaturesWorkflow({initialFeature:e,layer:r.layer,maxFeatures:1},"creating-features");await s.start(),this._set("activeWorkflow",s)}async startUpdateWorkflowAtFeatureSelection(){if(await u((()=>!this.updating)),!this.canUpdate)return void x("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createUpdateWorkflow();await t.start(),this._set("activeWorkflow",t)}async startUpdateWorkflowAtMultipleFeatureSelection(t){if(await u((()=>!this.updating)),!this.canUpdate)return void x("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createUpdateWorkflow("awaiting-update-feature-candidate");e.data.candidates=t,await e.start(),this._set("activeWorkflow",e)}async startUpdateWorkflowAtFeatureEdit(t){if(await u((()=>!this.updating)),!this.canUpdate)return void x("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createUpdateWorkflow("editing-existing-feature");e.data.rootFeature=t,await e.start(),this._set("activeWorkflow",e)}async deleteFeatureFromWorkflow(){const{activeWorkflow:t}=this;t&&"update"===t.type?await t.deleteActiveFeature():x("editing:unsupported-workflow","Deleting requires an active update workflow.")}async cancelWorkflow(t){return this._cancelWorkflow({warn:!0,...t})}findEditableItemForLayer(t){const e="subtype-sublayer"===t.type?t.parent:t;return this._editableItems.find((t=>t.layer===e))}itemHasInvalidFormTemplate(t){return!!t&&(this.findEditableItemForLayer(t.layer)?.hasInvalidFormTemplate??!1)}itemHasUnsupportedFields(t){return!!t&&(this.findEditableItemForLayer(t.layer)?.hasUnsupportedFields??!1)}syncFeatureTemplates(){const t=[];for(const{layer:e,supports:a}of this._editableItems)e.loaded&&a.includes("create")&&!v(e)&&t.push(e);this.featureTemplatesViewModel.layers=t}async toggleUpdateWorkflow(){this.canUpdate&&(this.hasPendingEdits&&!await this.showDiscardEditsPrompt()||(this.activeWorkflow&&"awaiting-feature-to-update"===this.state?await this.cancelWorkflow({force:!0}):await this.startUpdateWorkflowAtFeatureSelection()))}async _updateEditableItems(){n(this._updateEditableItemsTask);const t=e((async t=>{const e=this.view?.allLayerViews,r=this.view?.map,i=r?.editableLayers.toArray()??[],s=r?.allTables.toArray().filter(_)??[];await Promise.all(s.map((t=>t.load())));const o=s.filter((t=>g(t))),n=[...i.reverse(),...o.reverse()].filter((t=>"mesh"!==t.geometryType||"3d"===this.view?.type));if(!e||!i)return;const d=[],p=[];for(const a of n){const r=e.find((t=>t.layer===a)),i=r?d:p;if("subtype-group"===a.type){await a.loadAll(),l(t);for(let t=a.sublayers.length-1;t>=0;--t)i.push(this._makeEditableItemForLayer(a.sublayers.at(t),!!r?.suspended))}else i.push(this._makeEditableItemForLayer(a,!!r?.suspended))}if(t.aborted)return;const c=this._editableItems;this._editableItems=new a(d.concat(p)),c.destroy()}));this._updatingHandles.addPromise(t.promise),this._updateEditableItemsTask=t}async _cancelWorkflow(t){const e=this.activeWorkflow;if(!e)return void(t&&t.warn&&x("editing:no-active-workflow","There is no active workflow to cancel."));if(!t||!1!==t.force)return this.emit("workflow-cancel"),this._set("activeWorkflow",null),void await e.cancel(t);await e.cancel(t),this._set("activeWorkflow",null)}_createCreateFeaturesWorkflow(t,e){return E.create({viewModel:this,creationInfo:t,startAt:e,applyEditsCallback:(t,e,a)=>this._applyEdits(t,e,a),addAttachmentsCallback:(t,e)=>this._addAttachments(t,e)})}_createCreateWorkflow(t){return I.create(this,t,((t,e,a)=>this._applyEdits(t,e,a)))}_createUpdateWorkflow(t){return A.create(this,t,((t,e)=>this._applyEdits(t,e)))}_addAttachments(t,e){const a=e.map((e=>this._addAttachment(t,e.feature,e.attachment)))??[];return Promise.all(a)}async _addAttachment(t,e,a){let r=null;if("geojson"===t.type||"scene"===t.type||"oriented-imagery"===t.type)throw new i("editor:attachments-not-supported","Adding attachments is not supported for this layer type");return await this._queueOperation((async()=>(r=await(t.addAttachment?.(e,a).catch((t=>{throw t?.error||t})))??null,r))),r}async _applyEdits(t,e,a){let r=null;const i=t.url?await W(t.url):null,s={returnServiceEditsOption:(!i||!F(i))&&!RegExp("/hosted/","i").test(t.url)?"original-and-current-features":void 0,...a};return await this._queueOperation((async()=>{const a=await O(this.view,t).catch((()=>null));return r=await t.applyEdits(e,s),a&&await u((()=>!a.updating)),r})),r}_queueOperation(t){this._activityQueue.push(t),this.notifyChange("syncing");const e=(t,e)=>{const a=e.indexOf(t);a>-1&&e.splice(a,1)};return t().then((t=>{if("error"in t&&t.error)throw t.error;if("addFeatureResults"in t){const{addFeatureResults:e,deleteFeatureResults:a,updateFeatureResults:r}=t,i=e.find((t=>!!t.error))||r.find((t=>!!t.error))||a.find((t=>!!t.error));if(i)throw i.error}return t})).catch((a=>{x("editing:operation-error","An error occurred.",{error:a});const r={error:a,retry:()=>(e(r,this.failures),this._queueOperation(t)),cancel:()=>{e(r,this.failures)}};this._set("failures",[...this.failures,r])})).then((()=>{e(t,this._activityQueue),this.notifyChange("syncing")}))}_makeEditableItemForLayer(t,e=!0){const a=b(t),r=a?.operations,i=H(this.layerInfos,t),s=V(t),o=t.fields.some((({type:t})=>L.has(t))),n=s||o,{allowedWorkflows:l}=this,d=l.includes("create")||l.includes("create-features"),p=l.includes("update"),c=t=>!i||!1!==i.enabled&&!1!==i[t],u=d&&!!r?.supportsAdd&&c("addEnabled"),h=p&&!!r?.supportsUpdate&&c("updateEnabled"),w=!n&&p&&!!r?.supportsDelete&&c("deleteEnabled"),f=[];e||(u&&f.push("create"),h&&f.push("update"),w&&f.push("delete"));const m=h&&!n&&(!i||!1!==i.attributeUpdatesEnabled),y=h&&!n&&!!a?.editing?.supportsGeometryUpdate&&(!i||!1!==i.geometryUpdatesEnabled),k=!(!a?.data?.supportsAttachment||i&&!1===i.allowAttachments);return{layer:t,supports:f,attributeUpdatesEnabled:m,geometryUpdatesEnabled:y,hasAttachments:k,attachmentsOnCreateEnabled:k&&d&&(!i||!1!==i.attachmentsOnCreateEnabled),attachmentsOnUpdateEnabled:!n&&k&&(!i||!1!==i.attachmentsOnUpdateEnabled),hasInvalidFormTemplate:s,hasUnsupportedFields:o}}};t([f()],q.prototype,"_editableItems",void 0),t([f({readOnly:!0})],q.prototype,"activeWorkflow",void 0),t([f({readOnly:!0})],q.prototype,"_activityQueue",void 0),t([f({value:[...G]})],q.prototype,"allowedWorkflows",null),t([f({readOnly:!0})],q.prototype,"canCreate",null),t([f({readOnly:!0})],q.prototype,"canUpdate",null),t([f()],q.prototype,"editableItems",null),t([f({readOnly:!0})],q.prototype,"failures",void 0),t([f()],q.prototype,"attachmentsViewModel",void 0),t([f()],q.prototype,"featureFormViewModel",void 0),t([f()],q.prototype,"featureTemplatesViewModel",void 0),t([f()],q.prototype,"labelOptions",null),t([f()],q.prototype,"layerInfos",null),t([f()],q.prototype,"sketchViewModel",void 0),t([f()],q.prototype,"snappingOptions",null),t([f()],q.prototype,"spinnerViewModel",void 0),t([f()],q.prototype,"state",null),t([f({readOnly:!0})],q.prototype,"syncing",null),t([f()],q.prototype,"updating",null),t([f()],q.prototype,"tooltipOptions",null),t([f()],q.prototype,"view",null),t([f()],q.prototype,"pageStack",void 0),t([f()],q.prototype,"showDiscardEditsPrompt",void 0),t([f()],q.prototype,"_candidateCommitted",void 0),t([f()],q.prototype,"page",null),t([f()],q.prototype,"featureFormDisabled",null),t([f()],q.prototype,"canGoBack",null),t([f()],q.prototype,"shouldShowDeleteButton",null),t([f()],q.prototype,"hasPendingEdits",null),t([f()],q.prototype,"useDeprecatedCreateWorkflow",void 0),q=t([m(P)],q);const B=q;export{B as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Error.js";import{abortHandle as r}from"../../core/handleUtils.js";import{isAborted as i}from"../../core/promiseUtils.js";import{watch as a}from"../../core/reactiveUtils.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import{getEffectiveLayerCapabilities as n,getEffectiveEditingEnabled as l}from"../../layers/support/layerUtils.js";import{sceneLayerEditingEnabled as d,i3sPatchingEnabled as c}from"../../support/featureFlags.js";import u from"./UpdateRecordWorkflowData.js";import p from"./Workflow.js";import{fetchFullFeature as m}from"./workflowUtils.js";var h;const f={exit:Symbol()},g="esri.widgets.Editor.UpdateRecordWorkflow";let w=h=class extends p{constructor(e){super(e),this.fullFeature=null,this.type="update-table-record"}initialize(){const{data:e}=this,{edits:a}=e,o=a.feature,s=new AbortController;this.addHandles(r(s)),this._updatingHandles.addPromise(m(o,e.viewModel.view.spatialReference,s.signal).then((e=>{i(s)||this._onFullFeatureLoaded(e)}),(e=>this.cancel({force:!0,error:new t("editor:failed-to-fetch-full-feature","Failed to retrieve all information for this feature. The update cannot proceed.",{detail:{error:e}})}))))}get editableItem(){return this.data.editableItem}get hasPendingEdits(){const{edits:e,viewModel:t}=this.data,{geometryModified:r,initialFeature:i,modified:a}=e;if(r)return!0;if(!a||!i)return!1;const{allFieldInputs:o}=t.featureFormViewModel;return o.some((e=>y(e,i)))}get shouldShowAttachments(){return this.editableItem.attachmentsOnUpdateEnabled}get shouldAllowAttachmentEditing(){return this.editableItem.supports.includes("update")}get reliesOnOwnerAdminPrivileges(){const{layer:e}=this.editableItem,t=e.capabilities?.operations.supportsUpdate,r=n(e)?.operations.supportsUpdate;return l(e)&&!e.editingEnabled||!!r&&!t}async deleteAndCommit(){return this.data.edits.stageDelete(),this.commit()}async enter(){this._configureAttachmentsViewModel(),this._configureFeatureFormViewModel()}exit(e){this.removeHandles(f.exit)}_configureAttachmentsViewModel(){const{data:e,fullFeature:t}=this,{attachmentsCapabilities:r,viewModel:i}=e,{attachmentsViewModel:o}=i;o.set({capabilities:r,graphic:t,filesEnabled:!1,mode:"view"}),this.addHandles(a((()=>o.mode),(e=>{switch(e){case"add":this.go("adding-attachment");break;case"edit":this.go("editing-attachment")}})),f.exit)}_configureFeatureFormViewModel(){const{edits:e,formTemplate:t,viewModel:{featureFormViewModel:r,view:i}}=this.data;r.set({arcadeEditType:"UPDATE",feature:this.fullFeature,formTemplate:t,map:i?.map,spatialReference:i.spatialReference});const{initialFeature:a}=e;a&&r.overrideInitialFeature(a),this.addHandles(r.on("value-change",(()=>{e.updateAttributes(r.getValues()),this.fullFeature.attributes=e.feature.attributes})),f.exit)}_onFullFeatureLoaded(e){this.fullFeature=e;const{edits:t}=this.data;t.updateAttributes(e.attributes),t.trackChanges()}static async create(e){const t=new h({data:await u.create(e),onCommit:this._onCommitFactory(e.applyEdits)});return t._set("steps",this._createWorkflowSteps(t)),t}static _createWorkflowSteps(e){const{attachmentsViewModel:t}=e.data.viewModel;return[{id:"editing-attributes",async setUp(){},async tearDown(){}},{id:"adding-attachment",async setUp(){},async tearDown(){t.mode="view"}},{id:"editing-attachment",async setUp(){},async tearDown(){t.mode="view"}}]}};function y(e,t){return e.value!==t.getAttribute(e.name)&&!e.valueOriginIsExpression}w._onCommitFactory=e=>async t=>{const{edits:r}=t,{feature:i}=r;if(!i)return;const a=i.sourceLayer,o=i.clone();if(!r.attributesModified||r.stagedForDelete){const e=a.objectIdField;if(o.attributes={[e]:i.getAttribute(e)},d()&&c()&&"scene"===a.type&&null!=a.infoFor3D){const e=a.associatedLayer?.globalIdField;null!=e&&o.setAttribute(e,i.getAttribute(e))}}r.geometryModified&&!r.stagedForDelete||(o.geometry=null);const s=r.stagedForDelete?"deleteFeatures":"updateFeatures";await e(a,{[s]:[o]})},e([o()],w.prototype,"editableItem",null),e([o()],w.prototype,"fullFeature",void 0),e([o()],w.prototype,"hasPendingEdits",null),e([o()],w.prototype,"shouldShowAttachments",null),e([o()],w.prototype,"shouldAllowAttachmentEditing",null),e([o()],w.prototype,"reliesOnOwnerAdminPrivileges",null),w=h=e([s(g)],w);export{f as HANDLE_KEYS,w as UpdateRecordWorkflow};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Error.js";import{abortHandle as r}from"../../core/handleUtils.js";import{isAborted as i}from"../../core/promiseUtils.js";import{watch as a}from"../../core/reactiveUtils.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import{getEffectiveLayerCapabilities as n,getEffectiveEditingEnabled as l}from"../../layers/support/layerUtils.js";import{sceneLayerEditingEnabled as d,i3sPatchingEnabled as c}from"../../support/featureFlags.js";import u from"./UpdateRecordWorkflowData.js";import p from"./Workflow.js";import{fetchFullFeature as m}from"./workflowUtils.js";var h;const f={exit:Symbol()},g="esri.widgets.Editor.UpdateRecordWorkflow";let w=h=class extends p{constructor(e){super(e),this.fullFeature=null,this.type="update-table-record"}initialize(){const{data:e}=this,{edits:a}=e,o=a.feature,s=new AbortController;this.addHandles(r(s)),this._updatingHandles.addPromise(m(o,e.viewModel.view.spatialReference,s.signal).then((e=>{i(s)||this._onFullFeatureLoaded(e)}),(e=>this.cancel({force:!0,error:new t("editor:failed-to-fetch-full-feature","Failed to retrieve all information for this feature. The update cannot proceed.",{detail:{error:e}})}))))}get editableItem(){return this.data.editableItem}get hasPendingEdits(){const{edits:e,viewModel:t}=this.data,{geometryModified:r,initialFeature:i,modified:a}=e;if(r)return!0;if(!a||!i)return!1;const{allFieldInputs:o}=t.featureFormViewModel;return o.some((e=>y(e,i)))}get parent(){return this.data.parent}get shouldShowAttachments(){return this.editableItem.attachmentsOnUpdateEnabled}get shouldAllowAttachmentEditing(){return this.editableItem.supports.includes("update")}get reliesOnOwnerAdminPrivileges(){const{layer:e}=this.editableItem,t=e.capabilities?.operations.supportsUpdate,r=n(e)?.operations.supportsUpdate;return l(e)&&!e.editingEnabled||!!r&&!t}async deleteAndCommit(){return this.data.edits.stageDelete(),this.commit()}async enter(){this._configureAttachmentsViewModel(),this._configureFeatureFormViewModel()}exit(e){this.removeHandles(f.exit)}_configureAttachmentsViewModel(){const{data:e,fullFeature:t}=this,{attachmentsCapabilities:r,viewModel:i}=e,{attachmentsViewModel:o}=i;o.set({capabilities:r,graphic:t,filesEnabled:!1,mode:"view"}),this.addHandles(a((()=>o.mode),(e=>{switch(e){case"add":this.go("adding-attachment");break;case"edit":this.go("editing-attachment")}})),f.exit)}_configureFeatureFormViewModel(){const{edits:e,formTemplate:t,viewModel:{featureFormViewModel:r,view:i}}=this.data;r.set({arcadeEditType:"UPDATE",feature:this.fullFeature,formTemplate:t,map:i?.map,spatialReference:i.spatialReference});const{initialFeature:a}=e;a&&r.overrideInitialFeature(a),this.addHandles(r.on("value-change",(()=>{e.updateAttributes(r.getValues()),this.fullFeature.attributes=e.feature.attributes})),f.exit)}_onFullFeatureLoaded(e){this.fullFeature=e;const{edits:t}=this.data;t.updateAttributes(e.attributes),t.trackChanges()}static async create(e){const t=new h({data:await u.create(e),onCommit:this._onCommitFactory(e.applyEdits)});return t._set("steps",this._createWorkflowSteps(t)),t}static _createWorkflowSteps(e){const{attachmentsViewModel:t}=e.data.viewModel;return[{id:"editing-attributes",async setUp(){},async tearDown(){}},{id:"adding-attachment",async setUp(){},async tearDown(){t.mode="view"}},{id:"editing-attachment",async setUp(){},async tearDown(){t.mode="view"}}]}};function y(e,t){return e.value!==t.getAttribute(e.name)&&!e.valueOriginIsExpression}w._onCommitFactory=e=>async t=>{const{edits:r}=t,{feature:i}=r;if(!i)return;const a=i.sourceLayer,o=i.clone();if(!r.attributesModified||r.stagedForDelete){const e=a.objectIdField;if(o.attributes={[e]:i.getAttribute(e)},d()&&c()&&"scene"===a.type&&null!=a.infoFor3D){const e=a.associatedLayer?.globalIdField;null!=e&&o.setAttribute(e,i.getAttribute(e))}}r.geometryModified&&!r.stagedForDelete||(o.geometry=null);const s=r.stagedForDelete?"deleteFeatures":"updateFeatures";await e(a,{[s]:[o]})},e([o()],w.prototype,"editableItem",null),e([o()],w.prototype,"fullFeature",void 0),e([o()],w.prototype,"hasPendingEdits",null),e([o()],w.prototype,"parent",null),e([o()],w.prototype,"shouldShowAttachments",null),e([o()],w.prototype,"shouldAllowAttachmentEditing",null),e([o()],w.prototype,"reliesOnOwnerAdminPrivileges",null),w=h=e([s(g)],w);export{f as HANDLE_KEYS,w as UpdateRecordWorkflow};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Accessor.js";import o from"../../core/Error.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import{Edits as i}from"./Edits.js";import{findLayerInfo as a}from"./workflowUtils.js";var p;let d=p=class extends t{constructor(e){super(e),this.attachmentsCapabilities=null,this.editableItem=null,this.edits=null,this.formTemplate=null,this.viewModel=null}static async create(e){const t=p._makeConstructorProps(e);return new p(t)}static _makeConstructorProps(e){const{feature:t,viewModel:r}=e,s=r.editableItems.find((e=>e.layer===t.layer));if(!s)throw new o("no-editableItem-found","The EditorViewModel provided did not have an EditableItem associated with the specified Graphic's layer");const p=a(r.layerInfos,t.sourceLayer),d=s.supports,l=d.includes("create"),c=d.includes("update");return{attachmentsCapabilities:{editing:!0,operations:{add:l||c,update:c,delete:c}},editableItem:s,edits:new i({feature:t}),formTemplate:p?.formTemplate,viewModel:r}}};e([r()],d.prototype,"attachmentsCapabilities",void 0),e([r()],d.prototype,"editableItem",void 0),e([r()],d.prototype,"edits",void 0),e([r()],d.prototype,"formTemplate",void 0),e([r()],d.prototype,"viewModel",void 0),d=p=e([s("esri.widgets.Editor.UpdateRecordWorkflowData")],d);const l=d;export{l as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Accessor.js";import o from"../../core/Error.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import{Edits as i}from"./Edits.js";import{findLayerInfo as a}from"./workflowUtils.js";var p;let d=p=class extends t{constructor(e){super(e),this.attachmentsCapabilities=null,this.editableItem=null,this.edits=null,this.formTemplate=null,this.parent=null,this.viewModel=null}static async create(e){const t=p._makeConstructorProps(e);return new p(t)}static _makeConstructorProps(e){const{feature:t,parent:r,viewModel:s}=e,p=s.editableItems.find((e=>e.layer===t.layer));if(!p)throw new o("no-editableItem-found","The EditorViewModel provided did not have an EditableItem associated with the specified Graphic's layer");const d=a(s.layerInfos,t.sourceLayer),l=p.supports,c=l.includes("create"),n=l.includes("update");return{attachmentsCapabilities:{editing:!0,operations:{add:c||n,update:n,delete:n}},editableItem:p,edits:new i({feature:t}),formTemplate:d?.formTemplate,parent:r,viewModel:s}}};e([r()],d.prototype,"attachmentsCapabilities",void 0),e([r()],d.prototype,"editableItem",void 0),e([r()],d.prototype,"edits",void 0),e([r()],d.prototype,"formTemplate",void 0),e([r()],d.prototype,"parent",void 0),e([r()],d.prototype,"viewModel",void 0),d=p=e([s("esri.widgets.Editor.UpdateRecordWorkflowData")],d);const l=d;export{l as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import a from"../../core/Error.js";import{makeHandle as i}from"../../core/handleUtils.js";import o from"../../core/Logger.js";import{abortMaybe as r}from"../../core/maybe.js";import{onAbort as s,createAbortError as n,throwIfAborted as l,debounce as d}from"../../core/promiseUtils.js";import c from"../../core/Queue.js";import{whenOnce as p,watch as u,sync as w}from"../../core/reactiveUtils.js";import{property as h}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as f}from"../../core/accessorSupport/decorators/subclass.js";import{isEditableLayer as m}from"../../layers/support/editableLayers.js";import{isTable as g}from"../../layers/support/layerUtils.js";import{highlightsSupported as k}from"../../views/support/layerViewUtils.js";import y from"./CreateFeaturesWorkflow.js";import{UpdateFeatureWorkflow as v}from"./UpdateFeatureWorkflow.js";import{UpdateRecordWorkflow as b}from"./UpdateRecordWorkflow.js";import W from"./UpdateWorkflowData.js";import C from"./Workflow.js";import{createWorkflowSteps as _,fetchCandidates as S}from"./workflowUtils.js";import{isGraphicForRelatableFeatureSupportedLayer as M}from"../Feature/support/featureUtils.js";var F;const U="candidate-highlight",j="esri.widgets.Editor.UpdateWorkflow",A=o.getLogger(j);let I=F=class extends C{constructor(e){super(e),this._workflowStack=new c((e=>{let t;for(t of e);return t})),this.type="update"}get activeEditableItem(){const{activeWorkflow:e}=this;return R(e)?e.data.editableItem:void 0}get activeWorkflow(){return this._workflowStack.last()}get nestedWorkflowCount(){return this._workflowStack.length}get shouldShowAttachments(){return!!this.activeEditableItem?.attachmentsOnUpdateEnabled}get shouldAllowAttachmentEditing(){return!!this.activeEditableItem?.supports.includes("update")}get hasPendingEdits(){return Array.from(this._workflowStack).some((e=>e.hasPendingEdits))}get helpMessage(){return"awaiting-feature-to-update"===this.stepId?"select":void 0}get reliesOnOwnerAdminPrivileges(){return this.activeWorkflow?.reliesOnOwnerAdminPrivileges??!1}get hasInvalidFormTemplate(){return!!this.activeEditableItem?.hasInvalidFormTemplate}get hasUnsupportedFields(){return!!this.activeEditableItem?.hasUnsupportedFields}async back(e=(()=>Promise.resolve(!0))){const{featureFormViewModel:t}=this.data.viewModel;if(null==t.relationshipId)if(this.activeWorkflow){if(this.activeWorkflow.hasPendingEdits){if(!await e())return}this.activeWorkflow.hasPreviousStep?await this.activeWorkflow.previous({cancelCurrentStep:!0}):await this.cancelActiveWorkflow({force:!0})}else this.hasPreviousStep?await this.previous({cancelCurrentStep:!0}):await this.cancel({force:!0});else t.relationshipId=null}async cancelActiveWorkflow(e){await(this.activeWorkflow?.cancel(e)),await this._popWorkflow()}async commit(){await this._drainWorkflowStack((e=>e.commit())),await super.commit()}static create(e,t,a){const i=new F({data:new W({applyEditsCallback:a,viewModel:e}),onCommit:async()=>{}});return i._set("steps",this._createWorkflowSteps(i,t)),i}async save(){this.nestedWorkflowCount>1?(await(this.activeWorkflow?.commit()),await this._popWorkflow()):await this.commit()}async startCreatingRelatedRecord(e){try{const t=await this._createNestedCreateFeaturesWorkflow(e);await this._pushWorkflow(t)}catch(t){throw new a("editor:unable-to-start-creating","Could not begin updating the provided feature or table record.",{error:t})}}async startUpdating(e){try{const t=await this._createNestedUpdateWorkflow(e);await this._pushWorkflow(t)}catch(t){throw new a("editor:unable-to-start-updating","Could not begin updating the provided feature or table record.",{error:t})}}async deleteActiveFeature(){const{activeWorkflow:e}=this;if(!e)throw new a("editor:nothing-to-delete","There is no feature to delete");R(e)?await e.deleteAndCommit():await e.cancel(),1===this.nestedWorkflowCount?await this.reset():await this._popWorkflow()}async cancelAll(){await this._drainWorkflowStack((e=>e.cancel({force:!0})))}async _createNestedCreateFeaturesWorkflow(e){const{relatedLayer:i}=e,{addAttachmentsCallback:o,applyEditsCallback:r,viewModel:s}=this.data;if(!m(i))throw new a("editor:unsupported-layer","Editing is not supported on the provided layer");const n=new t({sourceLayer:i,attributes:this._makeRelatedRecordAttributes(e)});return y.create({addAttachmentsCallback:o,applyEditsCallback:r,creationInfo:{layer:i,initialFeature:n,maxFeatures:1},startAt:"creating-features",viewModel:s})}async _createNestedUpdateWorkflow(e){const t=g(e.sourceLayer)?b:v,{applyEditsCallback:a,viewModel:i}=this.data,o=await t.create({feature:e,viewModel:i,applyEdits:a});return await p((()=>!o.updating)),o}async _drainWorkflowStack(e){const t=this._workflowStack,a=[];for(;t.length>0;){const i=t.pop(),o=e(i).then((()=>i.destroy()));this._updatingHandles.addPromise(o),a.push(o)}await Promise.all(a)}highlight(e){this.removeHighlight();const t=this.data.viewModel.view;if(!t||!e)return;const a=e&&t.allLayerViews.items.find((({layer:t})=>t===e.layer||"subtype-sublayer"===e.layer?.type&&e.layer?.parent===t));k(a)&&this.addHandles(a.highlight(e),U)}removeHighlight(){this.removeHandles(U)}_makeRelatedRecordAttributes(e){const{parentFeature:t,relatedLayer:a,relationshipId:i}=e;if(!M(t))return;const o=a.relationships?.find((e=>e.id===i));if(!o)return void E("relationship-not-found","Could not begin creating a related record because the relationship specified could not be found on the destination layer.");if("origin"===o.role)return void E("unsupported-role","Creating new related records in the 'origin' table of a relationship is not yet supported");const r=t.sourceLayer;o.relatedTableId!==r.layerId&&E("invalid-argument-combination","The given parent feature does not belong to the relationship designated by the given relationship ID.");const s=r.relationships?.find((e=>e.id===i));if(!s)return void E("relationship-not-found","Could not begin creating a related record because the relationship specified could not be found on the origin layer.");const n=t.getAttribute(s.keyField);return n||E("no-key-on-origin-feature","The given parent feature does not have a value for the relationship's origin primary key field."),{[o.keyField]:n}}async _popWorkflow(){this._workflowStack.pop()?.destroy();const e=await this._reconcileWorkflowStack();if(e.failureCount>0)throw new a("editor:next-workflow-failed","Popped the top workflow, but the next workflow in the stack failed to activate",e)}async _pushWorkflow(e){const t=this._workflowRequiresSketchViewModel(e);this.activeWorkflow?.exit({removeSketchHandles:t}),await e.start(),this._workflowStack.push(e);const i=await this._reconcileWorkflowStack();if(i.failureCount>0)throw new a("editor:failed-to-start-updating-feature","Failed to enter the provided workflow.",i)}async _reconcileWorkflowStack(){const e=this._workflowStack;try{const t=e.peek();return await(t?.enter()),{activeWorkflow:t,failureCount:0}}catch(t){e.pop().destroy();const{activeWorkflow:a,failureCount:i}=await this._reconcileWorkflowStack();return{activeWorkflow:a,failureCount:i+1}}}_workflowRequiresSketchViewModel(e){const{type:t}=e;return"update-features"===t||"create-features"===t&&!g(e.data.creationInfo?.layer)}static _createWorkflowSteps(e,t="awaiting-feature-to-update"){const{data:o}=e;return _(["awaiting-feature-to-update","awaiting-update-feature-candidate","editing-existing-feature","adding-attachment","editing-attachment"],t,{"awaiting-feature-to-update":()=>({id:"awaiting-feature-to-update",async setUp(){const{spinnerViewModel:t}=o.viewModel,a=o.viewModel.view;let d=null;e.addHandles(i((()=>{d=r(d)})),this.id),o.rootFeature=null,o.candidates=[];const c=a.on("immediate-click",(async i=>{i.stopPropagation(),t.location=i.mapPoint,t.visible=!0,d?.abort();const{editableItems:r}=o.viewModel;d=new AbortController;const c=await new Promise(((e,t)=>{s(d?.signal,(()=>t(n()))),e(S(r,a,i,d?.signal))}));l(d),o.candidates=c.filter((e=>"fulfilled"===e.status)).flatMap((e=>e.value)),t.visible=1===o.candidates.length,0!==o.candidates.length&&(1===o.candidates.length?(o.rootFeature=o.candidates[0],e.go("editing-existing-feature").catch((()=>{})).then((()=>t.visible=!1))):e.next())}));a.focus(),e.addHandles(c,this.id)},async tearDown(){0===o.candidates.length&&(o.viewModel.spinnerViewModel.visible=!1),e.removeHandles(this.id)}}),"awaiting-update-feature-candidate":()=>({id:"awaiting-update-feature-candidate",async setUp(){o.rootFeature=null,e.addHandles([u((()=>o.rootFeature),(t=>e.highlight(t)),w),i((()=>e.removeHighlight()))],this.id)},async tearDown(){e.removeHandles(this.id)}}),"editing-existing-feature":()=>({id:"editing-existing-feature",async setUp(){const{rootFeature:t,viewModel:r}=e.data;if(!t)throw new a("editor:no-feature-specified","Cannot setup the 'updating-existing-feature' step until the root feature is defined");await e.startUpdating(t),r.spinnerViewModel.visible=!1;const s=d((async()=>{await p((()=>!e.updating)),e.previous()})),{featureFormViewModel:n}=o.viewModel,l=n.relatedRecordCallbacks;n.relatedRecordCallbacks={addRelatedRecord:async t=>{await e.startCreatingRelatedRecord(t),n.relationshipId=null},editRelatedRecord:async({relatedFeature:t})=>{await e.startUpdating(t),n.relationshipId=null},showAllRelatedRecords:e=>n.relationshipId=e.relationshipId},e.addHandles([i((()=>n.relatedRecordCallbacks=l)),u((()=>e.nestedWorkflowCount),((e,t)=>{0===e&&0!==t&&s()}),w)],this.id)},async tearDown(){await e.cancelAll(),e.removeHandles(this.id)}}),"adding-attachment":()=>({id:"adding-attachment",parent:"editing-existing-feature",async setUp(){},async tearDown(){o.viewModel.attachmentsViewModel.mode="view"}}),"editing-attachment":()=>({id:"editing-attachment",parent:"editing-existing-feature",async setUp(){},async tearDown(){o.viewModel.attachmentsViewModel.mode="view"}})})}};e([h()],I.prototype,"activeEditableItem",null),e([h()],I.prototype,"activeWorkflow",null),e([h()],I.prototype,"nestedWorkflowCount",null),e([h()],I.prototype,"shouldShowAttachments",null),e([h()],I.prototype,"shouldAllowAttachmentEditing",null),e([h()],I.prototype,"hasPendingEdits",null),e([h()],I.prototype,"helpMessage",null),e([h()],I.prototype,"reliesOnOwnerAdminPrivileges",null),e([h()],I.prototype,"hasInvalidFormTemplate",null),e([h()],I.prototype,"hasUnsupportedFields",null),I=F=e([f(j)],I);const E=(e,t)=>A.warn(`editor:${e}`,t,"The create operation will be allowed to proceed, but the resulting feature may not be related to the given parent feature."),R=e=>!!e&&/update-/.test(e.type),P=I;export{P as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import a from"../../core/Error.js";import{makeHandle as o}from"../../core/handleUtils.js";import i from"../../core/Logger.js";import{abortMaybe as r}from"../../core/maybe.js";import{onAbort as s,createAbortError as n,throwIfAborted as l,debounce as d}from"../../core/promiseUtils.js";import c from"../../core/Queue.js";import{whenOnce as p,watch as u,sync as w}from"../../core/reactiveUtils.js";import{property as h}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as f}from"../../core/accessorSupport/decorators/subclass.js";import{isEditableLayer as m}from"../../layers/support/editableLayers.js";import{isSubtypeGroupLayer as g,isTable as k}from"../../layers/support/layerUtils.js";import{highlightsSupported as v}from"../../views/support/layerViewUtils.js";import y from"./CreateFeaturesWorkflow.js";import{UpdateFeatureWorkflow as b}from"./UpdateFeatureWorkflow.js";import{UpdateRecordWorkflow as W}from"./UpdateRecordWorkflow.js";import C from"./UpdateWorkflowData.js";import _ from"./Workflow.js";import{createWorkflowSteps as F,fetchCandidates as S}from"./workflowUtils.js";import{isGraphicForRelatableFeatureSupportedLayer as M}from"../Feature/support/featureUtils.js";import{getAllTemplatesForLayer as U}from"../support/templateUtils.js";var I;const j="candidate-highlight",A="esri.widgets.Editor.UpdateWorkflow",E=i.getLogger(A);let R=I=class extends _{constructor(e){super(e),this._workflowStack=new c((e=>{let t;for(t of e);return t})),this.type="update"}get activeEditableItem(){const{activeWorkflow:e}=this;return x(e)?e.data.editableItem:void 0}get activeWorkflow(){return this._workflowStack.last()}get nestedWorkflowCount(){return this._workflowStack.length}get shouldShowAttachments(){return!!this.activeEditableItem?.attachmentsOnUpdateEnabled}get shouldAllowAttachmentEditing(){return!!this.activeEditableItem?.supports.includes("update")}get hasPendingEdits(){return Array.from(this._workflowStack).some((e=>e.hasPendingEdits))}get helpMessage(){return"awaiting-feature-to-update"===this.stepId?"select":void 0}get reliesOnOwnerAdminPrivileges(){return this.activeWorkflow?.reliesOnOwnerAdminPrivileges??!1}get hasInvalidFormTemplate(){return!!this.activeEditableItem?.hasInvalidFormTemplate}get hasUnsupportedFields(){return!!this.activeEditableItem?.hasUnsupportedFields}async back(e=(()=>Promise.resolve(!0))){const{featureFormViewModel:t}=this.data.viewModel;if(null==t.relationshipId)if(this.activeWorkflow){if(this.activeWorkflow.hasPendingEdits){if(!await e())return}this.activeWorkflow.hasPreviousStep?await this.activeWorkflow.previous({cancelCurrentStep:!0}):await this.cancelActiveWorkflow({force:!0})}else this.hasPreviousStep?await this.previous({cancelCurrentStep:!0}):await this.cancel({force:!0});else t.relationshipId=null}async cancelActiveWorkflow(e){await(this.activeWorkflow?.cancel(e)),await this._popWorkflow()}async commit(){await this._drainWorkflowStack((e=>e.commit())),await super.commit()}static create(e,t,a){const o=new I({data:new C({applyEditsCallback:a,viewModel:e}),onCommit:async()=>{}});return o._set("steps",this._createWorkflowSteps(o,t)),o}async save(){this.nestedWorkflowCount>1?(await(this.activeWorkflow?.commit()),await this._popWorkflow()):await this.commit()}async startCreatingRelatedRecord(e){try{const t=await this._createNestedCreateFeaturesWorkflow(e);await this._pushWorkflow(t)}catch(t){throw new a("editor:unable-to-start-creating","Could not begin updating the provided feature or table record.",{error:t})}}async startUpdating(e){try{const t=await this._createNestedUpdateWorkflow(e);await this._pushWorkflow(t)}catch(t){throw new a("editor:unable-to-start-updating","Could not begin updating the provided feature or table record.",{error:t})}}async deleteActiveFeature(){const{activeWorkflow:e}=this;if(!e)throw new a("editor:nothing-to-delete","There is no feature to delete");x(e)?await e.deleteAndCommit():await e.cancel(),1===this.nestedWorkflowCount?await this.reset():await this._popWorkflow()}async cancelAll(){await this._drainWorkflowStack((e=>e.cancel({force:!0})))}async _createNestedCreateFeaturesWorkflow(e){const{relatedLayer:t}=e,{addAttachmentsCallback:o,applyEditsCallback:i,viewModel:r}=this.data;if(!m(t))throw new a("editor:unsupported-layer","Editing is not supported on the provided layer");const s=this._getCreationInfoForNestedCreateFeaturesWorkflow(e),n=s.initialFeature?"creating-features":"awaiting-feature-creation-info",l="create-features"!==this.activeWorkflow?.type?this.activeWorkflow:void 0;return y.create({addAttachmentsCallback:o,applyEditsCallback:i,creationInfo:s,parent:l,startAt:n,viewModel:r})}_getCreationInfoForNestedCreateFeaturesWorkflow(e){const{relatedLayer:o}=e;if(!m(o)||g(o))throw new a("editor:unsupported-layer","Editing is not supported on the provided layer");const i={layer:o,maxFeatures:1},r=this._makeRelatedRecordAttributes(e),s=U(o);return s?.length?s.length>1?i.attributeOverrides=r:i.initialFeature=new t({sourceLayer:o,attributes:{...s[0].prototype.attributes,...r}}):i.initialFeature=new t({sourceLayer:o,attributes:r}),i}async _createNestedUpdateWorkflow(e){const t=k(e.sourceLayer)?W:b,{applyEditsCallback:a,viewModel:o}=this.data,i="create-features"!==this.activeWorkflow?.type?this.activeWorkflow:void 0,r=await t.create({feature:e,parent:i,viewModel:o,applyEdits:a});return await p((()=>!r.updating)),r}async _drainWorkflowStack(e){const t=this._workflowStack,a=[];for(;t.length>0;){const o=t.pop(),i=e(o).then((()=>o.destroy()));this._updatingHandles.addPromise(i),a.push(i)}await Promise.all(a)}highlight(e){this.removeHighlight();const t=this.data.viewModel.view;if(!t||!e)return;const a=e&&t.allLayerViews.items.find((({layer:t})=>t===e.layer||"subtype-sublayer"===e.layer?.type&&e.layer?.parent===t));v(a)&&this.addHandles(a.highlight(e),j)}removeHighlight(){this.removeHandles(j)}_makeRelatedRecordAttributes(e){const{parentFeature:t,relatedLayer:a,relationshipId:o}=e;if(!M(t))return;const i=a.relationships?.find((e=>e.id===o));if(!i)return void P("relationship-not-found","Could not begin creating a related record because the relationship specified could not be found on the destination layer.");if("origin"===i.role)return void P("unsupported-role","Creating new related records in the 'origin' table of a relationship is not yet supported");const r=t.sourceLayer;i.relatedTableId!==r.layerId&&P("invalid-argument-combination","The given parent feature does not belong to the relationship designated by the given relationship ID.");const s=r.relationships?.find((e=>e.id===o));if(!s)return void P("relationship-not-found","Could not begin creating a related record because the relationship specified could not be found on the origin layer.");const n=t.getAttribute(s.keyField);return n||P("no-key-on-origin-feature","The given parent feature does not have a value for the relationship's origin primary key field."),{[i.keyField]:n}}async _popWorkflow(){this._workflowStack.pop()?.destroy();const e=await this._reconcileWorkflowStack();if(e.failureCount>0)throw new a("editor:next-workflow-failed","Popped the top workflow, but the next workflow in the stack failed to activate",e)}async _pushWorkflow(e){const t=this._workflowRequiresSketchViewModel(e);this.activeWorkflow?.exit({removeSketchHandles:t}),await e.start(),this._workflowStack.push(e);const o=await this._reconcileWorkflowStack();if(o.failureCount>0)throw new a("editor:failed-to-start-updating-feature","Failed to enter the provided workflow.",o)}async _reconcileWorkflowStack(){const e=this._workflowStack;try{const t=e.peek();return await(t?.enter()),{activeWorkflow:t,failureCount:0}}catch(t){e.pop().destroy();const{activeWorkflow:a,failureCount:o}=await this._reconcileWorkflowStack();return{activeWorkflow:a,failureCount:o+1}}}_workflowRequiresSketchViewModel(e){const{type:t}=e;return"update-features"===t||"create-features"===t&&!k(e.data.creationInfo?.layer)}static _createWorkflowSteps(e,t="awaiting-feature-to-update"){const{data:i}=e;return F(["awaiting-feature-to-update","awaiting-update-feature-candidate","editing-existing-feature","adding-attachment","editing-attachment"],t,{"awaiting-feature-to-update":()=>({id:"awaiting-feature-to-update",async setUp(){const{spinnerViewModel:t}=i.viewModel,a=i.viewModel.view;let d=null;e.addHandles(o((()=>{d=r(d)})),this.id),i.rootFeature=null,i.candidates=[];const c=a.on("immediate-click",(async o=>{o.stopPropagation(),t.location=o.mapPoint,t.visible=!0,d?.abort();const{editableItems:r}=i.viewModel;d=new AbortController;const c=await new Promise(((e,t)=>{s(d?.signal,(()=>t(n()))),e(S(r,a,o,d?.signal))}));l(d),i.candidates=c.filter((e=>"fulfilled"===e.status)).flatMap((e=>e.value)),t.visible=1===i.candidates.length,0!==i.candidates.length&&(1===i.candidates.length?(i.rootFeature=i.candidates[0],e.go("editing-existing-feature").catch((()=>{})).then((()=>t.visible=!1))):e.next())}));a.focus(),e.addHandles(c,this.id)},async tearDown(){0===i.candidates.length&&(i.viewModel.spinnerViewModel.visible=!1),e.removeHandles(this.id)}}),"awaiting-update-feature-candidate":()=>({id:"awaiting-update-feature-candidate",async setUp(){i.rootFeature=null,e.addHandles([u((()=>i.rootFeature),(t=>e.highlight(t)),w),o((()=>e.removeHighlight()))],this.id)},async tearDown(){e.removeHandles(this.id)}}),"editing-existing-feature":()=>({id:"editing-existing-feature",async setUp(){const{rootFeature:t,viewModel:r}=e.data;if(!t)throw new a("editor:no-feature-specified","Cannot setup the 'updating-existing-feature' step until the root feature is defined");await e.startUpdating(t),r.spinnerViewModel.visible=!1;const s=d((async()=>{await p((()=>!e.updating)),e.previous()})),{featureFormViewModel:n}=i.viewModel,l=n.relatedRecordCallbacks;n.relatedRecordCallbacks={addRelatedRecord:async t=>{await e.startCreatingRelatedRecord(t),n.relationshipId=null},editRelatedRecord:async({relatedFeature:t})=>{await e.startUpdating(t),n.relationshipId=null},showAllRelatedRecords:e=>n.relationshipId=e.relationshipId},e.addHandles([o((()=>n.relatedRecordCallbacks=l)),u((()=>e.nestedWorkflowCount),((e,t)=>{0===e&&0!==t&&s()}),w)],this.id)},async tearDown(){await e.cancelAll(),e.removeHandles(this.id)}}),"adding-attachment":()=>({id:"adding-attachment",parent:"editing-existing-feature",async setUp(){},async tearDown(){i.viewModel.attachmentsViewModel.mode="view"}}),"editing-attachment":()=>({id:"editing-attachment",parent:"editing-existing-feature",async setUp(){},async tearDown(){i.viewModel.attachmentsViewModel.mode="view"}})})}};e([h()],R.prototype,"activeEditableItem",null),e([h()],R.prototype,"activeWorkflow",null),e([h()],R.prototype,"nestedWorkflowCount",null),e([h()],R.prototype,"shouldShowAttachments",null),e([h()],R.prototype,"shouldAllowAttachmentEditing",null),e([h()],R.prototype,"hasPendingEdits",null),e([h()],R.prototype,"helpMessage",null),e([h()],R.prototype,"reliesOnOwnerAdminPrivileges",null),e([h()],R.prototype,"hasInvalidFormTemplate",null),e([h()],R.prototype,"hasUnsupportedFields",null),R=I=e([f(A)],R);const P=(e,t)=>E.warn(`editor:${e}`,t,"The create operation will be allowed to proceed, but the resulting feature may not be related to the given parent feature."),x=e=>!!e&&/update-/.test(e.type),H=R;export{H as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../Graphic.js";import{unique as t}from"../../core/arrayUtils.js";import{createTask as i}from"../../core/asyncUtils.js";import"../../core/has.js";import{handlesGroup as r,makeHandle as a}from"../../core/handleUtils.js";import{clone as n}from"../../core/lang.js";import{throwIfAborted as s,whenOrAbort as l,debounce as o}from"../../core/promiseUtils.js";import{watch as c,whenOnce as u}from"../../core/reactiveUtils.js";import{px2pt as p}from"../../core/screenUtils.js";import{diff as y}from"../../core/accessorSupport/diffUtils.js";import{getDisplayFieldName as d}from"../../layers/support/fieldUtils.js";import{calculateTolerance as f}from"../../renderers/support/clickToleranceUtils.js";import{meterIn as m}from"../../renderers/support/lengthUtils.js";import{getTransformationType as h,TransformationType as b}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import{getRotationAngle as g,getSize as w}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{sceneLayerEditingEnabled as v,i3sPatchingEnabled as S}from"../../support/featureFlags.js";import{to3D as j}from"../../symbols/support/symbolConversion.js";import{getDisplayedSymbol as I}from"../../symbols/support/symbolUtils.js";import{GraphicState as U}from"../../views/3d/layers/graphics/GraphicState.js";import{createQueryGeometry as V}from"../../views/support/drapedUtils.js";import{hitTestSelectSimilarDistance as F,filterGraphicHits as L}from"../../views/support/hitTestSelectUtils.js";function T(e){const t=e.sourceLayer;if(!t||"feature"!==t.type||!C(t.renderer))return{rotation:null,size:null};let i=null,r=null;const a=t.renderer.getVisualVariablesForType("rotation").filter((t=>(!t.axis||"heading"===t.axis)&&t.field&&!t.valueExpression&&null!=g(t,e)));1===a.length&&(i=z(a[0],t));const n=t.renderer.getVisualVariablesForType("size").filter((t=>t.field&&!t.useSymbolValue&&!t.valueExpression&&h(t)===b.RealWorldSize&&null!=w(t,e)));return 1===n.length&&(r=O(n[0],t)),{rotation:i,size:r}}function z(e,t){const i="heading"===(e.axis||"heading")&&"arithmetic"===e.rotationType?-1:1,r=e.field,a=t.fields&&t.fields.filter((e=>e.name===r)),n=a&&1===a.length?a[0].type:"double",s={initial:0,current:0};return{field:r,fieldType:n,getDefault:()=>Promise.resolve(0),getValue:e=>(s.current=s.initial-i*e,E((s.current+360)%360,n)),initValue:e=>{s.initial=null!=e?e:s.current,s.current=0},isUpdatingInteractively:!1,rotationType:e.rotationType??"geographic"}}function x(e,t){switch(t){case"width":return e[0];case"depth":return e[1];case"height":return e[2];default:return e[2]||e[1]||e[0]}}async function k(e,t,i){if(null==t)return 0;const{symbol:r}=j(t);if(null==r||"web-style"===r.type||"cim"===r.type)return 0;const a=r.symbolLayers.at(0);if(!a)return 0;switch(a.type){case"icon":{const{computeIconLayerResourceSize:e}=await import("../../symbols/support/symbolLayerUtils.js");return a.size||Math.min(ee.icon,(await e(a,ee.icon))[0])||ee.icon}case"text":return a.size||ee.text;case"line":return a.size||ee.line;case"object":{const{computeObjectLayerResourceSize:t}=await import("../../symbols/support/symbolLayerUtils.js");return x(await t(a,e.scale/ee.viewScaleSizeFactor),i)}case"path":return(null!=a.width?a.width:a.height)||e.scale/ee.viewScaleSizeFactor;case"extrude":return a.size||e.scale/ee.viewScaleSizeFactor;default:return 0}}function O(e,t){const i=e.field,r=e.axis,a=t.fields&&t.fields.filter((e=>e.name===i)),n=a&&1===a.length?a[0].type:"double",s={updating:!1,initial:0,current:0},l=m[e.valueUnit]??1;let o;return o="area"===e.valueRepresentation?e=>(e*l/2)**2*Math.PI:"radius"===e.valueRepresentation||"distance"===e.valueRepresentation?e=>e*l/2:e=>e*l,{field:i,fieldType:n,getDefault:async(e,t)=>E(o(await k(t,e,r)),n),getValue:(e,t)=>(s.initial||(s.initial=t.pixelSizeAt(t.center)),s.current=s.initial*e,E(s.current,n)),initValue:e=>{s.initial=null!=e?e:s.current,s.current=0},isUpdatingInteractively:!1,displayUnit:ae(e.valueUnit),axis:e.axis}}function E(e,t){switch(t){case"small-integer":case"integer":case"long":return Math.round(e);case"double":case"single":return e;default:return 0}}function C(e){switch(e?.type){case"class-breaks":case"simple":case"unique-value":case"dot-density":case"dictionary":case"pie-chart":return!0;default:return!1}}async function M(e,t,i){const r=await I(e,{useSourceLayer:!0,ignoreGraphicSymbol:!0,webStyleCache:t,scale:i});null!=y(e.symbol,r)&&(e.symbol=r)}function A(e){if(!e)throw new Error("no geometry type");return"multipatch"===e?"mesh":e}async function G(e,t,i,n){(await P(e,t,n)).remove();const s=e.on("create",(async r=>{if("cancel"===r.state){(await P(e,t,n)).remove()}if("complete"===r.state){const a=r.graphic;a.sourceLayer||(a.sourceLayer=t.layer),a.attributes||(a.attributes={...t.template?.prototype.attributes});const s="2d"===e.view?.type?e.view?.scale:null;await M(a,n,s),i(a)}}));return r([s,a((()=>e.cancel()))])}async function P(e,t,i){const r=t.layer,n={...t.template?.prototype.attributes};let s=null;const{view:l}=e,u="2d"===l?.type;if(await R(e,r,n,i,u?l.scale:null),u){const t=o((t=>R(e,r,n,i,t)));s=c((()=>l.scale),(e=>t(e)))}return e.layer.elevationInfo=r.elevationInfo,await e.create(A(r.geometryType),{graphicProperties:{attributes:n,sourceLayer:r},hasZ:r.capabilities.data.supportsZ,geometryToPlace:t.geometryToPlace??void 0}),s??a()}async function R(t,i,r,a,n){const s=new e({sourceLayer:i,attributes:r}),{rotation:l,size:o}=T(s);let c=await I(s,{useSourceLayer:!0,webStyleCache:a,scale:n}),u=!1;for(const e of[o,l]){if(null==e)continue;null==r[e.field]&&(r[e.field]=await e.getDefault(c,t.view),u=!0)}switch(u&&(c=await I(s,{useSourceLayer:!0,webStyleCache:a,scale:n})),c?.type){case"simple-fill":case"polygon-3d":t.polygonSymbol=c;break;case"simple-line":case"line-3d":t.polylineSymbol=c;break;case"simple-marker":case"picture-marker":case"point-3d":case"cim":t.pointSymbol=c;break;case"mesh-3d":t.meshSymbol=c}D(t.tooltipOptions,o,l)}function D(e,t,i){e.visualVariables=null!=t||null!=i?{size:null!=t?{unit:t.displayUnit,axis:t.axis,valueType:t.fieldType}:null,rotation:null!=i?{valueType:i.fieldType,rotationType:i.rotationType??"geographic"}:null}:null}function q(e,t){return e?e.find((e=>e.layer===t)):void 0}async function Z(e,i,r,a){if(0===e.length)return[];const{updatable:n,graphicsByLayer:s}=await r.async((async()=>{const{results:t}=await l(F(i,r),a),n=new Map,s=e=>{const t=e.layer,i=n.get(t);if(!i){const e=new Array;return n.set(t,e),e}return i};L(t).forEach((({graphic:e})=>s(e).push(e)));const o=e.filter((({supports:e,layer:t})=>e.includes("update")&&n.has(t)));return 0!==o.length&&r.stopPropagation(),{updatable:o,graphicsByLayer:n}}));return l(Promise.allSettled(n.map((async({layer:e})=>{const{objectIdField:i}=e,r="displayField"in e?e.displayField:null,n=[i];null!=r&&e.fieldsIndex.has(r)&&n.push(r);const l=s.get(e),o=n.map((e=>e.toLowerCase()));if(!!l.some((e=>{const t=Object.keys(e.attributes).map((e=>e.toLowerCase()));return o.some((e=>!t.includes(e)))}))){const i=e.createQuery();return i.outFields=t([...l.flatMap((e=>Object.keys(e.attributes))),...n]),i.returnGeometry=!1,i.objectIds=l.map((e=>e.getObjectId())),e.queryFeatures(i,{signal:a}).then((({features:e})=>e))}return l}))),a)}async function Q(e,t,i,r){if(0===e.length)return[];let a=null;const n=await i.async((async()=>{const{results:n}=await l(t.hitTest(i),r);if(0===n.length)return[];const s=new Set;a=L(n),a.forEach((({graphic:e})=>e&&s.add(e.layer)));const o=e.items.filter((({layer:e,supports:t,attachmentsOnUpdateEnabled:i})=>s.has(e)&&(t.includes("update")||t.includes("delete")||i)));return o.length>0&&i.stopPropagation(),o}));return l(Promise.allSettled(n.map((({layer:e})=>{const n=e.objectIdField,s="displayField"in e?e.displayField:null,l=d({displayField:s,fields:e.fields}),o=[n];null!=l&&e.fieldsIndex.has(l)&&o.push(l);const c=e.createQuery();c.outFields=o,c.returnGeometry=!1;const u="renderer"in e?f({renderer:e.renderer,event:i}):0;return c.geometry=V(i.mapPoint,u,t),c.outSpatialReference=t.spatialReference,e.queryFeatures(c,{signal:r}).then((({features:t})=>(a?.forEach((({graphic:i})=>{i.layer!==e||t.some((e=>e.getObjectId()===i.getObjectId()))||t.push(i)})),t)))}))),r)}async function B(e,t,i,r){switch(t.type){case"3d":return Z(e,t,i,r);case"2d":return Q(e,t,i,r)}}async function W(e,t,i){const{sourceLayer:r}=e,a=r.createQuery();a.objectIds=[e.getAttribute(r.objectIdField)],a.outFields=["*"],a.outSpatialReference=t,a.returnM=r.capabilities.data.supportsM,a.returnZ=r.capabilities.data.supportsZ,v()&&S()&&"scene"===r.type&&null!=r.infoFor3D&&(a.returnGeometry=!0,a.formatOf3DObjects="3D_glb");const n=await r.queryFeatures(a,{signal:i});s(i);return n.features[0]}async function _(e){const{graphic:t,sketchViewModel:i,sourceLayer:r,visualVariables:a,webStyleCache:n}=e;let s=!1;const{rotation:l,size:o}=a;if([l,o].forEach((async e=>{if(null==e)return;const r=t.getAttribute(e.field);if(null!=r)e.initValue(r);else{const r=await e.getDefault(t.symbol,i.view);e.initValue(r),t.setAttribute(e.field,r),s=!0}})),s){const e="2d"===i.view?.type?i.view.scale:null;await M(t,n,e)}const c={multipleSelectionEnabled:!1};return"point"===r.geometryType&&(c.enableRotation=null!=l,c.enableScaling=null!=o),D(i.tooltipOptions,o,l),i.layer.elevationInfo=r.elevationInfo,i.update(t,c)}function H(e){return null==e||"rotate-start"!==e.type&&"rotate"!==e.type&&"rotate-stop"!==e.type?null:e}function J(e){return null==e||"scale-start"!==e.type&&"scale"!==e.type&&"scale-stop"!==e.type?null:e}async function K(e,t,i,r,a){if(null==t.geometry||"point"!==t.geometry?.type)return;const n=r.rotation,s=H(i.toolEventInfo);if(null!=n&&null!=s)if("rotate-stop"===s.type)n.isUpdatingInteractively=!1,n.initValue();else{n.isUpdatingInteractively=!0;const{field:i,getValue:r}=n;t.setAttribute(i,r(s.angle,e))}const l=r.size,o=J(i.toolEventInfo);if(null!=l&&null!=o)if("scale-stop"===o.type)l.isUpdatingInteractively=!1,l.initValue();else{l.isUpdatingInteractively=!0;const{field:i,getValue:r}=l;t.setAttribute(i,r(o.xScale,e))}await M(t,a,"2d"===e.type?e.scale:null)}async function N(e,t,i,n,s,l){const u=pe(e);await M(u,l,"2d"===n.type?n.scale:null);let p=null;if("2d"===i?.view?.type){const e=o((e=>M(u,l,e)));p=c((()=>i?.view?.scale),(t=>e(t)))}n.map.add(i.layer),i.layer.add(u);const y=e.sourceLayer,d=oe(n,y);await $(n,u),await _({graphic:u,sketchViewModel:i,sourceLayer:y,visualVariables:t,webStyleCache:l});const f=X(i,e,u);let m=null;d.then((e=>m=e)).catch((()=>{}));const h=t.size,b=t.rotation,g=c((()=>e.attributes),(async e=>{let t=!1;for(const i in e){const r=e[i];r!==u.getAttribute(i)&&(u.setAttribute(i,r),null==h||h.isUpdatingInteractively||h.field!==i||h.initValue(r),null==b||b.isUpdatingInteractively||b.field!==i||b.initValue(r),(null==m||m.requiredFields.includes(i))&&(t=!0))}t&&await M(u,l,"2d"===n.type?n.scale:null)})),w=i.on("update",(async e=>{const r=e.graphics[0];if("complete"===e.state)return _({graphic:r,sketchViewModel:i,sourceLayer:y,visualVariables:t,webStyleCache:l});await K(n,r,e,t,l),s(pe(r),e)})),v=i.on(["undo","redo"],(async e=>{s(pe(e.graphics[0]),e)})),S=i.updateOnGraphicClick;return{visual:r([f,a((()=>{i.updateOnGraphicClick=S}))]),interactive:r([v,w,a((()=>i.cancel())),g,p,a((()=>{i.updateOnGraphicClick=!1}))])}}function X(e,t,n){const l=e.view,o=t.sourceLayer,c=t.layer,p=t.getAttribute(c.objectIdField);let y=null;function d(e){y?.abort(),y=i((async t=>{const i=await oe(l,o);s(t),i.setVisibility?.(p,e)}))}return d(!1),r([Y(l,n,(e=>d(!e))),a((async()=>{d(!0);try{const e=await oe(l,o);await u((()=>!e.updating))}finally{e.layer.remove(n)}}))])}function Y(e,t,i){if("3d"===e.type){const a=new U({graphic:t});return r([e.trackGraphicState(a),c((()=>a.displaying),i)])}return c((()=>t.visible),i)}async function $(e,t){if("3d"===e.type){const i=new U({graphic:t}),r=e.trackGraphicState(i);await u((()=>i.displaying)),r.remove()}else await u((()=>t.visible))}const ee={icon:p(24),text:p(12),line:p(1),viewScaleSizeFactor:100};function te(e,t,i){let r=!1;return e.filter((e=>!!r||(r=e===t,r))).map((e=>i[e]()))}function ie(e){if(1!==e.length)return null;const t=e[0];if("items"in t){const e=t;return 1===e.items.length?e.items[0]:null}return t}function re(e,t){if(e.viewModel.refreshCreationTemplates(),"awaiting-feature-creation-info"===t[0].id){const i=ie(e.viewModel.featureTemplatesViewModel.items);null==i||i.supportsUpload||(e.creationInfo=i,t.shift())}return t}function ae(e){switch(e){case"unknown":case"decimal-degrees":return null;default:return e}}function ne(e){e.filesEnabled=!0,e.mode="view",e.capabilities={editing:!0,operations:{add:!0,update:!0,delete:!0}}}function se(e){const{creationInfo:t,viewModel:i}=e;if(!t)return!1;const{layer:r}=t,a=i.editableItems.find((e=>e.layer===r));if(a)return a.attachmentsOnCreateEnabled;const n=r.capabilities?.data,s=i.layerInfos?.find((e=>e.layer===r));return!(!(n&&"supportsAttachment"in n&&n.supportsAttachment)||s&&(!1===s.allowAttachments||!1===s.attachmentsOnUpdateEnabled))}const le=e=>/-stop/.test(e)||/vertex-/.test(e),oe=(e,t)=>{const i="subtype-sublayer"===t.type?t.parent:t;return e.whenLayerView(i)};function ce(e){return"createInteractiveEditSession"in e}const ue=Symbol();function pe(e){const t=e.geometry;if("mesh"===t?.type){const i=e.cloneShallow();return i.attributes=n(e.attributes),i.geometry=t.cloneShallow(),i.geometry.transform=t.transform?.clone()??null,i}return e.clone()}function ye(e){const t=e.cursor;return e.cursor="progress",a((()=>e.cursor=t))}export{ue as UsesSketchViewModelSymbol,re as avoidFeatureTemplateSelectionWithOnlyOneItem,ce as canCreateInteractiveEditSession,pe as cloneGraphicExceptMesh,te as createWorkflowSteps,B as fetchCandidates,W as fetchFullFeature,q as findLayerInfo,T as getVisualVariableAttributes,le as isTerminalUpdateEventType,ne as prepareAttachmentsForCreateWorkflow,G as setUpFeatureAdd,N as setUpGeometryUpdate,se as shouldShowAttachmentsForCreateWorkflow,ye as showProgressCursor,ee as sizeDefaults,ae as sizeVariableUnitToLengthUnit,P as startCreatingNewFeature,_ as startUpdatingFeature,M as updateGraphicSymbolWhenRequired,K as visualVariableInteractiveUpdate,oe as whenEditorLayerView,$ as whenGraphicDisplayed};
5
+ import e from"../../Graphic.js";import{unique as t}from"../../core/arrayUtils.js";import{createTask as i}from"../../core/asyncUtils.js";import"../../core/has.js";import{handlesGroup as r,makeHandle as a}from"../../core/handleUtils.js";import{clone as n}from"../../core/lang.js";import{throwIfAborted as s,whenOrAbort as l,debounce as o}from"../../core/promiseUtils.js";import{watch as c,whenOnce as u}from"../../core/reactiveUtils.js";import{px2pt as p}from"../../core/screenUtils.js";import{diff as y}from"../../core/accessorSupport/diffUtils.js";import{getDisplayFieldName as d}from"../../layers/support/fieldUtils.js";import{calculateTolerance as f}from"../../renderers/support/clickToleranceUtils.js";import{meterIn as m}from"../../renderers/support/lengthUtils.js";import{getTransformationType as h,TransformationType as b}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import{getRotationAngle as g,getSize as w}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{sceneLayerEditingEnabled as v,i3sPatchingEnabled as S}from"../../support/featureFlags.js";import{to3D as j}from"../../symbols/support/symbolConversion.js";import{getDisplayedSymbol as I}from"../../symbols/support/symbolUtils.js";import{GraphicState as U}from"../../views/3d/layers/graphics/GraphicState.js";import{createQueryGeometry as V}from"../../views/support/drapedUtils.js";import{hitTestSelectSimilarDistance as F,filterGraphicHits as L}from"../../views/support/hitTestSelectUtils.js";function T(e){const t=e.sourceLayer;if(!t||"feature"!==t.type||!M(t.renderer))return{rotation:null,size:null};let i=null,r=null;const a=t.renderer.getVisualVariablesForType("rotation").filter((t=>(!t.axis||"heading"===t.axis)&&t.field&&!t.valueExpression&&null!=g(t,e)));1===a.length&&(i=z(a[0],t));const n=t.renderer.getVisualVariablesForType("size").filter((t=>t.field&&!t.useSymbolValue&&!t.valueExpression&&h(t)===b.RealWorldSize&&null!=w(t,e)));return 1===n.length&&(r=O(n[0],t)),{rotation:i,size:r}}function z(e,t){const i="heading"===(e.axis||"heading")&&"arithmetic"===e.rotationType?-1:1,r=e.field,a=t.fields&&t.fields.filter((e=>e.name===r)),n=a&&1===a.length?a[0].type:"double",s={initial:0,current:0};return{field:r,fieldType:n,getDefault:()=>Promise.resolve(0),getValue:e=>(s.current=s.initial-i*e,E((s.current+360)%360,n)),initValue:e=>{s.initial=null!=e?e:s.current,s.current=0},isUpdatingInteractively:!1,rotationType:e.rotationType??"geographic"}}function x(e,t){switch(t){case"width":return e[0];case"depth":return e[1];case"height":return e[2];default:return e[2]||e[1]||e[0]}}async function k(e,t,i){if(null==t)return 0;const{symbol:r}=j(t);if(null==r||"web-style"===r.type||"cim"===r.type)return 0;const a=r.symbolLayers.at(0);if(!a)return 0;switch(a.type){case"icon":{const{computeIconLayerResourceSize:e}=await import("../../symbols/support/symbolLayerUtils.js");return a.size||Math.min(ee.icon,(await e(a,ee.icon))[0])||ee.icon}case"text":return a.size||ee.text;case"line":return a.size||ee.line;case"object":{const{computeObjectLayerResourceSize:t}=await import("../../symbols/support/symbolLayerUtils.js");return x(await t(a,e.scale/ee.viewScaleSizeFactor),i)}case"path":return(null!=a.width?a.width:a.height)||e.scale/ee.viewScaleSizeFactor;case"extrude":return a.size||e.scale/ee.viewScaleSizeFactor;default:return 0}}function O(e,t){const i=e.field,r=e.axis,a=t.fields&&t.fields.filter((e=>e.name===i)),n=a&&1===a.length?a[0].type:"double",s={updating:!1,initial:0,current:0},l=m[e.valueUnit]??1;let o;return o="area"===e.valueRepresentation?e=>(e*l/2)**2*Math.PI:"radius"===e.valueRepresentation||"distance"===e.valueRepresentation?e=>e*l/2:e=>e*l,{field:i,fieldType:n,getDefault:async(e,t)=>E(o(await k(t,e,r)),n),getValue:(e,t)=>(s.initial||(s.initial=t.pixelSizeAt(t.center)),s.current=s.initial*e,E(s.current,n)),initValue:e=>{s.initial=null!=e?e:s.current,s.current=0},isUpdatingInteractively:!1,displayUnit:ae(e.valueUnit),axis:e.axis}}function E(e,t){switch(t){case"small-integer":case"integer":case"long":return Math.round(e);case"double":case"single":return e;default:return 0}}function M(e){switch(e?.type){case"class-breaks":case"simple":case"unique-value":case"dot-density":case"dictionary":case"pie-chart":return!0;default:return!1}}async function A(e,t,i){const r=await I(e,{useSourceLayer:!0,ignoreGraphicSymbol:!0,webStyleCache:t,scale:i});null!=y(e.symbol,r)&&(e.symbol=r)}function C(e){if(!e)throw new Error("no geometry type");return"multipatch"===e?"mesh":e}async function G(e,t,i,n){(await P(e,t,n)).remove();const s=e.on("create",(async r=>{if("cancel"===r.state){(await P(e,t,n)).remove()}if("complete"===r.state){const a=r.graphic;a.sourceLayer||(a.sourceLayer=t.layer),a.attributes||(a.attributes={...t.template?.prototype.attributes});const s="2d"===e.view?.type?e.view?.scale:null;await A(a,n,s),i(a)}}));return r([s,a((()=>e.cancel()))])}async function P(e,t,i){const r=t.layer,n={...t.template?.prototype.attributes,...t.attributeOverrides};let s=null;const{view:l}=e,u="2d"===l?.type;if(await R(e,r,n,i,u?l.scale:null),u){const t=o((t=>R(e,r,n,i,t)));s=c((()=>l.scale),(e=>t(e)))}return e.layer.elevationInfo=r.elevationInfo,await e.create(C(r.geometryType),{graphicProperties:{attributes:n,sourceLayer:r},hasZ:r.capabilities.data.supportsZ,geometryToPlace:t.geometryToPlace??void 0}),s??a()}async function R(t,i,r,a,n){const s=new e({sourceLayer:i,attributes:r}),{rotation:l,size:o}=T(s);let c=await I(s,{useSourceLayer:!0,webStyleCache:a,scale:n}),u=!1;for(const e of[o,l]){if(null==e)continue;null==r[e.field]&&(r[e.field]=await e.getDefault(c,t.view),u=!0)}switch(u&&(c=await I(s,{useSourceLayer:!0,webStyleCache:a,scale:n})),c?.type){case"simple-fill":case"polygon-3d":t.polygonSymbol=c;break;case"simple-line":case"line-3d":t.polylineSymbol=c;break;case"simple-marker":case"picture-marker":case"point-3d":case"cim":t.pointSymbol=c;break;case"mesh-3d":t.meshSymbol=c}D(t.tooltipOptions,o,l)}function D(e,t,i){e.visualVariables=null!=t||null!=i?{size:null!=t?{unit:t.displayUnit,axis:t.axis,valueType:t.fieldType}:null,rotation:null!=i?{valueType:i.fieldType,rotationType:i.rotationType??"geographic"}:null}:null}function q(e,t){return e?e.find((e=>e.layer===t)):void 0}async function Z(e,i,r,a){if(0===e.length)return[];const{updatable:n,graphicsByLayer:s}=await r.async((async()=>{const{results:t}=await l(F(i,r),a),n=new Map,s=e=>{const t=e.layer,i=n.get(t);if(!i){const e=new Array;return n.set(t,e),e}return i};L(t).forEach((({graphic:e})=>s(e).push(e)));const o=e.filter((({supports:e,layer:t})=>e.includes("update")&&n.has(t)));return 0!==o.length&&r.stopPropagation(),{updatable:o,graphicsByLayer:n}}));return l(Promise.allSettled(n.map((async({layer:e})=>{const{objectIdField:i}=e,r="displayField"in e?e.displayField:null,n=[i];null!=r&&e.fieldsIndex.has(r)&&n.push(r);const l=s.get(e),o=n.map((e=>e.toLowerCase()));if(!!l.some((e=>{const t=Object.keys(e.attributes).map((e=>e.toLowerCase()));return o.some((e=>!t.includes(e)))}))){const i=e.createQuery();return i.outFields=t([...l.flatMap((e=>Object.keys(e.attributes))),...n]),i.returnGeometry=!1,i.objectIds=l.map((e=>e.getObjectId())),e.queryFeatures(i,{signal:a}).then((({features:e})=>e))}return l}))),a)}async function Q(e,t,i,r){if(0===e.length)return[];let a=null;const n=await i.async((async()=>{const{results:n}=await l(t.hitTest(i),r);if(0===n.length)return[];const s=new Set;a=L(n),a.forEach((({graphic:e})=>e&&s.add(e.layer)));const o=e.items.filter((({layer:e,supports:t,attachmentsOnUpdateEnabled:i})=>s.has(e)&&(t.includes("update")||t.includes("delete")||i)));return o.length>0&&i.stopPropagation(),o}));return l(Promise.allSettled(n.map((({layer:e})=>{const n=e.objectIdField,s="displayField"in e?e.displayField:null,l=d({displayField:s,fields:e.fields}),o=[n];null!=l&&e.fieldsIndex.has(l)&&o.push(l);const c=e.createQuery();c.outFields=o,c.returnGeometry=!1;const u="renderer"in e?f({renderer:e.renderer,event:i}):0;return c.geometry=V(i.mapPoint,u,t),c.outSpatialReference=t.spatialReference,e.queryFeatures(c,{signal:r}).then((({features:t})=>(a?.forEach((({graphic:i})=>{i.layer!==e||t.some((e=>e.getObjectId()===i.getObjectId()))||t.push(i)})),t)))}))),r)}async function B(e,t,i,r){switch(t.type){case"3d":return Z(e,t,i,r);case"2d":return Q(e,t,i,r)}}async function W(e,t,i){const{sourceLayer:r}=e,a=r.createQuery();a.objectIds=[e.getAttribute(r.objectIdField)],a.outFields=["*"],a.outSpatialReference=t,a.returnM=r.capabilities.data.supportsM,a.returnZ=r.capabilities.data.supportsZ,v()&&S()&&"scene"===r.type&&null!=r.infoFor3D&&(a.returnGeometry=!0,a.formatOf3DObjects="3D_glb");const n=await r.queryFeatures(a,{signal:i});s(i);return n.features[0]}async function _(e){const{graphic:t,sketchViewModel:i,sourceLayer:r,visualVariables:a,webStyleCache:n}=e;let s=!1;const{rotation:l,size:o}=a;if([l,o].forEach((async e=>{if(null==e)return;const r=t.getAttribute(e.field);if(null!=r)e.initValue(r);else{const r=await e.getDefault(t.symbol,i.view);e.initValue(r),t.setAttribute(e.field,r),s=!0}})),s){const e="2d"===i.view?.type?i.view.scale:null;await A(t,n,e)}const c={multipleSelectionEnabled:!1};return"point"===r.geometryType&&(c.enableRotation=null!=l,c.enableScaling=null!=o),D(i.tooltipOptions,o,l),i.layer.elevationInfo=r.elevationInfo,i.update(t,c)}function H(e){return null==e||"rotate-start"!==e.type&&"rotate"!==e.type&&"rotate-stop"!==e.type?null:e}function J(e){return null==e||"scale-start"!==e.type&&"scale"!==e.type&&"scale-stop"!==e.type?null:e}async function K(e,t,i,r,a){if(null==t.geometry||"point"!==t.geometry?.type)return;const n=r.rotation,s=H(i.toolEventInfo);if(null!=n&&null!=s)if("rotate-stop"===s.type)n.isUpdatingInteractively=!1,n.initValue();else{n.isUpdatingInteractively=!0;const{field:i,getValue:r}=n;t.setAttribute(i,r(s.angle,e))}const l=r.size,o=J(i.toolEventInfo);if(null!=l&&null!=o)if("scale-stop"===o.type)l.isUpdatingInteractively=!1,l.initValue();else{l.isUpdatingInteractively=!0;const{field:i,getValue:r}=l;t.setAttribute(i,r(o.xScale,e))}await A(t,a,"2d"===e.type?e.scale:null)}async function N(e,t,i,n,s,l){const u=pe(e);await A(u,l,"2d"===n.type?n.scale:null);let p=null;if("2d"===i?.view?.type){const e=o((e=>A(u,l,e)));p=c((()=>i?.view?.scale),(t=>e(t)))}n.map.add(i.layer),i.layer.add(u);const y=e.sourceLayer,d=oe(n,y);await $(n,u),await _({graphic:u,sketchViewModel:i,sourceLayer:y,visualVariables:t,webStyleCache:l});const f=X(i,e,u);let m=null;d.then((e=>m=e)).catch((()=>{}));const h=t.size,b=t.rotation,g=c((()=>e.attributes),(async e=>{let t=!1;for(const i in e){const r=e[i];r!==u.getAttribute(i)&&(u.setAttribute(i,r),null==h||h.isUpdatingInteractively||h.field!==i||h.initValue(r),null==b||b.isUpdatingInteractively||b.field!==i||b.initValue(r),(null==m||m.requiredFields.includes(i))&&(t=!0))}t&&await A(u,l,"2d"===n.type?n.scale:null)})),w=i.on("update",(async e=>{const r=e.graphics[0];if("complete"===e.state)return _({graphic:r,sketchViewModel:i,sourceLayer:y,visualVariables:t,webStyleCache:l});await K(n,r,e,t,l),s(pe(r),e)})),v=i.on(["undo","redo"],(async e=>{s(pe(e.graphics[0]),e)})),S=i.updateOnGraphicClick;return{visual:r([f,a((()=>{i.updateOnGraphicClick=S}))]),interactive:r([v,w,a((()=>i.cancel())),g,p,a((()=>{i.updateOnGraphicClick=!1}))])}}function X(e,t,n){const l=e.view,o=t.sourceLayer,c=t.layer,p=t.getAttribute(c.objectIdField);let y=null;function d(e){y?.abort(),y=i((async t=>{const i=await oe(l,o);s(t),i.setVisibility?.(p,e)}))}return d(!1),r([Y(l,n,(e=>d(!e))),a((async()=>{d(!0);try{const e=await oe(l,o);await u((()=>!e.updating))}finally{e.layer.remove(n)}}))])}function Y(e,t,i){if("3d"===e.type){const a=new U({graphic:t});return r([e.trackGraphicState(a),c((()=>a.displaying),i)])}return c((()=>t.visible),i)}async function $(e,t){if("3d"===e.type){const i=new U({graphic:t}),r=e.trackGraphicState(i);await u((()=>i.displaying)),r.remove()}else await u((()=>t.visible))}const ee={icon:p(24),text:p(12),line:p(1),viewScaleSizeFactor:100};function te(e,t,i){let r=!1;return e.filter((e=>!!r||(r=e===t,r))).map((e=>i[e]()))}function ie(e){if(1!==e.length)return null;const t=e[0];if("items"in t){const e=t;return 1===e.items.length?e.items[0]:null}return t}function re(e,t){if(e.viewModel.syncFeatureTemplates(),"awaiting-feature-creation-info"===t[0].id){const i=ie(e.viewModel.featureTemplatesViewModel.items);null==i||i.supportsUpload||(e.creationInfo=i,t.shift())}return t}function ae(e){switch(e){case"unknown":case"decimal-degrees":return null;default:return e}}function ne(e){e.filesEnabled=!0,e.mode="view",e.capabilities={editing:!0,operations:{add:!0,update:!0,delete:!0}}}function se(e){const{creationInfo:t,viewModel:i}=e;if(!t)return!1;const{layer:r}=t,a=i.editableItems.find((e=>e.layer===r));if(a)return a.attachmentsOnCreateEnabled;const n=r.capabilities?.data,s=i.layerInfos?.find((e=>e.layer===r));return!(!(n&&"supportsAttachment"in n&&n.supportsAttachment)||s&&(!1===s.allowAttachments||!1===s.attachmentsOnUpdateEnabled))}const le=e=>/-stop/.test(e)||/vertex-/.test(e),oe=(e,t)=>{const i="subtype-sublayer"===t.type?t.parent:t;return e.whenLayerView(i)};function ce(e){return"createInteractiveEditSession"in e}const ue=Symbol();function pe(e){const t=e.geometry;if("mesh"===t?.type){const i=e.cloneShallow();return i.attributes=n(e.attributes),i.geometry=t.cloneShallow(),i.geometry.transform=t.transform?.clone()??null,i}return e.clone()}function ye(e){const t=e.cursor;return e.cursor="progress",a((()=>e.cursor=t))}export{ue as UsesSketchViewModelSymbol,re as avoidFeatureTemplateSelectionWithOnlyOneItem,ce as canCreateInteractiveEditSession,pe as cloneGraphicExceptMesh,te as createWorkflowSteps,B as fetchCandidates,W as fetchFullFeature,q as findLayerInfo,T as getVisualVariableAttributes,le as isTerminalUpdateEventType,ne as prepareAttachmentsForCreateWorkflow,G as setUpFeatureAdd,N as setUpGeometryUpdate,se as shouldShowAttachmentsForCreateWorkflow,ye as showProgressCursor,ee as sizeDefaults,ae as sizeVariableUnitToLengthUnit,P as startCreatingNewFeature,_ as startUpdatingFeature,A as updateGraphicSymbolWhenRequired,K as visualVariableInteractiveUpdate,oe as whenEditorLayerView,$ as whenGraphicDisplayed};
package/widgets/Editor.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Logger.js";import{createResolver as s}from"../core/promiseUtils.js";import{watch as o,initial as r,on as i,when as a}from"../core/reactiveUtils.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import p from"./Attachments.js";import m from"./FeatureForm.js";import c from"./FeatureTemplates.js";import h from"./Spinner.js";import u from"./Widget.js";import{CSS as g}from"./Editor/css.js";import{workflowDeprecation as f}from"./Editor/deprecationUtils.js";import w from"./Editor/EditorViewModel.js";import{WARNING_ICON as v}from"./Editor/icons.js";import{isModelUpload as _}from"./Editor/modelUploadUtils.js";import{loadCreateFeaturesPanelContentComponents as y,CreateFeaturesPanelContent as k}from"./Editor/components/CreateFeaturesPanelContent.js";import{loadFeatureListComponents as F,FeatureList as M}from"./Editor/components/FeatureList.js";import{loadFooterActionsComponents as b,FooterActions as C}from"./Editor/components/FooterActions.js";import{loadNoticesComponents as W,Notice as E}from"./Editor/components/Notices.js";import{loadPanelContentComponents as A,PanelContent as T,PanelContentSection as j,PanelContentMessage as P}from"./Editor/components/PanelContent.js";import{PanelToolbar as U,loadPanelToolbarComponents as L}from"./Editor/components/PanelToolbar.js";import{loadPromptComponents as I,Prompt as S}from"./Editor/components/Prompt.js";import{loadUpdateFeaturePanelContentComponents as D,UpdateFeaturePanelContent as x}from"./Editor/components/UpdateFeaturePanelContent.js";import{loadUploadDetailsComponents as O,UploadDetails as B}from"./Editor/components/UploadDetails.js";import{renderItem as V}from"./FeatureTemplates/ItemList.js";import{loadCalciteComponents as H}from"./support/componentsUtils.js";import{incrementHeadingLevel as G,Heading as R}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as q}from"./support/decorators/messageBundle.js";import{vmEvent as z}from"./support/decorators/vmEvent.js";import{tsx as N}from"./support/jsxFactory.js";import{substitute as $}from"../intl/substitute.js";const J={undoRedoButtons:!1,snappingControls:!0,snappingControlsElements:{header:!1,enabledToggle:!0,selfEnabledToggle:!0,featureEnabledToggle:!0,layerList:!0},sketchTooltipControls:!0},K="esri.widgets.Editor",Q=t.getLogger(K);let X=class extends u{constructor(e,t){super(e,t),this._featureForm=new m,this._attachments=new p({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new c({enableListScroll:!1,renderItemContentEnd:e=>e.supportsUpload?N("calcite-icon",{key:"upload-icon",class:g.templateItemContentEnd,icon:"upload-to"}):null,renderItemLabel:e=>e.label,renderCustomGroupContent:e=>this._renderCustomTemplateGroupContent(e)}),this._filterText="",this._prompt=null,this._spinner=new h,this.headingLevel=4,this.iconClass=g.widgetIcon,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.supportingWidgetDefaults=null,this.viewModel=new w,this.visibleElements={...J},this._renderSelectIcon=()=>N("calcite-icon",{icon:"cursor",slot:"content-start"}),this.EditorPanel=({heading:e,key:t},...s)=>N("calcite-flow-item",{closable:!1,heading:e,headingLevel:this.headingLevel,key:t,loading:this._loading,onCalciteFlowItemBack:this._onBack},N(U,{editorViewModel:this.viewModel,messagesCommon:this.messagesCommon,visibleElements:this.visibleElements}),...s),this._showDiscardEditsPrompt=()=>{const{messages:e,activeWorkflow:t}=this;if("create-features"===t?.type&&_(t.data.creationInfo))return this._showPrompt({title:e.cancelUploadTitle,message:e.cancelUploadWarningMessage,yesLabel:e.discardUpload,noLabel:e.continueUpload});const s="create"===t?.type;return this._showPrompt({title:e[s?"cancelAddTitle":"cancelEditTitle"],message:e[s?"cancelAddWarningMessage":"cancelEditWarningMessage"],yesLabel:e[s?"discardFeature":"discardEdits"],noLabel:e[s?"continueAdding":"continueEditing"]})},this._showGenericCancelPrompt=()=>{const{messages:e,messagesCommon:t}=this;return this._showPrompt({title:e.cancelRequestTitle,message:e.cancelRequestWarningMessage,yesLabel:t.form.yes,noLabel:t.form.no})},this._onSave=()=>{this.viewModel.saveWorkflow()},this._onDelete=()=>{const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteWarningTitle,message:e.deleteWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.deleteFeatureFromWorkflow(),this._clearPrompt()}},secondary:{label:e.keepFeature,action:this._clearPrompt}}}},this._onToggleUpdateWorkflow=()=>this.viewModel.toggleUpdateWorkflow(),this._onBack=e=>(e?.stopPropagation(),this.viewModel.back()),this._onAttachmentAdd=()=>{const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.addFile(),e.back()):this._attachments.addAttachment().then((()=>e.back())))},this._onAttachmentUpdate=()=>{const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.updateFile(),e.back()):this._attachments.updateAttachment().then((()=>e.back())))},this._onAttachmentDelete=()=>{const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:this._onAttachmentDeleteConfirm},secondary:{label:e.keepAttachment,action:this._clearPrompt}}}},this._onAttachmentDeleteConfirm=async()=>{const e=this._attachments,{activeWorkflow:t}=this.viewModel;t&&("create-features"===t.type?e.deleteFile():(await e.deleteAttachment(e.viewModel.activeAttachmentInfo),this._clearPrompt()),await t.back(),this._clearPrompt())},this._onAttachmentsError=e=>{this._prompt={title:this.messages.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:this.messagesCommon.form.ok,action:this._clearPrompt}}}},this._clearPrompt=()=>{this._prompt=null}}initialize(){this.addHandles([o((()=>G(this.headingLevel)),(e=>{this._featureForm.headingLevel=e,this._featureTemplates.headingLevel=e}),r),i((()=>this.viewModel.activeWorkflow),"cancel-request",(({controller:e})=>{(this.viewModel.hasPendingEdits?this._showDiscardEditsPrompt():this._showGenericCancelPrompt()).then((t=>t?e.allow():e.deny()))})),o((()=>this.viewModel),(e=>{this._featureForm.viewModel=e?.featureFormViewModel??null,this._attachments.viewModel=e?.attachmentsViewModel??null,this._featureTemplates.viewModel=e?.featureTemplatesViewModel??null,this._spinner.viewModel=e?.spinnerViewModel??null,e.showDiscardEditsPrompt=this._showDiscardEditsPrompt}),r),o((()=>this.view),((e,t)=>{const s=`editor-${this.id}-spinner`;t?.ui.remove(this._spinner,s),e?.ui.add(this._spinner,{key:s,position:"manual"})}),r),a((()=>this.supportingWidgetDefaults),(e=>{this._featureForm.set(e.featureForm),this._attachments.set(e.attachments),this._featureTemplates.set(e.featureTemplates),this.viewModel.sketchViewModel.set(e.sketch)}),r),a((()=>this._attachments?.error),(e=>this._onAttachmentsError(e))),a((()=>this.viewModel?.failures),(e=>{const{messages:t}=this,[{error:s,retry:o,cancel:r}]=e;this._prompt={title:t.errorWarningTitle,message:$(t.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:t.retry,action:()=>{o(),this._clearPrompt()}},secondary:{label:t.ignore,action:()=>{r(),this._clearPrompt()}}}}})),o((()=>this.viewModel?.state),(e=>{switch(e){case"awaiting-feature-to-update":case"ready":case"disabled":this._filterText="",this._featureTemplates.filterText=""}})),o((()=>this.viewModel.featureFormDisabled),(e=>this._featureForm.disabled=e))])}destroy(){this._attachments.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy()}loadDependencies(){return Promise.all([H({"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js")}),y(),F(),b(),W(),A(),L(),I(),D(),O()])}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger",type:"primary"}}get _loading(){const{viewModel:e}=this;return e.syncing||e.updating||this._attachments.submitting}get activeWorkflow(){return this.viewModel.activeWorkflow}get allowedWorkflows(){return this.viewModel.allowedWorkflows}set allowedWorkflows(e){this.viewModel.allowedWorkflows=e}get useDeprecatedCreateWorkflow(){return this.viewModel.useDeprecatedCreateWorkflow}set useDeprecatedCreateWorkflow(e){this.viewModel.useDeprecatedCreateWorkflow=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layerInfos(){return this.viewModel.layerInfos}set layerInfos(e){this.viewModel.layerInfos=e}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...J,...e,snappingControlsElements:{...J.snappingControlsElements,...e?.snappingControlsElements}}}startCreateWorkflowAtFeatureTypeSelection(){return f(Q,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return f(Q,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return f(Q,"startCreateWorkflowAtFeatureEdit"),this.viewModel.startCreateWorkflowAtFeatureEdit(e)}startUpdateWorkflowAtFeatureSelection(){return this.viewModel.startUpdateWorkflowAtFeatureSelection()}startUpdateWorkflowAtMultipleFeatureSelection(e){return this.viewModel.startUpdateWorkflowAtMultipleFeatureSelection(e)}startUpdateWorkflowAtFeatureEdit(e){return this.viewModel.startUpdateWorkflowAtFeatureEdit(e)}deleteFeatureFromWorkflow(){return this.viewModel.deleteFeatureFromWorkflow()}cancelWorkflow(e){return this.viewModel.cancelWorkflow(e)}render(){const{viewModel:e}=this;return e?N("div",{key:"base",class:g.base},N("calcite-flow",{key:"flow"},e.pageStack.map((e=>this._renderPage(e)))),this._prompt?N(S,{...this._prompt,headingLevel:this.headingLevel}):void 0):N("div",{key:"empty",class:g.base})}_renderPage(e){switch(e){case"disabled":break;case"ready":return this._renderReady();case"awaiting-feature-creation-info":return this._renderAwaitingFeatureCreationInfo();case"creating-features-upload-details":return this._renderUploadDetails();case"creating-features":return this._renderCreatingFeatures();case"editing-new-feature":case"editing-existing-feature":return this._renderUpdateFeature();case"awaiting-update-feature-candidate":return this._renderFeatureList();case"adding-attachment":return this._renderAttachmentAdding();case"editing-attachment":return this._renderAttachmentEditing()}return N("div",{key:"empty-page"})}_renderAwaitingFeatureCreationInfo(){const{EditorPanel:e,activeWorkflow:t,messages:s}=this;return"create-features"!==t?.type?null:N(e,{heading:s.selectTemplate,key:"templates-panel"},N(T,{key:"feature-templates"},N(j,null,this._featureTemplates.render())))}_renderUploadDetails(){const{EditorPanel:e,activeWorkflow:t,messages:s}=this;if("create-features"!==t?.type)return null;const o=t.data.upload;return o?N(e,{heading:s.createFeatures,key:"upload-details-panel"},N(B,{helpMessage:this._helpMessage,messages:s,upload:o})):null}_renderCreatingFeatures(){const{EditorPanel:e,activeWorkflow:t,messages:s,messagesCommon:o,headingLevel:r,viewModel:i}=this;if("create-features"!==t?.type)return null;const a=t.numPendingFeatures>0;return N(e,{key:"create-features-panel",heading:s.createFeatures},a?N(x,{editorViewModel:i,headingLevel:r,messages:s,messagesCommon:o,onDelete:this._onDelete,onSave:this._onSave,renderAttachments:()=>this._attachments.render(),renderFeatureForm:()=>this._featureForm.render()}):N(k,{helpMessage:this._helpMessage}))}_renderUpdateFeature(){const{EditorPanel:e,messages:t,messagesCommon:s,headingLevel:o,viewModel:r}=this;return N(e,{key:"update-feature-panel",heading:t.editFeature},N(x,{editorViewModel:r,headingLevel:o,messages:t,messagesCommon:s,onDelete:this._onDelete,onSave:this._onSave,renderAttachments:()=>this._attachments.render(),renderFeatureForm:()=>this._featureForm.render()}))}_renderCustomTemplateGroupContent(e){const{messages:t,viewModel:s}=this;let o=null;return e.group.items.some((e=>(s.itemHasUnsupportedFields(e)?o=t.formFieldUnsupportedCreateError:s.itemHasInvalidFormTemplate(e)&&(o=t.formFieldCreateError),o))),o?N(E,{message:o,icon:v}):null}_renderAttachmentAdding(){const{EditorPanel:e,_attachments:t,messages:s,messagesCommon:o}=this;return N(e,{key:"attachment-adding-panel",heading:s.addAttachment},N(T,{key:"attachments"},t.render()),N(C,{buttons:[{label:t.submitting?o.cancel:o.add,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentAdd}]}))}_renderAttachmentEditing(){const{EditorPanel:e,_attachments:t,activeWorkflow:s,messages:o,messagesCommon:r}=this;return s?N(e,{key:"attachment-editing-panel",heading:o.editAttachment},N(T,{key:"attachments"},t.render()),s.shouldAllowAttachmentEditing?N(C,{buttons:[{label:r.update,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentUpdate},{...this._deleteButtonCommonInfo,clickHandler:this._onAttachmentDelete,disabled:t.submitting,label:r.delete}]}):void 0):null}_renderReady(){const{EditorPanel:e,messages:t,viewModel:s}=this,{canUpdate:o}=s,r=this._featureTemplates.viewModel.numberOfFeatureTemplates,i=!o&&0===r,a=this._helpMessage;return N(e,{key:"landing-panel",heading:t.widgetLabel},N(T,{key:"landing-content"},o?N(j,{key:"edit-actions"},this._renderUpdateActions()):void 0,r>0?N(j,{key:"create-actions"},this._renderCreateActions()):void 0,i?N(P,{key:"no-content"},t.noEditableLayers):void 0),a?N("div",{key:"footer-actions",slot:"footer",class:g.helpMessage},a):void 0)}get _helpMessage(){const{activeWorkflow:e,messages:t,view:s}=this,o=e?.helpMessage;return o?t["3d"===s?.type?"helpMessages3d":"helpMessages2d"]?.[o]:void 0}_renderUpdateActions(){const{messages:e,messagesCommon:t}=this,s={id:"select",label:t.select};return N("div",{key:"update-actions"},N(R,{level:G(this.headingLevel)},e.editFeatures),N("calcite-list",{selectionMode:"single",selectionAppearance:"border"},V({grouped:!1,item:s,selectedItem:"awaiting-feature-to-update"===this.viewModel.activeWorkflow?.stepId?s:void 0,renderIcon:this._renderSelectIcon,onItemSelect:this._onToggleUpdateWorkflow})))}_renderCreateActions(){return N("div",{key:"create-actions"},N(R,{level:G(this.headingLevel)},this.messages.createFeatures),N("div",{key:"templates",class:g.featureTemplatesContainer},this._featureTemplates.render()))}_renderFeatureList(){const{EditorPanel:e,viewModel:t}=this,{activeWorkflow:s}=t;if("update"!==s?.type)return null;const o=s.data.candidates,r=$(this.messages.multipleFeaturesTemplate,{total:o.length});return N(e,{heading:r,key:"feature-list"},N(M,{editableItems:t.editableItems,filterText:this._filterText,id:this.id,messagesTemplates:this.messagesTemplates,onFilterTextChange:e=>this._filterText=e,onSelectFeature:(e,s)=>t.selectFeature(e,s),workflow:s}))}_showPrompt({title:e,message:t,yesLabel:o,noLabel:r}){const i=s(),{view:a}=this,n=a?.focused;return this._prompt={title:e,message:t,context:"danger",actions:{primary:{label:o,action:()=>i.resolve(!0)},secondary:{label:r,action:()=>i.resolve(!1)}}},i.promise.finally((()=>{this._clearPrompt(),n&&a?.focus()}))}};e([n()],X.prototype,"_featureForm",void 0),e([n()],X.prototype,"_attachments",void 0),e([n()],X.prototype,"_featureTemplates",void 0),e([n()],X.prototype,"_filterText",void 0),e([n()],X.prototype,"_prompt",void 0),e([n()],X.prototype,"_spinner",void 0),e([n()],X.prototype,"_deleteButtonCommonInfo",null),e([n()],X.prototype,"_loading",null),e([n({readOnly:!0})],X.prototype,"activeWorkflow",null),e([n()],X.prototype,"allowedWorkflows",null),e([n()],X.prototype,"useDeprecatedCreateWorkflow",null),e([n()],X.prototype,"headingLevel",void 0),e([n()],X.prototype,"iconClass",void 0),e([n()],X.prototype,"label",null),e([n()],X.prototype,"labelOptions",null),e([n()],X.prototype,"layerInfos",null),e([n(),q("esri/widgets/Editor/t9n/Editor")],X.prototype,"messages",void 0),e([n(),q("esri/t9n/common")],X.prototype,"messagesCommon",void 0),e([n(),q("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],X.prototype,"messagesTemplates",void 0),e([n()],X.prototype,"snappingOptions",null),e([n()],X.prototype,"tooltipOptions",null),e([n()],X.prototype,"supportingWidgetDefaults",void 0),e([n()],X.prototype,"view",null),e([n(),z(["workflow-cancel","workflow-commit"])],X.prototype,"viewModel",void 0),e([n()],X.prototype,"visibleElements",void 0),e([l("visibleElements")],X.prototype,"castVisibleElements",null),e([n()],X.prototype,"_helpMessage",null),X=e([d(K)],X);const Y=X;export{Y as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Logger.js";import{createResolver as s}from"../core/promiseUtils.js";import{watch as o,initial as r,on as a,when as i}from"../core/reactiveUtils.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import p from"./Attachments.js";import m from"./FeatureForm.js";import c from"./FeatureTemplates.js";import h from"./Spinner.js";import u from"./Widget.js";import{CSS as g}from"./Editor/css.js";import{workflowDeprecation as f}from"./Editor/deprecationUtils.js";import w from"./Editor/EditorViewModel.js";import{WARNING_ICON as v}from"./Editor/icons.js";import{isModelUpload as _}from"./Editor/modelUploadUtils.js";import{loadCreateFeaturesPanelContentComponents as y,CreateFeaturesPanelContent as k}from"./Editor/components/CreateFeaturesPanelContent.js";import{loadFeatureListComponents as F,FeatureList as M}from"./Editor/components/FeatureList.js";import{loadFooterActionsComponents as b,FooterActions as C}from"./Editor/components/FooterActions.js";import{loadNoticesComponents as W,Notice as E}from"./Editor/components/Notices.js";import{loadPanelContentComponents as A,PanelContent as T,PanelContentSection as j,PanelContentMessage as P}from"./Editor/components/PanelContent.js";import{PanelToolbar as U,loadPanelToolbarComponents as L}from"./Editor/components/PanelToolbar.js";import{loadPromptComponents as I,Prompt as S}from"./Editor/components/Prompt.js";import{loadUpdateFeaturePanelContentComponents as D,UpdateFeaturePanelContent as x}from"./Editor/components/UpdateFeaturePanelContent.js";import{loadUploadDetailsComponents as O,UploadDetails as B}from"./Editor/components/UploadDetails.js";import{renderItem as V}from"./FeatureTemplates/ItemList.js";import{loadCalciteComponents as H}from"./support/componentsUtils.js";import{incrementHeadingLevel as G,Heading as R}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as q}from"./support/decorators/messageBundle.js";import{vmEvent as z}from"./support/decorators/vmEvent.js";import{tsx as N}from"./support/jsxFactory.js";import{substitute as $}from"../intl/substitute.js";const J={undoRedoButtons:!1,snappingControls:!0,snappingControlsElements:{header:!1,enabledToggle:!0,selfEnabledToggle:!0,featureEnabledToggle:!0,layerList:!0},sketchTooltipControls:!0},K="esri.widgets.Editor",Q=t.getLogger(K);let X=class extends u{constructor(e,t){super(e,t),this._featureForm=new m,this._attachments=new p({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new c({enableListScroll:!1,renderItemContentEnd:e=>e.supportsUpload?N("calcite-icon",{key:"upload-icon",class:g.templateItemContentEnd,icon:"upload-to"}):null,renderItemLabel:e=>e.label,renderCustomGroupContent:e=>this._renderCustomTemplateGroupContent(e)}),this._filterText="",this._prompt=null,this._spinner=new h,this.headingLevel=4,this.iconClass=g.widgetIcon,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.supportingWidgetDefaults=null,this.viewModel=new w,this.visibleElements={...J},this._renderSelectIcon=()=>N("calcite-icon",{icon:"cursor",slot:"content-start"}),this.EditorPanel=({heading:e,key:t},...s)=>N("calcite-flow-item",{closable:!1,heading:e,headingLevel:this.headingLevel,key:t,loading:this._loading,onCalciteFlowItemBack:this._onBack},N(U,{editorViewModel:this.viewModel,messagesCommon:this.messagesCommon,visibleElements:this.visibleElements}),...s),this._showDiscardEditsPrompt=()=>{const{messages:e,activeWorkflow:t}=this;if("create-features"===t?.type&&_(t.data.creationInfo))return this._showPrompt({title:e.cancelUploadTitle,message:e.cancelUploadWarningMessage,yesLabel:e.discardUpload,noLabel:e.continueUpload});const s="create"===t?.type;return this._showPrompt({title:e[s?"cancelAddTitle":"cancelEditTitle"],message:e[s?"cancelAddWarningMessage":"cancelEditWarningMessage"],yesLabel:e[s?"discardFeature":"discardEdits"],noLabel:e[s?"continueAdding":"continueEditing"]})},this._showGenericCancelPrompt=()=>{const{messages:e,messagesCommon:t}=this;return this._showPrompt({title:e.cancelRequestTitle,message:e.cancelRequestWarningMessage,yesLabel:t.form.yes,noLabel:t.form.no})},this._onSave=()=>{this.viewModel.saveWorkflow()},this._onDelete=()=>{const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteWarningTitle,message:e.deleteWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:()=>{this.deleteFeatureFromWorkflow(),this._clearPrompt()}},secondary:{label:e.keepFeature,action:this._clearPrompt}}}},this._onToggleUpdateWorkflow=()=>this.viewModel.toggleUpdateWorkflow(),this._onBack=e=>(e?.stopPropagation(),this.viewModel.back()),this._onAttachmentAdd=()=>{const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.addFile(),e.back()):this._attachments.addAttachment().then((()=>e.back())))},this._onAttachmentUpdate=()=>{const{activeWorkflow:e}=this.viewModel;e&&("create-features"===e.type?(this._attachments.updateFile(),e.back()):this._attachments.updateAttachment().then((()=>e.back())))},this._onAttachmentDelete=()=>{const{messages:e,messagesCommon:t}=this;this._prompt={title:e.deleteAttachmentWarningTitle,message:e.deleteAttachmentWarningMessage,context:"danger",actions:{primary:{label:t.delete,action:this._onAttachmentDeleteConfirm},secondary:{label:e.keepAttachment,action:this._clearPrompt}}}},this._onAttachmentDeleteConfirm=async()=>{const e=this._attachments,{activeWorkflow:t}=this.viewModel;t&&("create-features"===t.type?e.deleteFile():(await e.deleteAttachment(e.viewModel.activeAttachmentInfo),this._clearPrompt()),await t.back(),this._clearPrompt())},this._onAttachmentsError=e=>{this._prompt={title:this.messages.errorWarningTitle,message:e.message,context:"warning",actions:{primary:{label:this.messagesCommon.form.ok,action:this._clearPrompt}}}},this._clearPrompt=()=>{this._prompt=null}}initialize(){this.addHandles([o((()=>G(this.headingLevel)),(e=>{this._featureForm.headingLevel=e,this._featureTemplates.headingLevel=e}),r),a((()=>this.viewModel.activeWorkflow),"cancel-request",(({controller:e})=>{(this.viewModel.hasPendingEdits?this._showDiscardEditsPrompt():this._showGenericCancelPrompt()).then((t=>t?e.allow():e.deny()))})),o((()=>this.viewModel),(e=>{this._featureForm.viewModel=e?.featureFormViewModel??null,this._attachments.viewModel=e?.attachmentsViewModel??null,this._featureTemplates.viewModel=e?.featureTemplatesViewModel??null,this._spinner.viewModel=e?.spinnerViewModel??null,e.showDiscardEditsPrompt=this._showDiscardEditsPrompt}),r),o((()=>this.view),((e,t)=>{const s=`editor-${this.id}-spinner`;t?.ui.remove(this._spinner,s),e?.ui.add(this._spinner,{key:s,position:"manual"})}),r),i((()=>this.supportingWidgetDefaults),(e=>{this._featureForm.set(e.featureForm),this._attachments.set(e.attachments),this._featureTemplates.set(e.featureTemplates),this.viewModel.sketchViewModel.set(e.sketch)}),r),i((()=>this._attachments?.error),(e=>this._onAttachmentsError(e))),i((()=>this.viewModel?.failures),(e=>{const{messages:t}=this,[{error:s,retry:o,cancel:r}]=e;this._prompt={title:t.errorWarningTitle,message:$(t.errorWarningMessageTemplate,{errorMessage:s.message}),context:"warning",actions:{primary:{label:t.retry,action:()=>{o(),this._clearPrompt()}},secondary:{label:t.ignore,action:()=>{r(),this._clearPrompt()}}}}})),o((()=>this.viewModel?.state),(e=>{switch(e){case"awaiting-feature-to-update":case"ready":case"disabled":this._filterText="",this._featureTemplates.filterText=""}})),o((()=>this.viewModel.featureFormDisabled),(e=>this._featureForm.disabled=e))])}destroy(){this._attachments.destroy(),this._featureForm.destroy(),this._featureTemplates.destroy()}loadDependencies(){return Promise.all([H({"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js")}),y(),F(),b(),W(),A(),L(),I(),D(),O()])}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger",type:"primary"}}get _loading(){const{viewModel:e}=this;return e.syncing||e.updating||this._attachments.submitting}get activeWorkflow(){return this.viewModel.activeWorkflow}get allowedWorkflows(){return this.viewModel.allowedWorkflows}set allowedWorkflows(e){this.viewModel.allowedWorkflows=e}get useDeprecatedCreateWorkflow(){return this.viewModel.useDeprecatedCreateWorkflow}set useDeprecatedCreateWorkflow(e){this.viewModel.useDeprecatedCreateWorkflow=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelOptions(){return this.viewModel.labelOptions}set labelOptions(e){this.viewModel.labelOptions=e}get layerInfos(){return this.viewModel.layerInfos}set layerInfos(e){this.viewModel.layerInfos=e}get snappingOptions(){return this.viewModel.snappingOptions}set snappingOptions(e){this.viewModel.snappingOptions=e}get tooltipOptions(){return this.viewModel.tooltipOptions}set tooltipOptions(e){this.viewModel.tooltipOptions=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...J,...e,snappingControlsElements:{...J.snappingControlsElements,...e?.snappingControlsElements}}}startCreateWorkflowAtFeatureTypeSelection(){return f(Q,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return f(Q,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return f(Q,"startCreateWorkflowAtFeatureEdit"),this.viewModel.startCreateWorkflowAtFeatureEdit(e)}startUpdateWorkflowAtFeatureSelection(){return this.viewModel.startUpdateWorkflowAtFeatureSelection()}startUpdateWorkflowAtMultipleFeatureSelection(e){return this.viewModel.startUpdateWorkflowAtMultipleFeatureSelection(e)}startUpdateWorkflowAtFeatureEdit(e){return this.viewModel.startUpdateWorkflowAtFeatureEdit(e)}deleteFeatureFromWorkflow(){return this.viewModel.deleteFeatureFromWorkflow()}cancelWorkflow(e){return this.viewModel.cancelWorkflow(e)}render(){const{viewModel:e}=this;return e?N("div",{key:"base",class:g.base},N("calcite-flow",{key:"flow"},e.pageStack.map((e=>this._renderPage(e)))),this._prompt?N(S,{...this._prompt,headingLevel:this.headingLevel}):void 0):N("div",{key:"empty",class:g.base})}_renderPage(e){switch(e){case"disabled":break;case"ready":return this._renderReady();case"awaiting-feature-creation-info":return this._renderAwaitingFeatureCreationInfo();case"creating-features-upload-details":return this._renderUploadDetails();case"creating-features":return this._renderCreatingFeatures();case"editing-new-feature":case"editing-existing-feature":case"editing-attributes":return this._renderUpdateFeature();case"awaiting-update-feature-candidate":return this._renderFeatureList();case"adding-attachment":return this._renderAttachmentAdding();case"editing-attachment":return this._renderAttachmentEditing()}return N("div",{key:"empty-page"})}_renderAwaitingFeatureCreationInfo(){const{EditorPanel:e,activeWorkflow:t,messages:s}=this;return"create-features"!==t?.type?null:N(e,{heading:s.selectTemplate,key:"templates-panel"},N(T,{key:"feature-templates"},N(j,null,this._featureTemplates.render())))}_renderUploadDetails(){const{EditorPanel:e,activeWorkflow:t,messages:s}=this;if("create-features"!==t?.type)return null;const o=t.data.upload;return o?N(e,{heading:s.createFeatures,key:"upload-details-panel"},N(B,{helpMessage:this._helpMessage,messages:s,upload:o})):null}_renderCreatingFeatures(){const{EditorPanel:e,activeWorkflow:t,messages:s,messagesCommon:o,headingLevel:r,viewModel:a}=this;if(!t)return null;const i="create-features"===t.type&&t.numPendingFeatures>0||"update"===t.type&&"create-features"===t?.activeWorkflow?.type&&t.activeWorkflow?.numPendingFeatures>0;return N(e,{key:"create-features-panel",heading:s.createFeatures},i?N(x,{editorViewModel:a,headingLevel:r,messages:s,messagesCommon:o,onDelete:this._onDelete,onSave:this._onSave,renderAttachments:()=>this._attachments.render(),renderFeatureForm:()=>this._featureForm.render()}):N(k,{helpMessage:this._helpMessage}))}_renderUpdateFeature(){const{EditorPanel:e,messages:t,messagesCommon:s,headingLevel:o,viewModel:r}=this;return N(e,{key:"update-feature-panel",heading:t.editFeature},N(x,{editorViewModel:r,headingLevel:o,messages:t,messagesCommon:s,onDelete:this._onDelete,onSave:this._onSave,renderAttachments:()=>this._attachments.render(),renderFeatureForm:()=>this._featureForm.render()}))}_renderCustomTemplateGroupContent(e){const{messages:t,viewModel:s}=this;let o=null;return e.group.items.some((e=>(s.itemHasUnsupportedFields(e)?o=t.formFieldUnsupportedCreateError:s.itemHasInvalidFormTemplate(e)&&(o=t.formFieldCreateError),o))),o?N(E,{message:o,icon:v}):null}_renderAttachmentAdding(){const{EditorPanel:e,_attachments:t,messages:s,messagesCommon:o}=this;return N(e,{key:"attachment-adding-panel",heading:s.addAttachment},N(T,{key:"attachments"},t.render()),N(C,{buttons:[{label:t.submitting?o.cancel:o.add,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentAdd}]}))}_renderAttachmentEditing(){const{EditorPanel:e,_attachments:t,activeWorkflow:s,messages:o,messagesCommon:r}=this;return s?N(e,{key:"attachment-editing-panel",heading:o.editAttachment},N(T,{key:"attachments"},t.render()),s.shouldAllowAttachmentEditing?N(C,{buttons:[{label:r.update,disabled:t.submitting||!t.selectedFile,type:"primary",clickHandler:this._onAttachmentUpdate},{...this._deleteButtonCommonInfo,clickHandler:this._onAttachmentDelete,disabled:t.submitting,label:r.delete}]}):void 0):null}_renderReady(){const{EditorPanel:e,messages:t,viewModel:s}=this,{canUpdate:o}=s,r=this._featureTemplates.viewModel.numberOfFeatureTemplates,a=!o&&0===r,i=this._helpMessage;return N(e,{key:"landing-panel",heading:t.widgetLabel},N(T,{key:"landing-content"},o?N(j,{key:"edit-actions"},this._renderUpdateActions()):void 0,r>0?N(j,{key:"create-actions"},this._renderCreateActions()):void 0,a?N(P,{key:"no-content"},t.noEditableLayers):void 0),i?N("div",{key:"footer-actions",slot:"footer",class:g.helpMessage},i):void 0)}get _helpMessage(){const{activeWorkflow:e,messages:t,view:s}=this,o=e?.helpMessage;return o?t["3d"===s?.type?"helpMessages3d":"helpMessages2d"]?.[o]:void 0}_renderUpdateActions(){const{messages:e,messagesCommon:t}=this,s={id:"select",label:t.select};return N("div",{key:"update-actions"},N(R,{level:G(this.headingLevel)},e.editFeatures),N("calcite-list",{selectionMode:"single",selectionAppearance:"border"},V({grouped:!1,item:s,selectedItem:"awaiting-feature-to-update"===this.viewModel.activeWorkflow?.stepId?s:void 0,renderIcon:this._renderSelectIcon,onItemSelect:this._onToggleUpdateWorkflow})))}_renderCreateActions(){return N("div",{key:"create-actions"},N(R,{level:G(this.headingLevel)},this.messages.createFeatures),N("div",{key:"templates",class:g.featureTemplatesContainer},this._featureTemplates.render()))}_renderFeatureList(){const{EditorPanel:e,viewModel:t}=this,{activeWorkflow:s}=t;if("update"!==s?.type)return null;const o=s.data.candidates,r=$(this.messages.multipleFeaturesTemplate,{total:o.length});return N(e,{heading:r,key:"feature-list"},N(M,{editableItems:t.editableItems,filterText:this._filterText,id:this.id,messagesTemplates:this.messagesTemplates,onFilterTextChange:e=>this._filterText=e,onSelectFeature:(e,s)=>t.selectFeature(e,s),workflow:s}))}_showPrompt({title:e,message:t,yesLabel:o,noLabel:r}){const a=s(),{view:i}=this,n=i?.focused;return this._prompt={title:e,message:t,context:"danger",actions:{primary:{label:o,action:()=>a.resolve(!0)},secondary:{label:r,action:()=>a.resolve(!1)}}},a.promise.finally((()=>{this._clearPrompt(),n&&i?.focus()}))}};e([n()],X.prototype,"_featureForm",void 0),e([n()],X.prototype,"_attachments",void 0),e([n()],X.prototype,"_featureTemplates",void 0),e([n()],X.prototype,"_filterText",void 0),e([n()],X.prototype,"_prompt",void 0),e([n()],X.prototype,"_spinner",void 0),e([n()],X.prototype,"_deleteButtonCommonInfo",null),e([n()],X.prototype,"_loading",null),e([n({readOnly:!0})],X.prototype,"activeWorkflow",null),e([n()],X.prototype,"allowedWorkflows",null),e([n()],X.prototype,"useDeprecatedCreateWorkflow",null),e([n()],X.prototype,"headingLevel",void 0),e([n()],X.prototype,"iconClass",void 0),e([n()],X.prototype,"label",null),e([n()],X.prototype,"labelOptions",null),e([n()],X.prototype,"layerInfos",null),e([n(),q("esri/widgets/Editor/t9n/Editor")],X.prototype,"messages",void 0),e([n(),q("esri/t9n/common")],X.prototype,"messagesCommon",void 0),e([n(),q("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],X.prototype,"messagesTemplates",void 0),e([n()],X.prototype,"snappingOptions",null),e([n()],X.prototype,"tooltipOptions",null),e([n()],X.prototype,"supportingWidgetDefaults",void 0),e([n()],X.prototype,"view",null),e([n(),z(["workflow-cancel","workflow-commit"])],X.prototype,"viewModel",void 0),e([n()],X.prototype,"visibleElements",void 0),e([l("visibleElements")],X.prototype,"castVisibleElements",null),e([n()],X.prototype,"_helpMessage",null),X=e([d(K)],X);const Y=X;export{Y as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import s from"../../../core/Accessor.js";import{watch as o,syncAndInitial as r}from"../../../core/reactiveUtils.js";import{throttle as i}from"../../../core/throttle.js";import{property as l}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{b as n}from"../../../chunks/vec4f64.js";import c from"../../../geometry/Polyline.js";import{OutlineVisualElement as p}from"../../../views/3d/interactive/visualElements/OutlineVisualElement.js";import{getConfig as h}from"./constants.js";const m=100;let u=class extends s{constructor(e){super(e),this._chartData=null,this._visualElements=[]}initialize(){const e=i((e=>{this._update(e)}),m);this.addHandles([o((()=>({spatialReference:this.view.spatialReference,chartData:this._chartData})),e,r),e])}destroy(){this._destroyVisualElements()}remove(){this._destroyVisualElements()}update(e){this._chartData=e}_update(e){const{chartData:s}=e;if(null==s)return this.remove();if(!s.refined)return;const o=this._visualElements,r=s.lines.filter((e=>e.viewVisualizationEnabled)),i=r.length;for(;o.length>i;)o.pop().destroy();const l=h().profileLinesStyle3D;for(;o.length<i;){const e=new p({view:this.view,elevationInfo:{mode:"absolute-height",offset:0},innerWidth:l.width-l.outlineSize,width:l.width,falloff:l.falloff,color:l.outlineColor,renderOccluded:l.renderOccluded,isDecoration:!0});o.push(e)}const a=e.spatialReference;for(let c=0;c<i;++c){const e=o[c],s=r[i-1-c];e.geometry=this._createLineGeometry(s,a),e.innerColor=n(t.toUnitRGBA(s.color))}}_createLineGeometry(e,t){const s=e.samples??[],o=s.length-1,r=[];let i=[];for(let l=0;l<=o;l++){const{x:e,y:t,z:a}=s[l];null!=a&&i.push([e,t,a]),l!==o&&null!=a||!i.length||(r.push(i),i=[])}return new c({paths:r,hasZ:!0,spatialReference:t})}_destroyVisualElements(){this._visualElements.forEach((e=>e.destroy())),this._visualElements.length=0}};e([l()],u.prototype,"view",void 0),e([l()],u.prototype,"_chartData",void 0),u=e([a("esri.widgets.ElevationProfile.support.ProfileLines3D")],u);export{u as ProfileLines3D};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import s from"../../../core/Accessor.js";import{watch as o,syncAndInitial as r}from"../../../core/reactiveUtils.js";import{throttle as i}from"../../../core/throttle.js";import{property as l}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{f as n}from"../../../chunks/vec4f64.js";import c from"../../../geometry/Polyline.js";import{OutlineVisualElement as p}from"../../../views/3d/interactive/visualElements/OutlineVisualElement.js";import{getConfig as h}from"./constants.js";const m=100;let u=class extends s{constructor(e){super(e),this._chartData=null,this._visualElements=[]}initialize(){const e=i((e=>{this._update(e)}),m);this.addHandles([o((()=>({spatialReference:this.view.spatialReference,chartData:this._chartData})),e,r),e])}destroy(){this._destroyVisualElements()}remove(){this._destroyVisualElements()}update(e){this._chartData=e}_update(e){const{chartData:s}=e;if(null==s)return this.remove();if(!s.refined)return;const o=this._visualElements,r=s.lines.filter((e=>e.viewVisualizationEnabled)),i=r.length;for(;o.length>i;)o.pop().destroy();const l=h().profileLinesStyle3D;for(;o.length<i;){const e=new p({view:this.view,elevationInfo:{mode:"absolute-height",offset:0},innerWidth:l.width-l.outlineSize,width:l.width,falloff:l.falloff,color:l.outlineColor,renderOccluded:l.renderOccluded,isDecoration:!0});o.push(e)}const a=e.spatialReference;for(let c=0;c<i;++c){const e=o[c],s=r[i-1-c];e.geometry=this._createLineGeometry(s,a),e.innerColor=n(t.toUnitRGBA(s.color))}}_createLineGeometry(e,t){const s=e.samples??[],o=s.length-1,r=[];let i=[];for(let l=0;l<=o;l++){const{x:e,y:t,z:a}=s[l];null!=a&&i.push([e,t,a]),l!==o&&null!=a||!i.length||(r.push(i),i=[])}return new c({paths:r,hasZ:!0,spatialReference:t})}_destroyVisualElements(){this._visualElements.forEach((e=>e.destroy())),this._visualElements.length=0}};e([l()],u.prototype,"view",void 0),e([l()],u.prototype,"_chartData",void 0),u=e([a("esri.widgets.ElevationProfile.support.ProfileLines3D")],u);export{u as ProfileLines3D};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{convertUnit as e}from"../../../core/unitUtils.js";import{b as i}from"../../../chunks/vec4f64.js";import{RenderOccludedFlag as o}from"../../../views/3d/webgl-engine/lib/Material.js";var t,a;!function(e){e.Disabled="disabled",e.Ready="ready",e.Creating="creating",e.Created="created",e.Selecting="selecting",e.Selected="selected"}(t||(t={})),function(e){e.NoValidInput="no-valid-input",e.NoVisibleProfiles="no-visible-profiles",e.InvalidGeometry="invalid-geometry",e.TooComplex="too-complex",e.InvalidElevationInfo="invalid-elevation-info",e.UnknownError="unknown-error",e.RefinedButNoChartData="refined-but-no-chart-data",e.None="none"}(a||(a={}));let l={noDataValue:-5e5,defaultQueryOptions:()=>({noDataValue:l.noDataValue,demResolution:"auto",maximumAutoTileRequests:150,ignoreInvisibleLayers:!0}),updateThrottleMillis:100,delayAfterPreviewMillis:500,defaultDemResolution:e(10,"centimeters","meters"),densificationMaxSamples:3e3,largeChartSamples:1e4,maxTotalSamples:1e5,maxChartRatio:300,minSlopeSampleDistance:10,formatPrecision:1,portraitModePixelBreakpoint:400,profileLinesStyle3D:{width:3,outlineSize:0,falloff:0,outlineColor:i([1,1,1,0]),renderOccluded:o.Opaque},hoveredPointsStyle:{size:14,borderStyle:"solid",borderWidth:3,borderColor:"#ffffff",boxShadow:"0px 0px 0px 5px rgba(255,255,255,0.2)"}};function n(){return l}function r(e){l=e}const s=" ― ",d={progress:1,hasZ:!1,samples:[],statistics:null,spatialReference:null};export{d as ERROR_RESULT,a as ElevationProfileErrorState,t as ElevationProfileState,s as NOT_AVAILABLE,n as getConfig,r as setConfig};
5
+ import{convertUnit as e}from"../../../core/unitUtils.js";import{f as i}from"../../../chunks/vec4f64.js";import{RenderOccludedFlag as o}from"../../../views/3d/webgl-engine/lib/Material.js";var t,a;!function(e){e.Disabled="disabled",e.Ready="ready",e.Creating="creating",e.Created="created",e.Selecting="selecting",e.Selected="selected"}(t||(t={})),function(e){e.NoValidInput="no-valid-input",e.NoVisibleProfiles="no-visible-profiles",e.InvalidGeometry="invalid-geometry",e.TooComplex="too-complex",e.InvalidElevationInfo="invalid-elevation-info",e.UnknownError="unknown-error",e.RefinedButNoChartData="refined-but-no-chart-data",e.None="none"}(a||(a={}));let l={noDataValue:-5e5,defaultQueryOptions:()=>({noDataValue:l.noDataValue,demResolution:"auto",maximumAutoTileRequests:150,ignoreInvisibleLayers:!0}),updateThrottleMillis:100,delayAfterPreviewMillis:500,defaultDemResolution:e(10,"centimeters","meters"),densificationMaxSamples:3e3,largeChartSamples:1e4,maxTotalSamples:1e5,maxChartRatio:300,minSlopeSampleDistance:10,formatPrecision:1,portraitModePixelBreakpoint:400,profileLinesStyle3D:{width:3,outlineSize:0,falloff:0,outlineColor:i([1,1,1,0]),renderOccluded:o.Opaque},hoveredPointsStyle:{size:14,borderStyle:"solid",borderWidth:3,borderColor:"#ffffff",boxShadow:"0px 0px 0px 5px rgba(255,255,255,0.2)"}};function n(){return l}function r(e){l=e}const s=" ― ",d={progress:1,hasZ:!1,samples:[],statistics:null,spatialReference:null};export{d as ERROR_RESULT,a as ElevationProfileErrorState,t as ElevationProfileState,s as NOT_AVAILABLE,n as getConfig,r as setConfig};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{lerp as e}from"../../../core/mathUtils.js";import{throwIfAborted as t}from"../../../core/promiseUtils.js";import{getMetersPerUnitForSR as n}from"../../../core/unitUtils.js";import{d as r,l as s}from"../../../chunks/vec2.js";import{f as o}from"../../../chunks/vec3.js";import a from"../../../geometry/Polyline.js";import{initializeProjection as i,project as c}from"../../../geometry/projection.js";import u from"../../../geometry/SpatialReference.js";import{geodesicLengths as f,isSupported as l,inverseGeodeticSolver as h,directGeodeticSolver as p}from"../../../geometry/support/geodesicUtils.js";import{ProfileGenerationError as m,ProfileGenerationErrorCause as d}from"./ProfileGenerationError.js";async function g(e,r,s,o,a,l,h){let p,g,R;const j=e.spatialReference,v=j.isGeographic||j.isWebMercator;let P=0;if(!v){const{planarLength:n}=await import("../../../geometry/geometryEngineAsync.js");t(h),P=await n(e,"meters"),t(h)}const Z=1/n(o);if(v||P>=a.geodesicDistanceThreshold){await i([{source:j,dest:o},{source:j,dest:u.WGS84}],h);const t=T(e);p=f([t],"meters")[0];const n=w(p,a);if(C(e,p,n)>l)throw new m(d.TooComplex);const v=y(t,r,s);({densifiedPath:g,distances:R}=S(v,n,Z)),g=c(g,o)}else{await i([{source:j,dest:o}],h),p=P;const n=w(p,a);if(C(e,p,n)>l)throw new m(d.TooComplex);const u=y(e,r,s);({densifiedPath:g,distances:R}=A(u,n,Z)),t(h),g=c(g,o)}return{densifiedPath:g,pathLength:p*Z,distances:R}}function w(e,t){const n=e/t.densificationMaxSamples;return Math.max(t.samplingDistance,n)}function y(e,t,n){if(null==t)return v(e);const r=e.spatialReference,s=t.mode,o=t.offset??0;let i=null;switch(n.type){case"2d":i=R(e,s,o);break;case"3d":i=j(e,s,o,n)}return null==i?v(e):new a({hasZ:!0,hasM:!1,spatialReference:r,paths:P(e.paths,i)})}function R({hasZ:e},t,n){return"absolute-height"===t?e?([e,t,r])=>[e,t,r+n]:([e,t])=>[e,t,n]:null}function j({spatialReference:e,hasZ:t},n,r,{elevationProvider:s}){const o=(t,n,r,o)=>s?.getElevation(t,n,r,e,o)??0;switch(n){case"on-the-ground":return([e,t])=>[e,t,o(e,t,0,"ground")];case"absolute-height":return t?([e,t,n])=>[e,t,n+r]:([e,t])=>[e,t,r];case"relative-to-ground":return t?([e,t,n])=>[e,t,n+o(e,t,n,"ground")+r]:([e,t])=>[e,t,o(e,t,0,"ground")+r];case"relative-to-scene":return t?([e,t,n])=>[e,t,n+o(e,t,n,"scene")+r]:([e,t])=>[e,t,o(e,t,0,"scene")+r];default:return null}}function v(e){return e.hasZ?new a({hasZ:!1,hasM:!1,spatialReference:e.spatialReference,paths:P(e.paths,(([e,t])=>[e,t]))}):e}function P(e,t){const n=e.length,r=new Array(n);for(let s=0;s<n;++s){const n=e[s],o=n.length,a=new Array(n.length);r[s]=a;for(let e=0;e<o;++e)a[e]=t(n[e])}return r}function Z(e){return M(e)&&e.paths.length>0&&e.paths.every((e=>e.length>=2))}function M(e){return null!=e&&"polyline"===e.type}function x(e,t,r,s,o){const{spatialReference:i,hasZ:c}=e,u={from:null,to:null,distance:0,azimuth:0,reverseAzimuth:0,spatialReference:i,metersPerSR:n(i)},f=[],l=[];let h=0;for(let n=0;n<e.paths.length;++n){const a=e.paths[n],i=new Array,c=new Array;let p=0;for(let e=1;e<a.length;++e){const n=a[e-1],f=a[e],l=s(u,n,f);let m;for(m=p;m<l.distance;m+=t)i.push(o(l,m)),c.push((h+m)*r);p=m-l.distance,h+=l.distance,i.push(f),c.push(h*r)}f[n]=i,l[n]=c}return{densifiedPath:new a({spatialReference:i,hasZ:c,paths:f}),distances:l}}function A(e,t,n){const{hasZ:r}=e;return x(e,t,n,z,r?E:k)}function S(e,t,n){const{hasZ:r}=e;return x(e,t,n,b,r?U:G)}function b(e,t,n){return e.distance=0,h(e,t,n,e.spatialReference),e.from=t,e.to=n,e}function z(e,t,n){return e.from=t,e.to=n,e.distance=r(n,t)*e.metersPerSR,e}function G({from:e,azimuth:t,spatialReference:n},r){return p([0,0],e,t,r,n)}function U({from:t,to:n,azimuth:r,distance:s,spatialReference:o},a){const i=a/s,c=[0,0,e(t[2],n[2],i)];return p(c,t,r,a,o),c}function k({from:e,to:t,distance:n},r){return s([0,0],e,t,r/n)}function E({from:e,to:t,distance:n},r){return o([0,0,0],e,t,r/n)}function T(e){return l(e.spatialReference)?e:c(e,u.WGS84)}function W(e){return e.paths.reduce(((e,t)=>e+t.length),0)}function C(e,t,n){return W(e)+Math.floor(t/n)+Math.max(0,e.paths.reduce((e=>1+e),0)-1)}export{W as countPoints,g as densifyPath,M as isPolyline,Z as isValidInputPath,y as toAbsoluteHeightElevation};
5
+ import{lerp as e}from"../../../core/mathUtils.js";import{throwIfAborted as t}from"../../../core/promiseUtils.js";import{getMetersPerUnitForSR as n}from"../../../core/unitUtils.js";import{d as r,l as s}from"../../../chunks/vec2.js";import{p as o}from"../../../chunks/vec3.js";import a from"../../../geometry/Polyline.js";import{initializeProjection as i,project as c}from"../../../geometry/projection.js";import u from"../../../geometry/SpatialReference.js";import{geodesicLengths as l,isSupported as f,inverseGeodeticSolver as h,directGeodeticSolver as p}from"../../../geometry/support/geodesicUtils.js";import{ProfileGenerationError as m,ProfileGenerationErrorCause as d}from"./ProfileGenerationError.js";async function g(e,r,s,o,a,f,h){let p,g,R;const j=e.spatialReference,v=j.isGeographic||j.isWebMercator;let P=0;if(!v){const{planarLength:n}=await import("../../../geometry/geometryEngineAsync.js");t(h),P=await n(e,"meters"),t(h)}const Z=1/n(o);if(v||P>=a.geodesicDistanceThreshold){await i([{source:j,dest:o},{source:j,dest:u.WGS84}],h);const t=T(e);p=l([t],"meters")[0];const n=w(p,a);if(C(e,p,n)>f)throw new m(d.TooComplex);const v=y(t,r,s);({densifiedPath:g,distances:R}=S(v,n,Z)),g=c(g,o)}else{await i([{source:j,dest:o}],h),p=P;const n=w(p,a);if(C(e,p,n)>f)throw new m(d.TooComplex);const u=y(e,r,s);({densifiedPath:g,distances:R}=A(u,n,Z)),t(h),g=c(g,o)}return{densifiedPath:g,pathLength:p*Z,distances:R}}function w(e,t){const n=e/t.densificationMaxSamples;return Math.max(t.samplingDistance,n)}function y(e,t,n){if(null==t)return v(e);const r=e.spatialReference,s=t.mode,o=t.offset??0;let i=null;switch(n.type){case"2d":i=R(e,s,o);break;case"3d":i=j(e,s,o,n)}return null==i?v(e):new a({hasZ:!0,hasM:!1,spatialReference:r,paths:P(e.paths,i)})}function R({hasZ:e},t,n){return"absolute-height"===t?e?([e,t,r])=>[e,t,r+n]:([e,t])=>[e,t,n]:null}function j({spatialReference:e,hasZ:t},n,r,{elevationProvider:s}){const o=(t,n,r,o)=>s?.getElevation(t,n,r,e,o)??0;switch(n){case"on-the-ground":return([e,t])=>[e,t,o(e,t,0,"ground")];case"absolute-height":return t?([e,t,n])=>[e,t,n+r]:([e,t])=>[e,t,r];case"relative-to-ground":return t?([e,t,n])=>[e,t,n+o(e,t,n,"ground")+r]:([e,t])=>[e,t,o(e,t,0,"ground")+r];case"relative-to-scene":return t?([e,t,n])=>[e,t,n+o(e,t,n,"scene")+r]:([e,t])=>[e,t,o(e,t,0,"scene")+r];default:return null}}function v(e){return e.hasZ?new a({hasZ:!1,hasM:!1,spatialReference:e.spatialReference,paths:P(e.paths,(([e,t])=>[e,t]))}):e}function P(e,t){const n=e.length,r=new Array(n);for(let s=0;s<n;++s){const n=e[s],o=n.length,a=new Array(n.length);r[s]=a;for(let e=0;e<o;++e)a[e]=t(n[e])}return r}function Z(e){return M(e)&&e.paths.length>0&&e.paths.every((e=>e.length>=2))}function M(e){return null!=e&&"polyline"===e.type}function x(e,t,r,s,o){const{spatialReference:i,hasZ:c}=e,u={from:null,to:null,distance:0,azimuth:0,reverseAzimuth:0,spatialReference:i,metersPerSR:n(i)},l=[],f=[];let h=0;for(let n=0;n<e.paths.length;++n){const a=e.paths[n],i=new Array,c=new Array;let p=0;for(let e=1;e<a.length;++e){const n=a[e-1],l=a[e],f=s(u,n,l);let m;for(m=p;m<f.distance;m+=t)i.push(o(f,m)),c.push((h+m)*r);p=m-f.distance,h+=f.distance,i.push(l),c.push(h*r)}l[n]=i,f[n]=c}return{densifiedPath:new a({spatialReference:i,hasZ:c,paths:l}),distances:f}}function A(e,t,n){const{hasZ:r}=e;return x(e,t,n,z,r?E:k)}function S(e,t,n){const{hasZ:r}=e;return x(e,t,n,b,r?U:G)}function b(e,t,n){return e.distance=0,h(e,t,n,e.spatialReference),e.from=t,e.to=n,e}function z(e,t,n){return e.from=t,e.to=n,e.distance=r(n,t)*e.metersPerSR,e}function G({from:e,azimuth:t,spatialReference:n},r){return p([0,0],e,t,r,n)}function U({from:t,to:n,azimuth:r,distance:s,spatialReference:o},a){const i=a/s,c=[0,0,e(t[2],n[2],i)];return p(c,t,r,a,o),c}function k({from:e,to:t,distance:n},r){return s([0,0],e,t,r/n)}function E({from:e,to:t,distance:n},r){return o([0,0,0],e,t,r/n)}function T(e){return f(e.spatialReference)?e:c(e,u.WGS84)}function W(e){return e.paths.reduce(((e,t)=>e+t.length),0)}function C(e,t,n){return W(e)+Math.floor(t/n)+Math.max(0,e.paths.reduce((e=>1+e),0)-1)}export{W as countPoints,g as densifyPath,M as isPolyline,Z as isValidInputPath,y as toAbsoluteHeightElevation};