@arcgis/core 5.1.0-next.78 → 5.1.0-next.79

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 (464) hide show
  1. package/analysis/ShadowCast/DiscreteOptions.d.ts +33 -6
  2. package/analysis/ShadowCast/DiscreteOptions.js +1 -1
  3. package/analysis/ShadowCast/MinDurationOptions.d.ts +6 -4
  4. package/analysis/ShadowCast/TotalDurationOptions.d.ts +33 -6
  5. package/analysis/ShadowCast/TotalDurationOptions.js +1 -1
  6. package/analysis/ShadowCast/colorStopsUtils.js +2 -0
  7. package/analysis/ShadowCastAnalysis.d.ts +24 -1
  8. package/analysis/ShadowCastAnalysis.js +1 -1
  9. package/analysis/Viewshed.d.ts +27 -0
  10. package/analysis/Viewshed.js +1 -1
  11. package/analysis/ViewshedAnalysis.js +1 -1
  12. package/arcade/FunctionWrapper.js +1 -1
  13. package/arcade/arcadeAsyncRuntime.js +1 -1
  14. package/arcade/arcadeCompiler.js +1 -1
  15. package/arcade/arcadeRuntime.js +1 -1
  16. package/arcade/compilerUtils.js +1 -1
  17. package/arcade/debug.d.ts +139 -0
  18. package/arcade/debug.js +2 -0
  19. package/arcade/featureSetCollection.js +1 -1
  20. package/arcade/featureSetUtils.js +1 -1
  21. package/arcade/featureset/actions/GroupBy.js +1 -1
  22. package/arcade/featureset/actions/OrderBy.js +1 -1
  23. package/arcade/functions/featuresetstring.js +1 -1
  24. package/arcade/languageUtils.js +1 -1
  25. package/arcade.d.ts +46 -2
  26. package/arcade.js +1 -1
  27. package/assets/esri/core/workers/RemoteClient.js +1 -1
  28. package/assets/esri/core/workers/chunks/{1c7183551f5269bdcf13.js → 01bd1b86ba899c6aa4c0.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{1f8ccf96069ac3a40c3d.js → 01ee18782a50279f907e.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{f81c6f6ccc201f584970.js → 022067e807905cabeaa1.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{11ea4be441a26134ce1f.js → 052cdc7aaa803b5873f0.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{b7bb7072dbee978f3ca3.js → 056fd7847caaff2c9514.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{8acee3fba488f202f82f.js → 05c3146d87d917606193.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{a8ca5d8740cc7e39197b.js → 0aebcbf41cb193e76809.js} +5 -5
  35. package/assets/esri/core/workers/chunks/{54023458195549f66215.js → 0b77c124b743067e4155.js} +1 -1
  36. package/assets/esri/core/workers/chunks/10408183681fd6c7b4ed.js +2 -0
  37. package/assets/esri/core/workers/chunks/{7595ceba529ed01c7590.js → 2c87c3112a43db8624f6.js} +1 -1
  38. package/assets/esri/core/workers/chunks/{13e60f19f436b8d683ae.js → 3c9482764c9e4f8bcbb0.js} +1 -1
  39. package/assets/esri/core/workers/chunks/{322c54081b25f1c53661.js → 3e37019eee1c49d2bf64.js} +1 -1
  40. package/assets/esri/core/workers/chunks/45c83eb7c2a06166e3b0.js +1 -0
  41. package/assets/esri/core/workers/chunks/48acd146bf0241d87647.js +1 -0
  42. package/assets/esri/core/workers/chunks/5818f1f526577068d6ca.js +2 -0
  43. package/assets/esri/core/workers/chunks/{34fe97bcacc0dfc5bce6.js → 5ccc325d83cec4f5ccdb.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{30e710ec4d22c43d4e7e.js → 5cffc7b49966201eccdb.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{1a87e9bbd85ba29b1514.js → 5da2051f548c2942e01a.js} +1 -1
  46. package/assets/esri/core/workers/chunks/5ec66e39e53c11e75179.js +2 -0
  47. package/assets/esri/core/workers/chunks/{0b1454a77a6a682541dc.js.LICENSE.txt → 5ec66e39e53c11e75179.js.LICENSE.txt} +9 -1
  48. package/assets/esri/core/workers/chunks/5f6fd20a7f4e80eafa25.js +1 -0
  49. package/assets/esri/core/workers/chunks/{abc06d10c7ac8ba5b0e4.js → 67ec1694d6e18b7c234c.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{32e22d6eee9fed1f70b0.js → 6d696beddcc5fbed5875.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{f590b60fca607d66001a.js → 716a4d7e8b908b81870b.js} +1 -1
  52. package/assets/esri/core/workers/chunks/71fe127734f33d020a44.js +1 -0
  53. package/assets/esri/core/workers/chunks/7cdd0492b2191df95102.js +2 -0
  54. package/assets/esri/core/workers/chunks/7cea68257d24ffd205bb.js +1 -0
  55. package/assets/esri/core/workers/chunks/7e530e635325dba07864.js +1 -0
  56. package/assets/esri/core/workers/chunks/8f6f5dad52747d252aac.js +596 -0
  57. package/assets/esri/core/workers/chunks/{d950d5c2844206502ff0.js → 992cd87ba0ab6346f692.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{73c87eb9bd8f0f848481.js → 9c11e1fe785e1385fdb1.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{5ed8d8b5336c81fbcda3.js → 9d216e30d04ea21fc8a2.js} +1 -1
  60. package/assets/esri/core/workers/chunks/a54aa93b6012a2597f82.js +1 -0
  61. package/assets/esri/core/workers/chunks/{cf14b3a44705dacefac4.js → a9b5ce00323cd5574bf7.js} +1 -1
  62. package/assets/esri/core/workers/chunks/ae6b3dfe5f757df539d6.js +1 -0
  63. package/assets/esri/core/workers/chunks/b14c4c3f295970f731ab.js +1 -0
  64. package/assets/esri/core/workers/chunks/{c70df6ed190f9ebcf6aa.js → bf2c202dec5ab7bc770b.js} +1 -1
  65. package/assets/esri/core/workers/chunks/c1d4110aa494a1dba3c4.js +1 -0
  66. package/assets/esri/core/workers/chunks/{85d8c7cc7f8decbe975d.js → c442916805975744dd92.js} +1 -1
  67. package/assets/esri/core/workers/chunks/dacc2e5fa462495ed1cc.js +2 -0
  68. package/assets/esri/core/workers/chunks/f227b34cce6843df0fb6.js +1 -0
  69. package/assets/esri/core/workers/chunks/{dda2cb5c073d1e65f14f.js → f43d628d47eec7d530c7.js} +1 -1
  70. package/assets/esri/core/workers/chunks/f7531aa69a87814c60d1.js +1 -0
  71. package/assets/esri/core/workers/chunks/{4ccb56333de0247dcb6f.js → fb100935fd8948d779f5.js} +1 -1
  72. package/assets/esri/core/workers/chunks/{5ee4b630ad39c21d11db.js → fb9e3e7cd532ac4353f1.js} +12 -12
  73. package/assets/esri/core/workers/chunks/fc6ca7ffb9f1b875059c.js +1 -0
  74. package/assets/esri/core/workers/chunks/{3d9fcbe95dd22dbe730e.js → ffc4f3406ce383b9bd88.js} +1 -1
  75. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +6 -0
  76. package/assets/esri/themes/dark/main.css +1 -1
  77. package/assets/esri/themes/light/main.css +1 -1
  78. package/assets/esri/themes/light/view.css +1 -1
  79. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  80. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  81. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  82. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  83. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  84. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  85. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  86. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  87. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  88. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  89. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  90. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  91. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  92. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  93. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  94. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  95. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  96. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  97. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  98. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  99. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  100. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  101. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
  102. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  103. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  104. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  105. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  106. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  107. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  108. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  109. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  110. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  111. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  112. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  113. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  114. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  115. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  116. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  117. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  118. package/assets/esri/widgets/Sketch/t9n/Sketch_ar.json +1 -1
  119. package/assets/esri/widgets/Sketch/t9n/Sketch_bg.json +1 -1
  120. package/assets/esri/widgets/Sketch/t9n/Sketch_bs.json +1 -1
  121. package/assets/esri/widgets/Sketch/t9n/Sketch_ca.json +1 -1
  122. package/assets/esri/widgets/Sketch/t9n/Sketch_cs.json +1 -1
  123. package/assets/esri/widgets/Sketch/t9n/Sketch_da.json +1 -1
  124. package/assets/esri/widgets/Sketch/t9n/Sketch_de.json +1 -1
  125. package/assets/esri/widgets/Sketch/t9n/Sketch_el.json +1 -1
  126. package/assets/esri/widgets/Sketch/t9n/Sketch_es.json +1 -1
  127. package/assets/esri/widgets/Sketch/t9n/Sketch_et.json +1 -1
  128. package/assets/esri/widgets/Sketch/t9n/Sketch_fi.json +1 -1
  129. package/assets/esri/widgets/Sketch/t9n/Sketch_fr.json +1 -1
  130. package/assets/esri/widgets/Sketch/t9n/Sketch_he.json +1 -1
  131. package/assets/esri/widgets/Sketch/t9n/Sketch_hr.json +1 -1
  132. package/assets/esri/widgets/Sketch/t9n/Sketch_hu.json +1 -1
  133. package/assets/esri/widgets/Sketch/t9n/Sketch_id.json +1 -1
  134. package/assets/esri/widgets/Sketch/t9n/Sketch_it.json +1 -1
  135. package/assets/esri/widgets/Sketch/t9n/Sketch_ja.json +1 -1
  136. package/assets/esri/widgets/Sketch/t9n/Sketch_ko.json +1 -1
  137. package/assets/esri/widgets/Sketch/t9n/Sketch_lt.json +1 -1
  138. package/assets/esri/widgets/Sketch/t9n/Sketch_lv.json +1 -1
  139. package/assets/esri/widgets/Sketch/t9n/Sketch_nl.json +1 -1
  140. package/assets/esri/widgets/Sketch/t9n/Sketch_no.json +1 -1
  141. package/assets/esri/widgets/Sketch/t9n/Sketch_pl.json +1 -1
  142. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-BR.json +1 -1
  143. package/assets/esri/widgets/Sketch/t9n/Sketch_pt-PT.json +1 -1
  144. package/assets/esri/widgets/Sketch/t9n/Sketch_ro.json +1 -1
  145. package/assets/esri/widgets/Sketch/t9n/Sketch_ru.json +1 -1
  146. package/assets/esri/widgets/Sketch/t9n/Sketch_sk.json +1 -1
  147. package/assets/esri/widgets/Sketch/t9n/Sketch_sl.json +1 -1
  148. package/assets/esri/widgets/Sketch/t9n/Sketch_sr.json +1 -1
  149. package/assets/esri/widgets/Sketch/t9n/Sketch_sv.json +1 -1
  150. package/assets/esri/widgets/Sketch/t9n/Sketch_th.json +1 -1
  151. package/assets/esri/widgets/Sketch/t9n/Sketch_tr.json +1 -1
  152. package/assets/esri/widgets/Sketch/t9n/Sketch_uk.json +1 -1
  153. package/assets/esri/widgets/Sketch/t9n/Sketch_vi.json +1 -1
  154. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-CN.json +1 -1
  155. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-HK.json +1 -1
  156. package/assets/esri/widgets/Sketch/t9n/Sketch_zh-TW.json +1 -1
  157. package/chunks/ImageMaterial.glsl.js +7 -5
  158. package/chunks/SlicePlaneMaterial.glsl.js +21 -13
  159. package/chunks/arcade.js +1 -1
  160. package/chunks/languageUtils.js +1 -1
  161. package/config.js +1 -1
  162. package/core/MapUtils.js +1 -1
  163. package/core/arrayUtils.js +1 -1
  164. package/kernel.js +1 -1
  165. package/layers/IntegratedMeshLayer.d.ts +18 -14
  166. package/layers/SceneLayer.d.ts +35 -1
  167. package/layers/SceneLayer.js +1 -1
  168. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  169. package/layers/scene/ModelFileInfo.d.ts +29 -0
  170. package/layers/scene/ModelFileInfo.js +2 -0
  171. package/layers/scene/ModelInfo.d.ts +38 -0
  172. package/layers/scene/ModelInfo.js +2 -0
  173. package/layers/scene/modelQuerySupport.js +2 -0
  174. package/layers/scene/types.d.ts +14 -0
  175. package/layers/support/infoFor3D.js +1 -1
  176. package/layers/support/serviceCapabilitiesUtils.js +1 -1
  177. package/layers/types.d.ts +13 -1
  178. package/package.json +3 -3
  179. package/popup/Features.d.ts +1 -6
  180. package/popup/Features.js +1 -1
  181. package/popup/actions.js +1 -1
  182. package/renderers/visualVariables/support/ColorStop.js +1 -1
  183. package/support/arcadeUtils.js +1 -1
  184. package/support/revision.js +1 -1
  185. package/views/2d/engine/flow/styles/Imagery.js +1 -1
  186. package/views/2d/engine/flow/styles/Particles.js +1 -1
  187. package/views/2d/engine/flow/styles/Streamlines.js +1 -1
  188. package/views/2d/engine/vectorTiles/Placement.js +1 -1
  189. package/views/2d/engine/vectorTiles/TextShaping.js +1 -1
  190. package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
  191. package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
  192. package/views/2d/engine/webgl/GlyphSource.js +1 -1
  193. package/views/2d/engine/webgl/Overlay.js +1 -1
  194. package/views/2d/engine/webgl/OverlayMultipoint.js +1 -1
  195. package/views/2d/engine/webgl/RenderingDevice.js +1 -1
  196. package/views/2d/engine/webgl/TextureManager.js +1 -1
  197. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  198. package/views/2d/engine/webgl/shaderGraph/GLSLShaderModule.js +1 -1
  199. package/views/2d/engine/webgl/shaderGraph/GraphShaderModule.js +1 -1
  200. package/views/2d/engine/webgl/shaderGraph/graph/ShaderGraphContext.js +1 -1
  201. package/views/2d/engine/webgl/shaderGraph/techniques/TechniqueProgramCache.js +1 -1
  202. package/views/2d/engine/webgl/shaderGraph/techniques/TestTechnique.js +1 -1
  203. package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
  204. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  205. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedTechnique.js +1 -1
  206. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimationUniformInfo.js +1 -1
  207. package/views/2d/engine/webgl/shaderGraph/techniques/bitmap/BitmapTechnique.js +1 -1
  208. package/views/2d/engine/webgl/shaderGraph/techniques/blend/BlendTechnique.js +1 -1
  209. package/views/2d/engine/webgl/shaderGraph/techniques/bloom/BloomTechnique.js +1 -1
  210. package/views/2d/engine/webgl/shaderGraph/techniques/blur/BlurTechnique.js +1 -1
  211. package/views/2d/engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js +1 -1
  212. package/views/2d/engine/webgl/shaderGraph/techniques/colorize/ColorizeTechnique.js +1 -1
  213. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPointShader.js +1 -1
  214. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
  215. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityTechnique.js +1 -1
  216. package/views/2d/engine/webgl/shaderGraph/techniques/drop-shadow/DropShadowTechnique.js +1 -1
  217. package/views/2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js +1 -1
  218. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexFillTechnique.js +1 -1
  219. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillTechnique.js +1 -1
  220. package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillTechnique.js +1 -1
  221. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillTechnique.js +1 -1
  222. package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillTechnique.js +1 -1
  223. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillTechnique.js +1 -1
  224. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillTechnique.js +1 -1
  225. package/views/2d/engine/webgl/shaderGraph/techniques/flow/FlowTechnique.js +1 -1
  226. package/views/2d/engine/webgl/shaderGraph/techniques/grid/GridTechnique.js +1 -1
  227. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapTechnique.js +1 -1
  228. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelTechnique.js +1 -1
  229. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeTechnique.js +1 -1
  230. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineTechnique.js +1 -1
  231. package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineTechnique.js +1 -1
  232. package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
  233. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
  234. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerTechnique.js +1 -1
  235. package/views/2d/engine/webgl/shaderGraph/techniques/opacity/OpacityTechnique.js +1 -1
  236. package/views/2d/engine/webgl/shaderGraph/techniques/overlay/OverlayTechnique.js +1 -1
  237. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartShader.js +1 -1
  238. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartTechnique.js +1 -1
  239. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
  240. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterHighlightTechnique.js +1 -1
  241. package/views/2d/engine/webgl/shaderGraph/techniques/raster/VectorFieldTechnique.js +1 -1
  242. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/AspectTechnique.js +1 -1
  243. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/BandArithmeticTechnique.js +1 -1
  244. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/BaseRasterProcessorTechnique.js +1 -1
  245. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ColormapToRGBTechnique.js +1 -1
  246. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/CompositeBandTechnique.js +1 -1
  247. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ComputeChangeTechnique.js +1 -1
  248. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ContrastBrightnessTechnique.js +1 -1
  249. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ConvolutionTechnique.js +1 -1
  250. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/CurvatureTechnique.js +1 -1
  251. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ExtractBandTechnique.js +1 -1
  252. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/FocalStatisticsTechnique.js +1 -1
  253. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/GrayscaleTechnique.js +1 -1
  254. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/HillshadeTechnique.js +1 -1
  255. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/LocalTechnique.js +1 -1
  256. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/MaskTechnique.js +1 -1
  257. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/NDVITechnique.js +1 -1
  258. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/RemapTechnique.js +1 -1
  259. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ReprojectTechnique.js +1 -1
  260. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/ShadedReliefTechnique.js +1 -1
  261. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/SlopeTechnique.js +1 -1
  262. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/SpectralConversionTechnique.js +1 -1
  263. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/StretchTechnique.js +1 -1
  264. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  265. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BitmapShader.js +1 -1
  266. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js +1 -1
  267. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlitShader.js +1 -1
  268. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BloomShader.js +1 -1
  269. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlurShader.js +1 -1
  270. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ColorizeShader.js +1 -1
  271. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexFillShader.js +1 -1
  272. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexOutlineFillShader.js +1 -1
  273. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/DropShadowShader.js +1 -1
  274. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/EntityStorage.js +1 -1
  275. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientFillShader.js +1 -1
  276. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientStrokeShader.js +1 -1
  277. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapAccumulateShader.js +1 -1
  278. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapResolveShader.js +1 -1
  279. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js +1 -1
  280. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/MosaicInfo.js +1 -1
  281. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js +1 -1
  282. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OverlayShader.js +1 -1
  283. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternFillShader.js +1 -1
  284. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternOutlineFillShader.js +1 -1
  285. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TextureStatisticsDiffShader.js +1 -1
  286. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TextureStatisticsMinMaxSumShader.js +1 -1
  287. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TextureStatisticsStdDevShader.js +1 -1
  288. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TextureStatisticsSumOfSquaredDiffShader.js +1 -1
  289. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TexturedLineShader.js +1 -1
  290. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js +1 -1
  291. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js +1 -1
  292. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js +1 -1
  293. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowUtils.js +1 -1
  294. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/BaseRasterColorizerShader.js +1 -1
  295. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/BaseRasterHighlightShader.js +1 -1
  296. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterColorizerLUTShader.js +1 -1
  297. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterColorizerShadedReliefShader.js +1 -1
  298. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterColorizerStretchShader.js +1 -1
  299. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/RasterXYBandHighlightShader.js +1 -1
  300. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/lut.js +1 -1
  301. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/AspectShader.js +1 -1
  302. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/BaseRasterProcessorShader.js +1 -1
  303. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ColormapToRGBShader.js +1 -1
  304. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ConvolutionShader.js +1 -1
  305. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/CurvatureShader.js +1 -1
  306. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/FocalStatisticsShader.js +1 -1
  307. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/HillshadeShader.js +1 -1
  308. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/MultiRasterMixin.js +1 -1
  309. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/ShadedReliefShader.js +1 -1
  310. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/SlopeShader.js +1 -1
  311. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/projection.js +1 -1
  312. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/stretch.js +1 -1
  313. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderBackground.js +1 -1
  314. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderFill.js +1 -1
  315. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderIcon.js +1 -1
  316. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderLine.js +1 -1
  317. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderText.js +1 -1
  318. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vvUtils.js +1 -1
  319. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  320. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextTechnique.js +1 -1
  321. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileDebugInfoTechnique.js +1 -1
  322. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileStencilTechnique.js +1 -1
  323. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueBackground.js +1 -1
  324. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueCircle.js +1 -1
  325. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueFill.js +1 -1
  326. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueLine.js +1 -1
  327. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueSymbol.js +1 -1
  328. package/views/2d/engine/webgl/shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js +1 -1
  329. package/views/2d/engine/webgl/shaderGraph/typed/TypedShaderProgram.js +1 -1
  330. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  331. package/views/3d/FocusAreasView.js +1 -1
  332. package/views/3d/StencilGeometry.js +2 -0
  333. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  334. package/views/3d/analysis/Viewshed/ViewshedComputedData.js +1 -1
  335. package/views/3d/analysis/Viewshed/ViewshedConfiguration.js +1 -1
  336. package/views/3d/analysis/Viewshed/ViewshedFieldOfViewManipulation.js +1 -1
  337. package/views/3d/analysis/Viewshed/ViewshedScaleOrientManipulation.js +1 -1
  338. package/views/3d/analysis/Viewshed/ViewshedShapeVisualElement.js +1 -1
  339. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  340. package/views/3d/analysis/Viewshed/ViewshedSubVisualization.js +1 -1
  341. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  342. package/views/3d/analysis/Viewshed/viewshedToolUtils.js +1 -1
  343. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  344. package/views/3d/focusAreaUtils.js +2 -0
  345. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  346. package/views/3d/layers/I3SMeshView3D.js +1 -1
  347. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  348. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  349. package/views/3d/layers/IntegratedMeshNormals.js +1 -1
  350. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  351. package/views/3d/layers/SceneLayerView3D.js +1 -1
  352. package/views/3d/layers/SceneLayerWorker.js +1 -1
  353. package/views/3d/layers/i3s/I3SQueryEngine.js +1 -1
  354. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  355. package/views/3d/layers/support/DefinitionExpressionSceneLayerView.js +1 -1
  356. package/views/3d/layers/support/TemporalSceneLayerView.js +1 -1
  357. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  358. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
  359. package/views/3d/webgl-engine/effects/atmosphere/ChapmanAtmosphere.js +1 -1
  360. package/views/3d/webgl-engine/effects/atmosphere/LocalAtmosphere.js +1 -1
  361. package/views/3d/webgl-engine/effects/atmosphere/MarsAtmosphere.js +1 -1
  362. package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
  363. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
  364. package/views/3d/webgl-engine/effects/clouds/CloudsRenderer.js +1 -1
  365. package/views/3d/webgl-engine/effects/clouds/CloudsTechnique.js +1 -1
  366. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlas.js +1 -1
  367. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
  368. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  369. package/views/3d/webgl-engine/effects/focusArea/focusAreaMaskUtils.js +2 -0
  370. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  371. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  372. package/views/3d/webgl-engine/effects/glow/GlowRenderNode.js +1 -1
  373. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  374. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  375. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  376. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBuffer.js +1 -1
  377. package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
  378. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathTechnique.js +1 -1
  379. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  380. package/views/3d/webgl-engine/effects/precipitation/Precipitation.js +1 -1
  381. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  382. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  383. package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
  384. package/views/3d/webgl-engine/effects/stars/StarsTechnique.js +1 -1
  385. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  386. package/views/3d/webgl-engine/lib/Compositor.js +1 -1
  387. package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
  388. package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
  389. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  390. package/views/3d/webgl-engine/lib/Material.js +1 -1
  391. package/views/3d/webgl-engine/lib/Normals.js +1 -1
  392. package/views/3d/webgl-engine/lib/OrderIndependentTransparency.js +1 -1
  393. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  394. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  395. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  396. package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
  397. package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
  398. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  399. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  400. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  401. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  402. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  403. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  404. package/views/3d/webgl-engine/shaders/MeasurementArrowTechnique.js +1 -1
  405. package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +10 -10
  406. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  407. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  408. package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechnique.js +1 -1
  409. package/views/View2D.js +1 -1
  410. package/views/draw/support/GraphicMover.js +1 -1
  411. package/views/draw/support/Reshape.js +1 -1
  412. package/views/draw/support/editingSessionUtils.js +1 -1
  413. package/views/webgl/FramebufferObject.js +1 -1
  414. package/widgets/BatchAttributeForm/css.js +1 -1
  415. package/widgets/BatchAttributeForm/inputs/GroupInput.d.ts +2 -1
  416. package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.d.ts +54 -0
  417. package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.js +2 -0
  418. package/widgets/BatchAttributeForm/inputs/support/createBatchFormInputs.js +1 -1
  419. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  420. package/widgets/BatchAttributeForm/inputs/types.d.ts +4 -3
  421. package/widgets/BatchAttributeForm/templates/AttachmentElementTemplate.js +1 -1
  422. package/widgets/BatchAttributeForm/templates/RelationshipElementTemplate.js +2 -0
  423. package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
  424. package/widgets/BatchAttributeForm/templates/support/hashElementTemplate.js +1 -1
  425. package/widgets/BatchAttributeForm/templates/support/templateUtils.js +1 -1
  426. package/widgets/BatchAttributeForm.js +1 -1
  427. package/widgets/CoordinateConversion/CoordinateConversionViewModel.d.ts +21 -1
  428. package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
  429. package/widgets/CoordinateConversion/support/Format.js +1 -1
  430. package/widgets/CoordinateConversion/support/coordinateConversionUtils.js +1 -1
  431. package/widgets/CoordinateConversion.d.ts +21 -1
  432. package/widgets/CoordinateConversion.js +1 -1
  433. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  434. package/widgets/Editor/SplitFeatureWorkflow.js +1 -1
  435. package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
  436. package/widgets/Editor/support/SketchController.js +1 -1
  437. package/widgets/Editor/workflowUtils.js +1 -1
  438. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  439. package/widgets/Sketch/SketchViewModel.js +1 -1
  440. package/widgets/support/ContingentValuesManager.js +1 -1
  441. package/widgets/types.d.ts +1 -1
  442. package/assets/esri/core/workers/chunks/07eff82916681fcff069.js +0 -1
  443. package/assets/esri/core/workers/chunks/0b1454a77a6a682541dc.js +0 -2
  444. package/assets/esri/core/workers/chunks/1c7fd0a229a8112b0539.js +0 -596
  445. package/assets/esri/core/workers/chunks/3697e51e1e4cf442f39a.js +0 -1
  446. package/assets/esri/core/workers/chunks/3cce9dad8ee0e4971d50.js +0 -1
  447. package/assets/esri/core/workers/chunks/3df8493b91aa3bce824d.js +0 -1
  448. package/assets/esri/core/workers/chunks/68a313155ddc29bd024d.js +0 -1
  449. package/assets/esri/core/workers/chunks/751609831b283903ba48.js +0 -1
  450. package/assets/esri/core/workers/chunks/7bacdd65a6cc4d284e0a.js +0 -2
  451. package/assets/esri/core/workers/chunks/7e97684e851274efd11f.js +0 -1
  452. package/assets/esri/core/workers/chunks/85aac8539996372f1ee8.js +0 -1
  453. package/assets/esri/core/workers/chunks/99d298d0039c536fcf3e.js +0 -1
  454. package/assets/esri/core/workers/chunks/9aaf78b831f8739bc127.js +0 -1
  455. package/assets/esri/core/workers/chunks/9b9916864b6575c42c8a.js +0 -1
  456. package/assets/esri/core/workers/chunks/bf7e019437a3b6036300.js +0 -2
  457. package/assets/esri/core/workers/chunks/d304343a781acfa3ff96.js +0 -1
  458. package/assets/esri/core/workers/chunks/dbb9bb28696ff9536678.js +0 -2
  459. package/assets/esri/core/workers/chunks/f09a41ad239d467d9438.js +0 -2
  460. package/assets/esri/core/workers/chunks/f6912532aae1638cbe8f.js +0 -1
  461. /package/assets/esri/core/workers/chunks/{7bacdd65a6cc4d284e0a.js.LICENSE.txt → 10408183681fd6c7b4ed.js.LICENSE.txt} +0 -0
  462. /package/assets/esri/core/workers/chunks/{f09a41ad239d467d9438.js.LICENSE.txt → 5818f1f526577068d6ca.js.LICENSE.txt} +0 -0
  463. /package/assets/esri/core/workers/chunks/{dbb9bb28696ff9536678.js.LICENSE.txt → 7cdd0492b2191df95102.js.LICENSE.txt} +0 -0
  464. /package/assets/esri/core/workers/chunks/{bf7e019437a3b6036300.js.LICENSE.txt → dacc2e5fa462495ed1cc.js.LICENSE.txt} +0 -0
@@ -1,18 +1,32 @@
1
1
  import type Color from "../../Color.js";
2
+ import type ColorStop from "../../renderers/visualVariables/support/ColorStop.js";
2
3
  import type { ColorLike } from "../../Color.js";
3
4
  import type { Clonable } from "../../core/Clonable.js";
5
+ import type { ColorStopProperties } from "../../renderers/visualVariables/support/ColorStop.js";
4
6
 
5
7
  /** @since 5.0 */
6
8
  export interface DiscreteOptionsProperties extends Partial<Pick<DiscreteOptions, "interval">> {
7
9
  /**
8
- * Color of the shadow visualization. The opacity of the visualization is mapped to the number of overlapping
9
- * shadows. No shadow corresponds to opacity 0 and maximum number of shadows corresponds to the opacity set in this
10
- * color value.
10
+ * Defines the color used by the default color ramp for the visualization. The opacity is mapped to the number of
11
+ * overlapping shadows. Areas without shadow are displayed with zero opacity and areas with the maximum number of
12
+ * overlapping shadows are displayed with the opacity specified in this color.
13
+ *
14
+ * When [colorStops](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/DiscreteOptions/#colorStops) is not specified, the visualization uses a default ramp between transparent and this color. When specified, those stops are used instead.
11
15
  *
12
16
  * @default [50, 50, 50, 0.7]
13
17
  * @since 5.0
14
18
  */
15
19
  color?: ColorLike;
20
+ /**
21
+ * The color stops for the visualization.
22
+ *
23
+ * - Each stop defines a color and the corresponding number of overlapping shadows.
24
+ * - Colors are interpolated between adjacent stops.
25
+ * - If omitted, the visualization uses a default ramp between transparent and [color](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/DiscreteOptions/#color). If specified, these stops are used.
26
+ *
27
+ * @since 5.1
28
+ */
29
+ colorStops?: ColorStopProperties[] | null;
16
30
  }
17
31
 
18
32
  /**
@@ -28,15 +42,28 @@ export default class DiscreteOptions extends Clonable {
28
42
  /** @since 5.0 */
29
43
  constructor(properties?: DiscreteOptionsProperties);
30
44
  /**
31
- * Color of the shadow visualization. The opacity of the visualization is mapped to the number of overlapping
32
- * shadows. No shadow corresponds to opacity 0 and maximum number of shadows corresponds to the opacity set in this
33
- * color value.
45
+ * Defines the color used by the default color ramp for the visualization. The opacity is mapped to the number of
46
+ * overlapping shadows. Areas without shadow are displayed with zero opacity and areas with the maximum number of
47
+ * overlapping shadows are displayed with the opacity specified in this color.
48
+ *
49
+ * When [colorStops](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/DiscreteOptions/#colorStops) is not specified, the visualization uses a default ramp between transparent and this color. When specified, those stops are used instead.
34
50
  *
35
51
  * @default [50, 50, 50, 0.7]
36
52
  * @since 5.0
37
53
  */
38
54
  get color(): Color;
39
55
  set color(value: ColorLike);
56
+ /**
57
+ * The color stops for the visualization.
58
+ *
59
+ * - Each stop defines a color and the corresponding number of overlapping shadows.
60
+ * - Colors are interpolated between adjacent stops.
61
+ * - If omitted, the visualization uses a default ramp between transparent and [color](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/DiscreteOptions/#color). If specified, these stops are used.
62
+ *
63
+ * @since 5.1
64
+ */
65
+ get colorStops(): ColorStop[] | null | undefined;
66
+ set colorStops(value: ColorStopProperties[] | null | undefined);
40
67
  /**
41
68
  * Individual shadows are displayed at this time interval, starting with the start time of day.
42
69
  * The interval is expressed in milliseconds. If set to 0, we'll use the smallest possible interval, up to a
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as o}from"tslib";import r from"../../Color.js";import{Clonable as t}from"../../core/Clonable.js";import{convertTime as s}from"../../core/timeUtils.js";import{property as e,subclass as i}from"../../core/accessorSupport/decorators.js";let l=class extends t{constructor(o){super(o),this.color=new r([50,50,50,.7]),this.interval=s(1,"hours","milliseconds")}equals(o){return this===o||this.color.equals(o.color)&&this.interval===o.interval}};o([e({type:r,nonNullable:!0})],l.prototype,"color",void 0),o([e({type:Number})],l.prototype,"interval",void 0),l=o([i("esri.analysis.ShadowCast.DiscreteOptions")],l);const a=l;export{a as default};
2
+ import{__decorate as o}from"tslib";import r from"../../Color.js";import{colorStopsEqual as t}from"./colorStopsUtils.js";import{Clonable as s}from"../../core/Clonable.js";import{convertTime as e}from"../../core/timeUtils.js";import{property as l,subclass as i}from"../../core/accessorSupport/decorators.js";import p from"../../renderers/visualVariables/support/ColorStop.js";let c=class extends s{constructor(o){super(o),this.color=new r([50,50,50,.7]),this.colorStops=null,this.interval=e(1,"hours","milliseconds")}equals(o){return this===o||this.color.equals(o.color)&&t(this.colorStops,o.colorStops)&&this.interval===o.interval}};o([l({type:r,nonNullable:!0})],c.prototype,"color",void 0),o([l({type:[p]})],c.prototype,"colorStops",void 0),o([l({type:Number})],c.prototype,"interval",void 0),c=o([i("esri.analysis.ShadowCast.DiscreteOptions")],c);const a=c;export{a as default};
@@ -7,8 +7,9 @@ import type { Clonable } from "../../core/Clonable.js";
7
7
  /** @since 5.0 */
8
8
  export interface MinDurationOptionsProperties extends Partial<Pick<MinDurationOptions, "contextEnabled" | "minDuration">> {
9
9
  /**
10
- * Color of the shadow visualization. The areas with cumulative shadow time longer than the
11
- * [minDuration](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#minDuration) are displayed with this color.
10
+ * Defines the color used to display areas where the cumulative shadow duration meets or exceeds
11
+ * [minDuration](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#minDuration). Areas with shorter shadow duration are displayed with
12
+ * zero opacity.
12
13
  *
13
14
  * @default [255, 0, 0, 0.7]
14
15
  * @since 5.0
@@ -38,8 +39,9 @@ export default class MinDurationOptions extends Clonable {
38
39
  /** @since 5.0 */
39
40
  constructor(properties?: MinDurationOptionsProperties);
40
41
  /**
41
- * Color of the shadow visualization. The areas with cumulative shadow time longer than the
42
- * [minDuration](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#minDuration) are displayed with this color.
42
+ * Defines the color used to display areas where the cumulative shadow duration meets or exceeds
43
+ * [minDuration](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/MinDurationOptions/#minDuration). Areas with shorter shadow duration are displayed with
44
+ * zero opacity.
43
45
  *
44
46
  * @default [255, 0, 0, 0.7]
45
47
  * @since 5.0
@@ -1,19 +1,33 @@
1
1
  import type Color from "../../Color.js";
2
+ import type ColorStop from "../../renderers/visualVariables/support/ColorStop.js";
2
3
  import type { ColorLike } from "../../Color.js";
3
4
  import type { ShadowCastTotalDurationMode } from "./types.js";
4
5
  import type { Clonable } from "../../core/Clonable.js";
6
+ import type { ColorStopProperties } from "../../renderers/visualVariables/support/ColorStop.js";
5
7
 
6
8
  /** @since 5.0 */
7
9
  export interface TotalDurationOptionsProperties extends Partial<Pick<TotalDurationOptions, "mode">> {
8
10
  /**
9
- * Color of the shadow visualization. The opacity is mapped to the time spent in shadow. Areas that don't receive any
10
- * shadow are displayed with zero opacity and areas that receive shadows for the entire time range are displayed
11
- * with the opacity specified in this property.
11
+ * Defines the color used by the default color ramp for the visualization. The opacity is mapped to the time spent
12
+ * in shadow. Areas that don't receive any shadow are displayed with zero opacity and areas that receive shadows for
13
+ * the entire time range are displayed with the opacity specified in this color.
14
+ *
15
+ * When [colorStops](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/TotalDurationOptions/#colorStops) is not specified, the visualization uses a default ramp between transparent and this color. When specified, those stops are used instead.
12
16
  *
13
17
  * @default [0, 0, 255, 0.7]
14
18
  * @since 5.0
15
19
  */
16
20
  color?: ColorLike;
21
+ /**
22
+ * The color stops for the visualization.
23
+ *
24
+ * - Each stop defines a color and a value in milliseconds.
25
+ * - Colors are interpolated between adjacent stops.
26
+ * - If omitted, the visualization uses a default ramp between transparent and [color](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/TotalDurationOptions/#color). If specified, these stops are used.
27
+ *
28
+ * @since 5.1
29
+ */
30
+ colorStops?: ColorStopProperties[] | null;
17
31
  }
18
32
 
19
33
  /**
@@ -29,15 +43,28 @@ export default class TotalDurationOptions extends Clonable {
29
43
  /** @since 5.0 */
30
44
  constructor(properties?: TotalDurationOptionsProperties);
31
45
  /**
32
- * Color of the shadow visualization. The opacity is mapped to the time spent in shadow. Areas that don't receive any
33
- * shadow are displayed with zero opacity and areas that receive shadows for the entire time range are displayed
34
- * with the opacity specified in this property.
46
+ * Defines the color used by the default color ramp for the visualization. The opacity is mapped to the time spent
47
+ * in shadow. Areas that don't receive any shadow are displayed with zero opacity and areas that receive shadows for
48
+ * the entire time range are displayed with the opacity specified in this color.
49
+ *
50
+ * When [colorStops](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/TotalDurationOptions/#colorStops) is not specified, the visualization uses a default ramp between transparent and this color. When specified, those stops are used instead.
35
51
  *
36
52
  * @default [0, 0, 255, 0.7]
37
53
  * @since 5.0
38
54
  */
39
55
  get color(): Color;
40
56
  set color(value: ColorLike);
57
+ /**
58
+ * The color stops for the visualization.
59
+ *
60
+ * - Each stop defines a color and a value in milliseconds.
61
+ * - Colors are interpolated between adjacent stops.
62
+ * - If omitted, the visualization uses a default ramp between transparent and [color](https://developers.arcgis.com/javascript/latest/references/core/analysis/ShadowCast/TotalDurationOptions/#color). If specified, these stops are used.
63
+ *
64
+ * @since 5.1
65
+ */
66
+ get colorStops(): ColorStop[] | null | undefined;
67
+ set colorStops(value: ColorStopProperties[] | null | undefined);
41
68
  /**
42
69
  * Determines how cumulative shadow duration is visualized. Either as a `continuous` surface across the selected time
43
70
  * range or aggregated into discrete `hourly` intervals.
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as o}from"tslib";import t from"../../Color.js";import{Clonable as r}from"../../core/Clonable.js";import{property as s,subclass as e}from"../../core/accessorSupport/decorators.js";let l=class extends r{constructor(o){super(o),this.color=new t([0,0,255,.7]),this.mode="continuous"}equals(o){return this===o||this.color.equals(o.color)&&this.mode===o.mode}};o([s({type:t,nonNullable:!0})],l.prototype,"color",void 0),o([s({type:["continuous","hourly"]})],l.prototype,"mode",void 0),l=o([e("esri.analysis.ShadowCast.TotalDurationOptions")],l);const i=l;export{i as default};
2
+ import{__decorate as o}from"tslib";import t from"../../Color.js";import{colorStopsEqual as r}from"./colorStopsUtils.js";import{Clonable as s}from"../../core/Clonable.js";import{property as e,subclass as l}from"../../core/accessorSupport/decorators.js";import p from"../../renderers/visualVariables/support/ColorStop.js";let i=class extends s{constructor(o){super(o),this.color=new t([0,0,255,.7]),this.colorStops=null,this.mode="continuous"}equals(o){return this===o||this.color.equals(o.color)&&r(this.colorStops,o.colorStops)&&this.mode===o.mode}};o([e({type:t,nonNullable:!0})],i.prototype,"color",void 0),o([e({type:[p]})],i.prototype,"colorStops",void 0),o([e({type:["continuous","hourly"]})],i.prototype,"mode",void 0),i=o([l("esri.analysis.ShadowCast.TotalDurationOptions")],i);const c=i;export{c as default};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import{equals as l}from"../../core/arrayUtils.js";function r(r,n){return r===n||null==r&&null==n||null!=r&&null!=n&&l(r,n,(l,r)=>l.equals(r))}export{r as colorStopsEqual};
@@ -2,14 +2,16 @@ import type Analysis from "./Analysis.js";
2
2
  import type DiscreteOptions from "./ShadowCast/DiscreteOptions.js";
3
3
  import type MinDurationOptions from "./ShadowCast/MinDurationOptions.js";
4
4
  import type TotalDurationOptions from "./ShadowCast/TotalDurationOptions.js";
5
+ import type Polygon from "../geometry/Polygon.js";
5
6
  import type { AnalysisProperties } from "./Analysis.js";
6
7
  import type { DiscreteOptionsProperties } from "./ShadowCast/DiscreteOptions.js";
7
8
  import type { MinDurationOptionsProperties } from "./ShadowCast/MinDurationOptions.js";
8
9
  import type { TotalDurationOptionsProperties } from "./ShadowCast/TotalDurationOptions.js";
9
10
  import type { ShadowCastMode } from "./ShadowCast/types.js";
11
+ import type { PolygonProperties } from "../geometry/Polygon.js";
10
12
 
11
13
  /** @since 5.0 */
12
- export interface ShadowCastAnalysisProperties extends AnalysisProperties, Partial<Pick<ShadowCastAnalysis, "endTimeOfDay" | "mode" | "startTimeOfDay" | "utcOffset">> {
14
+ export interface ShadowCastAnalysisProperties extends AnalysisProperties, Partial<Pick<ShadowCastAnalysis, "endTimeOfDay" | "mode" | "startTimeOfDay" | "utcOffset" | "visualizeSunlight">> {
13
15
  /**
14
16
  * The calendar date used to calculate the shadow cast. This date excludes the time.
15
17
  * If a date with a time is set, the time value will be set to midnight (`00:00:00`) of that date in local system time.
@@ -24,6 +26,12 @@ export interface ShadowCastAnalysisProperties extends AnalysisProperties, Partia
24
26
  * @since 5.0
25
27
  */
26
28
  discreteOptions?: DiscreteOptionsProperties;
29
+ /**
30
+ * Area inside which to apply the shadow cast. If not set it will apply to the entire scene.
31
+ *
32
+ * @since 5.1
33
+ */
34
+ geometry?: PolygonProperties | null;
27
35
  /**
28
36
  * Options specific to the `min-duration` mode.
29
37
  *
@@ -173,6 +181,13 @@ export default class ShadowCastAnalysis extends Analysis {
173
181
  * @since 5.0
174
182
  */
175
183
  accessor endTimeOfDay: number;
184
+ /**
185
+ * Area inside which to apply the shadow cast. If not set it will apply to the entire scene.
186
+ *
187
+ * @since 5.1
188
+ */
189
+ get geometry(): Polygon | null | undefined;
190
+ set geometry(value: PolygonProperties | null | undefined);
176
191
  /**
177
192
  * Options specific to the `min-duration` mode.
178
193
  *
@@ -235,4 +250,12 @@ export default class ShadowCastAnalysis extends Analysis {
235
250
  * @since 5.0
236
251
  */
237
252
  get valid(): boolean;
253
+ /**
254
+ * When `true`, the analysis will visualize the sunlight duration instead of the shadow duration. This applies to all
255
+ * modes and their respective options.
256
+ *
257
+ * @default false
258
+ * @since 5.1
259
+ */
260
+ accessor visualizeSunlight: boolean;
238
261
  }
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import o from"./Analysis.js";import e from"./ShadowCast/DiscreteOptions.js";import s from"./ShadowCast/MinDurationOptions.js";import i from"./ShadowCast/TotalDurationOptions.js";import{convertTime as a}from"../core/timeUtils.js";import{property as n,subclass as r}from"../core/accessorSupport/decorators.js";let p=class extends o{constructor(t){super(t),this.type="shadow-cast",this.utcOffset=null,this.startTimeOfDay=a(10,"hours","milliseconds"),this.endTimeOfDay=a(16,"hours","milliseconds"),this.mode="min-duration",this.discreteOptions=new e,this.totalDurationOptions=new i,this.minDurationOptions=new s,this.date??=new Date}set date(t){const o=new Date(t);o.setHours(0,0,0,0),this._set("date",o)}get valid(){return!0}equals(t){return this===t||super.equals(t)&&this.date.getTime()===t.date.getTime()&&this.utcOffset===t.utcOffset&&this.startTimeOfDay===t.startTimeOfDay&&this.endTimeOfDay===t.endTimeOfDay&&this.mode===t.mode&&this.discreteOptions.equals(t.discreteOptions)&&this.totalDurationOptions.equals(t.totalDurationOptions)&&this.minDurationOptions.equals(t.minDurationOptions)}clear(){throw new Error("clear() is not supported on ShadowCastAnalysis.")}};t([n({type:["shadow-cast"]})],p.prototype,"type",void 0),t([n({type:Date,nonNullable:!0})],p.prototype,"date",null),t([n({})],p.prototype,"utcOffset",void 0),t([n({type:Number,nonNullable:!0})],p.prototype,"startTimeOfDay",void 0),t([n({type:Number,nonNullable:!0})],p.prototype,"endTimeOfDay",void 0),t([n({type:["discrete","min-duration","total-duration"],nonNullable:!0})],p.prototype,"mode",void 0),t([n({type:e,nonNullable:!0})],p.prototype,"discreteOptions",void 0),t([n({type:i,nonNullable:!0})],p.prototype,"totalDurationOptions",void 0),t([n({type:s,nonNullable:!0})],p.prototype,"minDurationOptions",void 0),t([n({readOnly:!0})],p.prototype,"valid",null),p=t([r("esri.analysis.ShadowCastAnalysis")],p);const l=p;export{l as default};
2
+ import{__decorate as t}from"tslib";import o from"./Analysis.js";import e from"./ShadowCast/DiscreteOptions.js";import i from"./ShadowCast/MinDurationOptions.js";import s from"./ShadowCast/TotalDurationOptions.js";import{equalsMaybe as a}from"../core/maybe.js";import{convertTime as r}from"../core/timeUtils.js";import{property as n,subclass as l}from"../core/accessorSupport/decorators.js";import p from"../geometry/Polygon.js";let u=class extends o{constructor(t){super(t),this.type="shadow-cast",this.geometry=null,this.utcOffset=null,this.startTimeOfDay=r(10,"hours","milliseconds"),this.endTimeOfDay=r(16,"hours","milliseconds"),this.mode="min-duration",this.visualizeSunlight=!1,this.discreteOptions=new e,this.totalDurationOptions=new s,this.minDurationOptions=new i,this.date??=new Date}set date(t){const o=new Date(t);o.setHours(0,0,0,0),this._set("date",o)}get valid(){return!0}equals(t){return this===t||super.equals(t)&&this.date.getTime()===t.date.getTime()&&this.utcOffset===t.utcOffset&&this.startTimeOfDay===t.startTimeOfDay&&this.endTimeOfDay===t.endTimeOfDay&&a(this.geometry,t.geometry)&&this.mode===t.mode&&this.visualizeSunlight===t.visualizeSunlight&&this.discreteOptions.equals(t.discreteOptions)&&this.totalDurationOptions.equals(t.totalDurationOptions)&&this.minDurationOptions.equals(t.minDurationOptions)}clear(){throw new Error("clear() is not supported on ShadowCastAnalysis.")}};t([n({type:["shadow-cast"]})],u.prototype,"type",void 0),t([n({type:Date,nonNullable:!0})],u.prototype,"date",null),t([n({type:p})],u.prototype,"geometry",void 0),t([n({})],u.prototype,"utcOffset",void 0),t([n({type:Number,nonNullable:!0})],u.prototype,"startTimeOfDay",void 0),t([n({type:Number,nonNullable:!0})],u.prototype,"endTimeOfDay",void 0),t([n({type:["discrete","min-duration","total-duration"],nonNullable:!0})],u.prototype,"mode",void 0),t([n({type:Boolean,nonNullable:!0})],u.prototype,"visualizeSunlight",void 0),t([n({type:e,nonNullable:!0})],u.prototype,"discreteOptions",void 0),t([n({type:s,nonNullable:!0})],u.prototype,"totalDurationOptions",void 0),t([n({type:i,nonNullable:!0})],u.prototype,"minDurationOptions",void 0),t([n({readOnly:!0})],u.prototype,"valid",null),u=t([l("esri.analysis.ShadowCastAnalysis")],u);const m=u;export{m as default};
@@ -1,10 +1,24 @@
1
1
  import type Point from "../geometry/Point.js";
2
+ import type ElevationInfo from "../symbols/support/ElevationInfo.js";
2
3
  import type { FeatureReference } from "./types.js";
3
4
  import type { Clonable } from "../core/Clonable.js";
4
5
  import type { JSONSupportMixin } from "../core/JSONSupport.js";
5
6
  import type { PointProperties } from "../geometry/Point.js";
7
+ import type { ElevationInfoProperties } from "../symbols/support/ElevationInfo.js";
6
8
 
7
9
  export interface ViewshedProperties extends Partial<Pick<Viewshed, "farDistance" | "feature" | "heading" | "horizontalFieldOfView" | "tilt" | "verticalFieldOfView">> {
10
+ /**
11
+ * Specifies how the observer is placed on the vertical axis (z). See the [ElevationInfo sample](https://developers.arcgis.com/javascript/latest/sample-code/scene-elevationinfo/)
12
+ * for an example of how this property may be used.
13
+ *
14
+ * > [!WARNING]
15
+ * >
16
+ * > [ElevationInfo.featureExpressionInfo](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/ElevationInfo/#featureExpressionInfo) is not supported when the elevation info is specified for this class.
17
+ * > If the elevation info is not specified, the effective elevation depends on the [observer](https://developers.arcgis.com/javascript/latest/references/core/analysis/Viewshed/#observer) properties.
18
+ *
19
+ * @since 5.1
20
+ */
21
+ elevationInfo?: ElevationInfoProperties | null;
8
22
  /** A [Point](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/) specifying the position the viewshed is calculated from. */
9
23
  observer?: PointProperties | null;
10
24
  }
@@ -57,6 +71,19 @@ export interface ViewshedProperties extends Partial<Pick<Viewshed, "farDistance"
57
71
  */
58
72
  export default class Viewshed extends ViewshedSuperclass {
59
73
  constructor(properties?: ViewshedProperties);
74
+ /**
75
+ * Specifies how the observer is placed on the vertical axis (z). See the [ElevationInfo sample](https://developers.arcgis.com/javascript/latest/sample-code/scene-elevationinfo/)
76
+ * for an example of how this property may be used.
77
+ *
78
+ * > [!WARNING]
79
+ * >
80
+ * > [ElevationInfo.featureExpressionInfo](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/ElevationInfo/#featureExpressionInfo) is not supported when the elevation info is specified for this class.
81
+ * > If the elevation info is not specified, the effective elevation depends on the [observer](https://developers.arcgis.com/javascript/latest/references/core/analysis/Viewshed/#observer) properties.
82
+ *
83
+ * @since 5.1
84
+ */
85
+ get elevationInfo(): ElevationInfo | null | undefined;
86
+ set elevationInfo(value: ElevationInfoProperties | null | undefined);
60
87
  /**
61
88
  * The maximum distance from the observer in which to perform the viewshed analysis (in meters).
62
89
  *
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{featureReferenceEquals as r,featureReferenceProperty as i}from"./featureReferenceUtils.js";import{Clonable as t}from"../core/Clonable.js";import{cyclicalDegrees as o}from"../core/Cyclical.js";import{JSONSupportMixin as s}from"../core/JSONSupport.js";import{equalsMaybe as l}from"../core/maybe.js";import{property as a,cast as n,subclass as p}from"../core/accessorSupport/decorators.js";import{ensureNumber as u}from"../core/accessorSupport/ensureType.js";import d from"../geometry/Point.js";let m=class extends(s(t)){constructor(e){super(e),this.observer=null,this.farDistance=1e3,this.heading=0,this.tilt=90,this.horizontalFieldOfView=45,this.verticalFieldOfView=45,this.feature=null}get valid(){return null!=this.observer&&this.farDistance>0}equals(e){return l(this.observer,e.observer)&&this.farDistance===e.farDistance&&this.heading===e.heading&&this.tilt===e.tilt&&this.horizontalFieldOfView===e.horizontalFieldOfView&&this.verticalFieldOfView===e.verticalFieldOfView&&r(this.feature,e.feature)}};e([a({type:d,json:{write:{isRequired:!0}}})],m.prototype,"observer",void 0),e([a({type:Number,nonNullable:!0,range:{min:0},json:{write:{isRequired:!0}}})],m.prototype,"farDistance",void 0),e([a({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),n(e=>o.normalize(u(e),void 0,!0))],m.prototype,"heading",void 0),e([a({type:Number,nonNullable:!0,range:{min:0,max:180},json:{write:{isRequired:!0}}})],m.prototype,"tilt",void 0),e([a({type:Number,nonNullable:!0,range:{min:0,max:360},json:{write:{isRequired:!0}}})],m.prototype,"horizontalFieldOfView",void 0),e([a({type:Number,nonNullable:!0,range:{min:0,max:180},json:{write:{isRequired:!0}}})],m.prototype,"verticalFieldOfView",void 0),e([a(i)],m.prototype,"feature",void 0),e([a({readOnly:!0,json:{read:!1}})],m.prototype,"valid",null),m=e([p("esri.analysis.Viewshed")],m);export{m as default};
2
+ import{__decorate as e}from"tslib";import{featureReferenceEquals as i,featureReferenceProperty as t}from"./featureReferenceUtils.js";import{Clonable as r}from"../core/Clonable.js";import{cyclicalDegrees as o}from"../core/Cyclical.js";import{JSONSupportMixin as s}from"../core/JSONSupport.js";import{equalsMaybe as l}from"../core/maybe.js";import{property as n,cast as a,subclass as p}from"../core/accessorSupport/decorators.js";import{ensureNumber as u}from"../core/accessorSupport/ensureType.js";import m from"../geometry/Point.js";import d from"../symbols/support/ElevationInfo.js";let f=class extends(s(r)){constructor(e){super(e),this.observer=null,this.farDistance=1e3,this.heading=0,this.tilt=90,this.horizontalFieldOfView=45,this.verticalFieldOfView=45,this.elevationInfo=null,this.feature=null}get valid(){return null!=this.observer&&this.farDistance>0}equals(e){return l(this.observer,e.observer)&&this.farDistance===e.farDistance&&this.heading===e.heading&&this.tilt===e.tilt&&this.horizontalFieldOfView===e.horizontalFieldOfView&&this.verticalFieldOfView===e.verticalFieldOfView&&l(this.elevationInfo,e.elevationInfo)&&i(this.feature,e.feature)}};e([n({type:m,json:{write:{isRequired:!0}}})],f.prototype,"observer",void 0),e([n({type:Number,nonNullable:!0,range:{min:0},json:{write:{isRequired:!0}}})],f.prototype,"farDistance",void 0),e([n({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),a(e=>o.normalize(u(e),void 0,!0))],f.prototype,"heading",void 0),e([n({type:Number,nonNullable:!0,range:{min:0,max:180},json:{write:{isRequired:!0}}})],f.prototype,"tilt",void 0),e([n({type:Number,nonNullable:!0,range:{min:0,max:360},json:{write:{isRequired:!0}}})],f.prototype,"horizontalFieldOfView",void 0),e([n({type:Number,nonNullable:!0,range:{min:0,max:180},json:{write:{isRequired:!0}}})],f.prototype,"verticalFieldOfView",void 0),e([n({type:d})],f.prototype,"elevationInfo",void 0),e([n(t)],f.prototype,"feature",void 0),e([n({readOnly:!0,json:{read:!1}})],f.prototype,"valid",null),f=e([p("esri.analysis.Viewshed")],f);export{f as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"./Analysis.js";import n from"./Viewshed.js";import{equals as r}from"../core/arrayUtils.js";import i from"../core/Collection.js";import{referenceSetter as s,castForReferenceSetter as o}from"../core/collectionUtils.js";import{cyclicalDegrees as l}from"../core/Cyclical.js";import{deg2rad as a,clamp as u}from"../core/mathUtils.js";import{watch as p,syncAndInitial as c}from"../core/reactiveUtils.js";import{property as m,subclass as h}from"../core/accessorSupport/decorators.js";import d from"../geometry/Extent.js";import{projectOrLoadMany as f}from"../geometry/projectionUtils.js";const v=i.ofType(n);let y=class extends t{constructor(e){super(e),this.type="viewshed",this._extent=null}initialize(){this.addHandles(p(()=>this._computeExtent(),e=>{null==e.pending&&(this._extent=e.extent)},c))}get viewsheds(){return this._get("viewsheds")||new v}set viewsheds(e){this._set("viewsheds",s(e,this.viewsheds,v))}get spatialReference(){for(const e of this.viewsheds)if(null!=e.observer)return e.observer.spatialReference;return null}get extent(){return this._extent}get valid(){return this.viewsheds.every(e=>e.valid)}async waitComputeExtent(){const e=this._computeExtent();null!=e.pending&&await e.pending}_computeExtent(){const{spatialReference:e}=this;if(null==e)return{pending:null,extent:null};const t=this.viewsheds.filter(e=>null!=e.observer),n=t.map(e=>e.observer).toArray(),r=f(n,e);if(null!=r.pending)return{pending:r.pending,extent:null};return{pending:null,extent:r.geometries.map((e,n)=>{const r=t.at(n);return null!=e&&null!=r?this._computeViewshedExtent(this.viewsheds.at(n),e):null}).filter(e=>null!=e).reduce((e,t)=>x(e,t),null)}}_computeViewshedExtent(e,t){const{farDistance:n,heading:r,tilt:i,horizontalFieldOfView:s,verticalFieldOfView:o}=e,{spatialReference:p}=t,c=s/2,m=o/2,h=n/p.metersPerUnit,f=[l.normalize(r-c),r,l.normalize(r+c)],v=d.fromPoint(t),y=e=>{const t=f.map(t=>l.normalize(t-e));if(t[0]>t[2]||360===s)return h;const n=t.map(e=>Math.abs(e>180?360-e:e)).reduce((e,t)=>e>t?t:e);return n>90?0:h*Math.cos(a(n))};v.xmax+=y(90),v.xmin-=y(-90),v.ymax+=y(0),v.ymin-=y(180);const x=t.z;if(null!=x){let e=x,t=x;const r=i-90,s=u(r+m,-90,90),o=u(r-m,-90,90),l=p?.isGeographic?n:h;e+=l*g(s),t+=l*g(o);const a=w(m)*l,d=g(r)*a*(1-w(c));i<90&&(e-=d),i>90&&(t-=d),v.zmax=Math.max(e,x),v.zmin=Math.min(t,x)}return v}equals(e){return this===e||super.equals(e)&&r(this.viewsheds.toArray(),e.viewsheds.toArray(),(e,t)=>e.equals(t))}clear(){this.viewsheds.removeAll()}};function x(e,t){return null==e?t:null==t?e:e.union(t)}function w(e){return Math.cos(a(e))}function g(e){return Math.sin(a(e))}e([m({type:["viewshed"]})],y.prototype,"type",void 0),e([m({cast:o,type:v,nonNullable:!0})],y.prototype,"viewsheds",null),e([m({readOnly:!0})],y.prototype,"spatialReference",null),e([m()],y.prototype,"_extent",void 0),e([m()],y.prototype,"extent",null),e([m({readOnly:!0})],y.prototype,"valid",null),y=e([h("esri.analysis.ViewshedAnalysis")],y);export{y as default};
2
+ import{__decorate as e}from"tslib";import t from"./Analysis.js";import n from"./Viewshed.js";import{equals as r}from"../core/arrayUtils.js";import i from"../core/Collection.js";import{referenceSetter as s,castForReferenceSetter as o}from"../core/collectionUtils.js";import{cyclicalDegrees as l}from"../core/Cyclical.js";import{deg2rad as a,clamp as u}from"../core/mathUtils.js";import{watch as p,syncAndInitial as c}from"../core/reactiveUtils.js";import{property as m,subclass as h}from"../core/accessorSupport/decorators.js";import d from"../geometry/Extent.js";import{projectOrLoadMany as f}from"../geometry/projectionUtils.js";import{getGeometryEffectiveElevationMode as v}from"../support/elevationInfoUtils.js";const y=i.ofType(n);let x=class extends t{constructor(e){super(e),this.type="viewshed",this._extent=null}initialize(){this.addHandles(p(()=>this._computeExtent(),e=>{null==e.pending&&(this._extent=e.extent)},c))}get viewsheds(){return this._get("viewsheds")||new y}set viewsheds(e){this._set("viewsheds",s(e,this.viewsheds,y))}get spatialReference(){for(const e of this.viewsheds)if(null!=e.observer)return e.observer.spatialReference;return null}get extent(){return this._extent}get valid(){return this.viewsheds.every(e=>e.valid)}async waitComputeExtent(){const e=this._computeExtent();null!=e.pending&&await e.pending}_computeExtent(){const{spatialReference:e}=this;if(null==e)return{pending:null,extent:null};const t=this.viewsheds.filter(e=>null!=e.observer),n=t.map(e=>e.observer).toArray(),r=f(n,e);if(null!=r.pending)return{pending:r.pending,extent:null};const i=r.geometries.map((e,n)=>{const r=t.at(n);return null!=e&&null!=r?this._computeViewshedExtent(this.viewsheds.at(n),e):null}).filter(e=>null!=e).reduce((e,t)=>g(e,t),null);return null!=i&&t.some(e=>!w(e))&&(i.zmin=void 0,i.zmax=void 0),{pending:null,extent:i}}_computeViewshedExtent(e,t){const{farDistance:n,heading:r,tilt:i,horizontalFieldOfView:s,verticalFieldOfView:o}=e,{spatialReference:p}=t,c=s/2,m=o/2,h=n/p.metersPerUnit,f=[l.normalize(r-c),r,l.normalize(r+c)],v=d.fromPoint(t),y=e=>{const t=f.map(t=>l.normalize(t-e));if(t[0]>t[2]||360===s)return h;const n=t.map(e=>Math.abs(e>180?360-e:e)).reduce((e,t)=>e>t?t:e);return n>90?0:h*Math.cos(a(n))};v.xmax+=y(90),v.xmin-=y(-90),v.ymax+=y(0),v.ymin-=y(180);const x=t.z;if(null!=x){let e=x,t=x;const r=i-90,s=u(r+m,-90,90),o=u(r-m,-90,90),l=p?.isGeographic?n:h;e+=l*_(s),t+=l*_(o);const a=j(m)*l,d=_(r)*a*(1-j(c));i<90&&(e-=d),i>90&&(t-=d),v.zmax=Math.max(e,x),v.zmin=Math.min(t,x)}return v}equals(e){return this===e||super.equals(e)&&r(this.viewsheds.toArray(),e.viewsheds.toArray(),(e,t)=>e.equals(t))}clear(){this.viewsheds.removeAll()}};function w(e){return"absolute-height"===v(e.observer,e.elevationInfo)}function g(e,t){return null==e?t:null==t?e:e.union(t)}function j(e){return Math.cos(a(e))}function _(e){return Math.sin(a(e))}e([m({type:["viewshed"]})],x.prototype,"type",void 0),e([m({cast:o,type:y,nonNullable:!0})],x.prototype,"viewsheds",null),e([m({readOnly:!0})],x.prototype,"spatialReference",null),e([m()],x.prototype,"_extent",void 0),e([m()],x.prototype,"extent",null),e([m({readOnly:!0})],x.prototype,"valid",null),x=e([h("esri.analysis.ViewshedAnalysis")],x);export{x as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{isPromiseLike as t}from"../core/promiseUtils.js";class r{constructor(){}}function n(t,n,e){if(t instanceof r&&!(t instanceof s)){const r=new s;return r.fn=t,r.parameterEvaluator=e,r.context=n,r}return t}class e extends r{constructor(t){super(),this.fn=t}createFunction(t){return(...r)=>this.fn(t,{preparsed:!0,arguments:r})}call(t,r){return this.fn(t,r)}marshalledCall(e,a,l,c){return c(e,a,(a,o,i)=>{i=i.map(t=>t instanceof r&&!(t instanceof s)?n(t,e,c):t);const u=this.call(l,{args:i});return t(u)?u.then(t=>n(t,l,c)):u})}}class s extends r{constructor(){super(...arguments),this.fn=null,this.context=null}createFunction(t){return this.fn.createFunction(this.context)}call(t,r){return this.fn.marshalledCall(t,r,this.context,this.parameterEvaluator)}marshalledCall(t,r,n){return this.fn.marshalledCall(t,r,this.context,this.parameterEvaluator)}}export{r as ArcadeFunction,e as NativeFunction,s as ScopeMarshalledFunction,n as wrapModuleScopedResponse};
2
+ import{isPromiseLike as t}from"../core/promiseUtils.js";class e{constructor(){}}function n(t,n,r){if(t instanceof e&&!(t instanceof a)){const e=new a;return e.fn=t,e.parameterEvaluator=r,e.context=n,e}return t}class r extends e{constructor(t,e){super(),this._name=e,this.fn=t}get debugName(){return null!=this._name?`<native>.${this._name}`:"<native>"}createFunction(t){return(...e)=>this.fn(t,{preparsed:!0,arguments:e})}call(t,e){return this.fn(t,e)}marshalledCall(r,s,l,i){return i(r,s,(s,u,c)=>{c=c.map(t=>t instanceof e&&!(t instanceof a)?n(t,r,i):t);const o=this.call(l,{args:c});return t(o)?o.then(t=>n(t,l,i)):o})}}class a extends e{constructor(){super(...arguments),this.fn=null,this.context=null}get debugName(){return null!=this.fn.debugName?`<imported>.${this.fn.debugName}`:null}createFunction(t){return this.fn.createFunction(this.context)}call(t,e){return this.fn.marshalledCall(t,e,this.context,this.parameterEvaluator)}marshalledCall(t,e,n){return this.fn.marshalledCall(t,e,this.context,this.parameterEvaluator)}}export{e as ArcadeFunction,r as NativeFunction,a as ScopeMarshalledFunction,n as wrapModuleScopedResponse};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{toSymbolId as e,neverAbortedSignal as t}from"./arcadeEnvironment.js";import{ArcadeModule as n}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{collectDeclaredGlobalNames as o,flattenAccessChain as a,collectDeclaredLocalNames as i}from"./compilerUtils.js";import{getNestedOptionalValue as s,getGeometryKeys as c,tryGetMember as l,getMember as u,getGeometryMember as f}from"./containerUtils.js";import p from"./Dictionary.js";import{ArcadeExecutionError as w,ensureArcadeExecutionError as d}from"./executionError.js";import{Feature as h}from"./Feature.js";import{NativeFunction as m,ScopeMarshalledFunction as g,ArcadeFunction as y,wrapModuleScopedResponse as b}from"./FunctionWrapper.js";import{R as v,I as x,q as S,i as k,z as F,A as j,v as O,B as R,r as I,s as C,u as E,w as M,x as A,k as N,j as B,y as U,m as G,h as L}from"../chunks/languageUtils.js";import{addFunctionDeclaration as z}from"./treeAnalysis.js";import{A as D}from"../chunks/aiServices.js";import{A as _}from"../chunks/array.js";import{registerFunctions as Z}from"./functions/date.js";import{registerFunctions as q}from"./functions/feature.js";import{registerFunctions as P}from"./functions/geomasync.js";import{registerFunctions as W}from"./functions/geometry.js";import{registerFunctions as V}from"./functions/maths.js";import{registerFunctions as K}from"./functions/stats.js";import{registerFunctions as T}from"./functions/string.js";import{registerFunctions as Y}from"./functions/track.js";import $ from"../core/Logger.js";import H from"../geometry/SpatialReference.js";import{isGraphic as J}from"../support/graphicInstanceUtils.js";import{isBoolean as Q,isString as X,isArray as ee,isNumber as te}from"../support/guards.js";const ne=()=>$.getLogger("esri.arcade.arcadeAsyncRuntime"),re=Symbol("uninitialized");function oe(e){if(e===re)throw new w(null,"InvalidIdentifier",null)}function ae(e){return oe(e),e}function ie(t,n){const r=e(n);if(null!==t.localScope){const e=t.localScope[r];if(void 0!==e)return{scope:t.localScope,id:r,var:e}}const o=t.globalScope[r];if(void 0!==o)return{scope:t.globalScope,id:r,var:o};throw new w(t,"InvalidIdentifier",n)}function se(t,n,r="InvalidIdentifier"){const o=e(n);if(null!==t.localScope){const e=t.localScope[o];if(void 0!==e)return oe(e),e.value}const a=t.globalScope[o];if(void 0!==a)return oe(a),a.value;throw new w(t,r,n)}const ce=function(){};async function le(e,t){const n=[];for(let r=0;r<t.arguments.length;r++)n.push(await he(e,t.arguments[r]));return n}async function ue(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await le(e,t))}ce.prototype=Object.freeze(Object.create(null));class fe extends y{constructor(e,t,n,r){super(),this.definition=e,this.context=t,this._params=n,this._locals=r}createFunction(e){return(...t)=>{const n={spatialReference:this.context.spatialReference,console:this.context.console,lrucache:this.context.lrucache,timeZone:this.context.timeZone??null,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,services:this.context.services,abortSignal:this.context.abortSignal,localScope:new ce,depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope,track:this.context.track};if(n.depthCounter.depth>64)throw new w(e,"MaximumCallDepth",null);return pe(n,this.definition.body,this._params,this._locals,t,null)}}call(e,t){return de(e,t,(n,r,o)=>{const a={spatialReference:e.spatialReference,services:e.services,console:e.console,libraryResolver:e.libraryResolver,exports:e.exports,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,localScope:new ce,abortSignal:e.abortSignal,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},track:e.track};if(a.depthCounter.depth>64)throw new w(e,"MaximumCallDepth",t);return pe(a,this.definition.body,this._params,this._locals,o,t)})}marshalledCall(e,t,n,r){return r(e,t,async(o,a,i)=>{const s={spatialReference:e.spatialReference,services:e.services,globalScope:n.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,abortSignal:e.abortSignal,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,localScope:new ce,track:e.track};return i=i.map(t=>!k(t)||t instanceof g?t:b(t,e,r)),b(await pe(s,this.definition.body,this._params,this._locals,i,t),n,r)})}}async function pe(e,t,n,r,o,a){if(n.length!==o.length)throw new w(e,"WrongNumberOfParameters",a);if(null!=e.localScope){for(let t=0;t<n.length;t++)e.localScope[n[t]]={value:o[t]};for(const t of r)e.localScope[t]=re}const i=await me(e,t);if(i instanceof v)return i.value;if(i===F)throw new w(e,"UnexpectedToken",a);if(i===j)throw new w(e,"UnexpectedToken",a);return i instanceof x?i.value:i}class we extends n{constructor(e){super(),this.moduleGlobalContext=e}global(t){const n=e(t);if(!this.moduleGlobalContext.exports.has(n))throw new w(null,"ModuleExportNotFound",null);const r=this.moduleGlobalContext.globalScope[n];if(oe(r),k(r.value)&&!(r.value instanceof g)){const e=new g;return e.fn=r.value,e.parameterEvaluator=ue,e.context=this.moduleGlobalContext,this.moduleGlobalContext.globalScope[n]={value:e},e}return r.value}setGlobal(t,n){if(k(n))throw new w(null,"AssignModuleFunction",null);const r=e(t);if(!this.moduleGlobalContext.exports.has(r))throw new w(null,"ModuleExportNotFound",null);this.moduleGlobalContext.globalScope[r]={value:n}}hasGlobal(t){return this.moduleGlobalContext.exports.has(e(t))}static async load(e,n){const{globals:a,exports:i}=o(n),s=new it;for(const t of a)t in s||(s[t]=re);const c=e.spatialReference??H.WebMercator,l={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??ct,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:c,track:null,depthCounter:{depth:1},libraryResolver:new r(e.libraryResolver._moduleSingletons,n.loadedModules),exports:i,localScope:null,globalScope:s};return await Ae(l,n),new we(l)}}async function de(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await le(e,t))}async function he(e,t){t.breakpoint&&await t.breakpoint();try{switch(t.type){case"UpdateExpression":return await Re(e,t);case"AssignmentExpression":return await Ce(e,t);case"TemplateLiteral":return await Qe(e,t);case"Identifier":return $e(e,t);case"MemberExpression":return await _e(e,t);case"Literal":return t.value;case"CallExpression":return await He(e,t);case"UnaryExpression":return await Ve(e,t);case"BinaryExpression":return await Te(e,t);case"LogicalExpression":return await Ye(e,t);case"ArrayExpression":return await Ke(e,t);case"ObjectExpression":return await ge(e,t);case"MemberAccessChainExpression":return await We(e,t);case"SafeMemberExpression":throw ne().error("SafeMemberExpression outside of MemberAccessChainExpression"),new w(null,"Unrecognized",t);default:throw new w(e,"Unrecognized",t)}}catch(n){throw d(e,t,n)}}async function me(e,t){t.breakpoint&&await t.breakpoint();try{switch(t.type){case"ImportDeclaration":return await Ge(e,t);case"ExportNamedDeclaration":return await Le(e,t);case"VariableDeclaration":return await ze(e,t);case"BlockStatement":return await Ae(e,t);case"FunctionDeclaration":return await Ue(e,t);case"ReturnStatement":return await Be(e,t);case"IfStatement":return await Me(e,t);case"ExpressionStatement":return await Ee(e,t);case"ForStatement":return await be(e,t);case"WhileStatement":return await ye(e,t);case"ForInStatement":return await je(e,t);case"ForOfStatement":return await Oe(e,t);case"BreakStatement":return F;case"EmptyStatement":return O;case"ContinueStatement":return j;default:throw new w(e,"Unrecognized",t)}}catch(n){throw d(e,t,n)}}async function ge(e,t){const n=[];for(let i=0;i<t.properties.length;i++){const r=t.properties[i],o=await he(e,r.value),a="Identifier"===r.key.type?r.key.name:await he(e,r.key);n[i]={key:a,value:o}}const r=Object.create(null),o=new Map;for(let i=0;i<n.length;i++){const a=n[i];if(k(a.value))throw new w(e,"NoFunctionInDictionary",t);if(!1===X(a.key))throw new w(e,"KeyMustBeString",t);let s=a.key.toString();const c=s.toLowerCase();o.has(c)?s=o.get(c):o.set(c,s),a.value===O?r[s]=null:r[s]=a.value}const a=new p(r);return a.immutable=!1,a}async function ye(e,t){let n=await he(e,t.test);if(!1===n)return O;if(!0!==n)throw new w(e,"BooleanConditionRequired",t);for(;!0===n;){const r=await me(e,t.body);if(r===F)break;if(r instanceof v)return r;if(n=await he(e,t.test),!0!==n&&!1!==n)throw new w(e,"BooleanConditionRequired",t)}return O}async function be(e,t){try{for(null!==t.init&&("VariableDeclaration"===t.init.type?await me(e,t.init):await he(e,t.init));;){if(null!==t.test){const n=await he(e,t.test);if(!0===e.abortSignal?.aborted)throw new w(e,"Cancelled",t);if(!1===n)break;if(!0!==n)throw new w(e,"BooleanConditionRequired",t)}const n=await me(e,t.body);if(n===F)break;if(n instanceof v)return n;null!==t.update&&await he(e,t.update)}return O}catch(n){throw n}}async function ve(e,t,n,r,o="i"){const a=n.length;for(let i=0;i<a;i++){if("k"===o){if(i>=n.length)throw new w(e,"OutOfBounds",t);r.scope[r.id]={value:n[i]}}else r.scope[r.id]={value:i};const a=await me(e,t.body);if(a===F)break;if(a instanceof v)return a}return O}async function xe(e,t,n,r,o="i"){const a=n.length();for(let i=0;i<a;i++){r.scope[r.id]="k"===o?{value:n.get(i)}:{value:i};const a=await me(e,t.body);if(a===F)break;if(a instanceof v)return a}return O}async function Se(e,t,n,r){e:for await(const o of await n.queryAll(e.abortSignal))for(const a of o){r.scope[r.id]={value:h.createFromGraphicLikeObject(a.geometry,a.attributes,n,e.timeZone)};const o=await me(e,t.body);if(o===F)break e;if(o instanceof v)return o}return O}async function ke(e,t,n,r){for(const o of n.keys()){const a=n.field(o);r.scope[r.id]={value:p.containerEntry(o,a)};const i=await me(e,t.body);if(i===F)break;if(i instanceof v)return i}return O}async function Fe(e,t,n,r){for(const o of c(n)){const a=f(n,o,e,t);r.scope[r.id]={value:p.containerEntry(o,a)};const i=await me(e,t.body);if(i===F)break;if(i instanceof v)return i}return O}async function je(e,t){const n=await he(e,t.right);"VariableDeclaration"===t.left.type&&await me(e,t.left);const r=ie(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);return ee(n)||X(n)?await ve(e,t,n,r):B(n)?await xe(e,t,n,r):n instanceof p||U(n)?await ve(e,t,n.keys(),r,"k"):G(n)?await Se(e,t,n,r):L(n)?await ve(e,t,c(n),r,"k"):O}async function Oe(e,t){const n=await he(e,t.right);"VariableDeclaration"===t.left.type&&await me(e,t.left);const r=ie(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);return ee(n)||X(n)?await ve(e,t,n,r,"k"):B(n)?await xe(e,t,n,r,"k"):n instanceof p||U(n)?await ke(e,t,n,r):G(n)?await Se(e,t,n,r):L(n)?await Fe(e,t,n,r):O}async function Re(e,t){const n=t.argument;if("CallExpression"===n.type)throw new w(e,"NeverReach",t);if("MemberExpression"===n.type){const r=await he(e,n.object);let o,a;if(!0===n.computed)o=await he(e,n.property);else{if("Identifier"!==n.property.type)throw new w(e,"Unrecognized",t);o=n.property.name}if(ee(r)){if(!te(o))throw new w(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=r.length+o),o<0||o>=r.length)throw new w(e,"OutOfBounds",t);a=I(r[o]),r[o]="++"===t.operator?a+1:a-1}else if(r instanceof p){if(!1===X(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0!==r.hasField(o))throw new w(e,"FieldNotFound",t,{key:o});a=I(r.field(o)),r.setField(o,"++"===t.operator?a+1:a-1)}else if(r instanceof we){if(!1===X(o))throw new w(e,"ModuleAccessorMustBeString",t);if(!0!==r.hasGlobal(o))throw new w(e,"ModuleExportNotFound",t);a=I(r.global(o)),r.setGlobal(o,"++"===t.operator?a+1:a-1)}else{if(!N(r))throw B(r)?new w(e,"Immutable",t):new w(e,"InvalidParameter",t);if(!1===X(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0!==r.hasField(o))throw new w(e,"FieldNotFound",t,{key:o});a=I(r.field(o)),r.setField(o,"++"===t.operator?a+1:a-1)}return!1===t.prefix?a:"++"===t.operator?a+1:a-1}const r=ie(e,n),o=I(ae(r.var).value),a="++"===t.operator?o+1:o-1;return r.scope[r.id]={value:a},!1===t.prefix?o:"++"===t.operator?o+1:o-1}function Ie(e,t,n,r,o){switch(t){case"=":return e===O?null:e;case"/=":return I(n)/I(e);case"*=":return I(n)*I(e);case"-=":return I(n)-I(e);case"+=":return X(n)||X(e)?C(n)+C(e):I(n)+I(e);case"%=":return I(n)%I(e);default:throw new w(o,"UnsupportedOperator",r)}}async function Ce(e,t){const n=t.left;if("MemberExpression"===n.type){const r=await he(e,n.object);let o;if(!0===n.computed)o=await he(e,n.property);else{if("Identifier"!==n.property.type)throw new w(e,"InvalidIdentifier",t);o=n.property.name}const a=await he(e,t.right);if(ee(r)){if(!te(o))throw new w(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=r.length+o),o<0||o>r.length)throw new w(e,"OutOfBounds",t);if(o===r.length){if("="!==t.operator)throw new w(e,"OutOfBounds",t);r[o]=Ie(a,t.operator,r[o],t,e)}else r[o]=Ie(a,t.operator,r[o],t,e)}else if(r instanceof p){if(!1===X(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(o))r.setField(o,Ie(a,t.operator,r.field(o),t,e));else{if("="!==t.operator)throw new w(e,"FieldNotFound",t,{key:o});r.setField(o,Ie(a,t.operator,null,t,e))}}else if(r instanceof we){if(!1===X(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0!==r.hasGlobal(o))throw new w(e,"ModuleExportNotFound",t);r.setGlobal(o,Ie(a,t.operator,r.global(o),t,e))}else{if(!N(r))throw B(r)?new w(e,"Immutable",t):new w(e,"InvalidParameter",t);if(!1===X(o))throw new w(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(o))r.setField(o,Ie(a,t.operator,r.field(o),t,e));else{if("="!==t.operator)throw new w(e,"FieldNotFound",t,{key:o});r.setField(o,Ie(a,t.operator,null,t,e))}}return O}const r=ie(e,n),o=await he(e,t.right);return r.scope[r.id]={value:Ie(o,t.operator,"="!==t.operator?ae(r.var).value:null,t,e)},O}async function Ee(e,t){const n=await he(e,t.expression);return n===O?O:new x(n)}async function Me(e,t){const n=await he(e,t.test);if(!0===n)return me(e,t.consequent);if(!1===n)return null!==t.alternate?me(e,t.alternate):O;throw new w(e,"BooleanConditionRequired",t)}async function Ae(e,t){return Ne(e,t,0)}async function Ne(e,t,n){if(n>=t.body.length)return O;const r=await me(e,t.body[n]);return r instanceof v||r===F||r===j||n===t.body.length-1?r:Ne(e,t,n+1)}async function Be(e,t){if(null===t.argument)return new v(O);const n=await he(e,t.argument);return new v(n)}async function Ue(t,n){if(null!=t.localScope)throw ne().error("Function declarations are only valid in global scope."),new w(t,"NeverReach",n);const r=e(n.id);if(!(r in t.globalScope))throw ne().error(`Function "${r}" not declared.`),new w(t,"NeverReach",n);const o=i(n),a=n.params.map(t=>e(t)),s=Array.from(o).filter(e=>!a.includes(e));return t.globalScope[r]={value:new fe(n,t,a,s)},O}async function Ge(e,t){const n=ie(e,t.specifiers[0].local),r=e.libraryResolver;if(null==r)throw ne().error("Internal error: module loader not initialized"),new w(e,"NeverReach",t);const o=r.loadLibrary(n.id);let a;return r._moduleSingletons?.has(o.uri)?a=r._moduleSingletons.get(o.uri):(a=await we.load(e,o.syntax),r._moduleSingletons?.set(o.uri,a)),n.scope[n.id]={value:a},O}async function Le(e,t){return await me(e,t.declaration),O}async function ze(e,t){for(const n of t.declarations)await De(e,n);return O}async function De(e,t){let n=null;n=null===t.init?null:await he(e,t.init),n===O&&(n=null);const r=ie(e,t.id);r.scope[r.id]={value:n}}async function _e(e,t){return Ze(e,await he(e,t.object),t)}async function Ze(e,t,n){const r=n.computed?await he(e,n.property):n.property.name;return u(t,r)}async function qe(e,t,n){for(const r of n)switch(r.type){case"MemberExpression":t=await Ze(e,t,r);break;case"CallExpression":t=await Je(e,t,r);break;default:throw new w(null,"Unrecognized",r)}return t}async function Pe(e,t,n){const r=n.computed?await he(e,n.property):n.property.name;return l(t,r)}async function We(e,t){const n=a(t);let r=await he(e,n.root);for(const o of n.sections){const t=await Pe(e,r,o.checked);if(null==t)return null;r=await qe(e,t,o.unchecked)}return r}async function Ve(e,t){const n=await he(e,t.argument);if(Q(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*I(n);if("+"===t.operator)return 1*I(n);if("~"===t.operator)return~I(n);throw new w(e,"UnsupportUnaryOperator",t)}if("-"===t.operator)return-1*I(n);if("+"===t.operator)return 1*I(n);if("~"===t.operator)return~I(n);throw new w(e,"UnsupportUnaryOperator",t)}async function Ke(e,t){const n=[];for(let r=0;r<t.elements.length;r++)n.push(await he(e,t.elements[r]));for(let r=0;r<n.length;r++){if(k(n[r]))throw new w(e,"NoFunctionInArray",t);n[r]===O&&(n[r]=null)}return n}async function Te(e,t){const n=await he(e,t.left),r=await he(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return A(I(n),I(r),t.operator);case"==":return M(n,r);case"!=":return!M(n,r);case"<":case">":case"<=":case">=":return E(n,r,t.operator);case"+":return X(n)||X(r)?C(n)+C(r):I(n)+I(r);case"-":return I(n)-I(r);case"*":return I(n)*I(r);case"/":return I(n)/I(r);case"%":return I(n)%I(r);default:throw t.operator,new w(e,"UnsupportedOperator",t)}}async function Ye(e,t){const n=await he(e,t.left);if(!Q(n))throw new w(e,"LogicalExpressionOnlyBoolean",t);switch(t.operator){case"||":{if(!0===n)return n;const r=await he(e,t.right);if(Q(r))return r;throw new w(e,"LogicExpressionOrAnd",t)}case"&&":{if(!1===n)return n;const r=await he(e,t.right);if(Q(r))return r;throw new w(e,"LogicExpressionOrAnd",t)}default:throw t.operator,new w(e,"LogicExpressionOrAnd",t)}}function $e(e,t){return se(e,t)}async function He(e,t){return Je(e,"Identifier"===t.callee.type?se(e,t.callee,"FunctionNotFound"):await he(e,t.callee),t)}async function Je(e,t,n){if(k(t))return t.call(e,n);throw new w(e,"CallNonFunction",n)}async function Qe(e,t){let n="",r=0;for(const o of t.quasis)if(n+=o.value?o.value.cooked:"",!1===o.tail){if(t.expressions[r]){const o=await he(e,t.expressions[r]);if(k(o))throw new w(e,"NoFunctionInTemplateLiteral",t);n+=C(o)}r++}return n}async function Xe(e,t){R(null===t.arguments?[]:t.arguments,3,3,e,t);const n=await he(e,t.arguments[0]);if(!1===Q(n))throw new w(e,"BooleanConditionRequired",t);return he(e,n?t.arguments[1]:t.arguments[2])}async function et(e,t){R(null===t.arguments?[]:t.arguments,2,3,e,t);const n=await he(e,t.arguments[0]);if(3===t.arguments.length){const r=await he(e,t.arguments[1]),o=s(n,r);return null!=o&&""!==o?o:he(e,t.arguments[2])}return null==n||""===n?he(e,t.arguments[1]):n}async function tt(e,t){if(t.arguments.length<2)throw new w(e,"WrongNumberOfParameters",t);if(2===t.arguments.length)return he(e,t.arguments[1]);if((t.arguments.length-1)%2==0)throw new w(e,"WrongNumberOfParameters",t);return nt(e,t,1,await he(e,t.arguments[0]))}async function nt(e,t,n,r){const o=await he(e,t.arguments[n]);if(M(o,r))return he(e,t.arguments[n+1]);const a=t.arguments.length-n;return 1===a?he(e,t.arguments[n]):2===a?null:3===a?he(e,t.arguments[n+2]):nt(e,t,n+2,r)}async function rt(e,t){if(t.arguments.length<3)throw new w(e,"WrongNumberOfParameters",t);if(t.arguments.length%2==0)throw new w(e,"WrongNumberOfParameters",t);const n=await he(e,t.arguments[0]);if(!1===Q(n))throw new w(e,"BooleanConditionRequired",t.arguments[0]);return ot(e,t,0,n)}async function ot(e,t,n,r){if(!0===r)return he(e,t.arguments[n+1]);if(3===t.arguments.length-n)return he(e,t.arguments[n+2]);const o=await he(e,t.arguments[n+2]);if(!1===Q(o))throw new w(e,"ModuleExportNotFound",t.arguments[n+2]);return ot(e,t,n+2,o)}function at(){const e=Object.create(null);Z(e,ue),T(e,ue),q(e,ue,$e),V(e,ue),W(e,ue),K(e,ue),Y(e,ue),P({functions:e,compiled:!1,signatures:null,evaluateIdentifier:null,mode:"async",standardFunction:ue,standardFunctionAsync:de}),e.iif=Xe,e.defaultvalue=et,e.decode=tt,e.when=rt;const t=function(){this.textformatting={value:p.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[n,r]of Object.entries(e))t.prototype[n]=Object.freeze({value:new m(r)});return t}const it=at();function st(e){const t={mode:"async",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:ue,standardFunctionAsync:de,evaluateIdentifier:$e};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const[n,r]of Object.entries(t.functions))it.prototype[n]=Object.freeze({value:new m(r)});for(let n=0;n<t.signatures.length;n++)z(t.signatures[n],"async")}function ct(e){console.log(e)}function lt(n,a){const i=new Set(Object.keys(a?.vars||{}).map(t=>e(t))),s=new Set(Object.keys(a?.customfunctions||{}).map(t=>e(t))),{globals:c,exports:l}=o(n);return async e=>{const o=e.spatialReference??H.WebMercator;let a=null;n.usesModules&&(a=new r(new Map,n.loadedModules));const u=new it;for(const t of s)null!=e.customfunctions&&t in e.customfunctions?u[t]={value:new m(e.customfunctions[t])}:u[t]=re;for(const t of i){if(null==e.vars||!(t in e.vars)){t in u||(u[t]=re);continue}const n=e.vars[t]??null;J(n)?u[t]={value:h.createFromGraphic(n,e.timeZone??null)}:u[t]={value:n}}for(const t of c)t in u||(u[t]=re);const f={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??ct,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:o,track:e.track,depthCounter:{depth:1},libraryResolver:a,exports:l,localScope:null,globalScope:u},p=await Ae(f,n);if(p instanceof v||p instanceof x){const e=p.value;if(S(e))return null;if(k(e))throw new w(f,"IllegalResult",null);return e}if(S(p))return null;if(p===F)throw new w(f,"IllegalResult",null);if(p===j)throw new w(f,"IllegalResult",null);throw new w(f,"NeverReach",null)}}function ut(e,t){return lt(e,t)(t)}st([_]),st([D]);export{ut as executeScript,st as extend,lt as prepareScript};
2
+ import{toSymbolId as e,neverAbortedSignal as t}from"./arcadeEnvironment.js";import{ArcadeModule as n}from"./ArcadeModule.js";import{ArcadeModuleLoader as r}from"./ArcadeModuleLoader.js";import{resolveBreakpoints as o,collectDeclaredGlobalNames as a,flattenAccessChain as i,collectDeclaredLocalNames as s}from"./compilerUtils.js";import{getNestedOptionalValue as c,getGeometryKeys as l,tryGetMember as u,getMember as f,getGeometryMember as p}from"./containerUtils.js";import{wrapDebugValue as w,renderFunctionDebugName as d}from"./debug.js";import m from"./Dictionary.js";import{ArcadeExecutionError as h,ensureArcadeExecutionError as g}from"./executionError.js";import{Feature as y}from"./Feature.js";import{NativeFunction as b,ScopeMarshalledFunction as v,ArcadeFunction as x,wrapModuleScopedResponse as S}from"./FunctionWrapper.js";import{R as k,I as F,q as j,i as O,z as R,A as I,v as M,B as C,r as E,s as N,u as A,w as B,x as U,k as G,j as L,y as Z,m as z,h as D}from"../chunks/languageUtils.js";import{addFunctionDeclaration as _}from"./treeAnalysis.js";import{A as q}from"../chunks/aiServices.js";import{A as P}from"../chunks/array.js";import{registerFunctions as W}from"./functions/date.js";import{registerFunctions as T}from"./functions/feature.js";import{registerFunctions as V}from"./functions/geomasync.js";import{registerFunctions as K}from"./functions/geometry.js";import{registerFunctions as $}from"./functions/maths.js";import{registerFunctions as Y}from"./functions/stats.js";import{registerFunctions as H}from"./functions/string.js";import{registerFunctions as J}from"./functions/track.js";import Q from"../core/Logger.js";import X from"../geometry/SpatialReference.js";import{isGraphic as ee}from"../support/graphicInstanceUtils.js";import{isBoolean as te,isString as ne,isArray as re,isNumber as oe}from"../support/guards.js";const ae=()=>Q.getLogger("esri.arcade.arcadeAsyncRuntime"),ie=Symbol("uninitialized");function se(e){if(e===ie)throw new h(null,"InvalidIdentifier",null)}function ce(e){return se(e),e}function le(t,n){const r=e(n);if(null!==t.localScope){const e=t.localScope[r];if(void 0!==e)return{scope:t.localScope,id:r,var:e}}const o=t.globalScope[r];if(void 0!==o)return{scope:t.globalScope,id:r,var:o};throw new h(t,"InvalidIdentifier",n)}function ue(t,n,r="InvalidIdentifier"){const o=e(n);if(null!==t.localScope){const e=t.localScope[o];if(void 0!==e)return se(e),e.value}const a=t.globalScope[o];if(void 0!==a)return se(a),a.value;throw new h(t,r,n)}const fe=function(){};async function pe(e,t){const n=[];for(let r=0;r<t.arguments.length;r++)n.push(await xe(e,t.arguments[r]));return n}async function we(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await pe(e,t))}fe.prototype=Object.freeze(Object.create(null));class de extends x{constructor(e,t,n,r){super(),this.definition=e,this.context=t,this._params=n,this._locals=r}get debugName(){return this.definition.id.name}createFunction(e){return(...t)=>{const n={spatialReference:this.context.spatialReference,console:this.context.console,lrucache:this.context.lrucache,timeZone:this.context.timeZone??null,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,services:this.context.services,abortSignal:this.context.abortSignal,localScope:new fe,depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope,track:this.context.track};if(n.depthCounter.depth>64)throw new h(e,"MaximumCallDepth",null);return me(n,this.definition.body,this._params,this._locals,t,null)}}call(e,t){return ge(e,t,(n,r,o)=>{const a={spatialReference:e.spatialReference,services:e.services,console:e.console,libraryResolver:e.libraryResolver,exports:e.exports,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,localScope:new fe,abortSignal:e.abortSignal,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},track:e.track};if(a.depthCounter.depth>64)throw new h(e,"MaximumCallDepth",t);return me(a,this.definition.body,this._params,this._locals,o,t)})}marshalledCall(e,t,n,r){return r(e,t,async(o,a,i)=>{const s={spatialReference:e.spatialReference,services:e.services,globalScope:n.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,abortSignal:e.abortSignal,lrucache:e.lrucache,timeZone:e.timeZone??null,interceptor:e.interceptor,localScope:new fe,track:e.track};return i=i.map(t=>!O(t)||t instanceof v?t:S(t,e,r)),S(await me(s,this.definition.body,this._params,this._locals,i,t),n,r)})}}async function me(e,t,n,r,o,a){if(n.length!==o.length)throw new h(e,"WrongNumberOfParameters",a);if(null!=e.localScope){for(let t=0;t<n.length;t++)e.localScope[n[t]]={value:o[t]};for(const t of r)e.localScope[t]=ie}const i=await Se(e,t);if(i instanceof k)return i.value;if(i===R)throw new h(e,"UnexpectedToken",a);if(i===I)throw new h(e,"UnexpectedToken",a);return i instanceof F?i.value:i}class he extends n{constructor(e){super(),this.moduleGlobalContext=e}global(t){const n=e(t);if(!this.moduleGlobalContext.exports.has(n))throw new h(null,"ModuleExportNotFound",null);const r=this.moduleGlobalContext.globalScope[n];if(se(r),O(r.value)&&!(r.value instanceof v)){const e=new v;return e.fn=r.value,e.parameterEvaluator=we,e.context=this.moduleGlobalContext,this.moduleGlobalContext.globalScope[n]={value:e},e}return r.value}setGlobal(t,n){if(O(n))throw new h(null,"AssignModuleFunction",null);const r=e(t);if(!this.moduleGlobalContext.exports.has(r))throw new h(null,"ModuleExportNotFound",null);this.moduleGlobalContext.globalScope[r]={value:n}}hasGlobal(t){return this.moduleGlobalContext.exports.has(e(t))}static async load(e,n){const{globals:o,exports:i}=a(n),s=new pt;for(const t of o)t in s||(s[t]=ie);const c=e.spatialReference??X.WebMercator,l={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??dt,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:c,track:null,depthCounter:{depth:1},libraryResolver:new r(e.libraryResolver._moduleSingletons,n.loadedModules),exports:i,localScope:null,globalScope:s};return await Ze(l,n),new he(l)}}async function ge(e,t,n){if(!0===t.preparsed)return n(e,null,t.arguments);return n(e,t,await pe(e,t))}function ye(e,t){const n=new Map;for(const r of Object.getOwnPropertyNames(e))n.set(r,e[r]===ie?null:w(e[r].value,t));return n}function be(e){return e instanceof de?`ƒ ${e.debugName}(${e.definition.params.map(e=>e.name).join(", ")})`:d(e)}function ve(e,t){const n=e.services?.debugger;if(null==n)return;const r={renderFunction:be,defaultTimeZone:e.timeZone??"system"};return n.pause(t,{globals:ye(e.globalScope,r),locals:null==e.localScope?null:ye(e.localScope,r)})}async function xe(e,t){t.breakpoint&&await ve(e,t.breakpoint);try{switch(t.type){case"UpdateExpression":return await Ae(e,t);case"AssignmentExpression":return await Ue(e,t);case"TemplateLiteral":return await ot(e,t);case"Identifier":return tt(e,t);case"MemberExpression":return await Ve(e,t);case"Literal":return t.value;case"CallExpression":return await nt(e,t);case"UnaryExpression":return await Je(e,t);case"BinaryExpression":return await Xe(e,t);case"LogicalExpression":return await et(e,t);case"ArrayExpression":return await Qe(e,t);case"ObjectExpression":return await ke(e,t);case"MemberAccessChainExpression":return await He(e,t);case"SafeMemberExpression":throw ae().error("SafeMemberExpression outside of MemberAccessChainExpression"),new h(null,"Unrecognized",t);default:throw new h(e,"Unrecognized",t)}}catch(n){throw g(e,t,n)}}async function Se(e,t){t.breakpoint&&await ve(e,t.breakpoint);try{switch(t.type){case"ImportDeclaration":return await qe(e,t);case"ExportNamedDeclaration":return await Pe(e,t);case"VariableDeclaration":return await We(e,t);case"BlockStatement":return await Ze(e,t);case"FunctionDeclaration":return await _e(e,t);case"ReturnStatement":return await De(e,t);case"IfStatement":return await Le(e,t);case"ExpressionStatement":return await Ge(e,t);case"ForStatement":return await je(e,t);case"WhileStatement":return await Fe(e,t);case"ForInStatement":return await Ee(e,t);case"ForOfStatement":return await Ne(e,t);case"BreakStatement":return R;case"EmptyStatement":return M;case"ContinueStatement":return I;default:throw new h(e,"Unrecognized",t)}}catch(n){throw g(e,t,n)}}async function ke(e,t){const n=[];for(let i=0;i<t.properties.length;i++){const r=t.properties[i],o=await xe(e,r.value),a="Identifier"===r.key.type?r.key.name:await xe(e,r.key);n[i]={key:a,value:o}}const r=Object.create(null),o=new Map;for(let i=0;i<n.length;i++){const a=n[i];if(O(a.value))throw new h(e,"NoFunctionInDictionary",t);if(!1===ne(a.key))throw new h(e,"KeyMustBeString",t);let s=a.key.toString();const c=s.toLowerCase();o.has(c)?s=o.get(c):o.set(c,s),a.value===M?r[s]=null:r[s]=a.value}const a=new m(r);return a.immutable=!1,a}async function Fe(e,t){let n=await xe(e,t.test);if(!1===n)return M;if(!0!==n)throw new h(e,"BooleanConditionRequired",t);for(;!0===n;){const r=await Se(e,t.body);if(r===R)break;if(r instanceof k)return r;if(n=await xe(e,t.test),!0!==n&&!1!==n)throw new h(e,"BooleanConditionRequired",t)}return M}async function je(e,t){try{for(null!==t.init&&("VariableDeclaration"===t.init.type?await Se(e,t.init):await xe(e,t.init));;){if(null!==t.test){const n=await xe(e,t.test);if(!0===e.abortSignal?.aborted)throw new h(e,"Cancelled",t);if(!1===n)break;if(!0!==n)throw new h(e,"BooleanConditionRequired",t)}const n=await Se(e,t.body);if(n===R)break;if(n instanceof k)return n;null!==t.update&&await xe(e,t.update)}return M}catch(n){throw n}}async function Oe(e,t,n,r,o="i"){const a=n.length;for(let i=0;i<a;i++){if("k"===o){if(i>=n.length)throw new h(e,"OutOfBounds",t);r.scope[r.id]={value:n[i]}}else r.scope[r.id]={value:i};const a=await Se(e,t.body);if(a===R)break;if(a instanceof k)return a}return M}async function Re(e,t,n,r,o="i"){const a=n.length();for(let i=0;i<a;i++){r.scope[r.id]="k"===o?{value:n.get(i)}:{value:i};const a=await Se(e,t.body);if(a===R)break;if(a instanceof k)return a}return M}async function Ie(e,t,n,r){e:for await(const o of await n.queryAll(e.abortSignal))for(const a of o){r.scope[r.id]={value:y.createFromGraphicLikeObject(a.geometry,a.attributes,n,e.timeZone)};const o=await Se(e,t.body);if(o===R)break e;if(o instanceof k)return o}return M}async function Me(e,t,n,r){for(const o of n.keys()){const a=n.field(o);r.scope[r.id]={value:m.containerEntry(o,a)};const i=await Se(e,t.body);if(i===R)break;if(i instanceof k)return i}return M}async function Ce(e,t,n,r){for(const o of l(n)){const a=p(n,o,e,t);r.scope[r.id]={value:m.containerEntry(o,a)};const i=await Se(e,t.body);if(i===R)break;if(i instanceof k)return i}return M}async function Ee(e,t){const n=await xe(e,t.right);"VariableDeclaration"===t.left.type&&await Se(e,t.left);const r=le(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);return re(n)||ne(n)?await Oe(e,t,n,r):L(n)?await Re(e,t,n,r):n instanceof m||Z(n)?await Oe(e,t,n.keys(),r,"k"):z(n)?await Ie(e,t,n,r):D(n)?await Oe(e,t,l(n),r,"k"):M}async function Ne(e,t){const n=await xe(e,t.right);"VariableDeclaration"===t.left.type&&await Se(e,t.left);const r=le(e,"VariableDeclaration"===t.left.type?t.left.declarations[0].id:t.left);return re(n)||ne(n)?await Oe(e,t,n,r,"k"):L(n)?await Re(e,t,n,r,"k"):n instanceof m||Z(n)?await Me(e,t,n,r):z(n)?await Ie(e,t,n,r):D(n)?await Ce(e,t,n,r):M}async function Ae(e,t){const n=t.argument;if("CallExpression"===n.type)throw new h(e,"NeverReach",t);if("MemberExpression"===n.type){const r=await xe(e,n.object);let o,a;if(!0===n.computed)o=await xe(e,n.property);else{if("Identifier"!==n.property.type)throw new h(e,"Unrecognized",t);o=n.property.name}if(re(r)){if(!oe(o))throw new h(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=r.length+o),o<0||o>=r.length)throw new h(e,"OutOfBounds",t);a=E(r[o]),r[o]="++"===t.operator?a+1:a-1}else if(r instanceof m){if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0!==r.hasField(o))throw new h(e,"FieldNotFound",t,{key:o});a=E(r.field(o)),r.setField(o,"++"===t.operator?a+1:a-1)}else if(r instanceof he){if(!1===ne(o))throw new h(e,"ModuleAccessorMustBeString",t);if(!0!==r.hasGlobal(o))throw new h(e,"ModuleExportNotFound",t);a=E(r.global(o)),r.setGlobal(o,"++"===t.operator?a+1:a-1)}else{if(!G(r))throw L(r)?new h(e,"Immutable",t):new h(e,"InvalidParameter",t);if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0!==r.hasField(o))throw new h(e,"FieldNotFound",t,{key:o});a=E(r.field(o)),r.setField(o,"++"===t.operator?a+1:a-1)}return!1===t.prefix?a:"++"===t.operator?a+1:a-1}const r=le(e,n),o=E(ce(r.var).value),a="++"===t.operator?o+1:o-1;return r.scope[r.id]={value:a},!1===t.prefix?o:"++"===t.operator?o+1:o-1}function Be(e,t,n,r,o){switch(t){case"=":return e===M?null:e;case"/=":return E(n)/E(e);case"*=":return E(n)*E(e);case"-=":return E(n)-E(e);case"+=":return ne(n)||ne(e)?N(n)+N(e):E(n)+E(e);case"%=":return E(n)%E(e);default:throw new h(o,"UnsupportedOperator",r)}}async function Ue(e,t){const n=t.left;if("MemberExpression"===n.type){const r=await xe(e,n.object);let o;if(!0===n.computed)o=await xe(e,n.property);else{if("Identifier"!==n.property.type)throw new h(e,"InvalidIdentifier",t);o=n.property.name}const a=await xe(e,t.right);if(re(r)){if(!oe(o))throw new h(e,"ArrayAccessMustBeNumber",t);if(o<0&&(o=r.length+o),o<0||o>r.length)throw new h(e,"OutOfBounds",t);if(o===r.length){if("="!==t.operator)throw new h(e,"OutOfBounds",t);r[o]=Be(a,t.operator,r[o],t,e)}else r[o]=Be(a,t.operator,r[o],t,e)}else if(r instanceof m){if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(o))r.setField(o,Be(a,t.operator,r.field(o),t,e));else{if("="!==t.operator)throw new h(e,"FieldNotFound",t,{key:o});r.setField(o,Be(a,t.operator,null,t,e))}}else if(r instanceof he){if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0!==r.hasGlobal(o))throw new h(e,"ModuleExportNotFound",t);r.setGlobal(o,Be(a,t.operator,r.global(o),t,e))}else{if(!G(r))throw L(r)?new h(e,"Immutable",t):new h(e,"InvalidParameter",t);if(!1===ne(o))throw new h(e,"KeyAccessorMustBeString",t);if(!0===r.hasField(o))r.setField(o,Be(a,t.operator,r.field(o),t,e));else{if("="!==t.operator)throw new h(e,"FieldNotFound",t,{key:o});r.setField(o,Be(a,t.operator,null,t,e))}}return M}const r=le(e,n),o=await xe(e,t.right);return r.scope[r.id]={value:Be(o,t.operator,"="!==t.operator?ce(r.var).value:null,t,e)},M}async function Ge(e,t){const n=await xe(e,t.expression);return n===M?M:new F(n)}async function Le(e,t){const n=await xe(e,t.test);if(!0===n)return Se(e,t.consequent);if(!1===n)return null!==t.alternate?Se(e,t.alternate):M;throw new h(e,"BooleanConditionRequired",t)}async function Ze(e,t){return ze(e,t,0)}async function ze(e,t,n){if(n>=t.body.length)return M;const r=await Se(e,t.body[n]);return r instanceof k||r===R||r===I||n===t.body.length-1?r:ze(e,t,n+1)}async function De(e,t){if(null===t.argument)return new k(M);const n=await xe(e,t.argument);return new k(n)}async function _e(t,n){if(null!=t.localScope)throw ae().error("Function declarations are only valid in global scope."),new h(t,"NeverReach",n);const r=e(n.id);if(!(r in t.globalScope))throw ae().error(`Function "${r}" not declared.`),new h(t,"NeverReach",n);const o=s(n),a=n.params.map(t=>e(t)),i=Array.from(o).filter(e=>!a.includes(e));return t.globalScope[r]={value:new de(n,t,a,i)},M}async function qe(e,t){const n=le(e,t.specifiers[0].local),r=e.libraryResolver;if(null==r)throw ae().error("Internal error: module loader not initialized"),new h(e,"NeverReach",t);const o=r.loadLibrary(n.id);let a;return r._moduleSingletons?.has(o.uri)?a=r._moduleSingletons.get(o.uri):(a=await he.load(e,o.syntax),r._moduleSingletons?.set(o.uri,a)),n.scope[n.id]={value:a},M}async function Pe(e,t){return await Se(e,t.declaration),M}async function We(e,t){for(const n of t.declarations)await Te(e,n);return M}async function Te(e,t){t.breakpoint&&await ve(e,t.breakpoint);let n=null;n=null===t.init?null:await xe(e,t.init),n===M&&(n=null);const r=le(e,t.id);r.scope[r.id]={value:n}}async function Ve(e,t){return Ke(e,await xe(e,t.object),t)}async function Ke(e,t,n){const r=n.computed?await xe(e,n.property):n.property.name;return f(t,r)}async function $e(e,t,n){for(const r of n)switch(r.type){case"MemberExpression":t=await Ke(e,t,r);break;case"CallExpression":t=await rt(e,t,r);break;default:throw new h(null,"Unrecognized",r)}return t}async function Ye(e,t,n){const r=n.computed?await xe(e,n.property):n.property.name;return u(t,r)}async function He(e,t){const n=i(t);let r=await xe(e,n.root);for(const o of n.sections){const t=await Ye(e,r,o.checked);if(null==t)return null;r=await $e(e,t,o.unchecked)}return r}async function Je(e,t){const n=await xe(e,t.argument);if(te(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*E(n);if("+"===t.operator)return 1*E(n);if("~"===t.operator)return~E(n);throw new h(e,"UnsupportUnaryOperator",t)}if("-"===t.operator)return-1*E(n);if("+"===t.operator)return 1*E(n);if("~"===t.operator)return~E(n);throw new h(e,"UnsupportUnaryOperator",t)}async function Qe(e,t){const n=[];for(let r=0;r<t.elements.length;r++)n.push(await xe(e,t.elements[r]));for(let r=0;r<n.length;r++){if(O(n[r]))throw new h(e,"NoFunctionInArray",t);n[r]===M&&(n[r]=null)}return n}async function Xe(e,t){const n=await xe(e,t.left),r=await xe(e,t.right);switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return U(E(n),E(r),t.operator);case"==":return B(n,r);case"!=":return!B(n,r);case"<":case">":case"<=":case">=":return A(n,r,t.operator);case"+":return ne(n)||ne(r)?N(n)+N(r):E(n)+E(r);case"-":return E(n)-E(r);case"*":return E(n)*E(r);case"/":return E(n)/E(r);case"%":return E(n)%E(r);default:throw t.operator,new h(e,"UnsupportedOperator",t)}}async function et(e,t){const n=await xe(e,t.left);if(!te(n))throw new h(e,"LogicalExpressionOnlyBoolean",t);switch(t.operator){case"||":{if(!0===n)return n;const r=await xe(e,t.right);if(te(r))return r;throw new h(e,"LogicExpressionOrAnd",t)}case"&&":{if(!1===n)return n;const r=await xe(e,t.right);if(te(r))return r;throw new h(e,"LogicExpressionOrAnd",t)}default:throw t.operator,new h(e,"LogicExpressionOrAnd",t)}}function tt(e,t){return ue(e,t)}async function nt(e,t){let n;if("Identifier"===t.callee.type){const r=t.callee;r.breakpoint&&await ve(e,r.breakpoint),n=ue(e,t.callee,"FunctionNotFound")}else n=await xe(e,t.callee);return rt(e,n,t)}async function rt(e,t,n){if(O(t))return t.call(e,n);throw new h(e,"CallNonFunction",n)}async function ot(e,t){let n="",r=0;for(const o of t.quasis)if(n+=o.value?o.value.cooked:"",!1===o.tail){if(t.expressions[r]){const o=await xe(e,t.expressions[r]);if(O(o))throw new h(e,"NoFunctionInTemplateLiteral",t);n+=N(o)}r++}return n}async function at(e,t){C(null===t.arguments?[]:t.arguments,3,3,e,t);const n=await xe(e,t.arguments[0]);if(!1===te(n))throw new h(e,"BooleanConditionRequired",t);return xe(e,n?t.arguments[1]:t.arguments[2])}async function it(e,t){C(null===t.arguments?[]:t.arguments,2,3,e,t);const n=await xe(e,t.arguments[0]);if(3===t.arguments.length){const r=await xe(e,t.arguments[1]),o=c(n,r);return null!=o&&""!==o?o:xe(e,t.arguments[2])}return null==n||""===n?xe(e,t.arguments[1]):n}async function st(e,t){if(t.arguments.length<2)throw new h(e,"WrongNumberOfParameters",t);if(2===t.arguments.length)return xe(e,t.arguments[1]);if((t.arguments.length-1)%2==0)throw new h(e,"WrongNumberOfParameters",t);return ct(e,t,1,await xe(e,t.arguments[0]))}async function ct(e,t,n,r){const o=await xe(e,t.arguments[n]);if(B(o,r))return xe(e,t.arguments[n+1]);const a=t.arguments.length-n;return 1===a?xe(e,t.arguments[n]):2===a?null:3===a?xe(e,t.arguments[n+2]):ct(e,t,n+2,r)}async function lt(e,t){if(t.arguments.length<3)throw new h(e,"WrongNumberOfParameters",t);if(t.arguments.length%2==0)throw new h(e,"WrongNumberOfParameters",t);const n=await xe(e,t.arguments[0]);if(!1===te(n))throw new h(e,"BooleanConditionRequired",t.arguments[0]);return ut(e,t,0,n)}async function ut(e,t,n,r){if(!0===r)return xe(e,t.arguments[n+1]);if(3===t.arguments.length-n)return xe(e,t.arguments[n+2]);const o=await xe(e,t.arguments[n+2]);if(!1===te(o))throw new h(e,"ModuleExportNotFound",t.arguments[n+2]);return ut(e,t,n+2,o)}function ft(){const e=Object.create(null);W(e,we),H(e,we),T(e,we,tt),$(e,we),K(e,we),Y(e,we),J(e,we),V({functions:e,compiled:!1,signatures:null,evaluateIdentifier:null,mode:"async",standardFunction:we,standardFunctionAsync:ge}),e.iif=at,e.defaultvalue=it,e.decode=st,e.when=lt;const t=function(){this.textformatting={value:m.textFormatting()}};t.prototype=Object.create(null),t.prototype.infinity=Object.freeze({value:Number.POSITIVE_INFINITY}),t.prototype.pi=Object.freeze({value:Math.PI});for(const[n,r]of Object.entries(e))t.prototype[n]=Object.freeze({value:new b(r,n)});return t}const pt=ft();function wt(e){const t={mode:"async",compiled:!1,functions:Object.create(null),signatures:[],standardFunction:we,standardFunctionAsync:ge,evaluateIdentifier:tt};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const[n,r]of Object.entries(t.functions))pt.prototype[n]=Object.freeze({value:new b(r,n)});for(let n=0;n<t.signatures.length;n++)_(t.signatures[n],"async")}function dt(e){console.log(e)}function mt(n,i){const s=new Set(Object.keys(i?.vars||{}).map(t=>e(t))),c=new Set(Object.keys(i?.customfunctions||{}).map(t=>e(t)));if(i?.breakpoints)for(const[e,t]of o(i.breakpoints,n))e.breakpoint=t;const{globals:l,exports:u}=a(n);return async e=>{const o=e.spatialReference??X.WebMercator;let a=null;n.usesModules&&(a=new r(new Map,n.loadedModules));const i=new pt;for(const t of c)null!=e.customfunctions&&t in e.customfunctions?i[t]={value:new b(e.customfunctions[t],t)}:i[t]=ie;for(const t of s){if(null==e.vars||!(t in e.vars)){t in i||(i[t]=ie);continue}const n=e.vars[t]??null;ee(n)?i[t]={value:y.createFromGraphic(n,e.timeZone??null)}:i[t]={value:n}}for(const t of l)t in i||(i[t]=ie);const f={lrucache:e.lrucache,interceptor:e.interceptor,services:e.services,console:e.console??dt,abortSignal:e.abortSignal??t,timeZone:e.timeZone??null,spatialReference:o,track:e.track,depthCounter:{depth:1},libraryResolver:a,exports:u,localScope:null,globalScope:i},p=await Ze(f,n);if(p instanceof k||p instanceof F){const e=p.value;if(j(e))return null;if(O(e))throw new h(f,"IllegalResult",null);return e}if(j(p))return null;if(p===R)throw new h(f,"IllegalResult",null);if(p===I)throw new h(f,"IllegalResult",null);throw new h(f,"NeverReach",null)}}function ht(e,t){return mt(e,t)(t)}wt([P]),wt([q]);export{ht as executeScript,wt as extend,mt as prepareScript};