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

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 (764) 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/020825b9c12f2b6386a7.js +1 -0
  9. package/assets/esri/core/workers/chunks/02d235849ba93541d7ad.js +1 -0
  10. package/assets/esri/core/workers/chunks/0422c5160491fbcf01dc.js +1 -0
  11. package/assets/esri/core/workers/chunks/07adca463da5554e514d.js +1 -0
  12. package/assets/esri/core/workers/chunks/07c1783baf9b19b4876a.js +1 -0
  13. package/assets/esri/core/workers/chunks/08a98e85e86ce560d005.js +1 -0
  14. package/assets/esri/core/workers/chunks/0ea41f142793edb99d3a.js +1 -0
  15. package/assets/esri/core/workers/chunks/10dc578a90e1194c8720.js +1 -0
  16. package/assets/esri/core/workers/chunks/18e0c5bfeb1aa7213dfa.js +1 -0
  17. package/assets/esri/core/workers/chunks/19c9966f74d287750aaa.js +1 -0
  18. package/assets/esri/core/workers/chunks/1a65d9b9f823d1e8b315.js +1 -0
  19. package/assets/esri/core/workers/chunks/1eb5468c7cf653338d53.js +1 -0
  20. package/assets/esri/core/workers/chunks/1f30ea1a598ddd2e5df3.js +1 -0
  21. package/assets/esri/core/workers/chunks/{40c00b352618c7839f7e.js → 1f87f22e00e3218661c6.js} +1 -1
  22. package/assets/esri/core/workers/chunks/1fc3b526e881ada30420.js +1 -0
  23. package/assets/esri/core/workers/chunks/224e79f6c172da444e0a.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/30776102fbab294bfe7b.js +1 -0
  27. package/assets/esri/core/workers/chunks/32bd6a343ea49c331e1f.js +1 -0
  28. package/assets/esri/core/workers/chunks/3491f1945d9c06d8b2c7.js +1 -0
  29. package/assets/esri/core/workers/chunks/366cf9bba6989342e447.js +1 -0
  30. package/assets/esri/core/workers/chunks/37edbd9b05bfdb2e645d.js +1 -0
  31. package/assets/esri/core/workers/chunks/3ac9001b19a90faf5573.js +1 -0
  32. package/assets/esri/core/workers/chunks/3c5a112a9b58770a5242.js +1 -0
  33. package/assets/esri/core/workers/chunks/41081c921037e543a22f.js +1 -0
  34. package/assets/esri/core/workers/chunks/41778f8c49febe1f9404.js +1 -0
  35. package/assets/esri/core/workers/chunks/430ec9f5949b31959893.js +1 -0
  36. package/assets/esri/core/workers/chunks/43575b9acf9819f195f9.js +1 -0
  37. package/assets/esri/core/workers/chunks/43f7d9366d06d69e7c50.js +1 -0
  38. package/assets/esri/core/workers/chunks/4564a7885d045a850887.js +1 -0
  39. package/assets/esri/core/workers/chunks/{b98a2191cb997d632438.js → 4672504d6fe649da19f2.js} +1 -1
  40. package/assets/esri/core/workers/chunks/4adf3a8c6b49c381a633.js +1 -0
  41. package/assets/esri/core/workers/chunks/4e813f112a428b4acf0e.js +1 -0
  42. package/assets/esri/core/workers/chunks/5386b166f2e5dc0d9143.js +1 -0
  43. package/assets/esri/core/workers/chunks/562eafa5090827ebb7ec.js +1 -0
  44. package/assets/esri/core/workers/chunks/56a61a8bff08ae273de4.js +1 -0
  45. package/assets/esri/core/workers/chunks/580e7d3cbf6797a50ded.js +1 -0
  46. package/assets/esri/core/workers/chunks/5e8f02da4eae41f57383.js +1 -0
  47. package/assets/esri/core/workers/chunks/6046be598e8c673eeb1f.js +1 -0
  48. package/assets/esri/core/workers/chunks/6334a8a7b671d4042108.js +1 -0
  49. package/assets/esri/core/workers/chunks/{2721aa6b6941b28b9758.js → 63c8bf00120a4e67f5b0.js} +1 -1
  50. package/assets/esri/core/workers/chunks/6747503826bfc94bc6c0.js +1 -0
  51. package/assets/esri/core/workers/chunks/6867ed1860afb7aac536.js +1 -0
  52. package/assets/esri/core/workers/chunks/69c1c850af7ee33258e0.js +1 -0
  53. package/assets/esri/core/workers/chunks/70aa04b09143b7dd2ecb.js +1 -0
  54. package/assets/esri/core/workers/chunks/74951370a341f02d3714.js +1 -0
  55. package/assets/esri/core/workers/chunks/7648f3341b7dff2825c3.js +1 -0
  56. package/assets/esri/core/workers/chunks/768271a12dc7e1781447.js +1 -0
  57. package/assets/esri/core/workers/chunks/{efb17a298363beca5209.js → 7756ed853b4ba54cd081.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{fa6103e3d4e857b0035b.js → 78e2fa121760383b08ec.js} +9 -6
  59. package/assets/esri/core/workers/chunks/7b8377b3a9f78f9d3613.js +1 -0
  60. package/assets/esri/core/workers/chunks/7f3bc7a2de59e485f22f.js +1 -0
  61. package/assets/esri/core/workers/chunks/7f433e25f3892475d5dc.js +1 -0
  62. package/assets/esri/core/workers/chunks/80bf6cf1bef17215bca4.js +1 -0
  63. package/assets/esri/core/workers/chunks/{1a723bb4a341f645e5fe.js → 83b8141f0c80e3448012.js} +1 -1
  64. package/assets/esri/core/workers/chunks/83d063b7ce768e9ab3de.js +1 -0
  65. package/assets/esri/core/workers/chunks/83f7e22a12d90ef93e62.js +1 -0
  66. package/assets/esri/core/workers/chunks/{4cc680fe4c9c39d2f853.js → 8a7fa4e8b0d14da7c9eb.js} +1 -1
  67. package/assets/esri/core/workers/chunks/934c32c49bb9e21482fd.js +1 -0
  68. package/assets/esri/core/workers/chunks/969a82b674eda9f8720f.js +1 -0
  69. package/assets/esri/core/workers/chunks/99fd09dd42b75a932e84.js +1 -0
  70. package/assets/esri/core/workers/chunks/{f0664a24f2c3705747a5.js → 9c77d69a13ec22cdd760.js} +1 -1
  71. package/assets/esri/core/workers/chunks/a1e16c33f1843dbdce26.js +1 -0
  72. package/assets/esri/core/workers/chunks/a360534e89a337871921.js +1 -0
  73. package/assets/esri/core/workers/chunks/a4341ec0fe89b865d849.js +1 -0
  74. package/assets/esri/core/workers/chunks/a50ec5b647a160199cb2.js +1 -0
  75. package/assets/esri/core/workers/chunks/a821fa1870b83fed5d31.js +1 -0
  76. package/assets/esri/core/workers/chunks/a8e4726c1db23324eb54.js +1 -0
  77. package/assets/esri/core/workers/chunks/abcfe3bda6f40318b092.js +1 -0
  78. package/assets/esri/core/workers/chunks/ac3e429d43f80c596ec8.js +1 -0
  79. package/assets/esri/core/workers/chunks/ac53b5479dd229fa4f7d.js +1 -0
  80. package/assets/esri/core/workers/chunks/aeb3efa91165dd3d2493.js.LICENSE.txt +1 -1
  81. package/assets/esri/core/workers/chunks/b03eaba5fa75d6ef834a.js +1 -0
  82. package/assets/esri/core/workers/chunks/b3f5e97b47e896c6008a.js +1 -0
  83. package/assets/esri/core/workers/chunks/b6cc8d7dcc710231fe72.js +1 -0
  84. package/assets/esri/core/workers/chunks/{77923afde29ae1ff10ca.js → b6e86e179f99b5cf8dff.js} +1 -1
  85. package/assets/esri/core/workers/chunks/b7c81a5bbcdd94b8a7f6.js +1 -0
  86. package/assets/esri/core/workers/chunks/b9a726f3bbad6fd4d65a.js +1 -0
  87. package/assets/esri/core/workers/chunks/c3ddf5dbc34f118002df.js +1 -0
  88. package/assets/esri/core/workers/chunks/c416df0668f6c596095f.js +1 -0
  89. package/assets/esri/core/workers/chunks/c447f4bf0e5f012f8f9b.js +1 -0
  90. package/assets/esri/core/workers/chunks/c7bd63103f101c09b1ea.js +1 -0
  91. package/assets/esri/core/workers/chunks/cb4b17f5cf96a9e36781.js +1 -0
  92. package/assets/esri/core/workers/chunks/cbddfcf57f72428a6992.js +1 -0
  93. package/assets/esri/core/workers/chunks/cc86c8c88124d916e1b3.js +1 -0
  94. package/assets/esri/core/workers/chunks/d0119dff8771e749436a.js +1 -0
  95. package/assets/esri/core/workers/chunks/d0f903f2257eb96f7789.js +1 -0
  96. package/assets/esri/core/workers/chunks/d153a8b71111165fc891.js +1 -0
  97. package/assets/esri/core/workers/chunks/{7b3d5f044c96e2c2af11.js → d191267d91a53db42956.js} +1 -1
  98. package/assets/esri/core/workers/chunks/d213024012b1a019bfde.js +1 -0
  99. package/assets/esri/core/workers/chunks/d5fec54e98c8622349a4.js +1 -0
  100. package/assets/esri/core/workers/chunks/d878bb6409df183ea0ce.js +1 -0
  101. package/assets/esri/core/workers/chunks/da124ccd18d2745195fe.js +1 -0
  102. package/assets/esri/core/workers/chunks/dd55151bfac60b0deaac.js +1 -0
  103. package/assets/esri/core/workers/chunks/e06cd10b6f8f363b5131.js +1 -0
  104. package/assets/esri/core/workers/chunks/e5352dc8983d06d4ee0f.js +1 -0
  105. package/assets/esri/core/workers/chunks/e67c4b7ad06d8404895a.js +1 -0
  106. package/assets/esri/core/workers/chunks/e810336a4292ea6076a6.js +1 -0
  107. package/assets/esri/core/workers/chunks/{4c3345ffbe79ee0167fb.js → ea9ae9d2aef01af90896.js} +1 -1
  108. package/assets/esri/core/workers/chunks/ef757269fb3fe0e74ef8.js +1 -0
  109. package/assets/esri/core/workers/chunks/f0d342303fc20e266d27.js +1 -0
  110. package/assets/esri/core/workers/chunks/f73563b23fd8dc6cf2fe.js +1 -0
  111. package/assets/esri/core/workers/chunks/f85107720159b855a469.js +1 -0
  112. package/assets/esri/core/workers/chunks/fbc57985d55b5fbe1e8a.js +1 -0
  113. package/assets/esri/core/workers/chunks/ffa330a19a09679212fb.js +1 -0
  114. package/assets/esri/themes/base/_core.scss +2 -0
  115. package/assets/esri/themes/base/widgets/_BasemapGallery.scss +3 -9
  116. package/assets/esri/themes/base/widgets/_DatePicker.scss +4 -0
  117. package/assets/esri/themes/base/widgets/_Features.scss +1 -1
  118. package/assets/esri/themes/base/widgets/_Legend.scss +1 -1
  119. package/assets/esri/themes/base/widgets/_ScaleRangeSlider.scss +1 -1
  120. package/assets/esri/themes/base/widgets/_TimeZoneLabel.scss +46 -0
  121. package/assets/esri/themes/base/widgets/_Tooltip.scss +1 -1
  122. package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +4 -0
  123. package/assets/esri/themes/dark/main.css +1 -1
  124. package/assets/esri/themes/light/main.css +1 -1
  125. package/assets/esri/themes/light/view.css +1 -1
  126. package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
  127. package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
  128. package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
  129. package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
  130. package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
  131. package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
  132. package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
  133. package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
  134. package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
  135. package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
  136. package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
  137. package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
  138. package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
  139. package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
  140. package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
  141. package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
  142. package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
  143. package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
  144. package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
  145. package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
  146. package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
  147. package/assets/esri/widgets/Editor/t9n/Editor_nb.json +1 -1
  148. package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
  149. package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
  150. package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
  151. package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
  152. package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
  153. package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
  154. package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
  155. package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
  156. package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
  157. package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
  158. package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
  159. package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
  160. package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
  161. package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
  162. package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
  163. package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
  164. package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
  165. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ar.json +1 -1
  166. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bg.json +1 -1
  167. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bs.json +1 -1
  168. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ca.json +1 -1
  169. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_cs.json +1 -1
  170. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_da.json +1 -1
  171. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_de.json +1 -1
  172. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_el.json +1 -1
  173. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_es.json +1 -1
  174. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_et.json +1 -1
  175. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fi.json +1 -1
  176. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fr.json +1 -1
  177. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_he.json +1 -1
  178. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hr.json +1 -1
  179. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hu.json +1 -1
  180. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_id.json +1 -1
  181. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_it.json +1 -1
  182. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ja.json +1 -1
  183. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ko.json +1 -1
  184. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lt.json +1 -1
  185. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lv.json +1 -1
  186. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nb.json +1 -1
  187. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nl.json +1 -1
  188. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pl.json +1 -1
  189. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-BR.json +1 -1
  190. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-PT.json +1 -1
  191. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ro.json +1 -1
  192. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ru.json +1 -1
  193. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sk.json +1 -1
  194. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sl.json +1 -1
  195. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sr.json +1 -1
  196. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sv.json +1 -1
  197. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_th.json +1 -1
  198. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_tr.json +1 -1
  199. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_uk.json +1 -1
  200. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_vi.json +1 -1
  201. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-CN.json +1 -1
  202. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-HK.json +1 -1
  203. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-TW.json +1 -1
  204. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  205. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  206. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  207. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  208. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  209. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  210. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  211. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  212. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  213. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  214. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  215. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  216. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  217. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  218. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  219. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  220. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  221. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  222. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  223. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  224. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  225. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nb.json +1 -1
  226. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  227. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  228. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  229. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  230. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  231. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  232. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  233. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  234. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  235. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  236. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  237. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  238. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  239. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  240. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  241. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  242. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  243. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ar.json +1 -1
  244. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_bg.json +1 -1
  245. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_bs.json +1 -1
  246. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ca.json +1 -1
  247. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_cs.json +1 -1
  248. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_da.json +1 -1
  249. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_de.json +1 -1
  250. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_el.json +1 -1
  251. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_es.json +1 -1
  252. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_et.json +1 -1
  253. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_fi.json +1 -1
  254. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_fr.json +1 -1
  255. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_he.json +1 -1
  256. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_hr.json +1 -1
  257. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_hu.json +1 -1
  258. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_id.json +1 -1
  259. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_it.json +1 -1
  260. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ja.json +1 -1
  261. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ko.json +1 -1
  262. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_lt.json +1 -1
  263. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_lv.json +1 -1
  264. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_nb.json +1 -1
  265. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_nl.json +1 -1
  266. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pl.json +1 -1
  267. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pt-BR.json +1 -1
  268. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pt-PT.json +1 -1
  269. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ro.json +1 -1
  270. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ru.json +1 -1
  271. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sk.json +1 -1
  272. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sl.json +1 -1
  273. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sr.json +1 -1
  274. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sv.json +1 -1
  275. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_th.json +1 -1
  276. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_tr.json +1 -1
  277. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_uk.json +1 -1
  278. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_vi.json +1 -1
  279. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-CN.json +1 -1
  280. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-HK.json +1 -1
  281. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-TW.json +1 -1
  282. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ar.json +1 -1
  283. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_bg.json +1 -1
  284. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_bs.json +1 -1
  285. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ca.json +1 -1
  286. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_cs.json +1 -1
  287. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_da.json +1 -1
  288. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_de.json +1 -1
  289. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_el.json +1 -1
  290. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_es.json +1 -1
  291. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_et.json +1 -1
  292. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_fi.json +1 -1
  293. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_fr.json +1 -1
  294. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_he.json +1 -1
  295. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_hr.json +1 -1
  296. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_hu.json +1 -1
  297. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_id.json +1 -1
  298. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_it.json +1 -1
  299. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ja.json +1 -1
  300. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ko.json +1 -1
  301. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_lt.json +1 -1
  302. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_lv.json +1 -1
  303. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_nb.json +1 -1
  304. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_nl.json +1 -1
  305. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_pl.json +1 -1
  306. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_pt-BR.json +1 -1
  307. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_pt-PT.json +1 -1
  308. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ro.json +1 -1
  309. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_ru.json +1 -1
  310. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sk.json +1 -1
  311. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sl.json +1 -1
  312. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sr.json +1 -1
  313. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_sv.json +1 -1
  314. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_th.json +1 -1
  315. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_tr.json +1 -1
  316. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_uk.json +1 -1
  317. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_vi.json +1 -1
  318. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_zh-CN.json +1 -1
  319. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_zh-HK.json +1 -1
  320. package/assets/esri/widgets/TimeZoneLabel/t9n/TimeZoneLabel_zh-TW.json +1 -1
  321. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ar.json +1 -1
  322. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_bg.json +1 -1
  323. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_bs.json +1 -1
  324. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ca.json +1 -1
  325. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_cs.json +1 -1
  326. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_da.json +1 -1
  327. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_de.json +1 -1
  328. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_el.json +1 -1
  329. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_es.json +1 -1
  330. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_et.json +1 -1
  331. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_fi.json +1 -1
  332. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_fr.json +1 -1
  333. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_he.json +1 -1
  334. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_hr.json +1 -1
  335. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_hu.json +1 -1
  336. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_id.json +1 -1
  337. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_it.json +1 -1
  338. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ja.json +1 -1
  339. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ko.json +1 -1
  340. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_lt.json +1 -1
  341. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_lv.json +1 -1
  342. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_nb.json +1 -1
  343. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_nl.json +1 -1
  344. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pl.json +1 -1
  345. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pt-BR.json +1 -1
  346. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_pt-PT.json +1 -1
  347. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ro.json +1 -1
  348. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_ru.json +1 -1
  349. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sk.json +1 -1
  350. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sl.json +1 -1
  351. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sr.json +1 -1
  352. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_sv.json +1 -1
  353. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_th.json +1 -1
  354. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_tr.json +1 -1
  355. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_uk.json +1 -1
  356. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_vi.json +1 -1
  357. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-CN.json +1 -1
  358. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-HK.json +1 -1
  359. package/assets/esri/widgets/UtilityNetworkAssociations/t9n/UtilityNetworkAssociations_zh-TW.json +1 -1
  360. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ar.json +1 -1
  361. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bg.json +1 -1
  362. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bs.json +1 -1
  363. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ca.json +1 -1
  364. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_cs.json +1 -1
  365. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_da.json +1 -1
  366. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_de.json +1 -1
  367. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_el.json +1 -1
  368. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_es.json +1 -1
  369. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_et.json +1 -1
  370. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fi.json +1 -1
  371. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fr.json +1 -1
  372. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_he.json +1 -1
  373. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hr.json +1 -1
  374. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hu.json +1 -1
  375. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_id.json +1 -1
  376. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_it.json +1 -1
  377. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ja.json +1 -1
  378. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ko.json +1 -1
  379. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lt.json +1 -1
  380. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lv.json +1 -1
  381. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nb.json +1 -1
  382. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nl.json +1 -1
  383. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pl.json +1 -1
  384. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-BR.json +1 -1
  385. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-PT.json +1 -1
  386. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ro.json +1 -1
  387. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ru.json +1 -1
  388. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sk.json +1 -1
  389. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sl.json +1 -1
  390. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sr.json +1 -1
  391. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sv.json +1 -1
  392. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_th.json +1 -1
  393. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_tr.json +1 -1
  394. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_uk.json +1 -1
  395. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_vi.json +1 -1
  396. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-CN.json +1 -1
  397. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-HK.json +1 -1
  398. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-TW.json +1 -1
  399. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ar.json +1 -1
  400. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_bg.json +1 -1
  401. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_bs.json +1 -1
  402. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ca.json +1 -1
  403. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_cs.json +1 -1
  404. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_da.json +1 -1
  405. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_de.json +1 -1
  406. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_el.json +1 -1
  407. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_es.json +1 -1
  408. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_et.json +1 -1
  409. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_fi.json +1 -1
  410. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_fr.json +1 -1
  411. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_he.json +1 -1
  412. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_hr.json +1 -1
  413. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_hu.json +1 -1
  414. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_id.json +1 -1
  415. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_it.json +1 -1
  416. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ja.json +1 -1
  417. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ko.json +1 -1
  418. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_lt.json +1 -1
  419. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_lv.json +1 -1
  420. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_nb.json +1 -1
  421. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_nl.json +1 -1
  422. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_pl.json +1 -1
  423. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_pt-BR.json +1 -1
  424. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_pt-PT.json +1 -1
  425. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ro.json +1 -1
  426. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_ru.json +1 -1
  427. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sk.json +1 -1
  428. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sl.json +1 -1
  429. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sr.json +1 -1
  430. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_sv.json +1 -1
  431. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_th.json +1 -1
  432. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_tr.json +1 -1
  433. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_uk.json +1 -1
  434. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_vi.json +1 -1
  435. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_zh-CN.json +1 -1
  436. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_zh-HK.json +1 -1
  437. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_zh-TW.json +1 -1
  438. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ar.json +1 -1
  439. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_bg.json +1 -1
  440. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_bs.json +1 -1
  441. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ca.json +1 -1
  442. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_cs.json +1 -1
  443. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_da.json +1 -1
  444. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_de.json +1 -1
  445. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_el.json +1 -1
  446. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_es.json +1 -1
  447. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_et.json +1 -1
  448. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_fi.json +1 -1
  449. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_fr.json +1 -1
  450. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_he.json +1 -1
  451. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_hr.json +1 -1
  452. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_hu.json +1 -1
  453. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_id.json +1 -1
  454. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_it.json +1 -1
  455. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ja.json +1 -1
  456. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ko.json +1 -1
  457. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_lt.json +1 -1
  458. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_lv.json +1 -1
  459. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_nb.json +1 -1
  460. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_nl.json +1 -1
  461. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_pl.json +1 -1
  462. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_pt-BR.json +1 -1
  463. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_pt-PT.json +1 -1
  464. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ro.json +1 -1
  465. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_ru.json +1 -1
  466. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sk.json +1 -1
  467. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sl.json +1 -1
  468. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sr.json +1 -1
  469. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_sv.json +1 -1
  470. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_th.json +1 -1
  471. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_tr.json +1 -1
  472. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_uk.json +1 -1
  473. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_vi.json +1 -1
  474. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_zh-CN.json +1 -1
  475. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_zh-HK.json +1 -1
  476. package/assets/esri/widgets/support/SketchTooltipControls/t9n/SketchTooltipControls_zh-TW.json +1 -1
  477. package/chunks/HighlightApply.glsl.js +6 -7
  478. package/chunks/HighlightBlur.glsl.js +5 -6
  479. package/chunks/HighlightDownsample.glsl.js +8 -8
  480. package/chunks/languageUtils.js +1 -1
  481. package/core/MemCache.js +1 -1
  482. package/core/MemCachePool.js +1 -1
  483. package/core/colorUtils.js +1 -1
  484. package/geometry/GeometryCursor.js +1 -1
  485. package/geometry/support/meshUtils/georeference.js +1 -1
  486. package/interfaces.d.ts +1546 -264
  487. package/intl/date.js +1 -1
  488. package/kernel.js +1 -1
  489. package/layers/GroupLayer.js +1 -1
  490. package/layers/MapNotesLayer.js +1 -1
  491. package/layers/SceneLayer.js +1 -1
  492. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  493. package/layers/graphics/data/AttributesBuilder.js +1 -1
  494. package/layers/graphics/data/QueryEngineResult.js +1 -1
  495. package/layers/graphics/data/queryValidationUtils.js +1 -1
  496. package/layers/graphics/editingSupport.js +1 -1
  497. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  498. package/layers/graphics/sources/csv/csv.js +1 -1
  499. package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
  500. package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
  501. package/layers/graphics/sources/support/sourceUtils.js +1 -1
  502. package/layers/mixins/ArcGISMapService.js +1 -1
  503. package/layers/ogc/wfsUtils.js +1 -1
  504. package/layers/save/groupLayerUtils.js +1 -1
  505. package/layers/save/utils.js +1 -1
  506. package/layers/support/Field.js +1 -1
  507. package/layers/support/FieldsIndex.js +1 -1
  508. package/layers/support/ImageElement.js +1 -1
  509. package/layers/support/LayerContingentValuesCache.js +1 -1
  510. package/layers/support/Sublayer.js +1 -1
  511. package/layers/support/Subtype.d.ts +4 -0
  512. package/layers/support/Subtype.js +1 -1
  513. package/layers/support/fieldProperties.js +1 -1
  514. package/layers/support/fieldUtils.js +1 -1
  515. package/layers/support/imageryRendererUtils.js +1 -1
  516. package/layers/support/labelFormatUtils.js +1 -1
  517. package/networks/Network.js +1 -1
  518. package/package.json +2 -2
  519. package/portal/support/jsonContext.js +1 -1
  520. package/portal/support/layersLoader.js +1 -1
  521. package/renderers/UniqueValueRenderer.js +1 -1
  522. package/renderers/support/utils.js +1 -1
  523. package/rest/featureService/FeatureService.d.ts +4 -0
  524. package/rest/featureService/FeatureService.js +1 -1
  525. package/rest/featureService/utils.d.ts +4 -0
  526. package/smartMapping/labels/clusters.js +1 -1
  527. package/smartMapping/popup/support/clusterUtils.js +1 -1
  528. package/smartMapping/renderers/color.js +1 -1
  529. package/smartMapping/renderers/opacity.js +1 -1
  530. package/smartMapping/renderers/size.js +1 -1
  531. package/smartMapping/renderers/support/utils.js +1 -1
  532. package/smartMapping/renderers/type.js +1 -1
  533. package/smartMapping/renderers/univariateColorSize.js +1 -1
  534. package/smartMapping/statistics/histogram.js +1 -1
  535. package/smartMapping/statistics/summaryStatistics.js +1 -1
  536. package/smartMapping/statistics/support/statsWorker.js +1 -1
  537. package/smartMapping/statistics/support/utils.js +1 -1
  538. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  539. package/smartMapping/support/adapters/FeatureLayerBinningAdapter.js +1 -1
  540. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  541. package/smartMapping/support/adapters/OGCFeatureLayerAdapter.js +1 -1
  542. package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
  543. package/smartMapping/support/adapters/StreamLayerAdapter.js +1 -1
  544. package/smartMapping/support/adapters/support/utils.js +1 -1
  545. package/smartMapping/support/clusterUtils.js +1 -1
  546. package/smartMapping/support/utils.js +1 -1
  547. package/support/basemapUtils.js +1 -1
  548. package/support/revision.js +1 -1
  549. package/symbols/cim/CIMSymbolHelper.js +1 -1
  550. package/symbols/cim/effects/EffectDashes.js +1 -1
  551. package/symbols/support/previewCIMSymbol.js +1 -1
  552. package/time/timeZoneUtils.js +1 -1
  553. package/versionManagement/VersionManagementService.d.ts +4 -0
  554. package/versionManagement/VersionManagementService.js +1 -1
  555. package/views/2d/engine/vectorTiles/RenderBucket.js +1 -1
  556. package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
  557. package/views/2d/engine/webgl/Overlay.js +1 -1
  558. package/views/2d/input/handlers/KeyPan.js +1 -1
  559. package/views/2d/interactive/editingTools/manipulations/DragManipulation.js +1 -1
  560. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  561. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  562. package/views/2d/viewpointUtils.js +1 -1
  563. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  564. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  565. package/views/3d/interactive/editingTools/transformGraphic/ExtentTransformTool.js +1 -1
  566. package/views/3d/interactive/editingTools/transformGraphic/GraphicScaleRotateTransform.js +1 -1
  567. package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
  568. package/views/3d/layers/I3SMeshView3D.js +1 -1
  569. package/views/3d/layers/MediaLayerView3D.js +1 -1
  570. package/views/3d/layers/SceneLayerWorker.js +1 -1
  571. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  572. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  573. package/views/3d/layers/graphics/elevationAlignPointsInFeatures.js +1 -1
  574. package/views/3d/layers/i3s/I3SClientNodeLoader.js +1 -1
  575. package/views/3d/layers/i3s/I3SOverrides.js +1 -1
  576. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  577. package/views/3d/support/MemoryController.js +1 -1
  578. package/views/3d/support/PBFDecoder.js +1 -1
  579. package/views/3d/support/ResourceController.js +1 -1
  580. package/views/3d/support/buffer/InterleavedLayout.js +1 -1
  581. package/views/3d/terrain/OverlayFramebufferObject.js +1 -1
  582. package/views/3d/terrain/PlanarPatch.js +1 -1
  583. package/views/3d/terrain/SphericalPatch.js +1 -1
  584. package/views/3d/terrain/TerrainSurface.js +1 -1
  585. package/views/3d/terrain/Tile.js +1 -1
  586. package/views/3d/terrain/TileRenderer.js +1 -1
  587. package/views/3d/terrain/TileTexture.js +1 -1
  588. package/views/3d/webgl-engine/core/FBOCache.js +1 -1
  589. package/views/3d/webgl-engine/core/FBOPool.js +5 -0
  590. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +9 -6
  591. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +1 -1
  592. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  593. package/views/3d/webgl-engine/effects/highlight/HighlightPassParameters.js +1 -1
  594. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  595. package/views/3d/webgl-engine/lib/Camera.js +1 -1
  596. package/views/3d/webgl-engine/lib/OffscreenRendering.js +1 -1
  597. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  598. package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
  599. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  600. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  601. package/views/3d/webgl-engine/lib/textureUtils.js +1 -1
  602. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  603. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  604. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  605. package/views/3d/webgl-engine/parts/ScreenshotManager.js +1 -1
  606. package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +1 -1
  607. package/views/3d/webgl-engine/shaders/HighlightBlur.glsl.js +1 -1
  608. package/views/3d/webgl-engine/shaders/HighlightDownsample.glsl.js +1 -1
  609. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +1 -1
  610. package/views/draw/DrawOperation.js +1 -1
  611. package/views/draw/support/Reshape.js +1 -1
  612. package/views/interactive/SegmentLabels.js +1 -1
  613. package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
  614. package/views/interactive/snapping/featureSources/FeatureCollectionSnappingSource.js +1 -1
  615. package/views/interactive/snapping/featureSources/GraphicsSnappingSource.js +1 -1
  616. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorker.js +1 -1
  617. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorkerHandle.js +1 -1
  618. package/views/interactive/snapping/featureSources/snappingCandidateElevationAlignment.js +1 -1
  619. package/views/overlay/TextOverlayItem.js +1 -1
  620. package/views/webgl/VertexArrayObject.js +1 -1
  621. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  622. package/widgets/BasemapGallery.js +1 -1
  623. package/widgets/DirectionalPad.js +1 -1
  624. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DTool.js +1 -1
  625. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  626. package/widgets/Editor/CreateFeaturesWorkflowData.js +1 -1
  627. package/widgets/Editor/EditorViewModel.js +1 -1
  628. package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
  629. package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
  630. package/widgets/Editor/UpdateWorkflow.js +1 -1
  631. package/widgets/Editor/workflowUtils.js +1 -1
  632. package/widgets/Editor.js +1 -1
  633. package/widgets/Feature/FeatureRelationship/FeatureRelationshipViewModel.js +1 -1
  634. package/widgets/Feature/FeatureViewModel.js +1 -1
  635. package/widgets/Feature/support/featureUtils.js +1 -1
  636. package/widgets/FeatureForm/FieldInput.js +1 -1
  637. package/widgets/FeatureForm/RelationshipInput.js +1 -1
  638. package/widgets/FeatureForm/featureFormUtils.js +1 -1
  639. package/widgets/FeatureForm.js +1 -1
  640. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  641. package/widgets/FeatureTable/FieldColumn.js +1 -1
  642. package/widgets/Features/FeaturesViewModel.js +1 -1
  643. package/widgets/Features/css.js +1 -1
  644. package/widgets/Features.js +1 -1
  645. package/widgets/Legend/LegendViewModel.js +1 -1
  646. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  647. package/widgets/Legend/support/utils.js +1 -1
  648. package/widgets/LineOfSight.js +1 -1
  649. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  650. package/widgets/OrientedImageryViewer.d.ts +4 -0
  651. package/widgets/OrientedImageryViewer.js +1 -1
  652. package/widgets/Popup/actionUtils.js +1 -1
  653. package/widgets/ScaleRangeSlider.js +1 -1
  654. package/widgets/TimeSlider.js +1 -1
  655. package/widgets/TimeZoneLabel/TimeZoneLabelViewModel.js +5 -0
  656. package/widgets/TimeZoneLabel/css.js +5 -0
  657. package/widgets/TimeZoneLabel.d.ts +4 -0
  658. package/widgets/TimeZoneLabel.js +5 -0
  659. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  660. package/widgets/UtilityNetworkTrace/support/ResultAreaHandler.js +1 -1
  661. package/widgets/UtilityNetworkTrace.js +1 -1
  662. package/widgets/UtilityNetworkValidateTopology/UtilityNetworkValidateTopologyViewModel.js +1 -1
  663. package/widgets/support/SnappingControls/SnappingControlsViewModel.js +1 -1
  664. package/assets/esri/core/workers/chunks/0036b6df93a17e57e3b9.js +0 -1
  665. package/assets/esri/core/workers/chunks/089e59445bd0b1131ffb.js +0 -1
  666. package/assets/esri/core/workers/chunks/09886c56427c4b3f18b5.js +0 -1
  667. package/assets/esri/core/workers/chunks/0b539dacc5c72399ab32.js +0 -1
  668. package/assets/esri/core/workers/chunks/0bb57b54897fb4381b46.js +0 -1
  669. package/assets/esri/core/workers/chunks/0d77c9c97301a4ee4167.js +0 -1
  670. package/assets/esri/core/workers/chunks/0d8ca51043c7784aed96.js +0 -1
  671. package/assets/esri/core/workers/chunks/121a9e148509f2fe2210.js +0 -1
  672. package/assets/esri/core/workers/chunks/1461910bd37aea28948b.js +0 -1
  673. package/assets/esri/core/workers/chunks/1586929658af88f6f961.js +0 -1
  674. package/assets/esri/core/workers/chunks/16d45f439b89da3ec835.js +0 -1
  675. package/assets/esri/core/workers/chunks/1ef3533abdd937ae2794.js +0 -1
  676. package/assets/esri/core/workers/chunks/24c504585da8e44f956f.js +0 -1
  677. package/assets/esri/core/workers/chunks/24ff267cf253feac22de.js +0 -1
  678. package/assets/esri/core/workers/chunks/2561c2bd5a0826dedcb1.js +0 -1
  679. package/assets/esri/core/workers/chunks/2832161454babb40614b.js +0 -1
  680. package/assets/esri/core/workers/chunks/29cab345819ec02ed60a.js +0 -1
  681. package/assets/esri/core/workers/chunks/2f8e71dac98135bbc3e6.js +0 -1
  682. package/assets/esri/core/workers/chunks/369f2ef414498c17a05a.js +0 -1
  683. package/assets/esri/core/workers/chunks/4108445c4a653772c5ee.js +0 -1
  684. package/assets/esri/core/workers/chunks/432a009e756643f59cb4.js +0 -1
  685. package/assets/esri/core/workers/chunks/435f04e3964b1c6d4880.js +0 -1
  686. package/assets/esri/core/workers/chunks/44a3d01b7daa46584ed9.js +0 -1
  687. package/assets/esri/core/workers/chunks/44b870cb53ba68b17c32.js +0 -1
  688. package/assets/esri/core/workers/chunks/4736188659a62488c777.js +0 -1
  689. package/assets/esri/core/workers/chunks/4763831c8815fed636f7.js +0 -1
  690. package/assets/esri/core/workers/chunks/4781e2011a32d7724889.js +0 -1
  691. package/assets/esri/core/workers/chunks/4d81aa50d90f5701a343.js +0 -1
  692. package/assets/esri/core/workers/chunks/4e0bf30da4281070e453.js +0 -1
  693. package/assets/esri/core/workers/chunks/4e60ac00b15b34a3b5f5.js +0 -1
  694. package/assets/esri/core/workers/chunks/4e6bf1efe3b0b474cbb4.js +0 -1
  695. package/assets/esri/core/workers/chunks/505132c47dbdf5fdeacc.js +0 -1
  696. package/assets/esri/core/workers/chunks/526ae87737777154c3f3.js +0 -1
  697. package/assets/esri/core/workers/chunks/53859d0bd8bb14af2d4d.js +0 -1
  698. package/assets/esri/core/workers/chunks/593d7f17090b74945345.js +0 -1
  699. package/assets/esri/core/workers/chunks/5a3ccc0a19ac8fa9e524.js +0 -1
  700. package/assets/esri/core/workers/chunks/5baae5acd184e87d5dc4.js +0 -1
  701. package/assets/esri/core/workers/chunks/5bdd2a3422fe52aa2c65.js +0 -1
  702. package/assets/esri/core/workers/chunks/5e907ec0ee1565b5fbbc.js +0 -1
  703. package/assets/esri/core/workers/chunks/66ba749ab0a631bbfdec.js +0 -1
  704. package/assets/esri/core/workers/chunks/69da907a92901f0fb391.js +0 -1
  705. package/assets/esri/core/workers/chunks/6b14d89d689a21014aec.js +0 -1
  706. package/assets/esri/core/workers/chunks/6b7b5544ed1f9a84623f.js +0 -1
  707. package/assets/esri/core/workers/chunks/6ce986f4213df8a2d934.js +0 -1
  708. package/assets/esri/core/workers/chunks/785d9a9a933314551b10.js +0 -1
  709. package/assets/esri/core/workers/chunks/7f6840c53a456524b74c.js +0 -1
  710. package/assets/esri/core/workers/chunks/84870178173951ad6c2b.js +0 -1
  711. package/assets/esri/core/workers/chunks/8634d6a62f4de973e39b.js +0 -1
  712. package/assets/esri/core/workers/chunks/88d43db03cc11cbffa68.js +0 -1
  713. package/assets/esri/core/workers/chunks/902b672a3475ec83b58b.js +0 -1
  714. package/assets/esri/core/workers/chunks/943ea851c1b07af91172.js +0 -1
  715. package/assets/esri/core/workers/chunks/9a5e3b0cc8536f79c377.js +0 -1
  716. package/assets/esri/core/workers/chunks/9f8207c82a17508a87a8.js +0 -1
  717. package/assets/esri/core/workers/chunks/a01ffe03b1465c21b9e6.js +0 -1
  718. package/assets/esri/core/workers/chunks/a298c9031962951e55a9.js +0 -1
  719. package/assets/esri/core/workers/chunks/a877a4826cd6a46ec99b.js +0 -1
  720. package/assets/esri/core/workers/chunks/a9a0194120ec65a00f6d.js +0 -1
  721. package/assets/esri/core/workers/chunks/aa453ae526a233cedf0c.js +0 -1
  722. package/assets/esri/core/workers/chunks/ab5ffcf0db724d40f714.js +0 -1
  723. package/assets/esri/core/workers/chunks/ad38e456a7cee940a165.js +0 -1
  724. package/assets/esri/core/workers/chunks/ae3ea5fa813aec0db5e1.js +0 -1
  725. package/assets/esri/core/workers/chunks/ae59e10b225f08f38487.js +0 -1
  726. package/assets/esri/core/workers/chunks/b030cf4b00e42337dc89.js +0 -1
  727. package/assets/esri/core/workers/chunks/b0526633a93ef69ec47b.js +0 -1
  728. package/assets/esri/core/workers/chunks/b0d6e6e489aaa331861c.js +0 -1
  729. package/assets/esri/core/workers/chunks/b0ddb503463328531d8f.js +0 -1
  730. package/assets/esri/core/workers/chunks/b1a8024bf8cdd0cd3884.js +0 -1
  731. package/assets/esri/core/workers/chunks/b3243695e0edfcbca276.js +0 -1
  732. package/assets/esri/core/workers/chunks/be57692d4b9ff6cd4c02.js +0 -1
  733. package/assets/esri/core/workers/chunks/c0061d993e1ede22b1dc.js +0 -1
  734. package/assets/esri/core/workers/chunks/c260ad3434bb00ba64a7.js +0 -1
  735. package/assets/esri/core/workers/chunks/c2be3b9aa28e454cf931.js +0 -1
  736. package/assets/esri/core/workers/chunks/c459c8d8630eb4b955b1.js +0 -1
  737. package/assets/esri/core/workers/chunks/c4df42fe859a9115a6e4.js +0 -1
  738. package/assets/esri/core/workers/chunks/c5acddea13fd01912e79.js +0 -1
  739. package/assets/esri/core/workers/chunks/c607fe4df3ca054f9aa8.js +0 -1
  740. package/assets/esri/core/workers/chunks/ca023e409bb7de9a69ab.js +0 -1
  741. package/assets/esri/core/workers/chunks/ca85e88dad30b5f2956b.js +0 -1
  742. package/assets/esri/core/workers/chunks/ce3bb546a729f0ccf696.js +0 -1
  743. package/assets/esri/core/workers/chunks/cfd63bd57eea2caa4bcb.js +0 -1
  744. package/assets/esri/core/workers/chunks/d6ded127949160103f69.js +0 -1
  745. package/assets/esri/core/workers/chunks/d8c696da42f8f8919b83.js +0 -1
  746. package/assets/esri/core/workers/chunks/d95eed98316e59f8f35d.js +0 -1
  747. package/assets/esri/core/workers/chunks/e0b49c5eb5427656e835.js +0 -1
  748. package/assets/esri/core/workers/chunks/e52b9e423c0ba4134309.js +0 -1
  749. package/assets/esri/core/workers/chunks/e52d5a48e83d8df36f92.js +0 -1
  750. package/assets/esri/core/workers/chunks/e53df0f018a82e3a35bd.js +0 -1
  751. package/assets/esri/core/workers/chunks/ea953f5a0a975f7bd7b9.js +0 -1
  752. package/assets/esri/core/workers/chunks/eb4bfafe821daeb4bb6e.js +0 -1
  753. package/assets/esri/core/workers/chunks/f183a4b52095e4c498b4.js +0 -1
  754. package/assets/esri/core/workers/chunks/f221b9c6ae6c7eb4ca01.js +0 -1
  755. package/assets/esri/core/workers/chunks/f57100e3dfc7f087c3ad.js +0 -1
  756. package/assets/esri/core/workers/chunks/f5fd2ee5878c63777c51.js +0 -1
  757. package/assets/esri/core/workers/chunks/f6b7036114b1d754fdd9.js +0 -1
  758. package/assets/esri/core/workers/chunks/f6c0680c535c5a3c73ee.js +0 -1
  759. package/assets/esri/core/workers/chunks/f72a5af2a7ca1536f10a.js +0 -1
  760. package/assets/esri/core/workers/chunks/f99deed4120f605b6cd6.js +0 -1
  761. package/assets/esri/core/workers/chunks/fac3e57784d7f37053af.js +0 -1
  762. package/layers/graphics/sources/support/QueryEngineBuildLayer.js +0 -5
  763. package/widgets/DirectionalPad/DirectionalPadViewModel.d.ts +0 -4
  764. package/widgets/DirectionalPad.d.ts +0 -4
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import"../../../intl.js";import{addTokenParameter as l}from"../../../kernel.js";import s from"../../../request.js";import"../../../symbols.js";import i from"../../../core/Accessor.js";import{isSome as r}from"../../../core/arrayUtils.js";import n from"../../../core/Collection.js";import{JSONMap as a}from"../../../core/jsonMap.js";import o from"../../../core/Logger.js";import{debounce as u}from"../../../core/promiseUtils.js";import{on as c,watch as d,whenOnce as y,initial as h}from"../../../core/reactiveUtils.js";import{px2pt as m}from"../../../core/screenUtils.js";import{millisecondsPerTimeUnit as f}from"../../../core/timeUtils.js";import{addQueryParameters as p}from"../../../core/urlUtils.js";import{property as g}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as b}from"../../../core/accessorSupport/decorators/subclass.js";import{OriginId as S}from"../../../core/accessorSupport/PropertyOrigin.js";import{EffectView as _}from"../../../layers/effects/EffectView.js";import{effectFunctionsFromJSON as w}from"../../../layers/effects/jsonUtils.js";import{ExportImageParameters as L}from"../../../layers/support/ExportImageParameters.js";import{isDateField as v,isTimeOnlyField as C}from"../../../layers/support/fieldUtils.js";import{isFeatureLayer as E}from"../../../layers/support/layerUtils.js";import{getPixelValueRange as I}from"../../../layers/support/rasterFormats/pixelRangeUtils.js";import{fromJSON as R}from"../../../renderers/support/jsonUtils.js";import{isSupportedRenderer3D as F}from"../../../renderers/support/rendererConversion.js";import V from"../../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import{applyCIMSymbolColor as T}from"../../../symbols/support/cimSymbolUtils.js";import{SymbolSizeDefaults as z}from"../../../symbols/support/previewUtils.js";import{renderSymbol as D}from"../../../symbols/support/renderUtils.js";import{renderColorRampPreviewHTML as x,renderDotDensityPreviewHTML as j,renderPieChartPreviewHTML as O,renderPreviewHTML as P}from"../../../symbols/support/symbolUtils.js";import{isVolumetricSymbol as A}from"../../../symbols/support/utils.js";import{getTimeZoneFormattingOptions as M}from"../../../time/timeZoneUtils.js";import{getClusterSizeVariable as U}from"./clusterUtils.js";import{getColorFromPointCloudStops as k,getRampStopsForPointCloud as B,getStrectchRampStops as N,getRampStops as q}from"./colorRampUtils.js";import{getHeatmapRampStops as H}from"./heatmapRampUtils.js";import{getRotationAngleForFocus as $,getRelationshipRampElement as W}from"./relationshipRampUtils.js";import{getRampStops as G,realWorldMaxSize as J,realWorldMinSize as Q}from"./sizeRampUtils.js";import{specialCharsLessThan as Z,specialCharsGreaterThan as K,getSymbolForFlowRenderer as X,isRasterBandStatistics as Y,getMedianColor as ee,rgbImgSource as te}from"./utils.js";import{formatNumberLabel as le}from"../../smartMapping/support/utils.js";import se from"../../../symbols/SimpleMarkerSymbol.js";import ie from"../../../symbols/SimpleFillSymbol.js";import{convertDateFormatToIntlOptions as re}from"../../../intl/date.js";import{fetchMessageBundle as ne}from"../../../intl/messages.js";import{substitute as ae}from"../../../intl/substitute.js";const oe="https://utility.arcgis.com/sharing/tools/legend",ue="esri.layers.ImageryLayer",ce="esri.layers.ImageryTileLayer",de="esri.layers.WCSLayer",ye=/^\s*(return\s+)?\$view\.scale\s*(;)?\s*$/i,he=new a({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"}),me=new se({size:6,outline:{color:[128,128,128,.5],width:.5}}),fe=new ie({style:"solid"});function pe(e){return"flow"===e.type}function ge(e){return"vector-field"===e.type}function be(e){return"raster-colormap"===e.type}function Se(e){return"raster-stretch"===e.type}function _e(e){return"raster-shaded-relief"===e.type}function we(e){return"esri.renderers.SimpleRenderer"===e.declaredClass}function Le(e){return"esri.renderers.ClassBreaksRenderer"===e.declaredClass}function ve(e){return"esri.renderers.UniqueValueRenderer"===e.declaredClass}function Ce(e){return"esri.renderers.HeatmapRenderer"===e.declaredClass}function Ee(e){return Re(e)||Fe(e)||Ve(e)||Ie(e)}function Ie(e){return"esri.renderers.PointCloudRGBRenderer"===e.declaredClass}function Re(e){return"esri.renderers.PointCloudClassBreaksRenderer"===e.declaredClass}function Fe(e){return"esri.renderers.PointCloudStretchRenderer"===e.declaredClass}function Ve(e){return"esri.renderers.PointCloudUniqueValueRenderer"===e.declaredClass}function Te(e){return"esri.renderers.DotDensityRenderer"===e.declaredClass}function ze(e){return"esri.renderers.PieChartRenderer"===e.declaredClass}function De(e,t){return we(e)||Le(e)||ve(e)||Ce(e)||Te(e)||ze(e)?"2d"===t.type||F(e):Se(e)||be(e)||_e(e)||Re(e)||Fe(e)||Ve(e)||ge(e)||pe(e)}function xe(e){return"esri.layers.BuildingSceneLayer"===e.declaredClass}function je(e){return"esri.layers.SubtypeGroupLayer"===e.declaredClass}function Oe(e){return"esri.layers.VoxelLayer"===e.declaredClass}function Pe(e){return"esri.layers.WMSLayer"===e.declaredClass}function Ae(e){return"esri.layers.WMTSLayer"===e.declaredClass}function Me(e){return"esri.layers.MapImageLayer"===e.declaredClass}function Ue(e){return"esri.layers.TileLayer"===e.declaredClass}function ke(e){return e.declaredClass===ue}function Be(e){return e.declaredClass===ce}function Ne(e){return e.declaredClass===de}function qe(e){return"stretch-ramp"===e.type}function He(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type}function $e(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type&&"above-and-below"===t?.univariateTheme}function We(e){return"sublayers"in e}async function Ge(e,t){const l=await ne("esri/widgets/Legend/t9n/Legend");return"previewTemplateAriaLabel"!==e||t||(e="previewAriaLabel"),ae(l[e],{label:t})}const Je=new se({style:"path",path:"M10,5 L5,0 0,5 M5,0 L5,15",size:15,outline:{width:1,color:[85,85,85,1]}});let Qe={},Ze=class extends i{constructor(e){super(e),this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._webStyleSymbolCache=new Map,this._dotDensityUrlCache=new Map,this._scaleDrivenSizeVariable=null,this._hasClusterSizeVariable=!1,this.children=new n,this.layerView=null,this.layer=null,this.legendElements=[],this.parent=null,this.hideLayersNotInCurrentView=!1,this.keepCacheOnDestroy=!1,this.respectLayerVisibility=!0,this.sublayerIds=[],this.title=null,this.view=null}initialize(){const e=()=>this.notifyChange("ready");this.addHandles([c((()=>this.children),"change",(t=>{const{added:l,removed:s}=t;l.forEach((t=>{const l=`activeLayerInfo-ready-watcher-${t.layer.uid}`;this.addHandles(d((()=>t.ready),e,h),l)})),s.forEach((e=>this.removeHandles(e.layer.uid))),e()}))]),this.keepCacheOnDestroy||(Qe={})}destroy(){this._webStyleSymbolCache=null,this._dotDensityUrlCache=null,this._scaleDrivenSizeVariable=null,this.keepCacheOnDestroy||(Qe=null)}get effectList(){const e=this.layer;let t=null;return"effect"in e&&e.effect&&(t=new _,t.effect=e.effect,t.endTransitions(),t.scale=this.scale),t}get opacity(){const e=this.layer.opacity,t=this.parent?.opacity,l=this.layer.parent,s=l&&"uid"in l?this._getParentLayerOpacity(l):null;return null!=t?t*e:null!=s?s*e:e}get ready(){return null===this.layer||(this.children.length>0?this._isGroupActive():this.legendElements.length>0)}get scale(){return this.view?.scale??0}get isScaleDriven(){const e=this.layer;if(null===e)return!1;if("effect"in e&&e.effect&&Array.isArray(e.effect))return!0;if("featureReduction"in e&&e.featureReduction){if("cluster"===e.featureReduction.type)return!0;if("binning"===e.featureReduction.type&&"renderer"in e.featureReduction&&e.featureReduction.renderer)return this._isRendererScaleDriven(e.featureReduction.renderer)}return"renderer"in e&&e.renderer?this._isRendererScaleDriven(e.renderer):this._isLayerScaleDriven(this.layer)}get version(){return this._get("version")+1}async buildLegendElementsForFeatureCollections(e){if(!(!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView()))return this.legendElements=[],void this.notifyChange("ready");const t=Array.from(e,(e=>{if(E(e))return this._getRendererLegendElements(e.renderer,{title:e.title});if(e.featureSet?.features.length){const t=e.layerDefinition,l=t?.drawingInfo,s=l&&R(l.renderer),i=he.read(t.geometryType);return s?this._getRendererLegendElements(s,{title:e.name,geometryType:i}):(o.getLogger(this).warn("drawingInfo not available!"),null)}return null}));try{const e=[],l=await Promise.allSettled(t);for(const t of l)if("fulfilled"===t.status)for(const l of t.value??[])e.push(l);this.legendElements=e,this.notifyChange("ready")}catch(l){o.getLogger(this).warn("error while building legend for layer!",l)}}async buildLegendElementsForRenderer(e){try{const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getRendererLegendElements(e):[],this.notifyChange("ready")}catch(t){o.getLogger(this).warn("error while building legend for layer!",t)}}async buildLegendElementsForFeatureReduction(e){try{const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getLegendElementsForFeatureReduction(e):[],this.notifyChange("ready")}catch(t){o.getLogger(this).warn("error while building legend for layer!",t)}}async buildLegendElementsForTools(){const e=this.layer;if(Oe(e))this._constructLegendElementsForVoxellayer();else if(Ae(e))this._constructLegendElementsForWMTSlayer();else if(Pe(e))await this._constructLegendElementsForWMSSublayers();else if(xe(e))await this._constructLegendElementsForBuildingSceneLayer();else if(Me(e)||Ue(e)||je(e))await this._constructLegendElementsForSublayers();else{this.removeHandles("imageryLayers-watcher");let t="default";if(ke(e)){const l=e;t=(l?.rasterFunction?.functionName||"default")+"_"+(e.bandIds?.length?e.bandIds.join(""):"###")}await this._getLegendLayers(`${e.uid}-${t}`).then((async t=>{this.legendElements=[],this.notifyChange("ready");const l=t.map((async t=>{if(ke(e)||Be(e)){const t=d((()=>["renderingRule"in e&&e.rasterFunction,e.bandIds]),(()=>u((async()=>{Qe.default=null,e.renderer?await this.buildLegendElementsForRenderer(e.renderer):await this.buildLegendElementsForTools()}))()));this.addHandles(t,"imageryLayers-watcher")}const l=this._generateSymbolTableElementForLegendLayer(t);l&&l.infos.length&&(ke(e)&&(l.title=e.title),this.legendElements.push(l)),this.notifyChange("ready")}));await Promise.allSettled(l)})).catch((e=>{o.getLogger(this).warn("Request to server for legend has failed!",e)}))}}async _isLayerInCurrentView(){const e=this.layer,t=this.layerView,l=t&&"createQuery"in t&&"queryFeatureCount"in t;if(!l&&!(t&&"createQuery"in e&&"queryFeatureCount"in e))return!0;await y((()=>!t.updating));const s=l?"createQuery"in t&&t.createQuery():"createQuery"in e&&e.createQuery();if(!s)return!0;s.geometry=this.view.extent;return 0!==(l?"queryFeatureCount"in t&&await t.queryFeatureCount(s):"queryFeatureCount"in e&&await e.queryFeatureCount(s))}_getParentLayerOpacity(e){let t=1;const l=e.parent;return l&&"uid"in l&&(t=this._getParentLayerOpacity(l)),e.opacity*t}_isGroupActive(){const e=this.children;return!!e.length&&e.some((e=>e.ready))}_isRendererScaleDriven(e){if("dot-density"===e.type)return!0;const t="valueExpression"in e?e.valueExpression:null;if(ye.test(t))return!0;const l="visualVariables"in e?e.visualVariables:null;return l?l.some((e=>this._isScaleDrivenSizeVariable(e))):this._hasScaleDrivenSymbols(e)}_hasScaleDrivenSymbols(e){switch(e.type){case"simple":return this._isScaleDrivenSymbol(e.symbol);case"class-breaks":return this._isScaleDrivenSymbol(e.defaultSymbol)||e.classBreakInfos.some((e=>this._isScaleDrivenSymbol(e.symbol)));case"unique-value":return this._isScaleDrivenSymbol(e.defaultSymbol)||!!e.uniqueValueInfos?.some((e=>this._isScaleDrivenSymbol(e.symbol)))}return!1}_isScaleDrivenSymbol(e){return"cim"===e?.type&&(null!=e.data.minScale||null!=e.data.maxScale)}_isScaleDrivenSizeVariable(e){if(e&&"size"!==e.type)return!1;const t=e,l=t.minSize,s=t.maxSize;return"object"==typeof l&&l?this._isScaleDrivenSizeVariable(l):"object"==typeof s&&s?this._isScaleDrivenSizeVariable(s):!!t.expression||ye.test(t.valueExpression)}_isLayerScaleDriven(e){if("minScale"in e&&e.minScale>0||"maxScale"in e&&e.maxScale>0)return!0;if("sublayers"in e&&e.sublayers)return e.sublayers.some((e=>this._isLayerScaleDriven(e)));const t=e.parent;if(!1===e.loaded&&t&&Me(t)&&"source"in e&&e.source&&"map-layer"===e.source.type)for(const l of t.sourceJSON.layers??[])if(l.id===e.source.mapLayerId&&(l.minScale>0||l.maxScale>0))return!0;return!1}async _constructLegendElementsForVoxellayer(){this.legendElements=[],this.removeHandles("voxel-style-watcher"),this.removeHandles("voxel-current-variable");const e=this.layer;this.addHandles(d((()=>e.currentVariableId),(()=>this._constructLegendElementsForVoxellayer())),"voxel-current-variable"),this.addHandles(d((()=>e.getVariableStyles()),(()=>this._constructLegendElementsForVoxellayer())),"voxel-style-watcher");const t=e.getVariableStyle(null),l=[];if(t)if(t.uniqueValues?.length){const e=[];t.uniqueValues.forEach((t=>{t.enabled&&e.push({label:t.label||`${t.value}`,value:t.value,symbol:new ie({color:t.color,outline:null})})})),e.length&&l.push({type:"symbol-table",title:t.label,infos:e})}else if(t.transferFunction){const{colorStops:e,stretchRange:s}=t.transferFunction,i=e.toArray().reverse(),r=s.map(((e,t)=>`${0===t?Z:K} ${le(e)}`)).reverse(),n=i.map((e=>({color:e.color,value:null,label:null})));n[0].label=r[0],n[n.length-1].label=r[1],l.push({type:"color-ramp",title:t.label,infos:n,preview:x(i.map((e=>e.color)),{ariaLabel:await Ge("previewColorRampAriaLabel")})})}const s=e.opacity,i=l.reduce(((e,t)=>[...e,...this._getAllInfos(t)]),[]).filter((e=>!!e?.symbol)).map((e=>this._getSymbolPreview(e,s)));await Promise.allSettled(i),this.legendElements=l,this.notifyChange("ready")}_constructLegendElementsForWMTSlayer(){this.legendElements=[],this.removeHandles("wmts-activeLayer-watcher");const e=this.layer.activeLayer;if(this.addHandles(d((()=>{const{layer:e}=this;return e&&"activeLayer"in e&&e.activeLayer}),(()=>this._constructLegendElementsForWMTSlayer())),"wmts-activeLayer-watcher"),e.styleId&&e.styles){let t=null;e.styles.some((l=>e.styleId===l.id&&(t=l.legendUrl,!0))),t&&(this.legendElements=[{type:"symbol-table",title:e.title,infos:[{src:t,opacity:this.opacity}]}])}this.notifyChange("ready")}async _constructLegendElementsForWMSSublayers(){this.legendElements=[],this.removeHandles("wms-sublayers-watcher");const e=this.layer;let t=null;(e.customParameters||e.customLayerParameters)&&(t={...e.customParameters,...e.customLayerParameters}),this.addHandles(d((()=>{const{layer:e}=this;return e&&"sublayers"in e&&e.sublayers}),(()=>this._constructLegendElementsForWMSSublayers())),"wms-sublayers-watcher"),this.legendElements=await this._generateLegendElementsForWMSSublayers(e.sublayers,t),this.notifyChange("ready")}async _generateLegendElementsForWMSSublayers(e,t){const l=[];this.addHandles(e.on("change",(()=>this._constructLegendElementsForWMSSublayers())),"wms-sublayers-watcher");const s=e.toArray();for(const i of s){const e=d((()=>[i.title,i.visible,i.legendEnabled]),(()=>this._constructLegendElementsForWMSSublayers()));if(this.addHandles(e,"wms-sublayers-watcher"),!this.respectLayerVisibility||i.visible&&i.legendEnabled){const e=await this._generateSymbolTableElementForWMSSublayer(i,t);e?.infos.length&&l.unshift(e)}}return l}async _generateSymbolTableElementForWMSSublayer(e,t){if(!e.legendUrl&&e.sublayers){const l=(await this._generateLegendElementsForWMSSublayers(e.sublayers,t)).filter((e=>e));return{type:"symbol-table",title:e.title,infos:l}}return this._generateSymbolTableElementForLegendUrl(e,t)}async _generateSymbolTableElementForLegendUrl(e,t){let l=e.legendUrl;if(!l)return;const i={type:"symbol-table",title:e.title||e.name||String(e.id??""),infos:[]};t&&(l=p(l,t));let r=null;const n=e.layer?.opacity;try{r=(await s(l,{responseType:"image"})).data,r&&(r.style.opacity=n)}catch{}return i.infos.push({src:l,preview:r,opacity:n}),i}_getLegendLayers(e,t){const l=Qe&&Qe[e];return l?Promise.resolve(l):this._legendRequest(t).then((t=>{const l=t.layers;return Qe[e]=l,l}))}_legendRequest(e){const t=this.layer;let l={f:"json",dynamicLayers:e};if(ke(t)){const e=t.exportImageServiceParameters.rasterFunction;if(e&&(l.renderingRule=JSON.stringify(e.functionDefinition?.toJSON()||e.toJSON())),t.bandIds&&(l.bandIds=t.bandIds.join()),t.raster||t.viewId||t.customParameters){const{raster:e,viewId:s,customParameters:i}=t;l={raster:e,viewId:s,...l,...i}}}let i=t.url.replace(/(\/)+$/,"");if("version"in t&&+t.version>=10.01){const e=i.indexOf("?");e>-1?i=i.substring(0,e)+"/legend"+i.substring(e):i+="/legend"}else{const e=i.toLowerCase().indexOf("/rest/"),t=i.substring(0,e)+i.substring(e+5,i.length);i=oe+"?soapUrl="+encodeURI(t)+"&returnbytes=true"}return s(i,{query:l}).then((e=>e.data))}async _constructLegendElementsForBuildingSceneLayer(){this.legendElements=[],this.removeHandles("sublayers-watcher");const e=this.layer;this.addHandles(d((()=>e.sublayers),(()=>this._constructLegendElementsForBuildingSceneLayer())),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForBuildingSublayers(e.sublayers,this.opacity),this.notifyChange("ready")}catch(t){o.getLogger(this).warn("Request to server for legend has failed!",t)}}async _generateLegendElementsForBuildingSublayers(e,t){let l=[];this.addHandles(e.on("change",(()=>this._constructLegendElementsForBuildingSceneLayer())),"sublayers-watcher");const s=e.toArray();for(const i of s){const e=d((()=>["renderer"in i&&i.renderer,i.opacity,i.title,i.visible]),(()=>this._constructLegendElementsForBuildingSceneLayer()));if(this.addHandles(e,"sublayers-watcher"),!this.respectLayerVisibility||i.visible){const e=null!=i?.opacity?i.opacity:null,s=null!=e?e*t:t;if("building-group"===i.type){const e={type:"symbol-table",title:i.title,infos:[]},t=await this._generateLegendElementsForBuildingSublayers(i.sublayers,s);e.infos.push(...t),l=[e,...l]}else if(i.renderer){l=[...await this._getRendererLegendElements(i.renderer,{title:i.title,opacity:s,sublayer:i}),...l]}}}return l.filter((e=>!!e&&(!("infos"in e)||!e.infos||e.infos.length>0)))}async _constructLegendElementsForSublayers(){this.legendElements=[],this.removeHandles("sublayers-watcher");const e=this.layer;if(Me(e)||Ue(e)||je(e)){this.addHandles(d((()=>e.sublayers),(()=>this._constructLegendElementsForSublayers)),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForSublayers(e.sublayers,this.opacity),this.notifyChange("ready")}catch(t){o.getLogger(this).warn("Request to server for legend has failed!",t)}}}async _generateLegendElementsForSublayers(e,t,l){const s=this.layer;let i=[];this.addHandles(e.on("change",(()=>this._constructLegendElementsForSublayers())),"sublayers-watcher");let n=e.toArray();!l&&this.sublayerIds&&this.sublayerIds.length&&(n=je(s)?this.sublayerIds.map((e=>s.findSublayerForSubtypeCode(e))).filter(r):this.sublayerIds.map((e=>s.findSublayerById(e))).filter(r));for(const r of n){const e=d((()=>[r.renderer,r.opacity,r.title,r.visible,r.legendEnabled]),(()=>this._constructLegendElementsForSublayers()));if(this.addHandles(e,"sublayers-watcher"),!this.respectLayerVisibility||r.visible&&r.legendEnabled&&this._isSublayerInScale(r)){const e=null!=r?.opacity?r.opacity:null,s=null!=e?e*t:t,n=!We(r)||r.originIdOf("renderer")>S.SERVICE&&!r.sublayers;if(r.renderer&&n){await r.load();i=[...await this._getRendererLegendElements(r.renderer,{title:r.title,opacity:s,sublayer:r}),...i]}else if(We(r)){const e=await this._generateSymbolTableElementForSublayer(r,s,l);e&&i.unshift(e)}}}return i.filter((e=>!!e&&(!("infos"in e)||!e.infos||e.infos.length>0)))}async _generateSymbolTableElementForSublayer(e,t,l){if(!l){l=new Map;const t=this.layer,s=e.source;let i=null;if(!(!s||"map-layer"===s.type&&s.mapLayerId===e.id&&(!s.gdbVersion||s.gdbVersion===("gdbVersion"in t&&t.gdbVersion)))||e.originIdOf("renderer")>S.SERVICE||e.originIdOf("labelingInfo")>S.SERVICE||e.originIdOf("labelsVisible")>S.SERVICE){const e=new L({layer:this.layer});i=e.hasDynamicLayers?e.dynamicLayers:null,e.destroy()}const r=i||`${t.uid}-default`;(await this._getLegendLayers(r,i)).forEach((e=>l.set(e.layerId,e)))}const s=l.get(e.id);if((!s||s?.subLayerIds&&s.defaultVisibility)&&e.sublayers){const s=await this._generateLegendElementsForSublayers(e.sublayers,t,l);return{type:"symbol-table",title:e.title,infos:s}}return this._generateSymbolTableElementForLegendLayer(s,e,t)}_generateSymbolTableElementForLegendLayer(e,t,l){if(!e?.legend||this.respectLayerVisibility&&!this._isLegendLayerInScale(e,t))return null;const s=t?.renderer;let i=t?.title||e.layerName;if(s&&(!t||t?.originIdOf("renderer")>S.SERVICE)){const e=t?.title||this._getRendererTitle(s,t);e&&(i&&"string"!=typeof e&&"title"in e&&(e.title=i),i=e)}const r={type:"symbol-table",title:i,legendType:e.legendType||null,infos:[]},n=t?this._sanitizeLegendForSublayer(e.legend.slice(),t):e.legend;return e.legendGroups&&e.legendGroups.length>0?e.legendGroups.forEach((t=>{const s={type:"symbol-table",title:t.heading,legendType:e.legendType||null,infos:this._generateSymbolTableElementInfosForLegendLayer(n.filter((e=>e.groupId===t.id)),e.layerId,l)};s.infos?.length>0&&r.infos.push(s)})):r.infos=this._generateSymbolTableElementInfosForLegendLayer(n,e.layerId,l),r.infos.length>0?r:null}_generateSymbolTableElementInfosForLegendLayer(e,t,s){return e.map((e=>{let i=e.url;if(e.imageData&&e.imageData.length>0)i=`data:image/png;base64,${e.imageData}`;else{if(0===i.indexOf("http"))return null;i=l(`${this.layer.url}/${t}/images/${i}`)}return{label:e.label,src:i,opacity:s??this.opacity,width:e.width,height:e.height}})).filter(r)}_isSublayerInScale(e){const t=e.minScale||0,l=e.maxScale||0;return!(t>0&&t<this.scale||l>this.scale)}_isLegendLayerInScale(e,t){const l=t||this.layer;let s=null,i=null,r=!0;return!l.minScale&&0!==l.minScale||!l.maxScale&&0!==l.maxScale?(0===e.minScale&&l.tileInfo&&(s=l.tileInfo.lods[0].scale),0===e.maxScale&&l.tileInfo&&(i=l.tileInfo.lods[l.tileInfo.lods.length-1].scale)):(s=Math.min(l.minScale,e.minScale)||l.minScale||e.minScale,i=Math.max(l.maxScale,e.maxScale)),(s>0&&s<this.scale||i>this.scale)&&(r=!1),r}_sanitizeLegendForSublayer(e,t){if("version"in this.layer&&+this.layer.version<10.1||0===e.length)return e;const l=t.renderer,s=e.some((e=>e.values));let i=0,r=null;return s&&e.some(((e,t)=>(e.values||(i=t,r=e,r.label||(r.label="others")),null!=r))),l?"unique-value"===l.type?r&&(e.splice(i,1),e.push(r)):"class-breaks"===l.type&&(r&&e.splice(i,1),e.reverse(),r&&e.push(r)):r&&(e.splice(i,1),e.push(r)),e}async _getRendererLegendElements(e,t={}){if(!De(e,this.view))return o.getLogger(this).warn(`Renderer of type '${e.type}' not supported!`),[];if(Ee(e))return this._constructPointCloudRendererLegendElements(e,t);if(Te(e))return this._constructDotDensityRendererLegendElements(e);const l=await this._loadRenderer(e);return ze(l)?this._constructPieChartRendererLegendElements(l):this._constructRendererLegendElements(l,t)}async _getLegendElementsForFeatureReduction(e){let t=null;return"binning"===e.type?t=e.renderer:"cluster"===e.type&&(t=this._getClusterRenderer(e)),t?this._getRendererLegendElements(t):[]}_getPointCloudRendererTitle(e){return(e.legendOptions?.title||e.field)??""}async _constructPointCloudRendererLegendElements(e,t={}){const l=t.title,s=[];let i=null,r=null;if(Re(e))i={type:"symbol-table",title:l||this._getPointCloudRendererTitle(e),infos:[]},e.colorClassBreakInfos.forEach((e=>{i.infos.unshift({label:e.label||e.minValue+" - "+e.maxValue,value:[e.minValue,e.maxValue],symbol:this._getAppliedCloneSymbol(me,e.color)})}));else if(Fe(e)){const t=e.stops;let s=null;if(t?.length&&(1===t.length&&(s=t[0].color),!s)){const e=t[0].value,l=t[t.length-1].value;if(null!=e&&null!=l){s=k(e+(l-e)/2,t)}}i={type:"symbol-table",title:null,infos:[{label:null,value:null,symbol:this._getAppliedCloneSymbol(me,s||me.color)}]};const n=B(e.stops??[])??[];r={type:"color-ramp",title:l||this._getPointCloudRendererTitle(e),infos:n,preview:x(n.map((e=>e.color)),{ariaLabel:await Ge("previewColorRampAriaLabel")})}}else Ve(e)&&(i={type:"symbol-table",title:l||this._getPointCloudRendererTitle(e),infos:[]},e.colorUniqueValueInfos?.forEach((e=>{i.infos.push({label:e.label||e.values.join(", "),value:e.values.join(", "),symbol:this._getAppliedCloneSymbol(me,e.color)})})));i&&i.infos.length&&s.push(i),r&&r.infos.length&&s.push(r);const n=s.reduce(((e,t)=>[...e,...t.infos??[]]),[]).filter((e=>!!e.symbol)).map((t=>this._getSymbolPreview(t,this.opacity,{symbolConfig:{applyColorModulation:!!e.colorModulation}})));return await Promise.allSettled(n),s}async _getElementInfoForDotDensity(e,t){const{color:l,label:s,valueExpressionTitle:i}=t,{backgroundColor:r,outline:n,dotSize:a}=e,o=this.effectList,u=o?.effects.map((e=>e.toJSON())),c=w(u),d=await Ge("previewTemplateAriaLabel",s||i),y=a+"-"+l+"-"+r+"-"+(n&&JSON.stringify(n.toJSON()))+"-"+c,h=this._dotDensityUrlCache,m=h.has(y)?h.get(y):j(e,l,{ariaLabel:d});h.set(y,m);const f={shape:{type:"image",x:0,y:0,width:m.width,height:m.height,src:m.src},fill:null,stroke:null,offset:[0,0]},p=D([[f]],[m.width,m.height],{effectView:this.effectList,ariaLabel:d});return{opacity:1,src:m.src,preview:p,width:m.width,height:m.height}}async _constructDotDensityRendererLegendElements(e){const t=e.calculateDotValue(this.view.scale),l=e.legendOptions?.unit,s={type:"symbol-table",title:{value:t&&Math.round(t),unit:l||""},infos:[]};for(const i of e.attributes){const t=await this._getElementInfoForDotDensity(e,i);t.label=i.label||i.valueExpressionTitle||i.field,s.infos.push(t)}return[s]}async _constructPieChartRendererLegendElements(e){const t=this.layer.opacity,l=[];let s=null;const i=e.outline;e.attributes.forEach((e=>{const t=new se({color:e.color,outline:i}),s=e.label||e.valueExpressionTitle||e.field;l.push({label:s,symbol:t})}));const r=l.length?[...l]:[];if(e.othersCategory?.color&&0!==e.othersCategory?.threshold){const t=new se({color:e.othersCategory.color,outline:i});s=e.othersCategory.label||"Other",l.push({label:s,symbol:t})}if(e.defaultColor?.a){const t=new se({color:e.defaultColor,outline:i});l.push({label:e.defaultLabel,symbol:t})}const n=await this._getVisualVariableLegendElements(e,this.layer)||[];if(l.length){n.unshift({type:"symbol-table",title:null,infos:l});const t=r.filter((e=>e.label!==s)).map((e=>e.symbol.color)).filter(Boolean),a=O(t,{holePercentage:e.holePercentage,backgroundColor:e.backgroundFillSymbol?.color,effectList:this.effectList,outline:i,ariaLabel:await Ge("previewPieChartAriaLabel")});n.unshift({type:"pie-chart-ramp",title:this._getRendererTitle(e,this.layer),infos:l,preview:a})}const a=n.reduce(((e,t)=>[...e,...this._getAllInfos(t)]),[]).filter((e=>!!e?.symbol&&!e?.preview)).map((e=>this._getSymbolPreview(e,t,{effectList:this.effectList})));return await Promise.allSettled(a),n}async _constructRendererLegendElements(e,t={}){const{title:l,sublayer:s}=t,i=s||this.layer;this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._scaleDrivenSizeVariable=null;const r=await this._getVisualVariableLegendElements(e,i)||[],n={type:"symbol-table",title:l||this._getRendererTitle(e,i),infos:[]};let a=null,o=!1;const u=new Set;if(pe(e)&&!this._hasSizeRamp){const t=await X(e);n.infos.push({label:null,symbol:t})}else if(He(e)){let t=l;const s=$e(e)?"univariate-above-and-below-ramp":"univariate-color-size-ramp",i=r.findIndex((e=>"color-ramp"===e.type)),n=-1!==i?r.splice(i,1)[0]:null,a=r.findIndex((e=>"size-ramp"===e.type)),o=-1!==a?r.splice(a,1)[0]:null,u=[];n&&(t=n.title,u.push(n)),o&&(t=o.title,u.push(o)),u.length>0&&r.push({type:s,title:t,infos:u})}else if(Ce(e)){const t=H(e);r.push({type:"heatmap-ramp",title:l||this._getRendererTitle(e,i),infos:t,preview:x(t.map((e=>e.color)),{effectList:this.effectList,ariaLabel:await Ge("previewColorRampAriaLabel")})})}else if(ve(e)){const t=e&&e.authoringInfo;if(t&&"relationship"===t.type){const{numClasses:l,field1:s,field2:a}=t,o=t.focus;if(l&&s&&a){const t=[s,a];let c=$(o)||0;for(const e of t){const{field:t,normalizationField:l,label:s}=e,r=s||{field:this._getFieldAlias(t,i),normField:l&&this._getFieldAlias(l,i)},a=Je.clone();a.angle=c,n.infos.push({label:r,symbol:a}),u.add(a),c+=90}const d=W({focus:o,numClasses:l,infos:e.uniqueValueInfos??[]});r.unshift(d)}}else if(ke(this.layer)||Be(this.layer))e.uniqueValueInfos?.forEach((e=>{e.symbol&&n.infos.push({label:e.label||e.value,value:e.value,symbol:e.symbol})}));else{const{field:t,field2:s,field3:r,fieldDelimiter:a,valueExpression:u,defaultSymbol:c}=e,d=!(!t&&!u||!s&&!r),y=[];if(e.uniqueValueGroups?.forEach((e=>{const l={type:"symbol-table",title:e.heading,infos:[]};e.classes?.forEach((e=>{const{symbol:n,values:o}=e;if(n){const c=[],y=[];for(const e of o??[]){const{value:l,value2:n,value3:o}=e,h=[],m=[];(t||u)&&(h.push(l),m.push(this._getDomainName(t,l,i))),s&&(h.push(n),m.push(this._getDomainName(s,n,i))),r&&(h.push(o),m.push(this._getDomainName(r,o,i))),c.push(d?h.join(a||""):h[0]),y.push(m.join(" - "))}const h=c.join(", ");let m=e.label;if(!m){const e=y.filter(Boolean);m=e.length?e.join(", "):h}l.infos.push({label:m,value:h,symbol:n})}})),l.infos.length&&y.push(l)})),y.length){const t=y[0];1===y.length&&"title"in t&&!t.title?n.infos.push(...t.infos??[]):(c&&(y.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:c}]}),o=!0),n.infos.push(...y)),l||e.legendOptions?.title||e.valueExpressionTitle||(n.title=null)}}e.defaultSymbol&&!o&&(n.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),o=!0)}else if(Le(e)){a=this._isUnclassedRenderer(e);(!a||!this._hasSizeRamp)&&(e.classBreakInfos.forEach((e=>{e.symbol&&n.infos.unshift({label:e.label||(a?null:e.minValue+" - "+e.maxValue),value:[e.minValue,e.maxValue],symbol:e.symbol})})),a&&(n.title=null),this._updateInfosforClassedSizeRenderer(e,n.infos)),e.defaultSymbol&&!a&&(n.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),o=!0)}else if(Se(e))if(Be(this.layer)||Ne(this.layer)){const t=await this._constructTileImageryStretchRendererElements(e);qe(t)?r.push(t):n.infos=t}else{const t=this.layer;let l,s;if(e.statistics?.length){const t=e.statistics[0];Y(t)?(l=t.min,s=t.max):[l,s]=t}let i=[],a=t.serviceRasterInfo;if(t.rasterFunction)try{a=await t.generateRasterInfo(t.rasterFunction)}catch{}const o=I(a.pixelType);if(1===a.bandCount){const i=t.bandIds?.[0]||0;l=null!=l?l:a.statistics?a.statistics[i].min:o[0],s=null!=s?s:a.statistics?a.statistics[i].max:o[1],l||s?r.push(await this._getStretchLegendElements(e,{min:l,max:s})):this._getServerSideLegend()}else if(t.bandIds&&1===t.bandIds.length)l=null!=l?l:a.statistics?a.statistics[t.bandIds[0]].min:o[0],s=null!=s?s:a.statistics?a.statistics[t.bandIds[0]].max:o[1],l||s?r.push(await this._getStretchLegendElements(e,{min:l,max:s})):this._getServerSideLegend();else if(a.bandCount>=3){const{bandInfos:e}=a,{bandIds:l}=t;e.length>=a.bandCount?3===l?.length?(i=l.map((t=>e[t].name)),n.infos=this._createSymbolTableElementMultiBand(i)):"lerc"===t.format?(i=[0,1,2].map((t=>e[t].name)),n.infos=this._createSymbolTableElementMultiBand(i)):this._getServerSideLegend():"lerc"===t.format?(i=["band1","band2","band3"],n.infos=this._createSymbolTableElementMultiBand(i)):this._getServerSideLegend()}else this._getServerSideLegend()}else if(be(e))e.colormapInfos.forEach((e=>{n.infos.push({label:e.label,value:e.value,symbol:this._getAppliedCloneSymbol(fe,e.color)})}));else if(we(e)){let l=e.symbol;switch(t.geometryType){case"point":l="pointSymbol"in i?i.pointSymbol:null;break;case"polyline":l="lineSymbol"in i?i.lineSymbol:null;break;case"polygon":l="polygonSymbol"in i?i.polygonSymbol:null}const s=this._hasClusterSizeVariable&&this._getClusterSymbol()||!this._hasSizeRamp;e.symbol&&s&&n.infos.push({label:e.label,symbol:l})}else if(ge(e)){e.outputUnit&&(this.title="("+e.toJSON().outputUnit+")"),n.title=e.attributeField;const t=e.getClassBreakInfos();t?.length?t.forEach((e=>{n.infos.push({label:e.minValue+" - "+e.maxValue,symbol:e.symbol})})):n.infos.push({label:e.attributeField,symbol:e.getDefaultSymbol()})}else _e(e)&&r.push(await this._getStretchLegendElements(e,{min:0,max:255}));const c=e.defaultSymbol;!c||o||we(e)||a&&!this._hasColorRamp&&!this._hasSizeRamp&&!this._hasOpacityRamp||r.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:c}]}),n.infos.length&&r.unshift(n);const d=null==t.opacity?this.opacity:t.opacity,y=this._isTallSymbol("visualVariables"in e?e.visualVariables:null),h=ke(this.layer)||Be(this.layer),m=r.reduce(((e,t)=>[...e,...this._getAllInfos(t)]),[]).filter((e=>!!e?.symbol)).filter((e=>{if("cim"===e.symbol.type){const{minScale:t,maxScale:l}=e.symbol.data;if(t&&t<this.scale||l&&l>this.scale)return!1}return!0})).map((e=>this._getSymbolPreview(e,d,{isDefault:e.symbol===c,applyScaleDrivenSize:!u.has(e.symbol),symbolConfig:{isTall:y,isSquareFill:h},effectList:u.has(e.symbol)?null:this.effectList})));return e=null,await Promise.allSettled(m),r}_getServerSideLegend(){setTimeout((()=>this.buildLegendElementsForTools()),0)}_getAllInfos(e){const t=e?.infos;return t?t.reduce(((e,t)=>e.concat(this._getAllInfos(t))),[]):[e]}async _constructTileImageryStretchRendererElements(e){const t=this.layer,l=t.symbolizer.rasterInfo??t.raster.rasterInfo;let s,i;const r=e?.statistics?.length?e.statistics:l?.statistics;if(r){const e=r[0];Y(e)?(s=e.min,i=e.max):[s,i]=e}else{const e=I(l.pixelType);s=e[0],i=e[1]}if(t.hasStandardTime()&&(s=t.getStandardTimeValue(s),i=t.getStandardTimeValue(i)),1===l.bandCount||1===t.bandIds?.length)return this._getStretchLegendElements(e,{min:s,max:i});const n=(t?.bandIds?.length?t.bandIds:Array.from(Array(Math.min(l.bandCount,3)).keys())).map((e=>l.bandInfos[e].name));return n.length<3?n.push(n[1]):n.length>3&&n.splice(3),this._createSymbolTableElementMultiBand(n)}async _getStretchLegendElements(e,t){const l=e.colorRamp,s=N(l,t);return{type:"stretch-ramp",title:"",infos:s,preview:x(s.map((e=>e.color)),{ariaLabel:await Ge("previewColorRampAriaLabel")})}}_getClusterSymbol(){const e=this.layer,t="featureReduction"in e&&e.featureReduction,l=t&&"symbol"in t&&t.renderer;return l&&!0!==l?.authoringInfo?.isAutoGenerated?null:t&&"symbol"in t?t.symbol:null}async _getSizeLegendElement(e,t,l,s){return{type:"size-ramp",title:this._hasClusterSizeVariable?this._getClusterTitle(t):e,infos:await G(l,t,await ee(l),this.scale,this.view,s,this._hasClusterSizeVariable?this._getClusterSymbol():null)}}_createSymbolTableElementMultiBand(e){const t=[],l=["red","green","blue"];return e.forEach(((e,s)=>{t.push({label:{colorName:l[s],bandName:e},src:te[s],opacity:this.opacity??1})})),t}_updateInfosforClassedSizeRenderer(e,t){const l=e.authoringInfo&&"class-breaks-size"===e.authoringInfo.type,s=e.classBreakInfos.some((e=>A(e.symbol)));if(l&&s){const l=J,s=Q,i=e.classBreakInfos.length,r=(l-s)/(i>1?i-1:i);t.forEach(((e,t)=>{e.size=l-r*t}))}}_isTallSymbol(e){let t=!1,l=!1;if(e)for(let s=0;s<e.length&&(!t||!l);s++){const i=e[s];"size"===i.type&&("height"===i.axis&&(t=!0),"width-and-depth"===i.axis&&(l=!0))}return t&&l}async _getSymbolPreview(e,t,l){let s=!l?.isDefault&&null==e.size&&this._hasSizeRamp?m(z.size):e.size;if(this._scaleDrivenSizeVariable&&l?.applyScaleDrivenSize){const{getSize:t}=await import("../../../renderers/visualVariables/support/visualVariableUtils.js");s=t(this._scaleDrivenSizeVariable,null,{view:this.view.type,scale:this.scale,shape:"simple-marker"===e.symbol.type?e.symbol.style:null})}const i=!l?.isDefault&&this._hasSizeRamp||!(!this._scaleDrivenSizeVariable||!l?.applyScaleDrivenSize);return P(e.symbol,{size:s,opacity:t,scale:!1,symbolConfig:l?.symbolConfig,effectView:l?.effectList,style:"legend",cimOptions:{allowScalingUp:i},ariaLabel:e.label&&"string"!=typeof e.label?null:await Ge("previewTemplateAriaLabel",e.label)}).then((t=>(e.preview=t,e))).catch((()=>(e.preview=null,e)))}_getClusterRenderer(e){this._hasClusterSizeVariable=!1;const t="renderer"in this.layer?this.layer.renderer:null,l=e.renderer?.clone()||t?.clone(),s=U(this.layerView._effectiveRenderer,this.view);if(s&&null!=l&&"visualVariables"in l){const t=l.visualVariables?.some((e=>"size"===e.type&&"outline"!==e.target&&!ye.test(e.valueExpression)));if(!t){if("clusterMinSize"in e&&"clusterMaxSize"in e){const{clusterMinSize:t,clusterMaxSize:l}=e;s.legendOptions=new V({showLegend:t!==l})}const t=l.visualVariables||[];l.visualVariables=t.concat([s]),this._hasClusterSizeVariable=!0}}return l}async _loadRenderer(e){const t=[],l=e.clone(),s=await ee(l);if(Le(l)||ve(l)){const e=(l.classBreakInfos||l.uniqueValueInfos).map((e=>this._fetchSymbol(e.symbol,s).then((t=>{e.symbol=t})).catch((()=>{e.symbol=null}))));Array.prototype.push.apply(t,e)}return t.push(this._fetchSymbol(l.symbol||l.defaultSymbol,l.defaultSymbol?null:s).then((e=>{this._applySymbolToRenderer(l,e,we(l))})).catch((()=>{this._applySymbolToRenderer(l,null,we(l))}))),await Promise.allSettled(t),l}_applySymbolToRenderer(e,t,l){l?e.symbol=t:e.defaultSymbol=t}async _fetchSymbol(e,t){if(!e)throw new Error;if("web-style"===e.type){const l=this._webStyleSymbolCache;try{const s=await("2d"===this.view.type?e.fetchCIMSymbol({cache:l}):e.fetchSymbol({cache:l}));return this._getAppliedCloneSymbol(s,t)}catch{throw o.getLogger(this).warn("Fetching web-style failed!"),new Error}}return this._getAppliedCloneSymbol(e,t)}_getAppliedCloneSymbol(e,l){if(!e||!l)return e;const s=e.clone(),i=l&&l.toRgba();return s.type.includes("3d")?this._applyColorTo3dSymbol(s,i):"cim"===s.type?T(s,l):s.color&&(s.color=new t(i||s.color)),s}_applyColorTo3dSymbol(e,l){l&&e.symbolLayers.forEach((e=>{e&&(e.material||(e.material={}),e.material.color=new t(l))}))}async _getVisualVariableLegendElements(e,t){if(!("visualVariables"in e)||!e.visualVariables||"vector-field"===e.type)return null;const l=e.visualVariables,s=[],i=[],n=[];for(const r of l)"color"===r.type?s.push(r):"size"===r.type?i.push(r):"opacity"===r.type&&n.push(r);const a=[...s,...i,...n];let o,u;if(0===s.length&&Le(e)&&e.classBreakInfos&&1===e.classBreakInfos.length){const t=e.classBreakInfos[0];o=t&&t.symbol}if(0===s.length&&we(e)&&(o=e.symbol),o)if(o.type.includes("3d")){const e=o.symbolLayers.at(0);"water"===e.type?null!=e.color&&(u=e.color):null!=e.material?.color&&(u=e.material.color)}else o.url||(u=o.color);const c=this.effectList;return(await Promise.all(a.map((async l=>{if(!l.legendOptions||!1!==l.legendOptions.showLegend){const s=pe(e)?l.field:this._getRampTitle(l,t);let i=null;const r=this._getDateFormatOptions(t,l);if("color"===l.type){const e=await q(l,null,r)??[];i={type:"color-ramp",title:s,infos:e,preview:x(e.map((e=>e.color)),{effectList:c,ariaLabel:await Ge("previewColorRampAriaLabel")})},this._hasColorRamp||(this._hasColorRamp=e.length>0)}else if("size"===l.type&&"outline"!==l.target)ye.test(l.valueExpression)?this._hasClusterSizeVariable||(this._scaleDrivenSizeVariable=l):(i=await this._getSizeLegendElement(s,l,e,r),this._hasSizeRamp||(this._hasSizeRamp=!(null==i.infos||!i.infos.length)));else if("opacity"===l.type){const e=await q(l,u,r)??[];i={type:"opacity-ramp",title:s,infos:e,preview:x(e.map((e=>e.color)),{effectList:c,ariaLabel:await Ge("previewColorRampAriaLabel")})},this._hasOpacityRamp||(this._hasOpacityRamp=e.length>0)}return i&&i.infos?i:null}})))).filter(r)}_getFieldInfo(e,t){if(!t.field)return null;if("featureReduction"in e)switch(e.featureReduction?.type){case"cluster":case"binning":{const l=e.featureReduction.fields.find((({name:e})=>e.toLowerCase()===t.field.toLowerCase()));return l&&"getField"in e?e.getField(l.onStatisticField):null}}return"getField"in e?e.getField?.(t.field):null}_getDateFormat(e,t){const l="popupTemplate"in e?e.popupTemplate?.fieldInfos:null;if(l?.length&&t)return l.find((e=>e.fieldName?.toLowerCase()===t.toLowerCase()))?.format?.dateFormat}_getDateFormatOptions(e,t){const l=this._getFieldInfo(e,t);if(!l||!v(l)&&!C(l))return null;let s=this._getDateFormat(e,l.name)??"short-date-short-time";if("date"===l.type){let e=0,l=0;t.stops?(e=t.stops?.at(0)?.value??e,l=t.stops?.at(-1)?.value??l):"minDataValue"in t&&"maxDataValue"in t&&(e=t.minDataValue??e,l=t.maxDataValue??l),l-e>2*f.days&&(s="short-date")}const{timeZone:i,timeZoneName:r}=M(e,this.view.timeZone,re(s),l.type);return{fieldType:l.type,timeZone:i,timeZoneName:r,format:s}}_getDomainName(e,t,l){if(e&&"function"!=typeof e){const s="getField"in l&&l.getField?.(e),i=s&&"getFieldDomain"in l&&l.getFieldDomain?l.getFieldDomain(s.name):null;return"coded-value"===i?.type?i.getName(t):null}return null}_getClusterTitle(e){const t=this.layer,l=e.field;if("featureReduction"in t&&t.featureReduction&&"cluster"===t.featureReduction.type){const e=t.featureReduction,s="popupTemplate"in e&&e.popupTemplate,i=s&&s.fieldInfos;if(i)for(const t of i)if(t.fieldName===l)return"cluster_count"===l?t.label||{showCount:!0}:t.label}return{showCount:!0}}_getRampTitle(e,t){let l=e.field,s=e.normalizationField,i=!1,r=!1,n=!1,a=null;l="function"==typeof l?null:l,s="function"==typeof s?null:s;const o=e.legendOptions?.title;if(null!=o)a=o;else if(e.valueExpressionTitle)a=e.valueExpressionTitle;else{if("renderer"in t&&t.renderer&&"authoringInfo"in t.renderer&&t.renderer.authoringInfo?.visualVariables){const e=t.renderer.authoringInfo.visualVariables;for(let t=0;t<e.length;t++){const l=e[t];if("color"===l.type){if("ratio"===l.style){i=!0;break}if("percent"===l.style){r=!0;break}if("percent-of-total"===l.style){n=!0;break}}}}a={field:l&&this._getFieldAlias(l,t),normField:s&&this._getFieldAlias(s,t),ratio:i,ratioPercent:r,ratioPercentTotal:n}}return a}_getRendererTitle(e,t){const l=e;if(l.legendOptions?.title)return l.legendOptions.title;if(l.valueExpressionTitle)return l.valueExpressionTitle;let s=l.field,i=null,r=null;if(Le(l)&&(i=l.normalizationField,r="percent-of-total"===l.normalizationType),s="function"==typeof s?null:s,i="function"==typeof i?null:i,ve(l)){const{field2:e,field3:i,fieldDelimiter:r}=l;let n=s&&this._getFieldAlias(s,t);return e&&(n=`<${n}>${r}<${this._getFieldAlias(e,t)}>`,i&&(n=`${n}${r}<${this._getFieldAlias(i,t)}>`)),n}let n=null;return(s||i)&&(n={field:s&&this._getFieldAlias(s,t),normField:i&&this._getFieldAlias(i,t),normByPct:r}),n}_getFieldAlias(e,t){const l="popupTemplate"in t?t.popupTemplate:null,s=l?.fieldInfos;let i;s&&s.some((t=>e===t.fieldName&&(i=t,!0)));let r=null;"getField"in t&&t.getField?r=t.getField(e):"fieldsIndex"in t&&t.fieldsIndex&&(r=t.fieldsIndex.get(e));let n=null;const a="featureReduction"in t&&t.featureReduction;a&&(!i&&"popupTemplate"in a&&a.popupTemplate?.fieldInfos&&a.popupTemplate.fieldInfos.some((t=>e?.toLowerCase()===t.fieldName?.toLowerCase()&&(i=t,!0))),"fields"in a&&a.fields&&(n=a.fields.find((t=>t.name?.toLowerCase()===e?.toLowerCase()))));const o=i||r||n;let u=null;return o&&(u=i?.label||r?.alias||n?.alias||"name"in o&&o.name||"fieldName"in o&&o.fieldName||null),u}_isUnclassedRenderer(e){const t=e.visualVariables;let l=!1;return Le(e)&&e.classBreakInfos&&1===e.classBreakInfos.length&&t&&(l=e.field?t.some((t=>!(!t||e.field!==t.field||(e.normalizationField||t.normalizationField)&&e.normalizationField!==t.normalizationField))):!!t.length),l}};e([g()],Ze.prototype,"children",void 0),e([g({readOnly:!0})],Ze.prototype,"effectList",null),e([g()],Ze.prototype,"layerView",void 0),e([g()],Ze.prototype,"layer",void 0),e([g()],Ze.prototype,"legendElements",void 0),e([g({readOnly:!0})],Ze.prototype,"opacity",null),e([g()],Ze.prototype,"parent",void 0),e([g({readOnly:!0,dependsOn:[]})],Ze.prototype,"ready",null),e([g()],Ze.prototype,"hideLayersNotInCurrentView",void 0),e([g()],Ze.prototype,"keepCacheOnDestroy",void 0),e([g()],Ze.prototype,"respectLayerVisibility",void 0),e([g({readOnly:!0})],Ze.prototype,"scale",null),e([g()],Ze.prototype,"sublayerIds",void 0),e([g({readOnly:!0})],Ze.prototype,"isScaleDriven",null),e([g()],Ze.prototype,"title",void 0),e([g({readOnly:!0,dependsOn:["ready"],value:0})],Ze.prototype,"version",null),e([g()],Ze.prototype,"view",void 0),Ze=e([b("esri.widgets.Legend.support.ActiveLayerInfo")],Ze);const Ke=Ze;export{Ke as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import"../../../intl.js";import{addTokenParameter as s}from"../../../kernel.js";import l from"../../../request.js";import"../../../symbols.js";import i from"../../../core/Accessor.js";import{isSome as r}from"../../../core/arrayUtils.js";import n from"../../../core/Collection.js";import{JSONMap as a}from"../../../core/jsonMap.js";import o from"../../../core/Logger.js";import{debounce as u}from"../../../core/promiseUtils.js";import{on as c,watch as d,whenOnce as y,initial as h}from"../../../core/reactiveUtils.js";import{px2pt as m}from"../../../core/screenUtils.js";import{millisecondsPerTimeUnit as f}from"../../../core/timeUtils.js";import{addQueryParameters as p}from"../../../core/urlUtils.js";import{property as g}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import{subclass as b}from"../../../core/accessorSupport/decorators/subclass.js";import{OriginId as S}from"../../../core/accessorSupport/PropertyOrigin.js";import{EffectView as _}from"../../../layers/effects/EffectView.js";import{effectFunctionsFromJSON as w}from"../../../layers/effects/jsonUtils.js";import{ExportImageParameters as v}from"../../../layers/support/ExportImageParameters.js";import{isTimeOnlyField as L}from"../../../layers/support/fieldUtils.js";import{isFeatureLayer as E}from"../../../layers/support/layerUtils.js";import{getPixelValueRange as C}from"../../../layers/support/rasterFormats/pixelRangeUtils.js";import{fromJSON as I}from"../../../renderers/support/jsonUtils.js";import{isSupportedRenderer3D as R}from"../../../renderers/support/rendererConversion.js";import F from"../../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import{isAnyDateField as V}from"../../../smartMapping/support/utils.js";import{applyCIMSymbolColor as T}from"../../../symbols/support/cimSymbolUtils.js";import{SymbolSizeDefaults as z}from"../../../symbols/support/previewUtils.js";import{renderSymbol as D}from"../../../symbols/support/renderUtils.js";import{renderColorRampPreviewHTML as x,renderDotDensityPreviewHTML as j,renderPieChartPreviewHTML as O,renderPreviewHTML as P}from"../../../symbols/support/symbolUtils.js";import{isVolumetricSymbol as A}from"../../../symbols/support/utils.js";import{getClusterSizeVariable as M}from"./clusterUtils.js";import{getColorFromPointCloudStops as U,getRampStopsForPointCloud as k,getStrectchRampStops as B,getRampStops as N}from"./colorRampUtils.js";import{getHeatmapRampStops as q}from"./heatmapRampUtils.js";import{getRotationAngleForFocus as H,getRelationshipRampElement as $}from"./relationshipRampUtils.js";import{getRampStops as W,realWorldMaxSize as G,realWorldMinSize as J}from"./sizeRampUtils.js";import{specialCharsLessThan as Q,specialCharsGreaterThan as Z,getSymbolForFlowRenderer as K,isRasterBandStatistics as X,getMedianColor as Y,rgbImgSource as ee}from"./utils.js";import{formatNumberLabel as te}from"../../smartMapping/support/utils.js";import se from"../../../symbols/SimpleMarkerSymbol.js";import le from"../../../symbols/SimpleFillSymbol.js";import{fetchMessageBundle as ie}from"../../../intl/messages.js";import{substitute as re}from"../../../intl/substitute.js";const ne="https://utility.arcgis.com/sharing/tools/legend",ae="esri.layers.ImageryLayer",oe="esri.layers.ImageryTileLayer",ue="esri.layers.WCSLayer",ce=/^\s*(return\s+)?\$view\.scale\s*(;)?\s*$/i,de=new a({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"}),ye=new se({size:6,outline:{color:[128,128,128,.5],width:.5}}),he=new le({style:"solid"});function me(e){return"flow"===e.type}function fe(e){return"vector-field"===e.type}function pe(e){return"raster-colormap"===e.type}function ge(e){return"raster-stretch"===e.type}function be(e){return"raster-shaded-relief"===e.type}function Se(e){return"esri.renderers.SimpleRenderer"===e.declaredClass}function _e(e){return"esri.renderers.ClassBreaksRenderer"===e.declaredClass}function we(e){return"esri.renderers.UniqueValueRenderer"===e.declaredClass}function ve(e){return"esri.renderers.HeatmapRenderer"===e.declaredClass}function Le(e){return Ce(e)||Ie(e)||Re(e)||Ee(e)}function Ee(e){return"esri.renderers.PointCloudRGBRenderer"===e.declaredClass}function Ce(e){return"esri.renderers.PointCloudClassBreaksRenderer"===e.declaredClass}function Ie(e){return"esri.renderers.PointCloudStretchRenderer"===e.declaredClass}function Re(e){return"esri.renderers.PointCloudUniqueValueRenderer"===e.declaredClass}function Fe(e){return"esri.renderers.DotDensityRenderer"===e.declaredClass}function Ve(e){return"esri.renderers.PieChartRenderer"===e.declaredClass}function Te(e,t){return Se(e)||_e(e)||we(e)||ve(e)||Fe(e)||Ve(e)?"2d"===t.type||R(e):ge(e)||pe(e)||be(e)||Ce(e)||Ie(e)||Re(e)||fe(e)||me(e)}function ze(e){return"esri.layers.BuildingSceneLayer"===e.declaredClass}function De(e){return"esri.layers.SubtypeGroupLayer"===e.declaredClass}function xe(e){return"esri.layers.VoxelLayer"===e.declaredClass}function je(e){return"esri.layers.WMSLayer"===e.declaredClass}function Oe(e){return"esri.layers.WMTSLayer"===e.declaredClass}function Pe(e){return"esri.layers.MapImageLayer"===e.declaredClass}function Ae(e){return"esri.layers.TileLayer"===e.declaredClass}function Me(e){return e.declaredClass===ae}function Ue(e){return e.declaredClass===oe}function ke(e){return e.declaredClass===ue}function Be(e){return"stretch-ramp"===e.type}function Ne(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type}function qe(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type&&"above-and-below"===t?.univariateTheme}function He(e){return"sublayers"in e}async function $e(e,t){const s=await ie("esri/widgets/Legend/t9n/Legend");return"previewTemplateAriaLabel"!==e||t||(e="previewAriaLabel"),re(s[e],{label:t})}const We=new se({style:"path",path:"M10,5 L5,0 0,5 M5,0 L5,15",size:15,outline:{width:1,color:[85,85,85,1]}});let Ge={},Je=class extends i{constructor(e){super(e),this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._webStyleSymbolCache=new Map,this._dotDensityUrlCache=new Map,this._scaleDrivenSizeVariable=null,this._hasClusterSizeVariable=!1,this.children=new n,this.layerView=null,this.layer=null,this.legendElements=[],this.parent=null,this.hideLayersNotInCurrentView=!1,this.keepCacheOnDestroy=!1,this.respectLayerVisibility=!0,this.sublayerIds=[],this.title=null,this.view=null}initialize(){const e=()=>this.notifyChange("ready");this.addHandles([c((()=>this.children),"change",(t=>{const{added:s,removed:l}=t;s.forEach((t=>{const s=`activeLayerInfo-ready-watcher-${t.layer.uid}`;this.addHandles(d((()=>t.ready),e,h),s)})),l.forEach((e=>this.removeHandles(e.layer.uid))),e()}))]),this.keepCacheOnDestroy||(Ge={})}destroy(){this._webStyleSymbolCache=null,this._dotDensityUrlCache=null,this._scaleDrivenSizeVariable=null,this.keepCacheOnDestroy||(Ge=null)}get effectList(){const e=this.layer;let t=null;return"effect"in e&&e.effect&&(t=new _,t.effect=e.effect,t.endTransitions(),t.scale=this.scale),t}get opacity(){const e=this.layer.opacity,t=this.parent?.opacity,s=this.layer.parent,l=s&&"uid"in s?this._getParentLayerOpacity(s):null;return null!=t?t*e:null!=l?l*e:e}get ready(){return null===this.layer||(this.children.length>0?this._isGroupActive():this.legendElements.length>0)}get scale(){return this.view?.scale??0}get isScaleDriven(){const e=this.layer;if(null===e)return!1;if("effect"in e&&e.effect&&Array.isArray(e.effect))return!0;if("featureReduction"in e&&e.featureReduction){if("cluster"===e.featureReduction.type)return!0;if("binning"===e.featureReduction.type&&"renderer"in e.featureReduction&&e.featureReduction.renderer)return this._isRendererScaleDriven(e.featureReduction.renderer)}return"renderer"in e&&e.renderer?this._isRendererScaleDriven(e.renderer):this._isLayerScaleDriven(this.layer)}get version(){return this._get("version")+1}async buildLegendElementsForFeatureCollections(e){if(!(!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView()))return this.legendElements=[],void this.notifyChange("ready");const t=Array.from(e,(e=>{if(E(e))return this._getRendererLegendElements(e.renderer,{title:e.title});if(e.featureSet?.features.length){const t=e.layerDefinition,s=t?.drawingInfo,l=s&&I(s.renderer),i=de.read(t.geometryType);return l?this._getRendererLegendElements(l,{title:e.name,geometryType:i}):(o.getLogger(this).warn("drawingInfo not available!"),null)}return null}));try{const e=[],s=await Promise.allSettled(t);for(const t of s)if("fulfilled"===t.status)for(const s of t.value??[])e.push(s);this.legendElements=e,this.notifyChange("ready")}catch(s){o.getLogger(this).warn("error while building legend for layer!",s)}}async buildLegendElementsForRenderer(e){try{const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getRendererLegendElements(e):[],this.notifyChange("ready")}catch(t){o.getLogger(this).warn("error while building legend for layer!",t)}}async buildLegendElementsForFeatureReduction(e){try{const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getLegendElementsForFeatureReduction(e):[],this.notifyChange("ready")}catch(t){o.getLogger(this).warn("error while building legend for layer!",t)}}async buildLegendElementsForTools(){const e=this.layer;if(xe(e))this._constructLegendElementsForVoxellayer();else if(Oe(e))this._constructLegendElementsForWMTSlayer();else if(je(e))await this._constructLegendElementsForWMSSublayers();else if(ze(e))await this._constructLegendElementsForBuildingSceneLayer();else if(Pe(e)||Ae(e)||De(e))await this._constructLegendElementsForSublayers();else{this.removeHandles("imageryLayers-watcher");let t="default";if(Me(e)){const s=e;t=(s?.rasterFunction?.functionName||"default")+"_"+(e.bandIds?.length?e.bandIds.join(""):"###")}await this._getLegendLayers(`${e.uid}-${t}`).then((async t=>{this.legendElements=[],this.notifyChange("ready");const s=t.map((async t=>{if(Me(e)||Ue(e)){const t=d((()=>["renderingRule"in e&&e.rasterFunction,e.bandIds]),(()=>u((async()=>{Ge.default=null,e.renderer?await this.buildLegendElementsForRenderer(e.renderer):await this.buildLegendElementsForTools()}))()));this.addHandles(t,"imageryLayers-watcher")}const s=this._generateSymbolTableElementForLegendLayer(t);s&&s.infos.length&&(Me(e)&&(s.title=e.title),this.legendElements.push(s)),this.notifyChange("ready")}));await Promise.allSettled(s)})).catch((e=>{o.getLogger(this).warn("Request to server for legend has failed!",e)}))}}async _isLayerInCurrentView(){const e=this.layer,t=this.layerView,s=t&&"createQuery"in t&&"queryFeatureCount"in t;if(!s&&!(t&&"createQuery"in e&&"queryFeatureCount"in e))return!0;await y((()=>!t.updating));const l=s?"createQuery"in t&&t.createQuery():"createQuery"in e&&e.createQuery();if(!l)return!0;l.geometry=this.view.extent;return 0!==(s?"queryFeatureCount"in t&&await t.queryFeatureCount(l):"queryFeatureCount"in e&&await e.queryFeatureCount(l))}_getParentLayerOpacity(e){let t=1;const s=e.parent;return s&&"uid"in s&&(t=this._getParentLayerOpacity(s)),e.opacity*t}_isGroupActive(){const e=this.children;return!!e.length&&e.some((e=>e.ready))}_isRendererScaleDriven(e){if("dot-density"===e.type)return!0;const t="valueExpression"in e?e.valueExpression:null;if(ce.test(t))return!0;const s="visualVariables"in e?e.visualVariables:null;return!!s?.some((e=>this._isScaleDrivenSizeVariable(e)))||this._hasScaleDrivenSymbols(e)}_hasScaleDrivenSymbols(e){switch(e.type){case"simple":return this._isScaleDrivenSymbol(e.symbol);case"class-breaks":return this._isScaleDrivenSymbol(e.defaultSymbol)||e.classBreakInfos.some((e=>this._isScaleDrivenSymbol(e.symbol)));case"unique-value":return this._isScaleDrivenSymbol(e.defaultSymbol)||!!e.uniqueValueInfos?.some((e=>this._isScaleDrivenSymbol(e.symbol)))}return!1}_isScaleDrivenSymbol(e){if("cim"===e?.type){const{primitiveOverrides:t,minScale:s,maxScale:l}=e.data,i=t?.some((e=>/\$view\.scale/.test(e.valueExpressionInfo?.expression||"")))??!1;return null!=s||null!=l||i}return!1}_isScaleDrivenSizeVariable(e){if(e&&"size"!==e.type)return!1;const t=e,s=t.minSize,l=t.maxSize;return!("object"!=typeof s||!s||!this._isScaleDrivenSizeVariable(s))||(!("object"!=typeof l||!l||!this._isScaleDrivenSizeVariable(l))||(!!t.expression||ce.test(t.valueExpression)))}_isLayerScaleDriven(e){if("minScale"in e&&e.minScale>0||"maxScale"in e&&e.maxScale>0)return!0;if("sublayers"in e&&e.sublayers)return e.sublayers.some((e=>this._isLayerScaleDriven(e)));const t=e.parent;if(!1===e.loaded&&t&&Pe(t)&&"source"in e&&e.source&&"map-layer"===e.source.type)for(const s of t.sourceJSON.layers??[])if(s.id===e.source.mapLayerId&&(s.minScale>0||s.maxScale>0))return!0;return!1}async _constructLegendElementsForVoxellayer(){this.legendElements=[],this.removeHandles("voxel-style-watcher"),this.removeHandles("voxel-current-variable");const e=this.layer;this.addHandles(d((()=>e.currentVariableId),(()=>this._constructLegendElementsForVoxellayer())),"voxel-current-variable"),this.addHandles(d((()=>e.getVariableStyles()),(()=>this._constructLegendElementsForVoxellayer())),"voxel-style-watcher");const t=e.getVariableStyle(null),s=[];if(t)if(t.uniqueValues?.length){const e=[];t.uniqueValues.forEach((t=>{t.enabled&&e.push({label:t.label||`${t.value}`,value:t.value,symbol:new le({color:t.color,outline:null})})})),e.length&&s.push({type:"symbol-table",title:t.label,infos:e})}else if(t.transferFunction){const{colorStops:e,stretchRange:l}=t.transferFunction,i=e.toArray().reverse(),r=l.map(((e,t)=>`${0===t?Q:Z} ${te(e)}`)).reverse(),n=i.map((e=>({color:e.color,value:null,label:null})));n[0].label=r[0],n[n.length-1].label=r[1],s.push({type:"color-ramp",title:t.label,infos:n,preview:x(i.map((e=>e.color)),{ariaLabel:await $e("previewColorRampAriaLabel")})})}const l=e.opacity,i=s.reduce(((e,t)=>[...e,...this._getAllInfos(t)]),[]).filter((e=>!!e?.symbol)).map((e=>this._getSymbolPreview(e,l)));await Promise.allSettled(i),this.legendElements=s,this.notifyChange("ready")}_constructLegendElementsForWMTSlayer(){this.legendElements=[],this.removeHandles("wmts-activeLayer-watcher");const e=this.layer.activeLayer;if(this.addHandles(d((()=>{const{layer:e}=this;return e&&"activeLayer"in e&&e.activeLayer}),(()=>this._constructLegendElementsForWMTSlayer())),"wmts-activeLayer-watcher"),e.styleId&&e.styles){let t=null;e.styles.some((s=>e.styleId===s.id&&(t=s.legendUrl,!0))),t&&(this.legendElements=[{type:"symbol-table",title:e.title,infos:[{src:t,opacity:this.opacity}]}])}this.notifyChange("ready")}async _constructLegendElementsForWMSSublayers(){this.legendElements=[],this.removeHandles("wms-sublayers-watcher");const e=this.layer;let t=null;(e.customParameters||e.customLayerParameters)&&(t={...e.customParameters,...e.customLayerParameters}),this.addHandles(d((()=>{const{layer:e}=this;return e&&"sublayers"in e&&e.sublayers}),(()=>this._constructLegendElementsForWMSSublayers())),"wms-sublayers-watcher"),this.legendElements=await this._generateLegendElementsForWMSSublayers(e.sublayers,t),this.notifyChange("ready")}async _generateLegendElementsForWMSSublayers(e,t){const s=[];this.addHandles(e.on("change",(()=>this._constructLegendElementsForWMSSublayers())),"wms-sublayers-watcher");const l=e.toArray();for(const i of l){const e=d((()=>[i.title,i.visible,i.legendEnabled]),(()=>this._constructLegendElementsForWMSSublayers()));if(this.addHandles(e,"wms-sublayers-watcher"),!this.respectLayerVisibility||i.visible&&i.legendEnabled){const e=await this._generateSymbolTableElementForWMSSublayer(i,t);e?.infos.length&&s.unshift(e)}}return s}async _generateSymbolTableElementForWMSSublayer(e,t){if(!e.legendUrl&&e.sublayers){const s=(await this._generateLegendElementsForWMSSublayers(e.sublayers,t)).filter((e=>e));return{type:"symbol-table",title:e.title,infos:s}}return this._generateSymbolTableElementForLegendUrl(e,t)}async _generateSymbolTableElementForLegendUrl(e,t){let s=e.legendUrl;if(!s)return;const i={type:"symbol-table",title:e.title||e.name||String(e.id??""),infos:[]};t&&(s=p(s,t));let r=null;const n=e.layer?.opacity;try{r=(await l(s,{responseType:"image"})).data,r&&(r.style.opacity=n)}catch{}return i.infos.push({src:s,preview:r,opacity:n}),i}_getLegendLayers(e,t){const s=Ge&&Ge[e];return s?Promise.resolve(s):this._legendRequest(t).then((t=>{const s=t.layers;return Ge[e]=s,s}))}_legendRequest(e){const t=this.layer;let s={f:"json",dynamicLayers:e};if(Me(t)){const e=t.exportImageServiceParameters.rasterFunction;if(e&&(s.renderingRule=JSON.stringify(e.functionDefinition?.toJSON()||e.toJSON())),t.bandIds&&(s.bandIds=t.bandIds.join()),t.raster||t.viewId||t.customParameters){const{raster:e,viewId:l,customParameters:i}=t;s={raster:e,viewId:l,...s,...i}}}let i=t.url.replace(/(\/)+$/,"");if("version"in t&&+t.version>=10.01){const e=i.indexOf("?");e>-1?i=i.substring(0,e)+"/legend"+i.substring(e):i+="/legend"}else{const e=i.toLowerCase().indexOf("/rest/"),t=i.substring(0,e)+i.substring(e+5,i.length);i=ne+"?soapUrl="+encodeURI(t)+"&returnbytes=true"}return l(i,{query:s}).then((e=>e.data))}async _constructLegendElementsForBuildingSceneLayer(){this.legendElements=[],this.removeHandles("sublayers-watcher");const e=this.layer;this.addHandles(d((()=>e.sublayers),(()=>this._constructLegendElementsForBuildingSceneLayer())),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForBuildingSublayers(e.sublayers,this.opacity),this.notifyChange("ready")}catch(t){o.getLogger(this).warn("Request to server for legend has failed!",t)}}async _generateLegendElementsForBuildingSublayers(e,t){let s=[];this.addHandles(e.on("change",(()=>this._constructLegendElementsForBuildingSceneLayer())),"sublayers-watcher");const l=e.toArray();for(const i of l){const e=d((()=>["renderer"in i&&i.renderer,i.opacity,i.title,i.visible]),(()=>this._constructLegendElementsForBuildingSceneLayer()));if(this.addHandles(e,"sublayers-watcher"),!this.respectLayerVisibility||i.visible){const e=null!=i?.opacity?i.opacity:null,l=null!=e?e*t:t;if("building-group"===i.type){const e={type:"symbol-table",title:i.title,infos:[]},t=await this._generateLegendElementsForBuildingSublayers(i.sublayers,l);e.infos.push(...t),s=[e,...s]}else if(i.renderer){s=[...await this._getRendererLegendElements(i.renderer,{title:i.title,opacity:l,sublayer:i}),...s]}}}return s.filter((e=>!!e&&(!("infos"in e)||!e.infos||e.infos.length>0)))}async _constructLegendElementsForSublayers(){this.legendElements=[],this.removeHandles("sublayers-watcher");const e=this.layer;if(Pe(e)||Ae(e)||De(e)){this.addHandles(d((()=>e.sublayers),(()=>this._constructLegendElementsForSublayers)),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForSublayers(e.sublayers,this.opacity),this.notifyChange("ready")}catch(t){o.getLogger(this).warn("Request to server for legend has failed!",t)}}}async _generateLegendElementsForSublayers(e,t,s){const l=this.layer;let i=[];this.addHandles(e.on("change",(()=>this._constructLegendElementsForSublayers())),"sublayers-watcher");let n=e.toArray();!s&&this.sublayerIds&&this.sublayerIds.length&&(n=De(l)?this.sublayerIds.map((e=>l.findSublayerForSubtypeCode(e))).filter(r):this.sublayerIds.map((e=>l.findSublayerById(e))).filter(r));for(const r of n){const e=d((()=>[r.renderer,r.opacity,r.title,r.visible,r.legendEnabled]),(()=>this._constructLegendElementsForSublayers()));if(this.addHandles(e,"sublayers-watcher"),!this.respectLayerVisibility||r.visible&&r.legendEnabled&&this._isSublayerInScale(r)){const e=null!=r?.opacity?r.opacity:null,l=null!=e?e*t:t,n=!He(r)||r.originIdOf("renderer")>S.SERVICE&&!r.sublayers;if(r.renderer&&n){await r.load();i=[...await this._getRendererLegendElements(r.renderer,{title:r.title,opacity:l,sublayer:r}),...i]}else if(He(r)){const e=await this._generateSymbolTableElementForSublayer(r,l,s);e&&i.unshift(e)}}}return i.filter((e=>!!e&&(!("infos"in e)||!e.infos||e.infos.length>0)))}async _generateSymbolTableElementForSublayer(e,t,s){if(!s){s=new Map;const t=this.layer,l=e.source;let i=null;if(!(!l||"map-layer"===l.type&&l.mapLayerId===e.id&&(!l.gdbVersion||l.gdbVersion===("gdbVersion"in t&&t.gdbVersion)))||e.originIdOf("renderer")>S.SERVICE||e.originIdOf("labelingInfo")>S.SERVICE||e.originIdOf("labelsVisible")>S.SERVICE){const e=new v({layer:this.layer});i=e.hasDynamicLayers?e.dynamicLayers:null,e.destroy()}const r=i||`${t.uid}-default`;(await this._getLegendLayers(r,i)).forEach((e=>s.set(e.layerId,e)))}const l=s.get(e.id);if((!l||l?.subLayerIds&&l.defaultVisibility)&&e.sublayers){const l=await this._generateLegendElementsForSublayers(e.sublayers,t,s);return{type:"symbol-table",title:e.title,infos:l}}return this._generateSymbolTableElementForLegendLayer(l,e,t)}_generateSymbolTableElementForLegendLayer(e,t,s){if(!e?.legend||this.respectLayerVisibility&&!this._isLegendLayerInScale(e,t))return null;const l=t?.renderer;let i=t?.title||e.layerName;if(l&&(!t||t?.originIdOf("renderer")>S.SERVICE)){const e=t?.title||this._getRendererTitle(l,t);e&&(i&&"string"!=typeof e&&"title"in e&&(e.title=i),i=e)}const r={type:"symbol-table",title:i,legendType:e.legendType||null,infos:[]},n=t?this._sanitizeLegendForSublayer(e.legend.slice(),t):e.legend;return e.legendGroups&&e.legendGroups.length>0?e.legendGroups.forEach((t=>{const l={type:"symbol-table",title:t.heading,legendType:e.legendType||null,infos:this._generateSymbolTableElementInfosForLegendLayer(n.filter((e=>e.groupId===t.id)),e.layerId,s)};l.infos?.length>0&&r.infos.push(l)})):r.infos=this._generateSymbolTableElementInfosForLegendLayer(n,e.layerId,s),r.infos.length>0?r:null}_generateSymbolTableElementInfosForLegendLayer(e,t,l){return e.map((e=>{let i=e.url;if(e.imageData&&e.imageData.length>0)i=`data:image/png;base64,${e.imageData}`;else{if(0===i.indexOf("http"))return null;i=s(`${this.layer.url}/${t}/images/${i}`)}return{label:e.label,src:i,opacity:l??this.opacity,width:e.width,height:e.height}})).filter(r)}_isSublayerInScale(e){const t=e.minScale||0,s=e.maxScale||0;return!(t>0&&t<this.scale||s>this.scale)}_isLegendLayerInScale(e,t){const s=t||this.layer;let l=null,i=null,r=!0;return!s.minScale&&0!==s.minScale||!s.maxScale&&0!==s.maxScale?(0===e.minScale&&s.tileInfo&&(l=s.tileInfo.lods[0].scale),0===e.maxScale&&s.tileInfo&&(i=s.tileInfo.lods[s.tileInfo.lods.length-1].scale)):(l=Math.min(s.minScale,e.minScale)||s.minScale||e.minScale,i=Math.max(s.maxScale,e.maxScale)),(l>0&&l<this.scale||i>this.scale)&&(r=!1),r}_sanitizeLegendForSublayer(e,t){if("version"in this.layer&&+this.layer.version<10.1||0===e.length)return e;const s=t.renderer,l=e.some((e=>e.values));let i=0,r=null;return l&&e.some(((e,t)=>(e.values||(i=t,r=e,r.label||(r.label="others")),null!=r))),s?"unique-value"===s.type?r&&(e.splice(i,1),e.push(r)):"class-breaks"===s.type&&(r&&e.splice(i,1),e.reverse(),r&&e.push(r)):r&&(e.splice(i,1),e.push(r)),e}async _getRendererLegendElements(e,t={}){if(!Te(e,this.view))return o.getLogger(this).warn(`Renderer of type '${e.type}' not supported!`),[];if(Le(e))return this._constructPointCloudRendererLegendElements(e,t);if(Fe(e))return this._constructDotDensityRendererLegendElements(e);const s=await this._loadRenderer(e);return Ve(s)?this._constructPieChartRendererLegendElements(s):this._constructRendererLegendElements(s,t)}async _getLegendElementsForFeatureReduction(e){let t=null;return"binning"===e.type?t=e.renderer:"cluster"===e.type&&(t=this._getClusterRenderer(e)),t?this._getRendererLegendElements(t):[]}_getPointCloudRendererTitle(e){return(e.legendOptions?.title||e.field)??""}async _constructPointCloudRendererLegendElements(e,t={}){const s=t.title,l=[];let i=null,r=null;if(Ce(e))i={type:"symbol-table",title:s||this._getPointCloudRendererTitle(e),infos:[]},e.colorClassBreakInfos.forEach((e=>{i.infos.unshift({label:e.label||e.minValue+" - "+e.maxValue,value:[e.minValue,e.maxValue],symbol:this._getAppliedCloneSymbol(ye,e.color)})}));else if(Ie(e)){const t=e.stops;let l=null;if(t?.length&&(1===t.length&&(l=t[0].color),!l)){const e=t[0].value,s=t[t.length-1].value;if(null!=e&&null!=s){l=U(e+(s-e)/2,t)}}i={type:"symbol-table",title:null,infos:[{label:null,value:null,symbol:this._getAppliedCloneSymbol(ye,l||ye.color)}]};const n=k(e.stops??[])??[];r={type:"color-ramp",title:s||this._getPointCloudRendererTitle(e),infos:n,preview:x(n.map((e=>e.color)),{ariaLabel:await $e("previewColorRampAriaLabel")})}}else Re(e)&&(i={type:"symbol-table",title:s||this._getPointCloudRendererTitle(e),infos:[]},e.colorUniqueValueInfos?.forEach((e=>{i.infos.push({label:e.label||e.values.join(", "),value:e.values.join(", "),symbol:this._getAppliedCloneSymbol(ye,e.color)})})));i&&i.infos.length&&l.push(i),r&&r.infos.length&&l.push(r);const n=l.reduce(((e,t)=>[...e,...t.infos??[]]),[]).filter((e=>!!e.symbol)).map((t=>this._getSymbolPreview(t,this.opacity,{symbolConfig:{applyColorModulation:!!e.colorModulation}})));return await Promise.allSettled(n),l}async _getElementInfoForDotDensity(e,t){const{color:s,label:l,valueExpressionTitle:i}=t,{backgroundColor:r,outline:n,dotSize:a}=e,o=this.effectList,u=o?.effects.map((e=>e.toJSON())),c=w(u),d=await $e("previewTemplateAriaLabel",l||i),y=a+"-"+s+"-"+r+"-"+(n&&JSON.stringify(n.toJSON()))+"-"+c,h=this._dotDensityUrlCache,m=h.has(y)?h.get(y):j(e,s,{ariaLabel:d});h.set(y,m);const f={shape:{type:"image",x:0,y:0,width:m.width,height:m.height,src:m.src},fill:null,stroke:null,offset:[0,0]},p=D([[f]],[m.width,m.height],{effectView:this.effectList,ariaLabel:d});return{opacity:1,src:m.src,preview:p,width:m.width,height:m.height}}async _constructDotDensityRendererLegendElements(e){const t=e.calculateDotValue(this.view.scale),s=e.legendOptions?.unit,l={type:"symbol-table",title:{value:t&&Math.round(t),unit:s||""},infos:[]};for(const i of e.attributes){const t=await this._getElementInfoForDotDensity(e,i);t.label=i.label||i.valueExpressionTitle||i.field,l.infos.push(t)}return[l]}async _constructPieChartRendererLegendElements(e){const t=this.layer.opacity,s=[];let l=null;const i=e.outline;e.attributes.forEach((e=>{const t=new se({color:e.color,outline:i}),l=e.label||e.valueExpressionTitle||e.field;s.push({label:l,symbol:t})}));const r=s.length?[...s]:[];if(e.othersCategory?.color&&0!==e.othersCategory?.threshold){const t=new se({color:e.othersCategory.color,outline:i});l=e.othersCategory.label||"Other",s.push({label:l,symbol:t})}if(e.defaultColor?.a){const t=new se({color:e.defaultColor,outline:i});s.push({label:e.defaultLabel,symbol:t})}const n=await this._getVisualVariableLegendElements(e,this.layer)||[];if(s.length){n.unshift({type:"symbol-table",title:null,infos:s});const t=r.filter((e=>e.label!==l)).map((e=>e.symbol.color)).filter(Boolean),a=O(t,{holePercentage:e.holePercentage,backgroundColor:e.backgroundFillSymbol?.color,effectList:this.effectList,outline:i,ariaLabel:await $e("previewPieChartAriaLabel")});n.unshift({type:"pie-chart-ramp",title:this._getRendererTitle(e,this.layer),infos:s,preview:a})}const a=n.reduce(((e,t)=>[...e,...this._getAllInfos(t)]),[]).filter((e=>!!e?.symbol&&!e?.preview)).map((e=>this._getSymbolPreview(e,t,{effectList:this.effectList})));return await Promise.allSettled(a),n}async _constructRendererLegendElements(e,t={}){const{title:s,sublayer:l}=t,i=l||this.layer;this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._scaleDrivenSizeVariable=null;const r=await this._getVisualVariableLegendElements(e,i)||[],n={type:"symbol-table",title:s||this._getRendererTitle(e,i),infos:[]};let a=null,o=!1;const u=new Set;if(me(e)&&!this._hasSizeRamp){const t=await K(e);n.infos.push({label:null,symbol:t})}else if(Ne(e)){let t=s;const l=qe(e)?"univariate-above-and-below-ramp":"univariate-color-size-ramp",i=r.findIndex((e=>"color-ramp"===e.type)),n=-1!==i?r.splice(i,1)[0]:null,a=r.findIndex((e=>"size-ramp"===e.type)),o=-1!==a?r.splice(a,1)[0]:null,u=[];n&&(t=n.title,u.push(n)),o&&(t=o.title,u.push(o)),u.length>0&&r.push({type:l,title:t,infos:u})}else if(ve(e)){const t=q(e);r.push({type:"heatmap-ramp",title:s||this._getRendererTitle(e,i),infos:t,preview:x(t.map((e=>e.color)),{effectList:this.effectList,ariaLabel:await $e("previewColorRampAriaLabel")})})}else if(we(e)){const t=e&&e.authoringInfo;if(t&&"relationship"===t.type){const{numClasses:s,field1:l,field2:a}=t,o=t.focus;if(s&&l&&a){const t=[l,a];let c=H(o)||0;for(const e of t){const{field:t,normalizationField:s,label:l}=e,r=l||{field:this._getFieldAlias(t,i),normField:s&&this._getFieldAlias(s,i)},a=We.clone();a.angle=c,n.infos.push({label:r,symbol:a}),u.add(a),c+=90}const d=$({focus:o,numClasses:s,infos:e.uniqueValueInfos??[]});r.unshift(d)}}else if(Me(this.layer)||Ue(this.layer))e.uniqueValueInfos?.forEach((e=>{e.symbol&&n.infos.push({label:e.label||e.value,value:e.value,symbol:e.symbol})}));else{const{field:t,field2:l,field3:r,fieldDelimiter:a,valueExpression:u,defaultSymbol:c}=e,d=!(!t&&!u||!l&&!r),y=[];if(e.uniqueValueGroups?.forEach((e=>{const s={type:"symbol-table",title:e.heading,infos:[]};e.classes?.forEach((e=>{const{symbol:n,values:o}=e;if(n){const c=[],y=[];for(const e of o??[]){const{value:s,value2:n,value3:o}=e,h=[],m=[];(t||u)&&(h.push(s),m.push(this._getDomainName(t,s,i))),l&&(h.push(n),m.push(this._getDomainName(l,n,i))),r&&(h.push(o),m.push(this._getDomainName(r,o,i))),c.push(d?h.join(a||""):h[0]),y.push(m.join(" - "))}const h=c.join(", ");let m=e.label;if(!m){const e=y.filter(Boolean);m=e.length?e.join(", "):h}s.infos.push({label:m,value:h,symbol:n})}})),s.infos.length&&y.push(s)})),y.length){const t=y[0];1===y.length&&"title"in t&&!t.title?n.infos.push(...t.infos??[]):(c&&(y.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:c}]}),o=!0),n.infos.push(...y)),s||e.legendOptions?.title||e.valueExpressionTitle||(n.title=null)}}e.defaultSymbol&&!o&&(n.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),o=!0)}else if(_e(e)){a=this._isUnclassedRenderer(e);(!a||!this._hasSizeRamp)&&(e.classBreakInfos.forEach((e=>{e.symbol&&n.infos.unshift({label:e.label||(a?null:e.minValue+" - "+e.maxValue),value:[e.minValue,e.maxValue],symbol:e.symbol})})),a&&(n.title=null),this._updateInfosforClassedSizeRenderer(e,n.infos)),e.defaultSymbol&&!a&&(n.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),o=!0)}else if(ge(e))if(Ue(this.layer)||ke(this.layer)){const t=await this._constructTileImageryStretchRendererElements(e);Be(t)?r.push(t):n.infos=t}else{const t=this.layer;let s,l;if(e.statistics?.length){const t=e.statistics[0];X(t)?(s=t.min,l=t.max):[s,l]=t}let i=[],a=t.serviceRasterInfo;if(t.rasterFunction)try{a=await t.generateRasterInfo(t.rasterFunction)}catch{}const o=C(a.pixelType);if(1===a.bandCount){const i=t.bandIds?.[0]||0;s=null!=s?s:a.statistics?a.statistics[i].min:o[0],l=null!=l?l:a.statistics?a.statistics[i].max:o[1],s||l?r.push(await this._getStretchLegendElements(e,{min:s,max:l})):this._getServerSideLegend()}else if(t.bandIds&&1===t.bandIds.length)s=null!=s?s:a.statistics?a.statistics[t.bandIds[0]].min:o[0],l=null!=l?l:a.statistics?a.statistics[t.bandIds[0]].max:o[1],s||l?r.push(await this._getStretchLegendElements(e,{min:s,max:l})):this._getServerSideLegend();else if(a.bandCount>=3){const{bandInfos:e}=a,{bandIds:s}=t;e.length>=a.bandCount?3===s?.length?(i=s.map((t=>e[t].name)),n.infos=this._createSymbolTableElementMultiBand(i)):"lerc"===t.format?(i=[0,1,2].map((t=>e[t].name)),n.infos=this._createSymbolTableElementMultiBand(i)):this._getServerSideLegend():"lerc"===t.format?(i=["band1","band2","band3"],n.infos=this._createSymbolTableElementMultiBand(i)):this._getServerSideLegend()}else this._getServerSideLegend()}else if(pe(e))e.colormapInfos.forEach((e=>{n.infos.push({label:e.label,value:e.value,symbol:this._getAppliedCloneSymbol(he,e.color)})}));else if(Se(e)){let s=e.symbol;switch(t.geometryType){case"point":s="pointSymbol"in i?i.pointSymbol:null;break;case"polyline":s="lineSymbol"in i?i.lineSymbol:null;break;case"polygon":s="polygonSymbol"in i?i.polygonSymbol:null}const l=this._hasClusterSizeVariable&&this._getClusterSymbol()||!this._hasSizeRamp;e.symbol&&l&&n.infos.push({label:e.label,symbol:s})}else if(fe(e)){e.outputUnit&&(this.title="("+e.toJSON().outputUnit+")"),n.title=e.attributeField;const t=e.getClassBreakInfos();t?.length?t.forEach((e=>{n.infos.push({label:e.minValue+" - "+e.maxValue,symbol:e.symbol})})):n.infos.push({label:e.attributeField,symbol:e.getDefaultSymbol()})}else be(e)&&r.push(await this._getStretchLegendElements(e,{min:0,max:255}));const c=e.defaultSymbol;!c||o||Se(e)||a&&!this._hasColorRamp&&!this._hasSizeRamp&&!this._hasOpacityRamp||r.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:c}]}),n.infos.length&&r.unshift(n);const d=null==t.opacity?this.opacity:t.opacity,y=this._isTallSymbol("visualVariables"in e?e.visualVariables:null),h=Me(this.layer)||Ue(this.layer),m=r.reduce(((e,t)=>[...e,...this._getAllInfos(t)]),[]).filter((e=>!!e?.symbol)).filter((e=>{if("cim"===e.symbol.type){const{minScale:t,maxScale:s}=e.symbol.data;if(t&&t<this.scale||s&&s>this.scale)return!1}return!0})).map((e=>this._getSymbolPreview(e,d,{isDefault:e.symbol===c,applyScaleDrivenSize:!u.has(e.symbol),symbolConfig:{isTall:y,isSquareFill:h},effectList:u.has(e.symbol)?null:this.effectList})));return e=null,await Promise.allSettled(m),r}_getServerSideLegend(){setTimeout((()=>this.buildLegendElementsForTools()),0)}_getAllInfos(e){const t=e?.infos;return t?t.reduce(((e,t)=>e.concat(this._getAllInfos(t))),[]):[e]}async _constructTileImageryStretchRendererElements(e){const t=this.layer,s=t.symbolizer.rasterInfo??t.raster.rasterInfo;let l,i;const r=e?.statistics?.length?e.statistics:s?.statistics;if(r){const e=r[0];X(e)?(l=e.min,i=e.max):[l,i]=e}else{const e=C(s.pixelType);l=e[0],i=e[1]}if(t.hasStandardTime()&&(l=t.getStandardTimeValue(l),i=t.getStandardTimeValue(i)),1===s.bandCount||1===t.bandIds?.length)return this._getStretchLegendElements(e,{min:l,max:i});const n=(t?.bandIds?.length?t.bandIds:Array.from(Array(Math.min(s.bandCount,3)).keys())).map((e=>s.bandInfos[e].name));return n.length<3?n.push(n[1]):n.length>3&&n.splice(3),this._createSymbolTableElementMultiBand(n)}async _getStretchLegendElements(e,t){const s=e.colorRamp,l=B(s,t);return{type:"stretch-ramp",title:"",infos:l,preview:x(l.map((e=>e.color)),{ariaLabel:await $e("previewColorRampAriaLabel")})}}_getClusterSymbol(){const e=this.layer,t="featureReduction"in e&&e.featureReduction,s=t&&"symbol"in t&&t.renderer;return s&&!0!==s?.authoringInfo?.isAutoGenerated?null:t&&"symbol"in t?t.symbol:null}async _getSizeLegendElement(e,t,s,l){return{type:"size-ramp",title:this._hasClusterSizeVariable?this._getClusterTitle(t):e,infos:await W(s,t,await Y(s),this.scale,this.view,l,this._hasClusterSizeVariable?this._getClusterSymbol():null)}}_createSymbolTableElementMultiBand(e){const t=[],s=["red","green","blue"];return e.forEach(((e,l)=>{t.push({label:{colorName:s[l],bandName:e},src:ee[l],opacity:this.opacity??1})})),t}_updateInfosforClassedSizeRenderer(e,t){const s=e.authoringInfo&&"class-breaks-size"===e.authoringInfo.type,l=e.classBreakInfos.some((e=>A(e.symbol)));if(s&&l){const s=G,l=J,i=e.classBreakInfos.length,r=(s-l)/(i>1?i-1:i);t.forEach(((e,t)=>{e.size=s-r*t}))}}_isTallSymbol(e){let t=!1,s=!1;if(e)for(let l=0;l<e.length&&(!t||!s);l++){const i=e[l];"size"===i.type&&("height"===i.axis&&(t=!0),"width-and-depth"===i.axis&&(s=!0))}return t&&s}async _getSymbolPreview(e,t,s){let l=!s?.isDefault&&null==e.size&&this._hasSizeRamp?m(z.size):e.size;if(this._scaleDrivenSizeVariable&&s?.applyScaleDrivenSize){const{getSize:t}=await import("../../../renderers/visualVariables/support/visualVariableUtils.js");l=t(this._scaleDrivenSizeVariable,null,{view:this.view.type,scale:this.scale,shape:"simple-marker"===e.symbol.type?e.symbol.style:null})}const i=!s?.isDefault&&this._hasSizeRamp||!(!this._scaleDrivenSizeVariable||!s?.applyScaleDrivenSize);return P(e.symbol,{size:l,opacity:t,scale:!1,symbolConfig:s?.symbolConfig,effectView:s?.effectList,style:"legend",cimOptions:{allowScalingUp:i,viewParams:this.isScaleDriven?{viewingMode:"2d"===this.view?.type?"map":this.view?.viewingMode,scale:this.view?.scale}:null},ariaLabel:e.label&&"string"!=typeof e.label?null:await $e("previewTemplateAriaLabel",e.label)}).then((t=>(e.preview=t,e))).catch((()=>(e.preview=null,e)))}_getClusterRenderer(e){this._hasClusterSizeVariable=!1;const t="renderer"in this.layer?this.layer.renderer:null,s=e.renderer?.clone()||t?.clone(),l=M(this.layerView._effectiveRenderer,this.view);if(l&&null!=s&&"visualVariables"in s){const t=s.visualVariables?.some((e=>"size"===e.type&&"outline"!==e.target&&!ce.test(e.valueExpression)));if(!t){if("clusterMinSize"in e&&"clusterMaxSize"in e){const{clusterMinSize:t,clusterMaxSize:s}=e;l.legendOptions=new F({showLegend:t!==s})}const t=s.visualVariables||[];s.visualVariables=t.concat([l]),this._hasClusterSizeVariable=!0}}return s}async _loadRenderer(e){const t=[],s=e.clone(),l=await Y(s);if(_e(s)||we(s)){const e=(s.classBreakInfos||s.uniqueValueInfos).map((e=>this._fetchSymbol(e.symbol,l).then((t=>{e.symbol=t})).catch((()=>{e.symbol=null}))));Array.prototype.push.apply(t,e)}return t.push(this._fetchSymbol(s.symbol||s.defaultSymbol,s.defaultSymbol?null:l).then((e=>{this._applySymbolToRenderer(s,e,Se(s))})).catch((()=>{this._applySymbolToRenderer(s,null,Se(s))}))),await Promise.allSettled(t),s}_applySymbolToRenderer(e,t,s){s?e.symbol=t:e.defaultSymbol=t}async _fetchSymbol(e,t){if(!e)throw new Error;if("web-style"===e.type){const s=this._webStyleSymbolCache;try{const l=await("2d"===this.view.type?e.fetchCIMSymbol({cache:s}):e.fetchSymbol({cache:s}));return this._getAppliedCloneSymbol(l,t)}catch{throw o.getLogger(this).warn("Fetching web-style failed!"),new Error}}return this._getAppliedCloneSymbol(e,t)}_getAppliedCloneSymbol(e,s){if(!e||!s)return e;const l=e.clone(),i=s&&s.toRgba();return l.type.includes("3d")?this._applyColorTo3dSymbol(l,i):"cim"===l.type?T(l,s):l.color&&(l.color=new t(i||l.color)),l}_applyColorTo3dSymbol(e,s){s&&e.symbolLayers.forEach((e=>{e&&(e.material||(e.material={}),e.material.color=new t(s))}))}async _getVisualVariableLegendElements(e,t){if(!("visualVariables"in e)||!e.visualVariables||"vector-field"===e.type)return null;const s=e.visualVariables,l=[],i=[],n=[];for(const r of s)"color"===r.type?l.push(r):"size"===r.type?i.push(r):"opacity"===r.type&&n.push(r);const a=[...l,...i,...n];let o,u;if(0===l.length&&_e(e)&&e.classBreakInfos&&1===e.classBreakInfos.length){const t=e.classBreakInfos[0];o=t&&t.symbol}if(0===l.length&&Se(e)&&(o=e.symbol),o)if(o.type.includes("3d")){const e=o.symbolLayers.at(0);"water"===e.type?null!=e.color&&(u=e.color):null!=e.material?.color&&(u=e.material.color)}else o.url||(u=o.color);const c=this.effectList;return(await Promise.all(a.map((async s=>{if(!s.legendOptions||!1!==s.legendOptions.showLegend){const l=me(e)?s.field:this._getRampTitle(s,t);let i=null;const r=this._getDateFormatOptions(t,s);if("color"===s.type){const e=await N(s,null,r)??[];i={type:"color-ramp",title:l,infos:e,preview:x(e.map((e=>e.color)),{effectList:c,ariaLabel:await $e("previewColorRampAriaLabel")})},this._hasColorRamp||(this._hasColorRamp=e.length>0)}else if("size"===s.type&&"outline"!==s.target)ce.test(s.valueExpression)?this._hasClusterSizeVariable||(this._scaleDrivenSizeVariable=s):(i=await this._getSizeLegendElement(l,s,e,r),this._hasSizeRamp||(this._hasSizeRamp=!(null==i.infos||!i.infos.length)));else if("opacity"===s.type){const e=await N(s,u,r)??[];i={type:"opacity-ramp",title:l,infos:e,preview:x(e.map((e=>e.color)),{effectList:c,ariaLabel:await $e("previewColorRampAriaLabel")})},this._hasOpacityRamp||(this._hasOpacityRamp=e.length>0)}return i&&i.infos?i:null}})))).filter(r)}_getFieldInfo(e,t){if(!t.field)return null;if("featureReduction"in e)switch(e.featureReduction?.type){case"cluster":case"binning":{const s=e.featureReduction.fields.find((({name:e})=>e.toLowerCase()===t.field.toLowerCase()));return s&&"getField"in e?e.getField(s.onStatisticField):null}}return"getField"in e?e.getField?.(t.field):null}_getDateFormat(e,t){const s="popupTemplate"in e?e.popupTemplate?.fieldInfos:null;if(s?.length&&t)return s.find((e=>e.fieldName?.toLowerCase()===t.toLowerCase()))?.format?.dateFormat}_getDateFormatOptions(e,t){const s=this._getFieldInfo(e,t);if(!s||!V(s)&&!L(s))return null;let l=this._getDateFormat(e,s.name);if(!l&&"date"===s.type){let e=0,s=0;t.stops?(e=t.stops?.at(0)?.value??e,s=t.stops?.at(-1)?.value??s):"minDataValue"in t&&"maxDataValue"in t&&(e=t.minDataValue??e,s=t.maxDataValue??s),l=s-e>2*f.days?"short-date":"short-date-short-time"}return{fieldType:s.type,format:l,timeZoneOptions:{layerTimeZone:"preferredTimeZone"in e?e.preferredTimeZone:null,viewTimeZone:this.view.timeZone,datesInUnknownTimezone:"datesInUnknownTimezone"in e&&e.datesInUnknownTimezone}}}_getDomainName(e,t,s){if(e&&"function"!=typeof e){const l="getField"in s&&s.getField?.(e),i=l&&"getFieldDomain"in s&&s.getFieldDomain?s.getFieldDomain(l.name):null;return"coded-value"===i?.type?i.getName(t):null}return null}_getClusterTitle(e){const t=this.layer,s=e.field;if("featureReduction"in t&&t.featureReduction&&"cluster"===t.featureReduction.type){const e=t.featureReduction,l="popupTemplate"in e&&e.popupTemplate,i=l&&l.fieldInfos;if(i)for(const t of i)if(t.fieldName===s)return"cluster_count"===s?t.label||{showCount:!0}:t.label}return{showCount:!0}}_getRampTitle(e,t){let s=e.field,l=e.normalizationField,i=!1,r=!1,n=!1,a=null;s="function"==typeof s?null:s,l="function"==typeof l?null:l;const o=e.legendOptions?.title;if(null!=o)a=o;else if(e.valueExpressionTitle)a=e.valueExpressionTitle;else{if("renderer"in t&&t.renderer&&"authoringInfo"in t.renderer&&t.renderer.authoringInfo?.visualVariables){const e=t.renderer.authoringInfo.visualVariables;for(let t=0;t<e.length;t++){const s=e[t];if("color"===s.type){if("ratio"===s.style){i=!0;break}if("percent"===s.style){r=!0;break}if("percent-of-total"===s.style){n=!0;break}}}}a={field:s&&this._getFieldAlias(s,t),normField:l&&this._getFieldAlias(l,t),ratio:i,ratioPercent:r,ratioPercentTotal:n}}return a}_getRendererTitle(e,t){const s=e;if(s.legendOptions?.title)return s.legendOptions.title;if(s.valueExpressionTitle)return s.valueExpressionTitle;let l=s.field,i=null,r=null;if(_e(s)&&(i=s.normalizationField,r="percent-of-total"===s.normalizationType),l="function"==typeof l?null:l,i="function"==typeof i?null:i,we(s)){const{field2:e,field3:i,fieldDelimiter:r}=s;let n=l&&this._getFieldAlias(l,t);return e&&(n=`<${n}>${r}<${this._getFieldAlias(e,t)}>`,i&&(n=`${n}${r}<${this._getFieldAlias(i,t)}>`)),n}let n=null;return(l||i)&&(n={field:l&&this._getFieldAlias(l,t),normField:i&&this._getFieldAlias(i,t),normByPct:r}),n}_getFieldAlias(e,t){const s="popupTemplate"in t?t.popupTemplate:null,l=s?.fieldInfos;let i;l&&l.some((t=>e===t.fieldName&&(i=t,!0)));let r=null;"getField"in t&&t.getField?r=t.getField(e):"fieldsIndex"in t&&t.fieldsIndex&&(r=t.fieldsIndex.get(e));let n=null;const a="featureReduction"in t&&t.featureReduction;a&&(!i&&"popupTemplate"in a&&a.popupTemplate?.fieldInfos&&a.popupTemplate.fieldInfos.some((t=>e?.toLowerCase()===t.fieldName?.toLowerCase()&&(i=t,!0))),"fields"in a&&a.fields&&(n=a.fields.find((t=>t.name?.toLowerCase()===e?.toLowerCase()))));const o=i||r||n;let u=null;return o&&(u=i?.label||r?.alias||n?.alias||"name"in o&&o.name||"fieldName"in o&&o.fieldName||null),u}_isUnclassedRenderer(e){const t=e.visualVariables;let s=!1;return _e(e)&&e.classBreakInfos&&1===e.classBreakInfos.length&&t&&(s=e.field?t.some((t=>!(!t||e.field!==t.field||(e.normalizationField||t.normalizationField)&&e.normalizationField!==t.normalizationField))):!!t.length),s}};e([g()],Je.prototype,"children",void 0),e([g({readOnly:!0})],Je.prototype,"effectList",null),e([g()],Je.prototype,"layerView",void 0),e([g()],Je.prototype,"layer",void 0),e([g()],Je.prototype,"legendElements",void 0),e([g({readOnly:!0})],Je.prototype,"opacity",null),e([g()],Je.prototype,"parent",void 0),e([g({readOnly:!0,dependsOn:[]})],Je.prototype,"ready",null),e([g()],Je.prototype,"hideLayersNotInCurrentView",void 0),e([g()],Je.prototype,"keepCacheOnDestroy",void 0),e([g()],Je.prototype,"respectLayerVisibility",void 0),e([g({readOnly:!0})],Je.prototype,"scale",null),e([g()],Je.prototype,"sublayerIds",void 0),e([g({readOnly:!0})],Je.prototype,"isScaleDriven",null),e([g()],Je.prototype,"title",void 0),e([g({readOnly:!0,dependsOn:["ready"],value:0})],Je.prototype,"version",null),e([g()],Je.prototype,"view",void 0),Je=e([b("esri.widgets.Legend.support.ActiveLayerInfo")],Je);const Qe=Je;export{Qe 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"../../../symbols.js";import{formatTimestamp as A,formatDate as t,convertDateFormatToIntlOptions as e}from"../../../intl/date.js";import{format as i}from"../../../renderers/support/numberUtils.js";import{utc as o}from"../../../time/timeZoneUtils.js";import a from"../../../symbols/SimpleLineSymbol.js";const n="<",s=">";function l(a,l,r,m){let u="";0===l?u=`${n} `:l===r&&(u=`${s} `);let c=null;if(m){const{timeZone:i,timeZoneName:n,format:s}=m;switch(m.fieldType){case"date":{const A=e(s);c=t(a,{...A,timeZone:i,timeZoneName:n});break}case"date-only":case"time-only":{const A=s?e(s):void 0;c=t(a,{...A,timeZone:o});break}case"timestamp-offset":{const t=e("short-date-short-time");c=A(new Date(a).toISOString(),{...t,timeZone:i,timeZoneName:n});break}}}else c=i(a);return u+c}const r=["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAAAAAAAAAHqZRakAAAANUlEQVQ4jWPMy8v7z0BFwMLAwMAwcdIkqhiWn5fHwEQVk5DAqIGjBo4aOGrgqIEQwEjtKgAATl0Hu6JrzFUAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAAAAAAAAAHqZRakAAAANUlEQVQ4jWPMy8v7z0BFwMLAwMAwaeIkqhiWl5/HwEQVk5DAqIGjBo4aOGrgqIEQwEjtKgAATl0Hu6sKxboAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAAAAAAAAAHqZRakAAAANUlEQVQ4jWPMy8v7z0BFwMLAwMAwadJEqhiWl5fPwEQVk5DAqIGjBo4aOGrgqIEQwEjtKgAATl0Hu75+IUcAAAAASUVORK5CYII="];async function m(A){if(!("visualVariables"in A)||!A.visualVariables)return null;const t=A.visualVariables.find((A=>"color"===A.type));if(!t)return null;let e=null,i=null;if(t.stops){if(1===t.stops.length)return t.stops[0].color;e=t.stops[0].value,i=t.stops[t.stops.length-1].value}const o=null!=e&&null!=i?e+(i-e)/2:0,{getColor:a}=await import("../../../renderers/visualVariables/support/visualVariableUtils.js");return a(t,o)??null}async function u(A,t){const e=A.trailCap,i=A.trailWidth||1,o=t||await m(A)||A.color;return new a({cap:e,color:o,width:i})}function c(A){return null!=A&&"object"==typeof A&&"min"in A&&"max"in A}export{l as createStopLabel,m as getMedianColor,u as getSymbolForFlowRenderer,c as isRasterBandStatistics,r as rgbImgSource,s as specialCharsGreaterThan,n as specialCharsLessThan};
5
+ import"../../../symbols.js";import{format as A}from"../../../renderers/support/numberUtils.js";import{formatAnyDate as t}from"../../../smartMapping/support/utils.js";import l from"../../../symbols/SimpleLineSymbol.js";const i="<",a=">";function r(l,r,s,o){let n="";0===r?n=`${i} `:r===s&&(n=`${a} `);return n+(o?t(l,o):A(l))}const s=["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAAAAAAAAAHqZRakAAAANUlEQVQ4jWPMy8v7z0BFwMLAwMAwcdIkqhiWn5fHwEQVk5DAqIGjBo4aOGrgqIEQwEjtKgAATl0Hu6JrzFUAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAAAAAAAAAHqZRakAAAANUlEQVQ4jWPMy8v7z0BFwMLAwMAwaeIkqhiWl5/HwEQVk5DAqIGjBo4aOGrgqIEQwEjtKgAATl0Hu6sKxboAAAAASUVORK5CYII=","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAAAAAAAAAHqZRakAAAANUlEQVQ4jWPMy8v7z0BFwMLAwMAwadJEqhiWl5fPwEQVk5DAqIGjBo4aOGrgqIEQwEjtKgAATl0Hu75+IUcAAAAASUVORK5CYII="];async function o(A){if(!("visualVariables"in A)||!A.visualVariables)return null;const t=A.visualVariables.find((A=>"color"===A.type));if(!t)return null;let l=null,i=null;if(t.stops){if(1===t.stops.length)return t.stops[0].color;l=t.stops[0].value,i=t.stops[t.stops.length-1].value}const a=null!=l&&null!=i?l+(i-l)/2:0,{getColor:r}=await import("../../../renderers/visualVariables/support/visualVariableUtils.js");return r(t,a)??null}async function n(A,t){const i=A.trailCap,a=A.trailWidth||1,r=t||await o(A)||A.color;return new l({cap:i,color:r,width:a})}function e(A){return null!=A&&"object"==typeof A&&"min"in A&&"max"in A}export{r as createStopLabel,o as getMedianColor,n as getSymbolForFlowRenderer,e as isRasterBandStatistics,s as rgbImgSource,a as specialCharsGreaterThan,i as specialCharsLessThan};
@@ -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{ignoreAbortErrors as t}from"../core/promiseUtils.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 i}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import o from"./LineOfSight/LineOfSightViewModel.js";import{loadCalciteComponents as r}from"./support/componentsUtils.js";import{globalCss as l}from"./support/globalCss.js";import{legacyIcon as a}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as d}from"./support/jsxFactory.js";const p="esri-line-of-sight",c={base:p,actions:`${p}__actions`,container:`${p}__container`,error:`${p}__error`,hint:`${p}__hint`,hintText:`${p}__hint-text`,newAnalysisButton:`${p}__new-analysis-button`,widgetIcon:a.lineOfSight},h={newAnalysisButton:`${p}__new-button`,continueButton:`${p}__continue-button`,doneButton:`${p}__done-button`};let m=class extends n{constructor(e,s){super(e,s),this.iconClass=c.widgetIcon,this.icon=null,this.messages=null,this.viewModel=new o,this._onNewAnalysis=()=>{t(this.viewModel.start())},this._onDone=()=>{this.viewModel.stop()},this._onContinue=()=>{this.viewModel.continue()}}loadDependencies(){return r({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js")})}get active(){return this.viewModel.active}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}render(){return d("div",{class:this.classes(c.base,l.widget,l.panel),role:"presentation"},this.renderContainerNode())}renderContainerNode(){if(!this.visible)return null;if(!this.viewModel.supported)return this._renderUnsupportedMessage();let e=null;const t=[this._renderNewAnalysisButton()];return"creating"===this.viewModel.state?(e=this._renderHint(),t.unshift(this._renderDoneButton())):"created"===this.viewModel.state&&this.viewModel.targets.length>0&&t.unshift(this._renderContinueButton()),d("div",{class:c.container},e,d("div",{class:c.actions},t))}_renderUnsupportedMessage(){return d("div",{class:c.error,key:"esri-line-of-sight__unsupported"},d("p",null,this.messages.unsupported))}_renderHint(){return d("div",{class:c.hint,key:"esri-line-of-sight__hint"},d("p",{class:c.hintText},this.messages.hint))}_renderNewAnalysisButton(){return this._renderButton({className:c.newAnalysisButton,id:h.newAnalysisButton,label:this.messages.newAnalysis,onClick:this._onNewAnalysis,primary:!0})}_renderDoneButton(){return this._renderButton({id:h.doneButton,label:this.messages.done,onClick:this._onDone,primary:!1})}_renderContinueButton(){return this._renderButton({id:h.newAnalysisButton,label:this.messages.continueAnalysis,onClick:this._onContinue,primary:!1})}_renderButton({className:e,id:t,label:s,onClick:i,primary:n}){const o="disabled"===this.viewModel.state;return d("calcite-button",{appearance:n?"solid":"outline-fill",class:e,"data-id":t,disabled:o,key:t,onclick:i},s)}get test(){return{IDS:h}}};e([s()],m.prototype,"active",null),e([s({constructOnly:!0,nonNullable:!0})],m.prototype,"analysis",null),e([s()],m.prototype,"iconClass",void 0),e([s()],m.prototype,"icon",void 0),e([s()],m.prototype,"label",null),e([s(),u("esri/widgets/LineOfSight/t9n/LineOfSight")],m.prototype,"messages",void 0),e([s()],m.prototype,"view",null),e([s({type:o})],m.prototype,"viewModel",void 0),e([s()],m.prototype,"visible",null),m=e([i("esri.widgets.LineOfSight")],m);const _=m;export{_ as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.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 i}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import o from"./LineOfSight/LineOfSightViewModel.js";import{loadCalciteComponents as r}from"./support/componentsUtils.js";import{globalCss as l}from"./support/globalCss.js";import{legacyIcon as a}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as d}from"./support/jsxFactory.js";const p="esri-line-of-sight",c={base:p,actions:`${p}__actions`,container:`${p}__container`,error:`${p}__error`,hint:`${p}__hint`,hintText:`${p}__hint-text`,newAnalysisButton:`${p}__new-analysis-button`,widgetIcon:a.lineOfSight},h={newAnalysisButton:`${p}__new-button`,continueButton:`${p}__continue-button`,doneButton:`${p}__done-button`};let m=class extends n{constructor(e,s){super(e,s),this.iconClass=c.widgetIcon,this.icon=null,this.messages=null,this.viewModel=new o,this._onNewAnalysis=()=>{t(this.viewModel.start())},this._onDone=()=>{this.viewModel.stop()},this._onContinue=()=>{this.viewModel.continue()}}loadDependencies(){return r({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js")})}get active(){return this.viewModel.active}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}render(){return d("div",{class:this.classes(c.base,l.widget,l.panel),role:"presentation"},this._renderContainerNode())}_renderContainerNode(){if(!this.visible)return null;if(!this.viewModel.supported)return this._renderUnsupportedMessage();let e=null;const t=[this._renderNewAnalysisButton()];return"creating"===this.viewModel.state?(e=this._renderHint(),t.unshift(this._renderDoneButton())):"created"===this.viewModel.state&&this.viewModel.targets.length>0&&t.unshift(this._renderContinueButton()),d("div",{class:c.container},e,d("div",{class:c.actions},t))}_renderUnsupportedMessage(){return d("div",{class:c.error,key:"esri-line-of-sight__unsupported"},d("p",null,this.messages.unsupported))}_renderHint(){return d("div",{class:c.hint,key:"esri-line-of-sight__hint"},d("p",{class:c.hintText},this.messages.hint))}_renderNewAnalysisButton(){return this._renderButton({className:c.newAnalysisButton,id:h.newAnalysisButton,label:this.messages.newAnalysis,onClick:this._onNewAnalysis,primary:!0})}_renderDoneButton(){return this._renderButton({id:h.doneButton,label:this.messages.done,onClick:this._onDone,primary:!1})}_renderContinueButton(){return this._renderButton({id:h.newAnalysisButton,label:this.messages.continueAnalysis,onClick:this._onContinue,primary:!1})}_renderButton({className:e,id:t,label:s,onClick:i,primary:n}){const o="disabled"===this.viewModel.state;return d("calcite-button",{appearance:n?"solid":"outline-fill",class:e,"data-id":t,disabled:o,key:t,onclick:i},s)}get test(){return{IDS:h}}};e([s()],m.prototype,"active",null),e([s({constructOnly:!0,nonNullable:!0})],m.prototype,"analysis",null),e([s()],m.prototype,"iconClass",void 0),e([s()],m.prototype,"icon",void 0),e([s()],m.prototype,"label",null),e([s(),u("esri/widgets/LineOfSight/t9n/LineOfSight")],m.prototype,"messages",void 0),e([s()],m.prototype,"view",null),e([s({type:o})],m.prototype,"viewModel",void 0),e([s()],m.prototype,"visible",null),m=e([i("esri.widgets.LineOfSight")],m);const _=m;export{_ 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"../../geometry.js";import t from"../../Graphic.js";import{isSome as r}from"../../core/arrayUtils.js";import i from"../../core/Collection.js";import s from"../../core/Evented.js";import{isSerializable as o}from"../../core/JSONSupport.js";import a from"../../core/Logger.js";import{clamp as n}from"../../core/mathUtils.js";import{destroyMaybe as l}from"../../core/maybe.js";import{once as h,on as c,watch as g,initial as u}from"../../core/reactiveUtils.js";import{createScreenPoint as m}from"../../core/screenUtils.js";import{property as d}from"../../core/accessorSupport/decorators/property.js";import{ensureType as p}from"../../core/accessorSupport/ensureType.js";import"../../core/has.js";import{subclass as y}from"../../core/accessorSupport/decorators/subclass.js";import _ from"../../geometry/Extent.js";import{geographicToWebMercator as v}from"../../geometry/support/webMercatorUtils.js";import f from"../../layers/GraphicsLayer.js";import P from"../../layers/ImageryTileLayer.js";import{searchImages as C}from"../../layers/orientedImagery/queries.js";import{calculateSuitabilities as I}from"../../layers/orientedImagery/core/bestImageUtils.js";import{createCoveragePolygon as b,computePolygonForInspection as w,resizePolygon as F,checkIfPolygonContainsSelectedPoint as M}from"../../layers/orientedImagery/core/coverageUtils.js";import{updateElevation as S,transformPoints as x}from"../../layers/orientedImagery/transformations/groundToImageUtils.js";import{transformPoints as V}from"../../layers/orientedImagery/transformations/imageToGroundUtils.js";import j from"../../layers/support/RasterFunction.js";import{convolutionKernel as A}from"../../layers/support/rasterFunctionConstants.js";import O from"../../layers/support/rasterDatasets/RasterFactory.js";import G from"../../rest/support/AttachmentQuery.js";import D from"../../views/MapView.js";import{getResolutionToScaleFactor as R}from"../../views/2d/viewpointUtils.js";import{projectWithEngineOrService as L}from"../../views/support/projectionUtils.js";import{sectorsInOrder as E,sectorsRadii as U}from"./constants.js";import{activePolygonSymbol as T,polygonSymbol as N,activeSourcePointSymbol as k,sourcePointSymbol as H,crossSymbol as J,diamondSymbol as z}from"./symbols.js";import{isTifOrMrf as $,isSceneView as q,isGraphic as B}from"./utils.js";import W from"../../geometry/Polygon.js";import Z from"../../geometry/SpatialReference.js";import Q from"../../geometry/Point.js";const K={click:"view-click",view:"view",viewLayers:"view-layers",mapLayers:"map-layers",layerViews:"layer-views",layerListMode:"layer-list-mode",children:"children",registerLayerSelection:"register-layer-selection",plotPointOnGround:"plot-point-on-ground"},X=e=>/^https?:/i.test(e),Y=e=>"FA"===e;let ee=class extends s.EventedAccessor{constructor(e){super(e),this.activeLayer=null,this.shouldShowSelectedImage=!1,this.coverageFrustums=new i,this.coveragePolygons=new i,this.currentCoverageVisible=!0,this.disabled=!1,this.displayMessage=null,this.pointSources=new i,this.previousFeatureAngle=0,this.selectedFeature=null,this.selectedFeatureAngle=0,this.selectedPoint=null,this.features=new i,this.isAdditionalCoverageVisible=!1,this.isAdditionalPointSourcesVisible=!1,this.localPort=null,this.mapImageConversionToolState=!1,this.navigatorSelectedFeature=null,this._additionalCoveragePolygons=new i,this._additionalFeatureGraphics=new i,this._currentCoveragePolygon=null,this._currentImage=null,this._fetchFeaturesController=null,this._imageViewer=null,this._initialCurrentCoveragePolygon=null,this._initialCurrentCoverageUpdate=!0,this._overlays=null,this._plotPolygons=!1,this._initialPreviousCoveragePolygon=null,this._referencePointOnGround=null,this._referencePointOnImage=null,this._sectorData=null,this._crossSymbol=null,this._panConstraint=null,this._scaleConstraint=null,this._suitabilities=null,this._transformController=new AbortController,this._updateCoverageController=null,this.handleSectorClick=this.handleSectorClick.bind(this),this.loadViewer=this.loadViewer.bind(this),this.searchBestImage=this.searchBestImage.bind(this),this.transformAndPlotReferencePointOnImage=this.transformAndPlotReferencePointOnImage.bind(this)}initialize(){h((()=>this.view?.ready)).then((()=>{this._overlays=new f({listMode:"hide"}),this.view.map.layers.add(this._overlays)})),this.addHandles([c((()=>this.view),"click",(e=>{if(this.view.ready&&!this.disabled&&this.active&&(e.stopPropagation(),e.preventDefault(),"mouse"!==e.pointerType||0===e.button))if(this.mapImageConversionToolState)this.plotReferencePoint(e),this.transformAndPlotReferencePointOnImage({feature:this.selectedFeature,selectedLocation:e.mapPoint,options:{signal:this._transformController?.signal}});else{const{mapPoint:t}=e;this.displayMessage=null,this.selectedPoint=t.spatialReference.isGeographic?v(t):t.clone(),this.features.removeAll(),this._additionalCoveragePolygons.removeAll(),this._additionalFeatureGraphics.removeAll(),this._currentCoveragePolygon=l(this._currentCoveragePolygon),this._overlays?.removeAll(),this.selectedFeature=null,this._fetchFeaturesWithController(e)}})),g((()=>this.view?.map?.allLayers?.length),(e=>{e&&this._overlays&&this.view.map.layers.reorder(this._overlays,e-1)}),{initial:!0}),g((()=>this.activeLayer?.visible??!1),(e=>{this._overlays&&(this._overlays.visible=e)}))],K.view)}destroy(){this._cancelCurrentCoverageUpdate(),this._cancelFetchingFeatures(),this.coverageFrustums.destroy(),this.coveragePolygons.destroy(),this.pointSources.destroy(),this._additionalCoveragePolygons.destroy(),this._additionalFeatureGraphics.destroy(),this._currentImage=l(this._currentImage),this._imageViewer=l(this._imageViewer),this._initialCurrentCoveragePolygon=l(this._initialCurrentCoveragePolygon),this._currentCoveragePolygon=l(this._currentCoveragePolygon),this._crossSymbol=l(this._crossSymbol),this._referencePointOnGround=l(this._referencePointOnGround),this._referencePointOnImage=l(this._referencePointOnImage),this._overlays&&this.view?.map.remove(this._overlays),this._overlays=l(this._overlays)}get active(){return!0===this.view?.map?.allLayers.some((e=>"oriented-imagery"===e.type&&e.loaded))}get brightness(){return this._get("brightness")??0}set brightness(e){this._set("brightness",n(e,-10,10))}get contrast(){return this._get("contrast")??0}set contrast(e){this._set("contrast",n(e,-10,10))}get currentImageView(){return this._imageViewer?.allLayerViews.find((e=>e.layer===this._currentImage))}get featureCount(){return this.features?.length??0}get imageGalleryEnabled(){return $(this.selectedFeature?.attributes.imagePath.trim())}get imageLoaded(){return this._currentImage?.loaded??!1}get updating(){return"loading"===this._currentImage?.loadStatus||!!this._fetchFeaturesController}get sharpness(){return this._get("sharpness")??0}set sharpness(e){this._set("sharpness",n(e,0,1))}get sectorData(){const{_sectorData:e}=this;if(e)return E.map((t=>e[t]))}get state(){const{active:e,activeLayer:t}=this;return e||t?this._currentImage?.loadStatus?`image-${this._currentImage.loadStatus}`:"ready":"disabled"}get thumbnails(){const{features:e}=this;return e?new i(e.map((({attributes:{imagePath:e,objectId:t}})=>{const r=e.trim();return $(r)?{url:r,objectId:t}:null})).filter(r)):null}set view(e){this._set("view",e)}getCurrentCoveragePolygon(){return this._currentCoveragePolygon}getSelectedFeature(){return this.selectedFeature}getSelectedFeaturePolygon(){return this._initialCurrentCoveragePolygon}handleSectorClick(e){if(isNaN(e))return;const t=this._sectorData?.[E[e]];t?.length&&this._updateSelectedFeature(t.at(0))}handleFeatureClick(e){const{sector:t,featureIndexInSector:r}=e;if(isNaN(r))return;const i=this._sectorData?.[t];i?.length&&this._updateSelectedFeature(i.at(r))}loadViewer(e){const t=new Map,r={wkid:0};this._imageViewer=new D({container:e,map:t,spatialReferance:r,constraints:{snapToZoom:!1,rotationEnabled:!1},ui:{components:["zoom"]}}),h((()=>!0===this._imageViewer?.stationary)).then((()=>{this.setMessage("onLoadMessage","info")})),this._imageViewer.addHandles([this._imageViewer.on("click",(async e=>{if(0===e.button&&this._currentImage&&this.mapImageConversionToolState&&this._currentImage?.fullExtent){const{xmin:t,xmax:r,ymin:i,ymax:s}=this._currentImage.fullExtent,{x:o,y:a}=e.mapPoint;if(t>o||r<o||s<a||i>a)return;this.plotReferencePointOnImage(e.mapPoint);const n=this.getSelectedFeature();if(n){const t=(await V([e.mapPoint.toJSON()],{feature:n,currentCoveragePolygon:this.getSelectedFeaturePolygon(),imageProperties:this._currentImage.rasterInfo,options:{signal:this._transformController?.signal}}))[0];t&&this.plotReferencePointOnGround(t)}}})),g((()=>[this._imageViewer?.viewpoint,this._initialCurrentCoveragePolygon]),((e,t)=>{e?.[1]!==t?.[1]&&(this._initialPreviousCoveragePolygon=this._plotPolygons?null:t?.[1]),this._imageViewer?.viewpoint&&this._initialCurrentCoveragePolygon&&(this._cancelCurrentCoverageUpdate(),this.updateCoverage())})),g((()=>this.selectedFeatureAngle),((e,t)=>{this.previousFeatureAngle=t??0}),u),g((()=>this.selectedFeature),(async()=>{const{selectedFeature:e,selectedPoint:t}=this;if(!e&&this._currentImage&&(this._imageViewer?.map.layers.remove(this._currentImage),this._currentImage=l(this._currentImage)),e&&t){this._initialCurrentCoverageUpdate=!0,this._updatePointsAndPolygons(),this._fetchFeaturesController??=new AbortController;const{signal:t}=this._fetchFeaturesController;await this.loadImage(e,{signal:t}).finally((()=>{this._fetchFeaturesController=null}))}}))])}resetImage(){this._currentImage=l(this._currentImage),this.setMessage("onLoadMessage","info"),this._cancelCurrentCoverageUpdate(),this._cancelFetchingFeatures()}async searchBestImage(e,t){try{const r=await C(e,t);r&&await this._processFeatureResponse(r,{signal:t?.signal})}catch(r){const e=a.getLogger(this);this.setMessage("imageLoadError","error"),e.error("error occurred while finding best image",r)}}setAdditionalCameraLocationsVisibility(e){this._additionalFeatureGraphics.forEach((t=>{t.visible=e}))}setAdditionalCoverageVisibility(e){this._additionalCoveragePolygons.forEach((t=>{t.visible=e}))}setCurrentCoverageVisibility(e){this._currentCoveragePolygon&&(this._currentCoveragePolygon.visible=e),this._selectedFeatureGraphic&&(this._selectedFeatureGraphic.visible=e)}setMapImageConversionToolState(e){this.mapImageConversionToolState=e}_cancelFetchingFeatures(e){const t=this._fetchFeaturesController;t&&t.abort(e),this._fetchFeaturesController=null}_cancelCurrentCoverageUpdate(){const e=this._updateCoverageController;e&&e.abort("Multiple Coverage Updates: Aborting Current Coverage Update to sync image and coverage"),this._updateCoverageController=null}async _fetchFeatures(e,t){const{screenPoint:r}=e,i=this.activeLayer;if(i){const e={include:i},s=await this.view.hitTest(r,e);this._processHitTestResults(i,s,t)}}async _fetchFeaturesWithController(e){this._cancelFetchingFeatures();const t=new AbortController,{signal:r}=t;this._fetchFeaturesController=t;try{await this._fetchFeatures(e,{signal:r}).finally((()=>{this._fetchFeaturesController=null}))}catch(i){const e=a.getLogger(this);this.setMessage("imageLoadError","error"),e.error("error occurred while fetching features",i)}}_groupFeaturesBySectors(){const{_suitabilities:e,features:t}=this;if(!e||!t)return void(this._sectorData=null);this._sectorData={};for(const a of E)this._sectorData[a]=new i;const r=e.map(((e,t)=>({...e,featureIndex:t})));r.sort(((e,t)=>e.trueSuitability-t.trueSuitability));const s=r.map((({distance:e})=>e)),o=Math.max(...s);r.forEach((e=>{const{distance:r,angle:i,featureIndex:s}=e;let a="FAR";const n=r/o*U[2];n<=U[0]?a="NEAR":n<=U[1]&&(a="");let l="NORTH";if(Math.abs(i)>=135?l="WEST":i<-45&&i>-135?l="SOUTH":i<=45&&(l="EAST"),!this._sectorData)return;const h=U[3]+n*Math.sin(i*Math.PI/180),c=U[3]+n*Math.cos(i*Math.PI/180);let g;const u=t.at(s),m=u===this.selectedFeature,d=this.selectedFeature?.attributes.cameraPitch&&this.selectedFeature?.attributes.cameraPitch<5;if(m&&d)g=-90;else{const e=h-U[3],t=c-U[3],r=t/Math.sqrt(e**2+t**2);let i=180*Math.acos(r)/Math.PI;(e<0&&t<0||e<0&&t>0)&&(i*=-1),g=i}const p=""===a?l:`${a}_${l}`;m&&(g===this.selectedFeatureAngle?this.previousFeatureAngle=g:this.selectedFeatureAngle=g,this.navigatorSelectedFeature=d?null:{x:h,y:c,direction:l});const y=this._sectorData[p];y.add({angle:i,featureIndex:s,x:h,y:c,objectID:u.attributes.objectId,sector:p,featureIndexInSector:y.length})}))}async _processFeatureResponse(e,t){const{selectedPoint:r}=this;if(!r)return;if(!e)return;const i=e;if(!i)return;const{features:s}=i;if(!s.length)return this.setMessage("noImageError","error"),void(this.selectedFeature=null);const a=new Array;this.coveragePolygons.removeAll(),this.coverageFrustums.removeAll(),this.pointSources.removeAll(),s.forEach((e=>{let t;const{polygon:i,frustum:s}=b(e);if(t=i,e.attributes.isInspection&&(t=w(e.attributes)),e.layer.coveragePercent&&(t=F(t,e.layer.coveragePercent)),M(t,r)){a.push(e);const r=t.toJSON(),i=s?.toJSON(),{attributes:n}=e,{cameraHeight:l,cameraHeading:h,location:c,objectId:g}=n,u=o(c)?c.toJSON():c;r.imageID=u.imageID=g,i&&(i.imageID=g),u.z=l,this.pointSources?.push(u),this.coveragePolygons?.push(h>0?r:void 0),this.coverageFrustums?.push(h>0?i:void 0)}}));const n=this.coveragePolygons?.getItemAt(0);if(!a.length)return void this.setMessage("noImageError","error");if(a[0].attributes.elevationSource&&!r.z&&n){const e=await S([r],{feature:a[0],currentCoveragePolygon:new W(n),options:t});if(e[0]){const t=e[0];r.elevation=t.z}}this._suitabilities=I({features:a,selectedPoint:r,camera:q(this.view)?this.view.camera:null,currentImage:this.selectedFeature}),this._suitabilities?.sort(((e,t)=>e.suitability-t.suitability));const l=this._suitabilities?.map((e=>e.feature)),h=l[0];this._updateFeatures(l),this.selectedFeature=h,this._groupFeaturesBySectors(),this._initialCurrentCoverageUpdate=!0,this._plotPolygons=!0}async _processHitTestResults(e,t,r){const{screenPoint:i,results:s}=t,o=this.view.toMap(i),a=s[0],n={layerInstanceOrURL:e,point:o,queryParams:{maximumDistance:e.maximumDistance,objectIds:this.shouldShowSelectedImage?[a.graphic.attributes.id]:void 0},queryFeatures:null};await this.searchBestImage(n,r)}_updateFeatures(e){e.length&&(this.features.removeAll(),this.features.addMany(e))}_updatePointsAndPolygons(){const{coveragePolygons:e,pointSources:r,selectedFeature:i,currentCoverageVisible:s,isAdditionalCoverageVisible:o,isAdditionalPointSourcesVisible:a}=this;if(e&&r&&i){this._additionalCoveragePolygons.removeAll(),this._additionalFeatureGraphics.removeAll(),this._currentCoveragePolygon&&(this._currentCoveragePolygon.destroy(),this._currentCoveragePolygon=null,this._initialCurrentCoveragePolygon=null);for(const r of e)r?.imageID===i?.attributes.objectId?this._initialCurrentCoveragePolygon=new t({attributes:{imageID:r?.imageID},geometry:{type:"polygon",...r},symbol:T,visible:!1}):this._additionalCoveragePolygons.push(new t({attributes:{imageID:r?.imageID},geometry:{type:"polygon",...r},symbol:N,visible:o}));for(const e of r)e.imageID===i?.attributes.objectId?this._selectedFeatureGraphic=new t({attributes:{imageID:e.imageID},geometry:{type:"point",...e},symbol:k,visible:s}):this._additionalFeatureGraphics?.push(new t({attributes:{imageID:e.imageID},geometry:{type:"point",...e},symbol:H,visible:a}))}}_updateSelectedFeature(e){if(!e)return;this.selectedFeature=this.features?.at(e.featureIndex);const t=this.selectedFeature?.attributes.cameraPitch&&this.selectedFeature?.attributes.cameraPitch<5;let r;if(t)r=-90;else{const t=e.x-U[3],i=e.y-U[3],s=i/Math.sqrt(t**2+i**2);let o=180*Math.acos(s)/Math.PI;(t<0&&i<0||t<0&&i>0)&&(o*=-1),r=o}r===this.selectedFeatureAngle?this.previousFeatureAngle=r:this.selectedFeatureAngle=r,this.navigatorSelectedFeature=t?null:{x:e.x,y:e.y,direction:e.sector.includes("_")?e.sector.split("_")[1]:e.sector}}plotReferencePoint(e){"mapPoint"in e?this.plotReferencePointOnGround(e.mapPoint):this.plotReferencePointOnGround(e)}updateCurrentCoveragePolygon(e){if(this._initialCurrentCoverageUpdate)if(this._overlays?.removeAll(),this._initialCurrentCoverageUpdate=!1,e&&(this._currentCoveragePolygon&&this._currentCoveragePolygon.destroy(),e.visible=this.currentCoverageVisible,this._currentCoveragePolygon=e),this.view){this._plotPolygons=!1;const e=this.selectedPoint?new t({geometry:this.selectedPoint.clone(),symbol:J,attributes:{imageID:this.selectedFeature?.attributes.objectId}}):null;this._overlays?.graphics.addMany([...this._additionalCoveragePolygons,...this._additionalFeatureGraphics,this._currentCoveragePolygon,this._selectedFeatureGraphic,e].filter(B))}else if(this._plotPolygons){this._plotPolygons=!1;const e={points:this.pointSources?.filter((e=>e?.imageID!==this.selectedFeature?.attributes.objectId)),frustums:this.coverageFrustums?.filter((e=>e?.imageID!==this.selectedFeature?.attributes.objectId)),polygons:this._additionalCoveragePolygons?.map((e=>e.geometry?.toJSON())),currentPoint:this.pointSources.find((e=>e?.imageID===this.selectedFeature?.attributes.objectId)),currentPolygon:this._currentCoveragePolygon,currentFrustum:this.coverageFrustums?.find((e=>e?.imageID===this.selectedFeature?.attributes.objectId))};this.emit("plot-polygons",{data:e})}else{const e={currentPoint:this.pointSources.find((e=>e?.imageID===this.selectedFeature?.attributes.objectId)),additionalPoint:this.pointSources.find((e=>e?.imageID===this._initialPreviousCoveragePolygon?.attributes.imageID)),currentPolygon:this._currentCoveragePolygon,additionalPolygon:this._initialPreviousCoveragePolygon};this.emit("update-selected-feature",{data:e})}else if(this.view){const t=this._currentCoveragePolygon&&this._overlays?this._overlays.graphics.indexOf(this._currentCoveragePolygon):-1;e&&(this._currentCoveragePolygon&&(this._overlays?.remove(this._currentCoveragePolygon),this._currentCoveragePolygon.destroy()),e.visible=this.currentCoverageVisible,this._currentCoveragePolygon=e,this._overlays?.graphics.add(this._currentCoveragePolygon,t>=0?t:void 0))}else e&&(this._currentCoveragePolygon=e,this.emit("update-current-coverage",{graphic:e.toJSON()}))}async loadImage(e,t){if(!this._imageViewer)return;if(this._imageViewer.graphics.removeAll(),this._currentImage&&this._imageViewer?.map.layers.includes(this._currentImage)&&(this._currentImage?.removeHandles("image-handles"),this._imageViewer?.map.layers.remove(this._currentImage),this._currentImage?.destroy(),this._currentImage=null),!e)return void this.setMessage("noImageError","error");const{horizontalFieldOfView:r,isSpherical:i}=e.attributes;if(360===r||i)return void this.setMessage("unsupportedPanaromicImageryError","error");let s,o,n=e.attributes.imagePath;if(!X(n)&&!Y(n)){if(!this.localPort)return this.setMessage("noLocalPort","error"),void a.getLogger(this).error("oriented-imagery-viewer:missing-local-port","A value for local port is not set. Local port is needed to load local images.");n=`http://127.0.0.1:${this.localPort}/${n}`}this._referencePointOnGround&&(this._imageViewer?.graphics.remove(this._referencePointOnGround),this._referencePointOnGround.destroy());const l={skipExtensions:["aux.xml","jgw"]};if(Y(n)){const r=new G({objectIds:[e.attributes.objectId]}),i=(await e.layer.queryAttachments(r,t))[`${e.attributes.objectId}`];if(!i[0]?.url)return void this.setMessage("noAttachment","error");if(s=i[0].contentType.split("/")[1]?.toUpperCase(),n=i[0]?.url,o=await O.open({ioConfig:l,url:n,datasetFormat:s,...t}).catch((e=>(this.setMessage("imageLoadError","error",e.message),null))),!o)return}this._currentImage=new P({ioConfig:l,url:n,raster:o,options:t}),this._imageViewer.map.layers.add(this._currentImage);try{const r=await this._currentImage.when();this._imageViewer.extent=r.fullExtent,r.raster.rasterInfo.isPseudoSpatialReference&&(this._imageViewer.rotation=(e.attributes.cameraRoll??0)+(e.attributes.imageRotation??0)),this._panConstraint&&this._imageViewer.constraints.customConstraints.remove(this._panConstraint),this._scaleConstraint&&this._imageViewer.constraints.customConstraints.remove(this._scaleConstraint),this._panConstraint={constrain:(e,t)=>{if(!this._currentImage||!this._imageViewer||!e.targetGeometry)return e;const{xmin:r,xmax:i,ymin:s,ymax:o}=this._currentImage.fullExtent,{extent:a,rotation:n}=this._imageViewer,l=n*Math.PI/180,h=Math.abs(Math.cos(l)*a.width+Math.sin(l)*a.height),c=Math.abs(Math.cos(l)*a.height+Math.sin(l)*a.width),{rasterInfo:g}=this._currentImage;return e.targetGeometry.x=Math.min(Math.max(r+Math.min(g.width,h)/2,e.targetGeometry.x),i-Math.min(g.width,h)/2),e.targetGeometry.y=Math.min(Math.max(s+Math.min(g.height,c)/2,e.targetGeometry.y),o-Math.min(g.height,c)/2),e},applyPanConstraint:e=>{if(!this._currentImage||!this._imageViewer||!e.targetGeometry)return e;const{xmin:t,xmax:r,ymin:i,ymax:s}=this._currentImage.fullExtent,{extent:o,rotation:a}=this._imageViewer,n=a*Math.PI/180,l=Math.abs(Math.cos(n)*o.width+Math.sin(n)*o.height),h=Math.abs(Math.cos(n)*o.height+Math.sin(n)*o.width),{rasterInfo:c}=this._currentImage;return e.targetGeometry.x=Math.min(Math.max(t+Math.min(c.width,l)/2,e.targetGeometry.x),r-Math.min(c.width,l)/2),e.targetGeometry.y=Math.min(Math.max(i+Math.min(c.height,h)/2,e.targetGeometry.y),s-Math.min(c.height,h)/2),e}},this._scaleConstraint={constrain:(e,t)=>{if(this._imageViewer&&this._currentImage){const{width:t,height:r}=this._currentImage.rasterInfo,{width:i,height:s,rotation:o,zoom:a}=this._imageViewer,n=o*Math.PI/180,l=Math.abs(Math.cos(n)*t+Math.sin(n)*r),h=Math.abs(Math.cos(n)*r+Math.sin(n)*t);a<1&&(e.scale=Math.max(e.scale,R(this._imageViewer.spatialReference)*Math.max(l/i,h/s)/2**a))}return e}},this._imageViewer.constraints.customConstraints.addMany([this._panConstraint,this._scaleConstraint]),r.addHandles(g((()=>[this.brightness,this.contrast,this.sharpness]),(([e,t,i])=>{r.loaded&&(r.effect=`contrast(${10*(t+10)}%) brightness(${10*(e+10)}%)`,this.sharpenImage(r,i))}),u)),await this.transformAndPlotSelectedLocation(t)}catch(h){a.getLogger(this).error("oriented-imagery-viewer:load-image",h),this.setMessage("imageLoadError","error",h.message)}}sharpenImage(e,t){const r=[0,-1*t,0,-1*t,5,-1*t,0,-1*t,0],i=new j({functionName:"Convolution",functionArguments:{type:A.userDefined,cols:3,rows:3,kernel:r,convolutionType:A.userDefined}});e.renderer=null,e.rasterFunction=i}async transformAndPlotSelectedLocation(e){const{_currentImage:r,selectedFeature:i,selectedPoint:s}=this;if(!s||!i||!r?.loaded)return;const{pixelSize:o}=r.rasterInfo,a=await x([s],{feature:i,imageProperties:r.rasterInfo,currentCoveragePolygon:this.getSelectedFeaturePolygon(),options:e});if(!a.length)return;const n=a[0];if(!n)return;const l=p(_,await L(r.fullExtent,p(Z,this._imageViewer?.spatialReference),null,e?.signal));n.x=n.x*o.x+l.xmin,n.y=l.ymax-n.y*o.y,n.spatialReference=l.spatialReference,this._crossSymbol&&(this._imageViewer?.graphics.remove(this._crossSymbol),this._crossSymbol.destroy()),this._crossSymbol=new t({geometry:Q.fromJSON(n),symbol:J}),this._imageViewer?.graphics.add(this._crossSymbol)}async transformAndPlotReferencePointOnImage(e){if(!this._imageViewer)return;const t=this._currentImage;if(!t)return;const{feature:r,selectedLocation:i,options:s}=e,{pixelSize:o,isPseudoSpatialReference:a,transform:n}=t.rasterInfo,l=await x([i],{feature:r,imageProperties:t.rasterInfo,currentCoveragePolygon:this.getSelectedFeaturePolygon(),options:s});if(!l.length)return;let h=l[0];const c=await L(t.fullExtent,this._imageViewer.spatialReference,null,s?.signal);a?(h.x=h.x*o.x+c.xmin,h.y=c.ymax-h.y*o.y,h.spatialReference=c.spatialReference):h=n.forwardTransform(new Q(h)),this.plotReferencePointOnImage(h)}plotReferencePointOnGround(e){this._referencePointOnGround&&(this._overlays?.remove(this._referencePointOnGround),this._referencePointOnGround.destroy()),this._referencePointOnGround=new t({geometry:{type:"point",...e.toJSON()},symbol:z}),this.view?this._overlays?.add(this._referencePointOnGround):this.emit("plot-ground-point",{data:{point:this._referencePointOnGround?.geometry}})}plotReferencePointOnImage(e){this._imageViewer&&(this._referencePointOnImage&&(this._imageViewer.graphics.remove(this._referencePointOnImage),this._referencePointOnImage.destroy()),this._referencePointOnImage=new t({geometry:{type:"point",...o(e)?e.toJSON():e},symbol:z}),this._imageViewer.graphics.add(this._referencePointOnImage))}setMessage(e,t,r){this.displayMessage={key:e,type:t,data:r}}async updateCoverage(){const e=new AbortController,{signal:r}=e;this._updateCoverageController=e;const{_imageViewer:i}=this;if(this._currentImage?.loaded&&i){const{width:e,height:s}=this._currentImage.rasterInfo,{xmin:o,xmax:a,ymin:n,ymax:l}=this._currentImage.fullExtent,h=[[0,0],[Math.min(i.width,e),0],[Math.min(i.width,e),Math.min(i.height,s)],[0,Math.min(i.height,s)]].map((e=>i.toMap(m(e[0],e[1]))));h.forEach((e=>{e.x=o<=e.x&&e.x<=a?e.x:Math.abs(o-e.x)>Math.abs(a-e.x)?a:o,e.y=n<=e.y&&e.y<=l?e.y:Math.abs(n-e.y)>Math.abs(l-e.y)?l:n}));const c=await V(h,{feature:this.getSelectedFeature(),currentCoveragePolygon:this.getSelectedFeaturePolygon(),imageProperties:this._currentImage.rasterInfo,options:{signal:r}});if(c&&!r.aborted){const e=[c.map((e=>[e.x,e.y,1]))];e[0].push(e[0][0]);const r=new W({hasZ:!0,rings:e,spatialReference:c[0].spatialReference});this.updateCurrentCoveragePolygon(new t({attributes:{imageID:this.selectedFeature?.attributes.objectId},geometry:r,symbol:T,visible:this.currentCoverageVisible}))}}}};e([d()],ee.prototype,"active",null),e([d()],ee.prototype,"activeLayer",void 0),e([d()],ee.prototype,"shouldShowSelectedImage",void 0),e([d({type:Number})],ee.prototype,"brightness",null),e([d({type:Number})],ee.prototype,"contrast",null),e([d()],ee.prototype,"coverageFrustums",void 0),e([d()],ee.prototype,"coveragePolygons",void 0),e([d()],ee.prototype,"currentCoverageVisible",void 0),e([d()],ee.prototype,"currentImageView",null),e([d()],ee.prototype,"disabled",void 0),e([d()],ee.prototype,"displayMessage",void 0),e([d()],ee.prototype,"pointSources",void 0),e([d()],ee.prototype,"previousFeatureAngle",void 0),e([d()],ee.prototype,"selectedFeature",void 0),e([d()],ee.prototype,"selectedFeatureAngle",void 0),e([d()],ee.prototype,"selectedPoint",void 0),e([d({readOnly:!0})],ee.prototype,"featureCount",null),e([d()],ee.prototype,"features",void 0),e([d()],ee.prototype,"imageGalleryEnabled",null),e([d()],ee.prototype,"imageLoaded",null),e([d()],ee.prototype,"isAdditionalCoverageVisible",void 0),e([d()],ee.prototype,"isAdditionalPointSourcesVisible",void 0),e([d({type:Number})],ee.prototype,"localPort",void 0),e([d()],ee.prototype,"mapImageConversionToolState",void 0),e([d()],ee.prototype,"navigatorSelectedFeature",void 0),e([d()],ee.prototype,"updating",null),e([d({type:Number})],ee.prototype,"sharpness",null),e([d()],ee.prototype,"sectorData",null),e([d()],ee.prototype,"state",null),e([d()],ee.prototype,"thumbnails",null),e([d()],ee.prototype,"view",null),e([d()],ee.prototype,"_additionalCoveragePolygons",void 0),e([d()],ee.prototype,"_additionalFeatureGraphics",void 0),e([d()],ee.prototype,"_currentCoveragePolygon",void 0),e([d()],ee.prototype,"_currentImage",void 0),e([d()],ee.prototype,"_fetchFeaturesController",void 0),e([d()],ee.prototype,"_imageViewer",void 0),e([d()],ee.prototype,"_initialCurrentCoveragePolygon",void 0),e([d()],ee.prototype,"_initialCurrentCoverageUpdate",void 0),e([d()],ee.prototype,"_overlays",void 0),e([d()],ee.prototype,"_plotPolygons",void 0),e([d()],ee.prototype,"_initialPreviousCoveragePolygon",void 0),e([d()],ee.prototype,"_referencePointOnGround",void 0),e([d()],ee.prototype,"_referencePointOnImage",void 0),e([d()],ee.prototype,"_selectedFeatureGraphic",void 0),e([d()],ee.prototype,"_sectorData",void 0),ee=e([y("esri.widgets.OrientedImageryViewer.OrientedImageryViewerViewModel")],ee);const te=ee;export{te as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import"../../geometry.js";import t from"../../Graphic.js";import{isSome as r}from"../../core/arrayUtils.js";import i from"../../core/Collection.js";import{deprecatedProperty as o}from"../../core/deprecate.js";import s from"../../core/Evented.js";import{isSerializable as a}from"../../core/JSONSupport.js";import n from"../../core/Logger.js";import{clamp as l}from"../../core/mathUtils.js";import{destroyMaybe as h}from"../../core/maybe.js";import{watch as c,once as g,initial as u}from"../../core/reactiveUtils.js";import{createScreenPoint as m}from"../../core/screenUtils.js";import{property as d}from"../../core/accessorSupport/decorators/property.js";import{ensureType as p}from"../../core/accessorSupport/ensureType.js";import"../../core/has.js";import{subclass as y}from"../../core/accessorSupport/decorators/subclass.js";import _ from"../../geometry/Extent.js";import{geographicToWebMercator as v}from"../../geometry/support/webMercatorUtils.js";import f from"../../layers/GraphicsLayer.js";import P from"../../layers/ImageryTileLayer.js";import{searchImages as C}from"../../layers/orientedImagery/queries.js";import{calculateSuitabilities as I}from"../../layers/orientedImagery/core/bestImageUtils.js";import{createCoveragePolygon as b,computePolygonForInspection as w,resizePolygon as F,checkIfPolygonContainsSelectedPoint as M}from"../../layers/orientedImagery/core/coverageUtils.js";import{updateElevation as S,transformPoints as x}from"../../layers/orientedImagery/transformations/groundToImageUtils.js";import{transformPoints as V}from"../../layers/orientedImagery/transformations/imageToGroundUtils.js";import j from"../../layers/support/RasterFunction.js";import{convolutionKernel as O}from"../../layers/support/rasterFunctionConstants.js";import A from"../../layers/support/rasterDatasets/RasterFactory.js";import G from"../../rest/support/AttachmentQuery.js";import D from"../../views/MapView.js";import{getResolutionToScaleFactor as R}from"../../views/2d/viewpointUtils.js";import{ViewEventPriorities as L}from"../../views/input/InputManager.js";import{projectWithEngineOrService as E}from"../../views/support/projectionUtils.js";import{sectorsInOrder as T,sectorsRadii as U}from"./constants.js";import{activePolygonSymbol as k,polygonSymbol as N,activeSourcePointSymbol as H,sourcePointSymbol as J,crossSymbol as z,diamondSymbol as B}from"./symbols.js";import{isTifOrMrf as $,isSceneView as q,isGraphic as W}from"./utils.js";import Z from"../../geometry/Polygon.js";import Q from"../../geometry/SpatialReference.js";import K from"../../geometry/Point.js";const X={click:"view-click",imageClick:"image-click"},Y=e=>/^https?:/i.test(e),ee=e=>"FA"===e;let te=class extends s.EventedAccessor{constructor(e){super(e),this.layer=null,this.shouldShowSelectedImage=!1,this.coverageFrustums=new i,this.coveragePolygons=new i,this.currentCoverageVisible=!0,this.disabled=!1,this.displayMessage=null,this.pointSources=new i,this.previousFeatureAngle=0,this.selectedFeature=null,this.selectedFeatureAngle=0,this.selectedPoint=null,this.features=new i,this.isAdditionalCoverageVisible=!1,this.isAdditionalPointSourcesVisible=!1,this.localPort=null,this.mapImageConversionToolState=!1,this.navigatorSelectedFeature=null,this._additionalCoveragePolygons=new i,this._additionalFeatureGraphics=new i,this._currentCoveragePolygon=null,this._currentImage=null,this._fetchFeaturesController=null,this._imageViewer=null,this._initialCurrentCoveragePolygon=null,this._initialCurrentCoverageUpdate=!0,this._overlays=new f({listMode:"hide",internal:!0}),this._plotPolygons=!1,this._initialPreviousCoveragePolygon=null,this._referencePointOnGround=null,this._referencePointOnImage=null,this._sectorData=null,this._crossSymbol=null,this._panConstraint=null,this._scaleConstraint=null,this._suitabilities=null,this._transformController=new AbortController,this._updateCoverageController=null,this._imageClickHandler=async e=>{if(0===e.button&&this._currentImage&&this._currentImage?.fullExtent){const{xmin:t,xmax:r,ymin:i,ymax:o}=this._currentImage.fullExtent,{x:s,y:a}=e.mapPoint;if(t>s||r<s||o<a||i>a)return;this.plotReferencePointOnImage(e.mapPoint);const n=this.getSelectedFeature();if(n){const t=(await V([e.mapPoint.toJSON()],{feature:n,currentCoveragePolygon:this.getSelectedFeaturePolygon(),imageProperties:this._currentImage.rasterInfo,options:{signal:this._transformController?.signal}}))[0];t&&this.plotReferencePointOnGround(t)}}},this._viewClickHandler=e=>{"mouse"===e.pointerType&&0!==e.button||(e.stopPropagation(),e.preventDefault(),this.loadBestImage(e.mapPoint))},this._mapImageConversionToolViewClickHandler=e=>{e.stopPropagation(),e.preventDefault(),this.plotMapPoint(e.mapPoint)},this.handleSectorClick=this.handleSectorClick.bind(this),this.loadViewer=this.loadViewer.bind(this),this.searchBestImage=this.searchBestImage.bind(this),this.transformAndPlotReferencePointOnImage=this.transformAndPlotReferencePointOnImage.bind(this)}initialize(){this.addHandles([c((()=>this.view?.map),((e,t)=>{t?.layers.remove(this._overlays),e?.layers.add(this._overlays)}),u),c((()=>this.view?.map?.allLayers?.length),(e=>{e&&this.view?.map?.layers.reorder(this._overlays,e-1)}),u),c((()=>this.layer?.visible??!1),(e=>{this._overlays.visible=e}),u),c((()=>[this.state,this.mapImageConversionToolState]),(()=>{if(this.removeHandles(X.click),"disabled"===this.state||null==this.view)return;const e=this.mapImageConversionToolState&&"image-loaded"===this.state?this._mapImageConversionToolViewClickHandler:this._viewClickHandler;this.addHandles(this.view.on("click",e,L.WIDGET),X.click)}),u),c((()=>this.mapImageConversionToolState),(()=>{this.removeHandles(X.imageClick),this.imageLoaded&&this.mapImageConversionToolState&&this.addHandles(this._imageViewer.on("click",this._imageClickHandler),X.imageClick)}))])}destroy(){this._cancelCurrentCoverageUpdate(),this._cancelFetchingFeatures(),this.coverageFrustums.destroy(),this.coveragePolygons.destroy(),this.pointSources.destroy(),this._additionalCoveragePolygons.destroy(),this._additionalFeatureGraphics.destroy(),this._currentImage=h(this._currentImage),this._imageViewer=h(this._imageViewer),this._initialCurrentCoveragePolygon=h(this._initialCurrentCoveragePolygon),this._currentCoveragePolygon=h(this._currentCoveragePolygon),this._crossSymbol=h(this._crossSymbol),this._referencePointOnGround=h(this._referencePointOnGround),this._referencePointOnImage=h(this._referencePointOnImage),this._overlays&&this.view?.map.remove(this._overlays),this._overlays.destroy()}get activeLayer(){return o(n.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer}set activeLayer(e){o(n.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer=e}get brightness(){return this._get("brightness")??0}set brightness(e){this._set("brightness",l(e,-10,10))}get contrast(){return this._get("contrast")??0}set contrast(e){this._set("contrast",l(e,-10,10))}get currentImageView(){return this._imageViewer?.allLayerViews.find((e=>e.layer===this._currentImage))}get featureCount(){return this.features?.length??0}get imageGalleryEnabled(){return $(this.selectedFeature?.attributes.imagePath.trim())}get imageLoaded(){return this._currentImage?.loaded??!1}get updating(){return"loading"===this._currentImage?.loadStatus||!!this._fetchFeaturesController}get referencePoint(){return this._referencePointOnGround?.geometry}get sharpness(){return this._get("sharpness")??0}set sharpness(e){this._set("sharpness",l(e,0,1))}get sectorData(){const{_sectorData:e}=this;if(e)return T.map((t=>e[t]))}get state(){const{layer:e,view:t,_currentImage:r}=this;return this.disabled||!e||t&&!t.ready?"disabled":r?.loadStatus?`image-${r.loadStatus}`:"ready"}get thumbnails(){const{features:e}=this;return e?new i(e.map((({attributes:{imagePath:e,objectId:t}})=>{const r=e.trim();return $(r)?{url:r,objectId:t}:null})).filter(r)):null}set view(e){this._set("view",e)}getCurrentCoveragePolygon(){return this._currentCoveragePolygon}getSelectedFeature(){return this.selectedFeature}getSelectedFeaturePolygon(){return this._initialCurrentCoveragePolygon}handleSectorClick(e){if(isNaN(e))return;const t=this._sectorData?.[T[e]];t?.length&&this._updateSelectedFeature(t.at(0))}handleFeatureClick(e){const{sector:t,featureIndexInSector:r}=e;if(isNaN(r))return;const i=this._sectorData?.[t];i?.length&&this._updateSelectedFeature(i.at(r))}async loadBestImage(e){this.displayMessage=null,this.selectedPoint=e.spatialReference.isGeographic?v(e):e.clone(),this.features.removeAll(),this._additionalCoveragePolygons.removeAll(),this._additionalFeatureGraphics.removeAll(),this._currentCoveragePolygon=h(this._currentCoveragePolygon),this._overlays?.removeAll(),this.selectedFeature=null,await this._fetchFeaturesWithController(e)}loadViewer(e){const t=new Map,r={wkid:0};this._imageViewer=new D({container:e,map:t,spatialReferance:r,constraints:{snapToZoom:!1,rotationEnabled:!1},ui:{components:["zoom"]}}),g((()=>!0===this._imageViewer?.stationary)).then((()=>{this.setMessage("onLoadMessage","info")})),this._imageViewer.addHandles([c((()=>[this._imageViewer?.viewpoint,this._initialCurrentCoveragePolygon]),((e,t)=>{e?.[1]!==t?.[1]&&(this._initialPreviousCoveragePolygon=this._plotPolygons?null:t?.[1]),this._imageViewer?.viewpoint&&this._initialCurrentCoveragePolygon&&(this._cancelCurrentCoverageUpdate(),this.updateCoverage())})),c((()=>this.selectedFeatureAngle),((e,t)=>{this.previousFeatureAngle=t??0}),u),c((()=>this.selectedFeature),(async()=>{const{selectedFeature:e,selectedPoint:t}=this;if(!e&&this._currentImage&&(this._imageViewer?.map.layers.remove(this._currentImage),this._currentImage=h(this._currentImage)),e&&t){this._initialCurrentCoverageUpdate=!0,this._updatePointsAndPolygons(),this._fetchFeaturesController??=new AbortController;const{signal:t}=this._fetchFeaturesController;await this.loadImage(e,{signal:t}).finally((()=>{this._fetchFeaturesController=null}))}}))])}async plotMapPoint(e){return this.plotReferencePoint(e),this.transformAndPlotReferencePointOnImage({feature:this.selectedFeature,selectedLocation:e,options:{signal:this._transformController?.signal}})}resetImage(){this._currentImage=h(this._currentImage),this.setMessage("onLoadMessage","info"),this._cancelCurrentCoverageUpdate(),this._cancelFetchingFeatures()}async searchBestImage(e,t){try{const r=await C(e,t);r&&await this._processFeatureResponse(r,{signal:t?.signal})}catch(r){const e=n.getLogger(this);this.setMessage("imageLoadError","error"),e.error("error occurred while finding best image",r)}}setAdditionalCameraLocationsVisibility(e){this._additionalFeatureGraphics.forEach((t=>{t.visible=e}))}setAdditionalCoverageVisibility(e){this._additionalCoveragePolygons.forEach((t=>{t.visible=e}))}setCurrentCoverageVisibility(e){this._currentCoveragePolygon&&(this._currentCoveragePolygon.visible=e),this._selectedFeatureGraphic&&(this._selectedFeatureGraphic.visible=e)}setMapImageConversionToolState(e){this.mapImageConversionToolState=e}_cancelFetchingFeatures(e){const t=this._fetchFeaturesController;t&&t.abort(e),this._fetchFeaturesController=null}_cancelCurrentCoverageUpdate(){const e=this._updateCoverageController;e&&e.abort("Multiple Coverage Updates: Aborting Current Coverage Update to sync image and coverage"),this._updateCoverageController=null}async _fetchFeatures(e,t){if(!this.view)return;const r=this.layer;if(r){const i={include:r},o=this.view.toScreen(e);if(!o)return;const s=await this.view.hitTest(o,i);this._processHitTestResults(r,s,t)}}async _fetchFeaturesWithController(e){this._cancelFetchingFeatures();const t=new AbortController,{signal:r}=t;this._fetchFeaturesController=t;try{await this._fetchFeatures(e,{signal:r}).finally((()=>{this._fetchFeaturesController=null}))}catch(i){const e=n.getLogger(this);this.setMessage("imageLoadError","error"),e.error("error occurred while fetching features",i)}}_groupFeaturesBySectors(){const{_suitabilities:e,features:t}=this;if(!e||!t)return void(this._sectorData=null);this._sectorData={};for(const a of T)this._sectorData[a]=new i;const r=e.map(((e,t)=>({...e,featureIndex:t})));r.sort(((e,t)=>e.trueSuitability-t.trueSuitability));const o=r.map((({distance:e})=>e)),s=Math.max(...o);r.forEach((e=>{const{distance:r,angle:i,featureIndex:o}=e;let a="FAR";const n=r/s*U[2];n<=U[0]?a="NEAR":n<=U[1]&&(a="");let l="NORTH";if(Math.abs(i)>=135?l="WEST":i<-45&&i>-135?l="SOUTH":i<=45&&(l="EAST"),!this._sectorData)return;const h=U[3]+n*Math.sin(i*Math.PI/180),c=U[3]+n*Math.cos(i*Math.PI/180);let g;const u=t.at(o),m=u===this.selectedFeature,d=this.selectedFeature?.attributes.cameraPitch&&this.selectedFeature?.attributes.cameraPitch<5;if(m&&d)g=-90;else{const e=h-U[3],t=c-U[3],r=t/Math.sqrt(e**2+t**2);let i=180*Math.acos(r)/Math.PI;(e<0&&t<0||e<0&&t>0)&&(i*=-1),g=i}const p=""===a?l:`${a}_${l}`;m&&(g===this.selectedFeatureAngle?this.previousFeatureAngle=g:this.selectedFeatureAngle=g,this.navigatorSelectedFeature=d?null:{x:h,y:c,direction:l});const y=this._sectorData[p];y.add({angle:i,featureIndex:o,x:h,y:c,objectID:u.attributes.objectId,sector:p,featureIndexInSector:y.length})}))}async _processFeatureResponse(e,t){const{selectedPoint:r}=this;if(!r)return;if(!e)return;const i=e;if(!i)return;const{features:o}=i;if(!o.length)return this.setMessage("noImageError","error"),void(this.selectedFeature=null);const s=new Array;this.coveragePolygons.removeAll(),this.coverageFrustums.removeAll(),this.pointSources.removeAll(),o.forEach((e=>{let t;const{polygon:i,frustum:o}=b(e);if(t=i,e.attributes.isInspection&&(t=w(e.attributes)),e.layer.coveragePercent&&(t=F(t,e.layer.coveragePercent)),M(t,r)){s.push(e);const r=t.toJSON(),i=o?.toJSON(),{attributes:n}=e,{cameraHeight:l,cameraHeading:h,location:c,objectId:g}=n,u=a(c)?c.toJSON():c;r.imageID=u.imageID=g,i&&(i.imageID=g),u.z=l,this.pointSources?.push(u),this.coveragePolygons?.push(h>0?r:void 0),this.coverageFrustums?.push(h>0?i:void 0)}}));const n=this.coveragePolygons?.getItemAt(0);if(!s.length)return void this.setMessage("noImageError","error");if(s[0].attributes.elevationSource&&!r.z&&n){const e=await S([r],{feature:s[0],currentCoveragePolygon:new Z(n),options:t});if(e[0]){const t=e[0];r.elevation=t.z}}this._suitabilities=I({features:s,selectedPoint:r,camera:q(this.view)?this.view.camera:null,currentImage:this.selectedFeature}),this._suitabilities?.sort(((e,t)=>e.suitability-t.suitability));const l=this._suitabilities?.map((e=>e.feature)),h=l[0];this._updateFeatures(l),this.selectedFeature=h,this._groupFeaturesBySectors(),this._initialCurrentCoverageUpdate=!0,this._plotPolygons=!0}async _processHitTestResults(e,t,r){const{screenPoint:i,results:[o]}=t,s="graphic"===o?.type&&this.shouldShowSelectedImage,a={layerInstanceOrURL:e,point:o?.mapPoint??this.view?.toMap(i),queryParams:{maximumDistance:e.maximumDistance,objectIds:s?[o.graphic.getAttribute(e.objectIdField)]:void 0},queryFeatures:null};await this.searchBestImage(a,r)}_updateFeatures(e){e.length&&(this.features.removeAll(),this.features.addMany(e))}_updatePointsAndPolygons(){const{coveragePolygons:e,pointSources:r,selectedFeature:i,currentCoverageVisible:o,isAdditionalCoverageVisible:s,isAdditionalPointSourcesVisible:a}=this;if(e&&r&&i){this._additionalCoveragePolygons.removeAll(),this._additionalFeatureGraphics.removeAll(),this._currentCoveragePolygon&&(this._currentCoveragePolygon.destroy(),this._currentCoveragePolygon=null,this._initialCurrentCoveragePolygon=null);for(const r of e)r?.imageID===i?.attributes.objectId?this._initialCurrentCoveragePolygon=new t({attributes:{imageID:r?.imageID},geometry:{type:"polygon",...r},symbol:k,visible:!1}):this._additionalCoveragePolygons.push(new t({attributes:{imageID:r?.imageID},geometry:{type:"polygon",...r},symbol:N,visible:s}));for(const e of r)e.imageID===i?.attributes.objectId?this._selectedFeatureGraphic=new t({attributes:{imageID:e.imageID},geometry:{type:"point",...e},symbol:H,visible:o}):this._additionalFeatureGraphics?.push(new t({attributes:{imageID:e.imageID},geometry:{type:"point",...e},symbol:J,visible:a}))}}_updateSelectedFeature(e){if(!e)return;this.selectedFeature=this.features?.at(e.featureIndex);const t=this.selectedFeature?.attributes.cameraPitch&&this.selectedFeature?.attributes.cameraPitch<5;let r;if(t)r=-90;else{const t=e.x-U[3],i=e.y-U[3],o=i/Math.sqrt(t**2+i**2);let s=180*Math.acos(o)/Math.PI;(t<0&&i<0||t<0&&i>0)&&(s*=-1),r=s}r===this.selectedFeatureAngle?this.previousFeatureAngle=r:this.selectedFeatureAngle=r,this.navigatorSelectedFeature=t?null:{x:e.x,y:e.y,direction:e.sector.includes("_")?e.sector.split("_")[1]:e.sector}}plotReferencePoint(e){"mapPoint"in e?this.plotReferencePointOnGround(e.mapPoint):this.plotReferencePointOnGround(e)}updateCurrentCoveragePolygon(e){if(this._initialCurrentCoverageUpdate)if(this._overlays?.removeAll(),this._initialCurrentCoverageUpdate=!1,e&&(this._currentCoveragePolygon&&this._currentCoveragePolygon.destroy(),e.visible=this.currentCoverageVisible,this._currentCoveragePolygon=e),this.view){this._plotPolygons=!1;const e=this.selectedPoint?new t({geometry:this.selectedPoint.clone(),symbol:z,attributes:{imageID:this.selectedFeature?.attributes.objectId}}):null;this._overlays?.graphics.addMany([...this._additionalCoveragePolygons,...this._additionalFeatureGraphics,this._currentCoveragePolygon,this._selectedFeatureGraphic,e].filter(W))}else if(this._plotPolygons){this._plotPolygons=!1;const e={points:this.pointSources?.filter((e=>e?.imageID!==this.selectedFeature?.attributes.objectId)),frustums:this.coverageFrustums?.filter((e=>e?.imageID!==this.selectedFeature?.attributes.objectId)),polygons:this._additionalCoveragePolygons?.map((e=>e.geometry?.toJSON())),currentPoint:this.pointSources.find((e=>e?.imageID===this.selectedFeature?.attributes.objectId)),currentPolygon:this._currentCoveragePolygon,currentFrustum:this.coverageFrustums?.find((e=>e?.imageID===this.selectedFeature?.attributes.objectId))};this.emit("plot-polygons",{data:e})}else{const e={currentPoint:this.pointSources.find((e=>e?.imageID===this.selectedFeature?.attributes.objectId)),additionalPoint:this.pointSources.find((e=>e?.imageID===this._initialPreviousCoveragePolygon?.attributes.imageID)),currentPolygon:this._currentCoveragePolygon,additionalPolygon:this._initialPreviousCoveragePolygon};this.emit("update-selected-feature",{data:e})}else if(this.view){const t=this._currentCoveragePolygon&&this._overlays?this._overlays.graphics.indexOf(this._currentCoveragePolygon):-1;e&&(this._currentCoveragePolygon&&(this._overlays?.remove(this._currentCoveragePolygon),this._currentCoveragePolygon.destroy()),e.visible=this.currentCoverageVisible,this._currentCoveragePolygon=e,this._overlays?.graphics.add(this._currentCoveragePolygon,t>=0?t:void 0))}else e&&(this._currentCoveragePolygon=e,this.emit("update-current-coverage",{graphic:e.toJSON()}))}async loadImage(e,t){if(!this._imageViewer)return;if(this._imageViewer.graphics.removeAll(),this._currentImage&&this._imageViewer?.map.layers.includes(this._currentImage)&&(this._currentImage?.removeHandles("image-handles"),this._imageViewer?.map.layers.remove(this._currentImage),this._currentImage?.destroy(),this._currentImage=null),!e)return void this.setMessage("noImageError","error");const{horizontalFieldOfView:r,isSpherical:i}=e.attributes;if(360===r||i)return void this.setMessage("unsupportedPanaromicImageryError","error");let o,s,a=e.attributes.imagePath;if(!Y(a)&&!ee(a)){if(!this.localPort)return this.setMessage("noLocalPort","error"),void n.getLogger(this).error("oriented-imagery-viewer:missing-local-port","A value for local port is not set. Local port is needed to load local images.");a=`http://127.0.0.1:${this.localPort}/${a}`}this._referencePointOnGround&&(this._imageViewer?.graphics.remove(this._referencePointOnGround),this._referencePointOnGround.destroy());const l={skipExtensions:["aux.xml","jgw"]};if(ee(a)){const r=new G({objectIds:[e.attributes.objectId]}),i=(await e.layer.queryAttachments(r,t))[`${e.attributes.objectId}`];if(!i[0]?.url)return void this.setMessage("noAttachment","error");if(o=i[0].contentType.split("/")[1]?.toUpperCase(),a=i[0]?.url,s=await A.open({ioConfig:l,url:a,datasetFormat:o,...t}).catch((e=>(this.setMessage("imageLoadError","error",e.message),null))),!s)return}this._currentImage=new P({ioConfig:l,url:a,raster:s,options:t}),this._imageViewer.map.layers.add(this._currentImage);try{const r=await this._currentImage.when();this._imageViewer.extent=r.fullExtent,r.raster.rasterInfo.isPseudoSpatialReference&&(this._imageViewer.rotation=(e.attributes.cameraRoll??0)+(e.attributes.imageRotation??0)),this._panConstraint&&this._imageViewer.constraints.customConstraints.remove(this._panConstraint),this._scaleConstraint&&this._imageViewer.constraints.customConstraints.remove(this._scaleConstraint),this._panConstraint={constrain:(e,t)=>{if(!this._currentImage||!this._imageViewer||!e.targetGeometry)return e;const{xmin:r,xmax:i,ymin:o,ymax:s}=this._currentImage.fullExtent,{extent:a,rotation:n}=this._imageViewer,l=n*Math.PI/180,h=Math.abs(Math.cos(l)*a.width+Math.sin(l)*a.height),c=Math.abs(Math.cos(l)*a.height+Math.sin(l)*a.width),{rasterInfo:g}=this._currentImage;return e.targetGeometry.x=Math.min(Math.max(r+Math.min(g.width,h)/2,e.targetGeometry.x),i-Math.min(g.width,h)/2),e.targetGeometry.y=Math.min(Math.max(o+Math.min(g.height,c)/2,e.targetGeometry.y),s-Math.min(g.height,c)/2),e},applyPanConstraint:e=>{if(!this._currentImage||!this._imageViewer||!e.targetGeometry)return e;const{xmin:t,xmax:r,ymin:i,ymax:o}=this._currentImage.fullExtent,{extent:s,rotation:a}=this._imageViewer,n=a*Math.PI/180,l=Math.abs(Math.cos(n)*s.width+Math.sin(n)*s.height),h=Math.abs(Math.cos(n)*s.height+Math.sin(n)*s.width),{rasterInfo:c}=this._currentImage;return e.targetGeometry.x=Math.min(Math.max(t+Math.min(c.width,l)/2,e.targetGeometry.x),r-Math.min(c.width,l)/2),e.targetGeometry.y=Math.min(Math.max(i+Math.min(c.height,h)/2,e.targetGeometry.y),o-Math.min(c.height,h)/2),e}},this._scaleConstraint={constrain:(e,t)=>{if(this._imageViewer&&this._currentImage){const{width:t,height:r}=this._currentImage.rasterInfo,{width:i,height:o,rotation:s,zoom:a}=this._imageViewer,n=s*Math.PI/180,l=Math.abs(Math.cos(n)*t+Math.sin(n)*r),h=Math.abs(Math.cos(n)*r+Math.sin(n)*t);a<1&&(e.scale=Math.max(e.scale,R(this._imageViewer.spatialReference)*Math.max(l/i,h/o)/2**a))}return e}},this._imageViewer.constraints.customConstraints.addMany([this._panConstraint,this._scaleConstraint]),r.addHandles(c((()=>[this.brightness,this.contrast,this.sharpness]),(([e,t,i])=>{r.loaded&&(r.effect=`contrast(${10*(t+10)}%) brightness(${10*(e+10)}%)`,this.sharpenImage(r,i))}),u)),await this.transformAndPlotSelectedLocation(t)}catch(h){n.getLogger(this).error("oriented-imagery-viewer:load-image",h),this.setMessage("imageLoadError","error",h.message)}}sharpenImage(e,t){const r=[0,-1*t,0,-1*t,5,-1*t,0,-1*t,0],i=new j({functionName:"Convolution",functionArguments:{type:O.userDefined,cols:3,rows:3,kernel:r,convolutionType:O.userDefined}});e.renderer=null,e.rasterFunction=i}async transformAndPlotSelectedLocation(e){const{_currentImage:r,selectedFeature:i,selectedPoint:o}=this;if(!o||!i||!r?.loaded)return;const{pixelSize:s}=r.rasterInfo,a=await x([o],{feature:i,imageProperties:r.rasterInfo,currentCoveragePolygon:this.getSelectedFeaturePolygon(),options:e});if(!a.length)return;const n=a[0];if(!n)return;const l=p(_,await E(r.fullExtent,p(Q,this._imageViewer?.spatialReference),null,e?.signal));n.x=n.x*s.x+l.xmin,n.y=l.ymax-n.y*s.y,n.spatialReference=l.spatialReference,this._crossSymbol&&(this._imageViewer?.graphics.remove(this._crossSymbol),this._crossSymbol.destroy()),this._crossSymbol=new t({geometry:K.fromJSON(n),symbol:z}),this._imageViewer?.graphics.add(this._crossSymbol)}async transformAndPlotReferencePointOnImage(e){if(!this._imageViewer)return;const t=this._currentImage;if(!t)return;const{feature:r,selectedLocation:i,options:o}=e,{pixelSize:s,isPseudoSpatialReference:a,transform:n}=t.rasterInfo,l=await x([i],{feature:r,imageProperties:t.rasterInfo,currentCoveragePolygon:this.getSelectedFeaturePolygon(),options:o});if(!l.length)return;let h=l[0];const c=await E(t.fullExtent,this._imageViewer.spatialReference,null,o?.signal);return a?(h.x=h.x*s.x+c.xmin,h.y=c.ymax-h.y*s.y,h.spatialReference=c.spatialReference):h=n.forwardTransform(new K(h)),this.plotReferencePointOnImage(h),{x:h.x,y:h.y}}plotReferencePointOnGround(e){this._referencePointOnGround&&(this._overlays?.remove(this._referencePointOnGround),this._referencePointOnGround.destroy()),this._referencePointOnGround=new t({geometry:{type:"point",...e.toJSON()},symbol:B}),this.view?this._overlays?.add(this._referencePointOnGround):this.emit("plot-ground-point",{data:{point:this._referencePointOnGround?.geometry}})}plotReferencePointOnImage(e){this._imageViewer&&(this._referencePointOnImage&&(this._imageViewer.graphics.remove(this._referencePointOnImage),this._referencePointOnImage.destroy()),this._referencePointOnImage=new t({geometry:{type:"point",...a(e)?e.toJSON():e},symbol:B}),this._imageViewer.graphics.add(this._referencePointOnImage))}setMessage(e,t,r){this.displayMessage={key:e,type:t,data:r}}async updateCoverage(){const e=new AbortController,{signal:r}=e;this._updateCoverageController=e;const{_imageViewer:i}=this;if(this._currentImage?.loaded&&i){const{width:e,height:o}=this._currentImage.rasterInfo,{xmin:s,xmax:a,ymin:n,ymax:l}=this._currentImage.fullExtent,h=[[0,0],[Math.min(i.width,e),0],[Math.min(i.width,e),Math.min(i.height,o)],[0,Math.min(i.height,o)]].map((e=>i.toMap(m(e[0],e[1]))));h.forEach((e=>{e.x=s<=e.x&&e.x<=a?e.x:Math.abs(s-e.x)>Math.abs(a-e.x)?a:s,e.y=n<=e.y&&e.y<=l?e.y:Math.abs(n-e.y)>Math.abs(l-e.y)?l:n}));const c=await V(h,{feature:this.getSelectedFeature(),currentCoveragePolygon:this.getSelectedFeaturePolygon(),imageProperties:this._currentImage.rasterInfo,options:{signal:r}});if(c&&!r.aborted){const e=[c.map((e=>[e.x,e.y,1]))];e[0].push(e[0][0]);const r=new Z({hasZ:!0,rings:e,spatialReference:c[0].spatialReference});this.updateCurrentCoveragePolygon(new t({attributes:{imageID:this.selectedFeature?.attributes.objectId},geometry:r,symbol:k,visible:this.currentCoverageVisible}))}}}};e([d()],te.prototype,"activeLayer",null),e([d()],te.prototype,"layer",void 0),e([d()],te.prototype,"shouldShowSelectedImage",void 0),e([d({type:Number})],te.prototype,"brightness",null),e([d({type:Number})],te.prototype,"contrast",null),e([d()],te.prototype,"coverageFrustums",void 0),e([d()],te.prototype,"coveragePolygons",void 0),e([d()],te.prototype,"currentCoverageVisible",void 0),e([d({readOnly:!0})],te.prototype,"currentImageView",null),e([d()],te.prototype,"disabled",void 0),e([d()],te.prototype,"displayMessage",void 0),e([d()],te.prototype,"pointSources",void 0),e([d()],te.prototype,"previousFeatureAngle",void 0),e([d()],te.prototype,"selectedFeature",void 0),e([d()],te.prototype,"selectedFeatureAngle",void 0),e([d()],te.prototype,"selectedPoint",void 0),e([d({readOnly:!0})],te.prototype,"featureCount",null),e([d()],te.prototype,"features",void 0),e([d({readOnly:!0})],te.prototype,"imageGalleryEnabled",null),e([d({readOnly:!0})],te.prototype,"imageLoaded",null),e([d()],te.prototype,"isAdditionalCoverageVisible",void 0),e([d()],te.prototype,"isAdditionalPointSourcesVisible",void 0),e([d({type:Number})],te.prototype,"localPort",void 0),e([d()],te.prototype,"mapImageConversionToolState",void 0),e([d()],te.prototype,"navigatorSelectedFeature",void 0),e([d({readOnly:!0})],te.prototype,"updating",null),e([d()],te.prototype,"referencePoint",null),e([d({type:Number})],te.prototype,"sharpness",null),e([d({readOnly:!0})],te.prototype,"sectorData",null),e([d({readOnly:!0})],te.prototype,"state",null),e([d({readOnly:!0})],te.prototype,"thumbnails",null),e([d({value:null})],te.prototype,"view",null),e([d()],te.prototype,"_additionalCoveragePolygons",void 0),e([d()],te.prototype,"_additionalFeatureGraphics",void 0),e([d()],te.prototype,"_currentCoveragePolygon",void 0),e([d()],te.prototype,"_currentImage",void 0),e([d()],te.prototype,"_fetchFeaturesController",void 0),e([d()],te.prototype,"_imageViewer",void 0),e([d()],te.prototype,"_initialCurrentCoveragePolygon",void 0),e([d()],te.prototype,"_initialCurrentCoverageUpdate",void 0),e([d()],te.prototype,"_overlays",void 0),e([d()],te.prototype,"_plotPolygons",void 0),e([d()],te.prototype,"_initialPreviousCoveragePolygon",void 0),e([d()],te.prototype,"_referencePointOnGround",void 0),e([d()],te.prototype,"_referencePointOnImage",void 0),e([d()],te.prototype,"_selectedFeatureGraphic",void 0),e([d()],te.prototype,"_sectorData",void 0),te=e([y("esri.widgets.OrientedImageryViewer.OrientedImageryViewerViewModel")],te);const re=te;export{re as default};
@@ -0,0 +1,4 @@
1
+ import "../interfaces";
2
+
3
+ import OrientedImageryViewer = __esri.OrientedImageryViewer;
4
+ export default OrientedImageryViewer;
@@ -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{prefersReducedMotion as t}from"../core/a11yUtils.js";import i from"../core/Logger.js";import{watch as s,initial as a}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import l from"../layers/support/rasterDatasets/RasterFactory.js";import c from"./Widget.js";import{getAllArcPath as d}from"./OrientedImageryViewer/arcUtils.js";import{defaultVisibleElements as h,css as g,navigationToolRotationFrom as m,navigationToolRotationTo as v,base as p,root as u,segmentArcs as b,sectorsRadii as y,featureCircleRadius as _,navigation as C,navigationToolDimensionLength as w}from"./OrientedImageryViewer/constants.js";import I from"./OrientedImageryViewer/OrientedImageryViewerViewModel.js";import{loadCalciteComponents as T}from"./support/componentsUtils.js";import"./support/widgetUtils.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{tsx as M}from"./support/jsxFactory.js";let A=class extends c{constructor(e,t){super(e,t),this.isDocked=!1,this.galleryOpened=!1,this.imageEnhancementToolActive=!1,this.navigationToolActive=!1,this.viewModel=new I,this.messagesCommon=null,this.visibleElements={...h},this._navigationTool=null,this._actionItems=new Map,this._galleryController=new AbortController,this._galleryObserver=new IntersectionObserver(this._lazyLoadImage.bind(this)),this._loadImageFromGallery=this._loadImageFromGallery.bind(this),this._registerGalleryItem=this._registerGalleryItem.bind(this),this._unregisterGalleryItem=this._unregisterGalleryItem.bind(this),this._renderViewerContainer=this._renderViewerContainer.bind(this),this._renderViewer=this._renderViewer.bind(this)}initialize(){this.addHandles([s((()=>[this.viewModel?.selectedFeatureAngle,this._navigationTool]),(([e,t])=>{!this.viewModel.updating&&t&&this._updateNavigationTool(t)}),a),s((()=>this.currentCoverageVisible),(e=>this._onCurrentCoverageVisibilityChange(e))),s((()=>this.isAdditionalCoverageVisible),(e=>this._onAdditionalCoverageVisibilityChange(e))),s((()=>this.isAdditionalPointSourcesVisible),(e=>this._onAdditionalCameraLocationsVisibility(e)))])}loadDependencies(){return T({tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js"),action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group.js"),"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel.js"),slider:()=>import("@esri/calcite-components/dist/components/calcite-slider.js")})}destroy(){this._galleryController.abort(),this._galleryObserver.disconnect()}get activeLayer(){return this.viewModel.activeLayer}set activeLayer(e){this.viewModel.activeLayer=e}get currentCoverageVisible(){return this.viewModel.currentCoverageVisible}set currentCoverageVisible(e){this.viewModel.currentCoverageVisible=e}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get imageGalleryEnabled(){return this.viewModel.imageGalleryEnabled}get isAdditionalCoverageVisible(){return this.viewModel.isAdditionalCoverageVisible}set isAdditionalCoverageVisible(e){this.viewModel.isAdditionalCoverageVisible=e}get isAdditionalPointSourcesVisible(){return this.viewModel.isAdditionalPointSourcesVisible}set isAdditionalPointSourcesVisible(e){this.viewModel.isAdditionalPointSourcesVisible=e}get mapImageConversionToolState(){return this.viewModel.mapImageConversionToolState}set mapImageConversionToolState(e){this.viewModel.mapImageConversionToolState=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...h,...e}}async _getThumbnailPixelBlockInternal(e,t){const{level:s,offset:a,size:o}=this._getMaxLevelRasterParameters(e);try{const{pixelBlock:i}=await e.fetchRawPixels(s,a,o,t);return i}catch(r){i.getLogger(this).warn("failed to create canvas with pixeldata",r)}return null}_getMaxLevelRasterParameters(e){const{storageInfo:t,width:i,height:s}=e.rasterInfo,{maximumPyramidLevel:a,pyramidScalingFactor:o}=t,r=o??2;return{level:a,offset:{x:0,y:0},size:{width:Math.ceil(i/r**a),height:Math.ceil(s/r**a)}}}async _getThumbnailPixelBlock(e){const{signal:t}=this._galleryController;try{const i=await l.open({url:e,signal:t});return i?await this._getThumbnailPixelBlockInternal(i,{signal:t}):null}catch(s){i.getLogger(this).error("failed to create thumbnail",s)}return null}_handleBrightnessChange(e){this.viewModel.brightness=e.target.value??0}_handleContrastChange(e){this.viewModel.contrast=e.target.value??0}_handleSharpnessChange(e){this.viewModel.sharpness=e.target.value??0}_lazyLoadImage(e,t){e.forEach((async e=>{if(e.isIntersecting){const i=e.target,s=i.getAttribute("data-src");if(!s)return;const a=await this._getThumbnailPixelBlock(s);if(!a)return;i.width=a.width,i.height=a.height;const o=i.getContext("2d");if(!o)return;const r=o.createImageData(i.width,i.height);r.data.set(a.getAsRGBA()),o.putImageData(r,0,0),t.unobserve(i)}}))}_loadImageFromGallery(e){const{target:t}=e;if(!t)return;const i=t.getAttribute("data-objectid");i&&this.viewModel.selectedFeature?.attributes.objectId!==Number(i)&&(this.viewModel.selectedFeature=this.viewModel.features?.find((({attributes:e})=>e.objectId===Number(i))))}_onAdditionalCoverageVisibilityChange(e){this.viewModel.setAdditionalCoverageVisibility(e)}_onAdditionalCameraLocationsVisibility(e){this.viewModel.setAdditionalCameraLocationsVisibility(e)}_onCurrentCoverageVisibilityChange(e){this.viewModel.setCurrentCoverageVisibility(e)}_registerGalleryItem(e){this._galleryObserver.observe(e)}_resetImageTools(){this.viewModel.sharpness=this.viewModel.brightness=this.viewModel.contrast=0}_resizeNavigationTool(){this._navigationTool?.parentElement?.classList.toggle(g.navigationZoomed)}_storeActionElement(e){this._actionItems.set(e.text,e)}_storeNavigationToolReference(e){this._navigationTool=e}_toggleAdditionalCameraLocations(){this.isAdditionalPointSourcesVisible=!this.isAdditionalPointSourcesVisible}_toggleAdditionalCoverage(){this.isAdditionalCoverageVisible=!this.isAdditionalCoverageVisible}_toggleCurrentCoverage(){this.currentCoverageVisible=!this.currentCoverageVisible}_toggleImageEnhancementToolState(e){e.stopPropagation(),this.imageEnhancementToolActive=!this.imageEnhancementToolActive,this.imageEnhancementToolActive&&(this.galleryOpened&&(this.galleryOpened=!1),this.navigationToolActive&&(this.navigationToolActive=!1))}_toggleImageGallery(e){e.stopPropagation(),this.galleryOpened=!!this.imageGalleryEnabled&&!this.galleryOpened,this.galleryOpened&&(this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1),this.navigationToolActive&&(this.navigationToolActive=!1))}_toggleNavigationTool(){this.navigationToolActive=!this.navigationToolActive,this.navigationToolActive&&(this.galleryOpened&&(this.galleryOpened=!1),this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1))}_toggleMapImageConversionToolState(){this.mapImageConversionToolState=!this.mapImageConversionToolState}_unregisterGalleryItem(e){this._galleryObserver.unobserve(e)}_updateNavigationTool(e){const{previousFeatureAngle:t,selectedFeatureAngle:i}=this.viewModel,s=(i-t+540)%360-180;e.style.setProperty(m,`${t}deg`),e.style.setProperty(v,`${t+s}deg`)}resetImage(){this.viewModel.resetImage()}render(){const{isDocked:e,viewModel:{updating:t}}=this;return M("div",{class:this.classes(p,u)},M("calcite-panel",{bind:this,class:e?g.dock:g.float,heading:this.visibleElements.title?this.messages.title:void 0,loading:t},this.visibleElements.coverageMenu?this._renderMenuBarContainer():null,this._renderBody()))}_renderActionTooltips(){return[...this._actionItems].map((([e,t])=>M("calcite-tooltip",{key:e,referenceElement:t},M("span",null,e))))}_renderBody(){return M("div",{class:g.body},this._renderViewerContainer(),this._renderImageGallery(),this._renderImageEnhancementTools(),this._renderNavigation())}_renderImageEnhancementTools(){const{imageEnhancementToolActive:e,viewModel:{brightness:t,contrast:i,sharpness:s}}=this;return e&&M("calcite-panel",{bind:this,class:g.imageEnhancementWrapper,closable:!0,closed:!e,heading:this.messages.imageEnhancement,key:this.messages.imageEnhancement,onCalcitePanelClose:this._toggleImageEnhancementToolState},M("div",{class:g.imageEnhancementTools},M("div",{class:g.imageEnhancementToolContainer},M("calcite-label",null,this.messages.brightness,M("calcite-slider",{bind:this,labelTicks:!0,max:10,min:-10,ticks:5,value:t,onCalciteSliderInput:this._handleBrightnessChange}))),M("div",{class:g.imageEnhancementToolContainer},M("calcite-label",null,this.messages.contrast,M("calcite-slider",{bind:this,labelTicks:!0,max:10,min:-10,ticks:5,value:i,onCalciteSliderInput:this._handleContrastChange}))),M("div",{class:g.imageEnhancementToolContainer},M("calcite-label",null,this.messages.sharpness,M("calcite-slider",{bind:this,labelTicks:!0,max:1,min:0,step:.1,ticks:.5,value:s,onCalciteSliderInput:this._handleSharpnessChange})))),M("calcite-action",{bind:this,icon:"reset",onclick:this._resetImageTools,slot:"header-actions-end",text:this.messagesCommon.reset}))}_renderImageGallery(){const{container:e,galleryOpened:t,imageGalleryEnabled:i,viewModel:{thumbnails:s}}=this;return i&&t&&(e&&s)?M("calcite-panel",{bind:this,class:g.carousel,closable:!0,closed:!t,heading:this.messages.imageGallery,key:this.messages.imageGallery,onCalcitePanelClose:this._toggleImageGallery},M("div",{class:g.carouselContainer},this._renderThumbnails(s))):null}_renderMapImageConversionTool(){const{mapImageConversionToolState:e,viewModel:{state:t}}=this;return M("calcite-action",{active:e,afterCreate:this._storeActionElement,bind:this,disabled:"image-loaded"!==t,icon:"image-pin",onclick:this._toggleMapImageConversionToolState,text:this.messages.mapImageConversionTool})}_renderNavigation(){const{viewModel:{sectorData:e,features:i,selectedFeature:s,updating:a,navigatorSelectedFeature:o}}=this;if(!i.length||!this.container||!s)return null;let r,n,l,c,h;if(o){const{x:e,y:t,direction:i}=o,[s,a,d,g]=b[i];r=`M ${e} ${t} L ${s} ${a} A ${y[2]} ${y[2]} 0 0 1 ${d} ${g} Z`,n=e,c=t,l=b[i][4],h=b[i][5]}const m=e=>{const t=e.target.dataset?.sector;t&&this.viewModel.handleSectorClick(+t)},v=e=>{const t=e.target.dataset;if(!t)return;const{featureIndexInSector:i,sector:s}=t;i&&s&&this.viewModel.handleFeatureClick({sector:s,featureIndexInSector:+i})},p=e=>{e.removeEventListener("click",v)},u=e?.map((e=>e?.items)).filter(Boolean).flatMap((e=>e?.map((({x:e,y:t,objectID:i,featureIndexInSector:a,sector:o})=>M("circle",{afterRemoved:p,class:this.classes(g.feature,{selected:s.attributes.objectId===i}),cx:e,cy:t,"data-featureIndexInSector":a,"data-sector":o,key:`${g.feature}-${i}`,onclick:v,r:_}))))),I=e=>{e.removeEventListener("click",m)};return this.navigationToolActive&&!a?M("div",{bind:this,class:g.navigationWrapper,key:this.messages.navigationTool},M("svg",{afterCreate:this._storeNavigationToolReference.bind(this),class:t()?C:g.rotateWithAnimation,focusable:"false",height:w,role:"img",width:w,xmlns:"http://www.w3.org/2000/svg"},M("defs",null,M("linearGradient",{gradientUnits:"userSpaceOnUse",id:`${this.id}-coverage-fill`,x1:n,x2:l,y1:c,y2:h},M("stop",{class:g.navigationPathOffset0,offset:0}),M("stop",{class:g.navigationPathOffset1,offset:1}))),M("g",null,M("circle",{class:this.classes(g.sector,g.outerSector),cx:y[3],cy:y[3],onclick:this._resizeNavigationTool.bind(this),r:y[3]}),M("circle",{class:g.sector,cx:y[3],cy:y[3],r:y[2]}),M("circle",{class:g.sector,cx:y[3],cy:y[3],r:y[1]}),M("circle",{class:g.sector,cx:y[3],cy:y[3],r:y[0]}),M("path",{class:g.pointer,d:"M 56.5 6.06217782649107 L 60 0 L 63.5 6.06217782649107 Z",key:`${g.pointer}-west`}),M("path",{class:this.classes(g.pointer,g.north),d:"M 113.93782217350893 56.5 L 120 60 L 113.93782217350893 63.5 Z",key:`${g.pointer}-north`}),M("path",{class:g.pointer,d:"M 56.5 113.93782217350893 L 60 120 L 63.5 113.93782217350893 Z",key:`${g.pointer}-east`}),M("path",{class:g.pointer,d:"M 6.06217782649107 56.5 L 0 60 L 6.06217782649107 63.5 Z",key:`${g.pointer}-south`}),M("path",{class:this.classes(g.sector,g.sectorSeparator),d:"M 23.937554159486076 23.937554159486076 L 96.06244584051393 96.06244584051393 M 23.937554159486076 96.06244584051393 L 96.06244584051393 23.937554159486076",key:g.sectorSeparator}),d([y[2],y[1],y[0]],y[3],y[3]).map(((t,i)=>M("path",{afterRemoved:I,class:this.classes(g.sector,e?.[i]?.length?g.sectorEnabled:g.sectorDisabled),d:t,"data-sector":`${i}`,key:`${g.sector}-${i}`,onclick:m}))),M("path",{class:this.classes(g.sector,g.sectorCross),d:"M 56.4 56.4 L 63.53 63.53 M 63.53 56.4 L 56.4 63.53",key:g.sectorCross}),u,s.attributes.cameraPitch>=5&&r?M("path",{class:g.selectedFeaturePath,d:r,fill:`url(#${this.id}-coverage-fill)`,key:g.selectedFeaturePath}):null))):null}_renderNavigationTool(){const{state:e}=this.viewModel;return M("calcite-action",{active:this.navigationToolActive,afterCreate:this._storeActionElement,bind:this,disabled:"image-loaded"!==e,icon:"explore",onclick:this._toggleNavigationTool,text:this.messages.navigationTool})}_renderImageEnhancementTool(){const{state:e}=this.viewModel;return M("calcite-action",{active:this.imageEnhancementToolActive,afterCreate:this._storeActionElement,bind:this,disabled:"image-loaded"!==e,icon:"sliders-horizontal",onclick:this._toggleImageEnhancementToolState,text:this.messages.imageEnhancement})}_renderMenuBarContainer(){const{currentCoverageVisible:e,isAdditionalCoverageVisible:t,isAdditionalPointSourcesVisible:i,imageGalleryEnabled:s}=this;return M("calcite-action-bar",{expandDisabled:!0,layout:"horizontal",slot:"action-bar"},M("calcite-action-group",{expanded:!0},M("calcite-action",{active:e,afterCreate:this._storeActionElement,bind:this,class:g.currentCoverage,icon:"trapezoid-area",onclick:this._toggleCurrentCoverage,text:this.messages.currentFootprint}),M("calcite-action",{active:t,afterCreate:this._storeActionElement,bind:this,class:g.addCoverage,icon:"trapezoid-area",onclick:this._toggleAdditionalCoverage,text:this.messages.additionalFootprints}),M("calcite-action",{active:i,afterCreate:this._storeActionElement,bind:this,class:g.addExpPoints,icon:"circle-area",onclick:this._toggleAdditionalCameraLocations,text:this.messages.additionalCameraLocations})),M("calcite-action-group",{layout:"horizontal"},this.visibleElements.mapImageConversionTool?this._renderMapImageConversionTool():null,this.visibleElements.navigationTool?this._renderNavigationTool():null,this.visibleElements.imageEnhancement?this._renderImageEnhancementTool():null),M("calcite-action-group",null,M("calcite-action",{active:this.galleryOpened,afterCreate:this._storeActionElement,bind:this,disabled:!s,icon:"images",onclick:this._toggleImageGallery,text:this.messages.imageGallery,textEnabled:!0})),this._renderActionTooltips())}_renderMessageBox(){const{displayMessage:e}=this.viewModel;return e?M("span",{class:g.messageBox},this.messages[e.key],e?.data):null}_renderThumbnails(e){const{selectedFeature:t}=this.viewModel;return t?M("div",{class:g.carouselContent},e.items.map((({url:e,objectId:i},s)=>M("div",{class:`${g.carouselItemWrapper}${t.attributes.objectId===i?"--selected":""}`,key:`${g.carouselItemWrapper}-${s}`},M("canvas",{afterCreate:this._registerGalleryItem,afterRemoved:this._unregisterGalleryItem,alt:`thumbnail-${i}`,class:g.carouselItem,"data-objectid":`${i}`,"data-src":e,onclick:this._loadImageFromGallery}))))):null}_renderViewerContainer(){return M("div",{class:g.viewerContainer},this._renderViewer(),this._renderMessageBox())}_renderViewer(){const{displayMessage:e}=this.viewModel;return M("div",{afterCreate:this.viewModel.loadViewer,bind:this,class:`${g.viewer}${e?"--hide":""}`})}};e([o()],A.prototype,"activeLayer",null),e([o()],A.prototype,"currentCoverageVisible",null),e([o()],A.prototype,"disabled",null),e([o()],A.prototype,"isDocked",void 0),e([o()],A.prototype,"galleryOpened",void 0),e([o()],A.prototype,"imageEnhancementToolActive",void 0),e([o()],A.prototype,"imageGalleryEnabled",null),e([o()],A.prototype,"isAdditionalCoverageVisible",null),e([o()],A.prototype,"isAdditionalPointSourcesVisible",null),e([o()],A.prototype,"mapImageConversionToolState",null),e([o()],A.prototype,"navigationToolActive",void 0),e([o({type:I})],A.prototype,"viewModel",void 0),e([o(),f("esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer")],A.prototype,"messages",void 0),e([o(),f("esri/t9n/common")],A.prototype,"messagesCommon",void 0),e([o()],A.prototype,"view",null),e([o()],A.prototype,"visibleElements",void 0),e([r("visibleElements")],A.prototype,"castVisibleElements",null),e([o()],A.prototype,"_navigationTool",void 0),A=e([n("esri.widgets.OrientedImageryViewer")],A);const E=A;export{E as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{prefersReducedMotion as t}from"../core/a11yUtils.js";import{deprecatedProperty as i}from"../core/deprecate.js";import s from"../core/Logger.js";import{watch as a,initial as o}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import c from"../layers/support/rasterDatasets/RasterFactory.js";import d from"./Widget.js";import{getAllArcPath as h}from"./OrientedImageryViewer/arcUtils.js";import{defaultVisibleElements as g,css as m,navigationToolRotationFrom as v,navigationToolRotationTo as p,base as u,root as b,segmentArcs as y,sectorsRadii as _,featureCircleRadius as C,navigation as w,navigationToolDimensionLength as I}from"./OrientedImageryViewer/constants.js";import f from"./OrientedImageryViewer/OrientedImageryViewerViewModel.js";import{loadCalciteComponents as M}from"./support/componentsUtils.js";import"./support/widgetUtils.js";import{messageBundle as T}from"./support/decorators/messageBundle.js";import{tsx as A}from"./support/jsxFactory.js";let E=class extends d{constructor(e,t){super(e,t),this.dockEnabled=!1,this.galleryOpened=!1,this.imageEnhancementToolActive=!1,this.navigationToolActive=!1,this.viewModel=new f,this.messagesCommon=null,this.visibleElements={...g},this._navigationTool=null,this._actionItems=new Map,this._galleryController=new AbortController,this._galleryObserver=new IntersectionObserver(this._lazyLoadImage.bind(this)),this._loadImageFromGallery=this._loadImageFromGallery.bind(this),this._registerGalleryItem=this._registerGalleryItem.bind(this),this._unregisterGalleryItem=this._unregisterGalleryItem.bind(this),this._renderViewerContainer=this._renderViewerContainer.bind(this),this._renderViewer=this._renderViewer.bind(this)}initialize(){this.addHandles([a((()=>[this.viewModel?.selectedFeatureAngle,this._navigationTool]),(([e,t])=>{!this.viewModel.updating&&t&&this._updateNavigationTool(t)}),o),a((()=>this.currentCoverageVisible),(e=>this._onCurrentCoverageVisibilityChange(e))),a((()=>this.isAdditionalCoverageVisible),(e=>this._onAdditionalCoverageVisibilityChange(e))),a((()=>this.isAdditionalPointSourcesVisible),(e=>this._onAdditionalCameraLocationsVisibility(e)))])}loadDependencies(){return M({tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js"),action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group.js"),"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),panel:()=>import("@esri/calcite-components/dist/components/calcite-panel.js"),slider:()=>import("@esri/calcite-components/dist/components/calcite-slider.js")})}destroy(){this._galleryController.abort(),this._galleryObserver.disconnect()}get activeLayer(){return i(s.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer}set activeLayer(e){i(s.getLogger(this),"activeLayer",{replacement:"layer"}),this.layer=e}get currentCoverageVisible(){return this.viewModel.currentCoverageVisible}set currentCoverageVisible(e){this.viewModel.currentCoverageVisible=e}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get isDocked(){return i(s.getLogger(this),"isDocked",{replacement:"dockEnabled"}),this.dockEnabled}set isDocked(e){i(s.getLogger(this),"isDocked",{replacement:"dockEnabled"}),this.dockEnabled=e}get imageGalleryEnabled(){return this.viewModel.imageGalleryEnabled}get isAdditionalCoverageVisible(){return this.viewModel.isAdditionalCoverageVisible}set isAdditionalCoverageVisible(e){this.viewModel.isAdditionalCoverageVisible=e}get isAdditionalPointSourcesVisible(){return this.viewModel.isAdditionalPointSourcesVisible}set isAdditionalPointSourcesVisible(e){this.viewModel.isAdditionalPointSourcesVisible=e}get mapImageConversionToolState(){return this.viewModel.mapImageConversionToolState}set mapImageConversionToolState(e){this.viewModel.mapImageConversionToolState=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get referencePoint(){return this.viewModel.referencePoint??null}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...g,...e}}async _getThumbnailPixelBlockInternal(e,t){const{level:i,offset:a,size:o}=this._getMaxLevelRasterParameters(e);try{const{pixelBlock:s}=await e.fetchRawPixels(i,a,o,t);return s}catch(r){s.getLogger(this).warn("failed to create canvas with pixeldata",r)}return null}_getMaxLevelRasterParameters(e){const{storageInfo:t,width:i,height:s}=e.rasterInfo,{maximumPyramidLevel:a,pyramidScalingFactor:o}=t,r=o??2;return{level:a,offset:{x:0,y:0},size:{width:Math.ceil(i/r**a),height:Math.ceil(s/r**a)}}}async _getThumbnailPixelBlock(e){const{signal:t}=this._galleryController;try{const i=await c.open({url:e,signal:t});return i?await this._getThumbnailPixelBlockInternal(i,{signal:t}):null}catch(i){s.getLogger(this).error("failed to create thumbnail",i)}return null}_handleBrightnessChange(e){this.viewModel.brightness=e.target.value??0}_handleContrastChange(e){this.viewModel.contrast=e.target.value??0}_handleSharpnessChange(e){this.viewModel.sharpness=e.target.value??0}_lazyLoadImage(e,t){e.forEach((async e=>{if(e.isIntersecting){const i=e.target,s=i.getAttribute("data-src");if(!s)return;const a=await this._getThumbnailPixelBlock(s);if(!a)return;i.width=a.width,i.height=a.height;const o=i.getContext("2d");if(!o)return;const r=o.createImageData(i.width,i.height);r.data.set(a.getAsRGBA()),o.putImageData(r,0,0),t.unobserve(i)}}))}_loadImageFromGallery(e){const{target:t}=e;if(!t)return;const i=t.getAttribute("data-objectid");i&&this.viewModel.selectedFeature?.attributes.objectId!==Number(i)&&(this.viewModel.selectedFeature=this.viewModel.features?.find((({attributes:e})=>e.objectId===Number(i))))}_onAdditionalCoverageVisibilityChange(e){this.viewModel.setAdditionalCoverageVisibility(e)}_onAdditionalCameraLocationsVisibility(e){this.viewModel.setAdditionalCameraLocationsVisibility(e)}_onCurrentCoverageVisibilityChange(e){this.viewModel.setCurrentCoverageVisibility(e)}_registerGalleryItem(e){this._galleryObserver.observe(e)}_resetImageTools(){this.viewModel.sharpness=this.viewModel.brightness=this.viewModel.contrast=0}_resizeNavigationTool(){this._navigationTool?.parentElement?.classList.toggle(m.navigationZoomed)}_storeActionElement(e){this._actionItems.set(e.text,e)}_storeNavigationToolReference(e){this._navigationTool=e}_toggleAdditionalCameraLocations(){this.isAdditionalPointSourcesVisible=!this.isAdditionalPointSourcesVisible}_toggleAdditionalCoverage(){this.isAdditionalCoverageVisible=!this.isAdditionalCoverageVisible}_toggleCurrentCoverage(){this.currentCoverageVisible=!this.currentCoverageVisible}_toggleImageEnhancementToolState(e){e.stopPropagation(),this.imageEnhancementToolActive=!this.imageEnhancementToolActive,this.imageEnhancementToolActive&&(this.galleryOpened&&(this.galleryOpened=!1),this.navigationToolActive&&(this.navigationToolActive=!1))}_toggleImageGallery(e){e.stopPropagation(),this.galleryOpened=!!this.imageGalleryEnabled&&!this.galleryOpened,this.galleryOpened&&(this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1),this.navigationToolActive&&(this.navigationToolActive=!1))}_toggleNavigationTool(){this.navigationToolActive=!this.navigationToolActive,this.navigationToolActive&&(this.galleryOpened&&(this.galleryOpened=!1),this.imageEnhancementToolActive&&(this.imageEnhancementToolActive=!1))}_toggleMapImageConversionToolState(){this.mapImageConversionToolState=!this.mapImageConversionToolState}_unregisterGalleryItem(e){this._galleryObserver.unobserve(e)}_updateNavigationTool(e){const{previousFeatureAngle:t,selectedFeatureAngle:i}=this.viewModel,s=(i-t+540)%360-180;e.style.setProperty(v,`${t}deg`),e.style.setProperty(p,`${t+s}deg`)}loadBestImage(e){this.viewModel.loadBestImage(e)}async plotMapPoint(e){return this.viewModel.plotMapPoint(e)}resetImage(){this.viewModel.resetImage()}render(){const{dockEnabled:e,viewModel:{updating:t}}=this;return A("div",{class:this.classes(u,b)},A("calcite-panel",{bind:this,class:e?m.dock:m.float,heading:this.visibleElements.title?this.messages.title:void 0,loading:t},this.visibleElements.coverageMenu?this._renderMenuBarContainer():null,this._renderBody()))}_renderActionTooltips(){return[...this._actionItems].map((([e,t])=>A("calcite-tooltip",{key:e,referenceElement:t},A("span",null,e))))}_renderBody(){return A("div",{class:m.body},this._renderViewerContainer(),this._renderImageGallery(),this._renderImageEnhancementTools(),this._renderNavigation())}_renderImageEnhancementTools(){const{imageEnhancementToolActive:e,viewModel:{brightness:t,contrast:i,sharpness:s}}=this;return e&&A("calcite-panel",{bind:this,class:m.imageEnhancementWrapper,closable:!0,closed:!e,heading:this.messages.imageEnhancement,key:this.messages.imageEnhancement,onCalcitePanelClose:this._toggleImageEnhancementToolState},A("div",{class:m.imageEnhancementTools},A("div",{class:m.imageEnhancementToolContainer},A("calcite-label",null,this.messages.brightness,A("calcite-slider",{bind:this,labelTicks:!0,max:10,min:-10,ticks:5,value:t,onCalciteSliderInput:this._handleBrightnessChange}))),A("div",{class:m.imageEnhancementToolContainer},A("calcite-label",null,this.messages.contrast,A("calcite-slider",{bind:this,labelTicks:!0,max:10,min:-10,ticks:5,value:i,onCalciteSliderInput:this._handleContrastChange}))),A("div",{class:m.imageEnhancementToolContainer},A("calcite-label",null,this.messages.sharpness,A("calcite-slider",{bind:this,labelTicks:!0,max:1,min:0,step:.1,ticks:.5,value:s,onCalciteSliderInput:this._handleSharpnessChange})))),A("calcite-action",{bind:this,icon:"reset",onclick:this._resetImageTools,slot:"header-actions-end",text:this.messagesCommon.reset}))}_renderImageGallery(){const{container:e,galleryOpened:t,imageGalleryEnabled:i,viewModel:{thumbnails:s}}=this;return i&&t&&(e&&s)?A("calcite-panel",{bind:this,class:m.carousel,closable:!0,closed:!t,heading:this.messages.imageGallery,key:this.messages.imageGallery,onCalcitePanelClose:this._toggleImageGallery},A("div",{class:m.carouselContainer},this._renderThumbnails(s))):null}_renderMapImageConversionTool(){const{mapImageConversionToolState:e,viewModel:{imageLoaded:t}}=this;return A("calcite-action",{active:e,afterCreate:this._storeActionElement,bind:this,disabled:!t,icon:"image-pin",onclick:this._toggleMapImageConversionToolState,text:this.messages.mapImageConversionTool})}_renderNavigation(){const{viewModel:{sectorData:e,features:i,selectedFeature:s,updating:a,navigatorSelectedFeature:o}}=this;if(!i.length||!this.container||!s)return null;let r,n,l,c,d;if(o){const{x:e,y:t,direction:i}=o,[s,a,h,g]=y[i];r=`M ${e} ${t} L ${s} ${a} A ${_[2]} ${_[2]} 0 0 1 ${h} ${g} Z`,n=e,c=t,l=y[i][4],d=y[i][5]}const g=e=>{const t=e.target.dataset?.sector;t&&this.viewModel.handleSectorClick(+t)},v=e=>{const t=e.target.dataset;if(!t)return;const{featureIndexInSector:i,sector:s}=t;i&&s&&this.viewModel.handleFeatureClick({sector:s,featureIndexInSector:+i})},p=e=>{e.removeEventListener("click",v)},u=e?.map((e=>e?.items)).filter(Boolean).flatMap((e=>e?.map((({x:e,y:t,objectID:i,featureIndexInSector:a,sector:o})=>A("circle",{afterRemoved:p,class:this.classes(m.feature,{selected:s.attributes.objectId===i}),cx:e,cy:t,"data-featureIndexInSector":a,"data-sector":o,key:`${m.feature}-${i}`,onclick:v,r:C}))))),b=e=>{e.removeEventListener("click",g)};return this.navigationToolActive&&!a?A("div",{bind:this,class:m.navigationWrapper,key:this.messages.navigationTool},A("svg",{afterCreate:this._storeNavigationToolReference.bind(this),class:t()?w:m.rotateWithAnimation,focusable:"false",height:I,role:"img",width:I,xmlns:"http://www.w3.org/2000/svg"},A("defs",null,A("linearGradient",{gradientUnits:"userSpaceOnUse",id:`${this.id}-coverage-fill`,x1:n,x2:l,y1:c,y2:d},A("stop",{class:m.navigationPathOffset0,offset:0}),A("stop",{class:m.navigationPathOffset1,offset:1}))),A("g",null,A("circle",{class:this.classes(m.sector,m.outerSector),cx:_[3],cy:_[3],onclick:this._resizeNavigationTool.bind(this),r:_[3]}),A("circle",{class:m.sector,cx:_[3],cy:_[3],r:_[2]}),A("circle",{class:m.sector,cx:_[3],cy:_[3],r:_[1]}),A("circle",{class:m.sector,cx:_[3],cy:_[3],r:_[0]}),A("path",{class:m.pointer,d:"M 56.5 6.06217782649107 L 60 0 L 63.5 6.06217782649107 Z",key:`${m.pointer}-west`}),A("path",{class:this.classes(m.pointer,m.north),d:"M 113.93782217350893 56.5 L 120 60 L 113.93782217350893 63.5 Z",key:`${m.pointer}-north`}),A("path",{class:m.pointer,d:"M 56.5 113.93782217350893 L 60 120 L 63.5 113.93782217350893 Z",key:`${m.pointer}-east`}),A("path",{class:m.pointer,d:"M 6.06217782649107 56.5 L 0 60 L 6.06217782649107 63.5 Z",key:`${m.pointer}-south`}),A("path",{class:this.classes(m.sector,m.sectorSeparator),d:"M 23.937554159486076 23.937554159486076 L 96.06244584051393 96.06244584051393 M 23.937554159486076 96.06244584051393 L 96.06244584051393 23.937554159486076",key:m.sectorSeparator}),h([_[2],_[1],_[0]],_[3],_[3]).map(((t,i)=>A("path",{afterRemoved:b,class:this.classes(m.sector,e?.[i]?.length?m.sectorEnabled:m.sectorDisabled),d:t,"data-sector":`${i}`,key:`${m.sector}-${i}`,onclick:g}))),A("path",{class:this.classes(m.sector,m.sectorCross),d:"M 56.4 56.4 L 63.53 63.53 M 63.53 56.4 L 56.4 63.53",key:m.sectorCross}),u,s.attributes.cameraPitch>=5&&r?A("path",{class:m.selectedFeaturePath,d:r,fill:`url(#${this.id}-coverage-fill)`,key:m.selectedFeaturePath}):null))):null}_renderNavigationTool(){const{imageLoaded:e}=this.viewModel;return A("calcite-action",{active:this.navigationToolActive,afterCreate:this._storeActionElement,bind:this,disabled:!e,icon:"explore",onclick:this._toggleNavigationTool,text:this.messages.navigationTool})}_renderImageEnhancementTool(){const{imageLoaded:e}=this.viewModel;return A("calcite-action",{active:this.imageEnhancementToolActive,afterCreate:this._storeActionElement,bind:this,disabled:!e,icon:"sliders-horizontal",onclick:this._toggleImageEnhancementToolState,text:this.messages.imageEnhancement})}_renderMenuBarContainer(){const{currentCoverageVisible:e,isAdditionalCoverageVisible:t,isAdditionalPointSourcesVisible:i,imageGalleryEnabled:s}=this;return A("calcite-action-bar",{expandDisabled:!0,layout:"horizontal",slot:"action-bar"},A("calcite-action-group",{expanded:!0},A("calcite-action",{active:e,afterCreate:this._storeActionElement,bind:this,class:m.currentCoverage,icon:"trapezoid-area",onclick:this._toggleCurrentCoverage,text:this.messages.currentFootprint}),A("calcite-action",{active:t,afterCreate:this._storeActionElement,bind:this,class:m.addCoverage,icon:"trapezoid-area",onclick:this._toggleAdditionalCoverage,text:this.messages.additionalFootprints}),A("calcite-action",{active:i,afterCreate:this._storeActionElement,bind:this,class:m.addExpPoints,icon:"circle-area",onclick:this._toggleAdditionalCameraLocations,text:this.messages.additionalCameraLocations})),A("calcite-action-group",{layout:"horizontal"},this.visibleElements.mapImageConversionTool?this._renderMapImageConversionTool():null,this.visibleElements.navigationTool?this._renderNavigationTool():null,this.visibleElements.imageEnhancement?this._renderImageEnhancementTool():null),A("calcite-action-group",null,A("calcite-action",{active:this.galleryOpened,afterCreate:this._storeActionElement,bind:this,disabled:!s,icon:"images",onclick:this._toggleImageGallery,text:this.messages.imageGallery,textEnabled:!0})),this._renderActionTooltips())}_renderMessageBox(){const{displayMessage:e}=this.viewModel;return e?A("span",{class:m.messageBox},this.messages[e.key],e?.data):null}_renderThumbnails(e){const{selectedFeature:t}=this.viewModel;return t?A("div",{class:m.carouselContent},e.items.map((({url:e,objectId:i},s)=>A("div",{class:`${m.carouselItemWrapper}${t.attributes.objectId===i?"--selected":""}`,key:`${m.carouselItemWrapper}-${s}`},A("canvas",{afterCreate:this._registerGalleryItem,afterRemoved:this._unregisterGalleryItem,alt:`thumbnail-${i}`,class:m.carouselItem,"data-objectid":`${i}`,"data-src":e,onclick:this._loadImageFromGallery}))))):null}_renderViewerContainer(){return A("div",{class:m.viewerContainer},this._renderViewer(),this._renderMessageBox())}_renderViewer(){const{displayMessage:e}=this.viewModel;return A("div",{afterCreate:this.viewModel.loadViewer,bind:this,class:`${m.viewer}${e?"--hide":""}`})}};e([r()],E.prototype,"activeLayer",null),e([r()],E.prototype,"currentCoverageVisible",null),e([r()],E.prototype,"disabled",null),e([r()],E.prototype,"dockEnabled",void 0),e([r()],E.prototype,"isDocked",null),e([r()],E.prototype,"galleryOpened",void 0),e([r()],E.prototype,"imageEnhancementToolActive",void 0),e([r({readOnly:!0})],E.prototype,"imageGalleryEnabled",null),e([r()],E.prototype,"isAdditionalCoverageVisible",null),e([r()],E.prototype,"isAdditionalPointSourcesVisible",null),e([r()],E.prototype,"mapImageConversionToolState",null),e([r()],E.prototype,"layer",null),e([r()],E.prototype,"navigationToolActive",void 0),e([r({type:f})],E.prototype,"viewModel",void 0),e([r(),T("esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer")],E.prototype,"messages",void 0),e([r(),T("esri/t9n/common")],E.prototype,"messagesCommon",void 0),e([r()],E.prototype,"referencePoint",null),e([r()],E.prototype,"view",null),e([r()],E.prototype,"visibleElements",void 0),e([n("visibleElements")],E.prototype,"castVisibleElements",null),e([r()],E.prototype,"_navigationTool",void 0),E=e([l("esri.widgets.OrientedImageryViewer")],E);const k=E;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 e from"../../core/Error.js";import t from"../../core/Logger.js";import{throwIfNotAbortError as r}from"../../core/promiseUtils.js";import{zoomToFeature as n,zoomToClusteredFeatures as o,browseClusteredFeatures as i,removeSelectedFeature as a}from"./actions.js";const c="esri.widgets.Popup.PopupViewModel",s=t.getLogger(c),u=t=>{const{event:c,view:s,viewModel:u}=t,{action:l}=c;if(!l)return Promise.reject(new e("trigger-action:missing-arguments","Event has no action"));const{disabled:d,id:g}=l;if(!g)return Promise.reject(new e("trigger-action:invalid-action","action.id is missing"));if(d)return Promise.reject(new e("trigger-action:invalid-action","Action is disabled"));if(g===n.id)return w(u).catch(r);if(g===o.id)return f(u);if(g===i.id)return u.browseClusterEnabled=!u.browseClusterEnabled,u.featureMenuOpen=u.browseClusterEnabled,Promise.resolve();if(g===a.id){u.visible=!1;const{selectedFeature:t}=u;if(!t)return Promise.reject(new e(`trigger-action:${a.id}`,"selectedFeature is required",{selectedFeature:t}));const{sourceLayer:r}=t;return r?r.remove(t):s?.graphics.remove(t),Promise.resolve()}return Promise.resolve()};function l(e){const{selectedFeature:t,location:r,view:n}=e;if(!n)return null;if("3d"===n.type)return t??r??null;const o=e.selectedFeature?.geometry;return o||r}function d(e){return!!e&&e.isAggregate&&"cluster"===e.sourceLayer?.featureReduction?.type}async function g(e,t){if("3d"!==t?.type||!e||"esri.Graphic"!==e.declaredClass)return!0;const r=t.getViewForGraphic(e);if(r&&"whenGraphicBounds"in r){let t=null;try{t=await r.whenGraphicBounds(e,{useViewElevation:!0})}catch(n){}return!t||!t.boundingBox||t.boundingBox[0]===t.boundingBox[3]&&t.boundingBox[1]===t.boundingBox[4]&&t.boundingBox[2]===t.boundingBox[5]}return!0}async function w(t){const{location:r,selectedFeature:o,view:i,zoomFactor:a}=t,c=l(t);if(!i||!c){const t=new e("zoom-to:invalid-target-or-view","Cannot zoom to location without a target and view.",{target:c,view:i});throw s.error(t),t}const u=i.scale/a,d=t.selectedFeature?.geometry,w=d??r,f=null!=w&&"point"===w.type&&await g(o,i);n.active=!0,n.disabled=!0;try{await t.zoomTo({target:{target:c,scale:f?u:void 0}})}catch(m){const t=new e("zoom-to:invalid-graphic","Could not zoom to the location of the graphic.",{graphic:o});s.error(t)}finally{n.active=!1,n.disabled=!1,t.zoomToLocation=null,f&&(t.location=w)}}async function f(t){const{selectedFeature:r,view:n}=t;if("2d"!==n?.type){const t=new e("zoomToCluster:invalid-view","View must be 2d MapView.",{view:n});throw s.error(t),t}if(!r||!d(r)){const t=new e("zoomToCluster:invalid-selectedFeature","Selected feature must represent an aggregate/cluster graphic.",{selectedFeature:r});throw s.error(t),t}const[i,a]=await v(n,r);o.active=!0,o.disabled=!0;const{extent:c}=await i.queryExtent(a);await t.zoomTo({target:c}),o.active=!1,o.disabled=!1}async function m(e){const{view:t,selectedFeature:r}=e;if(!t||!r)return;const[n,o]=await v(t,r),{extent:i}=await n.queryExtent(o);e.selectedClusterBoundaryFeature.geometry=i,t.graphics.add(e.selectedClusterBoundaryFeature)}async function p(e){const{selectedFeature:t,view:r}=e;if(!r||!t)return;const[n,o]=await v(r,t);i.active=!0,i.disabled=!0;const{features:a}=await n.queryFeatures(o);i.active=!1,i.disabled=!1,i.value=!0,e?.open({features:[t].concat(a),featureMenuOpen:!0})}async function v(e,t){const r=await e.whenLayerView(t.sourceLayer),n=r.createQuery(),o=t.getObjectId();return n.aggregateIds=null!=o?[o]:[],[r,n]}function y(e){i.value=!1;const t=e.features.filter((e=>d(e)));t.length&&(e.features=t)}function h(e){if(null==e)return null;switch(e.type){case"point":return e;case"extent":return e.center;case"polygon":return e.centroid;case"multipoint":case"polyline":return e.extent?.center;default:return null}}export{p as browseAggregateFeatures,m as displayClusterExtent,h as getPointFromGeometry,l as getSelectedTarget,d as isClusterFeature,y as removeClusteredFeaturesForBrowsing,u as triggerAction,f as zoomToClusterExtent,w as zoomToLocation};
5
+ import e from"../../core/Error.js";import t from"../../core/Logger.js";import{throwIfNotAbortError as r}from"../../core/promiseUtils.js";import{zoomToFeature as n,zoomToClusteredFeatures as o,browseClusteredFeatures as i,removeSelectedFeature as a}from"./actions.js";const c="esri.widgets.Popup.PopupViewModel",s=t.getLogger(c),u=t=>{const{event:c,view:s,viewModel:u}=t,{action:l}=c;if(!l)return Promise.reject(new e("trigger-action:missing-arguments","Event has no action"));const{disabled:d,id:g}=l;if(!g)return Promise.reject(new e("trigger-action:invalid-action","action.id is missing"));if(d)return Promise.reject(new e("trigger-action:invalid-action","Action is disabled"));if(g===n.id)return w(u).catch(r);if(g===o.id)return f(u);if(g===i.id)return u.browseClusterEnabled=!u.browseClusterEnabled,u.featureMenuOpen=u.browseClusterEnabled,Promise.resolve();if(g===a.id){u.visible=!1;const{selectedFeature:t}=u;if(!t)return Promise.reject(new e(`trigger-action:${a.id}`,"selectedFeature is required",{selectedFeature:t}));const{sourceLayer:r}=t;return r?r.remove(t):s?.graphics.remove(t),Promise.resolve()}return Promise.resolve()};function l(e){const{selectedFeature:t,location:r,view:n}=e;return n?t??r??null:null}function d(e){return!!e&&e.isAggregate&&"cluster"===e.sourceLayer?.featureReduction?.type}async function g(e,t){if("3d"!==t?.type||!e||"esri.Graphic"!==e.declaredClass)return!0;const r=t.getViewForGraphic(e);if(r&&"whenGraphicBounds"in r){let t=null;try{t=await r.whenGraphicBounds(e,{useViewElevation:!0})}catch(n){}return!t||!t.boundingBox||t.boundingBox[0]===t.boundingBox[3]&&t.boundingBox[1]===t.boundingBox[4]&&t.boundingBox[2]===t.boundingBox[5]}return!0}async function w(t){const{location:r,selectedFeature:o,view:i,zoomFactor:a}=t,c=l(t);if(!i||!c){const t=new e("zoom-to:invalid-target-or-view","Cannot zoom to location without a target and view.",{target:c,view:i});throw s.error(t),t}const u=i.scale/a,d=t.selectedFeature?.geometry,w=d??r,f=null!=w&&"point"===w.type&&await g(o,i);n.active=!0,n.disabled=!0;try{await t.zoomTo({target:{target:c,scale:f?u:void 0}})}catch(m){const t=new e("zoom-to:invalid-graphic","Could not zoom to the location of the graphic.",{graphic:o});s.error(t)}finally{n.active=!1,n.disabled=!1,t.zoomToLocation=null,f&&(t.location=w)}}async function f(t){const{selectedFeature:r,view:n}=t;if("2d"!==n?.type){const t=new e("zoomToCluster:invalid-view","View must be 2d MapView.",{view:n});throw s.error(t),t}if(!r||!d(r)){const t=new e("zoomToCluster:invalid-selectedFeature","Selected feature must represent an aggregate/cluster graphic.",{selectedFeature:r});throw s.error(t),t}const[i,a]=await p(n,r);o.active=!0,o.disabled=!0;const{extent:c}=await i.queryExtent(a);await t.zoomTo({target:c}),o.active=!1,o.disabled=!1}async function m(e){const{view:t,selectedFeature:r}=e;if(!t||!r)return;const[n,o]=await p(t,r),{extent:i}=await n.queryExtent(o);e.selectedClusterBoundaryFeature.geometry=i,t.graphics.add(e.selectedClusterBoundaryFeature)}async function v(e){const{selectedFeature:t,view:r}=e;if(!r||!t)return;const[n,o]=await p(r,t);i.active=!0,i.disabled=!0;const{features:a}=await n.queryFeatures(o);i.active=!1,i.disabled=!1,i.value=!0,e?.open({features:[t].concat(a),featureMenuOpen:!0})}async function p(e,t){const r=await e.whenLayerView(t.sourceLayer),n=r.createQuery(),o=t.getObjectId();return n.aggregateIds=null!=o?[o]:[],[r,n]}function y(e){i.value=!1;const t=e.features.filter((e=>d(e)));t.length&&(e.features=t)}function h(e){if(null==e)return null;switch(e.type){case"point":return e;case"extent":return e.center;case"polygon":return e.centroid;case"multipoint":case"polyline":return e.extent?.center;default:return null}}export{v as browseAggregateFeatures,m as displayClusterExtent,h as getPointFromGeometry,l as getSelectedTarget,d as isClusterFeature,y as removeClusteredFeaturesForBrowsing,u as triggerAction,f as zoomToClusterExtent,w as zoomToLocation};