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

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 (449) hide show
  1. package/Graphic.d.ts +16 -1
  2. package/Graphic.js +1 -1
  3. package/applications/MapViewer/templateUtils.js +1 -1
  4. package/assets/esri/core/workers/RemoteClient.js +1 -1
  5. package/assets/esri/core/workers/chunks/0175098da590a7109539.js +1 -0
  6. package/assets/esri/core/workers/chunks/02aaeaa988e9e7d65a7f.js +1 -0
  7. package/assets/esri/core/workers/chunks/03a4543b94f9adeb1852.js +1 -0
  8. package/assets/esri/core/workers/chunks/05c52e8f187740da9b36.js +1 -0
  9. package/assets/esri/core/workers/chunks/0630ce1975c91ae362d9.js +1 -0
  10. package/assets/esri/core/workers/chunks/{7f0f10946f05a09b5654.js → 07ddf1b1f7602063ceb0.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{f04b49d80f422708d98c.js → 0e6b24e8864940ed9877.js} +1 -1
  12. package/assets/esri/core/workers/chunks/0e6feed31340cf3c1966.js +1 -0
  13. package/assets/esri/core/workers/chunks/11a99ee68409a641810e.js +1 -0
  14. package/assets/esri/core/workers/chunks/11b0d3a825fe50dd1e84.js +1 -0
  15. package/assets/esri/core/workers/chunks/16006dc0cb95f7c291a5.js +1 -0
  16. package/assets/esri/core/workers/chunks/177472a6a9beb1590934.js +1 -0
  17. package/assets/esri/core/workers/chunks/19a9a555365a8363d34b.js +1 -0
  18. package/assets/esri/core/workers/chunks/{43f58604ba4a94a9167c.js → 1f3a676e7a4eae5ad566.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{8875e53097b25655ef67.js → 246253fbbb2ecea48f91.js} +1 -1
  20. package/assets/esri/core/workers/chunks/25d795a1697803d77e56.js +1 -0
  21. package/assets/esri/core/workers/chunks/268ed861c882740c805b.js +1 -0
  22. package/assets/esri/core/workers/chunks/26f28406056ddc0e159c.js +1 -0
  23. package/assets/esri/core/workers/chunks/27d6ad4ca5ab8c9d62cd.js +1 -0
  24. package/assets/esri/core/workers/chunks/{da008d6a3afb30d18392.js → 299b4eecd0288348c971.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{df8a3d3cac454d42e14d.js → 29aba121db7f00e0cf81.js} +1 -1
  26. package/assets/esri/core/workers/chunks/2b00229c238aae70b948.js +1 -0
  27. package/assets/esri/core/workers/chunks/2b52c1c01cf568ba01fb.js +1 -0
  28. package/assets/esri/core/workers/chunks/{9b869a8bda9384f25464.js → 308e1b0aea941958de44.js} +1 -1
  29. package/assets/esri/core/workers/chunks/3116a1c2b67a296ba86e.js +1 -0
  30. package/assets/esri/core/workers/chunks/3241e0ed26aff61ec213.js +1 -0
  31. package/assets/esri/core/workers/chunks/330da3828eefd8d72d3f.js +1 -0
  32. package/assets/esri/core/workers/chunks/34c11e7c8762fe0c19fb.js +1 -0
  33. package/assets/esri/core/workers/chunks/34e026549ba2822b8ebd.js +1 -0
  34. package/assets/esri/core/workers/chunks/359465b9726edcc70c83.js +1 -0
  35. package/assets/esri/core/workers/chunks/36ecb0082b8804b10fbf.js +1 -0
  36. package/assets/esri/core/workers/chunks/389e57aab12d52d72695.js +1 -0
  37. package/assets/esri/core/workers/chunks/38b1d2ffcc318ac0119d.js +1 -0
  38. package/assets/esri/core/workers/chunks/390717f079def83a0d9c.js +1 -0
  39. package/assets/esri/core/workers/chunks/{3397eae416622c64e628.js → 3f0483cbcd893acf240c.js} +1 -1
  40. package/assets/esri/core/workers/chunks/4020f95d8131493f799e.js +1 -0
  41. package/assets/esri/core/workers/chunks/{4378e544687fec4b06fb.js → 40afdb74517a7df59e0d.js} +1 -1
  42. package/assets/esri/core/workers/chunks/40bc7c65b708fcc80fab.js +1 -0
  43. package/assets/esri/core/workers/chunks/{c7b9df9a204f6206364a.js → 40e887e87ae24ace27a5.js} +1 -1
  44. package/assets/esri/core/workers/chunks/4255ad7601c7a7621b71.js +1 -0
  45. package/assets/esri/core/workers/chunks/{747e258f57f0543c836e.js → 43cc82373be791b7cb4c.js} +1 -1
  46. package/assets/esri/core/workers/chunks/{1f141a007b1ef9b069c6.js → 4456bbb4b7dfe80c7477.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{fb75d4bce1e86eed017a.js → 44b5e4640fe547285e0c.js} +6 -6
  48. package/assets/esri/core/workers/chunks/453c3b265481c80fc625.js +1 -0
  49. package/assets/esri/core/workers/chunks/47dd2bfecc5c4b5f10f0.js +1 -0
  50. package/assets/esri/core/workers/chunks/4b19acf8bde5b2e80692.js +1 -0
  51. package/assets/esri/core/workers/chunks/4faaf61d20e20fcf6c18.js +1 -0
  52. package/assets/esri/core/workers/chunks/{82215d7a64b8be02eff1.js → 509beae195c900a85e0b.js} +1 -1
  53. package/assets/esri/core/workers/chunks/5217d676749bca59d90f.js +1 -0
  54. package/assets/esri/core/workers/chunks/{53750e85f3128993a43a.js → 545c38789267e3487dbd.js} +1 -1
  55. package/assets/esri/core/workers/chunks/54dad475dc806a38c287.js +1 -0
  56. package/assets/esri/core/workers/chunks/58579c53be1a44bd08d2.js +1 -0
  57. package/assets/esri/core/workers/chunks/58c15c42e6a618386a2f.js +1 -0
  58. package/assets/esri/core/workers/chunks/5ea0096a282e87a269bd.js +1 -0
  59. package/assets/esri/core/workers/chunks/63378b0b4265a547656b.js +1 -0
  60. package/assets/esri/core/workers/chunks/{3a691f848152e3818a48.js → 642be1619c0e76355cb6.js} +1 -1
  61. package/assets/esri/core/workers/chunks/65b0b4e808479187da00.js +1 -0
  62. package/assets/esri/core/workers/chunks/69a1cbf0af059548f96a.js +1 -0
  63. package/assets/esri/core/workers/chunks/6ae2408ac075b974e887.js +1 -0
  64. package/assets/esri/core/workers/chunks/6b79c254897ece95b7a3.js +1 -0
  65. package/assets/esri/core/workers/chunks/6d59a9cf533ebc590f70.js +1 -0
  66. package/assets/esri/core/workers/chunks/6d66dc77af8d112c33c6.js +1 -0
  67. package/assets/esri/core/workers/chunks/{0981fe06796060e50d40.js → 708bd77e6d723e3f0aa8.js} +1 -1
  68. package/assets/esri/core/workers/chunks/71119398ec91f1b209d7.js +1 -0
  69. package/assets/esri/core/workers/chunks/71e12db99589c98a4357.js +1 -0
  70. package/assets/esri/core/workers/chunks/7485d59d60d61737d662.js +1 -0
  71. package/assets/esri/core/workers/chunks/76589434d573111a8fb4.js +1 -0
  72. package/assets/esri/core/workers/chunks/7c2d2f22df057ba8cb50.js +1 -0
  73. package/assets/esri/core/workers/chunks/7d6299ab7b0db23ab961.js +1 -0
  74. package/assets/esri/core/workers/chunks/7dc9ff66e1eceadbae24.js +1 -0
  75. package/assets/esri/core/workers/chunks/82b2acc6f181927de89c.js +1 -0
  76. package/assets/esri/core/workers/chunks/85a200aecc7a844c9566.js +1 -0
  77. package/assets/esri/core/workers/chunks/89250d268dc2554a9ece.js +1 -0
  78. package/assets/esri/core/workers/chunks/8a23a62cbf1c5b4019c5.js +1 -0
  79. package/assets/esri/core/workers/chunks/8ac8ef856ed9592c433b.js +1 -0
  80. package/assets/esri/core/workers/chunks/{01af2a0611386df64cb1.js → 8f992ff87173a3ca1621.js} +28 -24
  81. package/assets/esri/core/workers/chunks/9954928d6430e2bfdb1a.js +1 -0
  82. package/assets/esri/core/workers/chunks/9a29b7f9e6281ee40c37.js +1 -0
  83. package/assets/esri/core/workers/chunks/9bb2251ba58932f85d13.js +1 -0
  84. package/assets/esri/core/workers/chunks/{d8ccc713c5ad93e7a0c3.js → 9bd713d96502ddc2ce25.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{8351012ceb466f01b8fd.js → 9d8e7839772029d83c93.js} +1 -1
  86. package/assets/esri/core/workers/chunks/9f4a9b193485f88d4461.js +1 -0
  87. package/assets/esri/core/workers/chunks/a001e7e8a39f27284d87.js +1 -0
  88. package/assets/esri/core/workers/chunks/a50fd0e66b01fe205033.js +1 -0
  89. package/assets/esri/core/workers/chunks/{51716e411fad624ac21c.js → a567d001fcfa1f1cdeea.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{3a6b8879702fb247328b.js → a68b5cb66c2c5e6b46e0.js} +1 -1
  91. package/assets/esri/core/workers/chunks/a93a058678c8c8996d54.js +1 -0
  92. package/assets/esri/core/workers/chunks/aad02c7417648d881129.js +1 -0
  93. package/assets/esri/core/workers/chunks/acb8cff06142f828fb78.js +1 -0
  94. package/assets/esri/core/workers/chunks/ad329226c8b579d0964c.js +1 -0
  95. package/assets/esri/core/workers/chunks/afdc6fc453157528cf9b.js +1 -0
  96. package/assets/esri/core/workers/chunks/{baea6f86b2dbe067940e.js → b06cc59068d32baaaa87.js} +1 -1
  97. package/assets/esri/core/workers/chunks/b63cbf6c2c9ec1b02b9a.js +1 -0
  98. package/assets/esri/core/workers/chunks/b7f5d51ac26f37837b3b.js +1 -0
  99. package/assets/esri/core/workers/chunks/b891d95b7858665cd6c1.js +1 -0
  100. package/assets/esri/core/workers/chunks/{359d3acb3953e64e5a78.js → ba7fe21a78ea37a02b7c.js} +1 -1
  101. package/assets/esri/core/workers/chunks/bd17ac2e6f1eb8cf7abf.js +1 -0
  102. package/assets/esri/core/workers/chunks/beba9f2213d8a850ddb6.js +1 -0
  103. package/assets/esri/core/workers/chunks/{d6f03f628ebfc28fdd23.js → bf6c6bc15b0d2d82d1a4.js} +2 -2
  104. package/assets/esri/core/workers/chunks/bf706a5d065a357de51b.js +1 -0
  105. package/assets/esri/core/workers/chunks/bfb417d72d0c90e116fe.js +1 -0
  106. package/assets/esri/core/workers/chunks/c0c693c2e0043ecba4a5.js +1 -0
  107. package/assets/esri/core/workers/chunks/c321bcda8e8893577948.js +1 -0
  108. package/assets/esri/core/workers/chunks/c452c74ba9de218c3e57.js +1 -0
  109. package/assets/esri/core/workers/chunks/{700f7aa9cf7b13acaf5d.js → c514135bf7703ba69a47.js} +1 -1
  110. package/assets/esri/core/workers/chunks/c798a40418e7ff38042a.js +1 -0
  111. package/assets/esri/core/workers/chunks/ca6c128940ddbebcaaab.js +1 -0
  112. package/assets/esri/core/workers/chunks/{268f203d2492a03165ac.js → ce2ed9405ff1b704d35c.js} +1 -1
  113. package/assets/esri/core/workers/chunks/ce3e51c799a80648e46d.js +1 -0
  114. package/assets/esri/core/workers/chunks/{e81afc8a058a8ecc9b24.js → ce4e09b623ebb640c46c.js} +1 -1
  115. package/assets/esri/core/workers/chunks/cf7acf5acb6d322fd996.js +1 -0
  116. package/assets/esri/core/workers/chunks/{e0b27bceb397482bd0e8.js → d122431f3b0b88dcb488.js} +1 -1
  117. package/assets/esri/core/workers/chunks/d8c4fb66c733ab2f66d3.js +1 -0
  118. package/assets/esri/core/workers/chunks/d8d338665fe00494c826.js +1 -0
  119. package/assets/esri/core/workers/chunks/d93a4ccf8f0208dc6ad7.js +1 -0
  120. package/assets/esri/core/workers/chunks/de11ebcea2b8f9dfe65d.js +1 -0
  121. package/assets/esri/core/workers/chunks/e133840540abf20262a4.js +1 -0
  122. package/assets/esri/core/workers/chunks/{3092184350d66c79f610.js → e5d969214d9eda5c0b4c.js} +1 -1
  123. package/assets/esri/core/workers/chunks/{fa869bfe4366f7f49cca.js → e5f8c73349407c25956b.js} +1 -1
  124. package/assets/esri/core/workers/chunks/e63e24101e7e92c62d98.js +1 -0
  125. package/assets/esri/core/workers/chunks/e8a885b576da3ec145d3.js +1 -0
  126. package/assets/esri/core/workers/chunks/eda51e512eff551ad858.js +1 -0
  127. package/assets/esri/core/workers/chunks/ee635172be7fdea69367.js +1 -0
  128. package/assets/esri/core/workers/chunks/f196ad0c7dbcbf632776.js +1 -0
  129. package/assets/esri/core/workers/chunks/f27397379c6c88bc6ef4.js +1 -0
  130. package/assets/esri/core/workers/chunks/f31deeedb2508e81293b.js +2 -0
  131. package/assets/esri/core/workers/chunks/f618ee43581e8de6ad0c.js +1 -0
  132. package/assets/esri/core/workers/chunks/f66262f8582909157f01.js +1 -0
  133. package/assets/esri/core/workers/chunks/{ea97619a4470f1540b99.js → f6ebec8d2248c719b89f.js} +1 -1
  134. package/assets/esri/core/workers/chunks/f91a2c69a93295cf4de6.js +1 -0
  135. package/assets/esri/core/workers/chunks/f948e4a80a7dbda70f2e.js +1 -0
  136. package/assets/esri/core/workers/chunks/fa9ab152ea785b5e97e0.js +1 -0
  137. package/assets/esri/core/workers/chunks/fae147d03ed723ab234d.js +1 -0
  138. package/assets/esri/core/workers/chunks/fae79769df54eb4c4154.js +1 -0
  139. package/assets/esri/core/workers/chunks/{5a8fd2fd8a24f9290b7f.js → fd2afff07aaac8203c18.js} +1 -1
  140. package/assets/esri/core/workers/chunks/fdb7851e98e8d2ba48d3.js +1 -0
  141. package/assets/esri/core/workers/chunks/fec3fffcf854a6226df4.js +1 -0
  142. package/assets/esri/core/workers/chunks/ff7708aaa2de720e3a47.js +1 -0
  143. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core-simd.wasm +0 -0
  144. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core.wasm +0 -0
  145. package/chunks/GaussianSplat.glsl.js +9 -9
  146. package/chunks/GlobalIllumination.glsl.js +31 -31
  147. package/chunks/NativeLine.glsl.js +4 -4
  148. package/chunks/OITBlend.glsl.js +3 -7
  149. package/chunks/OITBlendEmission.glsl.js +22 -0
  150. package/chunks/{OITDim.glsl.js → OITDimOpaque.glsl.js} +2 -2
  151. package/chunks/RibbonLine.glsl.js +57 -53
  152. package/chunks/arcgis-knowledge-client-core-simd.js +1 -1
  153. package/chunks/arcgis-knowledge-client-core.js +1 -1
  154. package/config.js +1 -1
  155. package/core/has.js +1 -1
  156. package/geometry/support/heightModelInfoUtils.js +1 -1
  157. package/kernel.js +1 -1
  158. package/layers/DimensionFeatureLayer.d.ts +7 -0
  159. package/layers/DimensionFeatureLayer.js +2 -0
  160. package/layers/SceneLayer.d.ts +59 -32
  161. package/layers/catalog/CatalogFootprintLayer.js +1 -1
  162. package/layers/graphics/OptimizedFeature.js +1 -1
  163. package/layers/graphics/data/QueryEngineCapabilities.js +1 -1
  164. package/layers/graphics/data/optimizedFeatureQueryEngineAdapter.js +1 -1
  165. package/layers/graphics/featureConversionUtils.js +1 -1
  166. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  167. package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
  168. package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
  169. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  170. package/layers/mixins/ArcGISImageService.js +1 -1
  171. package/layers/mixins/FeatureReductionLayer.js +1 -1
  172. package/layers/raster/formats/Lerc.js +1 -1
  173. package/layers/raster/formats/RasterCodec.js +1 -1
  174. package/layers/scene/ModelFileInfo.d.ts +6 -2
  175. package/layers/scene/ModelInfo.d.ts +16 -7
  176. package/layers/scene/types.d.ts +2 -0
  177. package/layers/support/ExportImageServiceParameters.js +1 -1
  178. package/layers/support/capabilities.js +1 -1
  179. package/layers/support/layerUtils.js +1 -1
  180. package/layers/support/serviceCapabilitiesUtils.js +1 -1
  181. package/layers/types.d.ts +26 -3
  182. package/networks/support/CircuitPathConnectivityElement.js +1 -1
  183. package/networks/support/networkFieldUtils.js +1 -1
  184. package/package.json +2 -2
  185. package/popup/Features.js +1 -1
  186. package/portal/schemas/definitions.js +1 -1
  187. package/rest/knowledgeGraph/CreateReplicaResponse.d.ts +5 -4
  188. package/rest/knowledgeGraph/ReplicaDefinition.d.ts +0 -3
  189. package/rest/knowledgeGraph/types.d.ts +1 -1
  190. package/rest/knowledgeGraph/wasmInterface/queryToWasmEncodedFactories.js +1 -1
  191. package/rest/knowledgeGraph/wasmInterface/replicaToWasmEncodedFactories.js +1 -1
  192. package/rest/knowledgeGraph/wasmInterface/wasmToReplicaFactories.js +1 -1
  193. package/rest/query/operations/queryUtils.js +1 -1
  194. package/rest/support/OutDistance.js +1 -1
  195. package/rest/support/Query.d.ts +39 -1
  196. package/rest/support/Query.js +1 -1
  197. package/support/revision.js +1 -1
  198. package/symbols/cim/CIMEffects.js +1 -1
  199. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  200. package/symbols/cim/CIMSymbolHelper.js +1 -1
  201. package/symbols/cim/defaultCIMValues.js +1 -1
  202. package/symbols/cim/effects/EffectAddControlPoints.js +1 -1
  203. package/symbols/cim/effects/EffectArrow.js +1 -1
  204. package/symbols/cim/effects/EffectBuffer.js +1 -1
  205. package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
  206. package/symbols/cim/effects/EffectCut.js +1 -1
  207. package/symbols/cim/effects/EffectDashes.js +1 -1
  208. package/symbols/cim/effects/EffectDonut.js +1 -1
  209. package/symbols/cim/effects/EffectEnclosingPolygon.js +1 -1
  210. package/symbols/cim/effects/EffectHelper.js +1 -1
  211. package/symbols/cim/effects/EffectJog.js +1 -1
  212. package/symbols/cim/effects/EffectMove.js +1 -1
  213. package/symbols/cim/effects/EffectOffset.js +1 -1
  214. package/symbols/cim/effects/EffectRadial.js +1 -1
  215. package/symbols/cim/effects/EffectTaperedPolygon.js +1 -1
  216. package/symbols/cim/effects/EffectWave.js +1 -1
  217. package/symbols/cim/placements/PlacementAtRatioPositions.js +1 -1
  218. package/symbols/cim/types.d.ts +7 -1
  219. package/symbols/cim/utils.js +1 -1
  220. package/symbols/dimensions/effects/LinearDimensionArrowEffect.js +1 -1
  221. package/symbols/dimensions/effects/LinearDimensionExtensionLineEffect.js +1 -1
  222. package/symbols/dimensions/effects/LinearDimensionLeaderLineEffect.js +1 -1
  223. package/symbols/dimensions/effects/LinearDimensionLineEffect.js +1 -1
  224. package/symbols/dimensions/effects/LinearDimensionPointEffect.js +1 -1
  225. package/symbols/dimensions/effects/LinearDimensionTextEffect.js +1 -1
  226. package/symbols/types.d.ts +1 -1
  227. package/tables/AttributeTableTemplate.d.ts +1 -1
  228. package/tables/elements/AttributeTableGroupElement.d.ts +1 -1
  229. package/tables/support/tablesUtils.d.ts +2 -2
  230. package/tables/support/templateUtils.d.ts +136 -0
  231. package/tables/support/templateUtils.js +2 -0
  232. package/tables/support/types.d.ts +90 -0
  233. package/views/2d/engine/vectorTiles/decluttering/SymbolDeclutterer.js +1 -1
  234. package/views/2d/engine/vectorTiles/decluttering/SymbolRepository.js +1 -1
  235. package/views/2d/engine/webgl/alignmentUtils.js +1 -1
  236. package/views/2d/engine/webgl/definitions.js +1 -1
  237. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  238. package/views/2d/engine/webgl/shaderGraph/techniques/TestTechnique.js +1 -1
  239. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  240. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
  241. package/views/2d/engine/webgl/shaderGraph/techniques/animated/attributes.js +1 -1
  242. package/views/2d/engine/webgl/shaderGraph/techniques/fill/AFillMeshWriter.js +1 -1
  243. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js +1 -1
  244. package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillMeshWriter.js +1 -1
  245. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js +1 -1
  246. package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js +1 -1
  247. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillMeshWriter.js +1 -1
  248. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js +1 -1
  249. package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapMeshWriter.js +1 -1
  250. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  251. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeMeshWriter.js +1 -1
  252. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js +1 -1
  253. package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineMeshWriter.js +1 -1
  254. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js +1 -1
  255. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriter.js +1 -1
  256. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartMeshWriter.js +1 -1
  257. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartShader.js +1 -1
  258. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  259. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  260. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  261. package/views/2d/layerViewModuleImportUtils.js +1 -1
  262. package/views/2d/layers/BaseLayerView2D.d.ts +2 -2
  263. package/views/2d/layers/BaseLayerViewGL2D.d.ts +2 -2
  264. package/views/2d/layers/DimensionLayerView2D.js +2 -0
  265. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  266. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  267. package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +2 -0
  268. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  269. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  270. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  271. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  272. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  273. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  274. package/views/2d/layers/features/schema/SourceSchema.js +1 -1
  275. package/views/2d/layers/features/sources/FeatureSource.js +1 -1
  276. package/views/2d/layers/features/sources/strategies/AFeatureTileLoadStrategy.js +1 -1
  277. package/views/2d/layers/features/sources/strategies/FeatureHybridTileLoadStrategy.js +2 -0
  278. package/views/2d/layers/features/sources/strategies/chunks/ByReferenceTileSourceChunk.js +2 -0
  279. package/views/2d/layers/features/support/AttributeStore.js +1 -1
  280. package/views/2d/layers/features/support/DisplayIdGenerator.js +1 -1
  281. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  282. package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
  283. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  284. package/views/2d/layers/features/support/FeatureSetReaderPBFHeader.js +1 -1
  285. package/views/2d/layers/features/support/RefCounted.js +2 -0
  286. package/views/2d/types.d.ts +2 -0
  287. package/views/3d/layerViewModuleImportUtils.js +1 -1
  288. package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
  289. package/views/3d/support/QualityProfile.js +1 -1
  290. package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
  291. package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
  292. package/views/3d/support/gaussianSplatting/GaussianTile.js +1 -1
  293. package/views/3d/terrain/isTerrainSurfaceLayer.js +1 -1
  294. package/views/3d/types.d.ts +2 -0
  295. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +6 -19
  296. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +1 -1
  297. package/views/3d/webgl-engine/core/shaderLibrary/util/{ComputeCovariance.glsl.js → GaussianSplatCovariance.glsl.js} +15 -9
  298. package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatEvaluation.glsl.js +43 -0
  299. package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatTextureFetch.glsl.js +36 -0
  300. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  301. package/views/3d/webgl-engine/effects/transparency/OITBlend.glsl.js +1 -1
  302. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  303. package/views/3d/webgl-engine/effects/transparency/OITBlendEmission.glsl.js +2 -0
  304. package/views/3d/webgl-engine/effects/transparency/OITBlendEmissionTechnique.js +2 -0
  305. package/views/3d/webgl-engine/effects/transparency/OITBlendEmissionTechniqueConfiguration.js +2 -0
  306. package/views/3d/webgl-engine/effects/transparency/OITBlendTechniqueConfiguration.js +1 -1
  307. package/views/3d/webgl-engine/effects/transparency/{OITDim.glsl.js → OITDimOpaque.glsl.js} +1 -1
  308. package/views/3d/webgl-engine/effects/transparency/OITDimOpaqueTechnique.js +2 -0
  309. package/views/3d/webgl-engine/effects/transparency/{OITDimTechniqueConfiguration.js → OITDimOpaqueTechniqueConfiguration.js} +1 -1
  310. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  311. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  312. package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
  313. package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
  314. package/views/PopupView.js +1 -1
  315. package/views/layers/FeatureLikeLayerView.d.ts +2 -1
  316. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +40 -1
  317. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  318. package/widgets/BatchAttributeForm/ReactiveGraphic.js +1 -1
  319. package/widgets/BatchAttributeForm/expressions/types.d.ts +1 -0
  320. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.d.ts +52 -1
  321. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  322. package/widgets/BatchAttributeForm/inputs/BatchFormInputs.d.ts +3 -0
  323. package/widgets/BatchAttributeForm/inputs/BatchFormInputs.js +1 -1
  324. package/widgets/BatchAttributeForm/inputs/EditableInput.d.ts +2 -0
  325. package/widgets/BatchAttributeForm/inputs/EditableInput.js +1 -1
  326. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  327. package/widgets/BatchAttributeForm/types.d.ts +79 -0
  328. package/widgets/Editor/Edits.js +1 -1
  329. package/widgets/Editor/UpdateFeaturesWorkflow.js +1 -1
  330. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +12 -12
  331. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  332. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  333. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  334. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  335. package/widgets/FeatureTable.d.ts +18 -3
  336. package/widgets/FeatureTable.js +1 -1
  337. package/widgets/Features/FeaturesViewModel.js +1 -1
  338. package/assets/esri/core/workers/chunks/015fc0a17b17d69cc3bb.js +0 -1
  339. package/assets/esri/core/workers/chunks/02e8fc598ee09cf1b678.js +0 -1
  340. package/assets/esri/core/workers/chunks/075a1e91a075efe59cd3.js +0 -1
  341. package/assets/esri/core/workers/chunks/0ab1384282afc8731857.js +0 -1
  342. package/assets/esri/core/workers/chunks/146424b5717d0a645ee1.js +0 -1
  343. package/assets/esri/core/workers/chunks/15a070d4ac2087b79e8b.js +0 -1
  344. package/assets/esri/core/workers/chunks/169ca3724053fc046d1b.js +0 -1
  345. package/assets/esri/core/workers/chunks/17445fd8048966617d49.js +0 -1
  346. package/assets/esri/core/workers/chunks/1765dfeac20e34ce25b7.js +0 -1
  347. package/assets/esri/core/workers/chunks/1768f1a7e3caa6074d91.js +0 -1
  348. package/assets/esri/core/workers/chunks/1906416c84bab369bbd6.js +0 -1
  349. package/assets/esri/core/workers/chunks/198864c107fa2b24518c.js +0 -1
  350. package/assets/esri/core/workers/chunks/1a35121a0c2595a41fdb.js +0 -1
  351. package/assets/esri/core/workers/chunks/1f85646936200a399c15.js +0 -1
  352. package/assets/esri/core/workers/chunks/1ff3c15a51c4dc991806.js +0 -1
  353. package/assets/esri/core/workers/chunks/206bdfd868a9ef88f3a8.js +0 -1
  354. package/assets/esri/core/workers/chunks/2343b1105bc4c1b4a086.js +0 -1
  355. package/assets/esri/core/workers/chunks/2387613b855771a3e537.js +0 -1
  356. package/assets/esri/core/workers/chunks/2b0b398180ed98c2c84c.js +0 -1
  357. package/assets/esri/core/workers/chunks/3469df5c4846b0cee012.js +0 -1
  358. package/assets/esri/core/workers/chunks/34b6b5dd415c68f0b0d1.js +0 -1
  359. package/assets/esri/core/workers/chunks/36f6673b23579b88d8f7.js +0 -1
  360. package/assets/esri/core/workers/chunks/384c235d36f32769e32b.js +0 -1
  361. package/assets/esri/core/workers/chunks/38c28189f273636e4017.js +0 -1
  362. package/assets/esri/core/workers/chunks/3a183259805638c25363.js +0 -1
  363. package/assets/esri/core/workers/chunks/3efbb684c0409955186d.js +0 -1
  364. package/assets/esri/core/workers/chunks/3feec3d08424b94e1bcf.js +0 -1
  365. package/assets/esri/core/workers/chunks/460e693ad19fa77ffdc2.js +0 -1
  366. package/assets/esri/core/workers/chunks/47b3a5213539548ff3a6.js +0 -1
  367. package/assets/esri/core/workers/chunks/48549d3d7bf0154c0afa.js +0 -1
  368. package/assets/esri/core/workers/chunks/52b3a11c962810bc6dbe.js +0 -1
  369. package/assets/esri/core/workers/chunks/54c6e870262469d0d702.js +0 -1
  370. package/assets/esri/core/workers/chunks/55fd201ca5e10c6e4761.js +0 -1
  371. package/assets/esri/core/workers/chunks/561d45dc9421f80feca5.js +0 -1
  372. package/assets/esri/core/workers/chunks/566f6319ded0634769e0.js +0 -1
  373. package/assets/esri/core/workers/chunks/56717ff315c6ec874142.js +0 -1
  374. package/assets/esri/core/workers/chunks/56941e8bbd2d49bf2656.js +0 -1
  375. package/assets/esri/core/workers/chunks/5fccb372b4d5ee2f64cc.js +0 -1
  376. package/assets/esri/core/workers/chunks/60cee9a44929decd2474.js +0 -1
  377. package/assets/esri/core/workers/chunks/6124141ac642e4ce1454.js +0 -1
  378. package/assets/esri/core/workers/chunks/61fada8942b65fa0b5e1.js +0 -1
  379. package/assets/esri/core/workers/chunks/64cf18ba2869171a5a7a.js +0 -1
  380. package/assets/esri/core/workers/chunks/65c61171e6c6be5c5c2f.js +0 -1
  381. package/assets/esri/core/workers/chunks/6a3d207308b29651f397.js +0 -1
  382. package/assets/esri/core/workers/chunks/6d696beddcc5fbed5875.js +0 -1
  383. package/assets/esri/core/workers/chunks/71cfab6305f275cfb04e.js +0 -1
  384. package/assets/esri/core/workers/chunks/728ad5bbbcbf88d6249f.js +0 -1
  385. package/assets/esri/core/workers/chunks/7531bbcb6613c87a344e.js +0 -1
  386. package/assets/esri/core/workers/chunks/7b505112c7e6d9b7a239.js +0 -1
  387. package/assets/esri/core/workers/chunks/7b6c8be59ed87e386aa4.js +0 -1
  388. package/assets/esri/core/workers/chunks/7c820c5f6f05480d5050.js +0 -1
  389. package/assets/esri/core/workers/chunks/7ef51b0ebd560113ae7e.js +0 -1
  390. package/assets/esri/core/workers/chunks/80f4f686ce403cb2693f.js +0 -1
  391. package/assets/esri/core/workers/chunks/81d761c837b7456ec99f.js +0 -1
  392. package/assets/esri/core/workers/chunks/83f1871d04c979fa23b7.js +0 -1
  393. package/assets/esri/core/workers/chunks/85da2987e17b6755a94e.js +0 -1
  394. package/assets/esri/core/workers/chunks/87f7a674957f734b1b42.js +0 -1
  395. package/assets/esri/core/workers/chunks/8a3bff0f58483c1665f9.js +0 -1
  396. package/assets/esri/core/workers/chunks/8a5a827ee557d9f9a66e.js +0 -1
  397. package/assets/esri/core/workers/chunks/8b046e28f879079caada.js +0 -1
  398. package/assets/esri/core/workers/chunks/8d738e9acc2f222235ea.js +0 -1
  399. package/assets/esri/core/workers/chunks/8e1140725a72038627c2.js +0 -1
  400. package/assets/esri/core/workers/chunks/915e2711d3a2cfa402b2.js +0 -1
  401. package/assets/esri/core/workers/chunks/928dac64e6ba401d391a.js +0 -1
  402. package/assets/esri/core/workers/chunks/992525afdf11b2fb16d4.js +0 -1
  403. package/assets/esri/core/workers/chunks/9a5ef33d99a8f89956ff.js +0 -1
  404. package/assets/esri/core/workers/chunks/9c402657f63a4d5668d0.js +0 -1
  405. package/assets/esri/core/workers/chunks/9f51a69b8f1937a8794a.js +0 -1
  406. package/assets/esri/core/workers/chunks/a015c2f54eb91e43a1f4.js +0 -1
  407. package/assets/esri/core/workers/chunks/a232d05c0a055f398c6e.js +0 -1
  408. package/assets/esri/core/workers/chunks/a242ec19a7508de436da.js +0 -1
  409. package/assets/esri/core/workers/chunks/a25acccda8febac71a3d.js +0 -1
  410. package/assets/esri/core/workers/chunks/a432219de6a873f88776.js +0 -1
  411. package/assets/esri/core/workers/chunks/a76e14fe5e8b2f7ef9de.js +0 -2
  412. package/assets/esri/core/workers/chunks/a7f9f478bd1493fc3c76.js +0 -1
  413. package/assets/esri/core/workers/chunks/aac6a57edd7494125204.js +0 -1
  414. package/assets/esri/core/workers/chunks/af074b5b4e1d6baf5219.js +0 -1
  415. package/assets/esri/core/workers/chunks/afc0baf86ece710ef867.js +0 -1
  416. package/assets/esri/core/workers/chunks/b2662bfdbd1e3623ceb9.js +0 -1
  417. package/assets/esri/core/workers/chunks/b73c146d3e550eaf07eb.js +0 -1
  418. package/assets/esri/core/workers/chunks/b7af0e6b9aadbcaf6a0b.js +0 -1
  419. package/assets/esri/core/workers/chunks/bc78937986854e500b8e.js +0 -1
  420. package/assets/esri/core/workers/chunks/bd10d21545bca9a49de0.js +0 -1
  421. package/assets/esri/core/workers/chunks/bea170f08f5261e22d29.js +0 -1
  422. package/assets/esri/core/workers/chunks/bec3ee5ea945e1e07a35.js +0 -1
  423. package/assets/esri/core/workers/chunks/bf4dd8e50704e4040966.js +0 -1
  424. package/assets/esri/core/workers/chunks/c31ee5617c61a933cb0e.js +0 -1
  425. package/assets/esri/core/workers/chunks/c3e89c7c7b677bd18557.js +0 -1
  426. package/assets/esri/core/workers/chunks/cb81d524f12edcadb9bb.js +0 -1
  427. package/assets/esri/core/workers/chunks/cc0f3b9b153a0c232afe.js +0 -1
  428. package/assets/esri/core/workers/chunks/cd0c232f4e3868d91a05.js +0 -1
  429. package/assets/esri/core/workers/chunks/ce7ef7c4ca14d66d96f6.js +0 -1
  430. package/assets/esri/core/workers/chunks/d55cef8199b8246fea3f.js +0 -1
  431. package/assets/esri/core/workers/chunks/d8decaee2c780e1b5e35.js +0 -1
  432. package/assets/esri/core/workers/chunks/dc54d4a9fe1691862356.js +0 -1
  433. package/assets/esri/core/workers/chunks/de99500b0fcedf2c8a5c.js +0 -1
  434. package/assets/esri/core/workers/chunks/e18badd11f360cc2912b.js +0 -1
  435. package/assets/esri/core/workers/chunks/e6f1ed5e56f1d9862821.js +0 -1
  436. package/assets/esri/core/workers/chunks/e6fe8b5fbe95de01453b.js +0 -1
  437. package/assets/esri/core/workers/chunks/eaab5ac049622986e3bc.js +0 -1
  438. package/assets/esri/core/workers/chunks/ee7e9bca57160694b3c4.js +0 -1
  439. package/assets/esri/core/workers/chunks/ef0085aa743b33cb549f.js +0 -1
  440. package/assets/esri/core/workers/chunks/f0250cecb243b32cdba7.js +0 -1
  441. package/assets/esri/core/workers/chunks/f2beb4267b8d4cddfa3e.js +0 -1
  442. package/assets/esri/core/workers/chunks/f468c6ea2818a1f97e19.js +0 -1
  443. package/assets/esri/core/workers/chunks/f6c8e93ca2987e83f925.js +0 -1
  444. package/assets/esri/core/workers/chunks/fa4265db06e2721754a0.js +0 -1
  445. package/tables/types.d.ts +0 -18
  446. package/views/3d/webgl-engine/effects/transparency/OITDimTechnique.js +0 -2
  447. package/widgets/FeatureTable/support/templateUtils.js +0 -2
  448. /package/assets/esri/core/workers/chunks/{d6f03f628ebfc28fdd23.js.LICENSE.txt → bf6c6bc15b0d2d82d1a4.js.LICENSE.txt} +0 -0
  449. /package/assets/esri/core/workers/chunks/{a76e14fe5e8b2f7ef9de.js.LICENSE.txt → f31deeedb2508e81293b.js.LICENSE.txt} +0 -0
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Various utility methods for creating and updating templates used by
3
+ * the [FeatureTable component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-feature-table/).
4
+ *
5
+ * @since 5.1
6
+ */
7
+ import type AttributeTableTemplate from "../AttributeTableTemplate.js";
8
+ import type AttributeTableFieldOrder from "./FieldOrder.js";
9
+ import type TableTemplate from "../../widgets/FeatureTable/support/TableTemplate.js";
10
+ import type FeatureTable from "../../widgets/FeatureTable.js";
11
+ import type { AttributeTableElementUnion, CreateTableTemplateFromAttributeTableTemplateParameters, CreateTemplateParameters, NestedAttributeTableElementUnion } from "./types.js";
12
+ import type { ColumnSortOrder, FeatureTableSupportedColumn, GroupColumnSupportedTemplates, SupportedColumnTemplates } from "../../widgets/FeatureTable/support/types.js";
13
+
14
+ /**
15
+ * Utility method which creates a basic [AttributeTableTemplate](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/) based on the provided layer.
16
+ *
17
+ * @param params - Parameters controlling the generation of the [AttributeTableTemplate](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/).
18
+ * @returns A promise that resolves to a newly generated [AttributeTableTemplate](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/).
19
+ * @since 5.1
20
+ */
21
+ export function createAttributeTableTemplateFromLayer(params: CreateTemplateParameters): Promise<AttributeTableTemplate>;
22
+
23
+ /**
24
+ * Utility method which creates an array of column elements based on the provided columns.
25
+ *
26
+ * @param columns - An array of columns from which to generate [attribute table elements](https://developers.arcgis.com/javascript/latest/references/core/tables/elements/AttributeTableElement/).
27
+ * @returns An array of [attribute table elements](https://developers.arcgis.com/javascript/latest/references/core/tables/elements/AttributeTableElement/) generated from the provided columns.
28
+ * @since 5.1
29
+ */
30
+ export function createAttributeTableElementsFromColumns(columns: FeatureTableSupportedColumn[]): AttributeTableElementUnion[];
31
+
32
+ /**
33
+ * Method which creates a nested column element based on the provided column.
34
+ *
35
+ * @param column - A column from which to generate a nested [attribute table element](https://developers.arcgis.com/javascript/latest/references/core/tables/elements/AttributeTableElement/) (excludes group elements).
36
+ * @returns An [attribute table element](https://developers.arcgis.com/javascript/latest/references/core/tables/elements/AttributeTableElement/) generated from the provided column, or undefined if the column is hidden or of an unsupported type.
37
+ * @since 5.1
38
+ */
39
+ export function createNestedAttributeTableElementFromColumn(column: FeatureTableSupportedColumn): NestedAttributeTableElementUnion | null | undefined;
40
+
41
+ /**
42
+ * Method which creates a basic [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/) based on the provided layer.
43
+ *
44
+ * @param params - Parameters controlling the generation of the [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/).
45
+ * @returns A promise that resolves to a newly generated [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/).
46
+ * @since 5.1
47
+ */
48
+ export function createTableTemplateFromLayer(params: CreateTemplateParameters): Promise<TableTemplate>;
49
+
50
+ /**
51
+ * Method which creates a [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/) based on the provided [AttributeTableTemplate](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/).
52
+ *
53
+ * @param params - Parameters controlling the generation of the [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/).
54
+ * @returns A promise that resolves to a newly generated [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/).
55
+ * @since 5.1
56
+ */
57
+ export function createTableTemplateFromAttributeTableTemplate(params: CreateTableTemplateFromAttributeTableTemplateParameters): Promise<TableTemplate>;
58
+
59
+ /**
60
+ * Method which creates an array of column templates based on the provided elements and orderByFields.
61
+ *
62
+ * @param elements - An array of [attribute table elements](https://developers.arcgis.com/javascript/latest/references/core/tables/elements/AttributeTableElement/) from which to generate column templates.
63
+ * @param orderByFields - An array of [attribute table field order](https://developers.arcgis.com/javascript/latest/references/core/tables/support/FieldOrder/) objects which determine the sort order of columns in the table.
64
+ * @returns An array of column templates generated from the provided elements and orderByFields.
65
+ * @since 5.1
66
+ */
67
+ export function createColumnTemplatesFromElements(elements: AttributeTableElementUnion[] | null | undefined, orderByFields: AttributeTableFieldOrder[]): SupportedColumnTemplates[];
68
+
69
+ /**
70
+ * Method which creates an array of column templates based on the provided columns.
71
+ *
72
+ * @param columns - An array of columns from which to generate [attribute table elements](https://developers.arcgis.com/javascript/latest/references/core/tables/elements/AttributeTableElement/).
73
+ * @returns An array of column templates generated from the provided columns.
74
+ * @since 5.1
75
+ */
76
+ export function createColumnTemplatesFromColumns(columns: FeatureTableSupportedColumn[]): SupportedColumnTemplates[];
77
+
78
+ /**
79
+ * Method which creates a nested column template based on the provided column.
80
+ *
81
+ * @param column - A column from which to generate a nested column template (excludes group columns).
82
+ * @returns A column template generated from the provided column, or undefined if the column is hidden or of an unsupported type.
83
+ * @since 5.1
84
+ */
85
+ export function createNestedColumnTemplateFromColumn(column: FeatureTableSupportedColumn): GroupColumnSupportedTemplates | null | undefined;
86
+
87
+ /**
88
+ * Method which creates a nested column template based on the provided element and orderByFields.
89
+ *
90
+ * @param element - An [attribute table element](https://developers.arcgis.com/javascript/latest/references/core/tables/elements/AttributeTableElement/) from which to generate a nested column template (excludes group elements).
91
+ * @param orderByFields - An array of [attribute table field order](https://developers.arcgis.com/javascript/latest/references/core/tables/support/FieldOrder/) objects which determine the sort order of columns in the table.
92
+ * @returns A column template generated from the provided element and orderByFields, or undefined if the element is of an unsupported type.
93
+ * @since 5.1
94
+ */
95
+ export function createNestedColumnTemplateFromElement(element: AttributeTableElementUnion, orderByFields: AttributeTableFieldOrder[]): GroupColumnSupportedTemplates | null | undefined;
96
+
97
+ /**
98
+ * Determines if a provided template is a [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/).
99
+ *
100
+ * @param template - The template to check.
101
+ * @returns Returns true if the template is a [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/), otherwise returns false.
102
+ * @since 5.1
103
+ */
104
+ export function isTableTemplate(template: unknown): template is TableTemplate;
105
+
106
+ /**
107
+ * Determines if a provided template is an [attribute table template](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/).
108
+ *
109
+ * @param template - The template to check.
110
+ * @returns Returns true if the template is an [attribute table template](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/), otherwise returns false.
111
+ * @since 5.1
112
+ */
113
+ export function isAttributeTableTemplate(template: unknown): template is AttributeTableTemplate;
114
+
115
+ /**
116
+ * Method which syncs an [attribute table template](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/) with the provided [FeatureTable](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/).
117
+ *
118
+ * @param table - The FeatureTable to synchronize with the [AttributeTableTemplate](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/).
119
+ * @param template - The AttributeTableTemplate to sync with the table.
120
+ * @param includeHiddenColumns - Indicates whether to include hidden columns in the synced template. Default is true.
121
+ * @returns The synced [attribute table template](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/).
122
+ * @since 5.1
123
+ */
124
+ export function syncAttributeTableTemplateWithTable(table: FeatureTable, template: AttributeTableTemplate, includeHiddenColumns?: boolean): AttributeTableTemplate;
125
+
126
+ /**
127
+ * Method which syncs an [AttributeTableTemplate](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/) with the provided columns and sort orders.
128
+ *
129
+ * @param template - The [AttributeTableTemplate](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/) to sync with the columns.
130
+ * @param columns - An array of columns with which to sync the [attribute table template](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/).
131
+ * @param activeSortOrders - An array of [attribute table field order](https://developers.arcgis.com/javascript/latest/references/core/tables/support/FieldOrder/) objects which determine the current sort order of table columns.
132
+ * @param includeHiddenColumns - Indicates whether to include hidden columns in the synced template. Default is true.
133
+ * @returns The synced [attribute table template](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/).
134
+ * @since 5.1
135
+ */
136
+ export function syncAttributeTableTemplateWithColumns(template: AttributeTableTemplate, columns: FeatureTableSupportedColumn[], activeSortOrders: ColumnSortOrder[], includeHiddenColumns?: boolean): AttributeTableTemplate;
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import{isSome as e}from"../../core/arrayUtils.js";import{createFieldInfos as t}from"../../support/popupUtils.js";import i from"../AttributeTableTemplate.js";import n from"../elements/AttributeTableAttachmentElement.js";import r from"../elements/AttributeTableFieldElement.js";import l from"../elements/AttributeTableGroupElement.js";import o from"../elements/AttributeTableRelationshipElement.js";import s from"./FieldOrder.js";import a from"../../widgets/FeatureTable/support/AttachmentsColumnTemplate.js";import{isGroupColumn as d,isFieldColumn as u,isRelationshipColumn as p,isAttachmentsColumn as f}from"../../widgets/FeatureTable/support/columnUtils.js";import m from"../../widgets/FeatureTable/support/FieldColumnTemplate.js";import c from"../../widgets/FeatureTable/support/GroupColumnTemplate.js";import h from"../../widgets/FeatureTable/support/RelationshipColumnTemplate.js";import b from"../../widgets/FeatureTable/support/TableTemplate.js";import{isIFeatureTableSupportedLayer as w,isIFeatureTableSupportedLayerWithAttachments as T,isIFeatureTableSupportedLayerWithRelationships as F,hasTemplateForField as y}from"../../widgets/FeatureTable/support/tableUtils.js";async function v(e){const{layer:l,visibleFieldNames:s,excludeAttachments:a,excludeRelationships:d,excludedFieldTypesOverride:u}=e,p=[],f=[];if(!w(l))return new i;await l.load();const m=t(l,{visibleFieldNames:s?.length?new Set(s):void 0,...u&&{ignoreFieldTypes:u},sortDisabled:!0});for(const{visible:t,fieldName:i}of m)t&&p.push(new r({fieldName:i}));return!p.length&&l.objectIdField&&p.push(new r({fieldName:l.objectIdField})),T(l)&&!0!==a&&p.push(new n),F(l)&&!0!==d&&l.relationships?.forEach(e=>{p.push(new o({relationshipId:e.id}))}),new i({elements:p,orderByFields:f})}function N(t){const i=[];return t.forEach(t=>{const{hidden:n}=t;if(d(t)){if(n)return;const r=t.columns?.map(e=>j(e)).filter(e);if(!r?.length)return;i.push(new l({elements:r}))}else{const e=j(t);if(!e)return;i.push(e)}}),i}function j(e){const{fieldName:t,hidden:i}=e;if(u(e)){if(!i)return new r({fieldName:t})}else if(p(e)){if(!i)return new o({relationshipId:e.relationshipId})}else if(f(e)&&!i)return new n}async function g(e){const{excludeAttachments:i,excludeRelationships:n,layer:r,excludedFieldTypesOverride:l,visibleFieldNames:o}=e,s=[];if(!w(r))return new b;await r.load();return t(r,{visibleFieldNames:o?.length?new Set(o):void 0,...l&&{ignoreFieldTypes:l},sortDisabled:!0}).forEach(({fieldName:e,format:t,label:i,visible:n})=>{null!=e&&s.push(new m({fieldName:e,format:t,label:i,visible:n}))}),T(r)&&!0!==i&&s.push(new a),F(r)&&!0!==n&&r.relationships?.forEach(({id:e})=>{s.push(new h({relationshipId:e}))}),new b({columnTemplates:s})}async function E(e){const{layer:i,template:n,includeHiddenFields:r,excludedFieldTypesOverride:l}=e;if(!w(i))return new b;const o=n.orderByFields??[];await i.load();const s=I(n.elements,o);if(r){t(i,{...l&&{ignoreFieldTypes:l},sortDisabled:!0}).forEach(e=>{if(!e.fieldName)return;const{fieldName:t}=e;if(!y(t,s)){const e=o.findIndex(e=>e.field&&e.field===t),i=e>-1?o.at(e)?.order:void 0,n=i&&e>-1?e:null;s.push(new m({direction:i,fieldName:t,initialSortPriority:n,visible:!1}))}}),T(i)&&!s.some(e=>"attachment"===e.type)&&s.push(new a({visible:!1})),F(i)&&i.relationships?.forEach(({id:e})=>{s.some(t=>"relationship"===t.type&&t.relationshipId===e)||s.push(new h({relationshipId:e,visible:!1}))})}return new b({columnTemplates:s})}function I(t,i){const n=[];return t?.forEach(t=>{const{description:r,label:l,type:o}=t;if("group"===o){const o=t.elements.map(e=>O(e,i)).filter(e);if(!o?.length)return;n.push(new c({description:r,columnTemplates:o,label:l}))}else{const e=O(t,i);if(!e)return;n.push(e)}}),n}function x(t){const i=[];return t.forEach(t=>{const{hidden:n}=t;if(d(t)){if(n)return;const r=t.columns?.map(e=>A(e)).filter(e);if(!r?.length)return;i.push(new c({columnTemplates:r}))}else{const e=A(t);if(!e)return;i.push(e)}}),i}function A(e){const{fieldName:t,hidden:i}=e;if(u(e)){if(!i)return new m({fieldName:t})}else if(p(e)){if(!i)return new h({relationshipId:e.relationshipId})}else if(f(e)&&!i)return new a}function O(e,t){const{description:i,label:n,type:r}=e;if("field"===r){const r=e.fieldName??void 0,l=t.findIndex(e=>e.field&&e.field===r),o=l>-1?t.at(l)?.order:void 0;return new m({description:i,direction:o,fieldName:r,initialSortPriority:o&&l>-1?l:null,label:n})}return"attachment"===r?new a({description:i,label:n}):"relationship"===r?new h({description:i,label:n,relationshipId:e.relationshipId}):void 0}function S(e){return null!=e&&"object"==typeof e&&"columnTemplates"in e}function B(e){return null!=e&&"object"==typeof e&&"elements"in e&&"orderByFields"in e}function C(e,t,i=!0){return R(t,e.columns.toArray(),e.activeSortOrders,i)}function R(e,t,i,n=!0){const r=t.flatMap(e=>[e,...d(e)&&e.columns?.length?e.columns:[]]),l=[],o=N(t);i.forEach(({fieldName:e,direction:t})=>{e&&t&&l.push(new s({field:e,order:t}))});return r.filter(e=>null!=e.direction&&(!e.hidden||n)).forEach(({fieldName:e,direction:t})=>{const i=l.find(t=>t.field===e);t&&!i&&l.push(new s({field:e,order:t}))}),e.elements=o,e.orderByFields=l,e}export{N as createAttributeTableElementsFromColumns,v as createAttributeTableTemplateFromLayer,x as createColumnTemplatesFromColumns,I as createColumnTemplatesFromElements,j as createNestedAttributeTableElementFromColumn,A as createNestedColumnTemplateFromColumn,O as createNestedColumnTemplateFromElement,E as createTableTemplateFromAttributeTableTemplate,g as createTableTemplateFromLayer,B as isAttributeTableTemplate,S as isTableTemplate,R as syncAttributeTableTemplateWithColumns,C as syncAttributeTableTemplateWithTable};
@@ -0,0 +1,90 @@
1
+ import type AttributeTableTemplate from "../AttributeTableTemplate.js";
2
+ import type AttributeTableAttachmentElement from "../elements/AttributeTableAttachmentElement.js";
3
+ import type AttributeTableFieldElement from "../elements/AttributeTableFieldElement.js";
4
+ import type AttributeTableGroupElement from "../elements/AttributeTableGroupElement.js";
5
+ import type AttributeTableRelationshipElement from "../elements/AttributeTableRelationshipElement.js";
6
+ import type { FieldType } from "../../layers/support/types.js";
7
+
8
+ /**
9
+ * A union of all [attribute table elements](https://developers.arcgis.com/javascript/latest/references/core/tables/elements/AttributeTableElement/).
10
+ *
11
+ * @since 5.1
12
+ */
13
+ export type AttributeTableElementUnion = AttributeTableAttachmentElement | AttributeTableFieldElement | AttributeTableGroupElement | AttributeTableRelationshipElement;
14
+
15
+ /**
16
+ * A union of all [attribute table elements](https://developers.arcgis.com/javascript/latest/references/core/tables/elements/AttributeTableElement/) that are nestable in a group element.
17
+ *
18
+ * @since 5.1
19
+ */
20
+ export type NestedAttributeTableElementUnion = Exclude<AttributeTableElementUnion, AttributeTableGroupElement>;
21
+
22
+ /**
23
+ * Parameters for creating a [table template](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/) or [attribute table template](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/).
24
+ *
25
+ * @since 5.1
26
+ */
27
+ export interface CreateTemplateParameters {
28
+ /**
29
+ * Layer from which to generate a default template.
30
+ *
31
+ * @since 5.1
32
+ */
33
+ layer: unknown;
34
+ /**
35
+ * Set of field names used to generate columns. If this parameter is not specified, columns are generated for all fields that are visible by default.
36
+ *
37
+ * @since 5.1
38
+ */
39
+ visibleFieldNames?: string[];
40
+ /**
41
+ * Indicates whether `attachments` columns should be excluded.
42
+ *
43
+ * @since 5.1
44
+ */
45
+ excludeAttachments?: boolean;
46
+ /**
47
+ * Indicates whether `relationship` columns should be excluded.
48
+ *
49
+ * @since 5.1
50
+ */
51
+ excludeRelationships?: boolean;
52
+ /**
53
+ * An array of field types that specify which types to exclude. The default value is ["geometry", "blob", "raster", "guid", "xml"].
54
+ *
55
+ * @since 5.1
56
+ */
57
+ excludedFieldTypesOverride?: FieldType[];
58
+ }
59
+
60
+ /**
61
+ * Parameters for creating a [table template](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/) from a provided [attribute table template](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/).
62
+ *
63
+ * @since 5.1
64
+ */
65
+ export interface CreateTableTemplateFromAttributeTableTemplateParameters {
66
+ /**
67
+ * Layer used to generate the default template.
68
+ *
69
+ * @since 5.1
70
+ */
71
+ layer: unknown;
72
+ /**
73
+ * Instance of an [AttributeTableTemplate](https://developers.arcgis.com/javascript/latest/references/core/tables/AttributeTableTemplate/) used to configure a new [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/).
74
+ *
75
+ * @since 5.1
76
+ */
77
+ template: AttributeTableTemplate;
78
+ /**
79
+ * Indicates whether columns should be generated for fields without associated [attribute table elements](https://developers.arcgis.com/javascript/latest/references/core/tables/elements/AttributeTableElement/).
80
+ *
81
+ * @since 5.1
82
+ */
83
+ includeHiddenFields?: boolean;
84
+ /**
85
+ * Indicates field types that should be excluded. Defaults to: ["geometry", "blob", "raster", "guid", "xml"].
86
+ *
87
+ * @since 5.1
88
+ */
89
+ excludedFieldTypesOverride?: FieldType[];
90
+ }
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{VectorTile as e}from"../VectorTile.js";import{fadeDuration as t}from"./config.js";function o(e){return(e.uniqueSymbol?.show&&e.uniqueSymbol?.lastShow)??!1}function i(e,t){if(e.priority-t.priority)return e.priority-t.priority;if(o(e)&&!o(t))return-1;if(o(t)&&!o(e))return 1;const i=e.tile.key,s=t.tile.key;return i.world-s.world?i.world-s.world:i.level-s.level?i.level-s.level:i.row-s.row?i.row-s.row:i.col-s.col?i.col-s.col:e.xTile-t.xTile?e.xTile-t.xTile:e.yTile-t.yTile}class s{get running(){return this._running}constructor(e,t,o,i,s,r,n,l){this.selectionMode=e,this._visibleTiles=t,this._symbolRepository=o,this._styleRepository=i,this._createCollisionJob=s,this._assignTileSymbolsOpacity=r,this._symbolLayerSorter=n,this._isLayerVisible=l,this._selectionJob=null,this._selectionJobCompleted=!1,this._collisionJob=null,this._collisionJobCompleted=!1,this._opacityJob=null,this._opacityJobCompleted=!1,this._running=!0}setScreenSize(e,t){this._screenWidth===e&&this._screenHeight===t||this.restart(),this._screenWidth=e,this._screenHeight=t}restart(){this._selectionJob=null,this._selectionJobCompleted=!1,this._collisionJob=null,this._collisionJobCompleted=!1,this._opacityJob=null,this._opacityJobCompleted=!1,this._running=!0}continue(e){if(this._selectionJob||(this._selectionJob=this._createSelectionJob()),!this._selectionJobCompleted){const t=performance.now();if(!this._selectionJob.work(e))return!1;if(this._selectionJobCompleted=!0,0===(e=Math.max(0,e-(performance.now()-t))))return!1}if(this._collisionJob||(this._collisionJob=this._createCollisionJob(this._selectionJob.sortedSymbols,this._screenWidth,this._screenHeight)),!this._collisionJobCompleted){const t=performance.now();if(!this._collisionJob.work(e))return!1;if(this._collisionJobCompleted=!0,0===(e=Math.max(0,e-(performance.now()-t))))return!1}if(this._opacityJob||(this._opacityJob=this._createOpacityJob()),!this._opacityJobCompleted){const t=performance.now();if(!this._opacityJob.work(e))return!1;if(this._opacityJobCompleted=!0,0===(e=Math.max(0,e-(performance.now()-t))))return!1}return this._running=!1,!0}_getFilteredByLayer(){let e;if(this._styleRepository?.layerContexts)for(const t of this._symbolRepository.uniqueSymbols){const o=this._styleRepository.layerContexts?.get(t.styleLayerUID);if(o?.attributeView)for(const i of t.uniqueSymbols){e??=new Map,e.get(t.styleLayerUID)||e.set(t.styleLayerUID,new Set);const s=e.get(t.styleLayerUID);o.isFeatureFiltered(i.id)&&s.add(i.id)}}return e}_resetSelection(){for(let e=0;e<this._symbolRepository.uniqueSymbols.length;e++){const t=this._symbolRepository.uniqueSymbols[e];for(let e=0;e<t.uniqueSymbols.length;e++){const o=t.uniqueSymbols[e];for(const e of o.tileSymbols)e.selectedForRendering=!1}}}_createSelectionJob(){const e="feature-tile"===this.selectionMode?n:l,t=this._symbolRepository.uniqueSymbols;this._resetSelection();const o=[];let s=0,r=0;const c=this._isLayerVisible,y=this._getFilteredByLayer(),a=this._styleRepository?.layerContexts;function h(n){let l;const h=performance.now();for(;r<t.length;r++,s=0){const i=t[r],u=i.styleLayerUID,f=y?.get(u);let b=0;if(a){b=a.get(u).layerOrder}if(!c(u)){o[r]||(o[r]={styleLayerUID:u,layerOrder:b,symbols:[]});continue}o[r]||={styleLayerUID:u,symbols:[],layerOrder:b};const m=o[r];for(;s<i.uniqueSymbols.length;s++){if(l=i.uniqueSymbols[s],s%100==99&&performance.now()-h>n)return!1;if(l.lastShow=l.show,l.id&&f?.has(l.id)){l.show=!1,l.parts[0].show=!1,l.parts[1].show=!1;continue}const t=e(l);if(t){t.selectedForRendering=!0,m.symbols.push(t),l.show=!0;for(const e of l.parts)e.show=!0}else l.show=!1}}for(const e of o)e.symbols.sort(i);return o.sort((e,t)=>t.layerOrder-e.layerOrder),!0}const u=this._symbolLayerSorter;return{work:h,get sortedSymbols(){return o.sort(u)}}}_createOpacityJob(){const t=this._assignTileSymbolsOpacity,o=this._visibleTiles;let i=0;function s(e,o){for(const t of e.symbols.values())r(t,o);t(e,o);for(const t of e.childrenTiles)s(t,o)}return{work(r){const n=performance.now();for(;i<o.length;i++){if(performance.now()-n>r)return!1;const l=o[i];if(null!=l.parentTile)continue;const c=performance.now();l instanceof e?s(l,c):t(l,c)}return!0}}}}function r(e,o){for(const i of e){const e=i.uniqueSymbol;for(const i of e.parts){const s=i.targetOpacity>.5?1:-1;i.startOpacity+=s*((o-i.startTime)/t),i.startOpacity=Math.min(Math.max(i.startOpacity,0),1),i.startTime=o,i.targetOpacity=e.show&&i.show?1:0}}}function n(e){for(const t of e.tileSymbols)if(t.tile.decluttering)return t;return null}function l(e){let t=null,o=!1,i=!1;for(const s of e.tileSymbols)if(!i||!o){const e=s.tile;(!t||e.isCoverage||e.neededForCoverage&&!o)&&(t=s,(e.neededForCoverage||e.isCoverage)&&(i=!0),e.isCoverage&&(o=!0))}return i?t:null}export{s as SymbolDeclutterer};
2
+ import{VectorTile as e}from"../VectorTile.js";import{fadeDuration as t}from"./config.js";function o(e){return(e.uniqueSymbol?.show&&e.uniqueSymbol?.lastShow)??!1}function i(e,t){if(e.priority-t.priority)return e.priority-t.priority;if(o(e)&&!o(t))return-1;if(o(t)&&!o(e))return 1;const i=e.tile.key,s=t.tile.key;return i.world-s.world?i.world-s.world:i.level-s.level?i.level-s.level:i.row-s.row?i.row-s.row:i.col-s.col?i.col-s.col:e.xTile-t.xTile?e.xTile-t.xTile:e.yTile-t.yTile}class s{get running(){return this._running}constructor(e,t,o,i,s,r,n,l){this.selectionMode=e,this._visibleTiles=t,this._symbolRepository=o,this._styleRepository=i,this._createCollisionJob=s,this._assignTileSymbolsOpacity=r,this._symbolLayerSorter=n,this._isLayerVisible=l,this._selectionJob=null,this._selectionJobCompleted=!1,this._collisionJob=null,this._collisionJobCompleted=!1,this._opacityJob=null,this._opacityJobCompleted=!1,this._running=!0}setScreenSize(e,t){this._screenWidth===e&&this._screenHeight===t||this.restart(),this._screenWidth=e,this._screenHeight=t}restart(){this._selectionJob=null,this._selectionJobCompleted=!1,this._collisionJob=null,this._collisionJobCompleted=!1,this._opacityJob=null,this._opacityJobCompleted=!1,this._running=!0}continue(e){if(this._selectionJob||(this._selectionJob=this._createSelectionJob()),!this._selectionJobCompleted){const t=performance.now();if(!this._selectionJob.work(e))return!1;if(this._selectionJobCompleted=!0,0===(e=Math.max(0,e-(performance.now()-t))))return!1}if(this._collisionJob||(this._collisionJob=this._createCollisionJob(this._selectionJob.sortedSymbols,this._screenWidth,this._screenHeight)),!this._collisionJobCompleted){const t=performance.now();if(!this._collisionJob.work(e))return!1;if(this._collisionJobCompleted=!0,0===(e=Math.max(0,e-(performance.now()-t))))return!1}if(this._opacityJob||(this._opacityJob=this._createOpacityJob()),!this._opacityJobCompleted){const t=performance.now();if(!this._opacityJob.work(e))return!1;if(this._opacityJobCompleted=!0,0===(e=Math.max(0,e-(performance.now()-t))))return!1}return this._running=!1,!0}_getFilteredByLayer(){let e;if(this._styleRepository?.layerContexts)for(const t of this._symbolRepository.uniqueSymbols){const o=this._styleRepository.layerContexts?.get(t.styleLayerUID);if(o?.attributeView)for(const i of t.uniqueSymbols){e??=new Map,e.get(t.styleLayerUID)||e.set(t.styleLayerUID,new Set);const s=e.get(t.styleLayerUID);o.isFeatureFiltered(i.id)&&s.add(i.id)}}return e}_resetSelection(){for(let e=0;e<this._symbolRepository.uniqueSymbols.length;e++){const t=this._symbolRepository.uniqueSymbols[e];for(let e=0;e<t.uniqueSymbols.length;e++){const o=t.uniqueSymbols[e];for(const e of o.tileSymbols)e.selectedForRendering=!1}}}_createSelectionJob(){const e="feature-tile"===this.selectionMode?n:l,t=this._symbolRepository.uniqueSymbols;this._resetSelection();const o=[];let s=0,r=0;const c=this._isLayerVisible,y=this._getFilteredByLayer(),a=this._styleRepository?.layerContexts;function h(n){let l;const h=performance.now();for(;r<t.length;r++,s=0){const i=t[r],u=i.styleLayerUID,f=y?.get(u);let b=0;if(a){b=a.get(u).layerOrder}if(!c(u)){o[r]||(o[r]={styleLayerUID:u,layerOrder:b,symbols:[]});continue}o[r]||={styleLayerUID:u,symbols:[],layerOrder:b};const m=o[r];for(;s<i.uniqueSymbols.length;s++){if(l=i.uniqueSymbols[s],s%100==99&&performance.now()-h>n)return!1;if(l.lastShow=l.show,l.id&&f?.has(l.id)){l.show=!1,l.parts[0].show=!1,l.parts[1].show=!1;continue}const t=e(l);if(t){t.selectedForRendering=!0,m.symbols.push(t),l.show=!0;for(const e of l.parts)e.show=!0}else l.show=!1}}for(const e of o)e.symbols.sort(i);return o.sort((e,t)=>t.layerOrder-e.layerOrder),!0}const u=this._symbolLayerSorter;return{work:h,get sortedSymbols(){return o.sort(u)}}}_createOpacityJob(){const t=this._assignTileSymbolsOpacity,o=this._visibleTiles;let i=0;function s(e,o){for(const t of e.symbols.values())r(t,o);t(e,o);for(const t of e.childrenTiles)s(t,o)}return{work(r){const n=performance.now();for(;i<o.length;i++){if(performance.now()-n>r)return!1;const l=o[i];if(null!=l.parentTile)continue;const c=performance.now();l instanceof e?s(l,c):t(l,c)}return!0}}}}function r(e,o){for(const i of e){const e=i.uniqueSymbol;if(e&&e.parts)for(const i of e.parts){const s=i.targetOpacity>.5?1:-1;i.startOpacity+=s*((o-i.startTime)/t),i.startOpacity=Math.min(Math.max(i.startOpacity,0),1),i.startTime=o,i.targetOpacity=e.show&&i.show?1:0}}}function n(e){for(const t of e.tileSymbols)if(t.tile.decluttering)return t;return null}function l(e){let t=null,o=!1,i=!1;for(const s of e.tileSymbols)if(!i||!o){const e=s.tile;(!t||e.isCoverage||e.neededForCoverage&&!o)&&(t=s,(e.neededForCoverage||e.isCoverage)&&(i=!0),e.isCoverage&&(o=!0))}return i?t:null}export{s as SymbolDeclutterer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{UniqueSymbol as e}from"./core.js";import{isSearchCircleOverlapingSymbol as t,tileCoordChangeX as s,tileCoordChangeY as i,GridIndex as l}from"./util.js";class o{static fromSymbols(e,t){let s=e.length;if(s>=r){let i=t;do{i/=2,s/=4}while(s>n&&i>y);const r=new l(t,t,i);for(const t of e)r.getCell(t.xTile,t.yTile).push(t);return new o(t,e,r)}return new o(t,e,null)}constructor(e,t,s){this.tileCoordRange=e,this._symbols=t,this._index=s}addSymbols(e){for(const t of e)this._symbols.push(t);if(this._index)for(const t of e)this._index.getCell(t.xTile,t.yTile).push(t)}removeSymbols(e){const t=new Set(e);if(this._symbols=this._symbols.filter(e=>!t.has(e)),this._index)for(const s of this._index.cells)for(let e=0;e<s.length;e++)s[e]=s[e].filter(e=>!t.has(e))}getSymbols(){return this._symbols}getCandidate(e,t,s,i){if(!this._index){for(const l of this._symbols)if(s===l.hash&&Math.abs(e-l.xTile)<=i&&Math.abs(t-l.yTile)<=i)return l;return null}const l=this._index.getCellSpan(e-i,t-i,e+i,t+i),[o,r,n,y]=l;for(let a=r;a<=y;a++)for(let l=o;l<=n;l++){const o=this._index.cells[a][l];for(const l of o)if(s===l.hash&&Math.abs(e-l.xTile)<=i&&Math.abs(t-l.yTile)<=i)return l}return null}}const r=32,n=8,y=64,a=20;class u{constructor(e,t){this.tileCoordRange=e,this._visibleTiles=t,this._indexMapByTile=new Map,this._uniqueSymbolsByStyleLayerId=new Map,this._featureMetricUpdates=[]}get uniqueSymbols(){return null==this._uniqueSymbolLayerArray&&(this._uniqueSymbolLayerArray=this._createUniqueSymbolLayerArray()),this._uniqueSymbolLayerArray}registerVectorTile(e,t){const s=this._ensureIndexMap(e),i=t?.values()??s.keys();for(const l of i){const e=s.get(l);e&&(this._removeSymbols(l,e.getSymbols()),s.delete(l))}this._addSymbols(e.key,s,e.symbols),this._invalidate()}unregisterVectorTile(e){this._removeTile(e),this._invalidate()}flushFeatureTileUpdateMessages(){for(const e of this._featureMetricUpdates)switch(e.type){case"tile-add":this._ensureIndexMap(e.tile);break;case"tile-remove":this._removeTile(e.tile);break;case"metrics-add":{const{tile:t,metrics:s}=e,i=this._indexMapByTile.get(t);if(!i)throw new Error(`tile ${t.id} not registered!`);this._addSymbols(t.key,i,h(s));break}case"metrics-remove":{const{tile:t,metrics:s}=e,i=this._indexMapByTile.get(t);if(!i)continue;const l=h(s);for(const[e,o]of i.entries()){const t=l.get(e);t&&(o.removeSymbols(t),this._removeSymbols(e,t))}break}}this._featureMetricUpdates.length=0,this._invalidate()}registerFeatureTile(e){this._featureMetricUpdates.push({type:"tile-add",tile:e})}unregisterFeatureTile(e){this._featureMetricUpdates.push({type:"tile-remove",tile:e})}insertFeatureTileMetrics(e,t){this._featureMetricUpdates.push({type:"metrics-add",tile:e,metrics:t})}removeFeatureTileMetrics(e,t){this._featureMetricUpdates.push({type:"metrics-remove",tile:e,metrics:t})}deleteStyleLayers(e){for(const t of this._indexMapByTile.values())for(const s of e){const e=t.get(s);e&&(this._removeSymbols(s,e.getSymbols()),t.delete(s))}this._invalidate()}querySymbols(e,s,i,l){const o=[];for(const[r,n]of this._uniqueSymbolsByStyleLayerId.entries())for(const l of n){const n=l.tileSymbols.find(e=>e.selectedForRendering);n&&t(n,e,s,i)&&o.push({vtlSymbol:n,styleLayerUID:r,tileKey:n.tile.key})}return o}_ensureIndexMap(e){let t=this._indexMapByTile.get(e);return t||(t=new Map,this._indexMapByTile.set(e,t)),t}_invalidate(){this._uniqueSymbolLayerArray=null}_addSymbols(e,t,s){for(const[i,l]of s){let e=t.get(i);e?e.addSymbols(l):(e=o.fromSymbols(l,this.tileCoordRange),t.set(i,e))}this._updateUniqueSymbols(e,s)}_removeTile(e){const t=this._indexMapByTile.get(e);if(t){for(const[e,s]of t.entries())this._removeSymbols(e,s.getSymbols());this._indexMapByTile.delete(e),this._invalidate()}}_removeSymbols(e,t){for(const s of t){const t=s.uniqueSymbol;if(t){if(t.tileSymbols=t.tileSymbols.filter(e=>e!==s),0===t.tileSymbols.length){const s=this._uniqueSymbolsByStyleLayerId.get(e);s.delete(t),0===s.size&&this._uniqueSymbolsByStyleLayerId.delete(e)}s.uniqueSymbol=null}}}_updateUniqueSymbols(t,s){if(0!==s.size){for(const e of this._visibleTiles)e.parentTile||e.key.world!==t.world||e.key.level===t.level&&!e.key.equals(t)||this._matchSymbols(e,t,s);for(const[t,i]of s)for(const s of i)if(!s.uniqueSymbol){s.uniqueSymbol=new e(s);let i=this._uniqueSymbolsByStyleLayerId.get(t);i||(i=new Set,this._uniqueSymbolsByStyleLayerId.set(t,i)),i.add(s.uniqueSymbol)}}}_matchSymbols(e,t,l){if(e.key.level>t.level){const s=e.key.level-t.level;if(e.key.row>>s!==t.row||e.key.col>>s!==t.col)return}if(t.level>e.key.level){const s=t.level-e.key.level;if(t.row>>s!==e.key.row||t.col>>s!==e.key.col)return}const o=new Map;for(const[r,n]of l){const l=[],y=e.key.level<t.level?1:1<<Math.abs(e.key.level-t.level),u=this._indexMapByTile.get(e),h=u?.get(r);if(h)for(const o of n){if(o.uniqueSymbol)continue;const r=s(this.tileCoordRange,o.xTile,t,e.key),n=i(this.tileCoordRange,o.yTile,t,e.key),u=-a,c=this.tileCoordRange+a;if(!(r>=u&&r<c&&n>=u&&n<c)){l.push(o);continue}const m=h.getCandidate(r,n,o.hash,y),f=m?.uniqueSymbol;f?(o.uniqueSymbol=f,f.tileSymbols.push(o)):l.push(o)}l.length>0&&o.set(r,l)}for(const s of e.childrenTiles||[])this._matchSymbols(s,t,o)}_createUniqueSymbolLayerArray(){const e=this._uniqueSymbolsByStyleLayerId,t=new Array(e.size);let s,i=0;for(const[l,o]of e){const e=new Array(o.size);s=0;for(const t of o)e[s++]=t;t[i]={styleLayerUID:l,uniqueSymbols:e},i++}return t}}function h(e){const t=new Map;for(const s of e){const e=s.labelClassId;let i=t.get(e);i||(i=[],t.set(e,i)),i.push(s)}return t}export{u as SymbolRepository};
2
+ import{UniqueSymbol as e}from"./core.js";import{isSearchCircleOverlapingSymbol as t,tileCoordChangeX as s,tileCoordChangeY as i,GridIndex as l}from"./util.js";class o{static fromSymbols(e,t){let s=e.length;if(s>=r){let i=t;do{i/=2,s/=4}while(s>n&&i>y);const r=new l(t,t,i);for(const t of e)r.getCell(t.xTile,t.yTile).push(t);return new o(t,e,r)}return new o(t,e,null)}constructor(e,t,s){this.tileCoordRange=e,this._symbols=t,this._index=s}addSymbols(e){for(const t of e)this._symbols.push(t);if(this._index)for(const t of e)this._index.getCell(t.xTile,t.yTile).push(t)}removeSymbols(e){const t=new Set(e);if(this._symbols=this._symbols.filter(e=>!t.has(e)),this._index)for(const s of this._index.cells)for(let e=0;e<s.length;e++)s[e]=s[e].filter(e=>!t.has(e))}getSymbols(){return this._symbols}getCandidate(e,t,s,i){if(!this._index){for(const l of this._symbols)if(s===l.hash&&Math.abs(e-l.xTile)<=i&&Math.abs(t-l.yTile)<=i)return l;return null}const l=this._index.getCellSpan(e-i,t-i,e+i,t+i),[o,r,n,y]=l;for(let a=r;a<=y;a++)for(let l=o;l<=n;l++){const o=this._index.cells[a][l];for(const l of o)if(s===l.hash&&Math.abs(e-l.xTile)<=i&&Math.abs(t-l.yTile)<=i)return l}return null}}const r=32,n=8,y=64,a=20;class u{constructor(e,t){this.tileCoordRange=e,this._visibleTiles=t,this._indexMapByTile=new Map,this._uniqueSymbolsByStyleLayerId=new Map,this._featureMetricUpdates=[]}get uniqueSymbols(){return null==this._uniqueSymbolLayerArray&&(this._uniqueSymbolLayerArray=this._createUniqueSymbolLayerArray()),this._uniqueSymbolLayerArray}registerVectorTile(e,t){const s=this._ensureIndexMap(e),i=t?.values()??s.keys();for(const l of i){const e=s.get(l);e&&(this._removeSymbols(l,e.getSymbols()),s.delete(l))}this._addSymbols(e.key,s,e.symbols),this._invalidate()}unregisterVectorTile(e){this._removeTile(e),this._invalidate()}flushFeatureTileUpdateMessages(){for(const e of this._featureMetricUpdates)switch(e.type){case"tile-add":this._ensureIndexMap(e.tile);break;case"tile-remove":this._removeTile(e.tile);break;case"metrics-add":{const{tile:t,metrics:s}=e,i=this._indexMapByTile.get(t);if(!i)throw new Error(`tile ${t.id} not registered!`);this._addSymbols(t.key,i,h(s));break}case"metrics-remove":{const{tile:t,metrics:s}=e,i=this._indexMapByTile.get(t);if(!i)continue;const l=h(s);for(const[e,o]of i.entries()){const t=l.get(e);t&&(o.removeSymbols(t),this._removeSymbols(e,t))}break}}this._featureMetricUpdates.length=0,this._invalidate()}registerFeatureTile(e){this._featureMetricUpdates.push({type:"tile-add",tile:e})}unregisterFeatureTile(e){this._featureMetricUpdates.push({type:"tile-remove",tile:e})}insertFeatureTileMetrics(e,t){this._featureMetricUpdates.push({type:"metrics-add",tile:e,metrics:t})}removeFeatureTileMetrics(e,t){this._featureMetricUpdates.push({type:"metrics-remove",tile:e,metrics:t})}deleteStyleLayers(e){for(const t of this._indexMapByTile.values())for(const s of e){const e=t.get(s);e&&(this._removeSymbols(s,e.getSymbols()),t.delete(s))}this._invalidate()}querySymbols(e,s,i,l){const o=[];for(const[r,n]of this._uniqueSymbolsByStyleLayerId.entries())for(const l of n){const n=l.tileSymbols.find(e=>e.selectedForRendering);n&&t(n,e,s,i)&&o.push({vtlSymbol:n,styleLayerUID:r,tileKey:n.tile.key})}return o}_ensureIndexMap(e){let t=this._indexMapByTile.get(e);return t||(t=new Map,this._indexMapByTile.set(e,t)),t}_invalidate(){this._uniqueSymbolLayerArray=null}_addSymbols(e,t,s){for(const[i,l]of s){let e=t.get(i);e?e.addSymbols(l):(e=o.fromSymbols(l,this.tileCoordRange),t.set(i,e))}this._updateUniqueSymbols(e,s)}_removeTile(e){const t=this._indexMapByTile.get(e);if(t){for(const[e,s]of t.entries())this._removeSymbols(e,s.getSymbols());this._indexMapByTile.delete(e),this._invalidate()}}_removeSymbols(e,t){for(const s of t){const t=s.uniqueSymbol;if(t){if(t.tileSymbols=t.tileSymbols.filter(e=>e!==s),0===t.tileSymbols.length){const s=this._uniqueSymbolsByStyleLayerId.get(e);s.delete(t),0===s.size&&this._uniqueSymbolsByStyleLayerId.delete(e)}s.uniqueSymbol=null}}}_updateUniqueSymbols(t,s){if(0!==s.size){for(const e of this._visibleTiles)e.parentTile||e.key.world!==t.world||e.key.level===t.level&&!e.key.equals(t)||this._matchSymbols(e,t,s);for(const[t,i]of s)for(const s of i)if(!s.uniqueSymbol){s.uniqueSymbol=new e(s);let i=this._uniqueSymbolsByStyleLayerId.get(t);i||(i=new Set,this._uniqueSymbolsByStyleLayerId.set(t,i)),i.add(s.uniqueSymbol)}}}_matchSymbols(e,t,l){if(e.key.level>t.level){const s=e.key.level-t.level;if(e.key.row>>s!==t.row||e.key.col>>s!==t.col)return}if(t.level>e.key.level){const s=t.level-e.key.level;if(t.row>>s!==e.key.row||t.col>>s!==e.key.col)return}const o=new Map;for(const[r,n]of l){const l=[],y=e.key.level<t.level?0:1<<Math.abs(e.key.level-t.level),u=this._indexMapByTile.get(e),h=u?.get(r);if(h)for(const o of n){if(o.uniqueSymbol)continue;const r=s(this.tileCoordRange,o.xTile,t,e.key),n=i(this.tileCoordRange,o.yTile,t,e.key),u=-a,c=this.tileCoordRange+a;if(!(r>=u&&r<c&&n>=u&&n<c)){l.push(o);continue}const m=h.getCandidate(r,n,o.hash,y),f=m?.uniqueSymbol;f?(o.uniqueSymbol=f,f.tileSymbols.push(o)):l.push(o)}l.length>0&&o.set(r,l)}for(const s of e.childrenTiles||[])this._matchSymbols(s,t,o)}_createUniqueSymbolLayerArray(){const e=this._uniqueSymbolsByStyleLayerId,t=new Array(e.size);let s,i=0;for(const[l,o]of e){const e=new Array(o.size);s=0;for(const t of o)e[s++]=t;t[i]={styleLayerUID:l,uniqueSymbols:e},i++}return t}}function h(e){const t=new Map;for(const s of e){const e=s.labelClassId;let i=t.get(e);i||(i=[],t.set(e,i)),i.push(s)}return t}export{u as SymbolRepository};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../../../../core/Logger.js";const t=()=>e.getLogger("esri.views.2d.engine.webgl.alignmentUtils");function r(e){if(!e)return 0;switch(e){case"Left":case"left":return-1;case"Right":case"right":return 1;case"Justify":return t().warnOnce("Horizontal alignment 'justify' is not implemented. Falling back to 'center'."),0;case"Center":case"center":return 0}}function n(e){if(!e)return 0;switch(e){case"Top":case"top":return 1;case"Center":case"middle":return 0;case"Baseline":case"baseline":return 2;case"Bottom":case"bottom":return-1}}function a(e){switch(e){case"above-left":case"esriServerPointLabelPlacementAboveLeft":return["right","bottom"];case"above-center":case"above-along":case"esriServerPointLabelPlacementAboveCenter":case"esriServerLinePlacementAboveAlong":return["center","bottom"];case"above-right":case"esriServerPointLabelPlacementAboveRight":return["left","bottom"];case"center-left":case"esriServerPointLabelPlacementCenterLeft":return["right","middle"];case"center-center":case"center-along":case"esriServerPointLabelPlacementCenterCenter":case"esriServerLinePlacementCenterAlong":case"always-horizontal":case"esriServerPolygonPlacementAlwaysHorizontal":return["center","middle"];case"center-right":case"esriServerPointLabelPlacementCenterRight":return["left","middle"];case"below-left":case"esriServerPointLabelPlacementBelowLeft":return["right","top"];case"below-center":case"below-along":case"esriServerPointLabelPlacementBelowCenter":case"esriServerLinePlacementBelowAlong":return["center","top"];case"below-right":case"esriServerPointLabelPlacementBelowRight":return["left","top"];default:return console.debug(`Found invalid placement type ${e}`),["center","middle"]}}function c(e){switch(e){case 1:case"right":return-1;case 0:case"center":return 0;case-1:case"left":return 1;default:return console.debug(`Found invalid horizontal alignment ${e}`),0}}function s(e){switch(e){case 1:case"top":return 1;case 0:case"middle":return 0;case-1:case 2:case"baseline":case"bottom":return-1;default:return console.debug(`Found invalid vertical alignment ${e}`),0}}export{a as getAlignmentFromPlacement,r as getXAnchorDirection,c as getXDirection,n as getYAnchorDirection,s as getYDirection};
2
+ function e(e){if(!e)return 0;switch(e){case"Left":case"left":return-1;case"Right":case"right":return 1;case"justify":case"Justify":return 2;case"Center":case"center":return 0}}function t(e){if(!e)return 0;switch(e){case"Top":case"top":return 1;case"Center":case"middle":return 0;case"Baseline":case"baseline":return 2;case"Bottom":case"bottom":return-1}}function r(e){switch(e){case"above-left":case"esriServerPointLabelPlacementAboveLeft":return["right","bottom"];case"above-center":case"above-along":case"esriServerPointLabelPlacementAboveCenter":case"esriServerLinePlacementAboveAlong":return["center","bottom"];case"above-right":case"esriServerPointLabelPlacementAboveRight":return["left","bottom"];case"center-left":case"esriServerPointLabelPlacementCenterLeft":return["right","middle"];case"center-center":case"center-along":case"esriServerPointLabelPlacementCenterCenter":case"esriServerLinePlacementCenterAlong":case"always-horizontal":case"esriServerPolygonPlacementAlwaysHorizontal":return["center","middle"];case"center-right":case"esriServerPointLabelPlacementCenterRight":return["left","middle"];case"below-left":case"esriServerPointLabelPlacementBelowLeft":return["right","top"];case"below-center":case"below-along":case"esriServerPointLabelPlacementBelowCenter":case"esriServerLinePlacementBelowAlong":return["center","top"];case"below-right":case"esriServerPointLabelPlacementBelowRight":return["left","top"];default:return console.debug(`Found invalid placement type ${e}`),["center","middle"]}}function n(e){switch(e){case 1:case"right":return-1;case 2:case"justify":return 1;case 0:case"center":return 0;case-1:case"left":return 1;default:return console.debug(`Found invalid horizontal alignment ${e}`),0}}function a(e){switch(e){case 1:case"top":return 1;case 0:case"middle":return 0;case-1:case 2:case"baseline":case"bottom":return-1;default:return console.debug(`Found invalid vertical alignment ${e}`),0}}export{r as getAlignmentFromPlacement,e as getXAnchorDirection,n as getXDirection,t as getYAnchorDirection,a as getYDirection};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- const t=8,e=t-2,c=1e-30,h=64,i=4294967295,o=512,a=256,d=256/360,n=128,p=16777216,r=!1,s=128,f=8,g=10,l=29,m=1,v=16,w=16,x=o/s,b=8,j=50,k=10,q=24,u=3,y=24,z=8,A=3,B=24,C=8,D=4,E={metrics:{width:15,height:17,left:0,top:-7,advance:14}},F=1024,G=0,H=0,I=0,J=1,K=2,L=3,M=4,N=5,O=6,P=12,Q=13,R=5,S=6,T=5,U=6,V=6,W=1<<V,X=W<<1,Y=!1,Z=1.05,$=3,_=1,tt=3,et=3,ct=5,ht=6,it=1.15,ot=2,at=4,dt=128,nt=256,pt=nt-2*at,rt=2,st=128,ft=1,gt=8,lt=500,mt=4,vt=128,wt=10,xt=1024,bt=2,jt=0,kt=1,qt=4,ut=8,yt=16,zt=4,At=1,Bt=4,Ct=8,Dt=32,Et=64,Ft=128,Gt=4,Ht=1,It=1<<20,Jt=.75,Kt=10,Lt=.75,Mt=12,Nt=256,Ot=32,Pt=512,Qt=0,Rt=1;export{Ht as MAX_TILE_RESHUFFLES_PER_FRAME,Kt as RESHUFFLING_EXEMPT_DRAW_CALLS,It as RESHUFFLING_EXEMPT_MEMORY_BYTES,Lt as RESHUFFLING_TARGET_DRAW_EFFICIENCY,Jt as RESHUFFLING_TARGET_MEMORY_EFFICIENCY,d as angleFactor256,K as animationUnit,Nt as attributeStoreInitialSize,F as attributeStoreTextureSize,E as averageGlyphMosaicItem,Rt as backbufferStencilClipped,Qt as backbufferStencilVisible,Dt as bitsetFillHasPatternHeightPrecisionFactor,Et as bitsetFillHasPatternWidthPrecisionFactor,Ct as bitsetFillHasUnresolvedReplacementColor,Bt as bitsetFillRandomPatternOffset,yt as bitsetGenericConsiderAlphaOnly,bt as bitsetGenericLockColor,zt as bitsetLineScaleDash,kt as bitsetMarkerAlignmentMap,jt as bitsetMarkerAlignmentScreen,qt as bitsetMarkerOutlineAllowColorOverride,ut as bitsetMarkerScaleSymbolsProportionally,At as bitsetTypeFillOutline,vt as bufferDataMinimumSize,mt as bufferDataPoolSize,g as chartMaxFields,w as collisionBoxPadding,s as collisionBucketSize,v as collisionEarlyRejectBucketSize,m as collisionMaxZoomDelta,b as collisionPlacementPadding,x as collisionTileBoxSize,n as compressionFactorForU16,M as dataDrivenUnit0,N as dataDrivenUnit1,O as dataDrivenUnit2,r as debugLabels,dt as defaultSdfTextureSize,gt as displayRecordIntPerElement,f as dotDensityMaxFields,X as effectFlag0,Y as enableEarlyLabelDiscard,h as extrudeScale,W as filterFlag0,J as filterFlagsUnit,q as glyphSize,P as gpgpuUnit,ft as gradientTextureExternalPadding,k as heuristicGlyphsPerFeature,j as heuristicGlyphsPerLine,et as hittestSmallSymbolThreshold,_ as hittestToleranceDesktop,$ as hittestToleranceMobile,tt as hittestToleranceSmallSymbol,D as labelPlacementOffsetPadding,Q as localTimeOriginUnit,l as magicLabelLineHeight,Mt as maxGeohashLevel,ot as maxGpuUploadsPerFrame,V as maxHighlightReasons,p as maxRepresentableInt,Pt as maxTextLineWidth,wt as minMaxZoomPrecisionFactor,Ot as minTextLineWidth,c as nanMagicNumber,lt as patchPixelBufferAllocSize,rt as patternFillRasterizationScale,i as pictureFillColor,xt as randomInsidePolygonTextureSize,a as rasterTileSize,st as rasterizedVectorMarkerMinSize,A as sdfBufferGlyphSDFCreator,u as sdfBufferServer,C as sdfRadiusComplex,z as sdfRadiusSimple,B as sdfSizeComplex,y as sdfSizeSimple,at as spritePadding,pt as svgSdfTextureInnerSize,nt as svgSdfTextureSize,I as textureBindingBitmap,H as textureBindingGlyphAtlas,R as textureBindingHighlight0,S as textureBindingHighlight1,T as textureBindingRenderer0,U as textureBindingRenderer1,G as textureBindingSpriteAtlas,Gt as textureUploadManagerBudget,Ft as textureUploadManagerChunkSize,Z as thinLineHalfWidthThreshold,o as tileSize,L as visualVariableUnit,it as vtlHighResCutoff,ht as vtlTextureBindingUnitGlyphs,ct as vtlTextureBindingUnitSprites,e as webglMaxInnerStops,t as webglMaxStops};
2
+ const t=8,e=t-2,c=1e-30,h=64,i=4294967295,o=512,a=256,d=256/360,n=128,p=16777216,r=!1,s=128,f=8,g=10,l=29,m=1,v=16,w=16,x=o/s,b=8,j=50,k=10,q=24,u=3,y=24,z=8,A=3,B=24,C=8,D=4,E={metrics:{width:15,height:17,left:0,top:-7,advance:14}},F=1024,G=0,H=0,I=0,J=1,K=2,L=3,M=4,N=5,O=6,P=12,Q=13,R=5,S=6,T=5,U=6,V=6,W=1<<V,X=W<<1,Y=!1,Z=1.05,$=3,_=1,tt=3,et=3,ct=5,ht=6,it=1.15,ot=2,at=4,dt=128,nt=256,pt=nt-2*at,rt=2,st=128,ft=1,gt=8,lt=500,mt=4,vt=128,wt=1024,xt=2,bt=0,jt=1,kt=4,qt=8,ut=16,yt=4,zt=1,At=4,Bt=8,Ct=32,Dt=64,Et=128,Ft=4,Gt=1,Ht=1<<20,It=.75,Jt=10,Kt=.75,Lt=12,Mt=256,Nt=32,Ot=512,Pt=0,Qt=1;export{Gt as MAX_TILE_RESHUFFLES_PER_FRAME,Jt as RESHUFFLING_EXEMPT_DRAW_CALLS,Ht as RESHUFFLING_EXEMPT_MEMORY_BYTES,Kt as RESHUFFLING_TARGET_DRAW_EFFICIENCY,It as RESHUFFLING_TARGET_MEMORY_EFFICIENCY,d as angleFactor256,K as animationUnit,Mt as attributeStoreInitialSize,F as attributeStoreTextureSize,E as averageGlyphMosaicItem,Qt as backbufferStencilClipped,Pt as backbufferStencilVisible,Ct as bitsetFillHasPatternHeightPrecisionFactor,Dt as bitsetFillHasPatternWidthPrecisionFactor,Bt as bitsetFillHasUnresolvedReplacementColor,At as bitsetFillRandomPatternOffset,ut as bitsetGenericConsiderAlphaOnly,xt as bitsetGenericLockColor,yt as bitsetLineScaleDash,jt as bitsetMarkerAlignmentMap,bt as bitsetMarkerAlignmentScreen,kt as bitsetMarkerOutlineAllowColorOverride,qt as bitsetMarkerScaleSymbolsProportionally,zt as bitsetTypeFillOutline,vt as bufferDataMinimumSize,mt as bufferDataPoolSize,g as chartMaxFields,w as collisionBoxPadding,s as collisionBucketSize,v as collisionEarlyRejectBucketSize,m as collisionMaxZoomDelta,b as collisionPlacementPadding,x as collisionTileBoxSize,n as compressionFactorForU16,M as dataDrivenUnit0,N as dataDrivenUnit1,O as dataDrivenUnit2,r as debugLabels,dt as defaultSdfTextureSize,gt as displayRecordIntPerElement,f as dotDensityMaxFields,X as effectFlag0,Y as enableEarlyLabelDiscard,h as extrudeScale,W as filterFlag0,J as filterFlagsUnit,q as glyphSize,P as gpgpuUnit,ft as gradientTextureExternalPadding,k as heuristicGlyphsPerFeature,j as heuristicGlyphsPerLine,et as hittestSmallSymbolThreshold,_ as hittestToleranceDesktop,$ as hittestToleranceMobile,tt as hittestToleranceSmallSymbol,D as labelPlacementOffsetPadding,Q as localTimeOriginUnit,l as magicLabelLineHeight,Lt as maxGeohashLevel,ot as maxGpuUploadsPerFrame,V as maxHighlightReasons,p as maxRepresentableInt,Ot as maxTextLineWidth,Nt as minTextLineWidth,c as nanMagicNumber,lt as patchPixelBufferAllocSize,rt as patternFillRasterizationScale,i as pictureFillColor,wt as randomInsidePolygonTextureSize,a as rasterTileSize,st as rasterizedVectorMarkerMinSize,A as sdfBufferGlyphSDFCreator,u as sdfBufferServer,C as sdfRadiusComplex,z as sdfRadiusSimple,B as sdfSizeComplex,y as sdfSizeSimple,at as spritePadding,pt as svgSdfTextureInnerSize,nt as svgSdfTextureSize,I as textureBindingBitmap,H as textureBindingGlyphAtlas,R as textureBindingHighlight0,S as textureBindingHighlight1,T as textureBindingRenderer0,U as textureBindingRenderer1,G as textureBindingSpriteAtlas,Ft as textureUploadManagerBudget,Et as textureUploadManagerChunkSize,Z as thinLineHalfWidthThreshold,o as tileSize,L as visualVariableUnit,it as vtlHighResCutoff,ht as vtlTextureBindingUnitGlyphs,ct as vtlTextureBindingUnitSprites,e as webglMaxInnerStops,t as webglMaxStops};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{fromRotation as t,multiply as e,translate as s,rotate as i}from"../../../../../../core/libs/gl-matrix-2/math/mat2d.js";import{create as n}from"../../../../../../core/libs/gl-matrix-2/factories/mat2df32.js";import{transformMat2d as o,set as h}from"../../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as r}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f32.js";import{getXAnchorDirection as a,getYAnchorDirection as f}from"../../alignmentUtils.js";import c from"../../Rect.js";import d from"../../collisions/BoundingBox.js";const l=22,g=4,m=l+g,u=l-6,x=Math.PI/180,p=8,_=1.5;class b{constructor(t,e,s,i){this._rotationT=n(),this._transform=n(),this._angle=0,this._bounds=null;const{mosaicItem:o,rect:h,shaping:r,code:a}=s,f=o.rect;this.width=0===a?h.width:f.width*i,this.height=0===a?h.height:f.height*i,this.x=i*(t+r.xOffset+h.left),this.y=i*(e+r.yOffset-h.top),this.textureBinding=o.textureBinding,this.texcoords={topLeft:[f.x,f.y],topRight:[f.x+f.width,f.y],bottomLeft:[f.x,f.y+f.height],bottomRight:[f.x+f.width,f.y+f.height]}}set angle(e){this._angle=e,t(this._rotationT,-e),this._offsets=this._bounds=null}get angle(){return this._angle}get offsets(){if(!this._offsets){const{x:s,y:i,width:h,height:r}=this,a=t(n(),-this.angle),f=e(n(),a,this._transform);this._offsets={topLeft:o([0,0],[s,i],f),topRight:o([0,0],[s+h,i],f),bottomLeft:o([0,0],[s,i+r],f),bottomRight:o([0,0],[s+h,i+r],f)}}return this._offsets}get bounds(){if(this.width<=0)return null;if(!this._bounds){const t=this.offsets;let e=1/0,s=1/0,i=-1/0,n=-1/0;for(const[f,c]of[t.topLeft,t.topRight,t.bottomLeft,t.bottomRight])e=Math.min(e,f),s=Math.min(s,c),i=Math.max(i,f),n=Math.max(n,c);const o=i-e,h=n-s,r=e+o/2,a=s+h/2;this._bounds=new d(r,a,o,h)}return this._bounds}setTransform(t){this._transform=t,this._offsets=null}}const y=(t,e)=>({code:0,mosaicItem:{rect:new c(0,0,11,8),sdf:!0,page:0,textureBinding:e},rect:{height:4,width:t,left:0,top:0},shaping:{xOffset:0,yOffset:0,xAdvance:0,yAdvance:0}});function w(t,e){return t.forEach(t=>o(t,t,e)),{topLeft:t[0],topRight:t[1],bottomLeft:t[2],bottomRight:t[3]}}class M{constructor(t,e,s,i){this._rotation=0,this._decorate(t,e,s,i),this.glyphs=t,this.bounds=this._createBounds(t),this.isMultiline=e.length>1,this._hasRotation=0!==s.angle,this._transform=this._createGlyphTransform(this.bounds,s),this._borderLineSizePx=s.borderLineSizePx,(s.borderLineSizePx||s.hasBackground)&&([this.bounds,this.textBox]=this.shapeBackground(this._transform));for(const n of t)n.setTransform(this._transform)}setRotation(s){if(0===s&&0===this._rotation)return;this._rotation=s;const i=this._transform,o=t(n(),s);e(i,o,i);for(const t of this.glyphs)t.setTransform(this._transform)}_decorate(t,e,s,i){if(!s.decoration||"none"===s.decoration||!t.length)return;const n=s.scale,o="underline"===s.decoration?i?.baseline??m:i?.midline??u,h=t[0].textureBinding;for(const r of e){const e=r.startX*n,s=r.startY*n,i=(r.width+r.glyphWidthEnd)*n;t.push(new b(e,s+o*n,y(i,h),1))}}shapeBackground(t){const e=this._borderLineSizePx||0,s=(_+e)/2,i=this._borderLineSizePx?s:0,{xmin:n,ymin:o,xmax:h,ymax:r,x:a,y:f,width:c,height:l}=this.bounds,g=[n-p,o-p],m=[h+p,o-p],u=[n-p,r+p],x=[h+p,r+p],b=w([[g[0]-s,g[1]-s],[m[0]+s,m[1]-s],[g[0]+i,g[1]+i],[m[0]-i,m[1]+i]],t),y=w([[u[0]+i,u[1]-i],[x[0]-i,x[1]-i],[u[0]-s,u[1]+s],[x[0]+s,x[1]+s]],t),M=w([[g[0]-s,g[1]-s],[g[0]+i,g[1]+i],[u[0]-s,u[1]+s],[u[0]+i,u[1]-i]],t),L=w([[m[0]-i,m[1]+i],[m[0]+s,m[1]-s],[x[0]-i,x[1]-i],[x[0]+s,x[1]+s]],t),R={main:w([g,m,u,x],t),top:b,bot:y,left:M,right:L};return[new d(a,f,c+2*s,l+2*s),R]}get boundsT(){const t=this.bounds,e=h(r(),t.x,t.y);if(o(e,e,this._transform),this._hasRotation){const s=Math.max(t.width,t.height);return new d(e[0],e[1],s,s)}return new d(e[0],e[1],t.width,t.height)}_createBounds(t){let e=1/0,s=1/0,i=0,n=0;for(const r of t)e=Math.min(e,r.offsets.topLeft[0]),s=Math.min(s,r.offsets.topLeft[1]),i=Math.max(i,r.offsets.bottomRight[0]),n=Math.max(n,r.offsets.bottomRight[1]);const o=i-e,h=n-s;return new d(e+o/2,s+h/2,o,h)}_createGlyphTransform(t,e){const o=x*e.angle,a=n(),f=r();return s(a,a,h(f,e.xOffset,-e.yOffset)),e.useCIMAngleBehavior?i(a,a,o):(s(a,a,h(f,t.x,t.y)),i(a,a,o),s(a,a,h(f,-t.x,-t.y))),a}}class L{constructor(t,e,s,i,n,o){this.glyphWidthEnd=0,this.startX=0,this.startY=0,this.start=Math.max(0,Math.min(e,s)),this.end=Math.max(0,Math.max(e,s)),this.end<t.length&&(this.glyphWidthEnd=t[this.end].rect.width),this.width=i,this.yMin=n,this.yMax=o}}const R=t=>10===t,A=t=>32===t;function v(t,e,s){const i=new Array,n=1/s.scale,o=s.maxLineWidth*n,h=e?t.length-1:0,r=e?-1:t.length,a=e?-1:1;let f=h,c=0,d=0,l=f,g=l,m=0,u=1/0,x=0;for(;f!==r;){const{code:e,rect:s,shaping:n}=t[f],r=Math.abs(s.top);if(R(e)||A(e)||(u=Math.min(u,r),x=Math.max(x,r+s.height)),R(e))f!==h&&(i.push(new L(t,l,f-a,c,u===1/0?0:u,x)),u=1/0,x=0),c=0,l=f+a,g=f+a,d=0;else if(A(e))g=f+a,d=0,m=n.xAdvance,c+=n.xAdvance;else if(c>o){if(g!==l){const e=g-2*a;c-=m,i.push(new L(t,l,e,c-d,u,x)),u=1/0,x=0,l=g,c=d}else i.push(new L(t,l,f-a,c,u,x)),u=1/0,x=0,l=f,g=f,c=0;c+=n.xAdvance,d+=n.xAdvance}else c+=n.xAdvance,d+=n.xAdvance;f+=a}const p=new L(t,l,f-a,c,u,x);return p.start>=0&&p.end<t.length&&i.push(p),i}function B(t,e){let s=0;for(let o=0;o<t.length;o++){const{width:e}=t[o];s=Math.max(e,s)}const i="underline"===e.decoration?g:0,n=t[0].yMin;return{x:0,y:n,height:t[t.length-1].yMax+e.lineHeight*(t.length-1)+i-n,width:s}}function T(t,e){const s=e.scale,i=new Array,n=t.sdfPadding,{faceInfo:o,glyphs:h,isRightToLeft:r}=t,c=v(h,r,e),d=c.length?B(c,e):{y:0,height:0},g=a(e.horizontalAlignment),m=f(e.verticalAlignment),u=2===m?1:0,x=u?0:m-1,p=(1-u)*-d.y+x*(d.height/2)+u*-l;for(let a=0;a<c.length;a++){const{start:o,end:r,width:f}=c[a];let d=-1*(g+1)*(f/2)-n;const l=(t.isRightToLeft?c.length-1-a:a)*e.lineHeight+p-n;c[a].startX=d,c[a].startY=l;for(let t=o;t<=r;t++){const e=h[t];if(R(e.code))continue;const n=new b(d,l,e,s);d+=e.shaping.xAdvance,i.push(n)}}return new M(i,c,e,o)}export{b as ShapedGlyph,M as ShapingInfo,T as shapeGlyphs};
2
+ import{fromRotation as t,multiply as e,translate as i,rotate as s}from"../../../../../../core/libs/gl-matrix-2/math/mat2d.js";import{create as n}from"../../../../../../core/libs/gl-matrix-2/factories/mat2df32.js";import{transformMat2d as o,set as h}from"../../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as r}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f32.js";import{getXAnchorDirection as a,getYAnchorDirection as f}from"../../alignmentUtils.js";import c from"../../Rect.js";import d from"../../collisions/BoundingBox.js";const l=22,g=4,m=l+g,u=l-6,x=Math.PI/180,p=8,_=1.5;class y{constructor(t,e,i,s){this._rotationT=n(),this._transform=n(),this._angle=0,this._bounds=null;const{mosaicItem:o,rect:h,shaping:r,code:a}=i,f=o.rect;this.width=0===a?h.width:f.width*s,this.height=0===a?h.height:f.height*s,this.x=s*(t+r.xOffset+h.left),this.y=s*(e+r.yOffset-h.top),this.textureBinding=o.textureBinding,this.texcoords={topLeft:[f.x,f.y],topRight:[f.x+f.width,f.y],bottomLeft:[f.x,f.y+f.height],bottomRight:[f.x+f.width,f.y+f.height]}}set angle(e){this._angle=e,t(this._rotationT,-e),this._offsets=this._bounds=null}get angle(){return this._angle}get offsets(){if(!this._offsets){const{x:i,y:s,width:h,height:r}=this,a=t(n(),-this.angle),f=e(n(),a,this._transform);this._offsets={topLeft:o([0,0],[i,s],f),topRight:o([0,0],[i+h,s],f),bottomLeft:o([0,0],[i,s+r],f),bottomRight:o([0,0],[i+h,s+r],f)}}return this._offsets}get bounds(){if(this.width<=0)return null;if(!this._bounds){const t=this.offsets;let e=1/0,i=1/0,s=-1/0,n=-1/0;for(const[f,c]of[t.topLeft,t.topRight,t.bottomLeft,t.bottomRight])e=Math.min(e,f),i=Math.min(i,c),s=Math.max(s,f),n=Math.max(n,c);const o=s-e,h=n-i,r=e+o/2,a=i+h/2;this._bounds=new d(r,a,o,h)}return this._bounds}setTransform(t){this._transform=t,this._offsets=null}}const b=(t,e)=>({code:0,mosaicItem:{rect:new c(0,0,11,8),sdf:!0,page:0,textureBinding:e},rect:{height:4,width:t,left:0,top:0},shaping:{xOffset:0,yOffset:0,xAdvance:0,yAdvance:0}});function w(t,e){return t.forEach(t=>o(t,t,e)),{topLeft:t[0],topRight:t[1],bottomLeft:t[2],bottomRight:t[3]}}class M{constructor(t,e,i,s){this._rotation=0,this._decorate(t,e,i,s),this.glyphs=t,this.bounds=this._createBounds(t),this.isMultiline=e.length>1,this._hasRotation=0!==i.angle,this._transform=this._createGlyphTransform(this.bounds,i),this._borderLineSizePx=i.borderLineSizePx,(i.borderLineSizePx||i.hasBackground)&&([this.bounds,this.textBox]=this.shapeBackground(this._transform));for(const n of t)n.setTransform(this._transform)}setRotation(i){if(0===i&&0===this._rotation)return;this._rotation=i;const s=this._transform,o=t(n(),i);e(s,o,s);for(const t of this.glyphs)t.setTransform(this._transform)}_decorate(t,e,i,s){if(!i.decoration||"none"===i.decoration||!t.length)return;const n=i.scale,o="underline"===i.decoration?s?.baseline??m:s?.midline??u,h=t[0].textureBinding;for(const r of e){const e=r.startX*n,i=r.startY*n,s=(r.width+r.glyphWidthEnd)*n;t.push(new y(e,i+o*n,b(s,h),1))}}shapeBackground(t){const e=this._borderLineSizePx||0,i=(_+e)/2,s=this._borderLineSizePx?i:0,{xmin:n,ymin:o,xmax:h,ymax:r,x:a,y:f,width:c,height:l}=this.bounds,g=[n-p,o-p],m=[h+p,o-p],u=[n-p,r+p],x=[h+p,r+p],y=w([[g[0]-i,g[1]-i],[m[0]+i,m[1]-i],[g[0]+s,g[1]+s],[m[0]-s,m[1]+s]],t),b=w([[u[0]+s,u[1]-s],[x[0]-s,x[1]-s],[u[0]-i,u[1]+i],[x[0]+i,x[1]+i]],t),M=w([[g[0]-i,g[1]-i],[g[0]+s,g[1]+s],[u[0]-i,u[1]+i],[u[0]+s,u[1]-s]],t),L=w([[m[0]-s,m[1]+s],[m[0]+i,m[1]-i],[x[0]-s,x[1]-s],[x[0]+i,x[1]+i]],t),A={main:w([g,m,u,x],t),top:y,bot:b,left:M,right:L};return[new d(a,f,c+2*i,l+2*i),A]}get boundsT(){const t=this.bounds,e=h(r(),t.x,t.y);if(o(e,e,this._transform),this._hasRotation){const i=Math.max(t.width,t.height);return new d(e[0],e[1],i,i)}return new d(e[0],e[1],t.width,t.height)}_createBounds(t){let e=1/0,i=1/0,s=0,n=0;for(const r of t)e=Math.min(e,r.offsets.topLeft[0]),i=Math.min(i,r.offsets.topLeft[1]),s=Math.max(s,r.offsets.bottomRight[0]),n=Math.max(n,r.offsets.bottomRight[1]);const o=s-e,h=n-i;return new d(e+o/2,i+h/2,o,h)}_createGlyphTransform(t,e){const o=x*e.angle,a=n(),f=r();return i(a,a,h(f,e.xOffset,-e.yOffset)),e.useCIMAngleBehavior?s(a,a,o):(i(a,a,h(f,t.x,t.y)),s(a,a,o),i(a,a,h(f,-t.x,-t.y))),a}}class L{constructor(t,e,i,s,n,o){this.glyphWidthEnd=0,this.startX=0,this.startY=0,this.start=Math.max(0,Math.min(e,i)),this.end=Math.max(0,Math.max(e,i)),this.end<t.length&&(this.glyphWidthEnd=t[this.end].rect.width),this.width=s,this.yMin=n,this.yMax=o}}const A=t=>10===t,R=t=>32===t;function v(t,e,i){const s=new Array,n=1/i.scale,o=i.maxLineWidth*n,h=e?t.length-1:0,r=e?-1:t.length,a=e?-1:1;let f=h,c=0,d=0,l=f,g=l,m=0,u=1/0,x=0;for(;f!==r;){const{code:e,rect:i,shaping:n}=t[f],r=Math.abs(i.top);if(A(e)||R(e)||(u=Math.min(u,r),x=Math.max(x,r+i.height)),A(e))f!==h&&(s.push(new L(t,l,f-a,c,u===1/0?0:u,x)),u=1/0,x=0),c=0,l=f+a,g=f+a,d=0;else if(R(e))g=f+a,d=0,m=n.xAdvance,c+=n.xAdvance;else if(c>o){if(g!==l){const e=g-2*a;c-=m,s.push(new L(t,l,e,c-d,u,x)),u=1/0,x=0,l=g,c=d}else s.push(new L(t,l,f-a,c,u,x)),u=1/0,x=0,l=f,g=f,c=0;c+=n.xAdvance,d+=n.xAdvance}else c+=n.xAdvance,d+=n.xAdvance;f+=a}const p=new L(t,l,f-a,c,u,x);return p.start>=0&&p.end<t.length&&s.push(p),s}function B(t,e){let i=0;for(let o=0;o<t.length;o++){const{width:e}=t[o];i=Math.max(e,i)}const s="underline"===e.decoration?g:0,n=t[0].yMin;return{x:0,y:n,height:t[t.length-1].yMax+e.lineHeight*(t.length-1)+s-n,width:i}}function T(t,e,i){let s=0;for(let n=e;n<i;n++)R(t[n].code)&&!A(t[n+1].code)&&s++;return s}function j(t,e){const i=e.scale,s=new Array,n=t.sdfPadding,{faceInfo:o,glyphs:h,isRightToLeft:r}=t,c="justify"===e.horizontalAlignment||"Justify"===e.horizontalAlignment,d=v(h,r,e),g=d.length?B(d,e):{y:0,height:0,width:0},m=c?r?1:-1:a(e.horizontalAlignment),u=f(e.verticalAlignment),x=2===u?1:0,p=x?0:u-1,_=o?.baseline??l,b=d.length>1,w=x?b?-g.y-g.height:-_:-g.y+p*(g.height/2);for(let a=0;a<d.length;a++){const{start:o,end:r,width:f}=d[a],l=c&&a<d.length-1?T(h,o,r):0,u=l>0?(g.width-f)/l:0;let x=-1*(m+1)*((u>0?g.width:f)/2)-n;const p=(t.isRightToLeft?d.length-1-a:a)*e.lineHeight+w-n;d[a].startX=x,d[a].startY=p;for(let t=o;t<=r;t++){const e=h[t];if(A(e.code))continue;const n=new y(x,p,e,i);x+=e.shaping.xAdvance,u>0&&R(e.code)&&(x+=u),s.push(n)}}return new M(s,d,e,o)}export{y as ShapedGlyph,M as ShapingInfo,j as shapeGlyphs};
@@ -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{cDegTo256 as t}from"../../../../vectorTiles/GeometryUtils.js";import{minMaxZoomPrecisionFactor as e,spritePadding as o}from"../../../definitions.js";import{assert as i}from"../../../animations/utils.js";import{packAnimatedBitset as c}from"./AnimatedMeshWriter.js";import{getMinMaxZoom as n}from"../fill/meshWriterUtils.js";import{DataType as a}from"../../../../../../webgl/enums.js";const s={type:a.SHORT,count:2,packPrecisionFactor:e,pack:({scaleInfo:t},{tileInfo:e})=>n(t,e)},p={type:a.FLOAT,count:4,packPrecisionFactor:1,packTessellation:({value1Position2Value2:t})=>(i(t),t)},r={type:a.FLOAT,count:4,packPrecisionFactor:1,packTessellation:()=>[0,0,0,1]},l={type:a.FLOAT,count:1,packPrecisionFactor:1,pack:()=>0},k={type:a.FLOAT,count:1,packPrecisionFactor:1,packTessellation:({lineLength:t})=>t},u={type:a.UNSIGNED_SHORT,count:1,packTessellation:({distance:t})=>t},T={type:a.BYTE,count:2,packPrecisionFactor:16,packTessellation:({directionX:t,directionY:e})=>[t,e]},m={type:a.FLOAT,count:2,packPrecisionFactor:16,packTessellation:({normalX:t,normalY:e})=>[t,e]},y={type:a.UNSIGNED_BYTE,count:3,pack:"id"},f={type:a.UNSIGNED_BYTE,count:1,pack:c},F={type:a.SHORT,count:2,pack:"position",packPrecisionFactor:1},O={marker:{type:a.FLOAT,count:2,packAlternating:{count:4,pack:({texelDimensions:t})=>[[-.5*t[0],-.5*t[1]],[.5*t[0],-.5*t[1]],[-.5*t[0],.5*t[1]],[.5*t[0],.5*t[1]]]}},line:{type:a.FLOAT,count:2,packTessellation:({extrusionOffsetX:t,extrusionOffsetY:e},{baseSize:o})=>[t*o/2,e*o/2]},fill:{type:a.FLOAT,count:2,packTessellation:()=>[0,0]}},S={marker:{type:a.SHORT,count:2,packPrecisionFactor:1,packAlternating:{count:4,packTessellation:({texXmax:t,texXmin:e,texYmax:o,texYmin:i})=>[[e,i],[t,i],[e,o],[t,o]]}}},d={type:a.UNSIGNED_SHORT,count:4,pack:({sprite:t})=>{const{rect:e,width:i,height:c}=t,n=e.x+o,a=e.y+o;return[n+1,a+1,n+i-1,a+c-1]}},x={type:a.UNSIGNED_SHORT,count:4,packPrecisionFactor:4,pack:({animations:t,baseSize:e,referenceSize:o})=>[t.dataColumn,t.dataRow,e,o]},E={type:a.UNSIGNED_SHORT,count:4,packPrecisionFactor:8,pack:({strokeWidth:t,pixelDimensions:e,baseSize:o,sprite:i,sizeRatio:c})=>{const n=Math.max(o*i.width/i.height,o),a=i.sdfDecodeCoeff*n*c;return[e[0],e[1],t,a]}},N={type:a.BYTE,count:1,packTessellation:({angle:e})=>e*t},P={type:a.BYTE,count:1,pack:({angle:e})=>e?e*t:0},h={type:a.BYTE,count:1,pack:()=>0};export{u as accumulatedDistance,N as angle,x as animationPointerAndBaseSizeAndReferenceSize,f as bitset,y as id,k as lineLength,l as noLineLength,h as noPatternAngle,r as noTiming,m as normal,O as offset,P as patternAngle,F as pos,T as segmentDirection,E as sizing,d as tlbr,S as uv,p as value1Position2Value2,s as zoomRange};
2
+ import{cDegTo256 as t}from"../../../../vectorTiles/GeometryUtils.js";import{spritePadding as e}from"../../../definitions.js";import{assert as o}from"../../../animations/utils.js";import{packAnimatedBitset as i}from"./AnimatedMeshWriter.js";import{getMinMaxZoom as c}from"../fill/meshWriterUtils.js";import{DataType as n}from"../../../../../../webgl/enums.js";const a={type:n.HALF_FLOAT,count:2,pack:({scaleInfo:t},{tileInfo:e})=>c(t,e)},s={type:n.FLOAT,count:4,packPrecisionFactor:1,packTessellation:({value1Position2Value2:t})=>(o(t),t)},p={type:n.FLOAT,count:4,packPrecisionFactor:1,packTessellation:()=>[0,0,0,1]},r={type:n.FLOAT,count:1,packPrecisionFactor:1,pack:()=>0},l={type:n.FLOAT,count:1,packPrecisionFactor:1,packTessellation:({lineLength:t})=>t},k={type:n.UNSIGNED_SHORT,count:1,packTessellation:({distance:t})=>t},u={type:n.BYTE,count:2,packPrecisionFactor:16,packTessellation:({directionX:t,directionY:e})=>[t,e]},T={type:n.FLOAT,count:2,packPrecisionFactor:16,packTessellation:({normalX:t,normalY:e})=>[t,e]},m={type:n.UNSIGNED_BYTE,count:3,pack:"id"},y={type:n.UNSIGNED_BYTE,count:1,pack:i},F={type:n.SHORT,count:2,pack:"position",packPrecisionFactor:1},f={marker:{type:n.FLOAT,count:2,packAlternating:{count:4,pack:({texelDimensions:t})=>[[-.5*t[0],-.5*t[1]],[.5*t[0],-.5*t[1]],[-.5*t[0],.5*t[1]],[.5*t[0],.5*t[1]]]}},line:{type:n.FLOAT,count:2,packTessellation:({extrusionOffsetX:t,extrusionOffsetY:e},{baseSize:o})=>[t*o/2,e*o/2]},fill:{type:n.FLOAT,count:2,packTessellation:()=>[0,0]}},O={marker:{type:n.SHORT,count:2,packPrecisionFactor:1,packAlternating:{count:4,packTessellation:({texXmax:t,texXmin:e,texYmax:o,texYmin:i})=>[[e,i],[t,i],[e,o],[t,o]]}}},S={type:n.UNSIGNED_SHORT,count:4,pack:({sprite:t})=>{const{rect:o,width:i,height:c}=t,n=o.x+e,a=o.y+e;return[n+1,a+1,n+i-1,a+c-1]}},d={type:n.UNSIGNED_SHORT,count:4,packPrecisionFactor:4,pack:({animations:t,baseSize:e,referenceSize:o})=>[t.dataColumn,t.dataRow,e,o]},x={type:n.UNSIGNED_SHORT,count:4,packPrecisionFactor:8,pack:({strokeWidth:t,pixelDimensions:e,baseSize:o,sprite:i,sizeRatio:c})=>{const n=Math.max(o*i.width/i.height,o),a=i.sdfDecodeCoeff*n*c;return[e[0],e[1],t,a]}},A={type:n.BYTE,count:1,packTessellation:({angle:e})=>e*t},E={type:n.BYTE,count:1,pack:({angle:e})=>e?e*t:0},N={type:n.BYTE,count:1,pack:()=>0};export{k as accumulatedDistance,A as angle,d as animationPointerAndBaseSizeAndReferenceSize,y as bitset,m as id,l as lineLength,r as noLineLength,N as noPatternAngle,p as noTiming,T as normal,f as offset,E as patternAngle,F as pos,u as segmentDirection,x as sizing,S as tlbr,O as uv,s as value1Position2Value2,a as zoomRange};
@@ -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{minMaxZoomPrecisionFactor as t}from"../../../definitions.js";import{AFillMeshWriter as o}from"./AFillMeshWriter.js";import{processColorInput as e,getMinMaxZoom as r}from"./meshWriterUtils.js";import{DataType as s}from"../../../../../../webgl/enums.js";const i={createComputedParams:t=>t,optionalAttributes:{zoomRange:{type:s.SHORT,count:2,packPrecisionFactor:t,pack:({scaleInfo:t},{tileInfo:o})=>r(t,o)}},attributes:{id:{type:s.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:s.UNSIGNED_BYTE,count:1},pos:{type:s.SHORT,count:2,pack:"position",packPrecisionFactor:10},color:{type:s.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:t})=>e(t)}}};class c extends o{constructor(){super(...arguments),this.vertexSpec=i}createTesselationParams(t){return null}}export{c as FillMeshWriter,i as fillVertexSpec};
2
+ import{AFillMeshWriter as t}from"./AFillMeshWriter.js";import{processColorInput as e,getMinMaxZoom as o}from"./meshWriterUtils.js";import{DataType as r}from"../../../../../../webgl/enums.js";const s={createComputedParams:t=>t,optionalAttributes:{zoomRange:{type:r.HALF_FLOAT,count:2,pack:({scaleInfo:t},{tileInfo:e})=>o(t,e)}},attributes:{id:{type:r.UNSIGNED_BYTE,count:3,pack:"id"},bitset:{type:r.UNSIGNED_BYTE,count:1},pos:{type:r.SHORT,count:2,pack:"position",packPrecisionFactor:10},color:{type:r.UNSIGNED_BYTE,count:4,normalized:!0,pack:({color:t})=>e(t)}}};class c extends t{constructor(){super(...arguments),this.vertexSpec=s}createTesselationParams(t){return null}}export{c as FillMeshWriter,s as fillVertexSpec};
@@ -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};