@arcgis/core 4.28.0-rc.1 → 4.28.0-rc.2

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 (688) hide show
  1. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  2. package/arcade/featureset/sources/FeatureLayerMemory.js +1 -1
  3. package/arcade/featureset/sources/FeatureLayerRelated.js +1 -1
  4. package/arcade/featureset/support/FeatureSet.js +1 -1
  5. package/arcade/functions/featuresetbase.js +1 -1
  6. package/arcade/treeAnalysis.js +1 -1
  7. package/assets/esri/core/workers/RemoteClient.js +1 -1
  8. package/assets/esri/core/workers/chunks/00da3c16741a9bc47f3a.js +1 -0
  9. package/assets/esri/core/workers/chunks/020825b9c12f2b6386a7.js +1 -0
  10. package/assets/esri/core/workers/chunks/07adca463da5554e514d.js +1 -0
  11. package/assets/esri/core/workers/chunks/07c1783baf9b19b4876a.js +1 -0
  12. package/assets/esri/core/workers/chunks/08a98e85e86ce560d005.js +1 -0
  13. package/assets/esri/core/workers/chunks/0e354096ad8817971eed.js +1 -0
  14. package/assets/esri/core/workers/chunks/0e4646d14fa0775bf463.js +1 -0
  15. package/assets/esri/core/workers/chunks/0ea41f142793edb99d3a.js +1 -0
  16. package/assets/esri/core/workers/chunks/10dc578a90e1194c8720.js +1 -0
  17. package/assets/esri/core/workers/chunks/18e0c5bfeb1aa7213dfa.js +1 -0
  18. package/assets/esri/core/workers/chunks/19c9966f74d287750aaa.js +1 -0
  19. package/assets/esri/core/workers/chunks/1a65d9b9f823d1e8b315.js +1 -0
  20. package/assets/esri/core/workers/chunks/1eb5468c7cf653338d53.js +1 -0
  21. package/assets/esri/core/workers/chunks/1f30ea1a598ddd2e5df3.js +1 -0
  22. package/assets/esri/core/workers/chunks/{40c00b352618c7839f7e.js → 1f87f22e00e3218661c6.js} +1 -1
  23. package/assets/esri/core/workers/chunks/1fc3b526e881ada30420.js +1 -0
  24. package/assets/esri/core/workers/chunks/2304b7456ced997904f6.js +1 -0
  25. package/assets/esri/core/workers/chunks/2d92df1e3ba4f05e0510.js +1 -0
  26. package/assets/esri/core/workers/chunks/32bd6a343ea49c331e1f.js +1 -0
  27. package/assets/esri/core/workers/chunks/3491f1945d9c06d8b2c7.js +1 -0
  28. package/assets/esri/core/workers/chunks/366cf9bba6989342e447.js +1 -0
  29. package/assets/esri/core/workers/chunks/37edbd9b05bfdb2e645d.js +1 -0
  30. package/assets/esri/core/workers/chunks/3c5a112a9b58770a5242.js +1 -0
  31. package/assets/esri/core/workers/chunks/41778f8c49febe1f9404.js +1 -0
  32. package/assets/esri/core/workers/chunks/430ec9f5949b31959893.js +1 -0
  33. package/assets/esri/core/workers/chunks/43575b9acf9819f195f9.js +1 -0
  34. package/assets/esri/core/workers/chunks/43f7d9366d06d69e7c50.js +1 -0
  35. package/assets/esri/core/workers/chunks/{b98a2191cb997d632438.js → 4672504d6fe649da19f2.js} +1 -1
  36. package/assets/esri/core/workers/chunks/4e813f112a428b4acf0e.js +1 -0
  37. package/assets/esri/core/workers/chunks/{ca023e409bb7de9a69ab.js → 51b8913dff24e693bd25.js} +1 -1
  38. package/assets/esri/core/workers/chunks/5386b166f2e5dc0d9143.js +1 -0
  39. package/assets/esri/core/workers/chunks/562eafa5090827ebb7ec.js +1 -0
  40. package/assets/esri/core/workers/chunks/56a61a8bff08ae273de4.js +1 -0
  41. package/assets/esri/core/workers/chunks/580e7d3cbf6797a50ded.js +1 -0
  42. package/assets/esri/core/workers/chunks/5e8f02da4eae41f57383.js +1 -0
  43. package/assets/esri/core/workers/chunks/6046be598e8c673eeb1f.js +1 -0
  44. package/assets/esri/core/workers/chunks/61dec8399919b278b636.js +1 -0
  45. package/assets/esri/core/workers/chunks/6334a8a7b671d4042108.js +1 -0
  46. package/assets/esri/core/workers/chunks/6747503826bfc94bc6c0.js +1 -0
  47. package/assets/esri/core/workers/chunks/6867ed1860afb7aac536.js +1 -0
  48. package/assets/esri/core/workers/chunks/69c1c850af7ee33258e0.js +1 -0
  49. package/assets/esri/core/workers/chunks/70aa04b09143b7dd2ecb.js +1 -0
  50. package/assets/esri/core/workers/chunks/7388fd97e7b1a2142744.js +1 -0
  51. package/assets/esri/core/workers/chunks/7648f3341b7dff2825c3.js +1 -0
  52. package/assets/esri/core/workers/chunks/768271a12dc7e1781447.js +1 -0
  53. package/assets/esri/core/workers/chunks/{efb17a298363beca5209.js → 7756ed853b4ba54cd081.js} +1 -1
  54. package/assets/esri/core/workers/chunks/7f3bc7a2de59e485f22f.js +1 -0
  55. package/assets/esri/core/workers/chunks/7f433e25f3892475d5dc.js +1 -0
  56. package/assets/esri/core/workers/chunks/80bf6cf1bef17215bca4.js +1 -0
  57. package/assets/esri/core/workers/chunks/83d063b7ce768e9ab3de.js +1 -0
  58. package/assets/esri/core/workers/chunks/83f7e22a12d90ef93e62.js +1 -0
  59. package/assets/esri/core/workers/chunks/{4cc680fe4c9c39d2f853.js → 8a7fa4e8b0d14da7c9eb.js} +1 -1
  60. package/assets/esri/core/workers/chunks/92d8f75e616afa5c761e.js +1 -0
  61. package/assets/esri/core/workers/chunks/99fd09dd42b75a932e84.js +1 -0
  62. package/assets/esri/core/workers/chunks/{f0664a24f2c3705747a5.js → 9c77d69a13ec22cdd760.js} +1 -1
  63. package/assets/esri/core/workers/chunks/a360534e89a337871921.js +1 -0
  64. package/assets/esri/core/workers/chunks/a4341ec0fe89b865d849.js +1 -0
  65. package/assets/esri/core/workers/chunks/a821fa1870b83fed5d31.js +1 -0
  66. package/assets/esri/core/workers/chunks/a8e4726c1db23324eb54.js +1 -0
  67. package/assets/esri/core/workers/chunks/abcfe3bda6f40318b092.js +1 -0
  68. package/assets/esri/core/workers/chunks/ac3e429d43f80c596ec8.js +1 -0
  69. package/assets/esri/core/workers/chunks/ac53b5479dd229fa4f7d.js +1 -0
  70. package/assets/esri/core/workers/chunks/aeb3efa91165dd3d2493.js.LICENSE.txt +1 -1
  71. package/assets/esri/core/workers/chunks/b03eaba5fa75d6ef834a.js +1 -0
  72. package/assets/esri/core/workers/chunks/b251d8a856dc8b9406e0.js +1 -0
  73. package/assets/esri/core/workers/chunks/b3f5e97b47e896c6008a.js +1 -0
  74. package/assets/esri/core/workers/chunks/b6cc8d7dcc710231fe72.js +1 -0
  75. package/assets/esri/core/workers/chunks/b7c81a5bbcdd94b8a7f6.js +1 -0
  76. package/assets/esri/core/workers/chunks/b9a726f3bbad6fd4d65a.js +1 -0
  77. package/assets/esri/core/workers/chunks/c416df0668f6c596095f.js +1 -0
  78. package/assets/esri/core/workers/chunks/c447f4bf0e5f012f8f9b.js +1 -0
  79. package/assets/esri/core/workers/chunks/c7bd63103f101c09b1ea.js +1 -0
  80. package/assets/esri/core/workers/chunks/ca3d5803cdf035d7389d.js +1 -0
  81. package/assets/esri/core/workers/chunks/cb4b17f5cf96a9e36781.js +1 -0
  82. package/assets/esri/core/workers/chunks/cbddfcf57f72428a6992.js +1 -0
  83. package/assets/esri/core/workers/chunks/cc86c8c88124d916e1b3.js +1 -0
  84. package/assets/esri/core/workers/chunks/d0119dff8771e749436a.js +1 -0
  85. package/assets/esri/core/workers/chunks/d07235ce2765a25b9be4.js +1 -0
  86. package/assets/esri/core/workers/chunks/d0f903f2257eb96f7789.js +1 -0
  87. package/assets/esri/core/workers/chunks/d153a8b71111165fc891.js +1 -0
  88. package/assets/esri/core/workers/chunks/d213024012b1a019bfde.js +1 -0
  89. package/assets/esri/core/workers/chunks/d5fec54e98c8622349a4.js +1 -0
  90. package/assets/esri/core/workers/chunks/d878bb6409df183ea0ce.js +1 -0
  91. package/assets/esri/core/workers/chunks/da124ccd18d2745195fe.js +1 -0
  92. package/assets/esri/core/workers/chunks/dd55151bfac60b0deaac.js +1 -0
  93. package/assets/esri/core/workers/chunks/e06cd10b6f8f363b5131.js +1 -0
  94. package/assets/esri/core/workers/chunks/e5352dc8983d06d4ee0f.js +1 -0
  95. package/assets/esri/core/workers/chunks/e67c4b7ad06d8404895a.js +1 -0
  96. package/assets/esri/core/workers/chunks/e810336a4292ea6076a6.js +1 -0
  97. package/assets/esri/core/workers/chunks/{4c3345ffbe79ee0167fb.js → ea9ae9d2aef01af90896.js} +1 -1
  98. package/assets/esri/core/workers/chunks/ef757269fb3fe0e74ef8.js +1 -0
  99. package/assets/esri/core/workers/chunks/f0d342303fc20e266d27.js +1 -0
  100. package/assets/esri/core/workers/chunks/f73563b23fd8dc6cf2fe.js +1 -0
  101. package/assets/esri/core/workers/chunks/f85107720159b855a469.js +1 -0
  102. package/assets/esri/core/workers/chunks/fbc57985d55b5fbe1e8a.js +1 -0
  103. package/assets/esri/core/workers/chunks/fc95b1a36ed68b851400.js +1 -0
  104. package/assets/esri/core/workers/chunks/{7cf7f2b991a7cbdad2ce.js → fd28400141a6751327ae.js} +1 -1
  105. package/assets/esri/themes/base/_core.scss +2 -0
  106. package/assets/esri/themes/base/widgets/_DatePicker.scss +4 -0
  107. package/assets/esri/themes/base/widgets/_Features.scss +1 -1
  108. package/assets/esri/themes/base/widgets/_ScaleRangeSlider.scss +1 -1
  109. package/assets/esri/themes/base/widgets/_TimeZoneLabel.scss +46 -0
  110. package/assets/esri/themes/base/widgets/_Tooltip.scss +1 -1
  111. package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +4 -0
  112. package/assets/esri/themes/dark/main.css +1 -1
  113. package/assets/esri/themes/light/main.css +1 -1
  114. package/assets/esri/themes/light/view.css +1 -1
  115. package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
  116. package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
  117. package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
  118. package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
  119. package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
  120. package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
  121. package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
  122. package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
  123. package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
  124. package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
  125. package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
  126. package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
  127. package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
  128. package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
  129. package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
  130. package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
  131. package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
  132. package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
  133. package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
  134. package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
  135. package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
  136. package/assets/esri/widgets/Editor/t9n/Editor_nb.json +1 -1
  137. package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
  138. package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
  139. package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
  140. package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
  141. package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
  142. package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
  143. package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
  144. package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
  145. package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
  146. package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
  147. package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
  148. package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
  149. package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
  150. package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
  151. package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
  152. package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
  153. package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
  154. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ar.json +1 -1
  155. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bg.json +1 -1
  156. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bs.json +1 -1
  157. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ca.json +1 -1
  158. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_cs.json +1 -1
  159. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_da.json +1 -1
  160. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_de.json +1 -1
  161. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_el.json +1 -1
  162. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_es.json +1 -1
  163. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_et.json +1 -1
  164. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fi.json +1 -1
  165. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fr.json +1 -1
  166. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_he.json +1 -1
  167. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hr.json +1 -1
  168. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hu.json +1 -1
  169. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_id.json +1 -1
  170. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_it.json +1 -1
  171. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ja.json +1 -1
  172. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ko.json +1 -1
  173. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lt.json +1 -1
  174. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lv.json +1 -1
  175. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nb.json +1 -1
  176. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nl.json +1 -1
  177. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pl.json +1 -1
  178. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-BR.json +1 -1
  179. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-PT.json +1 -1
  180. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ro.json +1 -1
  181. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ru.json +1 -1
  182. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sk.json +1 -1
  183. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sl.json +1 -1
  184. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sr.json +1 -1
  185. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sv.json +1 -1
  186. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_th.json +1 -1
  187. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_tr.json +1 -1
  188. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_uk.json +1 -1
  189. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_vi.json +1 -1
  190. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-CN.json +1 -1
  191. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-HK.json +1 -1
  192. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-TW.json +1 -1
  193. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  194. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  195. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  196. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  197. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  198. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  199. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  200. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  201. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  202. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  203. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  204. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  205. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  206. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  207. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  208. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  209. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  210. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  211. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  212. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  213. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  214. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nb.json +1 -1
  215. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  216. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  217. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  218. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  219. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  220. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  221. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  222. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  223. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  224. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  225. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  226. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  227. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  228. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  229. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  230. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  231. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  232. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ar.json +1 -1
  233. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_bg.json +1 -1
  234. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_bs.json +1 -1
  235. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ca.json +1 -1
  236. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_cs.json +1 -1
  237. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_da.json +1 -1
  238. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_de.json +1 -1
  239. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_el.json +1 -1
  240. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_es.json +1 -1
  241. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_et.json +1 -1
  242. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_fi.json +1 -1
  243. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_fr.json +1 -1
  244. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_he.json +1 -1
  245. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_hr.json +1 -1
  246. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_hu.json +1 -1
  247. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_id.json +1 -1
  248. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_it.json +1 -1
  249. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ja.json +1 -1
  250. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ko.json +1 -1
  251. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_lt.json +1 -1
  252. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_lv.json +1 -1
  253. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_nb.json +1 -1
  254. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_nl.json +1 -1
  255. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pl.json +1 -1
  256. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pt-BR.json +1 -1
  257. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pt-PT.json +1 -1
  258. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ro.json +1 -1
  259. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ru.json +1 -1
  260. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sk.json +1 -1
  261. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sl.json +1 -1
  262. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sr.json +1 -1
  263. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sv.json +1 -1
  264. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_th.json +1 -1
  265. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_tr.json +1 -1
  266. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_uk.json +1 -1
  267. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_vi.json +1 -1
  268. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-CN.json +1 -1
  269. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-HK.json +1 -1
  270. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-TW.json +1 -1
  271. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ar.json +1 -1
  272. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_bg.json +1 -1
  273. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_bs.json +1 -1
  274. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ca.json +1 -1
  275. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_cs.json +1 -1
  276. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_da.json +1 -1
  277. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_de.json +1 -1
  278. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_el.json +1 -1
  279. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_es.json +1 -1
  280. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_et.json +1 -1
  281. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_fi.json +1 -1
  282. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_fr.json +1 -1
  283. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_he.json +1 -1
  284. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_hr.json +1 -1
  285. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_hu.json +1 -1
  286. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_id.json +1 -1
  287. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_it.json +1 -1
  288. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ja.json +1 -1
  289. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ko.json +1 -1
  290. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_lt.json +1 -1
  291. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_lv.json +1 -1
  292. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_nb.json +1 -1
  293. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_nl.json +1 -1
  294. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_pl.json +1 -1
  295. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_pt-BR.json +1 -1
  296. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_pt-PT.json +1 -1
  297. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ro.json +1 -1
  298. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ru.json +1 -1
  299. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sk.json +1 -1
  300. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sl.json +1 -1
  301. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sr.json +1 -1
  302. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sv.json +1 -1
  303. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_th.json +1 -1
  304. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_tr.json +1 -1
  305. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_uk.json +1 -1
  306. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_vi.json +1 -1
  307. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_zh-CN.json +1 -1
  308. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_zh-HK.json +1 -1
  309. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_zh-TW.json +1 -1
  310. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ar.json +1 -1
  311. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_bg.json +1 -1
  312. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_bs.json +1 -1
  313. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ca.json +1 -1
  314. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_cs.json +1 -1
  315. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_da.json +1 -1
  316. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_de.json +1 -1
  317. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_el.json +1 -1
  318. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_es.json +1 -1
  319. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_et.json +1 -1
  320. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_fi.json +1 -1
  321. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_fr.json +1 -1
  322. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_he.json +1 -1
  323. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_hr.json +1 -1
  324. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_hu.json +1 -1
  325. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_id.json +1 -1
  326. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_it.json +1 -1
  327. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ja.json +1 -1
  328. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ko.json +1 -1
  329. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_lt.json +1 -1
  330. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_lv.json +1 -1
  331. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_nb.json +1 -1
  332. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_nl.json +1 -1
  333. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pl.json +1 -1
  334. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pt-BR.json +1 -1
  335. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pt-PT.json +1 -1
  336. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ro.json +1 -1
  337. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ru.json +1 -1
  338. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sk.json +1 -1
  339. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sl.json +1 -1
  340. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sr.json +1 -1
  341. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sv.json +1 -1
  342. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_th.json +1 -1
  343. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_tr.json +1 -1
  344. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_uk.json +1 -1
  345. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_vi.json +1 -1
  346. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-CN.json +1 -1
  347. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-HK.json +1 -1
  348. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-TW.json +1 -1
  349. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ar.json +1 -1
  350. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bg.json +1 -1
  351. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bs.json +1 -1
  352. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ca.json +1 -1
  353. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_cs.json +1 -1
  354. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_da.json +1 -1
  355. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_de.json +1 -1
  356. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_el.json +1 -1
  357. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_es.json +1 -1
  358. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_et.json +1 -1
  359. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fi.json +1 -1
  360. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fr.json +1 -1
  361. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_he.json +1 -1
  362. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hr.json +1 -1
  363. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hu.json +1 -1
  364. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_id.json +1 -1
  365. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_it.json +1 -1
  366. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ja.json +1 -1
  367. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ko.json +1 -1
  368. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lt.json +1 -1
  369. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lv.json +1 -1
  370. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nb.json +1 -1
  371. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nl.json +1 -1
  372. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pl.json +1 -1
  373. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-BR.json +1 -1
  374. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-PT.json +1 -1
  375. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ro.json +1 -1
  376. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ru.json +1 -1
  377. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sk.json +1 -1
  378. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sl.json +1 -1
  379. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sr.json +1 -1
  380. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sv.json +1 -1
  381. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_th.json +1 -1
  382. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_tr.json +1 -1
  383. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_uk.json +1 -1
  384. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_vi.json +1 -1
  385. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-CN.json +1 -1
  386. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-HK.json +1 -1
  387. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-TW.json +1 -1
  388. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ar.json +1 -1
  389. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_bg.json +1 -1
  390. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_bs.json +1 -1
  391. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ca.json +1 -1
  392. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_cs.json +1 -1
  393. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_da.json +1 -1
  394. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_de.json +1 -1
  395. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_el.json +1 -1
  396. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_es.json +1 -1
  397. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_et.json +1 -1
  398. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_fi.json +1 -1
  399. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_fr.json +1 -1
  400. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_he.json +1 -1
  401. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_hr.json +1 -1
  402. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_hu.json +1 -1
  403. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_id.json +1 -1
  404. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_it.json +1 -1
  405. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ja.json +1 -1
  406. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ko.json +1 -1
  407. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_lt.json +1 -1
  408. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_lv.json +1 -1
  409. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_nb.json +1 -1
  410. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_nl.json +1 -1
  411. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_pl.json +1 -1
  412. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_pt-BR.json +1 -1
  413. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_pt-PT.json +1 -1
  414. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ro.json +1 -1
  415. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ru.json +1 -1
  416. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sk.json +1 -1
  417. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sl.json +1 -1
  418. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sr.json +1 -1
  419. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sv.json +1 -1
  420. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_th.json +1 -1
  421. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_tr.json +1 -1
  422. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_uk.json +1 -1
  423. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_vi.json +1 -1
  424. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_zh-CN.json +1 -1
  425. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_zh-HK.json +1 -1
  426. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_zh-TW.json +1 -1
  427. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ar.json +1 -1
  428. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_bg.json +1 -1
  429. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_bs.json +1 -1
  430. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ca.json +1 -1
  431. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_cs.json +1 -1
  432. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_da.json +1 -1
  433. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_de.json +1 -1
  434. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_el.json +1 -1
  435. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_es.json +1 -1
  436. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_et.json +1 -1
  437. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_fi.json +1 -1
  438. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_fr.json +1 -1
  439. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_he.json +1 -1
  440. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_hr.json +1 -1
  441. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_hu.json +1 -1
  442. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_id.json +1 -1
  443. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_it.json +1 -1
  444. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ja.json +1 -1
  445. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ko.json +1 -1
  446. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_lt.json +1 -1
  447. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_lv.json +1 -1
  448. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_nb.json +1 -1
  449. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_nl.json +1 -1
  450. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_pl.json +1 -1
  451. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_pt-BR.json +1 -1
  452. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_pt-PT.json +1 -1
  453. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ro.json +1 -1
  454. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ru.json +1 -1
  455. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sk.json +1 -1
  456. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sl.json +1 -1
  457. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sr.json +1 -1
  458. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sv.json +1 -1
  459. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_th.json +1 -1
  460. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_tr.json +1 -1
  461. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_uk.json +1 -1
  462. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_vi.json +1 -1
  463. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_zh-CN.json +1 -1
  464. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_zh-HK.json +1 -1
  465. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_zh-TW.json +1 -1
  466. package/chunks/HighlightApply.glsl.js +6 -7
  467. package/chunks/HighlightBlur.glsl.js +5 -6
  468. package/chunks/HighlightDownsample.glsl.js +8 -8
  469. package/chunks/languageUtils.js +1 -1
  470. package/core/MemCache.js +1 -1
  471. package/core/MemCachePool.js +1 -1
  472. package/core/colorUtils.js +1 -1
  473. package/geometry/GeometryCursor.js +1 -1
  474. package/interfaces.d.ts +317 -27
  475. package/intl/date.js +1 -1
  476. package/kernel.js +1 -1
  477. package/layers/GroupLayer.js +1 -1
  478. package/layers/MapNotesLayer.js +1 -1
  479. package/layers/SceneLayer.js +1 -1
  480. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  481. package/layers/graphics/data/AttributesBuilder.js +1 -1
  482. package/layers/graphics/data/QueryEngineResult.js +1 -1
  483. package/layers/graphics/editingSupport.js +1 -1
  484. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  485. package/layers/graphics/sources/csv/csv.js +1 -1
  486. package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
  487. package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
  488. package/layers/graphics/sources/support/sourceUtils.js +1 -1
  489. package/layers/ogc/wfsUtils.js +1 -1
  490. package/layers/support/Field.js +1 -1
  491. package/layers/support/FieldsIndex.js +1 -1
  492. package/layers/support/LayerContingentValuesCache.js +1 -1
  493. package/layers/support/fieldProperties.js +1 -1
  494. package/layers/support/fieldUtils.js +1 -1
  495. package/layers/support/imageryRendererUtils.js +1 -1
  496. package/layers/support/labelFormatUtils.js +1 -1
  497. package/package.json +2 -2
  498. package/renderers/UniqueValueRenderer.js +1 -1
  499. package/renderers/support/utils.js +1 -1
  500. package/rest/featureService/FeatureService.js +1 -1
  501. package/rest/query/operations/query.js +1 -1
  502. package/smartMapping/labels/clusters.js +1 -1
  503. package/smartMapping/popup/support/clusterUtils.js +1 -1
  504. package/smartMapping/renderers/color.js +1 -1
  505. package/smartMapping/renderers/opacity.js +1 -1
  506. package/smartMapping/renderers/size.js +1 -1
  507. package/smartMapping/renderers/support/utils.js +1 -1
  508. package/smartMapping/renderers/type.js +1 -1
  509. package/smartMapping/renderers/univariateColorSize.js +1 -1
  510. package/smartMapping/statistics/histogram.js +1 -1
  511. package/smartMapping/statistics/summaryStatistics.js +1 -1
  512. package/smartMapping/statistics/support/statsWorker.js +1 -1
  513. package/smartMapping/statistics/support/utils.js +1 -1
  514. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  515. package/smartMapping/support/adapters/FeatureLayerBinningAdapter.js +1 -1
  516. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  517. package/smartMapping/support/adapters/OGCFeatureLayerAdapter.js +1 -1
  518. package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
  519. package/smartMapping/support/adapters/StreamLayerAdapter.js +1 -1
  520. package/smartMapping/support/adapters/support/utils.js +1 -1
  521. package/smartMapping/support/clusterUtils.js +1 -1
  522. package/smartMapping/support/utils.js +1 -1
  523. package/support/revision.js +1 -1
  524. package/symbols/cim/CIMSymbolHelper.js +1 -1
  525. package/symbols/cim/effects/EffectDashes.js +1 -1
  526. package/symbols/support/previewCIMSymbol.js +1 -1
  527. package/time/timeZoneUtils.js +1 -1
  528. package/versionManagement/VersionManagementService.js +1 -1
  529. package/views/2d/engine/vectorTiles/RenderBucket.js +1 -1
  530. package/views/2d/input/handlers/KeyPan.js +1 -1
  531. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  532. package/views/2d/viewpointUtils.js +1 -1
  533. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  534. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  535. package/views/3d/interactive/editingTools/transformGraphic/GraphicScaleRotateTransform.js +1 -1
  536. package/views/3d/layers/I3SMeshView3D.js +1 -1
  537. package/views/3d/layers/i3s/I3SOverrides.js +1 -1
  538. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  539. package/views/3d/support/buffer/InterleavedLayout.js +1 -1
  540. package/views/3d/terrain/PlanarPatch.js +1 -1
  541. package/views/3d/terrain/SphericalPatch.js +1 -1
  542. package/views/3d/terrain/TerrainSurface.js +1 -1
  543. package/views/3d/terrain/Tile.js +1 -1
  544. package/views/3d/terrain/TileRenderer.js +1 -1
  545. package/views/3d/terrain/TileTexture.js +1 -1
  546. package/views/3d/webgl-engine/core/FBOCache.js +1 -1
  547. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +1 -1
  548. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  549. package/views/3d/webgl-engine/effects/highlight/HighlightPassParameters.js +1 -1
  550. package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
  551. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  552. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  553. package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +1 -1
  554. package/views/3d/webgl-engine/shaders/HighlightBlur.glsl.js +1 -1
  555. package/views/3d/webgl-engine/shaders/HighlightDownsample.glsl.js +1 -1
  556. package/views/interactive/SegmentLabels.js +1 -1
  557. package/views/overlay/TextOverlayItem.js +1 -1
  558. package/views/webgl/VertexArrayObject.js +1 -1
  559. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  560. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DTool.js +1 -1
  561. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  562. package/widgets/Editor/CreateFeaturesWorkflowData.js +1 -1
  563. package/widgets/Editor/EditorViewModel.js +1 -1
  564. package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
  565. package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
  566. package/widgets/Editor/UpdateWorkflow.js +1 -1
  567. package/widgets/Editor/workflowUtils.js +1 -1
  568. package/widgets/Editor.js +1 -1
  569. package/widgets/Feature/FeatureRelationship/FeatureRelationshipViewModel.js +1 -1
  570. package/widgets/Feature/FeatureViewModel.js +1 -1
  571. package/widgets/Feature/support/featureUtils.js +1 -1
  572. package/widgets/FeatureForm/FieldInput.js +1 -1
  573. package/widgets/FeatureForm/RelationshipInput.js +1 -1
  574. package/widgets/FeatureForm/featureFormUtils.js +1 -1
  575. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  576. package/widgets/FeatureTable/FieldColumn.js +1 -1
  577. package/widgets/Features/FeaturesViewModel.js +1 -1
  578. package/widgets/Features/css.js +1 -1
  579. package/widgets/Features.js +1 -1
  580. package/widgets/Legend/LegendViewModel.js +1 -1
  581. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  582. package/widgets/Legend/support/utils.js +1 -1
  583. package/widgets/LineOfSight.js +1 -1
  584. package/widgets/OrientedImageryViewer.d.ts +4 -0
  585. package/widgets/Popup/actionUtils.js +1 -1
  586. package/widgets/ScaleRangeSlider.js +1 -1
  587. package/widgets/TimeZoneLabel/TimeZoneLabelViewModel.js +5 -0
  588. package/widgets/TimeZoneLabel/css.js +5 -0
  589. package/widgets/TimeZoneLabel.d.ts +4 -0
  590. package/widgets/TimeZoneLabel.js +5 -0
  591. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  592. package/widgets/UtilityNetworkTrace/support/ResultAreaHandler.js +1 -1
  593. package/widgets/UtilityNetworkTrace.js +1 -1
  594. package/widgets/UtilityNetworkValidateTopology/UtilityNetworkValidateTopologyViewModel.js +1 -1
  595. package/widgets/support/SnappingControls/SnappingControlsViewModel.js +1 -1
  596. package/assets/esri/core/workers/chunks/0036b6df93a17e57e3b9.js +0 -1
  597. package/assets/esri/core/workers/chunks/089e59445bd0b1131ffb.js +0 -1
  598. package/assets/esri/core/workers/chunks/09886c56427c4b3f18b5.js +0 -1
  599. package/assets/esri/core/workers/chunks/0b539dacc5c72399ab32.js +0 -1
  600. package/assets/esri/core/workers/chunks/0bb57b54897fb4381b46.js +0 -1
  601. package/assets/esri/core/workers/chunks/0d77c9c97301a4ee4167.js +0 -1
  602. package/assets/esri/core/workers/chunks/0d8ca51043c7784aed96.js +0 -1
  603. package/assets/esri/core/workers/chunks/121a9e148509f2fe2210.js +0 -1
  604. package/assets/esri/core/workers/chunks/1461910bd37aea28948b.js +0 -1
  605. package/assets/esri/core/workers/chunks/1586929658af88f6f961.js +0 -1
  606. package/assets/esri/core/workers/chunks/16d45f439b89da3ec835.js +0 -1
  607. package/assets/esri/core/workers/chunks/1ef3533abdd937ae2794.js +0 -1
  608. package/assets/esri/core/workers/chunks/24c504585da8e44f956f.js +0 -1
  609. package/assets/esri/core/workers/chunks/24ff267cf253feac22de.js +0 -1
  610. package/assets/esri/core/workers/chunks/2561c2bd5a0826dedcb1.js +0 -1
  611. package/assets/esri/core/workers/chunks/2832161454babb40614b.js +0 -1
  612. package/assets/esri/core/workers/chunks/29cab345819ec02ed60a.js +0 -1
  613. package/assets/esri/core/workers/chunks/2f8e71dac98135bbc3e6.js +0 -1
  614. package/assets/esri/core/workers/chunks/369f2ef414498c17a05a.js +0 -1
  615. package/assets/esri/core/workers/chunks/4108445c4a653772c5ee.js +0 -1
  616. package/assets/esri/core/workers/chunks/432a009e756643f59cb4.js +0 -1
  617. package/assets/esri/core/workers/chunks/435f04e3964b1c6d4880.js +0 -1
  618. package/assets/esri/core/workers/chunks/44a3d01b7daa46584ed9.js +0 -1
  619. package/assets/esri/core/workers/chunks/44b870cb53ba68b17c32.js +0 -1
  620. package/assets/esri/core/workers/chunks/4736188659a62488c777.js +0 -1
  621. package/assets/esri/core/workers/chunks/4763831c8815fed636f7.js +0 -1
  622. package/assets/esri/core/workers/chunks/4781e2011a32d7724889.js +0 -1
  623. package/assets/esri/core/workers/chunks/4d81aa50d90f5701a343.js +0 -1
  624. package/assets/esri/core/workers/chunks/4e60ac00b15b34a3b5f5.js +0 -1
  625. package/assets/esri/core/workers/chunks/4e6bf1efe3b0b474cbb4.js +0 -1
  626. package/assets/esri/core/workers/chunks/505132c47dbdf5fdeacc.js +0 -1
  627. package/assets/esri/core/workers/chunks/526ae87737777154c3f3.js +0 -1
  628. package/assets/esri/core/workers/chunks/53859d0bd8bb14af2d4d.js +0 -1
  629. package/assets/esri/core/workers/chunks/593d7f17090b74945345.js +0 -1
  630. package/assets/esri/core/workers/chunks/5a3ccc0a19ac8fa9e524.js +0 -1
  631. package/assets/esri/core/workers/chunks/5baae5acd184e87d5dc4.js +0 -1
  632. package/assets/esri/core/workers/chunks/5bdd2a3422fe52aa2c65.js +0 -1
  633. package/assets/esri/core/workers/chunks/66ba749ab0a631bbfdec.js +0 -1
  634. package/assets/esri/core/workers/chunks/69da907a92901f0fb391.js +0 -1
  635. package/assets/esri/core/workers/chunks/6b14d89d689a21014aec.js +0 -1
  636. package/assets/esri/core/workers/chunks/6b7b5544ed1f9a84623f.js +0 -1
  637. package/assets/esri/core/workers/chunks/6ce986f4213df8a2d934.js +0 -1
  638. package/assets/esri/core/workers/chunks/785d9a9a933314551b10.js +0 -1
  639. package/assets/esri/core/workers/chunks/7f6840c53a456524b74c.js +0 -1
  640. package/assets/esri/core/workers/chunks/84870178173951ad6c2b.js +0 -1
  641. package/assets/esri/core/workers/chunks/8634d6a62f4de973e39b.js +0 -1
  642. package/assets/esri/core/workers/chunks/88d43db03cc11cbffa68.js +0 -1
  643. package/assets/esri/core/workers/chunks/902b672a3475ec83b58b.js +0 -1
  644. package/assets/esri/core/workers/chunks/943ea851c1b07af91172.js +0 -1
  645. package/assets/esri/core/workers/chunks/9a5e3b0cc8536f79c377.js +0 -1
  646. package/assets/esri/core/workers/chunks/9f8207c82a17508a87a8.js +0 -1
  647. package/assets/esri/core/workers/chunks/a01ffe03b1465c21b9e6.js +0 -1
  648. package/assets/esri/core/workers/chunks/a298c9031962951e55a9.js +0 -1
  649. package/assets/esri/core/workers/chunks/a9a0194120ec65a00f6d.js +0 -1
  650. package/assets/esri/core/workers/chunks/aa453ae526a233cedf0c.js +0 -1
  651. package/assets/esri/core/workers/chunks/ab5ffcf0db724d40f714.js +0 -1
  652. package/assets/esri/core/workers/chunks/ad38e456a7cee940a165.js +0 -1
  653. package/assets/esri/core/workers/chunks/ae3ea5fa813aec0db5e1.js +0 -1
  654. package/assets/esri/core/workers/chunks/ae59e10b225f08f38487.js +0 -1
  655. package/assets/esri/core/workers/chunks/b030cf4b00e42337dc89.js +0 -1
  656. package/assets/esri/core/workers/chunks/b0526633a93ef69ec47b.js +0 -1
  657. package/assets/esri/core/workers/chunks/b0d6e6e489aaa331861c.js +0 -1
  658. package/assets/esri/core/workers/chunks/b0ddb503463328531d8f.js +0 -1
  659. package/assets/esri/core/workers/chunks/b1a8024bf8cdd0cd3884.js +0 -1
  660. package/assets/esri/core/workers/chunks/b3243695e0edfcbca276.js +0 -1
  661. package/assets/esri/core/workers/chunks/be57692d4b9ff6cd4c02.js +0 -1
  662. package/assets/esri/core/workers/chunks/c0061d993e1ede22b1dc.js +0 -1
  663. package/assets/esri/core/workers/chunks/c260ad3434bb00ba64a7.js +0 -1
  664. package/assets/esri/core/workers/chunks/c2be3b9aa28e454cf931.js +0 -1
  665. package/assets/esri/core/workers/chunks/c459c8d8630eb4b955b1.js +0 -1
  666. package/assets/esri/core/workers/chunks/c4df42fe859a9115a6e4.js +0 -1
  667. package/assets/esri/core/workers/chunks/c5acddea13fd01912e79.js +0 -1
  668. package/assets/esri/core/workers/chunks/c607fe4df3ca054f9aa8.js +0 -1
  669. package/assets/esri/core/workers/chunks/ca85e88dad30b5f2956b.js +0 -1
  670. package/assets/esri/core/workers/chunks/ce3bb546a729f0ccf696.js +0 -1
  671. package/assets/esri/core/workers/chunks/cfd63bd57eea2caa4bcb.js +0 -1
  672. package/assets/esri/core/workers/chunks/d6ded127949160103f69.js +0 -1
  673. package/assets/esri/core/workers/chunks/d95eed98316e59f8f35d.js +0 -1
  674. package/assets/esri/core/workers/chunks/e0b49c5eb5427656e835.js +0 -1
  675. package/assets/esri/core/workers/chunks/e52b9e423c0ba4134309.js +0 -1
  676. package/assets/esri/core/workers/chunks/e52d5a48e83d8df36f92.js +0 -1
  677. package/assets/esri/core/workers/chunks/e53df0f018a82e3a35bd.js +0 -1
  678. package/assets/esri/core/workers/chunks/ea953f5a0a975f7bd7b9.js +0 -1
  679. package/assets/esri/core/workers/chunks/eb4bfafe821daeb4bb6e.js +0 -1
  680. package/assets/esri/core/workers/chunks/f183a4b52095e4c498b4.js +0 -1
  681. package/assets/esri/core/workers/chunks/f221b9c6ae6c7eb4ca01.js +0 -1
  682. package/assets/esri/core/workers/chunks/f57100e3dfc7f087c3ad.js +0 -1
  683. package/assets/esri/core/workers/chunks/f5fd2ee5878c63777c51.js +0 -1
  684. package/assets/esri/core/workers/chunks/f6b7036114b1d754fdd9.js +0 -1
  685. package/assets/esri/core/workers/chunks/f6c0680c535c5a3c73ee.js +0 -1
  686. package/assets/esri/core/workers/chunks/f72a5af2a7ca1536f10a.js +0 -1
  687. package/assets/esri/core/workers/chunks/f99deed4120f605b6cd6.js +0 -1
  688. package/layers/graphics/sources/support/QueryEngineBuildLayer.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import"../../geometry.js";import t from"../../Graphic.js";import"../../intl.js";import"../../symbols.js";import{getContrast as r,multiplyOpacity as s}from"../../core/colorUtils.js";import{destroyMaybe as i}from"../../core/maybe.js";import{watch as o,initial as a}from"../../core/reactiveUtils.js";import{formatDecimal as n,formatImperialLength as l,formatMetricLength as m}from"../../core/unitFormatUtils.js";import{convertUnit as c}from"../../core/unitUtils.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 p}from"../../core/accessorSupport/decorators/subclass.js";import{geodesicLength as u,geodesicDensify as d,planarLength as y}from"../../geometry/geometryEngine.js";import{project as v}from"../../geometry/projection.js";import{isSupported as f,geodesicLengths as _,geodesicDensify as w}from"../../geometry/support/geodesicUtils.js";import g from"../../layers/GraphicsLayer.js";import{ViewingMode as b}from"../../views/ViewingMode.js";import j from"../../views/draw/Draw.js";import{createManipulatorDragEventPipeline as S,screenToMap as L,dragGraphic as M}from"../../views/interactive/dragEventPipeline.js";import{GraphicManipulator as x}from"../../views/interactive/GraphicManipulator.js";import{InteractiveToolBase as A}from"../../views/interactive/InteractiveToolBase.js";import{fetchMessageBundle as C}from"../../intl/messages.js";import{onLocaleChange as T}from"../../intl/locale.js";import k from"../../geometry/Point.js";import D from"../../symbols/CIMSymbol.js";import G from"../../symbols/TextSymbol.js";import R from"../../symbols/Font.js";import P from"../../symbols/SimpleMarkerSymbol.js";import U from"../../geometry/Polyline.js";import E from"../../geometry/SpatialReference.js";const I=1e5;let z=class extends A{constructor(e){super(e),this._drawActive=!1,this._measurementLayer=new g({internal:!0,listMode:"hide",visible:!1}),this._manipulatorLayer=new g({internal:!0,listMode:"hide",visible:!1}),this._vertices=[],this.geodesicDistanceThreshold=1e5,this.measurement=null,this.measurementLabel=null}initialize(){C("esri/core/t9n/Units").then((e=>{this.messages=e})),this.addHandles(T((async()=>{this.messages=await C("esri/core/t9n/Units")})));const e=this.view;this._draw=new j({view:e}),e.map.addMany([this._measurementLayer,this._manipulatorLayer]),e.focus(),this.addHandles([o((()=>[this.unit,this.geodesicDistanceThreshold,this.messages]),(()=>{this._updatePolylines()}),a),o((()=>[this.view.effectiveTheme.accentColor,this.view.effectiveTheme.textColor]),(()=>{if(!this._vertices.length)return;const e=this._vertices.map((({coord:e})=>e));for(const{handle:t}of this._vertices)t.remove();this._vertices=[],this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this.manipulators.removeAll(),this._updateSketch(e)}))])}destroy(){const{map:e}=this.view;this._draw.view=null,this._draw=i(this._draw),e.removeMany([this._measurementLayer,this._manipulatorLayer]),this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this._set("measurement",null),this._set("measurementLabel",null),this._measurementLayer=i(this._measurementLayer),this._manipulatorLayer=i(this._manipulatorLayer),this._resetVertices()}get cursor(){return this._drawActive?"crosshair":null}set editable(e){this._set("editable",e),e||this._draw.reset()}onActivate(){this._drawActive||0!==this._vertices.length||this._startSketch()}onShow(){this._measurementLayer.visible=!0,this._manipulatorLayer.visible=!0}onHide(){this._measurementLayer.visible=!1,this._manipulatorLayer.visible=!1}_resetVertices(){for(const{handle:e}of this._vertices)e.remove();this._vertices=[]}_startSketch(){this._drawActive=!0;const e=this._draw.create("polyline",{mode:"click"});e.on(["vertex-add","vertex-update","vertex-remove","cursor-update","undo","redo"],(e=>this._updateSketch(e.vertices))),e.on("draw-complete",(()=>{this._stopSketch()}))}_stopSketch(){this.manipulators.forEach((({manipulator:e})=>{e.interactive=!0})),this._drawActive=!1,this.finishToolCreation()}_updateSketch(e){const{spatialReference:t}=this.view;for(;this._vertices.length>e.length;){const{handle:e,manipulator:t}=this._vertices.pop();e.remove(),this.manipulators.remove(t)}for(let n=this._vertices.length;n<e.length;n++){const[r,s]=e[n],i=W(new k({x:r,y:s,spatialReference:t}),this.view,this._manipulatorLayer);this.manipulators.add(i);const o=S(i,((e,t)=>{t.next(L(this.view)).next(M(e.graphic,b.Local)).next((()=>{const t=e.graphic.geometry;this._vertices[n].coord=[t.x,t.y],this._updatePolylines()}))}));this._vertices.push({manipulator:i,coord:[r,s],handle:o})}const r=this._vertices.length-1,s=this._vertices[r],[i,o]=e[r];s.coord[0]===i&&s.coord[1]===o||(s.coord=[i,o],s.manipulator.graphic.geometry=new k({x:i,y:o,spatialReference:t}));const a=this._drawActive?this._vertices[r].manipulator:null;this.manipulators.forEach((({manipulator:e})=>{e.interactive=null==a||e!==a})),this._updatePolylines()}_updatePolylines(){if(this._vertices.length<2)return void this._measurementLayer.removeAll();const e=this._vertices.map((({coord:e})=>e)),{measurement:i,drawing:o,original:a}=O(e,this.view.spatialReference,this.geodesicDistanceThreshold);this._set("measurement",i);const n=H(this.messages,i,this.unit);let l,m;this._set("measurementLabel",n);const{graphics:c}=this._measurementLayer,h=2===c.length,{effectiveTheme:p}=this.view;h?(l=c.at(0),m=c.at(1)):(l=new t({symbol:new D({data:{type:"CIMSymbolReference",symbol:{type:"CIMLineSymbol",symbolLayers:[{type:"CIMSolidStroke",effects:[{type:"CIMGeometricEffectDashes",dashTemplate:[14,12],lineDashEnding:"FullGap",controlPointEnding:"NoConstraint"}],enable:!0,capStyle:"Butt",joinStyle:"Round",width:3.5,color:r(p.accentColor).toArray()},{type:"CIMSolidStroke",enable:!0,capStyle:"Butt",joinStyle:"Round",width:5,color:p.accentColor.toArray()}]}}})}),m=new t({symbol:new G({color:p.textColor,haloColor:s(r(p.textColor),.5),haloSize:2,font:new R({size:14,family:"sans-serif"})})}),c.removeAll(),c.addMany([l,m])),l.geometry=o,m.geometry=a.extent?.center,m.symbol.text=n}};function W(e,r,i){const o=s(r.effectiveTheme.accentColor,.5),a={type:"simple-line",width:0},n=8,l=new P({style:"circle",color:o,size:n,outline:a}),m=new P({style:"circle",color:o,size:1.5*n,outline:a}),c=new t({geometry:e,symbol:l});return new x({view:r,layer:i,graphic:c,focusedSymbol:m})}function O(e,t,r){const s=new U({paths:[e],spatialReference:t});let i,o;if(t.isGeographic)if(f(t))i=_([s],"meters")[0],o=w(s,I);else{const e=v(s,E.WGS84),r=w(e,I);i=_([e],"meters")[0],o=v(r,t)}else if(t.isWebMercator)i=u(s,"meters"),o=d(s,I,"meters");else{const e=y(s,"meters");if(e>=r){const e=v(s,E.WGS84),r=w(e,I);i=_([e],"meters")[0],o=v(r,t)}else i=e,o=s}return{measurement:{geometry:o,length:i},original:s,drawing:o}}function B(e){return null!=e}function F(e){if(!e)return!1;const{isGeographic:t,isWebMercator:r,isWGS84:s}=e;return t&&!s&&!f(e)||!t&&!r}function H(e,t,r){if(!t||!e)return"";switch(r){case"metric":return m(e,t.length,"meters");case"imperial":return l(e,t.length,"meters");default:return n(e,c(t.length,"meters",r),r)}}e([h()],z.prototype,"_drawActive",void 0),e([h({readOnly:!0})],z.prototype,"cursor",null),e([h({value:!0})],z.prototype,"editable",null),e([h({type:Number})],z.prototype,"geodesicDistanceThreshold",void 0),e([h({readOnly:!0})],z.prototype,"measurement",void 0),e([h({readOnly:!0})],z.prototype,"measurementLabel",void 0),e([h()],z.prototype,"messages",void 0),e([h()],z.prototype,"unit",void 0),e([h({constructOnly:!0})],z.prototype,"view",void 0),z=e([p("esri.widgets.DistanceMeasurement2D.DistanceMeasurement2DTool")],z);export{z as DistanceMeasurement2DTool,O as createDistanceMeasurementInfo2D,H as createDistanceMeasurementLabel,F as isProjectionEngineRequired,B as isSupported};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import"../../geometry.js";import t from"../../Graphic.js";import"../../intl.js";import"../../symbols.js";import{getContrast as r,multiplyOpacity as s,BrightnessThreshold as i}from"../../core/colorUtils.js";import{destroyMaybe as o}from"../../core/maybe.js";import{watch as a,initial as n}from"../../core/reactiveUtils.js";import{formatDecimal as l,formatImperialLength as m,formatMetricLength as c}from"../../core/unitFormatUtils.js";import{convertUnit as h}from"../../core/unitUtils.js";import{property as p}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as u}from"../../core/accessorSupport/decorators/subclass.js";import{geodesicLength as d,geodesicDensify as y,planarLength as v}from"../../geometry/geometryEngine.js";import{project as f}from"../../geometry/projection.js";import{isSupported as _,geodesicLengths as w,geodesicDensify as g}from"../../geometry/support/geodesicUtils.js";import b from"../../layers/GraphicsLayer.js";import{ViewingMode as j}from"../../views/ViewingMode.js";import S from"../../views/draw/Draw.js";import{createManipulatorDragEventPipeline as L,screenToMap as M,dragGraphic as x}from"../../views/interactive/dragEventPipeline.js";import{GraphicManipulator as A}from"../../views/interactive/GraphicManipulator.js";import{InteractiveToolBase as C}from"../../views/interactive/InteractiveToolBase.js";import{fetchMessageBundle as T}from"../../intl/messages.js";import{onLocaleChange as k}from"../../intl/locale.js";import D from"../../geometry/Point.js";import G from"../../symbols/CIMSymbol.js";import R from"../../symbols/TextSymbol.js";import P from"../../symbols/Font.js";import U from"../../symbols/SimpleMarkerSymbol.js";import E from"../../geometry/Polyline.js";import I from"../../geometry/SpatialReference.js";const z=1e5;let W=class extends C{constructor(e){super(e),this._drawActive=!1,this._measurementLayer=new b({internal:!0,listMode:"hide",visible:!1}),this._manipulatorLayer=new b({internal:!0,listMode:"hide",visible:!1}),this._vertices=[],this.geodesicDistanceThreshold=1e5,this.measurement=null,this.measurementLabel=null}initialize(){T("esri/core/t9n/Units").then((e=>{this.messages=e})),this.addHandles(k((async()=>{this.messages=await T("esri/core/t9n/Units")})));const e=this.view;this._draw=new S({view:e}),e.map.addMany([this._measurementLayer,this._manipulatorLayer]),e.focus(),this.addHandles([a((()=>[this.unit,this.geodesicDistanceThreshold,this.messages]),(()=>{this._updatePolylines()}),n),a((()=>[this.view.effectiveTheme.accentColor,this.view.effectiveTheme.textColor]),(()=>{if(!this._vertices.length)return;const e=this._vertices.map((({coord:e})=>e));for(const{handle:t}of this._vertices)t.remove();this._vertices=[],this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this.manipulators.removeAll(),this._updateSketch(e)}))])}destroy(){const{map:e}=this.view;this._draw.view=null,this._draw=o(this._draw),e.removeMany([this._measurementLayer,this._manipulatorLayer]),this._measurementLayer.removeAll(),this._manipulatorLayer.removeAll(),this._set("measurement",null),this._set("measurementLabel",null),this._measurementLayer=o(this._measurementLayer),this._manipulatorLayer=o(this._manipulatorLayer),this._resetVertices()}get cursor(){return this._drawActive?"crosshair":null}set editable(e){this._set("editable",e),e||this._draw.reset()}onActivate(){this._drawActive||0!==this._vertices.length||this._startSketch()}onShow(){this._measurementLayer.visible=!0,this._manipulatorLayer.visible=!0}onHide(){this._measurementLayer.visible=!1,this._manipulatorLayer.visible=!1}_resetVertices(){for(const{handle:e}of this._vertices)e.remove();this._vertices=[]}_startSketch(){this._drawActive=!0;const e=this._draw.create("polyline",{mode:"click"});e.on(["vertex-add","vertex-update","vertex-remove","cursor-update","undo","redo"],(e=>this._updateSketch(e.vertices))),e.on("draw-complete",(()=>{this._stopSketch()}))}_stopSketch(){this.manipulators.forEach((({manipulator:e})=>{e.interactive=!0})),this._drawActive=!1,this.finishToolCreation()}_updateSketch(e){const{spatialReference:t}=this.view;for(;this._vertices.length>e.length;){const{handle:e,manipulator:t}=this._vertices.pop();e.remove(),this.manipulators.remove(t)}for(let n=this._vertices.length;n<e.length;n++){const[r,s]=e[n],i=O(new D({x:r,y:s,spatialReference:t}),this.view,this._manipulatorLayer);this.manipulators.add(i);const o=L(i,((e,t)=>{t.next(M(this.view)).next(x(e.graphic,j.Local)).next((()=>{const t=e.graphic.geometry;this._vertices[n].coord=[t.x,t.y],this._updatePolylines()}))}));this._vertices.push({manipulator:i,coord:[r,s],handle:o})}const r=this._vertices.length-1,s=this._vertices[r],[i,o]=e[r];s.coord[0]===i&&s.coord[1]===o||(s.coord=[i,o],s.manipulator.graphic.geometry=new D({x:i,y:o,spatialReference:t}));const a=this._drawActive?this._vertices[r].manipulator:null;this.manipulators.forEach((({manipulator:e})=>{e.interactive=null==a||e!==a})),this._updatePolylines()}_updatePolylines(){if(this._vertices.length<2)return void this._measurementLayer.removeAll();const e=this._vertices.map((({coord:e})=>e)),{measurement:o,drawing:a,original:n}=B(e,this.view.spatialReference,this.geodesicDistanceThreshold);this._set("measurement",o);const l=V(this.messages,o,this.unit);let m,c;this._set("measurementLabel",l);const{graphics:h}=this._measurementLayer,p=2===h.length,{effectiveTheme:u}=this.view;p?(m=h.at(0),c=h.at(1)):(m=new t({symbol:new G({data:{type:"CIMSymbolReference",symbol:{type:"CIMLineSymbol",symbolLayers:[{type:"CIMSolidStroke",effects:[{type:"CIMGeometricEffectDashes",dashTemplate:[14,12],lineDashEnding:"FullGap",controlPointEnding:"NoConstraint"}],enable:!0,capStyle:"Butt",joinStyle:"Round",width:3.5,color:r(u.accentColor).toArray()},{type:"CIMSolidStroke",enable:!0,capStyle:"Butt",joinStyle:"Round",width:5,color:u.accentColor.toArray()}]}}})}),c=new t({symbol:new R({color:u.textColor,haloColor:s(r(u.textColor,i.Low),.5),haloSize:2,font:new P({size:14,family:"sans-serif"})})}),h.removeAll(),h.addMany([m,c])),m.geometry=a,c.geometry=n.extent?.center,c.symbol.text=l}};function O(e,r,i){const o=s(r.effectiveTheme.accentColor,.5),a={type:"simple-line",width:0},n=8,l=new U({style:"circle",color:o,size:n,outline:a}),m=new U({style:"circle",color:o,size:1.5*n,outline:a}),c=new t({geometry:e,symbol:l});return new A({view:r,layer:i,graphic:c,focusedSymbol:m})}function B(e,t,r){const s=new E({paths:[e],spatialReference:t});let i,o;if(t.isGeographic)if(_(t))i=w([s],"meters")[0],o=g(s,z);else{const e=f(s,I.WGS84),r=g(e,z);i=w([e],"meters")[0],o=f(r,t)}else if(t.isWebMercator)i=d(s,"meters"),o=y(s,z,"meters");else{const e=v(s,"meters");if(e>=r){const e=f(s,I.WGS84),r=g(e,z);i=w([e],"meters")[0],o=f(r,t)}else i=e,o=s}return{measurement:{geometry:o,length:i},original:s,drawing:o}}function F(e){return null!=e}function H(e){if(!e)return!1;const{isGeographic:t,isWebMercator:r,isWGS84:s}=e;return t&&!s&&!_(e)||!t&&!r}function V(e,t,r){if(!t||!e)return"";switch(r){case"metric":return c(e,t.length,"meters");case"imperial":return m(e,t.length,"meters");default:return l(e,h(t.length,"meters",r),r)}}e([p()],W.prototype,"_drawActive",void 0),e([p({readOnly:!0})],W.prototype,"cursor",null),e([p({value:!0})],W.prototype,"editable",null),e([p({type:Number})],W.prototype,"geodesicDistanceThreshold",void 0),e([p({readOnly:!0})],W.prototype,"measurement",void 0),e([p({readOnly:!0})],W.prototype,"measurementLabel",void 0),e([p()],W.prototype,"messages",void 0),e([p()],W.prototype,"unit",void 0),e([p({constructOnly:!0})],W.prototype,"view",void 0),W=e([u("esri.widgets.DistanceMeasurement2D.DistanceMeasurement2DTool")],W);export{W as DistanceMeasurement2DTool,B as createDistanceMeasurementInfo2D,V as createDistanceMeasurementLabel,H as isProjectionEngineRequired,F as isSupported};
@@ -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{remove as a,isSome as i}from"../../core/arrayUtils.js";import{makeHandle as r,handlesGroup as n}from"../../core/handleUtils.js";import{removeMaybe as s,destroyMaybe as o}from"../../core/maybe.js";import{debounce as l}from"../../core/promiseUtils.js";import{watch as c,whenOnce as d,syncAndInitial as u}from"../../core/reactiveUtils.js";import{generateBracedUUID as p}from"../../core/uuid.js";import{property as h}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/has.js";import{subclass as f}from"../../core/accessorSupport/decorators/subclass.js";import{getEffectiveLayerCapabilities as m,getEffectiveEditingEnabled as g,isTable as w}from"../../layers/support/layerUtils.js";import{getDrawHelpMessage as y}from"../../views/draw/support/helpMessageUtils.js";import v from"../../views/interactive/snapping/FeatureSnappingLayerSource.js";import{CreateFeaturesWorkflowData as _}from"./CreateFeaturesWorkflowData.js";import{isModelUpload as M,handleModelUpload as b}from"./modelUploadUtils.js";import F from"./Workflow.js";import{shouldShowAttachmentsForCreateWorkflow as I,startCreatingNewFeature as A,findLayerInfo as k,updateGraphicSymbolWhenRequired as H,isTerminalUpdateEventType as C,getVisualVariableAttributes as V,startUpdatingFeature as S,createWorkflowSteps as j,avoidFeatureTemplateSelectionWithOnlyOneItem as U,showProgressCursor as D,visualVariableInteractiveUpdate as E,prepareAttachmentsForCreateWorkflow as G}from"./workflowUtils.js";var O;const T=Symbol(),P=Symbol(),W=Symbol(),x=Symbol();let R=O=class extends F{constructor(e){super(e),this.type="create-features",this.createFeatureState="create-new",this._getDrawMeshHelpMessage=void 0,this._featureFormHandle=null,this._visualVariableAttributes={rotation:null,size:null},this._attachmentFileInfos=new Map,this._highlightHandles=new Map,this._preventDefaultActionOnCancel=!1,this._lastActiveGraphics=[],this._updateGraphicDebounced=l(((e,t,a)=>H(e,t,a)))}get hasPendingEdits(){if(this.numPendingFeatures)return!0;const{data:e}=this,{upload:t}=e;return!(!t||"pending"!==t.state&&"success"!==t.state)||!!e.creationInfo?.geometryToPlace}get helpMessage(){const{creationInfo:e,viewModel:t}=this.data;if("creating-features"!==this.stepId||!e)return;const a=e.layer.geometryType,i=t.sketchViewModel.createGraphic;if("mesh"===a){this._getDrawMeshHelpMessage||import("../../views/draw/support/helpMessageUtils3d.js").then((e=>{this._getDrawMeshHelpMessage=e.getDrawMeshHelpMessage}));const{view:e}=t;return"3d"===e?.type?this._getDrawMeshHelpMessage?.(i,e):void 0}return y(a,i?.geometry)}get numPendingFeatures(){return this.pendingFeatures.length}get parent(){return this.data.parent}get pendingFeatures(){return this.data.pendingFeatures}get keyboardCancellationEnabled(){return 0===this.numPendingFeatures}get reliesOnOwnerAdminPrivileges(){const{creationInfo:e}=this.data;if(!e)return!1;const{layer:t}=e,a=t.capabilities?.operations.supportsAdd,i=m(t)?.operations.supportsAdd;return g(t)&&!t.editingEnabled||!!i&&!a}get shouldShowAttachments(){return!(!this.data?.creationInfo||!this.data.viewModel)&&I(this.data)}get shouldAllowAttachmentEditing(){return this.shouldShowAttachments}get test(){return{addAttachment:(e,t)=>{this._attachmentFileInfos.set(e,t)}}}async enter(){const{featureFormViewModel:e}=this.data.viewModel,t=e.relatedRecordCallbacks;e.relatedRecordCallbacks=null,this.addHandles(r((()=>{e.relatedRecordCallbacks=t})),P)}exit(){this.removeHandles(P)}async updatePendingFeature(e,t){return this._preventDefaultActionOnCancel=!0,this.data.viewModel.sketchViewModel.cancel(),a(this._lastActiveGraphics,e),this._startUpdating(e,t)}static create(e){const{addAttachmentsCallback:t,applyEditsCallback:a,creationInfo:i,parent:r,startAt:n,viewModel:s}=e,o=new O({data:new _({creationInfo:i,parent:r,viewModel:s}),onCommit:async e=>{const{creationInfo:i}=e;if(!i)return;const r=e.pendingFeatures.toArray(),{layer:n}=i,s=n.capabilities?.editing.supportsGlobalId&&"globalIdField"in n,l=o._attachmentFileInfos;if(s){const e=N(r,n,l);return void await a(n,e,{globalIdUsed:!0})}const c=await a(n,{addFeatures:r});if(l.size>0){const e=c?.addFeatureResults??[];await t(n,z(r,e,n,l))}}});return o._set("steps",this._createWorkflowSteps(o,n)),o}_fadeExistingFeatures(e){if("effect"in e){const t=e.effect;return e.effect="saturate(0.6) opacity(0.8)",r((()=>e.effect=t))}const t=e.opacity;return e.opacity=.7,r((()=>e.opacity=t))}_highlight(e){const t=this.data.viewModel.view;"3d"===t?.type&&this._highlightHandles.set(e,t.highlight(e))}_removeHighlight(e){s(this._highlightHandles.get(e)),this._highlightHandles.delete(e)}async _startCreating(e){this.removeHandles(x);const{data:t}=this,{creationInfo:a}=t;if(!a)return;this.createFeatureState="create-new";const i=await A(t.viewModel.sketchViewModel,a,e);this.addHandles(i,x)}async _startUpdating(e,t){const{pendingFeatures:a}=this;a.includes(e)||a.add(e);const{creationInfo:i,viewModel:r}=this.data,{featureFormViewModel:o,layerInfos:l,sketchViewModel:d,view:u}=r;if(!u||!i)return;const p=i.layer,h=k(l,p),f=h?.formTemplate,m=u.spatialReference;if(o.set({arcadeEditType:"INSERT",feature:e,formTemplate:f,spatialReference:m,map:u.map}),this._removeHighlight(e),await H(e,t,"2d"===u.type?u.scale:null),this.removeHandles(x),s(this._featureFormHandle),"2d"===u.type){const a=c((()=>u.scale),(a=>this._updateGraphicDebounced(e,t,a)));this.addHandles(a,x)}return this._featureFormHandle=n([o.on("value-change",(async()=>{e.attributes=o.getValues(),await H(e,t,"2d"===u.type?u.scale:null)})),d.on(["update","undo","redo"],(e=>{("undo"===e.type||"redo"===e.type||"update"===e.type&&null!=e.toolEventInfo&&C(e.toolEventInfo.type))&&o.notifyFeatureGeometryChanged()}))]),this.createFeatureState="update-pending",this._visualVariableAttributes=V(e),w(p)?void 0:S({graphic:e,sketchViewModel:d,sourceLayer:p,visualVariables:this._visualVariableAttributes,webStyleCache:t})}static _createWorkflowSteps(e,a="awaiting-feature-creation-info"){const{data:n}=e,o=j(["awaiting-feature-creation-info","creating-features","adding-attachment","editing-attachment"],a,{"awaiting-feature-creation-info":()=>({id:"awaiting-feature-creation-info",async setUp(){const{creationInfo:t,viewModel:a}=n,{view:i}=a;i&&(M(t)?e.addHandles(await b({view:i,data:n,next:()=>e.next(),cancel:()=>a.cancelWorkflow({warnIfNoWorkflow:!1})}),this.id):(n.parent&&t&&(e.addHandles(a.lockFeatureTemplatesViewModel(),this.id),a.featureTemplatesViewModel.layers=[t.layer]),e.addHandles(a.featureTemplatesViewModel.on("select",(({item:t})=>{t&&(n.creationInfo={...n.creationInfo,layer:t.layer,template:t.template},e.next())})),this.id)))},async tearDown(){e.removeHandles([this.id,x])}}),"creating-features":()=>({id:"creating-features",async setUp(){if(e.hasHandles(this.id))return;const{creationInfo:a,viewModel:o}=n,{view:l}=o;if(!l)return;const d=new Map,u=[],p=[];e._lastActiveGraphics=[],e._featureFormHandle=s(e._featureFormHandle),e._visualVariableAttributes={rotation:null,size:null},G(o.attachmentsViewModel),u.push(c((()=>o.attachmentsViewModel.mode),(t=>{switch(t){case"add":e.go("adding-attachment");break;case"edit":e.go("editing-attachment")}})));const h=D(l);u.push(h);const f=w(a?.layer);try{if(!f){const t=O._configureSketchViewModel(e,d);u.push(t.beforeCommit),p.push(t.afterCommit)}if(M(a)&&p.push(r((()=>o.cancelWorkflow({warnIfNoWorkflow:!1})))),f){const i=a?.initialFeature??new t({attributes:{...a?.template?.prototype.attributes,...a?.attributeOverrides},sourceLayer:a?.layer});await e._startUpdating(i,d)}else a?.initialFeature&&(o.sketchViewModel.layer.add(a.initialFeature),await e._startUpdating(a.initialFeature,d)),await e._startCreating(d)}finally{h.remove()}const m=r((()=>e.pendingFeatures.drain((e=>n.viewModel.sketchViewModel.layer.remove(e)))));u.push(e._featureFormHandle),e.addHandles(u.filter(i),e._handleKeys.beforeCommit),e.addHandles([...u,...p].filter(i),this.id),e.addHandles(m,W)},async tearDown(t){const{viewModel:a}=n;if(t.canceled){const{pendingFeatures:t}=e;t.drain((e=>a.sketchViewModel.layer.remove(e))),e.removeHandles([this.id,W,T,x]),a.attachmentsViewModel.fileInfos.removeAll(),e._attachmentFileInfos.clear()}}}),"adding-attachment":()=>({id:"adding-attachment",parent:"creating-features",async setUp(){},async tearDown(){const{attachmentsViewModel:t}=n.viewModel,{graphic:a,fileInfos:i}=t;e._attachmentFileInfos.set(a,i.toArray()),t.mode="view"}}),"editing-attachment":()=>({id:"editing-attachment",parent:"creating-features",async setUp(){},async tearDown(){const{attachmentsViewModel:t}=n.viewModel,{graphic:a,fileInfos:i}=t;e._attachmentFileInfos.set(a,i.toArray()),t.mode="view"}})});return U(n,o)}static _configureSketchViewModel(e,t){const{data:i}=e,{viewModel:s}=i,{view:o}=s,l=s.sketchViewModel;let c=null;const u=[];if(!o)return{beforeCommit:r(),afterCommit:r()};const p=l.updateOnGraphicClick;return l.updateOnGraphicClick=!1,"2d"===o.type&&i.creationInfo&&u.push(e._fadeExistingFeatures(i.creationInfo.layer)),u.push(l.on("create",(async a=>{if("cancel"===a.state){if(e._preventDefaultActionOnCancel)return void(e._preventDefaultActionOnCancel=!1);if(e._lastActiveGraphics.length<1)return e._startCreating(t);const a=e._lastActiveGraphics.pop();return e._startUpdating(a,t)}if("complete"===a.state&&a.graphic)return e._startUpdating(a.graphic,t)})),l.on("update",(async a=>{const{viewModel:r}=i,{attachmentsViewModel:n,featureFormViewModel:s}=r,l=a.graphics[0];if("complete"===a.state){if(l!==c&&(e._lastActiveGraphics.push(l),e._highlight(l)),c=null,e.numPendingFeatures===i.creationInfo?.maxFeatures){const a=e._lastActiveGraphics.pop();return e._startUpdating(a,t)}if("add"!==n.mode&&"edit"!==n.mode||r.activeWorkflow?.previous(),a.aborted&&e._preventDefaultActionOnCancel)return void(e._preventDefaultActionOnCancel=!1);e.addHandles([D(o),o.on("click",(e=>e.preventDefault()))],T),await d((()=>!s.updating)),e.removeHandles(T),e._startCreating(t)}if("start"===a.state){e._removeHighlight(l),"add"!==n.mode&&"edit"!==n.mode||r.activeWorkflow?.previous(),n.fileInfos.removeAll(),n.graphic=l,n.mode="view";(e._attachmentFileInfos.get(l)||[]).forEach((({file:e,form:t})=>n.addFile(e,t)))}const u=e._visualVariableAttributes;await E(o,l,a,u,t);const p=l.attributes,{rotation:h,size:f}=u;if(null!=h){const{field:e}=h;s.setValue(e,p[e])}if(null!=f){const{field:e}=f;s.setValue(e,p[e])}})),l.on("delete",(async t=>{const i=t.graphics[0];e.pendingFeatures.remove(i),a(e._lastActiveGraphics,i),c=i})),o.on("immediate-click",(async a=>{if(M(i.creationInfo))return;const{results:r}=await o.hitTest(a,{include:l.layer}),n=r.find((e=>"graphic"===e.type));if(!n)return;const s=n.graphic;if("transform"===l.activeTool||"reshape"===l.activeTool){if(l.updateGraphics.at(0)===s)return;await e.updatePendingFeature(s,t)}})),r((()=>{e._preventDefaultActionOnCancel=!0,l.cancel()})),L(l,i)),{beforeCommit:n(u),afterCommit:r((()=>{l.updateOnGraphicClick=p}))}}};function L(e,t){let a=null;const i=()=>e.snappingOptions.featureSources,s=()=>(a=new v({layer:e.layer}),i().add(a),a),l=()=>{null!=a&&(i().remove(a),a=o(a))};return n([c((()=>{const e=t.creationInfo?.layer,a=i().find((t=>t.layer===e));return{hasFeatureLayerSource:!!a,enabled:a?.enabled??!1}}),(({hasFeatureLayerSource:e,enabled:t})=>{if(!e)return l();a??=s(),a.enabled=t}),u),r(l)])}function z(e,t,a,i){const r=[];return t.forEach(((t,n)=>{if(!t.error){const s=e[n],o=i.get(s)||[];s.attributes[a.objectIdField]=t.objectId,o.forEach((({form:e})=>r.push({feature:s,attachment:e})))}})),r}function N(e,t,a){const i=[],r=t.globalIdField;return e.forEach(((t,n)=>{e[n].attributes[r]??=p(),(a?.get(t)||[]).forEach((({file:e})=>i.push({feature:t,attachment:{globalId:p(),data:e}})))})),i.length?{addFeatures:e,addAttachments:i}:{addFeatures:e}}e([h()],R.prototype,"hasPendingEdits",null),e([h()],R.prototype,"_getDrawMeshHelpMessage",void 0),e([h()],R.prototype,"helpMessage",null),e([h()],R.prototype,"parent",null),e([h()],R.prototype,"keyboardCancellationEnabled",null),e([h()],R.prototype,"reliesOnOwnerAdminPrivileges",null),e([h()],R.prototype,"shouldShowAttachments",null),e([h()],R.prototype,"shouldAllowAttachmentEditing",null),R=O=e([f("esri.widgets.Editor.CreateFeaturesWorkflow")],R);const K=R;export{K as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import{remove as a,isSome as i}from"../../core/arrayUtils.js";import{makeHandle as r,handlesGroup as s}from"../../core/handleUtils.js";import{removeMaybe as n,destroyMaybe as o}from"../../core/maybe.js";import{debounce as l}from"../../core/promiseUtils.js";import{watch as c,whenOnce as d,syncAndInitial as u}from"../../core/reactiveUtils.js";import{generateBracedUUID as h}from"../../core/uuid.js";import{property as p}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/has.js";import{subclass as f}from"../../core/accessorSupport/decorators/subclass.js";import{getEffectiveLayerCapabilities as m,getEffectiveEditingEnabled as g,isTable as w}from"../../layers/support/layerUtils.js";import{getDrawHelpMessage as y}from"../../views/draw/support/helpMessageUtils.js";import v from"../../views/interactive/snapping/FeatureSnappingLayerSource.js";import{CreateFeaturesWorkflowData as _}from"./CreateFeaturesWorkflowData.js";import{isModelUpload as b,handleModelUpload as F}from"./modelUploadUtils.js";import M from"./Workflow.js";import{shouldShowAttachmentsForCreateWorkflow as I,startCreatingNewFeature as A,findLayerInfo as k,updateGraphicSymbolWhenRequired as C,isTerminalUpdateEventType as H,getVisualVariableAttributes as V,startUpdatingFeature as S,createWorkflowSteps as U,avoidFeatureTemplateSelectionWithOnlyOneItem as j,showProgressCursor as D,visualVariableInteractiveUpdate as E,prepareAttachmentsForCreateWorkflow as G}from"./workflowUtils.js";var O;const T=Symbol(),P=Symbol(),W=Symbol(),x=Symbol();let N=O=class extends M{constructor(e){super(e),this.type="create-features",this.createFeatureState="create-new",this.isNested=!1,this._getDrawMeshHelpMessage=void 0,this._featureFormHandle=null,this._visualVariableAttributes={rotation:null,size:null},this._attachmentFileInfos=new Map,this._highlightHandles=new Map,this._preventDefaultActionOnCancel=!1,this._lastActiveGraphics=[],this._isActive=!0,this._updateGraphicDebounced=l(((e,t,a)=>C(e,t,a)))}initialize(){this.isNested&&(this._isActive=!1)}get hasPendingEdits(){if(this.numPendingFeatures)return!0;const{data:e}=this,{upload:t}=e;return!(!t||"pending"!==t.state&&"success"!==t.state)||!!e.creationInfo?.geometryToPlace}get helpMessage(){const{creationInfo:e,viewModel:t}=this.data;if("creating-features"!==this.stepId||!e)return;const a=e.layer.geometryType,i=t.sketchViewModel.createGraphic;if("mesh"===a){this._getDrawMeshHelpMessage||import("../../views/draw/support/helpMessageUtils3d.js").then((e=>{this._getDrawMeshHelpMessage=e.getDrawMeshHelpMessage}));const{view:e}=t;return"3d"===e?.type?this._getDrawMeshHelpMessage?.(i,e):void 0}return y(a,i?.geometry)}get numPendingFeatures(){return this.pendingFeatures.length}get parent(){return this.data.parent}get pendingFeatures(){return this.data.pendingFeatures}get keyboardCancellationEnabled(){return 0===this.numPendingFeatures}get reliesOnOwnerAdminPrivileges(){const{creationInfo:e}=this.data;if(!e)return!1;const{layer:t}=e,a=t.capabilities?.operations.supportsAdd,i=m(t)?.operations.supportsAdd;return g(t)&&!t.editingEnabled||!!i&&!a}get shouldShowAttachments(){return!(!this.data.creationInfo||!this.data.viewModel)&&I(this.data)}get shouldAllowAttachmentEditing(){return this.shouldShowAttachments}get test(){return{addAttachment:(e,t)=>{this._attachmentFileInfos.set(e,t)}}}async enter(){this._isActive=!0;const{featureFormViewModel:e}=this.data.viewModel,t=e.relatedRecordCallbacks;e.relatedRecordCallbacks=null,this.addHandles(r((()=>{e.relatedRecordCallbacks=t})),P),"awaiting-feature-creation-info"!==this.stepId&&this._setUpCreatingFeaturesStep()}exit(){this._isActive=!1,this.removeHandles([P,x])}async updatePendingFeature(e,t){return this._preventDefaultActionOnCancel=!0,this.data.viewModel.sketchViewModel.cancel(),a(this._lastActiveGraphics,e),this._startUpdating(e,t)}async start(){return await super.start(),w(this.data.creationInfo?.layer)?null:{enter:async()=>{},exit:async()=>{}}}static create(e){const{addAttachmentsCallback:t,applyEditsCallback:a,isNested:i,creationInfo:r,parent:s,startAt:n,viewModel:o}=e,l=new O({data:new _({creationInfo:r,parent:s,viewModel:o}),isNested:i,onCommit:async e=>{const{creationInfo:i}=e;if(!i)return;const r=e.pendingFeatures.toArray(),{layer:s}=i,n=s.capabilities?.editing.supportsGlobalId&&"globalIdField"in s,o=l._attachmentFileInfos;if(n){const e=z(r,s,o);return void await a(s,e,{globalIdUsed:!0})}const c=await a(s,{addFeatures:r});if(o.size>0){const e=c?.addFeatureResults??[];await t(s,L(r,e,s,o))}}});return l._set("steps",this._createWorkflowSteps(l,n)),l}_fadeExistingFeatures(e){if("effect"in e){const t=e.effect;return e.effect="saturate(0.6) opacity(0.8)",r((()=>e.effect=t))}const t=e.opacity;return e.opacity=.7,r((()=>e.opacity=t))}_highlight(e){const t=this.data.viewModel.view;"3d"===t?.type&&this._highlightHandles.set(e,t.highlight(e))}_removeHighlight(e){n(this._highlightHandles.get(e)),this._highlightHandles.delete(e)}async _startCreating(e){this.removeHandles(W);const{data:t}=this,{creationInfo:a}=t;if(!a)return;this.createFeatureState="create-new";const i=await A(t.viewModel.sketchViewModel,a,e);this.addHandles(i,W)}async _startUpdating(e,t){const{pendingFeatures:a}=this;a.includes(e)||a.add(e);const{creationInfo:i,viewModel:r}=this.data,{attachmentsViewModel:o,editableItems:l,featureFormViewModel:d,layerInfos:u,sketchViewModel:h,view:p}=r;if(!p||!i)return;const f=i.layer,m=k(u,f),g=m?.formTemplate,y=p.spatialReference;this.data.editableItem=l.find((e=>e.layer===f)),d.set({arcadeEditType:"INSERT",feature:e,formTemplate:g,spatialReference:y,map:p.map}),"add"!==o.mode&&"edit"!==o.mode||r.activeWorkflow?.previous(),o.graphic=e,o.fileInfos.removeAll(),o.mode="view";if((this._attachmentFileInfos.get(e)||[]).forEach((({file:e,form:t})=>o.addFile(e,t))),this._removeHighlight(e),await C(e,t,"2d"===p.type?p.scale:null),this.removeHandles(W),n(this._featureFormHandle),"2d"===p.type){const a=c((()=>p.scale),(a=>this._updateGraphicDebounced(e,t,a)));this.addHandles(a,W)}return this._featureFormHandle=s([d.on("value-change",(async()=>{e.attributes=d.getValues(),await C(e,t,"2d"===p.type?p.scale:null)})),h.on(["update","undo","redo"],(e=>{("undo"===e.type||"redo"===e.type||"update"===e.type&&null!=e.toolEventInfo&&H(e.toolEventInfo.type))&&d.notifyFeatureGeometryChanged()}))]),this.createFeatureState="update-pending",this._visualVariableAttributes=V(e),w(f)?void 0:S({graphic:e,sketchViewModel:h,sourceLayer:f,visualVariables:this._visualVariableAttributes,webStyleCache:t})}static _createWorkflowSteps(e,t="awaiting-feature-creation-info"){const{data:a}=e,i=U(["awaiting-feature-creation-info","creating-features","adding-attachment","editing-attachment"],t,{"awaiting-feature-creation-info":()=>({id:"awaiting-feature-creation-info",async setUp(){const{creationInfo:t,viewModel:i}=a,{view:r}=i;r&&(b(t)?e.addHandles(await F({view:r,data:a,next:()=>e.next(),cancel:()=>i.cancelWorkflow({warnIfNoWorkflow:!1})}),this.id):(a.parent&&t&&(e.addHandles(i.lockFeatureTemplatesViewModel(),this.id),i.featureTemplatesViewModel.layers=[t.layer]),e.addHandles(i.featureTemplatesViewModel.on("select",(({item:t})=>{t&&(a.creationInfo={...a.creationInfo,layer:t.layer,template:t.template},e.next())})),this.id)))},async tearDown(){e.removeHandles([this.id,W])}}),"creating-features":()=>({id:"creating-features",async setUp(){e._isActive&&await e._setUpCreatingFeaturesStep()},async tearDown(t){const{viewModel:i}=a;t.canceled&&(e.removeHandles([x,T,W]),i.attachmentsViewModel.fileInfos.removeAll(),e._attachmentFileInfos.clear())}}),"adding-attachment":()=>({id:"adding-attachment",parent:"creating-features",async setUp(){},async tearDown(){const{attachmentsViewModel:t}=a.viewModel,{graphic:i,fileInfos:r}=t;e._attachmentFileInfos.set(i,r.toArray()),t.mode="view"}}),"editing-attachment":()=>({id:"editing-attachment",parent:"creating-features",async setUp(){},async tearDown(){const{attachmentsViewModel:t}=a.viewModel,{graphic:i,fileInfos:r}=t;e._attachmentFileInfos.set(i,r.toArray()),t.mode="view"}})});return j(a,i)}static _configureSketchViewModel(e,t){const{data:i}=e,{viewModel:n}=i,{view:o}=n,l=n.sketchViewModel;let c=null;const u=[];if(!o)return{beforeCommit:r(),afterCommit:r()};const h=l.updateOnGraphicClick;return l.updateOnGraphicClick=!1,"2d"===o.type&&i.creationInfo&&u.push(e._fadeExistingFeatures(i.creationInfo.layer)),u.push(l.on("create",(async a=>{if("cancel"===a.state){if(e._preventDefaultActionOnCancel)return void(e._preventDefaultActionOnCancel=!1);if(e._lastActiveGraphics.length<1)return e._startCreating(t);const a=e._lastActiveGraphics.pop();return e._startUpdating(a,t)}if("complete"===a.state&&a.graphic)return e._startUpdating(a.graphic,t)})),l.on("update",(async a=>{const{viewModel:r}=i,{attachmentsViewModel:s,featureFormViewModel:n}=r,l=a.graphics[0];if("complete"===a.state){if(l!==c&&(e._lastActiveGraphics.push(l),e._highlight(l)),c=null,e.numPendingFeatures===i.creationInfo?.maxFeatures){const a=e._lastActiveGraphics.pop();return e._startUpdating(a,t)}if("add"!==s.mode&&"edit"!==s.mode||r.activeWorkflow?.previous(),a.aborted&&e._preventDefaultActionOnCancel)return void(e._preventDefaultActionOnCancel=!1);e.addHandles([D(o),o.on("click",(e=>e.preventDefault()))],T),await d((()=>!n.updating)),e.removeHandles(T),e._startCreating(t)}"start"===a.state&&e._removeHighlight(l);const u=e._visualVariableAttributes;await E(o,l,a,u,t);const h=l.attributes,{rotation:p,size:f}=u;if(null!=p){const{field:e}=p;n.setValue(e,h[e])}if(null!=f){const{field:e}=f;n.setValue(e,h[e])}})),l.on("delete",(async t=>{const i=t.graphics[0];e.pendingFeatures.remove(i),a(e._lastActiveGraphics,i),c=i})),o.on("immediate-click",(async a=>{if(b(i.creationInfo))return;const{results:r}=await o.hitTest(a,{include:l.layer}),s=r.find((e=>"graphic"===e.type&&e.graphic.sourceLayer===i.creationInfo?.layer));if(!s)return;const n=s.graphic;if("transform"===l.activeTool||"reshape"===l.activeTool){if(l.updateGraphics.at(0)===n)return;await e.updatePendingFeature(n,t)}})),r((()=>{e._preventDefaultActionOnCancel=!0,l.cancel()})),R(l,i)),{beforeCommit:s(u),afterCommit:r((()=>{l.updateOnGraphicClick=h}))}}async _setUpCreatingFeaturesStep(){if(this.hasHandles(x))return;const{creationInfo:e,viewModel:a}=this.data,{attachmentsViewModel:s,view:o}=a;if(!o)return;const l=new Map,d=[],u=[];this._lastActiveGraphics=[],this._featureFormHandle=n(this._featureFormHandle),this._visualVariableAttributes={rotation:null,size:null},G(s),d.push(c((()=>s.mode),(e=>{switch(e){case"add":this.go("adding-attachment");break;case"edit":this.go("editing-attachment")}})));const h=D(o);d.push(h);const p=w(e?.layer);try{if(b(e)&&u.push(r((()=>a.cancelWorkflow({warnIfNoWorkflow:!1})))),p){const a=e?.initialFeature??new t({attributes:{...e?.template?.prototype.attributes,...e?.attributeOverrides},sourceLayer:e?.layer});await this._startUpdating(a,l)}else{const t=O._configureSketchViewModel(this,l);d.push(t.beforeCommit),u.push(t.afterCommit),e?.initialFeature&&(a.sketchViewModel.layer.add(e.initialFeature),await this._startUpdating(e.initialFeature,l)),await this._startCreating(l)}}finally{h.remove()}const f=r((()=>this.pendingFeatures.drain((e=>a.sketchViewModel.layer.remove(e)))));d.push(this._featureFormHandle),this.addHandles(d.filter(i),this._handleKeys.beforeCommit),this.addHandles([r((()=>s.fileInfos.removeAll())),...d,...u,f].filter(i),x)}};function R(e,t){let a=null;const i=()=>e.snappingOptions.featureSources,n=()=>(a=new v({layer:e.layer}),i().add(a),a),l=()=>{null!=a&&(i().remove(a),a=o(a))};return s([c((()=>{const e=t.creationInfo?.layer,a=i().find((t=>t.layer===e));return{hasFeatureLayerSource:!!a,enabled:a?.enabled??!1}}),(({hasFeatureLayerSource:e,enabled:t})=>{if(!e)return l();a??=n(),a.enabled=t}),u),r(l)])}function L(e,t,a,i){const r=[];return t.forEach(((t,s)=>{if(!t.error){const n=e[s],o=i.get(n)||[];n.attributes[a.objectIdField]=t.objectId,o.forEach((({form:e})=>r.push({feature:n,attachment:e})))}})),r}function z(e,t,a){const i=[],r=t.globalIdField;return e.forEach(((t,s)=>{e[s].attributes[r]??=h(),(a?.get(t)||[]).forEach((({file:e})=>i.push({feature:t,attachment:{globalId:h(),data:e}})))})),i.length?{addFeatures:e,addAttachments:i}:{addFeatures:e}}e([p({constructOnly:!0})],N.prototype,"isNested",void 0),e([p()],N.prototype,"hasPendingEdits",null),e([p()],N.prototype,"_getDrawMeshHelpMessage",void 0),e([p()],N.prototype,"helpMessage",null),e([p()],N.prototype,"parent",null),e([p()],N.prototype,"keyboardCancellationEnabled",null),e([p()],N.prototype,"reliesOnOwnerAdminPrivileges",null),e([p()],N.prototype,"shouldShowAttachments",null),e([p()],N.prototype,"shouldAllowAttachmentEditing",null),N=O=e([f("esri.widgets.Editor.CreateFeaturesWorkflow")],N);const K=N;export{K 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 o}from"../../chunks/tslib.es6.js";import r from"../../core/Accessor.js";import e from"../../core/Collection.js";import{property as t}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";let p=class extends r{constructor(o){super(o),this.creationInfo=null,this.parent=null,this.pendingFeatures=new e,this.viewModel=null,this.upload=null}};o([t()],p.prototype,"creationInfo",void 0),o([t()],p.prototype,"parent",void 0),o([t()],p.prototype,"viewModel",void 0),o([t()],p.prototype,"upload",void 0),p=o([s("esri.widgets.Editor.CreateFeaturesWorkflowData")],p);export{p as CreateFeaturesWorkflowData};
5
+ import{_ as o}from"../../chunks/tslib.es6.js";import r from"../../core/Accessor.js";import e from"../../core/Collection.js";import{property as t}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";let p=class extends r{constructor(o){super(o),this.creationInfo=null,this.editableItem=null,this.parent=null,this.pendingFeatures=new e,this.viewModel=null,this.upload=null}};o([t()],p.prototype,"creationInfo",void 0),o([t()],p.prototype,"editableItem",void 0),o([t()],p.prototype,"parent",void 0),o([t()],p.prototype,"viewModel",void 0),o([t()],p.prototype,"upload",void 0),p=o([s("esri.widgets.Editor.CreateFeaturesWorkflowData")],p);export{p as CreateFeaturesWorkflowData};
@@ -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{createTask as t}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{makeHandle as o}from"../../core/handleUtils.js";import n from"../../core/Logger.js";import{abortMaybe as l}from"../../core/maybe.js";import{throwIfAborted as d}from"../../core/promiseUtils.js";import{watch as p,on as c,when as u,whenOnce as h,syncAndInitial as w,initial as f}from"../../core/reactiveUtils.js";import{property as m}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as y}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as k}from"../../core/support/UpdatingHandles.js";import v from"../../layers/GraphicsLayer.js";import{isEditableLayer as g}from"../../layers/support/editableLayers.js";import{isTable as W,getOwningPortalUrl as _,getEffectiveLayerCapabilities as b,isFeatureLayer as F}from"../../layers/support/layerUtils.js";import{parseKnownArcGISOnlineDomain as C}from"../../portal/support/urlUtils.js";import E from"../Attachments/AttachmentsViewModel.js";import I from"./CreateFeaturesWorkflow.js";import U from"./CreateWorkflow.js";import{workflowDeprecation as A}from"./deprecationUtils.js";import T from"./UpdateWorkflow.js";import{whenEditorLayerView as V}from"./workflowUtils.js";import{formTemplateHasInvalidFields as M}from"../FeatureForm/featureFormUtils.js";import O from"../FeatureForm/FeatureFormViewModel.js";import j from"../FeatureTemplates/FeatureTemplatesViewModel.js";import L from"../Sketch/SketchViewModel.js";import S from"../Spinner/SpinnerViewModel.js";const P="esri.widgets.Editor.EditorViewModel",D=n.getLogger(P),x=["create","create-features","update"];function G(e,t,a){D.error(new i(e,t,a))}function H(e,t){return e?e.find((e=>e.layer===t)):void 0}let N=class extends s.EventedAccessor{constructor(e){super(e),this._editableItems=new a,this._sketchGraphicsLayer=new v({listMode:"hide",internal:!0}),this._updateEditableItemsTask=null,this._updatingHandles=new k,this._featureTemplatesViewModelLocked=!1,this._syncFeatureTemplatesOnNextUnlock=!1,this.activeWorkflow=null,this._activityQueue=[],this.failures=[],this.hideTemplatesForInactiveLayers=!1,this.attachmentsViewModel=new E({capabilities:{editing:!0}}),this.featureFormViewModel=new O,this.featureTemplatesViewModel=new j({disabledItemFunction:({layer:e})=>this._itemIsSuspended(e)}),this.sketchViewModel=new L({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:e}=this;if(e.submit(),!e.submittable)return;const t=e.getValues();e.validateContingencyConstraints(t,{includeIncompleteViolations:!0}).length>0||await(this.activeWorkflow?.save())},this.selectFeature=(e,t=!1)=>{const a=this.activeWorkflow;this._candidateCommitted||"update"!==a?.type||(a.data.rootFeature=e,t&&(a.next(),this._candidateCommitted=!0))}}initialize(){this.addHandles([p((()=>{const e=this.view?.map?.editableLayers.filter((({parent:e,visible:t})=>e&&"visible"in e?t&&e.visible:t)),t=this.view?.allLayerViews,a=t?.filter((t=>!!e?.includes(t.layer)&&!t.suspended));return[e,a,this.layerInfos,this.allowedWorkflows,this.hideTemplatesForInactiveLayers]}),(()=>this._updateEditableItems()),w),c((()=>this.activeWorkflow),"cancel",(()=>this.emit("workflow-cancel"))),c((()=>this.activeWorkflow),"commit",(()=>this.emit("workflow-commit"))),c((()=>this.activeWorkflow),"complete",(()=>{this.emit("workflow-commit"),this._set("activeWorkflow",null)})),u((()=>this.view?.map),(e=>e.add(this._sketchGraphicsLayer)),f),p((()=>this.view?.timeZone),(e=>this.featureFormViewModel.timeZone=e)),p((()=>this._editableItems.toArray()),(()=>{const{activeWorkflow:e}=this;if(this.syncFeatureTemplates(),!e)return;const{stepId:t}=e;"create"!==e.type?"update"===e.type&&("awaiting-feature-to-update"===t&&!this.canUpdate||"awaiting-update-feature-candidate"===t&&!e.data.candidates.some((e=>{const t=this._editableItems.find((t=>t.layer===e.layer));return t&&t.supports.includes("update")})))&&this._cancelWorkflow():"awaiting-feature-creation-info"!==t||this.canCreate||this._cancelWorkflow()})),p((()=>this.page),((e,t)=>{const a=[...this.pageStack];if(-1===a.indexOf(e))a.push(e);else for(;a.length&&a.at(-1)!==e;)a.pop();this.pageStack=a}),w),u((()=>"awaiting-update-feature-candidate"===this.state),(()=>this._candidateCommitted=!1)),c((()=>this.featureTemplatesViewModel),"select",(async({item:e,oldItem:t})=>{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(t,{emit:!1})}}if(!e)return;const r={layer:e.layer,template:e.template};if(e.supportsUpload)return this.featureTemplatesViewModel.select(t,{emit:!1}),this.startCreateFeaturesWorkflow(r);this.useDeprecatedCreateWorkflow?this.startCreateWorkflowAtFeatureCreation(r):this.startCreateFeaturesWorkflowAtFeatureCreation(r)})),c((()=>this.view),"key-down",(e=>{"Escape"===e.key&&this.activeWorkflow?.keyboardCancellationEnabled&&this.back()}))])}destroy(){this._cancelWorkflow({warnIfNoWorkflow:!1}).then((()=>{this.view?.map?.remove(this._sketchGraphicsLayer),this.view=null})),this._updateEditableItemsTask=l(this._updateEditableItemsTask),this._updatingHandles.destroy()}get allowedWorkflows(){return this._get("allowedWorkflows")}set allowedWorkflows(e){e&&0!==e.length||(e=[...x]),this._set("allowedWorkflows",e)}get canCreate(){return this._editableItems.some((e=>e.supports.includes("create")&&!e.suspended))}get canUpdate(){return this._editableItems.some((({attachmentsOnUpdateEnabled:e,layer:t,supports:a,suspended:r})=>{const i=!r&&(a.includes("update")||a.includes("delete")||e),s=t.parent,o=!(s&&"visible"in s)||!!s.visible;return t.visible&&o&&i}))}get editableItems(){return this._editableItems}get labelOptions(){return this.sketchViewModel.labelOptions}set labelOptions(e){this.sketchViewModel.labelOptions=e}set layerInfos(e){e?.some((e=>("allowAttachments"in e&&r(D,"Property: layerInfo.allowAttachments",{replacement:"layerInfo.attachmentsOnCreateEnabled or layerInfo.attachmentsOnUpdateEnabled",version:"4.26"}),!0))),this._set("layerInfos",e)}get snappingOptions(){return this.sketchViewModel.snappingOptions}set snappingOptions(e){this.sketchViewModel.snappingOptions=e}get state(){if(!this.view?.ready)return"disabled";const e=this.attachmentsViewModel.mode;if("add"===e)return"adding-attachment";if("edit"===e)return"editing-attachment";const{activeWorkflow:t}=this;return t?"update"===t.type&&t.activeWorkflow?.stepId?t.activeWorkflow.stepId:t.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(e){this.sketchViewModel.tooltipOptions=e}set view(e){this.sketchViewModel.view=e,this.spinnerViewModel.view=e,this._set("view",e)}get page(){const{activeWorkflow:e,state:t}=this;if("update"===e?.type&&"awaiting-feature-to-update"===e.stepId)return"ready";if("create-features"===e?.type&&0===e.numPendingFeatures){const t=e.data.upload;if(t)return"default"===t.state?"ready":"creating-features-upload-details"}return t??"disabled"}get featureFormDisabled(){const{activeWorkflow:e}=this;return"update"===e?.type&&!1===e.activeEditableItem?.attributeUpdatesEnabled}get canGoBack(){return null!=this.activeWorkflow&&!this.syncing}get shouldShowDeleteButton(){const{activeWorkflow:e}=this;return!!e&&"update"===e.type&&!!e.activeEditableItem?.supports.includes("delete")}get hasPendingEdits(){return this.activeWorkflow?.hasPendingEdits??!1}async startCreateWorkflowAtFeatureTypeSelection(){if(A(D,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),await h((()=>!this.updating)),!this.canCreate)return void G("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createCreateWorkflow();await e.start(),this._set("activeWorkflow",e)}async startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.startCreateFeaturesWorkflow()}async startCreateWorkflowAtFeatureCreation(e){if(A(D,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),await h((()=>!this.updating)),!this.canCreate)return void G("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createCreateWorkflow("awaiting-feature-to-create");t.data.creationInfo=e,await t.start(),this._set("activeWorkflow",t)}async startCreateFeaturesWorkflowAtFeatureCreation(e){return this.startCreateFeaturesWorkflow(e,"creating-features")}async startCreateFeaturesWorkflow(e,t="awaiting-feature-creation-info"){if(await h((()=>!this.updating)),!this.canCreate)throw new i("editing:unsupported-workflow","Creating features is unsupported or disabled.");await this._cancelWorkflow();const a=this._createCreateFeaturesWorkflow(e,t);await a.start(),this._set("activeWorkflow",a)}async startCreateWorkflowAtFeatureEdit(e){if(A(D,"startCreateWorkflowAtFeatureEdit"),await h((()=>!this.updating)),!this.canCreate)return void G("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createCreateWorkflow("editing-new-feature");t.data.edits.feature=e,await t.start(),this._set("activeWorkflow",t)}async startCreateFeaturesWorkflowAtFeatureEdit(e){await h((()=>!this.updating));const{initialFeature:t}=e,a=t.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:t,layer:r.layer,maxFeatures:1},"creating-features");await s.start(),this._set("activeWorkflow",s)}async startUpdateWorkflowAtFeatureSelection(){if(await h((()=>!this.updating)),!this.canUpdate)return void G("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createUpdateWorkflow();await e.start(),this._set("activeWorkflow",e)}async startUpdateWorkflowAtMultipleFeatureSelection(e){if(await h((()=>!this.updating)),!this.canUpdate)return void G("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createUpdateWorkflow("awaiting-update-feature-candidate");t.data.candidates=e,await t.start(),this._set("activeWorkflow",t)}async startUpdateWorkflowAtFeatureEdit(e){if(await h((()=>!this.updating)),!this.canUpdate)return void G("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createUpdateWorkflow("editing-existing-feature");t.data.rootFeature=e,await t.start(),this._set("activeWorkflow",t)}async deleteFeatureFromWorkflow(){const{activeWorkflow:e}=this;e&&"update"===e.type?await e.deleteActiveFeature():G("editing:unsupported-workflow","Deleting requires an active update workflow.")}async cancelWorkflow(e){return this._cancelWorkflow({warnIfNoWorkflow:!0,...e})}findEditableItemForLayer(e){const t="subtype-sublayer"===e.type?e.parent:e;return this._editableItems.find((e=>e.layer===t))}itemHasInvalidFormTemplate(e){return!!e&&(this.findEditableItemForLayer(e.layer)?.hasInvalidFormTemplate??!1)}itemHasUnsupportedFields(e){return!!e&&(this.findEditableItemForLayer(e.layer)?.hasUnsupportedFields??!1)}syncFeatureTemplates(){if(this._featureTemplatesViewModelLocked)return void(this._syncFeatureTemplatesOnNextUnlock=!0);const e=[];for(const{layer:t,supports:a}of this._editableItems)t.loaded&&a.includes("create")&&!W(t)&&e.push(t);this.featureTemplatesViewModel.layers=e}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()))}lockFeatureTemplatesViewModel(){return this._featureTemplatesViewModelLocked=!0,o((()=>{this._featureTemplatesViewModelLocked=!1,this._syncFeatureTemplatesOnNextUnlock&&(this.syncFeatureTemplates(),this._syncFeatureTemplatesOnNextUnlock=!1)}))}async _updateEditableItems(){l(this._updateEditableItemsTask);const e=t((async e=>{const t=this.view?.allLayerViews,r=this.view?.map,i=r?.editableLayers.toArray()??[],s=r?.allTables.toArray().filter(F)??[];await Promise.allSettled(s.map((e=>e.load())));const o=s.filter((e=>g(e))),n=[...i.reverse(),...o.reverse()].filter((e=>"mesh"!==e.geometryType||"3d"===this.view?.type));if(!t||!i)return;const l=[],p=[];for(const a of n){const r=t.find((e=>e.layer===a)),i=r?l:p,s=!!r?.suspended;if(!s||!this.hideTemplatesForInactiveLayers)if("subtype-group"===a.type){await a.loadAll(),d(e);for(let e=a.sublayers.length-1;e>=0;--e)i.push(this._makeEditableItemForLayer(a.sublayers.at(e),s))}else i.push(this._makeEditableItemForLayer(a,s))}if(e.aborted)return;const c=this._editableItems;this._editableItems=new a(l.concat(p)),c.destroy()}));this._updatingHandles.addPromise(e.promise),this._updateEditableItemsTask=e}async _cancelWorkflow(e){const t=this.activeWorkflow;if(!t)return void(e?.warnIfNoWorkflow&&G("editing:no-active-workflow","There is no active workflow to cancel."));if(!e||!1!==e.force)return this.emit("workflow-cancel"),this._set("activeWorkflow",null),void await t.cancel(e);await t.cancel(e),this._set("activeWorkflow",null)}_createCreateFeaturesWorkflow(e,t){return I.create({viewModel:this,creationInfo:e,startAt:t,applyEditsCallback:(e,t,a)=>this._applyEdits(e,t,a),addAttachmentsCallback:(e,t)=>this._addAttachments(e,t)})}_createCreateWorkflow(e){return U.create(this,e,((e,t,a)=>this._applyEdits(e,t,a)))}_createUpdateWorkflow(e){return T.create(this,e,((e,t)=>this._applyEdits(e,t)))}_addAttachments(e,t){const a=t.map((t=>this._addAttachment(e,t.feature,t.attachment)))??[];return Promise.all(a)}async _addAttachment(e,t,a){let r=null;if("geojson"===e.type||"scene"===e.type||"oriented-imagery"===e.type)throw new i("editor:attachments-not-supported","Adding attachments is not supported for this layer type");return await this._queueOperation((async()=>(r=await(e.addAttachment?.(t,a).catch((e=>{throw e?.error||e})))??null,r))),r}async _applyEdits(e,t,a){let r=null;const i=e.url?await _(e.url):null,s={returnServiceEditsOption:(!i||!C(i))&&!RegExp("/hosted/","i").test(e.url)?"original-and-current-features":void 0,...a};return await this._queueOperation((async()=>{const{view:a}=this;if(!a)return null;const i=await V(a,e).catch((()=>null));return r=await e.applyEdits(t,s),i&&await h((()=>!i.updating)),r})),r}_queueOperation(e){this._activityQueue.push(e),this.notifyChange("syncing");const t=(e,t)=>{const a=t.indexOf(e);a>-1&&t.splice(a,1)};return e().then((e=>{if(null!=e&&"error"in e&&null!=e.error)throw e.error;if(null!=e&&"addFeatureResults"in e){const{addFeatureResults:t,deleteFeatureResults:a,updateFeatureResults:r}=e,i=t.find((e=>!!e.error))||r.find((e=>!!e.error))||a.find((e=>!!e.error));if(i)throw i.error}return e})).catch((a=>{G("editing:operation-error","An error occurred.",{error:a});const r={error:a,retry:()=>(t(r,this.failures),this._queueOperation(e)),cancel:()=>{t(r,this.failures)}};this._set("failures",[...this.failures,r])})).then((()=>{t(e,this._activityQueue),this.notifyChange("syncing")}))}_makeEditableItemForLayer(e,t=!0){const a=b(e),r=a?.operations,i=H(this.layerInfos,e),s=M(e),o=s||t,{allowedWorkflows:n}=this,l=n.includes("create")||n.includes("create-features"),d=n.includes("update"),p=e=>!i||!1!==i.enabled&&!1!==i[e],c=l&&!!r?.supportsAdd&&p("addEnabled"),u=d&&!!r?.supportsUpdate&&p("updateEnabled"),h=!o&&d&&!!r?.supportsDelete&&p("deleteEnabled"),w=[];c&&w.push("create"),u&&w.push("update"),h&&w.push("delete");const f=u&&!o&&(!i||!1!==i.attributeUpdatesEnabled),m=u&&!o&&!!a?.editing?.supportsGeometryUpdate&&(!i||!1!==i.geometryUpdatesEnabled),y=!(!a?.data?.supportsAttachment||i&&!1===i.allowAttachments);return{layer:e,supports:w,suspended:t,attributeUpdatesEnabled:f,geometryUpdatesEnabled:m,hasAttachments:y,attachmentsOnCreateEnabled:y&&l&&(!i||!1!==i.attachmentsOnCreateEnabled),attachmentsOnUpdateEnabled:!o&&y&&(!i||!1!==i.attachmentsOnUpdateEnabled),hasInvalidFormTemplate:s,hasUnsupportedFields:!1}}_itemIsSuspended(e){return this.findEditableItemForLayer(e)?.suspended??!1}};e([m()],N.prototype,"_editableItems",void 0),e([m({readOnly:!0})],N.prototype,"activeWorkflow",void 0),e([m({readOnly:!0})],N.prototype,"_activityQueue",void 0),e([m({value:[...x]})],N.prototype,"allowedWorkflows",null),e([m({readOnly:!0})],N.prototype,"canCreate",null),e([m({readOnly:!0})],N.prototype,"canUpdate",null),e([m()],N.prototype,"editableItems",null),e([m({readOnly:!0})],N.prototype,"failures",void 0),e([m()],N.prototype,"hideTemplatesForInactiveLayers",void 0),e([m()],N.prototype,"attachmentsViewModel",void 0),e([m()],N.prototype,"featureFormViewModel",void 0),e([m()],N.prototype,"featureTemplatesViewModel",void 0),e([m()],N.prototype,"labelOptions",null),e([m()],N.prototype,"layerInfos",null),e([m()],N.prototype,"sketchViewModel",void 0),e([m()],N.prototype,"snappingOptions",null),e([m()],N.prototype,"spinnerViewModel",void 0),e([m()],N.prototype,"state",null),e([m({readOnly:!0})],N.prototype,"syncing",null),e([m()],N.prototype,"updating",null),e([m()],N.prototype,"tooltipOptions",null),e([m()],N.prototype,"view",null),e([m()],N.prototype,"pageStack",void 0),e([m()],N.prototype,"showDiscardEditsPrompt",void 0),e([m()],N.prototype,"_candidateCommitted",void 0),e([m()],N.prototype,"page",null),e([m()],N.prototype,"featureFormDisabled",null),e([m()],N.prototype,"canGoBack",null),e([m()],N.prototype,"shouldShowDeleteButton",null),e([m()],N.prototype,"hasPendingEdits",null),e([m()],N.prototype,"useDeprecatedCreateWorkflow",void 0),N=e([y(P)],N);const q=N;export{q as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import{createTask as t}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{makeHandle as o}from"../../core/handleUtils.js";import n from"../../core/Logger.js";import{abortMaybe as l}from"../../core/maybe.js";import{throwIfAborted as d}from"../../core/promiseUtils.js";import{watch as p,on as c,when as u,whenOnce as h,syncAndInitial as w,initial as f}from"../../core/reactiveUtils.js";import{property as m}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as y}from"../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as k}from"../../core/support/UpdatingHandles.js";import v from"../../layers/GraphicsLayer.js";import{isEditableLayer as g}from"../../layers/support/editableLayers.js";import{isTable as W,getOwningPortalUrl as _,getEffectiveLayerCapabilities as b,isFeatureLayer as F}from"../../layers/support/layerUtils.js";import{parseKnownArcGISOnlineDomain as C}from"../../portal/support/urlUtils.js";import E from"../Attachments/AttachmentsViewModel.js";import I from"./CreateFeaturesWorkflow.js";import U from"./CreateWorkflow.js";import{workflowDeprecation as A}from"./deprecationUtils.js";import M from"./UpdateWorkflow.js";import{whenEditorLayerView as T}from"./workflowUtils.js";import{formTemplateHasInvalidFields as V}from"../FeatureForm/featureFormUtils.js";import O from"../FeatureForm/FeatureFormViewModel.js";import j from"../FeatureTemplates/FeatureTemplatesViewModel.js";import L from"../Sketch/SketchViewModel.js";import S from"../Spinner/SpinnerViewModel.js";const P="esri.widgets.Editor.EditorViewModel",D=n.getLogger(P),x=["create","create-features","update"];function G(e,t,a){D.error(new i(e,t,a))}function H(e,t){return e?e.find((e=>e.layer===t)):void 0}let N=class extends s.EventedAccessor{constructor(e){super(e),this._editableItems=new a,this._sketchGraphicsLayer=new v({listMode:"hide",internal:!0}),this._updateEditableItemsTask=null,this._updatingHandles=new k,this._featureTemplatesViewModelLocked=!1,this._syncFeatureTemplatesOnNextUnlock=!1,this.activeWorkflow=null,this._activityQueue=[],this.failures=[],this.hideTemplatesForInactiveLayers=!1,this.attachmentsViewModel=new E({capabilities:{editing:!0}}),this.featureFormViewModel=new O,this.featureTemplatesViewModel=new j({disabledItemFunction:({layer:e})=>this._itemIsSuspended(e)}),this.sketchViewModel=new L({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:e}=this;if(e.submit(),!e.submittable)return;const t=e.getValues();e.validateContingencyConstraints(t,{includeIncompleteViolations:!0}).length>0||await(this.activeWorkflow?.save())},this.selectFeature=(e,t=!1)=>{const a=this.activeWorkflow;this._candidateCommitted||"update"!==a?.type||(a.data.rootFeature=e,t&&(a.next(),this._candidateCommitted=!0))}}initialize(){this.addHandles([p((()=>{const e=this.view?.map?.editableLayers.filter((({parent:e,visible:t})=>e&&"visible"in e?t&&e.visible:t)),t=this.view?.allLayerViews,a=t?.filter((t=>!!e?.includes(t.layer)&&!t.suspended));return[e,a,this.layerInfos,this.allowedWorkflows,this.hideTemplatesForInactiveLayers]}),(()=>this._updateEditableItems()),w),c((()=>this.activeWorkflow),"cancel",(()=>this.emit("workflow-cancel"))),c((()=>this.activeWorkflow),"commit",(()=>this.emit("workflow-commit"))),c((()=>this.activeWorkflow),"complete",(()=>{this.emit("workflow-commit"),this._set("activeWorkflow",null)})),u((()=>this.view?.map),(e=>e.add(this._sketchGraphicsLayer)),f),p((()=>this.view?.timeZone),(e=>this.featureFormViewModel.timeZone=e)),p((()=>this._editableItems.toArray()),(()=>{const{activeWorkflow:e}=this;if(this.syncFeatureTemplates(),!e)return;const{stepId:t}=e;"create"!==e.type?"update"===e.type&&("awaiting-feature-to-update"===t&&!this.canUpdate||"awaiting-update-feature-candidate"===t&&!e.data.candidates.some((e=>{const t=this._editableItems.find((t=>t.layer===e.layer));return t&&t.supports.includes("update")})))&&this._cancelWorkflow():"awaiting-feature-creation-info"!==t||this.canCreate||this._cancelWorkflow()})),p((()=>this.page),((e,t)=>{const a=[...this.pageStack];if(-1===a.indexOf(e))a.push(e);else for(;a.length&&a.at(-1)!==e;)a.pop();this.pageStack=a}),w),u((()=>"awaiting-update-feature-candidate"===this.state),(()=>this._candidateCommitted=!1)),c((()=>this.featureTemplatesViewModel),"select",(async({item:e,oldItem:t})=>{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(t,{emit:!1})}}if(!e)return;const r={layer:e.layer,template:e.template};if(e.supportsUpload)return this.featureTemplatesViewModel.select(t,{emit:!1}),this.startCreateFeaturesWorkflow(r);this.useDeprecatedCreateWorkflow?this.startCreateWorkflowAtFeatureCreation(r):this.startCreateFeaturesWorkflowAtFeatureCreation(r)})),c((()=>this.view),"key-down",(e=>{"Escape"===e.key&&this.activeWorkflow?.keyboardCancellationEnabled&&this.back()}))])}destroy(){this._cancelWorkflow({warnIfNoWorkflow:!1}).then((()=>{this.view?.map?.remove(this._sketchGraphicsLayer),this.view=null})),this._updateEditableItemsTask=l(this._updateEditableItemsTask),this._updatingHandles.destroy()}get allowedWorkflows(){return this._get("allowedWorkflows")}set allowedWorkflows(e){e&&0!==e.length||(e=[...x]),this._set("allowedWorkflows",e)}get canCreate(){return this._editableItems.some((e=>e.supports.includes("create")&&!e.suspended))}get canUpdate(){return this._editableItems.some((({attachmentsOnUpdateEnabled:e,layer:t,supports:a,suspended:r})=>{const i=!r&&(a.includes("update")||a.includes("delete")||e),s=t.parent,o=!(s&&"visible"in s)||!!s.visible;return t.visible&&o&&i}))}get editableItems(){return this._editableItems}get labelOptions(){return this.sketchViewModel.labelOptions}set labelOptions(e){this.sketchViewModel.labelOptions=e}set layerInfos(e){e?.some((e=>("allowAttachments"in e&&r(D,"Property: layerInfo.allowAttachments",{replacement:"layerInfo.attachmentsOnCreateEnabled or layerInfo.attachmentsOnUpdateEnabled",version:"4.26"}),!0))),this._set("layerInfos",e)}get snappingOptions(){return this.sketchViewModel.snappingOptions}set snappingOptions(e){this.sketchViewModel.snappingOptions=e}get state(){if(!this.view?.ready)return"disabled";const e=this.attachmentsViewModel.mode;if("add"===e)return"adding-attachment";if("edit"===e)return"editing-attachment";const{activeWorkflow:t}=this;return t?"update"===t.type&&t.activeWorkflow?.stepId?t.activeWorkflow.stepId:t.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(e){this.sketchViewModel.tooltipOptions=e}set view(e){this.sketchViewModel.view=e,this.spinnerViewModel.view=e,this._set("view",e)}get page(){const{activeWorkflow:e,state:t}=this;if("update"===e?.type&&"awaiting-feature-to-update"===e.stepId)return"ready";if("create-features"===e?.type&&0===e.numPendingFeatures){const t=e.data.upload;if(t)return"default"===t.state?"ready":"creating-features-upload-details"}return t??"disabled"}get featureFormDisabled(){const{activeWorkflow:e}=this;return"update"===e?.type&&!1===e.activeEditableItem?.attributeUpdatesEnabled}get canGoBack(){return null!=this.activeWorkflow&&!this.syncing}get shouldShowDeleteButton(){const{activeWorkflow:e}=this;return!!e&&"update"===e.type&&!!e.activeEditableItem?.supports.includes("delete")}get hasPendingEdits(){return this.activeWorkflow?.hasPendingEdits??!1}async startCreateWorkflowAtFeatureTypeSelection(){if(A(D,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),await h((()=>!this.updating)),!this.canCreate)return void G("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createCreateWorkflow();await e.start(),this._set("activeWorkflow",e)}async startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.startCreateFeaturesWorkflow()}async startCreateWorkflowAtFeatureCreation(e){if(A(D,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),await h((()=>!this.updating)),!this.canCreate)return void G("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createCreateWorkflow("awaiting-feature-to-create");t.data.creationInfo=e,await t.start(),this._set("activeWorkflow",t)}async startCreateFeaturesWorkflowAtFeatureCreation(e){return this.startCreateFeaturesWorkflow(e,"creating-features")}async startCreateFeaturesWorkflow(e,t="awaiting-feature-creation-info"){if(await h((()=>!this.updating)),!this.canCreate)throw new i("editing:unsupported-workflow","Creating features is unsupported or disabled.");await this._cancelWorkflow();const a=this._createCreateFeaturesWorkflow(e,t);await a.start(),this._set("activeWorkflow",a)}async startCreateWorkflowAtFeatureEdit(e){if(A(D,"startCreateWorkflowAtFeatureEdit"),await h((()=>!this.updating)),!this.canCreate)return void G("editing:unsupported-workflow","Create workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createCreateWorkflow("editing-new-feature");t.data.edits.feature=e,await t.start(),this._set("activeWorkflow",t)}async startCreateFeaturesWorkflowAtFeatureEdit(e){await h((()=>!this.updating));const{initialFeature:t}=e,a=t.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:t,layer:r.layer,maxFeatures:1},"creating-features");await s.start(),this._set("activeWorkflow",s)}async startUpdateWorkflowAtFeatureSelection(){if(await h((()=>!this.updating)),!this.canUpdate)return void G("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const e=this._createUpdateWorkflow();await e.start(),this._set("activeWorkflow",e)}async startUpdateWorkflowAtMultipleFeatureSelection(e){if(await h((()=>!this.updating)),!this.canUpdate)return void G("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createUpdateWorkflow("awaiting-update-feature-candidate");t.data.candidates=e,await t.start(),this._set("activeWorkflow",t)}async startUpdateWorkflowAtFeatureEdit(e){if(await h((()=>!this.updating)),!this.canUpdate)return void G("editing:unsupported-workflow","Update workflow is unsupported or disabled.");await this._cancelWorkflow();const t=this._createUpdateWorkflow("editing-existing-feature");t.data.rootFeature=e,await t.start(),this._set("activeWorkflow",t)}async deleteFeatureFromWorkflow(){const{activeWorkflow:e}=this;e&&"update"===e.type?await e.deleteActiveFeature():G("editing:unsupported-workflow","Deleting requires an active update workflow.")}async cancelWorkflow(e){return this._cancelWorkflow({warnIfNoWorkflow:!0,...e})}findEditableItemForLayer(e){const t="subtype-sublayer"===e.type?e.parent:e;return this._editableItems.find((e=>e.layer===t))}itemHasInvalidFormTemplate(e){return!!e&&(this.findEditableItemForLayer(e.layer)?.hasInvalidFormTemplate??!1)}itemHasUnsupportedFields(e){return!!e&&(this.findEditableItemForLayer(e.layer)?.hasUnsupportedFields??!1)}syncFeatureTemplates(){if(this._featureTemplatesViewModelLocked)return void(this._syncFeatureTemplatesOnNextUnlock=!0);const e=[];for(const{layer:t,supports:a}of this._editableItems)t.loaded&&a.includes("create")&&!W(t)&&e.push(t);this.featureTemplatesViewModel.layers=e}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()))}lockFeatureTemplatesViewModel(){return this._featureTemplatesViewModelLocked=!0,o((()=>{this._featureTemplatesViewModelLocked=!1,this._syncFeatureTemplatesOnNextUnlock&&(this.syncFeatureTemplates(),this._syncFeatureTemplatesOnNextUnlock=!1)}))}async _updateEditableItems(){l(this._updateEditableItemsTask);const e=t((async e=>{const t=this.view?.allLayerViews,r=this.view?.map,i=r?.editableLayers.toArray()??[],s=r?.allTables.toArray().filter(F)??[];await Promise.allSettled(s.map((e=>e.load())));const o=s.filter((e=>g(e))),n=[...i.reverse(),...o.reverse()].filter((e=>"mesh"!==e.geometryType||"3d"===this.view?.type));if(!t||!i)return;const l=[],p=[];for(const a of n){const r=t.find((e=>e.layer===a)),i=r?l:p,s=!!r?.suspended;if(!s||!this.hideTemplatesForInactiveLayers)if("subtype-group"===a.type){await a.loadAll(),d(e);for(let e=a.sublayers.length-1;e>=0;--e)i.push(this._makeEditableItemForLayer(a.sublayers.at(e),s))}else i.push(this._makeEditableItemForLayer(a,s))}if(e.aborted)return;const c=this._editableItems;this._editableItems=new a(l.concat(p)),c.destroy()}));this._updatingHandles.addPromise(e.promise),this._updateEditableItemsTask=e}async _cancelWorkflow(e){const t=this.activeWorkflow;if(!t)return void(e?.warnIfNoWorkflow&&G("editing:no-active-workflow","There is no active workflow to cancel."));if(!e||!1!==e.force)return this.emit("workflow-cancel"),this._set("activeWorkflow",null),void await t.cancel(e);await t.cancel(e),this._set("activeWorkflow",null)}_createCreateFeaturesWorkflow(e,t){return I.create({viewModel:this,creationInfo:e,startAt:t,applyEditsCallback:(e,t,a)=>this._applyEdits(e,t,a),addAttachmentsCallback:(e,t)=>this._addAttachments(e,t)})}_createCreateWorkflow(e){return U.create(this,e,((e,t,a)=>this._applyEdits(e,t,a)))}_createUpdateWorkflow(e){return M.create({viewModel:this,startAt:e,applyEditsCallback:(e,t,a)=>this._applyEdits(e,t,a),addAttachmentsCallback:(e,t)=>this._addAttachments(e,t)})}_addAttachments(e,t){const a=t.map((t=>this._addAttachment(e,t.feature,t.attachment)))??[];return Promise.all(a)}async _addAttachment(e,t,a){let r=null;if("geojson"===e.type||"scene"===e.type||"oriented-imagery"===e.type)throw new i("editor:attachments-not-supported","Adding attachments is not supported for this layer type");return await this._queueOperation((async()=>(r=await(e.addAttachment?.(t,a).catch((e=>{throw e?.error||e})))??null,r))),r}async _applyEdits(e,t,a){let r=null;const i=e.url?await _(e.url):null,s={returnServiceEditsOption:(!i||!C(i))&&!RegExp("/hosted/","i").test(e.url)?"original-and-current-features":void 0,...a};return await this._queueOperation((async()=>{const{view:a}=this;if(!a)return null;const i=await T(a,e).catch((()=>null));return r=await e.applyEdits(t,s),i&&await h((()=>!i.updating)),r})),r}_queueOperation(e){this._activityQueue.push(e),this.notifyChange("syncing");const t=(e,t)=>{const a=t.indexOf(e);a>-1&&t.splice(a,1)};return e().then((e=>{if(null!=e&&"error"in e&&null!=e.error)throw e.error;if(null!=e&&"addFeatureResults"in e){const{addFeatureResults:t,deleteFeatureResults:a,updateFeatureResults:r}=e,i=t.find((e=>!!e.error))||r.find((e=>!!e.error))||a.find((e=>!!e.error));if(i)throw i.error}return e})).catch((a=>{G("editing:operation-error","An error occurred.",{error:a});const r={error:a,retry:()=>(t(r,this.failures),this._queueOperation(e)),cancel:()=>{t(r,this.failures)}};this._set("failures",[...this.failures,r])})).then((()=>{t(e,this._activityQueue),this.notifyChange("syncing")}))}_makeEditableItemForLayer(e,t=!0){const a=b(e),r=a?.operations,i=H(this.layerInfos,e),s=V(e),o=s||t,{allowedWorkflows:n}=this,l=n.includes("create")||n.includes("create-features"),d=n.includes("update"),p=e=>!i||!1!==i.enabled&&!1!==i[e],c=l&&!!r?.supportsAdd&&p("addEnabled"),u=d&&!!r?.supportsUpdate&&p("updateEnabled"),h=!o&&d&&!!r?.supportsDelete&&p("deleteEnabled"),w=[];c&&w.push("create"),u&&w.push("update"),h&&w.push("delete");const f=u&&!o&&(!i||!1!==i.attributeUpdatesEnabled),m=u&&!o&&!!a?.editing?.supportsGeometryUpdate&&(!i||!1!==i.geometryUpdatesEnabled),y=!(!a?.data?.supportsAttachment||i&&!1===i.allowAttachments);return{layer:e,supports:w,suspended:t,attributeUpdatesEnabled:f,geometryUpdatesEnabled:m,hasAttachments:y,attachmentsOnCreateEnabled:y&&l&&(!i||!1!==i.attachmentsOnCreateEnabled),attachmentsOnUpdateEnabled:!o&&y&&(!i||!1!==i.attachmentsOnUpdateEnabled),hasInvalidFormTemplate:s,hasUnsupportedFields:!1}}_itemIsSuspended(e){return this.findEditableItemForLayer(e)?.suspended??!1}};e([m()],N.prototype,"_editableItems",void 0),e([m({readOnly:!0})],N.prototype,"activeWorkflow",void 0),e([m({readOnly:!0})],N.prototype,"_activityQueue",void 0),e([m({value:[...x]})],N.prototype,"allowedWorkflows",null),e([m({readOnly:!0})],N.prototype,"canCreate",null),e([m({readOnly:!0})],N.prototype,"canUpdate",null),e([m()],N.prototype,"editableItems",null),e([m({readOnly:!0})],N.prototype,"failures",void 0),e([m()],N.prototype,"hideTemplatesForInactiveLayers",void 0),e([m()],N.prototype,"attachmentsViewModel",void 0),e([m()],N.prototype,"featureFormViewModel",void 0),e([m()],N.prototype,"featureTemplatesViewModel",void 0),e([m()],N.prototype,"labelOptions",null),e([m()],N.prototype,"layerInfos",null),e([m()],N.prototype,"sketchViewModel",void 0),e([m()],N.prototype,"snappingOptions",null),e([m()],N.prototype,"spinnerViewModel",void 0),e([m()],N.prototype,"state",null),e([m({readOnly:!0})],N.prototype,"syncing",null),e([m()],N.prototype,"updating",null),e([m()],N.prototype,"tooltipOptions",null),e([m()],N.prototype,"view",null),e([m()],N.prototype,"pageStack",void 0),e([m()],N.prototype,"showDiscardEditsPrompt",void 0),e([m()],N.prototype,"_candidateCommitted",void 0),e([m()],N.prototype,"page",null),e([m()],N.prototype,"featureFormDisabled",null),e([m()],N.prototype,"canGoBack",null),e([m()],N.prototype,"shouldShowDeleteButton",null),e([m()],N.prototype,"hasPendingEdits",null),e([m()],N.prototype,"useDeprecatedCreateWorkflow",void 0),N=e([y(P)],N);const q=N;export{q 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{makeHandle as i}from"../../core/handleUtils.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{highlightsSupported as r}from"../../views/support/layerViewUtils.js";import a from"./UpdateFeatureWorkflowData.js";import{handleKeys as l,UpdateRecordWorkflow as c}from"./UpdateRecordWorkflow.js";import{canCreateInteractiveEditSession as d,getVisualVariableAttributes as n,setUpGeometryUpdate as h,isTerminalUpdateEventType as p,swapForEditingSession as u,cloneGraphicExceptMesh as m}from"./workflowUtils.js";var w;const y={...l,highlights:Symbol(),sketch:Symbol()};let f=w=class extends c{constructor(e){super(e),this.type="update-feature",this._layerViewEditSession=null,this._sketchGraphicClone=null,this._webStyleCache=new Map}initialize(){const{edits:{feature:e},layerView:t}=this.data;d(t)&&(this._layerViewEditSession=t.createInteractiveEditSession(e))}destroy(){this._layerViewEditSession?.rollback()}async commit(){this.removeHandles(y.sketch);try{const e=this.data.edits.stagedForDelete;await super.commit();const t=this._layerViewEditSession;e?t?.rollback():t?.commit()}catch(e){throw await this._configureSketchViewModel(),new t("editor-workflow:failed-to-commit","An error occurred when sending the updates to the service",{error:e})}}async start(){return await super.start(),this._initializeSketchViewModel()}_configureFeatureFormViewModel(){super._configureFeatureFormViewModel();const{_layerViewEditSession:e}=this,{viewModel:t}=this.data;this.addHandles(t.featureFormViewModel.on("value-change",(t=>{e?.setAttribute(t.fieldName,t.value)})),y.exit)}_configureHighlight(){const{edits:e,layerView:t}=this.data;r(t)&&this.addHandles(t.highlight(e.feature),y.highlights)}async _configureSketchViewModel(){const{data:e,_sketchGraphicClone:t}=this,{edits:i,viewModel:o}=e,s=i.feature,{featureFormViewModel:r,sketchViewModel:a,view:l}=o;a.allowDeleteKey=!1;const c=n(s),d=await h(t,c,a,l,(({geometry:e,attributes:t},o)=>{if(i.updateAttributes(t),i.updateGeometry(e),r.feature.geometry=e,null!=c.rotation){const{field:e}=c.rotation;r.setValue(e,t[e])}if(null!=c.size){const{field:e}=c.size;r.setValue(e,t[e])}("undo"===o.type||"redo"===o.type||"update"===o.type&&null!=o.toolEventInfo&&p(o.toolEventInfo.type))&&r.notifyFeatureGeometryChanged()}),this._webStyleCache);this.addHandles(d,y.sketch)}_initializeSketchViewModel(){const{data:e,_sketchGraphicClone:t}=this,o=e.edits.feature,{sketchViewModel:s}=e.viewModel,r=s.updateOnGraphicClick;s.updateOnGraphicClick=!1,this.addHandles([u(s,o,t),i((()=>{s.updateOnGraphicClick=r}))]);const{highlights:a,sketch:l}=y;return{enter:async()=>{!this.hasHandles(l)&&this.data.editableItem.geometryUpdatesEnabled?await this._configureSketchViewModel():this.hasHandles(a)||this._configureHighlight()},exit:()=>this.removeHandles([l,a])}}_onFullFeatureLoaded(e){super._onFullFeatureLoaded(e),this._sketchGraphicClone=m(e);const{edits:t}=this.data;t.updateGeometry(e.geometry),t.trackChanges()}static async create(e){const t=new w({data:await a.create(e),onCommit:this._onCommitFactory(e.applyEdits)});return t._set("steps",this._createWorkflowSteps(t)),t}};e([o()],f.prototype,"_layerViewEditSession",void 0),e([o()],f.prototype,"_sketchGraphicClone",void 0),f=w=e([s("esri.widgets.Editor.UpdateFeatureWorkflow")],f);export{f as UpdateFeatureWorkflow,y as handleKeys};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Error.js";import{makeHandle as i}from"../../core/handleUtils.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{highlightsSupported as r}from"../../views/support/layerViewUtils.js";import a from"./UpdateFeatureWorkflowData.js";import{handleKeys as l,UpdateRecordWorkflow as c}from"./UpdateRecordWorkflow.js";import{canCreateInteractiveEditSession as d,getVisualVariableAttributes as n,setUpGeometryUpdate as h,isTerminalUpdateEventType as u,swapForEditingSession as p,cloneGraphicExceptMesh as w}from"./workflowUtils.js";var m;const y={...l,highlights:Symbol(),sketch:Symbol()};let f=m=class extends c{constructor(e){super(e),this.type="update-feature",this._layerViewEditSession=null,this._sketchGraphicClone=null,this._webStyleCache=new Map}initialize(){const{edits:{feature:e},layerView:t}=this.data;d(t)&&(this._layerViewEditSession=t.createInteractiveEditSession(e))}destroy(){this._layerViewEditSession?.rollback()}async commit(){this.removeHandles(y.sketch);try{const e=this.data.edits.stagedForDelete;await super.commit();const t=this._layerViewEditSession;e?t?.rollback():t?.commit()}catch(e){throw await this._configureSketchViewModel(),new t("editor-workflow:failed-to-commit","An error occurred when sending the updates to the service",{error:e})}}async start(){return await super.start(),this._initializeSketchViewModel()}_configureFeatureFormViewModel(){super._configureFeatureFormViewModel();const{_layerViewEditSession:e}=this,{viewModel:t}=this.data;this.addHandles(t.featureFormViewModel.on("value-change",(t=>{e?.setAttribute(t.fieldName,t.value)})),y.exit)}_configureHighlight(){const{edits:e,layerView:t}=this.data;r(t)&&this.addHandles(t.highlight(e.feature),y.highlights)}async _configureSketchViewModel(){const{data:e,_sketchGraphicClone:t}=this,{edits:i,viewModel:s}=e,o=i.feature,{featureFormViewModel:r,sketchViewModel:a,view:l}=s;a.allowDeleteKey=!1;const c=n(o),d=await h({feature:o,featureClone:t,visualVariableAttributes:c,sketchViewModel:a,view:l,onUpdate:({geometry:e,attributes:t},s)=>{if(i.updateAttributes(t),i.updateGeometry(e),r.feature.geometry=e,null!=c.rotation){const{field:e}=c.rotation;r.setValue(e,t[e])}if(null!=c.size){const{field:e}=c.size;r.setValue(e,t[e])}("undo"===s.type||"redo"===s.type||"update"===s.type&&null!=s.toolEventInfo&&u(s.toolEventInfo.type))&&r.notifyFeatureGeometryChanged()},webStyleCache:this._webStyleCache});this.addHandles(d,y.sketch)}_initializeSketchViewModel(){const{data:e,_sketchGraphicClone:t}=this,s=e.edits.feature,{sketchViewModel:o}=e.viewModel,{geometryUpdatesEnabled:r}=e.editableItem,a=o.updateOnGraphicClick;o.updateOnGraphicClick=!1,this.addHandles([i((()=>{o.updateOnGraphicClick=a}))]),r&&this.addHandles([p(o,s,t)]);const{highlights:l,sketch:c}=y;return{enter:async()=>{!this.hasHandles(c)&&r?await this._configureSketchViewModel():this.hasHandles(l)||this._configureHighlight()},exit:()=>this.removeHandles([c,l])}}_onFullFeatureLoaded(e){super._onFullFeatureLoaded(e),this._sketchGraphicClone=w(e);const{edits:t}=this.data;t.updateGeometry(e.geometry),t.trackChanges()}static async create(e){const t=new m({data:await a.create(e),onCommit:this._onCommitFactory(e.applyEdits)});return t._set("steps",this._createWorkflowSteps(t)),t}};e([s()],f.prototype,"_layerViewEditSession",void 0),e([s()],f.prototype,"_sketchGraphicClone",void 0),f=m=e([o("esri.widgets.Editor.UpdateFeatureWorkflow")],f);export{f as UpdateFeatureWorkflow,y as handleKeys};
@@ -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 i,makeHandle as r}from"../../core/handleUtils.js";import{isAborted as a}from"../../core/promiseUtils.js";import{watch as s}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 l}from"../../core/accessorSupport/decorators/subclass.js";import{getEffectiveLayerCapabilities as n,getEffectiveEditingEnabled as d}from"../../layers/support/layerUtils.js";import{sceneLayerEditingEnabled as u,i3sPatchingEnabled as c}from"../../support/featureFlags.js";import p from"../../views/draw/support/HighlightHelper.js";import m from"./UpdateRecordWorkflowData.js";import h from"./Workflow.js";import{fetchFullFeature as f}from"./workflowUtils.js";var g;const w={exit:Symbol()},y="esri.widgets.Editor.UpdateRecordWorkflow";let b=g=class extends h{constructor(e){super(e),this._highlightHelper=null,this.fullFeature=null,this.type="update-table-record"}initialize(){const{data:e}=this,{edits:s}=e,{view:o}=e.viewModel,l=s.feature,n=new AbortController;this.addHandles(i(n)),this._updatingHandles.addPromise(f(l,e.viewModel.view.spatialReference,n.signal).then((e=>{a(n)||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}})})))),o&&(this._highlightHelper=new p({view:o}),this.addHandles(r((()=>this._highlightHelper?.removeAll()))))}get editableItem(){return this.data.editableItem}get hasPendingEdits(){const{edits:e,viewModel:t}=this.data,{geometryModified:i,initialFeature:r,modified:a}=e;if(i)return!0;if(!a||!r)return!1;const{allFieldInputs:s}=t.featureFormViewModel;return s.some((e=>F(e,r)))}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,i=n(e)?.operations.supportsUpdate;return d(e)&&!e.editingEnabled||!!i&&!t}async deleteAndCommit(){return this.data.edits.stageDelete(),this.commit()}async enter(){this._configureAttachmentsViewModel(),this._configureFeatureFormViewModel()}exit(e){this.removeHandles(w.exit)}async start(){return await super.start(),null}_configureAttachmentsViewModel(){const{data:e,fullFeature:t}=this,{attachmentsCapabilities:i,viewModel:r}=e,{attachmentsViewModel:a}=r;a.set({capabilities:i,graphic:t,filesEnabled:!1,mode:"view"}),this.addHandles(s((()=>a.mode),(e=>{switch(e){case"add":this.go("adding-attachment");break;case"edit":this.go("editing-attachment")}})),w.exit)}_configureFeatureFormViewModel(){const{edits:e,formTemplate:t,viewModel:{featureFormViewModel:i,view:r}}=this.data;i.set({arcadeEditType:"UPDATE",feature:this.fullFeature,formTemplate:t,highlightHelper:this._highlightHelper,map:r?.map,spatialReference:r.spatialReference});const{initialFeature:a}=e;a&&i.overrideInitialFeature(a),this.addHandles(i.on("value-change",(()=>{e.updateAttributes(i.getValues()),this.fullFeature.attributes=e.feature.attributes})),w.exit)}_onFullFeatureLoaded(e){this.fullFeature=e;const{edits:t}=this.data;t.updateAttributes(e.attributes),t.trackChanges()}static async create(e){const t=new g({data:await m.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 F(e,t){return e.value!==t.getAttribute(e.name)&&!e.valueOriginIsExpression}b._onCommitFactory=e=>async t=>{const{edits:i}=t,{feature:r}=i;if(!r)return;const a=r.sourceLayer,s=r.clone();if(!i.attributesModified||i.stagedForDelete){const e=a.objectIdField;if(s.attributes={[e]:r.getAttribute(e)},u()&&c()&&"scene"===a.type&&null!=a.infoFor3D){const e=a.associatedLayer?.globalIdField;null!=e&&s.setAttribute(e,r.getAttribute(e))}}i.geometryModified&&!i.stagedForDelete||(s.geometry=null);const o=i.stagedForDelete?"deleteFeatures":"updateFeatures";await e(a,{[o]:[s]})},e([o()],b.prototype,"editableItem",null),e([o()],b.prototype,"fullFeature",void 0),e([o()],b.prototype,"hasPendingEdits",null),e([o()],b.prototype,"parent",null),e([o()],b.prototype,"shouldShowAttachments",null),e([o()],b.prototype,"shouldAllowAttachmentEditing",null),e([o()],b.prototype,"reliesOnOwnerAdminPrivileges",null),b=g=e([l(y)],b);export{b as UpdateRecordWorkflow,w as handleKeys};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Error.js";import{abortHandle as i,makeHandle as r}from"../../core/handleUtils.js";import{isAborted as a}from"../../core/promiseUtils.js";import{watch as s}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 l}from"../../core/accessorSupport/decorators/subclass.js";import{getEffectiveLayerCapabilities as n,getEffectiveEditingEnabled as d}from"../../layers/support/layerUtils.js";import{sceneLayerEditingEnabled as u,i3sPatchingEnabled as c}from"../../support/featureFlags.js";import p from"../../views/draw/support/HighlightHelper.js";import m from"./UpdateRecordWorkflowData.js";import h from"./Workflow.js";import{fetchFullFeature as f}from"./workflowUtils.js";var g;const w={exit:Symbol()},y="esri.widgets.Editor.UpdateRecordWorkflow";let b=g=class extends h{constructor(e){super(e),this._highlightHelper=null,this.fullFeature=null,this.type="update-table-record"}initialize(){const{data:e}=this,{edits:s}=e,{view:o}=e.viewModel,l=s.feature,n=new AbortController;this.addHandles(i(n)),this._updatingHandles.addPromise(f(l,e.viewModel.view.spatialReference,n.signal).then((e=>{a(n)||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}})})))),o&&(this._highlightHelper=new p({view:o}),this.addHandles(r((()=>this._highlightHelper?.removeAll()))))}get editableItem(){return this.data.editableItem}get hasPendingEdits(){const{edits:e,viewModel:t}=this.data,{geometryModified:i,initialFeature:r,modified:a}=e;if(i)return!0;if(!a||!r)return!1;const{allFieldInputs:s}=t.featureFormViewModel;return s.some((e=>F(e,r)))}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,i=n(e)?.operations.supportsUpdate;return d(e)&&!e.editingEnabled||!!i&&!t}async deleteAndCommit(){return this.data.edits.stageDelete(),this.commit()}async enter(){this._configureAttachmentsViewModel(),this._configureFeatureFormViewModel()}exit(e){this.removeHandles(w.exit)}async start(){return await super.start(),null}_configureAttachmentsViewModel(){const{data:e,fullFeature:t}=this,{attachmentsCapabilities:i,viewModel:a}=e,{attachmentsViewModel:o}=a;o.set({capabilities:i,graphic:t,filesEnabled:!1,mode:"view"}),this.addHandles([r((()=>o.fileInfos.removeAll())),s((()=>o.mode),(e=>{switch(e){case"add":this.go("adding-attachment");break;case"edit":this.go("editing-attachment")}}))],w.exit)}_configureFeatureFormViewModel(){const{edits:e,formTemplate:t,viewModel:{featureFormViewModel:i,view:r}}=this.data;i.set({arcadeEditType:"UPDATE",feature:this.fullFeature,formTemplate:t,highlightHelper:this._highlightHelper,map:r?.map,spatialReference:r.spatialReference});const{initialFeature:a}=e;a&&i.overrideInitialFeature(a),this.addHandles(i.on("value-change",(()=>{e.updateAttributes(i.getValues()),this.fullFeature.attributes=e.feature.attributes})),w.exit)}_onFullFeatureLoaded(e){this.fullFeature=e;const{edits:t}=this.data;t.updateAttributes(e.attributes),t.trackChanges()}static async create(e){const t=new g({data:await m.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 F(e,t){return e.value!==t.getAttribute(e.name)&&!e.valueOriginIsExpression}b._onCommitFactory=e=>async t=>{const{edits:i}=t,{feature:r}=i;if(!r)return;const a=r.sourceLayer,s=r.clone();if(!i.attributesModified||i.stagedForDelete){const e=a.objectIdField;if(s.attributes={[e]:r.getAttribute(e)},u()&&c()&&"scene"===a.type&&null!=a.infoFor3D){const e=a.associatedLayer?.globalIdField;null!=e&&s.setAttribute(e,r.getAttribute(e))}}i.geometryModified&&!i.stagedForDelete||(s.geometry=null);const o=i.stagedForDelete?"deleteFeatures":"updateFeatures";await e(a,{[o]:[s]})},e([o()],b.prototype,"editableItem",null),e([o()],b.prototype,"fullFeature",void 0),e([o()],b.prototype,"hasPendingEdits",null),e([o()],b.prototype,"parent",null),e([o()],b.prototype,"shouldShowAttachments",null),e([o()],b.prototype,"shouldAllowAttachmentEditing",null),e([o()],b.prototype,"reliesOnOwnerAdminPrivileges",null),b=g=e([l(y)],b);export{b as UpdateRecordWorkflow,w as handleKeys};
@@ -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 o}from"../../core/handleUtils.js";import r from"../../core/Logger.js";import{abortMaybe as i}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{last as h}from"../../core/SetUtils.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{isEditableLayer as k}from"../../layers/support/editableLayers.js";import{isSubtypeGroupLayer as g,isTable as v}from"../../layers/support/layerUtils.js";import y from"../../views/draw/support/HighlightHelper.js";import b from"./CreateFeaturesWorkflow.js";import{UpdateFeatureWorkflow as W}from"./UpdateFeatureWorkflow.js";import{UpdateRecordWorkflow as _}from"./UpdateRecordWorkflow.js";import C from"./UpdateWorkflowData.js";import S from"./Workflow.js";import{createWorkflowSteps as F,fetchCandidates as M}from"./workflowUtils.js";import{isGraphicForRelatableFeatureSupportedLayer as U}from"../Feature/support/featureUtils.js";import{getAllTemplatesForLayer as j}from"../support/templateUtils.js";var I;const A="esri.widgets.Editor.UpdateWorkflow",E=r.getLogger(A);let R=I=class extends S{constructor(e){super(e),this._workflowStack=new c(h),this._sketchStack=new c(h),this.type="update"}get activeEditableItem(){const{activeWorkflow:e}=this;return P(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");P(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:r,viewModel:i}=this.data;if(!k(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 b.create({addAttachmentsCallback:o,applyEditsCallback:r,creationInfo:s,parent:l,startAt:n,viewModel:i})}_getCreationInfoForNestedCreateFeaturesWorkflow(e){const{relatedLayer:o}=e;if(!k(o)||g(o))throw new a("editor:unsupported-layer","Editing is not supported on the provided layer");const r={layer:o,maxFeatures:1},i=this._makeRelatedRecordAttributes(e),s=j(o);return s?.length?s.length>1?r.attributeOverrides=i:r.initialFeature=new t({sourceLayer:o,attributes:{...s[0].prototype.attributes,...i}}):r.initialFeature=new t({sourceLayer:o,attributes:i}),r}async _createNestedUpdateWorkflow(e){const t=v(e.sourceLayer)?_:W,{applyEditsCallback:a,viewModel:o}=this.data,r="create-features"!==this.activeWorkflow?.type?this.activeWorkflow:void 0,i=await t.create({feature:e,parent:r,viewModel:o,applyEdits:a});return await p((()=>!i.updating)),i}async _drainWorkflowStack(e){const t=this._workflowStack,a=[];for(;t.length>0;){const o=t.pop(),r=e(o).then((()=>o.destroy()));this._updatingHandles.addPromise(r),a.push(r)}await Promise.all(a)}_makeRelatedRecordAttributes(e){const{parentFeature:t,relatedLayer:a,relationshipId:o}=e;if(!U(t))return;const r=a.relationships?.find((e=>e.id===o));if(!r)return void x("relationship-not-found","Could not begin creating a related record because the relationship specified could not be found on the destination layer.");if("origin"===r.role)return void x("unsupported-role","Creating new related records in the 'origin' table of a relationship is not yet supported");const i=t.sourceLayer;r.relatedTableId!==i.layerId&&x("invalid-argument-combination","The given parent feature does not belong to the relationship designated by the given relationship ID.");const s=i.relationships?.find((e=>e.id===o));if(!s)return void x("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||x("no-key-on-origin-feature","The given parent feature does not have a value for the relationship's origin primary key field."),{[r.keyField]:n}}async _popWorkflow(){this._workflowStack.pop()?.destroy(),this._sketchStack.pop();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});const o=this._sketchStack,r=await(e?.start()),i=o.peek();r?(i?.exit(),o.push(r)):o.push(this._cloneSketchController(i)),this._workflowStack.push(e);const s=await this._reconcileWorkflowStack();if(s.failureCount>0)throw new a("editor:failed-to-start-updating-feature","Failed to enter the provided workflow.",s)}async _reconcileWorkflowStack(){const e=this._workflowStack,t=this._sketchStack;try{const a=e.peek();return await(a?.enter()),await(t.peek()?.enter()),{activeWorkflow:a,failureCount:0}}catch(a){e.pop().destroy(),t.pop();const{activeWorkflow:o,failureCount:r}=await this._reconcileWorkflowStack();return{activeWorkflow:o,failureCount:r+1}}}_cloneSketchController(e){return{enter:e?.enter??(async()=>{}),exit:e?.exit??(async()=>{})}}_workflowRequiresSketchViewModel(e){const{type:t}=e;return"update-feature"===t||"create-features"===t&&!v(e.data.creationInfo?.layer)}static _createWorkflowSteps(e,t="awaiting-feature-to-update"){const{data:r}=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}=r.viewModel,a=r.viewModel.view;let d=null;e.addHandles(o((()=>{d=i(d)})),this.id),r.rootFeature=null,r.candidates=[];const c=a.on("immediate-click",(async o=>{o.stopPropagation(),t.location=o.mapPoint,t.visible=!0,d?.abort();const{editableItems:i}=r.viewModel;d=new AbortController;const c=await new Promise(((e,t)=>{s(d?.signal,(()=>t(n()))),e(M(i,a,o,d?.signal))}));l(d),r.candidates=c.filter((e=>"fulfilled"===e.status)).flatMap((e=>e.value)),t.visible=1===r.candidates.length,0!==r.candidates.length&&(1===r.candidates.length?(r.rootFeature=r.candidates[0],e.go("editing-existing-feature").catch((()=>{})).then((()=>t.visible=!1))):e.next())}));a.focus(),e.addHandles(c,this.id)},async tearDown(){0===r.candidates.length&&(r.viewModel.spinnerViewModel.visible=!1),e.removeHandles(this.id)}}),"awaiting-update-feature-candidate":()=>({id:"awaiting-update-feature-candidate",async setUp(){r.rootFeature=null;const{view:t}=r.viewModel;if(!t)return;const a=new y({view:t});e.addHandles([u((()=>r.rootFeature),((e,t)=>{a.remove(t),a.add(e)}),w),o((()=>a.removeAll()))],this.id)},async tearDown(){e.removeHandles(this.id)}}),"editing-existing-feature":()=>({id:"editing-existing-feature",async setUp(){const{rootFeature:t,viewModel:i}=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),i.spinnerViewModel.visible=!1;const s=d((async()=>{await p((()=>!e.updating)),e.previous()})),{featureFormViewModel:n}=r.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(){r.viewModel.attachmentsViewModel.mode="view"}}),"editing-attachment":()=>({id:"editing-attachment",parent:"editing-existing-feature",async setUp(){},async tearDown(){r.viewModel.attachmentsViewModel.mode="view"}})})}};e([f()],R.prototype,"activeEditableItem",null),e([f()],R.prototype,"activeWorkflow",null),e([f()],R.prototype,"nestedWorkflowCount",null),e([f()],R.prototype,"shouldShowAttachments",null),e([f()],R.prototype,"shouldAllowAttachmentEditing",null),e([f()],R.prototype,"hasPendingEdits",null),e([f()],R.prototype,"helpMessage",null),e([f()],R.prototype,"reliesOnOwnerAdminPrivileges",null),e([f()],R.prototype,"hasInvalidFormTemplate",null),e([f()],R.prototype,"hasUnsupportedFields",null),R=I=e([m(A)],R);const x=(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."),P=e=>!!e&&/update-/.test(e.type),H=R;export{H 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 r from"../../core/Logger.js";import{abortMaybe as i}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{last as h}from"../../core/SetUtils.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{isEditableLayer as k}from"../../layers/support/editableLayers.js";import{isSubtypeGroupLayer as g,isTable as v}from"../../layers/support/layerUtils.js";import y from"../../views/draw/support/HighlightHelper.js";import b from"./CreateFeaturesWorkflow.js";import{UpdateFeatureWorkflow as W}from"./UpdateFeatureWorkflow.js";import{UpdateRecordWorkflow as C}from"./UpdateRecordWorkflow.js";import _ from"./UpdateWorkflowData.js";import S from"./Workflow.js";import{createWorkflowSteps as F,fetchCandidates as A}from"./workflowUtils.js";import{isGraphicForRelatableFeatureSupportedLayer as M}from"../Feature/support/featureUtils.js";import{getAllTemplatesForLayer as U}from"../support/templateUtils.js";var j;const I="esri.widgets.Editor.UpdateWorkflow",E=r.getLogger(I);let R=j=class extends S{constructor(e){super(e),this._workflowStack=new c(h),this._sketchStack=new c(h),this.type="update"}get activeEditableItem(){return this.activeWorkflow?.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){const{viewModel:t,startAt:a,addAttachmentsCallback:o,applyEditsCallback:r}=e,i=new j({data:new _({addAttachmentsCallback:o,applyEditsCallback:r,viewModel:t}),onCommit:async()=>{}});return i._set("steps",this._createWorkflowSteps(i,a)),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");P(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:r,viewModel:i}=this.data;if(!k(t))throw new a("editor:unsupported-layer","Editing is not supported on the provided layer");const s=this._getCreationInfoForNestedCreateFeaturesWorkflow(e),n=s.template||s.initialFeature?"creating-features":"awaiting-feature-creation-info",l="create-features"!==this.activeWorkflow?.type?this.activeWorkflow:void 0;return b.create({addAttachmentsCallback:o,applyEditsCallback:r,creationInfo:s,isNested:!0,parent:l,startAt:n,viewModel:i})}_getCreationInfoForNestedCreateFeaturesWorkflow(e){const{relatedLayer:o}=e;if(!k(o)||g(o))throw new a("editor:unsupported-layer","Editing is not supported on the provided layer");const r={layer:o,maxFeatures:1},i=this._makeRelatedRecordAttributes(e),s=U(o);return s?.length>0?(r.attributeOverrides=i,1===s.length&&(r.template=s[0])):r.initialFeature=new t({sourceLayer:o,attributes:i}),r}async _createNestedUpdateWorkflow(e){const t=v(e.sourceLayer)?C:W,{applyEditsCallback:a,viewModel:o}=this.data,r="create-features"!==this.activeWorkflow?.type?this.activeWorkflow:void 0,i=await t.create({feature:e,parent:r,viewModel:o,applyEdits:a});return await p((()=>!i.updating)),i}async _drainWorkflowStack(e){const t=this._workflowStack,a=[];for(;t.length>0;){const o=t.pop();this._sketchStack.pop();const r=e(o).then((()=>o.destroy()));this._updatingHandles.addPromise(r),a.push(r)}await Promise.all(a)}_makeRelatedRecordAttributes(e){const{parentFeature:t,relatedLayer:a,relationshipId:o}=e;if(!M(t))return;const r=a.relationships?.find((e=>e.id===o));if(!r)return void x("relationship-not-found","Could not begin creating a related record because the relationship specified could not be found on the destination layer.");if("origin"===r.role)return void x("unsupported-role","Creating new related records in the 'origin' table of a relationship is not yet supported");const i=t.sourceLayer;r.relatedTableId!==i.layerId&&x("invalid-argument-combination","The given parent feature does not belong to the relationship designated by the given relationship ID.");const s=i.relationships?.find((e=>e.id===o));if(!s)return void x("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||x("no-key-on-origin-feature","The given parent feature does not have a value for the relationship's origin primary key field."),{[r.keyField]:n}}async _popWorkflow(){this._workflowStack.pop()?.destroy(),this._sketchStack.pop();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});const o=this._sketchStack,r=await(e?.start()),i=o.peek();r?(i?.exit(),o.push(r)):o.push(this._cloneSketchController(i)),this._workflowStack.push(e);const s=await this._reconcileWorkflowStack();if(s.failureCount>0)throw new a("editor:failed-to-start-updating-feature","Failed to enter the provided workflow.",s)}async _reconcileWorkflowStack(){const e=this._workflowStack,t=this._sketchStack;try{const a=e.peek();return await(a?.enter()),await(t.peek()?.enter()),{activeWorkflow:a,failureCount:0}}catch(a){e.pop().destroy(),t.pop();const{activeWorkflow:o,failureCount:r}=await this._reconcileWorkflowStack();return{activeWorkflow:o,failureCount:r+1}}}_cloneSketchController(e){return{enter:e?.enter??(async()=>{}),exit:e?.exit??(async()=>{})}}_workflowRequiresSketchViewModel(e){const{type:t}=e;return"update-feature"===t||"create-features"===t&&!v(e.data.creationInfo?.layer)}static _createWorkflowSteps(e,t="awaiting-feature-to-update"){const{data:r}=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}=r.viewModel,a=r.viewModel.view;let d=null;e.addHandles(o((()=>{d=i(d)})),this.id),r.rootFeature=null,r.candidates=[];const c=a.on("immediate-click",(async o=>{o.stopPropagation(),t.location=o.mapPoint,t.visible=!0,d?.abort();const{editableItems:i}=r.viewModel;d=new AbortController;const c=await new Promise(((e,t)=>{s(d?.signal,(()=>t(n()))),e(A(i,a,o,d?.signal))}));l(d),r.candidates=c.filter((e=>"fulfilled"===e.status)).flatMap((e=>e.value)),t.visible=1===r.candidates.length,0!==r.candidates.length&&(1===r.candidates.length?(r.rootFeature=r.candidates[0],e.go("editing-existing-feature").catch((()=>{})).then((()=>t.visible=!1))):e.next())}));a.focus(),e.addHandles(c,this.id)},async tearDown(){0===r.candidates.length&&(r.viewModel.spinnerViewModel.visible=!1),e.removeHandles(this.id)}}),"awaiting-update-feature-candidate":()=>({id:"awaiting-update-feature-candidate",async setUp(){r.rootFeature=null;const{view:t}=r.viewModel;if(!t)return;const a=new y({view:t});e.addHandles([u((()=>r.rootFeature),((e,t)=>{a.remove(t),a.add(e)}),w),o((()=>a.removeAll()))],this.id)},async tearDown(){e.removeHandles(this.id)}}),"editing-existing-feature":()=>({id:"editing-existing-feature",async setUp(){const{rootFeature:t,viewModel:i}=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),i.spinnerViewModel.visible=!1;const s=d((async()=>{await p((()=>!e.updating)),e.previous()})),{featureFormViewModel:n}=r.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(){r.viewModel.attachmentsViewModel.mode="view"}}),"editing-attachment":()=>({id:"editing-attachment",parent:"editing-existing-feature",async setUp(){},async tearDown(){r.viewModel.attachmentsViewModel.mode="view"}})})}};e([f()],R.prototype,"activeEditableItem",null),e([f()],R.prototype,"activeWorkflow",null),e([f()],R.prototype,"nestedWorkflowCount",null),e([f()],R.prototype,"shouldShowAttachments",null),e([f()],R.prototype,"shouldAllowAttachmentEditing",null),e([f()],R.prototype,"hasPendingEdits",null),e([f()],R.prototype,"helpMessage",null),e([f()],R.prototype,"reliesOnOwnerAdminPrivileges",null),e([f()],R.prototype,"hasInvalidFormTemplate",null),e([f()],R.prototype,"hasUnsupportedFields",null),R=j=e([m(I)],R);const x=(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."),P=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{addMany as t}from"../../core/arrayUtils.js";import{createTask as r}from"../../core/asyncUtils.js";import"../../core/has.js";import{handlesGroup as i,makeHandle as n}from"../../core/handleUtils.js";import{clone as a}from"../../core/lang.js";import{whenOrAbort as s,throwIfAborted 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{featureHasFields as d,fixFields as f,getDisplayFieldName as m}from"../../layers/support/fieldUtils.js";import{calculateTolerance as g}from"../../renderers/support/clickToleranceUtils.js";import{meterIn as h}from"../../renderers/support/lengthUtils.js";import{getTransformationType as b,TransformationType as w}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import{getRotationAngle as v,getSize as S}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{sceneLayerEditingEnabled as j,i3sPatchingEnabled as U}from"../../support/featureFlags.js";import{to3D as I}from"../../symbols/support/symbolConversion.js";import{getDisplayedSymbol as V}from"../../symbols/support/symbolUtils.js";import{GraphicState as z}from"../../views/3d/layers/graphics/GraphicState.js";import{createQueryGeometry as F}from"../../views/support/drapedUtils.js";import{hitTestSelectSimilarDistance as L,filterGraphicHits as T}from"../../views/support/hitTestSelectUtils.js";function x(e){const t=e.sourceLayer;if(!t||"feature"!==t.type||!P(t.renderer))return{rotation:null,size:null};let r=null,i=null;const n=t.renderer.getVisualVariablesForType("rotation").filter((t=>(!t.axis||"heading"===t.axis)&&t.field&&!t.valueExpression&&null!=v(t,e)));1===n.length&&(r=E(n[0],t));const a=t.renderer.getVisualVariablesForType("size").filter((t=>t.field&&!t.useSymbolValue&&!t.valueExpression&&b(t)===w.RealWorldSize&&null!=S(t,e)));return 1===a.length&&(i=A(a[0],t)),{rotation:r,size:i}}function E(e,t){const r="heading"===(e.axis||"heading")&&"arithmetic"===e.rotationType?-1:1,i=e.field,n=t.fields&&t.fields.filter((e=>e.name===i)),a=n&&1===n.length?n[0].type:"double",s={initial:0,current:0};return{field:i,fieldType:a,getDefault:()=>Promise.resolve(0),getValue:e=>(s.current=s.initial-r*e,M((s.current+360)%360,a)),initValue:e=>{s.initial=null!=e?e:s.current,s.current=0},isUpdatingInteractively:!1,rotationType:e.rotationType??"geographic"}}function k(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 O(e,t,r){if(null==t)return 0;const{symbol:i}=I(t);if(null==i||"web-style"===i.type||"cim"===i.type)return 0;const n=i.symbolLayers.at(0);if(!n)return 0;switch(n.type){case"icon":{const{computeIconLayerResourceSize:e}=await import("../../symbols/support/symbolLayerUtils.js");return n.size||Math.min(ie.icon,(await e(n,ie.icon))[0])||ie.icon}case"text":return n.size||ie.text;case"line":return n.size||ie.line;case"object":{const{computeObjectLayerResourceSize:t}=await import("../../symbols/support/symbolLayerUtils.js");return k(await t(n,e.scale/ie.viewScaleSizeFactor),r)}case"path":return(null!=n.width?n.width:n.height)||e.scale/ie.viewScaleSizeFactor;case"extrude":return n.size||e.scale/ie.viewScaleSizeFactor;default:return 0}}function A(e,t){const r=e.field,i=e.axis,n=t.fields&&t.fields.filter((e=>e.name===r)),a=n&&1===n.length?n[0].type:"double",s={updating:!1,initial:0,current:0},l=h[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:r,fieldType:a,getDefault:async(e,t)=>M(o(await O(t,e,i)),a),getValue:(e,t)=>(s.initial||(s.initial=t.pixelSizeAt(t.center)),s.current=s.initial*e,M(s.current,a)),initValue:e=>{s.initial=null!=e?e:s.current,s.current=0},isUpdatingInteractively:!1,displayUnit:le(e.valueUnit),axis:e.axis}}function M(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 P(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 R(e,t,r){const i=await V(e,{useSourceLayer:!0,ignoreGraphicSymbol:!0,webStyleCache:t,scale:r});null!=y(e.symbol,i)&&(e.symbol=i)}function C(e){if(!e)throw new Error("no geometry type");return"multipatch"===e?"mesh":e}async function D(e,t,r,a){(await G(e,t,a)).remove();const s=e.on("create",(async i=>{if("cancel"===i.state){(await G(e,t,a)).remove()}if("complete"===i.state){const n=i.graphic;n.sourceLayer||(n.sourceLayer=t.layer),n.attributes||(n.attributes={...t.template?.prototype.attributes});const s="2d"===e.view?.type?e.view?.scale:null;await R(n,a,s),r(n)}}));return i([s,n((()=>e.cancel()))])}async function G(e,t,r){const i=t.layer,a={...t.template?.prototype.attributes,...t.attributeOverrides};let s=null;const{view:l}=e,u="2d"===l?.type;if(await Z(e,i,a,r,u?l.scale:null),u){const t=o((t=>Z(e,i,a,r,t)));s=c((()=>l.scale),(e=>t(e)))}const{data:p,editing:y}=i.capabilities;return e.layer.elevationInfo=i.elevationInfo,await e.create(C(i.geometryType),{graphicProperties:{attributes:a,sourceLayer:i},hasZ:p.supportsZ,defaultZ:y.zDefault??e.defaultCreateOptions.defaultZ,geometryToPlace:t.geometryToPlace??void 0}),s??n()}async function Z(t,r,i,n,a){const s=new e({sourceLayer:r,attributes:i}),{rotation:l,size:o}=x(s);let c=await V(s,{useSourceLayer:!0,webStyleCache:n,scale:a}),u=!1;for(const e of[o,l]){if(null==e)continue;null==i[e.field]&&(i[e.field]=await e.getDefault(c,t.view),u=!0)}switch(u&&(c=await V(s,{useSourceLayer:!0,webStyleCache:n,scale:a})),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}q(t.tooltipOptions,o,l)}function q(e,t,r){e.visualVariables=null!=t||null!=r?{size:null!=t?{unit:t.displayUnit,axis:t.axis,valueType:t.fieldType}:null,rotation:null!=r?{valueType:r.fieldType,rotationType:r.rotationType??"geographic"}:null}:null}function Q(e,t){return e?e.find((e=>e.layer===t)):void 0}async function B(e,t,r,i){switch(t.type){case"3d":return W(e,t,r,i);case"2d":return _(e,t,r,i)}}async function W(e,r,i,n){if(0===e.length)return[];const{updatable:a,graphicsByLayer:l}=await i.async((async()=>{const{results:t}=await s(L(r,i),n),a=new Map,l=e=>{const t=e.layer,r=a.get(t);if(!r){const e=new Array;return a.set(t,e),e}return r};T(t).forEach((({graphic:e})=>l(e).push(e)));const o=e.filter((({supports:e,layer:t})=>e.includes("update")&&a.has(t)));return 0!==o.length&&i.stopPropagation(),{updatable:o,graphicsByLayer:a}}));return s(Promise.allSettled(a.map((async({layer:e})=>{const r=l.get(e),i=H(e);if(r.every((e=>d(i,e))))return r;const a=[];for(const n of r){a.push(n.getObjectId());const e=Object.keys(n.attributes);t(i,e)}const s=e.createQuery();return s.returnGeometry=!1,s.objectIds=a,s.outFields=f(e.fieldsIndex,i),e.queryFeatures(s,{signal:n}).then((({features:e})=>e))}))),n)}async function _(e,t,r,i){if(0===e.length)return[];let n=null;const a=await r.async((async()=>{const{results:a}=await s(t.hitTest(r),i);if(0===a.length)return[];const l=new Set;n=T(a),n.forEach((({graphic:e})=>e&&l.add(e.layer)));const o=e.items.filter((({layer:e,supports:t,attachmentsOnUpdateEnabled:r})=>l.has(e)&&(t.includes("update")||t.includes("delete")||r)));return o.length>0&&r.stopPropagation(),o}));return s(Promise.allSettled(a.map((async({layer:e})=>{const a=e.createQuery();a.returnGeometry=!1,a.outFields=H(e);const s="renderer"in e?g({renderer:e.renderer,event:r}):0;a.geometry=F(r.mapPoint,s,t),a.outSpatialReference=t.spatialReference;const{features:l}=await e.queryFeatures(a,{signal:i});return n?.forEach((({graphic:t})=>{t.layer!==e||l.some((e=>e.getObjectId()===t.getObjectId()))||l.push(t)})),l}))),i)}function H(e){return f(e.fieldsIndex,[e.objectIdField,m({displayField:"displayField"in e?e.displayField:null,fields:e.fields})])}async function J(e,t,r){const{sourceLayer:i}=e,n=i.createQuery();n.objectIds=[e.getAttribute(i.objectIdField)],n.outFields=["*"],n.outSpatialReference=t,n.returnM=i.capabilities.data.supportsM,n.returnZ=i.capabilities.data.supportsZ,j()&&U()&&"scene"===i.type&&null!=i.infoFor3D&&(n.returnGeometry=!0,n.formatOf3DObjects="3D_glb");const a=await i.queryFeatures(n,{signal:r});l(r);return a.features[0]}async function K(e){const{graphic:t,sketchViewModel:r,sourceLayer:i,visualVariables:n,webStyleCache:a}=e;let s=!1;const{rotation:l,size:o}=n;if([l,o].forEach((async e=>{if(null==e)return;const i=t.getAttribute(e.field);if(null!=i)e.initValue(i);else{const i=await e.getDefault(t.symbol,r.view);e.initValue(i),t.setAttribute(e.field,i),s=!0}})),s){const e="2d"===r.view?.type?r.view.scale:null;await R(t,a,e)}const c={multipleSelectionEnabled:!1};return"point"===i.geometryType&&(c.enableRotation=null!=l,c.enableScaling=null!=o),q(r.tooltipOptions,o,l),r.layer.elevationInfo=i.elevationInfo,r.update(t,c)}function N(e){return null==e||"rotate-start"!==e.type&&"rotate"!==e.type&&"rotate-stop"!==e.type?null:e}function X(e){return null==e||"scale-start"!==e.type&&"scale"!==e.type&&"scale-stop"!==e.type?null:e}async function Y(e,t,r,i,n){if(null==t.geometry||"point"!==t.geometry?.type)return;const a=i.rotation,s=N(r.toolEventInfo);if(null!=a&&null!=s)if("rotate-stop"===s.type)a.isUpdatingInteractively=!1,a.initValue();else{a.isUpdatingInteractively=!0;const{field:r,getValue:i}=a;t.setAttribute(r,i(s.angle,e))}const l=i.size,o=X(r.toolEventInfo);if(null!=l&&null!=o)if("scale-stop"===o.type)l.isUpdatingInteractively=!1,l.initValue();else{l.isUpdatingInteractively=!0;const{field:r,getValue:i}=l;t.setAttribute(r,i(o.xScale,e))}await R(t,n,"2d"===e.type?e.scale:null)}async function $(e,t,r,a,s,l){await R(e,l,"2d"===a.type?a.scale:null);let u=null;if("2d"===r?.view?.type){const t=o((t=>R(e,l,t)));u=c((()=>r?.view?.scale),(e=>t(e)))}a.map.add(r.layer);const p=e.sourceLayer,y=pe(a,p);await re(a,e),await K({graphic:e,sketchViewModel:r,sourceLayer:p,visualVariables:t,webStyleCache:l});let d=null;y.then((e=>d=e)).catch((()=>{}));const f=t.size,m=t.rotation,g=c((()=>e.attributes),(async t=>{let r=!1;for(const i in t){const n=t[i];n!==e.getAttribute(i)&&(e.setAttribute(i,n),null==f||f.isUpdatingInteractively||f.field!==i||f.initValue(n),null==m||m.isUpdatingInteractively||m.field!==i||m.initValue(n),(null==d||d.requiredFields.includes(i))&&(r=!0))}r&&await R(e,l,"2d"===a.type?a.scale:null)})),h=r.on("update",(async e=>{const i=e.graphics[0];if("complete"===e.state)return K({graphic:i,sketchViewModel:r,sourceLayer:p,visualVariables:t,webStyleCache:l});await Y(a,i,e,t,l),s(fe(i),e)})),b=r.on(["undo","redo"],(async e=>{s(fe(e.graphics[0]),e)}));return i([b,h,n((()=>r.cancel())),g,u])}function ee(e,t,a){const s=e.view;e.layer.add(a);const o=t.sourceLayer,c=t.layer,p=t.getAttribute(c.objectIdField);let y=null;function d(e){y?.abort(),y=r((async t=>{const r=await pe(s,o);l(t),r.setVisibility?.(p,e)}))}return d(!1),i([te(s,a,(e=>d(!e))),n((async()=>{d(!0);try{const e=await pe(s,o);await u((()=>!e.updating))}finally{e.layer.remove(a)}}))])}function te(e,t,r){if("3d"===e.type){const n=new z({graphic:t});return i([e.trackGraphicState(n),c((()=>n.displaying),r)])}return c((()=>t.visible),r)}async function re(e,t){if("3d"===e.type){const r=new z({graphic:t}),i=e.trackGraphicState(r);await u((()=>r.displaying)),i.remove()}else await u((()=>t.visible))}const ie={icon:p(24),text:p(12),line:p(1),viewScaleSizeFactor:100};function ne(e,t,r){let i=!1;return e.filter((e=>!!i||(i=e===t,i))).map((e=>r[e]()))}function ae(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 se(e,t){if(e.viewModel.syncFeatureTemplates(),"awaiting-feature-creation-info"===t[0].id){const r=ae(e.viewModel.featureTemplatesViewModel.items);null==r||r.supportsUpload||(e.creationInfo=r,t.shift())}return t}function le(e){switch(e){case"unknown":case"decimal-degrees":return null;default:return e}}function oe(e){e.filesEnabled=!0,e.mode="view",e.capabilities={editing:!0,operations:{add:!0,update:!0,delete:!0}}}function ce(e){const{creationInfo:t,viewModel:r}=e;if(!t)return!1;const{layer:i}=t,n=r.editableItems.find((e=>e.layer===i));if(n)return n.attachmentsOnCreateEnabled;const a=i.capabilities?.data,s=r.layerInfos?.find((e=>e.layer===i));return!(!(a&&"supportsAttachment"in a&&a.supportsAttachment)||s&&(!1===s.allowAttachments||!1===s.attachmentsOnUpdateEnabled))}const ue=e=>/-stop/.test(e)||/vertex-/.test(e),pe=(e,t)=>{const r="subtype-sublayer"===t.type?t.parent:t;return e.whenLayerView(r)};function ye(e){return"createInteractiveEditSession"in e}const de=Symbol();function fe(e){const t=e.geometry;if("mesh"===t?.type){const r=e.cloneShallow();return r.attributes=a(e.attributes),r.geometry=t.cloneShallow(),r.geometry.transform=t.transform?.clone()??null,r}return e.clone()}function me(e){const t=e.cursor;return e.cursor="progress",n((()=>e.cursor=t))}export{de as UsesSketchViewModelSymbol,se as avoidFeatureTemplateSelectionWithOnlyOneItem,ye as canCreateInteractiveEditSession,fe as cloneGraphicExceptMesh,ne as createWorkflowSteps,B as fetchCandidates,J as fetchFullFeature,Q as findLayerInfo,x as getVisualVariableAttributes,ue as isTerminalUpdateEventType,oe as prepareAttachmentsForCreateWorkflow,D as setUpFeatureAdd,$ as setUpGeometryUpdate,ce as shouldShowAttachmentsForCreateWorkflow,me as showProgressCursor,ie as sizeDefaults,le as sizeVariableUnitToLengthUnit,G as startCreatingNewFeature,K as startUpdatingFeature,ee as swapForEditingSession,R as updateGraphicSymbolWhenRequired,Y as visualVariableInteractiveUpdate,pe as whenEditorLayerView,re as whenGraphicDisplayed};
5
+ import e from"../../Graphic.js";import{addMany as t}from"../../core/arrayUtils.js";import{createTask as r}from"../../core/asyncUtils.js";import"../../core/has.js";import{handlesGroup as i,makeHandle as a}from"../../core/handleUtils.js";import{clone as n}from"../../core/lang.js";import{whenOrAbort as s,throwIfAborted 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{featureHasFields as d,fixFields as f,getDisplayFieldName as m}from"../../layers/support/fieldUtils.js";import{calculateTolerance as h}from"../../renderers/support/clickToleranceUtils.js";import{meterIn as b}from"../../renderers/support/lengthUtils.js";import{getTransformationType as g,TransformationType as w}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import{getRotationAngle as v,getSize as S}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{sceneLayerEditingEnabled as j,i3sPatchingEnabled as U}from"../../support/featureFlags.js";import{to3D as V}from"../../symbols/support/symbolConversion.js";import{getDisplayedSymbol as I}from"../../symbols/support/symbolUtils.js";import{GraphicState as z}from"../../views/3d/layers/graphics/GraphicState.js";import{createQueryGeometry as F}from"../../views/support/drapedUtils.js";import{hitTestSelectSimilarDistance as L,filterGraphicHits as T}from"../../views/support/hitTestSelectUtils.js";function x(e){const t=e.sourceLayer;if(!t||"feature"!==t.type||!C(t.renderer))return{rotation:null,size:null};let r=null,i=null;const a=t.renderer.getVisualVariablesForType("rotation").filter((t=>(!t.axis||"heading"===t.axis)&&t.field&&!t.valueExpression&&null!=v(t,e)));1===a.length&&(r=k(a[0],t));const n=t.renderer.getVisualVariablesForType("size").filter((t=>t.field&&!t.useSymbolValue&&!t.valueExpression&&g(t)===w.RealWorldSize&&null!=S(t,e)));return 1===n.length&&(i=M(n[0],t)),{rotation:r,size:i}}function k(e,t){const r="heading"===(e.axis||"heading")&&"arithmetic"===e.rotationType?-1:1,i=e.field,a=t.fields&&t.fields.filter((e=>e.name===i)),n=a&&1===a.length?a[0].type:"double",s={initial:0,current:0};return{field:i,fieldType:n,getDefault:()=>Promise.resolve(0),getValue:e=>(s.current=s.initial-r*e,O((s.current+360)%360,n)),initValue:e=>{s.initial=null!=e?e:s.current,s.current=0},isUpdatingInteractively:!1,rotationType:e.rotationType??"geographic"}}function E(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 A(e,t,r){if(null==t)return 0;const{symbol:i}=V(t);if(null==i||"web-style"===i.type||"cim"===i.type)return 0;const a=i.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(ie.icon,(await e(a,ie.icon))[0])||ie.icon}case"text":return a.size||ie.text;case"line":return a.size||ie.line;case"object":{const{computeObjectLayerResourceSize:t}=await import("../../symbols/support/symbolLayerUtils.js");return E(await t(a,e.scale/ie.viewScaleSizeFactor),r)}case"path":return(null!=a.width?a.width:a.height)||e.scale/ie.viewScaleSizeFactor;case"extrude":return a.size||e.scale/ie.viewScaleSizeFactor;default:return 0}}function M(e,t){const r=e.field,i=e.axis,a=t.fields&&t.fields.filter((e=>e.name===r)),n=a&&1===a.length?a[0].type:"double",s={updating:!1,initial:0,current:0},l=b[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:r,fieldType:n,getDefault:async(e,t)=>O(o(await A(t,e,i)),n),getValue:(e,t)=>(s.initial||(s.initial=t.pixelSizeAt(t.center)),s.current=s.initial*e,O(s.current,n)),initValue:e=>{s.initial=null!=e?e:s.current,s.current=0},isUpdatingInteractively:!1,displayUnit:le(e.valueUnit),axis:e.axis}}function O(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 P(e,t,r){const i=await I(e,{useSourceLayer:!0,ignoreGraphicSymbol:!0,webStyleCache:t,scale:r});null!=y(e.symbol,i)&&(e.symbol=i)}function R(e){if(!e)throw new Error("no geometry type");return"multipatch"===e?"mesh":e}async function D(e,t,r,n){(await G(e,t,n)).remove();const s=e.on("create",(async i=>{if("cancel"===i.state){(await G(e,t,n)).remove()}if("complete"===i.state){const a=i.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 P(a,n,s),r(a)}}));return i([s,a((()=>e.cancel()))])}async function G(e,t,r){const i=t.layer,n={...t.template?.prototype.attributes,...t.attributeOverrides};let s=null;const{view:l}=e,u="2d"===l?.type;if(await Z(e,i,n,r,u?l.scale:null),u){const t=o((t=>Z(e,i,n,r,t)));s=c((()=>l.scale),(e=>t(e)))}const{data:p,editing:y}=i.capabilities;return e.layer.elevationInfo=i.elevationInfo,await e.create(R(i.geometryType),{graphicProperties:{attributes:n,sourceLayer:i},hasZ:p.supportsZ,defaultZ:y.zDefault??e.defaultCreateOptions.defaultZ,geometryToPlace:t.geometryToPlace??void 0}),s??a()}async function Z(t,r,i,a,n){const s=new e({sourceLayer:r,attributes:i}),{rotation:l,size:o}=x(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==i[e.field]&&(i[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}q(t.tooltipOptions,o,l)}function q(e,t,r){e.visualVariables=null!=t||null!=r?{size:null!=t?{unit:t.displayUnit,axis:t.axis,valueType:t.fieldType}:null,rotation:null!=r?{valueType:r.fieldType,rotationType:r.rotationType??"geographic"}:null}:null}function Q(e,t){return e?e.find((e=>e.layer===t)):void 0}async function B(e,t,r,i){switch(t.type){case"3d":return W(e,t,r,i);case"2d":return _(e,t,r,i)}}async function W(e,r,i,a){if(0===e.length)return[];const{updatable:n,graphicsByLayer:l}=await i.async((async()=>{const{results:t}=await s(L(r,i),a),n=new Map,l=e=>{const t=e.layer,r=n.get(t);if(!r){const e=new Array;return n.set(t,e),e}return r};T(t).forEach((({graphic:e})=>l(e).push(e)));const o=e.filter((({supports:e,layer:t})=>e.includes("update")&&n.has(t)));return 0!==o.length&&i.stopPropagation(),{updatable:o,graphicsByLayer:n}}));return s(Promise.allSettled(n.map((async({layer:e})=>{const r=l.get(e),i=H(e);if(r.every((e=>d(i,e))))return r;const n=[];for(const a of r){n.push(a.getObjectId());const e=Object.keys(a.attributes);t(i,e)}const s=e.createQuery();return s.returnGeometry=!1,s.objectIds=n,s.outFields=f(e.fieldsIndex,i),e.queryFeatures(s,{signal:a}).then((({features:e})=>e))}))),a)}async function _(e,t,r,i){if(0===e.length)return[];let a=null;const n=await r.async((async()=>{const{results:n}=await s(t.hitTest(r),i);if(0===n.length)return[];const l=new Set;a=T(n),a.forEach((({graphic:e})=>e&&l.add(e.layer)));const o=e.items.filter((({layer:e,supports:t,attachmentsOnUpdateEnabled:r})=>l.has(e)&&(t.includes("update")||t.includes("delete")||r)));return o.length>0&&r.stopPropagation(),o}));return s(Promise.allSettled(n.map((async({layer:e})=>{const n=e.createQuery();n.returnGeometry=!1,n.outFields=H(e);const s="renderer"in e?h({renderer:e.renderer,event:r}):0;n.geometry=F(r.mapPoint,s,t),n.outSpatialReference=t.spatialReference;const{features:l}=await e.queryFeatures(n,{signal:i});return a?.forEach((({graphic:t})=>{t.layer!==e||l.some((e=>e.getObjectId()===t.getObjectId()))||l.push(t)})),l}))),i)}function H(e){return f(e.fieldsIndex,[e.objectIdField,m({displayField:"displayField"in e?e.displayField:null,fields:e.fields})])}async function J(e,t,r){const{sourceLayer:i}=e,a=i.createQuery();a.objectIds=[e.getAttribute(i.objectIdField)],a.outFields=["*"],a.outSpatialReference=t,a.returnM=i.capabilities.data.supportsM,a.returnZ=i.capabilities.data.supportsZ,j()&&U()&&"scene"===i.type&&null!=i.infoFor3D&&(a.returnGeometry=!0,a.formatOf3DObjects="3D_glb");const n=await i.queryFeatures(a,{signal:r});l(r);return n.features[0]}async function K(e){const{graphic:t,sketchViewModel:r,sourceLayer:i,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 i=t.getAttribute(e.field);if(null!=i)e.initValue(i);else{const i=await e.getDefault(t.symbol,r.view);e.initValue(i),t.setAttribute(e.field,i),s=!0}})),s){const e="2d"===r.view?.type?r.view.scale:null;await P(t,n,e)}const c={multipleSelectionEnabled:!1};return"point"===i.geometryType&&(c.enableRotation=null!=l,c.enableScaling=null!=o),q(r.tooltipOptions,o,l),r.layer.elevationInfo=i.elevationInfo,r.update(t,c)}function N(e){return null==e||"rotate-start"!==e.type&&"rotate"!==e.type&&"rotate-stop"!==e.type?null:e}function X(e){return null==e||"scale-start"!==e.type&&"scale"!==e.type&&"scale-stop"!==e.type?null:e}async function Y(e,t,r,i,a){if(null==t.geometry||"point"!==t.geometry?.type)return;const n=i.rotation,s=N(r.toolEventInfo);if(null!=n&&null!=s)if("rotate-stop"===s.type)n.isUpdatingInteractively=!1,n.initValue();else{n.isUpdatingInteractively=!0;const{field:r,getValue:i}=n;t.setAttribute(r,i(s.angle,e))}const l=i.size,o=X(r.toolEventInfo);if(null!=l&&null!=o)if("scale-stop"===o.type)l.isUpdatingInteractively=!1,l.initValue();else{l.isUpdatingInteractively=!0;const{field:r,getValue:i}=l;t.setAttribute(r,i(o.xScale,e))}await P(t,a,"2d"===e.type?e.scale:null)}async function $({feature:e,featureClone:t,visualVariableAttributes:r,sketchViewModel:n,view:s,onUpdate:l,webStyleCache:u}){await P(t,u,"2d"===s.type?s.scale:null);let p=null;if("2d"===n?.view?.type){const e=o((e=>P(t,u,e)));p=c((()=>n?.view?.scale),(t=>e(t)))}s.map.add(n.layer);const y=t.sourceLayer,d=pe(s,y);await re(s,t),await K({graphic:t,sketchViewModel:n,sourceLayer:y,visualVariables:r,webStyleCache:u});let f=null;d.then((e=>f=e)).catch((()=>{}));const m=r.size,h=r.rotation,b=c((()=>e.attributes),(async e=>{let r=!1;for(const i in e){const a=e[i];a!==t.getAttribute(i)&&(t.setAttribute(i,a),null==m||m.isUpdatingInteractively||m.field!==i||m.initValue(a),null==h||h.isUpdatingInteractively||h.field!==i||h.initValue(a),(null==f||f.requiredFields.includes(i))&&(r=!0))}r&&await P(t,u,"2d"===s.type?s.scale:null)})),g=n.on("update",(async e=>{const t=e.graphics[0];if("complete"===e.state)return K({graphic:t,sketchViewModel:n,sourceLayer:y,visualVariables:r,webStyleCache:u});await Y(s,t,e,r,u),l(fe(t),e)})),w=n.on(["undo","redo"],(async e=>{l(fe(e.graphics[0]),e)}));return i([w,g,a((()=>n.cancel())),b,p])}function ee(e,t,n){const s=e.view;e.layer.add(n);const o=t.sourceLayer,c=t.layer,p=t.getAttribute(c.objectIdField);let y=null;function d(e){y?.abort(),y=r((async t=>{const r=await pe(s,o);l(t),r.setVisibility?.(p,e)}))}return d(!1),i([te(s,n,(e=>d(!e))),a((async()=>{d(!0);try{const e=await pe(s,o);await u((()=>!e.updating))}finally{e.layer.remove(n)}}))])}function te(e,t,r){if("3d"===e.type){const a=new z({graphic:t});return i([e.trackGraphicState(a),c((()=>a.displaying),r)])}return c((()=>t.visible),r)}async function re(e,t){if("3d"===e.type){const r=new z({graphic:t}),i=e.trackGraphicState(r);await u((()=>r.displaying)),i.remove()}else await u((()=>t.visible))}const ie={icon:p(24),text:p(12),line:p(1),viewScaleSizeFactor:100};function ae(e,t,r){let i=!1;return e.filter((e=>!!i||(i=e===t,i))).map((e=>r[e]()))}function ne(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 se(e,t){if(e.viewModel.syncFeatureTemplates(),"awaiting-feature-creation-info"===t[0].id){const r=ne(e.viewModel.featureTemplatesViewModel.items);null==r||r.supportsUpload||(e.creationInfo=r,t.shift())}return t}function le(e){switch(e){case"unknown":case"decimal-degrees":return null;default:return e}}function oe(e){e.filesEnabled=!0,e.mode="view",e.capabilities={editing:!0,operations:{add:!0,update:!0,delete:!0}}}function ce(e){const{creationInfo:t,viewModel:r}=e;if(!t)return!1;const{layer:i}=t,a=r.editableItems.find((e=>e.layer===i));if(a)return a.attachmentsOnCreateEnabled;const n=i.capabilities?.data,s=r.layerInfos?.find((e=>e.layer===i));return!(!(n&&"supportsAttachment"in n&&n.supportsAttachment)||s&&(!1===s.allowAttachments||!1===s.attachmentsOnUpdateEnabled))}const ue=e=>/-stop/.test(e)||/vertex-/.test(e),pe=(e,t)=>{const r="subtype-sublayer"===t.type?t.parent:t;return e.whenLayerView(r)};function ye(e){return"createInteractiveEditSession"in e}const de=Symbol();function fe(e){const t=e.geometry;if("mesh"===t?.type){const r=e.cloneShallow();return r.attributes=n(e.attributes),r.geometry=t.cloneShallow(),r.geometry.transform=t.transform?.clone()??null,r}return e.clone()}function me(e){const t=e.cursor;return e.cursor="progress",a((()=>e.cursor=t))}export{de as UsesSketchViewModelSymbol,se as avoidFeatureTemplateSelectionWithOnlyOneItem,ye as canCreateInteractiveEditSession,fe as cloneGraphicExceptMesh,ae as createWorkflowSteps,B as fetchCandidates,J as fetchFullFeature,Q as findLayerInfo,x as getVisualVariableAttributes,ue as isTerminalUpdateEventType,oe as prepareAttachmentsForCreateWorkflow,D as setUpFeatureAdd,$ as setUpGeometryUpdate,ce as shouldShowAttachmentsForCreateWorkflow,me as showProgressCursor,ie as sizeDefaults,le as sizeVariableUnitToLengthUnit,G as startCreatingNewFeature,K as startUpdatingFeature,ee as swapForEditingSession,P as updateGraphicSymbolWhenRequired,Y as visualVariableInteractiveUpdate,pe as whenEditorLayerView,re 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"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import d from"./Attachments.js";import m from"./FeatureForm.js";import p from"./FeatureTemplates.js";import c from"./Spinner.js";import h from"./Widget.js";import{css as u}from"./Editor/css.js";import{workflowDeprecation as g}from"./Editor/deprecationUtils.js";import w from"./Editor/EditorViewModel.js";import{warningIcon as f}from"./Editor/icons.js";import{isModelUpload as v}from"./Editor/modelUploadUtils.js";import _ from"./Editor/VisibleElements.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 A}from"./Editor/components/Notices.js";import{loadPanelContentComponents as E,PanelContent as T,PanelContentSection as j,PanelContentMessage as P}from"./Editor/components/PanelContent.js";import{PanelToolbar as L,loadPanelToolbarComponents as U}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 G}from"./support/componentsUtils.js";import{globalCss as H}from"./support/globalCss.js";import{incrementHeadingLevel as R,Heading as q}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as N}from"./support/decorators/messageBundle.js";import{vmEvent as z}from"./support/decorators/vmEvent.js";import{tsx as $}from"./support/jsxFactory.js";import{substitute as J}from"../intl/substitute.js";const K="esri.widgets.Editor",Q=t.getLogger(K);let X=class extends h{constructor(e,t){super(e,t),this._featureForm=new m,this._attachments=new d({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new p({enableListScroll:!1,renderItemContentEnd:e=>e.supportsUpload?$("calcite-icon",{class:u.templateItemContentEnd,icon:"upload-to",key:"upload-icon"}):null,renderItemLabel:e=>e.label,renderCustomGroupContent:e=>this._renderCustomTemplateGroupContent(e)}),this._filterText="",this._prompt=null,this._spinner=new c,this.headingLevel=4,this.iconClass=u.widgetIcon,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.supportingWidgetDefaults=null,this.viewModel=new w,this.visibleElements=new _,this._renderSelectIcon=()=>$("calcite-icon",{icon:"cursor",slot:"content-start"}),this.EditorPanel=({heading:e,key:t},...s)=>$("calcite-flow-item",{closable:!1,heading:e,headingLevel:this.headingLevel,key:t,loading:this._loading,onCalciteFlowItemBack:this._onBack},$(L,{editorViewModel:this.viewModel,messagesCommon:this.messagesCommon,visibleElements:this.visibleElements}),...s),this._showDiscardEditsPrompt=()=>{const{messages:e,activeWorkflow:t}=this;if("create-features"===t?.type&&v(t.data.creationInfo))return this._showPrompt("success"===t.data.upload?.state?e.modelUploads.cancelPlacementPrompt:e.modelUploads.cancelUploadPrompt);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((()=>R(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:J(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([G({"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(),E(),U(),I(),D(),O()])}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger"}}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 hideTemplatesForInactiveLayers(){return this.viewModel.hideTemplatesForInactiveLayers}set hideTemplatesForInactiveLayers(e){this.viewModel.hideTemplatesForInactiveLayers=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}startCreateWorkflowAtFeatureTypeSelection(){return g(Q,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return g(Q,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return g(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,t=this.classes(u.base,H.widget,H.panel);return e?$("div",{class:t,key:"base"},$("calcite-flow",{key:"flow"},e.pageStack.map((e=>this._renderPage(e)))),this._prompt?$(S,{...this._prompt,headingLevel:this.headingLevel}):void 0):$("div",{class:t,key:"empty"})}_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 $("div",{key:"empty-page"})}_renderAwaitingFeatureCreationInfo(){const{EditorPanel:e,messages:t}=this;return $(e,{heading:t.selectTemplate,key:"templates-panel"},$(T,{key:"feature-templates"},$(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?$(e,{heading:s.createFeatures,key:"upload-details-panel"},$(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(!t)return null;const a="create-features"===t.type&&t.numPendingFeatures>0||"update"===t.type&&"create-features"===t?.activeWorkflow?.type&&t.activeWorkflow?.numPendingFeatures>0;return $(e,{heading:s.createFeatures,key:"create-features-panel"},a?$(x,{editorViewModel:i,headingLevel:r,messages:s,messagesCommon:o,renderAttachments:()=>this._attachments.render(),renderFeatureForm:()=>this._featureForm.render(),onDelete:this._onDelete,onSave:this._onSave}):$(k,{helpMessage:this._helpMessage}))}_renderUpdateFeature(){const{EditorPanel:e,messages:t,messagesCommon:s,headingLevel:o,viewModel:r}=this;return $(e,{heading:t.editFeature,key:"update-feature-panel"},$(x,{editorViewModel:r,headingLevel:o,messages:t,messagesCommon:s,renderAttachments:()=>this._attachments.render(),renderFeatureForm:()=>this._featureForm.render(),onDelete:this._onDelete,onSave:this._onSave}))}_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?$(A,{icon:f,message:o}):null}_renderAttachmentAdding(){const{EditorPanel:e,_attachments:t,messages:s,messagesCommon:o}=this;return $(e,{heading:s.addAttachment,key:"attachment-adding-panel"},$(T,{key:"attachments"},t.render()),$(C,{buttons:[{label:t.submitting?o.cancel:o.add,disabled:t.submitting||!t.selectedFile,onClick:this._onAttachmentAdd}]}))}_renderAttachmentEditing(){const{EditorPanel:e,_attachments:t,activeWorkflow:s,messages:o,messagesCommon:r}=this;return s?$(e,{heading:o.editAttachment,key:"attachment-editing-panel"},$(T,{key:"attachments"},t.render()),s.shouldAllowAttachmentEditing?$(C,{buttons:[{label:r.update,disabled:t.submitting||!t.selectedFile,onClick:this._onAttachmentUpdate},{...this._deleteButtonCommonInfo,onClick:this._onAttachmentDelete,disabled:t.submitting,label:r.delete}]}):void 0):null}_renderReady(){const{EditorPanel:e,messages:t,viewModel:s}=this,o=this._helpMessage;return $(e,{heading:t.widgetLabel,key:"landing-panel"},$(T,{key:"landing-content"},s.editableItems.length?[$(j,{key:"edit-actions"},this._renderUpdateActions()),$(j,{key:"create-actions"},this._renderCreateActions())]:$(P,{key:"no-content"},t.noEditableLayers)),o?$("div",{class:u.helpMessage,key:"footer-actions",slot:"footer"},o):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,viewModel:s}=this,o={id:"select",label:t.select};return $("div",{class:u.updateActions,key:"update-actions"},$(q,{level:R(this.headingLevel)},e.editFeatures),$("calcite-list",{class:u.updateActionsList,selectionAppearance:"border",selectionMode:"single"},V({disabled:!s.canUpdate,grouped:!1,item:o,selectedItem:"awaiting-feature-to-update"===s.activeWorkflow?.stepId?o:void 0,renderIcon:this._renderSelectIcon,onItemSelect:this._onToggleUpdateWorkflow})))}_renderCreateActions(){return $("div",{key:"create-actions"},$(q,{level:R(this.headingLevel)},this.messages.createFeatures),$("div",{class:u.featureTemplatesContainer,key:"templates"},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=J(this.messages.multipleFeaturesTemplate,{total:o.length});return $(e,{heading:r,key:"feature-list"},$(M,{editableItems:t.editableItems,filterText:this._filterText,id:this.id,messagesTemplates:this.messagesTemplates,workflow:s,onFilterTextChange:e=>this._filterText=e,onSelectFeature:(e,s)=>t.selectFeature(e,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,"hideTemplatesForInactiveLayers",null),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(),N("esri/widgets/Editor/t9n/Editor")],X.prototype,"messages",void 0),e([n(),N("esri/t9n/common")],X.prototype,"messagesCommon",void 0),e([n(),N("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({type:_,nonNullable:!0})],X.prototype,"visibleElements",void 0),e([n()],X.prototype,"_helpMessage",null),X=e([l(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"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import d from"./Attachments.js";import p from"./FeatureForm.js";import m from"./FeatureTemplates.js";import c from"./Spinner.js";import h from"./Widget.js";import{css as u}from"./Editor/css.js";import{workflowDeprecation as g}from"./Editor/deprecationUtils.js";import w from"./Editor/EditorViewModel.js";import{warningIcon as f}from"./Editor/icons.js";import{isModelUpload as v}from"./Editor/modelUploadUtils.js";import _ from"./Editor/VisibleElements.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 A}from"./Editor/components/Notices.js";import{loadPanelContentComponents as E,PanelContent as T,PanelContentSection as j,PanelContentMessage as P}from"./Editor/components/PanelContent.js";import{PanelToolbar as L,loadPanelToolbarComponents as U}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 G}from"./support/componentsUtils.js";import{globalCss as H}from"./support/globalCss.js";import{incrementHeadingLevel as R,Heading as q}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as N}from"./support/decorators/messageBundle.js";import{vmEvent as z}from"./support/decorators/vmEvent.js";import{tsx as $}from"./support/jsxFactory.js";import{substitute as J}from"../intl/substitute.js";const K="esri.widgets.Editor",Q=t.getLogger(K);let X=class extends h{constructor(e,t){super(e,t),this._featureForm=new p,this._attachments=new d({visibleElements:{addSubmitButton:!1,cancelAddButton:!1,cancelUpdateButton:!1,deleteButton:!1,errorMessage:!1,progressBar:!1,updateButton:!1}}),this._featureTemplates=new m({enableListScroll:!1,renderItemContentEnd:e=>e.supportsUpload?$("calcite-icon",{class:u.templateItemContentEnd,icon:"upload-to",key:"upload-icon"}):null,renderItemLabel:e=>e.label,renderCustomGroupContent:e=>this._renderCustomTemplateGroupContent(e)}),this._filterText="",this._prompt=null,this._spinner=new c,this.headingLevel=4,this.iconClass=u.widgetIcon,this.messages=null,this.messagesCommon=null,this.messagesTemplates=null,this.supportingWidgetDefaults=null,this.viewModel=new w,this.visibleElements=new _,this._renderSelectIcon=()=>$("calcite-icon",{icon:"cursor",slot:"content-start"}),this.EditorPanel=({heading:e,key:t},...s)=>$("calcite-flow-item",{closable:!1,heading:e,headingLevel:this.headingLevel,key:t,loading:this._loading,onCalciteFlowItemBack:this._onBack},$(L,{editorViewModel:this.viewModel,messagesCommon:this.messagesCommon,visibleElements:this.visibleElements}),...s),this._showDiscardEditsPrompt=()=>{const{messages:e,activeWorkflow:t}=this;if("create-features"===t?.type&&v(t.data.creationInfo))return this._showPrompt("success"===t.data.upload?.state?e.modelUploads.cancelPlacementPrompt:e.modelUploads.cancelUploadPrompt);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||"update"===e.type&&"create-features"===e.activeWorkflow?.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((()=>R(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:J(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([G({"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(),E(),U(),I(),D(),O()])}get _deleteButtonCommonInfo(){return{appearance:"outline",kind:"danger"}}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 hideTemplatesForInactiveLayers(){return this.viewModel.hideTemplatesForInactiveLayers}set hideTemplatesForInactiveLayers(e){this.viewModel.hideTemplatesForInactiveLayers=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}startCreateWorkflowAtFeatureTypeSelection(){return g(Q,"startCreateWorkflowAtFeatureTypeSelection","startCreateFeaturesWorkflowAtFeatureTypeSelection"),this.viewModel.startCreateWorkflowAtFeatureTypeSelection()}startCreateFeaturesWorkflowAtFeatureTypeSelection(){return this.viewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection()}startCreateWorkflowAtFeatureCreation(e){return g(Q,"startCreateWorkflowAtFeatureCreation","startCreateFeaturesWorkflowAtFeatureCreation"),this.viewModel.startCreateWorkflowAtFeatureCreation(e)}startCreateFeaturesWorkflowAtFeatureCreation(e){return this.viewModel.startCreateFeaturesWorkflowAtFeatureCreation(e)}startCreateWorkflowAtFeatureEdit(e){return g(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,t=this.classes(u.base,H.widget,H.panel);return e?$("div",{class:t,key:"base"},$("calcite-flow",{key:"flow"},e.pageStack.map((e=>this._renderPage(e)))),this._prompt?$(S,{...this._prompt,headingLevel:this.headingLevel}):void 0):$("div",{class:t,key:"empty"})}_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 $("div",{key:"empty-page"})}_renderAwaitingFeatureCreationInfo(){const{EditorPanel:e,messages:t}=this;return $(e,{heading:t.selectTemplate,key:"templates-panel"},$(T,{key:"feature-templates"},$(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?$(e,{heading:s.createFeatures,key:"upload-details-panel"},$(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 $(e,{heading:s.createFeatures,key:"create-features-panel"},i?$(x,{editorViewModel:a,headingLevel:r,messages:s,messagesCommon:o,renderAttachments:()=>this._attachments.render(),renderFeatureForm:()=>this._featureForm.render(),onDelete:this._onDelete,onSave:this._onSave}):$(k,{helpMessage:this._helpMessage}))}_renderUpdateFeature(){const{EditorPanel:e,messages:t,messagesCommon:s,headingLevel:o,viewModel:r}=this;return $(e,{heading:t.editFeature,key:"update-feature-panel"},$(x,{editorViewModel:r,headingLevel:o,messages:t,messagesCommon:s,renderAttachments:()=>this._attachments.render(),renderFeatureForm:()=>this._featureForm.render(),onDelete:this._onDelete,onSave:this._onSave}))}_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?$(A,{icon:f,message:o}):null}_renderAttachmentAdding(){const{EditorPanel:e,_attachments:t,messages:s,messagesCommon:o}=this;return $(e,{heading:s.addAttachment,key:"attachment-adding-panel"},$(T,{key:"attachments"},t.render()),$(C,{buttons:[{label:t.submitting?o.cancel:o.add,disabled:t.submitting||!t.selectedFile,onClick:this._onAttachmentAdd}]}))}_renderAttachmentEditing(){const{EditorPanel:e,_attachments:t,activeWorkflow:s,messages:o,messagesCommon:r}=this;return s?$(e,{heading:o.editAttachment,key:"attachment-editing-panel"},$(T,{key:"attachments"},t.render()),s.shouldAllowAttachmentEditing?$(C,{buttons:[{label:r.update,disabled:t.submitting||!t.selectedFile,onClick:this._onAttachmentUpdate},{...this._deleteButtonCommonInfo,onClick:this._onAttachmentDelete,disabled:t.submitting,label:r.delete}]}):void 0):null}_renderReady(){const{EditorPanel:e,messages:t,viewModel:s}=this,o=this._helpMessage;return $(e,{heading:t.widgetLabel,key:"landing-panel"},$(T,{key:"landing-content"},s.editableItems.length?[$(j,{key:"edit-actions"},this._renderUpdateActions()),$(j,{key:"create-actions"},this._renderCreateActions())]:$(P,{key:"no-content"},t.noEditableLayers)),o?$("div",{class:u.helpMessage,key:"footer-actions",slot:"footer"},o):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,viewModel:s}=this,o={id:"select",label:t.select};return $("div",{class:u.updateActions,key:"update-actions"},$(q,{level:R(this.headingLevel)},e.editFeatures),$("calcite-list",{class:u.updateActionsList,selectionAppearance:"border",selectionMode:"single"},V({disabled:!s.canUpdate,grouped:!1,item:o,selectedItem:"awaiting-feature-to-update"===s.activeWorkflow?.stepId?o:void 0,renderIcon:this._renderSelectIcon,onItemSelect:this._onToggleUpdateWorkflow})))}_renderCreateActions(){return $("div",{key:"create-actions"},$(q,{level:R(this.headingLevel)},this.messages.createFeatures),$("div",{class:u.featureTemplatesContainer,key:"templates"},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=J(this.messages.multipleFeaturesTemplate,{total:o.length});return $(e,{heading:r,key:"feature-list"},$(M,{editableItems:t.editableItems,filterText:this._filterText,id:this.id,messagesTemplates:this.messagesTemplates,workflow:s,onFilterTextChange:e=>this._filterText=e,onSelectFeature:(e,s)=>t.selectFeature(e,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,"hideTemplatesForInactiveLayers",null),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(),N("esri/widgets/Editor/t9n/Editor")],X.prototype,"messages",void 0),e([n(),N("esri/t9n/common")],X.prototype,"messagesCommon",void 0),e([n(),N("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({type:_,nonNullable:!0})],X.prototype,"visibleElements",void 0),e([n()],X.prototype,"_helpMessage",null),X=e([l(K)],X);const Y=X;export{Y as default};