@arcgis/core 4.23.0-next.20220124 → 4.23.0-next.20220129

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 (623) hide show
  1. package/Graphic.js +1 -1
  2. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  3. package/assets/esri/core/workers/RemoteClient.js +1 -1
  4. package/assets/esri/core/workers/chunks/02fbc76dfdc20e628c61.js +1 -0
  5. package/assets/esri/core/workers/chunks/0453fad5cb819797b4f6.js +1 -0
  6. package/assets/esri/core/workers/chunks/0463ba46df855a92b9c0.js +1 -0
  7. package/assets/esri/core/workers/chunks/0cd0a6eef51fc5b9ea61.js +1 -0
  8. package/assets/esri/core/workers/chunks/{d1454155ee1b8a421cbb.js → 0d02c6ad1f4688bfa374.js} +1 -1
  9. package/assets/esri/core/workers/chunks/0d684f16f37d5dc385dd.js +1 -0
  10. package/assets/esri/core/workers/chunks/0e17691520d890d34efb.js +1 -0
  11. package/assets/esri/core/workers/chunks/16b6d0f8378582c051c3.js +1 -0
  12. package/assets/esri/core/workers/chunks/{0ce1dc14280d6f188468.js → 17de7a324dfa7f57ad5d.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{b313ab14a643273e7d09.js → 1877ab1b6a115dbba1c5.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{c36f84daa7736878418d.js → 197ec52641aed20029c6.js} +1 -1
  15. package/assets/esri/core/workers/chunks/1b2a961f776a0b57e57a.js +1 -0
  16. package/assets/esri/core/workers/chunks/1b3fd66577b19aa5f2b6.js +1 -0
  17. package/assets/esri/core/workers/chunks/1c733b7db092a2a88ef3.js +1 -0
  18. package/assets/esri/core/workers/chunks/1f8c6a179e39fd4c5e6f.js +1 -0
  19. package/assets/esri/core/workers/chunks/2076fcbae63f1bfb7143.js +1 -0
  20. package/assets/esri/core/workers/chunks/{9387db408f496e7dd003.js → 214910032945dd2d86b0.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{b2ae5fc4f787ea568b88.js → 2460f3b6ada6ae900dec.js} +1 -1
  22. package/assets/esri/core/workers/chunks/27474b007988855bea9d.js +1 -0
  23. package/assets/esri/core/workers/chunks/281b89dbf5574fc642ae.js +1 -0
  24. package/assets/esri/core/workers/chunks/{4d539878bfbd7c549e60.js → 2c8fe9bc988c3c5760a5.js} +1 -1
  25. package/assets/esri/core/workers/chunks/2e899ef5881b4ec6fa55.js +1 -0
  26. package/assets/esri/core/workers/chunks/34b59d7099904dcb28b5.js +1 -0
  27. package/assets/esri/core/workers/chunks/357033117dfe61eb81ea.js +1 -0
  28. package/assets/esri/core/workers/chunks/37c03cfc19086ce631c6.js +1 -0
  29. package/assets/esri/core/workers/chunks/391e96192d1ec4e55ce2.js +1 -0
  30. package/assets/esri/core/workers/chunks/422537fc3df707bb62c9.js +1 -0
  31. package/assets/esri/core/workers/chunks/44f0c3663b293afbd172.js +1 -0
  32. package/assets/esri/core/workers/chunks/483d5d8593d96d0f0b15.js +1 -0
  33. package/assets/esri/core/workers/chunks/{c959e0d1cf7dce0421b9.js → 48fa8aed6c24877b44c4.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{44b01d42d4ec72913229.js → 4954fd86b48cc68b737c.js} +1 -1
  35. package/assets/esri/core/workers/chunks/49a1a633bb0d93764aae.js +1 -0
  36. package/assets/esri/core/workers/chunks/4ba6de8aa7e2960bad49.js +1 -0
  37. package/assets/esri/core/workers/chunks/4be35af7d6babbfe9d84.js +1 -0
  38. package/assets/esri/core/workers/chunks/5457962a70bd3c557a75.js +1 -0
  39. package/assets/esri/core/workers/chunks/57856b4a9b8784a69844.js +1 -0
  40. package/assets/esri/core/workers/chunks/{b9c177524b3e7de1ffd1.js → 5790d171072b3c7d108f.js} +1 -1
  41. package/assets/esri/core/workers/chunks/57b349d1dbc0bed75b79.js +1 -0
  42. package/assets/esri/core/workers/chunks/5bcb3240b3c005e5fe72.js +1 -0
  43. package/assets/esri/core/workers/chunks/5d11b97b667921d67ae7.js +1 -0
  44. package/assets/esri/core/workers/chunks/5dbe555a5a662ff3d9ce.js +1 -0
  45. package/assets/esri/core/workers/chunks/5ec98f4ddac707d0fbd1.js +1 -0
  46. package/assets/esri/core/workers/chunks/64b7e8d812ea8fcf269e.js +1 -0
  47. package/assets/esri/core/workers/chunks/{4c9084a04948b6924749.js → 655b55ac0cd533d7e9d7.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{b0b036ad3ad3cd956747.js → 69fd99b7c76e9992ccf3.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{9cdaba126ac7fa5f33f0.js → 6cd5e4380d29b9a3c344.js} +1 -1
  50. package/assets/esri/core/workers/chunks/75d812955a473d0e8960.js +1 -0
  51. package/assets/esri/core/workers/chunks/7903a3e2e0faff0f86c0.js +1 -0
  52. package/assets/esri/core/workers/chunks/{cc146c57bbdac8029fd8.js → 7a5f5acfbd4ca1a5c1f3.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{64276aacaafa4c8a15bd.js → 7dcf52d3db3903c8eb9f.js} +1 -1
  54. package/assets/esri/core/workers/chunks/83d00afae4406ec78bc9.js +1 -0
  55. package/assets/esri/core/workers/chunks/{625d2663daa8e0cf64b0.js → 85b1f36790df95b17659.js} +1 -1
  56. package/assets/esri/core/workers/chunks/89820b200ee44e678af5.js +1 -0
  57. package/assets/esri/core/workers/chunks/8a876f91c9c7c23786b5.js +1 -0
  58. package/assets/esri/core/workers/chunks/918bb7a7d901544a7367.js +1 -0
  59. package/assets/esri/core/workers/chunks/{94b8dbf859df71858d1c.js → 929c9b7cdab7c4ca3d87.js} +1 -1
  60. package/assets/esri/core/workers/chunks/94515fb3ef38067eeadd.js +1 -0
  61. package/assets/esri/core/workers/chunks/949b2269457302ffc64b.js +1 -0
  62. package/assets/esri/core/workers/chunks/952980635afc7ec81804.js +1 -0
  63. package/assets/esri/core/workers/chunks/9876a1bae350795fab36.js +1 -0
  64. package/assets/esri/core/workers/chunks/99619fcb772807c74f3b.js +1 -0
  65. package/assets/esri/core/workers/chunks/{010a71c2aa1b7681e191.js → 9d11f84e6c893b9d0019.js} +1 -1
  66. package/assets/esri/core/workers/chunks/a1930e4f035bc9aa1ae5.js +1 -0
  67. package/assets/esri/core/workers/chunks/a8692bffb76444c34760.js +1 -0
  68. package/assets/esri/core/workers/chunks/aa04b90b82bf70caaae4.js +1 -0
  69. package/assets/esri/core/workers/chunks/aeaa1667c2d9f1b3366b.js +1 -0
  70. package/assets/esri/core/workers/chunks/b2d2de935487257c568b.js +1 -0
  71. package/assets/esri/core/workers/chunks/b3f5e91116112b0b612a.js +1 -0
  72. package/assets/esri/core/workers/chunks/b97953694f42bfec1b3c.js +1 -0
  73. package/assets/esri/core/workers/chunks/b9e9cb354822c6d995a4.js +1 -0
  74. package/assets/esri/core/workers/chunks/ba762bcfd74af0bb8218.js +1 -0
  75. package/assets/esri/core/workers/chunks/bac9fc90e6756e211160.js +1 -0
  76. package/assets/esri/core/workers/chunks/be588873c16770ceb9ef.js +1 -0
  77. package/assets/esri/core/workers/chunks/bf97a933ea3b220115e1.js +1 -0
  78. package/assets/esri/core/workers/chunks/bfedd6ebff817c9b31c0.js +1 -0
  79. package/assets/esri/core/workers/chunks/c093dff4592832ac0973.js +1 -0
  80. package/assets/esri/core/workers/chunks/c1135cb02ec46c491459.js +1 -0
  81. package/assets/esri/core/workers/chunks/c2253a9f29c1aabb2b75.js +1 -0
  82. package/assets/esri/core/workers/chunks/{d39b7983b68d6e5b404d.js → cdbc005eebec1503b99d.js} +1 -1
  83. package/assets/esri/core/workers/chunks/d04fca5d46cca02500b7.js +1 -0
  84. package/assets/esri/core/workers/chunks/d08efbc349dd9f999497.js +1 -0
  85. package/assets/esri/core/workers/chunks/d1fe53b597351dc58305.js +1 -0
  86. package/assets/esri/core/workers/chunks/{a8b13fb804bb775e4967.js → db3c729ce0c0b2690dc9.js} +1 -1
  87. package/assets/esri/core/workers/chunks/dd13772a5e2eccc6a2bc.js +1 -0
  88. package/assets/esri/core/workers/chunks/dedc333a61081772ca7b.js +1 -0
  89. package/assets/esri/core/workers/chunks/{a7b1b75643ed31489495.js → e0c8d61c7a85ce15499a.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{199670a3a564ebe3bd79.js → e218bde41ffbcc5194f5.js} +1 -1
  91. package/assets/esri/core/workers/chunks/e21b211913aefde47e30.js +1 -0
  92. package/assets/esri/core/workers/chunks/e287f49184d076af17e2.js +1 -0
  93. package/assets/esri/core/workers/chunks/{bde1d5b0a7717350986e.js → e4019b63a1fe74e2c842.js} +1 -1
  94. package/assets/esri/core/workers/chunks/e8e775758b79c5a084c8.js +1 -0
  95. package/assets/esri/core/workers/chunks/e93dfdede0532a89ffa5.js +1 -0
  96. package/assets/esri/core/workers/chunks/e9e5196b44b6923be1a3.js +1 -0
  97. package/assets/esri/core/workers/chunks/ea595b0df5050eda2a13.js +1 -0
  98. package/assets/esri/core/workers/chunks/eb82ff10cef2bde6e57f.js +1 -0
  99. package/assets/esri/core/workers/chunks/ebc6f4764b82d4104c65.js +1 -0
  100. package/assets/esri/core/workers/chunks/{1305ef8717da6e902a55.js → ec10151a2a95e95a0bb5.js} +1 -1
  101. package/assets/esri/core/workers/chunks/eccba071ced2d922bb85.js +1 -0
  102. package/assets/esri/core/workers/chunks/ee6e0db58dc64410e687.js +1 -0
  103. package/assets/esri/core/workers/chunks/f0a9f161805fc7a30fc5.js +1 -0
  104. package/assets/esri/core/workers/chunks/f2124f4d0f2b8a91f0ea.js +1 -0
  105. package/assets/esri/core/workers/chunks/ff6abdc72076f3994659.js +981 -0
  106. package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
  107. package/assets/esri/themes/base/_mixins.scss +4 -1
  108. package/assets/esri/themes/base/icons/style.scss +11 -2
  109. package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +13 -10
  110. package/assets/esri/themes/base/widgets/_CoordinateConversion.scss +4 -2
  111. package/assets/esri/themes/base/widgets/_Directions.scss +5 -3
  112. package/assets/esri/themes/base/widgets/_Editor.scss +5 -2
  113. package/assets/esri/themes/base/widgets/_ElevationProfile.scss +6 -4
  114. package/assets/esri/themes/base/widgets/_ItemList.scss +1 -1
  115. package/assets/esri/themes/base/widgets/_LayerList.scss +13 -9
  116. package/assets/esri/themes/base/widgets/_Popup.scss +4 -2
  117. package/assets/esri/themes/base/widgets/_Print.scss +24 -11
  118. package/assets/esri/themes/base/widgets/_Search.scss +4 -2
  119. package/assets/esri/themes/base/widgets/_TableList.scss +9 -7
  120. package/assets/esri/themes/base/widgets/_Weather.scss +12 -0
  121. package/assets/esri/themes/base/widgets/_Widget.scss +18 -9
  122. package/assets/esri/themes/dark/main.css +1 -1
  123. package/assets/esri/themes/dark-blue/main.css +1 -1
  124. package/assets/esri/themes/dark-green/main.css +1 -1
  125. package/assets/esri/themes/dark-purple/main.css +1 -1
  126. package/assets/esri/themes/dark-red/main.css +1 -1
  127. package/assets/esri/themes/light/main.css +1 -1
  128. package/assets/esri/themes/light/view.css +1 -1
  129. package/assets/esri/themes/light-blue/main.css +1 -1
  130. package/assets/esri/themes/light-green/main.css +1 -1
  131. package/assets/esri/themes/light-purple/main.css +1 -1
  132. package/assets/esri/themes/light-red/main.css +1 -1
  133. package/assets/esri/widgets/Weather/t9n/Weather.json +1 -1
  134. package/assets/esri/widgets/Weather/t9n/Weather_ar.json +1 -1
  135. package/assets/esri/widgets/Weather/t9n/Weather_bg.json +1 -1
  136. package/assets/esri/widgets/Weather/t9n/Weather_bs.json +1 -1
  137. package/assets/esri/widgets/Weather/t9n/Weather_ca.json +1 -1
  138. package/assets/esri/widgets/Weather/t9n/Weather_cs.json +1 -1
  139. package/assets/esri/widgets/Weather/t9n/Weather_da.json +1 -1
  140. package/assets/esri/widgets/Weather/t9n/Weather_de.json +1 -1
  141. package/assets/esri/widgets/Weather/t9n/Weather_el.json +1 -1
  142. package/assets/esri/widgets/Weather/t9n/Weather_en.json +1 -1
  143. package/assets/esri/widgets/Weather/t9n/Weather_es.json +1 -1
  144. package/assets/esri/widgets/Weather/t9n/Weather_et.json +1 -1
  145. package/assets/esri/widgets/Weather/t9n/Weather_fi.json +1 -1
  146. package/assets/esri/widgets/Weather/t9n/Weather_fr.json +1 -1
  147. package/assets/esri/widgets/Weather/t9n/Weather_he.json +1 -1
  148. package/assets/esri/widgets/Weather/t9n/Weather_hr.json +1 -1
  149. package/assets/esri/widgets/Weather/t9n/Weather_hu.json +1 -1
  150. package/assets/esri/widgets/Weather/t9n/Weather_id.json +1 -1
  151. package/assets/esri/widgets/Weather/t9n/Weather_it.json +1 -1
  152. package/assets/esri/widgets/Weather/t9n/Weather_ja.json +1 -1
  153. package/assets/esri/widgets/Weather/t9n/Weather_ko.json +1 -1
  154. package/assets/esri/widgets/Weather/t9n/Weather_lt.json +1 -1
  155. package/assets/esri/widgets/Weather/t9n/Weather_lv.json +1 -1
  156. package/assets/esri/widgets/Weather/t9n/Weather_nb.json +1 -1
  157. package/assets/esri/widgets/Weather/t9n/Weather_nl.json +1 -1
  158. package/assets/esri/widgets/Weather/t9n/Weather_pl.json +1 -1
  159. package/assets/esri/widgets/Weather/t9n/Weather_pt-BR.json +1 -1
  160. package/assets/esri/widgets/Weather/t9n/Weather_pt-PT.json +1 -1
  161. package/assets/esri/widgets/Weather/t9n/Weather_ro.json +1 -1
  162. package/assets/esri/widgets/Weather/t9n/Weather_ru.json +1 -1
  163. package/assets/esri/widgets/Weather/t9n/Weather_sk.json +1 -1
  164. package/assets/esri/widgets/Weather/t9n/Weather_sl.json +1 -1
  165. package/assets/esri/widgets/Weather/t9n/Weather_sr.json +1 -1
  166. package/assets/esri/widgets/Weather/t9n/Weather_sv.json +1 -1
  167. package/assets/esri/widgets/Weather/t9n/Weather_th.json +1 -1
  168. package/assets/esri/widgets/Weather/t9n/Weather_tr.json +1 -1
  169. package/assets/esri/widgets/Weather/t9n/Weather_uk.json +1 -1
  170. package/assets/esri/widgets/Weather/t9n/Weather_vi.json +1 -1
  171. package/assets/esri/widgets/Weather/t9n/Weather_zh-CN.json +1 -1
  172. package/assets/esri/widgets/Weather/t9n/Weather_zh-HK.json +1 -1
  173. package/assets/esri/widgets/Weather/t9n/Weather_zh-TW.json +1 -1
  174. package/chunks/BlendLayers.glsl.js +2 -2
  175. package/chunks/ChapmanAtmosphere.glsl.js +17 -17
  176. package/chunks/CheckerBoard.glsl.js +3 -3
  177. package/chunks/Clouds.glsl.js +2 -2
  178. package/chunks/CloudsComposition.glsl.js +1 -1
  179. package/chunks/ColorMaterial.glsl.js +12 -12
  180. package/chunks/ComponentShader.glsl.js +21 -21
  181. package/chunks/Compositing.glsl.js +1 -1
  182. package/chunks/DefaultMaterial.glsl.js +33 -33
  183. package/chunks/EdgeShaderProgram.glsl.js +7 -7
  184. package/chunks/Fog.glsl.js +10 -12
  185. package/chunks/HUDMaterial.glsl.js +2 -2
  186. package/chunks/HighlightComposition.glsl.js +5 -5
  187. package/chunks/ImageMaterial.glsl.js +6 -6
  188. package/chunks/LaserlinePath.glsl.js +8 -8
  189. package/chunks/LineCallout.glsl.js +6 -6
  190. package/chunks/MeasurementArrow.glsl.js +1 -1
  191. package/chunks/NativeLine.glsl.js +1 -1
  192. package/chunks/Path.glsl.js +5 -5
  193. package/chunks/Pattern.glsl.js +9 -9
  194. package/chunks/PointRenderer.glsl.js +14 -14
  195. package/chunks/Precipitation.glsl.js +91 -0
  196. package/chunks/RealisticTree.glsl.js +21 -21
  197. package/chunks/RibbonLine.glsl.js +11 -11
  198. package/chunks/SMAA.glsl.js +40 -40
  199. package/chunks/ShadedColorMaterial.glsl.js +12 -12
  200. package/chunks/ShadowCast.glsl.js +6 -6
  201. package/chunks/ShadowHighlight.glsl.js +4 -4
  202. package/chunks/SimpleAtmosphere.glsl.js +3 -3
  203. package/chunks/SlicePlaneMaterial.glsl.js +3 -3
  204. package/chunks/Stars.glsl.js +3 -3
  205. package/chunks/Terrain.glsl.js +3 -3
  206. package/chunks/TextureOnly.glsl.js +2 -2
  207. package/chunks/WaterSurface.glsl.js +22 -22
  208. package/chunks/boundedPlane.js +1 -1
  209. package/chunks/pe.js +1 -1
  210. package/chunks/vec3.js +1 -1
  211. package/chunks/vxlLayer.js +1 -1
  212. package/core/accessorSupport/read.js +1 -1
  213. package/core/accessorSupport/watch.js +1 -1
  214. package/core/accessorSupport/write.js +1 -1
  215. package/core/clock.js +1 -1
  216. package/core/jsonMap.js +1 -1
  217. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  218. package/core/loadAll.js +1 -1
  219. package/core/promiseUtils.js +1 -1
  220. package/core/reactiveUtils.js +1 -1
  221. package/form/ExpressionInfo.js +1 -1
  222. package/geometry/pe.js +1 -1
  223. package/geometry/support/axisAngleDegrees.js +1 -1
  224. package/geometry/support/frustum.js +1 -1
  225. package/geometry/support/plane.js +1 -1
  226. package/interfaces.d.ts +263 -35
  227. package/layers/VectorTileLayer.js +1 -1
  228. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  229. package/layers/graphics/featureConversionUtils.js +1 -1
  230. package/layers/support/LayerContingentValuesCache.js +1 -1
  231. package/layers/support/TileInfo.js +1 -1
  232. package/layers/support/rasterDatasets/BaseRaster.js +1 -1
  233. package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
  234. package/package.json +2 -2
  235. package/popup/content/AttachmentsContent.js +1 -1
  236. package/popup/content/support/mediaInfoTypes.js +1 -1
  237. package/rest/print.js +1 -1
  238. package/smartMapping/statistics/support/predominanceUtils.d.ts +4 -0
  239. package/support/arcadeOnDemand.js +1 -1
  240. package/support/featureFlags.js +1 -1
  241. package/support/revision.js +1 -1
  242. package/symbols/FillSymbol3DLayer.js +1 -1
  243. package/symbols/IconSymbol3DLayer.js +1 -1
  244. package/symbols/LabelSymbol3D.js +1 -1
  245. package/symbols/ObjectSymbol3DLayer.js +1 -1
  246. package/symbols/PointSymbol3D.js +1 -1
  247. package/symbols/Symbol3D.js +1 -1
  248. package/symbols/WebStyleSymbol.js +1 -1
  249. package/symbols/cim/CIMSymbolHelper.js +1 -1
  250. package/symbols/cim/CIMSymbolRasterizer.js +1 -1
  251. package/symbols/cim/cimAnalyzer.js +1 -1
  252. package/symbols/support/IconSymbol3DLayerResource.js +1 -1
  253. package/symbols/support/ObjectSymbol3DLayerResource.js +1 -1
  254. package/symbols/support/Symbol3DAnchorPosition2D.js +1 -1
  255. package/symbols/support/Symbol3DAnchorPosition3D.js +1 -1
  256. package/symbols/support/Symbol3DFillMaterial.js +1 -1
  257. package/symbols/support/Symbol3DIconOutline.js +1 -1
  258. package/symbols/support/Symbol3DOutline.js +1 -1
  259. package/symbols/support/Symbol3DVerticalOffset.js +1 -1
  260. package/symbols/support/Thumbnail.js +1 -1
  261. package/symbols/support/previewCIMSymbol.js +1 -1
  262. package/symbols/support/previewSymbol2D.js +1 -1
  263. package/symbols/support/previewSymbol3D.js +1 -1
  264. package/symbols/support/previewWebStyleSymbol.js +1 -1
  265. package/symbols/support/svgUtils.js +1 -1
  266. package/symbols/support/webStyleSymbolUtils.js +1 -1
  267. package/symbols.js +1 -1
  268. package/views/2d/MapViewConstraints.js +1 -1
  269. package/views/2d/engine/vectorTiles/SchemaHelper.js +1 -1
  270. package/views/2d/engine/webgl/brushes/raster/BrushRasterBitmap.js +1 -1
  271. package/views/2d/engine/webgl/mesh/templates/WGLFillTemplate.js +1 -1
  272. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  273. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  274. package/views/2d/viewpointUtils.js +1 -1
  275. package/views/3d/environment/ChapmanAtmosphere.glsl.js +1 -1
  276. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  277. package/views/3d/environment/CloudsComposition.glsl.js +1 -1
  278. package/views/3d/environment/CloudsComposition.js +1 -1
  279. package/views/3d/environment/CloudsGenerator.js +1 -1
  280. package/views/3d/environment/CloudsPresets.js +1 -1
  281. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  282. package/views/3d/environment/Fog.glsl.js +1 -1
  283. package/views/3d/environment/Fog.js +1 -1
  284. package/views/3d/environment/PanoramicAtmosphere.js +1 -1
  285. package/views/3d/environment/Precipitation.glsl.js +5 -0
  286. package/views/3d/environment/Precipitation.js +5 -0
  287. package/views/3d/environment/PrecipitationTechnique.js +5 -0
  288. package/views/3d/environment/RainyWeather.js +1 -1
  289. package/views/3d/environment/SceneViewEnvironmentManager.js +1 -1
  290. package/views/3d/environment/SimpleAtmosphere.glsl.js +1 -1
  291. package/views/3d/environment/SimpleAtmosphere.js +1 -1
  292. package/views/3d/environment/SnowyWeather.js +5 -0
  293. package/views/3d/environment/Stars.glsl.js +1 -1
  294. package/views/3d/environment/Stars.js +1 -1
  295. package/views/3d/environment/weather.js +1 -1
  296. package/views/3d/interactive/analysisTools/slice/SliceTool.js +1 -1
  297. package/views/3d/interactive/analysisTools/slice/sliceToolUtils.js +1 -1
  298. package/views/3d/interactive/editingTools/transformGraphic/ScaleRotateMeshAdapter.js +1 -1
  299. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  300. package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
  301. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  302. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  303. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  304. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  305. package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
  306. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  307. package/views/3d/layers/GraphicsLayerView3D.js +1 -1
  308. package/views/3d/layers/GraphicsView3D.js +1 -1
  309. package/views/3d/layers/I3SMeshView3D.js +1 -1
  310. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  311. package/views/3d/layers/VectorTileLayerView3D.js +1 -1
  312. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  313. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  314. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  315. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  316. package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
  317. package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
  318. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  319. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  320. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  321. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  322. package/views/3d/layers/graphics/graphicUtils.js +1 -1
  323. package/views/3d/layers/graphics/lineUtils.js +1 -1
  324. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  325. package/views/3d/layers/graphics/polygonUtils.js +1 -1
  326. package/views/3d/layers/graphics/symbolComplexity.js +1 -1
  327. package/views/3d/layers/i3s/I3SBinaryReader.js +1 -1
  328. package/views/3d/layers/i3s/PointRenderer.js +1 -1
  329. package/views/3d/layers/support/HeatmapFeatureProcessor.js +5 -0
  330. package/views/3d/layers/support/overlayImageUtils.js +1 -1
  331. package/views/3d/layers/support/patternUtils.js +1 -1
  332. package/views/3d/state/controllers/local/PinchAndPanController.js +1 -1
  333. package/views/3d/support/FrustumExtentIntersection.js +1 -1
  334. package/views/3d/support/LaserLineRenderer.js +1 -1
  335. package/views/3d/support/LaserlinePathData.js +1 -1
  336. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  337. package/views/3d/support/sunUtils.js +1 -1
  338. package/views/3d/terrain/OverlayRenderer.js +1 -1
  339. package/views/3d/terrain/PatchGeometryFactory.js +1 -1
  340. package/views/3d/terrain/TerrainRenderer.js +1 -1
  341. package/views/3d/terrain/TerrainSurface.js +1 -1
  342. package/views/3d/terrain/Tile.js +1 -1
  343. package/views/3d/terrain/terrainUtils.js +1 -1
  344. package/views/3d/terrain/tileUtils.js +1 -1
  345. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  346. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  347. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  348. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js +10 -10
  349. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  350. package/views/3d/webgl-engine/collections/Component/SourceGeometry.js +1 -1
  351. package/views/3d/webgl-engine/core/renderPasses/AllRenderPasses.js +1 -1
  352. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  353. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +2 -2
  354. package/views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js +2 -2
  355. package/views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.js +2 -2
  356. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +2 -2
  357. package/views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js +4 -4
  358. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +1 -1
  359. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PositionAttribute.glsl.js +1 -1
  360. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +1 -1
  361. package/views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js +1 -1
  362. package/views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js +3 -3
  363. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js +1 -1
  364. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +6 -6
  365. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +12 -12
  366. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTextureCoordinates.glsl.js +4 -4
  367. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js +1 -1
  368. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +16 -16
  369. package/views/3d/webgl-engine/core/shaderLibrary/default/RealisticTree.glsl.js +1 -1
  370. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +5 -5
  371. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDOcclusionPass.glsl.js +3 -3
  372. package/views/3d/webgl-engine/core/shaderLibrary/raster/BasicGrid.glsl.js +2 -2
  373. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js +6 -6
  374. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +2 -2
  375. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeShadingNormal.glsl.js +10 -11
  376. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +2 -2
  377. package/views/3d/webgl-engine/core/shaderLibrary/shading/MultipassGeometryTest.glsl.js +2 -2
  378. package/views/3d/webgl-engine/core/shaderLibrary/shading/MultipassTerrainTest.glsl.js +2 -2
  379. package/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js +6 -6
  380. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js +4 -4
  381. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +6 -6
  382. package/views/3d/webgl-engine/core/shaderLibrary/shading/Reprojection.glsl.js +4 -4
  383. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceReflections.glsl.js +5 -5
  384. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +1 -1
  385. package/views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js +22 -14
  386. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +2 -2
  387. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Terrain.glsl.js +1 -1
  388. package/views/3d/webgl-engine/core/shaderLibrary/util/BlendLayers.glsl.js +1 -1
  389. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +4 -4
  390. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  391. package/views/3d/webgl-engine/lib/Camera.js +1 -1
  392. package/views/3d/webgl-engine/lib/DefaultVertexAttributeLocations.js +1 -1
  393. package/views/3d/webgl-engine/lib/DefaultVertexBufferLayouts.js +1 -1
  394. package/views/3d/webgl-engine/lib/Geometry.js +1 -1
  395. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  396. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  397. package/views/3d/webgl-engine/lib/MagnifierHelper.js +1 -1
  398. package/views/3d/webgl-engine/lib/Material.js +1 -1
  399. package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
  400. package/views/3d/webgl-engine/lib/RenderPluginManager.js +1 -1
  401. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  402. package/views/3d/webgl-engine/lib/SSAOHelper.js +1 -1
  403. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  404. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  405. package/views/3d/webgl-engine/lib/SmaaRenderPass.js +1 -1
  406. package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
  407. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  408. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  409. package/views/3d/{layers/graphics/IGraphics3DFeatureProcessor.js → webgl-engine/lib/TextureUniformName.js} +0 -0
  410. package/views/3d/webgl-engine/lib/UniformName.js +4 -0
  411. package/views/3d/webgl-engine/lib/VertexAttribute.js +5 -0
  412. package/views/3d/webgl-engine/lib/basicInterfaces.js +1 -1
  413. package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
  414. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  415. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderTechnique.js +1 -1
  416. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  417. package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
  418. package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
  419. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  420. package/views/3d/webgl-engine/lib/lodRendering/RenderInstanceData.js +1 -1
  421. package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
  422. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  423. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  424. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  425. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  426. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  427. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  428. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  429. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  430. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  431. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  432. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  433. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  434. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  435. package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
  436. package/views/3d/webgl-engine/materials/VisualVariableMaterialParameters.js +1 -1
  437. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  438. package/views/3d/webgl-engine/materials/internal/DefaultBufferWriter.js +1 -1
  439. package/views/3d/webgl-engine/materials/internal/MaterialUtil.js +1 -1
  440. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  441. package/views/3d/webgl-engine/materials/internal/waterMaterialUtils.js +1 -1
  442. package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
  443. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  444. package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
  445. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  446. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  447. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  448. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  449. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  450. package/views/3d/webgl-engine/shaders/HighlightComposition.glsl.js +1 -1
  451. package/views/3d/webgl-engine/shaders/HighlightTechnique.js +1 -1
  452. package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
  453. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  454. package/views/3d/webgl-engine/shaders/LaserlinePath.glsl.js +1 -1
  455. package/views/3d/webgl-engine/shaders/LaserlinePathTechnique.js +1 -1
  456. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  457. package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
  458. package/views/3d/webgl-engine/shaders/Magnifier.glsl.js +1 -1
  459. package/views/3d/webgl-engine/shaders/MeasurementArrow.glsl.js +1 -1
  460. package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
  461. package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
  462. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  463. package/views/3d/webgl-engine/shaders/PointRenderer.glsl.js +1 -1
  464. package/views/3d/webgl-engine/shaders/RealisticTreeTechnique.js +1 -1
  465. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  466. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  467. package/views/3d/webgl-engine/shaders/SMAA.glsl.js +1 -1
  468. package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
  469. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  470. package/views/3d/webgl-engine/shaders/ShadowCastTechnique.js +1 -1
  471. package/views/3d/webgl-engine/shaders/ShadowHighlightTechnique.js +1 -1
  472. package/views/3d/webgl-engine/shaders/SlicePlaneMaterial.glsl.js +1 -1
  473. package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
  474. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/AdjustProjectedPosition.glsl.js +10 -10
  475. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/DiscardShortEdges.glsl.js +1 -1
  476. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeShaderProgram.glsl.js +1 -1
  477. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +21 -21
  478. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineAmplitude.glsl.js +6 -6
  479. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineOffset.glsl.js +13 -13
  480. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/UnpackAttributes.glsl.js +6 -6
  481. package/views/MapView.js +1 -1
  482. package/views/SceneView.js +1 -1
  483. package/views/View.js +1 -1
  484. package/views/input/recognizers/DoubleTapDrag.js +1 -1
  485. package/views/input/recognizers/ImmediateDoubleClick.js +1 -1
  486. package/views/input/recognizers/PointerClickHoldAndDrag.js +1 -1
  487. package/views/input/recognizers/SingleAndDoubleClick.js +1 -1
  488. package/views/interactive/dragEventPipeline.js +1 -1
  489. package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
  490. package/views/support/DefaultsFromMap.js +1 -1
  491. package/views/support/WatchUpdatingTracking.js +1 -1
  492. package/views/support/projectionUtils.js +5 -0
  493. package/views/webgl/BufferObject.js +1 -1
  494. package/views/webgl/InstanceCounter.js +1 -1
  495. package/views/webgl/Program.js +1 -1
  496. package/views/webgl/rasterUtils.js +1 -1
  497. package/webdoc/support/{Thumbnail.js → SlideThumbnail.js} +1 -1
  498. package/webmap/Bookmark.js +1 -1
  499. package/webmap/Version.js +1 -1
  500. package/webscene/Slide.js +1 -1
  501. package/webscene/Version.js +1 -1
  502. package/webscene/support/SlideVisibleLayer.js +1 -1
  503. package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.js +1 -1
  504. package/widgets/Attachments.js +1 -1
  505. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  506. package/widgets/BasemapGallery/support/BasemapGalleryItem.js +1 -1
  507. package/widgets/BasemapGallery/support/basemapCompatibilityUtils.js +1 -1
  508. package/widgets/BasemapGallery.js +1 -1
  509. package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
  510. package/widgets/Bookmarks.js +1 -1
  511. package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js +1 -1
  512. package/widgets/FeatureForm/InputField.js +1 -1
  513. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  514. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
  515. package/widgets/LineOfSight/LineOfSightViewModel.js +1 -1
  516. package/widgets/Popup/PopupViewModel.js +1 -1
  517. package/widgets/Popup/actionUtils.js +1 -1
  518. package/widgets/Search/support/locatorUtils.js +1 -1
  519. package/widgets/Search.js +1 -1
  520. package/widgets/Slice/SliceViewModel.js +1 -1
  521. package/widgets/Slider/SliderViewModel.js +1 -1
  522. package/widgets/Slider.js +1 -1
  523. package/widgets/TimeSlider.js +1 -1
  524. package/widgets/Weather/WeatherViewModel.js +1 -1
  525. package/widgets/Weather/css.js +1 -1
  526. package/widgets/Weather/enums.js +5 -0
  527. package/widgets/Weather.js +1 -1
  528. package/widgets/support/InteractiveAnalysisViewModel.js +1 -1
  529. package/widgets/support/InteractiveToolViewModel.js +1 -1
  530. package/assets/components/assets/calcite-icon/checkSquareF16.json +0 -1
  531. package/assets/components/assets/calcite-icon/checkSquareF24.json +0 -1
  532. package/assets/components/assets/calcite-icon/checkSquareF32.json +0 -1
  533. package/assets/components/assets/calcite-icon/lineSolid4.json +0 -1
  534. package/assets/components/assets/calcite-icon/squareF16.json +0 -1
  535. package/assets/components/assets/calcite-icon/squareF24.json +0 -1
  536. package/assets/components/assets/calcite-icon/squareF32.json +0 -1
  537. package/assets/components/assets/calcite-icon/xHexagon16.json +0 -1
  538. package/assets/components/assets/calcite-icon/xHexagon24.json +0 -1
  539. package/assets/components/assets/calcite-icon/xHexagon32.json +0 -1
  540. package/assets/components/assets/calcite-icon/xHexagonF16.json +0 -1
  541. package/assets/components/assets/calcite-icon/xHexagonF24.json +0 -1
  542. package/assets/components/assets/calcite-icon/xHexagonF32.json +0 -1
  543. package/assets/components/assets/calcite-icon/xOctagonF16.json +0 -1
  544. package/assets/components/assets/calcite-icon/xOctagonF24.json +0 -1
  545. package/assets/components/assets/calcite-icon/xOctagonF32.json +0 -1
  546. package/assets/esri/core/workers/chunks/09da224052976e290828.js +0 -1
  547. package/assets/esri/core/workers/chunks/0bf079e752ab79468478.js +0 -1
  548. package/assets/esri/core/workers/chunks/0c3e3a5baf54bd5e210c.js +0 -1
  549. package/assets/esri/core/workers/chunks/14bef72154b3a19561a7.js +0 -1
  550. package/assets/esri/core/workers/chunks/18668dc45eb9e35530df.js +0 -1
  551. package/assets/esri/core/workers/chunks/1e4d37c2b9dc83d20a11.js +0 -1
  552. package/assets/esri/core/workers/chunks/20411bb8e04703962ce6.js +0 -1
  553. package/assets/esri/core/workers/chunks/208a7e24e19fc5633dd7.js +0 -1
  554. package/assets/esri/core/workers/chunks/22b09e276c9b9f22f0f8.js +0 -1
  555. package/assets/esri/core/workers/chunks/23745a5ab47c840dc452.js +0 -1
  556. package/assets/esri/core/workers/chunks/2416f8bf8bbd2ec786ab.js +0 -1
  557. package/assets/esri/core/workers/chunks/25a3e9bc0b4c7e0d3165.js +0 -1
  558. package/assets/esri/core/workers/chunks/2e445a8735ea2adb641a.js +0 -1
  559. package/assets/esri/core/workers/chunks/32f8c4af7e70ebdcb19e.js +0 -1
  560. package/assets/esri/core/workers/chunks/36a3f6fb4d1d18fcb642.js +0 -1
  561. package/assets/esri/core/workers/chunks/390d9021169e65c10eb8.js +0 -1
  562. package/assets/esri/core/workers/chunks/3a9740dccda6a733313c.js +0 -1
  563. package/assets/esri/core/workers/chunks/3aa4194dc5497c57647f.js +0 -1
  564. package/assets/esri/core/workers/chunks/40a1e713f63ec77110c0.js +0 -1
  565. package/assets/esri/core/workers/chunks/43cdff2418325e163420.js +0 -1
  566. package/assets/esri/core/workers/chunks/4bfbf5a34c9207fdcf44.js +0 -1
  567. package/assets/esri/core/workers/chunks/5538639a49c7cc2eca63.js +0 -1
  568. package/assets/esri/core/workers/chunks/5a4a5585ec8027079f32.js +0 -1
  569. package/assets/esri/core/workers/chunks/5d4863a92b03bebc1b54.js +0 -1
  570. package/assets/esri/core/workers/chunks/60371c0f750cde87656d.js +0 -1
  571. package/assets/esri/core/workers/chunks/634b5ccd7a3ac67f855d.js +0 -1
  572. package/assets/esri/core/workers/chunks/662d13f68cf3ec92439b.js +0 -1
  573. package/assets/esri/core/workers/chunks/663ad15b86936eb06b69.js +0 -1
  574. package/assets/esri/core/workers/chunks/67162b3e2cc1b5dc6818.js +0 -1
  575. package/assets/esri/core/workers/chunks/739e579150bf466d43ae.js +0 -1
  576. package/assets/esri/core/workers/chunks/74df1f3e1e2e524a89d2.js +0 -1
  577. package/assets/esri/core/workers/chunks/76eef4799f6c5fff7e2d.js +0 -1
  578. package/assets/esri/core/workers/chunks/7baf6b1f3f050aa67ae4.js +0 -1
  579. package/assets/esri/core/workers/chunks/7bc5cc5dbf1b7b70ddac.js +0 -1
  580. package/assets/esri/core/workers/chunks/85e27fd949475f9a6bbc.js +0 -1
  581. package/assets/esri/core/workers/chunks/8967288145f8fbd20e7d.js +0 -1
  582. package/assets/esri/core/workers/chunks/8b6ab6202a40fe622833.js +0 -1
  583. package/assets/esri/core/workers/chunks/96ab518eb6ba11333dee.js +0 -1
  584. package/assets/esri/core/workers/chunks/9796d54ff12b6429164a.js +0 -1
  585. package/assets/esri/core/workers/chunks/99a777693e4539f0b03b.js +0 -1
  586. package/assets/esri/core/workers/chunks/9cb2ae42a8e328b1d98d.js +0 -1
  587. package/assets/esri/core/workers/chunks/9d3c58a0ef634d95b7bd.js +0 -1
  588. package/assets/esri/core/workers/chunks/a6ff3db3493543df81bc.js +0 -1
  589. package/assets/esri/core/workers/chunks/a8c13529367c037cdd94.js +0 -1
  590. package/assets/esri/core/workers/chunks/a96afc176041f698c7a1.js +0 -1
  591. package/assets/esri/core/workers/chunks/aa861b8eae6c85f3dad4.js +0 -1
  592. package/assets/esri/core/workers/chunks/ac8dca61ade28c542ae2.js +0 -1
  593. package/assets/esri/core/workers/chunks/ad081d8e49e7f90c3c26.js +0 -1
  594. package/assets/esri/core/workers/chunks/afa6912454f2a5ffadce.js +0 -1
  595. package/assets/esri/core/workers/chunks/b2beb6e1fd2ee6503830.js +0 -1
  596. package/assets/esri/core/workers/chunks/ba615f118a3a8970ef25.js +0 -1
  597. package/assets/esri/core/workers/chunks/ba6654a885be4b7a43f0.js +0 -1
  598. package/assets/esri/core/workers/chunks/bab1cfd0a901181622af.js +0 -1
  599. package/assets/esri/core/workers/chunks/be2b7cce79fd41627931.js +0 -1
  600. package/assets/esri/core/workers/chunks/c080114a69fa95b88d22.js +0 -1
  601. package/assets/esri/core/workers/chunks/c11474b702dfb94e8e87.js +0 -1
  602. package/assets/esri/core/workers/chunks/c13dfdd548dcb1bdb294.js +0 -1
  603. package/assets/esri/core/workers/chunks/c6bd943fe8fd13bb4806.js +0 -1
  604. package/assets/esri/core/workers/chunks/c6f94b92e866b881d9b9.js +0 -1
  605. package/assets/esri/core/workers/chunks/ca2f5faa01d99c21ec14.js +0 -1
  606. package/assets/esri/core/workers/chunks/cd7d83d127e085d52584.js +0 -1
  607. package/assets/esri/core/workers/chunks/cef4af64860ebbfc1c47.js +0 -1
  608. package/assets/esri/core/workers/chunks/cfbffa429d88e7709c3f.js +0 -1
  609. package/assets/esri/core/workers/chunks/d24c4fbc567486b1188f.js +0 -1
  610. package/assets/esri/core/workers/chunks/d52108864136c5a8a618.js +0 -1
  611. package/assets/esri/core/workers/chunks/da1c2873bdbc0956dca0.js +0 -1
  612. package/assets/esri/core/workers/chunks/de03439ca2c9782bf325.js +0 -1
  613. package/assets/esri/core/workers/chunks/de6cff7b6cbbf99b20d1.js +0 -981
  614. package/assets/esri/core/workers/chunks/e079cb1d53aca15b7df2.js +0 -1
  615. package/assets/esri/core/workers/chunks/e59764ee8cf25d4f74e2.js +0 -1
  616. package/assets/esri/core/workers/chunks/e6df9839b551569fbc62.js +0 -1
  617. package/assets/esri/core/workers/chunks/e97e986120aaadad7d4c.js +0 -1
  618. package/assets/esri/core/workers/chunks/f467c8f1fce22f6f599c.js +0 -1
  619. package/assets/esri/core/workers/chunks/f678293de9a6d8f5b5db.js +0 -1
  620. package/assets/esri/core/workers/chunks/f8e7755240a94b499e1f.js +0 -1
  621. package/assets/esri/core/workers/chunks/fd3e5d823dc7917f4b8f.js +0 -1
  622. package/assets/esri/core/workers/chunks/fe864d01e72aa24574b6.js +0 -1
  623. package/assets/esri/core/workers/chunks/ffaf091c6023225cf5aa.js +0 -1
package/rest/print.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import e from"../config.js";import{id as t}from"../kernel.js";import i from"../request.js";import r from"../core/Error.js";import{JSONMap as a}from"../core/jsonMap.js";import{isSome as n}from"../core/maybe.js";import{createScreenPoint as l,pt2px as s,px2pt as o}from"../core/screenUtils.js";import{normalize as u,dataComponents as c}from"../core/urlUtils.js";import y from"../geometry/Polygon.js";import{collectLabelingFields as f}from"../layers/support/fieldUtils.js";import{getSizeRangeAtScale as m}from"../renderers/visualVariables/support/visualVariableUtils.js";import{execute as d}from"./geoprocessor/execute.js";import{submitJob as p}from"./geoprocessor/submitJob.js";import{toJSON as g}from"./support/fileFormat.js";import{toJSON as b}from"./support/layoutTemplate.js";import{getVisibleLayerViews as h,isGroupLayer as w,isScreenshotRequired as S,isBingMapsLayer as x,isCSVLayer as v,isFeatureLayer as D,isGeoJSONLayer as I,isGraphicsLayer as L,isImageryLayer as T,isImageryTileLayer as E,isKMLLayer as M,isMapImageLayer as V,isMapNotesLayer as O,isOpenStreetMapLayer as P,isStreamLayer as F,isTileLayer as N,isVectorTileLayer as R,isWebTileLayer as U,isWMSLayer as J,isWMTSLayer as j,isBlendLayer as A,applyVisualVariables as k,getContextBoundingBox as C,createPolygonLayer as z,createPolylineLayer as $,createPointLayer as K,createMultipointLayer as _}from"./support/printTaskUtils.js";import q from"./support/PrintTemplate.js";import{supportsApiKey as W}from"../support/apiKeyUtils.js";import{getFloorFilterClause as B}from"../views/support/floorFilterUtils.js";const G={Feet:"ft",Kilometers:"km",Meters:"m",Miles:"mi"},Q=new a({esriFeet:"Feet",esriKilometers:"Kilometers",esriMeters:"Meters",esriMiles:"Miles"}),H=new a({esriExecutionTypeSynchronous:"sync",esriExecutionTypeAsynchronous:"async"}),X=new Map;async function Y(e,t,r){const a=ie(e);let n=X.get(a);return Promise.resolve().then((()=>n?{data:n.gpMetadata}:(n={gpServerUrl:a,is11xService:!1,legendLayerNameMap:{},legendLayers:[]},i(a,{query:{f:"json"}})))).then((e=>(n.gpMetadata=e.data,n.cimVersion=n.gpMetadata.cimVersion,n.is11xService=!!n.cimVersion,X.set(a,n),ee(t,n)))).then((i=>{const a=Me(n);let l;const s=e=>"sync"===a?e.results&&e.results[0]&&e.results[0].value:l.fetchResultData("Output_File",null,r).then((e=>e.value));return"async"===a?p(e,i,null,r).then((e=>(l=e,e.waitForJobCompletion({interval:t.updateDelay}).then(s)))):d(e,i,null,r).then(s)}))}async function Z(e){const t=ie(e);return Me(X.get(t))}async function ee(e,t){t=t||{is11xService:!1,legendLayerNameMap:{},legendLayers:[]};const i=e.template||new q;null==i.showLabels&&(i.showLabels=!0);const a=i.exportOptions;let n;const l=b(i.layout);if(a){if(n={dpi:a.dpi},"map_only"===l.toLowerCase()||""===l){const e=a.width,t=a.height;n.outputSize=[e,t]}}const s=i.layoutOptions;let o;if(s){let e,t;"Miles"===s.scalebarUnit||"Kilometers"===s.scalebarUnit?(e="Kilometers",t="Miles"):"Meters"!==s.scalebarUnit&&"Feet"!==s.scalebarUnit||(e="Meters",t="Feet"),o={titleText:s.titleText,authorText:s.authorText,copyrightText:s.copyrightText,customTextElements:s.customTextElements,scaleBarOptions:{metricUnit:Q.toJSON(e),metricLabel:G[e],nonMetricUnit:Q.toJSON(t),nonMetricLabel:G[t]}}}let u=null;null!=s&&s.legendLayers&&(u=s.legendLayers.map((e=>{t.legendLayerNameMap[e.layerId]=e.title;const i={id:e.layerId};return e.subLayerIds&&(i.subLayerIds=e.subLayerIds),i})));const c=await te(e,i,t);if(c.operationalLayers){const e=new RegExp("[\\u4E00-\\u9FFF\\u0E00-\\u0E7F\\u0900-\\u097F\\u3040-\\u309F\\u30A0-\\u30FF\\u31F0-\\u31FF]"),i=/[\u0600-\u06FF]/,a=t=>{const r=t.text,a=t.font,n=a&&a.family&&a.family.toLowerCase();r&&a&&("arial"===n||"arial unicode ms"===n)&&(a.family=e.test(r)?"Arial Unicode MS":"Arial","normal"!==a.style&&i.test(r)&&(a.family="Arial Unicode MS"))},n=()=>{throw new r("print-task:cim-symbol-unsupported","CIMSymbol is not supported by a print service published from ArcMap")};c.operationalLayers.forEach((e=>{var i,r,l;null!=(i=e.featureCollection)&&i.layers?e.featureCollection.layers.forEach((e=>{var i,r,l,s;if(null!=(i=e.layerDefinition)&&null!=(r=i.drawingInfo)&&null!=(l=r.renderer)&&l.symbol){const i=e.layerDefinition.drawingInfo.renderer;"esriTS"===i.symbol.type?a(i.symbol):"CIMSymbolReference"!==i.symbol.type||t.is11xService||n()}null!=(s=e.featureSet)&&s.features&&e.featureSet.features.forEach((e=>{e.symbol&&("esriTS"===e.symbol.type?a(e.symbol):"CIMSymbolReference"!==e.symbol.type||t.is11xService||n())}))})):!t.is11xService&&null!=(r=e.layerDefinition)&&null!=(l=r.drawingInfo)&&l.renderer&&JSON.stringify(e.layerDefinition.drawingInfo.renderer).includes('"type":"CIMSymbolReference"')&&n()}))}e.outSpatialReference&&(c.mapOptions.spatialReference=e.outSpatialReference.toJSON()),Object.assign(c,{exportOptions:n,layoutOptions:o||{}}),Object.assign(c.layoutOptions,{legendOptions:{operationalLayers:null!=u?u:t.legendLayers.slice()}}),t.legendLayers.length=0,X.set(t.gpServerUrl,t);const y={Web_Map_as_JSON:JSON.stringify(c),Format:g(i.format),Layout_Template:l};return e.extraParameters&&Object.assign(y,e.extraParameters),y}async function te(e,t,i){const r=e.view;let a=r.spatialReference;const l={operationalLayers:await re(r,t,i)};let s=i.ssExtent||e.extent||r.extent;if(a&&a.isWrappable&&(s=s.clone()._normalize(!0),a=s.spatialReference),l.mapOptions={extent:s&&s.toJSON(),spatialReference:a&&a.toJSON(),showAttribution:t.attributionVisible},i.ssExtent=null,r.background&&(l.background=r.background.toJSON()),r.rotation&&(l.mapOptions.rotation=-r.rotation),t.scalePreserved&&(l.mapOptions.scale=t.outScale||r.scale),n(r.timeExtent)){const e=n(r.timeExtent.start)?r.timeExtent.start.getTime():null,t=n(r.timeExtent.end)?r.timeExtent.end.getTime():null;l.mapOptions.time=[e,t]}return l}function ie(e){let t=e;const i=t.lastIndexOf("/GPServer/");return i>0&&(t=t.slice(0,i+9)),t}async function re(e,t,i){const r=[],a={layerView:null,printTemplate:t,view:e};let n=0;t.scalePreserved&&(n=t.outScale||e.scale);const l=h(e,n);for(const s of l){const e=s.layer;if(!e.loaded||w(e))continue;let t;a.layerView=s,t=S(s)?await ge(e,a,i):x(e)?ae(e):v(e)?await ne(e,a,i):D(e)?await se(e,a,i):I(e)?await oe(e,a,i):L(e)?await ue(e,a,i):T(e)?ce(e,i):E(e)?await ye(e,a,i):M(e)?await fe(e,a,i):V(e)?me(e,a,i):O(e)?await de(a,i):P(e)?pe():F(e)?await be(e,a,i):N(e)?he(e,i):R(e)?await we(e,a,i):U(e)?Se(e):J(e)?xe(e):j(e)?ve(e):await ge(e,a,i),t&&(Array.isArray(t)?r.push(...t):(t.id=e.id,t.title=i.legendLayerNameMap[e.id]||e.title,t.opacity=e.opacity,t.minScale=e.minScale||0,t.maxScale=e.maxScale||0,A(e)&&e.blendMode&&"normal"!==e.blendMode&&(t.blendMode=e.blendMode),r.push(t)))}if(n&&r.forEach((e=>{e.minScale=0,e.maxScale=0})),e.graphics&&e.graphics.length){const a=await le(null,e.graphics,t,i);a&&r.push(a)}return r}function ae(e){return{culture:e.culture,key:e.key,type:"BingMaps"+("aerial"===e.style?"Aerial":"hybrid"===e.style?"Hybrid":"Road")}}async function ne(e,t,i){e.legendEnabled&&i.legendLayers.push({id:e.id});const r=t.layerView,a=t.printTemplate;let n;if(!i.is11xService||r.filter){return le(e,await Ee(r),a,i)}return n={type:"CSV"},e.write(n,{origin:"web-map"}),delete n.popupInfo,delete n.layerType,n.showLabels=a.showLabels&&e.labelsVisible,n}async function le(e,t,i,r){let a;const n=z(),l=$(),s=K(),o=_(),u=K();if(u.layerDefinition.name="textLayer",delete u.layerDefinition.drawingInfo,e){if("esri.layers.FeatureLayer"===e.declaredClass||"esri.layers.StreamLayer"===e.declaredClass?n.layerDefinition.name=l.layerDefinition.name=s.layerDefinition.name=o.layerDefinition.name=r.legendLayerNameMap[e.id]||e.get("arcgisProps.title")||e.title:"esri.layers.GraphicsLayer"===e.declaredClass&&(t=e.graphics.items),e.renderer){const t=e.renderer.toJSON();n.layerDefinition.drawingInfo.renderer=t,l.layerDefinition.drawingInfo.renderer=t,s.layerDefinition.drawingInfo.renderer=t,o.layerDefinition.drawingInfo.renderer=t}if(i.showLabels&&e.labelsVisible&&"function"==typeof e.write){var c,m;const t=null==(c=e.write({},{origin:"web-map"}).layerDefinition)||null==(m=c.drawingInfo)?void 0:m.labelingInfo;t&&(a=!0,n.layerDefinition.drawingInfo.labelingInfo=t,l.layerDefinition.drawingInfo.labelingInfo=t,s.layerDefinition.drawingInfo.labelingInfo=t,o.layerDefinition.drawingInfo.labelingInfo=t)}}let d;null!=e&&e.renderer||a||(delete n.layerDefinition.drawingInfo,delete l.layerDefinition.drawingInfo,delete s.layerDefinition.drawingInfo,delete o.layerDefinition.drawingInfo);const p=null==e?void 0:e.fieldsIndex,g=null==e?void 0:e.renderer;if(p){const t=new Set;a&&await f(t,e),g&&"function"==typeof g.collectRequiredFields&&await g.collectRequiredFields(t,p),d=Array.from(t);const i=p.fields.map((e=>e.toJSON()));n.layerDefinition.fields=i,l.layerDefinition.fields=i,s.layerDefinition.fields=i,o.layerDefinition.fields=i}const b=t&&t.length;let h;for(let f=0;f<b;f++){var w;const a=t[f]||t.getItemAt(f);if(!1===a.visible||!a.geometry)continue;if(h=a.toJSON(),h.hasOwnProperty("popupTemplate")&&delete h.popupTemplate,h.geometry&&h.geometry.z&&delete h.geometry.z,h.symbol&&h.symbol.outline&&"esriCLS"===h.symbol.outline.type&&!r.is11xService)continue;!r.is11xService&&h.symbol&&h.symbol.outline&&h.symbol.outline.color&&h.symbol.outline.color[3]&&(h.symbol.outline.color[3]=255);const c=e&&e.renderer&&("valueExpression"in e.renderer&&e.renderer.valueExpression||"hasVisualVariables"in e.renderer&&e.renderer.hasVisualVariables());if(!h.symbol&&e&&e.renderer&&c&&!r.is11xService){const t=e.renderer,i=await t.getSymbolAsync(a);if(!i)continue;h.symbol=i.toJSON(),"hasVisualVariables"in t&&t.hasVisualVariables()&&k(h.symbol,{renderer:t,graphic:a,symbol:i})}if(h.symbol&&(h.symbol.angle||delete h.symbol.angle,Ve(h.symbol)?h.symbol=await Le(h.symbol,r):h.symbol.text&&delete h.attributes),(!i||!i.forceFeatureAttributes)&&null!=(w=d)&&w.length){const e={};d.forEach((t=>{h.attributes&&h.attributes.hasOwnProperty(t)&&(e[t]=h.attributes[t])})),h.attributes=e}"polygon"===a.geometry.type?n.featureSet.features.push(h):"polyline"===a.geometry.type?l.featureSet.features.push(h):"point"===a.geometry.type?h.symbol&&h.symbol.text?u.featureSet.features.push(h):s.featureSet.features.push(h):"multipoint"===a.geometry.type?o.featureSet.features.push(h):"extent"===a.geometry.type&&(h.geometry=y.fromExtent(a.geometry).toJSON(),n.featureSet.features.push(h))}const S=[n,l,o,s,u].filter((e=>e.featureSet.features.length>0));for(const y of S){const e=y.featureSet.features.every((e=>e.symbol));!e||i&&i.forceFeatureAttributes||y.featureSet.features.forEach((e=>{delete e.attributes})),e&&delete y.layerDefinition.drawingInfo,y.layerDefinition.drawingInfo&&y.layerDefinition.drawingInfo.renderer&&await Te(y.layerDefinition.drawingInfo.renderer,r)}return S.length?{featureCollection:{layers:S},showLabels:a}:null}async function se(e,t,i){var r,a;let n;const l=e.renderer,s=parseFloat(i.cimVersion);if(e.featureReduction&&(!i.is11xService||s<2.9)||"dot-density"===(null==l?void 0:l.type)&&(!i.is11xService||s<2.6))return ge(e,t,i);e.legendEnabled&&i.legendLayers.push({id:e.id});const o=t.layerView,{printTemplate:u,view:c}=t,y=l&&("valueExpression"in l&&l.valueExpression||"hasVisualVariables"in l&&l.hasVisualVariables()),f="feature-layer"!==(null==(r=e.source)?void 0:r.type)&&"ogc-feature"!==(null==(a=e.source)?void 0:a.type);if(!i.is11xService&&y||o.filter||f||!l||"field"in l&&null!=l.field&&("string"!=typeof l.field||!e.getField(l.field))){const t=await Ee(o);n=await le(e,t,u,i)}else{var d,p;if(n={id:(g=e.write()).id,title:g.title,opacity:g.opacity,minScale:g.minScale,maxScale:g.maxScale,url:g.url,layerType:g.layerType,customParameters:g.customParameters,layerDefinition:g.layerDefinition},n.showLabels=u.showLabels&&e.labelsVisible,De(n,e),null!=(d=n.layerDefinition)&&null!=(p=d.drawingInfo)&&p.renderer&&(delete n.layerDefinition.minScale,delete n.layerDefinition.maxScale,await Te(n.layerDefinition.drawingInfo.renderer,i),"visualVariables"in l&&l.visualVariables&&l.visualVariables[0])){const e=l.visualVariables[0];if("size"===e.type&&e.maxSize&&"number"!=typeof e.maxSize&&e.minSize&&"number"!=typeof e.minSize){const t=m(e,c.scale);n.layerDefinition.drawingInfo.renderer.visualVariables[0].minSize=t.minSize,n.layerDefinition.drawingInfo.renderer.visualVariables[0].maxSize=t.maxSize}}const t=B(o);t&&(n.layerDefinition||(n.layerDefinition={}),n.layerDefinition.definitionExpression=n.layerDefinition.definitionExpression?`(${n.layerDefinition.definitionExpression}) AND (${t})`:t)}var g;return n}async function oe(e,{layerView:t,printTemplate:i},r){e.legendEnabled&&r.legendLayers.push({id:e.id});return le(e,await Ee(t),i,r)}async function ue(e,{printTemplate:t},i){return le(e,null,t,i)}function ce(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});const i={layerType:(r=e.write()).layerType,customParameters:r.customParameters};var r;if(i.bandIds=e.bandIds,i.compressionQuality=e.compressionQuality,i.format=e.format,i.interpolation=e.interpolation,(e.mosaicRule||e.definitionExpression)&&(i.mosaicRule=e.exportImageServiceParameters.mosaicRule.toJSON()),e.renderingRule||e.renderer)if(t.is11xService)e.renderingRule&&(i.renderingRule=e.renderingRule.toJSON()),e.renderer&&(i.layerDefinition=i.layerDefinition||{},i.layerDefinition.drawingInfo=i.layerDefinition.drawingInfo||{},i.layerDefinition.drawingInfo.renderer=e.renderer.toJSON());else{const t=e.exportImageServiceParameters.combineRendererWithRenderingRule();t&&(i.renderingRule=t.toJSON())}return De(i,e),i}async function ye(e,t,i){var r;if("animated-flow"===(null==(r=e.renderer)?void 0:r.type))return ge(e,t,i);e.legendEnabled&&i.legendLayers.push({id:e.id});const a={bandIds:(n=e.write()||{}).bandIds,customParameters:n.customParameters,interpolation:n.interpolation,layerDefinition:n.layerDefinition};var n;return a.layerType="ArcGISImageServiceLayer",De(a,e),a}async function fe(e,t,i){const r=t.printTemplate;if(i.is11xService){const t={type:"kml"};return e.write(t,{origin:"web-map"}),delete t.layerType,t.url=u(e.url),t}{const a=[],n=t.layerView;n.allVisibleMapImages.forEach(((t,i)=>{const r={id:`${e.id}_image${i}`,type:"image",title:e.id,minScale:e.minScale||0,maxScale:e.maxScale||0,opacity:e.opacity,extent:t.extent};"data:image/png;base64,"===t.href.substr(0,22)?r.imageData=t.href.substr(22):r.url=t.href,a.push(r)}));const l=[...n.allVisiblePoints.items,...n.allVisiblePolylines.items,...n.allVisiblePolygons.items],s={id:e.id,...await le(null,l,r,i)};return a.push(s),a}}function me(e,{view:t},i){let r;const a={id:e.id,subLayerIds:[]};let n=[];const l=t.scale,s=e=>{const t=0===l,i=0===e.minScale||l<=e.minScale,r=0===e.maxScale||l>=e.maxScale;if(e.visible&&(t||i&&r))if(e.sublayers)e.sublayers.forEach(s);else{const t=e.toExportImageJSON(),i={id:e.id,name:e.title,layerDefinition:{drawingInfo:t.drawingInfo,definitionExpression:t.definitionExpression,source:t.source}};n.unshift(i),a.subLayerIds.push(e.id)}};var o;return e.sublayers&&e.sublayers.forEach(s),n.length&&(n=n.map((({id:e,name:t,layerDefinition:i})=>({id:e,name:t,layerDefinition:i}))),r={layerType:(o=e.write()).layerType,customParameters:o.customParameters},r.layers=n,r.visibleLayers=e.capabilities.exportMap.supportsDynamicLayers?void 0:a.subLayerIds,De(r,e),e.legendEnabled&&i.legendLayers.push(a)),r}async function de({layerView:e,printTemplate:t},i){const r=[],a=e.layer;if(n(a.featureCollections))for(const n of a.featureCollections){const e=await le(n,n.source,t,i);e&&r.push(...e.featureCollection.layers)}else if(n(a.sublayers))for(const n of a.sublayers){const e=await le(null,n.graphics,t,i);e&&r.push(...e.featureCollection.layers)}return{featureCollection:{layers:r}}}function pe(){return{type:"OpenStreetMap"}}async function ge(e,{printTemplate:t,view:i},r){const a={type:"image"},n={format:"png",ignoreBackground:!0,layers:[e],rotation:0},s=r.ssExtent||i.extent.clone();let o=96,u=!0,y=!0;if(t.exportOptions){const e=t.exportOptions;e.dpi>0&&(o=e.dpi),e.width>0&&(u=e.width%2==i.width%2),e.height>0&&(y=e.height%2==i.height%2)}if("map-only"===t.layout&&t.scalePreserved&&(!t.outScale||t.outScale===i.scale)&&96===o&&(!u||!y)&&(n.area={x:0,y:0,width:i.width,height:i.height},u||(n.area.width-=1),y||(n.area.height-=1),!r.ssExtent)){const e=i.toMap(l(n.area.width,n.area.height));s.ymin=e.y,s.xmax=e.x,r.ssExtent=s}a.extent=s.clone()._normalize(!0).toJSON();const f=await i.takeScreenshot(n),{data:m}=c(f.dataUrl);return a.imageData=m,a}async function be(e,{layerView:t,printTemplate:i},r){e.legendEnabled&&r.legendLayers.push({id:e.id});return le(e,await Ee(t),i,r)}function he(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});const i={layerType:(r=e.write()).layerType,customParameters:r.customParameters};var r;return De(i,e),i}async function we(e,t,i){if(i.is11xService&&e.serviceUrl&&e.styleUrl){const t=Ie(e.styleUrl,e.apiKey),r=Ie(e.serviceUrl,e.apiKey);if(!t&&!r||"2.1.0"!==i.cimVersion){const i={type:"VectorTileLayer"};return i.styleUrl=u(e.styleUrl),i.token=t,r!==t&&(i.additionalTokens=[{url:e.serviceUrl,token:r}]),i}}return ge(e,t,i)}function Se(e){const t={type:"WebTiledLayer",urlTemplate:e.urlTemplate.replace(/\${/g,"{"),credits:e.copyright};return e.subDomains&&e.subDomains.length>0&&(t.subDomains=e.subDomains),t}function xe(e){let t;const i=[],r=e=>{e.visible&&(e.sublayers?e.sublayers.forEach(r):e.name&&i.unshift(e.name))};return e.sublayers&&e.sublayers.forEach(r),i.length&&(t={type:"wms",customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,transparentBackground:e.imageTransparency,visibleLayers:i,url:u(e.url),version:e.version}),t}function ve(e){const t=e.activeLayer;return{type:"wmts",customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,format:t.imageFormat,layer:t.id,style:t.styleId,tileMatrixSet:t.tileMatrixSetId,url:u(e.url)}}function De(e,t){t.url&&(e.url=u(e.url||t.url),e.token=Ie(e.url,t.apiKey))}function Ie(i,r){var a,n;return W(i)&&(r||e.apiKey)?r||e.apiKey:null==(a=t)||null==(n=a.findCredential(i))?void 0:n.token}async function Le(e,t){t.canvas||(t.canvas=document.createElement("canvas"));const r=1024;t.canvas.width=r,t.canvas.height=r;const a=t.canvas.getContext("2d");let n,l;if(e.path){var u;const t=new Path2D(e.path);t.closePath(),a.fillStyle=Array.isArray(e.color)?`rgba(${e.color[0]},${e.color[1]},${e.color[2]},${e.color[3]/255})`:"rgb(0,0,0)",a.fill(t);const i=C(a);if(!i)return null;a.clearRect(0,0,r,r);const o=s(e.size)/Math.max(i.width,i.height);a.scale(o,o);const c=r/o,y=c/2-i.width/2-i.x,f=c/2-i.height/2-i.y;if(a.translate(y,f),Array.isArray(e.color)&&a.fill(t),null!=(u=e.outline)&&u.width&&Array.isArray(e.outline.color)){const r=e.outline;a.lineWidth=s(r.width)/o,a.lineJoin="round",a.strokeStyle=`rgba(${r.color[0]},${r.color[1]},${r.color[2]},${r.color[3]/255})`,a.stroke(t),i.width+=a.lineWidth,i.height+=a.lineWidth}i.width*=o,i.height*=o;const m=a.getImageData(r/2-i.width/2,r/2-i.height/2,Math.ceil(i.width),Math.ceil(i.height));n=m.width,l=m.height,a.canvas.width=n,a.canvas.height=l,a.putImageData(m,0,0)}else{const t="image/svg+xml"===e.contentType?"data:image/svg+xml;base64,"+e.imageData:e.url,r=(await i(t,{responseType:"image"})).data;n=s(e.width),l=s(e.height),a.canvas.width=n,a.canvas.height=l,a.drawImage(r,0,0,a.canvas.width,a.canvas.height)}return{type:"esriPMS",imageData:a.canvas.toDataURL("image/png").substr(22),angle:e.angle,contentType:"image/png",height:o(l),width:o(n),xoffset:e.xoffset,yoffset:e.yoffset}}async function Te(e,t){const i=e.type;if("simple"===i&&Ve(e.symbol))e.symbol=await Le(e.symbol,t);else if("uniqueValue"===i||"classBreaks"===i){Ve(e.defaultSymbol)&&(e.defaultSymbol=await Le(e.defaultSymbol,t));const r=e["uniqueValue"===i?"uniqueValueInfos":"classBreakInfos"];if(r)for(const e of r)Ve(e.symbol)&&(e.symbol=await Le(e.symbol,t))}}async function Ee(e){return e.queryFeatures(e.createQuery()).then((e=>e.features))}function Me(e){return e.gpMetadata&&e.gpMetadata.executionType?H.fromJSON(e.gpMetadata.executionType):"sync"}function Ve(e){return e&&(e.path||"image/svg+xml"===e.contentType||e.url&&e.url.endsWith(".svg"))}export{Y as execute,ee as getGpPrintParams,ie as getGpServerUrl,Z as getMode,X as printCacheMap};
5
+ import e from"../config.js";import{id as t}from"../kernel.js";import i from"../request.js";import r from"../core/Error.js";import{JSONMap as a}from"../core/jsonMap.js";import{isSome as n}from"../core/maybe.js";import{createScreenPoint as l,pt2px as s,px2pt as o}from"../core/screenUtils.js";import{normalize as u,dataComponents as c}from"../core/urlUtils.js";import y from"../geometry/Polygon.js";import{collectLabelingFields as f}from"../layers/support/fieldUtils.js";import{getSizeRangeAtScale as m}from"../renderers/visualVariables/support/visualVariableUtils.js";import{execute as d}from"./geoprocessor/execute.js";import{submitJob as p}from"./geoprocessor/submitJob.js";import{toJSON as g}from"./support/fileFormat.js";import{toJSON as b}from"./support/layoutTemplate.js";import{getVisibleLayerViews as h,isGroupLayer as w,isScreenshotRequired as S,isBingMapsLayer as x,isCSVLayer as v,isFeatureLayer as D,isGeoJSONLayer as I,isGraphicsLayer as L,isImageryLayer as T,isImageryTileLayer as E,isKMLLayer as M,isMapImageLayer as V,isMapNotesLayer as O,isOpenStreetMapLayer as P,isStreamLayer as F,isTileLayer as N,isVectorTileLayer as R,isWebTileLayer as U,isWMSLayer as J,isWMTSLayer as j,isBlendLayer as A,applyVisualVariables as C,getContextBoundingBox as k,createPolygonLayer as z,createPolylineLayer as $,createPointLayer as K,createMultipointLayer as _}from"./support/printTaskUtils.js";import q from"./support/PrintTemplate.js";import{supportsApiKey as W}from"../support/apiKeyUtils.js";import{getFloorFilterClause as B}from"../views/support/floorFilterUtils.js";const G={Feet:"ft",Kilometers:"km",Meters:"m",Miles:"mi"},Q=new a({esriFeet:"Feet",esriKilometers:"Kilometers",esriMeters:"Meters",esriMiles:"Miles"}),H=new a({esriExecutionTypeSynchronous:"sync",esriExecutionTypeAsynchronous:"async"}),X=new Map;async function Y(e,t,r){const a=ie(e);let n=X.get(a);return Promise.resolve().then((()=>n?{data:n.gpMetadata}:(n={gpServerUrl:a,is11xService:!1,legendLayerNameMap:{},legendLayers:[]},i(a,{query:{f:"json"}})))).then((e=>(n.gpMetadata=e.data,n.cimVersion=n.gpMetadata.cimVersion,n.is11xService=!!n.cimVersion,X.set(a,n),ee(t,n)))).then((i=>{const a=Me(n);let l;const s=e=>"sync"===a?e.results&&e.results[0]&&e.results[0].value:l.fetchResultData("Output_File",null,r).then((e=>e.value));return"async"===a?p(e,i,null,r).then((e=>(l=e,e.waitForJobCompletion({interval:t.updateDelay}).then(s)))):d(e,i,null,r).then(s)}))}async function Z(e){const t=ie(e);return Me(X.get(t))}async function ee(e,t){t=t||{is11xService:!1,legendLayerNameMap:{},legendLayers:[]};const i=e.template||new q;null==i.showLabels&&(i.showLabels=!0);const a=i.exportOptions;let n;const l=b(i.layout);if(a){if(n={dpi:a.dpi},"map_only"===l.toLowerCase()||""===l){const e=a.width,t=a.height;n.outputSize=[e,t]}}const s=i.layoutOptions;let o;if(s){let e,t;"Miles"===s.scalebarUnit||"Kilometers"===s.scalebarUnit?(e="Kilometers",t="Miles"):"Meters"!==s.scalebarUnit&&"Feet"!==s.scalebarUnit||(e="Meters",t="Feet"),o={titleText:s.titleText,authorText:s.authorText,copyrightText:s.copyrightText,customTextElements:s.customTextElements,scaleBarOptions:{metricUnit:Q.toJSON(e),metricLabel:G[e],nonMetricUnit:Q.toJSON(t),nonMetricLabel:G[t]}}}let u=null;null!=s&&s.legendLayers&&(u=s.legendLayers.map((e=>{t.legendLayerNameMap[e.layerId]=e.title;const i={id:e.layerId};return e.subLayerIds&&(i.subLayerIds=e.subLayerIds),i})));const c=await te(e,i,t);if(c.operationalLayers){const e=new RegExp("[\\u4E00-\\u9FFF\\u0E00-\\u0E7F\\u0900-\\u097F\\u3040-\\u309F\\u30A0-\\u30FF\\u31F0-\\u31FF]"),i=/[\u0600-\u06FF]/,a=t=>{const r=t.text,a=t.font,n=a&&a.family&&a.family.toLowerCase();r&&a&&("arial"===n||"arial unicode ms"===n)&&(a.family=e.test(r)?"Arial Unicode MS":"Arial","normal"!==a.style&&i.test(r)&&(a.family="Arial Unicode MS"))},n=()=>{throw new r("print:cim-symbol-unsupported","CIMSymbol is not supported by a print service published from ArcMap")};c.operationalLayers.forEach((e=>{var i,r,l;null!=(i=e.featureCollection)&&i.layers?e.featureCollection.layers.forEach((e=>{var i,r,l,s;if(null!=(i=e.layerDefinition)&&null!=(r=i.drawingInfo)&&null!=(l=r.renderer)&&l.symbol){const i=e.layerDefinition.drawingInfo.renderer;"esriTS"===i.symbol.type?a(i.symbol):"CIMSymbolReference"!==i.symbol.type||t.is11xService||n()}null!=(s=e.featureSet)&&s.features&&e.featureSet.features.forEach((e=>{e.symbol&&("esriTS"===e.symbol.type?a(e.symbol):"CIMSymbolReference"!==e.symbol.type||t.is11xService||n())}))})):!t.is11xService&&null!=(r=e.layerDefinition)&&null!=(l=r.drawingInfo)&&l.renderer&&JSON.stringify(e.layerDefinition.drawingInfo.renderer).includes('"type":"CIMSymbolReference"')&&n()}))}e.outSpatialReference&&(c.mapOptions.spatialReference=e.outSpatialReference.toJSON()),Object.assign(c,{exportOptions:n,layoutOptions:o||{}}),Object.assign(c.layoutOptions,{legendOptions:{operationalLayers:null!=u?u:t.legendLayers.slice()}}),t.legendLayers.length=0,X.set(t.gpServerUrl,t);const y={Web_Map_as_JSON:JSON.stringify(c),Format:g(i.format),Layout_Template:l};return e.extraParameters&&Object.assign(y,e.extraParameters),y}async function te(e,t,i){const r=e.view;let a=r.spatialReference;const l={operationalLayers:await re(r,t,i)};let s=i.ssExtent||e.extent||r.extent;if(a&&a.isWrappable&&(s=s.clone()._normalize(!0),a=s.spatialReference),l.mapOptions={extent:s&&s.toJSON(),spatialReference:a&&a.toJSON(),showAttribution:t.attributionVisible},i.ssExtent=null,r.background&&(l.background=r.background.toJSON()),r.rotation&&(l.mapOptions.rotation=-r.rotation),t.scalePreserved&&(l.mapOptions.scale=t.outScale||r.scale),n(r.timeExtent)){const e=n(r.timeExtent.start)?r.timeExtent.start.getTime():null,t=n(r.timeExtent.end)?r.timeExtent.end.getTime():null;l.mapOptions.time=[e,t]}return l}function ie(e){let t=e;const i=t.lastIndexOf("/GPServer/");return i>0&&(t=t.slice(0,i+9)),t}async function re(e,t,i){const r=[],a={layerView:null,printTemplate:t,view:e};let n=0;t.scalePreserved&&(n=t.outScale||e.scale);const l=h(e,n);for(const s of l){const e=s.layer;if(!e.loaded||w(e))continue;let t;a.layerView=s,t=S(s)?await ge(e,a,i):x(e)?ae(e):v(e)?await ne(e,a,i):D(e)?await se(e,a,i):I(e)?await oe(e,a,i):L(e)?await ue(e,a,i):T(e)?ce(e,i):E(e)?await ye(e,a,i):M(e)?await fe(e,a,i):V(e)?me(e,a,i):O(e)?await de(a,i):P(e)?pe():F(e)?await be(e,a,i):N(e)?he(e,i):R(e)?await we(e,a,i):U(e)?Se(e):J(e)?xe(e):j(e)?ve(e):await ge(e,a,i),t&&(Array.isArray(t)?r.push(...t):(t.id=e.id,t.title=i.legendLayerNameMap[e.id]||e.title,t.opacity=e.opacity,t.minScale=e.minScale||0,t.maxScale=e.maxScale||0,A(e)&&e.blendMode&&"normal"!==e.blendMode&&(t.blendMode=e.blendMode),r.push(t)))}if(n&&r.forEach((e=>{e.minScale=0,e.maxScale=0})),e.graphics&&e.graphics.length){const a=await le(null,e.graphics,t,i);a&&r.push(a)}return r}function ae(e){return{culture:e.culture,key:e.key,type:"BingMaps"+("aerial"===e.style?"Aerial":"hybrid"===e.style?"Hybrid":"Road")}}async function ne(e,t,i){e.legendEnabled&&i.legendLayers.push({id:e.id});const r=t.layerView,a=t.printTemplate;let n;if(!i.is11xService||r.filter){return le(e,await Ee(r),a,i)}return n={type:"CSV"},e.write(n,{origin:"web-map"}),delete n.popupInfo,delete n.layerType,n.showLabels=a.showLabels&&e.labelsVisible,n}async function le(e,t,i,r){let a;const n=z(),l=$(),s=K(),o=_(),u=K();if(u.layerDefinition.name="textLayer",delete u.layerDefinition.drawingInfo,e){if("esri.layers.FeatureLayer"===e.declaredClass||"esri.layers.StreamLayer"===e.declaredClass?n.layerDefinition.name=l.layerDefinition.name=s.layerDefinition.name=o.layerDefinition.name=r.legendLayerNameMap[e.id]||e.get("arcgisProps.title")||e.title:"esri.layers.GraphicsLayer"===e.declaredClass&&(t=e.graphics.items),e.renderer){const t=e.renderer.toJSON();n.layerDefinition.drawingInfo.renderer=t,l.layerDefinition.drawingInfo.renderer=t,s.layerDefinition.drawingInfo.renderer=t,o.layerDefinition.drawingInfo.renderer=t}if(i.showLabels&&e.labelsVisible&&"function"==typeof e.write){var c,m;const t=null==(c=e.write({},{origin:"web-map"}).layerDefinition)||null==(m=c.drawingInfo)?void 0:m.labelingInfo;t&&(a=!0,n.layerDefinition.drawingInfo.labelingInfo=t,l.layerDefinition.drawingInfo.labelingInfo=t,s.layerDefinition.drawingInfo.labelingInfo=t,o.layerDefinition.drawingInfo.labelingInfo=t)}}let d;null!=e&&e.renderer||a||(delete n.layerDefinition.drawingInfo,delete l.layerDefinition.drawingInfo,delete s.layerDefinition.drawingInfo,delete o.layerDefinition.drawingInfo);const p=null==e?void 0:e.fieldsIndex,g=null==e?void 0:e.renderer;if(p){const t=new Set;a&&await f(t,e),g&&"function"==typeof g.collectRequiredFields&&await g.collectRequiredFields(t,p),d=Array.from(t);const i=p.fields.map((e=>e.toJSON()));n.layerDefinition.fields=i,l.layerDefinition.fields=i,s.layerDefinition.fields=i,o.layerDefinition.fields=i}const b=t&&t.length;let h;for(let f=0;f<b;f++){var w;const a=t[f]||t.getItemAt(f);if(!1===a.visible||!a.geometry)continue;if(h=a.toJSON(),h.hasOwnProperty("popupTemplate")&&delete h.popupTemplate,h.geometry&&h.geometry.z&&delete h.geometry.z,h.symbol&&h.symbol.outline&&"esriCLS"===h.symbol.outline.type&&!r.is11xService)continue;!r.is11xService&&h.symbol&&h.symbol.outline&&h.symbol.outline.color&&h.symbol.outline.color[3]&&(h.symbol.outline.color[3]=255);const c=e&&e.renderer&&("valueExpression"in e.renderer&&e.renderer.valueExpression||"hasVisualVariables"in e.renderer&&e.renderer.hasVisualVariables());if(!h.symbol&&e&&e.renderer&&c&&!r.is11xService){const t=e.renderer,i=await t.getSymbolAsync(a);if(!i)continue;h.symbol=i.toJSON(),"hasVisualVariables"in t&&t.hasVisualVariables()&&C(h.symbol,{renderer:t,graphic:a,symbol:i})}if(h.symbol&&(h.symbol.angle||delete h.symbol.angle,Ve(h.symbol)?h.symbol=await Le(h.symbol,r):h.symbol.text&&delete h.attributes),(!i||!i.forceFeatureAttributes)&&null!=(w=d)&&w.length){const e={};d.forEach((t=>{h.attributes&&h.attributes.hasOwnProperty(t)&&(e[t]=h.attributes[t])})),h.attributes=e}"polygon"===a.geometry.type?n.featureSet.features.push(h):"polyline"===a.geometry.type?l.featureSet.features.push(h):"point"===a.geometry.type?h.symbol&&h.symbol.text?u.featureSet.features.push(h):s.featureSet.features.push(h):"multipoint"===a.geometry.type?o.featureSet.features.push(h):"extent"===a.geometry.type&&(h.geometry=y.fromExtent(a.geometry).toJSON(),n.featureSet.features.push(h))}const S=[n,l,o,s,u].filter((e=>e.featureSet.features.length>0));for(const y of S){const e=y.featureSet.features.every((e=>e.symbol));!e||i&&i.forceFeatureAttributes||y.featureSet.features.forEach((e=>{delete e.attributes})),e&&delete y.layerDefinition.drawingInfo,y.layerDefinition.drawingInfo&&y.layerDefinition.drawingInfo.renderer&&await Te(y.layerDefinition.drawingInfo.renderer,r)}return S.length?{featureCollection:{layers:S},showLabels:a}:null}async function se(e,t,i){var r,a;let n;const l=e.renderer,s=parseFloat(i.cimVersion);if(e.featureReduction&&(!i.is11xService||s<2.9)||"dot-density"===(null==l?void 0:l.type)&&(!i.is11xService||s<2.6))return ge(e,t,i);e.legendEnabled&&i.legendLayers.push({id:e.id});const o=t.layerView,{printTemplate:u,view:c}=t,y=l&&("valueExpression"in l&&l.valueExpression||"hasVisualVariables"in l&&l.hasVisualVariables()),f="feature-layer"!==(null==(r=e.source)?void 0:r.type)&&"ogc-feature"!==(null==(a=e.source)?void 0:a.type);if(!i.is11xService&&y||o.filter||f||!l||"field"in l&&null!=l.field&&("string"!=typeof l.field||!e.getField(l.field))){const t=await Ee(o);n=await le(e,t,u,i)}else{var d,p;if(n={id:(g=e.write()).id,title:g.title,opacity:g.opacity,minScale:g.minScale,maxScale:g.maxScale,url:g.url,layerType:g.layerType,customParameters:g.customParameters,layerDefinition:g.layerDefinition},n.showLabels=u.showLabels&&e.labelsVisible,De(n,e),null!=(d=n.layerDefinition)&&null!=(p=d.drawingInfo)&&p.renderer&&(delete n.layerDefinition.minScale,delete n.layerDefinition.maxScale,await Te(n.layerDefinition.drawingInfo.renderer,i),"visualVariables"in l&&l.visualVariables&&l.visualVariables[0])){const e=l.visualVariables[0];if("size"===e.type&&e.maxSize&&"number"!=typeof e.maxSize&&e.minSize&&"number"!=typeof e.minSize){const t=m(e,c.scale);n.layerDefinition.drawingInfo.renderer.visualVariables[0].minSize=t.minSize,n.layerDefinition.drawingInfo.renderer.visualVariables[0].maxSize=t.maxSize}}const t=B(o);t&&(n.layerDefinition||(n.layerDefinition={}),n.layerDefinition.definitionExpression=n.layerDefinition.definitionExpression?`(${n.layerDefinition.definitionExpression}) AND (${t})`:t)}var g;return n}async function oe(e,{layerView:t,printTemplate:i},r){e.legendEnabled&&r.legendLayers.push({id:e.id});return le(e,await Ee(t),i,r)}async function ue(e,{printTemplate:t},i){return le(e,null,t,i)}function ce(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});const i={layerType:(r=e.write()).layerType,customParameters:r.customParameters};var r;if(i.bandIds=e.bandIds,i.compressionQuality=e.compressionQuality,i.format=e.format,i.interpolation=e.interpolation,(e.mosaicRule||e.definitionExpression)&&(i.mosaicRule=e.exportImageServiceParameters.mosaicRule.toJSON()),e.renderingRule||e.renderer)if(t.is11xService)e.renderingRule&&(i.renderingRule=e.renderingRule.toJSON()),e.renderer&&(i.layerDefinition=i.layerDefinition||{},i.layerDefinition.drawingInfo=i.layerDefinition.drawingInfo||{},i.layerDefinition.drawingInfo.renderer=e.renderer.toJSON());else{const t=e.exportImageServiceParameters.combineRendererWithRenderingRule();t&&(i.renderingRule=t.toJSON())}return De(i,e),i}async function ye(e,t,i){var r;if("animated-flow"===(null==(r=e.renderer)?void 0:r.type))return ge(e,t,i);e.legendEnabled&&i.legendLayers.push({id:e.id});const a={bandIds:(n=e.write()||{}).bandIds,customParameters:n.customParameters,interpolation:n.interpolation,layerDefinition:n.layerDefinition};var n;return a.layerType="ArcGISImageServiceLayer",De(a,e),a}async function fe(e,t,i){const r=t.printTemplate;if(i.is11xService){const t={type:"kml"};return e.write(t,{origin:"web-map"}),delete t.layerType,t.url=u(e.url),t}{const a=[],n=t.layerView;n.allVisibleMapImages.forEach(((t,i)=>{const r={id:`${e.id}_image${i}`,type:"image",title:e.id,minScale:e.minScale||0,maxScale:e.maxScale||0,opacity:e.opacity,extent:t.extent};"data:image/png;base64,"===t.href.substr(0,22)?r.imageData=t.href.substr(22):r.url=t.href,a.push(r)}));const l=[...n.allVisiblePoints.items,...n.allVisiblePolylines.items,...n.allVisiblePolygons.items],s={id:e.id,...await le(null,l,r,i)};return a.push(s),a}}function me(e,{view:t},i){let r;const a={id:e.id,subLayerIds:[]};let n=[];const l=t.scale,s=e=>{const t=0===l,i=0===e.minScale||l<=e.minScale,r=0===e.maxScale||l>=e.maxScale;if(e.visible&&(t||i&&r))if(e.sublayers)e.sublayers.forEach(s);else{const t=e.toExportImageJSON(),i={id:e.id,name:e.title,layerDefinition:{drawingInfo:t.drawingInfo,definitionExpression:t.definitionExpression,source:t.source}};n.unshift(i),a.subLayerIds.push(e.id)}};var o;return e.sublayers&&e.sublayers.forEach(s),n.length&&(n=n.map((({id:e,name:t,layerDefinition:i})=>({id:e,name:t,layerDefinition:i}))),r={layerType:(o=e.write()).layerType,customParameters:o.customParameters},r.layers=n,r.visibleLayers=e.capabilities.exportMap.supportsDynamicLayers?void 0:a.subLayerIds,De(r,e),e.legendEnabled&&i.legendLayers.push(a)),r}async function de({layerView:e,printTemplate:t},i){const r=[],a=e.layer;if(n(a.featureCollections))for(const n of a.featureCollections){const e=await le(n,n.source,t,i);e&&r.push(...e.featureCollection.layers)}else if(n(a.sublayers))for(const n of a.sublayers){const e=await le(null,n.graphics,t,i);e&&r.push(...e.featureCollection.layers)}return{featureCollection:{layers:r}}}function pe(){return{type:"OpenStreetMap"}}async function ge(e,{printTemplate:t,view:i},r){const a={type:"image"},n={format:"png",ignoreBackground:!0,layers:[e],rotation:0},s=r.ssExtent||i.extent.clone();let o=96,u=!0,y=!0;if(t.exportOptions){const e=t.exportOptions;e.dpi>0&&(o=e.dpi),e.width>0&&(u=e.width%2==i.width%2),e.height>0&&(y=e.height%2==i.height%2)}if("map-only"===t.layout&&t.scalePreserved&&(!t.outScale||t.outScale===i.scale)&&96===o&&(!u||!y)&&(n.area={x:0,y:0,width:i.width,height:i.height},u||(n.area.width-=1),y||(n.area.height-=1),!r.ssExtent)){const e=i.toMap(l(n.area.width,n.area.height));s.ymin=e.y,s.xmax=e.x,r.ssExtent=s}a.extent=s.clone()._normalize(!0).toJSON();const f=await i.takeScreenshot(n),{data:m}=c(f.dataUrl);return a.imageData=m,a}async function be(e,{layerView:t,printTemplate:i},r){e.legendEnabled&&r.legendLayers.push({id:e.id});return le(e,await Ee(t),i,r)}function he(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});const i={layerType:(r=e.write()).layerType,customParameters:r.customParameters};var r;return De(i,e),i}async function we(e,t,i){if(i.is11xService&&e.serviceUrl&&e.styleUrl){const t=Ie(e.styleUrl,e.apiKey),r=Ie(e.serviceUrl,e.apiKey);if(!t&&!r||"2.1.0"!==i.cimVersion){const i={type:"VectorTileLayer"};return i.styleUrl=u(e.styleUrl),i.token=t,r!==t&&(i.additionalTokens=[{url:e.serviceUrl,token:r}]),i}}return ge(e,t,i)}function Se(e){const t={type:"WebTiledLayer",urlTemplate:e.urlTemplate.replace(/\${/g,"{"),credits:e.copyright};return e.subDomains&&e.subDomains.length>0&&(t.subDomains=e.subDomains),t}function xe(e){let t;const i=[],r=e=>{e.visible&&(e.sublayers?e.sublayers.forEach(r):e.name&&i.unshift(e.name))};return e.sublayers&&e.sublayers.forEach(r),i.length&&(t={type:"wms",customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,transparentBackground:e.imageTransparency,visibleLayers:i,url:u(e.url),version:e.version}),t}function ve(e){const t=e.activeLayer;return{type:"wmts",customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,format:t.imageFormat,layer:t.id,style:t.styleId,tileMatrixSet:t.tileMatrixSetId,url:u(e.url)}}function De(e,t){t.url&&(e.url=u(e.url||t.url),e.token=Ie(e.url,t.apiKey))}function Ie(i,r){var a,n;return W(i)&&(r||e.apiKey)?r||e.apiKey:null==(a=t)||null==(n=a.findCredential(i))?void 0:n.token}async function Le(e,t){t.canvas||(t.canvas=document.createElement("canvas"));const r=1024;t.canvas.width=r,t.canvas.height=r;const a=t.canvas.getContext("2d");let n,l;if(e.path){var u;const t=new Path2D(e.path);t.closePath(),a.fillStyle=Array.isArray(e.color)?`rgba(${e.color[0]},${e.color[1]},${e.color[2]},${e.color[3]/255})`:"rgb(0,0,0)",a.fill(t);const i=k(a);if(!i)return null;a.clearRect(0,0,r,r);const o=s(e.size)/Math.max(i.width,i.height);a.scale(o,o);const c=r/o,y=c/2-i.width/2-i.x,f=c/2-i.height/2-i.y;if(a.translate(y,f),Array.isArray(e.color)&&a.fill(t),null!=(u=e.outline)&&u.width&&Array.isArray(e.outline.color)){const r=e.outline;a.lineWidth=s(r.width)/o,a.lineJoin="round",a.strokeStyle=`rgba(${r.color[0]},${r.color[1]},${r.color[2]},${r.color[3]/255})`,a.stroke(t),i.width+=a.lineWidth,i.height+=a.lineWidth}i.width*=o,i.height*=o;const m=a.getImageData(r/2-i.width/2,r/2-i.height/2,Math.ceil(i.width),Math.ceil(i.height));n=m.width,l=m.height,a.canvas.width=n,a.canvas.height=l,a.putImageData(m,0,0)}else{const t="image/svg+xml"===e.contentType?"data:image/svg+xml;base64,"+e.imageData:e.url,r=(await i(t,{responseType:"image"})).data;n=s(e.width),l=s(e.height),a.canvas.width=n,a.canvas.height=l,a.drawImage(r,0,0,a.canvas.width,a.canvas.height)}return{type:"esriPMS",imageData:a.canvas.toDataURL("image/png").substr(22),angle:e.angle,contentType:"image/png",height:o(l),width:o(n),xoffset:e.xoffset,yoffset:e.yoffset}}async function Te(e,t){const i=e.type;if("simple"===i&&Ve(e.symbol))e.symbol=await Le(e.symbol,t);else if("uniqueValue"===i||"classBreaks"===i){Ve(e.defaultSymbol)&&(e.defaultSymbol=await Le(e.defaultSymbol,t));const r=e["uniqueValue"===i?"uniqueValueInfos":"classBreakInfos"];if(r)for(const e of r)Ve(e.symbol)&&(e.symbol=await Le(e.symbol,t))}}async function Ee(e){return e.queryFeatures(e.createQuery()).then((e=>e.features))}function Me(e){return e.gpMetadata&&e.gpMetadata.executionType?H.fromJSON(e.gpMetadata.executionType):"sync"}function Ve(e){return e&&(e.path||"image/svg+xml"===e.contentType||e.url&&e.url.endsWith(".svg"))}export{Y as execute,ee as getGpPrintParams,ie as getGpServerUrl,Z as getMode,X as printCacheMap};
@@ -0,0 +1,4 @@
1
+ import "../../../interfaces";
2
+
3
+ import predominanceUtils = __esri.predominanceUtils;
4
+ export = predominanceUtils;
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import"../geometry.js";import{isSome as e}from"../core/maybe.js";import r from"../geometry/SpatialReference.js";let t;function a(){return t||(t=(async()=>{const e=await import("./arcadeUtils.js");return{arcade:e.arcade,arcadeUtils:e,Dictionary:e.Dictionary,Feature:e.arcadeFeature}})()),t}const s=(e,r,t)=>o.create(e,r,t,null,["$feature"]),i=(e,r,t)=>o.create(e,r,t,null,["$feature","$view"]),c=i,n=(e,r,t,a)=>o.create(e,r,t,a,["$feature","$view"]);class o{constructor(e,r,t,a,s,i,c,n){this.script=e,this.evaluate=s;const o=Array.isArray(c)?c:c.fields;this.fields=o,this._syntaxTree=a,this._arcade=r,this._arcadeDictionary=t,this._arcadeFeature=i,this._spatialReference=n,this._referencesGeometry=r.scriptTouchesGeometry(this._syntaxTree),this._referencesScale=this._arcade.referencesMember(this._syntaxTree,"scale")}static async create(t,s,i,c,n,l){const{arcade:u,Feature:p,Dictionary:f}=await a(),d=r.fromJSON(s),y=u.parseScript(t,l),h=n.reduce(((e,r)=>({...e,[r]:null})),{});let m=null;e(c)&&(m=new f(c),m.immutable=!0,h.$config=null);const _=u.scriptUsesGeometryEngine(y)&&u.enableGeometrySupport(),F=u.scriptUsesFeatureSet(y)&&u.enableFeatureSetSupport(),w=u.scriptIsAsync(y)&&u.enableAsyncSupport(),S={vars:h,spatialReference:d,useAsync:!!w},b=new f;b.immutable=!1,b.setField("scale",0);const $=u.compileScript(y,S),x=e=>("$view"in e&&e.$view&&(b.setField("scale",e.$view.scale),e.$view=b),m&&(e.$config=m),$({vars:e,spatialReference:d}));return await Promise.all([_,F,w]),new o(t,u,f,y,x,new p,i,d)}repurposeFeature(e){return e.geometry&&!e.geometry.spatialReference&&(e.geometry.spatialReference=this._spatialReference),this._arcadeFeature.repurposeFromGraphicLikeObject(e.geometry,e.attributes,{fields:this.fields}),this._arcadeFeature}repurposeAdapter(e){return this._arcadeFeature.repurposeFromAdapter(e,{fields:this.fields}),this._arcadeFeature}createDictionary(){return new this._arcadeDictionary}referencesMember(e){return this._arcade.referencesMember(this._syntaxTree,e)}referencesFunction(e){return this._arcade.referencesFunction(this._syntaxTree,e)}referencesGeometry(){return this._referencesGeometry}referencesScale(){return this._referencesScale}extractFieldLiterals(){return this._arcade.extractExpectedFieldLiterals(this._syntaxTree)}}export{o as ArcadeExpression,n as createDictionaryExpression,s as createLabelExpression,i as createRendererExpression,c as createVVExpression,o as default,a as loadArcade};
5
+ import"../geometry.js";import{isSome as e}from"../core/maybe.js";import r from"../geometry/SpatialReference.js";let t;function a(){return t||(t=(async()=>{const e=await import("./arcadeUtils.js");return{arcade:e.arcade,arcadeUtils:e,Dictionary:e.Dictionary,Feature:e.arcadeFeature}})()),t}const s=(e,r,t)=>o.create(e,r,t,null,["$feature"]),i=(e,r,t)=>o.create(e,r,t,null,["$feature","$view"]),c=i,n=(e,r,t,a)=>o.create(e,r,t,a,["$feature","$view"]);class o{constructor(e,r,t,a,s,i,c,n){this.script=e,this.evaluate=s;const o=Array.isArray(c)?c:c.fields;this.fields=o,this._syntaxTree=a,this._arcade=r,this._arcadeDictionary=t,this._arcadeFeature=i,this._spatialReference=n,this._referencesGeometry=r.scriptTouchesGeometry(this._syntaxTree),this._referencesScale=this._arcade.referencesMember(this._syntaxTree,"scale")}static async create(t,s,i,c,n,l){const{arcade:u,Feature:p,Dictionary:f}=await a(),d=r.fromJSON(s),y=u.parseScript(t,l),h=n.reduce(((e,r)=>({...e,[r]:null})),{});let m=null;e(c)&&(m=new f(c),m.immutable=!0,h.$config=null);const _=u.scriptUsesGeometryEngine(y)&&u.enableGeometrySupport(),F=u.scriptUsesFeatureSet(y)&&u.enableFeatureSetSupport(),w=u.scriptIsAsync(y)&&u.enableAsyncSupport(),S={vars:h,spatialReference:d,useAsync:!!w},b=new f;b.immutable=!1,b.setField("scale",0);const $=u.compileScript(y,S),x=e=>("$view"in e&&e.$view&&(b.setField("scale",e.$view.scale),e.$view=b),m&&(e.$config=m),$({vars:e,spatialReference:d}));return await Promise.all([_,F,w]),new o(t,u,f,y,x,new p,i,d)}repurposeFeature(e){return e.geometry&&!e.geometry.spatialReference&&(e.geometry.spatialReference=this._spatialReference),this._arcadeFeature.repurposeFromGraphicLikeObject(e.geometry,e.attributes,{fields:this.fields}),this._arcadeFeature}repurposeAdapter(e){return this._arcadeFeature.repurposeFromAdapter(e,{fields:this.fields}),this._arcadeFeature}createDictionary(){return new this._arcadeDictionary}referencesMember(e){return this._arcade.referencesMember(this._syntaxTree,e)}referencesFunction(e){return this._arcade.referencesFunction(this._syntaxTree,e)}referencesGeometry(){return this._referencesGeometry}referencesScale(){return this._referencesScale}extractFieldLiterals(){return this._arcade.extractExpectedFieldLiterals(this._syntaxTree)}}export{o as ArcadeExpression,n as createDictionaryExpression,s as createLabelExpression,i as createRendererExpression,c as createVVExpression,a as loadArcade};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import e from"../core/has.js";const r=()=>!!e("enable-feature:force-wosr"),a=()=>!!e("enable-feature:direct-3d-object-feature-layer-display");export{a as enableDirect3DObjectFeatureLayerDisplay,r as enableWebStyleForceWOSR};
5
+ import e from"../core/has.js";const r=()=>!!e("enable-feature:force-wosr"),a=()=>!!e("enable-feature:direct-3d-object-feature-layer-display"),t=()=>!!e("enable-feature:precipitation");export{a as enableDirect3DObjectFeatureLayerDisplay,t as enablePrecipitation,r as enableWebStyleForceWOSR};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- const b="20220124",c="7b2ac1e8f09dcfba456186b5eb5018fd2157106d";export{b as buildDate,c as commitHash};
5
+ const c="20220129",a="50879897ca0956c8c8eea000b72a8bd5019b9984";export{c as buildDate,a as commitHash};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../chunks/tslib.es6.js";import{isSome as o}from"../core/maybe.js";import{property as e}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{enumeration as l}from"../core/accessorSupport/decorators/enumeration.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import s from"./Symbol3DLayer.js";import{symbol3dEdgesProperty as i}from"./edges/utils.js";import n from"./patterns/LineStylePattern3D.js";import a from"./patterns/StylePattern3D.js";import{symbol3dPatternProperty as p}from"./patterns/utils.js";import{white as u,transparentWhite as m}from"./support/colors.js";import{Symbol3DFillMaterial as c}from"./support/Symbol3DFillMaterial.js";import y from"./support/Symbol3DOutline.js";var d;let h=d=class extends s{constructor(t){super(t),this.type="fill",this.material=null,this.pattern=null,this.castShadows=!0,this.outline=null,this.edges=null}clone(){const t={edges:o(this.edges)?this.edges.clone():null,enabled:this.enabled,material:o(this.material)?this.material.clone():null,pattern:o(this.pattern)?this.pattern.clone():null,castShadows:this.castShadows,outline:o(this.outline)?this.outline.clone():null};return new d(t)}static fromSimpleFillSymbol(t){var o,e,l,r,s,i;const p=t.outline&&t.outline.style&&"inside-frame"!==t.outline.style&&"solid"!==t.outline.style?new n({style:t.outline.style}):null,y={size:null!=(o=null==(e=t.outline)?void 0:e.width)?o:0,color:(null!=(l=null==(r=t.outline)?void 0:r.color)?l:u).clone(),pattern:p};return p&&null!=(s=t.outline)&&s.cap&&(y.patternCap=t.outline.cap),new d({material:new c({color:(null!=(i=t.color)?i:m).clone()}),pattern:t.style&&"solid"!==t.style?new a({style:t.style}):null,outline:y})}};t([l({Fill:"fill"},{readOnly:!0})],h.prototype,"type",void 0),t([e({type:c,json:{write:!0}})],h.prototype,"material",void 0),t([e(p)],h.prototype,"pattern",void 0),t([e({type:Boolean,nonNullable:!0,json:{write:!0,default:!0}})],h.prototype,"castShadows",void 0),t([e({type:y,json:{write:!0}})],h.prototype,"outline",void 0),t([e(i)],h.prototype,"edges",void 0),h=d=t([r("esri.symbols.FillSymbol3DLayer")],h);const f=h;export{f as default};
5
+ import{_ as t}from"../chunks/tslib.es6.js";import{isSome as o}from"../core/maybe.js";import{property as e}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{enumeration as l}from"../core/accessorSupport/decorators/enumeration.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import s from"./Symbol3DLayer.js";import{symbol3dEdgesProperty as i}from"./edges/utils.js";import n from"./patterns/LineStylePattern3D.js";import a from"./patterns/StylePattern3D.js";import{symbol3dPatternProperty as p}from"./patterns/utils.js";import{white as u,transparentWhite as m}from"./support/colors.js";import{Symbol3DFillMaterial as c}from"./support/Symbol3DFillMaterial.js";import{Symbol3DOutline as y}from"./support/Symbol3DOutline.js";var d;let h=d=class extends s{constructor(t){super(t),this.type="fill",this.material=null,this.pattern=null,this.castShadows=!0,this.outline=null,this.edges=null}clone(){const t={edges:o(this.edges)?this.edges.clone():null,enabled:this.enabled,material:o(this.material)?this.material.clone():null,pattern:o(this.pattern)?this.pattern.clone():null,castShadows:this.castShadows,outline:o(this.outline)?this.outline.clone():null};return new d(t)}static fromSimpleFillSymbol(t){var o,e,l,r,s,i;const p=t.outline&&t.outline.style&&"inside-frame"!==t.outline.style&&"solid"!==t.outline.style?new n({style:t.outline.style}):null,y={size:null!=(o=null==(e=t.outline)?void 0:e.width)?o:0,color:(null!=(l=null==(r=t.outline)?void 0:r.color)?l:u).clone(),pattern:p};return p&&null!=(s=t.outline)&&s.cap&&(y.patternCap=t.outline.cap),new d({material:new c({color:(null!=(i=t.color)?i:m).clone()}),pattern:t.style&&"solid"!==t.style?new a({style:t.style}):null,outline:y})}};t([l({Fill:"fill"},{readOnly:!0})],h.prototype,"type",void 0),t([e({type:c,json:{write:!0}})],h.prototype,"material",void 0),t([e(p)],h.prototype,"pattern",void 0),t([e({type:Boolean,nonNullable:!0,json:{write:!0,default:!0}})],h.prototype,"castShadows",void 0),t([e({type:y,json:{write:!0}})],h.prototype,"outline",void 0),t([e(i)],h.prototype,"edges",void 0),h=d=t([r("esri.symbols.FillSymbol3DLayer")],h);const f=h;export{f as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../chunks/tslib.es6.js";import t from"../core/Logger.js";import{isSome as r}from"../core/maybe.js";import{makeData as e}from"../core/urlUtils.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{enumeration as s}from"../core/accessorSupport/decorators/enumeration.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import c from"./Symbol3DLayer.js";import{white as l,isBlack as a}from"./support/colors.js";import p from"./support/IconSymbol3DLayerResource.js";import{screenSizeProperty as m}from"./support/materialUtils.js";import{Symbol3DAnchorPosition2D as u}from"./support/Symbol3DAnchorPosition2D.js";import h from"./support/Symbol3DIconOutline.js";import{Symbol3DMaterial as y}from"./support/Symbol3DMaterial.js";var d;const f=t.getLogger("esri.symbols.IconSymbol3DLayer");let b=d=class extends c{constructor(o){super(o),this.material=null,this.resource=null,this.type="icon",this.size=12,this.anchor="center",this.anchorPosition=void 0,this.outline=void 0}clone(){return new d({anchor:this.anchor,anchorPosition:this.anchorPosition&&this.anchorPosition.clone(),enabled:this.enabled,material:r(this.material)?this.material.clone():null,outline:r(this.outline)?this.outline.clone():null,resource:this.resource&&this.resource.clone(),size:this.size})}static fromSimpleMarkerSymbol(o){const t=o.color||l,r=j(o),e=o.outline&&o.outline.width>0?{size:o.outline.width,color:(o.outline.color||l).clone()}:null;return new d({size:o.size,resource:{primitive:w(o.style)},material:{color:t},outline:e,anchor:r?"relative":void 0,anchorPosition:r})}static fromPictureMarkerSymbol(o){const t=!o.color||a(o.color)?l:o.color,r=j(o);return new d({size:o.width<=o.height?o.height:o.width,resource:{href:o.url},material:{color:t.clone()},anchor:r?"relative":void 0,anchorPosition:r})}static fromCIMSymbol(o){return new d({resource:{href:e({mediaType:"application/json",data:JSON.stringify(o.data)})}})}};function j(o){const t="width"in o?o.width:o.size,r="height"in o?o.height:o.size,e=v(o.xoffset),i=v(o.yoffset);return(e||i)&&t&&r?{x:-e/t,y:i/r}:null}function v(o){return isFinite(o)?o:0}o([i({type:y,json:{write:!0}})],b.prototype,"material",void 0),o([i({type:p,json:{write:!0}})],b.prototype,"resource",void 0),o([s({Icon:"icon"},{readOnly:!0})],b.prototype,"type",void 0),o([i(m)],b.prototype,"size",void 0),o([s({center:"center",left:"left",right:"right",top:"top",bottom:"bottom",topLeft:"top-left",topRight:"top-right",bottomLeft:"bottom-left",bottomRight:"bottom-right",relative:"relative"}),i({json:{default:"center"}})],b.prototype,"anchor",void 0),o([i({type:u,json:{type:[Number],read:{reader:o=>new u({x:o[0],y:o[1]})},write:{writer:(o,t)=>{t.anchorPosition=[o.x,o.y]},overridePolicy(){return{enabled:"relative"===this.anchor}}}}})],b.prototype,"anchorPosition",void 0),o([i({type:h,json:{write:!0}})],b.prototype,"outline",void 0),b=d=o([n("esri.symbols.IconSymbol3DLayer")],b);const g={circle:"circle",cross:"cross",diamond:"kite",square:"square",x:"x",triangle:"triangle",path:null};function w(o){const t=g[o];return t||(f.warn(`${o} cannot be mapped to Icon symbol. Fallback to "circle"`),"circle")}const S=b;export{S as default};
5
+ import{_ as o}from"../chunks/tslib.es6.js";import t from"../core/Logger.js";import{isSome as r}from"../core/maybe.js";import{makeData as e}from"../core/urlUtils.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{enumeration as s}from"../core/accessorSupport/decorators/enumeration.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import c from"./Symbol3DLayer.js";import{white as l,isBlack as a}from"./support/colors.js";import{IconSymbol3DLayerResource as p}from"./support/IconSymbol3DLayerResource.js";import{screenSizeProperty as m}from"./support/materialUtils.js";import{Symbol3DAnchorPosition2D as u}from"./support/Symbol3DAnchorPosition2D.js";import{Symbol3DIconOutline as h}from"./support/Symbol3DIconOutline.js";import{Symbol3DMaterial as y}from"./support/Symbol3DMaterial.js";var d;const f=t.getLogger("esri.symbols.IconSymbol3DLayer");let b=d=class extends c{constructor(o){super(o),this.material=null,this.resource=null,this.type="icon",this.size=12,this.anchor="center",this.anchorPosition=void 0,this.outline=void 0}clone(){return new d({anchor:this.anchor,anchorPosition:this.anchorPosition&&this.anchorPosition.clone(),enabled:this.enabled,material:r(this.material)?this.material.clone():null,outline:r(this.outline)?this.outline.clone():null,resource:this.resource&&this.resource.clone(),size:this.size})}static fromSimpleMarkerSymbol(o){const t=o.color||l,r=j(o),e=o.outline&&o.outline.width>0?{size:o.outline.width,color:(o.outline.color||l).clone()}:null;return new d({size:o.size,resource:{primitive:w(o.style)},material:{color:t},outline:e,anchor:r?"relative":void 0,anchorPosition:r})}static fromPictureMarkerSymbol(o){const t=!o.color||a(o.color)?l:o.color,r=j(o);return new d({size:o.width<=o.height?o.height:o.width,resource:{href:o.url},material:{color:t.clone()},anchor:r?"relative":void 0,anchorPosition:r})}static fromCIMSymbol(o){return new d({resource:{href:e({mediaType:"application/json",data:JSON.stringify(o.data)})}})}};function j(o){const t="width"in o?o.width:o.size,r="height"in o?o.height:o.size,e=v(o.xoffset),i=v(o.yoffset);return(e||i)&&t&&r?{x:-e/t,y:i/r}:null}function v(o){return isFinite(o)?o:0}o([i({type:y,json:{write:!0}})],b.prototype,"material",void 0),o([i({type:p,json:{write:!0}})],b.prototype,"resource",void 0),o([s({Icon:"icon"},{readOnly:!0})],b.prototype,"type",void 0),o([i(m)],b.prototype,"size",void 0),o([s({center:"center",left:"left",right:"right",top:"top",bottom:"bottom",topLeft:"top-left",topRight:"top-right",bottomLeft:"bottom-left",bottomRight:"bottom-right",relative:"relative"}),i({json:{default:"center"}})],b.prototype,"anchor",void 0),o([i({type:u,json:{type:[Number],read:{reader:o=>new u({x:o[0],y:o[1]})},write:{writer:(o,t)=>{t.anchorPosition=[o.x,o.y]},overridePolicy(){return{enabled:"relative"===this.anchor}}}}})],b.prototype,"anchorPosition",void 0),o([i({type:h,json:{write:!0}})],b.prototype,"outline",void 0),b=d=o([n("esri.symbols.IconSymbol3DLayer")],b);const g={circle:"circle",cross:"cross",diamond:"kite",square:"square",x:"x",triangle:"triangle",path:null};function w(o){const t=g[o];return t||(f.warn(`${o} cannot be mapped to Icon symbol. Fallback to "circle"`),"circle")}const S=b;export{S as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../chunks/tslib.es6.js";import o from"../core/Collection.js";import{clone as r}from"../core/lang.js";import{property as e}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import{enumeration as s}from"../core/accessorSupport/decorators/enumeration.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import i from"./Symbol3D.js";import a from"./TextSymbol3DLayer.js";import{calloutProperty as p,hasVisibleCallout as c,hasVisibleVerticalOffset as m}from"./callouts/calloutUtils.js";import y from"./support/Symbol3DVerticalOffset.js";var n;const u=o.ofType({base:null,key:"type",typeMap:{text:a}});let f=n=class extends i{constructor(t){super(t),this.verticalOffset=null,this.callout=null,this.styleOrigin=null,this.symbolLayers=new u,this.type="label-3d"}supportsCallout(){return!0}hasVisibleCallout(){return c(this)}hasVisibleVerticalOffset(){return m(this)}clone(){return new n({styleOrigin:r(this.styleOrigin),symbolLayers:r(this.symbolLayers),thumbnail:r(this.thumbnail),callout:r(this.callout),verticalOffset:r(this.verticalOffset)})}static fromTextSymbol(t){return new n({symbolLayers:[a.fromTextSymbol(t)]})}};t([e({type:y,json:{write:!0}})],f.prototype,"verticalOffset",void 0),t([e(p)],f.prototype,"callout",void 0),t([e({json:{read:!1,write:!1}})],f.prototype,"styleOrigin",void 0),t([e({type:u})],f.prototype,"symbolLayers",void 0),t([s({LabelSymbol3D:"label-3d"},{readOnly:!0})],f.prototype,"type",void 0),f=n=t([l("esri.symbols.LabelSymbol3D")],f);const b=f;export{b as default};
5
+ import{_ as t}from"../chunks/tslib.es6.js";import o from"../core/Collection.js";import{clone as r}from"../core/lang.js";import{property as e}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import{enumeration as s}from"../core/accessorSupport/decorators/enumeration.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import i from"./Symbol3D.js";import a from"./TextSymbol3DLayer.js";import{calloutProperty as p,hasVisibleCallout as c,hasVisibleVerticalOffset as m}from"./callouts/calloutUtils.js";import{Symbol3DVerticalOffset as y}from"./support/Symbol3DVerticalOffset.js";var n;const u=o.ofType({base:null,key:"type",typeMap:{text:a}});let f=n=class extends i{constructor(t){super(t),this.verticalOffset=null,this.callout=null,this.styleOrigin=null,this.symbolLayers=new u,this.type="label-3d"}supportsCallout(){return!0}hasVisibleCallout(){return c(this)}hasVisibleVerticalOffset(){return m(this)}clone(){return new n({styleOrigin:r(this.styleOrigin),symbolLayers:r(this.symbolLayers),thumbnail:r(this.thumbnail),callout:r(this.callout),verticalOffset:r(this.verticalOffset)})}static fromTextSymbol(t){return new n({symbolLayers:[a.fromTextSymbol(t)]})}};t([e({type:y,json:{write:!0}})],f.prototype,"verticalOffset",void 0),t([e(p)],f.prototype,"callout",void 0),t([e({json:{read:!1,write:!1}})],f.prototype,"styleOrigin",void 0),t([e({type:u})],f.prototype,"symbolLayers",void 0),t([s({LabelSymbol3D:"label-3d"},{readOnly:!0})],f.prototype,"type",void 0),f=n=t([l("esri.symbols.LabelSymbol3D")],f);const b=f;export{b as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../chunks/tslib.es6.js";import{isSome as t}from"../core/maybe.js";import{property as e}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{enumeration as r}from"../core/accessorSupport/decorators/enumeration.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import s from"./Symbol3DLayer.js";import p from"./support/ObjectSymbol3DLayerResource.js";import{Symbol3DAnchorPosition3D as a}from"./support/Symbol3DAnchorPosition3D.js";import{Symbol3DMaterial as h}from"./support/Symbol3DMaterial.js";var n;let c=n=class extends s{constructor(o){super(o),this.material=null,this.castShadows=!0,this.resource=null,this.type="object",this.width=void 0,this.height=void 0,this.depth=void 0,this.anchor=void 0,this.anchorPosition=void 0,this.heading=void 0,this.tilt=void 0,this.roll=void 0}clone(){return new n({heading:this.heading,tilt:this.tilt,roll:this.roll,anchor:this.anchor,anchorPosition:this.anchorPosition&&this.anchorPosition.clone(),depth:this.depth,enabled:this.enabled,height:this.height,material:t(this.material)?this.material.clone():null,castShadows:this.castShadows,resource:this.resource&&this.resource.clone(),width:this.width})}get isPrimitive(){return!this.resource||"string"!=typeof this.resource.href}};o([e({type:h,json:{write:!0}})],c.prototype,"material",void 0),o([e({type:Boolean,nonNullable:!0,json:{write:!0,default:!0}})],c.prototype,"castShadows",void 0),o([e({type:p,json:{write:!0}})],c.prototype,"resource",void 0),o([r({Object:"object"},{readOnly:!0})],c.prototype,"type",void 0),o([e({type:Number,json:{write:!0}})],c.prototype,"width",void 0),o([e({type:Number,json:{write:!0}})],c.prototype,"height",void 0),o([e({type:Number,json:{write:!0}})],c.prototype,"depth",void 0),o([r({center:"center",top:"top",bottom:"bottom",origin:"origin",relative:"relative"}),e({json:{default:"origin"}})],c.prototype,"anchor",void 0),o([e({type:a,json:{type:[Number],read:{reader:o=>new a({x:o[0],y:o[1],z:o[2]})},write:{writer:(o,t)=>{t.anchorPosition=[o.x,o.y,o.z]},overridePolicy(){return{enabled:"relative"===this.anchor}}}}})],c.prototype,"anchorPosition",void 0),o([e({type:Number,json:{write:!0}})],c.prototype,"heading",void 0),o([e({type:Number,json:{write:!0}})],c.prototype,"tilt",void 0),o([e({type:Number,json:{write:!0}})],c.prototype,"roll",void 0),o([e({readOnly:!0})],c.prototype,"isPrimitive",null),c=n=o([i("esri.symbols.ObjectSymbol3DLayer")],c);const l=c;export{l as default};
5
+ import{_ as o}from"../chunks/tslib.es6.js";import{isSome as t}from"../core/maybe.js";import{property as e}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{enumeration as r}from"../core/accessorSupport/decorators/enumeration.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import s from"./Symbol3DLayer.js";import{ObjectSymbol3DLayerResource as p}from"./support/ObjectSymbol3DLayerResource.js";import{Symbol3DAnchorPosition3D as a}from"./support/Symbol3DAnchorPosition3D.js";import{Symbol3DMaterial as h}from"./support/Symbol3DMaterial.js";var n;let c=n=class extends s{constructor(o){super(o),this.material=null,this.castShadows=!0,this.resource=null,this.type="object",this.width=void 0,this.height=void 0,this.depth=void 0,this.anchor=void 0,this.anchorPosition=void 0,this.heading=void 0,this.tilt=void 0,this.roll=void 0}clone(){return new n({heading:this.heading,tilt:this.tilt,roll:this.roll,anchor:this.anchor,anchorPosition:this.anchorPosition&&this.anchorPosition.clone(),depth:this.depth,enabled:this.enabled,height:this.height,material:t(this.material)?this.material.clone():null,castShadows:this.castShadows,resource:this.resource&&this.resource.clone(),width:this.width})}get isPrimitive(){return!this.resource||"string"!=typeof this.resource.href}};o([e({type:h,json:{write:!0}})],c.prototype,"material",void 0),o([e({type:Boolean,nonNullable:!0,json:{write:!0,default:!0}})],c.prototype,"castShadows",void 0),o([e({type:p,json:{write:!0}})],c.prototype,"resource",void 0),o([r({Object:"object"},{readOnly:!0})],c.prototype,"type",void 0),o([e({type:Number,json:{write:!0}})],c.prototype,"width",void 0),o([e({type:Number,json:{write:!0}})],c.prototype,"height",void 0),o([e({type:Number,json:{write:!0}})],c.prototype,"depth",void 0),o([r({center:"center",top:"top",bottom:"bottom",origin:"origin",relative:"relative"}),e({json:{default:"origin"}})],c.prototype,"anchor",void 0),o([e({type:a,json:{type:[Number],read:{reader:o=>new a({x:o[0],y:o[1],z:o[2]})},write:{writer:(o,t)=>{t.anchorPosition=[o.x,o.y,o.z]},overridePolicy(){return{enabled:"relative"===this.anchor}}}}})],c.prototype,"anchorPosition",void 0),o([e({type:Number,json:{write:!0}})],c.prototype,"heading",void 0),o([e({type:Number,json:{write:!0}})],c.prototype,"tilt",void 0),o([e({type:Number,json:{write:!0}})],c.prototype,"roll",void 0),o([e({readOnly:!0})],c.prototype,"isPrimitive",null),c=n=o([i("esri.symbols.ObjectSymbol3DLayer")],c);const l=c;export{l as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../chunks/tslib.es6.js";import e from"../core/Collection.js";import o from"../core/Error.js";import{clone as r}from"../core/lang.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import{enumeration as l}from"../core/accessorSupport/decorators/enumeration.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import{writer as y}from"../core/accessorSupport/decorators/writer.js";import a from"./IconSymbol3DLayer.js";import m from"./ObjectSymbol3DLayer.js";import n from"./Symbol3D.js";import c from"./TextSymbol3DLayer.js";import{calloutProperty as p,hasVisibleCallout as b,hasVisibleVerticalOffset as u}from"./callouts/calloutUtils.js";import f from"./support/Symbol3DVerticalOffset.js";var S;const h=e.ofType({base:null,key:"type",typeMap:{icon:a,object:m,text:c}}),j=e.ofType({base:null,key:"type",typeMap:{icon:a,object:m}});let d=S=class extends n{constructor(t){super(t),this.verticalOffset=null,this.callout=null,this.symbolLayers=new h,this.type="point-3d"}writeSymbolLayers(t,e,r,s){const l=t.filter((t=>"text"!==t.type));if(s&&s.messages&&l.length<t.length){const e=t.find((t=>"text"===t.type));s.messages.push(new o("symbol-layer:unsupported","Symbol layers of type 'text' cannot be persisted in PointSymbol3D",{symbolLayer:e}))}e[r]=l.map((t=>t.write({},s))).toArray()}supportsCallout(){if((this.symbolLayers?this.symbolLayers.length:0)<1)return!1;for(const t of this.symbolLayers.items)switch(t.type){case"icon":case"text":case"object":continue;default:return!1}return!0}hasVisibleCallout(){return b(this)}hasVisibleVerticalOffset(){return u(this)}clone(){return new S({verticalOffset:r(this.verticalOffset),callout:r(this.callout),styleOrigin:r(this.styleOrigin),symbolLayers:r(this.symbolLayers),thumbnail:r(this.thumbnail)})}static fromSimpleMarkerSymbol(t){return new S({symbolLayers:[a.fromSimpleMarkerSymbol(t)]})}static fromPictureMarkerSymbol(t){return new S({symbolLayers:[a.fromPictureMarkerSymbol(t)]})}static fromCIMSymbol(t){var e,o;if("CIMPointSymbol"!==(null==(e=t.data)||null==(o=e.symbol)?void 0:o.type))return null;return t.data.symbol.callout?new S({symbolLayers:[a.fromCIMSymbol(t)],callout:{type:"line",size:.5,color:[0,0,0]},verticalOffset:{screenLength:40}}):new S({symbolLayers:[a.fromCIMSymbol(t)]})}static fromTextSymbol(t){return new S({symbolLayers:[c.fromTextSymbol(t)]})}};t([s({type:f,json:{write:!0}})],d.prototype,"verticalOffset",void 0),t([s(p)],d.prototype,"callout",void 0),t([s({type:h,json:{type:j,origins:{"web-scene":{type:j}}}})],d.prototype,"symbolLayers",void 0),t([y("web-scene","symbolLayers")],d.prototype,"writeSymbolLayers",null),t([l({PointSymbol3D:"point-3d"},{readOnly:!0})],d.prototype,"type",void 0),d=S=t([i("esri.symbols.PointSymbol3D")],d);const L=d;export{L as default};
5
+ import{_ as t}from"../chunks/tslib.es6.js";import e from"../core/Collection.js";import o from"../core/Error.js";import{clone as r}from"../core/lang.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import{enumeration as l}from"../core/accessorSupport/decorators/enumeration.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import{writer as y}from"../core/accessorSupport/decorators/writer.js";import a from"./IconSymbol3DLayer.js";import m from"./ObjectSymbol3DLayer.js";import n from"./Symbol3D.js";import c from"./TextSymbol3DLayer.js";import{calloutProperty as p,hasVisibleCallout as b,hasVisibleVerticalOffset as u}from"./callouts/calloutUtils.js";import{Symbol3DVerticalOffset as f}from"./support/Symbol3DVerticalOffset.js";var S;const h=e.ofType({base:null,key:"type",typeMap:{icon:a,object:m,text:c}}),j=e.ofType({base:null,key:"type",typeMap:{icon:a,object:m}});let d=S=class extends n{constructor(t){super(t),this.verticalOffset=null,this.callout=null,this.symbolLayers=new h,this.type="point-3d"}writeSymbolLayers(t,e,r,s){const l=t.filter((t=>"text"!==t.type));if(s&&s.messages&&l.length<t.length){const e=t.find((t=>"text"===t.type));s.messages.push(new o("symbol-layer:unsupported","Symbol layers of type 'text' cannot be persisted in PointSymbol3D",{symbolLayer:e}))}e[r]=l.map((t=>t.write({},s))).toArray()}supportsCallout(){if((this.symbolLayers?this.symbolLayers.length:0)<1)return!1;for(const t of this.symbolLayers.items)switch(t.type){case"icon":case"text":case"object":continue;default:return!1}return!0}hasVisibleCallout(){return b(this)}hasVisibleVerticalOffset(){return u(this)}clone(){return new S({verticalOffset:r(this.verticalOffset),callout:r(this.callout),styleOrigin:r(this.styleOrigin),symbolLayers:r(this.symbolLayers),thumbnail:r(this.thumbnail)})}static fromSimpleMarkerSymbol(t){return new S({symbolLayers:[a.fromSimpleMarkerSymbol(t)]})}static fromPictureMarkerSymbol(t){return new S({symbolLayers:[a.fromPictureMarkerSymbol(t)]})}static fromCIMSymbol(t){var e,o;if("CIMPointSymbol"!==(null==(e=t.data)||null==(o=e.symbol)?void 0:o.type))return null;return t.data.symbol.callout?new S({symbolLayers:[a.fromCIMSymbol(t)],callout:{type:"line",size:.5,color:[0,0,0]},verticalOffset:{screenLength:40}}):new S({symbolLayers:[a.fromCIMSymbol(t)]})}static fromTextSymbol(t){return new S({symbolLayers:[c.fromTextSymbol(t)]})}};t([s({type:f,json:{write:!0}})],d.prototype,"verticalOffset",void 0),t([s(p)],d.prototype,"callout",void 0),t([s({type:h,json:{type:j,origins:{"web-scene":{type:j}}}})],d.prototype,"symbolLayers",void 0),t([y("web-scene","symbolLayers")],d.prototype,"writeSymbolLayers",null),t([l({PointSymbol3D:"point-3d"},{readOnly:!0})],d.prototype,"type",void 0),d=S=t([i("esri.symbols.PointSymbol3D")],d);const L=d;export{L as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import r from"../core/Collection.js";import{referenceSetter as t,castForReferenceSetter as o}from"../core/collectionUtils.js";import s from"../core/Logger.js";import{isAbsolute as l,normalize as i,hasSamePortal as a}from"../core/urlUtils.js";import m from"../core/Warning.js";import{property as y}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import{reader as p}from"../core/accessorSupport/decorators/reader.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import{writer as b}from"../core/accessorSupport/decorators/writer.js";import u from"../portal/Portal.js";import{f,t as d}from"../chunks/persistableUrlUtils.js";import g from"./ExtrudeSymbol3DLayer.js";import j from"./FillSymbol3DLayer.js";import S from"./IconSymbol3DLayer.js";import h from"./LineSymbol3DLayer.js";import L from"./ObjectSymbol3DLayer.js";import O from"./PathSymbol3DLayer.js";import U from"./Symbol.js";import _ from"./Symbol3DLayer.js";import D from"./TextSymbol3DLayer.js";import w from"./WaterSymbol3DLayer.js";import N from"./support/StyleOrigin.js";import x from"./support/Thumbnail.js";const v={icon:S,object:L,line:h,path:O,fill:j,extrude:g,text:D,water:w},C=r.ofType({base:_,key:"type",typeMap:v,errorContext:"symbol-layer"}),T=s.getLogger("esri.symbols.Symbol3D");let k=class extends U{constructor(e){super(e),this.styleOrigin=null,this.thumbnail=null,this.type=null;const t=this.__accessor__&&this.__accessor__.metadatas&&this.__accessor__.metadatas.symbolLayers,o=t&&t.type||r;this._set("symbolLayers",new o)}get color(){return null}set color(e){this.initialized&&T.error("Symbol3D does not support colors on the symbol level. Colors may be set on individual symbol layer materials instead.")}set symbolLayers(e){t(e,this._get("symbolLayers"))}readStyleOrigin(e,r,t){if(e.styleUrl&&e.name){const r=f(e.styleUrl,t);return new N({styleUrl:r,name:e.name})}if(e.styleName&&e.name)return new N({portal:t&&t.portal||u.getDefault(),styleName:e.styleName,name:e.name});t&&t.messages&&t.messages.push(new m("symbol3d:incomplete-style-origin","Style origin requires either a 'styleUrl' or 'styleName' and a 'name' property",{context:t,definition:e}))}writeStyleOrigin(e,r,t,o){if(e.styleUrl&&e.name){let t=d(e.styleUrl,o);l(t)&&(t=i(t)),r.styleOrigin={styleUrl:t,name:e.name}}else e.styleName&&e.name&&(e.portal&&o&&o.portal&&!a(e.portal.restUrl,o.portal.restUrl)?o&&o.messages&&o.messages.push(new m("symbol:cross-portal","The symbol style origin cannot be persisted because it refers to an item on a different portal than the one being saved to.",{symbol:this})):r.styleOrigin={styleName:e.styleName,name:e.name})}normalizeCtorArgs(e){return e instanceof _||e&&v[e.type]?{symbolLayers:[e]}:Array.isArray(e)?{symbolLayers:e}:e}};e([y({json:{read:!1,write:!1}})],k.prototype,"color",null),e([y({type:C,nonNullable:!0,json:{write:!0}}),n(o)],k.prototype,"symbolLayers",null),e([y({type:N})],k.prototype,"styleOrigin",void 0),e([p("styleOrigin")],k.prototype,"readStyleOrigin",null),e([b("styleOrigin",{"styleOrigin.styleUrl":{type:String},"styleOrigin.styleName":{type:String},"styleOrigin.name":{type:String}})],k.prototype,"writeStyleOrigin",null),e([y({type:x,json:{read:!1}})],k.prototype,"thumbnail",void 0),e([y({type:["point-3d","line-3d","polygon-3d","mesh-3d","label-3d"],readOnly:!0})],k.prototype,"type",void 0),k=e([c("esri.symbols.Symbol3D")],k);const A=k;export{A as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import r from"../core/Collection.js";import{referenceSetter as t,castForReferenceSetter as o}from"../core/collectionUtils.js";import s from"../core/Logger.js";import{isAbsolute as l,normalize as i,hasSamePortal as a}from"../core/urlUtils.js";import m from"../core/Warning.js";import{property as y}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import{reader as p}from"../core/accessorSupport/decorators/reader.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import{writer as b}from"../core/accessorSupport/decorators/writer.js";import u from"../portal/Portal.js";import{f,t as d}from"../chunks/persistableUrlUtils.js";import g from"./ExtrudeSymbol3DLayer.js";import j from"./FillSymbol3DLayer.js";import S from"./IconSymbol3DLayer.js";import h from"./LineSymbol3DLayer.js";import L from"./ObjectSymbol3DLayer.js";import O from"./PathSymbol3DLayer.js";import U from"./Symbol.js";import _ from"./Symbol3DLayer.js";import D from"./TextSymbol3DLayer.js";import w from"./WaterSymbol3DLayer.js";import N from"./support/StyleOrigin.js";import{Thumbnail as x}from"./support/Thumbnail.js";const v={icon:S,object:L,line:h,path:O,fill:j,extrude:g,text:D,water:w},C=r.ofType({base:_,key:"type",typeMap:v,errorContext:"symbol-layer"}),T=s.getLogger("esri.symbols.Symbol3D");let k=class extends U{constructor(e){super(e),this.styleOrigin=null,this.thumbnail=null,this.type=null;const t=this.__accessor__&&this.__accessor__.metadatas&&this.__accessor__.metadatas.symbolLayers,o=t&&t.type||r;this._set("symbolLayers",new o)}get color(){return null}set color(e){this.initialized&&T.error("Symbol3D does not support colors on the symbol level. Colors may be set on individual symbol layer materials instead.")}set symbolLayers(e){t(e,this._get("symbolLayers"))}readStyleOrigin(e,r,t){if(e.styleUrl&&e.name){const r=f(e.styleUrl,t);return new N({styleUrl:r,name:e.name})}if(e.styleName&&e.name)return new N({portal:t&&t.portal||u.getDefault(),styleName:e.styleName,name:e.name});t&&t.messages&&t.messages.push(new m("symbol3d:incomplete-style-origin","Style origin requires either a 'styleUrl' or 'styleName' and a 'name' property",{context:t,definition:e}))}writeStyleOrigin(e,r,t,o){if(e.styleUrl&&e.name){let t=d(e.styleUrl,o);l(t)&&(t=i(t)),r.styleOrigin={styleUrl:t,name:e.name}}else e.styleName&&e.name&&(e.portal&&o&&o.portal&&!a(e.portal.restUrl,o.portal.restUrl)?o&&o.messages&&o.messages.push(new m("symbol:cross-portal","The symbol style origin cannot be persisted because it refers to an item on a different portal than the one being saved to.",{symbol:this})):r.styleOrigin={styleName:e.styleName,name:e.name})}normalizeCtorArgs(e){return e instanceof _||e&&v[e.type]?{symbolLayers:[e]}:Array.isArray(e)?{symbolLayers:e}:e}};e([y({json:{read:!1,write:!1}})],k.prototype,"color",null),e([y({type:C,nonNullable:!0,json:{write:!0}}),n(o)],k.prototype,"symbolLayers",null),e([y({type:N})],k.prototype,"styleOrigin",void 0),e([p("styleOrigin")],k.prototype,"readStyleOrigin",null),e([b("styleOrigin",{"styleOrigin.styleUrl":{type:String},"styleOrigin.styleName":{type:String},"styleOrigin.name":{type:String}})],k.prototype,"writeStyleOrigin",null),e([y({type:x,json:{read:!1}})],k.prototype,"thumbnail",void 0),e([y({type:["point-3d","line-3d","polygon-3d","mesh-3d","label-3d"],readOnly:!0})],k.prototype,"type",void 0),k=e([c("esri.symbols.Symbol3D")],k);const A=k;export{A as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../chunks/tslib.es6.js";import o from"../core/Logger.js";import{throwIfAborted as r}from"../core/promiseUtils.js";import{property as e}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{enumeration as s}from"../core/accessorSupport/decorators/enumeration.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import p from"../portal/Portal.js";import{r as i,w as m}from"../chunks/persistableUrlUtils.js";import a from"./Symbol.js";import y from"./support/Thumbnail.js";var c;const n=o.getLogger("esri.symbols.WebStyleSymbol");let u=c=class extends a{constructor(t){super(t),this.styleName=null,this.portal=null,this.styleUrl=null,this.thumbnail=null,this.name=null,this.type="web-style"}read(t,o){this.portal=o?o.portal:void 0,super.read(t,o)}clone(){return new c({name:this.name,styleUrl:this.styleUrl,styleName:this.styleName,portal:this.portal})}fetchSymbol(t){return this._fetchSymbol("webRef",t)}fetchCIMSymbol(t){return this._fetchSymbol("cimRef",t)}async _fetchSymbol(t,o){const e=await b();r(o);const s=e.resolveWebStyleSymbol(this,{portal:this.portal},t,o);return s.catch((t=>{n.error("#fetchSymbol()","Failed to create symbol from style",t)})),s}};function b(){return import("./support/webStyleSymbolUtils.js")}t([e({json:{write:!1}})],u.prototype,"color",void 0),t([e({type:String,json:{write:!0}})],u.prototype,"styleName",void 0),t([e({type:p,json:{write:!1}})],u.prototype,"portal",void 0),t([e({type:String,json:{read:i,write:m}})],u.prototype,"styleUrl",void 0),t([e({type:y,json:{read:!1}})],u.prototype,"thumbnail",void 0),t([e({type:String,json:{write:!0}})],u.prototype,"name",void 0),t([s({styleSymbolReference:"web-style"},{readOnly:!0})],u.prototype,"type",void 0),u=c=t([l("esri.symbols.WebStyleSymbol")],u);const h=u;export{h as default};
5
+ import{_ as t}from"../chunks/tslib.es6.js";import o from"../core/Logger.js";import{throwIfAborted as r}from"../core/promiseUtils.js";import{property as e}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{enumeration as s}from"../core/accessorSupport/decorators/enumeration.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import p from"../portal/Portal.js";import{r as i,w as m}from"../chunks/persistableUrlUtils.js";import a from"./Symbol.js";import{Thumbnail as y}from"./support/Thumbnail.js";var c;const n=o.getLogger("esri.symbols.WebStyleSymbol");let u=c=class extends a{constructor(t){super(t),this.styleName=null,this.portal=null,this.styleUrl=null,this.thumbnail=null,this.name=null,this.type="web-style"}read(t,o){this.portal=o?o.portal:void 0,super.read(t,o)}clone(){return new c({name:this.name,styleUrl:this.styleUrl,styleName:this.styleName,portal:this.portal})}fetchSymbol(t){return this._fetchSymbol("webRef",t)}fetchCIMSymbol(t){return this._fetchSymbol("cimRef",t)}async _fetchSymbol(t,o){const e=await b();r(o);const s=e.resolveWebStyleSymbol(this,{portal:this.portal},t,o);return s.catch((t=>{n.error("#fetchSymbol()","Failed to create symbol from style",t)})),s}};function b(){return import("./support/webStyleSymbolUtils.js")}t([e({json:{write:!1}})],u.prototype,"color",void 0),t([e({type:String,json:{write:!0}})],u.prototype,"styleName",void 0),t([e({type:p,json:{write:!1}})],u.prototype,"portal",void 0),t([e({type:String,json:{read:i,write:m}})],u.prototype,"styleUrl",void 0),t([e({type:y,json:{read:!1}})],u.prototype,"thumbnail",void 0),t([e({type:String,json:{write:!0}})],u.prototype,"name",void 0),t([s({styleSymbolReference:"web-style"},{readOnly:!0})],u.prototype,"type",void 0),u=c=t([l("esri.symbols.WebStyleSymbol")],u);const h=u;export{h as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../Color.js";import{bidiText as t}from"../../core/BidiText.js";import{packFloatRGBA as r}from"../../core/floatRGBA.js";import{clone as o}from"../../core/lang.js";import i from"../../core/Logger.js";import{nextPowerOfTwo as a}from"../../core/mathUtils.js";import{isSome as s}from"../../core/maybe.js";import{pt2px as n,px2pt as l}from"../../core/screenUtils.js";import{create as c,expandPointInPlace as m}from"../../geometry/support/aaBoundingRect.js";import{getBoundsXY as f}from"../../geometry/support/boundsUtils.js";import{Placement as y}from"./CIMPlacements.js";import{lineGapType2LineHeight as h,horizontalAlignment2HAlign as u,verticalAlignment2VAlign as p,EnvDrawHelper as S,Transformation as M,CanvasDrawHelper as d}from"./CIMSymbolDrawHelper.js";import{LineCapStyle as b,LineJoinStyle as g,BlockProgression as C,FontEffects as I,FontEncoding as k,FontType as x,GlyphHinting as w,TextReadingDirection as P,VerticalGlyphOrientation as L,BillBoardMode as v,TextureFilter as F,ExtremityPlacement as T}from"./enums.js";import{getValue as z}from"./utils.js";import{C_INFINITY as D}from"../../views/2d/engine/vectorTiles/GeometryUtils.js";import{GLYPH_SIZE as G,MAGIC_LABEL_LINE_HEIGHT as A}from"../../views/2d/engine/webgl/definitions.js";import{shapeGlyphs as N}from"../../views/2d/engine/webgl/mesh/templates/shapingUtils.js";const E=Math.PI,O=E/2,R=4,j=10,V=96/72,B=Math.PI/180,X=i.getLogger("esri.symbols.cim.CIMSymbolHelper");function Y(e){if(!e||!e.type)return null;let t;switch(e.type){case"cim":return e.data;case"web-style":return e;case"simple-marker":t=$.fromSimpleMarker(e);break;case"picture-marker":t=$.fromPictureMarker(e);break;case"simple-line":t=$.fromSimpleLineSymbol(e);break;case"simple-fill":t=$.fromSimpleFillSymbol(e);break;case"picture-fill":t=$.fromPictureFillSymbol(e);break;case"text":t=$.fromTextSymbol(e)}return{type:"CIMSymbolReference",symbol:t}}function U(e,t){switch(t.type){case"CIMSymbolReference":return U(e,t.symbol);case"CIMPointSymbol":{const r={x:0,y:0};e.drawSymbol(t,r);break}case"CIMLineSymbol":{const r={paths:[[[0,0],[0,1]]]};e.drawSymbol(t,r);break}case"CIMPolygonSymbol":{const r={rings:[[[0,0],[0,1],[0,0]]]};e.drawSymbol(t,r);break}case"CIMTextSymbol":{const r={x:0,y:0};e.drawSymbol(t,r);break}case"CIMVectorMarker":{const r=new y;e.drawMarker(t,r);break}}return e.envelope()}function _(e){if(!e)return 0;switch(e.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAtExtremities":case"CIMMarkerPlacementAtMeasuredUnits":case"CIMMarkerPlacementAtRatioPositions":case"CIMMarkerPlacementOnLine":case"CIMMarkerPlacementOnVertices":return Math.abs(e.offset);default:return 0}}function H(e){if(!e)return 0;switch(e.type){case"CIMGeometricEffectArrow":return Math.abs(.5*e.width);case"CIMGeometricEffectBuffer":return Math.abs(e.size);case"CIMGeometricEffectExtension":case"CIMGeometricEffectRadial":return Math.abs(e.length);case"CIMGeometricEffectJog":return Math.abs(.5*e.length);case"CIMGeometricEffectMove":return Math.max(Math.abs(z(e.offsetX)),Math.abs(z(e.offsetY)));case"CIMGeometricEffectOffset":case"CIMGeometricEffectOffsetTangent":return Math.abs(e.offset);case"CIMGeometricEffectRegularPolygon":return Math.abs(e.radius);case"CIMGeometricEffectRotate":case"CIMGeometricEffectScale":default:return 0;case"CIMGeometricEffectTaperedPolygon":return.5*Math.max(Math.abs(e.fromWidth),Math.abs(e.toWidth));case"CIMGeometricEffectWave":return Math.abs(e.amplitude)}}function q(e){if(!e)return 0;let t=0;for(const r of e)t+=H(r);return t}class W{getSymbolInflateSize(e,t,r,o,i){return e||(e=[0,0,0,0]),t?this._getInflateSize(e,t,r,o,i):e}static safeSize(e){const t=Math.max(Math.abs(e[0]),Math.abs(e[2])),r=Math.max(Math.abs(e[1]),Math.abs(e[3]));return Math.sqrt(t*t+r*r)}_vectorMarkerBounds(e,t,r,o){let i=!0;const a=c();if(t&&t.markerGraphics)for(const s of t.markerGraphics){const t=[0,0,0,0];s.geometry&&(f(a,s.geometry),t[0]=0,t[1]=0,t[2]=0,t[3]=0,this.getSymbolInflateSize(t,s.symbol,r,0,o),a[0]+=t[0],a[1]+=t[1],a[2]+=t[2],a[3]+=t[3],i?(e[0]=a[0],e[1]=a[1],e[2]=a[2],e[3]=a[3],i=!1):(e[0]=Math.min(e[0],a[0]),e[1]=Math.min(e[1],a[1]),e[2]=Math.max(e[2],a[2]),e[3]=Math.max(e[3],a[3])))}return e}_getInflateSize(e,t,r,o,i){if(ne(t)){const a=this._getLayersInflateSize(e,t.symbolLayers,r,o,i),s=q(t.effects);return s>0&&(a[0]-=s,a[1]-=s,a[2]+=s,a[3]+=s),a}return this._getTextInflatedSize(e,t,i)}_getLayersInflateSize(e,t,r,o,i){let a=!0;if(!t)return e;for(const n of t){if(!n)continue;let t=[0,0,0,0];switch(n.type){case"CIMSolidFill":case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":break;case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":{const e=n;let r=e.width;e.capStyle===b.Square||e.joinStyle===g.Miter?r/=1.4142135623730951:r/=2,t[0]=-r,t[1]=-r,t[2]=r,t[3]=r;break}case"CIMCharacterMarker":case"CIMVectorMarker":case"CIMPictureMarker":{const e=n;if("CIMVectorMarker"===n.type){const e=n;if(t=this._vectorMarkerBounds(t,e,r,i),e.frame){const r=(e.frame.xmin+e.frame.xmax)/2,o=(e.frame.ymin+e.frame.ymax)/2;t[0]-=r,t[1]-=o,t[2]-=r,t[3]-=o;const i=e.size/(e.frame.ymax-e.frame.ymin);t[0]*=i,t[1]*=i,t[2]*=i,t[3]*=i}}else if("CIMPictureMarker"===n.type){const o=n,i=r.getResource(o.url);let a=1;s(i)&&i.height&&(a=i.width/i.height);const l=e.size/2,c=e.size*a*o.scaleX/2;t=[-c,-l,c,l]}else{const r=e.size/2;t=[-r,-r,r,r]}if(e.anchorPoint){let r,o;"Absolute"===e.anchorPointUnits?(r=e.anchorPoint.x,o=e.anchorPoint.y):(r=e.anchorPoint.x*(t[2]-t[0]),o=e.anchorPoint.y*(t[3]-t[1])),t[0]-=r,t[1]-=o,t[2]-=r,t[3]-=o}let a=z(e.rotation);if(e.rotateClockwise&&(a=-a),o&&(a-=o),a){const e=B*a,r=Math.cos(e),o=Math.sin(e),i=c([D,D,-D,-D]);m(i,[t[0]*r-t[1]*o,t[0]*o+t[1]*r]),m(i,[t[0]*r-t[3]*o,t[0]*o+t[3]*r]),m(i,[t[2]*r-t[1]*o,t[2]*o+t[1]*r]),m(i,[t[2]*r-t[3]*o,t[2]*o+t[3]*r]),t=i}let l=z(e.offsetX),f=z(e.offsetY);if(o){const e=B*o,t=Math.cos(e),r=Math.sin(e),i=l*r+f*t;l=l*t-f*r,f=i}t[0]+=l,t[1]+=f,t[2]+=l,t[3]+=f;const y=_(e.markerPlacement);y>0&&(t[0]-=y,t[1]-=y,t[2]+=y,t[3]+=y);break}}const l=q(n.effects);l>0&&(t[0]-=l,t[1]-=l,t[2]+=l,t[3]+=l),a?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],a=!1):(e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[2]),e[3]=Math.max(e[3],t[3]))}return e}_getTextInflatedSize(e,r,o){var i,a;const s=null!=(i=r.height)?i:j;if(e[0]=-s/2,e[1]=-s/2,e[2]=s/2,e[3]=s/2,!o)return e;const n=o.get(r);if(!n)return e;const{text:l,mosaicItem:c}=n;if(!c||0===c.glyphMosaicItems.length)return e;const m=h(r.lineGapType,null!=(a=r.lineGap)?a:0,s),f=t(l)[1],y=c.glyphMosaicItems,S=N(y,f,{scale:s/G,angle:z(r.angle),xOffset:z(r.offsetX),yOffset:z(r.offsetY),hAlign:u(r.horizontalAlignment),vAlign:p(r.verticalAlignment),maxLineWidth:512,lineHeight:A*Math.max(.25,Math.min(m||1,4)),decoration:r.font.decoration||"none",isCIM:!0}).boundsT;return e[0]=S.x-S.halfWidth,e[1]=-S.y-S.halfHeight,e[2]=S.x+S.halfWidth,e[3]=-S.y+S.halfHeight,e}}class ${static getEnvelope(e,t){const r=new S(t);if(Array.isArray(e)){let t;for(const o of e)t?t.union(U(r,o)):t=U(r,o);return t}return U(r,e)}static getTextureAnchor(e,t){const r=this.getEnvelope(e,t);if(!r)return[0,0,0];const o=(r.x+.5*r.width)*V,i=-(r.y+.5*r.height)*V,a=r.width*V+2,s=r.height*V+2;return[o/a,i/s,s]}static rasterize(e,t,r,o,i=!0){const a=r||this.getEnvelope(t,o);if(!a)return[null,0,0,0,0];const s=(a.x+.5*a.width)*V,n=(a.y+.5*a.height)*V;e.width=a.width*V,e.height=a.height*V,r||(e.width+=2,e.height+=2);const l=e.getContext("2d"),c=M.createScale(V,-V);c.translate(.5*e.width-s,.5*e.height+n);const m=new d(l,o,c);switch(t.type){case"CIMPointSymbol":{const e={type:"point",x:0,y:0};m.drawSymbol(t,e);break}case"CIMVectorMarker":{const e=new y;m.drawMarker(t,e);break}}const f=l.getImageData(0,0,e.width,e.height),h=new Uint8Array(f.data);if(i){let e;for(let t=0;t<h.length;t+=4)e=h[t+3]/255,h[t]=h[t]*e,h[t+1]=h[t+1]*e,h[t+2]=h[t+2]*e}return[h,e.width,e.height,-s/e.width,-n/e.height]}static fromTextSymbol(e){const{angle:r,color:o,font:i,haloColor:a,haloSize:s,horizontalAlignment:n,kerning:l,text:c,verticalAlignment:m,xoffset:f,yoffset:y}=e;let h,u,p,S,M;i&&(h=i.family,u=i.style,p=i.weight,S=i.size,M=i.decoration);let d=!1;if(c){d=t(c)[1]}return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,anchorPointUnits:"Relative",dominantSizeAxis3D:"Y",size:10,billboardMode3D:"FaceNearPlane",frame:{xmin:-5,ymin:-5,xmax:5,ymax:5},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",angle:r,blockProgression:C.BTT,depth3D:1,extrapolateBaselines:!0,fontEffects:I.Normal,fontEncoding:k.Unicode,fontFamilyName:h||"Arial",fontStyleName:oe(u,p),fontType:x.Unspecified,haloSize:s,height:S,hinting:w.Default,horizontalAlignment:ee(null!=n?n:"center"),kerning:l,letterWidth:100,ligatures:!0,lineGapType:"Multiple",offsetX:z(f),offsetY:z(y),strikethrough:"line-through"===M,underline:"underline"===M,symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:re(o)}]},haloSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:re(a)}]},shadowColor:[0,0,0,255],shadowOffsetX:1,shadowOffsetY:1,textCase:"Normal",textDirection:d?P.RTL:P.LTR,verticalAlignment:te(null!=m?m:"baseline"),verticalGlyphOrientation:L.Right,wordSpacing:100,billboardMode3D:v.FaceNearPlane},textString:c}],scaleSymbolsProportionally:!0,respectFrame:!0}],scaleX:1,angleAlignment:"Display"}}static fromPictureFillSymbol(e){const{height:t,outline:r,width:o,xoffset:i,xscale:a,yoffset:s,yscale:n}=e,l=[],c={type:"CIMPolygonSymbol",symbolLayers:l};if(r){const{cap:e,join:t,miterLimit:o,width:i}=r;l.push({type:"CIMSolidStroke",color:re(r.color),capStyle:Q(e),joinStyle:Z(t),miterLimit:o,width:i})}let m=e.url;"esriPFS"===e.type&&e.imageData&&(m=e.imageData);const f="angle"in e?e.angle:0,y=o*(a||1),h=t*(n||1);return l.push({type:"CIMPictureFill",invertBackfaceTexture:!1,scaleX:1,textureFilter:F.Picture,tintColor:null,url:m,height:h,width:y,offsetX:z(i),offsetY:z(s),rotation:z(-f),colorSubstitutions:null}),c}static fromSimpleFillSymbol(e){const{color:t,style:r,outline:i}=e,s=[],n={type:"CIMPolygonSymbol",symbolLayers:s};let l=null;if(i){const{cap:e,join:t,style:r}=i;"solid"!==r&&"none"!==r&&"esriSLSSolid"!==r&&"esriSLSNull"!==r&&(l=[{type:"CIMGeometricEffectDashes",dashTemplate:se(r,e),lineDashEnding:"NoConstraint",scaleDash:!0}]),s.push({type:"CIMSolidStroke",color:re(i.color),capStyle:Q(e),joinStyle:Z(t),miterLimit:i.miterLimit,width:i.width,effects:l})}if(r&&"solid"!==r&&"none"!==r&&"esriSFSSolid"!==r&&"esriSFSNull"!==r){const e={type:"CIMLineSymbol",symbolLayers:[{type:"CIMSolidStroke",color:re(t),capStyle:b.Butt,joinStyle:g.Miter,width:.75}]};let i=0;const n=a(Math.ceil(window.devicePixelRatio)),l=ce(r)?8*n:10*n;switch(r){case"vertical":case"esriSFSVertical":i=90;break;case"forward-diagonal":case"esriSFSForwardDiagonal":case"diagonal-cross":case"esriSFSDiagonalCross":i=-45;break;case"backward-diagonal":case"esriSFSBackwardDiagonal":i=45;break;case"cross":case"esriSFSCross":i=0}s.push({type:"CIMHatchFill",lineSymbol:e,offsetX:0,offsetY:0,rotation:i,separation:l}),"cross"===r||"esriSFSCross"===r?s.push({type:"CIMHatchFill",lineSymbol:o(e),offsetX:0,offsetY:0,rotation:90,separation:l}):"diagonal-cross"!==r&&"esriSFSDiagonalCross"!==r||s.push({type:"CIMHatchFill",lineSymbol:o(e),offsetX:0,offsetY:0,rotation:45,separation:l})}else!r||"solid"!==r&&"esriSFSSolid"!==r||s.push({type:"CIMSolidFill",enable:!0,color:re(t)});return n}static fromSimpleLineSymbol(e){const{cap:t,color:r,join:o,marker:i,miterLimit:a,style:s,width:n}=e;let l=null;"solid"!==s&&"none"!==s&&"esriSLSSolid"!==s&&"esriSLSNull"!==s&&(l=[{type:"CIMGeometricEffectDashes",dashTemplate:se(s,t),lineDashEnding:"NoConstraint",scaleDash:!0}]);const c=[];if(i){let e;switch(i.placement){case"begin-end":e=T.Both;break;case"begin":e=T.JustBegin;break;case"end":e=T.JustEnd;break;default:e=T.None}const t=$.fromSimpleMarker(i,n,r).symbolLayers[0];t.markerPlacement={type:"CIMMarkerPlacementAtExtremities",angleToLine:!0,offset:0,extremityPlacement:e,offsetAlongLine:0},c.push(t)}return"none"!==s&&"esriSLSNull"!==s&&c.push({type:"CIMSolidStroke",color:re(r),capStyle:Q(t),joinStyle:Z(o),miterLimit:a,width:n,effects:l}),{type:"CIMLineSymbol",symbolLayers:c}}static fromPictureMarker(e){const{angle:t,height:r,width:o,xoffset:i,yoffset:a}=e;let s=e.url;return"esriPMS"===e.type&&e.imageData&&(s=e.imageData),{type:"CIMPointSymbol",symbolLayers:[{type:"CIMPictureMarker",invertBackfaceTexture:!1,scaleX:1,textureFilter:F.Picture,tintColor:null,url:s,size:r,width:o,offsetX:z(i),offsetY:z(a),rotation:z(-t)}]}}static fromSimpleMarker(e,t,r){var o;const{style:i}=e,a=null!=(o=e.color)?o:r;if("path"===i){const t=[];if("outline"in e&&e.outline){const r=e.outline;t.push({type:"CIMSolidStroke",enable:!0,width:n(Math.round(l(r.width))),color:re(r.color)})}t.push({type:"CIMSolidFill",enable:!0,color:re(a),path:e.path});const[r,o]=le("square");return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,rotation:z(-e.angle),size:z(e.size||6),offsetX:z(e.xoffset),offsetY:z(e.yoffset),frame:r,markerGraphics:[{type:"CIMMarkerGraphic",geometry:o,symbol:{type:"CIMPolygonSymbol",symbolLayers:t}}]}]}}const[s,c]=le(i);let m;if(c&&s){const r=[];if("outline"in e&&e.outline){const t=e.outline;r.push({type:"CIMSolidStroke",enable:!0,width:n(Math.round(l(t.width))),color:re(t.color)})}else!t||"line-marker"!==e.type||"cross"!==e.style&&"x"!==e.style||r.push({type:"CIMSolidStroke",enable:!0,width:t,color:re(a)});r.push({type:"CIMSolidFill",enable:!0,color:re(a)});const o={type:"CIMPolygonSymbol",symbolLayers:r};m={type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,rotation:z(-e.angle),size:z(e.size||6*t),offsetX:z(e.xoffset),offsetY:z(e.yoffset),frame:s,markerGraphics:[{type:"CIMMarkerGraphic",geometry:c,symbol:o}]}]}}return m}static fromCIMHatchFill(e){var t;const r=null!=(t=e.separation)?t:R,o=r/2,i=4;let a=this._getLineSymbolPeriod(e.lineSymbol)||i;for(;a<i;)a*=2;const s=a/2;return{type:"CIMVectorMarker",frame:{xmin:-s,xmax:s,ymin:-o,ymax:o},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{paths:[[[-s,0],[s,0]]]},symbol:e.lineSymbol}],size:r}}static _getLineSymbolPeriod(e){if(e){const t=this._getEffectsRepeat(e.effects);if(t)return t;if(e.symbolLayers)for(const r of e.symbolLayers){const e=this._getEffectsRepeat(r.effects);if(e)return e;if(r){const e=this._getPlacementRepeat(r.markerPlacement);if(e)return e}}}return 0}static _getEffectsRepeat(e){if(e)for(const t of e)if(t)switch(t.type){case"CIMGeometricEffectDashes":{const e=t.dashTemplate;if(e&&e.length){let t=0;for(const r of e)t+=r;return 1&e.length&&(t*=2),t}break}case"CIMGeometricEffectWave":return t.period;default:X.error(`unsupported geometric effect type ${t.type}`)}return 0}static _getPlacementRepeat(e){if(e)switch(e.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAlongLineVariableSize":{const t=e.placementTemplate;if(t&&t.length){let e=0;for(const r of t)e+=r;return 1&t.length&&(e*=2),e}break}}return 0}static fromCIMInsidePolygon(e){const t=e.markerPlacement,r={type:e.type,...e};let o,i,a,s;if(r.markerPlacement=null,r.anchorPoint=null,!0===t.shiftOddRows){i=t.stepX/2,a=t.stepY,s=2*t.stepY;o=[{x:-i,y:0},{x:i,y:0},{x:0,y:a},{x:0,y:-a}].map((e=>({type:"CIMMarkerGraphic",geometry:e,symbol:{type:"CIMPointSymbol",symbolLayers:[r]}})))}else i=t.stepX/2,a=t.stepY/2,s=t.stepY,o=[{type:"CIMMarkerGraphic",geometry:{x:0,y:0},symbol:{type:"CIMPointSymbol",symbolLayers:[r]}}];return{type:"CIMVectorMarker",frame:{xmin:-i,xmax:i,ymin:-a,ymax:a},markerGraphics:o,size:s}}static getFillColor(e){if(!e)return null;switch(e.type){case"CIMPolygonSymbol":if(e.symbolLayers)for(const t of e.symbolLayers){const e=$.getFillColor(t);if(null!=e)return e}break;case"CIMTextSymbol":return $.getFillColor(e.symbol);case"CIMSolidFill":return e.color}}static getStrokeColor(e){if(e)switch(e.type){case"CIMPolygonSymbol":case"CIMLineSymbol":if(e.symbolLayers)for(const t of e.symbolLayers){const e=$.getStrokeColor(t);if(void 0!==e)return e}break;case"CIMTextSymbol":return $.getStrokeColor(e.symbol);case"CIMSolidStroke":return e.color}}static getStrokeWidth(e){if(e)switch(e.type){case"CIMPolygonSymbol":case"CIMLineSymbol":if(e.symbolLayers)for(const t of e.symbolLayers){const e=$.getStrokeWidth(t);if(void 0!==e)return e}break;case"CIMTextSymbol":return $.getStrokeWidth(e.symbol);case"CIMSolidStroke":case"CIMGradientStroke":case"CIMPictureStroke":return e.width}}static getSize(e){if(e)switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":{let t=0;if(e.symbolLayers)for(const r of e.symbolLayers){const e=$.getSize(r);e>t&&(t=e)}return t}case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":return e.width;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":return e.size}}static getMarkerScaleRatio(e){if(e&&"CIMVectorMarker"===e.type)if(!1!==e.scaleSymbolsProportionally&&e.frame){const t=e.frame.ymax-e.frame.ymin;return e.size/t}return 1}}class J{static rasterizeSimpleFill(e,t,r){"solid"!==t&&"none"!==t&&"esriSFSSolid"!==t&&"esriSFSNull"!==t||console.error("Unexpected: style does not require rasterization");const o=a(Math.ceil(r)),i=ce(t)?8*o:16*o,s=2*o;e.width=i,e.height=i;const n=e.getContext("2d");n.strokeStyle="#FFFFFF",n.lineWidth=o,n.beginPath(),"vertical"!==t&&"cross"!==t&&"esriSFSCross"!==t&&"esriSFSVertical"!==t||(n.moveTo(i/2,-s),n.lineTo(i/2,i+s)),"horizontal"!==t&&"cross"!==t&&"esriSFSCross"!==t&&"esriSFSHorizontal"!==t||(n.moveTo(-s,i/2),n.lineTo(i+s,i/2)),"forward-diagonal"!==t&&"diagonal-cross"!==t&&"esriSFSDiagonalCross"!==t&&"esriSFSForwardDiagonal"!==t||(n.moveTo(-s,-s),n.lineTo(i+s,i+s),n.moveTo(i-s,-s),n.lineTo(i+s,s),n.moveTo(-s,i-s),n.lineTo(s,i+s)),"backward-diagonal"!==t&&"diagonal-cross"!==t&&"esriSFSBackwardDiagonal"!==t&&"esriSFSDiagonalCross"!==t||(n.moveTo(i+s,-s),n.lineTo(-s,i+s),n.moveTo(s,-s),n.lineTo(-s,s),n.moveTo(i+s,i-s),n.lineTo(i-s,i+s)),n.stroke();const l=n.getImageData(0,0,e.width,e.height),c=new Uint8Array(l.data);let m;for(let a=0;a<c.length;a+=4)m=c[a+3]/255,c[a]=c[a]*m,c[a+1]=c[a+1]*m,c[a+2]=c[a+2]*m;return[c,e.width,e.height]}static rasterizeSimpleLine(e,t){return this.rasterizeDash(e,t)}static rasterizeDash(e,t){const o="Butt"===t,i="Square"===t,a=!o&&!i;e.length%2==1&&(e=[...e,...e]);const s=15.5,n=2*s;let l=0;for(const r of e)l+=r;const c=Math.round(l*s),m=new Float32Array(c*n),f=.5*s;let y=0,h=0,u=.5,p=!0;for(const r of e){for(y=h,h+=r*s;u<=h;){let e=.5;for(;e<n;){const t=(e-.5)*c+u-.5,r=a?(e-s)*(e-s):Math.abs(e-s);m[t]=p?o?Math.max(Math.max(y+f-u,r),Math.max(u-h+f,r)):r:a?Math.min((u-y)*(u-y)+r,(u-h)*(u-h)+r):i?Math.min(Math.max(u-y,r),Math.max(h-u,r)):Math.min(Math.max(u-y+f,r),Math.max(h+f-u,r)),e++}u++}p=!p}const S=m.length,M=new Uint8Array(4*S);for(let d=0;d<S;++d){const e=(a?Math.sqrt(m[d]):m[d])/s;r(e,M,4*d)}return[M,c,n]}}class K{static findApplicableOverrides(e,t,r){if(e&&t){if(e.primitiveName){let o=!1;for(const t of r)if(t.primitiveName===e.primitiveName){o=!0;break}if(!o)for(const i of t)i.primitiveName===e.primitiveName&&r.push(i)}switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":if(e.effects)for(const o of e.effects)K.findApplicableOverrides(o,t,r);if(e.symbolLayers)for(const o of e.symbolLayers)K.findApplicableOverrides(o,t,r);break;case"CIMTextSymbol":break;case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":case"CIMSolidFill":case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":case"CIMVectorMarker":case"CIMCharacterMarker":case"CIMPictureMarker":if(e.effects)for(const o of e.effects)K.findApplicableOverrides(o,t,r);if(e.markerPlacement&&K.findApplicableOverrides(e.markerPlacement,t,r),"CIMVectorMarker"===e.type){if(e.markerGraphics)for(const o of e.markerGraphics)K.findApplicableOverrides(o,t,r),K.findApplicableOverrides(o.symbol,t,r)}else"CIMCharacterMarker"===e.type?K.findApplicableOverrides(e.symbol,t,r):"CIMHatchFill"===e.type&&K.findApplicableOverrides(e.lineSymbol,t,r)}}}static findEffectOverrides(e,t,r){if(!t||!e)return;const o=e.length;for(let i=0;i<o;i++){const o=e[i],a=null==o?void 0:o.primitiveName;if(a){let e=!1;for(const t of r)if(t.primitiveName===a){e=!0;break}if(!e)for(const o of t)o.primitiveName===a&&r.push(o)}}}static applyOverrides(e,t,r,o){if(!t)return;const i=e=>e?e.charAt(0).toLowerCase()+e.substr(1):e;if(e.primitiveName)for(const a of t)if(a.primitiveName===e.primitiveName){const t=i(a.propertyName);if(o&&o.push({cim:e,nocapPropertyName:t,value:e[t]}),a.expression&&(a.value=K.toValue(a.propertyName,a.expression)),r){let t=!1;for(const o of r)o.primitiveName===e.primitiveName&&(t=!0);t||r.push(a)}e[t]=a.value}switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":if(e.effects)for(const i of e.effects)K.applyOverrides(i,t,r,o);if(e.symbolLayers)for(const i of e.symbolLayers)K.applyOverrides(i,t,r,o);break;case"CIMTextSymbol":break;case"CIMSolidStroke":case"CIMSolidFill":case"CIMVectorMarker":if(e.effects)for(const i of e.effects)K.applyOverrides(i,t,r,o);if("CIMVectorMarker"===e.type&&e.markerGraphics)for(const i of e.markerGraphics)K.applyOverrides(i,t,r,o),K.applyOverrides(i.symbol,t,r,o)}}static restoreOverrides(e){for(const t of e)t.cim[t.nocapPropertyName]=t.value}static buildOverrideKey(e){let t="";for(const r of e)void 0!==r.value&&(t+=`${r.primitiveName}${r.propertyName}${JSON.stringify(r.value)}`);return t}static toValue(t,r){if("DashTemplate"===t)return r.split(" ").map((e=>Number(e)));if("Color"===t){const t=new e(r).toRgba();return t[3]*=255,t}return r}}const Q=e=>{if(!e)return b.Butt;switch(e){case"butt":return b.Butt;case"square":return b.Square;case"round":return b.Round}},Z=e=>{if(!e)return g.Miter;switch(e){case"miter":return g.Miter;case"round":return g.Round;case"bevel":return g.Bevel}},ee=e=>{if(!e)return"Center";switch(e){case"left":return"Left";case"right":return"Right";case"center":return"Center";case"justify":return"Justify"}},te=e=>{if(!e)return"Center";switch(e){case"baseline":return"Baseline";case"top":return"Top";case"middle":return"Center";case"bottom":return"Bottom"}},re=e=>{if(!e)return[0,0,0,0];const{r:t,g:r,b:o,a:i}=e;return[t,r,o,255*i]},oe=(e,t)=>{const r=ie(t),o=ae(e);return r&&o?`${r}-${o}`:`${r}${o}`},ie=e=>{if(!e)return"";switch(e.toLowerCase()){case"bold":case"bolder":return"bold"}return""},ae=e=>{if(!e)return"";switch(e.toLowerCase()){case"italic":case"oblique":return"italic"}return""},se=(e,t)=>{const r="butt"===t;switch(e){case"dash":case"esriSLSDash":return r?[4,3]:[3,4];case"dash-dot":case"esriSLSDashDot":return r?[4,3,1,3]:[3,4,0,4];case"dot":case"esriSLSDot":return r?[1,3]:[0,4];case"long-dash":case"esriSLSLongDash":return r?[8,3]:[7,4];case"long-dash-dot":case"esriSLSLongDashDot":return r?[8,3,1,3]:[7,4,0,4];case"long-dash-dot-dot":case"esriSLSDashDotDot":return r?[8,3,1,3,1,3]:[7,4,0,4,0,4];case"short-dash":case"esriSLSShortDash":return r?[4,1]:[3,2];case"short-dash-dot":case"esriSLSShortDashDot":return r?[4,1,1,1]:[3,2,0,2];case"short-dash-dot-dot":case"esriSLSShortDashDotDot":return r?[4,1,1,1,1,1]:[3,2,0,2,0,2];case"short-dot":case"esriSLSShortDot":return r?[1,1]:[0,2];case"solid":case"esriSLSSolid":case"none":return X.error("Unexpected: style does not require rasterization"),[0,0];default:return X.error(`Tried to rasterize SLS, but found an unexpected style: ${e}!`),[0,0]}};function ne(e){return void 0!==e.symbolLayers}const le=e=>{const t=100,r=50;let o,i;const a=e;if("circle"===a||"esriSMSCircle"===a){const e=.25;let t=Math.acos(1-e/r),a=Math.ceil(E/t/4);0===a&&(a=1),t=O/a,a*=4;const s=[];s.push([r,0]);for(let o=1;o<a;o++)s.push([r*Math.cos(o*t),-r*Math.sin(o*t)]);s.push([r,0]),o={rings:[s]},i={xmin:-r,ymin:-r,xmax:r,ymax:r}}else if("cross"===a||"esriSMSCross"===a){const e=0;o={rings:[[[e,r],[e,e],[r,e],[r,-e],[e,-e],[e,-r],[-e,-r],[-e,-e],[-r,-e],[-r,e],[-e,e],[-e,r],[e,r]]]},i={xmin:-r,ymin:-r,xmax:r,ymax:r}}else if("diamond"===a||"esriSMSDiamond"===a)o={rings:[[[-r,0],[0,r],[r,0],[0,-r],[-r,0]]]},i={xmin:-r,ymin:-r,xmax:r,ymax:r};else if("square"===a||"esriSMSSquare"===a)o={rings:[[[-r,-r],[-r,r],[r,r],[r,-r],[-r,-r]]]},i={xmin:-r,ymin:-r,xmax:r,ymax:r};else if("x"===a||"esriSMSX"===a){const e=0;o={rings:[[[0,e],[r-e,r],[r,r-e],[e,0],[r,e-r],[r-e,-r],[0,-e],[e-r,-r],[-r,e-r],[-e,0],[-r,r-e],[e-r,r],[0,e]]]},i={xmin:-r,ymin:-r,xmax:r,ymax:r}}else if("triangle"===a||"esriSMSTriangle"===a){const e=t*.5773502691896257,r=-e,a=2/3*t,s=a-t;o={rings:[[[r,s],[0,a],[e,s],[r,s]]]},i={xmin:r,ymin:s,xmax:e,ymax:a}}else"arrow"===a&&(o={rings:[[[-50,50],[50,0],[-50,-50],[-33,-20],[-33,20],[-50,50]]]},i={xmin:-r,ymin:-r,xmax:r,ymax:r});return[i,o]},ce=e=>"vertical"===e||"horizontal"===e||"cross"===e||"esriSFSCross"===e||"esriSFSVertical"===e||"esriSFSHorizontal"===e;export{W as CIMSimbolInflatedSizeHelper,$ as CIMSymbolHelper,K as OverrideHelper,J as SymbolHelper,se as slsDashToTemplateArray,Y as symbolToCIM};
5
+ import e from"../../Color.js";import{bidiText as t}from"../../core/BidiText.js";import{packFloatRGBA as r}from"../../core/floatRGBA.js";import{clone as o}from"../../core/lang.js";import i from"../../core/Logger.js";import{nextPowerOfTwo as a}from"../../core/mathUtils.js";import{isSome as s}from"../../core/maybe.js";import{pt2px as n,px2pt as l}from"../../core/screenUtils.js";import{create as c,expandPointInPlace as m}from"../../geometry/support/aaBoundingRect.js";import{getBoundsXY as f}from"../../geometry/support/boundsUtils.js";import{Placement as y}from"./CIMPlacements.js";import{lineGapType2LineHeight as h,horizontalAlignment2HAlign as u,verticalAlignment2VAlign as p,EnvDrawHelper as S,Transformation as M,CanvasDrawHelper as d}from"./CIMSymbolDrawHelper.js";import{LineCapStyle as b,LineJoinStyle as g,BlockProgression as C,FontEffects as I,FontEncoding as k,FontType as x,GlyphHinting as w,TextReadingDirection as P,VerticalGlyphOrientation as L,BillBoardMode as v,TextureFilter as F,ExtremityPlacement as T}from"./enums.js";import{getValue as z}from"./utils.js";import{C_INFINITY as D}from"../../views/2d/engine/vectorTiles/GeometryUtils.js";import{GLYPH_SIZE as G,MAGIC_LABEL_LINE_HEIGHT as A}from"../../views/2d/engine/webgl/definitions.js";import{shapeGlyphs as N}from"../../views/2d/engine/webgl/mesh/templates/shapingUtils.js";const E=Math.PI,O=E/2,R=4,j=10,V=96/72,B=Math.PI/180,X=i.getLogger("esri.symbols.cim.CIMSymbolHelper");function Y(e){if(!e||!e.type)return null;let t;switch(e.type){case"cim":return e.data;case"web-style":return e;case"simple-marker":t=$.fromSimpleMarker(e);break;case"picture-marker":t=$.fromPictureMarker(e);break;case"simple-line":t=$.fromSimpleLineSymbol(e);break;case"simple-fill":t=$.fromSimpleFillSymbol(e);break;case"picture-fill":t=$.fromPictureFillSymbol(e);break;case"text":t=$.fromTextSymbol(e)}return{type:"CIMSymbolReference",symbol:t}}function U(e,t){switch(t.type){case"CIMSymbolReference":return U(e,t.symbol);case"CIMPointSymbol":{const r={x:0,y:0};e.drawSymbol(t,r);break}case"CIMLineSymbol":{const r={paths:[[[0,0],[0,1]]]};e.drawSymbol(t,r);break}case"CIMPolygonSymbol":{const r={rings:[[[0,0],[0,1],[0,0]]]};e.drawSymbol(t,r);break}case"CIMTextSymbol":{const r={x:0,y:0};e.drawSymbol(t,r);break}case"CIMVectorMarker":{const r=new y;e.drawMarker(t,r);break}}return e.envelope()}function _(e){if(!e)return 0;switch(e.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAtExtremities":case"CIMMarkerPlacementAtMeasuredUnits":case"CIMMarkerPlacementAtRatioPositions":case"CIMMarkerPlacementOnLine":case"CIMMarkerPlacementOnVertices":return Math.abs(e.offset);default:return 0}}function H(e){if(!e)return 0;switch(e.type){case"CIMGeometricEffectArrow":return Math.abs(.5*e.width);case"CIMGeometricEffectBuffer":return Math.abs(e.size);case"CIMGeometricEffectExtension":case"CIMGeometricEffectRadial":return Math.abs(e.length);case"CIMGeometricEffectJog":return Math.abs(.5*e.length);case"CIMGeometricEffectMove":return Math.max(Math.abs(z(e.offsetX)),Math.abs(z(e.offsetY)));case"CIMGeometricEffectOffset":case"CIMGeometricEffectOffsetTangent":return Math.abs(e.offset);case"CIMGeometricEffectRegularPolygon":return Math.abs(e.radius);case"CIMGeometricEffectRotate":case"CIMGeometricEffectScale":default:return 0;case"CIMGeometricEffectTaperedPolygon":return.5*Math.max(Math.abs(e.fromWidth),Math.abs(e.toWidth));case"CIMGeometricEffectWave":return Math.abs(e.amplitude)}}function q(e){if(!e)return 0;let t=0;for(const r of e)t+=H(r);return t}class W{getSymbolInflateSize(e,t,r,o,i){return e||(e=[0,0,0,0]),t?this._getInflateSize(e,t,r,o,i):e}static safeSize(e){const t=Math.max(Math.abs(e[0]),Math.abs(e[2])),r=Math.max(Math.abs(e[1]),Math.abs(e[3]));return Math.sqrt(t*t+r*r)}_vectorMarkerBounds(e,t,r,o){let i=!0;const a=c();if(t&&t.markerGraphics)for(const s of t.markerGraphics){const t=[0,0,0,0];s.geometry&&(f(a,s.geometry),t[0]=0,t[1]=0,t[2]=0,t[3]=0,this.getSymbolInflateSize(t,s.symbol,r,0,o),a[0]+=t[0],a[1]+=t[1],a[2]+=t[2],a[3]+=t[3],i?(e[0]=a[0],e[1]=a[1],e[2]=a[2],e[3]=a[3],i=!1):(e[0]=Math.min(e[0],a[0]),e[1]=Math.min(e[1],a[1]),e[2]=Math.max(e[2],a[2]),e[3]=Math.max(e[3],a[3])))}return e}_getInflateSize(e,t,r,o,i){if(ne(t)){const a=this._getLayersInflateSize(e,t.symbolLayers,r,o,i),s=q(t.effects);return s>0&&(a[0]-=s,a[1]-=s,a[2]+=s,a[3]+=s),a}return this._getTextInflatedSize(e,t,i)}_getLayersInflateSize(e,t,r,o,i){let a=!0;if(!t)return e;for(const n of t){if(!n)continue;let t=[0,0,0,0];switch(n.type){case"CIMSolidFill":case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":break;case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":{const e=n;let r=e.width;e.capStyle===b.Square||e.joinStyle===g.Miter?r/=1.4142135623730951:r/=2,t[0]=-r,t[1]=-r,t[2]=r,t[3]=r;break}case"CIMCharacterMarker":case"CIMVectorMarker":case"CIMPictureMarker":{const e=n;if("CIMVectorMarker"===n.type){const e=n;if(t=this._vectorMarkerBounds(t,e,r,i),e.frame){const r=(e.frame.xmin+e.frame.xmax)/2,o=(e.frame.ymin+e.frame.ymax)/2;t[0]-=r,t[1]-=o,t[2]-=r,t[3]-=o;const i=e.size/(e.frame.ymax-e.frame.ymin);t[0]*=i,t[1]*=i,t[2]*=i,t[3]*=i}}else if("CIMPictureMarker"===n.type){const o=n,i=r.getResource(o.url);let a=1;s(i)&&i.height&&(a=i.width/i.height);const l=e.size/2,c=e.size*a*o.scaleX/2;t=[-c,-l,c,l]}else{const r=e.size/2;t=[-r,-r,r,r]}if(e.anchorPoint){let r,o;"Absolute"===e.anchorPointUnits?(r=e.anchorPoint.x,o=e.anchorPoint.y):(r=e.anchorPoint.x*(t[2]-t[0]),o=e.anchorPoint.y*(t[3]-t[1])),t[0]-=r,t[1]-=o,t[2]-=r,t[3]-=o}let a=z(e.rotation);if(e.rotateClockwise&&(a=-a),o&&(a-=o),a){const e=B*a,r=Math.cos(e),o=Math.sin(e),i=c([D,D,-D,-D]);m(i,[t[0]*r-t[1]*o,t[0]*o+t[1]*r]),m(i,[t[0]*r-t[3]*o,t[0]*o+t[3]*r]),m(i,[t[2]*r-t[1]*o,t[2]*o+t[1]*r]),m(i,[t[2]*r-t[3]*o,t[2]*o+t[3]*r]),t=i}let l=z(e.offsetX),f=z(e.offsetY);if(o){const e=B*o,t=Math.cos(e),r=Math.sin(e),i=l*r+f*t;l=l*t-f*r,f=i}t[0]+=l,t[1]+=f,t[2]+=l,t[3]+=f;const y=_(e.markerPlacement);y>0&&(t[0]-=y,t[1]-=y,t[2]+=y,t[3]+=y);break}}const l=q(n.effects);l>0&&(t[0]-=l,t[1]-=l,t[2]+=l,t[3]+=l),a?(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],a=!1):(e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[2]),e[3]=Math.max(e[3],t[3]))}return e}_getTextInflatedSize(e,r,o){var i,a;const s=null!=(i=r.height)?i:j;if(e[0]=-s/2,e[1]=-s/2,e[2]=s/2,e[3]=s/2,!o)return e;const n=o.get(r);if(!n)return e;const{text:l,mosaicItem:c}=n;if(!c||0===c.glyphMosaicItems.length)return e;const m=h(r.lineGapType,null!=(a=r.lineGap)?a:0,s),f=t(l)[1],y=c.glyphMosaicItems,S=N(y,f,{scale:s/G,angle:z(r.angle),xOffset:z(r.offsetX),yOffset:z(r.offsetY),hAlign:u(r.horizontalAlignment),vAlign:p(r.verticalAlignment),maxLineWidth:512,lineHeight:A*Math.max(.25,Math.min(m||1,4)),decoration:r.font.decoration||"none",isCIM:!0}).boundsT;return e[0]=S.x-S.halfWidth,e[1]=-S.y-S.halfHeight,e[2]=S.x+S.halfWidth,e[3]=-S.y+S.halfHeight,e}}class ${static getEnvelope(e,t){const r=new S(t);if(Array.isArray(e)){let t;for(const o of e)t?t.union(U(r,o)):t=U(r,o);return t}return U(r,e)}static getTextureAnchor(e,t){const r=this.getEnvelope(e,t);if(!r)return[0,0,0];const o=(r.x+.5*r.width)*V,i=-(r.y+.5*r.height)*V,a=r.width*V+2,s=r.height*V+2;return[o/a,i/s,s]}static rasterize(e,t,r,o,i=!0){const a=r||this.getEnvelope(t,o);if(!a)return[null,0,0,0,0];const s=(a.x+.5*a.width)*V,n=(a.y+.5*a.height)*V;e.width=a.width*V,e.height=a.height*V,r||(e.width+=2,e.height+=2);const l=e.getContext("2d"),c=M.createScale(V,-V);c.translate(.5*e.width-s,.5*e.height+n);const m=new d(l,o,c);switch(t.type){case"CIMPointSymbol":{const e={type:"point",x:0,y:0};m.drawSymbol(t,e);break}case"CIMVectorMarker":{const e=new y;m.drawMarker(t,e);break}}const f=l.getImageData(0,0,e.width,e.height),h=new Uint8Array(f.data);if(i){let e;for(let t=0;t<h.length;t+=4)e=h[t+3]/255,h[t]=h[t]*e,h[t+1]=h[t+1]*e,h[t+2]=h[t+2]*e}return[h,e.width,e.height,-s/e.width,-n/e.height]}static fromTextSymbol(e){const{angle:r,color:o,font:i,haloColor:a,haloSize:s,horizontalAlignment:n,kerning:l,text:c,verticalAlignment:m,xoffset:f,yoffset:y}=e;let h,u,p,S,M;i&&(h=i.family,u=i.style,p=i.weight,S=i.size,M=i.decoration);let d=!1;if(c){d=t(c)[1]}return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,anchorPointUnits:"Relative",dominantSizeAxis3D:"Y",size:10,billboardMode3D:"FaceNearPlane",frame:{xmin:-5,ymin:-5,xmax:5,ymax:5},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{x:0,y:0},symbol:{type:"CIMTextSymbol",angle:r,blockProgression:C.BTT,depth3D:1,extrapolateBaselines:!0,fontEffects:I.Normal,fontEncoding:k.Unicode,fontFamilyName:h||"Arial",fontStyleName:oe(u,p),fontType:x.Unspecified,haloSize:s,height:S,hinting:w.Default,horizontalAlignment:ee(null!=n?n:"center"),kerning:l,letterWidth:100,ligatures:!0,lineGapType:"Multiple",offsetX:z(f),offsetY:z(y),strikethrough:"line-through"===M,underline:"underline"===M,symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:re(o)}]},haloSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:re(a)}]},shadowColor:[0,0,0,255],shadowOffsetX:1,shadowOffsetY:1,textCase:"Normal",textDirection:d?P.RTL:P.LTR,verticalAlignment:te(null!=m?m:"baseline"),verticalGlyphOrientation:L.Right,wordSpacing:100,billboardMode3D:v.FaceNearPlane},textString:c}],scaleSymbolsProportionally:!0,respectFrame:!0}],scaleX:1,angleAlignment:"Display"}}static fromPictureFillSymbol(e){const{height:t,outline:r,width:o,xoffset:i,xscale:a,yoffset:s,yscale:n}=e,l=[],c={type:"CIMPolygonSymbol",symbolLayers:l};if(r){const{cap:e,join:t,miterLimit:o,width:i}=r;l.push({type:"CIMSolidStroke",color:re(r.color),capStyle:Q(e),joinStyle:Z(t),miterLimit:o,width:i})}let m=e.url;"esriPFS"===e.type&&e.imageData&&(m=e.imageData);const f="angle"in e?e.angle:0,y=o*(a||1),h=t*(n||1);return l.push({type:"CIMPictureFill",invertBackfaceTexture:!1,scaleX:1,textureFilter:F.Picture,tintColor:null,url:m,height:h,width:y,offsetX:z(i),offsetY:z(s),rotation:z(-f),colorSubstitutions:null}),c}static fromSimpleFillSymbol(e){const{color:t,style:r,outline:i}=e,s=[],n={type:"CIMPolygonSymbol",symbolLayers:s};let l=null;if(i){const{cap:e,join:t,style:r}=i;"solid"!==r&&"none"!==r&&"esriSLSSolid"!==r&&"esriSLSNull"!==r&&(l=[{type:"CIMGeometricEffectDashes",dashTemplate:se(r,e),lineDashEnding:"NoConstraint",scaleDash:!0,offsetAlongLine:null}]),s.push({type:"CIMSolidStroke",color:re(i.color),capStyle:Q(e),joinStyle:Z(t),miterLimit:i.miterLimit,width:i.width,effects:l})}if(r&&"solid"!==r&&"none"!==r&&"esriSFSSolid"!==r&&"esriSFSNull"!==r){const e={type:"CIMLineSymbol",symbolLayers:[{type:"CIMSolidStroke",color:re(t),capStyle:b.Butt,joinStyle:g.Miter,width:.75}]};let i=0;const n=a(Math.ceil(window.devicePixelRatio)),l=ce(r)?8*n:10*n;switch(r){case"vertical":case"esriSFSVertical":i=90;break;case"forward-diagonal":case"esriSFSForwardDiagonal":case"diagonal-cross":case"esriSFSDiagonalCross":i=-45;break;case"backward-diagonal":case"esriSFSBackwardDiagonal":i=45;break;case"cross":case"esriSFSCross":i=0}s.push({type:"CIMHatchFill",lineSymbol:e,offsetX:0,offsetY:0,rotation:i,separation:l}),"cross"===r||"esriSFSCross"===r?s.push({type:"CIMHatchFill",lineSymbol:o(e),offsetX:0,offsetY:0,rotation:90,separation:l}):"diagonal-cross"!==r&&"esriSFSDiagonalCross"!==r||s.push({type:"CIMHatchFill",lineSymbol:o(e),offsetX:0,offsetY:0,rotation:45,separation:l})}else!r||"solid"!==r&&"esriSFSSolid"!==r||s.push({type:"CIMSolidFill",enable:!0,color:re(t)});return n}static fromSimpleLineSymbol(e){const{cap:t,color:r,join:o,marker:i,miterLimit:a,style:s,width:n}=e;let l=null;"solid"!==s&&"none"!==s&&"esriSLSSolid"!==s&&"esriSLSNull"!==s&&(l=[{type:"CIMGeometricEffectDashes",dashTemplate:se(s,t),lineDashEnding:"NoConstraint",scaleDash:!0,offsetAlongLine:null}]);const c=[];if(i){let e;switch(i.placement){case"begin-end":e=T.Both;break;case"begin":e=T.JustBegin;break;case"end":e=T.JustEnd;break;default:e=T.None}const t=$.fromSimpleMarker(i,n,r).symbolLayers[0];t.markerPlacement={type:"CIMMarkerPlacementAtExtremities",angleToLine:!0,offset:0,extremityPlacement:e,offsetAlongLine:0},c.push(t)}return"none"!==s&&"esriSLSNull"!==s&&c.push({type:"CIMSolidStroke",color:re(r),capStyle:Q(t),joinStyle:Z(o),miterLimit:a,width:n,effects:l}),{type:"CIMLineSymbol",symbolLayers:c}}static fromPictureMarker(e){const{angle:t,height:r,width:o,xoffset:i,yoffset:a}=e;let s=e.url;return"esriPMS"===e.type&&e.imageData&&(s=e.imageData),{type:"CIMPointSymbol",symbolLayers:[{type:"CIMPictureMarker",invertBackfaceTexture:!1,scaleX:1,textureFilter:F.Picture,tintColor:null,url:s,size:r,width:o,offsetX:z(i),offsetY:z(a),rotation:z(-t)}]}}static fromSimpleMarker(e,t,r){var o;const{style:i}=e,a=null!=(o=e.color)?o:r;if("path"===i){const t=[];if("outline"in e&&e.outline){const r=e.outline;t.push({type:"CIMSolidStroke",enable:!0,width:n(Math.round(l(r.width))),color:re(r.color)})}t.push({type:"CIMSolidFill",enable:!0,color:re(a),path:e.path});const[r,o]=le("square");return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,rotation:z(-e.angle),size:z(e.size||6),offsetX:z(e.xoffset),offsetY:z(e.yoffset),frame:r,markerGraphics:[{type:"CIMMarkerGraphic",geometry:o,symbol:{type:"CIMPolygonSymbol",symbolLayers:t}}]}]}}const[s,c]=le(i);let m;if(c&&s){const r=[];if("outline"in e&&e.outline){const t=e.outline;r.push({type:"CIMSolidStroke",enable:!0,width:t.width>.667?n(Math.round(l(t.width))):t.width,color:re(t.color)})}else!t||"line-marker"!==e.type||"cross"!==e.style&&"x"!==e.style||r.push({type:"CIMSolidStroke",enable:!0,width:t,color:re(a)});r.push({type:"CIMSolidFill",enable:!0,color:re(a)});const o={type:"CIMPolygonSymbol",symbolLayers:r};m={type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,rotation:z(-e.angle),size:z(e.size||6*t),offsetX:z(e.xoffset),offsetY:z(e.yoffset),frame:s,markerGraphics:[{type:"CIMMarkerGraphic",geometry:c,symbol:o}]}]}}return m}static fromCIMHatchFill(e){var t;const r=null!=(t=e.separation)?t:R,o=r/2,i=4;let a=this._getLineSymbolPeriod(e.lineSymbol)||i;for(;a<i;)a*=2;const s=a/2;return{type:"CIMVectorMarker",frame:{xmin:-s,xmax:s,ymin:-o,ymax:o},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{paths:[[[-s,0],[s,0]]]},symbol:e.lineSymbol}],size:r}}static _getLineSymbolPeriod(e){if(e){const t=this._getEffectsRepeat(e.effects);if(t)return t;if(e.symbolLayers)for(const r of e.symbolLayers){const e=this._getEffectsRepeat(r.effects);if(e)return e;if(r){const e=this._getPlacementRepeat(r.markerPlacement);if(e)return e}}}return 0}static _getEffectsRepeat(e){if(e)for(const t of e)if(t)switch(t.type){case"CIMGeometricEffectDashes":{const e=t.dashTemplate;if(e&&e.length){let t=0;for(const r of e)t+=r;return 1&e.length&&(t*=2),t}break}case"CIMGeometricEffectWave":return t.period;default:X.error(`unsupported geometric effect type ${t.type}`)}return 0}static _getPlacementRepeat(e){if(e)switch(e.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAlongLineVariableSize":{const t=e.placementTemplate;if(t&&t.length){let e=0;for(const r of t)e+=r;return 1&t.length&&(e*=2),e}break}}return 0}static fromCIMInsidePolygon(e){const t=e.markerPlacement,r={type:e.type,...e};let o,i,a,s;if(r.markerPlacement=null,r.anchorPoint=null,!0===t.shiftOddRows){i=t.stepX/2,a=t.stepY,s=2*t.stepY;o=[{x:-i,y:0},{x:i,y:0},{x:0,y:a},{x:0,y:-a}].map((e=>({type:"CIMMarkerGraphic",geometry:e,symbol:{type:"CIMPointSymbol",symbolLayers:[r]}})))}else i=t.stepX/2,a=t.stepY/2,s=t.stepY,o=[{type:"CIMMarkerGraphic",geometry:{x:0,y:0},symbol:{type:"CIMPointSymbol",symbolLayers:[r]}}];return{type:"CIMVectorMarker",frame:{xmin:-i,xmax:i,ymin:-a,ymax:a},markerGraphics:o,size:s}}static getFillColor(e){if(!e)return null;switch(e.type){case"CIMPolygonSymbol":if(e.symbolLayers)for(const t of e.symbolLayers){const e=$.getFillColor(t);if(null!=e)return e}break;case"CIMTextSymbol":return $.getFillColor(e.symbol);case"CIMSolidFill":return e.color}}static getStrokeColor(e){if(e)switch(e.type){case"CIMPolygonSymbol":case"CIMLineSymbol":if(e.symbolLayers)for(const t of e.symbolLayers){const e=$.getStrokeColor(t);if(void 0!==e)return e}break;case"CIMTextSymbol":return $.getStrokeColor(e.symbol);case"CIMSolidStroke":return e.color}}static getStrokeWidth(e){if(e)switch(e.type){case"CIMPolygonSymbol":case"CIMLineSymbol":if(e.symbolLayers)for(const t of e.symbolLayers){const e=$.getStrokeWidth(t);if(void 0!==e)return e}break;case"CIMTextSymbol":return $.getStrokeWidth(e.symbol);case"CIMSolidStroke":case"CIMGradientStroke":case"CIMPictureStroke":return e.width}}static getSize(e){if(e)switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":{let t=0;if(e.symbolLayers)for(const r of e.symbolLayers){const e=$.getSize(r);e>t&&(t=e)}return t}case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":return e.width;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":return e.size}}static getMarkerScaleRatio(e){if(e&&"CIMVectorMarker"===e.type)if(!1!==e.scaleSymbolsProportionally&&e.frame){const t=e.frame.ymax-e.frame.ymin;return e.size/t}return 1}}class J{static rasterizeSimpleFill(e,t,r){"solid"!==t&&"none"!==t&&"esriSFSSolid"!==t&&"esriSFSNull"!==t||console.error("Unexpected: style does not require rasterization");const o=a(Math.ceil(r)),i=ce(t)?8*o:16*o,s=2*o;e.width=i,e.height=i;const n=e.getContext("2d");n.strokeStyle="#FFFFFF",n.lineWidth=o,n.beginPath(),"vertical"!==t&&"cross"!==t&&"esriSFSCross"!==t&&"esriSFSVertical"!==t||(n.moveTo(i/2,-s),n.lineTo(i/2,i+s)),"horizontal"!==t&&"cross"!==t&&"esriSFSCross"!==t&&"esriSFSHorizontal"!==t||(n.moveTo(-s,i/2),n.lineTo(i+s,i/2)),"forward-diagonal"!==t&&"diagonal-cross"!==t&&"esriSFSDiagonalCross"!==t&&"esriSFSForwardDiagonal"!==t||(n.moveTo(-s,-s),n.lineTo(i+s,i+s),n.moveTo(i-s,-s),n.lineTo(i+s,s),n.moveTo(-s,i-s),n.lineTo(s,i+s)),"backward-diagonal"!==t&&"diagonal-cross"!==t&&"esriSFSBackwardDiagonal"!==t&&"esriSFSDiagonalCross"!==t||(n.moveTo(i+s,-s),n.lineTo(-s,i+s),n.moveTo(s,-s),n.lineTo(-s,s),n.moveTo(i+s,i-s),n.lineTo(i-s,i+s)),n.stroke();const l=n.getImageData(0,0,e.width,e.height),c=new Uint8Array(l.data);let m;for(let a=0;a<c.length;a+=4)m=c[a+3]/255,c[a]=c[a]*m,c[a+1]=c[a+1]*m,c[a+2]=c[a+2]*m;return[c,e.width,e.height]}static rasterizeSimpleLine(e,t){return this.rasterizeDash(e,t)}static rasterizeDash(e,t){const o="Butt"===t,i="Square"===t,a=!o&&!i;e.length%2==1&&(e=[...e,...e]);const s=15.5,n=2*s;let l=0;for(const r of e)l+=r;const c=Math.round(l*s),m=new Float32Array(c*n),f=.5*s;let y=0,h=0,u=.5,p=!0;for(const r of e){for(y=h,h+=r*s;u<=h;){let e=.5;for(;e<n;){const t=(e-.5)*c+u-.5,r=a?(e-s)*(e-s):Math.abs(e-s);m[t]=p?o?Math.max(Math.max(y+f-u,r),Math.max(u-h+f,r)):r:a?Math.min((u-y)*(u-y)+r,(u-h)*(u-h)+r):i?Math.min(Math.max(u-y,r),Math.max(h-u,r)):Math.min(Math.max(u-y+f,r),Math.max(h+f-u,r)),e++}u++}p=!p}const S=m.length,M=new Uint8Array(4*S);for(let d=0;d<S;++d){const e=(a?Math.sqrt(m[d]):m[d])/s;r(e,M,4*d)}return[M,c,n]}}class K{static findApplicableOverrides(e,t,r){if(e&&t){if(e.primitiveName){let o=!1;for(const t of r)if(t.primitiveName===e.primitiveName){o=!0;break}if(!o)for(const i of t)i.primitiveName===e.primitiveName&&r.push(i)}switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":if(e.effects)for(const o of e.effects)K.findApplicableOverrides(o,t,r);if(e.symbolLayers)for(const o of e.symbolLayers)K.findApplicableOverrides(o,t,r);break;case"CIMTextSymbol":break;case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":case"CIMSolidFill":case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":case"CIMVectorMarker":case"CIMCharacterMarker":case"CIMPictureMarker":if(e.effects)for(const o of e.effects)K.findApplicableOverrides(o,t,r);if(e.markerPlacement&&K.findApplicableOverrides(e.markerPlacement,t,r),"CIMVectorMarker"===e.type){if(e.markerGraphics)for(const o of e.markerGraphics)K.findApplicableOverrides(o,t,r),K.findApplicableOverrides(o.symbol,t,r)}else"CIMCharacterMarker"===e.type?K.findApplicableOverrides(e.symbol,t,r):"CIMHatchFill"===e.type&&K.findApplicableOverrides(e.lineSymbol,t,r)}}}static findEffectOverrides(e,t,r){if(!t||!e)return;const o=e.length;for(let i=0;i<o;i++){const o=e[i],a=null==o?void 0:o.primitiveName;if(a){let e=!1;for(const t of r)if(t.primitiveName===a){e=!0;break}if(!e)for(const o of t)o.primitiveName===a&&r.push(o)}}}static applyOverrides(e,t,r,o){if(!t)return;const i=e=>e?e.charAt(0).toLowerCase()+e.substr(1):e;if(e.primitiveName)for(const a of t)if(a.primitiveName===e.primitiveName){const t=i(a.propertyName);if(o&&o.push({cim:e,nocapPropertyName:t,value:e[t]}),a.expression&&(a.value=K.toValue(a.propertyName,a.expression)),r){let t=!1;for(const o of r)o.primitiveName===e.primitiveName&&(t=!0);t||r.push(a)}e[t]=a.value}switch(e.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":if(e.effects)for(const i of e.effects)K.applyOverrides(i,t,r,o);if(e.symbolLayers)for(const i of e.symbolLayers)K.applyOverrides(i,t,r,o);break;case"CIMTextSymbol":break;case"CIMSolidStroke":case"CIMSolidFill":case"CIMVectorMarker":if(e.effects)for(const i of e.effects)K.applyOverrides(i,t,r,o);if("CIMVectorMarker"===e.type&&e.markerGraphics)for(const i of e.markerGraphics)K.applyOverrides(i,t,r,o),K.applyOverrides(i.symbol,t,r,o)}}static restoreOverrides(e){for(const t of e)t.cim[t.nocapPropertyName]=t.value}static buildOverrideKey(e){let t="";for(const r of e)void 0!==r.value&&(t+=`${r.primitiveName}${r.propertyName}${JSON.stringify(r.value)}`);return t}static toValue(t,r){if("DashTemplate"===t)return r.split(" ").map((e=>Number(e)));if("Color"===t){const t=new e(r).toRgba();return t[3]*=255,t}return r}}const Q=e=>{if(!e)return b.Butt;switch(e){case"butt":return b.Butt;case"square":return b.Square;case"round":return b.Round}},Z=e=>{if(!e)return g.Miter;switch(e){case"miter":return g.Miter;case"round":return g.Round;case"bevel":return g.Bevel}},ee=e=>{if(!e)return"Center";switch(e){case"left":return"Left";case"right":return"Right";case"center":return"Center";case"justify":return"Justify"}},te=e=>{if(!e)return"Center";switch(e){case"baseline":return"Baseline";case"top":return"Top";case"middle":return"Center";case"bottom":return"Bottom"}},re=e=>{if(!e)return[0,0,0,0];const{r:t,g:r,b:o,a:i}=e;return[t,r,o,255*i]},oe=(e,t)=>{const r=ie(t),o=ae(e);return r&&o?`${r}-${o}`:`${r}${o}`},ie=e=>{if(!e)return"";switch(e.toLowerCase()){case"bold":case"bolder":return"bold"}return""},ae=e=>{if(!e)return"";switch(e.toLowerCase()){case"italic":case"oblique":return"italic"}return""},se=(e,t)=>{const r="butt"===t;switch(e){case"dash":case"esriSLSDash":return r?[4,3]:[3,4];case"dash-dot":case"esriSLSDashDot":return r?[4,3,1,3]:[3,4,0,4];case"dot":case"esriSLSDot":return r?[1,3]:[0,4];case"long-dash":case"esriSLSLongDash":return r?[8,3]:[7,4];case"long-dash-dot":case"esriSLSLongDashDot":return r?[8,3,1,3]:[7,4,0,4];case"long-dash-dot-dot":case"esriSLSDashDotDot":return r?[8,3,1,3,1,3]:[7,4,0,4,0,4];case"short-dash":case"esriSLSShortDash":return r?[4,1]:[3,2];case"short-dash-dot":case"esriSLSShortDashDot":return r?[4,1,1,1]:[3,2,0,2];case"short-dash-dot-dot":case"esriSLSShortDashDotDot":return r?[4,1,1,1,1,1]:[3,2,0,2,0,2];case"short-dot":case"esriSLSShortDot":return r?[1,1]:[0,2];case"solid":case"esriSLSSolid":case"none":return X.error("Unexpected: style does not require rasterization"),[0,0];default:return X.error(`Tried to rasterize SLS, but found an unexpected style: ${e}!`),[0,0]}};function ne(e){return void 0!==e.symbolLayers}const le=e=>{const t=100,r=50;let o,i;const a=e;if("circle"===a||"esriSMSCircle"===a){const e=.25;let t=Math.acos(1-e/r),a=Math.ceil(E/t/4);0===a&&(a=1),t=O/a,a*=4;const s=[];s.push([r,0]);for(let o=1;o<a;o++)s.push([r*Math.cos(o*t),-r*Math.sin(o*t)]);s.push([r,0]),o={rings:[s]},i={xmin:-r,ymin:-r,xmax:r,ymax:r}}else if("cross"===a||"esriSMSCross"===a){const e=0;o={rings:[[[e,r],[e,e],[r,e],[r,-e],[e,-e],[e,-r],[-e,-r],[-e,-e],[-r,-e],[-r,e],[-e,e],[-e,r],[e,r]]]},i={xmin:-r,ymin:-r,xmax:r,ymax:r}}else if("diamond"===a||"esriSMSDiamond"===a)o={rings:[[[-r,0],[0,r],[r,0],[0,-r],[-r,0]]]},i={xmin:-r,ymin:-r,xmax:r,ymax:r};else if("square"===a||"esriSMSSquare"===a)o={rings:[[[-r,-r],[-r,r],[r,r],[r,-r],[-r,-r]]]},i={xmin:-r,ymin:-r,xmax:r,ymax:r};else if("x"===a||"esriSMSX"===a){const e=0;o={rings:[[[0,e],[r-e,r],[r,r-e],[e,0],[r,e-r],[r-e,-r],[0,-e],[e-r,-r],[-r,e-r],[-e,0],[-r,r-e],[e-r,r],[0,e]]]},i={xmin:-r,ymin:-r,xmax:r,ymax:r}}else if("triangle"===a||"esriSMSTriangle"===a){const e=t*.5773502691896257,r=-e,a=2/3*t,s=a-t;o={rings:[[[r,s],[0,a],[e,s],[r,s]]]},i={xmin:r,ymin:s,xmax:e,ymax:a}}else"arrow"===a&&(o={rings:[[[-50,50],[50,0],[-50,-50],[-33,-20],[-33,20],[-50,50]]]},i={xmin:-r,ymin:-r,xmax:r,ymax:r});return[i,o]},ce=e=>"vertical"===e||"horizontal"===e||"cross"===e||"esriSFSCross"===e||"esriSFSVertical"===e||"esriSFSHorizontal"===e;export{W as CIMSimbolInflatedSizeHelper,$ as CIMSymbolHelper,K as OverrideHelper,J as SymbolHelper,se as slsDashToTemplateArray,Y as symbolToCIM};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.23/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../Color.js";import t from"../../request.js";import{throwIfAborted as r}from"../../core/promiseUtils.js";import{pt2px as a}from"../../core/screenUtils.js";import{numericHash as i}from"../../core/string.js";import{getJsonType as s,isPolygon as o,isPolyline as n}from"../../geometry/support/jsonUtils.js";import{analyzeCIMSymbol as c,analyzeCIMResource as l}from"./cimAnalyzer.js";import m from"./CIMResourceManager.js";import h from"./Rasterizer.js";import{TextRasterizer as f}from"./TextRasterizer.js";import{createLabelOverrideFunction as g,evaluateValueOrFunction as y,colorToArray as u}from"./utils.js";import{scaleCIMMarker as p}from"../support/cimSymbolUtils.js";import d from"../support/Symbol3DAnchorPosition2D.js";var M;!function(e){e.Legend="legend",e.Preview="preview"}(M||(M={}));const C=(e,t,r)=>{if(e&&e.targetSize){let i;if(r){const t=Math.max(r.frame.xmax-r.frame.xmin,r.frame.ymax-r.frame.ymin);i=e.targetSize/a(t)}else i=e.targetSize/t.referenceSize;return i}return e&&e.scaleFactor?e.scaleFactor:1},I={fill:{legend:{frame:{xmax:15,xmin:0,ymax:15,ymin:0},geometry:{rings:[[[0,15],[15,7.5],[15,0],[0,0],[0,15]]]},canvasPaths:{rings:[[[0,15],[0,0],[15,7.5],[15,15],[0,15]]]}},preview:{frame:{xmax:100,xmin:0,ymax:100,ymin:0},geometry:{rings:[[[0,100],[100,100],[100,0],[0,0],[0,100]]]},canvasPaths:{rings:[[[0,100],[0,0],[100,0],[100,100],[0,100]]]}}},stroke:{legend:{frame:{xmax:24,xmin:0,ymax:2,ymin:-2},geometry:{paths:[[[0,0],[12,0],[24,0]]]},canvasPaths:{paths:[[[0,2],[12,2],[24,2]]]}},preview:{frame:{xmax:100,xmin:0,ymax:2,ymin:-2},geometry:{paths:[[[0,0],[50,0],[100,0]]]},canvasPaths:{paths:[[[0,2],[50,2],[100,2]]]}}}};class z{constructor(e,t){this._spatialReference=e,this._avoidSDF=t,this._resourceCache=new Map,this._pictureMarkerCache=new Map,this._textRasterizer=new f,this._cimResourceManager=new m,this._rasterizer=new h(this._cimResourceManager)}async rasterizeCIMSymbolAsync(e,t,r,a,i,o,n,c){a=a||(t?null!=t.centroid?"esriGeometryPolygon":s(t.geometry):null)||P(e);const l=await this.analyzeCIMSymbol(e,t?x(t.attributes):null,r,a,c);return this.rasterizeCIMSymbol(l,t,a,i,o,n)}async analyzeCIMSymbol(e,t,a,i,s){const o=[],n=t?{geometryType:i,spatialReference:this._spatialReference,fields:t}:null;let l;await c(e.data,n,this._cimResourceManager,o,this._avoidSDF),r(s);for(const r of o)"CIMPictureMarker"!==r.cim.type&&"CIMPictureFill"!==r.cim.type&&"CIMPictureStroke"!==r.cim.type||(l||(l=[]),l.push(this._fetchPictureMarkerResource(r,s))),a&&"text"===r.type&&"string"==typeof r.text&&r.text.indexOf("[")>-1&&(r.text=g(a,r.text,r.cim.textCase));return l&&await Promise.all(l),o}async _fetchPictureMarkerResource(e,r){const a=e.materialHash;if(!this._pictureMarkerCache.get(a)){const i=(await t(e.cim.url,{responseType:"image",signal:r&&r.signal})).data;this._pictureMarkerCache.set(a,i)}}rasterizeCIMSymbol(e,t,r,a,i,s){const o=[];for(const n of e){a&&"function"==typeof a.scaleFactor&&(a.scaleFactor=a.scaleFactor(t,i,s));const e=this._getRasterizedResource(n,t,r,a,i,s);if(!e)continue;let c=0,l=e.anchorX||0,m=e.anchorY||0,h=!1,f=0,g=0;if("esriGeometryPoint"===r){const e=C(a,n,null);if(f=y(n.offsetX,t,i,s)*e||0,g=y(n.offsetY,t,i,s)*e||0,"marker"===n.type)c=y(n.rotation,t,i,s)||0,h=!!n.rotateClockwise&&n.rotateClockwise;else if("text"===n.type){if(c=y(n.angle,t,i,s)||0,void 0!==n.horizontalAlignment)switch(n.horizontalAlignment){case"left":l=-.5;break;case"right":l=.5;break;default:l=0}if(void 0!==n.verticalAlignment)switch(n.verticalAlignment){case"top":m=.5;break;case"bottom":m=-.5;break;case"baseline":m=-.25;break;default:m=0}}}null!=e&&o.push({angle:c,rotateClockWise:h,anchorX:l,anchorY:m,offsetX:f,offsetY:g,rasterizedResource:e})}return this.getSymbolImage(o)}getSymbolImage(e){const t=document.createElement("canvas"),r=t.getContext("2d");let i=0,s=0,o=0,n=0;const c=[];for(let f=0;f<e.length;f++){const t=e[f],l=t.rasterizedResource;if(!l)continue;const m=l.size,h=t.offsetX,g=t.offsetY,y=t.anchorX,u=t.anchorY,p=t.rotateClockWise||!1;let d=t.angle,M=a(h)-m[0]*(.5+y),C=a(g)-m[1]*(.5+u),I=M+m[0],z=C+m[1];if(d){p&&(d=-d);const e=Math.sin(d*Math.PI/180),t=Math.cos(d*Math.PI/180),r=M*t-C*e,a=M*e+C*t,i=M*t-z*e,s=M*e+z*t,o=I*t-z*e,n=I*e+z*t,c=I*t-C*e,l=I*e+C*t;M=Math.min(r,i,o,c),C=Math.min(a,s,n,l),I=Math.max(r,i,o,c),z=Math.max(a,s,n,l)}i=M<i?M:i,s=C<s?C:s,o=I>o?I:o,n=z>n?z:n;const x=r.createImageData(l.size[0],l.size[1]);x.data.set(new Uint8ClampedArray(l.image.buffer));const P={offsetX:h,offsetY:g,rotateClockwise:p,angle:d,rasterizedImage:x,anchorX:y,anchorY:u};c.push(P)}t.width=o-i,t.height=n-s;const l=-i,m=n;for(let f=0;f<c.length;f++){const e=c[f],t=this._imageDataToCanvas(e.rasterizedImage),i=e.rasterizedImage.width,s=e.rasterizedImage.height,o=l-i*(.5+e.anchorX),n=m-s*(.5-e.anchorY);if(e.angle){const i=(360-e.angle)*Math.PI/180;r.save(),r.translate(a(e.offsetX),-a(e.offsetY)),r.translate(l,m),r.rotate(i),r.translate(-l,-m),r.drawImage(t,o,n),r.restore()}else r.drawImage(t,o+a(e.offsetX),n-a(e.offsetY))}const h=new d({x:l/t.width-.5,y:m/t.height-.5});return{imageData:0!==t.width&&0!==t.height?r.getImageData(0,0,t.width,t.height):r.createImageData(1,1),anchorPosition:h}}_imageDataToCanvas(e){this._imageDataCanvas||(this._imageDataCanvas=document.createElement("canvas"));const t=this._imageDataCanvas,r=t.getContext("2d");return t.width=e.width,t.height=e.height,r.putImageData(e,0,0),t}_imageTo32Array(t,r,a,i){this._imageDataCanvas||(this._imageDataCanvas=document.createElement("canvas"));const s=this._imageDataCanvas,o=s.getContext("2d");if(s.width=r,s.height=a,o.drawImage(t,0,0,r,a),i){o.save();const s=new e(i);o.fillStyle=s.toHex(),o.globalCompositeOperation="multiply",o.fillRect(0,0,r,a),o.globalCompositeOperation="destination-atop",o.drawImage(t,0,0,r,a),o.restore()}return new Uint32Array(o.getImageData(0,0,r,a).data.buffer)}_getRasterizedResource(e,t,r,a,s,o){let n,c,l,m,h=null,f=null;if("esriGeometryPolyline"===r||"esriGeometryPolygon"===r){const m=a&&a.style?a.style:M.Legend,g="esriGeometryPolyline"===r?I.stroke[m]:I.fill[m];if("line"===e.type){if("CIMSolidStroke"!==e.cim.type){if("CIMPictureStroke"===e.cim.type){const r=y(e.width,t,s,o),a=y(e.color,t,s,o),{image:i,width:n,height:c}=this._getPictureResource(e,r,a);return this._rasterizePictureResource(e,i,n,c,g,r)}return null}({analyzedCIM:n,hash:l}=w(e,t,s,o)),c=this._embedCIMLayerInVectorMarker(n,g)}else if("marker"===e.type){if("CIMPictureMarker"===e.cim.type)return null;if("CIMVectorMarker"!==e.cim.type)return null;e.cim.offsetX=y(e.offsetX,t,s,o),e.cim.offsetY=y(e.offsetY,t,s,o),e.cim.rotation=y(e.rotation,t,s,o),e.cim.markerPlacement=e.markerPlacement,({analyzedCIM:n}=w(e,t,s,o)),l=i(JSON.stringify(n)).toString(),c=this._embedCIMLayerInVectorMarker(n,g),h=y(e.size,t,s,o),f=e.path}else{if("text"===e.type)return null;if("fill"===e.type){if("CIMHatchFill"===e.cim.type||"CIMVectorMarker"===e.cim.type||"CIMPictureMarker"===e.cim.type||"CIMPictureFill"===e.cim.type){const r=e.cim.size||e.cim.height;let a,i,c;if("CIMPictureMarker"===e.cim.type||"CIMPictureFill"===e.cim.type)({image:a,width:i,height:c}=this._getPictureResource(e,r,y(e.color,t,s,o)));else{({analyzedCIM:n,hash:l}=w(e,t,s,o));const m=this._rasterizer.rasterizeJSONResource({cim:n,type:e.type,url:e.url,mosaicHash:l,size:r,path:f},1,this._avoidSDF);a=m.image,i=m.size[0],c=m.size[1]}return this._rasterizePictureResource(e,a,i,c,g,null)}if("CIMSolidFill"!==e.cim.type)return null;({analyzedCIM:n,hash:l}=w(e,t,s,o)),c=this._embedCIMLayerInVectorMarker(n,g)}}}else{if("text"===e.type)return m=this._rasterizeTextResource(e,t,a,s,o),m;({analyzedCIM:n,hash:l}=w(e,t,s,o));const r=C(a,e,null);if("CIMPictureMarker"===e.cim.type){const a=y(e.size,t,s,o)*r,{image:i,width:n,height:c}=this._getPictureResource(e,a,y(e.color,t,s,o));return m={image:i,size:[n,c],sdf:!1,simplePattern:!1,anchorX:e.anchorPoint?e.anchorPoint.x:0,anchorY:e.anchorPoint?e.anchorPoint.y:0},m}p(n,r,{preserveOutlineWidth:!1}),c=n}l+=r,a&&(l+=JSON.stringify(a));const g=this._resourceCache;return g.has(l)?g.get(l):(m=this._rasterizer.rasterizeJSONResource({cim:c,type:e.type,url:e.url,mosaicHash:l,size:h,path:f},window.devicePixelRatio||1,this._avoidSDF),g.set(l,m),m)}_rasterizeTextResource(e,t,r,a,i){const s=C(r,e,null),o=y(e.text,t,a,i);if(!o||0===o.length)return null;const n=y(e.fontName,t,a,i),c=y(e.style,t,a,i),l=y(e.weight,t,a,i),m=y(e.decoration,t,a,i),h=y(e.size,t,a,i)*s,f=y(e.horizontalAlignment,t,a,i),g=y(e.verticalAlignment,t,a,i),p=u(y(e.color,t,a,i)),d=u(y(e.outlineColor,t,a,i)),M={color:p,size:h,horizontalAlignment:f,verticalAlignment:g,font:{family:n,style:c,weight:l,decoration:m},halo:{size:y(e.outlineSize,t,a,i)||0,color:d,style:c},pixelRatio:1,premultiplyColors:!this._avoidSDF};return this._textRasterizer.rasterizeText(o,M)}_rasterizePictureResource(e,t,r,i,s,c){const l=document.createElement("canvas"),m=l.getContext("2d");l.height=a(Math.max(s.frame.ymax-s.frame.ymin,c)),l.width=a(s.frame.xmax-s.frame.xmin);const h=m.createImageData(r,i);h.data.set(new Uint8ClampedArray(t.buffer));const f=this._imageDataToCanvas(h),g=m.createPattern(f,"repeat"),y=Math.cos((-e.cim.rotation||0)*Math.PI/180),u=Math.sin((-e.cim.rotation||0)*Math.PI/180);g.setTransform({m11:y,m12:u,m21:-u,m22:y,m41:a(e.cim.offsetX)||0,m42:a(e.cim.offsetY)||0});const p=s.canvasPaths;let d,M,C;o(p)?(d=p.rings,m.fillStyle=g,M=m.fill,C=["evenodd"]):n(p)&&(d=p.paths,m.strokeStyle=g,m.lineWidth=c,M=m.stroke,d[0][0][1]=l.height/2,d[0][1][1]=l.height/2),m.beginPath();for(const o of d){const e=o?o.length:0;if(e>1){let t=o[0];m.moveTo(a(t[0]),a(t[1]));for(let r=1;r<e;++r)t=o[r],m.lineTo(a(t[0]),a(t[1]));m.closePath()}}M.apply(m,C);const I=m.getImageData(0,0,l.width,l.height),z=new Uint8Array(I.data);return{size:[l.width,l.height],image:new Uint32Array(z.buffer),sdf:!1,simplePattern:!1,anchorX:0,anchorY:0}}_getPictureResource(e,t,r){const i=this._pictureMarkerCache.get(e.materialHash);if(!i)return null;const s=i.height/i.width,o=t?s>1?a(t):a(t)/s:i.width,n=t?s>1?a(t)*s:a(t):i.height;return{image:this._imageTo32Array(i,o,n,r),width:o,height:n}}_embedCIMLayerInVectorMarker(e,t){const r=o(t.geometry)?"CIMPolygonSymbol":"CIMLineSymbol",a=t.frame;return{type:"CIMVectorMarker",frame:a,size:a.ymax-a.ymin,markerGraphics:[{type:"CIMMarkerGraphic",geometry:t.geometry,symbol:{type:r,symbolLayers:[e]}}]}}}function x(e){return(e?Object.keys(e):[]).map((t=>({name:t,alias:t,type:"string"==typeof e[t]?"esriFieldTypeString":"esriFieldTypeDouble"})))}function P(e){if(!(e&&e.data&&e.data.symbol))return null;switch(e.data.symbol.type){case"CIMPointSymbol":case"CIMTextSymbol":return"esriGeometryPoint";case"CIMLineSymbol":return"esriGeometryPolyline";case"CIMPolygonSymbol":return"esriGeometryPolygon";default:return null}}function w(e,t,r,a){let i,s;if("function"==typeof e.materialHash){i=(0,e.materialHash)(t,r,a),s=l(e.cim,e.materialOverrides)}else i=e.materialHash,s=e.cim;return{analyzedCIM:s,hash:i}}export{z as CIMSymbolRasterizer,M as GeometryStyle};
5
+ import e from"../../Color.js";import t from"../../request.js";import{throwIfAborted as r}from"../../core/promiseUtils.js";import{pt2px as a}from"../../core/screenUtils.js";import{numericHash as i}from"../../core/string.js";import{getJsonType as s,isPolygon as o,isPolyline as n}from"../../geometry/support/jsonUtils.js";import{analyzeCIMSymbol as c,analyzeCIMResource as l}from"./cimAnalyzer.js";import m from"./CIMResourceManager.js";import h from"./Rasterizer.js";import{TextRasterizer as f}from"./TextRasterizer.js";import{createLabelOverrideFunction as g,evaluateValueOrFunction as u,colorToArray as y}from"./utils.js";import{scaleCIMMarker as p}from"../support/cimSymbolUtils.js";import{Symbol3DAnchorPosition2D as d}from"../support/Symbol3DAnchorPosition2D.js";var M;!function(e){e.Legend="legend",e.Preview="preview"}(M||(M={}));const C=(e,t,r)=>{if(e&&e.targetSize){let i;if(r){const t=Math.max(r.frame.xmax-r.frame.xmin,r.frame.ymax-r.frame.ymin);i=e.targetSize/a(t)}else i=e.targetSize/t.referenceSize;return i}return e&&e.scaleFactor?e.scaleFactor:1},I={fill:{legend:{frame:{xmax:15,xmin:0,ymax:15,ymin:0},geometry:{rings:[[[0,15],[15,7.5],[15,0],[0,0],[0,15]]]},canvasPaths:{rings:[[[0,15],[0,0],[15,7.5],[15,15],[0,15]]]}},preview:{frame:{xmax:100,xmin:0,ymax:100,ymin:0},geometry:{rings:[[[0,100],[100,100],[100,0],[0,0],[0,100]]]},canvasPaths:{rings:[[[0,100],[0,0],[100,0],[100,100],[0,100]]]}}},stroke:{legend:{frame:{xmax:24,xmin:0,ymax:2,ymin:-2},geometry:{paths:[[[0,0],[12,0],[24,0]]]},canvasPaths:{paths:[[[0,2],[12,2],[24,2]]]}},preview:{frame:{xmax:100,xmin:0,ymax:2,ymin:-2},geometry:{paths:[[[0,0],[50,0],[100,0]]]},canvasPaths:{paths:[[[0,2],[50,2],[100,2]]]}}}};class z{constructor(e,t){this._spatialReference=e,this._avoidSDF=t,this._resourceCache=new Map,this._pictureMarkerCache=new Map,this._textRasterizer=new f,this._cimResourceManager=new m,this._rasterizer=new h(this._cimResourceManager)}async rasterizeCIMSymbolAsync(e,t,r,a,i,o,n,c){a=a||(t?null!=t.centroid?"esriGeometryPolygon":s(t.geometry):null)||x(e);const l=await this.analyzeCIMSymbol(e,t?P(t.attributes):null,r,a,c);return this.rasterizeCIMSymbol(l,t,a,i,o,n)}async analyzeCIMSymbol(e,t,a,i,s){const o=[],n=t?{geometryType:i,spatialReference:this._spatialReference,fields:t}:null;let l;await c(e.data,n,this._cimResourceManager,o,this._avoidSDF),r(s);for(const r of o)"CIMPictureMarker"!==r.cim.type&&"CIMPictureFill"!==r.cim.type&&"CIMPictureStroke"!==r.cim.type||(l||(l=[]),l.push(this._fetchPictureMarkerResource(r,s))),a&&"text"===r.type&&"string"==typeof r.text&&r.text.indexOf("[")>-1&&(r.text=g(a,r.text,r.cim.textCase));return l&&await Promise.all(l),o}async _fetchPictureMarkerResource(e,r){const a=e.materialHash;if(!this._pictureMarkerCache.get(a)){const i=(await t(e.cim.url,{responseType:"image",signal:r&&r.signal})).data;this._pictureMarkerCache.set(a,i)}}rasterizeCIMSymbol(e,t,r,a,i,s){const o=[];for(const n of e){a&&"function"==typeof a.scaleFactor&&(a.scaleFactor=a.scaleFactor(t,i,s));const e=this._getRasterizedResource(n,t,r,a,i,s);if(!e)continue;let c=0,l=e.anchorX||0,m=e.anchorY||0,h=!1,f=0,g=0;if("esriGeometryPoint"===r){const e=C(a,n,null);if(f=u(n.offsetX,t,i,s)*e||0,g=u(n.offsetY,t,i,s)*e||0,"marker"===n.type)c=u(n.rotation,t,i,s)||0,h=!!n.rotateClockwise&&n.rotateClockwise;else if("text"===n.type){if(c=u(n.angle,t,i,s)||0,void 0!==n.horizontalAlignment)switch(n.horizontalAlignment){case"left":l=-.5;break;case"right":l=.5;break;default:l=0}if(void 0!==n.verticalAlignment)switch(n.verticalAlignment){case"top":m=.5;break;case"bottom":m=-.5;break;case"baseline":m=-.25;break;default:m=0}}}null!=e&&o.push({angle:c,rotateClockWise:h,anchorX:l,anchorY:m,offsetX:f,offsetY:g,rasterizedResource:e})}return this.getSymbolImage(o)}getSymbolImage(e){const t=document.createElement("canvas"),r=t.getContext("2d");let i=0,s=0,o=0,n=0;const c=[];for(let f=0;f<e.length;f++){const t=e[f],l=t.rasterizedResource;if(!l)continue;const m=l.size,h=t.offsetX,g=t.offsetY,u=t.anchorX,y=t.anchorY,p=t.rotateClockWise||!1;let d=t.angle,M=a(h)-m[0]*(.5+u),C=a(g)-m[1]*(.5+y),I=M+m[0],z=C+m[1];if(d){p&&(d=-d);const e=Math.sin(d*Math.PI/180),t=Math.cos(d*Math.PI/180),r=M*t-C*e,a=M*e+C*t,i=M*t-z*e,s=M*e+z*t,o=I*t-z*e,n=I*e+z*t,c=I*t-C*e,l=I*e+C*t;M=Math.min(r,i,o,c),C=Math.min(a,s,n,l),I=Math.max(r,i,o,c),z=Math.max(a,s,n,l)}i=M<i?M:i,s=C<s?C:s,o=I>o?I:o,n=z>n?z:n;const P=r.createImageData(l.size[0],l.size[1]);P.data.set(new Uint8ClampedArray(l.image.buffer));const x={offsetX:h,offsetY:g,rotateClockwise:p,angle:d,rasterizedImage:P,anchorX:u,anchorY:y};c.push(x)}t.width=o-i,t.height=n-s;const l=-i,m=n;for(let f=0;f<c.length;f++){const e=c[f],t=this._imageDataToCanvas(e.rasterizedImage),i=e.rasterizedImage.width,s=e.rasterizedImage.height,o=l-i*(.5+e.anchorX),n=m-s*(.5-e.anchorY);if(e.angle){const i=(360-e.angle)*Math.PI/180;r.save(),r.translate(a(e.offsetX),-a(e.offsetY)),r.translate(l,m),r.rotate(i),r.translate(-l,-m),r.drawImage(t,o,n),r.restore()}else r.drawImage(t,o+a(e.offsetX),n-a(e.offsetY))}const h=new d({x:l/t.width-.5,y:m/t.height-.5});return{imageData:0!==t.width&&0!==t.height?r.getImageData(0,0,t.width,t.height):r.createImageData(1,1),anchorPosition:h}}_imageDataToCanvas(e){this._imageDataCanvas||(this._imageDataCanvas=document.createElement("canvas"));const t=this._imageDataCanvas,r=t.getContext("2d");return t.width=e.width,t.height=e.height,r.putImageData(e,0,0),t}_imageTo32Array(t,r,a,i){this._imageDataCanvas||(this._imageDataCanvas=document.createElement("canvas"));const s=this._imageDataCanvas,o=s.getContext("2d");if(s.width=r,s.height=a,o.drawImage(t,0,0,r,a),i){o.save();const s=new e(i);o.fillStyle=s.toHex(),o.globalCompositeOperation="multiply",o.fillRect(0,0,r,a),o.globalCompositeOperation="destination-atop",o.drawImage(t,0,0,r,a),o.restore()}return new Uint32Array(o.getImageData(0,0,r,a).data.buffer)}_getRasterizedResource(e,t,r,a,s,o){let n,c,l,m,h=null,f=null;if("esriGeometryPolyline"===r||"esriGeometryPolygon"===r){const m=a&&a.style?a.style:M.Legend,g="esriGeometryPolyline"===r?I.stroke[m]:I.fill[m];if("line"===e.type){if("CIMSolidStroke"!==e.cim.type){if("CIMPictureStroke"===e.cim.type){const r=u(e.width,t,s,o),a=u(e.color,t,s,o),{image:i,width:n,height:c}=this._getPictureResource(e,r,a);return this._rasterizePictureResource(e,i,n,c,g,r)}return null}({analyzedCIM:n,hash:l}=w(e,t,s,o)),c=this._embedCIMLayerInVectorMarker(n,g)}else if("marker"===e.type){if("CIMPictureMarker"===e.cim.type){const r=u(e.size,t,s,o),a=u(e.color,t,s,o),{image:i,width:n,height:c}=this._getPictureResource(e,r,a);return this._rasterizePictureResource(e,i,n,c,g,r)}if("CIMVectorMarker"!==e.cim.type)return null;e.cim.offsetX=u(e.offsetX,t,s,o),e.cim.offsetY=u(e.offsetY,t,s,o),e.cim.rotation=u(e.rotation,t,s,o),e.cim.markerPlacement=e.markerPlacement,({analyzedCIM:n}=w(e,t,s,o)),l=i(JSON.stringify(n)).toString(),c=this._embedCIMLayerInVectorMarker(n,g),h=u(e.size,t,s,o),f=e.path}else{if("text"===e.type)return null;if("fill"===e.type){if("CIMHatchFill"===e.cim.type||"CIMVectorMarker"===e.cim.type||"CIMPictureMarker"===e.cim.type||"CIMPictureFill"===e.cim.type){const r=e.cim.size||e.cim.height;let a,i,c;if("CIMPictureMarker"===e.cim.type||"CIMPictureFill"===e.cim.type)({image:a,width:i,height:c}=this._getPictureResource(e,r,u(e.color,t,s,o)));else{({analyzedCIM:n,hash:l}=w(e,t,s,o));const m=this._rasterizer.rasterizeJSONResource({cim:n,type:e.type,url:e.url,mosaicHash:l,size:r,path:f},1,this._avoidSDF);a=m.image,i=m.size[0],c=m.size[1]}return this._rasterizePictureResource(e,a,i,c,g,null)}if("CIMSolidFill"!==e.cim.type)return null;({analyzedCIM:n,hash:l}=w(e,t,s,o)),c=this._embedCIMLayerInVectorMarker(n,g)}}}else{if("text"===e.type)return m=this._rasterizeTextResource(e,t,a,s,o),m;({analyzedCIM:n,hash:l}=w(e,t,s,o));const r=C(a,e,null);if("CIMPictureMarker"===e.cim.type){const a=u(e.size,t,s,o)*r,{image:i,width:n,height:c}=this._getPictureResource(e,a,u(e.color,t,s,o));return m={image:i,size:[n,c],sdf:!1,simplePattern:!1,anchorX:e.anchorPoint?e.anchorPoint.x:0,anchorY:e.anchorPoint?e.anchorPoint.y:0},m}p(n,r,{preserveOutlineWidth:!1}),c=n}l+=r,a&&(l+=JSON.stringify(a));const g=this._resourceCache;return g.has(l)?g.get(l):(m=this._rasterizer.rasterizeJSONResource({cim:c,type:e.type,url:e.url,mosaicHash:l,size:h,path:f},window.devicePixelRatio||1,this._avoidSDF),g.set(l,m),m)}_rasterizeTextResource(e,t,r,a,i){const s=C(r,e,null),o=u(e.text,t,a,i);if(!o||0===o.length)return null;const n=u(e.fontName,t,a,i),c=u(e.style,t,a,i),l=u(e.weight,t,a,i),m=u(e.decoration,t,a,i),h=u(e.size,t,a,i)*s,f=u(e.horizontalAlignment,t,a,i),g=u(e.verticalAlignment,t,a,i),p=y(u(e.color,t,a,i)),d=y(u(e.outlineColor,t,a,i)),M={color:p,size:h,horizontalAlignment:f,verticalAlignment:g,font:{family:n,style:c,weight:l,decoration:m},halo:{size:u(e.outlineSize,t,a,i)||0,color:d,style:c},pixelRatio:1,premultiplyColors:!this._avoidSDF};return this._textRasterizer.rasterizeText(o,M)}_rasterizePictureResource(e,t,r,i,s,c){const l=document.createElement("canvas"),m=l.getContext("2d");l.height=a(Math.max(s.frame.ymax-s.frame.ymin,c)),l.width=a(s.frame.xmax-s.frame.xmin);const h=m.createImageData(r,i);h.data.set(new Uint8ClampedArray(t.buffer));const f=this._imageDataToCanvas(h),g=m.createPattern(f,"repeat"),u=Math.cos((-e.cim.rotation||0)*Math.PI/180),y=Math.sin((-e.cim.rotation||0)*Math.PI/180);g.setTransform({m11:u,m12:y,m21:-y,m22:u,m41:a(e.cim.offsetX)||0,m42:a(e.cim.offsetY)||0});const p=s.canvasPaths;let d,M,C;o(p)?(d=p.rings,m.fillStyle=g,M=m.fill,C=["evenodd"]):n(p)&&(d=p.paths,m.strokeStyle=g,m.lineWidth=c,M=m.stroke,d[0][0][1]=l.height/2,d[0][1][1]=l.height/2),m.beginPath();for(const o of d){const e=o?o.length:0;if(e>1){let t=o[0];m.moveTo(a(t[0]),a(t[1]));for(let r=1;r<e;++r)t=o[r],m.lineTo(a(t[0]),a(t[1]));m.closePath()}}M.apply(m,C);const I=m.getImageData(0,0,l.width,l.height),z=new Uint8Array(I.data);return{size:[l.width,l.height],image:new Uint32Array(z.buffer),sdf:!1,simplePattern:!1,anchorX:0,anchorY:0}}_getPictureResource(e,t,r){const i=this._pictureMarkerCache.get(e.materialHash);if(!i)return null;const s=i.height/i.width,o=t?s>1?a(t):a(t)/s:i.width,n=t?s>1?a(t)*s:a(t):i.height;return{image:this._imageTo32Array(i,o,n,r),width:o,height:n}}_embedCIMLayerInVectorMarker(e,t){const r=o(t.geometry)?"CIMPolygonSymbol":"CIMLineSymbol",a=t.frame;return{type:"CIMVectorMarker",frame:a,size:a.ymax-a.ymin,markerGraphics:[{type:"CIMMarkerGraphic",geometry:t.geometry,symbol:{type:r,symbolLayers:[e]}}]}}}function P(e){return(e?Object.keys(e):[]).map((t=>({name:t,alias:t,type:"string"==typeof e[t]?"esriFieldTypeString":"esriFieldTypeDouble"})))}function x(e){if(!(e&&e.data&&e.data.symbol))return null;switch(e.data.symbol.type){case"CIMPointSymbol":case"CIMTextSymbol":return"esriGeometryPoint";case"CIMLineSymbol":return"esriGeometryPolyline";case"CIMPolygonSymbol":return"esriGeometryPolygon";default:return null}}function w(e,t,r,a){let i,s;if("function"==typeof e.materialHash){i=(0,e.materialHash)(t,r,a),s=l(e.cim,e.materialOverrides)}else i=e.materialHash,s=e.cim;return{analyzedCIM:s,hash:i}}export{z as CIMSymbolRasterizer,M as GeometryStyle};