@arcgis/core 4.27.0-next.20230510 → 4.27.0-next.20230512

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 (557) hide show
  1. package/Basemap.js +1 -1
  2. package/Ground.js +1 -1
  3. package/LinkChart.js +5 -0
  4. package/WebMap.js +1 -1
  5. package/WebScene.js +1 -1
  6. package/analysis/AreaMeasurementAnalysis.js +1 -1
  7. package/assets/esri/core/workers/RemoteClient.js +1 -1
  8. package/assets/esri/core/workers/chunks/009026614cae60e9505c.js +1 -0
  9. package/assets/esri/core/workers/chunks/{c420ae8a852b9a82afc6.js → 04b9737f338e17776ad8.js} +1 -1
  10. package/assets/esri/core/workers/chunks/08e1453cc3689a0094a6.js +1 -0
  11. package/assets/esri/core/workers/chunks/0adcc644ab424469a62d.js +1 -0
  12. package/assets/esri/core/workers/chunks/0e947d6d045866f909ec.js +1 -0
  13. package/assets/esri/core/workers/chunks/1488b3d48232844b8bb4.js +1 -0
  14. package/assets/esri/core/workers/chunks/{960404b939493682de26.js → 14d97dc471ff449bb12d.js} +1 -1
  15. package/assets/esri/core/workers/chunks/15dda462b979e90b58fe.js +1 -0
  16. package/assets/esri/core/workers/chunks/1766371def0b2f953ac3.js +1 -0
  17. package/assets/esri/core/workers/chunks/270471cd31609e303496.js +1 -0
  18. package/assets/esri/core/workers/chunks/27081162d73cdded68ff.js +1 -0
  19. package/assets/esri/core/workers/chunks/{091a9f36e5e9e9dc1d9c.js → 28766917781273b7c7ad.js} +1 -1
  20. package/assets/esri/core/workers/chunks/375108906a5b6b0a4857.js +1 -0
  21. package/assets/esri/core/workers/chunks/431d54867bc3bb848fbb.js +1 -0
  22. package/assets/esri/core/workers/chunks/43c4ab6a2651c6df03cd.js +1 -0
  23. package/assets/esri/core/workers/chunks/43fcc9a3b5a46c3dfd0d.js +1 -0
  24. package/assets/esri/core/workers/chunks/4474512927623c7bb16c.js +1 -0
  25. package/assets/esri/core/workers/chunks/47f721daa1652124c066.js +1 -0
  26. package/assets/esri/core/workers/chunks/{9db6306f32e9adae6e71.js → 497615051f35805fa04d.js} +1 -1
  27. package/assets/esri/core/workers/chunks/4a12ca8d6756cedfb74c.js +1 -0
  28. package/assets/esri/core/workers/chunks/4f2e49bbbf667b68d8a7.js +1 -0
  29. package/assets/esri/core/workers/chunks/504e929b686570ee858d.js +1 -0
  30. package/assets/esri/core/workers/chunks/5270fedc8c7951807eb4.js +1 -0
  31. package/assets/esri/core/workers/chunks/544dce9710638d126763.js +1 -0
  32. package/assets/esri/core/workers/chunks/56fc7924b4fb30239c19.js +1 -0
  33. package/assets/esri/core/workers/chunks/5ae63d31468222841d62.js +1 -0
  34. package/assets/esri/core/workers/chunks/5bbe1495fa421394d12e.js +1 -0
  35. package/assets/esri/core/workers/chunks/{5bf51ad3b910ab7f8889.js → 6164a9c654c38f9cb64e.js} +1 -1
  36. package/assets/esri/core/workers/chunks/64b8f65e2ef6cbf08380.js +1 -0
  37. package/assets/esri/core/workers/chunks/662e479c370c11bcb8a7.js +1 -0
  38. package/assets/esri/core/workers/chunks/673d6e284d5e85a107ca.js +1 -0
  39. package/assets/esri/core/workers/chunks/691afc55690cc95a9581.js +1 -0
  40. package/assets/esri/core/workers/chunks/{17e57499ce801e1ec9d5.js → 699b822e9d771a2c8d88.js} +1 -1
  41. package/assets/esri/core/workers/chunks/6b0e5728b2dbd23b0834.js +1 -0
  42. package/assets/esri/core/workers/chunks/6d2a448fe0dc6ebdbd6d.js +1 -0
  43. package/assets/esri/core/workers/chunks/6dd99db0adce09ac9794.js +1 -0
  44. package/assets/esri/core/workers/chunks/6e7178de0b2c3d2f7e6b.js +1 -0
  45. package/assets/esri/core/workers/chunks/749fafd2481d37b5e2a0.js +1 -0
  46. package/assets/esri/core/workers/chunks/78aede1e114deefacb54.js +1 -0
  47. package/assets/esri/core/workers/chunks/7cec069db0598431829e.js +1 -0
  48. package/assets/esri/core/workers/chunks/{a45586a103dbfaa8b76d.js → 7e9b173a71beeba8b263.js} +1 -1
  49. package/assets/esri/core/workers/chunks/84f897e5910752e7aebc.js +1 -0
  50. package/assets/esri/core/workers/chunks/858961981aa2a57d37db.js +1 -0
  51. package/assets/esri/core/workers/chunks/85c6ce93aa41e6b65997.js +1 -0
  52. package/assets/esri/core/workers/chunks/89c3eb3fcdd80d0a134e.js +1 -0
  53. package/assets/esri/core/workers/chunks/8bb3b10a777ae19f57f9.js +1 -0
  54. package/assets/esri/core/workers/chunks/91971a76a4ae0474a878.js +1 -0
  55. package/assets/esri/core/workers/chunks/91f1759042bd9c03719d.js +1 -0
  56. package/assets/esri/core/workers/chunks/94c1a2d31b3253cf6062.js +1 -0
  57. package/assets/esri/core/workers/chunks/{98a85832751cbb6b0d09.js → 96c027ffad89524b0820.js} +1 -1
  58. package/assets/esri/core/workers/chunks/97dbfe04136aa5e4cd4d.js +1 -0
  59. package/assets/esri/core/workers/chunks/9ed9e2ad50816a4f937a.js +1 -0
  60. package/assets/esri/core/workers/chunks/a12d1d3addeae0771c00.js +1 -0
  61. package/assets/esri/core/workers/chunks/a3822a97701890c12d63.js +1 -0
  62. package/assets/esri/core/workers/chunks/a9e9297267614c4c4f3b.js +1 -0
  63. package/assets/esri/core/workers/chunks/b1976202b918a64357ac.js +1 -0
  64. package/assets/esri/core/workers/chunks/b3013a5a39d038b2d748.js +1 -0
  65. package/assets/esri/core/workers/chunks/b636581516f2e7342d29.js +1 -0
  66. package/assets/esri/core/workers/chunks/ba43e85d345393f47778.js +1 -0
  67. package/assets/esri/core/workers/chunks/ba519dda35d14056693b.js +1 -0
  68. package/assets/esri/core/workers/chunks/ba6024465308c248170b.js +1 -0
  69. package/assets/esri/core/workers/chunks/bead656f8da33e023b2b.js +1 -0
  70. package/assets/esri/core/workers/chunks/c2fb0f3179b9ff294b68.js +1 -0
  71. package/assets/esri/core/workers/chunks/c3bf44146fddfe8990f7.js +1 -0
  72. package/assets/esri/core/workers/chunks/cb40a71a713722f25f21.js +1 -0
  73. package/assets/esri/core/workers/chunks/cd7581a578feeb4415b0.js +1 -0
  74. package/assets/esri/core/workers/chunks/ceb59b3c52d644e7cde8.js +1 -0
  75. package/assets/esri/core/workers/chunks/cf425d255519cb8b024b.js +1 -0
  76. package/assets/esri/core/workers/chunks/e15b5d7e46a834eacc57.js +1 -0
  77. package/assets/esri/core/workers/chunks/e46cd2a6da8d5cba1db6.js +1 -0
  78. package/assets/esri/core/workers/chunks/e581127e3a175a63a392.js +1 -0
  79. package/assets/esri/core/workers/chunks/e5bbd4cc5edbf7ab3624.js +1 -0
  80. package/assets/esri/core/workers/chunks/e72150a38b202b68be2b.js +1 -0
  81. package/assets/esri/core/workers/chunks/{2f71d74162a2c08b8a0c.js → ea9e25eaaada36253da3.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{329e9a5a76d53aab532f.js → f17a7024dd49abeaa4f3.js} +1 -1
  83. package/assets/esri/core/workers/chunks/f3462020ee3b9c6f3822.js +1 -0
  84. package/assets/esri/core/workers/chunks/f4933025edecdc1aae76.js +1 -0
  85. package/assets/esri/core/workers/chunks/f907e91ab556df5ae38a.js +1 -0
  86. package/assets/esri/core/workers/chunks/f924732902703233655e.js +1 -0
  87. package/assets/esri/themes/base/widgets/_Editor.scss +1 -0
  88. package/assets/esri/themes/dark/main.css +1 -1
  89. package/assets/esri/themes/light/main.css +1 -1
  90. package/assets/esri/themes/light/view.css +1 -1
  91. package/assets/esri/widgets/Editor/t9n/Editor.json +1 -1
  92. package/assets/esri/widgets/Editor/t9n/Editor_en.json +1 -1
  93. package/assets/esri/widgets/Feature/t9n/Feature.json +1 -1
  94. package/assets/esri/widgets/Feature/t9n/Feature_ar.json +1 -1
  95. package/assets/esri/widgets/Feature/t9n/Feature_bg.json +1 -1
  96. package/assets/esri/widgets/Feature/t9n/Feature_bs.json +1 -1
  97. package/assets/esri/widgets/Feature/t9n/Feature_ca.json +1 -1
  98. package/assets/esri/widgets/Feature/t9n/Feature_cs.json +1 -1
  99. package/assets/esri/widgets/Feature/t9n/Feature_da.json +1 -1
  100. package/assets/esri/widgets/Feature/t9n/Feature_de.json +1 -1
  101. package/assets/esri/widgets/Feature/t9n/Feature_el.json +1 -1
  102. package/assets/esri/widgets/Feature/t9n/Feature_en.json +1 -1
  103. package/assets/esri/widgets/Feature/t9n/Feature_es.json +1 -1
  104. package/assets/esri/widgets/Feature/t9n/Feature_et.json +1 -1
  105. package/assets/esri/widgets/Feature/t9n/Feature_fi.json +1 -1
  106. package/assets/esri/widgets/Feature/t9n/Feature_fr.json +1 -1
  107. package/assets/esri/widgets/Feature/t9n/Feature_he.json +1 -1
  108. package/assets/esri/widgets/Feature/t9n/Feature_hr.json +1 -1
  109. package/assets/esri/widgets/Feature/t9n/Feature_hu.json +1 -1
  110. package/assets/esri/widgets/Feature/t9n/Feature_id.json +1 -1
  111. package/assets/esri/widgets/Feature/t9n/Feature_it.json +1 -1
  112. package/assets/esri/widgets/Feature/t9n/Feature_ja.json +1 -1
  113. package/assets/esri/widgets/Feature/t9n/Feature_ko.json +1 -1
  114. package/assets/esri/widgets/Feature/t9n/Feature_lt.json +1 -1
  115. package/assets/esri/widgets/Feature/t9n/Feature_lv.json +1 -1
  116. package/assets/esri/widgets/Feature/t9n/Feature_nb.json +1 -1
  117. package/assets/esri/widgets/Feature/t9n/Feature_nl.json +1 -1
  118. package/assets/esri/widgets/Feature/t9n/Feature_pl.json +1 -1
  119. package/assets/esri/widgets/Feature/t9n/Feature_pt-BR.json +1 -1
  120. package/assets/esri/widgets/Feature/t9n/Feature_pt-PT.json +1 -1
  121. package/assets/esri/widgets/Feature/t9n/Feature_ro.json +1 -1
  122. package/assets/esri/widgets/Feature/t9n/Feature_ru.json +1 -1
  123. package/assets/esri/widgets/Feature/t9n/Feature_sk.json +1 -1
  124. package/assets/esri/widgets/Feature/t9n/Feature_sl.json +1 -1
  125. package/assets/esri/widgets/Feature/t9n/Feature_sr.json +1 -1
  126. package/assets/esri/widgets/Feature/t9n/Feature_sv.json +1 -1
  127. package/assets/esri/widgets/Feature/t9n/Feature_th.json +1 -1
  128. package/assets/esri/widgets/Feature/t9n/Feature_tr.json +1 -1
  129. package/assets/esri/widgets/Feature/t9n/Feature_uk.json +1 -1
  130. package/assets/esri/widgets/Feature/t9n/Feature_vi.json +1 -1
  131. package/assets/esri/widgets/Feature/t9n/Feature_zh-CN.json +1 -1
  132. package/assets/esri/widgets/Feature/t9n/Feature_zh-HK.json +1 -1
  133. package/assets/esri/widgets/Feature/t9n/Feature_zh-TW.json +1 -1
  134. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ar.json +1 -1
  135. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bg.json +1 -1
  136. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bs.json +1 -1
  137. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ca.json +1 -1
  138. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_cs.json +1 -1
  139. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_da.json +1 -1
  140. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_de.json +1 -1
  141. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_el.json +1 -1
  142. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_es.json +1 -1
  143. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_et.json +1 -1
  144. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fi.json +1 -1
  145. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fr.json +1 -1
  146. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_he.json +1 -1
  147. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hr.json +1 -1
  148. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hu.json +1 -1
  149. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_id.json +1 -1
  150. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_it.json +1 -1
  151. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ja.json +1 -1
  152. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ko.json +1 -1
  153. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lt.json +1 -1
  154. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lv.json +1 -1
  155. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nb.json +1 -1
  156. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nl.json +1 -1
  157. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pl.json +1 -1
  158. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-BR.json +1 -1
  159. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-PT.json +1 -1
  160. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ro.json +1 -1
  161. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ru.json +1 -1
  162. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sk.json +1 -1
  163. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sl.json +1 -1
  164. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sr.json +1 -1
  165. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sv.json +1 -1
  166. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_th.json +1 -1
  167. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_tr.json +1 -1
  168. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_uk.json +1 -1
  169. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_vi.json +1 -1
  170. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-CN.json +1 -1
  171. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-HK.json +1 -1
  172. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-TW.json +1 -1
  173. package/assets/esri/widgets/Features/t9n/Features.json +1 -1
  174. package/assets/esri/widgets/Features/t9n/Features_ar.json +1 -1
  175. package/assets/esri/widgets/Features/t9n/Features_bg.json +1 -1
  176. package/assets/esri/widgets/Features/t9n/Features_bs.json +1 -1
  177. package/assets/esri/widgets/Features/t9n/Features_ca.json +1 -1
  178. package/assets/esri/widgets/Features/t9n/Features_cs.json +1 -1
  179. package/assets/esri/widgets/Features/t9n/Features_da.json +1 -1
  180. package/assets/esri/widgets/Features/t9n/Features_de.json +1 -1
  181. package/assets/esri/widgets/Features/t9n/Features_el.json +1 -1
  182. package/assets/esri/widgets/Features/t9n/Features_en.json +1 -1
  183. package/assets/esri/widgets/Features/t9n/Features_es.json +1 -1
  184. package/assets/esri/widgets/Features/t9n/Features_et.json +1 -1
  185. package/assets/esri/widgets/Features/t9n/Features_fi.json +1 -1
  186. package/assets/esri/widgets/Features/t9n/Features_fr.json +1 -1
  187. package/assets/esri/widgets/Features/t9n/Features_he.json +1 -1
  188. package/assets/esri/widgets/Features/t9n/Features_hr.json +1 -1
  189. package/assets/esri/widgets/Features/t9n/Features_hu.json +1 -1
  190. package/assets/esri/widgets/Features/t9n/Features_id.json +1 -1
  191. package/assets/esri/widgets/Features/t9n/Features_it.json +1 -1
  192. package/assets/esri/widgets/Features/t9n/Features_ja.json +1 -1
  193. package/assets/esri/widgets/Features/t9n/Features_ko.json +1 -1
  194. package/assets/esri/widgets/Features/t9n/Features_lt.json +1 -1
  195. package/assets/esri/widgets/Features/t9n/Features_lv.json +1 -1
  196. package/assets/esri/widgets/Features/t9n/Features_nb.json +1 -1
  197. package/assets/esri/widgets/Features/t9n/Features_nl.json +1 -1
  198. package/assets/esri/widgets/Features/t9n/Features_pl.json +1 -1
  199. package/assets/esri/widgets/Features/t9n/Features_pt-BR.json +1 -1
  200. package/assets/esri/widgets/Features/t9n/Features_pt-PT.json +1 -1
  201. package/assets/esri/widgets/Features/t9n/Features_ro.json +1 -1
  202. package/assets/esri/widgets/Features/t9n/Features_ru.json +1 -1
  203. package/assets/esri/widgets/Features/t9n/Features_sk.json +1 -1
  204. package/assets/esri/widgets/Features/t9n/Features_sl.json +1 -1
  205. package/assets/esri/widgets/Features/t9n/Features_sr.json +1 -1
  206. package/assets/esri/widgets/Features/t9n/Features_sv.json +1 -1
  207. package/assets/esri/widgets/Features/t9n/Features_th.json +1 -1
  208. package/assets/esri/widgets/Features/t9n/Features_tr.json +1 -1
  209. package/assets/esri/widgets/Features/t9n/Features_uk.json +1 -1
  210. package/assets/esri/widgets/Features/t9n/Features_vi.json +1 -1
  211. package/assets/esri/widgets/Features/t9n/Features_zh-CN.json +1 -1
  212. package/assets/esri/widgets/Features/t9n/Features_zh-HK.json +1 -1
  213. package/assets/esri/widgets/Features/t9n/Features_zh-TW.json +1 -1
  214. package/assets/esri/widgets/Popup/t9n/Popup.json +1 -1
  215. package/assets/esri/widgets/Popup/t9n/Popup_ar.json +1 -1
  216. package/assets/esri/widgets/Popup/t9n/Popup_bg.json +1 -1
  217. package/assets/esri/widgets/Popup/t9n/Popup_bs.json +1 -1
  218. package/assets/esri/widgets/Popup/t9n/Popup_ca.json +1 -1
  219. package/assets/esri/widgets/Popup/t9n/Popup_cs.json +1 -1
  220. package/assets/esri/widgets/Popup/t9n/Popup_da.json +1 -1
  221. package/assets/esri/widgets/Popup/t9n/Popup_de.json +1 -1
  222. package/assets/esri/widgets/Popup/t9n/Popup_el.json +1 -1
  223. package/assets/esri/widgets/Popup/t9n/Popup_en.json +1 -1
  224. package/assets/esri/widgets/Popup/t9n/Popup_es.json +1 -1
  225. package/assets/esri/widgets/Popup/t9n/Popup_et.json +1 -1
  226. package/assets/esri/widgets/Popup/t9n/Popup_fi.json +1 -1
  227. package/assets/esri/widgets/Popup/t9n/Popup_fr.json +1 -1
  228. package/assets/esri/widgets/Popup/t9n/Popup_he.json +1 -1
  229. package/assets/esri/widgets/Popup/t9n/Popup_hr.json +1 -1
  230. package/assets/esri/widgets/Popup/t9n/Popup_hu.json +1 -1
  231. package/assets/esri/widgets/Popup/t9n/Popup_id.json +1 -1
  232. package/assets/esri/widgets/Popup/t9n/Popup_it.json +1 -1
  233. package/assets/esri/widgets/Popup/t9n/Popup_ja.json +1 -1
  234. package/assets/esri/widgets/Popup/t9n/Popup_ko.json +1 -1
  235. package/assets/esri/widgets/Popup/t9n/Popup_lt.json +1 -1
  236. package/assets/esri/widgets/Popup/t9n/Popup_lv.json +1 -1
  237. package/assets/esri/widgets/Popup/t9n/Popup_nb.json +1 -1
  238. package/assets/esri/widgets/Popup/t9n/Popup_nl.json +1 -1
  239. package/assets/esri/widgets/Popup/t9n/Popup_pl.json +1 -1
  240. package/assets/esri/widgets/Popup/t9n/Popup_pt-BR.json +1 -1
  241. package/assets/esri/widgets/Popup/t9n/Popup_pt-PT.json +1 -1
  242. package/assets/esri/widgets/Popup/t9n/Popup_ro.json +1 -1
  243. package/assets/esri/widgets/Popup/t9n/Popup_ru.json +1 -1
  244. package/assets/esri/widgets/Popup/t9n/Popup_sk.json +1 -1
  245. package/assets/esri/widgets/Popup/t9n/Popup_sl.json +1 -1
  246. package/assets/esri/widgets/Popup/t9n/Popup_sr.json +1 -1
  247. package/assets/esri/widgets/Popup/t9n/Popup_sv.json +1 -1
  248. package/assets/esri/widgets/Popup/t9n/Popup_th.json +1 -1
  249. package/assets/esri/widgets/Popup/t9n/Popup_tr.json +1 -1
  250. package/assets/esri/widgets/Popup/t9n/Popup_uk.json +1 -1
  251. package/assets/esri/widgets/Popup/t9n/Popup_vi.json +1 -1
  252. package/assets/esri/widgets/Popup/t9n/Popup_zh-CN.json +1 -1
  253. package/assets/esri/widgets/Popup/t9n/Popup_zh-HK.json +1 -1
  254. package/assets/esri/widgets/Popup/t9n/Popup_zh-TW.json +1 -1
  255. package/core/AsyncUpdate.js +1 -1
  256. package/core/Handles.js +1 -1
  257. package/core/Logger.js +1 -1
  258. package/core/accessorSupport/PropertyOrigin.js +1 -1
  259. package/core/accessorSupport/extensions/serializableProperty.js +1 -1
  260. package/core/accessorSupport/read.js +1 -1
  261. package/core/handleUtils.js +1 -1
  262. package/geometry/GeometryCursor.js +1 -1
  263. package/geometry/Mesh.js +1 -1
  264. package/geometry/Point.js +1 -1
  265. package/geometry/geometryCursorCollectUtils.js +1 -1
  266. package/geometry/support/MeshMaterial.js +1 -1
  267. package/geometry/support/MeshMaterialMetallicRoughness.js +1 -1
  268. package/geometry/support/MeshTextureTransform.d.ts +4 -0
  269. package/geometry/support/MeshTextureTransform.js +5 -0
  270. package/geometry/support/boundsUtils.js +1 -1
  271. package/geometry/support/centroid.js +1 -1
  272. package/geometry/support/coordsUtils.js +1 -1
  273. package/geometry/support/labelPoint.js +1 -1
  274. package/geometry/support/meshUtils/exporters/gltf/gltf.js +1 -1
  275. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  276. package/interfaces.d.ts +133 -6
  277. package/layers/BuildingSceneLayer.js +1 -1
  278. package/layers/GroupLayer.js +1 -1
  279. package/layers/ImageryTileLayer.js +1 -1
  280. package/layers/KnowledgeGraphLayer.js +1 -1
  281. package/layers/Layer.js +1 -1
  282. package/layers/LinkChartLayer.js +1 -1
  283. package/layers/MediaLayer.js +1 -1
  284. package/layers/PointCloudLayer.js +1 -1
  285. package/layers/SceneLayer.js +1 -1
  286. package/layers/StreamLayer.js +1 -1
  287. package/layers/effects/EffectView.js +1 -1
  288. package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
  289. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  290. package/layers/graphics/sources/connections/GeoEventConnection.js +1 -1
  291. package/layers/graphics/sources/connections/WebSocketConnection.js +1 -1
  292. package/layers/mixins/ArcGISImageService.js +1 -1
  293. package/layers/mixins/ArcGISService.js +1 -1
  294. package/layers/mixins/FeatureLayerBase.js +1 -1
  295. package/layers/mixins/PortalLayer.js +1 -1
  296. package/layers/mixins/RefreshableLayer.js +1 -1
  297. package/layers/mixins/operationalLayers.js +1 -1
  298. package/layers/support/BuildingSummaryStatistics.js +1 -1
  299. package/layers/support/ControlPointsGeoreference.js +1 -1
  300. package/layers/support/GeoreferenceBase.js +1 -1
  301. package/layers/support/LocalMediaElementSource.js +1 -1
  302. package/layers/support/MosaicRule.js +1 -1
  303. package/layers/support/PixelBlock.js +1 -1
  304. package/layers/support/SceneFilter.js +1 -1
  305. package/layers/support/Sublayer.js +1 -1
  306. package/layers/support/VideoElement.js +1 -1
  307. package/layers/support/editableLayers.js +1 -1
  308. package/layers/support/layersCreator.js +1 -1
  309. package/layers/support/lazyLayerLoader.js +1 -1
  310. package/layers/support/rasterDatasets/BaseRaster.js +1 -1
  311. package/layers/support/rasterDatasets/WCSRaster.js +1 -1
  312. package/layers/video/VideoEngine.js +1 -1
  313. package/linkchart/InitialViewProperties.js +5 -0
  314. package/networks/Network.js +1 -1
  315. package/package.json +1 -1
  316. package/portal/PortalItemResource.js +1 -1
  317. package/renderers/ClassBreaksRenderer.js +1 -1
  318. package/renderers/support/AttributeColorInfo.js +1 -1
  319. package/renderers/support/RasterSymbolizer.js +1 -1
  320. package/renderers/visualVariables/SizeVariable.js +1 -1
  321. package/renderers/visualVariables/VisualVariable.js +1 -1
  322. package/renderers/visualVariables/VisualVariableFactory.js +1 -1
  323. package/rest/networks/validateNetworkTopology.js +1 -1
  324. package/rest/support/BaseImageMeasureParameters.js +1 -1
  325. package/rest/support/ImageHistogramParameters.js +1 -1
  326. package/rest/support/ImageIdentifyParameters.js +1 -1
  327. package/rest/support/meshFeatureSet.js +1 -1
  328. package/smartMapping/renderers/heatmap.js +1 -1
  329. package/smartMapping/renderers/pieChart.js +1 -1
  330. package/smartMapping/renderers/support/utils.js +1 -1
  331. package/smartMapping/renderers/univariateColorSize.js +1 -1
  332. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  333. package/support/AnalysesCollection.js +1 -1
  334. package/support/LayersMixin.js +1 -1
  335. package/support/TablesMixin.js +1 -1
  336. package/support/basemapUtils.js +1 -1
  337. package/support/revision.js +1 -1
  338. package/symbols/Symbol3D.js +1 -1
  339. package/symbols/WebStyleSymbol.js +1 -1
  340. package/symbols/cim/CIMCursor.js +1 -1
  341. package/symbols/cim/CIMEffects.js +1 -1
  342. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  343. package/symbols/cim/CIMSymbolHelper.js +1 -1
  344. package/symbols/cim/CurveHelper.js +1 -1
  345. package/symbols/cim/GeometryWalker.js +1 -1
  346. package/symbols/cim/effects/CIMEffectHelper.js +1 -1
  347. package/symbols/cim/effects/EffectAddControlPoints.js +1 -1
  348. package/symbols/cim/effects/EffectArrow.js +1 -1
  349. package/symbols/cim/effects/EffectBuffer.js +1 -1
  350. package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
  351. package/symbols/cim/effects/EffectCut.js +1 -1
  352. package/symbols/cim/effects/EffectDashes.js +1 -1
  353. package/symbols/cim/effects/EffectDonut.js +1 -1
  354. package/symbols/cim/effects/EffectJog.js +1 -1
  355. package/symbols/cim/effects/EffectMove.js +1 -1
  356. package/symbols/cim/effects/EffectOffset.js +1 -1
  357. package/symbols/cim/effects/EffectReverse.js +1 -1
  358. package/symbols/cim/effects/EffectRotate.js +1 -1
  359. package/symbols/cim/effects/EffectScale.js +1 -1
  360. package/symbols/cim/effects/EffectWave.js +1 -1
  361. package/symbols/cim/placements/CIMMarkerPlacementHelper.js +1 -1
  362. package/symbols/cim/placements/PlacementAlongLineSameSize.js +1 -1
  363. package/symbols/cim/placements/PlacementAtExtremities.js +1 -1
  364. package/symbols/cim/placements/PlacementAtRatioPositions.js +1 -1
  365. package/symbols/cim/placements/PlacementOnLine.js +1 -1
  366. package/symbols/cim/placements/PlacementOnVertices.js +1 -1
  367. package/symbols/cim/placements/PlacementPolygonCenter.js +1 -1
  368. package/views/2d/constraints/GeometryConstraint.js +1 -1
  369. package/views/2d/engine/flow/FlowStrategy.js +1 -1
  370. package/views/2d/engine/vectorTiles/SchemaHelper.js +1 -1
  371. package/views/2d/engine/vectorTiles/VectorTileRendererHelper3D.js +1 -1
  372. package/views/2d/engine/webgl/mesh/templates/WGLBaseFillTemplate.js +1 -1
  373. package/views/2d/engine/webgl/mesh/templates/WGLBaseLineTemplate.js +1 -1
  374. package/views/2d/engine/webgl/mesh/templates/WGLBaseMarkerTemplate.js +1 -1
  375. package/views/2d/engine/webgl/mesh/templates/WGLBaseTextTemplate.js +1 -1
  376. package/views/2d/engine/webgl/mesh/templates/WGLFillTemplate.js +1 -1
  377. package/views/2d/engine/webgl/mesh/templates/WGLLineTemplate.js +1 -1
  378. package/views/2d/engine/webgl/mesh/templates/WGLMarkerTemplate.js +1 -1
  379. package/views/2d/engine/webgl/mesh/templates/WGLMeshTemplate.js +1 -1
  380. package/views/2d/engine/webgl/mesh/templates/segmentUtils.js +1 -1
  381. package/views/2d/engine/webgl/mesh/templates/templateUtils.js +1 -1
  382. package/views/2d/engine/webgl/painter/RenderPass.js +1 -1
  383. package/views/2d/layers/BaseDynamicLayerView2D.js +1 -1
  384. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  385. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  386. package/views/2d/layers/MapImageLayerView2D.js +1 -1
  387. package/views/2d/layers/MediaLayerView2D.js +1 -1
  388. package/views/2d/layers/TileLayerView2D.js +1 -1
  389. package/views/2d/layers/VectorTileLayerView2D.js +1 -1
  390. package/views/2d/layers/WMSLayerView2D.js +1 -1
  391. package/views/2d/layers/WMTSLayerView2D.js +1 -1
  392. package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
  393. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  394. package/views/2d/layers/features/tileRenderers/support/WGLFeatureView.js +1 -1
  395. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  396. package/views/2d/layers/imagery/ImageryVFStrategy.js +1 -1
  397. package/views/2d/layers/imagery/ImageryView2D.js +1 -1
  398. package/views/3d/analysis/AnalysisViewManager3D.js +1 -1
  399. package/views/3d/analysis/Dimension/DimensionController.js +1 -1
  400. package/views/3d/analysis/DimensionAnalysisView3D.js +1 -1
  401. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  402. package/views/3d/environment/Stars.js +1 -1
  403. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  404. package/views/3d/layers/BuildingSceneLayerView3D.js +1 -1
  405. package/views/3d/layers/DynamicLayerView3D.js +1 -1
  406. package/views/3d/layers/I3SMeshView3D.js +1 -1
  407. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  408. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  409. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  410. package/views/3d/layers/SceneLayerView3D.js +1 -1
  411. package/views/3d/layers/VectorTileLayerView3D.js +1 -1
  412. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  413. package/views/3d/layers/WMTSLayerView3D.js +1 -1
  414. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  415. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  416. package/views/3d/layers/graphics/Graphics3DMeshObject3DGraphicLayer.js +1 -1
  417. package/views/3d/layers/graphics/Labeler.js +1 -1
  418. package/views/3d/layers/graphics/MeshFastUpdateProcessor.js +5 -0
  419. package/views/3d/layers/i3s/I3SElevationProvider.js +1 -1
  420. package/views/3d/layers/support/DefinitionExpressionSceneLayerView.js +1 -1
  421. package/views/3d/layers/support/FeatureTileTree3D.js +1 -1
  422. package/views/3d/layers/support/FeatureVisibilityFilter.js +1 -1
  423. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  424. package/views/3d/state/Constraints.js +1 -1
  425. package/views/3d/state/ViewStateManager.js +1 -1
  426. package/views/3d/support/MemoryController.js +1 -1
  427. package/views/3d/terrain/OverlayRenderTarget.js +1 -1
  428. package/views/3d/terrain/TerrainSurface.js +1 -1
  429. package/views/3d/terrain/TileCompositor.js +1 -1
  430. package/views/3d/webgl-engine/lib/AnimationTimeStep.js +1 -1
  431. package/views/3d/webgl-engine/lib/ObjectAndLayerIdRenderHelper.js +1 -1
  432. package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
  433. package/views/3d/webgl-engine/lib/SSAOHelper.js +1 -1
  434. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  435. package/views/3d/webgl-engine/lib/TextureRepository.js +1 -1
  436. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  437. package/views/3d/webgl-engine/materials/internal/WaterTextureRepository.js +1 -1
  438. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  439. package/views/DOMContainer.js +1 -1
  440. package/views/LayerViewManager.js +1 -1
  441. package/views/MapView.js +1 -1
  442. package/views/PopupView.js +1 -1
  443. package/views/SceneView.js +1 -1
  444. package/views/ToolViewManager.js +1 -1
  445. package/views/View.js +1 -1
  446. package/views/draw/support/Reshape.js +1 -1
  447. package/views/input/InputManager.js +1 -1
  448. package/views/interactive/InteractiveToolBase.js +1 -1
  449. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiledFetcher.js +1 -1
  450. package/views/layers/LayerView.js +1 -1
  451. package/views/layers/RefreshableLayerView.js +1 -1
  452. package/views/layers/support/popupUtils.js +1 -1
  453. package/views/support/GroundViewElevationSampler.js +1 -1
  454. package/webmap/Bookmark.js +1 -1
  455. package/webmap/initialViewPropertiesUtils.js +5 -0
  456. package/webscene/Slide.js +1 -1
  457. package/widgets/BasemapGallery/support/PortalBasemapsSource.js +1 -1
  458. package/widgets/BuildingExplorer/BuildingExplorerViewModel.js +1 -1
  459. package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
  460. package/widgets/CoordinateConversion.js +1 -1
  461. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  462. package/widgets/Editor/CreateWorkflow.js +1 -1
  463. package/widgets/Editor/EditorViewModel.js +1 -1
  464. package/widgets/Editor/Edits.js +1 -1
  465. package/widgets/Editor/UpdateFeatureWorkflow.js +5 -0
  466. package/widgets/Editor/UpdateFeatureWorkflowData.js +1 -1
  467. package/widgets/Editor/UpdateRecordWorkflow.js +5 -0
  468. package/widgets/Editor/UpdateRecordWorkflowData.js +5 -0
  469. package/widgets/Editor/UpdateWorkflow.js +1 -1
  470. package/widgets/Editor/Upload.js +1 -1
  471. package/widgets/Editor/Workflow.js +1 -1
  472. package/widgets/Editor/modelUploadUtils.js +1 -1
  473. package/widgets/Editor/workflowUtils.js +1 -1
  474. package/widgets/Editor.js +1 -1
  475. package/widgets/ElevationProfile/ElevationProfileViewModel.js +1 -1
  476. package/widgets/Feature/FeatureRelationship.js +1 -1
  477. package/widgets/Feature/FeatureViewModel.js +1 -1
  478. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  479. package/widgets/Fullscreen/FullscreenViewModel.js +1 -1
  480. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  481. package/widgets/Popup/PopupViewModel.js +1 -1
  482. package/widgets/Popup.js +1 -1
  483. package/widgets/Print.js +1 -1
  484. package/widgets/Sketch/SketchViewModel.js +1 -1
  485. package/widgets/Slider/SliderViewModel.js +1 -1
  486. package/widgets/TimeSlider/TimeSliderViewModel.js +1 -1
  487. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  488. package/widgets/ValuePicker/ValuePickerViewModel.js +1 -1
  489. package/widgets/Widget.js +1 -1
  490. package/widgets/support/AnalysisViewModel.js +1 -1
  491. package/widgets/support/DatePicker.js +1 -1
  492. package/widgets/support/InteractiveToolViewModel.js +1 -1
  493. package/assets/esri/core/workers/chunks/090e02948640e31336b2.js +0 -1
  494. package/assets/esri/core/workers/chunks/17268cffc901b38838e2.js +0 -1
  495. package/assets/esri/core/workers/chunks/1d8f078a112b4eebe853.js +0 -1
  496. package/assets/esri/core/workers/chunks/1febd6a0e273ecb263f9.js +0 -1
  497. package/assets/esri/core/workers/chunks/2512fd48d231b392b023.js +0 -1
  498. package/assets/esri/core/workers/chunks/2653729023156eb4d084.js +0 -1
  499. package/assets/esri/core/workers/chunks/2accddbe7f6967200022.js +0 -1
  500. package/assets/esri/core/workers/chunks/2b31ae1f3e51df1e7dd2.js +0 -1
  501. package/assets/esri/core/workers/chunks/2dbbc986f339742cdb43.js +0 -1
  502. package/assets/esri/core/workers/chunks/2fabd3121297c54dd8cb.js +0 -1
  503. package/assets/esri/core/workers/chunks/321cabbf7a9b963ef912.js +0 -1
  504. package/assets/esri/core/workers/chunks/366dabaac9841f476e5a.js +0 -1
  505. package/assets/esri/core/workers/chunks/377a63f7e7d168419c8d.js +0 -1
  506. package/assets/esri/core/workers/chunks/4350cf5e02c66ec66520.js +0 -1
  507. package/assets/esri/core/workers/chunks/495d6ff5dea55c7e8f94.js +0 -1
  508. package/assets/esri/core/workers/chunks/496ffb00d60d72c26f58.js +0 -1
  509. package/assets/esri/core/workers/chunks/49e6e805c8c7cb71561c.js +0 -1
  510. package/assets/esri/core/workers/chunks/4cfd702c317dd76b3af6.js +0 -1
  511. package/assets/esri/core/workers/chunks/50c52dd31acf223bfb77.js +0 -1
  512. package/assets/esri/core/workers/chunks/59caf5d2b99ef99ceb60.js +0 -1
  513. package/assets/esri/core/workers/chunks/5bd470ff65d44840349e.js +0 -1
  514. package/assets/esri/core/workers/chunks/6188dbbc29710e388a88.js +0 -1
  515. package/assets/esri/core/workers/chunks/65cdf16070370f9fcf20.js +0 -1
  516. package/assets/esri/core/workers/chunks/696f652f3f620e38cccf.js +0 -1
  517. package/assets/esri/core/workers/chunks/709d01c7512424348e74.js +0 -1
  518. package/assets/esri/core/workers/chunks/7a46cb0a194fbc35ff63.js +0 -1
  519. package/assets/esri/core/workers/chunks/7acef6bf6878fe4246c8.js +0 -1
  520. package/assets/esri/core/workers/chunks/7adf4753744534e26360.js +0 -1
  521. package/assets/esri/core/workers/chunks/7e194ad371cb027d290e.js +0 -1
  522. package/assets/esri/core/workers/chunks/7e84f8bec3c1e8dc308c.js +0 -1
  523. package/assets/esri/core/workers/chunks/801d1f3b6b33bf918a17.js +0 -1
  524. package/assets/esri/core/workers/chunks/8074e3b9a6c714f33fc4.js +0 -1
  525. package/assets/esri/core/workers/chunks/80e18a32d9e1a0631b39.js +0 -1
  526. package/assets/esri/core/workers/chunks/8c59eb36ccd391074f20.js +0 -1
  527. package/assets/esri/core/workers/chunks/8e86c17f695ccc1240e0.js +0 -1
  528. package/assets/esri/core/workers/chunks/8f95e3e9efa351e2c8b3.js +0 -1
  529. package/assets/esri/core/workers/chunks/8fc8040d6bcaff6228d9.js +0 -1
  530. package/assets/esri/core/workers/chunks/90598e3774e6638b1a01.js +0 -1
  531. package/assets/esri/core/workers/chunks/906d05065e0bacd4b31e.js +0 -1
  532. package/assets/esri/core/workers/chunks/932791c76053068e1604.js +0 -1
  533. package/assets/esri/core/workers/chunks/93ae83cd275580e83f90.js +0 -1
  534. package/assets/esri/core/workers/chunks/a31d482e222565e71a87.js +0 -1
  535. package/assets/esri/core/workers/chunks/a5add51bd9028324de59.js +0 -1
  536. package/assets/esri/core/workers/chunks/a90192ac7d91c0140a4f.js +0 -1
  537. package/assets/esri/core/workers/chunks/abede19ab6f9cb03c251.js +0 -1
  538. package/assets/esri/core/workers/chunks/afbf2549e7f354ce6463.js +0 -1
  539. package/assets/esri/core/workers/chunks/b050d5361e0533cef47e.js +0 -1
  540. package/assets/esri/core/workers/chunks/b22263184f5e0792377d.js +0 -1
  541. package/assets/esri/core/workers/chunks/ba0d5d7402d8bb5f85b6.js +0 -1
  542. package/assets/esri/core/workers/chunks/bd8d6d55719ce1096927.js +0 -1
  543. package/assets/esri/core/workers/chunks/c8264edb6bb4d296e3fc.js +0 -1
  544. package/assets/esri/core/workers/chunks/d2a2a7ee27d503a9152f.js +0 -1
  545. package/assets/esri/core/workers/chunks/dd97140d603e2b14b768.js +0 -1
  546. package/assets/esri/core/workers/chunks/e40502d8c11403144837.js +0 -1
  547. package/assets/esri/core/workers/chunks/e77a3a29ca500a23a6a9.js +0 -1
  548. package/assets/esri/core/workers/chunks/e7fdf72f321f7ed3acf7.js +0 -1
  549. package/assets/esri/core/workers/chunks/eb3cbfe51627f89c347f.js +0 -1
  550. package/assets/esri/core/workers/chunks/ecbd3cfbdf2a7942c933.js +0 -1
  551. package/assets/esri/core/workers/chunks/ef663860abdbfbb1f030.js +0 -1
  552. package/assets/esri/core/workers/chunks/f5de8d6e9deec58c7569.js +0 -1
  553. package/assets/esri/core/workers/chunks/f63a0b6c207f0ba38ffb.js +0 -1
  554. package/assets/esri/core/workers/chunks/f8805d6062b66f7c6092.js +0 -1
  555. package/assets/esri/core/workers/chunks/fc4f85da3c00b0daf0d5.js +0 -1
  556. package/assets/esri/core/workers/chunks/ff4c261f916b86cb1ae7.js +0 -1
  557. package/widgets/Editor/UpdateTableRecordWorkflowData.js +0 -5
package/Basemap.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.27/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"./chunks/tslib.es6.js";import r from"./core/Collection.js";import{referenceSetter as t}from"./core/collectionUtils.js";import{deprecated as s}from"./core/deprecate.js";import{JSONSupportMixin as o}from"./core/JSONSupport.js";import{isClonable as a,clone as i}from"./core/lang.js";import n from"./core/Loadable.js";import{loadAll as l}from"./core/loadAll.js";import p from"./core/Logger.js";import{throwIfAborted as c,eachAlways as m}from"./core/promiseUtils.js";import{isProtocolRelative as h,urlToObject as u}from"./core/urlUtils.js";import{property as y}from"./core/accessorSupport/decorators/property.js";import"./core/accessorSupport/ensureType.js";import{subclass as d}from"./core/accessorSupport/decorators/subclass.js";import{writer as f}from"./core/accessorSupport/decorators/writer.js";import b from"./geometry/SpatialReference.js";import L from"./portal/Portal.js";import g from"./portal/PortalItem.js";import{getBasemapTitle as w,esriBasemapDefinitions as I}from"./support/basemapDefinitions.js";import{getLayerJSON as j}from"./webdoc/support/writeUtils.js";var S;let v=0;const _="esri.Basemap";let U=S=class extends(o(n)){constructor(e){super(e),this.id=null,this.portalItem=null,this.spatialReference=null,this.thumbnailUrl=null,this.title="Basemap",this.id=Date.now().toString(16)+"-basemap-"+v++,this.baseLayers=new r,this.referenceLayers=new r;const t=e=>{e.parent&&e.parent!==this&&"remove"in e.parent&&e.parent.remove(e),e.parent=this,"elevation"===e.type&&p.getLogger(this.declaredClass).error(`Layer '${e.title}, id:${e.id}' of type '${e.type}' is not supported as a basemap layer and will therefore be ignored.`)},s=e=>{e.parent=null};this.addHandles([this.baseLayers.on("after-add",(e=>t(e.item))),this.referenceLayers.on("after-add",(e=>t(e.item))),this.baseLayers.on("after-remove",(e=>s(e.item))),this.referenceLayers.on("after-remove",(e=>s(e.item)))])}initialize(){this.when().catch((e=>{p.getLogger(this.declaredClass).error("#load()",`Failed to load basemap (title: '${this.title}', id: '${this.id}')`,e)})),this.resourceInfo&&this.read(this.resourceInfo.data,this.resourceInfo.context)}destroy(){const e=this.baseLayers.removeAll();for(const t of e)t.destroy();const r=this.referenceLayers.removeAll();for(const t of r)t.destroy();this.baseLayers.destroy(),this.referenceLayers.destroy(),this.portalItem?.destroy(),this.portalItem=null}normalizeCtorArgs(e){return e&&"resourceInfo"in e&&(this._set("resourceInfo",e.resourceInfo),delete(e={...e}).resourceInfo),e}set baseLayers(e){this._set("baseLayers",t(e,this._get("baseLayers")))}_writeBaseLayers(e,r,t){const s=[];e?(t={...t,layerContainerType:"basemap"},this.baseLayers.forEach((e=>{const r=j(e,t.webmap?t.webmap.getLayerJSONFromResourceInfo(e):null,t);null!=r&&s.push(r)})),this.referenceLayers.forEach((e=>{const r=j(e,t.webmap?t.webmap.getLayerJSONFromResourceInfo(e):null,t);null!=r&&("scene"!==e.type&&(r.isReference=!0),s.push(r))})),r.baseMapLayers=s):r.baseMapLayers=s}set referenceLayers(e){this._set("referenceLayers",t(e,this._get("referenceLayers")))}writeTitle(e,r){r.title=e||"Basemap"}load(e){return this.addResolvingPromise(this._loadFromSource(e)),Promise.resolve(this)}loadAll(){return l(this,(e=>{e(this.baseLayers,this.referenceLayers)}))}clone(){const e={id:this.id,title:this.title,portalItem:this.portalItem,baseLayers:this.baseLayers.map((e=>a(e)?e.clone():e)),referenceLayers:this.referenceLayers.map((e=>a(e)?e.clone():e))};return this.loaded&&(e.loadStatus="loaded"),new S({resourceInfo:this.resourceInfo}).set(e)}read(e,r){this.resourceInfo||this._set("resourceInfo",{data:e,context:r}),super.read(e,r)}write(e,r){return e=e||{},r&&r.origin||(r={origin:"web-map",...r}),super.write(e,r),!this.loaded&&this.resourceInfo&&this.resourceInfo.data.baseMapLayers&&(e.baseMapLayers=this.resourceInfo.data.baseMapLayers.map((e=>{const r=i(e);return r.url&&h(r.url)&&(r.url=`https:${r.url}`),r.templateUrl&&h(r.templateUrl)&&(r.templateUrl=`https:${r.templateUrl}`),r}))),e}async _loadFromSource(e){const{resourceInfo:r,portalItem:t}=this;c(e);const s=[];if(r){const t=r.context?r.context.url:null;if(s.push(this._loadLayersFromJSON(r.data,t,e)),r.data.id&&!r.data.title){const e=r.data.id;s.push(w(e).then((e=>{e&&this.read({title:e},r.context)})))}}else t&&s.push(this._loadFromItem(t,e));await Promise.all(s)}async _loadLayersFromJSON(e,r,t){const s=this.resourceInfo&&this.resourceInfo.context,o=this.portalItem&&this.portalItem.portal||s&&s.portal||null,a=s&&"web-scene"===s.origin?"web-scene":"web-map",{populateOperationalLayers:i}=await import("./layers/support/layersCreator.js"),n=[];if(c(t),e.baseMapLayers&&Array.isArray(e.baseMapLayers)){const t={context:{origin:a,url:r,portal:o,layerContainerType:"basemap"},defaultLayerType:"DefaultTileLayer"},s=e=>"web-scene"===a&&"ArcGISSceneServiceLayer"===e.layerType||e.isReference,l=i(this.baseLayers,e.baseMapLayers.filter((e=>!s(e))),t);n.push(l);const p=i(this.referenceLayers,e.baseMapLayers.filter(s),t);n.push(p)}await m(n)}async _loadFromItem(e,r){const t=await e.load(r),s=await t.fetchData("json",r),o=u(e.itemUrl??"");return this._set("resourceInfo",{data:s.baseMap??{},context:{origin:"Web Scene"===e.type?"web-scene":"web-map",portal:e.portal||L.getDefault(),url:o}}),this.read(this.resourceInfo.data,this.resourceInfo.context),this.read({spatialReference:s.spatialReference},this.resourceInfo.context),this.read({title:e.title,thumbnailUrl:e.thumbnailUrl},{origin:"portal-item",portal:e.portal||L.getDefault(),url:o}),this._loadLayersFromJSON(this.resourceInfo.data,o,r)}static fromId(e){const r=I[e];if(!r)return null;if(r.deprecated){let r=null;"dark-gray"===e?r="dark-gray-vector":"gray"===e?r="gray-vector":"streets"===e?r="streets-vector":"topo"===e&&(r="topo-vector"),s(p.getLogger(_),`The ${e} basemap has entered mature support and is no longer being updated.`,{replacement:r,see:"https://arcg.is/1iq8aD",warnOnce:!0})}return S.fromJSON(r)}};e([y({json:{write:{ignoreOrigin:!0,target:"baseMapLayers",writer(e,r,t,s){this._writeBaseLayers(e,r,s)}},origins:{"web-scene":{write:{ignoreOrigin:!0,target:{baseMapLayers:{type:r}},writer(e,r,t,s){this._writeBaseLayers(e,r,s)}}}}}})],U.prototype,"baseLayers",null),e([y({type:String,json:{origins:{"web-scene":{write:!0}}}})],U.prototype,"id",void 0),e([y({type:g})],U.prototype,"portalItem",void 0),e([y()],U.prototype,"referenceLayers",null),e([y({readOnly:!0})],U.prototype,"resourceInfo",void 0),e([y({type:b})],U.prototype,"spatialReference",void 0),e([y()],U.prototype,"thumbnailUrl",void 0),e([y({type:String,json:{origins:{"web-scene":{write:{isRequired:!0}}}}})],U.prototype,"title",void 0),e([f("title")],U.prototype,"writeTitle",null),U=S=e([d(_)],U);const x=U;export{x as default};
5
+ import{_ as e}from"./chunks/tslib.es6.js";import r from"./core/Collection.js";import{referenceSetter as t}from"./core/collectionUtils.js";import{deprecated as s}from"./core/deprecate.js";import{JSONSupportMixin as o}from"./core/JSONSupport.js";import{isClonable as a,clone as i}from"./core/lang.js";import n from"./core/Loadable.js";import{loadAll as l}from"./core/loadAll.js";import p from"./core/Logger.js";import{throwIfAborted as c,eachAlways as m}from"./core/promiseUtils.js";import{isProtocolRelative as h,urlToObject as u}from"./core/urlUtils.js";import{property as y}from"./core/accessorSupport/decorators/property.js";import"./core/accessorSupport/ensureType.js";import{subclass as d}from"./core/accessorSupport/decorators/subclass.js";import{writer as f}from"./core/accessorSupport/decorators/writer.js";import b from"./geometry/SpatialReference.js";import L from"./portal/Portal.js";import g from"./portal/PortalItem.js";import{getBasemapTitle as w,esriBasemapDefinitions as I}from"./support/basemapDefinitions.js";import{getLayerJSON as j}from"./webdoc/support/writeUtils.js";var S;let v=0;const _="esri.Basemap";let M=S=class extends(o(n)){constructor(e){super(e),this.id=null,this.portalItem=null,this.spatialReference=null,this.thumbnailUrl=null,this.title="Basemap",this.id=Date.now().toString(16)+"-basemap-"+v++,this.baseLayers=new r,this.referenceLayers=new r;const t=e=>{e.parent&&e.parent!==this&&"remove"in e.parent&&e.parent.remove(e),e.parent=this,"elevation"===e.type&&p.getLogger(this).error(`Layer '${e.title}, id:${e.id}' of type '${e.type}' is not supported as a basemap layer and will therefore be ignored.`)},s=e=>{e.parent=null};this.addHandles([this.baseLayers.on("after-add",(e=>t(e.item))),this.referenceLayers.on("after-add",(e=>t(e.item))),this.baseLayers.on("after-remove",(e=>s(e.item))),this.referenceLayers.on("after-remove",(e=>s(e.item)))])}initialize(){this.when().catch((e=>{p.getLogger(this).error("#load()",`Failed to load basemap (title: '${this.title}', id: '${this.id}')`,e)})),this.resourceInfo&&this.read(this.resourceInfo.data,this.resourceInfo.context)}destroy(){const e=this.baseLayers.removeAll();for(const t of e)t.destroy();const r=this.referenceLayers.removeAll();for(const t of r)t.destroy();this.baseLayers.destroy(),this.referenceLayers.destroy(),this.portalItem?.destroy(),this.portalItem=null}normalizeCtorArgs(e){return e&&"resourceInfo"in e&&(this._set("resourceInfo",e.resourceInfo),delete(e={...e}).resourceInfo),e}set baseLayers(e){this._set("baseLayers",t(e,this._get("baseLayers")))}_writeBaseLayers(e,r,t){const s=[];e?(t={...t,layerContainerType:"basemap"},this.baseLayers.forEach((e=>{const r=j(e,t.webmap?t.webmap.getLayerJSONFromResourceInfo(e):null,t);null!=r&&s.push(r)})),this.referenceLayers.forEach((e=>{const r=j(e,t.webmap?t.webmap.getLayerJSONFromResourceInfo(e):null,t);null!=r&&("scene"!==e.type&&(r.isReference=!0),s.push(r))})),r.baseMapLayers=s):r.baseMapLayers=s}set referenceLayers(e){this._set("referenceLayers",t(e,this._get("referenceLayers")))}writeTitle(e,r){r.title=e||"Basemap"}load(e){return this.addResolvingPromise(this._loadFromSource(e)),Promise.resolve(this)}loadAll(){return l(this,(e=>{e(this.baseLayers,this.referenceLayers)}))}clone(){const e={id:this.id,title:this.title,portalItem:this.portalItem,baseLayers:this.baseLayers.map((e=>a(e)?e.clone():e)),referenceLayers:this.referenceLayers.map((e=>a(e)?e.clone():e))};return this.loaded&&(e.loadStatus="loaded"),new S({resourceInfo:this.resourceInfo}).set(e)}read(e,r){this.resourceInfo||this._set("resourceInfo",{data:e,context:r}),super.read(e,r)}write(e,r){return e=e||{},r&&r.origin||(r={origin:"web-map",...r}),super.write(e,r),!this.loaded&&this.resourceInfo&&this.resourceInfo.data.baseMapLayers&&(e.baseMapLayers=this.resourceInfo.data.baseMapLayers.map((e=>{const r=i(e);return r.url&&h(r.url)&&(r.url=`https:${r.url}`),r.templateUrl&&h(r.templateUrl)&&(r.templateUrl=`https:${r.templateUrl}`),r}))),e}async _loadFromSource(e){const{resourceInfo:r,portalItem:t}=this;c(e);const s=[];if(r){const t=r.context?r.context.url:null;if(s.push(this._loadLayersFromJSON(r.data,t,e)),r.data.id&&!r.data.title){const e=r.data.id;s.push(w(e).then((e=>{e&&this.read({title:e},r.context)})))}}else t&&s.push(this._loadFromItem(t,e));await Promise.all(s)}async _loadLayersFromJSON(e,r,t){const s=this.resourceInfo&&this.resourceInfo.context,o=this.portalItem&&this.portalItem.portal||s&&s.portal||null,a=x[s?.origin||""]??"web-map",{populateOperationalLayers:i}=await import("./layers/support/layersCreator.js"),n=[];if(c(t),e.baseMapLayers&&Array.isArray(e.baseMapLayers)){const t={context:{origin:a,url:r,portal:o,layerContainerType:"basemap"},defaultLayerType:"DefaultTileLayer"},s=e=>"web-scene"===a&&"ArcGISSceneServiceLayer"===e.layerType||e.isReference,l=i(this.baseLayers,e.baseMapLayers.filter((e=>!s(e))),t);n.push(l);const p=i(this.referenceLayers,e.baseMapLayers.filter(s),t);n.push(p)}await m(n)}async _loadFromItem(e,r){const t=await e.load(r),s=await t.fetchData("json",r),o=u(e.itemUrl??"");return this._set("resourceInfo",{data:s.baseMap??{},context:{origin:U[e.type||""]??"web-map",portal:e.portal||L.getDefault(),url:o}}),this.read(this.resourceInfo.data,this.resourceInfo.context),this.read({spatialReference:s.spatialReference},this.resourceInfo.context),this.read({title:e.title,thumbnailUrl:e.thumbnailUrl},{origin:"portal-item",portal:e.portal||L.getDefault(),url:o}),this._loadLayersFromJSON(this.resourceInfo.data,o,r)}static fromId(e){const r=I[e];if(!r)return null;if(r.deprecated){let r=null;"dark-gray"===e?r="dark-gray-vector":"gray"===e?r="gray-vector":"streets"===e?r="streets-vector":"topo"===e&&(r="topo-vector"),s(p.getLogger(_),`The ${e} basemap has entered mature support and is no longer being updated.`,{replacement:r,see:"https://arcg.is/1iq8aD",warnOnce:!0})}return S.fromJSON(r)}};e([y({json:{write:{ignoreOrigin:!0,target:"baseMapLayers",writer(e,r,t,s){this._writeBaseLayers(e,r,s)}},origins:{"web-scene":{write:{ignoreOrigin:!0,target:{baseMapLayers:{type:r}},writer(e,r,t,s){this._writeBaseLayers(e,r,s)}}}}}})],M.prototype,"baseLayers",null),e([y({type:String,json:{origins:{"web-scene":{write:!0}}}})],M.prototype,"id",void 0),e([y({type:g})],M.prototype,"portalItem",void 0),e([y()],M.prototype,"referenceLayers",null),e([y({readOnly:!0})],M.prototype,"resourceInfo",void 0),e([y({type:b})],M.prototype,"spatialReference",void 0),e([y()],M.prototype,"thumbnailUrl",void 0),e([y({type:String,json:{origins:{"web-scene":{write:{isRequired:!0}}}}})],M.prototype,"title",void 0),e([f("title")],M.prototype,"writeTitle",null),M=S=e([d(_)],M);const U={"Web Scene":"web-scene","Web Map":"web-map","Link Chart":"link-chart"},x={"web-scene":"web-scene","web-map":"web-map","link-chart":"link-chart"},O=M;export{O as default};
package/Ground.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.27/esri/copyright.txt for details.
4
4
  */
5
- import{_ as r}from"./chunks/tslib.es6.js";import e from"./Color.js";import o from"./core/Collection.js";import{referenceSetter as t}from"./core/collectionUtils.js";import{typeCast as s}from"./core/compilerUtils.js";import a from"./core/Error.js";import{JSONSupportMixin as i}from"./core/JSONSupport.js";import{clone as n}from"./core/lang.js";import l from"./core/Loadable.js";import{loadAll as p}from"./core/loadAll.js";import c from"./core/Logger.js";import{isAbortError as y,throwIfAborted as u,eachAlways as d}from"./core/promiseUtils.js";import{property as m}from"./core/accessorSupport/decorators/property.js";import{Integer as f}from"./core/accessorSupport/ensureType.js";import{subclass as h}from"./core/accessorSupport/decorators/subclass.js";import{writer as g}from"./core/accessorSupport/decorators/writer.js";import{NavigationConstraint as v}from"./ground/NavigationConstraint.js";import{transparencyToOpacity as j,opacityToTransparency as w}from"./webdoc/support/opacityUtils.js";var C;let S=C=class extends(i(l)){constructor(r){super(r),this.opacity=1,this.surfaceColor=null,this.navigationConstraint=null,this.layers=new o;const e=r=>{r.parent&&r.parent!==this&&"remove"in r.parent&&r.parent.remove(r),r.parent=this,"elevation"!==r.type&&"base-elevation"!==r.type&&c.getLogger(this.declaredClass).error(`Layer '${r.title}, id:${r.id}' of type '${r.type}' is not supported as a ground layer and will therefore be ignored. Only layers of type 'elevation' are supported.`)},t=r=>{r.parent=null};this.addHandles([this.layers.on("after-add",(r=>e(r.item))),this.layers.on("after-remove",(r=>t(r.item)))])}initialize(){this.when().catch((r=>{y(r)||c.getLogger(this.declaredClass).error("#load()","Failed to load ground",r)})),this.resourceInfo&&this.read(this.resourceInfo.data,this.resourceInfo.context)}destroy(){const r=this.layers.removeAll();for(const e of r)e.destroy();this.layers.destroy()}normalizeCtorArgs(r){return r&&"resourceInfo"in r&&(this._set("resourceInfo",r.resourceInfo),delete(r={...r}).resourceInfo),r}set layers(r){this._set("layers",t(r,this._get("layers")))}writeLayers(r,e,o,t){const i=[];r?(t={...t,layerContainerType:"ground"},r.forEach((r=>{if("write"in r){const e={};s(r)().write(e,t)&&i.push(e)}else t&&t.messages&&t.messages.push(new a("layer:unsupported",`Layers (${r.title}, ${r.id}) of type '${r.declaredClass}' cannot be persisted in the ground`,{layer:r}))})),e.layers=i):e.layers=i}load(r){return this.addResolvingPromise(this._loadFromSource(r)),Promise.resolve(this)}loadAll(){return p(this,(r=>{r(this.layers)}))}async queryElevation(r,e){await this.load({signal:e?.signal});const{ElevationQuery:o}=await import("./layers/support/ElevationQuery.js");u(e);const t=new o,s=this.layers.filter(L).toArray();return t.queryAll(s,r,e)}async createElevationSampler(r,e){await this.load({signal:e?.signal});const{ElevationQuery:o}=await import("./layers/support/ElevationQuery.js");u(e);const t=new o,s=this.layers.filter(L).toArray();return t.createSamplerAll(s,r,e)}clone(){const r={opacity:this.opacity,surfaceColor:n(this.surfaceColor),navigationConstraint:n(this.navigationConstraint),layers:this.layers.slice()};return this.loaded&&(r.loadStatus="loaded"),new C({resourceInfo:this.resourceInfo}).set(r)}read(r,e){this.resourceInfo||this._set("resourceInfo",{data:r,context:e}),super.read(r,e)}_loadFromSource(r){const e=this.resourceInfo;return e?this._loadLayersFromJSON(e.data,e.context,r):Promise.resolve()}_loadLayersFromJSON(r,e,o){const t=e&&e.origin||"web-scene",s=e&&e.portal||null,a=e&&e.url||null;return import("./layers/support/layersCreator.js").then((({populateOperationalLayers:e})=>{u(o);const i=[];if(r.layers&&Array.isArray(r.layers)){const o={context:{origin:t,url:a,portal:s,layerContainerType:"ground"},defaultLayerType:"ArcGISTiledElevationServiceLayer"};i.push(e(this.layers,r.layers,o))}return d(i)})).then((()=>{}))}};function I(r){return r&&"createElevationSampler"in r}function L(r){return"elevation"===r.type||I(r)}r([m({json:{read:!1}})],S.prototype,"layers",null),r([g("layers")],S.prototype,"writeLayers",null),r([m({readOnly:!0})],S.prototype,"resourceInfo",void 0),r([m({type:Number,nonNullable:!0,range:{min:0,max:1},json:{type:f,read:{reader:j,source:"transparency"},write:{writer:(r,e)=>{e.transparency=w(r)},target:"transparency"}}})],S.prototype,"opacity",void 0),r([m({type:e,json:{type:[f],write:(r,e)=>{e.surfaceColor=r.toJSON().slice(0,3)}}})],S.prototype,"surfaceColor",void 0),r([m({type:v,json:{write:!0}})],S.prototype,"navigationConstraint",void 0),S=C=r([h("esri.Ground")],S);const A=S;export{A as default};
5
+ import{_ as r}from"./chunks/tslib.es6.js";import e from"./Color.js";import o from"./core/Collection.js";import{referenceSetter as t}from"./core/collectionUtils.js";import{typeCast as s}from"./core/compilerUtils.js";import a from"./core/Error.js";import{JSONSupportMixin as i}from"./core/JSONSupport.js";import{clone as n}from"./core/lang.js";import l from"./core/Loadable.js";import{loadAll as p}from"./core/loadAll.js";import c from"./core/Logger.js";import{isAbortError as y,throwIfAborted as u,eachAlways as d}from"./core/promiseUtils.js";import{property as m}from"./core/accessorSupport/decorators/property.js";import{Integer as f}from"./core/accessorSupport/ensureType.js";import{subclass as h}from"./core/accessorSupport/decorators/subclass.js";import{writer as g}from"./core/accessorSupport/decorators/writer.js";import{NavigationConstraint as v}from"./ground/NavigationConstraint.js";import{transparencyToOpacity as j,opacityToTransparency as w}from"./webdoc/support/opacityUtils.js";var C;let S=C=class extends(i(l)){constructor(r){super(r),this.opacity=1,this.surfaceColor=null,this.navigationConstraint=null,this.layers=new o;const e=r=>{r.parent&&r.parent!==this&&"remove"in r.parent&&r.parent.remove(r),r.parent=this,"elevation"!==r.type&&"base-elevation"!==r.type&&c.getLogger(this).error(`Layer '${r.title}, id:${r.id}' of type '${r.type}' is not supported as a ground layer and will therefore be ignored. Only layers of type 'elevation' are supported.`)},t=r=>{r.parent=null};this.addHandles([this.layers.on("after-add",(r=>e(r.item))),this.layers.on("after-remove",(r=>t(r.item)))])}initialize(){this.when().catch((r=>{y(r)||c.getLogger(this).error("#load()","Failed to load ground",r)})),this.resourceInfo&&this.read(this.resourceInfo.data,this.resourceInfo.context)}destroy(){const r=this.layers.removeAll();for(const e of r)e.destroy();this.layers.destroy()}normalizeCtorArgs(r){return r&&"resourceInfo"in r&&(this._set("resourceInfo",r.resourceInfo),delete(r={...r}).resourceInfo),r}set layers(r){this._set("layers",t(r,this._get("layers")))}writeLayers(r,e,o,t){const i=[];r?(t={...t,layerContainerType:"ground"},r.forEach((r=>{if("write"in r){const e={};s(r)().write(e,t)&&i.push(e)}else t&&t.messages&&t.messages.push(new a("layer:unsupported",`Layers (${r.title}, ${r.id}) of type '${r.declaredClass}' cannot be persisted in the ground`,{layer:r}))})),e.layers=i):e.layers=i}load(r){return this.addResolvingPromise(this._loadFromSource(r)),Promise.resolve(this)}loadAll(){return p(this,(r=>{r(this.layers)}))}async queryElevation(r,e){await this.load({signal:e?.signal});const{ElevationQuery:o}=await import("./layers/support/ElevationQuery.js");u(e);const t=new o,s=this.layers.filter(L).toArray();return t.queryAll(s,r,e)}async createElevationSampler(r,e){await this.load({signal:e?.signal});const{ElevationQuery:o}=await import("./layers/support/ElevationQuery.js");u(e);const t=new o,s=this.layers.filter(L).toArray();return t.createSamplerAll(s,r,e)}clone(){const r={opacity:this.opacity,surfaceColor:n(this.surfaceColor),navigationConstraint:n(this.navigationConstraint),layers:this.layers.slice()};return this.loaded&&(r.loadStatus="loaded"),new C({resourceInfo:this.resourceInfo}).set(r)}read(r,e){this.resourceInfo||this._set("resourceInfo",{data:r,context:e}),super.read(r,e)}_loadFromSource(r){const e=this.resourceInfo;return e?this._loadLayersFromJSON(e.data,e.context,r):Promise.resolve()}_loadLayersFromJSON(r,e,o){const t=e&&e.origin||"web-scene",s=e&&e.portal||null,a=e&&e.url||null;return import("./layers/support/layersCreator.js").then((({populateOperationalLayers:e})=>{u(o);const i=[];if(r.layers&&Array.isArray(r.layers)){const o={context:{origin:t,url:a,portal:s,layerContainerType:"ground"},defaultLayerType:"ArcGISTiledElevationServiceLayer"};i.push(e(this.layers,r.layers,o))}return d(i)})).then((()=>{}))}};function I(r){return r&&"createElevationSampler"in r}function L(r){return"elevation"===r.type||I(r)}r([m({json:{read:!1}})],S.prototype,"layers",null),r([g("layers")],S.prototype,"writeLayers",null),r([m({readOnly:!0})],S.prototype,"resourceInfo",void 0),r([m({type:Number,nonNullable:!0,range:{min:0,max:1},json:{type:f,read:{reader:j,source:"transparency"},write:{writer:(r,e)=>{e.transparency=w(r)},target:"transparency"}}})],S.prototype,"opacity",void 0),r([m({type:e,json:{type:[f],write:(r,e)=>{e.surfaceColor=r.toJSON().slice(0,3)}}})],S.prototype,"surfaceColor",void 0),r([m({type:v,json:{write:!0}})],S.prototype,"navigationConstraint",void 0),S=C=r([h("esri.Ground")],S);const A=S;export{A as default};
package/LinkChart.js ADDED
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.27/esri/copyright.txt for details.
4
+ */
5
+ import{_ as t}from"./chunks/tslib.es6.js";import r from"./Map.js";import o from"./core/Error.js";import e from"./core/Loadable.js";import{loadAll as i}from"./core/loadAll.js";import s from"./core/Logger.js";import{MultiOriginJSONMixin as a}from"./core/MultiOriginJSONSupport.js";import{EsriPromiseMixin as l}from"./core/Promise.js";import{urlToObject as p}from"./core/urlUtils.js";import{Version as n}from"./core/Version.js";import{property as c}from"./core/accessorSupport/decorators/property.js";import"./core/accessorSupport/ensureType.js";import"./core/arrayUtils.js";import"./core/has.js";import{subclass as m}from"./core/accessorSupport/decorators/subclass.js";import{readLoadable as h}from"./core/accessorSupport/read.js";import d from"./linkchart/InitialViewProperties.js";import u from"./portal/Portal.js";import y from"./portal/PortalItem.js";import{computeInitialViewpoint as f}from"./webmap/initialViewPropertiesUtils.js";let S=class extends(a(e.LoadableMixin(l(r)))){constructor(t){super(t),this.initialViewProperties=new d,this.portalItem=null}load(t){return this.addResolvingPromise(this._loadFromSource()),Promise.resolve(this)}destroy(){const t=this.portalItem;this.portalItem=null,t?.destroy()}initialize(){if(this.when().catch((t=>{s.getLogger(this).error("#load()","Failed to load link chart",t)})),this.sourceJSON){let r;try{r=this._validateJSON(this.sourceJSON)}catch(t){return void this.addResolvingPromise(Promise.reject(t))}this.read(r)}}loadAll(){return i(this,(t=>{t(this.ground,this.basemap,this.layers,this.tables)}))}read(t,r){r={...r,origin:"link-chart"},h(this,t,(r=>super.read(t,r)),r)}_loadFromSource(){return this.sourceJSON?this._loadFromJSON(this.sourceJSON,{origin:"link-chart"}):this.portalItem&&this.portalItem.id?this._loadFromItem(this.portalItem):Promise.resolve()}_loadFromJSON(t,r){const o={context:{...r,layerContainerType:"operational-layers"}};return this.portalItem&&(o.context.portal=this.portalItem.portal||u.getDefault()),import("./layers/support/layersCreator.js").then((({populateOperationalLayers:r})=>{const e=[],i=t.operationalLayers;i&&i.length&&e.push(r(this.layers,i,o));const s={...o,context:{...o.context,layerContainerType:"tables"},defaultLayerType:"ArcGISFeatureLayer"},a=t.tables;return a&&a.length&&e.push(r(this.tables,a,s)),Promise.allSettled(e).then((()=>{}))}))}async _loadFromItem(t){if(await t.load().catch((t=>{throw new o("linkchart:load-portal-item","Failed to load portal item",{error:t})})),t.type!==this.constructor.PORTAL_ITEM_TYPE)throw new o("linkchart:invalid-portal-item",`Invalid portal item type '${t.type}', expected '${this.constructor.PORTAL_ITEM_TYPE}'`,{type:t.type});const r=await t.fetchData();this.sourceJSON=r;const e={origin:"link-chart",url:p(t.itemUrl),portal:t.portal||u.getDefault(),portalItem:t,readResourcePaths:[]};await this._readAndLoadFromJSON(r,e);const i=await f(this.initialViewProperties,t,s.getLogger(this));if(i){const t=this.initialViewProperties?.clone()??new d;t.viewpoint=i,this.initialViewProperties=t}}_readAndLoadFromJSON(t,r){const o=this._validateJSON(t);return this.read(o,r),this._loadFromJSON(o,r)}_validateJSON(t){const r=n.parse(t.version||"","linkchart");return this.constructor.VERSION.validate(r),t.version=`${r.major}.${r.minor}`,t}};S.PORTAL_ITEM_TYPE="Link Chart",S.VERSION=new n(2,27),t([c({type:d,nonNullable:!0,json:{read:{source:["background","initialState.viewpoint","mapRangeInfo","spatialReference"]}}})],S.prototype,"initialViewProperties",void 0),t([c({json:{read:!1}})],S.prototype,"layers",void 0),t([c()],S.prototype,"linkChartProperties",void 0),t([c({type:y})],S.prototype,"portalItem",void 0),t([c()],S.prototype,"sourceJSON",void 0),t([c({json:{read:!1}})],S.prototype,"tables",void 0),S=t([m("esri.LinkChart")],S);const j=S;export{j as default};
package/WebMap.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.27/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"./chunks/tslib.es6.js";import{version as t}from"./kernel.js";import r from"./Map.js";import i from"./Viewpoint.js";import{isSome as o}from"./core/arrayUtils.js";import a from"./core/Collection.js";import s from"./core/Error.js";import n from"./core/Loadable.js";import{loadAll as l}from"./core/loadAll.js";import p from"./core/Logger.js";import{MultiOriginJSONMixin as m,MultiOriginJSONSupport as u}from"./core/MultiOriginJSONSupport.js";import{EsriPromiseMixin as h}from"./core/Promise.js";import{eachAlways as c}from"./core/promiseUtils.js";import{whenOnce as d}from"./core/reactiveUtils.js";import{urlToObject as y,hasSameCanonicalArcGISOnlinePortal as w,isDataProtocol as f,dataComponents as g,addQueryParameter as b}from"./core/urlUtils.js";import{property as _}from"./core/accessorSupport/decorators/property.js";import"./core/accessorSupport/ensureType.js";import"./core/has.js";import{reader as v}from"./core/accessorSupport/decorators/reader.js";import{subclass as A}from"./core/accessorSupport/decorators/subclass.js";import{writer as I}from"./core/accessorSupport/decorators/writer.js";import{updateOrigins as S}from"./core/accessorSupport/originUtils.js";import{readLoadable as j}from"./core/accessorSupport/read.js";import U from"./geometry/SpatialReference.js";import{equals as P}from"./geometry/support/spatialReferenceUtils.js";import{geographicToWebMercator as O,webMercatorToGeographic as L}from"./geometry/support/webMercatorUtils.js";import{isServerOrServicesAGOLUrl as R}from"./layers/support/arcgisLayerUrl.js";import{isFeatureServiceLayer as V,isFeatureCollectionLayer as F}from"./layers/support/layerUtils.js";import T from"./networks/UtilityNetwork.js";import W from"./portal/Portal.js";import k from"./portal/PortalItem.js";import{removeTypeKeyword as N,addTypeKeyword as E,hasTypeKeyword as C,TypeKeyword as M}from"./portal/support/portalItemUtils.js";import{project as x}from"./rest/geometryService/project.js";import B from"./rest/support/ProjectParameters.js";import{hasDeveloperBasemapLayer as J,isDeveloperBasemapLayer as G,findSpatialReference as D}from"./support/basemapUtils.js";import K from"./support/MapFloorInfo.js";import $ from"./webdoc/GeotriggersInfo.js";import z from"./webdoc/RangeInfo.js";import q from"./webdoc/Widgets.js";import{getOptimalThumbnailSize as H}from"./webdoc/support/thumbnailUtils.js";import{getLayerJSON as Q}from"./webdoc/support/writeUtils.js";import X from"./webmap/ApplicationProperties.js";import Y from"./webmap/Bookmark.js";import Z from"./webmap/InitialViewProperties.js";import{Version as ee}from"./webmap/Version.js";import te from"./webmap/background/ColorBackground.js";const re=new ee(2,27),ie="Web Map",oe=a.ofType(Y),ae=a.ofType(T),se=new Map;se.set("image/jpeg","jpeg"),se.set("image/jpg","jpg"),se.set("image/png","png"),se.set("image/gif","gif");const ne="ArcGIS Pro",le=M.JSAPI,pe="CollectorDisabled",me="Collector",ue="Data Editing",he="OfflineDisabled",ce="Offline",de="Workforce Project",ye="Workforce Worker",we="Workforce Dispatcher",fe="Offline Map Areas",ge="FieldMapsDisabled",be=M.DEVELOPER_BASEMAP,_e="UtilityNetwork",ve=["NatGeo_World_Map","Ocean_Basemap","USA_Topo_Maps","World_Imagery","World_Street_Map","World_Terrain_Base","World_Topo_Map","World_Hillshade","Canvas/World_Light_Gray_Base","Canvas/World_Light_Gray_Reference","Canvas/World_Dark_Gray_Base","Canvas/World_Dark_Gray_Reference","Ocean/World_Ocean_Base","Ocean/World_Ocean_Reference","Reference/World_Boundaries_and_Places","Reference/World_Reference_Overlay","Reference/World_Transportation"].map((e=>e.toLowerCase()));let Ae=class extends(m(n.LoadableMixin(h(r)))){constructor(e){super(e),this._isAuthoringAppSetByUser=!1,this._isAuthoringAppVersionSetByUser=!1,this._thumbnailFilename=null,this._updateFromPromise=null,this._resourceReferences={portalItem:null,paths:[]},this.applicationProperties=null,this.bookmarks=new oe,this.floorInfo=null,this.geotriggersInfo=null,this.initialViewProperties=new Z,this.portalItem=null,this.presentation=null,this.sourceVersion=null,this.widgets=null,this.utilityNetworks=null,this.authoringApp=this.authoringAppVersion=null,this._isAuthoringAppSetByUser=this._isAuthoringAppVersionSetByUser=!1}destroy(){const e=this.portalItem;this.portalItem=null,e?.destroy()}initialize(){if(this.when().catch((e=>{p.getLogger(this.declaredClass).error("#load()","Failed to load web map",e)})),this.resourceInfo){let t;try{t=this._validateJSON(this.resourceInfo)}catch(e){return void this.addResolvingPromise(Promise.reject(e))}this.read(t)}}set authoringApp(e){this._isAuthoringAppSetByUser=!0,this._set("authoringApp",e)}writeAuthoringApp(e,t){e&&this._isAuthoringAppSetByUser?t.authoringApp=e:t.authoringApp=le}set authoringAppVersion(e){this._isAuthoringAppVersionSetByUser=!0,this._set("authoringAppVersion",e)}writeAuthoringAppVersion(e,r){e&&this._isAuthoringAppVersionSetByUser?r.authoringAppVersion=e:r.authoringAppVersion=t}readInitialViewProperties(e,t){const r=new Z;t.background&&(r.background=te.fromJSON(t.background));const o=t.initialState?.viewpoint;if(o){if(o.rotation){ee.parse(t.version||"","webmap").lessThan(2,20)&&t.authoringApp===ne&&(o.rotation*=-1)}r.viewpoint=i.fromJSON(o)}return t.mapRangeInfo&&(r.rangeInfo=z.fromJSON(t.mapRangeInfo)),t.spatialReference&&(r.spatialReference=U.fromJSON(t.spatialReference)),r}writeInitialViewProperties(e,t,r,i){if(!e)return;const o=e.background;o&&o.color&&(t.background=o.write({},i)),e.viewpoint&&(t.initialState={viewpoint:e.viewpoint.write({},i)}),e.rangeInfo&&(t.mapRangeInfo=e.rangeInfo.toJSON(i)),e.spatialReference&&(t.spatialReference=e.spatialReference.write({},i))}writeLayers(e,t,r,i){t[r]=this._writeLayers(e,i,"operational-layers")}readSourceVersion(e,t){const[r,i]=t.version.split(".");return new ee(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${re.major}.${re.minor}`}writeTables(e,t,r,i){const o=this._writeLayers(e,i,"tables");o.length&&(t[r]=o)}get thumbnailUrl(){return this.portalItem&&this.portalItem.thumbnailUrl||null}set thumbnailUrl(e){e?(this._override("thumbnailUrl",e),this._thumbnailFilename=this._generateCustomThumbnailFilename(e)):this._clearThumbnailOverride()}load(e){return this.addResolvingPromise(this._loadFromSource()),Promise.resolve(this)}loadAll(){return l(this,(e=>{e(this.ground,this.basemap,this.layers,this.tables)}))}read(e,t){t={...t,origin:"web-map"};const r=this._getAuthoringPropsState();j(this,e,(t=>super.read(e,t)),t),this._restoreAuthoringPropsFromState(r)}write(e,t){if("loaded"!==this.loadStatus){const e=new s("webmap:not-loaded","Web map must be loaded before it can be serialized");throw p.getLogger(this.declaredClass).error("#toJSON()","Web map must be loaded before it can be serialized",this.loadError||this.loadStatus),e}return this._removeDanglingLayerRefs(),t={...t,origin:"web-map",restrictedWebMapWriting:!0,webmap:this},super.write(e,t)}async save(e){e=e||{},this._validateItem();const t=import("./webdoc/support/saveUtils.js");await this._updateFromPromise,await this.load(),await this._loadLayerContainers(),await this._beforeSave(),await this._validateMap();const r=this.portalItem,i=y(r.itemUrl),o={origin:"web-map",messages:[],writtenProperties:[],url:i,portal:r.portal||W.getDefault(),portalItem:r,verifyItemRelativeUrls:i?{rootPath:i.path,writtenUrls:[]}:null,blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},a=this.write({},o);return await Promise.all(o.resources.pendingOperations),this._validateJSONForWriting(o,e),await this._updateItemProperties(r),await this._updateItem(r,a,o),await Promise.all([this._updateItemThumbnail(),t.then((({saveResources:e})=>e(this._resourceReferences,o,null)))]),r}async saveAs(e,t){t=t||{};const r=this._getPortalItem(e),i=import("./webdoc/support/saveUtils.js");await this._updateFromPromise,await this.load(),await this._loadLayerContainers(),await this._beforeSave(),await this._validateMap();const o={origin:"web-map",messages:[],writtenProperties:[],url:null,portal:r.portal,portalItem:r,blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},a=this.write({},o);await Promise.all(o.resources.pendingOperations),this._validateJSONForWriting(o,t),await this._updateItemPropertiesForSaveAs(r);const s=this._getThumbnailState();return await this._createItem(r,a,o,t)&&(this._resourceReferences.portalItem=r),this._restoreThumbnailFromState(s),await Promise.all([this._updateItemThumbnail(),i.then((({saveResources:e})=>e(this._resourceReferences,o,null)))]),r}async updateFrom(e,t){const r=this._updateFromInternal(e,t);this._updateFromPromise=r,await r;r===this._updateFromPromise&&(this._updateFromPromise=null)}getLayerJSONFromResourceInfo(e){const t=this.resourceInfo;return this._collectAllLayersJSON([...t?.baseMap?.baseMapLayers||[],...t?.operationalLayers||[],...this.basemap?.resourceInfo?.data?.baseMapLayers||[]]).find((t=>t.id===e.id))}_collectAllLayersJSON(e){return e.reduce(((e,t)=>(e.push(t),"GroupLayer"===t.layerType&&(e=e.concat(this._collectAllLayersJSON(t.layers||[]))),e)),[])}_writeLayers(e,t,r){t={...t,layerContainerType:r};return e.map((e=>Q(e,"tables"===r?null:this.getLayerJSONFromResourceInfo(e),t))).filter(o).toArray()}_loadFromSource(){return this.resourceInfo?this._loadFromJSON(this.resourceInfo,{origin:"web-map"}):this.portalItem&&this.portalItem.id?this._loadFromItem(this.portalItem):Promise.resolve()}async _loadFromItem(e){if(await e.load().catch((e=>{throw new s("webmap:load-portal-item","Failed to load portal item",{error:e})})),"Web Map"!==e.type)throw new s("webmap:invalid-portal-item",`Invalid portal item type '${e.type}', expected 'Web Map'`,{type:e.type});const t=await e.fetchData();this.resourceInfo=t;const r={origin:"web-map",url:y(e.itemUrl),portal:e.portal||W.getDefault(),portalItem:e,readResourcePaths:[]};return await this._readAndLoadFromJSON(t,r),this._resourceReferences={portalItem:e,paths:r.readResourcePaths??[]},this._computeInitialViewpoint()}_readAndLoadFromJSON(e,t){const r=this._validateJSON(e);return this.read(r,t),this._loadFromJSON(r,t)}_validateJSON(e){const t=ee.parse(e.version||"","webmap");return re.validate(t),e.version=`${t.major}.${t.minor}`,e}_loadFromJSON(e,t){const r={context:{...t,layerContainerType:"operational-layers"}};return this.portalItem&&(r.context.portal=this.portalItem.portal||W.getDefault()),import("./layers/support/layersCreator.js").then((({populateOperationalLayers:t})=>{const i=[],o=e.operationalLayers;o&&o.length&&i.push(t(this.layers,o,r));const a={...r,context:{...r.context,layerContainerType:"tables"},defaultLayerType:"ArcGISFeatureLayer"},s=e.tables;return s&&s.length&&i.push(t(this.tables,s,a)),c(i).then((()=>{}))}))}async _computeInitialViewpoint(){let e=this.initialViewProperties;const t=e?.viewpoint?.targetGeometry;if(t)return;const r=await this._getExtentFromItem();r&&(e=e?e.clone():new Z,e.viewpoint=new i,e.viewpoint.targetGeometry=r,this.initialViewProperties=e)}async _getExtentFromItem(){const e=this.initialViewProperties?.spatialReference,t=this.portalItem?.extent;if(e&&t){if(e.isWGS84)return t.clone();if(e.isWebMercator)return O(t);const{getGeometryServiceURL:r}=await import("./portal/support/geometryServiceUtils.js");return r(this.portalItem).then((r=>{const i=new B;return i.geometries=[t],i.outSpatialReference=e,x(r,i)})).then((e=>e[0])).catch((e=>(p.getLogger(this.declaredClass).error("Error projecting item's extent:",e),null)))}return null}_removeDanglingLayerRefs(){const e=this.applicationProperties,t=e&&e.viewing&&e.viewing.search,r=e=>this.allLayers.some((t=>t.id===e));t&&t.layers&&(t.layers=t.layers.filter((e=>r(e.id)))),t&&t.tables&&(t.tables=t.tables.filter((e=>this.tables.some((t=>t.id===e.id)))));const i=e&&e.editing&&e.editing.locationTracking;i&&i.info&&!r(i.info.layerId)&&(e.editing=null);const o=this.presentation&&this.presentation.slides;o&&o.forEach((e=>{e.visibleLayers&&(e.visibleLayers=e.visibleLayers.filter((e=>r(e.id))))}))}async _validateMap(){if(!this.basemap?.baseLayers.length)throw new s("webmap:save","Map does not have a valid basemap with a base layer.");let e=null;if(await d((()=>{const t=D(this.initialViewProperties,this.basemap);return e=t.spatialReference,!t.updating})),!P(e,this.initialViewProperties.spatialReference))throw new s("webmap:save","The spatial reference of the basemap is not compatible with the one from the map.",{expected:this.initialViewProperties.spatialReference,actual:e})}_validateItem(){if(!this.portalItem)throw p.getLogger(this.declaredClass).error("save: requires the portalItem property to be set"),new s("webmap:portal-item-not-set","Portal item to save to has not been set on the WebMap");this._validateItemType(this.portalItem)}_validateItemType(e){if(e.type!==ie)throw new s("webmap:portal-item-wrong-type",`Portal item needs to have type "${ie}"`)}_loadLayerContainers(){const e=[];return this.basemap&&e.push(this.basemap.load()),this.ground&&e.push(this.ground.load()),c(e).then((()=>{}))}async _beforeSave(){const e=[];for(const t of this.allLayers)if("beforeSave"in t&&"function"==typeof t.beforeSave){const r=t.beforeSave();r&&e.push(r)}await c(e)}_loadAllLayers(){const e=this._getAllLayersAndTables().map((e=>e.load()));return c(e).then((()=>{}))}_getAllLayersAndTables(){return this.allLayers.concat(this.allTables)}_validateJSONForWriting(e,t){let r=(e.messages??[]).filter((e=>"error"===e.type)).map((e=>new s(e.name,e.message,e.details)));if(e.blockedRelativeUrls&&(r=r.concat(e.blockedRelativeUrls.map((e=>new s("url:unsupported",`Relative url '${e}' is not supported in Web Map`))))),t.ignoreUnsupported&&(r=r.filter((e=>"layer:unsupported"!==e.name&&"symbol:unsupported"!==e.name&&"symbol-layer:unsupported"!==e.name&&"property:unsupported"!==e.name&&"url:unsupported"!==e.name))),r.length>0)throw new s("webmap:save","Failed to save webmap due to unsupported or invalid content. See 'details.errors' for more detailed information",{errors:r})}async _updateItemProperties(e){e.extent=await this._getWGS84Extent(this.initialViewProperties.viewpoint.targetGeometry),await this._updateTypeKeywords(e)}async _updateItemPropertiesForSaveAs(e){N(e,pe),N(e,ge),N(e,M.METADATA),N(e,he),N(e,fe),N(e,we),N(e,de),N(e,ye),await this._updateItemProperties(e)}async _getWGS84Extent(e){const t=e.clone().normalize();let r;if(t.length>1)for(const i of t)r?i.width>r.width&&(r=i):r=i;else r=t[0];return this._projectToWGS84(r)}async _projectToWGS84(e){const t=e.spatialReference;if(t.isWGS84)return e.clone();if(t.isWebMercator)return L(e);const{getGeometryServiceURL:r}=await import("./portal/support/geometryServiceUtils.js"),i=await r(this.portalItem),o=new B;o.geometries=[e],o.outSpatialReference=U.WGS84;return(await x(i,o))[0]}async _updateTypeKeywords(e){E(e,le),await this._loadAllLayers(),this._evalCollectorKeyword(e),this._evalDataEditingKeyword(e),this._evalOfflineKeyword(e),this._evalDeveloperBasemapKeyword(e),this._evalUtilityNetworkKeyword(e),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}_evalCollectorKeyword(e){C(e,pe)||C(e,de)||C(e,ye)||C(e,we)||!this._hasEditableFeatureLayer()?N(e,me):E(e,me)}_evalDataEditingKeyword(e){this._hasEditableFeatureLayer()?E(e,ue):N(e,ue)}_evalOfflineKeyword(e){!C(e,he)&&this._isOfflineCapableMap()?E(e,ce):N(e,ce)}_evalDeveloperBasemapKeyword(e){J(this.basemap)?E(e,be):N(e,be)}_evalUtilityNetworkKeyword(e){this.utilityNetworks?.length?E(e,_e):N(e,_e)}_hasEditableFeatureLayer(){return this._getAllLayersAndTables().some((e=>e.loaded&&V(e)&&e.capabilities.operations.supportsEditing&&e.editingEnabled))}_isOfflineCapableMap(){return this._getAllLayersAndTables().filter((e=>"group"!==e.type)).every((e=>e.loaded&&this._isOfflineCapableLayer(e)))}_isFeatureCollectionLike(e){return F(e)||"map-notes"===e.type||"route"===e.type}_isOfflineCapableLayer(e){return V(e)&&e.capabilities.operations.supportsSync||this._isFeatureCollectionLike(e)&&!e.portalItem||("tile"===e.type||"vector-tile"===e.type)&&(e.capabilities.operations.supportsExportTiles||this._isExportableAGOLTileLayer(e)||G(e))&&e.spatialReference.equals(this.initialViewProperties.spatialReference)}_isExportableAGOLTileLayer(e){return"tile"===e.type&&(R(e.url)&&ve.some((t=>e.url?.toLowerCase().includes("/"+t+"/"))))}async _updateItem(e,t,r){await e.update({data:t}),this._syncUpInstanceWithItem(e,t,r)}async _createItem(e,t,r,i){const o=this.portalItem,a={item:o,authenticated:!(!o?.id||!o.portal.user)},n=e.portal;await n.signIn();const{copyAllowed:l,itemReloaded:p}=await this._isCopyAllowed(a,n);if(a.authenticated||=p,!l)throw new s("webmap:save-as-copy-not-allowed","Owner of this map does not allow others to save a copy");const m=await this._initializeNewItem(e,a,t,i);return this.portalItem=e,this._syncUpInstanceWithItem(e,t,r),m}async _isCopyAllowed(e,t){const{item:r,authenticated:i}=e;return r?.id&&r.typeKeywords?.includes("useOnly")?r.portal.portalHostname!==t.portalHostname?{copyAllowed:!1,itemReloaded:!1}:(i||await r.reload(),{copyAllowed:"admin"===r.itemControl||"update"===r.itemControl,itemReloaded:!0}):{copyAllowed:!0,itemReloaded:!1}}async _initializeNewItem(e,t,r,i){const o=e.portal,{item:a,authenticated:s}=t,{folder:n,copyAllResources:l}=i;let p=!1;if(l&&a?.id&&w(a.portal.url,o.url)&&(s||await a.reload(),a.isOrgItem)){const{total:e}=await a.fetchResources();p=!!e}if(p){const t=await a.copy({copyResources:"all",folder:n});e.id=t.id,e.portal=t.portal;const i=e.toJSON();await e.load(),e.read(i),await e.update({data:r})}else await(o.user?.addItem({item:e,folder:n,data:r}));return p}_syncUpInstanceWithItem(e,t,r){u.prototype.read.call(this,{version:t.version,authoringApp:t.authoringApp,authoringAppVersion:t.authoringAppVersion},{origin:"web-map",ignoreDefaults:!0,url:e.itemUrl?y(e.itemUrl):void 0}),S(r),this.resourceInfo=t}async _updateItemThumbnail(){this.thumbnailUrl&&this._isOverridden("thumbnailUrl")&&(await(this.portalItem?.updateThumbnail({thumbnail:this.thumbnailUrl,filename:this._thumbnailFilename})),this._clearThumbnailOverride())}_getPortalItem(e){let t=k.from(e);return t.id&&(t=t.clone(),t.id=null),t.type||(t.type=ie),t.portal||(t.portal=W.getDefault()),this._validateItemType(t),t}async _updateFromInternal(e,t){if(t=t||{},await d((()=>e.ready)),this._updateInitialViewProperties(e,t),e.map===this)for(const r of e.allLayerViews)"visible"in r&&"visible"in r.layer&&r._isOverridden("visible")&&(r.layer.visible=r.visible),"featureEffect"in r&&"featureEffect"in r.layer&&r._isOverridden("featureEffect")&&(r.layer.featureEffect=r.featureEffect);await this._updateThumbnailUrl(e,t)}_updateInitialViewProperties(e,t){if(t.backgroundExcluded||(this.initialViewProperties.background=e.background?.clone()),this.initialViewProperties.spatialReference=e.spatialReference?.clone(),t.viewpointExcluded||(this.initialViewProperties.viewpoint=new i({rotation:e.rotation,scale:t.scalePreserved?e.scale:null,targetGeometry:this._getViewExtent(e)})),!t.widgetsExcluded)for(const r of e.persistableViewModels)r.updateWebDocument(this)}_getViewExtent(e){const t=e.center.clone().normalize(),r=e.extent.clone(),i=r.width/2;return r.xmin=t.x-i,r.xmax=t.x+i,r}async _updateThumbnailUrl(e,t){if(t.thumbnailExcluded)return;const r=H(e,t.thumbnailSize),i=await e.takeScreenshot({format:"png",width:r.width,height:r.height});this._setAutoGeneratedThumbnail(i.dataUrl)}_setAutoGeneratedThumbnail(e){this.thumbnailUrl=e,this._thumbnailFilename=null}_clearThumbnailOverride(){this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"),this._thumbnailFilename=null}_generateCustomThumbnailFilename(e){if(f(e)){const t=g(e),r=t&&t.mediaType,i=r&&se.get(r.toLowerCase())||null,o=`thumbnail${Date.now()}`;return i?`${o}.${i}`:o}return null}_getThumbnailState(){let e=this.thumbnailUrl;return e&&(e=this._isOverridden("thumbnailUrl")?e:b(e,"w","8192")),{thumbnailUrl:e,filename:this._thumbnailFilename}}_restoreThumbnailFromState(e){this.thumbnailUrl=e.thumbnailUrl,this._thumbnailFilename=e.filename}_getAuthoringPropsState(){return{authoringApp:this.authoringApp,authoringAppVersion:this.authoringAppVersion,isAuthoringAppSetByUser:this._isAuthoringAppSetByUser,isAuthoringAppVersionSetByUser:this._isAuthoringAppVersionSetByUser}}_restoreAuthoringPropsFromState(e){e.isAuthoringAppSetByUser?this.authoringApp=e.authoringApp:this._isAuthoringAppSetByUser=!1,e.isAuthoringAppVersionSetByUser?this.authoringAppVersion=e.authoringAppVersion:this._isAuthoringAppVersionSetByUser=!1}static fromJSON(e){const t=e;if(!t)throw new s("webmap:empty-resource","Expected a JSON resource but got nothing");return new this({resourceInfo:t})}};Ae.VERSION=re,e([_({type:X,json:{write:!0}})],Ae.prototype,"applicationProperties",void 0),e([_({type:String,json:{write:{allowNull:!0,ignoreOrigin:!0}}})],Ae.prototype,"authoringApp",null),e([I("authoringApp")],Ae.prototype,"writeAuthoringApp",null),e([_({type:String,json:{write:{allowNull:!0,ignoreOrigin:!0}}})],Ae.prototype,"authoringAppVersion",null),e([I("authoringAppVersion")],Ae.prototype,"writeAuthoringAppVersion",null),e([_({json:{read:{source:"baseMap"},write:{target:"baseMap"}}})],Ae.prototype,"basemap",void 0),e([_({type:oe,json:{write:{overridePolicy:e=>({enabled:!!(e&&e.length>0),ignoreOrigin:!0})}}})],Ae.prototype,"bookmarks",void 0),e([_({type:K,json:{read:{source:"mapFloorInfo"},write:{target:"mapFloorInfo"}}})],Ae.prototype,"floorInfo",void 0),e([_({type:$,json:{write:!0}})],Ae.prototype,"geotriggersInfo",void 0),e([_({type:Z,nonNullable:!0,json:{read:{source:["background","initialState.viewpoint","mapRangeInfo","spatialReference"]},write:{ignoreOrigin:!0,target:{background:{type:te},"initialState.viewpoint":{type:i},mapRangeInfo:{type:z},spatialReference:{type:U}}}}})],Ae.prototype,"initialViewProperties",void 0),e([v("initialViewProperties")],Ae.prototype,"readInitialViewProperties",null),e([I("initialViewProperties")],Ae.prototype,"writeInitialViewProperties",null),e([_({json:{read:!1,write:{target:"operationalLayers",ignoreOrigin:!0}}})],Ae.prototype,"layers",void 0),e([I("layers")],Ae.prototype,"writeLayers",null),e([_({type:k})],Ae.prototype,"portalItem",void 0),e([_({json:{write:!0}})],Ae.prototype,"presentation",void 0),e([_()],Ae.prototype,"resourceInfo",void 0),e([_({readOnly:!0,type:ee,json:{read:{source:"version"},write:{allowNull:!0,ignoreOrigin:!0,target:"version",isRequired:!0}}})],Ae.prototype,"sourceVersion",void 0),e([v("sourceVersion")],Ae.prototype,"readSourceVersion",null),e([I("sourceVersion")],Ae.prototype,"writeSourceVersion",null),e([_({json:{read:!1,write:{ignoreOrigin:!0}}})],Ae.prototype,"tables",void 0),e([I("tables")],Ae.prototype,"writeTables",null),e([_()],Ae.prototype,"thumbnailUrl",null),e([_({type:q,json:{write:!0}})],Ae.prototype,"widgets",void 0),e([_({type:ae,json:{read:!0,write:!0}})],Ae.prototype,"utilityNetworks",void 0),Ae=e([A("esri.WebMap")],Ae);const Ie=Ae;export{Ie as default};
5
+ import{_ as e}from"./chunks/tslib.es6.js";import{version as t}from"./kernel.js";import r from"./Map.js";import i from"./Viewpoint.js";import{isSome as o}from"./core/arrayUtils.js";import a from"./core/Collection.js";import s from"./core/Error.js";import n from"./core/Loadable.js";import{loadAll as l}from"./core/loadAll.js";import p from"./core/Logger.js";import{MultiOriginJSONMixin as m,MultiOriginJSONSupport as u}from"./core/MultiOriginJSONSupport.js";import{EsriPromiseMixin as h}from"./core/Promise.js";import{eachAlways as d}from"./core/promiseUtils.js";import{whenOnce as c}from"./core/reactiveUtils.js";import{urlToObject as y,hasSameCanonicalArcGISOnlinePortal as w,isDataProtocol as f,dataComponents as g,addQueryParameter as b}from"./core/urlUtils.js";import{property as _}from"./core/accessorSupport/decorators/property.js";import"./core/accessorSupport/ensureType.js";import"./core/has.js";import{reader as v}from"./core/accessorSupport/decorators/reader.js";import{subclass as A}from"./core/accessorSupport/decorators/subclass.js";import{writer as I}from"./core/accessorSupport/decorators/writer.js";import{updateOrigins as S}from"./core/accessorSupport/originUtils.js";import{readLoadable as j}from"./core/accessorSupport/read.js";import U from"./geometry/SpatialReference.js";import{equals as P}from"./geometry/support/spatialReferenceUtils.js";import{webMercatorToGeographic as O}from"./geometry/support/webMercatorUtils.js";import{isServerOrServicesAGOLUrl as L}from"./layers/support/arcgisLayerUrl.js";import{isFeatureServiceLayer as R,isFeatureCollectionLayer as V}from"./layers/support/layerUtils.js";import T from"./networks/UtilityNetwork.js";import F from"./portal/Portal.js";import W from"./portal/PortalItem.js";import{removeTypeKeyword as k,addTypeKeyword as N,hasTypeKeyword as E,TypeKeyword as M}from"./portal/support/portalItemUtils.js";import{project as C}from"./rest/geometryService/project.js";import x from"./rest/support/ProjectParameters.js";import{hasDeveloperBasemapLayer as B,isDeveloperBasemapLayer as J,findSpatialReference as D}from"./support/basemapUtils.js";import G from"./support/MapFloorInfo.js";import K from"./webdoc/GeotriggersInfo.js";import $ from"./webdoc/RangeInfo.js";import z from"./webdoc/Widgets.js";import{getOptimalThumbnailSize as q}from"./webdoc/support/thumbnailUtils.js";import{getLayerJSON as H}from"./webdoc/support/writeUtils.js";import Q from"./webmap/ApplicationProperties.js";import X from"./webmap/Bookmark.js";import Y from"./webmap/InitialViewProperties.js";import{computeInitialViewpoint as Z}from"./webmap/initialViewPropertiesUtils.js";import{Version as ee}from"./webmap/Version.js";import te from"./webmap/background/ColorBackground.js";const re=new ee(2,28),ie="Web Map",oe=a.ofType(X),ae=a.ofType(T),se=new Map;se.set("image/jpeg","jpeg"),se.set("image/jpg","jpg"),se.set("image/png","png"),se.set("image/gif","gif");const ne="ArcGIS Pro",le=M.JSAPI,pe="CollectorDisabled",me="Collector",ue="Data Editing",he="OfflineDisabled",de="Offline",ce="Workforce Project",ye="Workforce Worker",we="Workforce Dispatcher",fe="Offline Map Areas",ge="FieldMapsDisabled",be=M.DEVELOPER_BASEMAP,_e="UtilityNetwork",ve=["NatGeo_World_Map","Ocean_Basemap","USA_Topo_Maps","World_Imagery","World_Street_Map","World_Terrain_Base","World_Topo_Map","World_Hillshade","Canvas/World_Light_Gray_Base","Canvas/World_Light_Gray_Reference","Canvas/World_Dark_Gray_Base","Canvas/World_Dark_Gray_Reference","Ocean/World_Ocean_Base","Ocean/World_Ocean_Reference","Reference/World_Boundaries_and_Places","Reference/World_Reference_Overlay","Reference/World_Transportation"].map((e=>e.toLowerCase()));let Ae=class extends(m(n.LoadableMixin(h(r)))){constructor(e){super(e),this._isAuthoringAppSetByUser=!1,this._isAuthoringAppVersionSetByUser=!1,this._thumbnailFilename=null,this._updateFromPromise=null,this._resourceReferences={portalItem:null,paths:[]},this.applicationProperties=null,this.bookmarks=new oe,this.floorInfo=null,this.geotriggersInfo=null,this.initialViewProperties=new Y,this.portalItem=null,this.presentation=null,this.sourceVersion=null,this.widgets=null,this.utilityNetworks=null,this.authoringApp=this.authoringAppVersion=null,this._isAuthoringAppSetByUser=this._isAuthoringAppVersionSetByUser=!1}destroy(){const e=this.portalItem;this.portalItem=null,e?.destroy()}initialize(){if(this.when().catch((e=>{p.getLogger(this).error("#load()","Failed to load web map",e)})),this.resourceInfo){let t;try{t=this._validateJSON(this.resourceInfo)}catch(e){return void this.addResolvingPromise(Promise.reject(e))}this.read(t)}}set authoringApp(e){this._isAuthoringAppSetByUser=!0,this._set("authoringApp",e)}writeAuthoringApp(e,t){e&&this._isAuthoringAppSetByUser?t.authoringApp=e:t.authoringApp=le}set authoringAppVersion(e){this._isAuthoringAppVersionSetByUser=!0,this._set("authoringAppVersion",e)}writeAuthoringAppVersion(e,r){e&&this._isAuthoringAppVersionSetByUser?r.authoringAppVersion=e:r.authoringAppVersion=t}readInitialViewProperties(e,t){const r=new Y;t.background&&(r.background=te.fromJSON(t.background));const o=t.initialState?.viewpoint;if(o){if(o.rotation){ee.parse(t.version||"","webmap").lessThan(2,20)&&t.authoringApp===ne&&(o.rotation*=-1)}r.viewpoint=i.fromJSON(o)}return t.mapRangeInfo&&(r.rangeInfo=$.fromJSON(t.mapRangeInfo)),t.spatialReference&&(r.spatialReference=U.fromJSON(t.spatialReference)),r}writeInitialViewProperties(e,t,r,i){if(!e)return;const o=e.background;o&&o.color&&(t.background=o.write({},i)),e.viewpoint&&(t.initialState={viewpoint:e.viewpoint.write({},i)}),e.rangeInfo&&(t.mapRangeInfo=e.rangeInfo.toJSON(i)),e.spatialReference&&(t.spatialReference=e.spatialReference.write({},i))}writeLayers(e,t,r,i){t[r]=this._writeLayers(e,i,"operational-layers")}readSourceVersion(e,t){const[r,i]=t.version.split(".");return new ee(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${re.major}.${re.minor}`}writeTables(e,t,r,i){const o=this._writeLayers(e,i,"tables");o.length&&(t[r]=o)}get thumbnailUrl(){return this.portalItem&&this.portalItem.thumbnailUrl||null}set thumbnailUrl(e){e?(this._override("thumbnailUrl",e),this._thumbnailFilename=this._generateCustomThumbnailFilename(e)):this._clearThumbnailOverride()}load(e){return this.addResolvingPromise(this._loadFromSource()),Promise.resolve(this)}loadAll(){return l(this,(e=>{e(this.ground,this.basemap,this.layers,this.tables)}))}read(e,t){t={...t,origin:"web-map"};const r=this._getAuthoringPropsState();j(this,e,(t=>super.read(e,t)),t),this._restoreAuthoringPropsFromState(r)}write(e,t){if("loaded"!==this.loadStatus){const e=new s("webmap:not-loaded","Web map must be loaded before it can be serialized");throw p.getLogger(this).error("#toJSON()","Web map must be loaded before it can be serialized",this.loadError||this.loadStatus),e}return this._removeDanglingLayerRefs(),t={...t,origin:"web-map",restrictedWebMapWriting:!0,webmap:this},super.write(e,t)}async save(e){e=e||{},this._validateItem();const t=import("./webdoc/support/saveUtils.js");await this._updateFromPromise,await this.load(),await this._loadLayerContainers(),await this._beforeSave(),await this._validateMap();const r=this.portalItem,i=y(r.itemUrl),o={origin:"web-map",messages:[],writtenProperties:[],url:i,portal:r.portal||F.getDefault(),portalItem:r,verifyItemRelativeUrls:i?{rootPath:i.path,writtenUrls:[]}:null,blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},a=this.write({},o);return await Promise.all(o.resources.pendingOperations),this._validateJSONForWriting(o,e),await this._updateItemProperties(r),await this._updateItem(r,a,o),await Promise.all([this._updateItemThumbnail(),t.then((({saveResources:e})=>e(this._resourceReferences,o,null)))]),r}async saveAs(e,t){t=t||{};const r=this._getPortalItem(e),i=import("./webdoc/support/saveUtils.js");await this._updateFromPromise,await this.load(),await this._loadLayerContainers(),await this._beforeSave(),await this._validateMap();const o={origin:"web-map",messages:[],writtenProperties:[],url:null,portal:r.portal,portalItem:r,blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}},a=this.write({},o);await Promise.all(o.resources.pendingOperations),this._validateJSONForWriting(o,t),await this._updateItemPropertiesForSaveAs(r);const s=this._getThumbnailState();return await this._createItem(r,a,o,t)&&(this._resourceReferences.portalItem=r),this._restoreThumbnailFromState(s),await Promise.all([this._updateItemThumbnail(),i.then((({saveResources:e})=>e(this._resourceReferences,o,null)))]),r}async updateFrom(e,t){const r=this._updateFromInternal(e,t);this._updateFromPromise=r,await r;r===this._updateFromPromise&&(this._updateFromPromise=null)}getLayerJSONFromResourceInfo(e){const t=this.resourceInfo;return this._collectAllLayersJSON([...t?.baseMap?.baseMapLayers||[],...t?.operationalLayers||[],...this.basemap?.resourceInfo?.data?.baseMapLayers||[]]).find((t=>t.id===e.id))}_collectAllLayersJSON(e){return e.reduce(((e,t)=>(e.push(t),"GroupLayer"===t.layerType&&(e=e.concat(this._collectAllLayersJSON(t.layers||[]))),e)),[])}_writeLayers(e,t,r){t={...t,layerContainerType:r};return e.map((e=>H(e,"tables"===r?null:this.getLayerJSONFromResourceInfo(e),t))).filter(o).toArray()}_loadFromSource(){return this.resourceInfo?this._loadFromJSON(this.resourceInfo,{origin:"web-map"}):this.portalItem&&this.portalItem.id?this._loadFromItem(this.portalItem):Promise.resolve()}async _loadFromItem(e){if(await e.load().catch((e=>{throw new s("webmap:load-portal-item","Failed to load portal item",{error:e})})),"Web Map"!==e.type)throw new s("webmap:invalid-portal-item",`Invalid portal item type '${e.type}', expected 'Web Map'`,{type:e.type});const t=await e.fetchData();this.resourceInfo=t;const r={origin:"web-map",url:y(e.itemUrl),portal:e.portal||F.getDefault(),portalItem:e,readResourcePaths:[]};await this._readAndLoadFromJSON(t,r),this._resourceReferences={portalItem:e,paths:r.readResourcePaths??[]};const i=await Z(this.initialViewProperties,e,p.getLogger(this));if(i){const e=this.initialViewProperties?.clone()??new Y;e.viewpoint=i,this.initialViewProperties=e}}_readAndLoadFromJSON(e,t){const r=this._validateJSON(e);return this.read(r,t),this._loadFromJSON(r,t)}_validateJSON(e){const t=ee.parse(e.version||"","webmap");return re.validate(t),e.version=`${t.major}.${t.minor}`,e}_loadFromJSON(e,t){const r={context:{...t,layerContainerType:"operational-layers"}};return this.portalItem&&(r.context.portal=this.portalItem.portal||F.getDefault()),import("./layers/support/layersCreator.js").then((({populateOperationalLayers:t})=>{const i=[],o=e.operationalLayers;o&&o.length&&i.push(t(this.layers,o,r));const a={...r,context:{...r.context,layerContainerType:"tables"},defaultLayerType:"ArcGISFeatureLayer"},s=e.tables;return s&&s.length&&i.push(t(this.tables,s,a)),d(i).then((()=>{}))}))}_removeDanglingLayerRefs(){const e=this.applicationProperties,t=e&&e.viewing&&e.viewing.search,r=e=>this.allLayers.some((t=>t.id===e));t&&t.layers&&(t.layers=t.layers.filter((e=>r(e.id)))),t&&t.tables&&(t.tables=t.tables.filter((e=>this.tables.some((t=>t.id===e.id)))));const i=e&&e.editing&&e.editing.locationTracking;i&&i.info&&!r(i.info.layerId)&&(e.editing=null);const o=this.presentation&&this.presentation.slides;o&&o.forEach((e=>{e.visibleLayers&&(e.visibleLayers=e.visibleLayers.filter((e=>r(e.id))))}))}async _validateMap(){if(!this.basemap?.baseLayers.length)throw new s("webmap:save","Map does not have a valid basemap with a base layer.");let e=null;if(await c((()=>{const t=D(this.initialViewProperties,this.basemap);return e=t.spatialReference,!t.updating})),!P(e,this.initialViewProperties.spatialReference))throw new s("webmap:save","The spatial reference of the basemap is not compatible with the one from the map.",{expected:this.initialViewProperties.spatialReference,actual:e})}_validateItem(){if(!this.portalItem)throw p.getLogger(this).error("save: requires the portalItem property to be set"),new s("webmap:portal-item-not-set","Portal item to save to has not been set on the WebMap");this._validateItemType(this.portalItem)}_validateItemType(e){if(e.type!==ie)throw new s("webmap:portal-item-wrong-type",`Portal item needs to have type "${ie}"`)}_loadLayerContainers(){const e=[];return this.basemap&&e.push(this.basemap.load()),this.ground&&e.push(this.ground.load()),d(e).then((()=>{}))}async _beforeSave(){const e=[];for(const t of this.allLayers)if("beforeSave"in t&&"function"==typeof t.beforeSave){const r=t.beforeSave();r&&e.push(r)}await d(e)}_loadAllLayers(){const e=this._getAllLayersAndTables().map((e=>e.load()));return d(e).then((()=>{}))}_getAllLayersAndTables(){return this.allLayers.concat(this.allTables)}_validateJSONForWriting(e,t){let r=(e.messages??[]).filter((e=>"error"===e.type)).map((e=>new s(e.name,e.message,e.details)));if(e.blockedRelativeUrls&&(r=r.concat(e.blockedRelativeUrls.map((e=>new s("url:unsupported",`Relative url '${e}' is not supported in Web Map`))))),t.ignoreUnsupported&&(r=r.filter((e=>"layer:unsupported"!==e.name&&"symbol:unsupported"!==e.name&&"symbol-layer:unsupported"!==e.name&&"property:unsupported"!==e.name&&"url:unsupported"!==e.name))),r.length>0)throw new s("webmap:save","Failed to save webmap due to unsupported or invalid content. See 'details.errors' for more detailed information",{errors:r})}async _updateItemProperties(e){e.extent=await this._getWGS84Extent(this.initialViewProperties.viewpoint.targetGeometry),await this._updateTypeKeywords(e)}async _updateItemPropertiesForSaveAs(e){k(e,pe),k(e,ge),k(e,M.METADATA),k(e,he),k(e,fe),k(e,we),k(e,ce),k(e,ye),await this._updateItemProperties(e)}async _getWGS84Extent(e){const t=e.clone().normalize();let r;if(t.length>1)for(const i of t)r?i.width>r.width&&(r=i):r=i;else r=t[0];return this._projectToWGS84(r)}async _projectToWGS84(e){const t=e.spatialReference;if(t.isWGS84)return e.clone();if(t.isWebMercator)return O(e);const{getGeometryServiceURL:r}=await import("./portal/support/geometryServiceUtils.js"),i=await r(this.portalItem),o=new x;o.geometries=[e],o.outSpatialReference=U.WGS84;return(await C(i,o))[0]}async _updateTypeKeywords(e){N(e,le),await this._loadAllLayers(),this._evalCollectorKeyword(e),this._evalDataEditingKeyword(e),this._evalOfflineKeyword(e),this._evalDeveloperBasemapKeyword(e),this._evalUtilityNetworkKeyword(e),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}_evalCollectorKeyword(e){E(e,pe)||E(e,ce)||E(e,ye)||E(e,we)||!this._hasEditableFeatureLayer()?k(e,me):N(e,me)}_evalDataEditingKeyword(e){this._hasEditableFeatureLayer()?N(e,ue):k(e,ue)}_evalOfflineKeyword(e){!E(e,he)&&this._isOfflineCapableMap()?N(e,de):k(e,de)}_evalDeveloperBasemapKeyword(e){B(this.basemap)?N(e,be):k(e,be)}_evalUtilityNetworkKeyword(e){this.utilityNetworks?.length?N(e,_e):k(e,_e)}_hasEditableFeatureLayer(){return this._getAllLayersAndTables().some((e=>e.loaded&&R(e)&&e.capabilities.operations.supportsEditing&&e.editingEnabled))}_isOfflineCapableMap(){return this._getAllLayersAndTables().filter((e=>"group"!==e.type)).every((e=>e.loaded&&this._isOfflineCapableLayer(e)))}_isFeatureCollectionLike(e){return V(e)||"map-notes"===e.type||"route"===e.type}_isOfflineCapableLayer(e){return R(e)&&e.capabilities.operations.supportsSync||this._isFeatureCollectionLike(e)&&!e.portalItem||("tile"===e.type||"vector-tile"===e.type)&&(e.capabilities.operations.supportsExportTiles||this._isExportableAGOLTileLayer(e)||J(e))&&e.spatialReference.equals(this.initialViewProperties.spatialReference)}_isExportableAGOLTileLayer(e){return"tile"===e.type&&(L(e.url)&&ve.some((t=>e.url?.toLowerCase().includes("/"+t+"/"))))}async _updateItem(e,t,r){await e.update({data:t}),this._syncUpInstanceWithItem(e,t,r)}async _createItem(e,t,r,i){const o=this.portalItem,a={item:o,authenticated:!(!o?.id||!o.portal.user)},n=e.portal;await n.signIn();const{copyAllowed:l,itemReloaded:p}=await this._isCopyAllowed(a,n);if(a.authenticated||=p,!l)throw new s("webmap:save-as-copy-not-allowed","Owner of this map does not allow others to save a copy");const m=await this._initializeNewItem(e,a,t,i);return this.portalItem=e,this._syncUpInstanceWithItem(e,t,r),m}async _isCopyAllowed(e,t){const{item:r,authenticated:i}=e;return r?.id&&r.typeKeywords?.includes("useOnly")?r.portal.portalHostname!==t.portalHostname?{copyAllowed:!1,itemReloaded:!1}:(i||await r.reload(),{copyAllowed:"admin"===r.itemControl||"update"===r.itemControl,itemReloaded:!0}):{copyAllowed:!0,itemReloaded:!1}}async _initializeNewItem(e,t,r,i){const o=e.portal,{item:a,authenticated:s}=t,{folder:n,copyAllResources:l}=i;let p=!1;if(l&&a?.id&&w(a.portal.url,o.url)&&(s||await a.reload(),a.isOrgItem)){const{total:e}=await a.fetchResources();p=!!e}if(p){const t=await a.copy({copyResources:"all",folder:n});e.id=t.id,e.portal=t.portal;const i=e.toJSON();await e.load(),e.read(i),await e.update({data:r})}else await(o.user?.addItem({item:e,folder:n,data:r}));return p}_syncUpInstanceWithItem(e,t,r){u.prototype.read.call(this,{version:t.version,authoringApp:t.authoringApp,authoringAppVersion:t.authoringAppVersion},{origin:"web-map",ignoreDefaults:!0,url:e.itemUrl?y(e.itemUrl):void 0}),S(r),this.resourceInfo=t}async _updateItemThumbnail(){this.thumbnailUrl&&this._isOverridden("thumbnailUrl")&&(await(this.portalItem?.updateThumbnail({thumbnail:this.thumbnailUrl,filename:this._thumbnailFilename})),this._clearThumbnailOverride())}_getPortalItem(e){let t=W.from(e);return t.id&&(t=t.clone(),t.id=null),t.type||(t.type=ie),t.portal||(t.portal=F.getDefault()),this._validateItemType(t),t}async _updateFromInternal(e,t){if(t=t||{},await c((()=>e.ready)),this._updateInitialViewProperties(e,t),e.map===this)for(const r of e.allLayerViews)"visible"in r&&"visible"in r.layer&&r._isOverridden("visible")&&(r.layer.visible=r.visible),"featureEffect"in r&&"featureEffect"in r.layer&&r._isOverridden("featureEffect")&&(r.layer.featureEffect=r.featureEffect);await this._updateThumbnailUrl(e,t)}_updateInitialViewProperties(e,t){if(t.backgroundExcluded||(this.initialViewProperties.background=e.background?.clone()),this.initialViewProperties.spatialReference=e.spatialReference?.clone(),t.viewpointExcluded||(this.initialViewProperties.viewpoint=new i({rotation:e.rotation,scale:t.scalePreserved?e.scale:null,targetGeometry:this._getViewExtent(e)})),!t.widgetsExcluded)for(const r of e.persistableViewModels)r.updateWebDocument(this)}_getViewExtent(e){const t=e.center.clone().normalize(),r=e.extent.clone(),i=r.width/2;return r.xmin=t.x-i,r.xmax=t.x+i,r}async _updateThumbnailUrl(e,t){if(t.thumbnailExcluded)return;const r=q(e,t.thumbnailSize),i=await e.takeScreenshot({format:"png",width:r.width,height:r.height});this._setAutoGeneratedThumbnail(i.dataUrl)}_setAutoGeneratedThumbnail(e){this.thumbnailUrl=e,this._thumbnailFilename=null}_clearThumbnailOverride(){this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"),this._thumbnailFilename=null}_generateCustomThumbnailFilename(e){if(f(e)){const t=g(e),r=t&&t.mediaType,i=r&&se.get(r.toLowerCase())||null,o=`thumbnail${Date.now()}`;return i?`${o}.${i}`:o}return null}_getThumbnailState(){let e=this.thumbnailUrl;return e&&(e=this._isOverridden("thumbnailUrl")?e:b(e,"w","8192")),{thumbnailUrl:e,filename:this._thumbnailFilename}}_restoreThumbnailFromState(e){this.thumbnailUrl=e.thumbnailUrl,this._thumbnailFilename=e.filename}_getAuthoringPropsState(){return{authoringApp:this.authoringApp,authoringAppVersion:this.authoringAppVersion,isAuthoringAppSetByUser:this._isAuthoringAppSetByUser,isAuthoringAppVersionSetByUser:this._isAuthoringAppVersionSetByUser}}_restoreAuthoringPropsFromState(e){e.isAuthoringAppSetByUser?this.authoringApp=e.authoringApp:this._isAuthoringAppSetByUser=!1,e.isAuthoringAppVersionSetByUser?this.authoringAppVersion=e.authoringAppVersion:this._isAuthoringAppVersionSetByUser=!1}static fromJSON(e){const t=e;if(!t)throw new s("webmap:empty-resource","Expected a JSON resource but got nothing");return new this({resourceInfo:t})}};Ae.VERSION=re,e([_({type:Q,json:{write:!0}})],Ae.prototype,"applicationProperties",void 0),e([_({type:String,json:{write:{allowNull:!0,ignoreOrigin:!0}}})],Ae.prototype,"authoringApp",null),e([I("authoringApp")],Ae.prototype,"writeAuthoringApp",null),e([_({type:String,json:{write:{allowNull:!0,ignoreOrigin:!0}}})],Ae.prototype,"authoringAppVersion",null),e([I("authoringAppVersion")],Ae.prototype,"writeAuthoringAppVersion",null),e([_({json:{read:{source:"baseMap"},write:{target:"baseMap"}}})],Ae.prototype,"basemap",void 0),e([_({type:oe,json:{write:{overridePolicy:e=>({enabled:!!(e&&e.length>0),ignoreOrigin:!0})}}})],Ae.prototype,"bookmarks",void 0),e([_({type:G,json:{read:{source:"mapFloorInfo"},write:{target:"mapFloorInfo"}}})],Ae.prototype,"floorInfo",void 0),e([_({type:K,json:{write:!0}})],Ae.prototype,"geotriggersInfo",void 0),e([_({type:Y,nonNullable:!0,json:{read:{source:["background","initialState.viewpoint","mapRangeInfo","spatialReference"]},write:{ignoreOrigin:!0,target:{background:{type:te},"initialState.viewpoint":{type:i},mapRangeInfo:{type:$},spatialReference:{type:U}}}}})],Ae.prototype,"initialViewProperties",void 0),e([v("initialViewProperties")],Ae.prototype,"readInitialViewProperties",null),e([I("initialViewProperties")],Ae.prototype,"writeInitialViewProperties",null),e([_({json:{read:!1,write:{target:"operationalLayers",ignoreOrigin:!0}}})],Ae.prototype,"layers",void 0),e([I("layers")],Ae.prototype,"writeLayers",null),e([_({type:W})],Ae.prototype,"portalItem",void 0),e([_({json:{write:!0}})],Ae.prototype,"presentation",void 0),e([_()],Ae.prototype,"resourceInfo",void 0),e([_({readOnly:!0,type:ee,json:{read:{source:"version"},write:{allowNull:!0,ignoreOrigin:!0,target:"version",isRequired:!0}}})],Ae.prototype,"sourceVersion",void 0),e([v("sourceVersion")],Ae.prototype,"readSourceVersion",null),e([I("sourceVersion")],Ae.prototype,"writeSourceVersion",null),e([_({json:{read:!1,write:{ignoreOrigin:!0}}})],Ae.prototype,"tables",void 0),e([I("tables")],Ae.prototype,"writeTables",null),e([_()],Ae.prototype,"thumbnailUrl",null),e([_({type:z,json:{write:!0}})],Ae.prototype,"widgets",void 0),e([_({type:ae,json:{read:!0,write:!0}})],Ae.prototype,"utilityNetworks",void 0),Ae=e([A("esri.WebMap")],Ae);const Ie=Ae;export{Ie as default};
package/WebScene.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.27/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"./chunks/tslib.es6.js";import{version as t}from"./kernel.js";import r from"./Map.js";import i from"./Viewpoint.js";import o from"./core/Collection.js";import s from"./core/Error.js";import{clone as a}from"./core/lang.js";import n from"./core/Loadable.js";import{loadAll as l}from"./core/loadAll.js";import p from"./core/Logger.js";import{destroyMaybe as c}from"./core/maybe.js";import{MultiOriginJSONMixin as d,MultiOriginJSONSupport as h}from"./core/MultiOriginJSONSupport.js";import{EsriPromiseMixin as u}from"./core/Promise.js";import{debounce as m,eachAlways as y}from"./core/promiseUtils.js";import{on as w}from"./core/reactiveUtils.js";import{urlToObject as g,addQueryParameter as f}from"./core/urlUtils.js";import{property as v}from"./core/accessorSupport/decorators/property.js";import"./core/accessorSupport/ensureType.js";import{reader as b}from"./core/accessorSupport/decorators/reader.js";import{subclass as S}from"./core/accessorSupport/decorators/subclass.js";import{writer as A}from"./core/accessorSupport/decorators/writer.js";import{updateOrigins as _}from"./core/accessorSupport/originUtils.js";import{readLoadable as I}from"./core/accessorSupport/read.js";import j from"./geometry/Extent.js";import L from"./geometry/HeightModelInfo.js";import{canProjectWithoutEngine as R}from"./geometry/projection.js";import P from"./geometry/SpatialReference.js";import{validateWebSceneError as V}from"./geometry/support/heightModelInfoUtils.js";import{fromJSON as U}from"./geometry/support/jsonUtils.js";import{isEarth as M}from"./geometry/support/spatialReferenceUtils.js";import O from"./portal/Portal.js";import E from"./portal/PortalItem.js";import C from"./support/MapFloorInfo.js";import{WebSceneTag as N}from"./support/tagSymbols.js";import{createSchemaValidationError as T,createCopyError as G}from"./support/webSceneUtils.js";import{ViewingMode as F}from"./views/ViewingMode.js";import{isSpatialReferenceSupported as W}from"./views/support/spatialReferenceSupport.js";import{saveResources as $}from"./webdoc/support/saveUtils.js";import{getOptimalThumbnailSize as J}from"./webdoc/support/thumbnailUtils.js";import x from"./webscene/ApplicationProperties.js";import k from"./webscene/Environment.js";import B from"./webscene/InitialViewProperties.js";import q from"./webscene/Presentation.js";import K from"./webscene/TransportationNetwork.js";import{Version as D}from"./webscene/Version.js";import{getLoader as H}from"./webscene/support/schemaValidatorLoader.js";var z;const Q=new D(1,31),X=()=>{const e=8,t=[],r=Q.major;for(let i=e;i<=Q.minor;i++)t.push(`${r}.${i}`);return t},Y="Web Scene",Z="ViewingMode-Local";let ee=class extends(n.LoadableMixin(u(d(r)))){constructor(e){super(e),this[z]=!0,this._layersIdGCTimeoutId=void 0,this._updateFromPromise=null,this.applicationProperties=null,this.clippingArea=null,this.clippingEnabled=!1,this.floorInfo=null,this.heightModelInfo=void 0,this.sourceVersion=null,this.transportationNetworks=null,this.presentation=new q,this.initialViewProperties=new B,this.portalItem=null,this.resourceInfo=null,this._debouncedSaveOperations=m((async(e,t,r)=>{switch(e){case te.SAVE:return this._saveImpl(t);case te.SAVE_AS:return this._saveAsImpl(r,t)}})),this._resourceReferences={portalItem:null,paths:[]},this.authoringApp=null,this.authoringAppVersion=null,this._isAuthoringAppSetByUser=!1,this._isAuthoringAppVersionSetByUser=!1}initialize(){if(this.when().catch((e=>{p.getLogger(this.declaredClass).error("#load()","Failed to load web scene",e)})),this.resourceInfo){let t;try{t=this._validateJSON(this.resourceInfo)}catch(e){return void this.addResolvingPromise(Promise.reject(e))}this.read(t),this.addResolvingPromise(this._validateSpatialReference()),this.addResolvingPromise(this._validateHeightModelInfo())}this.addHandles([w((()=>this.tables),"before-add",(e=>{e.preventDefault(),p.getLogger(this.declaredClass).errorOnce("tables","Tables are not yet supported in a WebScene")})),w((()=>this.allLayers),"change",(()=>this._scheduleLayersIdGC()))])}destroy(){this._unscheduleLayersIdGC(),this.presentation&&this.presentation.destroy(),this.portalItem=c(this.portalItem),this.basemap?.destroy()}writeClippingArea(e,t){t.clippingArea||(t.clippingArea={}),t.clippingArea.geometry=e.toJSON()}readClippingEnabled(e,t){return!!t.clippingArea&&!!t.clippingArea.clip}writeClippingEnabled(e,t){this.clippingArea&&(t.clippingArea||(t.clippingArea={}),t.clippingArea.clip=e)}writeLayers(e,t,r,i){const o={...i,layerContainerType:"operational-layers"},s=e.map((e=>this.verifyWriteLayer(e,i)?e.write({},o):null)).filter((e=>!!e));t[r]=s.toArray()}verifyWriteLayer(e,t){return"write"in e||(t&&t.messages&&t.messages.push(new s("layer:unsupported",`Layers (${e.title}, ${e.id}) of type '${e.declaredClass}' cannot be persisted in web scenes`,{layer:e})),!1)}readSourceVersion(e,t){const[r,i]=t.version.split(".");return new D(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${Q.major}.${Q.minor}`}get thumbnailUrl(){return this.portalItem?.thumbnailUrl??null}set thumbnailUrl(e){e?this._override("thumbnailUrl",e):(this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"))}set authoringApp(e){this._isAuthoringAppSetByUser=!0,this._set("authoringApp",e)}writeAuthoringApp(e,t){e&&this._isAuthoringAppSetByUser?t.authoringApp=e:t.authoringApp="ArcGIS API for JavaScript"}set authoringAppVersion(e){this._isAuthoringAppVersionSetByUser=!0,this._set("authoringAppVersion",e)}writeAuthoringAppVersion(e,r){e&&this._isAuthoringAppVersionSetByUser?r.authoringAppVersion=e:r.authoringAppVersion=t}writeGround(e,t,r,i){t[r]=e?e.write({},i):{transparency:0,layers:[]}}readInitialViewProperties(e,t){const r={};return t.initialState&&t.initialState.environment&&(r.environment=k.fromJSON(t.initialState.environment)),t.spatialReference?r.spatialReference=P.fromJSON(t.spatialReference):r.spatialReference=P.WebMercator,r.viewingMode=t.viewingMode||"global",t.initialState&&t.initialState.viewpoint&&(r.viewpoint=i.fromJSON(t.initialState.viewpoint)),new B(r)}get spatialReference(){return this.initialViewProperties?.spatialReference??P.WebMercator}get viewingMode(){return this.initialViewProperties?.viewingMode??"global"}load(e){const t=this.ground;return this.addResolvingPromise(this._loadFromSource().then((()=>{t&&t!==this.ground&&t.destroy()}))),Promise.resolve(this)}loadAll(){return l(this,(e=>{const t=this.presentation&&this.presentation.slides;e(this.ground,this.basemap,this.layers,t&&t.map((e=>e.basemap)))}))}read(e,t){t={...t,origin:"web-scene"};const r=this._isAuthoringAppVersionSetByUser,i=this._isAuthoringAppSetByUser;if(I(this,e,(t=>super.read(e,t)),t),i||(this._isAuthoringAppSetByUser=!1),r||(this._isAuthoringAppVersionSetByUser=!1),e.baseMap&&Array.isArray(e.baseMap.elevationLayers)&&this.sourceVersion?.supportsVisibleElevationLayersInSlides){const t=e.baseMap.elevationLayers.map((e=>({id:e.id}))),r=this.presentation.slides,i=(e,t)=>e.visibleLayers.some((e=>e.id===t)),o=t.filter((e=>!r.some((t=>i(t,e.id)))));r.forEach((e=>{e.visibleLayers.addMany(o)}))}}_writeBasemapElevationLayers(e){const t=e.ground&&e.ground.layers;!e.baseMap&&t&&t.length&&(e.baseMap={title:"Basemap",baseMapLayers:[]}),e.baseMap&&(e.baseMap.elevationLayers=a(t))}write(e,t){if("loaded"!==this.loadStatus){const e=new s("webscene:not-loaded","Web scene must be loaded before it can be serialized");throw p.getLogger(this.declaredClass).error("#toJSON()","Web scene must be loaded before it can be serialized",this.loadError||this.loadStatus),e}this._runLayersIdGC();const r=!t?.messages;t={messages:[],...t,origin:"web-scene"};const i=super.write(e,t);if(r){const e=t.messages?.filter((e=>"web-document-write:property-required"===e.name))??[];if(e.length){const t=new s("web-document:property-required","One or more properties that are required in the webscene JSON are missing, see details for the specific errors",{errors:e});throw p.getLogger(this.declaredClass).error("#toJSON()","One or more properties that are required in the webscene JSON are missing",e),t}}return this._writeBasemapElevationLayers(i),i}async save(e){return this._debouncedSaveOperations(te.SAVE,e)}async _saveImpl(e){if(!this.portalItem)throw p.getLogger(this.declaredClass).error("save(): requires the .portalItem property to be set"),await Promise.resolve(),new s("webscene:portal-item-not-set","Portal item to save to has not been set on the WebScene");if(this.portalItem?.type!==Y)throw await Promise.resolve(),new s("webscene:portal-item-wrong-type",`Portal item needs to have type "${Y}"`);const t=this._updateFromPromise;await this._ensureLoadBeforeSave();const r=this._enableVerifyItemRelativeUrls({origin:"web-scene",url:this.portalItem.itemUrl?g(this.portalItem.itemUrl):null,messages:[],portal:this.portalItem.portal??O.getDefault(),portalItem:this.portalItem,writtenProperties:[],blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}}),i=this.write({},r);return await Promise.all(r.resources.pendingOperations),await this._verifySave(i,r,e),this._updateTypeKeywords(this.portalItem),await this.portalItem.update({data:i}),await $(this._resourceReferences,r,null),_(r),t&&await t,await this._saveThumbnail(),this.portalItem}async saveAs(e,t){return this._debouncedSaveOperations(te.SAVE_AS,t,e)}async _saveAsImpl(e,t){let r=E.from(e);r||(p.getLogger(this.declaredClass).error("saveAs(portalItem): requires a portal item parameter"),await Promise.reject(new s("webscene:portal-item-required","saveAs requires a portal item to save to"))),r.id&&(r=r.clone(),r.id=null);const i=r.portal||O.getDefault();await this._ensureLoadBeforeSave(),r.type=Y,r.portal=i;const o=this._enableVerifyItemRelativeUrls({origin:"web-scene",url:null,messages:[],portal:i,portalItem:r,writtenProperties:[],blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}}),a=this.write({},o);await Promise.all(o.resources.pendingOperations),await this._verifySaveAs(a,o,t);const n=this.thumbnailUrl,l=!this._isOverridden("thumbnailUrl");return this._updateTypeKeywords(r),await i.signIn(),await(i.user?.addItem({item:r,folder:t&&t.folder,data:a})),await $(this._resourceReferences,o,null),this.portalItem=r,h.prototype.read.call(this,{version:a.version,authoringApp:a.authoringApp,authoringAppVersion:a.authoringAppVersion},{name:"web-scene",ignoreDefaults:!0,url:r.itemUrl?g(r.itemUrl):void 0}),_(o),n&&(this.thumbnailUrl=l?f(n,"w","8192"):n),o.portalItem=r,await this._saveThumbnail(),r}async _saveThumbnail(){this._isOverridden("thumbnailUrl")&&(await(this.portalItem?.updateThumbnail({thumbnail:this.thumbnailUrl})),this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"))}_verifySave(e,t,r,i=!1){if(!M(this.spatialReference))return Promise.reject(new s("webscene:unsupported-spatial-reference","Webscenes using spatial reference systems from Mars or Moon can not be saved currently."));let o,a=t.messages?.filter((e=>"error"===e.type)).map((e=>new s(e.name,e.message,e.details)))??[];t.blockedRelativeUrls&&(a=a.concat(t.blockedRelativeUrls.map((e=>new s("url:unsupported",`Relative url '${e}' is not supported in Web Scene`))))),r&&r.ignoreUnsupported&&(a=a.filter((e=>"layer:unsupported"!==e.name&&"symbol:unsupported"!==e.name&&"symbol-layer:unsupported"!==e.name&&"property:unsupported"!==e.name&&"url:unsupported"!==e.name&&"scenemodification:unsupported"!==e.name))),r?.requiredPropertyChecksDisabled&&(a=a.filter((e=>"web-document-write:property-required"!==e.name)));const n=!!r?.strictSchemaValidationEnabled,l=H();return o=n&&l?l().then((t=>{const r=t.validate(e);if(r.length>0){const e=`webscene did not validate:\n${r.join("\n")}`;p.getLogger(this.declaredClass).error(`${i?"saveAs":"save"}(): ${e}`)}return r.map((e=>new s("webscene:schema-validation",e)))})).then((e=>{if(e.length>0)throw T(e.concat(a));return a})):Promise.resolve(a),o.then((e=>{if(e.length>0)throw new s("webscene:save","Failed to save webscene due to unsupported or invalid content. See 'details.errors' for more detailed information",{errors:e})}))}_verifySaveAs(e,t,r){return this.canNotSaveAs(t)?Promise.reject(G()):this._verifySave(e,t,r,!0)}verifySaveAs(e){const t=this._enableVerifyItemRelativeUrls({origin:"web-scene",messages:[]}),r=this.write({},t);return this._verifySaveAs(r,t,e)}canNotSaveAs(e){return e||(e=this._enableVerifyItemRelativeUrls({origin:"web-scene",messages:[]}),this.write({},e)),(e.verifyItemRelativeUrls?.writtenUrls?.length??0)>0}async updateFrom(e,t={}){const r=this._updateFrom(e,t);this._updateFromPromise=r,await r;this._updateFromPromise===r&&(this._updateFromPromise=null)}async _updateFrom(e,t={}){if(await e.whenReady(),!t.environmentExcluded&&e.environment&&(this.initialViewProperties.environment=k.prototype.clone.apply(e.environment)),!t.viewpointExcluded&&e.viewpoint&&(this.initialViewProperties.viewpoint=e.viewpoint.clone()),this.initialViewProperties.spatialReference=e.spatialReference.clone(),this.initialViewProperties.viewingMode=e.viewingMode,null!=e.clippingArea?e.clippingArea!==this.clippingArea&&(this.clippingArea=e.clippingArea.clone(),this.clippingEnabled=!0):this.clippingEnabled=!1,e.heightModelInfo&&(this.heightModelInfo=e.heightModelInfo.clone()),e.map===this)for(const r of e.allLayerViews){const e="visible";e in r&&e in r.layer&&r._isOverridden(e)&&(r.layer[e]=r[e])}(!1===t.thumbnailExcluded||null==t.thumbnailExcluded&&!t.viewpointExcluded)&&await this._updateFromThumbnail(e,t.thumbnailSize??void 0)}async _updateFromThumbnail(e,t){const r=J(e,t),i=await e.takeScreenshot({format:"jpg",width:r.width,height:r.height,disableDecorations:!0});this.thumbnailUrl=i.dataUrl}_loadFromSource(){return this.resourceInfo?this._loadFromJSON(this.resourceInfo,{origin:"web-scene"}):this.portalItem&&this.portalItem.id?this._loadFromItem(this.portalItem):this._loadObjectsWithLayers()}_readAndLoadFromJSON(e,t){const r=this._validateJSON(e);return this.read(r,t),this._loadFromJSON(r,t)}_extractOperationalLayers(e){const t=[];if(!this.sourceVersion?.supportsGround&&e.baseMap&&Array.isArray(e.baseMap.elevationLayers))for(const o of e.baseMap.elevationLayers)t.push(o);const r=[],i=e=>(e.layers&&(e.layers=e.layers.filter(i)),"ArcGISTiledElevationServiceLayer"!==e.layerType||(this.sourceVersion?.supportsGround||r.push(e),!1));return{operationalLayers:e.operationalLayers?e.operationalLayers.filter(i):[],operationalElevationLayers:r,basemapElevationLayers:t}}_loadFromJSON(e,t){const r=new o;return this._validateSpatialReference().then((()=>this._validateHeightModelInfo())).then((()=>import("./layers/support/layersCreator.js"))).then((({populateOperationalLayers:i})=>{const{operationalLayers:o,operationalElevationLayers:s,basemapElevationLayers:a}=this._extractOperationalLayers(e),n=[],l={context:{...t,layerContainerType:"operational-layers"}};if(this.portalItem&&(l.context.portal=this.portalItem.portal||O.getDefault()),a.length>0){const e={...l,context:{...l.context,layerContainerType:"ground"}};e.defaultLayerType="ArcGISTiledElevationServiceLayer",n.push(i(this.ground.layers,a,e))}if(s.length>0){const e={...l,context:{...l.context,layerContainerType:"ground"}};e.defaultLayerType="ArcGISTiledElevationServiceLayer",n.push(i(r,s,e))}return o&&o.length>0&&n.push(i(this.layers,o,l)),y(n).then((()=>{}))})).then((()=>this._loadObjectsWithLayers())).then((()=>{this.ground.layers.addMany(r)}))}async _ensureLoadBeforeSave(){await this.load(),await this._loadObjectsWithLayers();const e=[];for(const t of this.allLayers.items)if("beforeSave"in t&&"function"==typeof t.beforeSave){const r=t.beforeSave();r&&e.push(r)}await y(e)}async _loadObjectsWithLayers(){const e=[];this.ground&&e.push(this.ground.load()),this.basemap&&e.push(this.basemap.load()),this.presentation.slides.forEach((t=>{t.basemap&&e.push(t.basemap.load())})),await y(e)}async _loadFromItem(e){if(await e.load().catch((e=>{throw new s("webscene:load-portal-item","Failed to load portal item",{error:e})})),"Web Scene"!==e.type)throw new s("webscene:invalid-portal-item","Invalid portal item type '${type}', expected 'Web Scene'",{type:e.type});const t=await e.fetchData();this.resourceInfo=t;const r={origin:"web-scene",url:g(e.itemUrl),portal:e.portal||O.getDefault(),portalItem:e,readResourcePaths:[]};await this._readAndLoadFromJSON(t,r),this._resourceReferences={portalItem:e,paths:r.readResourcePaths??[]}}_validateSpatialReference(){const e=this.initialViewProperties,t=this._sceneSpatialReference;let r;if("local"!==e.viewingMode){if(!W(t,F.Global))return Promise.reject(new s("webscene:unsupported-spatial-reference","Unsupported spatial reference (${spatialReference.wkid}) in global mode, only Web Mercator, WGS84 GCS or CGCS2000 are supported",{spatialReference:t,viewingMode:e.viewingMode}));r=e=>!e||R(e,t)}else{if(!W(t,F.Local))return Promise.reject(new s("webscene:unsupported-spatial-reference","Unsupported spatial reference (${spatialReference.wkid}) in local mode, only projected coordinate systems are supported",{spatialReference:t,viewingMode:e.viewingMode}));r=e=>!e||e.equals(t)}const i=e=>e?.camera?.position.spatialReference??e?.targetGeometry?.spatialReference,o=e.viewpoint,a=i(o);if(a&&!r(a))return Promise.reject(new s("webscene:incompatible-camera-spatial-reference","Camera spatial reference (${cameraSpatialReference.wkid}) is incompatible with the scene spatial reference (${sceneSpatialReference.wkid})",{cameraSpatialReference:a,sceneSpatialReference:t,viewingMode:e.viewingMode}));const n=this.presentation.slides.find((e=>!r(i(e.viewpoint))));if(n){const r=i(n.viewpoint);return Promise.reject(new s("webscene:incompatible-slide-spatial-reference","Slide spatial reference (${slideSpatialReference.wkid}) is incompatible with the scene spatial reference (${sceneSpatialReference.wkid})",{slideSpatialReference:r,sceneSpatialReference:t,viewingMode:e.viewingMode}))}return Promise.resolve()}_validateHeightModelInfo(){const e=this._sceneSpatialReference,t=V(this.heightModelInfo,e);return t?Promise.reject(t):Promise.resolve()}_validateJSON(e){const t=D.parse(e.version||"","webscene");return Q.validate(t),e.version=`${t.major}.${t.minor}`,1===t.major&&t.minor<=2&&(e.spatialReference=P.WebMercator.toJSON()),e}_updateTypeKeywords(e){"local"===this.initialViewProperties.viewingMode?e.typeKeywords?e.typeKeywords.includes(Z)||e.typeKeywords.push(Z):e.typeKeywords=[Z]:"global"===this.initialViewProperties.viewingMode&&e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter((e=>e!==Z))),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}get _sceneSpatialReference(){return this.initialViewProperties.spatialReference||P.WebMercator}get _verifyItemRelativeRootPath(){return this.portalItem?.itemUrl?g(this.portalItem.itemUrl).path:null}_enableVerifyItemRelativeUrls(e){const t=this._verifyItemRelativeRootPath;return t&&(e.verifyItemRelativeUrls={rootPath:t,writtenUrls:[]}),e}_unscheduleLayersIdGC(){this._layersIdGCTimeoutId&&(clearTimeout(this._layersIdGCTimeoutId),this._layersIdGCTimeoutId=0)}_scheduleLayersIdGC(){this._unscheduleLayersIdGC(),this._layersIdGCTimeoutId=setTimeout((()=>{this._layersIdGCTimeoutId=0,this._runLayersIdGC()}),3e3)}_runLayersIdGC(){this._unscheduleLayersIdGC();const e=this.applicationProperties&&this.applicationProperties.viewing&&this.applicationProperties.viewing.search,t=e=>this.allLayers.some((t=>t.id===e));e&&e.layers&&(e.layers=e.layers.filter((e=>t(e.id))));const r=this.presentation&&this.presentation.slides;r&&r.forEach((e=>{e.visibleLayers&&(e.visibleLayers=e.visibleLayers.filter((e=>t(e.id))))}))}static fromJSON(e){if(!e)throw new s("webscene:empty-resource","Expected a JSON resource but got nothing");return new this({resourceInfo:e})}};var te;z=N,ee.version=`${Q.major}.${Q.minor}`,e([v({type:x,json:{write:!0}})],ee.prototype,"applicationProperties",void 0),e([v({json:{read:{source:"baseMap"},write:{target:"baseMap"}}})],ee.prototype,"basemap",void 0),e([v({type:j,json:{read:{source:"clippingArea.geometry",reader:U},write:{target:"clippingArea.geometry"}}})],ee.prototype,"clippingArea",void 0),e([A("clippingArea")],ee.prototype,"writeClippingArea",null),e([v({type:Boolean,json:{write:{target:"clippingArea.clip"}}})],ee.prototype,"clippingEnabled",void 0),e([b("clippingEnabled",["clippingArea"])],ee.prototype,"readClippingEnabled",null),e([A("clippingEnabled")],ee.prototype,"writeClippingEnabled",null),e([v({type:C,json:{read:{source:"mapFloorInfo"},write:{target:"mapFloorInfo"}}})],ee.prototype,"floorInfo",void 0),e([v({type:L,json:{write:!0}})],ee.prototype,"heightModelInfo",void 0),e([v({json:{write:{target:"operationalLayers",ignoreOrigin:!0}}})],ee.prototype,"layers",void 0),e([A("layers")],ee.prototype,"writeLayers",null),e([v({readOnly:!0,type:D,json:{type:X(),write:{ignoreOrigin:!0,target:"version",isRequired:!0,overridePolicy:()=>({enabled:!0,allowNull:!0,ignoreOrigin:!0})}}})],ee.prototype,"sourceVersion",void 0),e([b("sourceVersion",["version"])],ee.prototype,"readSourceVersion",null),e([A("sourceVersion")],ee.prototype,"writeSourceVersion",null),e([v({json:{read:!1,write:!1}})],ee.prototype,"tables",void 0),e([v()],ee.prototype,"thumbnailUrl",null),e([v({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],ee.prototype,"authoringApp",null),e([A("authoringApp")],ee.prototype,"writeAuthoringApp",null),e([v({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],ee.prototype,"authoringAppVersion",null),e([A("authoringAppVersion")],ee.prototype,"writeAuthoringAppVersion",null),e([v({json:{write:{isRequired:!0,allowNull:!0,ignoreOrigin:!0,enabled:!0}}})],ee.prototype,"ground",void 0),e([A("ground")],ee.prototype,"writeGround",null),e([v({type:o.ofType(K),json:{write:!0}})],ee.prototype,"transportationNetworks",void 0),e([v({type:q,nonNullable:!0,json:{write:{ignoreOrigin:!0,writer:(e,t,r,i)=>{if(e.slides&&e.slides.length>0){const r={...i,isPresentation:!0};t.presentation=e.write({},r)}}}}})],ee.prototype,"presentation",void 0),e([v({type:B,nonNullable:!0,json:{write:{target:"initialState",isRequired:!0,ignoreOrigin:!0},default:()=>new B({viewingMode:"global",spatialReference:P.WebMercator})}})],ee.prototype,"initialViewProperties",void 0),e([b("initialViewProperties",["initialState.environment","spatialReference","viewingMode","initialState.viewpoint"])],ee.prototype,"readInitialViewProperties",null),e([v({type:P,json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],ee.prototype,"spatialReference",null),e([v({type:["local","global"],json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],ee.prototype,"viewingMode",null),e([v({type:E})],ee.prototype,"portalItem",void 0),e([v()],ee.prototype,"resourceInfo",void 0),ee=e([S("esri.WebScene")],ee),function(e){e[e.SAVE=0]="SAVE",e[e.SAVE_AS=1]="SAVE_AS"}(te||(te={}));const re=ee;export{re as default};
5
+ import{_ as e}from"./chunks/tslib.es6.js";import{version as t}from"./kernel.js";import r from"./Map.js";import i from"./Viewpoint.js";import o from"./core/Collection.js";import s from"./core/Error.js";import{clone as a}from"./core/lang.js";import n from"./core/Loadable.js";import{loadAll as l}from"./core/loadAll.js";import p from"./core/Logger.js";import{destroyMaybe as c}from"./core/maybe.js";import{MultiOriginJSONMixin as d,MultiOriginJSONSupport as h}from"./core/MultiOriginJSONSupport.js";import{EsriPromiseMixin as u}from"./core/Promise.js";import{debounce as m,eachAlways as y}from"./core/promiseUtils.js";import{on as w}from"./core/reactiveUtils.js";import{urlToObject as g,addQueryParameter as f}from"./core/urlUtils.js";import{property as v}from"./core/accessorSupport/decorators/property.js";import"./core/accessorSupport/ensureType.js";import{reader as b}from"./core/accessorSupport/decorators/reader.js";import{subclass as S}from"./core/accessorSupport/decorators/subclass.js";import{writer as A}from"./core/accessorSupport/decorators/writer.js";import{updateOrigins as _}from"./core/accessorSupport/originUtils.js";import{readLoadable as I}from"./core/accessorSupport/read.js";import j from"./geometry/Extent.js";import L from"./geometry/HeightModelInfo.js";import{canProjectWithoutEngine as R}from"./geometry/projection.js";import P from"./geometry/SpatialReference.js";import{validateWebSceneError as V}from"./geometry/support/heightModelInfoUtils.js";import{fromJSON as U}from"./geometry/support/jsonUtils.js";import{isEarth as M}from"./geometry/support/spatialReferenceUtils.js";import O from"./portal/Portal.js";import E from"./portal/PortalItem.js";import C from"./support/MapFloorInfo.js";import{WebSceneTag as N}from"./support/tagSymbols.js";import{createSchemaValidationError as T,createCopyError as G}from"./support/webSceneUtils.js";import{ViewingMode as F}from"./views/ViewingMode.js";import{isSpatialReferenceSupported as W}from"./views/support/spatialReferenceSupport.js";import{saveResources as $}from"./webdoc/support/saveUtils.js";import{getOptimalThumbnailSize as J}from"./webdoc/support/thumbnailUtils.js";import x from"./webscene/ApplicationProperties.js";import k from"./webscene/Environment.js";import B from"./webscene/InitialViewProperties.js";import q from"./webscene/Presentation.js";import K from"./webscene/TransportationNetwork.js";import{Version as D}from"./webscene/Version.js";import{getLoader as H}from"./webscene/support/schemaValidatorLoader.js";var z;const Q=new D(1,31),X=()=>{const e=8,t=[],r=Q.major;for(let i=e;i<=Q.minor;i++)t.push(`${r}.${i}`);return t},Y="Web Scene",Z="ViewingMode-Local";let ee=class extends(n.LoadableMixin(u(d(r)))){constructor(e){super(e),this[z]=!0,this._layersIdGCTimeoutId=void 0,this._updateFromPromise=null,this.applicationProperties=null,this.clippingArea=null,this.clippingEnabled=!1,this.floorInfo=null,this.heightModelInfo=void 0,this.sourceVersion=null,this.transportationNetworks=null,this.presentation=new q,this.initialViewProperties=new B,this.portalItem=null,this.resourceInfo=null,this._debouncedSaveOperations=m((async(e,t,r)=>{switch(e){case te.SAVE:return this._saveImpl(t);case te.SAVE_AS:return this._saveAsImpl(r,t)}})),this._resourceReferences={portalItem:null,paths:[]},this.authoringApp=null,this.authoringAppVersion=null,this._isAuthoringAppSetByUser=!1,this._isAuthoringAppVersionSetByUser=!1}initialize(){if(this.when().catch((e=>{p.getLogger(this).error("#load()","Failed to load web scene",e)})),this.resourceInfo){let t;try{t=this._validateJSON(this.resourceInfo)}catch(e){return void this.addResolvingPromise(Promise.reject(e))}this.read(t),this.addResolvingPromise(this._validateSpatialReference()),this.addResolvingPromise(this._validateHeightModelInfo())}this.addHandles([w((()=>this.tables),"before-add",(e=>{e.preventDefault(),p.getLogger(this).errorOnce("tables","Tables are not yet supported in a WebScene")})),w((()=>this.allLayers),"change",(()=>this._scheduleLayersIdGC()))])}destroy(){this._unscheduleLayersIdGC(),this.presentation&&this.presentation.destroy(),this.portalItem=c(this.portalItem),this.basemap?.destroy()}writeClippingArea(e,t){t.clippingArea||(t.clippingArea={}),t.clippingArea.geometry=e.toJSON()}readClippingEnabled(e,t){return!!t.clippingArea&&!!t.clippingArea.clip}writeClippingEnabled(e,t){this.clippingArea&&(t.clippingArea||(t.clippingArea={}),t.clippingArea.clip=e)}writeLayers(e,t,r,i){const o={...i,layerContainerType:"operational-layers"},s=e.map((e=>this.verifyWriteLayer(e,i)?e.write({},o):null)).filter((e=>!!e));t[r]=s.toArray()}verifyWriteLayer(e,t){return"write"in e||(t&&t.messages&&t.messages.push(new s("layer:unsupported",`Layers (${e.title}, ${e.id}) of type '${e.declaredClass}' cannot be persisted in web scenes`,{layer:e})),!1)}readSourceVersion(e,t){const[r,i]=t.version.split(".");return new D(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${Q.major}.${Q.minor}`}get thumbnailUrl(){return this.portalItem?.thumbnailUrl??null}set thumbnailUrl(e){e?this._override("thumbnailUrl",e):(this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"))}set authoringApp(e){this._isAuthoringAppSetByUser=!0,this._set("authoringApp",e)}writeAuthoringApp(e,t){e&&this._isAuthoringAppSetByUser?t.authoringApp=e:t.authoringApp="ArcGIS API for JavaScript"}set authoringAppVersion(e){this._isAuthoringAppVersionSetByUser=!0,this._set("authoringAppVersion",e)}writeAuthoringAppVersion(e,r){e&&this._isAuthoringAppVersionSetByUser?r.authoringAppVersion=e:r.authoringAppVersion=t}writeGround(e,t,r,i){t[r]=e?e.write({},i):{transparency:0,layers:[]}}readInitialViewProperties(e,t){const r={};return t.initialState&&t.initialState.environment&&(r.environment=k.fromJSON(t.initialState.environment)),t.spatialReference?r.spatialReference=P.fromJSON(t.spatialReference):r.spatialReference=P.WebMercator,r.viewingMode=t.viewingMode||"global",t.initialState&&t.initialState.viewpoint&&(r.viewpoint=i.fromJSON(t.initialState.viewpoint)),new B(r)}get spatialReference(){return this.initialViewProperties?.spatialReference??P.WebMercator}get viewingMode(){return this.initialViewProperties?.viewingMode??"global"}load(e){const t=this.ground;return this.addResolvingPromise(this._loadFromSource().then((()=>{t&&t!==this.ground&&t.destroy()}))),Promise.resolve(this)}loadAll(){return l(this,(e=>{const t=this.presentation&&this.presentation.slides;e(this.ground,this.basemap,this.layers,t&&t.map((e=>e.basemap)))}))}read(e,t){t={...t,origin:"web-scene"};const r=this._isAuthoringAppVersionSetByUser,i=this._isAuthoringAppSetByUser;if(I(this,e,(t=>super.read(e,t)),t),i||(this._isAuthoringAppSetByUser=!1),r||(this._isAuthoringAppVersionSetByUser=!1),e.baseMap&&Array.isArray(e.baseMap.elevationLayers)&&this.sourceVersion?.supportsVisibleElevationLayersInSlides){const t=e.baseMap.elevationLayers.map((e=>({id:e.id}))),r=this.presentation.slides,i=(e,t)=>e.visibleLayers.some((e=>e.id===t)),o=t.filter((e=>!r.some((t=>i(t,e.id)))));r.forEach((e=>{e.visibleLayers.addMany(o)}))}}_writeBasemapElevationLayers(e){const t=e.ground&&e.ground.layers;!e.baseMap&&t&&t.length&&(e.baseMap={title:"Basemap",baseMapLayers:[]}),e.baseMap&&(e.baseMap.elevationLayers=a(t))}write(e,t){if("loaded"!==this.loadStatus){const e=new s("webscene:not-loaded","Web scene must be loaded before it can be serialized");throw p.getLogger(this).error("#toJSON()","Web scene must be loaded before it can be serialized",this.loadError||this.loadStatus),e}this._runLayersIdGC();const r=!t?.messages;t={messages:[],...t,origin:"web-scene"};const i=super.write(e,t);if(r){const e=t.messages?.filter((e=>"web-document-write:property-required"===e.name))??[];if(e.length){const t=new s("web-document:property-required","One or more properties that are required in the webscene JSON are missing, see details for the specific errors",{errors:e});throw p.getLogger(this).error("#toJSON()","One or more properties that are required in the webscene JSON are missing",e),t}}return this._writeBasemapElevationLayers(i),i}async save(e){return this._debouncedSaveOperations(te.SAVE,e)}async _saveImpl(e){if(!this.portalItem)throw p.getLogger(this).error("save(): requires the .portalItem property to be set"),await Promise.resolve(),new s("webscene:portal-item-not-set","Portal item to save to has not been set on the WebScene");if(this.portalItem?.type!==Y)throw await Promise.resolve(),new s("webscene:portal-item-wrong-type",`Portal item needs to have type "${Y}"`);const t=this._updateFromPromise;await this._ensureLoadBeforeSave();const r=this._enableVerifyItemRelativeUrls({origin:"web-scene",url:this.portalItem.itemUrl?g(this.portalItem.itemUrl):null,messages:[],portal:this.portalItem.portal??O.getDefault(),portalItem:this.portalItem,writtenProperties:[],blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}}),i=this.write({},r);return await Promise.all(r.resources.pendingOperations),await this._verifySave(i,r,e),this._updateTypeKeywords(this.portalItem),await this.portalItem.update({data:i}),await $(this._resourceReferences,r,null),_(r),t&&await t,await this._saveThumbnail(),this.portalItem}async saveAs(e,t){return this._debouncedSaveOperations(te.SAVE_AS,t,e)}async _saveAsImpl(e,t){let r=E.from(e);r||(p.getLogger(this).error("saveAs(portalItem): requires a portal item parameter"),await Promise.reject(new s("webscene:portal-item-required","saveAs requires a portal item to save to"))),r.id&&(r=r.clone(),r.id=null);const i=r.portal||O.getDefault();await this._ensureLoadBeforeSave(),r.type=Y,r.portal=i;const o=this._enableVerifyItemRelativeUrls({origin:"web-scene",url:null,messages:[],portal:i,portalItem:r,writtenProperties:[],blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}}),a=this.write({},o);await Promise.all(o.resources.pendingOperations),await this._verifySaveAs(a,o,t);const n=this.thumbnailUrl,l=!this._isOverridden("thumbnailUrl");return this._updateTypeKeywords(r),await i.signIn(),await(i.user?.addItem({item:r,folder:t&&t.folder,data:a})),await $(this._resourceReferences,o,null),this.portalItem=r,h.prototype.read.call(this,{version:a.version,authoringApp:a.authoringApp,authoringAppVersion:a.authoringAppVersion},{name:"web-scene",ignoreDefaults:!0,url:r.itemUrl?g(r.itemUrl):void 0}),_(o),n&&(this.thumbnailUrl=l?f(n,"w","8192"):n),o.portalItem=r,await this._saveThumbnail(),r}async _saveThumbnail(){this._isOverridden("thumbnailUrl")&&(await(this.portalItem?.updateThumbnail({thumbnail:this.thumbnailUrl})),this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"))}_verifySave(e,t,r,i=!1){if(!M(this.spatialReference))return Promise.reject(new s("webscene:unsupported-spatial-reference","Webscenes using spatial reference systems from Mars or Moon can not be saved currently."));let o,a=t.messages?.filter((e=>"error"===e.type)).map((e=>new s(e.name,e.message,e.details)))??[];t.blockedRelativeUrls&&(a=a.concat(t.blockedRelativeUrls.map((e=>new s("url:unsupported",`Relative url '${e}' is not supported in Web Scene`))))),r&&r.ignoreUnsupported&&(a=a.filter((e=>"layer:unsupported"!==e.name&&"symbol:unsupported"!==e.name&&"symbol-layer:unsupported"!==e.name&&"property:unsupported"!==e.name&&"url:unsupported"!==e.name&&"scenemodification:unsupported"!==e.name))),r?.requiredPropertyChecksDisabled&&(a=a.filter((e=>"web-document-write:property-required"!==e.name)));const n=!!r?.strictSchemaValidationEnabled,l=H();return o=n&&l?l().then((t=>{const r=t.validate(e);if(r.length>0){const e=`webscene did not validate:\n${r.join("\n")}`;p.getLogger(this).error(`${i?"saveAs":"save"}(): ${e}`)}return r.map((e=>new s("webscene:schema-validation",e)))})).then((e=>{if(e.length>0)throw T(e.concat(a));return a})):Promise.resolve(a),o.then((e=>{if(e.length>0)throw new s("webscene:save","Failed to save webscene due to unsupported or invalid content. See 'details.errors' for more detailed information",{errors:e})}))}_verifySaveAs(e,t,r){return this.canNotSaveAs(t)?Promise.reject(G()):this._verifySave(e,t,r,!0)}verifySaveAs(e){const t=this._enableVerifyItemRelativeUrls({origin:"web-scene",messages:[]}),r=this.write({},t);return this._verifySaveAs(r,t,e)}canNotSaveAs(e){return e||(e=this._enableVerifyItemRelativeUrls({origin:"web-scene",messages:[]}),this.write({},e)),(e.verifyItemRelativeUrls?.writtenUrls?.length??0)>0}async updateFrom(e,t={}){const r=this._updateFrom(e,t);this._updateFromPromise=r,await r;this._updateFromPromise===r&&(this._updateFromPromise=null)}async _updateFrom(e,t={}){if(await e.whenReady(),!t.environmentExcluded&&e.environment&&(this.initialViewProperties.environment=k.prototype.clone.apply(e.environment)),!t.viewpointExcluded&&e.viewpoint&&(this.initialViewProperties.viewpoint=e.viewpoint.clone()),this.initialViewProperties.spatialReference=e.spatialReference.clone(),this.initialViewProperties.viewingMode=e.viewingMode,null!=e.clippingArea?e.clippingArea!==this.clippingArea&&(this.clippingArea=e.clippingArea.clone(),this.clippingEnabled=!0):this.clippingEnabled=!1,e.heightModelInfo&&(this.heightModelInfo=e.heightModelInfo.clone()),e.map===this)for(const r of e.allLayerViews){const e="visible";e in r&&e in r.layer&&r._isOverridden(e)&&(r.layer[e]=r[e])}(!1===t.thumbnailExcluded||null==t.thumbnailExcluded&&!t.viewpointExcluded)&&await this._updateFromThumbnail(e,t.thumbnailSize??void 0)}async _updateFromThumbnail(e,t){const r=J(e,t),i=await e.takeScreenshot({format:"jpg",width:r.width,height:r.height,disableDecorations:!0});this.thumbnailUrl=i.dataUrl}_loadFromSource(){return this.resourceInfo?this._loadFromJSON(this.resourceInfo,{origin:"web-scene"}):this.portalItem&&this.portalItem.id?this._loadFromItem(this.portalItem):this._loadObjectsWithLayers()}_readAndLoadFromJSON(e,t){const r=this._validateJSON(e);return this.read(r,t),this._loadFromJSON(r,t)}_extractOperationalLayers(e){const t=[];if(!this.sourceVersion?.supportsGround&&e.baseMap&&Array.isArray(e.baseMap.elevationLayers))for(const o of e.baseMap.elevationLayers)t.push(o);const r=[],i=e=>(e.layers&&(e.layers=e.layers.filter(i)),"ArcGISTiledElevationServiceLayer"!==e.layerType||(this.sourceVersion?.supportsGround||r.push(e),!1));return{operationalLayers:e.operationalLayers?e.operationalLayers.filter(i):[],operationalElevationLayers:r,basemapElevationLayers:t}}_loadFromJSON(e,t){const r=new o;return this._validateSpatialReference().then((()=>this._validateHeightModelInfo())).then((()=>import("./layers/support/layersCreator.js"))).then((({populateOperationalLayers:i})=>{const{operationalLayers:o,operationalElevationLayers:s,basemapElevationLayers:a}=this._extractOperationalLayers(e),n=[],l={context:{...t,layerContainerType:"operational-layers"}};if(this.portalItem&&(l.context.portal=this.portalItem.portal||O.getDefault()),a.length>0){const e={...l,context:{...l.context,layerContainerType:"ground"}};e.defaultLayerType="ArcGISTiledElevationServiceLayer",n.push(i(this.ground.layers,a,e))}if(s.length>0){const e={...l,context:{...l.context,layerContainerType:"ground"}};e.defaultLayerType="ArcGISTiledElevationServiceLayer",n.push(i(r,s,e))}return o&&o.length>0&&n.push(i(this.layers,o,l)),y(n).then((()=>{}))})).then((()=>this._loadObjectsWithLayers())).then((()=>{this.ground.layers.addMany(r)}))}async _ensureLoadBeforeSave(){await this.load(),await this._loadObjectsWithLayers();const e=[],t=[...this.allLayers.items];for(const{basemap:r}of this.presentation.slides.items)r&&(t.push(...r.baseLayers.items),t.push(...r.referenceLayers.items));for(const r of t)if("beforeSave"in r&&"function"==typeof r.beforeSave){const t=r.beforeSave();t&&e.push(t)}await y(e)}async _loadObjectsWithLayers(){const e=[];this.ground&&e.push(this.ground.load()),this.basemap&&e.push(this.basemap.load()),this.presentation.slides.forEach((t=>{t.basemap&&e.push(t.basemap.load())})),await y(e)}async _loadFromItem(e){if(await e.load().catch((e=>{throw new s("webscene:load-portal-item","Failed to load portal item",{error:e})})),"Web Scene"!==e.type)throw new s("webscene:invalid-portal-item","Invalid portal item type '${type}', expected 'Web Scene'",{type:e.type});const t=await e.fetchData();this.resourceInfo=t;const r={origin:"web-scene",url:g(e.itemUrl),portal:e.portal||O.getDefault(),portalItem:e,readResourcePaths:[]};await this._readAndLoadFromJSON(t,r),this._resourceReferences={portalItem:e,paths:r.readResourcePaths??[]}}_validateSpatialReference(){const e=this.initialViewProperties,t=this._sceneSpatialReference;let r;if("local"!==e.viewingMode){if(!W(t,F.Global))return Promise.reject(new s("webscene:unsupported-spatial-reference","Unsupported spatial reference (${spatialReference.wkid}) in global mode, only Web Mercator, WGS84 GCS or CGCS2000 are supported",{spatialReference:t,viewingMode:e.viewingMode}));r=e=>!e||R(e,t)}else{if(!W(t,F.Local))return Promise.reject(new s("webscene:unsupported-spatial-reference","Unsupported spatial reference (${spatialReference.wkid}) in local mode, only projected coordinate systems are supported",{spatialReference:t,viewingMode:e.viewingMode}));r=e=>!e||e.equals(t)}const i=e=>e?.camera?.position.spatialReference??e?.targetGeometry?.spatialReference,o=e.viewpoint,a=i(o);if(a&&!r(a))return Promise.reject(new s("webscene:incompatible-camera-spatial-reference","Camera spatial reference (${cameraSpatialReference.wkid}) is incompatible with the scene spatial reference (${sceneSpatialReference.wkid})",{cameraSpatialReference:a,sceneSpatialReference:t,viewingMode:e.viewingMode}));const n=this.presentation.slides.find((e=>!r(i(e.viewpoint))));if(n){const r=i(n.viewpoint);return Promise.reject(new s("webscene:incompatible-slide-spatial-reference","Slide spatial reference (${slideSpatialReference.wkid}) is incompatible with the scene spatial reference (${sceneSpatialReference.wkid})",{slideSpatialReference:r,sceneSpatialReference:t,viewingMode:e.viewingMode}))}return Promise.resolve()}_validateHeightModelInfo(){const e=this._sceneSpatialReference,t=V(this.heightModelInfo,e);return t?Promise.reject(t):Promise.resolve()}_validateJSON(e){const t=D.parse(e.version||"","webscene");return Q.validate(t),e.version=`${t.major}.${t.minor}`,1===t.major&&t.minor<=2&&(e.spatialReference=P.WebMercator.toJSON()),e}_updateTypeKeywords(e){"local"===this.initialViewProperties.viewingMode?e.typeKeywords?e.typeKeywords.includes(Z)||e.typeKeywords.push(Z):e.typeKeywords=[Z]:"global"===this.initialViewProperties.viewingMode&&e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter((e=>e!==Z))),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}get _sceneSpatialReference(){return this.initialViewProperties.spatialReference||P.WebMercator}get _verifyItemRelativeRootPath(){return this.portalItem?.itemUrl?g(this.portalItem.itemUrl).path:null}_enableVerifyItemRelativeUrls(e){const t=this._verifyItemRelativeRootPath;return t&&(e.verifyItemRelativeUrls={rootPath:t,writtenUrls:[]}),e}_unscheduleLayersIdGC(){this._layersIdGCTimeoutId&&(clearTimeout(this._layersIdGCTimeoutId),this._layersIdGCTimeoutId=0)}_scheduleLayersIdGC(){this._unscheduleLayersIdGC(),this._layersIdGCTimeoutId=setTimeout((()=>{this._layersIdGCTimeoutId=0,this._runLayersIdGC()}),3e3)}_runLayersIdGC(){this._unscheduleLayersIdGC();const e=this.applicationProperties&&this.applicationProperties.viewing&&this.applicationProperties.viewing.search,t=e=>this.allLayers.some((t=>t.id===e));e&&e.layers&&(e.layers=e.layers.filter((e=>t(e.id))));const r=this.presentation&&this.presentation.slides;r&&r.forEach((e=>{e.visibleLayers&&(e.visibleLayers=e.visibleLayers.filter((e=>t(e.id))))}))}static fromJSON(e){if(!e)throw new s("webscene:empty-resource","Expected a JSON resource but got nothing");return new this({resourceInfo:e})}};var te;z=N,ee.version=`${Q.major}.${Q.minor}`,e([v({type:x,json:{write:!0}})],ee.prototype,"applicationProperties",void 0),e([v({json:{read:{source:"baseMap"},write:{target:"baseMap"}}})],ee.prototype,"basemap",void 0),e([v({type:j,json:{read:{source:"clippingArea.geometry",reader:U},write:{target:"clippingArea.geometry"}}})],ee.prototype,"clippingArea",void 0),e([A("clippingArea")],ee.prototype,"writeClippingArea",null),e([v({type:Boolean,json:{write:{target:"clippingArea.clip"}}})],ee.prototype,"clippingEnabled",void 0),e([b("clippingEnabled",["clippingArea"])],ee.prototype,"readClippingEnabled",null),e([A("clippingEnabled")],ee.prototype,"writeClippingEnabled",null),e([v({type:C,json:{read:{source:"mapFloorInfo"},write:{target:"mapFloorInfo"}}})],ee.prototype,"floorInfo",void 0),e([v({type:L,json:{write:!0}})],ee.prototype,"heightModelInfo",void 0),e([v({json:{write:{target:"operationalLayers",ignoreOrigin:!0}}})],ee.prototype,"layers",void 0),e([A("layers")],ee.prototype,"writeLayers",null),e([v({readOnly:!0,type:D,json:{type:X(),write:{ignoreOrigin:!0,target:"version",isRequired:!0,overridePolicy:()=>({enabled:!0,allowNull:!0,ignoreOrigin:!0})}}})],ee.prototype,"sourceVersion",void 0),e([b("sourceVersion",["version"])],ee.prototype,"readSourceVersion",null),e([A("sourceVersion")],ee.prototype,"writeSourceVersion",null),e([v({json:{read:!1,write:!1}})],ee.prototype,"tables",void 0),e([v()],ee.prototype,"thumbnailUrl",null),e([v({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],ee.prototype,"authoringApp",null),e([A("authoringApp")],ee.prototype,"writeAuthoringApp",null),e([v({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],ee.prototype,"authoringAppVersion",null),e([A("authoringAppVersion")],ee.prototype,"writeAuthoringAppVersion",null),e([v({json:{write:{isRequired:!0,allowNull:!0,ignoreOrigin:!0,enabled:!0}}})],ee.prototype,"ground",void 0),e([A("ground")],ee.prototype,"writeGround",null),e([v({type:o.ofType(K),json:{write:!0}})],ee.prototype,"transportationNetworks",void 0),e([v({type:q,nonNullable:!0,json:{write:{ignoreOrigin:!0,writer:(e,t,r,i)=>{if(e.slides&&e.slides.length>0){const r={...i,isPresentation:!0};t.presentation=e.write({},r)}}}}})],ee.prototype,"presentation",void 0),e([v({type:B,nonNullable:!0,json:{write:{target:"initialState",isRequired:!0,ignoreOrigin:!0},default:()=>new B({viewingMode:"global",spatialReference:P.WebMercator})}})],ee.prototype,"initialViewProperties",void 0),e([b("initialViewProperties",["initialState.environment","spatialReference","viewingMode","initialState.viewpoint"])],ee.prototype,"readInitialViewProperties",null),e([v({type:P,json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],ee.prototype,"spatialReference",null),e([v({type:["local","global"],json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],ee.prototype,"viewingMode",null),e([v({type:E})],ee.prototype,"portalItem",void 0),e([v()],ee.prototype,"resourceInfo",void 0),ee=e([S("esri.WebScene")],ee),function(e){e[e.SAVE=0]="SAVE",e[e.SAVE_AS=1]="SAVE_AS"}(te||(te={}));const re=ee;export{re 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.27/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import r from"./Analysis.js";import{equals as t}from"../core/arrayUtils.js";import o from"../core/Logger.js";import{measurementAreaUnits as s}from"../core/unitUtils.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/has.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import n from"../geometry/Polygon.js";let p=class extends r{constructor(e){super(e),this.type="area-measurement",this.unit=null}set geometry(e){null!=e?(e.rings.length>1&&o.getLogger(this.declaredClass).warn("Measuring polygons with multiple rings is not supported."),this._set("geometry",e.clone())):this._set("geometry",null)}get requiredPropertiesForEditing(){if(null!=this.geometry&&1===this.geometry.rings.length){const e=this.geometry.rings[0];if(e.length<=2||!t(e[0],e[e.length-1]))return[null]}return[this.geometry]}clear(){this.geometry=null}};e([i({type:["area-measurement"]})],p.prototype,"type",void 0),e([i({value:null,type:n})],p.prototype,"geometry",null),e([i({type:s,value:null})],p.prototype,"unit",void 0),e([i({readOnly:!0})],p.prototype,"requiredPropertiesForEditing",null),p=e([l("esri.analysis.AreaMeasurementAnalysis")],p);const m=p;export{m as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import r from"./Analysis.js";import{equals as t}from"../core/arrayUtils.js";import o from"../core/Logger.js";import{measurementAreaUnits as s}from"../core/unitUtils.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/has.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import l from"../geometry/Polygon.js";let p=class extends r{constructor(e){super(e),this.type="area-measurement",this.unit=null}set geometry(e){null!=e?(e.rings.length>1&&o.getLogger(this).warn("Measuring polygons with multiple rings is not supported."),this._set("geometry",e.clone())):this._set("geometry",null)}get requiredPropertiesForEditing(){if(null!=this.geometry&&1===this.geometry.rings.length){const e=this.geometry.rings[0];if(e.length<=2||!t(e[0],e[e.length-1]))return[null]}return[this.geometry]}clear(){this.geometry=null}};e([i({type:["area-measurement"]})],p.prototype,"type",void 0),e([i({value:null,type:l})],p.prototype,"geometry",null),e([i({type:s,value:null})],p.prototype,"unit",void 0),e([i({readOnly:!0})],p.prototype,"requiredPropertiesForEditing",null),p=e([n("esri.analysis.AreaMeasurementAnalysis")],p);const m=p;export{m as default};