@arcgis/core 4.22.0-next.20211205 → 4.22.1

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 (222) hide show
  1. package/PopupTemplate.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/{44ccee36f8c74f4f134e.js → 025df54bafc05c183182.js} +1 -1
  4. package/assets/esri/core/workers/chunks/{23af0b02208e20d5c07e.js → 04adf8c6c5e8ad67aa06.js} +1 -1
  5. package/assets/esri/core/workers/chunks/0677ed519c51710d7629.js +1 -0
  6. package/assets/esri/core/workers/chunks/2174266668fa6f2df8cc.js +1 -0
  7. package/assets/esri/core/workers/chunks/25017204ffbd1bbac91f.js +1 -0
  8. package/assets/esri/core/workers/chunks/28f9b48b59bf1347facd.js +1 -0
  9. package/assets/esri/core/workers/chunks/2d97adeb48adeecd7607.js +1 -0
  10. package/assets/esri/core/workers/chunks/{52aa3b44bddb10caa343.js → 2f29fb12452d363a1b17.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{96a62dc1e07f3ef20a30.js → 32efb77e3dabd2c11446.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{6a1ce00bcb689ea95bcb.js → 3a4885bf1cfc82cf2b67.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{ff9a9e705237c55f78ff.js → 49bf6ce6b31a0028cee1.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{02ce52ca0084536bc066.js → 4f4cc4ebd68dbd5ee9c3.js} +1 -1
  15. package/assets/esri/core/workers/chunks/5a31dfbac9c7e15a4dc5.js +1 -0
  16. package/assets/esri/core/workers/chunks/60bfe5450b85b0d4605f.js +1 -0
  17. package/assets/esri/core/workers/chunks/{f3da8b797c8e1fcb1c21.js → 63161320a58a0b1702a2.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{d7f77fe32bb2d69b5714.js → 762f45a7ecd40d564be2.js} +1 -1
  19. package/assets/esri/core/workers/chunks/7b12bf4be88ca0e14683.js +1 -0
  20. package/assets/esri/core/workers/chunks/{07bfb7bb4447aeacd87a.js → 7db1818ed9e834402e98.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{8bc4ea821be16a752226.js → 8b98fc7d115469e6ae5d.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{6210b23872c362f51b12.js → a3b7217566347ab595d0.js} +1 -1
  23. package/assets/esri/core/workers/chunks/{bc0b85bc1e5116836ba4.js → ac9b25ce30f2cd569944.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{058955b87ce2aa1b1809.js → c535188091d83fd50d74.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{4417dfcb2ba50ac9f199.js → d431b35c274b76150724.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{5f2718cd77cbd5ba7920.js → da62f8159ec2fdbdeb58.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{b6b46f8e6a7d8d3cef50.js → db00e63a7c4fdf635a8c.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{489147cf21d55f47d0e6.js → e7117121160907a593d4.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{44145763617ea985cce4.js → fa9c5dd90d19d4061b40.js} +1 -1
  30. package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
  31. package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
  32. package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
  33. package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
  34. package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
  35. package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
  36. package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
  37. package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
  38. package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
  39. package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
  40. package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
  41. package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
  42. package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
  43. package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
  44. package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
  45. package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
  46. package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
  47. package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
  48. package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
  49. package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
  50. package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
  51. package/assets/esri/widgets/Editor/t9n/Editor_nb.json +1 -1
  52. package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
  53. package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
  54. package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
  55. package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
  56. package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
  57. package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
  58. package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
  59. package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
  60. package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
  61. package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
  62. package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
  63. package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
  64. package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
  65. package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
  66. package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
  67. package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
  68. package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
  69. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ar.json +1 -1
  70. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bg.json +1 -1
  71. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bs.json +1 -1
  72. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ca.json +1 -1
  73. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_cs.json +1 -1
  74. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_da.json +1 -1
  75. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_de.json +1 -1
  76. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_el.json +1 -1
  77. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_es.json +1 -1
  78. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_et.json +1 -1
  79. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fi.json +1 -1
  80. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fr.json +1 -1
  81. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_he.json +1 -1
  82. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hr.json +1 -1
  83. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hu.json +1 -1
  84. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_id.json +1 -1
  85. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_it.json +1 -1
  86. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ja.json +1 -1
  87. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ko.json +1 -1
  88. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lt.json +1 -1
  89. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lv.json +1 -1
  90. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nb.json +1 -1
  91. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nl.json +1 -1
  92. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pl.json +1 -1
  93. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-BR.json +1 -1
  94. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-PT.json +1 -1
  95. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ro.json +1 -1
  96. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ru.json +1 -1
  97. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sk.json +1 -1
  98. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sl.json +1 -1
  99. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sr.json +1 -1
  100. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sv.json +1 -1
  101. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_th.json +1 -1
  102. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_tr.json +1 -1
  103. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_uk.json +1 -1
  104. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_vi.json +1 -1
  105. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-CN.json +1 -1
  106. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-HK.json +1 -1
  107. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-TW.json +1 -1
  108. package/chunks/Clouds.glsl.js +4 -4
  109. package/chunks/RibbonLine.glsl.js +55 -61
  110. package/config.js +1 -1
  111. package/copyright.txt +47 -19
  112. package/interfaces.d.ts +184 -47
  113. package/layers/CSVLayer.js +1 -1
  114. package/layers/GeoJSONLayer.js +1 -1
  115. package/layers/mixins/ArcGISImageService.js +1 -1
  116. package/layers/mixins/operationalLayers.js +1 -1
  117. package/layers/support/layersCreator.js +1 -1
  118. package/package.json +1 -1
  119. package/renderers/VectorFieldRenderer.js +1 -1
  120. package/renderers/support/RasterSymbolizer.js +1 -1
  121. package/renderers/support/rasterRendererHelper.js +1 -1
  122. package/rest/query/operations/query.js +1 -1
  123. package/smartMapping/raster/renderers/classBreaks.js +1 -1
  124. package/support/arcadeUtils.js +1 -1
  125. package/support/revision.js +1 -1
  126. package/views/2d/MapViewConstraints.js +1 -1
  127. package/views/2d/constraints/ZoomConstraint.js +1 -1
  128. package/views/2d/engine/Stage.js +1 -1
  129. package/views/2d/engine/webgl/collisions/CollisionEngine.js +1 -1
  130. package/views/2d/engine/webgl/collisions/CollisionGrid.js +1 -1
  131. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  132. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  133. package/views/2d/layers/VectorTileLayerView2D.js +1 -1
  134. package/views/2d/layers/graphics/GraphicBoundsRenderer.js +1 -1
  135. package/views/2d/layers/graphics/GraphicStore.js +1 -1
  136. package/views/2d/layers/imagery/ImageryGraphicsView2D.js +1 -1
  137. package/views/3d/environment/Clouds.glsl.js +1 -1
  138. package/views/3d/environment/CloudsGenerator.js +1 -1
  139. package/views/3d/environment/NoiseTextureAtlas.js +1 -1
  140. package/views/MapView.js +1 -1
  141. package/views/MapViewBase.js +1 -1
  142. package/views/webgl/Program.js +1 -1
  143. package/widgets/Histogram.js +1 -1
  144. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  145. package/widgets/Sketch/SketchViewModel.js +1 -1
  146. package/widgets/UtilityNetworkTrace.js +1 -1
  147. package/assets/esri/core/t9n/Units_no.json +0 -1
  148. package/assets/esri/core/workers/chunks/49bb222ee07a768e998d.js +0 -1
  149. package/assets/esri/core/workers/chunks/650f04de72c173beaebc.js +0 -1
  150. package/assets/esri/core/workers/chunks/aa57f2c380132c746730.js +0 -1
  151. package/assets/esri/core/workers/chunks/af6251cc7973b43a1523.js +0 -1
  152. package/assets/esri/core/workers/chunks/b17afdfe4450f69298ad.js +0 -1
  153. package/assets/esri/core/workers/chunks/bad899fd3564ec97f69b.js +0 -1
  154. package/assets/esri/core/workers/chunks/deba37055be7c2d7da26.js +0 -1
  155. package/assets/esri/core/workers/chunks/e02a3d456525e76ddb60.js +0 -1
  156. package/assets/esri/identity/t9n/identity_no.json +0 -1
  157. package/assets/esri/smartMapping/t9n/smartMapping_no.json +0 -1
  158. package/assets/esri/t9n/basemaps_no.json +0 -1
  159. package/assets/esri/t9n/common_no.json +0 -1
  160. package/assets/esri/widgets/AreaMeasurement2D/t9n/AreaMeasurement2D_no.json +0 -1
  161. package/assets/esri/widgets/AreaMeasurement3D/t9n/AreaMeasurement3D_no.json +0 -1
  162. package/assets/esri/widgets/Attachments/t9n/Attachments_no.json +0 -1
  163. package/assets/esri/widgets/Attribution/t9n/Attribution_no.json +0 -1
  164. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_no.json +0 -1
  165. package/assets/esri/widgets/BasemapLayerList/t9n/BasemapLayerList_no.json +0 -1
  166. package/assets/esri/widgets/BasemapToggle/t9n/BasemapToggle_no.json +0 -1
  167. package/assets/esri/widgets/Bookmarks/t9n/Bookmarks_no.json +0 -1
  168. package/assets/esri/widgets/BuildingExplorer/t9n/BuildingExplorer_no.json +0 -1
  169. package/assets/esri/widgets/Compass/t9n/Compass_no.json +0 -1
  170. package/assets/esri/widgets/CoordinateConversion/t9n/CoordinateConversion_no.json +0 -1
  171. package/assets/esri/widgets/Daylight/t9n/Daylight_no.json +0 -1
  172. package/assets/esri/widgets/DirectLineMeasurement3D/t9n/DirectLineMeasurement3D_no.json +0 -1
  173. package/assets/esri/widgets/Directions/t9n/Directions_no.json +0 -1
  174. package/assets/esri/widgets/Directions/t9n/Printout_no.json +0 -1
  175. package/assets/esri/widgets/DistanceMeasurement2D/t9n/DistanceMeasurement2D_no.json +0 -1
  176. package/assets/esri/widgets/Editor/t9n/Editor_no.json +0 -1
  177. package/assets/esri/widgets/ElevationProfile/t9n/ElevationProfile_no.json +0 -1
  178. package/assets/esri/widgets/Expand/t9n/Expand_no.json +0 -1
  179. package/assets/esri/widgets/Feature/t9n/Feature_no.json +0 -1
  180. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_no.json +0 -1
  181. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_no.json +0 -1
  182. package/assets/esri/widgets/FeatureTemplates/t9n/FeatureTemplates_no.json +0 -1
  183. package/assets/esri/widgets/FloorFilter/t9n/FloorFilter_no.json +0 -1
  184. package/assets/esri/widgets/Fullscreen/t9n/Fullscreen_no.json +0 -1
  185. package/assets/esri/widgets/Histogram/t9n/Histogram_no.json +0 -1
  186. package/assets/esri/widgets/HistogramRangeSlider/t9n/HistogramRangeSlider_no.json +0 -1
  187. package/assets/esri/widgets/Home/t9n/Home_no.json +0 -1
  188. package/assets/esri/widgets/LayerList/t9n/LayerList_no.json +0 -1
  189. package/assets/esri/widgets/Legend/t9n/Legend_no.json +0 -1
  190. package/assets/esri/widgets/LineOfSight/t9n/LineOfSight_no.json +0 -1
  191. package/assets/esri/widgets/Locate/t9n/Locate_no.json +0 -1
  192. package/assets/esri/widgets/Measurement/t9n/Measurement_no.json +0 -1
  193. package/assets/esri/widgets/NavigationToggle/t9n/NavigationToggle_no.json +0 -1
  194. package/assets/esri/widgets/Popup/t9n/Popup_no.json +0 -1
  195. package/assets/esri/widgets/Print/t9n/Print_no.json +0 -1
  196. package/assets/esri/widgets/ScaleBar/t9n/ScaleBar_no.json +0 -1
  197. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_no.json +0 -1
  198. package/assets/esri/widgets/Search/t9n/Search_no.json +0 -1
  199. package/assets/esri/widgets/ShadowCast/t9n/ShadowCast_no.json +0 -1
  200. package/assets/esri/widgets/Sketch/t9n/Sketch_no.json +0 -1
  201. package/assets/esri/widgets/Slice/t9n/Slice_no.json +0 -1
  202. package/assets/esri/widgets/Slider/t9n/Slider_no.json +0 -1
  203. package/assets/esri/widgets/Swipe/t9n/Swipe_no.json +0 -1
  204. package/assets/esri/widgets/TableList/t9n/TableList_no.json +0 -1
  205. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_no.json +0 -1
  206. package/assets/esri/widgets/Track/t9n/Track_no.json +0 -1
  207. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_no.json +0 -1
  208. package/assets/esri/widgets/Zoom/t9n/Zoom_no.json +0 -1
  209. package/assets/esri/widgets/smartMapping/ClassedColorSlider/t9n/ClassedColorSlider_no.json +0 -1
  210. package/assets/esri/widgets/smartMapping/ClassedSizeSlider/t9n/ClassedSizeSlider_no.json +0 -1
  211. package/assets/esri/widgets/smartMapping/ColorSizeSlider/t9n/ColorSizeSlider_no.json +0 -1
  212. package/assets/esri/widgets/smartMapping/ColorSlider/t9n/ColorSlider_no.json +0 -1
  213. package/assets/esri/widgets/smartMapping/HeatmapSlider/t9n/HeatmapSlider_no.json +0 -1
  214. package/assets/esri/widgets/smartMapping/OpacitySlider/t9n/OpacitySlider_no.json +0 -1
  215. package/assets/esri/widgets/smartMapping/SizeSlider/t9n/SizeSlider_no.json +0 -1
  216. package/assets/esri/widgets/support/SelectionToolbar/t9n/SelectionToolbar_no.json +0 -1
  217. package/assets/esri/widgets/support/SnappingControls/t9n/SnappingControls_no.json +0 -1
  218. package/assets/esri/widgets/support/t9n/ColorPicker_no.json +0 -1
  219. package/assets/esri/widgets/support/t9n/DatePicker_no.json +0 -1
  220. package/assets/esri/widgets/support/t9n/TimePicker_no.json +0 -1
  221. package/assets/esri/widgets/support/t9n/timezone_no.json +0 -1
  222. package/assets/esri/widgets/support/t9n/uriUtils_no.json +0 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.22/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../Color.js";import"../../rasterRenderers.js";import{isSome as t,unwrap as n}from"../../core/maybe.js";import{getMetersPerUnitForSR as r}from"../../core/unitUtils.js";import l from"../../layers/support/Field.js";import a from"../../layers/support/RasterInfo.js";import o from"./AuthoringInfo.js";import s from"./ClassBreakInfo.js";import{PREDEFINED_JSON_COLOR_RAMPS as i,convertColorRampToColormap as u}from"./colorRampUtils.js";import m from"./UniqueValueInfo.js";import c from"../../rest/support/AlgorithmicColorRamp.js";import f from"../../rest/support/ClassBreaksDefinition.js";import{createGenerateRendererClassBreaks as p}from"../../rest/support/generateRendererUtils.js";import d from"../../rest/support/MultipartColorRamp.js";import h from"../RasterStretchRenderer.js";import b from"../UniqueValueRenderer.js";import v from"../RasterColormapRenderer.js";import y from"../RasterShadedReliefRenderer.js";import g from"../ClassBreaksRenderer.js";import C from"../VectorFieldRenderer.js";const w=.25,x=d.fromJSON({type:"multipart",colorRamps:[{fromColor:[0,0,255],toColor:[0,255,255]},{fromColor:[0,255,255],toColor:[255,255,0]},{fromColor:[255,255,0],toColor:[255,0,0]}]}),M=d.fromJSON(i[0]),R=new Set(["scientific","standard-time","vector-uv","vector-magdir","vector-u","vector-v","vector-magnitude","vector-direction"]);function j(e,n){const{attributeTable:r,colormap:l}=e;if(H(e)){const n=X(e);if(t(n))return n}if(t(l)){const n=F(e);if(t(n))return n}if(t(r)){const n=q(e);if(t(n))return n}return V(e,n)}function k(e){const t=["raster-stretch"];return W(e)&&t.push("raster-colormap"),z(e)&&t.push("unique-value"),D(e)&&t.push("class-breaks"),U(e)&&t.push("raster-shaded-relief"),H(e)&&t.push("vector-field"),K(e)&&t.push("animated-flow"),t}function T(e,t,n){const r=["nearest","bilinear","cubic","majority"].find((e=>e===(null==n?void 0:n.toLowerCase())));if("Map"===t)return null!=r?r:"bilinear";if("standard-time"===e.dataType)return null!=r?r:"nearest";return"thematic"===e.dataType||e.attributeTable||e.colormap?"nearest"===r||"majority"===r?r:"nearest":null!=r?r:"bilinear"}function V(e,r){var l,a,o,s;e=I(e,null==r?void 0:r.variableName);const{bandCount:i}=e;let{bandIds:u,stretchType:m}=r||{};null!=(l=u)&&l.some((e=>e>=i))&&(u=null);let c=n(e.statistics),f=n(e.histograms);var p;i>1?(u=null!=(p=u)&&p.length?u:S(e),c=null==c?null:u.map((e=>c[e])),f=null==f?null:u.map((e=>f[e]))):u=[0];null==m&&(m=O(e));let d=!1;switch(m){case"none":d=!1;break;case"percent-clip":d=!(null!=(a=f)&&a.length);break;default:d=!(null!=(o=c)&&o.length)}const{dataType:b}=e,v=1===(null==(s=u)?void 0:s.length)&&R.has(b)?x:null,y=new h({stretchType:m,dynamicRangeAdjustment:d,colorRamp:v,outputMin:0,outputMax:255,gamma:1===u.length?[1]:[1,1,1],useGamma:!1});return"percent-clip"===m?y.maxPercent=y.minPercent=w:"standard-deviation"===m&&(y.numberOfStandardDeviations=2),!d&&(t(e.multidimensionalInfo)||null!=r&&r.includeStatisticsInStretch)&&("percent-clip"===m?y.histograms=f:"min-max"!==m&&"standard-deviation"!==m||(y.statistics=c)),y}function I(e,r){if(null==r)return e;let l=n(e.statistics),o=n(e.histograms);const{multidimensionalInfo:s}=e;if(r&&t(s)){const{statistics:e,histograms:t}=s.variables.find((e=>e.name===r));null!=e&&e.length&&(l=e),null!=t&&t.length&&(o=t)}return a.fromJSON({...e.toJSON(),statistics:l,histograms:o})}function S(e){const t=e.bandCount;if(1===t)return null;if(2===t)return[0];const n=e.keyProperties&&e.keyProperties.BandProperties;let r;if(n&&n.length===t){const{red:e,green:t,blue:l,nir:a}=B(n);null!=e&&null!=t&&null!=l?r=[e,t,l]:null!=a&&null!=e&&null!=t&&(r=[a,e,t])}return!r&&t>=3&&(r=[0,1,2]),r}function L(e,t){var n;const r=e.keyProperties&&e.keyProperties.BandProperties;return(t=null!=(n=t)&&n.length?t:Array.from(Array(e.bandCount).keys())).map((t=>r&&r.length===e.bandCount&&r[t]&&r[t].BandName||"band_"+(t+1)))}function B(e){const t={};for(let r=0;r<e.length;r++){var n;const l=e[r],a=null==(n=l.BandName)?void 0:n.toLowerCase();if("red"===a)t.red=r;else if("green"===a)t.green=r;else if("blue"===a)t.blue=r;else if("nearinfrared"===a||"nearinfrared_1"===a||"nir"===a)t.nir=r;else if(l.WavelengthMax&&l.WavelengthMin){const e=l.WavelengthMin,n=l.WavelengthMax;null==t.blue&&e>=410&&e<=480&&n>=480&&n<=540?t.blue=r:null==t.green&&e>=490&&e<=560&&n>=560&&n<=610?t.green=r:null==t.red&&e>=595&&e<=670&&n>=660&&n<=730?t.red=r:null==t.nir&&e>=700&&e<=860&&n>=800&&n<=950&&(t.nir=r)}}return t}function O(e){let n="percent-clip";const{pixelType:r,dataType:l,histograms:a,statistics:o}=e;return"u8"!==r||"processed"!==l&&t(a)&&t(o)?"u8"===r||"elevation"===l||R.has(l)?n="min-max":t(a)?n="percent-clip":t(o)&&(n="min-max",n="min-max"):n="none",n}function q(n,r,l,a){if(!z(n,r))return null;const{attributeTable:s,statistics:i}=n,c=E(s,r),f=P(s,"red"),p=P(s,"green"),d=P(s,"blue"),h=new o,v=[],y=new Set,g=!!(f&&p&&d);if(t(s))s.features.forEach((t=>{const n=t.attributes[c.name];if(!y.has(t.attributes[c.name])&&null!=n){y.add(n);const r=g&&("single"===f.type||"double"===f.type)&&("single"===p.type||"double"===p.type)&&("single"===d.type||"double"===d.type)&&!s.features.some((e=>e.attributes[f.name]>1||e.attributes[p.name]>1||e.attributes[d.name]>1)),l=r?255:1;v.push(new m({value:t.attributes[c.name],label:t.attributes[c.name]+"",symbol:{type:"simple-fill",style:"solid",outline:null,color:new e(g?[t.attributes[f.name]*l,t.attributes[p.name]*l,t.attributes[d.name]*l,1]:[0,0,0,0])}}))}}));else if(null!=i&&i[0])for(let t=i[0].min;t<=i[0].max;t++)v.push(new m({value:t,label:t.toString(),symbol:{type:"simple-fill",style:"solid",outline:null,color:new e([0,0,0,0])}}));if(v.sort(((e,t)=>e.value&&"string"==typeof e.value.valueOf()?0:e.value>t.value?1:-1)),!g){const t=u(M,v.length);v.forEach(((n,r)=>n.symbol.color=new e(t[r].slice(1,4)))),h.colorRamp=M}if(l||a){const t=l||u(a,v.length).map((e=>e.slice(1)));v.forEach(((n,r)=>n.symbol.color=new e(t[r]))),h.colorRamp=a}return new b({field:c.name,uniqueValueInfos:v,authoringInfo:h})}function E(e,n,r){let a;return t(e)?(a=n?e.fields.find((e=>n.toLowerCase()===e.name.toLowerCase())):N(e.fields),a||(r||(a=e.fields.find((e=>"string"===e.type))),a||(a=P(e,"value")))):a=new l({name:"value"}),a}function N(e){let t;for(let n=0;n<e.length;n++){const r=e[n].name.toLowerCase();if("string"===e[n].type){if(r.startsWith("class")){t=e[n];break}null==t&&(r.endsWith("name")||r.endsWith("type"))&&(t=e[n])}}return t}function P(e,n){return t(e)?e.fields.find((e=>e.name.toLowerCase()===n)):null}function z(e,n){const{attributeTable:r,bandCount:l}=e;if(!t(r)&&_(e))return!0;if(!t(r)||l>1)return!1;if(n){if(null==r.fields.find((e=>e.name.toLowerCase()===n.toLowerCase())))return!1}return!0}function W(e){const{bandCount:n,colormap:r}=e;return t(r)&&r.length&&1===n}function F(e){if(!W(e))return null;let r;const{attributeTable:l,colormap:a}=e;if(t(l)){const e=P(l,"value"),t=E(l,null,!0);"string"===t.type&&(r={},l.features.forEach((n=>{const l=n.attributes;r[l[e.name]]=t?l[t.name]:l[e.name]})))}return v.createFromColormap(n(a),r)}function U(e){return"elevation"===e.dataType}function A(e,t){var n;if(!U(e))return null;const{extent:l}=e,a=l.width*r(l.spatialReference);return t=null!=(n=t)?n:"multi-directional",new y({hillshadeType:t,scalingType:a>5e6?"adjusted":"none"})}function D(e){const{attributeTable:n,bandCount:r}=e;return 1===r&&(t(n)||t(e.histograms))}function J(e,n){e=I(e,null==n?void 0:n.variableName);const{attributeTable:r}=e;if(!D(e))return null;const l=t(e.histograms)?e.histograms[0]:null,a=(null==n?void 0:n.numClasses)||5,i=new o({classificationMethod:null==n?void 0:n.classificationMethod,colorRamp:null==n?void 0:n.colorRamp});let m=(null==n?void 0:n.field)||"value";const c=[],d=[],h=1e3,b=t(r),v=b&&r.fields.find((e=>"count"===e.name.toLowerCase())),y=b&&r.fields.find((e=>e.name.toLowerCase()===m.toLowerCase()));if(y&&v){m=y.name;const e=r.features.length;let t=0;r.features.forEach((n=>t+=n.attributes[v.name]/e)),r.features.forEach((n=>{const r=n.attributes[y.name],l=n.attributes[v.name];if(l>0){d.push(l);const n=Math.max(1,Math.round(l/e/t*h));for(let e=0;e<n;e++)c.push(r)}}))}else{const{pixelType:t}=e,n=(l.max-l.min)/l.size,r=t.indexOf("s")>-1||t.indexOf("u")>-1,a=r&&1===n?Math.floor(l.min+.5):l.min,o=r&&1===n?Math.floor(l.max-.5):l.max,s=l.size;let i=0;l.counts.forEach((e=>i+=e/s)),l.counts.forEach(((e,t)=>{if(e>0){d.push(e);const r=Math.max(1,Math.round(e/s/i*h)),u=0===t?a:t===s-1?o:l.min+n*(t+.5);for(let e=0;e<r;e++)c.push(u)}}))}const C=(null==n?void 0:n.classificationMethod)||"natural-breaks",w=p({values:c,valueFrequency:d,normalizationTotal:null,definition:new f({classificationMethod:C,breakCount:a,definedInterval:null==n?void 0:n.definedInterval})});let M=null==n?void 0:n.colors;if(!M){const e=(null==n?void 0:n.colorRamp)||x;i.colorRamp=e;const t=u(e,w.classBreaks.length,!0);M=t.map((e=>e.slice(1)))}const R=w.classBreaks.map(((e,t)=>new s({minValue:e.minValue,maxValue:e.maxValue,label:e.label,symbol:{type:"simple-fill",color:M[t]}})));return new g({field:m,classBreakInfos:R,authoringInfo:i})}function _(e){var t,n,r;return["u8","s8"].indexOf(e.pixelType)>-1&&null!=(null==(t=e.statistics)||null==(n=t[0])?void 0:n.min)&&null!=(null==(r=e.statistics[0])?void 0:r.max)&&1===e.bandCount}function G(t){const n=[];for(let r=0;r<t.length-1;r++)n[r]=new c({algorithm:"hsv",fromColor:t[r],toColor:t[r+1]||new e({r:255,g:255,b:255,a:1})});if(t.length>2){return new d({colorRamps:n})}return n[0]}function H(e){const{dataType:t}=e;return"vector-uv"===t||"vector-magdir"===t}function K(e){const{dataType:t}=e;return"vector-uv"===t||"vector-magdir"===t}const Q=new Map([["m/s","meter-per-second"],["km/h","kilometer-per-hour"],["knots","knots"],["ft/s","feet-per-second"],["mph","mile-per-hour"]]);function X(e){if(!H(e))return null;let n;if(t(e.statistics)&&e.statistics.length){const t="vector-uv"===e.dataType,{min:r,max:l}=e.statistics[0];n=[{type:"size",field:"Magnitude",minSize:10,maxSize:40,minDataValue:t?Math.min(Math.abs(r),Math.abs(l)):r,maxDataValue:t?Math.max(Math.abs(r),Math.abs(l)):l}]}const r=t(e.multidimensionalInfo)?Q.get(e.multidimensionalInfo.variables[0].unit):null,l=new C({visualVariables:n,inputUnit:r});return l.visualVariables=[...l.sizeVariables,...l.rotationVariables],l}function Y(e){var t;return{color:null==(t=e.symbolLayers[0].material)?void 0:t.color,type:"esriSFS",style:"esriSFSSolid"}}function Z(e){if("uniqueValue"===e.type){var t;const n=e.uniqueValueInfos,r=n[0].symbol;return null!=r&&null!=(t=r.symbolLayers)&&t.length&&(e.uniqueValueInfos=n.map((e=>({value:e.value,label:e.label,symbol:e.symbol?Y(e.symbol):null})))),e}if("classBreaks"===e.type){var n;const t=e.classBreakInfos,r=t[0].symbol;return null!=r&&null!=(n=r.symbolLayers)&&n.length&&(e.classBreakInfos=t.map((e=>({classMinValue:e.classMinValue,classMaxValue:e.classMaxValue,label:e.label,symbol:e.symbol?Y(e.symbol):null})))),e}return e}export{J as createClassBreaksRenderer,G as createColorRamp,F as createColormapRenderer,j as createDefaultRenderer,A as createShadedReliefRenderer,V as createStretchRenderer,q as createUVRenderer,X as createVectorFieldRenderer,L as getBandNames,E as getClassField,S as getDefaultBandCombination,T as getDefaultInterpolation,P as getField,k as getSupportedRendererTypes,B as getWellKnownBandIndexes,K as isAnimatedFlowRendererSupported,D as isClassBreaksSupported,W as isColormapRendererSupported,U as isShadedReliefRendererSupported,_ as isSingleBand8BitRasterWithStats,z as isUVRendererSupported,H as isVectorFieldRendererSupported,Z as normalizeRendererJSON};
5
+ import e from"../../Color.js";import"../../rasterRenderers.js";import{isSome as t,unwrap as n}from"../../core/maybe.js";import{getMetersPerUnitForSR as r}from"../../core/unitUtils.js";import l from"../../layers/support/Field.js";import a from"../../layers/support/RasterInfo.js";import o from"./AuthoringInfo.js";import s from"./ClassBreakInfo.js";import{PREDEFINED_JSON_COLOR_RAMPS as i,convertColorRampToColormap as u}from"./colorRampUtils.js";import m from"./UniqueValueInfo.js";import c from"../../rest/support/AlgorithmicColorRamp.js";import f from"../../rest/support/ClassBreaksDefinition.js";import{createGenerateRendererClassBreaks as p}from"../../rest/support/generateRendererUtils.js";import d from"../../rest/support/MultipartColorRamp.js";import h from"../RasterStretchRenderer.js";import b from"../UniqueValueRenderer.js";import v from"../RasterColormapRenderer.js";import y from"../RasterShadedReliefRenderer.js";import g from"../ClassBreaksRenderer.js";import C from"../VectorFieldRenderer.js";const w=.25,x=d.fromJSON({type:"multipart",colorRamps:[{fromColor:[0,0,255],toColor:[0,255,255]},{fromColor:[0,255,255],toColor:[255,255,0]},{fromColor:[255,255,0],toColor:[255,0,0]}]}),M=d.fromJSON(i[0]),R=new Set(["scientific","standard-time","vector-uv","vector-magdir","vector-u","vector-v","vector-magnitude","vector-direction"]);function j(e,n){const{attributeTable:r,colormap:l}=e;if(H(e)){const n=X(e);if(t(n))return n}if(t(l)){const n=F(e);if(t(n))return n}if(t(r)){const n=q(e);if(t(n))return n}return V(e,n)}function k(e){const t=["raster-stretch"];return W(e)&&t.push("raster-colormap"),z(e)&&t.push("unique-value"),D(e)&&t.push("class-breaks"),U(e)&&t.push("raster-shaded-relief"),H(e)&&t.push("vector-field"),K(e)&&t.push("animated-flow"),t}function T(e,t,n){const r=["nearest","bilinear","cubic","majority"].find((e=>e===(null==n?void 0:n.toLowerCase())));if("Map"===t)return null!=r?r:"bilinear";if("standard-time"===e.dataType)return null!=r?r:"nearest";return"thematic"===e.dataType||e.attributeTable||e.colormap?"nearest"===r||"majority"===r?r:"nearest":null!=r?r:"bilinear"}function V(e,r){var l,a,o,s;e=I(e,null==r?void 0:r.variableName);const{bandCount:i}=e;let{bandIds:u,stretchType:m}=r||{};null!=(l=u)&&l.some((e=>e>=i))&&(u=null);let c=n(e.statistics),f=n(e.histograms);var p;i>1?(u=null!=(p=u)&&p.length?u:S(e),c=null==c?null:u.map((e=>c[e])),f=null==f?null:u.map((e=>f[e]))):u=[0];null==m&&(m=O(e));let d=!1;switch(m){case"none":d=!1;break;case"percent-clip":d=!(null!=(a=f)&&a.length);break;default:d=!(null!=(o=c)&&o.length)}const{dataType:b}=e,v=1===(null==(s=u)?void 0:s.length)&&R.has(b)?x:null,y=new h({stretchType:m,dynamicRangeAdjustment:d,colorRamp:v,outputMin:0,outputMax:255,gamma:1===u.length?[1]:[1,1,1],useGamma:!1});return"percent-clip"===m?y.maxPercent=y.minPercent=w:"standard-deviation"===m&&(y.numberOfStandardDeviations=2),!d&&(t(e.multidimensionalInfo)||null!=r&&r.includeStatisticsInStretch)&&("percent-clip"===m?y.histograms=f:"min-max"!==m&&"standard-deviation"!==m||(y.statistics=c)),y}function I(e,r){if(null==r)return e;let l=n(e.statistics),o=n(e.histograms);const{multidimensionalInfo:s}=e;if(r&&t(s)){const{statistics:e,histograms:t}=s.variables.find((e=>e.name===r));null!=e&&e.length&&(l=e),null!=t&&t.length&&(o=t)}return a.fromJSON({...e.toJSON(),statistics:l,histograms:o})}function S(e){const t=e.bandCount;if(1===t)return null;if(2===t)return[0];const n=e.keyProperties&&e.keyProperties.BandProperties;let r;if(n&&n.length===t){const{red:e,green:t,blue:l,nir:a}=B(n);null!=e&&null!=t&&null!=l?r=[e,t,l]:null!=a&&null!=e&&null!=t&&(r=[a,e,t])}return!r&&t>=3&&(r=[0,1,2]),r}function L(e,t){var n;const r=e.keyProperties&&e.keyProperties.BandProperties;return(t=null!=(n=t)&&n.length?t:Array.from(Array(e.bandCount).keys())).map((t=>r&&r.length===e.bandCount&&r[t]&&r[t].BandName||"band_"+(t+1)))}function B(e){const t={};for(let r=0;r<e.length;r++){var n;const l=e[r],a=null==(n=l.BandName)?void 0:n.toLowerCase();if("red"===a)t.red=r;else if("green"===a)t.green=r;else if("blue"===a)t.blue=r;else if("nearinfrared"===a||"nearinfrared_1"===a||"nir"===a)t.nir=r;else if(l.WavelengthMax&&l.WavelengthMin){const e=l.WavelengthMin,n=l.WavelengthMax;null==t.blue&&e>=410&&e<=480&&n>=480&&n<=540?t.blue=r:null==t.green&&e>=490&&e<=560&&n>=560&&n<=610?t.green=r:null==t.red&&e>=595&&e<=670&&n>=660&&n<=730?t.red=r:null==t.nir&&e>=700&&e<=860&&n>=800&&n<=950&&(t.nir=r)}}return t}function O(e){let n="percent-clip";const{pixelType:r,dataType:l,histograms:a,statistics:o}=e;return"u8"!==r||"processed"!==l&&t(a)&&t(o)?"u8"===r||"elevation"===l||R.has(l)?n="min-max":t(a)?n="percent-clip":t(o)&&(n="min-max",n="min-max"):n="none",n}function q(n,r,l,a){if(!z(n,r))return null;const{attributeTable:s,statistics:i}=n,c=E(s,r),f=P(s,"red"),p=P(s,"green"),d=P(s,"blue"),h=new o,v=[],y=new Set,g=!!(f&&p&&d);if(t(s))s.features.forEach((t=>{const n=t.attributes[c.name];if(!y.has(t.attributes[c.name])&&null!=n){y.add(n);const r=g&&("single"===f.type||"double"===f.type)&&("single"===p.type||"double"===p.type)&&("single"===d.type||"double"===d.type)&&!s.features.some((e=>e.attributes[f.name]>1||e.attributes[p.name]>1||e.attributes[d.name]>1)),l=r?255:1;v.push(new m({value:t.attributes[c.name],label:t.attributes[c.name]+"",symbol:{type:"simple-fill",style:"solid",outline:null,color:new e(g?[t.attributes[f.name]*l,t.attributes[p.name]*l,t.attributes[d.name]*l,1]:[0,0,0,0])}}))}}));else if(null!=i&&i[0])for(let t=i[0].min;t<=i[0].max;t++)v.push(new m({value:t,label:t.toString(),symbol:{type:"simple-fill",style:"solid",outline:null,color:new e([0,0,0,0])}}));if(v.sort(((e,t)=>e.value&&"string"==typeof e.value.valueOf()?0:e.value>t.value?1:-1)),!g){const t=u(M,v.length);v.forEach(((n,r)=>n.symbol.color=new e(t[r].slice(1,4)))),h.colorRamp=M}if(l||a){const t=l||u(a,v.length).map((e=>e.slice(1)));v.forEach(((n,r)=>n.symbol.color=new e(t[r]))),h.colorRamp=a}return new b({field:c.name,uniqueValueInfos:v,authoringInfo:h})}function E(e,n,r){let a;return t(e)?(a=n?e.fields.find((e=>n.toLowerCase()===e.name.toLowerCase())):N(e.fields),a||(r||(a=e.fields.find((e=>"string"===e.type))),a||(a=P(e,"value")))):a=new l({name:"value"}),a}function N(e){let t;for(let n=0;n<e.length;n++){const r=e[n].name.toLowerCase();if("string"===e[n].type){if(r.startsWith("class")){t=e[n];break}null==t&&(r.endsWith("name")||r.endsWith("type"))&&(t=e[n])}}return t}function P(e,n){return t(e)?e.fields.find((e=>e.name.toLowerCase()===n)):null}function z(e,n){const{attributeTable:r,bandCount:l}=e;if(!t(r)&&_(e))return!0;if(!t(r)||l>1)return!1;if(n){if(null==r.fields.find((e=>e.name.toLowerCase()===n.toLowerCase())))return!1}return!0}function W(e){const{bandCount:n,colormap:r}=e;return t(r)&&r.length&&1===n}function F(e){if(!W(e))return null;let r;const{attributeTable:l,colormap:a}=e;if(t(l)){const e=P(l,"value"),t=E(l,null,!0);"string"===t.type&&(r={},l.features.forEach((n=>{const l=n.attributes;r[l[e.name]]=t?l[t.name]:l[e.name]})))}return v.createFromColormap(n(a),r)}function U(e){return"elevation"===e.dataType}function A(e,t){var n;if(!U(e))return null;const{extent:l}=e,a=l.width*r(l.spatialReference);return t=null!=(n=t)?n:"multi-directional",new y({hillshadeType:t,scalingType:a>5e6?"adjusted":"none"})}function D(e){const{attributeTable:n,bandCount:r}=e;return 1===r&&(t(n)||t(e.histograms))}function J(e,n){e=I(e,null==n?void 0:n.variableName);const{attributeTable:r}=e;if(!D(e))return null;const l=t(e.histograms)?e.histograms[0]:null,a=(null==n?void 0:n.numClasses)||5,i=new o({classificationMethod:null==n?void 0:n.classificationMethod,colorRamp:null==n?void 0:n.colorRamp});let m=(null==n?void 0:n.field)||"value";const c=[],d=[],h=1e3,b=t(r),v=b&&r.fields.find((e=>"count"===e.name.toLowerCase())),y=b&&r.fields.find((e=>e.name.toLowerCase()===m.toLowerCase()));if(y&&v){m=y.name;const e=r.features.length;let t=0;r.features.forEach((n=>t+=n.attributes[v.name]/e)),r.features.forEach((n=>{const r=n.attributes[y.name],l=n.attributes[v.name];if(l>0){d.push(l);const n=Math.max(1,Math.round(l/e/t*h));for(let e=0;e<n;e++)c.push(r)}}))}else{const{pixelType:t}=e,n=(l.max-l.min)/l.size,r=t.indexOf("s")>-1||t.indexOf("u")>-1,a=r&&1===n?Math.floor(l.min+.5):l.min,o=r&&1===n?Math.floor(l.max-.5):l.max,s=l.size;let i=0;l.counts.forEach((e=>i+=e/s)),l.counts.forEach(((e,t)=>{if(e>0){d.push(e);const r=Math.max(1,Math.round(e/s/i*h)),u=0===t?a:t===s-1?o:l.min+n*(t+.5);for(let e=0;e<r;e++)c.push(u)}}))}const C=(null==n?void 0:n.classificationMethod)||"natural-breaks",w=p({values:c,valueFrequency:d,normalizationTotal:null,definition:new f({classificationMethod:C,breakCount:a,definedInterval:null==n?void 0:n.definedInterval})});let M=null==n?void 0:n.colors;if(!M){const e=(null==n?void 0:n.colorRamp)||x;i.colorRamp=e;const t=u(e,w.classBreaks.length,!0);M=t.map((e=>e.slice(1)))}const R=w.classBreaks.map(((e,t)=>new s({minValue:e.minValue,maxValue:e.maxValue,label:e.label,symbol:{type:"simple-fill",color:M[t]}})));return new g({field:m,classBreakInfos:R,authoringInfo:i})}function _(e){var t,n,r;return["u8","s8"].indexOf(e.pixelType)>-1&&null!=(null==(t=e.statistics)||null==(n=t[0])?void 0:n.min)&&null!=(null==(r=e.statistics[0])?void 0:r.max)&&1===e.bandCount}function G(t){const n=[];for(let r=0;r<t.length-1;r++)n[r]=new c({algorithm:"hsv",fromColor:t[r],toColor:t[r+1]||new e({r:255,g:255,b:255,a:1})});if(t.length>2){return new d({colorRamps:n})}return n[0]}function H(e){const{dataType:t}=e;return"vector-uv"===t||"vector-magdir"===t}function K(e){const{dataType:t}=e;return"vector-uv"===t||"vector-magdir"===t}const Q=new Map([["m/s","meter-per-second"],["km/h","kilometer-per-hour"],["knots","knots"],["ft/s","feet-per-second"],["mph","mile-per-hour"]]);function X(e){if(!H(e))return null;let n;if(t(e.statistics)&&e.statistics.length){const t="vector-uv"===e.dataType,{min:r,max:l}=e.statistics[0];n=[{type:"size",field:"Magnitude",minSize:10,maxSize:40,minDataValue:t?Math.min(Math.abs(r),Math.abs(l)):r,maxDataValue:t?Math.max(Math.abs(r),Math.abs(l)):l}]}const r=t(e.multidimensionalInfo)?Q.get(e.multidimensionalInfo.variables[0].unit):null,l=new C({visualVariables:n,inputUnit:r,rotationType:"geographic"});return l.visualVariables=[...l.sizeVariables,...l.rotationVariables],l}function Y(e){var t;return{color:null==(t=e.symbolLayers[0].material)?void 0:t.color,type:"esriSFS",style:"esriSFSSolid"}}function Z(e){if("uniqueValue"===e.type){var t;const n=e.uniqueValueInfos,r=n[0].symbol;return null!=r&&null!=(t=r.symbolLayers)&&t.length&&(e.uniqueValueInfos=n.map((e=>({value:e.value,label:e.label,symbol:e.symbol?Y(e.symbol):null})))),e}if("classBreaks"===e.type){var n;const t=e.classBreakInfos,r=t[0].symbol;return null!=r&&null!=(n=r.symbolLayers)&&n.length&&(e.classBreakInfos=t.map((e=>({classMinValue:e.classMinValue,classMaxValue:e.classMaxValue,label:e.label,symbol:e.symbol?Y(e.symbol):null})))),e}return e}export{J as createClassBreaksRenderer,G as createColorRamp,F as createColormapRenderer,j as createDefaultRenderer,A as createShadedReliefRenderer,V as createStretchRenderer,q as createUVRenderer,X as createVectorFieldRenderer,L as getBandNames,E as getClassField,S as getDefaultBandCombination,T as getDefaultInterpolation,P as getField,k as getSupportedRendererTypes,B as getWellKnownBandIndexes,K as isAnimatedFlowRendererSupported,D as isClassBreaksSupported,W as isColormapRendererSupported,U as isShadedReliefRendererSupported,_ as isSingleBand8BitRasterWithStats,z as isUVRendererSupported,H as isVectorFieldRendererSupported,Z as normalizeRendererJSON};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.22/esri/copyright.txt for details.
4
4
  */
5
- import t from"../../../request.js";import{isSome as e}from"../../../core/maybe.js";import{join as r,urlToObject as n}from"../../../core/urlUtils.js";import{getJsonType as i}from"../../../geometry/support/jsonUtils.js";import{normalizeCentralMeridian as o}from"../../../geometry/support/normalizeUtils.js";import{parsePBFFeatureQuery as s}from"./pbfQueryUtils.js";import{applyFeatureSetZUnitScaling as a}from"./queryZScale.js";import{mapParameters as u}from"../../../tasks/operations/urlUtils.js";const l="Layer does not support extent calculation.";function m(t,r){const n=t.geometry,o=t.toJSON(),s=o,a=t.outSpatialReference;let u,l;if(e(n)){if(u=n.spatialReference,l=n.spatialReference.wkid||JSON.stringify(n.spatialReference),s.geometryType=i(n),"extent"===n.type)s.geometry=`${n.xmin},${n.ymin},${n.xmax},${n.ymax}`;else if("point"===n.type)s.geometry=`${n.x},${n.y}`;else{const t=n.toJSON();delete t.spatialReference,s.geometry=JSON.stringify(t)}s.inSR=l}if(u||(u=a),o.groupByFieldsForStatistics&&(s.groupByFieldsForStatistics=o.groupByFieldsForStatistics.join(",")),o.objectIds&&(s.objectIds=o.objectIds.join(",")),o.orderByFields&&(s.orderByFields=o.orderByFields.join(",")),!o.outFields||!o.returnDistinctValues&&(null!=r&&r.returnCountOnly||null!=r&&r.returnExtentOnly||null!=r&&r.returnIdsOnly)?delete s.outFields:-1!==o.outFields.indexOf("*")?s.outFields="*":s.outFields=o.outFields.join(","),o.outSR?s.outSR=o.outSR.wkid||JSON.stringify(o.outSR):n&&(o.returnGeometry||o.returnCentroid)&&(s.outSR=s.inSR),o.returnGeometry&&delete o.returnGeometry,o.outStatistics&&(s.outStatistics=JSON.stringify(o.outStatistics)),o.pixelSize&&(s.pixelSize=JSON.stringify(o.pixelSize)),o.quantizationParameters&&(e(u)&&e(t.quantizationParameters)&&e(t.quantizationParameters.extent)&&u.equals(t.quantizationParameters.extent.spatialReference)&&delete o.quantizationParameters.extent.spatialReference,s.quantizationParameters=JSON.stringify(o.quantizationParameters)),o.parameterValues&&(s.parameterValues=JSON.stringify(o.parameterValues)),o.rangeValues&&(s.rangeValues=JSON.stringify(o.rangeValues)),o.dynamicDataSource&&(s.layer=JSON.stringify({source:o.dynamicDataSource}),delete o.dynamicDataSource),o.timeExtent){const t=o.timeExtent,{start:e,end:r}=t;null==e&&null==r||(s.time=e===r?e:`${null==e?"null":e},${null==r?"null":r}`),delete o.timeExtent}return s}async function y(t,r,n,i){const o=e(r.timeExtent)&&r.timeExtent.isEmpty?{data:{features:[]}}:await S(t,r,"json",i);return a(r,n,o.data),o}async function c(t,r,n,i){if(e(r.timeExtent)&&r.timeExtent.isEmpty)return Promise.resolve({data:n.createFeatureResult()});const o=await f(t,r,i),a=o;return a.data=s(o.data,n),a}function f(t,e,r){return S(t,e,"pbf",r)}function p(t,r,n){return e(r.timeExtent)&&r.timeExtent.isEmpty?Promise.resolve({data:{objectIds:[]}}):S(t,r,"json",n,{returnIdsOnly:!0})}function d(t,r,n){return e(r.timeExtent)&&r.timeExtent.isEmpty?Promise.resolve({data:{count:0}}):S(t,r,"json",n,{returnIdsOnly:!0,returnCountOnly:!0})}function x(t,r,n){return e(r.timeExtent)&&r.timeExtent.isEmpty?Promise.resolve({data:{count:0,extent:null}}):S(t,r,"json",n,{returnExtentOnly:!0,returnCountOnly:!0}).then((t=>{const e=t.data;if(e.hasOwnProperty("extent"))return t;if(e.features)throw new Error(l);if(e.hasOwnProperty("count"))throw new Error(l);return t}))}function S(i,s,a,l={},y={}){const c="string"==typeof i?n(i):i,f=s.geometry?[s.geometry]:[];return l.responseType="pbf"===a?"array-buffer":"json",o(f,null,l).then((n=>{const i=n&&n[0];e(i)&&((s=s.clone()).geometry=i);const o=u({...c.query,f:a,...y,...m(s,y)});return t(r(c.path,"query"),{...l,query:{...o,...l.query}})}))}export{y as executeQuery,d as executeQueryForCount,x as executeQueryForExtent,p as executeQueryForIds,c as executeQueryPBF,f as executeQueryPBFBuffer,m as queryToQueryStringParameters,S as runQuery};
5
+ import t from"../../../request.js";import{isSome as e}from"../../../core/maybe.js";import{join as r,urlToObject as n}from"../../../core/urlUtils.js";import{getJsonType as i}from"../../../geometry/support/jsonUtils.js";import{normalizeCentralMeridian as o}from"../../../geometry/support/normalizeUtils.js";import{isHostedAgolService as s}from"../../../layers/support/arcgisLayerUrl.js";import{parsePBFFeatureQuery as a}from"./pbfQueryUtils.js";import{applyFeatureSetZUnitScaling as u}from"./queryZScale.js";import{mapParameters as l}from"../../../tasks/operations/urlUtils.js";const m="Layer does not support extent calculation.";function y(t,r,n=!1){const o=t.geometry,s=t.toJSON(),a=s,u=t.outSpatialReference;let l,m;if(e(o)){if(l=o.spatialReference,m=o.spatialReference.wkid||JSON.stringify(o.spatialReference),a.geometryType=i(o),"extent"===o.type)a.geometry=`${o.xmin},${o.ymin},${o.xmax},${o.ymax}`;else if("point"===o.type)a.geometry=`${o.x},${o.y}`;else{const t=o.toJSON();delete t.spatialReference,a.geometry=JSON.stringify(t)}a.inSR=m}if(l||(l=u),s.groupByFieldsForStatistics&&(a.groupByFieldsForStatistics=s.groupByFieldsForStatistics.join(",")),s.objectIds&&(a.objectIds=s.objectIds.join(",")),s.orderByFields&&(a.orderByFields=s.orderByFields.join(",")),!s.outFields||!s.returnDistinctValues&&(null!=r&&r.returnCountOnly||null!=r&&r.returnExtentOnly||null!=r&&r.returnIdsOnly)?delete a.outFields:-1!==s.outFields.indexOf("*")?a.outFields="*":a.outFields=s.outFields.join(","),s.outSR?a.outSR=s.outSR.wkid||JSON.stringify(s.outSR):o&&(s.returnGeometry||s.returnCentroid)&&(a.outSR=a.inSR),s.returnGeometry&&delete s.returnGeometry,s.outStatistics&&(a.outStatistics=JSON.stringify(s.outStatistics)),s.pixelSize&&(a.pixelSize=JSON.stringify(s.pixelSize)),s.quantizationParameters&&(n&&e(l)&&e(t.quantizationParameters)&&e(t.quantizationParameters.extent)&&l.equals(t.quantizationParameters.extent.spatialReference)&&delete s.quantizationParameters.extent.spatialReference,a.quantizationParameters=JSON.stringify(s.quantizationParameters)),s.parameterValues&&(a.parameterValues=JSON.stringify(s.parameterValues)),s.rangeValues&&(a.rangeValues=JSON.stringify(s.rangeValues)),s.dynamicDataSource&&(a.layer=JSON.stringify({source:s.dynamicDataSource}),delete s.dynamicDataSource),s.timeExtent){const t=s.timeExtent,{start:e,end:r}=t;null==e&&null==r||(a.time=e===r?e:`${null==e?"null":e},${null==r?"null":r}`),delete s.timeExtent}return a}async function c(t,r,n,i){const o=e(r.timeExtent)&&r.timeExtent.isEmpty?{data:{features:[]}}:await g(t,r,"json",i);return u(r,n,o.data),o}async function p(t,r,n,i){if(e(r.timeExtent)&&r.timeExtent.isEmpty)return Promise.resolve({data:n.createFeatureResult()});const o=await f(t,r,i),s=o;return s.data=a(o.data,n),s}function f(t,e,r){return g(t,e,"pbf",r)}function d(t,r,n){return e(r.timeExtent)&&r.timeExtent.isEmpty?Promise.resolve({data:{objectIds:[]}}):g(t,r,"json",n,{returnIdsOnly:!0})}function x(t,r,n){return e(r.timeExtent)&&r.timeExtent.isEmpty?Promise.resolve({data:{count:0}}):g(t,r,"json",n,{returnIdsOnly:!0,returnCountOnly:!0})}function S(t,r,n){return e(r.timeExtent)&&r.timeExtent.isEmpty?Promise.resolve({data:{count:0,extent:null}}):g(t,r,"json",n,{returnExtentOnly:!0,returnCountOnly:!0}).then((t=>{const e=t.data;if(e.hasOwnProperty("extent"))return t;if(e.features)throw new Error(m);if(e.hasOwnProperty("count"))throw new Error(m);return t}))}function g(i,a,u,m={},c={}){const p="string"==typeof i?n(i):i,f=a.geometry?[a.geometry]:[];return m.responseType="pbf"===u?"array-buffer":"json",o(f,null,m).then((n=>{const i=n&&n[0];e(i)&&((a=a.clone()).geometry=i);const o=s(p.path),f=l({...p.query,f:u,...c,...y(a,c,o)});return t(r(p.path,"query"),{...m,query:{...f,...m.query}})}))}export{c as executeQuery,x as executeQueryForCount,S as executeQueryForExtent,d as executeQueryForIds,p as executeQueryPBF,f as executeQueryPBFBuffer,y as queryToQueryStringParameters,g as runQuery};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.22/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../core/Error.js";import{isSome as r}from"../../../core/maybe.js";import{formatNumber as a}from"../../../intl/number.js";import{createClassBreaksRenderer as t,getField as s}from"../../../renderers/support/rasterRendererHelper.js";import{processRasterRendererParameters as n}from"../support/utils.js";async function o(a){const t=(a=await n(a)).layer,{rasterInfo:o}=t;if(o.bandCount>1)throw new e("raster-class-breaks-renderer:not-supported","Multiband raster is not supported");if(!r(o.attributeTable)&&!r(o.histograms)&&(await t.updateRasterInfoWithEstimatedStats({renderingRule:a.renderingRule,signal:a.signal}),!r(o.histograms)))throw new e("raster-class-breaks-renderer:not-supported","Histograms or raster attribute table is required on the source raster. Unable to estimate histograms");const{colors:i,numClasses:l}=a;if(i&&l&&i.length!==l)throw new e("raster-class-breaks-renderer:not-supported","The size of the `colors` parameter does not match 'numClasses'");return a.field||(a.field=r(o.attributeTable)?s(o.attributeTable,"value").name:"value"),a.classificationMethod||(a.classificationMethod="natural-breaks"),a}async function i(a){a=await o(a);const s=t(a.layer.rasterInfo,a);if(!r(s))throw new e("raster-class-breaks-renderer:not-supported","Class breaks renderer is not supported on this data");const n={minValue:s.minValue,maxValue:s.classBreakInfos[s.classBreakInfos.length-1].maxValue,normalizationTotal:null,classBreakInfos:s.classBreakInfos.map((e=>{const r=l(e.minValue,e.maxValue);return e.label=r,{minValue:e.minValue,maxValue:e.maxValue,label:r}}))};return{renderer:s,classBreaksResult:n}}function l(e,r){return a(e,{maximumFractionDigits:3})+" - "+a(r,{maximumFractionDigits:3})}export{i as createRenderer};
5
+ import e from"../../../core/Error.js";import{isSome as r}from"../../../core/maybe.js";import{formatNumber as a}from"../../../intl/number.js";import{createClassBreaksRenderer as t,getField as s}from"../../../renderers/support/rasterRendererHelper.js";import{processRasterRendererParameters as n}from"../support/utils.js";async function o(a){const t=(a=await n(a)).layer,{rasterInfo:o}=t;if(o.bandCount>1)throw new e("raster-class-breaks-renderer:not-supported","Multiband raster is not supported");a.field||(a.field=r(o.attributeTable)?s(o.attributeTable,"value").name:"value");const i=r(o.attributeTable),l=i&&o.attributeTable.fields.find((e=>"count"===e.name.toLowerCase())),u=i&&o.attributeTable.fields.find((e=>e.name.toLowerCase()===a.field.toLowerCase()));if(!(l&&u||r(o.histograms)||(await t.updateRasterInfoWithEstimatedStats({renderingRule:a.renderingRule,signal:a.signal}),r(o.histograms))))throw new e("raster-class-breaks-renderer:not-supported","Histograms or raster attribute table is required on the source raster. Unable to estimate histograms");const{colors:m,numClasses:c}=a;if(m&&c&&m.length!==c)throw new e("raster-class-breaks-renderer:not-supported","The size of the `colors` parameter does not match 'numClasses'");return a.classificationMethod||(a.classificationMethod="natural-breaks"),a}async function i(a){a=await o(a);const s=t(a.layer.rasterInfo,a);if(!r(s))throw new e("raster-class-breaks-renderer:not-supported","Class breaks renderer is not supported on this data");const n={minValue:s.minValue,maxValue:s.classBreakInfos[s.classBreakInfos.length-1].maxValue,normalizationTotal:null,classBreakInfos:s.classBreakInfos.map((e=>{const r=l(e.minValue,e.maxValue);return e.label=r,{minValue:e.minValue,maxValue:e.maxValue,label:r}}))};return{renderer:s,classBreaksResult:n}}function l(e,r){return a(e,{maximumFractionDigits:3})+" - "+a(r,{maximumFractionDigits:3})}export{i as createRenderer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.22/esri/copyright.txt for details.
4
4
  */
5
- import{p as e,c as r,e as n,a as t,r as u,l as i,b as a,d as s,f as o,s as l,g as c}from"../chunks/arcade.js";export{h as arcade}from"../chunks/arcade.js";import f from"../arcade/Dictionary.js";export{default as Dictionary}from"../arcade/Dictionary.js";import p from"../arcade/Feature.js";export{default as arcadeFeature}from"../arcade/Feature.js";import{clone as m}from"../core/lang.js";import{isSizeVariable as d}from"../renderers/visualVariables/support/sizeVariableUtils.js";const y=/^\$(feature|aggregatedFeatures)\./i,v={vars:{$feature:"any",$view:"any"},spatialReference:null};function x(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")}function g(r){if(!r)return null;try{return e(r)}catch(n){}return null}function w(e,n){const t="string"==typeof e?g(e):e;if(!t)return null;try{return n=n||m(v),r(t,n)}catch(u){}return null}function E(e,r){return{vars:{$feature:null==e?new p:p.createFromGraphic(e),$view:r&&r.view},spatialReference:r&&r.sr}}function F(e,r,n){return p.createFromGraphicLikeObject(r,e,n)}function $(e,r){e.vars.$feature=r}function b(e,r){let t;try{t=n(e,r)}catch(u){t=null}return t}function j(e,r){let n;try{n=e?e(r):null}catch(t){n=null}return n}function S(e,r){try{return e?e(r):Promise.resolve(null)}catch(n){return Promise.resolve(null)}}function R(e,r){if(!e)return[];const n="string"==typeof e?g(e):e;if(!n)return[];const u=t(n);let i=new Array;u.forEach((e=>{y.test(e)&&(e=e.replace(y,""),i.push(e))}));const a=i.filter((e=>e.includes("*")));return i=i.filter((e=>!a.includes(e))),r&&a.forEach((e=>{const n=new RegExp(`^${e.split(/\*+/).map(x).join(".*")}$`,"i");r.forEach((e=>n.test(e)?i.push(e):null))})),[...new Set(i.sort())]}function z(e){return u(e,"$view")}function C(e,r){return!!e&&u(e,r)}function M(e){if(!e||null==e.spatialReference&&(null==e.scale||null==e.viewingMode))return;return{view:e.viewingMode&&null!=e.scale?new f({viewingMode:e.viewingMode,scale:e.scale}):null,sr:e.spatialReference}}function k({url:e,spatialReference:r,lrucache:n,interceptor:t}){const u=o();return u?u.createFeatureSetCollectionFromService(e,r,n,t):null}function I({layer:e,spatialReference:r,outFields:n,returnGeometry:t,lrucache:u,interceptor:i}){if(null===e)return null;const a=o();return a?a.constructFeatureSet(e,r,n,null==t||t,u,i):null}function D(e){if(null===(null==e?void 0:e.map))return null;const r=o();return r?r.createFeatureSetCollectionFromMap(e.map,e.spatialReference,e.lrucache,e.interceptor):null}function G(e,r,n=[]){return i(e,r,n)}function P(){return a()}function V(){return s()}function L(e){return"simple"===e.type||"class-breaks"===e.type||"unique-value"===e.type||"dot-density"===e.type||"dictionary"===e.type}function q(e){return"esri.layers.support.LabelClass"===e.declaredClass}function A(e){return"esri.PopupTemplate"===e.declaredClass}function O(e,r){if(!e)return!1;if("string"==typeof e)return r(e);const n=e;if(L(n)){if("dot-density"===n.type){const e=n.attributes.some((e=>r(e.valueExpression)));if(e)return e}const e=n.visualVariables,t=!!e&&e.some((e=>{let n=r(e.valueExpression);return"size"===e.type&&(d(e.minSize)&&(n=n||r(e.minSize.valueExpression)),d(e.maxSize)&&(n=n||r(e.maxSize.valueExpression))),n}));return!(!("valueExpression"in n)||!r(n.valueExpression))||t}if(q(n)){const e=n.labelExpressionInfo&&n.labelExpressionInfo.expression;return!(!e||!r(e))||!1}return!!A(n)&&(!!n.expressionInfos&&n.expressionInfos.some((e=>r(e.expression))))}function T(e){const r=g(e);return!!r&&l(r)}function U(e){return O(e,T)}function B(e){const r=g(e);return!!r&&c(r)}function H(e){return O(e,B)}export{I as convertFeatureLayerToFeatureSet,D as convertMapToFeatureSetCollection,k as convertServiceUrlToWorkspace,E as createExecContext,F as createFeature,w as createFunction,g as createSyntaxTree,z as dependsOnView,V as enableFeatureSetOperations,P as enableGeometryOperations,b as evalSyntaxTree,S as executeAsyncFunction,j as executeFunction,R as extractFieldNames,M as getViewInfo,U as hasGeometryFunctions,H as hasGeometryOperations,C as hasVariable,G as loadScriptDependencies,$ as updateExecContext};
5
+ import{p as e,c as r,e as n,a as t,r as u,l as s,b as i,d as a,f as o,s as l,g as c}from"../chunks/arcade.js";export{h as arcade}from"../chunks/arcade.js";import f from"../arcade/Dictionary.js";export{default as Dictionary}from"../arcade/Dictionary.js";import p from"../arcade/Feature.js";export{default as arcadeFeature}from"../arcade/Feature.js";import{clone as m}from"../core/lang.js";import{isSizeVariable as d}from"../renderers/visualVariables/support/sizeVariableUtils.js";const y=/^\$(feature|aggregatedFeatures)\./i,v={vars:{$feature:"any",$view:"any"},spatialReference:null};function x(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")}function g(r){if(!r)return null;try{return e(r)}catch(n){}return null}function w(e,n){const t="string"==typeof e?g(e):e;if(!t)return null;try{return n=n||m(v),r(t,n)}catch(u){}return null}function E(e,r){return{vars:{$feature:null==e?new p:p.createFromGraphic(e),$view:r&&r.view},spatialReference:r&&r.sr}}function F(e,r,n){return p.createFromGraphicLikeObject(r,e,n)}function $(e,r){e.vars.$feature=r}function b(e,r){let t;try{t=n(e,r)}catch(u){t=null}return t}function j(e,r){let n;try{n=e?e(r):null}catch(t){n=null}return n}function S(e,r){try{return e?e(r):Promise.resolve(null)}catch(n){return Promise.resolve(null)}}function R(e,r){if(!e)return[];const n="string"==typeof e?g(e):e;if(!n)return[];const u=t(n);let s=new Array;u.forEach((e=>{y.test(e)&&(e=e.replace(y,""),s.push(e))}));const i=s.filter((e=>e.includes("*")));return s=s.filter((e=>!i.includes(e))),r&&i.forEach((e=>{const n=new RegExp(`^${e.split(/\*+/).map(x).join(".*")}$`,"i");r.forEach((e=>n.test(e)?s.push(e):null))})),[...new Set(s.sort())]}function z(e){return u(e,"$view")}function C(e,r){return!!e&&u(e,r)}function I(e){if(!e||null==e.spatialReference&&(null==e.scale||null==e.viewingMode))return;return{view:e.viewingMode&&null!=e.scale?new f({viewingMode:e.viewingMode,scale:e.scale}):null,sr:e.spatialReference}}function M({url:e,spatialReference:r,lrucache:n,interceptor:t}){const u=o();return u?u.createFeatureSetCollectionFromService(e,r,n,t):null}function k({layer:e,spatialReference:r,outFields:n,returnGeometry:t,lrucache:u,interceptor:s}){if(null===e)return null;const i=o();return i?i.constructFeatureSet(e,r,n,null==t||t,u,s):null}function A(e){if(null===(null==e?void 0:e.map))return null;const r=o();return r?r.createFeatureSetCollectionFromMap(e.map,e.spatialReference,e.lrucache,e.interceptor):null}function D(e,r,n=[]){return s(e,r,n)}function G(){return i()}function P(){return a()}function V(e){return"simple"===e.type||"class-breaks"===e.type||"unique-value"===e.type||"dot-density"===e.type||"dictionary"===e.type}function L(e){return"esri.layers.support.LabelClass"===e.declaredClass}function q(e){return"esri.PopupTemplate"===e.declaredClass}function O(e,r){if(!e)return!1;if("string"==typeof e)return r(e);const n=e;if(V(n)){if("dot-density"===n.type){const e=n.attributes.some((e=>r(e.valueExpression)));if(e)return e}const e=n.visualVariables,t=!!e&&e.some((e=>{let n=r(e.valueExpression);return"size"===e.type&&(d(e.minSize)&&(n=n||r(e.minSize.valueExpression)),d(e.maxSize)&&(n=n||r(e.maxSize.valueExpression))),n}));return!(!("valueExpression"in n)||!r(n.valueExpression))||t}if(L(n)){const e=n.labelExpressionInfo&&n.labelExpressionInfo.expression;return!(!e||!r(e))||!1}return!!q(n)&&(!!n.expressionInfos&&n.expressionInfos.some((e=>r(e.expression)))||Array.isArray(n.content)&&n.content.some((e=>{var n;return"expression"===e.type&&r(null==(n=e.expressionInfo)?void 0:n.expression)})))}function T(e){const r=g(e);return!!r&&l(r)}function U(e){return O(e,T)}function B(e){const r=g(e);return!!r&&c(r)}function H(e){return O(e,B)}export{k as convertFeatureLayerToFeatureSet,A as convertMapToFeatureSetCollection,M as convertServiceUrlToWorkspace,E as createExecContext,F as createFeature,w as createFunction,g as createSyntaxTree,z as dependsOnView,P as enableFeatureSetOperations,G as enableGeometryOperations,b as evalSyntaxTree,S as executeAsyncFunction,j as executeFunction,R as extractFieldNames,I as getViewInfo,U as hasGeometryFunctions,H as hasGeometryOperations,C as hasVariable,D as loadScriptDependencies,$ as updateExecContext};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.22/esri/copyright.txt for details.
4
4
  */
5
- const c="20211205",e="2348c1bd36c46e15169193c563f74dce748bf5a1";export{c as buildDate,e as commitHash};
5
+ const a="20211214",b="2f62aa11eb308d30278a805efbaca7231370b0d8";export{a as buildDate,b as commitHash};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.22/esri/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../../chunks/tslib.es6.js";import"../../geometry.js";import t from"../../core/Evented.js";import{property as e}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as r}from"../../core/accessorSupport/decorators/subclass.js";import s from"../../layers/support/LOD.js";import{GeometryConstraint as i}from"./constraints/GeometryConstraint.js";import a from"./constraints/RotationConstraint.js";import n from"./constraints/ZoomConstraint.js";import m from"../../geometry/Extent.js";import l from"../../geometry/Polygon.js";const p={base:null,key:"type",typeMap:{extent:m,polygon:l}};let c=class extends t.EventedAccessor{constructor(){super(...arguments),this.lods=null,this.minScale=0,this.maxScale=0,this.minZoom=-1,this.maxZoom=-1,this.rotationEnabled=!0,this.snapToZoom=!0}initialize(){this.watch(["_zoom","_rotation"],this.emit.bind(this,"update"),!0)}destroy(){this.view=null,this._set("_zoom",null),this._set("_rotation",null)}set geometry(o){o?this._set("geometry",o):this._set("geometry",null)}get _defaultLODs(){const o=this.get("view.defaultsFromMap.tileInfo"),t=this.get("view.spatialReference");return o&&t&&o.spatialReference.equals(t)?o.lods:null}get _geometry(){return new i({geometry:this.geometry,spatialReference:this.view.spatialReference})}get _rotation(){return new a({rotationEnabled:this.rotationEnabled})}get _zoom(){return new n({lods:this.lods||this._defaultLODs,minZoom:this.minZoom,maxZoom:this.maxZoom,minScale:this.minScale,maxScale:this.maxScale,snapToZoom:this.snapToZoom})}canZoomInTo(o){const t=this.effectiveMaxScale;return 0===t||o>=t}canZoomOutTo(o){const t=this.effectiveMinScale;return 0===t||o<=t}constrain(o,t){return this._zoom.constrain(o,t),this._rotation.constrain(o,t),this._geometry.constrain(o,t),o}constrainByGeometry(o){return this._geometry.constrain(o)}fit(o){return this._zoom.fit(o)}zoomToScale(o){return this._zoom.zoomToScale(o)}scaleToZoom(o){return this._zoom.scaleToZoom(o)}snapScale(o){return this._zoom.snapToClosestScale(o)}snapToNextScale(o){return this._zoom.snapToNextScale(o)}snapToPreviousScale(o){return this._zoom.snapToPreviousScale(o)}};o([e({readOnly:!0,aliasOf:"_zoom.effectiveLODs"})],c.prototype,"effectiveLODs",void 0),o([e({readOnly:!0,aliasOf:"_zoom.effectiveMinScale"})],c.prototype,"effectiveMinScale",void 0),o([e({readOnly:!0,aliasOf:"_zoom.effectiveMaxScale"})],c.prototype,"effectiveMaxScale",void 0),o([e({readOnly:!0,aliasOf:"_zoom.effectiveMinZoom"})],c.prototype,"effectiveMinZoom",void 0),o([e({readOnly:!0,aliasOf:"_zoom.effectiveMaxZoom"})],c.prototype,"effectiveMaxZoom",void 0),o([e({types:p,value:null})],c.prototype,"geometry",null),o([e({type:[s]})],c.prototype,"lods",void 0),o([e()],c.prototype,"minScale",void 0),o([e()],c.prototype,"maxScale",void 0),o([e()],c.prototype,"minZoom",void 0),o([e()],c.prototype,"maxZoom",void 0),o([e()],c.prototype,"rotationEnabled",void 0),o([e()],c.prototype,"snapToZoom",void 0),o([e()],c.prototype,"view",void 0),o([e()],c.prototype,"_defaultLODs",null),o([e({type:i})],c.prototype,"_geometry",null),o([e({type:a})],c.prototype,"_rotation",null),o([e({readOnly:!0,type:n})],c.prototype,"_zoom",null),c=o([r("esri.views.2d.MapViewConstraints")],c);const y=c;export{y as default};
5
+ import{_ as o}from"../../chunks/tslib.es6.js";import"../../geometry.js";import t from"../../core/Evented.js";import{property as e}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import r from"../../layers/support/LOD.js";import{GeometryConstraint as i}from"./constraints/GeometryConstraint.js";import a from"./constraints/RotationConstraint.js";import n from"./constraints/ZoomConstraint.js";import m from"../../geometry/Extent.js";import l from"../../geometry/Polygon.js";const p={base:null,key:"type",typeMap:{extent:m,polygon:l}};let c=class extends t.EventedAccessor{constructor(){super(...arguments),this.lods=null,this.minScale=0,this.maxScale=0,this.minZoom=-1,this.maxZoom=-1,this.rotationEnabled=!0,this.snapToZoom=!0}initialize(){this.watch(["_zoom","_rotation"],this.emit.bind(this,"update"),!0)}destroy(){this.view=null,this._set("_zoom",null),this._set("_rotation",null)}set geometry(o){o?this._set("geometry",o):this._set("geometry",null)}get _defaultLODs(){var o,t,e;const s=null==(o=this.view)||null==(t=o.defaultsFromMap)?void 0:t.tileInfo,r=null==(e=this.view)?void 0:e.spatialReference;return s&&r&&s.spatialReference.equals(r)?s.lods:null}get _geometry(){return new i({geometry:this.geometry,spatialReference:this.view.spatialReference})}get _rotation(){return new a({rotationEnabled:this.rotationEnabled})}get _zoom(){const o=this._get("_zoom"),t=this.lods||this._defaultLODs,e=this.minZoom,s=this.maxZoom,r=this.minScale,i=this.maxScale,a=this.snapToZoom;return o&&o.lods===t&&o.minZoom===e&&o.maxZoom===s&&o.minScale===r&&o.maxScale===i&&o.snapToZoom===a?o:new n({lods:t,minZoom:e,maxZoom:s,minScale:r,maxScale:i,snapToZoom:a})}canZoomInTo(o){const t=this.effectiveMaxScale;return 0===t||o>=t}canZoomOutTo(o){const t=this.effectiveMinScale;return 0===t||o<=t}constrain(o,t){return this._zoom.constrain(o,t),this._rotation.constrain(o,t),this._geometry.constrain(o,t),o}constrainByGeometry(o){return this._geometry.constrain(o)}fit(o){return this._zoom.fit(o)}zoomToScale(o){return this._zoom.zoomToScale(o)}scaleToZoom(o){return this._zoom.scaleToZoom(o)}snapScale(o){return this._zoom.snapToClosestScale(o)}snapToNextScale(o){return this._zoom.snapToNextScale(o)}snapToPreviousScale(o){return this._zoom.snapToPreviousScale(o)}};o([e({readOnly:!0,aliasOf:"_zoom.effectiveLODs"})],c.prototype,"effectiveLODs",void 0),o([e({readOnly:!0,aliasOf:"_zoom.effectiveMinScale"})],c.prototype,"effectiveMinScale",void 0),o([e({readOnly:!0,aliasOf:"_zoom.effectiveMaxScale"})],c.prototype,"effectiveMaxScale",void 0),o([e({readOnly:!0,aliasOf:"_zoom.effectiveMinZoom"})],c.prototype,"effectiveMinZoom",void 0),o([e({readOnly:!0,aliasOf:"_zoom.effectiveMaxZoom"})],c.prototype,"effectiveMaxZoom",void 0),o([e({types:p,value:null})],c.prototype,"geometry",null),o([e({type:[r]})],c.prototype,"lods",void 0),o([e()],c.prototype,"minScale",void 0),o([e()],c.prototype,"maxScale",void 0),o([e()],c.prototype,"minZoom",void 0),o([e()],c.prototype,"maxZoom",void 0),o([e()],c.prototype,"rotationEnabled",void 0),o([e()],c.prototype,"snapToZoom",void 0),o([e()],c.prototype,"view",void 0),o([e()],c.prototype,"_defaultLODs",null),o([e({type:i})],c.prototype,"_geometry",null),o([e({type:a})],c.prototype,"_rotation",null),o([e({readOnly:!0,type:n})],c.prototype,"_zoom",null),c=o([s("esri.views.2d.MapViewConstraints")],c);const y=c;export{y as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.22/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as s}from"../../../core/accessorSupport/decorators/subclass.js";import i from"../../../layers/support/LOD.js";var a;let c=a=class extends t{constructor(e){super(e),this._lodByScale={},this._scales=[],this.effectiveLODs=null,this.effectiveMinZoom=-1,this.effectiveMaxZoom=-1,this.effectiveMinScale=0,this.effectiveMaxScale=0,this.lods=null,this.minZoom=-1,this.maxZoom=-1,this.minScale=0,this.maxScale=0,this.snapToZoom=!0}initialize(){let e,{lods:t,minScale:o,maxScale:s,minZoom:i,maxZoom:a}=this,c=-1,r=-1,l=!1,n=!1;if(0!==o&&0!==s&&o<s&&([o,s]=[s,o]),!t||!t.length)return this._set("effectiveMinScale",o),void this._set("effectiveMaxScale",s);t=t.map((e=>e.clone())),t.sort(((e,t)=>t.scale-e.scale)),t.forEach(((e,t)=>e.level=t));for(const f of t)!l&&o>0&&o>=f.scale&&(c=f.level,l=!0),!n&&s>0&&s>=f.scale&&(r=e?e.level:-1,n=!0),e=f;-1===i&&(i=0===o?0:c),-1===a&&(a=0===s?t.length-1:r),i=Math.max(i,0),i=Math.min(i,t.length-1),a=Math.max(a,0),a=Math.min(a,t.length-1),i>a&&([i,a]=[a,i]),o=t[i].scale,s=t[a].scale,t.splice(0,i),t.splice(a-i+1,t.length),t.forEach(((e,t)=>{this._lodByScale[e.scale]=e,this._scales[t]=e.scale})),this._set("effectiveLODs",t),this._set("effectiveMinZoom",i),this._set("effectiveMaxZoom",a),this._set("effectiveMinScale",o),this._set("effectiveMaxScale",s)}constrain(e,t){if(t&&e.scale===t.scale)return e;const o=this.effectiveMinScale,s=this.effectiveMaxScale,i=e.targetGeometry,a=t&&t.targetGeometry,c=0!==s&&e.scale<s,r=0!==o&&e.scale>o;if(c||r){const c=r?o:s;if(a){const o=(c-t.scale)/(e.scale-t.scale);i.x=a.x+(i.x-a.x)*o,i.y=a.y+(i.y-a.y)*o}e.scale=c}return this.snapToZoom&&this.effectiveLODs&&(e.scale=this._getClosestScale(e.scale)),e}fit(e){if(!this.effectiveLODs||!this.snapToZoom)return this.constrain(e,null);const t=this.scaleToZoom(e.scale),o=Math.abs(t-Math.floor(t));return e.scale=this.zoomToScale(o>.99?Math.round(t):Math.floor(t)),e}zoomToScale(e){if(!this.effectiveLODs)return 0;e-=this.effectiveMinZoom,e=Math.max(0,e);const t=this._scales;if(e<=0)return t[0];if(e>=t.length)return t[t.length-1];const o=Math.round(e-.5),s=Math.round(e);return t[s]+(s-e)*(t[o]-t[s])}scaleToZoom(e){if(!this.effectiveLODs)return-1;const t=this._scales;let o,s;if(e>=t[0])return this.effectiveMinZoom;if(e<=t[t.length-1])return this.effectiveMaxZoom;for(let i=0;i<t.length-1;i++){if(o=t[i],s=t[i+1],s===e){return i+this.effectiveMinZoom+1}if(o>e&&s<e){return i+this.effectiveMinZoom+1-(e-s)/(o-s)}}}snapToClosestScale(e){if(!this.effectiveLODs)return e;const t=this.scaleToZoom(e);return this.zoomToScale(Math.round(t))}snapToNextScale(e,t=.5){if(!this.effectiveLODs)return e*t;const o=Math.round(this.scaleToZoom(e));return this.zoomToScale(o+1)}snapToPreviousScale(e,t=2){if(!this.effectiveLODs)return e*t;const o=Math.round(this.scaleToZoom(e));return this.zoomToScale(o-1)}clone(){return new a({lods:this.lods,minZoom:this.minZoom,maxZoom:this.maxZoom,minScale:this.minScale,maxScale:this.maxScale})}_getClosestScale(e){return this._lodByScale[e]||(e=this._scales.reduce(((t,o)=>Math.abs(o-e)<=Math.abs(t-e)?o:t),this._scales[0])),this._lodByScale[e].scale}};e([o({readOnly:!0})],c.prototype,"effectiveLODs",void 0),e([o({readOnly:!0})],c.prototype,"effectiveMinZoom",void 0),e([o({readOnly:!0})],c.prototype,"effectiveMaxZoom",void 0),e([o({readOnly:!0})],c.prototype,"effectiveMinScale",void 0),e([o({readOnly:!0})],c.prototype,"effectiveMaxScale",void 0),e([o({type:[i]})],c.prototype,"lods",void 0),e([o()],c.prototype,"minZoom",void 0),e([o()],c.prototype,"maxZoom",void 0),e([o()],c.prototype,"minScale",void 0),e([o()],c.prototype,"maxScale",void 0),e([o()],c.prototype,"snapToZoom",void 0),c=a=e([s("esri.views.2d.constraints.ZoomConstraint")],c);const r=c;export{r as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as s}from"../../../core/accessorSupport/decorators/subclass.js";var i;let a=i=class extends t{constructor(e){super(e),this._lodByScale={},this._scales=[],this.effectiveLODs=null,this.effectiveMinZoom=-1,this.effectiveMaxZoom=-1,this.effectiveMinScale=0,this.effectiveMaxScale=0,this.lods=null,this.minZoom=-1,this.maxZoom=-1,this.minScale=0,this.maxScale=0,this.snapToZoom=!0}initialize(){let e,{lods:t,minScale:o,maxScale:s,minZoom:i,maxZoom:a}=this,c=-1,r=-1,l=!1,n=!1;if(0!==o&&0!==s&&o<s&&([o,s]=[s,o]),!t||!t.length)return this._set("effectiveMinScale",o),void this._set("effectiveMaxScale",s);t=t.map((e=>e.clone())),t.sort(((e,t)=>t.scale-e.scale)),t.forEach(((e,t)=>e.level=t));for(const f of t)!l&&o>0&&o>=f.scale&&(c=f.level,l=!0),!n&&s>0&&s>=f.scale&&(r=e?e.level:-1,n=!0),e=f;-1===i&&(i=0===o?0:c),-1===a&&(a=0===s?t.length-1:r),i=Math.max(i,0),i=Math.min(i,t.length-1),a=Math.max(a,0),a=Math.min(a,t.length-1),i>a&&([i,a]=[a,i]),o=t[i].scale,s=t[a].scale,t.splice(0,i),t.splice(a-i+1,t.length),t.forEach(((e,t)=>{this._lodByScale[e.scale]=e,this._scales[t]=e.scale})),this._set("effectiveLODs",t),this._set("effectiveMinZoom",i),this._set("effectiveMaxZoom",a),this._set("effectiveMinScale",o),this._set("effectiveMaxScale",s)}constrain(e,t){if(t&&e.scale===t.scale)return e;const o=this.effectiveMinScale,s=this.effectiveMaxScale,i=e.targetGeometry,a=t&&t.targetGeometry,c=0!==s&&e.scale<s,r=0!==o&&e.scale>o;if(c||r){const c=r?o:s;if(a){const o=(c-t.scale)/(e.scale-t.scale);i.x=a.x+(i.x-a.x)*o,i.y=a.y+(i.y-a.y)*o}e.scale=c}return this.snapToZoom&&this.effectiveLODs&&(e.scale=this._getClosestScale(e.scale)),e}fit(e){if(!this.effectiveLODs||!this.snapToZoom)return this.constrain(e,null);const t=this.scaleToZoom(e.scale),o=Math.abs(t-Math.floor(t));return e.scale=this.zoomToScale(o>.99?Math.round(t):Math.floor(t)),e}zoomToScale(e){if(!this.effectiveLODs)return 0;e-=this.effectiveMinZoom,e=Math.max(0,e);const t=this._scales;if(e<=0)return t[0];if(e>=t.length)return t[t.length-1];const o=Math.round(e-.5),s=Math.round(e);return t[s]+(s-e)*(t[o]-t[s])}scaleToZoom(e){if(!this.effectiveLODs)return-1;const t=this._scales;let o,s;if(e>=t[0])return this.effectiveMinZoom;if(e<=t[t.length-1])return this.effectiveMaxZoom;for(let i=0;i<t.length-1;i++){if(o=t[i],s=t[i+1],s===e){return i+this.effectiveMinZoom+1}if(o>e&&s<e){return i+this.effectiveMinZoom+1-(e-s)/(o-s)}}}snapToClosestScale(e){if(!this.effectiveLODs)return e;const t=this.scaleToZoom(e);return this.zoomToScale(Math.round(t))}snapToNextScale(e,t=.5){if(!this.effectiveLODs)return e*t;const o=Math.round(this.scaleToZoom(e));return this.zoomToScale(o+1)}snapToPreviousScale(e,t=2){if(!this.effectiveLODs)return e*t;const o=Math.round(this.scaleToZoom(e));return this.zoomToScale(o-1)}clone(){return new i({lods:this.lods,minZoom:this.minZoom,maxZoom:this.maxZoom,minScale:this.minScale,maxScale:this.maxScale})}_getClosestScale(e){return this._lodByScale[e]||(e=this._scales.reduce(((t,o)=>Math.abs(o-e)<=Math.abs(t-e)?o:t),this._scales[0])),this._lodByScale[e].scale}};e([o({readOnly:!0})],a.prototype,"effectiveLODs",void 0),e([o({readOnly:!0})],a.prototype,"effectiveMinZoom",void 0),e([o({readOnly:!0})],a.prototype,"effectiveMaxZoom",void 0),e([o({readOnly:!0})],a.prototype,"effectiveMinScale",void 0),e([o({readOnly:!0})],a.prototype,"effectiveMaxScale",void 0),e([o()],a.prototype,"lods",void 0),e([o()],a.prototype,"minZoom",void 0),e([o()],a.prototype,"maxZoom",void 0),e([o()],a.prototype,"minScale",void 0),e([o()],a.prototype,"maxScale",void 0),e([o()],a.prototype,"snapToZoom",void 0),a=i=e([s("esri.views.2d.constraints.ZoomConstraint")],a);const c=a;export{c as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.22/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../core/Error.js";import{on as t}from"../../../core/events.js";import i from"../../../core/has.js";import{isSome as r}from"../../../core/maybe.js";import{addFrameTask as s}from"../../../core/scheduling.js";import{init as n}from"../../../core/watchUtils.js";import{t as a}from"../../../chunks/common.js";import{i as o,t as h,r as l}from"../../../chunks/mat2d.js";import{c as d}from"../../../chunks/mat2df64.js";import{c}from"../../../chunks/mat3f32.js";import{s as p,t as m}from"../../../chunks/vec2.js";import{a as u}from"../../../chunks/vec2f64.js";import _ from"../../../symbols/cim/CIMResourceManager.js";import g from"../../webgl/BufferObject.js";import f from"../../webgl/FramebufferObject.js";import"../../webgl/checkWebGLError.js";import"../../webgl/enums.js";import"../../../chunks/builtins.js";import{createProgram as b}from"../../webgl/programUtils.js";import"../../webgl/Texture.js";import R from"../../webgl/VertexArrayObject.js";import{createContextOrErrorHTML as w}from"../../webgl/context-util.js";import{Container as O}from"./Container.js";import{WGLDrawPhase as y}from"./webgl/enums.js";import F from"./webgl/Painter.js";import{Profiler as x}from"./webgl/Profiler.js";import{stencil as C}from"./webgl/shaders/StencilPrograms.js";import{Timeline as T}from"../support/Timeline.js";import{resampleHermite as j,encodeResult as B,createEmptyImageData as P}from"../../support/screenshotUtils.js";import{RenderingContext as v}from"../../webgl/RenderingContext.js";const k=2e3;class S extends O{constructor(n,a){super(),this._trash=new Set,this._clipData=new Float32Array(8),this._upperLeft=u(),this._upperRight=u(),this._lowerLeft=u(),this._lowerRight=u(),this._mat2=d(),this._clipRendererInitialized=!1,this._renderRemainingTime=0,this._lastFrameRenderTime=0,this.renderRequested=!1,this.stage=this,this._stationary=!0;const{canvas:o=document.createElement("canvas"),alpha:h=!0,stencil:l=!0,contextOptions:c={}}=a;this._canvas=o;const p=w(o,1,{alpha:h,antialias:!1,depth:!0,stencil:l});this.context=new v(r(p)?p:null,c),this.resourceManager=new _,this.painter=new F(this.context,this,this.resourceManager),i("esri-2d-profiler")&&(this._debugOutput=document.createElement("div"),this._debugOutput.setAttribute("style","margin: 24px 64px; position: absolute; color: red;"),n.appendChild(this._debugOutput)),this._renderParameters={drawPhase:0,state:this.state,pixelRatio:window.devicePixelRatio,stationary:!1,globalOpacity:1,blendMode:null,deltaTime:-1,time:0,inFadeTransition:!1,effects:null,context:this.context,painter:this.painter,timeline:a.timeline||new T,renderingOptions:a.renderingOptions,requireFBO:!1,profiler:new x(this.context,this._debugOutput),dataUploadCounter:0},this._taskHandle=s({render:e=>this.renderFrame(e)}),this._taskHandle.pause(),this._lostWebGLContextHandle=t(o,"webglcontextlost",(()=>{this.emit("webgl-error",{error:new e("webgl-context-lost")})})),o.setAttribute("style","width: 100%; height:100%; display:block;"),n.appendChild(o)}destroy(){this.removeAllChildren(),this._emptyTrash(),this._taskHandle.remove(),this._taskHandle=null,this._boundFBO=null,this._clipFBO&&(this._clipFBO.dispose(),this._clipFBO=null),this._clipVAO&&(this._clipVAO.dispose(),this._clipVAO=null,this._clipVBO=null),this._clipStencilProgram&&(this._clipStencilProgram.dispose(),this._clipStencilProgram=null),this._lostWebGLContextHandle&&(this._lostWebGLContextHandle.remove(),this._lostWebGLContextHandle=null),this._canvas.parentNode&&this._canvas.parentNode.removeChild(this._canvas),this._debugOutput&&this._debugOutput.parentNode&&this._debugOutput.parentNode.removeChild(this._debugOutput),this.highlightOptions=null,this.resourceManager.destroy(),this.painter.dispose(),this.context.dispose(),this._canvas=null}get background(){return this._background}set background(e){this._background=e,this.requestRender()}get highlightOptions(){return this._highlightOptions}set highlightOptions(e){this._highlightOptionsHandle&&(this._highlightOptionsHandle.remove(),this._highlightOptionsHandle=null),this._highlightOptions=e,this._highlightOptions&&(this._highlightOptionsHandle=n(this._highlightOptions,"version",(()=>{this.painter.setHighlightOptions(e),this.requestRender()})))}get renderingOptions(){return this._renderingOptions}set renderingOptions(e){this._renderingOptions=e,this.requestRender()}get state(){return this._state}set state(e){this._state=e,this.requestRender()}get stationary(){return this._stationary}set stationary(e){this._stationary!==e&&(this._stationary=e,this.requestRender())}trashDisplayObject(e){this._trash.add(e),this.requestRender()}untrashDisplayObject(e){return this._trash.delete(e)}requestRender(){this._renderRemainingTime=k,this.renderRequested||(this.renderRequested=!0,this.emit("will-render"),this._taskHandle.resume())}renderFrame(e){const t=this._lastFrameRenderTime?e.time-this._lastFrameRenderTime:0;this._renderRemainingTime-=t,this._renderRemainingTime<=0&&this._taskHandle.pause(),this._lastFrameRenderTime=e.time,this.renderRequested=!1,this._renderParameters.state=this._state,this._renderParameters.stationary=this.stationary,this._renderParameters.pixelRatio=window.devicePixelRatio,this._renderParameters.globalOpacity=1,this._renderParameters.time=e.time,this._renderParameters.deltaTime=e.deltaTime,this._renderParameters.effects=null,this.processRender(this._renderParameters),this._emptyTrash(),this.emit("post-render")}_createTransforms(){return{dvs:c()}}renderChildren(e){for(const t of this.children)t.beforeRender(e);this._renderChildren(this.children,e);for(const t of this.children)t.afterRender(e)}_renderChildren(e,t){const r=this.context;t.profiler.recordStart("drawLayers"),t.dataUploadCounter=0,this._beforeRenderChildren(t),t.drawPhase=y.MAP,this.painter.beforeRenderLayers(r,this.background);for(const i of e)i.processRender(t);this.painter.renderLayers(r),t.drawPhase=y.HIGHLIGHT,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r);if(this._isLabelDrawPhaseRequired(e)){t.drawPhase=y.LABEL,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r)}if(i("esri-tiles-debug")){t.drawPhase=y.DEBUG,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r)}t.profiler.recordEnd("drawLayers"),this._afterRenderChildren()}_beforeRenderChildren(e){const{context:t}=this,{state:i,pixelRatio:r}=e;t.enforceState(),t.setClearDepth(1),t.setClearColor(0,0,0,0),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT);const{size:s,rotation:n}=i,d=Math.round(s[0]*r),c=Math.round(s[1]*r);this._boundFBO=t.getBoundFramebufferObject();if(!(i.spatialReference&&(i.spatialReference._isWrappable?i.spatialReference._isWrappable():i.spatialReference.isWrappable)))return void(this._clipFrame=!1);const u=a(n),_=Math.abs(Math.cos(u)),g=Math.abs(Math.sin(u)),b=Math.round(d*_+c*g),R=Math.round(i.worldScreenWidth);if(b<=R)return void(this._clipFrame=!1);this._clipFBO&&this._clipFBO.width===d&&this._clipFBO.height===c||(this._clipFBO=new f(t,{colorTarget:0,depthStencilTarget:3,width:d,height:c}));const w=(this.state.padding.left-this.state.padding.right)/2,O=(this.state.padding.bottom-this.state.padding.top)/2,y=.5*d,F=.5*c,x=1/d,C=1/c,T=R*r*.5,j=.5*(d*g+c*_),B=this._upperLeft,P=this._upperRight,v=this._lowerLeft,k=this._lowerRight;p(B,-T,-j),p(P,T,-j),p(v,-T,j),p(k,T,j),o(this._mat2),h(this._mat2,this._mat2,[y+w,F+O]),0!==n&&l(this._mat2,this._mat2,u),m(B,B,this._mat2),m(P,P,this._mat2),m(v,v,this._mat2),m(k,k,this._mat2);const S=this._clipData;S.set([2*v[0]*x-1,2*(c-v[1])*C-1,2*k[0]*x-1,2*(c-k[1])*C-1,2*B[0]*x-1,2*(c-B[1])*C-1,2*P[0]*x-1,2*(c-P[1])*C-1]),this._clipRendererInitialized||this._initializeClipRenderer(t),this._clipVBO.setData(S),this._boundFBO=t.getBoundFramebufferObject(),t.bindFramebuffer(this._clipFBO),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),t.setClearColor(0,0,0,0),t.setClearDepth(1),t.setClearStencil(0),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT|t.gl.STENCIL_BUFFER_BIT),t.setDepthWriteEnabled(!1),this._clipFrame=!0}_afterRenderChildren(){const e=this.context;if(e.logIno(),this._clipFrame&&this._clipRendererInitialized){if(e.bindFramebuffer(this._boundFBO),this._boundFBO=null,e.bindVAO(this._clipVAO),e.useProgram(this._clipStencilProgram),e.setDepthWriteEnabled(!1),e.setDepthTestEnabled(!1),e.setStencilTestEnabled(!0),e.setBlendingEnabled(!1),e.setColorMask(!1,!1,!1,!1),e.setStencilOp(7680,7680,7681),e.setStencilWriteMask(255),e.setStencilFunction(519,1,255),e.drawElements(4,6,5123,0),e.bindVAO(),e.setColorMask(!0,!0,!0,!0),null!=this.background){const{r:t,g:i,b:r,a:s}=this.background.color;e.setClearColor(s*t/255,s*i/255,s*r/255,s)}else e.setClearColor(0,0,0,0);e.clear(e.gl.COLOR_BUFFER_BIT),e.setBlendingEnabled(!0),e.setStencilFunction(514,1,255),this.painter.blitTexture(e,this._clipFBO.colorTexture,9728,1),e.setStencilTestEnabled(!1)}}doRender(e){const t=this.context,{state:i,pixelRatio:r}=e;this._resizeCanvas(e),this.context.enforceState(),t.setViewport(0,0,r*i.size[0],r*i.size[1]),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),super.doRender(e)}async takeScreenshot(e){const{framebufferWidth:t,framebufferHeight:i}={framebufferWidth:Math.round(this._renderParameters.state.size[0]*e.resolutionScale),framebufferHeight:Math.round(this._renderParameters.state.size[1]*e.resolutionScale)},r=1,s=this.context,n=this._state.clone();if(null!=e.rotation){const t=n.viewpoint;n.viewpoint.rotation=e.rotation,n.viewpoint=t}const a={...this._renderParameters,drawPhase:null,globalOpacity:1,stationary:!0,state:n,pixelRatio:r,time:Date.now(),deltaTime:0,blendMode:null,effects:null,inFadeTransition:!1},o=new f(s,{colorTarget:0,depthStencilTarget:3,width:t,height:i}),h=s.getBoundFramebufferObject(),l=s.getViewport();s.bindFramebuffer(o),s.setViewport(0,0,t,i),this._renderChildren(e.children,a);const d=this._readbackScreenshot({...e.cropArea,y:i-(e.cropArea.y+e.cropArea.height)});let c;s.bindFramebuffer(h),s.setViewport(l.x,l.y,l.width,l.height),this.requestRender(),1===e.outputScale?c=d:(c=new ImageData(Math.round(d.width*e.outputScale),Math.round(d.height*e.outputScale)),j(d,c,!0));return B(c,{format:e.format,quality:e.quality,rotation:0,disableDecorations:!1},document.createElement("canvas"),{flipY:!0,premultipliedAlpha:!0})}_readbackScreenshot(e){const t=this.context.gl,i=P(e.width,e.height,document.createElement("canvas"));return t.readPixels(e.x,e.y,e.width,e.height,6408,5121,new Uint8Array(i.data.buffer)),i}_resizeCanvas(e){const t=this._canvas,i=t.style,{state:{size:r},pixelRatio:s}=e,n=r[0],a=r[1],o=Math.round(n*s),h=Math.round(a*s);t.width===o&&t.height===h||(t.width=o,t.height=h),i.width=n+"px",i.height=a+"px"}_initializeClipRenderer(e){if(this._clipRendererInitialized)return!0;const t=C.attributes,i=b(e,C);if(!i)return!1;const r=g.createVertex(e,35040,32),s=new Uint16Array([0,1,2,2,1,3]),n=g.createIndex(e,35044,s),a=new R(e,t,{geometry:[{name:"a_pos",count:2,type:5126,offset:0,stride:8,normalized:!1,divisor:0}]},{geometry:r},n);return this._clipStencilProgram=i,this._clipVBO=r,this._clipVAO=a,this._clipRendererInitialized=!0,!0}_emptyTrash(){for(;this._trash.size>0;){const e=Array.from(this._trash);this._trash.clear();for(const t of e)t.processDetach()}}_isLabelDrawPhaseRequired(e){let t=!1;for(const i of e){if(!(i instanceof O)){t=t||!1;break}if(i.hasLabels)return!0;t=t||this._isLabelDrawPhaseRequired(i.children)}return t}}export{k as EXTRA_RENDER_TIME,S as Stage};
5
+ import e from"../../../core/Error.js";import{on as t}from"../../../core/events.js";import i from"../../../core/has.js";import{isSome as r}from"../../../core/maybe.js";import{addFrameTask as s}from"../../../core/scheduling.js";import{init as n}from"../../../core/watchUtils.js";import{t as a}from"../../../chunks/common.js";import{i as o,t as h,r as l}from"../../../chunks/mat2d.js";import{c as d}from"../../../chunks/mat2df64.js";import{c}from"../../../chunks/mat3f32.js";import{s as p,t as m}from"../../../chunks/vec2.js";import{a as u}from"../../../chunks/vec2f64.js";import _ from"../../../symbols/cim/CIMResourceManager.js";import g from"../../webgl/BufferObject.js";import f from"../../webgl/FramebufferObject.js";import"../../webgl/checkWebGLError.js";import"../../webgl/enums.js";import"../../../chunks/builtins.js";import{createProgram as b}from"../../webgl/programUtils.js";import"../../webgl/Texture.js";import R from"../../webgl/VertexArrayObject.js";import{createContextOrErrorHTML as w}from"../../webgl/context-util.js";import{Container as O}from"./Container.js";import{WGLDrawPhase as y}from"./webgl/enums.js";import F from"./webgl/Painter.js";import{Profiler as x}from"./webgl/Profiler.js";import{stencil as C}from"./webgl/shaders/StencilPrograms.js";import{Timeline as T}from"../support/Timeline.js";import{resampleHermite as j,encodeResult as B,createEmptyImageData as P}from"../../support/screenshotUtils.js";import{RenderingContext as v}from"../../webgl/RenderingContext.js";const k=2e3;class S extends O{constructor(n,a){super(),this._trash=new Set,this._clipData=new Float32Array(8),this._upperLeft=u(),this._upperRight=u(),this._lowerLeft=u(),this._lowerRight=u(),this._mat2=d(),this._clipRendererInitialized=!1,this._renderRemainingTime=0,this._lastFrameRenderTime=0,this.renderRequested=!1,this.stage=this,this._stationary=!0;const{canvas:o=document.createElement("canvas"),alpha:h=!0,stencil:l=!0,contextOptions:c={}}=a;this._canvas=o;const p=w(o,1,{alpha:h,antialias:!1,depth:!0,stencil:l});this.context=new v(r(p)?p:null,c),this.resourceManager=new _,this.painter=new F(this.context,this,this.resourceManager),i("esri-2d-profiler")&&(this._debugOutput=document.createElement("div"),this._debugOutput.setAttribute("style","margin: 24px 64px; position: absolute; color: red;"),n.appendChild(this._debugOutput)),this._renderParameters={drawPhase:0,state:this.state,pixelRatio:window.devicePixelRatio,stationary:!1,globalOpacity:1,blendMode:null,deltaTime:-1,time:0,inFadeTransition:!1,effects:null,context:this.context,painter:this.painter,timeline:a.timeline||new T,renderingOptions:a.renderingOptions,requireFBO:!1,profiler:new x(this.context,this._debugOutput),dataUploadCounter:0},this._taskHandle=s({render:e=>this.renderFrame(e)}),this._taskHandle.pause(),this._lostWebGLContextHandle=t(o,"webglcontextlost",(()=>{this.emit("webgl-error",{error:new e("webgl-context-lost")})})),o.setAttribute("style","width: 100%; height:100%; display:block;"),n.appendChild(o)}destroy(){this.removeAllChildren(),this._emptyTrash(),this._taskHandle.remove(),this._taskHandle=null,this._boundFBO=null,this._clipFBO&&(this._clipFBO.dispose(),this._clipFBO=null),this._clipVAO&&(this._clipVAO.dispose(),this._clipVAO=null,this._clipVBO=null),this._clipStencilProgram&&(this._clipStencilProgram.dispose(),this._clipStencilProgram=null),this._lostWebGLContextHandle&&(this._lostWebGLContextHandle.remove(),this._lostWebGLContextHandle=null),this._canvas.parentNode&&this._canvas.parentNode.removeChild(this._canvas),this._debugOutput&&this._debugOutput.parentNode&&this._debugOutput.parentNode.removeChild(this._debugOutput),this.highlightOptions=null,this.resourceManager.destroy(),this.painter.dispose(),this.context.dispose(),this._canvas=null}get background(){return this._background}set background(e){this._background=e,this.requestRender()}get highlightOptions(){return this._highlightOptions}set highlightOptions(e){this._highlightOptionsHandle&&(this._highlightOptionsHandle.remove(),this._highlightOptionsHandle=null),this._highlightOptions=e,this._highlightOptions&&(this._highlightOptionsHandle=n(this._highlightOptions,"version",(()=>{this.painter.setHighlightOptions(e),this.requestRender()})))}get renderingOptions(){return this._renderingOptions}set renderingOptions(e){this._renderingOptions=e,this.requestRender()}get state(){return this._state}set state(e){this._state=e,this.requestRender()}get stationary(){return this._stationary}set stationary(e){this._stationary!==e&&(this._stationary=e,this.requestRender())}trashDisplayObject(e){this._trash.add(e),this.requestRender()}untrashDisplayObject(e){return this._trash.delete(e)}requestRender(){this._renderRemainingTime=k,this.renderRequested||(this.renderRequested=!0,this.emit("will-render"),this._taskHandle.resume())}renderFrame(e){const t=this._lastFrameRenderTime?e.time-this._lastFrameRenderTime:0;this._renderRemainingTime-=t,this._renderRemainingTime<=0&&this._taskHandle.pause(),this._lastFrameRenderTime=e.time,this.renderRequested=!1,this._renderParameters.state=this._state,this._renderParameters.stationary=this.stationary,this._renderParameters.pixelRatio=window.devicePixelRatio,this._renderParameters.globalOpacity=1,this._renderParameters.time=e.time,this._renderParameters.deltaTime=e.deltaTime,this._renderParameters.effects=null,this.processRender(this._renderParameters),this._emptyTrash(),this.emit("post-render")}_createTransforms(){return{dvs:c()}}renderChildren(e){for(const t of this.children)t.beforeRender(e);this._renderChildren(this.children,e);for(const t of this.children)t.afterRender(e)}_renderChildren(e,t){const r=this.context;t.profiler.recordStart("drawLayers"),t.dataUploadCounter=0,this._beforeRenderChildren(t),t.drawPhase=y.MAP,this.painter.beforeRenderLayers(r,this.background);for(const i of e)i.processRender(t);this.painter.renderLayers(r),t.drawPhase=y.HIGHLIGHT,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r);if(this._isLabelDrawPhaseRequired(e)){t.drawPhase=y.LABEL,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r)}if(i("esri-tiles-debug")){t.drawPhase=y.DEBUG,this.painter.beforeRenderLayers(r);for(const i of e)i.processRender(t);this.painter.renderLayers(r)}t.profiler.recordEnd("drawLayers"),this._afterRenderChildren()}_beforeRenderChildren(e){const{context:t}=this,{state:i,pixelRatio:r}=e;t.enforceState(),t.setClearDepth(1),t.setClearColor(0,0,0,0),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT);const{size:s,rotation:n}=i,d=Math.round(s[0]*r),c=Math.round(s[1]*r);this._boundFBO=t.getBoundFramebufferObject();if(!(i.spatialReference&&(i.spatialReference._isWrappable?i.spatialReference._isWrappable():i.spatialReference.isWrappable)))return void(this._clipFrame=!1);const u=a(n),_=Math.abs(Math.cos(u)),g=Math.abs(Math.sin(u)),b=Math.round(d*_+c*g),R=Math.round(i.worldScreenWidth);if(b<=R)return void(this._clipFrame=!1);this._clipFBO&&this._clipFBO.width===d&&this._clipFBO.height===c||(this._clipFBO=new f(t,{colorTarget:0,depthStencilTarget:3,width:d,height:c}));const w=(this.state.padding.left-this.state.padding.right)/2,O=(this.state.padding.bottom-this.state.padding.top)/2,y=.5*d,F=.5*c,x=1/d,C=1/c,T=R*r*.5,j=.5*(d*g+c*_),B=this._upperLeft,P=this._upperRight,v=this._lowerLeft,k=this._lowerRight;p(B,-T,-j),p(P,T,-j),p(v,-T,j),p(k,T,j),o(this._mat2),h(this._mat2,this._mat2,[y+w,F-O]),0!==n&&l(this._mat2,this._mat2,u),m(B,B,this._mat2),m(P,P,this._mat2),m(v,v,this._mat2),m(k,k,this._mat2);const S=this._clipData;S.set([2*v[0]*x-1,2*(c-v[1])*C-1,2*k[0]*x-1,2*(c-k[1])*C-1,2*B[0]*x-1,2*(c-B[1])*C-1,2*P[0]*x-1,2*(c-P[1])*C-1]),this._clipRendererInitialized||this._initializeClipRenderer(t),this._clipVBO.setData(S),this._boundFBO=t.getBoundFramebufferObject(),t.bindFramebuffer(this._clipFBO),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),t.setClearColor(0,0,0,0),t.setClearDepth(1),t.setClearStencil(0),t.clear(t.gl.COLOR_BUFFER_BIT|t.gl.DEPTH_BUFFER_BIT|t.gl.STENCIL_BUFFER_BIT),t.setDepthWriteEnabled(!1),this._clipFrame=!0}_afterRenderChildren(){const e=this.context;if(e.logIno(),this._clipFrame&&this._clipRendererInitialized){if(e.bindFramebuffer(this._boundFBO),this._boundFBO=null,e.bindVAO(this._clipVAO),e.useProgram(this._clipStencilProgram),e.setDepthWriteEnabled(!1),e.setDepthTestEnabled(!1),e.setStencilTestEnabled(!0),e.setBlendingEnabled(!1),e.setColorMask(!1,!1,!1,!1),e.setStencilOp(7680,7680,7681),e.setStencilWriteMask(255),e.setStencilFunction(519,1,255),e.drawElements(4,6,5123,0),e.bindVAO(),e.setColorMask(!0,!0,!0,!0),null!=this.background){const{r:t,g:i,b:r,a:s}=this.background.color;e.setClearColor(s*t/255,s*i/255,s*r/255,s)}else e.setClearColor(0,0,0,0);e.clear(e.gl.COLOR_BUFFER_BIT),e.setBlendingEnabled(!0),e.setStencilFunction(514,1,255),this.painter.blitTexture(e,this._clipFBO.colorTexture,9728,1),e.setStencilTestEnabled(!1)}}doRender(e){const t=this.context,{state:i,pixelRatio:r}=e;this._resizeCanvas(e),this.context.enforceState(),t.setViewport(0,0,r*i.size[0],r*i.size[1]),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),super.doRender(e)}async takeScreenshot(e){const{framebufferWidth:t,framebufferHeight:i}={framebufferWidth:Math.round(this._renderParameters.state.size[0]*e.resolutionScale),framebufferHeight:Math.round(this._renderParameters.state.size[1]*e.resolutionScale)},r=1,s=this.context,n=this._state.clone();if(null!=e.rotation){const t=n.viewpoint;n.viewpoint.rotation=e.rotation,n.viewpoint=t}const a={...this._renderParameters,drawPhase:null,globalOpacity:1,stationary:!0,state:n,pixelRatio:r,time:Date.now(),deltaTime:0,blendMode:null,effects:null,inFadeTransition:!1},o=new f(s,{colorTarget:0,depthStencilTarget:3,width:t,height:i}),h=s.getBoundFramebufferObject(),l=s.getViewport();s.bindFramebuffer(o),s.setViewport(0,0,t,i),this._renderChildren(e.children,a);const d=this._readbackScreenshot({...e.cropArea,y:i-(e.cropArea.y+e.cropArea.height)});let c;s.bindFramebuffer(h),s.setViewport(l.x,l.y,l.width,l.height),this.requestRender(),1===e.outputScale?c=d:(c=new ImageData(Math.round(d.width*e.outputScale),Math.round(d.height*e.outputScale)),j(d,c,!0));return B(c,{format:e.format,quality:e.quality,rotation:0,disableDecorations:!1},document.createElement("canvas"),{flipY:!0,premultipliedAlpha:!0})}_readbackScreenshot(e){const t=this.context.gl,i=P(e.width,e.height,document.createElement("canvas"));return t.readPixels(e.x,e.y,e.width,e.height,6408,5121,new Uint8Array(i.data.buffer)),i}_resizeCanvas(e){const t=this._canvas,i=t.style,{state:{size:r},pixelRatio:s}=e,n=r[0],a=r[1],o=Math.round(n*s),h=Math.round(a*s);t.width===o&&t.height===h||(t.width=o,t.height=h),i.width=n+"px",i.height=a+"px"}_initializeClipRenderer(e){if(this._clipRendererInitialized)return!0;const t=C.attributes,i=b(e,C);if(!i)return!1;const r=g.createVertex(e,35040,32),s=new Uint16Array([0,1,2,2,1,3]),n=g.createIndex(e,35044,s),a=new R(e,t,{geometry:[{name:"a_pos",count:2,type:5126,offset:0,stride:8,normalized:!1,divisor:0}]},{geometry:r},n);return this._clipStencilProgram=i,this._clipVBO=r,this._clipVAO=a,this._clipRendererInitialized=!0,!0}_emptyTrash(){for(;this._trash.size>0;){const e=Array.from(this._trash);this._trash.clear();for(const t of e)t.processDetach()}}_isLabelDrawPhaseRequired(e){let t=!1;for(const i of e){if(!(i instanceof O)){t=t||!1;break}if(i.hasLabels)return!0;t=t||this._isLabelDrawPhaseRequired(i.children)}return t}}export{k as EXTRA_RENDER_TIME,S as Stage};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.22/esri/copyright.txt for details.
4
4
  */
5
- import{isSome as e,isNone as t}from"../../../../../core/maybe.js";import{pt2px as i}from"../../../../../core/screenUtils.js";import{FILTER_FLAG_0 as o,EFFECT_FLAG_0 as r}from"../definitions.js";import{CollisionBitsetGrid as n,NONE as s,HAS_COLLISION as a,OUTSIDE_EXTENT as l}from"./CollisionGrid.js";import{getSizeForValueSimple as c}from"./visualVariableSimpleUtils.js";const d=254,u=255,f=0;function b(t,i){const o=[];t.forEachTile((e=>o.push(e))),o.sort(((e,t)=>e.instanceId-t.instanceId)),o.forEach((t=>{e(t.labelMetrics)&&t.isReady&&i(t,t.labelMetrics.getCursor())}))}function y(e){return"feature"===e.layer.type||"csv"===e.layer.type||"geojson"===e.layer.type||"ogc-feature"===e.layer.type||"stream"===e.layer.type||"subtype-group"===e.layer.type||"wfs"===e.layer.type}function p(e){return t=>i(c(t,e))}function m(e){const t="visualVariables"in e&&e.visualVariables;if(!t)return null;for(const i of t)if("size"===i.type)return p(i);return null}function h(e){for(const i of e){var t;const e="featureReduction"in i&&"cluster"===(null==(t=i.featureReduction)?void 0:t.type)&&i.featureReduction,o=[...i.labelingInfo||[],...e.labelingInfo||[]];if(!i.labelsVisible||!o.length)continue;if(o.some((e=>"none"===e.deconflictionStrategy)))return!0}return!1}function M(e,i){if(!y(i))return;const o="subtype-group"===i.layer.type?i.layer.sublayers.items:[i.layer],r=i.layer.geometryType,n=!h(o),s={};if("subtype-group"!==i.layer.type){if("heatmap"===i.layer.renderer.type)return;const e=m(i.layer.renderer);s[0]=e}const a=i.tileRenderer;if(t(a))return;const l=i.layer.visible&&!i.suspended;e.push({tileRenderer:a,vvEvaluators:s,deconflictionEnabled:n,geometryType:r,visible:l})}class g{run(e,t,i){const o=[];for(let r=e.length-1;r>=0;r--){M(o,e[r])}this._transformMetrics(o,t),this._runCollision(o,t,i)}_runCollision(e,t,i){const[o,r]=t.state.size,s=new n(o*t.pixelRatio,r*t.pixelRatio);for(const{tileRenderer:n,deconflictionEnabled:a,visible:l,geometryType:c}of e){const e=n.featuresView.attributeView;if(!a){b(n,((t,i)=>{for(;i.nextId();)e.setLabelMinZoom(i.id,f)}));continue}if(!l){b(n,((t,i)=>{for(;i.nextId();)e.setLabelMinZoom(i.id,u)}));continue}const t="polyline"===c;this._prepare(n),this._collideVisible(s,n,i,t),this._collideInvisible(s,n,t)}}_isFiltered(t,i,n){const s=i.getFilterFlags(t),a=!n.hasFilter||!!(s&o),l=!e(n.featureEffect)||n.featureEffect.excludedLabelsVisible||!!(s&r);return!(a&&l)}_prepare(e){const t=e.featuresView.attributeView,i=new Set;b(e,((o,r)=>{for(;r.nextId();){if(i.has(r.id))continue;if(i.add(r.id),this._isFiltered(r.id,t,e.layerView)){t.setLabelMinZoom(r.id,d);continue}t.getLabelMinZoom(r.id)!==f?t.setLabelMinZoom(r.id,u):t.setLabelMinZoom(r.id,f)}}))}_collideVisible(e,t,i,o){const r=t.featuresView.attributeView,n=new Set;b(t,((t,c)=>{for(;c.nextId();)if(!n.has(c.id))if(t.key.level===i){if(0===r.getLabelMinZoom(c.id)){switch(e.insertMetrics(c,o)){case l:break;case a:r.setLabelMinZoom(c.id,d),n.add(c.id);break;case s:r.setLabelMinZoom(c.id,f),n.add(c.id)}}}else r.setLabelMinZoom(c.id,d)}))}_collideInvisible(e,t,i){const o=t.featuresView.attributeView,r=new Set;b(t,((t,n)=>{for(;n.nextId();)if(!r.has(n.id)&&o.getLabelMinZoom(n.id)===u){switch(e.insertMetrics(n,i)){case l:break;case a:o.setLabelMinZoom(n.id,u),r.add(n.id);break;case s:o.setLabelMinZoom(n.id,f),r.add(n.id)}}}))}_transformMetrics(t,i){for(const{tileRenderer:o,geometryType:r,vvEvaluators:n}of t)b(o,((t,s)=>{const a=o.featuresView.attributeView,l=t.transforms.labelMat2d;l[4]=Math.round(l[4]),l[5]=Math.round(l[5]);const c=l[4],d=l[5],u="polyline"===r;for(;s.next();){const t=s.boundsCount,o=s.anchorX,r=s.anchorY;let f=s.size;const b=n[0];if(e(b)){const e=b(a.getVVSize(s.id));f=isNaN(e)||null==e||e===1/0?f:e}const y=s.directionX*(f/2),p=s.directionY*(f/2);for(let e=0;e<t;e++){let t=o,n=s.anchorY;if(u){let o=t+s.boundsX(e)+y,r=n+s.boundsY(e)+p;i.state.rotation?(o=l[0]*o+l[2]*r+l[4],r=l[1]*o+l[3]*r+l[5]):(o+=c,r+=d),s.setBoundsComputedAnchorX(e,Math.floor(o)),s.setBoundsComputedAnchorY(e,Math.floor(r))}else{i.state.rotation?(t=l[0]*o+l[2]*r+l[4],n=l[1]*o+l[3]*r+l[5]):(t+=c,n+=d);const a=t+s.boundsX(e)+y,u=n+s.boundsY(e)+p;s.setBoundsComputedAnchorX(e,a),s.setBoundsComputedAnchorY(e,u)}}}}))}}export{g as CollisionEngine};
5
+ import{isSome as e,isNone as t}from"../../../../../core/maybe.js";import{pt2px as i}from"../../../../../core/screenUtils.js";import{FILTER_FLAG_0 as o,EFFECT_FLAG_0 as r}from"../definitions.js";import{CollisionBitsetGrid as n,NONE as s,HAS_COLLISION as a,OUTSIDE_EXTENT as l}from"./CollisionGrid.js";import{getSizeForValueSimple as d}from"./visualVariableSimpleUtils.js";const c=254,u=255,f=0;function b(t,i){const o=[];t.forEachTile((e=>o.push(e))),o.sort(((e,t)=>e.instanceId-t.instanceId)),o.forEach((t=>{e(t.labelMetrics)&&t.isReady&&i(t,t.labelMetrics.getCursor())}))}function p(e){return"feature"===e.layer.type||"csv"===e.layer.type||"geojson"===e.layer.type||"ogc-feature"===e.layer.type||"stream"===e.layer.type||"subtype-group"===e.layer.type||"wfs"===e.layer.type}function y(e){return t=>i(d(t,e))}function m(e){const t="visualVariables"in e&&e.visualVariables;if(!t)return null;for(const i of t)if("size"===i.type)return y(i);return null}function h(e){for(const i of e){var t;const e="featureReduction"in i&&"cluster"===(null==(t=i.featureReduction)?void 0:t.type)&&i.featureReduction,o=[...i.labelingInfo||[],...e.labelingInfo||[]];if(!i.labelsVisible||!o.length)continue;if(o.some((e=>"none"===e.deconflictionStrategy)))return!0}return!1}function M(e,i){if(!p(i))return;const o="subtype-group"===i.layer.type?i.layer.sublayers.items:[i.layer],r=i.layer.geometryType,n=!h(o),s={};if("subtype-group"!==i.layer.type){if("heatmap"===i.layer.renderer.type)return;const e=m(i.layer.renderer);s[0]=e}const a=i.tileRenderer;if(t(a))return;const l=i.layer.visible&&!i.suspended;e.push({tileRenderer:a,vvEvaluators:s,deconflictionEnabled:n,geometryType:r,visible:l})}class g{run(e,t,i){const o=[];for(let r=e.length-1;r>=0;r--){M(o,e[r])}this._transformMetrics(o,t),this._runCollision(o,t,i)}_runCollision(e,t,i){const[o,r]=t.state.size,s=new n(o*t.pixelRatio,r*t.pixelRatio);for(const{tileRenderer:n,deconflictionEnabled:a,visible:l}of e){const e=n.featuresView.attributeView;a?l?(this._prepare(n),this._collideVisible(s,n,i),this._collideInvisible(s,n)):b(n,((t,i)=>{for(;i.nextId();)e.setLabelMinZoom(i.id,u)})):b(n,((t,i)=>{for(;i.nextId();)e.setLabelMinZoom(i.id,f)}))}}_isFiltered(t,i,n){const s=i.getFilterFlags(t),a=!n.hasFilter||!!(s&o),l=!e(n.featureEffect)||n.featureEffect.excludedLabelsVisible||!!(s&r);return!(a&&l)}_prepare(e){const t=e.featuresView.attributeView,i=new Set;b(e,((o,r)=>{for(;r.nextId();){if(i.has(r.id))continue;if(i.add(r.id),this._isFiltered(r.id,t,e.layerView)){t.setLabelMinZoom(r.id,c);continue}t.getLabelMinZoom(r.id)!==f?t.setLabelMinZoom(r.id,u):t.setLabelMinZoom(r.id,f)}}))}_collideVisible(e,t,i){const o=t.featuresView.attributeView,r=new Set;b(t,((t,n)=>{for(;n.nextId();)if(!r.has(n.id))if(t.key.level===i){if(0===o.getLabelMinZoom(n.id)){switch(e.insertMetrics(n)){case l:break;case a:o.setLabelMinZoom(n.id,c),r.add(n.id);break;case s:o.setLabelMinZoom(n.id,f),r.add(n.id)}}}else o.setLabelMinZoom(n.id,c)}))}_collideInvisible(e,t){const i=t.featuresView.attributeView,o=new Set;b(t,((t,r)=>{for(;r.nextId();)if(!o.has(r.id)&&i.getLabelMinZoom(r.id)===u){switch(e.insertMetrics(r)){case l:break;case a:i.setLabelMinZoom(r.id,u),o.add(r.id);break;case s:i.setLabelMinZoom(r.id,f),o.add(r.id)}}}))}_transformMetrics(t,i){for(const{tileRenderer:o,geometryType:r,vvEvaluators:n}of t)b(o,((t,s)=>{const a=o.featuresView.attributeView,l=t.transforms.labelMat2d;l[4]=Math.round(l[4]),l[5]=Math.round(l[5]);const d=l[4],c=l[5],u="polyline"===r;for(;s.next();){const t=s.boundsCount,o=s.anchorX,r=s.anchorY;let f=s.size;const b=n[0];if(e(b)){const e=b(a.getVVSize(s.id));f=isNaN(e)||null==e||e===1/0?f:e}const p=s.directionX*(f/2),y=s.directionY*(f/2);for(let e=0;e<t;e++){let t=o,n=s.anchorY;if(u){let o=t+s.boundsX(e)+p,r=n+s.boundsY(e)+y;i.state.rotation?(o=l[0]*o+l[2]*r+l[4],r=l[1]*o+l[3]*r+l[5]):(o+=d,r+=c),s.setBoundsComputedAnchorX(e,Math.floor(o)),s.setBoundsComputedAnchorY(e,Math.floor(r))}else{i.state.rotation?(t=l[0]*o+l[2]*r+l[4],n=l[1]*o+l[3]*r+l[5]):(t+=d,n+=c);const a=t+s.boundsX(e)+p,u=n+s.boundsY(e)+y;s.setBoundsComputedAnchorX(e,a),s.setBoundsComputedAnchorY(e,u)}}}}))}}export{g as CollisionEngine};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.22/esri/copyright.txt for details.
4
4
  */
5
- import{clamp as t}from"../../../../../core/mathUtils.js";import{TILE_SIZE as s}from"../definitions.js";import{StaticBitSet as e}from"../../../layers/features/support/StaticBitSet.js";const i=2,o=1,h=0,r=1,n=2;class c{constructor(t,s){this.width=t,this.height=s;const i=Math.ceil(t/o),h=Math.ceil(s/o);this._cols=i,this._rows=h,this._cells=e.create(i*h)}insertMetrics(t,s){if(s)return this._markMetrics(t),h;const e=this._hasCollision(t);return e===h&&this._markMetrics(t),e}getCellId(t,s){return t+s*this._cols}has(t){return this._cells.has(t)}hasRange(t,s){return this._cells.hasRange(t,s)}set(t){this._cells.set(t)}setRange(t,s){this._cells.setRange(t,s)}_hasCollision(t){const s=t.id;let e=0,o=0;t.save();do{const s=t.boundsCount;e+=s;for(let e=0;e<s;e++){const s=t.boundsComputedAnchorX(e),h=t.boundsComputedAnchorY(e),c=t.boundsWidth(e)+i,l=t.boundsHeight(e)+i;switch(this._collide(s,h,c,l)){case n:return n;case r:o++}}}while(t.peekId()===s&&t.next());return t.restore(),e===o?r:h}_collide(s,e,i,c){const l=s-i/2,_=e-c/2,a=l+i,u=_+c;if(a<0||u<0||l>this.width||_>this.height)return r;const d=t(Math.floor(l/o),0,this._cols),g=t(Math.floor(_/o),0,this._rows),f=t(Math.ceil(a/o),0,this._cols),m=t(Math.ceil(u/o),0,this._rows);for(let t=g;t<=m;t++)for(let s=d;s<=f;s++){const e=this.getCellId(s,t);if(this.has(e))return n}return h}_mark(s,e,i,h){const r=s-i/2,n=e-h/2,c=r+i,l=n+h,_=t(Math.floor(r/o),0,this._cols),a=t(Math.floor(n/o),0,this._rows),u=t(Math.ceil(c/o),0,this._cols),d=t(Math.ceil(l/o),0,this._rows);for(let t=a;t<=d;t++)for(let s=_;s<=u;s++){const e=this.getCellId(s,t);this.set(e)}return!1}_markMetrics(t){const s=t.id;do{const s=t.boundsCount;for(let e=0;e<s;e++){const s=t.boundsComputedAnchorX(e),o=t.boundsComputedAnchorY(e),h=t.boundsWidth(e)+i,r=t.boundsHeight(e)+i;this._mark(s,o,h,r)}}while(t.peekId()===s&&t.next())}}class l{constructor(t,e=2){this._bucketSize=t,this._rowsLength=s/t,this._colsLength=s/t,this._elementsPerBucket=e,this._grid=this._initGrid()}checkOverlap(t,s){const e=Math.floor(t/this._bucketSize),i=Math.floor(s/this._bucketSize);return e<0||e>=this._rowsLength||i<0||i>=this._colsLength||this._grid[i*this._colsLength+e]>=this._elementsPerBucket}markUsed(t,s){const e=Math.floor(t/this._bucketSize),i=Math.floor(s/this._bucketSize);this._grid[i*this._colsLength+e]+=1}reset(){this._grid=this._initGrid()}_initGrid(){return new Uint8Array(this._rowsLength*this._colsLength)}}export{c as CollisionBitsetGrid,l as CollisionGrid,n as HAS_COLLISION,h as NONE,r as OUTSIDE_EXTENT};
5
+ import{clamp as t}from"../../../../../core/mathUtils.js";import{TILE_SIZE as s}from"../definitions.js";import{StaticBitSet as e}from"../../../layers/features/support/StaticBitSet.js";const i=2,o=1,h=0,r=1,n=2;class c{constructor(t,s){this.width=t,this.height=s;const i=Math.ceil(t/o),h=Math.ceil(s/o);this._cols=i,this._rows=h,this._cells=e.create(i*h)}insertMetrics(t){const s=this._hasCollision(t);return s===h&&this._markMetrics(t),s}getCellId(t,s){return t+s*this._cols}has(t){return this._cells.has(t)}hasRange(t,s){return this._cells.hasRange(t,s)}set(t){this._cells.set(t)}setRange(t,s){this._cells.setRange(t,s)}_hasCollision(t){const s=t.id;let e=0,o=0;t.save();do{const s=t.boundsCount;e+=s;for(let e=0;e<s;e++){const s=t.boundsComputedAnchorX(e),h=t.boundsComputedAnchorY(e),c=t.boundsWidth(e)+i,l=t.boundsHeight(e)+i;switch(this._collide(s,h,c,l)){case n:return n;case r:o++}}}while(t.peekId()===s&&t.next());return t.restore(),e===o?r:h}_collide(s,e,i,c){const l=s-i/2,_=e-c/2,a=l+i,u=_+c;if(a<0||u<0||l>this.width||_>this.height)return r;const d=t(Math.floor(l/o),0,this._cols),g=t(Math.floor(_/o),0,this._rows),f=t(Math.ceil(a/o),0,this._cols),m=t(Math.ceil(u/o),0,this._rows);for(let t=g;t<=m;t++)for(let s=d;s<=f;s++){const e=this.getCellId(s,t);if(this.has(e))return n}return h}_mark(s,e,i,h){const r=s-i/2,n=e-h/2,c=r+i,l=n+h,_=t(Math.floor(r/o),0,this._cols),a=t(Math.floor(n/o),0,this._rows),u=t(Math.ceil(c/o),0,this._cols),d=t(Math.ceil(l/o),0,this._rows);for(let t=a;t<=d;t++)for(let s=_;s<=u;s++){const e=this.getCellId(s,t);this.set(e)}return!1}_markMetrics(t){const s=t.id;do{const s=t.boundsCount;for(let e=0;e<s;e++){const s=t.boundsComputedAnchorX(e),o=t.boundsComputedAnchorY(e),h=t.boundsWidth(e)+i,r=t.boundsHeight(e)+i;this._mark(s,o,h,r)}}while(t.peekId()===s&&t.next())}}class l{constructor(t,e=2){this._bucketSize=t,this._rowsLength=s/t,this._colsLength=s/t,this._elementsPerBucket=e,this._grid=this._initGrid()}checkOverlap(t,s){const e=Math.floor(t/this._bucketSize),i=Math.floor(s/this._bucketSize);return e<0||e>=this._rowsLength||i<0||i>=this._colsLength||this._grid[i*this._colsLength+e]>=this._elementsPerBucket}markUsed(t,s){const e=Math.floor(t/this._bucketSize),i=Math.floor(s/this._bucketSize);this._grid[i*this._colsLength+e]+=1}reset(){this._grid=this._initGrid()}_initGrid(){return new Uint8Array(this._rowsLength*this._colsLength)}}export{c as CollisionBitsetGrid,l as CollisionGrid,n as HAS_COLLISION,h as NONE,r as OUTSIDE_EXTENT};