@arcgis/core 6.0.0-next.15 → 6.0.0-next.16

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 (337) hide show
  1. package/analysis/LineOfSightAnalysis.d.ts +49 -32
  2. package/analysis/LineOfSightAnalysisObserver.d.ts +19 -3
  3. package/analysis/LineOfSightAnalysisTarget.d.ts +19 -3
  4. package/analysis/Viewshed.d.ts +23 -3
  5. package/analysis/ViewshedAnalysis.d.ts +33 -13
  6. package/arcade/geometry/operatorsWorkerConnection.js +1 -1
  7. package/assets/esri/core/workers/RemoteClient.js +1 -1
  8. package/assets/esri/core/workers/chunks/00d66e3fba5ab4d2aa3c.js +1 -0
  9. package/assets/esri/core/workers/chunks/{d994bcf0a65d1c07160f.js → 0320cbd825f9a4222042.js} +1 -1
  10. package/assets/esri/core/workers/chunks/14d5d219e7fe017f23f0.js +1 -0
  11. package/assets/esri/core/workers/chunks/164e74d586297946a717.js +1 -0
  12. package/assets/esri/core/workers/chunks/{1bca39e0e651426bdbb5.js → 1b1d3f6916d2cb751435.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{ed6e9d7f71bfd2691717.js → 1c77de1e79860f8d2228.js} +1 -1
  14. package/assets/esri/core/workers/chunks/1e40a26dcce4d1dadc28.js +1 -0
  15. package/assets/esri/core/workers/chunks/237a1f68a0efbfe5b77c.js +1 -0
  16. package/assets/esri/core/workers/chunks/23c43f09c4a4749516e1.js +1 -0
  17. package/assets/esri/core/workers/chunks/{3418877328f4f0830300.js → 24dac4970526a4e0ae63.js} +1 -1
  18. package/assets/esri/core/workers/chunks/26ceb0ff8d93dbb9b84f.js +1 -0
  19. package/assets/esri/core/workers/chunks/2acf2952cef69e382a35.js +1 -0
  20. package/assets/esri/core/workers/chunks/{481589c3eddad6e026ad.js → 369780276b2755361f7d.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{4df6cb1bee5d0720a43e.js → 36cbd614454581aaf334.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{1e0d2715d603f48a7e0b.js → 370aad23df597db80d65.js} +1 -1
  23. package/assets/esri/core/workers/chunks/3baa4a9c52f41bfd6abb.js +1 -0
  24. package/assets/esri/core/workers/chunks/42d44c7d532df5ee70e9.js +1 -0
  25. package/assets/esri/core/workers/chunks/42e985a576d7aaeed0cf.js +1 -0
  26. package/assets/esri/core/workers/chunks/{6400446b7615b97c3521.js → 45f826554499c38968c6.js} +1 -1
  27. package/assets/esri/core/workers/chunks/48cc58890fddbcf69cef.js +1 -0
  28. package/assets/esri/core/workers/chunks/494bd434fee9032e1d02.js +1 -0
  29. package/assets/esri/core/workers/chunks/{33e4ff228a8c81b99022.js → 4abd3753cd9b80e4d937.js} +1 -1
  30. package/assets/esri/core/workers/chunks/4bbe1f28f5f16a6bef05.js +1 -0
  31. package/assets/esri/core/workers/chunks/4c389472b8cdb0c55154.js +1 -0
  32. package/assets/esri/core/workers/chunks/4e4f747de424941a0bfa.js +1 -0
  33. package/assets/esri/core/workers/chunks/5529831dd891382c79df.js +1 -0
  34. package/assets/esri/core/workers/chunks/576248e9ae2654569420.js +1 -0
  35. package/assets/esri/core/workers/chunks/5acb422fe3cf693d9d4f.js +1 -0
  36. package/assets/esri/core/workers/chunks/{aeaaff7a4b1a99540f52.js → 5cb26bbaa08114aec5ce.js} +1 -1
  37. package/assets/esri/core/workers/chunks/661c6324529dd17b297e.js +1 -0
  38. package/assets/esri/core/workers/chunks/68dd1fd2025c7125ead1.js +1 -0
  39. package/assets/esri/core/workers/chunks/{89e76de5ae3328d821a4.js → 69f6d5997b8ff1326e39.js} +1 -1
  40. package/assets/esri/core/workers/chunks/6a8dd8b18b0b825b0c1b.js +1 -0
  41. package/assets/esri/core/workers/chunks/{a40b6d8b5c73e06e14d4.js → 6c255c029d67423e4dac.js} +1 -1
  42. package/assets/esri/core/workers/chunks/7446d0dfebf93e86c098.js +1 -0
  43. package/assets/esri/core/workers/chunks/{688f2dbf784e66082308.js → 74c866e0b66e61751861.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{3ffda5bf0b91700dc308.js → 78643f116677950ea29a.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{916b363c342b61ba5461.js → 787c1a8bda7d745633f2.js} +1 -1
  46. package/assets/esri/core/workers/chunks/7b5f3c79e0605c32b267.js +1 -0
  47. package/assets/esri/core/workers/chunks/7bbfe9ff352afc566367.js +1 -0
  48. package/assets/esri/core/workers/chunks/{ac5a6603f7fa78d3e4c8.js → 7e8611cb709f105946f5.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{05cd33d41d91f8d09633.js → 7fb7493f483cd9878bfa.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{acfa03c65ba3ca6c5685.js → 8715661a838361d4211a.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{601e1d020b8115497944.js → 8a485130781b49dbf608.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{0ccab50877b24f862d6e.js → 8ac2098ecdc40ad41055.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{a655ebdb4bf0660615a2.js → 8b4e9fd88c0c313416d4.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{4e544de61f07ca660236.js → 8c12269d26f5a4c753cb.js} +1 -1
  55. package/assets/esri/core/workers/chunks/91dd65cf877c8f2e01a7.js +1 -0
  56. package/assets/esri/core/workers/chunks/{46b4fb6a7fe4877b0efc.js → 94baa354e50c03b82b25.js} +2 -2
  57. package/assets/esri/core/workers/chunks/950d4578dc450467404c.js +1 -0
  58. package/assets/esri/core/workers/chunks/{68be3fb88ca61f82fb90.js → 95dbbddac6581b9d671f.js} +1 -1
  59. package/assets/esri/core/workers/chunks/98be2f621801e230aa01.js +1 -0
  60. package/assets/esri/core/workers/chunks/9b051745d24d1f43480b.js +1 -0
  61. package/assets/esri/core/workers/chunks/9d61740ef8bdcc162be1.js +1 -0
  62. package/assets/esri/core/workers/chunks/{eb04e1717a1002cda3ab.js → 9f06ec95bdf0d0b52b41.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{fafb92ca2c5e4b0b2c23.js → a09d2e1e2540921e4717.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{3b3e519f15ed52c83f0c.js → a49fe94933b65b4b64f8.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{1819c45655c836b9a8d7.js → a4d3944700f1cc240176.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{90bdf86f553e2742d67c.js → a7bd5ba4d7d97411fd33.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{900181f68449d8f82eeb.js → aa1ac7954e4f0fefe15b.js} +1 -1
  68. package/assets/esri/core/workers/chunks/ac24b4370dc7194a3107.js +1 -0
  69. package/assets/esri/core/workers/chunks/{b8337492e2b753aefac4.js → ace41659a5ca0e5abfc3.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{3c0ed15b544df6fb0903.js → b48952e1fb4cb7360dd0.js} +1 -1
  71. package/assets/esri/core/workers/chunks/b5e7475cc5fbf31289d3.js +1 -0
  72. package/assets/esri/core/workers/chunks/{f3da30d7300b92bd8bb0.js → befa32b9e7b3fbdd431e.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{0f617980c7dd9ad0444f.js → bf35927979fc5e7e0478.js} +1 -1
  74. package/assets/esri/core/workers/chunks/c4ddac23bd649d24f3f2.js +1 -0
  75. package/assets/esri/core/workers/chunks/{4e6f40cbdb8c508e6df1.js → c5a9e77977e867a75ff2.js} +1 -1
  76. package/assets/esri/core/workers/chunks/{25f19fc929f25ddd628c.js → c79934cd6883307203f8.js} +1 -1
  77. package/assets/esri/core/workers/chunks/cddc3e285f763ccf33c2.js +1 -0
  78. package/assets/esri/core/workers/chunks/d08ff41e2a9bcd58b64a.js +1 -0
  79. package/assets/esri/core/workers/chunks/d311ff96a5a2791d8cfc.js +1 -0
  80. package/assets/esri/core/workers/chunks/d62afb71f4ece4283994.js +1 -0
  81. package/assets/esri/core/workers/chunks/dc1761cba0454fda3cf9.js +1 -0
  82. package/assets/esri/core/workers/chunks/{4ac1d3e49e242e373a92.js → e0650b1408197d3ac862.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{3ff6d1ed3c0f1285f3e7.js → e0d9dc97985561320bd4.js} +1 -1
  84. package/assets/esri/core/workers/chunks/eaddffcc7004101fc230.js +1 -0
  85. package/assets/esri/core/workers/chunks/eb2652ec48faa78de3c5.js +1 -0
  86. package/assets/esri/core/workers/chunks/eca44e53bcee9b08d70a.js +1 -0
  87. package/assets/esri/core/workers/chunks/f00458654c7c34c369ef.js +1 -0
  88. package/assets/esri/core/workers/chunks/f3cd610084e3f4d8656b.js +1 -0
  89. package/assets/esri/core/workers/chunks/f47fe4433b05fca5c3ad.js +1 -0
  90. package/assets/esri/core/workers/chunks/f7bfa3d33b05b250ce33.js +1 -0
  91. package/assets/esri/core/workers/chunks/f91bc1cb1014e05be763.js +1 -0
  92. package/assets/esri/core/workers/chunks/{ae31fd416bbb41a81392.js → f9c5aa0bbf23e780fecc.js} +1 -1
  93. package/assets/esri/core/workers/chunks/f9ff27cfcf0538ac5e26.js +1 -0
  94. package/assets/esri/core/workers/chunks/{19676b2c5f8b0a5ee680.js → facd1ff23203fed67686.js} +1 -1
  95. package/assets/esri/core/workers/chunks/{40a584cb952e94326e9e.js → fcb86d24fc7e0666b564.js} +1 -1
  96. package/chunks/Distance2DCalculator-DjIp2uQi.js +1 -1
  97. package/chunks/Envelope.js +1 -1
  98. package/chunks/MultiPathImpl.js +1 -1
  99. package/chunks/OperatorGeodeticArea.js +1 -1
  100. package/chunks/OperatorShapePreservingLength.js +1 -1
  101. package/chunks/OperatorShapePreservingProject.js +1 -1
  102. package/chunks/UnitFactory.js +1 -1
  103. package/chunks/basis_encoder.js +1 -1
  104. package/chunks/basis_transcoder.js +1 -1
  105. package/chunks/index.js +1 -1
  106. package/chunks/lclayout.js +1 -1
  107. package/config.d.ts +2 -0
  108. package/config.js +1 -1
  109. package/core/accessorSupport/DefaultsStore.js +1 -1
  110. package/core/accessorSupport/MultiOriginStore.js +1 -1
  111. package/core/accessorSupport/Store.js +1 -1
  112. package/core/accessorSupport/decorators/reader.js +1 -1
  113. package/core/accessorSupport/decorators/writer.js +1 -1
  114. package/core/workers/WorkerOwner.js +1 -1
  115. package/core/workers/workerFactory.js +1 -1
  116. package/core/workers/workers.js +2 -2
  117. package/core/workers.d.ts +9 -0
  118. package/form/elements/inputs/DynamicChoiceInput.d.ts +4 -2
  119. package/geometry/Mesh.js +1 -1
  120. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  121. package/geometry/operators/gx/operatorOffset.js +1 -1
  122. package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
  123. package/geometry/operators/support/jsonConverter.js +1 -1
  124. package/geometry/support/curves/bezierCurveUtils.js +1 -1
  125. package/geometry/support/curves/ellipticArc7Utils.js +1 -1
  126. package/geometry/support/meshUtils/merge.js +1 -1
  127. package/geometry/support/meshUtils/rotate.js +1 -1
  128. package/geometry/support/polygonExtentClipping.js +1 -1
  129. package/identity/Credential.js +1 -1
  130. package/kernel.js +1 -1
  131. package/layers/AnnotationFeatureLayer.d.ts +2 -2
  132. package/layers/AnnotationFeatureLayer.js +1 -1
  133. package/layers/CatalogLayer.d.ts +2 -2
  134. package/layers/CatalogLayer.js +1 -1
  135. package/layers/DimensionFeatureLayer.d.ts +2 -2
  136. package/layers/DimensionFeatureLayer.js +1 -1
  137. package/layers/FeatureLayer.d.ts +4 -4
  138. package/layers/FeatureLayer.js +1 -1
  139. package/layers/ImageryTileLayer.js +1 -1
  140. package/layers/LineOfSightLayer.d.ts +10 -8
  141. package/layers/SceneLayer.js +1 -1
  142. package/layers/SubtypeGroupLayer.d.ts +2 -2
  143. package/layers/SubtypeGroupLayer.js +1 -1
  144. package/layers/ViewshedLayer.d.ts +1 -1
  145. package/layers/VoxelLayer.js +1 -1
  146. package/layers/WMSLayer.js +1 -1
  147. package/layers/geospatialPDF/GeospatialPDFFrame.js +1 -1
  148. package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +9 -9
  149. package/layers/geospatialPDF/GeospatialPDFWorkerClient.js +1 -1
  150. package/layers/geospatialPDF/LGIDictMapFrame.js +1 -1
  151. package/layers/geospatialPDF/ViewportMeasureFrame.js +1 -1
  152. package/layers/geospatialPDF/geospatialPDFParserUtils.js +1 -1
  153. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  154. package/layers/graphics/data/QueryEngineResult.js +1 -1
  155. package/layers/graphics/sources/connections/WebSocketConnection.js +1 -1
  156. package/layers/graphics/sources/parquet/FileProvider.js +1 -1
  157. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  158. package/layers/mixins/{FeatureLayerReload.d.ts → ReloadableLayer.d.ts} +5 -3
  159. package/layers/mixins/ReloadableLayer.js +2 -0
  160. package/layers/raster/datasets/BaseRaster.js +1 -1
  161. package/layers/raster/datasets/GeospatialPDFRaster.js +1 -1
  162. package/layers/raster/datasets/ImageAuxRaster.js +2 -2
  163. package/layers/raster/datasets/ImageServerRaster.js +1 -1
  164. package/layers/raster/datasets/InMemoryRaster.js +1 -1
  165. package/layers/raster/datasets/MRFRaster.js +1 -1
  166. package/layers/raster/datasets/TIFFRaster.js +1 -1
  167. package/layers/raster/datasets/WCSRaster.js +1 -1
  168. package/layers/raster/formats/ImageCanvasDecoder.js +1 -1
  169. package/layers/raster/formats/RasterCodec.js +1 -1
  170. package/layers/raster/formats/TiffDecoder.js +1 -1
  171. package/layers/raster/formats/Zlib.js +1 -1
  172. package/layers/raster/functions/stretchUtils.js +1 -1
  173. package/layers/raster/functions/vectorFieldUtils.js +1 -1
  174. package/layers/support/FieldsIndex.js +1 -1
  175. package/layers/support/RasterWorker.js +1 -1
  176. package/layers/support/featureReductionProperties.js +1 -1
  177. package/layers/support/kmlUtils.js +1 -1
  178. package/layers/video/VideoController.js +10 -10
  179. package/libs/maquette/projection.js +1 -1
  180. package/networks/UtilityNetworkTraceAnalysis.js +1 -1
  181. package/package.json +5 -5
  182. package/popup/FeatureModel.js +1 -1
  183. package/popup/FeaturesModel.js +1 -1
  184. package/portal/Portal.js +1 -1
  185. package/request/process.js +1 -1
  186. package/request/types.d.ts +7 -0
  187. package/rest/knowledgeGraphService.js +1 -1
  188. package/rest/networks/trace.js +1 -1
  189. package/rest/query/executeQuery.js +1 -1
  190. package/smartMapping/raster/renderers/shadedRelief.js +1 -1
  191. package/smartMapping/renderers/univariateColorSize.js +1 -1
  192. package/smartMapping/statistics/support/statsWorker.js +1 -1
  193. package/smartMapping/statistics/support/utils.js +1 -1
  194. package/smartMapping/support/clusterUtils.js +1 -1
  195. package/statistics/utils.js +1 -1
  196. package/symbols/cim/CIMCursor.js +1 -1
  197. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  198. package/symbols/cim/cimAnalyzer.js +1 -1
  199. package/symbols/support/ElevationInfo.d.ts +4 -3
  200. package/undoredo/support/Services.js +1 -1
  201. package/views/2d/engine/vectorTiles/buckets/SymbolBucket.js +2 -2
  202. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  203. package/views/2d/grid/GridView2D.js +1 -1
  204. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  205. package/views/2d/layers/features/sources/strategies/FeatureHybridTileLoadStrategy.js +1 -1
  206. package/views/2d/layers/features/sources/strategies/FeaturePagedTileLoadStrategy.js +1 -1
  207. package/views/2d/layers/features/sources/strategies/FeatureSnapshotLoadStrategy.js +1 -1
  208. package/views/2d/viewpointUtils.js +1 -1
  209. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  210. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  211. package/views/3d/analysis/LineOfSight/types.d.ts +14 -3
  212. package/views/3d/analysis/LineOfSightAnalysisView3D.d.ts +39 -13
  213. package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
  214. package/views/3d/analysis/Viewshed/types.d.ts +7 -0
  215. package/views/3d/analysis/ViewshedAnalysisView3D.d.ts +43 -15
  216. package/views/3d/input/handlers/KeyboardNavigation.js +1 -1
  217. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  218. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  219. package/views/3d/interactive/editingTools/transform/ExtentTransformTool.js +1 -1
  220. package/views/3d/interactive/editingTools/transform/ScaleRotateTransform.js +1 -1
  221. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  222. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  223. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  224. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  225. package/views/3d/layers/graphics/Graphics3DElevationAlignment.js +1 -1
  226. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  227. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  228. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  229. package/views/3d/layers/graphics/SpatialIndex2D.js +1 -1
  230. package/views/3d/layers/i3s/I3SNode.js +1 -1
  231. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  232. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  233. package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
  234. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  235. package/views/3d/layers/support/FeatureTileFetcher3DDebugger.js +1 -1
  236. package/views/3d/layers/support/ImageHighlightHelper3D.js +1 -1
  237. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  238. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  239. package/views/3d/support/elevationUpdateExtentUtils.js +1 -1
  240. package/views/3d/support/elevationUpdateUtils.js +1 -1
  241. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  242. package/views/3d/support/sphereExtentUtils.js +2 -0
  243. package/views/3d/terrain/OverlayFramebufferObject.js +1 -1
  244. package/views/3d/terrain/OverlayRenderer.js +1 -1
  245. package/views/3d/terrain/PatchRenderData.js +1 -1
  246. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  247. package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
  248. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  249. package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
  250. package/views/3d/webgl-engine/materials/internal/MaterialUtil.js +1 -1
  251. package/views/3d/webgl-engine/materials/renderers/PerBufferData.js +1 -1
  252. package/views/SceneView.js +1 -1
  253. package/views/ToolViewManager.js +1 -1
  254. package/views/draw/DrawOperation.js +1 -1
  255. package/views/draw/support/InteractiveHandle.js +1 -1
  256. package/views/draw/support/Reshape.js +1 -1
  257. package/views/draw/support/createUtils.js +1 -1
  258. package/views/draw/support/editingSessionUtils.js +1 -1
  259. package/views/draw/support/managers/InteractiveHandleManager.js +1 -1
  260. package/views/interactive/SegmentLabels.js +1 -1
  261. package/views/interactive/editGeometry/EditGeometry.js +1 -1
  262. package/views/interactive/editGeometry/EditGeometryOperations.js +1 -1
  263. package/views/interactive/editGeometry/operations/SetAllVertexPositions.js +1 -1
  264. package/views/interactive/editGeometry/operations/UndoGroup.js +1 -1
  265. package/views/interactive/options/TooltipOptions.d.ts +2 -0
  266. package/views/interactive/sketch/SketchTooltipOptions.d.ts +2 -0
  267. package/views/interactive/sketch/constraintUtils.js +1 -1
  268. package/views/interactive/snapping/SnappingDragPipelineStep.js +1 -1
  269. package/views/interactive/tooltip/components/TooltipEditableField.js +1 -1
  270. package/views/layers/LayerView.js +1 -1
  271. package/views/layers/LineOfSightLayerView.d.ts +35 -13
  272. package/views/layers/SketchLayerView.d.ts +1 -0
  273. package/views/layers/ViewshedLayerView.d.ts +36 -12
  274. package/views/webgl/Program.js +1 -1
  275. package/views/webgl/Texture.js +1 -1
  276. package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
  277. package/widgets/Directions.js +1 -1
  278. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  279. package/widgets/Editor/legacy/CreateFeaturesWorkflow.js +1 -1
  280. package/widgets/ElevationProfile/support/chartUtils.js +1 -1
  281. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  282. package/widgets/FeatureTable/support/GroupColumnTemplate.js +1 -1
  283. package/widgets/FeatureTable/support/TableTemplate.js +1 -1
  284. package/widgets/Print.js +1 -1
  285. package/widgets/Slice.js +1 -1
  286. package/widgets/UtilityNetworkTraceAnalysis/UtilityNetworkTraceAnalysisViewModel.js +1 -1
  287. package/widgets/support/SelectionList/SelectionListViewModel.js +1 -1
  288. package/widgets/support/SelectionList.js +1 -1
  289. package/widgets/support/componentsUtils.js +1 -1
  290. package/assets/esri/core/workers/chunks/024b44c0c8876627f904.js +0 -1
  291. package/assets/esri/core/workers/chunks/02c5d027bdaee67869cf.js +0 -1
  292. package/assets/esri/core/workers/chunks/03261b9451e293a0fac8.js +0 -1
  293. package/assets/esri/core/workers/chunks/0c8c01097847617261b9.js +0 -1
  294. package/assets/esri/core/workers/chunks/0d931c7579b6409a696d.js +0 -1
  295. package/assets/esri/core/workers/chunks/12c154342fff876f2f1e.js +0 -1
  296. package/assets/esri/core/workers/chunks/1e11d2e97d17685b878a.js +0 -1
  297. package/assets/esri/core/workers/chunks/1f339247b68b061ab0a4.js +0 -1
  298. package/assets/esri/core/workers/chunks/21ddb26526bcb2b122c3.js +0 -1
  299. package/assets/esri/core/workers/chunks/2eae542fe7f0f6576ac1.js +0 -1
  300. package/assets/esri/core/workers/chunks/444e5f214abce3d607cd.js +0 -1
  301. package/assets/esri/core/workers/chunks/46a7da93a63663878583.js +0 -1
  302. package/assets/esri/core/workers/chunks/4a1e23e021bac37a88ab.js +0 -1
  303. package/assets/esri/core/workers/chunks/4c4117e28ea358a32088.js +0 -1
  304. package/assets/esri/core/workers/chunks/54b18559280a7d2a8d93.js +0 -1
  305. package/assets/esri/core/workers/chunks/59b216b60464611742d4.js +0 -1
  306. package/assets/esri/core/workers/chunks/62ac588f7dd1d24d0c9d.js +0 -1
  307. package/assets/esri/core/workers/chunks/62c8c9ad09e0166207fd.js +0 -1
  308. package/assets/esri/core/workers/chunks/62d6e101e9bd9557a410.js +0 -1
  309. package/assets/esri/core/workers/chunks/6558488ea96620439f34.js +0 -1
  310. package/assets/esri/core/workers/chunks/665e31c494d2af505acc.js +0 -1
  311. package/assets/esri/core/workers/chunks/6f4e6022a52de0c54aab.js +0 -1
  312. package/assets/esri/core/workers/chunks/7267b17de212207142c9.js +0 -1
  313. package/assets/esri/core/workers/chunks/7ef182e24cad50815b4e.js +0 -1
  314. package/assets/esri/core/workers/chunks/8293600f94553afc8c38.js +0 -1
  315. package/assets/esri/core/workers/chunks/8431ca60ad33d594e323.js +0 -1
  316. package/assets/esri/core/workers/chunks/876f7633c15f1e31078d.js +0 -1
  317. package/assets/esri/core/workers/chunks/8ca9648eacb894283513.js +0 -1
  318. package/assets/esri/core/workers/chunks/91ebb2ccab1889eb7e81.js +0 -1
  319. package/assets/esri/core/workers/chunks/94e427040edb469d58ad.js +0 -1
  320. package/assets/esri/core/workers/chunks/9ce91a909eccc4dfe388.js +0 -1
  321. package/assets/esri/core/workers/chunks/9e1a3b6a08c96dcefdde.js +0 -1
  322. package/assets/esri/core/workers/chunks/9e3e442a9874ed23a043.js +0 -1
  323. package/assets/esri/core/workers/chunks/ad76f7ab2f3e6d5a5b3c.js +0 -1
  324. package/assets/esri/core/workers/chunks/aff32980d91dab07dfb7.js +0 -1
  325. package/assets/esri/core/workers/chunks/bbf993dba74850bbf9d7.js +0 -1
  326. package/assets/esri/core/workers/chunks/d8f1cefcad02d7353d4b.js +0 -1
  327. package/assets/esri/core/workers/chunks/d938987344bce83cc660.js +0 -1
  328. package/assets/esri/core/workers/chunks/ddf0671976648f621269.js +0 -1
  329. package/assets/esri/core/workers/chunks/de02f60258e6985ef676.js +0 -1
  330. package/assets/esri/core/workers/chunks/e10b57aefcc89671116e.js +0 -1
  331. package/assets/esri/core/workers/chunks/e65dfa19f030ec298437.js +0 -1
  332. package/assets/esri/core/workers/chunks/ed8786fed345718ed684.js +0 -1
  333. package/assets/esri/core/workers/chunks/f122c18af10e56f9ec2b.js +0 -1
  334. package/assets/esri/core/workers/chunks/f92364afaefbac7e8f77.js +0 -1
  335. package/assets/esri/core/workers/chunks/fd9663952d5a94f3a83f.js +0 -1
  336. package/assets/esri/core/workers/chunks/fe9879ecd69ac4329291.js +0 -1
  337. package/layers/mixins/FeatureLayerReload.js +0 -2
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{assertIsSome as e}from"../../../core/maybe.js";import{getPixelValueRange as t}from"../formats/pixelRangeUtils.js";import n from"../../support/PixelBlock.js";import{stretchTypeFunctionEnum as r}from"../../../renderers/support/stretchRendererUtils.js";const i=[.299,.587,.114];function a(e){if(e==null)return!1;let{max:t,min:n,size:r}=e;return(t-n)/r===1&&n>=-.5&&Math.abs(n%1)===.5&&t<=255.5}function o(e,t=256){t=Math.min(t,256);let{size:n,counts:r}=e,i=new Float64Array(n);i[0]=r[0]/t;for(let e=1;e<n;e++)i[e]=i[e-1]+r[e]/t;let o=new Uint8Array(t),s=t/i[i.length-1];if(n<=t){let r=a(e)?Math.max(0,Math.round(e.min+.5)):0;for(let e=r;e<t;e++)o[e]=e>=n+r?255:Math.min(255,Math.trunc(i[e-r]*s))}else{let e=i.map(e=>Math.min(255,Math.trunc(e*s)));for(let r=0;r<t;r++)o[r]=e[Math.round(n/t)];o[t-1]=255}return o}function s(e){let{minCutOff:t,maxCutOff:n,gamma:r,pixelType:i,rounding:a}=e;if(![`u8`,`u16`,`s8`,`s16`].includes(i))return null;let o=t.length,s=i===`s8`?-127:i===`s16`?-32767:0,l=[`u16`,`s16`].includes(i)?65536:256,u=[],d=[],{minOutput:f=0,maxOutput:p=255}=e,m=p-f;for(let e=0;e<o;e++)d[e]=n[e]-t[e],u[e]=d[e]===0?0:m/d[e];let h=[];if(r&&r.length>=o){let e=C(o,r);for(let i=0;i<o;i++){let o=[];for(let c=0;c<l;c++){if(d[i]===0){o[c]=f;continue}let l=c+s,u=(l-t[i])/d[i],h=1;if(r[i]>1&&(h-=(1/m)**(u*e[i])),l<n[i]&&l>t[i]){let e=h*m*u**(1/r[i])+f;o[c]=a===`floor`?Math.floor(e):a===`round`?Math.round(e):e}else l>=n[i]?o[c]=p:o[c]=f}h[i]=o}}else for(let e=0;e<o;e++){let r=[];for(let i=0;i<l;i++){let o=i+s;if(o<=t[e])r[i]=f;else if(o>=n[e])r[i]=p;else{let n=(o-t[e])*u[e]+f;r[i]=a===`floor`?Math.floor(n):a===`round`?Math.round(n):n}}h[e]=r}if(e.contrastOffset!=null){let t=c(e.contrastOffset,e.brightnessOffset);for(let e=0;e<o;e++){let n=h[e];for(let e=0;e<l;e++)n[e]=t[n[e]]}}return{lut:h,offset:s}}function c(e,t){let n=Math.min(Math.max(e,-100),100),r=Math.min(Math.max(t??0,-100),100),i=new Uint8Array(256);for(let e=0;e<256;e++){let t=0;n>0&&n<100?t=(200*e-25500+510*r)/(2*(100-n))+128:n<=0&&n>-100?t=(200*e-25500+510*r)*(100+n)/2e4+128:n===100?(t=200*e-25500+256*(100-n)+510*r,t=t>0?255:0):n===-100&&(t=128),i[e]=t>255?255:t<0?0:t}return i}function l(e,t,n){let r=[];for(let a=0;a<t.length;a++){let o=0,s=0,c=0;`min`in t[a]?{min:o,max:s,avg:c}=t[a]:[o,s,c]=t[a];let l=c??0;e!==`u8`&&(l=255*(l-o)/(s-o)),n&&(l*=i[a]),r.push(u(l))}return r}function u(e){if(e<=0||e>=255)return 1;let t=e+(e===150?0:e<150?45*Math.cos(.01047*e):17*Math.sin(.021*e)),n=Math.log(e/255),r=Math.log(t/255);if(r===0)return 1;let i=n/r;return isNaN(i)?1:Math.min(9.9,Math.max(.01,i))}function d(e,t,n){let{min:r,max:i,count:a,avg:o,mode:s,median:c}=p(e,t,!0);if(a===0)return{statistics:{min:0,max:0,avg:0,stddev:0,count:a,mode:0,median:0},histogram:null};let l={min:r,max:i,avg:o,mode:s,count:a,median:c},u=_(e,t,o,!n.includeSkewnessKurtosis);u&&(l.stddev=u.stddev,n.includeSkewnessKurtosis&&(l.skewness=u.skewness,l.kurtosis=u.kurtosis));let d=n?.histogramSize??256,m=!!n?.pixelType&&[`u8`,`s8`,`u4`,`u2`,`u1`].includes(n.pixelType),h=!n?.skipHistograms;if(c==null){let n=f({band:e,mask:t,min:r,max:i,size:1e4,use8BitHistogram:m});if(c=g(e,t,n,50),h&&m&&d===256)return{statistics:l,histogram:n}}return h?{statistics:l,histogram:f({band:e,mask:t,min:r,max:i,size:d,use8BitHistogram:m&&d===256})}:{statistics:l,histogram:null}}function f(e){let{band:t,mask:n,min:r,max:i,use8BitHistogram:a}=e;if(a){let e=i-r+1,a=new Uint32Array(e);for(let e=0;e<t.length;e++)(!n||n[e])&&a[t[e]-r]++;return{min:r-.5,max:i+.5,size:e,counts:a}}let o=e.size??256,s=new Uint32Array(o),c=(i-r)/o;if(c===0){let e=n?n.reduce((e,t)=>e+ +!!t,0):t.length;return{min:r,max:i,size:1,counts:new Uint32Array(1).fill(e)}}let l=new Uint32Array(o+1),u=1/c;for(let e=0;e<t.length;e++)(!n||n[e])&&l[Math.floor((t[e]-r)*u)]++;for(let e=0;e<o-1;e++)s[e]=l[e];return s[o-1]=l[o-1]+l[o],{min:r,max:i,size:o,counts:s}}function p(e,t,n=!1,r=!1){let i=1/0,a=-1/0,o=0,s=0,c=0,l=0,u=e.length,d=new Map;for(let n=0;n<u;n++){let r=e[n];if(!t||t[n]){let e=(d.get(r)??0)+1;d.set(r,e),e>l&&(l=e,c=r),i=r<i?r:i,a=r>a?r:a,o+=r,s++}}let f=s>0?o/s:0,p=i===a?i:void 0,m=i===a?i:void 0,h=i===a?i:void 0;if(n&&s>0&&s<2**24){let n=e.slice();if(t){let r=0;for(let i=0;i<u;i++){let a=e[i];t[i]&&(n[r++]=a)}}n=n.slice(0,s),n.sort((e,t)=>e-t);let i=s>>>1;p=s%2?n[Math.floor(i)]:(n[i-1]+n[i])/2,r&&(m=n[Math.floor(s*.25)],h=n[Math.floor(s*.75)])}return{min:i,max:a,count:s,avg:f,mode:c,median:p,quartile1:m,quartile3:h}}function m(e,t,n){let{min:r,max:i,avg:a,median:o,quartile1:s,quartile3:c}=p(e,t,!0,!0);if(o==null||s==null||c==null){let a=f({band:e,mask:t,min:r,max:i,size:1e4,use8BitHistogram:[`u8`,`s8`,`u4`,`u2`,`u1`].includes(n)});o=g(e,t,a,50),s=g(e,t,a,25),c=g(e,t,a,75)}return{min:r,max:i,avg:a,median:o,quartile1:s,quartile3:c}}function h(e){let{pixels:t,mask:n,bandMasks:r,pixelType:i}=e;return t.map((e,t)=>m(e,r?.[t]??n,i))}function g(e,t,n,r=50){let{counts:i,min:a,max:o,size:s}=n,c=i.reduce((e,t)=>e+t);r/=100;let l=c*r,u=0,d=0;for(;d<i.length&&(u+=i[d],!(u>=l+1));d++);let f=(o-a)/s,p=a+f*d,m=a+f*(d+1);if(f===1&&Math.abs(a%1)===.5)return p+.5;let h=e.slice(0,i[d]).fill(0);for(let n=0,r=0;n<e.length;n++)if(!t||t[n]){let t=e[n];t>=p&&t<m&&(h[r++]=t)}h.sort((e,t)=>e-t);let g=u-Math.floor(l)-1;return h[Math.max(0,h.length-1-g)]}function _(e,t,n,r=!1,i=!1){let a=0,o=0,s=0,c=0;for(let i=0;i<e.length;i++)if(!t||t[i]){let t=e[i]-n,l=t*t;if(a+=l,!r){let e=l*t;o+=e;let n=e*t;s+=n}c++}if(c<2)return null;a/=c-1;let l=Math.sqrt(a);return r?{stddev:l}:(s/=c,{stddev:l,skewness:i?o*(c/((c-1)*(c-2)))/a**1.5:o/c/a**1.5,kurtosis:s/(a*a)})}function v(e,t){let{pixels:n,mask:r,pixelType:i,bandMasks:a}=e,o=n.map((e,n)=>d(e,a?.[n]??r,{pixelType:i,...t}));return{statistics:o.map(({statistics:e})=>e),histograms:o.map(({histogram:e})=>e)}}function y(e){if(!e?.pixels?.length)return null;let{pixels:t,mask:n,bandMasks:r,pixelType:i}=e,a=e.width*e.height,o=t.length,s=[],c=[],l,u;for(let d=0;d<o;d++){let o=new Uint32Array(256),f=t[d],p=r?.[d]??n;if(i===`u8`){if(l=255,u=0,p){for(let e=0;e<a;e++)if(p[e]){let t=f[e];l=t<l?t:l,u=t>u?t:u,o[t]++}}else for(let e=0;e<a;e++){let t=f[e];l=t<l?t:l,u=t>u?t:u,o[t]++}o=o.slice(l,u+1)}else{let t=!1;e.statistics||(e.updateStatistics(),t=!0);let n=e.statistics;l=n[d].minValue,u=n[d].maxValue;let r=(u-l)/256;if(r===0){n&&!e.validPixelCount&&!t&&e.updateStatistics();let r=(e.validPixelCount||e.width*e.height)/256;for(let e=0;e<256;e++)o[e]=Math.round(r*(e+1))-Math.round(r*e)}else{let e=new Uint32Array(257);for(let t=0;t<a;t++)(!p||p[t])&&e[Math.floor((f[t]-l)/r)]++;for(let t=0;t<255;t++)o[t]=e[t];o[255]=e[255]+e[256]}}let m=i===`u8`?l-.5:l,h=i===`u8`?u+.5:u;s.push({min:m,max:h,size:o.length,counts:o});let g=0,_=0,v=0;for(let e=0;e<o.length;e++)g+=o[e],_+=e*o[e];let y=_/g;for(let e=0;e<o.length;e++)v+=o[e]*(e-y)**2;let b=Math.sqrt(v/(g-1)),x=(h-m)/o.length,S=(y+(i===`u8`?0:.5))*x+l,C=b*x;c.push({min:l,max:u,avg:S,stddev:C})}return{statistics:c,histograms:s}}function b(e){let t=[];for(let n=0;n<e.length;n++){let{min:r,max:i,size:a,counts:o}=e[n],s=0,c=0;for(let e=0;e<a;e++)s+=o[e],c+=e*o[e];let l=c/s,u=0;for(let e=0;e<a;e++)u+=o[e]*(e-l)**2;let d=Math.sqrt(u/(s-1)),f=(i-r)/a,p=(l+.5)*f+r,m=d*f;t.push({min:r,max:i,avg:p,stddev:m})}return t}function x(n,i){let{pixelBlock:a,bandIds:s,returnHistogramLut:c,rasterInfo:l}=i,u=null,d=null,f=n.stretchType;if(typeof f==`number`&&(f=r[f]),n.dra){if(f===`minMax`&&a?.statistics)u=a.statistics.map(e=>[e.minValue,e.maxValue,0,0]);else{let e=y(a);u=e==null?null:e.statistics,d=e==null?null:e.histograms}}else u=n.statistics?.length?n.statistics:l.statistics,d=`histograms`in n?n.histograms:void 0,d||=l.histograms;(f===`percentClip`||f===`histogramEqualization`)&&!d?.length&&(f=`minMax`);let p=u?.length||d?.length||l.bandCount,m=[],h=[];u&&!Array.isArray(u[0])&&(u=u.map(e=>[e.min,e.max,e.avg,e.stddev]));let[g,_]=t(l.pixelType);if(!u?.length){u=[];for(let e=0;e<p;e++)u.push([g,_,1,1]);f===`standardDeviation`&&(f=`minMax`)}switch(f){case`none`:for(let e=0;e<p;e++)m[e]=g,h[e]=_;break;case`minMax`:for(let e=0;e<p;e++){let t=u[e];m[e]=t[0],h[e]=t[1]}break;case`standardDeviation`:{let{numberOfStandardDeviations:e=2}=n;for(let t=0;t<p;t++){let n=u[t];m[t]=n[2]-e*n[3],h[t]=n[2]+e*n[3],m[t]<n[0]&&(m[t]=n[0]),h[t]>n[1]&&(h[t]=n[1])}}break;case`histogramEqualization`:e(d);for(let e=0;e<p;e++)m[e]=d[e].min,h[e]=d[e].max;break;case`percentClip`:e(d);for(let e=0;e<d.length;e++){let t=d[e],r=new Uint32Array(t.size),i=[...t.counts];i.length>=20&&(i[0]=i[1]=i[2]=i[i.length-1]=i[i.length-2]=0);let a=0,o=(t.max-t.min)/t.size,s=t.min===-.5&&o===1?.5:0;for(let e=0;e<t.size;e++)a+=i[e],r[e]=a;let c=(n.minPercent||0)*a/100;m[e]=t.min+s;for(let n=0;n<t.size;n++)if(r[n]>c){m[e]=t.min+o*(n+s);break}c=(1-(n.maxPercent||0)/100)*a,h[e]=t.max+s;for(let n=t.size-2;n>=0;n--)if(r[n]<c){h[e]=t.min+o*(n+2-s);break}if(h[e]<m[e]){let t=m[e];m[e]=h[e],h[e]=t}}break;default:for(let e=0;e<p;e++){let t=u[e];m[e]=t[0],h[e]=t[1]}}let v,b,x;return f===`histogramEqualization`?(e(d),b=d[0].size||256,v=0,c&&(x=d.map(e=>o(e)))):(b=n.max||255,v=n.min||0),S({minCutOff:m,maxCutOff:h,maxOutput:b,minOutput:v,histogramLut:x},s)}function S(e,t){if(t==null||t.length===0)return e;let n=Math.max.apply(null,t),{minCutOff:r,maxCutOff:i,minOutput:a,maxOutput:o,histogramLut:s}=e;return r.length===t.length||r.length<=n?e:{minCutOff:t.map(e=>r[e]),maxCutOff:t.map(e=>i[e]),histogramLut:s?t.map(e=>s[e]):null,minOutput:a,maxOutput:o}}function C(e,t){let n=new Float32Array(e);for(let r=0;r<e;r++)t[r]>1?t[r]>2?n[r]=6.5+(t[r]-2)**2.5:n[r]=6.5+100*(2-t[r])**4:n[r]=1;return n}function w(e,t){if(!e?.pixels?.length)return e;let{mask:r,bandMasks:i,width:a,height:o,pixels:s}=e,{minCutOff:c,maxCutOff:l,minOutput:u,maxOutput:d,gamma:f}=t,p=a*o,m=t.outputPixelType||`u8`,h=e.pixels.map(()=>n.createEmptyBand(m,p)),g=h.length,_=d-u,v=[],y=[];for(let e=0;e<g;e++)y[e]=l[e]-c[e],v[e]=y[e]===0?0:_/y[e];let b=m.startsWith(`u`)||m.startsWith(`s`),x=f&&f.length>=g,S=!!t.isRenderer;if(x){let e=C(g,f);for(let t=0;t<g;t++){let n=i?.[t]??r;for(let r=0;r<p;r++)if(n==null||n[r]){if(y[t]===0){h[t][r]=u;continue}let n=s[t][r],i=(n-c[t])/y[t],a=1;if(f[t]>1&&(a-=(1/_)**(i*e[t])),n<l[t]&&n>c[t]){let e=a*_*i**(1/f[t])+u;h[t][r]=S?Math.floor(e):b?Math.round(e):e}else n>=l[t]?h[t][r]=d:h[t][r]=u}}}else for(let e=0;e<g;e++){let t=i?.[e]??r;for(let n=0;n<p;n++)if(t==null||t[n]){let t=s[e][n];if(t<l[e]&&t>c[e]){let r=(t-c[e])*v[e]+u;h[e][n]=S?Math.floor(r):b?Math.round(r):r}else t>=l[e]?h[e][n]=d:h[e][n]=u}}let w=new n({width:a,height:o,mask:r,bandMasks:i,pixels:h,pixelType:m});return w.updateStatistics(),w}export{h as computeBoxStatistics,C as computeGammaCorrection,l as computeGammaValues,v as computeStatisticsHistograms,c as createContrastBrightnessLUT,o as createHistogramEqualizationLUT,s as createStretchLUT,b as estimateStatisticsFromHistograms,y as estimateStatisticsHistograms,x as getStretchCutoff,a as isStandardU8Histogram,w as stretch};
2
+ import{assertIsSome as e}from"../../../core/maybe.js";import{getPixelValueRange as t}from"../formats/pixelRangeUtils.js";import n from"../../support/PixelBlock.js";import{stretchTypeFunctionEnum as r}from"../../../renderers/support/stretchRendererUtils.js";const i=[.299,.587,.114];function a(e){if(e==null)return!1;let{max:t,min:n,size:r}=e;return(t-n)/r===1&&n>=-.5&&Math.abs(n%1)===.5&&t<=255.5}function o(e,t=256){t=Math.min(t,256);let{size:n,counts:r}=e,i=new Float64Array(n);i[0]=r[0]/t;for(let e=1;e<n;e++)i[e]=i[e-1]+r[e]/t;let o=new Uint8Array(t),s=t/i[i.length-1];if(n<=t){let r=a(e)?Math.max(0,Math.round(e.min+.5)):0;for(let e=r;e<t;e++)o[e]=e>=n+r?255:Math.min(255,Math.trunc(i[e-r]*s))}else{let e=i.map(e=>Math.min(255,Math.trunc(e*s)));for(let r=0;r<t;r++)o[r]=e[Math.round(n/t)];o[t-1]=255}return o}function s(e){let{minCutOff:t,maxCutOff:n,gamma:r,pixelType:i,rounding:a}=e;if(![`u8`,`u16`,`s8`,`s16`].includes(i))return null;let o=t.length,s=i===`s8`?-127:i===`s16`?-32767:0,l=[`u16`,`s16`].includes(i)?65536:256,u=[],d=[],{minOutput:f=0,maxOutput:p=255}=e,m=p-f;for(let e=0;e<o;e++)d[e]=n[e]-t[e],u[e]=d[e]===0?0:m/d[e];let h=[];if(r&&r.length>=o){let e=C(o,r);for(let i=0;i<o;i++){let o=[];for(let c=0;c<l;c++){if(d[i]===0){o[c]=f;continue}let l=c+s,u=(l-t[i])/d[i],h=1;if(r[i]>1&&(h-=(1/m)**(u*e[i])),l<n[i]&&l>t[i]){let e=h*m*u**(1/r[i])+f;o[c]=a===`floor`?Math.floor(e):a===`round`?Math.round(e):e}else l>=n[i]?o[c]=p:o[c]=f}h[i]=o}}else for(let e=0;e<o;e++){let r=[];for(let i=0;i<l;i++){let o=i+s;if(o<=t[e])r[i]=f;else if(o>=n[e])r[i]=p;else{let n=(o-t[e])*u[e]+f;r[i]=a===`floor`?Math.floor(n):a===`round`?Math.round(n):n}}h[e]=r}if(e.contrastOffset!=null){let t=c(e.contrastOffset,e.brightnessOffset);for(let e=0;e<o;e++){let n=h[e];for(let e=0;e<l;e++)n[e]=t[n[e]]}}return{lut:h,offset:s}}function c(e,t){let n=Math.min(Math.max(e,-100),100),r=Math.min(Math.max(t??0,-100),100),i=new Uint8Array(256);for(let e=0;e<256;e++){let t=0;n>0&&n<100?t=(200*e-25500+510*r)/(2*(100-n))+128:n<=0&&n>-100?t=(200*e-25500+510*r)*(100+n)/2e4+128:n===100?(t=200*e-25500+256*(100-n)+510*r,t=t>0?255:0):n===-100&&(t=128),i[e]=t>255?255:t<0?0:t}return i}function l(e,t,n){let r=[];for(let a=0;a<t.length;a++){let o=0,s=0,c=0;`min`in t[a]?{min:o,max:s,avg:c}=t[a]:[o,s,c]=t[a];let l=c??0;e!==`u8`&&(l=255*(l-o)/(s-o)),n&&(l*=i[a]),r.push(u(l))}return r}function u(e){if(e<=0||e>=255)return 1;let t=e+(e===150?0:e<150?45*Math.cos(.01047*e):17*Math.sin(.021*e)),n=Math.log(e/255),r=Math.log(t/255);if(r===0)return 1;let i=n/r;return isNaN(i)?1:Math.min(9.9,Math.max(.01,i))}function d(e,t,n){let{min:r,max:i,count:a,avg:o,mode:s,median:c}=p(e,t,!0);if(a===0)return{statistics:{min:0,max:0,avg:0,stddev:0,count:a,mode:0,median:0},histogram:null};let l={min:r,max:i,avg:o,mode:s,count:a,median:c},u=_(e,t,o,!n.includeSkewnessKurtosis);u&&(l.stddev=u.stddev,n.includeSkewnessKurtosis&&(l.skewness=u.skewness,l.kurtosis=u.kurtosis));let d=n?.histogramSize??256,m=!!n?.pixelType&&[`u8`,`s8`,`u4`,`u2`,`u1`].includes(n.pixelType),h=!n?.skipHistograms;if(c==null){let n=f({band:e,mask:t,min:r,max:i,size:1e4,use8BitHistogram:m});if(c=g(e,t,n,50),h&&m&&d===256)return{statistics:l,histogram:n}}return h?{statistics:l,histogram:f({band:e,mask:t,min:r,max:i,size:d,use8BitHistogram:m&&d===256})}:{statistics:l,histogram:null}}function f(e){let{band:t,mask:n,min:r,max:i,use8BitHistogram:a}=e;if(a){let e=i-r+1,a=new Uint32Array(e);for(let e=0;e<t.length;e++)(!n||n[e])&&a[t[e]-r]++;return{min:r-.5,max:i+.5,size:e,counts:a}}let o=e.size??256,s=new Uint32Array(o),c=(i-r)/o;if(c===0){let e=n?n.reduce((e,t)=>e+ +!!t,0):t.length;return{min:r,max:i,size:1,counts:new Uint32Array(1).fill(e)}}let l=new Uint32Array(o+1),u=1/c;for(let e=0;e<t.length;e++)(!n||n[e])&&l[Math.floor((t[e]-r)*u)]++;for(let e=0;e<o-1;e++)s[e]=l[e];return s[o-1]=l[o-1]+l[o],{min:r,max:i,size:o,counts:s}}function p(e,t,n=!1,r=!1){let i=1/0,a=-1/0,o=0,s=0,c=0,l=0,u=e.length,d=new Map;for(let n=0;n<u;n++){let r=e[n];if(!t||t[n]){let e=(d.get(r)??0)+1;d.set(r,e),e>l&&(l=e,c=r),i=r<i?r:i,a=r>a?r:a,o+=r,s++}}let f=s>0?o/s:0,p=i===a?i:void 0,m=i===a?i:void 0,h=i===a?i:void 0;if(n&&s>0&&s<2**24){let n=e.slice();if(t){let r=0;for(let i=0;i<u;i++){let a=e[i];t[i]&&(n[r++]=a)}}n=n.slice(0,s),n.sort((e,t)=>e-t);let i=s>>>1;p=s%2?n[Math.floor(i)]:(n[i-1]+n[i])/2,r&&(m=n[Math.floor(s*.25)],h=n[Math.floor(s*.75)])}return{min:i,max:a,count:s,avg:f,mode:c,median:p,quartile1:m,quartile3:h}}function m(e,t,n){let{min:r,max:i,avg:a,median:o,quartile1:s,quartile3:c}=p(e,t,!0,!0);if(o==null||s==null||c==null){let a=f({band:e,mask:t,min:r,max:i,size:1e4,use8BitHistogram:[`u8`,`s8`,`u4`,`u2`,`u1`].includes(n)});o=g(e,t,a,50),s=g(e,t,a,25),c=g(e,t,a,75)}return{min:r,max:i,avg:a,median:o,quartile1:s,quartile3:c}}function h(e){let{pixels:t,mask:n,bandMasks:r,pixelType:i}=e;return t.map((e,t)=>m(e,r?.[t]??n,i))}function g(e,t,n,r=50){let{counts:i,min:a,max:o,size:s}=n,c=i.reduce((e,t)=>e+t);r/=100;let l=c*r,u=0,d=0;for(;d<i.length&&(u+=i[d],!(u>=l+1));d++);let f=(o-a)/s,p=a+f*d,m=a+f*(d+1);if(f===1&&Math.abs(a%1)===.5)return p+.5;let h=e.slice(0,i[d]).fill(0);for(let n=0,r=0;n<e.length;n++)if(!t||t[n]){let t=e[n];t>=p&&t<m&&(h[r++]=t)}h.sort((e,t)=>e-t);let g=u-Math.floor(l)-1;return h[Math.max(0,h.length-1-g)]}function _(e,t,n,r=!1,i=!1){let a=0,o=0,s=0,c=0;for(let i=0;i<e.length;i++)if(!t||t[i]){let t=e[i]-n,l=t*t;if(a+=l,!r){let e=l*t;o+=e;let n=e*t;s+=n}c++}if(c<2)return null;a/=c-1;let l=Math.sqrt(a);return r?{stddev:l}:(s/=c,{stddev:l,skewness:i?o*(c/((c-1)*(c-2)))/a**1.5:o/c/a**1.5,kurtosis:s/(a*a)})}function v(e,t){let{pixels:n,mask:r,pixelType:i,bandMasks:a}=e,o=n.map((e,n)=>d(e,a?.[n]??r,{pixelType:i,...t}));return{statistics:o.map(({statistics:e})=>e),histograms:o.map(({histogram:e})=>e)}}function y(e){if(!e?.pixels?.length)return null;let{pixels:t,mask:n,bandMasks:r,pixelType:i}=e,a=e.width*e.height,o=t.length,s=[],c=[],l,u;for(let d=0;d<o;d++){let o=new Uint32Array(256),f=t[d],p=r?.[d]??n;if(i===`u8`){if(l=255,u=0,p){for(let e=0;e<a;e++)if(p[e]){let t=f[e];l=t<l?t:l,u=t>u?t:u,o[t]++}}else for(let e=0;e<a;e++){let t=f[e];l=t<l?t:l,u=t>u?t:u,o[t]++}o=o.slice(l,u+1)}else{let t=!1;e.statistics||(e.updateStatistics(),t=!0);let n=e.statistics;l=n[d].minValue,u=n[d].maxValue;let r=(u-l)/256;if(r===0){n&&!e.validPixelCount&&!t&&e.updateStatistics();let r=(e.validPixelCount||e.width*e.height)/256;for(let e=0;e<256;e++)o[e]=Math.round(r*(e+1))-Math.round(r*e)}else{let e=new Uint32Array(257);for(let t=0;t<a;t++)(!p||p[t])&&e[Math.floor((f[t]-l)/r)]++;for(let t=0;t<255;t++)o[t]=e[t];o[255]=e[255]+e[256]}}let m=i===`u8`?l-.5:l,h=i===`u8`?u+.5:u;s.push({min:m,max:h,size:o.length,counts:o});let g=0,_=0,v=0;for(let e=0;e<o.length;e++)g+=o[e],_+=e*o[e];let y=_/g;for(let e=0;e<o.length;e++)v+=o[e]*(e-y)**2;let b=Math.sqrt(v/(g-1)),x=(h-m)/o.length,S=(y+(i===`u8`?0:.5))*x+l,C=b*x;c.push({min:l,max:u,avg:S,stddev:C})}return{statistics:c,histograms:s}}function b(e){let t=[];for(let n=0;n<e.length;n++){let{min:r,max:i,size:a,counts:o}=e[n],s=0,c=0;for(let e=0;e<a;e++)s+=o[e],c+=e*o[e];let l=c/s,u=0;for(let e=0;e<a;e++)u+=o[e]*(e-l)**2;let d=Math.sqrt(u/(s-1)),f=(i-r)/a,p=(l+.5)*f+r,m=d*f;t.push({min:r,max:i,avg:p,stddev:m})}return t}function x(n,i){let{pixelBlock:a,bandIds:s,returnHistogramLut:c,rasterInfo:l}=i,u=null,d=null,f=n.stretchType;if(typeof f==`number`&&(f=r[f]),n.dra){if(f===`minMax`&&a?.statistics)u=a.statistics.map(e=>[e.minValue,e.maxValue,0,0]);else{let e=y(a);u=e==null?null:e.statistics,d=e==null?null:e.histograms}}else u=n.statistics?.length?n.statistics:l.statistics,d=`histograms`in n?n.histograms:void 0,d||=l.histograms;f!==`percentClip`&&f!==`histogramEqualization`||d?.length||(f=`minMax`);let p=u?.length||d?.length||l.bandCount,m=[],h=[];u&&!Array.isArray(u[0])&&(u=u.map(e=>[e.min,e.max,e.avg,e.stddev]));let[g,_]=t(l.pixelType);if(!u?.length){u=[];for(let e=0;e<p;e++)u.push([g,_,1,1]);f===`standardDeviation`&&(f=`minMax`)}switch(f){case`none`:for(let e=0;e<p;e++)m[e]=g,h[e]=_;break;case`minMax`:for(let e=0;e<p;e++){let t=u[e];m[e]=t[0],h[e]=t[1]}break;case`standardDeviation`:{let{numberOfStandardDeviations:e=2}=n;for(let t=0;t<p;t++){let n=u[t];m[t]=n[2]-e*n[3],h[t]=n[2]+e*n[3],m[t]<n[0]&&(m[t]=n[0]),h[t]>n[1]&&(h[t]=n[1])}}break;case`histogramEqualization`:e(d);for(let e=0;e<p;e++)m[e]=d[e].min,h[e]=d[e].max;break;case`percentClip`:e(d);for(let e=0;e<d.length;e++){let t=d[e],r=new Uint32Array(t.size),i=[...t.counts];i.length>=20&&(i[0]=i[1]=i[2]=i[i.length-1]=i[i.length-2]=0);let a=0,o=(t.max-t.min)/t.size,s=t.min===-.5&&o===1?.5:0;for(let e=0;e<t.size;e++)a+=i[e],r[e]=a;let c=(n.minPercent||0)*a/100;m[e]=t.min+s;for(let n=0;n<t.size;n++)if(r[n]>c){m[e]=t.min+o*(n+s);break}c=(1-(n.maxPercent||0)/100)*a,h[e]=t.max+s;for(let n=t.size-2;n>=0;n--)if(r[n]<c){h[e]=t.min+o*(n+2-s);break}if(h[e]<m[e]){let t=m[e];m[e]=h[e],h[e]=t}}break;default:for(let e=0;e<p;e++){let t=u[e];m[e]=t[0],h[e]=t[1]}}let v,b,x;return f===`histogramEqualization`?(e(d),b=d[0].size||256,v=0,c&&(x=d.map(e=>o(e)))):(b=n.max||255,v=n.min||0),S({minCutOff:m,maxCutOff:h,maxOutput:b,minOutput:v,histogramLut:x},s)}function S(e,t){if(t==null||t.length===0)return e;let n=Math.max.apply(null,t),{minCutOff:r,maxCutOff:i,minOutput:a,maxOutput:o,histogramLut:s}=e;return r.length===t.length||r.length<=n?e:{minCutOff:t.map(e=>r[e]),maxCutOff:t.map(e=>i[e]),histogramLut:s?t.map(e=>s[e]):null,minOutput:a,maxOutput:o}}function C(e,t){let n=new Float32Array(e);for(let r=0;r<e;r++)t[r]>1?t[r]>2?n[r]=6.5+(t[r]-2)**2.5:n[r]=6.5+100*(2-t[r])**4:n[r]=1;return n}function w(e,t){if(!e?.pixels?.length)return e;let{mask:r,bandMasks:i,width:a,height:o,pixels:s}=e,{minCutOff:c,maxCutOff:l,minOutput:u,maxOutput:d,gamma:f}=t,p=a*o,m=t.outputPixelType||`u8`,h=e.pixels.map(()=>n.createEmptyBand(m,p)),g=h.length,_=d-u,v=[],y=[];for(let e=0;e<g;e++)y[e]=l[e]-c[e],v[e]=y[e]===0?0:_/y[e];let b=m.startsWith(`u`)||m.startsWith(`s`),x=f&&f.length>=g,S=!!t.isRenderer;if(x){let e=C(g,f);for(let t=0;t<g;t++){let n=i?.[t]??r;for(let r=0;r<p;r++)if(n==null||n[r]){if(y[t]===0){h[t][r]=u;continue}let n=s[t][r],i=(n-c[t])/y[t],a=1;if(f[t]>1&&(a-=(1/_)**(i*e[t])),n<l[t]&&n>c[t]){let e=a*_*i**(1/f[t])+u;h[t][r]=S?Math.floor(e):b?Math.round(e):e}else n>=l[t]?h[t][r]=d:h[t][r]=u}}}else for(let e=0;e<g;e++){let t=i?.[e]??r;for(let n=0;n<p;n++)if(t==null||t[n]){let t=s[e][n];if(t<l[e]&&t>c[e]){let r=(t-c[e])*v[e]+u;h[e][n]=S?Math.floor(r):b?Math.round(r):r}else t>=l[e]?h[e][n]=d:h[e][n]=u}}let w=new n({width:a,height:o,mask:r,bandMasks:i,pixels:h,pixelType:m});return w.updateStatistics(),w}export{h as computeBoxStatistics,C as computeGammaCorrection,l as computeGammaValues,v as computeStatisticsHistograms,c as createContrastBrightnessLUT,o as createHistogramEqualizationLUT,s as createStretchLUT,b as estimateStatisticsFromHistograms,y as estimateStatisticsHistograms,x as getStretchCutoff,a as isStandardU8Histogram,w as stretch};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{JSONMap as e}from"../../../core/jsonMap.js";import{isValidPixelBlock as t}from"./pixelUtils.js";import n from"../../support/PixelBlock.js";const r=new Map;r.set(`meter-per-second`,1),r.set(`kilometer-per-hour`,.277778),r.set(`knots`,.514444),r.set(`feet-per-second`,.3048),r.set(`mile-per-hour`,.44704);const i=180/Math.PI,a=new e({esriMetersPerSecond:`meter-per-second`,esriKilometersPerHour:`kilometer-per-hour`,esriKnots:`knots`,esriFeetPerSecond:`feet-per-second`,esriMilesPerHour:`mile-per-hour`});function o(e,t){return r.get(e)/r.get(t)||1}function s(e){return(450-e)%360}function c(e,t=`geographic`){let[n,r]=e,a=Math.sqrt(n*n+r*r),o=Math.atan2(r,n)*i;return o=(360+o)%360,t===`geographic`&&(o=s(o)),[a,o]}function l(e,t=`geographic`){let n=e[1];t===`geographic`&&(n=s(n)),n%=360;let r=e[0];return[r*Math.cos(n/i),r*Math.sin(n/i)]}function u(e,n,r,i=`geographic`){if(!t(e)||r==null)return e;let a=n===`vector-magdir`?e.clone():d(e,n),o=a.pixels[1];for(let e=0;e<o.length;e++)i===`geographic`?o[e]=(o[e]+r[e]+270)%360:o[e]=(o[e]+360-r[e])%360;return n===`vector-magdir`?a:d(a,`vector-magdir`)}function d(e,r,i=`geographic`,a=1){if(!t(e))return e;let{pixels:o,width:s,height:u}=e,d=s*u,f=o[0],p=o[1],m=e.pixelType.startsWith(`f`)?e.pixelType:`f32`,h=n.createEmptyBand(m,d),g=n.createEmptyBand(m,d),_=0;for(let e=0;e<u;e++)for(let e=0;e<s;e++)r===`vector-uv`?([h[_],g[_]]=c([f[_],p[_]],i),h[_]*=a):([h[_],g[_]]=l([f[_],p[_]],i),h[_]*=a,g[_]*=a),_++;let v=new n({pixelType:m,width:e.width,height:e.height,mask:e.mask,validPixelCount:e.validPixelCount,maskIsAlpha:e.maskIsAlpha,pixels:[h,g]});return v.updateStatistics(),v}function f(e,n,r=1){if(r===1||!t(e))return e;let i=e.clone(),{pixels:a,width:o,height:s}=i,c=a[0],l=a[1],u=0;for(let e=0;e<s;e++)for(let e=0;e<o;e++)n===`vector-uv`?(c[u]*=r,l[u]*=r):c[u]*=r,u++;return i.updateStatistics(),i}function p(e,t,n,r,i){(i==null||!i.spatialReference.equals(e.spatialReference))&&(i=e);let a=i.xmin,o=i.ymax,s=e.width/t,c=e.height/n,l=(s+c)/2,u=s*r,d=c*r;return e=e.clone(),e.xmin=a+Math.floor((e.xmin-a)/u)*u,e.xmax=a+Math.ceil((e.xmax-a)/u)*u,e.ymin=o+Math.floor((e.ymin-o)/d)*d,e.ymax=o+Math.ceil((e.ymax-o)/d)*d,{extent:e,width:Math.round(e.width/s),height:Math.round(e.height/c),resolution:l}}const m=h(0,0,0);function h(e=0,t=0,n=Math.PI,r=!0){r&&(n=(Math.PI*2-n)%(Math.PI*2));let i=r?-1:1,a=13*i,o=-7*i,s=-2*i,c=-16*i,l=21.75,[u,d]=_(0,t+a,n,l),[f,p]=_(e-5.5,t+o,n,l),[m,h]=_(e+5.5,t+o,n,l),[g,v]=_(e-1.5,t+s,n,l),[y,b]=_(e+1.5,t+s,n,l),[x,S]=_(e-1.5,t+c,n,l),[C,w]=_(e+1.5,t+c,n,l);return[u,d,f,p,g,v,y,b,m,h,x,S,C,w]}function g(e=0,t=Math.PI,n=!0){n&&(t=(Math.PI*2-t)%(Math.PI*2));let r=n?-1:1,i=5*r,a=20*r,o=25*r,s=2*r,c=n?1:-1,l=5*c,[u,d]=[0+l,0-a],[f,p]=[u+2*c,d],[m,h]=[f-0*c,p+s],[g,v]=[0-l,0-o],[y,b]=[g+0*c,v-s],x=Math.ceil(e/5),S=Math.floor(x/10);x-=S*8;let C=[],w=[];for(let e=0;e<x/2;e++,S--){S<=0&&x%2==1&&e===(x-1)/2&&(g=0,y=g+0*c,v=(v+d)/2,b=v-s);let[n,r]=_(g,v,t,45);if(S>0){let[e,i]=_(f,v,t,45),[a,o]=_(u,d,t,45);C.push(e),C.push(i),C.push(n),C.push(r),C.push(a),C.push(o)}else{let[e,i]=_(f,p,t,45),[a,o]=_(m,h,t,45),[s,c]=_(y,b,t,45);w.push(n),w.push(r),w.push(s),w.push(c),w.push(a),w.push(o),w.push(e),w.push(i)}v+=i,d+=i,p+=i,h+=i,b+=i}let[T,E]=_(0+l,0+a,t,45),D=7*c,[O,k]=_(0+D,0+a,t,45),[A,j]=_(0+l,0-o,t,45),[M,N]=_(0+D,0-o,t,45);return{pennants:C,barbs:w,shaft:[T,E,O,k,A,j,M,N]}}function _(e,t,n,r=1){let i=Math.sqrt(e*e+t*t)/r,a=(Math.PI*2+Math.atan2(t,e))%(Math.PI*2);return[i,(Math.PI*2+a-n)%(Math.PI*2)]}const v=[0,1,3,6,10,16,21,27,33,40,47,55,63],y=[0,.5,1,1.5,2],b=[0,.25,.5,1,1.5,2,2.5,3,3.5,4];function x(e,t,n,r){let i=o(r||`knots`,n),a=1;for(;a<t.length;a++)if(a===t.length-1){if(e<t[a]*i)break}else if(e<=t[a]*i)break;return Math.min(a-1,t.length-2)}function S(e,t,n,r,i){let a=0;switch(t){case`beaufort_kn`:a=x(e,v,`knots`,n);break;case`beaufort_km`:a=x(e,v,`kilometer-per-hour`,n);break;case`beaufort_ft`:a=x(e,v,`feet-per-second`,n);break;case`beaufort_m`:a=x(e,v,`meter-per-second`,n);break;case`classified_arrow`:a=x(e,i??[],r,n);break;case`ocean_current_m`:a=x(e,y,`meter-per-second`,n);break;case`ocean_current_kn`:a=x(e,b,`knots`,n)}return a}function C(e,t){let{style:n,inputUnit:r,outputUnit:i,breakValues:o}=t,s=a.fromJSON(r),c=a.fromJSON(i),l=0,u=0,{width:d,height:f,mask:p}=e,g=e.pixels[0],_=e.pixels[1],v=p==null?d*f:p.filter(e=>e>0).length,y=new Float32Array(v*42),b=new Uint32Array(15*v),x=t.invertDirection?h(0,0,0,!1):m;for(let e=0;e<f;e++)for(let t=0;t<d;t++){let r=e*d+t;if(!p||p[e*d+t]){let i=(_[r]+360)%360/180*Math.PI,a=S(g[r],n,s,c,o);for(let n=0;n<x.length;n+=2)y[l++]=(t+.5)/d,y[l++]=(e+.5)/f,y[l++]=x[n],y[l++]=x[n+1]+i,y[l++]=a,y[l++]=g[r];let p=(l/42-1)*7;b[u++]=p,b[u++]=p+1,b[u++]=p+2,b[u++]=p+0,b[u++]=p+4,b[u++]=p+3,b[u++]=p+0,b[u++]=p+2,b[u++]=p+3,b[u++]=p+2,b[u++]=p+5,b[u++]=p+3,b[u++]=p+5,b[u++]=p+6,b[u++]=p+3}}return{vertexData:y,indexData:b}}const w=[];function T(e,t){if(w.length===0)for(let e=0;e<30;e++)w.push(g(e*5,0,!t.invertDirection));let n=o(a.fromJSON(t.inputUnit),`knots`),{width:r,height:i,mask:s}=e,c=e.pixels[0],l=e.pixels[1],u=[],d=[],f=0,p=0;for(let e=0;e<i;e++)for(let t=0;t<r;t++){let a=e*r+t,o=c[a]*n;if((!s||s[e*r+t])&&o>=5){let n=(l[a]+360)%360/180*Math.PI,{pennants:s,barbs:c,shaft:m}=w[Math.min(Math.floor(o/5),29)];if(s.length+c.length===0)continue;let h=u.length/6,g=(t+.5)/r,_=(e+.5)/i;for(let e=0;e<s.length;e+=2)u[f++]=g,u[f++]=_,u[f++]=s[e],u[f++]=s[e+1]+n,u[f++]=0,u[f++]=o;for(let e=0;e<c.length;e+=2)u[f++]=g,u[f++]=_,u[f++]=c[e],u[f++]=c[e+1]+n,u[f++]=0,u[f++]=o;for(let e=0;e<m.length;e+=2)u[f++]=g,u[f++]=_,u[f++]=m[e],u[f++]=m[e+1]+n,u[f++]=0,u[f++]=o;for(let e=0;e<s.length/6;e++)d[p++]=h,d[p++]=h+1,d[p++]=h+2,h+=3;for(let e=0;e<c.length/8;e++)d[p++]=h,d[p++]=h+1,d[p++]=h+2,d[p++]=h+1,d[p++]=h+2,d[p++]=h+3,h+=4;d[p++]=h+0,d[p++]=h+1,d[p++]=h+2,d[p++]=h+1,d[p++]=h+3,d[p++]=h+2,h+=4}}return{vertexData:new Float32Array(u),indexData:new Uint32Array(d)}}function E(e,t){let n=0,r=0,{width:i,height:s,mask:c}=e,l=e.pixels[0],u=[],d=[],f=o(a.fromJSON(t.inputUnit),`knots`),p=t.style===`wind_speed`?5:Number.MAX_VALUE;for(let e=0;e<s;e++)for(let t=0;t<i;t++){let a=l[e*i+t]*f;if((!c||c[e*i+t])&&a<p){for(let r=0;r<4;r++)u[n++]=(t+.5)/i,u[n++]=(e+.5)/s,u[n++]=r<2?-.5:.5,u[n++]=r%2==0?-.5:.5,u[n++]=0,u[n++]=a;let o=(n/24-1)*4;d[r++]=o,d[r++]=o+1,d[r++]=o+2,d[r++]=o+1,d[r++]=o+2,d[r++]=o+3}}return{vertexData:new Float32Array(u),indexData:new Uint32Array(d)}}function D(e,t){return t.style===`simple_scalar`?E(e,t):t.style===`wind_speed`?T(e,t):C(e,t)}function O(e,t,r,i=[0,0],a=.5){let{width:o,height:s,mask:u}=e,[d,f]=e.pixels,[p,m]=i,h=Math.round((o-p)/r),g=Math.round((s-m)/r),_=h*g,v=new Float32Array(_),y=new Float32Array(_),b=new Uint8Array(_),x=t===`vector-uv`;for(let e=0;e<g;e++)for(let t=0;t<h;t++){let n=0,i=e*h+t,g=Math.max(0,e*r+m),_=Math.max(0,t*r+p),S=Math.min(s,g+r),C=Math.min(o,_+r);for(let e=g;e<S;e++)for(let t=_;t<C;t++){let r=e*o+t;if(!u||u[r]){n++;let e=x?[d[r],f[r]]:[d[r],(360+f[r])%360],[t,a]=x?e:l(e);v[i]+=t,y[i]+=a}}if(n>=(S-g)*(C-_)*(1-a)){b[i]=1;let[e,t]=c([v[i]/n,y[i]/n]);v[i]=e,y[i]=t}else b[i]=0,v[i]=0,y[i]=0}let S=new n({width:h,height:g,pixels:[v,y],mask:b});return S.updateStatistics(),S}export{u as convertToLocalDirections,d as convertVectorFieldData,f as convertVectorFieldUnit,D as createVFMeshData,E as createVFScalarData,o as getUnitConversionFactor,O as sampleVectorField,p as snapImageToSymbolTile,a as unitKebabDict,c as uvComponentToVector};
2
+ import{JSONMap as e}from"../../../core/jsonMap.js";import{isValidPixelBlock as t}from"./pixelUtils.js";import n from"../../support/PixelBlock.js";const r=new Map;r.set(`meter-per-second`,1),r.set(`kilometer-per-hour`,.277778),r.set(`knots`,.514444),r.set(`feet-per-second`,.3048),r.set(`mile-per-hour`,.44704);const i=180/Math.PI,a=new e({esriMetersPerSecond:`meter-per-second`,esriKilometersPerHour:`kilometer-per-hour`,esriKnots:`knots`,esriFeetPerSecond:`feet-per-second`,esriMilesPerHour:`mile-per-hour`});function o(e,t){return r.get(e)/r.get(t)||1}function s(e){return(450-e)%360}function c(e,t=`geographic`){let[n,r]=e,a=Math.sqrt(n*n+r*r),o=Math.atan2(r,n)*i;return o=(360+o)%360,t===`geographic`&&(o=s(o)),[a,o]}function l(e,t=`geographic`){let n=e[1];t===`geographic`&&(n=s(n)),n%=360;let r=e[0];return[r*Math.cos(n/i),r*Math.sin(n/i)]}function u(e,n,r,i=`geographic`){if(!t(e)||r==null)return e;let a=n===`vector-magdir`?e.clone():d(e,n),o=a.pixels[1];for(let e=0;e<o.length;e++)i===`geographic`?o[e]=(o[e]+r[e]+270)%360:o[e]=(o[e]+360-r[e])%360;return n===`vector-magdir`?a:d(a,`vector-magdir`)}function d(e,r,i=`geographic`,a=1){if(!t(e))return e;let{pixels:o,width:s,height:u}=e,d=s*u,f=o[0],p=o[1],m=e.pixelType.startsWith(`f`)?e.pixelType:`f32`,h=n.createEmptyBand(m,d),g=n.createEmptyBand(m,d),_=0;for(let e=0;e<u;e++)for(let e=0;e<s;e++)r===`vector-uv`?([h[_],g[_]]=c([f[_],p[_]],i),h[_]*=a):([h[_],g[_]]=l([f[_],p[_]],i),h[_]*=a,g[_]*=a),_++;let v=new n({pixelType:m,width:e.width,height:e.height,mask:e.mask,validPixelCount:e.validPixelCount,maskIsAlpha:e.maskIsAlpha,pixels:[h,g]});return v.updateStatistics(),v}function f(e,n,r=1){if(r===1||!t(e))return e;let i=e.clone(),{pixels:a,width:o,height:s}=i,c=a[0],l=a[1],u=0;for(let e=0;e<s;e++)for(let e=0;e<o;e++)n===`vector-uv`?(c[u]*=r,l[u]*=r):c[u]*=r,u++;return i.updateStatistics(),i}function p(e,t,n,r,i){i!=null&&i.spatialReference.equals(e.spatialReference)||(i=e);let a=i.xmin,o=i.ymax,s=e.width/t,c=e.height/n,l=(s+c)/2,u=s*r,d=c*r;return e=e.clone(),e.xmin=a+Math.floor((e.xmin-a)/u)*u,e.xmax=a+Math.ceil((e.xmax-a)/u)*u,e.ymin=o+Math.floor((e.ymin-o)/d)*d,e.ymax=o+Math.ceil((e.ymax-o)/d)*d,{extent:e,width:Math.round(e.width/s),height:Math.round(e.height/c),resolution:l}}const m=h(0,0,0);function h(e=0,t=0,n=Math.PI,r=!0){r&&(n=(Math.PI*2-n)%(Math.PI*2));let i=r?-1:1,a=13*i,o=-7*i,s=-2*i,c=-16*i,l=21.75,[u,d]=_(0,t+a,n,l),[f,p]=_(e-5.5,t+o,n,l),[m,h]=_(e+5.5,t+o,n,l),[g,v]=_(e-1.5,t+s,n,l),[y,b]=_(e+1.5,t+s,n,l),[x,S]=_(e-1.5,t+c,n,l),[C,w]=_(e+1.5,t+c,n,l);return[u,d,f,p,g,v,y,b,m,h,x,S,C,w]}function g(e=0,t=Math.PI,n=!0){n&&(t=(Math.PI*2-t)%(Math.PI*2));let r=n?-1:1,i=5*r,a=20*r,o=25*r,s=2*r,c=n?1:-1,l=5*c,[u,d]=[0+l,0-a],[f,p]=[u+2*c,d],[m,h]=[f-0*c,p+s],[g,v]=[0-l,0-o],[y,b]=[g+0*c,v-s],x=Math.ceil(e/5),S=Math.floor(x/10);x-=S*8;let C=[],w=[];for(let e=0;e<x/2;e++,S--){S<=0&&x%2==1&&e===(x-1)/2&&(g=0,y=g+0*c,v=(v+d)/2,b=v-s);let[n,r]=_(g,v,t,45);if(S>0){let[e,i]=_(f,v,t,45),[a,o]=_(u,d,t,45);C.push(e),C.push(i),C.push(n),C.push(r),C.push(a),C.push(o)}else{let[e,i]=_(f,p,t,45),[a,o]=_(m,h,t,45),[s,c]=_(y,b,t,45);w.push(n),w.push(r),w.push(s),w.push(c),w.push(a),w.push(o),w.push(e),w.push(i)}v+=i,d+=i,p+=i,h+=i,b+=i}let[T,E]=_(0+l,0+a,t,45),D=7*c,[O,k]=_(0+D,0+a,t,45),[A,j]=_(0+l,0-o,t,45),[M,N]=_(0+D,0-o,t,45);return{pennants:C,barbs:w,shaft:[T,E,O,k,A,j,M,N]}}function _(e,t,n,r=1){let i=Math.sqrt(e*e+t*t)/r,a=(Math.PI*2+Math.atan2(t,e))%(Math.PI*2);return[i,(Math.PI*2+a-n)%(Math.PI*2)]}const v=[0,1,3,6,10,16,21,27,33,40,47,55,63],y=[0,.5,1,1.5,2],b=[0,.25,.5,1,1.5,2,2.5,3,3.5,4];function x(e,t,n,r){let i=o(r||`knots`,n),a=1;for(;a<t.length;a++)if(a===t.length-1){if(e<t[a]*i)break}else if(e<=t[a]*i)break;return Math.min(a-1,t.length-2)}function S(e,t,n,r,i){let a=0;switch(t){case`beaufort_kn`:a=x(e,v,`knots`,n);break;case`beaufort_km`:a=x(e,v,`kilometer-per-hour`,n);break;case`beaufort_ft`:a=x(e,v,`feet-per-second`,n);break;case`beaufort_m`:a=x(e,v,`meter-per-second`,n);break;case`classified_arrow`:a=x(e,i??[],r,n);break;case`ocean_current_m`:a=x(e,y,`meter-per-second`,n);break;case`ocean_current_kn`:a=x(e,b,`knots`,n)}return a}function C(e,t){let{style:n,inputUnit:r,outputUnit:i,breakValues:o}=t,s=a.fromJSON(r),c=a.fromJSON(i),l=0,u=0,{width:d,height:f,mask:p}=e,g=e.pixels[0],_=e.pixels[1],v=p==null?d*f:p.filter(e=>e>0).length,y=new Float32Array(v*42),b=new Uint32Array(15*v),x=t.invertDirection?h(0,0,0,!1):m;for(let e=0;e<f;e++)for(let t=0;t<d;t++){let r=e*d+t;if(!p||p[e*d+t]){let i=(_[r]+360)%360/180*Math.PI,a=S(g[r],n,s,c,o);for(let n=0;n<x.length;n+=2)y[l++]=(t+.5)/d,y[l++]=(e+.5)/f,y[l++]=x[n],y[l++]=x[n+1]+i,y[l++]=a,y[l++]=g[r];let p=(l/42-1)*7;b[u++]=p,b[u++]=p+1,b[u++]=p+2,b[u++]=p+0,b[u++]=p+4,b[u++]=p+3,b[u++]=p+0,b[u++]=p+2,b[u++]=p+3,b[u++]=p+2,b[u++]=p+5,b[u++]=p+3,b[u++]=p+5,b[u++]=p+6,b[u++]=p+3}}return{vertexData:y,indexData:b}}const w=[];function T(e,t){if(w.length===0)for(let e=0;e<30;e++)w.push(g(e*5,0,!t.invertDirection));let n=o(a.fromJSON(t.inputUnit),`knots`),{width:r,height:i,mask:s}=e,c=e.pixels[0],l=e.pixels[1],u=[],d=[],f=0,p=0;for(let e=0;e<i;e++)for(let t=0;t<r;t++){let a=e*r+t,o=c[a]*n;if((!s||s[e*r+t])&&o>=5){let n=(l[a]+360)%360/180*Math.PI,{pennants:s,barbs:c,shaft:m}=w[Math.min(Math.floor(o/5),29)];if(s.length+c.length===0)continue;let h=u.length/6,g=(t+.5)/r,_=(e+.5)/i;for(let e=0;e<s.length;e+=2)u[f++]=g,u[f++]=_,u[f++]=s[e],u[f++]=s[e+1]+n,u[f++]=0,u[f++]=o;for(let e=0;e<c.length;e+=2)u[f++]=g,u[f++]=_,u[f++]=c[e],u[f++]=c[e+1]+n,u[f++]=0,u[f++]=o;for(let e=0;e<m.length;e+=2)u[f++]=g,u[f++]=_,u[f++]=m[e],u[f++]=m[e+1]+n,u[f++]=0,u[f++]=o;for(let e=0;e<s.length/6;e++)d[p++]=h,d[p++]=h+1,d[p++]=h+2,h+=3;for(let e=0;e<c.length/8;e++)d[p++]=h,d[p++]=h+1,d[p++]=h+2,d[p++]=h+1,d[p++]=h+2,d[p++]=h+3,h+=4;d[p++]=h+0,d[p++]=h+1,d[p++]=h+2,d[p++]=h+1,d[p++]=h+3,d[p++]=h+2,h+=4}}return{vertexData:new Float32Array(u),indexData:new Uint32Array(d)}}function E(e,t){let n=0,r=0,{width:i,height:s,mask:c}=e,l=e.pixels[0],u=[],d=[],f=o(a.fromJSON(t.inputUnit),`knots`),p=t.style===`wind_speed`?5:Number.MAX_VALUE;for(let e=0;e<s;e++)for(let t=0;t<i;t++){let a=l[e*i+t]*f;if((!c||c[e*i+t])&&a<p){for(let r=0;r<4;r++)u[n++]=(t+.5)/i,u[n++]=(e+.5)/s,u[n++]=r<2?-.5:.5,u[n++]=r%2==0?-.5:.5,u[n++]=0,u[n++]=a;let o=(n/24-1)*4;d[r++]=o,d[r++]=o+1,d[r++]=o+2,d[r++]=o+1,d[r++]=o+2,d[r++]=o+3}}return{vertexData:new Float32Array(u),indexData:new Uint32Array(d)}}function D(e,t){return t.style===`simple_scalar`?E(e,t):t.style===`wind_speed`?T(e,t):C(e,t)}function O(e,t,r,i=[0,0],a=.5){let{width:o,height:s,mask:u}=e,[d,f]=e.pixels,[p,m]=i,h=Math.round((o-p)/r),g=Math.round((s-m)/r),_=h*g,v=new Float32Array(_),y=new Float32Array(_),b=new Uint8Array(_),x=t===`vector-uv`;for(let e=0;e<g;e++)for(let t=0;t<h;t++){let n=0,i=e*h+t,g=Math.max(0,e*r+m),_=Math.max(0,t*r+p),S=Math.min(s,g+r),C=Math.min(o,_+r);for(let e=g;e<S;e++)for(let t=_;t<C;t++){let r=e*o+t;if(!u||u[r]){n++;let e=x?[d[r],f[r]]:[d[r],(360+f[r])%360],[t,a]=x?e:l(e);v[i]+=t,y[i]+=a}}if(n>=(S-g)*(C-_)*(1-a)){b[i]=1;let[e,t]=c([v[i]/n,y[i]/n]);v[i]=e,y[i]=t}else b[i]=0,v[i]=0,y[i]=0}let S=new n({width:h,height:g,pixels:[v,y],mask:b});return S.updateStatistics(),S}export{u as convertToLocalDirections,d as convertVectorFieldData,f as convertVectorFieldUnit,D as createVFMeshData,E as createVFScalarData,o as getUnitConversionFactor,O as sampleVectorField,p as snapImageToSymbolTile,a as unitKebabDict,c as uvComponentToVector};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../core/Error.js";import t from"../../core/Logger.js";import{isSerializable as n}from"../../core/support/jsonUtils.js";import{lowerCaseNormalizedFieldName as r,applyLowerCaseFieldName as i,isDateField as a,isNumericField as o,isObjectIDField as s,isGlobalIDField as c,getFieldDefaultValue as l,getFieldFromIndex as u,isTimeOnlyField as d}from"./fieldUtils.js";import{utc as f,unknown as p}from"../../time/constants.js";import{fromTimeReference as m}from"../../time/timeZoneUtils.js";function h(e){return`timeZone`in e}function g(e){return`timeZone`in e}function _(e){return`dateFieldsTimeZone`in e}class v{static fromJSON(e){return new v(e.fields,e.timeZoneByFieldName)}static fromLayer(e){return new v(e.fields??[],b(e))}static fromLayerJSON(e){return new v(e.fields??[],b(e))}constructor(e=[],t){this._fieldsMap=new Map,this._normalizedFieldsMap=new Map,this._dateFieldsSet=new Set,this._numericFieldsSet=new Set,this._requiredFields=null,this.dateFields=[],this.numericFields=[],this.fields=e||[],this._timeZoneByFieldName=t?new Map(t):null;let n=[];for(let e of this.fields){let t=e?.name,l=r(t);if(t&&l){let r=i(t);this._fieldsMap.set(t,e),this._fieldsMap.set(r,e),this._normalizedFieldsMap.set(l,e),n.push(`${r}:${e.type}:${this._timeZoneByFieldName?.get(t)}`),a(e)?(this.dateFields.push(e),this._dateFieldsSet.add(e)):o(e)&&(this._numericFieldsSet.add(e),this.numericFields.push(e)),!s(e)&&!c(e)&&(e.editable=e.editable==null||!!e.editable,e.nullable=e.nullable==null||!!e.nullable)}}n.sort(),this.uid=n.join()}get requiredFields(){if(!this._requiredFields){this._requiredFields=[];for(let e of this.fields)!s(e)&&!c(e)&&!e.nullable&&l(e)===void 0&&this._requiredFields.push(e)}return this._requiredFields}equals(e){return this.uid===e?.uid}has(e){return this.get(e)!=null}get(e){return u({fieldName:e,fieldsMap:this._fieldsMap,normalizedFieldsMap:this._normalizedFieldsMap})}getTimeZone(n){let r=this.get(!n||typeof n==`string`?n:n.name);return r?this._timeZoneByFieldName?this._timeZoneByFieldName.get(r.name):r.type===`date`||r.type===`esriFieldTypeDate`?(t.getLogger(`esri.layers.support.FieldsIndex`).errorOnce(new e(`getTimeZone:no-timezone-information`,`no time zone information for field '${r.name}'`)),f):y.has(r.type)?p:null:null}isDateField(e){return this._dateFieldsSet.has(this.get(e))}isTimeOnlyField(e){return d(this.get(e))}isNumericField(e){return this._numericFieldsSet.has(this.get(e))}normalizeFieldName(e){return this.get(e)?.name??void 0}toJSON(){return{fields:this.fields.map(e=>n(e)?e.toJSON():e),timeZoneByFieldName:this._timeZoneByFieldName?Array.from(this._timeZoneByFieldName.entries()):null}}}const y=new Set([`time-only`,`date-only`,`timestamp-offset`,`esriFieldTypeDateOnly`,`esriFieldTypeTimeOnly`,`esriFieldTypeTimestampOffset`]);function b(e){let t=new Map;if(!e.fields)return t;let n=e.datesInUnknownTimezone===!0,{timeInfo:r,editFieldsInfo:a}=e,o=(r?`startField`in r?r.startField:r.startTimeField:``)??``,s=(r?`endField`in r?r.endField:r.endTimeField:``)??``,c=_(e)?e.dateFieldsTimeZone??null:e.dateFieldsTimeReference?m(e.dateFieldsTimeReference):null,l=a?h(a)?a.timeZone??c:a.dateFieldsTimeReference?m(a.dateFieldsTimeReference):c??f:null,u=r?g(r)?r.timeZone??c:r.timeReference?m(r.timeReference):c:null,d=new Map([[i(a?.creationDateField??``),l],[i(a?.editDateField??``),l],[i(o),u],[i(s),u]]);for(let{name:r,type:a}of e.fields)if(y.has(a))t.set(r,p);else if(a!==`date`&&a!==`esriFieldTypeDate`)t.set(r,null);else if(n)t.set(r,p);else{let e=d.get(i(r??``))??c;t.set(r,e)}return t}export{v as default};
2
+ import e from"../../core/Error.js";import t from"../../core/Logger.js";import{isSerializable as n}from"../../core/support/jsonUtils.js";import{lowerCaseNormalizedFieldName as r,applyLowerCaseFieldName as i,isDateField as a,isNumericField as o,isObjectIDField as s,isGlobalIDField as c,getFieldDefaultValue as l,getFieldFromIndex as u,isTimeOnlyField as d}from"./fieldUtils.js";import{utc as f,unknown as p}from"../../time/constants.js";import{fromTimeReference as m}from"../../time/timeZoneUtils.js";function h(e){return`timeZone`in e}function g(e){return`timeZone`in e}function _(e){return`dateFieldsTimeZone`in e}class v{static fromJSON(e){return new v(e.fields,e.timeZoneByFieldName)}static fromLayer(e){return new v(e.fields??[],b(e))}static fromLayerJSON(e){return new v(e.fields??[],b(e))}constructor(e=[],t){this._fieldsMap=new Map,this._normalizedFieldsMap=new Map,this._dateFieldsSet=new Set,this._numericFieldsSet=new Set,this._requiredFields=null,this.dateFields=[],this.numericFields=[],this.fields=e||[],this._timeZoneByFieldName=t?new Map(t):null;let n=[];for(let e of this.fields){let t=e?.name,l=r(t);if(t&&l){let r=i(t);this._fieldsMap.set(t,e),this._fieldsMap.set(r,e),this._normalizedFieldsMap.set(l,e),n.push(`${r}:${e.type}:${this._timeZoneByFieldName?.get(t)}`),a(e)?(this.dateFields.push(e),this._dateFieldsSet.add(e)):o(e)&&(this._numericFieldsSet.add(e),this.numericFields.push(e)),!s(e)&&!c(e)&&(e.editable=e.editable==null||!!e.editable,e.nullable=e.nullable==null||!!e.nullable)}}n.sort(),this.uid=n.join()}get requiredFields(){if(!this._requiredFields){this._requiredFields=[];for(let e of this.fields)s(e)||c(e)||e.nullable||l(e)!==void 0||this._requiredFields.push(e)}return this._requiredFields}equals(e){return this.uid===e?.uid}has(e){return this.get(e)!=null}get(e){return u({fieldName:e,fieldsMap:this._fieldsMap,normalizedFieldsMap:this._normalizedFieldsMap})}getTimeZone(n){let r=this.get(!n||typeof n==`string`?n:n.name);return r?this._timeZoneByFieldName?this._timeZoneByFieldName.get(r.name):r.type===`date`||r.type===`esriFieldTypeDate`?(t.getLogger(`esri.layers.support.FieldsIndex`).errorOnce(new e(`getTimeZone:no-timezone-information`,`no time zone information for field '${r.name}'`)),f):y.has(r.type)?p:null:null}isDateField(e){return this._dateFieldsSet.has(this.get(e))}isTimeOnlyField(e){return d(this.get(e))}isNumericField(e){return this._numericFieldsSet.has(this.get(e))}normalizeFieldName(e){return this.get(e)?.name??void 0}toJSON(){return{fields:this.fields.map(e=>n(e)?e.toJSON():e),timeZoneByFieldName:this._timeZoneByFieldName?Array.from(this._timeZoneByFieldName.entries()):null}}}const y=new Set([`time-only`,`date-only`,`timestamp-offset`,`esriFieldTypeDateOnly`,`esriFieldTypeTimeOnly`,`esriFieldTypeTimestampOffset`]);function b(e){let t=new Map;if(!e.fields)return t;let n=e.datesInUnknownTimezone===!0,{timeInfo:r,editFieldsInfo:a}=e,o=(r?`startField`in r?r.startField:r.startTimeField:``)??``,s=(r?`endField`in r?r.endField:r.endTimeField:``)??``,c=_(e)?e.dateFieldsTimeZone??null:e.dateFieldsTimeReference?m(e.dateFieldsTimeReference):null,l=a?h(a)?a.timeZone??c:a.dateFieldsTimeReference?m(a.dateFieldsTimeReference):c??f:null,u=r?g(r)?r.timeZone??c:r.timeReference?m(r.timeReference):c:null,d=new Map([[i(a?.creationDateField??``),l],[i(a?.editDateField??``),l],[i(o),u],[i(s),u]]);for(let{name:r,type:a}of e.fields)if(y.has(a))t.set(r,p);else if(a!==`date`&&a!==`esriFieldTypeDate`)t.set(r,null);else if(n)t.set(r,p);else{let e=d.get(i(r??``))??c;t.set(r,e)}return t}export{v as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../geometry/Extent.js";import t from"../../geometry/Point.js";import n from"../../geometry/operators/support/GeographicTransformation.js";import{decode as r}from"../raster/formats/RasterCodec.js";import{transformPixels as i}from"../raster/functions/pixelTransformUtils.js";import{convertPixelBlockToFeatures as a,compositeBands as o,highlightPixels as s,split as c,clipTile as l,mosaicPixelData as u,mosaic as d,approximateTransform as f,getLocalArithmeticNorthRotations as p}from"../raster/functions/pixelUtils.js";import{create as m}from"../raster/functions/rasterFunctionHelper.js";import{load as h,getProjectionOffsetGrid as g}from"../raster/functions/rasterProjectionHelper.js";import{computeStatisticsHistograms as _,estimateStatisticsHistograms as v}from"../raster/functions/stretchUtils.js";import{convertVectorFieldData as y,sampleVectorField as b,convertToLocalDirections as x}from"../raster/functions/vectorFieldUtils.js";import{readTransform as S}from"../raster/transforms/utils.js";import C from"./PixelBlock.js";import w from"../../renderers/support/RasterSymbolizer.js";import{createFlowMesh as T}from"../../views/2d/engine/flow/dataUtils.js";function E(e){if(!e)return{result:null,transferList:[]};let{pixelBlock:t,transferList:n}=e.getTransferableObject();return{result:t,transferList:n}}class D{convertVectorFieldData(e){let t=C.fromJSON(e.pixelBlock),n=E(y(t,e.type));return Promise.resolve(n)}convertPixelBlockToFeatures(t){let n=a({pixelBlock:C.fromJSON(t.pixelBlock),extent:e.fromJSON(t.extent),fieldNames:t.fieldNames,skipFactor:t.skipFactor,skipSpatialReference:!0,pixelIdOffset:t.pixelIdOffset,imageRowSize:t.imageRowSize});return Promise.resolve(n)}sampleVectorFieldData(e){let t=C.fromJSON(e.pixelBlock),n=E(b(t,e.srcDataType,e.tileSize,e.offset,e.maximumVoidPercentage));return Promise.resolve(n)}transformPixels(e){let t=C.fromJSON(e.pixelBlock),n=i(t,e.transformType,e.transformParameters);return Promise.resolve(E(n))}computeStatisticsHistograms(e){let t=C.fromJSON(e.pixelBlock),n=_(t,{histogramSize:e.histogramSize,includeSkewnessKurtosis:e.includeSkewnessKurtosis});return Promise.resolve(n)}compositeBands(e){let t=e.pixelBlocks.map(e=>e&&C.fromJSON(e)),n=E(o(t));return Promise.resolve(n)}async decode(e){return E(await r(e.data,e.options))}symbolize(t){let n=t.pixelBlock?C.fromJSON(t.pixelBlock):null,r=t.extent?e.fromJSON(t.extent):null,i=E(this.symbolizer.symbolize({...t,pixelBlock:n,extent:r}));return Promise.resolve(i)}highlightPixels(e){let t=C.fromJSON(e.pixelBlock),n=C.fromJSON(e.renderedPixelBlock);return s({pixelBlock:t,renderedPixelBlock:n,highlightOptions:e.highlightOptions}),Promise.resolve(n.toJSON())}async updateSymbolizer(e){this.symbolizer=w.fromJSON(e.symbolizerJSON),e.histograms&&this.symbolizer?.rendererJSON.type===`rasterStretch`&&(this.symbolizer.rendererJSON.histograms=e.histograms)}async updateRasterFunction(e){this.rasterFunction=m(e.rasterFunctionJSON)}async process(n){return E(this.rasterFunction.process({extent:e.fromJSON(n.extent),primaryPixelBlocks:n.primaryPixelBlocks.map(e=>e==null?null:C.fromJSON(e)),primaryPixelSizes:n.primaryPixelSizes?.map(e=>e==null?null:t.fromJSON(e)),primaryRasterIds:n.primaryRasterIds},n.parameters))}stretch(e){let t=E(this.symbolizer.simpleStretch(C.fromJSON(e.srcPixelBlock),e.stretchParams));return Promise.resolve(t)}estimateStatisticsHistograms(e){let t=v(C.fromJSON(e.srcPixelBlock));return Promise.resolve(t)}split(e){let t=c(C.fromJSON(e.srcPixelBlock),e.tileSize,e.maximumPyramidLevel??0,e.useBilinear===!1),n=[],r;return t&&(r=new Map,t.forEach((e,t)=>{if(e){let{pixelBlock:i,transferList:a}=e.getTransferableObject();r.set(t,i),a.forEach(e=>{n.includes(e)||n.push(e)})}})),Promise.resolve({result:r,transferList:n})}clipTile(e){let t=C.fromJSON(e.pixelBlock),n=E(l({...e,pixelBlock:t}));return Promise.resolve(n)}mosaicPixelData(t){let n=t.pixelData.map(t=>({extent:e.fromJSON(t.extent),pixelBlock:t.pixelBlock?C.fromJSON(t.pixelBlock):null})),r=e.fromJSON(t.destExtent),i=E(u(n,r)?.pixelBlock);return Promise.resolve(i)}async mosaicAndTransform(e){let t=e.srcPixelBlocks.map(e=>e?new C(e):null),n=d(t,e.srcMosaicSize,{blockWidths:e.blockWidths,alignmentInfo:e.alignmentInfo,clipOffset:e.clipOffset,clipSize:e.clipSize}),r=n;e.coefs&&(r=f(n,e.destDimension,e.coefs,e.sampleSpacing,e.interpolation));let i;e.projectDirections&&e.gcsGrid&&(i=p(e.destDimension,e.gcsGrid),r=x(r,e.isUV?`vector-uv`:`vector-magdir`,i));let{result:a,transferList:o}=E(r);return{result:{pixelBlock:a,localNorthDirections:i},transferList:o}}async createFlowMesh(e,t){let n={data:new Float32Array(e.flowData.buffer),mask:new Uint8Array(e.flowData.maskBuffer),width:e.flowData.width,height:e.flowData.height},{vertexData:r,indexData:i,pathData:a}=await T(e.meshType,e.simulationSettings,n,e.startInfo,t.signal);return{result:{vertexBuffer:r.buffer,indexBuffer:i.buffer,pathBuffer:a.buffer},transferList:[r.buffer,i.buffer]}}async getProjectionOffsetGrid(t){let r=e.fromJSON(t.projectedExtent),i=e.fromJSON(t.srcBufferExtent),a=null;t.datumTransformationSteps?.length&&(a=new n({steps:t.datumTransformationSteps})),await h();let o=t.rasterTransform?S(t.rasterTransform):null;return g({...t,projectedExtent:r,srcBufferExtent:i,datumTransformation:a,rasterTransform:o})}}export{D as default};
2
+ import e from"../../geometry/Extent.js";import t from"../../geometry/Point.js";import n from"../../geometry/operators/support/GeographicTransformation.js";import{decode as r}from"../raster/formats/RasterCodec.js";import{transformPixels as i}from"../raster/functions/pixelTransformUtils.js";import{convertPixelBlockToFeatures as a,compositeBands as o,highlightPixels as s,split as c,clipTile as l,mosaicPixelData as u,mosaic as d,approximateTransform as f,getLocalArithmeticNorthRotations as p}from"../raster/functions/pixelUtils.js";import{create as m}from"../raster/functions/rasterFunctionHelper.js";import{load as h,getProjectionOffsetGrid as g}from"../raster/functions/rasterProjectionHelper.js";import{computeStatisticsHistograms as _,estimateStatisticsHistograms as v}from"../raster/functions/stretchUtils.js";import{convertVectorFieldData as y,sampleVectorField as b,convertToLocalDirections as x}from"../raster/functions/vectorFieldUtils.js";import{readTransform as S}from"../raster/transforms/utils.js";import C from"./PixelBlock.js";import w from"../../renderers/support/RasterSymbolizer.js";import{createFlowMesh as T}from"../../views/2d/engine/flow/dataUtils.js";function E(e){if(!e)return{result:null,transferList:[]};let{pixelBlock:t,transferList:n}=e.getTransferableObject();return{result:t,transferList:n}}class D{convertVectorFieldData(e){let t=C.fromJSON(e.pixelBlock),n=E(y(t,e.type));return Promise.resolve(n)}convertPixelBlockToFeatures(t){let n=a({pixelBlock:C.fromJSON(t.pixelBlock),extent:e.fromJSON(t.extent),fieldNames:t.fieldNames,skipFactor:t.skipFactor,skipSpatialReference:!0,pixelIdOffset:t.pixelIdOffset,imageRowSize:t.imageRowSize});return Promise.resolve(n)}sampleVectorFieldData(e){let t=C.fromJSON(e.pixelBlock),n=E(b(t,e.srcDataType,e.tileSize,e.offset,e.maximumVoidPercentage));return Promise.resolve(n)}transformPixels(e){let t=C.fromJSON(e.pixelBlock),n=i(t,e.transformType,e.transformParameters);return Promise.resolve(E(n))}computeStatisticsHistograms(e){let t=C.fromJSON(e.pixelBlock),n=_(t,{histogramSize:e.histogramSize,includeSkewnessKurtosis:e.includeSkewnessKurtosis});return Promise.resolve(n)}compositeBands(e){let t=e.pixelBlocks.map(e=>e&&C.fromJSON(e)),n=E(o(t));return Promise.resolve(n)}async decode(e,t){return E(await r(e.data,e.options,{signal:t?.signal}))}symbolize(t){let n=t.pixelBlock?C.fromJSON(t.pixelBlock):null,r=t.extent?e.fromJSON(t.extent):null,i=E(this.symbolizer.symbolize({...t,pixelBlock:n,extent:r}));return Promise.resolve(i)}highlightPixels(e){let t=C.fromJSON(e.pixelBlock),n=C.fromJSON(e.renderedPixelBlock);return s({pixelBlock:t,renderedPixelBlock:n,highlightOptions:e.highlightOptions}),Promise.resolve(n.toJSON())}async updateSymbolizer(e){this.symbolizer=w.fromJSON(e.symbolizerJSON),e.histograms&&this.symbolizer?.rendererJSON.type===`rasterStretch`&&(this.symbolizer.rendererJSON.histograms=e.histograms)}async updateRasterFunction(e){this.rasterFunction=m(e.rasterFunctionJSON)}async process(n){return E(this.rasterFunction.process({extent:e.fromJSON(n.extent),primaryPixelBlocks:n.primaryPixelBlocks.map(e=>e==null?null:C.fromJSON(e)),primaryPixelSizes:n.primaryPixelSizes?.map(e=>e==null?null:t.fromJSON(e)),primaryRasterIds:n.primaryRasterIds},n.parameters))}stretch(e){let t=E(this.symbolizer.simpleStretch(C.fromJSON(e.srcPixelBlock),e.stretchParams));return Promise.resolve(t)}estimateStatisticsHistograms(e){let t=v(C.fromJSON(e.srcPixelBlock));return Promise.resolve(t)}split(e){let t=c(C.fromJSON(e.srcPixelBlock),e.tileSize,e.maximumPyramidLevel??0,e.useBilinear===!1),n=[],r;return t&&(r=new Map,t.forEach((e,t)=>{if(e){let{pixelBlock:i,transferList:a}=e.getTransferableObject();r.set(t,i),a.forEach(e=>{n.includes(e)||n.push(e)})}})),Promise.resolve({result:r,transferList:n})}clipTile(e){let t=C.fromJSON(e.pixelBlock),n=E(l({...e,pixelBlock:t}));return Promise.resolve(n)}mosaicPixelData(t){let n=t.pixelData.map(t=>({extent:e.fromJSON(t.extent),pixelBlock:t.pixelBlock?C.fromJSON(t.pixelBlock):null})),r=e.fromJSON(t.destExtent),i=E(u(n,r)?.pixelBlock);return Promise.resolve(i)}async mosaicAndTransform(e){let t=e.srcPixelBlocks.map(e=>e?new C(e):null),n=d(t,e.srcMosaicSize,{blockWidths:e.blockWidths,alignmentInfo:e.alignmentInfo,clipOffset:e.clipOffset,clipSize:e.clipSize}),r=n;e.coefs&&(r=f(n,e.destDimension,e.coefs,e.sampleSpacing,e.interpolation));let i;e.projectDirections&&e.gcsGrid&&(i=p(e.destDimension,e.gcsGrid),r=x(r,e.isUV?`vector-uv`:`vector-magdir`,i));let{result:a,transferList:o}=E(r);return{result:{pixelBlock:a,localNorthDirections:i},transferList:o}}async createFlowMesh(e,t){let n={data:new Float32Array(e.flowData.buffer),mask:new Uint8Array(e.flowData.maskBuffer),width:e.flowData.width,height:e.flowData.height},{vertexData:r,indexData:i,pathData:a}=await T(e.meshType,e.simulationSettings,n,e.startInfo,t.signal);return{result:{vertexBuffer:r.buffer,indexBuffer:i.buffer,pathBuffer:a.buffer},transferList:[r.buffer,i.buffer]}}async getProjectionOffsetGrid(t){let r=e.fromJSON(t.projectedExtent),i=e.fromJSON(t.srcBufferExtent),a=null;t.datumTransformationSteps?.length&&(a=new n({steps:t.datumTransformationSteps})),await h();let o=t.rasterTransform?S(t.rasterTransform):null;return g({...t,projectedExtent:r,srcBufferExtent:i,datumTransformation:a,rasterTransform:o})}}export{D as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../PopupTemplate.js";import{clone as t}from"../../core/lang.js";import{setDeepValue as n}from"../../core/object.js";import r from"./AggregateField.js";import i from"./AggregateFieldsIndex.js";import{labelsVisible as a,popupEnabled as o}from"./commonProperties.js";import s from"./FieldConfiguration.js";import{fieldConfigurationsFromPopupTemplate as c,popupTemplateWithFieldConfigurations as l}from"./fieldConfigUtils.js";import u from"./LabelClass.js";import{supportsFieldConfiguration as d}from"./layerUtils.js";import{rendererTypes as f}from"../../renderers/support/typeUtils.js";function p(){return{type:[s],clonable:!1,json:{name:`fieldConfigurations`,write:{overridePolicy(e){return{enabled:d(this.layer),ignoreOrigin:!0}}}},set:function(e){if(this._override(`fieldConfigurations`,e),!this.layer?.loaded)return;let t=l(this,e);t&&this._set(`popupTemplate`,t)},get:function(){if(this._isOverridden(`fieldConfigurations`))return this._get(`fieldConfigurations`);if(this.layer?.loaded)return c(this)||null}}}function m(){return{type:[r],value:[],json:{write:{ignoreOrigin:!0,writer(e,t,r){let i=e.filter(e=>e.statisticType!==`avg_angle`).map(e=>e.toJSON());n(r,i,t)}}},set:function(e){C(this._get(`fields`),null),C(e,this.layer),this._set(`fields`,e)}}}function h(){return{readOnly:!0,get:function(){return new i(this.fields)}}}function g(){return{type:[u],json:{read:{source:`drawingInfo.labelingInfo`},write:{target:`drawingInfo.labelingInfo`,ignoreOrigin:!0}}}}function _(){return w(t(a))}function v(){return{clonable:!1,set:function(e){C(this.fields,e),this._set(`layer`,e)}}}function y(){return{type:Number,json:{default:0,name:`visibilityInfo.maxScale`,write:{ignoreOrigin:!0}}}}function b(){return w(t(o))}function x(){return{type:e,json:{name:`popupInfo`,write:{ignoreOrigin:!0,writer(e,t,n,r){e&&(t[n]=e.toJSON({...r,writeFieldFormat:d(this.layer)}))}}}}}function S(){return{types:f,json:{write:{target:`drawingInfo.renderer`,ignoreOrigin:!0}}}}function C(e,t){e?.forEach(e=>{e.layer=t})}function w(e){let t=e.json;t||=e.json={};let n=t.write;return(typeof n!=`object`||!n)&&(n=t.write={}),n.ignoreOrigin=!0,e}export{p as fieldConfigurationsProperty,h as fieldsIndexProperty,m as fieldsProperty,g as labelingInfoProperty,_ as labelsVisibleProperty,v as layerProperty,y as maxScaleProperty,b as popupEnabledProperty,x as popupTemplateProperty,S as rendererProperty};
2
+ import e from"../../PopupTemplate.js";import{clone as t}from"../../core/lang.js";import{setDeepValue as n}from"../../core/object.js";import r from"./AggregateField.js";import i from"./AggregateFieldsIndex.js";import{labelsVisible as a,popupEnabled as o}from"./commonProperties.js";import s from"./FieldConfiguration.js";import{fieldConfigurationsFromPopupTemplate as c,popupTemplateWithFieldConfigurations as l}from"./fieldConfigUtils.js";import u from"./LabelClass.js";import{supportsFieldConfiguration as d}from"./layerUtils.js";import{rendererTypes as f}from"../../renderers/support/typeUtils.js";function p(){return{type:[s],clonable:!1,json:{name:`fieldConfigurations`,write:{overridePolicy(e){return{enabled:d(this.layer),ignoreOrigin:!0}}}},set:function(e){if(this._override(`fieldConfigurations`,e),!this.layer?.loaded)return;let t=l(this,e);t&&this._set(`popupTemplate`,t)},get:function(){if(this._isOverridden(`fieldConfigurations`))return this._get(`fieldConfigurations`);if(this.layer?.loaded)return c(this)||null}}}function m(){return{type:[r],value:[],json:{write:{ignoreOrigin:!0,writer(e,t,r){let i=e.filter(e=>e.statisticType!==`avg_angle`).map(e=>e.toJSON());n(r,i,t)}}},set:function(e){C(this._get(`fields`),null),C(e,this.layer),this._set(`fields`,e)}}}function h(){return{readOnly:!0,get:function(){return new i(this.fields)}}}function g(){return{type:[u],json:{read:{source:`drawingInfo.labelingInfo`},write:{target:`drawingInfo.labelingInfo`,ignoreOrigin:!0}}}}function _(){return w(t(a))}function v(){return{clonable:!1,set:function(e){C(this.fields,e),this._set(`layer`,e)}}}function y(){return{type:Number,json:{default:0,name:`visibilityInfo.maxScale`,write:{ignoreOrigin:!0}}}}function b(){return w(t(o))}function x(){return{type:e,json:{name:`popupInfo`,write:{ignoreOrigin:!0,writer(e,t,n,r){e&&(t[n]=e.toJSON({...r,writeFieldFormat:d(this.layer)}))}}}}}function S(){return{types:f,json:{write:{target:`drawingInfo.renderer`,ignoreOrigin:!0}}}}function C(e,t){e?.forEach(e=>{e.layer=t})}function w(e){let t=e.json;t||=e.json={};let n=t.write;return typeof n==`object`&&n||(n=t.write={}),n.ignoreOrigin=!0,e}export{p as fieldConfigurationsProperty,h as fieldsIndexProperty,m as fieldsProperty,g as labelingInfoProperty,_ as labelsVisibleProperty,v as layerProperty,y as maxScaleProperty,b as popupEnabledProperty,x as popupTemplateProperty,S as rendererProperty};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../config.js";import{id as t}from"../../kernel.js";import n from"../../PopupTemplate.js";import r from"../../request.js";import{clone as i}from"../../core/lang.js";import{addQueryParameters as a}from"../../core/urlUtils.js";import o from"../../geometry/SpatialReference.js";import{create as s,expandWithAABB as c,equals as l,negativeInfinity as u}from"../../geometry/support/aaBoundingBox.js";import{getBoundsXYZ as d}from"../../geometry/support/boundsUtils.js";import{fromJSON as f}from"../../renderers/support/jsonUtils.js";import p from"../../rest/support/FeatureSet.js";const m={esriGeometryPoint:`points`,esriGeometryPolyline:`polylines`,esriGeometryPolygon:`polygons`};function h(e){let t=e.folders||[],n=t.slice(),r=new Map,a=new Map,o=new Map,s=new Map,c=new Map,l={esriGeometryPoint:a,esriGeometryPolyline:o,esriGeometryPolygon:s};return(e.featureCollection?.layers||[]).forEach(e=>{let t=i(e);t.featureSet.features=[];let n=e.featureSet.geometryType;r.set(n,t);let c=e.layerDefinition.objectIdField;n===`esriGeometryPoint`?v(a,c,e.featureSet.features):n===`esriGeometryPolyline`?v(o,c,e.featureSet.features):n===`esriGeometryPolygon`&&v(s,c,e.featureSet.features)}),e.groundOverlays&&e.groundOverlays.forEach(e=>{c.set(e.id,e)}),t.forEach(t=>{t.networkLinkIds.forEach(r=>{let i=b(r,t.id,e.networkLinks);i&&n.push(i)})}),n.forEach(e=>{if(e.featureInfos){e.points=i(r.get(`esriGeometryPoint`)),e.polylines=i(r.get(`esriGeometryPolyline`)),e.polygons=i(r.get(`esriGeometryPolygon`)),e.mapImages=[];for(let t of e.featureInfos)switch(t.type){case`esriGeometryPoint`:case`esriGeometryPolyline`:case`esriGeometryPolygon`:{let n=l[t.type].get(t.id);n&&e[m[t.type]]?.featureSet.features.push(n);break}case`GroundOverlay`:{let n=c.get(t.id);n&&e.mapImages.push(n);break}}e.fullExtent=S([e])}}),{folders:t,sublayers:n,extent:S(n)}}function g(n,i,o,s){let c=t?.findCredential(n);n=a(n,{token:c?.token});let l=e.kmlServiceUrl;return r(l,{query:{url:n,model:`simple`,folders:``,refresh:o!==0||void 0,outSR:JSON.stringify(i)},responseType:`json`,signal:s})}function _(e,t,n=null,r=[]){let i=[],a={},o=t.sublayers,s=new Set(t.folders.map(e=>e.id));return o.forEach(t=>{let o=new e;if(n?o.read(t,n):o.read(t),r.length&&s.has(o.id)&&(o.visible=r.includes(o.id)),a[t.id]=o,t.parentFolderId!=null&&t.parentFolderId!==-1){let e=a[t.parentFolderId];e.sublayers||=[],e.sublayers?.unshift(o)}else i.unshift(o)}),i}function v(e,t,n){n.forEach(n=>{e.set(n.attributes[t],n)})}function y(e,t){let n;return t.some(t=>t.id===e&&(n=t,!0)),n}function b(e,t,n){let r=y(e,n);return r&&(r.parentFolderId=t,r.networkLink=r),r}async function x(e,t,r,i){let a=e[t];if(!a)return[];let o=p.fromJSON(a.featureSet).features,s=a.layerDefinition,c=f(s.drawingInfo.renderer),l=n.fromJSON(a.popupInfo),u=[];for(let e of o)e.symbol=await c.getSymbolAsync(e),e.popupTemplate=l,e.visible=!0,e.origin=r.sublayerById.get(i).origin,u.push(e);return u}function S(e){let t=s(u),n=s(u);for(let r of e){if(r.polygons?.featureSet?.features)for(let e of r.polygons.featureSet.features)d(t,e.geometry),c(n,t);if(r.polylines?.featureSet?.features)for(let e of r.polylines.featureSet.features)d(t,e.geometry),c(n,t);if(r.points?.featureSet?.features)for(let e of r.points.featureSet.features)d(t,e.geometry),c(n,t);if(r.mapImages)for(let e of r.mapImages)d(t,e.extent),c(n,t)}return l(n,u)?void 0:{xmin:n[0],ymin:n[1],zmin:n[2],xmax:n[3],ymax:n[4],zmax:n[5],spatialReference:o.WGS84}}export{S as computeExtent,g as fetchService,x as getGraphics,h as parseKML,_ as sublayersFromJSON};
2
+ import e from"../../config.js";import{id as t}from"../../kernel.js";import n from"../../PopupTemplate.js";import r from"../../request.js";import{clone as i}from"../../core/lang.js";import{addQueryParameters as a}from"../../core/urlUtils.js";import o from"../../geometry/SpatialReference.js";import{create as s,negativeInfinity as c,expandWithAABB as l,equals as u}from"../../geometry/support/aaBoundingBox.js";import{getBoundsXYZ as d}from"../../geometry/support/boundsUtils.js";import{fromJSON as f}from"../../renderers/support/jsonUtils.js";import p from"../../rest/support/FeatureSet.js";const m={esriGeometryPoint:`points`,esriGeometryPolyline:`polylines`,esriGeometryPolygon:`polygons`};function h(e){let t=e.folders||[],n=t.slice(),r=new Map,a=new Map,o=new Map,s=new Map,c=new Map,l={esriGeometryPoint:a,esriGeometryPolyline:o,esriGeometryPolygon:s};return(e.featureCollection?.layers||[]).forEach(e=>{let t=i(e);t.featureSet.features=[];let n=e.featureSet.geometryType;r.set(n,t);let c=e.layerDefinition.objectIdField;n===`esriGeometryPoint`?v(a,c,e.featureSet.features):n===`esriGeometryPolyline`?v(o,c,e.featureSet.features):n===`esriGeometryPolygon`&&v(s,c,e.featureSet.features)}),e.groundOverlays&&e.groundOverlays.forEach(e=>{c.set(e.id,e)}),t.forEach(t=>{t.networkLinkIds.forEach(r=>{let i=b(r,t.id,e.networkLinks);i&&n.push(i)})}),n.forEach(e=>{if(e.featureInfos){e.points=i(r.get(`esriGeometryPoint`)),e.polylines=i(r.get(`esriGeometryPolyline`)),e.polygons=i(r.get(`esriGeometryPolygon`)),e.mapImages=[];for(let t of e.featureInfos)switch(t.type){case`esriGeometryPoint`:case`esriGeometryPolyline`:case`esriGeometryPolygon`:{let n=l[t.type].get(t.id);n&&e[m[t.type]]?.featureSet.features.push(n);break}case`GroundOverlay`:{let n=c.get(t.id);n&&e.mapImages.push(n);break}}e.fullExtent=S([e])}}),{folders:t,sublayers:n,extent:S(n)}}function g(n,i,o,s){let c=t?.findCredential(n);n=a(n,{token:c?.token});let l=e.kmlServiceUrl;return r(l,{query:{url:n,model:`simple`,folders:``,refresh:o!==0||void 0,outSR:JSON.stringify(i)},responseType:`json`,signal:s})}function _(e,t,n=null,r=[]){let i=[],a={},o=t.sublayers,s=new Set(t.folders.map(e=>e.id));return o.forEach(t=>{let o=new e;if(n?o.read(t,n):o.read(t),r.length&&s.has(o.id)&&(o.visible=r.includes(o.id)),a[t.id]=o,t.parentFolderId!=null&&t.parentFolderId!==-1){let e=a[t.parentFolderId];e.sublayers||=[],e.sublayers?.unshift(o)}else i.unshift(o)}),i}function v(e,t,n){n.forEach(n=>{e.set(n.attributes[t],n)})}function y(e,t){let n;return t.some(t=>t.id===e&&(n=t,!0)),n}function b(e,t,n){let r=y(e,n);return r&&(r.parentFolderId=t,r.networkLink=r),r}async function x(e,t,r,i){let a=e[t];if(!a)return[];let o=p.fromJSON(a.featureSet).features,s=a.layerDefinition,c=f(s.drawingInfo.renderer),l=n.fromJSON(a.popupInfo),u=[];for(let e of o)e.symbol=await c.getSymbolAsync(e),e.popupTemplate=l,e.visible=!0,e.origin=r.sublayerById.get(i).origin,u.push(e);return u}function S(e){let t=s(c),n=s(c);for(let r of e){if(r.polygons?.featureSet?.features)for(let e of r.polygons.featureSet.features)d(t,e.geometry),l(n,t);if(r.polylines?.featureSet?.features)for(let e of r.polylines.featureSet.features)d(t,e.geometry),l(n,t);if(r.points?.featureSet?.features)for(let e of r.points.featureSet.features)d(t,e.geometry),l(n,t);if(r.mapImages)for(let e of r.mapImages)d(t,e.extent),l(n,t)}return u(n,c)?void 0:{xmin:n[0],ymin:n[1],zmin:n[2],xmax:n[3],ymax:n[4],zmax:n[5],spatialReference:o.WGS84}}export{S as computeExtent,g as fetchService,x as getGraphics,h as parseKML,_ as sublayersFromJSON};