@arcgis/core 5.0.0-next.72 → 5.0.0-next.74

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 (258) hide show
  1. package/WebDocument2D.d.ts +5 -30
  2. package/analysis/ElevationProfile/ElevationProfileLineQuery.d.ts +1 -1
  3. package/assets/esri/core/workers/RemoteClient.js +1 -1
  4. package/assets/esri/core/workers/chunks/0b666327e8090a6e6f6a.js +1 -0
  5. package/assets/esri/core/workers/chunks/16a7edb381621085a631.js +1 -0
  6. package/assets/esri/core/workers/chunks/{e246b256347a281c13fd.js → 22288b62da20a7a78a4f.js} +1 -1
  7. package/assets/esri/core/workers/chunks/{7e37a3005f2ad2c0a918.js → 23cf4cbc389d2b50e968.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{935a6dccb88557f98189.js → 2a2f33df530b61e3a43f.js} +7 -5
  9. package/assets/esri/core/workers/chunks/4750f55a289bc0cf3d77.js +1 -0
  10. package/assets/esri/core/workers/chunks/a5181292b309b8249bd8.js +1 -0
  11. package/assets/esri/core/workers/chunks/ae733ee050f27f7d8924.js +1 -0
  12. package/assets/esri/core/workers/chunks/{64985e9b6e2edb3ceb37.js → b498db9715a722c52995.js} +45 -58
  13. package/assets/esri/core/workers/chunks/befeca51530bba5e8073.js +1 -0
  14. package/assets/esri/core/workers/chunks/cd788ed111e1e35cf9c8.js +1 -0
  15. package/assets/esri/core/workers/chunks/f35021214e534d5e0446.js +1 -0
  16. package/assets/esri/themes/base/widgets/_FeatureTable.scss +99 -22
  17. package/assets/esri/themes/dark/main.css +1 -1
  18. package/assets/esri/themes/light/main.css +1 -1
  19. package/assets/esri/themes/light/view.css +1 -1
  20. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable.json +1 -1
  21. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_en.json +1 -1
  22. package/chunks/ComponentShader.glsl.js +1 -1
  23. package/chunks/GlowBlur.glsl.js +2 -3
  24. package/chunks/HUDMaterial.glsl.js +43 -56
  25. package/config.d.ts +6 -8
  26. package/config.js +1 -1
  27. package/core/Collection.d.ts +27 -1
  28. package/core/types.d.ts +0 -23
  29. package/geometry/support/MeshTexture.d.ts +0 -2
  30. package/geometry/support/MeshVertexAttributes.d.ts +0 -2
  31. package/identity/IdentityManagerBase.d.ts +3 -6
  32. package/interfaces.d.ts +3 -3
  33. package/kernel.js +1 -1
  34. package/layers/BaseDynamicLayer.d.ts +1 -4
  35. package/layers/BaseElevationLayer.d.ts +3 -6
  36. package/layers/BuildingSceneLayer.d.ts +1 -4
  37. package/layers/CSVLayer.d.ts +1 -4
  38. package/layers/CatalogLayer.d.ts +1 -4
  39. package/layers/DimensionLayer.d.ts +1 -4
  40. package/layers/ElevationLayer.d.ts +3 -6
  41. package/layers/FeatureLayer.d.ts +1 -4
  42. package/layers/GaussianSplatLayer.d.ts +0 -1
  43. package/layers/GeoJSONLayer.d.ts +1 -4
  44. package/layers/GeoRSSLayer.d.ts +1 -4
  45. package/layers/GraphicsLayer.d.ts +1 -4
  46. package/layers/GroupLayer.d.ts +1 -4
  47. package/layers/ImageryLayer.d.ts +1 -4
  48. package/layers/ImageryTileLayer.d.ts +1 -4
  49. package/layers/IntegratedMesh3DTilesLayer.d.ts +1 -4
  50. package/layers/IntegratedMeshLayer.d.ts +1 -4
  51. package/layers/KMLLayer.d.ts +1 -4
  52. package/layers/Layer.d.ts +2 -6
  53. package/layers/LineOfSightLayer.d.ts +1 -4
  54. package/layers/MapImageLayer.d.ts +1 -4
  55. package/layers/MapNotesLayer.d.ts +1 -4
  56. package/layers/MediaLayer.d.ts +1 -4
  57. package/layers/OGCFeatureLayer.d.ts +1 -4
  58. package/layers/OrientedImageryLayer.d.ts +1 -4
  59. package/layers/ParquetLayer.d.ts +1 -4
  60. package/layers/PointCloudLayer.d.ts +1 -4
  61. package/layers/RouteLayer.d.ts +2 -5
  62. package/layers/SceneLayer.d.ts +1 -4
  63. package/layers/SubtypeGroupLayer.d.ts +1 -12
  64. package/layers/TileLayer.d.ts +1 -4
  65. package/layers/UnknownLayer.d.ts +1 -4
  66. package/layers/UnsupportedLayer.d.ts +1 -4
  67. package/layers/VectorTileLayer.d.ts +1 -4
  68. package/layers/VideoLayer.d.ts +1 -4
  69. package/layers/ViewshedLayer.d.ts +1 -4
  70. package/layers/VoxelLayer.d.ts +1 -4
  71. package/layers/WCSLayer.d.ts +1 -4
  72. package/layers/WFSLayer.d.ts +1 -4
  73. package/layers/WMSLayer.d.ts +1 -4
  74. package/layers/WMTSLayer.d.ts +1 -4
  75. package/layers/catalog/CatalogDynamicGroupLayer.d.ts +1 -4
  76. package/layers/catalog/CatalogFootprintLayer.d.ts +1 -4
  77. package/layers/knowledgeGraph/KnowledgeGraphSublayer.d.ts +1 -6
  78. package/layers/mixins/EditBusLayer.d.ts +0 -1
  79. package/layers/support/FeatureFilter.d.ts +0 -1
  80. package/layers/support/MosaicRule.d.ts +0 -4
  81. package/layers/support/types.d.ts +2 -2
  82. package/layers/types.d.ts +19 -6
  83. package/package.json +1 -1
  84. package/portal/PortalUser.d.ts +1 -1
  85. package/renderers/support/RendererLegendOptions.d.ts +0 -1
  86. package/request/types.d.ts +0 -1
  87. package/rest/support/NormalizationBinParametersMixin.d.ts +18 -20
  88. package/rest/support/PrintTemplate.d.ts +0 -1
  89. package/rest/support/RelationshipQuery.d.ts +1 -10
  90. package/rest/support/types.d.ts +29 -3
  91. package/smartMapping/heuristics/binLevel.d.ts +1 -1
  92. package/smartMapping/heuristics/scaleRange.d.ts +1 -1
  93. package/smartMapping/heuristics/sizeRange.d.ts +1 -1
  94. package/smartMapping/heuristics/types.d.ts +0 -2
  95. package/smartMapping/labels/bins.d.ts +1 -1
  96. package/smartMapping/labels/clusters.d.ts +1 -1
  97. package/smartMapping/popup/clusters.d.ts +1 -1
  98. package/smartMapping/popup/templates.d.ts +1 -1
  99. package/smartMapping/raster/renderers/classBreaks.d.ts +1 -1
  100. package/smartMapping/raster/renderers/colormap.d.ts +1 -1
  101. package/smartMapping/raster/renderers/flow.d.ts +0 -1
  102. package/smartMapping/raster/renderers/rgb.d.ts +1 -1
  103. package/smartMapping/raster/renderers/shadedRelief.d.ts +0 -1
  104. package/smartMapping/raster/renderers/stretch.d.ts +1 -1
  105. package/smartMapping/raster/renderers/uniqueValue.d.ts +0 -1
  106. package/smartMapping/raster/renderers/vectorField.d.ts +0 -1
  107. package/smartMapping/raster/support/utils.d.ts +0 -2
  108. package/smartMapping/renderers/color.d.ts +6 -6
  109. package/smartMapping/renderers/dotDensity.d.ts +0 -1
  110. package/smartMapping/renderers/heatmap.d.ts +1 -1
  111. package/smartMapping/renderers/location.d.ts +0 -1
  112. package/smartMapping/renderers/opacity.d.ts +1 -1
  113. package/smartMapping/renderers/pieChart.d.ts +0 -2
  114. package/smartMapping/renderers/predominance.d.ts +0 -1
  115. package/smartMapping/renderers/relationship.d.ts +0 -1
  116. package/smartMapping/renderers/size.d.ts +4 -6
  117. package/smartMapping/renderers/type.d.ts +9 -5
  118. package/smartMapping/renderers/univariateColorSize.d.ts +2 -2
  119. package/smartMapping/statistics/classBreaks.d.ts +1 -1
  120. package/smartMapping/statistics/heatmapStatistics.d.ts +1 -1
  121. package/smartMapping/statistics/histogram.d.ts +1 -1
  122. package/smartMapping/statistics/predominantCategories.d.ts +1 -1
  123. package/smartMapping/statistics/summaryStatistics.d.ts +1 -1
  124. package/smartMapping/statistics/summaryStatisticsForAge.d.ts +1 -1
  125. package/smartMapping/statistics/support/ageUtils.d.ts +1 -1
  126. package/smartMapping/statistics/types.d.ts +26 -8
  127. package/smartMapping/statistics/uniqueValues.d.ts +1 -1
  128. package/smartMapping/symbology/color.d.ts +4 -4
  129. package/smartMapping/symbology/dotDensity.d.ts +3 -3
  130. package/smartMapping/symbology/flow.d.ts +3 -3
  131. package/smartMapping/symbology/heatmap.d.ts +3 -3
  132. package/smartMapping/symbology/location.d.ts +1 -1
  133. package/smartMapping/symbology/pieChart.d.ts +3 -3
  134. package/smartMapping/symbology/predominance.d.ts +3 -3
  135. package/smartMapping/symbology/relationship.d.ts +3 -3
  136. package/smartMapping/symbology/size.d.ts +1 -1
  137. package/smartMapping/symbology/support/colorRamps.d.ts +1 -1
  138. package/smartMapping/symbology/type.d.ts +3 -3
  139. package/support/revision.js +1 -1
  140. package/symbols/cim/types.d.ts +0 -12
  141. package/symbols/support/symbolUtils.d.ts +1 -1
  142. package/views/2d/MapViewConstraints.d.ts +2 -10
  143. package/views/2d/engine/brushes.js +1 -1
  144. package/views/2d/engine/vectorTiles/GlyphMosaic.js +1 -1
  145. package/views/2d/engine/vectorTiles/MemoryBuffer.js +1 -1
  146. package/views/2d/engine/vectorTiles/RenderBucket.js +1 -1
  147. package/views/2d/engine/vectorTiles/SpriteMosaic.js +1 -1
  148. package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
  149. package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
  150. package/views/2d/engine/vectorTiles/VertexMemoryBuffer.js +1 -1
  151. package/views/2d/engine/vectorTiles/shaders/VTLBackgroundMaterial.js +1 -1
  152. package/views/2d/engine/vectorTiles/shaders/VTLCircleMaterial.js +1 -1
  153. package/views/2d/engine/vectorTiles/shaders/VTLFillMaterial.js +1 -1
  154. package/views/2d/engine/vectorTiles/shaders/VTLLineMaterial.js +1 -1
  155. package/views/2d/engine/vectorTiles/shaders/VTLMaterial.js +1 -1
  156. package/views/2d/engine/vectorTiles/shaders/VTLSymbolMaterial.js +1 -1
  157. package/views/2d/engine/vectorTiles/style/StyleLayer.js +1 -1
  158. package/views/2d/engine/webgl/Painter.js +1 -1
  159. package/views/2d/engine/webgl/RenderingDevice.js +5 -0
  160. package/views/2d/engine/webgl/WGLContainer.js +1 -1
  161. package/views/2d/engine/webgl/meshing/Mesh.js +1 -1
  162. package/views/2d/engine/webgl/number.js +1 -1
  163. package/views/2d/engine/webgl/shaderGraph/graph/glsl.js +1 -1
  164. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderBackground.js +5 -0
  165. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderCircle.js +5 -0
  166. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderFill.js +5 -0
  167. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderIcon.js +5 -0
  168. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderLine.js +5 -0
  169. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderOutline.js +5 -0
  170. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vector-tiles/VTLShaderText.js +5 -0
  171. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueBackground.js +5 -0
  172. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueCircle.js +5 -0
  173. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueFill.js +5 -0
  174. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueLine.js +5 -0
  175. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueSymbol.js +5 -0
  176. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniques.js +5 -0
  177. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  178. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  179. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  180. package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
  181. package/views/3d/layers/i3s/meshUtils.js +1 -1
  182. package/views/3d/state/NearFarHeuristic.js +1 -1
  183. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  184. package/views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js +1 -1
  185. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  186. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  187. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +6 -4
  188. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +18 -14
  189. package/views/3d/webgl-engine/effects/glow/GlowBlur.glsl.js +1 -1
  190. package/views/3d/webgl-engine/effects/glow/GlowRenderNode.js +1 -1
  191. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechniqueConfiguration.js +1 -1
  192. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  193. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  194. package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
  195. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +23 -20
  196. package/views/BreakpointsOwner.d.ts +2 -2
  197. package/views/LinkChartView.d.ts +0 -2
  198. package/views/View2D.d.ts +3 -15
  199. package/views/input/types.d.ts +2 -13
  200. package/views/layers/BuildingComponentSublayerView.d.ts +0 -1
  201. package/views/types.d.ts +2 -9
  202. package/views/webgl/VertexArrayObject.js +1 -1
  203. package/webdoc/ips/SmoothingProperties.d.ts +1 -1
  204. package/webdoc/ips/SmoothingProperties.js +1 -1
  205. package/widgets/BasemapLayerList/BasemapLayerListVisibleElements.d.ts +10 -10
  206. package/widgets/BasemapLayerList/types.d.ts +6 -1
  207. package/widgets/Bookmarks/BookmarksVisibleElements.d.ts +0 -9
  208. package/widgets/Bookmarks/types.d.ts +0 -4
  209. package/widgets/CatalogLayerList/CatalogLayerListVisibleElements.d.ts +2 -2
  210. package/widgets/CatalogLayerList/types.d.ts +5 -1
  211. package/widgets/Editor/VisibleElements.d.ts +0 -11
  212. package/widgets/ElevationProfile/types.d.ts +1 -1
  213. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  214. package/widgets/FeatureTable/FieldColumn.d.ts +0 -1
  215. package/widgets/FeatureTable/VisibleElements.d.ts +2 -16
  216. package/widgets/FeatureTable/support/AttachmentsViewOptions.d.ts +5 -3
  217. package/widgets/FeatureTable/support/AttachmentsViewOptions.js +1 -1
  218. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  219. package/widgets/FeatureTable.js +1 -1
  220. package/widgets/Features/FeaturesViewModel.d.ts +3 -27
  221. package/widgets/Features/FeaturesVisibleElements.d.ts +4 -4
  222. package/widgets/LayerList/LayerListViewModel.d.ts +20 -5
  223. package/widgets/LayerList/LayerListVisibleElements.d.ts +10 -12
  224. package/widgets/LayerList/ListItem.d.ts +33 -0
  225. package/widgets/LayerList/ListItemPanel.d.ts +8 -2
  226. package/widgets/LayerList/types.d.ts +58 -15
  227. package/widgets/Popup/PopupVisibleElements.d.ts +6 -6
  228. package/widgets/Popup/types.d.ts +1 -1
  229. package/widgets/ScaleRangeSlider/ScaleRanges.d.ts +1 -1
  230. package/widgets/Sketch/CreateToolVisibilityMap.d.ts +0 -4
  231. package/widgets/Sketch/VisibleElements.d.ts +0 -2
  232. package/widgets/Sketch/types.d.ts +1 -1
  233. package/widgets/TableList/ListItemPanel.d.ts +8 -0
  234. package/widgets/TableList/TableListViewModel.d.ts +9 -14
  235. package/widgets/TableList/TableListVisibleElements.d.ts +9 -11
  236. package/widgets/TableList/types.d.ts +13 -7
  237. package/widgets/support/SnappingControls/VisibleElements.d.ts +0 -4
  238. package/widgets/types.d.ts +1 -9
  239. package/assets/esri/core/workers/chunks/1d8fc0239c907ff5d1e8.js +0 -1
  240. package/assets/esri/core/workers/chunks/562cddaf63985e53ee6e.js +0 -1
  241. package/assets/esri/core/workers/chunks/b899b4e7979c13b99526.js +0 -1
  242. package/assets/esri/core/workers/chunks/d0ae8752419d5b761190.js +0 -1
  243. package/assets/esri/core/workers/chunks/df2ba5f9d57080fca183.js +0 -1
  244. package/assets/esri/core/workers/chunks/ee175fd4ec706f7878c0.js +0 -1
  245. package/assets/esri/core/workers/chunks/fc00d7278b43df813c54.js +0 -1
  246. package/layers/mixins/ScaleRange.d.ts +0 -16
  247. package/views/2d/engine/vectorTiles/shaders/Programs.js +0 -5
  248. package/views/2d/engine/vectorTiles/shaders/VTLMaterialManager.js +0 -5
  249. package/views/2d/engine/vectorTiles/shaders/sources/resolver.js +0 -5
  250. package/views/2d/engine/vectorTiles/shaders/sources/shaderRepository.js +0 -5
  251. package/views/2d/engine/vtlBrushes.js +0 -5
  252. package/views/2d/engine/webgl/brushes/WGLBrushVTLBackground.js +0 -5
  253. package/views/2d/engine/webgl/brushes/WGLBrushVTLCircle.js +0 -5
  254. package/views/2d/engine/webgl/brushes/WGLBrushVTLFill.js +0 -5
  255. package/views/2d/engine/webgl/brushes/WGLBrushVTLLine.js +0 -5
  256. package/views/2d/engine/webgl/brushes/WGLBrushVTLSymbol.js +0 -5
  257. package/views/3d/webgl-engine/effects/glow/GlowPresets.glsl.js +0 -5
  258. package/widgets/FeatureTable/support/FeatureStore.d.ts +0 -1
@@ -24,7 +24,7 @@ export function getThemes(basemap?: Basemap | string): Theme[];
24
24
  * data-driven visualizations in a [Layer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-Layer.html). The `basemap` parameter determines the color of the
25
25
  * symbols used to visualize each feature. The `geometryType` determines which type of symbol to return.
26
26
  *
27
- * @param params - See the table below for details of each parameter that may be passed to this function.
27
+ * @param params - The function parameters.
28
28
  * @returns Returns an object containing
29
29
  * the optimal relationship color scheme to use for the given basemap; it also contains secondary schemes.
30
30
  * @example
@@ -42,7 +42,7 @@ export function getSchemes(params: GetSchemesParameters): RelationshipSchemes |
42
42
  /**
43
43
  * Returns a relationship scheme with the provided name.
44
44
  *
45
- * @param params - See the table below for details of each parameter that may be passed to this function.
45
+ * @param params - The function parameters.
46
46
  * @returns Returns the relationship scheme
47
47
  * with the given name.
48
48
  * @since 4.12
@@ -60,7 +60,7 @@ export function getSchemeByName(params: GetSchemesByNameParameters): Relationshi
60
60
  * Returns an array of relationship schemes with the provided tags. These schemes define symbol properties for
61
61
  * relationship visualizations.
62
62
  *
63
- * @param params - See the table below for details of each parameter that may be passed to this function.
63
+ * @param params - The function parameters.
64
64
  * @returns Returns an array of relationship schemes
65
65
  * either including or excluding the provided tags.
66
66
  * @since 4.12
@@ -25,7 +25,7 @@ export function getThemes(basemap?: Basemap | string | null | undefined): Theme[
25
25
  * a [FeatureLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html). The `basemap` parameter determines the color of the
26
26
  * graphics used to visualize each feature. The `geometryType` determines which type of symbol to return.
27
27
  *
28
- * @param params - See the table below for details of each parameter that may be passed to this function.
28
+ * @param params - The function parameters.
29
29
  * @returns Returns an object containing the optimal size scheme to use for the given
30
30
  * basemap and secondary schemes that may also be used.
31
31
  * @example
@@ -63,7 +63,7 @@ export function byName(name: string): ColorRamp | null | undefined;
63
63
  * Returns the color ramps available in the smartMapping [color schemes](https://developers.arcgis.com/javascript/latest/api-reference/esri-smartMapping-symbology-color.html)
64
64
  * matching the given tags.
65
65
  *
66
- * @param params - See the table below for details of each parameter that may be passed to this function.
66
+ * @param params - The function parameters.
67
67
  * @returns The
68
68
  * color ramps matching the given tags.
69
69
  * @example
@@ -26,7 +26,7 @@ export function getThemes(basemap?: Basemap | string | null | undefined): Theme[
26
26
  * a [Layer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-Layer.html). The `basemap` parameter determines the color of the
27
27
  * graphics used to visualize each feature. The `geometryType` determines which type of symbol to return.
28
28
  *
29
- * @param params - See the table below for details of each parameter that may be passed to this function.
29
+ * @param params - The function parameters
30
30
  * @returns Returns an object containing the optimal type scheme to use for the given
31
31
  * basemap; it also contains secondary schemes.
32
32
  * @example
@@ -44,7 +44,7 @@ export function getSchemes(params: GetSchemesParameters): TypeSchemes | null | u
44
44
  /**
45
45
  * Returns a type scheme with the provided name.
46
46
  *
47
- * @param params - See the table below for details of each parameter that may be passed to this function.
47
+ * @param params - The function parameters.
48
48
  * @returns Returns the type scheme
49
49
  * with the given name.
50
50
  * @since 4.12
@@ -62,7 +62,7 @@ export function getSchemeByName(params: GetSchemesByNameParameters): TypeScheme
62
62
  * Returns an array of type schemes with the provided tags. These schemes define symbol properties for
63
63
  * data-driven visualizations in any layer that can be rendered with a [UniqueValueRenderer](https://developers.arcgis.com/javascript/latest/api-reference/esri-renderers-UniqueValueRenderer.html).
64
64
  *
65
- * @param params - See the table below for details of each parameter that may be passed to this function.
65
+ * @param params - The parameters of the function.
66
66
  * @returns Returns an array of type schemes
67
67
  * either including or excluding the provided tags.
68
68
  * @since 4.12
@@ -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
- const e="20251221",a="54728f1ee69adab0e06805a7d7147f0e2d6b80ce";export{e as buildDate,a as commitHash};
5
+ const c="20251223",b="7b41a0a44b2933b608fc9d2c8743cababd6fcfc2";export{c as buildDate,b as commitHash};
@@ -259,7 +259,6 @@ export interface CIMSymbolLayer {
259
259
  /**
260
260
  * The animations applied to the marker.
261
261
  *
262
- * @since 4.31
263
262
  * @since 5.0
264
263
  */
265
264
  animations?: CIMSymbolAnimation[];
@@ -1276,14 +1275,12 @@ export interface CIMSymbolReference {
1276
1275
  /**
1277
1276
  * The maximum scale the symbol reference should be displayed. To show your symbol at all scales, set `minScale` and `maxScale` to `0`.
1278
1277
  *
1279
- * @since 4.20
1280
1278
  * @since 5.0
1281
1279
  */
1282
1280
  maxScale?: number;
1283
1281
  /**
1284
1282
  * The minimum scale the symbol reference should be displayed. To show your symbol at all scales, set `minScale` and `maxScale` to `0`.
1285
1283
  *
1286
- * @since 4.20
1287
1284
  * @since 5.0
1288
1285
  */
1289
1286
  minScale?: number;
@@ -1704,7 +1701,6 @@ export interface CIMMarkerPlacementInsidePolygon extends CIMMarkerFillPlacement
1704
1701
  * A percentage that determines the randomness of markers within the polygon. Accepted values are between 0 and 100, with 0 being the least random and 100 being the most random. Only applied when `gridType` is `Random`.
1705
1702
  *
1706
1703
  * @default 100
1707
- * @since 4.24
1708
1704
  * @since 5.0
1709
1705
  */
1710
1706
  randomness: number;
@@ -1712,7 +1708,6 @@ export interface CIMMarkerPlacementInsidePolygon extends CIMMarkerFillPlacement
1712
1708
  * The starting value for generating a random pattern. Only applied when `gridType` is `Random`.
1713
1709
  *
1714
1710
  * @default 0
1715
- * @since 4.24
1716
1711
  * @since 5.0
1717
1712
  */
1718
1713
  seed: number;
@@ -2008,7 +2003,6 @@ export interface CIMPictureMarker extends CIMMarker {
2008
2003
  /**
2009
2004
  * The collection of symbol properties that apply when the symbol layer has animation data (animated GIF or PNG).
2010
2005
  *
2011
- * @since 4.24
2012
2006
  * @since 5.0
2013
2007
  */
2014
2008
  animatedSymbolProperties?: CIMAnimatedSymbolProperties;
@@ -2063,7 +2057,6 @@ export interface CIMAnimatedSymbolProperties {
2063
2057
  /**
2064
2058
  * The easing method to use when animating the symbol. Only for use with {@link symbols/cim/CIMTypes!CIMSymbolAnimation}, not animated GIFs/PNGs.
2065
2059
  *
2066
- * @since 4.31
2067
2060
  * @since 5.0
2068
2061
  */
2069
2062
  easing?: CIMAnimatedSymbolEasingType;
@@ -2218,7 +2211,6 @@ export interface CIMSymbolAnimationRotation extends CIMBaseAnimation {
2218
2211
  * A value indicating whether the rotation is applied clockwise or counterclockwise.
2219
2212
  *
2220
2213
  * @default false
2221
- * @since 4.32
2222
2214
  * @since 5.0
2223
2215
  */
2224
2216
  rotateClockwise: boolean;
@@ -2387,7 +2379,6 @@ export interface CIMPointSymbol extends CIMMultiLayerSymbol {
2387
2379
  /**
2388
2380
  * The animations applied globally to the entire symbol.
2389
2381
  *
2390
- * @since 4.31
2391
2382
  * @since 5.0
2392
2383
  */
2393
2384
  animations?: CIMSymbolAnimation[];
@@ -2510,7 +2501,6 @@ export interface CIMSolidFill extends CIMFill {
2510
2501
  /**
2511
2502
  * The animations applied to the solid fill. Only {@link symbols/cim/CIMTypes!CIMSymbolAnimationColor} is supported.
2512
2503
  *
2513
- * @since 4.31
2514
2504
  * @since 5.0
2515
2505
  */
2516
2506
  animations?: CIMSymbolAnimationColor[];
@@ -2551,7 +2541,6 @@ export interface CIMSolidStroke extends CIMStroke {
2551
2541
  /**
2552
2542
  * The animations applied to the solid stroke. Only {@link symbols/cim/CIMTypes!CIMSymbolAnimationColor} is supported.
2553
2543
  *
2554
- * @since 4.31
2555
2544
  * @since 5.0
2556
2545
  */
2557
2546
  animations?: CIMSymbolAnimationColor[];
@@ -2634,7 +2623,6 @@ export interface CIMTextSymbol extends CIMSymbol {
2634
2623
  /**
2635
2624
  * The background of the text.
2636
2625
  *
2637
- * @since 4.26
2638
2626
  * @since 5.0
2639
2627
  */
2640
2628
  callout?: CIMCallout;
@@ -278,7 +278,7 @@ export interface RenderPreviewHTMLOptions {
278
278
  size?: number | RenderPreviewHTMLSizeOptions | null;
279
279
  /**
280
280
  * Options for setting the shape of a fill symbol preview. This can be a single string value (`tall`
281
- * is the only option), or an object with config options. See the table below for specifics on the configuration options available.
281
+ * is the only option), or an object with config options.
282
282
  */
283
283
  symbolConfig?: "tall" | RenderPreviewSymbolConfigOptions | null;
284
284
  }
@@ -8,11 +8,7 @@ import type { LODProperties } from "../../layers/support/LOD.js";
8
8
 
9
9
  /** @since 5.0 */
10
10
  export interface MapViewConstraintsProperties extends Partial<Pick<MapViewConstraints, "maxScale" | "maxZoom" | "minScale" | "minZoom" | "rotationEnabled" | "snapToZoom">> {
11
- /**
12
- * The area in which the user is allowed to navigate laterally. Only [Extent](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html) and [Polygon](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Polygon.html) geometry types are supported. Z-values are ignored. This property is honored by interactive [MapView navigation](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-2d-MapViewConstraints.html#mapview-navigation) and [MapView#goTo()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#goTo). This property may be [autocast](https://developers.arcgis.com/javascript/latest/autocasting/).
13
- *
14
- * @since 4.17
15
- */
11
+ /** The area in which the user is allowed to navigate laterally. Only [Extent](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html) and [Polygon](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Polygon.html) geometry types are supported. Z-values are ignored. This property is honored by interactive [MapView navigation](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-2d-MapViewConstraints.html#mapview-navigation) and [MapView#goTo()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#goTo). This property may be [autocast](https://developers.arcgis.com/javascript/latest/autocasting/). */
16
12
  geometry?: (ExtentProperties & { type: "extent" }) | (PolygonProperties & { type: "polygon" }) | null;
17
13
  /**
18
14
  * An array of [LODs](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-LOD.html). If not specified, this value is read from the [Map](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html). It is possible to generate additional LODs via the
@@ -56,11 +52,7 @@ export default abstract class MapViewConstraints extends Accessor {
56
52
  * @since 5.0
57
53
  */
58
54
  get effectiveMinZoom(): number;
59
- /**
60
- * The area in which the user is allowed to navigate laterally. Only [Extent](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html) and [Polygon](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Polygon.html) geometry types are supported. Z-values are ignored. This property is honored by interactive [MapView navigation](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-2d-MapViewConstraints.html#mapview-navigation) and [MapView#goTo()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#goTo). This property may be [autocast](https://developers.arcgis.com/javascript/latest/autocasting/).
61
- *
62
- * @since 4.17
63
- */
55
+ /** The area in which the user is allowed to navigate laterally. Only [Extent](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html) and [Polygon](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Polygon.html) geometry types are supported. Z-values are ignored. This property is honored by interactive [MapView navigation](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-2d-MapViewConstraints.html#mapview-navigation) and [MapView#goTo()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#goTo). This property may be [autocast](https://developers.arcgis.com/javascript/latest/autocasting/). */
64
56
  get geometry(): Extent | Polygon | null;
65
57
  set geometry(value: (ExtentProperties & { type: "extent" }) | (PolygonProperties & { type: "polygon" }) | null);
66
58
  /**
@@ -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/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};
5
+ import e from"./webgl/brushes/WGLBrushStencil.js";import s from"./webgl/brushes/WGLBrushTileDebugInfo.js";const r={stencil:e,tileDebugInfo:s};export{r 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 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};
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}getTexture(t){return this._textures[t]||null}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";class t{constructor(t){this._array=[],this._stride=t}get array(){return this._array}get index(){return 4*this._array.length/this._stride}get itemSize(){return this._stride}get sizeInBytes(){return 4*this._array.length}reset(){this.array.length=0}toBuffer(){return new Uint32Array(this._array).buffer}static i1616to32(t,r){return 65535&t|r<<16}static i8888to32(t,r,e,i){return 255&t|(255&r)<<8|(255&e)<<16|i<<24}static i8816to32(t,r,e){return 255&t|(255&r)<<8|e<<16}}export{t as default};
5
+ import"../../../../core/has.js";class r{constructor(r){this._array=[],this._stride=r}get array(){return this._array}get index(){return 4*this._array.length/this._stride}get itemSize(){return this._stride}get sizeInBytes(){return 4*this._array.length}reset(){this.array.length=0}toBuffer(){return new Uint32Array(this._array).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{disposeMaybe as t}from"../../../../core/maybe.js";import{estimateNumberArrayMemory as e}from"../../../../core/memoryEstimations.js";import"../../tiling/TileInfoView.js";import r from"../../tiling/TileKey.js";import"../../tiling/TileQueue.js";import"../../tiling/TileStrategy.js";import{deserializeSymbols as n}from"./decluttering/util.js";import{BufferObject as s}from"../../../webgl/BufferObject.js";import{VertexArrayObject as i}from"../../../webgl/VertexArrayObject.js";import{VertexBuffer as a}from"../../../webgl/VertexBuffer.js";class o{constructor(t,e){this.layerUIDs=[],this.isDestroyed=!1,this._data=t;let r=1;const n=new Uint32Array(t);this.layerUIDs=[];const s=n[r++];for(let i=0;i<s;i++)this.layerUIDs[i]=n[r++];this.bufferDataOffset=r,e&&(this.layer=e.getStyleLayerByUID(this.layerUIDs[0]))}get isPreparedForRendering(){return null==this._data}get offset(){return this.bufferDataOffset}get data(){return this._data}destroy(){this.isDestroyed||(this.doDestroy(),this._data=null,this.isDestroyed=!0)}prepareForRendering(t){null!=this._data&&(this.doPrepareForRendering(t,this._data,this.bufferDataOffset),this._data=null)}}class h extends o{constructor(t,e){super(t,e),this.type=2,this.lineIndexStart=0,this.lineIndexCount=0;const r=new Uint32Array(t);let n=this.bufferDataOffset;this.lineIndexStart=r[n++],this.lineIndexCount=r[n++];const s=r[n++];if(s>0){this.patternMap=new Map;for(let t=0;t<s;t++){const t=r[n++],e=r[n++],s=r[n++];this.patternMap.set(t,[e,s])}}this.bufferDataOffset=n}get usedMemory(){return(this.data?.byteLength??0)+(this.vao?.usedMemory??0)}hasData(){return this.lineIndexCount>0}triangleCount(){return this.lineIndexCount/3}doDestroy(){this.vao=t(this.vao)}doPrepareForRendering(t,e,r){const n=new Uint32Array(e),o=new Int32Array(n.buffer),h=n[r++],l=this.layer.lineMaterial,f=new a(t,l.geometryLayout,new Int32Array(o.buffer,4*r,h));r+=h;const u=n[r++],y=s.createIndex(t,35044,new Uint32Array(n.buffer,4*r,u));r+=u,this.vao=new i(t,f,y)}}class l extends o{constructor(t,e){super(t,e),this.type=1,this.fillIndexStart=0,this.fillIndexCount=0,this.outlineIndexStart=0,this.outlineIndexCount=0;const r=new Uint32Array(t);let n=this.bufferDataOffset;this.fillIndexStart=r[n++],this.fillIndexCount=r[n++],this.outlineIndexStart=r[n++],this.outlineIndexCount=r[n++];const s=r[n++];if(s>0){this.patternMap=new Map;for(let t=0;t<s;t++){const t=r[n++],e=r[n++],s=r[n++];this.patternMap.set(t,[e,s])}}this.bufferDataOffset=n}get usedMemory(){return(this.data?.byteLength??0)+(this.fillVAO?.usedMemory??0)+(this.outlineVAO?.usedMemory??0)}hasData(){return this.fillIndexCount>0||this.outlineIndexCount>0}triangleCount(){return(this.fillIndexCount+this.outlineIndexCount)/3}doDestroy(){this.fillVAO=t(this.fillVAO),this.outlineVAO=t(this.outlineVAO)}doPrepareForRendering(t,e,r){const n=new Uint32Array(e),o=new Int32Array(n.buffer),h=n[r++],l=this.layer,f=l.fillMaterial,u=new a(t,f.geometryLayout,new Int32Array(o.buffer,4*r,h));r+=h;const y=n[r++],c=s.createIndex(t,35044,new Uint32Array(n.buffer,4*r,y));r+=y;const d=n[r++],p=l.outlineMaterial,g=new a(t,p.geometryLayout,new Int32Array(o.buffer,4*r,d));r+=d;const w=n[r++],I=s.createIndex(t,35044,new Uint32Array(n.buffer,4*r,w));r+=w,this.fillVAO=new i(t,u,c),this.outlineVAO=new i(t,g,I)}}class f extends o{constructor(t,e,s){super(t,e),this.type=3,this.iconPerPageElementsMap=new Map,this.glyphPerPageElementsMap=new Map,this.symbolInstances=[],this.isIconSDF=!1,this.opacityChanged=!1,this.lastOpacityUpdate=0,this.symbols=[];const i=new Uint32Array(t),a=new Int32Array(t),o=new Float32Array(t);let h=this.bufferDataOffset;this.isIconSDF=!!i[h++];const l=i[h++],f=i[h++],u=i[h++],y=new r(l,f,u,0),c=i[h++];for(let r=0;r<c;r++){const t=i[h++],e=i[h++],r=i[h++];this.iconPerPageElementsMap.set(t,[e,r])}const d=i[h++];for(let r=0;r<d;r++){const t=i[h++],e=i[h++],r=i[h++];this.glyphPerPageElementsMap.set(t,[e,r])}const p=i[h++],g=i[h++];this.iconOpacity=new Int32Array(p),this.textOpacity=new Int32Array(g),h=n(i,a,o,h,this.symbols,s,y),this.bufferDataOffset=h}get usedMemory(){return(this.data?.byteLength??0)+(this.iconVAO?.usedMemory??0)+(this.textVAO?.usedMemory??0)+e(this.iconOpacity)+e(this.textOpacity)}hasData(){return this.iconPerPageElementsMap.size>0||this.glyphPerPageElementsMap.size>0}triangleCount(){let t=0;for(const e of this.iconPerPageElementsMap.values())t+=e[1];for(const e of this.glyphPerPageElementsMap.values())t+=e[1];return t/3}doDestroy(){this.iconVAO=t(this.iconVAO),this.textVAO=t(this.textVAO)}updateOpacityInfo(){if(!this.opacityChanged)return;this.opacityChanged=!1;const t=this.iconOpacity,e=this.iconVAO.buffer("opacity");t.length>0&&t.byteLength===e.usedMemory&&e.setSubData(t,0,0,t.length);const r=this.textOpacity,n=this.textVAO.buffer("opacity");r.length>0&&r.byteLength===n.usedMemory&&n.setSubData(r,0,0,r.length)}doPrepareForRendering(t,e,r){const n=new Uint32Array(e),o=new Int32Array(n.buffer),h=n[r++],l=this.layer,f=l.iconMaterial,u=new a(t,f.geometryLayout,new Int32Array(o.buffer,4*r,h));r+=h;const y=n[r++],c=s.createIndex(t,35044,new Uint32Array(n.buffer,4*r,y));r+=y;const d=n[r++],p=l.textMaterial,g=new a(t,p.geometryLayout,new Int32Array(o.buffer,4*r,d));r+=d;const w=n[r++],I=s.createIndex(t,35044,new Uint32Array(n.buffer,4*r,w));r+=w;const m=new a(t,f.opacityLayout,this.iconOpacity.buffer),b=new a(t,p.opacityLayout,this.textOpacity.buffer);this.iconVAO=new i(t,new Map([["geometry",u],["opacity",m]]),c),this.textVAO=new i(t,new Map([["geometry",g],["opacity",b]]),I)}}class u extends o{constructor(t,e){super(t,e),this.type=4,this.circleIndexStart=0,this.circleIndexCount=0;const r=new Uint32Array(t);let n=this.bufferDataOffset;this.circleIndexStart=r[n++],this.circleIndexCount=r[n++],this.bufferDataOffset=n}get usedMemory(){return(this.data?.byteLength??0)+(this.vao?.usedMemory??0)}hasData(){return this.circleIndexCount>0}triangleCount(){return this.circleIndexCount/3}doDestroy(){this.vao=t(this.vao)}doPrepareForRendering(t,e,r){const n=new Uint32Array(e),o=new Int32Array(n.buffer),h=n[r++],l=this.layer.circleMaterial,f=new a(t,l.geometryLayout,new Int32Array(o.buffer,4*r,h));r+=h;const u=n[r++],y=s.createIndex(t,35044,new Uint32Array(n.buffer,4*r,u));r+=u,this.vao=new i(t,f,y)}}export{u as CircleRenderBucket,l as FillRenderBucket,h as LineRenderBucket,o as RenderBucketBase,f as SymbolRenderBucket};
5
+ import{destroyMaybe as t}from"../../../../core/maybe.js";import{estimateNumberArrayMemory as e}from"../../../../core/memoryEstimations.js";import"../../tiling/TileInfoView.js";import s from"../../tiling/TileKey.js";import"../../tiling/TileQueue.js";import"../../tiling/TileStrategy.js";import{deserializeSymbols as r}from"./decluttering/util.js";import{Mesh as i}from"../webgl/meshing/Mesh.js";import{PrimitiveType as n}from"../../../webgl/enums.js";class a{constructor(t,e){this.layerUIDs=[],this.isDestroyed=!1,this._mesh=null,this._data=t;let s=1;const r=new Uint32Array(t);this.layerUIDs=[];const i=r[s++];for(let n=0;n<i;n++)this.layerUIDs[n]=r[s++];this.bufferDataOffset=s,e&&(this.layer=e.getStyleLayerByUID(this.layerUIDs[0]))}get isPreparedForRendering(){return null==this._data}get offset(){return this.bufferDataOffset}get data(){return this._data}nullifyData(){this._data=null}destroy(){this.isDestroyed||(this.doDestroy(),this._data=null,t(this._mesh),this.isDestroyed=!0)}}class o extends a{constructor(t,e){super(t,e),this.type=2,this.lineIndexStart=0,this.lineIndexCount=0;const s=new Uint32Array(t);let r=this.bufferDataOffset;this.lineIndexStart=s[r++],this.lineIndexCount=s[r++];const i=s[r++];if(i>0){this.patternMap=new Map;for(let t=0;t<i;t++){const t=s[r++],e=s[r++],i=s[r++];this.patternMap.set(t,[e,i])}}this.bufferDataOffset=r}get usedMemory(){return this.data?.byteLength??0}hasData(){return this.lineIndexCount>0}triangleCount(){return this.lineIndexCount/3}doDestroy(){}getMesh(t){if(this._mesh)return this._mesh;const e=this.data;if(!e)return;const s=this.layer,r=s.getPaintProperty("line-pattern"),a=void 0!==r,o=a&&r.isDataDriven;let h=!1;if(!a){const t=s.getPaintProperty("line-dasharray");h=void 0!==t&&t.isDataDriven}const u=this.patternMap,l=[];if(u&&(o||h))for(const[i,n]of u)l.push({group:0,start:n[0],count:n[1]});else l.push({group:0,start:this.lineIndexStart,count:this.lineIndexCount});const f=new Uint32Array(e),y=new Int32Array(f.buffer);let c=this.bufferDataOffset;const d=f[c++],p=new Int32Array(y.buffer,4*c,d);c+=d;const g=f[c++],m=new Uint32Array(f.buffer,4*c,g),I=this.layer.lineMaterial.geometryLayout;if(!I)return;const x={vertex:{geometryVB:{data:p,layout:I}},index:{geometryIB:{data:m}},groups:[{index:"geometryIB",primitive:n.TRIANGLES}],parts:l};return this._mesh=new i(t,x),this.nullifyData(),this._mesh}}class h extends a{constructor(t,e){super(t,e),this.type=1,this._outlineMesh=null,this.fillIndexStart=0,this.fillIndexCount=0,this.outlineIndexStart=0,this.outlineIndexCount=0;const s=new Uint32Array(t);let r=this.bufferDataOffset;this.fillIndexStart=s[r++],this.fillIndexCount=s[r++],this.outlineIndexStart=s[r++],this.outlineIndexCount=s[r++];const i=s[r++];if(i>0){this.patternMap=new Map;for(let t=0;t<i;t++){const t=s[r++],e=s[r++],i=s[r++];this.patternMap.set(t,[e,i])}}this.bufferDataOffset=r}get usedMemory(){return this.data?.byteLength??0}hasData(){return this.fillIndexCount>0||this.outlineIndexCount>0}triangleCount(){return(this.fillIndexCount+this.outlineIndexCount)/3}doDestroy(){t(this._outlineMesh)}getMesh(t,e){if(0===e.value&&this._mesh)return this._mesh;if(1===e.value&&this._outlineMesh)return this._outlineMesh;if(!this.data)return null;const s=new Uint32Array(this.data),r=new Int32Array(s.buffer);let a=0,o=0,h=0,u=0,l=this.bufferDataOffset;const f=s[l++];a=l,l+=f;const y=s[l++];o=l,l+=y;const c=s[l++];h=l,l+=c;const d=s[l++];u=l;const p=this.layer;if(y>0){const e=p.fillMaterial,h=new Int32Array(r.buffer,4*a,f),u=new Uint32Array(s.buffer,4*o,y),l={vertex:{geometryVB:{data:h,layout:e.geometryLayout}},index:{geometryIB:{data:u}},groups:[{index:"geometryIB",primitive:n.TRIANGLES}],parts:[{group:0,start:this.fillIndexStart,count:this.fillIndexCount}]};this._mesh=new i(t,l)}if(d>0){const e=p.outlineMaterial,a=new Int32Array(r.buffer,4*h,c),o=new Uint32Array(s.buffer,4*u,d),l={vertex:{geometryVB:{data:a,layout:e.geometryLayout}},index:{geometryIB:{data:o}},groups:[{index:"geometryIB",primitive:n.TRIANGLES}],parts:[{group:0,start:this.outlineIndexStart,count:this.outlineIndexCount}]};this._outlineMesh=new i(t,l)}return this.nullifyData(),0===e.value?this._mesh:this._outlineMesh}}class u extends a{constructor(t,e,i){super(t,e),this.type=3,this.iconPerPageElementsMap=new Map,this.glyphPerPageElementsMap=new Map,this.isIconSDF=!1,this.opacityChanged=!1,this.lastOpacityUpdate=0,this.symbols=[],this._textMesh=null;const n=new Uint32Array(t),a=new Int32Array(t),o=new Float32Array(t);let h=this.bufferDataOffset;this.isIconSDF=!!n[h++];const u=n[h++],l=n[h++],f=n[h++],y=new s(u,l,f,0),c=n[h++];for(let s=0;s<c;s++){const t=n[h++],e=n[h++],s=n[h++];this.iconPerPageElementsMap.set(t,[e,s])}const d=n[h++];for(let s=0;s<d;s++){const t=n[h++],e=n[h++],s=n[h++];this.glyphPerPageElementsMap.set(t,[e,s])}const p=n[h++],g=n[h++];this.iconOpacity=new Int32Array(p),this.textOpacity=new Int32Array(g),h=r(n,a,o,h,this.symbols,i,y),this.bufferDataOffset=h}get usedMemory(){return(this.data?.byteLength??0)+e(this.iconOpacity)+e(this.textOpacity)}hasData(){return this.iconPerPageElementsMap.size>0||this.glyphPerPageElementsMap.size>0}triangleCount(){let t=0;for(const e of this.iconPerPageElementsMap.values())t+=e[1];for(const e of this.glyphPerPageElementsMap.values())t+=e[1];return t/3}doDestroy(){this._textMesh=t(this._textMesh)}updateOpacityInfo(){if(!this.opacityChanged)return;this.opacityChanged=!1;const t=this.iconOpacity,e=this._mesh?.vertexBuffers.get("opacity");e&&t.length>0&&t.byteLength===e.usedMemory&&e.setSubData(t,0,0,t.length);const s=this.textOpacity,r=this._textMesh?.vertexBuffers.get("opacity");r&&s.length>0&&s.byteLength===r.usedMemory&&r.setSubData(s,0,0,s.length)}getMesh(t,e){if(0===e.value&&this._mesh)return this._mesh;if(1===e.value&&this._textMesh)return this._textMesh;let s=this.bufferDataOffset;if(!this.data)return null;const r=new Uint32Array(this.data),a=new Int32Array(r.buffer),o=r[s++],h=s;s+=o;const u=r[s++],l=s;s+=u;const f=r[s++],y=s;s+=f;const c=r[s++],d=s;s+=c;const p=this.layer;if(this.iconPerPageElementsMap.size>0){const e=p.iconMaterial,s=[];for(const[t,r]of this.iconPerPageElementsMap)s.push({group:0,start:r[0],count:r[1]});const f=new Int32Array(a.buffer,4*h,o),y=new Uint32Array(r.buffer,4*l,u),c=this.iconOpacity,d=e.opacityLayout,g={vertex:{geometry:{data:f,layout:e.geometryLayout},opacity:{data:c,layout:d}},index:{geometryIB:{data:y}},groups:[{index:"geometryIB",primitive:n.TRIANGLES}],parts:s};this._mesh=new i(t,g)}if(this.glyphPerPageElementsMap.size>0){const e=p.textMaterial,s=[];for(const[t,r]of this.glyphPerPageElementsMap)s.push({group:0,start:r[0],count:r[1]});const o=new Int32Array(a.buffer,4*y,f),h=new Uint32Array(r.buffer,4*d,c),u=this.textOpacity,l=e.opacityLayout,g={vertex:{geometry:{data:o,layout:e.geometryLayout},opacity:{data:u,layout:l}},index:{geometryIB:{data:h}},groups:[{index:"geometryIB",primitive:n.TRIANGLES}],parts:s};this._textMesh=new i(t,g)}return this.nullifyData(),0===e.value?this._mesh:this._textMesh}}class l extends a{constructor(t,e){super(t,e),this.type=4,this.circleIndexStart=0,this.circleIndexCount=0;const s=new Uint32Array(t);let r=this.bufferDataOffset;this.circleIndexStart=s[r++],this.circleIndexCount=s[r++],this.bufferDataOffset=r}get usedMemory(){return this.data?.byteLength??0}hasData(){return this.circleIndexCount>0}triangleCount(){return this.circleIndexCount/3}doDestroy(){}getMesh(t){if(this._mesh)return this._mesh;if(!this.data)return;const e=new Uint32Array(this.data),s=new Int32Array(e.buffer);let r=this.bufferDataOffset;const a=e[r++],o=new Int32Array(s.buffer,4*r,a);r+=a;const h=e[r++],u=new Uint32Array(e.buffer,4*r,h),l=this.layer.circleMaterial.geometryLayout;if(!l)return;const f={vertex:{geometryVB:{data:o,layout:l}},index:{geometryIB:{data:u}},groups:[{index:"geometryIB",primitive:n.TRIANGLES}],parts:[{group:0,start:this.circleIndexStart,count:this.circleIndexCount}]};return this._mesh=new i(t,f),this._mesh}}export{l as CircleRenderBucket,h as FillRenderBucket,o as LineRenderBucket,a as RenderBucketBase,u as SymbolRenderBucket};
@@ -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 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 e from"../webgl/Rect.js";import s from"../../../webgl/Texture.js";import{TextureDescriptor as h}from"../../../webgl/TextureDescriptor.js";const a="dasharray-";class r{constructor(t,e,s=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,e<=0&&console.error("Sprites mosaic defaultWidth and defaultHeight must be greater than zero!"),this._pageWidth=t,this._pageHeight=e,s>0&&(this._maxItemSize=s),this._binPack=new i(t-4,e-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]}getTexture(t){return this._textures[t]||null}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),e=Math.floor(this._pageHeight),s=new Uint32Array(t*e);this._mosaicsData[0]=s,this._dirties.push(!0),this._size.push([this._pageWidth,this._pageHeight]),this._textures.push(void 0)}this._sprites=t}getSpriteItem(t,i=!1){let e,s,h=this._mosaicRects[t];if(h)return h;if(!this._sprites||"loaded"!==this._sprites.loadStatus)return null;if(t&&t.startsWith(a)?([e,s]=this._rasterizeDash(t),i=!0):e=this._sprites.getSpriteInfo(t),!e?.width||!e.height||e.width<0||e.height<0)return null;const r=e.width,n=e.height,[o,_,g]=this._allocateImage(r,n);return o.width<=0?null:(this._copy(o,e,_,g,i,s),h={type:"sprite",rect:o,width:r,height:n,sdf:e.sdf,simplePattern:!1,rasterizationScale:e.pixelRatio??1,samplingMode:"Linear",page:_},this._mosaicRects[t]=h,h)}getSpriteItems(t){const i={};for(const e of t)i[e.name]=this.getSpriteItem(e.name,e.repeat);return i}getMosaicItemPosition(t,i){const e=this.getSpriteItem(t,i),s=e?.rect;if(!s)return null;s.width=e.width,s.height=e.height;const h=e.width,a=e.height,r=2;return{tl:[s.x+r,s.y+r],br:[s.x+r+h,s.y+r+a],page:e.page}}bind(t,i,e=0,a=0){if(e>=this._size.length||e>=this._mosaicsData.length)return;if(!this._textures[e]){const i=new h(this._size[e][0],this._size[e][1]);i.wrapMode=33071,this._textures[e]=new s(t,i,new Uint8Array(this._mosaicsData[e].buffer))}const r=this._textures[e];r.setSamplingMode(i),this._dirties[e]&&r.setData(new Uint8Array(this._mosaicsData[e].buffer)),t.bindTexture(r,a),this._dirties[e]=!1}static _copyBits(t,i,e,s,h,a,r,n,o,_,g){let c=s*i+e,p=n*a+r;if(g){p-=a;for(let r=-1;r<=_;r++,c=((r+_)%_+s)*i+e,p+=a)for(let i=-1;i<=o;i++)h[p+i]=t[c+(i+o)%o]}else for(let l=0;l<_;l++){for(let i=0;i<o;i++)h[p+i]=t[c+i];c+=i,p+=a}}_copy(t,i,e,s,h,a){if(!this._sprites||"loaded"!==this._sprites.loadStatus||e>=this._mosaicsData.length)return;const n=new Uint32Array(a?a.buffer:this._sprites.image.buffer),o=this._mosaicsData[e],_=2,g=a?i.width:this._sprites.width;r._copyBits(n,g,i.x,i.y,o,s[0],t.x+_,t.y+_,i.width,i.height,h),this._dirties[e]=!0}_allocateImage(t,s){t+=2,s+=2;const h=Math.max(t,s);if(this._maxItemSize&&this._maxItemSize<h){const i=new e(0,0,t,s);return this._mosaicsData.push(new Uint32Array(t*s)),this._dirties.push(!0),this._size.push([t,s]),this._textures.push(void 0),[i,this._mosaicsData.length-1,[t,s]]}let a=t%4?4-t%4:4,r=s%4?4-s%4:4;1===a&&(a=5),1===r&&(r=5);const n=this._binPack.allocate(t+a,s+r);return n.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,s)):[n,this._currentPage,[this._pageWidth,this._pageHeight]]}_rasterizeDash(i){const e=/\[(.*?)\]/,s=i.match(e);if(!s)return null;const h=s[1].split(",").map(Number),a=i.slice(i.lastIndexOf("-")+1),[r,n,o]=t(h,a);return[{x:0,y:0,width:n,height:o,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{disposeMaybe as e}from"../../../../core/maybe.js";import{vtlBrushes as t}from"../vtlBrushes.js";import l from"./shaders/VTLMaterialManager.js";const s=1e-6;class r{constructor(e,t){this.spriteMosaic=e,this.glyphMosaic=t,this._brushCache={vtlBackground:null,vtlFill:null,vtlLine:null,vtlCircle:null,vtlSymbol:null},this._vtlMaterialManager=new l}dispose(){this._brushCache.vtlBackground?.dispose(),this._brushCache.vtlFill?.dispose(),this._brushCache.vtlLine?.dispose(),this._brushCache.vtlCircle?.dispose(),this._brushCache.vtlSymbol?.dispose(),this._brushCache=null,this._vtlMaterialManager=e(this._vtlMaterialManager),this.spriteMosaic.dispose(),this.glyphMosaic.dispose()}get vectorTilesMaterialManager(){return this._vtlMaterialManager}drawSymbols(e,l,r){const n=r.layers;e.renderPass="translucent";let i=this._brushCache.vtlSymbol;null==i&&(i=new t.vtlSymbol,this._brushCache.vtlSymbol=i),a[0]=l;for(let t=0;t<n.length;t++){const l=n[t];if(3!==l.type)continue;const r=l.getLayoutProperty("visibility");if(r&&1===r.getValue())continue;const o=e.displayLevel;void 0!==l.minzoom&&l.minzoom>o+s||void 0!==l.maxzoom&&l.maxzoom<=o-s||(e.styleLayerUID=l.uid,e.styleLayer=l,i.drawMany(e,a))}a[0]=null}drawBackground(e,l,r){if(0===r.backgroundBucketIds.length)return;const{context:n,displayLevel:i,requiredLevel:o}=e;l.key.level=o,n.setBlendingEnabled(!0),n.setDepthTestEnabled(!1),n.setStencilTestEnabled(!1),e.renderPass="background";let u=this._brushCache.vtlBackground;null==u&&(u=new t.vtlBackground,this._brushCache.vtlBackground=u),a[0]=l,r.backgroundBucketIds.forEach(t=>{const l=r.getLayerById(t);if(0!==l.type)return;const n=l.getLayoutProperty("visibility");n&&1===n.getValue()||void 0!==l.minzoom&&l.minzoom>i+s||void 0!==l.maxzoom&&l.maxzoom<=i-s||(e.styleLayerUID=l.uid,e.styleLayer=l,u.drawMany(e,a))}),a[0]=null}drawTile(e,t,l,s){const{context:r}=e,a=l.layers;r.setBlendingEnabled(!1),r.setDepthTestEnabled(!0),r.setDepthWriteEnabled(!0),r.setDepthFunction(515);const n=a.filter(e=>{if(null!=s&&s!==e.type||!t.layerData.has(e.uid))return!1;const l=e.getLayoutProperty("visibility");return 1!==l?.getValue()});e.renderPass="opaque";for(let i=n.length-1;i>=0;--i)this._renderStyleLayer(n[i],e,t);r.setDepthWriteEnabled(!1),r.setBlendingEnabled(!0),r.setBlendFunctionSeparate(1,771,1,771),e.renderPass="translucent",n.forEach(l=>this._renderStyleLayer(l,e,t)),r.setDepthTestEnabled(!1),r.bindVAO(null)}_renderStyleLayer(e,l,r){const{renderPass:n}=l;let i;switch(e.type){case 0:if("background"!==n)return;i=this._brushCache.vtlBackground,i||(i=new t.vtlBackground,this._brushCache.vtlBackground=i);break;case 1:if("opaque"!==n&&"translucent"!==l.renderPass)return;i=this._brushCache.vtlFill,null==i&&(i=new t.vtlFill,this._brushCache.vtlFill=i);break;case 2:if("translucent"!==n)return;i=this._brushCache.vtlLine,null==i&&(i=new t.vtlLine,this._brushCache.vtlLine=i);break;case 4:if("translucent"!==n)return;i=this._brushCache.vtlCircle,null==i&&(i=new t.vtlCircle,this._brushCache.vtlCircle=i);break;case 3:if("translucent"!==n)return;i=this._brushCache.vtlSymbol,null==i&&(i=new t.vtlSymbol,this._brushCache.vtlSymbol=i)}const{displayLevel:o}=l,{minzoom:u,maxzoom:h}=e;if(void 0!==u&&u>o+s||void 0!==h&&h<=o-s)return;const{context:c}=l;c.setStencilTestEnabled(!1),c.setStencilWriteMask(0),l.styleLayerUID=e.uid,l.styleLayer=e,a[0]=r,i.drawMany(l,a),a[0]=null}}const a=[null];export{r as default};
5
+ import{RenderingDevice as e}from"../webgl/RenderingDevice.js";import{simplePipelineState as t}from"../webgl/shaderGraph/utils.js";import{VTLTechniquesRepo as i}from"../webgl/shaderGraph/techniques/vectorTiles/VTLTechniques.js";const s=1e-6;class n{constructor(s,n){this.spriteMosaic=s,this.glyphMosaic=n,this._vtlTechniques=new i,this._context=null,this._vtlTechniques.startup(),this._renderingDevice=new e,this._pipelineState=t}dispose(){this._vtlTechniques&&this._vtlTechniques.shutdown(this._context),this.spriteMosaic.dispose(),this.glyphMosaic.dispose(),this._context=null}drawSymbols(e,t,i){const n=i.layers;e.renderPass="translucent";const l=this._vtlTechniques.getTechnique(3);r[0]=t;for(let a=0;a<n.length;a++){const t=n[a];if(3!==t.type)continue;const i=t.getLayoutProperty("visibility");if(i&&1===i.getValue())continue;const o=e.displayLevel;void 0!==t.minzoom&&t.minzoom>o+s||void 0!==t.maxzoom&&t.maxzoom<=o-s||(e.styleLayerUID=t.uid,e.styleLayer=t,l.render(e,{tiles:r}))}r[0]=null}drawBackground(e,t,i){if(0===i.backgroundBucketIds.length)return;const{displayLevel:n,requiredLevel:l}=e;t.key.level=l,this._renderingDevice.setPipelineState({...this._pipelineState,color:{write:[!0,!0,!0,!0],blendMode:"composite"},stencil:{write:!1,test:!1}}),e.renderPass="background";const a=this._vtlTechniques.getTechnique(0);r[0]=t,i.backgroundBucketIds.forEach(t=>{const l=i.getLayerById(t);if(0!==l.type)return;const o=l.getLayoutProperty("visibility");o&&1===o.getValue()||void 0!==l.minzoom&&l.minzoom>n+s||void 0!==l.maxzoom&&l.maxzoom<=n-s||(e.styleLayerUID=l.uid,e.styleLayer=l,a.render(e,{tiles:r}))}),r[0]=null}drawTile(e,i,s,n){const r=s.layers;this._pipelineState={...t,color:{write:[!0,!0,!0,!0],blendMode:"none"},depth:{write:{zNear:0,zFar:1},test:515}},this._renderingDevice.setPipelineState(this._pipelineState);const l=r.filter(e=>{if(null!=n&&n!==e.type||!i.layerData.has(e.uid))return!1;const t=e.getLayoutProperty("visibility");return 1!==t?.getValue()});e.renderPass="opaque";for(let t=l.length-1;t>=0;--t)this._renderStyleLayer(l[t],e,i);this._pipelineState.color={write:[!0,!0,!0,!0],blendMode:"composite"},e.renderPass="translucent",l.forEach(t=>this._renderStyleLayer(t,e,i)),this._pipelineState.depth=!1,this._context||(this._context=e.context)}setShader(e){return this._renderingDevice.setShader(e)}setPipelineState(e){return this._renderingDevice.setPipelineState(e)}getPipelineState(){return this._renderingDevice.getPipelineState()}submitDraw(e,t,i){return this._renderingDevice.submitDraw(e,t,i)}submitDrawMesh(e,t,i,s){this._renderingDevice.submitDrawMesh(e,t,i,s)}submitDrawMeshUntyped(e,t,i,s){this._renderingDevice.submitDrawMeshUntyped(e,t,i,s)}updatePipelineState(e){return this._renderingDevice.updatePipelineState(e)}setStencilRef(e,t){return this._renderingDevice.setStencilRef(e,t)}_renderStyleLayer(e,t,i){const{renderPass:n}=t;let l;switch(e.type){case 0:if("background"!==n)return;l=this._vtlTechniques.getTechnique(0);break;case 1:if("opaque"!==n&&"translucent"!==t.renderPass)return;l=this._vtlTechniques.getTechnique(1);break;case 2:if("translucent"!==n)return;l=this._vtlTechniques.getTechnique(2);break;case 4:if("translucent"!==n)return;l=this._vtlTechniques.getTechnique(4);break;case 3:if("translucent"!==n)return;l=this._vtlTechniques.getTechnique(3)}const{displayLevel:a}=t,{minzoom:o,maxzoom:c}=e;void 0!==o&&o>a+s||void 0!==c&&c<=a-s||!l||(this._renderingDevice.setPipelineState({...this._pipelineState,stencil:{write:{mask:0},test:!1}}),t.styleLayerUID=e.uid,t.styleLayer=e,r[0]=i,l.render(t,{tiles:r}),r[0]=null)}}const r=[null];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{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};
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 o}from"./decluttering/util.js";import{RenderableTile as l}from"../webgl/RenderableTile.js";import n from"../webgl/TileContainer.js";import{simplePipelineState as a}from"../webgl/shaderGraph/utils.js";import{VTLTechniquesRepo as d}from"../webgl/shaderGraph/techniques/vectorTiles/VTLTechniques.js";import h from"../../tiling/TileCoverage.js";import c from"../../tiling/TileKey.js";const u=1e-6;function y(e,t){if(e){const s=e.getLayoutProperty("visibility");if(!s||1!==s.getValue()&&(void 0===e.minzoom||e.minzoom<t+u)&&(void 0===e.maxzoom||e.maxzoom>=t-u))return!0}return!1}class p extends n{constructor(e){super(e),this._backgroundTiles=[],this._techniques=new d,this._computeDisplayInfoView(e),this._techniques.startup()}destroy(){super.destroy(),this.removeAllChildren(),this._spriteMosaic?.dispose(),this._spriteMosaic=null,this._glyphMosaic?.dispose(),this._glyphMosaic=null,null!=this._symbolFader&&(this._symbolFader.clear(),this._symbolFader=null);const e=this.stage?.context;e&&this._techniques.shutdown(e),this._styleRepository=null,this._backgroundTiles=[]}get fading(){return this._symbolFader?.fading??!1}get symbolFader(){return this._symbolFader}get symbolRepository(){return this._symbolFader?.symbolRepository}setStyleResources(e,t,r,l){if(this._spriteMosaic=e,this._glyphMosaic=t,this._styleRepository=r,this.tileInfoView=l,this._computeDisplayInfoView(l),null==this._symbolFader){const e=(e,t)=>{e.allSymbolsFadingOut=!0,e.lastOpacityUpdate=t,o(e,t,!0),e.decluttered=!0,e.requestRender()};this._symbolFader=new i("vector-tile",this._styleRepository,e,this.children,s)}this._symbolFader.styleRepository=r}setSpriteMosaic(e){this._spriteMosaic?.dispose(),this._spriteMosaic=e}deleteStyleLayers(e){null!=this._symbolFader&&this._symbolFader.deleteStyleLayers(e)}createRenderParams(e){return{...super.createRenderParams(e),renderPass:null,styleLayer:null,styleLayerUID:-1,glyphMosaic:this._glyphMosaic,spriteMosaic:this._spriteMosaic}}doRender(e){const{drawPhase:t}=e,s=1===t||64===t;this.visible&&s&&void 0!==this._spriteMosaic&&super.doRender(e)}addChild(e){return super.addChild(e),null!=this._symbolFader?this._symbolFader.addTile(e):e.decluttered=!0,this.requestRender(),e}removeChild(e){return null!=this._symbolFader&&this._symbolFader.removeTile(e),this.requestRender(),super.removeChild(e)}renderChildren(e){const{drawPhase:t}=e;64!==t?this._doRender(e):super.renderChildren(e)}removeAllChildren(){for(let e=0;e<this.children.length;e++){const t=this.children[e];null!=this._symbolFader&&this._symbolFader.removeTile(t),t.dispose()}super.removeAllChildren()}getStencilTarget(){return this.children.filter(e=>e.neededForCoverage&&e.hasData())}restartDeclutter(){null!=this._symbolFader&&this._symbolFader.restartDeclutter()}_doRender(e){const{context:t,painter:s,state:r}=e,i=this._styleRepository;if(!i)return;const o=i.layers,l=this._displayInfo.scaleToZoom(r.scale);i.backgroundBucketIds.length>0&&(e.renderPass="background",this._renderBackgroundLayers(e,i.backgroundBucketIds,l)),super.renderChildren(e),1===e.drawPhase&&this._fade(l,r);const n=this.children.filter(e=>e.visible&&e.hasData());if(n&&0!==n.length){for(const e of n)e.triangleCount=0;t.setClearDepth(1),t.clear(256),s.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"none"},stencil:{write:!1,test:{compare:514,op:{fail:7680,zFail:7680,zPass:7681},mask:255}},depth:{write:{zNear:0,zFar:1},test:515}}),e.renderPass="opaque";for(let t=o.length-1;t>=0;t--)this._renderStyleLayer(o[t],e,n);s.setPipelineState({color:{write:[!0,!0,!0,!0],blendMode:"composite"},stencil:{write:!1,test:{compare:514,op:{fail:7680,zFail:7680,zPass:7681},mask:255}},depth:{write:!1,test:515}}),e.renderPass="translucent";for(let t=0;t<o.length;t++)this._renderStyleLayer(o[t],e,n);t.bindVAO(null),s.setPipelineState(a);for(const e of n)e.debugInfo.display.triangleCount=e.triangleCount}else t.bindVAO(null)}_fade(e,t){null!=this._symbolFader&&(this._symbolFader.update(e,t)||this.requestRender())}_renderStyleLayer(e,t,s){const{displayLevel:r,renderPass:i}=t;if(void 0===e)return;const o=e.getLayoutProperty("visibility");if(o&&1===o.getValue())return;switch(e.type){case 0:return;case 1:if("opaque"!==i&&"translucent"!==t.renderPass)return;break;case 2:case 4:case 3:if("translucent"!==i)return}if(s=3===e.type?s.filter(e=>e.decluttered):s.filter(e=>e.neededForCoverage),3!==e.type&&(0===s.length||void 0!==e.minzoom&&e.minzoom>=r+u||void 0!==e.maxzoom&&e.maxzoom<r-u))return;const l=e.uid;t.styleLayerUID=l,t.styleLayer=e;const n=this._techniques.getTechnique(e.type);null!=n&&n.render(t,{tiles:s})}_renderBackgroundLayers(t,i,o){const{state:n}=t,a=this._styleRepository;let d=!1;for(const e of i){if(0===a.getLayerById(e).type&&y(a.getLayerById(e),o)){d=!0;break}}if(!d)return;const u=this.tileInfoView,p=u.getTileCoverage(t.state,0,!0,"smallest"),{spans:m,lodInfo:f}=p,{level:g}=f,_=e(),b=[],F=this._backgroundTiles;let v,w=0;for(const{row:h,colFrom:y,colTo:T}of m)for(let t=y;t<=T;t++){if(w<F.length)v=F[w],v.key.set(g,h,f.normalizeCol(t),f.getWorldForColumn(t)),u.getTileBounds(_,v.key,!1),v.x=_[0],v.y=_[3],v.resolution=u.getTileResolution(g);else{const i=new c(g,h,f.normalizeCol(t),f.getWorldForColumn(t)),o=u.getTileBounds(e(),i),n=u.getTileResolution(g);v=new l(i,n,o[0],o[3],r,r,s,s),F.push(v)}v.setTransform(n),b.push(v),w++}const R=this._techniques.getTechnique(0);for(const e of i){const s=a.getLayerById(e);0===s.type&&y(s,o)&&(t.styleLayerUID=s.uid,t.styleLayer=s,R.render(t,{tiles:b}))}h.pool.release(p)}_computeDisplayInfoView(e){let s=e.tileInfo.lods[0].scale;const i=Math.max(25,e.tileInfo.lods.length),o=[];for(let t=0;t<=i;t++)o.push(s),s/=2;this._displayInfo=t.create({scales:o,size:r,spatialReference:e.spatialReference,numLODs:i})}}export{p 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{radToByte as t}from"./GeometryUtils.js";import s from"./MemoryBuffer.js";class o extends s{constructor(t){super(t)}add(t,o,r,u,h,a,n,d,e,p,i,c){const M=this.array;let l=s.i1616to32(t,o);M.push(l);const m=31;l=s.i8888to32(Math.round(m*r),Math.round(m*u),Math.round(m*h),Math.round(m*a)),M.push(l),l=s.i8888to32(Math.round(m*n),Math.round(m*d),Math.round(m*e),Math.round(m*p)),M.push(l),l=s.i1616to32(i,0),M.push(l),c&&M.push(...c)}}class r extends s{constructor(t){super(t)}add(t,o,r){const u=this.array;u.push(s.i1616to32(t,o)),r&&u.push(...r)}}class u extends s{constructor(t){super(t)}add(t,o,r,u,h,a,n){const d=this.array,e=this.index;let p=s.i1616to32(t,o);d.push(p);const i=15;return p=s.i8888to32(Math.round(i*r),Math.round(i*u),h,a),d.push(p),n&&d.push(...n),e}}class h extends s{constructor(t){super(t)}add(o,r,u,h,a,n,d,e,p,i,c,M){const l=this.array;let m=s.i1616to32(o,r);l.push(m),m=s.i1616to32(Math.round(8*u),Math.round(8*h)),l.push(m),m=s.i8888to32(a/4,n/4,e,p),l.push(m),m=s.i8888to32(0,t(d),10*i,Math.min(10*c,255)),l.push(m),M&&l.push(...M)}}class a extends s{constructor(t){super(t)}add(t,o,r,u,h){const a=this.array,n=s.i1616to32(2*t+r,2*o+u);a.push(n),h&&a.push(...h)}}export{a as CircleVertexBuffer,r as FillVertexBuffer,o as LineVertexBuffer,u as OutlineVertexBuffer,h as SymbolVertexBuffer};
5
+ import{radToByte as s}from"./GeometryUtils.js";import t from"./MemoryBuffer.js";import{i1616to32 as r,i8888to32 as u,i88to16 as o}from"../webgl/number.js";class h extends t{constructor(s){super(s)}add(s,t,o,h,a,n,d,e,p,c,M,i){const l=this.array;let m=r(s,t);l.push(m);const x=31;m=u(Math.round(x*o),Math.round(x*h),Math.round(x*a),Math.round(x*n)),l.push(m),m=u(Math.round(x*d),Math.round(x*e),Math.round(x*p),Math.round(x*c)),l.push(m),m=r(M,0),l.push(m),i&&l.push(...i)}}class a extends t{constructor(s){super(s)}add(s,t,u){const o=this.array;o.push(r(s,t)),u&&o.push(...u)}}class n extends t{constructor(s){super(s)}add(s,t,o,h,a,n,d){const e=this.array,p=this.index;let c=r(s,t);e.push(c);const M=15;return c=u(Math.round(M*o),Math.round(M*h),a,n),e.push(c),d&&e.push(...d),p}}class d extends t{constructor(s){super(s)}add(t,u,h,a,n,d,e,p,c,M,i,l){const m=this.array;let x=r(t,u);m.push(x),x=r(Math.round(8*h),Math.round(8*a)),m.push(x),x=r(o(n/4,d/4),o(p,c)),m.push(x),x=r(o(0,s(e)),o(10*M,Math.min(10*i,255))),m.push(x),l&&m.push(...l)}}class e extends t{constructor(s){super(s)}add(s,t,u,o,h){const a=this.array,n=r(2*s+u,2*t+o);a.push(n),h&&a.push(...h)}}export{e as CircleVertexBuffer,a as FillVertexBuffer,h as LineVertexBuffer,n as OutlineVertexBuffer,d as SymbolVertexBuffer};
@@ -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{VTLMaterial as t}from"./VTLMaterial.js";import{DataType as s}from"../../../../webgl/enums.js";import{VertexElementDescriptor as e}from"../../../../webgl/VertexElementDescriptor.js";class T extends t{static{this.ATTRIBUTES=[]}static{this.GEOMETRY_LAYOUT=[new e("a_pos",2,s.BYTE,0,2)]}static{this.ATTRIBUTES_INFO={}}constructor(t){super(t),this.baseGeometryLayout=T.GEOMETRY_LAYOUT,this.attributes=T.ATTRIBUTES,this.attributesInfo=T.ATTRIBUTES_INFO}}export{T as VTLBackgroundMaterial};
5
+ import{VTLMaterial as t}from"./VTLMaterial.js";import{DataType as s}from"../../../../webgl/enums.js";import{VertexElementDescriptor as e}from"../../../../webgl/VertexElementDescriptor.js";class r extends t{static{this.ATTRIBUTES=[]}static{this.GEOMETRY_LAYOUT=[new e("position",2,s.SHORT,0,4)]}static{this.ATTRIBUTES_INFO={}}constructor(t){super(t),this.baseGeometryLayout=r.GEOMETRY_LAYOUT,this.properties=r.ATTRIBUTES,this.propertyInfos=r.ATTRIBUTES_INFO}}export{r as VTLBackgroundMaterial};
@@ -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{VTLMaterial as e}from"./VTLMaterial.js";import{DataType as r}from"../../../../webgl/enums.js";import{VertexElementDescriptor as t}from"../../../../webgl/VertexElementDescriptor.js";class c extends e{static{this.ATTRIBUTES=["circle-radius","circle-color","circle-opacity","circle-stroke-width","circle-stroke-color","circle-stroke-opacity","circle-blur"]}static{this.GEOMETRY_LAYOUT=[new t("a_pos",2,r.SHORT,0,4)]}static{this.ATTRIBUTES_INFO={"circle-radius":{name:"radius",type:1},"circle-color":{name:"color",type:10},"circle-opacity":{name:"opacity",type:1,precisionFactor:100},"circle-stroke-width":{name:"stroke_width",type:1,precisionFactor:4},"circle-stroke-color":{name:"stroke_color",type:10},"circle-stroke-opacity":{name:"stroke_opacity",type:1,precisionFactor:100},"circle-blur":{name:"blur",type:1,precisionFactor:32}}}constructor(e){super(e),this.baseGeometryLayout=c.GEOMETRY_LAYOUT,this.attributes=c.ATTRIBUTES,this.attributesInfo=c.ATTRIBUTES_INFO}}export{c as VTLCircleMaterial};
5
+ import{VTLMaterial as t}from"./VTLMaterial.js";import{DataType as r}from"../../../../webgl/enums.js";import{VertexElementDescriptor as e}from"../../../../webgl/VertexElementDescriptor.js";class i extends t{static{this.ATTRIBUTES=["circle-radius","circle-color","circle-opacity","circle-stroke-width","circle-stroke-color","circle-stroke-opacity","circle-blur"]}static{this.GEOMETRY_LAYOUT=[new e("position",2,r.SHORT,0,4)]}static{this.ATTRIBUTES_INFO={"circle-radius":{name:"radius",type:1,attribueIdx:[1,8]},"circle-color":{name:"color",type:10,attribueIdx:[2,9]},"circle-opacity":{name:"opacity",type:1,attribueIdx:[3,10],precisionFactor:100},"circle-stroke-width":{name:"strokeWidth",type:1,attribueIdx:[4,11],precisionFactor:4},"circle-stroke-color":{name:"strokeColor",type:10,attribueIdx:[5,12]},"circle-stroke-opacity":{name:"strokeOpacity",type:1,attribueIdx:[6,13],precisionFactor:100},"circle-blur":{name:"blur",type:1,attribueIdx:[7,14],precisionFactor:32}}}constructor(t){super(t),this.baseGeometryLayout=i.GEOMETRY_LAYOUT,this.properties=i.ATTRIBUTES,this.propertyInfos=i.ATTRIBUTES_INFO}}export{i as VTLCircleMaterial};
@@ -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{VTLMaterial as t}from"./VTLMaterial.js";import{DataType as i}from"../../../../webgl/enums.js";import{VertexElementDescriptor as o}from"../../../../webgl/VertexElementDescriptor.js";class T extends t{static{this.ATTRIBUTES=["fill-color","fill-opacity","fill-pattern"]}static{this.GEOMETRY_LAYOUT=[new o("a_pos",2,i.SHORT,0,4)]}static{this.ATTRIBUTES_INFO={"fill-color":{name:"color",type:10},"fill-opacity":{name:"opacity",type:1,precisionFactor:100},"fill-pattern":{name:"tlbr",type:12,isOptional:!0}}}constructor(t){super(t),this.baseGeometryLayout=T.GEOMETRY_LAYOUT,this.attributes=T.ATTRIBUTES,this.attributesInfo=T.ATTRIBUTES_INFO}}class e extends t{static{this.ATTRIBUTES_OUTLINE=["fill-outline-color","fill-opacity"]}static{this.ATTRIBUTES_FILL=["fill-color","fill-opacity"]}static{this.GEOMETRY_LAYOUT=[new o("a_pos",2,i.SHORT,0,8),new o("a_offset",2,i.BYTE,4,8),new o("a_xnormal",2,i.BYTE,6,8)]}static{this.ATTRIBUTES_INFO_OUTLINE={"fill-outline-color":{name:"color",type:10},"fill-opacity":{name:"opacity",type:1,precisionFactor:100}}}static{this.ATTRIBUTES_INFO_FILL={"fill-color":{name:"color",type:10},"fill-opacity":{name:"opacity",type:1,precisionFactor:100}}}constructor(t,i){super(t),this.baseGeometryLayout=e.GEOMETRY_LAYOUT,this.attributes=i?e.ATTRIBUTES_FILL:e.ATTRIBUTES_OUTLINE,this.attributesInfo=i?e.ATTRIBUTES_INFO_FILL:e.ATTRIBUTES_INFO_OUTLINE}}export{T as VTLFillMaterial,e as VTLOutlineMaterial};
5
+ import{VTLMaterial as t}from"./VTLMaterial.js";import{DataType as i}from"../../../../webgl/enums.js";import{VertexElementDescriptor as o}from"../../../../webgl/VertexElementDescriptor.js";class e extends t{static{this.ATTRIBUTES=["fill-color","fill-opacity","fill-pattern"]}static{this.GEOMETRY_LAYOUT=[new o("position",2,i.SHORT,0,4)]}static{this.ATTRIBUTES_INFO={"fill-color":{name:"color",type:10,attribueIdx:[1,4]},"fill-opacity":{name:"opacity",type:1,precisionFactor:100,attribueIdx:[2,5]},"fill-pattern":{name:"tlbr",type:12,isOptional:!0,attribueIdx:[3,3]}}}constructor(t){super(t),this.baseGeometryLayout=e.GEOMETRY_LAYOUT,this.properties=e.ATTRIBUTES,this.propertyInfos=e.ATTRIBUTES_INFO}}class r extends t{static{this.ATTRIBUTES_OUTLINE=["fill-outline-color","fill-opacity"]}static{this.ATTRIBUTES_FILL=["fill-color","fill-opacity"]}static{this.GEOMETRY_LAYOUT=[new o("position",2,i.SHORT,0,8),new o("offset",2,i.BYTE,4,8),new o("normal",2,i.BYTE,6,8)]}static{this.ATTRIBUTES_INFO_OUTLINE={"fill-outline-color":{name:"color",type:10,attribueIdx:[3,5]},"fill-opacity":{name:"opacity",type:1,precisionFactor:100,attribueIdx:[4,6]}}}static{this.ATTRIBUTES_INFO_FILL={"fill-color":{name:"color",type:10,attribueIdx:[3,5]},"fill-opacity":{name:"opacity",type:1,precisionFactor:100,attribueIdx:[4,6]}}}constructor(t,i){super(t),this.baseGeometryLayout=r.GEOMETRY_LAYOUT,this.properties=i?r.ATTRIBUTES_FILL:r.ATTRIBUTES_OUTLINE,this.propertyInfos=i?r.ATTRIBUTES_INFO_FILL:r.ATTRIBUTES_INFO_OUTLINE}}export{e as VTLFillMaterial,r as VTLOutlineMaterial};
@@ -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{VTLMaterial as e}from"./VTLMaterial.js";import{DataType as t}from"../../../../webgl/enums.js";import{VertexElementDescriptor as i}from"../../../../webgl/VertexElementDescriptor.js";class a extends e{static{this.ATTRIBUTES=["line-blur","line-color","line-gap-width","line-offset","line-opacity","line-width","line-pattern","line-dasharray"]}static{this.GEOMETRY_LAYOUT=[new i("a_pos",2,t.SHORT,0,16),new i("a_extrude_offset",4,t.BYTE,4,16),new i("a_dir_normal",4,t.BYTE,8,16),new i("a_accumulatedDistance",2,t.UNSIGNED_SHORT,12,16)]}static{this.ATTRIBUTES_INFO={"line-width":{name:"width",type:1,precisionFactor:2},"line-gap-width":{name:"gap_width",type:1,precisionFactor:2},"line-offset":{name:"offset",type:0,precisionFactor:2},"line-color":{name:"color",type:10},"line-opacity":{name:"opacity",type:1,precisionFactor:100},"line-blur":{name:"blur",type:1,precisionFactor:4},"line-pattern":{name:"tlbr",type:12,isOptional:!0},"line-dasharray":{name:"tlbr",type:11,isOptional:!0}}}constructor(e){super(e),this.baseGeometryLayout=a.GEOMETRY_LAYOUT,this.attributes=a.ATTRIBUTES,this.attributesInfo=a.ATTRIBUTES_INFO}}export{a as VTLLineMaterial};
5
+ import{VTLMaterial as t}from"./VTLMaterial.js";import{DataType as e}from"../../../../webgl/enums.js";import{VertexElementDescriptor as i}from"../../../../webgl/VertexElementDescriptor.js";class r extends t{static{this.ATTRIBUTES=["line-color","line-width","line-opacity","line-blur","line-offset","line-pattern","line-dasharray"]}static{this.GEOMETRY_LAYOUT=[new i("position",2,e.SHORT,0,16),new i("extrudeOffset",4,e.BYTE,4,16),new i("directionNormal",4,e.BYTE,8,16),new i("accumulatedDistance",2,e.UNSIGNED_SHORT,12,16)]}static{this.ATTRIBUTES_INFO={"line-color":{name:"color",type:10,attribueIdx:[4,10]},"line-width":{name:"width",type:1,attribueIdx:[5,11],precisionFactor:2},"line-opacity":{name:"opacity",type:1,attribueIdx:[6,12],precisionFactor:100},"line-blur":{name:"blur",type:1,attribueIdx:[7,13],precisionFactor:4},"line-offset":{name:"offset",type:0,attribueIdx:[8,14],precisionFactor:2},"line-pattern":{name:"tlbr",type:12,attribueIdx:[9,9],isOptional:!0},"line-dasharray":{name:"tlbr",type:11,attribueIdx:[9,9],isOptional:!0}}}constructor(t){super(t),this.baseGeometryLayout=r.GEOMETRY_LAYOUT,this.properties=r.ATTRIBUTES,this.propertyInfos=r.ATTRIBUTES_INFO}}export{r as VTLLineMaterial};
@@ -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"../MemoryBuffer.js";import{DataType as e}from"../../../../webgl/enums.js";import{fromLayouts as o,fromLayout as n}from"../../../../webgl/VertexAttributeLocations.js";import{VertexElementDescriptor as r}from"../../../../webgl/VertexElementDescriptor.js";class s{constructor(t){this._key=t}get key(){return this._key}get type(){return 7&this._key}defines(){return[]}getStride(){return this._geometryLayout||this._buildAttributesInfo(),this._stride}getAttributeLocations(){return this._geometryLayout||this._buildAttributesInfo(),this._locations}get geometryLayout(){return this._geometryLayout||this._buildAttributesInfo(),this._geometryLayout}getEncodingInfos(){return this._propertyEncodingInfo||this._buildAttributesInfo(),this._propertyEncodingInfo}getUniforms(){return this._uniforms||this._buildAttributesInfo(),this._uniforms}getShaderHeader(){return this._shaderHeader||this._buildAttributesInfo(),this._shaderHeader}getShaderMain(){return this._shaderMain||this._buildAttributesInfo(),this._shaderMain}setDataUniforms(t,e,o,n,r){const s=this.getUniforms();for(const a of s){const{name:s,type:i,getValue:c}=a,u=c(o,e,n,r);if(null!==u)switch(i){case"float":t.setUniform1f(s,u);break;case"vec2":t.setUniform2fv(s,u);break;case"vec4":t.setUniform4fv(s,u)}}}encodeAttributes(t,e,o,n){const r=this.attributesInfo,s=this.getEncodingInfos(),a=[];let i=0,c=0;for(const u of Object.keys(s)){const h=s[u],{type:d,precisionFactor:f,isLayout:l}=r[u],y=l?o.getLayoutProperty(u):o.getPaintProperty(u),_=y.interpolator?.getInterpolationRange(e);let m=0;for(const o of h){const{offset:r,bufferElementsToAdd:s}=o;if(s>0){for(let t=0;t<s;t++)a.push(0);i+=c,c=o.bufferElementsToAdd}const u=n??y.getValue(_?_[m]:e,t);switch(d){case 0:case 1:a[i]|=this._encodeByte(u*(f||1),8*r);break;case 2:case 3:a[i]|=this._encodeShort(u*(f||1),8*r);break;case 4:case 5:a[i]|=this._encodeByte(u*(f||1),8*r),a[i]|=this._encodeByte(u*(f||1),8*r+8);break;case 6:case 7:a[i]|=this._encodeShort(u*(f||1),8*r),a[i]|=this._encodeShort(u*(f||1),8*r+16);break;case 8:case 9:a[i]|=this._encodeByte(u*(f||1),8*r),a[i]|=this._encodeByte(u*(f||1),8*r+8),a[i]|=this._encodeByte(u*(f||1),8*r+16),a[i]|=this._encodeByte(u*(f||1),8*r+24);break;case 10:a[i]=this._encodeColor(u);break;case 11:case 12:this._encodePattern(i,a,u);break;default:throw new Error("Unsupported encoding type")}m++}}return a}getAtributeState(t){let e=0;const o=3+2*t;return e|=this._bit(o),e|=this._bit(o+1)<<1,e}static{this._encodingInfo={0:{dataType:e.BYTE,bytesPerElement:1,count:1,normalized:!1},1:{dataType:e.UNSIGNED_BYTE,bytesPerElement:1,count:1,normalized:!1},2:{dataType:e.SHORT,bytesPerElement:2,count:1,normalized:!1},3:{dataType:e.UNSIGNED_SHORT,bytesPerElement:2,count:1,normalized:!1},4:{dataType:e.BYTE,bytesPerElement:1,count:2,normalized:!1},5:{dataType:e.UNSIGNED_BYTE,bytesPerElement:1,count:2,normalized:!1},6:{dataType:e.SHORT,bytesPerElement:2,count:2,normalized:!1},7:{dataType:e.UNSIGNED_SHORT,bytesPerElement:2,count:2,normalized:!1},8:{dataType:e.BYTE,bytesPerElement:1,count:4,normalized:!1},9:{dataType:e.UNSIGNED_BYTE,bytesPerElement:1,count:4,normalized:!1},10:{dataType:e.UNSIGNED_BYTE,bytesPerElement:1,count:4,normalized:!0},11:{dataType:e.UNSIGNED_SHORT,bytesPerElement:2,count:4,normalized:!1},12:{dataType:e.UNSIGNED_SHORT,bytesPerElement:2,count:4,normalized:!1}}}_buildAttributesInfo(){const t=[],o={},{attributesInfo:n,attributes:r}=this,a={};let i=-1,c=-1;for(const e of r){c++;const r=this.getAtributeState(c);if(0===r||3===r)continue;const u=n[e],h=[];o[e]=h;const d=u.type;for(let e=0;e<r;e++){const{dataType:e,bytesPerElement:o,count:n,normalized:r}=s._encodingInfo[d],c=o*n,u=`${e}-${!0===r}`;let f=a[u],l=0;if(!f||f.count+n>4)i++,f={dataIndex:i,count:0,offset:0},4!==n&&(a[u]=f),t.push({location:-1,name:"a_data_"+i,count:n,type:e,normalized:r}),l=Math.ceil(Math.max(c/4,1));else{const e=t[f.dataIndex];e.count+=n;l=Math.ceil(Math.max(e.count*o/4,1))-Math.ceil(Math.max(f.offset/4,1))}h.push({dataIndex:f.dataIndex,offset:f.offset,bufferElementsToAdd:l}),f.offset+=c,f.count+=n}}for(const s of t)switch(s.type){case e.BYTE:case e.UNSIGNED_BYTE:s.count=4;break;case e.SHORT:case e.UNSIGNED_SHORT:s.count+=s.count%2}this._buildVertexBufferLayout(t),this._buildShaderInfo(t,o),this._propertyEncodingInfo=o}_buildVertexBufferLayout(t){const e=this.baseGeometryLayout;let s=e[0].stride;if(0===t.length)this._geometryLayout=e;else{const o=[];let n=s;for(const e of t)s+=a(e.type)*e.count;for(const t of e)o.push(new r(t.name,t.count,t.type,t.offset,s,t.normalized));for(const e of t)o.push(new r(e.name,e.count,e.type,n,s,e.normalized)),n+=a(e.type)*e.count;this._geometryLayout=o}this.opacityLayout?this._locations=o([this._geometryLayout,this.opacityLayout]):this._locations=n(this._geometryLayout),this._stride=s}_buildShaderInfo(t,e){let o="\n",n="\n";const r=[];for(const s of t)o+=`attribute ${this._getType(s.count)} ${s.name};\n`;const{attributesInfo:a,attributes:c}=this;let u=-1;for(const h of c){u++;const{name:t,type:c,precisionFactor:d,isLayout:f}=a[h],l=d&&1!==d?" * "+1/d:"",{bytesPerElement:y,count:_}=s._encodingInfo[c],m=t=>`a_data_${t.dataIndex}${i(_,t.offset,y)}`;switch(this.getAtributeState(u)){case 0:{const e=this._getType(_),s=`u_${t}`;r.push({name:s,type:e,getValue:(t,e,o,n)=>{const r=f?t.getLayoutValue(h,e):t.getPaintValue(h,e);if(11===c){const o=t.getDashKey(r,t.getLayoutValue("line-cap",e)),s=n.getMosaicItemPosition(o,!1);if(null==s)return null;const{tl:a,br:i}=s;return[a[0],i[1],i[0],a[1]]}if(12===c){const t=n.getMosaicItemPosition(r,!h.includes("line-"));if(null==t)return null;const{tl:e,br:o}=t;return[e[0],o[1],o[0],e[1]]}if(10===c){const t=r[3];return[t*r[0],t*r[1],t*r[2],t]}return r}}),o+=`uniform ${e} ${s};\n`,n+=`${e} ${t} = ${s};\n`}break;case 1:{const o=m(e[h][0]);n+=`${this._getType(_)} ${t} = ${o}${l};\n`}break;case 2:{const s=`u_t_${t}`;r.push({name:s,type:"float",getValue:(t,e,o,n)=>(f?t.getLayoutProperty(h):t.getPaintProperty(h)).interpolator.interpolationUniformValue(o,e)}),o+=`uniform float ${s};\n`;const a=m(e[h][0]),i=m(e[h][1]);n+=`${this._getType(_)} ${t} = mix(${a}${l}, ${i}${l}, ${s});\n`}}}this._shaderHeader=o,this._shaderMain=n,this._uniforms=r}_bit(t){return(this._key&1<<t)>>t}_getType(t){switch(t){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4"}throw new Error("Invalid count")}_encodeColor(e){const o=255*e[3];return t.i8888to32(e[0]*o,e[1]*o,e[2]*o,o)}_encodePattern(t,e,o){if(!o?.rect)return;const n=2,r=o.rect,s=o.width,a=o.height;e[t]=this._encodeShort(r.x+n,0),e[t]|=this._encodeShort(r.y+n+a,16),e[t+1]=this._encodeShort(r.x+n+s,0),e[t+1]|=this._encodeShort(r.y+n,16)}_encodeByte(t,e){return(255&t)<<e}_encodeShort(t,e){return(65535&t)<<e}}const a=t=>{switch(t){case e.FLOAT:case e.INT:case e.UNSIGNED_INT:return 4;case e.SHORT:case e.UNSIGNED_SHORT:case e.HALF_FLOAT:return 2;case e.BYTE:case e.UNSIGNED_BYTE:return 1}},i=(t,e,o)=>{const n=e/o;if(1===t)switch(n){case 0:return".x";case 1:return".y";case 2:return".z";case 3:return".w"}else if(2===t)switch(n){case 0:return".xy";case 1:return".yz";case 2:return".zw"}else if(3===t)switch(n){case 0:return".xyz";case 1:return".yzw"}return""};export{s as VTLMaterial};
5
+ import{i8888to32 as t}from"../../webgl/number.js";import{sortByAlignment as e}from"../../webgl/shaderGraph/techniques/mesh/AlignedVertexSpec.js";import{DataType as o}from"../../../../webgl/enums.js";import{fromLayouts as r,fromLayout as n}from"../../../../webgl/VertexAttributeLocations.js";import{VertexElementDescriptor as s}from"../../../../webgl/VertexElementDescriptor.js";class i{constructor(t){this._precisionFactors={},this._key=t}get key(){return this._key}get type(){return 7&this._key}defines(){return[]}getStride(){return this._geometryLayout||this._buildMaterialInfo(),this._stride}getAttributeLocations(){return this._geometryLayout||this._buildMaterialInfo(),this._locations}getPrecisionFactors(){return this._precisionFactors||this._buildMaterialInfo(),this._precisionFactors}get geometryLayout(){return this._geometryLayout||this._buildMaterialInfo(),this._geometryLayout}getEncodingInfos(){return this._propertyEncodingInfo||this._buildMaterialInfo(),this._propertyEncodingInfo}getUniforms(){return this._uniforms||this._buildMaterialInfo(),this._uniforms}getUsedAttributes(){return this._usedAttributes||this._buildMaterialInfo(),this._usedAttributes}encodeAttributes(t,e,o,r){const n=this.propertyInfos,s=this.getEncodingInfos(),i=[],a=i.length,c=Math.ceil(this._ddStrideInBytes/4);for(let u=0;u<c;u++)i.push(0);for(const u of Object.keys(s)){const c=s[u],{type:h,precisionFactor:y,isLayout:l}=n[u],d=l?o.getLayoutProperty(u):o.getPaintProperty(u),p=d.interpolator?.getInterpolationRange(e);let _=0;for(const o of c){const{offset:n}=o,s=a+Math.floor(n/4),c=r??d.getValue(p?p[_]:e,t),u=y||1;switch(h){case 0:case 1:i[s]|=this._encodeByte(c*u,0);break;case 2:case 3:i[s]|=this._encodeShort(c*u,0);break;case 4:case 5:i[s]|=this._encodeByte(c*u,0),i[s]|=this._encodeByte(c*u,8);break;case 6:case 7:i[s]|=this._encodeShort(c*u,0),i[s]|=this._encodeShort(c*u,16);break;case 8:case 9:i[s]|=this._encodeByte(c*u,0),i[s]|=this._encodeByte(c*u,8),i[s]|=this._encodeByte(c*u,16),i[s]|=this._encodeByte(c*u,24);break;case 10:i[s]=this._encodeColor(c);break;case 11:case 12:this._encodePattern(s,i,c);break;default:throw new Error("Unsupported encoding type")}_++}}return i}getAtributeState(t){let e=0;const o=3+2*t;return e|=this._bit(o),e|=this._bit(o+1)<<1,e}static{this._encodingInfo={0:{dataType:o.BYTE,bytesPerElement:1,count:1,normalized:!1},1:{dataType:o.UNSIGNED_BYTE,bytesPerElement:1,count:1,normalized:!1},2:{dataType:o.SHORT,bytesPerElement:2,count:1,normalized:!1},3:{dataType:o.UNSIGNED_SHORT,bytesPerElement:2,count:1,normalized:!1},4:{dataType:o.BYTE,bytesPerElement:1,count:2,normalized:!1},5:{dataType:o.UNSIGNED_BYTE,bytesPerElement:1,count:2,normalized:!1},6:{dataType:o.SHORT,bytesPerElement:2,count:2,normalized:!1},7:{dataType:o.UNSIGNED_SHORT,bytesPerElement:2,count:2,normalized:!1},8:{dataType:o.BYTE,bytesPerElement:1,count:4,normalized:!1},9:{dataType:o.UNSIGNED_BYTE,bytesPerElement:1,count:4,normalized:!1},10:{dataType:o.UNSIGNED_BYTE,bytesPerElement:1,count:4,normalized:!0},11:{dataType:o.UNSIGNED_SHORT,bytesPerElement:2,count:4,normalized:!1},12:{dataType:o.UNSIGNED_SHORT,bytesPerElement:2,count:4,normalized:!1}}}_getLayoutElementsForPropertyState(t,e,o){const r=o[t],n=r.name,{count:s,dataType:a,normalized:c}=i._encodingInfo[r.type],{attribueIdx:u,precisionFactor:h}=r,y=h||1,l=[{location:u[0],name:n,propertyName:t,count:s,type:a,normalized:c,precisionFactor:y}];if(this._precisionFactors[n]=y,2===e){const e=`${n}To`;l.push({location:u[1],name:e,propertyName:t,count:s,type:a,normalized:c,precisionFactor:y}),this._precisionFactors[e]=y}return l}_buildMaterialInfo(){const t=[];this._propertyEncodingInfo={};const e={},o=this.properties,r=this.propertyInfos;let n=-1;for(const i of o){n++;const o=r[i].name;e[o]=!1,e[`${o}To`]=!1;const s=this.getAtributeState(n);if(0===s||3===s)continue;const a=this._getLayoutElementsForPropertyState(i,s,r);t.push(...a)}for(const i of t)e[i.name]=!0;const s=u(t);this._buildLayout(s),this._buildShaderUniforms(),this._usedAttributes=e}_buildLayout(t){this.opacityLayout?this._locations=r([this.baseGeometryLayout,this.opacityLayout]):this._locations=n(this.baseGeometryLayout);const e=this.baseGeometryLayout;let o=e[0].stride;const i=[];let u=0;for(const r of t)u+=a(r.type)*r.count;o=c(o+u);for(const r of e)i.push(new s(r.name,r.count,r.type,r.offset,o,r.normalized));let h=0;for(const r of t)i.push(new s(r.name,r.count,r.type,e[0].stride+h,o,r.normalized)),void 0===this._propertyEncodingInfo[r.propertyName]&&(this._propertyEncodingInfo[r.propertyName]=[]),this._propertyEncodingInfo[r.propertyName].push({offset:h}),h+=a(r.type)*r.count;this._ddStrideInBytes=h,this._geometryLayout=i;const y=this._locations;for(const r of t)y.set(r.name,r.location);this._stride=o}_buildShaderUniforms(){const t=[],e=this.properties,o=this.propertyInfos;let r=-1;for(const n of e){r++;const{name:e,type:s,isLayout:i}=o[n];switch(this.getAtributeState(r)){case 0:t.push({name:e,getValue:(t,e,o,r)=>{const a=i?t.getLayoutValue(n,e):t.getPaintValue(n,e);switch(s){case 11:{const o=t.getDashKey(a,t.getLayoutValue("line-cap",e)),n=r.getMosaicItemPosition(o,!1);if(null==n)return null;const{tl:s,br:i}=n;return[s[0],i[1],i[0],s[1]]}case 12:{const t=r.getMosaicItemPosition(a,!n.includes("line-"));if(null==t)return null;const{tl:e,br:o}=t;return[e[0],o[1],o[0],e[1]]}case 10:{const t=a[3];return[t*a[0],t*a[1],t*a[2],t]}default:return a}}});break;case 2:{const o=`${e}Mix`;t.push({name:o,getValue:(t,e,o,r)=>(i?t.getLayoutProperty(n):t.getPaintProperty(n)).interpolator.interpolationUniformValue(o,e)})}}}this._uniforms=t}_bit(t){return(this._key&1<<t)>>t}_encodeColor(e){const o=255*e[3];return t(e[0]*o,e[1]*o,e[2]*o,o)}_encodePattern(t,e,o){if(!o?.rect)return;const r=2,n=o.rect,s=o.width,i=o.height;e[t]=this._encodeShort(n.x+r,0),e[t]|=this._encodeShort(n.y+r+i,16),e[t+1]=this._encodeShort(n.x+r+s,0),e[t+1]|=this._encodeShort(n.y+r,16)}_encodeByte(t,e){return(255&t)<<e}_encodeShort(t,e){return(65535&t)<<e}}const a=t=>{switch(t){case o.FLOAT:case o.INT:case o.UNSIGNED_INT:return 4;case o.SHORT:case o.UNSIGNED_SHORT:case o.HALF_FLOAT:return 2;case o.BYTE:case o.UNSIGNED_BYTE:return 1}},c=t=>t+3&-4;function u(t){const o=e(t),r=[];let n=0;for(const e of o)r.push({...e,offset:n}),n+=a(e.type)*e.count;return r}export{i as VTLMaterial};
@@ -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{VTLMaterial as t}from"./VTLMaterial.js";import{DataType as o}from"../../../../webgl/enums.js";import{VertexElementDescriptor as e}from"../../../../webgl/VertexElementDescriptor.js";const i=[new e("a_pos",2,o.SHORT,0,16),new e("a_vertexOffset",2,o.SHORT,4,16),new e("a_texAngleRange",4,o.UNSIGNED_BYTE,8,16),new e("a_levelInfo",4,o.UNSIGNED_BYTE,12,16)],a=[new e("a_opacityInfo",1,o.UNSIGNED_BYTE,0,1)];class c extends t{static{this.ATTRIBUTES=["icon-color","icon-opacity","icon-halo-blur","icon-halo-color","icon-halo-width","icon-size"]}static{this.ATTRIBUTES_INFO={"icon-color":{name:"color",type:10},"icon-opacity":{name:"opacity",type:1,precisionFactor:100},"icon-halo-color":{name:"halo_color",type:10},"icon-halo-width":{name:"halo_width",type:1,precisionFactor:4},"icon-halo-blur":{name:"halo_blur",type:1,precisionFactor:4},"icon-size":{name:"size",type:1,precisionFactor:32,isLayout:!0}}}constructor(t){super(t),this.baseGeometryLayout=i,this.opacityLayout=a,this.attributes=c.ATTRIBUTES,this.attributesInfo=c.ATTRIBUTES_INFO}}class r extends t{static{this.ATTRIBUTES=["text-color","text-opacity","text-halo-blur","text-halo-color","text-halo-width","text-size"]}static{this.ATTRIBUTES_INFO={"text-color":{name:"color",type:10},"text-opacity":{name:"opacity",type:1,precisionFactor:100},"text-halo-color":{name:"halo_color",type:10},"text-halo-width":{name:"halo_width",type:1,precisionFactor:4},"text-halo-blur":{name:"halo_blur",type:1,precisionFactor:4},"text-size":{name:"size",type:1,isLayout:!0}}}constructor(t){super(t),this.baseGeometryLayout=i,this.opacityLayout=a,this.attributes=r.ATTRIBUTES,this.attributesInfo=r.ATTRIBUTES_INFO}}export{c as VTLIconMaterial,r as VTLTextMaterial};
5
+ import{VTLMaterial as t}from"./VTLMaterial.js";import{DataType as o}from"../../../../webgl/enums.js";import{VertexElementDescriptor as e}from"../../../../webgl/VertexElementDescriptor.js";const i=[new e("positionAndOffset",4,o.SHORT,0,16),new e("iconInfo",4,o.UNSIGNED_SHORT,8,16)],a=[new e("opacityInfo",1,o.UNSIGNED_BYTE,0,1)];class r extends t{static{this.ATTRIBUTES=["icon-color","icon-opacity","icon-halo-blur","icon-halo-color","icon-halo-width","icon-size"]}static{this.ATTRIBUTES_INFO={"icon-color":{name:"color",type:10,attribueIdx:[2,8]},"icon-opacity":{name:"opacity",type:1,precisionFactor:100,attribueIdx:[3,9]},"icon-halo-color":{name:"haloColor",type:10,attribueIdx:[4,10]},"icon-halo-width":{name:"haloWidth",type:1,precisionFactor:4,attribueIdx:[5,11]},"icon-halo-blur":{name:"haloBlur",type:1,precisionFactor:4,attribueIdx:[6,12]},"icon-size":{name:"size",type:1,precisionFactor:32,isLayout:!0,attribueIdx:[7,13]}}}constructor(t){super(t),this.baseGeometryLayout=i,this.opacityLayout=a,this.properties=r.ATTRIBUTES,this.propertyInfos=r.ATTRIBUTES_INFO}}class c extends t{static{this.ATTRIBUTES=["text-color","text-opacity","text-halo-blur","text-halo-color","text-halo-width","text-size"]}static{this.ATTRIBUTES_INFO={"text-color":{name:"color",type:10,attribueIdx:[4,10]},"text-opacity":{name:"opacity",type:1,precisionFactor:100,attribueIdx:[3,9]},"text-halo-color":{name:"haloColor",type:10,attribueIdx:[5,11]},"text-halo-width":{name:"haloWidth",type:1,precisionFactor:4,attribueIdx:[6,12]},"text-halo-blur":{name:"haloBlur",type:1,precisionFactor:4,attribueIdx:[7,13]},"text-size":{name:"size",type:1,isLayout:!0,attribueIdx:[2,8]}}}constructor(t){super(t),this.baseGeometryLayout=i,this.opacityLayout=a,this.properties=c.ATTRIBUTES,this.propertyInfos=c.ATTRIBUTES_INFO}}export{r as VTLIconMaterial,c as VTLTextMaterial};