@arcgis/core 5.0.0-next.63 → 5.0.0-next.64

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 (598) hide show
  1. package/Ground.d.ts +2 -1
  2. package/Ground.js +1 -1
  3. package/WebDocument2D.js +1 -1
  4. package/WebLinkChart.js +1 -1
  5. package/WebMap.d.ts +1 -1
  6. package/WebMap.js +1 -1
  7. package/WebScene.d.ts +1 -1
  8. package/WebScene.js +1 -1
  9. package/applications/KnowledgeStudio/dataModelVisualization.d.ts +18 -0
  10. package/applications/KnowledgeStudio/dataModelVisualization.js +5 -0
  11. package/applications/MapViewer/templateUtils.d.ts +2 -2
  12. package/applications/Urban/LineImagePattern3D.d.ts +8 -0
  13. package/applications/Urban/LineImagePattern3D.js +5 -0
  14. package/applications/Urban/imagePatternUtils.d.ts +23 -0
  15. package/applications/Urban/imagePatternUtils.js +5 -0
  16. package/assets/esri/core/libs/libtess/libtess-f32.wasm +0 -0
  17. package/assets/esri/core/libs/libtess/libtess-f64.wasm +0 -0
  18. package/assets/esri/core/workers/RemoteClient.js +1 -1
  19. package/assets/esri/core/workers/chunks/{61707c22b029c2a7a397.js → 049c125085028ffdd0dd.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{0bd73a66baea2f52e8a6.js → 07639f406b71bb49ffd6.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{df0e5570174bf0942d7a.js → 0d9e1ccc3ba8b5ed3287.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{4404b6f931f681cca342.js → 0e5cd0cf6ab7cb37d723.js} +1 -1
  23. package/assets/esri/core/workers/chunks/{a624dd283d264dce35a8.js → 0f5693541111fcae0c2f.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{f56906c443ce8ff68a27.js → 13d61d34e55c80e4ecdf.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{28b235b56a83c498d73f.js → 168ec8fca2702617a543.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{831b8282380844a7c4d5.js → 1967239713b58dccfd81.js} +1 -1
  27. package/assets/esri/core/workers/chunks/1b838638e66e82d76cf3.js +1 -0
  28. package/assets/esri/core/workers/chunks/{2209550b6510e25da375.js → 226acd251ad7d7ee3b57.js} +1 -1
  29. package/assets/esri/core/workers/chunks/22dd5cecc7e2d4d0baf8.js +316 -0
  30. package/assets/esri/core/workers/chunks/2402d305a77fef4694a0.js +1 -0
  31. package/assets/esri/core/workers/chunks/{893a5ab0c2df9262efd8.js → 251eb6e00f99a816d55c.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{e47535f795b15608a6cb.js → 27f096c434f049b8df01.js} +1 -1
  33. package/assets/esri/core/workers/chunks/29b09db309ff75fb3e97.js +1 -0
  34. package/assets/esri/core/workers/chunks/{bef2a70d382515b3c84e.js → 310f3268582e61cd86da.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{02cf735176f286a48dd2.js → 3371935a4fd6346d3a17.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{36d15c35fbbd4dedd5cb.js → 3c3d311b88f5400951ef.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{cf3a9ead26629f3508b3.js → 3c4f8597f602779174f1.js} +1 -1
  38. package/assets/esri/core/workers/chunks/43d28c6509c21b8917a8.js +1 -0
  39. package/assets/esri/core/workers/chunks/{951e3c911a3486b1e609.js → 45b898367b6224dda46f.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{57302b92e9899cce4ba3.js → 4785cd108e2dec6e1697.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{153ff2ceefccd946498b.js → 47bfe8dd5d2bac4307ac.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{2abc205f81f26fc4852b.js → 49a1b7f700b8a42de817.js} +4 -4
  43. package/assets/esri/core/workers/chunks/4d6d962d25aa836f53ee.js +1 -0
  44. package/assets/esri/core/workers/chunks/{454c15367cccbf63af7a.js → 4e9a8fce55cad841c731.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{b93f2bd6429879f92143.js → 536c492fdda30f2f1288.js} +1 -1
  46. package/assets/esri/core/workers/chunks/5cee6c3ff23fb93f857a.js +1 -0
  47. package/assets/esri/core/workers/chunks/6035daa65fc3ebf86515.js +1 -0
  48. package/assets/esri/core/workers/chunks/62b28f73f814413c10fc.js +1 -0
  49. package/assets/esri/core/workers/chunks/{0bc01d71ed1ab8c3af3c.js → 6599cc702a46f81a5634.js} +1 -1
  50. package/assets/esri/core/workers/chunks/6925f09d44cc38480d53.js +1 -0
  51. package/assets/esri/core/workers/chunks/{72e3a48aa365542b0689.js → 6a782e8475bff4d56dbc.js} +1 -1
  52. package/assets/esri/core/workers/chunks/6ba3c2b9f699d94d62b8.js +1 -0
  53. package/assets/esri/core/workers/chunks/{f44f358db5c56d5bbc0c.js → 7306b5b66e738a281d83.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{2da13c2269ab90281143.js → 7694abe44d55dae8872d.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{2b34a010f76e5f289868.js → 7bf491b468cd74a4166c.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{05ab54b81c366e98138f.js → 7d8664aeff66e34138bd.js} +1 -1
  57. package/assets/esri/core/workers/chunks/822ef6a043c7e147b4b6.js +1 -0
  58. package/assets/esri/core/workers/chunks/878010ca23da0bca9405.js +1 -0
  59. package/assets/esri/core/workers/chunks/892157696e8f9e38c472.js +1 -0
  60. package/assets/esri/core/workers/chunks/{d2abfcb0c8bf894c7f72.js → 8dca61f8ba6689379f86.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{bce81df760f5e34c01d7.js → 964de713042f52d71e42.js} +1 -1
  62. package/assets/esri/core/workers/chunks/990341f7c47bd656c782.js +1 -0
  63. package/assets/esri/core/workers/chunks/9d6945cda99d14af83ac.js +1 -0
  64. package/assets/esri/core/workers/chunks/{5180b15f1a865756a02e.js → a3836f6a93924ee4816e.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{d13b2ce8a89938b0472b.js → a6dcd13c792b6538ac50.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{522a6787d9e0f520ac79.js → a893f8db2477cf677ac8.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{983356eb4fd0a0dcf3fd.js → abc236e99b52be1c83b9.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{b11c0e80e583f2b7c5de.js → ac83c2999a3d2ffb4356.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{5873c7b65d0fb04998fb.js → acea42d268b53ceb2bfd.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{8628bf45a33af786cd49.js → b65fcfde62d49de1fa54.js} +1 -1
  71. package/assets/esri/core/workers/chunks/ba7f57788847cc0f68df.js +1 -0
  72. package/assets/esri/core/workers/chunks/{12f700b932a241e59071.js → bcf612eabe7577540953.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{75e9759290f0f67b2128.js → bf06250be7a7a36306b1.js} +1 -1
  74. package/assets/esri/core/workers/chunks/c3007b916ba933137709.js +1 -0
  75. package/assets/esri/core/workers/chunks/c9f868f85d740ee32715.js +1 -0
  76. package/assets/esri/core/workers/chunks/cc5c1887e6d7079e5fe3.js +1 -0
  77. package/assets/esri/core/workers/chunks/ce8f075c814a8378c00c.js +1 -0
  78. package/assets/esri/core/workers/chunks/{f91e63d7842c427c7f72.js → d30cfc5fa302cc08d862.js} +1 -1
  79. package/assets/esri/core/workers/chunks/d3325ed8d224e2350db7.js +1 -0
  80. package/assets/esri/core/workers/chunks/{1800994523d7cdfb73af.js → de71db3b0fb947b13c97.js} +1 -1
  81. package/assets/esri/core/workers/chunks/{ff7df6fb78fa2c0e9247.js → df92239eefff04471a0b.js} +1 -1
  82. package/assets/esri/core/workers/chunks/e69255e38ff200dda14b.js +1 -0
  83. package/assets/esri/core/workers/chunks/ee2ca25048a920e43743.js +1 -0
  84. package/assets/esri/core/workers/chunks/{609919428305d8c8c243.js → f9370830051865a3435b.js} +1 -1
  85. package/assets/esri/core/workers/chunks/fc00d7278b43df813c54.js +1 -0
  86. package/assets/esri/themes/base/widgets/_UtilityNetworkAssociations.scss +7 -18
  87. package/assets/esri/themes/dark/main.css +1 -1
  88. package/assets/esri/themes/light/main.css +1 -1
  89. package/assets/esri/themes/light/view.css +1 -1
  90. package/chunks/RibbonLine.glsl.js +99 -61
  91. package/chunks/libtess-f32.js +5 -0
  92. package/chunks/libtess-f64.js +5 -0
  93. package/config.js +1 -1
  94. package/core/Version.d.ts +1 -1
  95. package/core/Version.js +1 -1
  96. package/core/has.js +1 -1
  97. package/core/workers/registry.js +1 -1
  98. package/core/workers/workerFactory.js +1 -1
  99. package/form/elements/inputs/SwitchInput.d.ts +2 -1
  100. package/geometry/Mesh.d.ts +2 -1
  101. package/geometry/Mesh.js +1 -1
  102. package/geometry/libtess.js +1 -1
  103. package/geometry/support/MeshVertexAttributes.d.ts +1 -1
  104. package/geometry/support/MeshVertexAttributes.js +1 -1
  105. package/geometry/support/meshUtils/convertMeshVertexSpace.js +1 -1
  106. package/geometry/support/meshUtils/elevation.js +1 -1
  107. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  108. package/geometry/support/meshUtils/merge.js +1 -1
  109. package/geometry/support/meshUtils/primitives.js +1 -1
  110. package/ground/NavigationConstraint.d.ts +1 -1
  111. package/ground/NavigationConstraint.js +1 -1
  112. package/interfaces.d.ts +163 -158
  113. package/kernel.js +1 -1
  114. package/layers/BaseElevationLayer.d.ts +1 -1
  115. package/layers/ElevationLayer.d.ts +1 -1
  116. package/layers/ElevationLayer.js +1 -1
  117. package/layers/FeatureLayer.d.ts +1 -5
  118. package/layers/Layer.d.ts +1 -2
  119. package/layers/ParquetLayer.js +1 -1
  120. package/layers/SceneLayer.js +1 -1
  121. package/layers/knowledgeGraph/dataModelVisualizationUtils.d.ts +11 -0
  122. package/layers/knowledgeGraph/dataModelVisualizationUtils.js +5 -0
  123. package/layers/mixins/ArcGISMapService.js +1 -1
  124. package/layers/mixins/BlendLayer.d.ts +1 -1
  125. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  126. package/layers/orientedImagery/transformations/updateElevationUtils.js +1 -1
  127. package/layers/raster/formats/RasterCodec.js +1 -1
  128. package/layers/raster/functions/ColormapToRGBFunction.js +1 -1
  129. package/layers/raster/functions/surfaceUtils.js +1 -1
  130. package/layers/support/CodedValue.d.ts +1 -1
  131. package/layers/support/CodedValue.js +1 -1
  132. package/layers/support/CodedValueDomain.d.ts +2 -1
  133. package/layers/support/CodedValueDomain.js +1 -1
  134. package/layers/support/ElevationTileData.d.ts +1 -1
  135. package/layers/support/ElevationTileData.js +1 -1
  136. package/layers/support/FeatureReduction.d.ts +1 -1
  137. package/layers/support/FeatureReduction.js +1 -1
  138. package/layers/support/FeatureReductionBinning.d.ts +1 -1
  139. package/layers/support/FeatureReductionBinning.js +1 -1
  140. package/layers/support/FeatureReductionSelection.d.ts +1 -1
  141. package/layers/support/FeatureReductionSelection.js +1 -1
  142. package/layers/support/KMLMapImage.d.ts +1 -1
  143. package/layers/support/KMLMapImage.js +1 -1
  144. package/layers/support/ParquetGeometryEncodingBase.d.ts +1 -1
  145. package/layers/support/ParquetGeometryEncodingBase.js +1 -1
  146. package/layers/support/ParquetGeometryEncodingLocation.d.ts +1 -1
  147. package/layers/support/ParquetGeometryEncodingLocation.js +1 -1
  148. package/layers/support/ParquetGeometryEncodingWkb.d.ts +1 -1
  149. package/layers/support/ParquetGeometryEncodingWkb.js +1 -1
  150. package/layers/support/PixelBlock.d.ts +1 -1
  151. package/layers/support/PixelBlock.js +1 -1
  152. package/layers/support/SimpleBandStatistics.d.ts +1 -1
  153. package/layers/support/SimpleBandStatistics.js +1 -1
  154. package/layers/support/Sublayer.js +1 -1
  155. package/layers/support/featureLayerUtils.js +1 -1
  156. package/layers/support/featureReductionUtils.js +1 -1
  157. package/layers/support/source/DataLayerSource.d.ts +6 -3
  158. package/layers/support/source/DataLayerSource.js +1 -1
  159. package/layers/support/source/MapLayerSource.d.ts +1 -1
  160. package/layers/support/source/MapLayerSource.js +1 -1
  161. package/layers/support/source/QueryTableDataSource.d.ts +1 -1
  162. package/layers/support/source/QueryTableDataSource.js +1 -1
  163. package/layers/support/source/RasterDataSource.d.ts +1 -1
  164. package/layers/support/source/RasterDataSource.js +1 -1
  165. package/layers/support/source/TableDataSource.d.ts +1 -1
  166. package/layers/support/source/TableDataSource.js +1 -1
  167. package/layers/support/source/types.d.ts +1 -1
  168. package/layers/types.d.ts +7 -1
  169. package/package.json +1 -1
  170. package/popup/content/MediaContent.d.ts +2 -2
  171. package/popup/content/types.d.ts +9 -0
  172. package/portal/Portal.d.ts +3 -3
  173. package/portal/PortalGroup.d.ts +1 -1
  174. package/portal/PortalItem.d.ts +2 -2
  175. package/portal/PortalItemResource.d.ts +1 -1
  176. package/portal/PortalQueryParams.d.ts +1 -1
  177. package/portal/PortalUser.d.ts +5 -5
  178. package/portal/schemas/definitions.js +1 -1
  179. package/portal/support/resourceUtils.d.ts +1 -1
  180. package/renderers/HeatmapRenderer.d.ts +2 -1
  181. package/renderers/HeatmapRenderer.js +1 -1
  182. package/renderers/PieChartRenderer.d.ts +2 -1
  183. package/renderers/PieChartRenderer.js +1 -1
  184. package/renderers/support/AuthoringInfo.d.ts +2 -1
  185. package/renderers/support/AuthoringInfo.js +1 -1
  186. package/renderers/support/AuthoringInfoClassBreakInfo.d.ts +1 -1
  187. package/renderers/support/AuthoringInfoClassBreakInfo.js +1 -1
  188. package/renderers/support/AuthoringInfoFieldInfo.d.ts +3 -2
  189. package/renderers/support/AuthoringInfoFieldInfo.js +1 -1
  190. package/renderers/support/DictionaryScriptEvaluator.js +1 -1
  191. package/renderers/support/HeatmapLegendOptions.d.ts +1 -1
  192. package/renderers/support/HeatmapLegendOptions.js +1 -1
  193. package/renderers/support/OthersCategory.d.ts +1 -1
  194. package/renderers/support/OthersCategory.js +1 -1
  195. package/rest/featureService/types.d.ts +1 -1
  196. package/rest/knowledgeGraph/wasmInterface/wasmToDataModelFactories.js +1 -1
  197. package/rest/support/ArealUnit.d.ts +1 -1
  198. package/rest/support/BaseImageMeasureResultValue.d.ts +1 -1
  199. package/rest/support/BaseImageMeasureResultValue.js +1 -1
  200. package/rest/support/BufferParameters.d.ts +1 -1
  201. package/rest/support/ClosestFacilityParameters.d.ts +1 -1
  202. package/rest/support/DataLayer.d.ts +1 -1
  203. package/rest/support/DensifyParameters.d.ts +1 -1
  204. package/rest/support/DirectionLine.d.ts +1 -1
  205. package/rest/support/DirectionPoint.d.ts +1 -1
  206. package/rest/support/DirectionsString.d.ts +1 -1
  207. package/rest/support/DistanceParameters.d.ts +1 -1
  208. package/rest/support/GPMessage.d.ts +1 -1
  209. package/rest/support/ImageAreaParameters.d.ts +1 -1
  210. package/rest/support/ImageAreaResult.d.ts +4 -2
  211. package/rest/support/ImageAreaResult.js +1 -1
  212. package/rest/support/ImageDistanceResult.d.ts +4 -2
  213. package/rest/support/ImageDistanceResult.js +1 -1
  214. package/rest/support/ImageHeightResult.d.ts +2 -1
  215. package/rest/support/ImageHeightResult.js +1 -1
  216. package/rest/support/ImageMeasureResultAngleValue.d.ts +3 -2
  217. package/rest/support/ImageMeasureResultAngleValue.js +1 -1
  218. package/rest/support/ImageMeasureResultAreaValue.d.ts +3 -2
  219. package/rest/support/ImageMeasureResultAreaValue.js +1 -1
  220. package/rest/support/ImageMeasureResultLengthValue.d.ts +4 -3
  221. package/rest/support/ImageMeasureResultLengthValue.js +1 -1
  222. package/rest/support/JobInfo.d.ts +1 -1
  223. package/rest/support/LinearUnit.d.ts +1 -1
  224. package/rest/support/LocateSetting.d.ts +1 -1
  225. package/rest/support/NAMessage.d.ts +1 -1
  226. package/rest/support/NetworkAttribute.d.ts +1 -1
  227. package/rest/support/OffsetParameters.d.ts +1 -1
  228. package/rest/support/PointBarrier.d.ts +1 -1
  229. package/rest/support/PolygonBarrier.d.ts +1 -1
  230. package/rest/support/PolylineBarrier.d.ts +1 -1
  231. package/rest/support/RouteParameters.d.ts +1 -1
  232. package/rest/support/ServiceAreaParameters.d.ts +1 -1
  233. package/rest/support/Stop.d.ts +1 -1
  234. package/rest/support/TravelMode.d.ts +1 -1
  235. package/smartMapping/renderers/pieChart.js +1 -1
  236. package/smartMapping/renderers/relationship.js +1 -1
  237. package/smartMapping/renderers/univariateColorSize.js +1 -1
  238. package/smartMapping/support/adapters/support/utils.js +1 -1
  239. package/support/revision.js +1 -1
  240. package/support/tests/meshUtils.js +1 -1
  241. package/symbols/ExtrudeSymbol3DLayer.d.ts +2 -1
  242. package/symbols/ExtrudeSymbol3DLayer.js +1 -1
  243. package/symbols/FillSymbol3DLayer.d.ts +4 -2
  244. package/symbols/FillSymbol3DLayer.js +1 -1
  245. package/symbols/IconSymbol3DLayer.d.ts +23 -4
  246. package/symbols/IconSymbol3DLayer.js +1 -1
  247. package/symbols/LineSymbol3DLayer.d.ts +2 -1
  248. package/symbols/LineSymbol3DLayer.js +1 -1
  249. package/symbols/ObjectSymbol3DLayer.d.ts +6 -3
  250. package/symbols/ObjectSymbol3DLayer.js +1 -1
  251. package/symbols/PathSymbol3DLayer.d.ts +2 -1
  252. package/symbols/PathSymbol3DLayer.js +1 -1
  253. package/symbols/TextSymbol3DLayer.d.ts +21 -3
  254. package/symbols/TextSymbol3DLayer.js +1 -1
  255. package/symbols/patterns/LinePattern3D.js +1 -1
  256. package/symbols/support/IconSymbol3DLayerResource.d.ts +1 -1
  257. package/symbols/support/IconSymbol3DLayerResource.js +1 -1
  258. package/symbols/support/ObjectSymbol3DLayerResource.d.ts +1 -1
  259. package/symbols/support/ObjectSymbol3DLayerResource.js +1 -1
  260. package/symbols/support/OccludedVisibility.d.ts +27 -0
  261. package/symbols/support/Symbol3DAnchorPosition2D.d.ts +1 -1
  262. package/symbols/support/Symbol3DAnchorPosition2D.js +1 -1
  263. package/symbols/support/Symbol3DAnchorPosition3D.d.ts +1 -1
  264. package/symbols/support/Symbol3DAnchorPosition3D.js +1 -1
  265. package/symbols/support/Symbol3DFillMaterial.d.ts +3 -2
  266. package/symbols/support/Symbol3DFillMaterial.js +1 -1
  267. package/symbols/support/Symbol3DHalo.d.ts +1 -1
  268. package/symbols/support/Symbol3DHalo.js +1 -1
  269. package/symbols/support/Symbol3DIconOutline.d.ts +1 -1
  270. package/symbols/support/Symbol3DIconOutline.js +1 -1
  271. package/symbols/support/Symbol3DMaterial.d.ts +1 -1
  272. package/symbols/support/Symbol3DMaterial.js +1 -1
  273. package/symbols/support/Symbol3DOutline.d.ts +1 -1
  274. package/symbols/support/Symbol3DOutline.js +1 -1
  275. package/symbols/support/Symbol3DTextBackground.d.ts +1 -1
  276. package/symbols/support/Symbol3DTextBackground.js +1 -1
  277. package/symbols/support/previewSymbol3D.js +1 -1
  278. package/symbols/support/primitives.js +5 -0
  279. package/symbols/support/types.d.ts +2 -0
  280. package/symbols/support/utils.js +1 -1
  281. package/views/2d/analysis/AnalysisView2D.d.ts +2 -2
  282. package/views/2d/analysis/AnalysisView2D.js +1 -1
  283. package/views/2d/analysis/AreaMeasurementAnalysisView2D.d.ts +1 -1
  284. package/views/2d/analysis/AreaMeasurementAnalysisView2D.js +1 -1
  285. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.d.ts +1 -1
  286. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.js +1 -1
  287. package/views/2d/analysis/ElevationProfileAnalysisView2D.d.ts +1 -1
  288. package/views/2d/analysis/ElevationProfileAnalysisView2D.js +1 -1
  289. package/views/2d/engine/Bitmap.js +1 -1
  290. package/views/2d/engine/Container.js +1 -1
  291. package/views/2d/engine/DisplayObject.js +1 -1
  292. package/views/2d/engine/brushes.js +1 -1
  293. package/views/2d/engine/flow/styles/Imagery.js +1 -1
  294. package/views/2d/engine/vectorTiles/GlyphMosaic.js +1 -1
  295. package/views/2d/engine/vectorTiles/SpriteMosaic.js +1 -1
  296. package/views/2d/engine/vectorTiles/TileParser.js +1 -1
  297. package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
  298. package/views/2d/engine/vectorTiles/VectorTileRendererHelper3D.js +1 -1
  299. package/views/2d/engine/vectorTiles/buckets/FillBucket.js +1 -1
  300. package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
  301. package/views/2d/engine/webgl/ClipMesh.js +5 -0
  302. package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
  303. package/views/2d/engine/webgl/Overlay.js +1 -1
  304. package/views/2d/engine/webgl/OverlayMultipoint.js +1 -1
  305. package/views/2d/engine/webgl/SpriteMosaic.js +1 -1
  306. package/views/2d/engine/webgl/VideoScreenRenderer.js +1 -1
  307. package/views/2d/engine/webgl/WGLContainer.js +1 -1
  308. package/views/2d/engine/webgl/animations/store/AnimationStore.js +1 -1
  309. package/views/2d/engine/webgl/brushes/WGLBrushTileDebugInfo.js +1 -1
  310. package/views/2d/engine/webgl/effects/highlight/HighlightGradient.js +1 -1
  311. package/views/2d/engine/webgl/mesh/templates/templateUtils.js +1 -1
  312. package/views/2d/engine/webgl/meshing/SimpleMesh.js +1 -1
  313. package/views/2d/engine/webgl/shaderGraph/techniques/TestTechnique.js +1 -1
  314. package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
  315. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
  316. package/views/2d/engine/webgl/shaderGraph/techniques/blend/BlendTechnique.js +1 -1
  317. package/views/2d/engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js +5 -0
  318. package/views/2d/engine/webgl/shaderGraph/techniques/colorize/ColorizeTechnique.js +1 -1
  319. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityResources.js +1 -1
  320. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityTechnique.js +1 -1
  321. package/views/2d/engine/webgl/shaderGraph/techniques/drop-shadow/DropShadowTechnique.js +1 -1
  322. package/views/2d/engine/webgl/shaderGraph/techniques/fill/AFillMeshWriter.js +1 -1
  323. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexFillTechnique.js +1 -1
  324. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillTechnique.js +1 -1
  325. package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillTechnique.js +1 -1
  326. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillTechnique.js +1 -1
  327. package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillTechnique.js +1 -1
  328. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillTechnique.js +1 -1
  329. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillTechnique.js +1 -1
  330. package/views/2d/engine/webgl/shaderGraph/techniques/grid/GridTechnique.js +1 -1
  331. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapResources.js +1 -1
  332. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapTechnique.js +1 -1
  333. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelTechnique.js +1 -1
  334. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeTechnique.js +1 -1
  335. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineTechnique.js +1 -1
  336. package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineTechnique.js +1 -1
  337. package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
  338. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerTechnique.js +1 -1
  339. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterRegistry.js +1 -1
  340. package/views/2d/engine/webgl/shaderGraph/techniques/opacity/OpacityTechnique.js +1 -1
  341. package/views/2d/engine/webgl/shaderGraph/techniques/overlay/OverlayTechnique.js +1 -1
  342. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartTechnique.js +1 -1
  343. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
  344. package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterHighlightTechnique.js +1 -1
  345. package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/textureUtils.js +1 -1
  346. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ClipShader.js +5 -0
  347. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextTechnique.js +1 -1
  348. package/views/2d/engine/webgl/shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js +1 -1
  349. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  350. package/views/2d/engine/webgl/textureUtils.js +1 -1
  351. package/views/2d/layers/KMLLayerView2D.js +1 -1
  352. package/views/2d/layers/LayerView2D.js +1 -1
  353. package/views/2d/layers/MediaLayerView2D.js +1 -1
  354. package/views/2d/layers/TileLayerView2D.js +1 -1
  355. package/views/2d/layers/features/FeatureContainer.js +1 -1
  356. package/views/2d/layers/features/RenderState.js +1 -1
  357. package/views/2d/webglDeps.js +1 -1
  358. package/views/3d/analysis/AnalysisView3D.d.ts +2 -2
  359. package/views/3d/analysis/AnalysisView3D.js +1 -1
  360. package/views/3d/analysis/AreaMeasurementAnalysisView3D.d.ts +1 -1
  361. package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
  362. package/views/3d/analysis/DimensionAnalysisView3D.d.ts +1 -1
  363. package/views/3d/analysis/DimensionAnalysisView3D.js +1 -1
  364. package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.d.ts +1 -1
  365. package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
  366. package/views/3d/analysis/ElevationProfileAnalysisView3D.d.ts +1 -1
  367. package/views/3d/analysis/ElevationProfileAnalysisView3D.js +1 -1
  368. package/views/3d/analysis/LineOfSightAnalysisView3D.d.ts +1 -1
  369. package/views/3d/analysis/LineOfSightAnalysisView3D.js +1 -1
  370. package/views/3d/analysis/ShadowCastAnalysisView3D.d.ts +1 -1
  371. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  372. package/views/3d/analysis/SliceAnalysisView3D.d.ts +1 -1
  373. package/views/3d/analysis/SliceAnalysisView3D.js +1 -1
  374. package/views/3d/analysis/ViewshedAnalysisView3D.d.ts +1 -1
  375. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  376. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
  377. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.d.ts +1 -1
  378. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
  379. package/views/3d/constraints/AltitudeConstraint.d.ts +1 -1
  380. package/views/3d/constraints/AltitudeConstraint.js +1 -1
  381. package/views/3d/constraints/ClipDistanceConstraint.d.ts +1 -1
  382. package/views/3d/constraints/ClipDistanceConstraint.js +1 -1
  383. package/views/3d/constraints/Constraints.d.ts +7 -4
  384. package/views/3d/constraints/Constraints.js +1 -1
  385. package/views/3d/constraints/TiltConstraint.d.ts +1 -1
  386. package/views/3d/constraints/TiltConstraint.js +1 -1
  387. package/views/3d/environment/LocalAtmosphere.js +1 -1
  388. package/views/3d/environment/MarsAtmosphere.js +1 -1
  389. package/views/3d/glTF/internal/Resource.js +1 -1
  390. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  391. package/views/3d/interactive/editingTools/reshape/reshapeTooltipUtils3D.js +1 -1
  392. package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
  393. package/views/3d/layers/ElevationLayerView3D.js +1 -1
  394. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  395. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  396. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  397. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  398. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  399. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  400. package/views/3d/layers/graphics/pipeline/symbolization/IconSymbolLayerRenderer.js +1 -1
  401. package/views/3d/layers/graphics/pipeline/symbolization/ObjectSymbolLayerRenderer.js +1 -1
  402. package/views/3d/layers/graphics/pipeline/symbolization/factoryUtils.js +1 -1
  403. package/views/3d/layers/graphics/wosrLoader.js +1 -1
  404. package/views/3d/layers/i3s/meshUtils.js +1 -1
  405. package/views/3d/layers/support/MediaLayerInteractionOptions.d.ts +3 -2
  406. package/views/3d/layers/support/MediaLayerInteractionOptions.js +1 -1
  407. package/views/3d/layers/support/MediaLayerInteractionReshapeOptions.d.ts +1 -1
  408. package/views/3d/layers/support/MediaLayerInteractionReshapeOptions.js +1 -1
  409. package/views/3d/support/engineContent/marker.js +1 -1
  410. package/views/3d/support/gaussianSplatting/GaussianSplatFadeTexture.js +1 -1
  411. package/views/3d/support/gaussianSplatting/GaussianSplatOrderTexture.js +1 -1
  412. package/views/3d/support/gaussianSplatting/GaussianSplatTextureAtlas.js +1 -1
  413. package/views/3d/terrain/OverlayRenderer.js +1 -1
  414. package/views/3d/terrain/TileCompositor.js +1 -1
  415. package/views/3d/terrain/TileRenderer.js +1 -1
  416. package/views/3d/webgl/ManagedColorAttachment.d.ts +2 -2
  417. package/views/3d/webgl/ManagedColorAttachment.js +1 -1
  418. package/views/3d/webgl/ManagedDepthAttachment.d.ts +2 -2
  419. package/views/3d/webgl/ManagedDepthAttachment.js +1 -1
  420. package/views/3d/webgl/ManagedDepthTexture.js +1 -1
  421. package/views/3d/webgl/ManagedFBO.d.ts +8 -6
  422. package/views/3d/webgl/ManagedFBO.js +1 -1
  423. package/views/3d/webgl/ManagedFBOAttachment.d.ts +2 -2
  424. package/views/3d/webgl/ManagedFBOAttachment.js +1 -1
  425. package/views/3d/webgl/ManagedFBOResource.d.ts +1 -1
  426. package/views/3d/webgl/ManagedFBOResource.js +1 -1
  427. package/views/3d/webgl-engine/collections/Component/IntersectionGeometry.js +1 -1
  428. package/views/3d/webgl-engine/core/FBOCache.js +1 -1
  429. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +55 -23
  430. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  431. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  432. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  433. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  434. package/views/3d/webgl-engine/lib/BasisUtil.js +1 -1
  435. package/views/3d/webgl-engine/lib/DDSUtil.js +1 -1
  436. package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +1 -1
  437. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
  438. package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
  439. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  440. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBuffer.js +1 -1
  441. package/views/3d/webgl-engine/lib/edgeRendering/strokes.js +1 -1
  442. package/views/3d/webgl-engine/lib/glUtil3D.js +1 -1
  443. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  444. package/views/3d/webgl-engine/materials/internal/WaterTextureRepository.js +1 -1
  445. package/views/3d/webgl-engine/materials/lineStippleUtils.js +1 -1
  446. package/views/3d/webgl-engine/materials/stippleTextureRepository.js +1 -1
  447. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  448. package/views/DOMContainer.d.ts +1 -2
  449. package/views/MapView.d.ts +10 -15
  450. package/views/PopupView.d.ts +6 -6
  451. package/views/SceneView.d.ts +3 -4
  452. package/views/SceneView.js +1 -1
  453. package/views/VideoView.js +1 -1
  454. package/views/View.d.ts +11 -13
  455. package/views/View2D.d.ts +37 -37
  456. package/views/analysis/AnalysisView.d.ts +1 -1
  457. package/views/analysis/AnalysisView.js +1 -1
  458. package/views/draw/{input/CursorUpdateEvent.d.ts → CursorUpdateEvent.d.ts} +1 -1
  459. package/views/draw/{input/CursorUpdateEvent.js → CursorUpdateEvent.js} +1 -1
  460. package/views/draw/{input/DrawCompleteEvent.d.ts → DrawCompleteEvent.d.ts} +1 -1
  461. package/views/draw/{input/DrawCompleteEvent.js → DrawCompleteEvent.js} +1 -1
  462. package/views/draw/DrawGraphicTool.js +1 -1
  463. package/views/draw/MultipointDrawAction.d.ts +4 -4
  464. package/views/draw/MultipointDrawAction.js +1 -1
  465. package/views/draw/PointDrawAction.d.ts +2 -2
  466. package/views/draw/PointDrawAction.js +1 -1
  467. package/views/draw/PolygonDrawAction.d.ts +4 -4
  468. package/views/draw/PolygonDrawAction.js +1 -1
  469. package/views/draw/PolylineDrawAction.d.ts +4 -4
  470. package/views/draw/PolylineDrawAction.js +1 -1
  471. package/views/draw/SegmentDrawAction.d.ts +3 -3
  472. package/views/draw/SegmentDrawAction.js +1 -1
  473. package/views/draw/{input/VertexAddEvent.d.ts → VertexAddEvent.d.ts} +1 -1
  474. package/views/draw/{input/VertexAddEvent.js → VertexAddEvent.js} +1 -1
  475. package/views/draw/{input/VertexRemoveEvent.d.ts → VertexRemoveEvent.d.ts} +1 -1
  476. package/views/draw/VertexRemoveEvent.js +5 -0
  477. package/views/draw/support/Reshape.js +1 -1
  478. package/views/draw/support/reshapeTooltipUtils.js +1 -1
  479. package/views/draw/support/tooltipUtils.js +1 -1
  480. package/views/interactive/sketch/Units.d.ts +3 -0
  481. package/views/layers/HighlightLayerViewMixin.d.ts +1 -3
  482. package/views/layers/ImageryLayerViewMixin.d.ts +1 -3
  483. package/views/layers/KMLLayerView.d.ts +1 -1
  484. package/views/layers/MediaLayerViewMixin.d.ts +3 -2
  485. package/views/layers/MediaLayerViewMixin.js +1 -1
  486. package/views/support/GeodesicMeasurementWorker.js +5 -0
  487. package/views/support/GeodesicMeasurementWorkerHandle.js +5 -0
  488. package/views/support/HighlightOptions.d.ts +0 -1
  489. package/views/support/TextureCompressionHelper.js +1 -1
  490. package/views/support/automaticAreaMeasurementUtils.js +1 -1
  491. package/views/support/imageReprojection.js +1 -1
  492. package/views/types.d.ts +1 -1
  493. package/views/webgl/FramebufferObject.js +1 -1
  494. package/views/webgl/RenderingContext.js +1 -1
  495. package/views/webgl/Texture.js +1 -1
  496. package/views/webgl/rasterUtils.js +1 -1
  497. package/views/webgl/testSVGPremultipliedAlpha.js +1 -1
  498. package/views/webgl/textureTracer.js +5 -0
  499. package/webdoc/support/SlideThumbnail.d.ts +1 -1
  500. package/webdoc/support/SlideThumbnail.js +1 -1
  501. package/webmap/Bookmark.d.ts +2 -1
  502. package/webmap/Bookmark.js +1 -1
  503. package/webmap/Version.d.ts +2 -2
  504. package/webmap/Version.js +1 -1
  505. package/webmap/utils.js +1 -1
  506. package/webscene/Slide.d.ts +6 -3
  507. package/webscene/Slide.js +1 -1
  508. package/webscene/Version.d.ts +2 -2
  509. package/webscene/Version.js +1 -1
  510. package/webscene/spec-certification/api.js +1 -1
  511. package/webscene/support/SlideEnvironment.d.ts +1 -1
  512. package/webscene/support/SlideEnvironment.js +1 -1
  513. package/webscene/support/SlideVisibleLayer.d.ts +1 -1
  514. package/webscene/support/SlideVisibleLayer.js +1 -1
  515. package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.d.ts +1 -1
  516. package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.js +1 -1
  517. package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.d.ts +1 -1
  518. package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.js +1 -1
  519. package/widgets/BatchAttributeForm/VisibleElements.d.ts +1 -1
  520. package/widgets/BatchAttributeForm/VisibleElements.js +1 -1
  521. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  522. package/widgets/BatchAttributeForm.d.ts +2 -1
  523. package/widgets/BatchAttributeForm.js +1 -1
  524. package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
  525. package/widgets/Bookmarks.js +1 -1
  526. package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.d.ts +1 -1
  527. package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js +1 -1
  528. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.d.ts +1 -1
  529. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.js +1 -1
  530. package/widgets/Editor.js +1 -1
  531. package/widgets/FeatureTable/ActionColumn.d.ts +1 -1
  532. package/widgets/FeatureTable/AttachmentsColumn.d.ts +1 -1
  533. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +2 -2
  534. package/widgets/FeatureTable/FieldColumn.d.ts +1 -1
  535. package/widgets/FeatureTable/Grid/Column.d.ts +1 -1
  536. package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +1 -1
  537. package/widgets/FeatureTable/support/FieldColumnTemplate.d.ts +1 -1
  538. package/widgets/FeatureTable/support/GroupColumnTemplate.d.ts +1 -1
  539. package/widgets/FeatureTable/support/TableTemplate.d.ts +1 -1
  540. package/widgets/FeatureTable/support/{interfaces.d.ts → types.d.ts} +1 -1
  541. package/widgets/FeatureTable.d.ts +2 -2
  542. package/widgets/LineOfSight/LineOfSightViewModel.d.ts +1 -1
  543. package/widgets/LineOfSight/LineOfSightViewModel.js +1 -1
  544. package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
  545. package/widgets/PanoramicViewer/support/importUtils.js +1 -1
  546. package/widgets/Print/PrintViewModel.d.ts +1 -1
  547. package/widgets/Sketch/CreateToolVisibilityMap.d.ts +1 -1
  548. package/widgets/Sketch/CreateToolVisibilityMap.js +1 -1
  549. package/widgets/Sketch/SelectionToolVisibilityMap.d.ts +1 -1
  550. package/widgets/Sketch/SelectionToolVisibilityMap.js +1 -1
  551. package/widgets/Sketch/VisibleElements.d.ts +5 -3
  552. package/widgets/Sketch/VisibleElements.js +1 -1
  553. package/widgets/Sketch.d.ts +2 -1
  554. package/widgets/Sketch.js +1 -1
  555. package/widgets/Slice/SliceViewModel.d.ts +1 -1
  556. package/widgets/Slice/SliceViewModel.js +1 -1
  557. package/widgets/UtilityNetworkAssociations.js +1 -1
  558. package/widgets/support/AnalysisViewModel.d.ts +1 -1
  559. package/widgets/support/AnalysisViewModel.js +1 -1
  560. package/widgets/support/InteractiveToolViewModel.d.ts +1 -1
  561. package/widgets/support/InteractiveToolViewModel.js +1 -1
  562. package/assets/esri/core/libs/libtess/libtess.wasm +0 -0
  563. package/assets/esri/core/workers/chunks/00e407d262c49890afa8.js +0 -1
  564. package/assets/esri/core/workers/chunks/19db60a3b4b09d445bd1.js +0 -1
  565. package/assets/esri/core/workers/chunks/1e55f152b60145f33b61.js +0 -1
  566. package/assets/esri/core/workers/chunks/294acaaebfedb05fe81e.js +0 -1
  567. package/assets/esri/core/workers/chunks/31eda00e6842005d0ec8.js +0 -1
  568. package/assets/esri/core/workers/chunks/3d49c6427120edc8eac9.js +0 -1
  569. package/assets/esri/core/workers/chunks/404229f10aef5ac23c87.js +0 -1
  570. package/assets/esri/core/workers/chunks/4278b35fb6fd578c403e.js +0 -1
  571. package/assets/esri/core/workers/chunks/46b63a65484b102e9ccb.js +0 -1
  572. package/assets/esri/core/workers/chunks/4f03d19a70dca6c507be.js +0 -316
  573. package/assets/esri/core/workers/chunks/5686220aed9a74dbd2b1.js +0 -1
  574. package/assets/esri/core/workers/chunks/5a2933ae19345b7d5aa7.js +0 -1
  575. package/assets/esri/core/workers/chunks/5e9fdd4eff7189f45932.js +0 -1
  576. package/assets/esri/core/workers/chunks/67a45faa80316f43c51b.js +0 -1
  577. package/assets/esri/core/workers/chunks/68ee11589de0da7fed08.js +0 -1
  578. package/assets/esri/core/workers/chunks/82ced9254b27707522ef.js +0 -1
  579. package/assets/esri/core/workers/chunks/bb5373ff7cdad7270095.js +0 -1
  580. package/assets/esri/core/workers/chunks/bddaa83fcb9fdb1e1856.js +0 -1
  581. package/assets/esri/core/workers/chunks/d048e4926e78458afa3e.js +0 -1
  582. package/assets/esri/core/workers/chunks/d199deff988eaefe18b4.js +0 -1
  583. package/assets/esri/core/workers/chunks/d77f56576a49a998164a.js +0 -1
  584. package/assets/esri/core/workers/chunks/dae09fb8da0faa6dede4.js +0 -1
  585. package/assets/esri/core/workers/chunks/e16e88de4e93b0f48b2c.js +0 -1
  586. package/chunks/libtess-asm.js +0 -5
  587. package/chunks/libtess.js +0 -5
  588. package/layers/BlendMode.d.ts +0 -2
  589. package/layers/LayerListMode.d.ts +0 -2
  590. package/layers/LayerType.d.ts +0 -2
  591. package/popup/content/support/mediaInfoTypes.d.ts +0 -7
  592. package/support/modeUtils.d.ts +0 -2
  593. package/views/SelectionManager.d.ts +0 -1
  594. package/views/draw/input/VertexRemoveEvent.js +0 -5
  595. package/views/webgl/Texture.d.ts +0 -6
  596. /package/portal/{interfaces.d.ts → types.d.ts} +0 -0
  597. /package/rest/support/{interfaces.d.ts → types.d.ts} +0 -0
  598. /package/views/draw/{input/VertexUpdateEvent.js → VertexUpdateEvent.js} +0 -0
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import e from"../../../core/Error.js";import{property as o,subclass as i}from"../../../core/accessorSupport/decorators.js";import{AnalysisView2D as r}from"./AnalysisView2D.js";import{ElevationProfileVisualization2D as s}from"./ElevationProfile/ElevationProfileVisualization2D.js";import{ElevationProfileController as l}from"../../analysis/ElevationProfile/ElevationProfileController.js";import{ElevationProfileLineGroundComputation as n}from"../../analysis/ElevationProfile/ElevationProfileLineGroundComputation.js";import{ElevationProfileLineInputComputation as a}from"../../analysis/ElevationProfile/ElevationProfileLineInputComputation.js";import{ElevationProfileLineQueryComputation as p}from"../../analysis/ElevationProfile/ElevationProfileLineQueryComputation.js";import{ElevationProfileTool as u}from"../../analysis/ElevationProfile/ElevationProfileTool.js";let c=class extends r{constructor(t){super(t),this.type="elevation-profile-view-2d",this.analysis=null,this.hoveredPosition=null}initialize(){const{analysis:t,view:o}=this;this._controller=new l({analysis:t,analysisViewData:this,view:o,computationFactory:{create:t=>{switch(t.profile.type){case"ground":return new n(t);case"input":return new a(t);case"query":return new p(t);case"scene":throw new e("elevation-profile-analysis-view-2d:unsupported","The scene profile line type is not supported in 2D views.")}}}}),this._visualization=new s({view:o,analysisViewData:this}),this._sketchTool=new u({view:o,analysisViewData:this})}destroy(){this._controller?.destroy(),this._visualization?.destroy(),this._sketchTool?.destroy()}get effectiveDisplayUnits(){return this._controller?.effectiveDisplayUnits??{distance:"meters",elevation:"meters"}}get error(){return this._controller?.error}get hoveredPoints(){return this._controller?.hoveredPoints??[]}get interactive(){return super.interactive}set interactive(t){super.interactive=t}get progress(){return this._controller?.progress??0}get results(){return this._controller?.results??[]}get statistics(){return this._controller?.statistics}get updating(){return!0===this._controller?.updating||!0===this._visualization?.updating||!0===this._sketchTool?.updating}get visible(){return super.visible}set visible(t){super.visible=t}get sketchGraphic(){return this._sketchTool?.sketchGraphic}get toolState(){return this._sketchTool?.state??"idle"}place(t){return this._sketchTool.place(t)}pickFeature(t){return this._sketchTool.pickFeature(t)}};t([o({readOnly:!0})],c.prototype,"type",void 0),t([o({constructOnly:!0,nonNullable:!0})],c.prototype,"analysis",void 0),t([o({readOnly:!0})],c.prototype,"effectiveDisplayUnits",null),t([o({readOnly:!0})],c.prototype,"error",null),t([o()],c.prototype,"hoveredPosition",void 0),t([o()],c.prototype,"hoveredPoints",null),t([o({readOnly:!0})],c.prototype,"progress",null),t([o({readOnly:!0})],c.prototype,"results",null),t([o({readOnly:!0})],c.prototype,"statistics",null),t([o({readOnly:!0})],c.prototype,"updating",null),t([o()],c.prototype,"sketchGraphic",null),t([o()],c.prototype,"toolState",null),t([o()],c.prototype,"_controller",void 0),t([o()],c.prototype,"_visualization",void 0),t([o()],c.prototype,"_sketchTool",void 0),c=t([i("esri.views.2d.analysis.ElevationProfileAnalysisView2D")],c);const y=c;export{y as default};
5
+ import{__decorate as t}from"tslib";import e from"../../../core/Error.js";import{property as o,subclass as i}from"../../../core/accessorSupport/decorators.js";import r from"./AnalysisView2D.js";import{ElevationProfileVisualization2D as s}from"./ElevationProfile/ElevationProfileVisualization2D.js";import{ElevationProfileController as l}from"../../analysis/ElevationProfile/ElevationProfileController.js";import{ElevationProfileLineGroundComputation as n}from"../../analysis/ElevationProfile/ElevationProfileLineGroundComputation.js";import{ElevationProfileLineInputComputation as a}from"../../analysis/ElevationProfile/ElevationProfileLineInputComputation.js";import{ElevationProfileLineQueryComputation as p}from"../../analysis/ElevationProfile/ElevationProfileLineQueryComputation.js";import{ElevationProfileTool as u}from"../../analysis/ElevationProfile/ElevationProfileTool.js";let c=class extends r{constructor(t){super(t),this.type="elevation-profile-view-2d",this.analysis=null,this.hoveredPosition=null}initialize(){const{analysis:t,view:o}=this;this._controller=new l({analysis:t,analysisViewData:this,view:o,computationFactory:{create:t=>{switch(t.profile.type){case"ground":return new n(t);case"input":return new a(t);case"query":return new p(t);case"scene":throw new e("elevation-profile-analysis-view-2d:unsupported","The scene profile line type is not supported in 2D views.")}}}}),this._visualization=new s({view:o,analysisViewData:this}),this._sketchTool=new u({view:o,analysisViewData:this})}destroy(){this._controller?.destroy(),this._visualization?.destroy(),this._sketchTool?.destroy()}get effectiveDisplayUnits(){return this._controller?.effectiveDisplayUnits??{distance:"meters",elevation:"meters"}}get error(){return this._controller?.error}get hoveredPoints(){return this._controller?.hoveredPoints??[]}get interactive(){return super.interactive}set interactive(t){super.interactive=t}get progress(){return this._controller?.progress??0}get results(){return this._controller?.results??[]}get statistics(){return this._controller?.statistics}get updating(){return!0===this._controller?.updating||!0===this._visualization?.updating||!0===this._sketchTool?.updating}get visible(){return super.visible}set visible(t){super.visible=t}get sketchGraphic(){return this._sketchTool?.sketchGraphic}get toolState(){return this._sketchTool?.state??"idle"}place(t){return this._sketchTool.place(t)}pickFeature(t){return this._sketchTool.pickFeature(t)}};t([o({readOnly:!0})],c.prototype,"type",void 0),t([o({constructOnly:!0,nonNullable:!0})],c.prototype,"analysis",void 0),t([o({readOnly:!0})],c.prototype,"effectiveDisplayUnits",null),t([o({readOnly:!0})],c.prototype,"error",null),t([o()],c.prototype,"hoveredPosition",void 0),t([o()],c.prototype,"hoveredPoints",null),t([o({readOnly:!0})],c.prototype,"progress",null),t([o({readOnly:!0})],c.prototype,"results",null),t([o({readOnly:!0})],c.prototype,"statistics",null),t([o({readOnly:!0})],c.prototype,"updating",null),t([o()],c.prototype,"sketchGraphic",null),t([o()],c.prototype,"toolState",null),t([o()],c.prototype,"_controller",void 0),t([o()],c.prototype,"_visualization",void 0),t([o()],c.prototype,"_sketchTool",void 0),c=t([i("esri.views.2d.analysis.ElevationProfileAnalysisView2D")],c);const y=c;export{y as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{createResolver as t,onAbortOrThrow as e,throwIfNotAbortError as i}from"../../../core/promiseUtils.js";import{identity as s,translate as r,rotate as h,scaleByVec2 as o,multiply as u}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as a}from"../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{fromValues as n}from"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import{DisplayObject as l}from"./DisplayObject.js";import c from"./ImageryBitmapSource.js";import{SizedPixelFormat as d}from"../../webgl/enums.js";import{Texture as _}from"../../webgl/Texture.js";import{TextureDescriptor as p}from"../../webgl/TextureDescriptor.js";function m(t){t instanceof ImageBitmap&&t.close()}function x(t){return t&&"render"in t}function g(t){const e=document.createElement("canvas");return e.width=t.width,e.height=t.height,t.render(e.getContext("2d")),e}function f(t){return x(t)?t instanceof c?t.getRenderedRasterPixels()?.renderedRasterPixels:g(t):t}class w extends l{constructor(t=null,e=!1){super(),this.blendFunction="standard",this._sourceWidth=0,this._sourceHeight=0,this._textureInvalidated=!1,this.stencilRef=0,this.coordScale=[1,1],this._height=void 0,this.pixelRatio=1,this.resolution=0,this.rotation=0,this._source=null,this._texture=null,this._width=void 0,this.x=0,this.y=0,this.immutable=e,this.source=t,this.requestRender=this.requestRender.bind(this)}destroy(){super.destroy(),this._texture&&(this._texture.dispose(),this._texture=null),this._source&&m(this._source),null!=this._uploadStatus&&(this._uploadStatus.controller.abort(),this._uploadStatus=null)}get isSourceScaled(){return this.width!==this._sourceWidth||this.height!==this._sourceHeight}get height(){return void 0!==this._height?this._height:this._sourceHeight}set height(t){this._height=t}get source(){return this._source}set source(t){null==t&&null==this._source||(this._source&&m(this._source),this._source=t,this.invalidateTexture(),this.requestRender())}get texture(){return this._texture}get width(){return void 0!==this._width?this._width:this._sourceWidth}set width(t){this._width=t}beforeRender(t){super.beforeRender(t),this.updateTexture(t)}async setSourceAsync(i,s){null!=this._uploadStatus&&this._uploadStatus.controller.abort();const r=new AbortController,h=t();return e(s,()=>r.abort()),e(r,t=>h.reject(t)),this._uploadStatus={controller:r,resolver:h},this.source=i,h.promise}invalidateTexture(){this._textureInvalidated||(this._textureInvalidated=!0,this._source instanceof HTMLImageElement?(this._sourceHeight=this._source.naturalHeight,this._sourceWidth=this._source.naturalWidth):this._source&&(this._sourceHeight=this._source.height,this._sourceWidth=this._source.width))}transitionStep(t,e){t>=64&&(this.fadeTransitionEnabled=!1),super.transitionStep(t,e)}setTransform(t){const e=s(this.transforms.displayViewScreenMat3),[i,a]=t.toScreenNoRotation([0,0],[this.x,this.y]),l=this.resolution/this.pixelRatio/t.resolution,c=l*this.width,d=l*this.height,_=Math.PI*this.rotation/180;r(e,e,n(i,a)),r(e,e,n(c/2,d/2)),h(e,e,-_),r(e,e,n(-c/2,-d/2)),o(e,e,n(c,d)),u(this.transforms.displayViewScreenMat3,t.displayViewMat3,e)}setSamplingProfile(t){this._texture&&(t.mips&&!this._texture.descriptor.hasMipmap&&this._texture.generateMipmap(),this._texture.setSamplingMode(t.samplingMode))}bind(t,e){this._texture&&t.bindTexture(this._texture,e)}async updateTexture({context:t,painter:e}){if(!this._textureInvalidated)return;if(this._textureInvalidated=!1,this._texture||(this._texture=this._createTexture(t)),!this.source)return void this._texture.setData(null);this._texture.resize(this._sourceWidth,this._sourceHeight);const s=f(this.source);try{if(null!=this._uploadStatus){const{controller:t,resolver:i}=this._uploadStatus,r={signal:t.signal},{width:h,height:o}=this,u=this._texture,a=e.textureUploadManager;await a.enqueueTextureUpdate({data:s,texture:u,width:h,height:o},r),i.resolve(),this._uploadStatus=null}else this._texture.setData(s);this.ready()}catch(r){i(r)}}onDetach(){this.destroy()}_createTransforms(){return{displayViewScreenMat3:a()}}_createTexture(t){const e=this.immutable,i=new p(this._sourceWidth,this._sourceHeight);return i.internalFormat=e?d.RGBA8:6408,i.wrapMode=33071,i.isImmutable=e,new _(t,i)}}export{w as Bitmap,x as isImageSource,g as rasterize};
5
+ import{createResolver as t,onAbortOrThrow as e,throwIfNotAbortError as i}from"../../../core/promiseUtils.js";import{identity as s,translate as r,rotate as h,scaleByVec2 as o,multiply as u}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as a}from"../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{fromValues as n}from"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import{DisplayObject as l}from"./DisplayObject.js";import c from"./ImageryBitmapSource.js";import{SizedPixelFormat as d}from"../../webgl/enums.js";import _ from"../../webgl/Texture.js";import{TextureDescriptor as p}from"../../webgl/TextureDescriptor.js";function m(t){t instanceof ImageBitmap&&t.close()}function x(t){return t&&"render"in t}function g(t){const e=document.createElement("canvas");return e.width=t.width,e.height=t.height,t.render(e.getContext("2d")),e}function f(t){return x(t)?t instanceof c?t.getRenderedRasterPixels()?.renderedRasterPixels:g(t):t}class w extends l{constructor(t=null,e=!1){super(),this.blendFunction="standard",this._sourceWidth=0,this._sourceHeight=0,this._textureInvalidated=!1,this.stencilRef=0,this.coordScale=[1,1],this._height=void 0,this.pixelRatio=1,this.resolution=0,this.rotation=0,this._source=null,this._texture=null,this._width=void 0,this.x=0,this.y=0,this.immutable=e,this.source=t,this.requestRender=this.requestRender.bind(this)}destroy(){super.destroy(),this._texture&&(this._texture.dispose(),this._texture=null),this._source&&m(this._source),null!=this._uploadStatus&&(this._uploadStatus.controller.abort(),this._uploadStatus=null)}get isSourceScaled(){return this.width!==this._sourceWidth||this.height!==this._sourceHeight}get height(){return void 0!==this._height?this._height:this._sourceHeight}set height(t){this._height=t}get source(){return this._source}set source(t){null==t&&null==this._source||(this._source&&m(this._source),this._source=t,this.invalidateTexture(),this.requestRender())}get texture(){return this._texture}get width(){return void 0!==this._width?this._width:this._sourceWidth}set width(t){this._width=t}beforeRender(t){super.beforeRender(t),this.updateTexture(t)}async setSourceAsync(i,s){null!=this._uploadStatus&&this._uploadStatus.controller.abort();const r=new AbortController,h=t();return e(s,()=>r.abort()),e(r,t=>h.reject(t)),this._uploadStatus={controller:r,resolver:h},this.source=i,h.promise}invalidateTexture(){this._textureInvalidated||(this._textureInvalidated=!0,this._source instanceof HTMLImageElement?(this._sourceHeight=this._source.naturalHeight,this._sourceWidth=this._source.naturalWidth):this._source&&(this._sourceHeight=this._source.height,this._sourceWidth=this._source.width))}transitionStep(t,e){t>=64&&(this.fadeTransitionEnabled=!1),super.transitionStep(t,e)}setTransform(t){const e=s(this.transforms.displayViewScreenMat3),[i,a]=t.toScreenNoRotation([0,0],[this.x,this.y]),l=this.resolution/this.pixelRatio/t.resolution,c=l*this.width,d=l*this.height,_=Math.PI*this.rotation/180;r(e,e,n(i,a)),r(e,e,n(c/2,d/2)),h(e,e,-_),r(e,e,n(-c/2,-d/2)),o(e,e,n(c,d)),u(this.transforms.displayViewScreenMat3,t.displayViewMat3,e)}setSamplingProfile(t){this._texture&&(t.mips&&!this._texture.descriptor.hasMipmap&&this._texture.generateMipmap(),this._texture.setSamplingMode(t.samplingMode))}bind(t,e){this._texture&&t.bindTexture(this._texture,e)}async updateTexture({context:t,painter:e}){if(!this._textureInvalidated)return;if(this._textureInvalidated=!1,this._texture||(this._texture=this._createTexture(t)),!this.source)return void this._texture.setData(null);this._texture.resize(this._sourceWidth,this._sourceHeight);const s=f(this.source);try{if(null!=this._uploadStatus){const{controller:t,resolver:i}=this._uploadStatus,r={signal:t.signal},{width:h,height:o}=this,u=this._texture,a=e.textureUploadManager;await a.enqueueTextureUpdate({data:s,texture:u,width:h,height:o},r),i.resolve(),this._uploadStatus=null}else this._texture.setData(s);this.ready()}catch(r){i(r)}}onDetach(){this.destroy()}_createTransforms(){return{displayViewScreenMat3:a()}}_createTexture(t){const e=this.immutable,i=new p(this._sourceWidth,this._sourceHeight);return i.internalFormat=e?d.RGBA8:6408,i.wrapMode=33071,i.isImmutable=e,new _(t,i)}}export{w as Bitmap,x as isImageSource,g as rasterize};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{trackAccess as e}from"../../../core/accessorSupport/tracking.js";import{SimpleObservable as t}from"../../../core/accessorSupport/tracking/SimpleObservable.js";import{create as i}from"../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{EffectView as r}from"../../../layers/effects/EffectView.js";import{DisplayObject as s}from"./DisplayObject.js";class n extends s{constructor(){super(...arguments),this._childrenSet=new Set,this._needsSort=!1,this._children=[],this._childrenObservable=new t,this._effectView=null,this._highlightGradient=null}get blendMode(){return this._blendMode}set blendMode(e){this._blendMode=e,this.requestRender()}get children(){return e(this._childrenObservable),this._children}get clips(){return this._clips}set clips(e){this._clips=e,this.children.forEach(t=>t.clips=e)}get computedEffects(){return this._effectView?.effects??null}get effect(){return this._effectView?.effect??""}set effect(e){(this._effectView||e)&&(this._effectView||(this._effectView=new r,this.addTransitionable(this._effectView)),this._effectView.effect=e,this.requestRender())}get highlightGradient(){return this._highlightGradient}set highlightGradient(e){this._highlightGradient=e,this.requestRender()}get hasBlending(){return!!this.blendMode}get hasHighlight(){return this.children.some(e=>e.hasHighlight)}get hasLabels(){return this.children.some(e=>e.hasLabels)}get requiresDedicatedFBO(){return this.children.some(e=>"blendMode"in e&&e.blendMode&&"normal"!==e.blendMode)}get isReady(){return this.children.every(e=>e.isReady)}get sortFunction(){return this._sortFunction}set sortFunction(e){this._sortFunction=e,e&&(this._needsSort=!0)}get usedMemory(){return this.children.reduce((e,t)=>e+t.usedMemory,0)}doRender(e){const t=this.createRenderParams(e),{painter:i}=t;i.beforeRenderLayer(t,this._clips?.length?255:0,this.computedOpacity),this.renderChildren(t),i.afterRenderLayer(t,this.computedOpacity)}addChild(e){return this.addChildAt(e,this.children.length)}addChildAt(e,t=this.children.length){if(!e)return e;if(this.contains(e))return e;this._needsSort=!0;const i=e.parent;return i&&i!==this&&i.removeChild(e),t>=this.children.length?this.children.push(e):this.children.splice(t,0,e),this._childrenSet.add(e),e.parent=this,e.stage=this.stage,this!==this.stage&&(e.clips=this.clips),this.requestRender(),this._childrenObservable.notify(),e}contains(t){return e(this._childrenObservable),this._childrenSet.has(t)}removeAllChildren(){this._childrenSet.clear(),this._needsSort=!0;for(const e of this.children)this!==this.stage&&(e.clips=null),e.stage=null,e.parent=null;this.children.length=0,this._childrenObservable.notify()}removeChild(e){return this.contains(e)?this.removeChildAt(this.children.indexOf(e)):e}removeChildAt(e){if(e<0||e>=this.children.length)return null;this._needsSort=!0;const t=this.children.splice(e,1)[0];return this._childrenSet.delete(t),this!==this.stage&&(t.clips=null),t.stage=null,t.parent=null,this._childrenObservable.notify(),t}beforeRender(e){super.beforeRender(e),this.sortFunction&&this._needsSort&&(this.children.sort(this.sortFunction),this._needsSort=!1,this._childrenObservable.notify());for(const t of this.children)t.beforeRender(e)}afterRender(e){super.afterRender(e);for(const t of this.children)t.afterRender(e)}_createTransforms(){return{displayViewScreenMat3:i()}}onAttach(){super.onAttach();const e=this.stage;for(const t of this.children)t.stage=e}onDetach(){super.onDetach();for(const e of this.children)e.stage=null}renderChildren(e){for(const t of this.children)t.processRender(e)}createRenderParams(e){return{...e,requireFBO:this.requiresDedicatedFBO,blendMode:this.blendMode,effects:this.computedEffects,globalOpacity:e.globalOpacity*this.computedOpacity,inFadeTransition:this.inFadeTransition,highlightGradient:this._highlightGradient||e.highlightGradient}}isTransitioning(){return super.isTransitioning()||this.children.some(e=>e.transitioning)}}export{n as Container};
5
+ import{trackAccess as e}from"../../../core/accessorSupport/tracking.js";import{SimpleObservable as t}from"../../../core/accessorSupport/tracking/SimpleObservable.js";import{create as i}from"../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{EffectView as r}from"../../../layers/effects/EffectView.js";import{DisplayObject as s}from"./DisplayObject.js";class n extends s{constructor(){super(...arguments),this._childrenSet=new Set,this._needsSort=!1,this._children=[],this._childrenObservable=new t,this._effectView=null,this._highlightGradient=null}get blendMode(){return this._blendMode}set blendMode(e){this._blendMode=e,this.requestRender()}get children(){return e(this._childrenObservable),this._children}get clips(){return this._clips}set clips(e){this._clips=e,this.children.forEach(t=>t.clips=e)}get computedEffects(){return this._effectView?.effects??null}get effect(){return this._effectView?.effect??""}set effect(e){(this._effectView||e)&&(this._effectView||(this._effectView=new r,this.addTransitionable(this._effectView)),this._effectView.effect=e,this.requestRender())}get highlightGradient(){return this._highlightGradient}set highlightGradient(e){this._highlightGradient=e,this.requestRender()}get hasBlending(){return!!this.blendMode}get hasHighlight(){return this.children.some(e=>e.hasHighlight)}get hasLabels(){return this.children.some(e=>e.hasLabels)}get requiresDedicatedFBO(){return this.children.some(e=>"blendMode"in e&&e.blendMode&&"normal"!==e.blendMode)}get isReady(){return this.children.every(e=>e.isReady)}get sortFunction(){return this._sortFunction}set sortFunction(e){this._sortFunction=e,e&&(this._needsSort=!0)}get usedMemory(){return this.children.reduce((e,t)=>e+t.usedMemory,0)}doRender(e){const t=this.createRenderParams(e),{painter:i}=t;i.beforeRenderLayer(t,this._clips?.length?255:0,this.computedOpacity),this.renderChildren(t),i.afterRenderLayer(t,this.computedOpacity)}addChild(e){return this.addChildAt(e,this.children.length)}addChildAt(e,t=this.children.length){if(!e)return e;if(this.contains(e))return e;this._needsSort=!0;const i=e.parent;return i&&i!==this&&i.removeChild(e),t>=this.children.length?this.children.push(e):this.children.splice(t,0,e),this._childrenSet.add(e),e.parent=this,e.stage=this.stage,this!==this.stage&&(e.clips=this.clips),this.requestRender(),this._childrenObservable.notify(),e}contains(t){return e(this._childrenObservable),this._childrenSet.has(t)}removeAllChildren(){this._childrenSet.clear(),this._needsSort=!0;for(const e of this.children)this!==this.stage&&(e.clips=[]),e.stage=null,e.parent=null;this.children.length=0,this._childrenObservable.notify()}removeChild(e){return this.contains(e)?this.removeChildAt(this.children.indexOf(e)):e}removeChildAt(e){if(e<0||e>=this.children.length)return null;this._needsSort=!0;const t=this.children.splice(e,1)[0];return this._childrenSet.delete(t),this!==this.stage&&(t.clips=[]),t.stage=null,t.parent=null,this._childrenObservable.notify(),t}beforeRender(e){super.beforeRender(e),this.sortFunction&&this._needsSort&&(this.children.sort(this.sortFunction),this._needsSort=!1,this._childrenObservable.notify());for(const t of this.children)t.beforeRender(e)}afterRender(e){super.afterRender(e);for(const t of this.children)t.afterRender(e)}_createTransforms(){return{displayViewScreenMat3:i()}}onAttach(){super.onAttach();const e=this.stage;for(const t of this.children)t.stage=e}onDetach(){super.onDetach();for(const e of this.children)e.stage=null}renderChildren(e){for(const t of this.children)t.processRender(e)}createRenderParams(e){return{...e,requireFBO:this.requiresDedicatedFBO,blendMode:this.blendMode,effects:this.computedEffects,globalOpacity:e.globalOpacity*this.computedOpacity,inFadeTransition:this.inFadeTransition,highlightGradient:this._highlightGradient||e.highlightGradient}}isTransitioning(){return super.isTransitioning()||this.children.some(e=>e.transitioning)}}export{n as Container};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{remove as t}from"../../../core/arrayUtils.js";import{Evented as i}from"../../../core/Evented.js";import{FadeTransition as s}from"./transitions/FadeTransition.js";class e extends i{constructor(){super(...arguments),this._transitionables=null,this._clips=null,this._fadeTransition=null,this._isReady=!1,this._opacity=1,this.parent=null,this._stage=null,this._visible=!0}get computedOpacity(){return this._fadeTransition?.computedOpacity??this.opacity}get clips(){return this._clips}set clips(t){this._clips=t,this.requestRender()}get fadeTransitionEnabled(){return null!==this._fadeTransition}set fadeTransitionEnabled(t){!this._fadeTransition&&t?(this._fadeTransition=new s({opacity:this.opacity,visible:this.visible}),this.addTransitionable(this._fadeTransition)):this._fadeTransition&&!t&&(this.removeTransitionable(this._fadeTransition),this._fadeTransition=null)}get inFadeTransition(){return this._fadeTransition?.transitioning??!1}get isReady(){return this._isReady}get opacity(){return this._opacity}set opacity(t){this._opacity!==t&&(this._opacity=Math.min(1,Math.max(t,0)),this._fadeTransition&&(this._fadeTransition.opacity=this._opacity),this.requestRender())}get stage(){return this._stage}set stage(t){if(this._stage===t)return;const i=this._stage;this._stage=t,t?this._stage?.untrashDisplayObject(this)||(this.onAttach(),this.emit("attach")):i?.trashDisplayObject(this)}get transforms(){return null==this._transforms&&(this._transforms=this._createTransforms()),this._transforms}get transitioning(){return this.isTransitioning()}get usedMemory(){return 0}get visible(){return this._visible}set visible(t){this._visible!==t&&(this._visible=t,this._fadeTransition&&(this._fadeTransition.visible=this._visible),this.requestRender())}get hasLabels(){return!1}get hasHighlight(){return!1}get hasBlending(){return!1}addTransitionable(t){this._transitionables??=[],this._transitionables.push(t),this.requestRender()}removeTransitionable(i){i.endTransition(),this._transitionables&&t(this._transitionables,i),this.requestRender()}fadeIn(){this.fadeTransitionEnabled=!0;const t=this._fadeTransition.fadeIn();return this.opacity=1,this.requestRender(),t}fadeOut(){this.fadeTransitionEnabled=!0;const t=this._fadeTransition.fadeOut();return this.opacity=0,this.requestRender(),t}endTransitions(){if(this._transitionables){for(const t of this._transitionables)t.endTransition();this.requestRender()}}beforeRender(t){this.transitionStep(t.deltaTime,t.state.scale),this.setTransform(t.state)}afterRender(t){this.transitioning&&this.requestRender()}remove(){this.parent?.removeChild(this)}setTransform(t){}processRender(t){this.stage&&(this._fadeTransition?.computedVisible??this.visible)&&this.doRender(t)}requestRender(){this.stage&&this.stage.requestRender()}processDetach(){this.endTransitions(),this.onDetach(),this.emit("detach")}isTransitioning(){return this._transitionables?.some(t=>t.transitioning)??!1}transitionStep(t,i){if(this._transitionables)for(const s of this._transitionables)s.transitionStep(t,i)}onAttach(){}onDetach(){}doRender(t){}ready(){this._isReady||(this._isReady=!0,this.emit("isReady"),this.requestRender())}}export{e as DisplayObject};
5
+ import{remove as t}from"../../../core/arrayUtils.js";import{Evented as i}from"../../../core/Evented.js";import{FadeTransition as s}from"./transitions/FadeTransition.js";class e extends i{constructor(){super(...arguments),this._transitionables=null,this._clips=[],this._fadeTransition=null,this._isReady=!1,this._opacity=1,this.parent=null,this._stage=null,this._visible=!0}get computedOpacity(){return this._fadeTransition?.computedOpacity??this.opacity}get clips(){return this._clips}set clips(t){this._clips=t,this.requestRender()}get fadeTransitionEnabled(){return null!==this._fadeTransition}set fadeTransitionEnabled(t){!this._fadeTransition&&t?(this._fadeTransition=new s({opacity:this.opacity,visible:this.visible}),this.addTransitionable(this._fadeTransition)):this._fadeTransition&&!t&&(this.removeTransitionable(this._fadeTransition),this._fadeTransition=null)}get inFadeTransition(){return this._fadeTransition?.transitioning??!1}get isReady(){return this._isReady}get opacity(){return this._opacity}set opacity(t){this._opacity!==t&&(this._opacity=Math.min(1,Math.max(t,0)),this._fadeTransition&&(this._fadeTransition.opacity=this._opacity),this.requestRender())}get stage(){return this._stage}set stage(t){if(this._stage===t)return;const i=this._stage;this._stage=t,t?this._stage?.untrashDisplayObject(this)||(this.onAttach(),this.emit("attach")):i?.trashDisplayObject(this)}get transforms(){return null==this._transforms&&(this._transforms=this._createTransforms()),this._transforms}get transitioning(){return this.isTransitioning()}get usedMemory(){return 0}get visible(){return this._visible}set visible(t){this._visible!==t&&(this._visible=t,this._fadeTransition&&(this._fadeTransition.visible=this._visible),this.requestRender())}get hasLabels(){return!1}get hasHighlight(){return!1}get hasBlending(){return!1}addTransitionable(t){this._transitionables??=[],this._transitionables.push(t),this.requestRender()}removeTransitionable(i){i.endTransition(),this._transitionables&&t(this._transitionables,i),this.requestRender()}fadeIn(){this.fadeTransitionEnabled=!0;const t=this._fadeTransition.fadeIn();return this.opacity=1,this.requestRender(),t}fadeOut(){this.fadeTransitionEnabled=!0;const t=this._fadeTransition.fadeOut();return this.opacity=0,this.requestRender(),t}endTransitions(){if(this._transitionables){for(const t of this._transitionables)t.endTransition();this.requestRender()}}beforeRender(t){this.transitionStep(t.deltaTime,t.state.scale),this.setTransform(t.state)}afterRender(t){this.transitioning&&this.requestRender()}remove(){this.parent?.removeChild(this)}setTransform(t){}processRender(t){this.stage&&(this._fadeTransition?.computedVisible??this.visible)&&this.doRender(t)}requestRender(){this.stage&&this.stage.requestRender()}processDetach(){this.endTransitions(),this.onDetach(),this.emit("detach")}isTransitioning(){return this._transitionables?.some(t=>t.transitioning)??!1}transitionStep(t,i){if(this._transitionables)for(const s of this._transitionables)s.transitionStep(t,i)}onAttach(){}onDetach(){}doRender(t){}ready(){this._isReady||(this._isReady=!0,this.emit("isReady"),this.requestRender())}}export{e as DisplayObject};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import r from"./webgl/brushes/BrushClip.js";import s from"./webgl/brushes/WGLBrushStencil.js";import e from"./webgl/brushes/WGLBrushTileDebugInfo.js";import{WGLBrushVTLBackground as l}from"./webgl/brushes/WGLBrushVTLBackground.js";import{WGLBrushVTLCircle as o}from"./webgl/brushes/WGLBrushVTLCircle.js";import{WGLBrushVTLFill as b}from"./webgl/brushes/WGLBrushVTLFill.js";import{WGLBrushVTLLine as i}from"./webgl/brushes/WGLBrushVTLLine.js";import{WGLBrushVTLSymbol as u}from"./webgl/brushes/WGLBrushVTLSymbol.js";const m={clip:r,stencil:s,tileDebugInfo:e,vtlBackground:l,vtlFill:b,vtlLine:i,vtlCircle:o,vtlSymbol:u};export{m as brushes};
5
+ import r from"./webgl/brushes/WGLBrushStencil.js";import s from"./webgl/brushes/WGLBrushTileDebugInfo.js";import{WGLBrushVTLBackground as e}from"./webgl/brushes/WGLBrushVTLBackground.js";import{WGLBrushVTLCircle as l}from"./webgl/brushes/WGLBrushVTLCircle.js";import{WGLBrushVTLFill as o}from"./webgl/brushes/WGLBrushVTLFill.js";import{WGLBrushVTLLine as b}from"./webgl/brushes/WGLBrushVTLLine.js";import{WGLBrushVTLSymbol as u}from"./webgl/brushes/WGLBrushVTLSymbol.js";const i={stencil:r,tileDebugInfo:s,vtlBackground:e,vtlFill:o,vtlLine:b,vtlCircle:l,vtlSymbol:u};export{i as brushes};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{throwIfAborted as t}from"../../../../../core/promiseUtils.js";import{timeExtentsEqual as r,setUniforms as a}from"../utils.js";import{PrimitiveType as e,DataType as s}from"../../../../webgl/enums.js";import{Texture as o}from"../../../../webgl/Texture.js";import{TextureDescriptor as i}from"../../../../webgl/TextureDescriptor.js";import{VertexArrayObject as n}from"../../../../webgl/VertexArrayObject.js";import{fromLayout as m}from"../../../../webgl/VertexAttributeLocations.js";import{VertexBuffer as l}from"../../../../webgl/VertexBuffer.js";import{VertexElementDescriptor as p}from"../../../../webgl/VertexElementDescriptor.js";class c{constructor(t){this._params=t,this.animated=!1}isCompatible(t){if(!(t instanceof c))return!1;if(!r(this._params.timeExtent,t._params.timeExtent))return!1;let a=!0;return a=a&&this._params.loadImagery===t._params.loadImagery,a=a&&this._params.color.kind===t._params.color.kind,a=a&&this._params.opacity.kind===t._params.opacity.kind,a}async load(r,a){const{extent:e,size:s}=r;t(a);const o=await this._params.loadImagery(e,s[0],s[1],this._params.timeExtent,a);return new _(o,{color:this._params.color,opacity:this._params.opacity})}render(t,r,s){const{context:o}=t,{program:i}=s;o.setFaceCullingEnabled(!1),o.setBlendingEnabled(!0),o.setBlendFunction(1,771),o.useProgram(i),i.setUniformMatrix3fv("u_dvsMat3",r.dvsMat3),o.bindTexture(s.texture,0),i.setUniform1i("u_texture",0),i.setUniform1f("u_Min",s.min),i.setUniform1f("u_Max",s.max),a(i,"color","vec4",this._params.color),a(i,"opacity","float",this._params.opacity),o.bindVAO(s.vertexArray),o.drawArrays(e.TRIANGLE_STRIP,0,4)}}const h=[new p("a_position",2,s.UNSIGNED_SHORT,0,8),new p("a_texcoord",2,s.UNSIGNED_SHORT,4,8)],f={vsPath:"raster/flow/imagery",fsPath:"raster/flow/imagery",locations:m(h)};class _{constructor(t,r){this._flowData=t,this._values=r}attach(t){const{context:r}=t,{width:a,height:e}=this._flowData,s=new l(r,h,new Uint16Array([0,0,0,1,a,0,1,1,0,e,0,0,a,e,1,0])),m=new n(r,s),p=[];"ramp"===this._values.color.kind&&p.push("vvColor"),"ramp"===this._values.opacity.kind&&p.push("vvOpacity");const c=t.getProgram(f,p);let _=1e6,d=-1e6;for(let o=0;o<e;o++)for(let t=0;t<a;t++)if(0!==this._flowData.mask[o*a+t]){const r=this._flowData.data[2*(o*a+t)],e=this._flowData.data[2*(o*a+t)+1],s=Math.sqrt(r*r+e*e);_=Math.min(_,s),d=Math.max(d,s)}const u=new Uint8Array(4*a*e);for(let o=0;o<e;o++)for(let t=0;t<a;t++)if(0!==this._flowData.mask[o*a+t]){const r=this._flowData.data[2*(o*a+t)],e=this._flowData.data[2*(o*a+t)+1],s=(Math.sqrt(r*r+e*e)-_)/(d-_);u[4*(o*a+t)]=255*s,u[4*(o*a+t)+1]=0,u[4*(o*a+t)+2]=0,u[4*(o*a+t)+3]=255}else u[4*(o*a+t)]=0,u[4*(o*a+t)+1]=0,u[4*(o*a+t)+2]=0,u[4*(o*a+t)+3]=0;const w=new i(a,e);w.internalFormat=6408,w.wrapMode=33071,w.flipped=!0;const x=new o(r,w,u);this.vertexArray=m,this.program=c,this.texture=x,this.min=_,this.max=d,this._flowData=null}detach(){this.vertexArray.dispose(),this.texture.dispose()}get ready(){return this.program.compiled}}export{c as Imagery,_ as ImageryResources};
5
+ import{throwIfAborted as t}from"../../../../../core/promiseUtils.js";import{timeExtentsEqual as r,setUniforms as a}from"../utils.js";import{PrimitiveType as e,DataType as s}from"../../../../webgl/enums.js";import o from"../../../../webgl/Texture.js";import{TextureDescriptor as i}from"../../../../webgl/TextureDescriptor.js";import{VertexArrayObject as n}from"../../../../webgl/VertexArrayObject.js";import{fromLayout as m}from"../../../../webgl/VertexAttributeLocations.js";import{VertexBuffer as l}from"../../../../webgl/VertexBuffer.js";import{VertexElementDescriptor as p}from"../../../../webgl/VertexElementDescriptor.js";class c{constructor(t){this._params=t,this.animated=!1}isCompatible(t){if(!(t instanceof c))return!1;if(!r(this._params.timeExtent,t._params.timeExtent))return!1;let a=!0;return a=a&&this._params.loadImagery===t._params.loadImagery,a=a&&this._params.color.kind===t._params.color.kind,a=a&&this._params.opacity.kind===t._params.opacity.kind,a}async load(r,a){const{extent:e,size:s}=r;t(a);const o=await this._params.loadImagery(e,s[0],s[1],this._params.timeExtent,a);return new _(o,{color:this._params.color,opacity:this._params.opacity})}render(t,r,s){const{context:o}=t,{program:i}=s;o.setFaceCullingEnabled(!1),o.setBlendingEnabled(!0),o.setBlendFunction(1,771),o.useProgram(i),i.setUniformMatrix3fv("u_dvsMat3",r.dvsMat3),o.bindTexture(s.texture,0),i.setUniform1i("u_texture",0),i.setUniform1f("u_Min",s.min),i.setUniform1f("u_Max",s.max),a(i,"color","vec4",this._params.color),a(i,"opacity","float",this._params.opacity),o.bindVAO(s.vertexArray),o.drawArrays(e.TRIANGLE_STRIP,0,4)}}const h=[new p("a_position",2,s.UNSIGNED_SHORT,0,8),new p("a_texcoord",2,s.UNSIGNED_SHORT,4,8)],f={vsPath:"raster/flow/imagery",fsPath:"raster/flow/imagery",locations:m(h)};class _{constructor(t,r){this._flowData=t,this._values=r}attach(t){const{context:r}=t,{width:a,height:e}=this._flowData,s=new l(r,h,new Uint16Array([0,0,0,1,a,0,1,1,0,e,0,0,a,e,1,0])),m=new n(r,s),p=[];"ramp"===this._values.color.kind&&p.push("vvColor"),"ramp"===this._values.opacity.kind&&p.push("vvOpacity");const c=t.getProgram(f,p);let _=1e6,d=-1e6;for(let o=0;o<e;o++)for(let t=0;t<a;t++)if(0!==this._flowData.mask[o*a+t]){const r=this._flowData.data[2*(o*a+t)],e=this._flowData.data[2*(o*a+t)+1],s=Math.sqrt(r*r+e*e);_=Math.min(_,s),d=Math.max(d,s)}const u=new Uint8Array(4*a*e);for(let o=0;o<e;o++)for(let t=0;t<a;t++)if(0!==this._flowData.mask[o*a+t]){const r=this._flowData.data[2*(o*a+t)],e=this._flowData.data[2*(o*a+t)+1],s=(Math.sqrt(r*r+e*e)-_)/(d-_);u[4*(o*a+t)]=255*s,u[4*(o*a+t)+1]=0,u[4*(o*a+t)+2]=0,u[4*(o*a+t)+3]=255}else u[4*(o*a+t)]=0,u[4*(o*a+t)+1]=0,u[4*(o*a+t)+2]=0,u[4*(o*a+t)+3]=0;const w=new i(a,e);w.internalFormat=6408,w.wrapMode=33071,w.flipped=!0;const x=new o(r,w,u);this.vertexArray=m,this.program=c,this.texture=x,this.min=_,this.max=d,this._flowData=null}detach(){this.vertexArray.dispose(),this.texture.dispose()}get ready(){return this.program.compiled}}export{c as Imagery,_ as ImageryResources};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import t from"./RectangleBinPack.js";import e from"../webgl/Rect.js";import{Texture as s}from"../../../webgl/Texture.js";import{TextureDescriptor as i}from"../../../webgl/TextureDescriptor.js";class h{constructor(e,s,i){this.width=0,this.height=0,this._dirties=[],this._glyphData=[],this._currentPage=0,this._glyphIndex={},this._textures=[],this._rangePromises=new Map,this.width=e,this.height=s,this._glyphSource=i,this._binPack=new t(e-4,s-4),this._glyphData.push(new Uint8Array(e*s)),this._dirties.push(!0),this._textures.push(void 0)}getGlyphItems(s,i){const h=[],r=this._glyphSource,n=new Set,o=1/256;for(const t of i){const e=Math.floor(t*o);n.add(e)}const a=[];return n.forEach(t=>{const e=s+t;if(this._rangePromises.has(e))a.push(this._rangePromises.get(e));else{const i=r.getRange(s,t).then(()=>{this._rangePromises.delete(e)},()=>{this._rangePromises.delete(e)});this._rangePromises.set(e,i),a.push(i)}}),Promise.all(a).then(()=>{let n=this._glyphIndex[s];n||(n={},this._glyphIndex[s]=n);for(const o of i){const i=n[o];if(i){h[o]={sdf:!0,rect:i.rect,metrics:i.metrics,page:i.page,code:o};continue}const a=r.getGlyph(s,o);if(!a?.metrics)continue;const l=a.metrics;let c;if(0===l.width)c=new e(0,0,0,0);else{const e=3,s=l.width+2*e,i=l.height+2*e;let h=s%4?4-s%4:4,r=i%4?4-i%4:4;1===h&&(h=5),1===r&&(r=5),c=this._binPack.allocate(s+h,i+r),c.isEmpty&&(this._dirties[this._currentPage]||(this._glyphData[this._currentPage]=null),this._currentPage=this._glyphData.length,this._glyphData.push(new Uint8Array(this.width*this.height)),this._dirties.push(!0),this._textures.push(void 0),this._binPack=new t(this.width-4,this.height-4),c=this._binPack.allocate(s+h,i+r));const n=this._glyphData[this._currentPage],o=a.bitmap;let g,_;if(o)for(let t=0;t<i;t++){g=s*t,_=this.width*(c.y+t+1)+c.x;for(let t=0;t<s;t++)n[_+t+1]=o.at(g+t)}}n[o]={rect:c,metrics:l,tileIDs:null,page:this._currentPage},h[o]={sdf:!0,rect:c,metrics:l,page:this._currentPage,code:o},this._dirties[this._currentPage]=!0}return h})}removeGlyphs(t){for(const e in this._glyphIndex){const s=this._glyphIndex[e];if(!s)continue;let i;for(const e in s)if(i=s[e],i.tileIDs.delete(t),0===i.tileIDs.size){const t=this._glyphData[i.page],h=i.rect;let r,n;for(let e=0;e<h.height;e++)for(r=this.width*(h.y+e)+h.x,n=0;n<h.width;n++)t[r+n]=0;delete s[e],this._dirties[i.page]=!0}}}bind(t,e,h,r=0){if(!this._textures[h]){const e=new i(this.width,this.height);e.pixelFormat=6406,e.wrapMode=33071,this._textures[h]=new s(t,e,new Uint8Array(this.width*this.height))}const n=this._textures[h];n.setSamplingMode(e),this._dirties[h]&&n.setData(this._glyphData[h]),t.bindTexture(n,r),this._dirties[h]=!1}destroy(){this.dispose()}dispose(){this._glyphData.length=0,this._binPack=null;for(const t of this._textures)t&&t.dispose();this._textures.length=0}}export{h as default};
5
+ import t from"./RectangleBinPack.js";import e from"../webgl/Rect.js";import s from"../../../webgl/Texture.js";import{TextureDescriptor as i}from"../../../webgl/TextureDescriptor.js";class h{constructor(e,s,i){this.width=0,this.height=0,this._dirties=[],this._glyphData=[],this._currentPage=0,this._glyphIndex={},this._textures=[],this._rangePromises=new Map,this.width=e,this.height=s,this._glyphSource=i,this._binPack=new t(e-4,s-4),this._glyphData.push(new Uint8Array(e*s)),this._dirties.push(!0),this._textures.push(void 0)}getGlyphItems(s,i){const h=[],r=this._glyphSource,n=new Set,o=1/256;for(const t of i){const e=Math.floor(t*o);n.add(e)}const a=[];return n.forEach(t=>{const e=s+t;if(this._rangePromises.has(e))a.push(this._rangePromises.get(e));else{const i=r.getRange(s,t).then(()=>{this._rangePromises.delete(e)},()=>{this._rangePromises.delete(e)});this._rangePromises.set(e,i),a.push(i)}}),Promise.all(a).then(()=>{let n=this._glyphIndex[s];n||(n={},this._glyphIndex[s]=n);for(const o of i){const i=n[o];if(i){h[o]={sdf:!0,rect:i.rect,metrics:i.metrics,page:i.page,code:o};continue}const a=r.getGlyph(s,o);if(!a?.metrics)continue;const l=a.metrics;let c;if(0===l.width)c=new e(0,0,0,0);else{const e=3,s=l.width+2*e,i=l.height+2*e;let h=s%4?4-s%4:4,r=i%4?4-i%4:4;1===h&&(h=5),1===r&&(r=5),c=this._binPack.allocate(s+h,i+r),c.isEmpty&&(this._dirties[this._currentPage]||(this._glyphData[this._currentPage]=null),this._currentPage=this._glyphData.length,this._glyphData.push(new Uint8Array(this.width*this.height)),this._dirties.push(!0),this._textures.push(void 0),this._binPack=new t(this.width-4,this.height-4),c=this._binPack.allocate(s+h,i+r));const n=this._glyphData[this._currentPage],o=a.bitmap;let g,_;if(o)for(let t=0;t<i;t++){g=s*t,_=this.width*(c.y+t+1)+c.x;for(let t=0;t<s;t++)n[_+t+1]=o.at(g+t)}}n[o]={rect:c,metrics:l,tileIDs:null,page:this._currentPage},h[o]={sdf:!0,rect:c,metrics:l,page:this._currentPage,code:o},this._dirties[this._currentPage]=!0}return h})}removeGlyphs(t){for(const e in this._glyphIndex){const s=this._glyphIndex[e];if(!s)continue;let i;for(const e in s)if(i=s[e],i.tileIDs.delete(t),0===i.tileIDs.size){const t=this._glyphData[i.page],h=i.rect;let r,n;for(let e=0;e<h.height;e++)for(r=this.width*(h.y+e)+h.x,n=0;n<h.width;n++)t[r+n]=0;delete s[e],this._dirties[i.page]=!0}}}bind(t,e,h,r=0){if(!this._textures[h]){const e=new i(this.width,this.height);e.pixelFormat=6406,e.wrapMode=33071,this._textures[h]=new s(t,e,new Uint8Array(this.width*this.height))}const n=this._textures[h];n.setSamplingMode(e),this._dirties[h]&&n.setData(this._glyphData[h]),t.bindTexture(n,r),this._dirties[h]=!1}destroy(){this.dispose()}dispose(){this._glyphData.length=0,this._binPack=null;for(const t of this._textures)t&&t.dispose();this._textures.length=0}}export{h as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../core/has.js";import{rasterizeDash as t}from"../../../../symbols/cim/rasterizingUtils.js";import i from"./RectangleBinPack.js";import s from"../webgl/Rect.js";import{Texture as e}from"../../../webgl/Texture.js";import{TextureDescriptor as h}from"../../../webgl/TextureDescriptor.js";const a="dasharray-";class r{constructor(t,s,e=0){this._size=[],this._mosaicsData=[],this._textures=[],this._dirties=[],this._maxItemSize=0,this._currentPage=0,this._pageWidth=0,this._pageHeight=0,this._mosaicRects={},this.pixelRatio=1,s<=0&&console.error("Sprites mosaic defaultWidth and defaultHeight must be greater than zero!"),this._pageWidth=t,this._pageHeight=s,e>0&&(this._maxItemSize=e),this._binPack=new i(t-4,s-4)}destroy(){this.dispose()}dispose(){this._binPack=null,this._mosaicsData.length=0,this._mosaicRects={};for(const t of this._textures)t&&t.dispose();this._textures.length=0}getWidth(t){return t>=this._size.length?-1:this._size[t][0]}getHeight(t){return t>=this._size.length?-1:this._size[t][1]}getPageSize(t){return t>=this._size.length?null:this._size[t]}setSpriteSource(t){if(this.dispose(),this.pixelRatio=t.devicePixelRatio,0===this._mosaicsData.length){this._binPack=new i(this._pageWidth-4,this._pageHeight-4);const t=Math.floor(this._pageWidth),s=Math.floor(this._pageHeight),e=new Uint32Array(t*s);this._mosaicsData[0]=e,this._dirties.push(!0),this._size.push([this._pageWidth,this._pageHeight]),this._textures.push(void 0)}this._sprites=t}getSpriteItem(t,i=!1){let s,e,h=this._mosaicRects[t];if(h)return h;if(!this._sprites||"loaded"!==this._sprites.loadStatus)return null;if(t&&t.startsWith(a)?([s,e]=this._rasterizeDash(t),i=!0):s=this._sprites.getSpriteInfo(t),!s?.width||!s.height||s.width<0||s.height<0)return null;const r=s.width,o=s.height,[n,_,g]=this._allocateImage(r,o);return n.width<=0?null:(this._copy(n,s,_,g,i,e),h={type:"sprite",rect:n,width:r,height:o,sdf:s.sdf,simplePattern:!1,rasterizationScale:s.pixelRatio??1,samplingMode:"Linear",page:_},this._mosaicRects[t]=h,h)}getSpriteItems(t){const i={};for(const s of t)i[s.name]=this.getSpriteItem(s.name,s.repeat);return i}getMosaicItemPosition(t,i){const s=this.getSpriteItem(t,i),e=s?.rect;if(!e)return null;e.width=s.width,e.height=s.height;const h=s.width,a=s.height,r=2;return{tl:[e.x+r,e.y+r],br:[e.x+r+h,e.y+r+a],page:s.page}}bind(t,i,s=0,a=0){if(s>=this._size.length||s>=this._mosaicsData.length)return;if(!this._textures[s]){const i=new h(this._size[s][0],this._size[s][1]);i.wrapMode=33071,this._textures[s]=new e(t,i,new Uint8Array(this._mosaicsData[s].buffer))}const r=this._textures[s];r.setSamplingMode(i),this._dirties[s]&&r.setData(new Uint8Array(this._mosaicsData[s].buffer)),t.bindTexture(r,a),this._dirties[s]=!1}static _copyBits(t,i,s,e,h,a,r,o,n,_,g){let c=e*i+s,p=o*a+r;if(g){p-=a;for(let r=-1;r<=_;r++,c=((r+_)%_+e)*i+s,p+=a)for(let i=-1;i<=n;i++)h[p+i]=t[c+(i+n)%n]}else for(let l=0;l<_;l++){for(let i=0;i<n;i++)h[p+i]=t[c+i];c+=i,p+=a}}_copy(t,i,s,e,h,a){if(!this._sprites||"loaded"!==this._sprites.loadStatus||s>=this._mosaicsData.length)return;const o=new Uint32Array(a?a.buffer:this._sprites.image.buffer),n=this._mosaicsData[s],_=2,g=a?i.width:this._sprites.width;r._copyBits(o,g,i.x,i.y,n,e[0],t.x+_,t.y+_,i.width,i.height,h),this._dirties[s]=!0}_allocateImage(t,e){t+=2,e+=2;const h=Math.max(t,e);if(this._maxItemSize&&this._maxItemSize<h){const i=new s(0,0,t,e);return this._mosaicsData.push(new Uint32Array(t*e)),this._dirties.push(!0),this._size.push([t,e]),this._textures.push(void 0),[i,this._mosaicsData.length-1,[t,e]]}let a=t%4?4-t%4:4,r=e%4?4-e%4:4;1===a&&(a=5),1===r&&(r=5);const o=this._binPack.allocate(t+a,e+r);return o.width<=0?(this._dirties[this._currentPage]||(this._mosaicsData[this._currentPage]=null),this._currentPage=this._mosaicsData.length,this._mosaicsData.push(new Uint32Array(this._pageWidth*this._pageHeight)),this._dirties.push(!0),this._size.push([this._pageWidth,this._pageHeight]),this._textures.push(void 0),this._binPack=new i(this._pageWidth-4,this._pageHeight-4),this._allocateImage(t,e)):[o,this._currentPage,[this._pageWidth,this._pageHeight]]}_rasterizeDash(i){const s=/\[(.*?)\]/,e=i.match(s);if(!e)return null;const h=e[1].split(",").map(Number),a=i.slice(i.lastIndexOf("-")+1),[r,o,n]=t(h,a);return[{x:0,y:0,width:o,height:n,sdf:!0,pixelRatio:1},new Uint8Array(r.buffer)]}}export{r as default};
5
+ import"../../../../core/has.js";import{rasterizeDash as t}from"../../../../symbols/cim/rasterizingUtils.js";import i from"./RectangleBinPack.js";import s from"../webgl/Rect.js";import e from"../../../webgl/Texture.js";import{TextureDescriptor as h}from"../../../webgl/TextureDescriptor.js";const a="dasharray-";class r{constructor(t,s,e=0){this._size=[],this._mosaicsData=[],this._textures=[],this._dirties=[],this._maxItemSize=0,this._currentPage=0,this._pageWidth=0,this._pageHeight=0,this._mosaicRects={},this.pixelRatio=1,s<=0&&console.error("Sprites mosaic defaultWidth and defaultHeight must be greater than zero!"),this._pageWidth=t,this._pageHeight=s,e>0&&(this._maxItemSize=e),this._binPack=new i(t-4,s-4)}destroy(){this.dispose()}dispose(){this._binPack=null,this._mosaicsData.length=0,this._mosaicRects={};for(const t of this._textures)t&&t.dispose();this._textures.length=0}getWidth(t){return t>=this._size.length?-1:this._size[t][0]}getHeight(t){return t>=this._size.length?-1:this._size[t][1]}getPageSize(t){return t>=this._size.length?null:this._size[t]}setSpriteSource(t){if(this.dispose(),this.pixelRatio=t.devicePixelRatio,0===this._mosaicsData.length){this._binPack=new i(this._pageWidth-4,this._pageHeight-4);const t=Math.floor(this._pageWidth),s=Math.floor(this._pageHeight),e=new Uint32Array(t*s);this._mosaicsData[0]=e,this._dirties.push(!0),this._size.push([this._pageWidth,this._pageHeight]),this._textures.push(void 0)}this._sprites=t}getSpriteItem(t,i=!1){let s,e,h=this._mosaicRects[t];if(h)return h;if(!this._sprites||"loaded"!==this._sprites.loadStatus)return null;if(t&&t.startsWith(a)?([s,e]=this._rasterizeDash(t),i=!0):s=this._sprites.getSpriteInfo(t),!s?.width||!s.height||s.width<0||s.height<0)return null;const r=s.width,o=s.height,[n,_,g]=this._allocateImage(r,o);return n.width<=0?null:(this._copy(n,s,_,g,i,e),h={type:"sprite",rect:n,width:r,height:o,sdf:s.sdf,simplePattern:!1,rasterizationScale:s.pixelRatio??1,samplingMode:"Linear",page:_},this._mosaicRects[t]=h,h)}getSpriteItems(t){const i={};for(const s of t)i[s.name]=this.getSpriteItem(s.name,s.repeat);return i}getMosaicItemPosition(t,i){const s=this.getSpriteItem(t,i),e=s?.rect;if(!e)return null;e.width=s.width,e.height=s.height;const h=s.width,a=s.height,r=2;return{tl:[e.x+r,e.y+r],br:[e.x+r+h,e.y+r+a],page:s.page}}bind(t,i,s=0,a=0){if(s>=this._size.length||s>=this._mosaicsData.length)return;if(!this._textures[s]){const i=new h(this._size[s][0],this._size[s][1]);i.wrapMode=33071,this._textures[s]=new e(t,i,new Uint8Array(this._mosaicsData[s].buffer))}const r=this._textures[s];r.setSamplingMode(i),this._dirties[s]&&r.setData(new Uint8Array(this._mosaicsData[s].buffer)),t.bindTexture(r,a),this._dirties[s]=!1}static _copyBits(t,i,s,e,h,a,r,o,n,_,g){let c=e*i+s,p=o*a+r;if(g){p-=a;for(let r=-1;r<=_;r++,c=((r+_)%_+e)*i+s,p+=a)for(let i=-1;i<=n;i++)h[p+i]=t[c+(i+n)%n]}else for(let l=0;l<_;l++){for(let i=0;i<n;i++)h[p+i]=t[c+i];c+=i,p+=a}}_copy(t,i,s,e,h,a){if(!this._sprites||"loaded"!==this._sprites.loadStatus||s>=this._mosaicsData.length)return;const o=new Uint32Array(a?a.buffer:this._sprites.image.buffer),n=this._mosaicsData[s],_=2,g=a?i.width:this._sprites.width;r._copyBits(o,g,i.x,i.y,n,e[0],t.x+_,t.y+_,i.width,i.height,h),this._dirties[s]=!0}_allocateImage(t,e){t+=2,e+=2;const h=Math.max(t,e);if(this._maxItemSize&&this._maxItemSize<h){const i=new s(0,0,t,e);return this._mosaicsData.push(new Uint32Array(t*e)),this._dirties.push(!0),this._size.push([t,e]),this._textures.push(void 0),[i,this._mosaicsData.length-1,[t,e]]}let a=t%4?4-t%4:4,r=e%4?4-e%4:4;1===a&&(a=5),1===r&&(r=5);const o=this._binPack.allocate(t+a,e+r);return o.width<=0?(this._dirties[this._currentPage]||(this._mosaicsData[this._currentPage]=null),this._currentPage=this._mosaicsData.length,this._mosaicsData.push(new Uint32Array(this._pageWidth*this._pageHeight)),this._dirties.push(!0),this._size.push([this._pageWidth,this._pageHeight]),this._textures.push(void 0),this._binPack=new i(this._pageWidth-4,this._pageHeight-4),this._allocateImage(t,e)):[o,this._currentPage,[this._pageWidth,this._pageHeight]]}_rasterizeDash(i){const s=/\[(.*?)\]/,e=i.match(s);if(!e)return null;const h=e[1].split(",").map(Number),a=i.slice(i.lastIndexOf("-")+1),[r,o,n]=t(h,a);return[{x:0,y:0,width:o,height:n,sdf:!0,pixelRatio:1},new Uint8Array(r.buffer)]}}export{r as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../../core/pbf.js";import{isAborted as t}from"../../../../core/promiseUtils.js";import{loadLibtess as r}from"../../../../geometry/libtess.js";import{TileClipper as s,SimpleBuilder as i}from"../../../../geometry/support/TileClipper.js";import o from"./Feature.js";import{getTileMargins as c}from"./GeometryUtils.js";import{TriangleIndexBuffer as a}from"./IndexMemoryBuffer.js";import n from"./SourceLayerData.js";import{FillVertexBuffer as l,OutlineVertexBuffer as u,LineVertexBuffer as f,CircleVertexBuffer as p,SymbolVertexBuffer as h}from"./VertexMemoryBuffer.js";import m from"./buckets/CircleBucket.js";import _ from"./buckets/FillBucket.js";import y from"./buckets/LineBucket.js";import d from"./buckets/SymbolBucket.js";class k{constructor(t,r,o,a,n,l){if(this._pbfTiles={},this._tileClippers={},this._client=o,this._tile=r,this._sourceDataMaxLOD=a,l){this._styleLayerUIDs=new Set;for(const e of l)this._styleLayerUIDs.add(e)}this._styleRepository=n,this._layers=this._styleRepository?.layers??[];const[u,f,p]=r.tileKey.split("/").map(parseFloat);this._level=u;const h=c(this._level);for(const c of Object.keys(t)){const r=t[c];this._pbfTiles[c]=new e(new Uint8Array(r.protobuff),new DataView(r.protobuff));if(r.refKey){const[e]=r.refKey.split("/").map(parseFloat),t=u-e;if(t>0){const e=(1<<t)-1,r=f&e,i=p&e;this._tileClippers[c]=new s(t,r,i,8,h)}}this._tileClippers[c]||(this._tileClippers[c]=new i)}}_canParseStyleLayer(e){return!this._styleLayerUIDs||this._styleLayerUIDs.has(e)}async parse(e){const t=r(),s=this._initialize(e),{returnedBuckets:i}=s;this._processLayers(s),this._linkReferences(s),this._filterFeatures(s);const o=[],c=new Set,a=(e,t)=>{c.has(e)||(o.push({name:e,repeat:t}),c.add(e))},n={};for(const r of i)r.getResources(r.tileClipper,a,n);if(4===this._tile.status)return[];const l=this._fetchResources(o,n,e);return Promise.all([...l,t]).then(()=>this._processFeatures(s.returnedBuckets))}_initialize(e){const t=e?.signal;return{signal:t,sourceNameToTileData:this._parseTileData(this._pbfTiles),layers:this._layers,zoom:this._level,sourceNameToTileClipper:this._tileClippers,sourceNameToUniqueSourceLayerBuckets:{},sourceNameToUniqueSourceLayers:{},returnedBuckets:[],layerIdToBucket:{},referencerUIDToReferencedId:new Map}}_processLayers(e){const{sourceNameToTileData:t,zoom:r,layers:s,sourceNameToTileClipper:i,sourceNameToUniqueSourceLayerBuckets:o,sourceNameToUniqueSourceLayers:c,returnedBuckets:a,layerIdToBucket:n,referencerUIDToReferencedId:l}=e,u=this._sourceDataMaxLOD;for(let f=s.length-1;f>=0;f--){const e=s[f];if(r<u){if(e.minzoom&&r<Math.floor(e.minzoom)||e.maxzoom&&r>=e.maxzoom)continue}else if(e.maxzoom&&r>=e.maxzoom)continue;if(0===e.type||!this._canParseStyleLayer(e.uid)||!t[e.source]||!i[e.source])continue;const p=t[e.source],h=i[e.source],m=e.sourceLayer,_=p[m];if(_){let t=c[e.source];if(t||(t=c[e.source]=new Set),t.add(e.sourceLayer),e.refLayerId)l.set(e.uid,e.refLayerId);else{const t=this._createBucket(e);if(t){t.layerUIDs=[e.uid],t.layerExtent=_.extent,t.tileClipper=h;let r=o[e.source];r||(r=o[e.source]={});let s=r[m];s||(s=r[m]=[]),s.push(t),a.push(t),n[e.id]=t}}}}}_linkReferences(e){const{layerIdToBucket:t,referencerUIDToReferencedId:r}=e;r.forEach((e,r)=>{t[e]&&t[e].layerUIDs.push(r)})}_filterFeatures(e){const{signal:r,sourceNameToTileData:s,sourceNameToUniqueSourceLayerBuckets:i,sourceNameToUniqueSourceLayers:c}=e,a=10*this._level,n=10*(this._level+1),l=[],u=[];for(const t of Object.keys(c)){c[t].forEach(e=>{l.push(e),u.push(t)})}for(let f=0;f<l.length;f++){const e=u[f],c=l[f];if(!s[e]||!i[e])continue;const p=s[e][c],h=i[e][c];if(!h||0===h.length)continue;if(t(r))return;let m=0;const _=p.getData();for(;_.nextTag(2);){const e=_.getMessage(),t=new o(e,p,m++);e.release();const r=t.values;if(r){const e=r._minzoom;if(e&&e>=n)continue;const t=r._maxzoom;if(t&&t<=a)continue}for(const s of h)s.pushFeature(t)}}}_fetchResources(e,t,r){const s=[],i=this._tile.getWorkerTileHandler();let o,c;e.length>0&&(o=i.fetchSprites(e,this._client,r),s.push(o));for(const a in t){const e=t[a];e.size>0&&(c=i.fetchGlyphs(this._tile.tileKey,a,e,this._client,r),s.push(c))}return s}_processFeatures(e){const t=e.filter(e=>e.hasFeatures()||this._canParseStyleLayer(e.layer.uid));for(const r of t)r.processFeatures(r.tileClipper);return t}_parseTileData(e){const t={};for(const r of Object.keys(e)){const s=e[r],i={};for(;s.next();)switch(s.tag()){case 3:{const e=s.getMessage(),t=new n(e);e.release(),i[t.name]=t;break}default:s.skip()}t[r]=i}return t}_createBucket(e){switch(e.type){case 0:return null;case 1:return this._createFillBucket(e);case 2:return this._createLineBucket(e);case 4:return this._createCircleBucket(e);case 3:return this._createSymbolBucket(e)}}_createFillBucket(e){return new _(e,this._level,this._tile.getWorkerTileHandler().getSpriteItems(),new l(e.fillMaterial.getStride()),new a,new u(e.outlineMaterial.getStride()),new a)}_createLineBucket(e){return new y(e,this._level,this._tile.getWorkerTileHandler().getSpriteItems(),new f(e.lineMaterial.getStride()),new a)}_createCircleBucket(e){return new m(e,this._level,this._tile.getWorkerTileHandler().getSpriteItems(),new p(e.circleMaterial.getStride()),new a)}_createSymbolBucket(e){const t=this._tile;return new d(t.tileKey,e,this._level,new h(e.iconMaterial.getStride()),new a,new h(e.textMaterial.getStride()),new a,t.placementEngine,t.getWorkerTileHandler())}}export{k as default};
5
+ import e from"../../../../core/pbf.js";import{isAborted as t}from"../../../../core/promiseUtils.js";import{loadLibtessF32 as r}from"../../../../geometry/libtess.js";import{TileClipper as s,SimpleBuilder as i}from"../../../../geometry/support/TileClipper.js";import o from"./Feature.js";import{getTileMargins as c}from"./GeometryUtils.js";import{TriangleIndexBuffer as a}from"./IndexMemoryBuffer.js";import n from"./SourceLayerData.js";import{FillVertexBuffer as l,OutlineVertexBuffer as u,LineVertexBuffer as f,CircleVertexBuffer as p,SymbolVertexBuffer as h}from"./VertexMemoryBuffer.js";import m from"./buckets/CircleBucket.js";import _ from"./buckets/FillBucket.js";import y from"./buckets/LineBucket.js";import d from"./buckets/SymbolBucket.js";class k{constructor(t,r,o,a,n,l){if(this._pbfTiles={},this._tileClippers={},this._client=o,this._tile=r,this._sourceDataMaxLOD=a,l){this._styleLayerUIDs=new Set;for(const e of l)this._styleLayerUIDs.add(e)}this._styleRepository=n,this._layers=this._styleRepository?.layers??[];const[u,f,p]=r.tileKey.split("/").map(parseFloat);this._level=u;const h=c(this._level);for(const c of Object.keys(t)){const r=t[c];this._pbfTiles[c]=new e(new Uint8Array(r.protobuff),new DataView(r.protobuff));if(r.refKey){const[e]=r.refKey.split("/").map(parseFloat),t=u-e;if(t>0){const e=(1<<t)-1,r=f&e,i=p&e;this._tileClippers[c]=new s(t,r,i,8,h)}}this._tileClippers[c]||(this._tileClippers[c]=new i)}}_canParseStyleLayer(e){return!this._styleLayerUIDs||this._styleLayerUIDs.has(e)}async parse(e){const t=r(),s=this._initialize(e),{returnedBuckets:i}=s;this._processLayers(s),this._linkReferences(s),this._filterFeatures(s);const o=[],c=new Set,a=(e,t)=>{c.has(e)||(o.push({name:e,repeat:t}),c.add(e))},n={};for(const r of i)r.getResources(r.tileClipper,a,n);if(4===this._tile.status)return[];const l=this._fetchResources(o,n,e);return Promise.all([...l,t]).then(()=>this._processFeatures(s.returnedBuckets))}_initialize(e){const t=e?.signal;return{signal:t,sourceNameToTileData:this._parseTileData(this._pbfTiles),layers:this._layers,zoom:this._level,sourceNameToTileClipper:this._tileClippers,sourceNameToUniqueSourceLayerBuckets:{},sourceNameToUniqueSourceLayers:{},returnedBuckets:[],layerIdToBucket:{},referencerUIDToReferencedId:new Map}}_processLayers(e){const{sourceNameToTileData:t,zoom:r,layers:s,sourceNameToTileClipper:i,sourceNameToUniqueSourceLayerBuckets:o,sourceNameToUniqueSourceLayers:c,returnedBuckets:a,layerIdToBucket:n,referencerUIDToReferencedId:l}=e,u=this._sourceDataMaxLOD;for(let f=s.length-1;f>=0;f--){const e=s[f];if(r<u){if(e.minzoom&&r<Math.floor(e.minzoom)||e.maxzoom&&r>=e.maxzoom)continue}else if(e.maxzoom&&r>=e.maxzoom)continue;if(0===e.type||!this._canParseStyleLayer(e.uid)||!t[e.source]||!i[e.source])continue;const p=t[e.source],h=i[e.source],m=e.sourceLayer,_=p[m];if(_){let t=c[e.source];if(t||(t=c[e.source]=new Set),t.add(e.sourceLayer),e.refLayerId)l.set(e.uid,e.refLayerId);else{const t=this._createBucket(e);if(t){t.layerUIDs=[e.uid],t.layerExtent=_.extent,t.tileClipper=h;let r=o[e.source];r||(r=o[e.source]={});let s=r[m];s||(s=r[m]=[]),s.push(t),a.push(t),n[e.id]=t}}}}}_linkReferences(e){const{layerIdToBucket:t,referencerUIDToReferencedId:r}=e;r.forEach((e,r)=>{t[e]&&t[e].layerUIDs.push(r)})}_filterFeatures(e){const{signal:r,sourceNameToTileData:s,sourceNameToUniqueSourceLayerBuckets:i,sourceNameToUniqueSourceLayers:c}=e,a=10*this._level,n=10*(this._level+1),l=[],u=[];for(const t of Object.keys(c)){c[t].forEach(e=>{l.push(e),u.push(t)})}for(let f=0;f<l.length;f++){const e=u[f],c=l[f];if(!s[e]||!i[e])continue;const p=s[e][c],h=i[e][c];if(!h||0===h.length)continue;if(t(r))return;let m=0;const _=p.getData();for(;_.nextTag(2);){const e=_.getMessage(),t=new o(e,p,m++);e.release();const r=t.values;if(r){const e=r._minzoom;if(e&&e>=n)continue;const t=r._maxzoom;if(t&&t<=a)continue}for(const s of h)s.pushFeature(t)}}}_fetchResources(e,t,r){const s=[],i=this._tile.getWorkerTileHandler();let o,c;e.length>0&&(o=i.fetchSprites(e,this._client,r),s.push(o));for(const a in t){const e=t[a];e.size>0&&(c=i.fetchGlyphs(this._tile.tileKey,a,e,this._client,r),s.push(c))}return s}_processFeatures(e){const t=e.filter(e=>e.hasFeatures()||this._canParseStyleLayer(e.layer.uid));for(const r of t)r.processFeatures(r.tileClipper);return t}_parseTileData(e){const t={};for(const r of Object.keys(e)){const s=e[r],i={};for(;s.next();)switch(s.tag()){case 3:{const e=s.getMessage(),t=new n(e);e.release(),i[t.name]=t;break}default:s.skip()}t[r]=i}return t}_createBucket(e){switch(e.type){case 0:return null;case 1:return this._createFillBucket(e);case 2:return this._createLineBucket(e);case 4:return this._createCircleBucket(e);case 3:return this._createSymbolBucket(e)}}_createFillBucket(e){return new _(e,this._level,this._tile.getWorkerTileHandler().getSpriteItems(),new l(e.fillMaterial.getStride()),new a,new u(e.outlineMaterial.getStride()),new a)}_createLineBucket(e){return new y(e,this._level,this._tile.getWorkerTileHandler().getSpriteItems(),new f(e.lineMaterial.getStride()),new a)}_createCircleBucket(e){return new m(e,this._level,this._tile.getWorkerTileHandler().getSpriteItems(),new p(e.circleMaterial.getStride()),new a)}_createSymbolBucket(e){const t=this._tile;return new d(t.tileKey,e,this._level,new h(e.iconMaterial.getStride()),new a,new h(e.textMaterial.getStride()),new a,t.placementEngine,t.getWorkerTileHandler())}}export{k as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{create as e}from"../../../../geometry/support/aaBoundingRect.js";import t from"../../../../layers/support/TileInfo.js";import{tileCoordSize as s,tilePixelSize as r}from"./constants.js";import{SymbolFader as i}from"./decluttering/SymbolFader.js";import{writeOpacityToBuffers as l}from"./decluttering/util.js";import{RenderableTile as o}from"../webgl/RenderableTile.js";import n from"../webgl/TileContainer.js";import a from"../../tiling/TileCoverage.js";import d from"../../tiling/TileKey.js";const c=1e-6;function h(e,t){if(e){const s=e.getLayoutProperty("visibility");if(!s||1!==s.getValue()&&(void 0===e.minzoom||e.minzoom<t+c)&&(void 0===e.maxzoom||e.maxzoom>=t-c))return!0}return!1}class u extends n{constructor(e){super(e),this._backgroundTiles=[],this._computeDisplayInfoView(e)}destroy(){super.destroy(),this.removeAllChildren(),this._spriteMosaic?.dispose(),this._spriteMosaic=null,this._glyphMosaic?.dispose(),this._glyphMosaic=null,null!=this._symbolFader&&(this._symbolFader.clear(),this._symbolFader=null),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,o){if(this._spriteMosaic=e,this._glyphMosaic=t,this._styleRepository=r,this.tileInfoView=o,this._computeDisplayInfoView(o),null==this._symbolFader){const e=(e,t)=>{e.allSymbolsFadingOut=!0,e.lastOpacityUpdate=t,l(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,hasClipping:!!this._clippingInfos}}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,state:s}=e,r=this._styleRepository;if(!r)return;const i=r.layers,l=this._displayInfo.scaleToZoom(s.scale);r.backgroundBucketIds.length>0&&(e.renderPass="background",this._renderBackgroundLayers(e,r.backgroundBucketIds,l)),super.renderChildren(e),1===e.drawPhase&&this._fade(l,s);const o=this.children.filter(e=>e.visible&&e.hasData());if(!o||0===o.length)return t.bindVAO(null),t.setStencilTestEnabled(!0),void t.setBlendingEnabled(!0);for(const n of o)n.triangleCount=0;t.setStencilWriteMask(0),t.setColorMask(!0,!0,!0,!0),t.setStencilOp(7680,7680,7681),t.setStencilTestEnabled(!0),t.setBlendingEnabled(!1),t.setDepthTestEnabled(!0),t.setDepthWriteEnabled(!0),t.setDepthFunction(515),t.setClearDepth(1),t.clear(256),e.renderPass="opaque";for(let n=i.length-1;n>=0;n--)this._renderStyleLayer(i[n],e,o);t.setDepthWriteEnabled(!1),t.setBlendingEnabled(!0),t.setBlendFunctionSeparate(1,771,1,771),e.renderPass="translucent";for(let n=0;n<i.length;n++)this._renderStyleLayer(i[n],e,o);t.bindVAO(null),t.setStencilTestEnabled(!0),t.setBlendingEnabled(!0);for(const n of o)n.debugInfo.display.triangleCount=n.triangleCount}_fade(e,t){null!=this._symbolFader&&(this._symbolFader.update(e,t)||this.requestRender())}_renderStyleLayer(e,t,s){const{displayLevel:r,painter:i,renderPass:l}=t;if(void 0===e)return;const o=e.getLayoutProperty("visibility");if(o&&1===o.getValue())return;let n;switch(e.type){case 0:return;case 1:if("opaque"!==l&&"translucent"!==t.renderPass)return;n="vtlFill";break;case 2:if("translucent"!==l)return;n="vtlLine";break;case 4:if("translucent"!==l)return;n="vtlCircle";break;case 3:if("translucent"!==l)return;n="vtlSymbol"}if(s=3===e.type?s.filter(e=>e.decluttered):s.filter(e=>e.neededForCoverage),"vtlSymbol"!==n&&(0===s.length||void 0!==e.minzoom&&e.minzoom>=r+c||void 0!==e.maxzoom&&e.maxzoom<r-c))return;const a=e.uid;t.styleLayerUID=a,t.styleLayer=e;for(const d of s)if(d.layerData.has(a)){i.renderObjects(t,s,n);break}}_renderBackgroundLayers(t,i,l){const{context:n,painter:c,state:u}=t,y=this._styleRepository;let p=!1;for(const e of i){if(0===y.getLayerById(e).type&&h(y.getLayerById(e),l)){p=!0;break}}if(!p)return;const m=this.tileInfoView,f=m.getTileCoverage(t.state,0,!0,"smallest"),{spans:g,lodInfo:b}=f,{level:_}=b,F=e(),v=[];if(this._renderPasses){const e=this._renderPasses[0];null!=this._clippingInfos&&(e.brushes[0].prepareState(t),e.brushes[0].drawMany(t,this._clippingInfos))}const C=this._backgroundTiles;let R,T=0;for(const{row:a,colFrom:h,colTo:I}of g)for(let t=h;t<=I;t++){if(T<C.length)R=C[T],R.key.set(_,a,b.normalizeCol(t),b.getWorldForColumn(t)),m.getTileBounds(F,R.key,!1),R.x=F[0],R.y=F[3],R.resolution=m.getTileResolution(_);else{const i=new d(_,a,b.normalizeCol(t),b.getWorldForColumn(t)),l=m.getTileBounds(e(),i),n=m.getTileResolution(_);R=new o(i,n,l[0],l[3],r,r,s,s),C.push(R)}R.setTransform(u),v.push(R),T++}n.setStencilWriteMask(0),n.setColorMask(!0,!0,!0,!0),n.setStencilOp(7680,7680,7681),n.setStencilFunction(514,0,255),n.setStencilTestEnabled(!0);for(const e of i){const s=y.getLayerById(e);0===s.type&&h(s,l)&&(t.styleLayerUID=s.uid,t.styleLayer=s,c.renderObjects(t,v,"vtlBackground"))}a.pool.release(f)}_computeDisplayInfoView(e){let s=e.tileInfo.lods[0].scale;const i=Math.max(25,e.tileInfo.lods.length),l=[];for(let t=0;t<=i;t++)l.push(s),s/=2;this._displayInfo=t.create({scales:l,size:r,spatialReference:e.spatialReference,numLODs:i})}}export{u as VectorTileContainer};
5
+ import{create as e}from"../../../../geometry/support/aaBoundingRect.js";import t from"../../../../layers/support/TileInfo.js";import{tileCoordSize as s,tilePixelSize as r}from"./constants.js";import{SymbolFader as l}from"./decluttering/SymbolFader.js";import{writeOpacityToBuffers as i}from"./decluttering/util.js";import{RenderableTile as o}from"../webgl/RenderableTile.js";import n from"../webgl/TileContainer.js";import a from"../../tiling/TileCoverage.js";import d from"../../tiling/TileKey.js";const c=1e-6;function u(e,t){if(e){const s=e.getLayoutProperty("visibility");if(!s||1!==s.getValue()&&(void 0===e.minzoom||e.minzoom<t+c)&&(void 0===e.maxzoom||e.maxzoom>=t-c))return!0}return!1}class y extends n{constructor(e){super(e),this._backgroundTiles=[],this._computeDisplayInfoView(e)}destroy(){super.destroy(),this.removeAllChildren(),this._spriteMosaic?.dispose(),this._spriteMosaic=null,this._glyphMosaic?.dispose(),this._glyphMosaic=null,null!=this._symbolFader&&(this._symbolFader.clear(),this._symbolFader=null),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,o){if(this._spriteMosaic=e,this._glyphMosaic=t,this._styleRepository=r,this.tileInfoView=o,this._computeDisplayInfoView(o),null==this._symbolFader){const e=(e,t)=>{e.allSymbolsFadingOut=!0,e.lastOpacityUpdate=t,i(e,t,!0),e.decluttered=!0,e.requestRender()};this._symbolFader=new l("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,state:s}=e,r=this._styleRepository;if(!r)return;const l=r.layers,i=this._displayInfo.scaleToZoom(s.scale);r.backgroundBucketIds.length>0&&(e.renderPass="background",this._renderBackgroundLayers(e,r.backgroundBucketIds,i)),super.renderChildren(e),1===e.drawPhase&&this._fade(i,s);const o=this.children.filter(e=>e.visible&&e.hasData());if(!o||0===o.length)return t.bindVAO(null),t.setStencilTestEnabled(!0),void t.setBlendingEnabled(!0);for(const n of o)n.triangleCount=0;t.setStencilWriteMask(0),t.setColorMask(!0,!0,!0,!0),t.setStencilOp(7680,7680,7681),t.setStencilTestEnabled(!0),t.setBlendingEnabled(!1),t.setDepthTestEnabled(!0),t.setDepthWriteEnabled(!0),t.setDepthFunction(515),t.setClearDepth(1),t.clear(256),e.renderPass="opaque";for(let n=l.length-1;n>=0;n--)this._renderStyleLayer(l[n],e,o);t.setDepthWriteEnabled(!1),t.setBlendingEnabled(!0),t.setBlendFunctionSeparate(1,771,1,771),e.renderPass="translucent";for(let n=0;n<l.length;n++)this._renderStyleLayer(l[n],e,o);t.bindVAO(null),t.setStencilTestEnabled(!0),t.setBlendingEnabled(!0);for(const n of o)n.debugInfo.display.triangleCount=n.triangleCount}_fade(e,t){null!=this._symbolFader&&(this._symbolFader.update(e,t)||this.requestRender())}_renderStyleLayer(e,t,s){const{displayLevel:r,painter:l,renderPass:i}=t;if(void 0===e)return;const o=e.getLayoutProperty("visibility");if(o&&1===o.getValue())return;let n;switch(e.type){case 0:return;case 1:if("opaque"!==i&&"translucent"!==t.renderPass)return;n="vtlFill";break;case 2:if("translucent"!==i)return;n="vtlLine";break;case 4:if("translucent"!==i)return;n="vtlCircle";break;case 3:if("translucent"!==i)return;n="vtlSymbol"}if(s=3===e.type?s.filter(e=>e.decluttered):s.filter(e=>e.neededForCoverage),"vtlSymbol"!==n&&(0===s.length||void 0!==e.minzoom&&e.minzoom>=r+c||void 0!==e.maxzoom&&e.maxzoom<r-c))return;const a=e.uid;t.styleLayerUID=a,t.styleLayer=e;for(const d of s)if(d.layerData.has(a)){l.renderObjects(t,s,n);break}}_renderBackgroundLayers(t,l,i){const{context:n,painter:c,state:y}=t,h=this._styleRepository;let p=!1;for(const e of l){if(0===h.getLayerById(e).type&&u(h.getLayerById(e),i)){p=!0;break}}if(!p)return;const m=this.tileInfoView,f=m.getTileCoverage(t.state,0,!0,"smallest"),{spans:g,lodInfo:b}=f,{level:_}=b,F=e(),v=[],C=this._backgroundTiles;let R,T=0;for(const{row:a,colFrom:u,colTo:k}of g)for(let t=u;t<=k;t++){if(T<C.length)R=C[T],R.key.set(_,a,b.normalizeCol(t),b.getWorldForColumn(t)),m.getTileBounds(F,R.key,!1),R.x=F[0],R.y=F[3],R.resolution=m.getTileResolution(_);else{const l=new d(_,a,b.normalizeCol(t),b.getWorldForColumn(t)),i=m.getTileBounds(e(),l),n=m.getTileResolution(_);R=new o(l,n,i[0],i[3],r,r,s,s),C.push(R)}R.setTransform(y),v.push(R),T++}n.setStencilWriteMask(0),n.setColorMask(!0,!0,!0,!0),n.setStencilOp(7680,7680,7681),n.setStencilFunction(514,0,255),n.setStencilTestEnabled(!0);for(const e of l){const s=h.getLayerById(e);0===s.type&&u(s,i)&&(t.styleLayerUID=s.uid,t.styleLayer=s,c.renderObjects(t,v,"vtlBackground"))}a.pool.release(f)}_computeDisplayInfoView(e){let s=e.tileInfo.lods[0].scale;const l=Math.max(25,e.tileInfo.lods.length),i=[];for(let t=0;t<=l;t++)i.push(s),s/=2;this._displayInfo=t.create({scales:i,size:r,spatialReference:e.spatialReference,numLODs:l})}}export{y as VectorTileContainer};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- 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{tilePixelSize as o,tileCoordSize 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,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,hasClipping:!1,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),0,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 y=a[0]-h.getLevelShift(a[0]),_=this._renderParams;_.context=n,_.painter=d,_.glyphMosaic=d.glyphMosaic,_.spriteMosaic=d.spriteMosaic,_.pixelRatio=g*f,_.displayLevel=y,_.requiredLevel=y;const b=h.getScale(a[0]),[S,M]=h.getOffset(a,u*b),w=c*u*b/p,R=o.transforms.displayViewScreenMat3;R[0]=w,R[4]=-w,R[6]=-1-S-m[0]*u*2,R[7]=1+M+(1-m[1])*u*2-2;const T=_.state,P=p/f;T.size[0]=P,T.size[1]=P,T.pixelRatio=f,T.rotation=(360-this._heading)%360;const j=2/P;e(T.displayViewMat3,j,0,0,0,-j,0,-1,1,1);const x=t(T.displayMat3),L=r(this._heading);i(x,x,[P/2,P/2]),s(x,x,L),i(x,x,[-P/2,-P/2]),l(x,T.displayViewMat3,x)}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.transform=null,this.inverseTransform=null,this.viewMat2d=null,this.viewMat3=null,this.id=0,this.extent=null,this.center=null,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};
5
+ 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{tilePixelSize as o,tileCoordSize 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,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),0,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 y=a[0]-h.getLevelShift(a[0]),_=this._renderParams;_.context=n,_.painter=d,_.glyphMosaic=d.glyphMosaic,_.spriteMosaic=d.spriteMosaic,_.pixelRatio=g*f,_.displayLevel=y,_.requiredLevel=y;const b=h.getScale(a[0]),[S,M]=h.getOffset(a,u*b),w=c*u*b/p,R=o.transforms.displayViewScreenMat3;R[0]=w,R[4]=-w,R[6]=-1-S-m[0]*u*2,R[7]=1+M+(1-m[1])*u*2-2;const T=_.state,P=p/f;T.size[0]=P,T.size[1]=P,T.pixelRatio=f,T.rotation=(360-this._heading)%360;const j=2/P;e(T.displayViewMat3,j,0,0,0,-j,0,-1,1,1);const x=t(T.displayMat3),L=r(this._heading);i(x,x,[P/2,P/2]),s(x,x,L),i(x,x,[-P/2,-P/2]),l(x,T.displayViewMat3,x)}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.transform=null,this.inverseTransform=null,this.viewMat2d=null,this.viewMat3=null,this.id=0,this.extent=null,this.center=null,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,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import t from"../../../../../core/ArrayPool.js";import{e}from"../../../../../chunks/earcut.js";import{triangulate as i}from"../../../../../geometry/libtess.js";import{Point as r}from"../../../../../geometry/support/TileClipper.js";import l from"./BaseBucket.js";class n extends l{constructor(t,e,i,r,l,n,s){super(t,e,i),this.type=1,this._patternMap=new Map,this._fillVertexBuffer=r,this._fillIndexBuffer=l,this._outlineVertexBuffer=n,this._outlineIndexBuffer=s}get fillIndexStart(){return this._fillIndexStart}get fillIndexCount(){return this._fillIndexCount}get outlineIndexStart(){return this._outlineIndexStart}get outlineIndexCount(){return this._outlineIndexCount}getResources(t,e,i){const r=this.layer,l=this.zoom,n=r.getPaintProperty("fill-pattern");if(n)if(n.isDataDriven)for(const s of this._features)e(n.getValue(l,s),!0);else e(n.getValue(l),!0)}processFeatures(t){this._fillIndexStart=3*this._fillIndexBuffer.index,this._fillIndexCount=0,this._outlineIndexStart=3*this._outlineIndexBuffer.index,this._outlineIndexCount=0;const e=this.layer,i=this.zoom,{fillMaterial:r,outlineMaterial:l,hasDataDrivenFill:n,hasDataDrivenOutline:s}=e;t&&t.setExtent(this.layerExtent);const o=e.getPaintProperty("fill-pattern"),a=o?.isDataDriven;let f=!o&&e.getPaintValue("fill-antialias",i);if(e.outlineUsesFillColor){if(f&&!e.hasDataDrivenOpacity){const t=e.getPaintValue("fill-opacity",i),r=e.getPaintValue("fill-opacity",i+1);t<1&&r<1&&(f=!1)}if(f&&!e.hasDataDrivenColor){const t=e.getPaintValue("fill-color",i),r=e.getPaintValue("fill-color",i+1);t[3]<1&&r[3]<1&&(f=!1)}}const u=this._features,d=t?.validateTessellation;if(a){const n=[];for(const a of u){const u=o.getValue(i,a),h=this._spriteInfo[u];if(!h?.rect)continue;const x=r.encodeAttributes(a,i,e,h),c=f&&s?l.encodeAttributes(a,i,e):[],_=a.getGeometry(t);n.push({ddFillAttributes:x,ddOutlineAttributes:c,page:h.page,geometry:_}),n.sort((t,e)=>t.page-e.page);for(const{ddFillAttributes:t,ddOutlineAttributes:i,page:r,geometry:l}of n)this._processFeature(l,f,e.outlineUsesFillColor,t,i,d,r)}}else for(const h of u){const o=n?r.encodeAttributes(h,i,e):null,a=f&&s?l.encodeAttributes(h,i,e):null,u=h.getGeometry(t);this._processFeature(u,f,e.outlineUsesFillColor,o,a,d)}}serialize(){let t=10;t+=this.layerUIDs.length,t+=this._fillVertexBuffer.array.length,t+=this._fillIndexBuffer.array.length,t+=this._outlineVertexBuffer.array.length,t+=this._outlineIndexBuffer.array.length,t+=3*this._patternMap.size+1;const e=new Uint32Array(t),i=new Int32Array(e.buffer);let r=0;e[r++]=this.type,e[r++]=this.layerUIDs.length;for(let s=0;s<this.layerUIDs.length;s++)e[r++]=this.layerUIDs[s];e[r++]=this._fillIndexStart,e[r++]=this._fillIndexCount,e[r++]=this._outlineIndexStart,e[r++]=this._outlineIndexCount;const l=this._patternMap,n=l.size;if(e[r++]=n,n>0)for(const[s,[o,a]]of l)e[r++]=s,e[r++]=o,e[r++]=a;e[r++]=this._fillVertexBuffer.array.length;for(let s=0;s<this._fillVertexBuffer.array.length;s++)i[r++]=this._fillVertexBuffer.array[s];e[r++]=this._fillIndexBuffer.array.length;for(let s=0;s<this._fillIndexBuffer.array.length;s++)e[r++]=this._fillIndexBuffer.array[s];e[r++]=this._outlineVertexBuffer.array.length;for(let s=0;s<this._outlineVertexBuffer.array.length;s++)i[r++]=this._outlineVertexBuffer.array[s];e[r++]=this._outlineIndexBuffer.array.length;for(let s=0;s<this._outlineIndexBuffer.array.length;s++)e[r++]=this._outlineIndexBuffer.array[s];return e.buffer}_processFeature(t,e,i,r,l,s,o){if(!t)return;const a=t.length,f=!l||0===l.length;if(e&&(!i||f))for(let n=0;n<a;n++)this._processOutline(t[n],l);const u=32;let d;for(let h=0;h<a;h++){const e=n._area(t[h]);e>u?(void 0!==d&&this._processFill(t,d,r,s,o),d=[h]):e<-u&&void 0!==d&&d.push(h)}void 0!==d&&this._processFill(t,d,r,s,o)}_processOutline(t,e){const i=this._outlineVertexBuffer,l=this._outlineIndexBuffer,n=l.index;let s,o,a;const f=new r(0,0),u=new r(0,0),d=new r(0,0);let h=-1,x=-1,c=-1,_=-1,y=-1,g=!1;const p=0;let I=t.length;if(I<2)return;const B=t[p];let V=t[I-1];for(;I&&V.isEqual(B);)--I,V=t[I-1];if(!(I-p<2)){for(let r=p;r<I;++r){r===p?(s=t[I-1],o=t[p],a=t[p+1],f.assignSub(o,s),f.normalize(),f.rightPerpendicular()):(s=o,o=a,a=r!==I-1?t[r+1]:t[p],f.assign(u));const n=this._isClipEdge(s,o);-1===_&&(g=n),u.assignSub(a,o),u.normalize(),u.rightPerpendicular();const B=f.x*u.y-f.y*u.x;d.assignAdd(f,u),d.normalize();const V=-d.x*-f.x+-d.y*-f.y;let m=Math.abs(0!==V?1/V:1);m>8&&(m=8),B>=0?(c=i.add(o.x,o.y,f.x,f.y,0,1,e),-1===_&&(_=c),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c),x=i.add(o.x,o.y,m*-d.x,m*-d.y,0,-1,e),-1===y&&(y=x),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c),h=x,x=c,c=i.add(o.x,o.y,d.x,d.y,0,1,e),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c),x=i.add(o.x,o.y,u.x,u.y,0,1,e),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c)):(c=i.add(o.x,o.y,m*d.x,m*d.y,0,1,e),-1===_&&(_=c),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c),x=i.add(o.x,o.y,-f.x,-f.y,0,-1,e),-1===y&&(y=x),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c),h=x,x=c,c=i.add(o.x,o.y,-d.x,-d.y,0,-1,e),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c),h=i.add(o.x,o.y,-u.x,-u.y,0,-1,e),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c))}h>=0&&x>=0&&_>=0&&!g&&l.add(h,x,_),h>=0&&_>=0&&y>=0&&!g&&l.add(h,y,_),this._outlineIndexCount+=3*(l.index-n)}}_processFill(r,l,n,s,o){s=!0;let a;l.length>1&&(a=[]);let f=0;for(const t of l)0!==f&&a.push(f),f+=r[t].length;const u=2*f,d=t.acquire();for(const t of l){const e=r[t],i=e.length;for(let t=0;t<i;++t)d.push(e[t].x,e[t].y)}const h=e(d,a,2);if(s&&e.deviation(d,a,2,h)>0){const t=l.map(t=>r[t].length),{buffer:e,vertexCount:s}=i(d,t);if(s>0){const t=this._fillVertexBuffer.index;for(let i=0;i<s;i++)this._fillVertexBuffer.add(e[2*i],e[2*i+1],n);for(let e=0;e<s;e+=3){const i=t+e;this._fillIndexBuffer.add(i,i+1,i+2)}if(void 0!==o){const t=this._patternMap,e=t.get(o);e?e[1]+=s:t.set(o,[this._fillIndexStart+this._fillIndexCount,s])}this._fillIndexCount+=s}}else{const t=h.length;if(t>0){const e=this._fillVertexBuffer.index;let i=0;for(;i<u;)this._fillVertexBuffer.add(d[i++],d[i++],n);let r=0;for(;r<t;)this._fillIndexBuffer.add(e+h[r++],e+h[r++],e+h[r++]);if(void 0!==o){const e=this._patternMap,i=e.get(o);i?i[1]+=t:e.set(o,[this._fillIndexStart+this._fillIndexCount,t])}this._fillIndexCount+=t}}t.release(d)}_isClipEdge(t,e){return t.x===e.x?t.x<=-64||t.x>=4160:t.y===e.y&&(t.y<=-64||t.y>=4160)}static _area(t){let e=0;const i=t.length-1;for(let r=0;r<i;r++)e+=(t[r].x-t[r+1].x)*(t[r].y+t[r+1].y);return e+=(t[i].x-t[0].x)*(t[i].y+t[0].y),.5*e}}export{n as default};
5
+ import t from"../../../../../core/ArrayPool.js";import{e}from"../../../../../chunks/earcut.js";import{triangulateF32 as i}from"../../../../../geometry/libtess.js";import{Point as r}from"../../../../../geometry/support/TileClipper.js";import l from"./BaseBucket.js";class n extends l{constructor(t,e,i,r,l,n,s){super(t,e,i),this.type=1,this._patternMap=new Map,this._fillVertexBuffer=r,this._fillIndexBuffer=l,this._outlineVertexBuffer=n,this._outlineIndexBuffer=s}get fillIndexStart(){return this._fillIndexStart}get fillIndexCount(){return this._fillIndexCount}get outlineIndexStart(){return this._outlineIndexStart}get outlineIndexCount(){return this._outlineIndexCount}getResources(t,e,i){const r=this.layer,l=this.zoom,n=r.getPaintProperty("fill-pattern");if(n)if(n.isDataDriven)for(const s of this._features)e(n.getValue(l,s),!0);else e(n.getValue(l),!0)}processFeatures(t){this._fillIndexStart=3*this._fillIndexBuffer.index,this._fillIndexCount=0,this._outlineIndexStart=3*this._outlineIndexBuffer.index,this._outlineIndexCount=0;const e=this.layer,i=this.zoom,{fillMaterial:r,outlineMaterial:l,hasDataDrivenFill:n,hasDataDrivenOutline:s}=e;t&&t.setExtent(this.layerExtent);const o=e.getPaintProperty("fill-pattern"),a=o?.isDataDriven;let f=!o&&e.getPaintValue("fill-antialias",i);if(e.outlineUsesFillColor){if(f&&!e.hasDataDrivenOpacity){const t=e.getPaintValue("fill-opacity",i),r=e.getPaintValue("fill-opacity",i+1);t<1&&r<1&&(f=!1)}if(f&&!e.hasDataDrivenColor){const t=e.getPaintValue("fill-color",i),r=e.getPaintValue("fill-color",i+1);t[3]<1&&r[3]<1&&(f=!1)}}const u=this._features,d=t?.validateTessellation;if(a){const n=[];for(const a of u){const u=o.getValue(i,a),h=this._spriteInfo[u];if(!h?.rect)continue;const x=r.encodeAttributes(a,i,e,h),c=f&&s?l.encodeAttributes(a,i,e):[],_=a.getGeometry(t);n.push({ddFillAttributes:x,ddOutlineAttributes:c,page:h.page,geometry:_}),n.sort((t,e)=>t.page-e.page);for(const{ddFillAttributes:t,ddOutlineAttributes:i,page:r,geometry:l}of n)this._processFeature(l,f,e.outlineUsesFillColor,t,i,d,r)}}else for(const h of u){const o=n?r.encodeAttributes(h,i,e):null,a=f&&s?l.encodeAttributes(h,i,e):null,u=h.getGeometry(t);this._processFeature(u,f,e.outlineUsesFillColor,o,a,d)}}serialize(){let t=10;t+=this.layerUIDs.length,t+=this._fillVertexBuffer.array.length,t+=this._fillIndexBuffer.array.length,t+=this._outlineVertexBuffer.array.length,t+=this._outlineIndexBuffer.array.length,t+=3*this._patternMap.size+1;const e=new Uint32Array(t),i=new Int32Array(e.buffer);let r=0;e[r++]=this.type,e[r++]=this.layerUIDs.length;for(let s=0;s<this.layerUIDs.length;s++)e[r++]=this.layerUIDs[s];e[r++]=this._fillIndexStart,e[r++]=this._fillIndexCount,e[r++]=this._outlineIndexStart,e[r++]=this._outlineIndexCount;const l=this._patternMap,n=l.size;if(e[r++]=n,n>0)for(const[s,[o,a]]of l)e[r++]=s,e[r++]=o,e[r++]=a;e[r++]=this._fillVertexBuffer.array.length;for(let s=0;s<this._fillVertexBuffer.array.length;s++)i[r++]=this._fillVertexBuffer.array[s];e[r++]=this._fillIndexBuffer.array.length;for(let s=0;s<this._fillIndexBuffer.array.length;s++)e[r++]=this._fillIndexBuffer.array[s];e[r++]=this._outlineVertexBuffer.array.length;for(let s=0;s<this._outlineVertexBuffer.array.length;s++)i[r++]=this._outlineVertexBuffer.array[s];e[r++]=this._outlineIndexBuffer.array.length;for(let s=0;s<this._outlineIndexBuffer.array.length;s++)e[r++]=this._outlineIndexBuffer.array[s];return e.buffer}_processFeature(t,e,i,r,l,s,o){if(!t)return;const a=t.length,f=!l||0===l.length;if(e&&(!i||f))for(let n=0;n<a;n++)this._processOutline(t[n],l);const u=32;let d;for(let h=0;h<a;h++){const e=n._area(t[h]);e>u?(void 0!==d&&this._processFill(t,d,r,s,o),d=[h]):e<-u&&void 0!==d&&d.push(h)}void 0!==d&&this._processFill(t,d,r,s,o)}_processOutline(t,e){const i=this._outlineVertexBuffer,l=this._outlineIndexBuffer,n=l.index;let s,o,a;const f=new r(0,0),u=new r(0,0),d=new r(0,0);let h=-1,x=-1,c=-1,_=-1,y=-1,g=!1;const p=0;let I=t.length;if(I<2)return;const B=t[p];let V=t[I-1];for(;I&&V.isEqual(B);)--I,V=t[I-1];if(!(I-p<2)){for(let r=p;r<I;++r){r===p?(s=t[I-1],o=t[p],a=t[p+1],f.assignSub(o,s),f.normalize(),f.rightPerpendicular()):(s=o,o=a,a=r!==I-1?t[r+1]:t[p],f.assign(u));const n=this._isClipEdge(s,o);-1===_&&(g=n),u.assignSub(a,o),u.normalize(),u.rightPerpendicular();const B=f.x*u.y-f.y*u.x;d.assignAdd(f,u),d.normalize();const V=-d.x*-f.x+-d.y*-f.y;let m=Math.abs(0!==V?1/V:1);m>8&&(m=8),B>=0?(c=i.add(o.x,o.y,f.x,f.y,0,1,e),-1===_&&(_=c),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c),x=i.add(o.x,o.y,m*-d.x,m*-d.y,0,-1,e),-1===y&&(y=x),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c),h=x,x=c,c=i.add(o.x,o.y,d.x,d.y,0,1,e),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c),x=i.add(o.x,o.y,u.x,u.y,0,1,e),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c)):(c=i.add(o.x,o.y,m*d.x,m*d.y,0,1,e),-1===_&&(_=c),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c),x=i.add(o.x,o.y,-f.x,-f.y,0,-1,e),-1===y&&(y=x),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c),h=x,x=c,c=i.add(o.x,o.y,-d.x,-d.y,0,-1,e),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c),h=i.add(o.x,o.y,-u.x,-u.y,0,-1,e),h>=0&&x>=0&&c>=0&&!n&&l.add(h,x,c))}h>=0&&x>=0&&_>=0&&!g&&l.add(h,x,_),h>=0&&_>=0&&y>=0&&!g&&l.add(h,y,_),this._outlineIndexCount+=3*(l.index-n)}}_processFill(r,l,n,s,o){s=!0;let a;l.length>1&&(a=[]);let f=0;for(const t of l)0!==f&&a.push(f),f+=r[t].length;const u=2*f,d=t.acquire();for(const t of l){const e=r[t],i=e.length;for(let t=0;t<i;++t)d.push(e[t].x,e[t].y)}const h=e(d,a,2);if(s&&e.deviation(d,a,2,h)>0){const t=l.map(t=>r[t].length),{buffer:e,vertexCount:s}=i(d,t);if(s>0){const t=this._fillVertexBuffer.index;for(let i=0;i<s;i++)this._fillVertexBuffer.add(e[2*i],e[2*i+1],n);for(let e=0;e<s;e+=3){const i=t+e;this._fillIndexBuffer.add(i,i+1,i+2)}if(void 0!==o){const t=this._patternMap,e=t.get(o);e?e[1]+=s:t.set(o,[this._fillIndexStart+this._fillIndexCount,s])}this._fillIndexCount+=s}}else{const t=h.length;if(t>0){const e=this._fillVertexBuffer.index;let i=0;for(;i<u;)this._fillVertexBuffer.add(d[i++],d[i++],n);let r=0;for(;r<t;)this._fillIndexBuffer.add(e+h[r++],e+h[r++],e+h[r++]);if(void 0!==o){const e=this._patternMap,i=e.get(o);i?i[1]+=t:e.set(o,[this._fillIndexStart+this._fillIndexCount,t])}this._fillIndexCount+=t}}t.release(d)}_isClipEdge(t,e){return t.x===e.x?t.x<=-64||t.x>=4160:t.y===e.y&&(t.y<=-64||t.y>=4160)}static _area(t){let e=0;const i=t.length-1;for(let r=0;r<i;r++)e+=(t[r].x-t[r+1].x)*(t[r].y+t[r+1].y);return e+=(t[i].x-t[0].x)*(t[i].y+t[0].y),.5*e}}export{n as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import t from"../../../../core/Error.js";import has from"../../../../core/has.js";import e from"../../../../core/Logger.js";import{estimateNumberArrayMemory as i}from"../../../../core/memoryEstimations.js";import{dataDrivenUnit2 as s,dataDrivenUnit1 as r,dataDrivenUnit0 as a,visualVariableUnit as n,localTimeOriginUnit as u,gpgpuUnit as h,animationUnit as o,filterFlagsUnit as d}from"./definitions.js";import{getDisplayIdTexel as l}from"./DisplayId.js";import{getPixelArrayCtor as p,getPixelBytes as g}from"./Utils.js";import{FramebufferObject as _}from"../../../webgl/FramebufferObject.js";import{Texture as c}from"../../../webgl/Texture.js";import{TextureDescriptor as x}from"../../../webgl/TextureDescriptor.js";const f=()=>e.getLogger("esri.views.2d.engine.webgl.AttributeStoreView");class b{constructor(t,e,i){this._texture=null,this._lastTexture=null,this._fbos={},this.texelSize=4;const{buffer:s,pixelType:r,textureOnly:a}=t,n=p(r);this.blockIndex=i,this.pixelType=r,this.size=e,this.textureOnly=a,a||(this.data=new n(s)),this._resetRange()}destroy(){this._texture?.dispose();for(const t in this._fbos){const e=this._fbos[t];e&&("0"===t&&e.detachColorTexture(),e.dispose()),this._fbos[t]=null}this._texture=null}get _textureDesc(){const t=new x(this.size);return t.wrapMode=33071,t.samplingMode=9728,t.dataType=this.pixelType,t}get usedMemory(){return null!=this.data?i(this.data):0}setData(t,e,i){const s=l(t),r=this.data,a=s*this.texelSize+e;!r||a>=r.length||(r[a]=i,this.dirtyStart=Math.min(this.dirtyStart,s),this.dirtyEnd=Math.max(this.dirtyEnd,s))}getData(t,e){if(null==this.data)return null;const i=l(t)*this.texelSize+e;return!this.data||i>=this.data.length?null:this.data[i]}getTexture(t){return this._texture??this._initTexture(t)}getFBO(t,e=0){if(!this._fbos[e]){const i=0===e?this.getTexture(t):this._textureDesc;this._fbos[e]=new _(t,i)}return this._fbos[e]}get hasDirty(){const t=this.dirtyStart;return this.dirtyEnd>=t}updateTexture(e,i){try{const s=this.dirtyStart,r=this.dirtyEnd;if(!this.hasDirty)return;has("esri-2d-update-debug")&&console.debug(`Version[${i}] AttributeStoreView.updateTexture`,{start:s,end:r,firstBytes:new Uint8Array(this.data.buffer.slice(0,16)),block:this}),this._resetRange();const a=this.data.buffer,n=this.getTexture(e),u=4,h=(s-s%this.size)/this.size,o=(r-r%this.size)/this.size,d=h,l=this.size,g=o,_=h*this.size*u,c=(l+g*this.size)*u-_,x=p(this.pixelType),b=new x(a,_*x.BYTES_PER_ELEMENT,c),m=this.size,T=g-d+1;if(T>this.size)return void f().error(new t("mapview-webgl","Out-of-bounds index when updating AttributeData"));n.updateData(0,0,d,m,T,b)}catch(s){}}update(t){const{data:e,start:i,end:s}=t;if(null!=e&&null!=this.data){const s=this.data,r=i*this.texelSize;for(let i=0;i<e.length;i++){const a=1<<i%this.texelSize;t.layout&a&&(s[r+i]=e[i])}}this.dirtyStart=Math.min(this.dirtyStart,i),this.dirtyEnd=Math.max(this.dirtyEnd,s)}resize(t,e){const i=this.size;if(this.size=e,this.textureOnly)return void(i!==this.size&&(this._lastTexture=this._texture,this._texture=null));const s=p(this.pixelType);this.destroy(),this.data=new s(t.buffer)}_resetRange(){this.dirtyStart=2147483647,this.dirtyEnd=0}_initTexture(t){const e=new c(t,this._textureDesc,this.data??void 0);if(null!=this._lastTexture&&this._fbos[0]){const i=this._lastTexture.descriptor.width,s=this._lastTexture.descriptor.height,r=this._lastTexture.descriptor.dataType,a=this._lastTexture.descriptor.pixelFormat,n=this.getFBO(t),u=g(r),h=new(p(r))(new ArrayBuffer(i*s*u*this.texelSize)),o=t.getBoundFramebufferObject(),{x:d,y:l,width:_,height:c}=t.getViewport();t.bindFramebuffer(n),n.readPixels(0,0,i,s,a,r,h),e.updateData(0,0,0,2*i,s/2,h),t.setViewport(d,l,_,c),t.bindFramebuffer(o)}return this.destroy(),this._texture=e,this._texture}}class m{constructor(){this.size=0,this._pendingAttributeUpdates=[],this._version=0,this._epoch=0,this._locked=!1}get locked(){return this._locked}get usedMemory(){let t=0;for(const e of this._data??[])null!=e&&(t+=e.usedMemory);return t}_initialize(t){if(!t)throw new Error("InternalError: initArgs must be defined");const e=t.blockDescriptors;if(this.size=t.blockSize,has("esri-2d-update-debug")&&console.debug("AttributeStoreView.initialize",{message:t}),null==this._data)this._data=e.map((t,e)=>null!=t?new b(t,this.size,e):null);else for(let i=0;i<this._data.length;i++){const t=this._data[i],s=e[i];null!=s&&(null==t?this._data[i]=new b(s,this.size,i):t.resize(s,this.size))}}destroy(){for(const t of this._data??[])t?.destroy();this._defaultTexture?.dispose(),this._defaultTexture=null,this._pendingAttributeUpdates=[]}isEmpty(){return null==this._data}getBlock(t){if(null==this._data)return null;return this._data[t]}setLabelMinZoom(t,e){this.setData(t,0,1,e)}setLocalTimeOrigin(t,e){this.setData(t,7,0,e)}getLabelMinZoom(t){return this.getData(t,0,1,255)}getFilterFlags(t){return this.getData(t,0,0,0)}getVisualVariableData(t,e){return this.getData(t,3,e,0)}getData(t,e,i,s){if(!this._data)return 0;const r=this._data[e];if(null==r)return 0;const a=r.getData(t,i);return null!=a?a:s}setData(t,e,i,s){this._data[e].setData(t,i,s)}lockTextureUploads(){this._locked=!0}unlockTextureUploads(){this._locked=!1,this.update()}requestUpdate(t){this._version=t.version,this._pendingAttributeUpdates.push(t),has("esri-2d-update-debug")&&console.debug(`Version[${this._version}] AttributeStoreView.requestUpdate`,{message:t})}get currentEpoch(){return this._epoch}get hasPendingUpdates(){return this._pendingAttributeUpdates.length>0}update(){if(this._locked)return;const t=this._pendingAttributeUpdates;this._pendingAttributeUpdates=[];for(const e of t){const{blockData:t,initArgs:i,sendUpdateEpoch:s,version:r}=e;has("esri-2d-update-debug")&&console.debug(`Version[${this._version}] Epoch[${s}] AttributeStoreView.applyUpdate`),this._version=r,this._epoch=s,null!=i&&this._initialize(i);const a=this._data;for(let e=0;e<t.length;e++){const i=t[e],s=a[e];null!=s&&null!=i&&(has("esri-2d-update-debug")&&console.debug(`Version[${this._version}] CpuBlock[${e}] AttributeStoreView.update`,{block:i}),s.update(i))}}}getUniforms(t){return{filterFlags:{texture:this._getTexture(t,0),unit:d},animation:{texture:this._getTexture(t,1),unit:o},gpgpu:{texture:this._getTexture(t,2),unit:h},localTimeOrigin:{texture:this._getTexture(t,7),unit:u},visualVariableData:{texture:this._getTexture(t,3),unit:n},dataDriven0:{texture:this._getTexture(t,4),unit:a},dataDriven1:{texture:this._getTexture(t,5),unit:r},dataDriven2:{texture:this._getTexture(t,6),unit:s},size:this.size}}_getTexture(t,e){const i=this._data?.[e];return i?(i.updateTexture(t,this._version),i.getTexture(t)):this._getDefaultTexture(t)}_getDefaultTexture(t){if(null==this._defaultTexture){const e=new x(1);e.wrapMode=33071,e.samplingMode=9728,this._defaultTexture=new c(t,e,new Uint8Array(4))}return this._defaultTexture}}export{m as AttributeStoreView};
5
+ import t from"../../../../core/Error.js";import has from"../../../../core/has.js";import e from"../../../../core/Logger.js";import{estimateNumberArrayMemory as i}from"../../../../core/memoryEstimations.js";import{dataDrivenUnit2 as s,dataDrivenUnit1 as r,dataDrivenUnit0 as a,visualVariableUnit as n,localTimeOriginUnit as u,gpgpuUnit as h,animationUnit as o,filterFlagsUnit as d}from"./definitions.js";import{getDisplayIdTexel as l}from"./DisplayId.js";import{getPixelArrayCtor as p,getPixelBytes as g}from"./Utils.js";import{FramebufferObject as _}from"../../../webgl/FramebufferObject.js";import c from"../../../webgl/Texture.js";import{TextureDescriptor as x}from"../../../webgl/TextureDescriptor.js";const f=()=>e.getLogger("esri.views.2d.engine.webgl.AttributeStoreView");class b{constructor(t,e,i){this._texture=null,this._lastTexture=null,this._fbos={},this.texelSize=4;const{buffer:s,pixelType:r,textureOnly:a}=t,n=p(r);this.blockIndex=i,this.pixelType=r,this.size=e,this.textureOnly=a,a||(this.data=new n(s)),this._resetRange()}destroy(){this._texture?.dispose();for(const t in this._fbos){const e=this._fbos[t];e&&("0"===t&&e.detachColorTexture(),e.dispose()),this._fbos[t]=null}this._texture=null}get _textureDesc(){const t=new x(this.size);return t.wrapMode=33071,t.samplingMode=9728,t.dataType=this.pixelType,t}get usedMemory(){return null!=this.data?i(this.data):0}setData(t,e,i){const s=l(t),r=this.data,a=s*this.texelSize+e;!r||a>=r.length||(r[a]=i,this.dirtyStart=Math.min(this.dirtyStart,s),this.dirtyEnd=Math.max(this.dirtyEnd,s))}getData(t,e){if(null==this.data)return null;const i=l(t)*this.texelSize+e;return!this.data||i>=this.data.length?null:this.data[i]}getTexture(t){return this._texture??this._initTexture(t)}getFBO(t,e=0){if(!this._fbos[e]){const i=0===e?this.getTexture(t):this._textureDesc;this._fbos[e]=new _(t,i)}return this._fbos[e]}get hasDirty(){const t=this.dirtyStart;return this.dirtyEnd>=t}updateTexture(e,i){try{const s=this.dirtyStart,r=this.dirtyEnd;if(!this.hasDirty)return;has("esri-2d-update-debug")&&console.debug(`Version[${i}] AttributeStoreView.updateTexture`,{start:s,end:r,firstBytes:new Uint8Array(this.data.buffer.slice(0,16)),block:this}),this._resetRange();const a=this.data.buffer,n=this.getTexture(e),u=4,h=(s-s%this.size)/this.size,o=(r-r%this.size)/this.size,d=h,l=this.size,g=o,_=h*this.size*u,c=(l+g*this.size)*u-_,x=p(this.pixelType),b=new x(a,_*x.BYTES_PER_ELEMENT,c),m=this.size,T=g-d+1;if(T>this.size)return void f().error(new t("mapview-webgl","Out-of-bounds index when updating AttributeData"));n.updateData(0,0,d,m,T,b)}catch(s){}}update(t){const{data:e,start:i,end:s}=t;if(null!=e&&null!=this.data){const s=this.data,r=i*this.texelSize;for(let i=0;i<e.length;i++){const a=1<<i%this.texelSize;t.layout&a&&(s[r+i]=e[i])}}this.dirtyStart=Math.min(this.dirtyStart,i),this.dirtyEnd=Math.max(this.dirtyEnd,s)}resize(t,e){const i=this.size;if(this.size=e,this.textureOnly)return void(i!==this.size&&(this._lastTexture=this._texture,this._texture=null));const s=p(this.pixelType);this.destroy(),this.data=new s(t.buffer)}_resetRange(){this.dirtyStart=2147483647,this.dirtyEnd=0}_initTexture(t){const e=new c(t,this._textureDesc,this.data??void 0);if(null!=this._lastTexture&&this._fbos[0]){const i=this._lastTexture.descriptor.width,s=this._lastTexture.descriptor.height,r=this._lastTexture.descriptor.dataType,a=this._lastTexture.descriptor.pixelFormat,n=this.getFBO(t),u=g(r),h=new(p(r))(new ArrayBuffer(i*s*u*this.texelSize)),o=t.getBoundFramebufferObject(),{x:d,y:l,width:_,height:c}=t.getViewport();t.bindFramebuffer(n),n.readPixels(0,0,i,s,a,r,h),e.updateData(0,0,0,2*i,s/2,h),t.setViewport(d,l,_,c),t.bindFramebuffer(o)}return this.destroy(),this._texture=e,this._texture}}class m{constructor(){this.size=0,this._pendingAttributeUpdates=[],this._version=0,this._epoch=0,this._locked=!1}get locked(){return this._locked}get usedMemory(){let t=0;for(const e of this._data??[])null!=e&&(t+=e.usedMemory);return t}_initialize(t){if(!t)throw new Error("InternalError: initArgs must be defined");const e=t.blockDescriptors;if(this.size=t.blockSize,has("esri-2d-update-debug")&&console.debug("AttributeStoreView.initialize",{message:t}),null==this._data)this._data=e.map((t,e)=>null!=t?new b(t,this.size,e):null);else for(let i=0;i<this._data.length;i++){const t=this._data[i],s=e[i];null!=s&&(null==t?this._data[i]=new b(s,this.size,i):t.resize(s,this.size))}}destroy(){for(const t of this._data??[])t?.destroy();this._defaultTexture?.dispose(),this._defaultTexture=null,this._pendingAttributeUpdates=[]}isEmpty(){return null==this._data}getBlock(t){if(null==this._data)return null;return this._data[t]}setLabelMinZoom(t,e){this.setData(t,0,1,e)}setLocalTimeOrigin(t,e){this.setData(t,7,0,e)}getLabelMinZoom(t){return this.getData(t,0,1,255)}getFilterFlags(t){return this.getData(t,0,0,0)}getVisualVariableData(t,e){return this.getData(t,3,e,0)}getData(t,e,i,s){if(!this._data)return 0;const r=this._data[e];if(null==r)return 0;const a=r.getData(t,i);return null!=a?a:s}setData(t,e,i,s){this._data[e].setData(t,i,s)}lockTextureUploads(){this._locked=!0}unlockTextureUploads(){this._locked=!1,this.update()}requestUpdate(t){this._version=t.version,this._pendingAttributeUpdates.push(t),has("esri-2d-update-debug")&&console.debug(`Version[${this._version}] AttributeStoreView.requestUpdate`,{message:t})}get currentEpoch(){return this._epoch}get hasPendingUpdates(){return this._pendingAttributeUpdates.length>0}update(){if(this._locked)return;const t=this._pendingAttributeUpdates;this._pendingAttributeUpdates=[];for(const e of t){const{blockData:t,initArgs:i,sendUpdateEpoch:s,version:r}=e;has("esri-2d-update-debug")&&console.debug(`Version[${this._version}] Epoch[${s}] AttributeStoreView.applyUpdate`),this._version=r,this._epoch=s,null!=i&&this._initialize(i);const a=this._data;for(let e=0;e<t.length;e++){const i=t[e],s=a[e];null!=s&&null!=i&&(has("esri-2d-update-debug")&&console.debug(`Version[${this._version}] CpuBlock[${e}] AttributeStoreView.update`,{block:i}),s.update(i))}}}getUniforms(t){return{filterFlags:{texture:this._getTexture(t,0),unit:d},animation:{texture:this._getTexture(t,1),unit:o},gpgpu:{texture:this._getTexture(t,2),unit:h},localTimeOrigin:{texture:this._getTexture(t,7),unit:u},visualVariableData:{texture:this._getTexture(t,3),unit:n},dataDriven0:{texture:this._getTexture(t,4),unit:a},dataDriven1:{texture:this._getTexture(t,5),unit:r},dataDriven2:{texture:this._getTexture(t,6),unit:s},size:this.size}}_getTexture(t,e){const i=this._data?.[e];return i?(i.updateTexture(t,this._version),i.getTexture(t)):this._getDefaultTexture(t)}_getDefaultTexture(t){if(null==this._defaultTexture){const e=new x(1);e.wrapMode=33071,e.samplingMode=9728,this._defaultTexture=new c(t,e,new Uint8Array(4))}return this._defaultTexture}}export{m as AttributeStoreView};
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
+ */
5
+ import t from"../../../../core/Error.js";import e from"../../../../core/Logger.js";import{getMetersPerUnitForSR as r}from"../../../../core/units.js";import{create as s}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{project as i}from"../../../../geometry/projectionUtils.js";import{convertFromPolygon as n,generalizeOptimizedGeometry as o,convertFromPolyline as c}from"../../../../layers/graphics/featureConversionUtils.js";import{checkProjectionSupport as a}from"../../../../layers/graphics/data/projectionSupport.js";import{triangulateUnsafe as m,triangulateSyncUnsafe as l}from"./mesh/templates/templateUtils.js";import{SimpleMesh as p}from"./meshing/SimpleMesh.js";import{createScreenExtent as h}from"../../support/clippingUtils.js";import{DataType as u,PrimitiveType as y}from"../../../webgl/enums.js";class f{static async create(t,e){const r=await g(t,e);return r?new f(r):null}constructor(t){this._target=t}destroy(){this._mesh?.destroy()}getMesh(t,e){const r=this._target;if(!r)return null;if(null!==this._mesh&&this._lastStateVersion===e.id)return this._mesh;const{vertices:s,indices:i}=r.getTriangulation(e),n=i?new Uint32Array(i):void 0,o=new Int32Array(s);return this._lastStateVersion=e.id,this._mesh?.destroy(),this._mesh=p.createForShader(t,{primitive:y.TRIANGLES,index:n,vertex:o,layout:{pos:{type:u.INT,count:2}}}),this._mesh}}async function g(r,s){switch(r.type){case"rect":return new w(r);case"path":return d.fromPath(r);case"geometry":return _.fromGeometry(r,s);default:return e.getLogger("esri.views.2d.engine.webgl.ClippingInfo").error(new t("mapview-bad-type","Unable to create ClippingInfo mesh from clip of type: ${clip.type}")),null}}class _{static async fromGeometry({geometry:t},e){if(!t)return null;switch(t.type){case"polygon":return this._fromPolygon(t,e);case"extent":return this._fromMapExtent(t)}}static async _fromPolygon(t,e){const s=t.spatialReference??e;await a(s,e);const c=i(t,e),l=r(e),p=n(c,!1,!1),h=o(p,"esriGeometryPolygon",100*l,!1,!1);if(!h)return null;const u=await m(h);return u?new _(u.vertices,u.indices):null}static _fromMapExtent(t){const{xmin:e,ymin:r,xmax:s,ymax:i}=t,n=new Float32Array([e,r,s,r,e,i,e,i,s,r,s,i]),o=new Uint32Array([0,1,2,3,4,5]);return new _(n,o)}constructor(t,e){this._vertices=t,this._indices=e}getTriangulation(t){const e=[],r=s();for(let s=0;s<this._vertices.length/2;s++){const[i,n]=t.toScreen(r,[this._vertices[2*s],this._vertices[2*s+1]]);e.push(i,n)}return{vertices:e,indices:this._indices}}}class d{static fromPath({path:t}){const e=c({paths:t},!1,!1),r=l(e);return r?new d(r.vertices,r.indices):null}constructor(t,e){this._vertices=t,this._indices=e}getTriangulation(t){return{vertices:this._vertices,indices:this._indices}}}class w{constructor(t){this._rect=t}getTriangulation(t){const{xmin:e,xmax:r,ymin:s,ymax:i}=h(this._rect,t.size[0],t.size[1]);return{vertices:[e,s,r,s,e,i,e,i,r,s,r,i],indices:new Uint32Array([0,1,2,3,4,5])}}}export{f as ClipMesh};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import has from"../../../../core/has.js";import{throwIfNotAbortError as t}from"../../../../core/promiseUtils.js";import e from"./Rect.js";import i from"./RectangleBinPack.js";import{Texture as h}from"../../../webgl/Texture.js";import{TextureDescriptor as s}from"../../../webgl/TextureDescriptor.js";const r=256,a=t=>Math.floor(t/256);function n(t){const e=new Set;for(const i of t)e.add(a(i));return e}function c(e,i,h){return e.has(i)||e.set(i,h().then(()=>{e.delete(i)}).catch(h=>{e.delete(i),t(h)})),e.get(i)}const o=t=>({rect:new e(0,0,0,0),page:0,metrics:{left:0,width:0,height:0,advance:0,top:0},code:t,sdf:!0});class l{constructor(t,e,h){this.width=0,this.height=0,this._dirties=[],this._glyphData=[],this._currentPage=0,this._glyphCache={},this._textures=[],this._rangePromises=new Map,this._preloadCache={},this.width=t,this.height=e,this._glyphSource=h,this._binPack=new i(t,e),this._glyphData.push(new Uint8Array(t*e)),this._dirties.push(!0),this._textures.push(null),this._initDecorationGlyphs()}dispose(){this._binPack=null;for(const t of this._textures)t&&t.dispose();this._textures.length=0,this._glyphData.length=0}_initDecorationGlyphs(){const t=[117,149,181,207,207,181,149,117],e=[],i=[];for(let r=0;r<t.length;r++){const h=t[r];for(let t=0;t<11;t++){const s=r>=3&&r<5&&t>=3&&t<8?255:0;e.push(h),i.push(s)}}const h={metrics:{width:5,height:2,left:0,top:0,advance:0},bitmap:new Uint8Array(e)},s={metrics:{width:5,height:2,left:0,top:0,advance:0},bitmap:new Uint8Array(i)};this._recordGlyph(h),this._recordGlyph(s)}getTexture(t,e){if(!this._textures[e]){const i=new s(this.width,this.height);i.pixelFormat=6406,i.wrapMode=33071,this._textures[e]=new h(t,i,new Uint8Array(this.width*this.height))}return this._dirties[e]&&(this._textures[e].setData(this._glyphData[e]),this._dirties[e]=!1),this._textures[e]}async getGlyphItems(t,e,i){const h=this._getGlyphCache(t);return await this._fetchRanges(t,e,i),e.map(e=>this._getMosaicItem(h,t,e))}bind(t,e,i,h){const s=this.getTexture(t,i);s.setSamplingMode(e),t.bindTexture(s,h)}preloadASCIIGlyphCache(t){const e=this._preloadCache[t];if(null!=e)return e;const i=this._glyphSource.preloadASCIIRange(t).then(()=>{const e=this._getGlyphCache(t);for(let i=0;i<256;i++)this._getMosaicItem(e,t,i)});return this._preloadCache[t]=i,i}_getGlyphCache(t){return this._glyphCache[t]||(this._glyphCache[t]={}),this._glyphCache[t]}_invalidate(){this._dirties[this._currentPage]=!0}async _fetchRanges(t,e,i){const h=n(e),s=[];h.forEach(e=>{s.push(this._fetchRange(t,e,i))}),await Promise.all(s)}async _fetchRange(t,e,i){if(e>r)return;const h=t+e;return c(this._rangePromises,h,()=>this._glyphSource.getRange(t,e,i))}_getMosaicItem(t,e,i){if(!t[i]){const h=this._glyphSource.getGlyph(e,i);if(!h?.metrics)return o(i);const s=this._recordGlyph(h),r=this._currentPage,a=h.metrics;t[i]={rect:s,page:r,metrics:a,code:i,sdf:!0},this._invalidate()}return t[i]}_recordGlyph(t){const h=t.metrics;let s;if(0===h.width)s=new e(0,0,0,0);else{const e=3,r=h.width+2*e,a=h.height+2*e;s=this._binPack.allocate(r,a),s.isEmpty&&(this._dirties[this._currentPage]||(this._glyphData[this._currentPage]=null),this._currentPage=this._glyphData.length,this._glyphData.push(new Uint8Array(this.width*this.height)),this._dirties.push(!0),this._textures.push(null),this._initDecorationGlyphs(),this._binPack=new i(this.width,this.height),s=this._binPack.allocate(r,a));const n=this._glyphData[this._currentPage],c=t.bitmap;let o,l;if(c)for(let t=0;t<a;t++){o=r*t,l=this.width*(s.y+t)+s.x;for(let t=0;t<r;t++)n[l+t]=c[o+t]}has("esri-glyph-debug")&&this._showDebugPage(n)}return s}_showDebugPage(t){const e=document.createElement("canvas"),i=e.getContext("2d"),h=new ImageData(this.width,this.height),s=h.data;e.width=this.width,e.height=this.height,e.style.border="1px solid black";for(let r=0;r<t.length;++r)s[4*r]=t[r],s[4*r+1]=0,s[4*r+2]=0,s[4*r+3]=255;i.putImageData(h,0,0),document.body.appendChild(e)}}export{l as default};
5
+ import has from"../../../../core/has.js";import{throwIfNotAbortError as t}from"../../../../core/promiseUtils.js";import e from"./Rect.js";import i from"./RectangleBinPack.js";import h from"../../../webgl/Texture.js";import{TextureDescriptor as s}from"../../../webgl/TextureDescriptor.js";const r=256,a=t=>Math.floor(t/256);function n(t){const e=new Set;for(const i of t)e.add(a(i));return e}function c(e,i,h){return e.has(i)||e.set(i,h().then(()=>{e.delete(i)}).catch(h=>{e.delete(i),t(h)})),e.get(i)}const o=t=>({rect:new e(0,0,0,0),page:0,metrics:{left:0,width:0,height:0,advance:0,top:0},code:t,sdf:!0});class l{constructor(t,e,h){this.width=0,this.height=0,this._dirties=[],this._glyphData=[],this._currentPage=0,this._glyphCache={},this._textures=[],this._rangePromises=new Map,this._preloadCache={},this.width=t,this.height=e,this._glyphSource=h,this._binPack=new i(t,e),this._glyphData.push(new Uint8Array(t*e)),this._dirties.push(!0),this._textures.push(null),this._initDecorationGlyphs()}dispose(){this._binPack=null;for(const t of this._textures)t&&t.dispose();this._textures.length=0,this._glyphData.length=0}_initDecorationGlyphs(){const t=[117,149,181,207,207,181,149,117],e=[],i=[];for(let r=0;r<t.length;r++){const h=t[r];for(let t=0;t<11;t++){const s=r>=3&&r<5&&t>=3&&t<8?255:0;e.push(h),i.push(s)}}const h={metrics:{width:5,height:2,left:0,top:0,advance:0},bitmap:new Uint8Array(e)},s={metrics:{width:5,height:2,left:0,top:0,advance:0},bitmap:new Uint8Array(i)};this._recordGlyph(h),this._recordGlyph(s)}getTexture(t,e){if(!this._textures[e]){const i=new s(this.width,this.height);i.pixelFormat=6406,i.wrapMode=33071,this._textures[e]=new h(t,i,new Uint8Array(this.width*this.height))}return this._dirties[e]&&(this._textures[e].setData(this._glyphData[e]),this._dirties[e]=!1),this._textures[e]}async getGlyphItems(t,e,i){const h=this._getGlyphCache(t);return await this._fetchRanges(t,e,i),e.map(e=>this._getMosaicItem(h,t,e))}bind(t,e,i,h){const s=this.getTexture(t,i);s.setSamplingMode(e),t.bindTexture(s,h)}preloadASCIIGlyphCache(t){const e=this._preloadCache[t];if(null!=e)return e;const i=this._glyphSource.preloadASCIIRange(t).then(()=>{const e=this._getGlyphCache(t);for(let i=0;i<256;i++)this._getMosaicItem(e,t,i)});return this._preloadCache[t]=i,i}_getGlyphCache(t){return this._glyphCache[t]||(this._glyphCache[t]={}),this._glyphCache[t]}_invalidate(){this._dirties[this._currentPage]=!0}async _fetchRanges(t,e,i){const h=n(e),s=[];h.forEach(e=>{s.push(this._fetchRange(t,e,i))}),await Promise.all(s)}async _fetchRange(t,e,i){if(e>r)return;const h=t+e;return c(this._rangePromises,h,()=>this._glyphSource.getRange(t,e,i))}_getMosaicItem(t,e,i){if(!t[i]){const h=this._glyphSource.getGlyph(e,i);if(!h?.metrics)return o(i);const s=this._recordGlyph(h),r=this._currentPage,a=h.metrics;t[i]={rect:s,page:r,metrics:a,code:i,sdf:!0},this._invalidate()}return t[i]}_recordGlyph(t){const h=t.metrics;let s;if(0===h.width)s=new e(0,0,0,0);else{const e=3,r=h.width+2*e,a=h.height+2*e;s=this._binPack.allocate(r,a),s.isEmpty&&(this._dirties[this._currentPage]||(this._glyphData[this._currentPage]=null),this._currentPage=this._glyphData.length,this._glyphData.push(new Uint8Array(this.width*this.height)),this._dirties.push(!0),this._textures.push(null),this._initDecorationGlyphs(),this._binPack=new i(this.width,this.height),s=this._binPack.allocate(r,a));const n=this._glyphData[this._currentPage],c=t.bitmap;let o,l;if(c)for(let t=0;t<a;t++){o=r*t,l=this.width*(s.y+t)+s.x;for(let t=0;t<r;t++)n[l+t]=c[o+t]}has("esri-glyph-debug")&&this._showDebugPage(n)}return s}_showDebugPage(t){const e=document.createElement("canvas"),i=e.getContext("2d"),h=new ImageData(this.width,this.height),s=h.data;e.width=this.width,e.height=this.height,e.style.border="1px solid black";for(let r=0;r<t.length;++r)s[4*r]=t[r],s[4*r+1]=0,s[4*r+2]=0,s[4*r+3]=255;i.putImageData(h,0,0),document.body.appendChild(e)}}export{l as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../../core/Error.js";import{on as t}from"../../../../core/events.js";import r from"../../../../core/Handles.js";import i from"../../../../core/Logger.js";import{disposeMaybe as s}from"../../../../core/maybe.js";import{getProjectiveTransform as n}from"../../../../core/perspectiveUtils.js";import{watch as o,when as a,initial as d}from"../../../../core/reactiveUtils.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{set as m}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as h}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{isVideoElement as p}from"../../../../support/mediaLayerUtils.js";import{DisplayObject as u}from"../DisplayObject.js";import{createPlayer as c,updateIfNeeded as f}from"./animatedFormats/utils.js";import{Texture as y}from"../../../webgl/Texture.js";import{TextureDescriptor as w}from"../../../webgl/TextureDescriptor.js";const x=[1,1],v=l(),g={none:"None",loop:"Loop",oscillate:"Oscillate"};function _(e){return e?{type:"CIMAnimatedSymbolProperties",...e,playAnimation:e.playing,repeatType:e.repeatType?g[e.repeatType]:void 0}:{type:"CIMAnimatedSymbolProperties"}}class R extends u{constructor(n){super(),this.elementView=n,this.isWrapAround=!1,this.wrapAroundShift=0,this.perspectiveTransform=h(),this._handles=new r,this._vertices=new Float32Array(8),this._indices=new Uint16Array([0,0,0,1,1,0,1,1,1,1,0,0,0,0,0,1,1,0,1,1]),this._handles.add([o(()=>this.elementView.element.opacity,e=>this.opacity=e,d),o(()=>[this.elementView.coords],()=>{this.requestRender()},d),o(()=>["animationOptions"in this.elementView.element&&this.elementView.element.animationOptions],()=>{this.texture=s(this.texture),this.requestRender()},d),a(()=>this.elementView.element.loaded,()=>{const e=this.elementView.element;this.ready(),p(e)&&null!=e.content&&(this._handles.add([t(e.content,"play",()=>this.requestRender()),t(e.content,"loadeddata",()=>this.requestRender()),t(e.content,"loaded",()=>this.requestRender())]),"requestVideoFrameCallback"in e.content?e.content.requestVideoFrameCallback(()=>this.requestRender()):this._handles.add([t(e.content,"seeked",()=>this.requestRender())]),this.requestRender())},d)]),n.element.load().catch(t=>{i.getLogger("esri.views.2d.layers.MediaLayerView2D").error(new e("element-load-error","Element cannot be displayed",{element:n,error:t}))})}getMesh(e){throw new Error("Method not implemented.")}destroy(){super.destroy(),this._handles.destroy(),this.texture=s(this.texture)}get textureSize(){return x}get dvsMat3(){return this.parent.dvsMat3}beforeRender(e){const{context:t}=e,r=this.elementView.element.content;if(null!=r){const i=r instanceof HTMLImageElement,s=r instanceof HTMLVideoElement,n=i?r.naturalWidth:s?r.videoWidth:r.width,o=i?r.naturalHeight:s?r.videoHeight:r.height;if(this._updatePerspectiveTransform(n,o),this.texture)if(s)if(r.readyState>=r.HAVE_CURRENT_DATA)e.animationsEnabled&&this._updateTextureAndRequestRender(r);else{const e=()=>{this._updateTextureAndRequestRender(r),r.removeEventListener("canplay",e),r.removeEventListener("seeked",e)};r.addEventListener("canplay",e),r.addEventListener("seeked",e)}else"getFrame"in r&&e.animationsEnabled&&this.requestRender();else{const e=new w(n,o);if(e.wrapMode=33071,e.preMultiplyAlpha=!0,"getFrame"in r){const i=r=>{this.texture?this.texture.setData(r):this.texture=new y(t,e,r)};"animationOptions"in this.elementView.element&&(this._player=c(r,_(this.elementView.element.animationOptions),null,i))}else this.texture=new y(t,e,r);this.texture.generateMipmap(),s&&this._requestVideoFrame(r)}}super.beforeRender(e)}_updateTextureAndRequestRender(e){this.texture.setData(e),this.texture.generateMipmap(),this._requestVideoFrame(e)}_requestVideoFrame(e){"requestVideoFrameCallback"in e?e.requestVideoFrameCallback(()=>this.requestRender()):e.paused||this.requestRender()}_createTransforms(){return null}draw(e,t){this.isReady&&null!=this.texture?(f(e,this._player),t.render(e,{transform:{dvs:this.dvsMat3},config:{perspective:this.perspectiveTransform,texSize:x,wrapAroundShift:this.wrapAroundShift,isWrapAround:this.isWrapAround,opacity:this.opacity,texture:{texture:this.texture,unit:0}},position:this._vertices,tex:this._indices})):this.requestRender()}updateDrawCoords(e,t,r,i){const{coords:s,bounds:n}=this.elementView;if(null==s||null==n)return;const[o,a,d,l]=s.rings[0],m=this._vertices,{x:h,y:p}=e;m.set([a[0]-h,a[1]-p,o[0]-h,o[1]-p,d[0]-h,d[1]-p,l[0]-h,l[1]-p]);let u=t;if(i){const[e,,t]=n,{worldWidth:r,xBounds:s}=i,[o,a]=s;e<o&&t>o?u=r:t>a&&e<a&&(u=-r)}this.wrapAroundShift=u,this.isWrapAround=0!==u}_updatePerspectiveTransform(e,t){const r=this._vertices;n(v,[0,0,e,0,0,t,e,t],[r[0],r[1],r[4],r[5],r[2],r[3],r[6],r[7]]),m(this.perspectiveTransform,v[6]/v[8]*e,v[7]/v[8]*t)}}export{R as default};
5
+ import e from"../../../../core/Error.js";import{on as t}from"../../../../core/events.js";import r from"../../../../core/Handles.js";import i from"../../../../core/Logger.js";import{disposeMaybe as s}from"../../../../core/maybe.js";import{getProjectiveTransform as n}from"../../../../core/perspectiveUtils.js";import{watch as o,when as a,initial as d}from"../../../../core/reactiveUtils.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{set as m}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as h}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{isVideoElement as p}from"../../../../support/mediaLayerUtils.js";import{DisplayObject as u}from"../DisplayObject.js";import{createPlayer as c,updateIfNeeded as f}from"./animatedFormats/utils.js";import y from"../../../webgl/Texture.js";import{TextureDescriptor as w}from"../../../webgl/TextureDescriptor.js";const x=[1,1],v=l(),g={none:"None",loop:"Loop",oscillate:"Oscillate"};function _(e){return e?{type:"CIMAnimatedSymbolProperties",...e,playAnimation:e.playing,repeatType:e.repeatType?g[e.repeatType]:void 0}:{type:"CIMAnimatedSymbolProperties"}}class R extends u{constructor(n){super(),this.elementView=n,this.isWrapAround=!1,this.wrapAroundShift=0,this.perspectiveTransform=h(),this._handles=new r,this._vertices=new Float32Array(8),this._indices=new Uint16Array([0,0,0,1,1,0,1,1,1,1,0,0,0,0,0,1,1,0,1,1]),this._handles.add([o(()=>this.elementView.element.opacity,e=>this.opacity=e,d),o(()=>[this.elementView.coords],()=>{this.requestRender()},d),o(()=>["animationOptions"in this.elementView.element&&this.elementView.element.animationOptions],()=>{this.texture=s(this.texture),this.requestRender()},d),a(()=>this.elementView.element.loaded,()=>{const e=this.elementView.element;this.ready(),p(e)&&null!=e.content&&(this._handles.add([t(e.content,"play",()=>this.requestRender()),t(e.content,"loadeddata",()=>this.requestRender()),t(e.content,"loaded",()=>this.requestRender())]),"requestVideoFrameCallback"in e.content?e.content.requestVideoFrameCallback(()=>this.requestRender()):this._handles.add([t(e.content,"seeked",()=>this.requestRender())]),this.requestRender())},d)]),n.element.load().catch(t=>{i.getLogger("esri.views.2d.layers.MediaLayerView2D").error(new e("element-load-error","Element cannot be displayed",{element:n,error:t}))})}getMesh(e){throw new Error("Method not implemented.")}destroy(){super.destroy(),this._handles.destroy(),this.texture=s(this.texture)}get textureSize(){return x}get dvsMat3(){return this.parent.dvsMat3}beforeRender(e){const{context:t}=e,r=this.elementView.element.content;if(null!=r){const i=r instanceof HTMLImageElement,s=r instanceof HTMLVideoElement,n=i?r.naturalWidth:s?r.videoWidth:r.width,o=i?r.naturalHeight:s?r.videoHeight:r.height;if(this._updatePerspectiveTransform(n,o),this.texture)if(s)if(r.readyState>=r.HAVE_CURRENT_DATA)e.animationsEnabled&&this._updateTextureAndRequestRender(r);else{const e=()=>{this._updateTextureAndRequestRender(r),r.removeEventListener("canplay",e),r.removeEventListener("seeked",e)};r.addEventListener("canplay",e),r.addEventListener("seeked",e)}else"getFrame"in r&&e.animationsEnabled&&this.requestRender();else{const e=new w(n,o);if(e.wrapMode=33071,e.preMultiplyAlpha=!0,"getFrame"in r){const i=r=>{this.texture?this.texture.setData(r):this.texture=new y(t,e,r)};"animationOptions"in this.elementView.element&&(this._player=c(r,_(this.elementView.element.animationOptions),null,i))}else this.texture=new y(t,e,r);this.texture.generateMipmap(),s&&this._requestVideoFrame(r)}}super.beforeRender(e)}_updateTextureAndRequestRender(e){this.texture.setData(e),this.texture.generateMipmap(),this._requestVideoFrame(e)}_requestVideoFrame(e){"requestVideoFrameCallback"in e?e.requestVideoFrameCallback(()=>this.requestRender()):e.paused||this.requestRender()}_createTransforms(){return null}draw(e,t){this.isReady&&null!=this.texture?(f(e,this._player),t.render(e,{transform:{dvs:this.dvsMat3},config:{perspective:this.perspectiveTransform,texSize:x,wrapAroundShift:this.wrapAroundShift,isWrapAround:this.isWrapAround,opacity:this.opacity,texture:{texture:this.texture,unit:0}},position:this._vertices,tex:this._indices})):this.requestRender()}updateDrawCoords(e,t,r,i){const{coords:s,bounds:n}=this.elementView;if(null==s||null==n)return;const[o,a,d,l]=s.rings[0],m=this._vertices,{x:h,y:p}=e;m.set([a[0]-h,a[1]-p,o[0]-h,o[1]-p,d[0]-h,d[1]-p,l[0]-h,l[1]-p]);let u=t;if(i){const[e,,t]=n,{worldWidth:r,xBounds:s}=i,[o,a]=s;e<o&&t>o?u=r:t>a&&e<a&&(u=-r)}this.wrapAroundShift=u,this.isWrapAround=0!==u}_updatePerspectiveTransform(e,t){const r=this._vertices;n(v,[0,0,e,0,0,t,e,t],[r[0],r[1],r[4],r[5],r[2],r[3],r[6],r[7]]),m(this.perspectiveTransform,v[6]/v[8]*e,v[7]/v[8]*t)}}export{R as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{on as t}from"../../../../core/events.js";import e from"../../../../core/Handles.js";import{disposeMaybe as r}from"../../../../core/maybe.js";import{when as i,initial as o}from"../../../../core/reactiveUtils.js";import{createScreenPoint as s}from"../../../../core/screenUtils.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import a from"../../../../geometry/Point.js";import l from"../../../../geometry/Polygon.js";import{project as h}from"../../../../geometry/projectionUtils.js";import u from"../../../../layers/support/ControlPoint.js";import{DisplayObject as p}from"../DisplayObject.js";import m from"../../../layers/support/GeometryClipArea.js";import{Texture as d}from"../../../webgl/Texture.js";import{TextureDescriptor as c}from"../../../webgl/TextureDescriptor.js";const f=2;class x extends p{constructor(r){super(),this.element=r,this._handles=new e,this.isWrapAround=!1,this.perspectiveTransform=n(),this.wrapAroundShift=0,this.clipGeometry=null,this._handles.add(i(()=>this.element,()=>{const e=this.element;this.ready(),e&&this._handles.add(t(e,"play",()=>this.requestRender()))},o))}getMesh(t){throw new Error("Method not implemented.")}destroy(){super.destroy(),this._handles.destroy(),this.texture=r(this.texture)}get textureSize(){if(!this.texture)return[1,1];const t=this.texture.descriptor;return[t.width,t.height]}get dvsMat3(){return this.parent.dvsMat3}beforeRender(t){const e=this.element;if(null==e)return;const{context:r}=t,{videoWidth:i,videoHeight:o}=e;if(0!==i&&0!==o){if(this.texture)e.paused||t.animationsEnabled&&this.texture.setData(e);else{const t=new c(i,o);t.wrapMode=33071,t.preMultiplyAlpha=!0,this.texture=new d(r,t,e)}e.paused||this.texture.generateMipmap(),super.beforeRender(t)}}_createTransforms(){return null}updateDrawCoords(t,e,r,i){const o=this.element,s=this._getFrameInfo();if(!o||!s)return;const{spatialReference:n}=r;this._initializeData(t,s,n);const{controlPoints:a,horizon:u}=s,p=Math.sqrt(a.length),d=p,{x:c,y:x}=t,y=this._vertices,g=a[0],w=a[p-1],P=a[(d-1)*p],_=a[(d-1)*p+p-1],v=h(u?u[0].mapPoint:g.mapPoint,n),j=h(u?u[1].mapPoint:w.mapPoint,n),A=h(P.mapPoint,n),M=h(_.mapPoint,n);this.clipGeometry=u?new m({geometry:l.fromJSON({rings:[[[A.x,A.y],[M.x,M.y],[j.x,j.y],[v.x,v.y],[A.x,A.y]]],spatialReference:n})}):null;for(let l=0;l<a.length;l++){const t=a[l],{sourcePoint:e,mapPoint:r}=t;if(null==e||null==r)continue;const i=h(r,n);y[l*f+0]=i.x-c,y[l*f+1]=i.y-x}let C=e;if(i){const t=Math.min(v.x,j.x,A.x,M.x),e=Math.max(v.x,j.x,A.x,M.x),{worldWidth:r,xBounds:o}=i,[s,n]=o;t<s&&e>s?C=r:e>n&&t<n&&(C=-r)}this.wrapAroundShift=C,this.isWrapAround=0!==C}draw(t,e){if(!this.visible)return;if(!(this.isReady&&this._vertices&&this._indices&&this._texCoords))return void this.requestRender();this.stage||console.warn("OverlayMultipoint: stage is null"),e.render(t,{transform:{dvs:this.dvsMat3},config:{perspective:this.perspectiveTransform,texSize:this.textureSize,wrapAroundShift:this.wrapAroundShift,isWrapAround:this.isWrapAround,opacity:this.opacity,texture:{texture:this.texture,unit:0}},position:this._vertices,tex:this._texCoords,index:this._indices})}_initializeData(t,e,r){if(null!=this._vertices&&null!=this._indices)return;const{controlPoints:i}=e,o=Math.sqrt(i.length),s=o,n=new Float32Array(f*i.length),a=new Uint16Array(2*i.length);for(let p=0;p<i.length;p++){const e=i[p],{sourcePoint:o,mapPoint:s}=e;if(null==o||null==s)continue;const l=h(s,r);n[p*f+0]=l.x-t.x,n[p*f+1]=l.y-t.y,a[2*p+0]=o.x,a[2*p+1]=o.y}const l=new Uint16Array(s*o+(s-2)*(o+2));let u=0;for(let h=0;h<s;h++){for(let t=0;t<o;t++)l[u++]=h*o+t,l[u++]=(h+1)*o+t;h<s-2&&(l[u++]=(h+1)*o+(o-1),l[u++]=(h+1)*o)}this._vertices=n,this._texCoords=a,this._indices=l}_getFrameInfo(){if(!this.groundControlPoints)return null;const t=this._getFrameControlPoints(),e=this.frameHorizonPoints;let r=null;if(e){const t=e.startX,i=e.startY,o=e.endX,n=e.endY;r=[new u({sourcePoint:s(t,i),mapPoint:new a(e.startLongitude,e.startLatitude)}),new u({sourcePoint:s(o,n),mapPoint:new a(e.endLongitude,e.endLatitude)})]}return{controlPoints:t,horizon:r}}_getFrameControlPoints(){const t=this.groundControlPoints,e=t?.length;if(!e)return[];const r=new Array(e),i=Math.max(...t.map(({x:t})=>t)),o=this.element.videoWidth/i;for(let n=0;n<e;n++){const{x:e,y:i,lat:l,lon:h}=t[n];r[n]=new u({sourcePoint:s(e*o,-i*o),mapPoint:new a(h,l)})}return r}}export{x as default};
5
+ import{on as t}from"../../../../core/events.js";import e from"../../../../core/Handles.js";import{disposeMaybe as r}from"../../../../core/maybe.js";import{when as i,initial as o}from"../../../../core/reactiveUtils.js";import{createScreenPoint as s}from"../../../../core/screenUtils.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import a from"../../../../geometry/Point.js";import l from"../../../../geometry/Polygon.js";import{project as h}from"../../../../geometry/projectionUtils.js";import u from"../../../../layers/support/ControlPoint.js";import{DisplayObject as p}from"../DisplayObject.js";import m from"../../../layers/support/GeometryClipArea.js";import d from"../../../webgl/Texture.js";import{TextureDescriptor as c}from"../../../webgl/TextureDescriptor.js";const f=2;class x extends p{constructor(r){super(),this.element=r,this._handles=new e,this.isWrapAround=!1,this.perspectiveTransform=n(),this.wrapAroundShift=0,this.clipGeometry=null,this._handles.add(i(()=>this.element,()=>{const e=this.element;this.ready(),e&&this._handles.add(t(e,"play",()=>this.requestRender()))},o))}getMesh(t){throw new Error("Method not implemented.")}destroy(){super.destroy(),this._handles.destroy(),this.texture=r(this.texture)}get textureSize(){if(!this.texture)return[1,1];const t=this.texture.descriptor;return[t.width,t.height]}get dvsMat3(){return this.parent.dvsMat3}beforeRender(t){const e=this.element;if(null==e)return;const{context:r}=t,{videoWidth:i,videoHeight:o}=e;if(0!==i&&0!==o){if(this.texture)e.paused||t.animationsEnabled&&this.texture.setData(e);else{const t=new c(i,o);t.wrapMode=33071,t.preMultiplyAlpha=!0,this.texture=new d(r,t,e)}e.paused||this.texture.generateMipmap(),super.beforeRender(t)}}_createTransforms(){return null}updateDrawCoords(t,e,r,i){const o=this.element,s=this._getFrameInfo();if(!o||!s)return;const{spatialReference:n}=r;this._initializeData(t,s,n);const{controlPoints:a,horizon:u}=s,p=Math.sqrt(a.length),d=p,{x:c,y:x}=t,y=this._vertices,g=a[0],w=a[p-1],P=a[(d-1)*p],_=a[(d-1)*p+p-1],v=h(u?u[0].mapPoint:g.mapPoint,n),j=h(u?u[1].mapPoint:w.mapPoint,n),A=h(P.mapPoint,n),M=h(_.mapPoint,n);this.clipGeometry=u?new m({geometry:l.fromJSON({rings:[[[A.x,A.y],[M.x,M.y],[j.x,j.y],[v.x,v.y],[A.x,A.y]]],spatialReference:n})}):null;for(let l=0;l<a.length;l++){const t=a[l],{sourcePoint:e,mapPoint:r}=t;if(null==e||null==r)continue;const i=h(r,n);y[l*f+0]=i.x-c,y[l*f+1]=i.y-x}let C=e;if(i){const t=Math.min(v.x,j.x,A.x,M.x),e=Math.max(v.x,j.x,A.x,M.x),{worldWidth:r,xBounds:o}=i,[s,n]=o;t<s&&e>s?C=r:e>n&&t<n&&(C=-r)}this.wrapAroundShift=C,this.isWrapAround=0!==C}draw(t,e){if(!this.visible)return;if(!(this.isReady&&this._vertices&&this._indices&&this._texCoords))return void this.requestRender();this.stage||console.warn("OverlayMultipoint: stage is null"),e.render(t,{transform:{dvs:this.dvsMat3},config:{perspective:this.perspectiveTransform,texSize:this.textureSize,wrapAroundShift:this.wrapAroundShift,isWrapAround:this.isWrapAround,opacity:this.opacity,texture:{texture:this.texture,unit:0}},position:this._vertices,tex:this._texCoords,index:this._indices})}_initializeData(t,e,r){if(null!=this._vertices&&null!=this._indices)return;const{controlPoints:i}=e,o=Math.sqrt(i.length),s=o,n=new Float32Array(f*i.length),a=new Uint16Array(2*i.length);for(let p=0;p<i.length;p++){const e=i[p],{sourcePoint:o,mapPoint:s}=e;if(null==o||null==s)continue;const l=h(s,r);n[p*f+0]=l.x-t.x,n[p*f+1]=l.y-t.y,a[2*p+0]=o.x,a[2*p+1]=o.y}const l=new Uint16Array(s*o+(s-2)*(o+2));let u=0;for(let h=0;h<s;h++){for(let t=0;t<o;t++)l[u++]=h*o+t,l[u++]=(h+1)*o+t;h<s-2&&(l[u++]=(h+1)*o+(o-1),l[u++]=(h+1)*o)}this._vertices=n,this._texCoords=a,this._indices=l}_getFrameInfo(){if(!this.groundControlPoints)return null;const t=this._getFrameControlPoints(),e=this.frameHorizonPoints;let r=null;if(e){const t=e.startX,i=e.startY,o=e.endX,n=e.endY;r=[new u({sourcePoint:s(t,i),mapPoint:new a(e.startLongitude,e.startLatitude)}),new u({sourcePoint:s(o,n),mapPoint:new a(e.endLongitude,e.endLatitude)})]}return{controlPoints:t,horizon:r}}_getFrameControlPoints(){const t=this.groundControlPoints,e=t?.length;if(!e)return[];const r=new Array(e),i=Math.max(...t.map(({x:t})=>t)),o=this.element.videoWidth/i;for(let n=0;n<e;n++){const{x:e,y:i,lat:l,lon:h}=t[n];r[n]=new u({sourcePoint:s(e*o,-i*o),mapPoint:new a(h,l)})}return r}}export{x as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import t from"../../../../core/Error.js";import has from"../../../../core/has.js";import{spritePadding as e}from"./definitions.js";import{log2 as i}from"./GeometryUtils.js";import s from"./Rect.js";import a from"./RectangleBinPack.js";import{Texture as r}from"../../../webgl/Texture.js";import{TextureDescriptor as o}from"../../../webgl/TextureDescriptor.js";function h(t){return t&&"static"===t.type}class c{constructor(t,e,i=0){this._mosaicPages=[],this._maxItemSize=0,this._currentPage=0,this._pageWidth=0,this._pageHeight=0,this._mosaicRects=new Map,this._spriteCopyQueue=[],this.pixelRatio=1,this._pageWidth=t,this._pageHeight=e,i>0&&(this._maxItemSize=i),this.pixelRatio=window.devicePixelRatio||1,this._binPack=new a(this._pageWidth,this._pageHeight);const s=Math.floor(this._pageWidth),r=Math.floor(this._pageHeight);this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(s*r)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0})}getWidth(t){return t>=this._mosaicPages.length?-1:this._mosaicPages[t].size[0]}getHeight(t){return t>=this._mosaicPages.length?-1:this._mosaicPages[t].size[1]}getPageTexture(t){return t<this._mosaicPages.length?this._mosaicPages[t].texture:null}has(t){return this._mosaicRects.has(t)}get itemCount(){return this._mosaicRects.size}getSpriteItem(t){return this._mosaicRects.get(t)}addSpriteItem(t,i,a,r,o,c,n=1,g="Linear",p=.5,m=1){if(this._mosaicRects.has(t))return this._mosaicRects.get(t);let d,u,l;if(h(a))[d,u,l]=this._allocateImage(i[0],i[1]);else{d=new s(0,0,i[0],i[1]),u=this._mosaicPages.length;const t=void 0;this._mosaicPages.push({mosaicsData:a,size:[i[0]+2*e,i[1]+2*e],dirty:!0,texture:t})}if(d.width<=0||d.height<=0)return null;const _={type:"sprite",rect:d,width:i[0],height:i[1],sdf:o,simplePattern:c,rasterizationScale:n,samplingMode:g,sdfPaddingRatio:p,sdfDecodeCoeff:m,page:u};return this._mosaicRects.set(t,_),h(a)&&(has("esri-mosaic-debug")&&this._showDebugSprite(i,a.data),this._copy({rect:d,spriteSize:i,spriteData:a.data,page:u,pageSize:l,repeat:r,sdf:o})),_}hasItemsToProcess(){return 0!==this._spriteCopyQueue.length}processNextItem(){const t=this._spriteCopyQueue.pop();t&&this._copy(t)}getMosaicItemPosition(t){const i=this.getSpriteItem(t),s=i?.rect;if(!s)return null;s.width=i.width,s.height=i.height;const a=i.width,r=i.height,o=e,h=this._mosaicPages[i.page].size;return{size:[i.width,i.height],tl:[(s.x+o)/h[0],(s.y+o)/h[1]],br:[(s.x+o+a)/h[0],(s.y+o+r)/h[1]],page:i.page}}bind(t,e,i=0,s=0){const a=this._mosaicPages[i],r=a.mosaicsData;let o=a.texture;if(o||(o=g(t,a.size),a.texture=o),o.setSamplingMode(e),t.bindTexture(o,s),h(r))a.dirty&&(o.setData(new Uint8Array(r.data.buffer)),o.generateMipmap(),has("esri-mosaic-debug")&&this._showDebugPage(i));else{const t=r.data;t.hasFrameData&&(t.loadFrame(o),o.generateMipmap())}a.dirty=!1}getTexture(t,e=0){const{context:i}=t,s=this._mosaicPages[e],a=s.mosaicsData;let r=s.texture;if(r||(r=g(i,s.size),s.texture=r),h(a))s.dirty&&(r.setData(new Uint8Array(a.data.buffer)),r.generateMipmap(),has("esri-mosaic-debug")&&this._showDebugPage(e));else{const e=a.data;e.update(t),e.hasFrameData&&(e.loadFrame(r),r.generateMipmap())}return s.dirty=!1,r}dispose(){this._binPack=null;for(const t of this._mosaicPages){const e=t.texture;e&&e.dispose();const i=t.mosaicsData;if(!h(i)){i.data.destroy()}}this._mosaicPages=null,this._mosaicRects.clear()}static _copyBits(t,e,i,s,a,r,o,h,c,n,g){let p=s*e+i,m=h*r+o;if(g){m-=r;for(let o=-1;o<=n;o++,p=((o+n)%n+s)*e+i,m+=r)for(let e=-1;e<=c;e++)a[m+e]=t[p+(e+c)%c]}else for(let d=0;d<n;d++){for(let e=0;e<c;e++)a[m+e]=t[p+e];p+=e,m+=r}}_copy(i){if(i.page>=this._mosaicPages.length)return;const s=this._mosaicPages[i.page],a=s.mosaicsData;if(!h(s.mosaicsData))throw new t("mapview-invalid-resource","unsuitable data type!");const r=i.spriteData,o=a.data;c._copyBits(r,i.spriteSize[0],0,0,o,i.pageSize[0],i.rect.x+e,i.rect.y+e,i.spriteSize[0],i.spriteSize[1],i.repeat),s.dirty=!0}_allocateImage(t,r){t+=2*e,r+=2*e;const o=Math.max(t,r);if(this._maxItemSize&&this._maxItemSize<o){const e=2**Math.ceil(i(t)),a=2**Math.ceil(i(r)),o=new s(0,0,t,r);return this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(e*a)},size:[e,a],dirty:!0,texture:void 0}),[o,this._mosaicPages.length-1,[e,a]]}const c=this._binPack.allocate(t,r);if(c.width<=0){const e=this._mosaicPages[this._currentPage];return!e.dirty&&h(e.mosaicsData)&&(e.mosaicsData.data=null),this._currentPage=this._mosaicPages.length,this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(this._pageWidth*this._pageHeight)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0}),this._binPack=new a(this._pageWidth,this._pageHeight),this._allocateImage(t,r)}return[c,this._currentPage,[this._pageWidth,this._pageHeight]]}_showDebugSprite([t,e],i){const s=document.createElement("canvas");s.width=t,s.height=e,s.setAttribute("style",`position: absolute; top: ${4+204*n++}px; right: 208px; width: 200px; height: 200px; border: 1px solid black;`);const a=s.getContext("2d"),r=new ImageData(t,e);r.data.set(new Uint8Array(i.buffer)),a.putImageData(r,0,0),document.body.appendChild(s)}_showDebugPage(t){const e=this._mosaicPages[t],{size:[i,s],mosaicsData:a}=e;if(!h(a))return;const r=`mosaicDebugPage${t}`,o=document.getElementById(r)??document.createElement("canvas");o.id=r,o.width=i,o.height=s,o.setAttribute("style",`position: absolute; top: ${4+204*t}px; right: 4px; width: 200px; height: 200px; border: 1px solid black;`);const c=o.getContext("2d"),n=new ImageData(i,s);n.data.set(new Uint8Array(a.data.buffer)),c.putImageData(n,0,0),document.body.appendChild(o)}}let n=0;function g(t,e){const i=new o(e[0],e[1]);return i.wrapMode=33071,new r(t,i,null)}export{c as default};
5
+ import t from"../../../../core/Error.js";import has from"../../../../core/has.js";import{spritePadding as e}from"./definitions.js";import{log2 as i}from"./GeometryUtils.js";import s from"./Rect.js";import a from"./RectangleBinPack.js";import r from"../../../webgl/Texture.js";import{TextureDescriptor as o}from"../../../webgl/TextureDescriptor.js";function h(t){return t&&"static"===t.type}class c{constructor(t,e,i=0){this._mosaicPages=[],this._maxItemSize=0,this._currentPage=0,this._pageWidth=0,this._pageHeight=0,this._mosaicRects=new Map,this._spriteCopyQueue=[],this.pixelRatio=1,this._pageWidth=t,this._pageHeight=e,i>0&&(this._maxItemSize=i),this.pixelRatio=window.devicePixelRatio||1,this._binPack=new a(this._pageWidth,this._pageHeight);const s=Math.floor(this._pageWidth),r=Math.floor(this._pageHeight);this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(s*r)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0})}getWidth(t){return t>=this._mosaicPages.length?-1:this._mosaicPages[t].size[0]}getHeight(t){return t>=this._mosaicPages.length?-1:this._mosaicPages[t].size[1]}getPageTexture(t){return t<this._mosaicPages.length?this._mosaicPages[t].texture:null}has(t){return this._mosaicRects.has(t)}get itemCount(){return this._mosaicRects.size}getSpriteItem(t){return this._mosaicRects.get(t)}addSpriteItem(t,i,a,r,o,c,n=1,g="Linear",p=.5,m=1){if(this._mosaicRects.has(t))return this._mosaicRects.get(t);let d,u,l;if(h(a))[d,u,l]=this._allocateImage(i[0],i[1]);else{d=new s(0,0,i[0],i[1]),u=this._mosaicPages.length;const t=void 0;this._mosaicPages.push({mosaicsData:a,size:[i[0]+2*e,i[1]+2*e],dirty:!0,texture:t})}if(d.width<=0||d.height<=0)return null;const _={type:"sprite",rect:d,width:i[0],height:i[1],sdf:o,simplePattern:c,rasterizationScale:n,samplingMode:g,sdfPaddingRatio:p,sdfDecodeCoeff:m,page:u};return this._mosaicRects.set(t,_),h(a)&&(has("esri-mosaic-debug")&&this._showDebugSprite(i,a.data),this._copy({rect:d,spriteSize:i,spriteData:a.data,page:u,pageSize:l,repeat:r,sdf:o})),_}hasItemsToProcess(){return 0!==this._spriteCopyQueue.length}processNextItem(){const t=this._spriteCopyQueue.pop();t&&this._copy(t)}getMosaicItemPosition(t){const i=this.getSpriteItem(t),s=i?.rect;if(!s)return null;s.width=i.width,s.height=i.height;const a=i.width,r=i.height,o=e,h=this._mosaicPages[i.page].size;return{size:[i.width,i.height],tl:[(s.x+o)/h[0],(s.y+o)/h[1]],br:[(s.x+o+a)/h[0],(s.y+o+r)/h[1]],page:i.page}}bind(t,e,i=0,s=0){const a=this._mosaicPages[i],r=a.mosaicsData;let o=a.texture;if(o||(o=g(t,a.size),a.texture=o),o.setSamplingMode(e),t.bindTexture(o,s),h(r))a.dirty&&(o.setData(new Uint8Array(r.data.buffer)),o.generateMipmap(),has("esri-mosaic-debug")&&this._showDebugPage(i));else{const t=r.data;t.hasFrameData&&(t.loadFrame(o),o.generateMipmap())}a.dirty=!1}getTexture(t,e=0){const{context:i}=t,s=this._mosaicPages[e],a=s.mosaicsData;let r=s.texture;if(r||(r=g(i,s.size),s.texture=r),h(a))s.dirty&&(r.setData(new Uint8Array(a.data.buffer)),r.generateMipmap(),has("esri-mosaic-debug")&&this._showDebugPage(e));else{const e=a.data;e.update(t),e.hasFrameData&&(e.loadFrame(r),r.generateMipmap())}return s.dirty=!1,r}dispose(){this._binPack=null;for(const t of this._mosaicPages){const e=t.texture;e&&e.dispose();const i=t.mosaicsData;if(!h(i)){i.data.destroy()}}this._mosaicPages=null,this._mosaicRects.clear()}static _copyBits(t,e,i,s,a,r,o,h,c,n,g){let p=s*e+i,m=h*r+o;if(g){m-=r;for(let o=-1;o<=n;o++,p=((o+n)%n+s)*e+i,m+=r)for(let e=-1;e<=c;e++)a[m+e]=t[p+(e+c)%c]}else for(let d=0;d<n;d++){for(let e=0;e<c;e++)a[m+e]=t[p+e];p+=e,m+=r}}_copy(i){if(i.page>=this._mosaicPages.length)return;const s=this._mosaicPages[i.page],a=s.mosaicsData;if(!h(s.mosaicsData))throw new t("mapview-invalid-resource","unsuitable data type!");const r=i.spriteData,o=a.data;c._copyBits(r,i.spriteSize[0],0,0,o,i.pageSize[0],i.rect.x+e,i.rect.y+e,i.spriteSize[0],i.spriteSize[1],i.repeat),s.dirty=!0}_allocateImage(t,r){t+=2*e,r+=2*e;const o=Math.max(t,r);if(this._maxItemSize&&this._maxItemSize<o){const e=2**Math.ceil(i(t)),a=2**Math.ceil(i(r)),o=new s(0,0,t,r);return this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(e*a)},size:[e,a],dirty:!0,texture:void 0}),[o,this._mosaicPages.length-1,[e,a]]}const c=this._binPack.allocate(t,r);if(c.width<=0){const e=this._mosaicPages[this._currentPage];return!e.dirty&&h(e.mosaicsData)&&(e.mosaicsData.data=null),this._currentPage=this._mosaicPages.length,this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(this._pageWidth*this._pageHeight)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0}),this._binPack=new a(this._pageWidth,this._pageHeight),this._allocateImage(t,r)}return[c,this._currentPage,[this._pageWidth,this._pageHeight]]}_showDebugSprite([t,e],i){const s=document.createElement("canvas");s.width=t,s.height=e,s.setAttribute("style",`position: absolute; top: ${4+204*n++}px; right: 208px; width: 200px; height: 200px; border: 1px solid black;`);const a=s.getContext("2d"),r=new ImageData(t,e);r.data.set(new Uint8Array(i.buffer)),a.putImageData(r,0,0),document.body.appendChild(s)}_showDebugPage(t){const e=this._mosaicPages[t],{size:[i,s],mosaicsData:a}=e;if(!h(a))return;const r=`mosaicDebugPage${t}`,o=document.getElementById(r)??document.createElement("canvas");o.id=r,o.width=i,o.height=s,o.setAttribute("style",`position: absolute; top: ${4+204*t}px; right: 4px; width: 200px; height: 200px; border: 1px solid black;`);const c=o.getContext("2d"),n=new ImageData(i,s);n.data.set(new Uint8Array(a.data.buffer)),c.putImageData(n,0,0),document.body.appendChild(o)}}let n=0;function g(t,e){const i=new o(e[0],e[1]);return i.wrapMode=33071,new r(t,i,null)}export{c as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{disposeMaybe as e}from"../../../../core/maybe.js";import{create as t}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as r}from"../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import o from"../../../../geometry/Point.js";import{load as s,execute as i}from"../../../../geometry/operators/projectOperator.js";import{DisplayObject as a}from"../DisplayObject.js";import{VideoScreenTechnique as n}from"./shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js";import{ColorAttachment0 as c,SizedPixelFormat as d}from"../../../webgl/enums.js";import{FramebufferObject as h}from"../../../webgl/FramebufferObject.js";import{Texture as u}from"../../../webgl/Texture.js";import{TextureDescriptor as l}from"../../../webgl/TextureDescriptor.js";class m extends a{constructor(e,t){super(),this._controlPointsOwner=t,this.readbackScreenCoords=r(),this.videoTextureCoords=new Array(36),this.overlayTextureCoords=new Array(36),this._prevFBO=null,this._acquiredFBO=null,this._isBound=!1,this._hasCoordinates=!1,this._geIsLoaded=!1,this._ndcRect=[0,0,2,2],this._technique=new n,this.visible=!1,this.stage=e;for(let r=0;r<6;r++){const e=r/5;for(let t=0;t<6;t++){const o=t/5;this.videoTextureCoords[6*r+t]={u:o,v:e}}}}getMesh(e){throw new Error("Method not implemented.")}destroy(){super.destroy(),e(this._readbackTexture)}bind(e){const{context:t,pixelRatio:r,state:o}=e;if(this._update(e),!this.ready||0===this.readbackScreenCoords[2]||0===this.readbackScreenCoords[3])return this.requestRender(),!1;const{size:s}=o,i=Math.round(r*s[0]),a=Math.round(r*s[1]),n=new l(i,a);return n.samplingMode=9729,n.wrapMode=33071,this._acquiredFBO||(this._acquiredFBO=new h(t,n)),this._acquiredFBO.resize(i,a),t.bindFramebuffer(this._acquiredFBO),this._isBound=!0,!0}unbind(e){if(!this._isBound)return;const{context:t,pixelRatio:r,state:o}=e,{size:s}=o,i=this._acquiredFBO;if(!i.getColorTexture(c))throw new Error("Failed to get color texture from FBO.");const a=this._getReadbackTexture(e),n=this.readbackScreenCoords,d=Math.round(r*n[0]),h=Math.round(r*(s[1]-n[1]))-a.descriptor.height,u=d+a.descriptor.width,l=h+a.descriptor.height,m=Math.max(d,0),_=Math.max(h,0),b=Math.min(u,i.width)-m,f=Math.min(l,i.height)-_;b>0&&f>0&&i.copyToTexture(m,_,b,f,m-d,_-h,a),t.bindFramebuffer(this._prevFBO)}_update(e){const{state:r}=e,a=this._controlPointsOwner,n=a.groundControlPoints(),c=a.getSize(),d=r.size,h=n?.length;if(!h)return;if(s().then(()=>{this._geIsLoaded=!0}),!this._geIsLoaded)return void this.requestRender();const u=c[0],l=c[1],m=d[0],_=l/d[1],b=u/m;if(_>b){const e=b/_*2,t=(2-e)/2;this._ndcRect[0]=-1+t,this._ndcRect[1]=1,this._ndcRect[2]=e,this._ndcRect[3]=2}else{const e=_/b*2,t=(2-e)/2;this._ndcRect[0]=-1,this._ndcRect[1]=1-t,this._ndcRect[2]=2,this._ndcRect[3]=e}const f=new Array(h),x=r.spatialReference;for(let t=0;t<h;t++){const{lat:e,lon:r}=n[t],s=new o(r,e);f[t]=i(s,x)}const p=[];let M=1/0,g=1/0,w=-1/0,C=-1/0;for(const o of f){const e=t();r.toScreen(e,o.x,o.y),p.push({x:e[0],y:e[1]}),M=Math.min(M,e[0]),g=Math.min(g,e[1]),w=Math.max(w,e[0]),C=Math.max(C,e[1])}const R=[M,C],k=[w,g];this.readbackScreenCoords[0]=Math.max(Math.floor(R[0]),0),this.readbackScreenCoords[1]=Math.max(Math.floor(k[1]),0),this.readbackScreenCoords[2]=Math.ceil(k[0]),this.readbackScreenCoords[3]=Math.ceil(R[1]);for(let t=0;t<p.length;t++){const e=p[t],r=(e.x-M)/(w-M),o=(C-e.y)/(C-g);this.overlayTextureCoords[t]={u:r,v:o}}this._hasCoordinates=!0}_createTransforms(){return null}doRender(e){this._readbackTexture&&this._hasCoordinates?this._technique.render(e,{texture:this._readbackTexture,textureCoords:this.overlayTextureCoords,opacity:1,ndcRect:this._ndcRect}):this.requestRender()}_getReadbackTexture(e){const{context:t,pixelRatio:r}=e,o=Math.round(r*Math.abs(this.readbackScreenCoords[2]-this.readbackScreenCoords[0])),s=Math.round(r*Math.abs(this.readbackScreenCoords[3]-this.readbackScreenCoords[1]));if(this._readbackTexture)this._readbackTexture.resize(o,s);else{const e=new l(o,s);e.wrapMode=33071,e.internalFormat=d.RGBA8,this._readbackTexture=new u(t,e)}return this._readbackTexture}}export{m as default};
5
+ import{disposeMaybe as e}from"../../../../core/maybe.js";import{create as t}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{create as r}from"../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import o from"../../../../geometry/Point.js";import{load as s,execute as i}from"../../../../geometry/operators/projectOperator.js";import{DisplayObject as a}from"../DisplayObject.js";import{VideoScreenTechnique as n}from"./shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js";import{ColorAttachment0 as c,SizedPixelFormat as d}from"../../../webgl/enums.js";import{FramebufferObject as h}from"../../../webgl/FramebufferObject.js";import u from"../../../webgl/Texture.js";import{TextureDescriptor as l}from"../../../webgl/TextureDescriptor.js";class m extends a{constructor(e,t){super(),this._controlPointsOwner=t,this.readbackScreenCoords=r(),this.videoTextureCoords=new Array(36),this.overlayTextureCoords=new Array(36),this._prevFBO=null,this._acquiredFBO=null,this._isBound=!1,this._hasCoordinates=!1,this._geIsLoaded=!1,this._ndcRect=[0,0,2,2],this._technique=new n,this.visible=!1,this.stage=e;for(let r=0;r<6;r++){const e=r/5;for(let t=0;t<6;t++){const o=t/5;this.videoTextureCoords[6*r+t]={u:o,v:e}}}}getMesh(e){throw new Error("Method not implemented.")}destroy(){super.destroy(),e(this._readbackTexture)}bind(e){const{context:t,pixelRatio:r,state:o}=e;if(this._update(e),!this.ready||0===this.readbackScreenCoords[2]||0===this.readbackScreenCoords[3])return this.requestRender(),!1;const{size:s}=o,i=Math.round(r*s[0]),a=Math.round(r*s[1]),n=new l(i,a);return n.samplingMode=9729,n.wrapMode=33071,this._acquiredFBO||(this._acquiredFBO=new h(t,n)),this._acquiredFBO.resize(i,a),t.bindFramebuffer(this._acquiredFBO),this._isBound=!0,!0}unbind(e){if(!this._isBound)return;const{context:t,pixelRatio:r,state:o}=e,{size:s}=o,i=this._acquiredFBO;if(!i.getColorTexture(c))throw new Error("Failed to get color texture from FBO.");const a=this._getReadbackTexture(e),n=this.readbackScreenCoords,d=Math.round(r*n[0]),h=Math.round(r*(s[1]-n[1]))-a.descriptor.height,u=d+a.descriptor.width,l=h+a.descriptor.height,m=Math.max(d,0),_=Math.max(h,0),b=Math.min(u,i.width)-m,f=Math.min(l,i.height)-_;b>0&&f>0&&i.copyToTexture(m,_,b,f,m-d,_-h,a),t.bindFramebuffer(this._prevFBO)}_update(e){const{state:r}=e,a=this._controlPointsOwner,n=a.groundControlPoints(),c=a.getSize(),d=r.size,h=n?.length;if(!h)return;if(s().then(()=>{this._geIsLoaded=!0}),!this._geIsLoaded)return void this.requestRender();const u=c[0],l=c[1],m=d[0],_=l/d[1],b=u/m;if(_>b){const e=b/_*2,t=(2-e)/2;this._ndcRect[0]=-1+t,this._ndcRect[1]=1,this._ndcRect[2]=e,this._ndcRect[3]=2}else{const e=_/b*2,t=(2-e)/2;this._ndcRect[0]=-1,this._ndcRect[1]=1-t,this._ndcRect[2]=2,this._ndcRect[3]=e}const f=new Array(h),x=r.spatialReference;for(let t=0;t<h;t++){const{lat:e,lon:r}=n[t],s=new o(r,e);f[t]=i(s,x)}const p=[];let M=1/0,g=1/0,w=-1/0,C=-1/0;for(const o of f){const e=t();r.toScreen(e,o.x,o.y),p.push({x:e[0],y:e[1]}),M=Math.min(M,e[0]),g=Math.min(g,e[1]),w=Math.max(w,e[0]),C=Math.max(C,e[1])}const R=[M,C],k=[w,g];this.readbackScreenCoords[0]=Math.max(Math.floor(R[0]),0),this.readbackScreenCoords[1]=Math.max(Math.floor(k[1]),0),this.readbackScreenCoords[2]=Math.ceil(k[0]),this.readbackScreenCoords[3]=Math.ceil(R[1]);for(let t=0;t<p.length;t++){const e=p[t],r=(e.x-M)/(w-M),o=(C-e.y)/(C-g);this.overlayTextureCoords[t]={u:r,v:o}}this._hasCoordinates=!0}_createTransforms(){return null}doRender(e){this._readbackTexture&&this._hasCoordinates?this._technique.render(e,{texture:this._readbackTexture,textureCoords:this.overlayTextureCoords,opacity:1,ndcRect:this._ndcRect}):this.requestRender()}_getReadbackTexture(e){const{context:t,pixelRatio:r}=e,o=Math.round(r*Math.abs(this.readbackScreenCoords[2]-this.readbackScreenCoords[0])),s=Math.round(r*Math.abs(this.readbackScreenCoords[3]-this.readbackScreenCoords[1]));if(this._readbackTexture)this._readbackTexture.resize(o,s);else{const e=new l(o,s);e.wrapMode=33071,e.internalFormat=d.RGBA8,this._readbackTexture=new u(t,e)}return this._readbackTexture}}export{m as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../core/has.js";import{brushes as e}from"../brushes.js";import{Container as s}from"../Container.js";import r from"./ClippingInfo.js";class i extends s{set clips(e){super.clips=e,this._updateClippingInfo(e)}renderChildren(e){e.painter.setPipelineState(null),null==this._renderPasses&&(this._renderPasses=this.prepareRenderPasses(e.painter));for(const r of this._renderPasses)try{r.render(e)}catch(s){}}prepareRenderPasses(s){return[s.registerRenderPass({name:"clip",brushes:[e.clip],target:()=>this._clippingInfos,drawPhase:215})]}_updateClippingInfo(e){null!=this._clippingInfos&&(this._clippingInfos.forEach(e=>e.destroy()),this._clippingInfos=null),null!=e&&e.length&&(this._clippingInfos=e.items.map(e=>r.fromClipArea(this.stage,e))),this.requestRender()}}export{i as default};
5
+ import"../../../../core/has.js";import{Container as e}from"../Container.js";import{clipTechnique as r}from"./shaderGraph/techniques/clip/ClipTechnique.js";class s extends e{renderChildren(e){e.painter.setPipelineState(null),null==this._renderPasses&&(this._renderPasses=this.prepareRenderPasses(e.painter));for(const t of this._clips)r.render(e,t);for(const r of this._renderPasses)try{r.render(e)}catch(s){}}prepareRenderPasses(e){return[]}}export{s as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{PixelType as t}from"../../../../../webgl/enums.js";import{Texture as e}from"../../../../../webgl/Texture.js";import{TextureDescriptor as s}from"../../../../../webgl/TextureDescriptor.js";import{ValidatedTextureDescriptor as r}from"../../../../../webgl/ValidatedTextureDescriptor.js";class o{constructor(){this._entries=new n,this._nodes=new Map,this._book=new h}add(t){let e=this._entries.get(t);if(!e){const s=this._book.add(t),r=new Object;e={location:s,references:0,handle:r};const o=this._entries.set(t,e);this._nodes.set(r,o)}return e.references++,e}remove(t){const e=this._nodes.get(t.handle);e&&e.payload&&(e.payload.references--,0===e.payload.references&&(this._book.remove(e.payload.location),this._entries.delete(e),this._nodes.delete(t.handle)))}getTexture(t,e){return this._book.getTexture(t,e)}destroy(){this._book.destroy()}}class i{constructor(t,e){this.parent=t,this.key=e,this.payload=null,this._children=new Map}get(t){return this._children.get(t)}ensure(t){let e=this._children.get(t);return e||(e=new i(this,t),this._children.set(t,e)),e}delete(t){this._children.delete(t)}}class n{constructor(){this._root=new i(null,NaN)}set(t,e){let s=this._root;for(const r of t)for(const t of r)s=s.ensure(t);return s.payload=e,s}delete(t){t.parent?.delete(t.key)}get(t){let e=this._root;for(const s of t)for(const t of s){const s=e.get(t);if(!s)return;e=s}return e.payload||void 0}}class h{constructor(){this._pages=[]}add(t){0===this._pages.length&&this._pages.push(new l);let e=this._pages.length-1,s=this._pages[e].add(t);if(s||(this._pages.push(new l),e=this._pages.length-1,s=this._pages[e].add(t)),!s)throw new Error("Data allocation failed.");return{...s,page:e}}remove(t){this._pages[t.page].remove(t)}getTexture(t,e){return this._pages[e].getTexture(t)}destroy(){}}class l{constructor(){this._cursor={row:0,column:0},this._columns=1024,this._rows=1024,this._data=new Float32Array(this._columns*this._rows*4),this._texture=null,this._textureCursor={row:0,column:0}}add(t){if(t.length>this._columns)throw new Error(`The maximum allocation size is ${this._columns} texels.`);const e={...this._cursor};if(e.column+=t.length,e.column>=this._columns&&(e.column=t.length,e.row++),e.row>=this._rows)return null;this._cursor=e;const s={...this._cursor};s.column-=t.length;let r=4*(s.row*this._columns+s.column);for(let o=0;o<t.length;o++)this._data[r++]=t[o][0],this._data[r++]=t[o][1],this._data[r++]=t[o][2],this._data[r++]=t[o][3];return s}remove(t){}getTexture(o){if(!this._texture){const i=new s(this._columns,this._rows);i.pixelFormat=6408,i.dataType=t.FLOAT,i.wrapMode=33071,i.samplingMode=9728,i.hasMipmap=!1;const n=new r(o,i);this._texture=new e(o,n)}if(this._cursor.row===this._textureCursor.row&&this._cursor.column===this._textureCursor.column)return this._texture;const i=this._textureCursor.row,n=this._cursor.row-i+1;return this._texture.updateData(0,0,i,this._columns,n,this._data,i),this._textureCursor.row=this._cursor.row,this._textureCursor.column=this._cursor.column,this._texture}destroy(){this._texture?.dispose()}}export{o as AnimationStore,n as PrefixMap};
5
+ import{PixelType as t}from"../../../../../webgl/enums.js";import e from"../../../../../webgl/Texture.js";import{TextureDescriptor as s}from"../../../../../webgl/TextureDescriptor.js";import{ValidatedTextureDescriptor as r}from"../../../../../webgl/ValidatedTextureDescriptor.js";class o{constructor(){this._entries=new n,this._nodes=new Map,this._book=new h}add(t){let e=this._entries.get(t);if(!e){const s=this._book.add(t),r=new Object;e={location:s,references:0,handle:r};const o=this._entries.set(t,e);this._nodes.set(r,o)}return e.references++,e}remove(t){const e=this._nodes.get(t.handle);e&&e.payload&&(e.payload.references--,0===e.payload.references&&(this._book.remove(e.payload.location),this._entries.delete(e),this._nodes.delete(t.handle)))}getTexture(t,e){return this._book.getTexture(t,e)}destroy(){this._book.destroy()}}class i{constructor(t,e){this.parent=t,this.key=e,this.payload=null,this._children=new Map}get(t){return this._children.get(t)}ensure(t){let e=this._children.get(t);return e||(e=new i(this,t),this._children.set(t,e)),e}delete(t){this._children.delete(t)}}class n{constructor(){this._root=new i(null,NaN)}set(t,e){let s=this._root;for(const r of t)for(const t of r)s=s.ensure(t);return s.payload=e,s}delete(t){t.parent?.delete(t.key)}get(t){let e=this._root;for(const s of t)for(const t of s){const s=e.get(t);if(!s)return;e=s}return e.payload||void 0}}class h{constructor(){this._pages=[]}add(t){0===this._pages.length&&this._pages.push(new l);let e=this._pages.length-1,s=this._pages[e].add(t);if(s||(this._pages.push(new l),e=this._pages.length-1,s=this._pages[e].add(t)),!s)throw new Error("Data allocation failed.");return{...s,page:e}}remove(t){this._pages[t.page].remove(t)}getTexture(t,e){return this._pages[e].getTexture(t)}destroy(){}}class l{constructor(){this._cursor={row:0,column:0},this._columns=1024,this._rows=1024,this._data=new Float32Array(this._columns*this._rows*4),this._texture=null,this._textureCursor={row:0,column:0}}add(t){if(t.length>this._columns)throw new Error(`The maximum allocation size is ${this._columns} texels.`);const e={...this._cursor};if(e.column+=t.length,e.column>=this._columns&&(e.column=t.length,e.row++),e.row>=this._rows)return null;this._cursor=e;const s={...this._cursor};s.column-=t.length;let r=4*(s.row*this._columns+s.column);for(let o=0;o<t.length;o++)this._data[r++]=t[o][0],this._data[r++]=t[o][1],this._data[r++]=t[o][2],this._data[r++]=t[o][3];return s}remove(t){}getTexture(o){if(!this._texture){const i=new s(this._columns,this._rows);i.pixelFormat=6408,i.dataType=t.FLOAT,i.wrapMode=33071,i.samplingMode=9728,i.hasMipmap=!1;const n=new r(o,i);this._texture=new e(o,n)}if(this._cursor.row===this._textureCursor.row&&this._cursor.column===this._textureCursor.column)return this._texture;const i=this._textureCursor.row,n=this._cursor.row-i+1;return this._texture.updateData(0,0,i,this._columns,n,this._data,i),this._textureCursor.row=this._cursor.row,this._textureCursor.column=this._cursor.column,this._texture}destroy(){this._texture?.dispose()}}export{o as AnimationStore,n as PrefixMap};