@arcgis/core 5.1.0-next.43 → 5.1.0-next.45

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 (262) hide show
  1. package/applications/Components/featureUtils.d.ts +11 -7
  2. package/arcade/featureset/actions/Adapted.js +1 -1
  3. package/arcade/featureset/actions/AttributeFilter.js +1 -1
  4. package/arcade/featureset/actions/OrderBy.js +1 -1
  5. package/arcade/featureset/actions/SpatialFilter.js +1 -1
  6. package/arcade/featureset/actions/Top.js +1 -1
  7. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  8. package/arcade/featureset/sources/FeatureLayerMemory.js +1 -1
  9. package/arcade/featureset/sources/FeatureLayerRelated.js +1 -1
  10. package/arcade/featureset/support/FeatureSet.js +1 -1
  11. package/arcade/featureset/support/OrderbyClause.js +1 -1
  12. package/assets/esri/core/workers/RemoteClient.js +1 -1
  13. package/assets/esri/core/workers/chunks/{eff198e0c21c9767ffaa.js → 0155e5679ded9de5c327.js} +1 -1
  14. package/assets/esri/core/workers/chunks/128799741dd3c6fc69b9.js +1 -0
  15. package/assets/esri/core/workers/chunks/13eb0162d95b4d27389c.js +1 -0
  16. package/assets/esri/core/workers/chunks/{0836964a65f76da35b5c.js → 1a3f874700f86b750390.js} +23 -23
  17. package/assets/esri/core/workers/chunks/1a481f3ae3146682eb00.js +1 -0
  18. package/assets/esri/core/workers/chunks/1cce2f8837ad765acf44.js +1 -0
  19. package/assets/esri/core/workers/chunks/2379c64b0ca30814a815.js +1 -0
  20. package/assets/esri/core/workers/chunks/23a9070e9362b8439770.js +1 -0
  21. package/assets/esri/core/workers/chunks/25e4568a3ff76f48ac5e.js +1 -0
  22. package/assets/esri/core/workers/chunks/{dbedd246f4b584583f95.js → 288bd32831e94e81653e.js} +1 -1
  23. package/assets/esri/core/workers/chunks/2b3a8a53cd68f666676b.js +1 -0
  24. package/assets/esri/core/workers/chunks/{4d16b6ac52e25bd7e6aa.js → 32a51ce8e1a362115c89.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{392941013107bbd96503.js → 365ad1ffd496ed86637b.js} +1 -1
  26. package/assets/esri/core/workers/chunks/375eac59c9f88c7572db.js +2 -0
  27. package/assets/esri/core/workers/chunks/{eab74d830c2eaa9d133b.js → 4869e2f35aaf6b058281.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{10941b50f5933d168df6.js → 521a671182b0f79e3624.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{c2f3fc1b34a6782b431f.js → 5351e71ce7839636d06d.js} +1 -1
  30. package/assets/esri/core/workers/chunks/5b515b5741733bcb4645.js +1 -0
  31. package/assets/esri/core/workers/chunks/{1669f1bf959c4e3083da.js → 5c0b3c76a7bc971c61dc.js} +1 -1
  32. package/assets/esri/core/workers/chunks/5c830cce32710d70dfa6.js +1 -0
  33. package/assets/esri/core/workers/chunks/5e9bd5ed6ecee5b15127.js +1 -0
  34. package/assets/esri/core/workers/chunks/5f2e246ffcbdedea4de5.js +1 -0
  35. package/assets/esri/core/workers/chunks/617328964d480d4a3a45.js +1 -0
  36. package/assets/esri/core/workers/chunks/64da1ad9df9094ef5c12.js +1 -0
  37. package/assets/esri/core/workers/chunks/650614a9e4871714c42e.js +1 -0
  38. package/assets/esri/core/workers/chunks/66baacbef23291eab853.js +1 -0
  39. package/assets/esri/core/workers/chunks/7278cc37e85f0242f19b.js +1 -0
  40. package/assets/esri/core/workers/chunks/{3c597d8ef898627b8f93.js → 768bbc910be6c65ac107.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{a1f36240a31057f998da.js → 79dc7045d9a2d43ba8df.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{f9da5c81535eaffc8b9c.js → 7f07f490c6fcc794c8d9.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{2b386374330d96387aec.js → 851fc5290497991ba001.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{7132420980f77b6a871b.js → 8cafdd4addd366795600.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{30cdb2d1d9f018f1642d.js → 9032c040b214b5af775b.js} +1 -1
  46. package/assets/esri/core/workers/chunks/{ff8ec6369c8a1bee9bb4.js → 908f171b9c512d738dea.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{c7799ba861ac5af08e6a.js → 92d4e962284e13ba2fc5.js} +1 -1
  48. package/assets/esri/core/workers/chunks/970d971551e42f7ae08d.js +1 -0
  49. package/assets/esri/core/workers/chunks/9802770413ad814dab29.js +1 -0
  50. package/assets/esri/core/workers/chunks/{6e8cfe69617876ee0dac.js → a69f1879735a031f62e9.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{af804beb43d4d10c54d9.js → a9f35127c3f5bf42036b.js} +1 -1
  52. package/assets/esri/core/workers/chunks/b5ced451d331ca1ffb68.js +1 -0
  53. package/assets/esri/core/workers/chunks/beb53b372d356800f333.js +1 -0
  54. package/assets/esri/core/workers/chunks/{8f12a559dbf284c21e2f.js → bf4d2f42d31861ea1046.js} +1 -1
  55. package/assets/esri/core/workers/chunks/c2aa3b1344b42a904234.js +1 -0
  56. package/assets/esri/core/workers/chunks/{9a9b1250be3e20499d75.js → ca88a364ef911526102e.js} +1 -1
  57. package/assets/esri/core/workers/chunks/cdeb6aec578a1c07d663.js +1 -0
  58. package/assets/esri/core/workers/chunks/cf5e4cf9b1aa37eeb6b0.js +1 -0
  59. package/assets/esri/core/workers/chunks/d0adf059085ddf7151dd.js +1 -0
  60. package/assets/esri/core/workers/chunks/d2af5342fbe80e2d8c60.js +1 -0
  61. package/assets/esri/core/workers/chunks/d3d024b3d2bb8fbbf760.js +1 -0
  62. package/assets/esri/core/workers/chunks/{80bfb5e5d613d2c412bf.js → dbafe96ce37bb82d0584.js} +1 -1
  63. package/assets/esri/core/workers/chunks/e4e0c5a45cf32973d5d5.js +1 -0
  64. package/assets/esri/core/workers/chunks/{093aa05fbde548bf9040.js → e5927f9d0e757ec4c22a.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{b15a02bdcd78a1a51bd6.js → e72ca52d930afb5650af.js} +1 -1
  66. package/assets/esri/core/workers/chunks/{465cc0e00f03cdb640b2.js → e7402dfd683f82878360.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{8838ff9668b472af16a1.js → ef0eae13408cbf83a64f.js} +1 -1
  68. package/assets/esri/core/workers/chunks/f1767b8ba82fdd9bd947.js +1 -0
  69. package/assets/esri/core/workers/chunks/{f835eea9f617556c7276.js → f6e3954ddbb5993d56df.js} +1 -1
  70. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  71. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  72. package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
  73. package/assets/esri/themes/base/widgets/_Grid.scss +5 -0
  74. package/assets/esri/themes/dark/main.css +1 -1
  75. package/assets/esri/themes/light/main.css +1 -1
  76. package/assets/esri/themes/light/view.css +1 -1
  77. package/assets/esri/views/interactive/tooltip/t9n/Tooltip.json +1 -1
  78. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_en.json +1 -1
  79. package/chunks/ComponentShader.glsl.js +11 -11
  80. package/chunks/DefaultMaterial.glsl.js +1 -1
  81. package/chunks/HUDMaterial.glsl.js +28 -36
  82. package/chunks/ImageMaterial.glsl.js +1 -1
  83. package/chunks/Jpg.js +1 -1
  84. package/chunks/Path.glsl.js +7 -7
  85. package/chunks/Pattern.glsl.js +1 -1
  86. package/chunks/RibbonLine.glsl.js +2 -2
  87. package/chunks/ShadowHighlight.glsl.js +1 -1
  88. package/chunks/Terrain.glsl.js +5 -5
  89. package/chunks/Water.glsl.js +5 -5
  90. package/chunks/Zlib.js +1 -1
  91. package/chunks/lyr3DMain.js +1 -1
  92. package/chunks/lyr3DWorker.js +1 -1
  93. package/chunks/vxlLayer.js +1 -1
  94. package/config.js +1 -1
  95. package/core/arrayUtils.js +1 -1
  96. package/geometry/support/zscale.js +1 -1
  97. package/kernel.js +1 -1
  98. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  99. package/layers/SceneLayer.d.ts +16 -10
  100. package/layers/graphics/data/QueryEngineResult.js +1 -1
  101. package/layers/graphics/featureConversionUtils.js +1 -1
  102. package/layers/ogc/ogcFeatureUtils.js +1 -1
  103. package/layers/raster/formats/ImageCanvasDecoder.js +1 -1
  104. package/layers/raster/formats/JpgPlus.js +1 -1
  105. package/layers/raster/formats/RasterCodec.js +1 -1
  106. package/layers/raster/formats/TiffDecoder.js +1 -1
  107. package/layers/save/featureLayerUtils.js +1 -1
  108. package/layers/save/groupLayerUtils.js +1 -1
  109. package/layers/save/mapImageLayerUtils.js +1 -1
  110. package/layers/support/Sublayer.d.ts +6 -0
  111. package/layers/support/Sublayer.js +1 -1
  112. package/layers/support/SubtypeSublayer.js +1 -1
  113. package/layers/support/layerUtils.js +1 -1
  114. package/package.json +3 -3
  115. package/rest/query/operations/pbfFeatureSetUtils.js +1 -1
  116. package/rest/query/operations/pbfFlatFeatureSet.js +1 -1
  117. package/rest/query/operations/pbfOptimizedFeatureSet.js +1 -1
  118. package/support/revision.js +1 -1
  119. package/third-party-notices.txt +2 -2
  120. package/views/2d/engine/ManagedCanvas.js +1 -1
  121. package/views/2d/engine/vectorTiles/SpriteMosaic.js +1 -1
  122. package/views/2d/engine/vectorTiles/TileHandler.js +1 -1
  123. package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
  124. package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
  125. package/views/2d/engine/webgl/GlyphSource.js +1 -1
  126. package/views/2d/engine/webgl/TextureManager.js +1 -1
  127. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  128. package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueSymbol.js +1 -1
  129. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  130. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  131. package/views/2d/layers/TileLayerView2D.js +1 -1
  132. package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
  133. package/views/2d/layers/features/Processor.js +1 -1
  134. package/views/2d/layers/features/processor/AProcessorStrategy.js +1 -1
  135. package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
  136. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  137. package/views/3d/analysis/Viewshed/ViewshedConfiguration.js +1 -1
  138. package/views/3d/environment/EnvironmentManager.js +1 -1
  139. package/views/3d/layers/i3s/I3SClientMaterialUtil.js +1 -1
  140. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  141. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  142. package/views/3d/support/MemoryController.js +1 -1
  143. package/views/3d/terrain/OverlayRenderTargets.js +1 -1
  144. package/views/3d/terrain/OverlayRenderer.js +1 -1
  145. package/views/3d/terrain/TerrainRenderer.js +1 -1
  146. package/views/3d/terrain/TileCompositor.js +1 -1
  147. package/views/3d/webgl-engine/collections/Component/ComponentDrawParameters.js +1 -1
  148. package/views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js +2 -2
  149. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  150. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  151. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  152. package/views/3d/webgl-engine/core/renderPasses/AllRenderPasses.js +1 -1
  153. package/views/3d/webgl-engine/core/renderPasses/RenderPass.js +1 -1
  154. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  155. package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js +1 -1
  156. package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutputConfiguration.js +1 -1
  157. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +1 -1
  158. package/views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js +1 -1
  159. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +4 -4
  160. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js +2 -2
  161. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +1 -1
  162. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js +1 -1
  163. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +1 -1
  164. package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +1 -1
  165. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +1 -1
  166. package/views/3d/webgl-engine/effects/RenderPlugin.js +1 -1
  167. package/views/3d/webgl-engine/effects/WeatherFader.js +1 -1
  168. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizer.js +1 -1
  169. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  170. package/views/3d/webgl-engine/effects/geometry/ObjectAndLayerIDRenderNode.js +1 -1
  171. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  172. package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
  173. package/views/3d/webgl-engine/lib/GLMaterial.js +1 -1
  174. package/views/3d/webgl-engine/lib/Material.js +1 -1
  175. package/views/3d/webgl-engine/lib/OrderIndependentTransparency.js +1 -1
  176. package/views/3d/webgl-engine/lib/RenderContext.js +1 -1
  177. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  178. package/views/3d/webgl-engine/lib/RenderingContext.js +1 -1
  179. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  180. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  181. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  182. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  183. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  184. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  185. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  186. package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
  187. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  188. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  189. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  190. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  191. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  192. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  193. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  194. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  195. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  196. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  197. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  198. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  199. package/views/3d/webgl-engine/materials/TriangleMaterial.js +1 -1
  200. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  201. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  202. package/views/3d/webgl-engine/materials/renderers/VaoRenderer.js +1 -1
  203. package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
  204. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  205. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  206. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  207. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  208. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  209. package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
  210. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  211. package/views/3d/webgl-engine/shaders/MeasurementArrowTechnique.js +1 -1
  212. package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +10 -10
  213. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  214. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  215. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
  216. package/views/3d/webgl-engine/shaders/TerrainTechnique.js +1 -1
  217. package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
  218. package/views/interactive/GraphicManipulator.js +1 -1
  219. package/views/interactive/tooltip/content/TooltipContentDynamic.js +1 -1
  220. package/views/interactive/tooltip/infos/DynamicTooltipInfo.js +1 -1
  221. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  222. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DTool.js +1 -1
  223. package/widgets/Editor/EditorViewModel.d.ts +1 -1
  224. package/widgets/Editor.d.ts +2 -1
  225. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  226. package/widgets/FeatureTable.js +1 -1
  227. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  228. package/widgets/Sketch/support/PluginManager.js +1 -1
  229. package/assets/esri/core/workers/chunks/02a0a58ca5916db1db19.js +0 -1
  230. package/assets/esri/core/workers/chunks/03c8453ae72a4e190252.js +0 -1
  231. package/assets/esri/core/workers/chunks/04981ae9d7728208ffce.js +0 -1
  232. package/assets/esri/core/workers/chunks/0e669a04999feb9f98c9.js +0 -1
  233. package/assets/esri/core/workers/chunks/23af269e88f9ac101ffb.js +0 -1
  234. package/assets/esri/core/workers/chunks/244dd7a948ca8a7dc6ef.js +0 -1
  235. package/assets/esri/core/workers/chunks/26cafd20c8d03c274389.js +0 -1
  236. package/assets/esri/core/workers/chunks/2fa86dacc8a12a6a6c43.js +0 -1
  237. package/assets/esri/core/workers/chunks/3e26f9af6b8c75bad97a.js +0 -1
  238. package/assets/esri/core/workers/chunks/42b556d56013350c9d80.js +0 -1
  239. package/assets/esri/core/workers/chunks/5a6a6e7151085a3cd3dd.js +0 -1
  240. package/assets/esri/core/workers/chunks/5eb9fdb076488de9cd83.js +0 -1
  241. package/assets/esri/core/workers/chunks/65865c25487d23dd2e31.js +0 -1
  242. package/assets/esri/core/workers/chunks/65ea5028eb12457a3aeb.js +0 -1
  243. package/assets/esri/core/workers/chunks/73a008b48e29eb6f2064.js +0 -2
  244. package/assets/esri/core/workers/chunks/80a1ccabd4257cc61e0d.js +0 -1
  245. package/assets/esri/core/workers/chunks/8333561a938bcdf6c2e6.js +0 -1
  246. package/assets/esri/core/workers/chunks/91718795fc4ca6516ac7.js +0 -1
  247. package/assets/esri/core/workers/chunks/93846f8b77fc802069a7.js +0 -1
  248. package/assets/esri/core/workers/chunks/9b80569819cd1c72a9ff.js +0 -1
  249. package/assets/esri/core/workers/chunks/b056b4c79bcd542dd1d2.js +0 -1
  250. package/assets/esri/core/workers/chunks/b553264db0f10bb8c5f7.js +0 -1
  251. package/assets/esri/core/workers/chunks/b6e63d8ce3c9ac9762f4.js +0 -1
  252. package/assets/esri/core/workers/chunks/c1cae45a159a5373ac00.js +0 -1
  253. package/assets/esri/core/workers/chunks/c4f64195e44986644993.js +0 -1
  254. package/assets/esri/core/workers/chunks/ca6012135929b028ea1b.js +0 -1
  255. package/assets/esri/core/workers/chunks/de79645e559a2d1ffa67.js +0 -1
  256. package/assets/esri/core/workers/chunks/ea356a5b90ea44b5cbe1.js +0 -1
  257. package/assets/esri/core/workers/chunks/f0e6a26a3625068b08ab.js +0 -1
  258. package/assets/esri/core/workers/chunks/f36a234ef35faf8ca04d.js +0 -1
  259. package/views/2d/engine/vectorTiles/GlyphMosaic.js +0 -2
  260. package/views/2d/engine/vectorTiles/GlyphSource.js +0 -2
  261. package/views/2d/engine/vectorTiles/RectangleBinPack.js +0 -2
  262. /package/assets/esri/core/workers/chunks/{73a008b48e29eb6f2064.js.LICENSE.txt → 375eac59c9f88c7572db.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../Color.js";import{addTokenParameter as i}from"../../../kernel.js";import s from"../../../request.js";import l from"../../../core/Accessor.js";import{isSome as r}from"../../../core/arrayUtils.js";import n from"../../../core/Collection.js";import{JSONMap as a}from"../../../core/jsonMap.js";import o from"../../../core/Logger.js";import{clamp as c}from"../../../core/mathUtils.js";import{debounce as u}from"../../../core/promiseUtils.js";import{on as d,watch as y,initial as h,whenOnce as f}from"../../../core/reactiveUtils.js";import{px2pt as m}from"../../../core/screenUtils.js";import{parseWhereClause as p}from"../../../core/sql.js";import{addQueryParameters as g}from"../../../core/urlUtils.js";import{property as b,subclass as _}from"../../../core/accessorSupport/decorators.js";import{runUntracked as S}from"../../../core/accessorSupport/tracking.js";import{EffectView as w}from"../../../layers/effects/EffectView.js";import{getPixelValueRange as v}from"../../../layers/raster/formats/pixelRangeUtils.js";import{getEffectiveDisplayFilter as L}from"../../../layers/support/displayFilterUtils.js";import{ExportImageParameters as E}from"../../../layers/support/ExportImageParameters.js";import{collectFields as F,collectArcadeFieldNames as C}from"../../../layers/support/fieldUtils.js";import{isFeatureLayer as I,getFieldConfigurationsContainer as R}from"../../../layers/support/layerUtils.js";import{fromJSON as V}from"../../../renderers/support/jsonUtils.js";import{isSupportedRenderer3D as D}from"../../../renderers/support/rendererConversion.js";import x from"../../../renderers/visualVariables/SizeVariable.js";import z from"../../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import{updateReferenceSizeSymbol as T}from"../../../smartMapping/renderers/support/referenceSizeUtils.js";import j from"../../../symbols/SimpleFillSymbol.js";import k from"../../../symbols/SimpleMarkerSymbol.js";import{applyCIMSymbolColor as P}from"../../../symbols/support/cimSymbolUtils.js";import{renderSymbol as M}from"../../../symbols/support/renderUtils.js";import{renderColorRampPreviewHTML as O,renderDotDensityPreviewHTML as U,renderPieChartPreviewHTML as A,renderPreviewHTML as B}from"../../../symbols/support/symbolUtils.js";import{getCSSFilterFromEffectList as N,isVolumetricSymbol as $}from"../../../symbols/support/utils.js";import{getEffectiveClusterSizeVariable as H}from"./clusterUtils.js";import{getColorFromPointCloudStops as q,getRampStopsForPointCloud as W,getStretchRampStops as G,getRampStops as J}from"./colorRampUtils.js";import{getHeatmapRampStops as Z}from"./heatmapRampUtils.js";import{getRelationshipRampElement as Q,getRotationAngleForFocus as K}from"./relationshipRampUtils.js";import{getRampStops as X,realWorldMaxSize as Y,realWorldMinSize as ee}from"./sizeRampUtils.js";import{specialCharsLessThan as te,specialCharsGreaterThan as ie,getAuthoringInfoVisualVariableByTheme as se,getSymbolForFlowRenderer as le,formatValue as re,getFormatOptions as ne,mergeWhereClauses as ae,getMedianColor as oe,rgbImgSource as ce,getFormatOptionsForVisualVariable as ue}from"./utils.js";import{formatNumberLabel as de}from"../../smartMapping/support/utils.js";const ye=16,he="https://utility.arcgis.com/sharing/tools/legend",fe="esri.layers.ImageryLayer",me="esri.layers.ImageryTileLayer",pe="esri.layers.WCSLayer",ge=/^\s*(return\s+)?\$view\.scale\s*(;)?\s*$/i,be=new a({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"}),_e=new k({size:6,outline:{color:[128,128,128,.5],width:.5}}),Se=new j({style:"solid"});function we(e){return"flow"===e.type}function ve(e){return"vector-field"===e.type}function Le(e){return"raster-colormap"===e.type}function Ee(e){return"raster-stretch"===e.type}function Fe(e){return"raster-shaded-relief"===e.type}function Ce(e){return"esri.renderers.SimpleRenderer"===e.declaredClass}function Ie(e){return"esri.renderers.ClassBreaksRenderer"===e.declaredClass}function Re(e){return"esri.renderers.UniqueValueRenderer"===e.declaredClass}function Ve(e){return"esri.renderers.HeatmapRenderer"===e.declaredClass}function De(e){return ze(e)||Te(e)||je(e)||xe(e)}function xe(e){return"esri.renderers.PointCloudRGBRenderer"===e.declaredClass}function ze(e){return"esri.renderers.PointCloudClassBreaksRenderer"===e.declaredClass}function Te(e){return"esri.renderers.PointCloudStretchRenderer"===e.declaredClass}function je(e){return"esri.renderers.PointCloudUniqueValueRenderer"===e.declaredClass}function ke(e){return"esri.renderers.DotDensityRenderer"===e.declaredClass}function Pe(e){return"esri.renderers.PieChartRenderer"===e.declaredClass}function Me(e,t){return Ce(e)||Ie(e)||Re(e)||Ve(e)||ke(e)||Pe(e)?"2d"===t.type||D(e):Ee(e)||Le(e)||Fe(e)||ze(e)||Te(e)||je(e)||ve(e)||we(e)}function Oe(e){return"esri.layers.BuildingSceneLayer"===e.declaredClass}function Ue(e){return"esri.layers.SubtypeGroupLayer"===e.declaredClass}function Ae(e){return"esri.layers.VoxelLayer"===e.declaredClass}function Be(e){return"esri.layers.WMSLayer"===e.declaredClass}function Ne(e){return"esri.layers.WMTSLayer"===e.declaredClass}function $e(e){return"esri.layers.MapImageLayer"===e.declaredClass}function He(e){return"esri.layers.TileLayer"===e.declaredClass}function qe(e){return e.declaredClass===fe}function We(e){return e.declaredClass===me}function Ge(e){return e.declaredClass===pe}function Je(e){return"stretch-ramp"===e.type}function Ze(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type}function Qe(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type&&"above-and-below"===t?.univariateTheme}function Ke(e){return"sublayers"in e}function Xe(e){return e&&"symbol"in e}function Ye(e,t){const{field:i,field2:s,field3:l,fieldDelimiter:r,valueExpression:n}=e;if(!i)return null;const a=!(!i&&!n||!s&&!l)?t?.toString().split(r||""):[t],o=i?{[i]:a?.[0]}:null;return o&&(s&&(o[s]=a?.[1]),l&&(o[l]=a?.[2])),o}const et=new k({style:"path",path:"M10,5 L5,0 0,5 M5,0 L5,15",size:15,outline:{width:1,color:[85,85,85,1]}});let tt={};const it=new WeakMap;let st=class extends l{constructor(e){super(e),this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._loading=!1,this._webStyleSymbolCache=new Map,this._dotDensityUrlCache=new Map,this._scaleDrivenSizeVariable=null,this._clusterSizeVariable=null,this._layerDefinitionExpression=null,this._layerDefinitionExpressionClause=null,this._layerDisplayFilter=null,this._layerDisplayFilterClause=null,this.children=new n,this.layerView=null,this.layer=null,this.legendElements=[],this.parent=null,this.hideLayersNotInCurrentView=!1,this.keepCacheOnDestroy=!1,this.respectLayerDefinitionExpression=!1,this.respectLayerVisibility=!0,this.sublayerIds=[],this.title=null,this.view=null}initialize(){const e=()=>this.notifyChange("ready");this.addHandles([d(()=>this.children,"change",t=>{const{added:i,removed:s}=t;i.forEach(t=>{const i=`activeLayerInfo-ready-watcher-${t.layer.uid}`;this.addHandles(y(()=>t.ready,e,h),i)}),s.forEach(e=>this.removeHandles(e.layer.uid)),e()})]),this.keepCacheOnDestroy||(tt={})}destroy(){this._webStyleSymbolCache=null,this._dotDensityUrlCache=null,this._scaleDrivenSizeVariable=null,this.keepCacheOnDestroy||(tt=null),this._layerDefinitionExpressionClause=null}get cssEffectFilter(){const{layer:e,scale:t}=this,i="effect"in e?e.effect:null;if(!i)return null;const s=new w({effect:i});return s.endTransition(),s.scale=t,N(s,!0)}get loading(){return this.children.length>0?this.children.some(e=>e.loading):this._loading}get opacity(){const e=this.layer.opacity,t=this.parent?.opacity,i=this.layer.parent,s=i&&"uid"in i?this._getParentLayerOpacity(i):null;return null!=t?t*e:null!=s?s*e:e}get ready(){return S(()=>null===this.layer||(this.children.length>0?this._isGroupActive():this.legendElements.length>0))}get scale(){return this.view?.scale??0}get isScaleDriven(){const e=this.layer;if(null===e)return!1;if("effect"in e&&e.effect&&Array.isArray(e.effect))return!0;if("featureReduction"in e&&e.featureReduction){if("cluster"===e.featureReduction.type)return!0;if("binning"===e.featureReduction.type&&"renderer"in e.featureReduction&&e.featureReduction.renderer)return this._isRendererScaleDriven(e.featureReduction.renderer)}return"renderer"in e&&e.renderer?!!("displayFilterInfo"in e&&e.displayFilterInfo&&Re(e.renderer))||this._isRendererScaleDriven(e.renderer):this._isLayerScaleDriven(this.layer)}get version(){return this.commitProperty("ready"),S(()=>this._get("version")+1)}async buildLegendElementsForFeatureCollections(e){this._loading=!0;if(!(!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView()))return this.legendElements=[],this._loading=!1,void this.notifyChange("ready");const t=Array.from(e,e=>{if(I(e))return this._getRendererLegendElements(e.renderer,{title:e.title});if(e.featureSet?.features.length){const t=e.layerDefinition,i=t?.drawingInfo,s=i&&V(i.renderer),l=be.read(t.geometryType);return s?this._getRendererLegendElements(s,{title:e.name,geometryType:l}):(o.getLogger(this).warn("drawingInfo not available!"),null)}return null});try{const e=[],i=await Promise.allSettled(t);for(const t of i)if("fulfilled"===t.status)for(const i of t.value??[])e.push(i);this.legendElements=e}catch(i){o.getLogger(this).warn("error while building legend for layer!",i)}finally{this._loading=!1,this.notifyChange("ready")}}async buildLegendElementsForRenderer(e){try{this._loading=!0;const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getRendererLegendElements(e):[]}catch(t){o.getLogger(this).warn("error while building legend for layer!",t)}finally{this._loading=!1,this.notifyChange("ready")}}async buildLegendElementsForFeatureReduction(e){try{this._loading=!0,await this._waitForLayerViewUpdate(this.layerView);const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getLegendElementsForFeatureReduction(e):[]}catch(t){o.getLogger(this).warn("error while building legend for layer!",t)}finally{this._loading=!1,this.notifyChange("ready")}}async buildLegendElementsForTools(){this._loading=!0;const e=this.layer;if(Ae(e))await this._constructLegendElementsForVoxelLayer();else if(Ne(e))this._constructLegendElementsForWMTSlayer();else if(Be(e))await this._constructLegendElementsForWMSSublayers();else if(Oe(e))await this._constructLegendElementsForBuildingSceneLayer();else if($e(e)||He(e)||Ue(e))await this._constructLegendElementsForSublayers();else{this.removeHandles("imageryLayers-watcher");let t="default";if(qe(e)){const i=e;t=(i?.rasterFunction?.functionName||"default")+"_"+(e.bandIds?.length?e.bandIds.join(""):"###")}if(We(e)||"link-chart"===e.type)return;await this._getLegendLayers(`${e.uid}-${t}`).then(async t=>{this.legendElements=[];const i=t.map(async t=>{if(qe(e)){const t=y(()=>[e.rasterFunction,e.bandIds],()=>u(async()=>{tt.default=null,e.renderer?await this.buildLegendElementsForRenderer(e.renderer):await this.buildLegendElementsForTools()})());this.addHandles(t,"imageryLayers-watcher")}const i=this._generateSymbolTableElementForLegendLayer(t);i?.infos.length&&(qe(e)&&(i.title=e.title),this.legendElements.push(i))});await Promise.allSettled(i)}).catch(e=>{o.getLogger(this).warn("Request to server for legend has failed!",e)})}this._loading=!1,this.notifyChange("ready")}async _isLayerInCurrentView(e){return this._checkFeatureCountForExpression(e,this.view.extent)}_getParentLayerOpacity(e){let t=1;const i=e.parent;return i&&"uid"in i&&(t=this._getParentLayerOpacity(i)),e.opacity*t}_isGroupActive(){return this.children.some(e=>e.ready)}_isRendererScaleDriven(e){if("dot-density"===e.type)return!0;const t="valueExpression"in e?e.valueExpression:null;if(ge.test(t))return!0;const i="visualVariables"in e?e.visualVariables:null;return!!i?.some(e=>this._isScaleDrivenSizeVariable(e))||this._hasScaleDrivenSymbols(e)}_hasScaleDrivenSymbols(e){switch(e.type){case"simple":return this._isScaleDrivenSymbol(e.symbol);case"class-breaks":return this._isScaleDrivenSymbol(e.defaultSymbol)||e.classBreakInfos.some(e=>this._isScaleDrivenSymbol(e.symbol));case"unique-value":return this._isScaleDrivenSymbol(e.defaultSymbol)||!!e.uniqueValueInfos?.some(e=>this._isScaleDrivenSymbol(e.symbol))}return!1}_isScaleDrivenSymbol(e){if("cim"===e?.type){const{primitiveOverrides:t,minScale:i,maxScale:s}=e.data,l=t?.some(e=>(e.valueExpressionInfo?.expression||"").includes("$view.scale"))??!1;return null!=i||null!=s||l}return!1}_isScaleDrivenSizeVariable(e){if(e&&"size"!==e.type)return!1;const t=e,i=t.minSize,s=t.maxSize;return!("object"!=typeof i||!i||!this._isScaleDrivenSizeVariable(i))||(!("object"!=typeof s||!s||!this._isScaleDrivenSizeVariable(s))||ge.test(t.valueExpression))}_isLayerScaleDriven(e){if("minScale"in e&&e.minScale>0||"maxScale"in e&&e.maxScale>0)return!0;if("sublayers"in e&&e.sublayers)return e.sublayers.some(e=>this._isLayerScaleDriven(e));const t=e.parent;if(!1===e.loaded&&t&&$e(t)&&"source"in e&&e.source&&"map-layer"===e.source.type)for(const i of t.sourceJSON.layers??[])if(i.id===e.source.mapLayerId&&(i.minScale>0||i.maxScale>0))return!0;return!1}async _constructLegendElementsForVoxelLayer(){this._loading=!0,this.legendElements=[],this.removeHandles("voxel-style-watcher"),this.removeHandles("voxel-current-variable");const e=this.layer;this.addHandles(y(()=>e.currentVariableId,()=>this._constructLegendElementsForVoxelLayer()),"voxel-current-variable"),this.addHandles(y(()=>e.getVariableStyles(),()=>this._constructLegendElementsForVoxelLayer()),"voxel-style-watcher");const t=e.getVariableStyle(null),i=[];if(t)if(t.uniqueValues?.length){const e=[];t.uniqueValues.forEach(t=>{t.enabled&&e.push({label:t.label||`${t.value}`,value:t.value,symbol:new j({color:t.color,outline:null})})}),e.length&&i.push({type:"symbol-table",title:t.label,infos:e})}else if(t.transferFunction){const{colorStops:e,stretchRange:s}=t.transferFunction,l=e.toArray().reverse(),r=s.map((e,t)=>`${0===t?te:ie} ${de(e)}`).reverse(),n=l.map(e=>({color:e.color,value:null,label:null}));n[0].label=r[0],n[n.length-1].label=r[1],i.push({type:"color-ramp",title:t.label,infos:n,preview:O(l.map(e=>e.color))})}await this._generatePreviewsForLegendElements(i,{opacity:e.opacity}),this.legendElements=i,this._loading=!1,this.notifyChange("ready")}_constructLegendElementsForWMTSlayer(){this._loading=!0,this.legendElements=[],this.removeHandles("wmts-activeLayer-watcher");const e=this.layer.activeLayer;this.addHandles(y(()=>{const{layer:e}=this;return e&&"activeLayer"in e&&e.activeLayer},()=>this._constructLegendElementsForWMTSlayer()),"wmts-activeLayer-watcher");const t=e.styleId?e.styles?.find(({id:t})=>t===e.styleId)?.legendUrl:void 0;t&&(this.legendElements=[{type:"symbol-table",title:e.title,infos:[{src:t,opacity:this.opacity}]}]),this._loading=!1,this.notifyChange("ready")}async _constructLegendElementsForWMSSublayers(){this._loading=!0,this.legendElements=[],this.removeHandles("wms-sublayers-watcher");const e=this.layer;let t=null;(e.customParameters||e.customLayerParameters)&&(t={...e.customParameters,...e.customLayerParameters}),this.addHandles(y(()=>{const{layer:e}=this;return e&&"sublayers"in e&&e.sublayers},()=>this._constructLegendElementsForWMSSublayers()),"wms-sublayers-watcher"),this.legendElements=await this._generateLegendElementsForWMSSublayers(e.sublayers,t),this._loading=!1,this.notifyChange("ready")}async _generateLegendElementsForWMSSublayers(e,t){const i=this.layer,s=[];this.addHandles(e.on("change",()=>this._constructLegendElementsForWMSSublayers()),"wms-sublayers-watcher");const l=this.sublayerIds?.map(e=>i.findSublayerById(e))?.filter(r)??[],n=l.length?l:e.toArray();for(const r of n){const e=y(()=>[r.title,r.visible,r.legendEnabled],()=>this._constructLegendElementsForWMSSublayers());if(this.addHandles(e,"wms-sublayers-watcher"),!this.respectLayerVisibility||r.visible&&r.legendEnabled){const e=await this._generateSymbolTableElementForWMSSublayer(r,t);e?.infos.length&&s.unshift(e)}}return s}async _generateSymbolTableElementForWMSSublayer(e,t){if(!e.legendUrl&&e.sublayers){const i=(await this._generateLegendElementsForWMSSublayers(e.sublayers,t)).filter(e=>e);return{type:"symbol-table",title:e.title,infos:i}}return this._generateSymbolTableElementForLegendUrl(e,t)}async _generateSymbolTableElementForLegendUrl(e,t){let i=e.legendUrl;if(!i)return;const l={type:"symbol-table",title:e.title||e.name||String(e.id??""),infos:[]};t&&(i=g(i,t));let r=null;const n=e.layer?.opacity;try{r=(await s(i,{responseType:"image"})).data,r&&(r.style.opacity=n)}catch{}return l.infos.push({src:i,preview:r,opacity:n}),l}_getLegendLayers(e,t){const i=tt&&tt[e];return i?Promise.resolve(i):this._legendRequest(t).then(t=>{const i=t.layers;return tt[e]=i,i})}_legendRequest(e){const t=this.layer;let i={f:"json",dynamicLayers:e};if(qe(t)){const e=t.exportImageServiceParameters.rasterFunction;if(e&&(i.renderingRule=JSON.stringify(e.functionDefinition?.toJSON()||e.toJSON())),t.bandIds&&(i.bandIds=t.bandIds.join()),t.raster||t.viewId||t.customParameters){const{raster:e,viewId:s,customParameters:l}=t;i={raster:e,viewId:s,...i,...l}}}let l=t.url.replace(/(\/)+$/,"");if("version"in t&&+t.version>=10.01){const e=l.indexOf("?");e>-1?l=l.slice(0,e)+"/legend"+l.slice(e):l+="/legend"}else{const e=l.toLowerCase().indexOf("/rest/"),t=-1===e?l:l.slice(0,e)+l.slice(e+5);l=he+"?soapUrl="+encodeURI(t)+"&returnbytes=true"}return s(l,{query:i}).then(e=>e.data)}async _constructLegendElementsForBuildingSceneLayer(){this._loading=!0,this.legendElements=[],this.removeHandles("sublayers-watcher");const e=this.layer;this.addHandles(y(()=>e.sublayers,()=>this._constructLegendElementsForBuildingSceneLayer()),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForBuildingSublayers(e.sublayers,this.opacity)}catch(t){o.getLogger(this).warn("Request to server for legend has failed!",t)}finally{this._loading=!1,this.notifyChange("ready")}}async _generateLegendElementsForBuildingSublayers(e,t){let i=[];this.addHandles(e.on("change",()=>this._constructLegendElementsForBuildingSceneLayer()),"sublayers-watcher");const s=e.toArray();for(const l of s){const e=y(()=>["renderer"in l&&l.renderer,l.opacity,l.title,l.visible],()=>this._constructLegendElementsForBuildingSceneLayer());if(this.addHandles(e,"sublayers-watcher"),!this.respectLayerVisibility||l.visible){const e=null!=l?.opacity?l.opacity:null,s=null!=e?e*t:t;if("building-group"===l.type){const e={type:"symbol-table",title:l.title,infos:[]},t=await this._generateLegendElementsForBuildingSublayers(l.sublayers,s);e.infos.push(...t),i=[e,...i]}else if(l.renderer){i=[...await this._getRendererLegendElements(l.renderer,{title:l.title,opacity:s,sublayer:l}),...i]}}}return i.filter(e=>!!e&&(!("infos"in e)||!e.infos||e.infos.length>0))}async _constructLegendElementsForSublayers(){this._loading=!0,this.removeHandles("sublayers-watcher");const e=this.layer;if(!($e(e)||He(e)||Ue(e))||this.hideLayersNotInCurrentView&&!await this._isLayerInCurrentView())return this.legendElements=[],this._loading=!1,void this.notifyChange("ready");this.addHandles(y(()=>e.sublayers,()=>this._constructLegendElementsForSublayers),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForSublayers(e.sublayers,this.opacity)}catch(t){o.getLogger(this).warn("Request to server for legend has failed!",t)}finally{this._loading=!1,this.notifyChange("ready")}}async _generateLegendElementsForSublayers(e,t,i){const s=this.layer;let l=[];this.addHandles(e.on("change",()=>this._constructLegendElementsForSublayers()),"sublayers-watcher");let n=e.toArray();!i&&this.sublayerIds&&this.sublayerIds.length&&(n=Ue(s)?this.sublayerIds.map(e=>s.findSublayerForSubtypeCode(e)).filter(r):this.sublayerIds.map(e=>s.findSublayerById(e)).filter(r));for(const r of n){const e=y(()=>[r.renderer,r.opacity,r.title,r.visible,r.legendEnabled],()=>this._constructLegendElementsForSublayers());this.addHandles(e,"sublayers-watcher");const s=r.createQuery().where,n=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView(s),a=!this.respectLayerVisibility||r.visible&&r.legendEnabled&&this._isSublayerInScale(r);if(n&&a){const e=null!=r?.opacity?r.opacity:null,s=null!=e?e*t:t,n=!Ke(r)||r.originIdOf("renderer")>2&&!r.sublayers;if(r.renderer&&n){await r.load();l=[...await this._getRendererLegendElements(r.renderer,{title:r.title,opacity:s,sublayer:r}),...l]}else if(Ke(r)){const e=await this._generateSymbolTableElementForSublayer(r,s,i);e&&l.unshift(e)}}}return l.filter(e=>!!e&&(!("infos"in e)||!e.infos||e.infos.length>0))}async _generateSymbolTableElementForSublayer(e,t,i){if(!i){i=new Map;const t=this.layer,s=e.source;let l=null;if(!(!s||"map-layer"===s.type&&s.mapLayerId===e.id&&(!s.gdbVersion||s.gdbVersion===("gdbVersion"in t&&t.gdbVersion)))||e.originIdOf("renderer")>2||e.originIdOf("labelingInfo")>2||e.originIdOf("labelsVisible")>2){const e=new E({layer:this.layer});l=e.hasDynamicLayers?e.dynamicLayers:null,e.destroy()}const r=l||`${t.uid}-default`;(await this._getLegendLayers(r,l)).forEach(e=>i.set(e.layerId,e))}const s=i.get(e.id);if((!s||s?.subLayerIds&&s.defaultVisibility)&&e.sublayers){const s=await this._generateLegendElementsForSublayers(e.sublayers,t,i);return{type:"symbol-table",title:e.title,infos:s}}return this._generateSymbolTableElementForLegendLayer(s,e,t)}_generateSymbolTableElementForLegendLayer(e,t,i){if(!e?.legend||this.respectLayerVisibility&&!this._isLegendLayerInScale(e,t))return null;const s=t?.renderer;let l=t?.title||e.layerName;if(s&&(!t||t?.originIdOf("renderer")>2)){const e=t?.title||this._getRendererTitle(s,t);e&&(l&&"string"!=typeof e&&"title"in e&&(e.title=l),l=e)}const r={type:"symbol-table",title:l,legendType:e.legendType||null,infos:[]},n=t?this._sanitizeLegendForSublayer(e.legend.slice(),t):e.legend;return e.legendGroups&&e.legendGroups.length>0?e.legendGroups.forEach(s=>{const l={type:"symbol-table",title:s.heading,legendType:e.legendType||null,infos:this._generateSymbolTableElementInfosForLegendLayer(n.filter(e=>e.groupId===s.id),e.layerId,s.heading||r.title||t?.title,i)};l.infos?.length>0&&r.infos.push(l)}):r.infos=this._generateSymbolTableElementInfosForLegendLayer(n,e.layerId,r.title||t?.title,i),r.infos.length>0?r:null}_generateSymbolTableElementInfosForLegendLayer(e,t,s,l){return e.map(e=>{let r=e.url;if(e.imageData&&e.imageData.length>0)r=`data:image/png;base64,${e.imageData}`;else{if(r.startsWith("http"))return null;r=i(`${this.layer.url}/${t}/images/${r}`)}let n=e.label;return"<all other values>"===n&&(n="others"),{previewAriaLabel:n||s,label:n,src:r,opacity:l??this.opacity,width:e.width,height:e.height}}).filter(r)}_isSublayerInScale(e){const t=e.minScale||0,i=e.maxScale||0;return!(t>0&&t<this.scale||i>this.scale)}_isLegendLayerInScale(e,t){const i=t||this.layer;let s=null,l=null,r=!0;return!i.minScale&&0!==i.minScale||!i.maxScale&&0!==i.maxScale?(0===e.minScale&&i.tileInfo&&(s=i.tileInfo.lods[0].scale),0===e.maxScale&&i.tileInfo&&(l=i.tileInfo.lods[i.tileInfo.lods.length-1].scale)):(s=Math.min(i.minScale,e.minScale)||i.minScale||e.minScale,l=Math.max(i.maxScale,e.maxScale)),(s>0&&s<this.scale||l>this.scale)&&(r=!1),r}_sanitizeLegendForSublayer(e,t){if("version"in this.layer&&+this.layer.version<10.1||0===e.length)return e;const i=t.renderer,s=e.some(e=>e.values);let l=0,r=null;return s&&e.some((e,t)=>(e.values||(l=t,r=e,r.label||(r.label="others")),null!=r)),i?"unique-value"===i.type?r&&(e.splice(l,1),e.push(r)):"class-breaks"===i.type&&(r&&e.splice(l,1),i.legendOptions?.order||e.reverse(),r&&e.push(r)):r&&(e.splice(l,1),e.push(r)),e}async _getRendererLegendElements(e,t={}){if(!Me(e,this.view))return o.getLogger(this).warn(`Renderer of type '${e.type}' not supported!`),[];if(De(e))return this._constructPointCloudRendererLegendElements(e,t);if(ke(e))return this._constructDotDensityRendererLegendElements(e);const i=await this._loadRenderer(e);return Pe(i)?this._constructPieChartRendererLegendElements(i):this._constructRendererLegendElements(i,t)}async _getLegendElementsForFeatureReduction(e){let t=null;return"binning"===e.type?t=e.renderer:"cluster"===e.type&&(t=this._getClusterRenderer(e)),t?this._getRendererLegendElements(t,{isFeatureReductionRenderer:!0}):[]}_getPointCloudRendererTitle(e){return(e.legendOptions?.title||e.field)??""}async _constructPointCloudRendererLegendElements(e,t={}){const i=t.title,s=[];let l=null,r=null;if(ze(e))l={type:"symbol-table",title:i||this._getPointCloudRendererTitle(e),infos:[]},e.colorClassBreakInfos.forEach(e=>{l.infos.unshift({label:e.label||e.minValue+" - "+e.maxValue,value:[e.minValue,e.maxValue],symbol:this._getAppliedCloneSymbol(_e,e.color)})});else if(Te(e)){const t=e.stops;let s=null;if(t?.length&&(1===t.length&&(s=t[0].color),!s)){const e=t[0].value,i=t[t.length-1].value;if(null!=e&&null!=i){s=q(e+(i-e)/2,t)}}l={type:"symbol-table",title:null,infos:[{label:null,value:null,symbol:this._getAppliedCloneSymbol(_e,s||_e.color)}]};const n=W(e.stops??[])??[];r={type:"color-ramp",title:i||this._getPointCloudRendererTitle(e),infos:n,preview:O(n.map(e=>e.color))}}else je(e)&&(l={type:"symbol-table",title:i||this._getPointCloudRendererTitle(e),infos:[]},e.colorUniqueValueInfos?.forEach(e=>{l.infos.push({label:e.label||e.values.join(", "),value:e.values.join(", "),symbol:this._getAppliedCloneSymbol(_e,e.color)})}));return l?.infos.length&&s.push(l),r?.infos.length&&s.push(r),await this._generatePreviewsForLegendElements(s,{opacity:this.opacity,symbolConfig:{applyColorModulation:!!e.colorModulation}}),s}async _getElementInfoForDotDensity(e,t){const{color:i,label:s,valueExpressionTitle:l}=t,{backgroundColor:r,outline:n,dotSize:a}=e,o=this.cssEffectFilter,c=a+"-"+i+"-"+r+"-"+(n&&JSON.stringify(n.toJSON()))+"-"+o,u=this._dotDensityUrlCache,d=u.has(c)?u.get(c):U(e,i);u.set(c,d);const y={shape:{type:"image",x:0,y:0,width:d.width,height:d.height,src:d.src},fill:null,stroke:null,offset:[0,0]},h=M([[y]],[d.width,d.height],{cssEffectFilter:this.cssEffectFilter});return{opacity:1,src:d.src,preview:h,width:d.width,height:d.height,previewAriaLabel:s||l}}async _constructDotDensityRendererLegendElements(e){const t=e.calculateDotValue(this.view.scale),i=e.legendOptions?.unit,s={type:"symbol-table",title:{value:t&&Math.round(t),unit:i||""},infos:[]};for(const l of e.attributes){const t=await this._getElementInfoForDotDensity(e,l);t.label=l.label||l.valueExpressionTitle||l.field,s.infos.push(t)}return[s]}async _constructPieChartRendererLegendElements(e){const t=[];let i=null;const s=e.outline;e.attributes.forEach(e=>{const i=new k({color:e.color,outline:s}),l=e.label||e.valueExpressionTitle||e.field;t.push({label:l,symbol:i})});const l=t.length?[...t]:[];if(e.othersCategory?.color&&0!==e.othersCategory?.threshold){const l=new k({color:e.othersCategory.color,outline:s});i=e.othersCategory.label||"Other",t.push({label:i,symbol:l})}if(e.defaultColor?.a){const i=new k({color:e.defaultColor,outline:s});t.push({label:e.defaultLabel,symbol:i})}const r=await this._getVisualVariableLegendElements(e,this.layer)||[];if(t.length){r.unshift({type:"symbol-table",title:null,infos:t});const n=l.filter(e=>e.label!==i).map(e=>e.symbol.color).filter(Boolean),a=A(n,{holePercentage:e.holePercentage,backgroundColor:e.backgroundFillSymbol?.color,cssEffectFilter:this.cssEffectFilter,outline:s});r.unshift({type:"pie-chart-ramp",title:this._getRendererTitle(e,this.layer),infos:t,preview:a})}return await this._generatePreviewsForLegendElements(r,{opacity:this.layer.opacity,cssEffectFilter:this.cssEffectFilter}),r}async _getWhereClause(e,t,i){const s=await p(e,i),l=new Set,{field:r,field2:n,field3:a}=t;F(l,i,[r,n,a]),await C(l,i,null,t.valueExpression);const o=new Set(Array.from(l,e=>e.toLowerCase())),c=s?.fieldNames.map(e=>e.toLowerCase());return c?.some(e=>!o.has(e))?null:s}async _processDefinitionExpression(e,t){if(!("definitionExpression"in e))return;const i=e.definitionExpression;i&&this.respectLayerDefinitionExpression?this._layerDefinitionExpression!==i&&(this._layerDefinitionExpressionClause=await this._getWhereClause(i,t,e.fieldsIndex)):this._layerDefinitionExpressionClause=null,this._layerDefinitionExpression=i}async _processDisplayFilter(e,t){if(!("displayFilterInfo"in e))return;const i=e.displayFilterInfo?L(e.displayFilterInfo,this.view):null;return i?.where?this._layerDisplayFilter?.id!==i?.id&&(this._layerDisplayFilterClause=await this._getWhereClause(i.where,t,e.fieldsIndex)):this._layerDisplayFilterClause=null,this._layerDisplayFilter=i,i}async _constructRendererLegendElements(e,t={}){const{title:i,sublayer:s,isFeatureReductionRenderer:l}=t,r=s||this.layer,n=se(e,"reference-size"),a=se(e,"spike"),o=l&&"renderer"in r&&r.renderer?r.renderer:e;let c=null;Re(o)&&(await this._processDefinitionExpression(r,o),c=await this._processDisplayFilter(r,o)),this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._scaleDrivenSizeVariable=null;const u=await this._getVisualVariableLegendElements(e,r)||[],d={type:"symbol-table",title:i||this._getRendererTitle(e,r),infos:[]};let y=null,h=!1;const f=new Set;if(we(e)&&!this._hasSizeRamp){const t=await le(e);d.infos.push({label:null,symbol:t})}else if(Ze(e)){let t=i;const s=Qe(e)?"univariate-above-and-below-ramp":"univariate-color-size-ramp",l=u.findIndex(e=>"color-ramp"===e.type),r=-1!==l?u.splice(l,1)[0]:null,n=u.findIndex(e=>"size-ramp"===e.type),a=-1!==n?u.splice(n,1)[0]:null,o=[];r&&(t=r.title,o.push(r)),a&&(t=a.title,o.push(a)),o.length>0&&u.push({type:s,title:t,infos:o})}else if(Ve(e)){const t=Z(e);u.push({type:"heatmap-ramp",title:i||this._getRendererTitle(e,r),infos:t,preview:O(t.map(e=>e.color),{cssEffectFilter:this.cssEffectFilter})})}else if(Re(e)){const t=e.authoringInfo;if("relationship"===t?.type){const{numClasses:i,field1:s,field2:l}=t,n=t.focus;if(i&&s&&l){const t=[s,l];let a=K(n)||0;for(const e of t){const{field:t,normalizationField:i,label:s}=e,l=s||{field:this._getFieldAlias(t,r),normField:i&&this._getFieldAlias(i,r)},n=et.clone();n.angle=a,d.infos.push({label:l,symbol:n}),f.add(n),a+=90}const o=Q({focus:n,numClasses:i,infos:e.uniqueValueInfos??[]});u.unshift(o)}}else if(qe(this.layer)||We(this.layer)){const{uniqueValueInfos:t}=e;if(t)for(const e of t)e.symbol&&await this._checkClausesForUVR(o,e.value)&&d.infos.push({label:e.label||e.value,value:e.value,symbol:e.symbol})}else{const{field:t,field2:s,field3:l,fieldDelimiter:a,valueExpression:u,defaultSymbol:y}=e,f=!(!t&&!u||!s&&!l),m=c?.title?.trim(),p=[],{uniqueValueGroups:g}=e;if(g)for(const e of g){const i={type:"symbol-table",title:e.heading,infos:[]},{classes:c}=e;if(c)for(const e of c){const{symbol:c,values:d}=e;if(c){const y=[],h=[];for(const e of d??[]){const{value:i,value2:n,value3:o}=e,c=[],d=[];(t||u)&&(c.push(i),d.push(this._getDomainName(t,i,r)??re(i,ne(r,t,this.view.timeZone)))),s&&(c.push(n),d.push(this._getDomainName(s,n,r)??re(n,ne(r,s,this.view.timeZone)))),l&&(c.push(o),d.push(this._getDomainName(l,o,r)??re(o,ne(r,l,this.view.timeZone)))),y.push(f?c.join(a||""):c[0]),h.push(d.join(" - "))}const m=y.join(", ");let p=e.label;if(!p){const e=h.filter(Boolean);p=e.length?e.join(", "):m}let g=c;"cim"===g.type&&n&&(g=g.clone(),T(g,{innerDotSize:.5*ye,outerRingSize:ye}));let b=!1;for(const e of y)if(b=await this._checkClausesForUVR(o,e),b)break;b&&i.infos.push({label:p,value:m,symbol:g})}}i.infos.length&&p.push(i)}if(p.length){const t=p[0];if(1===p.length&&"title"in t&&!t.title){const e=t.infos?.filter(Xe)??[];d.infos.push(...e)}else y&&(p.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:y}]}),h=!0),d.infos.push(...p);i||e.legendOptions?.title||e.valueExpressionTitle?m&&(d.title=`${d.title} (${m})`):d.title=m}}e.defaultSymbol&&!h&&(d.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),h=!0)}else if(Ie(e)){if(!n&&!a){y=this._isUnclassedRenderer(e);if(!y||!this._hasSizeRamp){const t=e.classBreakInfos.filter(({symbol:e})=>e),i="ascending-values"===e.legendOptions?.order;for(const{label:e,minValue:s,maxValue:l,symbol:n}of t){const t=e||(y?null:`${s} - ${l}`),a={previewAriaLabel:t||d.title||r.title,label:t,value:[s,l],symbol:n};i?d.infos.push(a):d.infos.unshift(a)}y&&(d.title=null),this._updateInfosForClassedSizeRenderer(e,d.infos)}e.defaultSymbol&&!y&&(d.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),h=!0)}}else if(Ee(e))if(We(this.layer)||Ge(this.layer)){const t=await this._constructTileImageryStretchRendererElements(e);Je(t)?u.push(t):d.infos=t}else{const t=this.layer;let i,s;e.customStatistics?.length&&({min:i,max:s}=e.customStatistics[0]);let l=[],r=t.serviceRasterInfo;if(t.rasterFunction)try{r=await t.generateRasterInfo(t.rasterFunction)}catch{}const n=v(r.pixelType);if(1===r.bandCount){const l=t.bandIds?.[0]||0;i=null!=i?i:r.statistics?r.statistics[l].min:n[0],s=null!=s?s:r.statistics?r.statistics[l].max:n[1],i||s?u.push(await this._getStretchLegendElements(e,{min:i,max:s})):this._getServerSideLegend()}else if(1===t.bandIds?.length)i=null!=i?i:r.statistics?r.statistics[t.bandIds[0]].min:n[0],s=null!=s?s:r.statistics?r.statistics[t.bandIds[0]].max:n[1],i||s?u.push(await this._getStretchLegendElements(e,{min:i,max:s})):this._getServerSideLegend();else if(r.bandCount>=3){const{bandInfos:e}=r,{bandIds:i}=t;e.length>=r.bandCount?3===i?.length?(l=i.map(t=>e[t].name),d.infos=this._createSymbolTableElementMultiBand(l)):"lerc"===t.format?(l=[0,1,2].map(t=>e[t].name),d.infos=this._createSymbolTableElementMultiBand(l)):this._getServerSideLegend():"lerc"===t.format?(l=["band1","band2","band3"],d.infos=this._createSymbolTableElementMultiBand(l)):this._getServerSideLegend()}else this._getServerSideLegend()}else if(Le(e))e.colormapInfos.forEach(e=>{d.infos.push({label:e.label,value:e.value,symbol:this._getAppliedCloneSymbol(Se,e.color)})});else if(Ce(e)){let i=e.symbol;switch(t.geometryType){case"point":i="pointSymbol"in r?r.pointSymbol:null;break;case"polyline":i="lineSymbol"in r?r.lineSymbol:null;break;case"polygon":i="polygonSymbol"in r?r.polygonSymbol:null}const s=this._clusterSizeVariable&&this._getClusterSymbol()||!this._hasSizeRamp;e.symbol&&s&&d.infos.push({previewAriaLabel:e.label||d.title||r.title,label:e.label,symbol:i})}else if(ve(e)){e.outputUnit&&(this.title="("+e.toJSON().outputUnit+")"),d.title=e.attributeField;const t=e.getClassBreakInfos();t?.length?t.forEach(e=>{d.infos.push({label:e.minValue+" - "+e.maxValue,symbol:e.symbol})}):d.infos.push({label:e.attributeField,symbol:e.getDefaultSymbol()})}else Fe(e)&&u.push(await this._getStretchLegendElements(e,{min:0,max:255}));const m=e.defaultSymbol;!m||h||Ce(e)||y&&!this._hasColorRamp&&!this._hasSizeRamp&&!this._hasOpacityRamp||u.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:m}]}),d.infos.length&&u.unshift(d);const p=null==t.opacity?this.opacity:t.opacity,g=this._isTallSymbol("visualVariables"in e?e.visualVariables:null),b=qe(this.layer)||We(this.layer);return await this._generatePreviewsForLegendElements(u,{opacity:p,symbolConfig:{isTall:g,isSquareFill:b},cssEffectFilter:this.cssEffectFilter},{arrowMarkerSymbols:f}),e=null,u}async _waitForLayerViewUpdate(e){await f(()=>!e.updating)}async _checkFeatureCountForExpression(e,t){const i=this.layerView;if(!(i&&"createQuery"in i&&"queryFeatureCount"in i))return!0;try{await this._waitForLayerViewUpdate(i);const s=i.createQuery();e&&(s.where=ae(s.where,e)),t&&(s.geometry=t);return await i.queryFeatureCount(s)>0}catch{return!0}}async _checkClausesForUVR(e,t){const i=Ye(e,t);if(!i)return!0;return(!!!(!this._layerDefinitionExpressionClause&&this._layerDefinitionExpression&&this.respectLayerDefinitionExpression||!this._layerDisplayFilterClause&&this._layerDisplayFilter?.where)||await this._checkFeatureCountForExpression(`${e.field} = ${t}`))&&(!this._layerDefinitionExpressionClause||this._layerDefinitionExpressionClause.testFeature(i))&&(!this._layerDisplayFilterClause||this._layerDisplayFilterClause.testFeature(i))}_getServerSideLegend(){setTimeout(()=>this.buildLegendElementsForTools(),0)}_getAllInfos(e){const t=e?.infos;return t?t.reduce((e,t)=>e.concat(this._getAllInfos(t)),[]):[e]}async _constructTileImageryStretchRendererElements(e){const t=this.layer,i=t.symbolizer.rasterInfo??t.raster.rasterInfo;let s,l;const r=e?.customStatistics?.length?e.customStatistics:i?.statistics;if(r)({min:s,max:l}=r[0]);else{const e=v(i.pixelType);s=e[0],l=e[1]}if(t.hasStandardTime()&&(s=t.getStandardTimeValue(s),l=t.getStandardTimeValue(l)),1===i.bandCount||1===t.bandIds?.length)return this._getStretchLegendElements(e,{min:s,max:l});const n=(t?.bandIds?.length?t.bandIds:Array.from(Array(Math.min(i.bandCount,3)).keys())).map(e=>i.bandInfos[e].name);return n.length<3?n.push(n[1]):n.length>3&&n.splice(3),this._createSymbolTableElementMultiBand(n)}async _getStretchLegendElements(e,t){const i=e.colorRamp?.toJSON(),s=G(i,t);return{type:"stretch-ramp",title:"",infos:s,preview:O(s.map(e=>e.color))}}_getClusterSymbol(){const e=this.layer,t="featureReduction"in e&&e.featureReduction,i=t&&"symbol"in t&&t.renderer;return i&&!0!==i?.authoringInfo?.isAutoGenerated?null:t&&"symbol"in t?t.symbol:null}async _getSizeLegendElement(e,t,i,s){return{type:"size-ramp",title:this._clusterSizeVariable?this._getClusterTitle(t):e,infos:await X(i,t,await oe(i),this.scale,this.view,s,this._clusterSizeVariable?this._getClusterSymbol():null)}}_createSymbolTableElementMultiBand(e){const t=[],i=["red","green","blue"];return e.forEach((e,s)=>{t.push({label:{colorName:i[s],bandName:e},src:ce[s],opacity:this.opacity??1})}),t}_updateInfosForClassedSizeRenderer(e,t){const i="class-breaks-size"===e.authoringInfo?.type,s=e.classBreakInfos.some(e=>$(e.symbol));if(i&&s){const i=Y,s=ee,l=e.classBreakInfos.length,r=(i-s)/(l>1?l-1:l);t.forEach((e,t)=>{e.size=i-r*t})}}_isTallSymbol(e){let t=!1,i=!1;if(e)for(let s=0;s<e.length&&(!t||!i);s++){const l=e[s];"size"===l.type&&("height"===l.axis&&(t=!0),"width-and-depth"===l.axis&&(i=!0))}return t&&i}async _generatePreviewsForLegendElements(e,t,i){const s=[];for(const l of e)for(const e of l.infos??[])if("infos"in e&&e.infos&&s.push(this._generatePreviewsForLegendElements([e],t,i)),Xe(e)&&e.symbol&&!e.preview){let r=!0;if("cim"===e.symbol.type){const{minScale:t,maxScale:i}=e.symbol.data;(t&&t<this.scale||i&&i>this.scale)&&(r=!1)}r&&s.push(this._generateSymbolPreviewForInfo(e,{...t,clipBloomEffect:"theme"in l&&"spike"===l.theme,cssEffectFilter:i?.arrowMarkerSymbols?.has(e.symbol)?null:t.cssEffectFilter},i?{applyScaleDrivenSize:!i.arrowMarkerSymbols?.has(e.symbol)}:void 0))}await Promise.all(s)}async _getSize(e,t){let i=null==e.size&&this._hasSizeRamp?m(22):e.size;if(this._scaleDrivenSizeVariable&&t?.applyScaleDrivenSize){const{getSize:t}=await import("../../../renderers/visualVariables/support/visualVariableUtils.js");i=t(this._scaleDrivenSizeVariable,null,{view:this.view.type,scale:this.scale,shape:"simple-marker"===e.symbol.type?e.symbol.style:null})}return i}_getPreviewCIMOptions(e){return{style:"legend",cimOptions:{allowScalingUp:this._hasSizeRamp||!(!this._scaleDrivenSizeVariable||!e?.applyScaleDrivenSize),viewParams:this.isScaleDriven?{viewingMode:"2d"===this.view?.type?"map":this.view?.viewingMode,scale:this.view?.scale}:null}}}async _generateSymbolPreviewForInfo(e,t={},i){const{symbol:s}=e;try{if(t.size=await this._getSize(e,i),t.scale=!1,"cim"===s.type){const e=this._getPreviewCIMOptions(i);t={...t,...e}}e.preview=await B(s,t)}catch{e.preview=null,o.getLogger(this).warn(`Generating symbol preview failed for symbol type: ${s?.type}`)}}_getClusterRenderer(e){this._clusterSizeVariable=null;const t="renderer"in this.layer?this.layer.renderer:null,i=e.renderer?.clone()||t?.clone(),s=H(e,this.layerView,this.view);if(s&&null!=i&&"visualVariables"in i){const t=i.visualVariables?.some(e=>"size"===e.type&&"outline"!==e.target&&!ge.test(e.valueExpression));if(!t){if("clusterMinSize"in e&&"clusterMaxSize"in e){const{clusterMinSize:t,clusterMaxSize:i}=e;s.legendOptions=new z({showLegend:t!==i})}const t=i.visualVariables||[];i.visualVariables=t.concat([s]),this._clusterSizeVariable=s}}return i}async _loadRenderer(e){if(it.has(e))return it.get(e);const t=[],i=e.clone(),s=await oe(i);if(Ie(i)||Re(i)){const e=(i.classBreakInfos||i.uniqueValueInfos).map(e=>this._fetchSymbol(e.symbol,s).then(t=>{e.symbol=t}).catch(()=>{e.symbol=null}));Array.prototype.push.apply(t,e)}return t.push(this._fetchSymbol(i.symbol||i.defaultSymbol,i.defaultSymbol?null:s).then(e=>{this._applySymbolToRenderer(i,e,Ce(i))}).catch(()=>{this._applySymbolToRenderer(i,null,Ce(i))})),await Promise.allSettled(t),it.set(e,i),i}_applySymbolToRenderer(e,t,i){i?e.symbol=t:e.defaultSymbol=t}async _fetchSymbol(e,t){if(!e)throw new Error;if("web-style"===e.type){const i=this._webStyleSymbolCache;try{const s=await e.fetchSymbol({cache:i});return this._getAppliedCloneSymbol(s,t)}catch{throw o.getLogger(this).warn("Fetching web-style failed!"),new Error}}return this._getAppliedCloneSymbol(e,t)}_getAppliedCloneSymbol(e,i){if(!e||!i)return e;const s=e.clone(),l=i&&i.toRgba();return s.type.includes("3d")?this._applyColorTo3dSymbol(s,l):"cim"===s.type?P(s,i):s.color&&(s.color=new t(l||s.color)),s}_applyColorTo3dSymbol(e,i){i&&e.symbolLayers.forEach(e=>{e&&(e.material||(e.material={}),e.material.color=new t(i))})}async _getVisualVariableLegendElements(e,t){if(!("visualVariables"in e)||"vector-field"===e.type)return null;const i=e.visualVariables??[],s=[],l=[],n=[],a=se(e,"reference-size")??se(e,"spike");let o;const u=this._clusterSizeVariable;if(2===a?.sizeStops?.length&&(Ie(e)||Re(e))){const[e,t]=a.sizeStops,i=u?u.minDataValue:e.value,s=u?u.maxDataValue:t.value;o=new x({field:a.field??void 0,normalizationField:a.normalizationField,minSize:c(e.size,10,100),maxSize:c(t.size,50,150),minDataValue:i,maxDataValue:s}),l.push(o)}for(const r of i)if("color"===r.type)s.push(r);else if("size"===r.type){if("cluster_count"===r.field&&o)continue;l.push(r)}else"opacity"===r.type&&n.push(r);const d=[...s,...l,...n];let y,h;if(0===s.length&&Ie(e)&&e.classBreakInfos&&1===e.classBreakInfos.length){const t=e.classBreakInfos[0];y=t&&t.symbol}if(0===s.length&&Ce(e)&&(y=e.symbol),y)if(y.type.includes("3d")){const e=y.symbolLayers.at(0);"water"===e.type?null!=e.color&&(h=e.color):null!=e.material?.color&&(h=e.material.color)}else y.url||(h=y.color);const f=this.cssEffectFilter;return(await Promise.all(d.map(async i=>{if(!1!==i.legendOptions?.showLegend){const s=we(e)?i.field:this._getRampTitle(i,t);let l=null;const r=ue(t,i,this.view.timeZone);if("color"===i.type){const e=await J(i,null,r)??[];l={type:"color-ramp",title:s,infos:e,preview:O(e.map(e=>e.color),{cssEffectFilter:f})},this._hasColorRamp||(this._hasColorRamp=e.length>0)}else if("size"===i.type&&"outline"!==i.target)ge.test(i.valueExpression)?this._clusterSizeVariable||(this._scaleDrivenSizeVariable=i):(l=await this._getSizeLegendElement(s,i,e,r),o===i&&"spike"===a?.theme&&(l.theme=a.theme),this._hasSizeRamp||(this._hasSizeRamp=!(null==l.infos||!l.infos.length)));else if("opacity"===i.type){const e=await J(i,h,r)??[];l={type:"opacity-ramp",title:s,infos:e,preview:O(e.map(e=>e.color),{cssEffectFilter:f})},this._hasOpacityRamp||(this._hasOpacityRamp=e.length>0)}return l?.infos?l:null}}))).filter(r)}_getDomainName(e,t,i){if(e&&"function"!=typeof e){const s="getField"in i&&i.getField?.(e),l=s&&"getFieldDomain"in i&&i.getFieldDomain?i.getFieldDomain(s.name):null;return"coded-value"===l?.type?l.getName(t):null}return null}_getClusterTitle(e){const t=this.layer,i=e.field;if("featureReduction"in t&&"cluster"===t.featureReduction?.type){const e=t.featureReduction,s="popupTemplate"in e&&e.popupTemplate,l=s&&s.fieldInfos;if(l)for(const t of l)if(t.fieldName===i)return"cluster_count"===i?t.label||{showCount:!0}:t.label}return{showCount:!0}}_getRampTitle(e,t){let i=e.field,s=e.normalizationField,l=!1,r=!1,n=!1,a=null;i="function"==typeof i?null:i,s="function"==typeof s?null:s;const o=e.legendOptions?.title;if(null!=o)a=o;else if(e.valueExpressionTitle)a=e.valueExpressionTitle;else{if("renderer"in t&&t.renderer&&"authoringInfo"in t.renderer&&t.renderer.authoringInfo?.visualVariables){const e=t.renderer.authoringInfo.visualVariables;for(let t=0;t<e.length;t++){const i=e[t];if("color"===i.type){if("ratio"===i.style){l=!0;break}if("percent"===i.style){r=!0;break}if("percent-of-total"===i.style){n=!0;break}}}}a={field:i&&this._getFieldAlias(i,t),normField:s&&this._getFieldAlias(s,t),ratio:l,ratioPercent:r,ratioPercentTotal:n}}return a}_getRendererTitle(e,t){const i=e;if(i.legendOptions?.title)return i.legendOptions.title;if(i.valueExpressionTitle)return i.valueExpressionTitle;let s=i.field,l=null,r=null;if(Ie(i)&&(l=i.normalizationField,r="percent-of-total"===i.normalizationType),s="function"==typeof s?null:s,l="function"==typeof l?null:l,Re(i)){const{field2:e,field3:l,fieldDelimiter:r}=i;let n=s&&this._getFieldAlias(s,t);return e&&(n=`<${n}>${r}<${this._getFieldAlias(e,t)}>`,l&&(n=`${n}${r}<${this._getFieldAlias(l,t)}>`)),n}let n=null;return(s||l)&&(n={field:s&&this._getFieldAlias(s,t),normField:l&&this._getFieldAlias(l,t),normByPct:r}),n}_getFieldAlias(e,t){const i=R(t,{checkFeatureReduction:!0});if(i)return i.getFieldAlias(e)||e;const s="popupTemplate"in t?t.popupTemplate:null,l=s?.fieldInfos;let r=l?.find(t=>e===t.fieldName),n=null;"getField"in t&&t.getField?n=t.getField(e):"fieldsIndex"in t&&t.fieldsIndex&&(n=t.fieldsIndex.get(e));let a=null;const o="featureReduction"in t&&t.featureReduction;o&&(r??="popupTemplate"in o?o.popupTemplate?.fieldInfos?.find(t=>e?.toLowerCase()===t.fieldName?.toLowerCase()):void 0,"fields"in o&&o.fields&&(a=o.fields.find(t=>t.name?.toLowerCase()===e?.toLowerCase())));const c=r||n||a;let u=null;return c&&(u=r?.label||n?.alias||a?.alias||"name"in c&&c.name||"fieldName"in c&&c.fieldName||null),u}_isUnclassedRenderer(e){const t=e.visualVariables;let i=!1;return Ie(e)&&e.classBreakInfos&&1===e.classBreakInfos.length&&t&&(i=e.field?t.some(t=>!(!t||e.field!==t.field||(e.normalizationField||t.normalizationField)&&e.normalizationField!==t.normalizationField)):!!t.length),i}};e([b()],st.prototype,"_loading",void 0),e([b()],st.prototype,"children",void 0),e([b({readOnly:!0})],st.prototype,"cssEffectFilter",null),e([b()],st.prototype,"layerView",void 0),e([b()],st.prototype,"layer",void 0),e([b()],st.prototype,"legendElements",void 0),e([b({readOnly:!0})],st.prototype,"loading",null),e([b({readOnly:!0})],st.prototype,"opacity",null),e([b()],st.prototype,"parent",void 0),e([b({readOnly:!0})],st.prototype,"ready",null),e([b()],st.prototype,"hideLayersNotInCurrentView",void 0),e([b()],st.prototype,"keepCacheOnDestroy",void 0),e([b()],st.prototype,"respectLayerDefinitionExpression",void 0),e([b()],st.prototype,"respectLayerVisibility",void 0),e([b({readOnly:!0})],st.prototype,"scale",null),e([b()],st.prototype,"sublayerIds",void 0),e([b({readOnly:!0})],st.prototype,"isScaleDriven",null),e([b()],st.prototype,"title",void 0),e([b({readOnly:!0,value:0})],st.prototype,"version",null),e([b()],st.prototype,"view",void 0),st=e([_("esri.widgets.Legend.support.ActiveLayerInfo")],st);export{st as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../Color.js";import{addTokenParameter as i}from"../../../kernel.js";import s from"../../../request.js";import l from"../../../core/Accessor.js";import{isSome as r}from"../../../core/arrayUtils.js";import n from"../../../core/Collection.js";import{JSONMap as a}from"../../../core/jsonMap.js";import o from"../../../core/Logger.js";import{clamp as u}from"../../../core/mathUtils.js";import{debounce as c}from"../../../core/promiseUtils.js";import{on as d,watch as y,initial as h,whenOnce as f}from"../../../core/reactiveUtils.js";import{px2pt as m}from"../../../core/screenUtils.js";import{parseWhereClause as p,sqlName as g,sqlLiteral as b}from"../../../core/sql.js";import{addQueryParameters as _}from"../../../core/urlUtils.js";import{property as S,subclass as w}from"../../../core/accessorSupport/decorators.js";import{runUntracked as v}from"../../../core/accessorSupport/tracking.js";import{EffectView as L}from"../../../layers/effects/EffectView.js";import{getPixelValueRange as E}from"../../../layers/raster/formats/pixelRangeUtils.js";import{getEffectiveDisplayFilter as F}from"../../../layers/support/displayFilterUtils.js";import{ExportImageParameters as C}from"../../../layers/support/ExportImageParameters.js";import{collectFields as I,collectArcadeFieldNames as R}from"../../../layers/support/fieldUtils.js";import{isFeatureLayer as V,getFieldConfigurationsContainer as x}from"../../../layers/support/layerUtils.js";import{fromJSON as D}from"../../../renderers/support/jsonUtils.js";import{isSupportedRenderer3D as z}from"../../../renderers/support/rendererConversion.js";import T from"../../../renderers/visualVariables/SizeVariable.js";import j from"../../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import{updateReferenceSizeSymbol as k}from"../../../smartMapping/renderers/support/referenceSizeUtils.js";import P from"../../../symbols/SimpleFillSymbol.js";import M from"../../../symbols/SimpleMarkerSymbol.js";import{applyCIMSymbolColor as O}from"../../../symbols/support/cimSymbolUtils.js";import{renderSymbol as U}from"../../../symbols/support/renderUtils.js";import{renderColorRampPreviewHTML as A,renderDotDensityPreviewHTML as B,renderPieChartPreviewHTML as $,renderPreviewHTML as N}from"../../../symbols/support/symbolUtils.js";import{getCSSFilterFromEffectList as H,isVolumetricSymbol as q}from"../../../symbols/support/utils.js";import{getEffectiveClusterSizeVariable as W}from"./clusterUtils.js";import{getColorFromPointCloudStops as G,getRampStopsForPointCloud as J,getStretchRampStops as Z,getRampStops as Q}from"./colorRampUtils.js";import{getHeatmapRampStops as K}from"./heatmapRampUtils.js";import{getRelationshipRampElement as X,getRotationAngleForFocus as Y}from"./relationshipRampUtils.js";import{getRampStops as ee,realWorldMaxSize as te,realWorldMinSize as ie}from"./sizeRampUtils.js";import{specialCharsLessThan as se,specialCharsGreaterThan as le,getAuthoringInfoVisualVariableByTheme as re,getSymbolForFlowRenderer as ne,formatValue as ae,getFormatOptions as oe,mergeWhereClauses as ue,getMedianColor as ce,rgbImgSource as de,getFormatOptionsForVisualVariable as ye}from"./utils.js";import{formatNumberLabel as he}from"../../smartMapping/support/utils.js";const fe=16,me="https://utility.arcgis.com/sharing/tools/legend",pe="esri.layers.ImageryLayer",ge="esri.layers.ImageryTileLayer",be="esri.layers.WCSLayer",_e=/^\s*(return\s+)?\$view\.scale\s*(;)?\s*$/i,Se=new a({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"}),we=new M({size:6,outline:{color:[128,128,128,.5],width:.5}}),ve=new P({style:"solid"});function Le(e){return"flow"===e.type}function Ee(e){return"vector-field"===e.type}function Fe(e){return"raster-colormap"===e.type}function Ce(e){return"raster-stretch"===e.type}function Ie(e){return"raster-shaded-relief"===e.type}function Re(e){return"esri.renderers.SimpleRenderer"===e.declaredClass}function Ve(e){return"esri.renderers.ClassBreaksRenderer"===e.declaredClass}function xe(e){return"esri.renderers.UniqueValueRenderer"===e.declaredClass}function De(e){return"esri.renderers.HeatmapRenderer"===e.declaredClass}function ze(e){return je(e)||ke(e)||Pe(e)||Te(e)}function Te(e){return"esri.renderers.PointCloudRGBRenderer"===e.declaredClass}function je(e){return"esri.renderers.PointCloudClassBreaksRenderer"===e.declaredClass}function ke(e){return"esri.renderers.PointCloudStretchRenderer"===e.declaredClass}function Pe(e){return"esri.renderers.PointCloudUniqueValueRenderer"===e.declaredClass}function Me(e){return"esri.renderers.DotDensityRenderer"===e.declaredClass}function Oe(e){return"esri.renderers.PieChartRenderer"===e.declaredClass}function Ue(e,t){return Re(e)||Ve(e)||xe(e)||De(e)||Me(e)||Oe(e)?"2d"===t.type||z(e):Ce(e)||Fe(e)||Ie(e)||je(e)||ke(e)||Pe(e)||Ee(e)||Le(e)}function Ae(e){return"esri.layers.BuildingSceneLayer"===e.declaredClass}function Be(e){return"esri.layers.SubtypeGroupLayer"===e.declaredClass}function $e(e){return"esri.layers.VoxelLayer"===e.declaredClass}function Ne(e){return"esri.layers.WMSLayer"===e.declaredClass}function He(e){return"esri.layers.WMTSLayer"===e.declaredClass}function qe(e){return"esri.layers.MapImageLayer"===e.declaredClass}function We(e){return"esri.layers.TileLayer"===e.declaredClass}function Ge(e){return e.declaredClass===pe}function Je(e){return e.declaredClass===ge}function Ze(e){return e.declaredClass===be}function Qe(e){return"stretch-ramp"===e.type}function Ke(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type}function Xe(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type&&"above-and-below"===t?.univariateTheme}function Ye(e){return"sublayers"in e}function et(e){return e&&"symbol"in e}function tt(e,t){const{field:i,field2:s,field3:l,fieldDelimiter:r,valueExpression:n}=e;if(!i)return null;const a=!(!i&&!n||!s&&!l)?t?.toString().split(r||""):[t],o=i?{[i]:a?.[0]}:null;return o&&(s&&(o[s]=a?.[1]),l&&(o[l]=a?.[2])),o}const it=new M({style:"path",path:"M10,5 L5,0 0,5 M5,0 L5,15",size:15,outline:{width:1,color:[85,85,85,1]}});let st={};const lt=new WeakMap;let rt=class extends l{constructor(e){super(e),this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._loading=!1,this._webStyleSymbolCache=new Map,this._dotDensityUrlCache=new Map,this._scaleDrivenSizeVariable=null,this._clusterSizeVariable=null,this._layerDefinitionExpression=null,this._layerDefinitionExpressionClause=null,this._layerDisplayFilter=null,this._layerDisplayFilterClause=null,this.children=new n,this.layerView=null,this.layer=null,this.legendElements=[],this.parent=null,this.hideLayersNotInCurrentView=!1,this.keepCacheOnDestroy=!1,this.respectLayerDefinitionExpression=!1,this.respectLayerVisibility=!0,this.sublayerIds=[],this.title=null,this.view=null}initialize(){const e=()=>this.notifyChange("ready");this.addHandles([d(()=>this.children,"change",t=>{const{added:i,removed:s}=t;i.forEach(t=>{const i=`activeLayerInfo-ready-watcher-${t.layer.uid}`;this.addHandles(y(()=>t.ready,e,h),i)}),s.forEach(e=>this.removeHandles(e.layer.uid)),e()})]),this.keepCacheOnDestroy||(st={})}destroy(){this._webStyleSymbolCache=null,this._dotDensityUrlCache=null,this._scaleDrivenSizeVariable=null,this.keepCacheOnDestroy||(st=null),this._layerDefinitionExpressionClause=null}get cssEffectFilter(){const{layer:e,scale:t}=this,i="effect"in e?e.effect:null;if(!i)return null;const s=new L({effect:i});return s.endTransition(),s.scale=t,H(s,!0)}get loading(){return this.children.length>0?this.children.some(e=>e.loading):this._loading}get opacity(){const e=this.layer.opacity,t=this.parent?.opacity,i=this.layer.parent,s=i&&"uid"in i?this._getParentLayerOpacity(i):null;return null!=t?t*e:null!=s?s*e:e}get ready(){return v(()=>null===this.layer||(this.children.length>0?this._isGroupActive():this.legendElements.length>0))}get scale(){return this.view?.scale??0}get isScaleDriven(){const e=this.layer;if(null===e)return!1;if("effect"in e&&e.effect&&Array.isArray(e.effect))return!0;if("featureReduction"in e&&e.featureReduction){if("cluster"===e.featureReduction.type)return!0;if("binning"===e.featureReduction.type&&"renderer"in e.featureReduction&&e.featureReduction.renderer)return this._isRendererScaleDriven(e.featureReduction.renderer)}return"renderer"in e&&e.renderer?!!("displayFilterInfo"in e&&e.displayFilterInfo&&xe(e.renderer))||this._isRendererScaleDriven(e.renderer):this._isLayerScaleDriven(this.layer)}get version(){return this.commitProperty("ready"),v(()=>this._get("version")+1)}async buildLegendElementsForFeatureCollections(e){this._loading=!0;if(!(!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView()))return this.legendElements=[],this._loading=!1,void this.notifyChange("ready");const t=Array.from(e,e=>{if(V(e))return this._getRendererLegendElements(e.renderer,{title:e.title});if(e.featureSet?.features.length){const t=e.layerDefinition,i=t?.drawingInfo,s=i&&D(i.renderer),l=Se.read(t.geometryType);return s?this._getRendererLegendElements(s,{title:e.name,geometryType:l}):(o.getLogger(this).warn("drawingInfo not available!"),null)}return null});try{const e=[],i=await Promise.allSettled(t);for(const t of i)if("fulfilled"===t.status)for(const i of t.value??[])e.push(i);this.legendElements=e}catch(i){o.getLogger(this).warn("error while building legend for layer!",i)}finally{this._loading=!1,this.notifyChange("ready")}}async buildLegendElementsForRenderer(e){try{this._loading=!0;const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getRendererLegendElements(e):[]}catch(t){o.getLogger(this).warn("error while building legend for layer!",t)}finally{this._loading=!1,this.notifyChange("ready")}}async buildLegendElementsForFeatureReduction(e){try{this._loading=!0,await this._waitForLayerViewUpdate(this.layerView);const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getLegendElementsForFeatureReduction(e):[]}catch(t){o.getLogger(this).warn("error while building legend for layer!",t)}finally{this._loading=!1,this.notifyChange("ready")}}async buildLegendElementsForTools(){this._loading=!0;const e=this.layer;if($e(e))await this._constructLegendElementsForVoxelLayer();else if(He(e))this._constructLegendElementsForWMTSlayer();else if(Ne(e))await this._constructLegendElementsForWMSSublayers();else if(Ae(e))await this._constructLegendElementsForBuildingSceneLayer();else if(qe(e)||We(e)||Be(e))await this._constructLegendElementsForSublayers();else{this.removeHandles("imageryLayers-watcher");let t="default";if(Ge(e)){const i=e;t=(i?.rasterFunction?.functionName||"default")+"_"+(e.bandIds?.length?e.bandIds.join(""):"###")}if(Je(e)||"link-chart"===e.type)return;await this._getLegendLayers(`${e.uid}-${t}`).then(async t=>{this.legendElements=[];const i=t.map(async t=>{if(Ge(e)){const t=y(()=>[e.rasterFunction,e.bandIds],()=>c(async()=>{st.default=null,e.renderer?await this.buildLegendElementsForRenderer(e.renderer):await this.buildLegendElementsForTools()})());this.addHandles(t,"imageryLayers-watcher")}const i=this._generateSymbolTableElementForLegendLayer(t);i?.infos.length&&(Ge(e)&&(i.title=e.title),this.legendElements.push(i))});await Promise.allSettled(i)}).catch(e=>{o.getLogger(this).warn("Request to server for legend has failed!",e)})}this._loading=!1,this.notifyChange("ready")}async _isLayerInCurrentView(e){return this._checkFeatureCountForExpression(e,this.view.extent)}_getParentLayerOpacity(e){let t=1;const i=e.parent;return i&&"uid"in i&&(t=this._getParentLayerOpacity(i)),e.opacity*t}_isGroupActive(){return this.children.some(e=>e.ready)}_isRendererScaleDriven(e){if("dot-density"===e.type)return!0;const t="valueExpression"in e?e.valueExpression:null;if(_e.test(t))return!0;const i="visualVariables"in e?e.visualVariables:null;return!!i?.some(e=>this._isScaleDrivenSizeVariable(e))||this._hasScaleDrivenSymbols(e)}_hasScaleDrivenSymbols(e){switch(e.type){case"simple":return this._isScaleDrivenSymbol(e.symbol);case"class-breaks":return this._isScaleDrivenSymbol(e.defaultSymbol)||e.classBreakInfos.some(e=>this._isScaleDrivenSymbol(e.symbol));case"unique-value":return this._isScaleDrivenSymbol(e.defaultSymbol)||!!e.uniqueValueInfos?.some(e=>this._isScaleDrivenSymbol(e.symbol))}return!1}_isScaleDrivenSymbol(e){if("cim"===e?.type){const{primitiveOverrides:t,minScale:i,maxScale:s}=e.data,l=t?.some(e=>(e.valueExpressionInfo?.expression||"").includes("$view.scale"))??!1;return null!=i||null!=s||l}return!1}_isScaleDrivenSizeVariable(e){if(e&&"size"!==e.type)return!1;const t=e,i=t.minSize,s=t.maxSize;return!("object"!=typeof i||!i||!this._isScaleDrivenSizeVariable(i))||(!("object"!=typeof s||!s||!this._isScaleDrivenSizeVariable(s))||_e.test(t.valueExpression))}_isLayerScaleDriven(e){if("minScale"in e&&e.minScale>0||"maxScale"in e&&e.maxScale>0)return!0;if("sublayers"in e&&e.sublayers)return e.sublayers.some(e=>this._isLayerScaleDriven(e));const t=e.parent;if(!1===e.loaded&&t&&qe(t)&&"source"in e&&e.source&&"map-layer"===e.source.type)for(const i of t.sourceJSON.layers??[])if(i.id===e.source.mapLayerId&&(i.minScale>0||i.maxScale>0))return!0;return!1}async _constructLegendElementsForVoxelLayer(){this._loading=!0,this.legendElements=[],this.removeHandles("voxel-style-watcher"),this.removeHandles("voxel-current-variable");const e=this.layer;this.addHandles(y(()=>e.currentVariableId,()=>this._constructLegendElementsForVoxelLayer()),"voxel-current-variable"),this.addHandles(y(()=>e.getVariableStyles(),()=>this._constructLegendElementsForVoxelLayer()),"voxel-style-watcher");const t=e.getVariableStyle(null),i=[];if(t)if(t.uniqueValues?.length){const e=[];t.uniqueValues.forEach(t=>{t.enabled&&e.push({label:t.label||`${t.value}`,value:t.value,symbol:new P({color:t.color,outline:null})})}),e.length&&i.push({type:"symbol-table",title:t.label,infos:e})}else if(t.transferFunction){const{colorStops:e,stretchRange:s}=t.transferFunction,l=e.toArray().reverse(),r=s.map((e,t)=>`${0===t?se:le} ${he(e)}`).reverse(),n=l.map(e=>({color:e.color,value:null,label:null}));n[0].label=r[0],n[n.length-1].label=r[1],i.push({type:"color-ramp",title:t.label,infos:n,preview:A(l.map(e=>e.color))})}await this._generatePreviewsForLegendElements(i,{opacity:e.opacity}),this.legendElements=i,this._loading=!1,this.notifyChange("ready")}_constructLegendElementsForWMTSlayer(){this._loading=!0,this.legendElements=[],this.removeHandles("wmts-activeLayer-watcher");const e=this.layer.activeLayer;this.addHandles(y(()=>{const{layer:e}=this;return e&&"activeLayer"in e&&e.activeLayer},()=>this._constructLegendElementsForWMTSlayer()),"wmts-activeLayer-watcher");const t=e.styleId?e.styles?.find(({id:t})=>t===e.styleId)?.legendUrl:void 0;t&&(this.legendElements=[{type:"symbol-table",title:e.title,infos:[{src:t,opacity:this.opacity}]}]),this._loading=!1,this.notifyChange("ready")}async _constructLegendElementsForWMSSublayers(){this._loading=!0,this.legendElements=[],this.removeHandles("wms-sublayers-watcher");const e=this.layer;let t=null;(e.customParameters||e.customLayerParameters)&&(t={...e.customParameters,...e.customLayerParameters}),this.addHandles(y(()=>{const{layer:e}=this;return e&&"sublayers"in e&&e.sublayers},()=>this._constructLegendElementsForWMSSublayers()),"wms-sublayers-watcher"),this.legendElements=await this._generateLegendElementsForWMSSublayers(e.sublayers,t),this._loading=!1,this.notifyChange("ready")}async _generateLegendElementsForWMSSublayers(e,t){const i=this.layer,s=[];this.addHandles(e.on("change",()=>this._constructLegendElementsForWMSSublayers()),"wms-sublayers-watcher");const l=this.sublayerIds?.map(e=>i.findSublayerById(e))?.filter(r)??[],n=l.length?l:e.toArray();for(const r of n){const e=y(()=>[r.title,r.visible,r.legendEnabled],()=>this._constructLegendElementsForWMSSublayers());if(this.addHandles(e,"wms-sublayers-watcher"),!this.respectLayerVisibility||r.visible&&r.legendEnabled){const e=await this._generateSymbolTableElementForWMSSublayer(r,t);e?.infos.length&&s.unshift(e)}}return s}async _generateSymbolTableElementForWMSSublayer(e,t){if(!e.legendUrl&&e.sublayers){const i=(await this._generateLegendElementsForWMSSublayers(e.sublayers,t)).filter(e=>e);return{type:"symbol-table",title:e.title,infos:i}}return this._generateSymbolTableElementForLegendUrl(e,t)}async _generateSymbolTableElementForLegendUrl(e,t){let i=e.legendUrl;if(!i)return;const l={type:"symbol-table",title:e.title||e.name||String(e.id??""),infos:[]};t&&(i=_(i,t));let r=null;const n=e.layer?.opacity;try{r=(await s(i,{responseType:"image"})).data,r&&(r.style.opacity=n)}catch{}return l.infos.push({src:i,preview:r,opacity:n}),l}_getLegendLayers(e,t){const i=st&&st[e];return i?Promise.resolve(i):this._legendRequest(t).then(t=>{const i=t.layers;return st[e]=i,i})}_legendRequest(e){const t=this.layer;let i={f:"json",dynamicLayers:e};if(Ge(t)){const e=t.exportImageServiceParameters.rasterFunction;if(e&&(i.renderingRule=JSON.stringify(e.functionDefinition?.toJSON()||e.toJSON())),t.bandIds&&(i.bandIds=t.bandIds.join()),t.raster||t.viewId||t.customParameters){const{raster:e,viewId:s,customParameters:l}=t;i={raster:e,viewId:s,...i,...l}}}let l=t.url.replace(/(\/)+$/,"");if("version"in t&&+t.version>=10.01){const e=l.indexOf("?");e>-1?l=l.slice(0,e)+"/legend"+l.slice(e):l+="/legend"}else{const e=l.toLowerCase().indexOf("/rest/"),t=-1===e?l:l.slice(0,e)+l.slice(e+5);l=me+"?soapUrl="+encodeURI(t)+"&returnbytes=true"}return s(l,{query:i}).then(e=>e.data)}async _constructLegendElementsForBuildingSceneLayer(){this._loading=!0,this.legendElements=[],this.removeHandles("sublayers-watcher");const e=this.layer;this.addHandles(y(()=>e.sublayers,()=>this._constructLegendElementsForBuildingSceneLayer()),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForBuildingSublayers(e.sublayers,this.opacity)}catch(t){o.getLogger(this).warn("Request to server for legend has failed!",t)}finally{this._loading=!1,this.notifyChange("ready")}}async _generateLegendElementsForBuildingSublayers(e,t){let i=[];this.addHandles(e.on("change",()=>this._constructLegendElementsForBuildingSceneLayer()),"sublayers-watcher");const s=e.toArray();for(const l of s){const e=y(()=>["renderer"in l&&l.renderer,l.opacity,l.title,l.visible],()=>this._constructLegendElementsForBuildingSceneLayer());if(this.addHandles(e,"sublayers-watcher"),!this.respectLayerVisibility||l.visible){const e=null!=l?.opacity?l.opacity:null,s=null!=e?e*t:t;if("building-group"===l.type){const e={type:"symbol-table",title:l.title,infos:[]},t=await this._generateLegendElementsForBuildingSublayers(l.sublayers,s);e.infos.push(...t),i=[e,...i]}else if(l.renderer){i=[...await this._getRendererLegendElements(l.renderer,{title:l.title,opacity:s,sublayer:l}),...i]}}}return i.filter(e=>!!e&&(!("infos"in e)||!e.infos||e.infos.length>0))}async _constructLegendElementsForSublayers(){this._loading=!0,this.removeHandles("sublayers-watcher");const e=this.layer;if(!(qe(e)||We(e)||Be(e))||this.hideLayersNotInCurrentView&&!await this._isLayerInCurrentView())return this.legendElements=[],this._loading=!1,void this.notifyChange("ready");this.addHandles(y(()=>e.sublayers,()=>this._constructLegendElementsForSublayers),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForSublayers(e.sublayers,this.opacity)}catch(t){o.getLogger(this).warn("Request to server for legend has failed!",t)}finally{this._loading=!1,this.notifyChange("ready")}}async _generateLegendElementsForSublayers(e,t,i){const s=this.layer;let l=[];this.addHandles(e.on("change",()=>this._constructLegendElementsForSublayers()),"sublayers-watcher");let n=e.toArray();!i&&this.sublayerIds&&this.sublayerIds.length&&(n=Be(s)?this.sublayerIds.map(e=>s.findSublayerForSubtypeCode(e)).filter(r):this.sublayerIds.map(e=>s.findSublayerById(e)).filter(r));for(const r of n){const e=y(()=>[r.renderer,r.opacity,r.title,r.visible,r.legendEnabled],()=>this._constructLegendElementsForSublayers());this.addHandles(e,"sublayers-watcher");const s=r.createQuery().where,n=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView(s),a=!this.respectLayerVisibility||r.visible&&r.legendEnabled&&this._isSublayerInScale(r);if(n&&a){const e=null!=r?.opacity?r.opacity:null,s=null!=e?e*t:t,n=!Ye(r)||r.originIdOf("renderer")>2&&!r.sublayers;if(r.renderer&&n){await r.load();l=[...await this._getRendererLegendElements(r.renderer,{title:r.title,opacity:s,sublayer:r}),...l]}else if(Ye(r)){const e=await this._generateSymbolTableElementForSublayer(r,s,i);e&&l.unshift(e)}}}return l.filter(e=>!!e&&(!("infos"in e)||!e.infos||e.infos.length>0))}async _generateSymbolTableElementForSublayer(e,t,i){if(!i){i=new Map;const t=this.layer,s=e.source;let l=null;if(!(!s||"map-layer"===s.type&&s.mapLayerId===e.id&&(!s.gdbVersion||s.gdbVersion===("gdbVersion"in t&&t.gdbVersion)))||e.originIdOf("renderer")>2||e.originIdOf("labelingInfo")>2||e.originIdOf("labelsVisible")>2){const e=new C({layer:this.layer});l=e.hasDynamicLayers?e.dynamicLayers:null,e.destroy()}const r=l||`${t.uid}-default`;(await this._getLegendLayers(r,l)).forEach(e=>i.set(e.layerId,e))}const s=i.get(e.id);if((!s||s?.subLayerIds&&s.defaultVisibility)&&e.sublayers){const s=await this._generateLegendElementsForSublayers(e.sublayers,t,i);return{type:"symbol-table",title:e.title,infos:s}}return this._generateSymbolTableElementForLegendLayer(s,e,t)}_generateSymbolTableElementForLegendLayer(e,t,i){if(!e?.legend||this.respectLayerVisibility&&!this._isLegendLayerInScale(e,t))return null;const s=t?.renderer;let l=t?.title||e.layerName;if(s&&(!t||t?.originIdOf("renderer")>2)){const e=t?.title||this._getRendererTitle(s,t);e&&(l&&"string"!=typeof e&&"title"in e&&(e.title=l),l=e)}const r={type:"symbol-table",title:l,legendType:e.legendType||null,infos:[]},n=t?this._sanitizeLegendForSublayer(e.legend.slice(),t):e.legend;return e.legendGroups&&e.legendGroups.length>0?e.legendGroups.forEach(s=>{const l={type:"symbol-table",title:s.heading,legendType:e.legendType||null,infos:this._generateSymbolTableElementInfosForLegendLayer(n.filter(e=>e.groupId===s.id),e.layerId,s.heading||r.title||t?.title,i)};l.infos?.length>0&&r.infos.push(l)}):r.infos=this._generateSymbolTableElementInfosForLegendLayer(n,e.layerId,r.title||t?.title,i),r.infos.length>0?r:null}_generateSymbolTableElementInfosForLegendLayer(e,t,s,l){return e.map(e=>{let r=e.url;if(e.imageData&&e.imageData.length>0)r=`data:image/png;base64,${e.imageData}`;else{if(r.startsWith("http"))return null;r=i(`${this.layer.url}/${t}/images/${r}`)}let n=e.label;return"<all other values>"===n&&(n="others"),{previewAriaLabel:n||s,label:n,src:r,opacity:l??this.opacity,width:e.width,height:e.height}}).filter(r)}_isSublayerInScale(e){const t=e.minScale||0,i=e.maxScale||0;return!(t>0&&t<this.scale||i>this.scale)}_isLegendLayerInScale(e,t){const i=t||this.layer;let s=null,l=null,r=!0;return!i.minScale&&0!==i.minScale||!i.maxScale&&0!==i.maxScale?(0===e.minScale&&i.tileInfo&&(s=i.tileInfo.lods[0].scale),0===e.maxScale&&i.tileInfo&&(l=i.tileInfo.lods[i.tileInfo.lods.length-1].scale)):(s=Math.min(i.minScale,e.minScale)||i.minScale||e.minScale,l=Math.max(i.maxScale,e.maxScale)),(s>0&&s<this.scale||l>this.scale)&&(r=!1),r}_sanitizeLegendForSublayer(e,t){if("version"in this.layer&&+this.layer.version<10.1||0===e.length)return e;const i=t.renderer,s=e.some(e=>e.values);let l=0,r=null;return s&&e.some((e,t)=>(e.values||(l=t,r=e,r.label||(r.label="others")),null!=r)),i?"unique-value"===i.type?r&&(e.splice(l,1),e.push(r)):"class-breaks"===i.type&&(r&&e.splice(l,1),i.legendOptions?.order||e.reverse(),r&&e.push(r)):r&&(e.splice(l,1),e.push(r)),e}async _getRendererLegendElements(e,t={}){if(!Ue(e,this.view))return o.getLogger(this).warn(`Renderer of type '${e.type}' not supported!`),[];if(ze(e))return this._constructPointCloudRendererLegendElements(e,t);if(Me(e))return this._constructDotDensityRendererLegendElements(e);const i=await this._loadRenderer(e);return Oe(i)?this._constructPieChartRendererLegendElements(i):this._constructRendererLegendElements(i,t)}async _getLegendElementsForFeatureReduction(e){let t=null;return"binning"===e.type?t=e.renderer:"cluster"===e.type&&(t=this._getClusterRenderer(e)),t?this._getRendererLegendElements(t,{isFeatureReductionRenderer:!0}):[]}_getPointCloudRendererTitle(e){return(e.legendOptions?.title||e.field)??""}async _constructPointCloudRendererLegendElements(e,t={}){const i=t.title,s=[];let l=null,r=null;if(je(e))l={type:"symbol-table",title:i||this._getPointCloudRendererTitle(e),infos:[]},e.colorClassBreakInfos.forEach(e=>{l.infos.unshift({label:e.label||e.minValue+" - "+e.maxValue,value:[e.minValue,e.maxValue],symbol:this._getAppliedCloneSymbol(we,e.color)})});else if(ke(e)){const t=e.stops;let s=null;if(t?.length&&(1===t.length&&(s=t[0].color),!s)){const e=t[0].value,i=t[t.length-1].value;if(null!=e&&null!=i){s=G(e+(i-e)/2,t)}}l={type:"symbol-table",title:null,infos:[{label:null,value:null,symbol:this._getAppliedCloneSymbol(we,s||we.color)}]};const n=J(e.stops??[])??[];r={type:"color-ramp",title:i||this._getPointCloudRendererTitle(e),infos:n,preview:A(n.map(e=>e.color))}}else Pe(e)&&(l={type:"symbol-table",title:i||this._getPointCloudRendererTitle(e),infos:[]},e.colorUniqueValueInfos?.forEach(e=>{l.infos.push({label:e.label||e.values.join(", "),value:e.values.join(", "),symbol:this._getAppliedCloneSymbol(we,e.color)})}));return l?.infos.length&&s.push(l),r?.infos.length&&s.push(r),await this._generatePreviewsForLegendElements(s,{opacity:this.opacity,symbolConfig:{applyColorModulation:!!e.colorModulation}}),s}async _getElementInfoForDotDensity(e,t){const{color:i,label:s,valueExpressionTitle:l}=t,{backgroundColor:r,outline:n,dotSize:a}=e,o=this.cssEffectFilter,u=a+"-"+i+"-"+r+"-"+(n&&JSON.stringify(n.toJSON()))+"-"+o,c=this._dotDensityUrlCache,d=c.has(u)?c.get(u):B(e,i);c.set(u,d);const y={shape:{type:"image",x:0,y:0,width:d.width,height:d.height,src:d.src},fill:null,stroke:null,offset:[0,0]},h=U([[y]],[d.width,d.height],{cssEffectFilter:this.cssEffectFilter});return{opacity:1,src:d.src,preview:h,width:d.width,height:d.height,previewAriaLabel:s||l}}async _constructDotDensityRendererLegendElements(e){const t=e.calculateDotValue(this.view.scale),i=e.legendOptions?.unit,s={type:"symbol-table",title:{value:t&&Math.round(t),unit:i||""},infos:[]};for(const l of e.attributes){const t=await this._getElementInfoForDotDensity(e,l);t.label=l.label||l.valueExpressionTitle||l.field,s.infos.push(t)}return[s]}async _constructPieChartRendererLegendElements(e){const t=[];let i=null;const s=e.outline;e.attributes.forEach(e=>{const i=new M({color:e.color,outline:s}),l=e.label||e.valueExpressionTitle||e.field;t.push({label:l,symbol:i})});const l=t.length?[...t]:[];if(e.othersCategory?.color&&0!==e.othersCategory?.threshold){const l=new M({color:e.othersCategory.color,outline:s});i=e.othersCategory.label||"Other",t.push({label:i,symbol:l})}if(e.defaultColor?.a){const i=new M({color:e.defaultColor,outline:s});t.push({label:e.defaultLabel,symbol:i})}const r=await this._getVisualVariableLegendElements(e,this.layer)||[];if(t.length){r.unshift({type:"symbol-table",title:null,infos:t});const n=l.filter(e=>e.label!==i).map(e=>e.symbol.color).filter(Boolean),a=$(n,{holePercentage:e.holePercentage,backgroundColor:e.backgroundFillSymbol?.color,cssEffectFilter:this.cssEffectFilter,outline:s});r.unshift({type:"pie-chart-ramp",title:this._getRendererTitle(e,this.layer),infos:t,preview:a})}return await this._generatePreviewsForLegendElements(r,{opacity:this.layer.opacity,cssEffectFilter:this.cssEffectFilter}),r}async _getWhereClause(e,t,i){const s=await p(e,i),l=new Set,{field:r,field2:n,field3:a}=t;I(l,i,[r,n,a]),await R(l,i,null,t.valueExpression);const o=new Set(Array.from(l,e=>e.toLowerCase())),u=s?.fieldNames.map(e=>e.toLowerCase());return u?.some(e=>!o.has(e))?null:s}async _processDefinitionExpression(e,t){if(!("definitionExpression"in e))return;const i=e.definitionExpression;i&&this.respectLayerDefinitionExpression?this._layerDefinitionExpression!==i&&(this._layerDefinitionExpressionClause=await this._getWhereClause(i,t,e.fieldsIndex)):this._layerDefinitionExpressionClause=null,this._layerDefinitionExpression=i}async _processDisplayFilter(e,t){if(!("displayFilterInfo"in e))return;const i=e.displayFilterInfo?F(e.displayFilterInfo,this.view):null;return i?.where?this._layerDisplayFilter?.id!==i?.id&&(this._layerDisplayFilterClause=await this._getWhereClause(i.where,t,e.fieldsIndex)):this._layerDisplayFilterClause=null,this._layerDisplayFilter=i,i}async _constructRendererLegendElements(e,t={}){const{title:i,sublayer:s,isFeatureReductionRenderer:l}=t,r=s||this.layer,n=re(e,"reference-size"),a=re(e,"spike"),o=l&&"renderer"in r&&r.renderer?r.renderer:e;let u=null;xe(o)&&(await this._processDefinitionExpression(r,o),u=await this._processDisplayFilter(r,o)),this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._scaleDrivenSizeVariable=null;const c=await this._getVisualVariableLegendElements(e,r)||[],d={type:"symbol-table",title:i||this._getRendererTitle(e,r),infos:[]};let y=null,h=!1;const f=new Set;if(Le(e)&&!this._hasSizeRamp){const t=await ne(e);d.infos.push({label:null,symbol:t})}else if(Ke(e)){let t=i;const s=Xe(e)?"univariate-above-and-below-ramp":"univariate-color-size-ramp",l=c.findIndex(e=>"color-ramp"===e.type),r=-1!==l?c.splice(l,1)[0]:null,n=c.findIndex(e=>"size-ramp"===e.type),a=-1!==n?c.splice(n,1)[0]:null,o=[];r&&(t=r.title,o.push(r)),a&&(t=a.title,o.push(a)),o.length>0&&c.push({type:s,title:t,infos:o})}else if(De(e)){const t=K(e);c.push({type:"heatmap-ramp",title:i||this._getRendererTitle(e,r),infos:t,preview:A(t.map(e=>e.color),{cssEffectFilter:this.cssEffectFilter})})}else if(xe(e)){const t=e.authoringInfo;if("relationship"===t?.type){const{numClasses:i,field1:s,field2:l}=t,n=t.focus;if(i&&s&&l){const t=[s,l];let a=Y(n)||0;for(const e of t){const{field:t,normalizationField:i,label:s}=e,l=s||{field:this._getFieldAlias(t,r),normField:i&&this._getFieldAlias(i,r)},n=it.clone();n.angle=a,d.infos.push({label:l,symbol:n}),f.add(n),a+=90}const o=X({focus:n,numClasses:i,infos:e.uniqueValueInfos??[]});c.unshift(o)}}else if(Ge(this.layer)||Je(this.layer)){const{uniqueValueInfos:t}=e;if(t)for(const e of t)e.symbol&&await this._checkClausesForUVR(o,e.value,r)&&d.infos.push({label:e.label||e.value,value:e.value,symbol:e.symbol})}else{const{field:t,field2:s,field3:l,fieldDelimiter:a,valueExpression:c,defaultSymbol:y}=e,f=!(!t&&!c||!s&&!l),m=u?.title?.trim(),p=[],{uniqueValueGroups:g}=e;if(g)for(const e of g){const i={type:"symbol-table",title:e.heading,infos:[]},{classes:u}=e;if(u)for(const e of u){const{symbol:u,values:d}=e;if(u){const y=[],h=[];for(const e of d??[]){const{value:i,value2:n,value3:o}=e,u=[],d=[];(t||c)&&(u.push(i),d.push(this._getDomainName(t,i,r)??ae(i,oe(r,t,this.view.timeZone)))),s&&(u.push(n),d.push(this._getDomainName(s,n,r)??ae(n,oe(r,s,this.view.timeZone)))),l&&(u.push(o),d.push(this._getDomainName(l,o,r)??ae(o,oe(r,l,this.view.timeZone)))),y.push(f?u.join(a||""):u[0]),h.push(d.join(" - "))}const m=y.join(", ");let p=e.label;if(!p){const e=h.filter(Boolean);p=e.length?e.join(", "):m}let g=u;"cim"===g.type&&n&&(g=g.clone(),k(g,{innerDotSize:.5*fe,outerRingSize:fe}));let b=!1;for(const e of y)if(b=await this._checkClausesForUVR(o,e,r),b)break;b&&i.infos.push({label:p,value:m,symbol:g})}}i.infos.length&&p.push(i)}if(p.length){const t=p[0];if(1===p.length&&"title"in t&&!t.title){const e=t.infos?.filter(et)??[];d.infos.push(...e)}else y&&(p.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:y}]}),h=!0),d.infos.push(...p);i||e.legendOptions?.title||e.valueExpressionTitle?m&&(d.title=`${d.title} (${m})`):d.title=m}}e.defaultSymbol&&!h&&(d.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),h=!0)}else if(Ve(e)){if(!n&&!a){y=this._isUnclassedRenderer(e);if(!y||!this._hasSizeRamp){const t=e.classBreakInfos.filter(({symbol:e})=>e),i="ascending-values"===e.legendOptions?.order;for(const{label:e,minValue:s,maxValue:l,symbol:n}of t){const t=e||(y?null:`${s} - ${l}`),a={previewAriaLabel:t||d.title||r.title,label:t,value:[s,l],symbol:n};i?d.infos.push(a):d.infos.unshift(a)}y&&(d.title=null),this._updateInfosForClassedSizeRenderer(e,d.infos)}e.defaultSymbol&&!y&&(d.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),h=!0)}}else if(Ce(e))if(Je(this.layer)||Ze(this.layer)){const t=await this._constructTileImageryStretchRendererElements(e);Qe(t)?c.push(t):d.infos=t}else{const t=this.layer;let i,s;e.customStatistics?.length&&({min:i,max:s}=e.customStatistics[0]);let l=[],r=t.serviceRasterInfo;if(t.rasterFunction)try{r=await t.generateRasterInfo(t.rasterFunction)}catch{}const n=E(r.pixelType);if(1===r.bandCount){const l=t.bandIds?.[0]||0;i=null!=i?i:r.statistics?r.statistics[l].min:n[0],s=null!=s?s:r.statistics?r.statistics[l].max:n[1],i||s?c.push(await this._getStretchLegendElements(e,{min:i,max:s})):this._getServerSideLegend()}else if(1===t.bandIds?.length)i=null!=i?i:r.statistics?r.statistics[t.bandIds[0]].min:n[0],s=null!=s?s:r.statistics?r.statistics[t.bandIds[0]].max:n[1],i||s?c.push(await this._getStretchLegendElements(e,{min:i,max:s})):this._getServerSideLegend();else if(r.bandCount>=3){const{bandInfos:e}=r,{bandIds:i}=t;e.length>=r.bandCount?3===i?.length?(l=i.map(t=>e[t].name),d.infos=this._createSymbolTableElementMultiBand(l)):"lerc"===t.format?(l=[0,1,2].map(t=>e[t].name),d.infos=this._createSymbolTableElementMultiBand(l)):this._getServerSideLegend():"lerc"===t.format?(l=["band1","band2","band3"],d.infos=this._createSymbolTableElementMultiBand(l)):this._getServerSideLegend()}else this._getServerSideLegend()}else if(Fe(e))e.colormapInfos.forEach(e=>{d.infos.push({label:e.label,value:e.value,symbol:this._getAppliedCloneSymbol(ve,e.color)})});else if(Re(e)){let i=e.symbol;switch(t.geometryType){case"point":i="pointSymbol"in r?r.pointSymbol:null;break;case"polyline":i="lineSymbol"in r?r.lineSymbol:null;break;case"polygon":i="polygonSymbol"in r?r.polygonSymbol:null}const s=this._clusterSizeVariable&&this._getClusterSymbol()||!this._hasSizeRamp;e.symbol&&s&&d.infos.push({previewAriaLabel:e.label||d.title||r.title,label:e.label,symbol:i})}else if(Ee(e)){e.outputUnit&&(this.title="("+e.toJSON().outputUnit+")"),d.title=e.attributeField;const t=e.getClassBreakInfos();t?.length?t.forEach(e=>{d.infos.push({label:e.minValue+" - "+e.maxValue,symbol:e.symbol})}):d.infos.push({label:e.attributeField,symbol:e.getDefaultSymbol()})}else Ie(e)&&c.push(await this._getStretchLegendElements(e,{min:0,max:255}));const m=e.defaultSymbol;!m||h||Re(e)||y&&!this._hasColorRamp&&!this._hasSizeRamp&&!this._hasOpacityRamp||c.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:m}]}),d.infos.length&&c.unshift(d);const p=null==t.opacity?this.opacity:t.opacity,g=this._isTallSymbol("visualVariables"in e?e.visualVariables:null),b=Ge(this.layer)||Je(this.layer);return await this._generatePreviewsForLegendElements(c,{opacity:p,symbolConfig:{isTall:g,isSquareFill:b},cssEffectFilter:this.cssEffectFilter},{arrowMarkerSymbols:f}),e=null,c}async _waitForLayerViewUpdate(e){await f(()=>!e.updating)}async _checkFeatureCountForExpression(e,t){const i=this.layerView;if(!(i&&"createQuery"in i&&"queryFeatureCount"in i))return!0;try{await this._waitForLayerViewUpdate(i);const s=i.createQuery();e&&(s.where=ue(s.where,e)),t&&(s.geometry=t);return await i.queryFeatureCount(s)>0}catch{return!0}}_getUVRFeatureCountExpression(e,t,i){const s=e.field;if(!s)return null;const l="getField"in i&&i.getField?i.getField(s):null,r=g(s);if(null==t)return`${r} IS NULL`;try{return`${r} = ${b(t,null,l?{type:l.type}:null)}`}catch{return`${r} = ${b(t)}`}}async _checkClausesForUVR(e,t,i){const s=tt(e,t);if(!s)return!0;const l=!!(!this._layerDefinitionExpressionClause&&this._layerDefinitionExpression&&this.respectLayerDefinitionExpression||!this._layerDisplayFilterClause&&this._layerDisplayFilter?.where),r=this._getUVRFeatureCountExpression(e,t,i);return(!l||!r||await this._checkFeatureCountForExpression(r))&&(this._layerDefinitionExpressionClause?.testFeature(s)??!0)&&(this._layerDisplayFilterClause?.testFeature(s)??!0)}_getServerSideLegend(){setTimeout(()=>this.buildLegendElementsForTools(),0)}_getAllInfos(e){const t=e?.infos;return t?t.reduce((e,t)=>e.concat(this._getAllInfos(t)),[]):[e]}async _constructTileImageryStretchRendererElements(e){const t=this.layer,i=t.symbolizer.rasterInfo??t.raster.rasterInfo;let s,l;const r=e?.customStatistics?.length?e.customStatistics:i?.statistics;if(r)({min:s,max:l}=r[0]);else{const e=E(i.pixelType);s=e[0],l=e[1]}if(t.hasStandardTime()&&(s=t.getStandardTimeValue(s),l=t.getStandardTimeValue(l)),1===i.bandCount||1===t.bandIds?.length)return this._getStretchLegendElements(e,{min:s,max:l});const n=(t?.bandIds?.length?t.bandIds:Array.from(Array(Math.min(i.bandCount,3)).keys())).map(e=>i.bandInfos[e].name);return n.length<3?n.push(n[1]):n.length>3&&n.splice(3),this._createSymbolTableElementMultiBand(n)}async _getStretchLegendElements(e,t){const i=e.colorRamp?.toJSON(),s=Z(i,t);return{type:"stretch-ramp",title:"",infos:s,preview:A(s.map(e=>e.color))}}_getClusterSymbol(){const e=this.layer,t="featureReduction"in e&&e.featureReduction,i=t&&"symbol"in t&&t.renderer;return i&&!0!==i?.authoringInfo?.isAutoGenerated?null:t&&"symbol"in t?t.symbol:null}async _getSizeLegendElement(e,t,i,s){return{type:"size-ramp",title:this._clusterSizeVariable?this._getClusterTitle(t):e,infos:await ee(i,t,await ce(i),this.scale,this.view,s,this._clusterSizeVariable?this._getClusterSymbol():null)}}_createSymbolTableElementMultiBand(e){const t=[],i=["red","green","blue"];return e.forEach((e,s)=>{t.push({label:{colorName:i[s],bandName:e},src:de[s],opacity:this.opacity??1})}),t}_updateInfosForClassedSizeRenderer(e,t){const i="class-breaks-size"===e.authoringInfo?.type,s=e.classBreakInfos.some(e=>q(e.symbol));if(i&&s){const i=te,s=ie,l=e.classBreakInfos.length,r=(i-s)/(l>1?l-1:l);t.forEach((e,t)=>{e.size=i-r*t})}}_isTallSymbol(e){let t=!1,i=!1;if(e)for(let s=0;s<e.length&&(!t||!i);s++){const l=e[s];"size"===l.type&&("height"===l.axis&&(t=!0),"width-and-depth"===l.axis&&(i=!0))}return t&&i}async _generatePreviewsForLegendElements(e,t,i){const s=[];for(const l of e)for(const e of l.infos??[])if("infos"in e&&e.infos&&s.push(this._generatePreviewsForLegendElements([e],t,i)),et(e)&&e.symbol&&!e.preview){let r=!0;if("cim"===e.symbol.type){const{minScale:t,maxScale:i}=e.symbol.data;(t&&t<this.scale||i&&i>this.scale)&&(r=!1)}r&&s.push(this._generateSymbolPreviewForInfo(e,{...t,clipBloomEffect:"theme"in l&&"spike"===l.theme,cssEffectFilter:i?.arrowMarkerSymbols?.has(e.symbol)?null:t.cssEffectFilter},i?{applyScaleDrivenSize:!i.arrowMarkerSymbols?.has(e.symbol)}:void 0))}await Promise.all(s)}async _getSize(e,t){let i=null==e.size&&this._hasSizeRamp?m(22):e.size;if(this._scaleDrivenSizeVariable&&t?.applyScaleDrivenSize){const{getSize:t}=await import("../../../renderers/visualVariables/support/visualVariableUtils.js");i=t(this._scaleDrivenSizeVariable,null,{view:this.view.type,scale:this.scale,shape:"simple-marker"===e.symbol.type?e.symbol.style:null})}return i}_getPreviewCIMOptions(e){return{style:"legend",cimOptions:{allowScalingUp:this._hasSizeRamp||!(!this._scaleDrivenSizeVariable||!e?.applyScaleDrivenSize),viewParams:this.isScaleDriven?{viewingMode:"2d"===this.view?.type?"map":this.view?.viewingMode,scale:this.view?.scale}:null}}}async _generateSymbolPreviewForInfo(e,t={},i){const{symbol:s}=e;try{if(t.size=await this._getSize(e,i),t.scale=!1,"cim"===s.type){const e=this._getPreviewCIMOptions(i);t={...t,...e}}e.preview=await N(s,t)}catch{e.preview=null,o.getLogger(this).warn(`Generating symbol preview failed for symbol type: ${s?.type}`)}}_getClusterRenderer(e){this._clusterSizeVariable=null;const t="renderer"in this.layer?this.layer.renderer:null,i=e.renderer?.clone()||t?.clone(),s=W(e,this.layerView,this.view);if(s&&null!=i&&"visualVariables"in i){const t=i.visualVariables?.some(e=>"size"===e.type&&"outline"!==e.target&&!_e.test(e.valueExpression));if(!t){if("clusterMinSize"in e&&"clusterMaxSize"in e){const{clusterMinSize:t,clusterMaxSize:i}=e;s.legendOptions=new j({showLegend:t!==i})}const t=i.visualVariables||[];i.visualVariables=t.concat([s]),this._clusterSizeVariable=s}}return i}async _loadRenderer(e){if(lt.has(e))return lt.get(e);const t=[],i=e.clone(),s=await ce(i);if(Ve(i)||xe(i)){const e=(i.classBreakInfos||i.uniqueValueInfos).map(e=>this._fetchSymbol(e.symbol,s).then(t=>{e.symbol=t}).catch(()=>{e.symbol=null}));Array.prototype.push.apply(t,e)}return t.push(this._fetchSymbol(i.symbol||i.defaultSymbol,i.defaultSymbol?null:s).then(e=>{this._applySymbolToRenderer(i,e,Re(i))}).catch(()=>{this._applySymbolToRenderer(i,null,Re(i))})),await Promise.allSettled(t),lt.set(e,i),i}_applySymbolToRenderer(e,t,i){i?e.symbol=t:e.defaultSymbol=t}async _fetchSymbol(e,t){if(!e)throw new Error;if("web-style"===e.type){const i=this._webStyleSymbolCache;try{const s=await e.fetchSymbol({cache:i});return this._getAppliedCloneSymbol(s,t)}catch{throw o.getLogger(this).warn("Fetching web-style failed!"),new Error}}return this._getAppliedCloneSymbol(e,t)}_getAppliedCloneSymbol(e,i){if(!e||!i)return e;const s=e.clone(),l=i&&i.toRgba();return s.type.includes("3d")?this._applyColorTo3dSymbol(s,l):"cim"===s.type?O(s,i):s.color&&(s.color=new t(l||s.color)),s}_applyColorTo3dSymbol(e,i){i&&e.symbolLayers.forEach(e=>{e&&(e.material||(e.material={}),e.material.color=new t(i))})}async _getVisualVariableLegendElements(e,t){if(!("visualVariables"in e)||"vector-field"===e.type)return null;const i=e.visualVariables??[],s=[],l=[],n=[],a=re(e,"reference-size")??re(e,"spike");let o;const c=this._clusterSizeVariable;if(2===a?.sizeStops?.length&&(Ve(e)||xe(e))){const[e,t]=a.sizeStops,i=c?c.minDataValue:e.value,s=c?c.maxDataValue:t.value;o=new T({field:a.field??void 0,normalizationField:a.normalizationField,minSize:u(e.size,10,100),maxSize:u(t.size,50,150),minDataValue:i,maxDataValue:s}),l.push(o)}for(const r of i)if("color"===r.type)s.push(r);else if("size"===r.type){if("cluster_count"===r.field&&o)continue;l.push(r)}else"opacity"===r.type&&n.push(r);const d=[...s,...l,...n];let y,h;if(0===s.length&&Ve(e)&&e.classBreakInfos&&1===e.classBreakInfos.length){const t=e.classBreakInfos[0];y=t&&t.symbol}if(0===s.length&&Re(e)&&(y=e.symbol),y)if(y.type.includes("3d")){const e=y.symbolLayers.at(0);"water"===e.type?null!=e.color&&(h=e.color):null!=e.material?.color&&(h=e.material.color)}else y.url||(h=y.color);const f=this.cssEffectFilter;return(await Promise.all(d.map(async i=>{if(!1!==i.legendOptions?.showLegend){const s=Le(e)?i.field:this._getRampTitle(i,t);let l=null;const r=ye(t,i,this.view.timeZone);if("color"===i.type){const e=await Q(i,null,r)??[];l={type:"color-ramp",title:s,infos:e,preview:A(e.map(e=>e.color),{cssEffectFilter:f})},this._hasColorRamp||(this._hasColorRamp=e.length>0)}else if("size"===i.type&&"outline"!==i.target)_e.test(i.valueExpression)?this._clusterSizeVariable||(this._scaleDrivenSizeVariable=i):(l=await this._getSizeLegendElement(s,i,e,r),o===i&&"spike"===a?.theme&&(l.theme=a.theme),this._hasSizeRamp||(this._hasSizeRamp=!(null==l.infos||!l.infos.length)));else if("opacity"===i.type){const e=await Q(i,h,r)??[];l={type:"opacity-ramp",title:s,infos:e,preview:A(e.map(e=>e.color),{cssEffectFilter:f})},this._hasOpacityRamp||(this._hasOpacityRamp=e.length>0)}return l?.infos?l:null}}))).filter(r)}_getDomainName(e,t,i){if(e&&"function"!=typeof e){const s="getField"in i&&i.getField?.(e),l=s&&"getFieldDomain"in i&&i.getFieldDomain?i.getFieldDomain(s.name):null;return"coded-value"===l?.type?l.getName(t):null}return null}_getClusterTitle(e){const t=this.layer,i=e.field;if("featureReduction"in t&&"cluster"===t.featureReduction?.type){const e=t.featureReduction,s="popupTemplate"in e&&e.popupTemplate,l=s&&s.fieldInfos;if(l)for(const t of l)if(t.fieldName===i)return"cluster_count"===i?t.label||{showCount:!0}:t.label}return{showCount:!0}}_getRampTitle(e,t){let i=e.field,s=e.normalizationField,l=!1,r=!1,n=!1,a=null;i="function"==typeof i?null:i,s="function"==typeof s?null:s;const o=e.legendOptions?.title;if(null!=o)a=o;else if(e.valueExpressionTitle)a=e.valueExpressionTitle;else{if("renderer"in t&&t.renderer&&"authoringInfo"in t.renderer&&t.renderer.authoringInfo?.visualVariables){const e=t.renderer.authoringInfo.visualVariables;for(let t=0;t<e.length;t++){const i=e[t];if("color"===i.type){if("ratio"===i.style){l=!0;break}if("percent"===i.style){r=!0;break}if("percent-of-total"===i.style){n=!0;break}}}}a={field:i&&this._getFieldAlias(i,t),normField:s&&this._getFieldAlias(s,t),ratio:l,ratioPercent:r,ratioPercentTotal:n}}return a}_getRendererTitle(e,t){const i=e;if(i.legendOptions?.title)return i.legendOptions.title;if(i.valueExpressionTitle)return i.valueExpressionTitle;let s=i.field,l=null,r=null;if(Ve(i)&&(l=i.normalizationField,r="percent-of-total"===i.normalizationType),s="function"==typeof s?null:s,l="function"==typeof l?null:l,xe(i)){const{field2:e,field3:l,fieldDelimiter:r}=i;let n=s&&this._getFieldAlias(s,t);return e&&(n=`<${n}>${r}<${this._getFieldAlias(e,t)}>`,l&&(n=`${n}${r}<${this._getFieldAlias(l,t)}>`)),n}let n=null;return(s||l)&&(n={field:s&&this._getFieldAlias(s,t),normField:l&&this._getFieldAlias(l,t),normByPct:r}),n}_getFieldAlias(e,t){const i=x(t,{checkFeatureReduction:!0});if(i)return i.getFieldAlias(e)||e;const s="popupTemplate"in t?t.popupTemplate:null,l=s?.fieldInfos;let r=l?.find(t=>e===t.fieldName),n=null;"getField"in t&&t.getField?n=t.getField(e):"fieldsIndex"in t&&t.fieldsIndex&&(n=t.fieldsIndex.get(e));let a=null;const o="featureReduction"in t&&t.featureReduction;o&&(r??="popupTemplate"in o?o.popupTemplate?.fieldInfos?.find(t=>e?.toLowerCase()===t.fieldName?.toLowerCase()):void 0,"fields"in o&&o.fields&&(a=o.fields.find(t=>t.name?.toLowerCase()===e?.toLowerCase())));const u=r||n||a;let c=null;return u&&(c=r?.label||n?.alias||a?.alias||"name"in u&&u.name||"fieldName"in u&&u.fieldName||null),c}_isUnclassedRenderer(e){const t=e.visualVariables;let i=!1;return Ve(e)&&e.classBreakInfos&&1===e.classBreakInfos.length&&t&&(i=e.field?t.some(t=>!(!t||e.field!==t.field||(e.normalizationField||t.normalizationField)&&e.normalizationField!==t.normalizationField)):!!t.length),i}};e([S()],rt.prototype,"_loading",void 0),e([S()],rt.prototype,"children",void 0),e([S({readOnly:!0})],rt.prototype,"cssEffectFilter",null),e([S()],rt.prototype,"layerView",void 0),e([S()],rt.prototype,"layer",void 0),e([S()],rt.prototype,"legendElements",void 0),e([S({readOnly:!0})],rt.prototype,"loading",null),e([S({readOnly:!0})],rt.prototype,"opacity",null),e([S()],rt.prototype,"parent",void 0),e([S({readOnly:!0})],rt.prototype,"ready",null),e([S()],rt.prototype,"hideLayersNotInCurrentView",void 0),e([S()],rt.prototype,"keepCacheOnDestroy",void 0),e([S()],rt.prototype,"respectLayerDefinitionExpression",void 0),e([S()],rt.prototype,"respectLayerVisibility",void 0),e([S({readOnly:!0})],rt.prototype,"scale",null),e([S()],rt.prototype,"sublayerIds",void 0),e([S({readOnly:!0})],rt.prototype,"isScaleDriven",null),e([S()],rt.prototype,"title",void 0),e([S({readOnly:!0,value:0})],rt.prototype,"version",null),e([S()],rt.prototype,"view",void 0),rt=e([w("esri.widgets.Legend.support.ActiveLayerInfo")],rt);export{rt as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import i from"../../../core/Accessor.js";import{isSome as t}from"../../../core/arrayUtils.js";import l from"../../../core/Error.js";import{handlesGroup as o}from"../../../core/handleUtils.js";import n from"../../../core/Logger.js";import{throwIfAborted as r}from"../../../core/promiseUtils.js";import{watch as s}from"../../../core/reactiveUtils.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import{subclass as u}from"../../../core/accessorSupport/decorators/subclass.js";let c=class extends i{constructor(e){super(e),this._pluginLoadPromise=null,this._pluginConstructors=null}get _simplePointPlugin(){const e=Symbol.for("esri-builtin-plugin-leaf-point");return{uniqueId:e,localizationKey:"leaf-point-segment",kind:["vertex"],geometryType:"point",icon:"line-straight",legacyCreateTool:"point",create:()=>this._createPlugin(e),[Symbol.toStringTag]:"Point"}}get _simplePointPluginRoot(){return{...this._simplePointPlugin,icon:"pin",localizationKey:"root-point",create:()=>{const e=this._createPlugin(this._simplePointPlugin.uniqueId);return e.enableHelpMessages=!0,e}}}get _textPointPlugin(){const e=Symbol.for("esri-builtin-plugin-text-point");return{uniqueId:e,localizationKey:"root-text",kind:["vertex"],geometryType:"point",icon:"add-text",legacyCreateTool:"text",create:()=>this._createPlugin(e),[Symbol.toStringTag]:"Text"}}get _multipointPlugin(){const e={...this._simplePointPlugin,localizationKey:"leaf-point",icon:"point",hidden:!0},i=Symbol.for("esri-builtin-plugin-multipoint");return{uniqueId:i,localizationKey:"root-multipoint",kind:["part"],geometryType:"multipoint",icon:"pins",legacyCreateTool:"multipoint",excludedViews:["3d"],create:()=>this._createPlugin(i),availableDownstreamPlugins:[e],defaultDownstreamPlugin:e,[Symbol.toStringTag]:"Multipoint"}}get _freehandPlugin(){const e=Symbol.for("esri-builtin-plugin-freehand");return{uniqueId:e,localizationKey:"leaf-freehand",kind:["vertex","section","part"],geometryType:"polyline",icon:"freehand",legacyCreateTool:"freehandPolyline",create:()=>{const i=this._createPlugin(e);return i.completeOnDragEnd=!0,i},[Symbol.toStringTag]:"Freehand"}}get _bezierPlugin(){const e=Symbol.for("esri-builtin-plugin-bezier-segment");return{uniqueId:e,localizationKey:"leaf-bezier",kind:["vertex","section"],geometryType:"point",curveTypes:["cubic-bezier"],icon:"bezier-curve",excludedViews:["3d"],create:()=>this._createPlugin(e),[Symbol.toStringTag]:"Bezier"}}get _endpointArcPlugin(){const e=Symbol.for("esri-builtin-plugin-circular-arc-segment-end-first");return{uniqueId:e,localizationKey:"leaf-endpoint-arc",kind:["vertex","section"],geometryType:"point",curveTypes:["circular-arc"],icon:"end-point-arc-segment",excludedViews:["3d"],create:()=>this._createPlugin(e,{arcDrawingMode:"end-first"}),availableDownstreamPlugins:[],[Symbol.toStringTag]:"Endpoint Arc"}}get _interiorArcPlugin(){const e=Symbol.for("esri-builtin-plugin-circular-arc-segment-interior-first");return{uniqueId:e,localizationKey:"leaf-circular-arc",kind:["vertex","section"],geometryType:"point",curveTypes:["circular-arc"],icon:"arc-segment",excludedViews:["3d"],create:()=>this._createPlugin(e,{arcDrawingMode:"interior-first"}),availableDownstreamPlugins:[],[Symbol.toStringTag]:"Interior Arc"}}get _singlePartPolylinePlugin(){const e=this.sketch?.visibleElements.createTools,i=!this._isExcludedByAvailableCreateTools("freehandPolyline")&&!1!==e?.freehandPolyline,l=!this._isExcludedByAvailableCreateTools("polyline")&&!1!==e?.polyline,o=Symbol.for("esri-builtin-plugin-simple-polyline");return{uniqueId:o,localizationKey:"root-polyline",kind:["section","part"],geometryType:"polyline",legacyCreateTool:"polyline",icon:l?"line":"freehand",create:()=>this._createPlugin(o),availableDownstreamPlugins:l?[this._simplePointPlugin,i?this._freehandPlugin:null,this._bezierPlugin,this._interiorArcPlugin,this._endpointArcPlugin].filter(t):[i?this._freehandPlugin:null].filter(t),defaultDownstreamPlugin:l?this._simplePointPlugin:this._freehandPlugin,[Symbol.toStringTag]:"Polyline"}}get _singlePartPolygonPlugin(){const e=this.sketch?.visibleElements.createTools,i=!this._isExcludedByAvailableCreateTools("freehandPolygon")&&!1!==e?.freehandPolygon,l=!this._isExcludedByAvailableCreateTools("polygon")&&!1!==e?.polygon,o=Symbol.for("esri-builtin-plugin-simple-polygon");return{uniqueId:o,localizationKey:"root-polygon",kind:["section","part"],geometryType:"polygon",legacyCreateTool:"polygon",icon:l?"polygon":"freehand-area",create:()=>this._createPlugin(o),availableDownstreamPlugins:l?[this._simplePointPlugin,i?this._freehandPlugin:null,this._bezierPlugin,this._interiorArcPlugin,this._endpointArcPlugin].filter(t):[i?this._freehandPlugin:null].filter(t),defaultDownstreamPlugin:l?this._simplePointPlugin:this._freehandPlugin,[Symbol.toStringTag]:"Polygon"}}get _rectanglePlugin(){const e=Symbol.for("esri-builtin-plugin-simple-rectangle");return{uniqueId:e,localizationKey:"root-rectangle",kind:["part"],geometryType:"polygon",icon:"rectangle",legacyCreateTool:"rectangle",create:()=>this._createPlugin(e),[Symbol.toStringTag]:"Rectangle"}}get _circlePlugin(){const e=Symbol.for("esri-builtin-plugin-simple-ellipse");return{uniqueId:e,localizationKey:"root-circle",kind:["part"],geometryType:"polygon",icon:"circle",legacyCreateTool:"circle",create:()=>{const i=this._createPlugin(e);return i.shapeType="circle",i.defaultUniform=!0,i.defaultCentered=!0,i},[Symbol.toStringTag]:"Circle"}}set sketch(e){this._set("sketch",e)}set sketchViewModel(e){this._overrideIfSome("sketchViewModel",e)}get sketchViewModel(){return this.sketch?.viewModel}get effectiveRootPoint(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.point&&!this._isExcludedByAvailableCreateTools("point")?this._simplePointPluginRoot:null}get effectiveRootText(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.text&&!this._isExcludedByAvailableCreateTools("text")?this._textPointPlugin:null}get effectiveRootMultipoint(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.multipoint&&!this._isExcludedByAvailableCreateTools("multipoint")&&"3d"!==this.sketchViewModel?.view?.type?this._multipointPlugin:null}get effectiveRootPolyline(){const e=this.sketch?.visibleElements.createTools,i=!this._isExcludedByAvailableCreateTools("polyline")&&!1!==e?.polyline,t=!this._isExcludedByAvailableCreateTools("freehandPolyline")&&!1!==e?.freehandPolyline;return i||t?this._singlePartPolylinePlugin:null}get effectiveRootPolygon(){const e=this.sketch?.visibleElements.createTools,i=!this._isExcludedByAvailableCreateTools("polygon")&&!1!==e?.polygon,t=!this._isExcludedByAvailableCreateTools("freehandPolygon")&&!1!==e?.freehandPolygon;return i||t?this._singlePartPolygonPlugin:null}get effectiveRootRectangle(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.rectangle&&!this._isExcludedByAvailableCreateTools("rectangle")?this._rectanglePlugin:null}get effectiveRootCircle(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.circle&&!this._isExcludedByAvailableCreateTools("circle")?this._circlePlugin:null}get availablePlugins(){const e=[this.effectiveRootPoint,this.effectiveRootText,this.effectiveRootMultipoint,this.effectiveRootPolyline,this.effectiveRootPolygon,this.effectiveRootRectangle,this.effectiveRootCircle].filter(t),i=this.sketch?.availableCreateTools;if(!i)return e;const l=e=>{if(!e.legacyCreateTool)return Number.MAX_SAFE_INTEGER;const t=i.indexOf(e.legacyCreateTool);return-1===t?Number.MAX_SAFE_INTEGER:t};return e.map((e,i)=>({plugin:e,index:i,order:l(e)})).sort((e,i)=>e.order-i.order||e.index-i.index).map(({plugin:e})=>e)}get loaded(){return null!=this._pluginConstructors}getPluginsEquivalentToCreateTool(e,i){switch(e){case"text":return[this._textPointPlugin];case"point":return[this._simplePointPluginRoot];case"rectangle":return[this._rectanglePlugin];case"circle":return[this._circlePlugin];case"freehandPolyline":return[this._singlePartPolylinePlugin,this._freehandPlugin];case"freehandPolygon":return[this._singlePartPolygonPlugin,this._freehandPlugin];case"polyline":return"freehand"===i?[this._singlePartPolylinePlugin,this._freehandPlugin]:[this._singlePartPolylinePlugin,this._simplePointPlugin];case"polygon":return"freehand"===i?[this._singlePartPolygonPlugin,this._freehandPlugin]:[this._singlePartPolygonPlugin,this._simplePointPlugin];case"multipoint":return[this._multipointPlugin];default:return null}}getDrawingModeEquivalentToPluginStack(e){const i=e.at(-1);if(i===this._freehandPlugin)return"freehand";return i===this._rectanglePlugin||i===this._circlePlugin?"hybrid":"click"}async makeRenderer(e={}){const i=this.sketchViewModel;if(!i?.view)return null;const{abortOptions:t,useTextSymbol:l,customSymbol:o}=e;return"2d"===i.view.type?await this._makeDrawToolRenderer2D({view:i.view,svm:i,useTextSymbol:l,customSymbol:o,abortOptions:t}):await this._makeDrawToolRenderer3D({view:i.view,svm:i,useTextSymbol:l,abortOptions:t})}async loadPlugins(){if(!this.loaded)return this._pluginLoadPromise||(this._pluginLoadPromise=(async()=>{const[{PointPlugin:e},{MultipointPlugin:i},{PolylinePlugin:t},{PolygonPlugin:l},{FreehandSegmentPlugin:o},{BezierSegmentPlugin:n},{CircularArcSegmentPlugin:r},{ShapePlugin:s}]=await Promise.all([import("../../../views/draw/plugins/PointPlugin.js"),import("../../../views/draw/plugins/MultipointPlugin.js"),import("../../../views/draw/plugins/PolylinePlugin.js"),import("../../../views/draw/plugins/PolygonPlugin.js"),import("../../../views/draw/plugins/FreehandSegmentPlugin.js"),import("../../../views/draw/plugins/BezierSegmentPlugin.js"),import("../../../views/draw/plugins/CircularArcSegmentPlugin.js"),import("../../../views/draw/plugins/ShapePlugin.js")]);this._pluginConstructors=new Map([[Symbol.for("esri-builtin-plugin-leaf-point"),e],[Symbol.for("esri-builtin-plugin-text-point"),e],[Symbol.for("esri-builtin-plugin-multipoint"),i],[Symbol.for("esri-builtin-plugin-freehand"),o],[Symbol.for("esri-builtin-plugin-bezier-segment"),n],[Symbol.for("esri-builtin-plugin-circular-arc-segment-end-first"),r],[Symbol.for("esri-builtin-plugin-circular-arc-segment-interior-first"),r],[Symbol.for("esri-builtin-plugin-simple-polyline"),t],[Symbol.for("esri-builtin-plugin-simple-polygon"),l],[Symbol.for("esri-builtin-plugin-simple-rectangle"),s],[Symbol.for("esri-builtin-plugin-simple-ellipse"),s]])})().catch(e=>{throw this._pluginLoadPromise=null,e})),this._pluginLoadPromise}_isExcludedByAvailableCreateTools(e){return!!this.sketch&&!this.sketch.availableCreateTools?.includes(e)}_createPlugin(e,...i){const t=this._pluginConstructors?.get(e);if(!t)throw new l("Sketch:PluginManager","Plugin implementations are not loaded. Call loadPlugins() before creating plugins.");return new t(...i)}async _makeDrawToolRenderer2D(e){const{DrawToolRenderer2D:i}=await import("../../../views/2d/interactive/editingTools/draw/DrawToolRenderer2D.js"),{view:t,svm:l,useTextSymbol:o,abortOptions:n}=e;r(n);const s=o?l.textSymbol??l.pointSymbol:l.pointSymbol,a=new i({symbolOverrides:{polyline:{outputGeometry:{default:e.customSymbol??l.polylineSymbol},outline:{active:l.activeLineSymbol??void 0}},polygon:{outputGeometry:{default:e.customSymbol??l.activeFillSymbol??l.polygonSymbol}},point:{outputGeometry:{default:e.customSymbol??s},vertex:{default:l.vertexSymbol,active:l.activeVertexSymbol??void 0}}},view:t}),u=this._setupSymbolWatcher(a,l,!!o,!!e.customSymbol);return a.addHandles(u),a}async _makeDrawToolRenderer3D(e){const{view:i,svm:t,useTextSymbol:l,abortOptions:o}=e;return n.getLogger(this).warnOnce("Using DrawToolRenderer2D in 3D view. A 3D-specific implementation of DrawToolRenderer is not yet available."),this._makeDrawToolRenderer2D({view:i,svm:t,useTextSymbol:l,abortOptions:o})}_setupSymbolWatcher(e,i,t,l){const n=(i,t,l)=>(o,n)=>{o!==n&&e.overrideSymbol({symbol:o,geometryType:i,role:t,state:l})},r=[s(()=>i.activeLineSymbol,n("polyline","outline","active")),s(()=>i.vertexSymbol,n("point","vertex")),s(()=>i.activeVertexSymbol,n("point","vertex","active"))];return l||r.push(s(()=>i.polylineSymbol,n("polyline","outputGeometry")),s(()=>i.activeFillSymbol??i.polygonSymbol,n("polygon","outputGeometry")),s(()=>t?i.textSymbol??i.pointSymbol:i.pointSymbol,n("point","outputGeometry"))),o(r)}};e([a()],c.prototype,"_simplePointPlugin",null),e([a()],c.prototype,"_simplePointPluginRoot",null),e([a()],c.prototype,"_textPointPlugin",null),e([a()],c.prototype,"_multipointPlugin",null),e([a()],c.prototype,"_freehandPlugin",null),e([a()],c.prototype,"_bezierPlugin",null),e([a()],c.prototype,"_endpointArcPlugin",null),e([a()],c.prototype,"_interiorArcPlugin",null),e([a()],c.prototype,"_singlePartPolylinePlugin",null),e([a()],c.prototype,"_singlePartPolygonPlugin",null),e([a()],c.prototype,"_rectanglePlugin",null),e([a()],c.prototype,"_circlePlugin",null),e([a()],c.prototype,"sketch",null),e([a()],c.prototype,"sketchViewModel",null),e([a()],c.prototype,"effectiveRootPoint",null),e([a()],c.prototype,"effectiveRootText",null),e([a()],c.prototype,"effectiveRootMultipoint",null),e([a()],c.prototype,"effectiveRootPolyline",null),e([a()],c.prototype,"effectiveRootPolygon",null),e([a()],c.prototype,"effectiveRootRectangle",null),e([a()],c.prototype,"effectiveRootCircle",null),e([a()],c.prototype,"availablePlugins",null),e([a()],c.prototype,"loaded",null),c=e([u("esri.widgets.Sketch.support.PluginManager")],c);export{c as PluginManager};
2
+ import{__decorate as e}from"tslib";import i from"../../../core/Accessor.js";import{isSome as t}from"../../../core/arrayUtils.js";import l from"../../../core/Error.js";import{handlesGroup as o}from"../../../core/handleUtils.js";import n from"../../../core/Logger.js";import{throwIfAborted as r}from"../../../core/promiseUtils.js";import{watch as s}from"../../../core/reactiveUtils.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import{subclass as u}from"../../../core/accessorSupport/decorators/subclass.js";let c=class extends i{constructor(e){super(e),this._pluginLoadPromise=null,this._pluginConstructors=null}get _simplePointPlugin(){const e=Symbol.for("esri-builtin-plugin-leaf-point");return{uniqueId:e,localizationKey:"leaf-point-segment",kind:["vertex"],geometryType:"point",icon:"line-straight",legacyCreateTool:"point",create:()=>this._createPlugin(e),[Symbol.toStringTag]:"Point"}}get _simplePointPluginRoot(){return{...this._simplePointPlugin,icon:"pin",localizationKey:"root-point",create:()=>{const e=this._createPlugin(this._simplePointPlugin.uniqueId);return e.enableHelpMessages=!0,e}}}get _textPointPlugin(){const e=Symbol.for("esri-builtin-plugin-text-point");return{uniqueId:e,localizationKey:"root-text",kind:["vertex"],geometryType:"point",icon:"add-text",legacyCreateTool:"text",create:()=>this._createPlugin(e),[Symbol.toStringTag]:"Text"}}get _multipointPlugin(){const e={...this._simplePointPlugin,localizationKey:"leaf-point",icon:"point",hidden:!0},i=Symbol.for("esri-builtin-plugin-multipoint");return{uniqueId:i,localizationKey:"root-multipoint",kind:["part"],geometryType:"multipoint",icon:"pins",legacyCreateTool:"multipoint",excludedViews:["3d"],create:()=>this._createPlugin(i),availableDownstreamPlugins:[e],defaultDownstreamPlugin:e,[Symbol.toStringTag]:"Multipoint"}}get _freehandPlugin(){const e=Symbol.for("esri-builtin-plugin-freehand");return{uniqueId:e,localizationKey:"leaf-freehand",kind:["vertex","section","part"],geometryType:"polyline",icon:"freehand",legacyCreateTool:"freehandPolyline",create:()=>{const i=this._createPlugin(e);return i.completeOnDragEnd=!0,i},[Symbol.toStringTag]:"Freehand"}}get _bezierPlugin(){const e=Symbol.for("esri-builtin-plugin-bezier-segment");return{uniqueId:e,localizationKey:"leaf-bezier",kind:["vertex","section"],geometryType:"point",curveTypes:["cubic-bezier"],icon:"bezier-curve",excludedViews:["3d"],create:()=>this._createPlugin(e),[Symbol.toStringTag]:"Bezier"}}get _endpointArcPlugin(){const e=Symbol.for("esri-builtin-plugin-circular-arc-segment-end-first");return{uniqueId:e,localizationKey:"leaf-endpoint-arc",kind:["vertex","section"],geometryType:"point",curveTypes:["circular-arc"],icon:"end-point-arc-segment",excludedViews:["3d"],create:()=>this._createPlugin(e,{arcDrawingMode:"end-first"}),availableDownstreamPlugins:[],[Symbol.toStringTag]:"Endpoint Arc"}}get _interiorArcPlugin(){const e=Symbol.for("esri-builtin-plugin-circular-arc-segment-interior-first");return{uniqueId:e,localizationKey:"leaf-circular-arc",kind:["vertex","section"],geometryType:"point",curveTypes:["circular-arc"],icon:"arc-segment",excludedViews:["3d"],create:()=>this._createPlugin(e,{arcDrawingMode:"interior-first"}),availableDownstreamPlugins:[],[Symbol.toStringTag]:"Interior Arc"}}get _singlePartPolylinePlugin(){const e=this.sketch?.visibleElements.createTools,i=!this._isExcludedByAvailableCreateTools("freehandPolyline")&&!1!==e?.freehandPolyline,l=!this._isExcludedByAvailableCreateTools("polyline")&&!1!==e?.polyline,o=Symbol.for("esri-builtin-plugin-simple-polyline");return{uniqueId:o,localizationKey:"root-polyline",kind:["section","part"],geometryType:"polyline",legacyCreateTool:"polyline",icon:l?"line":"freehand",create:()=>this._createPlugin(o),availableDownstreamPlugins:l?[this._simplePointPlugin,i?this._freehandPlugin:null,this._bezierPlugin,this._interiorArcPlugin,this._endpointArcPlugin].filter(t):[i?this._freehandPlugin:null].filter(t),defaultDownstreamPlugin:l?this._simplePointPlugin:this._freehandPlugin,[Symbol.toStringTag]:"Polyline"}}get _singlePartPolygonPlugin(){const e=this.sketch?.visibleElements.createTools,i=!this._isExcludedByAvailableCreateTools("freehandPolygon")&&!1!==e?.freehandPolygon,l=!this._isExcludedByAvailableCreateTools("polygon")&&!1!==e?.polygon,o=Symbol.for("esri-builtin-plugin-simple-polygon");return{uniqueId:o,localizationKey:"root-polygon",kind:["section","part"],geometryType:"polygon",legacyCreateTool:"polygon",icon:l?"polygon":"freehand-area",create:()=>this._createPlugin(o),availableDownstreamPlugins:l?[this._simplePointPlugin,i?this._freehandPlugin:null,this._bezierPlugin,this._interiorArcPlugin,this._endpointArcPlugin].filter(t):[i?this._freehandPlugin:null].filter(t),defaultDownstreamPlugin:l?this._simplePointPlugin:this._freehandPlugin,[Symbol.toStringTag]:"Polygon"}}get _rectanglePlugin(){const e=Symbol.for("esri-builtin-plugin-simple-rectangle");return{uniqueId:e,localizationKey:"root-rectangle",kind:["part"],geometryType:"polygon",icon:"rectangle",legacyCreateTool:"rectangle",create:()=>this._createPlugin(e),[Symbol.toStringTag]:"Rectangle"}}get _circlePlugin(){const e=Symbol.for("esri-builtin-plugin-simple-ellipse");return{uniqueId:e,localizationKey:"root-circle",kind:["part"],geometryType:"polygon",icon:"circle",legacyCreateTool:"circle",create:()=>{const i=this._createPlugin(e);return i.shapeType="circle",i.defaultUniform=!0,i.defaultCentered=!0,i},[Symbol.toStringTag]:"Circle"}}set sketch(e){this._set("sketch",e)}set sketchViewModel(e){this._overrideIfSome("sketchViewModel",e)}get sketchViewModel(){return this.sketch?.viewModel}get effectiveRootPoint(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.point&&!this._isExcludedByAvailableCreateTools("point")?this._simplePointPluginRoot:null}get effectiveRootText(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.text&&!this._isExcludedByAvailableCreateTools("text")?this._textPointPlugin:null}get effectiveRootMultipoint(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.multipoint&&!this._isExcludedByAvailableCreateTools("multipoint")&&"3d"!==this.sketchViewModel?.view?.type?this._multipointPlugin:null}get effectiveRootPolyline(){const e=this.sketch?.visibleElements.createTools,i=!this._isExcludedByAvailableCreateTools("polyline")&&!1!==e?.polyline,t=!this._isExcludedByAvailableCreateTools("freehandPolyline")&&!1!==e?.freehandPolyline;return i||t?this._singlePartPolylinePlugin:null}get effectiveRootPolygon(){const e=this.sketch?.visibleElements.createTools,i=!this._isExcludedByAvailableCreateTools("polygon")&&!1!==e?.polygon,t=!this._isExcludedByAvailableCreateTools("freehandPolygon")&&!1!==e?.freehandPolygon;return i||t?this._singlePartPolygonPlugin:null}get effectiveRootRectangle(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.rectangle&&!this._isExcludedByAvailableCreateTools("rectangle")?this._rectanglePlugin:null}get effectiveRootCircle(){const e=this.sketch?.visibleElements.createTools;return!1!==e?.circle&&!this._isExcludedByAvailableCreateTools("circle")?this._circlePlugin:null}get availablePlugins(){const e=[this.effectiveRootPoint,this.effectiveRootText,this.effectiveRootMultipoint,this.effectiveRootPolyline,this.effectiveRootPolygon,this.effectiveRootRectangle,this.effectiveRootCircle].filter(t),i=this.sketch?.availableCreateTools;if(!i)return e;const l=e=>{if(!e.legacyCreateTool)return Number.MAX_SAFE_INTEGER;const t=i.indexOf(e.legacyCreateTool);return-1===t?Number.MAX_SAFE_INTEGER:t};return e.map((e,i)=>({plugin:e,index:i,order:l(e)})).sort((e,i)=>e.order-i.order||e.index-i.index).map(({plugin:e})=>e)}get loaded(){return null!=this._pluginConstructors}getPluginsEquivalentToCreateTool(e,i){switch(e){case"text":return[this._textPointPlugin];case"point":return[this._simplePointPluginRoot];case"rectangle":return[this._rectanglePlugin];case"circle":return[this._circlePlugin];case"freehandPolyline":return[this._singlePartPolylinePlugin,this._freehandPlugin];case"freehandPolygon":return[this._singlePartPolygonPlugin,this._freehandPlugin];case"polyline":return"click"!==i?[this._singlePartPolylinePlugin,this._freehandPlugin]:[this._singlePartPolylinePlugin,this._simplePointPlugin];case"polygon":return"click"!==i?[this._singlePartPolygonPlugin,this._freehandPlugin]:[this._singlePartPolygonPlugin,this._simplePointPlugin];case"multipoint":return[this._multipointPlugin];default:return null}}getDrawingModeEquivalentToPluginStack(e){const i=e.at(-1);if(i===this._freehandPlugin)return"freehand";return i===this._rectanglePlugin||i===this._circlePlugin?"hybrid":"click"}async makeRenderer(e={}){const i=this.sketchViewModel;if(!i?.view)return null;const{abortOptions:t,useTextSymbol:l,customSymbol:o}=e;return"2d"===i.view.type?await this._makeDrawToolRenderer2D({view:i.view,svm:i,useTextSymbol:l,customSymbol:o,abortOptions:t}):await this._makeDrawToolRenderer3D({view:i.view,svm:i,useTextSymbol:l,abortOptions:t})}async loadPlugins(){if(!this.loaded)return this._pluginLoadPromise||(this._pluginLoadPromise=(async()=>{const[{PointPlugin:e},{MultipointPlugin:i},{PolylinePlugin:t},{PolygonPlugin:l},{FreehandSegmentPlugin:o},{BezierSegmentPlugin:n},{CircularArcSegmentPlugin:r},{ShapePlugin:s}]=await Promise.all([import("../../../views/draw/plugins/PointPlugin.js"),import("../../../views/draw/plugins/MultipointPlugin.js"),import("../../../views/draw/plugins/PolylinePlugin.js"),import("../../../views/draw/plugins/PolygonPlugin.js"),import("../../../views/draw/plugins/FreehandSegmentPlugin.js"),import("../../../views/draw/plugins/BezierSegmentPlugin.js"),import("../../../views/draw/plugins/CircularArcSegmentPlugin.js"),import("../../../views/draw/plugins/ShapePlugin.js")]);this._pluginConstructors=new Map([[Symbol.for("esri-builtin-plugin-leaf-point"),e],[Symbol.for("esri-builtin-plugin-text-point"),e],[Symbol.for("esri-builtin-plugin-multipoint"),i],[Symbol.for("esri-builtin-plugin-freehand"),o],[Symbol.for("esri-builtin-plugin-bezier-segment"),n],[Symbol.for("esri-builtin-plugin-circular-arc-segment-end-first"),r],[Symbol.for("esri-builtin-plugin-circular-arc-segment-interior-first"),r],[Symbol.for("esri-builtin-plugin-simple-polyline"),t],[Symbol.for("esri-builtin-plugin-simple-polygon"),l],[Symbol.for("esri-builtin-plugin-simple-rectangle"),s],[Symbol.for("esri-builtin-plugin-simple-ellipse"),s]])})().catch(e=>{throw this._pluginLoadPromise=null,e})),this._pluginLoadPromise}_isExcludedByAvailableCreateTools(e){return!!this.sketch&&!this.sketch.availableCreateTools?.includes(e)}_createPlugin(e,...i){const t=this._pluginConstructors?.get(e);if(!t)throw new l("Sketch:PluginManager","Plugin implementations are not loaded. Call loadPlugins() before creating plugins.");return new t(...i)}async _makeDrawToolRenderer2D(e){const{DrawToolRenderer2D:i}=await import("../../../views/2d/interactive/editingTools/draw/DrawToolRenderer2D.js"),{view:t,svm:l,useTextSymbol:o,abortOptions:n}=e;r(n);const s=o?l.textSymbol??l.pointSymbol:l.pointSymbol,a=new i({symbolOverrides:{polyline:{outputGeometry:{default:e.customSymbol??l.polylineSymbol},outline:{active:l.activeLineSymbol??void 0}},polygon:{outputGeometry:{default:e.customSymbol??l.activeFillSymbol??l.polygonSymbol}},point:{outputGeometry:{default:e.customSymbol??s},vertex:{default:l.vertexSymbol,active:l.activeVertexSymbol??void 0}}},view:t}),u=this._setupSymbolWatcher(a,l,!!o,!!e.customSymbol);return a.addHandles(u),a}async _makeDrawToolRenderer3D(e){const{view:i,svm:t,useTextSymbol:l,abortOptions:o}=e;return n.getLogger(this).warnOnce("Using DrawToolRenderer2D in 3D view. A 3D-specific implementation of DrawToolRenderer is not yet available."),this._makeDrawToolRenderer2D({view:i,svm:t,useTextSymbol:l,abortOptions:o})}_setupSymbolWatcher(e,i,t,l){const n=(i,t,l)=>(o,n)=>{o!==n&&e.overrideSymbol({symbol:o,geometryType:i,role:t,state:l})},r=[s(()=>i.activeLineSymbol,n("polyline","outline","active")),s(()=>i.vertexSymbol,n("point","vertex")),s(()=>i.activeVertexSymbol,n("point","vertex","active"))];return l||r.push(s(()=>i.polylineSymbol,n("polyline","outputGeometry")),s(()=>i.activeFillSymbol??i.polygonSymbol,n("polygon","outputGeometry")),s(()=>t?i.textSymbol??i.pointSymbol:i.pointSymbol,n("point","outputGeometry"))),o(r)}};e([a()],c.prototype,"_simplePointPlugin",null),e([a()],c.prototype,"_simplePointPluginRoot",null),e([a()],c.prototype,"_textPointPlugin",null),e([a()],c.prototype,"_multipointPlugin",null),e([a()],c.prototype,"_freehandPlugin",null),e([a()],c.prototype,"_bezierPlugin",null),e([a()],c.prototype,"_endpointArcPlugin",null),e([a()],c.prototype,"_interiorArcPlugin",null),e([a()],c.prototype,"_singlePartPolylinePlugin",null),e([a()],c.prototype,"_singlePartPolygonPlugin",null),e([a()],c.prototype,"_rectanglePlugin",null),e([a()],c.prototype,"_circlePlugin",null),e([a()],c.prototype,"sketch",null),e([a()],c.prototype,"sketchViewModel",null),e([a()],c.prototype,"effectiveRootPoint",null),e([a()],c.prototype,"effectiveRootText",null),e([a()],c.prototype,"effectiveRootMultipoint",null),e([a()],c.prototype,"effectiveRootPolyline",null),e([a()],c.prototype,"effectiveRootPolygon",null),e([a()],c.prototype,"effectiveRootRectangle",null),e([a()],c.prototype,"effectiveRootCircle",null),e([a()],c.prototype,"availablePlugins",null),e([a()],c.prototype,"loaded",null),c=e([u("esri.widgets.Sketch.support.PluginManager")],c);export{c as PluginManager};
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[6320,7694],{46140(e,t,r){r.d(t,{A:()=>n});var i=r(49186);class n{constructor(e,t,r=""){this.major=e,this.minor=t,this._context=r}lessThan(e,t){return this.major<e||e===this.major&&this.minor<t}greaterEqual(e,t){return!this.lessThan(e,t)}toString(){return`${this.major}.${this.minor}`}validate(e){if(this.major!==e.major){const t=this._context&&this._context+":",r=this._context&&this._context+" ";throw new i.A(t+"unsupported-version",`Required major ${r}version is '${this.major}', but got '\${version.major}.\${version.minor}'`,{version:e})}}clone(){return new n(this.major,this.minor,this._context)}static parse(e,t=""){const[r,o]=e.split("."),s=/^\s*\d+\s*$/;if(!r?.match||!s.test(r))throw new i.A((t&&t+":")+"invalid-version","Expected major version to be a number, but got '${version}'",{version:e});if(!o?.match||!s.test(o))throw new i.A((t&&t+":")+"invalid-version","Expected minor version to be a number, but got '${version}'",{version:e});const a=parseInt(r,10),l=parseInt(o,10);return new n(a,l,t)}}},6797(e,t,r){r.d(t,{Ui:()=>p});var i=r(69622),n=r(7762),o=r(88620);const s=new Set(["esri.Color","esri.portal.Portal","esri.symbols.support.Symbol3DAnchorPosition2D","esri.symbols.support.Symbol3DAnchorPosition3D"]);function a(e){return e instanceof i.A}function l(e){return e instanceof n.A?Object.keys(e.items):a(e)?(0,o.oY)(e).keys():e?Object.keys(e):[]}function u(e,t){return e instanceof n.A?e.items[t]:e[t]}function c(e){return e?e.declaredClass:null}function d(e,t){const r=e.diff;if(r&&"function"==typeof r)return r(e,t);const i=l(e),n=l(t);if(0===i.length&&0===n.length)return;if(!i.length||!n.length||function(e,t){return!(!Array.isArray(e)||!Array.isArray(t))&&e.length!==t.length}(e,t))return{type:"complete",oldValue:e,newValue:t};const o=n.filter(e=>!i.includes(e)),p=i.filter(e=>!n.includes(e)),f=i.filter(r=>n.includes(r)&&u(e,r)!==u(t,r)).concat(o,p).sort(),h=c(e);if(h&&s.has(h)&&f.length)return{type:"complete",oldValue:e,newValue:t};let y;const m=a(e)&&a(t);for(const i of f){const n=u(e,i),o=u(t,i);let s;if((m||"function"!=typeof n&&"function"!=typeof o)&&n!==o&&(null!=n||null!=o)){if(r&&r[i]&&"function"==typeof r[i])s=r[i]?.(n,o);else if(n instanceof Date&&o instanceof Date){if(n.getTime()===o.getTime())continue;s={type:"complete",oldValue:n,newValue:o}}else s="object"==typeof n&&"object"==typeof o&&c(n)===c(o)?d(n,o):{type:"complete",oldValue:n,newValue:o};null!=s&&(null!=y?y.diff[i]=s:y={type:"partial",diff:{[i]:s}})}}return y}function p(e,t){if("function"!=typeof e&&"function"!=typeof t&&(null!=e||null!=t))return null==e||null==t||"object"==typeof e&&"object"==typeof t&&c(e)!==c(t)?{type:"complete",oldValue:e,newValue:t}:d(e,t)}},16494(e,t,r){r.d(t,{Nd:()=>a,W5:()=>s});var i=r(17632);const n=["dd","dl","dt","h1","h2","h3","h4","h5","h6","sub","sup","animate","animatetransform","circle","clippath","defs","ellipse","g","image","line","lineargradient","marker","mask","path","pattern","polygon","polyline","radialgradient","rect","stop","svg","switch","symbol","text","textpath","tspan","use"].reduce((e,t)=>(e[t]=[],e),{}),o=["align","alink","alt","bgcolor","border","cellpadding","cellspacing","class","color","cols","colspan","coords","d","dir","face","height","hspace","ismap","lang","marginheight","marginwidth","multiple","nohref","noresize","noshade","nowrap","ref","rel","rev","rows","rowspan","scrolling","shape","span","summary","tabindex","title","usemap","valign","value","vlink","vspace","width"],s=new i.I({whiteList:n,onTagAttr:(e,t,r)=>{const i=`${t}="${r}"`;if(o.includes(t))return i},stripIgnoreTag:!0,stripIgnoreTagBody:["script","style"]},!0),a=new i.I({whiteList:{br:[]},stripIgnoreTag:!0,escapeHtml:e=>e},!1)},62815(e,t,r){r.d(t,{N:()=>a,d:()=>l});var i=r(86211),n=r(73941),o=r(21325),s=r(52006);function a(e,t,r){const i=l(t,r);if(1!==i)switch(e){case"point":case"esriGeometryPoint":return e=>function(e,t){null!=e?.z&&(e.z*=t)}(e,i);case"polyline":case"esriGeometryPolyline":return e=>function(e,t){if(e){if(e.curvePaths)for(const r of e.curvePaths)for(const e of r){const r=(0,s.yP)(e);r.length>2&&(r[2]*=t)}if(e.paths)for(const r of e.paths)for(const e of r)e.length>2&&(e[2]*=t)}}(e,i);case"polygon":case"esriGeometryPolygon":return e=>function(e,t){if(e){if(e.curveRings)for(const r of e.curveRings)for(const e of r){const r=(0,s.yP)(e);r.length>2&&(r[2]*=t)}if(e.rings)for(const r of e.rings)for(const e of r)e.length>2&&(e[2]*=t)}}(e,i);case"multipoint":case"esriGeometryMultipoint":return e=>function(e,t){if(e)for(const r of e.points)r.length>2&&(r[2]*=t)}(e,i);case"extent":case"esriGeometryEnvelope":return e=>function(e,t){e&&null!=e.zmin&&null!=e.zmax&&(e.zmin*=t,e.zmax*=t)}(e,i);default:return}}function l(e,t){return null==e||null==t||t.vcsWkid||(0,o.aI)(e,t)||(0,n.xP)(e)||(0,n.xP)(t)?1:(0,i.G9)(e)/(0,i.G9)(t)}},4146(e,t,r){r.d(t,{A:()=>w});var i=r(5482),n=r(11254),o=r(49186),s=r(65529),a=r(4902),l=r(92474),u=r(53966),c=r(17676),d=r(84952),p=r(91429),f=r(5443),h=r(16930),y=r(92602),m=r(79677);let g=0,w=class extends((0,s.Zt)((0,a.s)(l.x_))){constructor(){super(...arguments),this.attributionDataUrl=null,this.fullExtent=new f.A(-180,-90,180,90,h.A.WGS84),this.id=Date.now().toString(16)+"-layer-"+g++,this.legendEnabled=!0,this.listMode="show",this.opacity=1,this.parent=null,this.persistenceEnabled=!1,this.popupEnabled=!0,this.attributionVisible=!0,this.spatialReference=h.A.WGS84,this.title=null,this.type=null,this.url=null,this.visibilityTimeExtent=null,this.visible=!0}static async fromArcGISServerUrl(e){const t="string"==typeof e?{url:e}:e;return(await Promise.all([r.e(812),r.e(7982)]).then(r.bind(r,27982))).fromUrl(t)}static fromPortalItem(e){return async function(e){const t="portalItem"in e?e:{portalItem:e},{fromItem:i}=await Promise.all([r.e(812),r.e(5613),r.e(5710)]).then(r.bind(r,45613));try{return await i(t)}catch(e){const r=t?.portalItem,i=r?.id||"unset",n=r?.portal?.url||y.A.portalUrl;throw u.A.getLogger("esri.layers.support.fromPortalItem").error("#fromPortalItem()","Failed to create layer from portal item (portal: '"+n+"', id: '"+i+"')",e),e}}(e)}initialize(){this.when().catch(e=>{(0,c.zf)(e)||u.A.getLogger(this).error("#load()",`Failed to load layer (title: '${this.title??"no title"}', id: '${this.id??"no id"}')`,{error:e})})}destroy(){const{parent:e}=this;e&&(this.parent=null,e.removeChildLayer?.(this))}get effectiveVisible(){return this.visible&&(this.parent?.effectiveVisible??!0)}get hasAttributionData(){return null!=this.attributionDataUrl}get loaded(){return super.loaded}removeFromParent(){const{parent:e}=this;e&&(e.removeChildLayer?.(this),this.parent=null)}get parsedUrl(){return(0,d.An)(this.url)}createLayerView(e,t){return Promise.reject(new o.A("layer:create-layer-view","Layer does not support creating a layer view"))}async fetchAttributionData(){const e=this.attributionDataUrl;if(this.hasAttributionData&&e)return(await(0,n.A)(e,{query:{f:"json"},responseType:"json"})).data;throw new o.A("layer:no-attribution-data","Layer does not have attribution data")}};(0,i.Cg)([(0,p.MZ)({type:String})],w.prototype,"attributionDataUrl",void 0),(0,i.Cg)([(0,p.MZ)({readOnly:!0})],w.prototype,"effectiveVisible",null),(0,i.Cg)([(0,p.MZ)({type:f.A})],w.prototype,"fullExtent",void 0),(0,i.Cg)([(0,p.MZ)({readOnly:!0})],w.prototype,"hasAttributionData",null),(0,i.Cg)([(0,p.MZ)({type:String,clonable:!1})],w.prototype,"id",void 0),(0,i.Cg)([(0,p.MZ)({type:Boolean,nonNullable:!0})],w.prototype,"legendEnabled",void 0),(0,i.Cg)([(0,p.MZ)({type:["show","hide","hide-children"]})],w.prototype,"listMode",void 0),(0,i.Cg)([(0,p.MZ)({type:Number,range:{min:0,max:1},nonNullable:!0})],w.prototype,"opacity",void 0),(0,i.Cg)([(0,p.MZ)({clonable:!1})],w.prototype,"parent",void 0),(0,i.Cg)([(0,p.MZ)({readOnly:!0})],w.prototype,"parsedUrl",null),(0,i.Cg)([(0,p.MZ)({type:Boolean,readOnly:!0})],w.prototype,"persistenceEnabled",void 0),(0,i.Cg)([(0,p.MZ)({type:Boolean})],w.prototype,"popupEnabled",void 0),(0,i.Cg)([(0,p.MZ)({type:Boolean})],w.prototype,"attributionVisible",void 0),(0,i.Cg)([(0,p.MZ)({type:h.A})],w.prototype,"spatialReference",void 0),(0,i.Cg)([(0,p.MZ)({type:String})],w.prototype,"title",void 0),(0,i.Cg)([(0,p.MZ)({readOnly:!0,json:{read:!1}})],w.prototype,"type",void 0),(0,i.Cg)([(0,p.MZ)()],w.prototype,"url",void 0),(0,i.Cg)([(0,p.MZ)({type:m.A})],w.prototype,"visibilityTimeExtent",void 0),(0,i.Cg)([(0,p.MZ)({type:Boolean,nonNullable:!0})],w.prototype,"visible",void 0),w=(0,i.Cg)([(0,p.$K)("esri.layers.Layer")],w)},52136(e,t,r){r.d(t,{p:()=>o});var i=r(5482),n=r(91429);const o=e=>{const t=e;let r=class extends t{get apiKey(){return this._isOverridden("apiKey")?this._get("apiKey"):"portalItem"in this?this.portalItem?.apiKey:null}set apiKey(e){null!=e?this._override("apiKey",e):(this._clearOverride("apiKey"),this.clear("apiKey","user"))}};return(0,i.Cg)([(0,n.MZ)({type:String})],r.prototype,"apiKey",null),r=(0,i.Cg)([(0,n.$K)("esri.layers.mixins.APIKeyMixin")],r),r}},32756(e,t,r){r.d(t,{Rr:()=>a,fY:()=>u,ne:()=>l});var i=r(5482),n=r(93637),o=r(91429),s=r(91880);function a(e,t,r){if(!e)return null;const i=e.find(e=>!!e.field);if(!i)return null;const n=new s.A;return n.read(i,r),[n]}const l={type:[s.A],json:{origins:{"web-scene":{write:!1,read:!1}},name:"layerDefinition.orderBy",read:{reader:a},write:{writer:function(e,t,r,i){const o=e.find(e=>!!e.field);o&&(0,n.sM)(r,[o.toJSON()],t)}}}},u=e=>{const t=e;let r=class extends t{constructor(){super(...arguments),this.orderBy=null}};return(0,i.Cg)([(0,o.MZ)(l)],r.prototype,"orderBy",void 0),r=(0,i.Cg)([(0,o.$K)("esri.layers.mixins.OrderedLayer")],r),r}},28032(e,t,r){r.d(t,{A:()=>l});var i=r(5482),n=r(69540),o=r(25482),s=r(91429),a=r(56400);let l=class extends((0,n.OU)(o.o)){constructor(e){super(e),this.creatorField=null,this.creationDateField=null,this.editorField=null,this.editDateField=null,this.realm=null,this.timeZone=null}};(0,i.Cg)([(0,s.MZ)()],l.prototype,"creatorField",void 0),(0,i.Cg)([(0,s.MZ)()],l.prototype,"creationDateField",void 0),(0,i.Cg)([(0,s.MZ)()],l.prototype,"editorField",void 0),(0,i.Cg)([(0,s.MZ)()],l.prototype,"editDateField",void 0),(0,i.Cg)([(0,s.MZ)()],l.prototype,"realm",void 0),(0,i.Cg)([(0,s.MZ)((0,a.P6)("dateFieldsTimeReference",!0))],l.prototype,"timeZone",void 0),l=(0,i.Cg)([(0,s.$K)("esri.layers.support.EditFieldsInfo")],l)},29005(e,t,r){r.d(t,{A:()=>u});var i=r(5482),n=r(69540),o=r(66552),s=r(25482),a=r(91429);const l=new o.J({esriFeatureEditToolAutoCompletePolygon:"auto-complete-polygon",esriFeatureEditToolCircle:"circle",esriFeatureEditToolEllipse:"ellipse",esriFeatureEditToolFreehand:"freehand",esriFeatureEditToolLine:"line",esriFeatureEditToolNone:"none",esriFeatureEditToolPoint:"point",esriFeatureEditToolPolygon:"polygon",esriFeatureEditToolRectangle:"rectangle",esriFeatureEditToolArrow:"arrow",esriFeatureEditToolTriangle:"triangle",esriFeatureEditToolLeftArrow:"left-arrow",esriFeatureEditToolRightArrow:"right-arrow",esriFeatureEditToolUpArrow:"up-arrow",esriFeatureEditToolDownArrow:"down-arrow"});let u=class extends((0,n.OU)(s.o)){constructor(e){super(e),this.name=null,this.description=null,this.drawingTool=null,this.prototype=null,this.thumbnail=null}};(0,i.Cg)([(0,a.MZ)({json:{write:!0}})],u.prototype,"name",void 0),(0,i.Cg)([(0,a.MZ)({json:{write:!0}})],u.prototype,"description",void 0),(0,i.Cg)([(0,a.MZ)({json:{read:l.read,write:l.write}})],u.prototype,"drawingTool",void 0),(0,i.Cg)([(0,a.MZ)({json:{write:!0}})],u.prototype,"prototype",void 0),(0,i.Cg)([(0,a.MZ)({json:{write:!0}})],u.prototype,"thumbnail",void 0),u=(0,i.Cg)([(0,a.$K)("esri.layers.support.FeatureTemplate")],u)},33143(e,t,r){r.d(t,{A:()=>d});var i=r(5482),n=r(69540),o=r(25482),s=r(91429),a=r(8631),l=r(29005),u=r(36005),c=r(43937);let d=class extends((0,n.OU)(o.o)){constructor(e){super(e),this.id=null,this.name=null,this.domains=null,this.templates=null}readDomains(e){const t={};for(const r of Object.keys(e))t[r]=(0,a.r)(e[r]);return t}writeDomains(e,t){const r={};for(const t of Object.keys(e))e[t]&&(r[t]=e[t]?.toJSON());t.domains=r}};(0,i.Cg)([(0,s.MZ)({json:{write:!0}})],d.prototype,"id",void 0),(0,i.Cg)([(0,s.MZ)({json:{write:!0}})],d.prototype,"name",void 0),(0,i.Cg)([(0,s.MZ)({json:{write:!0}})],d.prototype,"domains",void 0),(0,i.Cg)([(0,u.w)("domains")],d.prototype,"readDomains",null),(0,i.Cg)([(0,c.K)("domains")],d.prototype,"writeDomains",null),(0,i.Cg)([(0,s.MZ)({type:[l.A],json:{write:!0}})],d.prototype,"templates",void 0),d=(0,i.Cg)([(0,s.$K)("esri.layers.support.FeatureType")],d)},37352(e,t,r){r.d(t,{A:()=>l});var i,n=r(5482),o=r(7762),s=r(25482),a=r(91429);let l=i=class extends s.o{constructor(e){super(e),this.floorField=null,this.viewAllMode=!1,this.viewAllLevelIds=new o.A}clone(){return new i({floorField:this.floorField,viewAllMode:this.viewAllMode,viewAllLevelIds:this.viewAllLevelIds})}};(0,n.Cg)([(0,a.MZ)({type:String,json:{write:{isRequired:!0}}})],l.prototype,"floorField",void 0),(0,n.Cg)([(0,a.MZ)({json:{read:!1,write:!1}})],l.prototype,"viewAllMode",void 0),(0,n.Cg)([(0,a.MZ)({json:{read:!1,write:!1}})],l.prototype,"viewAllLevelIds",void 0),l=i=(0,n.Cg)([(0,a.$K)("esri.layers.support.LayerFloorInfo")],l)},91880(e,t,r){r.d(t,{A:()=>u});var i,n=r(5482),o=r(66552),s=r(25482),a=r(91429);const l=new o.J({asc:"ascending",desc:"descending"});let u=class extends s.o{static{i=this}constructor(e){super(e),this.field=null,this.valueExpression=null,this.order="ascending"}clone(){return new i({field:this.field,valueExpression:this.valueExpression,order:this.order})}};(0,n.Cg)([(0,a.MZ)({type:String,json:{write:!0}})],u.prototype,"field",void 0),(0,n.Cg)([(0,a.MZ)({type:String,json:{write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],u.prototype,"valueExpression",void 0),(0,n.Cg)([(0,a.MZ)({type:l.apiValues,json:{type:l.jsonValues,read:l.read,write:l.write}})],u.prototype,"order",void 0),u=i=(0,n.Cg)([(0,a.$K)("esri.layers.support.OrderByInfo")],u)},45067(e,t,r){r.d(t,{A:()=>c});var i=r(5482),n=r(69540),o=r(66552),s=r(25482),a=r(91429);const l=new o.J({esriRelCardinalityOneToOne:"one-to-one",esriRelCardinalityOneToMany:"one-to-many",esriRelCardinalityManyToMany:"many-to-many"}),u=new o.J({esriRelRoleOrigin:"origin",esriRelRoleDestination:"destination"});let c=class extends((0,n.OU)(s.o)){constructor(e){super(e),this.cardinality=null,this.catalogId=null,this.composite=null,this.id=null,this.keyField=null,this.keyFieldInRelationshipTable=null,this.name=null,this.relatedTableId=null,this.relationshipTableId=null,this.role=null}};(0,i.Cg)([(0,a.MZ)({json:{read:l.read,write:l.write}})],c.prototype,"cardinality",void 0),(0,i.Cg)([(0,a.MZ)({json:{name:"catalogID"}})],c.prototype,"catalogId",void 0),(0,i.Cg)([(0,a.MZ)({json:{read:!0,write:!0}})],c.prototype,"composite",void 0),(0,i.Cg)([(0,a.MZ)({json:{read:!0,write:!0}})],c.prototype,"id",void 0),(0,i.Cg)([(0,a.MZ)({json:{read:!0,write:!0}})],c.prototype,"keyField",void 0),(0,i.Cg)([(0,a.MZ)({json:{read:!0,write:!0}})],c.prototype,"keyFieldInRelationshipTable",void 0),(0,i.Cg)([(0,a.MZ)({json:{read:!0,write:!0}})],c.prototype,"name",void 0),(0,i.Cg)([(0,a.MZ)({json:{read:!0,write:!0}})],c.prototype,"relatedTableId",void 0),(0,i.Cg)([(0,a.MZ)({json:{read:!0,write:!0}})],c.prototype,"relationshipTableId",void 0),(0,i.Cg)([(0,a.MZ)({json:{read:u.read,write:u.write}})],c.prototype,"role",void 0),c=(0,i.Cg)([(0,a.$K)("esri.layers.support.Relationship")],c)},17311(e,t,r){r.d(t,{A:()=>f});var i=r(5482),n=r(69622),o=r(4576),s=r(60999),a=r(7762),l=r(16494),u=r(91429),c=r(30524),d=r(43668);const p=/<br\s*\/*>/gi;let f=class extends n.A{constructor(e){super(e),this._featureUtils=null,this.effectivePopupTemplate=null}get _arcadeTask(){return this.expressionsUsedInTitle.length>0?this._get("_arcadeTask")||(0,s.UT)(()=>(0,d.l)()):null}get featureUtilsPromise(){return this._get("featureUtilsPromise")??Promise.all([r.e(4560),r.e(9926)]).then(r.bind(r,29926)).then(e=>this._featureUtils=e)}get calculatedExpressions(){const e=new a.A;if(!this.expressionsUsedInTitle.length)return e;if(!this._arcadeTask?.value){for(const t of this.expressionsUsedInTitle??[])e.push({name:t.name,invalid:!0});return e}for(const t of this.expressionsUsedInTitle)try{const r=this._arcadeTask.value.arcade.parseScript(t.expression,["$layer","$map","$datastore"]);if(r.isAsync){e.push({name:t.name,invalid:!0});break}e.push({name:t.name,syntax:r,invalid:!1,func:this._arcadeTask.value.arcade.compileScript(r,{vars:{$feature:"any"}})})}catch{e.push({name:t.name,invalid:!0});break}return e}get expressionsUsedInTitle(){let e=this.effectivePopupTemplate?.title??"";return"string"!=typeof e?[]:(e=e.toLowerCase(),this.effectivePopupTemplate?.expressionInfos?.filter(t=>e.includes(`{expression/${t.name.toLowerCase()}}`))??[])}get fieldInfoMap(){return this._featureUtils?this._createFieldInfoMap(this._featureUtils.getAllFieldInfos(this.effectivePopupTemplate)):null}get hasBadExpressions(){return this.calculatedExpressions.some(e=>!0===e.invalid)}get requiredFields(){const e=new Set;if(this._arcadeTask?.value&&!this.hasBadExpressions)for(const t of this.calculatedExpressions?.toArray()??[])try{const r=this._arcadeTask.value.arcade.extractFieldLiterals(t.syntax);for(const t of r){const r=t.split("."),i=this.fieldsIndex.get(r.at(-1)??"");i&&e.add(i.name)}}catch{}const t=this._extractFieldNames(this.workingTitle);for(const r of t){const t=this.fieldsIndex.get(r);t&&e.add(t.name)}return null!=this.objectIdField&&e.add(this.objectIdField),e}get titleFromDisplayField(){let e="";return this.displayField&&(e=this.fieldsIndex.get(this.displayField)?.name??""),e||(e=this.fieldsIndex.get(this.objectIdField)?.name??""),e?`{${e}}`:""}get workingTitle(){const e=this.effectivePopupTemplate?this.effectivePopupTemplate.title:"";return""===e||null==e||this.hasBadExpressions||"string"!=typeof e?this.titleFromDisplayField:e}async getTitle(e,t,r){const i=t.getObjectId()??t.attributes[e.objectIdField];return(await this.getTitles(e,[t],r)).get(i)??""}async getTitles(e,t,r){const i=new Map,n=r?.timeZone??"system";try{const[{substituteFieldsInLinksAndAttributes:o}]=await Promise.all([this.featureUtilsPromise,this._arcadeTask?.promise]);r?.fetchMissingFields&&(t=await this._checkAndReQueryGraphics(e,t));const{fieldInfoMap:s,workingTitle:a}=this,u=a&&s;t.forEach(t=>{const c=t.getObjectId()??t.attributes[e.objectIdField];let d=u?o({attributes:t.attributes,expressionAttributes:null,fieldInfoMap:s,globalAttributes:this._createFormattedAttributes(e,t,n).global,layer:e,text:a}):"";r?.removeHTML&&(d=l.Nd.sanitize(d).replaceAll(p," ")),i.set(c,d)})}catch{}return i}async _checkAndReQueryGraphics(e,t){const r=t.map(t=>t.getObjectId()??t.attributes[e.objectIdField]).filter(o.Ru);if(r.length!==t.length)return t;if(t.some(e=>!(0,c.Kl)(e,this.requiredFields))){const i=e.createQuery();i.where="1=1",i.outFields=[...this.requiredFields],i.objectIds=r;const n=await e.queryFeatures(i);if(n?.features.length===t.length)return n.features}return t}_createFieldInfoMap(e){const t=new Map;if(!e)return t;for(const r of e){if(!r.fieldName)continue;const e=this.fieldsIndex.get(r.fieldName),i=e?.name??r.fieldName;r.fieldName=i,t.set(i.toLowerCase(),r)}return t}_createFormattedAttributes(e,t,r="system"){const i=this.effectivePopupTemplate?.fieldInfos??[],n={};if(!this._featureUtils)return{};if(!this.hasBadExpressions&&this.calculatedExpressions.length>0&&this._arcadeTask?.value){const r=this._arcadeTask.value.Feature.createFromGraphicLikeObject(t.geometry,t.attributes,e,null);for(const e of this.calculatedExpressions)try{n[`expression/${e.name}`]=e.func({vars:{$feature:r}})}catch{}}const o={...t.attributes,...n};return{global:this._featureUtils.formatAttributes({fieldInfos:i,attributes:o,graphic:t,timeZone:r,layer:e,fieldInfoMap:this.fieldInfoMap}),content:[]}}_extractFieldNames(e){return(0,c.nw)(e).filter(e=>!(e.startsWith("relationships/")||e.startsWith("expression/")))}};(0,i.Cg)([(0,u.MZ)({readOnly:!0})],f.prototype,"_arcadeTask",null),(0,i.Cg)([(0,u.MZ)()],f.prototype,"_featureUtils",void 0),(0,i.Cg)([(0,u.MZ)({readOnly:!0})],f.prototype,"featureUtilsPromise",null),(0,i.Cg)([(0,u.MZ)({readOnly:!0})],f.prototype,"calculatedExpressions",null),(0,i.Cg)([(0,u.MZ)()],f.prototype,"displayField",void 0),(0,i.Cg)([(0,u.MZ)()],f.prototype,"effectivePopupTemplate",void 0),(0,i.Cg)([(0,u.MZ)()],f.prototype,"expressionsUsedInTitle",null),(0,i.Cg)([(0,u.MZ)()],f.prototype,"fieldsIndex",void 0),(0,i.Cg)([(0,u.MZ)()],f.prototype,"fieldInfoMap",null),(0,i.Cg)([(0,u.MZ)()],f.prototype,"fields",void 0),(0,i.Cg)([(0,u.MZ)()],f.prototype,"objectIdField",void 0),(0,i.Cg)([(0,u.MZ)()],f.prototype,"requiredFields",null),f=(0,i.Cg)([(0,u.$K)("esri.layers.support.TitleCreator")],f)},41560(e,t,r){r.d(t,{Ch:()=>s,mW:()=>o});var i=r(34727),n=r(39516);function o(e,t){return{...t,filterMode:e.mode}}function s(e,t,r){const o=function(e){if("manual"===u(e))return null;const t=[Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY];for(const{minScale:r,maxScale:i}of e.filters)t[0]=Math.max(t[0],c(r)),t[1]=Math.min(t[1],d(i));return t}(e);if(o&&((0,i.gg)(t,o[0])||(0,i.ZH)(r,o[1])))return"";const s=Array.from(a(e,t,r)),l=function(e,t,r){if(0===e.length)return!0;const n=c(e.at(0)?.minScale),o=d(e.at(-1)?.maxScale);if((0,i.ZH)(n,t)||(0,i.gg)(o,r))return!0;for(let t=0;t<e.length-1;t++){const r=e[t],n=e[t+1];if((0,i.ZH)(c(n.minScale),d(r.maxScale)))return!0}return!1}(s,t,r)?"1=1":s.map(e=>e.where||"1=1").reduce((e,t)=>(0,n.IW)(e,t),"");return l&&"1=1"!==l?l:""}function*a(e,t,r){if("manual"===u(e)){const t=e.filters.find(t=>t.id===e.activeFilterId);t&&(yield t)}else{"object"==typeof t&&(t=t.scale);for(const i of e.filters)l(i.minScale,i.maxScale,t,r)&&(yield i)}}function l(e,t,r,n){return e=c(e),r=c(r),t=d(t),!(!(0,i.Sp)(r,e)&&(n??r)>e||(0,i.Hx)(t,r)||void 0!==n&&(0,i.Sp)(n,e))}function u(e){return"mode"in e?e.mode:e.filterMode}function c(e){return e||Number.POSITIVE_INFINITY}function d(e){return e||0}},32730(e,t,r){r.d(t,{BI:()=>f,D3:()=>d,XJ:()=>p,lc:()=>c,mX:()=>y,rU:()=>h,tH:()=>b});var i=r(799);const n="__begin__",o="__end__",s=new RegExp(n,"ig"),a=new RegExp(o,"ig"),l=new RegExp("^"+n,"i"),u=new RegExp(o+"$","i");function c(e){return e.replaceAll(new RegExp("\\[","g"),"{").replaceAll(new RegExp("\\]","g"),"}")}function d(e){return e.replaceAll(new RegExp("\\{","g"),"[").replaceAll(new RegExp("\\}","g"),"]")}function p(e){const t={expression:"",type:"none"};return e.labelExpressionInfo?e.labelExpressionInfo.value?(t.expression=e.labelExpressionInfo.value,t.type="conventional"):e.labelExpressionInfo.expression&&(t.expression=e.labelExpressionInfo.expression,t.type="arcade"):null!=e.labelExpression&&(t.expression=c(e.labelExpression),t.type="conventional"),t}function f(e){const t=p(e);if(!t)return null;switch(t.type){case"conventional":return y(t.expression);case"arcade":return t.expression}return null}function h(e){const t=p(e);if(!t)return null;switch(t.type){case"conventional":return function(e){const t=e?.match(m);return t?.[1].trim()||null}(t.expression);case"arcade":return b(t.expression)}return null}function y(e){let t;return e?(t=(0,i.HC)(e,e=>n+'$feature["'+e+'"]'+o),t=l.test(t)?t.replace(l,""):'"'+t,t=u.test(t)?t.replace(u,""):t+'"',t=t.replaceAll(s,'" + ').replaceAll(a,' + "')):t='""',t}const m=/^\s*\{([^}]+)\}\s*$/i,g=/^\s*(?:(?:\$feature\.(\w+))|(?:\$feature\[(["'])(.+)(\2)\]));?\s*$/i,w=/^\s*(?:(?:\$feature\.(\w+))|(?:\$feature\[(["'])(.+)(\2)\]));?\s*(?:DomainName\(\s*\$feature\s*,\s*(["'])(\1|\3)(\5)\s*\));?\s*$/i,v=/^\s*(?:DomainName\(\s*\$feature\s*,\s*(["'])(.+)(\1)\s*\));?\s*$/i;function b(e){if(!e)return null;let t=g.exec(e)||w.exec(e);return t?t[1]||t[3]:(t=v.exec(e),t?t[2]:null)}},77548(e,t,r){r.d(t,{Gh:()=>v,tk:()=>y,BR:()=>h,p2:()=>p,wI:()=>f,G$:()=>g,$x:()=>m,Ov:()=>l,UC:()=>o,W_:()=>u,OP:()=>w,TU:()=>a,XX:()=>s,jy:()=>c});var i=r(70333),n=r(11254);function o(e){return null!=e&&"object"==typeof e&&"type"in e&&"knowledge-graph-sublayer"===e.type}r(7762),r(84952),r(36563),r(36708),r(4146),new WeakMap,r(16215);const s={Point:"SceneLayer","3DObject":"SceneLayer",IntegratedMesh:"IntegratedMeshLayer",PointCloud:"PointCloudLayer",Building:"BuildingSceneLayer"};function a(e){const t=e?.type;return"building-scene"===t||"integrated-mesh"===t||"point-cloud"===t||"scene"===t}function l(e){return"feature"===e?.type&&!e.url&&"memory"===e.source?.type}function u(e){const t=e?.type;return("feature"===t||"subtype-group"===t||"oriented-imagery"===t)&&"feature-layer"===e?.source?.type}function c(e){return function(e){return null!=e&&"object"==typeof e&&"type"in e&&"feature"===e.type}(e)&&function(e){return"feature"===e?.type&&"feature-layer"===e.source?.type}(e)}function d(e){const t=e?.type;return"binning"===t||"cluster"===t}function p(e,t){if(!c(e))return;const r=t?.graphic,i=e.featureReduction;if(r){if(r.isAggregate){const e=r.origin;return e&&"featureReductionProvider"in e&&i?d(i)?i:null:void 0}return e}return t?.checkFeatureReduction&&i?d(i)?i:null:e}async function f(e,t){const r=i.id?.findServerInfo(e);if(null!=r?.currentVersion)return r.owningSystemUrl||null;const o=e.toLowerCase().indexOf("/rest/services");if(-1===o)return null;const s=`${e.slice(0,o)}/rest/info`,a=null!=t?t.signal:null,{data:l}=await(0,n.A)(s,{query:{f:"json"},responseType:"json",signal:a});return l?.owningSystemUrl||null}function h(e){return function(e){if(!("capabilities"in e))return!1;switch(e.type){case"catalog":case"catalog-footprint":case"csv":case"feature":case"geojson":case"imagery":case"knowledge-graph-sublayer":case"ogc-feature":case"oriented-imagery":case"scene":case"sublayer":case"subtype-group":case"subtype-sublayer":case"wfs":return!0;default:return!1}}(e)?"effectiveCapabilities"in e?e.effectiveCapabilities:e.capabilities:null}function y(e){return!!function(e){if(!("editingEnabled"in e))return!1;switch(e.type){case"csv":case"feature":case"geojson":case"oriented-imagery":case"scene":case"subtype-group":case"subtype-sublayer":case"knowledge-graph-sublayer":return!0;default:return!1}}(e)&&("effectiveEditingEnabled"in e?e.effectiveEditingEnabled:e.editingEnabled)}function m(e,t){return null}function g(e){return null}function w(e){return!e||"Feature Service"===e.type&&!e.sourceUrl}function v(e,t){if(!t||!w(e))return;const r=(e.url,null);r&&(e.url=r)}},73681(e,t,r){r.d(t,{n:()=>l});var i=r(49186),n=r(53966),o=r(46140),s=r(95466),a=r(55674);class l{static async from(e,t,r){const s=e.dictionary_version?o.A.parse(e.dictionary_version):null,c=new Set(e.itemsNames),d={};if(t)for(const e in t)d[e]=t[e];if(e.authoringInfo.configuration)for(const t of e.authoringInfo.configuration)d.hasOwnProperty(t.name)||(d[t.name]=t.value);const p=new Set(e.authoringInfo.symbol);for(const e of Object.keys(r))p.delete(e);p.size&&n.A.getLogger("esri.renderers.support.DictionaryScriptEvaluator").warnOnce("missing-fields: fieldMap entries for the following symbol fields are missing",{symbolFields:p});const f=await(0,a.xR)(e.expression,null,d);if(!f)throw new i.A("dictionary-renderer:expression-error","Unable to create dictionary renderer expression");const h=!s||!s.greaterEqual(4,0);h&&n.A.getLogger("esri.renderers.support.DictionaryScriptEvaluator").warnOnce("Dictionary script does not support native field types. Applying fallback",{version:s});const y=new u(r,h);return new l(h,c,f,y)}constructor(e,t,r,i){this._requiresFieldCoercionToString=e,this._itemNames=t,this._compiled=r,this._reader=i}get itemNames(){return this._itemNames}evaluate(e,t,r,i){try{return this._reader.bind(e,r,i),this._compiled.evaluate(this._reader,{$view:{scale:t}})}catch(e){n.A.getLogger("esri.renderers.support.DictionaryScriptEvaluator").warnOnce("arcade: dictionary script evaluation failed",{error:e})}return null}createDictionaryFieldsIndex(e){if(!this._requiresFieldCoercionToString)return new s.A(e);const t=e.map(e=>({...e,type:"esriFieldTypeString"}));return new s.A(t)}}class u extends a.Gj{constructor(e,t){super(),this._fieldMap=e,this._requiresFieldCoercionToString=t}_getField(e){const t=this._fieldMap[e]??e;return this._boundSchema.fieldsIndex.get(t)}field(e){if(!this._requiresFieldCoercionToString)return super.field(e,!1);const t=this._getField(e);return null==t||null==this._boundTarget.attributes[t.name]?"":""+this._boundTarget.attributes[t.name]}}},61760(e,t,r){r.d(t,{PU:()=>s,YW:()=>l,ex:()=>n,hv:()=>a,zp:()=>o}),r(34727);var i=r(90629);r(78955),r(91829);const n=2.4;function o(e){return(0,i.PN)(e*n)}function s(e){return(0,i.Lz)(e)/n}function a(e,t,r){const i=Math.sqrt(e**2+t**2)/r;return i>1?0:3/(Math.PI*r**2)*(1-i**2)**2}function l(e){return"function"==typeof e?e:e?t=>+t[e]:()=>1}},58501(e,t,r){r.d(t,{q:()=>n});var i=r(62815);function n(e,t,r){if(!r?.features||!r.hasZ)return;const n=(0,i.N)(r.geometryType,t,e.outSpatialReference);if(n)for(const e of r.features)n(e.geometry)}},41366(e,t,r){r.d(t,{K:()=>d,Q:()=>l});var i=r(5482),n=r(66552),o=r(53966),s=r(91429),a=r(93223);const l=(0,n.O)()({naturalLog:"natural-log",squareRoot:"square-root",percentOfTotal:"percent-of-total",log:"log",field:"field"}),u="percent-of-total",c="field",d=e=>{const t=e;let r=class extends t{constructor(){super(...arguments),this.normalizationField=null,this.normalizationMaxValue=null,this.normalizationMinValue=null,this.normalizationTotal=null}get normalizationType(){let e=this._get("normalizationType");const t=!!this.normalizationField,r=null!=this.normalizationTotal;return t||r?(e=t&&c||r&&u||null,t&&r&&o.A.getLogger(this).warn("warning: both normalizationField and normalizationTotal are set!")):e!==c&&e!==u||(e=null),e}set normalizationType(e){this._set("normalizationType",e)}};return(0,i.Cg)([(0,s.MZ)({type:String,json:{name:"parameters.normalizationField",write:!0}})],r.prototype,"normalizationField",void 0),(0,i.Cg)([(0,s.MZ)({type:Number,json:{name:"parameters.normalizationMaxValue",write:!0}})],r.prototype,"normalizationMaxValue",void 0),(0,i.Cg)([(0,s.MZ)({type:Number,json:{name:"parameters.normalizationMinValue",write:!0}})],r.prototype,"normalizationMinValue",void 0),(0,i.Cg)([(0,s.MZ)({type:Number,json:{name:"parameters.normalizationTotal",write:!0}})],r.prototype,"normalizationTotal",void 0),(0,i.Cg)([(0,a.e)(l,{name:"parameters.normalizationType"})],r.prototype,"normalizationType",null),r=(0,i.Cg)([(0,s.$K)("esri.rest.support.NormalizationBinParametersMixin")],r),r}},55674(e,t,r){r.d(t,{Ad:()=>f,Gj:()=>m,QY:()=>p,lL:()=>g,xR:()=>h});var i=r(66131),n=r(49186),o=(r(44208),r(44729)),s=r(15032),a=r(65864),l=r(95466),u=r(43668),c=r(98623);const d=["geometry","scale","timeProperties"];function p(e,t){if(null!=t)for(const r of d)t.hasArcadeDependency(r)&&e.add(r);return e}function f(e,t){return y.create(e,t,null,["$feature","$view"])}function h(e,t,r){return y.create(e,t,r,["$feature","$view","$config"])}class y{static async create(e,t,r,i){const{arcade:o,Dictionary:s}=await(0,u.l)();let a;try{a=o.parseScript(e)}catch(t){throw new n.A("arcade-bad-expression","Failed to parse arcade script",{script:e,error:t})}const l=o.scriptUsesGeometryEngine(a);l&&await o.enableGeometrySupport(),await o.loadDependentModules(new Set,a,null,!1,l);const c={vars:i.reduce((e,t)=>({...e,[t]:null}),{}),spatialReference:t,useAsync:!1},d=o.compileScript(a,c);let p=null;null!=r&&(p=new s(r),p.immutable=!0);const f=new s;return f.immutable=!1,f.setField("scale",0),new y(e,o,a,d,t,f,p,s)}constructor(e,t,r,i,n,o,s,a){this.script=e,this._arcade=t,this._syntaxTree=r,this._compiled=i,this._spatialReference=n,this._viewDict=o,this._configDict=s,this._dictionaryCtor=a,this._dependencies=new Map,this._featureReader=new m,this._dependencies.set("geometry",t.scriptTouchesGeometry(this._syntaxTree)),this._dependencies.set("scale",this._arcade.referencesMember(this._syntaxTree,"scale")),this._dependencies.set("timeProperties",this._arcade.scriptUsesViewProperties(this._syntaxTree,["timeProperties"]))}evaluate(e,t){const r=t.$view?.timeZone;if(t.$view){let e;if(this._viewDict.setField("scale",t.$view.scale),null!=t.$view.timeProperties){const{currentStart:n,currentEnd:o}=t.$view.timeProperties;e=new this._dictionaryCtor({currentStart:null!=n?null!=r?i.lY.epochToArcadeDate(n,r):i.lY.unknownEpochToArcadeDate(n):void 0,currentEnd:null!=o?null!=r?i.lY.epochToArcadeDate(o,r):i.lY.unknownEpochToArcadeDate(o):void 0,startIncluded:!0,endIncluded:!0})}this._viewDict.setField("timeProperties",e)}return this._compiled({vars:{$view:this._viewDict,$config:this._configDict,$feature:e},spatialReference:this._spatialReference,timeZone:r})}repurposeFeature(e,t){return this._featureReader.bind(e,t,this._spatialReference),this._featureReader}references(e){return this._dependencies.get(e)??!1}}class m{constructor(){this._boundTarget=null,this._boundSchema={fields:null,fieldsIndex:null,spatialReference:null,get geometryType(){return null},get objectIdField(){return null}},this.arcadeDeclaredClass="esri.arcade.Feature",this._contextTimeZone=null}bind(e,t,r){const i=t??new l.A(g(e.attributes));this._boundTarget=e,this._boundSchema.fields=i.fields,this._boundSchema.fieldsIndex=i,this._boundSchema.spatialReference=r}_getField(e){return this._boundSchema.fieldsIndex.get(e)}get contextTimeZone(){return this._contextTimeZone}set contextTimeZone(e){this._contextTimeZone=e}readArcadeFeature(){return this}hasField(e){return this._boundSchema.fieldsIndex.has(e)}geometry(){if("fromJSON"in this._boundTarget)return this._boundTarget.geometry;const e=(0,a.rS)(this._boundTarget.geometry);if(e){if(!this._boundSchema.spatialReference)throw new Error("InternalError: Expected spatial reference to be defined");e.spatialReference=this._boundSchema.spatialReference}return e}_hasGeometry(){return null!=this._boundTarget.geometry}isUnknownDateTimeField(e){return this._boundSchema.fieldsIndex.getTimeZone(e)===c.L5}field(e,t=!0){const r=this._getField(e);if(r){const t=this._boundTarget.attributes[r.name];if(null==t)return null;switch(r.type){case"date-only":case"esriFieldTypeDateOnly":return o.n.fromReader(t);case"time-only":case"esriFieldTypeTimeOnly":return s.k.fromReader(t);case"esriFieldTypeTimestampOffset":case"timestamp-offset":return i.lY.fromReaderAsTimeStampOffset(t);case"date":case"esriFieldTypeDate":return this.isUnknownDateTimeField(e)?i.lY.unknownEpochToArcadeDate(t):i.lY.epochToArcadeDate(t,this.contextTimeZone??c.qU);default:return t}}if(t)throw new Error(`Field ${e} does not exist`);return null}setField(e,t){throw new Error("Unable to update feature attribute values, feature is readonly")}keys(){return this._boundSchema.fieldsIndex.fields.map(e=>e.name)}isEmpty(){return this._boundSchema.fields.length<=0&&!this._hasGeometry()}castToText(e=!1){return JSON.stringify(this._boundTarget)}gdbVersion(){return null}fullSchema(){return this._boundSchema}castAsJson(e=null){return{attributes:this._boundTarget.attributes,geometry:!0===e?.keepGeometryType?this.geometry():this.geometry()?.toJSON()??null}}castAsJsonAsync(e=null,t=null){return Promise.resolve(this.castAsJson(t))}}function g(e){const t=[];for(const r in e)t.push({name:r,alias:r,type:"string"==typeof e[r]?"esriFieldTypeString":"esriFieldTypeDouble"});return t}},16215(e,t,r){r.d(t,{S:()=>n,Y:()=>i});const i=Symbol("BasemapInstance");function n(e){return null!=e&&"object"==typeof e&&i in e}},79677(e,t,r){r.d(t,{A:()=>p});var i,n=r(5482),o=r(25482),s=r(88930),a=r(91429),l=r(98623),u=r(10184),c=r(36005),d=r(43937);let p=class extends o.o{static{i=this}static get allTime(){return f}static get empty(){return h}static fromArray(e){return new i({start:null!=e[0]?new Date(e[0]):e[0],end:null!=e[1]?new Date(e[1]):e[1]})}constructor(e){super(e),this.end=null,this.start=null}readEnd(e,t){return null!=t.end?new Date(t.end):null}writeEnd(e,t){t.end=e?.getTime()??null}get isAllTime(){return this.equals(i.allTime)}get isEmpty(){return this.equals(i.empty)}readStart(e,t){return null!=t.start?new Date(t.start):null}writeStart(e,t){t.start=e?.getTime()??null}clone(){return new i({end:this.end,start:this.start})}equals(e){if(!e)return!1;const t=this.start?.getTime()??this.start,r=this.end?.getTime()??this.end,i=e.start?.getTime()??e.start,n=e.end?.getTime()??e.end;return t===i&&r===n}expandTo(e,t=l.qU){if(this.isEmpty||this.isAllTime||"unknown"===e)return this.clone();let r=this.start;r&&(r=(0,s.lL)(r,new u.A({value:1,unit:e}),t));let n=this.end;if(n){const r=(0,s.lL)(n,new u.A({value:1,unit:e}),t);n=n.getTime()===r.getTime()?r:(0,s.S1)(r,1,e,t)}return new i({start:r,end:n})}intersection(e){if(!e)return this.clone();if(this.isEmpty||e.isEmpty)return i.empty;if(this.isAllTime)return e.clone();if(e.isAllTime)return this.clone();const t=this.start?.getTime()??-1/0,r=this.end?.getTime()??1/0,n=e.start?.getTime()??-1/0,o=e.end?.getTime()??1/0;let s,a;return n>=t&&n<=r?s=n:t>=n&&t<=o&&(s=t),r>=n&&r<=o?a=r:o>=t&&o<=r&&(a=o),null==s||null==a||isNaN(s)||isNaN(a)?i.empty:new i({start:s===-1/0?null:new Date(s),end:a===1/0?null:new Date(a)})}offset(e,t,r=l.qU){if(this.isEmpty||this.isAllTime||"unknown"===t)return this.clone();const n=new i,{start:o,end:a}=this;return null!=o&&(n.start=(0,s.S1)(o,e,t,r)),null!=a&&(n.end=(0,s.S1)(a,e,t,r)),n}toArray(){return this.isEmpty?[void 0,void 0]:[this.start?.getTime()??null,this.end?.getTime()??null]}union(e){if(!e||e.isEmpty)return this.clone();if(this.isEmpty)return e.clone();if(this.isAllTime||e.isAllTime)return f.clone();const t=null!=this.start&&null!=e.start?new Date(Math.min(this.start.getTime(),e.start.getTime())):null,r=null!=this.end&&null!=e.end?new Date(Math.max(this.end.getTime(),e.end.getTime())):null;return new i({start:t,end:r})}};(0,n.Cg)([(0,a.MZ)({type:Date,json:{write:{allowNull:!0}}})],p.prototype,"end",void 0),(0,n.Cg)([(0,c.w)("end")],p.prototype,"readEnd",null),(0,n.Cg)([(0,d.K)("end")],p.prototype,"writeEnd",null),(0,n.Cg)([(0,a.MZ)({readOnly:!0,json:{read:!1}})],p.prototype,"isAllTime",null),(0,n.Cg)([(0,a.MZ)({readOnly:!0,json:{read:!1}})],p.prototype,"isEmpty",null),(0,n.Cg)([(0,a.MZ)({type:Date,json:{write:{allowNull:!0}}})],p.prototype,"start",void 0),(0,n.Cg)([(0,c.w)("start")],p.prototype,"readStart",null),(0,n.Cg)([(0,d.K)("start")],p.prototype,"writeStart",null),p=i=(0,n.Cg)([(0,a.$K)("esri.time.TimeExtent")],p);const f=new p,h=new p({start:void 0,end:void 0})},10184(e,t,r){r.d(t,{A:()=>c});var i=r(5482),n=r(69540),o=r(25482),s=r(88930),a=r(91429),l=r(73133),u=r(93223);let c=class extends((0,n.OU)(o.o)){constructor(e){super(e),this.unit="milliseconds",this.value=0}toMilliseconds(){return(0,s.t)(this.value,this.unit,"milliseconds")}};(0,i.Cg)([(0,u.e)(l.j,{nonNullable:!0})],c.prototype,"unit",void 0),(0,i.Cg)([(0,a.MZ)({type:Number,json:{write:!0},nonNullable:!0})],c.prototype,"value",void 0),c=(0,i.Cg)([(0,a.$K)("esri.time.TimeInterval")],c)}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[3116],{83116(e,t,r){r.d(t,{default:()=>E});var s=r(5482),i=r(92602),a=r(11254),n=r(7762),o=r(62885),l=r(25482),c=r(4718),d=r(92474),y=r(81583),u=r(53966),p=r(97768),g=r(17676),h=r(84952),m=r(91429),b=r(16930),f=r(20655),v=r(80812),L=r(43281),w=r(69622),S=r(73444),T=r(10838);let M=class extends w.A{constructor(e){super(e),this.apiKey=null,this.id=null,this.language=null,this.places=null,this.serviceUrl="https://basemapstyles-api.arcgis.com/arcgis/rest/services/styles/v2",this.worldview=null}get languageParameter(){const e=this.language;let t="local"===e||"global"===e?e:(0,T.xO)(e??(0,S.JK)())??"global";return t="no"===t?"nb":t,t}};(0,s.Cg)([(0,m.MZ)()],M.prototype,"apiKey",void 0),(0,s.Cg)([(0,m.MZ)()],M.prototype,"id",void 0),(0,s.Cg)([(0,m.MZ)()],M.prototype,"language",void 0),(0,s.Cg)([(0,m.MZ)()],M.prototype,"places",void 0),(0,s.Cg)([(0,m.MZ)()],M.prototype,"serviceUrl",void 0),(0,s.Cg)([(0,m.MZ)()],M.prototype,"worldview",void 0),M=(0,s.Cg)([(0,m.$K)("esri.support.BasemapStyle")],M);const A=M;var C,_,I=r(16215),U=r(751),k=r(43937);let j=class extends((0,l.T)(d.x_)){static{C=I.Y}static{_=this}constructor(e){super(e),this[C]=!0,this.id=null,this.portalItem=null,this.spatialReference=null,this.style=null,this.thumbnailUrl=null,this.title="Basemap",this.type="Basemap",this.id=Date.now().toString(16)+"-basemap-"+_.idCounter++,this.baseLayers=new n.A,this.referenceLayers=new n.A,this.groundLayers=new n.A;const t=e=>{const{parent:t}=e;t&&t!==this&&"remove"in t&&t.remove?.(e),e.parent=this,"elevation"!==e.type&&"integrated-mesh-3dtiles"!==e.type||u.A.getLogger(this).error(`Layer '${e.title}, id:${e.id}' of type '${e.type}' is not supported as a basemap layer and will therefore be ignored.`)},r=e=>{const{parent:t}=e;t&&t!==this&&"remove"in t&&t.remove?.(e),e.parent=this},s=e=>{e.parent=null},i=e=>{e.parent===this&&(e.parent=null)};this.addHandles([this.baseLayers.on("after-add",e=>t(e.item)),this.baseLayers.on("after-remove",e=>s(e.item)),this.referenceLayers.on("after-add",e=>t(e.item)),this.referenceLayers.on("after-remove",e=>s(e.item)),this.groundLayers.on("before-add",e=>{const t=e.item;return t.parent===this?(u.A.getLogger(this).error(`Layer '${t.title}, id:${t.id}' of type '${t.type}' already a ground layer, second add will be ignored.`),void e.preventDefault()):"integrated-mesh-3dtiles"!==t.type?(u.A.getLogger(this).error(`Layer '${t.title}, id:${t.id}' of type '${t.type}' is not supported as a ground layer and will therefore be ignored.`),void e.preventDefault()):void 0}),this.groundLayers.on("after-add",e=>r(e.item)),this.groundLayers.on("after-remove",e=>i(e.item))])}static{this.idCounter=0}initialize(){this.when().catch(e=>{u.A.getLogger(this).error("#load()",`Failed to load basemap (title: '${this.title}', id: '${this.id}')`,e)}),this.resourceInfo&&this.read(this.resourceInfo.data,this.resourceInfo.context)}destroy(){const e=this.baseLayers.toArray();for(const t of e)t.destroyed||t.destroy();const t=this.groundLayers.toArray();for(const e of t)e.destroyed||e.destroy();const r=this.referenceLayers.toArray();for(const e of r)e.destroyed||e.destroy();this.baseLayers.destroy(),this.groundLayers.destroy(),this.referenceLayers.destroy(),this.portalItem=(0,p.pR)(this.portalItem)}removeChildLayer(e){for(const t of[this.baseLayers,this.referenceLayers,this.groundLayers])t.remove(e)}normalizeCtorArgs(e){return e&&"resourceInfo"in e&&(this._set("resourceInfo",e.resourceInfo),delete(e={...e}).resourceInfo),e}get baseLayers(){return this._get("baseLayers")}set baseLayers(e){this._set("baseLayers",(0,o.V)(e,this._get("baseLayers")))}_writeBaseLayers(e,t,r){const s=[];e?(r={...r,layerContainerType:"basemap-base-layers"},this.baseLayers.forEach(e=>{const t=(0,U.CJ)(e,r.webmap?r.webmap.getLayerJSONFromResourceInfo(e):null,r);null!=t&&s.push(t)}),this.referenceLayers.forEach(e=>{const t=(0,U.CJ)(e,r.webmap?r.webmap.getLayerJSONFromResourceInfo(e):null,r);null!=t&&("scene"!==e.type&&(t.isReference=!0),s.push(t))}),t.baseMapLayers=s):t.baseMapLayers=s}set groundLayers(e){this._set("groundLayers",(0,o.V)(e,this._get("groundLayers")))}_writeGroundLayers(e,t,r){const s=[];e&&(r={...r,layerContainerType:"basemap-ground-layers"},this.groundLayers.forEach(e=>{const t=(0,U.CJ)(e,r.webmap?r.webmap.getLayerJSONFromResourceInfo(e):null,r);null!=t&&s.push(t)}),s.length>0&&(t.groundLayers=s))}get loaded(){return super.loaded}get referenceLayers(){return this._get("referenceLayers")}set referenceLayers(e){this._set("referenceLayers",(0,o.V)(e,this._get("referenceLayers")))}writeTitle(e,t){t.title=e||"Basemap"}load(e){return this.addResolvingPromise(this._loadFromSource(e)),Promise.resolve(this)}loadAll(){return(0,y.g)(this,e=>{e(this.baseLayers,this.groundLayers,this.referenceLayers)})}clone(){const e={id:this.id,title:this.title,portalItem:this.portalItem,baseLayers:this.baseLayers.map(e=>(0,c.Nb)(e)?e.clone():e),groundLayers:this.groundLayers.map(e=>(0,c.Nb)(e)?e.clone():e),referenceLayers:this.referenceLayers.map(e=>(0,c.Nb)(e)?e.clone():e)};return this.loaded&&(e.loadStatus="loaded"),new _({resourceInfo:this.resourceInfo}).set(e)}read(e,t){this.resourceInfo||this._set("resourceInfo",{data:e,context:t}),super.read(e,t)}write(e,t){return e=e||{},t?.origin||(t={origin:"web-map",...t}),super.write(e,t),!this.loaded&&this.resourceInfo?.data.baseMapLayers&&(e.baseMapLayers=this.resourceInfo.data.baseMapLayers.map(e=>{const t=(0,c.o8)(e);return t.url&&(0,h.BQ)(t.url)&&(t.url=`https:${t.url}`),t.templateUrl&&(0,h.BQ)(t.templateUrl)&&(t.templateUrl=`https:${t.templateUrl}`),t})),e}async _loadFromSource(e){const{resourceInfo:t,portalItem:r,style:s}=this;(0,g.Te)(e);const i=[];if(t){const r=t.context?t.context.url:null;if(i.push(this._loadLayersFromJSON(t.data,r,e)),t.data.id&&!t.data.title){const e=t.data.id;i.push((0,L.q)(e).then(e=>{e&&this.read({title:e},t.context)}))}}else r?i.push(this._loadFromItem(r,e)):s&&i.push(this._loadFromStylesService(s,e));await Promise.all(i)}async _loadLayersFromJSON(e,t,s){const i=this.resourceInfo?.context,a=this.portalItem?.portal||i?.portal||null,n=O[i?.origin||""]??"web-map",{populateOperationalLayers:o}=await Promise.all([r.e(5613),r.e(9933)]).then(r.bind(r,75356)),l=[];if((0,g.Te)(s),e.baseMapLayers&&Array.isArray(e.baseMapLayers)){const r={context:{...i,origin:n,url:t,portal:a,layerContainerType:"basemap-base-layers"},defaultLayerType:"DefaultTileLayer"},s=e=>"web-scene"===n&&"ArcGISSceneServiceLayer"===e.layerType||e.isReference,c=o(this.baseLayers,e.baseMapLayers.filter(e=>!s(e)),r);l.push(c);const d=o(this.referenceLayers,e.baseMapLayers.filter(s),r);l.push(d)}if(e.groundLayers&&Array.isArray(e.groundLayers)){const r={context:{...i,origin:n,url:t,portal:a,layerContainerType:"basemap-ground-layers"},defaultLayerType:"IntegratedMesh3DTilesLayer"},s=o(this.groundLayers,e.groundLayers,r);l.push(s)}await Promise.allSettled(l)}async _loadFromItem(e,t){const r=await e.load(t),s=await r.fetchData("json",t),i=(0,h.An)(e.itemUrl??"");return this._set("resourceInfo",{data:s.baseMap??{},context:{origin:D[e.type||""]??"web-map",portal:e.portal||f.A.getDefault(),url:i}}),this.read(this.resourceInfo.data,this.resourceInfo.context),this.read({spatialReference:s.spatialReference},this.resourceInfo.context),this.read({title:e.title,thumbnailUrl:e.thumbnailUrl},{origin:"portal-item",portal:e.portal||f.A.getDefault(),url:i}),this._loadLayersFromJSON(this.resourceInfo.data,i,t)}async _loadFromStylesService(e,t){const r=e.serviceUrl.endsWith("/webmaps")?e.serviceUrl.slice(0,-8):e.serviceUrl,s=`${r}/styles/${e.id}/self`,n=`${r}/webmaps/${e.id}`,o=e.apiKey??(i.A.sessions?.basemap?.enabled?void 0:i.A.apiKeys.basemapStyles),[l,c]=await Promise.all([(await(0,a.A)(s,{query:{token:o},signal:t?.signal})).data,(await(0,a.A)(n,{query:{language:e.languageParameter,places:e.places,worldview:e.worldview,token:o},signal:t?.signal})).data]);this.thumbnailUrl??=l.thumbnailUrl;const d=(0,h.An)(n);if(this._set("resourceInfo",{data:c.baseMap??{},context:{origin:"web-map",url:d}}),this.read(this.resourceInfo.data,this.resourceInfo.context),this.read({spatialReference:c.spatialReference},this.resourceInfo.context),await this._loadLayersFromJSON(this.resourceInfo.data,d,t),o)for(const e of[...this.baseLayers,...this.groundLayers,...this.referenceLayers])"apiKey"in e&&(e.apiKey=o)}static fromId(e){const t=L.H[e];return t?t.itemId?new _({portalItem:{id:t.itemId,portal:{url:"https://www.arcgis.com"}}}):_.fromJSON(t,t.is3d?{origin:"web-scene",portal:new f.A({url:"https://www.arcgis.com"})}:{origin:"web-map"}):null}};(0,s.Cg)([(0,m.MZ)({json:{read:!1,write:{ignoreOrigin:!0,target:"baseMapLayers",writer(e,t,r,s){this._writeBaseLayers(e,t,s)}},origins:{"web-scene":{write:{ignoreOrigin:!0,target:{baseMapLayers:{type:n.A}},writer(e,t,r,s){this._writeBaseLayers(e,t,s)}}}}}})],j.prototype,"baseLayers",null),(0,s.Cg)([(0,m.MZ)({json:{read:!1,write:{ignoreOrigin:!0,target:"groundLayers",writer(e,t,r,s){this._writeGroundLayers(e,t,s)}},origins:{"web-scene":{write:{ignoreOrigin:!0,target:{groundLayers:{type:n.A}},writer(e,t,r,s){this._writeGroundLayers(e,t,s)}}}}}})],j.prototype,"groundLayers",null),(0,s.Cg)([(0,m.MZ)({type:String,json:{origins:{"web-scene":{write:!0}}}})],j.prototype,"id",void 0),(0,s.Cg)([(0,m.MZ)({type:v.default})],j.prototype,"portalItem",void 0),(0,s.Cg)([(0,m.MZ)()],j.prototype,"referenceLayers",null),(0,s.Cg)([(0,m.MZ)({readOnly:!0})],j.prototype,"resourceInfo",void 0),(0,s.Cg)([(0,m.MZ)({type:b.A})],j.prototype,"spatialReference",void 0),(0,s.Cg)([(0,m.MZ)({type:A})],j.prototype,"style",void 0),(0,s.Cg)([(0,m.MZ)()],j.prototype,"thumbnailUrl",void 0),(0,s.Cg)([(0,m.MZ)({type:String,json:{origins:{"web-scene":{write:{isRequired:!0}}}}})],j.prototype,"title",void 0),(0,s.Cg)([(0,k.K)("title")],j.prototype,"writeTitle",null),j=_=(0,s.Cg)([(0,m.$K)("esri.Basemap")],j);const D={"Web Scene":"web-scene","Web Map":"web-map","Link Chart":"link-chart"},O={"web-scene":"web-scene","web-map":"web-map","link-chart":"link-chart"},E=j},69540(e,t,r){r.d(t,{OU:()=>d,Pw:()=>y});var s=r(5482),i=r(69622),a=(r(44208),r(4718)),n=(r(53966),r(97768)),o=r(88620),l=r(64108);const c=Symbol("ClonableMixin"),d=e=>{var t;const r=e;let i=class extends r{constructor(){super(...arguments),this[t]=!0}static{t=c}clone(e){const t=(0,o.oY)(this);(0,n.Lw)(t,"unable to clone instance of non-accessor class");const r=t.metadata,s=t.store,i={},l=new Map;for(const t in r){const n=r[t],o=s?.originOf(t),c=n.clonable;if(n.readOnly||!1===c||7!==o&&0!==o&&5!==o&&4!==o)continue;const d=this[t];let y=null;if("function"==typeof c)y=c(d,e);else if("reference"===c)y=d;else if(y=(0,a.TU)(d,e),null!=d&&null==y)continue;0===o?l.set(t,y):i[t]=y}const c=new(0,Object.getPrototypeOf(this).constructor)(i);if(l.size){const e=(0,o.oY)(c)?.store;if(e)for(const[t,r]of l)e.set(t,r,0)}return c}};return i=(0,s.Cg)([(0,l.$)("esri.core.Clonable")],i),i},y=d(i.A)},4902(e,t,r){r.d(t,{s:()=>n});var s=r(5482),i=r(64108);let a=0;const n=e=>{const t=e;let r=class extends t{constructor(...e){super(...e),Object.defineProperty(this,"uid",{writable:!1,configurable:!1,value:Date.now().toString(16)+"-object-"+a++})}};return r=(0,s.Cg)([(0,i.$)("esri.core.Identifiable")],r),r};n(class{})},60999(e,t,r){r.d(t,{DZ:()=>g,Ke:()=>p,Tj:()=>d,UT:()=>h,aD:()=>b,jJ:()=>c});var s=r(5482),i=r(69622),a=r(97768),n=r(17676),o=r(10107),l=r(64108);function c(e,t,r){return(0,n.Lx)(e.map((e,s)=>t.apply(r,[e,s])))}async function d(e,t,r){return(await(0,n.Lx)(e.map((e,s)=>t.apply(r,[e,s])))).map(e=>e.value)}function y(e){return{ok:!0,value:e}}function u(e){return{ok:!1,error:e}}async function p(e){if(null==e)return{ok:!1,error:new Error("no promise provided")};try{return y(await e)}catch(e){return u(e)}}async function g(e){try{return y(await e)}catch(e){return(0,n.QP)(e),u(e)}}function h(e,t){return new m(e,t)}let m=class extends i.A{get value(){return null!=(e=this._result)&&!0===e.ok?e.value:null;var e}get error(){return null!=(e=this._result)&&!1===e.ok?e.error:null;var e}get finished(){return null!=this._result}constructor(e,t){super({}),this._result=null,this._abortHandle=null,this.abort=()=>{this._abortController=(0,a.DC)(this._abortController)},this.remove=this.abort,this._abortController=new AbortController;const{signal:r}=this._abortController;this.promise=e(r),this.promise.then(e=>{this._result=y(e),this._cleanup()},e=>{this._result=u(e),this._cleanup()}),this._abortHandle=(0,n.u7)(t,this.abort)}normalizeCtorArgs(){return{}}destroy(){this.abort()}_cleanup(){this._abortHandle=(0,a.xt)(this._abortHandle),this._abortController=null}};(0,s.Cg)([(0,o.MZ)()],m.prototype,"value",null),(0,s.Cg)([(0,o.MZ)()],m.prototype,"error",null),(0,s.Cg)([(0,o.MZ)()],m.prototype,"finished",null),(0,s.Cg)([(0,o.MZ)()],m.prototype,"promise",void 0),(0,s.Cg)([(0,o.MZ)()],m.prototype,"_result",void 0),m=(0,s.Cg)([(0,l.$)("esri.core.asyncUtils.ReactiveTask")],m);class b{constructor(){this._sequence=Promise.resolve()}async acquire(){let e;this._sequence=new Promise(t=>{e=this._sequence.then(()=>t,()=>t)});const t=await e;return{[Symbol.dispose]:t}}async run(e){const t={stack:[],error:void 0,hasError:!1};try{return(0,s.mS)(t,await this.acquire(),!1),await e()}catch(e){t.error=e,t.hasError=!0}finally{(0,s.hk)(t)}}}},62885(e,t,r){r.d(t,{H:()=>a,V:()=>i});var s=r(7762);function i(e,t,r=s.A){return t||(t=new r),t===e||t.destroyed||(t.removeAll(),(i=e)&&(Array.isArray(i)||"items"in i&&Array.isArray(i.items))?t.addMany(e):e&&t.add(e)),t;var i}function a(e){return e}},81583(e,t,r){r.d(t,{L:()=>o,g:()=>n});var s=r(60999),i=r(7762),a=r(92474);async function n(e,t){return await e.load(),o(e,t)}async function o(e,t){const r=[],n=(...e)=>{for(const t of e)null!=t&&(Array.isArray(t)?n(...t):i.A.isCollection(t)?t.forEach(e=>n(e)):(0,a.Zm)(t)&&r.push(t))};t(n);let o=null;if(await(0,s.Tj)(r,async e=>{const t=await(0,s.Ke)(function(e){return"loadAll"in e&&"function"==typeof e.loadAll}(e)?e.loadAll():e.load());!1!==t.ok||o||(o=t)}),o)throw o.error;return e}},36708(e,t,r){r.d(t,{C_:()=>u,OH:()=>h,Vh:()=>m,on:()=>y,pc:()=>b,wB:()=>l,z7:()=>c});var s=r(37955),i=r(36563),a=r(97768),n=r(17676),o=r(14012);function l(e,t,r={}){return d(e,t,r,p)}function c(e,t,r={}){return d(e,t,r,g)}function d(e,t,r={},s){let i=null;const n=r.once?(e,r)=>{s(e)&&((0,a.xt)(i),t(e,r))}:(e,r)=>{s(e)&&t(e,r)};if(i=(0,o.Cn)(e,n,r.sync,r.equals),r.initial){const t=e();n(t,t)}return i}function y(e,t,r,n={}){let o=null,c=null,d=null;function y(){o&&c&&(c.remove(),n.onListenerRemove?.(o),o=null,c=null)}function u(e){n.once&&n.once&&(0,a.xt)(d),r(e)}const p=l(e,(e,r)=>{y(),(0,s.wb)(e)&&(o=e,c=(0,s.on)(e,t,u),n.onListenerAdd?.(e))},{sync:n.sync,initial:!0});return d=(0,i.hA)(()=>{p.remove(),y()}),d}function u(e,t){return function(e,t,r){if((0,n.G4)(r))return Promise.reject((0,n.NK)());const s=e();if(t?.(s))return Promise.resolve(s);let o=null;function l(){o=(0,a.xt)(o)}return new Promise((s,a)=>{o=(0,i.vE)([(0,n.u7)(r,()=>{l(),a((0,n.NK)())}),d(e,e=>{l(),s(e)},{sync:!1,once:!0},t??p)])})}(e,g,t)}function p(e){return!0}function g(e){return!!e}r(80559);const h={sync:!0},m={initial:!0},b={sync:!0,initial:!0}},4146(e,t,r){r.d(t,{A:()=>f});var s=r(5482),i=r(11254),a=r(49186),n=r(65529),o=r(4902),l=r(92474),c=r(53966),d=r(17676),y=r(84952),u=r(91429),p=r(5443),g=r(16930),h=r(92602),m=r(79677);let b=0,f=class extends((0,n.Zt)((0,o.s)(l.x_))){constructor(){super(...arguments),this.attributionDataUrl=null,this.fullExtent=new p.A(-180,-90,180,90,g.A.WGS84),this.id=Date.now().toString(16)+"-layer-"+b++,this.legendEnabled=!0,this.listMode="show",this.opacity=1,this.parent=null,this.persistenceEnabled=!1,this.popupEnabled=!0,this.attributionVisible=!0,this.spatialReference=g.A.WGS84,this.title=null,this.type=null,this.url=null,this.visibilityTimeExtent=null,this.visible=!0}static async fromArcGISServerUrl(e){const t="string"==typeof e?{url:e}:e;return(await Promise.all([r.e(812),r.e(7982)]).then(r.bind(r,27982))).fromUrl(t)}static fromPortalItem(e){return async function(e){const t="portalItem"in e?e:{portalItem:e},{fromItem:s}=await Promise.all([r.e(812),r.e(5613),r.e(5710)]).then(r.bind(r,45613));try{return await s(t)}catch(e){const r=t?.portalItem,s=r?.id||"unset",i=r?.portal?.url||h.A.portalUrl;throw c.A.getLogger("esri.layers.support.fromPortalItem").error("#fromPortalItem()","Failed to create layer from portal item (portal: '"+i+"', id: '"+s+"')",e),e}}(e)}initialize(){this.when().catch(e=>{(0,d.zf)(e)||c.A.getLogger(this).error("#load()",`Failed to load layer (title: '${this.title??"no title"}', id: '${this.id??"no id"}')`,{error:e})})}destroy(){const{parent:e}=this;e&&(this.parent=null,e.removeChildLayer?.(this))}get effectiveVisible(){return this.visible&&(this.parent?.effectiveVisible??!0)}get hasAttributionData(){return null!=this.attributionDataUrl}get loaded(){return super.loaded}removeFromParent(){const{parent:e}=this;e&&(e.removeChildLayer?.(this),this.parent=null)}get parsedUrl(){return(0,y.An)(this.url)}createLayerView(e,t){return Promise.reject(new a.A("layer:create-layer-view","Layer does not support creating a layer view"))}async fetchAttributionData(){const e=this.attributionDataUrl;if(this.hasAttributionData&&e)return(await(0,i.A)(e,{query:{f:"json"},responseType:"json"})).data;throw new a.A("layer:no-attribution-data","Layer does not have attribution data")}};(0,s.Cg)([(0,u.MZ)({type:String})],f.prototype,"attributionDataUrl",void 0),(0,s.Cg)([(0,u.MZ)({readOnly:!0})],f.prototype,"effectiveVisible",null),(0,s.Cg)([(0,u.MZ)({type:p.A})],f.prototype,"fullExtent",void 0),(0,s.Cg)([(0,u.MZ)({readOnly:!0})],f.prototype,"hasAttributionData",null),(0,s.Cg)([(0,u.MZ)({type:String,clonable:!1})],f.prototype,"id",void 0),(0,s.Cg)([(0,u.MZ)({type:Boolean,nonNullable:!0})],f.prototype,"legendEnabled",void 0),(0,s.Cg)([(0,u.MZ)({type:["show","hide","hide-children"]})],f.prototype,"listMode",void 0),(0,s.Cg)([(0,u.MZ)({type:Number,range:{min:0,max:1},nonNullable:!0})],f.prototype,"opacity",void 0),(0,s.Cg)([(0,u.MZ)({clonable:!1})],f.prototype,"parent",void 0),(0,s.Cg)([(0,u.MZ)({readOnly:!0})],f.prototype,"parsedUrl",null),(0,s.Cg)([(0,u.MZ)({type:Boolean,readOnly:!0})],f.prototype,"persistenceEnabled",void 0),(0,s.Cg)([(0,u.MZ)({type:Boolean})],f.prototype,"popupEnabled",void 0),(0,s.Cg)([(0,u.MZ)({type:Boolean})],f.prototype,"attributionVisible",void 0),(0,s.Cg)([(0,u.MZ)({type:g.A})],f.prototype,"spatialReference",void 0),(0,s.Cg)([(0,u.MZ)({type:String})],f.prototype,"title",void 0),(0,s.Cg)([(0,u.MZ)({readOnly:!0,json:{read:!1}})],f.prototype,"type",void 0),(0,s.Cg)([(0,u.MZ)()],f.prototype,"url",void 0),(0,s.Cg)([(0,u.MZ)({type:m.A})],f.prototype,"visibilityTimeExtent",void 0),(0,s.Cg)([(0,u.MZ)({type:Boolean,nonNullable:!0})],f.prototype,"visible",void 0),f=(0,s.Cg)([(0,u.$K)("esri.layers.Layer")],f)},77548(e,t,r){r.d(t,{Gh:()=>v,tk:()=>h,BR:()=>g,p2:()=>u,wI:()=>p,G$:()=>b,$x:()=>m,Ov:()=>l,UC:()=>a,W_:()=>c,OP:()=>f,TU:()=>o,XX:()=>n,jy:()=>d});var s=r(70333),i=r(11254);function a(e){return null!=e&&"object"==typeof e&&"type"in e&&"knowledge-graph-sublayer"===e.type}r(7762),r(84952),r(36563),r(36708),r(4146),new WeakMap,r(16215);const n={Point:"SceneLayer","3DObject":"SceneLayer",IntegratedMesh:"IntegratedMeshLayer",PointCloud:"PointCloudLayer",Building:"BuildingSceneLayer"};function o(e){const t=e?.type;return"building-scene"===t||"integrated-mesh"===t||"point-cloud"===t||"scene"===t}function l(e){return"feature"===e?.type&&!e.url&&"memory"===e.source?.type}function c(e){const t=e?.type;return("feature"===t||"subtype-group"===t||"oriented-imagery"===t)&&"feature-layer"===e?.source?.type}function d(e){return function(e){return null!=e&&"object"==typeof e&&"type"in e&&"feature"===e.type}(e)&&function(e){return"feature"===e?.type&&"feature-layer"===e.source?.type}(e)}function y(e){const t=e?.type;return"binning"===t||"cluster"===t}function u(e,t){if(!d(e))return;const r=t?.graphic,s=e.featureReduction;if(r){if(r.isAggregate){const e=r.origin;return e&&"featureReductionProvider"in e&&s?y(s)?s:null:void 0}return e}return t?.checkFeatureReduction&&s?y(s)?s:null:e}async function p(e,t){const r=s.id?.findServerInfo(e);if(null!=r?.currentVersion)return r.owningSystemUrl||null;const a=e.toLowerCase().indexOf("/rest/services");if(-1===a)return null;const n=`${e.slice(0,a)}/rest/info`,o=null!=t?t.signal:null,{data:l}=await(0,i.A)(n,{query:{f:"json"},responseType:"json",signal:o});return l?.owningSystemUrl||null}function g(e){return function(e){if(!("capabilities"in e))return!1;switch(e.type){case"catalog":case"catalog-footprint":case"csv":case"feature":case"geojson":case"imagery":case"knowledge-graph-sublayer":case"ogc-feature":case"oriented-imagery":case"scene":case"sublayer":case"subtype-group":case"subtype-sublayer":case"wfs":return!0;default:return!1}}(e)?"effectiveCapabilities"in e?e.effectiveCapabilities:e.capabilities:null}function h(e){return!!function(e){if(!("editingEnabled"in e))return!1;switch(e.type){case"csv":case"feature":case"geojson":case"oriented-imagery":case"scene":case"subtype-group":case"subtype-sublayer":case"knowledge-graph-sublayer":return!0;default:return!1}}(e)&&("effectiveEditingEnabled"in e?e.effectiveEditingEnabled:e.editingEnabled)}function m(e,t){return null}function b(e){return null}function f(e){return!e||"Feature Service"===e.type&&!e.sourceUrl}function v(e,t){if(!t||!f(e))return;const r=(e.url,null);r&&(e.url=r)}},73133(e,t,r){r.d(t,{j:()=>s});const s=(0,r(66552).O)()({esriTimeUnitsMilliseconds:"milliseconds",esriTimeUnitsSeconds:"seconds",esriTimeUnitsMinutes:"minutes",esriTimeUnitsHours:"hours",esriTimeUnitsDays:"days",esriTimeUnitsWeeks:"weeks",esriTimeUnitsMonths:"months",esriTimeUnitsYears:"years",esriTimeUnitsDecades:"decades",esriTimeUnitsCenturies:"centuries",esriTimeUnitsUnknown:"unknown"})},43281(e,t,r){r.d(t,{H:()=>n,q:()=>a});var s=r(2741),i=r(10838);async function a(e){if(!e)return;const t=e.includes("-vector")?e.slice(0,e.indexOf("-vector")):e.includes("-3d")?e.slice(0,e.indexOf("-3d")):e,r=await(0,i.ud)("esri/t9n/basemaps");return r[e]||r[t]}const n={satellite:{id:"satellite",classic:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/satellite.jpg")},baseMapLayers:[{id:"satellite-base-layer",url:"//services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Imagery",showLegend:!1,visibility:!0,opacity:1}]},hybrid:{id:"hybrid",classic:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/hybrid.jpg")},baseMapLayers:[{id:"hybrid-base-layer",url:"//services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Imagery",showLegend:!1,visibility:!0,opacity:1},{id:"hybrid-reference-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/30d6b8271e1849cd9c3042060001f425/resources/styles/root.json",layerType:"VectorTileLayer",title:"Hybrid Reference Layer",isReference:!0,showLegend:!1,visibility:!0,opacity:1}]},terrain:{id:"terrain",classic:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/terrain.jpg")},baseMapLayers:[{id:"terrain-hillshade",url:"https://services.arcgisonline.com/ArcGIS/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Hillshade",showLegend:!1},{id:"terrain-base",styleUrl:"https://www.arcgis.com/sharing/rest/content/items/33064a20de0c48d2bb61efa8faca93a8/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Terrain Base"},{id:"terrain-reference",styleUrl:"https://www.arcgis.com/sharing/rest/content/items/14fbc125ccc9488888b014db09f35f67/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Reference Reference",isReference:!0}]},oceans:{id:"oceans",classic:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/oceans.jpg")},baseMapLayers:[{id:"oceans-base-layer",url:"//services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Ocean Base",showLegend:!1,visibility:!0,opacity:1},{id:"oceans-reference-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/94329802cbfa44a18f423e6f1a0b875c/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Ocean Reference",isReference:!0,showLegend:!1,visibility:!0,opacity:1}]},osm:{id:"osm",classic:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/osm.jpg")},baseMapLayers:[{id:"osm-base-layer",layerType:"OpenStreetMap",title:"Open Street Map",showLegend:!1,visibility:!0,opacity:1}]},"dark-gray-vector":{id:"dark-gray-vector",classic:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/dark-gray-vector.jpg")},baseMapLayers:[{id:"dark-gray-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/5e9b3685f4c24d8781073dd928ebda50/resources/styles/root.json",layerType:"VectorTileLayer",title:"Dark Gray Base",visibility:!0,opacity:1},{id:"dark-gray-reference-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/747cb7a5329c478cbe6981076cc879c5/resources/styles/root.json",layerType:"VectorTileLayer",title:"Dark Gray Reference",isReference:!0,visibility:!0,opacity:1}]},get"dark-gray"(){return{...this["dark-gray-vector"],id:"dark-gray"}},"gray-vector":{id:"gray-vector",classic:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/gray-vector.jpg")},baseMapLayers:[{id:"gray-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/291da5eab3a0412593b66d384379f89f/resources/styles/root.json",layerType:"VectorTileLayer",title:"Light Gray Base",visibility:!0,opacity:1},{id:"gray-reference-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/1768e8369a214dfab4e2167d5c5f2454/resources/styles/root.json",layerType:"VectorTileLayer",title:"Light Gray Reference",isReference:!0,visibility:!0,opacity:1}]},get gray(){return{...this["gray-vector"],id:"gray"}},"streets-vector":{id:"streets-vector",classic:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/streets-vector.jpg")},baseMapLayers:[{id:"streets-vector-base-layer",styleUrl:"//cdn.arcgis.com/sharing/rest/content/items/de26a3cf4cc9451298ea173c4b324736/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Streets",visibility:!0,opacity:1}]},get streets(){return{...this["streets-vector"],id:"streets"}},"topo-vector":{id:"topo-vector",classic:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/topo-vector.jpg")},baseMapLayers:[{id:"world-hillshade-layer",url:"//services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Hillshade",showLegend:!1,visibility:!0,opacity:1},{id:"topo-vector-base-layer",styleUrl:"//cdn.arcgis.com/sharing/rest/content/items/7dc6cea0b1764a1f9af2e679f642f0f5/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Topo",visibility:!0,opacity:1}]},get topo(){return{...this["topo-vector"],id:"topo"}},"streets-night-vector":{id:"streets-night-vector",classic:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/streets-night.jpg")},baseMapLayers:[{id:"streets-night-vector-base-layer",styleUrl:"//cdn.arcgis.com/sharing/rest/content/items/86f556a2d1fd468181855a35e344567f/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Streets Night",visibility:!0,opacity:1}]},"streets-relief-vector":{id:"streets-relief-vector",classic:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/streets-relief.jpg")},baseMapLayers:[{id:"world-hillshade-layer",url:"//services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer",layerType:"ArcGISTiledMapServiceLayer",title:"World Hillshade",showLegend:!1,visibility:!0,opacity:1},{id:"streets-relief-vector-base-layer",styleUrl:"//www.arcgis.com/sharing/rest/content/items/b266e6d17fc345b498345613930fbd76/resources/styles/root.json",title:"World Streets Relief",layerType:"VectorTileLayer",visibility:!0,opacity:1}]},"streets-navigation-vector":{id:"streets-navigation-vector",classic:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/streets-navigation.jpg")},baseMapLayers:[{id:"streets-navigation-vector-base-layer",styleUrl:"//cdn.arcgis.com/sharing/rest/content/items/63c47b7177f946b49902c24129b87252/resources/styles/root.json",layerType:"VectorTileLayer",title:"World Streets Navigation",visibility:!0,opacity:1}]},"topo-3d":{id:"topo-3d",is3d:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/topo-3d.png")},baseMapLayers:[{id:"topo-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/d309c87e9f8c46a0af638d0533193e9b/resources/styles/root.json",layerType:"VectorTileLayer",title:"Topographic",visibility:!0,opacity:1},{id:"topo-3d-trees",title:"Trees",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_Trees_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"topo-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"topo-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"navigation-3d":{id:"navigation-3d",is3d:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/navigation-3d.jpg")},baseMapLayers:[{id:"navigation-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/dbcfc899c38945d5b42416329e31df2a/resources/styles/root.json",layerType:"VectorTileLayer",title:"Navigation",visibility:!0,opacity:1},{id:"navigation-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"navigation-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"streets-3d":{id:"streets-3d",is3d:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/streets-3d.png")},baseMapLayers:[{id:"streets-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/204b38a0b9b24b0fac373167db16c5cd/resources/styles/root.json",layerType:"VectorTileLayer",title:"Streets",visibility:!0,opacity:1},{id:"streets-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"streets-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"osm-3d":{id:"osm-3d",is3d:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/osm-3d.png")},baseMapLayers:[{id:"osm-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/4694cc30a67a434f80d09e557e74413d/resources/styles/root.json",layerType:"VectorTileLayer",title:"OpenStreetMap Style",visibility:!0,opacity:1},{id:"osm-3d-trees",title:"Trees",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_Trees_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"osm-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"osm-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"gray-3d":{id:"gray-3d",is3d:!0,get thumbnailUrl(){return(0,s.s)("esri/images/basemap/gray-3d.png")},baseMapLayers:[{id:"gray-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/75610658508d4d6e99298abaac8aff62/resources/styles/root.json",layerType:"VectorTileLayer",title:"Light Gray Canvas",visibility:!0,opacity:1},{id:"gray-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_DarkLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"gray-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"navigation-dark-3d":{id:"navigation-dark-3d",itemId:"84f9f68a3b6e4f68b09ddf9cdef8cb9f",is3d:!0,baseMapLayers:[{id:"navigation-dark-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/6a8f24366a8b42abb2535d8f14777768/resources/styles/root.json",layerType:"VectorTileLayer",title:"Navigation (Dark)"},{id:"navigation-dark-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_LightLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"navigation-dark-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"streets-dark-3d":{id:"streets-dark-3d",itemId:"0281b25f75b24ca9b8835c6285cef9c2",is3d:!0,baseMapLayers:[{id:"streets-dark-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/9a8a322ab26f412fa4c299039f441ad7/resources/styles/root.json",layerType:"VectorTileLayer",title:"Streets (Dark)"},{id:"streets-dark-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_LightLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"streets-dark-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]},"dark-gray-3d":{id:"dark-gray-3d",itemId:"da21f8d16bcd4bd392a06212e121de32",is3d:!0,baseMapLayers:[{id:"dark-gray-3d-base-layer",styleUrl:"https://cdn.arcgis.com/sharing/rest/content/items/e6b230fe483b43f390a7e767731d52d6/resources/styles/root.json",layerType:"VectorTileLayer",title:"Dark Gray Canvas"},{id:"dark-gray-3d-places-and-labels",title:"Places and Labels",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Open3D_LightLabels_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"},{id:"dark-gray-3d-buildings",title:"Buildings",url:"https://basemaps3d.arcgis.com/arcgis/rest/services/Esri3D_Buildings_v1/SceneServer",layerType:"ArcGISSceneServiceLayer"}]}}},16215(e,t,r){r.d(t,{S:()=>i,Y:()=>s});const s=Symbol("BasemapInstance");function i(e){return null!=e&&"object"==typeof e&&s in e}},79677(e,t,r){r.d(t,{A:()=>u});var s,i=r(5482),a=r(25482),n=r(88930),o=r(91429),l=r(98623),c=r(10184),d=r(36005),y=r(43937);let u=class extends a.o{static{s=this}static get allTime(){return p}static get empty(){return g}static fromArray(e){return new s({start:null!=e[0]?new Date(e[0]):e[0],end:null!=e[1]?new Date(e[1]):e[1]})}constructor(e){super(e),this.end=null,this.start=null}readEnd(e,t){return null!=t.end?new Date(t.end):null}writeEnd(e,t){t.end=e?.getTime()??null}get isAllTime(){return this.equals(s.allTime)}get isEmpty(){return this.equals(s.empty)}readStart(e,t){return null!=t.start?new Date(t.start):null}writeStart(e,t){t.start=e?.getTime()??null}clone(){return new s({end:this.end,start:this.start})}equals(e){if(!e)return!1;const t=this.start?.getTime()??this.start,r=this.end?.getTime()??this.end,s=e.start?.getTime()??e.start,i=e.end?.getTime()??e.end;return t===s&&r===i}expandTo(e,t=l.qU){if(this.isEmpty||this.isAllTime||"unknown"===e)return this.clone();let r=this.start;r&&(r=(0,n.lL)(r,new c.A({value:1,unit:e}),t));let i=this.end;if(i){const r=(0,n.lL)(i,new c.A({value:1,unit:e}),t);i=i.getTime()===r.getTime()?r:(0,n.S1)(r,1,e,t)}return new s({start:r,end:i})}intersection(e){if(!e)return this.clone();if(this.isEmpty||e.isEmpty)return s.empty;if(this.isAllTime)return e.clone();if(e.isAllTime)return this.clone();const t=this.start?.getTime()??-1/0,r=this.end?.getTime()??1/0,i=e.start?.getTime()??-1/0,a=e.end?.getTime()??1/0;let n,o;return i>=t&&i<=r?n=i:t>=i&&t<=a&&(n=t),r>=i&&r<=a?o=r:a>=t&&a<=r&&(o=a),null==n||null==o||isNaN(n)||isNaN(o)?s.empty:new s({start:n===-1/0?null:new Date(n),end:o===1/0?null:new Date(o)})}offset(e,t,r=l.qU){if(this.isEmpty||this.isAllTime||"unknown"===t)return this.clone();const i=new s,{start:a,end:o}=this;return null!=a&&(i.start=(0,n.S1)(a,e,t,r)),null!=o&&(i.end=(0,n.S1)(o,e,t,r)),i}toArray(){return this.isEmpty?[void 0,void 0]:[this.start?.getTime()??null,this.end?.getTime()??null]}union(e){if(!e||e.isEmpty)return this.clone();if(this.isEmpty)return e.clone();if(this.isAllTime||e.isAllTime)return p.clone();const t=null!=this.start&&null!=e.start?new Date(Math.min(this.start.getTime(),e.start.getTime())):null,r=null!=this.end&&null!=e.end?new Date(Math.max(this.end.getTime(),e.end.getTime())):null;return new s({start:t,end:r})}};(0,i.Cg)([(0,o.MZ)({type:Date,json:{write:{allowNull:!0}}})],u.prototype,"end",void 0),(0,i.Cg)([(0,d.w)("end")],u.prototype,"readEnd",null),(0,i.Cg)([(0,y.K)("end")],u.prototype,"writeEnd",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0,json:{read:!1}})],u.prototype,"isAllTime",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0,json:{read:!1}})],u.prototype,"isEmpty",null),(0,i.Cg)([(0,o.MZ)({type:Date,json:{write:{allowNull:!0}}})],u.prototype,"start",void 0),(0,i.Cg)([(0,d.w)("start")],u.prototype,"readStart",null),(0,i.Cg)([(0,y.K)("start")],u.prototype,"writeStart",null),u=s=(0,i.Cg)([(0,o.$K)("esri.time.TimeExtent")],u);const p=new u,g=new u({start:void 0,end:void 0})},10184(e,t,r){r.d(t,{A:()=>d});var s=r(5482),i=r(69540),a=r(25482),n=r(88930),o=r(91429),l=r(73133),c=r(93223);let d=class extends((0,i.OU)(a.o)){constructor(e){super(e),this.unit="milliseconds",this.value=0}toMilliseconds(){return(0,n.t)(this.value,this.unit,"milliseconds")}};(0,s.Cg)([(0,c.e)(l.j,{nonNullable:!0})],d.prototype,"unit",void 0),(0,s.Cg)([(0,o.MZ)({type:Number,json:{write:!0},nonNullable:!0})],d.prototype,"value",void 0),d=(0,s.Cg)([(0,o.$K)("esri.time.TimeInterval")],d)},751(e,t,r){r.d(t,{CJ:()=>g});var s=r(4718),i=r(93637),a=r(67124),n=r(77548),o=r(59923);const l=new Set(["bing-maps","imagery","imagery-tile","map-image","open-street-map","tile","unknown","unsupported","vector-tile","web-tile","wcs","wms","wmts"]),c=new Set(["integrated-mesh-3dtiles"]),d=new Set(["catalog","csv","feature","geo-rss","geojson","group","imagery","imagery-tile","kml","knowledge-graph","map-image","map-notes","media","ogc-feature","oriented-imagery","parquet","route","stream","subtype-group","tile","unknown","unsupported","vector-tile","video","web-tile","wcs","wfs","wms","wmts"]),y=new Set([...d,"link-chart"]);function u(e,t){if(t.restrictedWebMapWriting){const r=function(e){switch(e.layerContainerType){case"basemap-base-layers":return l;case"basemap-ground-layers":return c;case"operational-layers":return"link-chart"===e.origin?y:d;default:return null}}(t);return null==r||r.has(e.type)&&!(0,n.Ov)(e)}return!0}function p(e,t){"maxScale"in e&&(t.maxScale=(0,a.B)(e.maxScale)??void 0),"minScale"in e&&(t.minScale=(0,a.B)(e.minScale)??void 0)}function g(e,t,r){if(!e.persistenceEnabled)return null;if(!("write"in e)||!e.write)return(0,o.U4)(r,e),null;if((0,n.Ov)(e)&&!e.isTable)t=e.resourceInfo;else if(u(e,r)){const t={};return e.write(t,r)?t:null}return null!=t&&function(e,t){if(function(e,t){if(t)if((0,n.Ov)(e)){const r=(0,i.wc)("featureCollection.layers",t),s=r?.[0]?.layerDefinition;s&&p(e,s)}else"group"!==e.type&&p(e,t)}(e,t),t&&(t.id=e.id,"blendMode"in e&&(t.blendMode=e.blendMode,"normal"===t.blendMode&&delete t.blendMode),t.opacity=(0,a.B)(e.opacity)??void 0,t.title=e.title||"Layer",t.visibility=e.visible,"legendEnabled"in e&&"wmts"!==e.type))if((0,n.Ov)(e)){const r=t.featureCollection;r&&(r.showLegend=e.legendEnabled)}else t.showLegend=e.legendEnabled}(e,t=(0,s.o8)(t)),t}}}]);