@arcgis/core 4.28.0-next.20230921 → 4.28.0-next.20230922

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 (313) hide show
  1. package/Graphic.js +1 -1
  2. package/arcade/ArcadeDate.js +1 -1
  3. package/arcade/Feature.js +1 -1
  4. package/arcade/featureSetUtils.js +1 -1
  5. package/arcade/featureset/actions/Adapted.js +1 -1
  6. package/arcade/featureset/actions/GroupBy.js +1 -1
  7. package/arcade/featureset/support/FeatureSet.js +1 -1
  8. package/arcade/featureset/support/FeatureSetIterator.js +1 -1
  9. package/arcade/featureset/support/StatsField.js +1 -1
  10. package/arcade/featureset/support/sqlUtils.js +1 -1
  11. package/arcade/functions/date.js +1 -1
  12. package/arcade/functions/featuresetbase.js +1 -1
  13. package/arcade/functions/featuresetstats.js +1 -1
  14. package/arcade.js +1 -1
  15. package/assets/esri/core/workers/RemoteClient.js +1 -1
  16. package/assets/esri/core/workers/chunks/{2cb36f9686693234991a.js → 07a2dab2f645dcd7d8d6.js} +1 -1
  17. package/assets/esri/core/workers/chunks/07f6175b52366b2c28bd.js +1 -0
  18. package/assets/esri/core/workers/chunks/098073c3b2849f56dad8.js +1 -0
  19. package/assets/esri/core/workers/chunks/{580039dd491854ca325c.js → 21fc02f0d5716c4a7acd.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{072b4e041b8630c513a0.js → 243b1f9b2fba02946481.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{dff1c3c38dda2bd1a9d6.js → 246a954347fe9318190e.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{314c307e30f308a40a28.js → 25b09e9c0511c8e1cf8a.js} +1 -1
  23. package/assets/esri/core/workers/chunks/28a5ef2e2daa4207dd8b.js +1 -0
  24. package/assets/esri/core/workers/chunks/2b017e1aa1be71974c2e.js +1 -0
  25. package/assets/esri/core/workers/chunks/425b5733bb88e6efe242.js +1 -0
  26. package/assets/esri/core/workers/chunks/{c9dfb145f0c1d93e0fbd.js → 4bcca5fffb1fcc2d4353.js} +1 -1
  27. package/assets/esri/core/workers/chunks/4bf1a7e82a68ccee0ee1.js +1 -0
  28. package/assets/esri/core/workers/chunks/4c110c7f4f940ec58010.js +1 -0
  29. package/assets/esri/core/workers/chunks/{bde89b2684b6185992ef.js → 4ed77097e69fa3096ce4.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{1cbaba30f55f00f7498b.js → 51324d042f469f3b8914.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{3f4e9b1663ec521bfe00.js → 542ce10e1872399790b4.js} +1 -1
  32. package/assets/esri/core/workers/chunks/54d2b7e2ac4ba883bee8.js +1 -0
  33. package/assets/esri/core/workers/chunks/54ecb6cae310818d1aa2.js +1 -0
  34. package/assets/esri/core/workers/chunks/57c932e289d89d97da4b.js +1 -0
  35. package/assets/esri/core/workers/chunks/{6403de6fc067cf8f7436.js → 592c1fb531f2be928e8a.js} +1 -1
  36. package/assets/esri/core/workers/chunks/609a475ab395f2ce63e2.js +1 -0
  37. package/assets/esri/core/workers/chunks/{332689bf60d246485993.js → 65186e168dd112ac6221.js} +1 -1
  38. package/assets/esri/core/workers/chunks/6b9248fb2d6aadbce7bb.js +1 -0
  39. package/assets/esri/core/workers/chunks/709465832d306e02df52.js +1 -0
  40. package/assets/esri/core/workers/chunks/{bbc0dcd316c5598bc9ad.js → 74368a5213def6c200a2.js} +1 -1
  41. package/assets/esri/core/workers/chunks/78e7af899d9d50aa7e74.js +1 -0
  42. package/assets/esri/core/workers/chunks/7fe641cf1467496e670a.js +1 -0
  43. package/assets/esri/core/workers/chunks/{df8f62beb36fb9d2ac81.js → 810c8d6ff19976fd1366.js} +1 -1
  44. package/assets/esri/core/workers/chunks/83a15aa4b1c5252c651b.js +1 -0
  45. package/assets/esri/core/workers/chunks/85e436decdd693f240ee.js +1 -0
  46. package/assets/esri/core/workers/chunks/{243a4eed107d363dfad8.js → 887652bbdb3b71d0a089.js} +1 -1
  47. package/assets/esri/core/workers/chunks/896bfda379cf620b63ec.js +1 -0
  48. package/assets/esri/core/workers/chunks/{1f7e041140088f8ac489.js → 97073a60f0ea2a397165.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{101f776316a85b708927.js → a99070ec4c06c435b744.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{21a9c8aa2a9e9990df41.js → b499b4fa771e8c422b43.js} +1 -1
  51. package/assets/esri/core/workers/chunks/bffad8aec92f982cc75a.js +1 -0
  52. package/assets/esri/core/workers/chunks/d414dba3179bcf75bc6b.js +1 -0
  53. package/assets/esri/core/workers/chunks/{b449d6bd5851187d419f.js → d6e5408f9fa6b4bcd118.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{3ca759f72d3bb29e9ea9.js → e14da83329f7771135bc.js} +2 -2
  55. package/assets/esri/core/workers/chunks/{f508ccfde6425dabe9ac.js → ee0bf611d191103a7046.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{ed1fbc1bc8d50453e2f5.js → f793cd41fcd022baeea2.js} +1 -1
  57. package/assets/esri/core/workers/chunks/fb87fd64411b78afea23.js +1 -0
  58. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +2 -0
  59. package/assets/esri/themes/dark/main.css +1 -1
  60. package/assets/esri/themes/light/main.css +1 -1
  61. package/assets/esri/themes/light/view.css +1 -1
  62. package/config.js +1 -1
  63. package/core/Accessor.js +1 -1
  64. package/core/has.js +1 -1
  65. package/core/sql/DateOnly.js +1 -1
  66. package/core/sql/WhereClause.js +1 -1
  67. package/core/sql.js +1 -1
  68. package/identity/IdentityForm.js +1 -1
  69. package/identity/IdentityModal.js +1 -1
  70. package/interfaces.d.ts +28 -199
  71. package/layers/OrientedImageryLayer.js +1 -1
  72. package/layers/graphics/applyEditsUtils.js +5 -0
  73. package/layers/graphics/editingSupport.js +1 -1
  74. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  75. package/layers/mixins/EditBusLayer.js +1 -1
  76. package/layers/orientedImagery/core/CameraOrientationLTP.js +1 -1
  77. package/layers/orientedImagery/core/ElevationSourceDefinitions.js +5 -0
  78. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  79. package/layers/orientedImagery/core/cameraOrientationFactory.js +1 -1
  80. package/layers/orientedImagery/core/utils.js +5 -0
  81. package/layers/orientedImagery/transformations/groundToImageUtils.js +1 -1
  82. package/layers/support/fieldProperties.js +1 -1
  83. package/networks/Network.js +1 -1
  84. package/package.json +1 -1
  85. package/rest/featureService/FeatureService.js +1 -1
  86. package/support/arcadeUtils.js +1 -1
  87. package/support/revision.js +1 -1
  88. package/symbols/support/svgUtils.js +1 -1
  89. package/versionManagement/VersionManagementService.js +1 -1
  90. package/versionManagement/support/EditMomentStack.js +5 -0
  91. package/versionManagement/support/versionManagementUtils.js +1 -1
  92. package/views/2d/engine/Container.js +1 -1
  93. package/views/2d/engine/DisplayObject.js +1 -1
  94. package/views/2d/engine/ManagedCanvas.js +5 -0
  95. package/views/2d/engine/Stage.js +1 -1
  96. package/views/2d/engine/webgl/GroupContainer.js +1 -1
  97. package/views/2d/engine/webgl/Painter.js +1 -1
  98. package/views/2d/engine/webgl/WGLContainer.js +1 -1
  99. package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
  100. package/views/2d/engine/webgl/effects/FeatureEffect.js +1 -1
  101. package/views/2d/engine/webgl/effects/HighlightEffect.js +1 -1
  102. package/views/2d/engine/webgl/effects/HittestEffectVTL.js +1 -1
  103. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  104. package/views/2d/layers/MediaLayerView2D.js +1 -1
  105. package/views/2d/layers/TileLayerView2D.js +1 -1
  106. package/views/2d/layers/features/tileRenderers/support/WGLFeatureView.js +1 -1
  107. package/views/2d/layers/graphics/BaseGraphicContainer.js +1 -1
  108. package/views/2d/layers/graphics/GraphicContainer.js +1 -1
  109. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  110. package/views/2d/layers/graphics/HighlightGraphicContainer.js +1 -1
  111. package/views/2d/layers/support/DisplayGL.js +1 -1
  112. package/views/2d/webglDeps.js +1 -1
  113. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  114. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  115. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  116. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  117. package/views/3d/layers/SceneLayerView3D.js +1 -1
  118. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  119. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  120. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  121. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  122. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  123. package/views/3d/layers/graphics/Labeler.js +1 -1
  124. package/views/3d/layers/graphics/graphicUtils.js +1 -1
  125. package/views/3d/layers/i3s/featureEditing.js +1 -1
  126. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  127. package/views/3d/support/buffer/glUtil.js +1 -1
  128. package/views/3d/support/engineContent/line.js +1 -1
  129. package/views/3d/support/viewpointUtils.js +1 -1
  130. package/views/3d/webgl-engine/Stage.js +1 -1
  131. package/views/3d/webgl-engine/effects/RenderPluginInput.js +1 -1
  132. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  133. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  134. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  135. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  136. package/views/3d/webgl-engine/lib/Geometry.js +1 -1
  137. package/views/3d/webgl-engine/lib/ModelDirtySet.js +1 -1
  138. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  139. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  140. package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
  141. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  142. package/views/3d/webgl-engine/lib/TextTextureFactory.js +1 -1
  143. package/views/3d/webgl-engine/lib/VertexAttribute.js +1 -1
  144. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  145. package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
  146. package/views/3d/webgl-engine/lib/edgeRendering/edgeProcessing.js +1 -1
  147. package/views/View.js +1 -1
  148. package/views/interactive/tooltip/TooltipContentWithHelpMessage.js +1 -1
  149. package/views/interactive/tooltip/TooltipEditableField.js +1 -1
  150. package/views/interactive/tooltip/constraintUtils.js +1 -1
  151. package/views/interactive/tooltip/content/Fields.js +1 -1
  152. package/views/interactive/tooltip/content/TooltipContentDrawCircle.js +1 -1
  153. package/views/interactive/tooltip/content/TooltipContentDrawMesh.js +1 -1
  154. package/views/interactive/tooltip/content/TooltipContentDrawPoint.js +1 -1
  155. package/views/interactive/tooltip/content/TooltipContentDrawPolygon.js +1 -1
  156. package/views/interactive/tooltip/content/TooltipContentDrawPolyline.js +1 -1
  157. package/views/interactive/tooltip/content/TooltipContentDrawRectangle.js +1 -1
  158. package/views/interactive/tooltip/content/TooltipContentExtentRotate.js +1 -1
  159. package/views/interactive/tooltip/content/TooltipContentExtentScale.js +1 -1
  160. package/views/interactive/tooltip/content/TooltipContentReshapeEdgeOffset.js +1 -1
  161. package/views/interactive/tooltip/content/TooltipContentTransformAbsolute.js +1 -1
  162. package/views/interactive/tooltip/content/TooltipContentTransformRotate.js +1 -1
  163. package/views/interactive/tooltip/content/TooltipContentTransformScale.js +1 -1
  164. package/views/interactive/tooltip/content/TooltipContentTranslateGraphic.js +1 -1
  165. package/views/interactive/tooltip/content/TooltipContentTranslateGraphicXY.js +1 -1
  166. package/views/interactive/tooltip/content/TooltipContentTranslateGraphicZ.js +1 -1
  167. package/views/interactive/tooltip/content/TooltipContentTranslateVertex.js +1 -1
  168. package/views/interactive/tooltip/content/TooltipContentTranslateVertexXY.js +1 -1
  169. package/views/interactive/tooltip/content/TooltipContentTranslateVertexZ.js +1 -1
  170. package/views/support/angularMeasurementUtils.js +1 -1
  171. package/views/webgl/Texture.js +1 -1
  172. package/views/webgl/contextUtils.js +1 -1
  173. package/widgets/AreaMeasurement2D.js +1 -1
  174. package/widgets/AreaMeasurement3D.js +1 -1
  175. package/widgets/Attachments.js +1 -1
  176. package/widgets/Attribution.js +1 -1
  177. package/widgets/BasemapGallery.js +1 -1
  178. package/widgets/BasemapLayerList.js +1 -1
  179. package/widgets/BasemapToggle.js +1 -1
  180. package/widgets/Bookmarks.js +1 -1
  181. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
  182. package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js +1 -1
  183. package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
  184. package/widgets/BuildingExplorer/BuildingLevelPicker/Label.js +1 -1
  185. package/widgets/BuildingExplorer/BuildingLevelPicker/LevelItem.js +1 -1
  186. package/widgets/BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js +1 -1
  187. package/widgets/BuildingExplorer.js +1 -1
  188. package/widgets/Compass.js +1 -1
  189. package/widgets/CoordinateConversion.js +1 -1
  190. package/widgets/Daylight/support/SliderWithDropdown.js +1 -1
  191. package/widgets/Daylight.js +1 -1
  192. package/widgets/DirectLineMeasurement3D.js +1 -1
  193. package/widgets/DirectionalPad.js +1 -1
  194. package/widgets/Directions/components/SaveLayer.js +1 -1
  195. package/widgets/Directions.js +1 -1
  196. package/widgets/DistanceMeasurement2D.js +1 -1
  197. package/widgets/Editor/components/FooterActions.js +1 -1
  198. package/widgets/Editor/components/Notices.js +1 -1
  199. package/widgets/Editor/components/PanelContent.js +1 -1
  200. package/widgets/Editor/components/PanelToolbar.js +1 -1
  201. package/widgets/Editor/components/Prompt.js +1 -1
  202. package/widgets/Editor/components/Settings.js +1 -1
  203. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  204. package/widgets/Editor/components/UploadDetails.js +1 -1
  205. package/widgets/Editor.js +1 -1
  206. package/widgets/ElevationProfile/components/LegendItem.js +1 -1
  207. package/widgets/ElevationProfile/components/SettingsButton.js +1 -1
  208. package/widgets/ElevationProfile/components/Statistics.js +1 -1
  209. package/widgets/ElevationProfile.js +1 -1
  210. package/widgets/Expand.js +1 -1
  211. package/widgets/Feature/FeatureContent.js +1 -1
  212. package/widgets/Feature/FeatureExpression.js +1 -1
  213. package/widgets/Feature/FeatureFields.js +1 -1
  214. package/widgets/Feature/FeatureMedia.js +1 -1
  215. package/widgets/Feature/FeatureRelationship.js +1 -1
  216. package/widgets/Feature/support/FeatureContentMixin.js +1 -1
  217. package/widgets/Feature/support/FeatureElementInfo.js +1 -1
  218. package/widgets/Feature.js +1 -1
  219. package/widgets/FeatureForm.js +1 -1
  220. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  221. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  222. package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
  223. package/widgets/FeatureTable.js +1 -1
  224. package/widgets/FeatureTemplates/ItemList.js +1 -1
  225. package/widgets/FeatureTemplates.js +1 -1
  226. package/widgets/Features/FeaturesRelatedRecords.js +1 -1
  227. package/widgets/Features.js +1 -1
  228. package/widgets/FloorFilter.js +1 -1
  229. package/widgets/Fullscreen.js +1 -1
  230. package/widgets/Histogram.js +1 -1
  231. package/widgets/HistogramRangeSlider.js +1 -1
  232. package/widgets/Home.js +1 -1
  233. package/widgets/LayerList/ListItemPanel.js +1 -1
  234. package/widgets/LayerList.js +1 -1
  235. package/widgets/Legend/styles/Card.js +1 -1
  236. package/widgets/Legend/styles/Classic.js +1 -1
  237. package/widgets/Legend/styles/support/relationshipUtils.js +1 -1
  238. package/widgets/Legend/styles/support/univariateUtils.js +1 -1
  239. package/widgets/LineOfSight.js +1 -1
  240. package/widgets/Locate.js +1 -1
  241. package/widgets/NavigationToggle.js +1 -1
  242. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  243. package/widgets/OrientedImageryViewer.js +1 -1
  244. package/widgets/Popup.js +1 -1
  245. package/widgets/Print.js +1 -1
  246. package/widgets/ScaleRangeSlider.js +1 -1
  247. package/widgets/Search/SearchResultRenderer.js +1 -1
  248. package/widgets/Search.js +1 -1
  249. package/widgets/ShadowCast/components/DiscreteConfigurator.js +1 -1
  250. package/widgets/ShadowCast/components/DurationConfigurator.js +1 -1
  251. package/widgets/ShadowCast/components/ShadowTooltipContent.js +1 -1
  252. package/widgets/ShadowCast/components/ThresholdConfigurator.js +1 -1
  253. package/widgets/ShadowCast.js +1 -1
  254. package/widgets/Sketch.js +1 -1
  255. package/widgets/Slice.js +1 -1
  256. package/widgets/Slider.js +1 -1
  257. package/widgets/Swipe.js +1 -1
  258. package/widgets/TableList.js +1 -1
  259. package/widgets/TimeSlider.js +1 -1
  260. package/widgets/Track.js +1 -1
  261. package/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsLineSymbolPicker.js +1 -1
  262. package/widgets/UtilityNetworkAssociations.js +1 -1
  263. package/widgets/UtilityNetworkTrace.js +1 -1
  264. package/widgets/UtilityNetworkValidateTopology.js +1 -1
  265. package/widgets/ValuePicker.js +1 -1
  266. package/widgets/VideoPlayer/components/PlayerControlsGroup.js +1 -1
  267. package/widgets/VideoPlayer/components/SettingsButton.js +1 -1
  268. package/widgets/VideoPlayer.js +1 -1
  269. package/widgets/Weather/LabeledSlider.js +1 -1
  270. package/widgets/Weather.js +1 -1
  271. package/widgets/Zoom/IconButton.js +1 -1
  272. package/widgets/smartMapping/BinaryColorSizeSlider.js +1 -1
  273. package/widgets/smartMapping/ClassedColorSlider.js +1 -1
  274. package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
  275. package/widgets/smartMapping/ColorSizeSlider.js +1 -1
  276. package/widgets/smartMapping/ColorSlider.js +1 -1
  277. package/widgets/smartMapping/HeatmapSlider.js +1 -1
  278. package/widgets/smartMapping/OpacitySlider.js +1 -1
  279. package/widgets/smartMapping/SizeSlider.js +1 -1
  280. package/widgets/smartMapping/SmartMappingSliderBase.js +1 -1
  281. package/widgets/support/ColorPicker.js +1 -1
  282. package/widgets/support/DatePicker.js +1 -1
  283. package/widgets/support/Heading.js +1 -1
  284. package/widgets/support/LabeledSwitch.js +1 -1
  285. package/widgets/support/MeasurementWidgetContent.js +1 -1
  286. package/widgets/support/Popover.js +1 -1
  287. package/widgets/support/SelectionToolbar.js +1 -1
  288. package/widgets/support/SketchTooltipControls.js +1 -1
  289. package/widgets/support/SnappingControls.js +1 -1
  290. package/widgets/support/TimePicker.js +1 -1
  291. package/widgets/support/TimezonePicker.js +1 -1
  292. package/widgets/support/UnitSelect.js +1 -1
  293. package/assets/esri/core/workers/chunks/092920c25cac89c038ee.js +0 -1
  294. package/assets/esri/core/workers/chunks/1b3655f5bf5d90fa8730.js +0 -1
  295. package/assets/esri/core/workers/chunks/1cf7bb514e7eefc3e9c6.js +0 -1
  296. package/assets/esri/core/workers/chunks/24629402c647ef6b5f6b.js +0 -1
  297. package/assets/esri/core/workers/chunks/2d0d03cbea83c868edba.js +0 -1
  298. package/assets/esri/core/workers/chunks/2e130cb2f1038055c07b.js +0 -1
  299. package/assets/esri/core/workers/chunks/4369a6c1e0a82ab4db6a.js +0 -1
  300. package/assets/esri/core/workers/chunks/4f4a424d1747d04501df.js +0 -1
  301. package/assets/esri/core/workers/chunks/59c00d6fba0fd1c03d01.js +0 -1
  302. package/assets/esri/core/workers/chunks/650a317b6dc245a7060f.js +0 -1
  303. package/assets/esri/core/workers/chunks/7a358b1fd0c0cce59e9b.js +0 -1
  304. package/assets/esri/core/workers/chunks/83d1a1b3d371c991cc4c.js +0 -1
  305. package/assets/esri/core/workers/chunks/c4bb67150ccd01ea6014.js +0 -1
  306. package/assets/esri/core/workers/chunks/c60cf62f374e71e562fc.js +0 -1
  307. package/assets/esri/core/workers/chunks/c8f239c25fe864f0e47a.js +0 -1
  308. package/assets/esri/core/workers/chunks/cad260881653567bc8f9.js +0 -1
  309. package/assets/esri/core/workers/chunks/e55f7fc7eff0074ce0fc.js +0 -1
  310. package/assets/esri/core/workers/chunks/eef27d305023034084a4.js +0 -1
  311. package/assets/esri/core/workers/chunks/f38c54ada9e7012a2960.js +0 -1
  312. package/core/watchUtils.d.ts +0 -4
  313. package/core/watchUtils.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{eventKey as t}from"../core/events.js";import{watch as s}from"../core/reactiveUtils.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import o from"./Widget.js";import{css as n}from"./FloorFilter/css.js";import r from"./FloorFilter/FloorFilterViewModel.js";import{globalCss as a}from"./support/globalCss.js";import{Heading as c,incrementHeadingLevel as d}from"./support/Heading.js";import{legacyIcon as h}from"./support/legacyIcon.js";import{isRTL as u,storeNode as v}from"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as p}from"./support/jsxFactory.js";import{substitute as M}from"../intl/substitute.js";const f=["ArrowUp","ArrowDown","End","Home"];let g=class extends o{constructor(e,t){super(e,t),this._activeMenu=null,this._activeMenuIndex={levels:-1,menuItems:-1},this._baseNode=null,this._facilitiesListNode=null,this._levelsListNode=null,this._sitesListNode=null,this._searchInput=null,this.viewModel=new r,this.messages=null,this.messagesCommon=null,this.headingLevel=2,this._resizeObserver=new ResizeObserver((()=>this.scheduleRender())),this.addHandles(s((()=>this._searchInput),(()=>this._focusSearch())))}destroy(){this._resizeObserver?.disconnect()}get enabled(){return this.viewModel.enabled}set enabled(e){this.viewModel.enabled=e}get longNames(){return this.viewModel.longNames}set longNames(e){this.viewModel.longNames=e}get minimized(){return this.viewModel.minimized}set minimized(e){this.viewModel.minimized=e}get pinnedLevels(){return this.viewModel.pinnedLevels}set pinnedLevels(e){this.viewModel.pinnedLevels=e}get site(){return this.viewModel.site}set site(e){this.viewModel.site=e}get facility(){return this.viewModel.facility}set facility(e){this.viewModel.facility=e}get level(){return this.viewModel.level}set level(e){this.viewModel.level=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}updateWebDocument(e){return this.viewModel.updateWebDocument(e)}render(){const{longNames:e}=this,t=e&&this.viewModel.isNormalMode?"expanded":"collapsed",s=this._renderButtons(),i=this._renderFilterMenu(),l=p("div",{class:this.classes(n.separator)}),o=this._getComponentPosition(),r=this._getPosition(o),c="top-right"===o||"bottom-right"===o,d="top-left"===o||"bottom-left"===o,h=u(this.container),v=h&&d||!h&&c?i:s,m=h&&d||!h&&c?s:i;return p("div",{afterCreate:this._afterBaseNodeCreate,key:"floor-filter-menu",class:this.classes(n.floorFilter,a.widget,`${n.floorFilterLayout}${t}`,`${n.floorFilterPosition}${r}`)},v,this.viewModel?.filterMenuOpen&&l,m)}_renderButtons(){const e=this._getComponentPosition(),t=[];return"top"===this._getPosition(e)?(t.push(this._renderBrowseButton()),t.push(this._renderLevelButtons()),t.push(this._renderCloseLevelsButton()),t.push(this._renderZoomButton()),t.push(this._renderCollapseToggleButton())):(t.push(this._renderCollapseToggleButton()),t.push(this._renderZoomButton()),t.push(this._renderCloseLevelsButton()),t.push(this._renderLevelButtons()),t.push(this._renderBrowseButton())),p("div",{key:"button-container",class:this.classes(a.widget,n.buttonContainer)},t)}_renderBrowseButton(){const{longNames:e,messages:t}=this;return p("button",{key:"browse-button",title:t.buttons.browse,bind:this,class:this.classes(a.widget,a.widgetButton,a.interactive,("loading"===this.viewModel.state||"disabled"===this.viewModel.state)&&a.buttonDisabled,n.browseButton,this.viewModel?.filterMenuOpen&&a.widgetButtonActive),"aria-expanded":this.viewModel.filterMenuOpen.toString(),"aria-label":t.buttons.browse,onclick:this._toggleFilterMenu,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:this.classes(h.icon,h.urbanModel)}),p("span",{class:this.classes(n.buttonLabel)},e&&this.viewModel.isNormalMode&&t.buttons.browse)))}_renderLevelButtons(){if(!this.viewModel?.filterFeatures?.levels?.levelsInfo||!this.facility)return null;const{facility:e,messagesCommon:t,messages:s}=this,i=this.viewModel?.getFacility(e),l=this.viewModel?.getFacilityLevels(e),o=l.map((e=>this._renderLevelButton(e)));if(!o.length)return null;const r=i&&M(s.selector.levelsLabel,{name:`"${i.name}"`});if(this._isWebScene(this.view?.map)&&o?.length>1){const s={id:`all--${e}`,facilityId:e,shortName:t.all,longName:t.all,levelNumber:null,verticalOrder:null},i=this._renderLevelButton(s);o.push(i)}return p("ul",{key:"levels-button-container",class:this.classes(n.levelsContainer),bind:this,"data-id":"levels",afterCreate:v,"data-node-ref":"_levelsListNode","aria-label":r,onkeydown:this._handleListKeydown},o)}_renderLevelButton(e){const{longNames:t}=this,{shortName:s,longName:i,id:l}=e,o=`levels--${l}`,r=this.level===l,c=t&&this.viewModel.isNormalMode?i:s;return this.viewModel.isNormalMode||r||this.viewModel.levelsExpanded?p("li",{key:o},p("button",{"data-id":l,"data-list-id":"levels",bind:this,class:this.classes(a.widgetButton,r?a.widgetButtonActive:null,a.interactive,n.levelButton),onclick:this._levelSelected,onfocus:this._onItemFocus,type:"button"},c)):null}_renderCloseLevelsButton(){if(!this.level||this.viewModel.isNormalMode||!this.viewModel.levelsExpanded)return null;const{messagesCommon:e}=this;return p("button",{key:"close-levels-button",title:e.close,bind:this,class:this.classes(a.widget,a.widgetButton,a.interactive,n.closeLevelsButton),"aria-label":e.close,onclick:this._closeLevels,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:this.classes(h.icon,h.close)})))}_renderZoomButton(){const{longNames:e,messages:t,facility:s,site:i}=this,l=this.viewModel?.filterMenuType,o=this.viewModel?.filterMenuOpen,r=this.viewModel?.getSite(i),c=this.viewModel?.getFacility(s),d="site"===l&&o?!r:!c;return p("button",{key:"zoom-button",title:t.buttons.zoomTo,bind:this,class:this.classes(a.widget,a.widgetButton,d&&a.buttonDisabled,a.interactive,this.viewModel?.getFacilityLevels(s).length>0?n.zoomButtonLevels:n.zoomButton),"aria-label":t.buttons.zoomTo,onclick:this._zoomToClicked,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:this.classes(h.icon,h.zoomToObject)}),p("span",{class:this.classes(n.buttonLabel)},e&&this.viewModel.isNormalMode&&t.buttons.zoomTo)))}_renderCollapseToggleButton(){const{longNames:e,messagesCommon:t}=this,s=e?h.collapse:h.expand,i=this.classes(h.icon,s),l=e?t.collapse:t.expand;return p("button",{key:"minimize-toggle-button",title:l,bind:this,class:this.classes(a.widget,a.widgetButton,a.interactive,n.minimizeToggleButton),"aria-label":l,onclick:this._toggleCollapsed,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:i}),p("span",{class:this.classes(n.buttonLabel)},e&&this.viewModel.isNormalMode&&t.collapse)))}_renderFilterMenu(){return this.viewModel?.filterMenuOpen?"site"===this.viewModel?.filterMenuType?this._renderSiteFilterMenu():"facility"===this.viewModel?.filterMenuType?this._renderFacilityFilterMenu():null:null}_renderSiteFilterMenu(){const{messages:e,messagesCommon:t}=this,s=this.site?this.viewModel?.getSite(this.site)?.name:e.selector.selectSite,i=p("div",{key:"filter-menu-site-header",class:this.classes(`${n.filterMenuHeader}`)},p("div",{class:this.classes(n.filterMenuHeaderTextGroup)},p(c,{level:this.headingLevel,class:this.classes(n.filterMenuHeaderText)},s)),p("button",{bind:this,title:t.close,class:this.classes(h.icon,h.close),onclick:this._closeClicked,type:"button"})),l=this._renderSearchInput(),o=this._renderSiteItems();return p("div",{key:"filter-menu-site",class:this.classes(n.filterMenu)},i,l,o)}_renderFacilityFilterMenu(){const{messages:e,messagesCommon:t,site:s}=this,i=this.viewModel?.getSite(s)?.name,l=this.facility&&this.viewModel?.getFacility(this.facility)?.name||e.selector.selectFacility,o=this.viewModel.hasMultipleSites?p("button",{bind:this,title:t.back,class:this.classes(n.filterMenuHeaderBack),onclick:this._backClicked,type:"button"},p("span",{class:this.classes(u(this.container)?h.right:h.left)})):null,r=this.viewModel.hasMultipleSites?p(c,{level:d(this.headingLevel),class:this.classes(n.filterMenuHeaderSubtext)},i):null,a=p("div",{key:"filter-menu-site-header",class:this.classes(n.filterMenuHeader)},o,p("div",{class:this.classes(n.filterMenuHeaderTextGroup)},p(c,{level:this.headingLevel,class:this.classes(n.filterMenuHeaderText)},l),r),p("button",{bind:this,title:t.close,class:this.classes(h.icon,h.close),onclick:this._closeClicked,type:"button"})),v=this._renderSearchInput(),m=this._renderFacilityItems();return p("div",{key:"filter-menu-facility",class:this.classes(n.filterMenu)},a,v,m)}_renderSearchInput(){const{messagesCommon:e}=this;return p("div",{key:"filter-menu-search",class:this.classes(n.filterMenuSearch)},p("span",{class:this.classes(h.icon,h.search)}),p("input",{bind:this,key:"filter-menu-search__input",afterCreate:v,"data-node-ref":"_searchInput",class:this.classes(n.filterMenuSearchInput),placeholder:e.search,oninput:this._onSearchChange,onpaste:this._onSearchChange,value:this.viewModel.searchTerm??void 0}))}_renderBlueCircle(){return p("span",{key:"floor-filter__selected-item-circle",class:this.classes(n.selectedItemCircle)})}_renderSiteItems(){if(!this.viewModel?.filterFeatures?.sites?.sitesInfo)return null;const{messages:e}=this,t=this.viewModel.filterFeatures.sites.sitesInfo,s=this.viewModel.filterSites(t).map((e=>this._renderSiteItem(e))),i=0===s.length&&this.viewModel?.searchTerm&&p("div",{class:this.classes(a.empty)},e.noResults);return p("ul",{key:"filter-menu-items--sites",class:this.classes(n.filterMenuItems),bind:this,afterCreate:v,"data-node-ref":"_sitesListNode","data-id":"sites",onkeydown:this._handleListKeydown,tabIndex:-1,"aria-label":e.selector.sitesLabel},s,i)}_renderSiteItem(e){const{name:t,id:s}=e,i=`filter-menu-site--${s}`,l=this.site===s;return p("li",{key:i},p("button",{"data-id":s,"data-list-id":"sites",bind:this,class:this.classes(n.filterMenuSite),onclick:this._siteSelected,onfocus:this._onItemFocus,type:"button"},l&&this._renderBlueCircle(),p("span",{class:this.classes(l?n.filterMenuSelectedItem:n.filterMenuItemName)},t),p("span",{class:this.classes(u(this.container)?h.left:h.right)})))}_renderFacilityItems(){if(!this.viewModel?.filterFeatures?.facilities?.facilitiesInfo)return null;const{messages:e,site:t}=this,s=this.viewModel.getSite(t),i=this.viewModel.filterFeatures.facilities.facilitiesInfo,l=this.viewModel.filterFacilities(i).map((e=>this._renderFacilityItem(e))),o=0===l.length&&this.viewModel?.searchTerm&&p("div",{class:this.classes(a.empty)},e.noResults),r=s?M(e.selector.siteFacilitiesLabel,{name:`"${s.name}"`}):e.selector.facilitiesLabel;return p("ul",{key:"filter-menu-items--facilities",class:this.classes(n.filterMenuItems),bind:this,afterCreate:v,"data-node-ref":"_facilitiesListNode","data-id":"facilities",onkeydown:this._handleListKeydown,tabIndex:-1,"aria-label":r},l,o)}_renderFacilityItem(e){const{name:t,id:s}=e,i=`filter-menu-facility--${s}`,l=this.facility===s;return p("li",{key:i},p("button",{"data-id":s,"data-list-id":"facilities",bind:this,class:this.classes(n.filterMenuFacility),onclick:this._facilitySelected,onfocus:this._onItemFocus,type:"button"},l&&this._renderBlueCircle(),p("span",{class:this.classes(l?n.filterMenuSelectedItem:n.filterMenuItemName)},t)))}_afterBaseNodeCreate(e){this._baseNode&&this._resizeObserver?.unobserve(this._baseNode),this._baseNode=e,this._resizeObserver?.observe(this._baseNode)}_toggleCollapsed(){this.longNames=!this.longNames}_toggleFilterMenu(){const e=this.viewModel?.filterMenuOpen??!1;this.viewModel.filterMenuOpen=!e}_setFilterMenuType(e){this.viewModel.filterMenuType=e}_zoomToClicked(){if(this.site&&"site"===this.viewModel?.filterMenuType&&this.viewModel?.filterMenuOpen){const e=this.viewModel?.getSite(this.site);this.viewModel.goTo(e)}else if(this.facility){const e=this.viewModel?.getFacility(this.facility);this.viewModel.goTo(e)}else if(this.site){const e=this.viewModel?.getSite(this.site);this.viewModel.goTo(e)}}_onSearchChange(e){const t=e.target;""===t.value?this.viewModel.searchTerm=null:t.value&&this.viewModel?.searchTerm!==t.value&&(this.viewModel.searchTerm=t.value.toLowerCase().trim())}_closeClicked(){this.viewModel.searchTerm=null,this.viewModel.filterMenuOpen=!1}_backClicked(){this._setFilterMenuType("site"),this.viewModel.searchTerm=null}_siteSelected(e){const t=e.currentTarget.getAttribute("data-id"),s=this.viewModel.getSite(t);let i=!1;this.site!==t&&(this.facility=null,this.level=null,i=!0,this.viewModel.levelsExpanded=!1),this.site=t,this.viewModel.searchTerm=null,this._setFilterMenuType("facility"),this.viewModel.goTo(s),i&&this.viewModel.setFloors(null)}_facilitySelected(e){const t=e.currentTarget.getAttribute("data-id"),s=this.viewModel.getFacility(t);let i=!1;if(this.facility!==t){if("base-floors"===this.viewModel.filterMode){const e=this.viewModel?.getBaseLevel(s);this.level=e?e.id:null}else this.level=null;i=!0,this.viewModel.levelsExpanded=!1}if(this.facility=t,this.viewModel.goTo(s),i){const e=this.viewModel.getLevel(this.level);this.viewModel.setFloors(e)}if(!this.viewModel.isNormalMode){const e=this.viewModel.getFacilityLevels(t);e?.length>1&&(this.viewModel.levelsExpanded=!0)}setTimeout((()=>this._focusActiveLevel()),50)}_levelSelected(e){const t=e.currentTarget.getAttribute("data-id");this.level=t}_closeLevels(){this.viewModel.levelsExpanded=!1}_isWebScene(e){return"esri.WebScene"===e?.declaredClass}_getComponentPosition(){return null!=this.container?this.view?.ui?.getPosition(this.container):null}_getPosition(e){switch(e){case"bottom-right":case"bottom-left":return"bottom";default:return"top"}}_handleListKeydown(e){const s=e.currentTarget.getAttribute("data-id");let i=null;"sites"===s||"facilities"===s?(this._activeMenu!==s&&(this._activeMenuIndex.menuItems=-1),this._activeMenu=s,i="menuItems"):"levels"===s&&(i="levels");const l="sites"===s?this._sitesListNode:"facilities"===s?this._facilitiesListNode:"levels"===s?this._levelsListNode:null,o=t(e),n="Tab"===o,r=f.includes(o);r&&e.preventDefault();const a=l?.getElementsByTagName("li");a&&0!==a.length&&(r||n)&&this._handleItemNavigation(o,e.shiftKey,a,n,i)}_handleItemNavigation(e,t,s,i,l){if(!l)return;this._activeMenuIndex[l]===s.length&&this._activeMenuIndex[l]--,-1===this._activeMenuIndex[l]&&this._activeMenuIndex[l]++;const o=this._activeMenuIndex[l];switch(e){case"Home":this._activeMenuIndex[l]=0;break;case"End":this._activeMenuIndex[l]=s.length-1;break;case"ArrowUp":this._activeMenuIndex[l]=this._activeMenuIndex[l]<=0?s.length-1:this._activeMenuIndex[l]-1;break;case"ArrowDown":this._activeMenuIndex[l]=this._activeMenuIndex[l]===s.length-1?0:this._activeMenuIndex[l]+1}if("Tab"===e&&t&&this._activeMenuIndex[l]>=0&&this._activeMenuIndex[l]--,"Tab"===e&&!t&&this._activeMenuIndex[l]<s.length&&this._activeMenuIndex[l]++,o!==this._activeMenuIndex[l]&&this._activeMenuIndex[l]>-1&&this._activeMenuIndex[l]<s.length&&!i){const e=s[this._activeMenuIndex[l]].getElementsByTagName("button"),t=1===e?.length?e[0]:null;t?.focus()}}_focusSearch(){this._searchInput?.focus()}_focusActiveLevel(){const{level:e}=this,t=this._levelsListNode,s=t?.getElementsByTagName("li");if(!e||!t||!s)return;const i=this._facilitiesListNode?.getElementsByTagName("li");this._activeMenuIndex.menuItems=i?i.length-1:-1;const l=[];for(let o=0;o<s.length;o++){const e=s[o].getElementsByTagName("button");1===e?.length&&l.push(e[0])}l.forEach(((t,s)=>{t.getAttribute("data-id")===e&&(t.focus(),this._activeMenuIndex.levels=s)}))}_onItemFocus(e){const t=e.currentTarget,s=t.getAttribute("data-list-id"),i=t.getAttribute("data-id"),l="sites"===s?this._sitesListNode:"facilities"===s?this._facilitiesListNode:"levels"===s?this._levelsListNode:null;if(!l)return;const o=l?.getElementsByTagName("li");if(!o)return;const n=[];Array.from(o).forEach((e=>{const t=e.getElementsByTagName("button");1===t?.length&&n.push(t[0])}));let r=null;switch(s){case"sites":case"facilities":r="menuItems";break;case"levels":r="levels"}if(!r)return;const a=r;n.forEach(((e,t)=>{e.getAttribute("data-id")===i&&this._activeMenuIndex[a]!==t&&(this._activeMenuIndex[a]=t)}))}};e([i()],g.prototype,"_searchInput",void 0),e([i()],g.prototype,"enabled",null),e([i()],g.prototype,"longNames",null),e([i()],g.prototype,"minimized",null),e([i()],g.prototype,"pinnedLevels",null),e([i()],g.prototype,"site",null),e([i()],g.prototype,"facility",null),e([i()],g.prototype,"level",null),e([i()],g.prototype,"view",null),e([i({type:r})],g.prototype,"viewModel",void 0),e([i(),m("esri/widgets/FloorFilter/t9n/FloorFilter")],g.prototype,"messages",void 0),e([i(),m("esri/t9n/common")],g.prototype,"messagesCommon",void 0),e([i()],g.prototype,"goToOverride",null),e([i()],g.prototype,"headingLevel",void 0),g=e([l("esri.widgets.FloorFilter")],g);const _=g;export{_ as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{eventKey as t}from"../core/events.js";import{watch as s}from"../core/reactiveUtils.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import o from"./Widget.js";import{css as n}from"./FloorFilter/css.js";import r from"./FloorFilter/FloorFilterViewModel.js";import{globalCss as a}from"./support/globalCss.js";import{Heading as c,incrementHeadingLevel as d}from"./support/Heading.js";import{legacyIcon as h}from"./support/legacyIcon.js";import{isRTL as u,storeNode as v}from"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as p}from"./support/jsxFactory.js";import{substitute as M}from"../intl/substitute.js";const f=["ArrowUp","ArrowDown","End","Home"];let g=class extends o{constructor(e,t){super(e,t),this._activeMenu=null,this._activeMenuIndex={levels:-1,menuItems:-1},this._baseNode=null,this._facilitiesListNode=null,this._levelsListNode=null,this._sitesListNode=null,this._searchInput=null,this.viewModel=new r,this.messages=null,this.messagesCommon=null,this.headingLevel=2,this._resizeObserver=new ResizeObserver((()=>this.scheduleRender())),this.addHandles(s((()=>this._searchInput),(()=>this._focusSearch())))}destroy(){this._resizeObserver?.disconnect()}get enabled(){return this.viewModel.enabled}set enabled(e){this.viewModel.enabled=e}get longNames(){return this.viewModel.longNames}set longNames(e){this.viewModel.longNames=e}get minimized(){return this.viewModel.minimized}set minimized(e){this.viewModel.minimized=e}get pinnedLevels(){return this.viewModel.pinnedLevels}set pinnedLevels(e){this.viewModel.pinnedLevels=e}get site(){return this.viewModel.site}set site(e){this.viewModel.site=e}get facility(){return this.viewModel.facility}set facility(e){this.viewModel.facility=e}get level(){return this.viewModel.level}set level(e){this.viewModel.level=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}updateWebDocument(e){return this.viewModel.updateWebDocument(e)}render(){const{longNames:e}=this,t=e&&this.viewModel.isNormalMode?"expanded":"collapsed",s=this._renderButtons(),i=this._renderFilterMenu(),l=p("div",{class:this.classes(n.separator)}),o=this._getComponentPosition(),r=this._getPosition(o),c="top-right"===o||"bottom-right"===o,d="top-left"===o||"bottom-left"===o,h=u(this.container),v=h&&d||!h&&c?i:s,m=h&&d||!h&&c?s:i;return p("div",{afterCreate:this._afterBaseNodeCreate,class:this.classes(n.floorFilter,a.widget,`${n.floorFilterLayout}${t}`,`${n.floorFilterPosition}${r}`),key:"floor-filter-menu"},v,this.viewModel?.filterMenuOpen?l:null,m)}_renderButtons(){const e=this._getComponentPosition(),t=[];return"top"===this._getPosition(e)?(t.push(this._renderBrowseButton()),t.push(this._renderLevelButtons()),t.push(this._renderCloseLevelsButton()),t.push(this._renderZoomButton()),t.push(this._renderCollapseToggleButton())):(t.push(this._renderCollapseToggleButton()),t.push(this._renderZoomButton()),t.push(this._renderCloseLevelsButton()),t.push(this._renderLevelButtons()),t.push(this._renderBrowseButton())),p("div",{class:this.classes(a.widget,n.buttonContainer),key:"button-container"},t)}_renderBrowseButton(){const{longNames:e,messages:t}=this;return p("button",{"aria-expanded":this.viewModel.filterMenuOpen.toString(),"aria-label":t.buttons.browse,bind:this,class:this.classes(a.widget,a.widgetButton,a.interactive,("loading"===this.viewModel.state||"disabled"===this.viewModel.state)&&a.buttonDisabled,n.browseButton,this.viewModel?.filterMenuOpen&&a.widgetButtonActive),key:"browse-button",onclick:this._toggleFilterMenu,title:t.buttons.browse,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:this.classes(h.icon,h.urbanModel)}),p("span",{class:this.classes(n.buttonLabel)},e&&this.viewModel.isNormalMode?t.buttons.browse:null)))}_renderLevelButtons(){if(!this.viewModel?.filterFeatures?.levels?.levelsInfo||!this.facility)return null;const{facility:e,messagesCommon:t,messages:s}=this,i=this.viewModel?.getFacility(e),l=this.viewModel?.getFacilityLevels(e),o=l.map((e=>this._renderLevelButton(e)));if(!o.length)return null;const r=i&&M(s.selector.levelsLabel,{name:`"${i.name}"`});if(this._isWebScene(this.view?.map)&&o?.length>1){const s={id:`all--${e}`,facilityId:e,shortName:t.all,longName:t.all,levelNumber:null,verticalOrder:null},i=this._renderLevelButton(s);o.push(i)}return p("ul",{afterCreate:v,"aria-label":r,bind:this,class:this.classes(n.levelsContainer),"data-id":"levels","data-node-ref":"_levelsListNode",key:"levels-button-container",onkeydown:this._handleListKeydown},o)}_renderLevelButton(e){const{longNames:t}=this,{shortName:s,longName:i,id:l}=e,o=`levels--${l}`,r=this.level===l,c=t&&this.viewModel.isNormalMode?i:s;return this.viewModel.isNormalMode||r||this.viewModel.levelsExpanded?p("li",{key:o},p("button",{bind:this,class:this.classes(a.widgetButton,r?a.widgetButtonActive:null,a.interactive,n.levelButton),"data-id":l,"data-list-id":"levels",onclick:this._levelSelected,onfocus:this._onItemFocus,type:"button"},c)):null}_renderCloseLevelsButton(){if(!this.level||this.viewModel.isNormalMode||!this.viewModel.levelsExpanded)return null;const{messagesCommon:e}=this;return p("button",{"aria-label":e.close,bind:this,class:this.classes(a.widget,a.widgetButton,a.interactive,n.closeLevelsButton),key:"close-levels-button",onclick:this._closeLevels,title:e.close,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:this.classes(h.icon,h.close)})))}_renderZoomButton(){const{longNames:e,messages:t,facility:s,site:i}=this,l=this.viewModel?.filterMenuType,o=this.viewModel?.filterMenuOpen,r=this.viewModel?.getSite(i),c=this.viewModel?.getFacility(s),d="site"===l&&o?!r:!c;return p("button",{"aria-label":t.buttons.zoomTo,bind:this,class:this.classes(a.widget,a.widgetButton,d&&a.buttonDisabled,a.interactive,this.viewModel?.getFacilityLevels(s).length>0?n.zoomButtonLevels:n.zoomButton),key:"zoom-button",onclick:this._zoomToClicked,title:t.buttons.zoomTo,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:this.classes(h.icon,h.zoomToObject)}),p("span",{class:this.classes(n.buttonLabel)},e&&this.viewModel.isNormalMode?t.buttons.zoomTo:null)))}_renderCollapseToggleButton(){const{longNames:e,messagesCommon:t}=this,s=e?h.collapse:h.expand,i=this.classes(h.icon,s),l=e?t.collapse:t.expand;return p("button",{"aria-label":l,bind:this,class:this.classes(a.widget,a.widgetButton,a.interactive,n.minimizeToggleButton),key:"minimize-toggle-button",onclick:this._toggleCollapsed,title:l,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:i}),p("span",{class:this.classes(n.buttonLabel)},e&&this.viewModel.isNormalMode?t.collapse:null)))}_renderFilterMenu(){return this.viewModel?.filterMenuOpen?"site"===this.viewModel?.filterMenuType?this._renderSiteFilterMenu():"facility"===this.viewModel?.filterMenuType?this._renderFacilityFilterMenu():null:null}_renderSiteFilterMenu(){const{messages:e,messagesCommon:t}=this,s=this.site?this.viewModel?.getSite(this.site)?.name:e.selector.selectSite,i=p("div",{class:this.classes(`${n.filterMenuHeader}`),key:"filter-menu-site-header"},p("div",{class:this.classes(n.filterMenuHeaderTextGroup)},p(c,{class:this.classes(n.filterMenuHeaderText),level:this.headingLevel},s)),p("button",{bind:this,class:this.classes(h.icon,h.close),onclick:this._closeClicked,title:t.close,type:"button"})),l=this._renderSearchInput(),o=this._renderSiteItems();return p("div",{class:this.classes(n.filterMenu),key:"filter-menu-site"},i,l,o)}_renderFacilityFilterMenu(){const{messages:e,messagesCommon:t,site:s}=this,i=this.viewModel?.getSite(s)?.name,l=this.facility&&this.viewModel?.getFacility(this.facility)?.name||e.selector.selectFacility,o=this.viewModel.hasMultipleSites?p("button",{bind:this,class:this.classes(n.filterMenuHeaderBack),onclick:this._backClicked,title:t.back,type:"button"},p("span",{class:this.classes(u(this.container)?h.right:h.left)})):null,r=this.viewModel.hasMultipleSites?p(c,{class:this.classes(n.filterMenuHeaderSubtext),level:d(this.headingLevel)},i):null,a=p("div",{class:this.classes(n.filterMenuHeader),key:"filter-menu-site-header"},o,p("div",{class:this.classes(n.filterMenuHeaderTextGroup)},p(c,{class:this.classes(n.filterMenuHeaderText),level:this.headingLevel},l),r),p("button",{bind:this,class:this.classes(h.icon,h.close),onclick:this._closeClicked,title:t.close,type:"button"})),v=this._renderSearchInput(),m=this._renderFacilityItems();return p("div",{class:this.classes(n.filterMenu),key:"filter-menu-facility"},a,v,m)}_renderSearchInput(){const{messagesCommon:e}=this;return p("div",{class:this.classes(n.filterMenuSearch),key:"filter-menu-search"},p("span",{class:this.classes(h.icon,h.search)}),p("input",{afterCreate:v,bind:this,class:this.classes(n.filterMenuSearchInput),"data-node-ref":"_searchInput",key:"filter-menu-search__input",oninput:this._onSearchChange,onpaste:this._onSearchChange,placeholder:e.search,value:this.viewModel.searchTerm??void 0}))}_renderBlueCircle(){return p("span",{class:this.classes(n.selectedItemCircle),key:"floor-filter__selected-item-circle"})}_renderSiteItems(){if(!this.viewModel?.filterFeatures?.sites?.sitesInfo)return null;const{messages:e}=this,t=this.viewModel.filterFeatures.sites.sitesInfo,s=this.viewModel.filterSites(t).map((e=>this._renderSiteItem(e))),i=0===s.length&&this.viewModel?.searchTerm&&p("div",{class:this.classes(a.empty)},e.noResults);return p("ul",{afterCreate:v,"aria-label":e.selector.sitesLabel,bind:this,class:this.classes(n.filterMenuItems),"data-id":"sites","data-node-ref":"_sitesListNode",key:"filter-menu-items--sites",onkeydown:this._handleListKeydown,tabIndex:-1},s,i)}_renderSiteItem(e){const{name:t,id:s}=e,i=`filter-menu-site--${s}`,l=this.site===s;return p("li",{key:i},p("button",{bind:this,class:this.classes(n.filterMenuSite),"data-id":s,"data-list-id":"sites",onclick:this._siteSelected,onfocus:this._onItemFocus,type:"button"},l?this._renderBlueCircle():null,p("span",{class:this.classes(l?n.filterMenuSelectedItem:n.filterMenuItemName)},t),p("span",{class:this.classes(u(this.container)?h.left:h.right)})))}_renderFacilityItems(){if(!this.viewModel?.filterFeatures?.facilities?.facilitiesInfo)return null;const{messages:e,site:t}=this,s=this.viewModel.getSite(t),i=this.viewModel.filterFeatures.facilities.facilitiesInfo,l=this.viewModel.filterFacilities(i).map((e=>this._renderFacilityItem(e))),o=0===l.length&&this.viewModel?.searchTerm&&p("div",{class:this.classes(a.empty)},e.noResults),r=s?M(e.selector.siteFacilitiesLabel,{name:`"${s.name}"`}):e.selector.facilitiesLabel;return p("ul",{afterCreate:v,"aria-label":r,bind:this,class:this.classes(n.filterMenuItems),"data-id":"facilities","data-node-ref":"_facilitiesListNode",key:"filter-menu-items--facilities",onkeydown:this._handleListKeydown,tabIndex:-1},l,o)}_renderFacilityItem(e){const{name:t,id:s}=e,i=`filter-menu-facility--${s}`,l=this.facility===s;return p("li",{key:i},p("button",{bind:this,class:this.classes(n.filterMenuFacility),"data-id":s,"data-list-id":"facilities",onclick:this._facilitySelected,onfocus:this._onItemFocus,type:"button"},l?this._renderBlueCircle():null,p("span",{class:this.classes(l?n.filterMenuSelectedItem:n.filterMenuItemName)},t)))}_afterBaseNodeCreate(e){this._baseNode&&this._resizeObserver?.unobserve(this._baseNode),this._baseNode=e,this._resizeObserver?.observe(this._baseNode)}_toggleCollapsed(){this.longNames=!this.longNames}_toggleFilterMenu(){const e=this.viewModel?.filterMenuOpen??!1;this.viewModel.filterMenuOpen=!e}_setFilterMenuType(e){this.viewModel.filterMenuType=e}_zoomToClicked(){if(this.site&&"site"===this.viewModel?.filterMenuType&&this.viewModel?.filterMenuOpen){const e=this.viewModel?.getSite(this.site);this.viewModel.goTo(e)}else if(this.facility){const e=this.viewModel?.getFacility(this.facility);this.viewModel.goTo(e)}else if(this.site){const e=this.viewModel?.getSite(this.site);this.viewModel.goTo(e)}}_onSearchChange(e){const t=e.target;""===t.value?this.viewModel.searchTerm=null:t.value&&this.viewModel?.searchTerm!==t.value&&(this.viewModel.searchTerm=t.value.toLowerCase().trim())}_closeClicked(){this.viewModel.searchTerm=null,this.viewModel.filterMenuOpen=!1}_backClicked(){this._setFilterMenuType("site"),this.viewModel.searchTerm=null}_siteSelected(e){const t=e.currentTarget.getAttribute("data-id"),s=this.viewModel.getSite(t);let i=!1;this.site!==t&&(this.facility=null,this.level=null,i=!0,this.viewModel.levelsExpanded=!1),this.site=t,this.viewModel.searchTerm=null,this._setFilterMenuType("facility"),this.viewModel.goTo(s),i&&this.viewModel.setFloors(null)}_facilitySelected(e){const t=e.currentTarget.getAttribute("data-id"),s=this.viewModel.getFacility(t);let i=!1;if(this.facility!==t){if("base-floors"===this.viewModel.filterMode){const e=this.viewModel?.getBaseLevel(s);this.level=e?e.id:null}else this.level=null;i=!0,this.viewModel.levelsExpanded=!1}if(this.facility=t,this.viewModel.goTo(s),i){const e=this.viewModel.getLevel(this.level);this.viewModel.setFloors(e)}if(!this.viewModel.isNormalMode){const e=this.viewModel.getFacilityLevels(t);e?.length>1&&(this.viewModel.levelsExpanded=!0)}setTimeout((()=>this._focusActiveLevel()),50)}_levelSelected(e){const t=e.currentTarget.getAttribute("data-id");this.level=t}_closeLevels(){this.viewModel.levelsExpanded=!1}_isWebScene(e){return"esri.WebScene"===e?.declaredClass}_getComponentPosition(){return null!=this.container?this.view?.ui?.getPosition(this.container):null}_getPosition(e){switch(e){case"bottom-right":case"bottom-left":return"bottom";default:return"top"}}_handleListKeydown(e){const s=e.currentTarget.getAttribute("data-id");let i=null;"sites"===s||"facilities"===s?(this._activeMenu!==s&&(this._activeMenuIndex.menuItems=-1),this._activeMenu=s,i="menuItems"):"levels"===s&&(i="levels");const l="sites"===s?this._sitesListNode:"facilities"===s?this._facilitiesListNode:"levels"===s?this._levelsListNode:null,o=t(e),n="Tab"===o,r=f.includes(o);r&&e.preventDefault();const a=l?.getElementsByTagName("li");a&&0!==a.length&&(r||n)&&this._handleItemNavigation(o,e.shiftKey,a,n,i)}_handleItemNavigation(e,t,s,i,l){if(!l)return;this._activeMenuIndex[l]===s.length&&this._activeMenuIndex[l]--,-1===this._activeMenuIndex[l]&&this._activeMenuIndex[l]++;const o=this._activeMenuIndex[l];switch(e){case"Home":this._activeMenuIndex[l]=0;break;case"End":this._activeMenuIndex[l]=s.length-1;break;case"ArrowUp":this._activeMenuIndex[l]=this._activeMenuIndex[l]<=0?s.length-1:this._activeMenuIndex[l]-1;break;case"ArrowDown":this._activeMenuIndex[l]=this._activeMenuIndex[l]===s.length-1?0:this._activeMenuIndex[l]+1}if("Tab"===e&&t&&this._activeMenuIndex[l]>=0&&this._activeMenuIndex[l]--,"Tab"===e&&!t&&this._activeMenuIndex[l]<s.length&&this._activeMenuIndex[l]++,o!==this._activeMenuIndex[l]&&this._activeMenuIndex[l]>-1&&this._activeMenuIndex[l]<s.length&&!i){const e=s[this._activeMenuIndex[l]].getElementsByTagName("button"),t=1===e?.length?e[0]:null;t?.focus()}}_focusSearch(){this._searchInput?.focus()}_focusActiveLevel(){const{level:e}=this,t=this._levelsListNode,s=t?.getElementsByTagName("li");if(!e||!t||!s)return;const i=this._facilitiesListNode?.getElementsByTagName("li");this._activeMenuIndex.menuItems=i?i.length-1:-1;const l=[];for(let o=0;o<s.length;o++){const e=s[o].getElementsByTagName("button");1===e?.length&&l.push(e[0])}l.forEach(((t,s)=>{t.getAttribute("data-id")===e&&(t.focus(),this._activeMenuIndex.levels=s)}))}_onItemFocus(e){const t=e.currentTarget,s=t.getAttribute("data-list-id"),i=t.getAttribute("data-id"),l="sites"===s?this._sitesListNode:"facilities"===s?this._facilitiesListNode:"levels"===s?this._levelsListNode:null;if(!l)return;const o=l?.getElementsByTagName("li");if(!o)return;const n=[];Array.from(o).forEach((e=>{const t=e.getElementsByTagName("button");1===t?.length&&n.push(t[0])}));let r=null;switch(s){case"sites":case"facilities":r="menuItems";break;case"levels":r="levels"}if(!r)return;const a=r;n.forEach(((e,t)=>{e.getAttribute("data-id")===i&&this._activeMenuIndex[a]!==t&&(this._activeMenuIndex[a]=t)}))}};e([i()],g.prototype,"_searchInput",void 0),e([i()],g.prototype,"enabled",null),e([i()],g.prototype,"longNames",null),e([i()],g.prototype,"minimized",null),e([i()],g.prototype,"pinnedLevels",null),e([i()],g.prototype,"site",null),e([i()],g.prototype,"facility",null),e([i()],g.prototype,"level",null),e([i()],g.prototype,"view",null),e([i({type:r})],g.prototype,"viewModel",void 0),e([i(),m("esri/widgets/FloorFilter/t9n/FloorFilter")],g.prototype,"messages",void 0),e([i(),m("esri/t9n/common")],g.prototype,"messagesCommon",void 0),e([i()],g.prototype,"goToOverride",null),e([i()],g.prototype,"headingLevel",void 0),g=e([l("esri.widgets.FloorFilter")],g);const _=g;export{_ as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as s}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import o from"./Fullscreen/FullscreenViewModel.js";import{globalCss as l}from"./support/globalCss.js";import{legacyIcon as i}from"./support/legacyIcon.js";import{accessibleHandler as n}from"./support/decorators/accessibleHandler.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import{tsx as p}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const c={base:"esri-fullscreen"};let d=class extends r{constructor(e,t){super(e,t),this.messages=null,this.viewModel=new o}get element(){return this.viewModel.element}set element(e){this.viewModel.element=e}get fullscreenTitle(){const e=this.viewModel?.state;return"active"===e?this.messages.exit:"ready"===e?this.messages.enter:""}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const e=this.viewModel?.state,{fullscreenTitle:t}=this,s={[l.disabled]:"disabled"===e||"feature-unsupported"===e};return p("div",{bind:this,class:this.classes(c.base,l.widget,l.widgetButton,s),role:"button",tabIndex:0,onclick:this._toggle,onkeydown:this._toggle,"aria-label":t,title:t},this._renderIcon(),this._renderTitle())}_renderIcon(){const e=this.viewModel?.state,t={[i.zoomOutFixed]:"ready"===e||"disabled"===e||"feature-unsupported"===e,[i.zoomInFixed]:"active"===e};return p("span",{class:this.classes(i.icon,t),"aria-hidden":"true"})}_renderTitle(){return p("span",{class:i.fontFallbackText},this.fullscreenTitle)}_toggle(){this.viewModel.toggle()}};e([t()],d.prototype,"element",null),e([t({readOnly:!0})],d.prototype,"fullscreenTitle",null),e([t()],d.prototype,"label",null),e([t(),a("esri/widgets/Fullscreen/t9n/Fullscreen")],d.prototype,"messages",void 0),e([t()],d.prototype,"view",null),e([t({type:o})],d.prototype,"viewModel",void 0),e([n()],d.prototype,"_toggle",null),d=e([s("esri.widgets.Fullscreen")],d);const u=d;export{u as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as s}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import o from"./Fullscreen/FullscreenViewModel.js";import{globalCss as l}from"./support/globalCss.js";import{legacyIcon as i}from"./support/legacyIcon.js";import{accessibleHandler as n}from"./support/decorators/accessibleHandler.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import{tsx as p}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const c={base:"esri-fullscreen"};let d=class extends r{constructor(e,t){super(e,t),this.messages=null,this.viewModel=new o}get element(){return this.viewModel.element}set element(e){this.viewModel.element=e}get fullscreenTitle(){const e=this.viewModel?.state;return"active"===e?this.messages.exit:"ready"===e?this.messages.enter:""}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const e=this.viewModel?.state,{fullscreenTitle:t}=this,s={[l.disabled]:"disabled"===e||"feature-unsupported"===e};return p("div",{"aria-label":t,bind:this,class:this.classes(c.base,l.widget,l.widgetButton,s),onclick:this._toggle,onkeydown:this._toggle,role:"button",tabIndex:0,title:t},this._renderIcon(),this._renderTitle())}_renderIcon(){const e=this.viewModel?.state,t={[i.zoomOutFixed]:"ready"===e||"disabled"===e||"feature-unsupported"===e,[i.zoomInFixed]:"active"===e};return p("span",{"aria-hidden":"true",class:this.classes(i.icon,t)})}_renderTitle(){return p("span",{class:i.fontFallbackText},this.fullscreenTitle)}_toggle(){this.viewModel.toggle()}};e([t()],d.prototype,"element",null),e([t({readOnly:!0})],d.prototype,"fullscreenTitle",null),e([t()],d.prototype,"label",null),e([t(),a("esri/widgets/Fullscreen/t9n/Fullscreen")],d.prototype,"messages",void 0),e([t()],d.prototype,"view",null),e([t({type:o})],d.prototype,"viewModel",void 0),e([n()],d.prototype,"_toggle",null),d=e([s("esri.widgets.Fullscreen")],d);const u=d;export{u as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import s from"./Histogram/HistogramViewModel.js";import{globalCss as a}from"./support/globalCss.js";import{legacyIcon as n}from"./support/legacyIcon.js";import{onResize as o}from"./support/widgetUtils.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import{tsx as d}from"./support/jsxFactory.js";import{substitute as u}from"../intl/substitute.js";var h;const c="esri-histogram",p={base:c,widgetIcon:n.edit,horizontalLayout:`${c}--horizontal`,verticalLayout:`${c}--vertical`,content:`${c}__content`,svg:`${c}__svg`,bar:`${c}__bar`,bars:`${c}__bars`,label:`${c}__label`,dataLines:`${c}__data-lines`,dataLinesSubgroup:`${c}__data-lines-subgroup`,dataLine:`${c}__data-line`,averageLabel:`${c}__average-label`,averageDataLine:`${c}__average-data-line`,averageSymbol:`${c}__average-symbol`};let g=h=class extends r{constructor(e,t){super(e,t),this._bgFillId=`${this.id}-bg-fill`,this._containerNode=null,this._containerDimensions={width:0,height:0},this._defaultBarColor="#d8d8d8",this.barCreatedFunction=null,this.dataLines=null,this.dataLineCreatedFunction=null,this.dataLineUpdatedFunction=null,this.messages=null,this.viewModel=new s}get average(){return this.viewModel.average}set average(e){this.viewModel.average=e}get bins(){return this.viewModel.bins}set bins(e){this.viewModel.bins=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelFormatFunction(){return this.viewModel.labelFormatFunction}set labelFormatFunction(e){this.viewModel.labelFormatFunction=e}set layout(e){"vertical"!==e&&(e="horizontal"),this._set("layout",e)}get max(){return this.viewModel.max}set max(e){this.viewModel.max=e}get min(){return this.viewModel.min}set min(e){this.viewModel.min=e}get state(){return this.viewModel.state}static fromHistogramResult(e){const{bins:t,maxValue:i,minValue:r}=e;return new h({bins:t,max:i,min:r})}render(){const{label:e,layout:t,state:i}=this,r=this.classes(p.base,a.widget,"horizontal"===t?p.horizontalLayout:p.verticalLayout,"disabled"===i?a.disabled:null);return d("div",{"aria-label":e,class:r,bind:this,afterCreate:this._afterContainerNodeCreate},"ready"===i?this._renderContent():null)}_renderContent(){if(!this._containerNode)return;const e=this._bgFillId,t=`clip-path: url(#${e})`;return d("div",{class:p.content},d("svg",{class:p.svg,xmlns:"http://www.w3.org/2000/svg"},d("defs",null,this._renderFillDefinition(e)),d("g",{style:t},this._renderBarsGroup()),this._renderLinesGroup()))}_renderBarsGroup(){return d("g",{class:this.classes(p.bars)},this._renderBars())}_renderBars(){const{layout:e,viewModel:{binRange:t,range:i}}=this;if(!t||!i)return;const r=t/i,{width:s,height:a}=this._containerDimensions;if(0===a&&0===s)return;if(0===a&&0!==s)return void this.scheduleRender();const[n,o]="vertical"===e?[a*r,s]:[a,s*r];return this._getBarDimensions(n,o).map((([e,t],i)=>this._renderBar(i,e,t)))}_renderBar(e,t,i){const{bins:r,layout:s,max:a,messages:n,viewModel:{range:o}}=this;if(!r||null==a)return;const{width:l,height:h}=this._containerDimensions,c=r.slice()[e],{count:g,maxValue:m,minValue:_}=c,b=a-m,[v,L]="vertical"===s?[0,b*(h/o)]:[l-i-b*(l/o),h-t],f=u(n.barLabel,{count:g,maxValue:m,minValue:_});return d("rect",{"aria-label":f,afterCreate:this._afterBarCreate,bind:this,class:p.bar,"data-index":e,fill:this._defaultBarColor,height:t,role:"img","shape-rendering":"crispEdges","stroke-width":"0",width:i,x:v,y:L})}_renderLinesGroup(){return d("g",{class:this.classes(p.dataLines)},this._renderAverageLine(),this._renderCustomLines())}_renderAverageLine(){const{average:e}=this;if(null==e)return;const t=[d("tspan",{class:this.classes(p.averageSymbol)},"x̄ "),d("tspan",{class:this.classes(p.averageLabel)},this.labelFormatFunction?this.labelFormatFunction(e,"average"):e)];return d("g",{afterCreate:this._afterLinesSubgroupCreate,afterUpdate:this._afterLinesSubgroupUpdate,bind:this,class:this.classes(p.dataLinesSubgroup)},d("title",{key:"title"},e),this._renderLine(e,this.classes(p.averageDataLine)),this._renderLabel({label:t,value:e}))}_renderCustomLines(){if(this.dataLines&&this.dataLines.length)return this.dataLines.map(((e,t)=>this._renderLineSubgroup(e,t)))}_renderLineSubgroup(e,t){const{value:i}=e;return d("g",{afterCreate:this._afterLinesSubgroupCreate,afterUpdate:this._afterLinesSubgroupUpdate,bind:this,class:this.classes(p.dataLinesSubgroup),"data-index":t},d("title",{key:"title"},i),this._renderLine(i),this._renderLabel(e))}_renderLine(e,t){const[i,r,s,a]=this._getLinePosition(e);return d("line",{class:this.classes(p.dataLine,t),x1:i,x2:r,y1:s,y2:a,"shape-rendering":"crispEdges"})}_renderLabel(e,t){const{label:i,value:r}=e,[s,a]=this._getLabelPosition(r),n=2;return d("text",{class:this.classes(p.label,t),"text-anchor":"end",transform:"horizontal"===this.layout?"rotate(270)":null,x:s,y:a-n},i??"")}_renderFillDefinition(e){const{width:t,height:i}=this._containerDimensions;return d("clipPath",{id:e},d("rect",{x:"0",y:"0",width:t,height:i}))}_afterContainerNodeCreate(e){this._containerNode=e,this.addHandles(o(e,(e=>{const{width:t,height:i}=e.contentRect;this._containerDimensions={width:t,height:i}})))}_getIndexFromElement(e){const t=e.dataset?.index,i=e.getAttribute("data-index");return null!=t?parseInt(t,10):null!=i?parseInt(i,10):null}_afterBarCreate(e){if(this.barCreatedFunction){const t=this._getIndexFromElement(e)??-1;this.barCreatedFunction(t,e)}}_afterLinesSubgroupCreate(e){if(this.dataLineCreatedFunction){const t=this._getIndexFromElement(e),i=e.childNodes[1],r=e.childNodes[2]?e.childNodes[2]:null;this.dataLineCreatedFunction(i,r,t)}}_afterLinesSubgroupUpdate(e){if(this.dataLineUpdatedFunction){const t=this._getIndexFromElement(e),i=e.childNodes[1],r=e.childNodes[2]?e.childNodes[2]:null;this.dataLineUpdatedFunction(i,r,t)}}_getBarDimensions(e,t){const{bins:i,layout:r}=this,s=i?i.map((e=>e.count)):[],a=Math.max.apply(Math,s);return s.map((i=>"vertical"===r?[e/s.length,0!==a?i/a*t:0]:[0!==a?i/a*e:0,t/s.length]))}_getLinePosition(e){const{layout:t,min:i,viewModel:{range:r}}=this;if(null==i)return[0,0,0,0];const s=Math.round((e-i)/r*100)/100,{width:a,height:n}=this._containerDimensions,[o,l]=[s*a||1,n-s*n||1];return"vertical"===t?[0,"100%",l,l]:[o,o,"100%",0]}_getLabelPosition(e){const{layout:t,min:i,viewModel:{range:r}}=this;if(null==i)return[0,0];const s=Math.round((e-i)/r*100)/100,{width:a,height:n}=this._containerDimensions;return"vertical"===t?[a,n-s*n]:[0,s*a]}};e([t()],g.prototype,"_bgFillId",void 0),e([t()],g.prototype,"_containerNode",void 0),e([t()],g.prototype,"_containerDimensions",void 0),e([t()],g.prototype,"_defaultBarColor",void 0),e([t()],g.prototype,"average",null),e([t()],g.prototype,"barCreatedFunction",void 0),e([t()],g.prototype,"dataLines",void 0),e([t()],g.prototype,"dataLineCreatedFunction",void 0),e([t()],g.prototype,"dataLineUpdatedFunction",void 0),e([t()],g.prototype,"label",null),e([t()],g.prototype,"labelFormatFunction",null),e([t({value:"horizontal"})],g.prototype,"layout",null),e([t()],g.prototype,"max",null),e([t(),l("esri/widgets/Histogram/t9n/Histogram")],g.prototype,"messages",void 0),e([t()],g.prototype,"min",null),e([t({readOnly:!0})],g.prototype,"state",null),e([t()],g.prototype,"viewModel",void 0),g=h=e([i("esri.widgets.Histogram")],g);const m=g;export{m as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import s from"./Histogram/HistogramViewModel.js";import{globalCss as a}from"./support/globalCss.js";import{legacyIcon as n}from"./support/legacyIcon.js";import{onResize as o}from"./support/widgetUtils.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import{tsx as d}from"./support/jsxFactory.js";import{substitute as u}from"../intl/substitute.js";var h;const c="esri-histogram",p={base:c,widgetIcon:n.edit,horizontalLayout:`${c}--horizontal`,verticalLayout:`${c}--vertical`,content:`${c}__content`,svg:`${c}__svg`,bar:`${c}__bar`,bars:`${c}__bars`,label:`${c}__label`,dataLines:`${c}__data-lines`,dataLinesSubgroup:`${c}__data-lines-subgroup`,dataLine:`${c}__data-line`,averageLabel:`${c}__average-label`,averageDataLine:`${c}__average-data-line`,averageSymbol:`${c}__average-symbol`};let g=h=class extends r{constructor(e,t){super(e,t),this._bgFillId=`${this.id}-bg-fill`,this._containerNode=null,this._containerDimensions={width:0,height:0},this._defaultBarColor="#d8d8d8",this.barCreatedFunction=null,this.dataLines=null,this.dataLineCreatedFunction=null,this.dataLineUpdatedFunction=null,this.messages=null,this.viewModel=new s}get average(){return this.viewModel.average}set average(e){this.viewModel.average=e}get bins(){return this.viewModel.bins}set bins(e){this.viewModel.bins=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelFormatFunction(){return this.viewModel.labelFormatFunction}set labelFormatFunction(e){this.viewModel.labelFormatFunction=e}set layout(e){"vertical"!==e&&(e="horizontal"),this._set("layout",e)}get max(){return this.viewModel.max}set max(e){this.viewModel.max=e}get min(){return this.viewModel.min}set min(e){this.viewModel.min=e}get state(){return this.viewModel.state}static fromHistogramResult(e){const{bins:t,maxValue:i,minValue:r}=e;return new h({bins:t,max:i,min:r})}render(){const{label:e,layout:t,state:i}=this,r=this.classes(p.base,a.widget,"horizontal"===t?p.horizontalLayout:p.verticalLayout,"disabled"===i?a.disabled:null);return d("div",{afterCreate:this._afterContainerNodeCreate,"aria-label":e,bind:this,class:r},"ready"===i?this._renderContent():null)}_renderContent(){if(!this._containerNode)return;const e=this._bgFillId,t=`clip-path: url(#${e})`;return d("div",{class:p.content},d("svg",{class:p.svg,xmlns:"http://www.w3.org/2000/svg"},d("defs",null,this._renderFillDefinition(e)),d("g",{style:t},this._renderBarsGroup()),this._renderLinesGroup()))}_renderBarsGroup(){return d("g",{class:this.classes(p.bars)},this._renderBars())}_renderBars(){const{layout:e,viewModel:{binRange:t,range:i}}=this;if(!t||!i)return;const r=t/i,{width:s,height:a}=this._containerDimensions;if(0===a&&0===s)return;if(0===a&&0!==s)return void this.scheduleRender();const[n,o]="vertical"===e?[a*r,s]:[a,s*r];return this._getBarDimensions(n,o).map((([e,t],i)=>this._renderBar(i,e,t)))}_renderBar(e,t,i){const{bins:r,layout:s,max:a,messages:n,viewModel:{range:o}}=this;if(!r||null==a)return;const{width:l,height:h}=this._containerDimensions,c=r.slice()[e],{count:g,maxValue:m,minValue:_}=c,b=a-m,[v,L]="vertical"===s?[0,b*(h/o)]:[l-i-b*(l/o),h-t],f=u(n.barLabel,{count:g,maxValue:m,minValue:_});return d("rect",{afterCreate:this._afterBarCreate,"aria-label":f,bind:this,class:p.bar,"data-index":e,fill:this._defaultBarColor,height:t,role:"img","shape-rendering":"crispEdges","stroke-width":"0",width:i,x:v,y:L})}_renderLinesGroup(){return d("g",{class:this.classes(p.dataLines)},this._renderAverageLine(),this._renderCustomLines())}_renderAverageLine(){const{average:e}=this;if(null==e)return;const t=[d("tspan",{class:this.classes(p.averageSymbol)},"x̄ "),d("tspan",{class:this.classes(p.averageLabel)},this.labelFormatFunction?this.labelFormatFunction(e,"average"):e)];return d("g",{afterCreate:this._afterLinesSubgroupCreate,afterUpdate:this._afterLinesSubgroupUpdate,bind:this,class:this.classes(p.dataLinesSubgroup)},d("title",{key:"title"},e),this._renderLine(e,this.classes(p.averageDataLine)),this._renderLabel({label:t,value:e}))}_renderCustomLines(){if(this.dataLines&&this.dataLines.length)return this.dataLines.map(((e,t)=>this._renderLineSubgroup(e,t)))}_renderLineSubgroup(e,t){const{value:i}=e;return d("g",{afterCreate:this._afterLinesSubgroupCreate,afterUpdate:this._afterLinesSubgroupUpdate,bind:this,class:this.classes(p.dataLinesSubgroup),"data-index":t},d("title",{key:"title"},i),this._renderLine(i),this._renderLabel(e))}_renderLine(e,t){const[i,r,s,a]=this._getLinePosition(e);return d("line",{class:this.classes(p.dataLine,t),"shape-rendering":"crispEdges",x1:i,x2:r,y1:s,y2:a})}_renderLabel(e,t){const{label:i,value:r}=e,[s,a]=this._getLabelPosition(r),n=2;return d("text",{class:this.classes(p.label,t),"text-anchor":"end",transform:"horizontal"===this.layout?"rotate(270)":null,x:s,y:a-n},i??"")}_renderFillDefinition(e){const{width:t,height:i}=this._containerDimensions;return d("clipPath",{id:e},d("rect",{height:i,width:t,x:"0",y:"0"}))}_afterContainerNodeCreate(e){this._containerNode=e,this.addHandles(o(e,(e=>{const{width:t,height:i}=e.contentRect;this._containerDimensions={width:t,height:i}})))}_getIndexFromElement(e){const t=e.dataset?.index,i=e.getAttribute("data-index");return null!=t?parseInt(t,10):null!=i?parseInt(i,10):null}_afterBarCreate(e){if(this.barCreatedFunction){const t=this._getIndexFromElement(e)??-1;this.barCreatedFunction(t,e)}}_afterLinesSubgroupCreate(e){if(this.dataLineCreatedFunction){const t=this._getIndexFromElement(e),i=e.childNodes[1],r=e.childNodes[2]?e.childNodes[2]:null;this.dataLineCreatedFunction(i,r,t)}}_afterLinesSubgroupUpdate(e){if(this.dataLineUpdatedFunction){const t=this._getIndexFromElement(e),i=e.childNodes[1],r=e.childNodes[2]?e.childNodes[2]:null;this.dataLineUpdatedFunction(i,r,t)}}_getBarDimensions(e,t){const{bins:i,layout:r}=this,s=i?i.map((e=>e.count)):[],a=Math.max.apply(Math,s);return s.map((i=>"vertical"===r?[e/s.length,0!==a?i/a*t:0]:[0!==a?i/a*e:0,t/s.length]))}_getLinePosition(e){const{layout:t,min:i,viewModel:{range:r}}=this;if(null==i)return[0,0,0,0];const s=Math.round((e-i)/r*100)/100,{width:a,height:n}=this._containerDimensions,[o,l]=[s*a||1,n-s*n||1];return"vertical"===t?[0,"100%",l,l]:[o,o,"100%",0]}_getLabelPosition(e){const{layout:t,min:i,viewModel:{range:r}}=this;if(null==i)return[0,0];const s=Math.round((e-i)/r*100)/100,{width:a,height:n}=this._containerDimensions;return"vertical"===t?[a,n-s*n]:[0,s*a]}};e([t()],g.prototype,"_bgFillId",void 0),e([t()],g.prototype,"_containerNode",void 0),e([t()],g.prototype,"_containerDimensions",void 0),e([t()],g.prototype,"_defaultBarColor",void 0),e([t()],g.prototype,"average",null),e([t()],g.prototype,"barCreatedFunction",void 0),e([t()],g.prototype,"dataLines",void 0),e([t()],g.prototype,"dataLineCreatedFunction",void 0),e([t()],g.prototype,"dataLineUpdatedFunction",void 0),e([t()],g.prototype,"label",null),e([t()],g.prototype,"labelFormatFunction",null),e([t({value:"horizontal"})],g.prototype,"layout",null),e([t()],g.prototype,"max",null),e([t(),l("esri/widgets/Histogram/t9n/Histogram")],g.prototype,"messages",void 0),e([t()],g.prototype,"min",null),e([t({readOnly:!0})],g.prototype,"state",null),e([t()],g.prototype,"viewModel",void 0),g=h=e([i("esri.widgets.Histogram")],g);const m=g;export{m as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import t from"../Color.js";import{watch as i}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{Integer as s}from"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import o from"./Histogram.js";import n from"./Slider.js";import l from"./Widget.js";import d from"./HistogramRangeSlider/HistogramRangeSliderViewModel.js";import{getDeviationValues as h}from"./smartMapping/support/utils.js";import{globalCss as u}from"./support/globalCss.js";import{legacyIcon as p}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as g}from"./support/jsxFactory.js";const c="esri-histogram-range-slider",v={base:c,widgetIcon:p.edit,sliderContainer:`${c}__slider-container`,histogramContainer:`${c}__histogram-container`,rangeTypePrefix:`${c}__range-type--`};let b=class extends l{constructor(e,i){super(e,i),this._barElements=[],this._histogram=null,this._slider=null,this.barCreatedFunction=null,this.dataLines=null,this.dataLineCreatedFunction=null,this.excludedBarColor=new t("#d7e5f0"),this.includedBarColor=new t("#599dd4"),this.messages=null,this.standardDeviationCount=1,this.viewModel=new d}initialize(){const{average:e,bins:t,hasTimeData:r,max:s,min:a,viewModel:l}=this;this._updateBarFill=this._updateBarFill.bind(this),this._histogram=new o({average:e,bins:t,barCreatedFunction:(e,t)=>{0===e&&(this._barElements=[]),this._barElements.push(t),this._updateBarFill(e,t),this.barCreatedFunction&&this.barCreatedFunction(e,t)},dataLines:this._getDataLines(),dataLineCreatedFunction:(e,t)=>{this.dataLineCreatedFunction&&this.dataLineCreatedFunction(e,t)},labelFormatFunction:this.labelFormatFunction,layout:"horizontal",max:s,min:a}),this._slider=new n({labelFormatFunction:this.labelFormatFunction,layout:"horizontal",visibleElements:{labels:!0,rangeLabels:!0},rangeLabelInputsEnabled:!r,viewModel:l}),this.addHandles([this._slider.on(["max-change","min-change"],(e=>this.emit(e.type,e))),this._slider.on(["segment-drag","thumb-change","thumb-drag"],(e=>{this._updateBarFills(),this.emit(e.type,e)})),i((()=>this.bins),(e=>{if(e&&this._histogram.bins){const t=this._histogram.bins.length-e.length;this._barElements.splice(-t,t)}else this._barElements=[];this._histogram.set({bins:e}),this._updateBarFills(),this.scheduleRender()})),i((()=>[this.max,this.min,this.rangeType,this.values]),(([e,t])=>{this._histogram.set({max:e,min:t}),this._updateBarFills(),this.scheduleRender()})),i((()=>[this.average,this.dataLines,this.standardDeviation,this.standardDeviationCount]),(([e])=>{this._histogram.set({average:e,dataLines:this._getDataLines()})})),i((()=>this.labelFormatFunction),(e=>{this._histogram.set({labelFormatFunction:e})})),i((()=>this.hasTimeData),(e=>{this._slider.set({rangeLabelInputsEnabled:!e})}))])}get average(){return this.viewModel.average}set average(e){this.viewModel.average=e}get bins(){return this.viewModel.bins}set bins(e){this.viewModel.bins=e}get hasTimeData(){return this.viewModel.hasTimeData}set hasTimeData(e){this.viewModel.hasTimeData=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelFormatFunction(){return this.viewModel.labelFormatFunction}set labelFormatFunction(e){this.viewModel.labelFormatFunction=e}get max(){return this.viewModel.max}set max(e){this.viewModel.max=e}get min(){return this.viewModel.min}set min(e){this.viewModel.min=e}get precision(){return this.viewModel.precision}set precision(e){this.viewModel.precision=e}get rangeType(){return this.viewModel.rangeType}set rangeType(e){this.viewModel.rangeType=e}get standardDeviation(){return this.viewModel.standardDeviation}set standardDeviation(e){this.viewModel.standardDeviation=e}get values(){return this.viewModel.values}set values(e){this.viewModel.values=e}generateWhereClause(e){return this.viewModel.generateWhereClause(e)}render(){const{rangeType:e,viewModel:t,label:i}=this,r=this.classes(v.base,u.widget,`${v.rangeTypePrefix}${e}`,"disabled"===t.state?u.disabled:null);return g("div",{"aria-label":i,class:r},"disabled"===t.state?null:this._renderContent())}_renderContent(){return[this._renderHistogram(),this._renderSlider()]}_renderSlider(){return g("div",{key:`${this.id}-slider-container`,class:v.sliderContainer},this._slider.render())}_renderHistogram(){return g("div",{class:v.histogramContainer},this._histogram.render())}_getDataLines(){return[...this._getStandardDeviationDataLines(),...this.dataLines||[]]}_getStandardDeviationDataLines(){const{average:e,standardDeviation:t,standardDeviationCount:i}=this;return h(t,e,i).map((e=>({value:e})))}_updateBarFills(){this._barElements.forEach(((e,t)=>this._updateBarFill(t,e)))}_updateBarFill(e,t){t.setAttribute("fill",this._getFillForBar(e)?.toHex()??"")}_getFillForBar(e){const{bins:t,rangeType:i,values:r}=this;if(-1===e||!t?.length||!i||!r?.length)return null;const s=t[e];if(!s)return null;const{maxValue:a,minValue:o}=s,n=a-o,l=r[0]>o&&r[0]<a;switch(i){case"equal":case"not-equal":return this.includedBarColor;case"less-than":case"at-most":return l?this._getBlendedColor((r[0]-o)/n):a<=r[0]?this.includedBarColor:this.excludedBarColor;case"greater-than":case"at-least":return l?this._getBlendedColor(1-(r[0]-o)/n):o>=r[0]?this.includedBarColor:this.excludedBarColor;case"between":if(2===r.length)return r[0]>o&&r[0]<a?this._getBlendedColor(1-(r[0]-o)/n):r[1]>o&&r[1]<a?this._getBlendedColor((r[1]-o)/n):o>=r[0]&&a<=r[1]?this.includedBarColor:this.excludedBarColor;break;case"not-between":if(2===r.length)return r[0]>o&&r[0]<a?this._getBlendedColor((r[0]-o)/n):r[1]>o&&r[1]<a?this._getBlendedColor(1-(r[1]-o)/n):o>r[0]&&a<r[1]?this.excludedBarColor:this.includedBarColor}return this.includedBarColor}_getBlendedColor(e){return t.blendColors(this.excludedBarColor,this.includedBarColor,e)}};e([r()],b.prototype,"average",null),e([r()],b.prototype,"barCreatedFunction",void 0),e([r()],b.prototype,"bins",null),e([r()],b.prototype,"dataLines",void 0),e([r()],b.prototype,"dataLineCreatedFunction",void 0),e([r({type:t,json:{type:[s],write:!0}})],b.prototype,"excludedBarColor",void 0),e([r()],b.prototype,"hasTimeData",null),e([r({type:t,json:{type:[s],write:!0}})],b.prototype,"includedBarColor",void 0),e([r()],b.prototype,"label",null),e([r()],b.prototype,"labelFormatFunction",null),e([r()],b.prototype,"max",null),e([r(),m("esri/widgets/HistogramRangeSlider/t9n/HistogramRangeSlider")],b.prototype,"messages",void 0),e([r()],b.prototype,"min",null),e([r()],b.prototype,"precision",null),e([r()],b.prototype,"rangeType",null),e([r()],b.prototype,"standardDeviation",null),e([r()],b.prototype,"standardDeviationCount",void 0),e([r()],b.prototype,"values",null),e([r()],b.prototype,"viewModel",void 0),b=e([a("esri.widgets.HistogramRangeSlider")],b);const _=b;export{_ as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"../Color.js";import{watch as i}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{Integer as s}from"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import o from"./Histogram.js";import n from"./Slider.js";import l from"./Widget.js";import d from"./HistogramRangeSlider/HistogramRangeSliderViewModel.js";import{getDeviationValues as h}from"./smartMapping/support/utils.js";import{globalCss as u}from"./support/globalCss.js";import{legacyIcon as p}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as g}from"./support/jsxFactory.js";const c="esri-histogram-range-slider",v={base:c,widgetIcon:p.edit,sliderContainer:`${c}__slider-container`,histogramContainer:`${c}__histogram-container`,rangeTypePrefix:`${c}__range-type--`};let b=class extends l{constructor(e,i){super(e,i),this._barElements=[],this._histogram=null,this._slider=null,this.barCreatedFunction=null,this.dataLines=null,this.dataLineCreatedFunction=null,this.excludedBarColor=new t("#d7e5f0"),this.includedBarColor=new t("#599dd4"),this.messages=null,this.standardDeviationCount=1,this.viewModel=new d}initialize(){const{average:e,bins:t,hasTimeData:r,max:s,min:a,viewModel:l}=this;this._updateBarFill=this._updateBarFill.bind(this),this._histogram=new o({average:e,bins:t,barCreatedFunction:(e,t)=>{0===e&&(this._barElements=[]),this._barElements.push(t),this._updateBarFill(e,t),this.barCreatedFunction&&this.barCreatedFunction(e,t)},dataLines:this._getDataLines(),dataLineCreatedFunction:(e,t)=>{this.dataLineCreatedFunction&&this.dataLineCreatedFunction(e,t)},labelFormatFunction:this.labelFormatFunction,layout:"horizontal",max:s,min:a}),this._slider=new n({labelFormatFunction:this.labelFormatFunction,layout:"horizontal",visibleElements:{labels:!0,rangeLabels:!0},rangeLabelInputsEnabled:!r,viewModel:l}),this.addHandles([this._slider.on(["max-change","min-change"],(e=>this.emit(e.type,e))),this._slider.on(["segment-drag","thumb-change","thumb-drag"],(e=>{this._updateBarFills(),this.emit(e.type,e)})),i((()=>this.bins),(e=>{if(e&&this._histogram.bins){const t=this._histogram.bins.length-e.length;this._barElements.splice(-t,t)}else this._barElements=[];this._histogram.set({bins:e}),this._updateBarFills(),this.scheduleRender()})),i((()=>[this.max,this.min,this.rangeType,this.values]),(([e,t])=>{this._histogram.set({max:e,min:t}),this._updateBarFills(),this.scheduleRender()})),i((()=>[this.average,this.dataLines,this.standardDeviation,this.standardDeviationCount]),(([e])=>{this._histogram.set({average:e,dataLines:this._getDataLines()})})),i((()=>this.labelFormatFunction),(e=>{this._histogram.set({labelFormatFunction:e})})),i((()=>this.hasTimeData),(e=>{this._slider.set({rangeLabelInputsEnabled:!e})}))])}get average(){return this.viewModel.average}set average(e){this.viewModel.average=e}get bins(){return this.viewModel.bins}set bins(e){this.viewModel.bins=e}get hasTimeData(){return this.viewModel.hasTimeData}set hasTimeData(e){this.viewModel.hasTimeData=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelFormatFunction(){return this.viewModel.labelFormatFunction}set labelFormatFunction(e){this.viewModel.labelFormatFunction=e}get max(){return this.viewModel.max}set max(e){this.viewModel.max=e}get min(){return this.viewModel.min}set min(e){this.viewModel.min=e}get precision(){return this.viewModel.precision}set precision(e){this.viewModel.precision=e}get rangeType(){return this.viewModel.rangeType}set rangeType(e){this.viewModel.rangeType=e}get standardDeviation(){return this.viewModel.standardDeviation}set standardDeviation(e){this.viewModel.standardDeviation=e}get values(){return this.viewModel.values}set values(e){this.viewModel.values=e}generateWhereClause(e){return this.viewModel.generateWhereClause(e)}render(){const{rangeType:e,viewModel:t,label:i}=this,r=this.classes(v.base,u.widget,`${v.rangeTypePrefix}${e}`,"disabled"===t.state?u.disabled:null);return g("div",{"aria-label":i,class:r},"disabled"===t.state?null:this._renderContent())}_renderContent(){return[this._renderHistogram(),this._renderSlider()]}_renderSlider(){return g("div",{class:v.sliderContainer,key:`${this.id}-slider-container`},this._slider.render())}_renderHistogram(){return g("div",{class:v.histogramContainer},this._histogram.render())}_getDataLines(){return[...this._getStandardDeviationDataLines(),...this.dataLines||[]]}_getStandardDeviationDataLines(){const{average:e,standardDeviation:t,standardDeviationCount:i}=this;return h(t,e,i).map((e=>({value:e})))}_updateBarFills(){this._barElements.forEach(((e,t)=>this._updateBarFill(t,e)))}_updateBarFill(e,t){t.setAttribute("fill",this._getFillForBar(e)?.toHex()??"")}_getFillForBar(e){const{bins:t,rangeType:i,values:r}=this;if(-1===e||!t?.length||!i||!r?.length)return null;const s=t[e];if(!s)return null;const{maxValue:a,minValue:o}=s,n=a-o,l=r[0]>o&&r[0]<a;switch(i){case"equal":case"not-equal":return this.includedBarColor;case"less-than":case"at-most":return l?this._getBlendedColor((r[0]-o)/n):a<=r[0]?this.includedBarColor:this.excludedBarColor;case"greater-than":case"at-least":return l?this._getBlendedColor(1-(r[0]-o)/n):o>=r[0]?this.includedBarColor:this.excludedBarColor;case"between":if(2===r.length)return r[0]>o&&r[0]<a?this._getBlendedColor(1-(r[0]-o)/n):r[1]>o&&r[1]<a?this._getBlendedColor((r[1]-o)/n):o>=r[0]&&a<=r[1]?this.includedBarColor:this.excludedBarColor;break;case"not-between":if(2===r.length)return r[0]>o&&r[0]<a?this._getBlendedColor((r[0]-o)/n):r[1]>o&&r[1]<a?this._getBlendedColor(1-(r[1]-o)/n):o>r[0]&&a<r[1]?this.excludedBarColor:this.includedBarColor}return this.includedBarColor}_getBlendedColor(e){return t.blendColors(this.excludedBarColor,this.includedBarColor,e)}};e([r()],b.prototype,"average",null),e([r()],b.prototype,"barCreatedFunction",void 0),e([r()],b.prototype,"bins",null),e([r()],b.prototype,"dataLines",void 0),e([r()],b.prototype,"dataLineCreatedFunction",void 0),e([r({type:t,json:{type:[s],write:!0}})],b.prototype,"excludedBarColor",void 0),e([r()],b.prototype,"hasTimeData",null),e([r({type:t,json:{type:[s],write:!0}})],b.prototype,"includedBarColor",void 0),e([r()],b.prototype,"label",null),e([r()],b.prototype,"labelFormatFunction",null),e([r()],b.prototype,"max",null),e([r(),m("esri/widgets/HistogramRangeSlider/t9n/HistogramRangeSlider")],b.prototype,"messages",void 0),e([r()],b.prototype,"min",null),e([r()],b.prototype,"precision",null),e([r()],b.prototype,"rangeType",null),e([r()],b.prototype,"standardDeviation",null),e([r()],b.prototype,"standardDeviationCount",void 0),e([r()],b.prototype,"values",null),e([r()],b.prototype,"viewModel",void 0),b=e([a("esri.widgets.HistogramRangeSlider")],b);const _=b;export{_ as default};
package/widgets/Home.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as t}from"../core/accessorSupport/decorators/subclass.js";import s from"./Widget.js";import i from"./Home/HomeViewModel.js";import{loadCalciteComponents as r}from"./support/componentsUtils.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as c}from"./support/legacyIcon.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import{vmEvent as p}from"./support/decorators/vmEvent.js";import{tsx as d}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const m={base:"esri-home",widgetIcon:c.home},g="home";let u=class extends s{constructor(e,o){super(e,o),this.iconClass=m.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.uiStrings=void 0,this.viewModel=new i}loadDependencies(){return r({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js")})}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get viewpoint(){return this.viewModel.viewpoint}set viewpoint(e){this.viewModel.viewpoint=e}cancelGo(){this.viewModel.cancelGo()}go(){return this.viewModel.go()}render(){const e=this.viewModel?.state,{messagesCommon:o,messages:t}=this,s={[n.disabled]:"disabled"===e};return d("div",{bind:this,class:this.classes(m.base,n.widget,n.widgetButton,s),role:"button",tabIndex:0,onclick:this._go,onkeydown:this._go,"aria-label":t.widgetLabel,title:"going-home"===e?o.cancel:t.title},this._renderIcon())}_renderIcon(){const{icon:e,iconClass:o,viewModel:t}=this;return"going-home"===t?.state?d("calcite-loader",{key:"loader",type:"indeterminate",inline:!0,scale:"s",label:""}):e?this._renderCalciteIcon(e):o&&o!==m.widgetIcon?this._renderLegacyIcon(o):this._renderCalciteIcon(g)}_renderCalciteIcon(e){return d("calcite-icon",{key:"icon",icon:e,scale:"s"})}_renderLegacyIcon(e){return d("span",{key:"legacy-icon","aria-hidden":"true",class:this.classes(c.icon,e)})}_go(){const{viewModel:e}=this;"going-home"===e.state?e.cancelGo():e.go()}};e([o()],u.prototype,"goToOverride",null),e([o()],u.prototype,"iconClass",void 0),e([o()],u.prototype,"icon",void 0),e([o()],u.prototype,"label",null),e([o(),a("esri/widgets/Home/t9n/Home")],u.prototype,"messages",void 0),e([o(),a("esri/t9n/common")],u.prototype,"messagesCommon",void 0),e([o()],u.prototype,"uiStrings",void 0),e([o()],u.prototype,"view",null),e([o({type:i}),p("go")],u.prototype,"viewModel",void 0),e([o()],u.prototype,"viewpoint",null),e([l()],u.prototype,"_go",null),u=e([t("esri.widgets.Home")],u);const v=u;export{v as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as t}from"../core/accessorSupport/decorators/subclass.js";import s from"./Widget.js";import i from"./Home/HomeViewModel.js";import{loadCalciteComponents as r}from"./support/componentsUtils.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as c}from"./support/legacyIcon.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import{vmEvent as p}from"./support/decorators/vmEvent.js";import{tsx as d}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const m={base:"esri-home",widgetIcon:c.home},g="home";let u=class extends s{constructor(e,o){super(e,o),this.iconClass=m.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.uiStrings=void 0,this.viewModel=new i}loadDependencies(){return r({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js")})}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get viewpoint(){return this.viewModel.viewpoint}set viewpoint(e){this.viewModel.viewpoint=e}cancelGo(){this.viewModel.cancelGo()}go(){return this.viewModel.go()}render(){const e=this.viewModel?.state,{messagesCommon:o,messages:t}=this,s={[n.disabled]:"disabled"===e};return d("div",{"aria-label":t.widgetLabel,bind:this,class:this.classes(m.base,n.widget,n.widgetButton,s),onclick:this._go,onkeydown:this._go,role:"button",tabIndex:0,title:"going-home"===e?o.cancel:t.title},this._renderIcon())}_renderIcon(){const{icon:e,iconClass:o,viewModel:t}=this;return"going-home"===t?.state?d("calcite-loader",{inline:!0,key:"loader",label:"",scale:"s",type:"indeterminate"}):e?this._renderCalciteIcon(e):o&&o!==m.widgetIcon?this._renderLegacyIcon(o):this._renderCalciteIcon(g)}_renderCalciteIcon(e){return d("calcite-icon",{icon:e,key:"icon",scale:"s"})}_renderLegacyIcon(e){return d("span",{"aria-hidden":"true",class:this.classes(c.icon,e),key:"legacy-icon"})}_go(){const{viewModel:e}=this;"going-home"===e.state?e.cancelGo():e.go()}};e([o()],u.prototype,"goToOverride",null),e([o()],u.prototype,"iconClass",void 0),e([o()],u.prototype,"icon",void 0),e([o()],u.prototype,"label",null),e([o(),a("esri/widgets/Home/t9n/Home")],u.prototype,"messages",void 0),e([o(),a("esri/t9n/common")],u.prototype,"messagesCommon",void 0),e([o()],u.prototype,"uiStrings",void 0),e([o()],u.prototype,"view",null),e([o({type:i}),p("go")],u.prototype,"viewModel",void 0),e([o()],u.prototype,"viewpoint",null),e([l()],u.prototype,"_go",null),u=e([t("esri.widgets.Home")],u);const v=u;export{v as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import{IdentifiableMixin as t}from"../../core/Identifiable.js";import{destroyMaybe as s}from"../../core/maybe.js";import{watch as n,initial as i}from"../../core/reactiveUtils.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import l from"../Widget.js";import{getLegendLayerInfo as a}from"./support/layerListUtils.js";import{isWidget as d}from"../support/widget.js";import{tsx as c}from"../support/jsxFactory.js";const g="esri-layer-list-panel",h=`${g}__content`,p={base:g,content:h,contentLegend:`${h}--legend`,contentString:`${h}--string`,contentElement:`${h}--html-element`,contentWidget:`${h}--widget`},m="legends";let u=class extends(t(l)){constructor(e,t){super(e,t),this._legend=null,this.content=null,this.image=null,this.listItem=null,this.open=!1,this.visible=!0}initialize(){this.addHandles(n((()=>this.content),(e=>this._createLegend(e)),i))}destroy(){this._legend=s(this._legend)}get className(){const{image:e}=this,t=this._getFirstWidget();return this._get("className")||(!e&&t?t.iconClass??"":"")}set className(e){this._override("className",e)}get disabled(){const{listItem:e,_legend:t,content:s}=this;return!e||!(Array.isArray(s)&&s.length>1)&&(!!t&&(!t.activeLayerInfos?.length||!e.visibleAtCurrentScale||!e.visible))}set disabled(e){this._overrideIfSome("disabled",e)}get title(){const e=this._getFirstWidget();return this._get("title")||(e?.label??"")}set title(e){this._override("title",e)}render(){return c("div",{class:p.base},this._renderContents())}_renderContent(e){const{_legend:t,disabled:s}=this;return!e||s?null:"legend"===e&&t?c("div",{class:this.classes(p.content,p.contentLegend),key:t},t.render()):"string"==typeof e?c("div",{class:this.classes(p.content,p.contentString),key:e,innerHTML:e}):d(e)?c("div",{class:this.classes(p.content,p.contentWidget),key:e},e.render()):e instanceof HTMLElement?c("div",{class:this.classes(p.content,p.contentElement),key:e,bind:e,afterCreate:this._attachToNode}):null}_renderContents(){const{content:e}=this;return Array.isArray(e)?e.map((e=>this._renderContent(e))):this._renderContent(e)}_getLegendOptions(){const{listItem:e}=this;if(!e)return{};const{layer:t,view:s}=e;return t&&s?{view:s,layerInfos:[a(t)]}:{}}async _createLegend(e){if(!this._hasLegend(e)||this._legend)return;const{default:t}=await import("../Legend.js"),{listItem:s}=this,r=new t(this._getLegendOptions());this._legend=r,this.notifyChange("className"),this.notifyChange("title");const o=n((()=>[s?.view,s?.layer,s?.layer?.source,s?.layer?.parent]),(()=>this._updateLegend(r)),i);this.addHandles(o,m),this.scheduleRender()}_hasLegend(e){const t="legend";return e===t||null!=e&&!!Array.isArray(e)&&e.includes(t)}_attachToNode(e){e.appendChild(this)}_updateLegend(e){e.set(this._getLegendOptions()),this.scheduleRender()}_getWidget(e){return"legend"===e?this._legend:d(e)?e:null}_getFirstWidget(){const{content:e}=this;if(Array.isArray(e)){let t=null;return e.some((e=>{const s=this._getWidget(e);return s&&(t=s),!!s})),t}return this._getWidget(e)}};e([r()],u.prototype,"_legend",void 0),e([r()],u.prototype,"className",null),e([r()],u.prototype,"content",void 0),e([r()],u.prototype,"disabled",null),e([r()],u.prototype,"image",void 0),e([r()],u.prototype,"listItem",void 0),e([r()],u.prototype,"title",null),e([r()],u.prototype,"open",void 0),e([r()],u.prototype,"visible",void 0),u=e([o("esri.widgets.LayerList.ListItemPanel")],u);const y=u;export{y as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import{IdentifiableMixin as t}from"../../core/Identifiable.js";import{destroyMaybe as s}from"../../core/maybe.js";import{watch as n,initial as i}from"../../core/reactiveUtils.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import l from"../Widget.js";import{getLegendLayerInfo as a}from"./support/layerListUtils.js";import{isWidget as d}from"../support/widget.js";import{tsx as c}from"../support/jsxFactory.js";const g="esri-layer-list-panel",h=`${g}__content`,p={base:g,content:h,contentLegend:`${h}--legend`,contentString:`${h}--string`,contentElement:`${h}--html-element`,contentWidget:`${h}--widget`},m="legends";let u=class extends(t(l)){constructor(e,t){super(e,t),this._legend=null,this.content=null,this.image=null,this.listItem=null,this.open=!1,this.visible=!0}initialize(){this.addHandles(n((()=>this.content),(e=>this._createLegend(e)),i))}destroy(){this._legend=s(this._legend)}get className(){const{image:e}=this,t=this._getFirstWidget();return this._get("className")||(!e&&t?t.iconClass??"":"")}set className(e){this._override("className",e)}get disabled(){const{listItem:e,_legend:t,content:s}=this;return!e||!(Array.isArray(s)&&s.length>1)&&(!!t&&(!t.activeLayerInfos?.length||!e.visibleAtCurrentScale||!e.visible))}set disabled(e){this._overrideIfSome("disabled",e)}get title(){const e=this._getFirstWidget();return this._get("title")||(e?.label??"")}set title(e){this._override("title",e)}render(){return c("div",{class:p.base},this._renderContents())}_renderContent(e){const{_legend:t,disabled:s}=this;return!e||s?null:"legend"===e&&t?c("div",{class:this.classes(p.content,p.contentLegend),key:t},t.render()):"string"==typeof e?c("div",{class:this.classes(p.content,p.contentString),innerHTML:e,key:e}):d(e)?c("div",{class:this.classes(p.content,p.contentWidget),key:e},e.render()):e instanceof HTMLElement?c("div",{afterCreate:this._attachToNode,bind:e,class:this.classes(p.content,p.contentElement),key:e}):null}_renderContents(){const{content:e}=this;return Array.isArray(e)?e.map((e=>this._renderContent(e))):this._renderContent(e)}_getLegendOptions(){const{listItem:e}=this;if(!e)return{};const{layer:t,view:s}=e;return t&&s?{view:s,layerInfos:[a(t)]}:{}}async _createLegend(e){if(!this._hasLegend(e)||this._legend)return;const{default:t}=await import("../Legend.js"),{listItem:s}=this,r=new t(this._getLegendOptions());this._legend=r,this.notifyChange("className"),this.notifyChange("title");const o=n((()=>[s?.view,s?.layer,s?.layer?.source,s?.layer?.parent]),(()=>this._updateLegend(r)),i);this.addHandles(o,m),this.scheduleRender()}_hasLegend(e){const t="legend";return e===t||null!=e&&!!Array.isArray(e)&&e.includes(t)}_attachToNode(e){e.appendChild(this)}_updateLegend(e){e.set(this._getLegendOptions()),this.scheduleRender()}_getWidget(e){return"legend"===e?this._legend:d(e)?e:null}_getFirstWidget(){const{content:e}=this;if(Array.isArray(e)){let t=null;return e.some((e=>{const s=this._getWidget(e);return s&&(t=s),!!s})),t}return this._getWidget(e)}};e([r()],u.prototype,"_legend",void 0),e([r()],u.prototype,"className",null),e([r()],u.prototype,"content",void 0),e([r()],u.prototype,"disabled",null),e([r()],u.prototype,"image",void 0),e([r()],u.prototype,"listItem",void 0),e([r()],u.prototype,"title",null),e([r()],u.prototype,"open",void 0),e([r()],u.prototype,"visible",void 0),u=e([o("esri.widgets.LayerList.ListItemPanel")],u);const y=u;export{y as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{on as s,watch as o,initial as n,syncAndInitial as l}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{cast as a}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import h from"./LayerList/LayerListViewModel.js";import u from"./LayerList/ListItem.js";import{findSelectedItem as m,sortLayersToIds as g,sortChildLayersToIds as p,canSortSublayers as _}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as b}from"./support/componentsUtils.js";import{globalCss as y}from"./support/globalCss.js";import{legacyIcon as I}from"./support/legacyIcon.js";import{accessibleHandler as v}from"./support/decorators/accessibleHandler.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{vmEvent as C}from"./support/decorators/vmEvent.js";import{tsx as S}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import A from"sortablejs";function $(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const w=t.ofType(u),k="data-sort-filter",M="data-layer-uid",T="layerUid",E="esri-layer-list",L=`${E}__item`,x={base:E,widgetIcon:I.layers,newUI:`${E}--new-ui`,noItems:`${E}__no-items`,list:`${E}__list`,listRoot:`${E}__list--root`,listExclusive:`${E}__list--exclusive`,listEmpty:`${E}__list--empty`,listEmptyState:`${E}__list-empty-state`,listEmptyStateDragEnabled:`${E}__list-empty-state--drag-enabled`,listInherited:`${E}__list--inherited`,listIndependent:`${E}__list--independent`,item:L,itemContent:`${L}-content`,itemMessage:`${L}--has-message`,itemInvisible:`${L}--invisible`,itemInvisibleAtScale:`${L}--invisible-at-scale`,itemChildren:`${L}--has-children`,itemSelectable:`${L}--selectable`,itemContainer:`${L}-container`,actionsMenu:`${L}-actions-menu`,actionsMenuItem:`${L}-actions-menu-item`,actionsMenuItemActive:`${L}-actions-menu-item--active`,actions:`${L}-actions`,actionsList:`${L}-actions-list`,action:`${L}-action`,actionIcon:`${L}-action-icon`,actionImage:`${L}-action-image`,actionTitle:`${L}-action-title`,actionToggle:`${E}__action-toggle`,actionToggleOn:`${E}__action-toggle--on`,label:`${L}-label`,message:`${L}-message`,title:`${L}-title`,statusIndicator:`${E}__status-indicator`,publishing:`${E}__publishing`,updating:`${E}__updating`,connectionStatus:`${E}__connection-status`,connectionStatusConnected:`${E}__connection-status--connected`,toggleVisible:`${L}-toggle`,toggleVisibleIcon:`${L}-toggle-icon`,toggleIcon:`${L}-toggle-icon`,radioIcon:`${L}-radio-icon`,childToggle:`${E}__child-toggle`,childToggleOpen:`${E}__child-toggle--open`,childOpened:`${E}__child-toggle-icon--opened`,childClosed:`${E}__child-toggle-icon--closed`,childClosed_RTL:`${E}__child-toggle-icon--closed-rtl`,sortableChosen:`${E}--chosen`},R={actions:"actions",actionSection:"action-section",items:"items"},N={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function j(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>j(e)))}const O="root",U={statusIndicators:!0,errors:!1};let V=class extends d{constructor(e,t){super(e,t),this._sortableNodes=new Map,this._sortableMap=new Map,this._focusSortUid=null,this._tooltipReferenceMap=new Map,this.visibleItems=null,this.iconClass=x.widgetIcon,this.icon=null,this.listItemCanGiveFunction=null,this.listItemCanReceiveFunction=null,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.selectionEnabled=!1,this.selectedItems=new w,this.style="classic",this.viewModel=new h,this.visibleElements={...U},this._onSortableSort=({to:e,from:t,item:i,newIndex:s})=>{t&&e&&(t===e?this._sortLayers(this._sortableMap.get(t.dataset.group)):this._moveLayerFromChildList({to:e,from:t,item:i,newIndex:s}))},this._sortableCanSort=(e,t)=>!(!e.el.dataset.group||!t.el.dataset.group),this._sortableCanPull=(e,t,i)=>{const{listItemCanGiveFunction:s}=this,o={selected:P(i),from:P(t.el),to:P(e.el)};return!this._sortableCanSort(e,t)||"function"!=typeof s||s.call(null,o)},this._sortableCanPut=(e,t,i)=>{const{listItemCanReceiveFunction:s}=this,o={selected:P(i),from:P(t.el),to:P(e.el)};return!this._sortableCanSort(e,t)||"function"!=typeof s||s.call(null,o)},this._onSortableEnd=({oldIndex:e,from:t,to:i,item:s})=>{t!==i&&t.insertBefore(s,t.children[e])}}initialize(){const e=this.operationalItems;this._setVisibleItems(e),this.addHandles([s((()=>this.operationalItems),"change",(()=>this._itemsChanged(e))),o((()=>this.visibleElements),(()=>this._itemsChanged(e))),o((()=>this.selectionEnabled),(()=>this._toggleAllSorting()),n)])}loadDependencies(){return b({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}destroy(){this._destroySortables(),this._tooltipReferenceMap.clear()}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get listItemCreatedFunction(){return this.viewModel.listItemCreatedFunction}set listItemCreatedFunction(e){this.viewModel.listItemCreatedFunction=e}get operationalItems(){return this.viewModel.operationalItems}set operationalItems(e){this.viewModel.operationalItems=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...U,...e}}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const{visibleItems:e,style:t}=this,i=this.viewModel?.state,s={[x.newUI]:"modern"===t,[y.hidden]:"loading"===i,[y.disabled]:"disabled"===i},o=this._renderItemTooltips(),n=this._renderItems();return S("div",{class:this.classes(x.base,y.widget,y.panel,s)},e.length?[o,n]:this._renderNoItems())}_renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:i}=this;return e?S("calcite-tooltip",{referenceElement:t.get(e.uid)},i.layerIncompatibleTooltip):null}_renderItemTooltipNodes(e){const{incompatible:t,children:i}=e;return[t?this._renderItemTooltip(e):null,...!t&&i?i.toArray().map((e=>this._renderItemTooltipNodes(e))):[]]}_renderItemTooltips(){return this.visibleItems.toArray().map((e=>this._renderItemTooltipNodes(e)))??[]}_renderNoItems(){return S("div",{class:x.noItems},this.messages.noItemsToDisplay)}_renderItems(){const{visibleItems:e,selectionEnabled:t,messages:i}=this;return S("ul",{"aria-label":i.widgetLabel,role:t?"listbox":void 0,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,"data-group":O,bind:this,class:this.classes(x.list,x.listRoot,x.listIndependent)},e.map((e=>this._renderItem(e,null))).toArray())}_renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[x.actionsMenuItemActive]:e.actionsOpen};return S("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(x.actionsMenuItem,s),tabIndex:0,role:"button","aria-controls":t,"aria-label":i.options,title:i.options},S("span",{"aria-hidden":"true",class:I.handleHorizontal}))}_renderActionsMenu(e,t,i,s){const{panel:o}=e,n=o&&o.visible?this._renderPanelButton(o):null,l=1===i&&this._getSingleActionButton(t),r=l?this._renderAction({item:e,action:l,singleAction:!0}):null,a=!l&&i?this._renderActionsMenuIcon(e,s):null;return a||n||l?S("div",{key:"actions-menu",class:x.actionsMenu},n,r,a):null}_renderChildList(e,t){const{selectionEnabled:i}=this,{visibilityMode:s,children:o}=e,n=this._hasChildren(e),l=!n&&i&&"group"===e.layer?.type,{exclusive:r,inherited:a}=N,c={[x.listEmpty]:!n,[x.listExclusive]:s===r,[x.listInherited]:s===a,[x.listIndependent]:s!==a&&s!==r},d={[x.listEmptyState]:!0,[x.listEmptyStateDragEnabled]:i};return n||l?n?S("ul",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,class:this.classes(x.list,c),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===r?"radiogroup":"group",hidden:!e.open&&!l||null},o?.map((t=>this._renderItem(t,e))).toArray()):S("div",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,class:this.classes(d)},this.messages.noItemsToDisplay):null}_renderChildrenToggle(e,t){const{messagesCommon:i}=this,s=this._hasChildren(e),o={[x.childToggleOpen]:e.open},n=e.open?i.collapse:i.expand;return s?S("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(x.childToggle,o),tabIndex:0,role:"button","aria-controls":t,"aria-label":n,title:n},S("span",{"aria-hidden":"true",class:this.classes(x.childClosed,I.rightTriangleArrow)}),S("span",{"aria-hidden":"true",class:this.classes(x.childOpened,I.downArrow)}),S("span",{"aria-hidden":"true",class:this.classes(x.childClosed_RTL,I.leftTriangleArrow)})):null}_renderItemMessage(e){return e.error?S("div",{key:"esri-layer-list__error",class:x.message,role:"alert"},S("span",{"aria-hidden":"true",class:I.noticeTriangle}),this.messages.layerError):e.incompatible?S("div",{key:"esri-layer-list__incompatible",class:x.message,role:"alert"},S("span",{bind:this,tabIndex:0,"aria-hidden":"true",class:I.noticeTriangle,afterCreate:t=>this._setTooltipReference(t,e)}),this.messages.layerIncompatible):null}_renderItemContent(e,t,i){const{id:s}=this,o=`${s}_${e.uid}`,n=`${o}_actions`,l=`${o}__list`,{panel:r}=e,a=this._filterActions(e.actionsSections),c=this._countActions(a);return[S("div",{key:"list-item-container",class:x.itemContainer},this._renderChildrenToggle(e,l),this._renderLabel(e,t,i),this._renderActionsMenu(e,a,c,n)),this._renderItemMessage(e),c?this._renderActionsSections(e,a,n):null,r&&r.open&&!r.disabled?r.render():null,this._renderChildList(e,l)]}_renderItem(e,t){const{style:i,id:s,selectionEnabled:o,selectedItems:n}=this,l=`${`${s}_${e.uid}`}__title`,r=this._hasMessage(e),a=this._hasChildren(e),c={[x.itemChildren]:a,[x.itemMessage]:!!r,[x.itemInvisible]:"modern"===i&&!e.visible,[x.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[x.itemSelectable]:o};if(o){const i={[M]:e.layer?.uid,[k]:(!e.sortable).toString()};return S("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(x.item,c),"aria-labelledby":l,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item":e,"data-group":t?t.uid:O,tabIndex:0,"aria-selected":m(e,n)?"true":"false",role:"option",...i},this._renderItemContent(e,t,l))}return S("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(x.item,c),"aria-labelledby":l},this._renderItemContent(e,t,l))}_renderConnectionIcon(e){const{connectionStatus:t}=e;return null!=t?S("calcite-icon",{icon:"connected"===t?"beacon":"offline",scale:"s"}):null}_renderItemStatus(e,t){const{visibleElements:i}=this;if(!i.statusIndicators)return null;const{connectionStatus:s,publishing:o,updating:n}=e,l=n&&!t,r=!!s;return S("span",{class:this.classes({[x.statusIndicator]:!0,[x.publishing]:o,[x.updating]:l,[x.connectionStatus]:r,[x.connectionStatusConnected]:r&&"connected"===s}),key:"layer-item-status"},this._renderConnectionIcon(e))}_renderItemTitle(e,t){const{messages:i}=this;if(!e)return null;const s=e.title||i.untitledLayer,o=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return S("span",{key:"layer-title-container",id:t,title:o,"aria-label":o,class:x.title},s)}_renderItemToggleIcon({visible:e},t){const{style:i}=this,{exclusive:s}=N,o=t?.visibilityMode,n="modern"===i,l=o===s,r={[x.toggleVisibleIcon]:n,[x.toggleIcon]:n&&!l,[x.radioIcon]:n&&l,[I.radioChecked]:l&&e,[I.radioUnchecked]:l&&!e,[I.visible]:!l&&e,[I.nonVisible]:!l&&!e};return S("span",{key:"item-toggle-icon",class:this.classes(r),"aria-hidden":"true"})}_renderItemToggle(e,t,i){const{selectionEnabled:s,messages:o}=this,{exclusive:n}=N,l=t?.visibilityMode,r=l===n?"radio":"switch";return S("span",s?{key:"item-toggle-selection-enabled",class:x.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":l,tabIndex:0,title:o.layerVisibility,"aria-checked":e.visible?"true":"false",role:r,"aria-labelledby":i}:{key:"item-toggle",class:x.toggleVisible},this._renderItemToggleIcon(e,t))}_renderLabel(e,t,i){const{selectionEnabled:s,style:o,messages:n}=this,{inherited:l,exclusive:r}=N,a=t?.visibilityMode,c=a===r?"radio":"switch",d=this._renderItemTitle(e,i),h=this._renderItemStatus(e,t),u=this._renderItemToggle(e,t,i),m="modern"===o?[d,h,u]:[u,d,h],g=S("div",s?{key:`item-label-no-selection-${e.uid}`,class:x.label}:{key:`item-label-with-selection-${e.uid}`,class:x.label,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":a,tabIndex:0,"aria-checked":e.visible?"true":"false",title:n.layerVisibility,role:c,"aria-labelledby":i},m);return a===l||e.error?S("div",{key:`item-label-container-${e.uid}`,class:x.label},this._renderItemTitle(e,i),this._renderItemStatus(e,t)):g}_renderPanelButton(e){const{className:t,open:i,title:s,image:o,disabled:n}=e,l=o||t?t:I.defaultAction,r=this._getIconImageStyles(e),a={[x.actionsMenuItemActive]:i&&!n},c={[x.actionImage]:!!r["background-image"],[y.disabledElement]:e.disabled};return l&&(c[l]=!!l),S("div",{"aria-disabled":e.disabled.toString(),key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(x.actionsMenuItem,a),role:"button",tabIndex:e.disabled?void 0:0,title:s,"aria-label":s},S("span",{class:this.classes(c),styles:r}))}_renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>S("ul",{key:`${e}-action-section-${i}`,class:x.actionsList},this._renderActionSection(e,t))));return S("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:x.actions,hidden:!e.actionsOpen||null},s)}_renderActionSection(e,t){return(t&&t.toArray()).map((t=>this._renderAction({item:e,action:t})))}_renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),o="button"!==e.type||e.image||i?i:I.defaultAction,n={[x.actionImage]:!t&&!!s["background-image"],[I.loadingIndicator]:t,[y.rotating]:t};return o&&!t&&(n[o]=!0),S("span",{key:"action-icon","aria-hidden":"true",class:this.classes(x.actionIcon,n),styles:s})}_renderActionTitle(e,t){return t?null:S("span",{key:"action-title",class:x.actionTitle},e)}_renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:o,disabled:n,title:l}=i,r={[x.actionsMenuItem]:s&&"button"===i.type,[x.action]:o||!s&&"toggle"!==i.type,[x.actionToggle]:!o&&"toggle"===i.type,[x.actionToggleOn]:!o&&"toggle"===i.type&&i.value,[y.disabledElement]:n},a=[this._renderActionIcon(i),this._renderActionTitle(l,s)];return s?S("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:r,tabIndex:0,title:l??void 0,"aria-label":l??void 0},a):S("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:r,tabIndex:0,role:"button",title:l??void 0,"aria-label":l??void 0},a)}_setTooltipReference(e,t){this._tooltipReferenceMap.set(t.uid,e),this.scheduleRender()}_hasMessage(e){return!!e.error||e.incompatible}_hasChildren(e){return!!e.children.length&&!this._hasMessage(e)}_sortNodeRemoved(e){const{_sortableMap:t}=this,i=e.dataset.group,s=t.get(i);s&&s.destroy(),t.delete(i)}_destroySortables(){const{_sortableMap:e,_sortableNodes:t}=this;e.forEach((e=>e&&e.destroy())),e.clear(),t.clear()}_moveLayerFromChildList({to:e,from:t,item:i,newIndex:s}){const o=P(i),n=P(e),l=P(t);this.viewModel.moveListItem(o,l,n,s)}_sortLayers(e){if(!e)return;const t=P(e.el),i=e.toArray();t?p(t,i):g(this.view?.map?.layers,i)}_toggleSorting(e,t){const{_sortableMap:i,selectionEnabled:s}=this,o=i.get(t),n=P(e),l=(t===O||n?.childrenSortable&&_(n))&&s;if(o)o.option("disabled",!l);else if(l){const s=A.create(e,{dataIdAttr:M,group:{name:t,pull:this._sortableCanPull,put:this._sortableCanPut},filter:`[${k}="true"]`,fallbackTolerance:4,onSort:this._onSortableSort,onEnd:this._onSortableEnd,disabled:!l,chosenClass:x.sortableChosen});i.set(t,s)}}_toggleAllSorting(){this._sortableNodes.forEach(((e,t)=>this._toggleSorting(e,t)))}_sortNodeCreated(e){const t=e.dataset.group;t&&(this._sortableNodes.set(t,e),this._toggleSorting(e,t))}_setVisibleItems(e){this.visibleItems=e.filter((e=>!e.hidden&&(this.visibleElements.errors||!e.error)))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).at(0)}_focusListItem(e){const{_focusSortUid:t}=this;if(!e||!t)return;const i=P(e);i?.layer?.uid===t&&(e.focus(),this._focusSortUid=null)}_watchActionSectionChanges(e){this.addHandles(e.on("change",this.scheduleRender.bind(this)),R.actionSection),e.forEach((e=>this._renderOnActionChanges(e)))}_renderOnActionChanges(e){"toggle"!==e.type?"slider"!==e.type?this.addHandles(o((()=>[e?.className,e?.image,e?.id,e?.title,e?.visible]),(()=>this.scheduleRender()),n),R.actions):this.addHandles(o((()=>[e?.className,e?.id,e?.title,e?.visible,e?.value,e?.displayValueEnabled,e?.max,e?.min,e?.step]),(()=>this.scheduleRender()),n),R.actions):this.addHandles(o((()=>[e?.className,e?.image,e?.id,e?.title,e?.visible,e?.value]),(()=>this.scheduleRender()),n),R.actions)}_renderOnItemChanges(e){this.addHandles([o((()=>[e?.actionsOpen,e?.visible,e?.open,e?.updating,e?.connectionStatus,e?.publishing,e?.title,e?.visibleAtCurrentScale,e?.error,e?.visibilityMode,e?.panel,e?.panel?.title,e?.panel?.content,e?.panel?.className,e?.sortable,e?.childrenSortable]),(()=>this.scheduleRender()),l),o((()=>[e?.hidden,e?.error]),(()=>this._setVisibleItems(this.operationalItems))),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],R.items),e.children.forEach((e=>this._renderOnItemChanges(e))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e)))}_itemsChanged(e){this.removeHandles(R.items),this.removeHandles(R.actions),this.removeHandles(R.actionSection),e.forEach((e=>this._renderOnItemChanges(e))),this._tooltipReferenceMap.clear(),this._setVisibleItems(e),this.scheduleRender()}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="esri.widgets.LayerList.ListItemPanel"===e.declaredClass||"esri.support.Action.ActionButton"===e.declaredClass||"esri.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:void 0}}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(!t.includes(s))return void this._toggleSelection(e);e.stopPropagation();const o=e.currentTarget,n=P(o),{_sortableMap:l,selectedItems:r}=this,a=o.dataset.group,c=l.get(a);if(!c||!n)return;const d=m(n,r),h=c.toArray(),u=e.target,g=h.indexOf(u.dataset[T]);if(-1!==g){if("ArrowDown"===s){const e=g+1;if(e>=h.length)return;d?($(h,g,e),c.sort(h),this._sortLayers(c),this._focusSortUid=n.layer?.uid):(this._focusSortUid=n.layer?.uid,this.scheduleRender())}if("ArrowUp"===s){const e=g-1;if(e<=-1)return;d?($(h,g,e),c.sort(h),this._sortLayers(c),this._focusSortUid=n.layer?.uid):(this._focusSortUid=n.layer?.uid,this.scheduleRender())}}}_toggleActionsOpen(e){const t=P(e.currentTarget);if(!t)return;const{actionsOpen:i}=t,s=!i;s&&this.operationalItems.forEach((e=>j(e))),t.actionsOpen=s,e.stopPropagation()}_triggerPanel(e){const t=F(e.currentTarget);e.stopPropagation(),t&&!t.disabled&&(t.open=!t.open)}_triggerAction(e){const t=e.currentTarget,i=H(t),s=P(t);i&&s&&("toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s),e.stopPropagation())}_toggleVisibility(e){const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=P(t);s&&(i===N.exclusive&&s.visible||(s.visible=!s.visible),e.stopPropagation())}_toggleChildrenClick(e){const t=P(e.currentTarget);t&&(t.open=!t.open,e.stopPropagation())}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=P(e.currentTarget);if(!s)return;const o=m(s,i),{length:n}=i;if(!t)return n&&!(o&&1===n)?(i.removeAll(),void i.add(s)):void(o?i.remove?.(o):i.add(s));o?i.remove?.(o):i.add(s)}get test(){return{visibleItems:this.visibleItems}}};function P(e){return e?.["data-item"]}function F(e){return e?.["data-panel"]}function H(e){return e?.["data-action"]}e([r()],V.prototype,"visibleItems",void 0),e([r()],V.prototype,"iconClass",void 0),e([r()],V.prototype,"icon",void 0),e([r()],V.prototype,"label",null),e([r()],V.prototype,"listItemCanGiveFunction",void 0),e([r()],V.prototype,"listItemCanReceiveFunction",void 0),e([r()],V.prototype,"listItemCreatedFunction",null),e([r(),f("esri/widgets/LayerList/t9n/LayerList")],V.prototype,"messages",void 0),e([r(),f("esri/t9n/common")],V.prototype,"messagesCommon",void 0),e([r()],V.prototype,"multipleSelectionEnabled",void 0),e([r()],V.prototype,"operationalItems",null),e([r()],V.prototype,"selectionEnabled",void 0),e([r()],V.prototype,"selectedItems",void 0),e([r()],V.prototype,"style",void 0),e([r()],V.prototype,"view",null),e([C("trigger-action"),r({type:h})],V.prototype,"viewModel",void 0),e([r()],V.prototype,"visibleElements",void 0),e([a("visibleElements")],V.prototype,"castVisibleElements",null),e([v()],V.prototype,"_toggleActionsOpen",null),e([v()],V.prototype,"_triggerPanel",null),e([v()],V.prototype,"_triggerAction",null),e([v()],V.prototype,"_toggleVisibility",null),e([v()],V.prototype,"_toggleChildrenClick",null),e([v()],V.prototype,"_toggleSelection",null),V=e([c("esri.widgets.LayerList")],V);const B=V;export{B as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{on as s,watch as o,initial as n,syncAndInitial as l}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{cast as a}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import h from"./LayerList/LayerListViewModel.js";import u from"./LayerList/ListItem.js";import{findSelectedItem as m,sortLayersToIds as g,sortChildLayersToIds as p,canSortSublayers as _}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as b}from"./support/componentsUtils.js";import{globalCss as y}from"./support/globalCss.js";import{legacyIcon as I}from"./support/legacyIcon.js";import{accessibleHandler as v}from"./support/decorators/accessibleHandler.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{vmEvent as C}from"./support/decorators/vmEvent.js";import{tsx as S}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import A from"sortablejs";function $(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const w=t.ofType(u),k="data-sort-filter",M="data-layer-uid",T="layerUid",E="esri-layer-list",L=`${E}__item`,x={base:E,widgetIcon:I.layers,newUI:`${E}--new-ui`,noItems:`${E}__no-items`,list:`${E}__list`,listRoot:`${E}__list--root`,listExclusive:`${E}__list--exclusive`,listEmpty:`${E}__list--empty`,listEmptyState:`${E}__list-empty-state`,listEmptyStateDragEnabled:`${E}__list-empty-state--drag-enabled`,listInherited:`${E}__list--inherited`,listIndependent:`${E}__list--independent`,item:L,itemContent:`${L}-content`,itemMessage:`${L}--has-message`,itemInvisible:`${L}--invisible`,itemInvisibleAtScale:`${L}--invisible-at-scale`,itemChildren:`${L}--has-children`,itemSelectable:`${L}--selectable`,itemContainer:`${L}-container`,actionsMenu:`${L}-actions-menu`,actionsMenuItem:`${L}-actions-menu-item`,actionsMenuItemActive:`${L}-actions-menu-item--active`,actions:`${L}-actions`,actionsList:`${L}-actions-list`,action:`${L}-action`,actionIcon:`${L}-action-icon`,actionImage:`${L}-action-image`,actionTitle:`${L}-action-title`,actionToggle:`${E}__action-toggle`,actionToggleOn:`${E}__action-toggle--on`,label:`${L}-label`,message:`${L}-message`,title:`${L}-title`,statusIndicator:`${E}__status-indicator`,publishing:`${E}__publishing`,updating:`${E}__updating`,connectionStatus:`${E}__connection-status`,connectionStatusConnected:`${E}__connection-status--connected`,toggleVisible:`${L}-toggle`,toggleVisibleIcon:`${L}-toggle-icon`,toggleIcon:`${L}-toggle-icon`,radioIcon:`${L}-radio-icon`,childToggle:`${E}__child-toggle`,childToggleOpen:`${E}__child-toggle--open`,childOpened:`${E}__child-toggle-icon--opened`,childClosed:`${E}__child-toggle-icon--closed`,childClosed_RTL:`${E}__child-toggle-icon--closed-rtl`,sortableChosen:`${E}--chosen`},R={actions:"actions",actionSection:"action-section",items:"items"},N={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function j(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>j(e)))}const O="root",U={statusIndicators:!0,errors:!1};let V=class extends d{constructor(e,t){super(e,t),this._sortableNodes=new Map,this._sortableMap=new Map,this._focusSortUid=null,this._tooltipReferenceMap=new Map,this.visibleItems=null,this.iconClass=x.widgetIcon,this.icon=null,this.listItemCanGiveFunction=null,this.listItemCanReceiveFunction=null,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.selectionEnabled=!1,this.selectedItems=new w,this.style="classic",this.viewModel=new h,this.visibleElements={...U},this._onSortableSort=({to:e,from:t,item:i,newIndex:s})=>{t&&e&&(t===e?this._sortLayers(this._sortableMap.get(t.dataset.group)):this._moveLayerFromChildList({to:e,from:t,item:i,newIndex:s}))},this._sortableCanSort=(e,t)=>!(!e.el.dataset.group||!t.el.dataset.group),this._sortableCanPull=(e,t,i)=>{const{listItemCanGiveFunction:s}=this,o={selected:P(i),from:P(t.el),to:P(e.el)};return!this._sortableCanSort(e,t)||"function"!=typeof s||s.call(null,o)},this._sortableCanPut=(e,t,i)=>{const{listItemCanReceiveFunction:s}=this,o={selected:P(i),from:P(t.el),to:P(e.el)};return!this._sortableCanSort(e,t)||"function"!=typeof s||s.call(null,o)},this._onSortableEnd=({oldIndex:e,from:t,to:i,item:s})=>{t!==i&&t.insertBefore(s,t.children[e])}}initialize(){const e=this.operationalItems;this._setVisibleItems(e),this.addHandles([s((()=>this.operationalItems),"change",(()=>this._itemsChanged(e))),o((()=>this.visibleElements),(()=>this._itemsChanged(e))),o((()=>this.selectionEnabled),(()=>this._toggleAllSorting()),n)])}loadDependencies(){return b({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}destroy(){this._destroySortables(),this._tooltipReferenceMap.clear()}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get listItemCreatedFunction(){return this.viewModel.listItemCreatedFunction}set listItemCreatedFunction(e){this.viewModel.listItemCreatedFunction=e}get operationalItems(){return this.viewModel.operationalItems}set operationalItems(e){this.viewModel.operationalItems=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...U,...e}}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const{visibleItems:e,style:t}=this,i=this.viewModel?.state,s={[x.newUI]:"modern"===t,[y.hidden]:"loading"===i,[y.disabled]:"disabled"===i},o=this._renderItemTooltips(),n=this._renderItems();return S("div",{class:this.classes(x.base,y.widget,y.panel,s)},e.length?[o,n]:this._renderNoItems())}_renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:i}=this;return e?S("calcite-tooltip",{referenceElement:t.get(e.uid)},i.layerIncompatibleTooltip):null}_renderItemTooltipNodes(e){const{incompatible:t,children:i}=e;return[t?this._renderItemTooltip(e):null,...!t&&i?i.toArray().map((e=>this._renderItemTooltipNodes(e))):[]]}_renderItemTooltips(){return this.visibleItems.toArray().map((e=>this._renderItemTooltipNodes(e)))??[]}_renderNoItems(){return S("div",{class:x.noItems},this.messages.noItemsToDisplay)}_renderItems(){const{visibleItems:e,selectionEnabled:t,messages:i}=this;return S("ul",{afterCreate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,afterUpdate:this._sortNodeCreated,"aria-label":i.widgetLabel,bind:this,class:this.classes(x.list,x.listRoot,x.listIndependent),"data-group":O,role:t?"listbox":void 0},e.map((e=>this._renderItem(e,null))).toArray())}_renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[x.actionsMenuItemActive]:e.actionsOpen};return S("div",{"aria-controls":t,"aria-label":i.options,bind:this,class:this.classes(x.actionsMenuItem,s),"data-item":e,key:"actions-menu-toggle",onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,role:"button",tabIndex:0,title:i.options},S("span",{"aria-hidden":"true",class:I.handleHorizontal}))}_renderActionsMenu(e,t,i,s){const{panel:o}=e,n=o&&o.visible?this._renderPanelButton(o):null,l=1===i&&this._getSingleActionButton(t),r=l?this._renderAction({item:e,action:l,singleAction:!0}):null,a=!l&&i?this._renderActionsMenuIcon(e,s):null;return a||n||l?S("div",{class:x.actionsMenu,key:"actions-menu"},n,r,a):null}_renderChildList(e,t){const{selectionEnabled:i}=this,{visibilityMode:s,children:o}=e,n=this._hasChildren(e),l=!n&&i&&"group"===e.layer?.type,{exclusive:r,inherited:a}=N,c={[x.listEmpty]:!n,[x.listExclusive]:s===r,[x.listInherited]:s===a,[x.listIndependent]:s!==a&&s!==r},d={[x.listEmptyState]:!0,[x.listEmptyStateDragEnabled]:i};return n||l?n?S("ul",{afterCreate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,afterUpdate:this._sortNodeCreated,"aria-expanded":e.open?"true":"false",bind:this,class:this.classes(x.list,c),"data-group":e.uid,"data-item":e,hidden:!e.open&&!l||null,id:t,key:"list-items",role:i?"listbox":s===r?"radiogroup":"group"},o?.map((t=>this._renderItem(t,e))).toArray()):S("div",{afterCreate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,afterUpdate:this._sortNodeCreated,bind:this,class:this.classes(d),"data-group":e.uid,"data-item":e,id:t,key:"list-items"},this.messages.noItemsToDisplay):null}_renderChildrenToggle(e,t){const{messagesCommon:i}=this,s=this._hasChildren(e),o={[x.childToggleOpen]:e.open},n=e.open?i.collapse:i.expand;return s?S("span",{"aria-controls":t,"aria-label":n,class:this.classes(x.childToggle,o),"data-item":e,key:"toggle-children",onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,role:"button",tabIndex:0,title:n},S("span",{"aria-hidden":"true",class:this.classes(x.childClosed,I.rightTriangleArrow)}),S("span",{"aria-hidden":"true",class:this.classes(x.childOpened,I.downArrow)}),S("span",{"aria-hidden":"true",class:this.classes(x.childClosed_RTL,I.leftTriangleArrow)})):null}_renderItemMessage(e){return e.error?S("div",{class:x.message,key:"esri-layer-list__error",role:"alert"},S("span",{"aria-hidden":"true",class:I.noticeTriangle}),this.messages.layerError):e.incompatible?S("div",{class:x.message,key:"esri-layer-list__incompatible",role:"alert"},S("span",{afterCreate:t=>this._setTooltipReference(t,e),"aria-hidden":"true",bind:this,class:I.noticeTriangle,tabIndex:0}),this.messages.layerIncompatible):null}_renderItemContent(e,t,i){const{id:s}=this,o=`${s}_${e.uid}`,n=`${o}_actions`,l=`${o}__list`,{panel:r}=e,a=this._filterActions(e.actionsSections),c=this._countActions(a);return[S("div",{class:x.itemContainer,key:"list-item-container"},this._renderChildrenToggle(e,l),this._renderLabel(e,t,i),this._renderActionsMenu(e,a,c,n)),this._renderItemMessage(e),c?this._renderActionsSections(e,a,n):null,r&&r.open&&!r.disabled?r.render():null,this._renderChildList(e,l)]}_renderItem(e,t){const{style:i,id:s,selectionEnabled:o,selectedItems:n}=this,l=`${`${s}_${e.uid}`}__title`,r=this._hasMessage(e),a=this._hasChildren(e),c={[x.itemChildren]:a,[x.itemMessage]:!!r,[x.itemInvisible]:"modern"===i&&!e.visible,[x.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[x.itemSelectable]:o};if(o){const i={[M]:e.layer?.uid,[k]:(!e.sortable).toString()};return S("li",{afterCreate:this._focusListItem,afterUpdate:this._focusListItem,"aria-labelledby":l,"aria-selected":m(e,n)?"true":"false",bind:this,class:this.classes(x.item,c),"data-group":t?t.uid:O,"data-item":e,key:`item-with-selection-${e.uid}`,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,role:"option",tabIndex:0,...i},this._renderItemContent(e,t,l))}return S("li",{afterCreate:this._focusListItem,afterUpdate:this._focusListItem,"aria-labelledby":l,bind:this,class:this.classes(x.item,c),key:`item-no-selection-${e.uid}`},this._renderItemContent(e,t,l))}_renderConnectionIcon(e){const{connectionStatus:t}=e;return null!=t?S("calcite-icon",{icon:"connected"===t?"beacon":"offline",scale:"s"}):null}_renderItemStatus(e,t){const{visibleElements:i}=this;if(!i.statusIndicators)return null;const{connectionStatus:s,publishing:o,updating:n}=e,l=n&&!t,r=!!s;return S("span",{class:this.classes({[x.statusIndicator]:!0,[x.publishing]:o,[x.updating]:l,[x.connectionStatus]:r,[x.connectionStatusConnected]:r&&"connected"===s}),key:"layer-item-status"},this._renderConnectionIcon(e))}_renderItemTitle(e,t){const{messages:i}=this;if(!e)return null;const s=e.title||i.untitledLayer,o=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return S("span",{"aria-label":o,class:x.title,id:t,key:"layer-title-container",title:o},s)}_renderItemToggleIcon({visible:e},t){const{style:i}=this,{exclusive:s}=N,o=t?.visibilityMode,n="modern"===i,l=o===s,r={[x.toggleVisibleIcon]:n,[x.toggleIcon]:n&&!l,[x.radioIcon]:n&&l,[I.radioChecked]:l&&e,[I.radioUnchecked]:l&&!e,[I.visible]:!l&&e,[I.nonVisible]:!l&&!e};return S("span",{"aria-hidden":"true",class:this.classes(r),key:"item-toggle-icon"})}_renderItemToggle(e,t,i){const{selectionEnabled:s,messages:o}=this,{exclusive:n}=N,l=t?.visibilityMode,r=l===n?"radio":"switch";return S("span",s?{"aria-checked":e.visible?"true":"false","aria-labelledby":i,bind:this,class:x.toggleVisible,"data-item":e,"data-parent-visibility":l,key:"item-toggle-selection-enabled",onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,role:r,tabIndex:0,title:o.layerVisibility}:{class:x.toggleVisible,key:"item-toggle"},this._renderItemToggleIcon(e,t))}_renderLabel(e,t,i){const{selectionEnabled:s,style:o,messages:n}=this,{inherited:l,exclusive:r}=N,a=t?.visibilityMode,c=a===r?"radio":"switch",d=this._renderItemTitle(e,i),h=this._renderItemStatus(e,t),u=this._renderItemToggle(e,t,i),m="modern"===o?[d,h,u]:[u,d,h],g=S("div",s?{class:x.label,key:`item-label-no-selection-${e.uid}`}:{"aria-checked":e.visible?"true":"false","aria-labelledby":i,bind:this,class:x.label,"data-item":e,"data-parent-visibility":a,key:`item-label-with-selection-${e.uid}`,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,role:c,tabIndex:0,title:n.layerVisibility},m);return a===l||e.error?S("div",{class:x.label,key:`item-label-container-${e.uid}`},this._renderItemTitle(e,i),this._renderItemStatus(e,t)):g}_renderPanelButton(e){const{className:t,open:i,title:s,image:o,disabled:n}=e,l=o||t?t:I.defaultAction,r=this._getIconImageStyles(e),a={[x.actionsMenuItemActive]:i&&!n},c={[x.actionImage]:!!r["background-image"],[y.disabledElement]:e.disabled};return l&&(c[l]=!!l),S("div",{"aria-disabled":e.disabled.toString(),"aria-label":s,bind:this,class:this.classes(x.actionsMenuItem,a),"data-panel":e,key:`panel-${e.uid}`,onclick:this._triggerPanel,onkeydown:this._triggerPanel,role:"button",tabIndex:e.disabled?void 0:0,title:s},S("span",{class:this.classes(c),styles:r}))}_renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>S("ul",{class:x.actionsList,key:`${e}-action-section-${i}`},this._renderActionSection(e,t))));return S("div",{"aria-expanded":e.actionsOpen?"true":"false",class:x.actions,hidden:!e.actionsOpen||null,id:i,key:"actions-section",role:"group"},s)}_renderActionSection(e,t){return(t&&t.toArray()).map((t=>this._renderAction({item:e,action:t})))}_renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),o="button"!==e.type||e.image||i?i:I.defaultAction,n={[x.actionImage]:!t&&!!s["background-image"],[I.loadingIndicator]:t,[y.rotating]:t};return o&&!t&&(n[o]=!0),S("span",{"aria-hidden":"true",class:this.classes(x.actionIcon,n),key:"action-icon",styles:s})}_renderActionTitle(e,t){return t?null:S("span",{class:x.actionTitle,key:"action-title"},e)}_renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:o,disabled:n,title:l}=i,r={[x.actionsMenuItem]:s&&"button"===i.type,[x.action]:o||!s&&"toggle"!==i.type,[x.actionToggle]:!o&&"toggle"===i.type,[x.actionToggleOn]:!o&&"toggle"===i.type&&i.value,[y.disabledElement]:n},a=[this._renderActionIcon(i),this._renderActionTitle(l,s)];return s?S("div",{"aria-label":l??void 0,bind:this,classes:r,"data-action":i,"data-item":t,key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,role:"button",tabIndex:0,title:l??void 0},a):S("li",{"aria-label":l??void 0,bind:this,classes:r,"data-action":i,"data-item":t,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,role:"button",tabIndex:0,title:l??void 0},a)}_setTooltipReference(e,t){this._tooltipReferenceMap.set(t.uid,e),this.scheduleRender()}_hasMessage(e){return!!e.error||e.incompatible}_hasChildren(e){return!!e.children.length&&!this._hasMessage(e)}_sortNodeRemoved(e){const{_sortableMap:t}=this,i=e.dataset.group,s=t.get(i);s&&s.destroy(),t.delete(i)}_destroySortables(){const{_sortableMap:e,_sortableNodes:t}=this;e.forEach((e=>e&&e.destroy())),e.clear(),t.clear()}_moveLayerFromChildList({to:e,from:t,item:i,newIndex:s}){const o=P(i),n=P(e),l=P(t);this.viewModel.moveListItem(o,l,n,s)}_sortLayers(e){if(!e)return;const t=P(e.el),i=e.toArray();t?p(t,i):g(this.view?.map?.layers,i)}_toggleSorting(e,t){const{_sortableMap:i,selectionEnabled:s}=this,o=i.get(t),n=P(e),l=(t===O||n?.childrenSortable&&_(n))&&s;if(o)o.option("disabled",!l);else if(l){const s=A.create(e,{dataIdAttr:M,group:{name:t,pull:this._sortableCanPull,put:this._sortableCanPut},filter:`[${k}="true"]`,fallbackTolerance:4,onSort:this._onSortableSort,onEnd:this._onSortableEnd,disabled:!l,chosenClass:x.sortableChosen});i.set(t,s)}}_toggleAllSorting(){this._sortableNodes.forEach(((e,t)=>this._toggleSorting(e,t)))}_sortNodeCreated(e){const t=e.dataset.group;t&&(this._sortableNodes.set(t,e),this._toggleSorting(e,t))}_setVisibleItems(e){this.visibleItems=e.filter((e=>!e.hidden&&(this.visibleElements.errors||!e.error)))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).at(0)}_focusListItem(e){const{_focusSortUid:t}=this;if(!e||!t)return;const i=P(e);i?.layer?.uid===t&&(e.focus(),this._focusSortUid=null)}_watchActionSectionChanges(e){this.addHandles(e.on("change",this.scheduleRender.bind(this)),R.actionSection),e.forEach((e=>this._renderOnActionChanges(e)))}_renderOnActionChanges(e){"toggle"!==e.type?"slider"!==e.type?this.addHandles(o((()=>[e?.className,e?.image,e?.id,e?.title,e?.visible]),(()=>this.scheduleRender()),n),R.actions):this.addHandles(o((()=>[e?.className,e?.id,e?.title,e?.visible,e?.value,e?.displayValueEnabled,e?.max,e?.min,e?.step]),(()=>this.scheduleRender()),n),R.actions):this.addHandles(o((()=>[e?.className,e?.image,e?.id,e?.title,e?.visible,e?.value]),(()=>this.scheduleRender()),n),R.actions)}_renderOnItemChanges(e){this.addHandles([o((()=>[e?.actionsOpen,e?.visible,e?.open,e?.updating,e?.connectionStatus,e?.publishing,e?.title,e?.visibleAtCurrentScale,e?.error,e?.visibilityMode,e?.panel,e?.panel?.title,e?.panel?.content,e?.panel?.className,e?.sortable,e?.childrenSortable]),(()=>this.scheduleRender()),l),o((()=>[e?.hidden,e?.error]),(()=>this._setVisibleItems(this.operationalItems))),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],R.items),e.children.forEach((e=>this._renderOnItemChanges(e))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e)))}_itemsChanged(e){this.removeHandles(R.items),this.removeHandles(R.actions),this.removeHandles(R.actionSection),e.forEach((e=>this._renderOnItemChanges(e))),this._tooltipReferenceMap.clear(),this._setVisibleItems(e),this.scheduleRender()}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="esri.widgets.LayerList.ListItemPanel"===e.declaredClass||"esri.support.Action.ActionButton"===e.declaredClass||"esri.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:void 0}}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(!t.includes(s))return void this._toggleSelection(e);e.stopPropagation();const o=e.currentTarget,n=P(o),{_sortableMap:l,selectedItems:r}=this,a=o.dataset.group,c=l.get(a);if(!c||!n)return;const d=m(n,r),h=c.toArray(),u=e.target,g=h.indexOf(u.dataset[T]);if(-1!==g){if("ArrowDown"===s){const e=g+1;if(e>=h.length)return;d?($(h,g,e),c.sort(h),this._sortLayers(c),this._focusSortUid=n.layer?.uid):(this._focusSortUid=n.layer?.uid,this.scheduleRender())}if("ArrowUp"===s){const e=g-1;if(e<=-1)return;d?($(h,g,e),c.sort(h),this._sortLayers(c),this._focusSortUid=n.layer?.uid):(this._focusSortUid=n.layer?.uid,this.scheduleRender())}}}_toggleActionsOpen(e){const t=P(e.currentTarget);if(!t)return;const{actionsOpen:i}=t,s=!i;s&&this.operationalItems.forEach((e=>j(e))),t.actionsOpen=s,e.stopPropagation()}_triggerPanel(e){const t=F(e.currentTarget);e.stopPropagation(),t&&!t.disabled&&(t.open=!t.open)}_triggerAction(e){const t=e.currentTarget,i=H(t),s=P(t);i&&s&&("toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s),e.stopPropagation())}_toggleVisibility(e){const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=P(t);s&&(i===N.exclusive&&s.visible||(s.visible=!s.visible),e.stopPropagation())}_toggleChildrenClick(e){const t=P(e.currentTarget);t&&(t.open=!t.open,e.stopPropagation())}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=P(e.currentTarget);if(!s)return;const o=m(s,i),{length:n}=i;if(!t)return n&&!(o&&1===n)?(i.removeAll(),void i.add(s)):void(o?i.remove?.(o):i.add(s));o?i.remove?.(o):i.add(s)}get test(){return{visibleItems:this.visibleItems}}};function P(e){return e?.["data-item"]}function F(e){return e?.["data-panel"]}function H(e){return e?.["data-action"]}e([r()],V.prototype,"visibleItems",void 0),e([r()],V.prototype,"iconClass",void 0),e([r()],V.prototype,"icon",void 0),e([r()],V.prototype,"label",null),e([r()],V.prototype,"listItemCanGiveFunction",void 0),e([r()],V.prototype,"listItemCanReceiveFunction",void 0),e([r()],V.prototype,"listItemCreatedFunction",null),e([r(),f("esri/widgets/LayerList/t9n/LayerList")],V.prototype,"messages",void 0),e([r(),f("esri/t9n/common")],V.prototype,"messagesCommon",void 0),e([r()],V.prototype,"multipleSelectionEnabled",void 0),e([r()],V.prototype,"operationalItems",null),e([r()],V.prototype,"selectionEnabled",void 0),e([r()],V.prototype,"selectedItems",void 0),e([r()],V.prototype,"style",void 0),e([r()],V.prototype,"view",null),e([C("trigger-action"),r({type:h})],V.prototype,"viewModel",void 0),e([r()],V.prototype,"visibleElements",void 0),e([a("visibleElements")],V.prototype,"castVisibleElements",null),e([v()],V.prototype,"_toggleActionsOpen",null),e([v()],V.prototype,"_triggerPanel",null),e([v()],V.prototype,"_triggerAction",null),e([v()],V.prototype,"_toggleVisibility",null),e([v()],V.prototype,"_toggleChildrenClick",null),e([v()],V.prototype,"_toggleSelection",null),V=e([c("esri.widgets.LayerList")],V);const B=V;export{B as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import"../../../intl.js";import{watch as t}from"../../../core/reactiveUtils.js";import{pt2px as s}from"../../../core/screenUtils.js";import{property as i}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{renderSVG as r}from"../../../symbols/support/svgUtils.js";import{getCSSFilterFromEffectList as o}from"../../../symbols/support/utils.js";import l from"../../Widget.js";import{css as n}from"./CardCSS.js";import{renderRelationshipRamp as c}from"./support/relationshipUtils.js";import{getUnivariateAboveAndBelowRampElements as p,getUnivariateSizeRampSize as d,getUnivariateColorRampSize as m,getUnivariateColorRampPreview as h,getUnivariateColorRampMargin as y,getUnivariateColorSizeRampElements as g}from"./support/univariateUtils.js";import{getTitle as v,attachToNode as u,isImageryStretchedLegend as f,getStretchStopLabel as b}from"../support/styleUtils.js";import{Heading as _,incrementHeadingLevel as w}from"../../support/Heading.js";import{accessibleHandler as L}from"../../support/decorators/accessibleHandler.js";import{messageBundle as S}from"../../support/decorators/messageBundle.js";import{tsx as x}from"../../support/jsxFactory.js";import{isRTL as C}from"../../support/widgetUtils.js";import{substitute as R}from"../../../intl/substitute.js";const $=25,k=25,z=768,I=100;var N;!function(e){e.Auto="auto",e.Stack="stack",e.SideBySide="side-by-side"}(N||(N={}));const A="#ddd",j=window.devicePixelRatio;function E(e){if(e){if(e.type.includes("3d")){const t=e.symbolLayers&&e.symbolLayers.length;if(!t)return;const s=e.symbolLayers.at(t-1),i=s.resource&&s.resource.primitive;return"circle"===i||"cross"===i||"kite"===i||"sphere"===i||"cube"===i||"diamond"===i}{const t=e.style;return"circle"===t||"diamond"===t||"cross"===t}}}function F(e){if(e){if(e.type.includes("3d")){const t=e.symbolLayers&&e.symbolLayers.length;if(!t)return;const s=e.symbolLayers.at(t-1).get("resource.primitive");return"triangle"===s||"cone"===s||"tetrahedron"===s}return"triangle"===e.style}}let T=class extends l{constructor(e,t){super(e,t),this._hasIndicators=!1,this._selectedSectionName=null,this._sectionNames=[],this._sectionMap=new Map,this.activeLayerInfos=null,this.headingLevel=3,this.layout=N.Stack,this.messages=null,this.messagesCommon=null,this.type="card",this.view=null}initialize(){this.addHandles(t((()=>this.activeLayerInfos),(e=>{this.removeAllHandles(),this._watchForSectionChanges(e)})))}render(){const{view:e}=this;this._hasIndicators=this.layout===N.Auto&&e&&e.container.clientWidth<=z||this.layout===N.Stack;const t=this.activeLayerInfos,s=t&&t.toArray().map((e=>this._renderLegendForLayer(e))).filter((e=>!!e));this._hasIndicators?this._selectedSectionName&&this._sectionNames.includes(this._selectedSectionName)||(this._selectedSectionName=this._sectionNames&&this._sectionNames[0]):this._selectedSectionName=null;const i=this._sectionNames.length,a=this._sectionNames.map(((e,t)=>{const s=R(this.messagesCommon.pagination.pageText,{index:t+1,total:i});return x("div",{key:e,role:"tab",id:e,"aria-label":s,"aria-controls":`${e}-panel`,"aria-selected":(this._selectedSectionName===e).toString(),tabIndex:this._selectedSectionName===e?0:-1,title:s,onclick:this._selectSection,onkeydown:this._focusSection,bind:this,class:this.classes(n.indicator,{[n.activated]:this._selectedSectionName===e}),"data-section-name":e})})),r=this._hasIndicators&&i>1?x("div",{class:n.indicatorContainer,key:"carousel-navigation",role:"tablist"},a):null,o=this._hasIndicators?this._sectionMap.get(this._selectedSectionName):s&&s.length?s:null,l={[n.stacked]:this._hasIndicators};return x("div",{class:this.classes(n.base,l)},o||x("div",{class:n.message},this.messages.noLegend),r)}_selectSection(e){const t=e.target.getAttribute("data-section-name");t&&(this._selectedSectionName=t)}_focusSection(e){switch(e.key){case"ArrowLeft":case"ArrowRight":this._switchSectionOnArrowPress(e);break;case"Enter":case" ":this._selectSection(e)}}_switchSectionOnArrowPress(e){const t=e.key,s="ArrowLeft"===t?-1:1,i=e.target.getAttribute("data-section-name"),a=this._sectionNames.indexOf(i),r=this._sectionNames;let o=null;-1!==a&&(r[a+s]?o=document.getElementById(r[a+s]):"ArrowLeft"===t?o=document.getElementById(r[r.length-1]):"ArrowRight"===t&&(o=document.getElementById(r[0])),o?.focus())}_watchForSectionChanges(e){if(this._generateSectionNames(),e){e.forEach((e=>{const s=`activeLayerInfo-${e.layer.uid}-version-change`;this.removeHandles(s),this._watchForSectionChanges(e.children),this.addHandles(t((()=>e.version),(()=>this._generateSectionNames())),s)}));const s="activeLayerInfos-collection-change";this.removeHandles(s),this.addHandles(e.on("change",(()=>this._watchForSectionChanges(e))),s)}}_generateSectionNames(){this._sectionNames.length=0,this._selectedSectionName=null,this.activeLayerInfos&&this.activeLayerInfos.forEach(this._generateSectionNamesForActiveLayerInfo,this)}_getSectionName(e,t,s){return`${this.id}${e.uid}-type-${t.type}-${s}`}_generateSectionNamesForActiveLayerInfo(e){e.children.forEach(this._generateSectionNamesForActiveLayerInfo,this),e.legendElements&&e.legendElements.forEach(((t,s)=>{this._sectionNames.push(this._getSectionName(e.layer,t,s))}))}_renderLegendForLayer(e){if(!e.ready)return null;if(e.children.length){const t=e.children.map((e=>this._renderLegendForLayer(e))).toArray();return x("div",{key:e.layer.uid,class:this.classes(n.service,n.groupLayer)},x("div",{class:n.serviceCaptionContainer},e.title),t)}{const t=e.legendElements;if(t&&!t.length)return null;const s=t.some((e=>"relationship-ramp"===e.type)),i=t.map(((t,i)=>this._renderLegendForElement(t,e,i,s))).filter((e=>!!e));if(!i.length)return null;const a={[n.groupLayerChild]:!!e.parent};return x("div",{key:e.layer.uid,class:this.classes(n.service,a)},x("div",{class:n.serviceCaptionContainer},x("div",{class:n.serviceCaptionText},e.title)),x("div",{class:n.serviceContent},i))}}_renderLegendForElement(e,t,s,i=!1,a=!1){const r="color-ramp"===e.type,o="opacity-ramp"===e.type,l=t.layer;let p=null;if("string"==typeof e.title)p=e.title;else if(e.title){const t=e.title,s=v(this.messages,t,r||o);p=t.title?`${t.title} (${s})`:s}const d=this._getSectionName(l,e,s),m=this._hasIndicators&&!a?x("div",null,x(_,{level:this.headingLevel,class:n.carouselTitle},t.title),x(_,{level:w(this.headingLevel),class:n.layerCaption},p)):p?x(_,{level:this.headingLevel,class:n.layerCaption},p):null,h=t.effectList;let y=null;switch(e.type){case"symbol-table":{const s=e.infos.map(((s,i)=>this._renderLegendForElementInfo(s,t,e.legendType,i))).filter((e=>!!e));if(s.length){const e=s[0].properties.classes&&s[0].properties.classes[n.symbolRow],t={[n.labelContainer]:!e&&!i,[n.relationshipLabelContainer]:i};y=x("div",{class:this.classes(t)},s)}break}case"color-ramp":case"opacity-ramp":case"heatmap-ramp":case"stretch-ramp":y=this._renderLegendForRamp(e,l.opacity,h);break;case"size-ramp":y=this._renderSizeRamp(e,l.opacity);break;case"pie-chart-ramp":y=this._renderPieChartRamp(e);break;case"relationship-ramp":y=c(e,this.id,{opacity:l.opacity,effectList:h,ariaLabel:this.messages.previewRelationshipRampAriaLabel});break;case"univariate-above-and-below-ramp":y=this._renderUnivariateAboveAndBelowRamp(e,l.opacity,h);break;case"univariate-color-size-ramp":y=this._renderUnivariateColorSizeRamp(e,l.opacity,h)}if(!y)return null;const g=x("div",{key:d,class:n.section,id:`${d}-panel`,role:"tabpanel","aria-labelledby":d,tabIndex:0},[m,y]);return a||this._sectionMap.set(d,g),g}_renderPieChartRamp(e){return x("div",{class:n.pieChartRampPreview,bind:e.preview,afterCreate:u})}_renderUnivariateAboveAndBelowRamp(e,t,s){const{sizeRampElement:i,colorRampElement:a}=p(e,t,"horizontal");if(!i)return null;const r=d(i,"full",!0,"horizontal"),o=m(i,"above",!0,"horizontal"),l=m(i,"below",!0,"horizontal"),c=12,g=this.messages?.previewColorRampAriaLabel,v=h(a,{width:o,height:c,rampAlignment:"horizontal",opacity:t,type:"above",effectList:s,ariaLabel:g}),f=h(a,{width:l,height:c,rampAlignment:"horizontal",opacity:t,type:"below",effectList:s,ariaLabel:g}),b=y(i,"card"),_=i.infos.map((e=>e.label)),w=_.length-1,L=_.map(((e,t)=>0===t||t===w?x("div",{key:t},e):null)),S={display:"flex",flexDirection:"column"},R={display:"flex",flexDirection:"row"},$={marginTop:"3px",display:"flex"};C(this.container)?$.marginRight=`${b}px`:$.marginLeft=`${b}px`;const k={width:`${r}px`,display:"flex",flexDirection:"row",justifyContent:"space-between"};return x("div",{class:n.layerRow,key:"size-ramp-preview",styles:S},x("div",{class:this.classes(n.symbolContainer,n.sizeRampHorizontal),styles:R},i.infos.map(((e,t)=>x("div",{key:t,class:n.symbol,bind:e.preview,afterCreate:u})))),v?x("div",{class:n.univariateAboveAndBelowColorRamp,styles:$,key:"color-ramp-preview"},x("div",{bind:v,afterCreate:u}),x("div",{bind:f,afterCreate:u})):null,x("div",{class:n.layerInfo},x("div",{class:n.rampLabelsContainer,styles:k},L)))}_renderUnivariateColorSizeRamp(e,t,s){const{sizeRampElement:i,colorRampElement:a}=g(e,"horizontal");if(!i)return null;const r=d(i,"full",!1,"horizontal"),o=m(i,"full",!1,"horizontal"),l=h(a,{width:o,height:12,rampAlignment:"horizontal",opacity:t,type:"full",effectList:s,ariaLabel:this.messages?.previewColorRampAriaLabel}),c=y(i,"card"),p=i.infos.length-1,v=i.infos.map(((e,t)=>0===t||t===p?x("div",{key:t},e.label):null)),f={display:"flex",flexDirection:"column"},b={display:"flex",flexDirection:"row"},_={marginTop:"3px",display:"flex"};C(this.container)?_.marginRight=`${c}px`:_.marginLeft=`${c}px`;const w={width:`${r}px`,display:"flex",flexDirection:"row",justifyContent:"space-between"};return x("div",{class:n.layerRow,key:"size-ramp-preview",styles:f},x("div",{class:this.classes(n.symbolContainer,n.sizeRampHorizontal),styles:b},i.infos.map(((e,t)=>x("div",{key:t,class:n.symbol,bind:e.preview,afterCreate:u})))),x("div",{class:n.univariateAboveAndBelowColorRamp,styles:_,key:"color-ramp-preview"},x("div",{bind:l,afterCreate:u})),x("div",{class:n.layerInfo},x("div",{class:n.rampLabelsContainer,styles:w},v)))}_renderLegendForElementInfo(e,t,s,i){const a=t.layer;if(e.type)return this._renderLegendForElement(e,t,i,!1,!0);const r=f(a,s),l=v(this.messages,e.label,!1)??"";if(e.preview){if(!e.symbol||!e.symbol.type.includes("simple-fill")){if(!e.label)return x("div",{key:i,bind:e.preview,afterCreate:u});const t={[n.symbolCell]:this._hasIndicators};return x("div",{key:i,class:this.classes(n.layerRow,{[n.symbolRow]:this._hasIndicators})},x("div",{class:this.classes(t),bind:e.preview,afterCreate:u}),x("div",{class:this.classes(n.imageLabel,{[n.labelCell]:this._hasIndicators})},l))}let s=255,r=255,c=255,p=0,d=255,m=255,h=255,y=0;const g=e.symbol.color&&e.symbol.color.a,v=e.symbol.outline&&e.symbol.outline.color&&e.symbol.outline.color.a;g&&(s=e.symbol.color.r,r=e.symbol.color.g,c=e.symbol.color.b,p=e.symbol.color.a*a.opacity),v&&(d=e.symbol.outline.color.r,m=e.symbol.outline.color.g,h=e.symbol.outline.color.b,y=e.symbol.outline.color.a*a.opacity);const f=e.symbol.color?.isBright??!0,b=f?"rgba(255, 255, 255, .6)":"rgba(0, 0, 0, .6)",_={background:g?`rgba(${s}, ${r}, ${c}, ${p})`:"none",color:f?"black":"white",textShadow:`-1px -1px 0 ${b},\n 1px -1px 0 ${b},\n -1px 1px 0 ${b},\n 1px 1px 0 ${b}`,border:v?`1px solid rgba(${d}, ${m}, ${h}, ${y})`:"none",filter:o(t.effectList)??void 0};return x("div",{key:i,class:n.layerRow},x("div",{class:n.labelElement,styles:_},l))}if(e.src){const t=this._renderImage(e,a,r);return x("div",{key:i,class:n.layerRow},t,x("div",{class:n.imageLabel},l))}}_renderImage(e,t,s){const{label:i,src:a,opacity:r}=e,o={[n.imageryLayerStretchedImage]:s,[n.symbol]:!s},l={opacity:`${null!=r?r:t.opacity}`};return x("img",{alt:v(this.messages,i,!1),"aria-label":v(this.messages,i,!1),src:a,border:0,width:e.width,height:e.height,class:this.classes(o),styles:l})}_renderSizeRampLines(e){const t=e.infos,i=t[0],a=t[t.length-1],r=i.symbol,o=this._hasIndicators,l=s(i.size+i.outlineSize)*j,n=s(a.size+a.outlineSize)*j,c=o?l:l+50*j,p=o?l/2+50*j:l,d=F(r),m=E(r),h=document.createElement("canvas");h.width=c,h.height=p,h.style.width=h.width/j+"px",h.style.height=h.height/j+"px";const y=h.getContext("2d");if(o){y.beginPath();const e=0,t=0,s=c/2-n/2,i=p;y.moveTo(e,t),y.lineTo(s,i);const a=c,r=0,o=c/2+n/2,l=p;y.moveTo(a,r),y.lineTo(o,l)}else{y.beginPath();const e=0,t=p/2-n/2,s=c,i=0;y.moveTo(e,t),y.lineTo(s,i);const a=0,r=p/2+n/2,o=c,l=p;y.moveTo(a,r),y.lineTo(o,l)}return y.strokeStyle=A,y.stroke(),x("div",{bind:h,afterCreate:u,styles:o?{display:"flex",marginTop:`-${d?0:m?l/2:0}px`,marginBottom:`-${d?n:m?n/2:0}px`}:{display:"flex",marginRight:`-${d?0:m?l/2:0}px`,marginLeft:`-${d?0:m?n/2:0}px`}})}_renderSizeRamp(e,t){const s=e.infos,i=s[0].label,a=s[s.length-1].label;let r=s[0].preview,o=s[s.length-1].preview;const l=this._hasIndicators,c={"flex-direction":l?"column":"row-reverse"};r&&(r=r.cloneNode(!0),r.style.display="flex"),o&&(o=o.cloneNode(!0),o.style.display="flex");const p={opacity:null!=t?`${t}`:""};return x("div",{class:this.classes(n.layerRow,{[n.sizeRampRow]:l})},x("div",{class:n.rampLabel},l?i:a),x("div",{class:n.sizeRampContainer,styles:c},x("div",{bind:r,afterCreate:u,class:n.sizeRampPreview,styles:p}),this._renderSizeRampLines(e),x("div",{bind:o,afterCreate:u,class:n.sizeRampContainer,styles:p})),x("div",{class:n.rampLabel},l?a:i))}_getRampStopLabel(e,t){switch(t){case"heatmap-ramp":return this.messages[e.label];case"stretch-ramp":return b(e,this.messages);default:return e.label}}_renderLegendForRamp(e,t,s){const i=e.infos,a=e.type,l="heatmap-ramp"===a,c=i.length-1,p=k,d=c>2&&!l?$*c:I,m=d+20,h=10,y=i.slice(0).reverse(),g=y.length-1,v=y.length%2!=0?y[y.length/2|0]:null,u=v&&x("div",{class:n.intervalSeparatorsContainer},x("div",{class:n.intervalSeparator},"|"),x("div",{class:n.rampLabel},this._getRampStopLabel(v,a))),f=[[{shape:{type:"path",path:`M0 ${p/2} L${h} 0 L${h} ${p} Z`},fill:y[0].color,stroke:{width:0}},{shape:{type:"rect",x:h,y:0,width:d,height:p},fill:{type:"linear",x1:h,y1:0,x2:d+h,y2:0,colors:y.map(((e,t)=>({color:e.color,offset:l&&"ratio"in e?e.ratio:t/c})))},stroke:{width:0}},{shape:{type:"path",path:`M${d+h} 0 L${m} ${p/2} L${d+h} ${p} Z`},fill:y[g].color,stroke:{width:0}}]],b=r(f,m,p),_={filter:o(s)??void 0,opacity:null==t?void 0:`${t}`},w={justifyContent:"center"};return x("div",{class:n.layerRow,styles:w},x("div",{class:n.rampLabel},this._getRampStopLabel(y[0],a)),x("div",{class:n.symbolContainer},x("div",{styles:_},b),u),x("div",{class:n.rampLabel},this._getRampStopLabel(y[g],a)))}};e([i()],T.prototype,"activeLayerInfos",void 0),e([i()],T.prototype,"headingLevel",void 0),e([i()],T.prototype,"layout",void 0),e([i(),S("esri/widgets/Legend/t9n/Legend")],T.prototype,"messages",void 0),e([i(),S("esri/t9n/common")],T.prototype,"messagesCommon",void 0),e([i({readOnly:!0})],T.prototype,"type",void 0),e([i()],T.prototype,"view",void 0),e([L()],T.prototype,"_selectSection",null),T=e([a("esri.widgets.Legend.styles.Card")],T);const U=T;export{U as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import"../../../intl.js";import{watch as t}from"../../../core/reactiveUtils.js";import{pt2px as s}from"../../../core/screenUtils.js";import{property as i}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import{renderSVG as r}from"../../../symbols/support/svgUtils.js";import{getCSSFilterFromEffectList as o}from"../../../symbols/support/utils.js";import l from"../../Widget.js";import{css as n}from"./CardCSS.js";import{renderRelationshipRamp as c}from"./support/relationshipUtils.js";import{getUnivariateAboveAndBelowRampElements as p,getUnivariateSizeRampSize as d,getUnivariateColorRampSize as m,getUnivariateColorRampPreview as h,getUnivariateColorRampMargin as y,getUnivariateColorSizeRampElements as g}from"./support/univariateUtils.js";import{getTitle as v,attachToNode as u,isImageryStretchedLegend as f,getStretchStopLabel as b}from"../support/styleUtils.js";import{Heading as _,incrementHeadingLevel as w}from"../../support/Heading.js";import{accessibleHandler as L}from"../../support/decorators/accessibleHandler.js";import{messageBundle as S}from"../../support/decorators/messageBundle.js";import{tsx as x}from"../../support/jsxFactory.js";import{isRTL as C}from"../../support/widgetUtils.js";import{substitute as R}from"../../../intl/substitute.js";const $=25,k=25,z=768,I=100;var N;!function(e){e.Auto="auto",e.Stack="stack",e.SideBySide="side-by-side"}(N||(N={}));const A="#ddd",j=window.devicePixelRatio;function E(e){if(e){if(e.type.includes("3d")){const t=e.symbolLayers&&e.symbolLayers.length;if(!t)return;const s=e.symbolLayers.at(t-1),i=s.resource&&s.resource.primitive;return"circle"===i||"cross"===i||"kite"===i||"sphere"===i||"cube"===i||"diamond"===i}{const t=e.style;return"circle"===t||"diamond"===t||"cross"===t}}}function F(e){if(e){if(e.type.includes("3d")){const t=e.symbolLayers&&e.symbolLayers.length;if(!t)return;const s=e.symbolLayers.at(t-1).get("resource.primitive");return"triangle"===s||"cone"===s||"tetrahedron"===s}return"triangle"===e.style}}let T=class extends l{constructor(e,t){super(e,t),this._hasIndicators=!1,this._selectedSectionName=null,this._sectionNames=[],this._sectionMap=new Map,this.activeLayerInfos=null,this.headingLevel=3,this.layout=N.Stack,this.messages=null,this.messagesCommon=null,this.type="card",this.view=null}initialize(){this.addHandles(t((()=>this.activeLayerInfos),(e=>{this.removeAllHandles(),this._watchForSectionChanges(e)})))}render(){const{view:e}=this;this._hasIndicators=this.layout===N.Auto&&e&&e.container.clientWidth<=z||this.layout===N.Stack;const t=this.activeLayerInfos,s=t&&t.toArray().map((e=>this._renderLegendForLayer(e))).filter((e=>!!e));this._hasIndicators?this._selectedSectionName&&this._sectionNames.includes(this._selectedSectionName)||(this._selectedSectionName=this._sectionNames&&this._sectionNames[0]):this._selectedSectionName=null;const i=this._sectionNames.length,a=this._sectionNames.map(((e,t)=>{const s=R(this.messagesCommon.pagination.pageText,{index:t+1,total:i});return x("div",{"aria-controls":`${e}-panel`,"aria-label":s,"aria-selected":(this._selectedSectionName===e).toString(),bind:this,class:this.classes(n.indicator,{[n.activated]:this._selectedSectionName===e}),"data-section-name":e,id:e,key:e,onclick:this._selectSection,onkeydown:this._focusSection,role:"tab",tabIndex:this._selectedSectionName===e?0:-1,title:s})})),r=this._hasIndicators&&i>1?x("div",{class:n.indicatorContainer,key:"carousel-navigation",role:"tablist"},a):null,o=this._hasIndicators?this._sectionMap.get(this._selectedSectionName):s&&s.length?s:null,l={[n.stacked]:this._hasIndicators};return x("div",{class:this.classes(n.base,l)},o||x("div",{class:n.message},this.messages.noLegend),r)}_selectSection(e){const t=e.target.getAttribute("data-section-name");t&&(this._selectedSectionName=t)}_focusSection(e){switch(e.key){case"ArrowLeft":case"ArrowRight":this._switchSectionOnArrowPress(e);break;case"Enter":case" ":this._selectSection(e)}}_switchSectionOnArrowPress(e){const t=e.key,s="ArrowLeft"===t?-1:1,i=e.target.getAttribute("data-section-name"),a=this._sectionNames.indexOf(i),r=this._sectionNames;let o=null;-1!==a&&(r[a+s]?o=document.getElementById(r[a+s]):"ArrowLeft"===t?o=document.getElementById(r[r.length-1]):"ArrowRight"===t&&(o=document.getElementById(r[0])),o?.focus())}_watchForSectionChanges(e){if(this._generateSectionNames(),e){e.forEach((e=>{const s=`activeLayerInfo-${e.layer.uid}-version-change`;this.removeHandles(s),this._watchForSectionChanges(e.children),this.addHandles(t((()=>e.version),(()=>this._generateSectionNames())),s)}));const s="activeLayerInfos-collection-change";this.removeHandles(s),this.addHandles(e.on("change",(()=>this._watchForSectionChanges(e))),s)}}_generateSectionNames(){this._sectionNames.length=0,this._selectedSectionName=null,this.activeLayerInfos&&this.activeLayerInfos.forEach(this._generateSectionNamesForActiveLayerInfo,this)}_getSectionName(e,t,s){return`${this.id}${e.uid}-type-${t.type}-${s}`}_generateSectionNamesForActiveLayerInfo(e){e.children.forEach(this._generateSectionNamesForActiveLayerInfo,this),e.legendElements&&e.legendElements.forEach(((t,s)=>{this._sectionNames.push(this._getSectionName(e.layer,t,s))}))}_renderLegendForLayer(e){if(!e.ready)return null;if(e.children.length){const t=e.children.map((e=>this._renderLegendForLayer(e))).toArray();return x("div",{class:this.classes(n.service,n.groupLayer),key:e.layer.uid},x("div",{class:n.serviceCaptionContainer},e.title),t)}{const t=e.legendElements;if(t&&!t.length)return null;const s=t.some((e=>"relationship-ramp"===e.type)),i=t.map(((t,i)=>this._renderLegendForElement(t,e,i,s))).filter((e=>!!e));if(!i.length)return null;const a={[n.groupLayerChild]:!!e.parent};return x("div",{class:this.classes(n.service,a),key:e.layer.uid},x("div",{class:n.serviceCaptionContainer},x("div",{class:n.serviceCaptionText},e.title)),x("div",{class:n.serviceContent},i))}}_renderLegendForElement(e,t,s,i=!1,a=!1){const r="color-ramp"===e.type,o="opacity-ramp"===e.type,l=t.layer;let p=null;if("string"==typeof e.title)p=e.title;else if(e.title){const t=e.title,s=v(this.messages,t,r||o);p=t.title?`${t.title} (${s})`:s}const d=this._getSectionName(l,e,s),m=this._hasIndicators&&!a?x("div",null,x(_,{class:n.carouselTitle,level:this.headingLevel},t.title),x(_,{class:n.layerCaption,level:w(this.headingLevel)},p)):p?x(_,{class:n.layerCaption,level:this.headingLevel},p):null,h=t.effectList;let y=null;switch(e.type){case"symbol-table":{const s=e.infos.map(((s,i)=>this._renderLegendForElementInfo(s,t,e.legendType,i))).filter((e=>!!e));if(s.length){const e=s[0].properties.classes&&s[0].properties.classes[n.symbolRow],t={[n.labelContainer]:!e&&!i,[n.relationshipLabelContainer]:i};y=x("div",{class:this.classes(t)},s)}break}case"color-ramp":case"opacity-ramp":case"heatmap-ramp":case"stretch-ramp":y=this._renderLegendForRamp(e,l.opacity,h);break;case"size-ramp":y=this._renderSizeRamp(e,l.opacity);break;case"pie-chart-ramp":y=this._renderPieChartRamp(e);break;case"relationship-ramp":y=c(e,this.id,{opacity:l.opacity,effectList:h,ariaLabel:this.messages.previewRelationshipRampAriaLabel});break;case"univariate-above-and-below-ramp":y=this._renderUnivariateAboveAndBelowRamp(e,l.opacity,h);break;case"univariate-color-size-ramp":y=this._renderUnivariateColorSizeRamp(e,l.opacity,h)}if(!y)return null;const g=x("div",{"aria-labelledby":d,class:n.section,id:`${d}-panel`,key:d,role:"tabpanel",tabIndex:0},[m,y]);return a||this._sectionMap.set(d,g),g}_renderPieChartRamp(e){return x("div",{afterCreate:u,bind:e.preview,class:n.pieChartRampPreview})}_renderUnivariateAboveAndBelowRamp(e,t,s){const{sizeRampElement:i,colorRampElement:a}=p(e,t,"horizontal");if(!i)return null;const r=d(i,"full",!0,"horizontal"),o=m(i,"above",!0,"horizontal"),l=m(i,"below",!0,"horizontal"),c=12,g=this.messages?.previewColorRampAriaLabel,v=h(a,{width:o,height:c,rampAlignment:"horizontal",opacity:t,type:"above",effectList:s,ariaLabel:g}),f=h(a,{width:l,height:c,rampAlignment:"horizontal",opacity:t,type:"below",effectList:s,ariaLabel:g}),b=y(i,"card"),_=i.infos.map((e=>e.label)),w=_.length-1,L=_.map(((e,t)=>0===t||t===w?x("div",{key:t},e):null)),S={display:"flex",flexDirection:"column"},R={display:"flex",flexDirection:"row"},$={marginTop:"3px",display:"flex"};C(this.container)?$.marginRight=`${b}px`:$.marginLeft=`${b}px`;const k={width:`${r}px`,display:"flex",flexDirection:"row",justifyContent:"space-between"};return x("div",{class:n.layerRow,key:"size-ramp-preview",styles:S},x("div",{class:this.classes(n.symbolContainer,n.sizeRampHorizontal),styles:R},i.infos.map(((e,t)=>x("div",{afterCreate:u,bind:e.preview,class:n.symbol,key:t})))),v?x("div",{class:n.univariateAboveAndBelowColorRamp,key:"color-ramp-preview",styles:$},x("div",{afterCreate:u,bind:v}),x("div",{afterCreate:u,bind:f})):null,x("div",{class:n.layerInfo},x("div",{class:n.rampLabelsContainer,styles:k},L)))}_renderUnivariateColorSizeRamp(e,t,s){const{sizeRampElement:i,colorRampElement:a}=g(e,"horizontal");if(!i)return null;const r=d(i,"full",!1,"horizontal"),o=m(i,"full",!1,"horizontal"),l=h(a,{width:o,height:12,rampAlignment:"horizontal",opacity:t,type:"full",effectList:s,ariaLabel:this.messages?.previewColorRampAriaLabel}),c=y(i,"card"),p=i.infos.length-1,v=i.infos.map(((e,t)=>0===t||t===p?x("div",{key:t},e.label):null)),f={display:"flex",flexDirection:"column"},b={display:"flex",flexDirection:"row"},_={marginTop:"3px",display:"flex"};C(this.container)?_.marginRight=`${c}px`:_.marginLeft=`${c}px`;const w={width:`${r}px`,display:"flex",flexDirection:"row",justifyContent:"space-between"};return x("div",{class:n.layerRow,key:"size-ramp-preview",styles:f},x("div",{class:this.classes(n.symbolContainer,n.sizeRampHorizontal),styles:b},i.infos.map(((e,t)=>x("div",{afterCreate:u,bind:e.preview,class:n.symbol,key:t})))),x("div",{class:n.univariateAboveAndBelowColorRamp,key:"color-ramp-preview",styles:_},x("div",{afterCreate:u,bind:l})),x("div",{class:n.layerInfo},x("div",{class:n.rampLabelsContainer,styles:w},v)))}_renderLegendForElementInfo(e,t,s,i){const a=t.layer;if(e.type)return this._renderLegendForElement(e,t,i,!1,!0);const r=f(a,s),l=v(this.messages,e.label,!1)??"";if(e.preview){if(!e.symbol||!e.symbol.type.includes("simple-fill")){if(!e.label)return x("div",{afterCreate:u,bind:e.preview,key:i});const t={[n.symbolCell]:this._hasIndicators};return x("div",{class:this.classes(n.layerRow,{[n.symbolRow]:this._hasIndicators}),key:i},x("div",{afterCreate:u,bind:e.preview,class:this.classes(t)}),x("div",{class:this.classes(n.imageLabel,{[n.labelCell]:this._hasIndicators})},l))}let s=255,r=255,c=255,p=0,d=255,m=255,h=255,y=0;const g=e.symbol.color&&e.symbol.color.a,v=e.symbol.outline&&e.symbol.outline.color&&e.symbol.outline.color.a;g&&(s=e.symbol.color.r,r=e.symbol.color.g,c=e.symbol.color.b,p=e.symbol.color.a*a.opacity),v&&(d=e.symbol.outline.color.r,m=e.symbol.outline.color.g,h=e.symbol.outline.color.b,y=e.symbol.outline.color.a*a.opacity);const f=e.symbol.color?.isBright??!0,b=f?"rgba(255, 255, 255, .6)":"rgba(0, 0, 0, .6)",_={background:g?`rgba(${s}, ${r}, ${c}, ${p})`:"none",color:f?"black":"white",textShadow:`-1px -1px 0 ${b},\n 1px -1px 0 ${b},\n -1px 1px 0 ${b},\n 1px 1px 0 ${b}`,border:v?`1px solid rgba(${d}, ${m}, ${h}, ${y})`:"none",filter:o(t.effectList)??void 0};return x("div",{class:n.layerRow,key:i},x("div",{class:n.labelElement,styles:_},l))}if(e.src){const t=this._renderImage(e,a,r);return x("div",{class:n.layerRow,key:i},t,x("div",{class:n.imageLabel},l))}}_renderImage(e,t,s){const{label:i,src:a,opacity:r}=e,o={[n.imageryLayerStretchedImage]:s,[n.symbol]:!s},l={opacity:`${null!=r?r:t.opacity}`};return x("img",{alt:v(this.messages,i,!1),"aria-label":v(this.messages,i,!1),border:0,class:this.classes(o),height:e.height,src:a,styles:l,width:e.width})}_renderSizeRampLines(e){const t=e.infos,i=t[0],a=t[t.length-1],r=i.symbol,o=this._hasIndicators,l=s(i.size+i.outlineSize)*j,n=s(a.size+a.outlineSize)*j,c=o?l:l+50*j,p=o?l/2+50*j:l,d=F(r),m=E(r),h=document.createElement("canvas");h.width=c,h.height=p,h.style.width=h.width/j+"px",h.style.height=h.height/j+"px";const y=h.getContext("2d");if(o){y.beginPath();const e=0,t=0,s=c/2-n/2,i=p;y.moveTo(e,t),y.lineTo(s,i);const a=c,r=0,o=c/2+n/2,l=p;y.moveTo(a,r),y.lineTo(o,l)}else{y.beginPath();const e=0,t=p/2-n/2,s=c,i=0;y.moveTo(e,t),y.lineTo(s,i);const a=0,r=p/2+n/2,o=c,l=p;y.moveTo(a,r),y.lineTo(o,l)}return y.strokeStyle=A,y.stroke(),x("div",{afterCreate:u,bind:h,styles:o?{display:"flex",marginTop:`-${d?0:m?l/2:0}px`,marginBottom:`-${d?n:m?n/2:0}px`}:{display:"flex",marginRight:`-${d?0:m?l/2:0}px`,marginLeft:`-${d?0:m?n/2:0}px`}})}_renderSizeRamp(e,t){const s=e.infos,i=s[0].label,a=s[s.length-1].label;let r=s[0].preview,o=s[s.length-1].preview;const l=this._hasIndicators,c={"flex-direction":l?"column":"row-reverse"};r&&(r=r.cloneNode(!0),r.style.display="flex"),o&&(o=o.cloneNode(!0),o.style.display="flex");const p={opacity:null!=t?`${t}`:""};return x("div",{class:this.classes(n.layerRow,{[n.sizeRampRow]:l})},x("div",{class:n.rampLabel},l?i:a),x("div",{class:n.sizeRampContainer,styles:c},x("div",{afterCreate:u,bind:r,class:n.sizeRampPreview,styles:p}),this._renderSizeRampLines(e),x("div",{afterCreate:u,bind:o,class:n.sizeRampContainer,styles:p})),x("div",{class:n.rampLabel},l?a:i))}_getRampStopLabel(e,t){switch(t){case"heatmap-ramp":return this.messages[e.label];case"stretch-ramp":return b(e,this.messages);default:return e.label}}_renderLegendForRamp(e,t,s){const i=e.infos,a=e.type,l="heatmap-ramp"===a,c=i.length-1,p=k,d=c>2&&!l?$*c:I,m=d+20,h=10,y=i.slice(0).reverse(),g=y.length-1,v=y.length%2!=0?y[y.length/2|0]:null,u=v&&x("div",{class:n.intervalSeparatorsContainer},x("div",{class:n.intervalSeparator},"|"),x("div",{class:n.rampLabel},this._getRampStopLabel(v,a))),f=[[{shape:{type:"path",path:`M0 ${p/2} L${h} 0 L${h} ${p} Z`},fill:y[0].color,stroke:{width:0}},{shape:{type:"rect",x:h,y:0,width:d,height:p},fill:{type:"linear",x1:h,y1:0,x2:d+h,y2:0,colors:y.map(((e,t)=>({color:e.color,offset:l&&"ratio"in e?e.ratio:t/c})))},stroke:{width:0}},{shape:{type:"path",path:`M${d+h} 0 L${m} ${p/2} L${d+h} ${p} Z`},fill:y[g].color,stroke:{width:0}}]],b=r(f,m,p),_={filter:o(s)??void 0,opacity:null==t?void 0:`${t}`},w={justifyContent:"center"};return x("div",{class:n.layerRow,styles:w},x("div",{class:n.rampLabel},this._getRampStopLabel(y[0],a)),x("div",{class:n.symbolContainer},x("div",{styles:_},b),u),x("div",{class:n.rampLabel},this._getRampStopLabel(y[g],a)))}};e([i()],T.prototype,"activeLayerInfos",void 0),e([i()],T.prototype,"headingLevel",void 0),e([i()],T.prototype,"layout",void 0),e([i(),S("esri/widgets/Legend/t9n/Legend")],T.prototype,"messages",void 0),e([i(),S("esri/t9n/common")],T.prototype,"messagesCommon",void 0),e([i({readOnly:!0})],T.prototype,"type",void 0),e([i()],T.prototype,"view",void 0),e([L()],T.prototype,"_selectSection",null),T=e([a("esri.widgets.Legend.styles.Card")],T);const U=T;export{U as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import{property as s}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as t}from"../../../core/accessorSupport/decorators/subclass.js";import a from"../../Widget.js";import{css as r,legend as i}from"./ClassicCSS.js";import{renderRelationshipRamp as l}from"./support/relationshipUtils.js";import{getUnivariateAboveAndBelowRampElements as o,getUnivariateColorRampSize as n,getUnivariateColorRampPreview as p,getUnivariateColorRampMargin as d,getUnivariateColorSizeRampElements as c}from"./support/univariateUtils.js";import{getTitle as m,isRendererTitle as y,attachToNode as v,getStretchStopLabel as h,isImageryStretchedLegend as g}from"../support/styleUtils.js";import{globalCss as u}from"../../support/globalCss.js";import{Heading as b}from"../../support/Heading.js";import"../../support/widgetUtils.js";import{messageBundle as f}from"../../support/decorators/messageBundle.js";import{tsx as L}from"../../support/jsxFactory.js";const w=`${i}__`,C=24,R={display:"flex",alignItems:"flex-start"},A={marginLeft:"3px"},_={display:"table-cell",verticalAlign:"middle"};let j=class extends a{constructor(e,s){super(e,s),this.activeLayerInfos=null,this.headingLevel=3,this.messages=null,this.type="classic"}render(){const e=this.activeLayerInfos,s=e&&e.toArray().map((e=>this._renderLegendForLayer(e))).filter((e=>!!e));return L("div",null,s&&s.length?s:L("div",{class:r.message},this.messages.noLegend))}_renderLegendForLayer(e){if(!e.ready)return null;const s=!!e.children.length,t=`${w}${e.layer.uid}-version-${e.version}`,a=e.title?b({level:this.headingLevel,class:this.classes(u.heading,r.label)},e.title):null;if(s){const s=e.children.map((e=>this._renderLegendForLayer(e))).toArray();return L("div",{key:t,class:this.classes(r.service,r.groupLayer)},a,s)}{const s=e.legendElements;if(s&&!s.length)return null;const i=s.map((s=>this._renderLegendForElement(s,e.layer,e.effectList))).filter((e=>!!e));if(!i.length)return null;const l={[r.groupLayerChild]:!!e.parent};return L("div",{key:t,class:this.classes(r.service,l)},a,L("div",{class:r.layer},i))}}_renderLegendForElement(e,s,t,a){const i="color-ramp"===e.type,o="opacity-ramp"===e.type,n="size-ramp"===e.type;let p=null;if("symbol-table"===e.type||n){const a=e.infos.map((a=>this._renderLegendForElementInfo(a,s,t,n,e.legendType))).filter((e=>!!e));a.length&&(p=L("div",{class:r.layerBody},a))}else"color-ramp"===e.type||"opacity-ramp"===e.type||"heatmap-ramp"===e.type||"stretch-ramp"===e.type?p=this._renderLegendForRamp(e,s.opacity):"relationship-ramp"===e.type?p=l(e,this.id,{opacity:s.opacity,effectList:t,ariaLabel:this.messages.previewRelationshipRampAriaLabel}):"pie-chart-ramp"===e.type?p=this._renderPieChartRamp(e):"univariate-above-and-below-ramp"===e.type?p=this._renderUnivariateAboveAndBelowRamp(e,s.opacity,t):"univariate-color-size-ramp"===e.type&&(p=this._renderUnivariateColorSizeRamp(e,s.opacity,t));if(!p)return null;const d=e.title;let c=null;if("string"==typeof d)c=d;else if(d){const e=m(this.messages,d,i||o);c=y(d,i||o)&&d.title?`${d.title} (${e})`:e}const v=a?r.layerChildTable:r.layerTable,h=c?L("div",{class:r.layerCaption},c):null,g={[r.layerTableSizeRamp]:n||!a};return L("div",{class:this.classes(v,g)},h,p)}_renderPieChartRamp(e){return L("div",{bind:e.preview,afterCreate:v})}_renderUnivariateAboveAndBelowRamp(e,s,t){const{sizeRampElement:a,colorRampElement:i}=o(e,s);if(!a)return null;const l=this.messages?.previewColorRampAriaLabel,c=n(a,"above",!0),m=n(a,"below",!0),y=12,h=p(i,{width:y,height:c,rampAlignment:"vertical",opacity:s,type:"above",effectList:t,ariaLabel:l}),g=p(i,{width:y,height:m,rampAlignment:"vertical",opacity:s,type:"below",effectList:t,ariaLabel:l}),u=d(a),b=a.infos.map((e=>e.label)),f=b.map(((e,s)=>{const t=2===s;return 0===s?L("div",{key:s,class:e?h?r.univariateAboveAndBelowLabel:r.rampLabel:void 0},e):t?L("div",null):null})),w=b.length-1,C=Math.floor(b.length/2),j=b.map(((e,s)=>s===C||s===w?L("div",{key:s,class:e?h?r.univariateAboveAndBelowLabel:r.rampLabel:void 0},e):null)),$={display:"table-cell",verticalAlign:"middle"},I={marginTop:`${u}px`},x={height:`${c}px`},S={height:`${m}px`};return L("div",{key:"univariate-above-and-below-ramp-preview",styles:R},L("div",{class:r.layerBody},a.infos.map(((e,s)=>L("div",{class:this.classes(r.layerRow,r.sizeRamp)},L("div",{class:r.symbol,styles:$,bind:e.preview,afterCreate:v}),h||s%2!=0?null:L("div",{class:r.layerInfo},b[s]))))),h?L("div",{styles:I,key:"color-ramp-preview"},L("div",{styles:A},L("div",{styles:_},L("div",{class:r.rampContainer,bind:h,afterCreate:v})),L("div",{styles:_},L("div",{class:r.rampLabelsContainer,styles:x},f))),L("div",{styles:A},L("div",{styles:_},L("div",{class:r.rampContainer,bind:g,afterCreate:v})),L("div",{styles:_},L("div",{class:r.rampLabelsContainer,styles:S},j)))):null)}_renderUnivariateColorSizeRamp(e,s,t){const{sizeRampElement:a,colorRampElement:i}=c(e);if(!a)return null;const l=d(a),o=12,m=n(a,"full",!1),y=p(i,{width:o,height:m,rampAlignment:"vertical",opacity:s,type:"full",effectList:t,ariaLabel:this.messages?.previewColorRampAriaLabel}),h=a.infos.length-1,g=a.infos.map(((e,s)=>0===s||s===h?L("div",{key:s,class:e.label?i?r.univariateAboveAndBelowLabel:r.rampLabel:void 0},e.label):null)),u={display:"table-cell",verticalAlign:"middle"},b={marginTop:`${l}px`},f={height:`${m}px`};return L("div",{key:"univariate-above-and-below-ramp-preview",styles:R},L("div",{class:r.layerBody},a.infos.map((e=>L("div",{class:this.classes(r.layerRow,r.sizeRamp)},L("div",{class:r.symbol,styles:u,bind:e.preview,afterCreate:v}))))),L("div",{styles:b,key:"color-ramp-preview"},L("div",{styles:A},L("div",{styles:_},L("div",{class:r.rampContainer,bind:y,afterCreate:v})),L("div",{styles:_},L("div",{class:r.rampLabelsContainer,styles:f},g)))))}_renderLegendForRamp(e,s){const t=e.infos,a="opacity-ramp"===e.type,i="heatmap-ramp"===e.type,l="stretch-ramp"===e.type,o=e.preview,n=a?r.opacityRamp:"";o.className=`${r.colorRamp} ${n}`,null!=s&&(o.style.opacity=s.toString());const p=t.map((e=>L("div",{class:e.label?r.rampLabel:void 0},i?this.messages[e.label]||e.label:l?h(e,this.messages):e.label))),d={width:`${C}px`},c={height:o.style.height};return L("div",{class:r.layerRow},L("div",{class:r.symbolContainer,styles:d},L("div",{class:r.rampContainer,bind:o,afterCreate:v})),L("div",{class:r.layerInfo},L("div",{class:r.rampLabelsContainer,styles:c},p)))}_renderLegendForElementInfo(e,s,t,a,i){if(e.type)return this._renderLegendForElement(e,s,t,!0);let l=null;const o=g(s,i);if(e.preview?l=L("div",{class:r.symbol,bind:e.preview,afterCreate:v}):e.src&&(l=this._renderImage(e,s,o)),!l)return null;const n={[r.imageryLayerInfoStretched]:o},p={[r.imageryLayerInfoStretched]:o,[r.sizeRamp]:!o&&a};return L("div",{class:r.layerRow},L("div",{class:this.classes(r.symbolContainer,p)},l),L("div",{class:this.classes(r.layerInfo,n)},m(this.messages,e.label,!1)||""))}_renderImage(e,s,t){const{label:a,src:i,opacity:l}=e,o={[r.imageryLayerStretchedImage]:t,[r.symbol]:!t},n={opacity:`${null!=l?l:s.opacity}`};return L("img",{alt:m(this.messages,a,!1),"aria-label":m(this.messages,a,!1),src:i,border:0,width:e.width,height:e.height,class:this.classes(o),styles:n})}};e([s()],j.prototype,"activeLayerInfos",void 0),e([s()],j.prototype,"headingLevel",void 0),e([s(),f("esri/widgets/Legend/t9n/Legend")],j.prototype,"messages",void 0),e([s({readOnly:!0})],j.prototype,"type",void 0),j=e([t("esri.widgets.Legend.styles.Classic")],j);const $=j;export{$ as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import{property as s}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import{subclass as t}from"../../../core/accessorSupport/decorators/subclass.js";import a from"../../Widget.js";import{css as r,legend as i}from"./ClassicCSS.js";import{renderRelationshipRamp as l}from"./support/relationshipUtils.js";import{getUnivariateAboveAndBelowRampElements as o,getUnivariateColorRampSize as n,getUnivariateColorRampPreview as p,getUnivariateColorRampMargin as d,getUnivariateColorSizeRampElements as c}from"./support/univariateUtils.js";import{getTitle as m,isRendererTitle as y,attachToNode as v,getStretchStopLabel as h,isImageryStretchedLegend as g}from"../support/styleUtils.js";import{globalCss as u}from"../../support/globalCss.js";import{Heading as b}from"../../support/Heading.js";import"../../support/widgetUtils.js";import{messageBundle as f}from"../../support/decorators/messageBundle.js";import{tsx as L}from"../../support/jsxFactory.js";const w=`${i}__`,C=24,R={display:"flex",alignItems:"flex-start"},A={marginLeft:"3px"},_={display:"table-cell",verticalAlign:"middle"};let j=class extends a{constructor(e,s){super(e,s),this.activeLayerInfos=null,this.headingLevel=3,this.messages=null,this.type="classic"}render(){const e=this.activeLayerInfos,s=e&&e.toArray().map((e=>this._renderLegendForLayer(e))).filter((e=>!!e));return L("div",null,s&&s.length?s:L("div",{class:r.message},this.messages.noLegend))}_renderLegendForLayer(e){if(!e.ready)return null;const s=!!e.children.length,t=`${w}${e.layer.uid}-version-${e.version}`,a=e.title?b({level:this.headingLevel,class:this.classes(u.heading,r.label)},e.title):null;if(s){const s=e.children.map((e=>this._renderLegendForLayer(e))).toArray();return L("div",{class:this.classes(r.service,r.groupLayer),key:t},a,s)}{const s=e.legendElements;if(s&&!s.length)return null;const i=s.map((s=>this._renderLegendForElement(s,e.layer,e.effectList))).filter((e=>!!e));if(!i.length)return null;const l={[r.groupLayerChild]:!!e.parent};return L("div",{class:this.classes(r.service,l),key:t},a,L("div",{class:r.layer},i))}}_renderLegendForElement(e,s,t,a){const i="color-ramp"===e.type,o="opacity-ramp"===e.type,n="size-ramp"===e.type;let p=null;if("symbol-table"===e.type||n){const a=e.infos.map((a=>this._renderLegendForElementInfo(a,s,t,n,e.legendType))).filter((e=>!!e));a.length&&(p=L("div",{class:r.layerBody},a))}else"color-ramp"===e.type||"opacity-ramp"===e.type||"heatmap-ramp"===e.type||"stretch-ramp"===e.type?p=this._renderLegendForRamp(e,s.opacity):"relationship-ramp"===e.type?p=l(e,this.id,{opacity:s.opacity,effectList:t,ariaLabel:this.messages.previewRelationshipRampAriaLabel}):"pie-chart-ramp"===e.type?p=this._renderPieChartRamp(e):"univariate-above-and-below-ramp"===e.type?p=this._renderUnivariateAboveAndBelowRamp(e,s.opacity,t):"univariate-color-size-ramp"===e.type&&(p=this._renderUnivariateColorSizeRamp(e,s.opacity,t));if(!p)return null;const d=e.title;let c=null;if("string"==typeof d)c=d;else if(d){const e=m(this.messages,d,i||o);c=y(d,i||o)&&d.title?`${d.title} (${e})`:e}const v=a?r.layerChildTable:r.layerTable,h=c?L("div",{class:r.layerCaption},c):null,g={[r.layerTableSizeRamp]:n||!a};return L("div",{class:this.classes(v,g)},h,p)}_renderPieChartRamp(e){return L("div",{afterCreate:v,bind:e.preview})}_renderUnivariateAboveAndBelowRamp(e,s,t){const{sizeRampElement:a,colorRampElement:i}=o(e,s);if(!a)return null;const l=this.messages?.previewColorRampAriaLabel,c=n(a,"above",!0),m=n(a,"below",!0),y=12,h=p(i,{width:y,height:c,rampAlignment:"vertical",opacity:s,type:"above",effectList:t,ariaLabel:l}),g=p(i,{width:y,height:m,rampAlignment:"vertical",opacity:s,type:"below",effectList:t,ariaLabel:l}),u=d(a),b=a.infos.map((e=>e.label)),f=b.map(((e,s)=>{const t=2===s;return 0===s?L("div",{class:e?h?r.univariateAboveAndBelowLabel:r.rampLabel:void 0,key:s},e):t?L("div",null):null})),w=b.length-1,C=Math.floor(b.length/2),j=b.map(((e,s)=>s===C||s===w?L("div",{class:e?h?r.univariateAboveAndBelowLabel:r.rampLabel:void 0,key:s},e):null)),$={display:"table-cell",verticalAlign:"middle"},I={marginTop:`${u}px`},x={height:`${c}px`},S={height:`${m}px`};return L("div",{key:"univariate-above-and-below-ramp-preview",styles:R},L("div",{class:r.layerBody},a.infos.map(((e,s)=>L("div",{class:this.classes(r.layerRow,r.sizeRamp)},L("div",{afterCreate:v,bind:e.preview,class:r.symbol,styles:$}),h||s%2!=0?null:L("div",{class:r.layerInfo},b[s]))))),h?L("div",{key:"color-ramp-preview",styles:I},L("div",{styles:A},L("div",{styles:_},L("div",{afterCreate:v,bind:h,class:r.rampContainer})),L("div",{styles:_},L("div",{class:r.rampLabelsContainer,styles:x},f))),L("div",{styles:A},L("div",{styles:_},L("div",{afterCreate:v,bind:g,class:r.rampContainer})),L("div",{styles:_},L("div",{class:r.rampLabelsContainer,styles:S},j)))):null)}_renderUnivariateColorSizeRamp(e,s,t){const{sizeRampElement:a,colorRampElement:i}=c(e);if(!a)return null;const l=d(a),o=12,m=n(a,"full",!1),y=p(i,{width:o,height:m,rampAlignment:"vertical",opacity:s,type:"full",effectList:t,ariaLabel:this.messages?.previewColorRampAriaLabel}),h=a.infos.length-1,g=a.infos.map(((e,s)=>0===s||s===h?L("div",{class:e.label?i?r.univariateAboveAndBelowLabel:r.rampLabel:void 0,key:s},e.label):null)),u={display:"table-cell",verticalAlign:"middle"},b={marginTop:`${l}px`},f={height:`${m}px`};return L("div",{key:"univariate-above-and-below-ramp-preview",styles:R},L("div",{class:r.layerBody},a.infos.map((e=>L("div",{class:this.classes(r.layerRow,r.sizeRamp)},L("div",{afterCreate:v,bind:e.preview,class:r.symbol,styles:u}))))),L("div",{key:"color-ramp-preview",styles:b},L("div",{styles:A},L("div",{styles:_},L("div",{afterCreate:v,bind:y,class:r.rampContainer})),L("div",{styles:_},L("div",{class:r.rampLabelsContainer,styles:f},g)))))}_renderLegendForRamp(e,s){const t=e.infos,a="opacity-ramp"===e.type,i="heatmap-ramp"===e.type,l="stretch-ramp"===e.type,o=e.preview,n=a?r.opacityRamp:"";o.className=`${r.colorRamp} ${n}`,null!=s&&(o.style.opacity=s.toString());const p=t.map((e=>L("div",{class:e.label?r.rampLabel:void 0},i?this.messages[e.label]||e.label:l?h(e,this.messages):e.label))),d={width:`${C}px`},c={height:o.style.height};return L("div",{class:r.layerRow},L("div",{class:r.symbolContainer,styles:d},L("div",{afterCreate:v,bind:o,class:r.rampContainer})),L("div",{class:r.layerInfo},L("div",{class:r.rampLabelsContainer,styles:c},p)))}_renderLegendForElementInfo(e,s,t,a,i){if(e.type)return this._renderLegendForElement(e,s,t,!0);let l=null;const o=g(s,i);if(e.preview?l=L("div",{afterCreate:v,bind:e.preview,class:r.symbol}):e.src&&(l=this._renderImage(e,s,o)),!l)return null;const n={[r.imageryLayerInfoStretched]:o},p={[r.imageryLayerInfoStretched]:o,[r.sizeRamp]:!o&&a};return L("div",{class:r.layerRow},L("div",{class:this.classes(r.symbolContainer,p)},l),L("div",{class:this.classes(r.layerInfo,n)},m(this.messages,e.label,!1)||""))}_renderImage(e,s,t){const{label:a,src:i,opacity:l}=e,o={[r.imageryLayerStretchedImage]:t,[r.symbol]:!t},n={opacity:`${null!=l?l:s.opacity}`};return L("img",{alt:m(this.messages,a,!1),"aria-label":m(this.messages,a,!1),border:0,class:this.classes(o),height:e.height,src:i,styles:n,width:e.width})}};e([s()],j.prototype,"activeLayerInfos",void 0),e([s()],j.prototype,"headingLevel",void 0),e([s(),f("esri/widgets/Legend/t9n/Legend")],j.prototype,"messages",void 0),e([s({readOnly:!0})],j.prototype,"type",void 0),j=e([t("esri.widgets.Legend.styles.Classic")],j);const $=j;export{$ as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{generateFillAttributes as e,generateStrokeAttributes as l,renderDef as a,renderShape as r,getBoundingBox as t,computeBBox as s,getTransformMatrix as o}from"../../../../symbols/support/svgUtils.js";import{getCSSFilterFromEffectList as i}from"../../../../symbols/support/utils.js";import{isRTL as n,classes as d}from"../../../support/widgetUtils.js";import{tsx as m}from"../../../support/jsxFactory.js";const b="esri-relationship-ramp",u=`${b}--diamond`,c=`${b}--square`,f="http://www.w3.org/2000/svg",p={diamondContainer:`${u}__container`,diamondLeftCol:`${u}__left-column`,diamondRightCol:`${u}__right-column`,diamondMidCol:`${u}__middle-column`,diamondMidColLabel:`${u}__middle-column--label`,diamondMidColRamp:`${u}__middle-column--ramp`,squareTable:`${c}__table`,squareTableRow:`${c}__table-row`,squareTableCell:`${c}__table-cell`,squareTableLabel:`${c}__table-label`,squareTableLabelLeftBottom:`${c}__table-label--left-bottom`,squareTableLabelRightBottom:`${c}__table-label--right-bottom`,squareTableLabelLeftTop:`${c}__table-label--left-top`,squareTableLabelRightTop:`${c}__table-label--right-top`};function h(e,l,a={}){const{focus:r,labels:t}=e,s=!!r,o=T(e,l,a),i={justifyContent:"center"},b=n();return s?m("div",{class:p.diamondContainer,styles:i},m("div",{class:p.diamondLeftCol},b?t.right:t.left),m("div",{class:p.diamondMidCol},m("div",{class:p.diamondMidColLabel},t.top),o,m("div",{class:p.diamondMidColLabel},t.bottom)),m("div",{class:p.diamondRightCol},b?t.left:t.right)):m("div",{class:p.squareTable},m("div",{class:p.squareTableRow},m("div",{class:d(p.squareTableCell,p.squareTableLabel,p.squareTableLabelRightBottom)},b?t.top:t.left),m("div",{class:p.squareTableCell}),m("div",{class:d(p.squareTableCell,p.squareTableLabel,p.squareTableLabelLeftBottom)},b?t.left:t.top)),m("div",{class:p.squareTableRow},m("div",{class:p.squareTableCell}),o,m("div",{class:p.squareTableCell})),m("div",{class:p.squareTableRow},m("div",{class:d(p.squareTableCell,p.squareTableLabel,p.squareTableLabelRightTop)},b?t.right:t.bottom),m("div",{class:p.squareTableCell}),m("div",{class:d(p.squareTableCell,p.squareTableLabel,p.squareTableLabelLeftTop)},b?t.bottom:t.right)))}function k(e,l,a){const r=`${a}_arrowStart`,t=`${a}_arrowEnd`,s="left"===e,o={markerStart:null,markerEnd:null};switch(l){case"HL":s?o.markerStart=`url(#${t})`:o.markerEnd=`url(#${r})`;break;case"LL":o.markerStart=`url(#${t})`;break;case"LH":s?o.markerEnd=`url(#${r})`:o.markerStart=`url(#${t})`;break;default:o.markerEnd=`url(#${r})`}return o}function T(n,d,b={}){const{focus:u,numClasses:c,colors:h,rotation:T}=n,{opacity:_,effectList:q,ariaLabel:L}=b,g=b.size??60,$=!!u,C=Math.sqrt(g**2+g**2)+($?0:5),v=[],w=[],y=[],x=(g||75)/c;for(let s=0;s<c;s++){const o=s*x;for(let i=0;i<c;i++){const n=i*x,d=e(h[s][i]),m=l(null),b={type:"rect",x:n,y:o,width:x,height:x},u=a(d);u&&v.push(u);const c=r(b,d.fill,m,null);c&&w.push(c),y.push(t(b))}}const R=10,E=15,M=15,S=10;let j=null;$||(j="margin: -15px -15px -18px -15px");const B=k("left",u,d),H=k("right",u,d),U=s(y),W=o(U,C,C,0,!1,T,!1),X=o(U,C,C,0,!1,$?-45:null,!1),Y={filter:i(q)??void 0,opacity:null==_?"":`${_}`};return m("div",{styles:Y,class:$?p.diamondMidColRamp:p.squareTableCell},m("svg",{xmlns:f,width:C,height:C,style:j,"aria-labelledBy":L,role:"image",focusable:!1},m("defs",null,m("marker",{id:`${d}_arrowStart`,markerWidth:"10",markerHeight:"10",refX:"5",refY:"5",markerUnits:"strokeWidth",orient:"auto"},m("polyline",{points:"0,0 5,5 0,10",fill:"none",stroke:"#555555","stroke-width":"1"})),m("marker",{id:`${d}_arrowEnd`,markerWidth:"10",markerHeight:"10",refX:"0",refY:"5",markerUnits:"strokeWidth",orient:"auto"},m("polyline",{points:"5,0 0,5 5,10",fill:"none",stroke:"#555555","stroke-width":"1"})),v),m("g",{transform:W},w),m("g",{transform:X},m("line",{fill:"none",stroke:"#555555","stroke-width":"1","marker-start":B.markerStart,"marker-end":B.markerEnd,x1:-R,y1:g-E,x2:-R,y2:E}),m("line",{fill:"none",stroke:"#555555","stroke-width":"1","marker-start":H.markerStart,"marker-end":H.markerEnd,x1:M,y1:g+S,x2:g-M,y2:g+S}))))}export{h as renderRelationshipRamp};
5
+ import{generateFillAttributes as e,generateStrokeAttributes as l,renderDef as a,renderShape as r,getBoundingBox as t,computeBBox as s,getTransformMatrix as o}from"../../../../symbols/support/svgUtils.js";import{getCSSFilterFromEffectList as i}from"../../../../symbols/support/utils.js";import{isRTL as n,classes as d}from"../../../support/widgetUtils.js";import{tsx as m}from"../../../support/jsxFactory.js";const b="esri-relationship-ramp",u=`${b}--diamond`,c=`${b}--square`,f="http://www.w3.org/2000/svg",p={diamondContainer:`${u}__container`,diamondLeftCol:`${u}__left-column`,diamondRightCol:`${u}__right-column`,diamondMidCol:`${u}__middle-column`,diamondMidColLabel:`${u}__middle-column--label`,diamondMidColRamp:`${u}__middle-column--ramp`,squareTable:`${c}__table`,squareTableRow:`${c}__table-row`,squareTableCell:`${c}__table-cell`,squareTableLabel:`${c}__table-label`,squareTableLabelLeftBottom:`${c}__table-label--left-bottom`,squareTableLabelRightBottom:`${c}__table-label--right-bottom`,squareTableLabelLeftTop:`${c}__table-label--left-top`,squareTableLabelRightTop:`${c}__table-label--right-top`};function h(e,l,a={}){const{focus:r,labels:t}=e,s=!!r,o=T(e,l,a),i={justifyContent:"center"},b=n();return s?m("div",{class:p.diamondContainer,styles:i},m("div",{class:p.diamondLeftCol},b?t.right:t.left),m("div",{class:p.diamondMidCol},m("div",{class:p.diamondMidColLabel},t.top),o,m("div",{class:p.diamondMidColLabel},t.bottom)),m("div",{class:p.diamondRightCol},b?t.left:t.right)):m("div",{class:p.squareTable},m("div",{class:p.squareTableRow},m("div",{class:d(p.squareTableCell,p.squareTableLabel,p.squareTableLabelRightBottom)},b?t.top:t.left),m("div",{class:p.squareTableCell}),m("div",{class:d(p.squareTableCell,p.squareTableLabel,p.squareTableLabelLeftBottom)},b?t.left:t.top)),m("div",{class:p.squareTableRow},m("div",{class:p.squareTableCell}),o,m("div",{class:p.squareTableCell})),m("div",{class:p.squareTableRow},m("div",{class:d(p.squareTableCell,p.squareTableLabel,p.squareTableLabelRightTop)},b?t.right:t.bottom),m("div",{class:p.squareTableCell}),m("div",{class:d(p.squareTableCell,p.squareTableLabel,p.squareTableLabelLeftTop)},b?t.bottom:t.right)))}function k(e,l,a){const r=`${a}_arrowStart`,t=`${a}_arrowEnd`,s="left"===e,o={markerStart:null,markerEnd:null};switch(l){case"HL":s?o.markerStart=`url(#${t})`:o.markerEnd=`url(#${r})`;break;case"LL":o.markerStart=`url(#${t})`;break;case"LH":s?o.markerEnd=`url(#${r})`:o.markerStart=`url(#${t})`;break;default:o.markerEnd=`url(#${r})`}return o}function T(n,d,b={}){const{focus:u,numClasses:c,colors:h,rotation:T}=n,{opacity:_,effectList:q,ariaLabel:L}=b,g=b.size??60,$=!!u,C=Math.sqrt(g**2+g**2)+($?0:5),v=[],w=[],y=[],x=(g||75)/c;for(let s=0;s<c;s++){const o=s*x;for(let i=0;i<c;i++){const n=i*x,d=e(h[s][i]),m=l(null),b={type:"rect",x:n,y:o,width:x,height:x},u=a(d);u&&v.push(u);const c=r(b,d.fill,m,null);c&&w.push(c),y.push(t(b))}}const R=10,E=15,M=15,S=10;let j=null;$||(j="margin: -15px -15px -18px -15px");const B=k("left",u,d),H=k("right",u,d),U=s(y),W=o(U,C,C,0,!1,T,!1),X=o(U,C,C,0,!1,$?-45:null,!1),Y={filter:i(q)??void 0,opacity:null==_?"":`${_}`};return m("div",{class:$?p.diamondMidColRamp:p.squareTableCell,styles:Y},m("svg",{"aria-labelledBy":L,focusable:!1,height:C,role:"image",style:j,width:C,xmlns:f},m("defs",null,m("marker",{id:`${d}_arrowStart`,markerHeight:"10",markerUnits:"strokeWidth",markerWidth:"10",orient:"auto",refX:"5",refY:"5"},m("polyline",{fill:"none",points:"0,0 5,5 0,10",stroke:"#555555","stroke-width":"1"})),m("marker",{id:`${d}_arrowEnd`,markerHeight:"10",markerUnits:"strokeWidth",markerWidth:"10",orient:"auto",refX:"0",refY:"5"},m("polyline",{fill:"none",points:"5,0 0,5 5,10",stroke:"#555555","stroke-width":"1"})),v),m("g",{transform:W},w),m("g",{transform:X},m("line",{fill:"none","marker-end":B.markerEnd,"marker-start":B.markerStart,stroke:"#555555","stroke-width":"1",x1:-R,x2:-R,y1:g-E,y2:E}),m("line",{fill:"none","marker-end":H.markerEnd,"marker-start":H.markerStart,stroke:"#555555","stroke-width":"1",x1:M,x2:g-M,y1:g+S,y2:g+S}))))}export{h as renderRelationshipRamp};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{pt2px as e}from"../../../../core/screenUtils.js";import"../../../../libs/maquette/projection.js";import{createProjector as t}from"../../../../libs/maquette/projector.js";import{renderColorRampPreviewHTML as o}from"../../../../symbols/support/symbolUtils.js";import"../../../support/widgetUtils.js";import{tsx as i}from"../../../support/jsxFactory.js";const l=t(),n=10,r=20,s=10,a=20,c={univariateAboveAndBelowSymbol:"esri-univariate-above-and-below-ramp__symbol",colorRamp:"esri-legend__color-ramp"};function f(e="vertical"){const t="stroke:rgb(200, 200, 200);stroke-width:1";return"vertical"===e?i("svg",{height:"4",width:"10"},i("line",{x1:"0",y1:"2",x2:"10",y2:"2",style:t})):i("svg",{height:"10",width:"10"},i("line",{x1:"5",y1:"0",x2:"5",y2:"10",style:t}))}function p(e,t="vertical"){const o=document.createElement("div");return o.style.height=`${r}px`,o.className=c.univariateAboveAndBelowSymbol,null!=e&&(o.style.opacity=e.toString()),l.append(o,f.bind(null,t)),o}function m(t,o,i="vertical",l){t.infos.forEach(((t,n)=>{if(l&&2===n)t.preview=p(o,i);else{const o=e(t.size)+("horizontal"===i?a:s),l=t.preview,n="div"===l?.tagName.toLowerCase(),r=n?l:document.createElement("div");r.className=c.univariateAboveAndBelowSymbol,"horizontal"===i?r.style.width=`${o}px`:r.style.height=`${o}px`,!n&&l&&r.appendChild(l),t.preview=r}}))}function u(t,o="classic"){const i=t.infos;return"classic"===o?(e(i[0].size)+s)/2:(e(i[0].size)-e(i[i.length-1].size))/2}function h(e,t){if(!e)return null;const i=e.infos.map((e=>e.color)),l=o("full"===t.type?i:"above"===t.type?i.slice(0,3):i.slice(2,5),{width:t.width,height:t.height,align:t.rampAlignment,effectList:t.effectList,ariaLabel:t.ariaLabel});return l.className=c.colorRamp,null!=t.opacity&&(l.style.opacity=t.opacity.toString()),l}function v(t,o,i,l="vertical"){let c=0;const f=t.infos,p=Math.floor(f.length/2),m="full"===o||"above"===o?0:p,u="full"===o||"below"===o?f.length-1:p;for(let h=m;h<=u;h++)if(i&&h===p)c+="horizontal"===l?n:r;else{c+=e(f[h].size)+("horizontal"===l?a:s)}return Math.round(c)}function y(t,o,i,l="vertical"){const c=v(t,o,i,l),f=t.infos,p=Math.floor(f.length/2),m="full"===o||"above"===o?0:p,u="full"===o||"below"===o?f.length-1:p,h="full"===o?f[m].size+f[u].size:"above"===o?f[m].size:f[u].size,y=i?"vertical"===l?r:n:0,d="vertical"===l?s*("full"===o?2:1):a*("full"===o?2:1);return Math.round(c-(e(h)/2+y/2+d/2))}function d(e,t,o="vertical"){const i=e.infos;let l=i.find((({type:e})=>"size-ramp"===e)),n=i.find((({type:e})=>"color-ramp"===e));return l&&(l={...l},l.infos=[...l.infos],m(l,t,o,!0)),n&&(n={...n},n.infos=[...n.infos]),"horizontal"===o&&(l?.infos.reverse(),n?.infos.reverse()),{sizeRampElement:l,colorRampElement:n}}function b(e,t="vertical"){const o=e.infos;let i=o.find((({type:e})=>"size-ramp"===e)),l=o.find((({type:e})=>"color-ramp"===e));return i&&(i={...i},i.infos=[...i.infos],m(i,null,t,!1)),l&&(l={...l},l.infos=[...l.infos]),"horizontal"===t&&(i?.infos.reverse(),l?.infos.reverse()),{sizeRampElement:i,colorRampElement:l}}export{d as getUnivariateAboveAndBelowRampElements,u as getUnivariateColorRampMargin,h as getUnivariateColorRampPreview,y as getUnivariateColorRampSize,b as getUnivariateColorSizeRampElements,v as getUnivariateSizeRampSize};
5
+ import{pt2px as e}from"../../../../core/screenUtils.js";import"../../../../libs/maquette/projection.js";import{createProjector as t}from"../../../../libs/maquette/projector.js";import{renderColorRampPreviewHTML as o}from"../../../../symbols/support/symbolUtils.js";import"../../../support/widgetUtils.js";import{tsx as i}from"../../../support/jsxFactory.js";const l=t(),n=10,r=20,s=10,a=20,c={univariateAboveAndBelowSymbol:"esri-univariate-above-and-below-ramp__symbol",colorRamp:"esri-legend__color-ramp"};function f(e="vertical"){const t="stroke:rgb(200, 200, 200);stroke-width:1";return"vertical"===e?i("svg",{height:"4",width:"10"},i("line",{style:t,x1:"0",x2:"10",y1:"2",y2:"2"})):i("svg",{height:"10",width:"10"},i("line",{style:t,x1:"5",x2:"5",y1:"0",y2:"10"}))}function p(e,t="vertical"){const o=document.createElement("div");return o.style.height=`${r}px`,o.className=c.univariateAboveAndBelowSymbol,null!=e&&(o.style.opacity=e.toString()),l.append(o,f.bind(null,t)),o}function m(t,o,i="vertical",l){t.infos.forEach(((t,n)=>{if(l&&2===n)t.preview=p(o,i);else{const o=e(t.size)+("horizontal"===i?a:s),l=t.preview,n="div"===l?.tagName.toLowerCase(),r=n?l:document.createElement("div");r.className=c.univariateAboveAndBelowSymbol,"horizontal"===i?r.style.width=`${o}px`:r.style.height=`${o}px`,!n&&l&&r.appendChild(l),t.preview=r}}))}function u(t,o="classic"){const i=t.infos;return"classic"===o?(e(i[0].size)+s)/2:(e(i[0].size)-e(i[i.length-1].size))/2}function h(e,t){if(!e)return null;const i=e.infos.map((e=>e.color)),l=o("full"===t.type?i:"above"===t.type?i.slice(0,3):i.slice(2,5),{width:t.width,height:t.height,align:t.rampAlignment,effectList:t.effectList,ariaLabel:t.ariaLabel});return l.className=c.colorRamp,null!=t.opacity&&(l.style.opacity=t.opacity.toString()),l}function v(t,o,i,l="vertical"){let c=0;const f=t.infos,p=Math.floor(f.length/2),m="full"===o||"above"===o?0:p,u="full"===o||"below"===o?f.length-1:p;for(let h=m;h<=u;h++)if(i&&h===p)c+="horizontal"===l?n:r;else{c+=e(f[h].size)+("horizontal"===l?a:s)}return Math.round(c)}function y(t,o,i,l="vertical"){const c=v(t,o,i,l),f=t.infos,p=Math.floor(f.length/2),m="full"===o||"above"===o?0:p,u="full"===o||"below"===o?f.length-1:p,h="full"===o?f[m].size+f[u].size:"above"===o?f[m].size:f[u].size,y=i?"vertical"===l?r:n:0,d="vertical"===l?s*("full"===o?2:1):a*("full"===o?2:1);return Math.round(c-(e(h)/2+y/2+d/2))}function d(e,t,o="vertical"){const i=e.infos;let l=i.find((({type:e})=>"size-ramp"===e)),n=i.find((({type:e})=>"color-ramp"===e));return l&&(l={...l},l.infos=[...l.infos],m(l,t,o,!0)),n&&(n={...n},n.infos=[...n.infos]),"horizontal"===o&&(l?.infos.reverse(),n?.infos.reverse()),{sizeRampElement:l,colorRampElement:n}}function b(e,t="vertical"){const o=e.infos;let i=o.find((({type:e})=>"size-ramp"===e)),l=o.find((({type:e})=>"color-ramp"===e));return i&&(i={...i},i.infos=[...i.infos],m(i,null,t,!1)),l&&(l={...l},l.infos=[...l.infos]),"horizontal"===t&&(i?.infos.reverse(),l?.infos.reverse()),{sizeRampElement:i,colorRampElement:l}}export{d as getUnivariateAboveAndBelowRampElements,u as getUnivariateColorRampMargin,h as getUnivariateColorRampPreview,y as getUnivariateColorRampSize,b as getUnivariateColorSizeRampElements,v as getUnivariateSizeRampSize};