@arcgis/core 5.1.0-next.65 → 5.1.0-next.66

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 (481) hide show
  1. package/applications/KnowledgeStudio/generalSdkInternalAccess.d.ts +11 -1
  2. package/applications/KnowledgeStudio/generalSdkInternalAccess.js +1 -1
  3. package/applications/WebEditor/drawToolZSnapping.d.ts +17 -0
  4. package/applications/WebEditor/drawToolZSnapping.js +2 -0
  5. package/arcade/Dictionary.js +1 -1
  6. package/arcade/Feature.js +1 -1
  7. package/arcade/Pixel.js +1 -1
  8. package/arcade/Voxel.js +1 -1
  9. package/assets/esri/core/workers/RemoteClient.js +1 -1
  10. package/assets/esri/core/workers/chunks/01be1315c60810651783.js +1 -0
  11. package/assets/esri/core/workers/chunks/02e8fc598ee09cf1b678.js +1 -0
  12. package/assets/esri/core/workers/chunks/0d650b0d090a425c9c18.js +1 -0
  13. package/assets/esri/core/workers/chunks/0e90e9ea1ad587eb3495.js +1 -0
  14. package/assets/esri/core/workers/chunks/0f196ec93925dfefc69a.js +1 -0
  15. package/assets/esri/core/workers/chunks/12294f8c32c34788b6de.js +1 -0
  16. package/assets/esri/core/workers/chunks/13a8346abe5509167578.js +1 -0
  17. package/assets/esri/core/workers/chunks/1515824f11ef5ab95378.js +1 -0
  18. package/assets/esri/core/workers/chunks/151c2766a4cacc6adbd6.js +1 -0
  19. package/assets/esri/core/workers/chunks/155f57fe9886ef322e2a.js +1 -0
  20. package/assets/esri/core/workers/chunks/170f4d83555d238e365b.js +1 -0
  21. package/assets/esri/core/workers/chunks/171cca726a763c770469.js +1 -0
  22. package/assets/esri/core/workers/chunks/17445fd8048966617d49.js +1 -0
  23. package/assets/esri/core/workers/chunks/1761dc5799850ca7b66c.js +1 -0
  24. package/assets/esri/core/workers/chunks/17d54e77001ccb48a258.js +1 -0
  25. package/assets/esri/core/workers/chunks/19afacc9a741038e4bfb.js +1 -0
  26. package/assets/esri/core/workers/chunks/1d8777266fb1c5cfca55.js +1 -0
  27. package/assets/esri/core/workers/chunks/1f16bc8c02d8c4b2f693.js +1 -0
  28. package/assets/esri/core/workers/chunks/1f76c06af4682c85bc21.js +1 -0
  29. package/assets/esri/core/workers/chunks/{9eef3cd5f519c8ae88c0.js → 205e957ffd7e95f530f7.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{fa6e1ad099b43a6f5501.js → 21a8e2a11ffacc226e2b.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{811b378fa5bf8a4d3d66.js → 224461c1d9755966d0b6.js} +1 -1
  32. package/assets/esri/core/workers/chunks/27262083d37fe623ca9c.js +1 -0
  33. package/assets/esri/core/workers/chunks/2a3145a595d19391bb8a.js +1 -0
  34. package/assets/esri/core/workers/chunks/2a65bbe6c63c384cbf5f.js +1 -0
  35. package/assets/esri/core/workers/chunks/2fa69ca3ba8c442dd7d6.js +1 -0
  36. package/assets/esri/core/workers/chunks/314140e2e9b813191907.js +1 -0
  37. package/assets/esri/core/workers/chunks/32e22d6eee9fed1f70b0.js +1 -0
  38. package/assets/esri/core/workers/chunks/{af40e2e6eaf3d2226812.js → 3464a38e758c687a28d4.js} +1 -1
  39. package/assets/esri/core/workers/chunks/38816f95e801f1c5bbad.js +1 -0
  40. package/assets/esri/core/workers/chunks/3f8e8f83ebda07d29ca8.js +1 -0
  41. package/assets/esri/core/workers/chunks/41396724040180d2537f.js +1 -0
  42. package/assets/esri/core/workers/chunks/{66baacbef23291eab853.js → 413d2fa54508e6f42c74.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{32e9e92bbbd000fbbaf7.js → 4141a3a93732996601e8.js} +2 -2
  44. package/assets/esri/core/workers/chunks/41e59d75ccb51a238739.js +1 -0
  45. package/assets/esri/core/workers/chunks/44016e1176629c36bc11.js +1 -0
  46. package/assets/esri/core/workers/chunks/468c70e5fdb61dfaad80.js +1 -0
  47. package/assets/esri/core/workers/chunks/4d069a0ebadb9c53b550.js +1 -0
  48. package/assets/esri/core/workers/chunks/4e7b084f7104deea1ddb.js +1 -0
  49. package/assets/esri/core/workers/chunks/{9c72127de7afcbaafbaf.js → 51852ef71ac04954fdae.js} +1 -1
  50. package/assets/esri/core/workers/chunks/549a51dedcc49f366e53.js +1 -0
  51. package/assets/esri/core/workers/chunks/{42e084704dea6e4135b6.js → 54c0306082d30d59cba2.js} +1 -1
  52. package/assets/esri/core/workers/chunks/56036327e721f9c42b33.js +1 -0
  53. package/assets/esri/core/workers/chunks/57cdd5d4ae073d5ca725.js +1 -0
  54. package/assets/esri/core/workers/chunks/5b9257c5359fa05f4f28.js +1 -0
  55. package/assets/esri/core/workers/chunks/5d574079f0e96e883aab.js +1 -0
  56. package/assets/esri/core/workers/chunks/5d967bcf71c05ddb1ab6.js +1 -0
  57. package/assets/esri/core/workers/chunks/5fccb372b4d5ee2f64cc.js +1 -0
  58. package/assets/esri/core/workers/chunks/61778185d702da468b00.js +1 -0
  59. package/assets/esri/core/workers/chunks/61794a861a9209b72622.js +1 -0
  60. package/assets/esri/core/workers/chunks/61b49cdaf288f36f9288.js +1 -0
  61. package/assets/esri/core/workers/chunks/{8ea67b502f9355dab7e9.js → 621ea864e2774f160d1c.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{9d289cee96e7c7fe1029.js → 62a2da0ffc67f98445c1.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{254898b41cabe313b6ce.js → 62d96b012c2d6f601863.js} +1 -1
  64. package/assets/esri/core/workers/chunks/644dd906bee3ef465ec0.js +1 -0
  65. package/assets/esri/core/workers/chunks/66692d6edc1bd96645e2.js +1 -0
  66. package/assets/esri/core/workers/chunks/679086351352756b33c9.js +1 -0
  67. package/assets/esri/core/workers/chunks/681e97ebbf9c69c410c6.js +1 -0
  68. package/assets/esri/core/workers/chunks/69520cad347947b09f21.js +1 -0
  69. package/assets/esri/core/workers/chunks/{c86b15f6a18880f921cd.js → 6a567755b67c06d16f21.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{fdf4c1f202cfddf0f226.js → 6d11ec355e5474b2968b.js} +1 -1
  71. package/assets/esri/core/workers/chunks/6e7bb6d3e739527116a4.js +1 -0
  72. package/assets/esri/core/workers/chunks/751f3cfb000045ac78bb.js +1 -0
  73. package/assets/esri/core/workers/chunks/{64ad6130de549083caba.js → 789357e0f79823f145dd.js} +1 -1
  74. package/assets/esri/core/workers/chunks/{b6d94cbd1c5adad2f247.js → 78fbfc03d9b827c3f767.js} +1 -1
  75. package/assets/esri/core/workers/chunks/79df97e3f5975b42dc4d.js +1 -0
  76. package/assets/esri/core/workers/chunks/{25e4568a3ff76f48ac5e.js → 7a56c836c89a8b978800.js} +1 -1
  77. package/assets/esri/core/workers/chunks/7e9b790fe01b89acdf6d.js +1 -0
  78. package/assets/esri/core/workers/chunks/7fb9a5bc22d7581f1d20.js +1 -0
  79. package/assets/esri/core/workers/chunks/{5c1abb46b9937a050c32.js → 7ffcd308087c35adda04.js} +1 -1
  80. package/assets/esri/core/workers/chunks/84eb889b9cce35dac2e5.js +1 -0
  81. package/assets/esri/core/workers/chunks/891d97d0da6361d63679.js +1 -0
  82. package/assets/esri/core/workers/chunks/8a0f254d45d00b293479.js +1 -0
  83. package/assets/esri/core/workers/chunks/8ede12f54b215c52cf3c.js +1 -0
  84. package/assets/esri/core/workers/chunks/8fed6becd107d2ed9bbd.js +1 -0
  85. package/assets/esri/core/workers/chunks/90cef6f96df7dc27db39.js +1 -0
  86. package/assets/esri/core/workers/chunks/921c30b7f4dfc3e018d9.js +1 -0
  87. package/assets/esri/core/workers/chunks/927773ed23b1fc245bf7.js +1 -0
  88. package/assets/esri/core/workers/chunks/{b056b4c79bcd542dd1d2.js → 9622a83b29acb768fcb5.js} +1 -1
  89. package/assets/esri/core/workers/chunks/97062996e1e4196cfa7c.js +1 -0
  90. package/assets/esri/core/workers/chunks/97210bcb5e3cf3ac961b.js +1 -0
  91. package/assets/esri/core/workers/chunks/{f550fc8c078ebd47d7a3.js → 97e15e66e55d9149fd48.js} +1 -1
  92. package/assets/esri/core/workers/chunks/9c819ebdc98ed8b6afcf.js +1 -0
  93. package/assets/esri/core/workers/chunks/9dfd00972c12a4adc15d.js +1 -0
  94. package/assets/esri/core/workers/chunks/9fab410b9fa668dc498b.js +1 -0
  95. package/assets/esri/core/workers/chunks/a118de5a163ae42bee60.js +1 -0
  96. package/assets/esri/core/workers/chunks/a4b6fdbc995be03d2afb.js +1 -0
  97. package/assets/esri/core/workers/chunks/a59db907ec1e31002100.js +1 -0
  98. package/assets/esri/core/workers/chunks/a5b395e518e4c5fc95d0.js +1414 -0
  99. package/assets/esri/core/workers/chunks/a5d9dbb1fef8c4465943.js +1 -0
  100. package/assets/esri/core/workers/chunks/{62c2757f5dc4aaca2df8.js → a73e8b80760dc88f926f.js} +1 -1
  101. package/assets/esri/core/workers/chunks/a96692514dcaa50340dd.js +1 -0
  102. package/assets/esri/core/workers/chunks/b4fb4484fa39eede1f62.js +1 -0
  103. package/assets/esri/core/workers/chunks/b50a42a9f96515beb929.js +1 -0
  104. package/assets/esri/core/workers/chunks/b8bf3e8b8b870f69f231.js +1 -0
  105. package/assets/esri/core/workers/chunks/b8e85b7d5eed6e7c79b5.js +1 -0
  106. package/assets/esri/core/workers/chunks/{fd629a3ab558adf52617.js → bc2c7cb99e227ddbd3a6.js} +1 -1
  107. package/assets/esri/core/workers/chunks/bc85bb82cfcbc216fa31.js +1 -0
  108. package/assets/esri/core/workers/chunks/{4eca871ca51a59f6540a.js → bcb8a25438c66815e37a.js} +1 -1
  109. package/assets/esri/core/workers/chunks/be1e4c3ec53fc92a26f1.js +1 -0
  110. package/assets/esri/core/workers/chunks/be4d13088a557b7de4b1.js +1 -0
  111. package/assets/esri/core/workers/chunks/bf758d57091fa534c1f8.js +1 -0
  112. package/assets/esri/core/workers/chunks/bfd516c37fb717e14d71.js +1 -0
  113. package/assets/esri/core/workers/chunks/c22945637a40355fbe61.js +1 -0
  114. package/assets/esri/core/workers/chunks/c25a58d9f94aaa96957d.js +1 -0
  115. package/assets/esri/core/workers/chunks/c4e936879c6cb25cf586.js +1 -0
  116. package/assets/esri/core/workers/chunks/c6a43f748dbf8bac4bb5.js +1 -0
  117. package/assets/esri/core/workers/chunks/cb9185ed31109781fe59.js +1 -0
  118. package/assets/esri/core/workers/chunks/d21fdd67477800101f3b.js +1 -0
  119. package/assets/esri/core/workers/chunks/d264aed5dbe09e34040f.js +1 -0
  120. package/assets/esri/core/workers/chunks/d315098b038a96084ff5.js +1 -0
  121. package/assets/esri/core/workers/chunks/d4465fd3319d0b6a26cc.js +1 -0
  122. package/assets/esri/core/workers/chunks/{13eb0162d95b4d27389c.js → d598d08dbf2796742e8c.js} +1 -1
  123. package/assets/esri/core/workers/chunks/d5c7ebfd5c2ca635a7a8.js +1 -0
  124. package/assets/esri/core/workers/chunks/{d4368e281c12fa7c17c5.js → d635f97b7b82a37482d6.js} +1 -1
  125. package/assets/esri/core/workers/chunks/d7b92bd9198dd3b27eb5.js +1 -0
  126. package/assets/esri/core/workers/chunks/d83ac66478a419e08af6.js +1 -0
  127. package/assets/esri/core/workers/chunks/d8dde0d1759e009b8373.js +1 -0
  128. package/assets/esri/core/workers/chunks/d94dfb2ce31e59b3306b.js +1 -0
  129. package/assets/esri/core/workers/chunks/{0f3b8a08f843a080af0d.js → deddf6ae4498a3d0d0e5.js} +1 -1
  130. package/assets/esri/core/workers/chunks/{45f1e682668cffc00b44.js → e0df7554b1679168663d.js} +1 -1
  131. package/assets/esri/core/workers/chunks/e0fcb5fa0e9f21fde2b6.js +1 -0
  132. package/assets/esri/core/workers/chunks/e305ced975d885c28e7e.js +1 -0
  133. package/assets/esri/core/workers/chunks/e3c60b7df2740e600066.js +1 -0
  134. package/assets/esri/core/workers/chunks/e611cd03eee4fae7c413.js +1 -0
  135. package/assets/esri/core/workers/chunks/e64a92b6f4075616f40f.js +1 -0
  136. package/assets/esri/core/workers/chunks/e78b442417f6a903b9b1.js +1 -0
  137. package/assets/esri/core/workers/chunks/{ba72989749543122a6fe.js → e9f2b573f482718306e6.js} +1 -1
  138. package/assets/esri/core/workers/chunks/ea6d3b7c7d720aa7bc94.js +1 -0
  139. package/assets/esri/core/workers/chunks/eab1b45ab5a802e29f8c.js +1 -0
  140. package/assets/esri/core/workers/chunks/eb7392799a01c2a8497a.js +1 -0
  141. package/assets/esri/core/workers/chunks/{c17c3453d014dc73fe0b.js → ef013a77950c1902de11.js} +1 -1
  142. package/assets/esri/core/workers/chunks/ef0fe4e1a9e960a74c60.js +1 -0
  143. package/assets/esri/core/workers/chunks/efbbcf467b2a27a92b85.js +1 -0
  144. package/assets/esri/core/workers/chunks/f201edf9b68717a6106d.js +1 -0
  145. package/assets/esri/core/workers/chunks/f43a63094190d2074cd0.js +1 -0
  146. package/assets/esri/core/workers/chunks/f59f1db572be1f19887f.js +1 -0
  147. package/assets/esri/core/workers/chunks/{dc07dc1cd30edc0c4193.js → f62e42659b406435573d.js} +1 -1
  148. package/assets/esri/core/workers/chunks/fa160a2a5dc9f5a7c34b.js +1 -0
  149. package/assets/esri/core/workers/chunks/fa7ae035472540999721.js +1 -0
  150. package/assets/esri/core/workers/chunks/fe3b42eadcdd9ba54f05.js +1 -0
  151. package/assets/esri/core/workers/chunks/fee31d9297648219375d.js +1 -0
  152. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ar.json +1 -1
  153. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_bg.json +1 -1
  154. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_bs.json +1 -1
  155. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ca.json +1 -1
  156. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_cs.json +1 -1
  157. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_da.json +1 -1
  158. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_de.json +1 -1
  159. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_el.json +1 -1
  160. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_es.json +1 -1
  161. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_et.json +1 -1
  162. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_fi.json +1 -1
  163. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_fr.json +1 -1
  164. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_he.json +1 -1
  165. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_hr.json +1 -1
  166. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_hu.json +1 -1
  167. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_id.json +1 -1
  168. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_it.json +1 -1
  169. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ja.json +1 -1
  170. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ko.json +1 -1
  171. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_lt.json +1 -1
  172. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_lv.json +1 -1
  173. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_nl.json +1 -1
  174. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_no.json +1 -1
  175. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_pl.json +1 -1
  176. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_pt-BR.json +1 -1
  177. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_pt-PT.json +1 -1
  178. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ro.json +1 -1
  179. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ru.json +1 -1
  180. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sk.json +1 -1
  181. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sl.json +1 -1
  182. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sr.json +1 -1
  183. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sv.json +1 -1
  184. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_th.json +1 -1
  185. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_tr.json +1 -1
  186. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_uk.json +1 -1
  187. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_vi.json +1 -1
  188. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_zh-CN.json +1 -1
  189. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_zh-HK.json +1 -1
  190. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_zh-TW.json +1 -1
  191. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ar.json +1 -1
  192. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_bg.json +1 -1
  193. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_bs.json +1 -1
  194. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ca.json +1 -1
  195. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_cs.json +1 -1
  196. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_da.json +1 -1
  197. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_de.json +1 -1
  198. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_el.json +1 -1
  199. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_es.json +1 -1
  200. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_et.json +1 -1
  201. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_fi.json +1 -1
  202. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_fr.json +1 -1
  203. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_he.json +1 -1
  204. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_hr.json +1 -1
  205. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_hu.json +1 -1
  206. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_id.json +1 -1
  207. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_it.json +1 -1
  208. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ja.json +1 -1
  209. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ko.json +1 -1
  210. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_lt.json +1 -1
  211. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_lv.json +1 -1
  212. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_nl.json +1 -1
  213. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_no.json +1 -1
  214. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pl.json +1 -1
  215. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pt-BR.json +1 -1
  216. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_pt-PT.json +1 -1
  217. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ro.json +1 -1
  218. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_ru.json +1 -1
  219. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sk.json +1 -1
  220. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sl.json +1 -1
  221. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sr.json +1 -1
  222. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_sv.json +1 -1
  223. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_th.json +1 -1
  224. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_tr.json +1 -1
  225. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_uk.json +1 -1
  226. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_vi.json +1 -1
  227. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-CN.json +1 -1
  228. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-HK.json +1 -1
  229. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_zh-TW.json +1 -1
  230. package/chunks/ComponentShader.glsl.js +1 -1
  231. package/chunks/DefaultMaterial.glsl.js +1 -1
  232. package/chunks/GaussianSplat.glsl.js +14 -2
  233. package/chunks/OITDim.glsl.js +3 -2
  234. package/chunks/Path.glsl.js +1 -1
  235. package/chunks/RealisticTree.glsl.js +1 -1
  236. package/chunks/ShadowCastAccumulate.glsl.js +2 -2
  237. package/chunks/ShadowHighlight.glsl.js +3 -3
  238. package/chunks/ShadowHighlightBuffer.glsl.js +1 -1
  239. package/chunks/Terrain.glsl.js +1 -1
  240. package/chunks/Water.glsl.js +1 -1
  241. package/config.js +1 -1
  242. package/core/timeUtils.js +1 -1
  243. package/core/workers/Connection.js +1 -1
  244. package/form/elements/FieldElement.d.ts +2 -2
  245. package/form/elements/inputs/DateTimeOffsetPickerInput.d.ts +1 -1
  246. package/form/elements/inputs/DateTimeOffsetPickerInput.js +1 -1
  247. package/form/elements/inputs/Input.d.ts +1 -1
  248. package/form/elements/inputs/inputUtils.js +1 -1
  249. package/form/elements/inputs.js +1 -1
  250. package/geometry/support/spatialReferenceUtils.js +1 -1
  251. package/interfaces.d.ts +4 -2
  252. package/intl.js +1 -1
  253. package/kernel.js +1 -1
  254. package/layers/FeatureLayer.d.ts +7 -0
  255. package/layers/FeatureLayer.js +1 -1
  256. package/layers/SubtypeGroupLayer.js +1 -1
  257. package/layers/VoxelWasmPerSceneView.js +1 -1
  258. package/layers/graphics/data/AttributesBuilder.js +1 -1
  259. package/layers/support/SymbolLayerDrawing.d.ts +15 -0
  260. package/layers/support/SymbolLayerDrawing.js +2 -0
  261. package/networks/support/jsonTypes.d.ts +36 -11
  262. package/package.json +4 -4
  263. package/popup/Feature.d.ts +14 -4
  264. package/popup/Features.d.ts +81 -215
  265. package/popup/Features.js +1 -1
  266. package/popup/support/FeatureAbilities.d.ts +45 -9
  267. package/popup/types.d.ts +0 -67
  268. package/smartMapping/statistics/support/utils.js +1 -1
  269. package/smartMapping/support/adapters/support/utils.js +1 -1
  270. package/support/basemapDefinitions.js +1 -1
  271. package/support/revision.js +1 -1
  272. package/symbols/cim/cimAnalyzer.js +1 -1
  273. package/symbols/cim/types.d.ts +6 -0
  274. package/views/2d/engine/Stage.js +1 -1
  275. package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
  276. package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
  277. package/views/2d/engine/webgl/FeatureDisplayList.js +1 -1
  278. package/views/2d/engine/webgl/Painter.js +1 -1
  279. package/views/2d/engine/webgl/VideoScreenRenderer.js +1 -1
  280. package/views/2d/engine/webgl/effects/FeatureEffect.js +1 -1
  281. package/views/2d/engine/webgl/effects/HighlightEffect.js +1 -1
  282. package/views/2d/engine/webgl/effects/highlight/HighlightSurfaces.js +1 -1
  283. package/views/2d/engine/webgl/shaderGraph/techniques/FeatureInstanceStore.js +1 -1
  284. package/views/2d/engine/webgl/shaderGraph/techniques/GraphicInstanceStore.js +1 -1
  285. package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
  286. package/views/2d/engine/webgl/shaderGraph/techniques/blend/BlendTechnique.js +1 -1
  287. package/views/2d/engine/webgl/shaderGraph/techniques/bloom/BloomTechnique.js +1 -1
  288. package/views/2d/engine/webgl/shaderGraph/techniques/blur/BlurTechnique.js +1 -1
  289. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityResources.js +1 -1
  290. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityTechnique.js +1 -1
  291. package/views/2d/engine/webgl/shaderGraph/techniques/drop-shadow/DropShadowTechnique.js +1 -1
  292. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapResources.js +1 -1
  293. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapTechnique.js +1 -1
  294. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
  295. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterHighlightTechnique.js +1 -1
  296. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/BaseRasterProcessorTechnique.js +1 -1
  297. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/textureUtils.js +1 -1
  298. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  299. package/views/2d/layers/BaseLayerViewGL2D.d.ts +1 -1
  300. package/views/2d/layers/BaseLayerViewGL2D.js +1 -1
  301. package/views/2d/layers/features/FeatureContainer.js +1 -1
  302. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  303. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  304. package/views/2d/layers/features/schema/processor/SimpleProcessorSchema.js +1 -1
  305. package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
  306. package/views/2d/layers/support/DisplayGL.js +1 -1
  307. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  308. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  309. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  310. package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
  311. package/views/3d/support/gaussianSplatting/GaussianSplatTextureAtlas.js +1 -1
  312. package/views/3d/support/gaussianSplatting/GaussianTile.js +1 -1
  313. package/views/3d/terrain/support/MultiSizeFramebuffer.js +1 -1
  314. package/views/3d/webgl/ManagedFBO.js +1 -1
  315. package/views/3d/webgl-engine/core/FBOCache.js +1 -1
  316. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  317. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +18 -5
  318. package/views/3d/webgl-engine/core/shaderLibrary/shading/ShadowmapFiltering.glsl.js +2 -2
  319. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadow.glsl.js +2 -2
  320. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js +1 -1
  321. package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
  322. package/views/3d/webgl-engine/effects/clouds/CloudsRenderer.js +1 -1
  323. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlas.js +1 -1
  324. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  325. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  326. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  327. package/views/3d/webgl-engine/effects/transparency/OITDim.glsl.js +1 -1
  328. package/views/3d/webgl-engine/effects/transparency/OITDimTechniqueConfiguration.js +2 -0
  329. package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +1 -1
  330. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  331. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  332. package/views/3d/webgl-engine/materials/PolygonOffset.js +1 -1
  333. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  334. package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
  335. package/views/3d/webgl-engine/shaders/ShadowCastAccumulate.glsl.js +1 -1
  336. package/views/draw/DrawTool.js +1 -1
  337. package/views/draw/support/InteractiveHandle.js +1 -1
  338. package/views/draw/support/Reshape.js +1 -1
  339. package/views/draw/support/drawUtils.js +1 -1
  340. package/views/draw/support/reshapeTooltipUtils.js +1 -1
  341. package/views/draw/support/types.d.ts +9 -1
  342. package/views/layers/FeatureLikeLayerView.js +1 -1
  343. package/views/support/imageReprojection.js +1 -1
  344. package/views/webgl/FramebufferObject.js +1 -1
  345. package/views/webgl/RenderingContext.js +1 -1
  346. package/views/webgl/Texture.js +1 -1
  347. package/views/webgl/testFloatBufferBlend.js +1 -1
  348. package/views/webgl/testSVGPremultipliedAlpha.js +1 -1
  349. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  350. package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
  351. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  352. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  353. package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
  354. package/widgets/Editor/UpdateFeaturesWorkflow.js +1 -1
  355. package/widgets/Editor/UpdateWorkflow.js +1 -1
  356. package/widgets/Editor/Workflow.js +1 -1
  357. package/widgets/Feature/FeatureViewModel.d.ts +14 -4
  358. package/widgets/Feature/FeatureViewModel.js +1 -1
  359. package/widgets/FeatureForm/FieldInput.js +1 -1
  360. package/widgets/Features/FeaturesViewModel.d.ts +16 -5
  361. package/widgets/Features/FeaturesViewModel.js +1 -1
  362. package/widgets/Features.js +1 -1
  363. package/widgets/Popup/PopupViewModel.d.ts +2 -1
  364. package/widgets/Popup/PopupViewModel.js +1 -1
  365. package/widgets/Popup.d.ts +13 -4
  366. package/widgets/Popup.js +1 -1
  367. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +1 -1
  368. package/assets/esri/core/workers/chunks/02aaeaa988e9e7d65a7f.js +0 -1
  369. package/assets/esri/core/workers/chunks/05c8d2c0362af4511d86.js +0 -1
  370. package/assets/esri/core/workers/chunks/06868e4f52de9d918255.js +0 -1
  371. package/assets/esri/core/workers/chunks/06c0b93e276cfc1fb7ac.js +0 -1
  372. package/assets/esri/core/workers/chunks/0888baa99c9007ad63bc.js +0 -1
  373. package/assets/esri/core/workers/chunks/0de66f13e84830a654fb.js +0 -1
  374. package/assets/esri/core/workers/chunks/0f597c690e5c60fe944b.js +0 -1
  375. package/assets/esri/core/workers/chunks/0f8736242544f9e9a57a.js +0 -1
  376. package/assets/esri/core/workers/chunks/0ff12fe9e358100668d9.js +0 -1
  377. package/assets/esri/core/workers/chunks/11a8541f3909f9ffb000.js +0 -1
  378. package/assets/esri/core/workers/chunks/13a009229c96ecb7b04f.js +0 -1
  379. package/assets/esri/core/workers/chunks/185f59f90070d5d6ac94.js +0 -1
  380. package/assets/esri/core/workers/chunks/190bc75254bc0542a6be.js +0 -1
  381. package/assets/esri/core/workers/chunks/1af247c86d1c4ae8fef3.js +0 -1
  382. package/assets/esri/core/workers/chunks/2339465190c9d5ede25f.js +0 -1
  383. package/assets/esri/core/workers/chunks/23eb204d3cb818adea32.js +0 -1
  384. package/assets/esri/core/workers/chunks/241ef4a1bea20b49d812.js +0 -1
  385. package/assets/esri/core/workers/chunks/2669a7195f1de21a9cf3.js +0 -1
  386. package/assets/esri/core/workers/chunks/2a2d5f9ea42cb2eee9c6.js +0 -1
  387. package/assets/esri/core/workers/chunks/2a7e7a497823e9f05aa3.js +0 -1
  388. package/assets/esri/core/workers/chunks/31e0bfc2cab055aebf9a.js +0 -1
  389. package/assets/esri/core/workers/chunks/32360a55d1836b2a737e.js +0 -1
  390. package/assets/esri/core/workers/chunks/330da3828eefd8d72d3f.js +0 -1
  391. package/assets/esri/core/workers/chunks/34acecd7a314fed12335.js +0 -1
  392. package/assets/esri/core/workers/chunks/34fe4570eef9e73839b8.js +0 -1
  393. package/assets/esri/core/workers/chunks/368b4c0a5eecbb06feac.js +0 -1
  394. package/assets/esri/core/workers/chunks/37729578a7c4cf15eded.js +0 -1
  395. package/assets/esri/core/workers/chunks/3af1e2f0b3d30c58d0c2.js +0 -1
  396. package/assets/esri/core/workers/chunks/3c155efd5768003a91eb.js +0 -1
  397. package/assets/esri/core/workers/chunks/3d4bb59ab2f644f4d675.js +0 -1
  398. package/assets/esri/core/workers/chunks/3f0d9fdd8c37605dd85d.js +0 -1
  399. package/assets/esri/core/workers/chunks/48eca6f51112ba80bd3b.js +0 -1
  400. package/assets/esri/core/workers/chunks/4b5737021a149aa786af.js +0 -1
  401. package/assets/esri/core/workers/chunks/55214e1d9f3d98fa7ed9.js +0 -1
  402. package/assets/esri/core/workers/chunks/55a0b69cf034ac32fc25.js +0 -1
  403. package/assets/esri/core/workers/chunks/576a1784e93c5406e657.js +0 -1
  404. package/assets/esri/core/workers/chunks/59289867cce97da74e39.js +0 -1
  405. package/assets/esri/core/workers/chunks/5a6d6082c5bcb1a80eda.js +0 -1
  406. package/assets/esri/core/workers/chunks/5a9620cb66c8e64e4668.js +0 -1
  407. package/assets/esri/core/workers/chunks/5eeb6d3a7b815d41621e.js +0 -1
  408. package/assets/esri/core/workers/chunks/5f06a57b4f7d7de16bbf.js +0 -1
  409. package/assets/esri/core/workers/chunks/5f2e246ffcbdedea4de5.js +0 -1
  410. package/assets/esri/core/workers/chunks/5ff41f43e57be0557541.js +0 -1414
  411. package/assets/esri/core/workers/chunks/6b32b3f98872771ff81e.js +0 -1
  412. package/assets/esri/core/workers/chunks/6be9d00839002f24fafd.js +0 -1
  413. package/assets/esri/core/workers/chunks/6c886f19875291d02407.js +0 -1
  414. package/assets/esri/core/workers/chunks/77f6659e400064d38130.js +0 -1
  415. package/assets/esri/core/workers/chunks/78c7eace6ec3fa5c7413.js +0 -1
  416. package/assets/esri/core/workers/chunks/7cee28575fd57430cf02.js +0 -1
  417. package/assets/esri/core/workers/chunks/82e0691995d821137d5f.js +0 -1
  418. package/assets/esri/core/workers/chunks/8435b6bf356959009b76.js +0 -1
  419. package/assets/esri/core/workers/chunks/8677865189081e0b83bc.js +0 -1
  420. package/assets/esri/core/workers/chunks/86f1aa2c108f5224d8b5.js +0 -1
  421. package/assets/esri/core/workers/chunks/86f70bd786d6d57fde69.js +0 -1
  422. package/assets/esri/core/workers/chunks/8878ab87ef7961fafae8.js +0 -1
  423. package/assets/esri/core/workers/chunks/8a893f23827769d42092.js +0 -1
  424. package/assets/esri/core/workers/chunks/8d1d0c3f0532aa98487d.js +0 -1
  425. package/assets/esri/core/workers/chunks/8e68b4628e9616356c34.js +0 -1
  426. package/assets/esri/core/workers/chunks/8edae79554843dd77ada.js +0 -1
  427. package/assets/esri/core/workers/chunks/9032c040b214b5af775b.js +0 -1
  428. package/assets/esri/core/workers/chunks/909ef35fa33be2b6da41.js +0 -1
  429. package/assets/esri/core/workers/chunks/90b7acc70adba193b215.js +0 -1
  430. package/assets/esri/core/workers/chunks/91718795fc4ca6516ac7.js +0 -1
  431. package/assets/esri/core/workers/chunks/92d4e962284e13ba2fc5.js +0 -1
  432. package/assets/esri/core/workers/chunks/94f80c46ccf5e19038b8.js +0 -1
  433. package/assets/esri/core/workers/chunks/979c2f52b6d6e1e8241b.js +0 -1
  434. package/assets/esri/core/workers/chunks/97f10efb0fe05bedcebd.js +0 -1
  435. package/assets/esri/core/workers/chunks/98f5bf1b91f3696b2fce.js +0 -1
  436. package/assets/esri/core/workers/chunks/9c52d4b54dfdb69dee29.js +0 -1
  437. package/assets/esri/core/workers/chunks/9de8149ae0a0726a4ab2.js +0 -1
  438. package/assets/esri/core/workers/chunks/9def5d17b94e5db71883.js +0 -1
  439. package/assets/esri/core/workers/chunks/9f272445c285ee9abb7b.js +0 -1
  440. package/assets/esri/core/workers/chunks/a10be7eb05a007fff1ed.js +0 -1
  441. package/assets/esri/core/workers/chunks/a32c87b89567a9fd1efc.js +0 -1
  442. package/assets/esri/core/workers/chunks/a3b29eca5807978fb2a3.js +0 -1
  443. package/assets/esri/core/workers/chunks/a446dff865332268625a.js +0 -1
  444. package/assets/esri/core/workers/chunks/a5bf2718c02a0e645013.js +0 -1
  445. package/assets/esri/core/workers/chunks/a6d166058e3025bb280e.js +0 -1
  446. package/assets/esri/core/workers/chunks/a8e111a5cfd6151d5dbb.js +0 -1
  447. package/assets/esri/core/workers/chunks/aed45f7e7eee154a21b8.js +0 -1
  448. package/assets/esri/core/workers/chunks/af3bd661b355eed3da21.js +0 -1
  449. package/assets/esri/core/workers/chunks/b0f2ce61d3cad413898e.js +0 -1
  450. package/assets/esri/core/workers/chunks/b2b77598048818c957b7.js +0 -1
  451. package/assets/esri/core/workers/chunks/b744b950999b92393e37.js +0 -1
  452. package/assets/esri/core/workers/chunks/b75165880704efccc47c.js +0 -1
  453. package/assets/esri/core/workers/chunks/ba9e107edc2027238be3.js +0 -1
  454. package/assets/esri/core/workers/chunks/bc3b22dc08c147b8d425.js +0 -1
  455. package/assets/esri/core/workers/chunks/c08e9914deb1dc62bc0f.js +0 -1
  456. package/assets/esri/core/workers/chunks/c0bb53d8d58ad18334d3.js +0 -1
  457. package/assets/esri/core/workers/chunks/c0d453f93af2d4a6ce64.js +0 -1
  458. package/assets/esri/core/workers/chunks/c9a42d86185a0ad35dd1.js +0 -1
  459. package/assets/esri/core/workers/chunks/cbb50415f7de8746ee1a.js +0 -1
  460. package/assets/esri/core/workers/chunks/d23dd7da45a7aa341540.js +0 -1
  461. package/assets/esri/core/workers/chunks/d2801df3fa44dee15ec8.js +0 -1
  462. package/assets/esri/core/workers/chunks/d53b31c9056f82831bc0.js +0 -1
  463. package/assets/esri/core/workers/chunks/d626e08d23330d84413b.js +0 -1
  464. package/assets/esri/core/workers/chunks/d9d69cf2496ebe76eade.js +0 -1
  465. package/assets/esri/core/workers/chunks/db6e03fe8dd316f5005f.js +0 -1
  466. package/assets/esri/core/workers/chunks/de79645e559a2d1ffa67.js +0 -1
  467. package/assets/esri/core/workers/chunks/e2779965db231fb666a5.js +0 -1
  468. package/assets/esri/core/workers/chunks/e4e2f059c52674dcae5b.js +0 -1
  469. package/assets/esri/core/workers/chunks/e622a23034f055de8b55.js +0 -1
  470. package/assets/esri/core/workers/chunks/ec21311584e4fb13e510.js +0 -1
  471. package/assets/esri/core/workers/chunks/ec9d5dcf2a0a11c85341.js +0 -1
  472. package/assets/esri/core/workers/chunks/eca45cd479f7fd28ca6e.js +0 -1
  473. package/assets/esri/core/workers/chunks/efdd75896ca53eb6242f.js +0 -1
  474. package/assets/esri/core/workers/chunks/f1c348cf2a1e35da9b20.js +0 -1
  475. package/assets/esri/core/workers/chunks/f4053e4e2d6e678db48a.js +0 -1
  476. package/assets/esri/core/workers/chunks/f4d577ff61da7964e08a.js +0 -1
  477. package/assets/esri/core/workers/chunks/f7da652f8dab57677cc3.js +0 -1
  478. package/assets/esri/core/workers/chunks/fe92f54e45fd21ccd75f.js +0 -1
  479. package/assets/esri/core/workers/chunks/fee1d873127dca02459f.js +0 -1
  480. package/assets/esri/core/workers/chunks/ff31936236dd9b1acb24.js +0 -1
  481. /package/assets/esri/core/workers/chunks/{32e9e92bbbd000fbbaf7.js.LICENSE.txt → 4141a3a93732996601e8.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../PopupTemplate.js";import r from"../request.js";import{ClonableMixin as i}from"../core/Clonable.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/Logger.js";import{destroyMaybe as l}from"../core/maybe.js";import{MultiOriginJSONSupportMixin as p}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as u}from"../core/object.js";import{debounce as d,throwIfAbortError as y,whenOrAbort as c}from"../core/promiseUtils.js";import{sqlAnd as m}from"../core/sql.js";import{property as f,subclass as h}from"../core/accessorSupport/decorators.js";import{excludeTables as b}from"../core/accessorSupport/layerContainerType.js";import g from"../form/FormTemplate.js";import w from"../geometry/SpatialReference.js";import v from"../graphic/FeatureGraphicOrigin.js";import F from"./Layer.js";import{MemorySource as T}from"./graphics/sources/MemorySource.js";import{APIKeyMixin as j}from"./mixins/APIKeyMixin.js";import{ArcGISService as S}from"./mixins/ArcGISService.js";import{BlendLayer as I}from"./mixins/BlendLayer.js";import{CustomParametersMixin as E}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as L}from"./mixins/DisplayFilteredLayer.js";import{EditBusLayer as D}from"./mixins/EditBusLayer.js";import{FeatureEffectLayer as _}from"./mixins/FeatureEffectLayer.js";import{FeatureLayerBase as C}from"./mixins/FeatureLayerBase.js";import{FeatureReductionLayer as P}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as O}from"./mixins/OperationalLayer.js";import{OrderedLayer as x}from"./mixins/OrderedLayer.js";import{PortalLayer as q}from"./mixins/PortalLayer.js";import{PublishableLayer as M}from"./mixins/PublishableLayer.js";import{RefreshableLayer as A}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as Q}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as R}from"./mixins/TemporalLayer.js";import{TrackableLayer as U}from"./mixins/TrackableLayer.js";import{titleFromUrlAndName as V,parse as N,cleanTitle as B}from"./support/arcgisLayerUrl.js";import{attributeTableTemplate as G,id as J,labelsVisible as W,opacityDrawingInfo as Z,legendEnabled as $,listMode as H,popupEnabled as z,screenSizePerspectiveEnabled as k}from"./support/commonProperties.js";import{ensureLayerCredential as K,computeEffectiveEditingEnabled as X,readGlobalIdField as Y,readObjectIdField as ee,createDefaultRenderer as te,addAttachment as re,updateAttachment as ie,applyEdits as oe,uploadAssets as se,createQuery as ae,deleteAttachments as ne,fetchRecomputedExtents as le,getFeatureType as pe,getFieldDomain as ue,queryAttachments as de,queryObjectIds as ye,queryFeatureCount as ce,queryExtent as me,queryRelatedFeatures as fe,queryRelatedFeaturesCount as he,validateBinsQuery as be,hasDataChanged as ge,geometryTypeKebabDict as we}from"./support/featureLayerUtils.js";import ve from"./support/FeatureTemplate.js";import Fe from"./support/FeatureType.js";import Te from"./support/FieldConfiguration.js";import{popupTemplateWithFieldConfigurations as je,fieldConfigurationsFromPopupTemplate as Se,fieldConfigurationsFromFields as Ie}from"./support/fieldConfigUtils.js";import{defineFieldProperties as Ee}from"./support/fieldProperties.js";import{fixRendererFields as Le,fixTimeInfoFields as De}from"./support/fieldUtils.js";import _e from"./support/LabelClass.js";import{reader as Ce}from"./support/labelingInfo.js";import{getFeatureLayerCapabilities as Pe}from"./support/serviceCapabilitiesUtils.js";import Oe from"./support/TimeInfo.js";import xe from"./support/TitleCreator.js";import{serviceSupportsSpatialReference as qe}from"./support/versionUtils.js";import{read as Me}from"../renderers/support/jsonUtils.js";import{loadStyleRenderer as Ae}from"../renderers/support/styleUtils.js";import{webSceneRendererTypes as Qe,rendererTypes as Re}from"../renderers/support/typeUtils.js";import Ue from"../rest/layerSources/DynamicDataLayer.js";import Ve from"../rest/support/FeatureSet.js";import Ne from"../rest/support/Query.js";import{isNumber as Be}from"../support/guards.js";import{createPopupTemplate as Ge}from"../support/popupUtils.js";import{symbolTypes as Je}from"../symbols/support/typeUtils.js";import{opacityToTransparency as We}from"../webdoc/support/opacityUtils.js";import{addLayerUnsupportedError as Ze}from"../webdoc/support/unsupportedErrors.js";import{reader as $e}from"../core/accessorSupport/decorators/reader.js";import{writer as He}from"../core/accessorSupport/decorators/writer.js";const ze="FeatureLayer";function ke(e){return e&&e instanceof o}const Ke=Ee();function Xe(e,t,r){const i=!!r?.writeLayerSchema;return{enabled:i,ignoreOrigin:i}}let Ye=class extends(C(P(_(M(D(L(I(x(R(U(Q(A(S(O(q(p(E(j(i(F)))))))))))))))))))){constructor(...e){super(...e),this.attributeTableTemplate=null,this.charts=null,this.copyright=null,this.displayField=null,this.dynamicDataSource=null,this.fields=null,this.fieldsIndex=null,this.formTemplate=null,this.fullExtent=null,this.geometryType=null,this.graphicOrigin=new v(this),this.hasM=void 0,this.hasZ=void 0,this.infoFor3D=null,this.isTable=!1,this.labelsVisible=!0,this.labelingInfo=null,this.legendEnabled=!0,this.objectIdField=null,this.operationalLayerType="ArcGISFeatureLayer",this.outFields=null,this.path=null,this.popupEnabled=!0,this.popupTemplate=null,this.resourceInfo=null,this.screenSizePerspectiveEnabled=!0,this.spatialReference=w.WGS84,this.subtypeCode=null,this.subtypeField=null,this.subtypes=null,this.supportedSourceTypes=new Set(["Feature Layer","Oriented Imagery Layer","Table","Catalog Layer"]),this.templates=null,this.timeInfo=null,this.title=null,this.sublayerTitleMode="item-title",this.type="feature",this.typeIdField=null,this.types=null,this.visible=!0,this._debouncedSaveOperations=d(async(e,t,r)=>{const{save:i,saveAs:o}=await import("./save/featureLayerUtils.js");switch(e){case 0:return i(this,t);case 1:return o(this,r,t)}})}destroy(){this.source?.destroy()}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=null!=e?e.signal:null;if(this.portalItem?.loaded&&this.source)return this.addResolvingPromise(this.createGraphicsSource(t).then(e=>this.initLayerProperties(e))),Promise.resolve(this);const r=this.loadFromPortal({supportedTypes:["Feature Service","Feature Collection","Scene Service"]},e).catch(y).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(t);null!=e&&(this.layerId=e)}if(!this.url&&!this._hasMemorySource())throw new s("feature-layer:missing-url-or-source","Feature layer must be created with either a url or a source");return this.initLayerProperties(await this.createGraphicsSource(t))}).then(()=>K(this,"load",e));return this.addResolvingPromise(r),Promise.resolve(this)}get _titleCreator(){const e=this._get("_titleCreator");return l(e),new xe({fieldsIndex:this.fieldsIndex,objectIdField:this.objectIdField,fields:this.fields,displayField:this.displayField,effectivePopupTemplate:this.popupTemplate??this.defaultPopupTemplate})}readCapabilities(e,t){return t=t.layerDefinition||t,Pe(t,this.url)}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("dynamicDataSource"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")??0)+1}get editingEnabled(){return!(this.loaded&&!this.capabilities?.operations.supportsEditing)&&(this._isOverridden("editingEnabled")?this._get("editingEnabled"):this._hasMemorySource()||this.userHasEditingPrivileges)}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}readEditingEnabled(e,t){return this._readEditingEnabled(t,!1)}readEditingEnabledFromWebMap(e,t,r){return this._readEditingEnabled(t,!0,r)}writeEditingEnabled(e,t){this._writeEditingEnabled(e,t,!1)}writeEditingEnabledToWebMap(e,t,r,i){this._writeEditingEnabled(e,t,!0,i)}get effectiveEditingEnabled(){return X(this)}get featureTitleFields(){return[...this._titleCreator.requiredFields]}set fieldConfigurations(e){if(this._hasMemorySource())return;if(this._override("fieldConfigurations",e),!this.loaded)return;const t=je(this,e);t&&this._set("popupTemplate",t)}get fieldConfigurations(){if(!this._hasMemorySource())return this._isOverridden("fieldConfigurations")?this._get("fieldConfigurations"):Se(this)||null}readIsTable(e,t){return"Table"===(t=t?.layerDefinition??t).type||!t.geometryType}writeIsTable(e,t,r,i){i?.writeLayerSchema&&u(r,e?"Table":"Feature Layer",t)}readGlobalIdField(e,t){return Y(t.layerDefinition||t)}readObjectIdField(e,t){return ee(t.layerDefinition||t)}writePopupTemplate(e,t,r,i){e&&(t[r]=e.toJSON({...i,writeFieldFormat:!i?.writeLayerSchema}))}get defaultPopupTemplate(){return this.createPopupTemplate()}set renderer(e){Le(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,t,r){t=t.layerDefinition||t;const i=t.drawingInfo?.renderer;if(i){const e=Me(i,t,r)??void 0;return e||n.getLogger(this).error("Failed to create renderer",{rendererDefinition:t.drawingInfo.renderer,layer:this,context:r}),e}return te(t,r)}get source(){return this._get("source")}set source(e){e||(e=null);const t=this._get("source");t!==e&&((Array.isArray(e)||e instanceof o)&&(e=new T({layer:this,items:e})),ke(t)&&this._resetMemorySource(t),ke(e)&&this._initMemorySource(e),this._set("source",e))}readSource(e,t){const r=Ve.fromJSON(t.featureSet);return new T({layer:this,items:r?.features??[]})}readTemplates(e,t){const r=t.editFieldsInfo,i=r?.creatorField,o=r?.editorField;return e=e?.map(e=>ve.fromJSON(e)),this._fixTemplates(e,i),this._fixTemplates(e,o),e}readTitle(e,t){const r=t.layerDefinition?.name??t.name,i=t.title||t.layerDefinition?.title;if(r){if("item-title"===this.sublayerTitleMode)return this.url?V(this.url,r):r;let e=r;if(!e&&this.url){const t=N(this.url);null!=t&&(e=t.title)}if(!e)return;const t=this.portalItem?.title;return"item-title-and-service-name"===this.sublayerTitleMode&&t&&t!==e&&(e=t+" - "+e),B(e)}if("item-title"===this.sublayerTitleMode&&i)return i}readTitleFromWebMap(e,t){return t.title||t.layerDefinition?.name}readTypeIdField(e,t){let r=(t=t.layerDefinition||t).typeIdField;if(r&&t.fields){r=r.toLowerCase();const e=t.fields.find(e=>e.name.toLowerCase()===r);e&&(r=e.name)}return r}readTypes(e,t){e=(t=t.layerDefinition||t).types;const r=t.editFieldsInfo,i=r?.creatorField,o=r?.editorField;return e?.map(e=>(e=Fe.fromJSON(e),this._fixTemplates(e.templates,i),this._fixTemplates(e.templates,o),e))}readVisible(e,t){return null!=t.layerDefinition?.defaultVisibility?!!t.layerDefinition.defaultVisibility:null!=t.visibility?!!t.visibility:void 0}async addAttachment(e,t){const r=await re(this,e,t,ze);return this.lastEditsEventDate=new Date,r}async updateAttachment(e,t,r){const i=await ie(this,e,t,r,ze);return this.lastEditsEventDate=new Date,i}async applyEdits(e,t){return oe(this,e,t)}async uploadAssets(e,t){return se(this,e,t)}createFieldConfigurations(){return Ie(this)}createPopupTemplate(e){return Ge(this,e)}async createGraphicsSource(e){if(this._hasMemorySource()&&this.source)return this.source.load({signal:e});const{default:t}=await c(import("./graphics/sources/FeatureLayerSource.js"),e);return new t({layer:this,supportedSourceTypes:this.supportedSourceTypes}).load({signal:e})}createQuery(){const e=ae(this);e.dynamicDataSource=this.dynamicDataSource;const t=null!=this.subtypeCode?`${this.subtypeField} = ${this.subtypeCode}`:null,r=m(this.definitionExpression,t);return e.where=r||"1=1",e}async deleteAttachments(e,t){const r=await ne(this,e,t,ze);return this.lastEditsEventDate=new Date,r}async fetchRecomputedExtents(e){return le(this,e,ze)}async getFeatureTitle(e,t){return this._titleCreator.getTitle(this,e,t)}async getFeatureTitles(e,t){return this._titleCreator.getTitles(this,e,t)}getFeatureType(e){return pe(this.types,this.typeIdField,e)}getFieldAlias(e){const t=this.getField(e);if(t)return this.getFieldConfiguration(t.name)?.alias||t.alias}getFieldConfiguration(e){return e=e.toLowerCase(),this.fieldConfigurations?.find(t=>t.name.toLowerCase()===e)}getFieldDomain(e,t){return ue(this,e,t,this.getField(e)?.domain??null)}async queryAttachments(e,t){return de(this,e,t,ze)}async queryFeatures(e,t){const r=await this.load(),i=await r.source.queryFeatures(Ne.from(e)??r.createQuery(),t),o=this.graphicOrigin;if(i?.features)for(const s of i.features)s.layer=s.sourceLayer=r,s.origin=o;return i}async queryObjectIds(e,t){return await ye(this,e,t,ze)}async queryFeatureCount(e,t){return ce(this,e,t,ze)}async queryExtent(e,t){return me(this,e,t,ze)}async queryRelatedFeatures(e,t){return fe(this,e,t,ze)}async queryRelatedFeaturesCount(e,t){return he(this,e,t,ze)}async queryPivot(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryPivot||!i?.operations?.supportsQueryPivot)throw new s(ze,"Layer source does not support queryPivot capability");const o=await import("../rest/support/PivotQuery.js"),a=await r.queryPivot(o.default.from(e),t),n=this.graphicOrigin;if(a?.features)for(const s of a.features)s.layer=s.sourceLayer=this,s.origin=n;return a}async queryTopFeatures(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopFeatures||!i?.query?.supportsTopFeaturesQuery)throw new s(ze,"Layer source does not support queryTopFeatures capability");const o=await import("../rest/support/TopFeaturesQuery.js"),a=await r.queryTopFeatures(o.default.from(e),t),n=this.graphicOrigin;if(a?.features)for(const s of a.features)s.layer=s.sourceLayer=this,s.origin=n;return a}async queryAttributeBins(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryAttributeBins)throw new s(ze,"Layer source does not support queryAttributeBins capability");be(e,i,ze);const o=await import("../rest/support/AttributeBinsQuery.js"),a=await r.queryAttributeBins(o.default.from(e),t),n=this.graphicOrigin;if(a.features)for(const s of a.features)s.layer=s.sourceLayer=this,s.origin=n;return a}async queryTopObjectIds(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopObjectIds||!i?.query.supportsTopFeaturesQuery)throw new s(ze,"Layer source does not support queryTopObjectIds capability");const o=await import("../rest/support/TopFeaturesQuery.js");return(await r.queryTopObjectIds(o.default.from(e),t)).filter(Be)}async queryTopFeaturesExtent(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopExtents||!i?.query?.supportsTopFeaturesQuery)throw new s(ze,"Layer source does not support queryTopExtents capability");const o=await import("../rest/support/TopFeaturesQuery.js");return r.queryTopExtents(o.default.from(e),t)}async queryTopFeatureCount(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopCount||!i?.query?.supportsTopFeaturesQuery)throw new s(ze,"Layer source does not support queryFeatureCount capability");const o=await import("../rest/support/TopFeaturesQuery.js");return r.queryTopCount(o.default.from(e),t)}read(e,t){const r=e.featureCollection;if((r||"Feature Collection"===e.type)&&(this.resourceInfo=e),r){const{layers:e,showLegend:i}=r;1===e?.length&&(super.read(e[0],t),null!=i&&super.read({showLegend:i},t))}super.read(e,t),"service"===t?.origin&&(["objectIdField","fields","timeInfo","dateFieldsTimeZone"].forEach(e=>this.revertToOrigin(e,"service")),this.spatialReference||this.revertToOrigin("spatialReference","service"))}write(e,t){t={...t,origin:t?.origin??void 0,writeLayerSchema:t?.writeLayerSchema??this._hasMemorySource()};const{origin:r,layerContainerType:i}=t;if(this.dynamicDataSource)return Ze(t,this,"a dynamic data source cannot be written to web scenes, web maps and feature service items"),null;if(this.isTable){if(("web-map"===r||"web-scene"===r)&&"tables"!==i)return Ze(t,this,"a table source can only be written to tables"),null;if(this._hasMemorySource())return Ze(t,this,"an in-memory table source cannot be written to web scenes and web maps"),null}else if(this.loaded&&("web-map"===r||"web-scene"===r)&&"tables"===i)return Ze(t,this,"a non-table source cannot be written to tables in web maps or web scenes"),null;return super.write(e,t)}clone(){if(this._hasMemorySource())throw new s(ze,`FeatureLayer (title: ${this.title}, id: ${this.id}) created using in-memory source cannot be cloned`);return super.clone()}serviceSupportsSpatialReference(e){return!!this.loaded&&("memory"===this.source?.type||qe(this,e))}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,t){return this._debouncedSaveOperations(1,t,e)}_readEditingEnabled(e,t,r){let i=e.layerDefinition?.capabilities;return i?this._hasEditingCapability(i):(i=e.capabilities,t&&"web-map"===r?.origin&&!this._hasMemorySource()&&i?this._hasEditingCapability(i):void 0)}_hasEditingCapability(e){return e.toLowerCase().split(",").map(e=>e.trim()).includes("editing")}_writeEditingEnabled(e,t,r,i){if(!e){const e=this.capabilities?.operations?.supportsSync?"Query,Sync":"Query";u("layerDefinition.capabilities",e,t),r&&!i?.writeLayerSchema&&(t.capabilities=e)}}_fetchFirstValidLayerId(e){return r(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const t=e.data;if(t)return this.applyPreferredHost(t),this.findFirstValidLayerId(t)})}async initLayerProperties(e){return this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),this._verifyFields(),Le(this.renderer,this.fieldsIndex),De(this.timeInfo,this.fieldsIndex),this._hasMemorySource()&&"mesh"===this.geometryType&&(this.capabilities.query.supportsReturnMesh=!0),Ae(this,{origin:"service"})}async hasDataChanged(){return ge(this)}async fetchPublishingStatus(){const e=this.source;return e?.fetchPublishingStatus?e.fetchPublishingStatus():"unavailable"}_verifyFields(){const e=this.parsedUrl?.path??"undefined";this.objectIdField||console.log("FeatureLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||this._hasMemorySource()||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some(e=>"geometry"===e.type)||console.log("FeatureLayer: unable to find field of type 'geometry' in the layer 'fields' list. If you are using a map service layer, features will not have geometry (url: "+e+")")}_fixTemplates(e,t){e&&e.forEach(e=>{const r=e.prototype?.attributes;r&&t&&delete r[t]})}_verifySource(){if(this._hasMemorySource()){if(this.url)throw new s("feature-layer:mixed-source-and-url","FeatureLayer cannot be created with both an in-memory source and a url")}else if(!this.url)throw new s("feature-layer:source-or-url-required","FeatureLayer requires either a url, a valid portal item or a source")}_initMemorySource(e){e.forEach(e=>{e.layer=this,e.sourceLayer=this}),this.addHandles([e.on("after-add",e=>{e.item.layer=this,e.item.sourceLayer=this}),e.on("after-remove",e=>{e.item.layer=null,e.item.sourceLayer=null})],"fl-source")}_resetMemorySource(e){e.forEach(e=>{e.layer=null,e.sourceLayer=null}),this.removeHandles("fl-source")}_hasMemorySource(){return!(this.url||!this.source)}findFirstValidLayerId(e){const t=[...e.layers||[],...e.tables||[]];return t.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id}};e([f({clonable:!1,readOnly:!0})],Ye.prototype,"_titleCreator",null),e([f(G)],Ye.prototype,"attributeTableTemplate",void 0),e([$e("service","capabilities")],Ye.prototype,"readCapabilities",null),e([f({json:{origins:{"web-scene":{write:!1}},write:!0}})],Ye.prototype,"charts",void 0),e([f({readOnly:!0})],Ye.prototype,"createQueryVersion",null),e([f({json:{read:{source:"layerDefinition.copyrightText"}}})],Ye.prototype,"copyright",void 0),e([f({json:{read:{source:"layerDefinition.displayField"}}})],Ye.prototype,"displayField",void 0),e([f({types:Je,readOnly:!0})],Ye.prototype,"defaultSymbol",void 0),e([f({type:Ue})],Ye.prototype,"dynamicDataSource",void 0),e([f({type:Boolean})],Ye.prototype,"editingEnabled",null),e([$e(["portal-item","web-scene"],"editingEnabled",["layerDefinition.capabilities"])],Ye.prototype,"readEditingEnabled",null),e([$e("web-map","editingEnabled",["capabilities","layerDefinition.capabilities"])],Ye.prototype,"readEditingEnabledFromWebMap",null),e([He(["portal-item","web-scene"],"editingEnabled",{"layerDefinition.capabilities":{type:String}})],Ye.prototype,"writeEditingEnabled",null),e([He("web-map","editingEnabled",{capabilities:{type:String},"layerDefinition.capabilities":{type:String}})],Ye.prototype,"writeEditingEnabledToWebMap",null),e([f({readOnly:!0})],Ye.prototype,"effectiveEditingEnabled",null),e([f({clonable:!1,readOnly:!0})],Ye.prototype,"featureTitleFields",null),e([f({type:[Te],json:{name:"layerDefinition.fieldConfigurations",write:{overridePolicy(e,t,r){return{enabled:!r?.writeLayerSchema,ignoreOrigin:1===this.originIdOf(t)}}}}})],Ye.prototype,"fieldConfigurations",null),e([f({...Ke.fields,json:{read:{source:"layerDefinition.fields"},origins:{service:{name:"fields"},"web-map":{write:{target:"layerDefinition.fields",overridePolicy:Xe}}}}})],Ye.prototype,"fields",void 0),e([f(Ke.fieldsIndex)],Ye.prototype,"fieldsIndex",void 0),e([f({type:g,json:{name:"formInfo",write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],Ye.prototype,"formTemplate",void 0),e([f({json:{read:{source:"layerDefinition.extent"}}})],Ye.prototype,"fullExtent",void 0),e([f({json:{origins:{"web-map":{write:{target:"layerDefinition.geometryType",overridePolicy:Xe,writer(e,t,r){const i=e?we.toJSON(e):null;i&&u(r,i,t)}}}},read:{source:"layerDefinition.geometryType",reader:we.read}}})],Ye.prototype,"geometryType",void 0),e([f({readOnly:!0,clonable:!1})],Ye.prototype,"graphicOrigin",void 0),e([f({json:{read:{source:"layerDefinition.hasM"}}})],Ye.prototype,"hasM",void 0),e([f({json:{read:{source:"layerDefinition.hasZ"}}})],Ye.prototype,"hasZ",void 0),e([f(J)],Ye.prototype,"id",void 0),e([f({readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],Ye.prototype,"infoFor3D",void 0),e([f({json:{origins:{"web-map":{write:{target:"layerDefinition.type"}}}}})],Ye.prototype,"isTable",void 0),e([$e("service","isTable",["type","geometryType"]),$e("isTable",["layerDefinition.type","layerDefinition.geometryType"])],Ye.prototype,"readIsTable",null),e([He("web-map","isTable")],Ye.prototype,"writeIsTable",null),e([f(W)],Ye.prototype,"labelsVisible",void 0),e([f({type:[_e],json:{origins:{service:{name:"drawingInfo.labelingInfo",read:Ce,write:!1}},name:"layerDefinition.drawingInfo.labelingInfo",read:Ce,write:{layerContainerTypes:b}}})],Ye.prototype,"labelingInfo",void 0),e([f((()=>{const e=a(Z);return e.json.origins["portal-item"]={write:{target:"layerDefinition.drawingInfo.transparency",writer(e,t,r){u(r,We(e),t)}}},e})())],Ye.prototype,"opacity",void 0),e([f($)],Ye.prototype,"legendEnabled",void 0),e([f({type:["show","hide"],json:(()=>{const e=a(H.json);return e.origins["portal-item"]={read:!1,write:!1},e})()})],Ye.prototype,"listMode",void 0),e([$e("globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"])],Ye.prototype,"readGlobalIdField",null),e([f({json:{origins:{"web-map":{write:{target:"layerDefinition.objectIdField",overridePolicy:Xe}}}}})],Ye.prototype,"objectIdField",void 0),e([$e("objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"])],Ye.prototype,"readObjectIdField",null),e([f({type:["ArcGISFeatureLayer"],json:{write:{target:"layerType",ignoreOrigin:!0,layerContainerTypes:b}}})],Ye.prototype,"operationalLayerType",void 0),e([f(Ke.outFields)],Ye.prototype,"outFields",void 0),e([f({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],Ye.prototype,"path",void 0),e([f(z)],Ye.prototype,"popupEnabled",void 0),e([f({type:t,json:{name:"popupInfo",write:!0}})],Ye.prototype,"popupTemplate",void 0),e([He("popupTemplate")],Ye.prototype,"writePopupTemplate",null),e([f({readOnly:!0})],Ye.prototype,"defaultPopupTemplate",null),e([f({types:Re,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{types:Qe,name:"layerDefinition.drawingInfo.renderer",write:{layerContainerTypes:b,overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema,layerContainerTypes:b})}}},write:{target:"layerDefinition.drawingInfo.renderer",overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema,layerContainerTypes:b})}}})],Ye.prototype,"renderer",null),e([$e("service","renderer",["drawingInfo.renderer","defaultSymbol"]),$e("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],Ye.prototype,"readRenderer",null),e([f()],Ye.prototype,"resourceInfo",void 0),e([f((()=>{const e=a(k);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],Ye.prototype,"screenSizePerspectiveEnabled",void 0),e([f({clonable:!1})],Ye.prototype,"source",null),e([$e("portal-item","source",["featureSet"]),$e("web-map","source",["featureSet"])],Ye.prototype,"readSource",null),e([f({json:{read:{source:"layerDefinition.extent.spatialReference"}}})],Ye.prototype,"spatialReference",void 0),e([f({type:Number})],Ye.prototype,"subtypeCode",void 0),e([f({readOnly:!1})],Ye.prototype,"subtypeField",void 0),e([f({readOnly:!1})],Ye.prototype,"subtypes",void 0),e([f({type:[ve]})],Ye.prototype,"templates",void 0),e([$e("templates",["editFieldsInfo","creatorField","editorField","templates"])],Ye.prototype,"readTemplates",null),e([f({type:Oe})],Ye.prototype,"timeInfo",void 0),e([f()],Ye.prototype,"title",void 0),e([$e("service","title",["name"]),$e("portal-item","title",["layerDefinition.title","layerDefinition.name","title"])],Ye.prototype,"readTitle",null),e([$e("web-map","title",["layerDefinition.name","title"])],Ye.prototype,"readTitleFromWebMap",null),e([f({type:String})],Ye.prototype,"sublayerTitleMode",void 0),e([f({json:{read:!1}})],Ye.prototype,"type",void 0),e([f({type:String})],Ye.prototype,"typeIdField",void 0),e([$e("service","typeIdField"),$e("typeIdField",["layerDefinition.typeIdField"])],Ye.prototype,"readTypeIdField",null),e([f({type:[Fe]})],Ye.prototype,"types",void 0),e([$e("service","types",["types"]),$e("types",["layerDefinition.types"])],Ye.prototype,"readTypes",null),e([f({type:Boolean,json:{origins:{"portal-item":{write:{target:"layerDefinition.defaultVisibility",layerContainerTypes:b}}}}})],Ye.prototype,"visible",void 0),e([$e("portal-item","visible",["visibility","layerDefinition.defaultVisibility"])],Ye.prototype,"readVisible",null),Ye=e([h("esri.layers.FeatureLayer")],Ye);export{Ye as default};
2
+ import{__decorate as e}from"tslib";import t from"../PopupTemplate.js";import r from"../request.js";import{ClonableMixin as i}from"../core/Clonable.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/Logger.js";import{destroyMaybe as l}from"../core/maybe.js";import{MultiOriginJSONSupportMixin as p}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as u}from"../core/object.js";import{debounce as d,throwIfAbortError as y,whenOrAbort as c}from"../core/promiseUtils.js";import{sqlAnd as m}from"../core/sql.js";import{property as f,subclass as h}from"../core/accessorSupport/decorators.js";import{excludeTables as b}from"../core/accessorSupport/layerContainerType.js";import g from"../form/FormTemplate.js";import w from"../geometry/SpatialReference.js";import v from"../graphic/FeatureGraphicOrigin.js";import F from"./Layer.js";import{MemorySource as T}from"./graphics/sources/MemorySource.js";import{APIKeyMixin as j}from"./mixins/APIKeyMixin.js";import{ArcGISService as S}from"./mixins/ArcGISService.js";import{BlendLayer as I}from"./mixins/BlendLayer.js";import{CustomParametersMixin as E}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as L}from"./mixins/DisplayFilteredLayer.js";import{EditBusLayer as D}from"./mixins/EditBusLayer.js";import{FeatureEffectLayer as _}from"./mixins/FeatureEffectLayer.js";import{FeatureLayerBase as C}from"./mixins/FeatureLayerBase.js";import{FeatureReductionLayer as P}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as O}from"./mixins/OperationalLayer.js";import{OrderedLayer as x}from"./mixins/OrderedLayer.js";import{PortalLayer as q}from"./mixins/PortalLayer.js";import{PublishableLayer as M}from"./mixins/PublishableLayer.js";import{RefreshableLayer as A}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as Q}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as R}from"./mixins/TemporalLayer.js";import{TrackableLayer as U}from"./mixins/TrackableLayer.js";import{titleFromUrlAndName as V,parse as N,cleanTitle as B}from"./support/arcgisLayerUrl.js";import{attributeTableTemplate as G,id as J,labelsVisible as W,opacityDrawingInfo as Z,legendEnabled as $,listMode as H,popupEnabled as z,screenSizePerspectiveEnabled as k}from"./support/commonProperties.js";import{ensureLayerCredential as K,computeEffectiveEditingEnabled as X,readGlobalIdField as Y,readObjectIdField as ee,createDefaultRenderer as te,addAttachment as re,updateAttachment as ie,applyEdits as oe,uploadAssets as se,createQuery as ae,deleteAttachments as ne,fetchRecomputedExtents as le,getFeatureType as pe,getFieldDomain as ue,queryAttachments as de,queryObjectIds as ye,queryFeatureCount as ce,queryExtent as me,queryRelatedFeatures as fe,queryRelatedFeaturesCount as he,validateBinsQuery as be,hasDataChanged as ge,geometryTypeKebabDict as we}from"./support/featureLayerUtils.js";import ve from"./support/FeatureTemplate.js";import Fe from"./support/FeatureType.js";import Te from"./support/FieldConfiguration.js";import{popupTemplateWithFieldConfigurations as je,fieldConfigurationsFromPopupTemplate as Se,fieldConfigurationsFromFields as Ie}from"./support/fieldConfigUtils.js";import{defineFieldProperties as Ee}from"./support/fieldProperties.js";import{fixRendererFields as Le,fixTimeInfoFields as De}from"./support/fieldUtils.js";import _e from"./support/LabelClass.js";import{reader as Ce}from"./support/labelingInfo.js";import{getFeatureLayerCapabilities as Pe}from"./support/serviceCapabilitiesUtils.js";import Oe from"./support/SymbolLayerDrawing.js";import xe from"./support/TimeInfo.js";import qe from"./support/TitleCreator.js";import{serviceSupportsSpatialReference as Me}from"./support/versionUtils.js";import{read as Ae}from"../renderers/support/jsonUtils.js";import{loadStyleRenderer as Qe}from"../renderers/support/styleUtils.js";import{webSceneRendererTypes as Re,rendererTypes as Ue}from"../renderers/support/typeUtils.js";import Ve from"../rest/layerSources/DynamicDataLayer.js";import Ne from"../rest/support/FeatureSet.js";import Be from"../rest/support/Query.js";import{isNumber as Ge}from"../support/guards.js";import{createPopupTemplate as Je}from"../support/popupUtils.js";import{symbolTypes as We}from"../symbols/support/typeUtils.js";import{opacityToTransparency as Ze}from"../webdoc/support/opacityUtils.js";import{addLayerUnsupportedError as $e}from"../webdoc/support/unsupportedErrors.js";import{reader as He}from"../core/accessorSupport/decorators/reader.js";import{writer as ze}from"../core/accessorSupport/decorators/writer.js";const ke="FeatureLayer";function Ke(e){return e&&e instanceof o}const Xe=Ee();function Ye(e,t,r){const i=!!r?.writeLayerSchema;return{enabled:i,ignoreOrigin:i}}let et=class extends(C(P(_(M(D(L(I(x(R(U(Q(A(S(O(q(p(E(j(i(F)))))))))))))))))))){constructor(...e){super(...e),this.attributeTableTemplate=null,this.charts=null,this.copyright=null,this.displayField=null,this.dynamicDataSource=null,this.fields=null,this.fieldsIndex=null,this.formTemplate=null,this.fullExtent=null,this.geometryType=null,this.graphicOrigin=new v(this),this.hasM=void 0,this.hasZ=void 0,this.infoFor3D=null,this.isTable=!1,this.labelsVisible=!0,this.labelingInfo=null,this.symbolLayerDrawing=null,this.legendEnabled=!0,this.objectIdField=null,this.operationalLayerType="ArcGISFeatureLayer",this.outFields=null,this.path=null,this.popupEnabled=!0,this.popupTemplate=null,this.resourceInfo=null,this.screenSizePerspectiveEnabled=!0,this.spatialReference=w.WGS84,this.subtypeCode=null,this.subtypeField=null,this.subtypes=null,this.supportedSourceTypes=new Set(["Feature Layer","Oriented Imagery Layer","Table","Catalog Layer"]),this.templates=null,this.timeInfo=null,this.title=null,this.sublayerTitleMode="item-title",this.type="feature",this.typeIdField=null,this.types=null,this.visible=!0,this._debouncedSaveOperations=d(async(e,t,r)=>{const{save:i,saveAs:o}=await import("./save/featureLayerUtils.js");switch(e){case 0:return i(this,t);case 1:return o(this,r,t)}})}destroy(){this.source?.destroy()}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=null!=e?e.signal:null;if(this.portalItem?.loaded&&this.source)return this.addResolvingPromise(this.createGraphicsSource(t).then(e=>this.initLayerProperties(e))),Promise.resolve(this);const r=this.loadFromPortal({supportedTypes:["Feature Service","Feature Collection","Scene Service"]},e).catch(y).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(t);null!=e&&(this.layerId=e)}if(!this.url&&!this._hasMemorySource())throw new s("feature-layer:missing-url-or-source","Feature layer must be created with either a url or a source");return this.initLayerProperties(await this.createGraphicsSource(t))}).then(()=>K(this,"load",e));return this.addResolvingPromise(r),Promise.resolve(this)}get _titleCreator(){const e=this._get("_titleCreator");return l(e),new qe({fieldsIndex:this.fieldsIndex,objectIdField:this.objectIdField,fields:this.fields,displayField:this.displayField,effectivePopupTemplate:this.popupTemplate??this.defaultPopupTemplate})}readCapabilities(e,t){return t=t.layerDefinition||t,Pe(t,this.url)}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("dynamicDataSource"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")??0)+1}get editingEnabled(){return!(this.loaded&&!this.capabilities?.operations.supportsEditing)&&(this._isOverridden("editingEnabled")?this._get("editingEnabled"):this._hasMemorySource()||this.userHasEditingPrivileges)}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}readEditingEnabled(e,t){return this._readEditingEnabled(t,!1)}readEditingEnabledFromWebMap(e,t,r){return this._readEditingEnabled(t,!0,r)}writeEditingEnabled(e,t){this._writeEditingEnabled(e,t,!1)}writeEditingEnabledToWebMap(e,t,r,i){this._writeEditingEnabled(e,t,!0,i)}get effectiveEditingEnabled(){return X(this)}get featureTitleFields(){return[...this._titleCreator.requiredFields]}set fieldConfigurations(e){if(this._hasMemorySource())return;if(this._override("fieldConfigurations",e),!this.loaded)return;const t=je(this,e);t&&this._set("popupTemplate",t)}get fieldConfigurations(){if(!this._hasMemorySource())return this._isOverridden("fieldConfigurations")?this._get("fieldConfigurations"):Se(this)||null}readIsTable(e,t){return"Table"===(t=t?.layerDefinition??t).type||!t.geometryType}writeIsTable(e,t,r,i){i?.writeLayerSchema&&u(r,e?"Table":"Feature Layer",t)}readGlobalIdField(e,t){return Y(t.layerDefinition||t)}readObjectIdField(e,t){return ee(t.layerDefinition||t)}writePopupTemplate(e,t,r,i){e&&(t[r]=e.toJSON({...i,writeFieldFormat:!i?.writeLayerSchema}))}get defaultPopupTemplate(){return this.createPopupTemplate()}set renderer(e){Le(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,t,r){t=t.layerDefinition||t;const i=t.drawingInfo?.renderer;if(i){const e=Ae(i,t,r)??void 0;return e||n.getLogger(this).error("Failed to create renderer",{rendererDefinition:t.drawingInfo.renderer,layer:this,context:r}),e}return te(t,r)}get source(){return this._get("source")}set source(e){e||(e=null);const t=this._get("source");t!==e&&((Array.isArray(e)||e instanceof o)&&(e=new T({layer:this,items:e})),Ke(t)&&this._resetMemorySource(t),Ke(e)&&this._initMemorySource(e),this._set("source",e))}readSource(e,t){const r=Ne.fromJSON(t.featureSet);return new T({layer:this,items:r?.features??[]})}readTemplates(e,t){const r=t.editFieldsInfo,i=r?.creatorField,o=r?.editorField;return e=e?.map(e=>ve.fromJSON(e)),this._fixTemplates(e,i),this._fixTemplates(e,o),e}readTitle(e,t){const r=t.layerDefinition?.name??t.name,i=t.title||t.layerDefinition?.title;if(r){if("item-title"===this.sublayerTitleMode)return this.url?V(this.url,r):r;let e=r;if(!e&&this.url){const t=N(this.url);null!=t&&(e=t.title)}if(!e)return;const t=this.portalItem?.title;return"item-title-and-service-name"===this.sublayerTitleMode&&t&&t!==e&&(e=t+" - "+e),B(e)}if("item-title"===this.sublayerTitleMode&&i)return i}readTitleFromWebMap(e,t){return t.title||t.layerDefinition?.name}readTypeIdField(e,t){let r=(t=t.layerDefinition||t).typeIdField;if(r&&t.fields){r=r.toLowerCase();const e=t.fields.find(e=>e.name.toLowerCase()===r);e&&(r=e.name)}return r}readTypes(e,t){e=(t=t.layerDefinition||t).types;const r=t.editFieldsInfo,i=r?.creatorField,o=r?.editorField;return e?.map(e=>(e=Fe.fromJSON(e),this._fixTemplates(e.templates,i),this._fixTemplates(e.templates,o),e))}readVisible(e,t){return null!=t.layerDefinition?.defaultVisibility?!!t.layerDefinition.defaultVisibility:null!=t.visibility?!!t.visibility:void 0}async addAttachment(e,t){const r=await re(this,e,t,ke);return this.lastEditsEventDate=new Date,r}async updateAttachment(e,t,r){const i=await ie(this,e,t,r,ke);return this.lastEditsEventDate=new Date,i}async applyEdits(e,t){return oe(this,e,t)}async uploadAssets(e,t){return se(this,e,t)}createFieldConfigurations(){return Ie(this)}createPopupTemplate(e){return Je(this,e)}async createGraphicsSource(e){if(this._hasMemorySource()&&this.source)return this.source.load({signal:e});const{default:t}=await c(import("./graphics/sources/FeatureLayerSource.js"),e);return new t({layer:this,supportedSourceTypes:this.supportedSourceTypes}).load({signal:e})}createQuery(){const e=ae(this);e.dynamicDataSource=this.dynamicDataSource;const t=null!=this.subtypeCode?`${this.subtypeField} = ${this.subtypeCode}`:null,r=m(this.definitionExpression,t);return e.where=r||"1=1",e}async deleteAttachments(e,t){const r=await ne(this,e,t,ke);return this.lastEditsEventDate=new Date,r}async fetchRecomputedExtents(e){return le(this,e,ke)}async getFeatureTitle(e,t){return this._titleCreator.getTitle(this,e,t)}async getFeatureTitles(e,t){return this._titleCreator.getTitles(this,e,t)}getFeatureType(e){return pe(this.types,this.typeIdField,e)}getFieldAlias(e){const t=this.getField(e);if(t)return this.getFieldConfiguration(t.name)?.alias||t.alias}getFieldConfiguration(e){return e=e.toLowerCase(),this.fieldConfigurations?.find(t=>t.name.toLowerCase()===e)}getFieldDomain(e,t){return ue(this,e,t,this.getField(e)?.domain??null)}async queryAttachments(e,t){return de(this,e,t,ke)}async queryFeatures(e,t){const r=await this.load(),i=await r.source.queryFeatures(Be.from(e)??r.createQuery(),t),o=this.graphicOrigin;if(i?.features)for(const s of i.features)s.layer=s.sourceLayer=r,s.origin=o;return i}async queryObjectIds(e,t){return await ye(this,e,t,ke)}async queryFeatureCount(e,t){return ce(this,e,t,ke)}async queryExtent(e,t){return me(this,e,t,ke)}async queryRelatedFeatures(e,t){return fe(this,e,t,ke)}async queryRelatedFeaturesCount(e,t){return he(this,e,t,ke)}async queryPivot(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryPivot||!i?.operations?.supportsQueryPivot)throw new s(ke,"Layer source does not support queryPivot capability");const o=await import("../rest/support/PivotQuery.js"),a=await r.queryPivot(o.default.from(e),t),n=this.graphicOrigin;if(a?.features)for(const s of a.features)s.layer=s.sourceLayer=this,s.origin=n;return a}async queryTopFeatures(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopFeatures||!i?.query?.supportsTopFeaturesQuery)throw new s(ke,"Layer source does not support queryTopFeatures capability");const o=await import("../rest/support/TopFeaturesQuery.js"),a=await r.queryTopFeatures(o.default.from(e),t),n=this.graphicOrigin;if(a?.features)for(const s of a.features)s.layer=s.sourceLayer=this,s.origin=n;return a}async queryAttributeBins(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryAttributeBins)throw new s(ke,"Layer source does not support queryAttributeBins capability");be(e,i,ke);const o=await import("../rest/support/AttributeBinsQuery.js"),a=await r.queryAttributeBins(o.default.from(e),t),n=this.graphicOrigin;if(a.features)for(const s of a.features)s.layer=s.sourceLayer=this,s.origin=n;return a}async queryTopObjectIds(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopObjectIds||!i?.query.supportsTopFeaturesQuery)throw new s(ke,"Layer source does not support queryTopObjectIds capability");const o=await import("../rest/support/TopFeaturesQuery.js");return(await r.queryTopObjectIds(o.default.from(e),t)).filter(Ge)}async queryTopFeaturesExtent(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopExtents||!i?.query?.supportsTopFeaturesQuery)throw new s(ke,"Layer source does not support queryTopExtents capability");const o=await import("../rest/support/TopFeaturesQuery.js");return r.queryTopExtents(o.default.from(e),t)}async queryTopFeatureCount(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopCount||!i?.query?.supportsTopFeaturesQuery)throw new s(ke,"Layer source does not support queryFeatureCount capability");const o=await import("../rest/support/TopFeaturesQuery.js");return r.queryTopCount(o.default.from(e),t)}read(e,t){const r=e.featureCollection;if((r||"Feature Collection"===e.type)&&(this.resourceInfo=e),r){const{layers:e,showLegend:i}=r;1===e?.length&&(super.read(e[0],t),null!=i&&super.read({showLegend:i},t))}super.read(e,t),"service"===t?.origin&&(["objectIdField","fields","timeInfo","dateFieldsTimeZone"].forEach(e=>this.revertToOrigin(e,"service")),this.spatialReference||this.revertToOrigin("spatialReference","service"))}write(e,t){t={...t,origin:t?.origin??void 0,writeLayerSchema:t?.writeLayerSchema??this._hasMemorySource()};const{origin:r,layerContainerType:i}=t;if(this.dynamicDataSource)return $e(t,this,"a dynamic data source cannot be written to web scenes, web maps and feature service items"),null;if(this.isTable){if(("web-map"===r||"web-scene"===r)&&"tables"!==i)return $e(t,this,"a table source can only be written to tables"),null;if(this._hasMemorySource())return $e(t,this,"an in-memory table source cannot be written to web scenes and web maps"),null}else if(this.loaded&&("web-map"===r||"web-scene"===r)&&"tables"===i)return $e(t,this,"a non-table source cannot be written to tables in web maps or web scenes"),null;return super.write(e,t)}clone(){if(this._hasMemorySource())throw new s(ke,`FeatureLayer (title: ${this.title}, id: ${this.id}) created using in-memory source cannot be cloned`);return super.clone()}serviceSupportsSpatialReference(e){return!!this.loaded&&("memory"===this.source?.type||Me(this,e))}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,t){return this._debouncedSaveOperations(1,t,e)}_readEditingEnabled(e,t,r){let i=e.layerDefinition?.capabilities;return i?this._hasEditingCapability(i):(i=e.capabilities,t&&"web-map"===r?.origin&&!this._hasMemorySource()&&i?this._hasEditingCapability(i):void 0)}_hasEditingCapability(e){return e.toLowerCase().split(",").map(e=>e.trim()).includes("editing")}_writeEditingEnabled(e,t,r,i){if(!e){const e=this.capabilities?.operations?.supportsSync?"Query,Sync":"Query";u("layerDefinition.capabilities",e,t),r&&!i?.writeLayerSchema&&(t.capabilities=e)}}_fetchFirstValidLayerId(e){return r(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const t=e.data;if(t)return this.applyPreferredHost(t),this.findFirstValidLayerId(t)})}async initLayerProperties(e){return this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),this._verifyFields(),Le(this.renderer,this.fieldsIndex),De(this.timeInfo,this.fieldsIndex),this._hasMemorySource()&&"mesh"===this.geometryType&&(this.capabilities.query.supportsReturnMesh=!0),Qe(this,{origin:"service"})}async hasDataChanged(){return ge(this)}async fetchPublishingStatus(){const e=this.source;return e?.fetchPublishingStatus?e.fetchPublishingStatus():"unavailable"}_verifyFields(){const e=this.parsedUrl?.path??"undefined";this.objectIdField||console.log("FeatureLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||this._hasMemorySource()||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some(e=>"geometry"===e.type)||console.log("FeatureLayer: unable to find field of type 'geometry' in the layer 'fields' list. If you are using a map service layer, features will not have geometry (url: "+e+")")}_fixTemplates(e,t){e&&e.forEach(e=>{const r=e.prototype?.attributes;r&&t&&delete r[t]})}_verifySource(){if(this._hasMemorySource()){if(this.url)throw new s("feature-layer:mixed-source-and-url","FeatureLayer cannot be created with both an in-memory source and a url")}else if(!this.url)throw new s("feature-layer:source-or-url-required","FeatureLayer requires either a url, a valid portal item or a source")}_initMemorySource(e){e.forEach(e=>{e.layer=this,e.sourceLayer=this}),this.addHandles([e.on("after-add",e=>{e.item.layer=this,e.item.sourceLayer=this}),e.on("after-remove",e=>{e.item.layer=null,e.item.sourceLayer=null})],"fl-source")}_resetMemorySource(e){e.forEach(e=>{e.layer=null,e.sourceLayer=null}),this.removeHandles("fl-source")}_hasMemorySource(){return!(this.url||!this.source)}findFirstValidLayerId(e){const t=[...e.layers||[],...e.tables||[]];return t.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id}};e([f({clonable:!1,readOnly:!0})],et.prototype,"_titleCreator",null),e([f(G)],et.prototype,"attributeTableTemplate",void 0),e([He("service","capabilities")],et.prototype,"readCapabilities",null),e([f({json:{origins:{"web-scene":{write:!1}},write:!0}})],et.prototype,"charts",void 0),e([f({readOnly:!0})],et.prototype,"createQueryVersion",null),e([f({json:{read:{source:"layerDefinition.copyrightText"}}})],et.prototype,"copyright",void 0),e([f({json:{read:{source:"layerDefinition.displayField"}}})],et.prototype,"displayField",void 0),e([f({types:We,readOnly:!0})],et.prototype,"defaultSymbol",void 0),e([f({type:Ve})],et.prototype,"dynamicDataSource",void 0),e([f({type:Boolean})],et.prototype,"editingEnabled",null),e([He(["portal-item","web-scene"],"editingEnabled",["layerDefinition.capabilities"])],et.prototype,"readEditingEnabled",null),e([He("web-map","editingEnabled",["capabilities","layerDefinition.capabilities"])],et.prototype,"readEditingEnabledFromWebMap",null),e([ze(["portal-item","web-scene"],"editingEnabled",{"layerDefinition.capabilities":{type:String}})],et.prototype,"writeEditingEnabled",null),e([ze("web-map","editingEnabled",{capabilities:{type:String},"layerDefinition.capabilities":{type:String}})],et.prototype,"writeEditingEnabledToWebMap",null),e([f({readOnly:!0})],et.prototype,"effectiveEditingEnabled",null),e([f({clonable:!1,readOnly:!0})],et.prototype,"featureTitleFields",null),e([f({type:[Te],json:{name:"layerDefinition.fieldConfigurations",write:{overridePolicy(e,t,r){return{enabled:!r?.writeLayerSchema,ignoreOrigin:1===this.originIdOf(t)}}}}})],et.prototype,"fieldConfigurations",null),e([f({...Xe.fields,json:{read:{source:"layerDefinition.fields"},origins:{service:{name:"fields"},"web-map":{write:{target:"layerDefinition.fields",overridePolicy:Ye}}}}})],et.prototype,"fields",void 0),e([f(Xe.fieldsIndex)],et.prototype,"fieldsIndex",void 0),e([f({type:g,json:{name:"formInfo",write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],et.prototype,"formTemplate",void 0),e([f({json:{read:{source:"layerDefinition.extent"}}})],et.prototype,"fullExtent",void 0),e([f({json:{origins:{"web-map":{write:{target:"layerDefinition.geometryType",overridePolicy:Ye,writer(e,t,r){const i=e?we.toJSON(e):null;i&&u(r,i,t)}}}},read:{source:"layerDefinition.geometryType",reader:we.read}}})],et.prototype,"geometryType",void 0),e([f({readOnly:!0,clonable:!1})],et.prototype,"graphicOrigin",void 0),e([f({json:{read:{source:"layerDefinition.hasM"}}})],et.prototype,"hasM",void 0),e([f({json:{read:{source:"layerDefinition.hasZ"}}})],et.prototype,"hasZ",void 0),e([f(J)],et.prototype,"id",void 0),e([f({readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],et.prototype,"infoFor3D",void 0),e([f({json:{origins:{"web-map":{write:{target:"layerDefinition.type"}}}}})],et.prototype,"isTable",void 0),e([He("service","isTable",["type","geometryType"]),He("isTable",["layerDefinition.type","layerDefinition.geometryType"])],et.prototype,"readIsTable",null),e([ze("web-map","isTable")],et.prototype,"writeIsTable",null),e([f(W)],et.prototype,"labelsVisible",void 0),e([f({type:[_e],json:{origins:{service:{name:"drawingInfo.labelingInfo",read:Ce,write:!1}},name:"layerDefinition.drawingInfo.labelingInfo",read:Ce,write:{layerContainerTypes:b}}})],et.prototype,"labelingInfo",void 0),e([f({type:Oe,json:{name:"layerDefinition.drawingInfo.symbolLayerDrawing",write:!0,origins:{"web-scene":{write:!1}}}})],et.prototype,"symbolLayerDrawing",void 0),e([f((()=>{const e=a(Z);return e.json.origins["portal-item"]={write:{target:"layerDefinition.drawingInfo.transparency",writer(e,t,r){u(r,Ze(e),t)}}},e})())],et.prototype,"opacity",void 0),e([f($)],et.prototype,"legendEnabled",void 0),e([f({type:["show","hide"],json:(()=>{const e=a(H.json);return e.origins["portal-item"]={read:!1,write:!1},e})()})],et.prototype,"listMode",void 0),e([He("globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"])],et.prototype,"readGlobalIdField",null),e([f({json:{origins:{"web-map":{write:{target:"layerDefinition.objectIdField",overridePolicy:Ye}}}}})],et.prototype,"objectIdField",void 0),e([He("objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"])],et.prototype,"readObjectIdField",null),e([f({type:["ArcGISFeatureLayer"],json:{write:{target:"layerType",ignoreOrigin:!0,layerContainerTypes:b}}})],et.prototype,"operationalLayerType",void 0),e([f(Xe.outFields)],et.prototype,"outFields",void 0),e([f({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],et.prototype,"path",void 0),e([f(z)],et.prototype,"popupEnabled",void 0),e([f({type:t,json:{name:"popupInfo",write:!0}})],et.prototype,"popupTemplate",void 0),e([ze("popupTemplate")],et.prototype,"writePopupTemplate",null),e([f({readOnly:!0})],et.prototype,"defaultPopupTemplate",null),e([f({types:Ue,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{types:Re,name:"layerDefinition.drawingInfo.renderer",write:{layerContainerTypes:b,overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema,layerContainerTypes:b})}}},write:{target:"layerDefinition.drawingInfo.renderer",overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema,layerContainerTypes:b})}}})],et.prototype,"renderer",null),e([He("service","renderer",["drawingInfo.renderer","defaultSymbol"]),He("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],et.prototype,"readRenderer",null),e([f()],et.prototype,"resourceInfo",void 0),e([f((()=>{const e=a(k);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],et.prototype,"screenSizePerspectiveEnabled",void 0),e([f({clonable:!1})],et.prototype,"source",null),e([He("portal-item","source",["featureSet"]),He("web-map","source",["featureSet"])],et.prototype,"readSource",null),e([f({json:{read:{source:"layerDefinition.extent.spatialReference"}}})],et.prototype,"spatialReference",void 0),e([f({type:Number})],et.prototype,"subtypeCode",void 0),e([f({readOnly:!1})],et.prototype,"subtypeField",void 0),e([f({readOnly:!1})],et.prototype,"subtypes",void 0),e([f({type:[ve]})],et.prototype,"templates",void 0),e([He("templates",["editFieldsInfo","creatorField","editorField","templates"])],et.prototype,"readTemplates",null),e([f({type:xe})],et.prototype,"timeInfo",void 0),e([f()],et.prototype,"title",void 0),e([He("service","title",["name"]),He("portal-item","title",["layerDefinition.title","layerDefinition.name","title"])],et.prototype,"readTitle",null),e([He("web-map","title",["layerDefinition.name","title"])],et.prototype,"readTitleFromWebMap",null),e([f({type:String})],et.prototype,"sublayerTitleMode",void 0),e([f({json:{read:!1}})],et.prototype,"type",void 0),e([f({type:String})],et.prototype,"typeIdField",void 0),e([He("service","typeIdField"),He("typeIdField",["layerDefinition.typeIdField"])],et.prototype,"readTypeIdField",null),e([f({type:[Fe]})],et.prototype,"types",void 0),e([He("service","types",["types"]),He("types",["layerDefinition.types"])],et.prototype,"readTypes",null),e([f({type:Boolean,json:{origins:{"portal-item":{write:{target:"layerDefinition.defaultVisibility",layerContainerTypes:b}}}}})],et.prototype,"visible",void 0),e([He("portal-item","visible",["visibility","layerDefinition.defaultVisibility"])],et.prototype,"readVisible",null),et=e([h("esri.layers.FeatureLayer")],et);export{et as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{ClonableMixin as t}from"../core/Clonable.js";import r from"../core/Collection.js";import s from"../core/Error.js";import{loadAll as i}from"../core/loadAll.js";import{getOrCreateMapValue as o}from"../core/MapUtils.js";import{MultiOriginJSONSupportMixin as a}from"../core/MultiOriginJSONSupport.js";import{debounce as n,throwIfAbortError as u,whenOrAbort as l}from"../core/promiseUtils.js";import{watch as p,sync as y}from"../core/reactiveUtils.js";import{sqlAnd as d}from"../core/sql.js";import{property as c,subclass as h}from"../core/accessorSupport/decorators.js";import m from"./Layer.js";import{APIKeyMixin as f}from"./mixins/APIKeyMixin.js";import{ArcGISService as b}from"./mixins/ArcGISService.js";import{BlendLayer as g}from"./mixins/BlendLayer.js";import{CustomParametersMixin as w}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as S}from"./mixins/DisplayFilteredLayer.js";import{EditBusLayer as F}from"./mixins/EditBusLayer.js";import{FeatureLayerBase as j}from"./mixins/FeatureLayerBase.js";import{OperationalLayer as v}from"./mixins/OperationalLayer.js";import{PortalLayer as L}from"./mixins/PortalLayer.js";import{RefreshableLayer as T}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as x}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as E}from"./mixins/TemporalLayer.js";import{titleFromUrlAndName as I}from"./support/arcgisLayerUrl.js";import{id as _}from"./support/commonProperties.js";import{ensureLayerCredential as O,computeEffectiveEditingEnabled as C,addAttachment as P,updateAttachment as G,applyEdits as U,createQuery as q,deleteAttachments as D,fetchRecomputedExtents as A,computeDomainFromSubtypes as M,getFeatureSubtype as k,queryAttachments as R,queryObjectIds as N,queryFeatureCount as Q,queryExtent as $,queryRelatedFeatures as H,queryRelatedFeaturesCount as J,hasDataChanged as V}from"./support/featureLayerUtils.js";import{defineFieldProperties as B}from"./support/fieldProperties.js";import{fixTimeInfoFields as z}from"./support/fieldUtils.js";import{getSymbolWithColorSupport as K,createSimpleRenderersWithUniqueColors as Z}from"./support/subtypeGroupLayerUtils.js";import W from"./support/SubtypeSublayer.js";import X from"./support/TimeInfo.js";import{serviceSupportsSpatialReference as Y}from"./support/versionUtils.js";import ee from"../rest/support/Query.js";import{isNumber as te}from"../support/guards.js";import{addLayerUnsupportedError as re}from"../webdoc/support/unsupportedErrors.js";import{reader as se}from"../core/accessorSupport/decorators/reader.js";const ie="SubtypeGroupLayer";function oe(e,t){const r=[];for(const s of e){const e=new W;e.read(s,t),r.push(e)}return r}const ae=B();function ne(){return{name:"layerType",read:{enabled:!0},write:{enabled:!0,ignoreOrigin:!0,isRequired:!0}}}let ue=class extends(j(S(F(g(E(x(T(b(v(L(a(w(f(t(m))))))))))))))){constructor(...e){super(...e),this._sublayerLookup=new Map,this.fields=null,this.fieldsIndex=null,this.outFields=null,this.sublayers=new(r.ofType(W)),this.useUniqueColorsForSublayers=!0,this.supportedSourceTypes=new Set(["Feature Layer","Table"]),this.timeInfo=null,this.title="Layer",this.type="subtype-group",this._debouncedSaveOperations=n(async(e,t,r)=>{const{save:s,saveAs:i}=await import("./save/featureLayerUtils.js");switch(e){case 0:return s(this,t);case 1:return i(this,r,t)}}),this.addHandles(p(()=>this.sublayers,(e,t)=>this._handleSublayersChange(e,t),y))}destroy(){this.source?.destroy()}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=null!=e?e.signal:null,r=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(u).then(async()=>{if(!this.url)throw new s("subtype-grouplayer:missing-url-or-source","SubtypeGroupLayer must be created with either a url or a portal item");if(null==this.layerId)throw new s("subtype-grouplayer:missing-layerid","layerId is required for a SubtypeGroupLayer created with url");this._initLayerProperties(await this.createGraphicsSource(t))}).then(()=>O(this,"load",e));return this.addResolvingPromise(r),Promise.resolve(this)}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")??0)+1}get editingEnabled(){return this.loaded&&null!=this.capabilities&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}get effectiveEditingEnabled(){return C(this)}get operationalLayerType(){return this.isTable?"SubtypeGroupTable":"SubtypeGroupLayer"}set source(e){this._get("source")!==e&&this._set("source",e)}readTitleFromService(e,{name:t}){return this.url?I(this.url,t):t}async addAttachment(e,t){const r=await P(this,e,t,ie);return this.lastEditsEventDate=new Date,r}async updateAttachment(e,t,r){const s=await G(this,e,t,r,ie);return this.lastEditsEventDate=new Date,s}async applyEdits(e,t){return U(this,e,t)}async createGraphicsSource(e){const{default:t}=await l(import("./graphics/sources/FeatureLayerSource.js"),e);return new t({layer:this,supportedSourceTypes:this.supportedSourceTypes}).load({signal:e})}createQuery(){const e=q(this),t=this.sublayers.map(e=>e.subtypeCode);return e.where=d(`${this.subtypeField} IN (${t.join(",")})`,this.definitionExpression),e}async deleteAttachments(e,t){const r=await D(this,e,t,ie);return this.lastEditsEventDate=new Date,r}async fetchRecomputedExtents(e){return A(this,e,ie)}findSublayerForFeature(e){const t=this.fieldsIndex.get(this.subtypeField),r=e.attributes[t.name];return this.findSublayerForSubtypeCode(r)}findSublayerForSubtypeCode(e){return this._sublayerLookup.get(e)}getFieldDomain(e,t){if(!t?.excludeImpliedDomains){const t=M(this,e);if(t)return t}const r=k(this,t?.feature);if(r){const t=r.domains?.[e];return"inherited"===t?.type?this._getLayerDomain(e):t}return this._getLayerDomain(e)}loadAll(){return i(this,e=>{e(this.sublayers)})}async queryAttachments(e,t){return R(this,e,t,ie)}async queryFeatures(e,t){const r=await this.load(),s=ee.from(e)??r.createQuery(),i=s.outFields??[];i.includes(this.subtypeField)||(i.push(this.subtypeField),s.outFields=i);const o=await r.source.queryFeatures(s,t);if(o?.features)for(const a of o.features){const e=this.findSublayerForFeature(a);a.origin=e?.graphicOrigin,a.layer=a.sourceLayer=this.findSublayerForFeature(a)}return o}async queryObjectIds(e,t){return(await N(this,e,t,ie)).filter(te)}async queryFeatureCount(e,t){return Q(this,e,t,ie)}async queryExtent(e,t){return $(this,e,t,ie)}async queryRelatedFeatures(e,t){return H(this,e,t,ie)}async queryRelatedFeaturesCount(e,t){return J(this,e,t,ie)}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,t){return this._debouncedSaveOperations(1,t,e)}write(e,t){const{origin:r,layerContainerType:i,messages:o}=t;if(this.isTable){if("web-scene"===r||"web-map"===r&&"tables"!==i)return re(t,this,"a table source cannot be written to web scenes and web maps"),null}else if(this.loaded&&"web-map"===r&&"tables"===i)return re(t,this,"a non-table source cannot be written to tables in web maps"),null;return this.sublayers?.length?super.write(e,t):(o?.push(new s("web-document-write:invalid-property",`Layer (${this.title}, ${this.id}) of type '${this.declaredClass}' has invalid value for 'sublayers' property. 'sublayers' collection should contain at least one sublayer`,{layer:this})),null)}serviceSupportsSpatialReference(e){return!!this.loaded&&Y(this,e)}async getFeatureTitle(e,t){const r=this.findSublayerForFeature(e);return r?await r.getFeatureTitle(e,t):this._getFeatureTitleForUnknownSublayer(e)}async getFeatureTitles(e,t){const r=new Map,s=new Map,i=[s];e.forEach(e=>{const t=this.findSublayerForFeature(e);if(t)o(r,t,()=>[]).push(e);else{const t=e.getObjectId()??e.attributes[this.objectIdField];s.set(t,this._getFeatureTitleForUnknownSublayer(e))}});const a=await Promise.all(Array.from(r).map(([e,r])=>e.getFeatureTitles(r,t)));return a.forEach(e=>i.push(e)),new Map(i.flatMap(e=>[...e]))}get featureTitleFields(){const e=new Set;for(const t of this.sublayers){const r=t.featureTitleFields;for(const t of r)e.add(t)}return[...e]}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}_initLayerProperties(e){this._set("source",e);const{sourceJSON:t}=e;if(t&&(this.sourceJSON=t,this.read(t,{origin:"service",url:this.parsedUrl})),!this.subtypes?.length)throw new s("subtype-grouplayer:missing-subtypes","SubtypeGroupLayer must be created using a layer with subtypes");this._verifyFields(),z(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return V(this)}_verifyFields(){const e=this.parsedUrl?.path??"undefined";this.objectIdField||console.log("SubtypeGroupLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some(e=>"geometry"===e.type)||console.log("SubtypeGroupLayer: unable to find field of type 'geometry' in the layer 'fields' list. If you are using a map service layer, features will not have geometry (url: "+e+")")}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null}),this.removeHandles("sublayers-owner"),this._sublayerLookup.clear()),e&&(e.forEach(e=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),e.on("after-remove",({item:e})=>{e.parent=null,this._sublayerLookup.delete(e.subtypeCode)})],"sublayers-owner"))}_getFeatureTitleForUnknownSublayer(e){const{displayField:t,fieldsIndex:r,objectIdField:s}=this;if(t&&r.has(t))return e.attributes[r.get(t).name]??"";const i=e.getObjectId();return null!=i?i.toString():s&&r.has(s)?e.attributes[r.get(s).name]??"":""}};e([c({readOnly:!0})],ue.prototype,"createQueryVersion",null),e([c({readOnly:!0})],ue.prototype,"editingEnabled",null),e([c({readOnly:!0})],ue.prototype,"effectiveEditingEnabled",null),e([c({...ae.fields,readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],ue.prototype,"fields",void 0),e([c(ae.fieldsIndex)],ue.prototype,"fieldsIndex",void 0),e([c(_)],ue.prototype,"id",void 0),e([c({type:["show","hide","hide-children"],json:{origins:{"portal-item":{read:!1,write:!1}}}})],ue.prototype,"listMode",void 0),e([c({type:["SubtypeGroupLayer","SubtypeGroupTable"],json:{...ne(),origins:{"web-document":ne(),"portal-item":ne()}}})],ue.prototype,"operationalLayerType",null),e([c(ae.outFields)],ue.prototype,"outFields",void 0),e([c({clonable:!1})],ue.prototype,"source",null),e([c({type:r.ofType(W),json:{origins:{service:{read:{source:"subtypes",reader(e,t,s){let i=null;if(this.useUniqueColorsForSublayers){const r=K(t,s);i=r?Z(e.length,r):null}const o=e.map(({code:e},r)=>{const o=new W({subtypeCode:e});o.read(t,s);const a=i?.[r];return a&&o.read({drawingInfo:{renderer:a.toJSON()}},s),o});return new(r.ofType(W))(o)}}}},read:{source:["layers","tables"],reader(e,t,s){let i;return"SubtypeGroupLayer"===t.layerType&&t.layers?.length?i=oe(t.layers,s):"SubtypeGroupTable"===t.layerType&&t.tables?.length&&(i=oe(t.tables,s)),new(r.ofType(W))(i)}},write:{ignoreOrigin:!0,writer(e,t,r,s){const i=[];for(const o of e){const e=o.write({},s);i.push(e)}this.isTable?t.tables=i:t.layers=i}}}})],ue.prototype,"sublayers",void 0),e([c()],ue.prototype,"useUniqueColorsForSublayers",void 0),e([c({type:X})],ue.prototype,"timeInfo",void 0),e([c({json:{origins:{"portal-item":{write:{enabled:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}}}})],ue.prototype,"title",void 0),e([se("service","title",["name"])],ue.prototype,"readTitleFromService",null),e([c({json:{read:!1}})],ue.prototype,"type",void 0),e([c({clonable:!1,readOnly:!0})],ue.prototype,"featureTitleFields",null),ue=e([h("esri.layers.SubtypeGroupLayer")],ue);const le=ue;export{le as default};
2
+ import{__decorate as e}from"tslib";import{ClonableMixin as t}from"../core/Clonable.js";import r from"../core/Collection.js";import s from"../core/Error.js";import{loadAll as i}from"../core/loadAll.js";import{getOrCreateMapValue as o}from"../core/MapUtils.js";import{MultiOriginJSONSupportMixin as a}from"../core/MultiOriginJSONSupport.js";import{debounce as n,throwIfAbortError as u,whenOrAbort as l}from"../core/promiseUtils.js";import{watch as p,sync as y}from"../core/reactiveUtils.js";import{sqlAnd as d}from"../core/sql.js";import{property as c,subclass as h}from"../core/accessorSupport/decorators.js";import m from"./Layer.js";import{APIKeyMixin as f}from"./mixins/APIKeyMixin.js";import{ArcGISService as b}from"./mixins/ArcGISService.js";import{BlendLayer as g}from"./mixins/BlendLayer.js";import{CustomParametersMixin as F}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as w}from"./mixins/DisplayFilteredLayer.js";import{EditBusLayer as S}from"./mixins/EditBusLayer.js";import{FeatureLayerBase as j}from"./mixins/FeatureLayerBase.js";import{OperationalLayer as v}from"./mixins/OperationalLayer.js";import{PortalLayer as L}from"./mixins/PortalLayer.js";import{RefreshableLayer as T}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as I}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as x}from"./mixins/TemporalLayer.js";import{titleFromUrlAndName as E}from"./support/arcgisLayerUrl.js";import{id as _}from"./support/commonProperties.js";import{ensureLayerCredential as O,computeEffectiveEditingEnabled as C,addAttachment as P,updateAttachment as U,applyEdits as G,createQuery as q,deleteAttachments as D,fetchRecomputedExtents as M,computeDomainFromSubtypes as A,getFeatureSubtype as k,queryAttachments as R,queryObjectIds as N,queryFeatureCount as Q,queryExtent as $,queryRelatedFeatures as H,queryRelatedFeaturesCount as J,hasDataChanged as V}from"./support/featureLayerUtils.js";import{defineFieldProperties as B}from"./support/fieldProperties.js";import{fixTimeInfoFields as z}from"./support/fieldUtils.js";import{getSymbolWithColorSupport as K,createSimpleRenderersWithUniqueColors as Z}from"./support/subtypeGroupLayerUtils.js";import W from"./support/SubtypeSublayer.js";import X from"./support/TimeInfo.js";import{serviceSupportsSpatialReference as Y}from"./support/versionUtils.js";import ee from"../rest/support/Query.js";import{isNumber as te}from"../support/guards.js";import{addLayerUnsupportedError as re}from"../webdoc/support/unsupportedErrors.js";import{reader as se}from"../core/accessorSupport/decorators/reader.js";const ie="SubtypeGroupLayer";function oe(e,t){const r=[];for(const s of e){const e=new W;e.read(s,t),r.push(e)}return r}const ae=B();function ne(){return{name:"layerType",read:{enabled:!0},write:{enabled:!0,ignoreOrigin:!0,isRequired:!0}}}let ue=class extends(j(w(S(g(x(I(T(b(v(L(a(F(f(t(m))))))))))))))){constructor(...e){super(...e),this._sublayerLookup=new Map,this.fields=null,this.fieldsIndex=null,this.outFields=null,this.sublayers=new(r.ofType(W)),this.useUniqueColorsForSublayers=!0,this.supportedSourceTypes=new Set(["Feature Layer","Table"]),this.timeInfo=null,this.title="Layer",this.type="subtype-group",this._debouncedSaveOperations=n(async(e,t,r)=>{const{save:s,saveAs:i}=await import("./save/featureLayerUtils.js");switch(e){case 0:return s(this,t);case 1:return i(this,r,t)}}),this.addHandles(p(()=>this.sublayers,(e,t)=>this._handleSublayersChange(e,t),y))}destroy(){this.source?.destroy()}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=null!=e?e.signal:null,r=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(u).then(async()=>{if(!this.url)throw new s("subtype-grouplayer:missing-url-or-source","SubtypeGroupLayer must be created with either a url or a portal item");if(null==this.layerId)throw new s("subtype-grouplayer:missing-layerid","layerId is required for a SubtypeGroupLayer created with url");this._initLayerProperties(await this.createGraphicsSource(t))}).then(()=>O(this,"load",e));return this.addResolvingPromise(r),Promise.resolve(this)}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")??0)+1}get editingEnabled(){return this.loaded&&null!=this.capabilities&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}get effectiveEditingEnabled(){return C(this)}get operationalLayerType(){return this.isTable?"SubtypeGroupTable":"SubtypeGroupLayer"}set source(e){this._get("source")!==e&&this._set("source",e)}readTitleFromService(e,{name:t}){return this.url?E(this.url,t):t}async addAttachment(e,t){const r=await P(this,e,t,ie);return this.lastEditsEventDate=new Date,r}async updateAttachment(e,t,r){const s=await U(this,e,t,r,ie);return this.lastEditsEventDate=new Date,s}async applyEdits(e,t){return G(this,e,t)}async createGraphicsSource(e){const{default:t}=await l(import("./graphics/sources/FeatureLayerSource.js"),e);return new t({layer:this,supportedSourceTypes:this.supportedSourceTypes}).load({signal:e})}createQuery(){const e=q(this),t=this.sublayers.map(e=>e.subtypeCode);return e.where=d(`${this.subtypeField} IN (${t.join(",")})`,this.definitionExpression),e}async deleteAttachments(e,t){const r=await D(this,e,t,ie);return this.lastEditsEventDate=new Date,r}async fetchRecomputedExtents(e){return M(this,e,ie)}findSublayerForFeature(e){const t=this.fieldsIndex.get(this.subtypeField),r=e.attributes[t.name];return this.findSublayerForSubtypeCode(r)}findSublayerForSubtypeCode(e){return this._sublayerLookup.get(e)}getFieldDomain(e,t){if(!t?.excludeImpliedDomains){const t=A(this,e);if(t)return t}const r=k(this,t?.feature);if(r){const t=r.domains?.[e];return"inherited"===t?.type?this._getLayerDomain(e):t}return this._getLayerDomain(e)}loadAll(){return i(this,e=>{e(this.sublayers)})}async queryAttachments(e,t){return R(this,e,t,ie)}async queryFeatures(e,t){const r=await this.load(),s=ee.from(e)??r.createQuery(),i=s.outFields??[];i.includes(this.subtypeField)||(i.push(this.subtypeField),s.outFields=i);const o=await r.source.queryFeatures(s,t);if(o?.features)for(const a of o.features){const e=this.findSublayerForFeature(a);a.origin=e?.graphicOrigin,a.layer=a.sourceLayer=this.findSublayerForFeature(a)}return o}async queryObjectIds(e,t){return(await N(this,e,t,ie)).filter(te)}async queryFeatureCount(e,t){return Q(this,e,t,ie)}async queryExtent(e,t){return $(this,e,t,ie)}async queryRelatedFeatures(e,t){return H(this,e,t,ie)}async queryRelatedFeaturesCount(e,t){return J(this,e,t,ie)}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,t){return this._debouncedSaveOperations(1,t,e)}write(e,t){const{origin:r,layerContainerType:i,messages:o}=t;if(this.isTable){if("web-scene"===r||"web-map"===r&&"tables"!==i)return re(t,this,"a table source cannot be written to web scenes and web maps"),null}else if(this.loaded&&"web-map"===r&&"tables"===i)return re(t,this,"a non-table source cannot be written to tables in web maps"),null;return this.sublayers?.length?super.write(e,t):(o?.push(new s("web-document-write:invalid-property",`Layer (${this.title}, ${this.id}) of type '${this.declaredClass}' has invalid value for 'sublayers' property. 'sublayers' collection should contain at least one sublayer`,{layer:this})),null)}serviceSupportsSpatialReference(e){return!!this.loaded&&Y(this,e)}async getFeatureTitle(e,t){const r=this.findSublayerForFeature(e);return r?await r.getFeatureTitle(e,t):this._getFeatureTitleForUnknownSublayer(e)}async getFeatureTitles(e,t){const r=new Map,s=new Map,i=[],a=[s];if(e.forEach(e=>{const a=this.findSublayerForFeature(e);if(a)o(r,a,()=>[]).push(e);else{const r=e.getObjectId()??e.attributes[this.objectIdField];t?.fetchMissingFields?i.push(e):s.set(r,this._getFeatureTitleForUnknownSublayer(e))}}),i.length>0){const e=new Set(this.featureTitleFields);e.add(this.objectIdField),e.add(this.subtypeField);const t=await this.queryFeatures({outFields:[...e],returnGeometry:!1,objectIds:i.map(e=>e.getObjectId()??e.attributes[this.objectIdField])}),a=new Set;for(const i of t.features??[]){const e=i.getObjectId()??i.attributes[this.objectIdField];a.add(e);const t=this.findSublayerForFeature(i);t?o(r,t,()=>[]).push(i):s.set(e,this._getFeatureTitleForUnknownSublayer(i))}for(const r of i){const e=r.getObjectId()??r.attributes[this.objectIdField];a.has(e)||s.set(e,this._getFeatureTitleForUnknownSublayer(r))}}const n=await Promise.all(Array.from(r).map(([e,r])=>e.getFeatureTitles(r,t)));n.forEach(e=>a.push(e));const u=new Map(a.flatMap(e=>[...e]));return s.forEach((e,t)=>{u.set(t,e)}),u}get featureTitleFields(){const e=new Set;for(const t of this.sublayers){const r=t.featureTitleFields;for(const t of r)e.add(t)}return[...e]}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}_initLayerProperties(e){this._set("source",e);const{sourceJSON:t}=e;if(t&&(this.sourceJSON=t,this.read(t,{origin:"service",url:this.parsedUrl})),!this.subtypes?.length)throw new s("subtype-grouplayer:missing-subtypes","SubtypeGroupLayer must be created using a layer with subtypes");this._verifyFields(),z(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return V(this)}_verifyFields(){const e=this.parsedUrl?.path??"undefined";this.objectIdField||console.log("SubtypeGroupLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some(e=>"geometry"===e.type)||console.log("SubtypeGroupLayer: unable to find field of type 'geometry' in the layer 'fields' list. If you are using a map service layer, features will not have geometry (url: "+e+")")}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null}),this.removeHandles("sublayers-owner"),this._sublayerLookup.clear()),e&&(e.forEach(e=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),e.on("after-remove",({item:e})=>{e.parent=null,this._sublayerLookup.delete(e.subtypeCode)})],"sublayers-owner"))}_getFeatureTitleForUnknownSublayer(e){const{displayField:t,fieldsIndex:r,objectIdField:s}=this;if(t&&r.has(t))return e.attributes[r.get(t).name]??"";const i=e.getObjectId();return null!=i?i.toString():s&&r.has(s)?e.attributes[r.get(s).name]??"":""}};e([c({readOnly:!0})],ue.prototype,"createQueryVersion",null),e([c({readOnly:!0})],ue.prototype,"editingEnabled",null),e([c({readOnly:!0})],ue.prototype,"effectiveEditingEnabled",null),e([c({...ae.fields,readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],ue.prototype,"fields",void 0),e([c(ae.fieldsIndex)],ue.prototype,"fieldsIndex",void 0),e([c(_)],ue.prototype,"id",void 0),e([c({type:["show","hide","hide-children"],json:{origins:{"portal-item":{read:!1,write:!1}}}})],ue.prototype,"listMode",void 0),e([c({type:["SubtypeGroupLayer","SubtypeGroupTable"],json:{...ne(),origins:{"web-document":ne(),"portal-item":ne()}}})],ue.prototype,"operationalLayerType",null),e([c(ae.outFields)],ue.prototype,"outFields",void 0),e([c({clonable:!1})],ue.prototype,"source",null),e([c({type:r.ofType(W),json:{origins:{service:{read:{source:"subtypes",reader(e,t,s){let i=null;if(this.useUniqueColorsForSublayers){const r=K(t,s);i=r?Z(e.length,r):null}const o=e.map(({code:e},r)=>{const o=new W({subtypeCode:e});o.read(t,s);const a=i?.[r];return a&&o.read({drawingInfo:{renderer:a.toJSON()}},s),o});return new(r.ofType(W))(o)}}}},read:{source:["layers","tables"],reader(e,t,s){let i;return"SubtypeGroupLayer"===t.layerType&&t.layers?.length?i=oe(t.layers,s):"SubtypeGroupTable"===t.layerType&&t.tables?.length&&(i=oe(t.tables,s)),new(r.ofType(W))(i)}},write:{ignoreOrigin:!0,writer(e,t,r,s){const i=[];for(const o of e){const e=o.write({},s);i.push(e)}this.isTable?t.tables=i:t.layers=i}}}})],ue.prototype,"sublayers",void 0),e([c()],ue.prototype,"useUniqueColorsForSublayers",void 0),e([c({type:X})],ue.prototype,"timeInfo",void 0),e([c({json:{origins:{"portal-item":{write:{enabled:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}}}})],ue.prototype,"title",void 0),e([se("service","title",["name"])],ue.prototype,"readTitleFromService",null),e([c({json:{read:!1}})],ue.prototype,"type",void 0),e([c({clonable:!1,readOnly:!0})],ue.prototype,"featureTitleFields",null),ue=e([h("esri.layers.SubtypeGroupLayer")],ue);const le=ue;export{le as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../request.js";import has from"../core/has.js";import s from"../core/Logger.js";import{isAbortError as r}from"../core/promiseUtils.js";import{watch as i,initial as a}from"../core/reactiveUtils.js";import{convertTime as n}from"../core/timeUtils.js";import{property as o,subclass as l}from"../core/accessorSupport/decorators.js";import{distance as h}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as d}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{renderSRFromViewSR as u}from"../geometry/support/coordinateSystem.js";import{loadVoxelWASM as _}from"../libs/vxl/VxlModule.js";import{InternalRenderCategory as c}from"../views/3d/webgl.js";import{VoxelGraphic as m}from"../views/3d/layers/VoxelGraphic.js";import{VoxelTarget as f}from"../views/3d/layers/i3s/Intersector.js";import{Frustum as p}from"../views/3d/state/Frustum.js";import{RenderCoordsHelper as g}from"../views/3d/support/RenderCoordsHelper.js";import y from"../views/3d/webgl/RenderNode.js";import{IntersectorResult as x}from"../views/3d/webgl-engine/lib/IntersectorResult.js";let v=class extends y{constructor(e){super(e),this._havePreparedWithAllLayers=!1,this.produces="disabled",this.consumes={required:[c.PRE_TRANSPARENT]},this._vxlPromise=null,this._moreToLoad=!1,this._viewportWidth=-1,this._viewportHeight=-1,this._newLayers=[],this._layers=new Map,this._renderTargetToRestore=null,this._lastFrameWasStationary=!1,this._wasmMemBlockSizes=[512,1024,2048,4096,8192,16384,32768,65536],this._wasmMemBlocks=new Map,this._dbgFlags=new Set,this._captureFrustum=!1,this._frustum=null,this._frustumRenderableId=-1,this._renderCoordsHelper=null,this.type=9,this.slicePlaneEnabled=!0,this.isGround=!1,this.layerViewUid=[]}_dbg(e,t){this._dbgFlags.has(e)&&(4===e?s.getLogger(this).error(t):s.getLogger(this).warn(t))}initialize(){this._dbg(1,"--initialize--");for(const e of this._wasmMemBlockSizes)this._wasmMemBlocks.set(e,0);this.addHandles([i(()=>"local"===this.view.viewingMode,e=>{e?(this._dbg(1,"view switched to local view, enabling rendering"),this.produces=c.PRE_TRANSPARENT,this.view.sceneIntersectionHelper.addIntersectionHandler(this)):(this._dbg(1,"view switched to global view, disabling rendering"),this.view.sceneIntersectionHelper.removeIntersectionHandler(this),this.produces="disabled")},a),i(()=>this.view?.qualityProfile,e=>{this._dbg(3,"qualityProfile changed to "+e),this._vxl?.set_quality(this._toWasmQuality(e))},a),i(()=>this.view?.timeExtent,()=>{if(this._vxl){const e=this._getTimeArgs(this.view?.timeExtent);this._dbg(3,"sceneView timeExtent changed to useTime="+e.hasTime+" st="+e.startTime+" et="+e.endTime),this._vxl.set_scene_time_extent(e.startTime,e.endTime,e.hasTime),this.requestRender(1)}},a),i(()=>this.view?.stationary,e=>{this._vxl&&e&&!this._lastFrameWasStationary&&this.requestRender(1)})])}get _rctx(){return this.renderContext?.rctx}get _halfIntTexturesAvailable(){return!!this._rctx?.capabilities.textureNorm16}get _textureFloatLinearAvailable(){return!!this._rctx?.capabilities.textureFloatLinear}_restoreFramebuffer(){if(!this._renderTargetToRestore||!this._rctx)return;const e=this._renderTargetToRestore.fbo;if(!!!this._rctx)return void this._dbg(4,"no context in restoreFramebuffer!");this._rctx.bindFramebuffer(e,!0);const t=this._renderTargetToRestore.viewport;this._rctx.setViewport(t.x,t.y,t.width,t.height)}_bindPreviousDepthToSlot(e,t){if(!this._rctx||!this._renderTargetToRestore)return 0;const s=this._renderTargetToRestore.fbo.depthStencilTexture;return s?(0===t?this._rctx.bindTexture(null,e,!0):this._rctx.bindTexture(s,e,!0),1):(this._dbg(4,"no depth/stencil texture exists!"),0)}_modifyResourceCount(e,t,s){if(!this._rctx)return void this._dbg(4,"modifyAllocation callback has no rendering context!");const r=e;1===s?this._rctx.instanceCounter.increment(r,t):this._rctx.instanceCounter.decrement(r,t)}_setBlendState(e,t,s,r){this._rctx?(this._rctx.setBlendingEnabled(1===e),this._rctx.setBlendFunction(t,s),this._rctx.setBlendEquation(r)):this._dbg(4,"setBlendState callback has no rendering context!")}_setFrontFace(e){this._rctx?this._rctx.setFrontFace(e):this._dbg(4,"setFrontFace callback has no rendering context!")}_setDepthStencilStateFunction(e,t,s){this._rctx?(this._rctx.setDepthFunction(s),this._rctx.setDepthTestEnabled(1===e),this._rctx.setDepthWriteEnabled(1===t),this._rctx.setStencilTestEnabled(!1),this._rctx.setStencilFunction(519,0,255),this._rctx.setStencilOpSeparate(1028,7680,7682,7680),this._rctx.setStencilOpSeparate(1029,7680,7683,7680)):this._dbg(4,"setDepthStencilStateFunction callback has no rendering context!")}_setRasterizerState(e){if(this._rctx)switch(e){case 1:this._rctx.setFaceCullingEnabled(!1);break;case 3:this._rctx.setCullFace(1029),this._rctx.setFaceCullingEnabled(!0);break;case 2:this._rctx.setCullFace(1028),this._rctx.setFaceCullingEnabled(!0)}else this._dbg(4,"setRasterizerState callback has no rendering context!")}_setViewport(e,t,s,r){this._rctx?this._rctx.setViewport(e,t,s,r):this._dbg(4,"setViewport callback has no rendering context!")}_updateMemoryUsage(){this._layers.forEach((e,t)=>{if(e.needMemoryUsageUpdate){const s=this._vxl?.estimate_memory_usage(t)??0;s>=0&&(e.needMemoryUsageUpdate=!1,e.layerView.setUsedMemory(s))}})}_syncRequestsResponses(){this._vxl&&this._layers.forEach((e,s)=>{const i=[];e.responses.forEach((t,r)=>{i.push(r),this._dbg(2,"responding for requestID:"+r+" size:"+t.size),this._vxl?.respond(s,r,t),0!==t.requestType&&4!==t.requestType||(e.needMemoryUsageUpdate=!0)});const a=e.responses;for(const t of i)a.delete(t);const n=this._vxl.get_new_requests(s),o=e.abortController.signal;for(const l in n){e.outstandingRequestCount+=1,1===e.outstandingRequestCount&&e.layerView.updatingFlagChanged();const s=n[l],i={responseType:"array-buffer",signal:o,query:{...e.layerView.layer.customParameters,token:e.layerView.layer.apiKey}};this._dbg(2,"making requestID:"+l+" url:"+s.url),t(s.url,i).then(t=>{e.outstandingRequestCount-=1,0===e.outstandingRequestCount&&e.layerView.updatingFlagChanged(),this._dbg(2,"have response for requestID:"+l);let r=0;if(t.data.byteLength>0&&this._vxl){r=this._vxl._malloc(t.data.byteLength);const e=new Uint8Array(this._vxl.HEAPU8.buffer,r,t.data.byteLength),s=new Uint8Array(t.data);for(let r=0;r<t.data.byteLength;++r)e[r]=s[r]}a.set(+l,{responseType:s.responseType,ptr:r,size:t.data.byteLength,success:!0,requestType:s.requestType})}).catch(t=>{e.outstandingRequestCount-=1,0===e.outstandingRequestCount&&e.layerView.updatingFlagChanged(),r(t)||(this._dbg(4,`requestID:${l} failed, error=${t.toString()}`),a.set(+l,{responseType:s.responseType,ptr:0,size:0,success:!1,requestType:s.requestType}))})}})}updateWasmCamera(e){this._vxl?.set_projection_matrix.apply(this._vxl,e.projectionMatrix),this._vxl?.set_view_matrix.apply(this._vxl,e.viewMatrix),this._vxl?.set_near_far(e.near,e.far)}isUpdating(e){if(!this._vxl&&this._vxlPromise)return!0;const t=this._layers.get(e);return!!t&&t.outstandingRequestCount>0}getLayerTimes(e){const t=[];return this._vxl?(this._layers.forEach((s,r)=>{if(s.layerView.wasmLayerId===e.wasmLayerId){const s=this._vxl.get_layer_epoch_times(r,e.layer.currentVariableId);for(let e=0;e<s.length;++e)t.push(s[e])}}),t):t}getCurrentLayerTimeIndex(e){let t=0;return this._layers.forEach((s,r)=>{s.layerView.wasmLayerId===e.wasmLayerId&&(t=this._vxl?.get_layer_current_time_id(r)??0)}),t}setEnabled(e,t){this._layers.forEach((s,r)=>{s.layerView.wasmLayerId===e.wasmLayerId&&(this._vxl?.set_enabled(r,t),s.needMemoryUsageUpdate=!0,this.requestRender(1))})}setIsInScaleRange(e,t){const s=this._layers.get(e.wasmLayerId);s&&t!==s.isInScaleRange&&(s.isInScaleRange=t,this._vxl?.set_is_in_scale_range(e.wasmLayerId,t),s.needMemoryUsageUpdate=!t,this.requestRender(1))}setStaticSections(e,t){const s={mask:1,staticSections:t};return this._doMaskedUIUpdate(e,s,!0)}setCurrentVariable(e,t){const s={mask:1024,currentVariable:t};return this._doMaskedUIUpdate(e,s,!0)}setRenderMode(e,t){const s={mask:8192,renderMode:t};return this._doMaskedUIUpdate(e,s,!0)}setVerticalExaggerationAndOffset(e,t,s,r){const i={mask:256,volStyleDesc:{volumeId:t,verticalExaggeration:s,verticalOffset:r}};return this._doMaskedUIUpdate(e,i,!0)}setVariableStyles(e,t){const s={mask:32768,variableStyles:t};return this._doMaskedUIUpdate(e,s,!0)}setVolumeStyles(e,t){const s={mask:65536,volumeStyles:t};return this._doMaskedUIUpdate(e,s,!0)}setEnableDynamicSections(e,t){const s={mask:4096,containerIsVisible:t,container:1};return this._doMaskedUIUpdate(e,s,!0)}setEnableIsosurfaces(e,t){const s={mask:4096,containerIsVisible:t,container:0};return this._doMaskedUIUpdate(e,s,!0)}setEnableSections(e,t){const s={mask:4096,containerIsVisible:t,container:2};return this._doMaskedUIUpdate(e,s,!0)}setAnalysisSlice(e,t,s,r){const i={mask:131072,analysisSlice:{point:s,normal:r,enabled:t}};return this._doMaskedUIUpdate(e,i,!0)}updateLayerTimeProperties(e){if(!this._vxl)return;const t=this._layers.get(e.wasmLayerId);if(t){const s=t.layerView.layer;let r=0;s.timeOffset&&(r=n(s.timeOffset.value,s.timeOffset.unit,"seconds"));const i=this._getTimeArgs(s.timeExtent);this._vxl?.set_layer_time_properties(e.wasmLayerId,i.startTime,i.endTime,i.hasTime,s.useViewTime,r),this.requestRender(1)}}_doMaskedUIUpdate(e,t,s){if(!this._vxl)return!1;let r=!1;return this._layers.forEach((s,i)=>{if(s.layerView.wasmLayerId===e.wasmLayerId){const e={str:JSON.stringify(t),byteCount:0,ptr:0,isReusable:!1};this._allocateBlock(e)&&(r=1===this._vxl?.handle_masked_ui_update(i,e.ptr,e.byteCount),e.isReusable||this._vxl?._free(e.ptr))}}),r&&s&&this.requestRender(1),r}_addTriangleToWasmBuffer(e,t,s,r,i){return e[3*t]=s[0],e[3*t+1]=s[1],e[3*t+2]=s[2],e[3*(t+=1)]=r[0],e[3*t+1]=r[1],e[3*t+2]=r[2],e[3*(t+=1)]=i[0],e[3*t+1]=i[1],e[3*t+2]=i[2],t+=1}_addNormalToWasmBuffer(e,t,s){return e[3*t]=s[0],e[3*t+1]=s[1],e[3*t+2]=s[2],t+=1}_doCaptureFrustum(){if(!this._vxl)return;const e=36,t=e/3,s=this._vxl._malloc(3*e*Float32Array.BYTES_PER_ELEMENT),r=new Float32Array(this._vxl.HEAPF32.buffer,s,3*e),i=this._vxl._malloc(3*t*Float32Array.BYTES_PER_ELEMENT),a=new Float32Array(this._vxl.HEAPF32.buffer,i,e),n=this._frustum.points[0],o=this._frustum.points[1],l=this._frustum.points[2],h=this._frustum.points[3],d=this._frustum.points[4],u=this._frustum.points[5],_=this._frustum.points[6],c=this._frustum.points[7];let m=0,f=0;const p=this._frustum.planes[4];m=this._addTriangleToWasmBuffer(r,m,l,o,n),f=this._addNormalToWasmBuffer(a,f,p),m=this._addTriangleToWasmBuffer(r,m,n,h,l),f=this._addNormalToWasmBuffer(a,f,p);const g=this._frustum.planes[5];m=this._addTriangleToWasmBuffer(r,m,d,u,_),f=this._addNormalToWasmBuffer(a,f,g),m=this._addTriangleToWasmBuffer(r,m,_,c,d),f=this._addNormalToWasmBuffer(a,f,g);const y=this._frustum.planes[3];m=this._addTriangleToWasmBuffer(r,m,_,l,h),f=this._addNormalToWasmBuffer(a,f,y),m=this._addTriangleToWasmBuffer(r,m,h,c,_),f=this._addNormalToWasmBuffer(a,f,y);const x=this._frustum.planes[2];m=this._addTriangleToWasmBuffer(r,m,n,o,u),f=this._addNormalToWasmBuffer(a,f,x),m=this._addTriangleToWasmBuffer(r,m,u,d,n),f=this._addNormalToWasmBuffer(a,f,x);const v=this._frustum.planes[0];m=this._addTriangleToWasmBuffer(r,m,h,n,d),f=this._addNormalToWasmBuffer(a,f,v),m=this._addTriangleToWasmBuffer(r,m,d,c,h),f=this._addNormalToWasmBuffer(a,f,v);const b=this._frustum.planes[1];m=this._addTriangleToWasmBuffer(r,m,l,_,u),f=this._addNormalToWasmBuffer(a,f,b),this._addTriangleToWasmBuffer(r,m,u,o,l),this._addNormalToWasmBuffer(a,f,b),-1!==this._frustumRenderableId&&this._vxl.remove_generic_mesh(this._frustumRenderableId),this._frustumRenderableId=this._vxl.add_generic_mesh(s,3*e,i,e,255,0,0,64),this._vxl._free(s),this._vxl._free(i),this._captureFrustum=!1,this.requestRender(1)}captureFrustum(){null===this._renderCoordsHelper&&(this._renderCoordsHelper=g.create(2,u(!1,this.view.spatialReference))),null===this._frustum&&(this._frustum=new p(this._renderCoordsHelper)),this._captureFrustum=!0,this.requestRender(1)}toggleFullVolumeExtentDraw(e){this._vxl&&this._layers.forEach((t,s)=>{t.layerView.wasmLayerId===e.wasmLayerId&&(this._vxl?.toggle_full_volume_extent_draw(s),this.requestRender(1))})}dropQueryRenderTarget(){this._vxl?.drop_query_rt()}addVoxelLayer(e){if(!this._vxl){const t={layerView:e,resolveCallback:null,rejectCallback:null},s=new Promise((e,s)=>{t.resolveCallback=e,t.rejectCallback=s});return this._newLayers.push(t),s}const t=this._addVoxelLayer(e,this._vxl);return t<0?Promise.reject(-1):Promise.resolve(t)}removeVoxelLayer(e){if(!this._vxl){const t=this._newLayers.findIndex(t=>e.uid===t.layerView.uid);t>=0&&(this._newLayers[t].resolveCallback(-1),this._newLayers.splice(t,1));const s=this._newLayers.length;return 0===s&&(this._dbg(1,"No voxel layers left after removing a layer, destroying render node"),this.destroy()),s}let t=-1;this._layers.forEach((s,r)=>{if(s.layerView.wasmLayerId===e.wasmLayerId){t=r,s.abortController.abort(),this._vxl?.remove_layer(t);const i=this.layerViewUid.indexOf(e.uid);-1!==i&&this.layerViewUid.splice(i,1)}}),t>=0&&this._layers.delete(t);const s=this._layers.size;return 0===s&&(this._dbg(1,"No voxel layers left after removing a layer, destroying render node"),this.destroy()),s}_getBlockSize(e){for(const t of this._wasmMemBlockSizes)if(e<t)return t;return-1}_allocateBlock(e){if(!this._vxl)return!1;e.byteCount=this._vxl.lengthBytesUTF8(e.str)+1;const t=this._getBlockSize(e.byteCount);return t<0?(e.isReusable=!1,e.ptr=this._vxl._malloc(e.byteCount)):(e.isReusable=!0,e.ptr=this._wasmMemBlocks.get(t),0===e.ptr&&(e.ptr=this._vxl._malloc(t),this._wasmMemBlocks.set(t,e.ptr))),0!==e.ptr&&(this._vxl.stringToUTF8(e.str,e.ptr,e.byteCount),!0)}_getTimeArgs(e){let t=-Number.MAX_VALUE,s=Number.MAX_VALUE,r=!1;return null!=e&&(e.isAllTime?r=!0:(null!=e.start&&(r=!0,t=e.start.getTime()/1e3),null!=e.end&&(r=!0,s=e.end.getTime()/1e3))),{startTime:t,endTime:s,hasTime:r}}_addVoxelLayer(e,t){const r=e.layer;let i=-1;const a=r.getConfiguration();if(a.length<1)return-1;const o={str:a,byteCount:0,ptr:0,isReusable:!1};if(!this._allocateBlock(o))return-1;const l=this._getTimeArgs(r.timeExtent),h=this.view.spatialReference.isWGS84&&r.spatialReference.isWGS84?111319.49079327357:1;let d=0;if(r.timeOffset&&(d=n(r.timeOffset.value,r.timeOffset.unit,"seconds")),i=t.add_layer(r.serviceRoot,o.ptr,o.byteCount,h,h,l.startTime,l.endTime,l.hasTime,r.useViewTime,d,this._toWasmQuality(this.view.qualityProfile)),o.isReusable||t._free(o.ptr),i>=0){r.test?.constantUpscaling&&(this._setUpscalingLimits(0,.25,.25),this._setUpscalingLimits(1,.5,.5),this._setUpscalingLimits(2,.75,.75));const t=new AbortController;if(this._layers.set(i,{layerView:e,responses:new Map,outstandingRequestCount:0,abortController:t,needMemoryUsageUpdate:!1,isInScaleRange:!0}),this.layerViewUid.push(e.uid),!this._halfIntTexturesAvailable||has("mac")){const t=[];let r="";for(const s of e.layer.variables)"Int16"!==s.renderingFormat.type&&"UInt16"!==s.renderingFormat.type||(t.push(s.name),s.id===e.layer.currentVariableId&&(r=s.name));""!==r&&s.getLogger(this).error("#addVoxelLayer_error()",e.layer,`The voxel layer '${e.layer.title}' cannot render the current variable '${r}' in this browser`),t.length>0&&s.getLogger(this).warn("#addVoxelLayer_warning()",e.layer,`The voxel layer '${e.layer.title}' cannot render the variables '${t.toString()}' in this browser`)}if(!this._textureFloatLinearAvailable){const t=[];let r="";for(const s of e.layer.variables)"Float32"===s.renderingFormat.type&&(t.push(s.name),s.id===e.layer.currentVariableId&&(r=s.name));""!==r&&s.getLogger(this).error("#addVoxelLayer_error()",e.layer,`The voxel layer '${e.layer.title}' cannot render the current variable '${r}' in this browser`),t.length>0&&s.getLogger(this).warn("#addVoxelLayer_warning()",e.layer,`The voxel layer '${e.layer.title}' cannot render the variables '${t.toString()}' in this browser`)}return has("esri-mobile")&&s.getLogger(this).warnOnce("Mobile support differs across devices. Voxel layer might not display as expected."),i}return-1}_prepareRender(){if(!this._vxl)return void this._initializeWasm();const e=this.bindParameters.camera.viewForward,t=this.bindParameters.camera.eye;this._vxl.update_camera_pos_and_direction(t[0],t[1],t[2],e[0],e[1],e[2]);const s=this._vxl.cull();this._dbg(2,"missingResourceCount="+s),this._moreToLoad=s>0,this._havePreparedWithAllLayers=0===this._newLayers.length,this._updateMemoryUsage()}render(){this._prepareRender();const e=this.bindRenderTarget();if(!this._vxl||!this._rctx)return this.requestRender(1),e;for(const s of this._newLayers){const e=this._addVoxelLayer(s.layerView,this._vxl);-1===e?s.rejectCallback(-1):s.resolveCallback(e)}if(this._newLayers=[],0===this._layers.size)return this._dbg(4,"No voxel layers but RenderNode is being asked to render!"),e;this._lastFrameWasStationary=this.view.stationary,this._syncRequestsResponses(),this._beforeDraw(this._rctx),this._vxl.begin_color_frame(!this.view.stage.renderer.isFeatureEnabled(2),this.bindParameters.lighting.mainLight.direction[0],this.bindParameters.lighting.mainLight.direction[1],this.bindParameters.lighting.mainLight.direction[2]);const t=this._renderTargetToRestore.viewport;return t.width===this._viewportWidth&&t.height===this._viewportHeight||(this._viewportWidth=t.width,this._viewportHeight=t.height,this._vxl.set_viewport(t.width,t.height),this._layers.forEach(e=>e.needMemoryUsageUpdate=!0)),0===t.x&&0===t.y||this._dbg(4,"Unsupported viewport parameters detected!"),this.updateWasmCamera(this.bindParameters.camera),this._captureFrustum&&(this._frustum.update(this.bindParameters.camera),this._doCaptureFrustum()),this._vxl.draw(),this._afterDraw(this._rctx,this._vxl),(this._moreToLoad||!this._havePreparedWithAllLayers&&this._layers.size>0)&&this.requestRender(1),e}destroy(){this._dbg(1,"--destroy--"),this._vxl&&(this._layers.forEach(e=>{e.abortController.abort()}),this._wasmMemBlocks.forEach(e=>{0!==e&&this._vxl?._free(e)}),this._vxl.uninitialize_voxel_wasm(),this._vxl=null)}_initializeWasm(){if(this._vxl||this._vxlPromise||!this._rctx?.gl)return;const e=this._rctx.gl;this._vxlPromise=_(e).then(t=>{if(t.specialHTMLTargets.jsAPI3DRenderingContext=e,this._vxl=t,this._vxlPromise=null,this._newLayers.length<=0)return this._dbg(1," no voxel layers left after WASM downloaded, removing RenderNode and destroying"),void this.destroy();const s=this._getTimeArgs(this.view?.timeExtent),r=this._vxl.addFunction(this._restoreFramebuffer.bind(this),"v"),i=this._vxl.addFunction(this._setBlendState.bind(this),"viiii"),a=this._vxl.addFunction(this._setFrontFace.bind(this),"vi"),n=this._vxl.addFunction(this._setRasterizerState.bind(this),"vi"),o=this._vxl.addFunction(this._setDepthStencilStateFunction.bind(this),"viii"),l=this._vxl.addFunction(this._setViewport.bind(this),"viiii"),h=this._vxl.addFunction(this._bindPreviousDepthToSlot.bind(this),"iii"),d=this._vxl.addFunction(this._modifyResourceCount.bind(this),"viii"),u=this._halfIntTexturesAvailable&&!has("mac"),_=this._textureFloatLinearAvailable;this._vxl.initialize_voxel_wasm(r,i,a,n,o,l,h,d,s.startTime,s.endTime,s.hasTime,u,_),this.requestRender(1)}).catch(()=>{for(const e of this._newLayers)e.rejectCallback(-2);this._dbg(4," WASM failed to download, destroying render node"),this.destroy()})}pickDepth(e,t,s){if(!this._vxl||!this._rctx||0===this._layers.size)return null;const r=s.viewport[3]-t;if(e<0||e>s.viewport[2]||t<0||t>s.viewport[3])return this._dbg(4,`[js] pickDepth: outOfRange, screenXY=[${e.toFixed(0)}, ${r.toFixed(0)}]]`),null;this._beforeDraw(this._rctx);const i=s.viewForward,a=s.eye;this._vxl.update_camera_pos_and_direction(a[0],a[1],a[2],i[0],i[1],i[2]),this.updateWasmCamera(s),this._vxl.begin_frame();const n=this._vxl.pick_depth(e,r);if(this._afterDraw(this._rctx,this._vxl),n.success){return n.distanceToCamera}return null}pickObject(e,t,s,r){if(!this._vxl||!this._rctx||0===this._layers.size)return null;const i=Math.round(e),a=Math.round(t);if(i<0||i>s.viewport[2]||a<0||a>s.viewport[3])return this._dbg(4,`[js] pickObject: outOfRange, screenXY=[${i}, ${a}], vp=[${s.viewport.toString()}]`),null;this._beforeDraw(this._rctx);const n=s.viewForward,o=s.eye;this._vxl.update_camera_pos_and_direction(o[0],o[1],o[2],n[0],n[1],n[2]),this.updateWasmCamera(s),this._vxl.begin_frame();let l=null;if(0===r.length)l=this._vxl.pick_object(i,a,0,0);else{const e={str:JSON.stringify({layerIds:r}),byteCount:0,ptr:0,isReusable:!1};this._allocateBlock(e)&&(l=this._vxl.pick_object(i,a,e.ptr,e.byteCount),e.isReusable||this._vxl._free(e.ptr))}return this._afterDraw(this._rctx,this._vxl),l}async getOtherFieldPopupValues(e,s){if(!this._vxl)return[];for(const r of e){const e=r.gpuResult;if(!e)continue;const i=this._layers.get(e.layerId);if(!i||!i.layerView.layer.url)continue;const a=i.layerView.layer,n={responseType:"array-buffer",signal:i.abortController.signal,query:{...i.layerView.layer.customParameters,token:i.layerView.layer.apiKey}},o=e.voxelSpacePosition,l=[Math.floor(o[0]/32),Math.floor(o[1]/32),Math.floor(o[2]/32)],h=[-4&l[0],-4&l[1],-4&l[2]];let d=0;if(e.epochTime){const t=this._vxl.get_layer_epoch_times(i.layerView.wasmLayerId,a.currentVariableId);for(let s=0;s<t.length;++s)if(t[s]===e.epochTime/1e3){d=s;break}}const u=[],_={varIds:[],ptrs:[],sizes:[]};for(const r of s){const e=a.variables.findIndex(e=>e.name===r);if(-1===e)continue;const s=a.variables.getItemAt(e)?.id;if(null==s)continue;const i=`${a.url}/variables/${s}/${d}/bundles/0/${h[0]}-${h[1]}-${h[2]}`;u.push(t(i,n).then(e=>e.data)),_.varIds.push(s)}const c=await Promise.allSettled(u),m=c.length;for(let t=0;t<m;++t){const e=c[t];if("fulfilled"===e.status){const t=e.value,s=this._vxl._malloc(t.byteLength);new Uint8Array(this._vxl.HEAPU8.buffer,s,t.byteLength).set(new Uint8Array(t)),_.ptrs.push(s),_.sizes.push(t.byteLength)}else _.varIds.splice(t,1)}const f=this._vxl.get_other_field_popup_values(e,_);for(let t=0;t<_.ptrs.length;++t)this._vxl._free(_.ptrs[t]);if(f.continuousValues)for(const t in f.continuousValues)r.attributes[t]=f.continuousValues[t];if(f.uniqueValues)for(const t in f.uniqueValues)r.attributes[t]=f.uniqueValues[t]}return e}_beforeDraw(e){this._renderTargetToRestore={fbo:e.getBoundFramebufferObject(),viewport:e.getViewport()},e.setPolygonOffsetFillEnabled(!1),e.setScissorTestEnabled(!1),e.setColorMask(!0,!0,!0,!0)}_afterDraw(e,t){this._renderTargetToRestore.fbo=null,e.externalTextureUnitUpdate(t.get_texture_units_bound_in_frame(),t.get_active_texture_unit()),e.externalVertexArrayObjectUpdate(),e.externalVertexBufferUpdate(),e.externalProgramUpdate()}intersect(e,t,s,r,i){if(!this._vxl||!this._rctx||0===this._layers.size||!e.options.selectionMode||e.options.isFiltered||!e.camera)return;if(null==i||i[0]<0||i[0]>e.camera.viewport[2]||i[1]<0||i[1]>e.camera.viewport[3])return this._dbg(4,i?`[js] VoxelWasmPerScene.intersect: outOfRange, screenXY=[${i[0].toFixed(0)}, ${i[1].toFixed(0)}]`:"[js] VoxelWasmPerScene.intersect: outOfRange, screenXY=null"),null;const a=[];this._layers.forEach(t=>{e.options.filteredLayerViewUids.includes(t.layerView.uid)&&a.push(t.layerView.wasmLayerId)});const n=this.pickObject(i[0],i[1],e.camera,a);if(null==n||-1===n.layerId)return;const o=this._layers.get(n.layerId);if(o){const t=o.layerView.layer.uid,i=n.distanceToCamera/h(s,r),a=d();a[0]=n.worldX,a[1]=n.worldY,a[2]=n.worldZ;const l={},u=o.layerView.layer,_=u.variables.findIndex(e=>e.id===u.currentVariableId);if(_>=0){const e=u.variables.getItemAt(_);null!=e&&(null!=n.continuousValue?l[e.name]=n.continuousValue:null!=n.uniqueValueLabel&&null!=n.uniqueValue?l[e.name]=`${n.uniqueValueLabel} (${n.uniqueValue})`:null!=n.uniqueValue&&(l[e.name]=`${n.uniqueValue}`),e.description.length>0?l["Voxel.CurrentVariable"]=e.description:e.name?.length>0&&(l["Voxel.CurrentVariable"]=e.name))}if(l["Voxel.Position"]=`[${n.voxelSpacePosition.toString()}]`,null!=n.epochTime&&null!=n.nativeTime&&null!=n.nativeTimeUnits){const e=new Date(n.epochTime);l["Voxel.LocalTime"]=e,l["Voxel.SourceTime"]=`${n.nativeTime.toLocaleString()} ${n.nativeTimeUnits}`}null!=n.depth&&(l["Voxel.Depth"]=n.depth);const c=n.faceNormal;l["Voxel.WorldPosition"]=`[${a[0]}, ${a[1]}, ${a[2]}]`;const m=e=>{const s=new f(a,t,()=>this._createVoxelGraphic(o.layerView.layer,l,n));e.set(this.type,s,i,c)},p=e.results,g=2===e.options.store;if((null==p.min.distance||i<p.min.distance)&&m(p.min),(null==p.max.distance||i>p.max.distance)&&m(p.max),g){const t=new x(e.ray);m(t),e.results.all.push(t)}}}_createVoxelGraphic(e,t,s){return new m({layer:e,sourceLayer:e,origin:e.graphicOrigin,attributes:t,gpuResult:s})}_toWasmQuality(e){switch(e){case"low":return 0;case"medium":return 1;case"high":return 2}}_setUpscalingLimits(e,t,s){this._vxl&&this._vxl.set_upscaling_limits(e,t,s)}};e([o()],v.prototype,"produces",void 0),e([o()],v.prototype,"consumes",void 0),v=e([l("esri.layers.VoxelWasmPerSceneView")],v);const b=v;export{b as default};
2
+ import{__decorate as e}from"tslib";import t from"../request.js";import has from"../core/has.js";import s from"../core/Logger.js";import{isAbortError as r}from"../core/promiseUtils.js";import{watch as i,initial as a}from"../core/reactiveUtils.js";import{convertTime as n}from"../core/timeUtils.js";import{property as o,subclass as l}from"../core/accessorSupport/decorators.js";import{distance as h}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as d}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{renderSRFromViewSR as u}from"../geometry/support/coordinateSystem.js";import{loadVoxelWASM as _}from"../libs/vxl/VxlModule.js";import{InternalRenderCategory as c}from"../views/3d/webgl.js";import{VoxelGraphic as m}from"../views/3d/layers/VoxelGraphic.js";import{VoxelTarget as f}from"../views/3d/layers/i3s/Intersector.js";import{Frustum as p}from"../views/3d/state/Frustum.js";import{RenderCoordsHelper as g}from"../views/3d/support/RenderCoordsHelper.js";import y from"../views/3d/webgl/RenderNode.js";import{IntersectorResult as x}from"../views/3d/webgl-engine/lib/IntersectorResult.js";let v=class extends y{constructor(e){super(e),this._havePreparedWithAllLayers=!1,this.produces="disabled",this.consumes={required:[c.PRE_TRANSPARENT]},this._vxlPromise=null,this._moreToLoad=!1,this._viewportWidth=-1,this._viewportHeight=-1,this._newLayers=[],this._layers=new Map,this._renderTargetToRestore=null,this._lastFrameWasStationary=!1,this._wasmMemBlockSizes=[512,1024,2048,4096,8192,16384,32768,65536],this._wasmMemBlocks=new Map,this._dbgFlags=new Set,this._captureFrustum=!1,this._frustum=null,this._frustumRenderableId=-1,this._renderCoordsHelper=null,this.type=9,this.slicePlaneEnabled=!0,this.isGround=!1,this.layerViewUid=[]}_dbg(e,t){this._dbgFlags.has(e)&&(4===e?s.getLogger(this).error(t):s.getLogger(this).warn(t))}initialize(){this._dbg(1,"--initialize--");for(const e of this._wasmMemBlockSizes)this._wasmMemBlocks.set(e,0);this.addHandles([i(()=>"local"===this.view.viewingMode,e=>{e?(this._dbg(1,"view switched to local view, enabling rendering"),this.produces=c.PRE_TRANSPARENT,this.view.sceneIntersectionHelper.addIntersectionHandler(this)):(this._dbg(1,"view switched to global view, disabling rendering"),this.view.sceneIntersectionHelper.removeIntersectionHandler(this),this.produces="disabled")},a),i(()=>this.view?.qualityProfile,e=>{this._dbg(3,"qualityProfile changed to "+e),this._vxl?.set_quality(this._toWasmQuality(e))},a),i(()=>this.view?.timeExtent,()=>{if(this._vxl){const e=this._getTimeArgs(this.view?.timeExtent);this._dbg(3,"sceneView timeExtent changed to useTime="+e.hasTime+" st="+e.startTime+" et="+e.endTime),this._vxl.set_scene_time_extent(e.startTime,e.endTime,e.hasTime),this.requestRender(1)}},a),i(()=>this.view?.stationary,e=>{this._vxl&&e&&!this._lastFrameWasStationary&&this.requestRender(1)})])}get _rctx(){return this.renderContext?.rctx}get _halfIntTexturesAvailable(){return!!this._rctx?.capabilities.textureNorm16}get _textureFloatLinearAvailable(){return!!this._rctx?.capabilities.textureFloatLinear}_restoreFramebuffer(){if(!this._renderTargetToRestore||!this._rctx)return;const e=this._renderTargetToRestore.fbo;if(!!!this._rctx)return void this._dbg(4,"no context in restoreFramebuffer!");this._rctx.bindFramebuffer(e,!0);const t=this._renderTargetToRestore.viewport;this._rctx.setViewport(t.x,t.y,t.width,t.height)}_bindPreviousDepthToSlot(e,t){if(!this._rctx||!this._renderTargetToRestore)return 0;const s=this._renderTargetToRestore.fbo?.depthStencilTexture;return s?(0===t?this._rctx.bindTexture(null,e,!0):this._rctx.bindTexture(s,e,!0),1):(this._dbg(4,"no depth/stencil texture exists!"),0)}_modifyResourceCount(e,t,s){if(!this._rctx)return void this._dbg(4,"modifyAllocation callback has no rendering context!");const r=e;1===s?this._rctx.instanceCounter.increment(r,t):this._rctx.instanceCounter.decrement(r,t)}_setBlendState(e,t,s,r){this._rctx?(this._rctx.setBlendingEnabled(1===e),this._rctx.setBlendFunction(t,s),this._rctx.setBlendEquation(r)):this._dbg(4,"setBlendState callback has no rendering context!")}_setFrontFace(e){this._rctx?this._rctx.setFrontFace(e):this._dbg(4,"setFrontFace callback has no rendering context!")}_setDepthStencilStateFunction(e,t,s){this._rctx?(this._rctx.setDepthFunction(s),this._rctx.setDepthTestEnabled(1===e),this._rctx.setDepthWriteEnabled(1===t),this._rctx.setStencilTestEnabled(!1),this._rctx.setStencilFunction(519,0,255),this._rctx.setStencilOpSeparate(1028,7680,7682,7680),this._rctx.setStencilOpSeparate(1029,7680,7683,7680)):this._dbg(4,"setDepthStencilStateFunction callback has no rendering context!")}_setRasterizerState(e){if(this._rctx)switch(e){case 1:this._rctx.setFaceCullingEnabled(!1);break;case 3:this._rctx.setCullFace(1029),this._rctx.setFaceCullingEnabled(!0);break;case 2:this._rctx.setCullFace(1028),this._rctx.setFaceCullingEnabled(!0)}else this._dbg(4,"setRasterizerState callback has no rendering context!")}_setViewport(e,t,s,r){this._rctx?this._rctx.setViewport(e,t,s,r):this._dbg(4,"setViewport callback has no rendering context!")}_updateMemoryUsage(){this._layers.forEach((e,t)=>{if(e.needMemoryUsageUpdate){const s=this._vxl?.estimate_memory_usage(t)??0;s>=0&&(e.needMemoryUsageUpdate=!1,e.layerView.setUsedMemory(s))}})}_syncRequestsResponses(){this._vxl&&this._layers.forEach((e,s)=>{const i=[];e.responses.forEach((t,r)=>{i.push(r),this._dbg(2,"responding for requestID:"+r+" size:"+t.size),this._vxl?.respond(s,r,t),0!==t.requestType&&4!==t.requestType||(e.needMemoryUsageUpdate=!0)});const a=e.responses;for(const t of i)a.delete(t);const n=this._vxl.get_new_requests(s),o=e.abortController.signal;for(const l in n){e.outstandingRequestCount+=1,1===e.outstandingRequestCount&&e.layerView.updatingFlagChanged();const s=n[l],i={responseType:"array-buffer",signal:o,query:{...e.layerView.layer.customParameters,token:e.layerView.layer.apiKey}};this._dbg(2,"making requestID:"+l+" url:"+s.url),t(s.url,i).then(t=>{e.outstandingRequestCount-=1,0===e.outstandingRequestCount&&e.layerView.updatingFlagChanged(),this._dbg(2,"have response for requestID:"+l);let r=0;if(t.data.byteLength>0&&this._vxl){r=this._vxl._malloc(t.data.byteLength);const e=new Uint8Array(this._vxl.HEAPU8.buffer,r,t.data.byteLength),s=new Uint8Array(t.data);for(let r=0;r<t.data.byteLength;++r)e[r]=s[r]}a.set(+l,{responseType:s.responseType,ptr:r,size:t.data.byteLength,success:!0,requestType:s.requestType})}).catch(t=>{e.outstandingRequestCount-=1,0===e.outstandingRequestCount&&e.layerView.updatingFlagChanged(),r(t)||(this._dbg(4,`requestID:${l} failed, error=${t.toString()}`),a.set(+l,{responseType:s.responseType,ptr:0,size:0,success:!1,requestType:s.requestType}))})}})}updateWasmCamera(e){this._vxl?.set_projection_matrix.apply(this._vxl,e.projectionMatrix),this._vxl?.set_view_matrix.apply(this._vxl,e.viewMatrix),this._vxl?.set_near_far(e.near,e.far)}isUpdating(e){if(!this._vxl&&this._vxlPromise)return!0;const t=this._layers.get(e);return!!t&&t.outstandingRequestCount>0}getLayerTimes(e){const t=[];return this._vxl?(this._layers.forEach((s,r)=>{if(s.layerView.wasmLayerId===e.wasmLayerId){const s=this._vxl.get_layer_epoch_times(r,e.layer.currentVariableId);for(let e=0;e<s.length;++e)t.push(s[e])}}),t):t}getCurrentLayerTimeIndex(e){let t=0;return this._layers.forEach((s,r)=>{s.layerView.wasmLayerId===e.wasmLayerId&&(t=this._vxl?.get_layer_current_time_id(r)??0)}),t}setEnabled(e,t){this._layers.forEach((s,r)=>{s.layerView.wasmLayerId===e.wasmLayerId&&(this._vxl?.set_enabled(r,t),s.needMemoryUsageUpdate=!0,this.requestRender(1))})}setIsInScaleRange(e,t){const s=this._layers.get(e.wasmLayerId);s&&t!==s.isInScaleRange&&(s.isInScaleRange=t,this._vxl?.set_is_in_scale_range(e.wasmLayerId,t),s.needMemoryUsageUpdate=!t,this.requestRender(1))}setStaticSections(e,t){const s={mask:1,staticSections:t};return this._doMaskedUIUpdate(e,s,!0)}setCurrentVariable(e,t){const s={mask:1024,currentVariable:t};return this._doMaskedUIUpdate(e,s,!0)}setRenderMode(e,t){const s={mask:8192,renderMode:t};return this._doMaskedUIUpdate(e,s,!0)}setVerticalExaggerationAndOffset(e,t,s,r){const i={mask:256,volStyleDesc:{volumeId:t,verticalExaggeration:s,verticalOffset:r}};return this._doMaskedUIUpdate(e,i,!0)}setVariableStyles(e,t){const s={mask:32768,variableStyles:t};return this._doMaskedUIUpdate(e,s,!0)}setVolumeStyles(e,t){const s={mask:65536,volumeStyles:t};return this._doMaskedUIUpdate(e,s,!0)}setEnableDynamicSections(e,t){const s={mask:4096,containerIsVisible:t,container:1};return this._doMaskedUIUpdate(e,s,!0)}setEnableIsosurfaces(e,t){const s={mask:4096,containerIsVisible:t,container:0};return this._doMaskedUIUpdate(e,s,!0)}setEnableSections(e,t){const s={mask:4096,containerIsVisible:t,container:2};return this._doMaskedUIUpdate(e,s,!0)}setAnalysisSlice(e,t,s,r){const i={mask:131072,analysisSlice:{point:s,normal:r,enabled:t}};return this._doMaskedUIUpdate(e,i,!0)}updateLayerTimeProperties(e){if(!this._vxl)return;const t=this._layers.get(e.wasmLayerId);if(t){const s=t.layerView.layer;let r=0;s.timeOffset&&(r=n(s.timeOffset.value,s.timeOffset.unit,"seconds"));const i=this._getTimeArgs(s.timeExtent);this._vxl?.set_layer_time_properties(e.wasmLayerId,i.startTime,i.endTime,i.hasTime,s.useViewTime,r),this.requestRender(1)}}_doMaskedUIUpdate(e,t,s){if(!this._vxl)return!1;let r=!1;return this._layers.forEach((s,i)=>{if(s.layerView.wasmLayerId===e.wasmLayerId){const e={str:JSON.stringify(t),byteCount:0,ptr:0,isReusable:!1};this._allocateBlock(e)&&(r=1===this._vxl?.handle_masked_ui_update(i,e.ptr,e.byteCount),e.isReusable||this._vxl?._free(e.ptr))}}),r&&s&&this.requestRender(1),r}_addTriangleToWasmBuffer(e,t,s,r,i){return e[3*t]=s[0],e[3*t+1]=s[1],e[3*t+2]=s[2],e[3*(t+=1)]=r[0],e[3*t+1]=r[1],e[3*t+2]=r[2],e[3*(t+=1)]=i[0],e[3*t+1]=i[1],e[3*t+2]=i[2],t+=1}_addNormalToWasmBuffer(e,t,s){return e[3*t]=s[0],e[3*t+1]=s[1],e[3*t+2]=s[2],t+=1}_doCaptureFrustum(){if(!this._vxl)return;const e=36,t=e/3,s=this._vxl._malloc(3*e*Float32Array.BYTES_PER_ELEMENT),r=new Float32Array(this._vxl.HEAPF32.buffer,s,3*e),i=this._vxl._malloc(3*t*Float32Array.BYTES_PER_ELEMENT),a=new Float32Array(this._vxl.HEAPF32.buffer,i,e),n=this._frustum.points[0],o=this._frustum.points[1],l=this._frustum.points[2],h=this._frustum.points[3],d=this._frustum.points[4],u=this._frustum.points[5],_=this._frustum.points[6],c=this._frustum.points[7];let m=0,f=0;const p=this._frustum.planes[4];m=this._addTriangleToWasmBuffer(r,m,l,o,n),f=this._addNormalToWasmBuffer(a,f,p),m=this._addTriangleToWasmBuffer(r,m,n,h,l),f=this._addNormalToWasmBuffer(a,f,p);const g=this._frustum.planes[5];m=this._addTriangleToWasmBuffer(r,m,d,u,_),f=this._addNormalToWasmBuffer(a,f,g),m=this._addTriangleToWasmBuffer(r,m,_,c,d),f=this._addNormalToWasmBuffer(a,f,g);const y=this._frustum.planes[3];m=this._addTriangleToWasmBuffer(r,m,_,l,h),f=this._addNormalToWasmBuffer(a,f,y),m=this._addTriangleToWasmBuffer(r,m,h,c,_),f=this._addNormalToWasmBuffer(a,f,y);const x=this._frustum.planes[2];m=this._addTriangleToWasmBuffer(r,m,n,o,u),f=this._addNormalToWasmBuffer(a,f,x),m=this._addTriangleToWasmBuffer(r,m,u,d,n),f=this._addNormalToWasmBuffer(a,f,x);const v=this._frustum.planes[0];m=this._addTriangleToWasmBuffer(r,m,h,n,d),f=this._addNormalToWasmBuffer(a,f,v),m=this._addTriangleToWasmBuffer(r,m,d,c,h),f=this._addNormalToWasmBuffer(a,f,v);const b=this._frustum.planes[1];m=this._addTriangleToWasmBuffer(r,m,l,_,u),f=this._addNormalToWasmBuffer(a,f,b),this._addTriangleToWasmBuffer(r,m,u,o,l),this._addNormalToWasmBuffer(a,f,b),-1!==this._frustumRenderableId&&this._vxl.remove_generic_mesh(this._frustumRenderableId),this._frustumRenderableId=this._vxl.add_generic_mesh(s,3*e,i,e,255,0,0,64),this._vxl._free(s),this._vxl._free(i),this._captureFrustum=!1,this.requestRender(1)}captureFrustum(){null===this._renderCoordsHelper&&(this._renderCoordsHelper=g.create(2,u(!1,this.view.spatialReference))),null===this._frustum&&(this._frustum=new p(this._renderCoordsHelper)),this._captureFrustum=!0,this.requestRender(1)}toggleFullVolumeExtentDraw(e){this._vxl&&this._layers.forEach((t,s)=>{t.layerView.wasmLayerId===e.wasmLayerId&&(this._vxl?.toggle_full_volume_extent_draw(s),this.requestRender(1))})}dropQueryRenderTarget(){this._vxl?.drop_query_rt()}addVoxelLayer(e){if(!this._vxl){const t={layerView:e,resolveCallback:null,rejectCallback:null},s=new Promise((e,s)=>{t.resolveCallback=e,t.rejectCallback=s});return this._newLayers.push(t),s}const t=this._addVoxelLayer(e,this._vxl);return t<0?Promise.reject(-1):Promise.resolve(t)}removeVoxelLayer(e){if(!this._vxl){const t=this._newLayers.findIndex(t=>e.uid===t.layerView.uid);t>=0&&(this._newLayers[t].resolveCallback(-1),this._newLayers.splice(t,1));const s=this._newLayers.length;return 0===s&&(this._dbg(1,"No voxel layers left after removing a layer, destroying render node"),this.destroy()),s}let t=-1;this._layers.forEach((s,r)=>{if(s.layerView.wasmLayerId===e.wasmLayerId){t=r,s.abortController.abort(),this._vxl?.remove_layer(t);const i=this.layerViewUid.indexOf(e.uid);-1!==i&&this.layerViewUid.splice(i,1)}}),t>=0&&this._layers.delete(t);const s=this._layers.size;return 0===s&&(this._dbg(1,"No voxel layers left after removing a layer, destroying render node"),this.destroy()),s}_getBlockSize(e){for(const t of this._wasmMemBlockSizes)if(e<t)return t;return-1}_allocateBlock(e){if(!this._vxl)return!1;e.byteCount=this._vxl.lengthBytesUTF8(e.str)+1;const t=this._getBlockSize(e.byteCount);return t<0?(e.isReusable=!1,e.ptr=this._vxl._malloc(e.byteCount)):(e.isReusable=!0,e.ptr=this._wasmMemBlocks.get(t),0===e.ptr&&(e.ptr=this._vxl._malloc(t),this._wasmMemBlocks.set(t,e.ptr))),0!==e.ptr&&(this._vxl.stringToUTF8(e.str,e.ptr,e.byteCount),!0)}_getTimeArgs(e){let t=-Number.MAX_VALUE,s=Number.MAX_VALUE,r=!1;return null!=e&&(e.isAllTime?r=!0:(null!=e.start&&(r=!0,t=e.start.getTime()/1e3),null!=e.end&&(r=!0,s=e.end.getTime()/1e3))),{startTime:t,endTime:s,hasTime:r}}_addVoxelLayer(e,t){const r=e.layer;let i=-1;const a=r.getConfiguration();if(a.length<1)return-1;const o={str:a,byteCount:0,ptr:0,isReusable:!1};if(!this._allocateBlock(o))return-1;const l=this._getTimeArgs(r.timeExtent),h=this.view.spatialReference.isWGS84&&r.spatialReference.isWGS84?111319.49079327357:1;let d=0;if(r.timeOffset&&(d=n(r.timeOffset.value,r.timeOffset.unit,"seconds")),i=t.add_layer(r.serviceRoot,o.ptr,o.byteCount,h,h,l.startTime,l.endTime,l.hasTime,r.useViewTime,d,this._toWasmQuality(this.view.qualityProfile)),o.isReusable||t._free(o.ptr),i>=0){r.test?.constantUpscaling&&(this._setUpscalingLimits(0,.25,.25),this._setUpscalingLimits(1,.5,.5),this._setUpscalingLimits(2,.75,.75));const t=new AbortController;if(this._layers.set(i,{layerView:e,responses:new Map,outstandingRequestCount:0,abortController:t,needMemoryUsageUpdate:!1,isInScaleRange:!0}),this.layerViewUid.push(e.uid),!this._halfIntTexturesAvailable||has("mac")){const t=[];let r="";for(const s of e.layer.variables)"Int16"!==s.renderingFormat.type&&"UInt16"!==s.renderingFormat.type||(t.push(s.name),s.id===e.layer.currentVariableId&&(r=s.name));""!==r&&s.getLogger(this).error("#addVoxelLayer_error()",e.layer,`The voxel layer '${e.layer.title}' cannot render the current variable '${r}' in this browser`),t.length>0&&s.getLogger(this).warn("#addVoxelLayer_warning()",e.layer,`The voxel layer '${e.layer.title}' cannot render the variables '${t.toString()}' in this browser`)}if(!this._textureFloatLinearAvailable){const t=[];let r="";for(const s of e.layer.variables)"Float32"===s.renderingFormat.type&&(t.push(s.name),s.id===e.layer.currentVariableId&&(r=s.name));""!==r&&s.getLogger(this).error("#addVoxelLayer_error()",e.layer,`The voxel layer '${e.layer.title}' cannot render the current variable '${r}' in this browser`),t.length>0&&s.getLogger(this).warn("#addVoxelLayer_warning()",e.layer,`The voxel layer '${e.layer.title}' cannot render the variables '${t.toString()}' in this browser`)}return has("esri-mobile")&&s.getLogger(this).warnOnce("Mobile support differs across devices. Voxel layer might not display as expected."),i}return-1}_prepareRender(){if(!this._vxl)return void this._initializeWasm();const e=this.bindParameters.camera.viewForward,t=this.bindParameters.camera.eye;this._vxl.update_camera_pos_and_direction(t[0],t[1],t[2],e[0],e[1],e[2]);const s=this._vxl.cull();this._dbg(2,"missingResourceCount="+s),this._moreToLoad=s>0,this._havePreparedWithAllLayers=0===this._newLayers.length,this._updateMemoryUsage()}render(){this._prepareRender();const e=this.bindRenderTarget();if(!this._vxl||!this._rctx)return this.requestRender(1),e;for(const s of this._newLayers){const e=this._addVoxelLayer(s.layerView,this._vxl);-1===e?s.rejectCallback(-1):s.resolveCallback(e)}if(this._newLayers=[],0===this._layers.size)return this._dbg(4,"No voxel layers but RenderNode is being asked to render!"),e;this._lastFrameWasStationary=this.view.stationary,this._syncRequestsResponses(),this._beforeDraw(this._rctx),this._vxl.begin_color_frame(!this.view.stage.renderer.isFeatureEnabled(2),this.bindParameters.lighting.mainLight.direction[0],this.bindParameters.lighting.mainLight.direction[1],this.bindParameters.lighting.mainLight.direction[2]);const t=this._renderTargetToRestore.viewport;return t.width===this._viewportWidth&&t.height===this._viewportHeight||(this._viewportWidth=t.width,this._viewportHeight=t.height,this._vxl.set_viewport(t.width,t.height),this._layers.forEach(e=>e.needMemoryUsageUpdate=!0)),0===t.x&&0===t.y||this._dbg(4,"Unsupported viewport parameters detected!"),this.updateWasmCamera(this.bindParameters.camera),this._captureFrustum&&(this._frustum.update(this.bindParameters.camera),this._doCaptureFrustum()),this._vxl.draw(),this._afterDraw(this._rctx,this._vxl),(this._moreToLoad||!this._havePreparedWithAllLayers&&this._layers.size>0)&&this.requestRender(1),e}destroy(){this._dbg(1,"--destroy--"),this._vxl&&(this._layers.forEach(e=>{e.abortController.abort()}),this._wasmMemBlocks.forEach(e=>{0!==e&&this._vxl?._free(e)}),this._vxl.uninitialize_voxel_wasm(),this._vxl=null)}_initializeWasm(){if(this._vxl||this._vxlPromise||!this._rctx?.gl)return;const e=this._rctx.gl;this._vxlPromise=_(e).then(t=>{if(t.specialHTMLTargets.jsAPI3DRenderingContext=e,this._vxl=t,this._vxlPromise=null,this._newLayers.length<=0)return this._dbg(1," no voxel layers left after WASM downloaded, removing RenderNode and destroying"),void this.destroy();const s=this._getTimeArgs(this.view?.timeExtent),r=this._vxl.addFunction(this._restoreFramebuffer.bind(this),"v"),i=this._vxl.addFunction(this._setBlendState.bind(this),"viiii"),a=this._vxl.addFunction(this._setFrontFace.bind(this),"vi"),n=this._vxl.addFunction(this._setRasterizerState.bind(this),"vi"),o=this._vxl.addFunction(this._setDepthStencilStateFunction.bind(this),"viii"),l=this._vxl.addFunction(this._setViewport.bind(this),"viiii"),h=this._vxl.addFunction(this._bindPreviousDepthToSlot.bind(this),"iii"),d=this._vxl.addFunction(this._modifyResourceCount.bind(this),"viii"),u=this._halfIntTexturesAvailable&&!has("mac"),_=this._textureFloatLinearAvailable;this._vxl.initialize_voxel_wasm(r,i,a,n,o,l,h,d,s.startTime,s.endTime,s.hasTime,u,_),this.requestRender(1)}).catch(()=>{for(const e of this._newLayers)e.rejectCallback(-2);this._dbg(4," WASM failed to download, destroying render node"),this.destroy()})}pickDepth(e,t,s){if(!this._vxl||!this._rctx||0===this._layers.size)return null;const r=s.viewport[3]-t;if(e<0||e>s.viewport[2]||t<0||t>s.viewport[3])return this._dbg(4,`[js] pickDepth: outOfRange, screenXY=[${e.toFixed(0)}, ${r.toFixed(0)}]]`),null;this._beforeDraw(this._rctx);const i=s.viewForward,a=s.eye;this._vxl.update_camera_pos_and_direction(a[0],a[1],a[2],i[0],i[1],i[2]),this.updateWasmCamera(s),this._vxl.begin_frame();const n=this._vxl.pick_depth(e,r);if(this._afterDraw(this._rctx,this._vxl),n.success){return n.distanceToCamera}return null}pickObject(e,t,s,r){if(!this._vxl||!this._rctx||0===this._layers.size)return null;const i=Math.round(e),a=Math.round(t);if(i<0||i>s.viewport[2]||a<0||a>s.viewport[3])return this._dbg(4,`[js] pickObject: outOfRange, screenXY=[${i}, ${a}], vp=[${s.viewport.toString()}]`),null;this._beforeDraw(this._rctx);const n=s.viewForward,o=s.eye;this._vxl.update_camera_pos_and_direction(o[0],o[1],o[2],n[0],n[1],n[2]),this.updateWasmCamera(s),this._vxl.begin_frame();let l=null;if(0===r.length)l=this._vxl.pick_object(i,a,0,0);else{const e={str:JSON.stringify({layerIds:r}),byteCount:0,ptr:0,isReusable:!1};this._allocateBlock(e)&&(l=this._vxl.pick_object(i,a,e.ptr,e.byteCount),e.isReusable||this._vxl._free(e.ptr))}return this._afterDraw(this._rctx,this._vxl),l}async getOtherFieldPopupValues(e,s){if(!this._vxl)return[];for(const r of e){const e=r.gpuResult;if(!e)continue;const i=this._layers.get(e.layerId);if(!i||!i.layerView.layer.url)continue;const a=i.layerView.layer,n={responseType:"array-buffer",signal:i.abortController.signal,query:{...i.layerView.layer.customParameters,token:i.layerView.layer.apiKey}},o=e.voxelSpacePosition,l=[Math.floor(o[0]/32),Math.floor(o[1]/32),Math.floor(o[2]/32)],h=[-4&l[0],-4&l[1],-4&l[2]];let d=0;if(e.epochTime){const t=this._vxl.get_layer_epoch_times(i.layerView.wasmLayerId,a.currentVariableId);for(let s=0;s<t.length;++s)if(t[s]===e.epochTime/1e3){d=s;break}}const u=[],_={varIds:[],ptrs:[],sizes:[]};for(const r of s){const e=a.variables.findIndex(e=>e.name===r);if(-1===e)continue;const s=a.variables.getItemAt(e)?.id;if(null==s)continue;const i=`${a.url}/variables/${s}/${d}/bundles/0/${h[0]}-${h[1]}-${h[2]}`;u.push(t(i,n).then(e=>e.data)),_.varIds.push(s)}const c=await Promise.allSettled(u),m=c.length;for(let t=0;t<m;++t){const e=c[t];if("fulfilled"===e.status){const t=e.value,s=this._vxl._malloc(t.byteLength);new Uint8Array(this._vxl.HEAPU8.buffer,s,t.byteLength).set(new Uint8Array(t)),_.ptrs.push(s),_.sizes.push(t.byteLength)}else _.varIds.splice(t,1)}const f=this._vxl.get_other_field_popup_values(e,_);for(let t=0;t<_.ptrs.length;++t)this._vxl._free(_.ptrs[t]);if(f.continuousValues)for(const t in f.continuousValues)r.attributes[t]=f.continuousValues[t];if(f.uniqueValues)for(const t in f.uniqueValues)r.attributes[t]=f.uniqueValues[t]}return e}_beforeDraw(e){this._renderTargetToRestore={fbo:e.boundFramebuffer,viewport:e.getViewport()},e.setPolygonOffsetFillEnabled(!1),e.setScissorTestEnabled(!1),e.setColorMask(!0,!0,!0,!0)}_afterDraw(e,t){this._renderTargetToRestore.fbo=null,e.externalTextureUnitUpdate(t.get_texture_units_bound_in_frame(),t.get_active_texture_unit()),e.externalVertexArrayObjectUpdate(),e.externalVertexBufferUpdate(),e.externalProgramUpdate()}intersect(e,t,s,r,i){if(!this._vxl||!this._rctx||0===this._layers.size||!e.options.selectionMode||e.options.isFiltered||!e.camera)return;if(null==i||i[0]<0||i[0]>e.camera.viewport[2]||i[1]<0||i[1]>e.camera.viewport[3])return this._dbg(4,i?`[js] VoxelWasmPerScene.intersect: outOfRange, screenXY=[${i[0].toFixed(0)}, ${i[1].toFixed(0)}]`:"[js] VoxelWasmPerScene.intersect: outOfRange, screenXY=null"),null;const a=[];this._layers.forEach(t=>{e.options.filteredLayerViewUids.includes(t.layerView.uid)&&a.push(t.layerView.wasmLayerId)});const n=this.pickObject(i[0],i[1],e.camera,a);if(null==n||-1===n.layerId)return;const o=this._layers.get(n.layerId);if(o){const t=o.layerView.layer.uid,i=n.distanceToCamera/h(s,r),a=d();a[0]=n.worldX,a[1]=n.worldY,a[2]=n.worldZ;const l={},u=o.layerView.layer,_=u.variables.findIndex(e=>e.id===u.currentVariableId);if(_>=0){const e=u.variables.getItemAt(_);null!=e&&(null!=n.continuousValue?l[e.name]=n.continuousValue:null!=n.uniqueValueLabel&&null!=n.uniqueValue?l[e.name]=`${n.uniqueValueLabel} (${n.uniqueValue})`:null!=n.uniqueValue&&(l[e.name]=`${n.uniqueValue}`),e.description.length>0?l["Voxel.CurrentVariable"]=e.description:e.name?.length>0&&(l["Voxel.CurrentVariable"]=e.name))}if(l["Voxel.Position"]=`[${n.voxelSpacePosition.toString()}]`,null!=n.epochTime&&null!=n.nativeTime&&null!=n.nativeTimeUnits){const e=new Date(n.epochTime);l["Voxel.LocalTime"]=e,l["Voxel.SourceTime"]=`${n.nativeTime.toLocaleString()} ${n.nativeTimeUnits}`}null!=n.depth&&(l["Voxel.Depth"]=n.depth);const c=n.faceNormal;l["Voxel.WorldPosition"]=`[${a[0]}, ${a[1]}, ${a[2]}]`;const m=e=>{const s=new f(a,t,()=>this._createVoxelGraphic(o.layerView.layer,l,n));e.set(this.type,s,i,c)},p=e.results,g=2===e.options.store;if((null==p.min.distance||i<p.min.distance)&&m(p.min),(null==p.max.distance||i>p.max.distance)&&m(p.max),g){const t=new x(e.ray);m(t),e.results.all.push(t)}}}_createVoxelGraphic(e,t,s){return new m({layer:e,sourceLayer:e,origin:e.graphicOrigin,attributes:t,gpuResult:s})}_toWasmQuality(e){switch(e){case"low":return 0;case"medium":return 1;case"high":return 2}}_setUpscalingLimits(e,t,s){this._vxl&&this._vxl.set_upscaling_limits(e,t,s)}};e([o()],v.prototype,"produces",void 0),e([o()],v.prototype,"consumes",void 0),v=e([l("esri.layers.VoxelWasmPerSceneView")],v);const b=v;export{b as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{getExpressionFromFieldName as t,getWhereClause as e,getAliasFromFieldName as i}from"./attributeSupport.js";import{getGeometry as s}from"./geometryUtils.js";import{isDateOnlyField as a,isTimestampOffsetField as r,isTimeOnlyField as l}from"../../support/fieldUtils.js";import{timeOnlyToMilliseconds as n}from"../../../smartMapping/statistics/support/utils.js";import{processNullValue as u,getNormalizedValue as o}from"../../../statistics/utils.js";import{loadArcade as d}from"../../../support/loadArcade.js";class c{constructor(s,a,r){this._fieldDataCache=new Map,this._returnDistinctMap=new Map,this.returnDistinctValues=s.returnDistinctValues??!1,this.fieldsIndex=r,this.featureAdapter=a;const l=s.outFields;if(l&&!l.includes("*")){this.outFields=l;let s=0;for(const a of l){const l=t(a),n=this.fieldsIndex.get(l),u=n?null:e(l,r),o=n?n.name:i(a)||"FIELD_EXP_"+s++;this._fieldDataCache.set(a,{alias:o,clause:u})}}}countDistinctValues(t){return this.returnDistinctValues?(t.forEach(t=>this.getAttributes(t)),this._returnDistinctMap.size):t.length}getAttributes(t){const e=this._processAttributesForOutFields(t);return this._processAttributesForDistinctValues(e)}getFieldValue(t,i,s){if(s)return this.featureAdapter.getAttribute(t,s.name);const a=i;let r=null;return this._fieldDataCache.has(a)?r=this._fieldDataCache.get(a)?.clause:s||(r=e(i,this.fieldsIndex),this._fieldDataCache.set(a,{alias:a,clause:r})),r?.calculateValue(t,this.featureAdapter)}getDataValues(t,e,i=!0){const s=e.normalizationType,d=e.normalizationTotal,c=this.fieldsIndex.get(e.field),f=a(c)||r(c),h=l(c);return t.map(t=>{let a=e.field&&this.getFieldValue(t,e.field,this.fieldsIndex.get(e.field));if(e.field2?(a=`${u(a)}${e.fieldDelimiter}${u(this.getFieldValue(t,e.field2,this.fieldsIndex.get(e.field2)))}`,e.field3&&(a=`${a}${e.fieldDelimiter}${u(this.getFieldValue(t,e.field3,this.fieldsIndex.get(e.field3)))}`)):"string"==typeof a&&i&&(f?a=a?new Date(a).getTime():null:h&&(a=a?n(a):null)),s&&Number.isFinite(a)){const i="field"===s&&e.normalizationField?this.getFieldValue(t,e.normalizationField,this.fieldsIndex.get(e.normalizationField)):null;a=o(a,s,i,d)}return a})}async getExpressionValues(t,e,i,a,r){const{arcadeUtils:l}=await d(),n=l.hasGeometryOperations(e);n&&await l.enableGeometryOperations();const u=l.createFunction(e),o=l.getViewInfo(i),c={fields:this.fieldsIndex.fields};return t.map(t=>{const e={attributes:this.featureAdapter.getAttributes(t),layer:c,geometry:n?{...s(a.geometryType,this.featureAdapter.getGeometry(t)),spatialReference:i?.spatialReference}:null},d=l.createExecContext(e,o,r);return l.executeFunction(u,d)})}validateItem(t,i){return this._fieldDataCache.has(i)||this._fieldDataCache.set(i,{alias:i,clause:e(i,this.fieldsIndex)}),this._fieldDataCache.get(i)?.clause?.testFeature(t,this.featureAdapter)??!1}validateItems(t,i){return this._fieldDataCache.has(i)||this._fieldDataCache.set(i,{alias:i,clause:e(i,this.fieldsIndex)}),this._fieldDataCache.get(i)?.clause?.testSet(t,this.featureAdapter)??!1}_processAttributesForOutFields(t){const e=this.outFields;if(!e?.length)return this.featureAdapter.getAttributes(t);const i={};for(const s of e){const{alias:e,clause:a}=this._fieldDataCache.get(s);i[e]=a?a.calculateValue(t,this.featureAdapter):this.featureAdapter.getAttribute(t,e)}return i}_processAttributesForDistinctValues(t){if(null==t||!this.returnDistinctValues)return t;const e=this.outFields,i=[];if(e)for(const r of e){const{alias:e}=this._fieldDataCache.get(r);i.push(t[e])}else for(const r in t)i.push(t[r]);const s=`${(e||["*"]).join(",")}=${i.join(",")}`;let a=this._returnDistinctMap.get(s)||0;return this._returnDistinctMap.set(s,++a),a>1?null:t}}export{c as default};
2
+ import{timeOnlyToMilliseconds as t}from"../../../core/timeUtils.js";import{getExpressionFromFieldName as e,getWhereClause as i,getAliasFromFieldName as s}from"./attributeSupport.js";import{getGeometry as a}from"./geometryUtils.js";import{isDateOnlyField as l,isTimestampOffsetField as r,isTimeOnlyField as n}from"../../support/fieldUtils.js";import{processNullValue as u,getNormalizedValue as o}from"../../../statistics/utils.js";import{loadArcade as d}from"../../../support/loadArcade.js";class c{constructor(t,a,l){this._fieldDataCache=new Map,this._returnDistinctMap=new Map,this.returnDistinctValues=t.returnDistinctValues??!1,this.fieldsIndex=l,this.featureAdapter=a;const r=t.outFields;if(r&&!r.includes("*")){this.outFields=r;let t=0;for(const a of r){const r=e(a),n=this.fieldsIndex.get(r),u=n?null:i(r,l),o=n?n.name:s(a)||"FIELD_EXP_"+t++;this._fieldDataCache.set(a,{alias:o,clause:u})}}}countDistinctValues(t){return this.returnDistinctValues?(t.forEach(t=>this.getAttributes(t)),this._returnDistinctMap.size):t.length}getAttributes(t){const e=this._processAttributesForOutFields(t);return this._processAttributesForDistinctValues(e)}getFieldValue(t,e,s){if(s)return this.featureAdapter.getAttribute(t,s.name);const a=e;let l=null;return this._fieldDataCache.has(a)?l=this._fieldDataCache.get(a)?.clause:s||(l=i(e,this.fieldsIndex),this._fieldDataCache.set(a,{alias:a,clause:l})),l?.calculateValue(t,this.featureAdapter)}getDataValues(e,i,s=!0){const a=i.normalizationType,d=i.normalizationTotal,c=this.fieldsIndex.get(i.field),f=l(c)||r(c),h=n(c);return e.map(e=>{let l=i.field&&this.getFieldValue(e,i.field,this.fieldsIndex.get(i.field));if(i.field2?(l=`${u(l)}${i.fieldDelimiter}${u(this.getFieldValue(e,i.field2,this.fieldsIndex.get(i.field2)))}`,i.field3&&(l=`${l}${i.fieldDelimiter}${u(this.getFieldValue(e,i.field3,this.fieldsIndex.get(i.field3)))}`)):"string"==typeof l&&s&&(f?l=l?new Date(l).getTime():null:h&&(l=l?t(l):null)),a&&Number.isFinite(l)){const t="field"===a&&i.normalizationField?this.getFieldValue(e,i.normalizationField,this.fieldsIndex.get(i.normalizationField)):null;l=o(l,a,t,d)}return l})}async getExpressionValues(t,e,i,s,l){const{arcadeUtils:r}=await d(),n=r.hasGeometryOperations(e);n&&await r.enableGeometryOperations();const u=r.createFunction(e),o=r.getViewInfo(i),c={fields:this.fieldsIndex.fields};return t.map(t=>{const e={attributes:this.featureAdapter.getAttributes(t),layer:c,geometry:n?{...a(s.geometryType,this.featureAdapter.getGeometry(t)),spatialReference:i?.spatialReference}:null},d=r.createExecContext(e,o,l);return r.executeFunction(u,d)})}validateItem(t,e){return this._fieldDataCache.has(e)||this._fieldDataCache.set(e,{alias:e,clause:i(e,this.fieldsIndex)}),this._fieldDataCache.get(e)?.clause?.testFeature(t,this.featureAdapter)??!1}validateItems(t,e){return this._fieldDataCache.has(e)||this._fieldDataCache.set(e,{alias:e,clause:i(e,this.fieldsIndex)}),this._fieldDataCache.get(e)?.clause?.testSet(t,this.featureAdapter)??!1}_processAttributesForOutFields(t){const e=this.outFields;if(!e?.length)return this.featureAdapter.getAttributes(t);const i={};for(const s of e){const{alias:e,clause:a}=this._fieldDataCache.get(s);i[e]=a?a.calculateValue(t,this.featureAdapter):this.featureAdapter.getAttribute(t,e)}return i}_processAttributesForDistinctValues(t){if(null==t||!this.returnDistinctValues)return t;const e=this.outFields,i=[];if(e)for(const l of e){const{alias:e}=this._fieldDataCache.get(l);i.push(t[e])}else for(const l in t)i.push(t[l]);const s=`${(e||["*"]).join(",")}=${i.join(",")}`;let a=this._returnDistinctMap.get(s)||0;return this._returnDistinctMap.set(s,++a),a>1?null:t}}export{c as default};
@@ -0,0 +1,15 @@
1
+ import type { ClonableMixin } from "../../core/Clonable.js";
2
+ import type { JSONSupport } from "../../core/JSONSupport.js";
3
+
4
+ /** @since 5.1 */
5
+ export interface SymbolLayerDrawingProperties {}
6
+
7
+ /**
8
+ * @since
9
+ * 5.1
10
+ * Defines symbol layer drawing options.
11
+ */
12
+ export default class SymbolLayerDrawing extends SymbolLayerDrawingSuperclass {
13
+ constructor(properties?: SymbolLayerDrawingProperties);
14
+ }
15
+ declare const SymbolLayerDrawingSuperclass: typeof JSONSupport & typeof ClonableMixin
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import{__decorate as r}from"tslib";import{ClonableMixin as e}from"../../core/Clonable.js";import{JSONSupport as o}from"../../core/JSONSupport.js";import{property as t,subclass as s}from"../../core/accessorSupport/decorators.js";let i=class extends(e(o)){constructor(r){super(r),this.enabled=!1,this.drawOrder=[]}};r([t({type:Boolean,json:{write:!0,origins:{"web-scene":{write:!1}}}})],i.prototype,"enabled",void 0),r([t({type:[String],json:{write:!0,origins:{"web-scene":{write:!1}}}})],i.prototype,"drawOrder",void 0),i=r([s("esri.layers.support.SymbolLayerDrawing")],i);const p=i;export{p as default};
@@ -3,8 +3,11 @@ import type UNTraceConfiguration from "./UNTraceConfiguration.js";
3
3
  /** @since 5.0 */
4
4
  export type UtilityNetworkFeatureClassUsageType = "esriUNFCUTDevice" | "esriUNFCUTJunction" | "esriUNFCUTLine" | "esriUNFCUTAssembly" | "esriUNFCUTSubnetLine" | "esriUNFCUTStructureJunction" | "esriUNFCUTStructureLine" | "esriUNFCUTStructureBoundary" | "esriUNFCUTJunctionObject" | "esriUNFCUTEdgeObject" | "esriUNFCUTStructureJunctionObject" | "esriUNFCUTStructureEdgeObject" | "esriUNFCUTCircuit" | "esriUNFCUTCircuitSection" | "esriUNFCUTSubcircuit";
5
5
 
6
- /** @since 5.0 */
7
- export type PolicyType = "esriDPTUnitApportioned" | "esriDPTDefaultValue" | "esriCPTSumValues" | "esriCPTDefaultValue";
6
+ /** @since 5.1 */
7
+ export type DividePolicyType = "esriDPTUnitApportioned" | "esriDPTDefaultValue";
8
+
9
+ /** @since 5.1 */
10
+ export type CombinePolicyType = "esriCPTSumValues" | "esriCPTDefaultValue";
8
11
 
9
12
  /**
10
13
  * Uniquely identifies an element by network source ID and global ID.
@@ -297,13 +300,13 @@ export interface DomainNetworkJSON {
297
300
  *
298
301
  * @since 5.0
299
302
  */
300
- dividePolicies?: PolicyJSON[] | null;
303
+ dividePolicies?: DividePolicyJSON[] | null;
301
304
  /**
302
305
  * An array of objects describing combine policies.
303
306
  *
304
307
  * @since 5.0
305
308
  */
306
- combinePolicies?: PolicyJSON[] | null;
309
+ combinePolicies?: CombinePolicyJSON[] | null;
307
310
  /**
308
311
  * A UNTraceConfiguration object that defines the trace configuration for the domain network.
309
312
  * This configuration includes parameters specific to utility networks.
@@ -397,29 +400,51 @@ export interface ColorGroupJSON {
397
400
  capacity: number[];
398
401
  }
399
402
 
400
- /** @since 5.0 */
401
- export interface PolicyJSON {
403
+ /** @since 5.1 */
404
+ export interface DividePolicyJSON {
402
405
  /**
403
406
  * The source ID for the policy.
404
407
  *
405
- * @since 5.0
408
+ * @since 5.1
406
409
  */
407
410
  sourceId: number;
408
411
  /**
409
412
  * The attribute name for the policy.
410
413
  *
411
- * @since 5.0
414
+ * @since 5.1
412
415
  */
413
416
  attributeName: string;
414
417
  /**
415
418
  * The policy type.
416
419
  *
417
- * @since 5.0
420
+ * @since 5.1
418
421
  */
419
- policy: PolicyType;
422
+ policy: DividePolicyType;
420
423
  }
421
424
 
422
- /** @since 5.0 */
425
+ /** @since 5.1 */
426
+ export interface CombinePolicyJSON {
427
+ /**
428
+ * The source ID for the policy.
429
+ *
430
+ * @since 5.1
431
+ */
432
+ sourceId: number;
433
+ /**
434
+ * The attribute name for the policy.
435
+ *
436
+ * @since 5.1
437
+ */
438
+ attributeName: string;
439
+ /**
440
+ * The policy type.
441
+ *
442
+ * @since 5.1
443
+ */
444
+ policy: CombinePolicyType;
445
+ }
446
+
447
+ /** @since 5.1 */
423
448
  export interface TierJSON {
424
449
  /**
425
450
  * The name of the tier.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcgis/core",
3
- "version": "5.1.0-next.65",
3
+ "version": "5.1.0-next.66",
4
4
  "homepage": "https://js.arcgis.com",
5
5
  "description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
6
6
  "keywords": [
@@ -18,14 +18,14 @@
18
18
  ],
19
19
  "license": "SEE LICENSE IN LICENSE.md",
20
20
  "dependencies": {
21
- "@amcharts/amcharts5": "~5.16.2",
22
- "@arcgis/toolkit": "^5.1.0-next.62",
21
+ "@amcharts/amcharts5": "~5.17.1",
22
+ "@arcgis/toolkit": "^5.1.0-next.68",
23
23
  "@esri/arcgis-html-sanitizer": "~4.1.0",
24
24
  "@esri/calcite-components": "^5.0.2",
25
25
  "@vaadin/grid": "~25.1.0",
26
26
  "@zip.js/zip.js": "~2.8.26",
27
27
  "luxon": "~3.7.2",
28
- "marked": "~17.0.5",
28
+ "marked": "~18.0.0",
29
29
  "tslib": "^2.8.1"
30
30
  },
31
31
  "type": "module"
@@ -101,14 +101,24 @@ export default class Feature extends FeatureSuperclass {
101
101
  * Enables automatic creation of a popup template for layers that have popups enabled but no
102
102
  * popupTemplate defined. Automatic popup templates are supported for layers that
103
103
  * support the `createPopupTemplate` method. (Supported for
104
+ * [BuildingComponentSublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/buildingSublayers/BuildingComponentSublayer/),
105
+ * [CatalogFootprintLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer/),
106
+ * [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
104
107
  * [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/),
105
108
  * [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/),
109
+ * [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/)),
110
+ * [ImageryTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/),
111
+ * [KnowledgeGraphSublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/knowledgeGraph/KnowledgeGraphSublayer/),
106
112
  * [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OGCFeatureLayer/),
107
- * [SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/),
108
- * [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
113
+ * [ParquetLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/),
109
114
  * [PointCloudLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/PointCloudLayer/),
110
- * [StreamLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/StreamLayer/), and
111
- * [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/)).
115
+ * [SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/),
116
+ * [StreamLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/StreamLayer/),
117
+ * [Sublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/),
118
+ * [SubtypeSublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/support/SubtypeSublayer/),
119
+ * [VoxelLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/VoxelLayer/),
120
+ * [WCSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/WCSLayer/), and
121
+ * [WFSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/WFSLayer/)).
112
122
  *
113
123
  * @default false
114
124
  */