@arcgis/core 5.2.0-next.75 → 5.2.0-next.76

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 (355) hide show
  1. package/arcgisGlobal.d.ts +1 -0
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/013c9cc198736a72f7f2.js +1 -0
  4. package/assets/esri/core/workers/chunks/0194244a3f437ad74045.js +1 -0
  5. package/assets/esri/core/workers/chunks/{4dcd4a052b40047a9230.js → 08cac27df6c216ae1995.js} +1 -1
  6. package/assets/esri/core/workers/chunks/08ec5461af74356e7570.js +1 -0
  7. package/assets/esri/core/workers/chunks/0909816f13d25cacf250.js +1 -0
  8. package/assets/esri/core/workers/chunks/0933203eee15ea50e123.js +1 -0
  9. package/assets/esri/core/workers/chunks/{5e1d84e97de0e662aaa9.js → 1142f8e9c80207d6bdae.js} +1 -1
  10. package/assets/esri/core/workers/chunks/16929524565a677db4dc.js +1 -0
  11. package/assets/esri/core/workers/chunks/16a04fc184728d66e6e1.js +1 -0
  12. package/assets/esri/core/workers/chunks/177c3b23c1cbd4737049.js +1 -0
  13. package/assets/esri/core/workers/chunks/1a467da4c0b33f655199.js +1 -0
  14. package/assets/esri/core/workers/chunks/1ef28d4457c8c943ad19.js +1 -0
  15. package/assets/esri/core/workers/chunks/{2b93888e61ca638490cf.js → 20b54e7872d967f3be32.js} +1 -1
  16. package/assets/esri/core/workers/chunks/{5f31b375971ab067121e.js → 21f763694a41968ac21a.js} +1 -1
  17. package/assets/esri/core/workers/chunks/230925079cee040a8d77.js +1 -0
  18. package/assets/esri/core/workers/chunks/257f1e8316877f611e11.js +1 -0
  19. package/assets/esri/core/workers/chunks/270ed3070d118edb3f37.js +1 -0
  20. package/assets/esri/core/workers/chunks/2e7c830b5b1fe406169f.js +1 -0
  21. package/assets/esri/core/workers/chunks/315031323e11a18154e3.js +1 -0
  22. package/assets/esri/core/workers/chunks/393f79843d5a78c1cc37.js +1 -0
  23. package/assets/esri/core/workers/chunks/3b5c5356353f1a2303a0.js +1 -0
  24. package/assets/esri/core/workers/chunks/{99e3aa4832ed87474ab4.js → 44857a76be2c0ac65bb9.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{3e2b4e734aa20a308f3e.js → 46e56fac44e0fd26ba1d.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{4491dc227c28e2ab4f8e.js → 484b251fbcbffcb58323.js} +1 -1
  27. package/assets/esri/core/workers/chunks/48e2d0bfb62e1f4f2ad9.js +1 -0
  28. package/assets/esri/core/workers/chunks/4945d6b0ca1812864185.js +1 -0
  29. package/assets/esri/core/workers/chunks/{7f2f2a92dce3f68e579b.js → 4b54444c04fbd6f42c18.js} +1 -1
  30. package/assets/esri/core/workers/chunks/4c82f5f23004f905a18f.js +1 -0
  31. package/assets/esri/core/workers/chunks/4f8ce5887102971bfa34.js +2 -0
  32. package/assets/esri/core/workers/chunks/{186bedc377cc97731ca2.js → 532e3a59888e4cc13bd3.js} +2 -2
  33. package/assets/esri/core/workers/chunks/53eed0941a39b56cc034.js +1 -0
  34. package/assets/esri/core/workers/chunks/56e6d8c4a9ed893ce951.js +1 -0
  35. package/assets/esri/core/workers/chunks/57159bcac86d660dcceb.js +1 -0
  36. package/assets/esri/core/workers/chunks/58026fc30d8a0ded4102.js +1 -0
  37. package/assets/esri/core/workers/chunks/59598023c0aea62a6297.js +1 -0
  38. package/assets/esri/core/workers/chunks/5bf2ce280ea35ea4c96b.js +1 -0
  39. package/assets/esri/core/workers/chunks/5fd2aa0be03dfb494efa.js +1 -0
  40. package/assets/esri/core/workers/chunks/619aa1381296172ff47b.js +1 -0
  41. package/assets/esri/core/workers/chunks/62f37d1075390a177ae9.js +1 -0
  42. package/assets/esri/core/workers/chunks/65d1e338612e59063eba.js +1 -0
  43. package/assets/esri/core/workers/chunks/680dd7b7638465eb33de.js +1 -0
  44. package/assets/esri/core/workers/chunks/6c740c411b085d2d08c4.js +1 -0
  45. package/assets/esri/core/workers/chunks/{b14961a9f1f40028f141.js → 6c982779d6d47ec99899.js} +1 -1
  46. package/assets/esri/core/workers/chunks/{0eb35e09765fd74eb698.js → 6e45ecf359bce3417f5d.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{a52c88e2d837b525ff6c.js → 71ee7c51d2c60a180f1e.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{ad1d06a91121ebfe9162.js → 755b2d883fba90c4e688.js} +2 -2
  49. package/assets/esri/core/workers/chunks/{6b783f440c4a5d36e879.js → 75fc0b1db8e2e3fd2458.js} +1 -1
  50. package/assets/esri/core/workers/chunks/79429c8be5da85713200.js +1 -0
  51. package/assets/esri/core/workers/chunks/7b470d6ad182548b9e95.js +1 -0
  52. package/assets/esri/core/workers/chunks/7d8eb4dbea1916320f74.js +1 -0
  53. package/assets/esri/core/workers/chunks/83e54166ba634ec2bd89.js +1717 -0
  54. package/assets/esri/core/workers/chunks/87eaed6fdabd482d142e.js +1 -0
  55. package/assets/esri/core/workers/chunks/88d5541679e77117bf03.js +1 -0
  56. package/assets/esri/core/workers/chunks/894ebc64b698e5d7604b.js +1 -0
  57. package/assets/esri/core/workers/chunks/{67f54586156d1ab80257.js → 8b980c6b92cc4ea68ede.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{4046bd65d7d0677f4600.js → 8d9a7fa14489897780d3.js} +1 -1
  59. package/assets/esri/core/workers/chunks/8e225dd0319672103561.js +1 -0
  60. package/assets/esri/core/workers/chunks/9199300ffd225a1bbef1.js +1 -0
  61. package/assets/esri/core/workers/chunks/{5ba3a30b7cbfa9e3aa62.js → 94b9a61b4dbb83425a78.js} +1 -1
  62. package/assets/esri/core/workers/chunks/98613fded899c59f34a4.js +1 -0
  63. package/assets/esri/core/workers/chunks/{6743d726e45e7b660505.js → 9c3e6325dc60bcaf44d7.js} +1 -1
  64. package/assets/esri/core/workers/chunks/9e1392a0c608a13ab036.js +1 -0
  65. package/assets/esri/core/workers/chunks/{7a24cc0f3b4eff2bdb8e.js → 9e2e4d197a7a57c2a691.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{d03e7be74c57c3dbf003.js → a014c17fc210620da738.js} +2 -2
  67. package/assets/esri/core/workers/chunks/{8302bffd28cc6720e0fe.js → a19be304219808268039.js} +2 -2
  68. package/assets/esri/core/workers/chunks/{53d165b4f30fd64e5d8a.js → a4e4fa4dd1a122bbf7cd.js} +1 -1
  69. package/assets/esri/core/workers/chunks/a5240c8a47842138f31f.js +1 -0
  70. package/assets/esri/core/workers/chunks/a69c10bfd632a5546b34.js +1 -0
  71. package/assets/esri/core/workers/chunks/a7727a2377470d586ff9.js +1 -0
  72. package/assets/esri/core/workers/chunks/a91c1d782346a9c7e1ef.js +1 -0
  73. package/assets/esri/core/workers/chunks/{6cd6d0cfd313f0475d98.js → ac59218847e5ef4c4160.js} +1 -1
  74. package/assets/esri/core/workers/chunks/ac87be2210f868524996.js +1 -0
  75. package/assets/esri/core/workers/chunks/aed16c3e26652960ad3f.js +1 -0
  76. package/assets/esri/core/workers/chunks/{43713bc6f7eea07259d0.js → b084829a3fd709dc47a8.js} +1 -1
  77. package/assets/esri/core/workers/chunks/{05f6887805d92da03122.js → b24fc7eeda580ef020d2.js} +1 -1
  78. package/assets/esri/core/workers/chunks/b37a20c5c4a4686257d4.js +1 -0
  79. package/assets/esri/core/workers/chunks/{43a65cab888d43954564.js → b4abf82b8ac974a55ae1.js} +1 -1
  80. package/assets/esri/core/workers/chunks/b950ddafba8125c84a5b.js +1 -0
  81. package/assets/esri/core/workers/chunks/bab5f4b2424b487b87ac.js +1 -0
  82. package/assets/esri/core/workers/chunks/{0d3b2d9a19383bb63f0a.js → bad2c7219e95750906e1.js} +1 -1
  83. package/assets/esri/core/workers/chunks/bbc6b270d2032189107c.js +1 -0
  84. package/assets/esri/core/workers/chunks/bc6e488f5fbd50f9f3d0.js +1 -0
  85. package/assets/esri/core/workers/chunks/bd7d87d175ba933ab2ce.js +1 -0
  86. package/assets/esri/core/workers/chunks/{1c49c9472167a2e0c923.js → c17dda6fadb8bfad0d51.js} +1 -1
  87. package/assets/esri/core/workers/chunks/c1e5ffe9a251be5a0744.js +1 -0
  88. package/assets/esri/core/workers/chunks/ca6652c6304ad0e37e8f.js +1 -0
  89. package/assets/esri/core/workers/chunks/{762be5d3e6aeaea33f74.js → cef02ed3942c010da2e8.js} +1 -1
  90. package/assets/esri/core/workers/chunks/d520d407043bc52e5410.js +1 -0
  91. package/assets/esri/core/workers/chunks/da0ef984509057ec8507.js +1 -0
  92. package/assets/esri/core/workers/chunks/dbdd96e558936955acdb.js +1 -0
  93. package/assets/esri/core/workers/chunks/de927b1460bc384f5b87.js +1 -0
  94. package/assets/esri/core/workers/chunks/de9a1cce70581920f248.js +1 -0
  95. package/assets/esri/core/workers/chunks/dff932682d6386a861ce.js +1 -0
  96. package/assets/esri/core/workers/chunks/{2c31648a4b95275516ee.js → e227eb44cd139fe2bc1b.js} +1 -1
  97. package/assets/esri/core/workers/chunks/e4e5a171a4874c5af4a4.js +1 -0
  98. package/assets/esri/core/workers/chunks/{ddb92c815d17c67a45e6.js → e5d114f2b57d2b8e2f1c.js} +1 -1
  99. package/assets/esri/core/workers/chunks/e89e6eea380ca2c13b64.js +1 -0
  100. package/assets/esri/core/workers/chunks/e9d352d030dcad1619a6.js +1 -0
  101. package/assets/esri/core/workers/chunks/{3de6e54b6ed0feae1940.js → eae51e827f629ab37207.js} +1 -1
  102. package/assets/esri/core/workers/chunks/eee1fd629619021ea279.js +1 -0
  103. package/assets/esri/core/workers/chunks/{b6cd165d0e58598f28a5.js → ef47a5da641cb0d33fdf.js} +1 -1
  104. package/assets/esri/core/workers/chunks/f35e749bb5be39880cbe.js +1 -0
  105. package/assets/esri/core/workers/chunks/{3dff36f6de181d9dcdc5.js → f40e4433e7608d0962a6.js} +1 -1
  106. package/assets/esri/core/workers/chunks/{d1c7c877edc6948f3801.js → f4aa6e90200f61e623e5.js} +1 -1
  107. package/assets/esri/core/workers/chunks/{36ec5b84e551ab08b24a.js → ff578f0ca68d652fece5.js} +1 -1
  108. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  109. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  110. package/assets/esri/libs/text/pkg/bundle_bg.wasm +0 -0
  111. package/chunks/HeatmapDensity.glsl.js +5 -5
  112. package/chunks/bundle2.js +1 -1
  113. package/chunks/lyr3DMain.js +1 -1
  114. package/chunks/lyr3DWorker.js +1 -1
  115. package/config.js +1 -1
  116. package/geometry/geometryEngine.js +1 -1
  117. package/geometry/support/centroid.js +1 -1
  118. package/geometry/support/extentUtils.js +1 -1
  119. package/geometry/support/frustum.js +1 -1
  120. package/kernel.js +1 -1
  121. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  122. package/layers/graphics/data/QueryEngineResult.js +1 -1
  123. package/layers/graphics/data/projectionSupport.js +1 -1
  124. package/layers/graphics/sources/support/sourceUtils.js +1 -1
  125. package/package.json +2 -2
  126. package/support/revision.js +1 -1
  127. package/symbols/cim/animationUtils.js +1 -1
  128. package/symbols/cim/cimAnalyzer.js +1 -1
  129. package/symbols/cim/effects/EffectCircularSector.js +1 -1
  130. package/views/2d/engine/BitmapTile.js +1 -1
  131. package/views/2d/engine/flow/styles/Imagery.js +1 -1
  132. package/views/2d/engine/flow/styles/Particles.js +1 -1
  133. package/views/2d/engine/flow/styles/Streamlines.js +1 -1
  134. package/views/2d/engine/imagery/RasterTile.js +1 -1
  135. package/views/2d/engine/imagery/RasterVFTile.js +1 -1
  136. package/views/2d/engine/vectorTiles/SpriteMosaic.js +1 -1
  137. package/views/2d/engine/vectorTiles/TileHandler3D.js +1 -1
  138. package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
  139. package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
  140. package/views/2d/engine/vectorTiles/VectorTileRendererHelper3D.js +1 -1
  141. package/views/2d/engine/webgl/FeatureDisplayList.js +1 -1
  142. package/views/2d/engine/webgl/Painter.js +1 -1
  143. package/views/2d/engine/webgl/RenderingDevice.js +1 -1
  144. package/views/2d/engine/webgl/TileContainer.js +1 -1
  145. package/views/2d/engine/webgl/TiledDisplayObject.js +1 -1
  146. package/views/2d/engine/webgl/animations/infos.js +1 -1
  147. package/views/2d/engine/webgl/animations/instructions.js +1 -1
  148. package/views/2d/engine/webgl/normalizedTileUtils.js +1 -1
  149. package/views/2d/engine/webgl/shaderGraph/GraphShaderModule.js +1 -1
  150. package/views/2d/engine/webgl/shaderGraph/graph/ShaderGraphContext.js +1 -1
  151. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  152. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedFillShader.js +1 -1
  153. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedLineShader.js +1 -1
  154. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
  155. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedTechnique.js +1 -1
  156. package/views/2d/engine/webgl/shaderGraph/techniques/bitmap/BitmapTechnique.js +1 -1
  157. package/views/2d/engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js +1 -1
  158. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPointShader.js +1 -1
  159. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityTechnique.js +1 -1
  160. package/views/2d/engine/webgl/shaderGraph/techniques/drop-shadow/DropShadowTechnique.js +1 -1
  161. package/views/2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js +1 -1
  162. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexFillTechnique.js +1 -1
  163. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillTechnique.js +1 -1
  164. package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillTechnique.js +1 -1
  165. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillTechnique.js +1 -1
  166. package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillTechnique.js +1 -1
  167. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillTechnique.js +1 -1
  168. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillTechnique.js +1 -1
  169. package/views/2d/engine/webgl/shaderGraph/techniques/flow/FlowTechnique.js +1 -1
  170. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapTechnique.js +1 -1
  171. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelTechnique.js +1 -1
  172. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeTechnique.js +1 -1
  173. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineTechnique.js +1 -1
  174. package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineTechnique.js +1 -1
  175. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
  176. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerTechnique.js +1 -1
  177. package/views/2d/engine/webgl/shaderGraph/techniques/overlay/OverlayTechnique.js +1 -1
  178. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartShader.js +1 -1
  179. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartTechnique.js +1 -1
  180. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
  181. package/views/2d/engine/webgl/shaderGraph/techniques/raster/VectorFieldTechnique.js +1 -1
  182. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  183. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BitmapShader.js +1 -1
  184. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js +1 -1
  185. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexFillShader.js +1 -1
  186. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/FillShader.js +1 -1
  187. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientFillShader.js +1 -1
  188. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientStrokeShader.js +1 -1
  189. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapAccumulateShader.js +1 -1
  190. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  191. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OutlineFillShader.js +1 -1
  192. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternFillShader.js +1 -1
  193. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TexturedLineShader.js +1 -1
  194. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/Tile.js +1 -1
  195. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js +1 -1
  196. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TileInfo.js +1 -1
  197. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TileStencilShader.js +1 -1
  198. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ViewInfo.js +1 -1
  199. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/hittestUtils.js +1 -1
  200. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/BaseRasterColorizerShader.js +1 -1
  201. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/MagDirShader.js +1 -1
  202. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/ScalarShader.js +1 -1
  203. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderBackground.js +1 -1
  204. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderCircle.js +1 -1
  205. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderFill.js +1 -1
  206. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderIcon.js +1 -1
  207. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderLine.js +1 -1
  208. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderOutline.js +1 -1
  209. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderText.js +1 -1
  210. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  211. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextTechnique.js +1 -1
  212. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileDebugInfoTechnique.js +1 -1
  213. package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileStencilTechnique.js +1 -1
  214. package/views/2d/engine/webgl/shaderGraph/techniques/utility/DebugOverlayTechnique.js +1 -1
  215. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueBackground.js +1 -1
  216. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueCircle.js +1 -1
  217. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueFill.js +1 -1
  218. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueLine.js +1 -1
  219. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueSymbol.js +1 -1
  220. package/views/2d/engine/webgl/shaderGraph/typed/TypedShaderProgram.js +1 -1
  221. package/views/2d/engine/webgl/shaderGraph/types.js +2 -0
  222. package/views/2d/engine/webgl/shaderGraph/uniformBufferUtils.js +2 -0
  223. package/views/2d/layers/MediaLayerView2D.js +1 -1
  224. package/views/2d/layers/TileLayerView2D.js +1 -1
  225. package/views/2d/layers/support/DisplayGL.js +1 -1
  226. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  227. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  228. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  229. package/views/3d/layers/MediaLayerView3D.js +1 -1
  230. package/views/3d/layers/VectorTileLayerView3D.js +1 -1
  231. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  232. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  233. package/views/3d/support/GaussianSplatSortWorker.js +1 -1
  234. package/views/3d/support/GaussianSplatWorkerHandle.js +1 -1
  235. package/views/3d/support/flow/geometryUtils.js +1 -1
  236. package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
  237. package/views/3d/support/renderInfoUtils/line.js +1 -1
  238. package/views/3d/support/renderInfoUtils/polygon.js +1 -1
  239. package/views/3d/terrain/DrapedZ.js +2 -0
  240. package/views/3d/terrain/OverlayRenderer.js +1 -1
  241. package/views/3d/terrain/TileCompositor.js +1 -1
  242. package/views/3d/webgl/RenderCamera.js +1 -1
  243. package/views/3d/webgl/RenderNode.js +1 -1
  244. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBuffer.glsl.js +2 -2
  245. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBufferFields.glsl.js +2 -2
  246. package/views/3d/webgl-engine/lib/PositionReader.js +1 -1
  247. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBackedBuffer.js +1 -1
  248. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBackedBufferFields.js +1 -1
  249. package/views/3d/webgl-engine/lib/screenPolygonOverlapUtils.js +1 -1
  250. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  251. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  252. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  253. package/views/3d/webgl-engine/shaders/HeatmapDensity.glsl.js +1 -1
  254. package/views/3d/webgl-engine/shaders/HeatmapDensityTechnique.js +1 -1
  255. package/views/VideoView.js +1 -1
  256. package/views/webgl/RenderingContext.js +1 -1
  257. package/views/webgl/UniformBufferLayout.js +1 -1
  258. package/views/webgl/UniformBufferObject.js +1 -1
  259. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +20 -6
  260. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  261. package/widgets/BatchAttributeForm/inputs/support/MultipleChoiceController.d.ts +100 -0
  262. package/widgets/BatchAttributeForm/inputs/support/MultipleChoiceController.js +2 -0
  263. package/widgets/BatchAttributeForm/inputs/support/createBatchFormInputs.js +1 -1
  264. package/widgets/BatchAttributeForm/inputs/support/multipleChoiceInputUtils.js +1 -1
  265. package/widgets/BatchAttributeForm.js +1 -1
  266. package/widgets/OrientedImageryViewer.js +1 -1
  267. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  268. package/widgets/UtilityNetworkTrace/support/GeometryHandler.js +1 -1
  269. package/widgets/UtilityNetworkTrace/support/ResultAreaHandler.js +1 -1
  270. package/assets/esri/core/workers/chunks/02dd79beb13eff6be85e.js +0 -1
  271. package/assets/esri/core/workers/chunks/0823961e5d0bdedbf8cf.js +0 -2
  272. package/assets/esri/core/workers/chunks/0aedeb837399d3f92e4a.js +0 -1
  273. package/assets/esri/core/workers/chunks/0bf644f93c180a2bc2f8.js +0 -705
  274. package/assets/esri/core/workers/chunks/0daaa89de339e8ea4b81.js +0 -1
  275. package/assets/esri/core/workers/chunks/1119a33245138e7b3914.js +0 -1
  276. package/assets/esri/core/workers/chunks/12234a63d3fa4bc25e7e.js +0 -1
  277. package/assets/esri/core/workers/chunks/1cf8fb704c48ac3d3b15.js +0 -1
  278. package/assets/esri/core/workers/chunks/2435ef7d11f8dbb920b7.js +0 -256
  279. package/assets/esri/core/workers/chunks/2791f3fe16ca5ee2f39a.js +0 -1
  280. package/assets/esri/core/workers/chunks/27f574acf52f2c8bc2c9.js +0 -1
  281. package/assets/esri/core/workers/chunks/2d45daacec0d5ed38782.js +0 -1
  282. package/assets/esri/core/workers/chunks/2ea3ca68cfa4d34e8f3b.js +0 -1
  283. package/assets/esri/core/workers/chunks/2f81047790c4890ae625.js +0 -1
  284. package/assets/esri/core/workers/chunks/3235e14fedb19dd94807.js +0 -1
  285. package/assets/esri/core/workers/chunks/32f5112c848efec6c33b.js +0 -1
  286. package/assets/esri/core/workers/chunks/3bc2943035391b44d4cf.js +0 -29
  287. package/assets/esri/core/workers/chunks/3c32471785bc8570e41c.js +0 -1
  288. package/assets/esri/core/workers/chunks/4295822fa6ef743c76f1.js +0 -1
  289. package/assets/esri/core/workers/chunks/42d5ed44111bea77ec71.js +0 -1462
  290. package/assets/esri/core/workers/chunks/46873badbd6ce8ff4e1e.js +0 -1
  291. package/assets/esri/core/workers/chunks/4710f21b138a2c9a0345.js +0 -1
  292. package/assets/esri/core/workers/chunks/4b5bd0c9a55ea2998601.js +0 -1
  293. package/assets/esri/core/workers/chunks/4c2794687aea172775a0.js +0 -1
  294. package/assets/esri/core/workers/chunks/4d9bde9f66817a92ceca.js +0 -1
  295. package/assets/esri/core/workers/chunks/4fe2cca405180af23364.js +0 -1
  296. package/assets/esri/core/workers/chunks/519af918050b47f93516.js +0 -1
  297. package/assets/esri/core/workers/chunks/5600fc334d20c4f0c83d.js +0 -1
  298. package/assets/esri/core/workers/chunks/5627f562dea8bae2f346.js +0 -1
  299. package/assets/esri/core/workers/chunks/5bf4ab72b9634b06cc5d.js +0 -1
  300. package/assets/esri/core/workers/chunks/5e3d5347223f0111f40f.js +0 -1
  301. package/assets/esri/core/workers/chunks/6f58cb9dffe8016397a2.js +0 -1
  302. package/assets/esri/core/workers/chunks/6fc3553c52af6ace926d.js +0 -1
  303. package/assets/esri/core/workers/chunks/7aaa051b51a8e34bbfb0.js +0 -1
  304. package/assets/esri/core/workers/chunks/7dc5aedc964eacd1be5a.js +0 -1
  305. package/assets/esri/core/workers/chunks/7f91e45156bbe88f9a62.js +0 -1
  306. package/assets/esri/core/workers/chunks/8a48a6760c33ed50b650.js +0 -1
  307. package/assets/esri/core/workers/chunks/8d21e2dabc5165f1c8ca.js +0 -1
  308. package/assets/esri/core/workers/chunks/903e1cd8b76eff19ebdf.js +0 -1
  309. package/assets/esri/core/workers/chunks/917c11cb40a7742d7f98.js +0 -1
  310. package/assets/esri/core/workers/chunks/91d133c04ca764d74934.js +0 -1
  311. package/assets/esri/core/workers/chunks/92c4464b67fce6cea134.js +0 -1
  312. package/assets/esri/core/workers/chunks/947f1ea4dbc3e3419ecc.js +0 -1
  313. package/assets/esri/core/workers/chunks/9482a6d7baa24bbf5693.js +0 -1
  314. package/assets/esri/core/workers/chunks/96cec8a02ca96175d602.js +0 -1
  315. package/assets/esri/core/workers/chunks/9902fcd2070c8eb6d043.js +0 -1
  316. package/assets/esri/core/workers/chunks/9b76c8974424a1908e86.js +0 -1
  317. package/assets/esri/core/workers/chunks/9be6827e5756031a56c1.js +0 -1
  318. package/assets/esri/core/workers/chunks/9cff18e6f751d1b3085e.js +0 -1
  319. package/assets/esri/core/workers/chunks/a101152066dd56259619.js +0 -1
  320. package/assets/esri/core/workers/chunks/a2a2c7e274fb32fecffa.js +0 -1
  321. package/assets/esri/core/workers/chunks/a3bf8aa81ee398da5b52.js +0 -1
  322. package/assets/esri/core/workers/chunks/a7a7d3289d4ca95f545f.js +0 -1
  323. package/assets/esri/core/workers/chunks/abb6c76d5dba3559a68e.js +0 -1
  324. package/assets/esri/core/workers/chunks/afeeb11b39e140303b5a.js +0 -1
  325. package/assets/esri/core/workers/chunks/b1a175b3b2d1a7ddde8e.js +0 -1
  326. package/assets/esri/core/workers/chunks/b78f509fd8e95f728178.js +0 -1
  327. package/assets/esri/core/workers/chunks/b858adff7043683fe41c.js +0 -1
  328. package/assets/esri/core/workers/chunks/be1d2c3a61e6447fbbc7.js +0 -1
  329. package/assets/esri/core/workers/chunks/c02ae1d40c1fe95ae6c5.js +0 -1
  330. package/assets/esri/core/workers/chunks/c1189316d24fb4cdb2a0.js +0 -1
  331. package/assets/esri/core/workers/chunks/c53b2be005721591e29b.js +0 -1
  332. package/assets/esri/core/workers/chunks/c82ab4f0908290e70ee9.js +0 -1
  333. package/assets/esri/core/workers/chunks/cc5ec6e99aa09342c704.js +0 -1
  334. package/assets/esri/core/workers/chunks/cd892c9603710d6130a9.js +0 -1
  335. package/assets/esri/core/workers/chunks/d021775cf747556660a5.js +0 -1
  336. package/assets/esri/core/workers/chunks/d633e98b0dfa0490e4de.js +0 -1
  337. package/assets/esri/core/workers/chunks/d79ce047afbc034f6008.js +0 -1
  338. package/assets/esri/core/workers/chunks/d8eca13c127b443141b7.js +0 -1
  339. package/assets/esri/core/workers/chunks/dbc9249dae41096d750d.js +0 -1
  340. package/assets/esri/core/workers/chunks/eb1a86159dbc098f06fe.js +0 -1
  341. package/assets/esri/core/workers/chunks/ec1841e6e498d54012eb.js +0 -1
  342. package/assets/esri/core/workers/chunks/ed1de8b7406269e217b9.js +0 -29
  343. package/assets/esri/core/workers/chunks/ee9eb381e675d2d01260.js +0 -1
  344. package/assets/esri/core/workers/chunks/f2ab8e49c7f17f488aa8.js +0 -1
  345. package/assets/esri/core/workers/chunks/f43a0edf58941e2ac78e.js +0 -1
  346. package/assets/esri/core/workers/chunks/f78acff510ca615d42e4.js +0 -1
  347. package/assets/esri/core/workers/chunks/f7a5c4d22a24e1ac433c.js +0 -1
  348. package/chunks/geometryEngineBase.js +0 -2
  349. package/geometry/geometryAdapters/json.js +0 -2
  350. package/geometry/geometryEngineJSON.js +0 -2
  351. /package/assets/esri/core/workers/chunks/{0823961e5d0bdedbf8cf.js.LICENSE.txt → 4f8ce5887102971bfa34.js.LICENSE.txt} +0 -0
  352. /package/assets/esri/core/workers/chunks/{186bedc377cc97731ca2.js.LICENSE.txt → 532e3a59888e4cc13bd3.js.LICENSE.txt} +0 -0
  353. /package/assets/esri/core/workers/chunks/{ad1d06a91121ebfe9162.js.LICENSE.txt → 755b2d883fba90c4e688.js.LICENSE.txt} +0 -0
  354. /package/assets/esri/core/workers/chunks/{d03e7be74c57c3dbf003.js.LICENSE.txt → a014c17fc210620da738.js.LICENSE.txt} +0 -0
  355. /package/assets/esri/core/workers/chunks/{8302bffd28cc6720e0fe.js.LICENSE.txt → a19be304219808268039.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{isRGB as e}from"../../core/colorUtils.js";import{getFontFamily as t}from"../../core/fontUtils.js";import"../../core/has.js";import{clone as r}from"../../core/lang.js";import i from"../../core/Logger.js";import{pt2px as o,px2pt as a}from"../../core/screenUtils.js";import{numericHash as s}from"../../core/string.js";import{checkForAnimations as l,getAnimationParams as n,handleAbsoluteAnchor as p,handleMarker as m,handleRelativeAnchor as c,getFrameTranslation as y,translate as d,getStaticParam as f,shouldUseAnimatedPath as h}from"./animationUtils.js";import{forEachSymbolLayer as u,CIMSymbolHelper as v}from"./CIMSymbolHelper.js";import{antialiasingOutlineFillSettings as O}from"./constants.js";import{defaultCIMValues as g}from"./defaultCIMValues.js";import{fitVectorMarker as S}from"./fitVectorMarker.js";import{OverrideHelper as _}from"./OverrideHelper.js";import{hasRichTextFormattingTags as M}from"./richTextUtils.js";import{getExtent as k,getSDFMetrics as C,getSDFDimensions as x}from"./SDFHelper.js";import{CIMSymbolUnits as b}from"./types.js";import{colorToArray as P,normalizeAlpha as z,getSize as I,isCIMMarkerStrokePlacement as E,hasStrokeLayer as L,getTintColor as V,getNumericValue as N,normalizePrimitiveOverrideProps as R,getDefaultCIMValue as T,getEnum as A,getFillColor as w,getStrokeColor as G,fromCIMFontDecoration as F,fromCIMFontStyle as X,getStrokeWidth as j,fromCIMVerticalAlignment as Y,fromCIMHorizontalAlignment as W,getTextCasing as D,isValidCIMValue as U,uncapitalize as H}from"./utils.js";import{EffectHelper as J}from"./effects/EffectHelper.js";import{rasterizedVectorMarkerMinSize as B,randomInsidePolygonTextureSize as q}from"../../views/2d/engine/webgl/definitions.js";const K=()=>i.getLogger("esri.symbols.cim.cimAnalyzer");function Q(e){const t=e.markerPlacement;return t&&t.angleToLine?1:0}class Z{constructor(e){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[],this._hasTextStringTemplates=!1,e&&(this._resourceManager=e)}analyzeSymbolReference(t,r,i){if(this._cimLayers=i??[],!t)return this._cimLayers;if(this._reset(),this._hasTextStringTemplates=t.hasTextStringTemplates??!1,t.primitiveOverrides){this._primitiveOverrides=t.primitiveOverrides;for(const t of this._primitiveOverrides){const r=t.valueExpressionInfo;if(r)this._setPoMap(t.primitiveName,t.propertyName,r);else if(null!=t.value){let r=t.value;t.propertyName.includes("Color")&&(e(r)&&(r=P(r)),r=z(r)),this._setPoMap(t.primitiveName,t.propertyName,r)}}}return this._analyzeSymbol(t.symbol,r),this._cimLayers}_reset(){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[]}_analyzeSymbol(e,t){switch(e?.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":this._analyzeMultiLayerSymbol(e,t)}}_analyzeMultiLayerSymbol(e,t){const r=e?.symbolLayers;if(!r)return;for(let l=0;l<r.length;l++){const e=r[l];"CIMVectorMarker"===e.type&&(r[l]=S(e))}const i=e.effects;let o=0;const a=I(e)??0;if("CIMPointSymbol"===e.type&&"Map"===e.angleAlignment&&(o=1),ae(r,i))return this._analyzeCompositeOutlineFill(r,i,a);let s={transform:[0,0,0,1],fromColor:[1,1,1,1],toColor:[1,1,1,1],colorMix:[0,0,0,0],toOpacity:[1,1,1,1],opacityMix:[0,0,0,0],shift:[1,1,1,1],hasAnimations:l(e),hasShiftAnimation:!1,hasMotionAnimations:!1};s=n(this._poMap,e,s);const p="CIMPolygonSymbol"===e.type;let m=r.length;for(;m--;){const l=r[m];if(!l||!1===l.enable)continue;let n;i?.length&&(n=[...i]);const c=l.effects;c?.length&&(i?n.push(...c):n=[...c]);let y=null;if(n){y=[];for(const e of n){const t=_.findEffectOverrides(e,this._primitiveOverrides);t&&y.push(t)}}const d=[];switch(_.findApplicableOverrides(l,this._primitiveOverrides,d),l.type){case"CIMSolidFill":this._analyzeSolidFill(l,y,s,L(r));break;case"CIMPictureFill":this._analyzePictureFill(l,y,s);break;case"CIMHatchFill":this._analyzeHatchFill(l,y,s);break;case"CIMGradientFill":this._analyzeGradientFill(l,y);break;case"CIMSolidStroke":this._analyzeSolidStroke(l,y,p,a,s);break;case"CIMPictureStroke":this._analyzePictureStroke(l,y,p,a,s);break;case"CIMGradientStroke":this._analyzeGradientStroke(l,y,p,a);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":{"CIMLineSymbol"!==e.type&&"CIMPolygonSymbol"!==e.type||(o=Q(l));const r=[],i=l.primitiveName;i&&r.push(i);const n=p&&E(l.markerPlacement);this._analyzeMarker(l,y,null,r,o,a,t,[],s,!1,n);break}default:K().error("Cannot analyze CIM layer",l.type)}}}_analyzeSolidFill(e,t,r,i){const{primitiveName:o,type:a}=e,s=z(e.color),l=n(this._poMap,e,r);if(!i&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.effect.type)){const r=this._getValueOrOverrideExpression(a,o,"Color",s);return void this._cimLayers.push({type:"outlineFill",name:e.name,colorLocked:!!e.colorLocked,color:r,effects:t,outlineColor:r,outlineColorLocked:!!e.colorLocked,...O,outlineEffects:t})}this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:null,colorLocked:!!e.colorLocked,color:this._getValueOrOverrideExpression(a,o,"Color",s),height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,effects:t,applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!1,animationParams:le(l)})}_analyzePictureFill(e,t,r){const{primitiveName:i,type:o}=e,a=V(e),s=N(e.height,g.CIMPictureFill.height);let l=N(e.scaleX,1);if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height),l/=r*(s/t)}const p={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(i,o)},m=n(this._poMap,e,r);this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:p,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(o,i,"TintColor",a),height:this._getValueOrOverrideExpression(o,i,"Height",s),scaleX:this._getValueOrOverrideExpression(o,i,"ScaleX",l),angle:this._getValueOrOverrideExpression(o,i,"Rotation",N(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",N(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",N(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!1,hasUnresolvedReplacementColor:!1,animationParams:le(m)})}_analyzeHatchFill(e,t,r){const{primitiveName:i,type:o}=e,a=n(this._poMap,e,r),s=this._analyzeMaterialOverrides(i,["Rotation","OffsetX","OffsetY"]),l=R(s);let p=[255,255,255,1],m=!1;if(e.lineSymbol?.symbolLayers)for(const n of e.lineSymbol.symbolLayers){if("CIMSolidStroke"!==n.type)continue;const e=n.primitiveName??i;m||!e||n.colorLocked||null==this._poMap[e]?.Color&&null==this._poMap[e]?.StrokeColor||(p=z(n.color),p=this._maybeGetValueOrOverrideExpression(e,"StrokeColor")??this._getValueOrOverrideExpression(o,e,"Color",p),m=!0);const t=this._maybeGetValueOrOverrideExpression(e,"StrokeWidth");if(t){let r=null,i=null;"number"==typeof t?r=t:i=t.valueExpressionInfo;let a=l.find(e=>"strokeWidth"===e.propertyName);a?a.propertyName="width":(a={type:"CIMPrimitiveOverride",primitiveName:e,propertyName:"width",valueExpressionInfo:i,value:r,defaultValue:T(o,"width")},l.push(a))}}const c={type:"sprite-rasterization-param",resource:e,overrides:l};this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:c,colorLocked:!!e.colorLocked,effects:t,color:p,height:this._getValueOrOverrideExpression(o,i,"Separation",N(e.separation,g.CIMHatchFill.separation)),scaleX:1,angle:this._getValueOrOverrideExpression(o,i,"Rotation",N(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",N(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",N(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!m,animationParams:le(a)})}_analyzeGradientFill(e,t){const{angle:r,gradientMethod:i,gradientSize:o,gradientSizeUnits:a,gradientType:s,interval:l,primitiveName:n,type:p}=e,m=g.CIMGradientFill,c=e.colorRamp;this._cimLayers.push({type:"gradientFill",name:e.name,spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(n,p)},colorLocked:!1,effects:t,color:[255,255,255,1],gradientMethod:this._getValueOrOverrideExpression(p,n,"GradientMethod",i??"Linear"),angle:this._getValueOrOverrideExpression(p,n,"Angle",N(r,m.angle)),gradientType:this._getValueOrOverrideExpression(p,n,"GradientType",s??m.gradientType),interval:this._getValueOrOverrideExpression(p,n,"Interval",N(l,"CIMFixedColorRamp"===c.type?c.colors.length:m.interval)),gradientSize:this._getValueOrOverrideExpression(p,n,"GradientSize",N(o,m.gradientSize)),gradientSizeUnits:"Absolute"===a?b.Absolute:"Relative"===a?b.Relative:m.gradientSizeUnits})}_analyzeCompositeOutlineFill(e,t,r){const i=e.find(e=>"CIMSolidFill"===e.type),o=e.find(e=>"CIMSolidStroke"===e.type);if(null==i||null==o)return;const a=[...t??[],...i.effects??[]].map(e=>_.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),s=[...t??[],...o.effects??[]].map(e=>_.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),l=N(o.width,g.CIMSolidStroke.width),n=A(o.capStyle,g.CIMSolidStroke.capstyle),p=A(o.joinStyle,g.CIMSolidStroke.joinstyle),m=o.miterLimit;this._cimLayers.push({type:"outlineFill",name:i.name,colorLocked:!!i.colorLocked,color:this._getValueOrOverrideExpression(i.type,i.primitiveName,"Color",z(i.color)),effects:a,outlineColorLocked:!!o.colorLocked,outlineColor:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Color",z(o.color)),outlineWidth:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Width",l),cap:this._getValueOrOverrideExpression(o.type,o.primitiveName,"CapStyle",n),join:this._getValueOrOverrideExpression(o.type,o.primitiveName,"JoinStyle",p),miterLimit:m&&this._getValueOrOverrideExpression(o.type,o.primitiveName,"MiterLimit",m),referenceWidth:r,outlineEffects:s})}_analyzeSolidStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=z(e.color),p=N(e.width,g.CIMSolidStroke.width),m=A(e.capStyle,g.CIMSolidStroke.capstyle),c=A(e.joinStyle,g.CIMSolidStroke.joinstyle),y=e.miterLimit;let d,f,h,u,v=[];if(this._analyzePrimitiveOverrides(a,t,null,null)&&(v=this._getPrimitiveMaterialOverrides(a,s)),t&&Array.isArray(t)&&t.length>0){const e=t[t.length-1].effect;e&&"CIMGeometricEffectDashes"===e.type&&"NoConstraint"===e.lineDashEnding&&(d=e.dashTemplate,f=e.scaleDash,h=e.offsetAlongLine,u=e.primitiveName,(t=[...t]).pop())}null!=u&&v.push(...this._getPrimitiveMaterialOverrides(u,s).filter(e=>"dashTemplate"===e.propertyName));const O=void 0!==d?{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:d,primitiveName:u},overrides:v}:null,S=n(this._poMap,e,o);this._cimLayers.push({type:"line",name:e.name,spriteRasterizationParam:O,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"Color",l),width:this._getValueOrOverrideExpression(s,a,"Width",p),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:y&&this._getValueOrOverrideExpression(s,a,"MiterLimit",y),referenceWidth:i,zOrder:ee(e.name),dashTemplate:this._maybeGetValueOrOverrideExpression(u,"DashTemplate")??d,offsetAlongLine:this._getValueOrOverrideExpression(s,u,"OffsetAlongLine",h??0),scaleDash:f,sampleAlphaOnly:!0,animationParams:le(S)})}_analyzePictureStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=V(e),p=N(e.width,g.CIMPictureStroke.width),m=A(e.capStyle,g.CIMPictureStroke.capstyle),c=A(e.joinStyle,g.CIMPictureStroke.joinstyle),y=e.miterLimit,d={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(a,s)},f=n(this._poMap,e,o);this._cimLayers.push({type:"line",name:e.name,spriteRasterizationParam:d,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"TintColor",l),width:this._getValueOrOverrideExpression(s,a,"Width",p),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:y&&this._getValueOrOverrideExpression(s,a,"MiterLimit",y),referenceWidth:i,zOrder:ee(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1,animationParams:le(f)})}_analyzeGradientStroke(e,t,r,i){const{gradientMethod:o,gradientSize:a,gradientSizeUnits:s,gradientType:l,interval:n,primitiveName:p,type:m}=e,c=g.CIMGradientStroke,y=N(e.width,c.width),d=A(e.capStyle,c.capstyle),f=A(e.joinStyle,c.joinstyle),h=e.miterLimit,u=e.colorRamp;this._cimLayers.push({type:"gradientStroke",name:e.name,spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(p,m)},colorLocked:!!e.colorLocked,effects:t,color:[255,255,255,1],width:this._getValueOrOverrideExpression(m,p,"Width",y),cap:this._getValueOrOverrideExpression(m,p,"CapStyle",d),join:this._getValueOrOverrideExpression(m,p,"JoinStyle",f),miterLimit:h&&this._getValueOrOverrideExpression(m,p,"MiterLimit",h),referenceWidth:i,isOutline:r,gradientMethod:this._getValueOrOverrideExpression(m,p,"GradientMethod",o??c.gradientMethod),gradientType:this._getValueOrOverrideExpression(m,p,"GradientType",l??c.gradientType),interval:this._getValueOrOverrideExpression(m,p,"Interval",N(n,"CIMFixedColorRamp"===u.type?u.colors.length:c.interval)),gradientSize:this._getValueOrOverrideExpression(m,p,"GradientSize",N(a,c.gradientSize)),gradientSizeUnits:"Absolute"===s?b.Absolute:"Relative"===s?b.Relative:c.gradientSizeUnits})}_analyzeMarker(e,t,r,i,o,a,s,l,y,d=!1,f=!1){d||=!!e.colorLocked;let h=y;if(h=p(e,h),h=m(this._poMap,e,h),h=c(e,h),h=n(this._poMap,e,h),this._analyzeMarkerInsidePolygon(e,t,d,h))return;const u=N(e.size,g.CIMVectorMarker.size),v=N(e.rotation),O=N(e.offsetX),S=N(e.offsetY),{primitiveName:_,type:M}=e,k=this._getValueOrOverrideExpression(M,_,"Size",u),C=this._getValueOrOverrideExpression(M,_,"Rotation",v),x=this._getValueOrOverrideExpression(M,_,"OffsetX",O),b=this._getValueOrOverrideExpression(M,_,"OffsetY",S);switch(e.type){case"CIMPictureMarker":this._analyzePictureMarker(e,t,r,i,o,a,k,C,x,b,l,h,d,f);break;case"CIMVectorMarker":this._analyzeVectorMarker(e,t,r,i,o,a,k,C,x,b,l,h,s,d,f)}}_analyzeMarkerInsidePolygon(e,t,r,i){const{markerPlacement:o,type:s}=e;if(!o||"CIMMarkerPlacementInsidePolygon"!==o.type||i.hasMotionAnimations)return!1;if("CIMVectorMarker"===s||"CIMPictureMarker"===s){const r=e.primitiveName;if(r&&this._analyzePrimitiveOverrides([r],t,null,null))return!1;const i=o.primitiveName;if(i&&this._analyzePrimitiveOverrides([i],t,null,null))return!1;if("CIMVectorMarker"===s){const{markerGraphics:t}=e;if(t)for(const e of t){const{symbol:t}=e;if("CIMPolygonSymbol"===t?.type&&t.symbolLayers){const{symbolLayers:e}=t;for(const t of e)if("CIMSolidStroke"===t.type)return!1}}}else{const{animatedSymbolProperties:t}=e;if(t)return!1}}const l=Math.abs(o.stepX),n=Math.abs(o.stepY);if(0===l||0===n)return!0;let p,m;if("Random"===o.gridType){const e=a(q),t=Math.max(Math.floor(e/l),1);p=n*Math.max(Math.floor(e/n),1);m=t*l/p}else o.shiftOddRows?(p=2*n,m=l/n*.5):(p=n,m=l/n);const c=V(e),y="CIMCharacterMarker"===e.type?null:{type:"sprite-rasterization-param",resource:e,overrides:[]};return this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:y,colorLocked:r,effects:t,color:c,height:p,scaleX:m,angle:o.gridAngle??0,offsetX:N(o.offsetX),offsetY:N(o.offsetY),applyRandomOffset:"Random"===o.gridType,sampleAlphaOnly:"CIMPictureMarker"!==e.type,hasUnresolvedReplacementColor:!0,animationParams:le(i)}),!0}_analyzePictureMarker(e,t,i,o,a,l,n,p,m,c,y,d,f,h){const{animatedSymbolProperties:u,primitiveName:v,type:O}=e;let g=N(e.scaleX,1);const S=V(e);i||(i=this._createMarkerPlacementOverrideExpression(e.markerPlacement));const _=this._createGIFAnimatedSymbolPropertiesOverrideExpression(u),M=e.anchorPoint??{x:0,y:0};if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height);g/=r*(N(e.size)/t)}const k=[...o];let C;e.primitiveName&&k.push(e.primitiveName),u||_?C={type:"animated",url:e.url,urlHash:"H"+s(e.url),playAnimation:e.animatedSymbolProperties?.playAnimation,reverseAnimation:e.animatedSymbolProperties?.reverseAnimation,randomizeStartTime:e.animatedSymbolProperties?.randomizeStartTime,randomizeStartSeed:e.animatedSymbolProperties?.randomizeStartSeed,startTimeOffset:e.animatedSymbolProperties?.startTimeOffset,duration:e.animatedSymbolProperties?.duration,repeatType:e.animatedSymbolProperties?.repeatType,repeatDelay:e.animatedSymbolProperties?.repeatDelay}:(C=r(e),C.markerPlacement=null);const x={type:"sprite-rasterization-param",resource:C,overrides:this._getMaterialOverrides(k,O)};_&&x.overrides.push(..._.overrides);const b=n;this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:x,colorLocked:f,effects:t,scaleSymbolsProportionally:!1,alignment:a,size:n,scaleX:this._getValueOrOverrideExpression(O,v,"ScaleX",g),rotation:p,offsetX:m,offsetY:c,transform:{type:"cim-marker-transform-param",params:y},color:this._getValueOrOverrideExpression(O,v,"TintColor",S),anchorPoint:{x:M.x,y:M.y},isAbsoluteAnchorPoint:"Relative"!==e.anchorPointUnits,outlineColor:[0,0,0,0],outlineWidth:0,frameHeight:0,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:1,isOutline:h,markerPlacement:i,animationParams:le(d),baseSize:b})}_analyzeVectorMarker(e,t,r,i,o,a,s,l,p,m,c,h,u,v,O){const g=e.markerGraphics;if(!g)return;const S=e.frame;let _=0;_=S?S.ymax-S.ymin:a;const M=!!e.scaleSymbolsProportionally;if(_){const t={offsetX:p,offsetY:m,rotation:l,size:s,frameHeight:_,rotateClockWise:!!e.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:M};c=[...c,t]}r||(r=this._createMarkerPlacementOverrideExpression(e.markerPlacement));for(const k of g)if(k){const s=k.symbol;if(!s)continue;const l=k.primitiveName;l&&i.push(l);let p,m=h;if(("CIMPointSymbol"===s.type||"CIMTextSymbol"===s.type)&&S){let t=0,r=0;const i=k.geometry;"x"in i&&"y"in i&&(t+=i.x-.5*(S.xmin+S.xmax),r+=i.y-.5*(S.ymin+S.ymax));const o=e.anchorPoint;let a=!1;o&&("Absolute"===e.anchorPointUnits?(t-=o.x,r-=o.y,a=!0):S&&(t-=(S.xmax-S.xmin)*o.x,r-=(S.ymax-S.ymin)*o.y));const s={offsetX:t,offsetY:r,rotation:0,size:0,frameHeight:0,rotateClockWise:!1,absoluteAnchorPoint:a,scaleSymbolsProportionally:M};p=[...c,s]}const g=k.geometry,[C,x]=y(g,S);switch(0===C&&0===x||(m=d(m,C,x)),"CIMPointSymbol"===s.type&&(m=n(this._poMap,s,m)),s.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":u||ie(s)?(m={...m,transform:{type:"AnimatedTransform",relativeTranslation:!1,absoluteScale:!0,translation:f([0,0]),rotation:f(0),scale:f(_),parent:h.transform}},this._analyzeMultiLayerGraphicNonSDF(e,t,r,k,i,o,a,p??c,m,_,v,O)):this._analyzeMultiLayerGraphic(e,t,r,k,i,o,a,p??c,m,_,v,O);break;case"CIMTextSymbol":this._analyzeTextGraphic(t,r,k,i,o,a,p??c,v)}l&&i.pop()}}_analyzeMultiLayerGraphic(e,t,r,i,o,a,s,l,n,p,m,c){const y=i.symbol,d=y.symbolLayers;if(d){if(!re(d)||h(n))return oe(d)?(u(y,e=>{e.colorLocked&&(m=!0)}),void this._analyzeMultiLayerGraphicNonSDF(e,t,r,i,o,a,s,l,n,p,m,c)):void this._analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,n,p,m,c);this._analyzeCompositeMarkerGraphic(e,t,r,i,d,a,s,l,p,m,c)}}_analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,p,m,c,y){const d=i.symbol,f=d.symbolLayers;if(!f)return;const h=J.applyEffects(d.effects,i.geometry);if(!h)return;let u=f.length;for(;u--;){const d=f[u];if(!d||!1===d.enable)continue;const v=d.primitiveName;switch(v&&o.push(v),d.type){case"CIMSolidFill":case"CIMSolidStroke":{const o=J.applyEffects(d.effects,h),f=k(o);if(!f)continue;const u="Relative"!==e.anchorPointUnits,O="CIMSolidStroke"===d.type?d.width:0,{frameSizeRatio:S,anchorX:_,anchorY:M,widthRatio:b,sdfPaddingRatio:P,sdfTextureSize:I}=C(f,e.frame,e.size,e.anchorPoint,u,O,e.scaleSymbolsProportionally),E="CIMSolidFill"===d.type,L={type:"sdf",geometry:o,sdfPaddingRatio:P,asFill:E,sdfTextureSize:I},{path:V}=d,R=E?z(w(d)):null==V?z(G(d)):[0,0,0,0],T=E?[0,0,0,0]:z(G(d));if(!E&&!O)break;const A=i.primitiveName;let F=null;E&&!d.colorLocked&&(F=this._maybeGetValueOrOverrideExpression(A,"FillColor"));let X=null;E||d.colorLocked||(X=this._maybeGetValueOrOverrideExpression(A,"StrokeColor"));const j=F??this._getValueOrOverrideExpression(d.type,v,"Color",R),Y=X??this._getValueOrOverrideExpression(d.type,v,"Color",T),W=this._maybeGetValueOrOverrideExpression(A,"StrokeWidth")??this._getValueOrOverrideExpression(d.type,v,"Width",O),D=V?{type:"sprite-rasterization-param",resource:{type:"path",path:V,asFill:E},overrides:[]}:{type:"sprite-rasterization-param",resource:L,overrides:[]},U=n(this._poMap,d,p),H=N(e.size,g.CIMVectorMarker.size),B=this._getValueOrOverrideExpression(e.type,e.primitiveName,"Size",H);this._cimLayers.push({type:"marker",name:d.name,groupName:e.name,spriteRasterizationParam:D,colorLocked:!!d.colorLocked||!!c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:_,y:M},isAbsoluteAnchorPoint:u,size:m,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:m,widthRatio:b,rotateClockwise:!1,referenceSize:s,sizeRatio:S,color:j,outlineColor:Y,outlineWidth:W,isOutline:y,markerPlacement:r,animationParams:le(U),isStroke:"CIMSolidFill"!==d.type,baseSize:B,...x(o,I,P)});break}case"CIMPictureMarker":case"CIMVectorMarker":if(d.markerPlacement){K().error("Error analyzing CIM, got unexpected marker placement");break}this._analyzeMarker(d,t,r,o,a,s,!1,l,p,c,y)}v&&o.pop()}}_analyzeTextGraphic(e,r,i,o,a,s,l,n){const p=[];_.findApplicableOverrides(i,this._primitiveOverrides,p);const m=i.geometry;if(!("x"in m)||!("y"in m))return;const c=i.symbol,y=F(c),d=X(c.fontStyleName),f=t(c.fontFamilyName);c.font={family:f,decoration:y,...d};const h=N(c.height,g.CIMTextSymbol.height),u=N(c.angle),v=N(c.offsetX),O=N(c.offsetY),{haloSymbol:S}=c,k=N(c.haloSize,0);let C=[0,0,0,0];if(S?.symbolLayers?.length){const e=S.symbolLayers;for(const t of e)if(t.color){C=this._getValueOrOverrideExpression(c?.haloSymbol?.type??"CIMPolygonSymbol",t.primitiveName,"Color",z(t.color));break}}const x=i.primitiveName;let b=[0,0,0,1],P=[0,0,0,0],I=0,E=!1;if(c.symbol?.symbolLayers)for(const t of c.symbol.symbolLayers){const e=t.primitiveName;if("CIMSolidStroke"===t.type)P=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Color",z(t.color)),I=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Width",j(t)??0);else if("CIMSolidFill"===t.type){const r=z(t.color);E=E??!!t.colorLocked,b=this._getValueOrOverrideExpression("CIMSolidFill",e??x,"Color",r)}}let L=null,V=null,R=null,T=null,A=null;x&&(L=this._maybeGetValueOrOverrideExpression(x,"TextSize"),V=this._maybeGetValueOrOverrideExpression(x,"TextAngle"),R=this._maybeGetValueOrOverrideExpression(x,"TextOffsetX"),T=this._maybeGetValueOrOverrideExpression(x,"TextOffsetY"),E||(A=this._maybeGetValueOrOverrideExpression(x,"FillColor")));const w=A??b;let G=null,D=null,U=0;if("CIMBackgroundCallout"===c.callout?.type){const e=c.callout;if(e.backgroundSymbol){const t=e.backgroundSymbol.symbolLayers;if(t)for(const e of t)"CIMSolidFill"===e.type?G=z(e.color):"CIMSolidStroke"===e.type&&(D=z(e.color),U=N(e.width,g.CIMSolidStroke.width))}}const H=this._getValueOrOverrideExpression(c.type,i.primitiveName,"TextString",i.textString??"");if(null==H)return;const{fontStyleName:J}=c,B=f+(J?"-"+J.toLowerCase():"-regular"),q=this._getMaterialOverrides(o,c.type);q.push(...this._getPrimitiveMaterialOverrides(i.primitiveName,c.type)),this._collectDictionaryTemplateOverrides(q,i);const K={type:"text-rasterization-param",resource:{type:"text",textString:i.textString??"",font:c.font,symbol:c,primitiveName:i.primitiveName,supportsRichText:M(i.textString??"")||q.some(e=>"textString"===e.propertyName)},overrides:q};this._cimLayers.push({type:"text",lineWidth:c.lineWidth,textRasterizationParam:K,colorLocked:!!n||!!E,effects:e,alignment:a,anchorPoint:{x:0,y:0},isAbsoluteAnchorPoint:!1,fontName:B,decoration:y,haloSize:k,haloColor:C,weight:d.weight,style:d.style,size:L??h,angle:V??u,offsetX:R??v,offsetY:T??O,transform:{type:"cim-marker-transform-param",params:l},horizontalAlignment:W(c.horizontalAlignment),verticalAlignment:Y(c.verticalAlignment),text:H,color:w,outlineColor:P,outlineSize:I,backgroundColor:G,borderLineColor:D,borderLineWidth:U,referenceSize:s,sizeRatio:1,markerPlacement:r})}_collectDictionaryTemplateOverrides(e,t){if(t.textString&&this._hasTextStringTemplates){const r=D(t.symbol);e.push({propertyName:"textString",defaultValue:"",valueExpressionInfo:{type:"dictionary-template",textCase:r,template:t.textString},primitiveName:t.primitiveName})}}_analyzeMultiLayerGraphicNonSDF(e,t,r,i,a,s,l,n,p,m,c,y){const d=$(e,i),f=e.primitiveName,h=this._analyzeMaterialOverrides(f,["Rotation","OffsetX","OffsetY"]),u=R(h),[O,S,_]=v.getTextureAnchor(d,this._resourceManager,B),M=this._getMaterialOverrides(a,e.type).filter(e=>e.primitiveName!==f||!["rotation","offsetX","offsetY"].includes(e.propertyName));M.push(...u);const k={type:"sprite-rasterization-param",resource:{...d,avoidSDFRasterization:!0},overrides:M},C=N(e.size,g.CIMVectorMarker.size),x=this._getValueOrOverrideExpression(e.type,f,"Size",C);this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:k,colorLocked:c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:s,anchorPoint:{x:O,y:S},isAbsoluteAnchorPoint:!1,size:m,rotation:0,offsetX:0,offsetY:0,transform:{type:"cim-marker-transform-param",params:n},color:[255,255,255,1],outlineColor:[0,0,0,0],outlineWidth:0,scaleX:1,frameHeight:m,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:_/o(e.size),isOutline:y,markerPlacement:r,animationParams:le(p),baseSize:x})}_createMarkerPlacementOverrideExpression(e){if(!e)return null;const t=[];return _.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-marker-placement-param",placement:e,overrides:se(t)}}_createGIFAnimatedSymbolPropertiesOverrideExpression(e){if(!e)return null;const t=[];return _.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-gif-animation-params",animation:e,overrides:se(t)}}_analyzeCompositeMarkerGraphic(e,t,r,i,o,a,s,l,n,p,m){const c=i.geometry,y=o[0],d=o[1],f=k(c);if(!f)return;const h="Relative"!==e.anchorPointUnits,u=N(y.width,g.CIMSolidStroke.width),{frameSizeRatio:v,anchorX:O,anchorY:S,widthRatio:_,sdfPaddingRatio:M,sdfTextureSize:x}=C(f,e.frame,e.size,e.anchorPoint,h,u,e.scaleSymbolsProportionally),{path:b}=d,P=d.primitiveName,I=y.primitiveName,E=i.primitiveName;let L=null;d.colorLocked||p||(L=this._maybeGetValueOrOverrideExpression(E,"FillColor"));const V=L??this._getValueOrOverrideExpression(d.type,P,"Color",z(d.color));let R=null;y.colorLocked||p||(R=this._maybeGetValueOrOverrideExpression(E,"StrokeColor"));const T=R??this._getValueOrOverrideExpression(y.type,I,"Color",z(y.color)),A=this._maybeGetValueOrOverrideExpression(E,"StrokeWidth")??this._getValueOrOverrideExpression(y.type,I,"Width",u),w={type:"sprite-rasterization-param",resource:b?{type:"path",path:b,asFill:!0}:{type:"sdf",geometry:c,sdfTextureSize:x,sdfPaddingRatio:M,asFill:!0},overrides:[]};this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:w,colorLocked:p,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:O,y:S},isAbsoluteAnchorPoint:h,size:n,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:n,widthRatio:_,rotateClockwise:!1,referenceSize:s,sizeRatio:v,color:V,outlineColor:T,outlineWidth:A,isOutline:m,markerPlacement:r})}_setPoMap(e,t,r){let i;this._poMap[e]?i=this._poMap[e]:(i={},this._poMap[e]=i),i[t]=r}_maybeGetValueOrOverrideExpression(e,t,r){return this._getValueOrOverrideExpression("",e,t,r,!1)}_getValueOrOverrideExpression(e,t,r,i,o=!0){if(o&&!U(i)&&(i=T(e,r.toLowerCase())),null==t)return i;const a=this._poMap[t];if(null==a)return i;const s=a[r];return"string"==typeof s||"number"==typeof s||Array.isArray(s)?s:s?{valueExpressionInfo:s,defaultValue:i}:i}_analyzePrimitiveOverrides(e,t,r,i){if(null==e)return!1;"string"==typeof e&&(e=[e]);for(const o of this._primitiveOverrides)if(e.includes(o.primitiveName)&&o.valueExpressionInfo)return!0;if(null!=t)for(const o of t)if(o?.overrides.length>0)return!0;if(null!=r)for(const o of r)if(o?.overrides.length>0)return!0;if(null!=i)for(const o of i)if(o?.overrides.length>0)return!0;return!1}_getMaterialOverrides(e,t){if(!e)return[];const r=[];for(const i of e)r.push(...this._getPrimitiveMaterialOverrides(i,t));return r}_getPrimitiveMaterialOverrides(e,t){if(!e)return[];const r=R(this._primitiveOverrides.filter(t=>t.primitiveName===e));return r.forEach(e=>e.defaultValue=T(t,e.propertyName.toLowerCase())),r}_analyzeMaterialOverrides(e,t){return this._primitiveOverrides.filter(r=>r.primitiveName!==e||!t.includes(r.propertyName))}}function $(e,t){return{type:e.type,enable:!0,name:e.name,colorLocked:e.colorLocked,primitiveName:e.primitiveName,anchorPoint:e.anchorPoint,anchorPointUnits:e.anchorPointUnits,offsetX:0,offsetY:0,rotateClockwise:e.rotateClockwise,rotation:0,size:e.size,billboardMode3D:e.billboardMode3D,depth3D:e.depth3D,frame:e.frame,markerGraphics:[t],scaleSymbolsProportionally:e.scaleSymbolsProportionally,respectFrame:e.respectFrame,clippingPath:e.clippingPath}}function ee(e){if(e?.startsWith("Level_")){const t=parseInt(e.slice(6),10);if(!isNaN(t))return t}return 0}function te(e,t){if(!t||0===t.length)return e;const i=r(e);return _.applyOverrides(i,t),i}const re=e=>e&&2===e.length&&e[0].enable&&e[1].enable&&"CIMSolidStroke"===e[0].type&&"CIMSolidFill"===e[1].type&&null==e[0].path&&null==e[1].path&&!e[0].effects&&!e[1].effects&&!e[0].animations&&!e[1].animations;function ie(e){const t=e.symbolLayers;if(!t)return!1;const r=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectDashes"===e.type&&null!=e.dashTemplate)),i=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectAddControlPoints"===e.type));return!!r||!!i}function oe(e){return e.some(e=>"CIMSolidFill"!==e.type&&"CIMSolidStroke"!==e.type&&("CIMVectorMarker"!==e.type&&"CIMPictureMarker"!==e.type||null!=e.markerPlacement))}function ae(e,t){if((t?.some(e=>"CIMGeometricEffectRadial"===e.type)&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.type)||t?.some(e=>"CIMGeometricEffectCircularSector"===e.type))&&2===e.length){const t=e.find(e=>"CIMSolidFill"===e.type),r=e.find(e=>"CIMSolidStroke"===e.type),i=r?.effects?.some(e=>"CIMGeometricEffectDashes"===e.type);if(null!=t&&null!=r&&!i)return!0}return!1}function se(e){return r(e).map(e=>({...e,propertyName:H(e.propertyName)}))}function le(e){return h(e)?{type:"animation-params",params:e}:null}export{Z as CIMAnalyzer,te as analyzeCIMResource};
2
+ import{isRGB as e}from"../../core/colorUtils.js";import{getFontFamily as t}from"../../core/fontUtils.js";import"../../core/has.js";import{clone as r}from"../../core/lang.js";import i from"../../core/Logger.js";import{pt2px as o,px2pt as a}from"../../core/screenUtils.js";import{numericHash as s}from"../../core/string.js";import{checkForAnimations as l,globalRotation as n,getAnimationParams as p,handleAbsoluteAnchor as m,handleMarker as c,handleRelativeAnchor as f,getFrameTranslation as y,translate as d,getStaticParam as h,shouldUseAnimatedPath as u}from"./animationUtils.js";import{forEachSymbolLayer as v,CIMSymbolHelper as O}from"./CIMSymbolHelper.js";import{antialiasingOutlineFillSettings as g}from"./constants.js";import{defaultCIMValues as S}from"./defaultCIMValues.js";import{fitVectorMarker as _}from"./fitVectorMarker.js";import{OverrideHelper as M}from"./OverrideHelper.js";import{hasRichTextFormattingTags as C}from"./richTextUtils.js";import{getExtent as k,getSDFMetrics as x,getSDFDimensions as b}from"./SDFHelper.js";import{CIMSymbolUnits as P}from"./types.js";import{colorToArray as z,normalizeAlpha as E,getSize as I,isCIMMarkerStrokePlacement as L,hasStrokeLayer as V,getTintColor as N,getNumericValue as R,normalizePrimitiveOverrideProps as T,getDefaultCIMValue as G,getEnum as A,getFillColor as w,getStrokeColor as F,fromCIMFontDecoration as X,fromCIMFontStyle as j,getStrokeWidth as Y,fromCIMVerticalAlignment as W,fromCIMHorizontalAlignment as D,getTextCasing as U,isValidCIMValue as H,uncapitalize as J}from"./utils.js";import{EffectHelper as B}from"./effects/EffectHelper.js";import{rasterizedVectorMarkerMinSize as q,randomInsidePolygonTextureSize as K}from"../../views/2d/engine/webgl/definitions.js";const Q=()=>i.getLogger("esri.symbols.cim.cimAnalyzer");function Z(e){const t=e.markerPlacement;return t&&t.angleToLine?1:0}class ${constructor(e){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[],this._hasTextStringTemplates=!1,e&&(this._resourceManager=e)}analyzeSymbolReference(t,r,i){if(this._cimLayers=i??[],!t)return this._cimLayers;if(this._reset(),this._hasTextStringTemplates=t.hasTextStringTemplates??!1,t.primitiveOverrides){this._primitiveOverrides=t.primitiveOverrides;for(const t of this._primitiveOverrides){const r=t.valueExpressionInfo;if(r)this._setPoMap(t.primitiveName,t.propertyName,r);else if(null!=t.value){let r=t.value;t.propertyName.includes("Color")&&(e(r)&&(r=z(r)),r=E(r)),this._setPoMap(t.primitiveName,t.propertyName,r)}}}return this._analyzeSymbol(t.symbol,r),this._cimLayers}_reset(){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[]}_analyzeSymbol(e,t){switch(e?.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":this._analyzeMultiLayerSymbol(e,t)}}_analyzeMultiLayerSymbol(e,t){const r=e?.symbolLayers;if(!r)return;for(let l=0;l<r.length;l++){const e=r[l];"CIMVectorMarker"===e.type&&(r[l]=_(e))}const i=e.effects;let o=0;const a=I(e)??0;if("CIMPointSymbol"===e.type&&"Map"===e.angleAlignment&&(o=1),le(r,i))return this._analyzeCompositeOutlineFill(r,i,a);let s={transform:[0,0,0,1],fromColor:[1,1,1,1],toColor:[1,1,1,1],colorMix:[0,0,0,0],toOpacity:[1,1,1,1],opacityMix:[0,0,0,0],shift:[1,1,1,1],hasAnimations:l(e),hasShiftAnimation:!1,hasMotionAnimations:!1};s=n(s),s=p(this._poMap,e,s);const m="CIMPolygonSymbol"===e.type;let c=r.length;for(;c--;){const l=r[c];if(!l||!1===l.enable)continue;let n;i?.length&&(n=[...i]);const p=l.effects;p?.length&&(i?n.push(...p):n=[...p]);let f=null;if(n){f=[];for(const e of n){const t=M.findEffectOverrides(e,this._primitiveOverrides);t&&f.push(t)}}const y=[];switch(M.findApplicableOverrides(l,this._primitiveOverrides,y),l.type){case"CIMSolidFill":this._analyzeSolidFill(l,f,s,V(r));break;case"CIMPictureFill":this._analyzePictureFill(l,f,s);break;case"CIMHatchFill":this._analyzeHatchFill(l,f,s);break;case"CIMGradientFill":this._analyzeGradientFill(l,f);break;case"CIMSolidStroke":this._analyzeSolidStroke(l,f,m,a,s);break;case"CIMPictureStroke":this._analyzePictureStroke(l,f,m,a,s);break;case"CIMGradientStroke":this._analyzeGradientStroke(l,f,m,a);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":{"CIMLineSymbol"!==e.type&&"CIMPolygonSymbol"!==e.type||(o=Z(l));const r=[],i=l.primitiveName;i&&r.push(i);const n=m&&L(l.markerPlacement);this._analyzeMarker(l,f,null,r,o,a,t,[],s,!1,n);break}default:Q().error("Cannot analyze CIM layer",l.type)}}}_analyzeSolidFill(e,t,r,i){const{primitiveName:o,type:a}=e,s=E(e.color),l=p(this._poMap,e,r);if(!i&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.effect.type)){const r=this._getValueOrOverrideExpression(a,o,"Color",s);return void this._cimLayers.push({type:"outlineFill",name:e.name,colorLocked:!!e.colorLocked,color:r,effects:t,outlineColor:r,outlineColorLocked:!!e.colorLocked,...g,outlineEffects:t})}this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:null,colorLocked:!!e.colorLocked,color:this._getValueOrOverrideExpression(a,o,"Color",s),height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,effects:t,applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!1,animationParams:pe(l)})}_analyzePictureFill(e,t,r){const{primitiveName:i,type:o}=e,a=N(e),s=R(e.height,S.CIMPictureFill.height);let l=R(e.scaleX,1);if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height),l/=r*(s/t)}const n={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(i,o)},m=p(this._poMap,e,r);this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:n,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(o,i,"TintColor",a),height:this._getValueOrOverrideExpression(o,i,"Height",s),scaleX:this._getValueOrOverrideExpression(o,i,"ScaleX",l),angle:this._getValueOrOverrideExpression(o,i,"Rotation",R(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",R(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",R(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!1,hasUnresolvedReplacementColor:!1,animationParams:pe(m)})}_analyzeHatchFill(e,t,r){const{primitiveName:i,type:o}=e,a=p(this._poMap,e,r),s=this._analyzeMaterialOverrides(i,["Rotation","OffsetX","OffsetY"]),l=T(s);let n=[255,255,255,1],m=!1;if(e.lineSymbol?.symbolLayers)for(const p of e.lineSymbol.symbolLayers){if("CIMSolidStroke"!==p.type)continue;const e=p.primitiveName??i;m||!e||p.colorLocked||null==this._poMap[e]?.Color&&null==this._poMap[e]?.StrokeColor||(n=E(p.color),n=this._maybeGetValueOrOverrideExpression(e,"StrokeColor")??this._getValueOrOverrideExpression(o,e,"Color",n),m=!0);const t=this._maybeGetValueOrOverrideExpression(e,"StrokeWidth");if(t){let r=null,i=null;"number"==typeof t?r=t:i=t.valueExpressionInfo;let a=l.find(e=>"strokeWidth"===e.propertyName);a?a.propertyName="width":(a={type:"CIMPrimitiveOverride",primitiveName:e,propertyName:"width",valueExpressionInfo:i,value:r,defaultValue:G(o,"width")},l.push(a))}}const c={type:"sprite-rasterization-param",resource:e,overrides:l};this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:c,colorLocked:!!e.colorLocked,effects:t,color:n,height:this._getValueOrOverrideExpression(o,i,"Separation",R(e.separation,S.CIMHatchFill.separation)),scaleX:1,angle:this._getValueOrOverrideExpression(o,i,"Rotation",R(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",R(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",R(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!m,animationParams:pe(a)})}_analyzeGradientFill(e,t){const{angle:r,gradientMethod:i,gradientSize:o,gradientSizeUnits:a,gradientType:s,interval:l,primitiveName:n,type:p}=e,m=S.CIMGradientFill,c=e.colorRamp;this._cimLayers.push({type:"gradientFill",name:e.name,spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(n,p)},colorLocked:!1,effects:t,color:[255,255,255,1],gradientMethod:this._getValueOrOverrideExpression(p,n,"GradientMethod",i??"Linear"),angle:this._getValueOrOverrideExpression(p,n,"Angle",R(r,m.angle)),gradientType:this._getValueOrOverrideExpression(p,n,"GradientType",s??m.gradientType),interval:this._getValueOrOverrideExpression(p,n,"Interval",R(l,"CIMFixedColorRamp"===c.type?c.colors.length:m.interval)),gradientSize:this._getValueOrOverrideExpression(p,n,"GradientSize",R(o,m.gradientSize)),gradientSizeUnits:"Absolute"===a?P.Absolute:"Relative"===a?P.Relative:m.gradientSizeUnits})}_analyzeCompositeOutlineFill(e,t,r){const i=e.find(e=>"CIMSolidFill"===e.type),o=e.find(e=>"CIMSolidStroke"===e.type);if(null==i||null==o)return;const a=[...t??[],...i.effects??[]].map(e=>M.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),s=[...t??[],...o.effects??[]].map(e=>M.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),l=R(o.width,S.CIMSolidStroke.width),n=A(o.capStyle,S.CIMSolidStroke.capstyle),p=A(o.joinStyle,S.CIMSolidStroke.joinstyle),m=o.miterLimit;this._cimLayers.push({type:"outlineFill",name:i.name,colorLocked:!!i.colorLocked,color:this._getValueOrOverrideExpression(i.type,i.primitiveName,"Color",E(i.color)),effects:a,outlineColorLocked:!!o.colorLocked,outlineColor:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Color",E(o.color)),outlineWidth:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Width",l),cap:this._getValueOrOverrideExpression(o.type,o.primitiveName,"CapStyle",n),join:this._getValueOrOverrideExpression(o.type,o.primitiveName,"JoinStyle",p),miterLimit:m&&this._getValueOrOverrideExpression(o.type,o.primitiveName,"MiterLimit",m),referenceWidth:r,outlineEffects:s})}_analyzeSolidStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=E(e.color),n=R(e.width,S.CIMSolidStroke.width),m=A(e.capStyle,S.CIMSolidStroke.capstyle),c=A(e.joinStyle,S.CIMSolidStroke.joinstyle),f=e.miterLimit;let y,d,h,u,v=[];if(this._analyzePrimitiveOverrides(a,t,null,null)&&(v=this._getPrimitiveMaterialOverrides(a,s)),t&&Array.isArray(t)&&t.length>0){const e=t[t.length-1].effect;e&&"CIMGeometricEffectDashes"===e.type&&"NoConstraint"===e.lineDashEnding&&(y=e.dashTemplate,d=e.scaleDash,h=e.offsetAlongLine,u=e.primitiveName,(t=[...t]).pop())}null!=u&&v.push(...this._getPrimitiveMaterialOverrides(u,s).filter(e=>"dashTemplate"===e.propertyName));const O=void 0!==y?{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:y,primitiveName:u},overrides:v}:null,g=p(this._poMap,e,o);this._cimLayers.push({type:"line",name:e.name,spriteRasterizationParam:O,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"Color",l),width:this._getValueOrOverrideExpression(s,a,"Width",n),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:f&&this._getValueOrOverrideExpression(s,a,"MiterLimit",f),referenceWidth:i,zOrder:te(e.name),dashTemplate:this._maybeGetValueOrOverrideExpression(u,"DashTemplate")??y,offsetAlongLine:this._getValueOrOverrideExpression(s,u,"OffsetAlongLine",h??0),scaleDash:d,sampleAlphaOnly:!0,animationParams:pe(g)})}_analyzePictureStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=N(e),n=R(e.width,S.CIMPictureStroke.width),m=A(e.capStyle,S.CIMPictureStroke.capstyle),c=A(e.joinStyle,S.CIMPictureStroke.joinstyle),f=e.miterLimit,y={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(a,s)},d=p(this._poMap,e,o);this._cimLayers.push({type:"line",name:e.name,spriteRasterizationParam:y,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"TintColor",l),width:this._getValueOrOverrideExpression(s,a,"Width",n),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:f&&this._getValueOrOverrideExpression(s,a,"MiterLimit",f),referenceWidth:i,zOrder:te(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1,animationParams:pe(d)})}_analyzeGradientStroke(e,t,r,i){const{gradientMethod:o,gradientSize:a,gradientSizeUnits:s,gradientType:l,interval:n,primitiveName:p,type:m}=e,c=S.CIMGradientStroke,f=R(e.width,c.width),y=A(e.capStyle,c.capstyle),d=A(e.joinStyle,c.joinstyle),h=e.miterLimit,u=e.colorRamp;this._cimLayers.push({type:"gradientStroke",name:e.name,spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(p,m)},colorLocked:!!e.colorLocked,effects:t,color:[255,255,255,1],width:this._getValueOrOverrideExpression(m,p,"Width",f),cap:this._getValueOrOverrideExpression(m,p,"CapStyle",y),join:this._getValueOrOverrideExpression(m,p,"JoinStyle",d),miterLimit:h&&this._getValueOrOverrideExpression(m,p,"MiterLimit",h),referenceWidth:i,isOutline:r,gradientMethod:this._getValueOrOverrideExpression(m,p,"GradientMethod",o??c.gradientMethod),gradientType:this._getValueOrOverrideExpression(m,p,"GradientType",l??c.gradientType),interval:this._getValueOrOverrideExpression(m,p,"Interval",R(n,"CIMFixedColorRamp"===u.type?u.colors.length:c.interval)),gradientSize:this._getValueOrOverrideExpression(m,p,"GradientSize",R(a,c.gradientSize)),gradientSizeUnits:"Absolute"===s?P.Absolute:"Relative"===s?P.Relative:c.gradientSizeUnits})}_analyzeMarker(e,t,r,i,o,a,s,l,n,y=!1,d=!1){y||=!!e.colorLocked;let h=n;if(h=m(e,h),h=c(this._poMap,e,h),h=f(e,h),h=p(this._poMap,e,h),this._analyzeMarkerInsidePolygon(e,t,y,h))return;const u=R(e.size,S.CIMVectorMarker.size),v=R(e.rotation),O=R(e.offsetX),g=R(e.offsetY),{primitiveName:_,type:M}=e,C=this._getValueOrOverrideExpression(M,_,"Size",u),k=this._getValueOrOverrideExpression(M,_,"Rotation",v),x=this._getValueOrOverrideExpression(M,_,"OffsetX",O),b=this._getValueOrOverrideExpression(M,_,"OffsetY",g);switch(e.type){case"CIMPictureMarker":this._analyzePictureMarker(e,t,r,i,o,a,C,k,x,b,l,h,y,d);break;case"CIMVectorMarker":this._analyzeVectorMarker(e,t,r,i,o,a,C,k,x,b,l,h,s,y,d)}}_analyzeMarkerInsidePolygon(e,t,r,i){const{markerPlacement:o,type:s}=e;if(!o||"CIMMarkerPlacementInsidePolygon"!==o.type||i.hasMotionAnimations)return!1;if("CIMVectorMarker"===s||"CIMPictureMarker"===s){const r=e.primitiveName;if(r&&this._analyzePrimitiveOverrides([r],t,null,null))return!1;const i=o.primitiveName;if(i&&this._analyzePrimitiveOverrides([i],t,null,null))return!1;if("CIMVectorMarker"===s){const{markerGraphics:t}=e;if(t)for(const e of t){const{symbol:t}=e;if("CIMPolygonSymbol"===t?.type&&t.symbolLayers){const{symbolLayers:e}=t;for(const t of e)if("CIMSolidStroke"===t.type)return!1}}}else{const{animatedSymbolProperties:t}=e;if(t)return!1}}const l=Math.abs(o.stepX),n=Math.abs(o.stepY);if(0===l||0===n)return!0;let p,m;if("Random"===o.gridType){const e=a(K),t=Math.max(Math.floor(e/l),1);p=n*Math.max(Math.floor(e/n),1);m=t*l/p}else o.shiftOddRows?(p=2*n,m=l/n*.5):(p=n,m=l/n);const c=N(e),f="CIMCharacterMarker"===e.type?null:{type:"sprite-rasterization-param",resource:{...e,effects:e.effects?.filter(e=>!ae(e))},overrides:[]};return this._cimLayers.push({type:"fill",name:e.name,spriteRasterizationParam:f,colorLocked:r,effects:t,color:c,height:p,scaleX:m,angle:o.gridAngle??0,offsetX:R(o.offsetX),offsetY:R(o.offsetY),applyRandomOffset:"Random"===o.gridType,sampleAlphaOnly:"CIMPictureMarker"!==e.type,hasUnresolvedReplacementColor:!0,animationParams:pe(i)}),!0}_analyzePictureMarker(e,t,i,o,a,l,n,p,m,c,f,y,d,h){const{animatedSymbolProperties:u,primitiveName:v,type:O}=e;let g=R(e.scaleX,1);const S=N(e);i||(i=this._createMarkerPlacementOverrideExpression(e.markerPlacement));const _=this._createGIFAnimatedSymbolPropertiesOverrideExpression(u),M=e.anchorPoint??{x:0,y:0};if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height);g/=r*(R(e.size)/t)}const C=[...o];let k;e.primitiveName&&C.push(e.primitiveName),u||_?k={type:"animated",url:e.url,urlHash:"H"+s(e.url),playAnimation:e.animatedSymbolProperties?.playAnimation,reverseAnimation:e.animatedSymbolProperties?.reverseAnimation,randomizeStartTime:e.animatedSymbolProperties?.randomizeStartTime,randomizeStartSeed:e.animatedSymbolProperties?.randomizeStartSeed,startTimeOffset:e.animatedSymbolProperties?.startTimeOffset,duration:e.animatedSymbolProperties?.duration,repeatType:e.animatedSymbolProperties?.repeatType,repeatDelay:e.animatedSymbolProperties?.repeatDelay}:(k=r(e),k.markerPlacement=null);const x={type:"sprite-rasterization-param",resource:k,overrides:this._getMaterialOverrides(C,O)};_&&x.overrides.push(..._.overrides);const b=n;this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:x,colorLocked:d,effects:t,scaleSymbolsProportionally:!1,alignment:a,size:n,scaleX:this._getValueOrOverrideExpression(O,v,"ScaleX",g),rotation:p,offsetX:m,offsetY:c,transform:{type:"cim-marker-transform-param",params:f},color:this._getValueOrOverrideExpression(O,v,"TintColor",S),anchorPoint:{x:M.x,y:M.y},isAbsoluteAnchorPoint:"Relative"!==e.anchorPointUnits,outlineColor:[0,0,0,0],outlineWidth:0,frameHeight:0,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:1,isOutline:h,markerPlacement:i,animationParams:pe(y),baseSize:b})}_analyzeVectorMarker(e,t,r,i,o,a,s,l,n,p,m,c,f,u,v){const O=e.markerGraphics;if(!O)return;const g=e.frame;let S=0;S=g?g.ymax-g.ymin:a;const _=!!e.scaleSymbolsProportionally;if(S){const t={offsetX:n,offsetY:p,rotation:l,size:s,frameHeight:S,rotateClockWise:!!e.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:_};m=[...m,t]}r||(r=this._createMarkerPlacementOverrideExpression(e.markerPlacement));for(const M of O)if(M){const s=M.symbol;if(!s)continue;const l=M.primitiveName;l&&i.push(l);let n,p=c;if(("CIMPointSymbol"===s.type||"CIMTextSymbol"===s.type)&&g){let t=0,r=0;const i=M.geometry;"x"in i&&"y"in i&&(t+=i.x-.5*(g.xmin+g.xmax),r+=i.y-.5*(g.ymin+g.ymax));const o=e.anchorPoint;let a=!1;o&&("Absolute"===e.anchorPointUnits?(t-=o.x,r-=o.y,a=!0):g&&(t-=(g.xmax-g.xmin)*o.x,r-=(g.ymax-g.ymin)*o.y));const s={offsetX:t,offsetY:r,rotation:0,size:0,frameHeight:0,rotateClockWise:!1,absoluteAnchorPoint:a,scaleSymbolsProportionally:_};n=[...m,s]}const O=M.geometry,[C,k]=y(O,g);switch(0===C&&0===k||(p=d(p,C,k)),s.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":f||oe(s)?(p={...p,transform:{type:"AnimatedTransform",relativeTranslation:!1,absoluteScale:!0,selectGlobalRotation:!1,translation:h([0,0]),rotation:h(0),scale:h(S),parent:c.transform}},this._analyzeMultiLayerGraphicNonSDF(e,t,r,M,i,o,a,n??m,p,S,u,v)):this._analyzeMultiLayerGraphic(e,t,r,M,i,o,a,n??m,p,S,u,v);break;case"CIMTextSymbol":this._analyzeTextGraphic(t,r,M,i,o,a,n??m,u)}l&&i.pop()}}_analyzeMultiLayerGraphic(e,t,r,i,o,a,s,l,n,p,m,c){const f=i.symbol,y=f.symbolLayers;if(y){if(!ie(y)||u(n))return se(y)?(v(f,e=>{e.colorLocked&&(m=!0)}),void this._analyzeMultiLayerGraphicNonSDF(e,t,r,i,o,a,s,l,n,p,m,c)):void this._analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,n,p,m,c);this._analyzeCompositeMarkerGraphic(e,t,r,i,y,a,s,l,p,m,c)}}_analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,n,m,c,f){const y=i.symbol,d=y.symbolLayers;if(!d)return;const h=B.applyEffects(y.effects,i.geometry);if(!h)return;let u=d.length;for(;u--;){const y=d[u];if(!y||!1===y.enable)continue;const v=y.primitiveName;switch(v&&o.push(v),y.type){case"CIMSolidFill":case"CIMSolidStroke":{const o=B.applyEffects(y.effects,h),d=k(o);if(!d)continue;const u="Relative"!==e.anchorPointUnits,O="CIMSolidStroke"===y.type?y.width:0,{frameSizeRatio:g,anchorX:_,anchorY:M,widthRatio:C,sdfPaddingRatio:P,sdfTextureSize:z}=x(d,e.frame,e.size,e.anchorPoint,u,O,e.scaleSymbolsProportionally),I="CIMSolidFill"===y.type,L={type:"sdf",geometry:o,sdfPaddingRatio:P,asFill:I,sdfTextureSize:z},{path:V}=y,N=I?E(w(y)):null==V?E(F(y)):[0,0,0,0],T=I?[0,0,0,0]:E(F(y));if(!I&&!O)break;const G=i.primitiveName;let A=null;I&&!y.colorLocked&&(A=this._maybeGetValueOrOverrideExpression(G,"FillColor"));let X=null;I||y.colorLocked||(X=this._maybeGetValueOrOverrideExpression(G,"StrokeColor"));const j=A??this._getValueOrOverrideExpression(y.type,v,"Color",N),Y=X??this._getValueOrOverrideExpression(y.type,v,"Color",T),W=this._maybeGetValueOrOverrideExpression(G,"StrokeWidth")??this._getValueOrOverrideExpression(y.type,v,"Width",O),D=V?{type:"sprite-rasterization-param",resource:{type:"path",path:V,asFill:I},overrides:[]}:{type:"sprite-rasterization-param",resource:L,overrides:[]},U=p(this._poMap,y,n),H=R(e.size,S.CIMVectorMarker.size),J=this._getValueOrOverrideExpression(e.type,e.primitiveName,"Size",H);this._cimLayers.push({type:"marker",name:y.name,groupName:e.name,spriteRasterizationParam:D,colorLocked:!!y.colorLocked||!!c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:_,y:M},isAbsoluteAnchorPoint:u,size:m,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:m,widthRatio:C,rotateClockwise:!1,referenceSize:s,sizeRatio:g,color:j,outlineColor:Y,outlineWidth:W,isOutline:f,markerPlacement:r,animationParams:pe(U),isStroke:"CIMSolidFill"!==y.type,baseSize:J,...b(o,z,P)});break}case"CIMPictureMarker":case"CIMVectorMarker":if(y.markerPlacement){Q().error("Error analyzing CIM, got unexpected marker placement");break}this._analyzeMarker(y,t,r,o,a,s,!1,l,n,c,f)}v&&o.pop()}}_analyzeTextGraphic(e,r,i,o,a,s,l,n){const p=[];M.findApplicableOverrides(i,this._primitiveOverrides,p);const m=i.geometry;if(!("x"in m)||!("y"in m))return;const c=i.symbol,f=X(c),y=j(c.fontStyleName),d=t(c.fontFamilyName);c.font={family:d,decoration:f,...y};const h=R(c.height,S.CIMTextSymbol.height),u=R(c.angle),v=R(c.offsetX),O=R(c.offsetY),{haloSymbol:g}=c,_=R(c.haloSize,0);let k=[0,0,0,0];if(g?.symbolLayers?.length){const e=g.symbolLayers;for(const t of e)if(t.color){k=this._getValueOrOverrideExpression(c?.haloSymbol?.type??"CIMPolygonSymbol",t.primitiveName,"Color",E(t.color));break}}const x=i.primitiveName;let b=[0,0,0,1],P=[0,0,0,0],z=0,I=!1;if(c.symbol?.symbolLayers)for(const t of c.symbol.symbolLayers){const e=t.primitiveName;if("CIMSolidStroke"===t.type)P=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Color",E(t.color)),z=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Width",Y(t)??0);else if("CIMSolidFill"===t.type){const r=E(t.color);I=I??!!t.colorLocked,b=this._getValueOrOverrideExpression("CIMSolidFill",e??x,"Color",r)}}let L=null,V=null,N=null,T=null,G=null;x&&(L=this._maybeGetValueOrOverrideExpression(x,"TextSize"),V=this._maybeGetValueOrOverrideExpression(x,"TextAngle"),N=this._maybeGetValueOrOverrideExpression(x,"TextOffsetX"),T=this._maybeGetValueOrOverrideExpression(x,"TextOffsetY"),I||(G=this._maybeGetValueOrOverrideExpression(x,"FillColor")));const A=G??b;let w=null,F=null,U=0;if("CIMBackgroundCallout"===c.callout?.type){const e=c.callout;if(e.backgroundSymbol){const t=e.backgroundSymbol.symbolLayers;if(t)for(const e of t)"CIMSolidFill"===e.type?w=E(e.color):"CIMSolidStroke"===e.type&&(F=E(e.color),U=R(e.width,S.CIMSolidStroke.width))}}const H=this._getValueOrOverrideExpression(c.type,i.primitiveName,"TextString",i.textString??"");if(null==H)return;const{fontStyleName:J}=c,B=d+(J?"-"+J.toLowerCase():"-regular"),q=this._getMaterialOverrides(o,c.type);q.push(...this._getPrimitiveMaterialOverrides(i.primitiveName,c.type)),this._collectDictionaryTemplateOverrides(q,i);const K={type:"text-rasterization-param",resource:{type:"text",textString:i.textString??"",font:c.font,symbol:c,primitiveName:i.primitiveName,supportsRichText:C(i.textString??"")||q.some(e=>"textString"===e.propertyName)},overrides:q};this._cimLayers.push({type:"text",lineWidth:c.lineWidth,textRasterizationParam:K,colorLocked:!!n||!!I,effects:e,alignment:a,anchorPoint:{x:0,y:0},isAbsoluteAnchorPoint:!1,fontName:B,decoration:f,haloSize:_,haloColor:k,weight:y.weight,style:y.style,size:L??h,angle:V??u,offsetX:N??v,offsetY:T??O,transform:{type:"cim-marker-transform-param",params:l},horizontalAlignment:D(c.horizontalAlignment),verticalAlignment:W(c.verticalAlignment),text:H,color:A,outlineColor:P,outlineSize:z,backgroundColor:w,borderLineColor:F,borderLineWidth:U,referenceSize:s,sizeRatio:1,markerPlacement:r})}_collectDictionaryTemplateOverrides(e,t){if(t.textString&&this._hasTextStringTemplates){const r=U(t.symbol);e.push({propertyName:"textString",defaultValue:"",valueExpressionInfo:{type:"dictionary-template",textCase:r,template:t.textString},primitiveName:t.primitiveName})}}_analyzeMultiLayerGraphicNonSDF(e,t,r,i,a,s,l,n,p,m,c,f){const y=ee(e,i),d=e.primitiveName,h=this._analyzeMaterialOverrides(d,["Rotation","OffsetX","OffsetY"]),u=T(h),[v,g,_]=O.getTextureAnchor(y,this._resourceManager,q),M=this._getMaterialOverrides(a,e.type).filter(e=>e.primitiveName!==d||!["rotation","offsetX","offsetY"].includes(e.propertyName));M.push(...u);const C={type:"sprite-rasterization-param",resource:{...y,avoidSDFRasterization:!0},overrides:M},k=R(e.size,S.CIMVectorMarker.size),x=this._getValueOrOverrideExpression(e.type,d,"Size",k);this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:C,colorLocked:c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:s,anchorPoint:{x:v,y:g},isAbsoluteAnchorPoint:!1,size:m,rotation:0,offsetX:0,offsetY:0,transform:{type:"cim-marker-transform-param",params:n},color:[255,255,255,1],outlineColor:[0,0,0,0],outlineWidth:0,scaleX:1,frameHeight:m,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:_/o(e.size),isOutline:f,markerPlacement:r,animationParams:pe(p),baseSize:x})}_createMarkerPlacementOverrideExpression(e){if(!e)return null;const t=[];return M.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-marker-placement-param",placement:e,overrides:ne(t)}}_createGIFAnimatedSymbolPropertiesOverrideExpression(e){if(!e)return null;const t=[];return M.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-gif-animation-params",animation:e,overrides:ne(t)}}_analyzeCompositeMarkerGraphic(e,t,r,i,o,a,s,l,n,p,m){const c=i.geometry,f=o[0],y=o[1],d=k(c);if(!d)return;const h="Relative"!==e.anchorPointUnits,u=R(f.width,S.CIMSolidStroke.width),{frameSizeRatio:v,anchorX:O,anchorY:g,widthRatio:_,sdfPaddingRatio:M,sdfTextureSize:C}=x(d,e.frame,e.size,e.anchorPoint,h,u,e.scaleSymbolsProportionally),{path:b}=y,P=y.primitiveName,z=f.primitiveName,I=i.primitiveName;let L=null;y.colorLocked||p||(L=this._maybeGetValueOrOverrideExpression(I,"FillColor"));const V=L??this._getValueOrOverrideExpression(y.type,P,"Color",E(y.color));let N=null;f.colorLocked||p||(N=this._maybeGetValueOrOverrideExpression(I,"StrokeColor"));const T=N??this._getValueOrOverrideExpression(f.type,z,"Color",E(f.color)),G=this._maybeGetValueOrOverrideExpression(I,"StrokeWidth")??this._getValueOrOverrideExpression(f.type,z,"Width",u),A={type:"sprite-rasterization-param",resource:b?{type:"path",path:b,asFill:!0}:{type:"sdf",geometry:c,sdfTextureSize:C,sdfPaddingRatio:M,asFill:!0},overrides:[]};this._cimLayers.push({type:"marker",name:e.name,spriteRasterizationParam:A,colorLocked:p,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:O,y:g},isAbsoluteAnchorPoint:h,size:n,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:n,widthRatio:_,rotateClockwise:!1,referenceSize:s,sizeRatio:v,color:V,outlineColor:T,outlineWidth:G,isOutline:m,markerPlacement:r})}_setPoMap(e,t,r){let i;this._poMap[e]?i=this._poMap[e]:(i={},this._poMap[e]=i),i[t]=r}_maybeGetValueOrOverrideExpression(e,t,r){return this._getValueOrOverrideExpression("",e,t,r,!1)}_getValueOrOverrideExpression(e,t,r,i,o=!0){if(o&&!H(i)&&(i=G(e,r.toLowerCase())),null==t)return i;const a=this._poMap[t];if(null==a)return i;const s=a[r];return"string"==typeof s||"number"==typeof s||Array.isArray(s)?s:s?{valueExpressionInfo:s,defaultValue:i}:i}_analyzePrimitiveOverrides(e,t,r,i){if(null==e)return!1;"string"==typeof e&&(e=[e]);for(const o of this._primitiveOverrides)if(e.includes(o.primitiveName)&&o.valueExpressionInfo)return!0;if(null!=t)for(const o of t)if(o?.overrides.length>0)return!0;if(null!=r)for(const o of r)if(o?.overrides.length>0)return!0;if(null!=i)for(const o of i)if(o?.overrides.length>0)return!0;return!1}_getMaterialOverrides(e,t){if(!e)return[];const r=[];for(const i of e)r.push(...this._getPrimitiveMaterialOverrides(i,t));return r}_getPrimitiveMaterialOverrides(e,t){if(!e)return[];const r=T(this._primitiveOverrides.filter(t=>t.primitiveName===e));return r.forEach(e=>e.defaultValue=G(t,e.propertyName.toLowerCase())),r}_analyzeMaterialOverrides(e,t){return this._primitiveOverrides.filter(r=>r.primitiveName!==e||!t.includes(r.propertyName))}}function ee(e,t){return{type:e.type,enable:!0,name:e.name,colorLocked:e.colorLocked,primitiveName:e.primitiveName,anchorPoint:e.anchorPoint,anchorPointUnits:e.anchorPointUnits,offsetX:0,offsetY:0,rotateClockwise:e.rotateClockwise,rotation:0,size:e.size,billboardMode3D:e.billboardMode3D,depth3D:e.depth3D,frame:e.frame,markerGraphics:[t],scaleSymbolsProportionally:e.scaleSymbolsProportionally,respectFrame:e.respectFrame,clippingPath:e.clippingPath}}function te(e){if(e?.startsWith("Level_")){const t=parseInt(e.slice(6),10);if(!isNaN(t))return t}return 0}function re(e,t){if(!t||0===t.length)return e;const i=r(e);return M.applyOverrides(i,t),i}const ie=e=>e&&2===e.length&&e[0].enable&&e[1].enable&&"CIMSolidStroke"===e[0].type&&"CIMSolidFill"===e[1].type&&null==e[0].path&&null==e[1].path&&!e[0].effects&&!e[1].effects&&!e[0].animations&&!e[1].animations;function oe(e){const t=e.symbolLayers;if(!t)return!1;const r=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectDashes"===e.type&&null!=e.dashTemplate)),i=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectAddControlPoints"===e.type));return!!r||!!i}function ae(e){return"CIMGeometricEffectCircularSector"===e.type||"CIMGeometricEffectRadial"===e.type||"CIMGeometricEffectTaperedPolygon"===e.type}function se(e){return e.some(e=>"CIMSolidFill"!==e.type&&"CIMSolidStroke"!==e.type&&("CIMVectorMarker"!==e.type&&"CIMPictureMarker"!==e.type||null!=e.markerPlacement))}function le(e,t){if((t?.some(e=>"CIMGeometricEffectRadial"===e.type)&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.type)||t?.some(e=>"CIMGeometricEffectCircularSector"===e.type))&&2===e.length){const t=e.find(e=>"CIMSolidFill"===e.type),r=e.find(e=>"CIMSolidStroke"===e.type),i=r?.effects?.some(e=>"CIMGeometricEffectDashes"===e.type);if(null!=t&&null!=r&&!i)return!0}return!1}function ne(e){return r(e).map(e=>({...e,propertyName:J(e.propertyName)}))}function pe(e){return u(e)?{type:"animation-params",params:e}:null}export{$ as CIMAnalyzer,re as analyzeCIMResource};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{clamp as t}from"../../../core/mathUtils.js";import{GeometryCursor as e}from"../../../geometry/GeometryCursor.js";import{defaultCIMValues as i}from"../defaultCIMValues.js";const s=Math.PI/180,r=2*Math.PI;class n{static{this.instance=null}static local(){return null===n.instance&&(n.instance=new n),n.instance}execute(t,e,i){return new o(t,e,i)}}class o{constructor(t,e,r){const n=r.geomUnitsPerPoint;this._inputGeometries=t,this._geomUnitsPerPoint=n,this._radius=(e.radius??i.CIMGeometricEffectCircularSector.radius)*n,this._startAngle=(e.startAngle??i.CIMGeometricEffectCircularSector.startangle)*s,this._endAngle=(e.endAngle??i.CIMGeometricEffectCircularSector.endangle)*s}next(){if(this._radius<=0)return null;let t=this._inputGeometries.next();for(;t;){if("esriGeometryPoint"===t.geometryType&&t.nextPath()&&t.nextPoint()){const i=this._buildRing(t.x,t.y,t.hasZ?t.z:void 0),s=e.createEmptyOptimizedCIM("esriGeometryPolygon",t.hasZ,!1);return s.pushPath(i),s}t=this._inputGeometries.next()}return null}_buildRing(e,i,s){const n=[this._makePoint(e,i,s)],o=a(this._startAngle);let h=a(this._endAngle);for(;h<o;)h+=r;const u=h-o;if(0===u)return n.push(this._makePoint(e+this._radius*Math.cos(h),i+this._radius*Math.sin(h),s)),n.push(this._makePoint(e,i,s)),n;const c=.25*this._geomUnitsPerPoint,l=this._radius<=.5*c?r:2*Math.acos(t(1-c/this._radius,-1,1)),m=Math.max(1,Math.ceil(u/l)),_=u/m;let d=h;for(let t=0;t<=m;t++,d-=_)n.push(this._makePoint(e+this._radius*Math.cos(d),i+this._radius*Math.sin(d),s));return n.push(this._makePoint(e,i,s)),n}_makePoint(t,e,i){return null==i?[t,e]:[t,e,i]}}function a(t){return(t%=r)<0?t+r:t}export{n as EffectCircularSector};
2
+ import{clamp as t}from"../../../core/mathUtils.js";import{GeometryCursor as e}from"../../../geometry/GeometryCursor.js";import{defaultCIMValues as i}from"../defaultCIMValues.js";const s=Math.PI/180,r=2*Math.PI;class n{static{this.instance=null}static local(){return null===n.instance&&(n.instance=new n),n.instance}execute(t,e,i){return new o(t,e,i)}}class o{constructor(t,e,r){const n=r.geomUnitsPerPoint;this._inputGeometries=t,this._geomUnitsPerPoint=n,this._radius=(e.radius??i.CIMGeometricEffectCircularSector.radius)*n,this._startAngle=(e.startAngle??i.CIMGeometricEffectCircularSector.startangle)*s,this._endAngle=(e.endAngle??i.CIMGeometricEffectCircularSector.endangle)*s}next(){if(this._radius<=0)return null;let t=this._inputGeometries.next();for(;t;){if("esriGeometryPoint"===t.geometryType||"esriGeometryMultipoint"===t.geometryType){const i=e.createEmptyOptimizedCIM("esriGeometryPolygon",t.hasZ,!1);let s=!1;for(;t.nextPath();)for(;t.nextPoint();)i.pushPath(this._buildRing(t.x,t.y,t.hasZ?t.z:void 0)),s=!0;if(s)return i}t=this._inputGeometries.next()}return null}_buildRing(e,i,s){const n=[this._makePoint(e,i,s)],o=a(this._startAngle);let u=a(this._endAngle);for(;u<o;)u+=r;const h=u-o;if(0===h)return n.push(this._makePoint(e+this._radius*Math.cos(u),i+this._radius*Math.sin(u),s)),n.push(this._makePoint(e,i,s)),n;const l=.25*this._geomUnitsPerPoint,c=this._radius<=.5*l?r:2*Math.acos(t(1-l/this._radius,-1,1)),m=Math.max(1,Math.ceil(h/c)),_=h/m;let f=u;for(let t=0;t<=m;t++,f-=_)n.push(this._makePoint(e+this._radius*Math.cos(f),i+this._radius*Math.sin(f),s));return n.push(this._makePoint(e,i,s)),n}_makePoint(t,e,i){return null==i?[t,e]:[t,e,i]}}function a(t){return(t%=r)<0?t+r:t}export{n as EffectCircularSector};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{create as e}from"../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{Bitmap as t}from"./Bitmap.js";import{TiledDisplayObject as s}from"./webgl/TiledDisplayObject.js";class i extends s{constructor(e,s,i,r,a,o,n=null){super(e,s,i,r,a,o),this.bitmap=new t(n),this.bitmap.coordScale=[a,o],this.bitmap.once("isReady",()=>this.ready())}destroy(){super.destroy(),this.bitmap.destroy()}beforeRender(e){this.bitmap.beforeRender(e),super.beforeRender(e)}afterRender(e){this.bitmap.afterRender(e),super.afterRender(e)}set stencilRef(e){this.bitmap.stencilRef=e}get stencilRef(){return this.bitmap.stencilRef}_createTransforms(){return{displayViewScreenMat3:e(),tileMat3:e()}}onAttach(){this.bitmap.stage=this.stage}onDetach(){this.bitmap&&(this.bitmap.stage=null)}}export{i as BitmapTile};
2
+ import{create as e}from"../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{Bitmap as t}from"./Bitmap.js";import{TiledDisplayObject as s}from"./webgl/TiledDisplayObject.js";class r extends s{constructor(e,s,r,i,a,o,n=null){super(e,s,r,i,a,o),this.bitmap=new t(n),this.bitmap.coordScale=[a,o],this.bitmap.once("isReady",()=>this.ready())}destroy(){super.destroy(),this.bitmap.destroy()}beforeRender(e){this.bitmap.beforeRender(e),super.beforeRender(e)}afterRender(e){this.bitmap.afterRender(e),super.afterRender(e)}set stencilRef(e){this.bitmap.stencilRef=e}get stencilRef(){return this.bitmap.stencilRef}_createTransforms(){return{displayViewScreenMat3:e(),tileMat3:e()}}onAttach(){this.bitmap.stage=this.stage}onDetach(){super.onDetach(),this.bitmap&&(this.bitmap.stage=null)}}export{r as BitmapTile};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{throwIfAborted as t}from"../../../../../core/promiseUtils.js";import{timeExtentsEqual as a,getFlowFloatUniforms as e,getFlowColorUniforms as s}from"../utils.js";import{AFlowResources as r}from"./AFlowResources.js";import{Mesh as i}from"../../webgl/meshing/Mesh.js";import{FlowImageryShader as o}from"../../webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js";import{PrimitiveType as m,DataType as n}from"../../../../webgl/enums.js";import l from"../../../../webgl/Texture.js";import{TextureDescriptor as p}from"../../../../webgl/TextureDescriptor.js";import{VertexElementDescriptor as h}from"../../../../webgl/VertexElementDescriptor.js";class c{constructor(t){this._params=t,this.supportsContinuation=!1,this.slideoutDuration=0,this.animated=!1}isCompatible(t){if(!(t instanceof c))return!1;if(!a(this._params.timeExtent,t._params.timeExtent))return!1;let e=!0;return e=e&&this._params.loadImagery===t._params.loadImagery,e=e&&this._params.color.kind===t._params.color.kind,e=e&&this._params.opacity.kind===t._params.opacity.kind,e}updateResource(t){t.update(this._params.color,this._params.opacity)}async load(a,e,s){const{extent:r,size:i}=a;t(s);const o=await this._params.loadImagery(r,i[0],i[1],this._params.timeExtent,s);return new d(o,a,[],o,{color:this._params.color,opacity:this._params.opacity})}}const u=[new h("position",2,n.UNSIGNED_SHORT,0,8),new h("texcoord",2,n.UNSIGNED_SHORT,4,8)];class d extends r{static{this._shader=new o}constructor(t,a,e,s,r){super(a,e,s),this._flowData=t,this._values=r,this.kind="imagery"}attach(t){const{context:a}=t,{width:e,height:s}=this._flowData;this.mesh=new i(a,{vertex:{geometry:{data:new Uint16Array([0,0,0,1,e,0,1,1,0,s,0,0,e,s,1,0]),layout:u}},groups:[{primitive:m.TRIANGLE_STRIP}],parts:[{group:0,start:0,count:4}]});let r=1e6,o=-1e6;for(let i=0;i<s;i++)for(let t=0;t<e;t++)if(0!==this._flowData.mask[i*e+t]){const a=this._flowData.data[2*(i*e+t)],s=this._flowData.data[2*(i*e+t)+1],m=Math.sqrt(a*a+s*s);r=Math.min(r,m),o=Math.max(o,m)}const n=new Uint8Array(4*e*s);for(let i=0;i<s;i++)for(let t=0;t<e;t++)if(0!==this._flowData.mask[i*e+t]){const a=this._flowData.data[2*(i*e+t)],s=this._flowData.data[2*(i*e+t)+1],m=(Math.sqrt(a*a+s*s)-r)/(o-r);n[4*(i*e+t)]=255*m,n[4*(i*e+t)+1]=0,n[4*(i*e+t)+2]=0,n[4*(i*e+t)+3]=255}else n[4*(i*e+t)]=0,n[4*(i*e+t)+1]=0,n[4*(i*e+t)+2]=0,n[4*(i*e+t)+3]=0;const h=new p(e,s);h.internalFormat=6408,h.wrapMode=33071,h.flipped=!0;const c=new l(a,h,n);this.texture=c,this.min=r,this.max=o,this._flowData=null}detach(){this.mesh.destroy(),this.texture.dispose()}get ready(){return!0}update(t,a){this._values={color:t,opacity:a}}getProgramSpec(t){return{shader:d._shader,uniforms:{view:t.view,transform:{localToScreenMat3:t.localToScreenMat3},state:{time:t.time,displayOpacity:t.displayOpacity,startTime:t.startTime,endTime:t.endTime},config:{min:this.min,max:this.max},color:s(this._values.color),opacity:e(this._values.opacity)},textures:{texture:{texture:this.texture,unit:0}},defines:{vvColor:"ramp"===this._values.color.kind,vvOpacity:"ramp"===this._values.opacity.kind},optionalAttributes:null}}}export{c as Imagery,d as ImageryResources};
2
+ import{throwIfAborted as t}from"../../../../../core/promiseUtils.js";import{timeExtentsEqual as a,getFlowFloatUniforms as e,getFlowColorUniforms as s}from"../utils.js";import{AFlowResources as r}from"./AFlowResources.js";import{Mesh as i}from"../../webgl/meshing/Mesh.js";import{FlowImageryShader as o}from"../../webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js";import{PrimitiveType as m,DataType as n}from"../../../../webgl/enums.js";import l from"../../../../webgl/Texture.js";import{TextureDescriptor as p}from"../../../../webgl/TextureDescriptor.js";import{VertexElementDescriptor as h}from"../../../../webgl/VertexElementDescriptor.js";class c{constructor(t){this._params=t,this.supportsContinuation=!1,this.slideoutDuration=0,this.animated=!1}isCompatible(t){if(!(t instanceof c))return!1;if(!a(this._params.timeExtent,t._params.timeExtent))return!1;let e=!0;return e=e&&this._params.loadImagery===t._params.loadImagery,e=e&&this._params.color.kind===t._params.color.kind,e=e&&this._params.opacity.kind===t._params.opacity.kind,e}updateResource(t){t.update(this._params.color,this._params.opacity)}async load(a,e,s){const{extent:r,size:i}=a;t(s);const o=await this._params.loadImagery(r,i[0],i[1],this._params.timeExtent,s);return new d(o,a,[],o,{color:this._params.color,opacity:this._params.opacity})}}const u=[new h("position",2,n.UNSIGNED_SHORT,0,8),new h("texcoord",2,n.UNSIGNED_SHORT,4,8)];class d extends r{static{this._shader=new o}constructor(t,a,e,s,r){super(a,e,s),this._flowData=t,this._values=r,this.kind="imagery"}attach(t){const{context:a}=t,{width:e,height:s}=this._flowData;this.mesh=new i(a,{vertex:{geometry:{data:new Uint16Array([0,0,0,1,e,0,1,1,0,s,0,0,e,s,1,0]),layout:u}},groups:[{primitive:m.TRIANGLE_STRIP}],parts:[{group:0,start:0,count:4}]});let r=1e6,o=-1e6;for(let i=0;i<s;i++)for(let t=0;t<e;t++)if(0!==this._flowData.mask[i*e+t]){const a=this._flowData.data[2*(i*e+t)],s=this._flowData.data[2*(i*e+t)+1],m=Math.sqrt(a*a+s*s);r=Math.min(r,m),o=Math.max(o,m)}const n=new Uint8Array(4*e*s);for(let i=0;i<s;i++)for(let t=0;t<e;t++)if(0!==this._flowData.mask[i*e+t]){const a=this._flowData.data[2*(i*e+t)],s=this._flowData.data[2*(i*e+t)+1],m=(Math.sqrt(a*a+s*s)-r)/(o-r);n[4*(i*e+t)]=255*m,n[4*(i*e+t)+1]=0,n[4*(i*e+t)+2]=0,n[4*(i*e+t)+3]=255}else n[4*(i*e+t)]=0,n[4*(i*e+t)+1]=0,n[4*(i*e+t)+2]=0,n[4*(i*e+t)+3]=0;const h=new p(e,s);h.internalFormat=6408,h.wrapMode=33071,h.flipped=!0;const c=new l(a,h,n);this.texture=c,this.min=r,this.max=o,this._flowData=null}detach(){this.mesh.destroy(),this.texture.dispose()}get ready(){return!0}update(t,a){this._values={color:t,opacity:a}}getProgramSpec(t){return{shader:d._shader,uniforms:{transform:{localToScreenMat3:t.localToScreenMat3},state:{time:t.time,displayOpacity:t.displayOpacity,startTime:t.startTime,endTime:t.endTime},config:{min:this.min,max:this.max},color:s(this._values.color),opacity:e(this._values.opacity)},textures:{texture:{texture:this.texture,unit:0}},defines:{vvColor:"ramp"===this._values.color.kind,vvOpacity:"ramp"===this._values.opacity.kind},optionalAttributes:null}}}export{c as Imagery,d as ImageryResources};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{throwIfAborted as t}from"../../../../../core/promiseUtils.js";import{deserializeFlowPaths as e}from"../flowPathsIO.js";import{areStreamlinesCompatible as s,getFlowFloatUniforms as a,getFlowColorUniforms as i}from"../utils.js";import{AFlowResources as r}from"./AFlowResources.js";import{Mesh as o}from"../../webgl/meshing/Mesh.js";import{FlowParticlesShader as n}from"../../webgl/shaderGraph/techniques/shaders/flow/FlowParticlesShader.js";import{getPositions as p}from"../../../../support/flow/utils.js";import{PrimitiveType as m,DataType as h}from"../../../../webgl/enums.js";import{VertexElementDescriptor as l}from"../../../../webgl/VertexElementDescriptor.js";class c{constructor(t){this._params=t,this.supportsContinuation=!1,this.slideoutDuration=0}get animated(){return this._params.flowSpeed>0}isCompatible(t){return t instanceof c&&s(this._params,t._params)}updateResource(t){t.update(this._params)}async load(s,a,i){const{extent:r,size:o}=s;t(i);const n=await this._params.loadImagery(r,o[0],o[1],this._params.timeExtent,i),m={...n,data:n.data.slice(),mask:n.mask?.slice()},h=a&&this._params.simulationSettings.continuous?p(a.flowPaths,a.query,s,this._params.flowSpeed):[],{vertexData:l,indexData:c,pathData:d}=await this._params.createFlowMesh("Particles",this._params.simulationSettings,n,{positions:h},i),_=e(d);return new u(l,c,s,_,m,this._params)}}const d=[new l("xyts0",4,h.FLOAT,0,64),new l("xyts1",4,h.FLOAT,16,64),new l("typeIdFirstTimeLastTime",4,h.FLOAT,32,64),new l("extrudeInfo",4,h.FLOAT,48,64)];class u extends r{static{this._shader=new n}constructor(t,e,s,a,i,r){super(s,a,i),this._vertexData=t,this._indexData=e,this._params=r,this.kind="particles",this.update(r)}attach(t){const{context:e}=t;this.mesh=new o(e,{vertex:{geometry:{data:this._vertexData,layout:d}},index:{indices:{data:this._indexData}},groups:[{index:"indices",primitive:m.TRIANGLES}],parts:[{group:0,start:0,count:this._indexData.length}]}),this._vertexData=null,this._indexData=null}detach(){this.mesh.destroy()}get ready(){return!0}update(t){this._params=t,this._values={color:this._params.color,opacity:this._params.opacity,size:this._params.size}}getProgramSpec(t){return{shader:u._shader,uniforms:{view:t.view,transform:{localToScreenMat3:t.localToScreenMat3},state:{time:t.time,displayOpacity:t.displayOpacity,startTime:t.startTime,endTime:t.endTime},config:{trailLength:this._params.trailLength,flowSpeed:this._params.flowSpeed,featheringSize:this._params.featheringSize,featheringOffset:this._params.featheringOffset,introFade:this._params.introFade?1:0,fadeToZero:this._params.fadeToZero?1:0,decayRate:this._params.decayRate},color:i(this._values.color),opacity:a(this._values.opacity),size:a(this._values.size)},textures:{},defines:{vvColor:"ramp"===this._values.color.kind,vvOpacity:"ramp"===this._values.opacity.kind,vvSize:"ramp"===this._values.size.kind},optionalAttributes:null}}}export{c as Particles,u as ParticlesResources};
2
+ import{throwIfAborted as t}from"../../../../../core/promiseUtils.js";import{deserializeFlowPaths as s}from"../flowPathsIO.js";import{areStreamlinesCompatible as e,getFlowFloatUniforms as a,getFlowColorUniforms as i}from"../utils.js";import{AFlowResources as r}from"./AFlowResources.js";import{Mesh as o}from"../../webgl/meshing/Mesh.js";import{FlowParticlesShader as n}from"../../webgl/shaderGraph/techniques/shaders/flow/FlowParticlesShader.js";import{getPositions as p}from"../../../../support/flow/utils.js";import{PrimitiveType as m,DataType as h}from"../../../../webgl/enums.js";import{VertexElementDescriptor as l}from"../../../../webgl/VertexElementDescriptor.js";class c{constructor(t){this._params=t,this.supportsContinuation=!1,this.slideoutDuration=0}get animated(){return this._params.flowSpeed>0}isCompatible(t){return t instanceof c&&e(this._params,t._params)}updateResource(t){t.update(this._params)}async load(e,a,i){const{extent:r,size:o}=e;t(i);const n=await this._params.loadImagery(r,o[0],o[1],this._params.timeExtent,i),m={...n,data:n.data.slice(),mask:n.mask?.slice()},h=a&&this._params.simulationSettings.continuous?p(a.flowPaths,a.query,e,this._params.flowSpeed):[],{vertexData:l,indexData:c,pathData:d}=await this._params.createFlowMesh("Particles",this._params.simulationSettings,n,{positions:h},i),_=s(d);return new u(l,c,e,_,m,this._params)}}const d=[new l("xyts0",4,h.FLOAT,0,64),new l("xyts1",4,h.FLOAT,16,64),new l("typeIdFirstTimeLastTime",4,h.FLOAT,32,64),new l("extrudeInfo",4,h.FLOAT,48,64)];class u extends r{static{this._shader=new n}constructor(t,s,e,a,i,r){super(e,a,i),this._vertexData=t,this._indexData=s,this._params=r,this.kind="particles",this.update(r)}attach(t){const{context:s}=t;this.mesh=new o(s,{vertex:{geometry:{data:this._vertexData,layout:d}},index:{indices:{data:this._indexData}},groups:[{index:"indices",primitive:m.TRIANGLES}],parts:[{group:0,start:0,count:this._indexData.length}]}),this._vertexData=null,this._indexData=null}detach(){this.mesh.destroy()}get ready(){return!0}update(t){this._params=t,this._values={color:this._params.color,opacity:this._params.opacity,size:this._params.size}}getProgramSpec(t){return{shader:u._shader,uniforms:{transform:{localToScreenMat3:t.localToScreenMat3},state:{time:t.time,displayOpacity:t.displayOpacity,startTime:t.startTime,endTime:t.endTime},config:{trailLength:this._params.trailLength,flowSpeed:this._params.flowSpeed,featheringSize:this._params.featheringSize,featheringOffset:this._params.featheringOffset,introFade:this._params.introFade?1:0,fadeToZero:this._params.fadeToZero?1:0,decayRate:this._params.decayRate},color:i(this._values.color),opacity:a(this._values.opacity),size:a(this._values.size)},textures:{},defines:{vvColor:"ramp"===this._values.color.kind,vvOpacity:"ramp"===this._values.opacity.kind,vvSize:"ramp"===this._values.size.kind},optionalAttributes:null}}}export{c as Particles,u as ParticlesResources};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{throwIfAborted as t}from"../../../../../core/promiseUtils.js";import{deserializeFlowPaths as e}from"../flowPathsIO.js";import{areStreamlinesCompatible as s,getFlowFloatUniforms as a,getFlowColorUniforms as i}from"../utils.js";import{AFlowResources as r}from"./AFlowResources.js";import{Mesh as o}from"../../webgl/meshing/Mesh.js";import{FlowStreamlinesShader as n}from"../../webgl/shaderGraph/techniques/shaders/flow/FlowStreamlinesShader.js";import{getPositions as m}from"../../../../support/flow/utils.js";import{PrimitiveType as p,DataType as h}from"../../../../webgl/enums.js";import{VertexElementDescriptor as l}from"../../../../webgl/VertexElementDescriptor.js";class d{constructor(t){this._params=t,this.supportsContinuation=!1,this.slideoutDuration=20}get animated(){return this._params.flowSpeed>0}isCompatible(t){return t instanceof d&&s(this._params,t._params)}updateResource(t){t.update(this._params)}async load(s,a,i){const{extent:r,size:o}=s;t(i);const n=await this._params.loadImagery(r,o[0],o[1],this._params.timeExtent,i),p={...n,data:n.data.slice(),mask:n.mask?.slice()},h=a&&this._params.simulationSettings.continuous?m(a.flowPaths,a.query,s,this._params.flowSpeed):[],{vertexData:l,indexData:d,pathData:u}=await this._params.createFlowMesh("Streamlines",this._params.simulationSettings,n,{positions:h},i),_=e(u);return new c(l,d,s,_,p,this._params)}}const u=[new l("positionAndSide",3,h.FLOAT,0,36),new l("timeInfo",3,h.FLOAT,12,36),new l("extrude",2,h.FLOAT,24,36),new l("speed",1,h.FLOAT,32,36)];class c extends r{static{this._shader=new n}constructor(t,e,s,a,i,r){super(s,a,i),this._vertexData=t,this._indexData=e,this._params=r,this.kind="streamlines",this.update(r)}attach(t){const{context:e}=t;this.mesh=new o(e,{vertex:{geometry:{data:this._vertexData,layout:u}},index:{indices:{data:this._indexData}},groups:[{index:"indices",primitive:p.TRIANGLES}],parts:[{group:0,start:0,count:this._indexData.length}]}),this._vertexData=null,this._indexData=null}detach(){this.mesh.destroy()}get ready(){return!0}update(t){this._params=t,this._values={color:this._params.color,opacity:this._params.opacity,size:this._params.size}}getProgramSpec(t){return{shader:c._shader,uniforms:{view:t.view,transform:{localToScreenMat3:t.localToScreenMat3},state:{time:t.time-this.query.time,displayOpacity:t.displayOpacity,startTime:t.startTime-this.query.time,endTime:t.endTime-this.query.time},config:{trailLength:this._params.trailLength,flowSpeed:this._params.flowSpeed,featheringSize:this._params.featheringSize,featheringOffset:this._params.featheringOffset,introFade:this._params.introFade?1:0,fadeToZero:this._params.fadeToZero?1:0,decayRate:this._params.decayRate},color:i(this._values.color),opacity:a(this._values.opacity),size:a(this._values.size)},textures:{},defines:{vvColor:"ramp"===this._values.color.kind,vvOpacity:"ramp"===this._values.opacity.kind,vvSize:"ramp"===this._values.size.kind},optionalAttributes:null}}}export{d as default};
2
+ import{throwIfAborted as t}from"../../../../../core/promiseUtils.js";import{deserializeFlowPaths as e}from"../flowPathsIO.js";import{areStreamlinesCompatible as s,getFlowFloatUniforms as a,getFlowColorUniforms as i}from"../utils.js";import{AFlowResources as r}from"./AFlowResources.js";import{Mesh as o}from"../../webgl/meshing/Mesh.js";import{FlowStreamlinesShader as n}from"../../webgl/shaderGraph/techniques/shaders/flow/FlowStreamlinesShader.js";import{getPositions as m}from"../../../../support/flow/utils.js";import{PrimitiveType as p,DataType as h}from"../../../../webgl/enums.js";import{VertexElementDescriptor as l}from"../../../../webgl/VertexElementDescriptor.js";class d{constructor(t){this._params=t,this.supportsContinuation=!1,this.slideoutDuration=20}get animated(){return this._params.flowSpeed>0}isCompatible(t){return t instanceof d&&s(this._params,t._params)}updateResource(t){t.update(this._params)}async load(s,a,i){const{extent:r,size:o}=s;t(i);const n=await this._params.loadImagery(r,o[0],o[1],this._params.timeExtent,i),p={...n,data:n.data.slice(),mask:n.mask?.slice()},h=a&&this._params.simulationSettings.continuous?m(a.flowPaths,a.query,s,this._params.flowSpeed):[],{vertexData:l,indexData:d,pathData:u}=await this._params.createFlowMesh("Streamlines",this._params.simulationSettings,n,{positions:h},i),_=e(u);return new c(l,d,s,_,p,this._params)}}const u=[new l("positionAndSide",3,h.FLOAT,0,36),new l("timeInfo",3,h.FLOAT,12,36),new l("extrude",2,h.FLOAT,24,36),new l("speed",1,h.FLOAT,32,36)];class c extends r{static{this._shader=new n}constructor(t,e,s,a,i,r){super(s,a,i),this._vertexData=t,this._indexData=e,this._params=r,this.kind="streamlines",this.update(r)}attach(t){const{context:e}=t;this.mesh=new o(e,{vertex:{geometry:{data:this._vertexData,layout:u}},index:{indices:{data:this._indexData}},groups:[{index:"indices",primitive:p.TRIANGLES}],parts:[{group:0,start:0,count:this._indexData.length}]}),this._vertexData=null,this._indexData=null}detach(){this.mesh.destroy()}get ready(){return!0}update(t){this._params=t,this._values={color:this._params.color,opacity:this._params.opacity,size:this._params.size}}getProgramSpec(t){return{shader:c._shader,uniforms:{transform:{localToScreenMat3:t.localToScreenMat3},state:{time:t.time-this.query.time,displayOpacity:t.displayOpacity,startTime:t.startTime-this.query.time,endTime:t.endTime-this.query.time},config:{trailLength:this._params.trailLength,flowSpeed:this._params.flowSpeed,featheringSize:this._params.featheringSize,featheringOffset:this._params.featheringOffset,introFade:this._params.introFade?1:0,fadeToZero:this._params.fadeToZero?1:0,decayRate:this._params.decayRate},color:i(this._values.color),opacity:a(this._values.opacity),size:a(this._values.size)},textures:{},defines:{vvColor:"ramp"===this._values.color.kind,vvOpacity:"ramp"===this._values.opacity.kind,vvSize:"ramp"===this._values.size.kind},optionalAttributes:null}}}export{d as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{create as t}from"../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{RasterBitmap as e}from"./RasterBitmap.js";import{TiledDisplayObject as s}from"../webgl/TiledDisplayObject.js";class i extends s{constructor(t,s,i,a,r,l,n=null){super(t,s,i,a,r,l),this.bitmap=null,this.bitmap=new e(n,null,null),this.bitmap.coordScale=[r,l],this.bitmap.once("isReady",()=>this.ready())}destroy(){super.destroy(),this.bitmap.destroy(),this.bitmap=null,this.stage=null}set stencilRef(t){this.bitmap.stencilRef=t}get stencilRef(){return this.bitmap.stencilRef}_createTransforms(){return{displayViewScreenMat3:t(),tileMat3:t()}}onAttach(){this.bitmap.stage=this.stage}onDetach(){this.bitmap.stage=null}}export{i as RasterTile};
2
+ import{create as t}from"../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{RasterBitmap as e}from"./RasterBitmap.js";import{TiledDisplayObject as s}from"../webgl/TiledDisplayObject.js";class i extends s{constructor(t,s,i,a,r,l,n=null){super(t,s,i,a,r,l),this.bitmap=null,this.bitmap=new e(n,null,null),this.bitmap.coordScale=[r,l],this.bitmap.once("isReady",()=>this.ready())}destroy(){super.destroy(),this.bitmap.destroy(),this.bitmap=null,this.stage=null}set stencilRef(t){this.bitmap.stencilRef=t}get stencilRef(){return this.bitmap.stencilRef}_createTransforms(){return{displayViewScreenMat3:t(),tileMat3:t()}}onAttach(){this.bitmap.stage=this.stage}onDetach(){super.onDetach(),this.bitmap.stage=null}}export{i as RasterTile};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{create as t}from"../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{RasterVFDisplayObject as e}from"./RasterVFDisplayObject.js";import{TiledDisplayObject as s}from"../webgl/TiledDisplayObject.js";class a extends s{constructor(t,s,a,i,l,r,o=null){super(t,s,a,i,l,r),this.tileData=new e(o),this.tileData.coordScale=[l,r],this.tileData.once("isReady",()=>this.ready())}destroy(){super.destroy(),this.tileData.destroy(),this.tileData=null,this.stage=null}set stencilRef(t){this.tileData.stencilRef=t}get stencilRef(){return this.tileData.stencilRef}_createTransforms(){return{displayViewScreenMat3:t(),tileMat3:t()}}onAttach(){this.tileData.stage=this.stage}onDetach(){this.tileData.stage=null}}export{a as RasterVFTile};
2
+ import{create as t}from"../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{RasterVFDisplayObject as e}from"./RasterVFDisplayObject.js";import{TiledDisplayObject as s}from"../webgl/TiledDisplayObject.js";class a extends s{constructor(t,s,a,i,l,r,o=null){super(t,s,a,i,l,r),this.tileData=new e(o),this.tileData.coordScale=[l,r],this.tileData.once("isReady",()=>this.ready())}destroy(){super.destroy(),this.tileData.destroy(),this.tileData=null,this.stage=null}set stencilRef(t){this.tileData.stencilRef=t}get stencilRef(){return this.tileData.stencilRef}_createTransforms(){return{displayViewScreenMat3:t(),tileMat3:t()}}onAttach(){this.tileData.stage=this.stage}onDetach(){super.onDetach(),this.tileData.stage=null}}export{a as RasterVFTile};
@@ -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(!this._sprites||"loaded"!==this._sprites.loadStatus)return null;if(t&&t.startsWith(r)?([i,s]=this._rasterizeDash(t),e=!0):i=this._sprites.getSpriteInfo(t),!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(!this._sprites||"loaded"!==this._sprites.loadStatus||i>=this._mosaicPages.length)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={},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};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{MinPriority as e}from"../../../../core/MemCache.js";import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{fromValues as i}from"../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{create as o}from"../../../../geometry/support/aaBoundingRect.js";import{tileSizeInPixels as s}from"./constants.js";import{TileHandler as r}from"./TileHandler.js";import{VectorTile as n}from"./VectorTile.js";import l from"../../tiling/TileInfoViewPOT.js";import a from"../../tiling/TileKey.js";class h extends r{constructor(e,t,i,o,s){super(e,t,i,e.tileInfo.lods.length-1,o),this._memCache=s,this.type="TileHandler3D",this._vectorTiles=new Map,this._ongoingTileRequests=new Map,this._ongoingRequestToController=new Map,this._tileInfoView=new l(e.tileInfo,e.fullExtent)}destroy(){super.destroy(),this._ongoingRequestToController.forEach(e=>e.abort()),this._ongoingRequestToController.clear(),this._ongoingTileRequests.clear(),this._vectorTiles.clear()}async getVectorTile(r,l){const h=new a(r[0],r[1],r[2],0);let g=this._vectorTiles.get(h.id)??this._memCache.get(h.id);if(g)return g.retain(),g;const c=await this._getVectorTileData(h);if(t(l),!this._layer)return null;if(g=this._vectorTiles.get(h.id)??this._memCache.get(h.id),g)return g.retain(),g;const T=this._layer.tileInfo.getTileBounds(o(),h),m=this._tileInfoView.getTileResolution(r[0]);return g=new n(h,m,T[0],T[3],s,s,this._styleRepository,this),g.setData(c),c&&(g.retain(),this._memCache.put(h.id,g,e),this._vectorTiles.set(h.id,g)),g.neededForCoverage=!0,g.transforms.tileUnitsToPixels=i(1/8,0,0,0,1/8,0,0,0,1),g}updateTileSize(e){this._memCache.updateSize(e.id)}onDisposeTile(e){this._vectorTiles.delete(e.id)}_getVectorTileData(e){const t=e.id;if(this._ongoingTileRequests.has(t))return this._ongoingTileRequests.get(t);const i=new AbortController,o={signal:i.signal},s=this._getParsedVectorTileData(e,o).then(e=>(this._ongoingTileRequests.delete(t),this._ongoingRequestToController.delete(t),e)).catch(()=>(this._ongoingTileRequests.delete(t),this._ongoingRequestToController.delete(t),null));return this._ongoingTileRequests.set(t,s),this._ongoingRequestToController.set(t,i),s}_getParsedVectorTileData(e,t){return this.fetchTileData(e,t).then(i=>this.parseTileData({key:e,data:i},t))}}export{h as default};
2
+ import{MinPriority as e}from"../../../../core/MemCache.js";import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{fromValues as i}from"../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{create as o}from"../../../../geometry/support/aaBoundingRect.js";import{tileSizeInPixels as s}from"./constants.js";import{TileHandler as r}from"./TileHandler.js";import{VectorTile as n}from"./VectorTile.js";import l from"../../tiling/TileInfoViewPOT.js";import a from"../../tiling/TileKey.js";class h extends r{constructor(e,t,i,o,s){super(e,t,i,e.tileInfo.lods.length-1,o),this._memCache=s,this.type="TileHandler3D",this._vectorTiles=new Map,this._ongoingTileRequests=new Map,this._ongoingRequestToController=new Map,this.tilingScheme=new l(e.tileInfo,e.fullExtent)}destroy(){super.destroy(),this._ongoingRequestToController.forEach(e=>e.abort()),this._ongoingRequestToController.clear(),this._ongoingTileRequests.clear(),this._vectorTiles.clear()}async getVectorTile(r,l){const h=new a(r[0],r[1],r[2],0);let g=this._vectorTiles.get(h.id)??this._memCache.get(h.id);if(g)return g.retain(),g;const c=await this._getVectorTileData(h);if(t(l),!this._layer)return null;if(g=this._vectorTiles.get(h.id)??this._memCache.get(h.id),g)return g.retain(),g;const T=this._layer.tileInfo.getTileBounds(o(),h),m=this.tilingScheme.getTileResolution(r[0]);return g=new n(h,m,T[0],T[3],s,s,this._styleRepository,this),g.setData(c),c&&(g.retain(),this._memCache.put(h.id,g,e),this._vectorTiles.set(h.id,g)),g.neededForCoverage=!0,g.transforms.tileUnitsToPixels=i(1/8,0,0,0,1/8,0,0,0,1),g}updateTileSize(e){this._memCache.updateSize(e.id)}onDisposeTile(e){this._vectorTiles.delete(e.id)}_getVectorTileData(e){const t=e.id;if(this._ongoingTileRequests.has(t))return this._ongoingTileRequests.get(t);const i=new AbortController,o={signal:i.signal},s=this._getParsedVectorTileData(e,o).then(e=>(this._ongoingTileRequests.delete(t),this._ongoingRequestToController.delete(t),e)).catch(()=>(this._ongoingTileRequests.delete(t),this._ongoingRequestToController.delete(t),null));return this._ongoingTileRequests.set(t,s),this._ongoingRequestToController.set(t,i),s}_getParsedVectorTileData(e,t){return this.fetchTileData(e,t).then(i=>this.parseTileData({key:e,data:i},t))}}export{h as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{RenderingDevice as e}from"../webgl/RenderingDevice.js";import{simplePipelineState as t}from"../webgl/shaderGraph/utils.js";import{VTLTechniquesRepo as i}from"../webgl/shaderGraph/techniques/vectorTiles/VTLTechniques.js";const r=1e-6;class n{constructor(t,r){this.spriteMosaic=t,this.glyphMosaic=r,this._vtlTechniques=new i,this._context=null,this._vtlTechniques.startup(),this._renderingDevice=new e}dispose(){this._vtlTechniques&&this._vtlTechniques.shutdown(this._context),this.spriteMosaic.dispose(),this._renderingDevice.dispose(),this._context=null}drawSymbols(e,t,i){const n=i.layers;e.renderPass="translucent";const a=this._vtlTechniques.getTechnique(3);s[0]=t;for(let o=0;o<n.length;o++){const t=n[o];if(3!==t.type)continue;const i=t.getLayoutProperty("visibility");if(i&&1===i.getValue())continue;const l=e.displayLevel;void 0!==t.minzoom&&t.minzoom>l+r||void 0!==t.maxzoom&&t.maxzoom<=l-r||(e.styleLayerUID=t.uid,e.styleLayer=t,a.render(e,{tiles:s}))}s[0]=null}drawBackground(e,t,i){if(0===i.backgroundBucketIds.length)return;const{displayLevel:n,requiredLevel:a}=e;t.key.level=a,this._renderingDevice.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},stencil:!1,depth:{write:!1,test:519}}),e.renderPass="background";const o=this._vtlTechniques.getTechnique(0);s[0]=t,i.backgroundBucketIds.forEach(t=>{const a=i.getLayerById(t);if(0!==a.type)return;const l=a.getLayoutProperty("visibility");l&&1===l.getValue()||void 0!==a.minzoom&&a.minzoom>n+r||void 0!==a.maxzoom&&a.maxzoom<=n-r||(e.styleLayerUID=a.uid,e.styleLayer=a,o.render(e,{tiles:s}))}),s[0]=null}drawTile(e,i,r,n){const s=r.layers,a=n?e=>n!==e.type||!i.layerData.has(e.uid):e=>!i.layerData.has(e.uid),o=s.filter(e=>{if(a(e))return!1;const t=e.getLayoutProperty("visibility");return 1!==t?.getValue()}),{context:l}=e,c=l.getPipelineState(),{depthWrite:d}=c;i.disposeLayerData();let u=0,h=1;void 0!==d?.zNear&&void 0!==d.zFar&&(u=d.zNear,h=d.zFar),this._renderingDevice.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"none"},stencil:!1,depth:{write:{zNear:u,zFar:h},test:515}}),e.renderPass="opaque";for(let t=o.length-1;t>=0;--t)this._renderStyleLayer(o[t],e,i);this._renderingDevice.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},stencil:!1,depth:{write:!1,test:515}}),e.renderPass="translucent",o.forEach(t=>this._renderStyleLayer(t,e,i)),this._renderingDevice.setPipelineState(t),l.setPipelineState(c),this._context||(this._context=e.context)}setShader(e){return this._renderingDevice.setShader(e)}setPipelineState(e){return this._renderingDevice.setPipelineState(e)}getPipelineState(){return this._renderingDevice.getPipelineState()}submitDraw(e,t,i){return this._renderingDevice.submitDraw(e,t,i)}submitDrawMesh(e,t,i,r){this._renderingDevice.submitDrawMesh(e,t,i,r)}submitDrawMeshUntyped(e,t,i,r){this._renderingDevice.submitDrawMeshUntyped(e,t,i,r)}updatePipelineState(e){return this._renderingDevice.updatePipelineState(e)}setStencilRef(e,t){return this._renderingDevice.setStencilRef(e,t)}_renderStyleLayer(e,t,i){const{renderPass:n}=t;let a;switch(e.type){case 0:if("background"!==n)return;a=this._vtlTechniques.getTechnique(0);break;case 1:if("opaque"!==n&&"translucent"!==n)return;a=this._vtlTechniques.getTechnique(1);break;case 2:if("translucent"!==n)return;a=this._vtlTechniques.getTechnique(2);break;case 4:if("translucent"!==n)return;a=this._vtlTechniques.getTechnique(4);break;case 3:if("translucent"!==n)return;a=this._vtlTechniques.getTechnique(3)}const{displayLevel:o}=t,{minzoom:l,maxzoom:c}=e;if(void 0!==l&&l>o+r||void 0!==c&&c<=o-r||!a)return;const d=this._renderingDevice.getPipelineState();3===e.type&&this._renderingDevice.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},stencil:!1,depth:!1}),t.styleLayerUID=e.uid,t.styleLayer=e,s[0]=i,a.render(t,{tiles:s}),s[0]=null,3===e.type&&this._renderingDevice.setPipelineState(d)}}const s=[null];export{n as default};
2
+ import{RenderingDevice as e}from"../webgl/RenderingDevice.js";import{simplePipelineState as t}from"../webgl/shaderGraph/utils.js";import{VTLTechniquesRepo as i}from"../webgl/shaderGraph/techniques/vectorTiles/VTLTechniques.js";const n=1e-6;class r{constructor(t,n){this.spriteMosaic=t,this.glyphMosaic=n,this._vtlTechniques=new i,this._context=null,this._vtlTechniques.startup(),this._renderingDevice=new e}dispose(){this._vtlTechniques&&this._vtlTechniques.shutdown(this._context),this.spriteMosaic.dispose(),this._renderingDevice.dispose(),this._context=null}drawSymbols(e,t,i){this._context??=e.context;const r=i.layers;e.renderPass="translucent";const a=this._vtlTechniques.getTechnique(3);s[0]=t;for(let o=0;o<r.length;o++){const t=r[o];if(3!==t.type)continue;const i=t.getLayoutProperty("visibility");if(i&&1===i.getValue())continue;const c=e.displayLevel;void 0!==t.minzoom&&t.minzoom>c+n||void 0!==t.maxzoom&&t.maxzoom<=c-n||(e.styleLayerUID=t.uid,e.styleLayer=t,a.render(e,{tiles:s}))}s[0]=null}drawBackground(e,t,i){if(0===i.backgroundBucketIds.length)return;this._context??=e.context;const{displayLevel:r}=e;this._renderingDevice.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},stencil:!1,depth:{write:!1,test:519}}),e.renderPass="background";const a=this._vtlTechniques.getTechnique(0);s[0]=t,i.backgroundBucketIds.forEach(t=>{const o=i.getLayerById(t);if(0!==o.type)return;const c=o.getLayoutProperty("visibility");c&&1===c.getValue()||void 0!==o.minzoom&&o.minzoom>r+n||void 0!==o.maxzoom&&o.maxzoom<=r-n||(e.styleLayerUID=o.uid,e.styleLayer=o,a.render(e,{tiles:s}))}),s[0]=null}drawTile(e,i,n,r){this._context??=e.context;const s=n.layers,a=r?e=>r!==e.type||!i.layerData.has(e.uid):e=>!i.layerData.has(e.uid),o=s.filter(e=>{if(a(e))return!1;const t=e.getLayoutProperty("visibility");return 1!==t?.getValue()}),{context:c}=e,l=c.getPipelineState(),{depthWrite:h}=l;i.disposeLayerData();let d=0,u=1;void 0!==h?.zNear&&void 0!==h.zFar&&(d=h.zNear,u=h.zFar),this._renderingDevice.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"none"},stencil:!1,depth:{write:{zNear:d,zFar:u},test:515}}),e.renderPass="opaque";for(let t=o.length-1;t>=0;--t)this._renderStyleLayer(o[t],e,i);this._renderingDevice.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},stencil:!1,depth:{write:!1,test:515}}),e.renderPass="translucent",o.forEach(t=>this._renderStyleLayer(t,e,i)),this._renderingDevice.setPipelineState(t),c.setPipelineState(l)}setShader(e){return this._renderingDevice.setShader(e)}setPipelineState(e){return this._renderingDevice.setPipelineState(e)}getPipelineState(){return this._renderingDevice.getPipelineState()}submitDraw(e,t,i){return this._renderingDevice.submitDraw(e,t,i)}submitDrawMesh(e,t,i,n){this._renderingDevice.submitDrawMesh(e,t,i,n)}submitDrawMeshUntyped(e,t,i,n){this._renderingDevice.submitDrawMeshUntyped(e,t,i,n)}updatePipelineState(e){return this._renderingDevice.updatePipelineState(e)}setStencilRef(e,t){return this._renderingDevice.setStencilRef(e,t)}_renderStyleLayer(e,t,i){const{renderPass:r}=t;let a;switch(e.type){case 0:if("background"!==r)return;a=this._vtlTechniques.getTechnique(0);break;case 1:if("opaque"!==r&&"translucent"!==r)return;a=this._vtlTechniques.getTechnique(1);break;case 2:if("translucent"!==r)return;a=this._vtlTechniques.getTechnique(2);break;case 4:if("translucent"!==r)return;a=this._vtlTechniques.getTechnique(4);break;case 3:if("translucent"!==r)return;a=this._vtlTechniques.getTechnique(3)}const{displayLevel:o}=t,{minzoom:c,maxzoom:l}=e;if(void 0!==c&&c>o+n||void 0!==l&&l<=o-n||!a)return;const h=this._renderingDevice.getPipelineState();3===e.type&&this._renderingDevice.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},stencil:!1,depth:!1}),t.styleLayerUID=e.uid,t.styleLayer=e,s[0]=i,a.render(t,{tiles:s}),s[0]=null,3===e.type&&this._renderingDevice.setPipelineState(h)}}const s=[null];export{r 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;for(const t of this._backgroundTiles)t.destroy();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};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{set as e,identity as t,translate as i,rotate as s,multiply as l}from"../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{toRadian as r}from"../../../../core/libs/gl-matrix-2/math/common.js";import"../../tiling/TileInfoView.js";import a from"../../tiling/TileKey.js";import"../../tiling/TileQueue.js";import"../../tiling/TileStrategy.js";import{tileSizeInPixels as o,tileSizeInTileUnits as d,tileCoordinateScale as c}from"./constants.js";import{declutterSingleTile as h}from"./decluttering/jobsUtil.js";import{RenderableTile as u}from"../webgl/RenderableTile.js";import{TileReshuffleManager as m}from"../webgl/TileReshuffleManager.js";class p{constructor(){this._renderParams={reshuffleManager:new m,context:null,drawPhase:1,state:new g,stationary:!0,pixelRatio:1,displayLevel:-1,requiredLevel:-1,normalizedTileView:{origin:[0,0],worldWrapId:[0,0],unitsToPixels:1},tilingScheme:null,globalOpacity:1,renderPass:"background",styleLayer:null,styleLayerUID:-1,painter:null,glyphMosaic:null,spriteMosaic:null,profiler:null,renderingOptions:null,requestRender:null,allowDelayedRender:!1,deltaTime:-1,timeline:null,time:0,blendMode:null,dataUploadCounter:0,effects:null,inFadeTransition:!1,requireFBO:!1,highlightGradient:null,stencilSymbols:!0,is3D:!0,backgroundColor:null,animationsEnabled:!0},this._backgroundTile=new u(new a(0,0,0,0),1,0,0,o,o,d,d),this._heading=0,this._declutteredForHeading=new WeakMap}dispose(){this._renderParams=null}renderBackground(e,t,i,s,l,n,r,a,o,d){const c=this._backgroundTile;this._updateRenderParameters(e,t,c,i,l,n,r,a,o,d),this._renderParams.stencilSymbols=!1,i.drawBackground(this._renderParams,c,s)}renderContent(e,t,i,s,l,n,r,a,o,d,c,h){this._declutter(i),s.forAll(({sourceLayerInfo:{data:e}})=>this._declutter(e));const u=s.length>0;u&&this._stencilSymbols(e,t,i,s,l,n,r,a,o,d,c,h);let m=1;i.stencilRef=u?m:0,e.setStencilFunction(514,i.stencilRef,255),this._render(e,t,i,l,n,r,a,o,d,c,h),s.forAll(({sourceLod:t,offset:i,sourceLayerInfo:{data:s}})=>{s.stencilRef=++m,this._renderSymbols(e,t,s,l,n,r,a,i,d,c,h)})}_stencilSymbols(e,t,i,s,l,n,r,a,o,d,c,h){let u=1;i.stencilRef=u,e.setDepthTestEnabled(!1),e.setDepthWriteEnabled(!1),e.setStencilTestEnabled(!0),e.setBlendingEnabled(!1),e.setColorMask(!1,!1,!1,!1),e.setStencilOp(7680,7680,7681),e.setStencilWriteMask(255),e.setStencilFunction(519,i.stencilRef,255),this._stencilTileSymbols(e,t,i,l,n,r,a,o,d,c,h),s.forAll(({sourceLod:t,offset:i,sourceLayerInfo:{data:s}})=>{s.stencilRef=++u,e.setStencilFunction(519,s.stencilRef,255),this._stencilTileSymbols(e,t,s,l,n,r,a,i,d,c,h)}),e.setStencilWriteMask(0),e.setBlendingEnabled(!0),e.setDepthTestEnabled(!0),e.setColorMask(!0,!0,!0,!0)}_renderSymbols(e,t,i,s,l,n,r,a,o,d,c){e.setStencilFunction(514,i.stencilRef,255),this._render(e,t,i,s,l,n,r,a,o,d,c,3)}_render(e,t,i,s,l,n,r,a,o,d,c,h){this._updateRenderParameters(e,t,i,s,n,r,a,o,d,c),this._renderParams.stencilSymbols=!1,s.drawTile(this._renderParams,i,l,h)}_stencilTileSymbols(e,t,i,s,l,n,r,a,o,d,c){this._updateRenderParameters(e,t,i,s,n,r,a,o,d,c),this._renderParams.stencilSymbols=!0,i.triangleCount=0,s.drawSymbols(this._renderParams,i,l)}_updateRenderParameters(n,a,o,d,h,u,m,p,g,f){"type"in o&&"vector-tile"===o.type&&!o.stage&&o.attachWithContext(n);const _=a[0]-h.getLevelShift(a[0]),y=this._renderParams;y.context=n,y.painter=d,y.glyphMosaic=d.glyphMosaic,y.spriteMosaic=d.spriteMosaic,y.pixelRatio=g*f,y.displayLevel=_,y.requiredLevel=_;const b=h.getScale(a[0]),[S,w]=h.getOffset(a,u*b),M=c*u*b/p,T=-1-S-m[0]*u*2,R=1+w+(1-m[1])*u*2-2,P=y.state,x=p/f;P.size[0]=x,P.size[1]=x,P.pixelRatio=f,P.rotation=(360-this._heading)%360;const j=2/x;e(P.displayViewMat3,j,0,0,0,-j,0,-1,1,1);const L=M/j,k=[(T+1)/j,(1-R)/j],v=o.width/o.rangeX*o.resolution;P.resolution=v/L,y.normalizedTileView.origin[0]=-k[0],y.normalizedTileView.origin[1]=-k[1];const F=t(P.displayMat3),C=t(P.viewMat3),E=r(this._heading);i(F,F,[x/2,x/2]),s(F,F,E),i(F,F,[-x/2,-x/2]),l(F,P.displayViewMat3,F),i(C,C,[x/2,x/2]),s(C,C,-E),i(C,C,[-x/2,-x/2])}updateHeading(e){this._heading=e}_declutter(e){this._declutteredForHeading.get(e)!==this._heading&&(h(e,(360-this._heading)%360),this._declutteredForHeading.set(e,this._heading))}}class g{constructor(){this.size=[0,0],this.pixelRatio=1,this.rotation=0,this.displayMat3=n(),this.displayViewMat3=n(),this.viewMat3=n(),this.transform=null,this.inverseTransform=null,this.viewMat2d=null,this.id=0,this.extent=null,this.center=[0,0],this.scale=1,this.resolution=0,this.worldScreenWidth=0,this.spatialReference=null,this.viewpoint=null,this.getScreenTransform=null,this.toMap=null,this.toScreen=null,this.clone=null,this.copy=null,this.toJSON=null}}export{p as VectorTileRendererHelper3D};
2
+ import{set as e,identity as t,translate as i,rotate as l,multiply as s}from"../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{toRadian as r}from"../../../../core/libs/gl-matrix-2/math/common.js";import"../../tiling/TileInfoView.js";import a from"../../tiling/TileKey.js";import"../../tiling/TileQueue.js";import"../../tiling/TileStrategy.js";import{tileSizeInPixels as o,tileSizeInTileUnits as d,tileCoordinateScale as c}from"./constants.js";import{declutterSingleTile as h}from"./decluttering/jobsUtil.js";import{getNormalizedTileOrigin as u,getNormalizedTileUnitsPerMapUnit as g}from"../webgl/normalizedTileUtils.js";import{RenderableTile as m}from"../webgl/RenderableTile.js";import{TileReshuffleManager as p}from"../webgl/TileReshuffleManager.js";function _([e,t,i]){return new m(new a(e,t,i,0),1,0,0,o,o,d,d)}class T{constructor(){this._renderParams={reshuffleManager:new p,context:null,drawPhase:1,state:new f,stationary:!0,pixelRatio:1,displayLevel:-1,requiredLevel:-1,normalizedTileView:{origin:[0,0],worldWrapId:[0,0],unitsToPixels:1},tilingScheme:null,globalOpacity:1,renderPass:"background",styleLayer:null,styleLayerUID:-1,painter:null,glyphMosaic:null,spriteMosaic:null,profiler:null,renderingOptions:null,requestRender:null,allowDelayedRender:!1,deltaTime:-1,timeline:null,time:0,blendMode:null,dataUploadCounter:0,effects:null,inFadeTransition:!1,requireFBO:!1,highlightGradient:null,stencilSymbols:!0,is3D:!0,backgroundColor:null,animationsEnabled:!0},this._backgroundTile=_([0,0,0]),this._backgroundTileTilingScheme=null,this._heading=0,this._declutteredForHeading=new WeakMap}dispose(){this._backgroundTile.destroy(),this._backgroundTileTilingScheme=null,this._renderParams=null}updateViewRenderParameters(n,a,o,d,h,u,g,m,p,_){const T=this._getBackgroundTile(a,o,h,u),f=this._renderParams;f.context=n,f.painter=d,f.glyphMosaic=d.glyphMosaic,f.spriteMosaic=d.spriteMosaic,f.pixelRatio=p*_;const y=h.getScale(a[0]),b=c*g*y/m,S=f.state,w=m/_;S.size[0]=w,S.size[1]=w,S.pixelRatio=_,S.rotation=(360-this._heading)%360;const k=2/w;e(S.displayViewMat3,k,0,0,0,-k,0,-1,1,1);const M=b/k,R=T.width/T.rangeX*T.resolution;S.resolution=R/M;const v=t(S.displayMat3),P=t(S.viewMat3),x=r(this._heading);return i(v,v,[w/2,w/2]),l(v,v,x),i(v,v,[-w/2,-w/2]),s(v,S.displayViewMat3,v),i(P,P,[w/2,w/2]),l(P,P,-x),i(P,P,[-w/2,-w/2]),f}updateTileInfoRenderParameters(e,t,i,l,s,n,r,a){const o=this._getBackgroundTile(e,t,i,l),d=this._renderParams,c=this._getScreenTranslation(e,i,s,n,r,a),h=u(l,o),m=d.normalizedTileView,p=1/(d.state.resolution*g(l));return d.displayLevel=this._getLevel(e,i),d.requiredLevel=d.displayLevel,d.tilingScheme=l,m.origin[0]=h[0]-c[0]/p,m.origin[1]=h[1]-c[1]/p,m.worldWrapId[0]=o.key.world,m.worldWrapId[1]=0,m.unitsToPixels=p,d}renderBackground(e,t,i,l,s,n,r){const a=this._getBackgroundTile(t,i,n,r);this._attachTile(e,a),this._renderParams.stencilSymbols=!1,l.drawBackground(this._renderParams,a,s)}renderContent(e,t,i,l,s){this._declutter(t),i.forAll(({sourceLayerInfo:{data:e}})=>this._declutter(e));const n=i.length>0;n&&this._stencilSymbols(e,t,i,l,s);let r=1;t.stencilRef=n?r:0,e.setStencilFunction(514,t.stencilRef,255),this._render(e,t,l,s),i.forAll(({sourceLayerInfo:{data:t}})=>{t.stencilRef=++r,this._renderSymbols(e,t,l,s)})}_stencilSymbols(e,t,i,l,s){let n=1;t.stencilRef=n,e.setDepthTestEnabled(!1),e.setDepthWriteEnabled(!1),e.setStencilTestEnabled(!0),e.setBlendingEnabled(!1),e.setColorMask(!1,!1,!1,!1),e.setStencilOp(7680,7680,7681),e.setStencilWriteMask(255),e.setStencilFunction(519,t.stencilRef,255),this._stencilTileSymbols(e,t,l,s),i.forAll(({sourceLayerInfo:{data:t}})=>{t.stencilRef=++n,e.setStencilFunction(519,t.stencilRef,255),this._stencilTileSymbols(e,t,l,s)}),e.setStencilWriteMask(0),e.setBlendingEnabled(!0),e.setDepthTestEnabled(!0),e.setColorMask(!0,!0,!0,!0)}_renderSymbols(e,t,i,l){e.setStencilFunction(514,t.stencilRef,255),this._render(e,t,i,l,3)}_render(e,t,i,l,s){this._attachTile(e,t),this._renderParams.stencilSymbols=!1,i.drawTile(this._renderParams,t,l,s)}_stencilTileSymbols(e,t,i,l){this._attachTile(e,t),this._renderParams.stencilSymbols=!0,t.triangleCount=0,i.drawSymbols(this._renderParams,t,l)}_attachTile(e,t){"type"in t&&"vector-tile"===t.type&&!t.stage&&t.attachWithContext(e)}_getScreenTranslation(e,t,i,l,s,n){const r=t.getScale(e[0]),[a,o]=t.getOffset(e,i*r),d=2/(s/n);return[(-1-a-l[0]*i*2+1)/d,(1-(1+o+(1-l[1])*i*2-2))/d]}_getBackgroundTile(e,t,i,l){if(t)return t;const[s,n,r]=i.getLevelRowColumn(e),a=this._backgroundTile.key;return this._backgroundTileTilingScheme===l&&a.level===s&&a.row===n&&a.col===r||(this._backgroundTile.destroy(),this._backgroundTile=_([s,n,r]),this._backgroundTileTilingScheme=l),this._backgroundTile}_getLevel(e,t){return e[0]-t.getLevelShift(e[0])}updateHeading(e){this._heading=e}_declutter(e){this._declutteredForHeading.get(e)!==this._heading&&(h(e,(360-this._heading)%360),this._declutteredForHeading.set(e,this._heading))}}class f{constructor(){this.size=[0,0],this.pixelRatio=1,this.rotation=0,this.displayMat3=n(),this.displayViewMat3=n(),this.viewMat3=n(),this.transform=null,this.inverseTransform=null,this.viewMat2d=null,this.id=0,this.extent=null,this.center=[0,0],this.scale=1,this.resolution=0,this.worldScreenWidth=0,this.spatialReference=null,this.viewpoint=null,this.getScreenTransform=null,this.toMap=null,this.toScreen=null,this.clone=null,this.copy=null,this.toJSON=null}}export{T as VectorTileRendererHelper3D};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../core/has.js";import{estimateNumberMemory as t}from"../../../../core/memoryEstimations.js";import{List as e}from"./cpuMapped/FreeList.js";import{isHittest as n}from"./shaderGraph/techniques/featureTechniqueUtils.js";import{PrimitiveType as i,DataType as s}from"../../../webgl/enums.js";function a(t,e){return t<<16|255&e}function r(t){return 255&t}function d(t,e){return e?e.get(t.instanceId)??t.techniqueRef.symbologyPlane:t.techniqueRef.symbologyPlane}class h{constructor(t,e,n,i,s){this.instance=t,this.materialKey=e,this.target=n,this.start=i,this.count=s}get textureKey(){return r(this.materialKey)}get indexEnd(){return this.start+this.count}extend(t){this.count+=t}render(t){this.instance.techniqueRef.render(t,this)}getStencilReference(){return this.target.stencilRef}getAttributePrecisionPackFactors(){const t=this.instance.instanceId;return this.target.getMesh(t).getAttributePrecisionPackFactors()}draw(t,e){n(t)?this.drawCompute(t.context,e):this.drawGeometry(t.context,e)}drawCompute(t,e){const n=this.instance.instanceId,a=this.target.getMesh(n).getComputeVAO(t,e),r=this.start*Uint32Array.BYTES_PER_ELEMENT/3;t.bindVAO(a,e.locations),t.drawElements(i.POINTS,this.count/3,s.UNSIGNED_INT,r),t.bindVAO(null)}drawGeometry(t,e){const n=this.instance.instanceId,a=this.target.getMesh(n).getGeometryVAO(t,e),r=this.start*Uint32Array.BYTES_PER_ELEMENT;t.bindVAO(a,e.locations),t.drawElements(i.TRIANGLES,this.count,s.UNSIGNED_INT,r),t.bindVAO(null)}}class o{constructor(){this._length=0,this._minOrderedLength=0,this._materialKeys=new Set}static fromDisplayEntities(t,e,n,i){const s=new o,r=n.getInstanceOrder();for(const d of t.values())for(const t of d.records){const d=n.getInstance(t.instanceId),h=a(d.instanceId,t.textureKey);s.addRecord(d,h,t.indexStart,t.indexCount,t.vertexStart,t.vertexCount,e,i,r)}return s}get length(){return this._length}get minOrderedLength(){return this._minOrderedLength}get minUnorderedLength(){return this._materialKeys.size}get usedMemory(){return this._length?5*this._length*t:0}render(t,e){const{drawPhase:n}=t;for(const i of this.infos()){const s=i.instance.techniqueRef;s.drawPhase&n&&(null==e||s.type===e)&&i.render(t)}}addRecord(t,n,i,s,a,r,o,l,c){let u=i,_=s;if(_||(u=a,_=r),!_)return;if(null==this._head){const i=new h(t,n,o,u,_);return this._head=new e(i),this._tail=this._head,this._length++,void this._minOrderedLength++}if(1===l)return this._insert(t,n,o,u,_,this._tail,null);let g=null,m=this._head;const f=t.instanceId,y=d(t,c);if(2===l&&(2===y||3===y))return this._insert(t,n,o,u,_,this._tail,null);for(;m;){const e=m.data.instance,i=e.instanceId,s=d(e,c),a=g?.data.instance.instanceId;if(y<s||f===a&&f!==i)return this._insert(t,n,o,u,_,g,m);g=m,m=m.next}this._insert(t,n,o,u,_,g,null)}*infos(){if(null!=this._head)for(const t of this._head.values())yield t}_insert(t,n,i,s,a,r,d){if(null==r&&null==d){const r=new h(t,n,i,s,a);return this._head=new e(r),this._tail=this._head,this._length++,void this._minOrderedLength++}return n!==this._tail.data.materialKey&&this._minOrderedLength++,this._materialKeys.add(n),null==r&&null!=d?this._insertAtHead(t,n,i,s,a,d):null!=r&&null==d?this._insertAtEnd(t,n,i,s,a,r):null!=r&&null!=d?this._insertAtMiddle(t,n,i,s,a,r,d):void 0}_insertAtHead(t,n,i,s,a,r){const d=s+a;if(n===r.data.materialKey&&i===r.data.target&&d===r.data.start)r.data.start=s,r.data.count+=a;else{const d=new h(t,n,i,s,a);this._head=new e(d),this._head.next=r,this._length++}}_insertAtEnd(t,n,i,s,a,r){if(r.data.materialKey===n&&r.data.indexEnd===s)r.data.count+=a;else{const d=new h(t,n,i,s,a);this._tail=new e(d),r.next=this._tail,this._length++}}_insertAtMiddle(t,n,i,s,a,r,d){const o=s+a;if(r.data.materialKey===n&&r.data.target===i&&r.data.indexEnd===s)r.data.count+=a,r.data.materialKey===d.data.materialKey&&r.data.target===d.data.target&&r.data.indexEnd===d.data.start&&(r.data.count+=d.data.count,r.next=d.next,this._length--);else if(n===d.data.materialKey&&i===d.data.target&&o===d.data.start)d.data.start=s,d.data.count+=a;else{const o=new h(t,n,i,s,a),l=new e(o);r.next=l,l.next=d,this._length++}}}export{o as DisplayList,h as DisplayListInfo};
2
+ import"../../../../core/has.js";import{estimateNumberMemory as t}from"../../../../core/memoryEstimations.js";import{List as e}from"./cpuMapped/FreeList.js";import{isHittest as n}from"./shaderGraph/techniques/featureTechniqueUtils.js";import{PrimitiveType as i,DataType as s}from"../../../webgl/enums.js";function a(t,e){return t<<16|255&e}function r(t){return 255&t}function d(t,e){return e?e.get(t.instanceId)??t.techniqueRef.symbologyPlane:t.techniqueRef.symbologyPlane}class h{constructor(t,e,n,i,s){this.instance=t,this.materialKey=e,this.target=n,this.start=i,this.count=s}get textureKey(){return r(this.materialKey)}get indexEnd(){return this.start+this.count}extend(t){this.count+=t}render(t){const e=this.instance.techniqueRef;this.target.bindTile(t.context,t.tilingScheme),e.render(t,this)}getStencilReference(){return this.target.stencilRef}getAttributePrecisionPackFactors(){const t=this.instance.instanceId;return this.target.getMesh(t).getAttributePrecisionPackFactors()}draw(t,e){n(t)?this.drawCompute(t.context,e):this.drawGeometry(t.context,e)}drawCompute(t,e){const n=this.instance.instanceId,a=this.target.getMesh(n).getComputeVAO(t,e),r=this.start*Uint32Array.BYTES_PER_ELEMENT/3;t.bindVAO(a,e.locations),t.drawElements(i.POINTS,this.count/3,s.UNSIGNED_INT,r),t.bindVAO(null)}drawGeometry(t,e){const n=this.instance.instanceId,a=this.target.getMesh(n).getGeometryVAO(t,e),r=this.start*Uint32Array.BYTES_PER_ELEMENT;t.bindVAO(a,e.locations),t.drawElements(i.TRIANGLES,this.count,s.UNSIGNED_INT,r),t.bindVAO(null)}}class o{constructor(){this._length=0,this._minOrderedLength=0,this._materialKeys=new Set}static fromDisplayEntities(t,e,n,i){const s=new o,r=n.getInstanceOrder();for(const d of t.values())for(const t of d.records){const d=n.getInstance(t.instanceId),h=a(d.instanceId,t.textureKey);s.addRecord(d,h,t.indexStart,t.indexCount,t.vertexStart,t.vertexCount,e,i,r)}return s}get length(){return this._length}get minOrderedLength(){return this._minOrderedLength}get minUnorderedLength(){return this._materialKeys.size}get usedMemory(){return this._length?5*this._length*t:0}render(t,e){const{drawPhase:n}=t;for(const i of this.infos()){const s=i.instance.techniqueRef;s.drawPhase&n&&(null==e||s.type===e)&&i.render(t)}}addRecord(t,n,i,s,a,r,o,l,c){let u=i,_=s;if(_||(u=a,_=r),!_)return;if(null==this._head){const i=new h(t,n,o,u,_);return this._head=new e(i),this._tail=this._head,this._length++,void this._minOrderedLength++}if(1===l)return this._insert(t,n,o,u,_,this._tail,null);let g=null,m=this._head;const f=t.instanceId,y=d(t,c);if(2===l&&(2===y||3===y))return this._insert(t,n,o,u,_,this._tail,null);for(;m;){const e=m.data.instance,i=e.instanceId,s=d(e,c),a=g?.data.instance.instanceId;if(y<s||f===a&&f!==i)return this._insert(t,n,o,u,_,g,m);g=m,m=m.next}this._insert(t,n,o,u,_,g,null)}*infos(){if(null!=this._head)for(const t of this._head.values())yield t}_insert(t,n,i,s,a,r,d){if(null==r&&null==d){const r=new h(t,n,i,s,a);return this._head=new e(r),this._tail=this._head,this._length++,void this._minOrderedLength++}return n!==this._tail.data.materialKey&&this._minOrderedLength++,this._materialKeys.add(n),null==r&&null!=d?this._insertAtHead(t,n,i,s,a,d):null!=r&&null==d?this._insertAtEnd(t,n,i,s,a,r):null!=r&&null!=d?this._insertAtMiddle(t,n,i,s,a,r,d):void 0}_insertAtHead(t,n,i,s,a,r){const d=s+a;if(n===r.data.materialKey&&i===r.data.target&&d===r.data.start)r.data.start=s,r.data.count+=a;else{const d=new h(t,n,i,s,a);this._head=new e(d),this._head.next=r,this._length++}}_insertAtEnd(t,n,i,s,a,r){if(r.data.materialKey===n&&r.data.indexEnd===s)r.data.count+=a;else{const d=new h(t,n,i,s,a);this._tail=new e(d),r.next=this._tail,this._length++}}_insertAtMiddle(t,n,i,s,a,r,d){const o=s+a;if(r.data.materialKey===n&&r.data.target===i&&r.data.indexEnd===s)r.data.count+=a,r.data.materialKey===d.data.materialKey&&r.data.target===d.data.target&&r.data.indexEnd===d.data.start&&(r.data.count+=d.data.count,r.next=d.next,this._length--);else if(n===d.data.materialKey&&i===d.data.target&&o===d.data.start)d.data.start=s,d.data.count+=a;else{const o=new h(t,n,i,s,a),l=new e(o);r.next=l,l.next=d,this._length++}}}export{o as DisplayList,h as DisplayListInfo};
@@ -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 i}from"./TextureManager.js";import{TextureUploadManager as s}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 f}from"./effects/HittestEffect.js";import{EffectManager as h}from"./effects/post-processing/EffectManager.js";import{SimpleMesh as a}from"./meshing/SimpleMesh.js";import{updateUniformBufferObject as l}from"./shaderGraph/uniformBufferUtils.js";import{viewInfoUniformBlockBinding as c,getViewUniforms as d}from"./shaderGraph/techniques/shaders/ViewInfo.js";import{BitBlitTechnique as u}from"./shaderGraph/techniques/utility/BitBlitTechnique.js";import{WorldExtentClipTechnique as p}from"./shaderGraph/techniques/utility/WorldExtentClipTechnique.js";import{SizedDepthStencilFormat as b}from"../../../webgl/enums.js";import{DisposableFramebufferObject as g}from"../../../webgl/FramebufferObject.js";import{Renderbuffer as m}from"../../../webgl/Renderbuffer.js";import{RenderbufferDescriptor as _}from"../../../webgl/RenderbufferDescriptor.js";import{TextureDescriptor as w}from"../../../webgl/TextureDescriptor.js";import{UniformBufferObject as M}from"../../../webgl/UniformBufferObject.js";class B{constructor(e,l){this.context=e,this._blitTechnique=new u,this._worldExtentClipTechnique=new p,this._lastWidth=null,this._lastHeight=null,this._blendEffect=new r,this._stencilBuf=null,this._prevBeforeLayerFBOStack=[],this._fboPool=[],this.effects={highlight:new o,hittest:new f,insideEffect:new n("inside"),outsideEffect:new n("outside")},this.textureManager=new i(l),this.textureUploadManager=new s(l),this._effectsManager=new h,this._quadMesh=a.fromVertexStream(e,[0,0,1,0,0,1,1,1]),this._renderingDevice=new t,this._viewInfoUniformBufferObject=new M(e,c.descriptor)}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._viewInfoUniformBufferObject.dispose(),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 i;if(this._fboPool.length>0)i=this._fboPool.pop();else{const s=new w(e,t);s.samplingMode=9728,s.wrapMode=33071,i=new g(this.context,s,this._stencilBuf)}return i.width===e&&i.height===t||i.resize(e,t),i}releaseFbo(e){this._fboPool.push(e)}getSharedStencilBuffer(){return this._stencilBuf}beforeRenderPhases(e,t,i){const{context:s}=e;l(this._viewInfoUniformBufferObject,c,d(e)),s.bindUBO(c.bindingPoint,this._viewInfoUniformBufferObject),this._worldExtentClipTechnique.render(e,{backgroundColor:t,padding:i});const{width:r,height:n}=s.getViewport();if(this.updateFBOs(r,n),this._prevFBO=s.boundFramebuffer,s.bindFramebuffer(this.getFbos().output),s.setColorMask(!0,!0,!0,!0),null!=t){const{r:e,g:i,b:r,a:n}=t;s.setClearColor(n*e/255,n*i/255,n*r/255,n)}else s.setClearColor(0,0,0,0);s.setDepthWriteEnabled(!0),s.setClearDepth(1),s.clear(16640),s.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,i){const{context:s,blendMode:r,effects:n,drawPhase:o,requireFBO:f}=e;if(s.setClearColor(0,0,0,0),f||D(o,r,n,i)){const e=s.boundFramebuffer;this._prevBeforeLayerFBOStack.push(e);const{width:t,height:i}=s.getViewport(),r=this.acquireFbo(t,i);s.bindFramebuffer(r),s.setColorMask(!0,!0,!0,!0),s.setClearColor(0,0,0,0),s.setDepthWriteEnabled(!0),s.setClearDepth(1),s.clear(16640),s.setDepthWriteEnabled(!1)}s.setDepthWriteEnabled(!1),s.setDepthTestEnabled(!1),s.setStencilTestEnabled(!0),s.setClearStencil(t),s.setStencilWriteMask(255),s.clear(1024)}afterRenderLayer(e,t){const{context:i,blendMode:s,effects:r,requireFBO:n,drawPhase:o}=e;if(n||D(o,s,r,t)){const n=i.boundFramebuffer;if(null==n)return;null!=r&&r.length>0&&1===o&&(i.setColorMask(!0,!0,!0,!0),this._applyEffects(e,r,n)),i.bindFramebuffer(this._prevBeforeLayerFBOStack.pop()),i.setStencilTestEnabled(!1),i.setStencilWriteMask(0),i.setBlendingEnabled(!0),i.setBlendFunctionSeparate(1,771,1,771),i.setColorMask(!0,!0,!0,!0);const f=null==s||16===o||2===o||128===o?"normal":s;this._blendEffect.draw(e,n.colorTexture,9728,f,t),this.releaseFbo(n)}}blitTexture(e,t,i,s=1){this._blitTechnique.render(e,{texture:t,samplingMode:i,opacity:s}),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 i;for(i in this._fbos)this._fbos[i].resize(e,t);return}const i=new w(e,t);i.samplingMode=9728,i.wrapMode=33071;const s=new _(b.DEPTH24_STENCIL8,e,t);this._stencilBuf=new m(this.context,s),this._fbos={output:new g(this.context,i,this._stencilBuf),effect0:new g(this.context,i,this._stencilBuf)}}}_applyEffects(e,t,i){const{context:s}=e,r=this._effectsManager.getPostProcessingEffects(t);for(const{postProcessingTechnique:n,effect:o}of r)s.bindFramebuffer(i),n.render(e,{layerFBO:i,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,i){return this._renderingDevice.submitDraw(e,t,i)}submitDrawMesh(e,t,i,s){this._renderingDevice.submitDrawMesh(e,t,i,s)}submitDrawMeshUntyped(e,t,i,s){this._renderingDevice.submitDrawMeshUntyped(e,t,i,s)}updatePipelineState(e){return this._renderingDevice.updatePipelineState(e)}setStencilRef(e,t){return this._renderingDevice.setStencilRef(e,t)}}function D(e,t,i,s){return 4!==e&&2!==e&&16!==e&&128!==e&&(1!==s||null!=t&&"normal"!==t||null!=i&&i.length>0)}export{B as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../core/has.js";import"../../../../core/Logger.js";import{TechniqueProgramCache as e}from"./shaderGraph/techniques/TechniqueProgramCache.js";class t{constructor(){this._currentPipelineStateNeedsUpdate=!1,this._programCache=new e}dispose(){this._programCache.destroy()}clearShaderCache(){this._programCache.destroy(),this._programCache=new e}setShader(e){return this._shaderState={shader:e.shader,uniforms:e.uniforms,textures:e.textures,defines:e.defines,optionalAttributes:e.optionalAttributes,useComputeBuffer:e.useComputeBuffer??!1},this._shaderState}setPipelineState(e){e!==this._currentPipelineState&&(this._currentPipelineState=e,this._currentPipelineStateNeedsUpdate=!0)}updatePipelineState(e){this._currentPipelineStateNeedsUpdate&&(this._currentPipelineStateNeedsUpdate=!1,this._updatePipelineState(e))}getPipelineState(){return this._currentPipelineState}setStencilRef(e,t){if(null==this._currentPipelineState)throw new Error("Pipeline state not defined. Call setPipelineState before calling submitDraw ");const{stencil:s}=this._currentPipelineState;if(s){const{test:r}=s;if(r){const{compare:s,mask:i}=r;if(null==t)throw new Error("InternalError: Stencil reference expected for target but not defined");e.setStencilFunctionSeparate(1032,s,t,i)}}}setPipelineStateNeedsUpdate(e){this._currentPipelineStateNeedsUpdate=e}getShaderState(){return this._shaderState}getProgramCache(){return this._programCache}submitDraw(e,t,s){let r=s?.stencilRef;if(!this._shaderState)return null;const{shader:i,uniforms:n,textures:a,defines:l,optionalAttributes:o}=this._shaderState,c=e.context,d=t.getAttributePrecisionPackFactors(),p=this._programCache.getProgram(i,d,n,a??{},l??{},o??{});if(p.setUniforms(n),p.setTextures(a),p.bind(c),this.updatePipelineState(c),null==r){const e=t.getStencilReference();null!=e&&(r=e)}return null!=r&&this.setStencilRef(c,r),t.draw(e,i.locationInfo),p.cleanupTemporaryTextures(),{vertexShader:p.vertexShader,fragmentShader:p.fragmentShader}}submitDrawMesh(e,t,s,r){this.submitDrawMeshUntyped(e,t,s,r)}submitDrawMeshUntyped(e,t,s,r){const i=r?.parts,n=r?.stencilRef,{precisionFactors:a,materialKey:l}=t,{shader:o,uniforms:c,textures:d,defines:p,optionalAttributes:h}=this.setShader(t),u=this._programCache.getProgram(o,a||{},c,d??{},p??{},h??{},l);if(u.setUniforms(c),u.setTextures(d),u.bind(e),this.updatePipelineState(e),this.setStencilRef(e,n),i)for(const S of i)s.bind(e,t.shader.locationInfo,S),s.draw(e);else for(let S=0;S<s.parts.length;S++)s.bind(e,t.shader.locationInfo,S),s.draw(e);s.unbind(e),u.cleanupTemporaryTextures()}_updatePipelineState(e){if(null==this._currentPipelineState)throw new Error("Pipeline state not defined. Call setPipelineState before calling submitDraw ");const{color:t,depth:s,stencil:r}=this._currentPipelineState;if(t){const{blendMode:s,write:r}=t;switch(e.setColorMask(...r),e.setBlendingEnabled("none"!==s),e.setBlendEquation(32774),s){case"composite":e.setBlendFunctionSeparate(1,771,1,771);break;case"additive":e.setBlendFunctionSeparate(1,1,1,1);break;case"custom":{const{blendParameters:s,blendEquation:r}=t,{dstAlpha:i,dstRGB:n,srcAlpha:a,srcRGB:l}=s;e.setBlendEquation(r),e.setBlendFunctionSeparate(l,n,a,i);break}case"delete":e.setBlendEquation(32779),e.setBlendFunctionSeparate(1,771,1,771);break;case"none":e.setBlendingEnabled(!1)}}else e.setColorMask(!1,!1,!1,!1);if(s){const{test:t,write:r}=s;r?(e.setDepthWriteEnabled(!0),e.setDepthRange(r.zNear,r.zFar)):e.setDepthWriteEnabled(!1),t?(e.setDepthTestEnabled(!0),e.setDepthFunction(t)):e.setDepthTestEnabled(!1)}else e.setDepthTestEnabled(!1),e.setDepthWriteEnabled(!1);if(r){const{test:t,write:s}=r;if(t){const{op:s}=t;e.setStencilTestEnabled(!0),e.setStencilOpSeparate(1032,s.fail,s.zFail,s.zPass)}else e.setStencilTestEnabled(!1);if(s){const{mask:t}=s;e.setStencilWriteMask(t)}else e.setStencilWriteMask(0)}else e.setStencilTestEnabled(!1),e.setStencilWriteMask(0)}}export{t as RenderingDevice};
2
+ import"../../../../core/has.js";import"../../../../core/Logger.js";import{TechniqueProgramCache as e}from"./shaderGraph/techniques/TechniqueProgramCache.js";class t{constructor(){this._currentPipelineStateNeedsUpdate=!1,this._programCache=new e}dispose(){this._programCache.destroy()}clearShaderCache(){this._programCache.destroy(),this._programCache=new e}setShader(e){return this._shaderState={shader:e.shader,uniforms:e.uniforms,textures:e.textures,defines:e.defines,optionalAttributes:e.optionalAttributes,useComputeBuffer:e.useComputeBuffer??!1},this._shaderState}setPipelineState(e){e!==this._currentPipelineState&&(this._currentPipelineState=e,this._currentPipelineStateNeedsUpdate=!0)}updatePipelineState(e){this._currentPipelineStateNeedsUpdate&&(this._currentPipelineStateNeedsUpdate=!1,this._updatePipelineState(e))}getPipelineState(){return this._currentPipelineState}setStencilRef(e,t){if(null==this._currentPipelineState)throw new Error("Pipeline state not defined. Call setPipelineState before calling submitDraw ");const{stencil:s}=this._currentPipelineState;if(s){const{test:r}=s;if(r){const{compare:s,mask:i}=r;if(null==t)throw new Error("InternalError: Stencil reference expected for target but not defined");e.setStencilFunctionSeparate(1032,s,t,i)}}}setPipelineStateNeedsUpdate(e){this._currentPipelineStateNeedsUpdate=e}getShaderState(){return this._shaderState}getProgramCache(){return this._programCache}submitDraw(e,t,s){let r=s?.stencilRef;if(!this._shaderState)return null;const{shader:i,uniforms:n,textures:a,defines:l,optionalAttributes:o}=this._shaderState,c=e.context,d=t.getAttributePrecisionPackFactors(),p=a??{},h=this._programCache.getProgram(i,d,n,p,l??{},o??{});if(h.bind(c,n,p),this.updatePipelineState(c),null==r){const e=t.getStencilReference();null!=e&&(r=e)}return null!=r&&this.setStencilRef(c,r),t.draw(e,i.locationInfo),h.cleanupTemporaryTextures(),{vertexShader:h.vertexShader,fragmentShader:h.fragmentShader}}submitDrawMesh(e,t,s,r){this.submitDrawMeshUntyped(e,t,s,r)}submitDrawMeshUntyped(e,t,s,r){const i=r?.parts,n=r?.stencilRef,{precisionFactors:a,materialKey:l}=t,{shader:o,uniforms:c,textures:d,defines:p,optionalAttributes:h}=this.setShader(t),u=d??{},S=this._programCache.getProgram(o,a||{},c,u,p??{},h??{},l);if(S.bind(e,c,u),this.updatePipelineState(e),this.setStencilRef(e,n),i)for(const f of i)s.bind(e,t.shader.locationInfo,f),s.draw(e);else for(let f=0;f<s.parts.length;f++)s.bind(e,t.shader.locationInfo,f),s.draw(e);s.unbind(e),S.cleanupTemporaryTextures()}_updatePipelineState(e){if(null==this._currentPipelineState)throw new Error("Pipeline state not defined. Call setPipelineState before calling submitDraw ");const{color:t,depth:s,stencil:r}=this._currentPipelineState;if(t){const{blendMode:s,write:r}=t;switch(e.setColorMask(...r),e.setBlendingEnabled("none"!==s),e.setBlendEquation(32774),s){case"composite":e.setBlendFunctionSeparate(1,771,1,771);break;case"additive":e.setBlendFunctionSeparate(1,1,1,1);break;case"custom":{const{blendParameters:s,blendEquation:r}=t,{dstAlpha:i,dstRGB:n,srcAlpha:a,srcRGB:l}=s;e.setBlendEquation(r),e.setBlendFunctionSeparate(l,n,a,i);break}case"delete":e.setBlendEquation(32779),e.setBlendFunctionSeparate(1,771,1,771);break;case"none":e.setBlendingEnabled(!1)}}else e.setColorMask(!1,!1,!1,!1);if(s){const{test:t,write:r}=s;r?(e.setDepthWriteEnabled(!0),e.setDepthRange(r.zNear,r.zFar)):e.setDepthWriteEnabled(!1),t?(e.setDepthTestEnabled(!0),e.setDepthFunction(t)):e.setDepthTestEnabled(!1)}else e.setDepthTestEnabled(!1),e.setDepthWriteEnabled(!1);if(r){const{test:t,write:s}=r;if(t){const{op:s}=t;e.setStencilTestEnabled(!0),e.setStencilOpSeparate(1032,s.fail,s.zFail,s.zPass)}else e.setStencilTestEnabled(!1);if(s){const{mask:t}=s;e.setStencilWriteMask(t)}else e.setStencilWriteMask(0)}else e.setStencilTestEnabled(!1),e.setStencilWriteMask(0)}}export{t as RenderingDevice};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import has from"../../../../core/has.js";import{createNormalizedTileView as e}from"./normalizedTileUtils.js";import i from"./WGLContainer.js";import{TileDebugInfoTechnique as t}from"./shaderGraph/techniques/tile/TileDebugInfoTechnique.js";import{TileStencilTechnique as n}from"./shaderGraph/techniques/tile/TileStencilTechnique.js";const l=(e,i)=>e.key.level-i.key.level!==0?e.key.level-i.key.level:e.key.row-i.key.row!==0?e.key.row-i.key.row:e.key.col-i.key.col;class r extends i{constructor(e){super(),this._tileStencilTechnique=new n,this._tileDebugInfoTechnique=new t,this.tilingScheme=e,this.sortFunction=l}get tilingScheme(){return this._tilingScheme}set tilingScheme(e){this._tilingScheme=e}renderChildren(e){this.setStencilReference(e),super.renderChildren(e);for(const i of this.getStencilTarget())this._tileStencilTechnique.render(e,i,this.getTileStencilOptions(i));if(has("esri-tiles-debug"))for(const i of this.children)this._tileDebugInfoTechnique.render(e,i)}getTileStencilOptions(e){return null}createRenderParams(i){const{state:t}=i,n=super.createRenderParams(i);return n.requiredLevel=this.tilingScheme.getClosestInfoForScale(t.scale).level,n.displayLevel=this.tilingScheme.scaleToZoom(t.scale),n.normalizedTileView=e(t,this.tilingScheme),n.tilingScheme=this.tilingScheme,n}onDetach(){super.onDetach(),this._tileStencilTechnique.shutdown(),this._tileDebugInfoTechnique.shutdown()}getStencilTarget(){return this.children}setStencilReference(e){let i=1;for(const t of this.children)t.stencilRef=i++}}export{r as default};
2
+ import has from"../../../../core/has.js";import{createNormalizedTileView as e}from"./normalizedTileUtils.js";import i from"./WGLContainer.js";import{updateUniformBufferObject as t}from"./shaderGraph/uniformBufferUtils.js";import{tileInfoUniformBlockBinding as n,getTileInfoUniforms as r}from"./shaderGraph/techniques/shaders/TileInfo.js";import{TileDebugInfoTechnique as s}from"./shaderGraph/techniques/tile/TileDebugInfoTechnique.js";import{TileStencilTechnique as l}from"./shaderGraph/techniques/tile/TileStencilTechnique.js";import{UniformBufferObject as o}from"../../../webgl/UniformBufferObject.js";const c=(e,i)=>e.key.level-i.key.level!==0?e.key.level-i.key.level:e.key.row-i.key.row!==0?e.key.row-i.key.row:e.key.col-i.key.col;class h extends i{constructor(e){super(),this._tileStencilTechnique=new l,this._tileDebugInfoTechnique=new s,this._tileInfoUniformBufferObject=null,this.tilingScheme=e,this.sortFunction=c}get tilingScheme(){return this._tilingScheme}set tilingScheme(e){this._tilingScheme=e}renderChildren(e){this._updateTileInfo(e),this.setStencilReference(e),super.renderChildren(e);for(const i of this.getStencilTarget())this._tileStencilTechnique.render(e,i,this.getTileStencilOptions(i));if(has("esri-tiles-debug"))for(const i of this.children)this._tileDebugInfoTechnique.render(e,i)}getTileStencilOptions(e){return null}createRenderParams(i){const{state:t}=i,n=super.createRenderParams(i);return n.requiredLevel=this.tilingScheme.getClosestInfoForScale(t.scale).level,n.displayLevel=this.tilingScheme.scaleToZoom(t.scale),n.normalizedTileView=e(t,this.tilingScheme),n.tilingScheme=this.tilingScheme,n}onDetach(){super.onDetach(),this._tileInfoUniformBufferObject?.dispose(),this._tileInfoUniformBufferObject=null,this._tileStencilTechnique.shutdown(),this._tileDebugInfoTechnique.shutdown()}_updateTileInfo(e){const{context:i}=e;this._tileInfoUniformBufferObject??=new o(i,n.descriptor);const s=this._tileInfoUniformBufferObject;t(s,n,r(e)),i.bindUBO(n.bindingPoint,s)}getStencilTarget(){return this.children}setStencilReference(e){let i=1;for(const t of this.children)t.stencilRef=i++}}export{h as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{set as t,multiply as e}from"../../../../core/libs/gl-matrix-2/math/mat3.js";import{DisplayObject as s}from"../DisplayObject.js";import i from"../../tiling/TileKey.js";class r extends s{constructor(t,e,s,r,o,n,h=o,d=n){super(),this.tileDebugInfoTexture=null,this.debugInfo={display:{length:0,minOrderedLength:0,minUnorderedLength:0,triangleCount:0},memory:{bytesUsed:0,bytesReserved:0}},this._destroyed=!1,this.key=new i(t),this.resolution=e,this.x=s,this.y=r,this.width=o,this.height=n,this.rangeX=h,this.rangeY=d}destroy(){super.destroy(),this.tileDebugInfoTexture&&(this.tileDebugInfoTexture.dispose(),this.tileDebugInfoTexture=null),this._destroyed=!0}get debugSlot(){let t=this;for(;t.parent!==this._stage;){if(!t.parent)return 0;t=t.parent}return this._stage.children.indexOf(t)}setTransform(s){const i=this.resolution/(s.resolution*s.pixelRatio),r=this.transforms.tileMat3,[o,n]=s.toScreenNoRotation([0,0],[this.x,this.y]),h=this.width/this.rangeX*i,d=this.height/this.rangeY*i;t(r,h,0,0,0,d,0,o,n,1),e(this.transforms.displayViewScreenMat3,s.displayViewMat3,r)}get destroyed(){return this._destroyed}}export{r as TiledDisplayObject};
2
+ import{set as e,multiply as t}from"../../../../core/libs/gl-matrix-2/math/mat3.js";import{DisplayObject as i}from"../DisplayObject.js";import{updateUniformBufferObject as s}from"./shaderGraph/uniformBufferUtils.js";import{tileUniformBlockBinding as r,getTileUniforms as o}from"./shaderGraph/techniques/shaders/Tile.js";import n from"../../tiling/TileKey.js";import{UniformBufferObject as h}from"../../../webgl/UniformBufferObject.js";class f extends i{constructor(e,t,i,s,r,o,h=r,f=o){super(),this.tileDebugInfoTexture=null,this.debugInfo={display:{length:0,minOrderedLength:0,minUnorderedLength:0,triangleCount:0},memory:{bytesUsed:0,bytesReserved:0}},this._destroyed=!1,this._tileUniformBufferObject=null,this.key=new n(e),this.resolution=t,this.x=i,this.y=s,this.width=r,this.height=o,this.rangeX=h,this.rangeY=f}destroy(){super.destroy(),this._disposeTileUniformBufferObject(),this.tileDebugInfoTexture&&(this.tileDebugInfoTexture.dispose(),this.tileDebugInfoTexture=null),this._destroyed=!0}get debugSlot(){let e=this;for(;e.parent!==this._stage;){if(!e.parent)return 0;e=e.parent}return this._stage.children.indexOf(e)}bindTile(e,t){let i=this._tileUniformBufferObject;null==i&&(i=new h(e,r.descriptor,35044),s(i,r,o(t,this)),this._tileUniformBufferObject=i),e.bindUBO(r.bindingPoint,i)}setTransform(i){const s=this.resolution/(i.resolution*i.pixelRatio),r=this.transforms.tileMat3,[o,n]=i.toScreenNoRotation([0,0],[this.x,this.y]),h=this.width/this.rangeX*s,f=this.height/this.rangeY*s;e(r,h,0,0,0,f,0,o,n,1),t(this.transforms.displayViewScreenMat3,i.displayViewMat3,r)}onDetach(){super.onDetach(),this._disposeTileUniformBufferObject()}get destroyed(){return this._destroyed}_disposeTileUniformBufferObject(){this._tileUniformBufferObject?.dispose(),this._tileUniformBufferObject=null}}export{f as TiledDisplayObject};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{instructions as t}from"./instructions.js";function n(t){return t instanceof i?t:"object"==typeof t&&"type"in t?c[t.type].hydrate(t):new o(t)}class i{constructor(t){this.inputs=t}encode(){const t=[];for(const n of this.inputs)t.push(...n.encode());return t.push(...this.instructions),t}}class o extends i{constructor(t){super([]),this.value=t}simplify(){return this}get instructions(){if(Array.isArray(this.value)){const[n,i,o,s]=this.value;return null!=s?t.vector4.encode([n,i||0,o||0,s]):t.vector3.encode([n,i||0,o||0])}return t.scalar.encode(this.value)}}class s extends i{constructor(t,n){super([n]),this._config=t,this._parent=n}static hydrate(t){return new s(t,n(t.parent))}simplify(){if(this._config.relativeTranslation||this._config.absoluteScale)return this;const t=this._parent.simplify();if(!(t instanceof o))return this;const[n,i,r,e]=t.value,c=this._config.translation.from[0],a=this._config.translation.from[1],f=this._config.rotation.from,h=this._config.scale.from;if(c===this._config.translation.to[0]&&a===this._config.translation.to[1]&&f===this._config.rotation.to&&h===this._config.scale.to){const t=r+f,s=e*h,u=Math.sin(r),l=Math.cos(r);return new o([l*e*c-u*e*a+n,u*e*c+l*e*a+i,t,s])}return new s(this._config,t)}get instructions(){return t.animatedTransform.encode(this._config)}}class r extends i{constructor(t,n){super([n]),this._config=t,this._parent=n}static hydrate(t){return new r(t,n(t.parent))}simplify(){const t=this._parent.simplify();if(!(t instanceof o))return this;const[n,i,s,e]=t.value,c=this._config.color.from[0],a=this._config.color.from[1],f=this._config.color.from[2];let h=this._config.color.from[3];const u=this._config.opacity.from;return c===this._config.color.to[0]&&a===this._config.color.to[1]&&f===this._config.color.to[2]&&h===this._config.color.to[3]&&u===this._config.opacity.to?(h*=u,new o([n*c,i*a,s*f,e*h])):new r(this._config,t)}get instructions(){return t.animatedColor.encode(this._config)}}class e extends i{constructor(t,n){super([n]),this._config=t,this._parent=n}static hydrate(t){return new e(t,n(t.parent))}simplify(){const t=this._parent.simplify();return t instanceof o?new e(this._config,t):this}get instructions(){return t.animatedShift.encode(this._config)}}const c={AnimatedTransform:s,AnimatedColor:r,AnimatedShift:e};export{i as AAnimationInfo,r as AnimatedColor,e as AnimatedShift,s as AnimatedTransform,o as Constant,n as hydrate};
2
+ import{instructions as t}from"./instructions.js";function i(t){return t instanceof n?t:"object"==typeof t&&"type"in t?c[t.type].hydrate(t):new o(t)}class n{constructor(t){this.inputs=t}encode(){const t=[];for(const i of this.inputs)t.push(...i.encode());return t.push(...this.instructions),t}}class o extends n{constructor(t){super([]),this.value=t}simplify(){return this}get instructions(){if(Array.isArray(this.value)){const[i,n,o,s]=this.value;return null!=s?t.vector4.encode([i,n||0,o||0,s]):t.vector3.encode([i,n||0,o||0])}return t.scalar.encode(this.value)}}class s extends n{constructor(t,i){super([i]),this._config=t,this._parent=i}static hydrate(t){return new s(t,i(t.parent))}simplify(){if(this._config.relativeTranslation||this._config.absoluteScale||this._config.selectGlobalRotation)return this;const t=this._parent.simplify();if(!(t instanceof o))return this;const[i,n,r,e]=t.value,c=this._config.translation.from[0],a=this._config.translation.from[1],f=this._config.rotation.from,h=this._config.scale.from;if(c===this._config.translation.to[0]&&a===this._config.translation.to[1]&&f===this._config.rotation.to&&h===this._config.scale.to){const t=r+f,s=e*h,u=Math.sin(r),l=Math.cos(r);return new o([l*e*c-u*e*a+i,u*e*c+l*e*a+n,t,s])}return new s(this._config,t)}get instructions(){return t.animatedTransform.encode(this._config)}}class r extends n{constructor(t,i){super([i]),this._config=t,this._parent=i}static hydrate(t){return new r(t,i(t.parent))}simplify(){const t=this._parent.simplify();if(!(t instanceof o))return this;const[i,n,s,e]=t.value,c=this._config.color.from[0],a=this._config.color.from[1],f=this._config.color.from[2];let h=this._config.color.from[3];const u=this._config.opacity.from;return c===this._config.color.to[0]&&a===this._config.color.to[1]&&f===this._config.color.to[2]&&h===this._config.color.to[3]&&u===this._config.opacity.to?(h*=u,new o([i*c,n*a,s*f,e*h])):new r(this._config,t)}get instructions(){return t.animatedColor.encode(this._config)}}class e extends n{constructor(t,i){super([i]),this._config=t,this._parent=i}static hydrate(t){return new e(t,i(t.parent))}simplify(){const t=this._parent.simplify();return t instanceof o?new e(this._config,t):this}get instructions(){return t.animatedShift.encode(this._config)}}const c={AnimatedTransform:s,AnimatedColor:r,AnimatedShift:e};export{n as AAnimationInfo,r as AnimatedColor,e as AnimatedShift,s as AnimatedTransform,o as Constant,i as hydrate};