@arcgis/core 6.0.0-next.36 → 6.0.0-next.38

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 (389) hide show
  1. package/analysis/DimensionAnalysis.js +1 -1
  2. package/analysis/DimensionSimpleStyle.js +1 -1
  3. package/analysis/LengthDimension.js +1 -1
  4. package/analysis/LineOfSightAnalysis.js +1 -1
  5. package/analysis/LineOfSightAnalysisTarget.js +1 -1
  6. package/analysis/Viewshed.js +1 -1
  7. package/analysis/ViewshedAnalysis.js +1 -1
  8. package/assets/esri/core/workers/RemoteClient.js +1 -1
  9. package/assets/esri/core/workers/chunks/{0202eb8c2b2865f99981.js → 00311d1b18d5952a014b.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{9503eedfdda55fc5adab.js → 091ec4fe83038f3558f4.js} +1 -1
  11. package/assets/esri/core/workers/chunks/0b21d0e2e5a91c34a108.js +1 -0
  12. package/assets/esri/core/workers/chunks/{322b22a5d54e404bebd5.js → 0c893837f67829757df7.js} +1 -1
  13. package/assets/esri/core/workers/chunks/123541f79be7adff0818.js +1 -0
  14. package/assets/esri/core/workers/chunks/{155861fbd0e5fc2db80c.js → 1a91443970d64a59521d.js} +1 -1
  15. package/assets/esri/core/workers/chunks/1e37337f47f45d6d8005.js +1 -0
  16. package/assets/esri/core/workers/chunks/{4e5405134d079bdf9b7a.js → 1f76f6dcdae9f55389cb.js} +1 -1
  17. package/assets/esri/core/workers/chunks/{f717005e14a7e9141df7.js → 2050c844b5a29b1df28a.js} +1 -1
  18. package/assets/esri/core/workers/chunks/2c3612379111457c3221.js +1 -0
  19. package/assets/esri/core/workers/chunks/2d16b5a44f840147e882.js +1 -0
  20. package/assets/esri/core/workers/chunks/{d9a240a3c6bf85124474.js → 342a97974a78007b25e0.js} +1 -1
  21. package/assets/esri/core/workers/chunks/34467f7d84baffd772a3.js +1 -0
  22. package/assets/esri/core/workers/chunks/396299c22994c502e41c.js +1 -0
  23. package/assets/esri/core/workers/chunks/{03daf6f235c6edef6268.js → 398ec098fffe6abceedd.js} +1 -1
  24. package/assets/esri/core/workers/chunks/3b32a24488b3068f0cb7.js +1 -0
  25. package/assets/esri/core/workers/chunks/3b5e9e0b180dc10491ec.js +1 -0
  26. package/assets/esri/core/workers/chunks/{4d18b48d4a282a0f341c.js → 427d929dc7f89b0a1ea9.js} +1 -1
  27. package/assets/esri/core/workers/chunks/432728c557be5dfa26b5.js +1 -0
  28. package/assets/esri/core/workers/chunks/46969f379623810b2eca.js +1 -0
  29. package/assets/esri/core/workers/chunks/46edd6c9ed6701e6b975.js +1 -0
  30. package/assets/esri/core/workers/chunks/{8b0d5551978ab0aac0d1.js → 520f499d79fa71f262c7.js} +1 -1
  31. package/assets/esri/core/workers/chunks/5473409fee59db80f87d.js +1 -0
  32. package/assets/esri/core/workers/chunks/553a8bf5bc5c56d1bcaf.js +1 -0
  33. package/assets/esri/core/workers/chunks/{2211ff0a1f1ae8100231.js → 585ae43c7bcb86a26762.js} +1 -1
  34. package/assets/esri/core/workers/chunks/58716a3a6106a1b0fb9d.js +1 -0
  35. package/assets/esri/core/workers/chunks/{aa6ee2aa4ff6e6d41efb.js → 5882f349f3771868e67f.js} +1 -1
  36. package/assets/esri/core/workers/chunks/592b5db1459c02cf6a0c.js +1 -0
  37. package/assets/esri/core/workers/chunks/{1b17f5f720f6cf3f6d73.js → 5be386b3af867b19ff39.js} +1 -1
  38. package/assets/esri/core/workers/chunks/{ea81f9d71b0842a4be26.js → 5e48898cebb6dbaf09b5.js} +1 -1
  39. package/assets/esri/core/workers/chunks/6a21dc13a465757ba007.js +1 -0
  40. package/assets/esri/core/workers/chunks/{139e753d95cfc9470e74.js → 6a65fc1a2931230fe994.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{3e406043a374ee17475b.js → 6f2e7e663229b223b4df.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{379db67f78161ebd5468.js → 7023651ed6398dcf8efb.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{90360c0bd053d3e3fd77.js → 7027a0e7bfabb3bb7fc2.js} +1 -1
  44. package/assets/esri/core/workers/chunks/76e80381fa6d1e084796.js +1 -0
  45. package/assets/esri/core/workers/chunks/78818c2a898444f7e890.js +1 -0
  46. package/assets/esri/core/workers/chunks/{40c2674dae73f0942751.js → 7d497df6e13162156342.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{3b380e64566a6cce59e2.js → 7e0ed6e8f7b77e43f628.js} +1 -1
  48. package/assets/esri/core/workers/chunks/8c3779de09291170497f.js +1 -0
  49. package/assets/esri/core/workers/chunks/8e391b5b82429f39791e.js +1 -0
  50. package/assets/esri/core/workers/chunks/947f3a1cad976bba9738.js +1 -0
  51. package/assets/esri/core/workers/chunks/{59a1b637d2c107504a04.js → 966204d6dedc8149c3e9.js} +1 -1
  52. package/assets/esri/core/workers/chunks/9826baa3c15ea2062669.js +1 -0
  53. package/assets/esri/core/workers/chunks/{d3369ffed19f4c264dcd.js → 9ab0735e86cf8932bf9d.js} +1 -1
  54. package/assets/esri/core/workers/chunks/ab0ea4042f4e13874aed.js +1 -0
  55. package/assets/esri/core/workers/chunks/ab98ade3257360015d6c.js +1 -0
  56. package/assets/esri/core/workers/chunks/ac107079342251a984dd.js +1 -0
  57. package/assets/esri/core/workers/chunks/{572aec57593a08b8045b.js → b15a8d4322f3b7819d2f.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{552c36b40e5a5ec117fb.js → b472c0a21ae29e653f7d.js} +1 -1
  59. package/assets/esri/core/workers/chunks/b90271ce38522bcf813b.js +1 -0
  60. package/assets/esri/core/workers/chunks/ba91df9835cdea7698a9.js +1 -0
  61. package/assets/esri/core/workers/chunks/bdd76a0b6c14e7fb6984.js +1 -0
  62. package/assets/esri/core/workers/chunks/bfe13ac9fa1aafb190a1.js +1 -0
  63. package/assets/esri/core/workers/chunks/{f372f4eb5527238c46f5.js → c31830ee897d5a7f2582.js} +1 -1
  64. package/assets/esri/core/workers/chunks/c48d97c38e821be17dc5.js +1 -0
  65. package/assets/esri/core/workers/chunks/{0a508e25ec05363e1f04.js → c7ad62f54d2abe1d17a0.js} +1 -1
  66. package/assets/esri/core/workers/chunks/cb1642ea8b66231cbfb5.js +1 -0
  67. package/assets/esri/core/workers/chunks/ce0274847ccce6a1ac53.js +1 -0
  68. package/assets/esri/core/workers/chunks/cf21b217b13770757cb8.js +1 -0
  69. package/assets/esri/core/workers/chunks/cf2e5f827cea7d7319ce.js +1 -0
  70. package/assets/esri/core/workers/chunks/d42a4f47843e075c56a8.js +1 -0
  71. package/assets/esri/core/workers/chunks/dae2036faa28dade2119.js +1 -0
  72. package/assets/esri/core/workers/chunks/e2430bc3a1edeb5c3266.js +1 -0
  73. package/assets/esri/core/workers/chunks/e9457a67befc61e11095.js +1 -0
  74. package/assets/esri/core/workers/chunks/f06ef153e106b26a6748.js +1 -0
  75. package/assets/esri/core/workers/chunks/faae3c43048b42341536.js +1 -0
  76. package/assets/esri/core/workers/chunks/fc77eb7683e708774168.js +1 -0
  77. package/assets/esri/core/workers/chunks/fd967a9f3cf0e2890dbb.js +1 -0
  78. package/chunks/Clouds.glsl.js +7 -11
  79. package/chunks/h.js +2 -0
  80. package/chunks/projector.js +2 -0
  81. package/config.js +1 -1
  82. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  83. package/core/sanitizerUtils.js +1 -1
  84. package/form/FormTemplate.js +1 -1
  85. package/form/elements/Element.js +1 -1
  86. package/form/elements/FieldElement.js +1 -1
  87. package/geometry/ellipsoidUtils.js +4 -4
  88. package/geometry/support/frustumPlanes.js +1 -1
  89. package/geometry/support/plane.js +1 -1
  90. package/geometry/support/triangle.js +1 -1
  91. package/kernel.js +1 -1
  92. package/layers/BaseElevationLayer.js +1 -1
  93. package/layers/ElevationLayer.js +1 -1
  94. package/layers/GraphicsLayer.js +1 -1
  95. package/layers/IntegratedMesh3DTilesLayer.js +1 -1
  96. package/layers/IntegratedMeshLayer.d.ts +2 -0
  97. package/layers/IntegratedMeshLayer.js +1 -1
  98. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  99. package/layers/geospatialPDF/geospatialPDFParserUtils.js +1 -1
  100. package/layers/geospatialPDF/support/datumUtils.js +2 -0
  101. package/layers/geospatialPDF/support/ellipsoidUtils.js +2 -0
  102. package/layers/geospatialPDF/support/geographicProjectionUtils.js +2 -0
  103. package/layers/geospatialPDF/support/parameterUtils.js +2 -0
  104. package/layers/geospatialPDF/support/projectedProjectionUtils.js +3 -0
  105. package/layers/geospatialPDF/support/projectionToSpatialReference.js +2 -0
  106. package/layers/geospatialPDF/support/statePlaneUtils.js +2 -0
  107. package/layers/geospatialPDF/support/unitUtils.js +2 -0
  108. package/layers/geospatialPDF/support/validateProjectionUtils.js +2 -0
  109. package/layers/graphics/sources/support/clientSideDefaults.js +2 -2
  110. package/layers/knowledgeGraph/KnowledgeGraphLayerDataManager.js +1 -1
  111. package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
  112. package/layers/ogc/ogcFeatureUtils.js +1 -1
  113. package/layers/save/imageryUtils.js +1 -1
  114. package/layers/save/mediaLayerUtils.js +1 -1
  115. package/layers/save/streamLayerUtils.js +1 -1
  116. package/layers/support/ControlPoint.js +1 -1
  117. package/layers/support/ControlPointsGeoreference.js +1 -1
  118. package/layers/support/DimensionalDefinition.js +1 -1
  119. package/layers/support/ElevationQuery.js +1 -1
  120. package/layers/support/LabelClass.js +1 -1
  121. package/layers/support/LabelExpressionInfo.js +1 -1
  122. package/layers/support/MediaElementBase.js +1 -1
  123. package/layers/support/MosaicRule.js +1 -1
  124. package/layers/support/MultidimensionalSubset.js +1 -1
  125. package/layers/support/RasterBandInfo.js +1 -1
  126. package/layers/support/RasterFunction.js +1 -1
  127. package/layers/support/RasterFunctionTemplate.js +1 -1
  128. package/layers/support/RasterInfo.js +1 -1
  129. package/layers/support/RasterSensorInfo.js +1 -1
  130. package/layers/support/RasterStorageInfo.js +1 -1
  131. package/layers/support/VideoElement.js +1 -1
  132. package/layers/support/layersLoader.js +1 -1
  133. package/layers/video/VideoController.js +3 -3
  134. package/layers/video/types.d.ts +12 -0
  135. package/legend/ActiveLayerInfo.d.ts +5 -1
  136. package/legend/ActiveLayerInfo.js +1 -1
  137. package/libs/maquette-advanced-projector/projector.js +1 -1
  138. package/linkChart/LayoutSettings.js +1 -1
  139. package/linkChart/RootedLayoutSettings.js +1 -1
  140. package/package.json +3 -3
  141. package/renderers/FlowRenderer.js +1 -1
  142. package/renderers/RasterColormapRenderer.js +1 -1
  143. package/renderers/RasterShadedReliefRenderer.js +1 -1
  144. package/renderers/RasterStretchRenderer.js +1 -1
  145. package/renderers/VectorFieldRenderer.js +1 -1
  146. package/renderers/support/ColormapInfo.js +1 -1
  147. package/renderers/support/RasterPresetRenderer.js +1 -1
  148. package/renderers/support/rasterRendererHelper.js +1 -1
  149. package/rest/knowledgeGraph/GraphApplyEdits.js +1 -1
  150. package/rest/support/BaseImageMeasureParameters.js +1 -1
  151. package/rest/support/BaseImageMeasureResult.js +1 -1
  152. package/rest/support/FindImagesParameters.js +1 -1
  153. package/rest/support/FindImagesResult.js +1 -1
  154. package/rest/support/ImageAngleParameters.js +1 -1
  155. package/rest/support/ImageAngleResult.js +1 -1
  156. package/rest/support/ImageAreaParameters.js +1 -1
  157. package/rest/support/ImageAreaResult.js +1 -1
  158. package/rest/support/ImageBoundaryParameters.js +1 -1
  159. package/rest/support/ImageBoundaryResult.js +1 -1
  160. package/rest/support/ImageDistanceParameters.js +1 -1
  161. package/rest/support/ImageDistanceResult.js +1 -1
  162. package/rest/support/ImageGPSInfoParameters.js +1 -1
  163. package/rest/support/ImageGPSInfoResult.js +1 -1
  164. package/rest/support/ImageHeightParameters.js +1 -1
  165. package/rest/support/ImageHeightResult.js +1 -1
  166. package/rest/support/ImageHistogramParameters.js +1 -1
  167. package/rest/support/ImageIdentifyParameters.js +1 -1
  168. package/rest/support/ImageIdentifyResult.js +1 -1
  169. package/rest/support/ImagePixelLocationParameters.js +1 -1
  170. package/rest/support/ImagePixelLocationResult.js +1 -1
  171. package/rest/support/ImagePointParameters.js +1 -1
  172. package/rest/support/ImagePointResult.js +1 -1
  173. package/rest/support/ImageSample.js +1 -1
  174. package/rest/support/ImageSampleParameters.js +1 -1
  175. package/rest/support/ImageSampleResult.js +1 -1
  176. package/rest/support/ImageToMapMultirayParameters.js +1 -1
  177. package/rest/support/ImageToMapParameters.js +1 -1
  178. package/rest/support/ImageUrlParameters.js +1 -1
  179. package/rest/support/ImageUrlResult.js +1 -1
  180. package/rest/support/ImageVolumeParameters.js +1 -1
  181. package/rest/support/ImageVolumeResult.js +1 -1
  182. package/rest/support/MapToImageParameters.js +1 -1
  183. package/rest/support/MeasureAreaFromImageResult.js +1 -1
  184. package/rest/support/MeasureFromImageParameters.js +1 -1
  185. package/rest/support/MeasureLengthFromImageResult.js +1 -1
  186. package/symbols/support/cimSymbolUtils.js +1 -1
  187. package/symbols/support/renderUtils.js +1 -1
  188. package/views/2d/ViewState.d.ts +3 -3
  189. package/views/2d/ViewState.js +1 -1
  190. package/views/2d/ViewStateManager.js +1 -1
  191. package/views/2d/engine/Bitmap.js +1 -1
  192. package/views/2d/engine/flow/styles/Imagery.js +1 -1
  193. package/views/2d/engine/vectorTiles/SpriteMosaic.js +1 -1
  194. package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
  195. package/views/2d/engine/vectorTiles/decluttering/CollisionJob.js +1 -1
  196. package/views/2d/engine/vectorTiles/style/geoJSONVectorTileUtils.js +1 -1
  197. package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
  198. package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
  199. package/views/2d/engine/webgl/Overlay.js +1 -1
  200. package/views/2d/engine/webgl/OverlayMultipoint.js +1 -1
  201. package/views/2d/engine/webgl/SpriteMosaic.js +1 -1
  202. package/views/2d/engine/webgl/VideoScreenRenderer.js +1 -1
  203. package/views/2d/engine/webgl/animations/store/AnimationStore.js +1 -1
  204. package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
  205. package/views/2d/engine/webgl/collisions/LabelStore.js +1 -1
  206. package/views/2d/engine/webgl/effects/highlight/HighlightGradient.js +1 -1
  207. package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
  208. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  209. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
  210. package/views/2d/engine/webgl/shaderGraph/techniques/blend/BlendTechnique.js +1 -1
  211. package/views/2d/engine/webgl/shaderGraph/techniques/colorize/ColorizeTechnique.js +1 -1
  212. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityResources.js +1 -1
  213. package/views/2d/engine/webgl/shaderGraph/techniques/drop-shadow/DropShadowTechnique.js +1 -1
  214. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapResources.js +1 -1
  215. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  216. package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
  217. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
  218. package/views/2d/engine/webgl/shaderGraph/techniques/opacity/OpacityTechnique.js +1 -1
  219. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
  220. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterHighlightTechnique.js +1 -1
  221. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/textureUtils.js +1 -1
  222. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  223. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/FillShader.js +1 -1
  224. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  225. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OutlineFillShader.js +1 -1
  226. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  227. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileDebugInfoTexture.js +1 -1
  228. package/views/2d/engine/webgl/textureUtils.js +1 -1
  229. package/views/2d/engine/webgl/util/IntervalMatcher.js +1 -1
  230. package/views/2d/layers/LayerView2D.js +1 -1
  231. package/views/2d/webglDeps.js +1 -1
  232. package/views/3d/FocusAreasView.js +1 -1
  233. package/views/3d/GroundView3D.js +1 -1
  234. package/views/3d/input/SceneInputManager.js +1 -1
  235. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  236. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  237. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  238. package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
  239. package/views/3d/layers/i3s/I3SBinaryReader.js +1 -1
  240. package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
  241. package/views/3d/state/ConstraintsManager.js +1 -1
  242. package/views/3d/state/ViewState.js +1 -1
  243. package/views/3d/state/ViewStateManager.js +1 -1
  244. package/views/3d/support/engineContent/line.js +1 -1
  245. package/views/3d/support/engineContent/marker.js +1 -1
  246. package/views/3d/support/flow/StreamlineResources3D.js +1 -1
  247. package/views/3d/support/flow/StreamlineResources3DOverlay.js +1 -1
  248. package/views/3d/support/flow/StreamlineResources3DShape.js +1 -1
  249. package/views/3d/support/flow/geometryUtils.js +1 -1
  250. package/views/3d/support/gaussianSplatting/GaussianSplatFadeHelper.js +1 -1
  251. package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
  252. package/views/3d/support/gaussianSplatting/GaussianSplatOrderTexture.js +1 -1
  253. package/views/3d/support/gaussianSplatting/GaussianSplatTextureAtlas.js +1 -1
  254. package/views/3d/support/gaussianSplatting/GaussianTileBuilder.js +2 -0
  255. package/views/3d/support/gaussianSplatting/GaussianTileLifecycle.js +2 -0
  256. package/views/3d/support/gaussianSplatting/formatConstants.js +2 -0
  257. package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
  258. package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
  259. package/views/3d/terrain/OverlayManager.js +1 -1
  260. package/views/3d/terrain/OverlayRenderer.js +1 -1
  261. package/views/3d/terrain/TerrainRenderer.js +1 -1
  262. package/views/3d/terrain/TerrainSurface.js +1 -1
  263. package/views/3d/terrain/Tile.js +1 -1
  264. package/views/3d/terrain/TileCompositor.js +1 -1
  265. package/views/3d/terrain/TileRenderer.js +1 -1
  266. package/views/3d/terrain/tileUtils.js +1 -1
  267. package/views/3d/webgl/RenderNode.d.ts +1 -1
  268. package/views/3d/webgl-engine/core/FBOCache.js +1 -1
  269. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  270. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +1 -1
  271. package/views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js +1 -1
  272. package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatUnpacking.glsl.js +15 -11
  273. package/views/3d/webgl-engine/effects/WeatherFader.js +1 -1
  274. package/views/3d/webgl-engine/effects/atmosphere/LocalAtmosphere.js +1 -1
  275. package/views/3d/webgl-engine/effects/atmosphere/MarsAtmosphere.js +1 -1
  276. package/views/3d/webgl-engine/effects/clouds/CloudsRenderer.js +1 -1
  277. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +19 -9
  278. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  279. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  280. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  281. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  282. package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
  283. package/views/3d/webgl-engine/lib/AttributeView.js +1 -1
  284. package/views/3d/webgl-engine/lib/BasisUtil.js +1 -1
  285. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  286. package/views/3d/webgl-engine/lib/DDSUtil.js +1 -1
  287. package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +1 -1
  288. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
  289. package/views/3d/webgl-engine/lib/GaussianSplatRenderUtils.js +1 -1
  290. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  291. package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
  292. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  293. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  294. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBuffer.js +1 -1
  295. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBufferView.js +1 -1
  296. package/views/3d/webgl-engine/lib/VerticesView.js +2 -0
  297. package/views/3d/webgl-engine/lib/attributeViewUtils.js +1 -1
  298. package/views/3d/webgl-engine/lib/edgeRendering/strokes.js +1 -1
  299. package/views/3d/webgl-engine/lib/geometryDataUtils.js +1 -1
  300. package/views/3d/webgl-engine/lib/glUtil3D.js +1 -1
  301. package/views/3d/webgl-engine/lib/screenPolygonOverlapUtils.js +1 -1
  302. package/views/3d/webgl-engine/lib/screenPolygonTriangleIntersections.js +1 -1
  303. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  304. package/views/3d/webgl-engine/materials/HUDMaterialBaseInstance.js +1 -1
  305. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  306. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  307. package/views/3d/webgl-engine/materials/internal/WaterTextureRepository.js +1 -1
  308. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  309. package/views/3d/webgl-engine/materials/internal/lineMarkerBufferUtils.js +2 -0
  310. package/views/3d/webgl-engine/materials/internal/ribbonLineBufferUtils.js +2 -0
  311. package/views/3d/webgl-engine/materials/renderers/VaoRenderer.js +1 -1
  312. package/views/3d/webgl-engine/materials/stippleTextureRepository.js +1 -1
  313. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  314. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  315. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  316. package/views/3d/webgl-engine/shaders/hudMaterialLayouts.js +2 -0
  317. package/views/3d/webgl-engine/shaders/lineMarkerLayouts.js +2 -0
  318. package/views/draw/support/ManagedTooltipField.js +1 -1
  319. package/views/overlay/LineOverlayItem.js +1 -1
  320. package/views/overlay/TextOverlayItem.js +1 -1
  321. package/views/overlay/ViewOverlay.js +1 -1
  322. package/views/support/GroundElevationSampler.js +1 -1
  323. package/views/support/HighlightOptions.d.ts +2 -2
  324. package/views/support/HighlightOptions.js +1 -1
  325. package/views/support/TextureCompressionHelper.js +1 -1
  326. package/views/support/imageReprojection.js +1 -1
  327. package/views/webgl/FramebufferObject.js +1 -1
  328. package/views/webgl/RenderingContext.js +1 -1
  329. package/views/webgl/Texture.js +1 -1
  330. package/views/webgl/Util.js +1 -1
  331. package/views/webgl/rasterUtils.js +1 -1
  332. package/views/webgl/testSVGPremultipliedAlpha.js +1 -1
  333. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  334. package/widgets/Legend/styles/support/univariateUtils.js +1 -1
  335. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  336. package/widgets/OrientedImageryViewer.js +1 -1
  337. package/widgets/ScaleRangeSlider/types.d.ts +3 -3
  338. package/assets/esri/core/workers/chunks/01f55004d64309f8538b.js +0 -1
  339. package/assets/esri/core/workers/chunks/039d9bc5b5015012f811.js +0 -1
  340. package/assets/esri/core/workers/chunks/08140725277de5d2e41a.js +0 -1
  341. package/assets/esri/core/workers/chunks/0d99bfb75dcb9fa29080.js +0 -1
  342. package/assets/esri/core/workers/chunks/144bad0c2415c345736a.js +0 -1
  343. package/assets/esri/core/workers/chunks/165ca7a97b611c8f26c4.js +0 -1
  344. package/assets/esri/core/workers/chunks/16cda273927ab0a39544.js +0 -1
  345. package/assets/esri/core/workers/chunks/1989410a618865f02dec.js +0 -1
  346. package/assets/esri/core/workers/chunks/29c610ce1c81ebb84a6b.js +0 -1
  347. package/assets/esri/core/workers/chunks/3223f9fbc76ba9ef8d13.js +0 -1
  348. package/assets/esri/core/workers/chunks/338d800d4efcc91cead1.js +0 -1
  349. package/assets/esri/core/workers/chunks/3415531224f8494d79ca.js +0 -1
  350. package/assets/esri/core/workers/chunks/3fdcc383bbd9cf0d274c.js +0 -1
  351. package/assets/esri/core/workers/chunks/46c290108a90518ef695.js +0 -1
  352. package/assets/esri/core/workers/chunks/48b8b57f559a53c6c513.js +0 -1
  353. package/assets/esri/core/workers/chunks/4a979fce1c971b614a18.js +0 -1
  354. package/assets/esri/core/workers/chunks/59a88dd53f8806bbec06.js +0 -1
  355. package/assets/esri/core/workers/chunks/5aeb5e18514644fe2cf9.js +0 -1
  356. package/assets/esri/core/workers/chunks/5bd1414220e42cb8ebcf.js +0 -1
  357. package/assets/esri/core/workers/chunks/5d781c2c6204cffffd0d.js +0 -1
  358. package/assets/esri/core/workers/chunks/6edc13a426e00bb93a9b.js +0 -1
  359. package/assets/esri/core/workers/chunks/723df53cfa0189837d01.js +0 -1
  360. package/assets/esri/core/workers/chunks/7400b8c454b47ee4fb3c.js +0 -1
  361. package/assets/esri/core/workers/chunks/7862abd24fb5c3b12e6b.js +0 -1
  362. package/assets/esri/core/workers/chunks/796c6195b6bf59dcc9bd.js +0 -1
  363. package/assets/esri/core/workers/chunks/7af4edc6e87d27b9d467.js +0 -1
  364. package/assets/esri/core/workers/chunks/81bcc495e6eaf2cf7474.js +0 -1
  365. package/assets/esri/core/workers/chunks/934e1f2153e6fad6ed23.js +0 -1
  366. package/assets/esri/core/workers/chunks/990e96139b5a1dccb061.js +0 -1
  367. package/assets/esri/core/workers/chunks/a607541959169741a943.js +0 -1
  368. package/assets/esri/core/workers/chunks/aa779896fd9e5c341349.js +0 -1
  369. package/assets/esri/core/workers/chunks/c131e0dd180a4c10e12e.js +0 -1
  370. package/assets/esri/core/workers/chunks/c7adb7b77721c75891f4.js +0 -1
  371. package/assets/esri/core/workers/chunks/cd55cad81accf51d2989.js +0 -1
  372. package/assets/esri/core/workers/chunks/ce324dde6d7daea33638.js +0 -1
  373. package/assets/esri/core/workers/chunks/d3412518a7b518860fbb.js +0 -1
  374. package/assets/esri/core/workers/chunks/dac69c0047488fdf986d.js +0 -1
  375. package/assets/esri/core/workers/chunks/dba5f44c4e4a3f075df2.js +0 -1
  376. package/assets/esri/core/workers/chunks/e67ea2f1714e5abeae44.js +0 -1
  377. package/assets/esri/core/workers/chunks/e8fb2ba7b7a4f0916325.js +0 -1
  378. package/assets/esri/core/workers/chunks/f10c883eb26330e3421c.js +0 -1
  379. package/assets/esri/core/workers/chunks/f3b4159c0722df8ffe13.js +0 -1
  380. package/assets/esri/core/workers/chunks/f75eec2cbc541eec9712.js +0 -1
  381. package/layers/geospatialPDF/projectionToWKTUtils.js +0 -3
  382. package/libs/maquette/cache.js +0 -2
  383. package/libs/maquette/dom.js +0 -2
  384. package/libs/maquette/h.js +0 -2
  385. package/libs/maquette/index.js +0 -2
  386. package/libs/maquette/mapping.js +0 -2
  387. package/libs/maquette/projection.js +0 -2
  388. package/libs/maquette/projector.js +0 -2
  389. package/libs/maquette/utilities/window-performance-projector-logger.js +0 -2
@@ -1,4 +1,4 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import has from"../../core/has.js";import e from"../../core/Logger.js";import{disposeMaybe as t}from"../../core/maybe.js";import{after as n}from"../../core/promiseUtils.js";import{Milliseconds as r}from"../../core/time.js";import{webglDebugEnabled as i,checkWebGLError as a,getErrorMessage as o,webglValidateShadersEnabled as s}from"./checkWebGLError.js";import{ContextState as c}from"./ContextState.js";import{baseTextureUnit as l,DrawBufferBack as u,DrawBufferNone as d,ResourceType as f,ColorAttachment0 as p,PrimitiveType as m}from"./enums.js";import{InstanceCounter as h}from"./InstanceCounter.js";import{Parameters as g}from"./Parameters.js";import{ProgramCache as _}from"./ProgramCache.js";import{StateTracker as v}from"./renderState.js";import y from"./Texture.js";import{WebGLDriverTest as b}from"./WebGLDriverTest.js";import{Capabilities as x}from"./capabilities/Capabilities.js";const S=()=>e.getLogger(`esri.views.webgl.RenderingContext`);let C=class{constructor(e,t){this.gl=e,this.instanceCounter=new h,this._programCache=new _(this),this._transformFeedbackRequestInfo=null,this._state=new c,this._numOfDrawCalls=0,this._numOfTriangles=0,this._options=t,this.configure(t)}configure(e){this._options=e,this._capabilities=new x(this.gl,e),this._parameters=new g(this.gl,this._capabilities,e),y.TEXTURE_UNIT_FOR_UPDATES=this._parameters.maxTextureImageUnits-1;let n=this.gl.getParameter(this.gl.VIEWPORT);this._state=new c,this._state.viewport={x:n[0],y:n[1],width:n[2],height:n[3]},this._stateTracker=new v({setBlending:e=>{if(e){this.setBlendingEnabled(!0),this.setBlendEquationSeparate(e.opRgb,e.opAlpha),this.setBlendFunctionSeparate(e.srcRgb,e.dstRgb,e.srcAlpha,e.dstAlpha);let t=e.color;this.setBlendColor(t.r,t.g,t.b,t.a)}else this.setBlendingEnabled(!1)},setCulling:e=>{e?(this.setFaceCullingEnabled(!0),this.setCullFace(e.face),this.setFrontFace(e.mode)):this.setFaceCullingEnabled(!1)},setPolygonOffset:e=>{e?(this.setPolygonOffsetFillEnabled(!0),this.setPolygonOffset(e.factor,e.units)):this.setPolygonOffsetFillEnabled(!1)},setDepthTest:e=>{e?(this.setDepthTestEnabled(!0),this.setDepthFunction(e.func)):this.setDepthTestEnabled(!1)},setStencilTest:e=>{if(e){this.setStencilTestEnabled(!0);let{ref:t,readMask:n,stencilFront:r,stencilBack:i}=e;r.compare===i.compare?this.setStencilFunction(r.compare,t,n):(this.setStencilFunctionSeparate(1028,r.compare,t,n),this.setStencilFunctionSeparate(1029,i.compare,t,n)),r.fail===i.fail&&r.zFail===i.zFail&&r.zPass===i.zPass?this.setStencilOp(r.fail,r.zFail,r.zPass):(this.setStencilOpSeparate(1028,r.fail,r.zFail,r.zPass),this.setStencilOpSeparate(1029,i.fail,i.zFail,i.zPass))}else this.setStencilTestEnabled(!1)},setDepthWrite:e=>{e?(this.setDepthWriteEnabled(!0),this.setDepthRange(e.zNear,e.zFar)):this.setDepthWriteEnabled(!1)},setColorWrite:e=>{e?this.setColorMask(e.r,e.g,e.b,e.a):this.setColorMask(!1,!1,!1,!1)},setStencilWrite:e=>{e?this.setStencilWriteMask(e.mask):this.setStencilWriteMask(0)}}),this.enforceState(),t(this._driverTest),this._driverTest=new b(this)}updateOptions(e){this._options={...this._options,...e},this._parameters=new g(this.gl,this._capabilities,this._options)}dispose(){this._driverTest=t(this._driverTest),this._programCache=t(this._programCache),this.bindVAO(null),this.unbindBuffer(34962),this.unbindBuffer(34963),this.unbindBuffer(35345),this.bindUniformBufferBindingPoints([]),this.unbindBuffer(35051),this.unbindBuffer(35052),this.unbindBuffer(36662),this.unbindBuffer(36663),this._state.textureUnitMap.length=0,this._state.textureUnitSamplerMap.length=0,this._state=null,this._capabilities=null,this._stateTracker=null;let e=i()&&this.instanceCounter.resourceInformation;e&&console.log(e)}get driverTest(){return this._driverTest}get contextAttributes(){return this.gl.getContextAttributes()}get parameters(){return this._parameters}get programCache(){return this._programCache}setPipelineState(e){this._stateTracker.setPipeline(e)}getPipelineState(){return this._stateTracker.getPipelineState()}setBlendingEnabled(e){this._state.blend!==e&&(e===!0?this.gl.enable(this.gl.BLEND):this.gl.disable(this.gl.BLEND),this._state.blend=e,this._stateTracker.invalidateBlending())}externalProgramUpdate(){this._state.program?.stop(),this._state.program=null}externalTextureUnitUpdate(e,t){for(let t=0;t<e.length;++t){let n=e[t];this._state.textureUnitMap[n]=null,this._state.textureUnitSamplerMap[n]=null}t>=0&&(this._state.activeTexture=t)}externalVertexArrayObjectUpdate(){this.gl.bindVertexArray(null),this._state.vertexArrayObject=null,this._state.vertexBuffer=null,this._state.indexBuffer=null}externalVertexBufferUpdate(){this._state.vertexBuffer=null}externalIndexBufferUpdate(){this._state.indexBuffer=null}setBlendColor(e,t,n,r){(e!==this._state.blendColor.r||t!==this._state.blendColor.g||n!==this._state.blendColor.b||r!==this._state.blendColor.a)&&(this.gl.blendColor(e,t,n,r),this._state.blendColor.r=e,this._state.blendColor.g=t,this._state.blendColor.b=n,this._state.blendColor.a=r,this._stateTracker.invalidateBlending())}setBlendFunction(e,t){(e!==this._state.blendFunction.srcRGB||t!==this._state.blendFunction.dstRGB)&&(this.gl.blendFunc(e,t),this._state.blendFunction.srcRGB=e,this._state.blendFunction.srcAlpha=e,this._state.blendFunction.dstRGB=t,this._state.blendFunction.dstAlpha=t,this._stateTracker.invalidateBlending())}setBlendFunctionSeparate(e,t,n,r){(this._state.blendFunction.srcRGB!==e||this._state.blendFunction.srcAlpha!==n||this._state.blendFunction.dstRGB!==t||this._state.blendFunction.dstAlpha!==r)&&(this.gl.blendFuncSeparate(e,t,n,r),this._state.blendFunction.srcRGB=e,this._state.blendFunction.srcAlpha=n,this._state.blendFunction.dstRGB=t,this._state.blendFunction.dstAlpha=r,this._stateTracker.invalidateBlending())}setBlendEquation(e){this._state.blendEquation.mode!==e&&(this.gl.blendEquation(e),this._state.blendEquation.mode=e,this._state.blendEquation.modeAlpha=e,this._stateTracker.invalidateBlending())}setBlendEquationSeparate(e,t){(this._state.blendEquation.mode!==e||this._state.blendEquation.modeAlpha!==t)&&(this.gl.blendEquationSeparate(e,t),this._state.blendEquation.mode=e,this._state.blendEquation.modeAlpha=t,this._stateTracker.invalidateBlending())}setColorMask(e,t,n,r){(this._state.colorMask.r!==e||this._state.colorMask.g!==t||this._state.colorMask.b!==n||this._state.colorMask.a!==r)&&(this.gl.colorMask(e,t,n,r),this._state.colorMask.r=e,this._state.colorMask.g=t,this._state.colorMask.b=n,this._state.colorMask.a=r,this._stateTracker.invalidateColorWrite())}setClearColor(e,t,n,r){(this._state.clearColor.r!==e||this._state.clearColor.g!==t||this._state.clearColor.b!==n||this._state.clearColor.a!==r)&&(this.gl.clearColor(e,t,n,r),this._state.clearColor.r=e,this._state.clearColor.g=t,this._state.clearColor.b=n,this._state.clearColor.a=r)}setFaceCullingEnabled(e){this._state.faceCulling!==e&&(e===!0?this.gl.enable(this.gl.CULL_FACE):this.gl.disable(this.gl.CULL_FACE),this._state.faceCulling=e,this._stateTracker.invalidateCulling())}setPolygonOffsetFillEnabled(e){this._state.polygonOffsetFill!==e&&(e===!0?this.gl.enable(this.gl.POLYGON_OFFSET_FILL):this.gl.disable(this.gl.POLYGON_OFFSET_FILL),this._state.polygonOffsetFill=e,this._stateTracker.invalidatePolygonOffset())}setPolygonOffset(e,t){(this._state.polygonOffset[0]!==e||this._state.polygonOffset[1]!==t)&&(this._state.polygonOffset[0]=e,this._state.polygonOffset[1]=t,this.gl.polygonOffset(e,t),this._stateTracker.invalidatePolygonOffset())}setCullFace(e){this._state.cullFace!==e&&(this.gl.cullFace(e),this._state.cullFace=e,this._stateTracker.invalidateCulling())}setFrontFace(e){this._state.frontFace!==e&&(this.gl.frontFace(e),this._state.frontFace=e,this._stateTracker.invalidateCulling())}setScissorTestEnabled(e){this._state.scissorTest!==e&&(e===!0?this.gl.enable(this.gl.SCISSOR_TEST):this.gl.disable(this.gl.SCISSOR_TEST),this._state.scissorTest=e)}setScissorRect(e,t,n,r){(this._state.scissorRect.x!==e||this._state.scissorRect.y!==t||this._state.scissorRect.width!==n||this._state.scissorRect.height!==r)&&(this.gl.scissor(e,t,n,r),this._state.scissorRect.x=e,this._state.scissorRect.y=t,this._state.scissorRect.width=n,this._state.scissorRect.height=r)}setDepthTestEnabled(e){this._state.depthTest!==e&&(e===!0?this.gl.enable(this.gl.DEPTH_TEST):this.gl.disable(this.gl.DEPTH_TEST),this._state.depthTest=e,this._stateTracker.invalidateDepthTest())}setClearDepth(e){this._state.clearDepth!==e&&(this.gl.clearDepth(e),this._state.clearDepth=e)}setDepthFunction(e){this._state.depthFunction!==e&&(this.gl.depthFunc(e),this._state.depthFunction=e,this._stateTracker.invalidateDepthTest())}setDepthWriteEnabled(e){this._state.depthWrite!==e&&(this.gl.depthMask(e),this._state.depthWrite=e,this._stateTracker.invalidateDepthWrite())}setDepthRange(e,t){(this._state.depthRange.zNear!==e||this._state.depthRange.zFar!==t)&&(this.gl.depthRange(e,t),this._state.depthRange.zNear=e,this._state.depthRange.zFar=t,this._stateTracker.invalidateDepthWrite())}setStencilTestEnabled(e){this._state.stencilTest!==e&&(e===!0?this.gl.enable(this.gl.STENCIL_TEST):this.gl.disable(this.gl.STENCIL_TEST),this._state.stencilTest=e,this._stateTracker.invalidateStencilTest())}setClearStencil(e){e!==this._state.clearStencil&&(this.gl.clearStencil(e),this._state.clearStencil=e)}setStencilFunction(e,t,n){(this._state.stencilFunction.face!==1032||this._state.stencilFunction.func!==e||this._state.stencilFunction.ref!==t||this._state.stencilFunction.mask!==n)&&(this.gl.stencilFunc(e,t,n),this._state.stencilFunction.face=1032,this._state.stencilFunction.func=e,this._state.stencilFunction.ref=t,this._state.stencilFunction.mask=n,this._stateTracker.invalidateStencilTest())}setStencilFunctionSeparate(e,t,n,r){(this._state.stencilFunction.face!==e||this._state.stencilFunction.func!==t||this._state.stencilFunction.ref!==n||this._state.stencilFunction.mask!==r)&&(this.gl.stencilFuncSeparate(e,t,n,r),this._state.stencilFunction.face=e,this._state.stencilFunction.func=t,this._state.stencilFunction.ref=n,this._state.stencilFunction.mask=r,this._stateTracker.invalidateStencilTest())}setStencilWriteMask(e){this._state.stencilWriteMask!==e&&(this.gl.stencilMask(e),this._state.stencilWriteMask=e,this._stateTracker.invalidateStencilWrite())}setStencilOp(e,t,n){(this._state.stencilOperation.face!==1032||this._state.stencilOperation.fail!==e||this._state.stencilOperation.zFail!==t||this._state.stencilOperation.zPass!==n)&&(this.gl.stencilOp(e,t,n),this._state.stencilOperation.face=1032,this._state.stencilOperation.fail=e,this._state.stencilOperation.zFail=t,this._state.stencilOperation.zPass=n,this._stateTracker.invalidateStencilTest())}setStencilOpSeparate(e,t,n,r){(this._state.stencilOperation.face!==e||this._state.stencilOperation.fail!==t||this._state.stencilOperation.zFail!==n||this._state.stencilOperation.zPass!==r)&&(this.gl.stencilOpSeparate(e,t,n,r),this._state.stencilOperation.face=e,this._state.stencilOperation.fail=t,this._state.stencilOperation.zFail=n,this._state.stencilOperation.zPass=r,this._stateTracker.invalidateStencilTest())}setActiveTexture(e,t=!1){let n=this._state.activeTexture;return e>=0&&(t||e!==this._state.activeTexture)&&(this.gl.activeTexture(l+e),this._state.activeTexture=e),n}setDrawBuffers(e){let t=this.drawBuffers;if(t.length===e.length&&t.every((t,n)=>t===e[n]))return t;if(e.length>this.parameters.maxDrawBuffers)return S().error(`Setting more active draw buffers (${e.length}) than GL.MAX_DRAW_BUFFERS allows ( ${this.parameters.maxDrawBuffers}).`),t;let n=this._state.drawFramebuffer,r=n===null;if(r){if(e.length>1)return S().error(`The default framebuffer can only have 1 active draw buffer but was requested with ${e.length}.`),t;if(e[0]!==u&&e[0]!==d)return S().error(`The default framebuffer can only use the constants GL.BACK or GL.NONE as draw buffers but got ${e[0]}`),t}else if(e.includes(u))return S().error(`A framebuffer object can only use the constants GL.COLOR_ATTACHMENTx or GL.NONE as draw buffers.`),t;return this.gl.drawBuffers(e),a(this.gl),r?this._state.drawBuffers.defaultFramebuffer=e:this._state.drawBuffers.fbos.set(n,e),t}get drawBuffers(){let e=this._state.drawFramebuffer;return e===null?this._state.drawBuffers.defaultFramebuffer:this._state.drawBuffers.fbos.get(e)??[]}clear(e,t=255){e&&(e&16384&&this.setColorMask(!0,!0,!0,!0),e&256&&this.setDepthWriteEnabled(!0),e&1024&&this.setStencilWriteMask(t),this.gl.clear(e))}clearFramebuffer(e,t=!1,n=!1){let r=0;if(e){let t=Math.max(1e-13,e[3]);this.setClearColor(e[0],e[1],e[2],t),r|=16384}t&&(r|=256),n===!1?n=0:(n===!0&&(n=255),r|=1024),r&&this.clear(r,n)}clearBuffer(e,t,n=6144,r){this.gl.clearBufferfv(n,e,t,r)}clearBufferInteger(e,t,n=6144,r){this.gl.clearBufferiv(n,e,t,r)}clearBufferUnsignedInteger(e,t,n=6144,r){this.gl.clearBufferuiv(n,e,t,r)}drawArrays(e,t,n){if(this._transformFeedbackRequestInfo){if(e!==this._transformFeedbackRequestInfo.primitiveType)throw Error(`DrawArrays called during transform feedback, but primitiveType does not match that of the current transform feedback request`);if(this._state.program?.hasTransformFeedbackVaryings==null)throw Error(`DrawArrays called during transform feedback, but the shader program was not linked with a transform feedback varying`)}if(i()&&(this._numOfDrawCalls++,this._numOfTriangles+=T(e,n),has(`enable-feature:webgl-debug:textureReadWrite`))){let e=this._state.textureUnitMap;for(let t=0;t<e.length;t++){let n=e[t];if(n!=null&&n===this._state.drawFramebuffer?.colorTexture)throw Error(`Detected readWrite. Texture already bound at index ${t}`)}}this.gl.drawArrays(e,t,n),a(this.gl)}drawArraysInstanced(e,t,n,r){this.gl.drawArraysInstanced(e,t,n,r),a(this.gl)}drawElements(e,t,n,r){if(this._transformFeedbackRequestInfo)throw Error(`Cannot called drawElements during a transform feedback request`);if(i()&&(this._numOfDrawCalls++,this._numOfTriangles+=T(e,t)),this.gl.drawElements(e,t,n,r),i()){let i=o(this.gl);if(i){let a=this.getBoundVAO(),o=a?.indexBuffer,s={indexBuffer:o,vertexBuffers:a?.buffers},c={mode:e,count:t,type:n,offset:r},l=o?.size??0,u=r+t,d=l<u?`. Buffer is too small. Attempted to draw index ${u} of ${l}`:``;S().error(`drawElements: ${i}${d}`,{args:c,vao:s})}}}drawElementsInstanced(e,t,n,r,i){this.gl.drawElementsInstanced(e,t,n,r,i),a(this.gl)}logInfo(){i()&&console.log(`DrawCalls: ${this._numOfDrawCalls}, Triangles: ${this._numOfTriangles}`)}resetInfo(){i()&&(this._numOfDrawCalls=0,this._numOfTriangles=0)}get capabilities(){return this._capabilities}setViewport(e,t,n,r){n=Math.max(Math.round(n),1),r=Math.max(Math.round(r),1);let i=this._state.viewport;(i.x!==e||i.y!==t||i.width!==n||i.height!==r)&&(i.x=e,i.y=t,i.width=n,i.height=r,this.gl.viewport(e,t,n,r))}setViewport4fv(e){this.setViewport(e[0],e[1],e[2],e[3])}restoreViewport({x:e,y:t,width:n,height:r}){this.setViewport(e,t,n,r)}getViewport(){let e=this._state.viewport;return{x:e.x,y:e.y,width:e.width,height:e.height}}useProgram(e){if(this._state.program!==e){if(e&&e.glName==null&&s())throw Error(`Attempting to use disposed or invalid Program`);this._state.program?.stop(),this._state.program=e,this.gl.useProgram(e?.glName??null)}}bindTexture(e,t,n=!1,r=null){(t>=this.parameters.maxTextureImageUnits||t<0)&&S().error(`Input texture unit (${t}) is out of range of available units (0...${this.parameters.maxTextureImageUnits})
2
+ import has from"../../core/has.js";import e from"../../core/Logger.js";import{disposeMaybe as t}from"../../core/maybe.js";import{after as n}from"../../core/promiseUtils.js";import{Milliseconds as r}from"../../core/time.js";import{webglDebugEnabled as i,checkWebGLError as a,getErrorMessage as o,webglValidateShadersEnabled as s}from"./checkWebGLError.js";import{ContextState as c}from"./ContextState.js";import{baseTextureUnit as l,DrawBufferBack as u,DrawBufferNone as d,ResourceType as f,ColorAttachment0 as p,PrimitiveType as m}from"./enums.js";import{InstanceCounter as h}from"./InstanceCounter.js";import{Parameters as g}from"./Parameters.js";import{ProgramCache as _}from"./ProgramCache.js";import{StateTracker as v}from"./renderState.js";import{Texture as y}from"./Texture.js";import{WebGLDriverTest as b}from"./WebGLDriverTest.js";import{Capabilities as x}from"./capabilities/Capabilities.js";const S=()=>e.getLogger(`esri.views.webgl.RenderingContext`);let C=class{constructor(e,t){this.gl=e,this.instanceCounter=new h,this._programCache=new _(this),this._transformFeedbackRequestInfo=null,this._state=new c,this._numOfDrawCalls=0,this._numOfTriangles=0,this._options=t,this.configure(t)}configure(e){this._options=e,this._capabilities=new x(this.gl,e),this._parameters=new g(this.gl,this._capabilities,e),y.TEXTURE_UNIT_FOR_UPDATES=this._parameters.maxTextureImageUnits-1;let n=this.gl.getParameter(this.gl.VIEWPORT);this._state=new c,this._state.viewport={x:n[0],y:n[1],width:n[2],height:n[3]},this._stateTracker=new v({setBlending:e=>{if(e){this.setBlendingEnabled(!0),this.setBlendEquationSeparate(e.opRgb,e.opAlpha),this.setBlendFunctionSeparate(e.srcRgb,e.dstRgb,e.srcAlpha,e.dstAlpha);let t=e.color;this.setBlendColor(t.r,t.g,t.b,t.a)}else this.setBlendingEnabled(!1)},setCulling:e=>{e?(this.setFaceCullingEnabled(!0),this.setCullFace(e.face),this.setFrontFace(e.mode)):this.setFaceCullingEnabled(!1)},setPolygonOffset:e=>{e?(this.setPolygonOffsetFillEnabled(!0),this.setPolygonOffset(e.factor,e.units)):this.setPolygonOffsetFillEnabled(!1)},setDepthTest:e=>{e?(this.setDepthTestEnabled(!0),this.setDepthFunction(e.func)):this.setDepthTestEnabled(!1)},setStencilTest:e=>{if(e){this.setStencilTestEnabled(!0);let{ref:t,readMask:n,stencilFront:r,stencilBack:i}=e;r.compare===i.compare?this.setStencilFunction(r.compare,t,n):(this.setStencilFunctionSeparate(1028,r.compare,t,n),this.setStencilFunctionSeparate(1029,i.compare,t,n)),r.fail===i.fail&&r.zFail===i.zFail&&r.zPass===i.zPass?this.setStencilOp(r.fail,r.zFail,r.zPass):(this.setStencilOpSeparate(1028,r.fail,r.zFail,r.zPass),this.setStencilOpSeparate(1029,i.fail,i.zFail,i.zPass))}else this.setStencilTestEnabled(!1)},setDepthWrite:e=>{e?(this.setDepthWriteEnabled(!0),this.setDepthRange(e.zNear,e.zFar)):this.setDepthWriteEnabled(!1)},setColorWrite:e=>{e?this.setColorMask(e.r,e.g,e.b,e.a):this.setColorMask(!1,!1,!1,!1)},setStencilWrite:e=>{e?this.setStencilWriteMask(e.mask):this.setStencilWriteMask(0)}}),this.enforceState(),t(this._driverTest),this._driverTest=new b(this)}updateOptions(e){this._options={...this._options,...e},this._parameters=new g(this.gl,this._capabilities,this._options)}dispose(){this._driverTest=t(this._driverTest),this._programCache=t(this._programCache),this.bindVAO(null),this.unbindBuffer(34962),this.unbindBuffer(34963),this.unbindBuffer(35345),this.bindUniformBufferBindingPoints([]),this.unbindBuffer(35051),this.unbindBuffer(35052),this.unbindBuffer(36662),this.unbindBuffer(36663),this._state.textureUnitMap.length=0,this._state.textureUnitSamplerMap.length=0,this._state=null,this._capabilities=null,this._stateTracker=null;let e=i()&&this.instanceCounter.resourceInformation;e&&console.log(e)}get driverTest(){return this._driverTest}get contextAttributes(){return this.gl.getContextAttributes()}get parameters(){return this._parameters}get programCache(){return this._programCache}setPipelineState(e){this._stateTracker.setPipeline(e)}getPipelineState(){return this._stateTracker.getPipelineState()}setBlendingEnabled(e){this._state.blend!==e&&(e===!0?this.gl.enable(this.gl.BLEND):this.gl.disable(this.gl.BLEND),this._state.blend=e,this._stateTracker.invalidateBlending())}externalProgramUpdate(){this._state.program?.stop(),this._state.program=null}externalTextureUnitUpdate(e,t){for(let t=0;t<e.length;++t){let n=e[t];this._state.textureUnitMap[n]=null,this._state.textureUnitSamplerMap[n]=null}t>=0&&(this._state.activeTexture=t)}externalVertexArrayObjectUpdate(){this.gl.bindVertexArray(null),this._state.vertexArrayObject=null,this._state.vertexBuffer=null,this._state.indexBuffer=null}externalVertexBufferUpdate(){this._state.vertexBuffer=null}externalIndexBufferUpdate(){this._state.indexBuffer=null}setBlendColor(e,t,n,r){(e!==this._state.blendColor.r||t!==this._state.blendColor.g||n!==this._state.blendColor.b||r!==this._state.blendColor.a)&&(this.gl.blendColor(e,t,n,r),this._state.blendColor.r=e,this._state.blendColor.g=t,this._state.blendColor.b=n,this._state.blendColor.a=r,this._stateTracker.invalidateBlending())}setBlendFunction(e,t){(e!==this._state.blendFunction.srcRGB||t!==this._state.blendFunction.dstRGB)&&(this.gl.blendFunc(e,t),this._state.blendFunction.srcRGB=e,this._state.blendFunction.srcAlpha=e,this._state.blendFunction.dstRGB=t,this._state.blendFunction.dstAlpha=t,this._stateTracker.invalidateBlending())}setBlendFunctionSeparate(e,t,n,r){(this._state.blendFunction.srcRGB!==e||this._state.blendFunction.srcAlpha!==n||this._state.blendFunction.dstRGB!==t||this._state.blendFunction.dstAlpha!==r)&&(this.gl.blendFuncSeparate(e,t,n,r),this._state.blendFunction.srcRGB=e,this._state.blendFunction.srcAlpha=n,this._state.blendFunction.dstRGB=t,this._state.blendFunction.dstAlpha=r,this._stateTracker.invalidateBlending())}setBlendEquation(e){this._state.blendEquation.mode!==e&&(this.gl.blendEquation(e),this._state.blendEquation.mode=e,this._state.blendEquation.modeAlpha=e,this._stateTracker.invalidateBlending())}setBlendEquationSeparate(e,t){(this._state.blendEquation.mode!==e||this._state.blendEquation.modeAlpha!==t)&&(this.gl.blendEquationSeparate(e,t),this._state.blendEquation.mode=e,this._state.blendEquation.modeAlpha=t,this._stateTracker.invalidateBlending())}setColorMask(e,t,n,r){(this._state.colorMask.r!==e||this._state.colorMask.g!==t||this._state.colorMask.b!==n||this._state.colorMask.a!==r)&&(this.gl.colorMask(e,t,n,r),this._state.colorMask.r=e,this._state.colorMask.g=t,this._state.colorMask.b=n,this._state.colorMask.a=r,this._stateTracker.invalidateColorWrite())}setClearColor(e,t,n,r){(this._state.clearColor.r!==e||this._state.clearColor.g!==t||this._state.clearColor.b!==n||this._state.clearColor.a!==r)&&(this.gl.clearColor(e,t,n,r),this._state.clearColor.r=e,this._state.clearColor.g=t,this._state.clearColor.b=n,this._state.clearColor.a=r)}setFaceCullingEnabled(e){this._state.faceCulling!==e&&(e===!0?this.gl.enable(this.gl.CULL_FACE):this.gl.disable(this.gl.CULL_FACE),this._state.faceCulling=e,this._stateTracker.invalidateCulling())}setPolygonOffsetFillEnabled(e){this._state.polygonOffsetFill!==e&&(e===!0?this.gl.enable(this.gl.POLYGON_OFFSET_FILL):this.gl.disable(this.gl.POLYGON_OFFSET_FILL),this._state.polygonOffsetFill=e,this._stateTracker.invalidatePolygonOffset())}setPolygonOffset(e,t){(this._state.polygonOffset[0]!==e||this._state.polygonOffset[1]!==t)&&(this._state.polygonOffset[0]=e,this._state.polygonOffset[1]=t,this.gl.polygonOffset(e,t),this._stateTracker.invalidatePolygonOffset())}setCullFace(e){this._state.cullFace!==e&&(this.gl.cullFace(e),this._state.cullFace=e,this._stateTracker.invalidateCulling())}setFrontFace(e){this._state.frontFace!==e&&(this.gl.frontFace(e),this._state.frontFace=e,this._stateTracker.invalidateCulling())}setScissorTestEnabled(e){this._state.scissorTest!==e&&(e===!0?this.gl.enable(this.gl.SCISSOR_TEST):this.gl.disable(this.gl.SCISSOR_TEST),this._state.scissorTest=e)}setScissorRect(e,t,n,r){(this._state.scissorRect.x!==e||this._state.scissorRect.y!==t||this._state.scissorRect.width!==n||this._state.scissorRect.height!==r)&&(this.gl.scissor(e,t,n,r),this._state.scissorRect.x=e,this._state.scissorRect.y=t,this._state.scissorRect.width=n,this._state.scissorRect.height=r)}setDepthTestEnabled(e){this._state.depthTest!==e&&(e===!0?this.gl.enable(this.gl.DEPTH_TEST):this.gl.disable(this.gl.DEPTH_TEST),this._state.depthTest=e,this._stateTracker.invalidateDepthTest())}setClearDepth(e){this._state.clearDepth!==e&&(this.gl.clearDepth(e),this._state.clearDepth=e)}setDepthFunction(e){this._state.depthFunction!==e&&(this.gl.depthFunc(e),this._state.depthFunction=e,this._stateTracker.invalidateDepthTest())}setDepthWriteEnabled(e){this._state.depthWrite!==e&&(this.gl.depthMask(e),this._state.depthWrite=e,this._stateTracker.invalidateDepthWrite())}setDepthRange(e,t){(this._state.depthRange.zNear!==e||this._state.depthRange.zFar!==t)&&(this.gl.depthRange(e,t),this._state.depthRange.zNear=e,this._state.depthRange.zFar=t,this._stateTracker.invalidateDepthWrite())}setStencilTestEnabled(e){this._state.stencilTest!==e&&(e===!0?this.gl.enable(this.gl.STENCIL_TEST):this.gl.disable(this.gl.STENCIL_TEST),this._state.stencilTest=e,this._stateTracker.invalidateStencilTest())}setClearStencil(e){e!==this._state.clearStencil&&(this.gl.clearStencil(e),this._state.clearStencil=e)}setStencilFunction(e,t,n){(this._state.stencilFunction.face!==1032||this._state.stencilFunction.func!==e||this._state.stencilFunction.ref!==t||this._state.stencilFunction.mask!==n)&&(this.gl.stencilFunc(e,t,n),this._state.stencilFunction.face=1032,this._state.stencilFunction.func=e,this._state.stencilFunction.ref=t,this._state.stencilFunction.mask=n,this._stateTracker.invalidateStencilTest())}setStencilFunctionSeparate(e,t,n,r){(this._state.stencilFunction.face!==e||this._state.stencilFunction.func!==t||this._state.stencilFunction.ref!==n||this._state.stencilFunction.mask!==r)&&(this.gl.stencilFuncSeparate(e,t,n,r),this._state.stencilFunction.face=e,this._state.stencilFunction.func=t,this._state.stencilFunction.ref=n,this._state.stencilFunction.mask=r,this._stateTracker.invalidateStencilTest())}setStencilWriteMask(e){this._state.stencilWriteMask!==e&&(this.gl.stencilMask(e),this._state.stencilWriteMask=e,this._stateTracker.invalidateStencilWrite())}setStencilOp(e,t,n){(this._state.stencilOperation.face!==1032||this._state.stencilOperation.fail!==e||this._state.stencilOperation.zFail!==t||this._state.stencilOperation.zPass!==n)&&(this.gl.stencilOp(e,t,n),this._state.stencilOperation.face=1032,this._state.stencilOperation.fail=e,this._state.stencilOperation.zFail=t,this._state.stencilOperation.zPass=n,this._stateTracker.invalidateStencilTest())}setStencilOpSeparate(e,t,n,r){(this._state.stencilOperation.face!==e||this._state.stencilOperation.fail!==t||this._state.stencilOperation.zFail!==n||this._state.stencilOperation.zPass!==r)&&(this.gl.stencilOpSeparate(e,t,n,r),this._state.stencilOperation.face=e,this._state.stencilOperation.fail=t,this._state.stencilOperation.zFail=n,this._state.stencilOperation.zPass=r,this._stateTracker.invalidateStencilTest())}setActiveTexture(e,t=!1){let n=this._state.activeTexture;return e>=0&&(t||e!==this._state.activeTexture)&&(this.gl.activeTexture(l+e),this._state.activeTexture=e),n}setDrawBuffers(e){let t=this.drawBuffers;if(t.length===e.length&&t.every((t,n)=>t===e[n]))return t;if(e.length>this.parameters.maxDrawBuffers)return S().error(`Setting more active draw buffers (${e.length}) than GL.MAX_DRAW_BUFFERS allows ( ${this.parameters.maxDrawBuffers}).`),t;let n=this._state.drawFramebuffer,r=n===null;if(r){if(e.length>1)return S().error(`The default framebuffer can only have 1 active draw buffer but was requested with ${e.length}.`),t;if(e[0]!==u&&e[0]!==d)return S().error(`The default framebuffer can only use the constants GL.BACK or GL.NONE as draw buffers but got ${e[0]}`),t}else if(e.includes(u))return S().error(`A framebuffer object can only use the constants GL.COLOR_ATTACHMENTx or GL.NONE as draw buffers.`),t;return this.gl.drawBuffers(e),a(this.gl),r?this._state.drawBuffers.defaultFramebuffer=e:this._state.drawBuffers.fbos.set(n,e),t}get drawBuffers(){let e=this._state.drawFramebuffer;return e===null?this._state.drawBuffers.defaultFramebuffer:this._state.drawBuffers.fbos.get(e)??[]}clear(e,t=255){e&&(e&16384&&this.setColorMask(!0,!0,!0,!0),e&256&&this.setDepthWriteEnabled(!0),e&1024&&this.setStencilWriteMask(t),this.gl.clear(e))}clearFramebuffer(e,t=!1,n=!1){let r=0;if(e){let t=Math.max(1e-13,e[3]);this.setClearColor(e[0],e[1],e[2],t),r|=16384}t&&(r|=256),n===!1?n=0:(n===!0&&(n=255),r|=1024),r&&this.clear(r,n)}clearBuffer(e,t,n=6144,r){this.gl.clearBufferfv(n,e,t,r)}clearBufferInteger(e,t,n=6144,r){this.gl.clearBufferiv(n,e,t,r)}clearBufferUnsignedInteger(e,t,n=6144,r){this.gl.clearBufferuiv(n,e,t,r)}drawArrays(e,t,n){if(this._transformFeedbackRequestInfo){if(e!==this._transformFeedbackRequestInfo.primitiveType)throw Error(`DrawArrays called during transform feedback, but primitiveType does not match that of the current transform feedback request`);if(this._state.program?.hasTransformFeedbackVaryings==null)throw Error(`DrawArrays called during transform feedback, but the shader program was not linked with a transform feedback varying`)}if(i()&&(this._numOfDrawCalls++,this._numOfTriangles+=T(e,n),has(`enable-feature:webgl-debug:textureReadWrite`))){let e=this._state.textureUnitMap;for(let t=0;t<e.length;t++){let n=e[t];if(n!=null&&n===this._state.drawFramebuffer?.colorTexture)throw Error(`Detected readWrite. Texture already bound at index ${t}`)}}this.gl.drawArrays(e,t,n),a(this.gl)}drawArraysInstanced(e,t,n,r){this.gl.drawArraysInstanced(e,t,n,r),a(this.gl)}drawElements(e,t,n,r){if(this._transformFeedbackRequestInfo)throw Error(`Cannot called drawElements during a transform feedback request`);if(i()&&(this._numOfDrawCalls++,this._numOfTriangles+=T(e,t)),this.gl.drawElements(e,t,n,r),i()){let i=o(this.gl);if(i){let a=this.getBoundVAO(),o=a?.indexBuffer,s={indexBuffer:o,vertexBuffers:a?.buffers},c={mode:e,count:t,type:n,offset:r},l=o?.size??0,u=r+t,d=l<u?`. Buffer is too small. Attempted to draw index ${u} of ${l}`:``;S().error(`drawElements: ${i}${d}`,{args:c,vao:s})}}}drawElementsInstanced(e,t,n,r,i){this.gl.drawElementsInstanced(e,t,n,r,i),a(this.gl)}logInfo(){i()&&console.log(`DrawCalls: ${this._numOfDrawCalls}, Triangles: ${this._numOfTriangles}`)}resetInfo(){i()&&(this._numOfDrawCalls=0,this._numOfTriangles=0)}get capabilities(){return this._capabilities}setViewport(e,t,n,r){n=Math.max(Math.round(n),1),r=Math.max(Math.round(r),1);let i=this._state.viewport;(i.x!==e||i.y!==t||i.width!==n||i.height!==r)&&(i.x=e,i.y=t,i.width=n,i.height=r,this.gl.viewport(e,t,n,r))}setViewport4fv(e){this.setViewport(e[0],e[1],e[2],e[3])}restoreViewport({x:e,y:t,width:n,height:r}){this.setViewport(e,t,n,r)}getViewport(){let e=this._state.viewport;return{x:e.x,y:e.y,width:e.width,height:e.height}}useProgram(e){if(this._state.program!==e){if(e&&e.glName==null&&s())throw Error(`Attempting to use disposed or invalid Program`);this._state.program?.stop(),this._state.program=e,this.gl.useProgram(e?.glName??null)}}bindTexture(e,t,n=!1,r=null){(t>=this.parameters.maxTextureImageUnits||t<0)&&S().error(`Input texture unit (${t}) is out of range of available units (0...${this.parameters.maxTextureImageUnits})
3
3
  `);let i=this._state.textureUnitMap[t],a=this._state.textureUnitSamplerMap[t],{gl:o}=this;return e?.glName==null?(i!=null&&(this.setActiveTexture(t,n),o.bindTexture(i.descriptor.target,null)),this._state.textureUnitMap[t]=null,a!=null&&(this._state.textureUnitSamplerMap[t]=null,o.bindSampler(t,null)),i):(a!==r&&(o.bindSampler(t,r?.glName??null),this._state.textureUnitSamplerMap[t]=r),!n&&i===e?(e.isDirty&&(this.setActiveTexture(t,n),e.applyChanges()),i):(this.setActiveTexture(t,n),o.bindTexture(e.descriptor.target,e.glName),e.applyChanges(),this._state.textureUnitMap[t]=e,i))}unbindTexture(e){if(e!=null)for(let t=0;t<this.parameters.maxTextureImageUnits;t++)this._state.textureUnitMap[t]===e&&(this.bindTexture(null,t),this._state.textureUnitMap[t]=null)}bindFramebuffer(e,t=!1){let n=E(e);!t&&this._state.readFramebuffer===e&&this._state.drawFramebuffer===e?this.setDrawBuffers(n):e==null?(this.gl.bindFramebuffer(36160,null),this._state.readFramebuffer=this._state.drawFramebuffer=null,this.setDrawBuffers(n)):(e.initializeAndBind(36160),this._state.readFramebuffer=e,this._state.drawFramebuffer=e,this.setDrawBuffers(n))}bindFramebufferSeparate(e,t,n=!1){let r=t===36008,i=r?this._state.readFramebuffer:this._state.drawFramebuffer;(n||i!==e)&&(e==null?this.gl.bindFramebuffer(t,null):e.initializeAndBind(t),r?this._state.readFramebuffer=e??null:(this._state.drawFramebuffer=e??null,this.setDrawBuffers(E(e))))}blitFramebuffer(e,t,n=16384,r=9728,i=0,a=0,o=e.width,s=e.height,c=0,l=0,u=t.width,d=t.height){this.bindFramebufferSeparate(e,36008,!0),this.bindFramebufferSeparate(t,36009,!0),this.gl.blitFramebuffer(i,a,o,s,c,l,u,d,n,r)}bindBuffer(e,t){if(e)switch(t??=e.bufferType,t){case 34962:this._state.vertexBuffer=w(this.gl,e,t,this._state.vertexBuffer);break;case 34963:this._state.indexBuffer=w(this.gl,e,t,this._state.indexBuffer);break;case 35345:this._state.uniformBuffer=w(this.gl,e,t,this._state.uniformBuffer);break;case 35051:this._state.pixelPackBuffer=w(this.gl,e,t,this._state.pixelPackBuffer);break;case 35052:this._state.pixelUnpackBuffer=w(this.gl,e,t,this._state.pixelUnpackBuffer);break;case 36662:this._state.copyReadBuffer=w(this.gl,e,t,this._state.copyReadBuffer);break;case 36663:this._state.copyWriteBuffer=w(this.gl,e,t,this._state.copyWriteBuffer);break;case 35982:this._state.transformFeedbackBuffer=w(this.gl,e,t,this._state.transformFeedbackBuffer)}}bindRenderbuffer(e){let t=this.gl;e||(t.bindRenderbuffer(t.RENDERBUFFER,null),this._state.renderbuffer=null),this._state.renderbuffer!==e&&(t.bindRenderbuffer(t.RENDERBUFFER,e.glName),this._state.renderbuffer=e)}_getBufferBinding(e,t){if(t>=this.parameters.maxUniformBufferBindings||t<0)return S().error(`Uniform buffer binding point (${t}) is out of range (0...${this.parameters.maxUniformBufferBindings})
4
4
  `),null;let n=e===35345?this._state.uniformBufferBindingPoints:this._state.transformBufferBindingPoints,r=n[t];return r??(r={buffer:null,offset:0,size:0},n[t]=r),r}bindBufferBase(e,t,n){let r=this._getBufferBinding(e,t);r!=null&&(r.buffer!==n||r.offset!==0||r.size!==0)&&(this.gl.bindBufferBase(e,t,n?n.glName:null),e===35345?this._state.uniformBuffer=n:this._state.transformFeedbackBuffer=n,r.buffer=n,r.offset=0,r.size=0)}bindBufferRange(e,t,n,r,i){let a=this._getBufferBinding(e,t);a!=null&&(a.buffer!==n||a.offset!==r||a.size!==i)&&(r%this._parameters.uniformBufferOffsetAlignment===0?(this.gl.bindBufferRange(e,t,n.glName,r,i),this._state.uniformBuffer=n,a.buffer=n,a.offset=r,a.size=i):S().error(`Uniform buffer binding offset is not a multiple of the context offset alignment`))}bindUniformBufferBindingPoints(e){let t=this._state.uniformBufferBindingPoints,n=Math.max(t.length,e.length);t.length=0;for(let r=0;r<n;r++){let n=e[r];if(n?.buffer!=null){let{buffer:e,offset:t,size:i}=n;t===0&&i===0?this.gl.bindBufferBase(35345,r,e.glName):this.gl.bindBufferRange(35345,r,e.glName,t,i),this._state.uniformBuffer=e}else this.gl.bindBufferBase(35345,r,null),this._state.uniformBuffer=null;r<e.length&&(t[r]=n?{buffer:n.buffer,offset:n.offset,size:n.size}:{buffer:null,offset:0,size:0})}}bindUBO(e,t,n,r){t==null?this.bindBufferBase(35345,e,null):(i()&&(r??t.byteLength)>this._parameters.maxUniformBlockSize&&S().error(`Attempting to bind more data than the maximum uniform block size`),t.initialize(),n!==void 0&&r!==void 0?this.bindBufferRange(35345,e,t.buffer,n,r):this.bindBufferBase(35345,e,t.buffer))}unbindUBO(e){for(let t=0,n=this._state.uniformBufferBindingPoints.length;t<n;t++){let n=this._state.uniformBufferBindingPoints[t];n!=null&&n.buffer===e.buffer&&this.bindBufferBase(35345,t,null)}}unbindBuffer(e){switch(e){case 34962:this._state.vertexBuffer=w(this.gl,null,e,this._state.vertexBuffer);break;case 34963:this._state.indexBuffer=w(this.gl,null,e,this._state.indexBuffer);break;case 35345:this._state.uniformBuffer=w(this.gl,null,e,this._state.uniformBuffer);break;case 35051:this._state.pixelPackBuffer=w(this.gl,null,e,this._state.pixelPackBuffer);break;case 35052:this._state.pixelUnpackBuffer=w(this.gl,null,e,this._state.pixelUnpackBuffer);break;case 36662:this._state.copyReadBuffer=w(this.gl,null,e,this._state.copyReadBuffer);break;case 36663:this._state.copyWriteBuffer=w(this.gl,null,e,this._state.copyWriteBuffer)}}bindVAO(e,t){e==null?(this._state.vertexArrayObject?.unbind(),this._state.vertexArrayObject=null):this._state.vertexArrayObject!==e&&(e.bind(t),this._state.vertexArrayObject=e)}bindTransformFeedback(e){let{gl:t}=this;t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,e.glName)}beginTransformFeedback(e,t){if(this._transformFeedbackRequestInfo)throw Error(`Already in a transform feedback request`);let{gl:n}=this;n.bindTransformFeedback(n.TRANSFORM_FEEDBACK,e.glName),n.beginTransformFeedback(t),this._transformFeedbackRequestInfo={primitiveType:t}}endTransformFeedback(){if(!this._transformFeedbackRequestInfo)throw Error(`Not in a transform feedback request`);let{gl:e}=this;e.endTransformFeedback(),e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,null),this._transformFeedbackRequestInfo=null}async clientWaitAsync(e=r(10),t){let{gl:i}=this,a=i.fenceSync(37143,0);if(!a)throw Error(`Client wait failed, could not create sync object`);this.instanceCounter.increment(f.Sync,a),i.flush();try{let r;do await n(e,null,t),r=i.clientWaitSync(a,0,0);while(r===37147);if(r===37149)throw Error(`Client wait failed`)}finally{this.instanceCounter.decrement(f.Sync,a),i.deleteSync(a)}}get boundFramebuffer(){return this._state.drawFramebuffer}get uniformBufferBindingPoints(){return this._state.uniformBufferBindingPoints.map(e=>e&&{buffer:e.buffer,offset:e.offset,size:e.size})}temporaryBindFramebuffer(e,t,n=!1){let r=this.boundFramebuffer,i={...this._state.viewport};try{this.bindFramebuffer(e,n),e&&this.setViewport(0,0,e.width,e.height),t()}finally{this.bindFramebuffer(r,n),e&&this.setViewport(i.x,i.y,i.width,i.height)}}getBoundVAO(){return this._state.vertexArrayObject}resetState(){this.useProgram(null),this.bindVAO(null),this.bindFramebuffer(null,!0),this.unbindBuffer(34962),this.unbindBuffer(34963),this.unbindBuffer(35345),this.bindUniformBufferBindingPoints([]),this.unbindBuffer(35051),this.unbindBuffer(35052),this.unbindBuffer(36662),this.unbindBuffer(36663);for(let e=0;e<this.parameters.maxTextureImageUnits;++e)this.bindTexture(null,e);this.setBlendingEnabled(!1),this.setBlendFunction(1,0),this.setBlendEquation(32774),this.setBlendColor(0,0,0,0),this.setFaceCullingEnabled(!1),this.setCullFace(1029),this.setFrontFace(2305),this.setPolygonOffsetFillEnabled(!1),this.setPolygonOffset(0,0),this.setScissorTestEnabled(!1),this.setScissorRect(0,0,this.gl.canvas.width,this.gl.canvas.height),this.setDepthTestEnabled(!1),this.setDepthFunction(513),this.setDepthRange(0,1),this.setStencilTestEnabled(!1),this.setStencilFunction(519,0,0),this.setStencilOp(7680,7680,7680),this.setClearColor(0,0,0,0),this.setClearDepth(1),this.setClearStencil(0),this.setColorMask(!0,!0,!0,!0),this.setStencilWriteMask(4294967295),this.setDepthWriteEnabled(!0),this.setViewport(0,0,this.gl.canvas.width,this.gl.canvas.height)}enforceState(){let{gl:e}=this;e.bindVertexArray(null);for(let t=0;t<this.parameters.maxVertexAttributes;t++)e.disableVertexAttribArray(t);this._state.vertexBuffer?e.bindBuffer(this._state.vertexBuffer.bufferType,this._state.vertexBuffer.glName):e.bindBuffer(34962,null),this._state.indexBuffer?e.bindBuffer(this._state.indexBuffer.bufferType,this._state.indexBuffer.glName):e.bindBuffer(34963,null);for(let t=0;t<this._parameters.maxUniformBufferBindings;t++){let n=this._state.uniformBufferBindingPoints[t];if(n!=null){let{buffer:r,offset:i,size:a}=n;r===null?e.bindBufferBase(35345,t,null):i===0&&a===0?e.bindBufferBase(35345,t,r.glName):e.bindBufferRange(35345,t,r.glName,i,a)}}if(this._state.uniformBuffer?e.bindBuffer(this._state.uniformBuffer.bufferType,this._state.uniformBuffer.glName):e.bindBuffer(35345,null),this._state.pixelPackBuffer?e.bindBuffer(this._state.pixelPackBuffer.bufferType,this._state.pixelPackBuffer.glName):e.bindBuffer(35051,null),this._state.pixelUnpackBuffer?e.bindBuffer(this._state.pixelUnpackBuffer.bufferType,this._state.pixelUnpackBuffer.glName):e.bindBuffer(35052,null),this._state.copyReadBuffer?e.bindBuffer(this._state.copyReadBuffer.bufferType,this._state.copyReadBuffer.glName):e.bindBuffer(36662,null),this._state.copyWriteBuffer?e.bindBuffer(this._state.copyWriteBuffer.bufferType,this._state.copyWriteBuffer.glName):e.bindBuffer(36663,null),e.bindFramebuffer(36008,null),e.readBuffer(e.BACK),this._state.readFramebuffer&&(e.bindFramebuffer(36008,this._state.readFramebuffer.glName),e.readBuffer(p)),e.bindFramebuffer(36009,this._state.drawFramebuffer?.glName??null),this._state.drawFramebuffer===null){let t=this._state.drawBuffers.defaultFramebuffer;e.drawBuffers(t??[u])}else{let t=this._state.drawBuffers.fbos.get(this._state.drawFramebuffer);e.drawBuffers(t??[p])}if(this._state.vertexArrayObject){let e=this._state.vertexArrayObject;this._state.vertexArrayObject&&(this._state.vertexArrayObject.unbind(),this._state.vertexArrayObject=null),this.bindVAO(e)}e.useProgram(this._state.program?.glName??null),e.blendColor(this._state.blendColor.r,this._state.blendColor.g,this._state.blendColor.b,this._state.blendColor.a),e.bindRenderbuffer(e.RENDERBUFFER,this._state.renderbuffer?.glName??null),this._state.blend===!0?e.enable(this.gl.BLEND):e.disable(this.gl.BLEND),e.blendEquationSeparate(this._state.blendEquation.mode,this._state.blendEquation.modeAlpha),e.blendFuncSeparate(this._state.blendFunction.srcRGB,this._state.blendFunction.dstRGB,this._state.blendFunction.srcAlpha,this._state.blendFunction.dstAlpha),e.clearColor(this._state.clearColor.r,this._state.clearColor.g,this._state.clearColor.b,this._state.clearColor.a),e.clearDepth(this._state.clearDepth),e.clearStencil(this._state.clearStencil),e.colorMask(this._state.colorMask.r,this._state.colorMask.g,this._state.colorMask.b,this._state.colorMask.a),e.cullFace(this._state.cullFace),e.depthFunc(this._state.depthFunction),e.depthRange(this._state.depthRange.zNear,this._state.depthRange.zFar),this._state.depthTest===!0?e.enable(e.DEPTH_TEST):e.disable(e.DEPTH_TEST),e.depthMask(this._state.depthWrite),e.frontFace(this._state.frontFace),e.lineWidth(1),this._state.faceCulling===!0?e.enable(e.CULL_FACE):e.disable(e.CULL_FACE),e.polygonOffset(this._state.polygonOffset[0],this._state.polygonOffset[1]),this._state.polygonOffsetFill===!0?e.enable(e.POLYGON_OFFSET_FILL):e.disable(e.POLYGON_OFFSET_FILL),e.scissor(this._state.scissorRect.x,this._state.scissorRect.y,this._state.scissorRect.width,this._state.scissorRect.height),this._state.scissorTest===!0?e.enable(e.SCISSOR_TEST):e.disable(e.SCISSOR_TEST),e.stencilFunc(this._state.stencilFunction.func,this._state.stencilFunction.ref,this._state.stencilFunction.mask),e.stencilOpSeparate(this._state.stencilOperation.face,this._state.stencilOperation.fail,this._state.stencilOperation.zFail,this._state.stencilOperation.zPass),this._state.stencilTest===!0?e.enable(e.STENCIL_TEST):e.disable(e.STENCIL_TEST),e.stencilMask(this._state.stencilWriteMask);for(let t=0;t<this.parameters.maxTextureImageUnits;t++){e.activeTexture(l+t),e.bindTexture(3553,null),e.bindTexture(34067,null),e.bindTexture(32879,null),e.bindTexture(35866,null),e.bindSampler(t,null);let n=this._state.textureUnitMap[t];n!=null&&e.bindTexture(n.descriptor.target,n.glName);let r=this._state.textureUnitSamplerMap[t];r!=null&&e.bindSampler(t,r?.glName)}e.activeTexture(l+this._state.activeTexture);let t=this._state.viewport;e.viewport(t.x,t.y,t.width,t.height),this.resetInfo()}};function w(e,t,n,r){return t?r!==t&&e.bindBuffer(n,t.glName):e.bindBuffer(n,null),t}function T(e,t){switch(e){case m.POINTS:return 2*t;case m.TRIANGLES:return t/3;case m.TRIANGLE_STRIP:return t-2;case m.TRIANGLE_FAN:return t-2;default:return 0}}function E(e){return e?e.colorAttachments.length>0?e.colorAttachments:[d]:[u]}export{C as RenderingContext,E as getFramebufferDrawBuffers};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../core/Error.js";import has from"../../core/has.js";import t from"../../core/Logger.js";import{abortMaybe as n}from"../../core/maybe.js";import{hasValue as r}from"../../core/object.js";import{throwIfAborted as i,isAbortError as a}from"../../core/promiseUtils.js";import{checkWebGLError as o}from"./checkWebGLError.js";import{ResourceType as s,CompressedTextureFormat as c}from"./enums.js";import{estimateMemory as l}from"./TextureDescriptor.js";import{isCompressedData as u,deriveInternalFormat as d,isTexImageSource as f,is3DTarget as p,validateTexture as m,isCompressedFormat as h,getDimensions as g,isSizedPixelFormat as _,calcMipmapLevels as v}from"./textureUtils.js";import{ValidatedTextureDescriptor as y}from"./ValidatedTextureDescriptor.js";const b=!!has(`esri-tests-disable-gpu-memory-measurements`),x=()=>t.getLogger(`esri/views/webgl/Texture`);class S{static{this.TEXTURE_UNIT_FOR_UPDATES=0}static{this.compressionWorkerHandle=null}constructor(t,n=null,r=null){if(this.type=1,this._glName=null,this._samplingModeDirty=!1,this._wrapModeDirty=!1,this._shadowFilterDirty=!1,this._wasImmutablyAllocated=!1,`context`in t)this._descriptor=t,r=n;else{let r=y.validate(t,n);if(!r)throw new e(`texture:invalid-descriptor`,`Texture descriptor invalid`);this._descriptor=r}this._descriptor.target===34067?this._setDataCubeMap(r):this.setData(r)}get glName(){return this._glName}get descriptor(){return this._descriptor}get usedMemory(){return b?0:l(this._descriptor)}get isDirty(){return this._samplingModeDirty||this._wrapModeDirty||this._shadowFilterDirty}get hasWebGLTextureObject(){return!!this._glName}dispose(){this.abortCompression(),this.hasWebGLTextureObject&&this._descriptor.context?.gl&&(this._descriptor.context.instanceCounter.decrement(s.Texture,this),this._descriptor.context.unbindTexture(this),this._descriptor.context.gl.deleteTexture(this._glName),this._glName=null)}release(){this.dispose()}[Symbol.dispose](){this.dispose()}resize(t,n){let r=this._descriptor;if(r.width!==t||r.height!==n){if(this._wasImmutablyAllocated)throw new e(`texture:immutable-resize`,`Immutable textures can't be resized!`);r.width=t,r.height=n,this._descriptor.target===34067?this._setDataCubeMap(null):this.setData(null)}}enableCompression(e){this._descriptor.compress=e}disableCompression(){this._descriptor.compress=void 0}setData(e){this.abortCompression(),!u(e)&&this._descriptor.internalFormat&&r(c,this._descriptor.internalFormat)&&(this._descriptor.internalFormat=void 0),this._setData(e),!u(e)&&this._descriptor.compress&&this._compressOnWorker(e)}updateData(t,n,r,i,a,o,s=0){o||x().error(`An attempt to use uninitialized data!`),this.hasWebGLTextureObject||x().error(`An attempt to update uninitialized texture!`);let c=this._descriptor;c.internalFormat=d(c);let{context:l,pixelFormat:p,dataType:m,target:h,isImmutable:g}=c;if(g&&!this._wasImmutablyAllocated)throw new e(`texture:uninitialized`,`Cannot update immutable texture before allocation!`);let _=l.bindTexture(this,S.TEXTURE_UNIT_FOR_UPDATES,!0);(n<0||r<0||n+i>c.width||r+a>c.height)&&x().error(`An attempt to update out of bounds of the texture!`),this._configurePixelStorage();let{gl:v}=l;s&&(i&&a||x().warn("Must pass width and height if `UNPACK_SKIP_ROWS` is used"),v.pixelStorei(v.UNPACK_SKIP_ROWS,s)),f(o)?v.texSubImage2D(h,t,n,r,i,a,p,m,o):u(o)?v.compressedTexSubImage2D(h,t,n,r,i,a,c.internalFormat,o.levels[t]):v.texSubImage2D(h,t,n,r,i,a,p,m,o),s&&v.pixelStorei(v.UNPACK_SKIP_ROWS,0),l.bindTexture(_,S.TEXTURE_UNIT_FOR_UPDATES)}updateData3D(t,n,r,i,a,o,s,c){c||x().error(`An attempt to use uninitialized data!`),this.hasWebGLTextureObject||x().error(`An attempt to update an uninitialized texture!`);let l=this._descriptor;l.internalFormat=d(l);let{context:f,pixelFormat:m,dataType:h,isImmutable:g,target:_}=l;if(g&&!this._wasImmutablyAllocated)throw new e(`texture:uninitialized`,`Cannot update immutable texture before allocation!`);p(_)||x().warn(`Attempting to set 3D texture data on a non-3D texture`);let v=f.bindTexture(this,S.TEXTURE_UNIT_FOR_UPDATES);f.setActiveTexture(S.TEXTURE_UNIT_FOR_UPDATES),(n<0||r<0||i<0||n+a>l.width||r+o>l.height||i+s>l.depth)&&x().error(`An attempt to update out of bounds of the texture!`),this._configurePixelStorage();let{gl:y}=f;if(u(c))c=c.levels[t],y.compressedTexSubImage3D(_,t,n,r,i,a,o,s,l.internalFormat,c);else{let e=c;y.texSubImage3D(_,t,n,r,i,a,o,s,m,h,e)}f.bindTexture(v,S.TEXTURE_UNIT_FOR_UPDATES)}generateMipmap(){let t=this._descriptor;if(t.width===0||t.height===0)return;if(!t.hasMipmap){if(this._wasImmutablyAllocated)throw new e(`texture:immutable-change`,`Cannot add mipmaps to immutable texture after allocation`);t.hasMipmap=!0,this._samplingModeDirty=!0,m(t)}t.samplingMode===9729?(this._samplingModeDirty=!0,t.samplingMode=9985):t.samplingMode===9728&&(this._samplingModeDirty=!0,t.samplingMode=9984);let n=this._descriptor.context.bindTexture(this,S.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.setActiveTexture(S.TEXTURE_UNIT_FOR_UPDATES),this._descriptor.context.gl.generateMipmap(t.target),this._descriptor.context.bindTexture(n,S.TEXTURE_UNIT_FOR_UPDATES)}clearMipmap(){let t=this._descriptor;if(t.hasMipmap){if(this._wasImmutablyAllocated)throw new e(`texture:immutable-change`,`Cannot delete mipmaps to immutable texture after allocation`);t.hasMipmap=!1,this._samplingModeDirty=!0,m(t)}t.samplingMode===9985?(this._samplingModeDirty=!0,t.samplingMode=9729):t.samplingMode===9984&&(this._samplingModeDirty=!0,t.samplingMode=9728)}setSamplingMode(e){e!==this._descriptor.samplingMode&&(this._descriptor.samplingMode=e,this._samplingModeDirty=!0)}setWrapMode(e){e!==this._descriptor.wrapMode&&(this._descriptor.wrapMode=e,m(this._descriptor),this._wrapModeDirty=!0)}setShadowFiltering(e){e!==this._descriptor.linearFilterDepth&&(this._descriptor.linearFilterDepth=this._descriptor.compareEnabled=e,this.setSamplingMode(e?9729:9728),m(this._descriptor),this._shadowFilterDirty=!0)}applyChanges(){this._samplingModeDirty&&=(this._applySamplingMode(),!1),this._wrapModeDirty&&=(this._applyWrapMode(),!1),this._shadowFilterDirty&&=(this._applyShadowMode(),!1)}abortCompression(){this._compressionAbortController=n(this._compressionAbortController)}_setData(t,n){let r=this._descriptor,i=r.context?.gl;if(!i)return;o(i),this.hasWebGLTextureObject||(this._glName=i.createTexture(),r.context.instanceCounter.increment(s.Texture,this)),m(r);let a=r.context.bindTexture(this,S.TEXTURE_UNIT_FOR_UPDATES);r.context.setActiveTexture(S.TEXTURE_UNIT_FOR_UPDATES),this._configurePixelStorage(),o(i);let c=n??r.target,l=p(c);if(f(t))this._setDataFromTexImageSource(t,c);else{let{width:n,height:a,depth:s}=r;if(n==null||a==null)throw new e(`texture:missing-size`,`Width and height must be specified!`);if(l&&s==null)throw new e(`texture:missing-depth`,`Depth must be specified!`);if(r.internalFormat=d(r),r.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(c,r.internalFormat,r.hasMipmap,n,a,s),u(t)){if(!h(r.internalFormat))throw new e(`texture:format-mismatch`,`Attempting to use compressed data with an uncompressed format!`);this._setDataFromCompressedSource(t,r.internalFormat,c)}else this._texImage(c,0,r.internalFormat,n,a,s,t),o(i),r.hasMipmap&&this.generateMipmap()}this._applySamplingMode(),this._applyWrapMode(),this._applyAnisotropicFilteringParameters(),this._applyShadowMode(),o(i),r.context.bindTexture(a,S.TEXTURE_UNIT_FOR_UPDATES)}_setDataCubeMap(e=null){for(let t=34069;t<=34074;t++)this._setData(e,t)}_configurePixelStorage(){let e=this._descriptor.context.gl,{unpackAlignment:t,flipped:n,preMultiplyAlpha:r}=this._descriptor;e.pixelStorei(e.UNPACK_ALIGNMENT,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,+!!n),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,+!!r)}_setDataFromTexImageSource(e,t){let{gl:n}=this._descriptor.context,r=this._descriptor;r.internalFormat=d(r);let i=p(t),{width:a,height:s,depth:c}=g(e);r.width&&r.height,r.width||=a,r.height||=s,i&&r.depth,i&&(r.depth=c),r.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(t,r.internalFormat,r.hasMipmap,a,s,c),this._texImage(t,0,r.internalFormat,a,s,c,e),o(n),r.hasMipmap&&(this.generateMipmap(),o(n))}_setDataFromCompressedSource(e,t,n){let r=this._descriptor,{width:i,height:a,depth:o}=r,s=e.levels,c=v(n,i,a,o),l=Math.min(c,s.length)-1;this._descriptor.context.gl.texParameteri(r.target,33085,l),this._forEachMipmapLevel((e,r,i,a)=>{let o=s[Math.min(e,s.length-1)];this._compressedTexImage(n,e,t,r,i,a,o)},l)}_texStorage(t,n,r,i,a,o){let{gl:s}=this._descriptor.context;if(!_(n)&&!h(n))throw new e(`texture:missing-format`,`Immutable textures must have a sized or compressed internal format`);if(!this._descriptor.isImmutable)return;let c=r?v(t,i,a,o):1;if(p(t)){if(o==null)throw new e(`texture:missing-depth`,`Missing depth dimension for 3D texture upload`);s.texStorage3D(t,c,n,i,a,o)}else s.texStorage2D(t,c,n,i,a);this._wasImmutablyAllocated=!0}_texImage(t,n,r,i,a,o,s){let c=this._descriptor.context.gl,l=p(t),{isImmutable:u,pixelFormat:d,dataType:f}=this._descriptor;if(u){if(s!=null){let r=s;if(l){if(o==null)throw new e(`texture:missing-depth`,`Missing depth dimension for 3D texture upload`);c.texSubImage3D(t,n,0,0,0,i,a,o,d,f,r)}else c.texSubImage2D(t,n,0,0,i,a,d,f,r)}}else{let u=s;if(l){if(o==null)throw new e(`texture:missing-depth`,`Missing depth dimension for 3D texture upload`);c.texImage3D(t,n,r,i,a,o,0,d,f,u)}else c.texImage2D(t,n,r,i,a,0,d,f,u)}}_compressedTexImage(t,n,r,i,a,o,s){let c=this._descriptor.context.gl,l=p(t);if(this._descriptor.isImmutable){if(s!=null){if(l){if(o==null)throw new e(`texture:missing-depth`,`Missing depth dimension for 3D texture upload`);c.compressedTexSubImage3D(t,n,0,0,0,i,a,o,r,s)}else c.compressedTexSubImage2D(t,n,0,0,i,a,r,s)}}else if(l){if(o==null)throw new e(`texture:missing-depth`,`Missing depth dimension for 3D texture upload`);c.compressedTexImage3D(t,n,r,i,a,o,0,s)}else c.compressedTexImage2D(t,n,r,i,a,0,s)}async _compressOnWorker(e){let{width:t,height:n,context:r,flipped:o,preMultiplyAlpha:s,hasMipmap:c,compress:l}=this._descriptor;if(!l)return;let{compressionTracker:u,compressionCallback:d,preserveSourceBitmap:f}=l,{compressedTextureETC:p,compressedTextureS3TC:m}=r.capabilities;if(!S.compressionWorkerHandle?.isCompressible(e,this._descriptor)||!p&&!m)return;this.abortCompression();let h=new AbortController;this._compressionAbortController=h,u?.increment();let g,_=!1,v=!1;try{e instanceof ImageBitmap?f?(g=await createImageBitmap(e),i(h),v=!0):g=e:e instanceof Uint8Array?(g=e.buffer,_=this.descriptor.flipped):(g=await createImageBitmap(e,{imageOrientation:o?`flipY`:`none`}),i(h),v=!0);let r={data:g,width:t,height:n,needsFlip:_,components:this._descriptor.pixelFormat===6408?4:3,preMultiplyAlpha:s,isOpaque:this._descriptor.isOpaque,hasMipmap:c,hasETC:!!p,hasS3TC:!!m},a=await S.compressionWorkerHandle.invoke(r,h.signal,1);if(i(h),a.compressedTexture&&this.hasWebGLTextureObject){let e=this.usedMemory;this._descriptor.internalFormat=a.internalFormat,this._setData(a.compressedTexture),d?.(e-this.usedMemory)}}catch(e){a(e)||x().error(`Texture compression failed!`)}finally{u?.decrement(),this._compressionAbortController?.signal.aborted&&(this._compressionAbortController=null),v&&g instanceof ImageBitmap&&g.close()}}_forEachMipmapLevel(t,n=1/0){let{width:r,height:i,depth:a,hasMipmap:o,target:s}=this._descriptor,c=s===32879;if(r==null||i==null||c&&a==null)throw new e(`texture:missing-size`,`Missing texture dimensions for mipmap calculation`);for(let e=0;t(e,r,i,a),!(!o||r===1&&i===1&&(!c||a===1)||e>=n);++e)r=Math.max(1,r>>1),i=Math.max(1,i>>1),c&&(a=Math.max(1,a>>1))}_applySamplingMode(){let e=this._descriptor,t=e.context?.gl,n=e.samplingMode,r=e.samplingMode;n===9985||n===9987?(n=9729,e.hasMipmap||(r=9729)):(n===9984||n===9986)&&(n=9728,e.hasMipmap||(r=9728)),t.texParameteri(e.target,t.TEXTURE_MAG_FILTER,n),t.texParameteri(e.target,t.TEXTURE_MIN_FILTER,r),e.maxMipLevel!=null&&t.texParameteri(e.target,t.TEXTURE_MAX_LEVEL,e.maxMipLevel)}_applyWrapMode(){let e=this._descriptor,t=e.context?.gl;typeof e.wrapMode==`number`?(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode)):(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode.s),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode.t))}_applyShadowMode(){let e=this._descriptor,t=e.context?.gl,n=e.compareEnabled?t.COMPARE_REF_TO_TEXTURE:t.NONE;t.texParameteri(e.target,t.TEXTURE_COMPARE_MODE,n),e.compareEnabled&&t.texParameteri(e.target,t.TEXTURE_COMPARE_FUNC,t.GREATER),o(t)}_applyAnisotropicFilteringParameters(){let e=this._descriptor,t=e.context.capabilities.textureFilterAnisotropic;t&&e.context.gl.texParameterf(e.target,t.TEXTURE_MAX_ANISOTROPY,e.maxAnisotropy??1)}}export{S as default};
2
+ import e from"../../core/Error.js";import has from"../../core/has.js";import t from"../../core/Logger.js";import{abortMaybe as n}from"../../core/maybe.js";import{hasValue as r}from"../../core/object.js";import{throwIfAborted as i,isAbortError as a}from"../../core/promiseUtils.js";import{checkWebGLError as o}from"./checkWebGLError.js";import{ResourceType as s,CompressedTextureFormat as c}from"./enums.js";import{estimateMemory as l}from"./TextureDescriptor.js";import{isCompressedData as u,deriveInternalFormat as d,isTexImageSource as f,is3DTarget as p,validateTexture as m,isCompressedFormat as h,getDimensions as g,isSizedPixelFormat as _,calcMipmapLevels as v}from"./textureUtils.js";import{ValidatedTextureDescriptor as y}from"./ValidatedTextureDescriptor.js";const b=!!has(`esri-tests-disable-gpu-memory-measurements`),x=()=>t.getLogger(`esri/views/webgl/Texture`);class S{static{this.TEXTURE_UNIT_FOR_UPDATES=0}static{this.compressionWorkerHandle=null}constructor(t,n=null,r=null){if(this.type=1,this._glName=null,this._samplingModeDirty=!1,this._wrapModeDirty=!1,this._shadowFilterDirty=!1,this._wasImmutablyAllocated=!1,`context`in t)this._descriptor=t,r=n;else{let r=y.validate(t,n);if(!r)throw new e(`texture:invalid-descriptor`,`Texture descriptor invalid`);this._descriptor=r}this._descriptor.target===34067?this._setDataCubeMap(r):this.setData(r)}get glName(){return this._glName}get descriptor(){return this._descriptor}get usedMemory(){return b?0:l(this._descriptor)}get isDirty(){return this._samplingModeDirty||this._wrapModeDirty||this._shadowFilterDirty}get hasWebGLTextureObject(){return!!this._glName}dispose(){this.abortCompression(),this.hasWebGLTextureObject&&this._descriptor.context?.gl&&(this._descriptor.context.instanceCounter.decrement(s.Texture,this),this._descriptor.context.unbindTexture(this),this._descriptor.context.gl.deleteTexture(this._glName),this._glName=null)}release(){this.dispose()}[Symbol.dispose](){this.dispose()}resize(t,n){let r=this._descriptor;if(r.width!==t||r.height!==n){if(this._wasImmutablyAllocated)throw new e(`texture:immutable-resize`,`Immutable textures can't be resized!`);r.width=t,r.height=n,this._descriptor.target===34067?this._setDataCubeMap(null):this.setData(null)}}enableCompression(e){this._descriptor.compress=e}disableCompression(){this._descriptor.compress=void 0}setData(e){this.abortCompression(),!u(e)&&this._descriptor.internalFormat&&r(c,this._descriptor.internalFormat)&&(this._descriptor.internalFormat=void 0),this._setData(e),!u(e)&&this._descriptor.compress&&this._compressOnWorker(e)}updateData(t,n,r,i,a,o,s=0){o||x().error(`An attempt to use uninitialized data!`),this.hasWebGLTextureObject||x().error(`An attempt to update uninitialized texture!`);let c=this._descriptor;c.internalFormat=d(c);let{context:l,pixelFormat:p,dataType:m,target:h,isImmutable:g}=c;if(g&&!this._wasImmutablyAllocated)throw new e(`texture:uninitialized`,`Cannot update immutable texture before allocation!`);let _=l.bindTexture(this,S.TEXTURE_UNIT_FOR_UPDATES,!0);(n<0||r<0||n+i>c.width||r+a>c.height)&&x().error(`An attempt to update out of bounds of the texture!`),this._configurePixelStorage();let{gl:v}=l;s&&(i&&a||x().warn("Must pass width and height if `UNPACK_SKIP_ROWS` is used"),v.pixelStorei(v.UNPACK_SKIP_ROWS,s)),f(o)?v.texSubImage2D(h,t,n,r,i,a,p,m,o):u(o)?v.compressedTexSubImage2D(h,t,n,r,i,a,c.internalFormat,o.levels[t]):v.texSubImage2D(h,t,n,r,i,a,p,m,o),s&&v.pixelStorei(v.UNPACK_SKIP_ROWS,0),l.bindTexture(_,S.TEXTURE_UNIT_FOR_UPDATES)}updateData3D(t,n,r,i,a,o,s,c){c||x().error(`An attempt to use uninitialized data!`),this.hasWebGLTextureObject||x().error(`An attempt to update an uninitialized texture!`);let l=this._descriptor;l.internalFormat=d(l);let{context:f,pixelFormat:m,dataType:h,isImmutable:g,target:_}=l;if(g&&!this._wasImmutablyAllocated)throw new e(`texture:uninitialized`,`Cannot update immutable texture before allocation!`);p(_)||x().warn(`Attempting to set 3D texture data on a non-3D texture`);let v=f.bindTexture(this,S.TEXTURE_UNIT_FOR_UPDATES);f.setActiveTexture(S.TEXTURE_UNIT_FOR_UPDATES),(n<0||r<0||i<0||n+a>l.width||r+o>l.height||i+s>l.depth)&&x().error(`An attempt to update out of bounds of the texture!`),this._configurePixelStorage();let{gl:y}=f;if(u(c))c=c.levels[t],y.compressedTexSubImage3D(_,t,n,r,i,a,o,s,l.internalFormat,c);else{let e=c;y.texSubImage3D(_,t,n,r,i,a,o,s,m,h,e)}f.bindTexture(v,S.TEXTURE_UNIT_FOR_UPDATES)}generateMipmap(){let t=this._descriptor;if(t.width===0||t.height===0)return;if(!t.hasMipmap){if(this._wasImmutablyAllocated)throw new e(`texture:immutable-change`,`Cannot add mipmaps to immutable texture after allocation`);t.hasMipmap=!0,this._samplingModeDirty=!0,m(t)}t.samplingMode===9729?(this._samplingModeDirty=!0,t.samplingMode=9985):t.samplingMode===9728&&(this._samplingModeDirty=!0,t.samplingMode=9984);let n=this._descriptor.context.bindTexture(this,S.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.setActiveTexture(S.TEXTURE_UNIT_FOR_UPDATES),this._descriptor.context.gl.generateMipmap(t.target),this._descriptor.context.bindTexture(n,S.TEXTURE_UNIT_FOR_UPDATES)}clearMipmap(){let t=this._descriptor;if(t.hasMipmap){if(this._wasImmutablyAllocated)throw new e(`texture:immutable-change`,`Cannot delete mipmaps to immutable texture after allocation`);t.hasMipmap=!1,this._samplingModeDirty=!0,m(t)}t.samplingMode===9985?(this._samplingModeDirty=!0,t.samplingMode=9729):t.samplingMode===9984&&(this._samplingModeDirty=!0,t.samplingMode=9728)}setSamplingMode(e){e!==this._descriptor.samplingMode&&(this._descriptor.samplingMode=e,this._samplingModeDirty=!0)}setWrapMode(e){e!==this._descriptor.wrapMode&&(this._descriptor.wrapMode=e,m(this._descriptor),this._wrapModeDirty=!0)}setShadowFiltering(e){e!==this._descriptor.linearFilterDepth&&(this._descriptor.linearFilterDepth=this._descriptor.compareEnabled=e,this.setSamplingMode(e?9729:9728),m(this._descriptor),this._shadowFilterDirty=!0)}applyChanges(){this._samplingModeDirty&&=(this._applySamplingMode(),!1),this._wrapModeDirty&&=(this._applyWrapMode(),!1),this._shadowFilterDirty&&=(this._applyShadowMode(),!1)}abortCompression(){this._compressionAbortController=n(this._compressionAbortController)}_setData(t,n){let r=this._descriptor,i=r.context?.gl;if(!i)return;o(i),this.hasWebGLTextureObject||(this._glName=i.createTexture(),r.context.instanceCounter.increment(s.Texture,this)),m(r);let a=r.context.bindTexture(this,S.TEXTURE_UNIT_FOR_UPDATES);r.context.setActiveTexture(S.TEXTURE_UNIT_FOR_UPDATES),this._configurePixelStorage(),o(i);let c=n??r.target,l=p(c);if(f(t))this._setDataFromTexImageSource(t,c);else{let{width:n,height:a,depth:s}=r;if(n==null||a==null)throw new e(`texture:missing-size`,`Width and height must be specified!`);if(l&&s==null)throw new e(`texture:missing-depth`,`Depth must be specified!`);if(r.internalFormat=d(r),r.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(c,r.internalFormat,r.hasMipmap,n,a,s),u(t)){if(!h(r.internalFormat))throw new e(`texture:format-mismatch`,`Attempting to use compressed data with an uncompressed format!`);this._setDataFromCompressedSource(t,r.internalFormat,c)}else this._texImage(c,0,r.internalFormat,n,a,s,t),o(i),r.hasMipmap&&this.generateMipmap()}this._applySamplingMode(),this._applyWrapMode(),this._applyAnisotropicFilteringParameters(),this._applyShadowMode(),o(i),r.context.bindTexture(a,S.TEXTURE_UNIT_FOR_UPDATES)}_setDataCubeMap(e=null){for(let t=34069;t<=34074;t++)this._setData(e,t)}_configurePixelStorage(){let e=this._descriptor.context.gl,{unpackAlignment:t,flipped:n,preMultiplyAlpha:r}=this._descriptor;e.pixelStorei(e.UNPACK_ALIGNMENT,t),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,+!!n),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,+!!r)}_setDataFromTexImageSource(e,t){let{gl:n}=this._descriptor.context,r=this._descriptor;r.internalFormat=d(r);let i=p(t),{width:a,height:s,depth:c}=g(e);r.width&&r.height,r.width||=a,r.height||=s,i&&r.depth,i&&(r.depth=c),r.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(t,r.internalFormat,r.hasMipmap,a,s,c),this._texImage(t,0,r.internalFormat,a,s,c,e),o(n),r.hasMipmap&&(this.generateMipmap(),o(n))}_setDataFromCompressedSource(e,t,n){let r=this._descriptor,{width:i,height:a,depth:o}=r,s=e.levels,c=v(n,i,a,o),l=Math.min(c,s.length)-1;this._descriptor.context.gl.texParameteri(r.target,33085,l),this._forEachMipmapLevel((e,r,i,a)=>{let o=s[Math.min(e,s.length-1)];this._compressedTexImage(n,e,t,r,i,a,o)},l)}_texStorage(t,n,r,i,a,o){let{gl:s}=this._descriptor.context;if(!_(n)&&!h(n))throw new e(`texture:missing-format`,`Immutable textures must have a sized or compressed internal format`);if(!this._descriptor.isImmutable)return;let c=r?v(t,i,a,o):1;if(p(t)){if(o==null)throw new e(`texture:missing-depth`,`Missing depth dimension for 3D texture upload`);s.texStorage3D(t,c,n,i,a,o)}else s.texStorage2D(t,c,n,i,a);this._wasImmutablyAllocated=!0}_texImage(t,n,r,i,a,o,s){let c=this._descriptor.context.gl,l=p(t),{isImmutable:u,pixelFormat:d,dataType:f}=this._descriptor;if(u){if(s!=null){let r=s;if(l){if(o==null)throw new e(`texture:missing-depth`,`Missing depth dimension for 3D texture upload`);c.texSubImage3D(t,n,0,0,0,i,a,o,d,f,r)}else c.texSubImage2D(t,n,0,0,i,a,d,f,r)}}else{let u=s;if(l){if(o==null)throw new e(`texture:missing-depth`,`Missing depth dimension for 3D texture upload`);c.texImage3D(t,n,r,i,a,o,0,d,f,u)}else c.texImage2D(t,n,r,i,a,0,d,f,u)}}_compressedTexImage(t,n,r,i,a,o,s){let c=this._descriptor.context.gl,l=p(t);if(this._descriptor.isImmutable){if(s!=null){if(l){if(o==null)throw new e(`texture:missing-depth`,`Missing depth dimension for 3D texture upload`);c.compressedTexSubImage3D(t,n,0,0,0,i,a,o,r,s)}else c.compressedTexSubImage2D(t,n,0,0,i,a,r,s)}}else if(l){if(o==null)throw new e(`texture:missing-depth`,`Missing depth dimension for 3D texture upload`);c.compressedTexImage3D(t,n,r,i,a,o,0,s)}else c.compressedTexImage2D(t,n,r,i,a,0,s)}async _compressOnWorker(e){let{width:t,height:n,context:r,flipped:o,preMultiplyAlpha:s,hasMipmap:c,compress:l}=this._descriptor;if(!l)return;let{compressionTracker:u,compressionCallback:d,preserveSourceBitmap:f}=l,{compressedTextureETC:p,compressedTextureS3TC:m}=r.capabilities;if(!S.compressionWorkerHandle?.isCompressible(e,this._descriptor)||!p&&!m)return;this.abortCompression();let h=new AbortController;this._compressionAbortController=h,u?.increment();let g,_=!1,v=!1;try{e instanceof ImageBitmap?f?(g=await createImageBitmap(e),i(h),v=!0):g=e:e instanceof Uint8Array?(g=e.buffer,_=this.descriptor.flipped):(g=await createImageBitmap(e,{imageOrientation:o?`flipY`:`none`}),i(h),v=!0);let r={data:g,width:t,height:n,needsFlip:_,components:this._descriptor.pixelFormat===6408?4:3,preMultiplyAlpha:s,isOpaque:this._descriptor.isOpaque,hasMipmap:c,hasETC:!!p,hasS3TC:!!m},a=await S.compressionWorkerHandle.invoke(r,h.signal,1);if(i(h),a.compressedTexture&&this.hasWebGLTextureObject){let e=this.usedMemory;this._descriptor.internalFormat=a.internalFormat,this._setData(a.compressedTexture),d?.(e-this.usedMemory)}}catch(e){a(e)||x().error(`Texture compression failed!`)}finally{u?.decrement(),this._compressionAbortController?.signal.aborted&&(this._compressionAbortController=null),v&&g instanceof ImageBitmap&&g.close()}}_forEachMipmapLevel(t,n=1/0){let{width:r,height:i,depth:a,hasMipmap:o,target:s}=this._descriptor,c=s===32879;if(r==null||i==null||c&&a==null)throw new e(`texture:missing-size`,`Missing texture dimensions for mipmap calculation`);for(let e=0;t(e,r,i,a),!(!o||r===1&&i===1&&(!c||a===1)||e>=n);++e)r=Math.max(1,r>>1),i=Math.max(1,i>>1),c&&(a=Math.max(1,a>>1))}_applySamplingMode(){let e=this._descriptor,t=e.context?.gl,n=e.samplingMode,r=e.samplingMode;n===9985||n===9987?(n=9729,e.hasMipmap||(r=9729)):(n===9984||n===9986)&&(n=9728,e.hasMipmap||(r=9728)),t.texParameteri(e.target,t.TEXTURE_MAG_FILTER,n),t.texParameteri(e.target,t.TEXTURE_MIN_FILTER,r),e.maxMipLevel!=null&&t.texParameteri(e.target,t.TEXTURE_MAX_LEVEL,e.maxMipLevel)}_applyWrapMode(){let e=this._descriptor,t=e.context?.gl;typeof e.wrapMode==`number`?(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode)):(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode.s),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode.t))}_applyShadowMode(){let e=this._descriptor,t=e.context?.gl,n=e.compareEnabled?t.COMPARE_REF_TO_TEXTURE:t.NONE;t.texParameteri(e.target,t.TEXTURE_COMPARE_MODE,n),e.compareEnabled&&t.texParameteri(e.target,t.TEXTURE_COMPARE_FUNC,t.GREATER),o(t)}_applyAnisotropicFilteringParameters(){let e=this._descriptor,t=e.context.capabilities.textureFilterAnisotropic;t&&e.context.gl.texParameterf(e.target,t.TEXTURE_MAX_ANISOTROPY,e.maxAnisotropy??1)}}export{S as Texture};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{webglDebugEnabled as e,getErrorMessage as t}from"./checkWebGLError.js";import{CompressedTextureFormat as n,SizedPixelFormat as r,SizedDepthStencilFormat as i,SizedDepthFormat as a,DataType as o}from"./enums.js";const s=new Set([o.BYTE,o.SHORT,o.INT,o.UNSIGNED_BYTE,o.UNSIGNED_SHORT,o.UNSIGNED_INT]);function c(n,r,i,a=0){let o=n.gl;n.bindBuffer(i);for(let c of i.layout){let i=r.get(c.name);if(i==null){console.warn(`There is no location for vertex attribute '${c.name}' defined.`);continue}let l=a*c.stride;if(c.count<=4)c.integer&&s.has(c.type)?o.vertexAttribIPointer(i,c.count,c.type,c.stride,c.offset+l):o.vertexAttribPointer(i,c.count,c.type,c.normalized,c.stride,c.offset+l),o.enableVertexAttribArray(i),c.divisor>0&&o.vertexAttribDivisor(i,c.divisor);else if(c.count===9)for(let e=0;e<3;e++)o.vertexAttribPointer(i+e,3,c.type,c.normalized,c.stride,c.offset+e*12+l),o.enableVertexAttribArray(i+e),c.divisor>0&&o.vertexAttribDivisor(i+e,c.divisor);else if(c.count===16)for(let e=0;e<4;e++)o.vertexAttribPointer(i+e,4,c.type,c.normalized,c.stride,c.offset+e*16+l),o.enableVertexAttribArray(i+e),c.divisor>0&&o.vertexAttribDivisor(i+e,c.divisor);else console.error(`Unsupported vertex attribute element count: `+c.count);if(e()){let e=t(n.gl);e&&console.error(`Unable to bind vertex attribute "${c.name}" with baseInstanceOffset ${l}:`,e,c)}}}function l(e){switch(e){case 6406:case 6409:case 6403:case 36244:case 6402:case 34041:return 1;case 6410:case 33319:case 33320:return 2;case 6407:case 36248:return 3;case 6408:case 36249:return 4}return 0}function u(e){switch(e){case 6406:case 6409:case 6403:case 36244:case r.R8:case r.R8I:case r.R8UI:case r.R8_SNORM:case 36168:return 1;case 6410:case 33319:case 33320:case r.RGBA4:case r.R16F:case r.R16I:case r.R16UI:case r.RG8:case r.RG8I:case r.RG8UI:case r.RG8_SNORM:case r.RGB565:case r.RGB5_A1:case a.DEPTH_COMPONENT16:return 2;case 6407:case 36248:case r.RGB8:case r.RGB8I:case r.RGB8UI:case r.RGB8_SNORM:case r.SRGB8:case a.DEPTH_COMPONENT24:return 3;case 6408:case 36249:case r.RGBA8:case r.R32F:case r.R11F_G11F_B10F:case r.RG16F:case r.R32I:case r.R32UI:case r.RG16I:case r.RG16UI:case r.RGBA8I:case r.RGBA8UI:case r.RGBA8_SNORM:case r.SRGB8_ALPHA8:case r.RGB9_E5:case r.RGB10_A2UI:case r.RGB10_A2:case a.DEPTH_COMPONENT32F:case i.DEPTH24_STENCIL8:return 4;case i.DEPTH32F_STENCIL8:return 5;case r.RGB16F:case r.RGB16I:case r.RGB16UI:return 6;case r.RG32F:case r.RG32I:case r.RG32UI:case r.RGBA16F:case r.RGBA16I:case r.RGBA16UI:return 8;case r.RGB32F:case r.RGB32I:case r.RGB32UI:return 12;case r.RGBA32F:case r.RGBA32I:case r.RGBA32UI:return 16;case n.COMPRESSED_RGB_S3TC_DXT1_EXT:case n.COMPRESSED_RGBA_S3TC_DXT1_EXT:return .5;case n.COMPRESSED_RGBA_S3TC_DXT3_EXT:case n.COMPRESSED_RGBA_S3TC_DXT5_EXT:return 1;case n.COMPRESSED_R11_EAC:case n.COMPRESSED_SIGNED_R11_EAC:case n.COMPRESSED_RGB8_ETC2:case n.COMPRESSED_SRGB8_ETC2:case n.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:case n.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:return .5;case n.COMPRESSED_RG11_EAC:case n.COMPRESSED_SIGNED_RG11_EAC:case n.COMPRESSED_RGBA8_ETC2_EAC:case n.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:return 1}return 0}export{c as bindVertexBufferLayout,u as getFormatBytesPerElement,l as getFormatComponents};
2
+ import{webglDebugEnabled as e,getErrorMessage as t}from"./checkWebGLError.js";import{DataType as n,CompressedTextureFormat as r,SizedPixelFormat as i,SizedDepthStencilFormat as a,SizedDepthFormat as o}from"./enums.js";const s=new Set([n.BYTE,n.SHORT,n.INT,n.UNSIGNED_BYTE,n.UNSIGNED_SHORT,n.UNSIGNED_INT]);function c(n,r,i,a=0){let o=n.gl;n.bindBuffer(i);for(let c of i.layout){let i=r.get(c.name);if(i==null){console.warn(`There is no location for vertex attribute '${c.name}' defined.`);continue}let l=a*c.stride;if(c.count<=4)c.integer&&s.has(c.type)?o.vertexAttribIPointer(i,c.count,c.type,c.stride,c.offset+l):o.vertexAttribPointer(i,c.count,c.type,c.normalized,c.stride,c.offset+l),o.enableVertexAttribArray(i),c.divisor>0&&o.vertexAttribDivisor(i,c.divisor);else if(c.count===9)for(let e=0;e<3;e++)o.vertexAttribPointer(i+e,3,c.type,c.normalized,c.stride,c.offset+e*12+l),o.enableVertexAttribArray(i+e),c.divisor>0&&o.vertexAttribDivisor(i+e,c.divisor);else if(c.count===16)for(let e=0;e<4;e++)o.vertexAttribPointer(i+e,4,c.type,c.normalized,c.stride,c.offset+e*16+l),o.enableVertexAttribArray(i+e),c.divisor>0&&o.vertexAttribDivisor(i+e,c.divisor);else console.error(`Unsupported vertex attribute element count: `+c.count);if(e()){let e=t(n.gl);e&&console.error(`Unable to bind vertex attribute "${c.name}" with baseInstanceOffset ${l}:`,e,c)}}}function l(e){switch(e){case 6406:case 6409:case 6403:case 36244:case 6402:case 34041:return 1;case 6410:case 33319:case 33320:return 2;case 6407:case 36248:return 3;case 6408:case 36249:return 4}return 0}function u(e){switch(e){case 6406:case 6409:case 6403:case 36244:case i.R8:case i.R8I:case i.R8UI:case i.R8_SNORM:case 36168:return 1;case 6410:case 33319:case 33320:case i.RGBA4:case i.R16F:case i.R16I:case i.R16UI:case i.RG8:case i.RG8I:case i.RG8UI:case i.RG8_SNORM:case i.RGB565:case i.RGB5_A1:case o.DEPTH_COMPONENT16:return 2;case 6407:case 36248:case i.RGB8:case i.RGB8I:case i.RGB8UI:case i.RGB8_SNORM:case i.SRGB8:case o.DEPTH_COMPONENT24:return 3;case 6408:case 36249:case i.RGBA8:case i.R32F:case i.R11F_G11F_B10F:case i.RG16F:case i.R32I:case i.R32UI:case i.RG16I:case i.RG16UI:case i.RGBA8I:case i.RGBA8UI:case i.RGBA8_SNORM:case i.SRGB8_ALPHA8:case i.RGB9_E5:case i.RGB10_A2UI:case i.RGB10_A2:case o.DEPTH_COMPONENT32F:case a.DEPTH24_STENCIL8:return 4;case a.DEPTH32F_STENCIL8:return 5;case i.RGB16F:case i.RGB16I:case i.RGB16UI:return 6;case i.RG32F:case i.RG32I:case i.RG32UI:case i.RGBA16F:case i.RGBA16I:case i.RGBA16UI:return 8;case i.RGB32F:case i.RGB32I:case i.RGB32UI:return 12;case i.RGBA32F:case i.RGBA32I:case i.RGBA32UI:return 16;case r.COMPRESSED_RGB_S3TC_DXT1_EXT:case r.COMPRESSED_RGBA_S3TC_DXT1_EXT:return .5;case r.COMPRESSED_RGBA_S3TC_DXT3_EXT:case r.COMPRESSED_RGBA_S3TC_DXT5_EXT:return 1;case r.COMPRESSED_R11_EAC:case r.COMPRESSED_SIGNED_R11_EAC:case r.COMPRESSED_RGB8_ETC2:case r.COMPRESSED_SRGB8_ETC2:case r.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:case r.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:return .5;case r.COMPRESSED_RG11_EAC:case r.COMPRESSED_SIGNED_RG11_EAC:case r.COMPRESSED_RGBA8_ETC2_EAC:case r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:return 1}return 0}export{c as bindVertexBufferLayout,u as getFormatBytesPerElement,l as getFormatComponents};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{ZEROS as e}from"../../core/libs/gl-matrix-2/factories/vec2f64.js";import{SizedPixelFormat as t,PixelType as n}from"./enums.js";import r from"./Texture.js";import{TextureDescriptor as i}from"./TextureDescriptor.js";function a(e,a,o=`nearest`,s=!1){let c=!(s&&a.pixelType===`u8`),l=c?n.FLOAT:n.UNSIGNED_BYTE,u=a.pixels==null||a.pixels.length===0?null:c?a.getAsRGBAFloat():a.getAsRGBA(),d=e.capabilities.textureFloatLinear,f=new i(a.width,a.height);return f.internalFormat=c?t.RGBA32F:6408,f.samplingMode=d&&(o===`bilinear`||o===`cubic`)?9729:9728,f.dataType=l,f.wrapMode=33071,new r(e,f,u)}function o(e,a){let{spacing:o,offsets:s,coefficients:c,size:[l,u]}=a,d=o[0]>1,f=new i(d?l*4:l,u);f.internalFormat=t.RGBA32F,f.dataType=n.FLOAT,f.samplingMode=9728,f.wrapMode=33071;let p=new Float32Array(d?l*u*16:s.length*2);if(d&&c!=null)for(let e=0,t=0;e<c.length;e++)p[t++]=c[e],e%3==2&&(p[t++]=1);else for(let e=0;e<u;e++)for(let t=0;t<l;t++){let n=(e*l+t)*4,r=(t*u+e)*2;p[n]=s[r],p[n+1]=s[r+1],p[n+3]=s[r]===-1?0:1}return new r(e,f,p)}function s(e,t){let n=new i(t.length/4,1);return n.internalFormat=6408,n.samplingMode=9728,n.wrapMode=33071,new r(e,n,t)}function c(e,t,a){let o=new i(a[0],a[1]);return o.internalFormat=6406,o.pixelFormat=6406,o.dataType=n.UNSIGNED_BYTE,o.samplingMode=9728,o.wrapMode=33071,new r(e,o,t)}function l(t,n,r,i=1,a=!0){return{u_flipY:a,u_applyTransform:!!t,u_opacity:i,u_transformSpacing:t?t.spacing:e,u_transformGridSize:t?t.size:e,u_targetImageSize:n,u_srcImageSize:r}}function u(e,t){return{u_colormapOffset:t||0,u_colormapMaxIndex:e?e.length/4-1:0}}function d(e){return{u_bandCount:e.bandCount,u_minOutput:e.minOutput,u_maxOutput:e.maxOutput,u_minCutOff:e.minCutOff,u_maxCutOff:e.maxCutOff,u_factor:e.factor,u_useGamma:e.useGamma,u_gamma:e.gamma,u_gammaCorrection:e.gammaCorrection}}function f(e){return{u_hillshadeType:e.hillshadeType,u_sinZcosAs:e.sinZcosAs,u_sinZsinAs:e.sinZsinAs,u_cosZs:e.cosZs,u_weights:e.weights,u_factor:e.factor,u_minValue:e.minValue,u_maxValue:e.maxValue}}export{s as createColormapTexture,c as createPixelMaskTexture,a as createRasterTexture,o as createTransformTexture,u as getColormapUniforms,l as getCommonUniforms,f as getShadedReliefUniforms,d as getStretchUniforms};
2
+ import{ZEROS as e}from"../../core/libs/gl-matrix-2/factories/vec2f64.js";import{SizedPixelFormat as t,PixelType as n}from"./enums.js";import{Texture as r}from"./Texture.js";import{TextureDescriptor as i}from"./TextureDescriptor.js";function a(e,a,o=`nearest`,s=!1){let c=!(s&&a.pixelType===`u8`),l=c?n.FLOAT:n.UNSIGNED_BYTE,u=a.pixels==null||a.pixels.length===0?null:c?a.getAsRGBAFloat():a.getAsRGBA(),d=e.capabilities.textureFloatLinear,f=new i(a.width,a.height);return f.internalFormat=c?t.RGBA32F:6408,f.samplingMode=d&&(o===`bilinear`||o===`cubic`)?9729:9728,f.dataType=l,f.wrapMode=33071,new r(e,f,u)}function o(e,a){let{spacing:o,offsets:s,coefficients:c,size:[l,u]}=a,d=o[0]>1,f=new i(d?l*4:l,u);f.internalFormat=t.RGBA32F,f.dataType=n.FLOAT,f.samplingMode=9728,f.wrapMode=33071;let p=new Float32Array(d?l*u*16:s.length*2);if(d&&c!=null)for(let e=0,t=0;e<c.length;e++)p[t++]=c[e],e%3==2&&(p[t++]=1);else for(let e=0;e<u;e++)for(let t=0;t<l;t++){let n=(e*l+t)*4,r=(t*u+e)*2;p[n]=s[r],p[n+1]=s[r+1],p[n+3]=s[r]===-1?0:1}return new r(e,f,p)}function s(e,t){let n=new i(t.length/4,1);return n.internalFormat=6408,n.samplingMode=9728,n.wrapMode=33071,new r(e,n,t)}function c(e,t,a){let o=new i(a[0],a[1]);return o.internalFormat=6406,o.pixelFormat=6406,o.dataType=n.UNSIGNED_BYTE,o.samplingMode=9728,o.wrapMode=33071,new r(e,o,t)}function l(t,n,r,i=1,a=!0){return{u_flipY:a,u_applyTransform:!!t,u_opacity:i,u_transformSpacing:t?t.spacing:e,u_transformGridSize:t?t.size:e,u_targetImageSize:n,u_srcImageSize:r}}function u(e,t){return{u_colormapOffset:t||0,u_colormapMaxIndex:e?e.length/4-1:0}}function d(e){return{u_bandCount:e.bandCount,u_minOutput:e.minOutput,u_maxOutput:e.maxOutput,u_minCutOff:e.minCutOff,u_maxCutOff:e.maxCutOff,u_factor:e.factor,u_useGamma:e.useGamma,u_gamma:e.gamma,u_gammaCorrection:e.gammaCorrection}}function f(e){return{u_hillshadeType:e.hillshadeType,u_sinZcosAs:e.sinZcosAs,u_sinZsinAs:e.sinZsinAs,u_cosZs:e.cosZs,u_weights:e.weights,u_factor:e.factor,u_minValue:e.minValue,u_maxValue:e.maxValue}}export{s as createColormapTexture,c as createPixelMaskTexture,a as createRasterTexture,o as createTransformTexture,u as getColormapUniforms,l as getCommonUniforms,f as getShadedReliefUniforms,d as getStretchUniforms};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{PrimitiveType as e,PixelType as t}from"./enums.js";import{DisposableFramebufferObject as n}from"./FramebufferObject.js";import r from"./Texture.js";import{TextureDescriptor as i}from"./TextureDescriptor.js";import{VertexArrayObject as a}from"./VertexArrayObject.js";import{Pos2usLocations as o,Pos2us as s}from"./VertexAttributeLayouts.js";import{VertexBuffer as c}from"./VertexBuffer.js";import{WebGLDriverTestModule as l}from"./WebGLDriverTestModule.js";class u extends l{constructor(e){super(),this._rctx=e,this._program=e.programCache.get(`
2
+ import{PrimitiveType as e,PixelType as t}from"./enums.js";import{DisposableFramebufferObject as n}from"./FramebufferObject.js";import{Texture as r}from"./Texture.js";import{TextureDescriptor as i}from"./TextureDescriptor.js";import{VertexArrayObject as a}from"./VertexArrayObject.js";import{Pos2usLocations as o,Pos2us as s}from"./VertexAttributeLayouts.js";import{VertexBuffer as c}from"./VertexBuffer.js";import{WebGLDriverTestModule as l}from"./WebGLDriverTestModule.js";class u extends l{constructor(e){super(),this._rctx=e,this._program=e.programCache.get(`
3
3
  precision highp float;
4
4
 
5
5
  attribute vec2 position;
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import"@vaadin/grid/vaadin-grid.js";import"@vaadin/grid/vaadin-grid-column-group.js";import"@vaadin/grid/vaadin-grid-selection-column.js";import"@vaadin/grid/vaadin-grid-sorter.js";import{isSome as t}from"../../../core/arrayUtils.js";import{on as n}from"../../../core/events.js";import{assertIsSome as r}from"../../../core/maybe.js";import{on as i,sync as a,watch as o}from"../../../core/reactiveUtils.js";import{renderingSanitizer as s}from"../../../core/sanitizerUtils.js";import{property as c,subclass as l}from"../../../core/accessorSupport/decorators.js";import u from"../../Widget.js";import d from"./GridViewModel.js";import{globalCss as f}from"../../support/globalCss.js";import{messageBundle as p,tsx as m}from"../../support/widget.js";const h=`esri-grid`,g={base:h,content:`${h}__content`,grid:`${h}__grid`,noDataMessage:`${h}__no-data-message`},_={sort:[`Enter`,` `]};let v=class extends u{constructor(e,t){super(e,t),this._columnElements=[],this._grid=null,this.itemIdPath=`objectId`,this.messages=null,this.selectionColumnEnabled=!0,this.viewModel=new d,this._onSelectedItemsChange=this._onSelectedItemsChange.bind(this)}initialize(){this.addHandles([this.columns.on(`before-changes`,()=>this.renderNow()),this.columns.on(`change`,()=>this.onColumnChange()),i(()=>this.highlightIds,`before-add`,({target:e})=>{!this.effectiveMultipleSelectionEnabled&&e.length&&e.removeAll()},a),this.rowHighlightIds.on(`change`,()=>this.generateCellPartNames()),o(()=>this.effectiveSize,()=>this._updateGridSize()),o(()=>[this.isEditing,this.store?.hasPendingEdits],()=>{this.generateCellPartNames(),this.requestContentUpdate()}),o(()=>this.store?.state,(e,t)=>{e===`ready`&&(t===`loaded`||t===`error`)&&this.refreshPageCache()}),i(()=>this._table,`scroll`,()=>this.viewModel.closeColumnMenus()),n(window,`resize`,()=>this._updateColumnBorderStyles()),i(()=>this._table,`scrollend`,()=>{this.paginationEnabled||(this.pageIndex=this.getVirtualPageIndex()),this._updateColumnBorderStyles()}),o(()=>this.effectiveMultipleSelectionEnabled,e=>{!e&&this.highlightIds.length>1&&this.highlightIds.removeAll()},a)])}destroy(){this.resetColumns(),this.columns.destroyed||this.columns.destroy()}resetColumns(){this.columns.drain(e=>!e.destroyed&&e.destroy())}get _columnRendering(){return this.columnPerformanceModeEnabled?`lazy`:`eager`}get _selectedItems(){let{highlightIds:e,store:t}=this;return e.toArray().map(e=>t?.getItemByObjectId(e)??{objectId:e})}get _gridIsDisabled(){return this.viewModel.allVisibleColumns.length===0||this.hasInvalidColumnConfiguration}get _noDataMessage(){return s.sanitize(this.noDataMessage)}get _table(){return this._grid?.$?.table}get cellPartNameGenerator(){return this.viewModel.cellPartNameGenerator}set cellPartNameGenerator(e){this.viewModel.cellPartNameGenerator=e}get columns(){return this.viewModel.columns}set columns(e){this.viewModel.columns=e}get columnPerformanceModeEnabled(){return this.viewModel.columnPerformanceModeEnabled}set columnPerformanceModeEnabled(e){this.viewModel.columnPerformanceModeEnabled=e}get columnReorderingEnabled(){return this.viewModel.columnReorderingEnabled}set columnReorderingEnabled(e){this.viewModel.columnReorderingEnabled=e}get dataProvider(){return this.viewModel.dataProvider}set dataProvider(e){this.viewModel.dataProvider=e}get direction(){return this.viewModel.direction}set direction(e){this.viewModel.direction=e}get editingEnabled(){return this.viewModel.editingEnabled}set editingEnabled(e){this.viewModel.editingEnabled=e}get effectiveMultipleSelectionEnabled(){return this.viewModel.effectiveMultipleSelectionEnabled}get effectiveSize(){return this.viewModel.effectiveSize}get groupColumns(){return this.viewModel.groupColumns}get hasInvalidColumnConfiguration(){return this.viewModel.hasInvalidColumnConfiguration}get highlightIds(){return this.viewModel.highlightIds}set highlightIds(e){this.viewModel.highlightIds=e}get temporaryHighlightId(){return this.viewModel.temporaryHighlightId}set temporaryHighlightId(e){this.viewModel.temporaryHighlightId=e}get isEditing(){return this.viewModel.isEditing}get isReady(){return!!this._grid}get label(){return this.messages?.widgetLabel??``}set label(e){this._overrideIfSome(`label`,e)}get multipleSelectionEnabled(){return this.viewModel.multipleSelectionEnabled}set multipleSelectionEnabled(e){this.viewModel.multipleSelectionEnabled=e}get multipleSelectionEnabledOverride(){return this.viewModel.multipleSelectionEnabledOverride}set multipleSelectionEnabledOverride(e){this.viewModel.multipleSelectionEnabledOverride=e}get multiSortEnabled(){return this.viewModel.multiSortEnabled}set multiSortEnabled(e){this.viewModel.multiSortEnabled=e}get noDataMessage(){return this.viewModel.noDataMessage}set noDataMessage(e){this.viewModel.noDataMessage=e}get pageIndex(){return this.viewModel.pageIndex}set pageIndex(e){this.viewModel.pageIndex=e}get multipleSortPriority(){return this.viewModel.multipleSortPriority}set multipleSortPriority(e){this.viewModel.multipleSortPriority=e}get pageSize(){return this.viewModel.pageSize}set pageSize(e){this.viewModel.pageSize=e}get paginationEnabled(){return this.viewModel.paginationEnabled}set paginationEnabled(e){this.viewModel.paginationEnabled=e}get rowDetailsRenderer(){return this.viewModel.rowDetailsRenderer}set rowDetailsRenderer(e){this.viewModel.rowDetailsRenderer=e}get rowHighlightIds(){return this.viewModel.rowHighlightIds}set rowHighlightIds(e){this.viewModel.rowHighlightIds=e}get size(){return this.viewModel.size}get sortOrders(){return this._grid?._sorters?this._grid._sorters.filter(e=>!!e&&e.path).map(({direction:e,path:t})=>({direction:e,path:t})):[]}get store(){return this.viewModel.store}get state(){return this.viewModel.state}addSorter(e){this._grid?.__updateSorter(e,!1,!1),this.notifyChange(`sortOrders`)}getColumnProps(e,t){let{id:n}=this,{autoWidth:r,direction:i,fieldName:a,flexGrow:o,frozen:s,frozenToEnd:c,hidden:l,label:u,resizable:d,textAlign:f,width:p}=e,m=`${n}_${a}_${t}`,{renderFunction:h,footerRenderFunction:g,headerRenderFunction:_}=e,v=g?(e,t)=>g({root:e,column:t}):void 0,y=_?(e,t)=>_({root:e,column:t}):void 0,b=h?(e,t,n)=>h({root:e,column:t,rowData:n}):void 0,x=``;return e.direction&&(x+=` direction`),e.invalid&&(x+=` invalid`),{footerRenderer:v,headerRenderer:y,renderer:b,autoWidth:r,direction:i,flexGrow:o,frozen:s,frozenToEnd:c,headerPartName:x,key:m,resizable:d,bind:this,"data-fieldName":a,header:u,hidden:this.hasInvalidColumnConfiguration||l,path:a,"text-align":f,width:typeof p==`number`?`${p}px`:p,afterCreate:this._afterColumnCreate,afterRemoved:this._afterColumnRemoved}}clearSelection(){this._clearSelection(),this.scheduleRender()}clearSort(){let e=!1;this._grid&&(this._grid._sorters?.length&&(this._grid._sorters.forEach(e=>{e._order=null,e.direction=null}),e=!0),this.columns.length&&this.columns.some(e=>!!e.direction)&&(this.columns.forEach(e=>e.direction=null),e=!0),e&&(this.notifyChange(`sortOrders`),this.scheduleRender()))}findColumn(e){return this.viewModel.findColumn(e)}generateCellPartNames(){this._grid?.generateCellPartNames()}getFirstVisibleRowIndex(){return this._grid?._firstVisibleIndex||0}getVirtualPageIndex(){return Math.floor(this.getFirstVisibleRowIndex()/this.pageSize)}getLastVisibleRowIndex(){return this._grid?._lastVisibleIndex||0}getVisibleItemsCount(){return this._grid?._visibleItemsCount||0}getRowContainingNode(e){try{return this._grid?._getRowContainingNode(e)}catch{return null}}getSlotElementByName(e){return this._grid?.shadowRoot?.querySelector(`slot[name='${e}']`)??null}hasSorter(e){return this._grid?._sorters?.includes(e)||!1}hideColumn(e){this.viewModel.hideColumn(e)}recalculateColumnWidths(){this._grid?.recalculateColumnWidths()}async reset(){this._clearSelection(),this.store?.reset(),this.scrollToTop()}refreshPageCache(){this._grid?.clearCache(),this.temporaryHighlightId=void 0}requestContentUpdate(){this._grid?.requestContentUpdate(),this.temporaryHighlightId=void 0}selectRows(e){let{itemIdPath:t}=this,n=(e?.filter(e=>!this.highlightIds.includes(e[t]))).map(e=>e[t]);n.length&&(this.effectiveMultipleSelectionEnabled||(this.highlightIds.removeAll(),n.splice(1)),this.highlightIds.addMany(n))}deselectRows(e){let{itemIdPath:t}=this,n=e?.map(e=>e[t])||[];n.length&&this.highlightIds.removeMany(n)}showColumn(e){this.viewModel.showColumn(e)}sort({path:e,direction:t}){this.viewModel.sortColumn(e,t),this.notifyChange(`sortOrders`)}scrollToIndex(e){this.size!==0&&(this._grid?.isConnected&&this._grid?.scrollToIndex(e),this.temporaryHighlightId=void 0)}scrollToTop(){this.scrollToIndex(0)}scrollToBottom(){this.scrollToIndex(1/0)}scrollLeft(e){let{_table:t}=this;t&&(t.scrollLeft=e)}toggleColumnVisibility(e){this.viewModel.toggleColumnVisibility(e)}onColumnChange(){this._columnElements.forEach(e=>this._applyRenderersToColumnElement(e)),this.requestContentUpdate()}render(){return m(`div`,{bind:this,class:this.classes(g.base,f.widget)},m(`div`,{bind:this,class:g.content},this._renderGrid()))}_renderGrid(){return m(`vaadin-grid`,{afterCreate:this._afterGridCreate,afterUpdate:this._afterGridUpdate,bind:this,cellPartNameGenerator:this.cellPartNameGenerator,class:g.grid,columnRendering:this._columnRendering,columnReorderingAllowed:this.columnReorderingEnabled,dataProvider:this.dataProvider,dir:this.direction,disabled:this._gridIsDisabled,id:`${this.id}_grid`,itemIdPath:this.itemIdPath,multiSort:this.multiSortEnabled,multiSortPriority:this.multipleSortPriority,pageSize:this.pageSize,ref:`grid`,rowDetailsRenderer:this.rowDetailsRenderer,selectedItems:this._selectedItems,size:this.effectiveSize},this._renderAllColumns(),this._renderEmptyState())}_renderAllColumns(){return this.state===`disabled`||!this.columns.length?null:[this._renderSelectionColumn(),this._renderColumns()]}_renderSelectionColumn(){return m(`vaadin-grid-selection-column`,{_selectAllHidden:!0,autoWidth:!1,bind:this,dragSelect:!0,frozen:!0,hidden:this.hasInvalidColumnConfiguration||!this.selectionColumnEnabled,selectAll:!1,sortable:!1,textAlign:`center`})}_renderColumns(){return this.columns.toArray().map((e,t)=>`columns`in e?this._renderGroupColumn(e,t):this._renderColumn(e,t)).filter(t)}_renderColumn(e,t){let n=this.getColumnProps(e,t);if(!n.hidden)return m(`vaadin-grid-column`,{...n})}_renderGroupColumn(e,t){let n=this.getColumnProps(e,t);return n.hidden||!e.effectiveVisible?null:m(`vaadin-grid-column-group`,{...n},e.visibleChildColumns.map(e=>m(`vaadin-grid-column`,{...this.getColumnProps(e,t)})))}_renderEmptyState(){let e=this.viewModel;if(!(e.state!==`loaded`||e.isQueryingOrSyncing))return m(`div`,{class:g.noDataMessage,slot:`empty-state`},this._noDataMessage??this.messages.noDataFound)}_afterGridCreate(e){let t=this._grid=e;customElements.whenDefined(`vaadin-grid`).then(()=>{this._addGridEventListeners()}),t.__updateSorter=(e,n,r)=>{let i=t._sorters,a=!i.includes(e),{multiSort:o,multiSortOnShiftClick:s,multiSortPriority:c}=t,l=i.filter(t=>t!==e),u=o&&(!s||!r)||s&&n;e._order=null,e.direction?u?e._initialOrder==null?c===`append`&&a?t._sorters=[...l,e]:c===`prepend`&&(t._sorters=[e,...l]):(a?i[e._initialOrder]=e:i.splice(e._initialOrder,0,e),e._initialOrder=null):(e.direction||s)&&(t._sorters=e.direction?[e]:[],l.forEach(e=>{e._order=null,e.direction=null})):a||(t._sorters=[...l])},t.__removeSorters=e=>{if(e.length===0)return;let n=new Set(e.filter(e=>!e.direction));t._sorters=t._sorters.filter(e=>!n.has(e)),t.__applySorters()}}_afterGridUpdate(e){this._grid||=e}_afterColumnCreate(e){this._columnElements.push(e)}_afterColumnRemoved(e){let t=this._columnElements.indexOf(e,0);t>-1&&this._columnElements.splice(t,1)}_updateGridSize(){this._grid&&(this._grid.size=this.effectiveSize,this.scheduleRender())}_addGridEventListeners(){let e=this._grid;r(e),this.addHandles([n(e,[`click`,`dblclick`,`keydown`,`pointerover`,`pointerout`],e=>this._onGridInteraction(e)),n(e,[`pointerover`,`pointerout`,`cell-focus`],e=>this._onTransientGridInteraction(e)),n(e,`selected-items-changed`,this._onSelectedItemsChange),n(e,`sorter-changed`,()=>{this.notifyChange(`sortOrders`),this._updateColumnBorderStyles()}),n(e,`column-resize`,e=>{let t=e.detail.resizedColumn,n=t.getAttribute(`data-fieldName`);this.findColumn(n)?.set({width:t.width}),this._updateColumnBorderStyles()}),n(e,`column-reorder`,()=>this._onColumnOrderChange())])}_onGridInteraction(e){let t=this._grid;if(r(t),(e.type===`pointerover`||e.type===`pointerout`)&&e.relatedTarget!==t){let{target:t,relatedTarget:n}=e;if(!(this._isGridCellContentNode(t)&&this._isGridCellContentNode(n)))return}let n=null;try{n=t.getEventContext(e)}catch{}if(!n)return;let{column:i,index:a,item:o,section:s}=n;if(!s)return;if(s===`header`&&e.type===`keydown`&&i?.path){let t=e.key;_.sort.includes(t)&&this.findColumn(i.path)?.sort()}let c=`cell-${e.type}`;this.emit(c,{type:c,context:n,index:a,item:o,native:e,path:i?.path??void 0})}_onTransientGridInteraction(e){if(e.type===`pointerout`){this.temporaryHighlightId=void 0;return}let t=this._grid;if(t)try{this.temporaryHighlightId=t.getEventContext(e)?.item?.objectId??void 0}catch{this.temporaryHighlightId=void 0}}_isGridCellContentNode(e){return!!(e&&e instanceof HTMLElement&&e.localName===`vaadin-grid-cell-content`)}_onColumnOrderChange(){let e=this._grid;r(e);let t=e._getColumnsInOrder(0),n=[],i=(this.viewModel.groupColumns.length?e._getColumnsInOrder(1):t).map(e=>e.getAttribute(`data-fieldName`));t?.forEach(e=>{let t=e.getAttribute(`data-fieldName`);if(t!=null){let e=this.findColumn(t);n.push(t),e&&`columns`in e&&e.columns?.length&&e.columns.sort((e,t)=>i.indexOf(e.fieldName)>i.indexOf(t.fieldName)?1:-1)}}),this.columns.sort((e,t)=>n.indexOf(e.fieldName)>n.indexOf(t.fieldName)?1:-1),this.notifyChange(`sortOrders`),this.emit(`column-reorder`,{type:`column-reorder`})}_clearSelection(){this.highlightIds.removeAll(),this.temporaryHighlightId=void 0}_onSelectedItemsChange(e){let{highlightIds:t,itemIdPath:n}=this,r=e.detail.value.map(e=>e[n]),i=r.filter(e=>!t.includes(e));if(!this.effectiveMultipleSelectionEnabled&&i.length&&t.length)t.removeAll(),t.add(i[0]);else{let e=t.filter(e=>!r.includes(e));t.removeMany(e),t.addMany(i)}}_applyRenderersToColumnElement(e){let t=e?.path,n=t==null?void 0:this.findColumn(t);if(n)try{let{renderFunction:t,footerRenderFunction:r,headerRenderFunction:i}=n;t&&`renderer`in e&&(e.renderer=(e,n,r)=>t({root:e,column:n,rowData:r})),r&&(e.footerRenderer=(e,t)=>r({root:e,column:t})),i&&(e.headerRenderer=(e,t)=>i({root:e,column:t}))}catch{}}_updateColumnBorderStyles(){try{this._grid?._updateFirstAndLastColumn()}catch{}}};e([c()],v.prototype,`_columnElements`,void 0),e([c()],v.prototype,`_columnRendering`,null),e([c()],v.prototype,`_selectedItems`,null),e([c()],v.prototype,`_grid`,void 0),e([c()],v.prototype,`_gridIsDisabled`,null),e([c()],v.prototype,`_noDataMessage`,null),e([c()],v.prototype,`_table`,null),e([c()],v.prototype,`cellPartNameGenerator`,null),e([c()],v.prototype,`columns`,null),e([c()],v.prototype,`columnPerformanceModeEnabled`,null),e([c()],v.prototype,`columnReorderingEnabled`,null),e([c()],v.prototype,`dataProvider`,null),e([c()],v.prototype,`direction`,null),e([c()],v.prototype,`editingEnabled`,null),e([c()],v.prototype,`effectiveMultipleSelectionEnabled`,null),e([c()],v.prototype,`effectiveSize`,null),e([c()],v.prototype,`groupColumns`,null),e([c()],v.prototype,`hasInvalidColumnConfiguration`,null),e([c()],v.prototype,`highlightIds`,null),e([c()],v.prototype,`temporaryHighlightId`,null),e([c()],v.prototype,`isEditing`,null),e([c()],v.prototype,`isReady`,null),e([c()],v.prototype,`itemIdPath`,void 0),e([c()],v.prototype,`label`,null),e([c(),p(`esri/widgets/FeatureTable/t9n/FeatureTable`)],v.prototype,`messages`,void 0),e([c()],v.prototype,`multipleSelectionEnabled`,null),e([c()],v.prototype,`multipleSelectionEnabledOverride`,null),e([c()],v.prototype,`multiSortEnabled`,null),e([c()],v.prototype,`noDataMessage`,null),e([c()],v.prototype,`pageIndex`,null),e([c()],v.prototype,`multipleSortPriority`,null),e([c()],v.prototype,`pageSize`,null),e([c()],v.prototype,`paginationEnabled`,null),e([c()],v.prototype,`rowDetailsRenderer`,null),e([c()],v.prototype,`rowHighlightIds`,null),e([c()],v.prototype,`selectionColumnEnabled`,void 0),e([c()],v.prototype,`size`,null),e([c({readOnly:!0})],v.prototype,`sortOrders`,null),e([c()],v.prototype,`store`,null),e([c()],v.prototype,`state`,null),e([c()],v.prototype,`viewModel`,void 0),v=e([l(`esri.widgets.FeatureTable.Grid.Grid`)],v);const y=v;export{y as default};
2
+ import{__decorate as e}from"tslib";import"@vaadin/grid/vaadin-grid.js";import"@vaadin/grid/vaadin-grid-column-group.js";import"@vaadin/grid/vaadin-grid-selection-column.js";import"@vaadin/grid/vaadin-grid-sorter.js";import{isSome as t}from"../../../core/arrayUtils.js";import{on as n}from"../../../core/events.js";import{assertIsSome as r}from"../../../core/maybe.js";import{on as i,sync as a,watch as o}from"../../../core/reactiveUtils.js";import{renderingSanitizer as s}from"../../../core/sanitizerUtils.js";import{property as c,subclass as l}from"../../../core/accessorSupport/decorators.js";import u from"../../Widget.js";import d from"./GridViewModel.js";import{globalCss as f}from"../../support/globalCss.js";import{messageBundle as p,tsx as m}from"../../support/widget.js";const h=`esri-grid`,g={base:h,content:`${h}__content`,grid:`${h}__grid`,noDataMessage:`${h}__no-data-message`},_={sort:[`Enter`,` `]};let v=class extends u{constructor(e,t){super(e,t),this._columnElements=[],this._grid=null,this.itemIdPath=`objectId`,this.messages=null,this.selectionColumnEnabled=!0,this.viewModel=new d,this._onSelectedItemsChange=this._onSelectedItemsChange.bind(this)}initialize(){this.addHandles([this.columns.on(`before-changes`,()=>this.renderNow()),this.columns.on(`change`,()=>this.onColumnChange()),i(()=>this.highlightIds,`before-add`,({target:e})=>{!this.effectiveMultipleSelectionEnabled&&e.length&&e.removeAll()},a),this.rowHighlightIds.on(`change`,()=>this.generateCellPartNames()),o(()=>this.effectiveSize,()=>this._updateGridSize()),o(()=>[this.isEditing,this.store?.hasPendingEdits],()=>{this.generateCellPartNames(),this.requestContentUpdate()}),o(()=>this.store?.state,(e,t)=>{e===`ready`&&(t===`loaded`||t===`error`)&&this.refreshPageCache()}),i(()=>this._table,`scroll`,()=>this.viewModel.closeColumnMenus()),n(window,`resize`,()=>this._updateColumnBorderStyles()),i(()=>this._table,`scrollend`,()=>{this.paginationEnabled||(this.pageIndex=this.getVirtualPageIndex()),this._updateColumnBorderStyles()}),o(()=>this.effectiveMultipleSelectionEnabled,e=>{!e&&this.highlightIds.length>1&&this.highlightIds.removeAll()},a)])}destroy(){this.resetColumns(),this.columns.destroyed||this.columns.destroy()}resetColumns(){this.columns.drain(e=>!e.destroyed&&e.destroy())}get _columnRendering(){return this.columnPerformanceModeEnabled?`lazy`:`eager`}get _selectedItems(){let{highlightIds:e,store:t}=this;return e.toArray().map(e=>t?.getItemByObjectId(e)??{objectId:e})}get _gridIsDisabled(){return this.viewModel.allVisibleColumns.length===0||this.hasInvalidColumnConfiguration}get _noDataMessage(){return s.sanitize(this.noDataMessage)}get _table(){return this._grid?.$?.table}get cellPartNameGenerator(){return this.viewModel.cellPartNameGenerator}set cellPartNameGenerator(e){this.viewModel.cellPartNameGenerator=e}get columns(){return this.viewModel.columns}set columns(e){this.viewModel.columns=e}get columnPerformanceModeEnabled(){return this.viewModel.columnPerformanceModeEnabled}set columnPerformanceModeEnabled(e){this.viewModel.columnPerformanceModeEnabled=e}get columnReorderingEnabled(){return this.viewModel.columnReorderingEnabled}set columnReorderingEnabled(e){this.viewModel.columnReorderingEnabled=e}get dataProvider(){return this.viewModel.dataProvider}set dataProvider(e){this.viewModel.dataProvider=e}get direction(){return this.viewModel.direction}set direction(e){this.viewModel.direction=e}get editingEnabled(){return this.viewModel.editingEnabled}set editingEnabled(e){this.viewModel.editingEnabled=e}get effectiveMultipleSelectionEnabled(){return this.viewModel.effectiveMultipleSelectionEnabled}get effectiveSize(){return this.viewModel.effectiveSize}get groupColumns(){return this.viewModel.groupColumns}get hasInvalidColumnConfiguration(){return this.viewModel.hasInvalidColumnConfiguration}get highlightIds(){return this.viewModel.highlightIds}set highlightIds(e){this.viewModel.highlightIds=e}get temporaryHighlightId(){return this.viewModel.temporaryHighlightId}set temporaryHighlightId(e){this.viewModel.temporaryHighlightId=e}get isEditing(){return this.viewModel.isEditing}get isReady(){return!!this._grid}get label(){return this.messages?.widgetLabel??``}set label(e){this._overrideIfSome(`label`,e)}get multipleSelectionEnabled(){return this.viewModel.multipleSelectionEnabled}set multipleSelectionEnabled(e){this.viewModel.multipleSelectionEnabled=e}get multipleSelectionEnabledOverride(){return this.viewModel.multipleSelectionEnabledOverride}set multipleSelectionEnabledOverride(e){this.viewModel.multipleSelectionEnabledOverride=e}get multiSortEnabled(){return this.viewModel.multiSortEnabled}set multiSortEnabled(e){this.viewModel.multiSortEnabled=e}get noDataMessage(){return this.viewModel.noDataMessage}set noDataMessage(e){this.viewModel.noDataMessage=e}get pageIndex(){return this.viewModel.pageIndex}set pageIndex(e){this.viewModel.pageIndex=e}get multipleSortPriority(){return this.viewModel.multipleSortPriority}set multipleSortPriority(e){this.viewModel.multipleSortPriority=e}get pageSize(){return this.viewModel.pageSize}set pageSize(e){this.viewModel.pageSize=e}get paginationEnabled(){return this.viewModel.paginationEnabled}set paginationEnabled(e){this.viewModel.paginationEnabled=e}get rowDetailsRenderer(){return this.viewModel.rowDetailsRenderer}set rowDetailsRenderer(e){this.viewModel.rowDetailsRenderer=e}get rowHighlightIds(){return this.viewModel.rowHighlightIds}set rowHighlightIds(e){this.viewModel.rowHighlightIds=e}get size(){return this.viewModel.size}get sortOrders(){return this._grid?._sorters?this._grid._sorters.filter(e=>!!e&&e.path).map(({direction:e,path:t})=>({direction:e,path:t})):[]}get store(){return this.viewModel.store}get state(){return this.viewModel.state}addSorter(e){this._grid?.__updateSorter(e,!1,!1),this.notifyChange(`sortOrders`)}getColumnProps(e,t){let{id:n}=this,{autoWidth:r,direction:i,fieldName:a,flexGrow:o,frozen:s,frozenToEnd:c,hidden:l,label:u,resizable:d,textAlign:f,width:p}=e,m=`${n}_${a}_${t}`,{renderFunction:h,footerRenderFunction:g,headerRenderFunction:_}=e,v=g?(e,t)=>g({root:e,column:t}):void 0,y=_?(e,t)=>_({root:e,column:t}):void 0,b=h?(e,t,n)=>h({root:e,column:t,rowData:n}):void 0,x=``;return e.direction&&(x+=` direction`),e.invalid&&(x+=` invalid`),{footerRenderer:v,headerRenderer:y,renderer:b,autoWidth:r,direction:i,flexGrow:o,frozen:s,frozenToEnd:c,headerPartName:x,key:m,resizable:d,bind:this,"data-fieldName":a,header:u,hidden:this.hasInvalidColumnConfiguration||l,path:a,"text-align":f,width:typeof p==`number`?`${p}px`:p,afterCreate:this._afterColumnCreate,afterRemoved:this._afterColumnRemoved}}clearSelection(){this._clearSelection(),this.scheduleRender()}clearSort(){let e=!1;this._grid&&(this._grid._sorters?.length&&(this._grid._sorters.forEach(e=>{e._order=null,e.direction=null}),e=!0),this.columns.length&&this.columns.some(e=>!!e.direction)&&(this.columns.forEach(e=>e.direction=null),e=!0),e&&(this.notifyChange(`sortOrders`),this.scheduleRender()))}findColumn(e){return this.viewModel.findColumn(e)}generateCellPartNames(){this._grid?.generateCellPartNames()}getFirstVisibleRowIndex(){return this._grid?._firstVisibleIndex||0}getVirtualPageIndex(){return Math.floor(this.getFirstVisibleRowIndex()/this.pageSize)}getLastVisibleRowIndex(){return this._grid?._lastVisibleIndex||0}getVisibleItemsCount(){return this._grid?._visibleItemsCount||0}getRowContainingNode(e){try{return this._grid?._getRowContainingNode(e)}catch{return null}}getSlotElementByName(e){return this._grid?.shadowRoot?.querySelector(`slot[name='${e}']`)??null}hasSorter(e){return this._grid?._sorters?.includes(e)||!1}hideColumn(e){this.viewModel.hideColumn(e)}recalculateColumnWidths(){this._grid?.recalculateColumnWidths()}async reset(){this._clearSelection(),this.store?.reset(),this.scrollToTop()}refreshPageCache(){this._grid?.clearCache(),this.temporaryHighlightId=void 0}requestContentUpdate(){this._grid?.requestContentUpdate(),this.temporaryHighlightId=void 0}selectRows(e){let{itemIdPath:t}=this,n=(e?.filter(e=>!this.highlightIds.includes(e[t]))).map(e=>e[t]);n.length&&(this.effectiveMultipleSelectionEnabled||(this.highlightIds.removeAll(),n.splice(1)),this.highlightIds.addMany(n))}deselectRows(e){let{itemIdPath:t}=this,n=e?.map(e=>e[t])||[];n.length&&this.highlightIds.removeMany(n)}showColumn(e){this.viewModel.showColumn(e)}sort({path:e,direction:t}){this.viewModel.sortColumn(e,t),this.notifyChange(`sortOrders`)}scrollToIndex(e){this.size!==0&&(this._grid?.isConnected&&this._grid?.scrollToIndex(e),this.temporaryHighlightId=void 0)}scrollToTop(){this.scrollToIndex(0)}scrollToBottom(){this.scrollToIndex(1/0)}scrollLeft(e){let{_table:t}=this;t&&(t.scrollLeft=e)}toggleColumnVisibility(e){this.viewModel.toggleColumnVisibility(e)}onColumnChange(){this._columnElements.forEach(e=>this._applyRenderersToColumnElement(e)),this.requestContentUpdate()}render(){return m(`div`,{bind:this,class:this.classes(g.base,f.widget)},m(`div`,{bind:this,class:g.content},this._renderGrid()))}_renderGrid(){return m(`vaadin-grid`,{afterCreate:this._afterGridCreate,afterUpdate:this._afterGridUpdate,bind:this,cellPartNameGenerator:this.cellPartNameGenerator,class:g.grid,columnRendering:this._columnRendering,columnReorderingAllowed:this.columnReorderingEnabled,dataProvider:this.dataProvider,dir:this.direction,disabled:this._gridIsDisabled,id:`${this.id}_grid`,itemIdPath:this.itemIdPath,multiSort:this.multiSortEnabled,multiSortPriority:this.multipleSortPriority,pageSize:this.pageSize,ref:`grid`,rowDetailsRenderer:this.rowDetailsRenderer,selectedItems:this._selectedItems,size:this.effectiveSize},this._renderAllColumns(),this._renderEmptyState())}_renderAllColumns(){return this.state===`disabled`||!this.columns.length?null:[this._renderSelectionColumn(),this._renderColumns()]}_renderSelectionColumn(){return m(`vaadin-grid-selection-column`,{_selectAllHidden:!0,autoWidth:!1,bind:this,dragSelect:!0,frozen:!0,hidden:this.hasInvalidColumnConfiguration||!this.selectionColumnEnabled,selectAll:!1,sortable:!1,textAlign:`center`})}_renderColumns(){return this.columns.toArray().map((e,t)=>`columns`in e?this._renderGroupColumn(e,t):this._renderColumn(e,t)).filter(t)}_renderColumn(e,t){let n=this.getColumnProps(e,t);if(!n.hidden)return m(`vaadin-grid-column`,{...n})}_renderGroupColumn(e,t){let n=this.getColumnProps(e,t);return n.hidden||!e.effectiveVisible?null:m(`vaadin-grid-column-group`,{...n},e.visibleChildColumns.map(e=>m(`vaadin-grid-column`,{...this.getColumnProps(e,t)})))}_renderEmptyState(){let e=this.viewModel;if(!(e.state!==`loaded`||e.isQueryingOrSyncing))return m(`div`,{class:g.noDataMessage,slot:`empty-state`},this._noDataMessage??this.messages.noDataFound)}_afterGridCreate(e){let t=this._grid=e;customElements.whenDefined(`vaadin-grid`).then(()=>{this._addGridEventListeners()}),t.__updateSorter=(e,n,r)=>{let{multiSort:i,multiSortOnShiftClick:a,multiSortPriority:o}=t,s=e._initialOrder,c=t._sorters.find(t=>t.path===e.path),l=t._sorters.filter(t=>t.path!==e.path),u=i&&(!a||!r)||a&&n;e._order=null,e.direction?u?s==null?o===`append`&&!c?t._sorters=[...l,e]:o===`prepend`&&(t._sorters=[e,...l]):(l.splice(s,0,e),t._sorters=[...l],e._initialOrder=null):(e.direction||a)&&(t._sorters=e.direction?[e]:[],l.forEach(e=>{e._order=null,e.direction=null})):c&&(t._sorters=[...l])},t.__removeSorters=e=>{if(e.length===0)return;let n=new Set(e.filter(e=>!e.direction));t._sorters=t._sorters.filter(e=>!n.has(e)),t.__applySorters()}}_afterGridUpdate(e){this._grid||=e}_afterColumnCreate(e){this._columnElements.push(e)}_afterColumnRemoved(e){let t=this._columnElements.indexOf(e,0);t>-1&&this._columnElements.splice(t,1)}_updateGridSize(){this._grid&&(this._grid.size=this.effectiveSize,this.scheduleRender())}_addGridEventListeners(){let e=this._grid;r(e),this.addHandles([n(e,[`click`,`dblclick`,`keydown`,`pointerover`,`pointerout`],e=>this._onGridInteraction(e)),n(e,[`pointerover`,`pointerout`,`cell-focus`],e=>this._onTransientGridInteraction(e)),n(e,`selected-items-changed`,this._onSelectedItemsChange),n(e,`sorter-changed`,()=>{this.notifyChange(`sortOrders`),this._updateColumnBorderStyles()}),n(e,`column-resize`,e=>{let t=e.detail.resizedColumn,n=t.getAttribute(`data-fieldName`);this.findColumn(n)?.set({width:t.width}),this._updateColumnBorderStyles()}),n(e,`column-reorder`,()=>this._onColumnOrderChange())])}_onGridInteraction(e){let t=this._grid;if(r(t),(e.type===`pointerover`||e.type===`pointerout`)&&e.relatedTarget!==t){let{target:t,relatedTarget:n}=e;if(!(this._isGridCellContentNode(t)&&this._isGridCellContentNode(n)))return}let n=null;try{n=t.getEventContext(e)}catch{}if(!n)return;let{column:i,index:a,item:o,section:s}=n;if(!s)return;if(s===`header`&&e.type===`keydown`&&i?.path){let t=e.key;_.sort.includes(t)&&this.findColumn(i.path)?.sort()}let c=`cell-${e.type}`;this.emit(c,{type:c,context:n,index:a,item:o,native:e,path:i?.path??void 0})}_onTransientGridInteraction(e){if(e.type===`pointerout`){this.temporaryHighlightId=void 0;return}let t=this._grid;if(t)try{this.temporaryHighlightId=t.getEventContext(e)?.item?.objectId??void 0}catch{this.temporaryHighlightId=void 0}}_isGridCellContentNode(e){return!!(e&&e instanceof HTMLElement&&e.localName===`vaadin-grid-cell-content`)}_onColumnOrderChange(){let e=this._grid;r(e);let t=e._getColumnsInOrder(0),n=[],i=(this.viewModel.groupColumns.length?e._getColumnsInOrder(1):t).map(e=>e.getAttribute(`data-fieldName`));t?.forEach(e=>{let t=e.getAttribute(`data-fieldName`);if(t!=null){let e=this.findColumn(t);n.push(t),e&&`columns`in e&&e.columns?.length&&e.columns.sort((e,t)=>i.indexOf(e.fieldName)>i.indexOf(t.fieldName)?1:-1)}}),this.columns.sort((e,t)=>n.indexOf(e.fieldName)>n.indexOf(t.fieldName)?1:-1),this.notifyChange(`sortOrders`),this.emit(`column-reorder`,{type:`column-reorder`})}_clearSelection(){this.highlightIds.removeAll(),this.temporaryHighlightId=void 0}_onSelectedItemsChange(e){let{highlightIds:t,itemIdPath:n}=this,r=e.detail.value.map(e=>e[n]),i=r.filter(e=>!t.includes(e));if(!this.effectiveMultipleSelectionEnabled&&i.length&&t.length)t.removeAll(),t.add(i[0]);else{let e=t.filter(e=>!r.includes(e));t.removeMany(e),t.addMany(i)}}_applyRenderersToColumnElement(e){let t=e?.path,n=t==null?void 0:this.findColumn(t);if(n)try{let{renderFunction:t,footerRenderFunction:r,headerRenderFunction:i}=n;t&&`renderer`in e&&(e.renderer=(e,n,r)=>t({root:e,column:n,rowData:r})),r&&(e.footerRenderer=(e,t)=>r({root:e,column:t})),i&&(e.headerRenderer=(e,t)=>i({root:e,column:t}))}catch{}}_updateColumnBorderStyles(){try{this._grid?._updateFirstAndLastColumn()}catch{}}};e([c()],v.prototype,`_columnElements`,void 0),e([c()],v.prototype,`_columnRendering`,null),e([c()],v.prototype,`_selectedItems`,null),e([c()],v.prototype,`_grid`,void 0),e([c()],v.prototype,`_gridIsDisabled`,null),e([c()],v.prototype,`_noDataMessage`,null),e([c()],v.prototype,`_table`,null),e([c()],v.prototype,`cellPartNameGenerator`,null),e([c()],v.prototype,`columns`,null),e([c()],v.prototype,`columnPerformanceModeEnabled`,null),e([c()],v.prototype,`columnReorderingEnabled`,null),e([c()],v.prototype,`dataProvider`,null),e([c()],v.prototype,`direction`,null),e([c()],v.prototype,`editingEnabled`,null),e([c()],v.prototype,`effectiveMultipleSelectionEnabled`,null),e([c()],v.prototype,`effectiveSize`,null),e([c()],v.prototype,`groupColumns`,null),e([c()],v.prototype,`hasInvalidColumnConfiguration`,null),e([c()],v.prototype,`highlightIds`,null),e([c()],v.prototype,`temporaryHighlightId`,null),e([c()],v.prototype,`isEditing`,null),e([c()],v.prototype,`isReady`,null),e([c()],v.prototype,`itemIdPath`,void 0),e([c()],v.prototype,`label`,null),e([c(),p(`esri/widgets/FeatureTable/t9n/FeatureTable`)],v.prototype,`messages`,void 0),e([c()],v.prototype,`multipleSelectionEnabled`,null),e([c()],v.prototype,`multipleSelectionEnabledOverride`,null),e([c()],v.prototype,`multiSortEnabled`,null),e([c()],v.prototype,`noDataMessage`,null),e([c()],v.prototype,`pageIndex`,null),e([c()],v.prototype,`multipleSortPriority`,null),e([c()],v.prototype,`pageSize`,null),e([c()],v.prototype,`paginationEnabled`,null),e([c()],v.prototype,`rowDetailsRenderer`,null),e([c()],v.prototype,`rowHighlightIds`,null),e([c()],v.prototype,`selectionColumnEnabled`,void 0),e([c()],v.prototype,`size`,null),e([c({readOnly:!0})],v.prototype,`sortOrders`,null),e([c()],v.prototype,`store`,null),e([c()],v.prototype,`state`,null),e([c()],v.prototype,`viewModel`,void 0),v=e([l(`esri.widgets.FeatureTable.Grid.Grid`)],v);const y=v;export{y as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{pt2px as e}from"../../../../core/screenUtils.js";import"../../../../libs/maquette/projection.js";import{createProjector as t}from"../../../../libs/maquette/projector.js";import{isNumber as n}from"../../../../support/guards.js";import{renderColorRampPreviewHTML as r}from"../../../../symbols/support/symbolUtils.js";import{tsx as i}from"../../../support/widget.js";const a=t(),o={univariateAboveAndBelowSymbol:`esri-univariate-above-and-below-ramp__symbol`,colorRamp:`esri-legend__color-ramp`};function s(e=`vertical`){let t=`stroke:rgb(200, 200, 200);stroke-width:1`;return e===`vertical`?i(`svg`,{height:`4`,width:`10`},i(`line`,{style:t,x1:`0`,x2:`10`,y1:`2`,y2:`2`})):i(`svg`,{height:`10`,width:`10`},i(`line`,{style:t,x1:`5`,x2:`5`,y1:`0`,y2:`10`}))}function c(e,t=`vertical`){let n=document.createElement(`div`);return n.style.height=`20px`,n.className=o.univariateAboveAndBelowSymbol,e!=null&&(n.style.opacity=e.toString()),a.append(n,s.bind(null,t)),n}function l(t,r,i=`vertical`,a){t.infos.forEach((t,s)=>{if(a&&s===2)t.preview=c(r,i);else{let r=(n(t.size)?e(t.size):0)+(i===`horizontal`?20:10),a=t.preview,s=a?.tagName.toLowerCase()===`div`,c=s?a:document.createElement(`div`);c.className=o.univariateAboveAndBelowSymbol,i===`horizontal`?c.style.width=`${r}px`:c.style.height=`${r}px`,!s&&a&&c.appendChild(a),t.preview=c}})}function u(t,r=`classic`){let i=t.infos,a=i.at(0),o=i.at(-1),s=n(a.size)?e(a.size):0,c=n(o.size)?e(o.size):0;return r===`classic`?(s+10)/2:(s-c)/2}function d(e,t){if(!e)return null;let n=e.infos.map(e=>e.color),i=r(t.type===`full`?n:t.type===`above`?n.slice(0,3):n.slice(2,5),{width:t.width,height:t.height,align:t.rampAlignment,cssEffectFilter:t.cssEffectFilter,ariaLabel:t.ariaLabel});return i.className=o.colorRamp,t.opacity!=null&&(i.style.opacity=t.opacity.toString()),i}function f(t,r,i,a=`vertical`){let o=0,s=t.infos,c=Math.floor(s.length/2),l=r===`full`||r===`above`?0:c,u=r===`full`||r===`below`?s.length-1:c;for(let t=l;t<=u;t++)if(i&&t===c)o+=a===`horizontal`?10:20;else{let r=s[t].size,i=(n(r)?e(r):0)+(a===`horizontal`?20:10);o+=i}return Math.round(o)}function p(t,r,i,a=`vertical`){let o=f(t,r,i,a),s=t.infos,c=Math.floor(s.length/2),l=r===`full`||r===`above`?0:c,u=r===`full`||r===`below`?s.length-1:c,d=n(s[l].size)?s[l].size:0,p=n(s[u].size)?s[u].size:0,m=r===`full`?d+p:r===`above`?d:p,h=i?a===`vertical`?20:10:0,g=a===`vertical`?10*(r===`full`?2:1):20*(r===`full`?2:1);return Math.round(o-(e(m)/2+h/2+g/2))}function m(e,t,n=`vertical`){let r=e.infos,i=r.find(({type:e})=>e===`size-ramp`),a=r.find(({type:e})=>e===`color-ramp`);return i&&(i={...i},i.infos=[...i.infos],l(i,t,n,!0)),a&&(a={...a},a.infos=[...a.infos]),n===`horizontal`&&(i?.infos.reverse(),a?.infos.reverse()),{sizeRampElement:i,colorRampElement:a}}function h(e,t=`vertical`){let n=e.infos,r=n.find(({type:e})=>e===`size-ramp`),i=n.find(({type:e})=>e===`color-ramp`);return r&&(r={...r},r.infos=[...r.infos],l(r,null,t,!1)),i&&(i={...i},i.infos=[...i.infos]),t===`horizontal`&&(r?.infos.reverse(),i?.infos.reverse()),{sizeRampElement:r,colorRampElement:i}}const g={marginLeft:`3px`},_={display:`table-cell`,verticalAlign:`middle`},v={display:`flex`,alignItems:`flex-start`};export{m as getUnivariateAboveAndBelowRampElements,u as getUnivariateColorRampMargin,d as getUnivariateColorRampPreview,p as getUnivariateColorRampSize,h as getUnivariateColorSizeRampElements,f as getUnivariateSizeRampSize,g as univariateColorRampContainerStyles,_ as univariateColorRampStyles,v as univariateRampContainerStyles};
2
+ import{renderingSanitizerOptions as e}from"../../../../core/sanitizerUtils.js";import{pt2px as t}from"../../../../core/screenUtils.js";import{isNumber as n}from"../../../../support/guards.js";import{renderColorRampPreviewHTML as r}from"../../../../symbols/support/symbolUtils.js";import{tsx as i}from"../../../support/widget.js";import{c as a}from"../../../../chunks/projector.js";const o=a(e),s={univariateAboveAndBelowSymbol:`esri-univariate-above-and-below-ramp__symbol`,colorRamp:`esri-legend__color-ramp`};function c(e=`vertical`){let t=`stroke:rgb(200, 200, 200);stroke-width:1`;return e===`vertical`?i(`svg`,{height:`4`,width:`10`},i(`line`,{style:t,x1:`0`,x2:`10`,y1:`2`,y2:`2`})):i(`svg`,{height:`10`,width:`10`},i(`line`,{style:t,x1:`5`,x2:`5`,y1:`0`,y2:`10`}))}function l(e,t=`vertical`){let n=document.createElement(`div`);return n.style.height=`20px`,n.className=s.univariateAboveAndBelowSymbol,e!=null&&(n.style.opacity=e.toString()),o.append(n,c.bind(null,t)),n}function u(e,r,i=`vertical`,a){e.infos.forEach((e,o)=>{if(a&&o===2)e.preview=l(r,i);else{let r=(n(e.size)?t(e.size):0)+(i===`horizontal`?20:10),a=e.preview,o=a?.tagName.toLowerCase()===`div`,c=o?a:document.createElement(`div`);c.className=s.univariateAboveAndBelowSymbol,i===`horizontal`?c.style.width=`${r}px`:c.style.height=`${r}px`,!o&&a&&c.appendChild(a),e.preview=c}})}function d(e,r=`classic`){let i=e.infos,a=i.at(0),o=i.at(-1),s=n(a.size)?t(a.size):0,c=n(o.size)?t(o.size):0;return r===`classic`?(s+10)/2:(s-c)/2}function f(e,t){if(!e)return null;let n=e.infos.map(e=>e.color),i=r(t.type===`full`?n:t.type===`above`?n.slice(0,3):n.slice(2,5),{width:t.width,height:t.height,align:t.rampAlignment,cssEffectFilter:t.cssEffectFilter,ariaLabel:t.ariaLabel});return i.className=s.colorRamp,t.opacity!=null&&(i.style.opacity=t.opacity.toString()),i}function p(e,r,i,a=`vertical`){let o=0,s=e.infos,c=Math.floor(s.length/2),l=r===`full`||r===`above`?0:c,u=r===`full`||r===`below`?s.length-1:c;for(let e=l;e<=u;e++)if(i&&e===c)o+=a===`horizontal`?10:20;else{let r=s[e].size,i=(n(r)?t(r):0)+(a===`horizontal`?20:10);o+=i}return Math.round(o)}function m(e,r,i,a=`vertical`){let o=p(e,r,i,a),s=e.infos,c=Math.floor(s.length/2),l=r===`full`||r===`above`?0:c,u=r===`full`||r===`below`?s.length-1:c,d=n(s[l].size)?s[l].size:0,f=n(s[u].size)?s[u].size:0,m=r===`full`?d+f:r===`above`?d:f,h=i?a===`vertical`?20:10:0,g=a===`vertical`?10*(r===`full`?2:1):20*(r===`full`?2:1);return Math.round(o-(t(m)/2+h/2+g/2))}function h(e,t,n=`vertical`){let r=e.infos,i=r.find(({type:e})=>e===`size-ramp`),a=r.find(({type:e})=>e===`color-ramp`);return i&&(i={...i},i.infos=[...i.infos],u(i,t,n,!0)),a&&(a={...a},a.infos=[...a.infos]),n===`horizontal`&&(i?.infos.reverse(),a?.infos.reverse()),{sizeRampElement:i,colorRampElement:a}}function g(e,t=`vertical`){let n=e.infos,r=n.find(({type:e})=>e===`size-ramp`),i=n.find(({type:e})=>e===`color-ramp`);return r&&(r={...r},r.infos=[...r.infos],u(r,null,t,!1)),i&&(i={...i},i.infos=[...i.infos]),t===`horizontal`&&(r?.infos.reverse(),i?.infos.reverse()),{sizeRampElement:r,colorRampElement:i}}const _={marginLeft:`3px`},v={display:`table-cell`,verticalAlign:`middle`},y={display:`flex`,alignItems:`flex-start`};export{h as getUnivariateAboveAndBelowRampElements,d as getUnivariateColorRampMargin,f as getUnivariateColorRampPreview,m as getUnivariateColorRampSize,g as getUnivariateColorSizeRampElements,p as getUnivariateSizeRampSize,_ as univariateColorRampContainerStyles,v as univariateColorRampStyles,y as univariateRampContainerStyles};