@arcgis/core 5.2.0-next.47 → 5.2.0-next.49

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 (317) hide show
  1. package/applications/Components/OrientedImageryViewer/PanoramicViewer/utils.d.ts +33 -0
  2. package/applications/Components/OrientedImageryViewer/PanoramicViewer/utils.js +2 -0
  3. package/arcgisGlobal.d.ts +2 -0
  4. package/assets/esri/core/workers/RemoteClient.js +1 -1
  5. package/assets/esri/core/workers/chunks/003a87b16f8a4b476e14.js +1 -0
  6. package/assets/esri/core/workers/chunks/031ccf2e1583beebdf24.js +1 -0
  7. package/assets/esri/core/workers/chunks/0474af7687466d8befd2.js +1 -0
  8. package/assets/esri/core/workers/chunks/{2a4868acd546312aa6d8.js → 05f6887805d92da03122.js} +1 -1
  9. package/assets/esri/core/workers/chunks/069b6d8bdb34ee88d437.js +1 -0
  10. package/assets/esri/core/workers/chunks/{f9b2727b41943d83d4ca.js → 0a413d917f3d19440fc1.js} +1 -1
  11. package/assets/esri/core/workers/chunks/0b2ca406761c63529a6a.js +1 -0
  12. package/assets/esri/core/workers/chunks/{68f7eaa3122de7c00adb.js → 0ea374f7b16745b9bbc7.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{c369d4266f38e9ea6592.js → 1119a33245138e7b3914.js} +1 -1
  14. package/assets/esri/core/workers/chunks/12e0c5b7cc5c3f9e6f0f.js +1 -0
  15. package/assets/esri/core/workers/chunks/172571397c66f992d08c.js +1 -0
  16. package/assets/esri/core/workers/chunks/18edf2846d7546285e5e.js +1 -0
  17. package/assets/esri/core/workers/chunks/1b0557fcb058fc450230.js +1 -0
  18. package/assets/esri/core/workers/chunks/{98f575c038da74ced2a6.js → 1bc45872d22d61dbd7d1.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{835643f716f7058a2722.js → 1cf8fb704c48ac3d3b15.js} +1 -1
  20. package/assets/esri/core/workers/chunks/25cb56c3b538d00e7693.js +1 -0
  21. package/assets/esri/core/workers/chunks/{4d4710d57c72ec75cccc.js → 26f1fd3f2be5102aae1d.js} +1 -1
  22. package/assets/esri/core/workers/chunks/285a5bd708f0fe1c620c.js +1 -0
  23. package/assets/esri/core/workers/chunks/{7777a79f26a06a6c5240.js → 304a22c580ce103480cb.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{383392c63202ac044b6c.js → 33bd9785bd0b6ccef21b.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{2c0d92c0e3511775401a.js → 35cbf00f0c37a86517af.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{0f19bc532be24ca64755.js → 36fe6adf6517d8f80125.js} +1 -1
  27. package/assets/esri/core/workers/chunks/382d9491c2a56c1925fe.js +1 -0
  28. package/assets/esri/core/workers/chunks/3af2b9d6d5466cb2b957.js +256 -0
  29. package/assets/esri/core/workers/chunks/{b3cd17daf5a297b96705.js → 3bc2943035391b44d4cf.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{d36f17d32c654b1ac7fa.js → 3f1a7f8a9ead64bf0b7b.js} +1 -1
  31. package/assets/esri/core/workers/chunks/40f7bb0ebd918d76f078.js +1 -0
  32. package/assets/esri/core/workers/chunks/43b39abd49c4a8ce891f.js +1 -0
  33. package/assets/esri/core/workers/chunks/{821176ee3be724621bb0.js → 461c2de938bf4c9b1442.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{cc637aec16918052548e.js → 47af3525396f890f2a6b.js} +1 -1
  35. package/assets/esri/core/workers/chunks/4ee7232ea41fa41c5ed4.js +29 -0
  36. package/assets/esri/core/workers/chunks/4ee900e5dbb130fa0c7b.js +1 -0
  37. package/assets/esri/core/workers/chunks/50674ba5f24129d61d89.js +1 -0
  38. package/assets/esri/core/workers/chunks/547a2fe53139f705f95e.js +1 -0
  39. package/assets/esri/core/workers/chunks/5ce09c4d06e98b1e9251.js +1 -0
  40. package/assets/esri/core/workers/chunks/5dbd28fce73751d2d1aa.js +1 -0
  41. package/assets/esri/core/workers/chunks/5ec8b02e097cf6718462.js +1 -0
  42. package/assets/esri/core/workers/chunks/5f54d927dc77e92cf145.js +1 -0
  43. package/assets/esri/core/workers/chunks/63e3d338751240479335.js +1 -0
  44. package/assets/esri/core/workers/chunks/69b9a327f23e052fced7.js +1 -0
  45. package/assets/esri/core/workers/chunks/6c2b5087a9df65267f4e.js +1 -0
  46. package/assets/esri/core/workers/chunks/6ccd5fa5e35dc70fcd5d.js +1 -0
  47. package/assets/esri/core/workers/chunks/6e520ef645c5edcd499a.js +1 -0
  48. package/assets/esri/core/workers/chunks/7659391f952d134164cf.js +1 -0
  49. package/assets/esri/core/workers/chunks/78add8e6b54b51eaa299.js +1 -0
  50. package/assets/esri/core/workers/chunks/{2b669473aa2c7cfb63c7.js → 7b0ed52363704cfce129.js} +1 -1
  51. package/assets/esri/core/workers/chunks/7b61f56d0f766421eaef.js +1 -0
  52. package/assets/esri/core/workers/chunks/7f2f2a92dce3f68e579b.js +1 -0
  53. package/assets/esri/core/workers/chunks/801a664f21e0218bc705.js +1 -0
  54. package/assets/esri/core/workers/chunks/{8f9fb4e8a7d73db41664.js → 851bcc75acac4a2f199b.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{6010b7be978698a642d0.js → 8977c85aecc7e08ab13c.js} +1 -1
  56. package/assets/esri/core/workers/chunks/8c5726c7ce40a92901e6.js +1 -0
  57. package/assets/esri/core/workers/chunks/8d21e2dabc5165f1c8ca.js +1 -0
  58. package/assets/esri/core/workers/chunks/9008090a5d8431ddfa22.js +1 -0
  59. package/assets/esri/core/workers/chunks/{f2adf1227a795604d3b8.js → 90ae80b797642bff0efa.js} +1 -1
  60. package/assets/esri/core/workers/chunks/{71ce1009dadcae8f8094.js → 95b3b8fe45ef4ac6b277.js} +1 -1
  61. package/assets/esri/core/workers/chunks/96cec8a02ca96175d602.js +1 -0
  62. package/assets/esri/core/workers/chunks/99eccf9ce53582cfa5b5.js +1 -0
  63. package/assets/esri/core/workers/chunks/9b7cb96acea388d86fa4.js +1 -0
  64. package/assets/esri/core/workers/chunks/{dee4019338a79c1ecd26.js → 9d0a9d465ec3a8ba1ed2.js} +1 -1
  65. package/assets/esri/core/workers/chunks/9e474465d069cb9e94f5.js +1 -0
  66. package/assets/esri/core/workers/chunks/aa3abc07de2921ef6ca1.js +1 -0
  67. package/assets/esri/core/workers/chunks/{ae9f9e975d7a9d442fa5.js → ab5aa4280ed0cb7fcbe9.js} +1 -1
  68. package/assets/esri/core/workers/chunks/b03f09ee2224f0cc526a.js +1 -0
  69. package/assets/esri/core/workers/chunks/{ee58f4bbc0a1f7d03df0.js → b32ede7805c7c6644e4c.js} +1 -1
  70. package/assets/esri/core/workers/chunks/b49952541d189b4b9f7e.js +1 -0
  71. package/assets/esri/core/workers/chunks/b8bdacebd4d24ba90f3f.js +1 -0
  72. package/assets/esri/core/workers/chunks/{85cd0cd721b27c497b18.js → baac90da0703891d59c4.js} +1 -1
  73. package/assets/esri/core/workers/chunks/bb552089b34d6811fb03.js +1 -0
  74. package/assets/esri/core/workers/chunks/cd1f1a72483b7c80bd9a.js +1 -0
  75. package/assets/esri/core/workers/chunks/{744f34e379484e63277c.js → cdb331b58e22f8c1c988.js} +2 -2
  76. package/assets/esri/core/workers/chunks/{b23d1e10fc4161d1f3eb.js → d021775cf747556660a5.js} +1 -1
  77. package/assets/esri/core/workers/chunks/{728ea88e7d4733230e1f.js → d1af0bd611a3dc549858.js} +85 -81
  78. package/assets/esri/core/workers/chunks/d2cb3d5ef0a9285afb78.js +1 -0
  79. package/assets/esri/core/workers/chunks/d49e42f36bc3dc256b9f.js +1 -0
  80. package/assets/esri/core/workers/chunks/d560ed96dde5ca3a5583.js +1 -0
  81. package/assets/esri/core/workers/chunks/dc1787d88b11ed985159.js +1 -0
  82. package/assets/esri/core/workers/chunks/{399e23d777a043efa9f1.js → dd95f50dac3f33cdb6d2.js} +1 -1
  83. package/assets/esri/core/workers/chunks/ddb92c815d17c67a45e6.js +1 -0
  84. package/assets/esri/core/workers/chunks/{7c2784ebbe17d79f669c.js → de50a19944617cd426b8.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{52efa4ded11c1e71f04f.js → e2e2162adbfb9b46bede.js} +1 -1
  86. package/assets/esri/core/workers/chunks/e4353f0792f45aa6a62f.js +1 -0
  87. package/assets/esri/core/workers/chunks/eac8cae89da9ce2f4946.js +1 -0
  88. package/assets/esri/core/workers/chunks/edf87407dd20685c82ab.js +1 -0
  89. package/assets/esri/core/workers/chunks/ee7c8a7f384ea6393487.js +705 -0
  90. package/assets/esri/core/workers/chunks/f1299b4fc760ccca1518.js +1 -0
  91. package/assets/esri/core/workers/chunks/f244632f7934a4b72c91.js +1 -0
  92. package/assets/esri/core/workers/chunks/fc639c730115e07a4a1a.js +1 -0
  93. package/assets/esri/libs/basisu/basis_encoder.wasm +0 -0
  94. package/assets/esri/libs/basisu/basis_transcoder.wasm +0 -0
  95. package/assets/esri/libs/dxtEncoder/dxt_encoder.wasm +0 -0
  96. package/chunks/Component.glsl.js +104 -67
  97. package/chunks/DefaultMaterial.glsl.js +1 -1
  98. package/chunks/LineMarker.glsl.js +31 -31
  99. package/chunks/RibbonLine.glsl.js +60 -49
  100. package/chunks/basis_encoder.js +1 -1
  101. package/chunks/basis_transcoder.js +1 -1
  102. package/chunks/dxt_encoder.js +1 -1
  103. package/chunks/vec3.js +1 -1
  104. package/config.js +1 -1
  105. package/core/has.js +1 -1
  106. package/core/libs/gl-matrix-2/math/vec3.js +1 -1
  107. package/core/promiseUtils.js +1 -1
  108. package/core/workers/workerFactory.js +1 -1
  109. package/geometry/Mesh.d.ts +4 -4
  110. package/geometry/support/MeshMaterialMetallicRoughness.d.ts +13 -1
  111. package/geometry/support/MeshMaterialMetallicRoughness.js +1 -1
  112. package/geometry/support/aaBoundingBox.js +1 -1
  113. package/geometry/support/buffer/math/vec3.js +1 -1
  114. package/geometry/support/frustum.js +1 -1
  115. package/geometry/support/meshUtils/exporters/gltf/gltf.js +1 -1
  116. package/geometry/support/meshUtils/extent.js +1 -1
  117. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  118. package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
  119. package/geometry/support/meshUtils.d.ts +33 -5
  120. package/geometry/support/plane.js +1 -1
  121. package/kernel.js +1 -1
  122. package/layers/orientedImagery/transformations/imageToWorld.js +1 -1
  123. package/layers/orientedImagery/transformations/utils.js +1 -1
  124. package/layers/raster/formats/ImageCanvasDecoder.js +1 -1
  125. package/layers/raster/formats/JpgPlus.js +1 -1
  126. package/layers/raster/formats/RasterCodec.js +1 -1
  127. package/layers/raster/formats/TiffDecoder.js +1 -1
  128. package/layers/raster/formats/Zlib.js +2 -0
  129. package/package.json +2 -2
  130. package/rest/featureService/FeatureService.d.ts +74 -1
  131. package/rest/featureService/FeatureService.js +1 -1
  132. package/support/revision.js +1 -1
  133. package/symbols/ObjectSymbol3DLayer.d.ts +10 -8
  134. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  135. package/symbols/cim/CIMSymbolHelper.js +1 -1
  136. package/symbols/cim/TextRasterizer.js +1 -1
  137. package/symbols/cim/cimAnalyzer.js +1 -1
  138. package/symbols/cim/richTextUtils.js +2 -0
  139. package/symbols/support/ObjectSymbol3DLayerResource.d.ts +9 -4
  140. package/views/2d/analysis/AreaMeasurement/AreaMeasurementAreaVisualization.js +1 -1
  141. package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
  142. package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
  143. package/views/2d/engine/webgl/TextureManager.js +1 -1
  144. package/views/2d/engine/webgl/definitions.js +1 -1
  145. package/views/2d/engine/webgl/mesh/MultiTileMeshData.js +1 -1
  146. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  147. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  148. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  149. package/views/2d/engine/webgl/util/DimensionMatcher.js +1 -1
  150. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  151. package/views/2d/layers/features/Processor.js +1 -1
  152. package/views/2d/layers/features/processor/AProcessorStrategy.js +1 -1
  153. package/views/2d/layers/features/processor/AggregateStrategy.js +2 -0
  154. package/views/2d/layers/features/processor/bins/BinAdapter.js +2 -0
  155. package/views/2d/layers/features/processor/bins/BinLevelState.js +2 -0
  156. package/views/2d/layers/features/processor/bins/BinState.js +2 -0
  157. package/views/2d/layers/features/processor/bins/createBinningStrategy.js +2 -0
  158. package/views/2d/layers/features/processor/clusters/ClusterAdapter.js +2 -0
  159. package/views/2d/layers/features/processor/clusters/ClusterLevelState.js +2 -0
  160. package/views/2d/layers/features/processor/clusters/ClusterSendState.js +2 -0
  161. package/views/2d/layers/features/processor/clusters/createClusterStrategy.js +2 -0
  162. package/views/2d/layers/features/processor/createAggregateStrategy.js +2 -0
  163. package/views/2d/layers/features/processor/tracks/Track.js +2 -0
  164. package/views/2d/layers/features/processor/tracks/TrackAdapter.js +2 -0
  165. package/views/2d/layers/features/processor/tracks/TrackLevelState.js +2 -0
  166. package/views/2d/layers/features/processor/tracks/TrackSendState.js +2 -0
  167. package/views/2d/layers/features/processor/tracks/createTrackStrategy.js +2 -0
  168. package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
  169. package/views/2d/layers/features/support/FeatureSetReaderIndirect.js +1 -1
  170. package/views/2d/layers/support/annodime/DimensionInfo.js +1 -1
  171. package/views/2d/layers/support/annodime/dimensionUtils.js +1 -1
  172. package/views/3d/analysis/LineOfSight/LineOfSightReshapeTool3D.js +1 -1
  173. package/views/3d/analysis/Viewshed/ViewshedConfiguration.js +1 -1
  174. package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
  175. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  176. package/views/3d/analysis/Viewshed/ViewshedSubVisualization.js +1 -1
  177. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  178. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  179. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  180. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
  181. package/views/3d/focusAreaUtils.js +1 -1
  182. package/views/3d/glTF/LoaderResult.js +1 -1
  183. package/views/3d/glTF/internal/Resource.js +1 -1
  184. package/views/3d/glTF/loader.js +1 -1
  185. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentScale.js +1 -1
  186. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  187. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  188. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  189. package/views/3d/layers/graphics/wosrLoader.js +1 -1
  190. package/views/3d/layers/i3s/meshUtils.js +1 -1
  191. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  192. package/views/3d/webgl/RenderCamera.js +1 -1
  193. package/views/3d/webgl/RenderNode.js +1 -1
  194. package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
  195. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  196. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBuffer.glsl.js +2 -2
  197. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBufferFields.glsl.js +2 -2
  198. package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +36 -25
  199. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js +19 -20
  200. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +17 -10
  201. package/views/3d/webgl-engine/lib/BoundingInfo.js +1 -1
  202. package/views/3d/webgl-engine/lib/Intersector.js +1 -1
  203. package/views/3d/webgl-engine/lib/NavigationDepthCache.js +1 -1
  204. package/views/3d/webgl-engine/lib/NavigationDepthCacheStore.js +2 -0
  205. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  206. package/views/3d/webgl-engine/lib/PolygonIntersections2D.js +1 -1
  207. package/views/3d/webgl-engine/lib/RayIntersections.js +1 -1
  208. package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
  209. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  210. package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
  211. package/views/3d/webgl-engine/lib/intersectorUtils.js +1 -1
  212. package/views/3d/webgl-engine/lib/lodRendering/LodLevel.js +1 -1
  213. package/views/3d/webgl-engine/lib/screenPolygonOverlapUtils.js +1 -1
  214. package/views/3d/webgl-engine/lib/screenPolygonTriangleIntersections.js +1 -1
  215. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  216. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  217. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  218. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  219. package/views/3d/webgl-engine/shaders/AnimatedLine.glsl.js +8 -5
  220. package/views/3d/webgl-engine/shaders/DefaultMaterialTechniqueConfiguration.js +1 -1
  221. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  222. package/views/3d/webgl-engine/shaders/RibbonLineLayouts.js +1 -1
  223. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  224. package/views/3d/webgl-engine/shaders/RibbonLineTextureBuffer.glsl.js +1 -1
  225. package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
  226. package/views/PopupView.js +1 -1
  227. package/views/SceneView.js +1 -1
  228. package/views/interactive/snapping/RightAngleTriangleSnapper.js +1 -1
  229. package/views/interactive/snapping/SnappingAlgorithm.js +1 -1
  230. package/views/interactive/snapping/featureSources/FeatureServiceSnappingSource.js +1 -1
  231. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorkerHandle.js +1 -1
  232. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiledFetcher.js +1 -1
  233. package/views/selection/SelectionOperation.js +1 -1
  234. package/views/support/AnalysisViewManager.js +1 -1
  235. package/views/support/DefaultsFromMap.js +1 -1
  236. package/views/support/LayerViewManager.js +1 -1
  237. package/views/support/TextureCompressionWorker.js +1 -1
  238. package/views/webgl/RenderingContext.js +1 -1
  239. package/widgets/Editor.js +1 -1
  240. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  241. package/widgets/OrientedImageryViewer/services/SuperimposeService.js +1 -1
  242. package/widgets/OrientedImageryViewer/support/superimposeUtils.js +1 -1
  243. package/widgets/PanoramicViewer/support/PanoramicTileNode.d.ts +63 -0
  244. package/widgets/PanoramicViewer/support/PanoramicTileNode.js +1 -1
  245. package/widgets/PanoramicViewer/support/PanoramicTilePyramid.d.ts +66 -0
  246. package/widgets/PanoramicViewer/support/PanoramicTilePyramid.js +1 -1
  247. package/widgets/PanoramicViewer/utils.js +1 -1
  248. package/widgets/Sketch/VisibleElements.d.ts +0 -10
  249. package/widgets/Sketch.js +1 -1
  250. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
  251. package/widgets/support/SelectionToolbar.js +1 -1
  252. package/widgets/support/Selector3D/selectorUtils.js +2 -0
  253. package/assets/esri/core/workers/chunks/0115681a3de6df0aebdf.js +0 -1
  254. package/assets/esri/core/workers/chunks/025caafc70ac26f0a4ed.js +0 -1
  255. package/assets/esri/core/workers/chunks/08e18fb12533fc76e49c.js +0 -1
  256. package/assets/esri/core/workers/chunks/0e64e20fedfe01a1985f.js +0 -1
  257. package/assets/esri/core/workers/chunks/0f674c625f24ac73e25a.js +0 -1
  258. package/assets/esri/core/workers/chunks/15351354afcbf840a23d.js +0 -29
  259. package/assets/esri/core/workers/chunks/176c5eaaa23a479c88e0.js +0 -1
  260. package/assets/esri/core/workers/chunks/1d1f5578c7d8619f7a46.js +0 -1
  261. package/assets/esri/core/workers/chunks/1f118d85d8271ad7690b.js +0 -1
  262. package/assets/esri/core/workers/chunks/2015f4def2ef201bdab8.js +0 -1
  263. package/assets/esri/core/workers/chunks/268637fd6c50264acfc3.js +0 -1
  264. package/assets/esri/core/workers/chunks/272c8ab189217240d05f.js +0 -1
  265. package/assets/esri/core/workers/chunks/296fa9fb80e521c30cb1.js +0 -1
  266. package/assets/esri/core/workers/chunks/354199a41de44902de84.js +0 -1
  267. package/assets/esri/core/workers/chunks/384b619854ef8a3f6e94.js +0 -1
  268. package/assets/esri/core/workers/chunks/3af923abeb6e65c4468f.js +0 -1
  269. package/assets/esri/core/workers/chunks/46d3ddf62fa7a76dd57d.js +0 -1
  270. package/assets/esri/core/workers/chunks/4b24f72b56edc28bb15e.js +0 -1
  271. package/assets/esri/core/workers/chunks/4f09f208ece2ec1db727.js +0 -1
  272. package/assets/esri/core/workers/chunks/57374213084bef59b776.js +0 -1
  273. package/assets/esri/core/workers/chunks/5f9c4dad6952c4c58ebf.js +0 -1
  274. package/assets/esri/core/workers/chunks/706230b70a36d2e038f7.js +0 -1
  275. package/assets/esri/core/workers/chunks/7cc729b57a6a52c8ac68.js +0 -1
  276. package/assets/esri/core/workers/chunks/8026cc0065f6520c4161.js +0 -1
  277. package/assets/esri/core/workers/chunks/804ab5f614efa12a131b.js +0 -1
  278. package/assets/esri/core/workers/chunks/81d55594cee124040565.js +0 -1
  279. package/assets/esri/core/workers/chunks/8d21f3d6edbcd7b335d0.js +0 -1
  280. package/assets/esri/core/workers/chunks/8d90bef1091204fba0f1.js +0 -1
  281. package/assets/esri/core/workers/chunks/8ec5e470583b75fceae1.js +0 -1
  282. package/assets/esri/core/workers/chunks/9114a575b78a7ea18d0f.js +0 -1
  283. package/assets/esri/core/workers/chunks/93e705c1147cc8ceca02.js +0 -1
  284. package/assets/esri/core/workers/chunks/9a97f6cda2f36941efae.js +0 -1
  285. package/assets/esri/core/workers/chunks/9ceeae787dc7c194d60e.js +0 -1
  286. package/assets/esri/core/workers/chunks/a8033e606b2db1ee332d.js +0 -1
  287. package/assets/esri/core/workers/chunks/a90f7b1c6c69b6033b4c.js +0 -1
  288. package/assets/esri/core/workers/chunks/a9c641bcdef161c754bf.js +0 -1
  289. package/assets/esri/core/workers/chunks/ad5c2b0de6713d0a93a4.js +0 -680
  290. package/assets/esri/core/workers/chunks/ae50b2d5e63f62c088d2.js +0 -1
  291. package/assets/esri/core/workers/chunks/aea247138617e12b699b.js +0 -1
  292. package/assets/esri/core/workers/chunks/b03dcf3d55266745f3d1.js +0 -1
  293. package/assets/esri/core/workers/chunks/b32bdf5730953c2fb16b.js +0 -1
  294. package/assets/esri/core/workers/chunks/bf287f0e2ecb4532dc00.js +0 -1
  295. package/assets/esri/core/workers/chunks/c01a121ebe571a848452.js +0 -1
  296. package/assets/esri/core/workers/chunks/c3cd38ca8690286d40d7.js +0 -1
  297. package/assets/esri/core/workers/chunks/c4b13124a9cfc78c42a6.js +0 -261
  298. package/assets/esri/core/workers/chunks/c5e36544b2d1792e4c5f.js +0 -1
  299. package/assets/esri/core/workers/chunks/c6042825f61cd70d54d8.js +0 -1
  300. package/assets/esri/core/workers/chunks/cba3316910ff088f4d77.js +0 -1
  301. package/assets/esri/core/workers/chunks/d8b67ca02cdc1e8191e3.js +0 -1
  302. package/assets/esri/core/workers/chunks/dadefe369f49e89a2610.js +0 -1
  303. package/assets/esri/core/workers/chunks/db416ba3132034e20642.js +0 -1
  304. package/assets/esri/core/workers/chunks/de9573871f64c01e9f01.js +0 -1
  305. package/assets/esri/core/workers/chunks/dfbdc72c7ea137e3841d.js +0 -1
  306. package/assets/esri/core/workers/chunks/e3e966777f18164afcd8.js +0 -1
  307. package/assets/esri/core/workers/chunks/e9c48630757bea465b7e.js +0 -1
  308. package/assets/esri/core/workers/chunks/f2c8122d31aedc2604ee.js +0 -1
  309. package/assets/esri/core/workers/chunks/f8f0de841be17cd05c8f.js +0 -1
  310. package/assets/esri/core/workers/chunks/ff089723a27859fe18d1.js +0 -1
  311. package/chunks/Zlib.js +0 -2
  312. package/views/2d/layers/features/processor/AAggregateStrategy.js +0 -2
  313. package/views/2d/layers/features/processor/BinningStrategy.js +0 -2
  314. package/views/2d/layers/features/processor/ClusterStrategy.js +0 -2
  315. package/views/2d/layers/features/processor/TrackStrategy.js +0 -2
  316. package/views/3d/analysis/Viewshed/ViewshedTool2.js +0 -2
  317. /package/assets/esri/core/workers/chunks/{744f34e379484e63277c.js.LICENSE.txt → cdb331b58e22f8c1c988.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[4760],{32488(t,e,i){i.d(e,{A:()=>P});const s=[["(",")"],[")","("],["<",">"],[">","<"],["[","]"],["]","["],["{","}"],["}","{"],["«","»"],["»","«"],["‹","›"],["›","‹"],["⁽","⁾"],["⁾","⁽"],["₍","₎"],["₎","₍"],["≤","≥"],["≥","≤"],["〈","〉"],["〉","〈"],["﹙","﹚"],["﹚","﹙"],["﹛","﹜"],["﹜","﹛"],["﹝","﹞"],["﹞","﹝"],["﹤","﹥"],["﹥","﹤"]],r=["آ","أ","إ","ا"],n=["ﻵ","ﻷ","ﻹ","ﻻ"],o=["ﻶ","ﻸ","ﻺ","ﻼ"],a=["ا","ب","ت","ث","ج","ح","خ","د","ذ","ر","ز","س","ش","ص","ض","ط","ظ","ع","غ","ف","ق","ك","ل","م","ن","ه","و","ي","إ","أ","آ","ة","ى","ل","م","ن","ه","و","ي","إ","أ","آ","ة","ى","ی","ئ","ؤ"],l=["ﺍ","ﺏ","ﺕ","ﺙ","ﺝ","ﺡ","ﺥ","ﺩ","ﺫ","ﺭ","ﺯ","ﺱ","ﺵ","ﺹ","ﺽ","ﻁ","ﻅ","ﻉ","ﻍ","ﻑ","ﻕ","ﻙ","ﻝ","ﻡ","ﻥ","ﻩ","ﻭ","ﻱ","ﺇ","ﺃ","ﺁ","ﺓ","ﻯ","ﯼ","ﺉ","ﺅ","ﹰ","ﹲ","ﹴ","ﹶ","ﹸ","ﹺ","ﹼ","ﹾ","ﺀ","ﺉ","ﺅ"],h=["ﺎ","ﺐ","ﺖ","ﺚ","ﺞ","ﺢ","ﺦ","ﺪ","ﺬ","ﺮ","ﺰ","ﺲ","ﺶ","ﺺ","ﺾ","ﻂ","ﻆ","ﻊ","ﻎ","ﻒ","ﻖ","ﻚ","ﻞ","ﻢ","ﻦ","ﻪ","ﻮ","ﻲ","ﺈ","ﺄ","ﺂ","ﺔ","ﻰ","ﯽ","ﺊ","ﺆ","ﹰ","ﹲ","ﹴ","ﹶ","ﹸ","ﹺ","ﹼ","ﹾ","ﺀ","ﺊ","ﺆ"],c=["ﺎ","ﺒ","ﺘ","ﺜ","ﺠ","ﺤ","ﺨ","ﺪ","ﺬ","ﺮ","ﺰ","ﺴ","ﺸ","ﺼ","ﻀ","ﻄ","ﻈ","ﻌ","ﻐ","ﻔ","ﻘ","ﻜ","ﻠ","ﻤ","ﻨ","ﻬ","ﻮ","ﻴ","ﺈ","ﺄ","ﺂ","ﺔ","ﻰ","ﯿ","ﺌ","ﺆ","ﹱ","ﹲ","ﹴ","ﹷ","ﹹ","ﹻ","ﹽ","ﹿ","ﺀ","ﺌ","ﺆ"],u=["ﺍ","ﺑ","ﺗ","ﺛ","ﺟ","ﺣ","ﺧ","ﺩ","ﺫ","ﺭ","ﺯ","ﺳ","ﺷ","ﺻ","ﺿ","ﻃ","ﻇ","ﻋ","ﻏ","ﻓ","ﻗ","ﻛ","ﻟ","ﻣ","ﻧ","ﻫ","ﻭ","ﻳ","ﺇ","ﺃ","ﺁ","ﺓ","ﻯ","ﯾ","ﺋ","ﺅ","ﹰ","ﹲ","ﹴ","ﹶ","ﹸ","ﹺ","ﹼ","ﹾ","ﺀ","ﺋ","ﺅ"],f=["ء","آ","أ","ؤ","إ","ا","ة","د","ذ","ر","ز","و","ى"],m=["ً","ً","ٌ","؟","ٍ","؟","َ","َ","ُ","ُ","ِ","ِ","ّ","ّ","ْ","ْ","ء","آ","آ","أ","أ","ؤ","ؤ","إ","إ","ئ","ئ","ئ","ئ","ا","ا","ب","ب","ب","ب","ة","ة","ت","ت","ت","ت","ث","ث","ث","ث","ج","ج","ج","ج","ح","ح","ح","ح","خ","خ","خ","خ","د","د","ذ","ذ","ر","ر","ز","ز","س","س","س","س","ش","ش","ش","ش","ص","ص","ص","ص","ض","ض","ض","ض","ط","ط","ط","ط","ظ","ظ","ظ","ظ","ع","ع","ع","ع","غ","غ","غ","غ","ف","ف","ف","ف","ق","ق","ق","ق","ك","ك","ك","ك","ل","ل","ل","ل","م","م","م","م","ن","ن","ن","ن","ه","ه","ه","ه","و","و","ى","ى","ي","ي","ي","ي","ﻵ","ﻶ","ﻷ","ﻸ","ﻹ","ﻺ","ﻻ","ﻼ","؟","؟","؟"],d=["ء","ف"],y=["غ","ي"],p=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],g=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],_=10,x=11,S=12,M=18,w=["UBAT_L","UBAT_R","UBAT_EN","UBAT_AN","UBAT_ON","UBAT_B","UBAT_S","UBAT_AL","UBAT_WS","UBAT_CS","UBAT_ES","UBAT_ET","UBAT_NSM","UBAT_LRE","UBAT_RLE","UBAT_PDF","UBAT_LRO","UBAT_RLO","UBAT_BN"],b=[100,0,0,0,0,101,102,103,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,4,4,4,0,4,0,4,0,4,4,4,0,0,4,4,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,4,4,0,0,4,4,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,105,7,7,106,107],C=[[M,M,M,M,M,M,M,M,M,6,5,6,8,5,M,M,M,M,M,M,M,M,M,M,M,M,M,M,5,5,5,6,8,4,4,x,x,x,4,4,4,4,4,_,9,_,9,9,2,2,2,2,2,2,2,2,2,2,9,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,M,M,M,M,M,M,5,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,M,9,4,x,x,x,x,4,4,4,4,0,4,4,M,4,4,x,x,2,2,4,0,4,4,4,2,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,4,4,4,4,4,4,4,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,1,S,1,S,S,1,S,S,1,S,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4],[3,3,3,3,4,4,4,4,7,x,x,7,9,7,4,4,S,S,S,S,S,S,S,S,S,S,S,7,4,4,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,3,3,3,3,3,3,3,3,3,3,x,3,3,7,7,7,S,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,S,S,S,S,S,S,S,3,4,S,S,S,S,S,S,7,7,S,S,4,S,S,S,S,7,7,2,2,2,2,2,2,2,2,2,2,7,7,7,7,7,7],[7,7,7,7,7,7,7,7,7,7,7,7,7,7,4,7,7,S,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,4,4,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,S,S,S,S,S,S,S,S,S,S,S,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,S,S,S,S,S,S,S,S,S,1,1,4,4,4,4,1,4,4,4,4,4],[8,8,8,8,8,8,8,8,8,8,8,M,M,M,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,5,13,14,15,16,17,9,x,x,x,x,x,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,M,M,M,M,M,4,4,4,4,4,M,M,M,M,M,M,2,0,4,4,2,2,2,2,2,2,_,_,4,4,4,0,2,2,2,2,2,2,2,2,2,2,_,_,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4],[0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,4,4,4,4,4,1,S,1,1,1,1,1,1,1,1,1,1,_,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,4,1,4,1,1,4,1,1,4,1,1,1,1,1,1,1,1,1,1,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7],[S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,S,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,S,S,S,S,S,S,S,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,4,9,4,4,9,4,4,4,4,4,4,4,4,4,x,4,4,_,_,4,4,4,4,4,x,x,4,4,4,4,4,7,7,7,7,7,4,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,4,4,M],[4,4,4,x,x,x,4,4,4,4,4,_,9,_,9,9,2,2,2,2,2,2,2,2,2,2,9,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0,0,0,0,0,0,4,4,0,0,0,0,0,0,4,4,0,0,0,0,0,0,4,4,0,0,0,4,4,4,x,x,4,4,4,x,x,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4]];class P{constructor(){this.inputFormat="ILYNN",this.outputFormat="VLNNN",this.sourceToTarget=[],this.targetToSource=[],this.levels=[]}bidiTransform(t,e,i){if(this.sourceToTarget=[],this.targetToSource=[],!t)return"";if(function(t,e,i){q=[],Z=[];for(let s=0;s<i;s++)t[s]=s,e[s]=s,q[s]=s}(this.sourceToTarget,this.targetToSource,t.length),!this.checkParameters(e,i))return t;e=this.inputFormat,i=this.outputFormat;let s=t;const a=J,c=$(e.charAt(1)),f=$(i.charAt(1)),d=(e.startsWith("I")?"L":e.charAt(0))+c,y=(i.startsWith("I")?"L":i.charAt(0))+f,p=e.charAt(2)+i.charAt(2);a.defInFormat=d,a.defOutFormat=y,a.defSwap=p;const g=k(t,d,y,p,a);let _=!1;return"R"===i.charAt(1)?_=!0:"C"!==i.charAt(1)&&"D"!==i.charAt(1)||(_="rtl"===this.checkContextual(g)),this.sourceToTarget=q,this.targetToSource=function(t){const e=new Array(t.length);for(let i=0;i<t.length;i++)e[t[i]]=i;return e}(this.sourceToTarget),Y=this.targetToSource,s=e.charAt(3)===i.charAt(3)?g:"S"===i.charAt(3)?function(t,e){if(0===e.length)return"";void 0===t&&(t=!0);const i=(e=String(e)).split("");let s=0,r=1,a=i.length;t||(s=i.length-1,r=-1,a=1);const c=function(t,e,i,s){let r=0;const a=[];let c=0;for(let f=e;f*i<s;f+=i)if(A(t[f])||W(t[f])){if("ل"===t[f]&&E(t,f+i,i,s)){t[f]=V(t[f+i],0===r?n:o),f+=i,G(t,f,i,s),a[c]=f,c++,r=0;continue}const e=t[f];1===r?t[f]=F(t,f+i,i,s)?N(t[f]):O(t[f],h):!0===F(t,f+i,i,s)?t[f]=O(t[f],u):t[f]=O(t[f],l),W(e)||(r=1),!0===H(e)&&(r=0)}else r=0;return a}(i,s,r,a);let f="";for(let e=0;e<i.length;e++)z(c,c.length,e)>-1?(X(Y,e,!t,-1),q.splice(e,1)):f+=i[e];return f}(_,g):function(t,e){if(0===t.length)return"";void 0===e&&(e=!0);let i="";const s=(t=String(t)).split("");for(let n=0;n<t.length;n++){let o=!1;if(s[n]>="ﹰ"&&s[n]<"\ufeff"){const a=t.charCodeAt(n);s[n]>="ﻵ"&&s[n]<="ﻼ"?(e?(n>0&&" "===s[n-1]?i=i.slice(0,-1)+"ل":(i+="ل",o=!0),i+=r[(a-65269)/2]):(i+=r[(a-65269)/2],i+="ل",n+1<t.length&&" "===s[n+1]?n++:o=!0),o&&(X(Y,n,!0,1),q.splice(n,0,q[n]))):i+=m[a-65136]}else i+=s[n]}return i}(g,_),this.sourceToTarget=q,this.targetToSource=Y,this.levels=Z,s}_inputFormatSetter(t){if(!et.test(t))throw new Error("dojox/string/BidiEngine: the bidi layout string is wrong!");this.inputFormat=t}_outputFormatSetter(t){if(!et.test(t))throw new Error("dojox/string/BidiEngine: the bidi layout string is wrong!");this.outputFormat=t}checkParameters(t,e){return t?this._inputFormatSetter(t):t=this.inputFormat,e?this._outputFormatSetter(e):e=this.outputFormat,t!==e}checkContextual(t){let e=T(t);if("ltr"!==e&&"rtl"!==e){try{e=document.dir.toLowerCase()}catch(t){}"ltr"!==e&&"rtl"!==e&&(e="ltr")}return e}hasBidiChar(t){return it.test(t)}}function k(t,e,i,s,r){const n=function(t,e,i){if(void 0===e.inFormat&&(e.inFormat=i.defInFormat),void 0===e.outFormat&&(e.outFormat=i.defOutFormat),void 0===e.swap&&(e.swap=i.defSwap),e.inFormat===e.outFormat)return e;const s=e.inFormat.slice(0,1),r=e.outFormat.slice(0,1);let n,o=e.inFormat.slice(1,4),a=e.outFormat.slice(1,4);return o.startsWith("C")&&(n=T(t),o="ltr"===n||"rtl"===n?n.toUpperCase():"L"===e.inFormat.charAt(2)?"LTR":"RTL",e.inFormat=s+o),a.startsWith("C")&&(n=T(t),"rtl"===n?a="RTL":"ltr"===n?(n=function(t){const e=t.split("");return e.reverse(),T(e.join(""))}(t),a=n.toUpperCase()):a="L"===e.outFormat.charAt(2)?"LTR":"RTL",e.outFormat=r+a),e}(t,{inFormat:e,outFormat:i,swap:s},r);if(n.inFormat===n.outFormat)return t;e=n.inFormat,i=n.outFormat,s=n.swap;const o=e.slice(0,1),a=e.slice(1,4),l=i.slice(0,1),h=i.slice(1,4);if(r.inFormat=e,r.outFormat=i,r.swap=s,"L"===o&&"VLTR"===i){if("LTR"===a)return r.dir=Q,R(t,r);if("RTL"===a)return r.dir=tt,R(t,r)}if("V"===o&&"V"===l)return r.dir="RTL"===a?tt:Q,v(t,r);if("L"===o&&"VRTL"===i)return"LTR"===a?(r.dir=Q,t=R(t,r)):(r.dir=tt,t=R(t,r)),v(t);if("VLTR"===e&&"LLTR"===i)return r.dir=Q,R(t,r);if("V"===o&&"L"===l&&a!==h)return t=v(t),"RTL"===a?k(t,"LLTR","VLTR",s,r):k(t,"LRTL","VRTL",s,r);if("VRTL"===e&&"LRTL"===i)return k(t,"LRTL","VRTL",s,r);if("L"===o&&"L"===l){const e=r.swap;return r.swap=e.slice(0,1)+"N","RTL"===a?(r.dir=tt,t=R(t,r),r.swap="N"+e.slice(1,3),r.dir=Q,t=R(t,r)):(r.dir=Q,t=R(t,r),r.swap="N"+e.slice(1,3),t=k(t,"VLTR","LRTL",r.swap,r)),t}return t}function T(t){const e=/[A-Za-z\u05d0-\u065f\u066a-\u06ef\u06fa-\u07ff\ufb1d-\ufdff\ufe70-\ufefc]/.exec(t);return e?e[0]<="z"?"ltr":"rtl":""}function R(t,e){const i=t.split(""),s=[];return I(i,s,e),function(t,e,i){if(0!==i.hiLevel&&i.swap[0]!==i.swap[1])for(let i=0;i<t.length;i++)1===e[i]&&(t[i]=B(t[i]))}(i,s,e),D(2,i,s,e),D(1,i,s,e),Z=s,i.join("")}function I(t,e,i){const s=t.length,r=i.dir?g:p;let n=0,o=-1;const a=[],l=[];i.hiLevel=i.dir,i.lastArabic=!1,i.hasUbatAl=!1,i.hasUbatB=!1,i.hasUbatS=!1;for(let e=0;e<s;e++)a[e]=L(t[e]);for(let h=0;h<s;h++){const s=n,c=U(t,a,l,h,i);l[h]=c,n=r[s][c];const u=240&n;n&=15;const f=r[n][j];if(e[h]=f,u>0)if(16===u){for(let t=o;t<h;t++)e[t]=1;o=-1}else o=-1;if(r[n][K])-1===o&&(o=h);else if(o>-1){for(let t=o;t<h;t++)e[t]=f;o=-1}5===a[h]&&(e[h]=0),i.hiLevel|=f}i.hasUbatS&&function(t,e,i,s){for(let r=0;r<i;r++)if(6===t[r]){e[r]=s.dir;for(let i=r-1;i>=0&&8===t[i];i--)e[i]=s.dir}}(a,e,s,i)}function L(t){const e=t.charCodeAt(0),i=b[e>>8];return i<100?i:C[i-100][255&e]}function v(t,e){const i=t.split("");if(e){const t=[];I(i,t,e),Z=t}return i.reverse(),q.reverse(),i.join("")}function z(t,e,i){for(let s=0;s<e;s++)if(t[s]===i)return s;return-1}function A(t){for(let e=0;e<d.length;e++)if(t>=d[e]&&t<=y[e])return!0;return!1}function F(t,e,i,s){for(;e*i<s&&W(t[e]);)e+=i;return!!(e*i<s&&A(t[e]))}function E(t,e,i,s){for(;e*i<s&&W(t[e]);)e+=i;let n=" ";if(!(e*i<s))return!1;n=t[e];for(let t=0;t<r.length;t++)if(r[t]===n)return!0;return!1}function D(t,e,i,s){if(s.hiLevel<t)return;if(1===t&&s.dir===tt&&!s.hasUbatB)return e.reverse(),void q.reverse();const r=e.length;let n,o,a,l,h,c=0;for(;c<r;){if(i[c]>=t){for(n=c+1;n<r&&i[n]>=t;)n++;for(o=c,a=n-1;o<a;o++,a--)l=e[o],e[o]=e[a],e[a]=l,h=q[o],q[o]=q[a],q[a]=h;c=n}c++}}function U(t,e,i,s,r){const n=e[s];return{UBAT_L:()=>(r.lastArabic=!1,0),UBAT_R:()=>(r.lastArabic=!1,1),UBAT_ON:()=>4,UBAT_AN:()=>3,UBAT_EN:()=>r.lastArabic?3:2,UBAT_AL:()=>(r.lastArabic=!0,r.hasUbatAl=!0,1),UBAT_WS:()=>4,UBAT_CS:()=>{let t,n;return s<1||s+1>=e.length||2!==(t=i[s-1])&&3!==t||2!==(n=e[s+1])&&3!==n?4:(r.lastArabic&&(n=3),n===t?n:4)},UBAT_ES:()=>2===(s>0?i[s-1]:5)&&s+1<e.length&&2===e[s+1]?2:4,UBAT_ET:()=>{if(s>0&&2===i[s-1])return 2;if(r.lastArabic)return 4;let t=s+1;const n=e.length;for(;t<n&&11===e[t];)t++;return t<n&&2===e[t]?2:4},UBAT_NSM:()=>{if("VLTR"===r.inFormat){const i=e.length;let r=s+1;for(;r<i&&12===e[r];)r++;if(r<i){const i=t[s].charCodeAt(0),n=i>=1425&&i<=2303||64286===i,o=e[r];if(n&&(1===o||7===o))return 1}}return s<1||5===e[s-1]?4:i[s-1]},UBAT_B:()=>(r.lastArabic=!0,r.hasUbatB=!0,r.dir),UBAT_S:()=>(r.hasUbatS=!0,4),UBAT_LRE:()=>(r.lastArabic=!1,4),UBAT_RLE:()=>(r.lastArabic=!1,4),UBAT_LRO:()=>(r.lastArabic=!1,4),UBAT_RLO:()=>(r.lastArabic=!1,4),UBAT_PDF:()=>(r.lastArabic=!1,4),UBAT_BN:()=>4}[w[n]]()}function B(t){let e,i=0,r=s.length-1;for(;i<=r;)if(e=Math.floor((i+r)/2),t<s[e][0])r=e-1;else{if(!(t>s[e][0]))return s[e][1];i=e+1}return t}function H(t){for(let e=0;e<f.length;e++)if(f[e]===t)return!0;return!1}function N(t){for(let e=0;e<a.length;e++)if(t===a[e])return c[e];return t}function O(t,e){for(let i=0;i<a.length;i++)if(t===a[i])return e[i];return t}function W(t){return t>="ً"&&t<="ٕ"}function $(t){return"L"===t?"LTR":"R"===t?"RTL":"C"===t?"CLR":"D"===t?"CRL":""}function G(t,e,i,s){for(;e*i<s&&W(t[e]);)e+=i;return e*i<s&&(t[e]=" ",!0)}function V(t,e){for(let i=0;i<r.length;i++)if(t===r[i])return e[i];return t}function X(t,e,i,s){for(let r=0;r<t.length;r++)(t[r]>e||!i&&t[r]===e)&&(t[r]+=s)}let q=[],Y=[],Z=[];const J={dir:0,defInFormat:"LLTR",defSwap:"YN",inFormat:"LLTR",outFormat:"VLTR",swap:"YN",hiLevel:0,lastArabic:!1,hasUbatAl:!1,defOutFormat:""},j=5,K=6,Q=0,tt=1,et=/^[(I|V)][(L|RCD)][(Y|N)][(S|N)]N$/,it=/[\u0591-\u06ff\ufb1d-\ufefc]/},56512(t,e,i){function s(t){let e,i,s=[],r=!1;return function(...n){return r&&e===this&&function(t,e){if(t.length!==e.length)return!1;for(let i=0;i<t.length;++i)if(t[i]!==e[i])return!1;return!0}(n,s)||(i=t.apply(this,n),e=this,s=n,r=!0),i}}i.d(e,{B:()=>s})},69397(t,e,i){i.d(e,{Qf:()=>a,Qh:()=>n,lM:()=>r});var s=i(34275);function r(t){if(!t)return 0;let e=h;for(const i in t)t.hasOwnProperty(i)&&(e+=o(t[i],!1));return e}function n(t){if(!t)return 0;if("number"==typeof t[0])return a(t);if(Array.isArray(t))return function(t){const e=t.length;if(0===e||"number"==typeof t[0])return l(t,8);let i=c;for(let s=0;s<e;s++)i+=o(t[s]);return i}(t);let e=h;for(const i in t)t.hasOwnProperty(i)&&(e+=o(t[i]));return e}function o(t,e=!0){switch(typeof t){case"object":return e?n(t):h;case"string":return function(t){return 32+t.length}(t);case"number":return 16;case"boolean":return 4;default:return 8}}function a(...t){return t.reduce((t,e)=>t+(e?(0,s.iu)(e)?e.byteLength+u:Array.isArray(e)?l(e,16):0:0),0)}function l(t,e){return c+t.length*e}const h=32,c=16,u=145},6774(t,e,i){i.d(e,{O3:()=>n,Ox:()=>o,bR:()=>s});class s{constructor(t,e){this.x=t,this.y=e}static fromArray(t){return new s(t[0],t[1])}clone(){return new s(this.x,this.y)}equals(t,e){return t===this.x&&e===this.y}isEqual(t){return t.x===this.x&&t.y===this.y}setCoords(t,e){return this.x=t,this.y=e,this}normalize(){const t=this.x,e=this.y,i=Math.sqrt(t*t+e*e);return this.x/=i,this.y/=i,this}rightPerpendicular(){const t=this.x;return this.x=this.y,this.y=-t,this}leftPerpendicular(){const t=this.x;return this.x=-this.y,this.y=t,this}move(t,e){return this.x+=t,this.y+=e,this}assign(t){return this.x=t.x,this.y=t.y,this}assignAdd(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}assignSub(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}rotate(t,e){const i=this.x,s=this.y;return this.x=i*t-s*e,this.y=i*e+s*t,this}rotateReverse(t,e){const i=this.x,s=this.y;return this.x=i*t+s*e,this.y=-i*e+s*t,this}scale(t){return this.x*=t,this.y*=t,this}length(){const t=this.x,e=this.y;return Math.sqrt(t*t+e*e)}sub(t){return this.x-=t.x,this.y-=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}static distance(t,e){const i=e.x-t.x,s=e.y-t.y;return Math.sqrt(i*i+s*s)}static add(t,e){return new s(t.x+e.x,t.y+e.y)}static sub(t,e){return new s(t.x-e.x,t.y-e.y)}}class r{constructor(t,e,i){this.ratio=t,this.x=e,this.y=i}}class n{constructor(t,e,i,s=8,r=8){this._lines=[],this._starts=[],this.validateTessellation=!0,this._pixelRatio=s,this._pixelMargin=r,this._tileSize=512*s,this._dz=t,this._yPos=e,this._xPos=i}setPixelMargin(t){t!==this._pixelMargin&&(this._pixelMargin=t,this.setExtent(this._extent))}setExtent(t){this._extent=t,this._finalRatio=this._tileSize/t*(1<<this._dz);let e=this._pixelRatio*this._pixelMargin;e/=this._finalRatio;const i=t>>this._dz;e>i&&(e=i),this._margin=e,this._xmin=i*this._xPos-e,this._ymin=i*this._yPos-e,this._xmax=this._xmin+i+2*e,this._ymax=this._ymin+i+2*e}reset(t){this._type=t,this._lines=[],this._starts=[],this._line=null,this._start=0}moveTo(t,e){this._pushLine(),this._prevIsIn=this._isIn(t,e),this._moveTo(t,e,this._prevIsIn),this._prevPt=new s(t,e),this._firstPt=new s(t,e),this._dist=0}lineTo(t,e){const i=this._isIn(t,e),n=new s(t,e),o=s.distance(this._prevPt,n);let a,l,h,c,u,f,m,d;if(i)this._prevIsIn?this._lineTo(t,e,!0):(a=this._prevPt,l=n,h=this._intersect(l,a),this._start=this._dist+o*(1-this._r),this._lineTo(h.x,h.y,!0),this._lineTo(l.x,l.y,!0));else if(this._prevIsIn)l=this._prevPt,a=n,h=this._intersect(l,a),this._lineTo(h.x,h.y,!0),this._lineTo(a.x,a.y,!1);else{const t=this._prevPt,e=n;if(t.x<=this._xmin&&e.x<=this._xmin||t.x>=this._xmax&&e.x>=this._xmax||t.y<=this._ymin&&e.y<=this._ymin||t.y>=this._ymax&&e.y>=this._ymax)this._lineTo(e.x,e.y,!1);else{const i=[];if((t.x<this._xmin&&e.x>this._xmin||t.x>this._xmin&&e.x<this._xmin)&&(c=(this._xmin-t.x)/(e.x-t.x),d=t.y+c*(e.y-t.y),d<=this._ymin?f=!1:d>=this._ymax?f=!0:i.push(new r(c,this._xmin,d))),(t.x<this._xmax&&e.x>this._xmax||t.x>this._xmax&&e.x<this._xmax)&&(c=(this._xmax-t.x)/(e.x-t.x),d=t.y+c*(e.y-t.y),d<=this._ymin?f=!1:d>=this._ymax?f=!0:i.push(new r(c,this._xmax,d))),(t.y<this._ymin&&e.y>this._ymin||t.y>this._ymin&&e.y<this._ymin)&&(c=(this._ymin-t.y)/(e.y-t.y),m=t.x+c*(e.x-t.x),m<=this._xmin?u=!1:m>=this._xmax?u=!0:i.push(new r(c,m,this._ymin))),(t.y<this._ymax&&e.y>this._ymax||t.y>this._ymax&&e.y<this._ymax)&&(c=(this._ymax-t.y)/(e.y-t.y),m=t.x+c*(e.x-t.x),m<=this._xmin?u=!1:m>=this._xmax?u=!0:i.push(new r(c,m,this._ymax))),0===i.length)u?f?this._lineTo(this._xmax,this._ymax,!0):this._lineTo(this._xmax,this._ymin,!0):f?this._lineTo(this._xmin,this._ymax,!0):this._lineTo(this._xmin,this._ymin,!0);else if(i.length>1&&i[0].ratio>i[1].ratio)this._start=this._dist+o*i[1].ratio,this._lineTo(i[1].x,i[1].y,!0),this._lineTo(i[0].x,i[0].y,!0);else{this._start=this._dist+o*i[0].ratio;for(let t=0;t<i.length;t++)this._lineTo(i[t].x,i[t].y,!0)}this._lineTo(e.x,e.y,!1)}}this._dist+=o,this._prevIsIn=i,this._prevPt=n}close(){if(this._line.length>2){const t=this._firstPt,e=this._prevPt;t.x===e.x&&t.y===e.y||this.lineTo(t.x,t.y);const i=this._line;let s=i.length;for(;s>=4&&(i[0].x===i[1].x&&i[0].x===i[s-2].x||i[0].y===i[1].y&&i[0].y===i[s-2].y);)i.pop(),i[0].x=i[s-2].x,i[0].y=i[s-2].y,--s}}result(t=!0){return this._pushLine(),0===this._lines.length?null:(3===this._type&&t&&a.simplify(this._tileSize,this._margin*this._finalRatio,this._lines),this._lines)}resultWithStarts(){if(2!==this._type)throw new Error("Only valid for lines");this._pushLine();const t=this._lines,e=t.length;if(0===e)return null;const i=[];for(let s=0;s<e;s++)i.push({line:t[s],start:this._starts[s]||0});return i}_isIn(t,e){return t>=this._xmin&&t<=this._xmax&&e>=this._ymin&&e<=this._ymax}_intersect(t,e){let i,r,n;if(e.x>=this._xmin&&e.x<=this._xmax)r=e.y<=this._ymin?this._ymin:this._ymax,n=(r-t.y)/(e.y-t.y),i=t.x+n*(e.x-t.x);else if(e.y>=this._ymin&&e.y<=this._ymax)i=e.x<=this._xmin?this._xmin:this._xmax,n=(i-t.x)/(e.x-t.x),r=t.y+n*(e.y-t.y);else{r=e.y<=this._ymin?this._ymin:this._ymax,i=e.x<=this._xmin?this._xmin:this._xmax;const s=(i-t.x)/(e.x-t.x),o=(r-t.y)/(e.y-t.y);s<o?(n=s,r=t.y+s*(e.y-t.y)):(n=o,i=t.x+o*(e.x-t.x))}return this._r=n,new s(i,r)}_pushLine(){this._line&&(1===this._type?this._line.length>0&&(this._lines.push(this._line),this._starts.push(this._start)):2===this._type?this._line.length>1&&(this._lines.push(this._line),this._starts.push(this._start)):3===this._type&&this._line.length>3&&(this._lines.push(this._line),this._starts.push(this._start))),this._line=[],this._start=0}_moveTo(t,e,i){3!==this._type?i&&(t=Math.round((t-(this._xmin+this._margin))*this._finalRatio),e=Math.round((e-(this._ymin+this._margin))*this._finalRatio),this._line.push(new s(t,e))):(i||(t<this._xmin&&(t=this._xmin),t>this._xmax&&(t=this._xmax),e<this._ymin&&(e=this._ymin),e>this._ymax&&(e=this._ymax)),t=Math.round((t-(this._xmin+this._margin))*this._finalRatio),e=Math.round((e-(this._ymin+this._margin))*this._finalRatio),this._line.push(new s(t,e)),this._isH=!1,this._isV=!1)}_lineTo(t,e,i){let r,n;if(3!==this._type)if(i){if(t=Math.round((t-(this._xmin+this._margin))*this._finalRatio),e=Math.round((e-(this._ymin+this._margin))*this._finalRatio),this._line.length>0&&(r=this._line[this._line.length-1],r.equals(t,e)))return;this._line.push(new s(t,e))}else this._line&&this._line.length>0&&this._pushLine();else if(i||(t<this._xmin&&(t=this._xmin),t>this._xmax&&(t=this._xmax),e<this._ymin&&(e=this._ymin),e>this._ymax&&(e=this._ymax)),t=Math.round((t-(this._xmin+this._margin))*this._finalRatio),e=Math.round((e-(this._ymin+this._margin))*this._finalRatio),this._line&&this._line.length>0){r=this._line[this._line.length-1];const i=r.x===t,o=r.y===e;if(i&&o)return;this._isH&&i||this._isV&&o?(r.x=t,r.y=e,n=this._line[this._line.length-2],n.x===t&&n.y===e?(this._line.pop(),this._line.length<=1?(this._isH=!1,this._isV=!1):(n=this._line[this._line.length-2],this._isH=n.x===t,this._isV=n.y===e)):(this._isH=n.x===t,this._isV=n.y===e)):(this._line.push(new s(t,e)),this._isH=i,this._isV=o)}else this._line.push(new s(t,e))}}class o{setExtent(t){this._ratio=4096===t?1:4096/t}get validateTessellation(){return this._ratio<1}reset(t){this._lines=[],this._line=null}moveTo(t,e){this._line&&this._lines.push(this._line),this._line=[];const i=this._ratio;this._line.push(new s(t*i,e*i))}lineTo(t,e){const i=this._ratio;this._line.push(new s(t*i,e*i))}close(){const t=this._line;t&&!t[0].isEqual(t[t.length-1])&&t.push(t[0])}result(){return this._line&&this._lines.push(this._line),0===this._lines.length?null:this._lines}}class a{static simplify(t,e,i){if(!i)return;const s=-e,r=t+e,n=-e,o=t+e,l=[],h=[],c=i.length;for(let t=0;t<c;++t){const e=i[t];if(!e||e.length<2)continue;let a,c=e[0];const u=e.length;for(let i=1;i<u;++i)a=e[i],c.x===a.x&&(c.x<=s&&(c.y>a.y?(l.push(t),l.push(i),l.push(0),l.push(-1)):(h.push(t),h.push(i),h.push(0),h.push(-1))),c.x>=r&&(c.y<a.y?(l.push(t),l.push(i),l.push(1),l.push(-1)):(h.push(t),h.push(i),h.push(1),h.push(-1)))),c.y===a.y&&(c.y<=n&&(c.x<a.x?(l.push(t),l.push(i),l.push(2),l.push(-1)):(h.push(t),h.push(i),h.push(2),h.push(-1))),c.y>=o&&(c.x>a.x?(l.push(t),l.push(i),l.push(3),l.push(-1)):(h.push(t),h.push(i),h.push(3),h.push(-1)))),c=a}if(0===l.length||0===h.length)return;a.fillParent(i,h,l),a.fillParent(i,l,h);const u=[];a.calcDeltas(u,h,l),a.calcDeltas(u,l,h),a.addDeltas(u,i)}static fillParent(t,e,i){const s=i.length,r=e.length;for(let n=0;n<r;n+=4){const r=e[n],o=e[n+1],a=e[n+2],h=t[r][o-1],c=t[r][o];let u=8092,f=-1;for(let e=0;e<s;e+=4){if(i[e+2]!==a)continue;const s=i[e],r=i[e+1],n=t[s][r-1],o=t[s][r];switch(a){case 0:case 1:if(l(h.y,n.y,o.y)&&l(c.y,n.y,o.y)){const t=Math.abs(o.y-n.y);t<u&&(u=t,f=e)}break;case 2:case 3:if(l(h.x,n.x,o.x)&&l(c.x,n.x,o.x)){const t=Math.abs(o.x-n.x);t<u&&(u=t,f=e)}}}e[n+3]=f}}static calcDeltas(t,e,i){const s=e.length;for(let r=0;r<s;r+=4){const s=[],n=a.calcDelta(r,e,i,s);t.push(e[r]),t.push(e[r+1]),t.push(e[r+2]),t.push(n)}}static calcDelta(t,e,i,s){const r=e[t+3];if(-1===r)return 0;const n=s.length;return n>1&&s[n-2]===r?0:(s.push(r),a.calcDelta(r,i,e,s)+1)}static addDeltas(t,e){const i=t.length;let s=0;for(let e=0;e<i;e+=4){const i=t[e+3];i>s&&(s=i)}for(let r=0;r<i;r+=4){const i=e[t[r]],n=t[r+1],o=s-t[r+3];switch(t[r+2]){case 0:i[n-1].x-=o,i[n].x-=o,1===n&&(i[i.length-1].x-=o),n===i.length-1&&(i[0].x-=o);break;case 1:i[n-1].x+=o,i[n].x+=o,1===n&&(i[i.length-1].x+=o),n===i.length-1&&(i[0].x+=o);break;case 2:i[n-1].y-=o,i[n].y-=o,1===n&&(i[i.length-1].y-=o),n===i.length-1&&(i[0].y-=o);break;case 3:i[n-1].y+=o,i[n].y+=o,1===n&&(i[i.length-1].y+=o),n===i.length-1&&(i[0].y+=o)}}}}const l=(t,e,i)=>t>=e&&t<=i||t>=i&&t<=e},31411(t,e,i){i.d(e,{GS:()=>C,gh:()=>k});var s=i(49186),r=i(56512),n=i(65864),o=i(4305),a=i(50954),l=i(52006),h=i(49663),c=i(46068),u=i(15507);const f=1e-6,m=[0,0];function d(t){return{maxSegmentLength:t.maxSegmentLength??0,maxDeviation:t.maxDeviation??0,maxSegmentsPerCurve:t.maxSegmentsPerCurve??12e3,minSegmentsPerCurve:Math.max(t.minSegmentsPerCurve??1,1)}}class y{constructor(t,e){this.curveStart=t,this.curveEnd=e,this.tStart=0,this.tEnd=0,this.tEndStack=[],this.arcEndStack=[]}get stackSize(){return this.tEndStack.length}initialize(t,e){this.tStart=0,this.arcStart=t,this.tEndStack.push(1),this.arcEndStack.push(e)}splitAt(t){this.tEndStack.push(this.tEnd),this.arcEndStack.push(this.arcEnd),this.tEndStack.push(t),this.arcEndStack.push(this.interpolate(t))}splitInHalf(){return this.splitAt((this.tStart+this.tEnd)/2)}pop(){this.tEnd=this.tEndStack.pop(),this.arcEnd=this.arcEndStack.pop()}next(){this.tStart=this.tEnd,this.arcStart=this.arcEnd}densify(t,{maxDeviation:e,maxSegmentLength:i,maxSegmentsPerCurve:s,minSegmentsPerCurve:r}){const n=i*i,o=e*e,a=1/s,l=this.interpolate(0),h=this.interpolate(1);(0,u.kb)(this.curveStart,l)>f&&t.push(l),this.initialize(l,h);const c=1/r;for(let t=r-1;t>0;t--){const e=t*c;this.pop(),this.splitAt(e)}for(;this.stackSize>0;)this.pop(),this.tStart===this.tEnd||this.tEnd-this.tStart<a||(0===n||!isFinite(n)||(0,u.kb)(this.arcStart,this.arcEnd)<n)&&(0===o||!isFinite(o)||this.getDeviation2()<o)?(t.push(this.arcEnd),this.next()):this.splitInHalf();return(0,u.kb)(this.curveEnd,h)>f&&t.push([...this.curveEnd]),t}}class p extends y{constructor(t,e){const[i,s,r]=e.b;super(t,i),this._controlPointsStack=[],this._curveControlPoints=[s,r],this._arcControlPoints=[s,r],this._controlPointsStack.push(this._arcControlPoints)}splitAt(t){const{arcStart:e,arcEnd:i,tStart:s,tEnd:r}=this,[n,o]=this._arcControlPoints,a=(t-s)/(r-s),l=(0,u.RS)([],e,n,a),h=(0,u.RS)(m,n,o,a),c=(0,u.RS)([],o,i,a),f=(0,u.RS)([],l,h,a),d=(0,u.RS)([],h,c,a),y=(0,u.RS)([],f,d,a);this.tEndStack.push(this.tEnd),this.arcEndStack.push(this.arcEnd),this._controlPointsStack.push([d,c]),this.tEndStack.push(t),this.arcEndStack.push(y),this._arcControlPoints[0]=l,this._arcControlPoints[1]=f,this._controlPointsStack.push(this._arcControlPoints)}pop(){super.pop(),this._arcControlPoints=this._controlPointsStack.pop()}interpolate(t){const{curveStart:e,curveEnd:i}=this,[s,r]=this._curveControlPoints;return(0,o.B4)(e,s,r,i,t)}getDeviation2(){const{arcStart:t,arcEnd:e}=this,[i,s]=this._arcControlPoints;return Math.max((0,u.yE)(i,t,e),(0,u.yE)(s,t,e))}}class g extends y{constructor(t,e){const[i]=e.a;super(t,i),this._derivedEllipse=(0,c.SW)(t,e)}pop(){super.pop(),this._tMid=(this.tStart+this.tEnd)/2,this._arcMid=this.interpolate(this._tMid)}splitInHalf(){this.tEndStack.push(this.tEnd),this.arcEndStack.push(this.arcEnd),this.tEndStack.push(this._tMid),this.arcEndStack.push(this._arcMid)}interpolate(t){return(0,c.Uk)(this._derivedEllipse,t)}getDeviation2(){return(0,u.yE)(this._arcMid,this.arcStart,this.arcEnd)}}function _(t,e,i,{cx:s,cy:r,radius:n,thetaStart:o,thetaEnd:a,isInvalid:l},{maxDeviation:h,maxSegmentLength:c,maxSegmentsPerCurve:m,minSegmentsPerCurve:d}){if(l)return t.push([...i]),t;const y=2*n,p=[s+n*Math.cos(o),r+n*Math.sin(o)],g=[s+n*Math.cos(a),r+n*Math.sin(a)];(0,u.kb)(e,p)>f&&t.push(p);const _=Math.abs(a-o),x=c>0&&c<y?2*Math.asin(c/y):_,S=h>0&&h<=n?2*Math.acos(1-h/n):_,M=Math.min(x,S),w=Math.min(m,Math.max(d,Math.ceil(Math.abs(_/M)))),b=1/w;for(let e=1;e<w;e++){const i=e*b,l=o*(1-i)+a*i;t.push([s+n*Math.cos(l),r+n*Math.sin(l)])}return t.push(g),(0,u.kb)(i,g)>f&&t.push([...i]),t}function x(t,e,i,s){return new p(e,i).densify(t,s)}function S(t,e,i,s){const r=(0,a.pM)(e,i),[n]=i.c;return _(t,e,n,r,s)}function M(t,e,i,s){const r=(0,h.io)(e,i),[n]=i.a;return _(t,e,n,r,s)}function w(t,e,i,s){const[r,n,o,a,l,h,c]=i.a;return 0===h||0===c?(t.push([...r]),t):new g(e,i).densify(t,s)}function b(t,e,i,s){return(0,l.Xq)(i)?(t.push([...i]),t):(0,l.n1)(i)?x(t,e,i,s):(0,l.aO)(i)?S(t,e,i,s):(0,l.DA)(i)?M(t,e,i,s):w(t,e,i,s)}function C(t,e={}){if(!(0,l.Ed)(t))return t;const i=d(e),s=(0,l.FD)(t),r=[];for(const t of s){const e=[];for(let s=0;s<t.length-1;s++){const r=s+1,n=[...(0,l.yP)(t[s])];0===s&&e.push(n),b(e,n,t[r],i)}r.push(e)}return"curvePaths"in t?{...void 0!==t.hasZ?{hasZ:t.hasZ}:{},...void 0!==t.hasM?{hasM:t.hasM}:{},paths:r,spatialReference:t.spatialReference}:{...void 0!==t.hasZ?{hasZ:t.hasZ}:{},...void 0!==t.hasM?{hasM:t.hasM}:{},rings:r,spatialReference:t.spatialReference}}const P=(0,r.B)(t=>({maxDeviation:0,maxSegmentLength:100*t,maxSegmentsPerCurve:12e3,minSegmentsPerCurve:1}));async function k(t,e,r){const o=new Set(e);return await async function(t,e,r){let n=null;for(const o of t)if(o&&(0,l.Ed)(o)&&null==o.spatialReference.xyTolerance&&(0,l.V8)(o,e)){const t=o.spatialReference;if(!t)throw new s.A("geometry:missing-spatial-reference","Geometry contains an unsupported curve type, but it cannot be densified because it has no spatial reference.");const e=T(t);if(r.has(e))o.spatialReference=r.get(e);else{n||(n=await Promise.all([i.e(3661),i.e(1878),i.e(8885),i.e(5756),i.e(3299),i.e(1550)]).then(i.bind(i,78125)));const a=n.fromSpatialReference(t),l=a?.getTolerance();if(null==l)throw new s.A("geometry:missing-tolerance","Geometry contains an unsupported curve type, but it cannot be densified because the tolerance of its spatial reference is unknown. Set the `xyTolerance` property of the spatial reference.");const h=o.spatialReference.clone();h.read({xyTolerance:l}),o.spatialReference=h,r.set(e,h)}}}(t,o,r),t.map(t=>{if(!t||!(0,l.Ed)(t))return t;const i=t.spatialReference.xyTolerance;if(null==i)return t;const s=P(i);return(0,n.rS)(function(t,e,i){if(!(0,l.Ed)(t))return t;const s=new Set(e),r=d(i),n=(0,l.FD)(t),o=[];let a=!1;for(const t of n){const e=[];for(let i=0;i<t.length-1;i++){const n=i+1,o=[...(0,l.yP)(t[i])];0===i&&e.push(o);const h=t[n];(0,l.Xq)(h)?e.push([...h]):(0,l.n1)(h)&&!s.has("cubic-bezier")?x(e,o,h,r):(0,l.aO)(h)&&!s.has("circular-arc")?S(e,o,h,r):(0,l.DA)(h)&&!s.has("elliptic-arc")?M(e,o,h,r):(0,l.wY)(h)&&!s.has("elliptic-arc")?w(e,o,h,r):(e.push((0,l.tk)(h)),a=!0)}o.push(e)}return"curvePaths"in t?{...void 0!==t.hasZ?{hasZ:t.hasZ}:{},...void 0!==t.hasM?{hasM:t.hasM}:{},spatialReference:t.spatialReference,...a?{curvePaths:o}:{paths:o}}:{hasZ:t.hasZ,hasM:t.hasM,spatialReference:t.spatialReference,...a?{curveRings:o}:{rings:o}}}(t,e,s))})}function T(t){if(null!=t.wkid)return`${t.wkid}`;if(null!=t.wkt)return t.wkt;const e="toJSON"in t&&"function"==typeof t.toJSON?t.toJSON():t;return JSON.stringify(e)}},92722(t,e,i){i.d(e,{A:()=>r});var s=i(69397);class r{constructor(t=[],e=[],i=!1,s=!1){this.lengths=t??[],this.coords=e??[],this.hasZ=i,this.hasM=s}static fromJSON({lengths:t,coords:e,hasZ:i,hasM:s}){return new r(t,e,i||!1,s||!1)}static fromRect([t,e,i,s]){const n=i-t,o=s-e;return new r([5],[t,e,n,0,0,o,-n,0,0,-o])}get isPoint(){return 0===this.lengths.length&&this.coords.length>=2}get maxLength(){return Math.max(...this.lengths)}get size(){return this.isPoint?1:this.lengths.reduce((t,e)=>t+e,0)}get usedMemory(){return 64+(0,s.Qf)(this.lengths,this.coords)}get stride(){return 2+(this.hasZ?1:0)+(this.hasM?1:0)}area(){if(this.isPoint)return 0;let t=0,e=0;for(const i of this.lengths){if(i<3)continue;const{stride:s}=this;let r=this.coords[s*e],n=this.coords[s*e+1];for(let o=1;o<i;o+=1){const i=s*(e+o),a=this.coords[i],l=this.coords[i+1];t+=-.5*(a-r)*(l+n),r=a,n=l}e+=i}return t}forEachVertex(t){let e=0;if(this.isPoint)return t(this.coords[0],this.coords[1]);const{stride:i}=this;for(const s of this.lengths){for(let r=0;r<s;r++){const s=i*(e+r);t(this.coords[s],this.coords[s+1])}e+=s}}deltaDecode(){const t=this.clone(),{coords:e,lengths:i}=t;let s=0;const{stride:r}=this;for(const t of i){for(let i=1;i<t;i++){const t=r*(s+i);e[t]+=e[t-r],e[t+1]+=e[t+1-r]}s+=t}return t}clone(t){if(this.isPoint)return new r([],Array.from(this.coords.slice(0,this.stride)),this.hasZ,this.hasM);const e=Array.from(this.lengths),{stride:i,size:s}=this,n=this.coords.slice(0,s*i);return t?(t.set(n),new r(e,t,this.hasZ,this.hasM)):new r(e,Array.from(n),this.hasZ,this.hasM)}justXY(){const{stride:t,size:e}=this;if(2===t)return this;const i=new Array(e*t);for(let e=0,s=0;e<i.length;e+=t)i[s++]=this.coords[e],i[s++]=this.coords[e+1];return new r(this.lengths,i,!1,!1)}}},28303(t,e,i){i.r(e),i.d(e,{CIMSymbolHelper:()=>ft,CIMSymbolInflatedSizeHelper:()=>ut,capTypeToEnum:()=>dt,forEachSymbolLayer:()=>mt,slsDashToTemplateArray:()=>wt,symbolToCIM:()=>lt});const s=new(i(32488).A);function r(t,e=!0){if(!s.hasBidiChar(t))return[t,!1,{...s}];let i;i="rtl"===s.checkContextual(t)?"IDNNN":"ICNNN";const r=e?"VLYSN":"VLYNN";return[s.bidiTransform(t,i,r),!0,{...s}]}var n=i(4718),o=i(53966),a=i(87811),l=i(90629),h=i(19419),c=i(537),u=i(52006),f=i(31411),m=i(11831),d=i(35833),y=i(98939),p=i(57582),g=(i(44208),i(34727)),_=i(93687),x=i(36745),S=i(12359),M=(i(12176),i(60408));class w{applyColorSubstitution(t,e){if(!e)return t;this._rasterizationCanvas||(this._rasterizationCanvas=document.createElement("canvas"));const{width:i,height:s}=t,r=this._rasterizationCanvas,n=r.getContext("2d",{willReadFrequently:!0});t!==r&&(r.width=i,r.height=s,n.drawImage(t,0,0,i,s));const o=n.getImageData(0,0,i,s).data;if(e)for(const t of e)if(t&&t.oldColor&&4===t.oldColor.length&&t.newColor&&4===t.newColor.length){const[e,i,s,r]=t.oldColor,[n,a,l,h]=t.newColor;if(e===n&&i===a&&s===l&&r===h)continue;for(let t=0;t<o.length;t+=4)e===o[t]&&i===o[t+1]&&s===o[t+2]&&r===o[t+3]&&(o[t]=n,o[t+1]=a,o[t+2]=l,o[t+3]=h)}const a=new ImageData(o,i,s);return n.putImageData(a,0,0),r}tintImageData(t,e){if(!e||e.length<4)return t;this._rasterizationCanvas||(this._rasterizationCanvas=document.createElement("canvas"));const{width:i,height:s}=t,r=this._rasterizationCanvas,n=r.getContext("2d",{willReadFrequently:!0});t!==r&&(r.width=i,r.height=s,n.drawImage(t,0,0,i,s));const o=n.getImageData(0,0,i,s),a=new Uint8Array(o.data),l=[e[0]/255,e[1]/255,e[2]/255,e[3]/255];for(let t=0;t<a.length;t+=4)a[t]*=l[0],a[t+1]*=l[1],a[t+2]*=l[2],a[t+3]*=l[3];const h=new ImageData(new Uint8ClampedArray(a.buffer),i,s);return n.putImageData(h,0,0),r}}var b=i(22686),C=i(28076);function P(t){const e=t.getFrame(0);if(e instanceof HTMLImageElement||e instanceof HTMLCanvasElement)return e;const i=document.createElement("canvas");i.width=t.width,i.height=t.height;const s=i.getContext("2d");return e instanceof ImageData?s.putImageData(e,0,0):s.drawImage(e,0,0),i}function k(t,e=0){if(0===e)return t;const i=Math.cos(e),s=Math.sin(e),[r,n]=t;return[r*i+n*-s,r*s+n*i]}function T(t,e=0){let i=0;for(let s=0;s<4;s++)i+=t[e+s]*R[s];return i}const R=[1/256,1/65536,1/16777216,1/4294967296];T(new Uint8ClampedArray([255,255,255,255])),T(new Uint8ClampedArray([255,255,255,0])),i(35521);const I=()=>o.A.getLogger("esri.symbols.cim.rasterizingUtils");let L;function v(t,e){const{colorRamp:i,gradientType:s}=e,r=z(i),n="CIMFixedColorRamp"===i.type;if("Continuous"===s&&!n)return A(t,r);const o=e.interval??C.D.CIMGradientFill.interval;if(n)return A(t,function(t,e){const i=[],s=(t.length-1)/(e-1);for(let r=0;r<e;r++){const n=t[Math.round(r*s)].color;i.push({offset:r/e,color:n}),i.push({offset:(r+1)/e,color:n})}return i}(r,o));const a=[];L??=document.createElement("canvas"),function(t,e,i,s,r){const n=i+2*r;t.width=n,t.height=s;const o=(r+1)/n,a=t.getContext("2d",{willReadFrequently:!0});if(e.length>0){const t=a.createLinearGradient(0,0,n,s);A(t,e,o),a.fillStyle=t}else a.fillStyle="rgba(128, 128, 128, 1)";a.fillRect(0,0,n,s)}(L,r,o,1,0);const l=L.getContext("2d").getImageData(0,0,o,1).data;for(let t=0,e=0;t<o;t++,e=4*t){const i=[l[e+0],l[e+1],l[e+2],l[e+3]];a.push({offset:t/o,color:i}),a.push({offset:(t+1)/o,color:i})}return A(t,a)}function z(t){const e=[];switch(t.type){case"CIMPolarContinuousColorRamp":case"CIMLinearContinuousColorRamp":{"CIMPolarContinuousColorRamp"===t.type&&I().warnOnce("CIMPolarContinuousColorRamp is currently unsupported. Falling back to CIMLinearContinuousColorRamp.");const i=t;e.push({offset:0,color:[i.fromColor[0],i.fromColor[1],i.fromColor[2],i.fromColor[3]/255]}),e.push({offset:1,color:[i.toColor[0],i.toColor[1],i.toColor[2],i.toColor[3]/255]});break}case"CIMFixedColorRamp":{const i=t,s=1/(i.colors.length-1);let r=0;for(const t of i.colors)e.push({offset:r,color:[t[0],t[1],t[2],t[3]/255]}),r+=s;break}case"CIMMultipartColorRamp":{const i=t,s=i.weights.reduce((t,e)=>t+e,0);let r=0;for(let t=0;t<i.colorRamps.length;t++){const n=i.colorRamps[t],o=i.weights[t],a=z(n);for(const t of a)e.push({offset:(r+t.offset*o)/s,color:t.color});r+=o}break}default:I().error(`Color ramp "${t.type}" currently unsupported.`)}return e}function A(t,e,i=0){for(const{offset:s,color:r}of e)t.addColorStop(Math.min(Math.max(s,i),1-i),`rgba(${r[0]}, ${r[1]}, ${r[2]}, ${r[3]})`)}class F{constructor(t=0,e=0,i=0,s=0){this.x=t,this.y=e,this.width=i,this.height=s}static fromExtent(t){return new F(t.xmin,-t.ymax,t.xmax-t.xmin,t.ymax-t.ymin)}get isEmpty(){return this.width<=0||this.height<=0}union(t){this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.width=Math.max(this.width,t.width),this.height=Math.max(this.height,t.height)}}var E=i(69754);function D(t){return`rgb(${t.slice(0,3).toString()})`}function U(t){return`rgba(${t.slice(0,3).toString()},${t[3]})`}i(5760);class B{constructor(t){t&&(this._textRasterizationCanvas=t)}rasterizeRichText(t,e){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const i=this._textRasterizationCanvas,s=i.getContext("2d",{willReadFrequently:!0}),r=this._layoutRichTextRuns(s,t,e);this._parameters=e,this._lineHeight=Math.max(...r.map(t=>t.height),this._measureLineHeight(e));const{decoration:n,weight:o}=e.font;this._lineThroughWidthOffset=n&&"line-through"===n?.1*this._lineHeight:0;const a=null!=e.backgroundColor||null!=e.borderLine,l=a?8:0,h=Math.max(...r.map(t=>t.width),0)+2*l,c=r.reduce((t,e)=>t+e.height,0)+2*l;if(i.width=h+2*this._lineThroughWidthOffset,i.height=c,0===i.width||0===i.height)return i.width=i.height=1,{size:[0,0],image:new Uint32Array(0),sdf:!1,simplePattern:!1,anchorX:0,anchorY:0,canvas:i};this._renderedWidth=h,this._renderedHeight=c,this._renderedOutlineSize=(e.outline.size||0)*e.pixelRatio,this._renderedHaloSize=(e.halo.size||0)*e.pixelRatio,this._lineThroughWidthOffset*=e.pixelRatio;const u=(e.outline&&e.outline.color)??[0,0,0,0],f=e.color??[0,0,0,0],m=e.halo&&e.halo.color?e.halo.color:[0,0,0,0];this._fillStyle=U(f),this._outlineStyle=U(u),this._haloStyle=D(m);const d=this._renderedOutlineSize,y=this._renderedHaloSize;s.save(),s.clearRect(0,0,i.width,i.height);const p=l*e.pixelRatio,g=O("left",this._renderedWidth-2*p,y+d)+p,_=y+d+p;let x=this._lineThroughWidthOffset,S=0;if(a){s.save();const t=e.backgroundColor??[0,0,0,0],r=e.borderLine?.color??[0,0,0,0],n=2*(e.borderLine?.size??0);s.fillStyle=U(t),s.strokeStyle=U(r),s.lineWidth=n,s.fillRect(0,0,i.width,i.height),s.strokeRect(0,0,i.width,i.height),s.restore()}S+=_,x+=g,y>0&&this._renderRichTextOutline(s,r,x,S,e,this._renderedHaloSize+this._renderedOutlineSize),d>0&&this._renderRichTextOutline(s,r,x,S,e,this._renderedOutlineSize);for(const t of r){let i=x;"center"===e.horizontalAlignment?i+=(this._renderedWidth-2*p-t.width)/2:"right"===e.horizontalAlignment&&(i+=this._renderedWidth-2*p-t.width-y-d);let r=i;for(const e of t.segments)H(s,e.parameters,"left"),y>0&&(s.globalCompositeOperation="destination-out",s.fillStyle="rgb(0, 0, 0)",s.fillText(e.text,r,S),s.globalCompositeOperation="source-over"),s.fillStyle=U(e.parameters.color??f),s.fillText(e.text,r,S),r+=e.width;if(n&&"none"!==n){const e=this._renderedWidth;this._renderedWidth=t.width,s.textAlign="left",this._renderDecoration(s,i,S,n,o),this._renderedWidth=e}S+=t.height}s.restore();const M=this._renderedWidth+2*this._lineThroughWidthOffset,w=this._renderedHeight,b=s.getImageData(0,0,M,w),C=new Uint8Array(b.data);if(e.premultiplyColors){let t;for(let e=0;e<C.length;e+=4)t=C[e+3]/255,C[e]=C[e]*t,C[e+1]=C[e+1]*t,C[e+2]=C[e+2]*t}let P,k;switch(e.horizontalAlignment){case"left":P=-.5;break;case"right":P=.5;break;default:P=0}switch(e.verticalAlignment){case"bottom":k=-.5;break;case"top":k=.5;break;case"baseline":k=-1/6;break;default:k=0}return{size:[M,w],image:new Uint32Array(C.buffer),sdf:!1,simplePattern:!1,anchorX:P,anchorY:k,canvas:i}}rasterizeText(t,e){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const i=this._textRasterizationCanvas,s=i.getContext("2d",{willReadFrequently:!0});H(s,e),this._parameters=e,this._textLines=t.split(/\r?\n/),this._lineHeight=this._computeLineHeight();const{decoration:r,weight:n}=e.font;this._lineThroughWidthOffset=r&&"line-through"===r?.1*this._lineHeight:0;const o=null!=e.backgroundColor||null!=e.borderLine,a=o?8:0,l=this._computeTextWidth(s,e)+2*a,h=this._lineHeight*this._textLines.length+2*a;if(i.width=l+2*this._lineThroughWidthOffset,i.height=h,0===i.width||0===i.height)return i.width=i.height=1,{size:[0,0],image:new Uint32Array(0),sdf:!1,simplePattern:!1,anchorX:0,anchorY:0,canvas:i};this._renderedLineHeight=Math.round(this._lineHeight),this._renderedOutlineSize=(e.outline.size||0)*e.pixelRatio,this._renderedHaloSize=(e.halo.size||0)*e.pixelRatio,this._renderedWidth=l,this._renderedHeight=h,this._lineThroughWidthOffset*=e.pixelRatio;const c=(e.outline&&e.outline.color)??[0,0,0,0],u=e.color??[0,0,0,0],f=e.halo&&e.halo.color?e.halo.color:[0,0,0,0];this._fillStyle=U(u),this._outlineStyle=U(c),this._haloStyle=D(f);const m=this._renderedLineHeight,d=this._renderedOutlineSize,y=this._renderedHaloSize;s.save(),s.clearRect(0,0,i.width,i.height),H(s,e);const p=a*e.pixelRatio,g=O(s.textAlign,this._renderedWidth-2*p,this._renderedHaloSize+this._renderedOutlineSize)+p,_=y+d+p,x=y>0;let S=this._lineThroughWidthOffset,M=0;if(o){s.save();const t=e.backgroundColor??[0,0,0,0],r=e.borderLine?.color??[0,0,0,0],n=2*(e.borderLine?.size??0);s.fillStyle=U(t),s.strokeStyle=U(r),s.lineWidth=n,s.fillRect(0,0,i.width,i.height),s.strokeRect(0,0,i.width,i.height),s.restore()}x&&this._renderHalo(s,g,_,S,M,e),d>0&&this._renderOutline(s,g,_,S,M,e),M+=_,S+=g;for(const t of this._textLines)x?(s.globalCompositeOperation="destination-out",s.fillStyle="rgb(0, 0, 0)",s.fillText(t,S,M),s.globalCompositeOperation="source-over",s.fillStyle=this._fillStyle,s.fillText(t,S,M)):(s.fillStyle=this._fillStyle,s.fillText(t,S,M)),r&&"none"!==r&&this._renderDecoration(s,S,M,r,n),M+=m;s.restore();const w=this._renderedWidth+2*this._lineThroughWidthOffset,b=this._renderedHeight,C=s.getImageData(0,0,w,b),P=new Uint8Array(C.data);if(e.premultiplyColors){let t;for(let e=0;e<P.length;e+=4)t=P[e+3]/255,P[e]=P[e]*t,P[e+1]=P[e+1]*t,P[e+2]=P[e+2]*t}let k,T;switch(e.horizontalAlignment){case"left":k=-.5;break;case"right":k=.5;break;default:k=0}switch(e.verticalAlignment){case"bottom":T=-.5;break;case"top":T=.5;break;case"baseline":T=-1/6;break;default:T=0}return{size:[w,b],image:new Uint32Array(P.buffer),sdf:!1,simplePattern:!1,anchorX:k,anchorY:T,canvas:i}}_renderHalo(t,e,i,s,r,n){const o=this._renderedWidth,a=this._renderedHeight;this._outlineRasterizationCanvas||(this._outlineRasterizationCanvas=document.createElement("canvas")),this._outlineRasterizationCanvas.width=o,this._outlineRasterizationCanvas.height=a;const l=this._outlineRasterizationCanvas,h=l.getContext("2d");h.clearRect(0,0,o,a),H(h,n);const{decoration:c,weight:u}=n.font;h.fillStyle=this._haloStyle,h.strokeStyle=this._haloStyle,h.lineJoin="round",this._renderOutlineNative(h,e,i,c,u,this._renderedHaloSize+this._renderedOutlineSize),t.globalAlpha=this._parameters.halo.color[3],t.drawImage(l,0,0,o,a,s,r,o,a),t.globalAlpha=1}_renderOutline(t,e,i,s,r,n){const o=this._renderedWidth,a=this._renderedHeight;this._outlineRasterizationCanvas||(this._outlineRasterizationCanvas=document.createElement("canvas")),this._outlineRasterizationCanvas.width=o,this._outlineRasterizationCanvas.height=a;const l=this._outlineRasterizationCanvas,h=l.getContext("2d");h.clearRect(0,0,o,a),H(h,n);const{decoration:c,weight:u}=n.font;h.fillStyle=this._outlineStyle,h.strokeStyle=this._outlineStyle,h.lineJoin="round",this._renderOutlineNative(h,e,i,c,u,this._renderedOutlineSize),t.globalAlpha=this._parameters.outline.color[3],t.drawImage(l,0,0,o,a,s,r,o,a),t.globalAlpha=1}_renderOutlineNative(t,e,i,s,r,n){const o=this._renderedLineHeight;for(const a of this._textLines){const l=2*n,h=5,c=.1;for(let n=0;n<h;n++){const o=(1-(h-1)*c+n*c)*l;t.lineWidth=o,t.strokeText(a,e,i),s&&"none"!==s&&this._renderDecoration(t,e,i,s,r,o)}i+=o}}computeTextSize(t,e){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const i=this._textRasterizationCanvas,s=i.getContext("2d");H(s,e),this._parameters=e,this._textLines=t.split(/\r?\n/),this._lineHeight=this._computeLineHeight();const r=this._computeTextWidth(s,e),n=this._lineHeight*this._textLines.length;return i.width=r,i.height=n,[r*e.pixelRatio,n*e.pixelRatio]}computeRichTextSize(t,e){this._textRasterizationCanvas||(this._textRasterizationCanvas=document.createElement("canvas"));const i=this._textRasterizationCanvas.getContext("2d"),s=this._layoutRichTextRuns(i,t,e),r=Math.max(...s.map(t=>t.width),0),n=s.reduce((t,e)=>t+e.height,0);return[r*e.pixelRatio,n*e.pixelRatio]}_renderRichTextOutline(t,e,i,s,r,n){const o=this._renderedWidth,a=this._renderedHeight;this._outlineRasterizationCanvas||(this._outlineRasterizationCanvas=document.createElement("canvas")),this._outlineRasterizationCanvas.width=o,this._outlineRasterizationCanvas.height=a;const l=this._outlineRasterizationCanvas,h=l.getContext("2d");h.clearRect(0,0,o,a),h.fillStyle=n===this._renderedOutlineSize?this._outlineStyle:this._haloStyle,h.strokeStyle=h.fillStyle,h.lineJoin="round";let c=s;for(const t of e){let e=i;"center"===r.horizontalAlignment?e+=(this._renderedWidth-t.width)/2:"right"===r.horizontalAlignment&&(e+=this._renderedWidth-t.width-this._renderedHaloSize-this._renderedOutlineSize);let s=e;for(const e of t.segments){H(h,e.parameters,"left");const t=2*n,i=5,r=.1;for(let n=0;n<i;n++){const o=1-(i-1)*r+n*r;h.lineWidth=o*t,h.strokeText(e.text,s,c)}s+=e.width}if(r.font.decoration&&"none"!==r.font.decoration){const i=this._renderedWidth;this._renderedWidth=t.width,h.textAlign="left",this._renderDecoration(h,e,c,r.font.decoration,r.font.weight,2*n),this._renderedWidth=i}c+=t.height}n===this._renderedOutlineSize?t.globalAlpha=this._parameters.outline.color[3]:t.globalAlpha=this._parameters.halo.color[3],t.drawImage(l,0,0,o,a,this._lineThroughWidthOffset,0,o,a),t.globalAlpha=1}_layoutRichTextRuns(t,e,i){const s=[{segments:[],width:0,height:this._measureLineHeight(i)}];for(const r of e){const e=r.text.split(/\r?\n/),n=N(i,r);for(let r=0;r<e.length;r++){const o=e[r],a=s[s.length-1];if(o.length>0){const e=this._measureTextWidth(t,o,n);a.segments.push({text:o,width:e,parameters:n}),a.width+=e,a.height=Math.max(a.height,this._measureLineHeight(n))}r<e.length-1&&s.push({segments:[],width:0,height:this._measureLineHeight(i)})}}return s}_measureTextWidth(t,e,i){const s=this._parameters,r=this._textLines;this._parameters=i,this._textLines=[e],H(t,i,"left");const n=this._computeTextWidth(t,i);return this._parameters=s,this._textLines=r,n}_measureLineHeight(t){const e=this._parameters;this._parameters=t;const i=this._computeLineHeight();return this._parameters=e,i}_computeTextWidth(t,e){let i=0;for(const e of this._textLines)i=Math.max(i,t.measureText(e).width);const s=e.font;return("italic"===s.style||"oblique"===s.style||"string"==typeof s.weight&&("bold"===s.weight||"bolder"===s.weight)||"number"==typeof s.weight&&s.weight>600)&&(i+=.3*t.measureText("w").width),i+=2*(0,l.Lz)(this._parameters.halo.size),Math.round(i)}_computeLineHeightBase(){return 1.275*this._parameters.size}_computeLineHeight(){let t=this._computeLineHeightBase();const e=this._parameters.font.decoration;return e&&"underline"===e&&(t*=1.3),Math.round(t+2*(0,l.Lz)(this._parameters.halo.size))}_renderDecoration(t,e,i,s,r,n){let o=.9*this._lineHeight;const a="bold"===r?.06:"bolder"===r?.09:.04;switch(t.textAlign){case"center":e-=this._renderedWidth/2;break;case"right":e-=this._renderedWidth}const l=t.textBaseline;if("underline"===s)switch(o=.9*this._computeLineHeightBase(),l){case"top":i+=o;break;case"middle":i+=o/2}else if("line-through"===s)switch(l){case"top":i+=o/1.5;break;case"middle":i+=o/3}const h=n?1.5*n:Math.ceil(o*a);t.save(),t.beginPath(),t.strokeStyle=t.fillStyle,t.lineWidth=h,t.moveTo(e-this._lineThroughWidthOffset,i),t.lineTo(e+this._renderedWidth+2*this._lineThroughWidthOffset,i),t.stroke(),t.restore()}}function H(t,e,i){const s=Math.max(e.size,.5),r=e.font,n=`${r.style} ${r.weight} ${(0,l.Lz)(s).toFixed(1)}px ${r.family}, sans-serif`;t.font=n,t.textBaseline="top";let o=i??"left";if(!i)switch(e.horizontalAlignment){case"left":default:o="left";break;case"right":o="right";break;case"center":o="center"}t.textAlign=o}function N(t,e){return{...t,color:e.color??t.color,font:{...t.font,family:e.font.family??t.font.family,style:e.font.style??t.font.style,weight:e.font.weight??t.font.weight},size:e.fontSize}}function O(t,e,i){return"center"===t?.5*e:"right"===t?e-i:i}var W=i(93397),$=i(75434),G=i(69221);const V=Math.PI/180,X=()=>o.A.getLogger("esri.symbols.cim.CIMSymbolDrawHelper");class q{constructor(t){this._t=t}static createIdentity(){return new q([1,0,0,0,1,0])}clone(){const t=this._t;return new q(t.slice())}transform(t){const e=this._t;return[e[0]*t[0]+e[1]*t[1]+e[2],e[3]*t[0]+e[4]*t[1]+e[5]]}static createScale(t,e){return new q([t,0,0,0,e,0])}scale(t,e){const i=this._t;return i[0]*=t,i[1]*=t,i[2]*=t,i[3]*=e,i[4]*=e,i[5]*=e,this}scaleRatio(){return Math.sqrt(this._t[0]*this._t[0]+this._t[1]*this._t[1])}static createTranslate(t,e){return new q([0,0,t,0,0,e])}translate(t,e){const i=this._t;return i[2]+=t,i[5]+=e,this}static createRotate(t){const e=Math.cos(t),i=Math.sin(t);return new q([e,-i,0,i,e,0])}rotate(t){return q.multiply(this,q.createRotate(t),this)}angle(){const t=this._t[0],e=this._t[3],i=Math.sqrt(t*t+e*e);return[t/i,e/i]}static multiply(t,e,i){const s=t._t,r=e._t,n=s[0]*r[0]+s[3]*r[1],o=s[1]*r[0]+s[4]*r[1],a=s[2]*r[0]+s[5]*r[1]+r[2],l=s[0]*r[3]+s[3]*r[4],h=s[1]*r[3]+s[4]*r[4],c=s[2]*r[3]+s[5]*r[4]+r[5],u=i._t;return u[0]=n,u[1]=o,u[2]=a,u[3]=l,u[4]=h,u[5]=c,i}invert(){const t=this._t;let e=t[0]*t[4]-t[1]*t[3];if(0===e)return new q([0,0,0,0,0,0]);e=1/e;const i=(t[1]*t[5]-t[2]*t[4])*e,s=(t[2]*t[3]-t[0]*t[5])*e,r=t[4]*e,n=-t[1]*e,o=-t[3]*e,a=t[0]*e;return new q([r,n,i,o,a,s])}}class Y{constructor(t,e){this._resourceManager=t,this._transfos=[],this._sizeTransfos=[],this._textScaling=[],this._geomUnitsPerPoint=1,this._placementPool=new _.A(()=>new y.W,void 0,void 0,100),this._earlyReturn=!1,this._mapRotation=0,this._transfos.push(e||q.createIdentity()),this._sizeTransfos.push(e?e.scaleRatio():1),this._textScaling.push(1)}setTransform(t,e){this._transfos=[t||q.createIdentity()],this._sizeTransfos=[e||(t?t.scaleRatio():1)],this._textScaling=[1]}setGeomUnitsPerPoint(t){this._geomUnitsPerPoint=t}transformPt(t){return this._transfos[this._transfos.length-1].transform(t)}transformSize(t){return t*this._sizeTransfos[this._sizeTransfos.length-1]}scaleText(t){return t*this._textScaling[this._textScaling.length-1]}reverseTransformPt(t){return this._transfos[this._transfos.length-1].invert().transform(t)}reverseTransformSize(t){return t/this._sizeTransfos[this._sizeTransfos.length-1]}reverseTransformScalar(t){return t/this._transfos[this._transfos.length-1].scaleRatio()}reverseScaleText(t){return t/this._textScaling[this._textScaling.length-1]}getTransformAngle(){return this._transfos[this._transfos.length-1].angle()}geomUnitsPerPoint(){return this.isEmbedded()?1:this._geomUnitsPerPoint}prevGeomUnitsPerPoint(){return this._transfos.length>2?1:this._geomUnitsPerPoint}isEmbedded(){return this._transfos.length>1}back(){return this._transfos[this._transfos.length-1]}push(t,e=!1,i=1){const s=e?t.scaleRatio():1;q.multiply(t,this.back(),t),this._transfos.push(t),this._sizeTransfos.push(this._sizeTransfos[this._sizeTransfos.length-1]*s),this._textScaling.push(this._textScaling[this._textScaling.length-1]*i)}pop(){this._transfos.splice(-1,1),this._sizeTransfos.splice(-1,1),this._textScaling.splice(-1,1)}drawSymbol(t,e,i){if(t)switch(t.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":this.drawMultiLayerSymbol(t,e);break;case"CIMTextSymbol":this.drawTextSymbol(t,e,i)}}drawMultiLayerSymbol(t,e){if(!t||!e)return;const i=t.symbolLayers;if(!i)return;const s=t.effects;if(s&&s.length>0){const t=this.executeEffects(s,e);if(t){let e=t.next();for(;e;)this.drawSymbolLayers(i,e.asJSON()),e=t.next()}}else this.drawSymbolLayers(i,e)}executeEffects(t,e){const i=this.geomUnitsPerPoint(),s=(0,W.ll)(t);let r=new d.kT(x.z.fromJSONCIM(e));for(const n of t){const t=(0,b.A)(n);t&&(r=t.execute(r,n,{geomUnitsPerPoint:i,tileKey:null,maxInflateSize:s,scale:null,spatialReference:e.spatialReference,preventClipping:!1}))}return r}drawSymbolLayers(t,e){let i=t.length;for(;i--;){const s=t[i];if(!s||!1===s.enable)continue;const r=s.effects;if(r&&r.length>0){const t=this.executeEffects(r,e);if(t){let e=null;for(;(e=t.next())&&(this.drawSymbolLayer(s,e.asJSON()),!this._earlyReturn););}}else this.drawSymbolLayer(s,e);if(this._earlyReturn)return}}drawSymbolLayer(t,e){switch(t.type){case"CIMSolidFill":this.drawSolidFill(e,t.color,t.path);break;case"CIMHatchFill":this.drawHatchFill(e,t);break;case"CIMPictureFill":this.drawPictureFill(e,t);break;case"CIMGradientFill":this.drawGradientFill(e,t);break;case"CIMSolidStroke":this.drawSolidStroke(e,t.color,t.width,t.capStyle,t.joinStyle,t.miterLimit,t.path);break;case"CIMPictureStroke":this.drawPictureStroke(e,t);break;case"CIMGradientStroke":this.drawGradientStroke(e,t);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":this.drawMarkerLayer(t,e)}}drawHatchFill(t,e){const i=function(t,e,i){let s=(0,W.$w)(t.separation,C.D.CIMHatchFill.separation)*i,r=(0,W.$w)(t.rotation);if(0===s)return null;s<0&&(s=-s);let n=0;const o=.5*s;for(;n>o;)n-=s;for(;n<-o;)n+=s;const a=(0,h.vt)();(0,c.Rg)(a,e),a[0]-=o,a[1]-=o,a[2]+=o,a[3]+=o;const l=[[a[0],a[1]],[a[0],a[3]],[a[2],a[3]],[a[2],a[1]]];for(;r>180;)r-=180;for(;r<0;)r+=180;const u=Math.cos(r*V),f=Math.sin(r*V),m=-s*f,d=s*u;let y,p,g,_;n=(0,W.$w)(t.offsetX)*i*f-(0,W.$w)(t.offsetY)*i*u,y=g=Number.MAX_VALUE,p=_=-Number.MAX_VALUE;for(const t of l){const e=t[0],i=t[1],s=u*e+f*i,r=-f*e+u*i;y=Math.min(y,s),g=Math.min(g,r),p=Math.max(p,s),_=Math.max(_,r)}g=Math.floor(g/s)*s;let x=u*y-f*g-m*n/s,S=f*y+u*g-d*n/s,M=u*p-f*g-m*n/s,w=f*p+u*g-d*n/s;const b=1+Math.round((_-g)/s),P=[];for(let t=0;t<b;t++)x+=m,S+=d,M+=m,w+=d,P.push([[x,S],[M,w]]);return{paths:P}}(e,t,this.geomUnitsPerPoint());i&&(this.pushClipPath(t),this.drawMultiLayerSymbol(e.lineSymbol,i),this.popClipPath())}drawPictureFill(t,e){}drawGradientFill(t,e){}drawPictureStroke(t,e){}drawGradientStroke(t,e){}drawMarkerLayer(t,e){const i=t.markerPlacement;if(i){const s=(0,b.c)(i);if(s){const r="CIMMarkerPlacementInsidePolygon"===i.type||"CIMMarkerPlacementPolygonCenter"===i.type&&i.clipAtBoundary;r&&this.pushClipPath(e);const n=s.execute(x.z.fromJSONCIM(e),i,this.geomUnitsPerPoint(),null);if(n){let e=null;for(;(e=n.next())&&(this.drawMarker(t,e),!this._earlyReturn););}r&&this.popClipPath()}}else{const i=this._placementPool.acquire();if((0,M.fT)(e))i.tx=e.x,i.ty=e.y,this.drawMarker(t,i);else if((0,M.Bi)(e)){const s=(0,S.l8)(e);s&&([i.tx,i.ty]=s,this.drawMarker(t,i))}else if((0,M.Rg)(e)){for(const s of e.paths)for(const e of s)if(i.tx=e[0],i.ty=e[1],this.drawMarker(t,i),this._earlyReturn)break}else for(const s of e.points)if(i.tx=s[0],i.ty=s[1],this.drawMarker(t,i),this._earlyReturn)break;this._placementPool.release(i)}}drawMarker(t,e){switch(t.type){case"CIMCharacterMarker":case"CIMPictureMarker":this.drawPictureMarker(t,e);break;case"CIMVectorMarker":this.drawVectorMarker(t,e)}}drawPictureMarker(t,e){if(!t)return;const i=this._resourceManager.getResource(t.url),s=(0,W.$w)(t.size,C.D.CIMPictureMarker.size);if(null==i||s<=0)return;const r=i.width,n=i.height;if(!r||!n)return;const o=r/n,a=(0,W.$w)(t.scaleX,1),l=q.createIdentity(),h=t.anchorPoint;if(h){let e=h.x,i=h.y;"Absolute"!==t.anchorPointUnits&&(e*=s*o*a,i*=s),l.translate(-e,-i)}let c=(0,W.$w)(t.rotation);t.rotateClockwise&&(c=-c),this._mapRotation&&(c+=this._mapRotation),c&&l.rotate(c*V);let u=(0,W.$w)(t.offsetX),f=(0,W.$w)(t.offsetY);if(u||f){if(this._mapRotation){const t=V*this._mapRotation,e=Math.cos(t),i=Math.sin(t),s=u*i+f*e;u=u*e-f*i,f=s}l.translate(u,f)}const m=this.geomUnitsPerPoint();1!==m&&l.scale(m,m);const d=e.getAngle();d&&l.rotate(d),l.translate(e.tx,e.ty),this.push(l),this.drawImage(t,s),this.pop()}drawVectorMarker(t,e){if(!t)return;const i=t.markerGraphics;if(!i)return;const s=(0,W.$w)(t.size,C.D.CIMVectorMarker.size),r=t.frame,n=r?r.ymax-r.ymin:0,o=s&&n?s/n:1,a=q.createIdentity();r&&a.translate(.5*-(r.xmax+r.xmin),.5*-(r.ymax+r.ymin));const l=t.anchorPoint;if(l){let e=l.x,i=l.y;"Absolute"!==t.anchorPointUnits?r&&(e*=r.xmax-r.xmin,i*=r.ymax-r.ymin):(e/=o,i/=o),a.translate(-e,-i)}1!==o&&a.scale(o,o);let h=(0,W.$w)(t.rotation);t.rotateClockwise&&(h=-h),this._mapRotation&&(h+=this._mapRotation),h&&a.rotate(h*V);let c=(0,W.$w)(t.offsetX),u=(0,W.$w)(t.offsetY);if(c||u){if(this._mapRotation){const t=V*this._mapRotation,e=Math.cos(t),i=Math.sin(t),s=c*i+u*e;c=c*e-u*i,u=s}a.translate(c,u)}const f=this.geomUnitsPerPoint();1!==f&&a.scale(f,f);const m=e.getAngle();m&&a.rotate(m),a.translate(e.tx,e.ty);const d=t.scaleSymbolsProportionally?1:o;this.push(a,t.scaleSymbolsProportionally,d);for(const t of i){t?.symbol&&t.geometry||X().error("Invalid marker graphic",t);let e=t.textString;if("number"==typeof e&&(e=e.toString()),this.drawSymbol(t.symbol,t.geometry,e),this._earlyReturn)break}this.pop()}drawTextSymbol(t,e,i){if(!t)return;if(!(0,M.fT)(e))return;if((0,W.$w)(t.height,C.D.CIMTextSymbol.height)<=0)return;const s=q.createIdentity();let r=(0,W.$w)(t.angle);r=-r,r&&s.rotate(r*V);const n=(0,W.$w)(t.offsetX),o=(0,W.$w)(t.offsetY);(n||o)&&s.translate(n,o);const a=this.geomUnitsPerPoint();1!==a&&s.scale(a,a),s.translate(e.x,e.y),this.push(s),this.drawText(t,i),this.pop()}}class Z extends Y{constructor(t,e){super(t,e),this.reset()}reset(){this._xmin=this._ymin=1/0,this._xmax=this._ymax=-1/0,this._clipCount=0}envelope(){return new F(this._xmin,this._ymin,this._xmax-this._xmin,this._ymax-this._ymin)}bounds(){return(0,h.fA)(this._xmin,this._ymin,this._xmax,this._ymax)}drawSolidFill(t){if(t&&!(this._clipCount>0))if((0,M.Bi)(t))this._processPath(t.rings,0);else if((0,M.Rg)(t))this._processPath(t.paths,0);else if((0,M.ZC)(t)){const e=K(t);e&&this._processPath(e.rings,0)}else console.error("drawSolidFill Unexpected geometry type!")}drawSolidStroke(t,e,i){if(!t||this._clipCount>0||null==i||i<=0)return;const s=Math.max(.5*this.transformSize((0,W.$w)(i,C.D.CIMSolidStroke.width)),.25);if((0,M.Bi)(t))this._processPath(t.rings,s);else if((0,M.Rg)(t))this._processPath(t.paths,s);else if((0,M.ZC)(t)){const e=K(t);e&&this._processPath(e.rings,s)}else console.error("drawSolidStroke unexpected geometry type!")}drawMarkerLayer(t,e){(0,M.Bi)(e)&&t.markerPlacement&&("CIMMarkerPlacementInsidePolygon"===t.markerPlacement.type||"CIMMarkerPlacementPolygonCenter"===t.markerPlacement.type&&t.markerPlacement.clipAtBoundary)?this._processPath(e.rings,0):super.drawMarkerLayer(t,e)}drawHatchFill(t,e){this.drawSolidFill(t)}drawPictureFill(t,e){this.drawSolidFill(t)}drawGradientFill(t,e){this.drawSolidFill(t)}drawPictureStroke(t,e){this.drawSolidStroke(t,null,e.width)}drawGradientStroke(t,e){this.drawSolidStroke(t,null,e.width)}pushClipPath(t){this.drawSolidFill(t),this._clipCount++}popClipPath(){this._clipCount--}drawImage(t,e){const{url:i}=t,s=(0,W.$w)(t.scaleX,1);let r=s*e,n=e;const o=this._resourceManager.getResource(i);if(null!=o){const t=o.height/o.width;r=s*(e?t>1?e:e/t:o.width),n=e?t>1?e*t:e:o.height}this._merge(this.transformPt([-r/2,-n/2]),0),this._merge(this.transformPt([-r/2,n/2]),0),this._merge(this.transformPt([r/2,-n/2]),0),this._merge(this.transformPt([r/2,n/2]),0)}drawText(t,e){if(!e||0===e.length)return;this._textRasterizer||(this._textRasterizer=new B);const i=Q(t),s=(0,E.Z)({textString:e,font:i.font,symbol:t,supportsRichText:(0,E.q)(e)});let[r,n]=s?this._textRasterizer.computeRichTextSize(s,i):this._textRasterizer.computeTextSize(e,i);r=(0,l.PN)(r),n=(0,l.PN)(n);const o=this.transformSize(1)*this.reverseTransformScalar(1);r*=o,n*=o;const a=t.horizontalAlignment??C.D.CIMTextSymbol.horizontalalignment,h=t.verticalAlignment??C.D.CIMTextSymbol.verticalalignment;let c=0;switch(a){case"Left":c=r/2;break;case"Right":c=-r/2}let u=0;switch(h){case"Bottom":u=n/2;break;case"Top":u=-n/2;break;case"Baseline":u=n/6}this._merge(this.transformPt([-r/2+c,-n/2+u]),0),this._merge(this.transformPt([-r/2+c,n/2+u]),0),this._merge(this.transformPt([r/2+c,-n/2+u]),0),this._merge(this.transformPt([r/2+c,n/2+u]),0)}_processPath(t,e){if(t)for(const i of t){const t=i?i.length:0;if(t>1){this._merge(this.transformPt(i[0]),e);for(let s=1;s<t;s++)this._merge(this.transformPt(i[s]),e)}}}_merge(t,e){t[0]-e<this._xmin&&(this._xmin=t[0]-e),t[0]+e>this._xmax&&(this._xmax=t[0]+e),t[1]-e<this._ymin&&(this._ymin=t[1]-e),t[1]+e>this._ymax&&(this._ymax=t[1]+e)}}class J extends Y{constructor(t,e,i,s){super(e,i),this._applyAdditionalRenderProps=s,this._colorSubstitutionHelper=new w,this._ctx=t}drawSolidFill(t,e){if(!t)return;if((0,M.Bi)(t))this._buildPath(t.rings,!0);else if((0,M.Rg)(t))this._buildPath(t.paths,!0);else if((0,M.ZC)(t))this._buildPath(K(t).rings,!0);else{if(!(0,M.U9)(t))return;console.log("CanvasDrawHelper.drawSolidFill - No implementation!")}const i=this._ctx;i.fillStyle="string"==typeof e?e:"rgba("+Math.round(e[0])+","+Math.round(e[1])+","+Math.round(e[2])+","+(e[3]??255)/255+")",i.fill("evenodd")}drawSolidStroke(t,e,i,s,r,n){if(!t||!e||0===i)return;if((0,M.Bi)(t))this._buildPath(t.rings,!0);else if((0,M.Rg)(t))this._buildPath(t.paths,!1);else{if(!(0,M.ZC)(t))return void console.log("CanvasDrawHelper.drawSolidStroke isn't implemented!");this._buildPath(K(t).rings,!0)}const o=this._ctx;o.strokeStyle="string"==typeof e?e:"rgba("+Math.round(e[0])+","+Math.round(e[1])+","+Math.round(e[2])+","+(e[3]??255)/255+")",o.lineWidth=Math.max(this.transformSize(i),.5),this._setCapStyle(s),this._setJoinStyle(r),o.miterLimit=n,o.stroke()}pushClipPath(t){if(this._ctx.save(),(0,M.Bi)(t))this._buildPath(t.rings,!0);else if((0,M.Rg)(t))this._buildPath(t.paths,!0);else{if(!(0,M.ZC)(t))return;this._buildPath(K(t).rings,!0)}this._ctx.clip("evenodd")}popClipPath(){this._ctx.restore()}drawImage(t,e){const{colorSubstitutions:i,url:s,tintColor:r}=t,n=(0,W.$w)(t.scaleX,1),o=this._resourceManager.getResource(s);if(null==o)return;let a=e*(o.width/o.height),l=e;e||(a=o.width,l=o.height);const h=(0,W.UE)(s)||"src"in o&&(0,W.UE)(o.src);let c="getFrame"in o?P(o):o;i&&(c=this._colorSubstitutionHelper.applyColorSubstitution(c,i)),this._applyAdditionalRenderProps&&!h&&r&&(c=this._colorSubstitutionHelper.tintImageData(c,r));const u=this.transformPt([0,0]),[f,m]=this.getTransformAngle(),d=this.transformSize(1),y=this._ctx;y.save(),y.setTransform({m11:n*d*f,m12:n*d*m,m21:-d*m,m22:d*f,m41:u[0],m42:u[1]}),y.drawImage(c,-a/2,-l/2,a,l),y.restore()}drawText(t,e){if(!e||0===e.length)return;this._textRasterizer||(this._textRasterizer=new B);const i=Q(t,this.transformSize((0,l.PN)(1))),s=(0,E.Z)({textString:e,font:i.font,symbol:t,supportsRichText:(0,E.q)(e)}),r=s?this._textRasterizer.rasterizeRichText(s,i):this._textRasterizer.rasterizeText(e,i);if(!r)return;const{size:n,anchorX:o,anchorY:a,canvas:h}=r,c=n[0]*(o+.5),u=n[1]*(a-.5),f=this._ctx,m=this.transformPt([0,0]),[d,y]=this.getTransformAngle();f.save(),f.setTransform({m11:1*d,m12:1*y,m21:-1*y,m22:1*d,m41:m[0]-1*c,m42:m[1]+1*u}),f.drawImage(h,0,0),f.restore()}drawPictureFill(t,e){if(!t)return;let{colorSubstitutions:i,height:s,offsetX:r,offsetY:n,rotation:o,scaleX:a,tintColor:l,url:h}=e;const c=this._resourceManager.getResource(h);if(null==c)return;if((0,M.Bi)(t))this._buildPath(t.rings,!0);else if((0,M.Rg)(t))this._buildPath(t.paths,!0);else if((0,M.ZC)(t))this._buildPath(K(t).rings,!0);else{if(!(0,M.U9)(t))return;console.log("CanvasDrawHelper.drawPictureFill - No implementation!")}const u=this._ctx,f=(0,W.UE)(h)||"src"in c&&(0,W.UE)(c.src);let m,d="getFrame"in c?P(c):c;if(i&&(d=this._colorSubstitutionHelper.applyColorSubstitution(d,i)),this._applyAdditionalRenderProps){f||l&&(d=this._colorSubstitutionHelper.tintImageData(d,l)),m=u.createPattern(d,"repeat");const t=this.transformSize(1);o||(o=0),r?r*=t:r=0,n?n*=t:n=0,s&&(s*=t);const e=s?s/c.height:1,i=a&&s?a*s/c.width:1;if(0!==o||1!==e||1!==i||0!==r||0!==n){const t=new DOMMatrix;t.rotateSelf(0,0,-o).translateSelf(r,n).scaleSelf(i,e,1),m.setTransform(t)}}else m=u.createPattern(d,"repeat");u.save(),u.fillStyle=m,u.fill("evenodd"),u.restore()}drawPictureStroke(t,e){if(!t)return;let{colorSubstitutions:i,capStyle:s,joinStyle:r,miterLimit:o,tintColor:a,url:h,width:c}=e;const u=this._resourceManager.getResource(h);if(null==u)return;let f;if((0,M.Bi)(t))f=t.rings;else if((0,M.Rg)(t))f=t.paths;else{if(!(0,M.ZC)(t))return(0,M.U9)(t)?void console.log("CanvasDrawHelper.drawPictureStroke - No implementation!"):void 0;f=K(t).rings}c||(c=u.width);const m=(0,W.UE)(h)||"src"in u&&(0,W.UE)(u.src);let d="getFrame"in u?P(u):u;i&&(d=this._colorSubstitutionHelper.applyColorSubstitution(d,i)),this._applyAdditionalRenderProps&&(m||a&&(d=this._colorSubstitutionHelper.tintImageData(d,a)));const y=Math.max(this.transformSize((0,l.Lz)(c)),.5),p=y/d.width,g=this._ctx,_=g.createPattern(d,"repeat-y");let x,S;g.save(),this._setCapStyle(s),this._setJoinStyle(r),void 0!==o&&(g.miterLimit=o),g.lineWidth=y;for(let t of f)if(t=(0,n.o8)(t),tt(t),t&&!(t.length<=1)){x=this.transformPt(t[0]);for(let e=1;e<t.length;e++){S=this.transformPt(t[e]);const i=j(x,S),s=new DOMMatrix;s.translateSelf(0,x[1]-y/2).scaleSelf(p,p,1).rotateSelf(0,0,90-i),_.setTransform(s),g.strokeStyle=_,g.beginPath(),g.moveTo(x[0],x[1]),g.lineTo(S[0],S[1]),g.stroke(),x=S}}g.restore()}drawGradientFill(t,e){if(!t)return;let i;if((0,M.Bi)(t))i=t.rings;else if((0,M.Rg)(t))i=t.paths;else{if(!(0,M.ZC)(t))return void X().error("Unable to draw gradient fill");i=K(t).rings}this._buildPath(i,!0);const{angle:s,gradientMethod:r,gradientSize:n,gradientSizeUnits:o}=e,a=C.D.CIMGradientFill,c=e.gradientType??a.gradientType,u=-(0,g.kU)(s??0),f=(0,h.Ie)();for(const t of i){const e=t?t.length:0;if(e>1)for(let i=0;i<e;i++){let e=this.transformPt(t[i]);"Linear"!==r&&"Rectangular"!==r||(e=k(e,-u)),(0,h.tK)(f,e)}}const[m,d,y,p]=f,_=this._ctx;switch(_.save(),r){case"Buffered":X().error(`Gradient method "${r}" currently unsupported.`);break;case"Linear":{const t=(d+p)/2,i="Absolute"===o?this.transformSize((0,l.Lz)(n)):(0,W.yX)(n,a.gradientSize)*(y-m),[s,r]="Discrete"===c?[y,y-i]:[m+i,m],h=k([s,t],u),f=k([r,t],u),g=_.createLinearGradient(h[0],h[1],f[0],f[1]);v(g,e),_.fillStyle=g,_.fill("evenodd");break}case"Circular":{const t=(0,h.gX)(f),i=(0,h.ib)(f)/2,s="Absolute"===o?this.transformSize((0,l.Lz)(n)):(0,W.yX)(n,a.gradientSize)*i,[r,u]="Discrete"===c?[i,i-s]:[s,0],m=_.createRadialGradient(t[0],t[1],r,t[0],t[1],u);v(m,e),_.fillStyle=m,_.fill("evenodd");break}case"Rectangular":{const i=(0,h.gX)(f),s=i[0],r=i[1],g=k(i,u),x=(i,s,r,n,o,a,l,h)=>{_.save(),this.pushClipPath(t);const c=k([o,a],u),f=k([l,h],u);_.beginPath(),_.moveTo(g[0],g[1]),_.lineTo(c[0],c[1]),_.lineTo(f[0],f[1]),_.lineTo(g[0],g[1]),_.clip();const m=k([i,s],u),d=k([r,n],u),y=_.createLinearGradient(m[0],m[1],d[0],d[1]);v(y,e),_.fillStyle=y,_.fill("evenodd"),_.restore()};let S="Absolute"===o?this.transformSize((0,l.Lz)(n)):(0,W.yX)(n,a.gradientSize)*((0,h.VL)(f)/2),[M,w]="Discrete"===c?[y,y-S]:[s+S,s];x(M,r,w,r,y,d,y,p),[M,w]="Discrete"===c?[m,m+S]:[s-S,s],x(M,r,w,r,m,p,m,d),S="Absolute"===o?this.transformSize((0,l.Lz)(n)):(0,W.yX)(n,a.gradientSize)*((0,h.uJ)(f)/2);let[b,C]="Discrete"===c?[p,p-S]:[r+S,r];x(s,b,s,C,y,p,m,p),[b,C]="Discrete"===c?[d,d+S]:[r-S,r],x(s,b,s,C,m,d,y,d);break}}_.restore()}drawGradientStroke(t,e){const{capStyle:i,gradientMethod:s,gradientSize:r,gradientSizeUnits:o,joinStyle:a,miterLimit:h,width:c}=e;if(!t||0===c)return;let u;if((0,M.Bi)(t))u=t.rings;else if((0,M.Rg)(t))u=t.paths;else{if(!(0,M.ZC)(t))return void X().error("Unable to draw gradient stroke");u=K(t).rings}const f=e.gradientType??C.D.CIMGradientStroke.gradientType,m=Math.max(this.transformSize((0,l.Lz)(c)),.5),d=this._ctx;let y,p;d.save(),this._setCapStyle(i),this._setJoinStyle(a),void 0!==h&&(d.miterLimit=h),d.lineWidth=m;for(let t of u){if(t=(0,n.o8)(t),tt(t),!t||t.length<=1)continue;let i=0;y=this.transformPt(t[0]);for(let e=1;e<t.length;e++){p=this.transformPt(t[e]);const s=p[0]-y[0],r=p[1]-y[1];i+=Math.sqrt(s*s+r*r),y=p}const a="Absolute"===o?this.transformSize((0,l.Lz)(r)):(0,W.yX)(r,C.D.CIMGradientStroke.gradientSize)*("AcrossLine"===s?m:i);let h=0;y=this.transformPt(t[0]);for(let r=1;r<t.length;r++){p=this.transformPt(t[r]);const n=p[0]-y[0],o=p[1]-y[1],l=Math.sqrt(n*n+o*o);let c,u,g,_;switch(s){case"AcrossLine":{const[t,e]=k([n/l,o/l],-Math.PI/2),i=m/2,s="Discrete"===f?i:a-i;c=(y[0]+p[0])/2+t*s,u=(y[1]+p[1])/2+e*s,g=c-t*a,_=u-e*a;break}case"AlongLine":{const t=n/l,e=o/l;"Discrete"===f?(c=y[0]-t*h,u=y[1]-e*h,g=c+t*a,_=u+e*a):(g=y[0]+t*(i-h),_=y[1]+e*(i-h),c=g-t*a,u=_-e*a);break}default:return X().error("Unrecognized gradient method:",s),void d.restore()}const x=d.createLinearGradient(c,u,g,_);v(x,e),d.strokeStyle=x,d.beginPath(),d.moveTo(y[0],y[1]),d.lineTo(p[0],p[1]),d.stroke(),h+=l,y=p}}d.restore()}_buildPath(t,e){const i=this._ctx;if(i.beginPath(),t)for(const s of t){const t=s?s.length:0;if(t>1){let r=this.transformPt(s[0]);i.moveTo(r[0],r[1]);for(let e=1;e<t;e++)r=this.transformPt(s[e]),i.lineTo(r[0],r[1]);e&&i.closePath()}}}_setCapStyle(t){switch(t){case"Butt":this._ctx.lineCap="butt";break;case"Round":this._ctx.lineCap="round";break;case"Square":this._ctx.lineCap="square"}}_setJoinStyle(t){switch(t){case"Bevel":this._ctx.lineJoin="bevel";break;case"Round":this._ctx.lineJoin="round";break;case"Miter":this._ctx.lineJoin="miter"}}}function j(t,e){const i=e[0]-t[0],s=e[1]-t[1];return 180/Math.PI*Math.atan2(s,i)}const K=t=>t?{spatialReference:t.spatialReference,rings:[[[t.xmin,t.ymin],[t.xmin,t.ymax],[t.xmax,t.ymax],[t.xmax,t.ymin],[t.xmin,t.ymin]]]}:null;function Q(t,e=1){const i=(0,W.DW)(t),s=(0,W._d)(t.fontStyleName),r=t.fontFamilyName??p.Vb,{weight:n,style:o}=s,a=e*(t.height||5),l=(0,W.Bu)(t.horizontalAlignment),h=(0,W.Nl)(t.verticalAlignment),c=(0,W.pM)(t),u=(0,W.pM)(t.haloSymbol),f=null!=u?e*(t.haloSize??0):0,m=(0,W._1)(t.symbol),d=e*((0,W.xo)(t.symbol)||0),y="CIMBackgroundCallout"===t.callout?.type?t.callout.backgroundSymbol:null,g=(0,W.pM)(y),_=(0,W.xo)(y),x=(0,W._1)(y);return{color:c,size:a,horizontalAlignment:l,verticalAlignment:h,font:{family:r,style:(0,W.pV)(o),weight:(0,W.Kn)(n),decoration:i},outline:{size:d||0,color:m},halo:{size:f||0,color:u,style:o},backgroundColor:g,borderLine:null!=_&&null!=x?{size:_,color:x}:null,pixelRatio:1,premultiplyColors:!0}}function tt(t){let e,i,s,r,n,o=t[0],a=1;for(;a<t.length;)e=t[a][0]-o[0],i=t[a][1]-o[1],r=0!==e?i/e:Math.PI/2,void 0!==s&&Math.abs(r-s)<=1e-4?(t.splice(a-1,1),o=n):(n=o,o=t[a],a++),s=r}var et=i(59868),it=i(13195);const st=Math.PI,rt=st/2,nt=Math.PI/180,ot=96/72,at=()=>o.A.getLogger("esri.symbols.cim.CIMSymbolHelper");function lt(t){let e;switch(t.type){case"cim":return t.data;case"web-style":return t;case"simple-marker":{const i=ft.fromSimpleMarker(t);if(!i)throw new Error("InternalError: Cannot convert symbol to CIM");e=i;break}case"picture-marker":e=ft.fromPictureMarker(t);break;case"simple-line":e=ft.fromSimpleLineSymbol(t);break;case"simple-fill":e=ft.fromSimpleFillSymbol(t);break;case"picture-fill":e=ft.fromPictureFillSymbol(t);break;case"text":e=ft.fromTextSymbol(t)}return{type:"CIMSymbolReference",symbol:e}}function ht(t,e,i){switch(e.type){case"CIMSymbolReference":return ht(t,e.symbol,i);case"CIMPointSymbol":null==i&&(i={x:0,y:0}),t.drawSymbol(e,i);break;case"CIMLineSymbol":null==i&&(i={paths:[[[0,0],[10,0]]]}),t.drawSymbol(e,i);break;case"CIMPolygonSymbol":null==i&&(i={rings:[[[0,0],[0,10],[10,10],[10,0],[0,0]]]}),t.drawSymbol(e,i);break;case"CIMTextSymbol":{const i={x:0,y:0};t.drawSymbol(e,i);break}case"CIMVectorMarker":{const i=new y.W;t.drawMarker(e,i);break}}return t.envelope()}function ct(t){if(!t)return 0;switch(t.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAtExtremities":case"CIMMarkerPlacementAtMeasuredUnits":case"CIMMarkerPlacementAtRatioPositions":case"CIMMarkerPlacementOnLine":case"CIMMarkerPlacementOnVertices":return Math.abs(t.offset??0);default:return 0}}class ut{static getSymbolInflateSize(t,e,i,s,r){return t||(t=[0,0,0,0]),e?this._getInflateSize(t,e,i,s,r):t}static safeSize(t){const e=Math.max(Math.abs(t[0]),Math.abs(t[2])),i=Math.max(Math.abs(t[1]),Math.abs(t[3]));return Math.sqrt(e*e+i*i)}static _vectorMarkerBounds(t,e,i,s){let r=!0;const n=(0,h.vt)();if(e?.markerGraphics)for(const o of e.markerGraphics){const e=[0,0,0,0];o.geometry&&((0,c.Rg)(n,o.geometry),e[0]=0,e[1]=0,e[2]=0,e[3]=0,this.getSymbolInflateSize(e,o.symbol,i,0,s),n[0]+=e[0],n[1]+=e[1],n[2]+=e[2],n[3]+=e[3],r?(t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],r=!1):(t[0]=Math.min(t[0],n[0]),t[1]=Math.min(t[1],n[1]),t[2]=Math.max(t[2],n[2]),t[3]=Math.max(t[3],n[3])))}return t}static _getInflateSize(t,e,i,s,r){if(function(t){return void 0!==t.symbolLayers}(e)){const n=this._getLayersInflateSize(t,e.symbolLayers,i,s,r),o=(0,W.ll)(e.effects);return o>0&&(n[0]-=o,n[1]-=o,n[2]+=o,n[3]+=o),n}return this._getTextInflatedSize(t,e,r)}static _getLayersInflateSize(t,e,i,s,r){let n=!0;if(!e)return t;for(const o of e){if(!o)continue;let e=[0,0,0,0];switch(o.type){case"CIMSolidFill":case"CIMPictureFill":case"CIMHatchFill":case"CIMGradientFill":break;case"CIMSolidStroke":case"CIMPictureStroke":case"CIMGradientStroke":{const t=o;let i=t.width;null!=i&&("Square"===t.capStyle||"Miter"===t.joinStyle?i/=1.4142135623730951:i/=2,e[0]=-i,e[1]=-i,e[2]=i,e[3]=i);break}case"CIMCharacterMarker":case"CIMVectorMarker":case"CIMPictureMarker":{const t=o;if("CIMVectorMarker"===o.type){const t=o;if(e=this._vectorMarkerBounds(e,t,i,r),t.frame){const i=(t.frame.xmin+t.frame.xmax)/2,s=(t.frame.ymin+t.frame.ymax)/2;if(e[0]-=i,e[1]-=s,e[2]-=i,e[3]-=s,null!=t.size){const i=t.size/(t.frame.ymax-t.frame.ymin);e[0]*=i,e[1]*=i,e[2]*=i,e[3]*=i}}}else if("CIMPictureMarker"===o.type){const s=o,r=i.getResource(s.url);let n=1;if(null!=r&&r.height&&(n=r.width/r.height),null!=t.size){const i=t.size/2,r=t.size*n*(s.scaleX??1)/2;e=[-r,-i,r,i]}}else if(null!=t.size){const i=t.size/2;e=[-i,-i,i,i]}if(t.anchorPoint){let i,s;"Absolute"===t.anchorPointUnits?(i=t.anchorPoint.x,s=t.anchorPoint.y):(i=t.anchorPoint.x*(e[2]-e[0]),s=t.anchorPoint.y*(e[3]-e[1]));const r=1.25*Math.sqrt(i*i+s*s);e[0]-=r,e[1]-=r,e[2]+=r,e[3]+=r}let n=(0,W.$w)(t.rotation);if(t.rotateClockwise&&(n=-n),s&&(n-=s),n){const t=nt*n,i=Math.cos(t),s=Math.sin(t),r=(0,h.vt)([it.MG,it.MG,-it.MG,-it.MG]);(0,h.tK)(r,[e[0]*i-e[1]*s,e[0]*s+e[1]*i]),(0,h.tK)(r,[e[0]*i-e[3]*s,e[0]*s+e[3]*i]),(0,h.tK)(r,[e[2]*i-e[1]*s,e[2]*s+e[1]*i]),(0,h.tK)(r,[e[2]*i-e[3]*s,e[2]*s+e[3]*i]),e=r}let a=(0,W.$w)(t.offsetX),l=(0,W.$w)(t.offsetY);if(s){const t=nt*s,e=Math.cos(t),i=Math.sin(t),r=a*i+l*e;a=a*e-l*i,l=r}e[0]+=a,e[1]+=l,e[2]+=a,e[3]+=l;const c=ct(t.markerPlacement);c>0&&(e[0]-=c,e[1]-=c,e[2]+=c,e[3]+=c);break}}const a=(0,W.ll)(o.effects);a>0&&(e[0]-=a,e[1]-=a,e[2]+=a,e[3]+=a),n?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],n=!1):(t[0]=Math.min(t[0],e[0]),t[1]=Math.min(t[1],e[1]),t[2]=Math.max(t[2],e[2]),t[3]=Math.max(t[3],e[3]))}return t}static _getTextInflatedSize(t,e,i){const s=(0,G.hV)(e.height??C.D.CIMTextSymbol.height);if(t[0]=-s/2,t[1]=-s/2,t[2]=s/2,t[3]=s/2,!i)return t;const r=i.get(e);if(!r)return t;if(!function(t){return"glyphs"===t.type?t.glyphs.length>0:t.runs.some(t=>t.glyphs.glyphs.length>0)}(r.glyphMosaicItems))return t;const{lineGapType:n,lineGap:o}=e,a=n?((t,e,i)=>{switch(t){case"ExtraLeading":return 1+e/i;case"Multiple":return e;case"Exact":return e/i}})(n,o??0,s):0,l=e.horizontalAlignment??C.D.CIMTextSymbol.horizontalalignment,h=e.verticalAlignment??C.D.CIMTextSymbol.verticalalignment,c="CIMBackgroundCallout"===e.callout?.type,u=(0,$.tA)(r.glyphMosaicItems,{scale:s/24,angle:(0,W.$w)(e.angle),xOffset:(0,W.$w)(e.offsetX),yOffset:(0,W.$w)(e.offsetY),horizontalAlignment:l,verticalAlignment:h,maxLineWidth:(0,G.Lu)(e.lineWidth),lineHeight:29*Math.max(.25,Math.min(a||1,4)),decoration:e.font.decoration||"none",useCIMAngleBehavior:!0,hasBackground:c}).boundsT,f=Math.sqrt(u.width*u.width+u.height*u.height);return t[0]-=u.x+f,t[1]-=u.y-f,t[2]+=u.x+f,t[3]+=-u.y+f,t}}class ft{static getEnvelope(t,e,i,s){if(!t)return null;const r=new Z(i,s);if(Array.isArray(t)){let i;for(const s of t)i?i.union(ht(r,s,e)):i=ht(r,s,e);return i}return ht(r,t,e)}static getTextureInfo(t,e,i,s,r){const n=s??this.getEnvelope(t,null,e);if(!n)return[0,0,0,0,1];const o=Math.max(n.width,n.height)*ot;let a=null!=r?Math.max(r/o,1):1;a*=ot,n.x*=a,n.y*=a,n.width*=a,n.height*=a,n.width=Math.max(Math.ceil(n.x+n.width)-Math.floor(n.x),1)-1,n.height=Math.max(Math.ceil(n.y+n.height)-Math.floor(n.y),1)-1;let l=n.x+.5*n.width,h=n.y+.5*n.height;return l+=n.x-Math.floor(n.x),h+=n.y-Math.floor(n.y),s||(n.width+=i,n.height+=i,l+=i/2,h+=i/2),[n.width,n.height,l,h,a]}static getTextureAnchor(t,e,i){const[s,r,n,o,a]=this.getTextureInfo(t,e,2,null,i);return[-n/s,-o/r,r/a*ot]}static rasterize(t,e,i,s,r=!0,n){const[o,a,l,h,c]=this.getTextureInfo(e,s,2,i,n);t.width=o,t.height=a;const u=t.getContext("2d",{willReadFrequently:!0}),f=q.createScale(c,-c);f.translate(.5*o-l,.5*a+h);const m=new J(u,s,f);switch(e.type){case"CIMPointSymbol":{const t={type:"point",x:0,y:0};m.drawSymbol(e,t);break}case"CIMVectorMarker":{const t=new y.W;m.drawMarker(e,t);break}}const d=u.getImageData(0,0,t.width,t.height),p=new Uint8Array(d.data);if(r){let t;for(let e=0;e<p.length;e+=4)t=p[e+3]/255,p[e]=p[e]*t,p[e+1]=p[e+1]*t,p[e+2]=p[e+2]*t}return[p,t.width,t.height,-l/o,-h/a]}static fromTextSymbol(t){const{text:e}=t;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:ft.createCIMTextSymbolfromTextSymbol(t),textString:e}],scaleSymbolsProportionally:!0,respectFrame:!0}],scaleX:1,angleAlignment:"Display"}}static fromPictureFillSymbol(t){const{height:e,outline:i,width:s,xoffset:r,xscale:n,yoffset:o,yscale:a}=t,l=[],h={type:"CIMPolygonSymbol",symbolLayers:l};if(i){const t=Pt(i);t&&l.push(t)}let c=t.url;"esriPFS"===t.type&&t.imageData&&(c=t.imageData);const u="angle"in t?t.angle??0:0,f=(s??0)*(n||1),m=(e??0)*(a||1);return l.push({type:"CIMPictureFill",enable:!0,invertBackfaceTexture:!1,scaleX:1,textureFilter:"Picture",tintColor:null,url:c,height:m,width:f,offsetX:(0,W.$w)(r),offsetY:(0,W.$w)(o),rotation:(0,W.$w)(-u),colorSubstitutions:null}),h}static fromSimpleFillSymbol(t){const{color:e,style:i,outline:s}=t,r=[],o={type:"CIMPolygonSymbol",symbolLayers:r};if(s){const t=Pt(s);t&&r.push(t)}if(i&&"solid"!==i&&"none"!==i&&"esriSFSSolid"!==i&&"esriSFSNull"!==i){const t={type:"CIMLineSymbol",symbolLayers:[{type:"CIMSolidStroke",color:_t(e),capStyle:"Butt",joinStyle:"Miter",width:.75}]};let s=0;const o=(0,l.PN)(Ct(i)?8:10);switch(i){case"vertical":case"esriSFSVertical":s=90;break;case"forward-diagonal":case"esriSFSForwardDiagonal":case"diagonal-cross":case"esriSFSDiagonalCross":s=-45;break;case"backward-diagonal":case"esriSFSBackwardDiagonal":s=45;break;case"cross":case"esriSFSCross":s=0}r.push({type:"CIMHatchFill",lineSymbol:t,offsetX:0,offsetY:0,rotation:s,separation:o}),"cross"===i||"esriSFSCross"===i?r.push({type:"CIMHatchFill",lineSymbol:(0,n.o8)(t),offsetX:0,offsetY:0,rotation:90,separation:o}):"diagonal-cross"!==i&&"esriSFSDiagonalCross"!==i||r.push({type:"CIMHatchFill",lineSymbol:(0,n.o8)(t),offsetX:0,offsetY:0,rotation:45,separation:o})}else!i||"solid"!==i&&"esriSFSSolid"!==i||r.push({type:"CIMSolidFill",enable:!0,color:_t(e)});return o}static fromSimpleLineSymbol(t){const{cap:e,color:i,join:s,marker:r,miterLimit:n,style:o,width:a}=t;let l=null;"solid"!==o&&"none"!==o&&"esriSLSSolid"!==o&&"esriSLSNull"!==o&&(l=[{type:"CIMGeometricEffectDashes",dashTemplate:wt(o,e),lineDashEnding:"NoConstraint",scaleDash:!0,offsetAlongLine:null}]);const h=[];if(r){let t;switch(r.placement){case"begin-end":t="Both";break;case"begin":t="JustBegin";break;case"end":t="JustEnd";break;default:t="None"}const e=ft.fromSimpleMarker(r,a,i).symbolLayers[0];e.markerPlacement={type:"CIMMarkerPlacementAtExtremities",placePerPart:!1,angleToLine:!0,keepUpright:!1,offset:0,extremityPlacement:t,offsetAlongLine:0},h.push(e)}return h.push({type:"CIMSolidStroke",color:"none"!==o&&"esriSLSNull"!==o?_t(i):[0,0,0,0],capStyle:dt(e),joinStyle:yt(s),miterLimit:n,width:a,effects:l}),{type:"CIMLineSymbol",symbolLayers:h}}static fromPictureMarker(t){const{angle:e,height:i,width:s,xoffset:r,yoffset:n}=t;let o=t.url;return"esriPMS"===t.type&&t.imageData&&(o=t.imageData),{type:"CIMPointSymbol",symbolLayers:[{type:"CIMPictureMarker",invertBackfaceTexture:!1,scaleX:1,textureFilter:"Picture",tintColor:null,url:o,size:i,width:s,offsetX:(0,W.$w)(r),offsetY:(0,W.$w)(n),rotation:(0,W.$w)(-e)}]}}static createCIMTextSymbolfromTextSymbol(t){const{angle:e,color:i,font:s,haloColor:n,haloSize:o,horizontalAlignment:a,kerning:l,lineWidth:h,text:c,verticalAlignment:u,xoffset:f,yoffset:m,backgroundColor:d,borderLineColor:y,borderLineSize:p}=t;let g,_,x,S,M,w;s&&(g=s.family,_=s.style,x=s.weight,S=s.size,M=s.decoration);let b=!1;return c&&(b=r(c)[1]),(d||p)&&(w={type:"CIMBackgroundCallout",margin:null,backgroundSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:_t(d)},{type:"CIMSolidStroke",enable:!0,color:_t(y),width:p??0}]},accentBarSymbol:null,gap:null,leaderLineSymbol:null,lineStyle:null}),{type:"CIMTextSymbol",angle:e,blockProgression:2,depth3D:1,extrapolateBaselines:!0,fontEffects:0,fontEncoding:1,fontFamilyName:g||"Arial",fontStyleName:xt(_,x),fontType:0,haloSize:o,height:S,hinting:1,horizontalAlignment:pt(a??"center"),kerning:l,letterWidth:100,ligatures:!0,lineGapType:"Multiple",lineWidth:h,offsetX:(0,W.$w)(f),offsetY:(0,W.$w)(m),strikethrough:"line-through"===M,underline:"underline"===M,symbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:_t(i)}]},haloSymbol:{type:"CIMPolygonSymbol",symbolLayers:[{type:"CIMSolidFill",enable:!0,color:_t(n)}]},shadowColor:[0,0,0,255],shadowOffsetX:1,shadowOffsetY:1,textCase:"Normal",textDirection:b?1:0,verticalAlignment:gt(u??"baseline"),verticalGlyphOrientation:0,wordSpacing:100,billboardMode3D:2,callout:w}}static createPictureMarkerRasterizationParam(t){const{angle:e,height:i,width:s,xoffset:r,yoffset:n}=t,o=t.url??t.source?.url??t.source?.imageData;return o?{type:"sprite-rasterization-param",overrides:[],resource:{type:"CIMPictureMarker",enable:!0,invertBackfaceTexture:!1,scaleX:1,textureFilter:"Picture",tintColor:null,url:o,size:i,width:s,offsetX:(0,W.$w)(r),offsetY:(0,W.$w)(n),rotation:(0,W.$w)(-e)}}:null}static createPictureFillRasterizationParam(t){const{width:e,height:i,xoffset:s,yoffset:r,url:n}=t;return n?{type:"sprite-rasterization-param",overrides:[],resource:{type:"CIMPictureFill",enable:!0,scaleX:1,textureFilter:"Picture",tintColor:null,url:n,width:e,height:i,offsetX:(0,W.$w)(s),offsetY:(0,W.$w)(r),rotation:0}}:null}static fromSimpleMarker(t,e,i){const{style:s}=t,r=t.color??i;if("path"===s||"esriSMSPath"===s){const e=[];if("outline"in t&&t.outline){const i=t.outline;e.push({type:"CIMSolidStroke",enable:!0,width:i.width,color:_t(i.color),path:t.path})}e.push({type:"CIMSolidFill",enable:!0,color:_t(r),path:t.path});const[i,s]=bt("square");return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,rotation:-(0,W.$w)(t.angle),size:(0,W.$w)(t.size||6),offsetX:(0,W.$w)(t.xoffset),offsetY:(0,W.$w)(t.yoffset),scaleSymbolsProportionally:!1,frame:i,markerGraphics:[{type:"CIMMarkerGraphic",geometry:s,symbol:{type:"CIMPolygonSymbol",symbolLayers:e}}]}]}}const n=[];let o,a,l=t.size;if("outline"in t&&t.outline&&"none"!==t.outline.style&&"esriSLSNull"!==t.outline.style){const e=t.outline,i="solid"!==e.style&&"esriSLSSolid"!==e.style;[o,a]=i?bt(s,t.size):bt(s);const r=e.width??et.A7.width;if(i){const e=r/t.size,i=(o.xmax-o.xmin)*e/2,s=(o.ymax-o.ymin)*e/2;o.xmin-=i,o.xmax+=i,o.ymin-=s,o.ymax+=s,l&&(l+=r)}const h="cross"!==t.style&&"x"!==t.style||"dot"===t?.outline.style||"short-dot"===t?.outline.style?"HalfGap":"FullPattern",c=i?[{type:"CIMGeometricEffectAddControlPoints"},{type:"CIMGeometricEffectDashes",dashTemplate:wt(e.style,null).map(t=>e.width&&e.width>0?t*e.width:t),lineDashEnding:h,controlPointEnding:"FullPattern"}]:void 0;n.push({type:"CIMSolidStroke",capStyle:i?"Round":"Butt",enable:!0,width:r,color:_t(e.color),effects:c})}else!e||"line-marker"!==t.type||"cross"!==t.style&&"x"!==t.style?[o,a]=bt(s):([o,a]=bt(s),n.push({type:"CIMSolidStroke",enable:!0,width:e,color:_t(r)}));n.push({type:"CIMSolidFill",enable:!0,color:_t(r)});const h={type:"CIMPolygonSymbol",symbolLayers:n};return{type:"CIMPointSymbol",symbolLayers:[{type:"CIMVectorMarker",enable:!0,rotation:(0,W.$w)(-t.angle),size:(0,W.$w)(l||6*e),offsetX:(0,W.$w)(t.xoffset),offsetY:(0,W.$w)(t.yoffset),scaleSymbolsProportionally:!1,frame:o,markerGraphics:[{type:"CIMMarkerGraphic",geometry:a,symbol:h}]}]}}static fromCIMHatchFill(t,e){const i=e*(t.separation??C.D.CIMHatchFill.separation),s=i/2,r=(0,n.o8)(t.lineSymbol);r.symbolLayers?.forEach(t=>{switch(t.type){case"CIMSolidStroke":null!=t.width&&(t.width*=e),t.effects?.forEach(t=>{if("CIMGeometricEffectDashes"===t.type){const i=t.dashTemplate;t.dashTemplate=i?.map(t=>t*e)}});break;case"CIMVectorMarker":{null!=t.size&&(t.size*=e);const i=t.markerPlacement;null!=i&&"placementTemplate"in i&&(i.placementTemplate=i.placementTemplate.map(t=>t*e));break}}});let o=this._getLineSymbolPeriod(r)||4;for(;o<4;)o*=2;const a=o/2;return{type:"CIMVectorMarker",enable:!0,frame:{xmin:-a,xmax:a,ymin:-s,ymax:s},markerGraphics:[{type:"CIMMarkerGraphic",geometry:{paths:[[[-a,0],[a,0]]]},symbol:r}],size:i}}static async normalizeSymbolAndFetchResources(t,e,i=null){if(!t)return;const s=[];if("effects"in t&&t.effects)for(const e of t.effects)s.push((0,d.ai)(e));async function r(t){if("CIMTextSymbol"!==t.type)return;const{fontFamilyName:i,fontStyleName:s}=t;if("calcitewebcoreicons"===i?.toLowerCase())return;const{style:r,weight:n}=(0,W._d)(s),o=(0,W.DW)(t),a=new m.A({family:i,style:r,weight:n,decoration:o});try{await e.loadFont(a)}catch{at().error(`Unsupported font ${i} in CIM symbol`)}}s.push(r(t)),mt(t,t=>{if(t.effects)for(const e of t.effects)s.push((0,d.ai)(e));if("CIMVectorMarker"===t.type){for(const e of t.markerGraphics)(0,u.Ed)(e.geometry)&&(e.geometry=(0,f.GS)(e.geometry,{maxDeviation:.01}));t.markerPlacement&&s.push((0,d.g1)(t.markerPlacement))}"url"in t&&t.url&&s.push(e.fetchResource(t.url,{signal:i})),"symbol"in t&&s.push(r(t.symbol))}),await Promise.all(s)}static _getLineSymbolPeriod(t){if(t){const e=this._getEffectsRepeat(t.effects);if(e)return e;if(t.symbolLayers)for(const e of t.symbolLayers)if(e){const t=this._getEffectsRepeat(e.effects);if(t)return t;switch(e.type){case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":case"CIMObjectMarker3D":case"CIMglTFMarker3D":{const t=this._getPlacementRepeat(e.markerPlacement);if(t)return t}}}}return 0}static _getEffectsRepeat(t){if(t)for(const e of t)if(e)switch(e.type){case"CIMGeometricEffectDashes":{const t=e.dashTemplate;if(t&&t.length){let e=0;for(const i of t)e+=i;return 1&t.length&&(e*=2),e}break}case"CIMGeometricEffectWave":return e.period;default:at().error(`unsupported geometric effect type ${e.type}`)}return 0}static _getPlacementRepeat(t){if(t)switch(t.type){case"CIMMarkerPlacementAlongLineSameSize":case"CIMMarkerPlacementAlongLineRandomSize":case"CIMMarkerPlacementAlongLineVariableSize":{const e=t.placementTemplate;if(e&&e.length){let t=0;for(const i of e)t+=+i;return 1&e.length&&(t*=2),t}break}}return 0}static fromCIMInsidePolygon(t){const e=t.markerPlacement,i={...t};i.markerPlacement=null,i.anchorPoint=null;const s=Math.abs(e.stepX),r=Math.abs(e.stepY),n=(e.randomness??100)/100;let o,h,c,u;if("Random"===e.gridType){const t=(0,l.PN)(1024),i=Math.max(Math.floor(t/s),1),f=Math.max(Math.floor(t/r),1);o=i*s/2,h=f*r/2,c=2*h;const m=new a.A(e.seed),d=n*s/1.5,y=n*r/1.5;u=[];for(let t=0;t<i;t++)for(let e=0;e<f;e++){const i=t*s-o+d*(.5-m.getFloat()),n=e*r-h+y*(.5-m.getFloat());u.push({x:i,y:n}),0===t&&u.push({x:i+2*o,y:n}),0===e&&u.push({x:i,y:n+2*h})}}else!0===e.shiftOddRows?(o=s/2,h=r,c=2*r,u=[{x:-o,y:0},{x:o,y:0},{x:0,y:h},{x:0,y:-h}]):(o=s/2,h=r/2,c=r,u=[{x:-s,y:0},{x:0,y:-r},{x:-s,y:-r},{x:0,y:0},{x:s,y:0},{x:0,y:r},{x:s,y:r},{x:-s,y:r},{x:s,y:-r}]);return{type:"CIMVectorMarker",enable:!0,frame:{xmin:-o,xmax:o,ymin:-h,ymax:h},markerGraphics:u.map(t=>({type:"CIMMarkerGraphic",geometry:t,symbol:{type:"CIMPointSymbol",symbolLayers:[i]}})),size:c}}}function mt(t,e){if(t)switch(t.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":{const i=t.symbolLayers;if(!i)return;for(const t of i)if(e(t),"CIMVectorMarker"===t.type){const i=t.markerGraphics;if(!i)continue;for(const t of i)if(t){const i=t.symbol;i&&mt(i,e)}}break}}}const dt=t=>{if(!t)return"Butt";switch(t){case"butt":return"Butt";case"square":return"Square";case"round":return"Round"}},yt=t=>{if(!t)return"Miter";switch(t){case"miter":return"Miter";case"round":return"Round";case"bevel":return"Bevel"}},pt=t=>{if(null==t)return"Center";switch(t){case"left":return"Left";case"right":return"Right";case"center":return"Center";case"justify":return"Justify"}},gt=t=>{if(null==t)return"Center";switch(t){case"baseline":return"Baseline";case"top":return"Top";case"middle":return"Center";case"bottom":return"Bottom"}},_t=t=>{if(!t)return[0,0,0,0];const{r:e,g:i,b:s,a:r}=t;return[e,i,s,255*r]},xt=(t,e)=>{const i=St(e),s=Mt(t);return i&&s?`${i}-${s}`:`${i}${s}`},St=t=>{if(!t)return"";switch(t.toLowerCase()){case"bold":case"bolder":return"bold"}return""},Mt=t=>{if(!t)return"";switch(t.toLowerCase()){case"italic":case"oblique":return"italic"}return""},wt=(t,e)=>{const i=.001,s="butt"===e;switch(t){case"dash":case"esriSLSDash":return s?[4,3]:[3,4];case"dash-dot":case"esriSLSDashDot":return s?[4,3,1,3]:[3,4,i,4];case"dot":case"esriSLSDot":return s?[1,3]:[i,4];case"long-dash":case"esriSLSLongDash":return s?[8,3]:[7,4];case"long-dash-dot":case"esriSLSLongDashDot":return s?[8,3,1,3]:[7,4,i,4];case"long-dash-dot-dot":case"esriSLSDashDotDot":return s?[8,3,1,3,1,3]:[7,4,i,4,i,4];case"short-dash":case"esriSLSShortDash":return s?[4,1]:[3,2];case"short-dash-dot":case"esriSLSShortDashDot":return s?[4,1,1,1]:[3,2,i,2];case"short-dash-dot-dot":case"esriSLSShortDashDotDot":return s?[4,1,1,1,1,1]:[3,2,i,2,i,2];case"short-dot":case"esriSLSShortDot":return s?[1,1]:[i,2];case"solid":case"esriSLSSolid":case"none":return at().error("Unexpected: style does not require rasterization"),[0,0];default:return at().error(`Tried to rasterize SLS, but found an unexpected style: ${t}!`),[0,0]}},bt=(t,e=100)=>{const i=e/2;let s,r;const n=t;if("circle"===n||"esriSMSCircle"===n){const t=.25;let e=Math.acos(1-t/i),n=Math.ceil(st/e/4);0===n&&(n=1),e=rt/n,n*=4;const o=[];o.push([i,0]);for(let t=1;t<n;t++)o.push([i*Math.cos(t*e),-i*Math.sin(t*e)]);o.push([i,0]),s={rings:[o]},r={xmin:-i,ymin:-i,xmax:i,ymax:i}}else if("cross"===n||"esriSMSCross"===n){const t=0;s={paths:[[[t,i],[t,-i]],[[i,t],[-i,t]]]},r={xmin:-i,ymin:-i,xmax:i,ymax:i}}else if("diamond"===n||"esriSMSDiamond"===n)s={rings:[[[-i,0],[0,i],[i,0],[0,-i],[-i,0]]]},r={xmin:-i,ymin:-i,xmax:i,ymax:i};else if("square"===n||"esriSMSSquare"===n)s={rings:[[[-i,-i],[-i,i],[i,i],[i,-i],[-i,-i]]]},r={xmin:-i,ymin:-i,xmax:i,ymax:i};else if("x"===n||"esriSMSX"===n)s={paths:[[[i,i],[-i,-i]],[[i,-i],[-i,i]]]},r={xmin:-i,ymin:-i,xmax:i,ymax:i};else if("triangle"===n||"esriSMSTriangle"===n){const t=.5773502691896257*e,i=-t,n=2/3*e,o=n-e;s={rings:[[[i,o],[0,n],[t,o],[i,o]]]},r={xmin:i,ymin:o,xmax:t,ymax:n}}else"arrow"===n&&(s={rings:[[[-50,50],[50,0],[-50,-50],[-33,-20],[-33,20],[-50,50]]]},r={xmin:-i,ymin:-i,xmax:i,ymax:i});return[r,s]},Ct=t=>"vertical"===t||"horizontal"===t||"cross"===t||"esriSFSCross"===t||"esriSFSVertical"===t||"esriSFSHorizontal"===t;function Pt(t){if(!t)return null;let e=null;const{cap:i,color:s,join:r,miterLimit:n,style:o,width:a}=t;return"solid"!==o&&"none"!==o&&"esriSLSSolid"!==o&&"esriSLSNull"!==o&&(e=[{type:"CIMGeometricEffectDashes",dashTemplate:wt(o,i),lineDashEnding:"NoConstraint",scaleDash:!0,offsetAlongLine:null}]),{type:"CIMSolidStroke",color:"esriSLSNull"!==o&&"none"!==o?_t(s):[0,0,0,0],capStyle:dt(i),joinStyle:yt(r),miterLimit:n,width:a,effects:e}}},13195(t,e,i){i.d(e,{GW:()=>p,IU:()=>g,Wh:()=>f,cP:()=>S,p6:()=>y,ru:()=>x,s3:()=>_,wV:()=>d,yM:()=>M,z0:()=>m});var s=i(95108),r=i(6774);const n=Number.POSITIVE_INFINITY,o=Math.PI,a=2*o,l=128/o,h=256/360,c=o/180,u=1/Math.LN2;function f(t,e){return(t%=e)>=0?t:t+e}function m(t){return f(t*l,256)}function d(t){return f(t*h,256)}function y(t){return Math.log(t)*u}function p(t,e,i){return t*(1-i)+e*i}function g(t){return 8+Math.max(16*(t-14),0)}function _(t,e,i){let s,r,n,o=0;for(const a of i){s=a.length;for(let i=1;i<s;++i)r=a[i-1],n=a[i],r.y>e!=n.y>e&&((n.x-r.x)*(e-r.y)-(n.y-r.y)*(t-r.x)>0?o++:o--)}return 0!==o}function x(t,e,i,r){let n,o,a,l;const h=r*r;for(const r of i){const i=r.length;if(!(i<2)){n=r[0].x,o=r[0].y;for(let c=1;c<i;++c){if(a=r[c].x,l=r[c].y,(0,s.Ng)(t,e,n,o,a,l)<h)return!0;n=a,o=l}}}return!1}function S(t,e){if(0===e||Number.isNaN(e))return t;const i=[],s=new r.bR(0,0),n=new r.bR(0,0),o=new r.bR(0,0);for(let a=0;a<t.length;a++){const l=t[a],h=[];for(let t=0;t<l.length;t++){const i=l[t-1],a=l[t],c=l[t+1];0===t?s.setCoords(0,0):s.assignSub(a,i).normalize().rightPerpendicular(),t===l.length-1?n.setCoords(0,0):n.assignSub(c,a).normalize().rightPerpendicular(),o.assignAdd(s,n).normalize();const u=o.x*n.x+o.y*n.y;0!==u&&o.scale(1/u),h.push(r.bR.add(a,o.scale(e)))}i.push(h)}return i}function M(t,e,i,s){const n=new r.bR(t[0],t[1]);if(n.scale(s),"viewport"===e){const t=-i*(Math.PI/180),e=Math.cos(t),s=Math.sin(t);n.rotate(e,s)}return n}i.d(e,["Jo",0,o,"MG",0,n,"aA",0,h,"os",0,c,"pJ",0,a])}}]);
@@ -1,10 +1,75 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js";import{ForwardLinearDepthToWriteShadowMap as o}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{isColor as a,isShadow as r}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SlicePass as l}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{TextureCoordinateAttribute as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VertexPosition as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js";import{outputDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as g}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as c}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{ReadDepth as m}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{computeFragmentNormals as v}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTextureDraw as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as w,addLightingGlobalFactor as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as b,addMainLightDirection as f}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PhysicallyBasedRenderingParameters as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{PiUtils as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js";import{ReadBaseColorTexture as x}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import{ReadShadowMapPassFragment as L}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayIM as S}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{DiscardOrAdjustAlphaDraw as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{BooleanDrawUniform as j}from"../views/3d/webgl-engine/core/shaderModules/BooleanDrawUniform.js";import{If as N,glsl as $}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as R}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{SnowCover as T}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{alphaCutoff as M}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as D}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getPlanetRadius as W,sphereDepthInterpolate as P}from"../views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js";import{ShaderBuilder as A}from"../views/webgl/ShaderBuilder.js";function U(U){const F=new A,{vertex:V,fragment:z}=F;F.include(s,U),F.include(n,U),F.include(t,U),F.include(i,U),F.include(e,U),F.include(O,U),z.include(l,U),F.include(x,U);const{output:B,pbrMode:E,hasNormalTexture:I,snowCover:G,receiveShadows:_,shadeNormals:H,spherical:k,sphericalSR:q,overlayEnabled:J,componentDataType:K,vertexDiscardMode:Q,renderOccluded:X,isGroundSlice:Y}=U,Z=1===E||2===E;Z&&(F.include(y,U),I&&F.include(h,U));const ee=r(B),oe=11===B,ae=ee&&1===K,re=W(U);J&&(z.include(w,U),F.include(S,U),V.include(C),V.uniforms.add(new j("useENUForGlobalOverlayUV",e=>e.useENUForGlobalOverlayUV)),z.uniforms.add(new j("useENUForGlobalOverlayUV",e=>e.useENUForGlobalOverlayUV)),V.constants.add("invRadius","float",1/re).code.add(`vec2 projectOverlay(vec3 pos) { return pos.xy ${N(k,"/ (1.0 + invRadius * pos.z)")}; }`));const le=J&&a(B)&&4===E;le&&(F.varyings.add("tbnTangent","vec3"),F.varyings.add("tbnBiTangent","vec3"),F.varyings.add("groundNormal","vec3"));const ie=0===Q,te=2===Q;if(F.include(L,U),F.include(o,U),V.include(M),V.main.add($`
2
+ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js";import{ForwardLinearDepthToWriteShadowMap as a}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{isColor as o,isShadow as r}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SlicePass as l}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{TextureCoordinateAttribute as t}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexColor as i}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js";import{VertexNormal as n}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js";import{VertexPosition as s}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js";import{outputDepth as d}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as v}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as c}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{ReadDepth as g}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{computeFragmentNormals as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import{ComputeMaterialColor as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import{ComputeNormalTextureDraw as p}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import{EvaluateSceneLighting as y,addLightingGlobalFactor as h}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightIntensity as f,addMainLightDirection as w}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{PhysicallyBasedRenderingParameters as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{ReadBaseColorTexture as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import{ReadShadowMapPassFragment as U}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayIM as x}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{DiscardOrAdjustAlphaDraw as O}from"../views/3d/webgl-engine/core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import{BooleanDrawUniform as L}from"../views/3d/webgl-engine/core/shaderModules/BooleanDrawUniform.js";import{FloatDrawUniform as S}from"../views/3d/webgl-engine/core/shaderModules/FloatDrawUniform.js";import{If as M,glsl as V}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as j}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{SnowCover as N}from"../views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js";import{alphaCutoff as T}from"../views/3d/webgl-engine/shaders/alphaCutoff.glsl.js";import{outputColorHighlightOLID as W}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{getPlanetRadius as D,sphereDepthInterpolate as R}from"../views/3d/webgl-engine/shaders/SphereDepthInterpolate.glsl.js";import{ShaderBuilder as $}from"../views/webgl/ShaderBuilder.js";function P(P){const A=new $,{vertex:F,fragment:z}=A;A.include(s,P),A.include(n,P),A.include(i,P),A.include(t,P),A.include(e,P),A.include(O,P),z.include(l,P),A.include(C,P);const{output:B,pbrMode:I,hasNormalTexture:E,snowCover:_,receiveShadows:H,shadeNormals:G,spherical:k,sphericalSR:q,overlayEnabled:J,componentDataType:K,vertexDiscardMode:Q,renderOccluded:X,isGroundSlice:Y}=P,Z=o(B),ee=1===I||2===I;ee&&(A.include(b,P),E&&A.include(p,P));const ae=r(B),oe=11===B,re=10===B,le=ae&&1===K,te=D(P),ie=J&&k,ne=1===q;J&&(z.include(y,P),A.include(x,P),ie?(A.varyings.add("vPositionForDraping","vec3"),z.uniforms.add(new L("useENUForGlobalOverlayUV",e=>e.useENUForGlobalOverlayUV),new S("overlayMapScaleU",e=>e.toMapSpace[2]),new S("overlayReferenceU",e=>e.toMapSpace[0])),z.constants.add("overlayWorldWidth","float",ne?2*Math.PI*te:360),ne?(z.constants.add("pRadius","float",te),z.constants.add("halfSemiMajorAxis","float",.5*te)):z.constants.add("rad2deg1","float",180/Math.PI),z.constants.add("invRadius","float",1/te).code.add(V`
3
+ vec2 projectOverlay(vec3 pos) { return pos.xy / (1.0 + invRadius * pos.z); }
4
+
5
+ float selectOverlayU(float overlayU0, float overlayU1, float scaleU, float offsetU) {
6
+ float overlayU0Norm = overlayU0 * scaleU + offsetU;
7
+ bool valid0 = overlayU0Norm >= 0.0 && overlayU0Norm <= 1.0;
8
+
9
+ return valid0 ? overlayU0Norm : overlayU1 * scaleU + offsetU;
10
+ }
11
+
12
+ vec2 selectOverlayUV(vec2 overlayUV0, float scaleU, float offsetU, float wrapOffsetU) {
13
+ float overlayU = selectOverlayU(overlayUV0.x, overlayUV0.x + wrapOffsetU, scaleU, offsetU);
14
+ return vec2(overlayU, overlayUV0.y);
15
+ }
16
+
17
+ vec4 selectOverlayUVs(vec2 overlayUV0, float wrapOffsetU) {
18
+ vec2 overlayUVInner = selectOverlayUV(overlayUV0, overlayTexScale.x, overlayTexOffset.x, wrapOffsetU);
19
+ vec2 overlayUVOuter = selectOverlayUV(overlayUV0, overlayTexScale.z, overlayTexOffset.z, wrapOffsetU);
20
+ return vec4(
21
+ overlayUVInner.x,
22
+ overlayUVInner.y * overlayTexScale.y + overlayTexOffset.y,
23
+ overlayUVOuter.x,
24
+ overlayUVOuter.y * overlayTexScale.w + overlayTexOffset.w
25
+ );
26
+ }
27
+
28
+ float overlayMapWrapOffsetU(float overlayU) {
29
+ return overlayU < 0.0 ? overlayWorldWidth : -overlayWorldWidth;
30
+ }
31
+
32
+ vec4 selectLocalOverlayUVs(vec2 overlayUV0) {
33
+ float overlayMapU = overlayReferenceU + overlayMapScaleU * overlayUV0.x;
34
+ return selectOverlayUVs(overlayUV0, overlayMapWrapOffsetU(overlayMapU) / overlayMapScaleU);
35
+ }
36
+
37
+ vec4 selectMapOverlayUVs(vec2 overlayUV0) {
38
+ return selectOverlayUVs(overlayUV0, overlayMapWrapOffsetU(overlayUV0.x));
39
+ }
40
+
41
+ vec2 overlayMapUVFromWorldPosition() {
42
+ vec3 wPos = positionWorld();
43
+
44
+ float oRadius = length(wPos.xyz);
45
+ float oLonRad = atan(wPos.y, wPos.x);
46
+ float sinLat = wPos.z / oRadius;
47
+ vec2 posMap;
48
+
49
+ ${M(ne,V`
50
+ posMap = vec2(
51
+ oLonRad * pRadius,
52
+ halfSemiMajorAxis * log((1.0 + sinLat) / (1.0 - sinLat))
53
+ );
54
+ `,V`
55
+ float oLatRad = asin(clamp(sinLat,-1.0,1.0));
56
+ posMap = vec2(rad2deg1 * oLonRad, rad2deg1 * oLatRad);
57
+ `)}
58
+
59
+ return posMap;
60
+ }
61
+
62
+ vec4 componentOverlayUVs() {
63
+ return useENUForGlobalOverlayUV
64
+ ? selectLocalOverlayUVs(projectOverlay(vPositionForDraping))
65
+ : selectMapOverlayUVs(overlayMapUVFromWorldPosition());
66
+ }
67
+ `)):F.code.add("vec2 projectOverlay(vec3 pos) { return pos.xy; }"));const se=J&&Z&&4===I;se&&(A.varyings.add("tbnTangent","vec3"),A.varyings.add("tbnBiTangent","vec3"),A.varyings.add("groundNormal","vec3"));const de=0===Q,ve=2===Q;if(A.include(U,P),A.include(a,P),F.include(T),F.main.add(V`
3
68
  bool castShadows;
4
69
  vec4 externalColor = forwardExternalColor(castShadows);
5
- ${N(ae,"if(!castShadows) { gl_Position = vec4(vec3(1e38), 1.0); return; }")}
6
- ${N(!ie,`if (externalColor.a ${te?">":"<="} opacityCutoff) {\n gl_Position = vec4(vec3(1e38), 1.0); return;\n }`)}
7
- ${N(oe,"externalColor.a = 1.0;")}
70
+ ${M(le,"if(!castShadows) { gl_Position = vec4(vec3(1e38), 1.0); return; }")}
71
+ ${M(!de,`if (externalColor.a ${ve?">":"<="} opacityCutoff) {\n gl_Position = vec4(vec3(1e38), 1.0); return;\n }`)}
72
+ ${M(oe,"externalColor.a = 1.0;")}
8
73
 
9
74
  forwardPosition(readElevationOffset());
10
75
  forwardNormal();
@@ -14,26 +79,26 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
14
79
  forwardLinearDepthToWriteShadowMap();
15
80
  forwardEmissiveStrength();
16
81
  forwardObjectAndLayerIdColor();
17
- ${N(le,k?$`
82
+ ${M(se,k?V`
18
83
  groundNormal = normalize(positionWorld());
19
84
  tbnTangent = normalize(cross(vec3(0.0, 0.0, 1.0), groundNormal));
20
- tbnBiTangent = normalize(cross(groundNormal, tbnTangent));`:$`
85
+ tbnBiTangent = normalize(cross(groundNormal, tbnTangent));`:V`
21
86
  groundNormal = vec3(0.0, 0.0, 1.0);
22
87
  tbnTangent = vec3(1.0, 0.0, 0.0);
23
88
  tbnBiTangent = vec3(0.0, 1.0, 0.0);`)}
24
- ${N(J,N(k,"\n if (useENUForGlobalOverlayUV) {\n setOverlayVTC(projectOverlay(positionForDraping()));\n } else {\n vtcOverlay = vec4(0.0); // Definite assignment\n }\n ","setOverlayVTC(projectOverlay(positionForDraping()));"))}
89
+ ${M(J,M(k,"vPositionForDraping = positionForDraping();\n vtcOverlay = vec4(0.0);","setOverlayVTC(projectOverlay(positionForDraping()));"))}
25
90
 
26
91
  if (externalColor.a < alphaCutoff) {
27
92
  // Discard this vertex
28
93
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
29
94
  return;
30
95
  }
31
- `),a(B))return F.include(u,U),F.include(v,U),F.include(D,U),z.include(w,U),z.include(T,U),z.include(M),z.constants.add("pRadius","float",re).code.add($`
96
+ `),Z)return A.include(u,P),A.include(m,P),A.include(W,P),z.include(y,P),z.include(N,P),z.include(T),z.code.add(V`
32
97
  float evaluateShadow() {
33
- return ${_?"readShadowMap(vPositionWorldCameraRelative, linearDepth)":"0.0"};
98
+ return ${H?"readShadowMap(vPositionWorldCameraRelative, linearDepth)":"0.0"};
34
99
  }
35
- `).main.add($`
36
- ${N(!Y,"discardBySlice(vPositionWorldCameraRelative);")}
100
+ `).main.add(V`
101
+ ${M(!Y,"discardBySlice(vPositionWorldCameraRelative);")}
37
102
 
38
103
  vec4 textureColor = readBaseColorTexture();
39
104
  discardOrAdjustAlpha(textureColor);
@@ -41,43 +106,15 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
41
106
  // When rendering the occluded overlay, we still need to read the base color texture because we need to use the
42
107
  // same discard logic. However after that to render only the draped overlay, we simply set the base texture color
43
108
  // to zero.
44
- ${N(X,$`textureColor = vec4(0);`)}
45
-
46
- ${N(J,$`
47
- ${N(k,$`
48
- vec4 overlayUVs;
49
- if (useENUForGlobalOverlayUV) {
50
- overlayUVs = vtcOverlay;
51
- } else {
52
- const float rad2deg1 = 180.0 / PI;
53
-
54
- vec3 wPos = positionWorld();
55
-
56
- float oRadius = length(wPos.xyz);
57
- float oLonRad = atan(wPos.y, wPos.x);
58
- float sinLat = wPos.z / oRadius;
59
-
60
- ${N(1===q,$`
61
- const float halfSemiMajorAxis = 0.5 * pRadius;
62
- vec2 posWM = vec2(
63
- oLonRad * pRadius,
64
- halfSemiMajorAxis * log((1.0 + sinLat) / (1.0 - sinLat))
65
- );
66
-
67
- vec2 overlayUV = posWM;
68
- `,$`
69
- float oLatRad = asin(clamp(sinLat,-1.0,1.0));
70
- vec2 posWgs84 = vec2(rad2deg1 * oLonRad, rad2deg1 * oLatRad);
71
- vec2 overlayUV = posWgs84;
72
- `)}
73
- overlayUVs = vec4(overlayUV, overlayUV) * overlayTexScale + overlayTexOffset;
74
- }
75
- `,$`vec4 overlayUVs = vtcOverlay;`)}
109
+ ${M(X,V`textureColor = vec4(0);`)}
110
+
111
+ ${M(J,V`
112
+ vec4 overlayUVs = ${ie?"componentOverlayUVs()":"vtcOverlay"};
76
113
 
77
114
  vec4 overlayColor = getOverlayColor(ovColorTex, overlayUVs);
78
115
 
79
116
  /* Early discard to only emit when we have overlay */
80
- ${N(X,$`if (overlayColor.a < alphaCutoff) { discard; }`)}
117
+ ${M(X,V`if (overlayColor.a < alphaCutoff) { discard; }`)}
81
118
  `)}
82
119
 
83
120
  vec4 externalColor;
@@ -85,47 +122,47 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
85
122
  readExternalColor(externalColor, externalColorMixMode);
86
123
 
87
124
  vec4 materialColor = computeMaterialColor(textureColor, externalColor, externalColorMixMode);
88
- `),Z?(b(z),k&&p(z),z.main.add($`
125
+ `),ee?(f(z),k&&h(z),z.main.add(V`
89
126
  applyPBRFactors();
90
- ${N(1===E,$`if (externalColorMixMode == 3) {
127
+ ${M(1===I,V`if (externalColorMixMode == 3) {
91
128
  mrr = vec3(0.0, 0.6, 0.2);
92
129
  }`)}
93
130
  float additionalIrradiance = 0.02 * mainLightIntensity[2];
94
- ${N(I,"mat3 tangentSpace = computeTangentSpace(fragmentFaceNormal, vPositionWorldCameraRelative, vuv0);")}
95
- vec3 shadingNormal = ${I?"computeTextureNormal(tangentSpace, vuv0)":"fragmentShadingNormal"};
96
- vec3 groundNormal = ${k?$`normalize(positionWorld())`:$`vec3(0.0, 0.0, 1.0)`};
131
+ ${M(E,"mat3 tangentSpace = computeTangentSpace(fragmentFaceNormal, vPositionWorldCameraRelative, vuv0);")}
132
+ vec3 shadingNormal = ${E?"computeTextureNormal(tangentSpace, vuv0)":"fragmentShadingNormal"};
133
+ vec3 groundNormal = ${k?V`normalize(positionWorld())`:V`vec3(0.0, 0.0, 1.0)`};
97
134
 
98
135
  vec3 viewDir = normalize(vPositionWorldCameraRelative);
99
136
  float ssao = 1.0 - occlusion * evaluateAmbientOcclusionInverse();
100
- ${N(G,$`float snow = getSnow(fragmentFaceNormal, normalize(positionWorld()));
137
+ ${M(_,V`float snow = getSnow(fragmentFaceNormal, normalize(positionWorld()));
101
138
  materialColor.rgb = mix(materialColor.rgb, vec3(1.1), snow);
102
139
  ssao = mix(ssao, 0.5 * ssao, snow);
103
140
  shadingNormal = mix(shadingNormal, fragmentFaceNormal, snow);`)}
104
- ${N(J,"materialColor = materialColor * (1.0 - overlayColor.a) + overlayColor;")}
141
+ ${M(J,"materialColor = materialColor * (1.0 - overlayColor.a) + overlayColor;")}
105
142
 
106
143
  vec3 additionalLight = evaluateAdditionalLighting(ssao, positionWorld());
107
- ${N(k,"float additionalAmbientScale = additionalDirectedAmbientLight(positionWorld());")}
108
- ${k?$`float shadow = max(lightingGlobalFactor * (1.0 - additionalAmbientScale), evaluateShadow());`:"float shadow = evaluateShadow();"}
144
+ ${M(k,"float additionalAmbientScale = additionalDirectedAmbientLight(positionWorld());")}
145
+ ${k?V`float shadow = max(lightingGlobalFactor * (1.0 - additionalAmbientScale), evaluateShadow());`:"float shadow = evaluateShadow();"}
109
146
  vec4 shadedColor = vec4(evaluateSceneLightingPBR(shadingNormal, materialColor.rgb, shadow, ssao, additionalLight, viewDir, groundNormal, mrr, additionalIrradiance), materialColor.a);
110
- `)):(f(z),k&&p(z),le&&z.uniforms.add(new R("ovNormalTex",e=>e.overlay?.getTexture(3))),z.main.add($`
111
- ${N(k,"float additionalAmbientScale = additionalDirectedAmbientLight(positionWorld());")}
112
- float shadow = ${_?k?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), evaluateShadow())":"evaluateShadow()":k?"lightingGlobalFactor * (1.0 - additionalAmbientScale)":"0.0"};
147
+ `)):(w(z),k&&h(z),se&&z.uniforms.add(new j("ovNormalTex",e=>e.overlay?.getTexture(3))),z.main.add(V`
148
+ ${M(k,"float additionalAmbientScale = additionalDirectedAmbientLight(positionWorld());")}
149
+ float shadow = ${H?k?"max(lightingGlobalFactor * (1.0 - additionalAmbientScale), evaluateShadow())":"evaluateShadow()":k?"lightingGlobalFactor * (1.0 - additionalAmbientScale)":"0.0"};
113
150
 
114
- ${N(_&&1!==H,$`
151
+ ${M(H&&1!==G,V`
115
152
  float dotFL = dot(fragmentFaceNormal, mainLightDirection);
116
153
  if( dotFL <= 0.0) shadow = 1.0;
117
154
  `)}
118
- ${N(G,$`float snow = getSnow(fragmentFaceNormal, normalize(positionWorld()));
155
+ ${M(_,V`float snow = getSnow(fragmentFaceNormal, normalize(positionWorld()));
119
156
  materialColor.rgb = mix(materialColor.rgb, vec3(1), snow);`)}
120
157
 
121
158
  // At global scale we create some additional ambient light based on the main light to simulate global illumination
122
159
  float ssao = evaluateAmbientOcclusion();
123
160
  vec3 additionalLight = evaluateAdditionalLighting(ssao, positionWorld());
124
161
 
125
- ${N(J,"materialColor = materialColor * (1.0 - overlayColor.a) + overlayColor;")}
162
+ ${M(J,"materialColor = materialColor * (1.0 - overlayColor.a) + overlayColor;")}
126
163
 
127
164
  vec4 shadedColor = vec4(evaluateSceneLighting(fragmentShadingNormal, materialColor.rgb, shadow, ssao, additionalLight), materialColor.a);
128
- ${N(le,$`vec4 overlayWaterMask = getOverlayColor(ovNormalTex, overlayUVs);
165
+ ${M(se,V`vec4 overlayWaterMask = getOverlayColor(ovNormalTex, overlayUVs);
129
166
  float waterNormalLength = length(overlayWaterMask);
130
167
  if (waterNormalLength > 0.95) {
131
168
  mat3 tbnMatrix = mat3(tbnTangent, tbnBiTangent, groundNormal);
@@ -134,15 +171,15 @@ import{ComponentData as e}from"../views/3d/webgl-engine/collections/Component/Ma
134
171
  // un-gamma the ground color to mix in linear space
135
172
  shadedColor = mix(shadedColor, waterColorNonLinear, waterColorLinear.w);
136
173
  }`)}
137
- `)),z.main.add(`\n ${N(Y,"if(rejectBySlice(vPositionWorldCameraRelative)) shadedColor.a *= groundSliceOpacity;")}\n\n outputColorHighlightOLID(applySlice(shadedColor, vPositionWorldCameraRelative), materialColor.rgb ${N(G,", snow")});\n `),U.sphereDepthInterpolate&&(F.include(P,U),F.fragment.include(m),z.main.add($`vec3 worldRay = normalize(vPositionWorldCameraRelative);
174
+ `)),z.main.add(`\n ${M(Y,"if(rejectBySlice(vPositionWorldCameraRelative)) shadedColor.a *= groundSliceOpacity;")}\n\n outputColorHighlightOLID(applySlice(shadedColor, vPositionWorldCameraRelative), materialColor.rgb ${M(_,", snow")});\n `),P.sphereDepthInterpolate&&(A.include(R,P),A.fragment.include(g),z.main.add(V`vec3 worldRay = normalize(vPositionWorldCameraRelative);
138
175
  vec3 viewRay = normalize(vPosition_view);
139
- gl_FragDepth = delinearizeDepth(sphereDepthInterpolate(worldRay, viewRay, linearizeDepth(gl_FragCoord.z)));`)),F;const ne=4===B,se=10===B,de=ee||8===B;return de&&F.include(d,U),ne&&F.include(v,U),J&&F.include(c,U),F.include(g,U),z.main.add($`
140
- ${N(!Y,"discardBySlice(vPositionWorldCameraRelative);")}
176
+ gl_FragDepth = delinearizeDepth(sphereDepthInterpolate(worldRay, viewRay, linearizeDepth(gl_FragCoord.z)));`)),A;const ce=4===B,ge=ae||8===B;return ge&&A.include(d,P),ce&&A.include(m,P),J&&A.include(c,P),A.include(v,P),z.main.add(V`
177
+ ${M(!Y,"discardBySlice(vPositionWorldCameraRelative);")}
141
178
 
142
179
  vec4 textureColor = readBaseColorTexture();
143
180
  discardOrAdjustAlpha(textureColor);
144
181
 
145
- ${N(de,"outputDepth(linearDepth);")}
146
- ${N(ne,$`fragColor = vec4(vec3(0.5) + 0.5 * fragmentFaceNormalView, 1.0);`)}
147
- ${N(oe,J?"fragColor = getOverlayColorTexel();":"outputObjectAndLayerIdColor();")}
148
- ${N(se,N(J,$`calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,$`calculateOcclusionAndOutputHighlight();`))}`),F}const F=Object.freeze(Object.defineProperty({__proto__:null,build:U},Symbol.toStringTag,{value:"Module"}));export{F as C,U as b};
182
+ ${M(ge,"outputDepth(linearDepth);")}
183
+ ${M(ce,V`fragColor = vec4(vec3(0.5) + 0.5 * fragmentFaceNormalView, 1.0);`)}
184
+ ${M(oe,J?ie?"fragColor = getOverlayColorTexel(componentOverlayUVs());":"fragColor = getOverlayColorTexel();":"outputObjectAndLayerIdColor();")}
185
+ ${M(re,M(J,ie?V`calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded(componentOverlayUVs()));`:V`calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,V`calculateOcclusionAndOutputHighlight();`))}`),A}const A=Object.freeze(Object.defineProperty({__proto__:null,build:P},Symbol.toStringTag,{value:"Module"}));export{A as C,P as b};
@@ -63,7 +63,7 @@ import{Offset as e}from"../views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.
63
63
  ${1===ae||2===ae?_`
64
64
  float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * mainLightIntensity[2];
65
65
  ${B(ie,"mrr = applySnowToMRR(mrr, snow);")}
66
- vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, additionalAmbientIrradiance);`:_`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
66
+ vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, additionalAmbientIrradiance);`:7===ae?_`vec3 shadedColor = albedo;`:_`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
67
67
  vec4 finalColor = vec4(shadedColor, opacity_);
68
68
  outputColorHighlightOLID(applySlice(finalColor, vpos), albedo ${B(ie,", snow")});
69
69
  `),J}const J=Object.freeze(Object.defineProperty({__proto__:null,build:q},Symbol.toStringTag,{value:"Module"}));export{J as D,q as b};