@arcgis/core 5.1.0-next.94 → 5.1.0-next.95

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/Graphic.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/02aaeaa988e9e7d65a7f.js +1 -0
  4. package/assets/esri/core/workers/chunks/03a4543b94f9adeb1852.js +1 -0
  5. package/assets/esri/core/workers/chunks/05c52e8f187740da9b36.js +1 -0
  6. package/assets/esri/core/workers/chunks/0630ce1975c91ae362d9.js +1 -0
  7. package/assets/esri/core/workers/chunks/{7f0f10946f05a09b5654.js → 07ddf1b1f7602063ceb0.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{f04b49d80f422708d98c.js → 0e6b24e8864940ed9877.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{0981fe06796060e50d40.js → 0f527961805cd45c14e2.js} +1 -1
  10. package/assets/esri/core/workers/chunks/11a99ee68409a641810e.js +1 -0
  11. package/assets/esri/core/workers/chunks/11b0d3a825fe50dd1e84.js +1 -0
  12. package/assets/esri/core/workers/chunks/130abc6a353e4d79a1b1.js +1 -0
  13. package/assets/esri/core/workers/chunks/16006dc0cb95f7c291a5.js +1 -0
  14. package/assets/esri/core/workers/chunks/177472a6a9beb1590934.js +1 -0
  15. package/assets/esri/core/workers/chunks/19a9a555365a8363d34b.js +1 -0
  16. package/assets/esri/core/workers/chunks/1a68a249540fda9083a9.js +1 -0
  17. package/assets/esri/core/workers/chunks/1ae016e4f5e39c34a941.js +1 -0
  18. package/assets/esri/core/workers/chunks/{43f58604ba4a94a9167c.js → 1f3a676e7a4eae5ad566.js} +1 -1
  19. package/assets/esri/core/workers/chunks/23241e6093e245f9c774.js +1 -0
  20. package/assets/esri/core/workers/chunks/{8875e53097b25655ef67.js → 246253fbbb2ecea48f91.js} +1 -1
  21. package/assets/esri/core/workers/chunks/25d795a1697803d77e56.js +1 -0
  22. package/assets/esri/core/workers/chunks/268ed861c882740c805b.js +1 -0
  23. package/assets/esri/core/workers/chunks/{da008d6a3afb30d18392.js → 299b4eecd0288348c971.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{df8a3d3cac454d42e14d.js → 29aba121db7f00e0cf81.js} +1 -1
  25. package/assets/esri/core/workers/chunks/2b52c1c01cf568ba01fb.js +1 -0
  26. package/assets/esri/core/workers/chunks/2f6ba01ea8b8f193bea5.js +1 -0
  27. package/assets/esri/core/workers/chunks/3116a1c2b67a296ba86e.js +1 -0
  28. package/assets/esri/core/workers/chunks/31837f2f8859e2cf2efd.js +1 -0
  29. package/assets/esri/core/workers/chunks/3241e0ed26aff61ec213.js +1 -0
  30. package/assets/esri/core/workers/chunks/330da3828eefd8d72d3f.js +1 -0
  31. package/assets/esri/core/workers/chunks/359465b9726edcc70c83.js +1 -0
  32. package/assets/esri/core/workers/chunks/36ecb0082b8804b10fbf.js +1 -0
  33. package/assets/esri/core/workers/chunks/389e57aab12d52d72695.js +1 -0
  34. package/assets/esri/core/workers/chunks/38b1d2ffcc318ac0119d.js +1 -0
  35. package/assets/esri/core/workers/chunks/390717f079def83a0d9c.js +1 -0
  36. package/assets/esri/core/workers/chunks/{3397eae416622c64e628.js → 3f0483cbcd893acf240c.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{4378e544687fec4b06fb.js → 40afdb74517a7df59e0d.js} +1 -1
  38. package/assets/esri/core/workers/chunks/41e811138c96d85fd3e8.js +1 -0
  39. package/assets/esri/core/workers/chunks/43b5cfb34b11c4124b51.js +1 -0
  40. package/assets/esri/core/workers/chunks/{747e258f57f0543c836e.js → 43cc82373be791b7cb4c.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{1f141a007b1ef9b069c6.js → 4456bbb4b7dfe80c7477.js} +1 -1
  42. package/assets/esri/core/workers/chunks/44b30dfce12824ee1f33.js +1 -0
  43. package/assets/esri/core/workers/chunks/453c3b265481c80fc625.js +1 -0
  44. package/assets/esri/core/workers/chunks/4644e1b00fd4e628219d.js +1 -0
  45. package/assets/esri/core/workers/chunks/47dd2bfecc5c4b5f10f0.js +1 -0
  46. package/assets/esri/core/workers/chunks/4b19acf8bde5b2e80692.js +1 -0
  47. package/assets/esri/core/workers/chunks/4faaf61d20e20fcf6c18.js +1 -0
  48. package/assets/esri/core/workers/chunks/{82215d7a64b8be02eff1.js → 509beae195c900a85e0b.js} +1 -1
  49. package/assets/esri/core/workers/chunks/5217d676749bca59d90f.js +1 -0
  50. package/assets/esri/core/workers/chunks/{53750e85f3128993a43a.js → 545c38789267e3487dbd.js} +1 -1
  51. package/assets/esri/core/workers/chunks/54dad475dc806a38c287.js +1 -0
  52. package/assets/esri/core/workers/chunks/5648379d1ed4ca02eedd.js +1 -0
  53. package/assets/esri/core/workers/chunks/{fb75d4bce1e86eed017a.js → 5853925d2f7fb550bd2e.js} +5 -5
  54. package/assets/esri/core/workers/chunks/58579c53be1a44bd08d2.js +1 -0
  55. package/assets/esri/core/workers/chunks/5ea0096a282e87a269bd.js +1 -0
  56. package/assets/esri/core/workers/chunks/63378b0b4265a547656b.js +1 -0
  57. package/assets/esri/core/workers/chunks/{3a691f848152e3818a48.js → 642be1619c0e76355cb6.js} +1 -1
  58. package/assets/esri/core/workers/chunks/65b0b4e808479187da00.js +1 -0
  59. package/assets/esri/core/workers/chunks/6666cd3bf1a3d175dc8c.js +1 -0
  60. package/assets/esri/core/workers/chunks/69a1cbf0af059548f96a.js +1 -0
  61. package/assets/esri/core/workers/chunks/6ae2408ac075b974e887.js +1 -0
  62. package/assets/esri/core/workers/chunks/{9b869a8bda9384f25464.js → 6b4c99c7648f37feec00.js} +1 -1
  63. package/assets/esri/core/workers/chunks/6b79c254897ece95b7a3.js +1 -0
  64. package/assets/esri/core/workers/chunks/6d66dc77af8d112c33c6.js +1 -0
  65. package/assets/esri/core/workers/chunks/71119398ec91f1b209d7.js +1 -0
  66. package/assets/esri/core/workers/chunks/71e12db99589c98a4357.js +1 -0
  67. package/assets/esri/core/workers/chunks/7536f0683e488159d8bd.js +1 -0
  68. package/assets/esri/core/workers/chunks/76589434d573111a8fb4.js +1 -0
  69. package/assets/esri/core/workers/chunks/7c2d2f22df057ba8cb50.js +1 -0
  70. package/assets/esri/core/workers/chunks/7d6299ab7b0db23ab961.js +1 -0
  71. package/assets/esri/core/workers/chunks/82b2acc6f181927de89c.js +1 -0
  72. package/assets/esri/core/workers/chunks/85a200aecc7a844c9566.js +1 -0
  73. package/assets/esri/core/workers/chunks/89250d268dc2554a9ece.js +1 -0
  74. package/assets/esri/core/workers/chunks/8a23a62cbf1c5b4019c5.js +1 -0
  75. package/assets/esri/core/workers/chunks/8ac8ef856ed9592c433b.js +1 -0
  76. package/assets/esri/core/workers/chunks/8bfe4841c83eb3abfbe8.js +1 -0
  77. package/assets/esri/core/workers/chunks/{c7b9df9a204f6206364a.js → 8de61993e114f453579b.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{01af2a0611386df64cb1.js → 8f992ff87173a3ca1621.js} +28 -24
  79. package/assets/esri/core/workers/chunks/9bb2251ba58932f85d13.js +1 -0
  80. package/assets/esri/core/workers/chunks/{d8ccc713c5ad93e7a0c3.js → 9bd713d96502ddc2ce25.js} +1 -1
  81. package/assets/esri/core/workers/chunks/{8351012ceb466f01b8fd.js → 9d8e7839772029d83c93.js} +1 -1
  82. package/assets/esri/core/workers/chunks/a12fd6a445f42326642f.js +1 -0
  83. package/assets/esri/core/workers/chunks/a50fd0e66b01fe205033.js +1 -0
  84. package/assets/esri/core/workers/chunks/{51716e411fad624ac21c.js → a567d001fcfa1f1cdeea.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{3a6b8879702fb247328b.js → a68b5cb66c2c5e6b46e0.js} +1 -1
  86. package/assets/esri/core/workers/chunks/a8e2fbbfbdf1c3203d5e.js +1 -0
  87. package/assets/esri/core/workers/chunks/a94674826e5893c9d197.js +1 -0
  88. package/assets/esri/core/workers/chunks/aad02c7417648d881129.js +1 -0
  89. package/assets/esri/core/workers/chunks/ad329226c8b579d0964c.js +1 -0
  90. package/assets/esri/core/workers/chunks/afdc6fc453157528cf9b.js +1 -0
  91. package/assets/esri/core/workers/chunks/b2504657d3ef8769005e.js +1 -0
  92. package/assets/esri/core/workers/chunks/b7f5d51ac26f37837b3b.js +1 -0
  93. package/assets/esri/core/workers/chunks/b90db0829da3f96e4a19.js +1 -0
  94. package/assets/esri/core/workers/chunks/{359d3acb3953e64e5a78.js → ba7fe21a78ea37a02b7c.js} +1 -1
  95. package/assets/esri/core/workers/chunks/bd17ac2e6f1eb8cf7abf.js +1 -0
  96. package/assets/esri/core/workers/chunks/bd721bbc7afc75d3bddb.js +1 -0
  97. package/assets/esri/core/workers/chunks/bd9dae2d5ec199f8e9ba.js +1 -0
  98. package/assets/esri/core/workers/chunks/be19d4a6fb9b1c923127.js +1 -0
  99. package/assets/esri/core/workers/chunks/beba9f2213d8a850ddb6.js +1 -0
  100. package/assets/esri/core/workers/chunks/{d6f03f628ebfc28fdd23.js → bf6c6bc15b0d2d82d1a4.js} +2 -2
  101. package/assets/esri/core/workers/chunks/bf706a5d065a357de51b.js +1 -0
  102. package/assets/esri/core/workers/chunks/{baea6f86b2dbe067940e.js → bf73232057ebc1ecc0ad.js} +1 -1
  103. package/assets/esri/core/workers/chunks/c2589e5e0e0f81a378c2.js +1 -0
  104. package/assets/esri/core/workers/chunks/c321bcda8e8893577948.js +1 -0
  105. package/assets/esri/core/workers/chunks/c33f1f722499a5c6fc11.js +1 -0
  106. package/assets/esri/core/workers/chunks/c452c74ba9de218c3e57.js +1 -0
  107. package/assets/esri/core/workers/chunks/{700f7aa9cf7b13acaf5d.js → c514135bf7703ba69a47.js} +1 -1
  108. package/assets/esri/core/workers/chunks/c798a40418e7ff38042a.js +1 -0
  109. package/assets/esri/core/workers/chunks/ca6c128940ddbebcaaab.js +1 -0
  110. package/assets/esri/core/workers/chunks/{268f203d2492a03165ac.js → ce2ed9405ff1b704d35c.js} +1 -1
  111. package/assets/esri/core/workers/chunks/ce3e51c799a80648e46d.js +1 -0
  112. package/assets/esri/core/workers/chunks/{e81afc8a058a8ecc9b24.js → ce4e09b623ebb640c46c.js} +1 -1
  113. package/assets/esri/core/workers/chunks/cf7acf5acb6d322fd996.js +1 -0
  114. package/assets/esri/core/workers/chunks/{e0b27bceb397482bd0e8.js → d122431f3b0b88dcb488.js} +1 -1
  115. package/assets/esri/core/workers/chunks/d8c4fb66c733ab2f66d3.js +1 -0
  116. package/assets/esri/core/workers/chunks/d8d338665fe00494c826.js +1 -0
  117. package/assets/esri/core/workers/chunks/d93a4ccf8f0208dc6ad7.js +1 -0
  118. package/assets/esri/core/workers/chunks/de11ebcea2b8f9dfe65d.js +1 -0
  119. package/assets/esri/core/workers/chunks/e03713dee3205c96d53f.js +1 -0
  120. package/assets/esri/core/workers/chunks/e133840540abf20262a4.js +1 -0
  121. package/assets/esri/core/workers/chunks/{3092184350d66c79f610.js → e5d969214d9eda5c0b4c.js} +1 -1
  122. package/assets/esri/core/workers/chunks/e63e24101e7e92c62d98.js +1 -0
  123. package/assets/esri/core/workers/chunks/ead6e4d0a515c0913bee.js +1 -0
  124. package/assets/esri/core/workers/chunks/ee635172be7fdea69367.js +1 -0
  125. package/assets/esri/core/workers/chunks/f196ad0c7dbcbf632776.js +1 -0
  126. package/assets/esri/core/workers/chunks/f31deeedb2508e81293b.js +2 -0
  127. package/assets/esri/core/workers/chunks/f618ee43581e8de6ad0c.js +1 -0
  128. package/assets/esri/core/workers/chunks/f66262f8582909157f01.js +1 -0
  129. package/assets/esri/core/workers/chunks/{ea97619a4470f1540b99.js → f6ebec8d2248c719b89f.js} +1 -1
  130. package/assets/esri/core/workers/chunks/f948e4a80a7dbda70f2e.js +1 -0
  131. package/assets/esri/core/workers/chunks/f95e3333a65a0c09fd1e.js +1 -0
  132. package/assets/esri/core/workers/chunks/fa9ab152ea785b5e97e0.js +1 -0
  133. package/assets/esri/core/workers/chunks/fae147d03ed723ab234d.js +1 -0
  134. package/assets/esri/core/workers/chunks/fae79769df54eb4c4154.js +1 -0
  135. package/assets/esri/core/workers/chunks/{5a8fd2fd8a24f9290b7f.js → fd2afff07aaac8203c18.js} +1 -1
  136. package/assets/esri/core/workers/chunks/fdb7851e98e8d2ba48d3.js +1 -0
  137. package/assets/esri/core/workers/chunks/ff7708aaa2de720e3a47.js +1 -0
  138. package/assets/esri/core/workers/chunks/ffb8fa77297578afef7c.js +1 -0
  139. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core-simd.wasm +0 -0
  140. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core.wasm +0 -0
  141. package/chunks/GaussianSplat.glsl.js +8 -8
  142. package/chunks/GlobalIllumination.glsl.js +31 -31
  143. package/chunks/OITBlend.glsl.js +3 -7
  144. package/chunks/OITBlendEmission.glsl.js +22 -0
  145. package/chunks/{OITDim.glsl.js → OITDimOpaque.glsl.js} +2 -2
  146. package/chunks/RibbonLine.glsl.js +57 -53
  147. package/chunks/arcgis-knowledge-client-core-simd.js +1 -1
  148. package/chunks/arcgis-knowledge-client-core.js +1 -1
  149. package/config.js +1 -1
  150. package/core/has.js +1 -1
  151. package/geometry/support/heightModelInfoUtils.js +1 -1
  152. package/kernel.js +1 -1
  153. package/layers/DimensionFeatureLayer.d.ts +7 -0
  154. package/layers/DimensionFeatureLayer.js +2 -0
  155. package/layers/catalog/CatalogFootprintLayer.js +1 -1
  156. package/layers/graphics/OptimizedFeature.js +1 -1
  157. package/layers/graphics/data/QueryEngineCapabilities.js +1 -1
  158. package/layers/graphics/data/optimizedFeatureQueryEngineAdapter.js +1 -1
  159. package/layers/graphics/featureConversionUtils.js +1 -1
  160. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  161. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  162. package/layers/mixins/ArcGISImageService.js +1 -1
  163. package/layers/mixins/FeatureReductionLayer.js +1 -1
  164. package/layers/support/capabilities.js +1 -1
  165. package/layers/support/layerUtils.js +1 -1
  166. package/layers/support/serviceCapabilitiesUtils.js +1 -1
  167. package/layers/types.d.ts +1 -1
  168. package/networks/support/CircuitPathConnectivityElement.js +1 -1
  169. package/networks/support/networkFieldUtils.js +1 -1
  170. package/package.json +2 -2
  171. package/popup/Features.js +1 -1
  172. package/portal/schemas/definitions.js +1 -1
  173. package/rest/knowledgeGraph/ReplicaDefinition.d.ts +0 -3
  174. package/rest/knowledgeGraph/types.d.ts +1 -1
  175. package/rest/knowledgeGraph/wasmInterface/queryToWasmEncodedFactories.js +1 -1
  176. package/rest/knowledgeGraph/wasmInterface/replicaToWasmEncodedFactories.js +1 -1
  177. package/rest/support/Query.js +1 -1
  178. package/support/revision.js +1 -1
  179. package/symbols/cim/CIMEffects.js +1 -1
  180. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  181. package/symbols/cim/CIMSymbolHelper.js +1 -1
  182. package/symbols/cim/defaultCIMValues.js +1 -1
  183. package/symbols/cim/effects/EffectAddControlPoints.js +1 -1
  184. package/symbols/cim/effects/EffectArrow.js +1 -1
  185. package/symbols/cim/effects/EffectBuffer.js +1 -1
  186. package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
  187. package/symbols/cim/effects/EffectCut.js +1 -1
  188. package/symbols/cim/effects/EffectDashes.js +1 -1
  189. package/symbols/cim/effects/EffectDonut.js +1 -1
  190. package/symbols/cim/effects/EffectEnclosingPolygon.js +1 -1
  191. package/symbols/cim/effects/EffectHelper.js +1 -1
  192. package/symbols/cim/effects/EffectJog.js +1 -1
  193. package/symbols/cim/effects/EffectMove.js +1 -1
  194. package/symbols/cim/effects/EffectOffset.js +1 -1
  195. package/symbols/cim/effects/EffectRadial.js +1 -1
  196. package/symbols/cim/effects/EffectTaperedPolygon.js +1 -1
  197. package/symbols/cim/effects/EffectWave.js +1 -1
  198. package/symbols/cim/placements/PlacementAtRatioPositions.js +1 -1
  199. package/symbols/cim/types.d.ts +7 -1
  200. package/symbols/cim/utils.js +1 -1
  201. package/symbols/dimensions/effects/LinearDimensionArrowEffect.js +1 -1
  202. package/symbols/dimensions/effects/LinearDimensionExtensionLineEffect.js +1 -1
  203. package/symbols/dimensions/effects/LinearDimensionLeaderLineEffect.js +1 -1
  204. package/symbols/dimensions/effects/LinearDimensionLineEffect.js +1 -1
  205. package/symbols/dimensions/effects/LinearDimensionPointEffect.js +1 -1
  206. package/symbols/dimensions/effects/LinearDimensionTextEffect.js +1 -1
  207. package/symbols/types.d.ts +1 -1
  208. package/views/2d/engine/vectorTiles/decluttering/SymbolDeclutterer.js +1 -1
  209. package/views/2d/engine/vectorTiles/decluttering/SymbolRepository.js +1 -1
  210. package/views/2d/engine/webgl/alignmentUtils.js +1 -1
  211. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  212. package/views/2d/engine/webgl/shaderGraph/techniques/TestTechnique.js +1 -1
  213. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  214. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
  215. package/views/2d/engine/webgl/shaderGraph/techniques/fill/AFillMeshWriter.js +1 -1
  216. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js +1 -1
  217. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js +1 -1
  218. package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js +1 -1
  219. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillMeshWriter.js +1 -1
  220. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js +1 -1
  221. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapMeshWriter.js +1 -1
  222. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  223. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeMeshWriter.js +1 -1
  224. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js +1 -1
  225. package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineMeshWriter.js +1 -1
  226. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js +1 -1
  227. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriter.js +1 -1
  228. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartMeshWriter.js +1 -1
  229. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  230. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  231. package/views/2d/layerViewModuleImportUtils.js +1 -1
  232. package/views/2d/layers/DimensionLayerView2D.js +2 -0
  233. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  234. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  235. package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +2 -0
  236. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  237. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  238. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  239. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  240. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  241. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  242. package/views/2d/layers/features/schema/SourceSchema.js +1 -1
  243. package/views/2d/layers/features/sources/FeatureSource.js +1 -1
  244. package/views/2d/layers/features/sources/strategies/AFeatureTileLoadStrategy.js +1 -1
  245. package/views/2d/layers/features/sources/strategies/FeatureHybridTileLoadStrategy.js +2 -0
  246. package/views/2d/layers/features/sources/strategies/chunks/ByReferenceTileSourceChunk.js +2 -0
  247. package/views/2d/layers/features/support/AttributeStore.js +1 -1
  248. package/views/2d/layers/features/support/DisplayIdGenerator.js +1 -1
  249. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  250. package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
  251. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  252. package/views/2d/layers/features/support/FeatureSetReaderPBFHeader.js +1 -1
  253. package/views/2d/layers/features/support/RefCounted.js +2 -0
  254. package/views/2d/types.d.ts +2 -0
  255. package/views/3d/layerViewModuleImportUtils.js +1 -1
  256. package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
  257. package/views/3d/terrain/isTerrainSurfaceLayer.js +1 -1
  258. package/views/3d/types.d.ts +2 -0
  259. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +1 -1
  260. package/views/3d/webgl-engine/core/shaderLibrary/util/{ComputeCovariance.glsl.js → GaussianSplatCovariance.glsl.js} +15 -9
  261. package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatEvaluation.glsl.js +43 -0
  262. package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatTextureFetch.glsl.js +36 -0
  263. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  264. package/views/3d/webgl-engine/effects/transparency/OITBlend.glsl.js +1 -1
  265. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  266. package/views/3d/webgl-engine/effects/transparency/OITBlendEmission.glsl.js +2 -0
  267. package/views/3d/webgl-engine/effects/transparency/OITBlendEmissionTechnique.js +2 -0
  268. package/views/3d/webgl-engine/effects/transparency/OITBlendEmissionTechniqueConfiguration.js +2 -0
  269. package/views/3d/webgl-engine/effects/transparency/OITBlendTechniqueConfiguration.js +1 -1
  270. package/views/3d/webgl-engine/effects/transparency/{OITDim.glsl.js → OITDimOpaque.glsl.js} +1 -1
  271. package/views/3d/webgl-engine/effects/transparency/OITDimOpaqueTechnique.js +2 -0
  272. package/views/3d/webgl-engine/effects/transparency/{OITDimTechniqueConfiguration.js → OITDimOpaqueTechniqueConfiguration.js} +1 -1
  273. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  274. package/views/PopupView.js +1 -1
  275. package/views/layers/FeatureLikeLayerView.d.ts +2 -1
  276. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +12 -12
  277. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  278. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  279. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  280. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  281. package/widgets/FeatureTable.d.ts +18 -3
  282. package/widgets/FeatureTable.js +1 -1
  283. package/widgets/Features/FeaturesViewModel.js +1 -1
  284. package/assets/esri/core/workers/chunks/015fc0a17b17d69cc3bb.js +0 -1
  285. package/assets/esri/core/workers/chunks/02e8fc598ee09cf1b678.js +0 -1
  286. package/assets/esri/core/workers/chunks/075a1e91a075efe59cd3.js +0 -1
  287. package/assets/esri/core/workers/chunks/146424b5717d0a645ee1.js +0 -1
  288. package/assets/esri/core/workers/chunks/15a070d4ac2087b79e8b.js +0 -1
  289. package/assets/esri/core/workers/chunks/169ca3724053fc046d1b.js +0 -1
  290. package/assets/esri/core/workers/chunks/17445fd8048966617d49.js +0 -1
  291. package/assets/esri/core/workers/chunks/1765dfeac20e34ce25b7.js +0 -1
  292. package/assets/esri/core/workers/chunks/1768f1a7e3caa6074d91.js +0 -1
  293. package/assets/esri/core/workers/chunks/1906416c84bab369bbd6.js +0 -1
  294. package/assets/esri/core/workers/chunks/198864c107fa2b24518c.js +0 -1
  295. package/assets/esri/core/workers/chunks/1a35121a0c2595a41fdb.js +0 -1
  296. package/assets/esri/core/workers/chunks/1f85646936200a399c15.js +0 -1
  297. package/assets/esri/core/workers/chunks/1ff3c15a51c4dc991806.js +0 -1
  298. package/assets/esri/core/workers/chunks/206bdfd868a9ef88f3a8.js +0 -1
  299. package/assets/esri/core/workers/chunks/2343b1105bc4c1b4a086.js +0 -1
  300. package/assets/esri/core/workers/chunks/2387613b855771a3e537.js +0 -1
  301. package/assets/esri/core/workers/chunks/2b0b398180ed98c2c84c.js +0 -1
  302. package/assets/esri/core/workers/chunks/3469df5c4846b0cee012.js +0 -1
  303. package/assets/esri/core/workers/chunks/34b6b5dd415c68f0b0d1.js +0 -1
  304. package/assets/esri/core/workers/chunks/36f6673b23579b88d8f7.js +0 -1
  305. package/assets/esri/core/workers/chunks/384c235d36f32769e32b.js +0 -1
  306. package/assets/esri/core/workers/chunks/38c28189f273636e4017.js +0 -1
  307. package/assets/esri/core/workers/chunks/3a183259805638c25363.js +0 -1
  308. package/assets/esri/core/workers/chunks/3efbb684c0409955186d.js +0 -1
  309. package/assets/esri/core/workers/chunks/3feec3d08424b94e1bcf.js +0 -1
  310. package/assets/esri/core/workers/chunks/460e693ad19fa77ffdc2.js +0 -1
  311. package/assets/esri/core/workers/chunks/47b3a5213539548ff3a6.js +0 -1
  312. package/assets/esri/core/workers/chunks/48549d3d7bf0154c0afa.js +0 -1
  313. package/assets/esri/core/workers/chunks/52b3a11c962810bc6dbe.js +0 -1
  314. package/assets/esri/core/workers/chunks/54c6e870262469d0d702.js +0 -1
  315. package/assets/esri/core/workers/chunks/55fd201ca5e10c6e4761.js +0 -1
  316. package/assets/esri/core/workers/chunks/561d45dc9421f80feca5.js +0 -1
  317. package/assets/esri/core/workers/chunks/566f6319ded0634769e0.js +0 -1
  318. package/assets/esri/core/workers/chunks/56717ff315c6ec874142.js +0 -1
  319. package/assets/esri/core/workers/chunks/56941e8bbd2d49bf2656.js +0 -1
  320. package/assets/esri/core/workers/chunks/5fccb372b4d5ee2f64cc.js +0 -1
  321. package/assets/esri/core/workers/chunks/60cee9a44929decd2474.js +0 -1
  322. package/assets/esri/core/workers/chunks/6124141ac642e4ce1454.js +0 -1
  323. package/assets/esri/core/workers/chunks/61fada8942b65fa0b5e1.js +0 -1
  324. package/assets/esri/core/workers/chunks/64cf18ba2869171a5a7a.js +0 -1
  325. package/assets/esri/core/workers/chunks/65c61171e6c6be5c5c2f.js +0 -1
  326. package/assets/esri/core/workers/chunks/6a3d207308b29651f397.js +0 -1
  327. package/assets/esri/core/workers/chunks/6d696beddcc5fbed5875.js +0 -1
  328. package/assets/esri/core/workers/chunks/71cfab6305f275cfb04e.js +0 -1
  329. package/assets/esri/core/workers/chunks/728ad5bbbcbf88d6249f.js +0 -1
  330. package/assets/esri/core/workers/chunks/7531bbcb6613c87a344e.js +0 -1
  331. package/assets/esri/core/workers/chunks/7b505112c7e6d9b7a239.js +0 -1
  332. package/assets/esri/core/workers/chunks/7b6c8be59ed87e386aa4.js +0 -1
  333. package/assets/esri/core/workers/chunks/7c820c5f6f05480d5050.js +0 -1
  334. package/assets/esri/core/workers/chunks/7ef51b0ebd560113ae7e.js +0 -1
  335. package/assets/esri/core/workers/chunks/80f4f686ce403cb2693f.js +0 -1
  336. package/assets/esri/core/workers/chunks/81d761c837b7456ec99f.js +0 -1
  337. package/assets/esri/core/workers/chunks/83f1871d04c979fa23b7.js +0 -1
  338. package/assets/esri/core/workers/chunks/85da2987e17b6755a94e.js +0 -1
  339. package/assets/esri/core/workers/chunks/87f7a674957f734b1b42.js +0 -1
  340. package/assets/esri/core/workers/chunks/8a3bff0f58483c1665f9.js +0 -1
  341. package/assets/esri/core/workers/chunks/8a5a827ee557d9f9a66e.js +0 -1
  342. package/assets/esri/core/workers/chunks/8b046e28f879079caada.js +0 -1
  343. package/assets/esri/core/workers/chunks/8d738e9acc2f222235ea.js +0 -1
  344. package/assets/esri/core/workers/chunks/8e1140725a72038627c2.js +0 -1
  345. package/assets/esri/core/workers/chunks/915e2711d3a2cfa402b2.js +0 -1
  346. package/assets/esri/core/workers/chunks/928dac64e6ba401d391a.js +0 -1
  347. package/assets/esri/core/workers/chunks/992525afdf11b2fb16d4.js +0 -1
  348. package/assets/esri/core/workers/chunks/9a5ef33d99a8f89956ff.js +0 -1
  349. package/assets/esri/core/workers/chunks/9c402657f63a4d5668d0.js +0 -1
  350. package/assets/esri/core/workers/chunks/9f51a69b8f1937a8794a.js +0 -1
  351. package/assets/esri/core/workers/chunks/a015c2f54eb91e43a1f4.js +0 -1
  352. package/assets/esri/core/workers/chunks/a232d05c0a055f398c6e.js +0 -1
  353. package/assets/esri/core/workers/chunks/a242ec19a7508de436da.js +0 -1
  354. package/assets/esri/core/workers/chunks/a25acccda8febac71a3d.js +0 -1
  355. package/assets/esri/core/workers/chunks/a432219de6a873f88776.js +0 -1
  356. package/assets/esri/core/workers/chunks/a76e14fe5e8b2f7ef9de.js +0 -2
  357. package/assets/esri/core/workers/chunks/a7f9f478bd1493fc3c76.js +0 -1
  358. package/assets/esri/core/workers/chunks/aac6a57edd7494125204.js +0 -1
  359. package/assets/esri/core/workers/chunks/af074b5b4e1d6baf5219.js +0 -1
  360. package/assets/esri/core/workers/chunks/afc0baf86ece710ef867.js +0 -1
  361. package/assets/esri/core/workers/chunks/b2662bfdbd1e3623ceb9.js +0 -1
  362. package/assets/esri/core/workers/chunks/b73c146d3e550eaf07eb.js +0 -1
  363. package/assets/esri/core/workers/chunks/b7af0e6b9aadbcaf6a0b.js +0 -1
  364. package/assets/esri/core/workers/chunks/bc78937986854e500b8e.js +0 -1
  365. package/assets/esri/core/workers/chunks/bd10d21545bca9a49de0.js +0 -1
  366. package/assets/esri/core/workers/chunks/bea170f08f5261e22d29.js +0 -1
  367. package/assets/esri/core/workers/chunks/bec3ee5ea945e1e07a35.js +0 -1
  368. package/assets/esri/core/workers/chunks/bf4dd8e50704e4040966.js +0 -1
  369. package/assets/esri/core/workers/chunks/c31ee5617c61a933cb0e.js +0 -1
  370. package/assets/esri/core/workers/chunks/c3e89c7c7b677bd18557.js +0 -1
  371. package/assets/esri/core/workers/chunks/cb81d524f12edcadb9bb.js +0 -1
  372. package/assets/esri/core/workers/chunks/cc0f3b9b153a0c232afe.js +0 -1
  373. package/assets/esri/core/workers/chunks/cd0c232f4e3868d91a05.js +0 -1
  374. package/assets/esri/core/workers/chunks/ce7ef7c4ca14d66d96f6.js +0 -1
  375. package/assets/esri/core/workers/chunks/d55cef8199b8246fea3f.js +0 -1
  376. package/assets/esri/core/workers/chunks/d8decaee2c780e1b5e35.js +0 -1
  377. package/assets/esri/core/workers/chunks/dc54d4a9fe1691862356.js +0 -1
  378. package/assets/esri/core/workers/chunks/de99500b0fcedf2c8a5c.js +0 -1
  379. package/assets/esri/core/workers/chunks/e18badd11f360cc2912b.js +0 -1
  380. package/assets/esri/core/workers/chunks/e6f1ed5e56f1d9862821.js +0 -1
  381. package/assets/esri/core/workers/chunks/e6fe8b5fbe95de01453b.js +0 -1
  382. package/assets/esri/core/workers/chunks/eaab5ac049622986e3bc.js +0 -1
  383. package/assets/esri/core/workers/chunks/ee7e9bca57160694b3c4.js +0 -1
  384. package/assets/esri/core/workers/chunks/ef0085aa743b33cb549f.js +0 -1
  385. package/assets/esri/core/workers/chunks/f0250cecb243b32cdba7.js +0 -1
  386. package/assets/esri/core/workers/chunks/f2beb4267b8d4cddfa3e.js +0 -1
  387. package/assets/esri/core/workers/chunks/f468c6ea2818a1f97e19.js +0 -1
  388. package/assets/esri/core/workers/chunks/f6c8e93ca2987e83f925.js +0 -1
  389. package/assets/esri/core/workers/chunks/fa4265db06e2721754a0.js +0 -1
  390. package/views/3d/webgl-engine/effects/transparency/OITDimTechnique.js +0 -2
  391. /package/assets/esri/core/workers/chunks/{d6f03f628ebfc28fdd23.js.LICENSE.txt → bf6c6bc15b0d2d82d1a4.js.LICENSE.txt} +0 -0
  392. /package/assets/esri/core/workers/chunks/{a76e14fe5e8b2f7ef9de.js.LICENSE.txt → f31deeedb2508e81293b.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{FeatureTechnique as e}from"./FeatureTechnique.js";import{MeshWriter as t}from"./mesh/MeshWriter.js";import{TestShader as r}from"./shaders/TestShader.js";import{DataType as o}from"../../../../../webgl/enums.js";const i={color:{write:[!0,!0,!0,!0],blendMode:"composite"},depth:!1,stencil:{write:!1,test:{compare:514,mask:255,op:{fail:7680,zFail:7680,zPass:7681}}}};class s extends e{constructor(){super(...arguments),this.type=31,this.shaders={geometry:new r}}render(e,t){const{painter:r}=e,o=t.instance.getInput();r.setShader({shader:this.shaders.geometry,uniforms:{dataDrivenColor:o.uniforms.dataDrivenColor,view:{zoomLevel:1}},textures:{},defines:{returnRed:!1},optionalAttributes:{},useComputeBuffer:!1}),r.setPipelineState(i),r.submitDraw(e,t)}}const n={createComputedParams:e=>e,optionalAttributes:{},attributes:{pos:{type:o.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:o.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:o.UNSIGNED_BYTE,count:1},size:{type:o.UNSIGNED_BYTE,count:1,packPrecisionFactor:10,pack:e=>.2},offset:{type:o.INT,count:2,packPrecisionFactor:10,packAlternating:{count:4,pack:()=>[[-1,1],[1,1],[-1,-1],[1,-1]]}},color:{type:o.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:e})=>e}}};class a extends t{constructor(){super(...arguments),this.vertexSpec=n}_write(e,t){e.recordStart(this.instanceId,this.attributeLayout);const r=655360,o=e.vertexCount(),i=t.readXForDisplay(),s=t.readYForDisplay();this._writeVertex(e,r,i,s),e.indexWrite(o+0),e.indexWrite(o+1),e.indexWrite(o+2),e.indexWrite(o+1),e.indexWrite(o+3),e.indexWrite(o+2),e.recordEnd()}}export{a as TestMeshWriter,s as TestTechnique};
2
+ import{FeatureTechnique as e}from"./FeatureTechnique.js";import{MeshWriter as t}from"./mesh/MeshWriter.js";import{TestShader as r}from"./shaders/TestShader.js";import{DataType as o}from"../../../../../webgl/enums.js";const i={color:{write:[!0,!0,!0,!0],blendMode:"composite"},depth:!1,stencil:{write:!1,test:{compare:514,mask:255,op:{fail:7680,zFail:7680,zPass:7681}}}};class s extends e{constructor(){super(...arguments),this.type=31,this.shaders={geometry:new r}}render(e,t){const{painter:r}=e,o=t.instance.getInput();r.setShader({shader:this.shaders.geometry,uniforms:{dataDrivenColor:o.uniforms.dataDrivenColor,view:{zoomLevel:1}},textures:{},defines:{returnRed:!1},optionalAttributes:{},useComputeBuffer:!1}),r.setPipelineState(i),r.submitDraw(e,t)}}const a={createComputedParams:e=>e,optionalAttributes:{},attributes:{pos:{type:o.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:o.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:o.UNSIGNED_BYTE,count:1},size:{type:o.UNSIGNED_BYTE,count:1,packPrecisionFactor:10,pack:e=>.2},offset:{type:o.INT,count:2,packPrecisionFactor:10,packAlternating:{count:4,pack:()=>[[-1,1],[1,1],[-1,-1],[1,-1]]}},color:{type:o.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:e})=>e}}};class n extends t{constructor(){super(...arguments),this.vertexSpec=a}_write(e,{target:t}){e.recordStart(this.instanceId,this.attributeLayout);const r=655360,o=e.vertexCount(),i=t.readXForDisplay(),s=t.readYForDisplay();this._writeVertex(e,r,i,s),e.indexWrite(o+0),e.indexWrite(o+1),e.indexWrite(o+2),e.indexWrite(o+1),e.indexWrite(o+3),e.indexWrite(o+2),e.recordEnd()}}export{n as TestMeshWriter,s as TestTechnique};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as t}from"../../../../../../../geometry/GeometryCursor.js";import{maxTileCoordValue as i}from"../../../../../../../symbols/cim/constants.js";import{CIMMarkerPlacementHelper as r}from"../../../../../../../symbols/cim/placements/CIMMarkerPlacementHelper.js";import{spritePadding as s}from"../../../definitions.js";import{AAnimatedMeshWriter as n}from"./AnimatedMeshWriter.js";import{angle as o,sizing as a,animationPointerAndBaseSizeAndReferenceSize as c,uv as l,offset as m,pos as d,bitset as p,id as h,lineLength as u,value1Position2Value2 as f,zoomRange as x}from"./attributes.js";import{createComputedAnimatedMeshParams as y}from"./ComputedAnimatedParams.js";import{c256ToRad as P}from"../shaders/constants.js";const M=64,g=64,v=2;class w extends n{get vertexSpec(){return{createComputedParams:y,optionalAttributes:{zoomRange:x,value1Position2Value2:f,lineLength:u},attributes:{id:h,bitset:p,pos:d,offset:m.marker,uv:l.marker,animationPointerAndBaseSizeAndReferenceSize:c,sizing:a,angle:o}}}_write(e,i,r){const s=this.evaluatedMeshParams.sprite,{textureBinding:n}=s;e.recordStart(this.instanceId,this.attributeLayout,n);const o=i.getDisplayId();if(this.shift&&"esriGeometryPolyline"===i.geometryType){if(!r){const r=t.fromFeatureSetReaderCIM(i);r&&this._writeParticles(e,i,r)}}else if(null!=this.evaluatedMeshParams.placement)this._writePlacedMarkers(e,i);else if("esriGeometryPolygon"===i.geometryType){const t=i.readCentroidForDisplay();if(!t)return;const[r,s]=t.coords;this._writeQuad(e,o,r,s)}else if("esriGeometryPoint"===i.geometryType){const t=i.readXForDisplay(),r=i.readYForDisplay();this._writeQuad(e,o,t,r)}else{const t=i.readGeometryForDisplay();t&&t.forEachVertex((t,i)=>{this._writeQuad(e,o,t,i)})}e.recordEnd()}_writePlacedMarkers(s,n){const o=t.fromFeatureSetReaderCIM(n)?.clone();if(!o)return;const a=-1,c=r.getPlacement(o,a,this.evaluatedMeshParams.placement,e(1),s.id);if(!c)return;const l=n.getDisplayId();let m=c.next(),d=null;for(;null!=m;){const e=m.tx,t=-m.ty;if(Math.abs(e)>i||Math.abs(t)>i){m=c.next();continue}const r=-m.getAngle();s.recordBounds(e,t,M,g),this.shift?d&&this._writeQuad(s,l,d[0],d[1],void 0,r):this._writeQuad(s,l,e,t,void 0,r),d=[e,t],m=c.next()}}_writeParticles(e,t,i){const r=t.getDisplayId();for(;i.nextPath();){const t=[];for(;i.nextPoint();)t.push([i.x,i.y]);const s=_(t);let n=0;for(let e=1;e<t.length;e++){const i=t[e][0]-t[e-1][0],r=t[e][1]-t[e-1][1],s=Math.sqrt(i*i+r*r);n+=s}const o=t=>{for(const i of s){const{a:s,b:o}=i;this._writeQuad(e,r,s.position[0],s.position[1],[s.distance-t,o.position[0],o.position[1],o.distance-t],this.evaluatedMeshParams.angleToLine?Math.atan2(s.direction[1],s.direction[0]):0,n,!0)}},{placement:a}=this.evaluatedMeshParams;if(!a||"placementTemplate"in a||"CIMMarkerPlacementOnVertices"===a.type){let e;if(a&&"CIMMarkerPlacementOnVertices"!==a.type)e=a.placementTemplate;else{e=[0];for(const t of s){const{a:i,b:r}=t,s=i.position[0]-r.position[0],n=i.position[1]-r.position[1],o=Math.sqrt(s*s+n*n);e.push(o)}}let t=-1*n;for(;t<(1+v/2)*n;)for(const i of e)t+=i,o(t)}else"CIMMarkerPlacementAtExtremities"===a.type?"JustBegin"===a.extremityPlacement?o(1):"JustEnd"===a.extremityPlacement?(o(n-1),o(-1)):"Both"===a.extremityPlacement&&(o(1),o(n-1)):"CIMMarkerPlacementOnLine"===a.type&&("LineBeginning"===a.relativeTo?o(1):"LineEnd"===a.relativeTo?(o(n-1),o(-1)):"LineMiddle"===a.relativeTo&&o(n/2))}}_writeQuad(e,t,i,r,n,o=0,a=0,c=!1){const l=this.evaluatedMeshParams.sprite,{rect:m}=l,d=m.x+s,p=m.y+s,h=m.x+m.width-s,u=m.y+m.height-s,f=e.vertexCount();c||e.recordBounds(i,r,M,M);const x={texXmin:d,texYmin:p,texXmax:h,texYmax:u,value1Position2Value2:n,angle:o/P,lineLength:a};for(let s=0;s<4;s++)this._writeVertex(e,t,i,r,x);e.indexEnsureSize(6),e.indexWrite(f),e.indexWrite(f+1),e.indexWrite(f+2),e.indexWrite(f+1),e.indexWrite(f+3),e.indexWrite(f+2)}}function _(e){const t=[];let i=0;for(let r=1;r<e.length;r++){const s=e[r-1],n=e[r],o=n[0]-s[0],a=n[1]-s[1],c=Math.sqrt(o*o+a*a),l=o/c,m=a/c;t.push({a:{position:s,distance:i,direction:[l,m]},b:{position:n,distance:i+c,direction:[l,m]}}),i+=c}return t}class b extends w{constructor(){super(...arguments),this.shift=!1}}class C extends w{constructor(){super(...arguments),this.shift=!0}}export{b as AnimatedMarkerMeshWriter,C as AnimatedMarkerShiftMeshWriter};
2
+ import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as t}from"../../../../../../../geometry/GeometryCursor.js";import{maxTileCoordValue as i}from"../../../../../../../symbols/cim/constants.js";import{CIMMarkerPlacementHelper as r}from"../../../../../../../symbols/cim/placements/CIMMarkerPlacementHelper.js";import{spritePadding as s}from"../../../definitions.js";import{AAnimatedMeshWriter as n}from"./AnimatedMeshWriter.js";import{angle as o,sizing as a,animationPointerAndBaseSizeAndReferenceSize as c,uv as l,offset as m,pos as d,bitset as p,id as h,lineLength as u,value1Position2Value2 as f,zoomRange as y}from"./attributes.js";import{createComputedAnimatedMeshParams as x}from"./ComputedAnimatedParams.js";import{c256ToRad as P}from"../shaders/constants.js";const M=64,g=64,v=2;class w extends n{get vertexSpec(){return{createComputedParams:x,optionalAttributes:{zoomRange:y,value1Position2Value2:f,lineLength:u},attributes:{id:h,bitset:p,pos:d,offset:m.marker,uv:l.marker,animationPointerAndBaseSizeAndReferenceSize:c,sizing:a,angle:o}}}_write(e,{target:i,effectGeometry:r}){const s=this.evaluatedMeshParams.sprite,{textureBinding:n}=s;e.recordStart(this.instanceId,this.attributeLayout,n);const o=i.getDisplayId();if(this.shift&&"esriGeometryPolyline"===i.geometryType){if(!r){const r=t.fromFeatureSetReaderCIM(i);r&&this._writeParticles(e,i,r)}}else if(null!=this.evaluatedMeshParams.placement)this._writePlacedMarkers(e,i);else if("esriGeometryPolygon"===i.geometryType){const t=i.readCentroidForDisplay();if(!t)return;const[r,s]=t.coords;this._writeQuad(e,o,r,s)}else if("esriGeometryPoint"===i.geometryType){const t=i.readXForDisplay(),r=i.readYForDisplay();this._writeQuad(e,o,t,r)}else{const t=i.readGeometryForDisplay();t&&t.forEachVertex((t,i)=>{this._writeQuad(e,o,t,i)})}e.recordEnd()}_writePlacedMarkers(s,n){const o=t.fromFeatureSetReaderCIM(n)?.clone();if(!o)return;const a=-1,c=r.getPlacement(o,a,this.evaluatedMeshParams.placement,e(1),s.id);if(!c)return;const l=n.getDisplayId();let m=c.next(),d=null;for(;null!=m;){const e=m.tx,t=-m.ty;if(Math.abs(e)>i||Math.abs(t)>i){m=c.next();continue}const r=-m.getAngle();s.recordBounds(e,t,M,g),this.shift?d&&this._writeQuad(s,l,d[0],d[1],void 0,r):this._writeQuad(s,l,e,t,void 0,r),d=[e,t],m=c.next()}}_writeParticles(e,t,i){const r=t.getDisplayId();for(;i.nextPath();){const t=[];for(;i.nextPoint();)t.push([i.x,i.y]);const s=_(t);let n=0;for(let e=1;e<t.length;e++){const i=t[e][0]-t[e-1][0],r=t[e][1]-t[e-1][1],s=Math.sqrt(i*i+r*r);n+=s}const o=t=>{for(const i of s){const{a:s,b:o}=i;this._writeQuad(e,r,s.position[0],s.position[1],[s.distance-t,o.position[0],o.position[1],o.distance-t],this.evaluatedMeshParams.angleToLine?Math.atan2(s.direction[1],s.direction[0]):0,n,!0)}},{placement:a}=this.evaluatedMeshParams;if(!a||"placementTemplate"in a||"CIMMarkerPlacementOnVertices"===a.type){let e;if(a&&"CIMMarkerPlacementOnVertices"!==a.type)e=a.placementTemplate;else{e=[0];for(const t of s){const{a:i,b:r}=t,s=i.position[0]-r.position[0],n=i.position[1]-r.position[1],o=Math.sqrt(s*s+n*n);e.push(o)}}let t=-1*n;for(;t<(1+v/2)*n;)for(const i of e)t+=i,o(t)}else"CIMMarkerPlacementAtExtremities"===a.type?"JustBegin"===a.extremityPlacement?o(1):"JustEnd"===a.extremityPlacement?(o(n-1),o(-1)):"Both"===a.extremityPlacement&&(o(1),o(n-1)):"CIMMarkerPlacementOnLine"===a.type&&("LineBeginning"===a.relativeTo?o(1):"LineEnd"===a.relativeTo?(o(n-1),o(-1)):"LineMiddle"===a.relativeTo&&o(n/2))}}_writeQuad(e,t,i,r,n,o=0,a=0,c=!1){const l=this.evaluatedMeshParams.sprite,{rect:m}=l,d=m.x+s,p=m.y+s,h=m.x+m.width-s,u=m.y+m.height-s,f=e.vertexCount();c||e.recordBounds(i,r,M,M);const y={texXmin:d,texYmin:p,texXmax:h,texYmax:u,value1Position2Value2:n,angle:o/P,lineLength:a};for(let s=0;s<4;s++)this._writeVertex(e,t,i,r,y);e.indexEnsureSize(6),e.indexWrite(f),e.indexWrite(f+1),e.indexWrite(f+2),e.indexWrite(f+1),e.indexWrite(f+3),e.indexWrite(f+2)}}function _(e){const t=[];let i=0;for(let r=1;r<e.length;r++){const s=e[r-1],n=e[r],o=n[0]-s[0],a=n[1]-s[1],c=Math.sqrt(o*o+a*a),l=o/c,m=a/c;t.push({a:{position:s,distance:i,direction:[l,m]},b:{position:n,distance:i+c,direction:[l,m]}}),i+=c}return t}class b extends w{constructor(){super(...arguments),this.shift=!1}}class C extends w{constructor(){super(...arguments),this.shift=!0}}export{b as AnimatedMarkerMeshWriter,C as AnimatedMarkerShiftMeshWriter};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{pt2px as t}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{triangulateF32 as s}from"../../../../../../../geometry/libtess.js";import{LineTessellation as i}from"../../../TurboLine.js";import{clipLinesMarshall as r,triangulateEarcut as n,clipMarshall as o}from"../../../mesh/templates/templateUtils.js";import{AAnimatedMeshWriter as a}from"./AnimatedMeshWriter.js";import{noPatternAngle as h,lineLength as l,noTiming as m,zoomRange as u,segmentDirection as c,normal as d,accumulatedDistance as f,sizing as p,animationPointerAndBaseSizeAndReferenceSize as x,tlbr as _,offset as g,pos as P,bitset as b,id as v,patternAngle as L,noLineLength as y}from"./attributes.js";import{createComputedAnimatedMeshParams as W}from"./ComputedAnimatedParams.js";import{processLineCapInput as w,processLineJoinInput as C}from"../fill/meshWriterUtils.js";import{LineTessellationParams as z}from"../line/LineMeshWriter.js";class j extends a{_write(t,s,i){const r=i??e.fromFeatureSetReaderCIM(s);if(!r)return;const n=this.evaluatedMeshParams.sprite,{textureBinding:o}=n;t.recordStart(this.instanceId,this.attributeLayout,o);const a=s.getDisplayId();this._writePoly(t,a,r.asOptimized()),t.recordEnd()}}class S extends j{constructor(){super(...arguments),this.vertexSpec={createComputedParams:W,attributes:{id:v,bitset:b,pos:P,offset:g.fill,tlbr:_,animationPointerAndBaseSizeAndReferenceSize:x,sizing:p},optionalAttributes:{zoomRange:u,value1Position2Value2:m,lineLength:y,angle:L}}}_writePoly(t,e,i){const r=this._clip(i);if(!r)return;i=r;const o=[],a=t.vertexCount();let h;if(n(o,i)){if(0===o.length)return;h=0;for(const s of o){const r=i.coords[2*s],n=i.coords[2*s+1];this._writeVertex(t,e,r,n),h++}}else{const{coords:r,lengths:n}=i,o=s(r,n);h=o.vertexCount;for(let s=0;s<o.buffer.length/2;s++){const i=o.buffer[2*s],r=o.buffer[2*s+1];this._writeVertex(t,e,i,r)}}if(h>0){t.indexEnsureSize(h);for(let e=0;e<h;e++)t.indexWrite(e+a)}}_clip(t){const e=this.hasEffects;return o(t,e?256:8)}}class T{constructor(){this.id=0,this.bitset=0,this.indexCount=0,this.vertexCount=0,this.vertexFrom=0,this.vertexBounds=0,this.pathLength=0}}const A=65535;class R extends j{constructor(){super(...arguments),this.vertexSpec={createComputedParams:W,attributes:{id:v,bitset:b,pos:P,offset:g.line,tlbr:_,animationPointerAndBaseSizeAndReferenceSize:x,sizing:p,accumulatedDistance:f,normal:d,segmentDirection:c},optionalAttributes:{zoomRange:u,value1Position2Value2:m,lineLength:l,angle:h}},this._tessParams=new z,this._currentWrite=new T,this._tessellationOptions={halfWidth:0,pixelCoordRatio:1,offset:0,wrapDistance:A,textured:!1},this._lineLength=0,this._lineTessellator=new i((t,e,s,i,r,n,o,a,h,l,m)=>this._writeTesselatedVertex(t,e,s,i,r,n,o,a,h,l,m,this._lineLength),this._writeTriangle.bind(this),!1)}_writePoly(s,i,n){const o=64,a=!1,h=r(e.fromOptimized(n,"esriGeometryPolyline"),o);if(null==h)return;const{_currentWrite:l,_tessellationOptions:m}=this,{baseSize:u,capType:c,joinType:d,miterLimit:f}=this.evaluatedMeshParams,p=t(.5*u);m.halfWidth=p,m.capType=w(c||"Round"),m.joinType=C(d||"Round"),m.miterLimit=f||2,l.out=s,l.id=i,l.vertexCount=0,l.indexCount=0,l.vertexFrom=s.vertexCount(),l.vertexBounds=1;for(const{line:t,start:e,pathLength:r}of h){m.initialDistance=e%A,l.pathLength=r,this._lineLength=0;for(let e=1;e<t.length;e++){const s=t[e].x-t[e-1].x,i=t[e].y-t[e-1].y;this._lineLength+=Math.sqrt(s*s+i*i)}this._lineTessellator.tessellate(t,m,a)}}_writeTesselatedVertex(t,e,s,i,r,n,o,a,h,l,m,u){const{out:c,id:d,vertexBounds:f,pathLength:p}=this._currentWrite;return this.hasEffects&&c.recordBounds(t,e,f,f),this._tessParams.extrusionOffsetX=o,this._tessParams.extrusionOffsetY=a,this._tessParams.normalX=h,this._tessParams.normalY=l,this._tessParams.directionX=r,this._tessParams.directionY=n,this._tessParams.distance=m,this._tessParams.pathLength=p,this._tessParams.lineLength=u,this._writeVertex(c,d,t,e,this._tessParams),this._currentWrite.vertexFrom+this._currentWrite.vertexCount++}_writeTriangle(t,e,s){const{out:i}=this._currentWrite;i.indexEnsureSize(3),i.indexWrite(t),i.indexWrite(e),i.indexWrite(s),this._currentWrite.indexCount+=3}}export{j as AAnimatedPolyMeshWriter,S as AnimatedFillMeshWriter,R as AnimatedLineMeshWriter};
2
+ import{pt2px as t}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{triangulateF32 as s}from"../../../../../../../geometry/libtess.js";import{LineTessellation as i}from"../../../TurboLine.js";import{clipLinesMarshall as r,triangulateEarcut as n,clipMarshall as o}from"../../../mesh/templates/templateUtils.js";import{AAnimatedMeshWriter as a}from"./AnimatedMeshWriter.js";import{noPatternAngle as h,lineLength as l,noTiming as m,zoomRange as u,segmentDirection as c,normal as d,accumulatedDistance as f,sizing as p,animationPointerAndBaseSizeAndReferenceSize as x,tlbr as _,offset as g,pos as P,bitset as b,id as v,patternAngle as y,noLineLength as L}from"./attributes.js";import{createComputedAnimatedMeshParams as W}from"./ComputedAnimatedParams.js";import{processLineCapInput as w,processLineJoinInput as C}from"../fill/meshWriterUtils.js";import{LineTessellationParams as z}from"../line/LineMeshWriter.js";class j extends a{_write(t,{target:s,effectGeometry:i}){const r=i??e.fromFeatureSetReaderCIM(s);if(!r)return;const n=this.evaluatedMeshParams.sprite,{textureBinding:o}=n;t.recordStart(this.instanceId,this.attributeLayout,o);const a=s.getDisplayId();this._writePoly(t,a,r.asOptimized()),t.recordEnd()}}class S extends j{constructor(){super(...arguments),this.vertexSpec={createComputedParams:W,attributes:{id:v,bitset:b,pos:P,offset:g.fill,tlbr:_,animationPointerAndBaseSizeAndReferenceSize:x,sizing:p},optionalAttributes:{zoomRange:u,value1Position2Value2:m,lineLength:L,angle:y}}}_writePoly(t,e,i){const r=this._clip(i);if(!r)return;i=r;const o=[],a=t.vertexCount();let h;if(n(o,i)){if(0===o.length)return;h=0;for(const s of o){const r=i.coords[2*s],n=i.coords[2*s+1];this._writeVertex(t,e,r,n),h++}}else{const{coords:r,lengths:n}=i,o=s(r,n);h=o.vertexCount;for(let s=0;s<o.buffer.length/2;s++){const i=o.buffer[2*s],r=o.buffer[2*s+1];this._writeVertex(t,e,i,r)}}if(h>0){t.indexEnsureSize(h);for(let e=0;e<h;e++)t.indexWrite(e+a)}}_clip(t){const e=this.hasEffects;return o(t,e?256:8)}}class T{constructor(){this.id=0,this.bitset=0,this.indexCount=0,this.vertexCount=0,this.vertexFrom=0,this.vertexBounds=0,this.pathLength=0}}const A=65535;class R extends j{constructor(){super(...arguments),this.vertexSpec={createComputedParams:W,attributes:{id:v,bitset:b,pos:P,offset:g.line,tlbr:_,animationPointerAndBaseSizeAndReferenceSize:x,sizing:p,accumulatedDistance:f,normal:d,segmentDirection:c},optionalAttributes:{zoomRange:u,value1Position2Value2:m,lineLength:l,angle:h}},this._tessParams=new z,this._currentWrite=new T,this._tessellationOptions={halfWidth:0,pixelCoordRatio:1,offset:0,wrapDistance:A,textured:!1},this._lineLength=0,this._lineTessellator=new i((t,e,s,i,r,n,o,a,h,l,m)=>this._writeTesselatedVertex(t,e,s,i,r,n,o,a,h,l,m,this._lineLength),this._writeTriangle.bind(this),!1)}_writePoly(s,i,n){const o=64,a=!1,h=r(e.fromOptimized(n,"esriGeometryPolyline"),o);if(null==h)return;const{_currentWrite:l,_tessellationOptions:m}=this,{baseSize:u,capType:c,joinType:d,miterLimit:f}=this.evaluatedMeshParams,p=t(.5*u);m.halfWidth=p,m.capType=w(c||"Round"),m.joinType=C(d||"Round"),m.miterLimit=f||2,l.out=s,l.id=i,l.vertexCount=0,l.indexCount=0,l.vertexFrom=s.vertexCount(),l.vertexBounds=1;for(const{line:t,start:e,pathLength:r}of h){m.initialDistance=e%A,l.pathLength=r,this._lineLength=0;for(let e=1;e<t.length;e++){const s=t[e].x-t[e-1].x,i=t[e].y-t[e-1].y;this._lineLength+=Math.sqrt(s*s+i*i)}this._lineTessellator.tessellate(t,m,a)}}_writeTesselatedVertex(t,e,s,i,r,n,o,a,h,l,m,u){const{out:c,id:d,vertexBounds:f,pathLength:p}=this._currentWrite;return this.hasEffects&&c.recordBounds(t,e,f,f),this._tessParams.extrusionOffsetX=o,this._tessParams.extrusionOffsetY=a,this._tessParams.normalX=h,this._tessParams.normalY=l,this._tessParams.directionX=r,this._tessParams.directionY=n,this._tessParams.distance=m,this._tessParams.pathLength=p,this._tessParams.lineLength=u,this._writeVertex(c,d,t,e,this._tessParams),this._currentWrite.vertexFrom+this._currentWrite.vertexCount++}_writeTriangle(t,e,s){const{out:i}=this._currentWrite;i.indexEnsureSize(3),i.indexWrite(t),i.indexWrite(e),i.indexWrite(s),this._currentWrite.indexCount+=3}}export{j as AAnimatedPolyMeshWriter,S as AnimatedFillMeshWriter,R as AnimatedLineMeshWriter};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{loadLibtessF32 as e}from"../../../../../../../geometry/libtess.js";import{clipMarshall as t,triangulateSyncUnsafe as s}from"../../../mesh/templates/templateUtils.js";import{MeshWriter as r}from"../mesh/MeshWriter.js";class i extends r{async loadDependencies(){await Promise.all([super.loadDependencies(),e()])}_write(e,t,s){const r=s?.asOptimized()??t.readGeometryForDisplay(),i=this._clip(r);i&&(e.recordStart(this.instanceId,this.attributeLayout),this._writeGeometry(e,t,i),e.recordEnd())}_clip(e){if(!e)return null;const s=this.hasEffects;return t(e,s?256:8)}_writeGeometry(e,t,r){r=r.justXY();const i=s(r);if(!i||!i.vertices.length)return;const o=this.createTesselationParams(t);this._writeVertices(e,t,i,o)}_writeVertices(e,t,s,r){const i=t.getDisplayId(),o=e.vertexCount(),n=this.hasEffects,{vertices:c,indices:a}=s;let l=0;if(a)for(const d of a){const t=c[2*d],s=c[2*d+1];n&&e.recordBounds(t,s,0,0),this._writeVertex(e,i,t,s,r),l++}else for(let d=0;d<c.length;d+=2){const t=Math.round(c[d]),s=Math.round(c[d+1]);n&&e.recordBounds(t,s,0,0),this._writeVertex(e,i,t,s,r),l++}e.indexEnsureSize(l);for(let d=0;d<l;d++)e.indexWrite(d+o)}}export{i as AFillMeshWriter};
2
+ import{loadLibtessF32 as e}from"../../../../../../../geometry/libtess.js";import{clipMarshall as t,triangulateSyncUnsafe as r}from"../../../mesh/templates/templateUtils.js";import{MeshWriter as s}from"../mesh/MeshWriter.js";class i extends s{async loadDependencies(){await Promise.all([super.loadDependencies(),e()])}_write(e,{target:t,effectGeometry:r}){const s=r?.asOptimized()??t.readGeometryForDisplay(),i=this._clip(s);i&&(e.recordStart(this.instanceId,this.attributeLayout),this._writeGeometry(e,t,i),e.recordEnd())}_clip(e){if(!e)return null;const r=this.hasEffects;return t(e,r?256:8)}_writeGeometry(e,t,s){s=s.justXY();const i=r(s);if(!i||!i.vertices.length)return;const o=this.createTesselationParams(t);this._writeVertices(e,t,i,o)}_writeVertices(e,t,r,s){const i=t.getDisplayId(),o=e.vertexCount(),n=this.hasEffects,{vertices:c,indices:a}=r;let l=0;if(a)for(const d of a){const t=c[2*d],r=c[2*d+1];n&&e.recordBounds(t,r,0,0),this._writeVertex(e,i,t,r,s),l++}else for(let d=0;d<c.length;d+=2){const t=Math.round(c[d]),r=Math.round(c[d+1]);n&&e.recordBounds(t,r,0,0),this._writeVertex(e,i,t,r,s),l++}e.indexEnsureSize(l);for(let d=0;d<l;d++)e.indexWrite(d+o)}}export{i as AFillMeshWriter};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{complexFillVertexSpec as t,getPatternSize as s,packComplexFillBitset as r}from"./ComplexFillMeshWriter.js";import{packBitset as i}from"./meshWriterUtils.js";import{OutlineFillMeshWriter as a,OutlineFillOutlineMeshWriter as o,outlineFillVertexSpec_Outline as u}from"./OutlineFillMeshWriter.js";import{packPrecision as n,signedToUnsignedByte as c,bitsetTypeFillOutline as p}from"../shaders/constants.js";import{DataType as l}from"../../../../../../webgl/enums.js";const d=t,h=u,m={createComputedParams:e=>e,optionalAttributes:d.optionalAttributes,attributes:{...d.attributes,bitset:{type:l.UNSIGNED_BYTE,count:1,pack:e=>r(e)},aux1:{count:1,type:l.HALF_FLOAT,pack:e=>s(e).width},aux2:{count:1,type:l.HALF_FLOAT,pack:e=>s(e).height},aux3:{count:2,type:l.HALF_FLOAT,pack:({offsetX:t,offsetY:s})=>[e(t),e(s)]},aux4:{count:2,type:l.UNSIGNED_BYTE,pack:({scaleX:e,scaleY:t})=>[e*n,t*n]}}},x={createComputedParams:e=>e,optionalAttributes:d.optionalAttributes,attributes:{...d.attributes,color:h.attributes.color,bitset:{type:l.UNSIGNED_BYTE,count:1,pack:e=>i([[p,!0]])},aux1:{count:1,type:l.HALF_FLOAT,pack:t=>e(.5*t.width)},aux2:{count:1,type:l.HALF_FLOAT,pack:t=>e(.5*t.referenceWidth)},aux3:{count:2,type:l.HALF_FLOAT,packTessellation:({extrusionOffsetX:e,extrusionOffsetY:t})=>[e,t]},aux4:{count:2,type:l.UNSIGNED_BYTE,packTessellation:({normalX:e,normalY:t})=>[e*n+c,t*n+c]}}};class A extends o{constructor(){super(...arguments),this.vertexSpec=x}}class f extends a{constructor(){super(...arguments),this.vertexSpec=m}_createOutlineWriter(e,t,s,r){return new A(e,t,s,r)}write(e,t,s,r,i){this.ensurePacked(t,s,r);const a=this.evaluatedMeshParams.sprite?.textureBinding;e.recordStart(this.instanceId,this.attributeLayout,a),this._write(e,s),e.recordEnd()}ensurePacked(e,t,s){super.ensurePacked(e,t,s),this._lineMeshWriter.ensurePacked(e,t,s)}enqueueRequest(e,t,s){super.enqueueRequest(e,t,s),this._lineMeshWriter.enqueueRequest(e,t,s)}async loadDependencies(){await Promise.all([super.loadDependencies(),this._lineMeshWriter.loadDependencies()])}}export{f as ComplexOutlineFillMeshWriter};
2
+ import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{complexFillVertexSpec as t,getPatternSize as s,packComplexFillBitset as r}from"./ComplexFillMeshWriter.js";import{packBitset as i}from"./meshWriterUtils.js";import{OutlineFillMeshWriter as a,OutlineFillOutlineMeshWriter as o,outlineFillVertexSpec_Outline as u}from"./OutlineFillMeshWriter.js";import{packPrecision as n,signedToUnsignedByte as c,bitsetTypeFillOutline as p}from"../shaders/constants.js";import{DataType as l}from"../../../../../../webgl/enums.js";const d=t,h=u,m={createComputedParams:e=>e,optionalAttributes:d.optionalAttributes,attributes:{...d.attributes,bitset:{type:l.UNSIGNED_BYTE,count:1,pack:e=>r(e)},aux1:{count:1,type:l.HALF_FLOAT,pack:e=>s(e).width},aux2:{count:1,type:l.HALF_FLOAT,pack:e=>s(e).height},aux3:{count:2,type:l.HALF_FLOAT,pack:({offsetX:t,offsetY:s})=>[e(t),e(s)]},aux4:{count:2,type:l.UNSIGNED_BYTE,pack:({scaleX:e,scaleY:t})=>[e*n,t*n]}}},x={createComputedParams:e=>e,optionalAttributes:d.optionalAttributes,attributes:{...d.attributes,color:h.attributes.color,bitset:{type:l.UNSIGNED_BYTE,count:1,pack:e=>i([[p,!0]])},aux1:{count:1,type:l.HALF_FLOAT,pack:t=>e(.5*t.width)},aux2:{count:1,type:l.HALF_FLOAT,pack:t=>e(.5*t.referenceWidth)},aux3:{count:2,type:l.HALF_FLOAT,packTessellation:({extrusionOffsetX:e,extrusionOffsetY:t})=>[e,t]},aux4:{count:2,type:l.UNSIGNED_BYTE,packTessellation:({normalX:e,normalY:t})=>[e*n+c,t*n+c]}}};class A extends o{constructor(){super(...arguments),this.vertexSpec=x}}class f extends a{constructor(){super(...arguments),this.vertexSpec=m}_createOutlineWriter(e,t,s,r){return new A(e,t,s,r)}write(e,t,s,r,i){this.ensurePacked(t,s,r);const a=this.evaluatedMeshParams.sprite?.textureBinding;e.recordStart(this.instanceId,this.attributeLayout,a),this._write(e,{target:s,options:r,level:i}),e.recordEnd()}ensurePacked(e,t,s){super.ensurePacked(e,t,s),this._lineMeshWriter.ensurePacked(e,t,s)}enqueueRequest(e,t,s){super.enqueueRequest(e,t,s),this._lineMeshWriter.enqueueRequest(e,t,s)}async loadDependencies(){await Promise.all([super.loadDependencies(),this._lineMeshWriter.loadDependencies()])}}export{f as ComplexOutlineFillMeshWriter};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{CIMSymbolUnits as t}from"../../../../../../../symbols/cim/types.js";import{spritePadding as e,gradientTextureExternalPadding as r}from"../../../definitions.js";import{AFillMeshWriter as i}from"./AFillMeshWriter.js";import{fillVertexSpec as s}from"./FillMeshWriter.js";import{gradientFillMethods as a,bitset as o}from"./gradientFillConstants.js";import{getGradientSizeHelper as n}from"./GradientSizeHelper.js";import{getBitMask as l}from"./meshWriterUtils.js";import{DataType as c}from"../../../../../../webgl/enums.js";const p={createComputedParams:t=>t,optionalAttributes:s.optionalAttributes,attributes:{...s.attributes,bitset:{type:c.UNSIGNED_BYTE,count:1,pack:({gradientSizeUnits:e,gradientType:r})=>{let i=0;return e===t.Absolute&&(i|=l(o.isAbsolute)),"discrete"===r.toLowerCase()&&(i|=l(o.isDiscrete)),i}},tlbr:{count:4,type:c.UNSIGNED_SHORT,pack:({sprite:t})=>{const{rect:i,width:s,height:a}=t,o=i.x+e+r,n=i.y+e;return[o,n,o+s-2*r,n+a]}},relativePosition:{count:2,type:c.HALF_FLOAT,packTessellation:({gradientStats:t},e,r,i)=>t?.getRelativePosition(r,i)??[0,0]},relativeGradientSize:{count:2,type:c.HALF_FLOAT,packTessellation:({gradientStats:t})=>t?.relativeSize??[1,1]},gradientMethod:{count:1,type:c.UNSIGNED_BYTE,pack:({gradientMethod:t})=>{switch(t.toLowerCase()){case"rectangular":return a.rectangular;case"circular":return a.circular;default:return a.linear}}}}};class u extends i{constructor(){super(...arguments),this.vertexSpec=p}get _preventEffectClipping(){return!0}createTesselationParams(t){return{gradientStats:n(this._unclippedGeometry,this.evaluatedMeshParams)}}_write(t,e,r){const i=r?.asOptimized()??e.readGeometryForDisplay();this._unclippedGeometry=i;const s=this._clip(i);if(!s)return void(this._unclippedGeometry=null);const a=this.evaluatedMeshParams.sprite?.textureBinding;t.recordStart(this.instanceId,this.attributeLayout,a),this._writeGeometry(t,e,s),this._unclippedGeometry=null,t.recordEnd()}}export{u as GradientFillMeshWriter,p as gradientFillVertexSpec};
2
+ import{CIMSymbolUnits as t}from"../../../../../../../symbols/cim/types.js";import{spritePadding as e,gradientTextureExternalPadding as r}from"../../../definitions.js";import{AFillMeshWriter as i}from"./AFillMeshWriter.js";import{fillVertexSpec as s}from"./FillMeshWriter.js";import{gradientFillMethods as a,bitset as o}from"./gradientFillConstants.js";import{getGradientSizeHelper as n}from"./GradientSizeHelper.js";import{getBitMask as l}from"./meshWriterUtils.js";import{DataType as c}from"../../../../../../webgl/enums.js";const p={createComputedParams:t=>t,optionalAttributes:s.optionalAttributes,attributes:{...s.attributes,bitset:{type:c.UNSIGNED_BYTE,count:1,pack:({gradientSizeUnits:e,gradientType:r})=>{let i=0;return e===t.Absolute&&(i|=l(o.isAbsolute)),"discrete"===r.toLowerCase()&&(i|=l(o.isDiscrete)),i}},tlbr:{count:4,type:c.UNSIGNED_SHORT,pack:({sprite:t})=>{const{rect:i,width:s,height:a}=t,o=i.x+e+r,n=i.y+e;return[o,n,o+s-2*r,n+a]}},relativePosition:{count:2,type:c.HALF_FLOAT,packTessellation:({gradientStats:t},e,r,i)=>t?.getRelativePosition(r,i)??[0,0]},relativeGradientSize:{count:2,type:c.HALF_FLOAT,packTessellation:({gradientStats:t})=>t?.relativeSize??[1,1]},gradientMethod:{count:1,type:c.UNSIGNED_BYTE,pack:({gradientMethod:t})=>{switch(t.toLowerCase()){case"rectangular":return a.rectangular;case"circular":return a.circular;default:return a.linear}}}}};class u extends i{constructor(){super(...arguments),this.vertexSpec=p}get _preventEffectClipping(){return!0}createTesselationParams(t){return{gradientStats:n(this._unclippedGeometry,this.evaluatedMeshParams)}}_write(t,{target:e,effectGeometry:r}){const i=r?.asOptimized()??e.readGeometryForDisplay();this._unclippedGeometry=i;const s=this._clip(i);if(!s)return void(this._unclippedGeometry=null);const a=this.evaluatedMeshParams.sprite?.textureBinding;t.recordStart(this.instanceId,this.attributeLayout,a),this._writeGeometry(t,e,s),this._unclippedGeometry=null,t.recordEnd()}}export{u as GradientFillMeshWriter,p as gradientFillVertexSpec};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{clipMarshall as t}from"../../../mesh/templates/templateUtils.js";import{FillMeshWriter as i}from"./FillMeshWriter.js";import{processColorInput as r,packBitset as s}from"./meshWriterUtils.js";import{LineVertexSpec as o,LineMeshWriter as l}from"../line/LineMeshWriter.js";import{getLineClippingMargin as n}from"../mesh/utils.js";import{bitsetTypeFillOutline as a,bitsetOutlineUsesColorVV as u}from"../shaders/constants.js";import{DataType as c}from"../../../../../../webgl/enums.js";const h={createComputedParams:e=>e,optionalAttributes:o.optionalAttributes,attributes:{...o.attributes,bitset:{type:c.UNSIGNED_BYTE,count:1,pack:e=>0},color:{type:c.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:e})=>r(e)}}},m={createComputedParams:e=>e,optionalAttributes:o.optionalAttributes,attributes:{...o.attributes,bitset:{type:c.UNSIGNED_BYTE,count:1,pack:e=>s([[a,!0],[u,e.outlineUsesColorVV]])},color:{type:c.UNSIGNED_BYTE,count:4,normalized:!0,pack:({outlineColor:e})=>r(e)}}};class p extends l{constructor(){super(...arguments),this.vertexSpec=m}}class f extends i{constructor(e,t,i,r){super(e,t,i,r),this.vertexSpec=h,this._lineMeshWriter=this._createOutlineWriter(e,t,i,r)}_createOutlineWriter(e,t,i,r){return new p(e,t,i,r)}_write(e,t){const i=this.evaluatedMeshParams.effects,r=this.evaluatedMeshParams.outlineEffects;if(i?.length||r?.length){if(i?.length){const r=this.getEffectCursor(e,t,i);if(r){let i;for(;i=r?.next();)i.invertY(),this._writeFill(e,t,i)}}else this._writeFill(e,t);if(r?.length){const i=this.getEffectCursor(e,t,r);if(i){let r;for(;r=i?.next();)r.invertY(),this._writeOutline(e,t,r)}}else this._writeOutline(e,t)}else this._writeSimpleOutlineFill(e,t)}_writeSimpleOutlineFill(t,i){const r=i.readGeometryForDisplay(),s=this._clip(r);s&&(this._writeGeometry(t,i,s),this._lineMeshWriter.writeLineVertices(t,e.fromOptimizedCIM(s,"esriGeometryPolyline"),i))}_writeFill(e,t,i){const r=i?.asOptimized()??t.readGeometryForDisplay(),s=this._clip(r);s&&this._writeGeometry(e,t,s)}_writeOutline(t,i,r){const s=r?.asOptimized()??i.readGeometryForDisplay(),o=this._clip(s);o&&this._lineMeshWriter.writeLineVertices(t,e.fromOptimizedCIM(o,"esriGeometryPolyline"),i)}_clip(e){return e?t(e,n(this.evaluatedMeshParams)):null}get effectInfos(){return[...this._evaluator.inputMeshParams.effects?.effectInfos??[],...this._evaluator.inputMeshParams.outlineEffects?.effectInfos??[]]}write(e,t,i,r,s){this.ensurePacked(t,i,r),e.recordStart(this.instanceId,this.attributeLayout),this._write(e,i),e.recordEnd()}ensurePacked(e,t,i){super.ensurePacked(e,t,i),this._lineMeshWriter.ensurePacked(e,t,i)}enqueueRequest(e,t,i){super.enqueueRequest(e,t,i),this._lineMeshWriter.enqueueRequest(e,t,i)}async loadDependencies(){await Promise.all([super.loadDependencies(),this._lineMeshWriter.loadDependencies()])}get hasEffects(){return!!this.evaluatedMeshParams.outlineEffects}}export{f as OutlineFillMeshWriter,p as OutlineFillOutlineMeshWriter,h as outlineFillVertexSpec_Fill,m as outlineFillVertexSpec_Outline};
2
+ import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{clipMarshall as t}from"../../../mesh/templates/templateUtils.js";import{FillMeshWriter as i}from"./FillMeshWriter.js";import{processColorInput as r,packBitset as s}from"./meshWriterUtils.js";import{LineVertexSpec as o,LineMeshWriter as n}from"../line/LineMeshWriter.js";import{getLineClippingMargin as l}from"../mesh/utils.js";import{bitsetTypeFillOutline as a,bitsetOutlineUsesColorVV as u}from"../shaders/constants.js";import{DataType as c}from"../../../../../../webgl/enums.js";const h={createComputedParams:e=>e,optionalAttributes:o.optionalAttributes,attributes:{...o.attributes,bitset:{type:c.UNSIGNED_BYTE,count:1,pack:e=>0},color:{type:c.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:e})=>r(e)}}},m={createComputedParams:e=>e,optionalAttributes:o.optionalAttributes,attributes:{...o.attributes,bitset:{type:c.UNSIGNED_BYTE,count:1,pack:e=>s([[a,!0],[u,e.outlineUsesColorVV]])},color:{type:c.UNSIGNED_BYTE,count:4,normalized:!0,pack:({outlineColor:e})=>r(e)}}};class p extends n{constructor(){super(...arguments),this.vertexSpec=m}}class f extends i{constructor(e,t,i,r){super(e,t,i,r),this.vertexSpec=h,this._lineMeshWriter=this._createOutlineWriter(e,t,i,r)}_createOutlineWriter(e,t,i,r){return new p(e,t,i,r)}_write(e,{target:t,options:i}){const r=this.evaluatedMeshParams.effects,s=this.evaluatedMeshParams.outlineEffects,o=e.id||"",n=this._createEffectExecutionContext(t,i,o);if(r?.length||s?.length){if(r?.length){const i=this.getEffectCursor(t,r,n);if(i){let r;for(;r=i?.next();)r.invertY(),this._writeFill(e,t,r)}}else this._writeFill(e,t);if(s?.length){const i=this.getEffectCursor(t,s,n);if(i){let r;for(;r=i?.next();)r.invertY(),this._writeOutline(e,t,r)}}else this._writeOutline(e,t)}else this._writeSimpleOutlineFill(e,t)}_writeSimpleOutlineFill(t,i){const r=i.readGeometryForDisplay(),s=this._clip(r);s&&(this._writeGeometry(t,i,s),this._lineMeshWriter.writeLineVertices(t,e.fromOptimizedCIM(s,"esriGeometryPolyline"),i))}_writeFill(e,t,i){const r=i?.asOptimized()??t.readGeometryForDisplay(),s=this._clip(r);s&&this._writeGeometry(e,t,s)}_writeOutline(t,i,r){const s=r?.asOptimized()??i.readGeometryForDisplay(),o=this._clip(s);o&&this._lineMeshWriter.writeLineVertices(t,e.fromOptimizedCIM(o,"esriGeometryPolyline"),i)}_clip(e){return e?t(e,l(this.evaluatedMeshParams)):null}get effectInfos(){return[...this._evaluator.inputMeshParams.effects?.effectInfos??[],...this._evaluator.inputMeshParams.outlineEffects?.effectInfos??[]]}write(e,t,i,r,s){this.ensurePacked(t,i,r),e.recordStart(this.instanceId,this.attributeLayout),this._write(e,{target:i,options:r,level:s}),e.recordEnd()}ensurePacked(e,t,i){super.ensurePacked(e,t,i),this._lineMeshWriter.ensurePacked(e,t,i)}enqueueRequest(e,t,i){super.enqueueRequest(e,t,i),this._lineMeshWriter.enqueueRequest(e,t,i)}async loadDependencies(){await Promise.all([super.loadDependencies(),this._lineMeshWriter.loadDependencies()])}get hasEffects(){return!!this.evaluatedMeshParams.outlineEffects}}export{f as OutlineFillMeshWriter,p as OutlineFillOutlineMeshWriter,h as outlineFillVertexSpec_Fill,m as outlineFillVertexSpec_Outline};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{spritePadding as t}from"../../../definitions.js";import{fillVertexSpec as e,FillMeshWriter as r}from"./FillMeshWriter.js";import{DataType as i}from"../../../../../../webgl/enums.js";const s={createComputedParams:t=>t,optionalAttributes:e.optionalAttributes,attributes:{...e.attributes,tlbr:{count:4,type:i.UNSIGNED_SHORT,pack:({sprite:e})=>{const{rect:r,width:i,height:s}=e,o=r.x+t,a=r.y+t;return[o,a,o+i,a+s]}},inverseRasterizationScale:{count:1,type:i.BYTE,packPrecisionFactor:16,pack:({sprite:t})=>1/t.rasterizationScale}}};class o extends r{constructor(){super(...arguments),this.vertexSpec=s}_write(t,e,r){const i=r?.asOptimized()??e.readGeometryForDisplay(),s=this._clip(i);if(!s)return;const o=this.evaluatedMeshParams.sprite?.textureBinding;t.recordStart(this.instanceId,this.attributeLayout,o),this._writeGeometry(t,e,s),t.recordEnd()}}export{o as PatternFillMeshWriter,s as patternFillVertexSpec};
2
+ import{spritePadding as t}from"../../../definitions.js";import{fillVertexSpec as e,FillMeshWriter as r}from"./FillMeshWriter.js";import{DataType as i}from"../../../../../../webgl/enums.js";const s={createComputedParams:t=>t,optionalAttributes:e.optionalAttributes,attributes:{...e.attributes,tlbr:{count:4,type:i.UNSIGNED_SHORT,pack:({sprite:e})=>{const{rect:r,width:i,height:s}=e,o=r.x+t,a=r.y+t;return[o,a,o+i,a+s]}},inverseRasterizationScale:{count:1,type:i.BYTE,packPrecisionFactor:16,pack:({sprite:t})=>1/t.rasterizationScale}}};class o extends r{constructor(){super(...arguments),this.vertexSpec=s}_write(t,{target:e,effectGeometry:r}){const i=r?.asOptimized()??e.readGeometryForDisplay(),s=this._clip(i);if(!s)return;const o=this.evaluatedMeshParams.sprite?.textureBinding;t.recordStart(this.instanceId,this.attributeLayout,o),this._writeGeometry(t,e,s),t.recordEnd()}}export{o as PatternFillMeshWriter,s as patternFillVertexSpec};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{OutlineFillMeshWriter as e,outlineFillVertexSpec_Fill as t,OutlineFillOutlineMeshWriter as r,outlineFillVertexSpec_Outline as s}from"./OutlineFillMeshWriter.js";import{patternFillVertexSpec as i}from"./PatternFillMeshWriter.js";const a={optionalAttributes:i.optionalAttributes,createComputedParams:e=>e,attributes:{...i.attributes,...t.attributes}},u={optionalAttributes:i.optionalAttributes,createComputedParams:e=>e,attributes:{...i.attributes,...s.attributes}};class n extends r{constructor(){super(...arguments),this.vertexSpec=u}}class o extends e{constructor(){super(...arguments),this.vertexSpec=a}_createOutlineWriter(e,t,r,s){return new n(e,t,r,s)}write(e,t,r,s,i){this.ensurePacked(t,r,s);const a=this.evaluatedMeshParams.sprite?.textureBinding;e.recordStart(this.instanceId,this.attributeLayout,a),this._write(e,r),e.recordEnd()}ensurePacked(e,t,r){super.ensurePacked(e,t,r),this._lineMeshWriter.ensurePacked(e,t,r)}enqueueRequest(e,t,r){super.enqueueRequest(e,t,r),this._lineMeshWriter.enqueueRequest(e,t,r)}async loadDependencies(){await Promise.all([super.loadDependencies(),this._lineMeshWriter.loadDependencies()])}}export{o as PatternOutlineFillMeshWriter};
2
+ import{OutlineFillMeshWriter as e,outlineFillVertexSpec_Fill as t,OutlineFillOutlineMeshWriter as r,outlineFillVertexSpec_Outline as s}from"./OutlineFillMeshWriter.js";import{patternFillVertexSpec as i}from"./PatternFillMeshWriter.js";const a={optionalAttributes:i.optionalAttributes,createComputedParams:e=>e,attributes:{...i.attributes,...t.attributes}},u={optionalAttributes:i.optionalAttributes,createComputedParams:e=>e,attributes:{...i.attributes,...s.attributes}};class n extends r{constructor(){super(...arguments),this.vertexSpec=u}}class o extends e{constructor(){super(...arguments),this.vertexSpec=a}_createOutlineWriter(e,t,r,s){return new n(e,t,r,s)}write(e,t,r,s,i){this.ensurePacked(t,r,s);const a=this.evaluatedMeshParams.sprite?.textureBinding;e.recordStart(this.instanceId,this.attributeLayout,a),this._write(e,{target:r,options:s,level:i}),e.recordEnd()}ensurePacked(e,t,r){super.ensurePacked(e,t,r),this._lineMeshWriter.ensurePacked(e,t,r)}enqueueRequest(e,t,r){super.enqueueRequest(e,t,r),this._lineMeshWriter.enqueueRequest(e,t,r)}async loadDependencies(){await Promise.all([super.loadDependencies(),this._lineMeshWriter.loadDependencies()])}}export{o as PatternOutlineFillMeshWriter};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{MeshWriter as t}from"../mesh/MeshWriter.js";import{DataType as e}from"../../../../../../webgl/enums.js";const r={createComputedParams:t=>t,optionalAttributes:{},attributes:{pos:{type:e.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:e.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:e.UNSIGNED_BYTE,count:1},offset:{type:e.BYTE,count:2,packAlternating:{count:4,pack:()=>[[-1,-1],[1,-1],[-1,1],[1,1]]}}}};class i extends t{constructor(){super(...arguments),this.vertexSpec=r}_write(t,e){t.recordStart(this.instanceId,this.attributeLayout);const r=e.getDisplayId();if("esriGeometryPoint"===e.geometryType){const i=e.readXForDisplay(),o=e.readYForDisplay();this._writeQuad(t,r,i,o)}else if("esriGeometryMultipoint"===e.geometryType){const i=e.readGeometryForDisplay();i?.forEachVertex((e,i)=>{e>=0&&e<=512&&i>=0&&i<=512&&this._writeQuad(t,r,e,i)})}t.recordEnd()}_writeQuad(t,e,r,i){const o=t.vertexCount();this._writeVertex(t,e,r,i),t.indexWrite(o+0),t.indexWrite(o+1),t.indexWrite(o+2),t.indexWrite(o+1),t.indexWrite(o+3),t.indexWrite(o+2)}}export{i as HeatmapMeshWriter,r as heatmapVertexSpec};
2
+ import{MeshWriter as t}from"../mesh/MeshWriter.js";import{DataType as e}from"../../../../../../webgl/enums.js";const r={createComputedParams:t=>t,optionalAttributes:{},attributes:{pos:{type:e.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:e.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:e.UNSIGNED_BYTE,count:1},offset:{type:e.BYTE,count:2,packAlternating:{count:4,pack:()=>[[-1,-1],[1,-1],[-1,1],[1,1]]}}}};class i extends t{constructor(){super(...arguments),this.vertexSpec=r}_write(t,{target:e}){t.recordStart(this.instanceId,this.attributeLayout);const r=e.getDisplayId();if("esriGeometryPoint"===e.geometryType){const i=e.readXForDisplay(),o=e.readYForDisplay();this._writeQuad(t,r,i,o)}else if("esriGeometryMultipoint"===e.geometryType){const i=e.readGeometryForDisplay();i?.forEachVertex((e,i)=>{e>=0&&e<=512&&i>=0&&i<=512&&this._writeQuad(t,r,e,i)})}t.recordEnd()}_writeQuad(t,e,r,i){const o=t.vertexCount();this._writeVertex(t,e,r,i),t.indexWrite(o+0),t.indexWrite(o+1),t.indexWrite(o+2),t.indexWrite(o+1),t.indexWrite(o+3),t.indexWrite(o+2)}}export{i as HeatmapMeshWriter,r as heatmapVertexSpec};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{memoize as e}from"../../../../../../../core/MapUtils.js";import{pt2px as t}from"../../../../../../../core/screenUtils.js";import{numericHash as i}from"../../../../../../../core/string.js";import{fromRotation as r,translate as s}from"../../../../../../../core/libs/gl-matrix-2/math/mat2d.js";import{create as o}from"../../../../../../../core/libs/gl-matrix-2/factories/mat2df32.js";import{transformMat2d as n,set as a,sub as l,normalize as c,add as h,scale as m}from"../../../../../../../core/libs/gl-matrix-2/math/vec2.js";import{fromValues as u}from"../../../../../../../core/libs/gl-matrix-2/factories/vec2f32.js";import{create as d}from"../../../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{convertGeometryToFlat as f,convertOptimizedGeometryToFlat as g,convertFlatToOptimizedGeometry as p,FlatGeometry as _}from"../../../../../../../geometry/FlatGeometry.js";import{GeometryCursor as y}from"../../../../../../../geometry/GeometryCursor.js";import{getLabelPoint as x}from"../../../../../../../geometry/support/labelPoint.js";import{generalizeOptimizedGeometry as P,convertToGeometry as b}from"../../../../../../../layers/graphics/featureConversionUtils.js";import v from"../../../../../../../layers/graphics/OptimizedGeometry.js";import{importLazily as M}from"../../../../../../../symbols/cim/utils.js";import{tileSize as w,minMaxZoomPrecisionFactor as L}from"../../../definitions.js";import I from"../../../collisions/BoundingBox.js";import{LabelMetric as B}from"../../../collisions/LabelMetric.js";import{smoothPaths as S,pathDivide as z}from"../../../mesh/templates/segmentUtils.js";import{getMinMaxZoom as G,processColorInput as j}from"../fill/meshWriterUtils.js";import{TextMeshWriter as D,maxLabelZoom as A}from"../text/TextMeshWriter.js";const F=1,k=0,R=128,$=w*w/16,C=M(()=>import("../../../../../../../geometry/operators/gx/operatorIntersection.js")),O=M(()=>import("../../../../../../../chunks/FlatGeometry.js"));function E(e,t,r){return i(`${e}${t}${r}`)}function Z(e,t,r,s,o){return i(`${e}${t}${r}${s*2**(A-o)}`)}function T(e,t,r){return i(`${e}${t}${r}`)}function W(e,t,r,s,o){return i(`${e}${o}${t}${r*2**(A-s)}`)}const U=e(e=>{let t=0;if(0===e)return 1/0;for(;!(e%2);)t++,e/=2;return t});class X extends D{constructor(){super(...arguments),this._zoomLevel=0}async loadDependencies(){await Promise.all([super.loadDependencies(),C.getImportPromise(),O.getImportPromise()])}_write(e,t,i,r,s){if(this._zoomLevel=r||0,null!=i)throw new Error("InternalError: EffectGeometry not support for LabelMeshWriter");switch(t.geometryType){case"esriGeometryPoint":{const i=t.readXForDisplay(),r=t.readYForDisplay();this._writePoint(e,i,r,0,t);break}case"esriGeometryEnvelope":case"esriGeometryPolygon":this._writePolygon(e,t,s);break;case"esriGeometryMultipoint":{let i=0;const r=y.fromFeatureSetReader(t);if(r?.nextPath())for(;r.nextPoint();)this._writePoint(e,r.x,r.y,i++,t);break}case"esriGeometryPolyline":this._writeLines(e,t)}}_getMetricDir(){const{horizontalAlignment:e,verticalAlignment:t}=this.evaluatedMeshParams;return["center"===e?0:"right"===e?-1:1,"middle"===t?0:"bottom"===t?-1:1]}_createLineLabelMetric(e,t,i,r,s,o){const[n,a]=this._getMetricDir(),l=this.evaluatedMeshParams.scaleInfo?.maxScale??0,c=this.evaluatedMeshParams.scaleInfo?.minScale??0,h=this.evaluatedMeshParams.labelClassId;return new B(e,h,t,i,r,s,n,a,l,c,o)}_writePolygon(e,t,i){const r=C.module,s=O.module.constructFromFlatGeometry,o=t.readGeometryForDisplay(),n=t.readCentroidForDisplay()?.coords,a=o?.area()||0;if(!n)return;const l=a>=$;e.requiresRefresh||=l;const c=s(f(i)),h=s(f({x:n[0],y:n[1]})),m=!!r.execute(h,c,null);if(!o||!l||!m)return void this._writePoint(e,n[0],n[1],0,t);const u=s(g("polygon",o,null)),d=r.execute(u,c,null);if(!d)return void this._writePoint(e,n[0],n[1],0,t);const P=p(new _(d.toFlatGeometry())),b=y.fromOptimized(P,"esriGeometryPolygon",1),v=x(b)??n;this._writePoint(e,v[0],v[1],0,t)}_writePoint(e,t,i,r,s){if(t<0||t>w||i<0||i>w)return;const o=this._getShaping();if(!o)return;const n=s.getDisplayId(),a=this.evaluatedMeshParams.labelClassId,l=E(this.evaluatedMeshParams.layerId,s.getObjectId(),r),c=T(s.getObjectId(),a,r),[h,m]=this._getMetricDir(),u=this.evaluatedMeshParams.scaleInfo?.maxScale??0,d=this.evaluatedMeshParams.scaleInfo?.minScale??0,f=this._getPointReferenceBounds()||{offsetX:0,offsetY:0,size:0};e.metricStart(new B(n,a,l,c,t,i,h,m,u,d,f)),this._writeGlyphs(e,n,t,i,o,0,f,void 0,!1),e.metricBoxWrite(o.boundsT),e.metricEnd()}_getPointReferenceBounds(){if(!this._references)return null;for(const e of this._references){const t=e.getBoundsInfo();if(t)return t}return null}_writeLines(e,t){const{scaleInfo:i,verticalAlignment:r}=this.evaluatedMeshParams,s=this.evaluatedMeshParams.repeatLabelDistance||128,o=this._getShaping("middle");if(!o)return;const n=(e,t,i,r)=>this._placeSubdivGlyphs(e,t,i,r),a=(o.bounds.width+s)/(1<<F);this._current={out:e,id:t.getDisplayId(),objId:t.getObjectId(),shaping:o,zoomRange:G(i,this.getTileInfo()),referenceBounds:this._getPointReferenceBounds()||{offsetX:0,offsetY:0,size:0},offsetDirection:null,pathIndex:0},this._verticalPlacement="bottom"===r?"above":"top"===r?"below":null,this._verticalPlacement?this._writeAboveAndBelowAlong(t,n,a):this._writeCenterAlong(t,n,a)}_writeAboveAndBelowAlong(e,t,i){const{repeatLabel:r}=this.evaluatedMeshParams,{shaping:s}=this._current,o=s.bounds.halfHeight,n=e.readGeometryForDisplay();if(!n)return;const a=P(n,"esriGeometryPolyline",1)??new v,l=Y(a,o),c=Y(a,-o),h=b(c,"esriGeometryPolyline",!1,!1),m=b(l,"esriGeometryPolyline",!1,!1),u=S(m.paths,s.bounds.width),d=S(h.paths,s.bounds.width);this._current.offsetDirection="above";for(let f=0;f<u.length;f++)this._current.pathIndex=f,z(u[f],i,t,!!r);this._current.offsetDirection="below";for(let f=0;f<d.length;f++)this._current.pathIndex=f,z(d[f],i,t,!!r)}_writeCenterAlong(e,t,i){const{repeatLabel:r}=this.evaluatedMeshParams,{shaping:s}=this._current,o=S(e.readLegacyGeometryForDisplay().paths,s.bounds.width);for(let n=0;n<o.length;n++)this._current.pathIndex=n,z(o[n],i,t,!!r)}_placeSubdivGlyphs(e,t,i,r){const{allowOverrun:s,labelPosition:o,repeatLabelDistance:n,layerId:a,labelClassId:l}=this.evaluatedMeshParams,{objId:c,shaping:h,pathIndex:m}=this._current,u=this._current.zoomRange[0],d=U(t),f=this._current.shaping.bounds.width/(1<<F),g=Math.sqrt(n||R)/(1<<F),p=Math.min(i,r-i),_=h.isMultiline?A:Math.log2(p/(g+f/2)),y=0===t?_:Math.min(d,_),x=Math.max(u,this._zoomLevel+F-y),P=this._zoomLevel-x,b=h.bounds.width/2*2**P,v=Z(a,c,m,t,this._zoomLevel),M=W(c,m,t,this._zoomLevel,l);this._current.shaping.isMultiline?0===t&&this._placeStraight(e,x,v,M):s&&P<0?this._placeStraightAlong(e,u,v,M):"parallel"===o?this._placeStraightAlong(e,x,v,M):"curved"===o&&this._placeCurved(e,x,b,v,M)}_placeStraight(e,t,i,r){const{out:s,id:o,shaping:n,referenceBounds:a}=this._current,{x:l,y:c}=e;s.metricStart(this._createLineLabelMetric(o,i,r,l,c)),s.metricBoxWrite(n.boundsT);const h=e.angle*(180/Math.PI)%360,m=(e.angle*(180/Math.PI)+180)%360;if(!this._verticalPlacement||this._verticalPlacement===this._current.offsetDirection){const e={clipAngle:h,mapAligned:!0,isLineLabel:!0,minZoom:t};this._writeGlyphs(s,o,l,c,n,0,a,e,!1)}if(!this._verticalPlacement||this._verticalPlacement!==this._current.offsetDirection){const e={clipAngle:m,mapAligned:!0,isLineLabel:!0,minZoom:t};this._writeGlyphs(s,o,l,c,n,0,a,e,!1)}s.metricEnd()}_placeCurved(e,t,i,r,s){const{out:o,id:n}=this._current;o.metricStart(this._createLineLabelMetric(n,r,s,e.x,e.y));const a=e.clone(),l=e.angle*(180/Math.PI)%360,c=(e.angle*(180/Math.PI)+180)%360;this._verticalPlacement&&this._verticalPlacement!==this._current.offsetDirection||(this._placeFirst(a,t,1,l),this._placeBack(e,a,t,i,1,l),this._placeForward(e,a,t,i,1,l)),this._verticalPlacement&&this._verticalPlacement===this._current.offsetDirection||(this._placeFirst(a,t,0,c),this._placeBack(e,a,t,i,0,c),this._placeForward(e,a,t,i,0,c)),o.metricEnd()}_placeStraightAlong(e,i,n,a){const{out:l,id:c,shaping:h,zoomRange:m,referenceBounds:d}=this._current,{boxBorderLineColor:f,boxBackgroundColor:g}=this.evaluatedMeshParams,p=e.clone(),_=e.angle*(180/Math.PI)%360,y=(e.angle*(180/Math.PI)+180)%360,x=h.glyphs.length>0&&!(!f&&!g);if(l.metricStart(this._createLineLabelMetric(c,n,a,e.x,e.y)),x){const n=Math.max(i,m[0],0),a=Math.min(A,m[1]),f=r(o(),-e.angle),g={minZoom:n,maxZoom:a,clipAngle:_,mapAligned:!0,isLineLabel:!0},p=t(this.evaluatedMeshParams.offsetX),x=t(this.evaluatedMeshParams.offsetY);if(!this._verticalPlacement||this._verticalPlacement===this._current.offsetDirection){const t=u(p,-1*x),[i,r]=h.shapeBackground(s(o(),f,t));l.recordStart(this.instanceId,this.attributeLayout,h.glyphs[0].textureBinding),this._writeTextBox(l,c,e.x,e.y,r,d,g),l.recordEnd()}if(!this._verticalPlacement||this._verticalPlacement!==this._current.offsetDirection){const t=u(p,x),[i,r]=h.shapeBackground(s(o(),f,t));g.clipAngle=y,l.recordStart(this.instanceId,this.attributeLayout,h.glyphs[0].textureBinding),this._writeTextBox(l,c,e.x,e.y,r,d,g),l.recordEnd()}}this._verticalPlacement&&this._verticalPlacement!==this._current.offsetDirection||this._placeFirst(p,i,1,_,!0),this._verticalPlacement&&this._verticalPlacement===this._current.offsetDirection||this._placeFirst(p,i,0,y,!0),l.metricEnd()}_placeBack(e,t,i,r,s,o){const n=e.clone();let a=e.backwardLength+k;for(;n.prev()&&!(a>=r);)this._placeOnSegment(n,t,a,i,-1,s,o),a+=n.length+k}_placeForward(e,t,i,r,s,o){const n=e.clone();let a=e.remainingLength+k;for(;n.next()&&!(a>=r);)this._placeOnSegment(n,t,a,i,1,s,o),a+=n.length+k}_placeFirst(e,t,i,r,s=!1){const{out:o,id:n,shaping:a,zoomRange:l,referenceBounds:c}=this._current,h=a.glyphs,m=this._getBoundsOffset(e.angle);for(const u of h){const h=u.x>a.bounds.x?i:1-i,d=h*e.remainingLength+(1-h)*e.backwardLength,f=Math.abs(u.x+u.width/2-a.bounds.x),g=Math.max(0,this._zoomLevel+Math.log2(f/(d+k))),p=Math.max(t,s?0:g);u.angle=e.angle+(1-i)*Math.PI;const _=[Math.max(l[0],p),Math.min(l[1],A)];this._writeLineGlyph(o,n,e.x,e.y,u,_,r,c),this._writeLineGlyphBox(o,u,i,_,m)}}_placeOnSegment(e,t,i,r,s,o,n){const{out:a,id:l,shaping:c,referenceBounds:h}=this._current,m=c.glyphs,u=e.dx/e.length,d=e.dy/e.length,f={x:e.x+i*-s*u,y:e.y+i*-s*d},g=this._getBoundsOffset(e.angle);for(const p of m){const t=p.x>c.bounds.x?o:1-o;if(!(t&&1===s||!t&&-1===s))continue;const m=Math.abs(p.x+p.width/2-c.bounds.x),u=Math.max(0,this._zoomLevel+Math.log2(m/i)-.1),d=Math.max(r,this._zoomLevel+Math.log2(m/(i+e.length+k)));if(0===u)continue;p.angle=e.angle+(1-o)*Math.PI;const _=[d,u];this._writeLineGlyph(a,l,f.x,f.y,p,_,n,h),this._writeLineGlyphBox(a,p,o,_,g)}}_getBoundsOffset(e){const i=t(this.evaluatedMeshParams.offsetX),s=t(this.evaluatedMeshParams.offsetY),a=u(i,s),l=r(o(),-e);return n(a,a,l)}_writeLineGlyph(e,t,i,r,s,o,n,a){if(i<0||i>w||r<0||r>w)return;e.recordStart(this.instanceId,this.attributeLayout,s.textureBinding);const{texcoords:l,offsets:c}=s,{fontSize:h,haloSize:m,outlineSize:u}=this._textMeshTransformProps,{sdfSize:d,sdfRadius:f}=this.evaluatedMeshParams.glyphs;this._writeQuad(e,t,i,r,{sdfSize:d,sdfRadius:f,texcoords:l,offsets:c,fontSize:h,haloSize:m,outlineSize:u,color:j(this.evaluatedMeshParams.color),isBackground:!1,referenceBounds:a,minZoom:Math.max(this._current.zoomRange[0],o[0]),maxZoom:Math.min(this._current.zoomRange[1],o[1]),clipAngle:n,mapAligned:!0,isLineLabel:!0}),e.recordEnd()}_writeLineGlyphBox(e,t,i,r,s){if((i||this._current.offsetDirection)&&this._isVisible(r)&&t.bounds){const i=t.bounds,r=new I(i.x+s[0],i.y+s[1],i.width,i.height);e.metricBoxWrite(r)}}_packedZoom(e){return Math.floor(e*L)/L}_isVisible(e){let t=Math.max(this._current.zoomRange[0],e[0]),i=Math.min(this._current.zoomRange[1],e[1]);t=this._packedZoom(t),i=this._packedZoom(i);const r=this._packedZoom(this._zoomLevel);return t<=r&&r<=i}}function Y(e,t){const i=new v,{coords:r,lengths:s}=e,o=d(),n=d(),u=d(),f=d(),g=d(),p=d(),_=2;let y=0;for(let d=0;d<s.length;d++){const e=s[d];for(let s=0;s<e;s++){const d=_*(s+y-1),x=_*(s+y),P=_*(s+y+1);s>0?a(o,r[d],r[d+1]):a(o,0,0),a(n,r[x],r[x+1]),s<e-1?a(u,r[P],r[P+1]):a(u,0,0),0===s?a(f,0,0):(l(f,n,o),c(f,f),a(f,f[1],-f[0])),s===e-1?a(g,0,0):(l(g,u,n),c(g,g),a(g,g[1],-g[0])),h(p,f,g),c(p,p);const b=p[0]*g[0]+p[1]*g[1];0!==b&&m(p,p,b),m(p,p,t),i.coords.push(n[0]+p[0],n[1]+p[1])}i.lengths.push(e),y+=e}return i}export{X as LabelMeshWriter,E as labelIdHash,T as labelMetricHash,Z as lineLabelIdHash,W as lineLabelMetricHash};
2
+ import{memoize as e}from"../../../../../../../core/MapUtils.js";import{pt2px as t}from"../../../../../../../core/screenUtils.js";import{numericHash as i}from"../../../../../../../core/string.js";import{fromRotation as r,translate as s}from"../../../../../../../core/libs/gl-matrix-2/math/mat2d.js";import{create as o}from"../../../../../../../core/libs/gl-matrix-2/factories/mat2df32.js";import{transformMat2d as n,set as a,sub as l,normalize as c,add as h,scale as m}from"../../../../../../../core/libs/gl-matrix-2/math/vec2.js";import{fromValues as u}from"../../../../../../../core/libs/gl-matrix-2/factories/vec2f32.js";import{create as d}from"../../../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{convertGeometryToFlat as f,convertOptimizedGeometryToFlat as g,convertFlatToOptimizedGeometry as p,FlatGeometry as _}from"../../../../../../../geometry/FlatGeometry.js";import{GeometryCursor as y}from"../../../../../../../geometry/GeometryCursor.js";import{getLabelPoint as x}from"../../../../../../../geometry/support/labelPoint.js";import{generalizeOptimizedGeometry as P,convertToGeometry as v}from"../../../../../../../layers/graphics/featureConversionUtils.js";import b from"../../../../../../../layers/graphics/OptimizedGeometry.js";import{importLazily as M}from"../../../../../../../symbols/cim/utils.js";import{tileSize as w,minMaxZoomPrecisionFactor as L}from"../../../definitions.js";import I from"../../../collisions/BoundingBox.js";import{LabelMetric as B}from"../../../collisions/LabelMetric.js";import{smoothPaths as S,pathDivide as z}from"../../../mesh/templates/segmentUtils.js";import{getMinMaxZoom as G,processColorInput as j}from"../fill/meshWriterUtils.js";import{TextMeshWriter as D,maxLabelZoom as A}from"../text/TextMeshWriter.js";const F=1,k=0,R=128,$=w*w/16,C=M(()=>import("../../../../../../../geometry/operators/gx/operatorIntersection.js")),E=M(()=>import("../../../../../../../chunks/FlatGeometry.js"));function O(e,t,r){return i(`${e}${t}${r}`)}function Z(e,t,r,s,o){return i(`${e}${t}${r}${s*2**(A-o)}`)}function T(e,t,r){return i(`${e}${t}${r}`)}function W(e,t,r,s,o){return i(`${e}${o}${t}${r*2**(A-s)}`)}const U=e(e=>{let t=0;if(0===e)return 1/0;for(;!(e%2);)t++,e/=2;return t});class X extends D{constructor(){super(...arguments),this._zoomLevel=0}async loadDependencies(){await Promise.all([super.loadDependencies(),C.getImportPromise(),E.getImportPromise()])}_write(e,{target:t,effectGeometry:i,level:r,viewExtent:s}){if(this._zoomLevel=r,null!=i)throw new Error("InternalError: EffectGeometry not support for LabelMeshWriter");switch(t.geometryType){case"esriGeometryPoint":{const i=t.readXForDisplay(),r=t.readYForDisplay();this._writePoint(e,i,r,0,t);break}case"esriGeometryEnvelope":case"esriGeometryPolygon":this._writePolygon(e,t,s);break;case"esriGeometryMultipoint":{let i=0;const r=y.fromFeatureSetReader(t);if(r?.nextPath())for(;r.nextPoint();)this._writePoint(e,r.x,r.y,i++,t);break}case"esriGeometryPolyline":this._writeLines(e,t)}}_getMetricDir(){const{horizontalAlignment:e,verticalAlignment:t}=this.evaluatedMeshParams;return["center"===e?0:"right"===e?-1:1,"middle"===t?0:"bottom"===t?-1:1]}_createLineLabelMetric(e,t,i,r,s,o){const[n,a]=this._getMetricDir(),l=this.evaluatedMeshParams.scaleInfo?.maxScale??0,c=this.evaluatedMeshParams.scaleInfo?.minScale??0,h=this.evaluatedMeshParams.labelClassId;return new B(e,h,t,i,r,s,n,a,l,c,o)}_writePolygon(e,t,i){const r=C.module,s=E.module.constructFromFlatGeometry,o=t.readGeometryForDisplay(),n=t.readCentroidForDisplay()?.coords,a=o?.area()||0;if(!n)return;const l=a>=$;e.requiresRefresh||=l;const c=s(f(i)),h=s(f({x:n[0],y:n[1]})),m=!!r.execute(h,c,null);if(!o||!l||!m)return void this._writePoint(e,n[0],n[1],0,t);const u=s(g("polygon",o,null)),d=r.execute(u,c,null);if(!d)return void this._writePoint(e,n[0],n[1],0,t);const P=p(new _(d.toFlatGeometry())),v=y.fromOptimized(P,"esriGeometryPolygon",1),b=x(v)??n;this._writePoint(e,b[0],b[1],0,t)}_writePoint(e,t,i,r,s){if(t<0||t>w||i<0||i>w)return;const o=this._getShaping();if(!o)return;const n=s.getDisplayId(),a=this.evaluatedMeshParams.labelClassId,l=O(this.evaluatedMeshParams.layerId,s.getObjectId(),r),c=T(s.getObjectId(),a,r),[h,m]=this._getMetricDir(),u=this.evaluatedMeshParams.scaleInfo?.maxScale??0,d=this.evaluatedMeshParams.scaleInfo?.minScale??0,f=this._getPointReferenceBounds()||{offsetX:0,offsetY:0,size:0};e.metricStart(new B(n,a,l,c,t,i,h,m,u,d,f)),this._writeGlyphs(e,n,t,i,o,0,f,void 0,!1),e.metricBoxWrite(o.boundsT),e.metricEnd()}_getPointReferenceBounds(){if(!this._references)return null;for(const e of this._references){const t=e.getBoundsInfo();if(t)return t}return null}_writeLines(e,t){const{scaleInfo:i,verticalAlignment:r}=this.evaluatedMeshParams,s=this.evaluatedMeshParams.repeatLabelDistance||128,o=this._getShaping("middle");if(!o)return;const n=(e,t,i,r)=>this._placeSubdivGlyphs(e,t,i,r),a=(o.bounds.width+s)/(1<<F);this._current={out:e,id:t.getDisplayId(),objId:t.getObjectId(),shaping:o,zoomRange:G(i,this.getTileInfo()),referenceBounds:this._getPointReferenceBounds()||{offsetX:0,offsetY:0,size:0},offsetDirection:null,pathIndex:0},this._verticalPlacement="bottom"===r?"above":"top"===r?"below":null,this._verticalPlacement?this._writeAboveAndBelowAlong(t,n,a):this._writeCenterAlong(t,n,a)}_writeAboveAndBelowAlong(e,t,i){const{repeatLabel:r}=this.evaluatedMeshParams,{shaping:s}=this._current,o=s.bounds.halfHeight,n=e.readGeometryForDisplay();if(!n)return;const a=P(n,"esriGeometryPolyline",1)??new b,l=Y(a,o),c=Y(a,-o),h=v(c,"esriGeometryPolyline",!1,!1),m=v(l,"esriGeometryPolyline",!1,!1),u=S(m.paths,s.bounds.width),d=S(h.paths,s.bounds.width);this._current.offsetDirection="above";for(let f=0;f<u.length;f++)this._current.pathIndex=f,z(u[f],i,t,!!r);this._current.offsetDirection="below";for(let f=0;f<d.length;f++)this._current.pathIndex=f,z(d[f],i,t,!!r)}_writeCenterAlong(e,t,i){const{repeatLabel:r}=this.evaluatedMeshParams,{shaping:s}=this._current,o=S(e.readLegacyGeometryForDisplay().paths,s.bounds.width);for(let n=0;n<o.length;n++)this._current.pathIndex=n,z(o[n],i,t,!!r)}_placeSubdivGlyphs(e,t,i,r){const{allowOverrun:s,labelPosition:o,repeatLabelDistance:n,layerId:a,labelClassId:l}=this.evaluatedMeshParams,{objId:c,shaping:h,pathIndex:m}=this._current,u=this._current.zoomRange[0],d=U(t),f=this._current.shaping.bounds.width/(1<<F),g=Math.sqrt(n||R)/(1<<F),p=Math.min(i,r-i),_=h.isMultiline?A:Math.log2(p/(g+f/2)),y=0===t?_:Math.min(d,_),x=Math.max(u,this._zoomLevel+F-y),P=this._zoomLevel-x,v=h.bounds.width/2*2**P,b=Z(a,c,m,t,this._zoomLevel),M=W(c,m,t,this._zoomLevel,l);this._current.shaping.isMultiline?0===t&&this._placeStraight(e,x,b,M):s&&P<0?this._placeStraightAlong(e,u,b,M):"parallel"===o?this._placeStraightAlong(e,x,b,M):"curved"===o&&this._placeCurved(e,x,v,b,M)}_placeStraight(e,t,i,r){const{out:s,id:o,shaping:n,referenceBounds:a}=this._current,{x:l,y:c}=e;s.metricStart(this._createLineLabelMetric(o,i,r,l,c)),s.metricBoxWrite(n.boundsT);const h=e.angle*(180/Math.PI)%360,m=(e.angle*(180/Math.PI)+180)%360;if(!this._verticalPlacement||this._verticalPlacement===this._current.offsetDirection){const e={clipAngle:h,mapAligned:!0,isLineLabel:!0,minZoom:t};this._writeGlyphs(s,o,l,c,n,0,a,e,!1)}if(!this._verticalPlacement||this._verticalPlacement!==this._current.offsetDirection){const e={clipAngle:m,mapAligned:!0,isLineLabel:!0,minZoom:t};this._writeGlyphs(s,o,l,c,n,0,a,e,!1)}s.metricEnd()}_placeCurved(e,t,i,r,s){const{out:o,id:n}=this._current;o.metricStart(this._createLineLabelMetric(n,r,s,e.x,e.y));const a=e.clone(),l=e.angle*(180/Math.PI)%360,c=(e.angle*(180/Math.PI)+180)%360;this._verticalPlacement&&this._verticalPlacement!==this._current.offsetDirection||(this._placeFirst(a,t,1,l),this._placeBack(e,a,t,i,1,l),this._placeForward(e,a,t,i,1,l)),this._verticalPlacement&&this._verticalPlacement===this._current.offsetDirection||(this._placeFirst(a,t,0,c),this._placeBack(e,a,t,i,0,c),this._placeForward(e,a,t,i,0,c)),o.metricEnd()}_placeStraightAlong(e,i,n,a){const{out:l,id:c,shaping:h,zoomRange:m,referenceBounds:d}=this._current,{boxBorderLineColor:f,boxBackgroundColor:g}=this.evaluatedMeshParams,p=e.clone(),_=e.angle*(180/Math.PI)%360,y=(e.angle*(180/Math.PI)+180)%360,x=h.glyphs.length>0&&!(!f&&!g);if(l.metricStart(this._createLineLabelMetric(c,n,a,e.x,e.y)),x){const n=Math.max(i,m[0],0),a=Math.min(A,m[1]),f=r(o(),-e.angle),g={minZoom:n,maxZoom:a,clipAngle:_,mapAligned:!0,isLineLabel:!0},p=t(this.evaluatedMeshParams.offsetX),x=t(this.evaluatedMeshParams.offsetY);if(!this._verticalPlacement||this._verticalPlacement===this._current.offsetDirection){const t=u(p,-1*x),[i,r]=h.shapeBackground(s(o(),f,t));l.recordStart(this.instanceId,this.attributeLayout,h.glyphs[0].textureBinding),this._writeTextBox(l,c,e.x,e.y,r,d,g),l.recordEnd()}if(!this._verticalPlacement||this._verticalPlacement!==this._current.offsetDirection){const t=u(p,x),[i,r]=h.shapeBackground(s(o(),f,t));g.clipAngle=y,l.recordStart(this.instanceId,this.attributeLayout,h.glyphs[0].textureBinding),this._writeTextBox(l,c,e.x,e.y,r,d,g),l.recordEnd()}}this._verticalPlacement&&this._verticalPlacement!==this._current.offsetDirection||this._placeFirst(p,i,1,_,!0),this._verticalPlacement&&this._verticalPlacement===this._current.offsetDirection||this._placeFirst(p,i,0,y,!0),l.metricEnd()}_placeBack(e,t,i,r,s,o){const n=e.clone();let a=e.backwardLength+k;for(;n.prev()&&!(a>=r);)this._placeOnSegment(n,t,a,i,-1,s,o),a+=n.length+k}_placeForward(e,t,i,r,s,o){const n=e.clone();let a=e.remainingLength+k;for(;n.next()&&!(a>=r);)this._placeOnSegment(n,t,a,i,1,s,o),a+=n.length+k}_placeFirst(e,t,i,r,s=!1){const{out:o,id:n,shaping:a,zoomRange:l,referenceBounds:c}=this._current,h=a.glyphs,m=this._getBoundsOffset(e.angle);for(const u of h){const h=u.x>a.bounds.x?i:1-i,d=h*e.remainingLength+(1-h)*e.backwardLength,f=Math.abs(u.x+u.width/2-a.bounds.x),g=Math.max(0,this._zoomLevel+Math.log2(f/(d+k))),p=Math.max(t,s?0:g);u.angle=e.angle+(1-i)*Math.PI;const _=[Math.max(l[0],p),Math.min(l[1],A)];this._writeLineGlyph(o,n,e.x,e.y,u,_,r,c),this._writeLineGlyphBox(o,u,i,_,m)}}_placeOnSegment(e,t,i,r,s,o,n){const{out:a,id:l,shaping:c,referenceBounds:h}=this._current,m=c.glyphs,u=e.dx/e.length,d=e.dy/e.length,f={x:e.x+i*-s*u,y:e.y+i*-s*d},g=this._getBoundsOffset(e.angle);for(const p of m){const t=p.x>c.bounds.x?o:1-o;if(!(t&&1===s||!t&&-1===s))continue;const m=Math.abs(p.x+p.width/2-c.bounds.x),u=Math.max(0,this._zoomLevel+Math.log2(m/i)-.1),d=Math.max(r,this._zoomLevel+Math.log2(m/(i+e.length+k)));if(0===u)continue;p.angle=e.angle+(1-o)*Math.PI;const _=[d,u];this._writeLineGlyph(a,l,f.x,f.y,p,_,n,h),this._writeLineGlyphBox(a,p,o,_,g)}}_getBoundsOffset(e){const i=t(this.evaluatedMeshParams.offsetX),s=t(this.evaluatedMeshParams.offsetY),a=u(i,s),l=r(o(),-e);return n(a,a,l)}_writeLineGlyph(e,t,i,r,s,o,n,a){if(i<0||i>w||r<0||r>w)return;e.recordStart(this.instanceId,this.attributeLayout,s.textureBinding);const{texcoords:l,offsets:c}=s,{fontSize:h,haloSize:m,outlineSize:u}=this._textMeshTransformProps,{sdfSize:d,sdfRadius:f}=this.evaluatedMeshParams.glyphs;this._writeQuad(e,t,i,r,{sdfSize:d,sdfRadius:f,texcoords:l,offsets:c,fontSize:h,haloSize:m,outlineSize:u,color:j(this.evaluatedMeshParams.color),isBackground:!1,referenceBounds:a,minZoom:Math.max(this._current.zoomRange[0],o[0]),maxZoom:Math.min(this._current.zoomRange[1],o[1]),clipAngle:n,mapAligned:!0,isLineLabel:!0}),e.recordEnd()}_writeLineGlyphBox(e,t,i,r,s){if((i||this._current.offsetDirection)&&this._isVisible(r)&&t.bounds){const i=t.bounds,r=new I(i.x+s[0],i.y+s[1],i.width,i.height);e.metricBoxWrite(r)}}_packedZoom(e){return Math.floor(e*L)/L}_isVisible(e){let t=Math.max(this._current.zoomRange[0],e[0]),i=Math.min(this._current.zoomRange[1],e[1]);t=this._packedZoom(t),i=this._packedZoom(i);const r=this._packedZoom(this._zoomLevel);return t<=r&&r<=i}}function Y(e,t){const i=new b,{coords:r,lengths:s}=e,o=d(),n=d(),u=d(),f=d(),g=d(),p=d(),_=2;let y=0;for(let d=0;d<s.length;d++){const e=s[d];for(let s=0;s<e;s++){const d=_*(s+y-1),x=_*(s+y),P=_*(s+y+1);s>0?a(o,r[d],r[d+1]):a(o,0,0),a(n,r[x],r[x+1]),s<e-1?a(u,r[P],r[P+1]):a(u,0,0),0===s?a(f,0,0):(l(f,n,o),c(f,f),a(f,f[1],-f[0])),s===e-1?a(g,0,0):(l(g,u,n),c(g,g),a(g,g[1],-g[0])),h(p,f,g),c(p,p);const v=p[0]*g[0]+p[1]*g[1];0!==v&&m(p,p,v),m(p,p,t),i.coords.push(n[0]+p[0],n[1]+p[1])}i.lengths.push(e),y+=e}return i}export{X as LabelMeshWriter,O as labelIdHash,T as labelMetricHash,Z as lineLabelIdHash,W as lineLabelMetricHash};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{pt2px as t}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{CIMSymbolUnits as i}from"../../../../../../../symbols/cim/types.js";import{spritePadding as r,gradientTextureExternalPadding as s}from"../../../definitions.js";import{packBitset as o}from"../fill/meshWriterUtils.js";import{bitset as n}from"./gradientStrokeConstants.js";import{LineMeshWriter as a,LineVertexSpec as c}from"./LineMeshWriter.js";import{DataType as p}from"../../../../../../webgl/enums.js";const m={createComputedParams:t=>t,optionalAttributes:c.optionalAttributes,attributes:{...c.attributes,bitset:{type:p.UNSIGNED_BYTE,count:1,pack:({gradientMethod:t,gradientSizeUnits:e,gradientType:r})=>o([[n.isAlongLine,"alongline"===t.toLowerCase()],[n.isAbsoluteSize,e===i.Absolute],[n.isDiscrete,"discrete"===r.toLowerCase()]])},tlbr:{type:p.UNSIGNED_SHORT,count:4,pack:({sprite:t})=>{const{rect:e,width:i,height:o}=t,n=e.x+r+s,a=e.y+r;return[n,a,n+i-2*s,a+o]}},accumulatedDistance:{type:p.HALF_FLOAT,count:1,packTessellation:({distance:t,pathLength:e,distanceOffset:i})=>(i+t)/e},gradientSize:{type:p.HALF_FLOAT,count:1,pack:({gradientSize:e,gradientSizeUnits:r})=>r===i.Relative?e/100:t(e)},totalLength:{type:p.HALF_FLOAT,count:1,packTessellation:({pathLength:t})=>t},segmentDirection:{type:p.BYTE,count:2,packPrecisionFactor:16,packTessellation:({directionX:t,directionY:e})=>[t,e]}}};class l extends a{get _preventEffectClipping(){return!0}constructor(t,e,i,r){super(t,e,i,r),this.vertexSpec=m,this._tessellationOptions.textured=!0}_write(t,i,r){const s=r??e.fromFeatureSetReaderCIM(i);if(!s)return;const{sprite:o}=this.evaluatedMeshParams;this._writeGeometry(t,i,s,o?.textureBinding)}}export{l as GradientStrokeMeshWriter,m as GradientStrokeVertexSpec};
2
+ import{pt2px as t}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{CIMSymbolUnits as i}from"../../../../../../../symbols/cim/types.js";import{spritePadding as r,gradientTextureExternalPadding as s}from"../../../definitions.js";import{packBitset as o}from"../fill/meshWriterUtils.js";import{bitset as n}from"./gradientStrokeConstants.js";import{LineMeshWriter as a,LineVertexSpec as c}from"./LineMeshWriter.js";import{DataType as p}from"../../../../../../webgl/enums.js";const m={createComputedParams:t=>t,optionalAttributes:c.optionalAttributes,attributes:{...c.attributes,bitset:{type:p.UNSIGNED_BYTE,count:1,pack:({gradientMethod:t,gradientSizeUnits:e,gradientType:r})=>o([[n.isAlongLine,"alongline"===t.toLowerCase()],[n.isAbsoluteSize,e===i.Absolute],[n.isDiscrete,"discrete"===r.toLowerCase()]])},tlbr:{type:p.UNSIGNED_SHORT,count:4,pack:({sprite:t})=>{const{rect:e,width:i,height:o}=t,n=e.x+r+s,a=e.y+r;return[n,a,n+i-2*s,a+o]}},accumulatedDistance:{type:p.HALF_FLOAT,count:1,packTessellation:({distance:t,pathLength:e,distanceOffset:i})=>(i+t)/e},gradientSize:{type:p.HALF_FLOAT,count:1,pack:({gradientSize:e,gradientSizeUnits:r})=>r===i.Relative?e/100:t(e)},totalLength:{type:p.HALF_FLOAT,count:1,packTessellation:({pathLength:t})=>t},segmentDirection:{type:p.BYTE,count:2,packPrecisionFactor:16,packTessellation:({directionX:t,directionY:e})=>[t,e]}}};class l extends a{get _preventEffectClipping(){return!0}constructor(t,e,i,r){super(t,e,i,r),this.vertexSpec=m,this._tessellationOptions.textured=!0}_write(t,{target:i,effectGeometry:r}){const s=r??e.fromFeatureSetReaderCIM(i);if(!s)return;const{sprite:o}=this.evaluatedMeshParams;this._writeGeometry(t,i,s,o?.textureBinding)}}export{l as GradientStrokeMeshWriter,m as GradientStrokeVertexSpec};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{pt2px as t}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{minMaxZoomPrecisionFactor as s,thinLineHalfWidthThreshold as i}from"../../../definitions.js";import{LineTessellation as r}from"../../../TurboLine.js";import{clipLinesMarshall as o}from"../../../mesh/templates/templateUtils.js";import{processLineCapInput as n,processLineJoinInput as a,packRounded as c,processColorInput as h,getMinMaxZoom as l}from"../fill/meshWriterUtils.js";import{MeshWriter as m}from"../mesh/MeshWriter.js";import{getLineClippingMargin as u}from"../mesh/utils.js";import{DataType as p}from"../../../../../../webgl/enums.js";class d{constructor(){this.extrusionOffsetX=0,this.extrusionOffsetY=0,this.normalX=0,this.normalY=0,this.directionX=0,this.directionY=0,this.distance=0,this.pathLength=0,this.distanceOffset=0,this.lineLength=0}}const f={createComputedParams:t=>t,optionalAttributes:{zoomRange:{type:p.SHORT,count:2,packPrecisionFactor:s,pack:({scaleInfo:t},{tileInfo:e})=>l(t,e)}},attributes:{id:{type:p.UNSIGNED_BYTE,count:3,pack:"id"},pos:{type:p.SHORT,count:2,pack:"position",packPrecisionFactor:10},bitset:{type:p.UNSIGNED_BYTE,count:1},color:{type:p.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:t})=>h(t)},offset:{type:p.BYTE,count:2,packPrecisionFactor:16,packTessellation:({extrusionOffsetX:t,extrusionOffsetY:e})=>[c(t,16),c(e,16)]},normal:{type:p.BYTE,count:2,packPrecisionFactor:16,packTessellation:({normalX:t,normalY:e})=>[c(t,16),c(e,16)]},halfWidth:{type:p.HALF_FLOAT,count:1,pack:({width:e})=>t(.5*e)},referenceHalfWidth:{type:p.HALF_FLOAT,count:1,pack:({referenceWidth:e})=>t(.5*e)}}};class _{constructor(){this.id=0,this.bitset=0,this.indexCount=0,this.vertexCount=0,this.vertexFrom=0,this.vertexBounds=0,this.pathLength=0,this.distanceOffset=0}}const x=65535;class T extends m{constructor(t,e,s,i){super(t,e,s,i),this.vertexSpec=f,this._currentWrite=new _,this._tessellationOptions={halfWidth:0,pixelCoordRatio:1,offset:0,wrapDistance:x,textured:!1},this._tessParams=new d,this._initializeTessellator()}writeLineVertices(t,e,s){const i=this._getLines(e);null!=i&&this._writeVertices(t,s,i)}_initializeTessellator(){this._lineTessellator=new r(this._writeTesselatedVertex.bind(this),this._writeTriangle.bind(this),!0)}_write(t,s,i){const r=i??e.fromFeatureSetReaderCIM(s);r&&this._writeGeometry(t,s,r)}_writeGeometry(t,e,s,i){t.recordStart(this.instanceId,this.attributeLayout,i),this.writeLineVertices(t,s,e),t.recordEnd()}_getLines(t){return o(t,u(this.evaluatedMeshParams))}_writeVertices(e,s,r){const{_currentWrite:o,_tessellationOptions:c,evaluatedMeshParams:h}=this,{width:l,capType:m,joinType:u,miterLimit:p,hasSizeVV:d}=h,f=t(.5*l);c.halfWidth=f,c.capType=n(m),c.joinType=a(u),c.miterLimit=p;const _=!d;o.out=e,o.id=s.getDisplayId(),o.vertexCount=0,o.indexCount=0,o.vertexFrom=e.vertexCount(),o.vertexBounds=_&&f<i?0:1;for(const{line:t,start:i,pathLength:n}of r)c.initialDistance=i%x,o.pathLength=n,o.distanceOffset=Math.floor(i/x)*x,this._lineTessellator.tessellate(t,c,_)}_writeTesselatedVertex(t,e,s,i,r,o,n,a,c,h,l){const{out:m,id:u,vertexBounds:p,pathLength:d,distanceOffset:f}=this._currentWrite;return this.hasEffects&&m.recordBounds(t,e,p,p),this._tessParams.extrusionOffsetX=n,this._tessParams.extrusionOffsetY=a,this._tessParams.normalX=c,this._tessParams.normalY=h,this._tessParams.directionX=r,this._tessParams.directionY=o,this._tessParams.distance=l,this._tessParams.pathLength=d,this._tessParams.distanceOffset=f,this._writeVertex(m,u,t,e,this._tessParams),this._currentWrite.vertexFrom+this._currentWrite.vertexCount++}_writeTriangle(t,e,s){const{out:i}=this._currentWrite;i.indexEnsureSize(3),i.indexWrite(t),i.indexWrite(e),i.indexWrite(s),this._currentWrite.indexCount+=3}}export{T as LineMeshWriter,d as LineTessellationParams,f as LineVertexSpec};
2
+ import{pt2px as t}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{minMaxZoomPrecisionFactor as s,thinLineHalfWidthThreshold as i}from"../../../definitions.js";import{LineTessellation as r}from"../../../TurboLine.js";import{clipLinesMarshall as o}from"../../../mesh/templates/templateUtils.js";import{processLineCapInput as n,processLineJoinInput as a,packRounded as c,processColorInput as h,getMinMaxZoom as l}from"../fill/meshWriterUtils.js";import{MeshWriter as m}from"../mesh/MeshWriter.js";import{getLineClippingMargin as u}from"../mesh/utils.js";import{DataType as p}from"../../../../../../webgl/enums.js";class d{constructor(){this.extrusionOffsetX=0,this.extrusionOffsetY=0,this.normalX=0,this.normalY=0,this.directionX=0,this.directionY=0,this.distance=0,this.pathLength=0,this.distanceOffset=0,this.lineLength=0}}const f={createComputedParams:t=>t,optionalAttributes:{zoomRange:{type:p.SHORT,count:2,packPrecisionFactor:s,pack:({scaleInfo:t},{tileInfo:e})=>l(t,e)}},attributes:{id:{type:p.UNSIGNED_BYTE,count:3,pack:"id"},pos:{type:p.SHORT,count:2,pack:"position",packPrecisionFactor:10},bitset:{type:p.UNSIGNED_BYTE,count:1},color:{type:p.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:t})=>h(t)},offset:{type:p.BYTE,count:2,packPrecisionFactor:16,packTessellation:({extrusionOffsetX:t,extrusionOffsetY:e})=>[c(t,16),c(e,16)]},normal:{type:p.BYTE,count:2,packPrecisionFactor:16,packTessellation:({normalX:t,normalY:e})=>[c(t,16),c(e,16)]},halfWidth:{type:p.HALF_FLOAT,count:1,pack:({width:e})=>t(.5*e)},referenceHalfWidth:{type:p.HALF_FLOAT,count:1,pack:({referenceWidth:e})=>t(.5*e)}}};class _{constructor(){this.id=0,this.bitset=0,this.indexCount=0,this.vertexCount=0,this.vertexFrom=0,this.vertexBounds=0,this.pathLength=0,this.distanceOffset=0}}const x=65535;class T extends m{constructor(t,e,s,i){super(t,e,s,i),this.vertexSpec=f,this._currentWrite=new _,this._tessellationOptions={halfWidth:0,pixelCoordRatio:1,offset:0,wrapDistance:x,textured:!1},this._tessParams=new d,this._initializeTessellator()}writeLineVertices(t,e,s){const i=this._getLines(e);null!=i&&this._writeVertices(t,s,i)}_initializeTessellator(){this._lineTessellator=new r(this._writeTesselatedVertex.bind(this),this._writeTriangle.bind(this),!0)}_write(t,{target:s,effectGeometry:i}){const r=i??e.fromFeatureSetReaderCIM(s);r&&this._writeGeometry(t,s,r)}_writeGeometry(t,e,s,i){t.recordStart(this.instanceId,this.attributeLayout,i),this.writeLineVertices(t,s,e),t.recordEnd()}_getLines(t){return o(t,u(this.evaluatedMeshParams))}_writeVertices(e,s,r){const{_currentWrite:o,_tessellationOptions:c,evaluatedMeshParams:h}=this,{width:l,capType:m,joinType:u,miterLimit:p,hasSizeVV:d}=h,f=t(.5*l);c.halfWidth=f,c.capType=n(m),c.joinType=a(u),c.miterLimit=p;const _=!d;o.out=e,o.id=s.getDisplayId(),o.vertexCount=0,o.indexCount=0,o.vertexFrom=e.vertexCount(),o.vertexBounds=_&&f<i?0:1;for(const{line:t,start:i,pathLength:n}of r)c.initialDistance=i%x,o.pathLength=n,o.distanceOffset=Math.floor(i/x)*x,this._lineTessellator.tessellate(t,c,_)}_writeTesselatedVertex(t,e,s,i,r,o,n,a,c,h,l){const{out:m,id:u,vertexBounds:p,pathLength:d,distanceOffset:f}=this._currentWrite;return this.hasEffects&&m.recordBounds(t,e,p,p),this._tessParams.extrusionOffsetX=n,this._tessParams.extrusionOffsetY=a,this._tessParams.normalX=c,this._tessParams.normalY=h,this._tessParams.directionX=r,this._tessParams.directionY=o,this._tessParams.distance=l,this._tessParams.pathLength=d,this._tessParams.distanceOffset=f,this._writeVertex(m,u,t,e,this._tessParams),this._currentWrite.vertexFrom+this._currentWrite.vertexCount++}_writeTriangle(t,e,s){const{out:i}=this._currentWrite;i.indexEnsureSize(3),i.indexWrite(t),i.indexWrite(e),i.indexWrite(s),this._currentWrite.indexCount+=3}}export{T as LineMeshWriter,d as LineTessellationParams,f as LineVertexSpec};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{pt2px as t}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{spritePadding as r}from"../../../definitions.js";import{packBitset as s}from"../fill/meshWriterUtils.js";import{LineMeshWriter as o,LineVertexSpec as i}from"./LineMeshWriter.js";import{bitsetGenericConsiderAlphaOnly as a,bitsetLineScaleDash as n,bitsetLineIsSdf as c}from"../shaders/constants.js";import{DataType as p}from"../../../../../../webgl/enums.js";const u={createComputedParams:t=>t,optionalAttributes:i.optionalAttributes,attributes:{...i.attributes,bitset:{type:p.UNSIGNED_BYTE,count:1,pack:({shouldSampleAlphaOnly:t,shouldScaleDash:e,isSDF:r})=>s([[a,t],[n,e],[c,r]])},tlbr:{type:p.UNSIGNED_SHORT,count:4,pack:({sprite:t})=>{const{rect:e,width:s,height:o}=t,i=e.x+r,a=e.y+r;return[i,a,i+s,a+o]}},accumulatedDistance:{type:p.UNSIGNED_SHORT,count:1,packTessellation:({distance:t})=>t},segmentDirection:{type:p.BYTE,count:2,packPrecisionFactor:16,packTessellation:({directionX:t,directionY:e})=>[t,e]},offsetAlongLine:{type:p.HALF_FLOAT,count:1,pack:({offsetAlongLine:e})=>t(e)},capType:{type:p.UNSIGNED_BYTE,count:1,pack:({capType:t})=>{switch(t){case"Butt":case"butt":default:return 0;case"Square":case"square":return 1;case"Round":case"round":return 2}}}}};class l extends o{constructor(t,e,r,s){super(t,e,r,s),this.vertexSpec=u,this._tessellationOptions.textured=!0}_write(t,r,s){const o=s??e.fromFeatureSetReaderCIM(r);if(!o)return;const{sprite:i}=this.evaluatedMeshParams;this._writeGeometry(t,r,o,i?.textureBinding)}}export{l as TexturedLineMeshWriter,u as texturedLineVertexSpec};
2
+ import{pt2px as t}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{spritePadding as r}from"../../../definitions.js";import{packBitset as s}from"../fill/meshWriterUtils.js";import{LineMeshWriter as o,LineVertexSpec as i}from"./LineMeshWriter.js";import{bitsetGenericConsiderAlphaOnly as a,bitsetLineScaleDash as c,bitsetLineIsSdf as n}from"../shaders/constants.js";import{DataType as p}from"../../../../../../webgl/enums.js";const u={createComputedParams:t=>t,optionalAttributes:i.optionalAttributes,attributes:{...i.attributes,bitset:{type:p.UNSIGNED_BYTE,count:1,pack:({shouldSampleAlphaOnly:t,shouldScaleDash:e,isSDF:r})=>s([[a,t],[c,e],[n,r]])},tlbr:{type:p.UNSIGNED_SHORT,count:4,pack:({sprite:t})=>{const{rect:e,width:s,height:o}=t,i=e.x+r,a=e.y+r;return[i,a,i+s,a+o]}},accumulatedDistance:{type:p.UNSIGNED_SHORT,count:1,packTessellation:({distance:t})=>t},segmentDirection:{type:p.BYTE,count:2,packPrecisionFactor:16,packTessellation:({directionX:t,directionY:e})=>[t,e]},offsetAlongLine:{type:p.HALF_FLOAT,count:1,pack:({offsetAlongLine:e})=>t(e)},capType:{type:p.UNSIGNED_BYTE,count:1,pack:({capType:t})=>{switch(t){case"Butt":case"butt":default:return 0;case"Square":case"square":return 1;case"Round":case"round":return 2}}}}};class m extends o{constructor(t,e,r,s){super(t,e,r,s),this.vertexSpec=u,this._tessellationOptions.textured=!0}_write(t,{target:r,effectGeometry:s}){const o=s??e.fromFeatureSetReaderCIM(r);if(!o)return;const{sprite:i}=this.evaluatedMeshParams;this._writeGeometry(t,r,o,i?.textureBinding)}}export{m as TexturedLineMeshWriter,u as texturedLineVertexSpec};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{identity as t,translate as r,rotate as o}from"../../../../../../../core/libs/gl-matrix-2/math/mat2d.js";import{create as s}from"../../../../../../../core/libs/gl-matrix-2/factories/mat2df32.js";import{transformMat2d as a}from"../../../../../../../core/libs/gl-matrix-2/math/vec2.js";import{GeometryCursor as i}from"../../../../../../../geometry/GeometryCursor.js";import{clipCursorToTileExtent as n}from"../../../../../../../symbols/cim/CIMEffects.js";import{maxTileCoordValue as c}from"../../../../../../../symbols/cim/constants.js";import{CIMMarkerPlacementHelper as l}from"../../../../../../../symbols/cim/placements/CIMMarkerPlacementHelper.js";import{minMaxZoomPrecisionFactor as m}from"../../../definitions.js";import{packByteSqrt as u,processColorInput as d,getMinMaxZoom as p,getBitMask as h}from"../fill/meshWriterUtils.js";import{ComputedMarkerParams as f}from"./ComputedMarkerParams.js";import{MarkerConstants as y}from"./markerConstants.js";import{MeshWriter as M}from"../mesh/MeshWriter.js";import{DataType as x}from"../../../../../../webgl/enums.js";const P=3.14159265359/180,g=128/Math.PI;function k(e,t){return e%=t,Math.abs(e>=0?e:e+t)}function b(e){return k(e*g,256)}function v(e,a,i,n,c=!1){const l=s(),m=c?1:-1;return t(l),(a||i)&&r(l,l,[a,-i]),n&&o(l,l,m*P*-n),l}const S={createComputedParams:e=>f.from(e),optionalAttributes:{zoomRange:{type:x.SHORT,count:2,packPrecisionFactor:m,pack:({scaleInfo:e},{tileInfo:t})=>p(e,t)}},attributes:{pos:{type:x.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:x.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:x.UNSIGNED_BYTE,count:1,pack:({sprite:e,alignment:t,scaleSymbolsProportionally:r,overrideOutlineColor:o,colorLocked:s})=>{let a=0;return e.sdf&&(a|=h(y.bitset.isSDF)),1===t&&(a|=h(y.bitset.isMapAligned)),r&&(a|=h(y.bitset.scaleSymbolsProportionally)),o&&(a|=h(y.bitset.overrideOutlineColor)),s&&(a|=h(y.bitset.colorLocked)),a}},offset:{type:x.HALF_FLOAT,count:2,packAlternating:{count:4,pack:({angle:e,computedWidth:t,computedHeight:r,anchorX:o,anchorY:s,offsetX:i,offsetY:n,rotateClockwise:c})=>{const l=v(0,i,n,-e,c),m=-(.5+o)*t,u=-(.5-s)*r,d=[m,u],p=[m+t,u],h=[m,u+r],f=[m+t,u+r];return a(d,d,l),a(p,p,l),a(h,h,l),a(f,f,l),[d,p,h,f]}}},textureUV:{type:x.SHORT,count:2,packPrecisionFactor:4,packAlternating:{count:4,pack:({texXmax:e,texXmin:t,texYmax:r,texYmin:o})=>[[t,o],[e,o],[t,r],[e,r]]}},color:{type:x.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:e})=>d(e)},outlineColor:{type:x.UNSIGNED_BYTE,count:4,normalized:!0,pack:({outlineColor:e})=>d(e)},sizing:{type:x.UNSIGNED_BYTE,count:4,pack:({rawWidth:e,rawHeight:t,outlineSize:r,referenceSize:o})=>{const s=Math.max(e,t);return[u(s,128),u(r,128),u(o,128),0]}},placementAngle:{type:x.UNSIGNED_BYTE,count:1,packTessellation:({placementAngle:e})=>b(e)},sdfDecodeCoeff:{type:x.UNSIGNED_SHORT,count:1,packPrecisionFactor:64,pack:({sdfDecodeCoeff:e})=>e}}};class I extends M{constructor(){super(...arguments),this.vertexSpec=S}getBoundsInfo(){return this.evaluatedMeshParams.boundsInfo}_write(e,t,r){const o=this.evaluatedMeshParams.sprite?.textureBinding,s=t.getDisplayId();e.recordStart(this.instanceId,this.attributeLayout,o);const a=this.evaluatedMeshParams.minPixelBuffer,i=Math.max(this.evaluatedMeshParams.computedWidth,a),l=Math.max(this.evaluatedMeshParams.computedHeight,a),m=-this.evaluatedMeshParams.anchorX*this.evaluatedMeshParams.computedWidth,u=this.evaluatedMeshParams.anchorY*this.evaluatedMeshParams.computedHeight,d=this.evaluatedMeshParams.offsetX+m,p=-this.evaluatedMeshParams.offsetY+u;if(null!=this.evaluatedMeshParams.placement){let o=null;if(null!=r){const e=Math.max(this.evaluatedMeshParams.computedWidth,this.evaluatedMeshParams.computedHeight);if(o=n(r,2*e,!1),null===o)return}this._writePlacedMarkers(e,t,o,i,l)}else if(r?.nextPath()){r.nextPoint();const t=r.x,o=r.y;e.recordBounds(t+d,o+p,i,l),this._writeQuad(e,s,t,o)}else if("esriGeometryPolygon"===t.geometryType){const r=t.readCentroidForDisplay();if(!r)return;const[o,a]=r.coords;e.recordBounds(o+d,a+p,i,l),this._writeQuad(e,s,o,a)}else if("esriGeometryPoint"===t.geometryType){const r=t.readXForDisplay(),o=t.readYForDisplay();e.recordBounds(r+d,o+p,i,l),this._writeQuad(e,s,r,o)}else{const r=t.readGeometryForDisplay();r?.forEachVertex((t,r)=>{e.recordBounds(t+d,r+p,i,l),Math.abs(t)>c||Math.abs(r)>c||this._writeQuad(e,s,t,r)})}e.recordEnd()}_writePlacedMarkers(t,r,o,s,a){const n=o??i.fromFeatureSetReaderCIM(r);if(!n)return;const m=-1,u=l.getPlacement(n,m,this.evaluatedMeshParams.placement,e(1),t.id);if(!u)return;const d=r.getDisplayId();let p=u.next();const h=this.evaluatedMeshParams.offsetX,f=-this.evaluatedMeshParams.offsetY;for(;null!=p;){const e=p.tx,r=-p.ty;if(Math.abs(e)>c||Math.abs(r)>c){p=u.next();continue}const o=-p.getAngle();t.recordBounds(e+h,r+f,s,a),this._writeQuad(t,d,e,r,o),p=u.next()}}_writeQuad(e,t,r,o,s){const a=e.vertexCount(),i=null==s?null:{placementAngle:s};this._writeVertex(e,t,r,o,i),e.indexWrite(a+0),e.indexWrite(a+1),e.indexWrite(a+2),e.indexWrite(a+1),e.indexWrite(a+3),e.indexWrite(a+2)}}export{I as MarkerMeshWriter,S as MarkerVertexSpec};
2
+ import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{identity as t,translate as r,rotate as o}from"../../../../../../../core/libs/gl-matrix-2/math/mat2d.js";import{create as s}from"../../../../../../../core/libs/gl-matrix-2/factories/mat2df32.js";import{transformMat2d as a}from"../../../../../../../core/libs/gl-matrix-2/math/vec2.js";import{GeometryCursor as i}from"../../../../../../../geometry/GeometryCursor.js";import{clipCursorToTileExtent as n}from"../../../../../../../symbols/cim/CIMEffects.js";import{maxTileCoordValue as c}from"../../../../../../../symbols/cim/constants.js";import{CIMMarkerPlacementHelper as l}from"../../../../../../../symbols/cim/placements/CIMMarkerPlacementHelper.js";import{minMaxZoomPrecisionFactor as m}from"../../../definitions.js";import{packByteSqrt as u,processColorInput as d,getMinMaxZoom as p,getBitMask as h}from"../fill/meshWriterUtils.js";import{ComputedMarkerParams as f}from"./ComputedMarkerParams.js";import{MarkerConstants as y}from"./markerConstants.js";import{MeshWriter as M}from"../mesh/MeshWriter.js";import{DataType as x}from"../../../../../../webgl/enums.js";const P=3.14159265359/180,g=128/Math.PI;function k(e,t){return e%=t,Math.abs(e>=0?e:e+t)}function b(e){return k(e*g,256)}function v(e,a,i,n,c=!1){const l=s(),m=c?1:-1;return t(l),(a||i)&&r(l,l,[a,-i]),n&&o(l,l,m*P*-n),l}const S={createComputedParams:e=>f.from(e),optionalAttributes:{zoomRange:{type:x.SHORT,count:2,packPrecisionFactor:m,pack:({scaleInfo:e},{tileInfo:t})=>p(e,t)}},attributes:{pos:{type:x.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:x.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:x.UNSIGNED_BYTE,count:1,pack:({sprite:e,alignment:t,scaleSymbolsProportionally:r,overrideOutlineColor:o,colorLocked:s})=>{let a=0;return e.sdf&&(a|=h(y.bitset.isSDF)),1===t&&(a|=h(y.bitset.isMapAligned)),r&&(a|=h(y.bitset.scaleSymbolsProportionally)),o&&(a|=h(y.bitset.overrideOutlineColor)),s&&(a|=h(y.bitset.colorLocked)),a}},offset:{type:x.HALF_FLOAT,count:2,packAlternating:{count:4,pack:({angle:e,computedWidth:t,computedHeight:r,anchorX:o,anchorY:s,offsetX:i,offsetY:n,rotateClockwise:c})=>{const l=v(0,i,n,-e,c),m=-(.5+o)*t,u=-(.5-s)*r,d=[m,u],p=[m+t,u],h=[m,u+r],f=[m+t,u+r];return a(d,d,l),a(p,p,l),a(h,h,l),a(f,f,l),[d,p,h,f]}}},textureUV:{type:x.SHORT,count:2,packPrecisionFactor:4,packAlternating:{count:4,pack:({texXmax:e,texXmin:t,texYmax:r,texYmin:o})=>[[t,o],[e,o],[t,r],[e,r]]}},color:{type:x.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:e})=>d(e)},outlineColor:{type:x.UNSIGNED_BYTE,count:4,normalized:!0,pack:({outlineColor:e})=>d(e)},sizing:{type:x.UNSIGNED_BYTE,count:4,pack:({rawWidth:e,rawHeight:t,outlineSize:r,referenceSize:o})=>{const s=Math.max(e,t);return[u(s,128),u(r,128),u(o,128),0]}},placementAngle:{type:x.UNSIGNED_BYTE,count:1,packTessellation:({placementAngle:e})=>b(e)},sdfDecodeCoeff:{type:x.UNSIGNED_SHORT,count:1,packPrecisionFactor:64,pack:({sdfDecodeCoeff:e})=>e}}};class I extends M{constructor(){super(...arguments),this.vertexSpec=S}getBoundsInfo(){return this.evaluatedMeshParams.boundsInfo}_write(e,{target:t,effectGeometry:r}){const o=this.evaluatedMeshParams.sprite?.textureBinding,s=t.getDisplayId();e.recordStart(this.instanceId,this.attributeLayout,o);const a=this.evaluatedMeshParams.minPixelBuffer,i=Math.max(this.evaluatedMeshParams.computedWidth,a),l=Math.max(this.evaluatedMeshParams.computedHeight,a),m=-this.evaluatedMeshParams.anchorX*this.evaluatedMeshParams.computedWidth,u=this.evaluatedMeshParams.anchorY*this.evaluatedMeshParams.computedHeight,d=this.evaluatedMeshParams.offsetX+m,p=-this.evaluatedMeshParams.offsetY+u;if(null!=this.evaluatedMeshParams.placement){let o=null;if(null!=r){const e=Math.max(this.evaluatedMeshParams.computedWidth,this.evaluatedMeshParams.computedHeight);if(o=n(r,2*e,!1),null===o)return}this._writePlacedMarkers(e,t,o,i,l)}else if(r?.nextPath()){r.nextPoint();const t=r.x,o=r.y;e.recordBounds(t+d,o+p,i,l),this._writeQuad(e,s,t,o)}else if("esriGeometryPolygon"===t.geometryType){const r=t.readCentroidForDisplay();if(!r)return;const[o,a]=r.coords;e.recordBounds(o+d,a+p,i,l),this._writeQuad(e,s,o,a)}else if("esriGeometryPoint"===t.geometryType){const r=t.readXForDisplay(),o=t.readYForDisplay();e.recordBounds(r+d,o+p,i,l),this._writeQuad(e,s,r,o)}else{const r=t.readGeometryForDisplay();r?.forEachVertex((t,r)=>{e.recordBounds(t+d,r+p,i,l),Math.abs(t)>c||Math.abs(r)>c||this._writeQuad(e,s,t,r)})}e.recordEnd()}_writePlacedMarkers(t,r,o,s,a){const n=o??i.fromFeatureSetReaderCIM(r);if(!n)return;const m=-1,u=l.getPlacement(n,m,this.evaluatedMeshParams.placement,e(1),t.id);if(!u)return;const d=r.getDisplayId();let p=u.next();const h=this.evaluatedMeshParams.offsetX,f=-this.evaluatedMeshParams.offsetY;for(;null!=p;){const e=p.tx,r=-p.ty;if(Math.abs(e)>c||Math.abs(r)>c){p=u.next();continue}const o=-p.getAngle();t.recordBounds(e+h,r+f,s,a),this._writeQuad(t,d,e,r,o),p=u.next()}}_writeQuad(e,t,r,o,s){const a=e.vertexCount(),i=null==s?null:{placementAngle:s};this._writeVertex(e,t,r,o,i),e.indexWrite(a+0),e.indexWrite(a+1),e.indexWrite(a+2),e.indexWrite(a+1),e.indexWrite(a+3),e.indexWrite(a+2)}}export{I as MarkerMeshWriter,S as MarkerVertexSpec};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{loadGeometryOperatorsForEffect as t,loadGeometryOperatorsForPlacement as r}from"../../../../../../../symbols/cim/CIMEffects.js";import{EffectHelper as s}from"../../../../../../../symbols/cim/effects/EffectHelper.js";import{MeshWriterVertexPack as a}from"./MeshWriterVertexPack.js";class i{constructor(e,t,r,s){this._instanceId=e,this._evaluator=t,this._enabledOptionalAttributes=r,this._viewParams=s,this._evaluator.evaluator=e=>this.vertexSpec.createComputedParams(e)}get _vertexPack(){if(!this._cachedVertexPack){const e=a.fromVertexSpec(this.vertexSpec,this._enabledOptionalAttributes);this._evaluator.hasDynamicProperties||e.pack(this._evaluator.evaluatedMeshParams,this._viewParams),this._cachedVertexPack=e}return this._cachedVertexPack}get evaluatedMeshParams(){return this._evaluator.evaluatedMeshParams}get hasEffects(){return!!this.evaluatedMeshParams.effects}get effectInfos(){return this._evaluator.inputMeshParams.effects?.effectInfos}get placementInfo(){return this._evaluator.inputMeshParams.placement}get instanceId(){return this._instanceId}get attributeLayout(){return this._vertexPack.attributeLayout}get _preventEffectClipping(){return!1}setReferences(e){this._references=e}getBoundsInfo(){return null}getTileInfo(){return this._viewParams.tileInfo}async loadDependencies(){for(const{effect:e}of this.effectInfos||[])await t(e);this.placementInfo&&await r(this.placementInfo.placement)}enqueueRequest(e,t,r){this._evaluator.hasDynamicProperties&&this._evaluator.enqueueRequest(e,t,r)}write(e,t,r,s,a,i){this.ensurePacked(t,r,s);const n=this.evaluatedMeshParams.effects;if(!n||0===n.length)return void this._write(e,r,void 0,a,i);const c=this.getEffectCursor(e,r,n);if(!c)return;let o;for(;o=c.next();)o.invertY(),this._write(e,r,o,a,i)}ensurePacked(e,t,r){if(!this._evaluator.hasDynamicProperties)return;const s=this._evaluator.evaluateMeshParams(e,t,r);this._vertexPack.pack(s,this._viewParams)}hasArcadeDependency(e){return this._evaluator.hasArcadeDependency(e)}_writeVertex(e,t,r,s,a){const i=this.evaluatedMeshParams;this._vertexPack.writeVertex(e,t,r,s,i,a)}getEffectCursor(t,r,a){const i=r.readGeometryForDisplay()?.clone();if(!i)return;const n=e.fromOptimizedCIM(i,r.geometryType);n.invertY();const c=t.id||"";return s.executeEffects(a,n,c,this._preventEffectClipping)}}export{i as MeshWriter};
2
+ import{GeometryCursor as e}from"../../../../../../../geometry/GeometryCursor.js";import{loadGeometryOperatorsForEffect as t,loadGeometryOperatorsForPlacement as a}from"../../../../../../../symbols/cim/CIMEffects.js";import{getEffectsInflateSize as r}from"../../../../../../../symbols/cim/utils.js";import{EffectHelper as s}from"../../../../../../../symbols/cim/effects/EffectHelper.js";import{MeshWriterVertexPack as i}from"./MeshWriterVertexPack.js";const n=96/72;class c{constructor(e,t,a,r){this._instanceId=e,this._evaluator=t,this._enabledOptionalAttributes=a,this._viewParams=r,this._evaluator.evaluator=e=>this.vertexSpec.createComputedParams(e)}get _vertexPack(){if(!this._cachedVertexPack){const e=i.fromVertexSpec(this.vertexSpec,this._enabledOptionalAttributes);this._evaluator.hasDynamicProperties||e.pack(this._evaluator.evaluatedMeshParams,this._viewParams),this._cachedVertexPack=e}return this._cachedVertexPack}get evaluatedMeshParams(){return this._evaluator.evaluatedMeshParams}get hasEffects(){return!!this.evaluatedMeshParams.effects}get effectInfos(){return this._evaluator.inputMeshParams.effects?.effectInfos}get placementInfo(){return this._evaluator.inputMeshParams.placement}get instanceId(){return this._instanceId}get attributeLayout(){return this._vertexPack.attributeLayout}get _preventEffectClipping(){return!1}setReferences(e){this._references=e}getBoundsInfo(){return null}getTileInfo(){return this._viewParams.tileInfo}async loadDependencies(){for(const{effect:e}of this.effectInfos||[])await t(e);this.placementInfo&&await a(this.placementInfo.placement)}enqueueRequest(e,t,a){this._evaluator.hasDynamicProperties&&this._evaluator.enqueueRequest(e,t,a)}write(e,t,a,r,s,i){this.ensurePacked(t,a,r);const n=e.id||"",c=this.evaluatedMeshParams.effects,o=this._createEffectExecutionContext(a,r,n),f={target:a,options:r,level:s,viewExtent:i};if(!c||0===c.length)return void this._write(e,f);const u=this.getEffectCursor(a,c,o);if(!u)return;let h;for(;h=u.next();)h.invertY(),this._write(e,{...f,effectGeometry:h})}ensurePacked(e,t,a){if(!this._evaluator.hasDynamicProperties)return;const r=this._evaluator.evaluateMeshParams(e,t,a);this._vertexPack.pack(r,this._viewParams)}hasArcadeDependency(e){return this._evaluator.hasArcadeDependency(e)}_writeVertex(e,t,a,r,s){const i=this.evaluatedMeshParams;this._vertexPack.writeVertex(e,t,a,r,i,s)}_createEffectExecutionContext(e,t,a){return{geomUnitsPerPoint:n,maxInflateSize:r(this.evaluatedMeshParams.effects),scale:t.$view.scale,spatialReference:e.metadata.outSpatialReference??e.metadata.spatialReference,preventClipping:this._preventEffectClipping,tileKey:a}}getEffectCursor(t,a,r){const i=t.readGeometryForDisplay()?.clone();if(!i)return;const n=e.fromOptimizedCIM(i,t.geometryType);return n.invertY(),s.executeEffects(a,n,r)}}export{c as MeshWriter};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{getMinMaxZoom as t}from"../fill/meshWriterUtils.js";import{MeshWriter as r}from"../mesh/MeshWriter.js";import{DataType as i}from"../../../../../../webgl/enums.js";const o={createComputedParams:e=>e,optionalAttributes:{},attributes:{pos:{type:i.SHORT,count:2,packPrecisionFactor:10,pack:"position"},id:{type:i.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:i.UNSIGNED_BYTE,count:1,pack:e=>0},offset:{type:i.SHORT,count:2,packPrecisionFactor:16,packAlternating:{count:4,pack:({size:t})=>{const r=e(t),i=-r/2,o=-r/2;return[[i,o],[i+r,o],[i,o+r],[i+r,o+r]]}}},texCoords:{type:i.SHORT,count:2,packPrecisionFactor:4,packAlternating:{count:4,pack:()=>[[0,1],[1,1],[0,0],[1,0]]}},size:{type:i.UNSIGNED_BYTE,count:2,pack:({size:e})=>[e,e]},referenceSize:{type:i.UNSIGNED_BYTE,count:1,pack:({size:t})=>e(t)},zoomRange:{type:i.UNSIGNED_BYTE,count:2,pack:({scaleInfo:e},{tileInfo:r})=>t(e,r)}}};class s extends r{constructor(){super(...arguments),this.vertexSpec=o}_write(t,r){const i=r.getDisplayId(),o=this.evaluatedMeshParams.minPixelBuffer,s=Math.max(e(this.evaluatedMeshParams.size),o);let c,n;if("esriGeometryPoint"===r.geometryType)c=r.readXForDisplay(),n=r.readYForDisplay();else{const e=r.readCentroidForDisplay();if(!e)return;c=e?.coords[0],n=e?.coords[1]}t.recordStart(this.instanceId,this.attributeLayout),t.recordBounds(c,n,s,s);const a=t.vertexCount();this._writeVertex(t,i,c,n),t.indexWrite(a+0),t.indexWrite(a+1),t.indexWrite(a+2),t.indexWrite(a+1),t.indexWrite(a+3),t.indexWrite(a+2),t.recordEnd()}}export{s as PieChartMeshWriter};
2
+ import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{getMinMaxZoom as t}from"../fill/meshWriterUtils.js";import{MeshWriter as r}from"../mesh/MeshWriter.js";import{DataType as i}from"../../../../../../webgl/enums.js";const o={createComputedParams:e=>e,optionalAttributes:{},attributes:{pos:{type:i.SHORT,count:2,packPrecisionFactor:10,pack:"position"},id:{type:i.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:i.UNSIGNED_BYTE,count:1,pack:e=>0},offset:{type:i.SHORT,count:2,packPrecisionFactor:16,packAlternating:{count:4,pack:({size:t})=>{const r=e(t),i=-r/2,o=-r/2;return[[i,o],[i+r,o],[i,o+r],[i+r,o+r]]}}},texCoords:{type:i.SHORT,count:2,packPrecisionFactor:4,packAlternating:{count:4,pack:()=>[[0,1],[1,1],[0,0],[1,0]]}},size:{type:i.UNSIGNED_BYTE,count:2,pack:({size:e})=>[e,e]},referenceSize:{type:i.UNSIGNED_BYTE,count:1,pack:({size:t})=>e(t)},zoomRange:{type:i.UNSIGNED_BYTE,count:2,pack:({scaleInfo:e},{tileInfo:r})=>t(e,r)}}};class s extends r{constructor(){super(...arguments),this.vertexSpec=o}_write(t,{target:r}){const i=r.getDisplayId(),o=this.evaluatedMeshParams.minPixelBuffer,s=Math.max(e(this.evaluatedMeshParams.size),o);let c,a;if("esriGeometryPoint"===r.geometryType)c=r.readXForDisplay(),a=r.readYForDisplay();else{const e=r.readCentroidForDisplay();if(!e)return;c=e?.coords[0],a=e?.coords[1]}t.recordStart(this.instanceId,this.attributeLayout),t.recordBounds(c,a,s,s);const n=t.vertexCount();this._writeVertex(t,i,c,a),t.indexWrite(n+0),t.indexWrite(n+1),t.indexWrite(n+2),t.indexWrite(n+1),t.indexWrite(n+3),t.indexWrite(n+2),t.recordEnd()}}export{s as PieChartMeshWriter};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{clamp as t}from"../../../../../../../core/mathUtils.js";import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as o}from"../../../../../../../geometry/GeometryCursor.js";import{CIMMarkerPlacementHelper as i}from"../../../../../../../symbols/cim/placements/CIMMarkerPlacementHelper.js";import{getXDirection as s,getYDirection as r}from"../../../alignmentUtils.js";import{minMaxZoomPrecisionFactor as n,maxTextLineWidth as a,minTextLineWidth as l,magicLabelLineHeight as c}from"../../../definitions.js";import{shapeGlyphs as d}from"../../../mesh/templates/shapingUtils.js";import{getMinMaxZoom as h,processColorInput as f,packBitset as p}from"../fill/meshWriterUtils.js";import{MeshWriter as m}from"../mesh/MeshWriter.js";import{bitsetTextIsBackground as u,bitsetTextIsMapAligned as g}from"../shaders/constants.js";import{TextMeshTransformProps as x}from"./TextParams.js";import{DataType as y}from"../../../../../../webgl/enums.js";const S=28,_=[4,4],z=[16,4],P={topLeft:z,topRight:z,bottomLeft:z,bottomRight:z},b=[4,2],R=[4,6],T={topLeft:b,topRight:b,bottomLeft:R,bottomRight:R},B={topLeft:b,topRight:R,bottomLeft:b,bottomRight:R},k={topLeft:R,topRight:R,bottomLeft:_,bottomRight:_},M={topLeft:_,topRight:_,bottomLeft:R,bottomRight:R},L={topLeft:R,topRight:_,bottomLeft:R,bottomRight:_},w={topLeft:_,topRight:R,bottomLeft:_,bottomRight:R},A={createComputedParams:t=>t,optionalAttributes:{zoomRange:{type:y.UNSIGNED_SHORT,count:2,packPrecisionFactor:n,packTessellation:({minZoom:t,maxZoom:e})=>[t||0,e||S]},clipAngle:{type:y.UNSIGNED_BYTE,count:1,packTessellation:({clipAngle:t})=>I(t||0)},referenceSymbol:{type:y.BYTE,count:4,packTessellation:(t,o)=>{const i=t.isLineLabel||!t.referenceBounds,n=s(i?"center":o.horizontalAlignment),a=r(i?"middle":o.verticalAlignment),{offsetX:l,offsetY:c,size:d}=i?{offsetX:0,offsetY:0,size:0}:t.referenceBounds;return[e(l),-e(c),Math.round(e(d)),n+1<<2|a+1]}},visibility:{type:y.FLOAT,count:1,otherSource:!0}},attributes:{pos:{type:y.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:y.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:y.UNSIGNED_BYTE,count:1,packTessellation:({isBackground:t,mapAligned:e})=>p([[u,t],[g,!!e]])},offset:{type:y.SHORT,count:2,packPrecisionFactor:8,packAlternating:{count:4,packTessellation:({offsets:t})=>{const{bottomLeft:e,bottomRight:o,topLeft:i,topRight:s}=t;return[i,s,e,o]}}},textureUV:{type:y.UNSIGNED_SHORT,count:2,packAlternating:{count:4,packTessellation:({texcoords:t})=>{const{bottomLeft:e,bottomRight:o,topLeft:i,topRight:s}=t;return[i,s,e,o]}}},color:{type:y.UNSIGNED_BYTE,count:4,normalized:!0,packTessellation:({color:t})=>t},fontAndReferenceSize:{type:y.UNSIGNED_SHORT,count:4,packPrecisionFactor:4,packTessellation:({fontSize:t,sdfSize:o,sdfRadius:i},{referenceSize:s})=>[Math.round(e(t)),Math.round(e(s??t)),o,i]},outlineColor:{type:y.UNSIGNED_BYTE,count:4,normalized:!0,pack:({outlineColor:t})=>f(t)},haloColor:{type:y.UNSIGNED_BYTE,count:4,normalized:!0,pack:({haloColor:t})=>f(t)},outlineAndHaloSize:{type:y.UNSIGNED_SHORT,count:2,packPrecisionFactor:4,packTessellation:({outlineSize:t,haloSize:o})=>[Math.round(e(t)),Math.round(e(o))]}}};class v extends m{constructor(){super(...arguments),this.vertexSpec=A,this._textMeshParamsPropsInitialized=!1}ensurePacked(t,e,o){super.ensurePacked(t,e,o),this._textMeshParamsPropsInitialized&&!this._evaluator.hasDynamicProperties||(this._textMeshTransformProps=new x(this.evaluatedMeshParams),this._textMeshParamsPropsInitialized=!0)}_write(t,e,o){const i=this._getShaping();if(!i)return;const s=1===this.evaluatedMeshParams.alignment,r=e.getDisplayId();if(null!=this.evaluatedMeshParams.placement)return this._writePlacedTextMarkers(t,e,i,o);if(o?.nextPath())return o.nextPoint(),this._writeGlyphs(t,r,o.x,o.y,i,0,void 0,{mapAligned:s});if("esriGeometryPolygon"===e.geometryType){const o=e.readCentroidForDisplay();if(!o)return;const[n,a]=o.coords;return this._writeGlyphs(t,r,n,a,i,0,void 0,{mapAligned:s})}if("esriGeometryMultipoint"===e.geometryType){const o=e.readGeometryForDisplay();return void o?.forEachVertex((e,o)=>this._writeGlyphs(t,r,e,o,i,0,void 0,{mapAligned:s}))}const n=e.readXForDisplay(),a=e.readYForDisplay();return this._writeGlyphs(t,r,n,a,i,0,void 0,{mapAligned:s})}_writePlacedTextMarkers(t,s,r,n){const a=n??o.fromFeatureSetReaderCIM(s);if(!a)return;const l=-1,c=i.getPlacement(a,l,this.evaluatedMeshParams.placement,e(1),t.id);if(!c)return;const d=s.getDisplayId();let h=c.next();for(;null!=h;){const e=h.tx,o=-h.ty,i=-h.getAngle();this._writeGlyphs(t,d,e,o,r,i,void 0,{mapAligned:1===this.evaluatedMeshParams.alignment}),h=c.next()}}_getShaping(o){const i=this._textMeshTransformProps,s=this.evaluatedMeshParams;if(!s.glyphs?.glyphs.length)return null;const r=e(i.fontSize),n=e(i.offsetX),h=e(i.offsetY),f=s.glyphs.sdfSize,p=t(e(s.lineWidth),l,a),m=f/24*c*t(s.lineHeightRatio,.25,4);return d(s.glyphs,{scale:r/f,angle:i.postAngle,xOffset:n,yOffset:h,horizontalAlignment:s.horizontalAlignment,verticalAlignment:o||s.verticalAlignment,maxLineWidth:p,lineHeight:m,decoration:s.decoration,borderLineSizePx:e(s.boxBorderLineSize),hasBackground:!!s.boxBackgroundColor,useCIMAngleBehavior:s.useCIMAngleBehavior})}_writeGlyphs(t,o,i,s,r,n,a,l,c=!0){const d=this.evaluatedMeshParams,p=this._textMeshTransformProps,m=e(p.fontSize),u=p.haloSize,g=p.outlineSize,x=e(p.offsetX),y=e(p.offsetY),{sdfSize:S,sdfRadius:_}=d.glyphs,[z,P]=h(d.scaleInfo,this.getTileInfo());0!==n&&r.setRotation(n);const b=r.bounds,R=i+b.x+x,T=s+b.y-y,B=2*(d.minPixelBuffer?d.minPixelBuffer/m:1),k=Math.max(b.width,b.height)*B;r.textBox&&(t.recordStart(this.instanceId,this.attributeLayout,r.glyphs[0].textureBinding),c&&t.recordBounds(R,T,k,k),this._writeTextBox(t,o,i,s,r.textBox,a,l),t.recordEnd());for(const e of r.glyphs){t.recordStart(this.instanceId,this.attributeLayout,e.textureBinding),c&&t.recordBounds(R,T,k,k);const{texcoords:r,offsets:n}=e;this._writeQuad(t,o,i,s,{texcoords:r,offsets:n,fontSize:m,haloSize:u,outlineSize:g,sdfSize:S,sdfRadius:_,color:f(d.color),isBackground:!1,referenceBounds:a,minZoom:z,maxZoom:P,...l}),t.recordEnd()}0!==n&&r.setRotation(-n)}_writeTextBox(t,e,o,i,s,r,n){const a=this.evaluatedMeshParams,{fontSize:l,haloSize:c,outlineSize:d}=this._textMeshTransformProps,{boxBackgroundColor:h,boxBorderLineColor:p,boxBorderLineSize:m}=a,{sdfSize:u,sdfRadius:g}=a.glyphs,x=!!p&&m>0,y={isBackground:!0,fontSize:l,haloSize:c,outlineSize:d,referenceBounds:r,sdfSize:u,sdfRadius:g,...n};h&&(this._writeQuad(t,e,o,i,{texcoords:P,offsets:s.main,color:f(h),...y}),x||(this._writeQuad(t,e,o,i,{texcoords:k,offsets:s.top,color:f(h),...y}),this._writeQuad(t,e,o,i,{texcoords:M,offsets:s.bot,color:f(h),...y}),this._writeQuad(t,e,o,i,{texcoords:L,offsets:s.left,color:f(h),...y}),this._writeQuad(t,e,o,i,{texcoords:w,offsets:s.right,color:f(h),...y}))),x&&(this._writeQuad(t,e,o,i,{texcoords:T,offsets:s.top,color:f(p),...y}),this._writeQuad(t,e,o,i,{texcoords:T,offsets:s.bot,color:f(p),...y}),this._writeQuad(t,e,o,i,{texcoords:B,offsets:s.left,color:f(p),...y}),this._writeQuad(t,e,o,i,{texcoords:B,offsets:s.right,color:f(p),...y}))}_writeQuad(t,e,o,i,s){const r=t.vertexCount();this._writeVertex(t,e,o,i,s),t.indexWrite(r+0),t.indexWrite(r+1),t.indexWrite(r+2),t.indexWrite(r+1),t.indexWrite(r+3),t.indexWrite(r+2)}}const I=t=>Math.round(t*(256/360));export{v as TextMeshWriter,A as TextVertexSpec,S as maxLabelZoom};
2
+ import{clamp as t}from"../../../../../../../core/mathUtils.js";import{pt2px as e}from"../../../../../../../core/screenUtils.js";import{GeometryCursor as o}from"../../../../../../../geometry/GeometryCursor.js";import{asCIMGeometryCursor as i}from"../../../../../../../symbols/cim/utils.js";import{CIMMarkerPlacementHelper as r}from"../../../../../../../symbols/cim/placements/CIMMarkerPlacementHelper.js";import{getXDirection as s,getYDirection as n}from"../../../alignmentUtils.js";import{minMaxZoomPrecisionFactor as a,maxTextLineWidth as l,minTextLineWidth as c,magicLabelLineHeight as d}from"../../../definitions.js";import{shapeGlyphs as f}from"../../../mesh/templates/shapingUtils.js";import{getMinMaxZoom as h,processColorInput as p,packBitset as m}from"../fill/meshWriterUtils.js";import{MeshWriter as u}from"../mesh/MeshWriter.js";import{bitsetTextIsBackground as g,bitsetTextIsMapAligned as x}from"../shaders/constants.js";import{TextMeshTransformProps as y}from"./TextParams.js";import{DataType as S}from"../../../../../../webgl/enums.js";const b=28,z=[4,4],_=[16,4],P={topLeft:_,topRight:_,bottomLeft:_,bottomRight:_},L=[4,2],R=[4,6],T={topLeft:L,topRight:L,bottomLeft:R,bottomRight:R},k={topLeft:L,topRight:R,bottomLeft:L,bottomRight:R},B={topLeft:R,topRight:R,bottomLeft:z,bottomRight:z},M={topLeft:z,topRight:z,bottomLeft:R,bottomRight:R},w={topLeft:R,topRight:z,bottomLeft:R,bottomRight:z},A={topLeft:z,topRight:R,bottomLeft:z,bottomRight:R};function v(t){return{backgroundColor:t.boxBackgroundColor??t.backgroundColor??null,borderLineColor:t.boxBorderLineColor??t.borderLineColor??null,borderLineSize:t.boxBorderLineSize>0?t.boxBorderLineSize:t.borderLineWidth??0}}const I={createComputedParams:t=>t,optionalAttributes:{zoomRange:{type:S.UNSIGNED_SHORT,count:2,packPrecisionFactor:a,packTessellation:({minZoom:t,maxZoom:e})=>[t||0,e||b]},clipAngle:{type:S.UNSIGNED_BYTE,count:1,packTessellation:({clipAngle:t})=>G(t||0)},referenceSymbol:{type:S.BYTE,count:4,packTessellation:(t,o)=>{const i=t.isLineLabel||!t.referenceBounds,r=s(i?"center":o.horizontalAlignment),a=n(i?"middle":o.verticalAlignment),{offsetX:l,offsetY:c,size:d}=i?{offsetX:0,offsetY:0,size:0}:t.referenceBounds;return[e(l),-e(c),Math.round(e(d)),r+1<<2|a+1]}},visibility:{type:S.FLOAT,count:1,otherSource:!0}},attributes:{pos:{type:S.SHORT,count:2,pack:"position",packPrecisionFactor:10},id:{type:S.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:S.UNSIGNED_BYTE,count:1,packTessellation:({isBackground:t,mapAligned:e})=>m([[g,t],[x,!!e]])},offset:{type:S.SHORT,count:2,packPrecisionFactor:8,packAlternating:{count:4,packTessellation:({offsets:t})=>{const{bottomLeft:e,bottomRight:o,topLeft:i,topRight:r}=t;return[i,r,e,o]}}},textureUV:{type:S.UNSIGNED_SHORT,count:2,packAlternating:{count:4,packTessellation:({texcoords:t})=>{const{bottomLeft:e,bottomRight:o,topLeft:i,topRight:r}=t;return[i,r,e,o]}}},color:{type:S.UNSIGNED_BYTE,count:4,normalized:!0,packTessellation:({color:t})=>t},fontAndReferenceSize:{type:S.UNSIGNED_SHORT,count:4,packPrecisionFactor:4,packTessellation:({fontSize:t,sdfSize:o,sdfRadius:i},{referenceSize:r})=>[Math.round(e(t)),Math.round(e(r??t)),o,i]},outlineColor:{type:S.UNSIGNED_BYTE,count:4,normalized:!0,pack:({outlineColor:t})=>p(t)},haloColor:{type:S.UNSIGNED_BYTE,count:4,normalized:!0,pack:({haloColor:t})=>p(t)},outlineAndHaloSize:{type:S.UNSIGNED_SHORT,count:2,packPrecisionFactor:4,packTessellation:({outlineSize:t,haloSize:o})=>[Math.round(e(t)),Math.round(e(o))]}}};class C extends u{constructor(){super(...arguments),this.vertexSpec=I,this._textMeshParamsPropsInitialized=!1}ensurePacked(t,e,o){super.ensurePacked(t,e,o),this._textMeshParamsPropsInitialized&&!this._evaluator.hasDynamicProperties||(this._textMeshTransformProps=new y(this.evaluatedMeshParams),this._textMeshParamsPropsInitialized=!0)}_write(t,{target:e,effectGeometry:o}){const r=this._getShaping();if(!r)return;const s=1===this.evaluatedMeshParams.alignment,n=e.getDisplayId();if(null!=this.evaluatedMeshParams.placement)return this._writePlacedTextMarkers(t,e,r,i(o));if(o?.nextPath())return o.nextPoint(),this._writeGlyphs(t,n,o.x,o.y,r,0,void 0,{mapAligned:s});if("esriGeometryPolygon"===e.geometryType){const o=e.readCentroidForDisplay();if(!o)return;const[i,a]=o.coords;return this._writeGlyphs(t,n,i,a,r,0,void 0,{mapAligned:s})}if("esriGeometryMultipoint"===e.geometryType){const o=e.readGeometryForDisplay();return void o?.forEachVertex((e,o)=>this._writeGlyphs(t,n,e,o,r,0,void 0,{mapAligned:s}))}const a=e.readXForDisplay(),l=e.readYForDisplay();return this._writeGlyphs(t,n,a,l,r,0,void 0,{mapAligned:s})}_writePlacedTextMarkers(t,i,s,n){const a=n??o.fromFeatureSetReaderCIM(i);if(!a)return;const l=-1,c=r.getPlacement(a,l,this.evaluatedMeshParams.placement,e(1),t.id);if(!c)return;const d=i.getDisplayId();let f=c.next();for(;null!=f;){const e=-f.getAngle(),o=f.tx,i=-f.ty;this._writeGlyphs(t,d,o,i,s,e,void 0,{mapAligned:1===this.evaluatedMeshParams.alignment}),f=c.next()}}_getShaping(o){const i=this._textMeshTransformProps,r=this.evaluatedMeshParams;if(!r.glyphs?.glyphs.length)return null;const s=e(i.fontSize),n=e(i.offsetX),a=e(i.offsetY),h=r.glyphs.sdfSize,p=t(e(r.lineWidth),c,l),m=h/24*d*t(r.lineHeightRatio,.25,4),{backgroundColor:u,borderLineSize:g}=v(r);return f(r.glyphs,{scale:s/h,angle:i.postAngle,xOffset:n,yOffset:a,horizontalAlignment:r.horizontalAlignment,verticalAlignment:o||r.verticalAlignment,maxLineWidth:p,lineHeight:m,decoration:r.decoration,borderLineSizePx:e(g),hasBackground:!!u,useCIMAngleBehavior:r.useCIMAngleBehavior})}_writeGlyphs(t,o,i,r,s,n,a,l,c=!0){const d=this.evaluatedMeshParams,f=this._textMeshTransformProps,m=e(f.fontSize),u=f.haloSize,g=f.outlineSize,x=e(f.offsetX),y=e(f.offsetY),{sdfSize:S,sdfRadius:b}=d.glyphs,[z,_]=h(d.scaleInfo,this.getTileInfo());0!==n&&s.setRotation(n);const P=s.bounds,L=i+P.x+x,R=r+P.y-y,T=2*(d.minPixelBuffer?d.minPixelBuffer/m:1),k=Math.max(P.width,P.height)*T;s.textBox&&(t.recordStart(this.instanceId,this.attributeLayout,s.glyphs[0].textureBinding),c&&t.recordBounds(L,R,k,k),this._writeTextBox(t,o,i,r,s.textBox,a,l),t.recordEnd());for(const e of s.glyphs){t.recordStart(this.instanceId,this.attributeLayout,e.textureBinding),c&&t.recordBounds(L,R,k,k);const{texcoords:s,offsets:n}=e;this._writeQuad(t,o,i,r,{texcoords:s,offsets:n,fontSize:m,haloSize:u,outlineSize:g,sdfSize:S,sdfRadius:b,color:p(d.color),isBackground:!1,referenceBounds:a,minZoom:z,maxZoom:_,...l}),t.recordEnd()}0!==n&&s.setRotation(-n)}_writeTextBox(t,e,o,i,r,s,n){const a=this.evaluatedMeshParams,{fontSize:l,haloSize:c,outlineSize:d}=this._textMeshTransformProps,{backgroundColor:f,borderLineColor:h,borderLineSize:m}=v(a),{sdfSize:u,sdfRadius:g}=a.glyphs,x=!!h&&m>0,y={isBackground:!0,fontSize:l,haloSize:c,outlineSize:d,referenceBounds:s,sdfSize:u,sdfRadius:g,...n};f&&(this._writeQuad(t,e,o,i,{texcoords:P,offsets:r.main,color:p(f),...y}),x||(this._writeQuad(t,e,o,i,{texcoords:B,offsets:r.top,color:p(f),...y}),this._writeQuad(t,e,o,i,{texcoords:M,offsets:r.bot,color:p(f),...y}),this._writeQuad(t,e,o,i,{texcoords:w,offsets:r.left,color:p(f),...y}),this._writeQuad(t,e,o,i,{texcoords:A,offsets:r.right,color:p(f),...y}))),x&&(this._writeQuad(t,e,o,i,{texcoords:T,offsets:r.top,color:p(h),...y}),this._writeQuad(t,e,o,i,{texcoords:T,offsets:r.bot,color:p(h),...y}),this._writeQuad(t,e,o,i,{texcoords:k,offsets:r.left,color:p(h),...y}),this._writeQuad(t,e,o,i,{texcoords:k,offsets:r.right,color:p(h),...y}))}_writeQuad(t,e,o,i,r){const s=t.vertexCount();this._writeVertex(t,e,o,i,r),t.indexWrite(s+0),t.indexWrite(s+1),t.indexWrite(s+2),t.indexWrite(s+1),t.indexWrite(s+3),t.indexWrite(s+2)}}const G=t=>Math.round(t*(256/360));export{C as TextMeshWriter,I as TextVertexSpec,v as getTextBoxStyle,b as maxLabelZoom};