@arcgis/core 5.2.0-next.111 → 5.2.0-next.113

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 (644) hide show
  1. package/Ground.d.ts +4 -5
  2. package/Ground.js +1 -1
  3. package/arcgisGlobal.d.ts +5 -0
  4. package/assets/components/assets/icon/alignBottom16.json +1 -0
  5. package/assets/components/assets/icon/alignBottom24.json +1 -0
  6. package/assets/components/assets/icon/alignBottom32.json +1 -0
  7. package/assets/components/assets/icon/alignCenterHorizontal16.json +1 -0
  8. package/assets/components/assets/icon/alignCenterHorizontal24.json +1 -0
  9. package/assets/components/assets/icon/alignCenterHorizontal32.json +1 -0
  10. package/assets/components/assets/icon/alignCenterVertical16.json +1 -0
  11. package/assets/components/assets/icon/alignCenterVertical24.json +1 -0
  12. package/assets/components/assets/icon/alignCenterVertical32.json +1 -0
  13. package/assets/components/assets/icon/alignLeft16.json +1 -0
  14. package/assets/components/assets/icon/alignLeft24.json +1 -0
  15. package/assets/components/assets/icon/alignLeft32.json +1 -0
  16. package/assets/components/assets/icon/alignRight16.json +1 -0
  17. package/assets/components/assets/icon/alignRight24.json +1 -0
  18. package/assets/components/assets/icon/alignRight32.json +1 -0
  19. package/assets/components/assets/icon/alignTop16.json +1 -0
  20. package/assets/components/assets/icon/alignTop24.json +1 -0
  21. package/assets/components/assets/icon/alignTop32.json +1 -0
  22. package/assets/components/assets/icon/columnGroup16.json +1 -0
  23. package/assets/components/assets/icon/columnGroup24.json +1 -0
  24. package/assets/components/assets/icon/columnGroup32.json +1 -0
  25. package/assets/components/assets/icon/columnRemove16.json +1 -0
  26. package/assets/components/assets/icon/columnRemove24.json +1 -0
  27. package/assets/components/assets/icon/columnRemove32.json +1 -0
  28. package/assets/components/assets/icon/columnUngroup16.json +1 -0
  29. package/assets/components/assets/icon/columnUngroup24.json +1 -0
  30. package/assets/components/assets/icon/columnUngroup32.json +1 -0
  31. package/assets/components/assets/icon/envelopeOpen16.json +1 -0
  32. package/assets/components/assets/icon/envelopeOpen24.json +1 -0
  33. package/assets/components/assets/icon/envelopeOpen32.json +1 -0
  34. package/assets/components/assets/icon/handDraw16.json +1 -0
  35. package/assets/components/assets/icon/handDraw24.json +1 -0
  36. package/assets/components/assets/icon/handDraw32.json +1 -0
  37. package/assets/components/assets/icon/monitorShare16.json +1 -0
  38. package/assets/components/assets/icon/monitorShare24.json +1 -0
  39. package/assets/components/assets/icon/monitorShare32.json +1 -0
  40. package/assets/components/assets/icon/pi16.json +1 -0
  41. package/assets/components/assets/icon/pi24.json +1 -0
  42. package/assets/components/assets/icon/pi32.json +1 -0
  43. package/assets/components/assets/icon/rowGroup16.json +1 -0
  44. package/assets/components/assets/icon/rowGroup24.json +1 -0
  45. package/assets/components/assets/icon/rowGroup32.json +1 -0
  46. package/assets/components/assets/icon/rowRemove16.json +1 -0
  47. package/assets/components/assets/icon/rowRemove24.json +1 -0
  48. package/assets/components/assets/icon/rowRemove32.json +1 -0
  49. package/assets/components/assets/icon/rowUngroup16.json +1 -0
  50. package/assets/components/assets/icon/rowUngroup24.json +1 -0
  51. package/assets/components/assets/icon/rowUngroup32.json +1 -0
  52. package/assets/components/assets/icon/sdCard16.json +1 -0
  53. package/assets/components/assets/icon/sdCard24.json +1 -0
  54. package/assets/components/assets/icon/sdCard32.json +1 -0
  55. package/assets/components/assets/icon/spaceAroundHorizontal16.json +1 -0
  56. package/assets/components/assets/icon/spaceAroundHorizontal24.json +1 -0
  57. package/assets/components/assets/icon/spaceAroundHorizontal32.json +1 -0
  58. package/assets/components/assets/icon/spaceAroundVertical16.json +1 -0
  59. package/assets/components/assets/icon/spaceAroundVertical24.json +1 -0
  60. package/assets/components/assets/icon/spaceAroundVertical32.json +1 -0
  61. package/assets/components/assets/icon/spaceBetweenHorizontal16.json +1 -0
  62. package/assets/components/assets/icon/spaceBetweenHorizontal24.json +1 -0
  63. package/assets/components/assets/icon/spaceBetweenHorizontal32.json +1 -0
  64. package/assets/components/assets/icon/spaceBetweenVertical16.json +1 -0
  65. package/assets/components/assets/icon/spaceBetweenVertical24.json +1 -0
  66. package/assets/components/assets/icon/spaceBetweenVertical32.json +1 -0
  67. package/assets/components/assets/icon/spacedEvenlyHorizontal16.json +1 -0
  68. package/assets/components/assets/icon/spacedEvenlyHorizontal24.json +1 -0
  69. package/assets/components/assets/icon/spacedEvenlyHorizontal32.json +1 -0
  70. package/assets/components/assets/icon/spacedEvenlyVertical16.json +1 -0
  71. package/assets/components/assets/icon/spacedEvenlyVertical24.json +1 -0
  72. package/assets/components/assets/icon/spacedEvenlyVertical32.json +1 -0
  73. package/assets/components/assets/icon/stretchHorizontal16.json +1 -0
  74. package/assets/components/assets/icon/stretchHorizontal24.json +1 -0
  75. package/assets/components/assets/icon/stretchHorizontal32.json +1 -0
  76. package/assets/components/assets/icon/stretchVertical16.json +1 -0
  77. package/assets/components/assets/icon/stretchVertical24.json +1 -0
  78. package/assets/components/assets/icon/stretchVertical32.json +1 -0
  79. package/assets/components/assets/icon/swatchPalette16.json +1 -0
  80. package/assets/components/assets/icon/swatchPalette24.json +1 -0
  81. package/assets/components/assets/icon/swatchPalette32.json +1 -0
  82. package/assets/components/assets/icon/thermometer16.json +1 -0
  83. package/assets/components/assets/icon/thermometer24.json +1 -0
  84. package/assets/components/assets/icon/thermometer32.json +1 -0
  85. package/assets/components/assets/icon/webCamera16.json +1 -0
  86. package/assets/components/assets/icon/webCamera24.json +1 -0
  87. package/assets/components/assets/icon/webCamera32.json +1 -0
  88. package/assets/esri/core/workers/RemoteClient.js +1 -1
  89. package/assets/esri/core/workers/chunks/01ca17092545d72be7b6.js +1 -0
  90. package/assets/esri/core/workers/chunks/{f5a988bb850f7a7af143.js → 05b373a663cb5d4d722f.js} +1 -1
  91. package/assets/esri/core/workers/chunks/078ed48eb055dd213ee6.js +1 -0
  92. package/assets/esri/core/workers/chunks/{36f8caeb574dcd5c0ed5.js → 0b727d7bf3e36e146725.js} +1 -1
  93. package/assets/esri/core/workers/chunks/0c65862e3dd810015491.js +1 -0
  94. package/assets/esri/core/workers/chunks/0e3e58ba8e2d358121a5.js +1 -0
  95. package/assets/esri/core/workers/chunks/0edebc6c516f0b9dac7b.js +1 -0
  96. package/assets/esri/core/workers/chunks/1004e77593dfa506cd5d.js +1 -0
  97. package/assets/esri/core/workers/chunks/184942ea601237c8241a.js +1 -0
  98. package/assets/esri/core/workers/chunks/20de0ea9fa08a6545978.js +1 -0
  99. package/assets/esri/core/workers/chunks/214d63813d268afc265d.js +1 -0
  100. package/assets/esri/core/workers/chunks/21c0743b2f612e7e7de3.js +1 -0
  101. package/assets/esri/core/workers/chunks/22e85819e23202a8ba90.js +1 -0
  102. package/assets/esri/core/workers/chunks/{6e677505d257e0848075.js → 23f9ab77e4e263f82636.js} +1 -1
  103. package/assets/esri/core/workers/chunks/25cc6d7178a52f2f46b7.js +1 -0
  104. package/assets/esri/core/workers/chunks/28a04887ecaee5445d14.js +1 -0
  105. package/assets/esri/core/workers/chunks/{2fc5c1504691badc7792.js → 2ac2d0a7623dd060c144.js} +1 -1
  106. package/assets/esri/core/workers/chunks/2afce71e8b6ae86e0792.js +1 -0
  107. package/assets/esri/core/workers/chunks/{4c9df8ae9238454969b8.js → 2c21f4744e19b925a6ae.js} +1 -1
  108. package/assets/esri/core/workers/chunks/32fc7d1db4b311f6b880.js +1 -0
  109. package/assets/esri/core/workers/chunks/36792b8a85e88044cb49.js +1 -0
  110. package/assets/esri/core/workers/chunks/36a7e19f43517aa94577.js +1 -0
  111. package/assets/esri/core/workers/chunks/{6e6cdff4bbe1ff2f44ac.js → 3ab25279aaa30f035038.js} +1 -1
  112. package/assets/esri/core/workers/chunks/3acc1299c1382c3b034d.js +1 -0
  113. package/assets/esri/core/workers/chunks/{abcda435bc83ef4240f9.js → 3b499cfc89c8f87cdb20.js} +1 -1
  114. package/assets/esri/core/workers/chunks/{c2684fcde2923c9830e0.js → 42c4d0c1c08bf111e5a4.js} +1 -1
  115. package/assets/esri/core/workers/chunks/430802108b63194b7ddd.js +2 -0
  116. package/assets/esri/core/workers/chunks/445b0ca1b70730c9a2e6.js +1 -0
  117. package/assets/esri/core/workers/chunks/49c6dc487714f9cd55c7.js +1 -0
  118. package/assets/esri/core/workers/chunks/{70e0ead69a722fd964b8.js → 49e8ff5ed079a9e3be4b.js} +1 -1
  119. package/assets/esri/core/workers/chunks/{24673aac70d6c949b6fa.js → 4bf2cc4d092601ff2b86.js} +1 -1
  120. package/assets/esri/core/workers/chunks/{72be81c1394285b51ed3.js → 4bfd63f3cf9208eb839b.js} +225 -229
  121. package/assets/esri/core/workers/chunks/501df20cdd09384f6ee2.js +1 -0
  122. package/assets/esri/core/workers/chunks/510a190a6f0a60ae38c3.js +1 -0
  123. package/assets/esri/core/workers/chunks/{89a785f8b61263e2d592.js → 552c92b01a5f02a115c5.js} +1 -1
  124. package/assets/esri/core/workers/chunks/564fdf0d663b773806cc.js +1 -0
  125. package/assets/esri/core/workers/chunks/{d9270f4935eb0d044db3.js → 57328c206f1e699ac06f.js} +1 -1
  126. package/assets/esri/core/workers/chunks/{50951fb13013b11b8a24.js → 58e62c8ce1292f4d3b06.js} +1 -1
  127. package/assets/esri/core/workers/chunks/{434c5b54e89ace974cbd.js → 5965a947f68b707eaa6b.js} +2 -2
  128. package/assets/esri/core/workers/chunks/5aee7739afb5160d4ace.js +1 -0
  129. package/assets/esri/core/workers/chunks/5b9925f23d4b10a7087e.js +1 -0
  130. package/assets/esri/core/workers/chunks/5f79ba5639067f734791.js +1 -0
  131. package/assets/esri/core/workers/chunks/{b013b70e40dfb6ce013e.js → 60c61f34733063730386.js} +1 -1
  132. package/assets/esri/core/workers/chunks/62b1f94f4fa978d4da48.js +1 -0
  133. package/assets/esri/core/workers/chunks/6b264006b96cbf93d8ed.js +1 -0
  134. package/assets/esri/core/workers/chunks/6b9d29ca568590358478.js +1 -0
  135. package/assets/esri/core/workers/chunks/6c25c929bcde7e3a2af1.js +1 -0
  136. package/assets/esri/core/workers/chunks/{7c5310e0104c22da0261.js → 6c7cb7974969e3167f2b.js} +1 -1
  137. package/assets/esri/core/workers/chunks/6c82cbcd504c711a7450.js +1 -0
  138. package/assets/esri/core/workers/chunks/{e98b785e8f4edc8bd3ff.js → 6eceeca33fac8e900d9d.js} +1 -1
  139. package/assets/esri/core/workers/chunks/7232fc11b23777b6be94.js +1 -0
  140. package/assets/esri/core/workers/chunks/726ca458b98bb4334431.js +1 -0
  141. package/assets/esri/core/workers/chunks/785206da3962ba23de16.js +1 -0
  142. package/assets/esri/core/workers/chunks/{1c70620f40be02f532b5.js → 7b169eabafcc03bfaee6.js} +1 -1
  143. package/assets/esri/core/workers/chunks/7bbc3d22383388d11345.js +1 -0
  144. package/assets/esri/core/workers/chunks/{082069f80eee0407b828.js → 7edf57e31ff07af9032b.js} +1 -1
  145. package/assets/esri/core/workers/chunks/7f2ac03efaa4a4898ba2.js +2 -0
  146. package/assets/esri/core/workers/chunks/83ed38468e316302b157.js +1 -0
  147. package/assets/esri/core/workers/chunks/85c876ee9e63d5732937.js +1 -0
  148. package/assets/esri/core/workers/chunks/8f0ecf4d06ec7b67d4ed.js +1 -0
  149. package/assets/esri/core/workers/chunks/8f1c5f5e70d4b33d021d.js +1 -0
  150. package/assets/esri/core/workers/chunks/{a1916bca1af5c65be4b0.js → 90ab3c47138875070a53.js} +1 -1
  151. package/assets/esri/core/workers/chunks/{10389c87d9c6a43363ce.js → 917dec9c004218c58950.js} +1 -1
  152. package/assets/esri/core/workers/chunks/91f451b98e0f696043df.js +1 -0
  153. package/assets/esri/core/workers/chunks/943d0026ca4d49eb3ac2.js +1 -0
  154. package/assets/esri/core/workers/chunks/982a396bd4fffa62e911.js +1 -0
  155. package/assets/esri/core/workers/chunks/98a5327fd96d9542b39f.js +1 -0
  156. package/assets/esri/core/workers/chunks/9b9a60f1e0c48aa701f0.js +1 -0
  157. package/assets/esri/core/workers/chunks/9d92e6f0beed9a8580fa.js +1 -0
  158. package/assets/esri/core/workers/chunks/9df379041e8860fe7f01.js +1 -0
  159. package/assets/esri/core/workers/chunks/{847781aefed049493444.js → 9f760dc4492a03e0504c.js} +1 -1
  160. package/assets/esri/core/workers/chunks/{013c9cc198736a72f7f2.js → 9fb46ccd4be4c3b61c31.js} +1 -1
  161. package/assets/esri/core/workers/chunks/{1e8ceb4a4b28625236e3.js → a42505b978d54d36d3b6.js} +1 -1
  162. package/assets/esri/core/workers/chunks/{bfbe6ff786435fe1e7cf.js → a86a4e550a92f770d6d5.js} +1 -1
  163. package/assets/esri/core/workers/chunks/{a34eee4c9d4c1c2b8c49.js → ab60f3bc18b5ea504f70.js} +1 -1
  164. package/assets/esri/core/workers/chunks/{18b9ec6ba7a6c0fa2ac6.js → b1880d9f5eafd50ce84b.js} +1 -1
  165. package/assets/esri/core/workers/chunks/{777fc163530448eea13e.js → b4222152efaf73b37b53.js} +1 -1
  166. package/assets/esri/core/workers/chunks/b6ca73c1384f07b30b74.js +1 -0
  167. package/assets/esri/core/workers/chunks/bb4cbf6b7c35e8c78cc7.js +1 -0
  168. package/assets/esri/core/workers/chunks/bb831d23422acfb00ae2.js +1 -0
  169. package/assets/esri/core/workers/chunks/bdcca906fdfb8e179abb.js +2 -0
  170. package/assets/esri/core/workers/chunks/c0855be20ffcd52c7026.js +1 -0
  171. package/assets/esri/core/workers/chunks/c5ceceb0683671f92efa.js +1 -0
  172. package/assets/esri/core/workers/chunks/c5e288d57bacb8451e2d.js +2 -0
  173. package/assets/esri/core/workers/chunks/{a0f742fd947104662d37.js → c6277236ec47586dca00.js} +1 -1
  174. package/assets/esri/core/workers/chunks/{3be33a129d3ae7dc4f06.js → caf38cf4d8542fb11c46.js} +1 -1
  175. package/assets/esri/core/workers/chunks/{10d33b4f248864225f85.js → cd0f5cd0fefe7f49e3d8.js} +1 -1
  176. package/assets/esri/core/workers/chunks/{b92b7d6c1e693c97a3eb.js → d1f54b0079fb71a15612.js} +1 -1
  177. package/assets/esri/core/workers/chunks/{48a53bfeef11c32dadcc.js → d25fb32a233d2128afbe.js} +1 -1
  178. package/assets/esri/core/workers/chunks/d5e3f8e5b8d2576d3cb3.js +2 -0
  179. package/assets/esri/core/workers/chunks/d629708bf23da24ee523.js +1 -0
  180. package/assets/esri/core/workers/chunks/{21d4219844ae5654618b.js → d926bffc3ff9f87e9081.js} +1 -1
  181. package/assets/esri/core/workers/chunks/db141122060d8d9b38da.js +1 -0
  182. package/assets/esri/core/workers/chunks/dc1944a7601b518a9c48.js +1 -0
  183. package/assets/esri/core/workers/chunks/{573ee2e59d26bc75201e.js → dc8670f32bb0b93c1473.js} +1 -1
  184. package/assets/esri/core/workers/chunks/e1f2b07be33e33117313.js +1 -0
  185. package/assets/esri/core/workers/chunks/e52f30dfb7c82491a7f2.js +1 -0
  186. package/assets/esri/core/workers/chunks/e5906b28b981199fd489.js +1 -0
  187. package/assets/esri/core/workers/chunks/{b3293ee9f221423a6825.js → e611e452f04a9ce64cf8.js} +1 -1
  188. package/assets/esri/core/workers/chunks/e755075ac2e02e881fad.js +1 -0
  189. package/assets/esri/core/workers/chunks/{058d4c927486a361e633.js → ea9e770efc85594e4dd2.js} +1 -1
  190. package/assets/esri/core/workers/chunks/{0f20c458f873564faff2.js → ec4f887153c24ab83f2c.js} +1 -1
  191. package/assets/esri/core/workers/chunks/{707b4ae689c4329cad3b.js → f40ceb5e03c699605302.js} +1 -1
  192. package/assets/esri/core/workers/chunks/{547a073c789fdfb78310.js → f42243c62dd0b6993816.js} +1 -1
  193. package/assets/esri/core/workers/chunks/{a49147203e55609630cc.js → f453dc4a075d2f900c7d.js} +1 -1
  194. package/assets/esri/core/workers/chunks/f465fb26541372fdc908.js +2 -0
  195. package/assets/esri/core/workers/chunks/f91cab9904020cf25d50.js +1 -0
  196. package/assets/esri/core/workers/chunks/f9b29d2ce1cd31c0fce1.js +1 -0
  197. package/assets/esri/core/workers/chunks/fdf5ceffec9d5185953d.js +1 -0
  198. package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +1 -0
  199. package/assets/esri/themes/base/widgets/_Bookmarks.scss +1 -0
  200. package/assets/esri/themes/dark/main.css +1 -1
  201. package/assets/esri/themes/light/main.css +1 -1
  202. package/assets/esri/themes/light/view.css +1 -1
  203. package/assets/esri/views/3d/environment/resources/milkyway-band.ktx2 +0 -0
  204. package/chunks/ChapmanAtmosphere.glsl.js +1 -1
  205. package/chunks/Component.glsl.js +57 -56
  206. package/chunks/DeepSky.glsl.js +1 -1
  207. package/chunks/DefaultMaterial.glsl.js +19 -23
  208. package/chunks/FocusArea.glsl.js +1 -1
  209. package/chunks/GaussianSplat.glsl.js +13 -11
  210. package/chunks/GaussianSplatDepth.glsl.js +3 -3
  211. package/chunks/GlobalIllumination.glsl.js +1 -1
  212. package/chunks/Haze.glsl.js +1 -1
  213. package/chunks/Path.glsl.js +21 -24
  214. package/chunks/RealisticTree.glsl.js +42 -41
  215. package/chunks/RibbonLine.glsl.js +72 -61
  216. package/chunks/SimpleAtmosphere.glsl.js +1 -1
  217. package/chunks/Terrain.glsl.js +25 -25
  218. package/chunks/Water.glsl.js +4 -4
  219. package/config.js +1 -1
  220. package/core/units.js +1 -1
  221. package/geometry/Extent.js +1 -1
  222. package/geometry/operators/affineTransformOperator.d.ts +9 -3
  223. package/geometry/operators/affineTransformOperator.js +1 -1
  224. package/geometry/operators/alphaShapeOperator.d.ts +14 -4
  225. package/geometry/operators/alphaShapeOperator.js +1 -1
  226. package/geometry/operators/areaOperator.d.ts +11 -3
  227. package/geometry/operators/areaOperator.js +1 -1
  228. package/geometry/operators/autoCompleteOperator.d.ts +6 -2
  229. package/geometry/operators/autoCompleteOperator.js +1 -1
  230. package/geometry/operators/boundaryOperator.d.ts +9 -3
  231. package/geometry/operators/boundaryOperator.js +1 -1
  232. package/geometry/operators/bufferOperator.d.ts +19 -5
  233. package/geometry/operators/bufferOperator.js +1 -1
  234. package/geometry/operators/centroidOperator.d.ts +6 -2
  235. package/geometry/operators/centroidOperator.js +1 -1
  236. package/geometry/operators/clipOperator.d.ts +9 -3
  237. package/geometry/operators/clipOperator.js +1 -1
  238. package/geometry/operators/containsOperator.d.ts +9 -3
  239. package/geometry/operators/containsOperator.js +1 -1
  240. package/geometry/operators/convexHullOperator.d.ts +17 -5
  241. package/geometry/operators/convexHullOperator.js +1 -1
  242. package/geometry/operators/crossesOperator.d.ts +9 -3
  243. package/geometry/operators/crossesOperator.js +1 -1
  244. package/geometry/operators/cutOperator.d.ts +6 -2
  245. package/geometry/operators/cutOperator.js +1 -1
  246. package/geometry/operators/densifyOperator.d.ts +14 -4
  247. package/geometry/operators/densifyOperator.js +1 -1
  248. package/geometry/operators/differenceOperator.d.ts +9 -3
  249. package/geometry/operators/differenceOperator.js +1 -1
  250. package/geometry/operators/disjointOperator.d.ts +9 -3
  251. package/geometry/operators/disjointOperator.js +1 -1
  252. package/geometry/operators/distanceOperator.d.ts +11 -3
  253. package/geometry/operators/distanceOperator.js +1 -1
  254. package/geometry/operators/equalsOperator.d.ts +9 -3
  255. package/geometry/operators/equalsOperator.js +1 -1
  256. package/geometry/operators/extendOperator.d.ts +11 -3
  257. package/geometry/operators/extendOperator.js +1 -1
  258. package/geometry/operators/generalizeOperator.d.ts +14 -4
  259. package/geometry/operators/generalizeOperator.js +1 -1
  260. package/geometry/operators/geodesicBufferOperator.d.ts +25 -7
  261. package/geometry/operators/geodesicBufferOperator.js +1 -1
  262. package/geometry/operators/geodesicProximityOperator.d.ts +28 -8
  263. package/geometry/operators/geodesicProximityOperator.js +1 -1
  264. package/geometry/operators/geodeticAreaOperator.d.ts +17 -5
  265. package/geometry/operators/geodeticAreaOperator.js +1 -1
  266. package/geometry/operators/geodeticDensifyOperator.d.ts +20 -6
  267. package/geometry/operators/geodeticDensifyOperator.js +1 -1
  268. package/geometry/operators/geodeticDistanceOperator.d.ts +17 -5
  269. package/geometry/operators/geodeticDistanceOperator.js +1 -1
  270. package/geometry/operators/geodeticLengthOperator.d.ts +17 -5
  271. package/geometry/operators/geodeticLengthOperator.js +1 -1
  272. package/geometry/operators/geodeticUtilsOperator.d.ts +17 -5
  273. package/geometry/operators/geodeticUtilsOperator.js +1 -1
  274. package/geometry/operators/graphicBufferOperator.d.ts +11 -3
  275. package/geometry/operators/graphicBufferOperator.js +1 -1
  276. package/geometry/operators/integrateOperator.d.ts +6 -2
  277. package/geometry/operators/integrateOperator.js +1 -1
  278. package/geometry/operators/intersectionOperator.d.ts +12 -4
  279. package/geometry/operators/intersectionOperator.js +1 -1
  280. package/geometry/operators/intersectsOperator.d.ts +9 -3
  281. package/geometry/operators/intersectsOperator.js +1 -1
  282. package/geometry/operators/isNearOperator.d.ts +11 -3
  283. package/geometry/operators/isNearOperator.js +1 -1
  284. package/geometry/operators/json/bufferOperator.js +1 -1
  285. package/geometry/operators/json/containsOperator.js +1 -1
  286. package/geometry/operators/json/convexHullOperator.js +1 -1
  287. package/geometry/operators/json/crossesOperator.js +1 -1
  288. package/geometry/operators/json/disjointOperator.js +1 -1
  289. package/geometry/operators/json/generalizeOperator.js +1 -1
  290. package/geometry/operators/json/geodesicBufferOperator.js +1 -1
  291. package/geometry/operators/json/graphicBufferOperator.js +1 -1
  292. package/geometry/operators/json/intersectionOperator.js +1 -1
  293. package/geometry/operators/json/intersectsOperator.js +1 -1
  294. package/geometry/operators/json/lengthOperator.js +1 -1
  295. package/geometry/operators/json/offsetOperator.js +1 -1
  296. package/geometry/operators/json/overlapsOperator.js +1 -1
  297. package/geometry/operators/json/projectOperator.js +1 -1
  298. package/geometry/operators/json/simplifyOperator.js +1 -1
  299. package/geometry/operators/json/simplifyOperatorOGC.js +1 -1
  300. package/geometry/operators/json/touchesOperator.js +1 -1
  301. package/geometry/operators/json/unionOperator.js +1 -1
  302. package/geometry/operators/json/withinOperator.js +1 -1
  303. package/geometry/operators/labelPointOperator.d.ts +9 -3
  304. package/geometry/operators/labelPointOperator.js +1 -1
  305. package/geometry/operators/lengthOperator.d.ts +11 -3
  306. package/geometry/operators/lengthOperator.js +1 -1
  307. package/geometry/operators/linesToPolygonsOperator.d.ts +6 -2
  308. package/geometry/operators/linesToPolygonsOperator.js +1 -1
  309. package/geometry/operators/locateBetweenOperator.d.ts +6 -2
  310. package/geometry/operators/locateBetweenOperator.js +1 -1
  311. package/geometry/operators/minimumBoundingCircleOperator.d.ts +14 -4
  312. package/geometry/operators/minimumBoundingCircleOperator.js +1 -1
  313. package/geometry/operators/multiPartToSinglePartOperator.d.ts +11 -3
  314. package/geometry/operators/multiPartToSinglePartOperator.js +1 -1
  315. package/geometry/operators/offsetOperator.d.ts +14 -4
  316. package/geometry/operators/offsetOperator.js +1 -1
  317. package/geometry/operators/overlapsOperator.d.ts +9 -3
  318. package/geometry/operators/overlapsOperator.js +1 -1
  319. package/geometry/operators/polygonOverlayOperator.d.ts +11 -3
  320. package/geometry/operators/polygonOverlayOperator.js +1 -1
  321. package/geometry/operators/polygonSlicerOperator.d.ts +22 -6
  322. package/geometry/operators/polygonSlicerOperator.js +1 -1
  323. package/geometry/operators/projectOperator.d.ts +15 -5
  324. package/geometry/operators/projectOperator.js +1 -1
  325. package/geometry/operators/proximityOperator.d.ts +22 -6
  326. package/geometry/operators/proximityOperator.js +1 -1
  327. package/geometry/operators/relateOperator.d.ts +12 -4
  328. package/geometry/operators/relateOperator.js +1 -1
  329. package/geometry/operators/reshapeOperator.d.ts +6 -2
  330. package/geometry/operators/reshapeOperator.js +1 -1
  331. package/geometry/operators/shapePreservingProjectOperator.d.ts +20 -6
  332. package/geometry/operators/shapePreservingProjectOperator.js +1 -1
  333. package/geometry/operators/simplifyOGCOperator.d.ts +3 -1
  334. package/geometry/operators/simplifyOGCOperator.js +1 -1
  335. package/geometry/operators/simplifyOperator.d.ts +12 -4
  336. package/geometry/operators/simplifyOperator.js +1 -1
  337. package/geometry/operators/singlePartToMultiPartOperator.js +1 -1
  338. package/geometry/operators/support/deprecatedOperator.js +2 -0
  339. package/geometry/operators/symmetricDifferenceOperator.d.ts +9 -3
  340. package/geometry/operators/symmetricDifferenceOperator.js +1 -1
  341. package/geometry/operators/touchesOperator.d.ts +9 -3
  342. package/geometry/operators/touchesOperator.js +1 -1
  343. package/geometry/operators/unionOperator.d.ts +9 -3
  344. package/geometry/operators/unionOperator.js +1 -1
  345. package/geometry/operators/withinOperator.d.ts +9 -3
  346. package/geometry/operators/withinOperator.js +1 -1
  347. package/geometry/support/heightModelInfoUtils.js +1 -1
  348. package/geometry/support/intersectsBase.js +1 -1
  349. package/geometry/support/normalizeUtils.js +1 -1
  350. package/kernel.js +1 -1
  351. package/layers/GaussianSplatLayer.js +1 -1
  352. package/layers/ImageryTileLayer.js +1 -1
  353. package/layers/IntegratedMesh3DTilesLayer.js +1 -1
  354. package/layers/IntegratedMeshLayer.js +1 -1
  355. package/layers/SceneLayer.js +1 -1
  356. package/layers/buildingSublayers/BuildingComponentSublayer.js +1 -1
  357. package/layers/list/BasemapItemCollection.d.ts +40 -14
  358. package/layers/list/BasemapItemCollection.js +1 -1
  359. package/layers/list/CatalogItemCollection.d.ts +29 -11
  360. package/layers/list/CatalogItemCollection.js +1 -1
  361. package/layers/list/Item.d.ts +66 -122
  362. package/layers/list/Item.js +1 -1
  363. package/layers/list/ItemPanel.d.ts +23 -34
  364. package/layers/list/LayerItemCollection.d.ts +33 -43
  365. package/layers/list/LayerItemCollection.js +1 -1
  366. package/layers/list/TableItem.d.ts +42 -53
  367. package/layers/list/TableItem.js +1 -1
  368. package/layers/list/TableItemCollection.d.ts +25 -55
  369. package/layers/list/TableItemCollection.js +1 -1
  370. package/layers/list/TableItemPanel.d.ts +25 -23
  371. package/layers/list/support/layerListUtils.js +1 -1
  372. package/layers/list/types.d.ts +158 -37
  373. package/layers/mixins/TiledImagery.d.ts +6 -0
  374. package/layers/mixins/TiledImagery.js +1 -1
  375. package/layers/raster/datasets/ImageServerRaster.js +1 -1
  376. package/layers/raster/datasets/RasterFactory.js +1 -1
  377. package/layers/support/ElevationQuery.js +1 -1
  378. package/layers/support/FeatureFilter.d.ts +2 -1
  379. package/layers/support/FeatureFilter.js +1 -1
  380. package/layers/support/domainUtils.d.ts +2 -0
  381. package/layers/support/domainUtils.js +1 -1
  382. package/layers/support/fieldUtils.d.ts +10 -0
  383. package/layers/support/fieldUtils.js +1 -1
  384. package/package.json +6 -6
  385. package/rest/knowledgeGraph/GraphDeleteNamedTypeResult.d.ts +0 -1
  386. package/support/revision.js +1 -1
  387. package/symbols/LineStyleMarker3D.d.ts +3 -4
  388. package/symbols/LineSymbol3D.d.ts +19 -2
  389. package/symbols/LineSymbol3D.js +1 -1
  390. package/symbols/LineSymbol3DLayer.d.ts +22 -9
  391. package/symbols/Symbol3DLayer.d.ts +1 -1
  392. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  393. package/symbols/cim/CIMSymbolHelper.js +1 -1
  394. package/symbols/cim/OverrideHelper.js +1 -1
  395. package/symbols/cim/Rasterizer.js +1 -1
  396. package/symbols/cim/cimAnalyzer.js +1 -1
  397. package/symbols/cim/dashUtils.js +2 -0
  398. package/symbols/cim/effects/EffectDashes.js +1 -1
  399. package/symbols/cim/fromCIMFontStyle.js +2 -0
  400. package/symbols/cim/richTextUtils.js +1 -1
  401. package/symbols/cim/utils.js +1 -1
  402. package/symbols/patterns/LinePattern3D.d.ts +10 -4
  403. package/symbols/patterns/LinePattern3D.js +1 -1
  404. package/symbols/patterns/LineTemplatePattern3D.d.ts +48 -0
  405. package/symbols/patterns/LineTemplatePattern3D.js +2 -0
  406. package/symbols/patterns/utils.js +1 -1
  407. package/symbols/support/Symbol3DOutline.js +1 -1
  408. package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
  409. package/views/2d/engine/webgl/FeatureDisplayList.js +1 -1
  410. package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
  411. package/views/2d/engine/webgl/GlyphWorker.js +1 -1
  412. package/views/2d/engine/webgl/TextureManager.js +1 -1
  413. package/views/2d/engine/webgl/decorGlyphRect.js +2 -0
  414. package/views/2d/engine/webgl/definitions.js +1 -1
  415. package/views/2d/engine/webgl/effects/highlight/HighlightGradient.js +1 -1
  416. package/views/2d/engine/webgl/effects/highlight/MultiHighlightGradient.js +1 -1
  417. package/views/2d/engine/webgl/hashMosaic.js +2 -0
  418. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  419. package/views/2d/engine/webgl/shaderGraph/techniques/animated/clipping.js +2 -0
  420. package/views/2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js +1 -1
  421. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  422. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ShaderHighlight.js +1 -1
  423. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/utils.js +1 -1
  424. package/views/2d/input/MapViewInputManager.js +1 -1
  425. package/views/2d/input/handlers/KeyPan.js +1 -1
  426. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  427. package/views/2d/layers/GraphicsLayerView2D.js +1 -1
  428. package/views/2d/layers/ImageryLayerView2D.js +1 -1
  429. package/views/2d/layers/LayerView2D.js +1 -1
  430. package/views/2d/layers/MapImageLayerView2D.js +1 -1
  431. package/views/2d/layers/MapNotesLayerView2D.js +1 -1
  432. package/views/2d/layers/RouteLayerView2D.js +1 -1
  433. package/views/2d/layers/TileLayerView2D.js +1 -1
  434. package/views/2d/layers/features/FeatureContainer.js +1 -1
  435. package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
  436. package/views/2d/layers/features/Processor.js +1 -1
  437. package/views/2d/layers/features/processor/AProcessorStrategy.js +1 -1
  438. package/views/2d/layers/features/processor/AggregateStrategy.js +1 -1
  439. package/views/2d/layers/features/processor/FeatureUpdateStrategy.js +1 -1
  440. package/views/2d/layers/features/processor/bins/BinLevelState.js +1 -1
  441. package/views/2d/layers/features/processor/clusters/ClusterLevelState.js +1 -1
  442. package/views/2d/layers/features/processor/tracks/TrackLevelState.js +1 -1
  443. package/views/2d/layers/features/schema/processor/SimpleProcessorSchema.js +1 -1
  444. package/views/2d/layers/features/sources/FeatureSource.js +1 -1
  445. package/views/2d/layers/features/support/AttributeStore.js +1 -1
  446. package/views/2d/layers/graphics/AGraphicContainer.js +1 -1
  447. package/views/2d/layers/graphics/GraphicBoundsRenderer.js +1 -1
  448. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  449. package/views/2d/layers/support/FeatureCommandQueue.js +1 -1
  450. package/views/2d/layers/support/FilterSchema.js +2 -0
  451. package/views/2d/layers/support/HighlightRegistry.js +2 -0
  452. package/views/2d/layers/support/annodime/DimensionInfo.js +1 -1
  453. package/views/2d/layers/support/annodime/dimensionUtils.js +1 -1
  454. package/views/2d/layers/support/util.js +1 -1
  455. package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
  456. package/views/3d/input/SceneInputManager.js +1 -1
  457. package/views/3d/input/handlers/KeyboardNavigation.js +1 -1
  458. package/views/3d/input/handlers/ground/GroundNavigation.js +1 -1
  459. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  460. package/views/3d/layers/I3SMeshView3D.js +1 -1
  461. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  462. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  463. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  464. package/views/3d/layers/graphics/Graphics3DFeatureStore.js +1 -1
  465. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  466. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  467. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  468. package/views/3d/layers/support/Tiles3DMeshIntersectionHandler.js +1 -1
  469. package/views/3d/navigation/Navigation3D.d.ts +16 -0
  470. package/views/3d/navigation/Navigation3D.js +2 -0
  471. package/views/3d/navigation/modes/DefaultNavigationMode3D.d.ts +4 -0
  472. package/views/3d/navigation/modes/DefaultNavigationMode3D.js +2 -0
  473. package/views/3d/navigation/modes/GroundNavigationMode3D.d.ts +4 -0
  474. package/views/3d/navigation/modes/GroundNavigationMode3D.js +2 -0
  475. package/views/3d/navigation/modes/NavigationMode3D.d.ts +4 -0
  476. package/views/3d/navigation/modes/NavigationMode3D.js +2 -0
  477. package/views/3d/navigation/modes/NavigationMode3DUnion.d.ts +5 -0
  478. package/views/3d/state/ConstraintsManager.js +1 -1
  479. package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
  480. package/views/3d/support/MemoryController.js +1 -1
  481. package/views/3d/support/QualityProfile.js +1 -1
  482. package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
  483. package/views/3d/support/hitTest.js +1 -1
  484. package/views/3d/terrain/ExtentHelper.js +1 -1
  485. package/views/3d/webgl-engine/collections/Component/ComponentDrawParameters.js +1 -1
  486. package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
  487. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  488. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +3 -3
  489. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +3 -3
  490. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +4 -4
  491. package/views/3d/webgl-engine/core/shaderLibrary/output/getEmissions.glsl.js +2 -2
  492. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +57 -58
  493. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +5 -3
  494. package/views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js +2 -2
  495. package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +7 -6
  496. package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +3 -3
  497. package/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js +5 -10
  498. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +10 -48
  499. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js +16 -22
  500. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +6 -6
  501. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadow.glsl.js +5 -3
  502. package/views/3d/webgl-engine/core/shaderLibrary/shading/pbrGlobals.glsl.js +19 -0
  503. package/views/3d/webgl-engine/core/shaderLibrary/shading/pbrShadingInfo.glsl.js +24 -0
  504. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +3 -3
  505. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +2 -2
  506. package/views/3d/webgl-engine/effects/AmbientIllumination.js +2 -0
  507. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  508. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  509. package/views/3d/webgl-engine/effects/glow/BlurEmission.js +1 -1
  510. package/views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js +4 -4
  511. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  512. package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
  513. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  514. package/views/3d/webgl-engine/lib/EmissionComposite.js +1 -1
  515. package/views/3d/webgl-engine/lib/GaussianSplatDepthRenderer.js +1 -1
  516. package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
  517. package/views/3d/webgl-engine/lib/LineMaterial.js +1 -1
  518. package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
  519. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  520. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  521. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  522. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  523. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  524. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  525. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  526. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  527. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  528. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  529. package/views/3d/webgl-engine/materials/VisualVariablePassParameters.js +1 -1
  530. package/views/3d/webgl-engine/materials/lineStippleUtils.js +1 -1
  531. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  532. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  533. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  534. package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +23 -22
  535. package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
  536. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  537. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  538. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  539. package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechniqueConfiguration.js +1 -1
  540. package/views/MapView.d.ts +1 -0
  541. package/views/PopupView.js +1 -1
  542. package/views/SceneView.d.ts +1 -0
  543. package/views/SceneView.js +1 -1
  544. package/views/View.js +1 -1
  545. package/views/layers/FeatureLikeLayerView.js +1 -1
  546. package/views/support/DefaultsFromMap.js +1 -1
  547. package/widgets/BasemapLayerList.js +1 -1
  548. package/widgets/BatchAttributeForm/ReactiveContingentValuesManager.js +1 -1
  549. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  550. package/widgets/BatchAttributeForm/inputs/support/MultipleChoiceController.js +1 -1
  551. package/widgets/BatchAttributeForm.js +1 -1
  552. package/widgets/Bookmarks.js +1 -1
  553. package/widgets/FeatureForm/featureFormUtils.js +1 -1
  554. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  555. package/widgets/LayerList/LayerListViewModel.d.ts +1 -0
  556. package/widgets/LayerList/LayerListViewModel.js +1 -1
  557. package/widgets/LayerList/ListItem.d.ts +4 -0
  558. package/widgets/LayerList/ListItemPanel.d.ts +3 -0
  559. package/widgets/OrientedImageryViewer/types.d.ts +2 -2
  560. package/widgets/OrientedImageryViewer.d.ts +20 -1
  561. package/widgets/OrientedImageryViewer.js +1 -1
  562. package/widgets/Search/LocatorSearchSource.d.ts +4 -3
  563. package/widgets/Sketch/SketchViewModel.js +1 -1
  564. package/widgets/support/forms/formUtils.d.ts +5 -0
  565. package/widgets/support/forms/formUtils.js +1 -1
  566. package/widgets/support/forms/types.d.ts +7 -1
  567. package/widgets/support/iconUtils.js +1 -1
  568. package/assets/esri/core/workers/chunks/03601be8b0763f82e88f.js +0 -1
  569. package/assets/esri/core/workers/chunks/075eb62465edb9cbf907.js +0 -1
  570. package/assets/esri/core/workers/chunks/0bff8d589312be6588fe.js +0 -1
  571. package/assets/esri/core/workers/chunks/0de90b1ad8118457fd5a.js +0 -1
  572. package/assets/esri/core/workers/chunks/0e1a067ab243900d0371.js +0 -1
  573. package/assets/esri/core/workers/chunks/0ee6109e6578395a7900.js +0 -1
  574. package/assets/esri/core/workers/chunks/0ee7376c29e0fd8f676c.js +0 -1
  575. package/assets/esri/core/workers/chunks/0ff13f7a18b0123d253e.js +0 -1
  576. package/assets/esri/core/workers/chunks/1082bb0858585bd4fa21.js +0 -2
  577. package/assets/esri/core/workers/chunks/13551987fbeaae154df8.js +0 -1
  578. package/assets/esri/core/workers/chunks/19ac6f4664f97fb3821c.js +0 -1
  579. package/assets/esri/core/workers/chunks/1ec01fd6330d011c76d6.js +0 -1
  580. package/assets/esri/core/workers/chunks/262052dfaec3af8a58b9.js +0 -1
  581. package/assets/esri/core/workers/chunks/2c01477b69c38f691e19.js +0 -1
  582. package/assets/esri/core/workers/chunks/2e2349387a2b9903f13c.js +0 -2
  583. package/assets/esri/core/workers/chunks/307297e025eed110095f.js +0 -1
  584. package/assets/esri/core/workers/chunks/33422dca6f4bcaa0ea74.js +0 -1
  585. package/assets/esri/core/workers/chunks/33e583166ab3943ecf0e.js +0 -1
  586. package/assets/esri/core/workers/chunks/349e9f3d3e3267d02988.js +0 -1
  587. package/assets/esri/core/workers/chunks/37ae52c71bf9c70fbb92.js +0 -1
  588. package/assets/esri/core/workers/chunks/3daddcb106a7009c5a70.js +0 -1
  589. package/assets/esri/core/workers/chunks/3de6e54b6ed0feae1940.js +0 -1
  590. package/assets/esri/core/workers/chunks/3ffc852db1a820ed143b.js +0 -1
  591. package/assets/esri/core/workers/chunks/411bbdecba340df11d95.js +0 -2
  592. package/assets/esri/core/workers/chunks/4490dd8bae0dd2769d99.js +0 -1
  593. package/assets/esri/core/workers/chunks/476535cfb06ced74d611.js +0 -2
  594. package/assets/esri/core/workers/chunks/4c088c26d5d546c95c90.js +0 -1
  595. package/assets/esri/core/workers/chunks/54bb3678570ca032f051.js +0 -1
  596. package/assets/esri/core/workers/chunks/56163189fbe63aa11e94.js +0 -1
  597. package/assets/esri/core/workers/chunks/571cf99c3eab8e517542.js +0 -1
  598. package/assets/esri/core/workers/chunks/5830deda121e4c95d199.js +0 -1
  599. package/assets/esri/core/workers/chunks/58e4aecabca047f1d229.js +0 -1
  600. package/assets/esri/core/workers/chunks/5c8f423812a23c02c1fd.js +0 -1
  601. package/assets/esri/core/workers/chunks/5e56a004b4407b8066eb.js +0 -1
  602. package/assets/esri/core/workers/chunks/5eb726317b6602f1e206.js +0 -1
  603. package/assets/esri/core/workers/chunks/6010799e05d239073de0.js +0 -1
  604. package/assets/esri/core/workers/chunks/69921d068add041b5dcb.js +0 -1
  605. package/assets/esri/core/workers/chunks/6df29716f75696434807.js +0 -1
  606. package/assets/esri/core/workers/chunks/6e2075bd4832ff0db68c.js +0 -1
  607. package/assets/esri/core/workers/chunks/7608de0d942b4c16b2f6.js +0 -1
  608. package/assets/esri/core/workers/chunks/7737ab739eba6d81282d.js +0 -1
  609. package/assets/esri/core/workers/chunks/7d9468e38f3bf006f86e.js +0 -1
  610. package/assets/esri/core/workers/chunks/7efc51324cfc8e08c756.js +0 -1
  611. package/assets/esri/core/workers/chunks/84dc2afd89263a311b81.js +0 -1
  612. package/assets/esri/core/workers/chunks/852649460d664b0a1a1d.js +0 -1
  613. package/assets/esri/core/workers/chunks/a322afbb48898ce35851.js +0 -1
  614. package/assets/esri/core/workers/chunks/ab332bd411d6c7d4190c.js +0 -1
  615. package/assets/esri/core/workers/chunks/b7809ef3e1dabd921339.js +0 -1
  616. package/assets/esri/core/workers/chunks/b82b523b6837ed1f28d3.js +0 -2
  617. package/assets/esri/core/workers/chunks/bc9b96a539f28afcb8cb.js +0 -1
  618. package/assets/esri/core/workers/chunks/be69e2dda75b079362b2.js +0 -1
  619. package/assets/esri/core/workers/chunks/bf9eba555aebca2c132b.js +0 -1
  620. package/assets/esri/core/workers/chunks/c18de0f6cbeecee4ce34.js +0 -1
  621. package/assets/esri/core/workers/chunks/c7b762bae945f383c723.js +0 -1
  622. package/assets/esri/core/workers/chunks/c9df18e9ff7367a004b6.js +0 -1
  623. package/assets/esri/core/workers/chunks/d33d08cb6856cd2eb35e.js +0 -1
  624. package/assets/esri/core/workers/chunks/e688e6e816824b53a25e.js +0 -1
  625. package/assets/esri/core/workers/chunks/ea068c797e3e462f4518.js +0 -1
  626. package/assets/esri/core/workers/chunks/eaf1d38f09744b7e84f5.js +0 -1
  627. package/assets/esri/core/workers/chunks/ef24fd6c0322e5de9fdf.js +0 -2
  628. package/assets/esri/core/workers/chunks/f219ba010c480bb75684.js +0 -1
  629. package/assets/esri/core/workers/chunks/f5e8ccbd6b4c0a386903.js +0 -1
  630. package/assets/esri/core/workers/chunks/f60d5ce49c173d5381ec.js +0 -1
  631. package/assets/esri/core/workers/chunks/f834aa732c3f06525089.js +0 -1
  632. package/assets/esri/core/workers/chunks/f9e5740b05de24ba81be.js +0 -1
  633. package/assets/esri/core/workers/chunks/fae14e30fa7d81bf706e.js +0 -1
  634. package/assets/esri/core/workers/chunks/fb6f1b562ee0983c8c6e.js +0 -1
  635. package/assets/esri/core/workers/chunks/fc1658eae7b312502fab.js +0 -1
  636. package/assets/esri/core/workers/chunks/fc622f9e33e3b48113c8.js +0 -1
  637. package/views/2d/engine/webgl/Utils.js +0 -2
  638. package/views/2d/layers/support/HighlightCounter.js +0 -2
  639. /package/assets/esri/core/workers/chunks/{476535cfb06ced74d611.js.LICENSE.txt → 430802108b63194b7ddd.js.LICENSE.txt} +0 -0
  640. /package/assets/esri/core/workers/chunks/{b82b523b6837ed1f28d3.js.LICENSE.txt → 7f2ac03efaa4a4898ba2.js.LICENSE.txt} +0 -0
  641. /package/assets/esri/core/workers/chunks/{ef24fd6c0322e5de9fdf.js.LICENSE.txt → bdcca906fdfb8e179abb.js.LICENSE.txt} +0 -0
  642. /package/assets/esri/core/workers/chunks/{1082bb0858585bd4fa21.js.LICENSE.txt → c5e288d57bacb8451e2d.js.LICENSE.txt} +0 -0
  643. /package/assets/esri/core/workers/chunks/{2e2349387a2b9903f13c.js.LICENSE.txt → d5e3f8e5b8d2576d3cb3.js.LICENSE.txt} +0 -0
  644. /package/assets/esri/core/workers/chunks/{411bbdecba340df11d95.js.LICENSE.txt → f465fb26541372fdc908.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import"../../../core/has.js";import{destroyMaybe as n}from"../../../core/maybe.js";import{when as o,watch as i,initial as r,syncAndInitial as s}from"../../../core/reactiveUtils.js";import{property as a,subclass as p}from"../../../core/accessorSupport/decorators.js";import{DoubleClickZoom as c}from"./handlers/DoubleClickZoom.js";import{DoubleTapDragZoom as l}from"./handlers/DoubleTapDragZoom.js";import{DragPan as m}from"./handlers/DragPan.js";import{DragRotate as u}from"./handlers/DragRotate.js";import{DragZoomBox as h}from"./handlers/DragZoomBox.js";import{GamepadNavigation as w}from"./handlers/GamepadNavigation.js";import{KeyPan as d}from"./handlers/KeyPan.js";import{KeyRotate as v}from"./handlers/KeyRotate.js";import{KeyZoom as g}from"./handlers/KeyZoom.js";import{MouseWheelZoom as f}from"./handlers/MouseWheelZoom.js";import{PinchRotateAndZoom as j}from"./handlers/PinchAction.js";import{BrowserEventSource as A}from"../../input/BrowserEventSource.js";import{InputManager as y,ViewEventPriorities as _}from"../../input/InputManager.js";import{PreventContextMenu as D}from"../../input/handlers/PreventContextMenu.js";import{PreventTouchSelection as M}from"../../input/handlers/PreventTouchSelection.js";import{getPointerActions as P}from"../../input/handlers/support.js";import{DoubleTapDrag as I}from"../../input/recognizers/DoubleTapDrag.js";import{Drag as b}from"../../input/recognizers/Drag.js";import{ImmediateDoubleClick as z}from"../../input/recognizers/ImmediateDoubleClick.js";import{PointerClickHoldAndDrag as T}from"../../input/recognizers/PointerClickHoldAndDrag.js";import{SingleAndDoubleClick as E}from"../../input/recognizers/SingleAndDoubleClick.js";const N={counter:"Control",precisionPan:"Alt",pan:{left:"ArrowLeft",right:"ArrowRight",up:"ArrowUp",down:"ArrowDown"},zoom:{zoomIn:["=","+"],zoomOut:["-","_"]},rotate:{clockwise:["a","A"],counterClockwise:["d","D"],reset:["n","N"]}},C=Symbol("handles");let H=class extends t{initialize(){const e=()=>this.view?.ready;this.addHandles([o(()=>!e(),()=>this._disconnect()),o(e,()=>this._connect())])}destroy(){this._disconnect()}get updating(){return!!this._inputManager?.updating}get latestPointerInfo(){return this._inputManager?.latestPointerInfo}get latestPenInfo(){return this._inputManager?.latestPenInfo}get multiTouchActive(){return this._inputManager?.multiTouchActive??!1}isModifierKeyDown(e){return this._inputManager?.isModifierKeyDown(e)??!1}_disconnect(){this.view.viewEvents.disconnect(),this.removeHandles(C),this._inputManager=n(this._inputManager)}_connect(){const e=this.view.surface,t=new A(e,this.view.input),n=[new z,new T,new E,new b(this.view.navigation),new I],o=new y({eventSource:t,recognizers:n}),a=new m(this.view,["primary"]),p=new u(this.view,["secondary"]);o.installHandlers("prevent-context-menu",[new D],_.INTERNAL),o.installHandlers("prevent-touch-text-selection-gesture",[new M(this.view)],_.INTERNAL),o.installHandlers("navigation",[new j(this.view),new w(this.view),new f(this.view),new c(this.view),new c(this.view,[N.counter]),new h(this.view),a,new d(this.view,N.pan),new d(this.view,N.pan,[N.precisionPan],.25),new g(this.view,N.zoom),new v(this.view,N.rotate),p,new l(this.view,"touch")],_.INTERNAL),this.view.viewEvents.connect(o),this._source=t,this._inputManager=o,this.addHandles([i(()=>this.view?.navigation?.browserTouchPanEnabled,e=>{this._source&&(this._source.browserTouchPanningEnabled=!e)},r),i(()=>{const{actionMap:e}=this.view.navigation;return{panActions:P("pan",e),rotateActions:P("rotate",e)}},({panActions:e,rotateActions:t})=>{a.pointerActions=e,p.pointerActions=t},s)],C)}get test(){}};e([a()],H.prototype,"view",void 0),e([a({readOnly:!0})],H.prototype,"updating",null),e([a()],H.prototype,"latestPointerInfo",null),e([a()],H.prototype,"latestPenInfo",null),e([a()],H.prototype,"multiTouchActive",null),H=e([p("esri.views.2d.input.MapViewInputManager")],H);const k=H;export{k as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import"../../../core/has.js";import{destroyMaybe as n}from"../../../core/maybe.js";import{when as i,watch as o,initial as r,syncAndInitial as s}from"../../../core/reactiveUtils.js";import{property as a,subclass as p}from"../../../core/accessorSupport/decorators.js";import{DoubleClickZoom as c}from"./handlers/DoubleClickZoom.js";import{DoubleTapDragZoom as l}from"./handlers/DoubleTapDragZoom.js";import{DragPan as m}from"./handlers/DragPan.js";import{DragRotate as h}from"./handlers/DragRotate.js";import{DragZoomBox as u}from"./handlers/DragZoomBox.js";import{GamepadNavigation as w}from"./handlers/GamepadNavigation.js";import{KeyPan as d}from"./handlers/KeyPan.js";import{KeyRotate as v}from"./handlers/KeyRotate.js";import{KeyZoom as g}from"./handlers/KeyZoom.js";import{MouseWheelZoom as f}from"./handlers/MouseWheelZoom.js";import{PinchRotateAndZoom as j}from"./handlers/PinchAction.js";import{BrowserEventSource as A}from"../../input/BrowserEventSource.js";import{InputManager as P,ViewEventPriorities as y}from"../../input/InputManager.js";import{PreventContextMenu as _}from"../../input/handlers/PreventContextMenu.js";import{PreventTouchSelection as D}from"../../input/handlers/PreventTouchSelection.js";import{getPointerActions as M}from"../../input/handlers/support.js";import{DoubleTapDrag as I}from"../../input/recognizers/DoubleTapDrag.js";import{Drag as b}from"../../input/recognizers/Drag.js";import{ImmediateDoubleClick as z}from"../../input/recognizers/ImmediateDoubleClick.js";import{PointerClickHoldAndDrag as T}from"../../input/recognizers/PointerClickHoldAndDrag.js";import{SingleAndDoubleClick as E}from"../../input/recognizers/SingleAndDoubleClick.js";const N={counter:"Control",precisionPan:"Alt",coarsePan:"Shift",pan:{left:"ArrowLeft",right:"ArrowRight",up:"ArrowUp",down:"ArrowDown"},zoom:{zoomIn:["=","+"],zoomOut:["-","_"]},rotate:{clockwise:["a","A"],counterClockwise:["d","D"],reset:["n","N"]}},C=Symbol("handles");let H=class extends t{initialize(){const e=()=>this.view?.ready;this.addHandles([i(()=>!e(),()=>this._disconnect()),i(e,()=>this._connect())])}destroy(){this._disconnect()}get updating(){return!!this._inputManager?.updating}get latestPointerInfo(){return this._inputManager?.latestPointerInfo}get latestPenInfo(){return this._inputManager?.latestPenInfo}get multiTouchActive(){return this._inputManager?.multiTouchActive??!1}isModifierKeyDown(e){return this._inputManager?.isModifierKeyDown(e)??!1}_disconnect(){this.view.viewEvents.disconnect(),this.removeHandles(C),this._inputManager=n(this._inputManager)}_connect(){const e=this.view.surface,t=new A(e,this.view.input),n=[new z,new T,new E,new b(this.view.navigation),new I],i=new P({eventSource:t,recognizers:n}),a=new m(this.view,["primary"]),p=new h(this.view,["secondary"]);i.installHandlers("prevent-context-menu",[new _],y.INTERNAL),i.installHandlers("prevent-touch-text-selection-gesture",[new D(this.view)],y.INTERNAL),i.installHandlers("navigation",[new j(this.view),new w(this.view),new f(this.view),new c(this.view),new c(this.view,[N.counter]),new u(this.view),a,new d(this.view,N.pan),new d(this.view,N.pan,[N.coarsePan],4),new d(this.view,N.pan,[N.precisionPan,N.coarsePan],.25),new d(this.view,N.pan,[N.precisionPan],.25),new g(this.view,N.zoom),new v(this.view,N.rotate),p,new l(this.view,"touch")],y.INTERNAL),this.view.viewEvents.connect(i),this._source=t,this._inputManager=i,this.addHandles([o(()=>this.view?.navigation?.browserTouchPanEnabled,e=>{this._source&&(this._source.browserTouchPanningEnabled=!e)},r),o(()=>{const{actionMap:e}=this.view.navigation;return{panActions:M("pan",e),rotateActions:M("rotate",e)}},({panActions:e,rotateActions:t})=>{a.pointerActions=e,p.pointerActions=t},s)],C)}get test(){}};e([a()],H.prototype,"view",void 0),e([a({readOnly:!0})],H.prototype,"updating",null),e([a()],H.prototype,"latestPointerInfo",null),e([a()],H.prototype,"latestPenInfo",null),e([a()],H.prototype,"multiTouchActive",null),H=e([p("esri.views.2d.input.MapViewInputManager")],H);const S=H;export{S as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{InputHandler as i}from"../../../input/InputHandler.js";import{onVisibilityChange as t}from"../../../input/VisibilityChange.js";class e extends i{constructor(i,e,s,o=1){super(!0),this.view=i,this.keys=e,this._isSticky=!1,this._pressedKeys=new Set,this._timeout=void 0,this._currentDirection=void 0,this._stickyKeyDuration=200,this._handleKey=i=>{const t=this._keyMap[i.data.key];if(1!==this._panFactor){if("key-up"===i.type&&this._modifiers.some(t=>t.toLowerCase()===i.data.key.toLowerCase()))return void this._stopMovement();if(!this._modifiers.every(t=>i.modifiers.has(t)||i.modifiers.has(t.toLowerCase())||i.modifiers.has(t.toUpperCase())))return}if(i.modifiers.has("Meta")||i.modifiers.has("Control"))return void this._stopMovement();if(null==t)return;i.stopPropagation(),i.preventDefault();const e="key-down"===i.type;if(this._pressedKeys[e?"add":"delete"](t),e){if(this._direction===t)return;this._direction=t,this._isSticky=!1,this._setTimeout(()=>{this._isSticky&&this._handlePopKey()})}else{const i=void 0===this._timeout,t=this._pressedKeys.size>0;i||t?this._handlePopKey():this._isSticky=!0}},this._handlePopKey=()=>{this._direction=Array.from(this._pressedKeys).pop(),null==this._direction&&this._stopMovement()},this._stopMovement=()=>{this._isSticky=!1,this._direction=void 0,this._pressedKeys.clear(),this._setTimeout(void 0)},this._panFactor=o,this._modifiers=s??[],this._keyMap={[e.left]:"left",[e.right]:"right",[e.up]:"up",[e.down]:"down"},this.registerIncoming("key-down",s,this._handleKey),this.registerIncoming("key-up",1!==o?null:s,this._handleKey),this.registerIncoming("blur",1!==o?null:s,this._stopMovement),this._visibilityHandle=t(i=>i?null:this._stopMovement())}onUninstall(){this._stopMovement(),this._visibilityHandle?.remove()}get _direction(){return this._currentDirection}set _direction(i){const t=null!=this._currentDirection;if(null!=i){if(t||this.view.mapViewNavigation.begin(),this._currentDirection!==i)switch(i){case"left":this._continuousPanLeft();break;case"right":this._continuousPanRight();break;case"up":this._continuousPanUp();break;case"down":this._continuousPanDown()}}else t&&this.view.mapViewNavigation.stop();this._currentDirection=i}_setTimeout(i){clearTimeout(this._timeout),this._timeout=void 0===i?void 0:setTimeout(()=>{this._timeout=void 0,i()},this._stickyKeyDuration)}_continuousPanLeft(){this.view.mapViewNavigation.continuousPanLeft(this._panFactor)}_continuousPanRight(){this.view.mapViewNavigation.continuousPanRight(this._panFactor)}_continuousPanUp(){this.view.mapViewNavigation.continuousPanUp(this._panFactor)}_continuousPanDown(){this.view.mapViewNavigation.continuousPanDown(this._panFactor)}}export{e as KeyPan};
2
+ import{InputHandler as i}from"../../../input/InputHandler.js";import{onVisibilityChange as t}from"../../../input/VisibilityChange.js";class e extends i{constructor(i,e,s,o=1){super(!0),this.view=i,this.keys=e,this._isSticky=!1,this._pressedKeys=new Set,this._timeout=void 0,this._currentDirection=void 0,this._stickyKeyDuration=200,this._handleKey=i=>{const t=this._keyMap[i.data.key];if(1!==this._panFactor){if("key-up"===i.type&&this._modifiers.some(t=>t.toLowerCase()===i.data.key.toLowerCase()))return void this._stopMovement();if(!this._modifiers.every(t=>i.modifiers.has(t)||i.modifiers.has(t.toLowerCase())||i.modifiers.has(t.toUpperCase())))return}if(i.modifiers.has("Meta")||i.modifiers.has("Control"))return void this._stopMovement();if(null==t)return;i.stopPropagation(),i.preventDefault();const e="key-down"===i.type,s=this._pressedKeys.has(t);if(this._pressedKeys[e?"add":"delete"](t),e){if(s)return;this._updateDirection(),this._isSticky=!1,this._setTimeout(()=>{this._isSticky&&this._handlePopKey()})}else{const i=void 0===this._timeout,t=this._pressedKeys.size>0;i||t?this._handlePopKey():this._isSticky=!0}},this._handlePopKey=()=>{this._updateDirection(),0===this._pressedKeys.size&&this._stopMovement()},this._stopMovement=()=>{this._isSticky=!1,this._direction=void 0,this._pressedKeys.clear(),this._setTimeout(void 0)},this._panFactor=o,this._modifiers=s??[],this._keyMap={[e.left]:"left",[e.right]:"right",[e.up]:"up",[e.down]:"down"},this.registerIncoming("key-down",s,this._handleKey),this.registerIncoming("key-up",1!==o?null:s,this._handleKey),this.registerIncoming("blur",1!==o?null:s,this._stopMovement),this._visibilityHandle=t(i=>i?null:this._stopMovement())}onUninstall(){this._stopMovement(),this._visibilityHandle?.remove()}get _direction(){return this._currentDirection}set _direction(i){const t=null!=this._currentDirection;null!=i?(t||this.view.mapViewNavigation.begin(),this._currentDirection?.x===i.x&&this._currentDirection.y===i.y||this.view.mapViewNavigation.continuousPanVector(i)):t&&this.view.mapViewNavigation.stop(),this._currentDirection=i}_updateDirection(){const i=Number(this._pressedKeys.has("right"))-Number(this._pressedKeys.has("left")),t=Number(this._pressedKeys.has("up"))-Number(this._pressedKeys.has("down")),e=Math.hypot(i,t);this._direction=0===e?void 0:{x:i/e*this._panFactor,y:t/e*this._panFactor}}_setTimeout(i){clearTimeout(this._timeout),this._timeout=void 0===i?void 0:setTimeout(()=>{this._timeout=void 0,i()},this._stickyKeyDuration)}}export{e as KeyPan};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../AggregateGraphic.js";import r from"../../../Graphic.js";import s from"../../../TrackGraphic.js";import{isSome as i}from"../../../core/arrayUtils.js";import a from"../../../core/Collection.js";import o from"../../../core/Error.js";import{makeHandle as n,handlesGroup as l}from"../../../core/handleUtils.js";import has from"../../../core/has.js";import u from"../../../core/Logger.js";import{destroyMaybe as h}from"../../../core/maybe.js";import{notDeepEqual as c}from"../../../core/object.js";import{createAbortError as p,ignoreAbortErrors as d,throwIfNotAbortError as y,isAbortError as m}from"../../../core/promiseUtils.js";import{watch as g,sync as f}from"../../../core/reactiveUtils.js";import{sqlAnd as w}from"../../../core/sql.js";import{getMetersPerUnitForSR as v}from"../../../core/units.js";import{property as _,subclass as b}from"../../../core/accessorSupport/decorators.js";import{UpdatingHandles as S}from"../../../core/support/UpdatingHandles.js";import A from"../../../geometry/Extent.js";import{fromJSON as F}from"../../../geometry/support/jsonUtils.js";import j from"../../../geometry/support/rotate.js";import{isCurvedGeometry as x}from"../../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as R}from"../../../geometry/support/curves/densifyCurvedGeometry.js";import E from"../../../layers/effects/FeatureEffectView.js";import{convertFromFeature as I}from"../../../layers/graphics/featureConversionUtils.js";import k from"../../../layers/support/FeatureFilter.js";import{checkServiceCurrentUserSupport as O}from"../../../layers/support/featureLayerUtils.js";import{packFields as U}from"../../../layers/support/fieldUtils.js";import{getEffectiveLayerCapabilities as V}from"../../../layers/support/layerUtils.js";import{combineTimeExtent as C}from"../../../layers/support/timeSupport.js";import Q from"../../../rest/support/AggregateFeatureSet.js";import q from"../../../rest/support/AttributeBinsFeatureSet.js";import M from"../../../rest/support/AttributeBinsQuery.js";import P from"../../../rest/support/FeatureSet.js";import H from"../../../rest/support/Query.js";import{HittestDrawHelper as L}from"../../../symbols/cim/CIMSymbolDrawHelper.js";import{symbolToCIM as T}from"../../../symbols/cim/CIMSymbolHelper.js";import{getDisplayedSymbol as W}from"../../../symbols/support/symbolUtils.js";import{LayerView2D as D}from"./LayerView2D.js";import{FeatureContainer as G}from"./features/FeatureContainer.js";import{createFeaturePipelineWorkerProxy as N}from"./features/FeaturePipelineWorkerProxy.js";import{FeatureSourceEventLog as J}from"./features/FeatureSourceEventLog.js";import{AnnotationLayerAdapter as z}from"./features/layerAdapters/AnnotationLayerAdapter.js";import{CatalogFootprintLayerAdapter as B}from"./features/layerAdapters/CatalogFootprintLayerAdapter.js";import{DimensionLayerAdapter as Z}from"./features/layerAdapters/DimensionLayerAdapter.js";import{FeatureLayerAdapter as K}from"./features/layerAdapters/FeatureLayerAdapter.js";import{createFeatureIdInfo as $}from"./features/layerAdapters/featureServiceUtils.js";import{InMemoryLayerAdapter as X}from"./features/layerAdapters/InMemoryLayerAdapter.js";import{KnowledgeGraphSublayerAdapter as Y}from"./features/layerAdapters/KnowledgeGraphSublayerAdapter.js";import{OGCFeatureLayerAdapter as ee}from"./features/layerAdapters/OGCFeatureLayerAdapter.js";import{OrientedImageryLayerAdapter as te}from"./features/layerAdapters/OrientedImageryLayerAdapter.js";import{ParquetLayerAdapter as re}from"./features/layerAdapters/ParquetLayerAdapter.js";import{StreamLayerAdapter as se}from"./features/layerAdapters/StreamLayerAdapter.js";import{SubtypeGroupLayerAdapter as ie}from"./features/layerAdapters/SubtypeGroupLayerAdapter.js";import{createComplexSymbolInstances as ae}from"./features/schema/processor/symbols/ComplexSymbolSchema.js";import{DebouncedFeatureOverride as oe}from"./support/DebouncedFeatureOverride.js";import{FeatureCommandQueue as ne}from"./support/FeatureCommandQueue.js";import{handleNoEngineError as le}from"./support/handleNoEngineError.js";import{toJSONGeometryType as ue}from"./support/util.js";import{getMapPointsFromScreen as he,getHittestType as ce}from"../support/hitTestUtils.js";import{FeatureTileSubscriptionManager as pe}from"../tiling/FeatureTileSubscriptionManager.js";import{RefreshableLayerView as de}from"../../layers/RefreshableLayerView.js";import{getHighlightName as ye}from"../../support/highlightOptionsUtils.js";function me(e,t){const r=new Set;return e&&e.forEach(e=>r.add(e)),t&&t.forEach(e=>r.add(e)),r.has("*")?["*"]:Array.from(r)}const ge=4294967294;function fe(e,t){return l(e.map(e=>g(()=>{const t=e();return t&&"object"==typeof t?"getTime"in t&&"function"==typeof t.getTime?t.getTime():JSON.stringify(t):t},t,f)))}function we(e){if(!e.geometry)return e;if(!x(e.geometry))return e;const t=.001/v(e.geometry.spatialReference),r=100;return{geometry:R(e.geometry,{maxSegmentsPerCurve:12e3,maxSegmentLength:r*t,maxDeviation:0}),attributes:e.attributes}}const ve=l=>{const f=de(D(l));let v=class extends f{constructor(){super(...arguments),this._commandsQueue=new ne({process:e=>{switch(e.type){case"override-batch":return this._doOverride(e);case"update":return this._doUpdate();case"highlight":return this._updateHighlights()}}}),this._visibilityOverrides=new Set,this._lastAvailableFields=[],this._lastTargetState=null,this._stationaryRotation=0,this.eventLog=new J,this._sourceRefreshVersion=1,this._displayRefreshVersion=1,this._pipelineUpdating=!1,this._editUpdatingHandles=new S,this._fields=null,this._hittestDrawHelper=null,this._sourceUpdating=!1,this.featureEffectView=new E}destroy(){this._editUpdatingHandles.destroy(),this._workerProxy?.destroy(),this._workerAttached.reject(p()),this._commandsQueue.destroy(),this._hittestDrawHelper?.destroy()}initialize(){this._workerAttached=Promise.withResolvers(),d(this._workerAttached.promise),this.addResolvingPromise(this._initProxy()),this.featureEffectView.featureEffect=this.featureEffect,this.featureEffectView.endTransition()}async _initProxy(){const e=this.layer;if("isTable"in e&&e.isTable)throw new o("featurelayerview:table-not-supported","table feature layer can't be displayed",{layer:e});if(("feature"===e.type||"subtype-group"===e.type)&&!1===V(e)?.operations.supportsQuery)throw new o("featurelayerview:query-not-supported","layer view requires a layer with query capability",{layer:e});this._workerProxy&&this._workerProxy.destroy();const t=this._createClientOptions();this._workerProxy=await N(t)}async _attachProxy(){const e=j(this.view.extent,this.view.rotation,this.view.center),t={tileInfoJSON:this.view?.featuresTilingScheme?.tileInfo?.toJSON(),initialViewExtent:e.toJSON()};try{await this._workerProxy.pipeline.onAttach(t),this._workerAttached.resolve()}catch(r){this._workerAttached.reject(p()),y(r)}}async _detachProxy(){return this._workerProxy.pipeline.onDetach()}async getWorker(){return await this._workerAttached.promise,this._workerProxy}get dataUpdating(){return this._sourceUpdating||this._editUpdatingHandles.updating}get hasAllFeatures(){return this.layer.visible&&!this.suspended&&this.eventLog.hasAllData&&this.eventLog.willQueryAllFeatures}get hasAllFeaturesInView(){const e=this.effectiveDisplayFilter?.where||null,t=!this.eventLog.willQueryAllFeatures&&null!=e&&"1=1"!==e;return this.layer.visible&&!this.suspended&&this.eventLog.hasAllData&&!t}get hasFullGeometries(){return this.layer.visible&&!this.suspended&&this.eventLog.hasAllData&&this.eventLog.willQueryFullResolutionGeometry}get layerAdapter(){switch(this.layer.type){case"annotation-feature":return new z(this.layer);case"dimension-feature":return new Z(this.layer);case"feature":return"memory"===this.layer.source.type?new X(this.layer):new K(this.layer);case"geojson":case"csv":case"wfs":return new X(this.layer);case"parquet":return new re(this.layer);case"subtype-group":return new ie(this.layer);case"ogc-feature":return new ee(this.layer);case"stream":return new se(this.layer);case"oriented-imagery":return new te(this.layer);case"knowledge-graph-sublayer":return new Y(this.layer);case"catalog-footprint":return new B(this.layer);default:this.layer}return null}get timeExtent(){return C(this.layerAdapter.timeOptions,this.view?.timeExtent,this._get("timeExtent"))}get usedMemory(){return this.container.usedMemory+this.eventLog.pipelineStatistics.usedMemory}getDisplayStatistics(e,t){return this.featureContainer?.getDisplayStatistics(e,t)}highlight(e,t){let s;e instanceof r?s=[e.getObjectId()]:"number"==typeof e||"string"==typeof e?s=[e]:a.isCollection(e)&&e.length>0?s=e.map(e=>e?.getObjectId()).toArray():Array.isArray(e)&&e.length>0&&(s="number"==typeof e[0]||"string"==typeof e[0]?e:e.map(e=>e?.getObjectId()));const o=s?.filter(i);if(!o?.length)return n();const l=ye(t);return this._addHighlights(o,l),n(()=>!this.destroyed&&this._removeHighlights(o,l))}async hitTest(e,i,a){const o=ce(i);if(!o)return null;const n="point"===o,{trueHitIds:l,candidateHitIds:u}=await this.featureContainer.hitTest(i,a??null),h=await this.getWorker(),[c,p]=await Promise.all([h.pipeline.getDisplayFeatures(u),h.pipeline.getDisplayFeatures(l)]),{features:d,aggregates:y,tracks:g}=c,{features:f,aggregates:w,tracks:v}=p,_=[];if(!n&&this.hasRenderer()){const e=new Map,t=new r;for(const r of d){t.attributes=r.attributes,t.geometry=F(r.geometry),t.symbol=null;const s=this.layerAdapter.getRenderer(t);if(!s){_.push(r);continue}const i=await W(t,{renderer:s,scale:this.view.scale,resolution:this.view.resolution,spatialReference:this.view.spatialReference,viewingMode:"2d",timeZone:this.view.timeZone});if(!i)continue;let a=null;const o=T(i);if("web-style"===o.type)try{const e=T(await o.fetchSymbol({acceptedFormats:["cim","web"]}));a="web-style"===e.type?null:e}catch(R){m(R),0;continue}else a=o;const n=a?.symbol;if(!n)continue;const l=this.view.stage.cimAnalyzer.analyzeSymbolReference(a,!1).some(e=>"alignment"in e&&0===e.alignment);e.set(r,{cimSymbol:n,isScreenAligned:l})}e.size>0&&!this._hittestDrawHelper&&(this._hittestDrawHelper=new L(this.view.stage.painter.textureManager.resourceManager));const{resolution:s,rotation:a}=this.view.state,n=he(this.view,i);for(const[r,{cimSymbol:i,isScreenAligned:l}]of e){if(!r)continue;const e={hittestType:o,textInfo:null,mapRotation:a,resolution:s,searchDist:0,isScreenAligned:l};this._hittestDrawHelper.hitTest(n,i,r.geometry,e)&&_.push(r)}}else _.push(...d);const b=[...f,..._],S=[...w,...y],A=[...v,...g],j=this.featureContainer.getSortKeys(b.map(e=>e.displayId)),x=({displayId:e},{displayId:t})=>j.has(e)&&j.has(t)?j.get(e)-j.get(t):e-t;return b.sort(x).reverse(),S.sort(x).reverse(),[...S.map(r=>this._createAggregateGraphicHit(e,t.fromJSON(r))),...A.map(t=>this._createTrackGraphicHit(e,s.fromJSON(t))),...b.map(t=>this._createFeatureGraphicHit(n?e:null,r.fromJSON(t)))]}async queryAggregateSummaryStatistics(e,t,r){const s={...t,scale:this.view.scale},i=(await this.getWorker()).aggregates.executeQueryForSummaryStatistics(this._cleanUpAggregateQuery(e),s,r);return le(i,{})}async queryUniqueValues(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForUniqueValues(this._cleanUpQuery(e),i,r);return le(a,{uniqueValueInfos:[]})}async queryAggregateUniqueValues(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.aggregates.executeQueryForUniqueValues(this._cleanUpAggregateQuery(e),i,r);return le(a,{uniqueValueInfos:[]})}async queryAggregateClassBreaks(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.aggregates.executeQueryForClassBreaks(this._cleanUpAggregateQuery(e),i,r);return le(a,{classBreakInfos:[]})}async queryHistogram(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForHistogram(this._cleanUpQuery(e),i,r);return le(a,{bins:[],maxValue:null,minValue:null,normalizationTotal:null})}async queryAggregateCount(e,t){const r=(await this.getWorker()).aggregates.executeQueryForCount(this._cleanUpAggregateQuery(e),t);return le(r,0)}async queryAggregateHistogram(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.aggregates.executeQueryForHistogram(this._cleanUpAggregateQuery(e),i,r);return le(a,{bins:[],maxValue:null,minValue:null,normalizationTotal:null})}async queryAggregateIds(e,t){const r=(await this.getWorker()).aggregates.executeQueryForIds(this._cleanUpAggregateQuery(e),t);return le(r,[])}async queryAggregateJSON(e,t){const r=(await this.getWorker()).aggregates.executeQuery(this._cleanUpAggregateQuery(e),t);return le(r,{features:[]})}async queryAttributeBins(e,t){const r=(await this.getWorker()).features.executeAttributeBinsQuery(this._cleanUpAttributeBinsQuery(e),t),s=await le(r,{features:[]});return q.fromJSON(s)}async queryAggregates(e,t){const r=(await this.getWorker()).aggregates.executeQuery(this._cleanUpAggregateQuery(e),t),s=await le(r,{features:[]}),i=Q.fromJSON(s);return i.features.forEach(e=>this.layerAdapter.setAggregateGraphicOrigin?.(e)),i}async queryClassBreaks(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForClassBreaks(this._cleanUpQuery(e),i,r);return le(a,{classBreakInfos:[]})}async queryExtent(e,t){const r=(await this.getWorker()).features.executeQueryForExtent(this._cleanUpQuery(e),t),s=await le(r,{count:0,extent:null});return{count:s.count,extent:A.fromJSON(s.extent)}}async queryFeatureCount(e,t){const r=(await this.getWorker()).features.executeQueryForCount(this._cleanUpQuery(e),t);return le(r,0)}queryFeatures(e,t){return this.queryFeaturesJSON(e,t).then(e=>{const t=P.fromJSON(e);return t.features.forEach(e=>this._setOriginForFeature(e)),t})}async queryFeaturesJSON(e,t){const r=(await this.getWorker()).features.executeQuery(this._cleanUpQuery(e),t);return le(r,{features:[]})}async queryHeatmapStatistics(e){return(await this.getWorker()).pipeline.queryHeatmapStatistics(e)}async queryObjectIds(e,t){const r=(await this.getWorker()).features.executeQueryForIds(this._cleanUpQuery(e),t);return le(r,[])}async queryStatistics(){const e=await this.getWorker();return le(e.pipeline.queryStatistics(),{featureCount:0,ringCount:0,vertexCount:0})}async querySummaryStatistics(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForSummaryStatistics(this._cleanUpQuery(e),i,r);return le(a,{})}async queryVisibleFeatures(e,t){const r=(await this.getWorker()).pipeline.queryVisibleFeatures(this._cleanUpQuery(e),t),s=await le(r,{features:[]}),i=P.fromJSON(s);return i.features.forEach(e=>this._setOriginForFeature(e)),i}async getSampleFeatures(e){return(await this.getWorker()).pipeline.getSampleFeatures(e)}setVisibility(e,t){t?this._visibilityOverrides.delete(e):this._visibilityOverrides.add(e),this._update()}update(e){if(!this._subscriptions)return;this.view.animation&&!this._lastTargetState&&(this._lastTargetState=e.state.clone()),!this.view.animation&&this._lastTargetState&&(this._lastTargetState=null);const t=this.featureContainer.getPresenting(),r=this._subscriptions.update(e.targetState,this._lastTargetState,t);r&&(this.featureContainer.updateSubscriptions(r),d(this._updatingHandles.addPromise(this.getWorker().then(e=>e.pipeline.updateSubscriptions(r))))),this._subscriptions.coverage&&this.featureContainer.setCoverage(this._subscriptions.coverage)}attach(){has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D.attach"),d(this._updatingHandles.addPromise(this._workerAttached.promise)),d(this._attachProxy()),this.featureContainer=new G(this),this.container.addChild(this.featureContainer),this.view.timeline.record(`${this.layer.title} (FeatureLayer) Attach`),this._subscriptions=new pe(this.view.featuresTilingScheme),this._stationaryRotation=this.view.rotation,this.requestUpdate(),this.addAttachHandles([fe([()=>this._displayRefreshVersion,()=>"displayFilterInfo"in this.layer&&this.layer.displayFilterInfo,()=>this.timeExtent,()=>this.clips,()=>this.filter,()=>this.effectiveDisplayFilterClause,()=>this.featureEffect,()=>this._sourceRefreshVersion,()=>this.view.timeZone,()=>this.view.timeExtent,...this.layerAdapter.getUpdateHashProperties(this.view)],()=>this._update()),g(()=>this.updateSuspended,e=>{e||this._subscriptions.resume(this.featureContainer.getPresenting())}),g(()=>this.view.stationary,e=>{if(!e)return;const t=this.view.rotation;t!==this._stationaryRotation&&(this._stationaryRotation=t,this._update()),this.getWorker().then(e=>{if(this.destroyed)return;const t=j(this.view.extent,this.view.rotation,this.view.center);return e.pipeline.updateStationaryExtent(t.toJSON(),this.featureContainer.requiresRefresh)}).catch(()=>{})})]),this._update(),"stream"!==this.layer.type&&"parquet"!==this.layer.type&&"catalog-footprint"!==this.layer.type&&this.addAttachHandles(this.layer.on("edits",e=>this._editUpdatingHandles.addPromise(this._edit(e))))}detach(){has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D.detach"),this._detachProxy(),this._fields=null,this.featureContainer.destroy(),this.featureContainer=null,this._commandsQueue.clear(),this.container.removeAllChildren(),this._subscriptions=h(this._subscriptions),this._workerProxy.pipeline.onDetach(),this._workerAttached=Promise.withResolvers(),d(this._workerAttached.promise),this._lastAvailableFields=[],this._lastSchema=null}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}addOverrides(e){return this._commandsQueue.push({type:"override",options:{...e,release:[]}})}removeOverrides(e){for(const r of e)if(null==r)throw new o("featurelayerview:bad-override","Tried to remove an override for an invalid objectId",{objectId:r});const t={added:[],updated:[],removed:[],release:e,isWeak:!1,historicMoment:null};return this._commandsQueue.push({type:"override",options:t})}onProxyClientEvent(e){}hasRenderer(){return"renderer"in this.layer&&null!=this.layer.renderer}isUpdating(){const e=this.hasRenderer(),t=this._commandsQueue.updateTracking.updating,r=null!=this._updatingRequiredPromise,s=this.featureContainer.updating;return this.updateRequested||e&&(t||r)||s||this._pipelineUpdating||this.dataUpdating}_createClientOptions(){const e=this;return{updateSchemaStart:()=>e.updateSchemaStart(),updateSchemaEnd:t=>e.updateSchemaEnd(t),openMemoryPorts:async()=>{if(this.layerAdapter?.openMessagePorts){const e=await this.layerAdapter.openMessagePorts();return{result:e,transferList:e}}throw new Error("InternalError: Layer adapter does not support opening message ports")},openGlyphPorts:async()=>{const t=await e.container.stage.textureManager.openMessagePorts();return{result:t,transferList:t}},get container(){return e.featureContainer},setUpdating:e=>{this._set("_pipelineUpdating",e.pipeline),this._set("_sourceUpdating",e.source)},emitEvent:e=>{this.onProxyClientEvent(e)},get eventLog(){return e.eventLog},fetch:async t=>{if(has("esri-2d-stabilize-glyphs")){const r=[];for(const s of t)r.push(await e.view.stage.painter.textureManager.rasterizeItem(s));return r}return Promise.all(t.map(t=>e.view.stage.painter.textureManager.rasterizeItem(t)))},fetchDictionary:e=>Promise.all(e.map(e=>this._fetchDictionaryRequest(e))),fetchMesh:e=>Promise.all(e.map(e=>this._fetchMeshRequest(e)))}}async _fetchDictionaryRequest(e){try{if(!("renderer"in this.layer)||!this.layer.renderer||"dictionary"!==this.layer.renderer.type)throw new Error("InternalError: Expected renderer to be of type 'dictionary'");const t=this.layer.renderer,r=this._lastSchema.processor.mesh.factory.symbology;if("dictionary"!==r.type)throw new Error("InternalError: Expected schema to be of type 'dictionary'");const s={cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,store:this.featureContainer.instanceStore,scaleExpression:r.scaleExpression,viewRotation:this._stationaryRotation};this._fields||(this._fields=this.layer.fields.map(e=>e.toJSON()));const i=r.visualVariableUniforms,a=ue(this.layer.geometryType),o=await t.getSymbolForControlString(e.controlString,a,!1);if(!o||!o.data)return{type:"dictionary-response",meshes:[]};return{type:"dictionary-response",meshes:await ae({...o.data,hasTextStringTemplates:!0},{uniforms:i,path:"renderer",schemaOptions:s})}}catch(t){return{type:"dictionary-response",meshes:[]}}}async _fetchMeshRequest(e){const{layer:t}=this;try{const r={cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,store:this.featureContainer.instanceStore,scaleExpression:null,viewRotation:this._stationaryRotation};this._fields||(this._fields=t.fields.map(e=>e.toJSON()));return{type:"mesh-response",meshes:await ae({...e.symbolReference,hasTextStringTemplates:!0},{path:"anno-like",schemaOptions:r,uniforms:{visualVariableColor:null,visualVariableOpacity:null,visualVariableRotation:null,visualVariableSizeStops:null,visualVariableSizeScaleStops:null,visualVariableSizeOutlineScaleStops:null,visualVariableSizeUnitValue:null,visualVariableSizeMinMaxValue:null}})}}catch(r){return{type:"mesh-response",meshes:[]}}}_cleanUpQuery(e){const t=H.from(e)||this.createQuery();return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),"returnZ"in this.layer&&(t.returnZ??=this.layer.returnZ),"returnM"in this.layer&&(t.returnM??=this.layer.returnM),t.toJSON()}_cleanUpAttributeBinsQuery(e){const t=M.from(e);return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),t.toJSON()}_cleanUpAggregateQuery(e){const t=H.from(e)||this.createAggregateQuery();t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference);const r=t.objectIds??[];for(const s of t.aggregateIds??[])r.push(s);return t.objectIds=r,t.aggregateIds=[],t.toJSON()}async _update(){return this._commandsQueue.push({type:"update"})}_edit(e){return this._commandsQueue.push({type:"edit",event:e})}async doRefresh(e){this.attached&&(this.updateSuspended&&e||(e?this.incrementSourceRefreshVersion():this.incrementDisplayRefreshVersion()))}incrementSourceRefreshVersion(){this._sourceRefreshVersion=(this._sourceRefreshVersion+1)%ge+1}incrementDisplayRefreshVersion(){this._displayRefreshVersion=(this._displayRefreshVersion+1)%ge+1}async _resolveIdenifiers(e){const t=[],r=[];for(const a of e)null==a.objectId||-1===a.objectId?null==a.globalId?u.getLogger(this).warn("mapview-apply-edits","A feature identifier must contain either a GlobalId or ObjectId. Ignoring",{identifier:a}):r.push(a.globalId):t.push(a.objectId);const s="globalIdField"in this.layer&&this.layer.globalIdField,i=s&&this.availableFields.includes(s);if(r.length&&!i)return u.getLogger(this).error(new o("mapview-apply-edits",`Editing the specified service requires the layer's globalIdField, ${s} to be included the layer's outFields for updates to be reflected on the map`)),t;if(r.length){const e=await this._workerProxy.pipeline.getObjectIdsFromGlobalIds(r);for(const r of e)t.push(r)}return t}_resolveOverrides(e){const t=!1,r=!1,s=ue(this.layer.geometryType),i=$(this.layer),a=[];for(const n of e.added){const e=I(we(n),s,t,r,i);if(null==e.objectId)throw new o("featurelayerview:bad-override","Feature does not have an objectId",{feature:n});a.push(e)}for(const n of e.updated){const e=I(we(n),s,t,r,i);if(null==e.objectId)throw new o("featurelayerview:bad-override","Feature does not have an objectId",{feature:n});a.push(e)}for(const n of e.removed)if(null==n)throw new o("featurelayerview:bad-override","Tried to remove an invalid objectId",{objectId:n});return{type:"override",updates:a,removed:e.removed,release:e.release,isWeak:e.isWeak??!1,historicMoment:e.historicMoment??null}}async _resolveEdit(e){const t=this.layer,r=e.historicMoment?.getTime()??null,s="layerId"in t&&e.editedFeatures?.find(e=>e.layerId===t.layerId);if(s&&this._canEditByFeature(s)){const{adds:e,deletes:t,updates:i}=s.editedFeatures,a=this.layer.objectIdField,o=i.map(e=>e.current),n=t.map(e=>"attributes"in e?{objectId:a?e.attributes[a]:null}:e),l=await this._resolveIdenifiers(n);return this._resolveOverrides({added:e,updated:o,removed:l,historicMoment:r,isWeak:!0,release:[]})}const[i,a,o]=await Promise.all([this._resolveIdenifiers(e.addedFeatures),this._resolveIdenifiers(e.updatedFeatures),this._resolveIdenifiers(e.deletedFeatures)]);return{type:"override-by-id",updates:[...i,...a],removed:o,historicMoment:r,isWeak:!0}}_canEditByFeature(e){const{adds:t,updates:r}=e.editedFeatures;return t.every(e=>this.view.spatialReference.equals(e.geometry?.spatialReference))&&r.every(e=>this.view.spatialReference.equals(e.current.geometry?.spatialReference))}async updateSchemaStart(){const e=this.layer;"featureReduction"in e&&e.featureReduction&&e.featureReduction!==this._lastFeatureReduction&&(e.featureReduction=e.featureReduction?.clone(),this._lastFeatureReduction=e.featureReduction);try{if(await Promise.allSettled([this._handleChange(),O(e)]),this.destroyed||!this.layerAdapter?.hasRequiredSupport||!this._subscriptions)return null;const t=this.featureContainer.updateStart("subtype-group"===e.type);this._lastFeatureEffect=this.featureEffect;const r={store:t,cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,scaleExpression:void 0,viewRotation:this._stationaryRotation},s=await this._createViewSchemaConfig(),i={source:await this.layerAdapter.createSourceSchema(s,this._sourceRefreshVersion),processor:await this.layerAdapter.createProcessorSchema(r,s,this._displayRefreshVersion)};return c(this._lastSchema?.source.strategy,i.source.strategy)||c(this._lastSchema?.processor,i.processor)?(this._lastSchema=i,this._fields=null,i):null}catch(t){}return null}async updateSchemaEnd(e){try{this.featureEffectView.featureEffect=this._lastFeatureEffect,e&&this.featureEffectView.endTransition(),await this.featureContainer.updateEnd(this._lastSchema.processor,this.layerAdapter.getLabelingDeconflictionInfo(),e),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D.updateEnd")}catch(t){}}async _doUpdate(){const e=Math.round(performance.now()),t=await this.getWorker();await t.pipeline.updateSchema(e),this.requestUpdate()}async _doOverride(e){const t=await this.getWorker();try{let r=new oe;for(const s of e.messages)switch(s.type){case"edit":r.tryAdd(await this._resolveEdit(s.event))||(await t.pipeline.onOverride(r.toMessage()),r=new oe,r.tryAdd(await this._resolveEdit(s.event)));break;case"override":r.tryAdd(this._resolveOverrides(s.options))||(await t.pipeline.onOverride(r.toMessage()),r=new oe,r.tryAdd(this._resolveOverrides(s.options)));break}await t.pipeline.onOverride(r.toMessage())}catch(r){m(r),0}}_getEffectiveAvailableFields(e){const t=me(this._lastAvailableFields,e);return this._lastAvailableFields=t,U(this.layer.fieldsIndex,t)}async _createViewSchemaConfig(){const e=this.requiresCurrentUser?await this.signedInUser:null,t=[x(this.view,this.layerAdapter,this.timeExtent,this._visibilityOverrides,this.filter,this.effectiveDisplayFilterClause),this.featureEffect?.filter?.toJSON()??null];return{availableFields:this._getEffectiveAvailableFields(this.availableFields),displayFilterEnabled:this.displayFilterEnabled,filters:t,scale:this.view.scale,timeZone:this.view.timeZone,timeExtent:this.view.timeExtent,currentUser:e,spatialReference:this.view.spatialReference,extent:this.view.extent,returnZ:this.hasZ,returnM:this.hasM}}_processHighlight(){this._commandsQueue.push({type:"highlight"})}async _updateHighlights(){const e=this._getHighlights(),t=await this.getWorker();if(this.destroyed)return;const r=t.pipeline.updateHighlight({highlights:e}).catch(e=>{m(e)||u.getLogger(this).error(e)});this._updatingHandles.consumePromise(r)}_setOriginForFeature(e){e.layer=e.sourceLayer=this.layer,this.layerAdapter.setGraphicOrigin(e)}_createFeatureGraphicHit(e,t){return this._setOriginForFeature(t),this._createGraphicHit(e,t)}_createTrackGraphicHit(e,t){return t.layer=t.sourceLayer=this.layer,this.layerAdapter.setTrackGraphicOrigin?.(t),this._createGraphicHit(e,t)}_createAggregateGraphicHit(e,t){return t.layer=t.sourceLayer=this.layer,this.layerAdapter.setAggregateGraphicOrigin?.(t),this._createGraphicHit(e,t)}_createGraphicHit(e,t){return null!=t.geometry&&(t.geometry.spatialReference=this.view.spatialReference),{type:"graphic",graphic:t,layer:this.layer,mapPoint:e}}};function x(e,t,r,s,i,a){i&&(i=i.clone());const o=null!=i?i.timeExtent:null,n=null!=r&&null!=o?r.intersection(o):r||o;n&&(i??=new k,i.timeExtent=n),i=t.addFilters?.(i,e)??i,a&&(i??=new k,i.where=w(i.where,a));let l=i?.toJSON()??null;return s.size&&(l??=(new k).toJSON(),l.hiddenIds=Array.from(s)),l}return e([_()],v.prototype,"_commandsQueue",void 0),e([_()],v.prototype,"_sourceRefreshVersion",void 0),e([_()],v.prototype,"_displayRefreshVersion",void 0),e([_({readOnly:!0})],v.prototype,"_pipelineUpdating",void 0),e([_()],v.prototype,"_sourceUpdating",void 0),e([_({readOnly:!0})],v.prototype,"dataUpdating",null),e([_({readOnly:!0})],v.prototype,"hasAllFeatures",null),e([_({readOnly:!0})],v.prototype,"hasAllFeaturesInView",null),e([_({readOnly:!0})],v.prototype,"hasFullGeometries",null),e([_()],v.prototype,"featureEffectView",void 0),e([_()],v.prototype,"layerAdapter",null),e([_({readOnly:!0})],v.prototype,"timeExtent",null),v=e([b("esri.views.2d.layers.FeatureLikeLayerView2D")],v),v};export{ve as FeatureLikeLayerView2D};
2
+ import{__decorate as e}from"tslib";import t from"../../../AggregateGraphic.js";import r from"../../../Graphic.js";import s from"../../../TrackGraphic.js";import{isSome as i}from"../../../core/arrayUtils.js";import a from"../../../core/Collection.js";import o from"../../../core/Error.js";import{makeHandle as n,handlesGroup as l}from"../../../core/handleUtils.js";import has from"../../../core/has.js";import u from"../../../core/Logger.js";import{destroyMaybe as h}from"../../../core/maybe.js";import{notDeepEqual as c}from"../../../core/object.js";import{createAbortError as p,ignoreAbortErrors as d,throwIfNotAbortError as y,isAbortError as m}from"../../../core/promiseUtils.js";import{watch as f,sync as g}from"../../../core/reactiveUtils.js";import{sqlAnd as w}from"../../../core/sql.js";import{getMetersPerUnitForSR as v}from"../../../core/units.js";import{property as _,subclass as b}from"../../../core/accessorSupport/decorators.js";import{UpdatingHandles as S}from"../../../core/support/UpdatingHandles.js";import A from"../../../geometry/Extent.js";import{fromJSON as F}from"../../../geometry/support/jsonUtils.js";import j from"../../../geometry/support/rotate.js";import{isCurvedGeometry as x}from"../../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as R}from"../../../geometry/support/curves/densifyCurvedGeometry.js";import I from"../../../layers/effects/FeatureEffectView.js";import{convertFromFeature as E}from"../../../layers/graphics/featureConversionUtils.js";import O from"../../../layers/support/FeatureFilter.js";import{checkServiceCurrentUserSupport as k}from"../../../layers/support/featureLayerUtils.js";import{packFields as U}from"../../../layers/support/fieldUtils.js";import{getEffectiveLayerCapabilities as C}from"../../../layers/support/layerUtils.js";import{combineTimeExtent as V}from"../../../layers/support/timeSupport.js";import Q from"../../../rest/support/AggregateFeatureSet.js";import q from"../../../rest/support/AttributeBinsFeatureSet.js";import M from"../../../rest/support/AttributeBinsQuery.js";import P from"../../../rest/support/FeatureSet.js";import L from"../../../rest/support/Query.js";import{HittestDrawHelper as H}from"../../../symbols/cim/CIMSymbolDrawHelper.js";import{symbolToCIM as T}from"../../../symbols/cim/CIMSymbolHelper.js";import{getDisplayedSymbol as D}from"../../../symbols/support/symbolUtils.js";import{LayerView2D as W}from"./LayerView2D.js";import{FeatureContainer as G}from"./features/FeatureContainer.js";import{createFeaturePipelineWorkerProxy as N}from"./features/FeaturePipelineWorkerProxy.js";import{FeatureSourceEventLog as J}from"./features/FeatureSourceEventLog.js";import{AnnotationLayerAdapter as z}from"./features/layerAdapters/AnnotationLayerAdapter.js";import{CatalogFootprintLayerAdapter as B}from"./features/layerAdapters/CatalogFootprintLayerAdapter.js";import{DimensionLayerAdapter as Z}from"./features/layerAdapters/DimensionLayerAdapter.js";import{FeatureLayerAdapter as K}from"./features/layerAdapters/FeatureLayerAdapter.js";import{createFeatureIdInfo as $}from"./features/layerAdapters/featureServiceUtils.js";import{InMemoryLayerAdapter as X}from"./features/layerAdapters/InMemoryLayerAdapter.js";import{KnowledgeGraphSublayerAdapter as Y}from"./features/layerAdapters/KnowledgeGraphSublayerAdapter.js";import{OGCFeatureLayerAdapter as ee}from"./features/layerAdapters/OGCFeatureLayerAdapter.js";import{OrientedImageryLayerAdapter as te}from"./features/layerAdapters/OrientedImageryLayerAdapter.js";import{ParquetLayerAdapter as re}from"./features/layerAdapters/ParquetLayerAdapter.js";import{StreamLayerAdapter as se}from"./features/layerAdapters/StreamLayerAdapter.js";import{SubtypeGroupLayerAdapter as ie}from"./features/layerAdapters/SubtypeGroupLayerAdapter.js";import{createComplexSymbolInstances as ae}from"./features/schema/processor/symbols/ComplexSymbolSchema.js";import{DebouncedFeatureOverride as oe}from"./support/DebouncedFeatureOverride.js";import{FeatureCommandQueue as ne}from"./support/FeatureCommandQueue.js";import{createFilterSchemas as le}from"./support/FilterSchema.js";import{handleNoEngineError as ue}from"./support/handleNoEngineError.js";import{toJSONGeometryType as he}from"./support/util.js";import{getMapPointsFromScreen as ce,getHittestType as pe}from"../support/hitTestUtils.js";import{FeatureTileSubscriptionManager as de}from"../tiling/FeatureTileSubscriptionManager.js";import{RefreshableLayerView as ye}from"../../layers/RefreshableLayerView.js";import{getHighlightName as me}from"../../support/highlightOptionsUtils.js";function fe(e,t){const r=new Set;return e&&e.forEach(e=>r.add(e)),t&&t.forEach(e=>r.add(e)),r.has("*")?["*"]:Array.from(r)}const ge=4294967294;function we(e,t){return l(e.map(e=>f(()=>{const t=e();return t&&"object"==typeof t?"getTime"in t&&"function"==typeof t.getTime?t.getTime():JSON.stringify(t):t},t,g)))}function ve(e){if(!e.geometry)return e;if(!x(e.geometry))return e;const t=.001/v(e.geometry.spatialReference),r=100;return{geometry:R(e.geometry,{maxSegmentsPerCurve:12e3,maxSegmentLength:r*t,maxDeviation:0}),attributes:e.attributes}}const _e=l=>{const g=ye(W(l));let v=class extends g{constructor(){super(...arguments),this._commandsQueue=new ne({process:e=>{switch(e.type){case"override-batch":return this._doOverride(e);case"update":return this._doUpdate()}}}),this._visibilityOverrides=new Set,this._lastAvailableFields=[],this._lastTargetState=null,this._stationaryRotation=0,this.eventLog=new J,this._sourceRefreshVersion=1,this._displayRefreshVersion=1,this._pipelineUpdating=!1,this._editUpdatingHandles=new S,this._fields=null,this._hittestDrawHelper=null,this._sourceUpdating=!1,this.featureEffectView=new I}destroy(){this._editUpdatingHandles.destroy(),this._workerProxy?.destroy(),this._workerAttached.reject(p()),this._commandsQueue.destroy(),this._hittestDrawHelper?.destroy()}initialize(){this._workerAttached=Promise.withResolvers(),d(this._workerAttached.promise),this.addResolvingPromise(this._initProxy()),this.featureEffectView.featureEffect=this.featureEffect,this.featureEffectView.endTransition()}async _initProxy(){const e=this.layer;if("isTable"in e&&e.isTable)throw new o("featurelayerview:table-not-supported","table feature layer can't be displayed",{layer:e});if(("feature"===e.type||"subtype-group"===e.type)&&!1===C(e)?.operations.supportsQuery)throw new o("featurelayerview:query-not-supported","layer view requires a layer with query capability",{layer:e});this._workerProxy&&this._workerProxy.destroy();const t=this._createClientOptions();this._workerProxy=await N(t)}async _attachProxy(){const e=j(this.view.extent,this.view.rotation,this.view.center),t={tileInfoJSON:this.view?.featuresTilingScheme?.tileInfo?.toJSON(),initialViewExtent:e.toJSON()};try{await this._workerProxy.pipeline.onAttach(t),this._workerAttached.resolve()}catch(r){this._workerAttached.reject(p()),y(r)}}async _detachProxy(){return this._workerProxy.pipeline.onDetach()}async getWorker(){return await this._workerAttached.promise,this._workerProxy}get dataUpdating(){return this._sourceUpdating||this._editUpdatingHandles.updating}get hasAllFeatures(){return this.layer.visible&&!this.suspended&&this.eventLog.hasAllData&&this.eventLog.willQueryAllFeatures}get hasAllFeaturesInView(){const e=this.effectiveDisplayFilter?.where||null,t=!this.eventLog.willQueryAllFeatures&&null!=e&&"1=1"!==e;return this.layer.visible&&!this.suspended&&this.eventLog.hasAllData&&!t}get hasFullGeometries(){return this.layer.visible&&!this.suspended&&this.eventLog.hasAllData&&this.eventLog.willQueryFullResolutionGeometry}get layerAdapter(){switch(this.layer.type){case"annotation-feature":return new z(this.layer);case"dimension-feature":return new Z(this.layer);case"feature":return"memory"===this.layer.source.type?new X(this.layer):new K(this.layer);case"geojson":case"csv":case"wfs":return new X(this.layer);case"parquet":return new re(this.layer);case"subtype-group":return new ie(this.layer);case"ogc-feature":return new ee(this.layer);case"stream":return new se(this.layer);case"oriented-imagery":return new te(this.layer);case"knowledge-graph-sublayer":return new Y(this.layer);case"catalog-footprint":return new B(this.layer);default:this.layer}return null}get timeExtent(){return V(this.layerAdapter.timeOptions,this.view?.timeExtent,this._get("timeExtent"))}get usedMemory(){return this.container.usedMemory+this.eventLog.pipelineStatistics.usedMemory}getDisplayStatistics(e,t){return this.featureContainer?.getDisplayStatistics(e,t)}highlight(e,t){const s=me(t);let o;if(e instanceof O)o=e;else{let t;e instanceof r?t=[e.getObjectId()]:"number"==typeof e||"string"==typeof e?t=[e]:a.isCollection(e)&&e.length>0?t=e.map(e=>e?.getObjectId()).toArray():Array.isArray(e)&&e.length>0&&(t="number"==typeof e[0]||"string"==typeof e[0]?e:e.map(e=>e?.getObjectId()));const s=t?.filter(i);if(!s?.length)return n();o=new O({objectIds:s})}const l=this._addHighlightFilter(o,s);return n(()=>!this.destroyed&&this._removeHighlight(l))}async hitTest(e,i,a){const o=pe(i);if(!o)return null;const n="point"===o,{trueHitIds:l,candidateHitIds:u}=await this.featureContainer.hitTest(i,a??null),h=await this.getWorker(),[c,p]=await Promise.all([h.pipeline.getDisplayFeatures(u),h.pipeline.getDisplayFeatures(l)]),{features:d,aggregates:y,tracks:f}=c,{features:g,aggregates:w,tracks:v}=p,_=[];if(!n&&this.hasRenderer()){const e=new Map,t=new r;for(const r of d){t.attributes=r.attributes,t.geometry=F(r.geometry),t.symbol=null;const s=this.layerAdapter.getRenderer(t);if(!s){_.push(r);continue}const i=await D(t,{renderer:s,scale:this.view.scale,resolution:this.view.resolution,spatialReference:this.view.spatialReference,viewingMode:"2d",timeZone:this.view.timeZone});if(!i)continue;let a=null;const o=T(i);if("web-style"===o.type)try{const e=T(await o.fetchSymbol({acceptedFormats:["cim","web"]}));a="web-style"===e.type?null:e}catch(R){m(R),0;continue}else a=o;const n=a?.symbol;if(!n)continue;const l=this.view.stage.cimAnalyzer.analyzeSymbolReference(a,!1).some(e=>"alignment"in e&&0===e.alignment);e.set(r,{cimSymbol:n,isScreenAligned:l})}e.size>0&&!this._hittestDrawHelper&&(this._hittestDrawHelper=new H(this.view.stage.painter.textureManager.resourceManager));const{resolution:s,rotation:a}=this.view.state,n=ce(this.view,i);for(const[r,{cimSymbol:i,isScreenAligned:l}]of e){if(!r)continue;const e={hittestType:o,textInfo:null,mapRotation:a,resolution:s,searchDist:0,isScreenAligned:l};this._hittestDrawHelper.hitTest(n,i,r.geometry,e)&&_.push(r)}}else _.push(...d);const b=[...g,..._],S=[...w,...y],A=[...v,...f],j=this.featureContainer.getSortKeys(b.map(e=>e.displayId)),x=({displayId:e},{displayId:t})=>j.has(e)&&j.has(t)?j.get(e)-j.get(t):e-t;return b.sort(x).reverse(),S.sort(x).reverse(),[...S.map(r=>this._createAggregateGraphicHit(e,t.fromJSON(r))),...A.map(t=>this._createTrackGraphicHit(e,s.fromJSON(t))),...b.map(t=>this._createFeatureGraphicHit(n?e:null,r.fromJSON(t)))]}async queryAggregateSummaryStatistics(e,t,r){const s={...t,scale:this.view.scale},i=(await this.getWorker()).aggregates.executeQueryForSummaryStatistics(this._cleanUpAggregateQuery(e),s,r);return ue(i,{})}async queryUniqueValues(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForUniqueValues(this._cleanUpQuery(e),i,r);return ue(a,{uniqueValueInfos:[]})}async queryAggregateUniqueValues(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.aggregates.executeQueryForUniqueValues(this._cleanUpAggregateQuery(e),i,r);return ue(a,{uniqueValueInfos:[]})}async queryAggregateClassBreaks(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.aggregates.executeQueryForClassBreaks(this._cleanUpAggregateQuery(e),i,r);return ue(a,{classBreakInfos:[]})}async queryHistogram(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForHistogram(this._cleanUpQuery(e),i,r);return ue(a,{bins:[],maxValue:null,minValue:null,normalizationTotal:null})}async queryAggregateCount(e,t){const r=(await this.getWorker()).aggregates.executeQueryForCount(this._cleanUpAggregateQuery(e),t);return ue(r,0)}async queryAggregateHistogram(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.aggregates.executeQueryForHistogram(this._cleanUpAggregateQuery(e),i,r);return ue(a,{bins:[],maxValue:null,minValue:null,normalizationTotal:null})}async queryAggregateIds(e,t){const r=(await this.getWorker()).aggregates.executeQueryForIds(this._cleanUpAggregateQuery(e),t);return ue(r,[])}async queryAggregateJSON(e,t){const r=(await this.getWorker()).aggregates.executeQuery(this._cleanUpAggregateQuery(e),t);return ue(r,{features:[]})}async queryAttributeBins(e,t){const r=(await this.getWorker()).features.executeAttributeBinsQuery(this._cleanUpAttributeBinsQuery(e),t),s=await ue(r,{features:[]});return q.fromJSON(s)}async queryAggregates(e,t){const r=(await this.getWorker()).aggregates.executeQuery(this._cleanUpAggregateQuery(e),t),s=await ue(r,{features:[]}),i=Q.fromJSON(s);return i.features.forEach(e=>this.layerAdapter.setAggregateGraphicOrigin?.(e)),i}async queryClassBreaks(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForClassBreaks(this._cleanUpQuery(e),i,r);return ue(a,{classBreakInfos:[]})}async queryExtent(e,t){const r=(await this.getWorker()).features.executeQueryForExtent(this._cleanUpQuery(e),t),s=await ue(r,{count:0,extent:null});return{count:s.count,extent:A.fromJSON(s.extent)}}async queryFeatureCount(e,t){const r=(await this.getWorker()).features.executeQueryForCount(this._cleanUpQuery(e),t);return ue(r,0)}queryFeatures(e,t){return this.queryFeaturesJSON(e,t).then(e=>{const t=P.fromJSON(e);return t.features.forEach(e=>this._setOriginForFeature(e)),t})}async queryFeaturesJSON(e,t){const r=(await this.getWorker()).features.executeQuery(this._cleanUpQuery(e),t);return ue(r,{features:[]})}async queryHeatmapStatistics(e){return(await this.getWorker()).pipeline.queryHeatmapStatistics(e)}async queryObjectIds(e,t){const r=(await this.getWorker()).features.executeQueryForIds(this._cleanUpQuery(e),t);return ue(r,[])}async queryStatistics(){const e=await this.getWorker();return ue(e.pipeline.queryStatistics(),{featureCount:0,ringCount:0,vertexCount:0})}async querySummaryStatistics(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForSummaryStatistics(this._cleanUpQuery(e),i,r);return ue(a,{})}async queryVisibleFeatures(e,t){const r=(await this.getWorker()).pipeline.queryVisibleFeatures(this._cleanUpQuery(e),t),s=await ue(r,{features:[]}),i=P.fromJSON(s);return i.features.forEach(e=>this._setOriginForFeature(e)),i}async getSampleFeatures(e){return(await this.getWorker()).pipeline.getSampleFeatures(e)}setVisibility(e,t){t?this._visibilityOverrides.delete(e):this._visibilityOverrides.add(e),this._update()}update(e){if(!this._subscriptions)return;this.view.animation&&!this._lastTargetState&&(this._lastTargetState=e.state.clone()),!this.view.animation&&this._lastTargetState&&(this._lastTargetState=null);const t=this.featureContainer.getPresenting(),r=this._subscriptions.update(e.targetState,this._lastTargetState,t);r&&(this.featureContainer.updateSubscriptions(r),d(this._updatingHandles.addPromise(this.getWorker().then(e=>e.pipeline.updateSubscriptions(r))))),this._subscriptions.coverage&&this.featureContainer.setCoverage(this._subscriptions.coverage)}attach(){has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D.attach"),d(this._updatingHandles.addPromise(this._workerAttached.promise)),d(this._attachProxy()),this.featureContainer=new G(this),this.container.addChild(this.featureContainer),this.view.timeline.record(`${this.layer.title} (FeatureLayer) Attach`),this._subscriptions=new de(this.view.featuresTilingScheme),this._stationaryRotation=this.view.rotation,this.requestUpdate(),this.addAttachHandles([we([()=>this._displayRefreshVersion,()=>"displayFilterInfo"in this.layer&&this.layer.displayFilterInfo,()=>this.timeExtent,()=>this.clips,()=>this.filter,()=>this.effectiveDisplayFilterClause,()=>this.featureEffect,()=>this._sourceRefreshVersion,()=>this.view.timeZone,()=>this.view.timeExtent,...this.layerAdapter.getUpdateHashProperties(this.view)],()=>this._update()),f(()=>this.updateSuspended,e=>{e||this._subscriptions.resume(this.featureContainer.getPresenting())}),f(()=>this.view.stationary,e=>{if(!e)return;const t=this.view.rotation;t!==this._stationaryRotation&&(this._stationaryRotation=t,this._update()),this.getWorker().then(e=>{if(this.destroyed)return;const t=j(this.view.extent,this.view.rotation,this.view.center);return e.pipeline.updateStationaryExtent(t.toJSON(),this.featureContainer.requiresRefresh)}).catch(()=>{})})]),this._update(),"stream"!==this.layer.type&&"parquet"!==this.layer.type&&"catalog-footprint"!==this.layer.type&&this.addAttachHandles(this.layer.on("edits",e=>this._editUpdatingHandles.addPromise(this._edit(e))))}emitFirstDraw(e){this.emit("first-draw",{timestamp:e})}detach(){has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D.detach"),this._detachProxy(),this._fields=null,this.featureContainer.destroy(),this.featureContainer=null,this._commandsQueue.clear(),this.container.removeAllChildren(),this._subscriptions=h(this._subscriptions),this._workerProxy.pipeline.onDetach(),this._workerAttached=Promise.withResolvers(),d(this._workerAttached.promise),this._lastAvailableFields=[],this._lastSchema=null}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}addOverrides(e){return this._commandsQueue.push({type:"override",options:{...e,release:[]}})}removeOverrides(e){for(const r of e)if(null==r)throw new o("featurelayerview:bad-override","Tried to remove an override for an invalid objectId",{objectId:r});const t={added:[],updated:[],removed:[],release:e,isWeak:!1,historicMoment:null};return this._commandsQueue.push({type:"override",options:t})}onProxyClientEvent(e){}hasRenderer(){return"renderer"in this.layer&&null!=this.layer.renderer}isUpdating(){const e=this.hasRenderer(),t=this._commandsQueue.updateTracking.updating,r=null!=this._updatingRequiredPromise,s=this.featureContainer.updating;return this.updateRequested||e&&(t||r)||s||this._pipelineUpdating||this.dataUpdating}_createClientOptions(){const e=this;return{updateSchemaStart:()=>e.updateSchemaStart(),updateSchemaEnd:t=>e.updateSchemaEnd(t),openMemoryPorts:async()=>{if(this.layerAdapter?.openMessagePorts){const e=await this.layerAdapter.openMessagePorts();return{result:e,transferList:e}}throw new Error("InternalError: Layer adapter does not support opening message ports")},openGlyphPorts:async()=>{const t=await e.container.stage.textureManager.openMessagePorts();return{result:t,transferList:t}},get container(){return e.featureContainer},setUpdating:e=>{this._set("_pipelineUpdating",e.pipeline),this._set("_sourceUpdating",e.source)},emitEvent:e=>{this.onProxyClientEvent(e)},get eventLog(){return e.eventLog},fetch:async t=>{if(has("esri-2d-stabilize-glyphs")){const r=[];for(const s of t)r.push(await e.view.stage.painter.textureManager.rasterizeItem(s));return r}return Promise.all(t.map(t=>e.view.stage.painter.textureManager.rasterizeItem(t)))},fetchDictionary:e=>Promise.all(e.map(e=>this._fetchDictionaryRequest(e))),fetchMesh:e=>Promise.all(e.map(e=>this._fetchMeshRequest(e)))}}async _fetchDictionaryRequest(e){try{if(!("renderer"in this.layer)||!this.layer.renderer||"dictionary"!==this.layer.renderer.type)throw new Error("InternalError: Expected renderer to be of type 'dictionary'");const t=this.layer.renderer,r=this._lastSchema.processor.mesh.factory.symbology;if("dictionary"!==r.type)throw new Error("InternalError: Expected schema to be of type 'dictionary'");const s={cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,store:this.featureContainer.instanceStore,scaleExpression:r.scaleExpression,viewRotation:this._stationaryRotation};this._fields||(this._fields=this.layer.fields.map(e=>e.toJSON()));const i=r.visualVariableUniforms,a=he(this.layer.geometryType),o=await t.getSymbolForControlString(e.controlString,a,!1);if(!o||!o.data)return{type:"dictionary-response",meshes:[]};return{type:"dictionary-response",meshes:await ae({...o.data,hasTextStringTemplates:!0},{uniforms:i,path:"renderer",schemaOptions:s})}}catch(t){return{type:"dictionary-response",meshes:[]}}}async _fetchMeshRequest(e){const{layer:t}=this;try{const r={cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,store:this.featureContainer.instanceStore,scaleExpression:null,viewRotation:this._stationaryRotation};this._fields||(this._fields=t.fields.map(e=>e.toJSON()));return{type:"mesh-response",meshes:await ae({...e.symbolReference,hasTextStringTemplates:!0},{path:"anno-like",schemaOptions:r,uniforms:{visualVariableColor:null,visualVariableOpacity:null,visualVariableRotation:null,visualVariableSizeStops:null,visualVariableSizeScaleStops:null,visualVariableSizeOutlineScaleStops:null,visualVariableSizeUnitValue:null,visualVariableSizeMinMaxValue:null}})}}catch(r){return{type:"mesh-response",meshes:[]}}}_cleanUpQuery(e){const t=L.from(e)||this.createQuery();return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),"returnZ"in this.layer&&(t.returnZ??=this.layer.returnZ),"returnM"in this.layer&&(t.returnM??=this.layer.returnM),t.toJSON()}_cleanUpAttributeBinsQuery(e){const t=M.from(e);return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),t.toJSON()}_cleanUpAggregateQuery(e){const t=L.from(e)||this.createAggregateQuery();t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference);const r=t.objectIds??[];for(const s of t.aggregateIds??[])r.push(s);return t.objectIds=r,t.aggregateIds=[],t.toJSON()}async _update(){return this._commandsQueue.push({type:"update"})}_edit(e){return this._commandsQueue.push({type:"edit",event:e})}async doRefresh(e){this.attached&&(this.updateSuspended&&e||(e?this.incrementSourceRefreshVersion():this.incrementDisplayRefreshVersion()))}incrementSourceRefreshVersion(){this._sourceRefreshVersion=(this._sourceRefreshVersion+1)%ge+1}incrementDisplayRefreshVersion(){this._displayRefreshVersion=(this._displayRefreshVersion+1)%ge+1}async _resolveIdenifiers(e){const t=[],r=[];for(const a of e)null==a.objectId||-1===a.objectId?null==a.globalId?u.getLogger(this).warn("mapview-apply-edits","A feature identifier must contain either a GlobalId or ObjectId. Ignoring",{identifier:a}):r.push(a.globalId):t.push(a.objectId);const s="globalIdField"in this.layer&&this.layer.globalIdField,i=s&&this.availableFields.includes(s);if(r.length&&!i)return u.getLogger(this).error(new o("mapview-apply-edits",`Editing the specified service requires the layer's globalIdField, ${s} to be included the layer's outFields for updates to be reflected on the map`)),t;if(r.length){const e=await this._workerProxy.pipeline.getObjectIdsFromGlobalIds(r);for(const r of e)t.push(r)}return t}_resolveOverrides(e){const t=!1,r=!1,s=he(this.layer.geometryType),i=$(this.layer),a=[];for(const n of e.added){const e=E(ve(n),s,t,r,i);if(null==e.objectId)throw new o("featurelayerview:bad-override","Feature does not have an objectId",{feature:n});a.push(e)}for(const n of e.updated){const e=E(ve(n),s,t,r,i);if(null==e.objectId)throw new o("featurelayerview:bad-override","Feature does not have an objectId",{feature:n});a.push(e)}for(const n of e.removed)if(null==n)throw new o("featurelayerview:bad-override","Tried to remove an invalid objectId",{objectId:n});return{type:"override",updates:a,removed:e.removed,release:e.release,isWeak:e.isWeak??!1,historicMoment:e.historicMoment??null}}async _resolveEdit(e){const t=this.layer,r=e.historicMoment?.getTime()??null,s="layerId"in t&&e.editedFeatures?.find(e=>e.layerId===t.layerId);if(s&&this._canEditByFeature(s)){const{adds:e,deletes:t,updates:i}=s.editedFeatures,a=this.layer.objectIdField,o=i.map(e=>e.current),n=t.map(e=>"attributes"in e?{objectId:a?e.attributes[a]:null}:e),l=await this._resolveIdenifiers(n);return this._resolveOverrides({added:e,updated:o,removed:l,historicMoment:r,isWeak:!0,release:[]})}const[i,a,o]=await Promise.all([this._resolveIdenifiers(e.addedFeatures),this._resolveIdenifiers(e.updatedFeatures),this._resolveIdenifiers(e.deletedFeatures)]);return{type:"override-by-id",updates:[...i,...a],removed:o,historicMoment:r,isWeak:!0}}_canEditByFeature(e){const{adds:t,updates:r}=e.editedFeatures;return t.every(e=>this.view.spatialReference.equals(e.geometry?.spatialReference))&&r.every(e=>this.view.spatialReference.equals(e.current.geometry?.spatialReference))}async updateSchemaStart(){const e=this.layer;"featureReduction"in e&&e.featureReduction&&e.featureReduction!==this._lastFeatureReduction&&(e.featureReduction=e.featureReduction?.clone(),this._lastFeatureReduction=e.featureReduction);try{if(await Promise.allSettled([this._handleChange(),k(e)]),this.destroyed||!this.layerAdapter?.hasRequiredSupport||!this._subscriptions)return null;const t=this.featureContainer.updateStart("subtype-group"===e.type);this._lastFeatureEffect=this.featureEffect;const r={store:t,cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,scaleExpression:void 0,viewRotation:this._stationaryRotation},s=await this._createViewSchemaConfig(),i={source:await this.layerAdapter.createSourceSchema(s,this._sourceRefreshVersion),processor:await this.layerAdapter.createProcessorSchema(r,s,this._displayRefreshVersion)};return c(this._lastSchema?.source.strategy,i.source.strategy)||c(this._lastSchema?.processor,i.processor)?(this._lastSchema=i,this._fields=null,i):null}catch(t){}return null}async updateSchemaEnd(e){try{this.featureEffectView.featureEffect=this._lastFeatureEffect,e&&this.featureEffectView.endTransition(),await this.featureContainer.updateEnd(this._lastSchema.processor,this.layerAdapter.getLabelingDeconflictionInfo(),e),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D.updateEnd")}catch(t){}}async _doUpdate(){const e=Math.round(performance.now()),t=await this.getWorker();await t.pipeline.updateSchema(e),this.requestUpdate()}async _doOverride(e){const t=await this.getWorker();try{let r=new oe;for(const s of e.messages)switch(s.type){case"edit":r.tryAdd(await this._resolveEdit(s.event))||(await t.pipeline.onOverride(r.toMessage()),r=new oe,r.tryAdd(await this._resolveEdit(s.event)));break;case"override":r.tryAdd(this._resolveOverrides(s.options))||(await t.pipeline.onOverride(r.toMessage()),r=new oe,r.tryAdd(this._resolveOverrides(s.options)));break}await t.pipeline.onOverride(r.toMessage())}catch(r){m(r),0}}_getEffectiveAvailableFields(e){const t=fe(this._lastAvailableFields,e);return this._lastAvailableFields=t,U(this.layer.fieldsIndex,t)}async _createViewSchemaConfig(){const e=this.requiresCurrentUser?await this.signedInUser:null,t=x(this.view,this.layerAdapter,this.timeExtent,this._visibilityOverrides,this.filter,this.effectiveDisplayFilterClause),r=this.featureEffect?.filter?.toJSON()??null,s=this._getHighlightFilterGroups().map(({order:e,filters:t})=>({order:e,filters:t.map(e=>e.toJSON())})),i=le({layerFilter:t,effectFilter:r,highlightFilters:s});return{availableFields:this._getEffectiveAvailableFields(this.availableFields),displayFilterEnabled:this.displayFilterEnabled,filters:i,scale:this.view.scale,timeZone:this.view.timeZone,timeExtent:this.view.timeExtent,currentUser:e,spatialReference:this.view.spatialReference,extent:this.view.extent,returnZ:this.hasZ,returnM:this.hasM}}_onHighlightChange(){this._commandsQueue.push({type:"update"})}_setOriginForFeature(e){e.layer=e.sourceLayer=this.layer,this.layerAdapter.setGraphicOrigin(e)}_createFeatureGraphicHit(e,t){return this._setOriginForFeature(t),this._createGraphicHit(e,t)}_createTrackGraphicHit(e,t){return t.layer=t.sourceLayer=this.layer,this.layerAdapter.setTrackGraphicOrigin?.(t),this._createGraphicHit(e,t)}_createAggregateGraphicHit(e,t){return t.layer=t.sourceLayer=this.layer,this.layerAdapter.setAggregateGraphicOrigin?.(t),this._createGraphicHit(e,t)}_createGraphicHit(e,t){return null!=t.geometry&&(t.geometry.spatialReference=this.view.spatialReference),{type:"graphic",graphic:t,layer:this.layer,mapPoint:e}}};function x(e,t,r,s,i,a){i&&(i=i.clone());const o=null!=i?i.timeExtent:null,n=null!=r&&null!=o?r.intersection(o):r||o;n&&(i??=new O,i.timeExtent=n),i=t.addFilters?.(i,e)??i,a&&(i??=new O,i.where=w(i.where,a));let l=i?.toJSON()??null;return s.size&&(l??=(new O).toJSON(),l.hiddenIds=Array.from(s)),l}return e([_()],v.prototype,"_commandsQueue",void 0),e([_()],v.prototype,"_sourceRefreshVersion",void 0),e([_()],v.prototype,"_displayRefreshVersion",void 0),e([_({readOnly:!0})],v.prototype,"_pipelineUpdating",void 0),e([_()],v.prototype,"_sourceUpdating",void 0),e([_({readOnly:!0})],v.prototype,"dataUpdating",null),e([_({readOnly:!0})],v.prototype,"hasAllFeatures",null),e([_({readOnly:!0})],v.prototype,"hasAllFeaturesInView",null),e([_({readOnly:!0})],v.prototype,"hasFullGeometries",null),e([_()],v.prototype,"featureEffectView",void 0),e([_()],v.prototype,"layerAdapter",null),e([_({readOnly:!0})],v.prototype,"timeExtent",null),v=e([b("esri.views.2d.layers.FeatureLikeLayerView2D")],v),v};export{_e as FeatureLikeLayerView2D};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as i}from"tslib";import e from"../../../Graphic.js";import{isSome as r}from"../../../core/arrayUtils.js";import t from"../../../core/Collection.js";import{makeHandle as s}from"../../../core/handleUtils.js";import{destroyMaybe as h}from"../../../core/maybe.js";import{when as a}from"../../../core/reactiveUtils.js";import{isScreenRect as p}from"../../../core/screenUtils.js";import{property as o,subclass as c}from"../../../core/accessorSupport/decorators.js";import{LayerView2D as l}from"./LayerView2D.js";import g from"./graphics/GraphicContainer.js";import n from"./graphics/GraphicsView2D.js";import m from"../../layers/GraphicsLayerView.js";import{getHighlightName as d}from"../../support/highlightOptionsUtils.js";let w=class extends(l(m)){attach(){this.graphicsView=new n({requestUpdateCallback:()=>this.requestUpdate(),view:this.view,graphics:this.layer.graphics,container:new g(this.view.featuresTilingScheme),layerId:this.layer.id}),this.container.addChild(this.graphicsView.container),this.addAttachHandles([this.layer.on("graphic-update",this.graphicsView.graphicUpdateHandler),a(()=>this.layer?.visible,()=>{this.graphicsView.update({state:this.view.state}),this.graphicsView.pushUpdate()})]),this._processHighlight()}detach(){this.container.removeAllChildren(),this.graphicsView=h(this.graphicsView)}async hitTest(i,e){return this.graphicsView?this.graphicsView.hitTest(this.view,e).map(r=>({type:"graphic",graphic:r,mapPoint:p(e)?null:i,layer:this.layer})):null}queryGraphics(){return Promise.resolve(this.graphicsView.graphics)}update(i){this.graphicsView.processUpdate(i)}viewChange(){this.graphicsView.viewChange()}moveEnd(){}isUpdating(){return!this.graphicsView||this.graphicsView.updating}highlight(i,h){let a;"number"==typeof i?a=[i]:i instanceof e?a=[i.uid]:Array.isArray(i)&&i.length>0?a="number"==typeof i[0]?i:i.map(i=>i&&i.uid):t.isCollection(i)&&i.length>0&&(a=i.map(i=>i&&i.uid).toArray());const p=a?.filter(r);if(!p?.length)return s();const o=d(h);return this._addHighlights(p,o),s(()=>!this.destroyed&&this._removeHighlights(p,o))}_processHighlight(){const i=this._getHighlights();this.graphicsView?.setHighlight(i)}};i([o()],w.prototype,"graphicsView",void 0),w=i([c("esri.views.2d.layers.GraphicsLayerView2D")],w);const u=w;export{u as default};
2
+ import{__decorate as i}from"tslib";import e from"../../../Graphic.js";import{isSome as r}from"../../../core/arrayUtils.js";import t from"../../../core/Collection.js";import{makeHandle as s}from"../../../core/handleUtils.js";import{destroyMaybe as h}from"../../../core/maybe.js";import{when as a}from"../../../core/reactiveUtils.js";import{isScreenRect as o}from"../../../core/screenUtils.js";import{property as p,subclass as c}from"../../../core/accessorSupport/decorators.js";import l from"../../../layers/support/FeatureFilter.js";import{LayerView2D as n}from"./LayerView2D.js";import g from"./graphics/GraphicContainer.js";import m from"./graphics/GraphicsView2D.js";import d from"../../layers/GraphicsLayerView.js";import{getHighlightName as w}from"../../support/highlightOptionsUtils.js";let u=class extends(n(d)){attach(){this.graphicsView=new m({requestUpdateCallback:()=>this.requestUpdate(),view:this.view,graphics:this.layer.graphics,container:new g(this.view.featuresTilingScheme),layerId:this.layer.id}),this.container.addChild(this.graphicsView.container),this.addAttachHandles([this.layer.on("graphic-update",this.graphicsView.graphicUpdateHandler),a(()=>this.layer?.visible,()=>{this.graphicsView.update({state:this.view.state}),this.graphicsView.pushUpdate()})]),this._onHighlightChange()}detach(){this.container.removeAllChildren(),this.graphicsView=h(this.graphicsView)}async hitTest(i,e){return this.graphicsView?this.graphicsView.hitTest(this.view,e).map(r=>({type:"graphic",graphic:r,mapPoint:o(e)?null:i,layer:this.layer})):null}queryGraphics(){return Promise.resolve(this.graphicsView.graphics)}update(i){this.graphicsView.processUpdate(i)}viewChange(){this.graphicsView.viewChange()}moveEnd(){}isUpdating(){return!this.graphicsView||this.graphicsView.updating}highlight(i,h){let a;"number"==typeof i?a=[i]:i instanceof e?a=[i.uid]:Array.isArray(i)&&i.length>0?a="number"==typeof i[0]?i:i.map(i=>i&&i.uid):t.isCollection(i)&&i.length>0&&(a=i.map(i=>i&&i.uid).toArray());const o=a?.filter(r);if(!o?.length)return s();const p=w(h),c=this._addHighlightFilter(new l({objectIds:o}),p);return s(()=>!this.destroyed&&this._removeHighlight(c))}_onHighlightChange(){const i=this._getHighlightFilterGroups();this.graphicsView?.setHighlightFilters(i)}};i([p()],u.prototype,"graphicsView",void 0),u=i([c("esri.views.2d.layers.GraphicsLayerView2D")],u);const y=u;export{y as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import i from"../../../Graphic.js";import{isSome as e}from"../../../core/arrayUtils.js";import s from"../../../core/Collection.js";import{makeHandle as r}from"../../../core/handleUtils.js";import"../../../core/has.js";import{QueueProcessor as h}from"../../../core/QueueProcessor.js";import{watch as a,sync as o}from"../../../core/reactiveUtils.js";import{isScreenRect as n}from"../../../core/screenUtils.js";import{property as l,subclass as g}from"../../../core/accessorSupport/decorators.js";import{convertGeometryToMask as p}from"../../../layers/raster/functions/clipUtils.js";import{GraphicsCollection as c}from"../../../support/GraphicsCollection.js";import d from"../engine/flow/FlowView2D.js";import{LayerView2D as u}from"./LayerView2D.js";import m from"./graphics/GraphicsView2D.js";import w from"./graphics/HighlightGraphicContainer.js";import y from"./imagery/ImageryView2D.js";import f from"./imagery/VectorFieldView2D.js";import v from"../../layers/ImageryLayerView.js";import{RefreshableLayerView as _}from"../../layers/RefreshableLayerView.js";import{isPixelHighlightTarget as b,isEmptyPixelRanges as x}from"../../layers/support/highlightUtils.js";import{defaultColor as H}from"../../support/HighlightDefaults.js";import{getHighlightName as V}from"../../support/highlightOptionsUtils.js";let j=class extends(_(u(v))){constructor(){super(...arguments),this._exportImageVersion=-1,this._highlightGraphics=new c,this._highlightView=void 0,this._pixelHighlights=[],this.layer=null,this.subview=null}get pixelData(){const{subview:t}=this;return this.updating||!t?null:"getPixelData"in t?t.getPixelData():null}update(t){this.subview?.update(t)}attach(){this.layer.increaseRasterJobHandlerUsage(),this._setSubView(),this.view&&(this._highlightView=new m({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new w(this.view.featuresTilingScheme)}),this.container.addChild(this._highlightView.container)),this.addAttachHandles([a(()=>this.layer.exportImageServiceParameters.version,t=>{t&&this._exportImageVersion!==t&&(this._exportImageVersion=t,this.requestUpdate())},o),a(()=>this.timeExtent,t=>{const{subview:i}=this;i&&(i.timeExtent=t,"redraw"in i?this.requestUpdate():i.redrawOrRefetch())},o),this.layer.on("redraw",()=>{const{subview:t}=this;t&&("redraw"in t?t.redraw():t.redrawOrRefetch())}),a(()=>this.layer.renderer,()=>this._setSubView()),a(()=>this.view?.highlights.items.map(({name:t,color:i})=>({name:t,color:i})),()=>this._updateHighlightOptions(this.subview))])}detach(){this.layer.decreaseRasterJobHandlerUsage(),this.container.removeAllChildren(),this._detachSubview(this.subview),this.subview?.destroy(),this.subview=null,this._highlightView?.destroy(),this._exportImageVersion=-1}viewChange(){}moveEnd(){this.requestUpdate()}async hitTest(t,i){const{layer:e,subview:s}=this;if(!e.loaded||!this.attached||!s?.attached)return null;n(i)&&(t=this.view.toMap({x:i.x+i.width/2,y:i.y+i.height/2}));const r=await s.hitTest(t);return null==r?null:[{type:"raster",layer:e,mapPoint:t,...r}]}highlight(t,h){if(b(t))return x(t)?r():this._highlightPixels(t,h);if("number"==typeof t||"string"==typeof t)return this._highlightByImageIds([t],h);const a=Array.isArray(t)||s.isCollection(t)?t.at(0):t;if("number"==typeof a||"string"==typeof a)return this._highlightByImageIds(t,h);if(!(a instanceof i))return r();let o=[];Array.isArray(t)||s.isCollection(t)?o=t.map(t=>t.clone()):t instanceof i&&(o=[t.clone()]);const n=o?.filter(e);if(!n?.length)return r();const l=V(h);return this._addHighlightGraphics(o,l),r(()=>!this.destroyed&&this._removeHighlightGraphics(o,l))}_highlightByImageIds(t,i){const e=V(i),s=new AbortController,{signal:a}=s,o=this.layer.sourceJSON.maxRecordCount??1e3,n=Math.ceil(t.length/o),l=[],g=[],p=new h({concurrency:4,process:t=>this.layer.queryFeatures({objectIds:t.ids,returnGeometry:!0,outSpatialReference:this.view.spatialReference},{signal:a}).then(t=>g.push(...t.features)).catch(()=>{})});for(let r=0;r<n;r++)l.push(p.push({ids:t.slice(r*o,(r+1)*o)}));return Promise.allSettled(l).then(()=>{g.length&&!a.aborted&&(this._addHighlightGraphics(g,e),a.addEventListener("abort",()=>{this._removeHighlightGraphics(g,e)}))}),r(()=>s.abort())}_highlightPixels(t,i){const e={target:t,options:i};return this._pixelHighlights.push(e),this._updateHighlightOptions(this.subview),r(()=>{const t=this._pixelHighlights.indexOf(e);t>-1&&(this._pixelHighlights.splice(t,1),this._updateHighlightOptions(this.subview))})}_addHighlightGraphics(t,i){this._highlightGraphics.addMany(t),this._addHighlights(t.map(t=>t.uid),i)}_removeHighlightGraphics(t,i){this._highlightGraphics.removeMany(t),this._removeHighlights(t.map(t=>t.uid),i)}async doRefresh(){this.requestUpdate()}isUpdating(){return!this.subview||this.subview.updating||!!this._highlightView?.updating}_processHighlight(){const t=this._getHighlights();this._highlightView?.setHighlight(t)}_setSubView(){if(!this.view)return;const t=this.layer.renderer?.type;let i="imagery";if("vector-field"===t?i="imageryVF":"flow"===t&&(i="flow"),this.subview){const{type:t}=this.subview;if(t===i)return this._attachSubview(this.subview),void("flow"===t?this.subview.redrawOrRefetch():"imagery"===t&&"lerc"===this.layer.format?this.subview.redraw():this.requestUpdate());this._detachSubview(this.subview),this.subview?.destroy()}"imagery"===i?(this.subview=new y({layer:this.layer,view:this.view,timeExtent:this.timeExtent,updatingHandles:this._updatingHandles}),this._updateHighlightOptions(this.subview)):this.subview="imageryVF"===i?new f({layer:this.layer,view:this.view,timeExtent:this.timeExtent}):new d({layer:this.layer,layerView:this}),this._attachSubview(this.subview),this.requestUpdate()}_attachSubview(t){t&&!t.attached&&(t.attach(),t.attached=!0,this.container.addChildAt(t.container,0))}_detachSubview(t){t?.attached&&(this.container.removeChild(t.container),t.detach(),t.attached=!1)}_updateHighlightOptions(t){const i=this.view.highlights;this._pixelHighlights.sort((t,e)=>i.findIndex(({name:t})=>t===V(e.options))-i.findIndex(({name:i})=>i===V(t.options)));const s=this._pixelHighlights.map(({target:t,options:e})=>I(t,i,e)).filter(e);"imagery"===t?.type&&(t.pixelHighlights=s,t.attached&&("lerc"===this.layer.format?t.redraw():this.requestUpdate()))}};function I(t,i,e){const s=V(e),r=(i.find(t=>t.name===s)?.color??H).toArray(),{pixelRanges:h}=t;if(Array.isArray(h))return{ranges:h,bandId:t.bandId??0,color:r};const a="extent"===h.type?h:h.extent;if(!a)return;const o=[a.xmin,a.xmax],n=[a.ymin,a.ymax],{xBandId:l,yBandId:g}=t,c=1024,d=1024;return{xBandId:l,yBandId:g,xBandRange:o,yBandRange:n,color:r,width:c,height:d,xyMask:"polygon"===h.type?p({srcExtent:a,geometry:h,size:[c,d]}):void 0}}t([l()],j.prototype,"pixelData",null),t([l()],j.prototype,"subview",void 0),j=t([g("esri.views.2d.layers.ImageryLayerView2D")],j);const U=j;export{U as default};
2
+ import{__decorate as t}from"tslib";import i from"../../../Graphic.js";import{isSome as e}from"../../../core/arrayUtils.js";import s from"../../../core/Collection.js";import{makeHandle as r}from"../../../core/handleUtils.js";import"../../../core/has.js";import{QueueProcessor as h}from"../../../core/QueueProcessor.js";import{watch as a,sync as o}from"../../../core/reactiveUtils.js";import{isScreenRect as n}from"../../../core/screenUtils.js";import{property as l,subclass as g}from"../../../core/accessorSupport/decorators.js";import{convertGeometryToMask as p}from"../../../layers/raster/functions/clipUtils.js";import c from"../../../layers/support/FeatureFilter.js";import{GraphicsCollection as d}from"../../../support/GraphicsCollection.js";import u from"../engine/flow/FlowView2D.js";import{LayerView2D as m}from"./LayerView2D.js";import w from"./graphics/GraphicsView2D.js";import y from"./graphics/HighlightGraphicContainer.js";import f from"./imagery/ImageryView2D.js";import v from"./imagery/VectorFieldView2D.js";import b from"../../layers/ImageryLayerView.js";import{RefreshableLayerView as _}from"../../layers/RefreshableLayerView.js";import{isPixelHighlightTarget as x,isEmptyPixelRanges as H}from"../../layers/support/highlightUtils.js";import{defaultColor as j}from"../../support/HighlightDefaults.js";import{getHighlightName as V}from"../../support/highlightOptionsUtils.js";let I=class extends(_(m(b))){constructor(){super(...arguments),this._exportImageVersion=-1,this._highlightGraphics=new d,this._highlightView=void 0,this._pixelHighlights=[],this.layer=null,this.subview=null}get pixelData(){const{subview:t}=this;return this.updating||!t?null:"getPixelData"in t?t.getPixelData():null}update(t){this.subview?.update(t)}attach(){this.layer.increaseRasterJobHandlerUsage(),this._setSubView(),this.view&&(this._highlightView=new w({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new y(this.view.featuresTilingScheme)}),this.container.addChild(this._highlightView.container)),this.addAttachHandles([a(()=>this.layer.exportImageServiceParameters.version,t=>{t&&this._exportImageVersion!==t&&(this._exportImageVersion=t,this.requestUpdate())},o),a(()=>this.timeExtent,t=>{const{subview:i}=this;i&&(i.timeExtent=t,"redraw"in i?this.requestUpdate():i.redrawOrRefetch())},o),this.layer.on("redraw",()=>{const{subview:t}=this;t&&("redraw"in t?t.redraw():t.redrawOrRefetch())}),a(()=>this.layer.renderer,()=>this._setSubView()),a(()=>this.view?.highlights.items.map(({name:t,color:i})=>({name:t,color:i})),()=>this._updateHighlightOptions(this.subview))])}detach(){this.layer.decreaseRasterJobHandlerUsage(),this.container.removeAllChildren(),this._detachSubview(this.subview),this.subview?.destroy(),this.subview=null,this._highlightView?.destroy(),this._exportImageVersion=-1}viewChange(){}moveEnd(){this.requestUpdate()}async hitTest(t,i){const{layer:e,subview:s}=this;if(!e.loaded||!this.attached||!s?.attached)return null;n(i)&&(t=this.view.toMap({x:i.x+i.width/2,y:i.y+i.height/2}));const r=await s.hitTest(t);return null==r?null:[{type:"raster",layer:e,mapPoint:t,...r}]}highlight(t,h){if(x(t))return H(t)?r():this._highlightPixels(t,h);if("number"==typeof t||"string"==typeof t)return this._highlightByImageIds([t],h);const a=Array.isArray(t)||s.isCollection(t)?t.at(0):t;if("number"==typeof a||"string"==typeof a)return this._highlightByImageIds(t,h);if(!(a instanceof i))return r();let o=[];Array.isArray(t)||s.isCollection(t)?o=t.map(t=>t.clone()):t instanceof i&&(o=[t.clone()]);const n=o?.filter(e);if(!n?.length)return r();const l=V(h),g=this._addHighlightGraphics(o,l);return r(()=>!this.destroyed&&this._removeHighlightGraphics(o,g))}_highlightByImageIds(t,i){const e=V(i),s=new AbortController,{signal:a}=s,o=this.layer.sourceJSON.maxRecordCount??1e3,n=Math.ceil(t.length/o),l=[],g=[],p=new h({concurrency:4,process:t=>this.layer.queryFeatures({objectIds:t.ids,returnGeometry:!0,outSpatialReference:this.view.spatialReference},{signal:a}).then(t=>g.push(...t.features)).catch(()=>{})});for(let r=0;r<n;r++)l.push(p.push({ids:t.slice(r*o,(r+1)*o)}));return Promise.allSettled(l).then(()=>{if(g.length&&!a.aborted){const t=this._addHighlightGraphics(g,e);a.addEventListener("abort",()=>{this._removeHighlightGraphics(g,t)})}}),r(()=>s.abort())}_highlightPixels(t,i){const e={target:t,options:i};return this._pixelHighlights.push(e),this._updateHighlightOptions(this.subview),r(()=>{const t=this._pixelHighlights.indexOf(e);t>-1&&(this._pixelHighlights.splice(t,1),this._updateHighlightOptions(this.subview))})}_addHighlightGraphics(t,i){return this._highlightGraphics.addMany(t),this._addHighlightFilter(new c({objectIds:t.map(t=>t.uid)}),i)}_removeHighlightGraphics(t,i){this._highlightGraphics.removeMany(t),this._removeHighlight(i)}async doRefresh(){this.requestUpdate()}isUpdating(){return!this.subview||this.subview.updating||!!this._highlightView?.updating}_onHighlightChange(){const t=this._getHighlightFilterGroups();this._highlightView?.setHighlightFilters(t)}_setSubView(){if(!this.view)return;const t=this.layer.renderer?.type;let i="imagery";if("vector-field"===t?i="imageryVF":"flow"===t&&(i="flow"),this.subview){const{type:t}=this.subview;if(t===i)return this._attachSubview(this.subview),void("flow"===t?this.subview.redrawOrRefetch():"imagery"===t&&"lerc"===this.layer.format?this.subview.redraw():this.requestUpdate());this._detachSubview(this.subview),this.subview?.destroy()}"imagery"===i?(this.subview=new f({layer:this.layer,view:this.view,timeExtent:this.timeExtent,updatingHandles:this._updatingHandles}),this._updateHighlightOptions(this.subview)):this.subview="imageryVF"===i?new v({layer:this.layer,view:this.view,timeExtent:this.timeExtent}):new u({layer:this.layer,layerView:this}),this._attachSubview(this.subview),this.requestUpdate()}_attachSubview(t){t&&!t.attached&&(t.attach(),t.attached=!0,this.container.addChildAt(t.container,0))}_detachSubview(t){t?.attached&&(this.container.removeChild(t.container),t.detach(),t.attached=!1)}_updateHighlightOptions(t){const i=this.view.highlights;this._pixelHighlights.sort((t,e)=>i.findIndex(({name:t})=>t===V(e.options))-i.findIndex(({name:i})=>i===V(t.options)));const s=this._pixelHighlights.map(({target:t,options:e})=>U(t,i,e)).filter(e);"imagery"===t?.type&&(t.pixelHighlights=s,t.attached&&("lerc"===this.layer.format?t.redraw():this.requestUpdate()))}};function U(t,i,e){const s=V(e),r=(i.find(t=>t.name===s)?.color??j).toArray(),{pixelRanges:h}=t;if(Array.isArray(h))return{ranges:h,bandId:t.bandId??0,color:r};const a="extent"===h.type?h:h.extent;if(!a)return;const o=[a.xmin,a.xmax],n=[a.ymin,a.ymax],{xBandId:l,yBandId:g}=t,c=1024,d=1024;return{xBandId:l,yBandId:g,xBandRange:o,yBandRange:n,color:r,width:c,height:d,xyMask:"polygon"===h.type?p({srcExtent:a,geometry:h,size:[c,d]}):void 0}}t([l()],I.prototype,"pixelData",null),t([l()],I.prototype,"subview",void 0),I=t([g("esri.views.2d.layers.ImageryLayerView2D")],I);const G=I;export{G as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../core/Collection.js";import{referenceSetter as i}from"../../../core/collectionUtils.js";import{deprecatedFunction as s}from"../../../core/deprecate.js";import r from"../../../core/Error.js";import"../../../core/has.js";import h from"../../../core/Logger.js";import{watch as o,syncAndInitial as a}from"../../../core/reactiveUtils.js";import{property as n,subclass as l}from"../../../core/accessorSupport/decorators.js";import{isLinkChartView as p}from"../../../linkChart/guards.js";import{Container as c}from"../engine/Container.js";import{ClipMesh as g}from"../engine/webgl/ClipMesh.js";import{HighlightCounter as d}from"./support/HighlightCounter.js";import{createOrReuseHighlightGradient as u}from"./support/util.js";import f from"../../layers/support/ClipRect.js";import m from"../../layers/support/GeometryClipArea.js";import y from"../../layers/support/Path.js";import{defaultHighlightName as v}from"../../support/HighlightDefaults.js";import w from"../../support/HighlightOptions.js";import{isInEffectiveScaleRange as R}from"../../support/layerViewUtils.js";const _=t.ofType({key:"type",base:null,typeMap:{rect:f,path:y,geometry:m}}),H=new(t.ofType(w)),S=f=>{const m=f;let y=class extends m{constructor(){super(...arguments),this._highlightCounter=new d,this.attached=!1,this.clips=new _,this.highlights=null,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this._visibleAtCurrentScale=!0}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new r("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new c),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([o(()=>this.suspended,e=>{this.container&&(this.container.visible=!e)},a),o(()=>this.updateSuspended,e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()},a),o(()=>this.layer?.opacity??1,e=>{this.container&&(this.container.opacity=e)},a),o(()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal",e=>{this.container&&(this.container.blendMode=e)},a),o(()=>this.layer&&"effect"in this.layer?this.layer.effect:null,e=>{this.container&&(this.container.effect=e)},a),o(()=>this._mergedHighlights.items.map(e=>({name:e.name,options:{fillColor:e.color,haloColor:e.haloColor,fillOpacity:e.fillOpacity,haloOpacity:e.haloOpacity,haloWidth:e.haloWidth,haloBlur:e.haloBlur}})),()=>{this.container.highlightGradient=u(this.container.highlightGradient,this._mergedHighlights.items)},a),o(()=>this._mergedHighlights.items.map(e=>e.name),()=>{this._processHighlight()}),o(()=>this.clips.map(e=>e.version),async()=>{if(this.container&&this.view?.spatialReference){const e=this.view.spatialReference,t=await this._updatingHandles.addPromise(Promise.all(this.clips.items.map(t=>g.create(t,e))));for(const i of this.container.clips)i.destroy();this.container.clips=t.filter(e=>!!e)}},a),o(()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null}),({scale:e,scaleRange:t})=>{const i=R(t,e);i!==this._visibleAtCurrentScale&&(this._visibleAtCurrentScale=i)},a),o(()=>this.layer?.effectiveVisible,async e=>{this.container.requestDeclutter()})],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then(e=>{e===this&&this.processAttach()},()=>{}):this.when().then(()=>{this.processAttach()},()=>{}))}destroy(){this.processDetach(),this.updateRequested=!1;for(const e of this.container?.clips??[])e.destroy()}get highlightOptions(){return this._logHighlightOptionsDeprecation(),this.highlights?.find(({name:e})=>e===v)}set highlightOptions(e){if(this._logHighlightOptionsDeprecation(),!this.highlights){if(!e)return;this.highlights=new t([new w])}const i=this.highlights.find(({name:e})=>e===v);e?i?.assignFrom(e):(this.highlights.remove(i),0===this.highlights.length&&(this.highlights=null))}_logHighlightOptionsDeprecation(){s(h.getLogger(this),"`LayerView.highlightOptions` is deprecated in favor of View.highlights",{replacement:"View.highlights",version:"4.34",see:"https://arcg.is/inbTa1#highlights",warnOnce:!0})}get hasHighlight(){return this._highlightCounter.size>0}get _mergedHighlights(){if(!this.view)return H;if(!this.highlights)return this.view.highlights;const e=this.view.highlights.clone();for(const t of this.highlights){const i=e.find(e=>e.name===t.name);i&&i.assignFrom(t)}return e}get highlightIds(){return Array.from(this._highlightCounter.objectIds)}get scheduler(){return this.view.scheduler}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updating(){if(!this.spatialReferenceSupported)return!1;if(!this.attached)return!0;if(this.suspended)return!1;return this.updateRequested||this.isUpdating()||this._updatingHandles?.updating||this.container.transitioning}get visibleAtCurrentScale(){return this._visibleAtCurrentScale}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t,i){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){if(!this.spatialReferenceSupported)return!1;switch(this.layer?.type){case"link-chart":case"knowledge-graph-sublayer":case"graphics":break;default:if(p(this.view)&&!this.view.inGeographicLayout)return!1}return!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported;return t&&(e.spatialReferenceNotSupported=t),e}addAttachHandles(e){this.addHandles(e,"attach")}_addHighlights(e,t){this._highlightCounter.add(e,t)&&this._processHighlight()}_removeHighlights(e,t){this._highlightCounter.delete(e,t)&&this._processHighlight()}_processHighlight(){}_getHighlights(){const e=[];for(const[t,i]of this._highlightCounter.highlightNamesByObjectId){const s=this._getHighlightBits(i);e.push({objectId:t,highlightFlags:s})}return e}_getHighlightBits(e){const t=new Set(e);let i=1,s=0;if(!this.view)return 0;const r=this._mergedHighlights;for(const{name:h}of r)t.delete(h)&&(s=i),i<<=1;return s}};return e([n()],y.prototype,"attached",void 0),e([n({type:_,set(e){const t=i(e,this._get("clips"),_);this._set("clips",t)}})],y.prototype,"clips",void 0),e([n()],y.prototype,"container",void 0),e([n({type:w})],y.prototype,"highlightOptions",null),e([n({type:t.ofType(w)})],y.prototype,"highlights",void 0),e([n()],y.prototype,"_mergedHighlights",null),e([n()],y.prototype,"moving",void 0),e([n({readOnly:!0})],y.prototype,"spatialReferenceSupported",null),e([n({readOnly:!0})],y.prototype,"updateParameters",void 0),e([n()],y.prototype,"updateRequested",void 0),e([n()],y.prototype,"updating",null),e([n()],y.prototype,"view",void 0),e([n()],y.prototype,"_visibleAtCurrentScale",void 0),e([n({readOnly:!0})],y.prototype,"visibleAtCurrentScale",null),y=e([l("esri.views.2d.layers.LayerView2D")],y),y};export{S as LayerView2D};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Collection.js";import{referenceSetter as i}from"../../../core/collectionUtils.js";import{deprecatedFunction as s}from"../../../core/deprecate.js";import r from"../../../core/Error.js";import"../../../core/has.js";import h from"../../../core/Logger.js";import{watch as o,syncAndInitial as a,sync as n}from"../../../core/reactiveUtils.js";import{property as l,subclass as p}from"../../../core/accessorSupport/decorators.js";import{isLinkChartView as c}from"../../../linkChart/guards.js";import{Container as g}from"../engine/Container.js";import{ClipMesh as d}from"../engine/webgl/ClipMesh.js";import{maxHighlightGroups as u}from"../engine/webgl/definitions.js";import{HighlightRegistry as f}from"./support/HighlightRegistry.js";import{createOrReuseHighlightGradient as m}from"./support/util.js";import y from"../../layers/support/ClipRect.js";import v from"../../layers/support/GeometryClipArea.js";import w from"../../layers/support/Path.js";import{defaultHighlightName as R}from"../../support/HighlightDefaults.js";import _ from"../../support/HighlightOptions.js";import{isInEffectiveScaleRange as S}from"../../support/layerViewUtils.js";const H=t.ofType({key:"type",base:null,typeMap:{rect:y,path:w,geometry:v}}),b=new(t.ofType(_)),j=y=>{const v=y;let w=class extends v{constructor(){super(...arguments),this._highlightRegistry=new f,this.attached=!1,this.clips=new H,this.highlights=null,this.lastUpdateId=-1,this.moving=!1,this.updateRequested=!1,this._visibleAtCurrentScale=!0}initialize(){const e=this.view?.spatialReferenceLocked??!0,t=this.view?.spatialReference;t&&e&&!this.spatialReferenceSupported?this.addResolvingPromise(Promise.reject(new r("layerview:spatial-reference-incompatible","The spatial reference of this layer does not meet the requirements of the view",{layer:this.layer}))):(this.container||(this.container=new g),this.container.fadeTransitionEnabled=!0,this.container.visible=!1,this.container.endTransitions(),this.addHandles([o(()=>this.suspended,e=>{this.container&&(this.container.visible=!e)},a),o(()=>this.updateSuspended,e=>{this.view&&!e&&this.updateRequested&&this.view.requestUpdate()},a),o(()=>this.layer?.opacity??1,e=>{this.container&&(this.container.opacity=e)},a),o(()=>this.layer&&"blendMode"in this.layer?this.layer.blendMode:"normal",e=>{this.container&&(this.container.blendMode=e)},a),o(()=>this.layer&&"effect"in this.layer?this.layer.effect:null,e=>{this.container&&(this.container.effect=e)},a),o(()=>this._effectiveHighlightOptions.items.map(e=>({name:e.name,options:{fillColor:e.color,haloColor:e.haloColor,fillOpacity:e.fillOpacity,haloOpacity:e.haloOpacity,haloWidth:e.haloWidth,haloBlur:e.haloBlur}})),()=>{this.container.highlightGradient=m(this.container.highlightGradient,this._effectiveHighlightOptions.items)},a),o(()=>this._getHighlightFilterGroups(),()=>this._onHighlightChange(),n),o(()=>this.clips.map(e=>e.version),async()=>{if(this.container&&this.view?.spatialReference){const e=this.view.spatialReference,t=await this._updatingHandles.addPromise(Promise.all(this.clips.items.map(t=>d.create(t,e))));for(const i of this.container.clips)i.destroy();this.container.clips=t.filter(e=>!!e)}},a),o(()=>({scale:this.view?.scale,scaleRange:this.layer&&"effectiveScaleRange"in this.layer?this.layer.effectiveScaleRange:null}),({scale:e,scaleRange:t})=>{const i=S(t,e);i!==this._visibleAtCurrentScale&&(this._visibleAtCurrentScale=i)},a),o(()=>this.layer?.effectiveVisible,async e=>{this.container.requestDeclutter()})],"constructor"),this.view?.whenLayerView?this.view.whenLayerView(this.layer).then(e=>{e===this&&this.processAttach()},()=>{}):this.when().then(()=>{this.processAttach()},()=>{}))}destroy(){this.processDetach(),this.updateRequested=!1;for(const e of this.container?.clips??[])e.destroy()}get highlightOptions(){return this._logHighlightOptionsDeprecation(),this.highlights?.find(({name:e})=>e===R)}set highlightOptions(e){if(this._logHighlightOptionsDeprecation(),!this.highlights){if(!e)return;this.highlights=new t([new _])}const i=this.highlights.find(({name:e})=>e===R);e?i?.assignFrom(e):(this.highlights.remove(i),0===this.highlights.length&&(this.highlights=null))}_logHighlightOptionsDeprecation(){s(h.getLogger(this),"`LayerView.highlightOptions` is deprecated in favor of View.highlights",{replacement:"View.highlights",version:"4.34",see:"https://arcg.is/inbTa1#highlights",warnOnce:!0})}get hasHighlight(){return this._highlightRegistry.size>0}get _effectiveHighlightOptions(){if(!this.view)return b;if(!this.highlights)return this.view.highlights;const e=this.view.highlights.clone();for(const t of this.highlights){const i=e.find(e=>e.name===t.name);i&&i.assignFrom(t)}return e}get highlightIds(){return this._highlightRegistry.highlightIds}get scheduler(){return this.view.scheduler}get spatialReferenceSupported(){const e=this.view?.spatialReference;return null==e||this.supportsSpatialReference(e)}get updating(){if(!this.spatialReferenceSupported)return!1;if(!this.attached)return!0;if(this.suspended)return!1;return this.updateRequested||this.isUpdating()||this._updatingHandles?.updating||this.container.transitioning}get visibleAtCurrentScale(){return this._visibleAtCurrentScale}processAttach(){this.isResolved()&&!this.attached&&!this.destroyed&&this.spatialReferenceSupported&&(this.attach(),this.attached=!0,this.requestUpdate())}processDetach(){this.attached&&(this.attached=!1,this.removeHandles("attach"),this.detach(),this.updateRequested=!1)}requestUpdate(){this.destroyed||this.updateRequested||(this.updateRequested=!0,this.updateSuspended||this.view.requestUpdate())}processUpdate(e){!this.isFulfilled()||this.isResolved()?(this._set("updateParameters",e),this.updateRequested&&!this.updateSuspended&&(this.updateRequested=!1,this.update(e))):this.updateRequested=!1}hitTest(e,t,i){return Promise.resolve(null)}supportsSpatialReference(e){return!0}canResume(){if(!this.spatialReferenceSupported)return!1;switch(this.layer?.type){case"link-chart":case"knowledge-graph-sublayer":case"graphics":break;default:if(c(this.view)&&!this.view.inGeographicLayout)return!1}return!!super.canResume()&&this.visibleAtCurrentScale}getSuspendInfo(){const e=super.getSuspendInfo(),t=!this.spatialReferenceSupported;return t&&(e.spatialReferenceNotSupported=t),e}addAttachHandles(e){this.addHandles(e,"attach")}_addHighlightFilter(e,t){return this._highlightRegistry.register(t,e)}_removeHighlight(e){this._highlightRegistry.unregister(e)}_onHighlightChange(){}_getHighlightFilterGroups(){const e=[];for(const{name:t,filters:i}of this._highlightRegistry.highlightGroups){const s=this._effectiveHighlightOptions.findIndex(e=>e.name===t);s<0||s>=u||e.push({order:s,filters:i})}return e}};return e([l()],w.prototype,"attached",void 0),e([l({type:H,set(e){const t=i(e,this._get("clips"),H);this._set("clips",t)}})],w.prototype,"clips",void 0),e([l()],w.prototype,"container",void 0),e([l({type:_})],w.prototype,"highlightOptions",null),e([l({type:t.ofType(_)})],w.prototype,"highlights",void 0),e([l()],w.prototype,"_effectiveHighlightOptions",null),e([l()],w.prototype,"moving",void 0),e([l({readOnly:!0})],w.prototype,"spatialReferenceSupported",null),e([l({readOnly:!0})],w.prototype,"updateParameters",void 0),e([l()],w.prototype,"updateRequested",void 0),e([l()],w.prototype,"updating",null),e([l()],w.prototype,"view",void 0),e([l()],w.prototype,"_visibleAtCurrentScale",void 0),e([l({readOnly:!0})],w.prototype,"visibleAtCurrentScale",null),w=e([p("esri.views.2d.layers.LayerView2D")],w),w};export{j as LayerView2D};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import{makeHandle as i}from"../../../core/handleUtils.js";import e from"../../../core/Logger.js";import{isAbortError as r}from"../../../core/promiseUtils.js";import{watch as h}from"../../../core/reactiveUtils.js";import{property as s,subclass as a}from"../../../core/accessorSupport/decorators.js";import{GraphicsCollection as p}from"../../../support/GraphicsCollection.js";import{BitmapContainer as o}from"../engine/BitmapContainer.js";import{LayerView2D as g}from"./LayerView2D.js";import l from"./graphics/GraphicsView2D.js";import n from"./graphics/HighlightGraphicContainer.js";import m from"./support/ExportStrategy.js";import d from"../../layers/LayerView.js";import c from"../../layers/MapImageLayerView.js";import{RefreshableLayerView as u}from"../../layers/RefreshableLayerView.js";import{getHighlightGraphics as f}from"../../layers/support/highlightUtils.js";import{MapServiceLayerViewHelper as y}from"../../layers/support/MapServiceLayerViewHelper.js";import{createQueryGeometry as _}from"../../support/drapedUtils.js";import{getHighlightName as H}from"../../support/highlightOptionsUtils.js";let w=class extends(c(u(g(d)))){constructor(){super(...arguments),this._highlightGraphics=new p,this._updateHash=""}fetchPopupFeaturesAtTarget(t,i,e){return this._popupHighlightHelper.fetchPopupFeaturesAtTarget(i,e)}update(t){const i=`${this.exportImageVersion}/${t.state.id}/${t.pixelRatio}/${t.stationary}`;this._updateHash!==i&&(this._updateHash=i,this.strategy.update(t).catch(t=>{r(t)||e.getLogger(this).error(t)}),t.stationary&&this._popupHighlightHelper.updateHighlightedFeatures(t.state.resolution)),this._highlightView.processUpdate(t)}attach(){const{imageMaxWidth:t,imageMaxHeight:i,version:e}=this.layer,r=e>=10.3,s=e>=10;this._bitmapContainer=new o,this.container.addChild(this._bitmapContainer),this._highlightView=new l({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new n(this.view.featuresTilingScheme),defaultPointSymbolEnabled:!1}),this.container.addChild(this._highlightView.container),this._popupHighlightHelper=new y({createFetchPopupFeaturesQueryGeometry:(t,i)=>_(t,i,this.view),highlightGraphics:this._highlightGraphics,highlightGraphicUpdated:({graphic:t,property:i})=>this._highlightView.graphicUpdateHandler({graphic:t,property:i}),layerView:this,updatingHandles:this._updatingHandles}),this.strategy=new m({container:this._bitmapContainer,fetchSource:(t,i,e,r)=>this.fetchImageBitmap(t,i,e,r).then(({bitmap:t})=>t),requestUpdate:this.requestUpdate.bind(this),imageMaxWidth:t,imageMaxHeight:i,imageRotationSupported:r,imageNormalizationSupported:s,hidpi:!0}),this.addAttachHandles(h(()=>this.exportImageVersion,()=>this.requestUpdate())),this.requestUpdate()}detach(){this.strategy.destroy(),this.container.removeAllChildren(),this._bitmapContainer.removeAllChildren(),this._highlightView.destroy(),this._popupHighlightHelper.destroy()}viewChange(){}moveEnd(){this.requestUpdate()}supportsSpatialReference(t){return this.layer.serviceSupportsSpatialReference(t)}async doRefresh(){this._updateHash="",this.requestUpdate()}isUpdating(){return this.strategy.updating||this.updateRequested}fetchImage(t,i,e,r){return this.layer.fetchImage(t,i,e,{timeExtent:this.timeExtent,floors:this.floors,...r})}fetchImageBitmap(t,i,e,r){return this.layer.fetchImageBitmap(t,i,e,{timeExtent:this.timeExtent,floors:this.floors,...r})}highlight(t,e){const r=f(t);if(0===r.length)return i();const h=H(e);return this._addHighlightGraphics(r,h),i(()=>!this.destroyed&&this._removeHighlightGraphics(r,h))}_processHighlight(){const t=this._getHighlights();this._highlightView?.setHighlight(t)}_addHighlightGraphics(t,i){this._highlightGraphics.addMany(t),this._addHighlights(t.map(t=>t.uid),i)}_removeHighlightGraphics(t,i){this._highlightGraphics.removeMany(t),this._removeHighlights(t.map(t=>t.uid),i)}};t([s()],w.prototype,"strategy",void 0),w=t([a("esri.views.2d.layers.MapImageLayerView2D")],w);const j=w;export{j as default};
2
+ import{__decorate as t}from"tslib";import{makeHandle as e}from"../../../core/handleUtils.js";import i from"../../../core/Logger.js";import{isAbortError as r}from"../../../core/promiseUtils.js";import{watch as h}from"../../../core/reactiveUtils.js";import{property as s,subclass as a}from"../../../core/accessorSupport/decorators.js";import o from"../../../layers/support/FeatureFilter.js";import{GraphicsCollection as p}from"../../../support/GraphicsCollection.js";import{BitmapContainer as g}from"../engine/BitmapContainer.js";import{LayerView2D as l}from"./LayerView2D.js";import n from"./graphics/GraphicsView2D.js";import m from"./graphics/HighlightGraphicContainer.js";import d from"./support/ExportStrategy.js";import c from"../../layers/LayerView.js";import u from"../../layers/MapImageLayerView.js";import{RefreshableLayerView as f}from"../../layers/RefreshableLayerView.js";import{getHighlightGraphics as y}from"../../layers/support/highlightUtils.js";import{MapServiceLayerViewHelper as _}from"../../layers/support/MapServiceLayerViewHelper.js";import{createQueryGeometry as H}from"../../support/drapedUtils.js";import{getHighlightName as w}from"../../support/highlightOptionsUtils.js";let j=class extends(u(f(l(c)))){constructor(){super(...arguments),this._highlightGraphics=new p,this._updateHash=""}fetchPopupFeaturesAtTarget(t,e,i){return this._popupHighlightHelper.fetchPopupFeaturesAtTarget(e,i)}update(t){const e=`${this.exportImageVersion}/${t.state.id}/${t.pixelRatio}/${t.stationary}`;this._updateHash!==e&&(this._updateHash=e,this.strategy.update(t).catch(t=>{r(t)||i.getLogger(this).error(t)}),t.stationary&&this._popupHighlightHelper.updateHighlightedFeatures(t.state.resolution)),this._highlightView.processUpdate(t)}attach(){const{imageMaxWidth:t,imageMaxHeight:e,version:i}=this.layer,r=i>=10.3,s=i>=10;this._bitmapContainer=new g,this.container.addChild(this._bitmapContainer),this._highlightView=new n({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new m(this.view.featuresTilingScheme),defaultPointSymbolEnabled:!1}),this.container.addChild(this._highlightView.container),this._popupHighlightHelper=new _({createFetchPopupFeaturesQueryGeometry:(t,e)=>H(t,e,this.view),highlightGraphics:this._highlightGraphics,highlightGraphicUpdated:({graphic:t,property:e})=>this._highlightView.graphicUpdateHandler({graphic:t,property:e}),layerView:this,updatingHandles:this._updatingHandles}),this.strategy=new d({container:this._bitmapContainer,fetchSource:(t,e,i,r)=>this.fetchImageBitmap(t,e,i,r).then(({bitmap:t})=>t),requestUpdate:this.requestUpdate.bind(this),imageMaxWidth:t,imageMaxHeight:e,imageRotationSupported:r,imageNormalizationSupported:s,hidpi:!0}),this.addAttachHandles(h(()=>this.exportImageVersion,()=>this.requestUpdate())),this.requestUpdate()}detach(){this.strategy.destroy(),this.container.removeAllChildren(),this._bitmapContainer.removeAllChildren(),this._highlightView.destroy(),this._popupHighlightHelper.destroy()}viewChange(){}moveEnd(){this.requestUpdate()}supportsSpatialReference(t){return this.layer.serviceSupportsSpatialReference(t)}async doRefresh(){this._updateHash="",this.requestUpdate()}isUpdating(){return this.strategy.updating||this.updateRequested}fetchImage(t,e,i,r){return this.layer.fetchImage(t,e,i,{timeExtent:this.timeExtent,floors:this.floors,...r})}fetchImageBitmap(t,e,i,r){return this.layer.fetchImageBitmap(t,e,i,{timeExtent:this.timeExtent,floors:this.floors,...r})}highlight(t,i){const r=y(t);if(0===r.length)return e();const h=w(i),s=this._addHighlightGraphics(r,h);return e(()=>!this.destroyed&&this._removeHighlightGraphics(r,s))}_onHighlightChange(){const t=this._getHighlightFilterGroups();this._highlightView?.setHighlightFilters(t)}_addHighlightGraphics(t,e){return this._highlightGraphics.addMany(t),this._addHighlightFilter(new o({objectIds:t.map(t=>t.uid)}),e)}_removeHighlightGraphics(t,e){this._highlightGraphics.removeMany(t),this._removeHighlight(e)}};t([s()],j.prototype,"strategy",void 0),j=t([a("esri.views.2d.layers.MapImageLayerView2D")],j);const v=j;export{v as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import i from"../../../Graphic.js";import{isSome as s}from"../../../core/arrayUtils.js";import t from"../../../core/Collection.js";import{makeHandle as r}from"../../../core/handleUtils.js";import{watch as a,initial as o,on as h}from"../../../core/reactiveUtils.js";import{isScreenRect as n}from"../../../core/screenUtils.js";import{subclass as l}from"../../../core/accessorSupport/decorators.js";import{LayerView2D as c}from"./LayerView2D.js";import p from"./graphics/GraphicContainer.js";import g from"./graphics/GraphicsView2D.js";import d from"../../layers/LayerView.js";import{getHighlightName as u}from"../../support/highlightOptionsUtils.js";const f="sublayers",w="layerView";let m=class extends(c(d)){*graphicsViews(){null==this._graphicsViewsFeatureCollectionMap?null==this._graphicsViews?yield*[]:yield*this._graphicsViews:yield*this._graphicsViewsFeatureCollectionMap.keys()}async hitTest(e,i){return Array.from(this.graphicsViews(),e=>{const s=e.hitTest(this.view,i);if(null!=this._graphicsViewsFeatureCollectionMap){const i=this._graphicsViewsFeatureCollectionMap.get(e);for(const e of s)!e.popupTemplate&&i.popupTemplate&&(e.popupTemplate=i.popupTemplate),e.sourceLayer=e.layer=this.layer}return s}).flat().map(s=>({type:"graphic",graphic:s,layer:this.layer,mapPoint:n(i)?null:e}))}highlight(e,a){let o;"number"==typeof e?o=[e]:e instanceof i?o=[e.uid]:Array.isArray(e)&&e.length>0?o="number"==typeof e[0]?e:e.map(e=>e&&e.uid):t.isCollection(e)&&(o=e.map(e=>e&&e.uid).toArray());const h=o?.filter(s);if(!h?.length)return r();const n=u(a);return this._addHighlights(h,n),r(()=>this._removeHighlights(h,n))}update(e){for(const i of this.graphicsViews())i.processUpdate(e)}attach(){const e=this.view,i=()=>this.requestUpdate(),s=this.layer.featureCollections;if(null!=s&&s.length){this._graphicsViewsFeatureCollectionMap=new Map;for(const t of s){const s=new p(this.view.featuresTilingScheme),r=new g({view:e,graphics:t.source,renderer:t.renderer,requestUpdateCallback:i,container:s});this._graphicsViewsFeatureCollectionMap.set(r,t),this.container.addChild(r.container),this.addHandles([a(()=>t.visible,e=>r.container.visible=e,o),a(()=>r.updating,()=>this.notifyChange("updating"),o)],w)}this._processHighlight()}else null!=this.layer.sublayers&&this.addHandles(h(()=>this.layer.sublayers,"change",()=>this._createGraphicsViews(),{onListenerAdd:()=>this._createGraphicsViews(),onListenerRemove:()=>this._destroyGraphicsViews()}),f)}detach(){this._destroyGraphicsViews(),this.removeHandles(f)}moveEnd(){}viewChange(){for(const e of this.graphicsViews())e.viewChange()}isUpdating(){for(const e of this.graphicsViews())if(e.updating)return!0;return!1}_destroyGraphicsViews(){this.container.removeAllChildren(),this.removeHandles(w);for(const e of this.graphicsViews())e.destroy();this._graphicsViews=null,this._graphicsViewsFeatureCollectionMap=null}_createGraphicsViews(){if(this._destroyGraphicsViews(),null==this.layer.sublayers)return;const e=[],i=this.view,s=()=>this.requestUpdate();for(const t of this.layer.sublayers){const r=new p(this.view.featuresTilingScheme);r.fadeTransitionEnabled=!0;const h=new g({view:i,graphics:t.graphics,requestUpdateCallback:s,container:r});this.addHandles([t.on("graphic-update",h.graphicUpdateHandler),a(()=>t.visible,e=>h.container.visible=e,o),a(()=>h.updating,()=>this.notifyChange("updating"),o)],w),this.container.addChild(h.container),e.push(h)}this._graphicsViews=e,this._processHighlight()}_processHighlight(){const e=this._getHighlights();for(const i of this._graphicsViews||[])i.setHighlight(e);this._graphicsViewsFeatureCollectionMap?.forEach((i,s)=>{s.setHighlight(e)})}};m=e([l("esri.views.2d.layers.MapNotesLayerView2D")],m);const y=m;export{y as default};
2
+ import{__decorate as e}from"tslib";import i from"../../../Graphic.js";import{isSome as s}from"../../../core/arrayUtils.js";import t from"../../../core/Collection.js";import{makeHandle as r}from"../../../core/handleUtils.js";import{watch as a,initial as o,on as h}from"../../../core/reactiveUtils.js";import{isScreenRect as n}from"../../../core/screenUtils.js";import{subclass as l}from"../../../core/accessorSupport/decorators.js";import p from"../../../layers/support/FeatureFilter.js";import{LayerView2D as c}from"./LayerView2D.js";import g from"./graphics/GraphicContainer.js";import u from"./graphics/GraphicsView2D.js";import d from"../../layers/LayerView.js";import{getHighlightName as f}from"../../support/highlightOptionsUtils.js";const m="sublayers",w="layerView";let y=class extends(c(d)){*graphicsViews(){null==this._graphicsViewsFeatureCollectionMap?null==this._graphicsViews?yield*[]:yield*this._graphicsViews:yield*this._graphicsViewsFeatureCollectionMap.keys()}async hitTest(e,i){return Array.from(this.graphicsViews(),e=>{const s=e.hitTest(this.view,i);if(null!=this._graphicsViewsFeatureCollectionMap){const i=this._graphicsViewsFeatureCollectionMap.get(e);for(const e of s)!e.popupTemplate&&i.popupTemplate&&(e.popupTemplate=i.popupTemplate),e.sourceLayer=e.layer=this.layer}return s}).flat().map(s=>({type:"graphic",graphic:s,layer:this.layer,mapPoint:n(i)?null:e}))}highlight(e,a){let o;"number"==typeof e?o=[e]:e instanceof i?o=[e.uid]:Array.isArray(e)&&e.length>0?o="number"==typeof e[0]?e:e.map(e=>e&&e.uid):t.isCollection(e)&&(o=e.map(e=>e&&e.uid).toArray());const h=o?.filter(s);if(!h?.length)return r();const n=f(a),l=this._addHighlightFilter(new p({objectIds:h}),n);return r(()=>this._removeHighlight(l))}update(e){for(const i of this.graphicsViews())i.processUpdate(e)}attach(){const e=this.view,i=()=>this.requestUpdate(),s=this.layer.featureCollections;if(null!=s&&s.length){this._graphicsViewsFeatureCollectionMap=new Map;for(const t of s){const s=new g(this.view.featuresTilingScheme),r=new u({view:e,graphics:t.source,renderer:t.renderer,requestUpdateCallback:i,container:s});this._graphicsViewsFeatureCollectionMap.set(r,t),this.container.addChild(r.container),this.addHandles([a(()=>t.visible,e=>r.container.visible=e,o),a(()=>r.updating,()=>this.notifyChange("updating"),o)],w)}this._onHighlightChange()}else null!=this.layer.sublayers&&this.addHandles(h(()=>this.layer.sublayers,"change",()=>this._createGraphicsViews(),{onListenerAdd:()=>this._createGraphicsViews(),onListenerRemove:()=>this._destroyGraphicsViews()}),m)}detach(){this._destroyGraphicsViews(),this.removeHandles(m)}moveEnd(){}viewChange(){for(const e of this.graphicsViews())e.viewChange()}isUpdating(){for(const e of this.graphicsViews())if(e.updating)return!0;return!1}_destroyGraphicsViews(){this.container.removeAllChildren(),this.removeHandles(w);for(const e of this.graphicsViews())e.destroy();this._graphicsViews=null,this._graphicsViewsFeatureCollectionMap=null}_createGraphicsViews(){if(this._destroyGraphicsViews(),null==this.layer.sublayers)return;const e=[],i=this.view,s=()=>this.requestUpdate();for(const t of this.layer.sublayers){const r=new g(this.view.featuresTilingScheme);r.fadeTransitionEnabled=!0;const h=new u({view:i,graphics:t.graphics,requestUpdateCallback:s,container:r});this.addHandles([t.on("graphic-update",h.graphicUpdateHandler),a(()=>t.visible,e=>h.container.visible=e,o),a(()=>h.updating,()=>this.notifyChange("updating"),o)],w),this.container.addChild(h.container),e.push(h)}this._graphicsViews=e,this._onHighlightChange()}_onHighlightChange(){const e=this._getHighlightFilterGroups();for(const i of this._graphicsViews||[])i.setHighlightFilters(e);this._graphicsViewsFeatureCollectionMap?.forEach((i,s)=>{s.setHighlightFilters(e)})}};y=e([l("esri.views.2d.layers.MapNotesLayerView2D")],y);const V=y;export{V as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import{isSome as e}from"../../../core/arrayUtils.js";import r from"../../../core/Collection.js";import i from"../../../core/CollectionFlattener.js";import{makeHandle as s}from"../../../core/handleUtils.js";import{watch as o,syncAndInitial as a,initial as n}from"../../../core/reactiveUtils.js";import{isScreenRect as h}from"../../../core/screenUtils.js";import{property as p,subclass as c}from"../../../core/accessorSupport/decorators.js";import l from"../../../rest/support/DirectionLine.js";import u from"../../../rest/support/DirectionPoint.js";import d from"../../../rest/support/PointBarrier.js";import _ from"../../../rest/support/PolygonBarrier.js";import m from"../../../rest/support/PolylineBarrier.js";import g from"../../../rest/support/RouteInfo.js";import w from"../../../rest/support/Stop.js";import{LayerView2D as y}from"./LayerView2D.js";import f from"./graphics/GraphicContainer.js";import v from"./graphics/GraphicsView2D.js";import{RouteLayerInteractiveOptions as k}from"./support/RouteLayerInteractiveOptions.js";import M from"../../layers/LayerView.js";import{getHighlightName as F}from"../../support/highlightOptionsUtils.js";const V=["route-info","direction-line","direction-point","polygon-barrier","polyline-barrier","point-barrier","stop"],j={graphic:null,property:null,oldValue:null,newValue:null};function G(t){return t instanceof l||t instanceof u||t instanceof d||t instanceof _||t instanceof m||t instanceof g||t instanceof w}function I(t){return r.isCollection(t)&&t.length&&G(t.at(0))}function P(t){return Array.isArray(t)&&t.length>0&&G(t[0])}let b=class extends(y(M)){constructor(){super(...arguments),this._graphics=new r,this._networkFeatureMap=new Map,this._networkGraphicMap=new Map,this._interaction=null,this._loadInteractionPromise=null,this.interactive=!1,this.interactiveOptions=new k}get _routeItems(){return new i({getCollections:()=>this.layer&&!this.destroyed?[this.layer.routeInfo?new r([this.layer.routeInfo]):null,this.layer.directionLines,this.layer.directionPoints,this.layer.polygonBarriers,this.layer.polylineBarriers,this.layer.pointBarriers,this.layer.stops]:[]})}initialize(){this.addHandles(o(()=>{const{interactive:t,suspended:e}=this;return{interactive:t,suspended:e}},({interactive:t,suspended:e})=>{const r=t&&!e;r&&this._getInteractionLoadPromise().then(t=>{t.enabled=this.interactive&&!this.suspended}),this._interaction&&(this._interaction.enabled=r)},a)),this._updatingHandles.addOnCollectionChange(()=>this._routeItems,t=>this._routeItemsChanged(t),n)}destroy(){this._networkFeatureMap.clear(),this._networkGraphicMap.clear(),this._graphics.removeAll(),this._get("_routeItems")?.destroy()}attach(){this._createGraphicsView()}detach(){this._destroyGraphicsView(),this._interaction?.enabled&&(this._interaction.enabled=!1)}get selectedNetworkFeatures(){return this._interaction?.selectedNetworkFeatures??null}async create(t){return this._interaction?.create(t)}delete(){this._interaction?.delete()}async fetchPopupFeaturesAtTarget(t,e,r){return this._graphicsView.hitTest(this.view,t).filter(({popupTemplate:t})=>!!t)}highlight(t,r){let i;i=G(t)?[this._getNetworkFeatureUid(t)]:P(t)?t.map(t=>this._getNetworkFeatureUid(t)):I(t)?t.map(t=>this._getNetworkFeatureUid(t)).toArray():[t.uid];const o=i.filter(e);if(!o.length)return s();const a=F(r);return this._addHighlights(o,a),s(()=>this._removeHighlights(o,a))}async hitTest(t,r){if(this.suspended)return null;const i=this._graphicsView.hitTest(this.view,r).filter(e).map(t=>this._networkGraphicMap.get(t));if(!i.length)return null;const{layer:s}=this;return i.reverse().map(e=>({type:"route",layer:s,mapPoint:h(r)?null:t,networkFeature:e}))}isUpdating(){return this._graphicsView.updating}moveEnd(){}remove(t){this._interaction?.remove(t)}update(t){this._graphicsView.processUpdate(t)}viewChange(){this._graphicsView.viewChange()}_createGraphic(t){const e=t.toGraphic();return e.layer=this.layer,e.sourceLayer=this.layer,e}_createGraphicsView(){const t=this.view,e=()=>this.requestUpdate(),r=new f(t.featuresTilingScheme);this._graphicsView=new v({container:r,graphics:this._graphics,requestUpdateCallback:e,view:t}),this.container.addChild(r),this._processHighlight()}_destroyGraphicsView(){this.container.removeChild(this._graphicsView.container),this._graphicsView.destroy()}_getDrawOrder(t){const e=this._networkGraphicMap.get(t);return V.indexOf(e.type)}_getInteractionLoadPromise(){return this._loadInteractionPromise||(this._loadInteractionPromise=this._loadInteraction(),this._updatingHandles.consumePromise(this._loadInteractionPromise)),this._loadInteractionPromise}_getNetworkFeatureUid(t){return this._networkFeatureMap.has(t)?this._networkFeatureMap.get(t).uid:null}async _loadInteraction(){const{interactiveOptions:t,layer:e,view:r}=this,{RouteLayerInteraction:i}=await(import("./support/RouteLayerInteraction.js"));return this._interaction=new i({interactiveOptions:t,layer:e,view:r}),this._interaction}_routeItemsChanged(t){if(t.removed.length){this._graphics.removeMany(t.removed.map(t=>{const e=this._networkFeatureMap.get(t);return this._networkFeatureMap.delete(t),this._networkGraphicMap.delete(e),e}));for(const e of t.removed)this.removeHandles(e)}if(t.added.length){this._graphics.addMany(t.added.map(t=>{const e=this._createGraphic(t);return null==e.symbol?null:(this._networkFeatureMap.set(t,e),this._networkGraphicMap.set(e,t),e)}).filter(e));for(const e of t.added)this.addHandles([o(()=>e.geometry,(t,r)=>{this._updateGraphic(e,"geometry",t,r)}),o(()=>e.symbol,(t,r)=>{this._updateGraphic(e,"symbol",t,r)}),o(()=>e.popupTemplate,t=>{this._networkFeatureMap.has(e)&&(this._networkFeatureMap.get(e).popupTemplate=t)}),o(()=>e.toGraphic().attributes,t=>{this._networkFeatureMap.has(e)&&(this._networkFeatureMap.get(e).attributes=t)})],e);this._graphics.sort((t,e)=>this._getDrawOrder(t)-this._getDrawOrder(e))}}_updateGraphic(t,e,r,i){if(!this._networkFeatureMap.has(t)){const e=this._createGraphic(t);return this._networkFeatureMap.set(t,e),this._networkGraphicMap.set(e,t),void this._graphics.add(e)}const s=this._networkFeatureMap.get(t);s[e]=r,j.graphic=s,j.property=e,j.oldValue=i,j.newValue=r,this._graphicsView.graphicUpdateHandler(j)}_processHighlight(){const t=this._getHighlights();this._graphicsView?.setHighlight(t)}};t([p()],b.prototype,"_routeItems",null),t([p()],b.prototype,"_interaction",void 0),t([p()],b.prototype,"interactive",void 0),t([p({readOnly:!0})],b.prototype,"interactiveOptions",void 0),t([p({readOnly:!0})],b.prototype,"selectedNetworkFeatures",null),b=t([c("esri.views.2d.layers.RouteLayerView2D")],b);const C=b;export{C as default};
2
+ import{__decorate as t}from"tslib";import{isSome as e}from"../../../core/arrayUtils.js";import r from"../../../core/Collection.js";import i from"../../../core/CollectionFlattener.js";import{makeHandle as s}from"../../../core/handleUtils.js";import{watch as o,syncAndInitial as a,initial as n}from"../../../core/reactiveUtils.js";import{isScreenRect as h}from"../../../core/screenUtils.js";import{property as p,subclass as c}from"../../../core/accessorSupport/decorators.js";import l from"../../../layers/support/FeatureFilter.js";import u from"../../../rest/support/DirectionLine.js";import d from"../../../rest/support/DirectionPoint.js";import _ from"../../../rest/support/PointBarrier.js";import m from"../../../rest/support/PolygonBarrier.js";import g from"../../../rest/support/PolylineBarrier.js";import w from"../../../rest/support/RouteInfo.js";import y from"../../../rest/support/Stop.js";import{LayerView2D as f}from"./LayerView2D.js";import v from"./graphics/GraphicContainer.js";import k from"./graphics/GraphicsView2D.js";import{RouteLayerInteractiveOptions as F}from"./support/RouteLayerInteractiveOptions.js";import M from"../../layers/LayerView.js";import{getHighlightName as j}from"../../support/highlightOptionsUtils.js";const G=["route-info","direction-line","direction-point","polygon-barrier","polyline-barrier","point-barrier","stop"],I={graphic:null,property:null,oldValue:null,newValue:null};function V(t){return t instanceof u||t instanceof d||t instanceof _||t instanceof m||t instanceof g||t instanceof w||t instanceof y}function C(t){return r.isCollection(t)&&t.length&&V(t.at(0))}function b(t){return Array.isArray(t)&&t.length>0&&V(t[0])}let P=class extends(f(M)){constructor(){super(...arguments),this._graphics=new r,this._networkFeatureMap=new Map,this._networkGraphicMap=new Map,this._interaction=null,this._loadInteractionPromise=null,this.interactive=!1,this.interactiveOptions=new F}get _routeItems(){return new i({getCollections:()=>this.layer&&!this.destroyed?[this.layer.routeInfo?new r([this.layer.routeInfo]):null,this.layer.directionLines,this.layer.directionPoints,this.layer.polygonBarriers,this.layer.polylineBarriers,this.layer.pointBarriers,this.layer.stops]:[]})}initialize(){this.addHandles(o(()=>{const{interactive:t,suspended:e}=this;return{interactive:t,suspended:e}},({interactive:t,suspended:e})=>{const r=t&&!e;r&&this._getInteractionLoadPromise().then(t=>{t.enabled=this.interactive&&!this.suspended}),this._interaction&&(this._interaction.enabled=r)},a)),this._updatingHandles.addOnCollectionChange(()=>this._routeItems,t=>this._routeItemsChanged(t),n)}destroy(){this._networkFeatureMap.clear(),this._networkGraphicMap.clear(),this._graphics.removeAll(),this._get("_routeItems")?.destroy()}attach(){this._createGraphicsView()}detach(){this._destroyGraphicsView(),this._interaction?.enabled&&(this._interaction.enabled=!1)}get selectedNetworkFeatures(){return this._interaction?.selectedNetworkFeatures??null}async create(t){return this._interaction?.create(t)}delete(){this._interaction?.delete()}async fetchPopupFeaturesAtTarget(t,e,r){return this._graphicsView.hitTest(this.view,t).filter(({popupTemplate:t})=>!!t)}highlight(t,r){let i;i=V(t)?[this._getNetworkFeatureUid(t)]:b(t)?t.map(t=>this._getNetworkFeatureUid(t)):C(t)?t.map(t=>this._getNetworkFeatureUid(t)).toArray():[t.uid];const o=i.filter(e);if(!o.length)return s();const a=j(r),n=this._addHighlightFilter(new l({objectIds:o}),a);return s(()=>this._removeHighlight(n))}async hitTest(t,r){if(this.suspended)return null;const i=this._graphicsView.hitTest(this.view,r).filter(e).map(t=>this._networkGraphicMap.get(t));if(!i.length)return null;const{layer:s}=this;return i.reverse().map(e=>({type:"route",layer:s,mapPoint:h(r)?null:t,networkFeature:e}))}isUpdating(){return this._graphicsView.updating}moveEnd(){}remove(t){this._interaction?.remove(t)}update(t){this._graphicsView.processUpdate(t)}viewChange(){this._graphicsView.viewChange()}_createGraphic(t){const e=t.toGraphic();return e.layer=this.layer,e.sourceLayer=this.layer,e}_createGraphicsView(){const t=this.view,e=()=>this.requestUpdate(),r=new v(t.featuresTilingScheme);this._graphicsView=new k({container:r,graphics:this._graphics,requestUpdateCallback:e,view:t}),this.container.addChild(r),this._onHighlightChange()}_destroyGraphicsView(){this.container.removeChild(this._graphicsView.container),this._graphicsView.destroy()}_getDrawOrder(t){const e=this._networkGraphicMap.get(t);return G.indexOf(e.type)}_getInteractionLoadPromise(){return this._loadInteractionPromise||(this._loadInteractionPromise=this._loadInteraction(),this._updatingHandles.consumePromise(this._loadInteractionPromise)),this._loadInteractionPromise}_getNetworkFeatureUid(t){return this._networkFeatureMap.has(t)?this._networkFeatureMap.get(t).uid:null}async _loadInteraction(){const{interactiveOptions:t,layer:e,view:r}=this,{RouteLayerInteraction:i}=await(import("./support/RouteLayerInteraction.js"));return this._interaction=new i({interactiveOptions:t,layer:e,view:r}),this._interaction}_routeItemsChanged(t){if(t.removed.length){this._graphics.removeMany(t.removed.map(t=>{const e=this._networkFeatureMap.get(t);return this._networkFeatureMap.delete(t),this._networkGraphicMap.delete(e),e}));for(const e of t.removed)this.removeHandles(e)}if(t.added.length){this._graphics.addMany(t.added.map(t=>{const e=this._createGraphic(t);return null==e.symbol?null:(this._networkFeatureMap.set(t,e),this._networkGraphicMap.set(e,t),e)}).filter(e));for(const e of t.added)this.addHandles([o(()=>e.geometry,(t,r)=>{this._updateGraphic(e,"geometry",t,r)}),o(()=>e.symbol,(t,r)=>{this._updateGraphic(e,"symbol",t,r)}),o(()=>e.popupTemplate,t=>{this._networkFeatureMap.has(e)&&(this._networkFeatureMap.get(e).popupTemplate=t)}),o(()=>e.toGraphic().attributes,t=>{this._networkFeatureMap.has(e)&&(this._networkFeatureMap.get(e).attributes=t)})],e);this._graphics.sort((t,e)=>this._getDrawOrder(t)-this._getDrawOrder(e))}}_updateGraphic(t,e,r,i){if(!this._networkFeatureMap.has(t)){const e=this._createGraphic(t);return this._networkFeatureMap.set(t,e),this._networkGraphicMap.set(e,t),void this._graphics.add(e)}const s=this._networkFeatureMap.get(t);s[e]=r,I.graphic=s,I.property=e,I.oldValue=i,I.newValue=r,this._graphicsView.graphicUpdateHandler(I)}_onHighlightChange(){const t=this._getHighlightFilterGroups();this._graphicsView?.setHighlightFilters(t)}};t([p()],P.prototype,"_routeItems",null),t([p()],P.prototype,"_interaction",void 0),t([p()],P.prototype,"interactive",void 0),t([p({readOnly:!0})],P.prototype,"interactiveOptions",void 0),t([p({readOnly:!0})],P.prototype,"selectedNetworkFeatures",null),P=t([c("esri.views.2d.layers.RouteLayerView2D")],P);const U=P;export{U as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{makeHandle as i}from"../../../core/handleUtils.js";import t from"../../../core/Logger.js";import{isAbortError as s,waitTick as r}from"../../../core/promiseUtils.js";import{property as h,subclass as a}from"../../../core/accessorSupport/decorators.js";import{equals as o}from"../../../geometry/support/spatialReferenceUtils.js";import{GraphicsCollection as l}from"../../../support/GraphicsCollection.js";import"../engine/Stage.js";import"../../../Color.js";import"../../../core/libs/gl-matrix-2/factories/vec4f32.js";import"../../../geometry/Point.js";import"../../../core/has.js";import"../../../chunks/pe.js";import"../../../core/units.js";import"../../../geometry/ellipsoidUtils.js";import"../../../core/RandomLCG.js";import"../../../core/Accessor.js";import"../engine/transitions/FadeTransition.js";import"../../webgl/BufferObject.js";import"../../webgl/FramebufferObject.js";import"../../webgl/Program.js";import"../../webgl/Renderbuffer.js";import"../../webgl/Texture.js";import"../../webgl/enums.js";import"../../webgl/Util.js";import"../engine/webgl/meshing/definitions.js";import"../engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"../LabelManager.js";import p from"./graphics/GraphicsView2D.js";import"../../../layers/effects/EffectView.js";import"../engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileInfo.js";import"../engine/webgl/AFeatureTile.js";import"../engine/webgl/DisplayEntity.js";import"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import"../engine/webgl/number.js";import"../engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"../engine/webgl/cpuMapped/GpuMeshState.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileStencilShader.js";import"../../webgl/UniformBufferLayout.js";import"../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import"../../../geometry/support/normalizeUtils.js";import"./support/util.js";import"../navigation/MapViewNavigation.js";import"../../../request.js";import"../../../core/asyncUtils.js";import"../../../core/accessorSupport/watch.js";import"../../../core/accessorSupport/tracking/SimpleTrackingTarget.js";import"../../../core/support/UpdatingHandles.js";import"../../../core/mathUtils.js";import"../../../core/urlUtils.js";import"../engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../../../geometry/Extent.js";import"../../../geometry/Geometry.js";import"../../../geometry/Multipoint.js";import"../../../geometry/Polygon.js";import"../../../geometry/Polyline.js";import"../../../geometry/SpatialReference.js";import"../../../geometry/spatialReferenceEllipsoidUtils.js";import"../../../geometry/operators/support/GeographicTransformation.js";import"../../../geometry/projection/projectors.js";import"../engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../../../geometry/support/geodesicConstants.js";import"../../../geometry/support/Ellipsoid.js";import{BitmapTileLayerView2D as n}from"./BitmapTileLayerView2D.js";import{LayerView2D as c}from"./LayerView2D.js";import g from"./graphics/HighlightGraphicContainer.js";import{createBlankImage as m,resampleImage as u}from"./support/imageUtils.js";import f from"../tiling/TileInfoView.js";import d from"../tiling/TileKey.js";import y from"../tiling/TileQueue.js";import w from"../tiling/TileStrategy.js";import j from"../../layers/LayerView.js";import{RefreshableLayerView as _}from"../../layers/RefreshableLayerView.js";import{getHighlightGraphics as T}from"../../layers/support/highlightUtils.js";import{isMapServiceLayerView as b,MapServiceLayerViewHelper as V}from"../../layers/support/MapServiceLayerViewHelper.js";import{createQueryGeometry as U}from"../../support/drapedUtils.js";import{getHighlightName as v}from"../../support/highlightOptionsUtils.js";import{TaskPriority as H}from"../../support/Scheduler.js";const I=[0,0];let q=class extends(_(n(c(j)))){constructor(){super(...arguments),this._fetchQueue=null,this._highlightGraphics=new l,this._highlightView=null,this._popupHighlightHelper=null,this._tileStrategy=null,this.layer=null}get resampling(){return!("resampling"in this.layer)||!1!==this.layer.resampling}get tilemapCache(){return"tilemapCache"in this.layer?this.layer.tilemapCache:null}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume(),this._highlightView?.processUpdate(e)}attach(){const e="tileServers"in this.layer?this.layer.tileServers:null,i=this.tilemapCache;if(this._tileInfoView=new f(this.layer.tileInfo,this.layer.fullExtent,i?.effectiveMinLOD,i?.effectiveMaxLOD),this._fetchQueue=new y({tileInfoView:this._tileInfoView,concurrency:e&&10*e.length||10,process:(e,i)=>this.fetchTile(e,i),scheduler:this.scheduler,priority:H.MAPVIEW_FETCH_QUEUE}),this._tileStrategy=new w({cachePolicy:"keep",resampling:this.resampling,acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView}),b(this,this.layer)){const e=this._highlightView=new p({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new g(this.view.featuresTilingScheme),defaultPointSymbolEnabled:!1});this.container.addChild(this._highlightView.container),this._popupHighlightHelper=new V({createFetchPopupFeaturesQueryGeometry:(e,i)=>U(e,i,this.view),highlightGraphics:this._highlightGraphics,highlightGraphicUpdated:({graphic:i,property:t})=>e.graphicUpdateHandler({graphic:i,property:t}),layerView:this,updatingHandles:this._updatingHandles})}this.requestUpdate(),this.addAttachHandles(this._updatingHandles.add(()=>this.resampling,()=>{this.doRefresh()})),super.attach()}detach(){super.detach(),this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._popupHighlightHelper?.destroy(),this._highlightView?.destroy(),this._fetchQueue=this._tileStrategy=this._tileInfoView=this._popupHighlightHelper=null}async fetchPopupFeaturesAtTarget(e,i,t){return this._popupHighlightHelper?this._popupHighlightHelper.fetchPopupFeaturesAtTarget(i,t):[]}highlight(e,t){const s=T(e);if(0===s.length)return i();const r=v(t);return this._addHighlightGraphics(s,r),i(()=>!this.destroyed&&this._removeHighlightGraphics(s,r))}_processHighlight(){const e=this._getHighlights();this._highlightView?.setHighlight(e)}_addHighlightGraphics(e,i){this._highlightGraphics.addMany(e),this._addHighlights(e.map(e=>e.uid),i)}_removeHighlightGraphics(e,i){this._highlightGraphics.removeMany(e),this._removeHighlights(e.map(e=>e.uid),i)}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return o(this.layer.tileInfo?.spatialReference,e)}async doRefresh(){if(this.attached){if(this.suspended)return this._tileStrategy.clear(),void this.requestUpdate();this._fetchQueue.reset(),this._tileStrategy.refresh(e=>this._updatingHandles.addPromise(this._enqueueTileFetch(e)))}}acquireTile(e){const i=this._bitmapView.createTile(e),t=i.bitmap;return[t.x,t.y]=this._tileInfoView.getTileCoords(I,i.key),t.resolution=this._tileInfoView.getTileResolution(i.key),[t.width,t.height]=this._tileInfoView.size,this._updatingHandles.consumePromise(this._enqueueTileFetch(i)),this._bitmapView.addChild(i),this.requestUpdate(),i}releaseTile(e){this._fetchQueue.abort(e.key.id),this._bitmapView.removeChild(e),e.once("detach",()=>e.destroy()),this.requestUpdate()}async fetchTile(e,i={}){return this.tilemapCache?this._fetchTileWithTilemapCache(e,i):this._fetchTileWithoutTilemapCache(e,i)}async _fetchTileWithoutTilemapCache(e,i={}){const{signal:t,resamplingLevel:r=0}=i;try{return await this._fetchImage(e,t)}catch(h){if(s(h))throw h;if(!this.resampling)return m(this._tileInfoView.size);if(r<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){const s=new d(t),h=await this._fetchTileWithoutTilemapCache(s,{...i,resamplingLevel:r+1});return u(this._tileInfoView,h,s,e)}}return m(this._tileInfoView.size)}}async _fetchTileWithTilemapCache(e,i={}){const t=this.tilemapCache,{signal:h,resamplingLevel:a=0}=i,o=new d(0,0,0,0);let l,p=null;try{if(p=await t.fetchAvailabilityUpsample(e.level,e.row,e.col,o,{signal:h}),!this.resampling&&o.level!==e.level)return await r(i),m(this._tileInfoView.size);l=await this._fetchImage(o,h)}catch(n){if(s(n))throw n;if(this.resampling&&"unknown"===p&&a<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){o.set(t);try{l=await this._fetchTileWithTilemapCache(o,{...i,resamplingLevel:a+1})}catch{}}}}return l?this.resampling?u(this._tileInfoView,l,o,e):l:m(this._tileInfoView.size)}async _enqueueTileFetch(e){if(!this._fetchQueue.has(e.key.id)){try{const i=await this._fetchQueue.push(e.key);e.bitmap.source=i,e.bitmap.width=this._tileInfoView.size[0],e.bitmap.height=this._tileInfoView.size[1],e.once("attach",()=>this.requestUpdate()),e.once("isReady",()=>this.requestUpdate())}catch(i){s(i)||t.getLogger(this).error(i)}this.requestUpdate()}}async _fetchImage(e,i){return this.layer.fetchImageBitmapTile(e.level,e.row,e.col,{signal:i}).then(({bitmap:e})=>e)}};e([h()],q.prototype,"resampling",null),e([h()],q.prototype,"tilemapCache",null),q=e([a("esri.views.2d.layers.TileLayerView2D")],q);const G=q;export{G as default};
2
+ import{__decorate as e}from"tslib";import{makeHandle as i}from"../../../core/handleUtils.js";import t from"../../../core/Logger.js";import{isAbortError as r,waitTick as s}from"../../../core/promiseUtils.js";import{property as h,subclass as a}from"../../../core/accessorSupport/decorators.js";import{equals as o}from"../../../geometry/support/spatialReferenceUtils.js";import l from"../../../layers/support/FeatureFilter.js";import{GraphicsCollection as p}from"../../../support/GraphicsCollection.js";import"../engine/Stage.js";import"../../../Color.js";import"../../../core/libs/gl-matrix-2/factories/vec4f32.js";import"../../../geometry/Point.js";import"../../../chunks/pe.js";import"../../../core/has.js";import"../../../core/units.js";import"../../../geometry/ellipsoidUtils.js";import"../../../core/RandomLCG.js";import"../../../core/Accessor.js";import"../engine/transitions/FadeTransition.js";import"../../webgl/BufferObject.js";import"../../webgl/FramebufferObject.js";import"../../webgl/Program.js";import"../../webgl/Renderbuffer.js";import"../../webgl/Texture.js";import"../../webgl/enums.js";import"../../webgl/Util.js";import"../engine/webgl/meshing/definitions.js";import"../engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"../LabelManager.js";import n from"./graphics/GraphicsView2D.js";import"../../../layers/effects/EffectView.js";import"../engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileInfo.js";import"../engine/webgl/AFeatureTile.js";import"../engine/webgl/DisplayEntity.js";import"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import"../engine/webgl/number.js";import"../engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"../engine/webgl/cpuMapped/GpuMeshState.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileStencilShader.js";import"../../webgl/UniformBufferLayout.js";import"../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import"../../../geometry/support/normalizeUtils.js";import"./support/util.js";import"../navigation/MapViewNavigation.js";import"../../../request.js";import"../../../core/asyncUtils.js";import"../../../core/accessorSupport/watch.js";import"../../../core/accessorSupport/tracking/SimpleTrackingTarget.js";import"../../../core/support/UpdatingHandles.js";import"../../../core/mathUtils.js";import"../../../core/urlUtils.js";import"../engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../../../geometry/Extent.js";import"../../../geometry/Geometry.js";import"../../../geometry/Multipoint.js";import"../../../geometry/Polygon.js";import"../../../geometry/Polyline.js";import"../../../geometry/SpatialReference.js";import"../../../geometry/spatialReferenceEllipsoidUtils.js";import"../../../geometry/operators/support/GeographicTransformation.js";import"../../../geometry/projection/projectors.js";import"../engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../../../geometry/support/geodesicConstants.js";import"../../../geometry/support/Ellipsoid.js";import{BitmapTileLayerView2D as c}from"./BitmapTileLayerView2D.js";import{LayerView2D as g}from"./LayerView2D.js";import m from"./graphics/HighlightGraphicContainer.js";import{createBlankImage as u,resampleImage as f}from"./support/imageUtils.js";import d from"../tiling/TileInfoView.js";import y from"../tiling/TileKey.js";import w from"../tiling/TileQueue.js";import j from"../tiling/TileStrategy.js";import _ from"../../layers/LayerView.js";import{RefreshableLayerView as T}from"../../layers/RefreshableLayerView.js";import{getHighlightGraphics as b}from"../../layers/support/highlightUtils.js";import{isMapServiceLayerView as V,MapServiceLayerViewHelper as U}from"../../layers/support/MapServiceLayerViewHelper.js";import{createQueryGeometry as v}from"../../support/drapedUtils.js";import{getHighlightName as H}from"../../support/highlightOptionsUtils.js";import{TaskPriority as I}from"../../support/Scheduler.js";const q=[0,0];let G=class extends(T(c(g(_)))){constructor(){super(...arguments),this._fetchQueue=null,this._highlightGraphics=new p,this._highlightView=null,this._popupHighlightHelper=null,this._tileStrategy=null,this.layer=null}get resampling(){return!("resampling"in this.layer)||!1!==this.layer.resampling}get tilemapCache(){return"tilemapCache"in this.layer?this.layer.tilemapCache:null}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume(),this._highlightView?.processUpdate(e)}attach(){const e="tileServers"in this.layer?this.layer.tileServers:null,i=this.tilemapCache;if(this._tileInfoView=new d(this.layer.tileInfo,this.layer.fullExtent,i?.effectiveMinLOD,i?.effectiveMaxLOD),this._fetchQueue=new w({tileInfoView:this._tileInfoView,concurrency:e&&10*e.length||10,process:(e,i)=>this.fetchTile(e,i),scheduler:this.scheduler,priority:I.MAPVIEW_FETCH_QUEUE}),this._tileStrategy=new j({cachePolicy:"keep",resampling:this.resampling,acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView}),V(this,this.layer)){const e=this._highlightView=new n({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new m(this.view.featuresTilingScheme),defaultPointSymbolEnabled:!1});this.container.addChild(this._highlightView.container),this._popupHighlightHelper=new U({createFetchPopupFeaturesQueryGeometry:(e,i)=>v(e,i,this.view),highlightGraphics:this._highlightGraphics,highlightGraphicUpdated:({graphic:i,property:t})=>e.graphicUpdateHandler({graphic:i,property:t}),layerView:this,updatingHandles:this._updatingHandles})}this.requestUpdate(),this.addAttachHandles(this._updatingHandles.add(()=>this.resampling,()=>{this.doRefresh()})),super.attach()}detach(){super.detach(),this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._popupHighlightHelper?.destroy(),this._highlightView?.destroy(),this._fetchQueue=this._tileStrategy=this._tileInfoView=this._popupHighlightHelper=null}async fetchPopupFeaturesAtTarget(e,i,t){return this._popupHighlightHelper?this._popupHighlightHelper.fetchPopupFeaturesAtTarget(i,t):[]}highlight(e,t){const r=b(e);if(0===r.length)return i();const s=H(t),h=this._addHighlightGraphics(r,s);return i(()=>!this.destroyed&&this._removeHighlightGraphics(r,h))}_onHighlightChange(){const e=this._getHighlightFilterGroups();this._highlightView?.setHighlightFilters(e)}_addHighlightGraphics(e,i){return this._highlightGraphics.addMany(e),this._addHighlightFilter(new l({objectIds:e.map(e=>e.uid)}),i)}_removeHighlightGraphics(e,i){this._highlightGraphics.removeMany(e),this._removeHighlight(i)}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return o(this.layer.tileInfo?.spatialReference,e)}async doRefresh(){if(this.attached){if(this.suspended)return this._tileStrategy.clear(),void this.requestUpdate();this._fetchQueue.reset(),this._tileStrategy.refresh(e=>this._updatingHandles.addPromise(this._enqueueTileFetch(e)))}}acquireTile(e){const i=this._bitmapView.createTile(e),t=i.bitmap;return[t.x,t.y]=this._tileInfoView.getTileCoords(q,i.key),t.resolution=this._tileInfoView.getTileResolution(i.key),[t.width,t.height]=this._tileInfoView.size,this._updatingHandles.consumePromise(this._enqueueTileFetch(i)),this._bitmapView.addChild(i),this.requestUpdate(),i}releaseTile(e){this._fetchQueue.abort(e.key.id),this._bitmapView.removeChild(e),e.once("detach",()=>e.destroy()),this.requestUpdate()}async fetchTile(e,i={}){return this.tilemapCache?this._fetchTileWithTilemapCache(e,i):this._fetchTileWithoutTilemapCache(e,i)}async _fetchTileWithoutTilemapCache(e,i={}){const{signal:t,resamplingLevel:s=0}=i;try{return await this._fetchImage(e,t)}catch(h){if(r(h))throw h;if(!this.resampling)return u(this._tileInfoView.size);if(s<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){const r=new y(t),h=await this._fetchTileWithoutTilemapCache(r,{...i,resamplingLevel:s+1});return f(this._tileInfoView,h,r,e)}}return u(this._tileInfoView.size)}}async _fetchTileWithTilemapCache(e,i={}){const t=this.tilemapCache,{signal:h,resamplingLevel:a=0}=i,o=new y(0,0,0,0);let l,p=null;try{if(p=await t.fetchAvailabilityUpsample(e.level,e.row,e.col,o,{signal:h}),!this.resampling&&o.level!==e.level)return await s(i),u(this._tileInfoView.size);l=await this._fetchImage(o,h)}catch(n){if(r(n))throw n;if(this.resampling&&"unknown"===p&&a<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){o.set(t);try{l=await this._fetchTileWithTilemapCache(o,{...i,resamplingLevel:a+1})}catch{}}}}return l?this.resampling?f(this._tileInfoView,l,o,e):l:u(this._tileInfoView.size)}async _enqueueTileFetch(e){if(!this._fetchQueue.has(e.key.id)){try{const i=await this._fetchQueue.push(e.key);e.bitmap.source=i,e.bitmap.width=this._tileInfoView.size[0],e.bitmap.height=this._tileInfoView.size[1],e.once("attach",()=>this.requestUpdate()),e.once("isReady",()=>this.requestUpdate())}catch(i){r(i)||t.getLogger(this).error(i)}this.requestUpdate()}}async _fetchImage(e,i){return this.layer.fetchImageBitmapTile(e.level,e.row,e.col,{signal:i}).then(({bitmap:e})=>e)}};e([h()],G.prototype,"resampling",null),e([h()],G.prototype,"tilemapCache",null),G=e([a("esri.views.2d.layers.TileLayerView2D")],G);const S=G;export{S as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import has from"../../../../core/has.js";import{destroyMaybe as e}from"../../../../core/maybe.js";import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{signal as r}from"../../../../core/signal.js";import{AFeatureContainer as s}from"../../engine/AFeatureContainer.js";import{ClipMesh as i}from"../../engine/webgl/ClipMesh.js";import{effectFlag0 as n,filterFlag0 as a}from"../../engine/webgl/definitions.js";import o from"../../engine/webgl/shaderGraph/techniques/FeatureInstanceStore.js";import{Techniques as l}from"../../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import{FeatureTilePresentStrategy as h}from"./FeatureTilePresentStrategy.js";import{RenderState as d}from"./RenderState.js";import{renderHighlight as u}from"../support/util.js";import{createHittestQuery as c}from"../../support/hitTestUtils.js";import p from"../../../layers/support/Path.js";class f{constructor(e){this.inner=e,this.resolver=Promise.withResolvers()}}class _{constructor(e){this.level=e,this.id=performance.now(),this.messages=[]}}class v{constructor(e,t){this.id=e,this.version=t}}class g extends s{constructor(e){super(e.view.featuresTilingScheme),this.referenceScale=null,this._updatingChildren=r(!1),this._hitTestsRequests=[],this._renderState=r(null),this._renderStateNext=r(null),this._store=new o,this._subscriptions=new Map,this._presentation=new h,this._updateStatisticsRequests=[],this._lockStatisticUpdates=!1,this._supportsInstanceCleanup=!0,this._shouldUnlockAttributeView=!1,this._layerView=e,this.addTransitionable(this._layerView.featureEffectView)}destroy(){super.destroy(),this._renderState.value=e(this._renderState.value),this._renderStateNext.value=e(this._renderStateNext.value)}get batching(){return has("featurelayer-strict-draw-order")?1:has("featurelayer-force-marker-text-draw-order")?2:0}get updating(){const e=this._updatingChildren.value,t=!this._renderState.value||this._renderState.value.updating,r=!!this._renderStateNext.value,s=this.attributeView.updating;return e||t||r||s}subscriptions(){return this._subscriptions.values()}get hasLabels(){return null!==this.labelSchema}get hasHighlight(){return this._layerView.hasHighlight}get children(){return this._renderState.value?this._renderState.value.tiles().filter(e=>e.presenting):[]}get usedMemory(){let e=0;return this._renderState.value&&(e+=this._renderState.value.usedMemory),this._renderStateNext.value&&(e+=this._renderStateNext.value.usedMemory),e+=this.attributeView.usedMemory,e}get instanceStore(){return this._store}get labelingCollisionInfos(){if(!this._deconflictionInfo)throw new Error("InternalError: DeconflictionInfo not defined. Was update called?");return this._deconflictionInfo}get labelSchema(){return this._schema?.mesh.factory.labels??null}get layerOrder(){return this._layerView.view.allLayerViews.items.indexOf(this._layerView)}get tiles(){return this._renderState.value?.tiles()}get requiresRefresh(){return!!this._renderState.value?.requiresRefresh}get _instanceStore(){return this._store}_getHeatmapInstance(e){if(null==this._instanceStore||!(e.drawPhase&l.heatmap.drawPhase))return null;for(const t of this._instanceStore.values())if(S(t))return t;return null}update(e,t){this._schema=e,this._deconflictionInfo=t}setCoverage(e){this._presentation.updateCoverage(e)}getPresenting(){const e=new Set;for(const t of this._renderState.value?.tiles()??[])t.presenting&&e.add(t.id);return e}beforeRender(e){if(super.beforeRender(e),this._renderState.value){for(const t of this._renderState.value.tiles())t.setTransform(e.state);if(!e.decluttering){this._presentation.update(this._renderState.value.tiles());for(const e of this._renderState.value.tiles())e.upload(this._instanceStore,this.batching)}this._updatingChildren.value=!this.children.every(e=>e.ended&&e.presenting)}}renderChildren(e){switch(super.renderChildren(e),e.drawPhase){case 1:return this._renderMapPhase(e);case 8:return this._renderHighlightPhase(e);case 2:return this._renderLabelPhase(e)}}afterRender(e){super.afterRender(e),e.decluttering||(this._finializeUpdate(),this._updateAttributeView(),this._handleSwapRenderState(),this._renderState.value?.update(this.attributeView.currentEpoch)),this._hitTestsRequests.length&&this.requestRender()}updateStart(e){return this.attributeView.lockTextureUploads(),this._supportsInstanceCleanup=!e&&"dictionary"!==this._schema?.mesh.factory.symbology.type,this.instanceStore.updateStart(this._supportsInstanceCleanup),this.instanceStore}async updateEnd(e,t,r){return this._updateResolver=new f({schema:e,deconflictionInfo:t,invalidateMesh:r}),this.requestRender(),e.mesh.factory.referenceScale&&(this.referenceScale=e.mesh.factory.referenceScale),this._updateResolver.resolver.promise}updateAttributeView(e){this.requestRender(),this.attributeView.requestUpdate(e)}updateSubscriptions(e){for(const{tileId:t,version:r}of e.subscribe){if(!this._subscriptions.has(t)){const e=new v(t,r);this._subscriptions.set(t,e);continue}this._subscriptions.get(t).version=r}for(const t of e.unsubscribe)this._subscriptions.delete(t),this.removeTile(t)}isFeatureFiltered(e){const t=this.attributeView.getFilterFlags(e),r=t&a,s=null==this._layerView.featureEffectView.featureEffect||this._layerView.featureEffectView.featureEffect.excludedLabelsVisible||t&n;return!(r&&s)}getDisplayStatistics(e,t){const r=this._statisticsByLevel.get(e);return r?r.get(t):null}updateStatistics(e,t){if(this._lockStatisticUpdates)return void this._updateStatisticsRequests.push({level:e,statistics:t});let r=this._statisticsByLevel.get(e);r||(r=new Map,this._statisticsByLevel.set(e,r));for(const s of t)r.set(s.fieldName,{minValue:s.minValue,maxValue:s.maxValue})}beginLevelMeshUpdate(e){if(null!=this._pendingLevelUpdate)throw new Error("InternalError: Pending level mesh update in progress");return this._pendingLevelUpdate=new _(e),has("esri-2d-update-debug")&&console.debug(`FeatureContainer.beginLevelMeshUpdate(level=${e}, id=${this._pendingLevelUpdate.id})`),this._pendingLevelUpdate.id}applyLevelMeshUpdate(e){if(null==this._pendingLevelUpdate)throw new Error("InternalError: No level mesh update to apply");if(this._pendingLevelUpdate.id!==e)throw new Error("InternalError: Unexpected id");if(has("esri-2d-update-debug")){const{id:e,level:t}=this._pendingLevelUpdate;console.debug(`FeatureContainer.applyLevelMeshUpdate(level=${t}, id=${e})`)}const{level:t,messages:r}=this._pendingLevelUpdate,s=this._renderStateNext.value??this._renderState.value;if(!s)throw new Error("InternalError: No renderState defined");s.enqueueLevelReplace(t,r),this._pendingLevelUpdate=null,this.requestRender()}lockForOverrides(){this._renderState.value?.lockUploads(),this._lockStatisticUpdates=!0,this.attributeView.locked||(this.attributeView.lockTextureUploads(),this._shouldUnlockAttributeView=!0)}unlockForOverrides(){this._renderState.value?.unlockUploads(),this._shouldUnlockAttributeView&&(this.attributeView.unlockTextureUploads()&&this.hasLabels&&this.requestDeclutter(),this._shouldUnlockAttributeView=!1),this._lockStatisticUpdates=!1;for(const e of this._updateStatisticsRequests)this.updateStatistics(e.level,e.statistics);this._updateStatisticsRequests=[],this._renderState.value?.flush(this.attributeView.currentEpoch),this.requestRender()}async updateRenderState(e){if(this._renderStateNext.value)throw new Error("InternalError: renderStateNext already exists");has("esri-2d-update-debug")&&console.debug(`Version[${e}] FeatureContainer.updateRenderState`),this._renderStateNext.value=new d(()=>this._stage,e=>this._subscriptions.get(e)?.version,e,this.tilingScheme)}async swapRenderState(){if(!this._renderStateNext.value)throw new Error("InternalError: renderStateNext not yet created");if(this._renderStateSwapResolver)throw new Error("InternalError: renderState swap already in progress");this._renderStateSwapResolver=Promise.withResolvers(),await this._renderStateSwapResolver.promise}async onMessage(e,r){if(t(r),!this._pendingLevelUpdate)return this._applyMessage(e);this._pendingLevelUpdate.messages.push(e)}removeTile(e){(this._renderState.value||this._renderStateNext.value)&&(this._renderState.value&&this._renderState.value.removeTile(e),this._renderStateNext.value&&this._renderStateNext.value.removeTile(e))}async hitTest(e,t){const r=c(e,t);if(!r)return console.warn("Unexpected hittest input:",e),{trueHitIds:[],candidateHitIds:[]};const s=this._hitTestsRequests.find(({query:e})=>r.hittestType===e.hittestType&&r.input===e.input&&r.options===e.options),n=Promise.withResolvers();if(s)s.resolvers.push(n);else{if("polygon"===r.hittestType&&(r.polygonMesh=await i.create(new p({path:[r.input.map(e=>[e.x,e.y])]})),!r.polygonMesh))return n.resolve({trueHitIds:[],candidateHitIds:[]}),n.promise;this._hitTestsRequests.push({query:r,resolvers:[n]})}return this.requestRender(),n.promise}getSortKeys(e){const t=new Set(e),r=new Map;for(const s of this.children)if(s.getSortKeys(t).forEach((e,t)=>r.set(t,e)),r.size===t.size)break;return r}get hasAnimation(){return this.hasLabels}doRender(e){const{minScale:t,maxScale:r}=this._layerView.layer.effectiveScaleRange,s=e.state.scale;s<=(t||1/0)&&s>=r&&super.doRender(e)}setStencilReference(e){if(null==this._getHeatmapInstance(e))super.setStencilReference(e);else for(const t of this.children)t.stencilRef=l.heatmap.getStencilReference(t)}createRenderParams(e){const t=super.createRenderParams(e);return t.referenceScale=this.referenceScale,t}_applyMessage(e){const t=e.inner;if(!this._subscriptions.has(t.id))return;const r=this._subscriptions.get(t.id);if(r.version!==t.subscriptionVesrion){if(has("esri-2d-update-debug")){const e=`${t.subscriptionVesrion} != ${r.version}`;console.debug(`Version[${e}] Tile[${t.id}] FeatureContainer - Dropping message, outdated version]`,t)}return}const s=this._renderStateNext.value??this._renderState.value;if(!s)throw new Error("InternalError: No renderState defined");s.version!==t.version&&console.error(`InternalError: Version mismatch. [renderState: ${s.version}, message: ${t.version}]`),s.enqueueUpdate(e),this.requestRender()}_finializeUpdate(){if(!this._updateResolver)return;const{schema:e,deconflictionInfo:t,invalidateMesh:r}=this._updateResolver.inner;this._schema=e,this._deconflictionInfo=t,this.attributeView.unlockTextureUploads()&&this.hasLabels&&this.requestDeclutter(),this.instanceStore.updateEnd(this._supportsInstanceCleanup),r&&(this.restartAllAnimations(),this.swapRenderState());const s="heatmap"===e.mesh.factory.symbology.type?"target-defer":"eager";this._presentation.updateStrategy(s),this._updateResolver.resolver.resolve(),this._updateResolver=null,this.requestRender()}_handleSwapRenderState(){if(this._renderStateSwapResolver&&this._renderStateNext.value){has("esri-2d-update-debug")&&console.debug(`Version[${this._renderStateNext.value}] FeatureContainer.update.swapRenderState`);const e=this._renderState.value,t=new Set,r=new Set;for(const s of e?.tiles()??[])s.decluttering&&t.add(s.id),s.presenting&&r.add(s.id);this._renderState.value=this._renderStateNext.value,this._renderStateNext.value=null,this._renderState.value.flush(this.attributeView.currentEpoch),e?.destroy(),this._renderStateSwapResolver.resolve(),this._renderStateSwapResolver=null;for(const s of this._renderState.value.tiles())t.has(s.id)&&(s.decluttering=!0),r.has(s.id)&&(s.presenting=!0);this.requestRender(),this.hasLabels&&this.requestDeclutter()}}_renderMapPhase(e){this._layerView.featureEffectView.hasEffects?(this._renderOutsideEffect(e),this._renderInsideEffect(e)):this._renderFeatures(e,0),this._hitTestsRequests.length>0&&this._renderHittest(e)}_renderHighlightPhase(e){this.hasHighlight&&u(e,!1,e=>{this._renderFeatures(e,1)})}_renderLabelPhase(e){this._renderFeatures(e,0)}_renderInsideEffect(e){const t=e.painter.effects.insideEffect;t.bind(e),this._renderFeatures(e,2),t.draw(e,this._layerView.featureEffectView.includedEffects),t.unbind()}_renderOutsideEffect(e){const t=e.painter.effects.outsideEffect;t.bind(e),this._renderFeatures(e,3),t.draw(e,this._layerView.featureEffectView.excludedEffects),t.unbind()}_renderHittest(e){const t=e.painter.effects.hittest,r=this._hitTestsRequests.shift(),s=r.query.hittestType;t.prepareResources(e,s),t.render(e,r,e=>{const s=t.getHittestableTiles(e,this.children,r.query);for(const t of s)this._renderTile(t,e,0)}),"polygon"===s&&r.query.polygonMesh&&r.query.polygonMesh.destroy(),t.readback(e,r)}_renderFeatures(e,t){const r=this._getHeatmapInstance(e);null!=r?this._renderHeatmapFeatures(e,t,r):this._renderGeometryFeatures(e,t)}_renderGeometryFeatures(e,t){for(const r of this.children)r.visible&&this._renderTile(r,e,t)}_renderHeatmapFeatures(e,t,r){for(const s of this.children)s.visible&&this._renderTile(s,e,t,19);r.techniqueRef.renderResolvePass(e,r)}_renderTile(e,t,r,s){t.selection=r,e.getDisplayList()?.render(t,s)}}function S(e){return 19===e.techniqueRef.type}export{g as FeatureContainer};
2
+ import has from"../../../../core/has.js";import{destroyMaybe as e}from"../../../../core/maybe.js";import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{signal as r}from"../../../../core/signal.js";import{AFeatureContainer as s}from"../../engine/AFeatureContainer.js";import{ClipMesh as i}from"../../engine/webgl/ClipMesh.js";import{effectFlag0 as n,filterFlag0 as a}from"../../engine/webgl/definitions.js";import o from"../../engine/webgl/shaderGraph/techniques/FeatureInstanceStore.js";import{Techniques as l}from"../../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import{FeatureTilePresentStrategy as h}from"./FeatureTilePresentStrategy.js";import{RenderState as d}from"./RenderState.js";import{renderHighlight as u}from"../support/util.js";import{createHittestQuery as c}from"../../support/hitTestUtils.js";import p from"../../../layers/support/Path.js";class f{constructor(e){this.inner=e,this.resolver=Promise.withResolvers()}}class _{constructor(e){this.level=e,this.id=performance.now(),this.messages=[]}}class v{constructor(e,t){this.id=e,this.version=t}}class g extends s{constructor(e){super(e.view.featuresTilingScheme),this.referenceScale=null,this._updatingChildren=r(!1),this._hitTestsRequests=[],this._firstDrawTime=null,this._renderState=r(null),this._renderStateNext=r(null),this._store=new o,this._subscriptions=new Map,this._presentation=new h,this._updateStatisticsRequests=[],this._lockStatisticUpdates=!1,this._supportsInstanceCleanup=!0,this._shouldUnlockAttributeView=!1,this._layerView=e,this.addTransitionable(this._layerView.featureEffectView)}destroy(){super.destroy(),this._renderState.value=e(this._renderState.value),this._renderStateNext.value=e(this._renderStateNext.value)}get batching(){return has("featurelayer-strict-draw-order")?1:has("featurelayer-force-marker-text-draw-order")?2:0}get firstDrawTime(){return this._firstDrawTime}get updating(){const e=this._updatingChildren.value,t=!this._renderState.value||this._renderState.value.updating,r=!!this._renderStateNext.value,s=this.attributeView.updating;return e||t||r||s}subscriptions(){return this._subscriptions.values()}get hasLabels(){return null!==this.labelSchema}get hasHighlight(){return this._layerView.hasHighlight}get children(){return this._renderState.value?this._renderState.value.tiles().filter(e=>e.presenting):[]}get usedMemory(){let e=0;return this._renderState.value&&(e+=this._renderState.value.usedMemory),this._renderStateNext.value&&(e+=this._renderStateNext.value.usedMemory),e+=this.attributeView.usedMemory,e}get instanceStore(){return this._store}get labelingCollisionInfos(){if(!this._deconflictionInfo)throw new Error("InternalError: DeconflictionInfo not defined. Was update called?");return this._deconflictionInfo}get labelSchema(){return this._schema?.mesh.factory.labels??null}get layerOrder(){return this._layerView.view.allLayerViews.items.indexOf(this._layerView)}get tiles(){return this._renderState.value?.tiles()}get requiresRefresh(){return!!this._renderState.value?.requiresRefresh}get _instanceStore(){return this._store}_getHeatmapInstance(e){if(null==this._instanceStore||!(e.drawPhase&l.heatmap.drawPhase))return null;for(const t of this._instanceStore.values())if(S(t))return t;return null}update(e,t){this._schema=e,this._deconflictionInfo=t}setCoverage(e){this._presentation.updateCoverage(e)}getPresenting(){const e=new Set;for(const t of this._renderState.value?.tiles()??[])t.presenting&&e.add(t.id);return e}beforeRender(e){if(super.beforeRender(e),this._renderState.value){for(const t of this._renderState.value.tiles())t.setTransform(e.state);if(!e.decluttering){this._presentation.update(this._renderState.value.tiles());for(const e of this._renderState.value.tiles())e.upload(this._instanceStore,this.batching)}this._updatingChildren.value=!this.children.every(e=>e.ended&&e.presenting)}}renderChildren(e){switch(super.renderChildren(e),e.drawPhase){case 1:return this._renderMapPhase(e);case 8:return this._renderHighlightPhase(e);case 2:return this._renderLabelPhase(e)}}afterRender(e){super.afterRender(e),e.decluttering||(this._finializeUpdate(),this._updateAttributeView(),this._handleSwapRenderState(),this._renderState.value?.update(this.attributeView.currentEpoch)),this._hitTestsRequests.length&&this.requestRender()}updateStart(e){return this.attributeView.lockTextureUploads(),this._supportsInstanceCleanup=!e&&"dictionary"!==this._schema?.mesh.factory.symbology.type,this.instanceStore.updateStart(this._supportsInstanceCleanup),this.instanceStore}async updateEnd(e,t,r){return this._updateResolver=new f({schema:e,deconflictionInfo:t,invalidateMesh:r}),this.requestRender(),e.mesh.factory.referenceScale&&(this.referenceScale=e.mesh.factory.referenceScale),this._updateResolver.resolver.promise}updateAttributeView(e){this.requestRender(),this.attributeView.requestUpdate(e)}updateSubscriptions(e){for(const{tileId:t,version:r}of e.subscribe){if(!this._subscriptions.has(t)){const e=new v(t,r);this._subscriptions.set(t,e);continue}this._subscriptions.get(t).version=r}for(const t of e.unsubscribe)this._subscriptions.delete(t),this.removeTile(t)}isFeatureFiltered(e){const t=this.attributeView.getFilterFlags(e),r=t&a,s=null==this._layerView.featureEffectView.featureEffect||this._layerView.featureEffectView.featureEffect.excludedLabelsVisible||t&n;return!(r&&s)}getDisplayStatistics(e,t){const r=this._statisticsByLevel.get(e);return r?r.get(t):null}updateStatistics(e,t){if(this._lockStatisticUpdates)return void this._updateStatisticsRequests.push({level:e,statistics:t});let r=this._statisticsByLevel.get(e);r||(r=new Map,this._statisticsByLevel.set(e,r));for(const s of t)r.set(s.fieldName,{minValue:s.minValue,maxValue:s.maxValue})}beginLevelMeshUpdate(e){if(null!=this._pendingLevelUpdate)throw new Error("InternalError: Pending level mesh update in progress");return this._pendingLevelUpdate=new _(e),has("esri-2d-update-debug")&&console.debug(`FeatureContainer.beginLevelMeshUpdate(level=${e}, id=${this._pendingLevelUpdate.id})`),this._pendingLevelUpdate.id}applyLevelMeshUpdate(e){if(null==this._pendingLevelUpdate)throw new Error("InternalError: No level mesh update to apply");if(this._pendingLevelUpdate.id!==e)throw new Error("InternalError: Unexpected id");if(has("esri-2d-update-debug")){const{id:e,level:t}=this._pendingLevelUpdate;console.debug(`FeatureContainer.applyLevelMeshUpdate(level=${t}, id=${e})`)}const{level:t,messages:r}=this._pendingLevelUpdate,s=this._renderStateNext.value??this._renderState.value;if(!s)throw new Error("InternalError: No renderState defined");s.enqueueLevelReplace(t,r),this._pendingLevelUpdate=null,this.requestRender()}lockForOverrides(){this._renderState.value?.lockUploads(),this._lockStatisticUpdates=!0,this.attributeView.locked||(this.attributeView.lockTextureUploads(),this._shouldUnlockAttributeView=!0)}unlockForOverrides(){this._renderState.value?.unlockUploads(),this._shouldUnlockAttributeView&&(this.attributeView.unlockTextureUploads()&&this.hasLabels&&this.requestDeclutter(),this._shouldUnlockAttributeView=!1),this._lockStatisticUpdates=!1;for(const e of this._updateStatisticsRequests)this.updateStatistics(e.level,e.statistics);this._updateStatisticsRequests=[],this._renderState.value?.flush(this.attributeView.currentEpoch),this.requestRender()}async updateRenderState(e){if(this._renderStateNext.value)throw new Error("InternalError: renderStateNext already exists");has("esri-2d-update-debug")&&console.debug(`Version[${e}] FeatureContainer.updateRenderState`),this._renderStateNext.value=new d(()=>this._stage,e=>this._subscriptions.get(e)?.version,e,this.tilingScheme)}async swapRenderState(){if(!this._renderStateNext.value)throw new Error("InternalError: renderStateNext not yet created");if(this._renderStateSwapResolver)throw new Error("InternalError: renderState swap already in progress");this._renderStateSwapResolver=Promise.withResolvers(),await this._renderStateSwapResolver.promise}async onMessage(e,r){if(t(r),!this._pendingLevelUpdate)return this._applyMessage(e);this._pendingLevelUpdate.messages.push(e)}removeTile(e){(this._renderState.value||this._renderStateNext.value)&&(this._renderState.value&&this._renderState.value.removeTile(e),this._renderStateNext.value&&this._renderStateNext.value.removeTile(e))}async hitTest(e,t){const r=c(e,t);if(!r)return console.warn("Unexpected hittest input:",e),{trueHitIds:[],candidateHitIds:[]};const s=this._hitTestsRequests.find(({query:e})=>r.hittestType===e.hittestType&&r.input===e.input&&r.options===e.options),n=Promise.withResolvers();if(s)s.resolvers.push(n);else{if("polygon"===r.hittestType&&(r.polygonMesh=await i.create(new p({path:[r.input.map(e=>[e.x,e.y])]})),!r.polygonMesh))return n.resolve({trueHitIds:[],candidateHitIds:[]}),n.promise;this._hitTestsRequests.push({query:r,resolvers:[n]})}return this.requestRender(),n.promise}getSortKeys(e){const t=new Set(e),r=new Map;for(const s of this.children)if(s.getSortKeys(t).forEach((e,t)=>r.set(t,e)),r.size===t.size)break;return r}get hasAnimation(){return this.hasLabels}doRender(e){const{minScale:t,maxScale:r}=this._layerView.layer.effectiveScaleRange,s=e.state.scale;s<=(t||1/0)&&s>=r&&super.doRender(e)}setStencilReference(e){if(null==this._getHeatmapInstance(e))super.setStencilReference(e);else for(const t of this.children)t.stencilRef=l.heatmap.getStencilReference(t)}createRenderParams(e){const t=super.createRenderParams(e);return t.referenceScale=this.referenceScale,t}_applyMessage(e){const t=e.inner;if(!this._subscriptions.has(t.id))return;const r=this._subscriptions.get(t.id);if(r.version!==t.subscriptionVesrion){if(has("esri-2d-update-debug")){const e=`${t.subscriptionVesrion} != ${r.version}`;console.debug(`Version[${e}] Tile[${t.id}] FeatureContainer - Dropping message, outdated version]`,t)}return}const s=this._renderStateNext.value??this._renderState.value;if(!s)throw new Error("InternalError: No renderState defined");s.version!==t.version&&console.error(`InternalError: Version mismatch. [renderState: ${s.version}, message: ${t.version}]`),s.enqueueUpdate(e),this.requestRender()}_finializeUpdate(){if(!this._updateResolver)return;const{schema:e,deconflictionInfo:t,invalidateMesh:r}=this._updateResolver.inner;this._schema=e,this._deconflictionInfo=t,this.attributeView.unlockTextureUploads()&&this.hasLabels&&this.requestDeclutter(),this.instanceStore.updateEnd(this._supportsInstanceCleanup),r&&(this.restartAllAnimations(),this.swapRenderState());const s="heatmap"===e.mesh.factory.symbology.type?"target-defer":"eager";this._presentation.updateStrategy(s),this._updateResolver.resolver.resolve(),this._updateResolver=null,this.requestRender()}_handleSwapRenderState(){if(this._renderStateSwapResolver&&this._renderStateNext.value){has("esri-2d-update-debug")&&console.debug(`Version[${this._renderStateNext.value}] FeatureContainer.update.swapRenderState`);const e=this._renderState.value,t=new Set,r=new Set;for(const s of e?.tiles()??[])s.decluttering&&t.add(s.id),s.presenting&&r.add(s.id);this._renderState.value=this._renderStateNext.value,this._renderStateNext.value=null,this._renderState.value.flush(this.attributeView.currentEpoch),e?.destroy(),this._renderStateSwapResolver.resolve(),this._renderStateSwapResolver=null;for(const s of this._renderState.value.tiles())t.has(s.id)&&(s.decluttering=!0),r.has(s.id)&&(s.presenting=!0);this.requestRender(),this.hasLabels&&this.requestDeclutter()}}_renderMapPhase(e){this._layerView.featureEffectView.hasEffects?(this._renderOutsideEffect(e),this._renderInsideEffect(e)):this._renderFeatures(e,0),this._hitTestsRequests.length>0&&this._renderHittest(e)}_renderHighlightPhase(e){this.hasHighlight&&u(e,!1,e=>{this._renderFeatures(e,1)})}_renderLabelPhase(e){this._renderFeatures(e,0)}_renderInsideEffect(e){const t=e.painter.effects.insideEffect;t.bind(e),this._renderFeatures(e,2),t.draw(e,this._layerView.featureEffectView.includedEffects),t.unbind()}_renderOutsideEffect(e){const t=e.painter.effects.outsideEffect;t.bind(e),this._renderFeatures(e,3),t.draw(e,this._layerView.featureEffectView.excludedEffects),t.unbind()}_renderHittest(e){const t=e.painter.effects.hittest,r=this._hitTestsRequests.shift(),s=r.query.hittestType;t.prepareResources(e,s),t.render(e,r,e=>{const s=t.getHittestableTiles(e,this.children,r.query);for(const t of s)this._renderTile(t,e,0)}),"polygon"===s&&r.query.polygonMesh&&r.query.polygonMesh.destroy(),t.readback(e,r)}_renderFeatures(e,t){const r=this._getHeatmapInstance(e);null!=r?this._renderHeatmapFeatures(e,t,r):this._renderGeometryFeatures(e,t)}_renderGeometryFeatures(e,t){for(const r of this.children)r.visible&&this._renderTile(r,e,t)}_renderHeatmapFeatures(e,t,r){for(const s of this.children)s.visible&&this._renderTile(s,e,t,19);r.techniqueRef.renderResolvePass(e,r)}_renderTile(e,t,r,s){t.selection=r;const i=e.getDisplayList()?.render(t,s)??!1;null==this._firstDrawTime&&i&&1===t.drawPhase&&(this._firstDrawTime=performance.now(),this._layerView.emitFirstDraw(this._firstDrawTime))}}function S(e){return 19===e.techniqueRef.type}export{g as FeatureContainer};