@arcgis/core 5.2.0-next.93 → 5.2.0-next.95

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 (190) hide show
  1. package/arcade/arcadeAsyncRuntime.js +1 -1
  2. package/arcade/arcadeCompiler.js +1 -1
  3. package/arcade/functions/portal.js +2 -0
  4. package/arcade/treeAnalysis.js +1 -1
  5. package/assets/esri/core/workers/RemoteClient.js +1 -1
  6. package/assets/esri/core/workers/chunks/{c4a0d3149947a1d2c484.js → 05662a663f761dd3dea5.js} +1 -1
  7. package/assets/esri/core/workers/chunks/0be98adfef79fc5036f0.js +1 -0
  8. package/assets/esri/core/workers/chunks/0df9864ecebe6a2b973f.js +1 -0
  9. package/assets/esri/core/workers/chunks/10c13c36c42c5ac41d12.js +1 -0
  10. package/assets/esri/core/workers/chunks/{e50adcfb392adfb3f79c.js → 1b311ff39dede07865df.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{188c6ff5f4664827c254.js → 1c803eef9a8fdabc61e3.js} +2 -2
  12. package/assets/esri/core/workers/chunks/1d7f633f158062eb3f64.js +1 -0
  13. package/assets/esri/core/workers/chunks/1f047dd747e7c1916dc7.js +1684 -0
  14. package/assets/esri/core/workers/chunks/2524e2385f61a6898411.js +1 -0
  15. package/assets/esri/core/workers/chunks/26737d061c7cfbbab95c.js +1 -0
  16. package/assets/esri/core/workers/chunks/{91de343844ac578e7c93.js → 2b6d261fe79fe186fb22.js} +1 -1
  17. package/assets/esri/core/workers/chunks/{8a87e1a89a0d8c6203a7.js → 2e51764c8aa31096cb2a.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{da8a314800944706511b.js → 36e35a8067b18f59cc05.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{d270b49c037085503016.js → 3a9435569ba460ff7e3d.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{5d9c92c4e60a4696fdad.js → 471027e4280bd51167b0.js} +1 -1
  21. package/assets/esri/core/workers/chunks/4c088c26d5d546c95c90.js +1 -0
  22. package/assets/esri/core/workers/chunks/{e594b6db9caee1f7b9fc.js → 4d700cb028f6306b163e.js} +1 -1
  23. package/assets/esri/core/workers/chunks/5168bd8ab6233dc9c32a.js +1 -0
  24. package/assets/esri/core/workers/chunks/{cd02a6078443b8f63927.js → 5b8591486f33627f5389.js} +1 -1
  25. package/assets/esri/core/workers/chunks/5d6733dcee9c2ef00072.js +1 -0
  26. package/assets/esri/core/workers/chunks/{a89dbef8155d7c4354da.js → 5edf77618ca51819d7c4.js} +2 -2
  27. package/assets/esri/core/workers/chunks/6057a79c68c33ee4a193.js +1 -0
  28. package/assets/esri/core/workers/chunks/{48726010778d6004e347.js → 63127e3b22e7eac6003d.js} +2 -2
  29. package/assets/esri/core/workers/chunks/{ff83d0337ac489ab08de.js → 678585509706755c0434.js} +2 -2
  30. package/assets/esri/core/workers/chunks/{2754ba5cc094028a7a3c.js → 691e9cc541cfaebe1776.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{32f11b4aeae1ef00e466.js → 6baae3e856d904fef9b1.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{aed7b80145b22c246098.js → 6cbc30b31f0bb39c73ca.js} +1 -1
  33. package/assets/esri/core/workers/chunks/6cc03ef97d7731153b9a.js +1 -0
  34. package/assets/esri/core/workers/chunks/{d44338bf5edafa3ca926.js → 6f01bd01b13662eb3bd7.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{76e7d3cde2da4bdd7820.js → 74cd9df85c4560bb8e52.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{97e41500fc2d24a88938.js → 7b70d6fdfa7a19ffffb0.js} +1 -1
  37. package/assets/esri/core/workers/chunks/7bb3411a86cdd736d555.js +1 -0
  38. package/assets/esri/core/workers/chunks/7ddb5800777fbecee3a8.js +1 -0
  39. package/assets/esri/core/workers/chunks/7eae9053065d3d38e54e.js +1 -0
  40. package/assets/esri/core/workers/chunks/7efc51324cfc8e08c756.js +1 -0
  41. package/assets/esri/core/workers/chunks/{e90076ac1cf88a83a7f9.js → 80f38ab2b7ae61e6f301.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{5aa23b0f4521ba9a07ad.js → 854f42f16fdb40000aae.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{24c44541046576fee7e0.js → 87094044458b0ea5cb0f.js} +2 -2
  44. package/assets/esri/core/workers/chunks/909ee7d2a0eec773037a.js +1 -0
  45. package/assets/esri/core/workers/chunks/92a6559a6999b26362d7.js +1 -0
  46. package/assets/esri/core/workers/chunks/{3a65693964e3976d8035.js → 9df38cadebf8e6fd746c.js} +1 -1
  47. package/assets/esri/core/workers/chunks/a0eb882a5a81d25b9153.js +1 -0
  48. package/assets/esri/core/workers/chunks/{20f6e681ccd8bf884b77.js → a72983c3621810d4b1af.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{9226205850e35b7fc610.js → a8aa8cb60b30f0983e7e.js} +1 -1
  50. package/assets/esri/core/workers/chunks/a8e9aa5461c71c88e2e5.js +1 -0
  51. package/assets/esri/core/workers/chunks/{1ab8307ba9981124f669.js → af6b9fd77b1792fbb66e.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{19e93d4d37018e3ee849.js → b102ae764c14d8b32ace.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{1554feab934e8e1bcd28.js → b333de4dea14c5db0a4d.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{d7d5275d8b3c9430de1f.js → b7c0da9d255d5e48320d.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{6b9dbf43c0659e55c539.js → be0417df35a7d99af675.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{a46ac0be9aabc4cfedc7.js → cc3186dcbbf5edff8b9e.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{6fd0d9431b141f2a3252.js → cefb70d633c220cbedf9.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{69c9a12c97ead8963817.js → d1304d414b1fa725168a.js} +1 -1
  59. package/assets/esri/core/workers/chunks/d453627894e6e5b02023.js +1 -0
  60. package/assets/esri/core/workers/chunks/e4380706b629729f2212.js +1 -0
  61. package/assets/esri/core/workers/chunks/e5b6fa57cc4028fbd401.js +1 -0
  62. package/assets/esri/core/workers/chunks/e7fdad0c07beb3614b60.js +1 -0
  63. package/assets/esri/core/workers/chunks/ea1877ce00da3b585a30.js +1 -0
  64. package/assets/esri/core/workers/chunks/{0336f4f8498a22347720.js → ea5ee1b12b43594592a0.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{c4fef90cf08bbe4f0bb5.js → eafc591e1a98000d54ef.js} +1 -1
  66. package/assets/esri/core/workers/chunks/f331c24247d132589859.js +1 -0
  67. package/assets/esri/core/workers/chunks/f5867d8ba73c67ac27d2.js +1 -0
  68. package/assets/esri/core/workers/chunks/{b7ed5f130661e9ca00b9.js → f5a058a0ce006bce2a2a.js} +1 -1
  69. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  70. package/chunks/{GlowBlur.glsl.js → BlurEmission.glsl.js} +3 -3
  71. package/chunks/EmissionComposite.glsl.js +3 -3
  72. package/chunks/Fog.glsl.js +8 -6
  73. package/chunks/RibbonLine.glsl.js +52 -52
  74. package/chunks/bundle.js +1 -1
  75. package/chunks/portal.js +2 -0
  76. package/config.js +1 -1
  77. package/core/timeUtils.d.ts +62 -0
  78. package/core/timeUtils.js +1 -1
  79. package/kernel.js +1 -1
  80. package/layers/AnnotationFeatureLayer.d.ts +0 -1
  81. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  82. package/layers/support/AnnotationFeatureSublayer.js +1 -1
  83. package/libs/parquet/parquet.js +1 -1
  84. package/package.json +3 -3
  85. package/rest/imageService/fetchRasterInfo.js +1 -1
  86. package/support/revision.js +1 -1
  87. package/symbols/cim/types.d.ts +2 -1
  88. package/views/2d/engine/Stage.js +1 -1
  89. package/views/2d/engine/vectorTiles/SpriteMosaic.js +1 -1
  90. package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
  91. package/views/2d/engine/webgl/Painter.js +1 -1
  92. package/views/2d/engine/webgl/SpriteMosaic.js +1 -1
  93. package/views/2d/engine/webgl/shaderGraph/techniques/Technique.js +1 -1
  94. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapTechnique.js +1 -1
  95. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelTechnique.js +1 -1
  96. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileDebugInfoTechnique.js +1 -1
  97. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileStencilTechnique.js +1 -1
  98. package/views/2d/layers/AnnotationFeatureLayerView2D.js +1 -1
  99. package/views/2d/layers/features/FeatureContainer.js +1 -1
  100. package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
  101. package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
  102. package/views/2d/layers/graphics/GraphicContainer.js +1 -1
  103. package/views/2d/layers/graphics/HighlightGraphicContainer.js +1 -1
  104. package/views/3d/environment/CloudyWeather.js +1 -1
  105. package/views/3d/environment/SunnyWeather.js +1 -1
  106. package/views/3d/layers/I3SMeshView3D.js +1 -1
  107. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  108. package/views/3d/state/ViewStateManager.js +1 -1
  109. package/views/3d/support/GaussianSplatSortWorker.js +1 -1
  110. package/views/3d/support/buffer/InterleavedLayout.js +1 -1
  111. package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
  112. package/views/3d/terrain/TileCompositor.js +1 -1
  113. package/views/3d/webgl/RenderCamera.js +1 -1
  114. package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js +1 -1
  115. package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +1 -5
  116. package/views/3d/webgl-engine/effects/clouds/CloudsParameters.js +1 -1
  117. package/views/3d/webgl-engine/effects/clouds/CloudsPresets.js +1 -1
  118. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  119. package/views/3d/webgl-engine/effects/fog/Fog.glsl.js +1 -1
  120. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  121. package/views/3d/webgl-engine/effects/fog/FogTechnique.js +1 -1
  122. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  123. package/views/3d/webgl-engine/effects/glow/{GlowBlur.glsl.js → BlurEmission.glsl.js} +1 -1
  124. package/views/3d/webgl-engine/effects/glow/BlurEmission.js +2 -0
  125. package/views/3d/webgl-engine/effects/glow/BlurEmissionTechnique.js +2 -0
  126. package/views/3d/webgl-engine/effects/glow/applyEmissiveGlow.glsl.js +37 -0
  127. package/views/3d/webgl-engine/effects/shadowAccumulation/ShadowAccumulator.js +1 -1
  128. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  129. package/views/3d/webgl-engine/lib/BufferGeometry.js +2 -0
  130. package/views/3d/webgl-engine/lib/EmissionComposite.glsl.js +1 -1
  131. package/views/3d/webgl-engine/lib/EmissionComposite.js +1 -1
  132. package/views/3d/webgl-engine/lib/EmissionCompositeTechnique.js +1 -1
  133. package/views/3d/webgl-engine/lib/Geometry.js +1 -1
  134. package/views/3d/webgl-engine/lib/GeometryBaseInstance.js +1 -1
  135. package/views/3d/webgl-engine/lib/MainFramebuffer.js +1 -1
  136. package/views/3d/webgl-engine/lib/RenderContext.js +1 -1
  137. package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
  138. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  139. package/views/3d/webgl-engine/lib/RenderingContext.js +1 -1
  140. package/views/3d/webgl-engine/lib/rendererUtils.js +1 -1
  141. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  142. package/views/3d/webgl-engine/materials/renderers/Instance.js +1 -1
  143. package/views/3d/webgl-engine/materials/renderers/MergedBuffer.js +1 -1
  144. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  145. package/views/3d/webgl-engine/materials/renderers/VaoWriter.js +1 -1
  146. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  147. package/views/3d/webgl-engine/shaders/EmissiveTechniqueConfiguration.js +1 -1
  148. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  149. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  150. package/views/3d/webgl-engine/shaders/floatBlendScale.glsl.js +1 -1
  151. package/views/SceneView.d.ts +1 -0
  152. package/views/SceneView.js +1 -1
  153. package/views/popupAdapter.js +1 -1
  154. package/assets/esri/core/workers/chunks/0846855843f85661e974.js +0 -1
  155. package/assets/esri/core/workers/chunks/15f4f7e34e14e3cf52e6.js +0 -1
  156. package/assets/esri/core/workers/chunks/19ab024f6f732fd6c69b.js +0 -1
  157. package/assets/esri/core/workers/chunks/22c94f9a69b2157f8dbd.js +0 -1
  158. package/assets/esri/core/workers/chunks/2ec44ebc48beeba11201.js +0 -1
  159. package/assets/esri/core/workers/chunks/30376f00cda1165a2504.js +0 -1
  160. package/assets/esri/core/workers/chunks/349b0c7febc46267441d.js +0 -1684
  161. package/assets/esri/core/workers/chunks/423c2692df662b3dddd4.js +0 -1
  162. package/assets/esri/core/workers/chunks/46f8c7ae7fb356c3410d.js +0 -1
  163. package/assets/esri/core/workers/chunks/4bf7c0c874d30b1c0760.js +0 -1
  164. package/assets/esri/core/workers/chunks/5bf2ce280ea35ea4c96b.js +0 -1
  165. package/assets/esri/core/workers/chunks/7253a439c98200e3e748.js +0 -1
  166. package/assets/esri/core/workers/chunks/75b90fb05e4a2d32b7bb.js +0 -1
  167. package/assets/esri/core/workers/chunks/7e41cee4a0ae75e1490d.js +0 -1
  168. package/assets/esri/core/workers/chunks/848a9f0e5373bbf289a5.js +0 -1
  169. package/assets/esri/core/workers/chunks/95a3f09751bff63f4fab.js +0 -1
  170. package/assets/esri/core/workers/chunks/98d614d6fc9de8ebaf94.js +0 -1
  171. package/assets/esri/core/workers/chunks/b2e2234fdf8e05bc3312.js +0 -1
  172. package/assets/esri/core/workers/chunks/bb23e670736bcace8b6f.js +0 -1
  173. package/assets/esri/core/workers/chunks/bdfffa5f88b559a4b42d.js +0 -1
  174. package/assets/esri/core/workers/chunks/c352696478b48a2090d5.js +0 -1
  175. package/assets/esri/core/workers/chunks/c91042f8bf886056a29c.js +0 -1
  176. package/assets/esri/core/workers/chunks/d58d6b55b2749a535eb3.js +0 -1
  177. package/assets/esri/core/workers/chunks/ec69dd546c312ba97110.js +0 -1
  178. package/assets/esri/core/workers/chunks/f247f3c5148fa0237a7c.js +0 -1
  179. package/assets/esri/core/workers/chunks/f4d351b4cd9d1aa10632.js +0 -1
  180. package/assets/esri/core/workers/chunks/fbc7576ed12964059da6.js +0 -1
  181. package/chunks/GlowComposite.glsl.js +0 -37
  182. package/views/3d/webgl-engine/effects/glow/Glow.js +0 -2
  183. package/views/3d/webgl-engine/effects/glow/GlowBlurTechnique.js +0 -2
  184. package/views/3d/webgl-engine/effects/glow/GlowComposite.glsl.js +0 -2
  185. package/views/3d/webgl-engine/effects/glow/GlowCompositeTechnique.js +0 -2
  186. /package/assets/esri/core/workers/chunks/{188c6ff5f4664827c254.js.LICENSE.txt → 1c803eef9a8fdabc61e3.js.LICENSE.txt} +0 -0
  187. /package/assets/esri/core/workers/chunks/{a89dbef8155d7c4354da.js.LICENSE.txt → 5edf77618ca51819d7c4.js.LICENSE.txt} +0 -0
  188. /package/assets/esri/core/workers/chunks/{48726010778d6004e347.js.LICENSE.txt → 63127e3b22e7eac6003d.js.LICENSE.txt} +0 -0
  189. /package/assets/esri/core/workers/chunks/{ff83d0337ac489ab08de.js.LICENSE.txt → 678585509706755c0434.js.LICENSE.txt} +0 -0
  190. /package/assets/esri/core/workers/chunks/{24c44541046576fee7e0.js.LICENSE.txt → 87094044458b0ea5cb0f.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../core/Error.js";import has from"../../../core/has.js";import{removeMaybe as r}from"../../../core/maybe.js";import{addFrameTask as s}from"../../../core/scheduling.js";import{signal as i}from"../../../core/signal.js";import{property as n}from"../../../core/accessorSupport/decorators.js";import{create as a}from"../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{CIMAnalyzer as o}from"../../../symbols/cim/cimAnalyzer.js";import{LabelManager as h}from"../LabelManager.js";import{Container as d}from"./Container.js";import{ThrottledCanvas as l}from"./ThrottledCanvas.js";import{MAX_TILE_RESHUFFLES_PER_FRAME as m}from"./webgl/definitions.js";import c from"./webgl/Painter.js";import{Profiler as u}from"./webgl/Profiler.js";import{TileReshuffleManager as p}from"./webgl/TileReshuffleManager.js";import{startup as f,shutdown as g}from"./webgl/shaderGraph/techniques/TechniqueRegistry.js";import{MeshWriterRegistry as _}from"./webgl/shaderGraph/techniques/mesh/MeshWriterRegistry.js";import{FeatureContainer as b}from"../layers/features/FeatureContainer.js";import{Timeline as w}from"../support/Timeline.js";import{SizedPixelFormat as R,SizedDepthStencilFormat as y,PixelType as x}from"../../webgl/enums.js";import{DisposableFramebufferObject as C}from"../../webgl/FramebufferObject.js";import{RenderbufferDescriptor as j}from"../../webgl/RenderbufferDescriptor.js";import{RenderingContext as P}from"../../webgl/RenderingContext.js";import{RenderingContextOptions as T}from"../../webgl/RenderingContextOptions.js";import{TextureDescriptor as M}from"../../webgl/TextureDescriptor.js";const q=2e3;class v extends d{constructor(e,r){super(),this._trash=new Set,this._renderRemainingTime=0,this._lastFrameRenderTime=0,this._stationary=!0,this._animationsEnabled=!0,this._renderRequested=i(!1),this._reshuffleManager=new p,this.stage=this,this.meshWriterRegistry=new _,this.labelManager=new h({featuresTilingScheme:r.featuresTilingScheme}),this._throttledCanvas=new l(e),this.context=new P(this._throttledCanvas.gl,r.contextOptions??new T),this.painter=new c(this.context,this),this._cimAnalyzer=new o(this.painter.textureManager.resourceManager);const n=()=>this.highlightGradient;this._renderParameters={drawPhase:0,state:this.state,pixelRatio:window.devicePixelRatio,stationary:!1,globalOpacity:1,blendMode:null,deltaTime:-1,time:0,inFadeTransition:!1,effects:null,context:this.context,painter:this.painter,timeline:r.timeline||new w,renderingOptions:r.renderingOptions,requestRender:()=>this.requestRender(),allowDelayedRender:!1,requireFBO:!1,profiler:new u(this.context),dataUploadCounter:0,get highlightGradient(){return n()},reshuffleManager:this._reshuffleManager,backgroundColor:r.backgroundColor,animationsEnabled:!0};let a=e=>this.renderFrame(e);null!=r.renderFrame&&(a=r.renderFrame),this._taskHandle=s({render:e=>a(e)}),this._taskHandle.pause(),this._lostWebGLContextHandle=this._throttledCanvas.events.on("webgl-context-lost",e=>this.emit("webgl-error",{error:new t("webgl-context-lost",e.statusMessage||"WebGL context lost")})),f()}destroy(){super.destroy(),g(this.context),this.labelManager.destroy(),this.removeAllChildren(),this._emptyTrash(),this._taskHandle=r(this._taskHandle),this._lostWebGLContextHandle=r(this._lostWebGLContextHandle),this._throttledCanvas.destroy(),this.painter.dispose(),this.context.dispose(),this._throttledCanvas=null}get updating(){return this.labelManager.updating}get textureManager(){return this.painter.textureManager}get profiler(){return this._renderParameters.profiler}get backgroundColor(){return this._renderParameters.backgroundColor}set backgroundColor(e){this._renderParameters.backgroundColor=e,this.requestRender()}get canvas(){return this._throttledCanvas.canvas}get cimAnalyzer(){return this._cimAnalyzer}get effectiveVisible(){return this.visible}get renderingOptions(){return this._renderingOptions}set renderingOptions(e){this._renderingOptions=e,this.requestRender()}get renderRequested(){return this._renderRequested.value}get state(){return this._state}set state(e){this._state=e,this.requestDeclutter(),this.requestRender()}get stationary(){return this._stationary}set stationary(e){this._stationary!==e&&(this._stationary=e,this.requestRender())}get animationsEnabled(){return this._animationsEnabled}set animationsEnabled(e){this._animationsEnabled!==e&&(this._animationsEnabled=e,this._animationsEnabled&&this.requestRender())}trashDisplayObject(e){this._trash.add(e),this.requestRender()}untrashDisplayObject(e){return this._trash.delete(e)}requestRender(){this._renderRemainingTime=q,this.renderRequested||(this._renderRequested.value=!0,this._taskHandle.resume())}requestDeclutter(){this.labelManager.requestDeclutter(),this.requestRender()}renderFrame(e){const t=this._lastFrameRenderTime?e.time-this._lastFrameRenderTime:0;this._renderRemainingTime-=t,this._renderRemainingTime<=0&&this._taskHandle.pause(),this._lastFrameRenderTime=e.time,this._renderRequested.value=!1,this._renderParameters.state=this._state,this._renderParameters.stationary=this.stationary,this._renderParameters.pixelRatio=window.devicePixelRatio,this._renderParameters.globalOpacity=1,this._renderParameters.time=e.time,this._renderParameters.deltaTime=e.deltaTime,this._renderParameters.effects=null,this._renderParameters.animationsEnabled=this._animationsEnabled,this.processRender(this._renderParameters),this._emptyTrash()}_createTransforms(){return{displayViewScreenMat3:a()}}renderChildren(e){this._reshuffleManager.reshuffle(m);const t=[];this._prepareFeatureContainers(t,this);const r=this.labelManager.declutter(t,e.state);r&&this.requestRender(),this._throttledCanvas.render(e,()=>this._renderChildren(this.children,e,r))}_renderChildren(e,t,r=!1){t.decluttering=r;for(const i of e)i.beforeRender(t);const s=this.context;this.painter.textureUploadManager.upload(),s.resetInfo(),t.profiler.recordStart("drawLayers"),t.dataUploadCounter=0,this.painter.beforeRenderPhases(t,t.backgroundColor,this.state.padding),t.drawPhase=1;for(const i of e)i.processRender(t);if(this.children.some(e=>e.hasHighlight)){t.drawPhase=16;for(const r of e)r.processRender(t)}if(this.children.some(e=>e.hasLabels)){t.drawPhase=2;for(const r of e)r.processRender(t)}if(has("esri-tiles-debug")){t.drawPhase=64;for(const r of e)r.processRender(t)}t.drawPhase=128;for(const i of e)i.processRender(t);this.painter.afterRenderPhases(t),t.profiler.recordEnd("drawLayers"),s.logInfo();for(const i of e)i.afterRender(t)}_prepareFeatureContainers(e,t){for(const r of t.children)r instanceof b?e.push(r):r instanceof d&&this._prepareFeatureContainers(e,r)}doRender(e){const t=this.context,{state:r,pixelRatio:s}=e;this._throttledCanvas.resize(e),t.setViewport(0,0,s*r.size[0],s*r.size[1]),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),this.renderChildren(e)}async takeScreenshot(e,t,r,s){const i=Math.round(this.state.size[0]*e.resolutionScale),n=Math.round(this.state.size[1]*e.resolutionScale),a=e.resolutionScale,o=this.context,h=this._state.clone();if(null!=s){const e=h.viewpoint;h.viewpoint.rotation=s,h.viewpoint=e}const d={...this._renderParameters,drawPhase:null,globalOpacity:1,stationary:!0,state:h,pixelRatio:a,time:performance.now(),deltaTime:0,blendMode:null,effects:null,inFadeTransition:!1,backgroundColor:r},l=new M(i,n);l.wrapMode=33071,l.internalFormat=R.RGBA8,l.isImmutable=!0;const m=new C(o,l,new j(y.DEPTH24_STENCIL8,i,n)),c=o.boundFramebuffer,u=o.getViewport();o.bindFramebuffer(m),o.setViewport(0,0,i,n),this._renderChildren(t??this.children,d);const p=this._readbackScreenshot(m,{...e.cropArea,y:n-(e.cropArea.y+e.cropArea.height)});o.bindFramebuffer(c),o.setViewport(u.x,u.y,u.width,u.height),this.requestRender();const f=await p;let g;return 1===e.outputScale?g=f:(g=new ImageData(Math.round(f.width*e.outputScale),Math.round(f.height*e.outputScale)),(await(import("../../support/screenshotUtils.js"))).resampleHermite(f,g,!0)),m.dispose(),g}async _readbackScreenshot(e,t){const r=(await(import("../../support/screenshotUtils.js"))).createEmptyImageData(t.width,t.height,document.createElement("canvas"));return await e.readPixelsAsync(t.x,t.y,t.width,t.height,6408,x.UNSIGNED_BYTE,new Uint8Array(r.data.buffer)),r}_emptyTrash(){for(;this._trash.size>0;){const e=Array.from(this._trash);this._trash.clear();for(const t of e)t.processDetach()}}}e([n()],v.prototype,"updating",null);export{v as Stage,q as extraRenderTime};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Error.js";import has from"../../../core/has.js";import{removeMaybe as r}from"../../../core/maybe.js";import{addFrameTask as s}from"../../../core/scheduling.js";import{signal as i}from"../../../core/signal.js";import{property as n}from"../../../core/accessorSupport/decorators.js";import{create as a}from"../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{CIMAnalyzer as o}from"../../../symbols/cim/cimAnalyzer.js";import{LabelManager as h}from"../LabelManager.js";import{Container as d}from"./Container.js";import{ThrottledCanvas as l}from"./ThrottledCanvas.js";import{MAX_TILE_RESHUFFLES_PER_FRAME as m}from"./webgl/definitions.js";import c from"./webgl/Painter.js";import{Profiler as u}from"./webgl/Profiler.js";import{TileReshuffleManager as p}from"./webgl/TileReshuffleManager.js";import{startup as f,shutdown as g}from"./webgl/shaderGraph/techniques/TechniqueRegistry.js";import{MeshWriterRegistry as _}from"./webgl/shaderGraph/techniques/mesh/MeshWriterRegistry.js";import{FeatureContainer as b}from"../layers/features/FeatureContainer.js";import{Timeline as w}from"../support/Timeline.js";import{SizedPixelFormat as R,SizedDepthStencilFormat as y,PixelType as x}from"../../webgl/enums.js";import{DisposableFramebufferObject as C}from"../../webgl/FramebufferObject.js";import{RenderbufferDescriptor as j}from"../../webgl/RenderbufferDescriptor.js";import{RenderingContext as P}from"../../webgl/RenderingContext.js";import{RenderingContextOptions as T}from"../../webgl/RenderingContextOptions.js";import{TextureDescriptor as M}from"../../webgl/TextureDescriptor.js";const q=2e3;class v extends d{constructor(e,r){super(),this._trash=new Set,this._renderRemainingTime=0,this._lastFrameRenderTime=0,this._stationary=!0,this._animationsEnabled=!0,this._renderRequested=i(!1),this._reshuffleManager=new p,this.stage=this,this.meshWriterRegistry=new _,this.labelManager=new h({featuresTilingScheme:r.featuresTilingScheme}),this._throttledCanvas=new l(e),this.context=new P(this._throttledCanvas.gl,r.contextOptions??new T),this.painter=new c(this.context,this),this._cimAnalyzer=new o(this.painter.textureManager.resourceManager);const n=()=>this.highlightGradient;this._renderParameters={drawPhase:0,state:this.state,pixelRatio:window.devicePixelRatio,stationary:!1,globalOpacity:1,blendMode:null,deltaTime:-1,time:0,inFadeTransition:!1,effects:null,context:this.context,painter:this.painter,timeline:r.timeline||new w,renderingOptions:r.renderingOptions,requestRender:()=>this.requestRender(),allowDelayedRender:!1,requireFBO:!1,profiler:new u(this.context),dataUploadCounter:0,get highlightGradient(){return n()},reshuffleManager:this._reshuffleManager,backgroundColor:r.backgroundColor,animationsEnabled:!0};let a=e=>this.renderFrame(e);null!=r.renderFrame&&(a=r.renderFrame),this._taskHandle=s({render:e=>a(e)}),this._taskHandle.pause(),this._lostWebGLContextHandle=this._throttledCanvas.events.on("webgl-context-lost",e=>this.emit("webgl-error",{error:new t("webgl-context-lost",e.statusMessage||"WebGL context lost")})),f()}destroy(){super.destroy(),g(this.context),this.labelManager.destroy(),this.removeAllChildren(),this._emptyTrash(),this._taskHandle=r(this._taskHandle),this._lostWebGLContextHandle=r(this._lostWebGLContextHandle),this._throttledCanvas.destroy(),this.painter.dispose(),this.context.dispose(),this._throttledCanvas=null}get updating(){return this.labelManager.updating}get textureManager(){return this.painter.textureManager}get profiler(){return this._renderParameters.profiler}get backgroundColor(){return this._renderParameters.backgroundColor}set backgroundColor(e){this._renderParameters.backgroundColor=e,this.requestRender()}get canvas(){return this._throttledCanvas.canvas}get cimAnalyzer(){return this._cimAnalyzer}get effectiveVisible(){return this.visible}get renderingOptions(){return this._renderingOptions}set renderingOptions(e){this._renderingOptions=e,this.requestRender()}get renderRequested(){return this._renderRequested.value}get state(){return this._state}set state(e){this._state=e,this.requestDeclutter(),this.requestRender()}get stationary(){return this._stationary}set stationary(e){this._stationary!==e&&(this._stationary=e,this.requestRender())}get animationsEnabled(){return this._animationsEnabled}set animationsEnabled(e){this._animationsEnabled!==e&&(this._animationsEnabled=e,this._animationsEnabled&&this.requestRender())}trashDisplayObject(e){this._trash.add(e),this.requestRender()}untrashDisplayObject(e){return this._trash.delete(e)}requestRender(){this._renderRemainingTime=q,this.renderRequested||(this._renderRequested.value=!0,this._taskHandle.resume())}requestDeclutter(){this.labelManager.requestDeclutter(),this.requestRender()}renderFrame(e){const t=this._lastFrameRenderTime?e.time-this._lastFrameRenderTime:0;this._renderRemainingTime-=t,this._renderRemainingTime<=0&&this._taskHandle.pause(),this._lastFrameRenderTime=e.time,this._renderRequested.value=!1,this._renderParameters.state=this._state,this._renderParameters.stationary=this.stationary,this._renderParameters.pixelRatio=window.devicePixelRatio,this._renderParameters.globalOpacity=1,this._renderParameters.time=e.time,this._renderParameters.deltaTime=e.deltaTime,this._renderParameters.effects=null,this._renderParameters.animationsEnabled=this._animationsEnabled,this.processRender(this._renderParameters),this._emptyTrash()}_createTransforms(){return{displayViewScreenMat3:a()}}renderChildren(e){this._reshuffleManager.reshuffle(m);const t=[];this._prepareFeatureContainers(t,this);const r=this.labelManager.declutter(t,e.state);r&&this.requestRender(),this._throttledCanvas.render(e,()=>this._renderChildren(this.children,e,r))}_renderChildren(e,t,r=!1){t.decluttering=r;for(const i of e)i.beforeRender(t);const s=this.context;this.painter.textureUploadManager.upload(),s.resetInfo(),t.profiler.recordStart("drawLayers"),t.dataUploadCounter=0,this.painter.beforeRenderPhases(t,t.backgroundColor,this.state.padding),t.drawPhase=1;for(const i of e)i.processRender(t);if(this.children.some(e=>e.hasHighlight)){t.drawPhase=8;for(const r of e)r.processRender(t)}if(this.children.some(e=>e.hasLabels)){t.drawPhase=2;for(const r of e)r.processRender(t)}if(has("esri-tiles-debug")){t.drawPhase=32;for(const r of e)r.processRender(t)}t.drawPhase=64;for(const i of e)i.processRender(t);this.painter.afterRenderPhases(t),t.profiler.recordEnd("drawLayers"),s.logInfo();for(const i of e)i.afterRender(t)}_prepareFeatureContainers(e,t){for(const r of t.children)r instanceof b?e.push(r):r instanceof d&&this._prepareFeatureContainers(e,r)}doRender(e){const t=this.context,{state:r,pixelRatio:s}=e;this._throttledCanvas.resize(e),t.setViewport(0,0,s*r.size[0],s*r.size[1]),t.setDepthWriteEnabled(!0),t.setStencilWriteMask(255),this.renderChildren(e)}async takeScreenshot(e,t,r,s){const i=Math.round(this.state.size[0]*e.resolutionScale),n=Math.round(this.state.size[1]*e.resolutionScale),a=e.resolutionScale,o=this.context,h=this._state.clone();if(null!=s){const e=h.viewpoint;h.viewpoint.rotation=s,h.viewpoint=e}const d={...this._renderParameters,drawPhase:null,globalOpacity:1,stationary:!0,state:h,pixelRatio:a,time:performance.now(),deltaTime:0,blendMode:null,effects:null,inFadeTransition:!1,backgroundColor:r},l=new M(i,n);l.wrapMode=33071,l.internalFormat=R.RGBA8,l.isImmutable=!0;const m=new C(o,l,new j(y.DEPTH24_STENCIL8,i,n)),c=o.boundFramebuffer,u=o.getViewport();o.bindFramebuffer(m),o.setViewport(0,0,i,n),this._renderChildren(t??this.children,d);const p=this._readbackScreenshot(m,{...e.cropArea,y:n-(e.cropArea.y+e.cropArea.height)});o.bindFramebuffer(c),o.setViewport(u.x,u.y,u.width,u.height),this.requestRender();const f=await p;let g;return 1===e.outputScale?g=f:(g=new ImageData(Math.round(f.width*e.outputScale),Math.round(f.height*e.outputScale)),(await(import("../../support/screenshotUtils.js"))).resampleHermite(f,g,!0)),m.dispose(),g}async _readbackScreenshot(e,t){const r=(await(import("../../support/screenshotUtils.js"))).createEmptyImageData(t.width,t.height,document.createElement("canvas"));return await e.readPixelsAsync(t.x,t.y,t.width,t.height,6408,x.UNSIGNED_BYTE,new Uint8Array(r.data.buffer)),r}_emptyTrash(){for(;this._trash.size>0;){const e=Array.from(this._trash);this._trash.clear();for(const t of e)t.processDetach()}}}e([n()],v.prototype,"updating",null);export{v as Stage,q as extraRenderTime};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../core/has.js";import{rasterizeDash as t}from"../../../../symbols/cim/rasterizingUtils.js";import{log2 as e}from"./GeometryUtils.js";import i from"../webgl/Rect.js";import s from"../webgl/RectangleBinPack.js";import a from"../../../webgl/Texture.js";import{TextureDescriptor as h}from"../../../webgl/TextureDescriptor.js";const r="dasharray-";class o{constructor(t,e,i=0){this._mosaicPages=[],this._currentPage=0,this._maxItemSize=0,this._pageWidth=0,this._pageHeight=0,this._mosaicRects={},this.pixelRatio=1,e<=0&&console.error("Sprites mosaic defaultWidth and defaultHeight must be greater than zero!"),this._pageWidth=t,this._pageHeight=e,i>0&&(this._maxItemSize=i),this._binPack=new s(t-4,e-4),this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(this._pageWidth*this._pageHeight)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0})}destroy(){this.dispose()}dispose(){if(this._binPack=null,null!==this._mosaicPages){for(const t of this._mosaicPages){const e=t.texture;e&&e.dispose()}this._mosaicPages=null}}getWidth(t){return t<0||t>=this._mosaicPages.length?-1:this._mosaicPages[t].size[0]}getHeight(t){return t<0||t>=this._mosaicPages.length?-1:this._mosaicPages[t].size[1]}getPageSize(t){return t<0||t>=this._mosaicPages.length?null:this._mosaicPages[t].size}getTexture(t){return t<0||t>=this._mosaicPages.length?null:this._mosaicPages[t].texture||null}setSpriteSource(t){for(const e of this._mosaicPages)e.texture&&(e.texture.dispose(),e.texture=null),e.dirty=!0;if(0===this._mosaicPages.length){this._binPack=new s(this._pageWidth-4,this._pageHeight-4);const t=Math.floor(this._pageWidth)*Math.floor(this._pageHeight),e=new Uint32Array(t);for(let i=0;i<t;i++)e[i]=0;this._mosaicPages.push({mosaicsData:{type:"static",data:e},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:null})}this._sprites=t}getSpriteItem(t,e=!1){let i,s,a=this._mosaicRects[t];if(a)return a;if(t&&t.startsWith(r))[i,s]=this._rasterizeDash(t),e=!0;else{if(!this._sprites||"loaded"!==this._sprites.loadStatus)return null;i=this._sprites.getSpriteInfo(t)}if(!i?.width||!i.height||i.width<0||i.height<0)return null;const h=i.width,o=i.height,[n,g,c]=this._allocateImage(h,o);return n.width<=0?null:(this._copy(n,i,g,c,e,s),a={type:"sprite",rect:n,width:h,height:o,sdf:i.sdf,simplePattern:!1,rasterizationScale:i.pixelRatio??1,samplingMode:"Linear",page:g},this._mosaicRects[t]=a,a)}getSpriteItems(t){const e={};for(const i of t)e[i.name]=this.getSpriteItem(i.name,i.repeat);return e}getMosaicItemPosition(t,e){const i=this.getSpriteItem(t,e),s=i?.rect;if(!s)return null;s.width=i.width,s.height=i.height;const a=i.width,h=i.height,r=2;return{tl:[s.x+r,s.y+r],br:[s.x+r+a,s.y+r+h],page:i.page}}bind(t,e,i=0,s=0){if(i>=this._mosaicPages.length||i>=this._mosaicPages.length)return;const r=this._mosaicPages[i];let o=r.texture;if(!o){const e=new h(r.size[0],r.size[1]);e.wrapMode=33071,o=new a(t,e),r.texture=o}if(o.setSamplingMode(e),t.bindTexture(o,s),r.dirty){const t=r.mosaicsData.data;o.setData(new Uint8Array(t.buffer))}r.dirty=!1}static _copyBits(t,e,i,s,a,h,r,o,n,g,c){let l=s*e+i,_=o*h+r;if(c){_-=h;for(let r=-1;r<=g;r++,l=((r+g)%g+s)*e+i,_+=h)for(let e=-1;e<=n;e++)a[_+e]=t[l+(e+n)%n]}else for(let m=0;m<g;m++){for(let e=0;e<n;e++)a[_+e]=t[l+e];l+=e,_+=h}}_copy(t,e,i,s,a,h){if(i>=this._mosaicPages.length||!h&&(!this._sprites||"loaded"!==this._sprites.loadStatus))return;const r=this._mosaicPages[i],n=r.mosaicsData.data,g=new Uint32Array(h?h.buffer:this._sprites.image.buffer),c=2,l=h?e.width:this._sprites.width;o._copyBits(g,l,e.x,e.y,n,s[0],t.x+c,t.y+c,e.width,e.height,a),r.dirty=!0}_allocateImage(t,a){t+=2,a+=2;const h=Math.max(t,a);if(this._maxItemSize&&this._maxItemSize<h){const s=2**Math.ceil(e(t)),h=2**Math.ceil(e(a)),r=new i(0,0,t,a);return this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(s*h)},size:[s,h],dirty:!0,texture:null}),[r,this._mosaicPages.length-1,[s,h]]}let r=t%4?4-t%4:4,o=a%4?4-a%4:4;1===r&&(r=5),1===o&&(o=5);const n=this._binPack.allocate(t+r,a+o);if(n.width<=0){const e=this._mosaicPages[this._currentPage];return e.dirty||(e.mosaicsData.data=null),this._currentPage=this._mosaicPages.length,this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(this._pageWidth*this._pageHeight)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:null}),this._binPack=new s(this._pageWidth-4,this._pageHeight-4),this._allocateImage(t,a)}return[n,this._currentPage,[this._pageWidth,this._pageHeight]]}_rasterizeDash(e){const i=/\[(.*?)\]/,s=e.match(i);if(!s)return null;const a=s[1].split(",").map(Number),h=e.slice(e.lastIndexOf("-")+1),[r,o,n]=t(a,h);return[{x:0,y:0,width:o,height:n,sdf:!0,pixelRatio:1},new Uint8Array(r.buffer)]}}export{o as default};
2
+ import"../../../../core/has.js";import{rasterizeDash as t}from"../../../../symbols/cim/rasterizingUtils.js";import{log2 as e}from"./GeometryUtils.js";import i from"../webgl/Rect.js";import s from"../webgl/RectangleBinPack.js";import a from"../../../webgl/Texture.js";import{TextureDescriptor as h}from"../../../webgl/TextureDescriptor.js";const r="dasharray-";class o{constructor(t,e,i=0){this._mosaicPages=[],this._currentPage=0,this._maxItemSize=0,this._pageWidth=0,this._pageHeight=0,this._mosaicRects={},e<=0&&console.error("Sprites mosaic defaultWidth and defaultHeight must be greater than zero!"),this._pageWidth=t,this._pageHeight=e,i>0&&(this._maxItemSize=i),this._binPack=new s(t-4,e-4),this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(this._pageWidth*this._pageHeight)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0})}destroy(){this.dispose()}dispose(){if(this._binPack=null,null!==this._mosaicPages){for(const t of this._mosaicPages){const e=t.texture;e&&e.dispose()}this._mosaicPages=null}}getWidth(t){return t<0||t>=this._mosaicPages.length?-1:this._mosaicPages[t].size[0]}getHeight(t){return t<0||t>=this._mosaicPages.length?-1:this._mosaicPages[t].size[1]}getPageSize(t){return t<0||t>=this._mosaicPages.length?null:this._mosaicPages[t].size}getTexture(t){return t<0||t>=this._mosaicPages.length?null:this._mosaicPages[t].texture||null}setSpriteSource(t){for(const e of this._mosaicPages)e.texture&&(e.texture.dispose(),e.texture=null),e.dirty=!0;if(0===this._mosaicPages.length){this._binPack=new s(this._pageWidth-4,this._pageHeight-4);const t=Math.floor(this._pageWidth)*Math.floor(this._pageHeight),e=new Uint32Array(t);for(let i=0;i<t;i++)e[i]=0;this._mosaicPages.push({mosaicsData:{type:"static",data:e},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:null})}this._sprites=t}getSpriteItem(t,e=!1){let i,s,a=this._mosaicRects[t];if(a)return a;if(t&&t.startsWith(r))[i,s]=this._rasterizeDash(t),e=!0;else{if(!this._sprites||"loaded"!==this._sprites.loadStatus)return null;i=this._sprites.getSpriteInfo(t)}if(!i?.width||!i.height||i.width<0||i.height<0)return null;const h=i.width,o=i.height,[n,g,c]=this._allocateImage(h,o);return n.width<=0?null:(this._copy(n,i,g,c,e,s),a={type:"sprite",rect:n,width:h,height:o,sdf:i.sdf,simplePattern:!1,rasterizationScale:i.pixelRatio??1,samplingMode:"Linear",page:g},this._mosaicRects[t]=a,a)}getSpriteItems(t){const e={};for(const i of t)e[i.name]=this.getSpriteItem(i.name,i.repeat);return e}getMosaicItemPosition(t,e){const i=this.getSpriteItem(t,e),s=i?.rect;if(!s)return null;s.width=i.width,s.height=i.height;const a=i.width,h=i.height,r=2;return{tl:[s.x+r,s.y+r],br:[s.x+r+a,s.y+r+h],page:i.page}}bind(t,e,i=0,s=0){if(i>=this._mosaicPages.length||i>=this._mosaicPages.length)return;const r=this._mosaicPages[i];let o=r.texture;if(!o){const e=new h(r.size[0],r.size[1]);e.wrapMode=33071,o=new a(t,e),r.texture=o}if(o.setSamplingMode(e),t.bindTexture(o,s),r.dirty){const t=r.mosaicsData.data;o.setData(new Uint8Array(t.buffer))}r.dirty=!1}static _copyBits(t,e,i,s,a,h,r,o,n,g,c){let l=s*e+i,_=o*h+r;if(c){_-=h;for(let r=-1;r<=g;r++,l=((r+g)%g+s)*e+i,_+=h)for(let e=-1;e<=n;e++)a[_+e]=t[l+(e+n)%n]}else for(let m=0;m<g;m++){for(let e=0;e<n;e++)a[_+e]=t[l+e];l+=e,_+=h}}_copy(t,e,i,s,a,h){if(i>=this._mosaicPages.length||!h&&(!this._sprites||"loaded"!==this._sprites.loadStatus))return;const r=this._mosaicPages[i],n=r.mosaicsData.data,g=new Uint32Array(h?h.buffer:this._sprites.image.buffer),c=2,l=h?e.width:this._sprites.width;o._copyBits(g,l,e.x,e.y,n,s[0],t.x+c,t.y+c,e.width,e.height,a),r.dirty=!0}_allocateImage(t,a){t+=2,a+=2;const h=Math.max(t,a);if(this._maxItemSize&&this._maxItemSize<h){const s=2**Math.ceil(e(t)),h=2**Math.ceil(e(a)),r=new i(0,0,t,a);return this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(s*h)},size:[s,h],dirty:!0,texture:null}),[r,this._mosaicPages.length-1,[s,h]]}let r=t%4?4-t%4:4,o=a%4?4-a%4:4;1===r&&(r=5),1===o&&(o=5);const n=this._binPack.allocate(t+r,a+o);if(n.width<=0){const e=this._mosaicPages[this._currentPage];return e.dirty||(e.mosaicsData.data=null),this._currentPage=this._mosaicPages.length,this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(this._pageWidth*this._pageHeight)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:null}),this._binPack=new s(this._pageWidth-4,this._pageHeight-4),this._allocateImage(t,a)}return[n,this._currentPage,[this._pageWidth,this._pageHeight]]}_rasterizeDash(e){const i=/\[(.*?)\]/,s=e.match(i);if(!s)return null;const a=s[1].split(",").map(Number),h=e.slice(e.lastIndexOf("-")+1),[r,o,n]=t(a,h);return[{x:0,y:0,width:o,height:n,sdf:!0,pixelRatio:1},new Uint8Array(r.buffer)]}}export{o as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{create as e}from"../../../../geometry/support/aaBoundingRect.js";import t from"../../../../layers/support/TileInfo.js";import{tileSizeInTileUnits as s,tileSizeInPixels as r}from"./constants.js";import{SymbolFader as i}from"./decluttering/SymbolFader.js";import{writeOpacityToBuffers as o}from"./decluttering/util.js";import{RenderableTile as l}from"../webgl/RenderableTile.js";import n from"../webgl/TileContainer.js";import{simplePipelineState as a}from"../webgl/shaderGraph/utils.js";import{VTLTechniquesRepo as d}from"../webgl/shaderGraph/techniques/vectorTiles/VTLTechniques.js";import h from"../../tiling/TileCoverage.js";import c from"../../tiling/TileKey.js";const u=1e-6;function y(e,t){if(e){const s=e.getLayoutProperty("visibility");if(!s||1!==s.getValue()&&(void 0===e.minzoom||e.minzoom<t+u)&&(void 0===e.maxzoom||e.maxzoom>=t-u))return!0}return!1}class m extends n{constructor(e){super(e),this._backgroundTiles=[],this._techniques=new d,this._computeDisplayInfoView(e),this._techniques.startup()}destroy(){super.destroy(),this.removeAllChildren(),this._spriteMosaic?.dispose(),this._spriteMosaic=null,null!=this._symbolFader&&(this._symbolFader.clear(),this._symbolFader=null);const e=this.stage?.context;e&&this._techniques.shutdown(e),this._styleRepository=null,this._backgroundTiles=[]}get fading(){return this._symbolFader?.fading??!1}get symbolFader(){return this._symbolFader}get symbolRepository(){return this._symbolFader?.symbolRepository}setStyleResources(e,t,r,l){if(this._spriteMosaic=e,this._glyphMosaic=t,this._styleRepository=r,this.tilingScheme=l,this._computeDisplayInfoView(l),null==this._symbolFader){const e=(e,t)=>{e.allSymbolsFadingOut=!0,e.lastOpacityUpdate=t,o(e,t,!0),e.decluttered=!0,e.requestRender()};this._symbolFader=new i("vector-tile",this._styleRepository,e,this.children,s)}this._symbolFader.styleRepository=r}setSpriteMosaic(e){this._spriteMosaic?.dispose(),this._spriteMosaic=e}deleteStyleLayers(e){null!=this._symbolFader&&this._symbolFader.deleteStyleLayers(e)}createRenderParams(e){return{...super.createRenderParams(e),renderPass:null,styleLayer:null,styleLayerUID:-1,glyphMosaic:this._glyphMosaic,spriteMosaic:this._spriteMosaic}}doRender(e){const{drawPhase:t}=e,s=1===t||64===t;this.visible&&s&&void 0!==this._spriteMosaic&&super.doRender(e)}addChild(e){return super.addChild(e),null!=this._symbolFader?this._symbolFader.addTile(e):e.decluttered=!0,this.requestRender(),e}removeChild(e){return null!=this._symbolFader&&this._symbolFader.removeTile(e),this.requestRender(),super.removeChild(e)}renderChildren(e){const{drawPhase:t}=e;64!==t?this._doRender(e):super.renderChildren(e)}removeAllChildren(){for(let e=0;e<this.children.length;e++){const t=this.children[e];null!=this._symbolFader&&this._symbolFader.removeTile(t),t.dispose()}super.removeAllChildren()}getStencilTarget(){return this.children.filter(e=>e.neededForCoverage&&e.hasData())}restartDeclutter(){null!=this._symbolFader&&this._symbolFader.restartDeclutter()}_doRender(e){const{context:t,painter:s,state:r}=e,i=this._styleRepository;if(!i)return;const o=i.layers,l=this._displayInfo.scaleToZoom(r.scale);this.children.forEach(e=>e.disposeLayerData()),super.renderChildren(e),i.backgroundBucketIds.length>0&&(e.renderPass="background",this._renderBackgroundLayers(e,i.backgroundBucketIds,l)),1===e.drawPhase&&this._fade(l,r);const n=this.children.filter(t=>(1===e.drawPhase&&t.fader.fade()<1&&this.requestRender(),t.visible&&t.hasData()));if(n&&0!==n.length){for(const e of n)e.triangleCount=0;t.setClearDepth(1),t.clear(256),s.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},stencil:{write:!1,test:{compare:514,op:{fail:7680,zFail:7680,zPass:7681},mask:255}},depth:{write:!1,test:515}}),e.renderPass="translucent";for(let t=0;t<o.length;t++)this._renderStyleLayer(o[t],e,n);t.bindVAO(null),s.setPipelineState(a);for(const e of n)e.debugInfo.display.triangleCount=e.triangleCount}else t.bindVAO(null)}_fade(e,t){null!=this._symbolFader&&(this._symbolFader.update(e,t)||this.requestRender())}_renderStyleLayer(e,t,s){const{displayLevel:r,renderPass:i}=t;if(void 0===e)return;const o=e.getLayoutProperty("visibility");if(o&&1===o.getValue())return;switch(e.type){case 0:return;case 1:case 2:case 4:case 3:if("translucent"!==i)return}if(s=3===e.type?s.filter(e=>e.decluttered):s.filter(e=>e.neededForCoverage),3!==e.type&&(0===s.length||void 0!==e.minzoom&&e.minzoom>=r+u||void 0!==e.maxzoom&&e.maxzoom<r-u))return;const l=e.uid;t.styleLayerUID=l,t.styleLayer=e;const n=this._techniques.getTechnique(e.type);null!=n&&n.render(t,{tiles:s})}_renderBackgroundLayers(e,t,s){const{displayLevel:r,state:i}=e,o=this._styleRepository;let l=!1;for(const h of t){const e=o.getLayerById(h);if(e&&0===e.type&&y(o.getLayerById(h),s)){l=!0;break}}if(!l)return;const n=this.tilingScheme.getTileCoverage(e.state,0,!0,"smallest"),{spans:a,lodInfo:d}=n,{level:m}=d,p=[];let g=0;for(const{row:h,colFrom:u,colTo:y}of a)for(let e=u;e<=y;e++){const t=new c(m,h,d.normalizeCol(e),d.getWorldForColumn(e)),s=this._getOrCreateBackgroundTile(g,t);s.setTransform(i),p.push(s),g++}const f=this._techniques.getTechnique(0);for(const h of t){const t=o.getLayerById(h);0!==t.type||!y(t,s)||void 0!==t.minzoom&&t.minzoom>=r+u||void 0!==t.maxzoom&&t.maxzoom<r-u||(e.styleLayerUID=t.uid,e.styleLayer=t,f.render(e,{tiles:p}))}h.pool.release(n)}_getOrCreateBackgroundTile(t,i){const o=this._backgroundTiles[t];if(o?.key.equals(i))return o;const n=this.tilingScheme.getTileBounds(e(),i),a=this.tilingScheme.getTileResolution(i.level),d=new l(i,a,n[0],n[3],r,r,s,s);return o?(o.destroy(),this._backgroundTiles[t]=d):this._backgroundTiles.push(d),d}_computeDisplayInfoView(e){let s=e.tileInfo.lods[0].scale;const i=Math.max(25,e.tileInfo.lods.length),o=[];for(let t=0;t<=i;t++)o.push(s),s/=2;this._displayInfo=t.create({scales:o,size:r,spatialReference:e.spatialReference,numLODs:i})}}export{m as VectorTileContainer};
2
+ import{create as e}from"../../../../geometry/support/aaBoundingRect.js";import t from"../../../../layers/support/TileInfo.js";import{tileSizeInTileUnits as s,tileSizeInPixels as r}from"./constants.js";import{SymbolFader as i}from"./decluttering/SymbolFader.js";import{writeOpacityToBuffers as o}from"./decluttering/util.js";import{RenderableTile as l}from"../webgl/RenderableTile.js";import n from"../webgl/TileContainer.js";import{simplePipelineState as a}from"../webgl/shaderGraph/utils.js";import{VTLTechniquesRepo as d}from"../webgl/shaderGraph/techniques/vectorTiles/VTLTechniques.js";import h from"../../tiling/TileCoverage.js";import c from"../../tiling/TileKey.js";const u=1e-6;function y(e,t){if(e){const s=e.getLayoutProperty("visibility");if(!s||1!==s.getValue()&&(void 0===e.minzoom||e.minzoom<t+u)&&(void 0===e.maxzoom||e.maxzoom>=t-u))return!0}return!1}class m extends n{constructor(e){super(e),this._backgroundTiles=[],this._techniques=new d,this._computeDisplayInfoView(e),this._techniques.startup()}destroy(){super.destroy(),this.removeAllChildren(),this._spriteMosaic?.dispose(),this._spriteMosaic=null,null!=this._symbolFader&&(this._symbolFader.clear(),this._symbolFader=null);const e=this.stage?.context;e&&this._techniques.shutdown(e),this._styleRepository=null,this._backgroundTiles=[]}get fading(){return this._symbolFader?.fading??!1}get symbolFader(){return this._symbolFader}get symbolRepository(){return this._symbolFader?.symbolRepository}setStyleResources(e,t,r,l){if(this._spriteMosaic=e,this._glyphMosaic=t,this._styleRepository=r,this.tilingScheme=l,this._computeDisplayInfoView(l),null==this._symbolFader){const e=(e,t)=>{e.allSymbolsFadingOut=!0,e.lastOpacityUpdate=t,o(e,t,!0),e.decluttered=!0,e.requestRender()};this._symbolFader=new i("vector-tile",this._styleRepository,e,this.children,s)}this._symbolFader.styleRepository=r}setSpriteMosaic(e){this._spriteMosaic?.dispose(),this._spriteMosaic=e}deleteStyleLayers(e){null!=this._symbolFader&&this._symbolFader.deleteStyleLayers(e)}createRenderParams(e){return{...super.createRenderParams(e),renderPass:null,styleLayer:null,styleLayerUID:-1,glyphMosaic:this._glyphMosaic,spriteMosaic:this._spriteMosaic}}doRender(e){const{drawPhase:t}=e,s=1===t||32===t;this.visible&&s&&void 0!==this._spriteMosaic&&super.doRender(e)}addChild(e){return super.addChild(e),null!=this._symbolFader?this._symbolFader.addTile(e):e.decluttered=!0,this.requestRender(),e}removeChild(e){return null!=this._symbolFader&&this._symbolFader.removeTile(e),this.requestRender(),super.removeChild(e)}renderChildren(e){const{drawPhase:t}=e;32!==t?this._doRender(e):super.renderChildren(e)}removeAllChildren(){for(let e=0;e<this.children.length;e++){const t=this.children[e];null!=this._symbolFader&&this._symbolFader.removeTile(t),t.dispose()}super.removeAllChildren()}getStencilTarget(){return this.children.filter(e=>e.neededForCoverage&&e.hasData())}restartDeclutter(){null!=this._symbolFader&&this._symbolFader.restartDeclutter()}_doRender(e){const{context:t,painter:s,state:r}=e,i=this._styleRepository;if(!i)return;const o=i.layers,l=this._displayInfo.scaleToZoom(r.scale);this.children.forEach(e=>e.disposeLayerData()),super.renderChildren(e),i.backgroundBucketIds.length>0&&(e.renderPass="background",this._renderBackgroundLayers(e,i.backgroundBucketIds,l)),1===e.drawPhase&&this._fade(l,r);const n=this.children.filter(t=>(1===e.drawPhase&&t.fader.fade()<1&&this.requestRender(),t.visible&&t.hasData()));if(n&&0!==n.length){for(const e of n)e.triangleCount=0;t.setClearDepth(1),t.clear(256),s.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},stencil:{write:!1,test:{compare:514,op:{fail:7680,zFail:7680,zPass:7681},mask:255}},depth:{write:!1,test:515}}),e.renderPass="translucent";for(let t=0;t<o.length;t++)this._renderStyleLayer(o[t],e,n);t.bindVAO(null),s.setPipelineState(a);for(const e of n)e.debugInfo.display.triangleCount=e.triangleCount}else t.bindVAO(null)}_fade(e,t){null!=this._symbolFader&&(this._symbolFader.update(e,t)||this.requestRender())}_renderStyleLayer(e,t,s){const{displayLevel:r,renderPass:i}=t;if(void 0===e)return;const o=e.getLayoutProperty("visibility");if(o&&1===o.getValue())return;switch(e.type){case 0:return;case 1:case 2:case 4:case 3:if("translucent"!==i)return}if(s=3===e.type?s.filter(e=>e.decluttered):s.filter(e=>e.neededForCoverage),3!==e.type&&(0===s.length||void 0!==e.minzoom&&e.minzoom>=r+u||void 0!==e.maxzoom&&e.maxzoom<r-u))return;const l=e.uid;t.styleLayerUID=l,t.styleLayer=e;const n=this._techniques.getTechnique(e.type);null!=n&&n.render(t,{tiles:s})}_renderBackgroundLayers(e,t,s){const{displayLevel:r,state:i}=e,o=this._styleRepository;let l=!1;for(const h of t){const e=o.getLayerById(h);if(e&&0===e.type&&y(o.getLayerById(h),s)){l=!0;break}}if(!l)return;const n=this.tilingScheme.getTileCoverage(e.state,0,!0,"smallest"),{spans:a,lodInfo:d}=n,{level:m}=d,p=[];let g=0;for(const{row:h,colFrom:u,colTo:y}of a)for(let e=u;e<=y;e++){const t=new c(m,h,d.normalizeCol(e),d.getWorldForColumn(e)),s=this._getOrCreateBackgroundTile(g,t);s.setTransform(i),p.push(s),g++}const f=this._techniques.getTechnique(0);for(const h of t){const t=o.getLayerById(h);0!==t.type||!y(t,s)||void 0!==t.minzoom&&t.minzoom>=r+u||void 0!==t.maxzoom&&t.maxzoom<r-u||(e.styleLayerUID=t.uid,e.styleLayer=t,f.render(e,{tiles:p}))}h.pool.release(n)}_getOrCreateBackgroundTile(t,i){const o=this._backgroundTiles[t];if(o?.key.equals(i))return o;const n=this.tilingScheme.getTileBounds(e(),i),a=this.tilingScheme.getTileResolution(i.level),d=new l(i,a,n[0],n[3],r,r,s,s);return o?(o.destroy(),this._backgroundTiles[t]=d):this._backgroundTiles.push(d),d}_computeDisplayInfoView(e){let s=e.tileInfo.lods[0].scale;const i=Math.max(25,e.tileInfo.lods.length),o=[];for(let t=0;t<=i;t++)o.push(s),s/=2;this._displayInfo=t.create({scales:o,size:r,spatialReference:e.spatialReference,numLODs:i})}}export{m as VectorTileContainer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../core/has.js";import{destroyMaybe as e}from"../../../../core/maybe.js";import{RenderingDevice as t}from"./RenderingDevice.js";import{TextureManager as s}from"./TextureManager.js";import{TextureUploadManager as i}from"./TextureUploadManager.js";import{BlendEffect as r}from"./effects/BlendEffect.js";import{FeatureEffect as n}from"./effects/FeatureEffect.js";import o from"./effects/HighlightEffect.js";import{HittestEffect as h}from"./effects/HittestEffect.js";import{EffectManager as f}from"./effects/post-processing/EffectManager.js";import{SimpleMesh as a}from"./meshing/SimpleMesh.js";import{BitBlitTechnique as l}from"./shaderGraph/techniques/utility/BitBlitTechnique.js";import{WorldExtentClipTechnique as c}from"./shaderGraph/techniques/utility/WorldExtentClipTechnique.js";import{SizedDepthStencilFormat as d}from"../../../webgl/enums.js";import{DisposableFramebufferObject as u}from"../../../webgl/FramebufferObject.js";import{Renderbuffer as p}from"../../../webgl/Renderbuffer.js";import{RenderbufferDescriptor as b}from"../../../webgl/RenderbufferDescriptor.js";import{TextureDescriptor as g}from"../../../webgl/TextureDescriptor.js";class _{constructor(e,d){this.context=e,this._blitTechnique=new l,this._worldExtentClipTechnique=new c,this._lastWidth=null,this._lastHeight=null,this._blendEffect=new r,this._stencilBuf=null,this._prevBeforeLayerFBOStack=[],this._fboPool=[],this.effects={highlight:new o,hittest:new h,insideEffect:new n("inside"),outsideEffect:new n("outside")},this.textureManager=new s(d),this.textureUploadManager=new i(d),this._effectsManager=new f,this._quadMesh=a.fromVertexStream(e,[0,0,1,0,0,1,1,1]),this._renderingDevice=new t}dispose(){if(this.textureManager.dispose(),this.textureUploadManager.destroy(),this._blitTechnique.shutdown(),this._worldExtentClipTechnique.shutdown(),this._quadMesh=e(this._quadMesh),this._fbos){let e;for(e in this._fbos)this._fbos[e]&&this._fbos[e].dispose()}for(const e of this._fboPool)e.dispose();if(this._fboPool.length=0,this.effects){let e;for(e in this.effects)this.effects[e]&&this.effects[e].dispose()}this._effectsManager.dispose(),this._blendEffect.dispose(this.context),this._renderingDevice.dispose()}get quadMesh(){return this._quadMesh}getFbos(){if(!this._fbos)throw new Error("InternalError: Painter FBOs not initialized");return this._fbos}acquireFbo(e,t){let s;if(this._fboPool.length>0)s=this._fboPool.pop();else{const i=new g(e,t);i.samplingMode=9728,i.wrapMode=33071,s=new u(this.context,i,this._stencilBuf)}return s.width===e&&s.height===t||s.resize(e,t),s}releaseFbo(e){this._fboPool.push(e)}getSharedStencilBuffer(){return this._stencilBuf}beforeRenderPhases(e,t,s){const{context:i}=e;this._worldExtentClipTechnique.render(e,{backgroundColor:t,padding:s});const{width:r,height:n}=i.getViewport();if(this.updateFBOs(r,n),this._prevFBO=i.boundFramebuffer,i.bindFramebuffer(this.getFbos().output),i.setColorMask(!0,!0,!0,!0),null!=t){const{r:e,g:s,b:r,a:n}=t;i.setClearColor(n*e/255,n*s/255,n*r/255,n)}else i.setClearColor(0,0,0,0);i.setDepthWriteEnabled(!0),i.setClearDepth(1),i.clear(16640),i.setDepthWriteEnabled(!1)}afterRenderPhases(e){const{context:t}=e;t.bindFramebuffer(this._prevFBO),this._blitTechnique.render(e,{texture:this.getFbos().output.colorTexture,samplingMode:9728,opacity:1,clipToVisibleRegion:!0}),this._renderingDevice.setPipelineStateNeedsUpdate(!0)}beforeRenderLayer(e,t,s){const{context:i,blendMode:r,effects:n,drawPhase:o,requireFBO:h}=e;if(i.setClearColor(0,0,0,0),h||m(o,r,n,s)){const e=i.boundFramebuffer;this._prevBeforeLayerFBOStack.push(e);const{width:t,height:s}=i.getViewport(),r=this.acquireFbo(t,s);i.bindFramebuffer(r),i.setColorMask(!0,!0,!0,!0),i.setClearColor(0,0,0,0),i.setDepthWriteEnabled(!0),i.setClearDepth(1),i.clear(16640),i.setDepthWriteEnabled(!1)}i.setDepthWriteEnabled(!1),i.setDepthTestEnabled(!1),i.setStencilTestEnabled(!0),i.setClearStencil(t),i.setStencilWriteMask(255),i.clear(1024)}afterRenderLayer(e,t){const{context:s,blendMode:i,effects:r,requireFBO:n,drawPhase:o}=e;if(n||m(o,i,r,t)){const n=s.boundFramebuffer;if(null==n)return;null!=r&&r.length>0&&1===o&&(s.setColorMask(!0,!0,!0,!0),this._applyEffects(e,r,n)),s.bindFramebuffer(this._prevBeforeLayerFBOStack.pop()),s.setStencilTestEnabled(!1),s.setStencilWriteMask(0),s.setBlendingEnabled(!0),s.setBlendFunctionSeparate(1,771,1,771),s.setColorMask(!0,!0,!0,!0);const h=null==i||16===o||2===o||128===o?"normal":i;this._blendEffect.draw(e,n.colorTexture,9728,h,t),this.releaseFbo(n)}}blitTexture(e,t,s,i=1){this._blitTechnique.render(e,{texture:t,samplingMode:s,opacity:i}),this._renderingDevice.setPipelineStateNeedsUpdate(!0)}getPostProcessingEffects(e){return this._effectsManager.getPostProcessingEffects(e)}updateFBOs(e,t){if(e!==this._lastWidth||t!==this._lastHeight){if(this._lastWidth=e,this._lastHeight=t,this._fbos){let s;for(s in this._fbos)this._fbos[s].resize(e,t);return}const s=new g(e,t);s.samplingMode=9728,s.wrapMode=33071;const i=new b(d.DEPTH24_STENCIL8,e,t);this._stencilBuf=new p(this.context,i),this._fbos={output:new u(this.context,s,this._stencilBuf),effect0:new u(this.context,s,this._stencilBuf)}}}_applyEffects(e,t,s){const{context:i}=e,r=this._effectsManager.getPostProcessingEffects(t);for(const{postProcessingTechnique:n,effect:o}of r)i.bindFramebuffer(s),n.render(e,{layerFBO:s,effect:o});this._renderingDevice.setPipelineStateNeedsUpdate(!0)}setShader(e){return this._renderingDevice.setShader(e)}clearShaderCache(){this._renderingDevice.clearShaderCache()}getProgramCache(){return this._renderingDevice.getProgramCache()}setPipelineState(e){return this._renderingDevice.setPipelineState(e)}getPipelineState(){return this._renderingDevice.getPipelineState()}submitDraw(e,t,s){return this._renderingDevice.submitDraw(e,t,s)}submitDrawMesh(e,t,s,i){this._renderingDevice.submitDrawMesh(e,t,s,i)}submitDrawMeshUntyped(e,t,s,i){this._renderingDevice.submitDrawMeshUntyped(e,t,s,i)}updatePipelineState(e){return this._renderingDevice.updatePipelineState(e)}setStencilRef(e,t){return this._renderingDevice.setStencilRef(e,t)}}function m(e,t,s,i){return 4!==e&&2!==e&&16!==e&&128!==e&&(1!==i||null!=t&&"normal"!==t||null!=s&&s.length>0)}export{_ as default};
2
+ import"../../../../core/has.js";import{destroyMaybe as e}from"../../../../core/maybe.js";import{RenderingDevice as t}from"./RenderingDevice.js";import{TextureManager as s}from"./TextureManager.js";import{TextureUploadManager as i}from"./TextureUploadManager.js";import{BlendEffect as r}from"./effects/BlendEffect.js";import{FeatureEffect as n}from"./effects/FeatureEffect.js";import o from"./effects/HighlightEffect.js";import{HittestEffect as h}from"./effects/HittestEffect.js";import{EffectManager as f}from"./effects/post-processing/EffectManager.js";import{SimpleMesh as a}from"./meshing/SimpleMesh.js";import{BitBlitTechnique as l}from"./shaderGraph/techniques/utility/BitBlitTechnique.js";import{WorldExtentClipTechnique as c}from"./shaderGraph/techniques/utility/WorldExtentClipTechnique.js";import{SizedDepthStencilFormat as d}from"../../../webgl/enums.js";import{DisposableFramebufferObject as u}from"../../../webgl/FramebufferObject.js";import{Renderbuffer as p}from"../../../webgl/Renderbuffer.js";import{RenderbufferDescriptor as b}from"../../../webgl/RenderbufferDescriptor.js";import{TextureDescriptor as g}from"../../../webgl/TextureDescriptor.js";class _{constructor(e,d){this.context=e,this._blitTechnique=new l,this._worldExtentClipTechnique=new c,this._lastWidth=null,this._lastHeight=null,this._blendEffect=new r,this._stencilBuf=null,this._prevBeforeLayerFBOStack=[],this._fboPool=[],this.effects={highlight:new o,hittest:new h,insideEffect:new n("inside"),outsideEffect:new n("outside")},this.textureManager=new s(d),this.textureUploadManager=new i(d),this._effectsManager=new f,this._quadMesh=a.fromVertexStream(e,[0,0,1,0,0,1,1,1]),this._renderingDevice=new t}dispose(){if(this.textureManager.dispose(),this.textureUploadManager.destroy(),this._blitTechnique.shutdown(),this._worldExtentClipTechnique.shutdown(),this._quadMesh=e(this._quadMesh),this._fbos){let e;for(e in this._fbos)this._fbos[e]&&this._fbos[e].dispose()}for(const e of this._fboPool)e.dispose();if(this._fboPool.length=0,this.effects){let e;for(e in this.effects)this.effects[e]&&this.effects[e].dispose()}this._effectsManager.dispose(),this._blendEffect.dispose(this.context),this._renderingDevice.dispose()}get quadMesh(){return this._quadMesh}getFbos(){if(!this._fbos)throw new Error("InternalError: Painter FBOs not initialized");return this._fbos}acquireFbo(e,t){let s;if(this._fboPool.length>0)s=this._fboPool.pop();else{const i=new g(e,t);i.samplingMode=9728,i.wrapMode=33071,s=new u(this.context,i,this._stencilBuf)}return s.width===e&&s.height===t||s.resize(e,t),s}releaseFbo(e){this._fboPool.push(e)}getSharedStencilBuffer(){return this._stencilBuf}beforeRenderPhases(e,t,s){const{context:i}=e;this._worldExtentClipTechnique.render(e,{backgroundColor:t,padding:s});const{width:r,height:n}=i.getViewport();if(this.updateFBOs(r,n),this._prevFBO=i.boundFramebuffer,i.bindFramebuffer(this.getFbos().output),i.setColorMask(!0,!0,!0,!0),null!=t){const{r:e,g:s,b:r,a:n}=t;i.setClearColor(n*e/255,n*s/255,n*r/255,n)}else i.setClearColor(0,0,0,0);i.setDepthWriteEnabled(!0),i.setClearDepth(1),i.clear(16640),i.setDepthWriteEnabled(!1)}afterRenderPhases(e){const{context:t}=e;t.bindFramebuffer(this._prevFBO),this._blitTechnique.render(e,{texture:this.getFbos().output.colorTexture,samplingMode:9728,opacity:1,clipToVisibleRegion:!0}),this._renderingDevice.setPipelineStateNeedsUpdate(!0)}beforeRenderLayer(e,t,s){const{context:i,blendMode:r,effects:n,drawPhase:o,requireFBO:h}=e;if(i.setClearColor(0,0,0,0),h||m(o,r,n,s)){const e=i.boundFramebuffer;this._prevBeforeLayerFBOStack.push(e);const{width:t,height:s}=i.getViewport(),r=this.acquireFbo(t,s);i.bindFramebuffer(r),i.setColorMask(!0,!0,!0,!0),i.setClearColor(0,0,0,0),i.setDepthWriteEnabled(!0),i.setClearDepth(1),i.clear(16640),i.setDepthWriteEnabled(!1)}i.setDepthWriteEnabled(!1),i.setDepthTestEnabled(!1),i.setStencilTestEnabled(!0),i.setClearStencil(t),i.setStencilWriteMask(255),i.clear(1024)}afterRenderLayer(e,t){const{context:s,blendMode:i,effects:r,requireFBO:n,drawPhase:o}=e;if(n||m(o,i,r,t)){const n=s.boundFramebuffer;if(null==n)return;null!=r&&r.length>0&&1===o&&(s.setColorMask(!0,!0,!0,!0),this._applyEffects(e,r,n)),s.bindFramebuffer(this._prevBeforeLayerFBOStack.pop()),s.setStencilTestEnabled(!1),s.setStencilWriteMask(0),s.setBlendingEnabled(!0),s.setBlendFunctionSeparate(1,771,1,771),s.setColorMask(!0,!0,!0,!0);const h=null==i||8===o||2===o||64===o?"normal":i;this._blendEffect.draw(e,n.colorTexture,9728,h,t),this.releaseFbo(n)}}blitTexture(e,t,s,i=1){this._blitTechnique.render(e,{texture:t,samplingMode:s,opacity:i}),this._renderingDevice.setPipelineStateNeedsUpdate(!0)}getPostProcessingEffects(e){return this._effectsManager.getPostProcessingEffects(e)}updateFBOs(e,t){if(e!==this._lastWidth||t!==this._lastHeight){if(this._lastWidth=e,this._lastHeight=t,this._fbos){let s;for(s in this._fbos)this._fbos[s].resize(e,t);return}const s=new g(e,t);s.samplingMode=9728,s.wrapMode=33071;const i=new b(d.DEPTH24_STENCIL8,e,t);this._stencilBuf=new p(this.context,i),this._fbos={output:new u(this.context,s,this._stencilBuf),effect0:new u(this.context,s,this._stencilBuf)}}}_applyEffects(e,t,s){const{context:i}=e,r=this._effectsManager.getPostProcessingEffects(t);for(const{postProcessingTechnique:n,effect:o}of r)i.bindFramebuffer(s),n.render(e,{layerFBO:s,effect:o});this._renderingDevice.setPipelineStateNeedsUpdate(!0)}setShader(e){return this._renderingDevice.setShader(e)}clearShaderCache(){this._renderingDevice.clearShaderCache()}getProgramCache(){return this._renderingDevice.getProgramCache()}setPipelineState(e){return this._renderingDevice.setPipelineState(e)}getPipelineState(){return this._renderingDevice.getPipelineState()}submitDraw(e,t,s){return this._renderingDevice.submitDraw(e,t,s)}submitDrawMesh(e,t,s,i){this._renderingDevice.submitDrawMesh(e,t,s,i)}submitDrawMeshUntyped(e,t,s,i){this._renderingDevice.submitDrawMeshUntyped(e,t,s,i)}updatePipelineState(e){return this._renderingDevice.updatePipelineState(e)}setStencilRef(e,t){return this._renderingDevice.setStencilRef(e,t)}}function m(e,t,s,i){return 2!==e&&8!==e&&64!==e&&(1!==i||null!=t&&"normal"!==t||null!=s&&s.length>0)}export{_ as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import t from"../../../../core/Error.js";import has from"../../../../core/has.js";import{spritePadding as e}from"./definitions.js";import{log2 as i}from"./GeometryUtils.js";import s from"./Rect.js";import a from"./RectangleBinPack.js";import r from"../../../webgl/Texture.js";import{TextureDescriptor as o}from"../../../webgl/TextureDescriptor.js";function h(t){return t&&"static"===t.type}class c{constructor(t,e,i=0){this._mosaicPages=[],this._maxItemSize=0,this._currentPage=0,this._pageWidth=0,this._pageHeight=0,this._mosaicRects=new Map,this._spriteCopyQueue=[],this.pixelRatio=1,this._pageWidth=t,this._pageHeight=e,i>0&&(this._maxItemSize=i),this.pixelRatio=window.devicePixelRatio||1,this._binPack=new a(this._pageWidth,this._pageHeight);const s=Math.floor(this._pageWidth),r=Math.floor(this._pageHeight);this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(s*r)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0})}getSize(t){return t>=this._mosaicPages.length?[0,0]:this._mosaicPages[t].size}getPageTexture(t){return t<this._mosaicPages.length?this._mosaicPages[t].texture:null}has(t){return this._mosaicRects.has(t)}get itemCount(){return this._mosaicRects.size}getSpriteItem(t){return this._mosaicRects.get(t)}addSpriteItem(t,i,a,r,o,c,n=1,g="Linear",p=.5,m=1){if(this._mosaicRects.has(t))return this._mosaicRects.get(t);let d,u,l;if(h(a))[d,u,l]=this._allocateImage(i[0],i[1]);else{d=new s(0,0,i[0],i[1]),u=this._mosaicPages.length;const t=void 0;this._mosaicPages.push({mosaicsData:a,size:[i[0]+2*e,i[1]+2*e],dirty:!0,texture:t})}if(d.width<=0||d.height<=0)return null;const _={type:"sprite",rect:d,width:i[0],height:i[1],sdf:o,simplePattern:c,rasterizationScale:n,samplingMode:g,sdfPaddingRatio:p,sdfDecodeCoeff:m,page:u};return this._mosaicRects.set(t,_),h(a)&&(has("esri-mosaic-debug")&&this._showDebugSprite(i,a.data),this._copy({rect:d,spriteSize:i,spriteData:a.data,page:u,pageSize:l,repeat:r,sdf:o})),_}hasItemsToProcess(){return 0!==this._spriteCopyQueue.length}processNextItem(){const t=this._spriteCopyQueue.pop();t&&this._copy(t)}getMosaicItemPosition(t){const i=this.getSpriteItem(t),s=i?.rect;if(!s)return null;s.width=i.width,s.height=i.height;const a=i.width,r=i.height,o=e,h=this._mosaicPages[i.page].size;return{size:[i.width,i.height],tl:[(s.x+o)/h[0],(s.y+o)/h[1]],br:[(s.x+o+a)/h[0],(s.y+o+r)/h[1]],page:i.page}}bind(t,e,i=0,s=0){const a=this._mosaicPages[i],r=a.mosaicsData;let o=a.texture;if(o||(o=g(t,a.size),a.texture=o),o.setSamplingMode(e),t.bindTexture(o,s),h(r))a.dirty&&(o.setData(new Uint8Array(r.data.buffer)),o.generateMipmap(),has("esri-mosaic-debug")&&this._showDebugPage(i));else{const t=r.data;t.hasFrameData&&(t.loadFrame(o),o.generateMipmap())}a.dirty=!1}getTexture(t,e=0){const{context:i}=t,s=this._mosaicPages[e],a=s.mosaicsData;let r=s.texture;if(r||(r=g(i,s.size),s.texture=r),h(a))s.dirty&&(r.setData(new Uint8Array(a.data.buffer)),r.generateMipmap(),has("esri-mosaic-debug")&&this._showDebugPage(e));else{const e=a.data;e.update(t),e.hasFrameData&&(e.loadFrame(r),r.generateMipmap())}return s.dirty=!1,r}dispose(){this._binPack=null;for(const t of this._mosaicPages){const e=t.texture;e&&e.dispose();const i=t.mosaicsData;if(!h(i)){i.data.destroy()}}this._mosaicPages=null,this._mosaicRects.clear()}static _copyBits(t,e,i,s,a,r,o,h,c,n,g){let p=s*e+i,m=h*r+o;if(g){m-=r;for(let o=-1;o<=n;o++,p=((o+n)%n+s)*e+i,m+=r)for(let e=-1;e<=c;e++)a[m+e]=t[p+(e+c)%c]}else for(let d=0;d<n;d++){for(let e=0;e<c;e++)a[m+e]=t[p+e];p+=e,m+=r}}_copy(i){if(i.page>=this._mosaicPages.length)return;const s=this._mosaicPages[i.page],a=s.mosaicsData;if(!h(s.mosaicsData))throw new t("mapview-invalid-resource","unsuitable data type!");const r=i.spriteData,o=a.data;c._copyBits(r,i.spriteSize[0],0,0,o,i.pageSize[0],i.rect.x+e,i.rect.y+e,i.spriteSize[0],i.spriteSize[1],i.repeat),s.dirty=!0}_allocateImage(t,r){t+=2*e,r+=2*e;const o=Math.max(t,r);if(this._maxItemSize&&this._maxItemSize<o){const e=2**Math.ceil(i(t)),a=2**Math.ceil(i(r)),o=new s(0,0,t,r);return this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(e*a)},size:[e,a],dirty:!0,texture:void 0}),[o,this._mosaicPages.length-1,[e,a]]}const c=this._binPack.allocate(t,r);if(c.width<=0){const e=this._mosaicPages[this._currentPage];return!e.dirty&&h(e.mosaicsData)&&(e.mosaicsData.data=null),this._currentPage=this._mosaicPages.length,this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(this._pageWidth*this._pageHeight)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0}),this._binPack=new a(this._pageWidth,this._pageHeight),this._allocateImage(t,r)}return[c,this._currentPage,[this._pageWidth,this._pageHeight]]}_showDebugSprite([t,e],i){const s=document.createElement("canvas");s.width=t,s.height=e,s.setAttribute("style",`position: absolute; top: ${4+204*n++}px; right: 208px; width: 200px; height: 200px; border: 1px solid black;`);const a=s.getContext("2d"),r=new ImageData(t,e);r.data.set(new Uint8Array(i.buffer)),a.putImageData(r,0,0),document.body.appendChild(s)}_showDebugPage(t){const e=this._mosaicPages[t],{size:[i,s],mosaicsData:a}=e;if(!h(a))return;const r=`mosaicDebugPage${t}`,o=document.getElementById(r)??document.createElement("canvas");o.id=r,o.width=i,o.height=s,o.setAttribute("style",`position: absolute; top: ${4+204*t}px; right: 4px; width: 200px; height: 200px; border: 1px solid black;`);const c=o.getContext("2d"),n=new ImageData(i,s);n.data.set(new Uint8Array(a.data.buffer)),c.putImageData(n,0,0),document.body.appendChild(o)}}let n=0;function g(t,e){const i=new o(e[0],e[1]);return i.wrapMode=33071,new r(t,i,null)}export{c as default};
2
+ import t from"../../../../core/Error.js";import has from"../../../../core/has.js";import{spritePadding as e}from"./definitions.js";import{log2 as i}from"./GeometryUtils.js";import a from"./Rect.js";import s from"./RectangleBinPack.js";import r from"../../../webgl/Texture.js";import{TextureDescriptor as o}from"../../../webgl/TextureDescriptor.js";function h(t){return t&&"static"===t.type}class c{constructor(t,e,i=0){this._mosaicPages=[],this._maxItemSize=0,this._currentPage=0,this._pageWidth=0,this._pageHeight=0,this._mosaicRects=new Map,this._pageWidth=t,this._pageHeight=e,i>0&&(this._maxItemSize=i),this._binPack=new s(this._pageWidth,this._pageHeight);const a=Math.floor(this._pageWidth),r=Math.floor(this._pageHeight);this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(a*r)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0})}getSize(t){return t>=this._mosaicPages.length?[0,0]:this._mosaicPages[t].size}has(t){return this._mosaicRects.has(t)}getSpriteItem(t){return this._mosaicRects.get(t)}addSpriteItem(t,i,s,r,o,c,n=1,g="Linear",p=.5,m=1){if(this._mosaicRects.has(t))return this._mosaicRects.get(t);let d,u,_;if(h(s))[d,u,_]=this._allocateImage(i[0],i[1]);else{d=new a(0,0,i[0],i[1]),u=this._mosaicPages.length;const t=void 0;this._mosaicPages.push({mosaicsData:s,size:[i[0]+2*e,i[1]+2*e],dirty:!0,texture:t})}if(d.width<=0||d.height<=0)return null;const l={type:"sprite",rect:d,width:i[0],height:i[1],sdf:o,simplePattern:c,rasterizationScale:n,samplingMode:g,sdfPaddingRatio:p,sdfDecodeCoeff:m,page:u};return this._mosaicRects.set(t,l),h(s)&&(has("esri-mosaic-debug")&&this._showDebugSprite(i,s.data),this._copy({rect:d,spriteSize:i,spriteData:s.data,page:u,pageSize:_,repeat:r,sdf:o})),l}getTexture(t,e=0){const{context:i}=t,a=this._mosaicPages[e],s=a.mosaicsData;let r=a.texture;if(r||(r=g(i,a.size),a.texture=r),h(s))a.dirty&&(r.setData(new Uint8Array(s.data.buffer)),r.generateMipmap(),has("esri-mosaic-debug")&&this._showDebugPage(e));else{const e=s.data;e.update(t),e.hasFrameData&&(e.loadFrame(r),r.generateMipmap())}return a.dirty=!1,r}dispose(){this._binPack=null;for(const t of this._mosaicPages){const e=t.texture;e&&e.dispose();const i=t.mosaicsData;if(!h(i)){i.data.destroy()}}this._mosaicPages=null,this._mosaicRects.clear()}static _copyBits(t,e,i,a,s,r,o,h,c,n,g){let p=a*e+i,m=h*r+o;if(g){m-=r;for(let o=-1;o<=n;o++,p=((o+n)%n+a)*e+i,m+=r)for(let e=-1;e<=c;e++)s[m+e]=t[p+(e+c)%c]}else for(let d=0;d<n;d++){for(let e=0;e<c;e++)s[m+e]=t[p+e];p+=e,m+=r}}_copy(i){if(i.page>=this._mosaicPages.length)return;const a=this._mosaicPages[i.page],s=a.mosaicsData;if(!h(a.mosaicsData))throw new t("mapview-invalid-resource","unsuitable data type!");const r=i.spriteData,o=s.data;c._copyBits(r,i.spriteSize[0],0,0,o,i.pageSize[0],i.rect.x+e,i.rect.y+e,i.spriteSize[0],i.spriteSize[1],i.repeat),a.dirty=!0}_allocateImage(t,r){t+=2*e,r+=2*e;const o=Math.max(t,r);if(this._maxItemSize&&this._maxItemSize<o){const e=2**Math.ceil(i(t)),s=2**Math.ceil(i(r)),o=new a(0,0,t,r);return this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(e*s)},size:[e,s],dirty:!0,texture:void 0}),[o,this._mosaicPages.length-1,[e,s]]}const c=this._binPack.allocate(t,r);if(c.width<=0){const e=this._mosaicPages[this._currentPage];return!e.dirty&&h(e.mosaicsData)&&(e.mosaicsData.data=null),this._currentPage=this._mosaicPages.length,this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(this._pageWidth*this._pageHeight)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0}),this._binPack=new s(this._pageWidth,this._pageHeight),this._allocateImage(t,r)}return[c,this._currentPage,[this._pageWidth,this._pageHeight]]}_showDebugSprite([t,e],i){const a=document.createElement("canvas");a.width=t,a.height=e,a.setAttribute("style",`position: absolute; top: ${4+204*n++}px; right: 208px; width: 200px; height: 200px; border: 1px solid black;`);const s=a.getContext("2d"),r=new ImageData(t,e);r.data.set(new Uint8Array(i.buffer)),s.putImageData(r,0,0),document.body.appendChild(a)}_showDebugPage(t){const e=this._mosaicPages[t],{size:[i,a],mosaicsData:s}=e;if(!h(s))return;const r=`mosaicDebugPage${t}`,o=document.getElementById(r)??document.createElement("canvas");o.id=r,o.width=i,o.height=a,o.setAttribute("style",`position: absolute; top: ${4+204*t}px; right: 4px; width: 200px; height: 200px; border: 1px solid black;`);const c=o.getContext("2d"),n=new ImageData(i,a);n.data.set(new Uint8Array(s.data.buffer)),c.putImageData(n,0,0),document.body.appendChild(o)}}let n=0;function g(t,e){const i=new o(e[0],e[1]);return i.wrapMode=33071,new r(t,i,null)}export{c as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- class s{constructor(){this.drawPhase=217}startup(){}shutdown(s){}}export{s as Technique};
2
+ class s{constructor(){this.drawPhase=109}startup(){}shutdown(s){}}export{s as Technique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{FeatureTechnique as e}from"../FeatureTechnique.js";import{isHittest as t,getSelectionDefines as r,getFeatureTextures as s,getFeatureUniforms as i}from"../featureTechniqueUtils.js";import{HeatmapResources as n}from"./HeatmapResources.js";import{HeatmapAccumulateShader as o}from"../shaders/HeatmapAccumulateShader.js";import{HeatmapResolveShader as u}from"../shaders/HeatmapResolveShader.js";class a extends e{constructor(){super(...arguments),this.type=19,this.drawPhase=73,this.shaders={accumulate:new o,resolve:new u},this._isBound=!1,this._resources=new Map}shutdown(e){super.shutdown(e),this._resources.get(e)?.destroy(),this._resources.delete(e),this._prevFBO=null,this._unbind()}render(e,n){const{context:o,painter:u,state:a}=e,l=n.instance.getInput(),{isFieldActive:d}=l.uniforms,p=this._getOrCreateResourcesRecord(o),m=p.loadQualityProfile(o);t(e)||this._bind(e,p,l),u.setShader({shader:this.shaders.accumulate,uniforms:{...i(e,n.target),kernelControls:{radius:f(l,a),isFieldActive:d?1:0}},textures:s(e),defines:{...r(e),...m.defines},optionalAttributes:{},useComputeBuffer:t(e)});const _=t(e)?h:c;u.setPipelineState(_),u.submitDraw(e,n)}getStencilReference(e){return d(e)}renderResolvePass(e,r){if(t(e))return;const{context:s,painter:i}=e,n=this._resources.get(s);if(null==this._prevFBO||null==this._prevViewport||!n?.initialized)return;const{defines:o}=n.loadQualityProfile(s),{minDensity:u,maxDensity:a,radius:l}=r.getInput().uniforms,d=8,c=9,h=n.accumulateFramebuffer,f=n.resolveGradientTexture,m={shader:this.shaders.resolve,uniforms:{accumulatedDensity:{minAndInvRange:[u,1/(a-u)],normalization:3/(l*l*Math.PI)}},textures:{densityTexture:{unit:d,texture:h.colorTexture},gradientTexture:{unit:c,texture:f}},defines:o,optionalAttributes:{},useComputeBuffer:!1};s.bindFramebuffer(this._prevFBO),s.setViewport(0,0,this._prevViewport.width,this._prevViewport.height),s.bindTexture(h.colorTexture,d),s.bindTexture(f,c),i.setPipelineState(p),i.submitDrawMesh(s,m,i.quadMesh),this._unbind()}_getOrCreateResourcesRecord(e){let t=this._resources.get(e);return null==t&&(t=new n,this._resources.set(e,t)),t}_unbind(){this._prevFBO=null,this._prevViewport=null,this._isBound=!1}_bind(e,t,r){const{context:s,state:i,pixelRatio:n}=e,o=s.boundFramebuffer;if(this._isBound||null==o)return;const u=s.getViewport();this._prevFBO=o,this._prevViewport=u;const{gradient:a,gradientHash:d}=r.uniforms;t.ensureResolveGradientTexture(s,d,a);const{width:c,height:h}=u,p=l(f(r,i),n),m=c*p,_=h*p,w=t.ensureAccumulateFBO(s,m,_);s.blitFramebuffer(o,w,1024),s.bindFramebuffer(w),s.setViewport(0,0,w.width,w.height),s.setColorMask(!0,!0,!0,!0),s.setClearColor(0,0,0,0),s.clear(16384),this._isBound=!0}}function l(e,t){const r=t>1.5?.25:.5;return e<1/(2*r)?1:r}function d(e){return e.key.level+1}const c={color:{write:[!0,!0,!0,!0],blendMode:"additive"},depth:!1,stencil:{write:!1,test:{compare:518,mask:255,op:{fail:7680,zFail:7680,zPass:7681}}}},h={...c,stencil:!1},p={color:{write:[!0,!0,!0,!0],blendMode:"composite"},depth:!1,stencil:!1};function f(e,t){const{referenceScale:r,radius:s}=e.uniforms;return s*(0!==r?r/t.scale:1)}export{a as HeatmapTechnique};
2
+ import{FeatureTechnique as e}from"../FeatureTechnique.js";import{isHittest as t,getSelectionDefines as r,getFeatureTextures as s,getFeatureUniforms as i}from"../featureTechniqueUtils.js";import{HeatmapResources as n}from"./HeatmapResources.js";import{HeatmapAccumulateShader as o}from"../shaders/HeatmapAccumulateShader.js";import{HeatmapResolveShader as u}from"../shaders/HeatmapResolveShader.js";class a extends e{constructor(){super(...arguments),this.type=19,this.drawPhase=37,this.shaders={accumulate:new o,resolve:new u},this._isBound=!1,this._resources=new Map}shutdown(e){super.shutdown(e),this._resources.get(e)?.destroy(),this._resources.delete(e),this._prevFBO=null,this._unbind()}render(e,n){const{context:o,painter:u,state:a}=e,l=n.instance.getInput(),{isFieldActive:d}=l.uniforms,p=this._getOrCreateResourcesRecord(o),m=p.loadQualityProfile(o);t(e)||this._bind(e,p,l),u.setShader({shader:this.shaders.accumulate,uniforms:{...i(e,n.target),kernelControls:{radius:f(l,a),isFieldActive:d?1:0}},textures:s(e),defines:{...r(e),...m.defines},optionalAttributes:{},useComputeBuffer:t(e)});const _=t(e)?h:c;u.setPipelineState(_),u.submitDraw(e,n)}getStencilReference(e){return d(e)}renderResolvePass(e,r){if(t(e))return;const{context:s,painter:i}=e,n=this._resources.get(s);if(null==this._prevFBO||null==this._prevViewport||!n?.initialized)return;const{defines:o}=n.loadQualityProfile(s),{minDensity:u,maxDensity:a,radius:l}=r.getInput().uniforms,d=8,c=9,h=n.accumulateFramebuffer,f=n.resolveGradientTexture,m={shader:this.shaders.resolve,uniforms:{accumulatedDensity:{minAndInvRange:[u,1/(a-u)],normalization:3/(l*l*Math.PI)}},textures:{densityTexture:{unit:d,texture:h.colorTexture},gradientTexture:{unit:c,texture:f}},defines:o,optionalAttributes:{},useComputeBuffer:!1};s.bindFramebuffer(this._prevFBO),s.setViewport(0,0,this._prevViewport.width,this._prevViewport.height),s.bindTexture(h.colorTexture,d),s.bindTexture(f,c),i.setPipelineState(p),i.submitDrawMesh(s,m,i.quadMesh),this._unbind()}_getOrCreateResourcesRecord(e){let t=this._resources.get(e);return null==t&&(t=new n,this._resources.set(e,t)),t}_unbind(){this._prevFBO=null,this._prevViewport=null,this._isBound=!1}_bind(e,t,r){const{context:s,state:i,pixelRatio:n}=e,o=s.boundFramebuffer;if(this._isBound||null==o)return;const u=s.getViewport();this._prevFBO=o,this._prevViewport=u;const{gradient:a,gradientHash:d}=r.uniforms;t.ensureResolveGradientTexture(s,d,a);const{width:c,height:h}=u,p=l(f(r,i),n),m=c*p,_=h*p,w=t.ensureAccumulateFBO(s,m,_);s.blitFramebuffer(o,w,1024),s.bindFramebuffer(w),s.setViewport(0,0,w.width,w.height),s.setColorMask(!0,!0,!0,!0),s.setClearColor(0,0,0,0),s.clear(16384),this._isBound=!0}}function l(e,t){const r=t>1.5?.25:.5;return e<1/(2*r)?1:r}function d(e){return e.key.level+1}const c={color:{write:[!0,!0,!0,!0],blendMode:"additive"},depth:!1,stencil:{write:!1,test:{compare:518,mask:255,op:{fail:7680,zFail:7680,zPass:7681}}}},h={...c,stencil:!1},p={color:{write:[!0,!0,!0,!0],blendMode:"composite"},depth:!1,stencil:!1};function f(e,t){const{referenceScale:r,radius:s}=e.uniforms;return s*(0!==r?r/t.scale:1)}export{a as HeatmapTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{FeatureTechnique as e}from"../FeatureTechnique.js";import{getSelectionDefines as t,getFeaturePipelineState as s,isHittest as r,getFeatureTextures as a,getFeatureUniforms as i,resolveDynamicUniforms as n}from"../featureTechniqueUtils.js";import{TextShader as o}from"../text/TextShader.js";class u extends e{constructor(){super(...arguments),this.type=20,this.shaders={geometry:new o},this.drawPhase=14,this.symbologyPlane=3}render(e,o){const{painter:u}=e,m=t(e),d={...s(e),stencil:{write:!1,test:{compare:516,mask:255,op:{fail:7680,zFail:7680,zPass:7680}}}},c=o.instance.getInput(),{mosaicInfo:f,mosaicTexture:p}=u.textureManager.getBindingInfo(e,o.textureKey,!1),l={shader:this.shaders.geometry,uniforms:{...n(e,o.target,c.uniforms),...i(e,o.target),mosaicInfo:f},textures:{...a(e),mosaicTexture:p},defines:{...m,textRenderPassType:0,isBackgroundPass:!0,isLabel:!0},optionalAttributes:c.optionalAttributes,useComputeBuffer:r(e)};u.setPipelineState(d),u.setShader(l),u.submitDraw(e,o,{stencilRef:255}),u.setShader({...l,defines:{...m,textRenderPassType:2,isBackgroundPass:!1,isLabel:!0}}),u.submitDraw(e,o,{stencilRef:255}),u.setShader({...l,defines:{...m,textRenderPassType:0,isBackgroundPass:!1,isLabel:!0}}),u.submitDraw(e,o,{stencilRef:255})}}export{u as LabelTechnique};
2
+ import{FeatureTechnique as e}from"../FeatureTechnique.js";import{getSelectionDefines as t,getFeaturePipelineState as s,isHittest as r,getFeatureTextures as a,getFeatureUniforms as i,resolveDynamicUniforms as n}from"../featureTechniqueUtils.js";import{TextShader as o}from"../text/TextShader.js";class u extends e{constructor(){super(...arguments),this.type=20,this.shaders={geometry:new o},this.drawPhase=6,this.symbologyPlane=3}render(e,o){const{painter:u}=e,m=t(e),d={...s(e),stencil:{write:!1,test:{compare:516,mask:255,op:{fail:7680,zFail:7680,zPass:7680}}}},c=o.instance.getInput(),{mosaicInfo:f,mosaicTexture:p}=u.textureManager.getBindingInfo(e,o.textureKey,!1),l={shader:this.shaders.geometry,uniforms:{...n(e,o.target,c.uniforms),...i(e,o.target),mosaicInfo:f},textures:{...a(e),mosaicTexture:p},defines:{...m,textRenderPassType:0,isBackgroundPass:!0,isLabel:!0},optionalAttributes:c.optionalAttributes,useComputeBuffer:r(e)};u.setPipelineState(d),u.setShader(l),u.submitDraw(e,o,{stencilRef:255}),u.setShader({...l,defines:{...m,textRenderPassType:2,isBackgroundPass:!1,isLabel:!0}}),u.submitDraw(e,o,{stencilRef:255}),u.setShader({...l,defines:{...m,textRenderPassType:0,isBackgroundPass:!1,isLabel:!0}}),u.submitDraw(e,o,{stencilRef:255})}}export{u as LabelTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{destroyMaybe as e}from"../../../../../../../core/maybe.js";import{fromValues as t}from"../../../../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{FeatureTile as i}from"../../../FeatureTile.js";import{Mesh as s}from"../../../meshing/Mesh.js";import{Technique as r}from"../Technique.js";import{getTileUniforms as o}from"../shaders/Tile.js";import{TileDebugInfoShader as n,TileDebugInfoOutlineShader as h}from"../shaders/TileDebugInfoShader.js";import{getTileContainerUniforms as u}from"../shaders/TileInfo.js";import{getViewUniforms as a}from"../shaders/ViewInfo.js";import{TileDebugInfoTexture as l}from"./TileDebugInfoTexture.js";import{PrimitiveType as d,DataType as m}from"../../../../../../webgl/enums.js";import{VertexElementDescriptor as p}from"../../../../../../webgl/VertexElementDescriptor.js";class c extends r{constructor(){super(...arguments),this.type=34,this.drawPhase=64,this.shaders={outline:new h,tileInfo:new n},this._outlineMesh=null,this._color=t(1,0,0,1),this._texture=new l}render(e,t){if(!(this.drawPhase&e.drawPhase))return;const{context:s,painter:r}=e;if(!t.isReady&&t instanceof i&&t.hasData)return;const n=this._getOutlineMesh(s),h=a(e),l=u(e),d=o(e.tilingScheme,t);r.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},depth:!1,stencil:!1});const m={shader:this.shaders.outline,uniforms:{view:h,tileContainer:l,tile:d,config:{coordRange:[t.rangeX,t.rangeY],depth:0,color:this._color}},textures:void 0,defines:void 0,optionalAttributes:void 0,useComputeBuffer:!1};r.submitDrawMeshUntyped(s,m,n);const p=this._texture.getTexture(s,t);r.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},depth:!1,stencil:!1});const c={shader:this.shaders.tileInfo,uniforms:{view:h,tileContainer:l,tile:d,config:{depth:0,coordRatio:[t.rangeX/t.width,t.rangeY/t.height],delta:[0,0],dimensions:[p.descriptor.width,p.descriptor.height]}},textures:{texture:{texture:p,unit:0}},defines:void 0,optionalAttributes:void 0,useComputeBuffer:!1};r.submitDrawMesh(s,c,r.quadMesh)}shutdown(){this._outlineMesh=e(this._outlineMesh),this._texture.shutdown()}_getOutlineMesh(e){return this._outlineMesh||(this._outlineMesh=new s(e,{vertex:{geometry:{data:new Int8Array([0,0,1,0,1,1,0,1]),layout:[new p("position",2,m.BYTE,0,2)]}},groups:[{primitive:d.LINE_LOOP}],parts:[{group:0,start:0,count:4}]})),this._outlineMesh}}export{c as TileDebugInfoTechnique};
2
+ import{destroyMaybe as e}from"../../../../../../../core/maybe.js";import{fromValues as t}from"../../../../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{FeatureTile as i}from"../../../FeatureTile.js";import{Mesh as s}from"../../../meshing/Mesh.js";import{Technique as r}from"../Technique.js";import{getTileUniforms as o}from"../shaders/Tile.js";import{TileDebugInfoShader as n,TileDebugInfoOutlineShader as h}from"../shaders/TileDebugInfoShader.js";import{getTileContainerUniforms as u}from"../shaders/TileInfo.js";import{getViewUniforms as a}from"../shaders/ViewInfo.js";import{TileDebugInfoTexture as l}from"./TileDebugInfoTexture.js";import{PrimitiveType as d,DataType as m}from"../../../../../../webgl/enums.js";import{VertexElementDescriptor as p}from"../../../../../../webgl/VertexElementDescriptor.js";class c extends r{constructor(){super(...arguments),this.type=34,this.drawPhase=32,this.shaders={outline:new h,tileInfo:new n},this._outlineMesh=null,this._color=t(1,0,0,1),this._texture=new l}render(e,t){if(!(this.drawPhase&e.drawPhase))return;const{context:s,painter:r}=e;if(!t.isReady&&t instanceof i&&t.hasData)return;const n=this._getOutlineMesh(s),h=a(e),l=u(e),d=o(e.tilingScheme,t);r.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},depth:!1,stencil:!1});const m={shader:this.shaders.outline,uniforms:{view:h,tileContainer:l,tile:d,config:{coordRange:[t.rangeX,t.rangeY],depth:0,color:this._color}},textures:void 0,defines:void 0,optionalAttributes:void 0,useComputeBuffer:!1};r.submitDrawMeshUntyped(s,m,n);const p=this._texture.getTexture(s,t);r.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},depth:!1,stencil:!1});const c={shader:this.shaders.tileInfo,uniforms:{view:h,tileContainer:l,tile:d,config:{depth:0,coordRatio:[t.rangeX/t.width,t.rangeY/t.height],delta:[0,0],dimensions:[p.descriptor.width,p.descriptor.height]}},textures:{texture:{texture:p,unit:0}},defines:void 0,optionalAttributes:void 0,useComputeBuffer:!1};r.submitDrawMesh(s,c,r.quadMesh)}shutdown(){this._outlineMesh=e(this._outlineMesh),this._texture.shutdown()}_getOutlineMesh(e){return this._outlineMesh||(this._outlineMesh=new s(e,{vertex:{geometry:{data:new Int8Array([0,0,1,0,1,1,0,1]),layout:[new p("position",2,m.BYTE,0,2)]}},groups:[{primitive:d.LINE_LOOP}],parts:[{group:0,start:0,count:4}]})),this._outlineMesh}}export{c as TileDebugInfoTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{fromValues as e}from"../../../../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{Technique as s}from"../Technique.js";import{getTileUniforms as t}from"../shaders/Tile.js";import{getTileContainerUniforms as r}from"../shaders/TileInfo.js";import{TileStencilShader as i}from"../shaders/TileStencilShader.js";import{getViewUniforms as o}from"../shaders/ViewInfo.js";class a extends s{constructor(){super(...arguments),this.type=35,this.drawPhase=211,this.shaders={tileStencil:new i},this._color=e(1,0,0,1)}render(e,s,i){if(!(this.drawPhase&e.drawPhase&&s.visible))return;const{context:a,painter:n}=e,l=i?.rasterVF??null;n.setPipelineState({color:!1,depth:!1,stencil:{write:{mask:255},test:{compare:516,op:{fail:7680,zFail:7680,zPass:7681},mask:255}}});const c={shader:this.shaders.tileStencil,uniforms:{view:o(e),tileContainer:r(e),tile:t(e.tilingScheme,s),config:{coordRange:[s.rangeX,s.rangeY],depth:0,color:this._color},rasterVF:l},textures:void 0,defines:{isRasterVF:null!=l},optionalAttributes:void 0,useComputeBuffer:!1};n.submitDrawMesh(a,c,n.quadMesh,{stencilRef:s.stencilRef})}}export{a as TileStencilTechnique};
2
+ import{fromValues as e}from"../../../../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{Technique as s}from"../Technique.js";import{getTileUniforms as t}from"../shaders/Tile.js";import{getTileContainerUniforms as r}from"../shaders/TileInfo.js";import{TileStencilShader as i}from"../shaders/TileStencilShader.js";import{getViewUniforms as o}from"../shaders/ViewInfo.js";class a extends s{constructor(){super(...arguments),this.type=35,this.drawPhase=107,this.shaders={tileStencil:new i},this._color=e(1,0,0,1)}render(e,s,i){if(!(this.drawPhase&e.drawPhase&&s.visible))return;const{context:a,painter:n}=e,l=i?.rasterVF??null;n.setPipelineState({color:!1,depth:!1,stencil:{write:{mask:255},test:{compare:516,op:{fail:7680,zFail:7680,zPass:7681},mask:255}}});const c={shader:this.shaders.tileStencil,uniforms:{view:o(e),tileContainer:r(e),tile:t(e.tilingScheme,s),config:{coordRange:[s.rangeX,s.rangeY],depth:0,color:this._color},rasterVF:l},textures:void 0,defines:{isRasterVF:null!=l},optionalAttributes:void 0,useComputeBuffer:!1};n.submitDrawMesh(a,c,n.quadMesh,{stencilRef:s.stencilRef})}}export{a as TileStencilTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../../../core/accessorSupport/decorators.js";import{FeatureLikeLayerView2D as o}from"./FeatureLikeLayerView2D.js";import t from"../../layers/FeatureLayerView.js";let s=class extends(o(t)){};s=e([r("esri.views.2d.layers.AnnotationFeatureLayerView2D")],s);const a=s;export{a as default};
2
+ import{__decorate as e}from"tslib";import{watch as r,initial as t}from"../../../core/reactiveUtils.js";import{subclass as s}from"../../../core/accessorSupport/decorators.js";import{FeatureLikeLayerView2D as i}from"./FeatureLikeLayerView2D.js";import o from"../../layers/AnnotationFeatureLayerView.js";let a=class extends(i(o)){initialize(){this.addHandles([r(()=>this.view.scale,()=>this._update(),t)],"constructor")}hasRenderer(){return!0}};a=e([s("esri.views.2d.layers.AnnotationFeatureLayerView2D")],a);const n=a;export{n as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import has from"../../../../core/has.js";import{destroyMaybe as e}from"../../../../core/maybe.js";import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{signal as r}from"../../../../core/signal.js";import{AFeatureContainer as s}from"../../engine/AFeatureContainer.js";import{effectFlag0 as i,filterFlag0 as n}from"../../engine/webgl/definitions.js";import a from"../../engine/webgl/shaderGraph/techniques/FeatureInstanceStore.js";import{Techniques as o}from"../../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import{FeatureTilePresentStrategy as l}from"./FeatureTilePresentStrategy.js";import{RenderState as d}from"./RenderState.js";import{renderHighlight as h}from"../support/util.js";import{createHittestQuery as u}from"../../support/hitTestUtils.js";class c{constructor(e){this.inner=e,this.resolver=Promise.withResolvers()}}class p{constructor(e){this.level=e,this.id=performance.now(),this.messages=[]}}class f{constructor(e,t){this.id=e,this.version=t}}class _ extends s{constructor(e){super(e.view.featuresTilingScheme),this.referenceScale=null,this._updatingChildren=r(!1),this._hitTestsRequests=[],this._renderState=r(null),this._renderStateNext=r(null),this._store=new a,this._subscriptions=new Map,this._presentation=new l,this._updateStatisticsRequests=[],this._lockStatisticUpdates=!1,this._supportsInstanceCleanup=!0,this._shouldUnlockAttributeView=!1,this._layerView=e,this.addTransitionable(this._layerView.featureEffectView)}destroy(){super.destroy(),this._renderState.value=e(this._renderState.value),this._renderStateNext.value=e(this._renderStateNext.value)}get batching(){return has("featurelayer-strict-draw-order")?1:has("featurelayer-force-marker-text-draw-order")?2:0}get updating(){const e=this._updatingChildren.value,t=!this._renderState.value||this._renderState.value.updating,r=!!this._renderStateNext.value,s=this.attributeView.updating;return e||t||r||s}subscriptions(){return this._subscriptions.values()}get hasLabels(){return null!==this.labelSchema}get hasHighlight(){return this._layerView.hasHighlight}get children(){return this._renderState.value?this._renderState.value.tiles().filter(e=>e.presenting):[]}get usedMemory(){let e=0;return this._renderState.value&&(e+=this._renderState.value.usedMemory),this._renderStateNext.value&&(e+=this._renderStateNext.value.usedMemory),e+=this.attributeView.usedMemory,e}get instanceStore(){return this._store}get labelingCollisionInfos(){if(!this._deconflictionInfo)throw new Error("InternalError: DeconflictionInfo not defined. Was update called?");return this._deconflictionInfo}get labelSchema(){return this._schema?.mesh.factory.labels??null}get layerOrder(){return this._layerView.view.allLayerViews.items.indexOf(this._layerView)}get tiles(){return this._renderState.value?.tiles()}get requiresRefresh(){return!!this._renderState.value?.requiresRefresh}get _instanceStore(){return this._store}_getHeatmapInstance(e){if(null==this._instanceStore||!(e.drawPhase&o.heatmap.drawPhase))return null;for(const t of this._instanceStore.values())if(v(t))return t;return null}update(e,t){this._schema=e,this._deconflictionInfo=t}setCoverage(e){this._presentation.updateCoverage(e)}getPresenting(){const e=new Set;for(const t of this._renderState.value?.tiles()??[])t.presenting&&e.add(t.id);return e}beforeRender(e){if(super.beforeRender(e),this._renderState.value){for(const t of this._renderState.value.tiles())t.setTransform(e.state);if(!e.decluttering){this._presentation.update(this._renderState.value.tiles());for(const e of this._renderState.value.tiles())e.upload(this._instanceStore,this.batching)}this._updatingChildren.value=!this.children.every(e=>e.ended&&e.presenting)}}renderChildren(e){switch(super.renderChildren(e),e.drawPhase){case 1:return this._renderMapPhase(e);case 16:return this._renderHighlightPhase(e);case 2:return this._renderLabelPhase(e)}}afterRender(e){super.afterRender(e),e.decluttering||(this._finializeUpdate(),this._updateAttributeView(),this._handleSwapRenderState(),this._renderState.value?.update(this.attributeView.currentEpoch)),this._hitTestsRequests.length&&this.requestRender()}updateStart(e){return this.attributeView.lockTextureUploads(),this._supportsInstanceCleanup=!e&&"dictionary"!==this._schema?.mesh.factory.symbology.type,this.instanceStore.updateStart(this._supportsInstanceCleanup),this.instanceStore}async updateEnd(e,t,r){return this._updateResolver=new c({schema:e,deconflictionInfo:t,invalidateMesh:r}),this.requestRender(),e.mesh.factory.referenceScale&&(this.referenceScale=e.mesh.factory.referenceScale),this._updateResolver.resolver.promise}updateAttributeView(e){this.requestRender(),this.attributeView.requestUpdate(e)}updateSubscriptions(e){for(const{tileId:t,version:r}of e.subscribe){if(!this._subscriptions.has(t)){const e=new f(t,r);this._subscriptions.set(t,e);continue}this._subscriptions.get(t).version=r}for(const t of e.unsubscribe)this._subscriptions.delete(t),this.removeTile(t)}isFeatureFiltered(e){const t=this.attributeView.getFilterFlags(e),r=t&n,s=null==this._layerView.featureEffectView.featureEffect||this._layerView.featureEffectView.featureEffect.excludedLabelsVisible||t&i;return!(r&&s)}getDisplayStatistics(e,t){const r=this._statisticsByLevel.get(e);return r?r.get(t):null}updateStatistics(e,t){if(this._lockStatisticUpdates)return void this._updateStatisticsRequests.push({level:e,statistics:t});let r=this._statisticsByLevel.get(e);r||(r=new Map,this._statisticsByLevel.set(e,r));for(const s of t)r.set(s.fieldName,{minValue:s.minValue,maxValue:s.maxValue})}beginLevelMeshUpdate(e){if(null!=this._pendingLevelUpdate)throw new Error("InternalError: Pending level mesh update in progress");return this._pendingLevelUpdate=new p(e),has("esri-2d-update-debug")&&console.debug(`FeatureContainer.beginLevelMeshUpdate(level=${e}, id=${this._pendingLevelUpdate.id})`),this._pendingLevelUpdate.id}applyLevelMeshUpdate(e){if(null==this._pendingLevelUpdate)throw new Error("InternalError: No level mesh update to apply");if(this._pendingLevelUpdate.id!==e)throw new Error("InternalError: Unexpected id");if(has("esri-2d-update-debug")){const{id:e,level:t}=this._pendingLevelUpdate;console.debug(`FeatureContainer.applyLevelMeshUpdate(level=${t}, id=${e})`)}const{level:t,messages:r}=this._pendingLevelUpdate,s=this._renderStateNext.value??this._renderState.value;if(!s)throw new Error("InternalError: No renderState defined");s.enqueueLevelReplace(t,r),this._pendingLevelUpdate=null,this.requestRender()}lockForOverrides(){this._renderState.value?.lockUploads(),this._lockStatisticUpdates=!0,this.attributeView.locked||(this.attributeView.lockTextureUploads(),this._shouldUnlockAttributeView=!0)}unlockForOverrides(){this._renderState.value?.unlockUploads(),this._shouldUnlockAttributeView&&(this.attributeView.unlockTextureUploads()&&this.hasLabels&&this.requestDeclutter(),this._shouldUnlockAttributeView=!1),this._lockStatisticUpdates=!1;for(const e of this._updateStatisticsRequests)this.updateStatistics(e.level,e.statistics);this._updateStatisticsRequests=[],this._renderState.value?.flush(this.attributeView.currentEpoch),this.requestRender()}async updateRenderState(e){if(this._renderStateNext.value)throw new Error("InternalError: renderStateNext already exists");has("esri-2d-update-debug")&&console.debug(`Version[${e}] FeatureContainer.updateRenderState`),this._renderStateNext.value=new d(()=>this._stage,e=>this._subscriptions.get(e)?.version,e,this.tilingScheme)}async swapRenderState(){if(!this._renderStateNext.value)throw new Error("InternalError: renderStateNext not yet created");if(this._renderStateSwapResolver)throw new Error("InternalError: renderState swap already in progress");this._renderStateSwapResolver=Promise.withResolvers(),await this._renderStateSwapResolver.promise}async onMessage(e,r){if(t(r),!this._pendingLevelUpdate)return this._applyMessage(e);this._pendingLevelUpdate.messages.push(e)}removeTile(e){(this._renderState.value||this._renderStateNext.value)&&(this._renderState.value&&this._renderState.value.removeTile(e),this._renderStateNext.value&&this._renderStateNext.value.removeTile(e))}hitTest(e){const t=u(e);if(!t)return console.warn("Unexpected hittest input:",e),Promise.resolve({trueHitIds:[],candidateHitIds:[]});let r=this._hitTestsRequests.find(({query:e})=>t.hittestType===e.hittestType&&t.input===e.input);const s=Promise.withResolvers();return r?r.resolvers.push(s):(r={query:t,resolvers:[s]},this._hitTestsRequests.push(r)),this.requestRender(),s.promise}getSortKeys(e){const t=new Set(e),r=new Map;for(const s of this.children)if(s.getSortKeys(t).forEach((e,t)=>r.set(t,e)),r.size===t.size)break;return r}get hasAnimation(){return this.hasLabels}doRender(e){const{minScale:t,maxScale:r}=this._layerView.layer.effectiveScaleRange,s=e.state.scale;s<=(t||1/0)&&s>=r&&super.doRender(e)}setStencilReference(e){if(null==this._getHeatmapInstance(e))super.setStencilReference(e);else for(const t of this.children)t.stencilRef=o.heatmap.getStencilReference(t)}createRenderParams(e){const t=super.createRenderParams(e);return t.referenceScale=this.referenceScale,t}_applyMessage(e){const t=e.inner;if(!this._subscriptions.has(t.id))return;const r=this._subscriptions.get(t.id);if(r.version!==t.subscriptionVesrion){if(has("esri-2d-update-debug")){const e=`${t.subscriptionVesrion} != ${r.version}`;console.debug(`Version[${e}] Tile[${t.id}] FeatureContainer - Dropping message, outdated version]`,t)}return}const s=this._renderStateNext.value??this._renderState.value;if(!s)throw new Error("InternalError: No renderState defined");s.version!==t.version&&console.error(`InternalError: Version mismatch. [renderState: ${s.version}, message: ${t.version}]`),s.enqueueUpdate(e),this.requestRender()}_finializeUpdate(){if(!this._updateResolver)return;const{schema:e,deconflictionInfo:t,invalidateMesh:r}=this._updateResolver.inner;this._schema=e,this._deconflictionInfo=t,this.attributeView.unlockTextureUploads()&&this.hasLabels&&this.requestDeclutter(),this.instanceStore.updateEnd(this._supportsInstanceCleanup),r&&(this.restartAllAnimations(),this.swapRenderState());const s="heatmap"===e.mesh.factory.symbology.type?"target-defer":"eager";this._presentation.updateStrategy(s),this._updateResolver.resolver.resolve(),this._updateResolver=null,this.requestRender()}_handleSwapRenderState(){if(this._renderStateSwapResolver&&this._renderStateNext.value){has("esri-2d-update-debug")&&console.debug(`Version[${this._renderStateNext.value}] FeatureContainer.update.swapRenderState`);const e=this._renderState.value,t=new Set,r=new Set;for(const s of e?.tiles()??[])s.decluttering&&t.add(s.id),s.presenting&&r.add(s.id);this._renderState.value=this._renderStateNext.value,this._renderStateNext.value=null,this._renderState.value.flush(this.attributeView.currentEpoch),e?.destroy(),this._renderStateSwapResolver.resolve(),this._renderStateSwapResolver=null;for(const s of this._renderState.value.tiles())t.has(s.id)&&(s.decluttering=!0),r.has(s.id)&&(s.presenting=!0);this.requestRender(),this.hasLabels&&this.requestDeclutter()}}_renderMapPhase(e){this._layerView.featureEffectView.hasEffects?(this._renderOutsideEffect(e),this._renderInsideEffect(e)):this._renderFeatures(e,0),this._hitTestsRequests.length>0&&this._renderHittest(e)}_renderHighlightPhase(e){this.hasHighlight&&h(e,!1,e=>{this._renderFeatures(e,1)})}_renderLabelPhase(e){this._renderFeatures(e,0)}_renderInsideEffect(e){const t=e.painter.effects.insideEffect;t.bind(e),this._renderFeatures(e,2),t.draw(e,this._layerView.featureEffectView.includedEffects),t.unbind()}_renderOutsideEffect(e){const t=e.painter.effects.outsideEffect;t.bind(e),this._renderFeatures(e,3),t.draw(e,this._layerView.featureEffectView.excludedEffects),t.unbind()}_renderHittest(e){const{context:t}=e,r=e.painter.effects.hittest,s=t.boundFramebuffer,i=t.getViewport(),n=e.passOptions,a=e.drawPhase;r.bind(e),e.passOptions=r.createOptions(e,this._hitTestsRequests),e.drawPhase=8;const{distance:o,smallSymbolDistance:l}=e.passOptions,d=Math.max(o,l),h=e.passOptions.hittestType;for(const u of this.children)u.visible&&("rect"===h?u.containsScreenRect(e.state,e.passOptions.tlbr)&&this._renderTile(u,e,0):u.containsScreenPoint(e.state,e.passOptions.position,2*d)&&this._renderTile(u,e,0));r.draw(e),r.unbind(e),t.bindFramebuffer(s),t.restoreViewport(i),e.passOptions=n,e.drawPhase=a}_renderFeatures(e,t){const r=this._getHeatmapInstance(e);null!=r?this._renderHeatmapFeatures(e,t,r):this._renderGeometryFeatures(e,t)}_renderGeometryFeatures(e,t){for(const r of this.children)r.visible&&this._renderTile(r,e,t)}_renderHeatmapFeatures(e,t,r){for(const s of this.children)s.visible&&this._renderTile(s,e,t,19);r.techniqueRef.renderResolvePass(e,r)}_renderTile(e,t,r,s){t.selection=r,e.getDisplayList()?.render(t,s)}}function v(e){return 19===e.techniqueRef.type}export{_ as FeatureContainer};
2
+ import has from"../../../../core/has.js";import{destroyMaybe as e}from"../../../../core/maybe.js";import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{signal as r}from"../../../../core/signal.js";import{AFeatureContainer as s}from"../../engine/AFeatureContainer.js";import{effectFlag0 as i,filterFlag0 as n}from"../../engine/webgl/definitions.js";import a from"../../engine/webgl/shaderGraph/techniques/FeatureInstanceStore.js";import{Techniques as o}from"../../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import{FeatureTilePresentStrategy as l}from"./FeatureTilePresentStrategy.js";import{RenderState as d}from"./RenderState.js";import{renderHighlight as h}from"../support/util.js";import{createHittestQuery as u}from"../../support/hitTestUtils.js";class c{constructor(e){this.inner=e,this.resolver=Promise.withResolvers()}}class p{constructor(e){this.level=e,this.id=performance.now(),this.messages=[]}}class f{constructor(e,t){this.id=e,this.version=t}}class _ extends s{constructor(e){super(e.view.featuresTilingScheme),this.referenceScale=null,this._updatingChildren=r(!1),this._hitTestsRequests=[],this._renderState=r(null),this._renderStateNext=r(null),this._store=new a,this._subscriptions=new Map,this._presentation=new l,this._updateStatisticsRequests=[],this._lockStatisticUpdates=!1,this._supportsInstanceCleanup=!0,this._shouldUnlockAttributeView=!1,this._layerView=e,this.addTransitionable(this._layerView.featureEffectView)}destroy(){super.destroy(),this._renderState.value=e(this._renderState.value),this._renderStateNext.value=e(this._renderStateNext.value)}get batching(){return has("featurelayer-strict-draw-order")?1:has("featurelayer-force-marker-text-draw-order")?2:0}get updating(){const e=this._updatingChildren.value,t=!this._renderState.value||this._renderState.value.updating,r=!!this._renderStateNext.value,s=this.attributeView.updating;return e||t||r||s}subscriptions(){return this._subscriptions.values()}get hasLabels(){return null!==this.labelSchema}get hasHighlight(){return this._layerView.hasHighlight}get children(){return this._renderState.value?this._renderState.value.tiles().filter(e=>e.presenting):[]}get usedMemory(){let e=0;return this._renderState.value&&(e+=this._renderState.value.usedMemory),this._renderStateNext.value&&(e+=this._renderStateNext.value.usedMemory),e+=this.attributeView.usedMemory,e}get instanceStore(){return this._store}get labelingCollisionInfos(){if(!this._deconflictionInfo)throw new Error("InternalError: DeconflictionInfo not defined. Was update called?");return this._deconflictionInfo}get labelSchema(){return this._schema?.mesh.factory.labels??null}get layerOrder(){return this._layerView.view.allLayerViews.items.indexOf(this._layerView)}get tiles(){return this._renderState.value?.tiles()}get requiresRefresh(){return!!this._renderState.value?.requiresRefresh}get _instanceStore(){return this._store}_getHeatmapInstance(e){if(null==this._instanceStore||!(e.drawPhase&o.heatmap.drawPhase))return null;for(const t of this._instanceStore.values())if(v(t))return t;return null}update(e,t){this._schema=e,this._deconflictionInfo=t}setCoverage(e){this._presentation.updateCoverage(e)}getPresenting(){const e=new Set;for(const t of this._renderState.value?.tiles()??[])t.presenting&&e.add(t.id);return e}beforeRender(e){if(super.beforeRender(e),this._renderState.value){for(const t of this._renderState.value.tiles())t.setTransform(e.state);if(!e.decluttering){this._presentation.update(this._renderState.value.tiles());for(const e of this._renderState.value.tiles())e.upload(this._instanceStore,this.batching)}this._updatingChildren.value=!this.children.every(e=>e.ended&&e.presenting)}}renderChildren(e){switch(super.renderChildren(e),e.drawPhase){case 1:return this._renderMapPhase(e);case 8:return this._renderHighlightPhase(e);case 2:return this._renderLabelPhase(e)}}afterRender(e){super.afterRender(e),e.decluttering||(this._finializeUpdate(),this._updateAttributeView(),this._handleSwapRenderState(),this._renderState.value?.update(this.attributeView.currentEpoch)),this._hitTestsRequests.length&&this.requestRender()}updateStart(e){return this.attributeView.lockTextureUploads(),this._supportsInstanceCleanup=!e&&"dictionary"!==this._schema?.mesh.factory.symbology.type,this.instanceStore.updateStart(this._supportsInstanceCleanup),this.instanceStore}async updateEnd(e,t,r){return this._updateResolver=new c({schema:e,deconflictionInfo:t,invalidateMesh:r}),this.requestRender(),e.mesh.factory.referenceScale&&(this.referenceScale=e.mesh.factory.referenceScale),this._updateResolver.resolver.promise}updateAttributeView(e){this.requestRender(),this.attributeView.requestUpdate(e)}updateSubscriptions(e){for(const{tileId:t,version:r}of e.subscribe){if(!this._subscriptions.has(t)){const e=new f(t,r);this._subscriptions.set(t,e);continue}this._subscriptions.get(t).version=r}for(const t of e.unsubscribe)this._subscriptions.delete(t),this.removeTile(t)}isFeatureFiltered(e){const t=this.attributeView.getFilterFlags(e),r=t&n,s=null==this._layerView.featureEffectView.featureEffect||this._layerView.featureEffectView.featureEffect.excludedLabelsVisible||t&i;return!(r&&s)}getDisplayStatistics(e,t){const r=this._statisticsByLevel.get(e);return r?r.get(t):null}updateStatistics(e,t){if(this._lockStatisticUpdates)return void this._updateStatisticsRequests.push({level:e,statistics:t});let r=this._statisticsByLevel.get(e);r||(r=new Map,this._statisticsByLevel.set(e,r));for(const s of t)r.set(s.fieldName,{minValue:s.minValue,maxValue:s.maxValue})}beginLevelMeshUpdate(e){if(null!=this._pendingLevelUpdate)throw new Error("InternalError: Pending level mesh update in progress");return this._pendingLevelUpdate=new p(e),has("esri-2d-update-debug")&&console.debug(`FeatureContainer.beginLevelMeshUpdate(level=${e}, id=${this._pendingLevelUpdate.id})`),this._pendingLevelUpdate.id}applyLevelMeshUpdate(e){if(null==this._pendingLevelUpdate)throw new Error("InternalError: No level mesh update to apply");if(this._pendingLevelUpdate.id!==e)throw new Error("InternalError: Unexpected id");if(has("esri-2d-update-debug")){const{id:e,level:t}=this._pendingLevelUpdate;console.debug(`FeatureContainer.applyLevelMeshUpdate(level=${t}, id=${e})`)}const{level:t,messages:r}=this._pendingLevelUpdate,s=this._renderStateNext.value??this._renderState.value;if(!s)throw new Error("InternalError: No renderState defined");s.enqueueLevelReplace(t,r),this._pendingLevelUpdate=null,this.requestRender()}lockForOverrides(){this._renderState.value?.lockUploads(),this._lockStatisticUpdates=!0,this.attributeView.locked||(this.attributeView.lockTextureUploads(),this._shouldUnlockAttributeView=!0)}unlockForOverrides(){this._renderState.value?.unlockUploads(),this._shouldUnlockAttributeView&&(this.attributeView.unlockTextureUploads()&&this.hasLabels&&this.requestDeclutter(),this._shouldUnlockAttributeView=!1),this._lockStatisticUpdates=!1;for(const e of this._updateStatisticsRequests)this.updateStatistics(e.level,e.statistics);this._updateStatisticsRequests=[],this._renderState.value?.flush(this.attributeView.currentEpoch),this.requestRender()}async updateRenderState(e){if(this._renderStateNext.value)throw new Error("InternalError: renderStateNext already exists");has("esri-2d-update-debug")&&console.debug(`Version[${e}] FeatureContainer.updateRenderState`),this._renderStateNext.value=new d(()=>this._stage,e=>this._subscriptions.get(e)?.version,e,this.tilingScheme)}async swapRenderState(){if(!this._renderStateNext.value)throw new Error("InternalError: renderStateNext not yet created");if(this._renderStateSwapResolver)throw new Error("InternalError: renderState swap already in progress");this._renderStateSwapResolver=Promise.withResolvers(),await this._renderStateSwapResolver.promise}async onMessage(e,r){if(t(r),!this._pendingLevelUpdate)return this._applyMessage(e);this._pendingLevelUpdate.messages.push(e)}removeTile(e){(this._renderState.value||this._renderStateNext.value)&&(this._renderState.value&&this._renderState.value.removeTile(e),this._renderStateNext.value&&this._renderStateNext.value.removeTile(e))}hitTest(e){const t=u(e);if(!t)return console.warn("Unexpected hittest input:",e),Promise.resolve({trueHitIds:[],candidateHitIds:[]});let r=this._hitTestsRequests.find(({query:e})=>t.hittestType===e.hittestType&&t.input===e.input);const s=Promise.withResolvers();return r?r.resolvers.push(s):(r={query:t,resolvers:[s]},this._hitTestsRequests.push(r)),this.requestRender(),s.promise}getSortKeys(e){const t=new Set(e),r=new Map;for(const s of this.children)if(s.getSortKeys(t).forEach((e,t)=>r.set(t,e)),r.size===t.size)break;return r}get hasAnimation(){return this.hasLabels}doRender(e){const{minScale:t,maxScale:r}=this._layerView.layer.effectiveScaleRange,s=e.state.scale;s<=(t||1/0)&&s>=r&&super.doRender(e)}setStencilReference(e){if(null==this._getHeatmapInstance(e))super.setStencilReference(e);else for(const t of this.children)t.stencilRef=o.heatmap.getStencilReference(t)}createRenderParams(e){const t=super.createRenderParams(e);return t.referenceScale=this.referenceScale,t}_applyMessage(e){const t=e.inner;if(!this._subscriptions.has(t.id))return;const r=this._subscriptions.get(t.id);if(r.version!==t.subscriptionVesrion){if(has("esri-2d-update-debug")){const e=`${t.subscriptionVesrion} != ${r.version}`;console.debug(`Version[${e}] Tile[${t.id}] FeatureContainer - Dropping message, outdated version]`,t)}return}const s=this._renderStateNext.value??this._renderState.value;if(!s)throw new Error("InternalError: No renderState defined");s.version!==t.version&&console.error(`InternalError: Version mismatch. [renderState: ${s.version}, message: ${t.version}]`),s.enqueueUpdate(e),this.requestRender()}_finializeUpdate(){if(!this._updateResolver)return;const{schema:e,deconflictionInfo:t,invalidateMesh:r}=this._updateResolver.inner;this._schema=e,this._deconflictionInfo=t,this.attributeView.unlockTextureUploads()&&this.hasLabels&&this.requestDeclutter(),this.instanceStore.updateEnd(this._supportsInstanceCleanup),r&&(this.restartAllAnimations(),this.swapRenderState());const s="heatmap"===e.mesh.factory.symbology.type?"target-defer":"eager";this._presentation.updateStrategy(s),this._updateResolver.resolver.resolve(),this._updateResolver=null,this.requestRender()}_handleSwapRenderState(){if(this._renderStateSwapResolver&&this._renderStateNext.value){has("esri-2d-update-debug")&&console.debug(`Version[${this._renderStateNext.value}] FeatureContainer.update.swapRenderState`);const e=this._renderState.value,t=new Set,r=new Set;for(const s of e?.tiles()??[])s.decluttering&&t.add(s.id),s.presenting&&r.add(s.id);this._renderState.value=this._renderStateNext.value,this._renderStateNext.value=null,this._renderState.value.flush(this.attributeView.currentEpoch),e?.destroy(),this._renderStateSwapResolver.resolve(),this._renderStateSwapResolver=null;for(const s of this._renderState.value.tiles())t.has(s.id)&&(s.decluttering=!0),r.has(s.id)&&(s.presenting=!0);this.requestRender(),this.hasLabels&&this.requestDeclutter()}}_renderMapPhase(e){this._layerView.featureEffectView.hasEffects?(this._renderOutsideEffect(e),this._renderInsideEffect(e)):this._renderFeatures(e,0),this._hitTestsRequests.length>0&&this._renderHittest(e)}_renderHighlightPhase(e){this.hasHighlight&&h(e,!1,e=>{this._renderFeatures(e,1)})}_renderLabelPhase(e){this._renderFeatures(e,0)}_renderInsideEffect(e){const t=e.painter.effects.insideEffect;t.bind(e),this._renderFeatures(e,2),t.draw(e,this._layerView.featureEffectView.includedEffects),t.unbind()}_renderOutsideEffect(e){const t=e.painter.effects.outsideEffect;t.bind(e),this._renderFeatures(e,3),t.draw(e,this._layerView.featureEffectView.excludedEffects),t.unbind()}_renderHittest(e){const{context:t}=e,r=e.painter.effects.hittest,s=t.boundFramebuffer,i=t.getViewport(),n=e.passOptions,a=e.drawPhase;r.bind(e),e.passOptions=r.createOptions(e,this._hitTestsRequests),e.drawPhase=4;const{distance:o,smallSymbolDistance:l}=e.passOptions,d=Math.max(o,l),h=e.passOptions.hittestType;for(const u of this.children)u.visible&&("rect"===h?u.containsScreenRect(e.state,e.passOptions.tlbr)&&this._renderTile(u,e,0):u.containsScreenPoint(e.state,e.passOptions.position,2*d)&&this._renderTile(u,e,0));r.draw(e),r.unbind(e),t.bindFramebuffer(s),t.restoreViewport(i),e.passOptions=n,e.drawPhase=a}_renderFeatures(e,t){const r=this._getHeatmapInstance(e);null!=r?this._renderHeatmapFeatures(e,t,r):this._renderGeometryFeatures(e,t)}_renderGeometryFeatures(e,t){for(const r of this.children)r.visible&&this._renderTile(r,e,t)}_renderHeatmapFeatures(e,t,r){for(const s of this.children)s.visible&&this._renderTile(s,e,t,19);r.techniqueRef.renderResolvePass(e,r)}_renderTile(e,t,r,s){t.selection=r,e.getDisplayList()?.render(t,s)}}function v(e){return 19===e.techniqueRef.type}export{_ as FeatureContainer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{clone as e}from"../../../../../core/lang.js";import{sqlAnd as t,sqlNotIn as r}from"../../../../../core/sql.js";import{isHostedAgolService as s}from"../../../../../layers/support/arcgisLayerUrl.js";import i from"../../../../../layers/support/FeatureFilter.js";import{createFeatureIdInfo as a}from"./featureServiceUtils.js";import{addFloorFilter as o,hasFloorFilter as l}from"./floorFilterUtils.js";import{getServiceGeometryType as n}from"./geometryUtils.js";import{ExceedsLimitCache as u}from"../schema/ExceedsLimitCache.js";import{createSnapshotInfo as p,createFeatureSourceSchema as c}from"../schema/SourceSchema.js";import{getSortKey as y}from"../schema/processor/SimpleProcessorSchema.js";import{createStorageSchema as m}from"../schema/processor/StorageSchema.js";import{getAnnotationMatcherSchema as d}from"../../support/annodime/annotationSchema.js";class h{constructor(e){this.layer=e,this._cache=new u}getLabelingDeconflictionInfo(){return[]}async createSourceSchema(e,t){const r=this._createServiceInfo(e),s=null!=this.layer.editingInfo?.lastEditDate,i=this.layer.refreshInterval>0,a=!s&&i,o=p("isSourceHosted"in r&&r.isSourceHosted,a,this.layer.capabilities,r.metadata.geometryType,e.extent,this.layer.fullExtent);return c(r,o,{definitionExpression:this.layer.definitionExpression,queryScaleRanges:[],displayFilterEnabled:!1,displayFilterInfo:null,customParameters:this.layer.customParameters,gdbVersion:this.layer.gdbVersion,historicMoment:this.layer.historicMoment,timeExtent:this.layer.timeExtent,apiKey:this.layer.apiKey,sourceRefreshVersion:t,availableFields:e.availableFields,cache:this._cache,postQueryFilter:null,returnM:!1,returnZ:!1})}async createProcessorSchema(e,t,r){const{objectIdField:s,symbolCollection:i,referenceScale:a}=this.layer,o=await d(i,{cimAnalyzer:e.cimAnalyzer,cimResourceManager:e.cimResourceManager,store:e.store,scaleExpression:null,viewRotation:e.viewRotation}),l=y(null,null,s);return{storage:m(null,t.filters),mesh:{properties:{sortKey:l,timeZone:t.timeZone,returnMeshObjectId:!1,displayRefreshVersion:r,currentUser:t.currentUser},strategy:{type:"feature"},factory:{symbology:o,labels:{type:"label",classes:[]},referenceScale:a}},expressionProperties:{timeExtent:null}}}get hasRequiredSupport(){return!0}get timeOptions(){return this.layer}addFilters(e,s){e=o(this.layer,e,s),this.layer.unplacedAnnotationsVisible||(e??=new i,e.where=t(e?.where,`${this.layer.statusField} = 0`));const a=this.layer.sublayers.filter(e=>!e.visible).map(e=>e.subtypeCode);if(!a.length)return e;e??=new i;const l=r(this.layer.subtypeField,a.toArray());return e.where=t(e.where,l),e}getUpdateHashProperties(e){return this.layer.destroyed?[]:[()=>this.layer.apiKey,()=>this.layer.customParameters,()=>this.layer.definitionExpression,()=>this.layer.unplacedAnnotationsVisible,()=>l(this.layer,e)?e.floors:null,()=>this.layer.gdbVersion,()=>this.layer.historicMoment,()=>this.layer.outFields,()=>this.layer.sublayers.map(({visible:e})=>({visible:e}))]}getRenderer(){return null}setGraphicOrigin(e){const t=this.layer.findSublayerForFeature(e);e.layer=e.sourceLayer=this.layer,e.origin=t?.graphicOrigin??this.layer.graphicOrigin}_createServiceInfo(t){const r=this.layer,{capabilities:i,editingInfo:o,globalIdField:l,datesInUnknownTimezone:u,dateFieldsTimeZone:p,subtypeField:c}=r,y=n(r),m=r.timeInfo?.toJSON(),d=r.spatialReference.toJSON(),h=e(this.layer.parsedUrl),f=this.layer.objectIdField,g=s(h.path),b=t.spatialReference.toJSON();return{type:"feature-service",source:h,isSourceHosted:g,orderByFields:f,outSpatialReference:b,metadata:{timeReferenceUnknownClient:u,dateFieldsTimeZone:p,subtypeField:c,globalIdField:l,fieldsIndex:r.fieldsIndex.toJSON(),geometryType:y,featureIdInfo:a(r),timeInfo:m,spatialReference:d,outSpatialReference:b,attributeSpatialReference:this.layer.attributeSpatialReference?.toJSON(),subtypes:this.layer.subtypes?.map(e=>e.toJSON()),typeIdField:null,types:null,layerType:r.type,hasM:!1,hasZ:!1},queryMetadata:{supportsFormatPBF:i.query.supportsFormatPBF,supportsQuantization:!1,maxRecordCount:i.query.maxRecordCount,tileMaxRecordCount:i.query.tileMaxRecordCount,supportsCompactGeometry:i.query.supportsCompactGeometry,supportsDefaultSpatialReference:i.query.supportsDefaultSpatialReference,supportsMaxRecordCountFactor:i.query.supportsMaxRecordCountFactor,supportsCentroidOnDegeneratedQuantizedGeometry:i.query.supportsCentroidOnDegeneratedQuantizedGeometry,supportsDegeneratedQuantizedGeometry:i.query.supportsDegeneratedQuantizedGeometry,lastEditDate:o?.lastEditDate?.getTime(),supportsReturnExceededLimitGeometries:i.query.supportsReturnExceededLimitGeometries}}}}export{h as AnnotationLayerAdapter};
2
+ import{clone as e}from"../../../../../core/lang.js";import{floatEqualAbsolute as t}from"../../../../../core/mathUtils.js";import{sqlAnd as r,sqlNotIn as s}from"../../../../../core/sql.js";import{isHostedAgolService as a}from"../../../../../layers/support/arcgisLayerUrl.js";import i from"../../../../../layers/support/FeatureFilter.js";import{createFeatureIdInfo as o}from"./featureServiceUtils.js";import{addFloorFilter as l,hasFloorFilter as n}from"./floorFilterUtils.js";import{getServiceGeometryType as c}from"./geometryUtils.js";import{ExceedsLimitCache as u}from"../schema/ExceedsLimitCache.js";import{createSnapshotInfo as p,createFeatureSourceSchema as m}from"../schema/SourceSchema.js";import{getSortKey as y}from"../schema/processor/SimpleProcessorSchema.js";import{createStorageSchema as d}from"../schema/processor/StorageSchema.js";import{getAnnotationMatcherSchema as h}from"../../support/annodime/annotationSchema.js";class f{constructor(e){this.layer=e,this._cache=new u}getLabelingDeconflictionInfo(){return[]}async createSourceSchema(e,t){const r=this._createServiceInfo(e),s=null!=this.layer.editingInfo?.lastEditDate,a=this.layer.refreshInterval>0,i=!s&&a,o=p("isSourceHosted"in r&&r.isSourceHosted,i,this.layer.capabilities,r.metadata.geometryType,e.extent,this.layer.fullExtent);return m(r,o,{definitionExpression:this.layer.definitionExpression,queryScaleRanges:this.layer.sublayers.items.map(e=>({subtypeCode:e.subtypeCode,minScale:e.minScale,maxScale:e.maxScale})),displayFilterEnabled:!1,displayFilterInfo:null,customParameters:this.layer.customParameters,gdbVersion:this.layer.gdbVersion,historicMoment:this.layer.historicMoment,timeExtent:this.layer.timeExtent,apiKey:this.layer.apiKey,sourceRefreshVersion:t,availableFields:e.availableFields,cache:this._cache,postQueryFilter:null,returnM:!1,returnZ:!1})}async createProcessorSchema(e,t,r){const{objectIdField:s,symbolCollection:a,referenceScale:i}=this.layer,o=await h(a,{cimAnalyzer:e.cimAnalyzer,cimResourceManager:e.cimResourceManager,store:e.store,scaleExpression:null,viewRotation:e.viewRotation}),l=y(null,null,s);return{storage:d(null,t.filters),mesh:{properties:{sortKey:l,timeZone:t.timeZone,returnMeshObjectId:!1,displayRefreshVersion:r,currentUser:t.currentUser},strategy:{type:"feature"},factory:{symbology:o,labels:{type:"label",classes:[]},referenceScale:i}},expressionProperties:{timeExtent:null}}}get hasRequiredSupport(){return!0}get timeOptions(){return this.layer}addFilters(e,t){e=l(this.layer,e,t),this.layer.unplacedAnnotationsVisible||(e??=new i,e.where=r(e?.where,`${this.layer.statusField} = 0`));const a=this.layer.sublayers.filter(e=>!S(e,t)).map(e=>e.subtypeCode);if(!a.length)return e;e??=new i;const o=s(this.layer.subtypeField,a.toArray());return e.where=r(e.where,o),e}getUpdateHashProperties(e){return this.layer.destroyed?[]:[()=>this.layer.apiKey,()=>this.layer.customParameters,()=>this.layer.definitionExpression,()=>this.layer.unplacedAnnotationsVisible,()=>n(this.layer,e)?e.floors:null,()=>this.layer.gdbVersion,()=>this.layer.historicMoment,()=>this.layer.outFields,()=>this.layer.sublayers.map(({visible:e,minScale:t,maxScale:r})=>({visible:e,minScale:t,maxScale:r}))]}getRenderer(){return null}setGraphicOrigin(e){const t=this.layer.findSublayerForFeature(e);e.layer=e.sourceLayer=this.layer,e.origin=t?.graphicOrigin??this.layer.graphicOrigin}_createServiceInfo(t){const r=this.layer,{capabilities:s,editingInfo:i,globalIdField:l,datesInUnknownTimezone:n,dateFieldsTimeZone:u,subtypeField:p}=r,m=c(r),y=r.timeInfo?.toJSON(),d=r.spatialReference.toJSON(),h=e(this.layer.parsedUrl),f=this.layer.objectIdField,S=a(h.path),b=t.spatialReference.toJSON();return{type:"feature-service",source:h,isSourceHosted:S,orderByFields:f,outSpatialReference:b,metadata:{timeReferenceUnknownClient:n,dateFieldsTimeZone:u,subtypeField:p,globalIdField:l,fieldsIndex:r.fieldsIndex.toJSON(),geometryType:m,featureIdInfo:o(r),timeInfo:y,spatialReference:d,outSpatialReference:b,attributeSpatialReference:this.layer.attributeSpatialReference?.toJSON(),subtypes:this.layer.subtypes?.map(e=>e.toJSON()),typeIdField:null,types:null,layerType:r.type,hasM:!1,hasZ:!1},queryMetadata:{supportsFormatPBF:s.query.supportsFormatPBF,supportsQuantization:!1,maxRecordCount:s.query.maxRecordCount,tileMaxRecordCount:s.query.tileMaxRecordCount,supportsCompactGeometry:s.query.supportsCompactGeometry,supportsDefaultSpatialReference:s.query.supportsDefaultSpatialReference,supportsMaxRecordCountFactor:s.query.supportsMaxRecordCountFactor,supportsCentroidOnDegeneratedQuantizedGeometry:s.query.supportsCentroidOnDegeneratedQuantizedGeometry,supportsDegeneratedQuantizedGeometry:s.query.supportsDegeneratedQuantizedGeometry,lastEditDate:i?.lastEditDate?.getTime(),supportsReturnExceededLimitGeometries:s.query.supportsReturnExceededLimitGeometries}}}}function S(e,r){return e.visible&&(0===e.minScale||t(r.scale,e.minScale)||r.scale<e.minScale)&&(0===e.maxScale||t(r.scale,e.maxScale)||r.scale>e.maxScale)}export{f as AnnotationLayerAdapter};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../../core/has.js";import{baseObjectMemory as e}from"../../../../../core/memoryEstimations.js";import{minInt16 as t}from"../../../../../core/typedArrayUtil.js";import{fromRectValues as i}from"../../../../../geometry/support/aaBoundingBox.js";import r from"../../../../../layers/graphics/OptimizedGeometry.js";import{getParquetObjectId as s}from"../../../../../layers/graphics/sources/support/parquetIdUtils.js";import{FeatureSetReader as n}from"./FeatureSetReader.js";const o=new TextDecoder;class d extends n{constructor(i,r,s,n,o,d=new Uint32Array(s.size()),h,a,u){if(super(i),this._indexMap=r,this._inner=s,this._fileId=n,this._transform=o,this._displayIds=d,this._points=h,this._rowIds=a,this._emptyNumberValue=u,this._index=-1,this.usedMemory=e,this._size=this._inner.size(),this._coordinateStride=this._inner.coordinateStride(),this._rowIds||(this._rowIds=this._inner.readIdsUnsafe().slice()),!this._points&&"esriGeometryPoint"===this.geometryType){const e=this._inner.readPointCoordsQuantizedUnsafe()?.slice();e?(this._emptyNumberValue=t,this._points=e):(this._emptyNumberValue=NaN,this._points=this._inner.readPointCoordsUnsafe()?.slice())}i.featureIdInfo.type}destroy(){super.destroy(),this._inner.free()}get fields(){return this.metadata.fieldsIndex}get geometryType(){return this.metadata.geometryType}get hasFeatures(){return!0}get hasNext(){throw new Error("Method not implemented.")}get exceededTransferLimit(){return!1}get hasZ(){return this._inner.hasZ()}get hasM(){return this._inner.hasM()}async updateFields(e,t,i,r){const s=this._inner.rowGroup(),n=new Uint32Array(this._inner.readIdsUnsafe()),o=await e.createPatch(t,s,n,i,r);this._inner.insertPatchBytes(new Uint8Array(o))}getInTransform(){return this._transform}getSize(){return this._size}getCursor(){return this.copy()}getAttributeHash(){let e="";for(const t of this.fields.fields)e+=this._readAttribute(t.name,!1)+".";return e}getObjectId(){const e=this._rowIds[this._index];return s(this._fileId,e)}getDisplayId(){return this._displayIds[this._index]}setDisplayId(e){this._displayIds[this._index]=e}setIndex(e){this._index=e}getBoundsXMin(){return this._inner.boundsXMin(this._index)}getBoundsYMin(){return this._inner.boundsYMin(this._index)}getBoundsXMax(){return this._inner.boundsXMax(this._index)}getBoundsYMax(){return this._inner.boundsYMax(this._index)}getBounds(e){const t=this._inner.boundsXMin(this._index);return!!Number.isFinite(t)&&(i(e,t,this._inner.boundsYMin(this._index),this._inner.boundsXMax(this._index),this._inner.boundsYMax(this._index)),!0)}setBoundsXMin(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsYMin(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsXMax(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsYMax(e){throw new Error("InternalError: Setting bounds is unsupported")}getIndex(){return this._index}next(){for(;++this._index<this._size&&!this._getExists(););return this._index<this._size}readGeometryArea(){return this.readGeometryForDisplay()?.area()??0}copy(){const e=new d(this.metadata,this._indexMap,this._inner,this._fileId,this._transform,this._displayIds,this._points,this._rowIds,this._emptyNumberValue);return this.copyInto(e),e}copyInto(e){super.copyInto(e),e._index=this._index}_readGeometry(e){const t=this._inner.readCoordsUnsafe(this._index),i=this._inner.readLengthsUnsafe(this._index);return t&&i?new r(i,t,this.hasZ,this.hasM):null}_readX(){if(this._points){const e=this._points[this._coordinateStride*this._index];return e===this._emptyNumberValue?NaN:e}throw new Error("InternalError: readX only supported for points")}_readY(){if(this._points){const e=this._points[this._coordinateStride*this._index+1];return e===this._emptyNumberValue?NaN:e}throw new Error("InternalError: readY only supported for points")}_readServerCentroid(){return null}_readAttribute(e,t){const i=this.fields.get(e);if(!i)return;const r=this._indexMap[i.name];if(null==r)return this.getObjectId();const s=this._inner.readAttribute(this._index,r);if(null==s)return s;if("esriFieldTypeString"===i.type||"esriFieldTypeDateOnly"===i.type||"esriFieldTypeTimeOnly"===i.type||"esriFieldTypeTimestampOffset"===i.type){const e=this._inner.readAttribute(this._index,r);return o.decode(e)}const n=this.fields.isDateField(i.name);return t?null==s?s:n?new Date(s):s:s}_readAttributes(){const e={};for(const t of this.metadata.fieldsIndex.fields){if(null==this._indexMap[t.name])continue;const i=this._readAttribute(t.name,!1);void 0!==i&&(e[t.name]=i)}return e.__OBJECTID=this.getObjectId(),e}}export{d as FeatureSetReaderParquet};
2
+ import"../../../../../core/has.js";import{baseObjectMemory as t}from"../../../../../core/memoryEstimations.js";import{minInt16 as e}from"../../../../../core/typedArrayUtil.js";import{fromRectValues as r}from"../../../../../geometry/support/aaBoundingBox.js";import i from"../../../../../layers/graphics/OptimizedGeometry.js";import{getParquetObjectId as s}from"../../../../../layers/graphics/sources/support/parquetIdUtils.js";import{readParquetChunkAttribute as n}from"../../../../../libs/parquet/parquet.js";import{FeatureSetReader as o}from"./FeatureSetReader.js";class d extends o{constructor(r,i,s,n,o,d=new Uint32Array(s.size()),h,a,u){if(super(r),this._indexMap=i,this._inner=s,this._fileId=n,this._transform=o,this._displayIds=d,this._points=h,this._rowIds=a,this._emptyNumberValue=u,this._index=-1,this.usedMemory=t,this._size=this._inner.size(),this._coordinateStride=this._inner.coordinateStride(),this._rowIds||(this._rowIds=this._inner.readIdsUnsafe().slice()),!this._points&&"esriGeometryPoint"===this.geometryType){const t=this._inner.readPointCoordsQuantizedUnsafe()?.slice();t?(this._emptyNumberValue=e,this._points=t):(this._emptyNumberValue=NaN,this._points=this._inner.readPointCoordsUnsafe()?.slice())}r.featureIdInfo.type}destroy(){super.destroy(),this._inner.free()}get fields(){return this.metadata.fieldsIndex}get geometryType(){return this.metadata.geometryType}get hasFeatures(){return!0}get hasNext(){throw new Error("Method not implemented.")}get exceededTransferLimit(){return!1}get hasZ(){return this._inner.hasZ()}get hasM(){return this._inner.hasM()}async updateFields(t,e,r,i){const s=this._inner.rowGroup(),n=new Uint32Array(this._inner.readIdsUnsafe()),o=await t.createPatch(e,s,n,r,i);this._inner.insertPatchBytes(new Uint8Array(o))}getInTransform(){return this._transform}getSize(){return this._size}getCursor(){return this.copy()}getAttributeHash(){let t="";for(const e of this.fields.fields)t+=this._readAttribute(e.name,!1)+".";return t}getObjectId(){const t=this._rowIds[this._index];return s(this._fileId,t)}getDisplayId(){return this._displayIds[this._index]}setDisplayId(t){this._displayIds[this._index]=t}setIndex(t){this._index=t}getBoundsXMin(){return this._inner.boundsXMin(this._index)}getBoundsYMin(){return this._inner.boundsYMin(this._index)}getBoundsXMax(){return this._inner.boundsXMax(this._index)}getBoundsYMax(){return this._inner.boundsYMax(this._index)}getBounds(t){const e=this._inner.boundsXMin(this._index);return!!Number.isFinite(e)&&(r(t,e,this._inner.boundsYMin(this._index),this._inner.boundsXMax(this._index),this._inner.boundsYMax(this._index)),!0)}setBoundsXMin(t){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsYMin(t){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsXMax(t){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsYMax(t){throw new Error("InternalError: Setting bounds is unsupported")}getIndex(){return this._index}next(){for(;++this._index<this._size&&!this._getExists(););return this._index<this._size}readGeometryArea(){return this.readGeometryForDisplay()?.area()??0}copy(){const t=new d(this.metadata,this._indexMap,this._inner,this._fileId,this._transform,this._displayIds,this._points,this._rowIds,this._emptyNumberValue);return this.copyInto(t),t}copyInto(t){super.copyInto(t),t._index=this._index}_readGeometry(t){const e=this._inner.readCoordsUnsafe(this._index),r=this._inner.readLengthsUnsafe(this._index);return e&&r?new i(r,e,this.hasZ,this.hasM):null}_readX(){if(this._points){const t=this._points[this._coordinateStride*this._index];return t===this._emptyNumberValue?NaN:t}throw new Error("InternalError: readX only supported for points")}_readY(){if(this._points){const t=this._points[this._coordinateStride*this._index+1];return t===this._emptyNumberValue?NaN:t}throw new Error("InternalError: readY only supported for points")}_readServerCentroid(){return null}_readAttribute(t,e){const r=this.fields.get(t);if(!r)return;const i=this._indexMap[r.name];return null==i?this.getObjectId():n(this._inner,this._index,i,r.type,e)}_readAttributes(){const t={};for(const e of this.metadata.fieldsIndex.fields){if(null==this._indexMap[e.name])continue;const r=this._readAttribute(e.name,!1);void 0!==r&&(t[e.name]=r)}return t.__OBJECTID=this.getObjectId(),t}}export{d as FeatureSetReaderParquet};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{AGraphicContainer as e}from"./AGraphicContainer.js";import{renderHighlight as r}from"../support/util.js";class i extends e{renderChildren(e){for(const r of this.children)r.setTransform(e.state);if(super.renderChildren(e),this._updateAttributeView(),this.children.some(e=>e.hasData)){if(this.drawOnTop){if(128===e.drawPhase)this._renderChildren(e,0)}else switch(e.drawPhase){case 1:this._renderChildren(e,0);break;case 16:this.hasHighlight&&this._renderHighlight(e)}this._boundsRenderer&&this._boundsRenderer.doRender(e)}}_renderHighlight(e){r(e,!1,e=>{this._renderChildren(e,1)})}}export{i as default};
2
+ import{AGraphicContainer as e}from"./AGraphicContainer.js";import{renderHighlight as r}from"../support/util.js";class i extends e{renderChildren(e){for(const r of this.children)r.setTransform(e.state);if(super.renderChildren(e),this._updateAttributeView(),this.children.some(e=>e.hasData)){if(this.drawOnTop){if(64===e.drawPhase)this._renderChildren(e,0)}else switch(e.drawPhase){case 1:this._renderChildren(e,0);break;case 8:this.hasHighlight&&this._renderHighlight(e)}this._boundsRenderer&&this._boundsRenderer.doRender(e)}}_renderHighlight(e){r(e,!1,e=>{this._renderChildren(e,1)})}}export{i as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as r}from"tslib";import{subclass as e}from"../../../../core/accessorSupport/decorators.js";import{AGraphicContainer as t}from"./AGraphicContainer.js";import{renderHighlight as s}from"../support/util.js";let i=class extends t{get hasHighlight(){return this.children.some(r=>r.hasData)}renderChildren(r){this.attributeView.update(),16===r.drawPhase&&this.children.some(r=>r.hasData)&&(super.renderChildren(r),r.context.setColorMask(!0,!0,!0,!0),s(r,!1,r=>{this._renderChildren(r,1)}))}};i=r([e("esri.views.2d.layers.graphics.HighlightGraphicContainer")],i);export{i as default};
2
+ import{__decorate as r}from"tslib";import{subclass as e}from"../../../../core/accessorSupport/decorators.js";import{AGraphicContainer as t}from"./AGraphicContainer.js";import{renderHighlight as s}from"../support/util.js";let i=class extends t{get hasHighlight(){return this.children.some(r=>r.hasData)}renderChildren(r){this.attributeView.update(),8===r.drawPhase&&this.children.some(r=>r.hasData)&&(super.renderChildren(r),r.context.setColorMask(!0,!0,!0,!0),s(r,!1,r=>{this._renderChildren(r,1)}))}};i=r([e("esri.views.2d.layers.graphics.HighlightGraphicContainer")],i);export{i as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as o}from"tslib";import{JSONSupport as r}from"../../../core/JSONSupport.js";import{property as e,subclass as t}from"../../../core/accessorSupport/decorators.js";import{enumeration as s}from"../../../core/accessorSupport/decorators/enumeration.js";import c from"./FoggyWeather.js";var i;let n=i=class extends r{constructor(o){super(o),this.type="cloudy",this.cloudCover=.5}clone(){return new i({cloudCover:this.cloudCover})}get scattering(){return c.minScattering*(1+this.cloudCover)}};o([s({cloudy:"cloudy"}),e({json:{write:{isRequired:!0}}})],n.prototype,"type",void 0),o([e({type:Number,nonNullable:!0,range:{min:0,max:1},json:{write:!0}})],n.prototype,"cloudCover",void 0),n=i=o([t("esri.views.3d.environment.CloudyWeather")],n);const u=n;export{u as default};
2
+ import{__decorate as o}from"tslib";import{JSONSupport as r}from"../../../core/JSONSupport.js";import{lerp as e}from"../../../core/mathUtils.js";import{property as t,subclass as s}from"../../../core/accessorSupport/decorators.js";import{enumeration as i}from"../../../core/accessorSupport/decorators/enumeration.js";import c from"./RainyWeather.js";import{rainyToCloudy as n}from"../webgl-engine/effects/clouds/CloudsPresets.js";var u;let m=u=class extends r{constructor(o){super(o),this.type="cloudy",this.cloudCover=.5}clone(){return new u({cloudCover:this.cloudCover})}get scattering(){return e(c.minScattering,c.maxScattering,this.cloudCover)*n}};o([i({cloudy:"cloudy"}),t({json:{write:{isRequired:!0}}})],m.prototype,"type",void 0),o([t({type:Number,nonNullable:!0,range:{min:0,max:1},json:{write:!0}})],m.prototype,"cloudCover",void 0),m=u=o([s("esri.views.3d.environment.CloudyWeather")],m);const p=m;export{p as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as r}from"tslib";import{JSONSupport as o}from"../../../core/JSONSupport.js";import{property as e,subclass as t}from"../../../core/accessorSupport/decorators.js";import{enumeration as s}from"../../../core/accessorSupport/decorators/enumeration.js";import n from"./RainyWeather.js";var i;let c=i=class extends o{constructor(r){super(r),this.type="sunny",this.cloudCover=.5}clone(){return new i({cloudCover:this.cloudCover})}get scattering(){return n.minScattering*this.cloudCover}};r([s({sunny:"sunny"}),e({json:{write:{isRequired:!0}}})],c.prototype,"type",void 0),r([e({type:Number,nonNullable:!0,range:{min:0,max:1},json:{write:!0}})],c.prototype,"cloudCover",void 0),c=i=r([t("esri.views.3d.environment.SunnyWeather")],c);const u=c;export{u as default};
2
+ import{__decorate as r}from"tslib";import{JSONSupport as o}from"../../../core/JSONSupport.js";import{property as e,subclass as t}from"../../../core/accessorSupport/decorators.js";import{enumeration as s}from"../../../core/accessorSupport/decorators/enumeration.js";import n from"./RainyWeather.js";var i;let c=i=class extends o{constructor(r){super(r),this.type="sunny",this.cloudCover=.5}clone(){return new i({cloudCover:this.cloudCover})}get scattering(){return n.minScattering*(this.cloudCover+.5)}};r([s({sunny:"sunny"}),e({json:{write:{isRequired:!0}}})],c.prototype,"type",void 0),r([e({type:Number,nonNullable:!0,range:{min:0,max:1},json:{write:!0}})],c.prototype,"cloudCover",void 0),c=i=r([t("esri.views.3d.environment.SunnyWeather")],c);const u=c;export{u as default};