@arcgis/core 5.2.0-next.62 → 5.2.0-next.64

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 (530) hide show
  1. package/WebDocument2D.d.ts +17 -1
  2. package/WebDocument2D.js +1 -1
  3. package/WebLinkChart.js +1 -1
  4. package/WebMap.js +1 -1
  5. package/WebScene.js +1 -1
  6. package/arcade/Feature.js +1 -1
  7. package/arcade/ImmutableArray.js +1 -1
  8. package/arcade/ImmutablePathArray.js +1 -1
  9. package/arcade/ImmutablePointArray.js +1 -1
  10. package/arcade/Pixel.js +1 -1
  11. package/arcade/Voxel.js +1 -1
  12. package/arcade/arcadeAsyncRuntime.js +1 -1
  13. package/arcade/arcadeCompiler.js +1 -1
  14. package/arcade/arcadeRuntime.js +1 -1
  15. package/arcade/containerUtils.js +1 -1
  16. package/arcade/debug.js +1 -1
  17. package/arcade/deepClone.js +1 -1
  18. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  19. package/arcade/functions/convertdirection.js +1 -1
  20. package/arcade/functions/date.js +1 -1
  21. package/arcade/functions/feature.js +1 -1
  22. package/arcade/functions/featuresetbase.js +1 -1
  23. package/arcade/functions/featuresetgeom.js +1 -1
  24. package/arcade/functions/featuresetstats.js +1 -1
  25. package/arcade/functions/featuresetstring.js +1 -1
  26. package/arcade/functions/fieldStats.js +1 -1
  27. package/arcade/functions/geomasync.js +1 -1
  28. package/arcade/functions/geometry.js +1 -1
  29. package/arcade/functions/geomsync.js +1 -1
  30. package/arcade/functions/knowledgegraph.js +1 -1
  31. package/arcade/functions/maths.js +1 -1
  32. package/arcade/functions/stats.js +1 -1
  33. package/arcade/functions/string.js +1 -1
  34. package/arcade/functions/track.js +1 -1
  35. package/arcade/geometry/functions.js +1 -1
  36. package/arcade/languageUtils.js +1 -1
  37. package/arcade.js +1 -1
  38. package/arcgisGlobal.d.ts +14 -0
  39. package/assets/esri/core/workers/RemoteClient.js +1 -1
  40. package/assets/esri/core/workers/chunks/{44e64186318728d1be51.js → 067b00498ae85f635f60.js} +1 -1
  41. package/assets/esri/core/workers/chunks/0977f4d77c36175c2895.js +1 -0
  42. package/assets/esri/core/workers/chunks/09c43bcb09aad02e83a9.js +1 -0
  43. package/assets/esri/core/workers/chunks/0b20f92bae2b4c40d299.js +1 -0
  44. package/assets/esri/core/workers/chunks/0c3c311400ee352187ea.js +1 -0
  45. package/assets/esri/core/workers/chunks/0c582abc8d25249eb530.js +1 -0
  46. package/assets/esri/core/workers/chunks/0d6776055e9b34c14151.js +1 -0
  47. package/assets/esri/core/workers/chunks/0d7d54e74b5639a0be6e.js +1 -0
  48. package/assets/esri/core/workers/chunks/0da5b27b070ab780f8b3.js +1 -0
  49. package/assets/esri/core/workers/chunks/0e6b6fcc55cc43ede1fc.js +1 -0
  50. package/assets/esri/core/workers/chunks/{bcb5017500d144b73908.js → 126f1f6b355723db6c4f.js} +1 -1
  51. package/assets/esri/core/workers/chunks/12a64eca4c571926d9d4.js +1 -0
  52. package/assets/esri/core/workers/chunks/{b2c0262c4a76b8a86200.js → 149284464115981694ff.js} +1 -1
  53. package/assets/esri/core/workers/chunks/1642fa1263d8f4a45101.js +1 -0
  54. package/assets/esri/core/workers/chunks/1840d74ebae777a0200b.js +1 -0
  55. package/assets/esri/core/workers/chunks/19bf6826e7d9a4d52035.js +1 -0
  56. package/assets/esri/core/workers/chunks/1bfbdec791e19f5a2534.js +1 -0
  57. package/assets/esri/core/workers/chunks/1d8280f63a6698e74f20.js +1 -0
  58. package/assets/esri/core/workers/chunks/{1b68b1b724ad30396723.js → 2426601b8cae7f06af4d.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{a12803108c3b12808698.js → 242cad472fbc38b24dbc.js} +2 -2
  60. package/assets/esri/core/workers/chunks/25197ecb324d6f08e03e.js +1 -0
  61. package/assets/esri/core/workers/chunks/253c231b5a52f1d2d3a5.js +1 -0
  62. package/assets/esri/core/workers/chunks/25999b6f96ec305a7679.js +1 -0
  63. package/assets/esri/core/workers/chunks/259bdacfb7b0f866a8d0.js +1 -0
  64. package/assets/esri/core/workers/chunks/28565756f884d0851003.js +1 -0
  65. package/assets/esri/core/workers/chunks/2a5a165848413764381b.js +1 -0
  66. package/assets/esri/core/workers/chunks/2e7a5bb740281ef59199.js +1 -0
  67. package/assets/esri/core/workers/chunks/{285a5bd708f0fe1c620c.js → 2ea3ca68cfa4d34e8f3b.js} +1 -1
  68. package/assets/esri/core/workers/chunks/2f87a49bdd00f899d81d.js +1 -0
  69. package/assets/esri/core/workers/chunks/{37a95f097533bad1b338.js → 302d91b7c480c6c9304b.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{3d6d2b42ba2ad7086d5d.js → 3b493e8043ec1a2a5d96.js} +1 -1
  71. package/assets/esri/core/workers/chunks/40e48b720d89cd067892.js +1 -0
  72. package/assets/esri/core/workers/chunks/{a833fc9250635eb4152f.js → 41f7f3615d3ecb87c59a.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{17acbf40e7c1cb42d9bd.js → 44b1cdf28269b4fa8a39.js} +1 -1
  74. package/assets/esri/core/workers/chunks/44e8cd4b3dad777ab0c9.js +1 -0
  75. package/assets/esri/core/workers/chunks/{95b3b8fe45ef4ac6b277.js → 450bc48a7389607bce1e.js} +1 -1
  76. package/assets/esri/core/workers/chunks/465a050fd838ee8eddf3.js +1 -0
  77. package/assets/esri/core/workers/chunks/46d8a1d6f7341ad20749.js +1 -0
  78. package/assets/esri/core/workers/chunks/4710f21b138a2c9a0345.js +1 -0
  79. package/assets/esri/core/workers/chunks/48a0dfaabb9b4bce4191.js +1 -0
  80. package/assets/esri/core/workers/chunks/49a3888bf9e2481642ac.js +1 -0
  81. package/assets/esri/core/workers/chunks/{4ee900e5dbb130fa0c7b.js → 4a40b894ec89b0a4f9bf.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{d847c3cb2043a983145b.js → 4addea2e35b0c845743e.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{e0a4d0288abd334b0673.js → 4ae626868e14bedd7fc5.js} +1 -1
  84. package/assets/esri/core/workers/chunks/529ee4670940720e888b.js +1 -0
  85. package/assets/esri/core/workers/chunks/{a3c882fe7599dc0f4f27.js → 59d1708ae13c6e7e6e55.js} +1 -1
  86. package/assets/esri/core/workers/chunks/59dd83e5aee2908c7eca.js +1 -0
  87. package/assets/esri/core/workers/chunks/5dbd8ca7e7b8eb9a0bf7.js +1 -0
  88. package/assets/esri/core/workers/chunks/{b8bdacebd4d24ba90f3f.js → 5fde1234c5cccaee6763.js} +1 -1
  89. package/assets/esri/core/workers/chunks/60f9b37dd738d884c48d.js +1 -0
  90. package/assets/esri/core/workers/chunks/6123894e2ae9233cdf89.js +1 -0
  91. package/assets/esri/core/workers/chunks/62c8413f3bbc1378273d.js +1 -0
  92. package/assets/esri/core/workers/chunks/6501ee40bf25f9f75d02.js +1 -0
  93. package/assets/esri/core/workers/chunks/663cf8bff17c894cd5f8.js +1 -0
  94. package/assets/esri/core/workers/chunks/6b536d03b4bef408035b.js +1 -0
  95. package/assets/esri/core/workers/chunks/6c98a64d92c9bca78203.js +1 -0
  96. package/assets/esri/core/workers/chunks/6d1371b521c7f94fd77e.js +1 -0
  97. package/assets/esri/core/workers/chunks/6d5038d4351fe29e2718.js +1 -0
  98. package/assets/esri/core/workers/chunks/6f102c90908c9900cdaa.js +1 -0
  99. package/assets/esri/core/workers/chunks/6f39545710d1b35d922c.js +1 -0
  100. package/assets/esri/core/workers/chunks/7278fdf6bfcdffa10a7f.js +1 -0
  101. package/assets/esri/core/workers/chunks/72eb0ac55026a4f5d6a7.js +1 -0
  102. package/assets/esri/core/workers/chunks/73cb499d7d68c59ba34e.js +1 -0
  103. package/assets/esri/core/workers/chunks/{b8d788e110c212a879ab.js → 73f228d966b89c73c9e9.js} +1 -1
  104. package/assets/esri/core/workers/chunks/{e7402dfd683f82878360.js → 752343d92ed48e674351.js} +1 -1
  105. package/assets/esri/core/workers/chunks/7538a0fe0cec3156769e.js +1 -0
  106. package/assets/esri/core/workers/chunks/76bccc318d7cc33829a7.js +1 -0
  107. package/assets/esri/core/workers/chunks/771ead806efbe9c91fdc.js +1 -0
  108. package/assets/esri/core/workers/chunks/777eafdb86b26b35c803.js +1 -0
  109. package/assets/esri/core/workers/chunks/7821aeba3e414b318a75.js +1 -0
  110. package/assets/esri/core/workers/chunks/78b80da3bbc1b608fe83.js +1 -0
  111. package/assets/esri/core/workers/chunks/7b531feba4fd662575f9.js +1 -0
  112. package/assets/esri/core/workers/chunks/7c57354d026e27e056d4.js +1 -0
  113. package/assets/esri/core/workers/chunks/7d163d9d90393e491ee5.js +1 -0
  114. package/assets/esri/core/workers/chunks/7d4c65311064a5c2e0b1.js +1 -0
  115. package/assets/esri/core/workers/chunks/{0474af7687466d8befd2.js → 7e2794705b4e679fcb3f.js} +1 -1
  116. package/assets/esri/core/workers/chunks/7ebbb90d80600d9ba889.js +1 -0
  117. package/assets/esri/core/workers/chunks/7f125963555dc1ce63ad.js +1 -0
  118. package/assets/esri/core/workers/chunks/{763cbb6716e398436a6d.js → 7f6eee102871769fdf8f.js} +1 -1
  119. package/assets/esri/core/workers/chunks/805c97b875d3066fb8df.js +1 -0
  120. package/assets/esri/core/workers/chunks/8566449c39eba55147f5.js +1 -0
  121. package/assets/esri/core/workers/chunks/86ed75b7169b8ee43025.js +1 -0
  122. package/assets/esri/core/workers/chunks/{9482a6d7baa24bbf5693.js → 89132395eca329b9ab92.js} +1 -1
  123. package/assets/esri/core/workers/chunks/{28bc5e8e82f188b30eb9.js → 894343e415639df88243.js} +1 -1
  124. package/assets/esri/core/workers/chunks/8b4759cef5ae5e43253b.js +1 -0
  125. package/assets/esri/core/workers/chunks/8ba4175f5e9a24ffecf7.js +1 -0
  126. package/assets/esri/core/workers/chunks/8be707044d992ef5f1d8.js +1 -0
  127. package/assets/esri/core/workers/chunks/{bd862382f72ebd446b46.js → 8d2cac1952e817daaf1f.js} +1 -1
  128. package/assets/esri/core/workers/chunks/8e1d4867406753c5483c.js +1 -0
  129. package/assets/esri/core/workers/chunks/8e38c5e63aae42bdf5a4.js +29 -0
  130. package/assets/esri/core/workers/chunks/{02ab09285a5c4ca98066.js → 8f785b722b1a131bf370.js} +1 -1
  131. package/assets/esri/core/workers/chunks/8f9874f42f21a4cb3acd.js +1 -0
  132. package/assets/esri/core/workers/chunks/90f4b81c6034253b70d7.js +1 -0
  133. package/assets/esri/core/workers/chunks/917c11cb40a7742d7f98.js +1 -0
  134. package/assets/esri/core/workers/chunks/93ab247ff34694ac60eb.js +1 -0
  135. package/assets/esri/core/workers/chunks/{6e45d0db97ffa4509177.js → 94bf7f0da6ad3f7ea277.js} +1 -1
  136. package/assets/esri/core/workers/chunks/{580451761cadfe308919.js → 9954149def644c371894.js} +1 -1
  137. package/assets/esri/core/workers/chunks/9c57161ad48d8d546dc7.js +1 -0
  138. package/assets/esri/core/workers/chunks/{33bd9785bd0b6ccef21b.js → 9c5dff4f13102871786e.js} +1 -1
  139. package/assets/esri/core/workers/chunks/9d0bda096cdbd7e22f4b.js +1 -0
  140. package/assets/esri/core/workers/chunks/9dfb7d120195991e9672.js +1 -0
  141. package/assets/esri/core/workers/chunks/9ed5e6b06afea6c85330.js +1 -0
  142. package/assets/esri/core/workers/chunks/9f65cc6d9f7390bb1d5b.js +1 -0
  143. package/assets/esri/core/workers/chunks/{79b857bb301f9c4169d6.js → 9fee8441fbac9f723f77.js} +1 -1
  144. package/assets/esri/core/workers/chunks/a108f276659d5f25352c.js +1 -0
  145. package/assets/esri/core/workers/chunks/a2d8bc0efddd2e13b1ad.js +1 -0
  146. package/assets/esri/core/workers/chunks/{b32ede7805c7c6644e4c.js → a3bf8aa81ee398da5b52.js} +1 -1
  147. package/assets/esri/core/workers/chunks/{5b30231ae0a8f4b8435f.js → a504fa17d83facf1c01f.js} +1 -1
  148. package/assets/esri/core/workers/chunks/{538fe46dfd685a490e23.js → a7f42ada0aa69873a938.js} +1 -1
  149. package/assets/esri/core/workers/chunks/a97e0b9b057664911c14.js +1 -0
  150. package/assets/esri/core/workers/chunks/{cb58aff1ff186fa18345.js → a9f616f22042b0dce8b9.js} +1 -1
  151. package/assets/esri/core/workers/chunks/{128799741dd3c6fc69b9.js → ac4131121230cfc14f21.js} +1 -1
  152. package/assets/esri/core/workers/chunks/afd63c18ce4656271c8e.js +1 -0
  153. package/assets/esri/core/workers/chunks/{f04cb48fc73635d0572f.js → b059dabb1c732829487c.js} +1 -1
  154. package/assets/esri/core/workers/chunks/b13d2da33ec07e9d41ff.js +1 -0
  155. package/assets/esri/core/workers/chunks/b313464b987db8a3987a.js +1 -0
  156. package/assets/esri/core/workers/chunks/b318823aefcefad6fad5.js +1 -0
  157. package/assets/esri/core/workers/chunks/b378e504a5b1afc8d0ce.js +1 -0
  158. package/assets/esri/core/workers/chunks/{9fb87a7dba62b527c0ba.js → b3a1a93c6dc9247cb048.js} +1 -1
  159. package/assets/esri/core/workers/chunks/b5397dc03fa0bd654ba6.js +1 -0
  160. package/assets/esri/core/workers/chunks/b5b698008b8f3f4d5d61.js +1 -0
  161. package/assets/esri/core/workers/chunks/b7bcb31737b01d7736d0.js +1 -0
  162. package/assets/esri/core/workers/chunks/b9a1046ca2cd0cca5da5.js +1 -0
  163. package/assets/esri/core/workers/chunks/{cda04571d7623c17ada2.js → b9c7aa04861f545a559c.js} +1 -1
  164. package/assets/esri/core/workers/chunks/{7df795bc4fa1d433463b.js → ba030767cf935f967454.js} +1 -1
  165. package/assets/esri/core/workers/chunks/{53d165b4f30fd64e5d8a.js → bd311c85437743cf7d2f.js} +1 -1
  166. package/assets/esri/core/workers/chunks/bd88228f781a0399d8bd.js +1 -0
  167. package/assets/esri/core/workers/chunks/bfb626805405646a0419.js +1 -0
  168. package/assets/esri/core/workers/chunks/{61d3fcb419d6bf7e355e.js → c1e45e24f5ef719a714c.js} +18 -18
  169. package/assets/esri/core/workers/chunks/c203df41f9d2e4b80889.js +1 -0
  170. package/assets/esri/core/workers/chunks/{278409028bc5af45b507.js → c4c83b5129c279c3615b.js} +1 -1
  171. package/assets/esri/core/workers/chunks/c53b2be005721591e29b.js +1 -0
  172. package/assets/esri/core/workers/chunks/c6ef0636073e28350c91.js +1 -0
  173. package/assets/esri/core/workers/chunks/c7e391df714839484cd1.js +1 -0
  174. package/assets/esri/core/workers/chunks/{e287113777a94ded8de6.js → c82ab4f0908290e70ee9.js} +1 -1
  175. package/assets/esri/core/workers/chunks/cded485ad893a7dd2948.js +1 -0
  176. package/assets/esri/core/workers/chunks/{1cf8fb704c48ac3d3b15.js → cf360767310fb45660a8.js} +1 -1
  177. package/assets/esri/core/workers/chunks/{8f2fecd8a0a972d68590.js → cf8ce63711488f2e677c.js} +1 -1
  178. package/assets/esri/core/workers/chunks/d214ac457ac970479536.js +1 -0
  179. package/assets/esri/core/workers/chunks/d4058352db1e8255b52e.js +1 -0
  180. package/assets/esri/core/workers/chunks/d456520e4b119a2816b6.js +1 -0
  181. package/assets/esri/core/workers/chunks/d4d385d19e62ef1c286f.js +1 -0
  182. package/assets/esri/core/workers/chunks/d4f005dadba75422b401.js +1 -0
  183. package/assets/esri/core/workers/chunks/{52c4b4dabcb0d162be72.js → d5e15021928e95c11463.js} +1 -1
  184. package/assets/esri/core/workers/chunks/{fc639c730115e07a4a1a.js → d6500f6b2ff115d9eb09.js} +1 -1
  185. package/assets/esri/core/workers/chunks/e02f02040b63d9c2e654.js +1 -0
  186. package/assets/esri/core/workers/chunks/e08c64e4ae5a68eae2be.js +1 -0
  187. package/assets/esri/core/workers/chunks/e1492d2404c3ed82931e.js +1 -0
  188. package/assets/esri/core/workers/chunks/e2ddfc96ddba92302e0c.js +1 -0
  189. package/assets/esri/core/workers/chunks/e34ed3b818b2eb4116c5.js +1 -0
  190. package/assets/esri/core/workers/chunks/e7149d23615fee31ab7e.js +1 -0
  191. package/assets/esri/core/workers/chunks/ec774f5d6ea5c29536e5.js +1 -0
  192. package/assets/esri/core/workers/chunks/{35cbf00f0c37a86517af.js → ed1de8b7406269e217b9.js} +1 -1
  193. package/assets/esri/core/workers/chunks/ed4ac5568dc2815b066d.js +1 -0
  194. package/assets/esri/core/workers/chunks/ed71a4e353715db0a6e9.js +1 -0
  195. package/assets/esri/core/workers/chunks/{f4891345507df63cff3c.js → ef27bf1d7941ae265ca4.js} +3 -3
  196. package/assets/esri/core/workers/chunks/f029c12f1afee0e9b2a1.js +1 -0
  197. package/assets/esri/core/workers/chunks/{1e342d532925569daadb.js → f475672ff4c2ec9367c2.js} +1 -1
  198. package/assets/esri/core/workers/chunks/{cc414fd2e313d89d524d.js → f54eba484f40d5eeb590.js} +1 -1
  199. package/assets/esri/core/workers/chunks/f5c9659fc5d571d501c9.js +1 -0
  200. package/assets/esri/core/workers/chunks/f622b27ebdf1c918fd6d.js +1 -0
  201. package/assets/esri/core/workers/chunks/{dd95f50dac3f33cdb6d2.js → f6a13f07a5f7b781a9a8.js} +1 -1
  202. package/assets/esri/core/workers/chunks/{d849bdaf5bdfdc37531a.js → f6f7d885b4d6080e3f58.js} +1 -1
  203. package/assets/esri/core/workers/chunks/f8b8d3d2710c83acccf3.js +1 -0
  204. package/assets/esri/core/workers/chunks/f95870bb4d8e4e13e69e.js +1 -0
  205. package/assets/esri/core/workers/chunks/fa377112ef3b78f6ed18.js +1 -0
  206. package/assets/esri/core/workers/chunks/fa59f10ed0f182a2a7f3.js +1 -0
  207. package/assets/esri/core/workers/chunks/faa55265020591fd2224.js +1 -0
  208. package/assets/esri/core/workers/chunks/fc827f58db3194922056.js +1 -0
  209. package/chunks/VolumeMask.glsl.js +3 -0
  210. package/chunks/_commonjsHelpers.js +1 -1
  211. package/chunks/aiServices.js +1 -1
  212. package/chunks/array.js +1 -1
  213. package/chunks/languageUtils.js +1 -1
  214. package/chunks/persistableUrlUtils.js +1 -1
  215. package/config.js +1 -1
  216. package/core/Collection.d.ts +42 -6
  217. package/core/Collection.js +1 -1
  218. package/form/ExpressionInfo.d.ts +1 -1
  219. package/form/ExpressionInfo.js +1 -1
  220. package/form/elements/FieldElement.d.ts +3 -2
  221. package/form/elements/inputs/ComboBoxInput.d.ts +4 -15
  222. package/form/elements/inputs/ComboBoxInput.js +1 -1
  223. package/form/elements/inputs/DynamicChoiceInput.d.ts +31 -0
  224. package/form/elements/inputs/DynamicChoiceInput.js +2 -0
  225. package/form/elements/inputs/Input.d.ts +1 -1
  226. package/form/elements/inputs/RadioButtonsInput.d.ts +4 -15
  227. package/form/elements/inputs/RadioButtonsInput.js +1 -1
  228. package/form/elements/inputs/SingleChoiceInput.d.ts +18 -0
  229. package/form/elements/inputs/SingleChoiceInput.js +2 -0
  230. package/form/elements/inputs.d.ts +11 -2
  231. package/form/elements/inputs.js +1 -1
  232. package/geometry/SpatialReference.d.ts +1 -4
  233. package/geometry/support/normalizeUtils.d.ts +1 -1
  234. package/kernel.js +1 -1
  235. package/layers/BaseElevationLayer.js +1 -1
  236. package/layers/ElevationLayer.js +1 -1
  237. package/layers/ImageryTileLayer.d.ts +1 -1
  238. package/layers/IntegratedMesh3DTilesLayer.js +1 -1
  239. package/layers/KnowledgeGraphLayer.js +1 -1
  240. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  241. package/layers/RouteLayer.d.ts +1 -1
  242. package/layers/StreamLayer.js +1 -1
  243. package/layers/VoxelWasmPerSceneView.js +1 -1
  244. package/layers/graphics/sources/connections/createConnection.js +1 -1
  245. package/layers/graphics/sources/parquet/ParquetFileStatistics.js +1 -1
  246. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  247. package/layers/graphics/sources/support/QueryTask.js +1 -1
  248. package/layers/mixins/ArcGISImageService.d.ts +24 -24
  249. package/layers/mixins/SceneService.js +1 -1
  250. package/layers/mixins/TiledImagery.d.ts +1 -1
  251. package/layers/orientedImagery/transformations/rectifyMapPoint.js +1 -1
  252. package/layers/raster/datasets/BaseRaster.js +1 -1
  253. package/layers/save/groupLayerUtils.js +1 -1
  254. package/layers/save/mediaLayerUtils.js +1 -1
  255. package/layers/support/ElevationQueryTileCache.js +1 -1
  256. package/layers/video/VideoController.js +1 -1
  257. package/layers/video/types.d.ts +17 -1
  258. package/linkChart/LinkChartProperties.js +1 -1
  259. package/networks/support/CircuitExportJobInfo.d.ts +1 -1
  260. package/networks/support/CircuitVerifyJobInfo.d.ts +1 -1
  261. package/networks/support/TopologyValidationJobInfo.d.ts +1 -1
  262. package/networks/support/TraceJobInfo.d.ts +1 -1
  263. package/package.json +2 -2
  264. package/portal/jsonTypes.d.ts +1 -1
  265. package/portal/support/jsonContext.js +1 -1
  266. package/rest/closestFacility.d.ts +1 -1
  267. package/rest/find.d.ts +1 -1
  268. package/rest/geometryService.d.ts +21 -21
  269. package/rest/geoprocessor.d.ts +2 -2
  270. package/rest/identify.d.ts +1 -1
  271. package/rest/imageService.d.ts +19 -19
  272. package/rest/lastMileDelivery.d.ts +8 -8
  273. package/rest/locator.d.ts +4 -4
  274. package/rest/networkService.d.ts +1 -1
  275. package/rest/networks/queryAssociations.d.ts +1 -1
  276. package/rest/networks/synthesizeAssociationGeometries.d.ts +1 -1
  277. package/rest/networks/trace.d.ts +1 -1
  278. package/rest/networks/traverseAssociations.d.ts +1 -1
  279. package/rest/places.d.ts +3 -3
  280. package/rest/print.d.ts +1 -1
  281. package/rest/query.d.ts +11 -11
  282. package/rest/route.d.ts +1 -1
  283. package/rest/serviceArea.d.ts +1 -1
  284. package/rest/support/JobInfo.d.ts +5 -5
  285. package/rest/symbolService.d.ts +1 -1
  286. package/support/persistableUrlUtils.js +1 -1
  287. package/support/revision.js +1 -1
  288. package/views/2d/layers/features/sources/strategies/AFeatureLoadStrategy.js +1 -1
  289. package/views/2d/layers/features/sources/strategies/FeatureHybridTileLoadStrategy.js +1 -1
  290. package/views/3d/GroundView3D.js +1 -1
  291. package/views/3d/analysis/LineOfSight/LineOfSightReshapeTool3D.js +1 -1
  292. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  293. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  294. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  295. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  296. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  297. package/views/3d/layers/graphics/Graphics3DPathSymbolLayerConstants.js +1 -1
  298. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  299. package/views/3d/layers/i3s/I3SIntersectionHandler.js +1 -1
  300. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  301. package/views/3d/layers/support/Tiles3DMeshIntersectionHandler.js +1 -1
  302. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  303. package/views/3d/support/gaussianSplatting/GaussianSplatHeaderTexture.js +1 -1
  304. package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
  305. package/views/3d/support/hitTest.js +1 -1
  306. package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
  307. package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
  308. package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
  309. package/views/3d/terrain/TerrainRenderer.js +1 -1
  310. package/views/3d/terrain/TerrainSurface.js +1 -1
  311. package/views/3d/webgl-engine/collections/Component/ComponentObjectElevationAgnosticBVH.js +1 -1
  312. package/views/3d/webgl-engine/collections/Component/ComponentObjectFixedBVH.js +1 -1
  313. package/views/3d/webgl-engine/collections/Component/IntersectionGeometry.js +1 -1
  314. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBufferFields.glsl.js +1 -1
  315. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathEvaluate.glsl.js +49 -32
  316. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexInfo.glsl.js +5 -5
  317. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +23 -23
  318. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMask.js +1 -1
  319. package/views/3d/webgl-engine/lib/CutFillVisualization.js +1 -1
  320. package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
  321. package/views/3d/webgl-engine/lib/Intersector.js +1 -1
  322. package/views/3d/webgl-engine/lib/IntersectorResult.js +1 -1
  323. package/views/3d/webgl-engine/lib/PathBuilder.js +1 -1
  324. package/views/3d/webgl-engine/lib/PathEvaluator.js +1 -1
  325. package/views/3d/webgl-engine/lib/PathExtruder.js +1 -1
  326. package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
  327. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  328. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  329. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBackedBufferFieldCreation.js +1 -1
  330. package/views/3d/webgl-engine/lib/lodRendering/LodResources.js +1 -1
  331. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  332. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  333. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  334. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  335. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  336. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  337. package/views/3d/webgl-engine/materials/intersectWithPolygonOffset.js +1 -1
  338. package/views/3d/webgl-engine/shaders/ShadowCastMaskTechnique.js +1 -1
  339. package/views/3d/webgl-engine/shaders/{CutFillMask.glsl.js → VolumeMask.glsl.js} +1 -1
  340. package/views/3d/webgl-engine/shaders/VolumeMaskTechnique.js +2 -0
  341. package/views/draw/support/InteractiveHandle.js +1 -1
  342. package/views/draw/support/managers/SurfaceManager.js +1 -1
  343. package/views/interactive/Tooltip.d.ts +3 -3
  344. package/views/interactive/Tooltip.js +1 -1
  345. package/views/interactive/options/ElevationOptions.d.ts +20 -0
  346. package/views/interactive/options/ElevationOptions.js +2 -0
  347. package/views/interactive/options/LabelOptions.d.ts +74 -0
  348. package/views/interactive/options/LabelOptions.js +2 -0
  349. package/views/interactive/options/SnappingOptions.d.ts +157 -0
  350. package/views/interactive/options/SnappingOptions.js +2 -0
  351. package/views/interactive/options/TooltipOptions.d.ts +152 -0
  352. package/views/interactive/options/TooltipOptions.js +2 -0
  353. package/views/interactive/options/TooltipVisibleElements.d.ts +105 -0
  354. package/views/interactive/options/TooltipVisibleElements.js +2 -0
  355. package/views/interactive/options/ValueOptions.d.ts +63 -0
  356. package/views/interactive/options/ValueOptions.js +2 -0
  357. package/views/interactive/sketch/SketchLabelOptions.d.ts +7 -9
  358. package/views/interactive/sketch/SketchLabelOptions.js +1 -1
  359. package/views/interactive/sketch/SketchTooltipElevationOptions.js +1 -1
  360. package/views/interactive/sketch/SketchTooltipOptions.d.ts +8 -50
  361. package/views/interactive/sketch/SketchTooltipOptions.js +1 -1
  362. package/views/interactive/sketch/SketchTooltipVisibleElements.d.ts +10 -95
  363. package/views/interactive/sketch/SketchTooltipVisibleElements.js +1 -1
  364. package/views/interactive/sketch/SketchValueOptions.d.ts +7 -45
  365. package/views/interactive/sketch/SketchValueOptions.js +1 -1
  366. package/views/interactive/sketch/Units.d.ts +10 -29
  367. package/views/interactive/sketch/Units.js +1 -1
  368. package/views/interactive/snapping/SnappingOptions.d.ts +7 -78
  369. package/views/interactive/snapping/SnappingOptions.js +1 -1
  370. package/views/interactive/support/Units.d.ts +33 -0
  371. package/views/interactive/support/Units.js +2 -0
  372. package/views/interactive/support/types.d.ts +33 -0
  373. package/views/interactive/tooltip/types.d.ts +6 -2
  374. package/webdoc/support/resourceUtils.js +1 -1
  375. package/webdoc/support/types.d.ts +2 -0
  376. package/webdoc/support/utils.js +2 -0
  377. package/webdoc/support/webdocLoadUtils.js +1 -1
  378. package/webdoc/support/webdocSaveUtils.js +1 -1
  379. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  380. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  381. package/widgets/BatchAttributeForm/expressions/ArcadeExecutorProvider.js +1 -1
  382. package/widgets/BatchAttributeForm/expressions/ExpressionsManager.js +1 -1
  383. package/widgets/BatchAttributeForm/expressions/ExpressionsModel.js +1 -1
  384. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  385. package/widgets/BatchAttributeForm/inputs/BatchFormInputs.js +1 -1
  386. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  387. package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.js +1 -1
  388. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  389. package/widgets/BatchAttributeForm/rendered-content/RelationshipDetails.js +1 -1
  390. package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
  391. package/widgets/BatchAttributeForm.js +1 -1
  392. package/widgets/Editor/UpdateWorkflow.js +1 -1
  393. package/widgets/Editor.js +1 -1
  394. package/widgets/FeatureForm.js +1 -1
  395. package/widgets/FeatureTable/Grid/Column.d.ts +6 -0
  396. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  397. package/widgets/Sketch/SketchViewModel.js +1 -1
  398. package/widgets/support/SelectionList/FeatureItem.d.ts +116 -0
  399. package/widgets/support/SelectionList/GroupLayerItem.d.ts +94 -0
  400. package/widgets/support/SelectionList/ItemBase.d.ts +70 -0
  401. package/widgets/support/SelectionList/LayerItem.d.ts +140 -0
  402. package/widgets/support/SelectionList/LayerItem.js +1 -1
  403. package/widgets/support/SelectionList/SelectionListViewModel.d.ts +265 -0
  404. package/widgets/support/SelectionList/SelectionListViewModel.js +1 -1
  405. package/widgets/support/SelectionList/types.d.ts +42 -0
  406. package/widgets/support/forms/formUtils.js +1 -1
  407. package/assets/esri/core/workers/chunks/003a87b16f8a4b476e14.js +0 -1
  408. package/assets/esri/core/workers/chunks/069b6d8bdb34ee88d437.js +0 -1
  409. package/assets/esri/core/workers/chunks/0790bf0eb276cd9166f6.js +0 -1
  410. package/assets/esri/core/workers/chunks/0a50efb07eee36237e21.js +0 -1
  411. package/assets/esri/core/workers/chunks/0ae0483b72f5e8d00d55.js +0 -1
  412. package/assets/esri/core/workers/chunks/0d1224693a62a26a0e72.js +0 -1
  413. package/assets/esri/core/workers/chunks/10b367563f894ceb9864.js +0 -1
  414. package/assets/esri/core/workers/chunks/11e00ca5ac1b004f4ecc.js +0 -1
  415. package/assets/esri/core/workers/chunks/129fdd1636e67997337c.js +0 -1
  416. package/assets/esri/core/workers/chunks/12e0c5b7cc5c3f9e6f0f.js +0 -1
  417. package/assets/esri/core/workers/chunks/13033178de9f637a2356.js +0 -1
  418. package/assets/esri/core/workers/chunks/13c893e448bedc5c1cef.js +0 -1
  419. package/assets/esri/core/workers/chunks/147a89553188cc6aabf4.js +0 -1
  420. package/assets/esri/core/workers/chunks/15c2d9bec0455fc363a9.js +0 -1
  421. package/assets/esri/core/workers/chunks/246cd372d4184233f48e.js +0 -1
  422. package/assets/esri/core/workers/chunks/268ab65afc3fce775ad2.js +0 -1
  423. package/assets/esri/core/workers/chunks/26a2d4b95cda0a41d980.js +0 -1
  424. package/assets/esri/core/workers/chunks/26f1fd3f2be5102aae1d.js +0 -1
  425. package/assets/esri/core/workers/chunks/279a9a38b04a21cdfd11.js +0 -1
  426. package/assets/esri/core/workers/chunks/3406a01dad6338e3c548.js +0 -1
  427. package/assets/esri/core/workers/chunks/34fbeeeeef4bd01672c6.js +0 -1
  428. package/assets/esri/core/workers/chunks/36781219ca9ba5d7fe52.js +0 -1
  429. package/assets/esri/core/workers/chunks/36999a2e383c8eb3c398.js +0 -1
  430. package/assets/esri/core/workers/chunks/36f8a912842181e1f0aa.js +0 -1
  431. package/assets/esri/core/workers/chunks/36fe6adf6517d8f80125.js +0 -1
  432. package/assets/esri/core/workers/chunks/3f1a7f8a9ead64bf0b7b.js +0 -1
  433. package/assets/esri/core/workers/chunks/403f08e0c1a9203f7fba.js +0 -1
  434. package/assets/esri/core/workers/chunks/461c2de938bf4c9b1442.js +0 -1
  435. package/assets/esri/core/workers/chunks/478540265c86436da05e.js +0 -1
  436. package/assets/esri/core/workers/chunks/479f486ec1797629ec70.js +0 -1
  437. package/assets/esri/core/workers/chunks/484b3e2a220c440ccbb4.js +0 -1
  438. package/assets/esri/core/workers/chunks/4a340836ddbc856993f2.js +0 -1
  439. package/assets/esri/core/workers/chunks/4f2170609742b51bd7b8.js +0 -1
  440. package/assets/esri/core/workers/chunks/4f59357f535f30a6b5cc.js +0 -1
  441. package/assets/esri/core/workers/chunks/5133083222588799493f.js +0 -1
  442. package/assets/esri/core/workers/chunks/52993a9dc0c56e9bda19.js +0 -1
  443. package/assets/esri/core/workers/chunks/57b07448da06d0302a46.js +0 -1
  444. package/assets/esri/core/workers/chunks/5a9ff50fdcc99ae28cce.js +0 -1
  445. package/assets/esri/core/workers/chunks/5dc17b76c6ecc24e7b9a.js +0 -1
  446. package/assets/esri/core/workers/chunks/5e35828216020f33e26b.js +0 -1
  447. package/assets/esri/core/workers/chunks/5eb6f37c74a217772eca.js +0 -1
  448. package/assets/esri/core/workers/chunks/5f0d6c853873a7f32527.js +0 -1
  449. package/assets/esri/core/workers/chunks/6121cd0264b6841a5bac.js +0 -1
  450. package/assets/esri/core/workers/chunks/6210fb6cd31844f23964.js +0 -1
  451. package/assets/esri/core/workers/chunks/638ed1297efdb24f4711.js +0 -1
  452. package/assets/esri/core/workers/chunks/64247e439ef3e1f712e9.js +0 -1
  453. package/assets/esri/core/workers/chunks/661a59133ae34f172174.js +0 -1
  454. package/assets/esri/core/workers/chunks/6823ba1688dfedba0107.js +0 -1
  455. package/assets/esri/core/workers/chunks/6c2b5087a9df65267f4e.js +0 -1
  456. package/assets/esri/core/workers/chunks/6d247ff53421d27628ce.js +0 -1
  457. package/assets/esri/core/workers/chunks/700c08dd2e734c15e621.js +0 -1
  458. package/assets/esri/core/workers/chunks/70452f6d63e9be8d03dd.js +0 -1
  459. package/assets/esri/core/workers/chunks/705d6b108fd121cea887.js +0 -1
  460. package/assets/esri/core/workers/chunks/733b2e181683d5fc7c95.js +0 -1
  461. package/assets/esri/core/workers/chunks/73aa1bfa6e1dc271c9d7.js +0 -1
  462. package/assets/esri/core/workers/chunks/7659391f952d134164cf.js +0 -1
  463. package/assets/esri/core/workers/chunks/7889f4a17cf249f2acc5.js +0 -1
  464. package/assets/esri/core/workers/chunks/7a2dcd57849048c6e00d.js +0 -1
  465. package/assets/esri/core/workers/chunks/7a2dfa42610fe8414ed7.js +0 -1
  466. package/assets/esri/core/workers/chunks/7ce52b850dd785bfa33f.js +0 -1
  467. package/assets/esri/core/workers/chunks/81accb1820e2735fa376.js +0 -1
  468. package/assets/esri/core/workers/chunks/8210fc9e072209e26fa9.js +0 -1
  469. package/assets/esri/core/workers/chunks/825eb845216762a1ed2f.js +0 -1
  470. package/assets/esri/core/workers/chunks/83991475aa54fd5aa008.js +0 -1
  471. package/assets/esri/core/workers/chunks/84fa102a93b2144c28fb.js +0 -1
  472. package/assets/esri/core/workers/chunks/85ce7673d42526a79fd2.js +0 -1
  473. package/assets/esri/core/workers/chunks/8722e2790272e90a1897.js +0 -1
  474. package/assets/esri/core/workers/chunks/88df19742edb0cdc3e67.js +0 -1
  475. package/assets/esri/core/workers/chunks/8977c85aecc7e08ab13c.js +0 -1
  476. package/assets/esri/core/workers/chunks/8a1970e68bc1e833cb7f.js +0 -1
  477. package/assets/esri/core/workers/chunks/8bb20ef549ec1c86b38e.js +0 -1
  478. package/assets/esri/core/workers/chunks/8bdca809dd88eab9e5d8.js +0 -29
  479. package/assets/esri/core/workers/chunks/8c5726c7ce40a92901e6.js +0 -1
  480. package/assets/esri/core/workers/chunks/8c5e65982c3f9295e844.js +0 -1
  481. package/assets/esri/core/workers/chunks/8ce649e55fefc8eca55c.js +0 -1
  482. package/assets/esri/core/workers/chunks/90ae80b797642bff0efa.js +0 -1
  483. package/assets/esri/core/workers/chunks/94e9cf8e729ec36de5be.js +0 -1
  484. package/assets/esri/core/workers/chunks/97c758f736f28c5dab84.js +0 -1
  485. package/assets/esri/core/workers/chunks/98b27cf8acbfa4259758.js +0 -1
  486. package/assets/esri/core/workers/chunks/9a6208ab670ad74e6f7d.js +0 -1
  487. package/assets/esri/core/workers/chunks/a10f63a08d976be058be.js +0 -1
  488. package/assets/esri/core/workers/chunks/a494abeb026d536d9fae.js +0 -1
  489. package/assets/esri/core/workers/chunks/a5f058567419ea70dff6.js +0 -1
  490. package/assets/esri/core/workers/chunks/a8ade34612e73862de6f.js +0 -1
  491. package/assets/esri/core/workers/chunks/a9d391071803b1e9e8a0.js +0 -1
  492. package/assets/esri/core/workers/chunks/aa3abc07de2921ef6ca1.js +0 -1
  493. package/assets/esri/core/workers/chunks/b03f09ee2224f0cc526a.js +0 -1
  494. package/assets/esri/core/workers/chunks/b3f1a442d6b7826e917f.js +0 -1
  495. package/assets/esri/core/workers/chunks/b5c7813495657f844171.js +0 -1
  496. package/assets/esri/core/workers/chunks/b7170816736769d3b7b0.js +0 -1
  497. package/assets/esri/core/workers/chunks/b819a9187426d0c146df.js +0 -1
  498. package/assets/esri/core/workers/chunks/b8e5d7aefddddbd0a10c.js +0 -1
  499. package/assets/esri/core/workers/chunks/b958f87f23f984131d09.js +0 -1
  500. package/assets/esri/core/workers/chunks/b9f40681af1fa00b5bbe.js +0 -1
  501. package/assets/esri/core/workers/chunks/c4c25db769a78e677e33.js +0 -1
  502. package/assets/esri/core/workers/chunks/c85ba0700eafdc8d6f9e.js +0 -1
  503. package/assets/esri/core/workers/chunks/ca118c42c0f609ca7912.js +0 -1
  504. package/assets/esri/core/workers/chunks/cb17cd8aaf77238c0236.js +0 -1
  505. package/assets/esri/core/workers/chunks/d03f427442bb0c287d05.js +0 -1
  506. package/assets/esri/core/workers/chunks/d08d3c6f21e6ba8268ca.js +0 -1
  507. package/assets/esri/core/workers/chunks/d37a72111dffc4c4db70.js +0 -1
  508. package/assets/esri/core/workers/chunks/d41ab2abcfacc87809b5.js +0 -1
  509. package/assets/esri/core/workers/chunks/d4ed094962a41d756c95.js +0 -1
  510. package/assets/esri/core/workers/chunks/d51c41c1944df0cbab3e.js +0 -1
  511. package/assets/esri/core/workers/chunks/dc24e80d061f7b063608.js +0 -1
  512. package/assets/esri/core/workers/chunks/df30053a10d4930924d5.js +0 -1
  513. package/assets/esri/core/workers/chunks/e3623e557ab463580fd2.js +0 -1
  514. package/assets/esri/core/workers/chunks/e5bb7ee670a3ba5ba3fe.js +0 -1
  515. package/assets/esri/core/workers/chunks/e5c75459de85a6dd2f14.js +0 -1
  516. package/assets/esri/core/workers/chunks/e798ca23f02a2dd65bd4.js +0 -1
  517. package/assets/esri/core/workers/chunks/f0225829f7d941914815.js +0 -1
  518. package/assets/esri/core/workers/chunks/f1299b4fc760ccca1518.js +0 -1
  519. package/assets/esri/core/workers/chunks/f65adaaa33d9f3b131f6.js +0 -1
  520. package/assets/esri/core/workers/chunks/f7fa932ade85cb2847b6.js +0 -1
  521. package/assets/esri/core/workers/chunks/f9b654f801cb416e9e17.js +0 -1
  522. package/assets/esri/core/workers/chunks/fb34d6d96c8c0d53fcf6.js +0 -1
  523. package/assets/esri/core/workers/chunks/fdec3a2e100688c42e41.js +0 -1
  524. package/assets/esri/core/workers/chunks/fefbde2c2e527bb716ee.js +0 -1
  525. package/chunks/CutFillMask.glsl.js +0 -3
  526. package/chunks/FocusAreaMask.glsl.js +0 -3
  527. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMask.glsl.js +0 -2
  528. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskTechnique.js +0 -2
  529. package/views/3d/webgl-engine/shaders/CutFillMaskTechnique.js +0 -2
  530. /package/assets/esri/core/workers/chunks/{a12803108c3b12808698.js.LICENSE.txt → 242cad472fbc38b24dbc.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"../../../request.js";import i from"../../../core/Error.js";import{JSONSupport as o}from"../../../core/JSONSupport.js";import r from"../../../core/Logger.js";import{debounce as n,onAbort as s}from"../../../core/promiseUtils.js";import{QueueProcessor as l}from"../../../core/QueueProcessor.js";import{property as a,subclass as c}from"../../../core/accessorSupport/decorators.js";import{ensureClass as f}from"../../../core/accessorSupport/ensureType.js";import u from"../../../geometry/Extent.js";import m from"../../../geometry/Point.js";import h from"../../../geometry/SpatialReference.js";import{isFunctionRaster as p,getPixelSpaceCoverage as d}from"./datasetUtils.js";import{isMultiSliceOrRangeDefinition as x,getSliceIndex as y,createSlices as g,getSliceIds as I}from"./multidimensionalUtils.js";import{clearRegisteredIds as R,getRasterId as w,getBlock as S,putBlock as k,deleteBlock as b,decreaseRefCount as T}from"./RawBlockCache.js";import{convertNoDataToMask as v}from"../formats/pixelRangeUtils.js";import{decode as P}from"../formats/RasterCodec.js";import{mosaic as B,approximateTransform as _,getLocalArithmeticNorthRotations as M,compositeBands as W}from"../functions/pixelUtils.js";import{getWorldWidth as C,load as H,projectPoint as z,snapPyramid as L,shiftExtent as j,getWorldWrapCount as E,projectExtent as D,getProjectionOffsetGrid as O,getRasterDatasetAlignmentInfo as A,projectResolution as q}from"../functions/rasterProjectionHelper.js";import{convertToLocalDirections as F,uvComponentToVector as G}from"../functions/vectorFieldUtils.js";import{sanitizeUrl as J}from"../../support/arcgisLayerUrl.js";import{url as N}from"../../support/commonProperties.js";import V from"../../support/DimensionalDefinition.js";import U from"../../support/LOD.js";import Q from"../../support/RasterStorageInfo.js";import $ from"../../support/TileInfo.js";const X=8,K=256;let Y=0,Z=class extends o{constructor(){super(...arguments),this._tileFetchQueue=new l({concurrency:32,process:(e,t)=>this.fetchRawTile(e.pyramidLevel,e.row,e.col,{...e.options,signal:t})}),this.datasetName=null,this.datasetFormat=null,this.hasUniqueSourceStorageInfo=!0,this.rasterInfo=null,this.ioConfig={sampling:"closest"},this.rawBlockRegistryIds=[],this.refresh=n(async e=>{await this._openPromise;const t=await this._refresh(e);return t.dataChanged&&R(this.rasterId,this.rawBlockRegistryIds),t})}normalizeCtorArgs(e){return e?.ioConfig&&(e={...e,ioConfig:{resolution:null,bandIds:null,sampling:"closest",tileInfo:$.create(),...e.ioConfig}}),e}get _isGlobalWrappableSource(){const{rasterInfo:e}=this,t=C(e.spatialReference);return null!=t&&e.extent.width>=t/2}get _hasNoneOrGCSShiftTransform(){const{transform:e}=this.rasterInfo;return null==e||"gcs-shift"===e.type}set rasterJobHandler(e){this._set("rasterJobHandler",e),p(this)&&this.primaryRasters?.rasters?.forEach(t=>t.rasterJobHandler=e)}get rasterId(){return this.url||"rasterId-"+Y++}set url(e){this._set("url",J(e,r.getLogger(this)))}async open(e){return this._openPromise??=H().then(()=>this._open(e)),this._openPromise}async fetchTile(e,t,o,r={}){const n=r.tileInfo||this.rasterInfo.storageInfo.tileInfo,s=this.getTileExtentFromTileInfo(e,t,o,n);if(!s)throw new i("imagery-tile:out-of-bounds","Level for fetch tile out of range");return r={noClip:!0,...r},this.fetchPixels(s,n.size[0],n.size[1],r)}async identify(e,t={}){e=f(m,e).clone().normalize();const{multidimensionalDefinition:i,timeExtent:o}=t,{rasterInfo:r}=this,{hasMultidimensionalTranspose:n,multidimensionalInfo:s}=r;let{transposedVariableName:l}=t;const a=null!=s&&n&&(null!=o||x(i));if(a&&!l){l=null!=i&&i.length>0?i[0].variableName??void 0:s.variables[0].name,t={...t,transposedVariableName:l}}t=this._getRequestOptionsWithSliceId(t);const{spatialReference:c,extent:h}=r,{datumTransformation:d}=t;let y=z(e,c,d);if(!h.intersects(y))return{location:y,value:null};if(null!=r.transform){const e=r.transform.inverseTransform(y);if(!r.nativeExtent.intersects(e))return{location:e,value:null};y=e}let g=0;const I=null!=l&&null!=s&&r.hasMultidimensionalTranspose;if(p(this)){const e=this.primaryRasters.rasters[0];if(I)return e.identify(y,t);const{pixelSize:o}=r,n=3,s=o.x*n/2,l=o.y*n/2,a=new u({xmin:y.x-s,xmax:y.x+s,ymin:y.y-l,ymax:y.y+l,spatialReference:c}),f={interpolation:"nearest",multidimensionalDefinition:i,sliceId:t.sliceId,bandIds:t.bandIds},{pixelBlock:m}=await e.fetchPixels(a,n,n,f),{pixelBlock:h}=await this.fetchPixels(a,n,n,f);if(null==m)return{location:y,value:null};const p=Math.floor(n*n*.5),d=!m.mask||m.mask[p]?m.pixels.map(e=>e[p]):null;let x;return null!=h&&(x=!h.mask||h.mask[p]?h.pixels.map(e=>e[p]):void 0),{location:y,value:d,processedValue:x,pyramidLevel:0}}if(!I)if(t.srcResolution){g=L(t.srcResolution,r,this.ioConfig.sampling).pyramidLevel}else if(g=await this.computeBestPyramidLevelForLocation(e,t),null==g)return{location:y,value:null};const R=this.identifyPixelLocation(y,g,null,I);if(null===R)return{location:y,value:null};const{row:w,col:S,rowOffset:k,colOffset:b,blockWidth:T}=R,v=await this._fetchRawTile(g,w,S,t);if(!v?.pixels?.length)return{location:y,value:null};const P=k*T+b;return this._processIdentifyResult(v,{srcLocation:y,position:P,pyramidLevel:g,useTransposedTile:!!I,requestSomeSlices:a,identifyOptions:t})}async fetchPixels(e,t,i,o={}){e=j(e),o=this._getRequestOptionsWithSliceId(o);const{_hasNoneOrGCSShiftTransform:r}=this;if(o.requestRawData&&r)return this._fetchPixels(e,t,i,o);const n=C(e.spatialReference),s=E(e);if(null==n||0===s||1===s&&this._isGlobalWrappableSource&&r)return this._fetchPixels(e,t,i,o);if(s>=3)return{extent:e,pixelBlock:null};const l=[],{xmin:a,xmax:c}=e,f=Math.round(n/(c-a)*t),m=f-Math.round((n/2-a)/(c-a)*t);let h=0;const p=[];for(let g=0;g<=s;g++){const r=new u({xmin:0===g?a:-n/2,xmax:g===s?c-n*g:n/2,ymin:e.ymin,ymax:e.ymax,spatialReference:e.spatialReference}),d=0===g?f-m:g===s?t-h:f;h+=d,p.push(d);const x=o.disableWrapAround&&g>0?null:this._fetchPixels(r,d,i,o);l.push(x)}const d=(await Promise.all(l)).map(e=>e?.pixelBlock);let x=null;const y={width:t,height:i};if(this.rasterJobHandler){x=(await this.rasterJobHandler.mosaicAndTransform({srcPixelBlocks:d,srcMosaicSize:y,destDimension:null,coefs:null,sampleSpacing:null,interpolation:"nearest",alignmentInfo:null,blockWidths:p},o)).pixelBlock}else x=B(d,y,{blockWidths:p});return{extent:e,srcExtent:D(e,this.rasterInfo.spatialReference,o.datumTransformation),pixelBlock:x}}async fetchRawPixels(e,t,i,o={}){t={x:Math.floor(t.x),y:Math.floor(t.y)};const r=await this._fetchRawTiles(e,t,i,o),{nativeExtent:n,nativePixelSize:s,storageInfo:l}=this.rasterInfo,a=2**e,c=s.x*a,f=s.y*a,m=new u({xmin:n.xmin+c*t.x,xmax:n.xmin+c*(t.x+i.width-1),ymin:n.ymax-f*(t.y+i.height-1),ymax:n.ymax-f*t.y,spatialReference:n.spatialReference});if(!r)return{extent:m,srcExtent:m,pixelBlock:null};const{pixelBlocks:h,mosaicSize:p}=r;if(1===h.length&&null!=h[0]&&h[0].width===i.width&&h[0].height===i.height)return{extent:m,srcExtent:m,pixelBlock:r.pixelBlocks[0]};const d=e>0?l.pyramidBlockWidth:l.blockWidth,x=e>0?l.pyramidBlockHeight:l.blockHeight,y={x:t.x%d,y:t.y%x};let g;if(this.rasterJobHandler){g=(await this.rasterJobHandler.mosaicAndTransform({srcPixelBlocks:h,srcMosaicSize:p,destDimension:i,clipOffset:y,clipSize:i,coefs:null,sampleSpacing:null,interpolation:o.interpolation,alignmentInfo:null,blockWidths:null},o)).pixelBlock}else g=B(h,p,{clipOffset:y,clipSize:i});return{extent:m,srcExtent:m,pixelBlock:g}}fetchRawTile(e,t,o,r){throw new i("BaseRaster:read-not-implemented","fetchRawTile() is not implemented")}computeExtent(e){return D(this.rasterInfo.extent,e)}decodePixelBlock(e,t){return this.rasterJobHandler?this.rasterJobHandler.decode({data:e,options:t}):P(e,t)}async request(e,i,o=0){const{customFetchParameters:r}=this.ioConfig,{range:n,query:s,headers:l}=i;o=o??i.retryCount??this.ioConfig.retryCount;const a=n?{Range:`bytes=${n.from}-${n.to}`}:null;try{return await t(e,{...i,query:{...s,...r},headers:{...l,...a}})}catch(c){if(o>0)return o--,this.request(e,i,o);throw c}}getSliceIndex(e){const{multidimensionalInfo:t}=this.rasterInfo;return null==t||null==e||0===e.length?null:y(e,t)}getTileExtentFromTileInfo(e,t,i,o){const r=o.lodAt(e);return r?this.getTileExtent({x:r.resolution,y:r.resolution},t,i,o.origin,o.spatialReference,o.size):null}updateTileInfo(){const{storageInfo:e,spatialReference:t,extent:i,pixelSize:o}=this.rasterInfo,{pyramidResolutions:r}=e;if(!e.tileInfo){const n=[],s=e.maximumPyramidLevel||0;let l=(o.x+o.y)/2,a=1/.0254*96*l;for(let e=0;e<=s&&(n.unshift(new U({level:s-e,resolution:l,scale:a})),e!==s);e++)if(r){const t=(r[e].x+r[e].y)/2;a*=t/l,l=t}else l*=2,a*=2;const c=new m({x:i.xmin,y:i.ymax,spatialReference:t});e.tileInfo=new $({origin:c,size:[e.blockWidth,e.blockHeight],spatialReference:t,lods:n}),e.isVirtualTileInfo=!0}}createRemoteDatasetStorageInfo(e,t=512,i=512,o){const{width:r,height:n,nativeExtent:s,pixelSize:l,spatialReference:a}=e,c=new m({x:s.xmin,y:s.ymax,spatialReference:a});null==o&&(o=Math.max(0,Math.round(Math.log(Math.max(r,n))/Math.LN2-8)));const f=this.computeBlockBoundary(s,512,512,{x:s.xmin,y:s.ymax},[l],o);e.storageInfo=new Q({blockWidth:t,blockHeight:i,pyramidBlockWidth:t,pyramidBlockHeight:i,origin:c,firstPyramidLevel:1,maximumPyramidLevel:o,blockBoundary:f})}async computeBestPyramidLevelForLocation(e,t={}){return 0}computeBlockBoundary(e,t,i,o,r,n=0,s=2){if(1===r.length&&n>0){r=[...r];let{x:e,y:t}=r[0];for(let i=0;i<n;i++)e*=s,t*=s,r.push({x:e,y:t})}const l=[],{x:a,y:c}=o;for(let f=0;f<r.length;f++){const{x:o,y:n}=r[f];l.push({minCol:Math.floor((e.xmin-a+.1*o)/t/o),maxCol:Math.floor((e.xmax-a-.1*o)/t/o),minRow:Math.floor((c-e.ymax+.1*n)/i/n),maxRow:Math.floor((c-e.ymin-.1*n)/i/n)})}return l}getPyramidPixelSize(e){const{nativePixelSize:t}=this.rasterInfo,{pyramidResolutions:i,pyramidScalingFactor:o}=this.rasterInfo.storageInfo;if(0===e)return t;if(null!=i&&i.length)return i[e-1];const r=o**e;return{x:t.x*r,y:t.y*r}}identifyPixelLocation(e,t,i,o){const{spatialReference:r,nativeExtent:n,storageInfo:s}=this.rasterInfo,{maximumPyramidLevel:l,origin:a,transposeInfo:c}=s,f=o&&null!=c?c.tileSize[0]:s.blockWidth,u=o&&null!=c?c.tileSize[1]:s.blockHeight,m=z(e,r,i);if(!n.intersects(m))return null;if(t<0||t>l)return null;const h=this.getPyramidPixelSize(t),{x:p,y:d}=h,x=(a.y-m.y)/d/u,y=(m.x-a.x)/p/f,g=Math.min(u-1,Math.floor((x-Math.floor(x))*u)),I=Math.min(f-1,Math.floor((y-Math.floor(y))*f));return{pyramidLevel:t,row:Math.floor(x),col:Math.floor(y),rowOffset:g,colOffset:I,blockWidth:f,srcLocation:m}}getTileExtent(e,t,i,o,r,n){const[s,l]=n,a=o.x+i*s*e.x,c=a+s*e.x,f=o.y-t*l*e.y,m=f-l*e.y;return new u({xmin:a,xmax:c,ymin:m,ymax:f,spatialReference:r})}getBlockWidthHeight(e){return{blockWidth:e>0?this.rasterInfo.storageInfo.pyramidBlockWidth:this.rasterInfo.storageInfo.blockWidth,blockHeight:e>0?this.rasterInfo.storageInfo.pyramidBlockHeight:this.rasterInfo.storageInfo.blockHeight}}isBlockOutside(e,t,i){const o=this.rasterInfo.storageInfo.blockBoundary[e];return!o||o.maxRow<t||o.maxCol<i||o.minRow>t||o.minCol>i}updateImageSpaceRasterInfo(e){const{pixelSize:t}=e,{width:i,height:o}=e,r=h.WebMercator;e.spatialReference=r,e.extent=e.nativeExtent=new u({xmin:-.5,ymax:.5,xmax:i-.5,ymin:.5-o,spatialReference:r}),e.isPseudoSpatialReference=!0,e.transform=null,e.pixelSize=new m({x:1,y:1,spatialReference:r});const{extent:n,storageInfo:s}=e;if(s){s.origin=new m({x:n.xmin,y:n.ymax,spatialReference:r});const{pyramidResolutions:i,tileInfo:o}=s;if(i&&i.forEach(e=>{e.x/=t.x,e.y/=t.y}),o){o.origin=s.origin;const t=(e.nativePixelSize.x+e.nativePixelSize.y)/2;o.lods.forEach((e,i)=>{e.resolution=t*2**i,e.scale=96*e.resolution/.0254})}}}async _refresh(e){return{dataChanged:!0}}async _fetchPixels(e,t,i,o={}){let r=E(e);if(r>=2)return{extent:e,pixelBlock:null};const n=this._getSourceDataInfo(e,t,i,o),{pyramidLevel:s,srcResolution:l,srcWidth:a,srcHeight:c,ul:f}=n;let{srcExtent:u}=n;if(0===a||0===c)return{extent:e,srcExtent:u,pixelBlock:null};const{rasterInfo:h}=this,p=h.transform,d="gcs-shift"===p?.type,x=null!=C(e.spatialReference);!d&&x||(r=E(u,d));const y=await this._fetchRawTiles(s,f,{width:a,height:c,wrapCount:r},o);if(!y)return{extent:e,srcExtent:u,pixelBlock:null};u=y.extent;const g=h.storageInfo,I=s>0?g.pyramidBlockWidth:g.blockWidth,R=s>0?g.pyramidBlockHeight:g.blockHeight;let{x:w,y:S}=h.pixelSize;if(s>0){const{pyramidResolutions:e,pyramidScalingFactor:t}=g;if(null!=e&&e[s-1])({x:w,y:S}=e[s-1]);else{const e=t**s;w*=e,S*=e}}const k=h.spatialReference,b=new m({x:w,y:S,spatialReference:k}),T=I===a&&R===c&&f.x%I===0&&f.y%R===0,v=new m({x:(e.xmax-e.xmin)/t,y:(e.ymax-e.ymin)/i,spatialReference:e.spatialReference}),P=!e.spatialReference.equals(k),W=k.isGeographic?1e-9:1e-4,{datumTransformation:z}=o;if(!P&&T&&1===y.pixelBlocks.length&&I===t&&R===i&&ee(l,v,W))return{extent:e,srcExtent:u,srcTilePixelSize:b,pixelBlock:y.pixelBlocks[0]};const L=x&&null!=C(u.spatialReference)&&this._hasNoneOrGCSShiftTransform,j=o.requestProjectedLocalDirections&&this.rasterInfo.dataType.startsWith("vector");j&&!this.rasterJobHandler&&await H();const D=this.rasterJobHandler?await this.rasterJobHandler.getProjectionOffsetGrid({projectedExtent:e,srcBufferExtent:u,pixelSize:v.toJSON(),datumTransformation:z,rasterTransform:p,hasWrapAround:r>0||L,isAdaptive:!1!==this.ioConfig.optimizeProjectionAccuracy,includeGCSGrid:j},o):O({projectedExtent:e,srcBufferExtent:u,pixelSize:v,datumTransformation:z,rasterTransform:p,hasWrapAround:r>0||L,isAdaptive:!1,includeGCSGrid:j});let A;const q=!o.requestRawData,G={rows:D.spacing[0],cols:D.spacing[1]},J=this._hasNoneOrGCSShiftTransform?this._getRasterTileAlignmentInfo(s,u.xmin):void 0,{pixelBlocks:N,mosaicSize:V,isPartiallyFilled:U}=y;let Q=null;if(this.rasterJobHandler){const e=await this.rasterJobHandler.mosaicAndTransform({srcPixelBlocks:N,srcMosaicSize:V,destDimension:q?{width:t,height:i}:null,coefs:q?D.coefficients:null,sampleSpacing:q?G:null,projectDirections:j,gcsGrid:j?D.gcsGrid:null,isUV:"vector-uv"===this.rasterInfo.dataType,interpolation:o.interpolation,alignmentInfo:J,blockWidths:null},o);({pixelBlock:A,localNorthDirections:Q}=e)}else{const e=B(N,V,{alignmentInfo:J});A=q?_(e,{width:t,height:i},D.coefficients,G,o.interpolation):e,j&&D.gcsGrid&&(Q=M({width:t,height:i},D.gcsGrid),A=F(A,this.rasterInfo.dataType,Q))}return o.requestRawData||j?{extent:e,srcExtent:u,srcTilePixelSize:b,pixelBlock:A,transformGrid:D,localNorthDirections:Q,isPartiallyFilled:U}:{extent:e,srcExtent:e,srcTilePixelSize:b,pixelBlock:A}}async _fetchRawTiles(e,t,i,o){const{origin:r,blockBoundary:n}=this.rasterInfo.storageInfo,{blockWidth:s,blockHeight:l}=this.getBlockWidthHeight(e);let{x:a,y:c}=t,{width:f,height:m,wrapCount:h}=i;const p=this._getRasterTileAlignmentInfo(e,0);o.buffer&&(a-=o.buffer.cols,c-=o.buffer.rows,f+=2*o.buffer.cols,m+=2*o.buffer.rows);let d=0,x=0,y=0;if(h&&null!=p){({worldColumnCountFromOrigin:x,originColumnOffset:y,rightPadding:d}=p);x*p.blockWidth-d>=a+f&&(d=0)}const g=Math.floor(a/s),I=Math.floor(c/l),R=Math.floor((a+f+d-1)/s),w=Math.floor((c+m+d-1)/l),S=n[e];if(!S)return null;const{minRow:k,minCol:b,maxCol:T,maxRow:v}=S;if(0===h&&(w<k||R<b||I>v||g>T))return null;const P=new Array;let B=!1;const _=null==this.ioConfig.allowPartialFill?o.allowPartialFill:this.ioConfig.allowPartialFill;for(let u=I;u<=w;u++)for(let t=g;t<=R;t++){let i=t;if(!o.disableWrapAround&&h&&null!=p&&x<=t&&(i=t-x-y),u>=k&&i>=b&&v>=u&&T>=i){const t=this._fetchRawTile(e,u,i,o);_?P.push(new Promise(e=>{t.then(t=>e(t)).catch(()=>{B=!0,e(null)})})):P.push(t)}else P.push(Promise.resolve(null))}if(0===P.length)return null;const M=await Promise.all(P),W={height:(w-I+1)*l,width:(R-g+1)*s},{spatialReference:C}=this.rasterInfo,H=this.getPyramidPixelSize(e),{x:z,y:L}=H;return{extent:new u({xmin:r.x+g*s*z,xmax:r.x+(R+1)*s*z,ymin:r.y-(w+1)*l*L,ymax:r.y-I*l*L,spatialReference:C}),pixelBlocks:M,mosaicSize:W,isPartiallyFilled:B}}_fetchRawTile(e,t,i,o){const{storageInfo:r}=this.rasterInfo,n=null!=r.transposeInfo&&!!o.transposedVariableName;if(!n){const o=r.blockBoundary[e];if(!o)return Promise.resolve(null);const{minRow:n,minCol:s,maxCol:l,maxRow:a}=o;if(t<n||i<s||t>a||i>l)return Promise.resolve(null)}const l=n?o.transposeVariableName:o.sliceId,a=r.isBsqTile?o.bandIds:null,c=w(this.rasterId,l,a),f=`${e}/${t}/${i}`;let u=S(c,o.registryId,f);if(null==u){const n=new AbortController,s=o.bandIds?.slice();if(s?.length&&r.isBsqTile){const r=new Set(s),l=[],a=Array.from(r);for(const s of a)l.push(this._tileFetchQueue.push({pyramidLevel:e,row:t,col:i,options:{...o,bandIds:[s]}},{signal:n.signal}));u=Promise.all(l).then(e=>{if(e.some(e=>null==e))return null;if(a.length!==s.length){const t=[];for(const i of s){let o=e[a.indexOf(i)];t.includes(o)&&(o=o.clone()),t.push(o)}e=t}return this.rasterJobHandler?this.rasterJobHandler.compositeBands({pixelBlocks:e},{signal:n.signal,transferPixelsToWorker:!0}):W(e)})}else u=this._tileFetchQueue.push({pyramidLevel:e,row:t,col:i,options:o},{signal:n.signal});k(c,o.registryId,f,u,n),u.catch(()=>b(c,o.registryId,f))}return o.signal&&s(o,()=>{T(c,o.registryId,f)}),u}_computeMagDirValues(e){const{bandCount:t,dataType:i}=this.rasterInfo;if(!(2===t&&"vector-magdir"===i||"vector-uv"===i)||2!==e?.length||!e[0]?.length)return null;const o=e[0].length;if("vector-magdir"===i){const t=e[1].map(e=>(e+360)%360);return[e[0],t]}const[r,n]=e,s=[],l=[];for(let a=0;a<o;a++){const[e,t]=G([r[a],n[a]]);s.push(e),l.push(t)}return[s,l]}_getRasterTileAlignmentInfo(e,t){return null==this._rasterTileAlignmentInfo&&(this._rasterTileAlignmentInfo=A(this.rasterInfo)),null==this._rasterTileAlignmentInfo.pyramidsInfo?null:{startX:t,halfWorldWidth:this._rasterTileAlignmentInfo.halfWorldWidth,hasGCSSShiftTransform:this._rasterTileAlignmentInfo.hasGCSSShiftTransform,...this._rasterTileAlignmentInfo.pyramidsInfo[e]}}_getSourceDataInfo(e,t,i,o={}){const r={datumTransformation:o.datumTransformation,pyramidLevel:0,pyramidResolution:null,srcExtent:null,srcHeight:0,srcResolution:null,srcWidth:0,ul:{x:0,y:0}};o.srcResolution&&(r.srcResolution=o.srcResolution,this._updateSourceDataInfo(e,r));const n=this.rasterInfo.storageInfo.maximumPyramidLevel||0,{srcWidth:s,srcHeight:l,pyramidLevel:a}=r,c=s/t,f=l/i,u=a<n&&c*f>=16,h=a===n&&this._requireTooManySrcTiles(s,l,t,i);if(u||h||(0===s||0===l)){const s=new m({x:(e.xmax-e.xmin)/t,y:(e.ymax-e.ymin)/i,spatialReference:e.spatialReference});let l=q(s,this.rasterInfo.spatialReference,e,r.datumTransformation);const h=!l||o.srcResolution&&l.x+l.y<o.srcResolution.x+o.srcResolution.y;if(u&&o.srcResolution&&h){const e=Math.round(Math.log(Math.max(c,f))/Math.LN2)-1;if(n-a+3>=e){const t=2**e;l={x:o.srcResolution.x*t,y:o.srcResolution.y*t}}}l&&(r.srcResolution=l,this._updateSourceDataInfo(e,r))}return this._requireTooManySrcTiles(r.srcWidth,r.srcHeight,t,i)&&(r.srcWidth=0,r.srcHeight=0),r}_requireTooManySrcTiles(e,t,i,o){const{tileInfo:r}=this.rasterInfo.storageInfo,n=Math.ceil(e/r.size[0])*Math.ceil(t/r.size[1]),s=e/i,l=t/o,a=Math.max(1,(i+o)/1024);return n>=K*a||s>X||l>X}_updateSourceDataInfo(e,t){t.srcWidth=0,t.srcHeight=0;const{rasterInfo:i}=this,o=i.spatialReference,{srcResolution:r,datumTransformation:n}=t,{pyramidLevel:s,pyramidResolution:l,excessiveReading:a}=L(r,i,this.ioConfig.sampling);if(a)return;let c=t.srcExtent||D(e,o,n);if(null==c)return;const f=i.transform;f&&(c=f.inverseTransform(c)),t.srcExtent=c;const{origin:u}=i.storageInfo,{width:m,height:h,ul:p}=d(c,u,l,s);t.pyramidLevel=s,t.pyramidResolution=l,t.srcWidth=m,t.srcHeight=h,t.ul=p}_getRequestOptionsWithSliceId(e){return null!=this.rasterInfo.multidimensionalInfo&&null==e.sliceId&&(e={...e,sliceId:this.getSliceIndex(e.multidimensionalDefinition)}),e}_processIdentifyResult(e,t){const{srcLocation:i,position:o,pyramidLevel:r,useTransposedTile:n}=t,s=e.pixels[0].length/e.width/e.height;if(!(!e.mask||e.mask[o]))return{location:i,value:null};const{multidimensionalInfo:l}=this.rasterInfo;if(null==l||!n){const t=e.pixels.map(e=>e[o]),n={location:i,value:t,pyramidLevel:r},s=this._computeMagDirValues(t.map(e=>[e]));return s?.length&&(n.magdirValue=s.map(e=>e[0])),n}let a=e.pixels.map(e=>e.slice(o*s,o*s+s)),c=this._computeMagDirValues(a);const{requestSomeSlices:f,identifyOptions:u}=t;let m=g(l,u.transposedVariableName);if(f){const e=I(m,u.multidimensionalDefinition,u.timeExtent);a=a.map(t=>e.map(e=>t[e])),c=c?.map(t=>e.map(e=>t[e])),m=e.map(e=>m[e])}const h=e.noDataValues||this.rasterInfo.noDataValue,p={pixels:a,pixelType:e.pixelType};let d;null!=h&&(v(p,h),d=p.mask);return{location:i,value:null,dataSeries:m.map((e,t)=>{const i={value:0===d?.[t]?null:a.map(e=>e[t]),multidimensionalDefinition:e.multidimensionalDefinition.map(e=>new V({...e,isSlice:!0}))};return c?.length&&(i.magdirValue=[c[0][t],c[1][t]]),i}),pyramidLevel:r}}};function ee(e,t,i){return Math.abs(e.x-t.x)<i&&Math.abs(e.y-t.y)<i}e([a()],Z.prototype,"_rasterTileAlignmentInfo",void 0),e([a()],Z.prototype,"_tileFetchQueue",void 0),e([a({readOnly:!0})],Z.prototype,"_isGlobalWrappableSource",null),e([a({readOnly:!0})],Z.prototype,"_hasNoneOrGCSShiftTransform",null),e([a()],Z.prototype,"_openPromise",void 0),e([a()],Z.prototype,"rasterJobHandler",null),e([a({readOnly:!0})],Z.prototype,"rasterId",null),e([a(N)],Z.prototype,"url",null),e([a({type:String,json:{write:!0}})],Z.prototype,"datasetName",void 0),e([a({type:String,json:{write:!0}})],Z.prototype,"datasetFormat",void 0),e([a()],Z.prototype,"hasUniqueSourceStorageInfo",void 0),e([a()],Z.prototype,"rasterInfo",void 0),e([a()],Z.prototype,"ioConfig",void 0),e([a()],Z.prototype,"sourceJSON",void 0),e([a()],Z.prototype,"rawBlockRegistryIds",void 0),Z=e([c("esri.layers.raster.datasets.BaseRaster")],Z);export{Z as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../request.js";import i from"../../../core/Error.js";import{JSONSupport as r}from"../../../core/JSONSupport.js";import o from"../../../core/Logger.js";import{debounce as n,onAbort as s}from"../../../core/promiseUtils.js";import{QueueProcessor as l}from"../../../core/QueueProcessor.js";import{property as a,subclass as c}from"../../../core/accessorSupport/decorators.js";import{ensureClass as f}from"../../../core/accessorSupport/ensureType.js";import u from"../../../geometry/Extent.js";import m from"../../../geometry/Point.js";import h from"../../../geometry/SpatialReference.js";import{isFunctionRaster as p,getPixelSpaceCoverage as d}from"./datasetUtils.js";import{isMultiSliceOrRangeDefinition as x,getSliceIndex as y,createSlices as g,getSliceIds as I}from"./multidimensionalUtils.js";import{clearRegisteredIds as w,getRasterId as R,getBlock as S,putBlock as k,deleteBlock as b,decreaseRefCount as T}from"./RawBlockCache.js";import{convertNoDataToMask as v}from"../formats/pixelRangeUtils.js";import{decode as P}from"../formats/RasterCodec.js";import{convertPixelSize as B}from"../functions/clipUtils.js";import{mosaic as _,approximateTransform as M,getLocalArithmeticNorthRotations as W,compositeBands as C}from"../functions/pixelUtils.js";import{getWorldWidth as H,load as z,projectPoint as L,snapPyramid as j,shiftExtent as E,getWorldWrapCount as D,projectExtent as O,getProjectionOffsetGrid as A,getRasterDatasetAlignmentInfo as q,projectResolution as F}from"../functions/rasterProjectionHelper.js";import{convertToLocalDirections as G,uvComponentToVector as J}from"../functions/vectorFieldUtils.js";import{sanitizeUrl as N}from"../../support/arcgisLayerUrl.js";import{url as V}from"../../support/commonProperties.js";import U from"../../support/DimensionalDefinition.js";import Q from"../../support/LOD.js";import $ from"../../support/RasterStorageInfo.js";import X from"../../support/TileInfo.js";const K=8,Y=256;let Z=0,ee=class extends r{constructor(){super(...arguments),this._tileFetchQueue=new l({concurrency:32,process:(e,t)=>this.fetchRawTile(e.pyramidLevel,e.row,e.col,{...e.options,signal:t})}),this.datasetName=null,this.datasetFormat=null,this.hasUniqueSourceStorageInfo=!0,this.rasterInfo=null,this.ioConfig={sampling:"closest"},this.rawBlockRegistryIds=[],this.refresh=n(async e=>{await this._openPromise;const t=await this._refresh(e);return t.dataChanged&&w(this.rasterId,this.rawBlockRegistryIds),t})}normalizeCtorArgs(e){return e?.ioConfig&&(e={...e,ioConfig:{resolution:null,bandIds:null,sampling:"closest",tileInfo:X.create(),...e.ioConfig}}),e}get _isGlobalWrappableSource(){const{rasterInfo:e}=this,t=H(e.spatialReference);return null!=t&&e.extent.width>=t/2}get _hasNoneOrGCSShiftTransform(){const{transform:e}=this.rasterInfo;return null==e||"gcs-shift"===e.type}set rasterJobHandler(e){this._set("rasterJobHandler",e),p(this)&&this.primaryRasters?.rasters?.forEach(t=>t.rasterJobHandler=e)}get rasterId(){return this.url||"rasterId-"+Z++}set url(e){this._set("url",N(e,o.getLogger(this)))}async open(e){return this._openPromise??=z().then(()=>this._open(e)),this._openPromise}async fetchTile(e,t,r,o={}){const n=o.tileInfo||this.rasterInfo.storageInfo.tileInfo,s=this.getTileExtentFromTileInfo(e,t,r,n);if(!s)throw new i("imagery-tile:out-of-bounds","Level for fetch tile out of range");return o={noClip:!0,...o},this.fetchPixels(s,n.size[0],n.size[1],o)}async identify(e,t={}){e=f(m,e).clone().normalize();const{multidimensionalDefinition:i,timeExtent:r}=t,{rasterInfo:o}=this,{hasMultidimensionalTranspose:n,multidimensionalInfo:s}=o;let{transposedVariableName:l}=t;const a=null!=s&&n&&(null!=r||x(i));if(a&&!l){l=null!=i&&i.length>0?i[0].variableName??void 0:s.variables[0].name,t={...t,transposedVariableName:l}}t=this._getRequestOptionsWithSliceId(t);const{spatialReference:c,extent:h}=o,{datumTransformation:d}=t;let y=L(e,c,d);if(!h.intersects(y))return{location:y,value:null};if(null!=o.transform){const e=o.transform.inverseTransform(y);if(!o.nativeExtent.intersects(e))return{location:e,value:null};y=e}const g=null!=l&&null!=s&&o.hasMultidimensionalTranspose;if(p(this)){const e=this.primaryRasters.rasters[0];if(g)return e.identify(y,t);const{pixelSize:r}=o,n=3,s=r.x*n/2,l=r.y*n/2,a=new u({xmin:y.x-s,xmax:y.x+s,ymin:y.y-l,ymax:y.y+l,spatialReference:c}),f={interpolation:"nearest",multidimensionalDefinition:i,sliceId:t.sliceId,bandIds:t.bandIds},{pixelBlock:m}=await e.fetchPixels(a,n,n,f),{pixelBlock:h}=await this.fetchPixels(a,n,n,f);if(null==m)return{location:y,value:null};const p=Math.floor(n*n*.5),d=!m.mask||m.mask[p]?m.pixels.map(e=>e[p]):null;let x;return null!=h&&(x=!h.mask||h.mask[p]?h.pixels.map(e=>e[p]):void 0),{location:y,value:d,processedValue:x,pyramidLevel:0}}let I=0;if(!g){let{srcResolution:i}=t;if(i){i.spatialReference&&(i=B(new m(i),c));I=j(i,o,this.ioConfig.sampling).pyramidLevel}else if(I=await this.computeBestPyramidLevelForLocation(e,t),null==I)return{location:y,value:null}}const w=this.identifyPixelLocation(y,I,null,g);if(null===w)return{location:y,value:null};const{row:R,col:S,rowOffset:k,colOffset:b,blockWidth:T}=w,v=await this._fetchRawTile(I,R,S,t);if(!v?.pixels?.length)return{location:y,value:null};const P=k*T+b;return this._processIdentifyResult(v,{srcLocation:y,position:P,pyramidLevel:I,useTransposedTile:!!g,requestSomeSlices:a,identifyOptions:t})}async fetchPixels(e,t,i,r={}){e=E(e),r=this._getRequestOptionsWithSliceId(r);const{_hasNoneOrGCSShiftTransform:o}=this;if(r.requestRawData&&o)return this._fetchPixels(e,t,i,r);const n=H(e.spatialReference),s=D(e);if(null==n||0===s||1===s&&this._isGlobalWrappableSource&&o)return this._fetchPixels(e,t,i,r);if(s>=3)return{extent:e,pixelBlock:null};const l=[],{xmin:a,xmax:c}=e,f=Math.round(n/(c-a)*t),m=f-Math.round((n/2-a)/(c-a)*t);let h=0;const p=[];for(let g=0;g<=s;g++){const o=new u({xmin:0===g?a:-n/2,xmax:g===s?c-n*g:n/2,ymin:e.ymin,ymax:e.ymax,spatialReference:e.spatialReference}),d=0===g?f-m:g===s?t-h:f;h+=d,p.push(d);const x=r.disableWrapAround&&g>0?null:this._fetchPixels(o,d,i,r);l.push(x)}const d=(await Promise.all(l)).map(e=>e?.pixelBlock);let x=null;const y={width:t,height:i};if(this.rasterJobHandler){x=(await this.rasterJobHandler.mosaicAndTransform({srcPixelBlocks:d,srcMosaicSize:y,destDimension:null,coefs:null,sampleSpacing:null,interpolation:"nearest",alignmentInfo:null,blockWidths:p},r)).pixelBlock}else x=_(d,y,{blockWidths:p});return{extent:e,srcExtent:O(e,this.rasterInfo.spatialReference,r.datumTransformation),pixelBlock:x}}async fetchRawPixels(e,t,i,r={}){t={x:Math.floor(t.x),y:Math.floor(t.y)};const o=await this._fetchRawTiles(e,t,i,r),{nativeExtent:n,nativePixelSize:s,storageInfo:l}=this.rasterInfo,a=2**e,c=s.x*a,f=s.y*a,m=new u({xmin:n.xmin+c*t.x,xmax:n.xmin+c*(t.x+i.width-1),ymin:n.ymax-f*(t.y+i.height-1),ymax:n.ymax-f*t.y,spatialReference:n.spatialReference});if(!o)return{extent:m,srcExtent:m,pixelBlock:null};const{pixelBlocks:h,mosaicSize:p}=o;if(1===h.length&&null!=h[0]&&h[0].width===i.width&&h[0].height===i.height)return{extent:m,srcExtent:m,pixelBlock:o.pixelBlocks[0]};const d=e>0?l.pyramidBlockWidth:l.blockWidth,x=e>0?l.pyramidBlockHeight:l.blockHeight,y={x:t.x%d,y:t.y%x};let g;if(this.rasterJobHandler){g=(await this.rasterJobHandler.mosaicAndTransform({srcPixelBlocks:h,srcMosaicSize:p,destDimension:i,clipOffset:y,clipSize:i,coefs:null,sampleSpacing:null,interpolation:r.interpolation,alignmentInfo:null,blockWidths:null},r)).pixelBlock}else g=_(h,p,{clipOffset:y,clipSize:i});return{extent:m,srcExtent:m,pixelBlock:g}}fetchRawTile(e,t,r,o){throw new i("BaseRaster:read-not-implemented","fetchRawTile() is not implemented")}computeExtent(e){return O(this.rasterInfo.extent,e)}decodePixelBlock(e,t){return this.rasterJobHandler?this.rasterJobHandler.decode({data:e,options:t}):P(e,t)}async request(e,i,r=0){const{customFetchParameters:o}=this.ioConfig,{range:n,query:s,headers:l}=i;r=r??i.retryCount??this.ioConfig.retryCount;const a=n?{Range:`bytes=${n.from}-${n.to}`}:null;try{return await t(e,{...i,query:{...s,...o},headers:{...l,...a}})}catch(c){if(r>0)return r--,this.request(e,i,r);throw c}}getSliceIndex(e){const{multidimensionalInfo:t}=this.rasterInfo;return null==t||null==e||0===e.length?null:y(e,t)}getTileExtentFromTileInfo(e,t,i,r){const o=r.lodAt(e);return o?this.getTileExtent({x:o.resolution,y:o.resolution},t,i,r.origin,r.spatialReference,r.size):null}updateTileInfo(){const{storageInfo:e,spatialReference:t,extent:i,pixelSize:r}=this.rasterInfo,{pyramidResolutions:o}=e;if(!e.tileInfo){const n=[],s=e.maximumPyramidLevel||0;let l=(r.x+r.y)/2,a=1/.0254*96*l;for(let e=0;e<=s&&(n.unshift(new Q({level:s-e,resolution:l,scale:a})),e!==s);e++)if(o){const t=(o[e].x+o[e].y)/2;a*=t/l,l=t}else l*=2,a*=2;const c=new m({x:i.xmin,y:i.ymax,spatialReference:t});e.tileInfo=new X({origin:c,size:[e.blockWidth,e.blockHeight],spatialReference:t,lods:n}),e.isVirtualTileInfo=!0}}createRemoteDatasetStorageInfo(e,t=512,i=512,r){const{width:o,height:n,nativeExtent:s,pixelSize:l,spatialReference:a}=e,c=new m({x:s.xmin,y:s.ymax,spatialReference:a});null==r&&(r=Math.max(0,Math.round(Math.log(Math.max(o,n))/Math.LN2-8)));const f=this.computeBlockBoundary(s,512,512,{x:s.xmin,y:s.ymax},[l],r);e.storageInfo=new $({blockWidth:t,blockHeight:i,pyramidBlockWidth:t,pyramidBlockHeight:i,origin:c,firstPyramidLevel:1,maximumPyramidLevel:r,blockBoundary:f})}async computeBestPyramidLevelForLocation(e,t={}){return 0}computeBlockBoundary(e,t,i,r,o,n=0,s=2){if(1===o.length&&n>0){o=[...o];let{x:e,y:t}=o[0];for(let i=0;i<n;i++)e*=s,t*=s,o.push({x:e,y:t})}const l=[],{x:a,y:c}=r;for(let f=0;f<o.length;f++){const{x:r,y:n}=o[f];l.push({minCol:Math.floor((e.xmin-a+.1*r)/t/r),maxCol:Math.floor((e.xmax-a-.1*r)/t/r),minRow:Math.floor((c-e.ymax+.1*n)/i/n),maxRow:Math.floor((c-e.ymin-.1*n)/i/n)})}return l}getPyramidPixelSize(e){const{nativePixelSize:t}=this.rasterInfo,{pyramidResolutions:i,pyramidScalingFactor:r}=this.rasterInfo.storageInfo;if(0===e)return t;if(null!=i&&i.length)return i[e-1];const o=r**e;return{x:t.x*o,y:t.y*o}}identifyPixelLocation(e,t,i,r){const{spatialReference:o,nativeExtent:n,storageInfo:s}=this.rasterInfo,{maximumPyramidLevel:l,origin:a,transposeInfo:c}=s,f=r&&null!=c?c.tileSize[0]:s.blockWidth,u=r&&null!=c?c.tileSize[1]:s.blockHeight,m=L(e,o,i);if(!n.intersects(m))return null;if(t<0||t>l)return null;const h=this.getPyramidPixelSize(t),{x:p,y:d}=h,x=(a.y-m.y)/d/u,y=(m.x-a.x)/p/f,g=Math.min(u-1,Math.floor((x-Math.floor(x))*u)),I=Math.min(f-1,Math.floor((y-Math.floor(y))*f));return{pyramidLevel:t,row:Math.floor(x),col:Math.floor(y),rowOffset:g,colOffset:I,blockWidth:f,srcLocation:m}}getTileExtent(e,t,i,r,o,n){const[s,l]=n,a=r.x+i*s*e.x,c=a+s*e.x,f=r.y-t*l*e.y,m=f-l*e.y;return new u({xmin:a,xmax:c,ymin:m,ymax:f,spatialReference:o})}getBlockWidthHeight(e){return{blockWidth:e>0?this.rasterInfo.storageInfo.pyramidBlockWidth:this.rasterInfo.storageInfo.blockWidth,blockHeight:e>0?this.rasterInfo.storageInfo.pyramidBlockHeight:this.rasterInfo.storageInfo.blockHeight}}isBlockOutside(e,t,i){const r=this.rasterInfo.storageInfo.blockBoundary[e];return!r||r.maxRow<t||r.maxCol<i||r.minRow>t||r.minCol>i}updateImageSpaceRasterInfo(e){const{pixelSize:t}=e,{width:i,height:r}=e,o=h.WebMercator;e.spatialReference=o,e.extent=e.nativeExtent=new u({xmin:-.5,ymax:.5,xmax:i-.5,ymin:.5-r,spatialReference:o}),e.isPseudoSpatialReference=!0,e.transform=null,e.pixelSize=new m({x:1,y:1,spatialReference:o});const{extent:n,storageInfo:s}=e;if(s){s.origin=new m({x:n.xmin,y:n.ymax,spatialReference:o});const{pyramidResolutions:i,tileInfo:r}=s;if(i&&i.forEach(e=>{e.x/=t.x,e.y/=t.y}),r){r.origin=s.origin;const t=(e.nativePixelSize.x+e.nativePixelSize.y)/2;r.lods.forEach((e,i)=>{e.resolution=t*2**i,e.scale=96*e.resolution/.0254})}}}async _refresh(e){return{dataChanged:!0}}async _fetchPixels(e,t,i,r={}){let o=D(e);if(o>=2)return{extent:e,pixelBlock:null};const n=this._getSourceDataInfo(e,t,i,r),{pyramidLevel:s,srcResolution:l,srcWidth:a,srcHeight:c,ul:f}=n;let{srcExtent:u}=n;if(0===a||0===c)return{extent:e,srcExtent:u,pixelBlock:null};const{rasterInfo:h}=this,p=h.transform,d="gcs-shift"===p?.type,x=null!=H(e.spatialReference);!d&&x||(o=D(u,d));const y=await this._fetchRawTiles(s,f,{width:a,height:c,wrapCount:o},r);if(!y)return{extent:e,srcExtent:u,pixelBlock:null};u=y.extent;const g=h.storageInfo,I=s>0?g.pyramidBlockWidth:g.blockWidth,w=s>0?g.pyramidBlockHeight:g.blockHeight;let{x:R,y:S}=h.pixelSize;if(s>0){const{pyramidResolutions:e,pyramidScalingFactor:t}=g;if(null!=e&&e[s-1])({x:R,y:S}=e[s-1]);else{const e=t**s;R*=e,S*=e}}const k=h.spatialReference,b=new m({x:R,y:S,spatialReference:k}),T=I===a&&w===c&&f.x%I===0&&f.y%w===0,v=new m({x:(e.xmax-e.xmin)/t,y:(e.ymax-e.ymin)/i,spatialReference:e.spatialReference}),P=!e.spatialReference.equals(k),B=k.isGeographic?1e-9:1e-4,{datumTransformation:C}=r;if(!P&&T&&1===y.pixelBlocks.length&&I===t&&w===i&&te(l,v,B))return{extent:e,srcExtent:u,srcTilePixelSize:b,pixelBlock:y.pixelBlocks[0]};const L=x&&null!=H(u.spatialReference)&&this._hasNoneOrGCSShiftTransform,j=r.requestProjectedLocalDirections&&this.rasterInfo.dataType.startsWith("vector");j&&!this.rasterJobHandler&&await z();const E=this.rasterJobHandler?await this.rasterJobHandler.getProjectionOffsetGrid({projectedExtent:e,srcBufferExtent:u,pixelSize:v.toJSON(),datumTransformation:C,rasterTransform:p,hasWrapAround:o>0||L,isAdaptive:!1!==this.ioConfig.optimizeProjectionAccuracy,includeGCSGrid:j},r):A({projectedExtent:e,srcBufferExtent:u,pixelSize:v,datumTransformation:C,rasterTransform:p,hasWrapAround:o>0||L,isAdaptive:!1,includeGCSGrid:j});let O;const q=!r.requestRawData,F={rows:E.spacing[0],cols:E.spacing[1]},J=this._hasNoneOrGCSShiftTransform?this._getRasterTileAlignmentInfo(s,u.xmin):void 0,{pixelBlocks:N,mosaicSize:V,isPartiallyFilled:U}=y;let Q=null;if(this.rasterJobHandler){const e=await this.rasterJobHandler.mosaicAndTransform({srcPixelBlocks:N,srcMosaicSize:V,destDimension:q?{width:t,height:i}:null,coefs:q?E.coefficients:null,sampleSpacing:q?F:null,projectDirections:j,gcsGrid:j?E.gcsGrid:null,isUV:"vector-uv"===this.rasterInfo.dataType,interpolation:r.interpolation,alignmentInfo:J,blockWidths:null},r);({pixelBlock:O,localNorthDirections:Q}=e)}else{const e=_(N,V,{alignmentInfo:J});O=q?M(e,{width:t,height:i},E.coefficients,F,r.interpolation):e,j&&E.gcsGrid&&(Q=W({width:t,height:i},E.gcsGrid),O=G(O,this.rasterInfo.dataType,Q))}return r.requestRawData||j?{extent:e,srcExtent:u,srcTilePixelSize:b,pixelBlock:O,transformGrid:E,localNorthDirections:Q,isPartiallyFilled:U}:{extent:e,srcExtent:e,srcTilePixelSize:b,pixelBlock:O}}async _fetchRawTiles(e,t,i,r){const{origin:o,blockBoundary:n}=this.rasterInfo.storageInfo,{blockWidth:s,blockHeight:l}=this.getBlockWidthHeight(e);let{x:a,y:c}=t,{width:f,height:m,wrapCount:h}=i;const p=this._getRasterTileAlignmentInfo(e,0);r.buffer&&(a-=r.buffer.cols,c-=r.buffer.rows,f+=2*r.buffer.cols,m+=2*r.buffer.rows);let d=0,x=0,y=0;if(h&&null!=p){({worldColumnCountFromOrigin:x,originColumnOffset:y,rightPadding:d}=p);x*p.blockWidth-d>=a+f&&(d=0)}const g=Math.floor(a/s),I=Math.floor(c/l),w=Math.floor((a+f+d-1)/s),R=Math.floor((c+m+d-1)/l),S=n[e];if(!S)return null;const{minRow:k,minCol:b,maxCol:T,maxRow:v}=S;if(0===h&&(R<k||w<b||I>v||g>T))return null;const P=new Array;let B=!1;const _=null==this.ioConfig.allowPartialFill?r.allowPartialFill:this.ioConfig.allowPartialFill;for(let u=I;u<=R;u++)for(let t=g;t<=w;t++){let i=t;if(!r.disableWrapAround&&h&&null!=p&&x<=t&&(i=t-x-y),u>=k&&i>=b&&v>=u&&T>=i){const t=this._fetchRawTile(e,u,i,r);_?P.push(new Promise(e=>{t.then(t=>e(t)).catch(()=>{B=!0,e(null)})})):P.push(t)}else P.push(Promise.resolve(null))}if(0===P.length)return null;const M=await Promise.all(P),W={height:(R-I+1)*l,width:(w-g+1)*s},{spatialReference:C}=this.rasterInfo,H=this.getPyramidPixelSize(e),{x:z,y:L}=H;return{extent:new u({xmin:o.x+g*s*z,xmax:o.x+(w+1)*s*z,ymin:o.y-(R+1)*l*L,ymax:o.y-I*l*L,spatialReference:C}),pixelBlocks:M,mosaicSize:W,isPartiallyFilled:B}}_fetchRawTile(e,t,i,r){const{storageInfo:o}=this.rasterInfo,n=null!=o.transposeInfo&&!!r.transposedVariableName;if(!n){const r=o.blockBoundary[e];if(!r)return Promise.resolve(null);const{minRow:n,minCol:s,maxCol:l,maxRow:a}=r;if(t<n||i<s||t>a||i>l)return Promise.resolve(null)}const l=n?r.transposeVariableName:r.sliceId,a=o.isBsqTile?r.bandIds:null,c=R(this.rasterId,l,a),f=`${e}/${t}/${i}`;let u=S(c,r.registryId,f);if(null==u){const n=new AbortController,s=r.bandIds?.slice();if(s?.length&&o.isBsqTile){const o=new Set(s),l=[],a=Array.from(o);for(const s of a)l.push(this._tileFetchQueue.push({pyramidLevel:e,row:t,col:i,options:{...r,bandIds:[s]}},{signal:n.signal}));u=Promise.all(l).then(e=>{if(e.some(e=>null==e))return null;if(a.length!==s.length){const t=[];for(const i of s){let r=e[a.indexOf(i)];t.includes(r)&&(r=r.clone()),t.push(r)}e=t}return this.rasterJobHandler?this.rasterJobHandler.compositeBands({pixelBlocks:e},{signal:n.signal,transferPixelsToWorker:!0}):C(e)})}else u=this._tileFetchQueue.push({pyramidLevel:e,row:t,col:i,options:r},{signal:n.signal});k(c,r.registryId,f,u,n),u.catch(()=>b(c,r.registryId,f))}return r.signal&&s(r,()=>{T(c,r.registryId,f)}),u}_computeMagDirValues(e){const{bandCount:t,dataType:i}=this.rasterInfo;if(!(2===t&&"vector-magdir"===i||"vector-uv"===i)||2!==e?.length||!e[0]?.length)return null;const r=e[0].length;if("vector-magdir"===i){const t=e[1].map(e=>(e+360)%360);return[e[0],t]}const[o,n]=e,s=[],l=[];for(let a=0;a<r;a++){const[e,t]=J([o[a],n[a]]);s.push(e),l.push(t)}return[s,l]}_getRasterTileAlignmentInfo(e,t){return null==this._rasterTileAlignmentInfo&&(this._rasterTileAlignmentInfo=q(this.rasterInfo)),null==this._rasterTileAlignmentInfo.pyramidsInfo?null:{startX:t,halfWorldWidth:this._rasterTileAlignmentInfo.halfWorldWidth,hasGCSSShiftTransform:this._rasterTileAlignmentInfo.hasGCSSShiftTransform,...this._rasterTileAlignmentInfo.pyramidsInfo[e]}}_getSourceDataInfo(e,t,i,r={}){const o={datumTransformation:r.datumTransformation,pyramidLevel:0,pyramidResolution:null,srcExtent:null,srcHeight:0,srcResolution:null,srcWidth:0,ul:{x:0,y:0}};r.srcResolution&&(o.srcResolution=r.srcResolution,this._updateSourceDataInfo(e,o));const n=this.rasterInfo.storageInfo.maximumPyramidLevel||0,{srcWidth:s,srcHeight:l,pyramidLevel:a}=o,c=s/t,f=l/i,u=a<n&&c*f>=16,h=a===n&&this._requireTooManySrcTiles(s,l,t,i);if(u||h||(0===s||0===l)){const s=new m({x:(e.xmax-e.xmin)/t,y:(e.ymax-e.ymin)/i,spatialReference:e.spatialReference});let l=F(s,this.rasterInfo.spatialReference,e,o.datumTransformation);const h=!l||r.srcResolution&&l.x+l.y<r.srcResolution.x+r.srcResolution.y;if(u&&r.srcResolution&&h){const e=Math.round(Math.log(Math.max(c,f))/Math.LN2)-1;if(n-a+3>=e){const t=2**e;l={x:r.srcResolution.x*t,y:r.srcResolution.y*t}}}l&&(o.srcResolution=l,this._updateSourceDataInfo(e,o))}return this._requireTooManySrcTiles(o.srcWidth,o.srcHeight,t,i)&&(o.srcWidth=0,o.srcHeight=0),o}_requireTooManySrcTiles(e,t,i,r){const{tileInfo:o}=this.rasterInfo.storageInfo,n=Math.ceil(e/o.size[0])*Math.ceil(t/o.size[1]),s=e/i,l=t/r,a=Math.max(1,(i+r)/1024);return n>=Y*a||s>K||l>K}_updateSourceDataInfo(e,t){t.srcWidth=0,t.srcHeight=0;const{rasterInfo:i}=this,r=i.spatialReference,{srcResolution:o,datumTransformation:n}=t,{pyramidLevel:s,pyramidResolution:l,excessiveReading:a}=j(o,i,this.ioConfig.sampling);if(a)return;let c=t.srcExtent||O(e,r,n);if(null==c)return;const f=i.transform;f&&(c=f.inverseTransform(c)),t.srcExtent=c;const{origin:u}=i.storageInfo,{width:m,height:h,ul:p}=d(c,u,l,s);t.pyramidLevel=s,t.pyramidResolution=l,t.srcWidth=m,t.srcHeight=h,t.ul=p}_getRequestOptionsWithSliceId(e){return null!=this.rasterInfo.multidimensionalInfo&&null==e.sliceId&&(e={...e,sliceId:this.getSliceIndex(e.multidimensionalDefinition)}),e}_processIdentifyResult(e,t){const{srcLocation:i,position:r,pyramidLevel:o,useTransposedTile:n}=t,s=e.pixels[0].length/e.width/e.height;if(!(!e.mask||e.mask[r]))return{location:i,value:null};const{multidimensionalInfo:l}=this.rasterInfo;if(null==l||!n){const t=e.pixels.map(e=>e[r]),n={location:i,value:t,pyramidLevel:o},s=this._computeMagDirValues(t.map(e=>[e]));return s?.length&&(n.magdirValue=s.map(e=>e[0])),n}let a=e.pixels.map(e=>e.slice(r*s,r*s+s)),c=this._computeMagDirValues(a);const{requestSomeSlices:f,identifyOptions:u}=t;let m=g(l,u.transposedVariableName);if(f){const e=I(m,u.multidimensionalDefinition,u.timeExtent);a=a.map(t=>e.map(e=>t[e])),c=c?.map(t=>e.map(e=>t[e])),m=e.map(e=>m[e])}const h=e.noDataValues||this.rasterInfo.noDataValue,p={pixels:a,pixelType:e.pixelType};let d;null!=h&&(v(p,h),d=p.mask);return{location:i,value:null,dataSeries:m.map((e,t)=>{const i={value:0===d?.[t]?null:a.map(e=>e[t]),multidimensionalDefinition:e.multidimensionalDefinition.map(e=>new U({...e,isSlice:!0}))};return c?.length&&(i.magdirValue=[c[0][t],c[1][t]]),i}),pyramidLevel:o}}};function te(e,t,i){return Math.abs(e.x-t.x)<i&&Math.abs(e.y-t.y)<i}e([a()],ee.prototype,"_rasterTileAlignmentInfo",void 0),e([a()],ee.prototype,"_tileFetchQueue",void 0),e([a({readOnly:!0})],ee.prototype,"_isGlobalWrappableSource",null),e([a({readOnly:!0})],ee.prototype,"_hasNoneOrGCSShiftTransform",null),e([a()],ee.prototype,"_openPromise",void 0),e([a()],ee.prototype,"rasterJobHandler",null),e([a({readOnly:!0})],ee.prototype,"rasterId",null),e([a(V)],ee.prototype,"url",null),e([a({type:String,json:{write:!0}})],ee.prototype,"datasetName",void 0),e([a({type:String,json:{write:!0}})],ee.prototype,"datasetFormat",void 0),e([a()],ee.prototype,"hasUniqueSourceStorageInfo",void 0),e([a()],ee.prototype,"rasterInfo",void 0),e([a()],ee.prototype,"ioConfig",void 0),e([a()],ee.prototype,"sourceJSON",void 0),e([a()],ee.prototype,"rawBlockRegistryIds",void 0),ee=e([c("esri.layers.raster.datasets.BaseRaster")],ee);export{ee as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{saveAs as e,save as r}from"./utils.js";import{createForItemWrite as t}from"../../portal/support/jsonContext.js";import{typeKeyword as o,hasTypeKeyword as s,removeTypeKeyword as a,addTypeKeyword as n,toggleTypeKeyword as i}from"../../portal/support/portalItemUtils.js";import{saveResources as u}from"../../webdoc/support/resourceUtils.js";import{hasCharts as c}from"../../webdoc/support/saveUtils.js";const p="Group Layer",l="group-layer-save",m="group-layer-save-as",y=o.GROUP_LAYER_MAP;function f(e){return{isValid:"group"===e.type,errorMessage:"Layer.type should be 'group'"}}function v(e){return{isValid:s(e,y),errorMessage:`Layer.portalItem.typeKeywords should have '${y}'`}}function d(e,r){return{...t(e,"web-map",!0),initiator:r}}function I(e){const r=e.layerJSON;return Promise.resolve(r&&Object.keys(r).length?r:null)}function A(e,r){i(r,o.CHARTS,c(e))}function P(e,r){A(e,r)}async function R(e,r){r.title||=e.title,a(r,o.METADATA),n(r,y),A(e,r)}async function g(e,t){return r({layer:e,itemType:p,validateLayer:f,validateItem:v,createJSONContext:r=>d(r,e),createItemData:I,errorNamePrefix:l,setItemProperties:P,saveResources:async(r,t)=>(e.sourceIsPortalItem||await r.removeAllResources().catch(()=>{}),u(e.resourceReferences,t))},t)}async function j(r,t,o){return e({layer:r,itemType:p,validateLayer:f,createJSONContext:e=>d(e,r),createItemData:I,errorNamePrefix:m,newItem:t,setItemProperties:R,saveResources:(e,t)=>u(r.resourceReferences,t)},o)}export{g as save,j as saveAs};
2
+ import{saveAs as e,save as r}from"./utils.js";import{createForItemWrite as t}from"../../portal/support/jsonContext.js";import{typeKeyword as o,hasTypeKeyword as s,removeTypeKeyword as a,addTypeKeyword as n,toggleTypeKeyword as i}from"../../portal/support/portalItemUtils.js";import{saveResources as u}from"../../webdoc/support/resourceUtils.js";import{hasCharts as c}from"../../webdoc/support/saveUtils.js";const p="Group Layer",l="group-layer-save",m="group-layer-save-as",y=o.GROUP_LAYER_MAP;function f(e){return{isValid:"group"===e.type,errorMessage:"Layer.type should be 'group'"}}function v(e){return{isValid:s(e,y),errorMessage:`Layer.portalItem.typeKeywords should have '${y}'`}}function d(e,r){return{...t(e,"web-map",{withResources:!0}),initiator:r}}function I(e){const r=e.layerJSON;return Promise.resolve(r&&Object.keys(r).length?r:null)}function R(e,r){i(r,o.CHARTS,c(e))}function A(e,r){R(e,r)}async function P(e,r){r.title||=e.title,a(r,o.METADATA),n(r,y),R(e,r)}async function g(e,t){return r({layer:e,itemType:p,validateLayer:f,validateItem:v,createJSONContext:r=>d(r,e),createItemData:I,errorNamePrefix:l,setItemProperties:A,saveResources:async(r,t)=>(e.sourceIsPortalItem||await r.removeAllResources().catch(()=>{}),u(e.resourceReferences,t))},t)}async function j(r,t,o){return e({layer:r,itemType:p,validateLayer:f,createJSONContext:e=>d(e,r),createItemData:I,errorNamePrefix:m,newItem:t,setItemProperties:P,saveResources:(e,t)=>u(r.resourceReferences,t)},o)}export{g as save,j as saveAs};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{saveAs as e,save as r}from"./utils.js";import{createForItemWrite as t}from"../../portal/support/jsonContext.js";import{getWGS84ExtentForItem as a,removeTypeKeyword as s,typeKeyword as o}from"../../portal/support/portalItemUtils.js";import{saveResources as n}from"../../webdoc/support/resourceUtils.js";const i="Media Layer",u="media-layer-save",p="media-layer-save-as",l=["media-layer:unsupported-source"];function m(e){return{isValid:"media"===e.type,errorMessage:"Layer.type should be 'media'"}}function c(e){return t(e,"portal-item",!0)}function y(e){return Promise.resolve(e.layerJSON)}async function f(e,r){r.extent=e.fullExtent?await a(e.fullExtent):null}async function d(e,r){r.title||=e.title,await f(e,r),s(r,o.METADATA)}async function v(e,t){return r({layer:e,itemType:i,validateLayer:m,createJSONContext:e=>c(e),createItemData:y,errorNamePrefix:u,supplementalUnsupportedErrors:l,setItemProperties:f,saveResources:(r,t)=>n(e.resourceReferences,t)},t)}async function x(r,t,a){return e({layer:r,itemType:i,validateLayer:m,createJSONContext:e=>c(e),createItemData:y,errorNamePrefix:p,supplementalUnsupportedErrors:l,newItem:t,setItemProperties:d,saveResources:(e,t)=>n(r.resourceReferences,t)},a)}export{v as save,x as saveAs};
2
+ import{saveAs as e,save as r}from"./utils.js";import{createForItemWrite as t}from"../../portal/support/jsonContext.js";import{getWGS84ExtentForItem as a,removeTypeKeyword as s,typeKeyword as o}from"../../portal/support/portalItemUtils.js";import{saveResources as n}from"../../webdoc/support/resourceUtils.js";const i="Media Layer",u="media-layer-save",p="media-layer-save-as",l=["media-layer:unsupported-source"];function m(e){return{isValid:"media"===e.type,errorMessage:"Layer.type should be 'media'"}}function c(e){return t(e,"portal-item",{withResources:!0})}function y(e){return Promise.resolve(e.layerJSON)}async function f(e,r){r.extent=e.fullExtent?await a(e.fullExtent):null}async function d(e,r){r.title||=e.title,await f(e,r),s(r,o.METADATA)}async function v(e,t){return r({layer:e,itemType:i,validateLayer:m,createJSONContext:e=>c(e),createItemData:y,errorNamePrefix:u,supplementalUnsupportedErrors:l,setItemProperties:f,saveResources:(r,t)=>n(e.resourceReferences,t)},t)}async function x(r,t,a){return e({layer:r,itemType:i,validateLayer:m,createJSONContext:e=>c(e),createItemData:y,errorNamePrefix:p,supplementalUnsupportedErrors:l,newItem:t,setItemProperties:d,saveResources:(e,t)=>n(r.resourceReferences,t)},a)}export{v as save,x as saveAs};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- class t{constructor(t){this._store=t}destroy(){this._store.destroy()}get(t){return this._store.get(t)}put(t,s){this._store.put(t,s)}}export{t as ElevationQueryTileCache};
2
+ class t{constructor(t){this._store=t}destroy(){this._store.destroy()}get(t){return this._store.get(t)}put(t,s){this._store.put(t,s)}clear(){this._store.clear()}}export{t as ElevationQueryTileCache};