@arcgis/core 4.24.0-next.20220508 → 4.24.0-next.20220511

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 (338) hide show
  1. package/AggregateGraphic.js +1 -1
  2. package/analysis/Analysis.js +1 -1
  3. package/analysis/DimensioningAnalysis.js +1 -1
  4. package/analysis/LengthDimension.d.ts +4 -0
  5. package/analysis/LengthDimension.js +5 -0
  6. package/analysis/dimensionUtils.js +5 -0
  7. package/arcade/Dictionary.js +1 -1
  8. package/arcade/Feature.js +1 -1
  9. package/arcade/arcade.js +1 -1
  10. package/arcade/arcadeAsyncRuntime.js +1 -1
  11. package/arcade/arcadeCompiler.js +1 -1
  12. package/arcade/credentials.js +1 -1
  13. package/arcade/featureSetCollection.js +1 -1
  14. package/arcade/featureSetUtils.js +1 -1
  15. package/arcade/featureset/actions/Adapted.js +1 -1
  16. package/arcade/featureset/actions/AttributeFilter.js +1 -1
  17. package/arcade/featureset/actions/GroupBy.js +1 -1
  18. package/arcade/featureset/actions/OrderBy.js +1 -1
  19. package/arcade/featureset/actions/SpatialFilter.js +1 -1
  20. package/arcade/featureset/actions/Top.js +1 -1
  21. package/arcade/featureset/sources/Empty.js +1 -1
  22. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  23. package/arcade/featureset/sources/FeatureLayerMemory.js +1 -1
  24. package/arcade/featureset/sources/FeatureLayerRelated.js +1 -1
  25. package/arcade/featureset/support/FeatureSet.js +1 -1
  26. package/arcade/featureset/support/FeatureSetIterator.js +1 -1
  27. package/arcade/featureset/support/shared.js +1 -1
  28. package/arcade/featureset/support/stats.js +1 -1
  29. package/arcade/functions/featuresetbase.js +1 -1
  30. package/arcade/functions/featuresetgeom.js +1 -1
  31. package/arcade/functions/featuresetstats.js +1 -1
  32. package/arcade/functions/featuresetstring.js +1 -1
  33. package/arcade/functions/geomasync.js +1 -1
  34. package/arcade/languageUtils.js +1 -1
  35. package/arcade/request.js +1 -1
  36. package/assets/esri/core/workers/RemoteClient.js +1 -1
  37. package/assets/esri/core/workers/chunks/0564f1cfa3d17ff1aad3.js +1 -0
  38. package/assets/esri/core/workers/chunks/0806d5d706a864542bfb.js +1 -0
  39. package/assets/esri/core/workers/chunks/0a6977144ea1abf96fbf.js +1 -0
  40. package/assets/esri/core/workers/chunks/13387f56acbc3291561a.js +1 -0
  41. package/assets/esri/core/workers/chunks/16c4e0a32d50d4db984d.js +1 -0
  42. package/assets/esri/core/workers/chunks/{076d1b1101b59af0d389.js → 1c010202b4c7e1d15f23.js} +1 -1
  43. package/assets/esri/core/workers/chunks/26827ec144676e6385f8.js +1 -0
  44. package/assets/esri/core/workers/chunks/287c484fd40eee643f3a.js +1 -0
  45. package/assets/esri/core/workers/chunks/5210f0b42dba27945226.js +1 -0
  46. package/assets/esri/core/workers/chunks/{db6c5b3b4efe8d804f9c.js → 52478ee2d2a1354b6900.js} +1 -1
  47. package/assets/esri/core/workers/chunks/5759af97f96f24c40105.js +1 -0
  48. package/assets/esri/core/workers/chunks/{b85218d44c6094b7e5e6.js → 6d7e2a23a0a5dd9ded1d.js} +1 -1
  49. package/assets/esri/core/workers/chunks/70b6356357e7640c4e8b.js +1 -0
  50. package/assets/esri/core/workers/chunks/7574316b3af61c389e8f.js +1 -0
  51. package/assets/esri/core/workers/chunks/7bc828fbdd54c0b28aac.js +1 -0
  52. package/assets/esri/core/workers/chunks/7e5c22b5a32ac74b1b6e.js +1 -0
  53. package/assets/esri/core/workers/chunks/8102bb78fe96e6197e4e.js +1 -0
  54. package/assets/esri/core/workers/chunks/88384e7cafbfd2348598.js +1 -0
  55. package/assets/esri/core/workers/chunks/9d7533aaeac3b8d145c4.js +1 -0
  56. package/assets/esri/core/workers/chunks/{1eecae5227318f491263.js → 9f4d892abf55e8625bc9.js} +3 -3
  57. package/assets/esri/core/workers/chunks/{98607a0da63626cc4614.js → a054a52712a118c6d505.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{69a20e4d9e28c3e599fc.js → a3bb600bfcb0282622f1.js} +1 -1
  59. package/assets/esri/core/workers/chunks/aa49841b14c6e6df2a07.js +1 -0
  60. package/assets/esri/core/workers/chunks/b089058b64db3912478f.js +1 -0
  61. package/assets/esri/core/workers/chunks/b28539c5a6bedb71b038.js +1 -0
  62. package/assets/esri/core/workers/chunks/b4f171db73355c6f766e.js +1 -0
  63. package/assets/esri/core/workers/chunks/b7572b0921b23aef8b9d.js +1 -0
  64. package/assets/esri/core/workers/chunks/b758f3c419edc2306784.js +1 -0
  65. package/assets/esri/core/workers/chunks/c3e7290fb128d4fefd44.js +1 -0
  66. package/assets/esri/core/workers/chunks/c51c9b5da855f84b9a48.js +1 -0
  67. package/assets/esri/core/workers/chunks/c66ac36da6392b6bf331.js +1 -0
  68. package/assets/esri/core/workers/chunks/d16b328d32a6ddc2fdb9.js +1 -0
  69. package/assets/esri/core/workers/chunks/d94c5f36d52cf71f0bb9.js +1 -0
  70. package/assets/esri/core/workers/chunks/db937849b2c1af87b481.js +1 -0
  71. package/assets/esri/core/workers/chunks/{66cd99e91dad60c5274c.js → dc3ed59f450283d97a19.js} +1 -1
  72. package/assets/esri/core/workers/chunks/dcd0653191cd4a1ccaae.js +2 -0
  73. package/assets/esri/core/workers/chunks/{31df729c17470245288c.js.LICENSE.txt → dcd0653191cd4a1ccaae.js.LICENSE.txt} +2 -2
  74. package/assets/esri/core/workers/chunks/e4fdd1eaf987977d0a51.js +1 -0
  75. package/assets/esri/core/workers/chunks/e51f0e71f2a55af604d3.js +1 -0
  76. package/assets/esri/core/workers/chunks/eb3855d3753d6b8334bd.js +1 -0
  77. package/assets/esri/core/workers/chunks/{7c290763920f52a1f504.js → eeed138930a4a805691d.js} +1 -1
  78. package/assets/esri/core/workers/chunks/f435dc615fdc8917f6ca.js +1 -0
  79. package/assets/esri/core/workers/chunks/{d5c5b9f7f5401f36a3a5.js → f7f3dde4c8f9c687cc1e.js} +1 -1
  80. package/assets/esri/core/workers/chunks/fc6beaf9466ea3898549.js +1 -0
  81. package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
  82. package/assets/esri/themes/base/widgets/_Tooltip.scss +1 -0
  83. package/assets/esri/themes/base/widgets/_Weather.scss +1 -2
  84. package/assets/esri/themes/dark/main.css +1 -1
  85. package/assets/esri/themes/light/main.css +1 -1
  86. package/assets/esri/themes/light/view.css +1 -1
  87. package/chunks/BlendLayers.glsl.js +6 -6
  88. package/chunks/arcade.js +1 -1
  89. package/chunks/array.js +1 -1
  90. package/chunks/languageUtils.js +1 -1
  91. package/config.js +1 -1
  92. package/core/sql/StandardizedFunctions.js +1 -1
  93. package/geohash/GeohashTree.js +1 -1
  94. package/geometry/support/contains.js +1 -1
  95. package/geometry/support/heightModelInfoUtils.js +1 -1
  96. package/geometry/support/intersects.js +1 -1
  97. package/geometry/support/intersectsBase.js +1 -1
  98. package/geometry/support/normalizeUtilsCommon.js +1 -1
  99. package/geometry/support/spatialReferenceUtils.js +1 -1
  100. package/interfaces.d.ts +685 -37
  101. package/layers/MediaLayer.d.ts +4 -0
  102. package/layers/MediaLayer.js +5 -0
  103. package/layers/VoxelLayer.js +1 -1
  104. package/layers/VoxelWasmPerSceneView.js +5 -0
  105. package/layers/graphics/OptimizedGeometry.js +1 -1
  106. package/layers/graphics/data/BoundsStore.js +1 -1
  107. package/layers/support/CornersGeoreference.d.ts +4 -0
  108. package/layers/support/CornersGeoreference.js +5 -0
  109. package/layers/support/ExtentAndRotationGeoreference.d.ts +4 -0
  110. package/layers/support/ExtentAndRotationGeoreference.js +5 -0
  111. package/layers/support/FeatureReduction.js +1 -1
  112. package/layers/support/FeatureReductionBinning.js +5 -0
  113. package/layers/support/GeoreferenceBase.js +5 -0
  114. package/layers/support/ImageElement.d.ts +4 -0
  115. package/layers/support/ImageElement.js +5 -0
  116. package/layers/support/LocalMediaElementSource.d.ts +4 -0
  117. package/layers/support/LocalMediaElementSource.js +5 -0
  118. package/layers/support/MediaElementBase.d.ts +4 -0
  119. package/layers/support/MediaElementBase.js +5 -0
  120. package/layers/support/RouteStopSymbols.d.ts +4 -0
  121. package/layers/support/RouteSymbols.d.ts +4 -0
  122. package/layers/support/VoxelFormat.d.ts +4 -0
  123. package/layers/support/VoxelStyle.d.ts +4 -0
  124. package/layers/support/VoxelVariable.d.ts +4 -0
  125. package/layers/support/VoxelVolume.d.ts +4 -0
  126. package/layers/support/VoxelVolumeStyle.d.ts +4 -0
  127. package/layers/support/arcgisLayerUrl.js +1 -1
  128. package/layers/support/featureReductionUtils.js +1 -1
  129. package/layers/support/fieldUtils.js +1 -1
  130. package/layers/support/rasterFormats/Lerc.js +1 -1
  131. package/package.json +3 -3
  132. package/request.js +1 -1
  133. package/support/requestUtils.js +1 -1
  134. package/support/revision.js +1 -1
  135. package/symbols/Font.js +1 -1
  136. package/symbols/support/textUtils.js +1 -1
  137. package/views/2d/engine/brushes.js +1 -1
  138. package/views/2d/engine/webgl/FeatureTile.js +1 -1
  139. package/views/2d/engine/webgl/Overlay.js +5 -0
  140. package/views/2d/engine/webgl/OverlayContainer.js +5 -0
  141. package/views/2d/engine/webgl/brushes/BrushOverlay.js +5 -0
  142. package/views/2d/engine/webgl/collisions/CollisionEngine.js +1 -1
  143. package/views/2d/engine/webgl/shaders/OverlayPrograms.js +5 -0
  144. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  145. package/views/2d/layerViewModuleImportUtils.js +1 -1
  146. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  147. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  148. package/views/2d/layers/MapImageLayerView2D.js +1 -1
  149. package/views/2d/layers/MediaLayerView2D.js +5 -0
  150. package/views/2d/layers/StreamLayerView2D.js +1 -1
  151. package/views/2d/layers/WMTSLayerView2D.js +1 -1
  152. package/views/2d/layers/features/FeatureStore2D.js +1 -1
  153. package/views/2d/layers/features/Pipeline.js +1 -1
  154. package/views/2d/layers/features/Store2D.js +1 -1
  155. package/views/2d/layers/features/controllers/FeatureController2D.js +1 -1
  156. package/views/2d/layers/features/processors/SymbolProcessor.js +1 -1
  157. package/views/2d/layers/features/schemaUtils.js +1 -1
  158. package/views/2d/layers/features/sources/GeoEventSource.js +1 -1
  159. package/views/2d/layers/features/support/AttributeStore.js +1 -1
  160. package/views/2d/layers/features/support/BinStore.js +5 -0
  161. package/views/2d/layers/features/support/ClusterStore.js +1 -1
  162. package/views/2d/layers/features/tileRenderers/support/WGLFeatureView.js +1 -1
  163. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  164. package/views/2d/layers/support/clusterUtils.js +1 -1
  165. package/views/2d/magnifier/MagnifierView2D.js +1 -1
  166. package/views/2d/navigation/actions/Pinch.js +1 -1
  167. package/views/2d/viewpointUtils.js +1 -1
  168. package/views/3d/analysis/AnalysisView3D.js +1 -1
  169. package/views/3d/analysis/Dimensioning/DimensioningTool.js +5 -0
  170. package/views/3d/analysis/Dimensioning/DimensioningVisualization.js +1 -1
  171. package/views/3d/analysis/Dimensioning/LengthDimensionSubTool.js +5 -0
  172. package/views/3d/analysis/Dimensioning/{LinearDimensionVisualization.js → LengthDimensionVisualization.js} +1 -1
  173. package/views/3d/analysis/Dimensioning/settings.js +5 -0
  174. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  175. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  176. package/views/3d/interactive/SegmentLabels3D.js +5 -0
  177. package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
  178. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  179. package/views/3d/interactive/editingTools/reshapeGraphic/GraphicReshapeTool.js +1 -1
  180. package/views/3d/interactive/editingTools/reshapeGraphic/ReshapeOperation.js +1 -1
  181. package/views/3d/interactive/editingTools/transformGraphic/GraphicTransformTool.js +1 -1
  182. package/views/3d/interactive/editingTools/transformGraphic/ScaleRotateObjectSymbol3DAdapter.js +1 -1
  183. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DView.js +1 -1
  184. package/views/3d/interactive/visualElements/LabelVisualElement.js +1 -1
  185. package/views/3d/layerViewModuleImportUtils.js +1 -1
  186. package/views/3d/layers/I3SMeshView3D.js +1 -1
  187. package/views/3d/layers/MediaLayerView3D.js +5 -0
  188. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  189. package/views/3d/layers/i3s/IDBCache.js +1 -1
  190. package/views/3d/state/controllers/RotateController.js +1 -1
  191. package/views/3d/state/controllers/local/PinchAndPanController.js +1 -1
  192. package/views/3d/state/controllers/local/ZoomController.js +1 -1
  193. package/views/3d/state/controllers/local/ZoomStepController.js +1 -1
  194. package/views/3d/support/ResourceController.js +1 -1
  195. package/views/3d/support/sunUtils.js +1 -1
  196. package/views/3d/terrain/TerrainRenderer.js +1 -1
  197. package/views/3d/terrain/TerrainSurface.js +1 -1
  198. package/views/3d/terrain/TileCompositor.js +1 -1
  199. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  200. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  201. package/views/3d/webgl-engine/core/shaderLibrary/util/BlendLayers.glsl.js +1 -1
  202. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  203. package/views/3d/webgl-engine/materials/WaterGLMaterial.js +1 -1
  204. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  205. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  206. package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
  207. package/views/DOMContainer.js +1 -1
  208. package/views/GroundView.js +1 -1
  209. package/views/SceneView.js +1 -1
  210. package/views/ToolViewManager.js +1 -1
  211. package/views/View.js +1 -1
  212. package/views/draw/DrawOperation.js +1 -1
  213. package/views/draw/support/Reshape.js +1 -1
  214. package/views/interactive/GraphicManipulator.js +1 -1
  215. package/views/interactive/InteractiveToolBase.js +1 -1
  216. package/views/interactive/SegmentLabels.js +5 -0
  217. package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
  218. package/views/interactive/snapping/LineSnapper.js +1 -1
  219. package/views/interactive/snapping/ParallelLineSnapper.js +1 -1
  220. package/views/interactive/snapping/RightAngleSnapper.js +1 -1
  221. package/views/interactive/snapping/RightAngleTriangleSnapper.js +1 -1
  222. package/views/interactive/snapping/SnappingAlgorithm.js +1 -1
  223. package/views/interactive/snapping/SnappingManager.js +1 -1
  224. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorker.js +1 -1
  225. package/views/interactive/snapping/snappingUtils.js +1 -1
  226. package/views/interactive/support/viewUtils.js +5 -0
  227. package/views/interactive/tooltip/DrawPointTooltipInfo.js +5 -0
  228. package/views/interactive/tooltip/DrawPolygonTooltipInfo.js +5 -0
  229. package/views/interactive/tooltip/DrawPolylineTooltipInfo.js +5 -0
  230. package/views/interactive/tooltip/Tooltip.js +1 -1
  231. package/views/interactive/tooltip/content/TooltipContentDrawPolygon.js +1 -1
  232. package/views/interactive/tooltip/support/measurements.js +5 -0
  233. package/views/layers/FeatureLayerView.js +1 -1
  234. package/views/layers/GroupLayerView.js +1 -1
  235. package/views/overlay/TextOverlayItem.js +1 -1
  236. package/views/support/Scheduler.js +1 -1
  237. package/views/support/screenUtils.js +1 -1
  238. package/webscene/Slide.js +1 -1
  239. package/widgets/Attribution/AttributionViewModel.js +1 -1
  240. package/widgets/Bookmarks.js +1 -1
  241. package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
  242. package/widgets/Editor/EditorViewModel.js +1 -1
  243. package/widgets/Editor/UpdateWorkflow.js +1 -1
  244. package/widgets/Editor/workflowUtils.js +1 -1
  245. package/widgets/Editor.js +1 -1
  246. package/widgets/ElevationProfile/support/chartUtils.js +1 -1
  247. package/widgets/ElevationProfile.js +1 -1
  248. package/widgets/Feature/FeatureAttachments.js +1 -1
  249. package/widgets/Feature/FeatureContent/FeatureContentViewModel.js +1 -1
  250. package/widgets/Feature/FeatureExpression/FeatureExpressionViewModel.js +1 -1
  251. package/widgets/Feature/FeatureExpression.js +1 -1
  252. package/widgets/Feature/FeatureFields.js +1 -1
  253. package/widgets/Feature/FeatureViewModel.js +1 -1
  254. package/widgets/Feature.js +1 -1
  255. package/widgets/FeatureForm/InputFieldGroup.js +1 -1
  256. package/widgets/FeatureForm.js +1 -1
  257. package/widgets/FeatureTable/FieldColumn.js +1 -1
  258. package/widgets/FeatureTable/Grid/Column.js +1 -1
  259. package/widgets/FeatureTable/Grid/Grid.js +11 -11
  260. package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
  261. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
  262. package/widgets/FeatureTemplates/TemplateItem.js +1 -1
  263. package/widgets/FeatureTemplates.js +1 -1
  264. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  265. package/widgets/FloorFilter.js +1 -1
  266. package/widgets/HistogramRangeSlider.js +1 -1
  267. package/widgets/LayerList/LayerListViewModel.js +1 -1
  268. package/widgets/LayerList/ListItem.js +1 -1
  269. package/widgets/LayerList/ListItemPanel.js +1 -1
  270. package/widgets/LayerList.js +1 -1
  271. package/widgets/Legend/LegendViewModel.js +1 -1
  272. package/widgets/Legend/styles/Card.js +1 -1
  273. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  274. package/widgets/Legend.js +1 -1
  275. package/widgets/LineOfSight/LineOfSightViewModel.js +1 -1
  276. package/widgets/Measurement.js +1 -1
  277. package/widgets/NavigationToggle/NavigationToggleViewModel.js +1 -1
  278. package/widgets/Popup/PopupViewModel.js +1 -1
  279. package/widgets/Popup.js +1 -1
  280. package/widgets/Print/FileLink.js +1 -1
  281. package/widgets/Print.js +1 -1
  282. package/widgets/ScaleBar.js +1 -1
  283. package/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel.js +1 -1
  284. package/widgets/ScaleRangeSlider.js +1 -1
  285. package/widgets/Search/SearchViewModel.js +1 -1
  286. package/widgets/Search.js +1 -1
  287. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  288. package/widgets/Sketch/SketchViewModel.js +1 -1
  289. package/widgets/Sketch.js +1 -1
  290. package/widgets/TableList/ListItem.js +1 -1
  291. package/widgets/Weather/LabeledSlider.js +1 -1
  292. package/widgets/Weather/VisibleElements.js +5 -0
  293. package/widgets/Weather/css.js +1 -1
  294. package/widgets/Weather.js +1 -1
  295. package/widgets/support/AnalysisViewModel.js +1 -1
  296. package/widgets/support/InteractiveAnalysisViewModel.js +1 -1
  297. package/analysis/LinearDimension.d.ts +0 -4
  298. package/analysis/LinearDimension.js +0 -5
  299. package/assets/esri/core/workers/chunks/0018053ac16a09feba70.js +0 -1
  300. package/assets/esri/core/workers/chunks/042938ca73f0b9e5a7e2.js +0 -1
  301. package/assets/esri/core/workers/chunks/048645611caa28dca7cd.js +0 -1
  302. package/assets/esri/core/workers/chunks/0b72d123386dc4ec7538.js +0 -1
  303. package/assets/esri/core/workers/chunks/13b04d5bf348ab5054c2.js +0 -1
  304. package/assets/esri/core/workers/chunks/215007e7c44811d90777.js +0 -1
  305. package/assets/esri/core/workers/chunks/31df729c17470245288c.js +0 -2
  306. package/assets/esri/core/workers/chunks/36272141b3c33cb19026.js +0 -1
  307. package/assets/esri/core/workers/chunks/36c8e8de9c3f67d32572.js +0 -1
  308. package/assets/esri/core/workers/chunks/37c428489c59df4b597b.js +0 -1
  309. package/assets/esri/core/workers/chunks/493169fd978fd543ef3b.js +0 -1
  310. package/assets/esri/core/workers/chunks/4f378ad6f4299183df85.js +0 -1
  311. package/assets/esri/core/workers/chunks/58e4c6ce1580427e7b55.js +0 -1
  312. package/assets/esri/core/workers/chunks/6c5441da675a8af35be2.js +0 -1
  313. package/assets/esri/core/workers/chunks/6ea16f6a0df946de480b.js +0 -1
  314. package/assets/esri/core/workers/chunks/7dfd70f4fa1096e56641.js +0 -1
  315. package/assets/esri/core/workers/chunks/88193e61072d7bf957f5.js +0 -1
  316. package/assets/esri/core/workers/chunks/8ccbde593c86c872e525.js +0 -1
  317. package/assets/esri/core/workers/chunks/9c6be39f1f21ab8b1c2d.js +0 -1
  318. package/assets/esri/core/workers/chunks/a73795cce722ba15b3da.js +0 -1
  319. package/assets/esri/core/workers/chunks/a8ed1a938dc164b401d9.js +0 -1
  320. package/assets/esri/core/workers/chunks/a9a73bc4875a5aeaf1b9.js +0 -1
  321. package/assets/esri/core/workers/chunks/adcc5bce6c0971c1b592.js +0 -1
  322. package/assets/esri/core/workers/chunks/afddfe620e6539991e6b.js +0 -1
  323. package/assets/esri/core/workers/chunks/b340c9bdabdb37995c8f.js +0 -1
  324. package/assets/esri/core/workers/chunks/b4c23630d6c85f7b59c0.js +0 -1
  325. package/assets/esri/core/workers/chunks/c180c40838246985479d.js +0 -1
  326. package/assets/esri/core/workers/chunks/caed2365bd296fcc8a75.js +0 -1
  327. package/assets/esri/core/workers/chunks/d85b5b73a151c6fbb658.js +0 -1
  328. package/assets/esri/core/workers/chunks/da6261673c3e1537b6a6.js +0 -1
  329. package/assets/esri/core/workers/chunks/dafe120243db6648a4ab.js +0 -1
  330. package/assets/esri/core/workers/chunks/ec6d138e8183e193f977.js +0 -1
  331. package/assets/esri/core/workers/chunks/ed4519ac9533a4d340f1.js +0 -1
  332. package/assets/esri/core/workers/chunks/f206300eef4560611728.js +0 -1
  333. package/assets/esri/core/workers/chunks/f55cbaf5a1d6ee6ac171.js +0 -1
  334. package/layers/GeoreferencedImageLayer.d.ts +0 -4
  335. package/layers/GeoreferencedImageLayer.js +0 -5
  336. package/layers/VoxelWasmManager.js +0 -5
  337. package/layers/VoxelWasmPerScene.js +0 -5
  338. package/views/3d/interactive/measurementTools/support/viewUtils.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.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../chunks/tslib.es6.js";import{eventKey as t}from"../../../../core/events.js";import{HandleOwnerMixin as n}from"../../../../core/HandleOwner.js";import{isSome as o}from"../../../../core/maybe.js";import{watch as s}from"../../../../core/watchUtils.js";import{aliasOf as i}from"../../../../core/accessorSupport/decorators/aliasOf.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{property as r}from"../../../../core/accessorSupport/decorators/property.js";import{subclass as a}from"../../../../core/accessorSupport/decorators/subclass.js";import l from"../../../Widget.js";import d from"./ButtonMenuViewModel.js";import u from"../../../support/Popover.js";import{isRTL as c,isActivationKey as m}from"../../../support/widgetUtils.js";import{tsx as p}from"../../../support/jsxFactory.js";const h={base:"esri-button-menu",content:"esri-button-menu__content",contentWrapper:"esri-button-menu__content-wrapper",itemWrapper:"esri-button-menu__item-wrapper",label:"esri-button-menu__label",icon:"esri-button-menu__icon",item:"esri-button-menu__item",itemLabel:"esri-button-menu__item-label",itemLabelContent:"esri-button-menu__item-label-content",selectableMenuItem:"esri-button-menu__item--selectable",selectedMenuItem:"esri-button-menu__item--selected",checkbox:"esri-button-menu__checkbox",embeddedContentWrapper:"esri-button-menu__embedded-content-wrapper",button:"esri-button-menu__button",buttonSelected:"esri-button-menu__button--selected",defaultIconClass:"esri-icon-menu",widget:"esri-widget"};let b=class extends(n(l)){constructor(e,t){super(e,t),this._menuContentNode=null,this._popover=null,this._rootNode=null,this.iconClass=null,this.items=null,this.label=null,this.open=null,this.viewModel=new d,this._handleOutsideClick=this._handleOutsideClick.bind(this)}postInitialize(){this._popover=new u({owner:this,open:!!this.open,placement:c(this.container)?"bottom-start":"bottom-end",renderContentFunction:this.renderMenuContent,anchorElement:this._rootNode}),this.handles.add([s(this,"open",(e=>this._popover.set("open",e)))]),document.addEventListener("click",this._handleOutsideClick)}destroy(){this._popover?.destroy(),this._popover=null,document.removeEventListener("click",this._handleOutsideClick)}_handleOutsideClick(e){if(!this.open||!this._rootNode||!this._menuContentNode)return;const t=e.target;this._menuContentNode?.contains(t)||this._rootNode?.contains(t)||(this.open=!1)}render(){return p("div",{afterCreate:this._afterRootNodeCreate,bind:this,"data-node-ref":"_rootNode",class:this.classes(h.base,h.widget),key:"menu"},this.renderMenuButton())}renderMenuButton(){const{iconClass:e,id:t,label:n,open:o}=this,s=this.classes([h.button,e||h.defaultIconClass,o?h.buttonSelected:null]);return p("button",{"aria-pressed":o.toString(),"aria-controls":`${t}-menu`,"aria-expanded":o.toString(),"aria-haspopup":"true","aria-label":n,bind:this,class:s,id:`${t}-button`,title:n,selected:o,onclick:this._toggleOpen,tabindex:"0",type:"button"})}renderMenuContent(){const{id:e,open:t}=this;return p("div",{afterCreate:this._afterMenuContentNodeCreate,bind:this,class:h.content,"data-node-ref":"_menuContentNode",key:"esri-button-menu-content",hidden:!t},p("ul",{"aria-labelledby":`${e}-button`,bind:this,class:h.itemWrapper,id:`${e}-menu`,role:"menu"},this.items?.length&&this.renderItems()))}renderItems(){return this.items?.map(((e,t)=>this.renderItem(e,t)))}renderItem(e,t,n){const s=o(n)?`${this.id}-menu-item-${t}-${n}`:`${this.id}-menu-item-${t}`,i=`${s}-label`,r=this.classes(h.item,e.selectionEnabled?h.selectableMenuItem:null,e.selectionEnabled&&e.selected?h.selectedMenuItem:null);return p("li",{afterCreate:this._afterMenuItemCreate,bind:this,class:r,"data-item-index":t,"data-item-subIndex":n,for:s,key:s,onkeydown:t=>this._handleMenuItemKeydown(t,e),onclick:t=>this._handleMenuItemInteraction(t,e),role:"menuitem",tabindex:"0"},p("input",{disabled:!0,checked:e.selected,class:h.checkbox,id:s,name:s,tabindex:"-1",type:"checkbox"}),p("label",{bind:this,class:this.classes(h.button,h.itemLabel),for:s,id:i},p("span",{class:this.classes(h.icon,e.iconClass),"aria-hidden":"true"}),p("span",{class:h.itemLabelContent},e.label)),p("ul",{"aria-labelledby":i,class:h.embeddedContentWrapper,id:`${this.id}-submenu`,role:"menu"},e?.items?.map(((e,n)=>this.renderItem(e,t,n)))))}_afterRootNodeCreate(e){this._rootNode=e,this._popover?.set("anchorElement",(()=>e))}_handleMenuItemInteraction(e,t){t.selected=!t.selected,t.open=!(!t.selected||!t.items),t.autoCloseMenu&&this.set("open",!1),t.clickFunction&&t.clickFunction({event:e,item:t}),e.stopPropagation()}_handleMenuItemKeydown(e,n){const o=t(e);m(o)&&this._handleMenuItemInteraction(e,n),"Escape"===o&&(this.open=!1,e.preventDefault(),e.stopPropagation())}_afterMenuContentNodeCreate(e){this._menuContentNode=e,e.focus()}_toggleOpen(){this.open=!this.open}_afterMenuItemCreate(e){0===e["data-item-index"]&&e.focus()}};e([r()],b.prototype,"iconClass",void 0),e([i("viewModel.items")],b.prototype,"items",void 0),e([r()],b.prototype,"label",void 0),e([i("viewModel.open")],b.prototype,"open",void 0),e([r()],b.prototype,"viewModel",void 0),b=e([a("esri.widgets.FeatureTable.Grid.support.ButtonMenu")],b);const _=b;export{_ as default};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import{eventKey as t}from"../../../../core/events.js";import{HandleOwnerMixin as n}from"../../../../core/HandleOwner.js";import{isSome as o}from"../../../../core/maybe.js";import{watch as s}from"../../../../core/reactiveUtils.js";import{aliasOf as i}from"../../../../core/accessorSupport/decorators/aliasOf.js";import"../../../../core/arrayUtils.js";import"../../../../core/has.js";import"../../../../core/accessorSupport/ensureType.js";import{property as r}from"../../../../core/accessorSupport/decorators/property.js";import{subclass as a}from"../../../../core/accessorSupport/decorators/subclass.js";import l from"../../../Widget.js";import d from"./ButtonMenuViewModel.js";import u from"../../../support/Popover.js";import{isRTL as c,isActivationKey as m}from"../../../support/widgetUtils.js";import{tsx as p}from"../../../support/jsxFactory.js";const h={base:"esri-button-menu",content:"esri-button-menu__content",contentWrapper:"esri-button-menu__content-wrapper",itemWrapper:"esri-button-menu__item-wrapper",label:"esri-button-menu__label",icon:"esri-button-menu__icon",item:"esri-button-menu__item",itemLabel:"esri-button-menu__item-label",itemLabelContent:"esri-button-menu__item-label-content",selectableMenuItem:"esri-button-menu__item--selectable",selectedMenuItem:"esri-button-menu__item--selected",checkbox:"esri-button-menu__checkbox",embeddedContentWrapper:"esri-button-menu__embedded-content-wrapper",button:"esri-button-menu__button",buttonSelected:"esri-button-menu__button--selected",defaultIconClass:"esri-icon-menu",widget:"esri-widget"};let b=class extends(n(l)){constructor(e,t){super(e,t),this._menuContentNode=null,this._popover=null,this._rootNode=null,this.iconClass=null,this.items=null,this.label=null,this.open=null,this.viewModel=new d,this._handleOutsideClick=this._handleOutsideClick.bind(this)}postInitialize(){this._popover=new u({owner:this,open:!!this.open,placement:c(this.container)?"bottom-start":"bottom-end",renderContentFunction:this.renderMenuContent,anchorElement:this._rootNode}),this.handles.add(s((()=>this.open),(e=>this._popover.set("open",e)))),document.addEventListener("click",this._handleOutsideClick)}destroy(){this._popover?.destroy(),this._popover=null,document.removeEventListener("click",this._handleOutsideClick)}_handleOutsideClick(e){if(!this.open||!this._rootNode||!this._menuContentNode)return;const t=e.target;this._menuContentNode?.contains(t)||this._rootNode?.contains(t)||(this.open=!1)}render(){return p("div",{afterCreate:this._afterRootNodeCreate,bind:this,"data-node-ref":"_rootNode",class:this.classes(h.base,h.widget),key:"menu"},this.renderMenuButton())}renderMenuButton(){const{iconClass:e,id:t,label:n,open:o}=this,s=this.classes([h.button,e||h.defaultIconClass,o?h.buttonSelected:null]);return p("button",{"aria-pressed":o.toString(),"aria-controls":`${t}-menu`,"aria-expanded":o.toString(),"aria-haspopup":"true","aria-label":n,bind:this,class:s,id:`${t}-button`,title:n,selected:o,onclick:this._toggleOpen,tabindex:"0",type:"button"})}renderMenuContent(){const{id:e,open:t}=this;return p("div",{afterCreate:this._afterMenuContentNodeCreate,bind:this,class:h.content,"data-node-ref":"_menuContentNode",key:"esri-button-menu-content",hidden:!t},p("ul",{"aria-labelledby":`${e}-button`,bind:this,class:h.itemWrapper,id:`${e}-menu`,role:"menu"},this.items?.length&&this.renderItems()))}renderItems(){return this.items?.map(((e,t)=>this.renderItem(e,t)))}renderItem(e,t,n){const s=o(n)?`${this.id}-menu-item-${t}-${n}`:`${this.id}-menu-item-${t}`,i=`${s}-label`,r=this.classes(h.item,e.selectionEnabled?h.selectableMenuItem:null,e.selectionEnabled&&e.selected?h.selectedMenuItem:null);return p("li",{afterCreate:this._afterMenuItemCreate,bind:this,class:r,"data-item-index":t,"data-item-subIndex":n,for:s,key:s,onkeydown:t=>this._handleMenuItemKeydown(t,e),onclick:t=>this._handleMenuItemInteraction(t,e),role:"menuitem",tabindex:"0"},p("input",{disabled:!0,checked:e.selected,class:h.checkbox,id:s,name:s,tabindex:"-1",type:"checkbox"}),p("label",{bind:this,class:this.classes(h.button,h.itemLabel),for:s,id:i},p("span",{class:this.classes(h.icon,e.iconClass),"aria-hidden":"true"}),p("span",{class:h.itemLabelContent},e.label)),p("ul",{"aria-labelledby":i,class:h.embeddedContentWrapper,id:`${this.id}-submenu`,role:"menu"},e?.items?.map(((e,n)=>this.renderItem(e,t,n)))))}_afterRootNodeCreate(e){this._rootNode=e,this._popover?.set("anchorElement",(()=>e))}_handleMenuItemInteraction(e,t){t.selected=!t.selected,t.open=!(!t.selected||!t.items),t.autoCloseMenu&&this.set("open",!1),t.clickFunction&&t.clickFunction({event:e,item:t}),e.stopPropagation()}_handleMenuItemKeydown(e,n){const o=t(e);m(o)&&this._handleMenuItemInteraction(e,n),"Escape"===o&&(this.open=!1,e.preventDefault(),e.stopPropagation())}_afterMenuContentNodeCreate(e){this._menuContentNode=e,e.focus()}_toggleOpen(){this.open=!this.open}_afterMenuItemCreate(e){0===e["data-item-index"]&&e.focus()}};e([r()],b.prototype,"iconClass",void 0),e([i("viewModel.items")],b.prototype,"items",void 0),e([r()],b.prototype,"label",void 0),e([i("viewModel.open")],b.prototype,"open",void 0),e([r()],b.prototype,"viewModel",void 0),b=e([a("esri.widgets.FeatureTable.Grid.support.ButtonMenu")],b);const _=b;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.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import"../../core/has.js";import t from"../../core/Evented.js";import{HandleOwnerMixin as r}from"../../core/HandleOwner.js";import{isSome as s,isNone as o}from"../../core/maybe.js";import l from"../../core/ObjectPool.js";import{when as a}from"../../core/watchUtils.js";import{property as i}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/accessorSupport/ensureType.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import p from"./TemplateItem.js";import u from"./TemplateItemGroup.js";var m;const y=({layer:e})=>({key:e,label:e.title}),c=({layer:e})=>({key:e.geometryType,label:e.geometryType});let h=m=class extends(r(t.EventedAccessor)){constructor(e){super(e),this._itemPool=new l(p),this._groupPool=new l(u),this.filterFunction=null,this.selectedItem=null}initialize(){this._get("groupBy")||(this.groupBy="layer")}destroy(){this._templateToLayer.clear()}get _templateToLayer(){const e=new Map;for(const[t,r]of this._featureTemplatesByLayer)for(const s of r)e.set(s,t);return e}set groupBy(e){if(this._set("groupBy",e),"function"!=typeof e)switch(e){case"none":this._groupByFunction=null;break;case"layer":this._groupByFunction=y;break;case"geometry":this._groupByFunction=c}else this._groupByFunction=t=>this._ensureGroupByObject(e(t))}set layers(e){const t="layers";if(this.handles.remove(t),e){const t=()=>this.notifyChange("state");this.handles.add(e.map((e=>a(e,"loadStatus",t))),"layers")}this._set("layers",e)}get layers(){return this._get("layers")}get state(){const{layers:e}=this;return e&&0!==e.length?e.some((e=>"loading"===e.loadStatus||"not-loaded"===e.loadStatus))?"loading":"ready":"disabled"}get _featureTemplatesByLayer(){if(!this.layers)return new Map;const e=[];for(const t of this.layers){const r="templates"in t&&t.templates?t.templates:[],s="types"in t&&t.types?f(t.types):[];e.push([t,[...r,...s]])}return new Map(e)}get numberOfFeatureTemplates(){return Array.from(this._featureTemplatesByLayer.values()).reduce(((e,t)=>e+t.length),0)}get items(){if(0===this.numberOfFeatureTemplates)return this._releasePreviousItems(),[];const e=this._featureTemplatesByLayer,t=[],r=s(this.filterFunction)?this.filterFunction:m._nullFilterFunction;for(const[s,o]of e){const{loadStatus:e,capabilities:{operations:{supportsEditing:l,supportsAdd:a}}}=s;if("loaded"===e&&l&&a)for(const i of o)t.push({layer:s,template:i,matchesFilter:r({label:i.name})})}if(o(this._groupByFunction)){const e=t.filter((({matchesFilter:e})=>e)).map((({template:e,layer:t})=>this._createItem(e,t)));return this._releasePreviousItems(),e}const l=new Map;for(const o of t){const{template:e,layer:t}=o,r=this._groupByFunction({template:e,layer:t}),{key:a,label:i}=s(r.key)?r:m.nullGroupBy;l.has(a)||l.set(a,{label:i,templateItemInfos:[]}),l.get(a).templateItemInfos.push(o)}const a=[];for(const s of l.values()){const{label:e,templateItemInfos:t}=s,o=t.filter((({matchesFilter:e})=>e)),l=r({label:e})?t:t.length>0?o:[];if(l.length>0){const t=l.map((({template:e,layer:t})=>this._createItem(e,t)));a.push(this._createGroup(e,t))}}return 1===a.length&&a[0].label===m.nullGroupBy.label?(this._releasePreviousItems(),a[0].items):(this._releasePreviousItems(),a)}refresh(){this.notifyChange("items")}select(e){const t=e?.clone()||null;this._set("selectedItem",t),this.emit("select",{item:t,template:t?.template||null})}_createItem(e,t){const r=this._itemPool.acquire();return r.set({template:e,layer:t}),r}_createGroup(e,t){const r=this._groupPool.acquire();return r.set("label",e),r.items=t,r}_releasePreviousItems(){this._destroyItems(this._get("items"))}_destroyItems(e){if(!e)return;e[0]instanceof p?e.forEach((e=>this._destroyItem(e))):e.forEach((e=>this._destroyGroup(e)))}_destroyGroup(e){e.items.forEach((e=>this._destroyItem(e))),e.items.length=0,this._groupPool.release(e)}_destroyItem(e){e.layer=null,e.template=null,this._itemPool.release(e)}_ensureGroupByObject(e){return"string"==typeof e?{key:e,label:e}:e}};function f(e){return e.reduce(((e,t)=>[...e,...t.templates]),[])}h.nullGroupBy={key:Symbol(),label:"Other​"},h._nullFilterFunction=e=>!0,e([i()],h.prototype,"_groupByFunction",void 0),e([i({readOnly:!0})],h.prototype,"_templateToLayer",null),e([i()],h.prototype,"filterFunction",void 0),e([i()],h.prototype,"groupBy",null),e([i()],h.prototype,"layers",null),e([i()],h.prototype,"state",null),e([i({readOnly:!0})],h.prototype,"_featureTemplatesByLayer",null),e([i({readOnly:!0})],h.prototype,"numberOfFeatureTemplates",null),e([i({readOnly:!0})],h.prototype,"items",null),e([i({readOnly:!0})],h.prototype,"selectedItem",void 0),e([i()],h.prototype,"select",null),h=m=e([n("esri.widgets.FeatureTemplates.FeatureTemplatesViewModel")],h);const d=h;export{d as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import"../../core/has.js";import t from"../../core/Evented.js";import{HandleOwnerMixin as r}from"../../core/HandleOwner.js";import{isSome as s,isNone as o}from"../../core/maybe.js";import l from"../../core/ObjectPool.js";import{when as a}from"../../core/reactiveUtils.js";import{property as i}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/accessorSupport/ensureType.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import p from"./TemplateItem.js";import u from"./TemplateItemGroup.js";var m;const y=({layer:e})=>({key:e,label:e.title}),c=({layer:e})=>({key:e.geometryType,label:e.geometryType});let h=m=class extends(r(t.EventedAccessor)){constructor(e){super(e),this._itemPool=new l(p),this._groupPool=new l(u),this.filterFunction=null,this.selectedItem=null}initialize(){this._get("groupBy")||(this.groupBy="layer")}destroy(){this._templateToLayer.clear()}get _templateToLayer(){const e=new Map;for(const[t,r]of this._featureTemplatesByLayer)for(const s of r)e.set(s,t);return e}set groupBy(e){if(this._set("groupBy",e),"function"!=typeof e)switch(e){case"none":this._groupByFunction=null;break;case"layer":this._groupByFunction=y;break;case"geometry":this._groupByFunction=c}else this._groupByFunction=t=>this._ensureGroupByObject(e(t))}set layers(e){const t="layers";if(this.handles.remove(t),e){const t=()=>this.notifyChange("state");this.handles.add(e.map((e=>a((()=>e.loadStatus),t))),"layers")}this._set("layers",e)}get layers(){return this._get("layers")}get state(){const{layers:e}=this;return e&&0!==e.length?e.some((e=>"loading"===e.loadStatus||"not-loaded"===e.loadStatus))?"loading":"ready":"disabled"}get _featureTemplatesByLayer(){if(!this.layers)return new Map;const e=[];for(const t of this.layers){const r="templates"in t&&t.templates?t.templates:[],s="types"in t&&t.types?f(t.types):[];e.push([t,[...r,...s]])}return new Map(e)}get numberOfFeatureTemplates(){return Array.from(this._featureTemplatesByLayer.values()).reduce(((e,t)=>e+t.length),0)}get items(){if(0===this.numberOfFeatureTemplates)return this._releasePreviousItems(),[];const e=this._featureTemplatesByLayer,t=[],r=s(this.filterFunction)?this.filterFunction:m._nullFilterFunction;for(const[s,o]of e){const{loadStatus:e,capabilities:{operations:{supportsEditing:l,supportsAdd:a}}}=s;if("loaded"===e&&l&&a)for(const i of o)t.push({layer:s,template:i,matchesFilter:r({label:i.name})})}if(o(this._groupByFunction)){const e=t.filter((({matchesFilter:e})=>e)).map((({template:e,layer:t})=>this._createItem(e,t)));return this._releasePreviousItems(),e}const l=new Map;for(const o of t){const{template:e,layer:t}=o,r=this._groupByFunction({template:e,layer:t}),{key:a,label:i}=s(r.key)?r:m.nullGroupBy;l.has(a)||l.set(a,{label:i,templateItemInfos:[]}),l.get(a).templateItemInfos.push(o)}const a=[];for(const s of l.values()){const{label:e,templateItemInfos:t}=s,o=t.filter((({matchesFilter:e})=>e)),l=r({label:e})?t:t.length>0?o:[];if(l.length>0){const t=l.map((({template:e,layer:t})=>this._createItem(e,t)));a.push(this._createGroup(e,t))}}return 1===a.length&&a[0].label===m.nullGroupBy.label?(this._releasePreviousItems(),a[0].items):(this._releasePreviousItems(),a)}refresh(){this.notifyChange("items")}select(e){const t=e?.clone()||null;this._set("selectedItem",t),this.emit("select",{item:t,template:t?.template||null})}_createItem(e,t){const r=this._itemPool.acquire();return r.set({template:e,layer:t}),r}_createGroup(e,t){const r=this._groupPool.acquire();return r.set("label",e),r.items=t,r}_releasePreviousItems(){this._destroyItems(this._get("items"))}_destroyItems(e){if(!e)return;e[0]instanceof p?e.forEach((e=>this._destroyItem(e))):e.forEach((e=>this._destroyGroup(e)))}_destroyGroup(e){e.items.forEach((e=>this._destroyItem(e))),e.items.length=0,this._groupPool.release(e)}_destroyItem(e){e.layer=null,e.template=null,this._itemPool.release(e)}_ensureGroupByObject(e){return"string"==typeof e?{key:e,label:e}:e}};function f(e){return e.reduce(((e,t)=>[...e,...t.templates]),[])}h.nullGroupBy={key:Symbol(),label:"Other​"},h._nullFilterFunction=e=>!0,e([i()],h.prototype,"_groupByFunction",void 0),e([i({readOnly:!0})],h.prototype,"_templateToLayer",null),e([i()],h.prototype,"filterFunction",void 0),e([i()],h.prototype,"groupBy",null),e([i()],h.prototype,"layers",null),e([i()],h.prototype,"state",null),e([i({readOnly:!0})],h.prototype,"_featureTemplatesByLayer",null),e([i({readOnly:!0})],h.prototype,"numberOfFeatureTemplates",null),e([i({readOnly:!0})],h.prototype,"items",null),e([i({readOnly:!0})],h.prototype,"selectedItem",void 0),e([i()],h.prototype,"select",null),h=m=e([n("esri.widgets.FeatureTemplates.FeatureTemplatesViewModel")],h);const d=h;export{d 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.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../Graphic.js";import r from"../../core/Accessor.js";import{HandleOwnerMixin as o}from"../../core/HandleOwner.js";import s from"../../core/Logger.js";import{isSome as i,isNone as l}from"../../core/maybe.js";import{init as a}from"../../core/watchUtils.js";import{property as n}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as p}from"../../core/accessorSupport/decorators/subclass.js";import{renderPreviewHTML as m}from"../../symbols/support/symbolUtils.js";var u;const c=s.getLogger("esri.widgets.FeatureTemplates.TemplateItem");let y=u=class extends(o(r)){constructor(t){super(t),this._activeFetchInfo={id:null,request:null},this.description=null,this.label=null,this.layer=null,this.template=null,this.thumbnail=null}initialize(){this.handles.add(a(this,["layer.renderer","template"],(()=>{this._activeFetchInfo.id=null,this._activeFetchInfo.request=null,this._set("thumbnail",null)})))}clone(){const t=i(this.thumbnail)?this.thumbnail.cloneNode(!0):null,e=new u({layer:this.layer,template:this.template});return e._set("thumbnail",t),e}static async fetchThumbnail(t,e){if(f(t))return c.warn("Thumbnails for sublayers of a SubtypeGroupLayer are not yet supported."),null;const r=await h(t,e);if(l(r))return null;const o={maxSize:36};"dictionary"===t.renderer?.type&&(o.fieldMap=t.renderer.fieldMap,o.feature={attributes:e.prototype.attributes});return await m(r,o)}};async function h(t,r){const{renderer:o}=t;if(o){const t=new e({attributes:r.prototype.attributes}),s=await o.getSymbolAsync(t);if(s)return s}return d(t)}async function d(t){const{geometryType:e}=t,r="point"===e||"multipoint"===e?await import("../../symbols/SimpleMarkerSymbol.js"):"polyline"===e?await import("../../symbols/SimpleLineSymbol.js"):"polygon"===e||"mesh"===e||"multipatch"===e?await import("../../symbols/SimpleFillSymbol.js"):null;return r?new r.default:null}function f(t){return"subtype-group"===t.type}t([n({aliasOf:"template.description"})],y.prototype,"description",void 0),t([n({aliasOf:"template.name"})],y.prototype,"label",void 0),t([n()],y.prototype,"layer",void 0),t([n()],y.prototype,"template",void 0),t([n({readOnly:!0})],y.prototype,"thumbnail",void 0),y=u=t([p("esri.widgets.FeatureTemplates.TemplateItem")],y);const b=y;export{b as default};
5
+ import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../Graphic.js";import r from"../../core/Accessor.js";import{HandleOwnerMixin as o}from"../../core/HandleOwner.js";import{equalsShallow as s}from"../../core/lang.js";import i from"../../core/Logger.js";import{isSome as l,isNone as a}from"../../core/maybe.js";import{watch as n}from"../../core/reactiveUtils.js";import{property as p}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../core/accessorSupport/decorators/subclass.js";import{renderPreviewHTML as u}from"../../symbols/support/symbolUtils.js";var c;const y=i.getLogger("esri.widgets.FeatureTemplates.TemplateItem");let h=c=class extends(o(r)){constructor(t){super(t),this._activeFetchInfo={id:null,request:null},this.description=null,this.label=null,this.layer=null,this.template=null,this.thumbnail=null}initialize(){this.handles.add(n((()=>{const{layer:t}=this;return[t&&"renderer"in t?t.renderer:null,this.template]}),(()=>{this._activeFetchInfo.id=null,this._activeFetchInfo.request=null,this._set("thumbnail",null)}),{initial:!0,equals:s}))}clone(){const t=l(this.thumbnail)?this.thumbnail.cloneNode(!0):null,e=new c({layer:this.layer,template:this.template});return e._set("thumbnail",t),e}static async fetchThumbnail(t,e){if(b(t))return y.warn("Thumbnails for sublayers of a SubtypeGroupLayer are not yet supported."),null;const r=await d(t,e);if(a(r))return null;const o={maxSize:36};"dictionary"===t.renderer?.type&&(o.fieldMap=t.renderer.fieldMap,o.feature={attributes:e.prototype.attributes});return await u(r,o)}};async function d(t,r){const{renderer:o}=t;if(o){const t=new e({attributes:r.prototype.attributes}),s=await o.getSymbolAsync(t);if(s)return s}return f(t)}async function f(t){const{geometryType:e}=t,r="point"===e||"multipoint"===e?await import("../../symbols/SimpleMarkerSymbol.js"):"polyline"===e?await import("../../symbols/SimpleLineSymbol.js"):"polygon"===e||"mesh"===e||"multipatch"===e?await import("../../symbols/SimpleFillSymbol.js"):null;return r?new r.default:null}function b(t){return"subtype-group"===t.type}t([p({aliasOf:"template.description"})],h.prototype,"description",void 0),t([p({aliasOf:"template.name"})],h.prototype,"label",void 0),t([p()],h.prototype,"layer",void 0),t([p()],h.prototype,"template",void 0),t([p({readOnly:!0})],h.prototype,"thumbnail",void 0),h=c=t([m("esri.widgets.FeatureTemplates.TemplateItem")],h);const j=h;export{j 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.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import{HandleOwnerMixin as t}from"../core/HandleOwner.js";import{isNone as r}from"../core/maybe.js";import{init as s}from"../core/watchUtils.js";import{aliasOf as i}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as o}from"../core/accessorSupport/decorators/cast.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{subclass as n}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import c from"./FeatureTemplates/FeatureTemplatesViewModel.js";import{ItemList as d}from"./FeatureTemplates/ItemList.js";import m from"./FeatureTemplates/TemplateItem.js";import"./support/widgetUtils.js";import{messageBundle as p}from"./support/decorators/messageBundle.js";import{vmEvent as h}from"./support/decorators/vmEvent.js";import{tsx as u}from"./support/jsxFactory.js";const f={base:"esri-feature-templates",loader:"esri-feature-templates__loader",widget:"esri-widget"};function v(e){return"items"in e}function b(e){return e.length>0&&v(e[0])}function I(e){const{label:t}=e;return v(e)?t:`${t}–${e.layer.id}`}const y={filter:!0};let g=class extends(t(a)){constructor(e,t){super(e,t),this._iconIntersectionObserver=new IntersectionObserver(((e,t)=>{e.forEach((async e=>{if(e.isIntersecting){const s=e.target;if(s["data-has-icon"])return void t.unobserve(s);const i=s["data-item"],{layer:o,template:l}=i;s["data-has-icon"]=!0;const n=await m.fetchThumbnail(o,l).catch((()=>(s["data-has-icon"]=!1,null)));if(r(n))return;s.appendChild(n)}}))})),this.enableListScroll=!0,this.filterFunction=null,this.filterText="",this.groupBy=null,this.headingLevel=4,this.label=void 0,this.layers=null,this.messages=null,this.selectedItem=null,this.viewModel=new c,this.visibleElements={...y},this.renderItemIcon=this.renderItemIcon.bind(this),this._afterItemCreateOrUpdate=this._afterItemCreateOrUpdate.bind(this),this._afterItemRemoved=this._afterItemRemoved.bind(this)}initialize(){const e=({label:e})=>!this.filterText||e.toLowerCase().includes(this.filterText.toLowerCase());this.own(s(this,"viewModel",((t,r)=>{t&&!t.filterFunction&&(this.filterFunction=e),r&&r!==t&&r.filterFunction===e&&(r.filterFunction=null)})))}destroy(){this._iconIntersectionObserver&&(this._iconIntersectionObserver.disconnect(),this._iconIntersectionObserver=null)}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-icon.js"),import("@esri/calcite-components/dist/components/calcite-input.js"),import("@esri/calcite-components/dist/components/calcite-list-item.js"),import("@esri/calcite-components/dist/components/calcite-progress.js")])}castVisibleElements(e){return{...y,...e}}select(e){return null}render(){const{enableListScroll:e,filterText:t,headingLevel:r,messages:s,viewModel:{items:i,selectedItem:o,state:l}}=this,n=this.visibleElements.filter;if(b(i)){const e=i.find((e=>e.label===c.nullGroupBy.label));e&&(e.label=s.other)}return u("div",{class:this.classes(f.base,f.widget),"aria-label":s.widgetLabel},"loading"===l?this.renderLoader():"ready"===l?u(d,{id:this.id,identify:I,filterText:t,items:i,headingLevel:r,messages:{filterPlaceholder:s.filterPlaceholder,noItems:s.noItems,noMatches:s.noMatches},filterEnabled:n,onItemSelect:e=>{this.viewModel.select(e)},onFilterChange:e=>{this.filterText=e,this.viewModel.refresh()},renderIcon:this.renderItemIcon,selectedItem:o,enableListScroll:e}):null)}renderItemIcon({item:e}){return u("span",{key:"icon",afterCreate:this._afterItemCreateOrUpdate,afterUpdate:this._afterItemCreateOrUpdate,afterRemoved:this._afterItemRemoved,"data-item":e,"data-has-icon":!1})}renderLoader(){return u("div",{class:f.loader,key:"loader"})}_afterItemCreateOrUpdate(e){this._iconIntersectionObserver?.observe(e)}_afterItemRemoved(e){this._iconIntersectionObserver?.unobserve(e)}};e([l()],g.prototype,"enableListScroll",void 0),e([i("viewModel.filterFunction")],g.prototype,"filterFunction",void 0),e([l()],g.prototype,"filterText",void 0),e([i("viewModel.groupBy")],g.prototype,"groupBy",void 0),e([l()],g.prototype,"headingLevel",void 0),e([l({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],g.prototype,"label",void 0),e([i("viewModel.layers")],g.prototype,"layers",void 0),e([l(),p("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],g.prototype,"messages",void 0),e([i("viewModel.selectedItem")],g.prototype,"selectedItem",void 0),e([l(),h("select")],g.prototype,"viewModel",void 0),e([l()],g.prototype,"visibleElements",void 0),e([o("visibleElements")],g.prototype,"castVisibleElements",null),e([i("viewModel.select")],g.prototype,"select",null),g=e([n("esri.widgets.FeatureTemplates")],g);const w=g;export{w as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import{HandleOwnerMixin as t}from"../core/HandleOwner.js";import{isNone as r}from"../core/maybe.js";import{watch as s,initial as i}from"../core/reactiveUtils.js";import{aliasOf as o}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import{property as n}from"../core/accessorSupport/decorators/property.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import c from"./Widget.js";import d from"./FeatureTemplates/FeatureTemplatesViewModel.js";import{ItemList as m}from"./FeatureTemplates/ItemList.js";import p from"./FeatureTemplates/TemplateItem.js";import"./support/widgetUtils.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{vmEvent as h}from"./support/decorators/vmEvent.js";import{tsx as f}from"./support/jsxFactory.js";const v={base:"esri-feature-templates",loader:"esri-feature-templates__loader",widget:"esri-widget"};function b(e){return"items"in e}function I(e){return e.length>0&&b(e[0])}function y(e){const{label:t}=e;return b(e)?t:`${t}–${e.layer.id}`}const g={filter:!0};let w=class extends(t(c)){constructor(e,t){super(e,t),this._iconIntersectionObserver=new IntersectionObserver(((e,t)=>{e.forEach((async e=>{if(e.isIntersecting){const s=e.target;if(s["data-has-icon"])return void t.unobserve(s);const i=s["data-item"],{layer:o,template:l}=i;s["data-has-icon"]=!0;const n=await p.fetchThumbnail(o,l).catch((()=>(s["data-has-icon"]=!1,null)));if(r(n))return;s.appendChild(n)}}))})),this.enableListScroll=!0,this.filterFunction=null,this.filterText="",this.groupBy=null,this.headingLevel=4,this.label=void 0,this.layers=null,this.messages=null,this.selectedItem=null,this.viewModel=new d,this.visibleElements={...g},this.renderItemIcon=this.renderItemIcon.bind(this),this._afterItemCreateOrUpdate=this._afterItemCreateOrUpdate.bind(this),this._afterItemRemoved=this._afterItemRemoved.bind(this)}initialize(){const e=({label:e})=>!this.filterText||e.toLowerCase().includes(this.filterText.toLowerCase());this.own(s((()=>this.viewModel),((t,r)=>{t&&!t.filterFunction&&(this.filterFunction=e),r&&r!==t&&r.filterFunction===e&&(r.filterFunction=null)}),i))}destroy(){this._iconIntersectionObserver&&(this._iconIntersectionObserver.disconnect(),this._iconIntersectionObserver=null)}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-icon.js"),import("@esri/calcite-components/dist/components/calcite-input.js"),import("@esri/calcite-components/dist/components/calcite-list-item.js"),import("@esri/calcite-components/dist/components/calcite-progress.js")])}castVisibleElements(e){return{...g,...e}}select(e){return null}render(){const{enableListScroll:e,filterText:t,headingLevel:r,messages:s,viewModel:{items:i,selectedItem:o,state:l}}=this,n=this.visibleElements.filter;if(I(i)){const e=i.find((e=>e.label===d.nullGroupBy.label));e&&(e.label=s.other)}return f("div",{class:this.classes(v.base,v.widget),"aria-label":s.widgetLabel},"loading"===l?this.renderLoader():"ready"===l?f(m,{id:this.id,identify:y,filterText:t,items:i,headingLevel:r,messages:{filterPlaceholder:s.filterPlaceholder,noItems:s.noItems,noMatches:s.noMatches},filterEnabled:n,onItemSelect:e=>{this.viewModel.select(e)},onFilterChange:e=>{this.filterText=e,this.viewModel.refresh()},renderIcon:this.renderItemIcon,selectedItem:o,enableListScroll:e}):null)}renderItemIcon({item:e}){return f("span",{key:"icon",afterCreate:this._afterItemCreateOrUpdate,afterUpdate:this._afterItemCreateOrUpdate,afterRemoved:this._afterItemRemoved,"data-item":e,"data-has-icon":!1})}renderLoader(){return f("div",{class:v.loader,key:"loader"})}_afterItemCreateOrUpdate(e){this._iconIntersectionObserver?.observe(e)}_afterItemRemoved(e){this._iconIntersectionObserver?.unobserve(e)}};e([n()],w.prototype,"enableListScroll",void 0),e([o("viewModel.filterFunction")],w.prototype,"filterFunction",void 0),e([n()],w.prototype,"filterText",void 0),e([o("viewModel.groupBy")],w.prototype,"groupBy",void 0),e([n()],w.prototype,"headingLevel",void 0),e([n({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],w.prototype,"label",void 0),e([o("viewModel.layers")],w.prototype,"layers",void 0),e([n(),u("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],w.prototype,"messages",void 0),e([o("viewModel.selectedItem")],w.prototype,"selectedItem",void 0),e([n(),h("select")],w.prototype,"viewModel",void 0),e([n()],w.prototype,"visibleElements",void 0),e([l("visibleElements")],w.prototype,"castVisibleElements",null),e([o("viewModel.select")],w.prototype,"select",null),w=e([a("esri.widgets.FeatureTemplates")],w);const j=w;export{j 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.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Collection.js";import i from"../../core/Error.js";import{HandleOwner as s}from"../../core/HandleOwner.js";import{isSome as l}from"../../core/maybe.js";import{createTask as r}from"../../core/promiseUtils.js";import{Milliseconds as o}from"../../core/time.js";import{init as a,watch as n}from"../../core/watchUtils.js";import{property as h}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as c}from"../../core/accessorSupport/decorators/subclass.js";import d from"../../webdoc/Widgets.js";import f from"../../webdoc/widgets/FloorFilter.js";import{GoToMixin as u}from"../support/GoTo.js";function p(e){return"esri.WebMap"===e.declaredClass}function y(e){return"esri.WebScene"===e.declaredClass}let v=class extends(u(s)){constructor(e){super(e),this.filterMenuOpen=!1,this.filterMenuType="site",this.filterMode="base-floors",this.levelsExpanded=!0,this.searchTerm=null,this.view=null,this._updateFloorFilterTask=null}initialize(){this.handles.add([a(this,"view.map",(e=>{l(this._updateFloorFilterTask)&&(this._updateFloorFilterTask.abort(),this._updateFloorFilterTask=null),this._updateFloorFilterTask=r((()=>this._updateFloorFilterFromMap(e).then((()=>{this._setInitialViewState(e)}))))})),a(this,"view",((e,t)=>{this._unregisterWidget(t),this._registerWidget(e),this._watchSearchResults(e)}),!0),n(this,"view.widthBreakpoint",(e=>{this._viewWidthBreakpoint=e})),n(this,"view.heightBreakpoint",(e=>{this._viewHeightBreakpoint=e}))])}destroy(){this._unregisterWidget(this.view),this.view=null,l(this._updateFloorFilterTask)&&(this._updateFloorFilterTask.abort(),this._updateFloorFilterTask=null)}set enabled(e){this._callOverride("enabled",e)}set facility(e){if(e&&this._isOverridden("facility")){const t=this.getFacility(e);this.hasMultipleSites&&(this.site=t?.siteId||void 0)}this._callOverride("facility",e)}set filterFeatures(e){this._callOverride("filterFeatures",e)}set filterLayers(e){this._callOverride("filterLayers",e)}get hasFacilities(){return this.filterLayers?.facilityLayer&&this.filterFeatures?.facilities?.facilitiesInfo?.length>0}get hasLevels(){return this.filterLayers?.levelLayer&&this.filterFeatures?.levels?.levelsInfo?.length>0}get hasMultipleSites(){return this.filterLayers?.siteLayer&&this.filterFeatures?.sites?.sitesInfo?.length>1}get isNormalMode(){let e=!0;const t=this._viewWidthBreakpoint,i=this._viewHeightBreakpoint;return"small"!==t&&"xsmall"!==t&&"xsmall"!==i||(e=!1),e}set level(e){if(!e)return this._callOverride("level",e),this.facility=void 0,this.site=void 0,void this.setFloors(null);let t=null,i=null;const s=e?.split("--");if(s?.length>1&&"all"===s[0]?(i=s[1],t={id:e,facilityId:i,shortName:null,longName:null,levelNumber:null,verticalOrder:null}):(t=this.getLevel(e),i=t?.facilityId),this.level!==e||this.isNormalMode||this.levelsExpanded)t&&this.hasFacilities&&this.hasLevels?(this.facility=i,this.hasMultipleSites&&(this.site=this.getFacility(i)?.siteId),this.setFloors(t)):this._isOverridden("level")&&(this.facility=void 0,this.site=void 0,this.hasMultipleSites&&(this.filterMenuType="site"),this.setFloors(null)),this._callOverride("level",e);else{this.getFacilityLevels(i)?.length>1&&(this.levelsExpanded=!0)}}set longNames(e){this._callOverride("longNames",e)}set minimized(e){this._callOverride("minimized",e)}set pinnedLevels(e){this._callOverride("pinnedLevels",e)}set site(e){this._callOverride("site",e)}get state(){return this.view&&this.filterFeatures&&this.hasFacilities&&this.hasLevels?"ready":this.view&&!this.filterFeatures?"loading":"disabled"}filterFacilities(e){let t=e;this.searchTerm&&(t=e.filter((e=>{const{name:t}=e;return t.toLowerCase().includes(this.searchTerm.toLowerCase())}))),this.site&&(t=t.filter((e=>e.siteId===this.site)));return t.sort(((e,t)=>{const i=e.name,s=t.name;return i>s?1:i===s?0:-1}))}filterSites(e){let t=e;this.searchTerm&&(t=e.filter((e=>{const{name:t}=e;return t.toLowerCase().includes(this.searchTerm.toLowerCase())})));return t.sort(((e,t)=>{const i=e.name,s=t.name;return i>s?1:i===s?0:-1}))}getBaseLevel(e){const t=this.filterFeatures?.levels?.levelsInfo;let i=null;if(e){const{id:s}=e;t&&t.length>0&&t.forEach((e=>{0===e.verticalOrder&&e.facilityId===s&&(i=e)}))}return i}getFacility(e){return this.filterFeatures?.facilities?.facilitiesInfo?.find((t=>t.id===e))??null}getFacilityLevels(e){if(!e||!this.filterFeatures?.levels?.levelsInfo)return[];return this.filterFeatures.levels.levelsInfo.filter((t=>t.facilityId===e)).sort(((e,t)=>{const i=e.verticalOrder,s=t.verticalOrder;return i>s?-1:i===s?0:1}))}getLevel(e){return this.filterFeatures?.levels?.levelsInfo?.find((t=>t.id===e))??null}getSite(e){return this.filterFeatures?.sites?.sitesInfo?.find((t=>t.id===e))??null}goTo(e){const{view:t}=this;if(!t||!e)return;const{geometry:i}=e;if(i&&i.extent){const e={duration:o(1e3),easing:"out-back"},t={target:i.extent,options:e};this.callGoTo(t)}}setFloors(e){this.view?.map?.allLayers?.forEach((e=>{"feature"===e.type&&this._computeViewAllModeFloors(e)})),this.view.floors=new t(this._computeFloors(e))}updateWebDocument(e){if(p(e)){const t=new f({enabled:this.enabled,longNames:this.longNames,minimized:this.minimized,pinnedLevels:this.pinnedLevels,site:this.site??null,facility:this.facility??null,level:this.level??null});e.widgets?e.widgets.floorFilter=t:e.widgets=new d({floorFilter:t})}}_computeFloors(e){if("single-floor"===this.filterMode)this._computeSingleFloor(e);else if("base-floors"===this.filterMode)return"3d"===this.view.type?this._computeBaseFloors3D(e):this._computeBaseFloors(e);return this._computeEmptyFloors()}_computeSingleFloor(e){if(!e)return this._computeEmptyFloors();const t=[];if("all"===e?.id){this.getFacilityLevels(e.facilityId).forEach((e=>{e.id&&t.push(e.id)}))}else e&&t.push(e.id);return t}_computeBaseFloors(e){const t=this.filterFeatures?.levels?.levelsInfo;if(!t||!t.length)return this._computeEmptyFloors();const i=[];if("all"===e?.id){this.getFacilityLevels(e.facilityId).forEach((e=>{e.id&&i.push(e.id)}))}else e&&i.push(e.id);const s=e?.facilityId;return t.forEach((e=>{const{id:t,facilityId:l,verticalOrder:r}=e;(s||0!==r||i.includes(t))&&(l===s||0!==r||i.includes(t))||i.push(t)})),i}_computeBaseFloors3D(e){const t=this.filterFeatures?.levels?.levelsInfo;if(!t||!t.length)return this._computeEmptyFloors();const i=[],s=e?.id.split("--");if(s?.length>1&&"all"===s[0]){this.getFacilityLevels(e.facilityId).forEach((e=>{e.id&&i.push(e.id)}))}else e&&i.push(e.id);const l=e?.facilityId;return t.forEach((e=>{const{id:t,facilityId:s}=e;(l||i.includes(t))&&(s===l||i.includes(t))||i.push(t)})),i}_computeEmptyFloors(){return[]}async _setFilterLayers(){const{view:e}=this;if(!this._isOverridden("filterLayers")){if(!p(e.map)&&!y(e.map))throw new i("Map must be a webmap or webscene");{const t=e.map,i=t?.allLayers;if(i?.items?.length>0){const e={siteLayer:null,facilityLayer:null,levelLayer:null},s=t.floorInfo?.siteLayer?.layerId,l=t.floorInfo?.facilityLayer?.layerId,r=t.floorInfo?.levelLayer?.layerId,o=t.floorInfo?.siteLayer?.sublayerId||t.floorInfo?.facilityLayer?.sublayerId||t.floorInfo?.levelLayer?.sublayerId;if(!l||!r)return;const a=i.items.filter((e=>"feature"===e.type||"scene"===e.type)),n=i.items.filter((e=>"map-image"===e.type));if(n?.length>0&&o){await Promise.all(n.map((e=>e.load())));const i=t.floorInfo?.siteLayer?.sublayerId,o=t.floorInfo?.facilityLayer?.sublayerId,a=t.floorInfo?.levelLayer?.sublayerId;n.forEach((t=>{const n=t.id,h=t?.allSublayers,c=h?.items;(n===s||n===l||n===r)&&c?.length>0&&h.items.forEach((t=>{const l=t.id;n===s&&l===i?e.siteLayer=t:l===o?e.facilityLayer=t:l===a&&(e.levelLayer=t)}))}))}a?.length>0&&a.forEach((t=>{const i=t.id;i===s?e.siteLayer=t:i===l?e.facilityLayer=t:i===r&&(e.levelLayer=t)})),this.filterLayers=e}}}}async _getFilterFeatures(){if(this._isOverridden("filterFeatures"))return this.filterFeatures;const e={sites:null,facilities:null,levels:null},t=await this._getSites();e.sites=t;const i=await this._getFacilities();e.facilities=i;const s=await this._getLevels();return e.levels=s,e}async _getSites(){const{filterLayers:e,view:t}=this,i=t.map,{siteLayer:s}=e,l={sitesInfo:[]};if(!s||!i?.floorInfo?.siteLayer)return l;const r=s.createQuery();r.returnGeometry=!0,r.outFields=["*"],r.returnZ=!0,"type"in s&&"scene"===s.type&&(r.multipatchOption="xyFootprint");const{siteIdField:o,nameField:a}=i.floorInfo.siteLayer,n=await s.queryFeatures(r);if(n?.features?.length>0){n.features.forEach((e=>{const t=e.attributes,i=e.geometry,s=t[o],r=t[a];s&&r&&l.sitesInfo.push({id:s,name:r,geometry:i})}))}return l}async _getFacilities(){const{filterLayers:e,view:t}=this,i=t.map,{facilityLayer:s}=e,l={facilitiesInfo:[]};if(!s||!i?.floorInfo?.facilityLayer)return l;const r=s.createQuery();r.returnGeometry=!0,r.outFields=["*"],r.returnZ=!0,"type"in s&&"scene"===s.type&&(r.multipatchOption="xyFootprint");const{facilityIdField:o,siteIdField:a,nameField:n}=i.floorInfo.facilityLayer,h=await s.queryFeatures(r);if(h?.features?.length>0){h.features.forEach((e=>{const t=e.attributes,i=e.geometry,s=t[o],r=t[a],h=t[n];s&&h&&l.facilitiesInfo.push({id:s,siteId:r,name:h,geometry:i})}))}return l}async _getLevels(){const{filterLayers:e,view:t}=this,i=t.map,{levelLayer:s}=e,l={levelsInfo:[]};if(!s||!i?.floorInfo?.levelLayer)return l;const r=s.createQuery();r.returnGeometry=!0,r.outFields=["*"],r.returnZ=!0;const{levelIdField:o,facilityIdField:a,longNameField:n,shortNameField:h,levelNumberField:c,verticalOrderField:d}=i.floorInfo.levelLayer,f=await s.queryFeatures(r);if(f?.features?.length>0){f.features.forEach((e=>{const t=e.attributes,i=t[o],s=t[a],r=t[n],f=t[h],u=t[c],p=t[d];i&&s&&r&&f&&"number"==typeof u&&"number"==typeof p&&l.levelsInfo.push({id:i,facilityId:s,longName:r,shortName:f,levelNumber:u,verticalOrder:p})}))}return l}_registerWidget(e){const t=e?.persistableViewModels.includes(this);t||e?.persistableViewModels.add(this)}_unregisterWidget(e){e?.persistableViewModels.remove(this)}_watchSearchResults(e){e?.on("select-result-floor",(e=>{const t=this.getLevel(e);t&&this.level!==e&&(this.level=e,this.setFloors(t))}))}async _setInitialViewState(e){if(this.view)try{await this.view.when(),await this._setFilterLayers();const t=await this._getFilterFeatures();if(!t)return;if(this.filterFeatures=t,!this.hasFacilities||!this.hasLevels)return void console.error("Facilities and Levels are required for the Floor Filter widget");if(this.hasMultipleSites||(this.filterMenuType="facility"),this.facility&&this.level){this.filterMenuType="facility";const e=this.getFacility(this.facility),t=this.getLevel(this.level);this.site||(this.site=e.siteId||void 0),this.setFloors(t),this.goTo(e)}else if(this.facility&&!this.level){this.filterMenuType="facility";const e=this.getFacility(this.facility),t=this.getBaseLevel(e);this.site||(this.site=e.siteId||void 0),this.level=t?.id||void 0,this.setFloors(t),this.goTo(e)}else if(!this.facility&&this.level){this.filterMenuType="facility";const e=this.getLevel(this.level),t=this.getFacility(e?.facilityId);this.facility=t?.id||void 0,this.site||(this.site=t?.siteId||void 0),this.setFloors(e),this.goTo(t)}else if(!this.site||this.facility||this.level){if(!e||!p(e))return void this.setFloors(null);const t=e?.widgets?.floorFilter;if(!t)return void this.setFloors(null);t.site&&!this.site&&(this.site=t.site),this.setFloors(null)}else{this.filterMenuType="site";const e=this.getSite(this.site);this.setFloors(null),this.goTo(e)}}catch(t){console.error("Couldn't retrieve sites, facilities, and levels",t)}}_callOverride(e,t){this._override(e,t)}async _updateFloorFilterFromMap(e){if(!e||!p(e))return;const t=e?.widgets?.floorFilter;t&&(this._isOverridden("enabled")||(this.enabled=t.enabled),this._isOverridden("longNames")||(this.longNames=t.longNames),this._isOverridden("minimized")||(this.minimized=t.minimized),this._isOverridden("pinnedLevels")||(this.pinnedLevels=t.pinnedLevels),this._isOverridden("site")||(this.site=t.site),this._isOverridden("facility")||(this.facility=t.facility),this._isOverridden("level")||(this.level=t.level))}_computeViewAllModeFloors(e){const{filterFeatures:i}=this;if(e.floorInfo?.viewAllMode&&this.hasLevels&&this.hasFacilities&&"base-floors"===this.filterMode){const{level:s,facility:l}=this,r=[];i.levels.levelsInfo.forEach((e=>{const{id:t,facilityId:i}=e;l&&i===l?s&&t===s&&r.push(t):r.push(t)})),e.floorInfo.viewAllLevelIds=new t(r)}}};e([h({value:!1})],v.prototype,"enabled",null),e([h({value:void 0})],v.prototype,"facility",null),e([h({value:null})],v.prototype,"filterFeatures",null),e([h({value:null})],v.prototype,"filterLayers",null),e([h()],v.prototype,"filterMenuOpen",void 0),e([h()],v.prototype,"filterMenuType",void 0),e([h()],v.prototype,"filterMode",void 0),e([h()],v.prototype,"hasFacilities",null),e([h()],v.prototype,"hasLevels",null),e([h()],v.prototype,"hasMultipleSites",null),e([h({readOnly:!0})],v.prototype,"isNormalMode",null),e([h({value:void 0})],v.prototype,"level",null),e([h({value:!1})],v.prototype,"longNames",null),e([h()],v.prototype,"levelsExpanded",void 0),e([h({value:!1})],v.prototype,"minimized",null),e([h({value:!1})],v.prototype,"pinnedLevels",null),e([h()],v.prototype,"searchTerm",void 0),e([h({value:void 0})],v.prototype,"site",null),e([h({readOnly:!0})],v.prototype,"state",null),e([h()],v.prototype,"view",void 0),e([h()],v.prototype,"_viewHeightBreakpoint",void 0),e([h()],v.prototype,"_viewWidthBreakpoint",void 0),e([h()],v.prototype,"updateWebDocument",null),v=e([c("esri/widgets/FloorFilter/FloorFilterViewModel")],v);const m=v;export{m as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Collection.js";import i from"../../core/Error.js";import{HandleOwner as s}from"../../core/HandleOwner.js";import{isSome as l}from"../../core/maybe.js";import{createTask as r,throwIfAborted as o}from"../../core/promiseUtils.js";import{watch as a,initial as n,syncAndInitial as h}from"../../core/reactiveUtils.js";import{Milliseconds as c}from"../../core/time.js";import{property as d}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as f}from"../../core/accessorSupport/decorators/subclass.js";import u from"../../webdoc/Widgets.js";import y from"../../webdoc/widgets/FloorFilter.js";import{GoToMixin as p}from"../support/GoTo.js";function v(e){return"esri.WebMap"===e.declaredClass}function m(e){return"esri.WebScene"===e.declaredClass}let F=class extends(p(s)){constructor(e){super(e),this.filterMenuOpen=!1,this.filterMenuType="site",this.filterMode="base-floors",this.levelsExpanded=!0,this.searchTerm=null,this.view=null,this._updateFloorFilterTask=null}initialize(){this.handles.add([a((()=>this.view?.map),(e=>{l(this._updateFloorFilterTask)&&(this._updateFloorFilterTask.abort(),this._updateFloorFilterTask=null),this._updateFloorFilterTask=r((async t=>{await this._updateFloorFilterFromMap(e),o(t),this._setInitialViewState(e)}))}),n),a((()=>this.view),((e,t)=>{this._unregisterWidget(t),this._registerWidget(e),this._watchSearchResults(e)}),h),a((()=>this.view?.widthBreakpoint),(e=>{this._viewWidthBreakpoint=e})),a((()=>this.view?.heightBreakpoint),(e=>{this._viewHeightBreakpoint=e}))])}destroy(){this._unregisterWidget(this.view),this.view=null,l(this._updateFloorFilterTask)&&(this._updateFloorFilterTask.abort(),this._updateFloorFilterTask=null)}set enabled(e){this._callOverride("enabled",e)}set facility(e){if(e&&this._isOverridden("facility")){const t=this.getFacility(e);this.hasMultipleSites&&(this.site=t?.siteId||void 0)}this._callOverride("facility",e)}set filterFeatures(e){this._callOverride("filterFeatures",e)}set filterLayers(e){this._callOverride("filterLayers",e)}get hasFacilities(){return this.filterLayers?.facilityLayer&&this.filterFeatures?.facilities?.facilitiesInfo?.length>0}get hasLevels(){return this.filterLayers?.levelLayer&&this.filterFeatures?.levels?.levelsInfo?.length>0}get hasMultipleSites(){return this.filterLayers?.siteLayer&&this.filterFeatures?.sites?.sitesInfo?.length>1}get isNormalMode(){let e=!0;const t=this._viewWidthBreakpoint,i=this._viewHeightBreakpoint;return"small"!==t&&"xsmall"!==t&&"xsmall"!==i||(e=!1),e}set level(e){if(!e)return this._callOverride("level",e),this.facility=void 0,this.site=void 0,void this.setFloors(null);let t=null,i=null;const s=e?.split("--");if(s?.length>1&&"all"===s[0]?(i=s[1],t={id:e,facilityId:i,shortName:null,longName:null,levelNumber:null,verticalOrder:null}):(t=this.getLevel(e),i=t?.facilityId),this.level!==e||this.isNormalMode||this.levelsExpanded)t&&this.hasFacilities&&this.hasLevels?(this.facility=i,this.hasMultipleSites&&(this.site=this.getFacility(i)?.siteId),this.setFloors(t)):this._isOverridden("level")&&(this.facility=void 0,this.site=void 0,this.hasMultipleSites&&(this.filterMenuType="site"),this.setFloors(null)),this._callOverride("level",e);else{this.getFacilityLevels(i)?.length>1&&(this.levelsExpanded=!0)}}set longNames(e){this._callOverride("longNames",e)}set minimized(e){this._callOverride("minimized",e)}set pinnedLevels(e){this._callOverride("pinnedLevels",e)}set site(e){this._callOverride("site",e)}get state(){return this.view&&this.filterFeatures&&this.hasFacilities&&this.hasLevels?"ready":this.view&&!this.filterFeatures?"loading":"disabled"}filterFacilities(e){let t=e;this.searchTerm&&(t=e.filter((e=>{const{name:t}=e;return t.toLowerCase().includes(this.searchTerm.toLowerCase())}))),this.site&&(t=t.filter((e=>e.siteId===this.site)));return t.sort(((e,t)=>{const i=e.name,s=t.name;return i>s?1:i===s?0:-1}))}filterSites(e){let t=e;this.searchTerm&&(t=e.filter((e=>{const{name:t}=e;return t.toLowerCase().includes(this.searchTerm.toLowerCase())})));return t.sort(((e,t)=>{const i=e.name,s=t.name;return i>s?1:i===s?0:-1}))}getBaseLevel(e){const t=this.filterFeatures?.levels?.levelsInfo;let i=null;if(e){const{id:s}=e;t&&t.length>0&&t.forEach((e=>{0===e.verticalOrder&&e.facilityId===s&&(i=e)}))}return i}getFacility(e){return this.filterFeatures?.facilities?.facilitiesInfo?.find((t=>t.id===e))??null}getFacilityLevels(e){if(!e||!this.filterFeatures?.levels?.levelsInfo)return[];return this.filterFeatures.levels.levelsInfo.filter((t=>t.facilityId===e)).sort(((e,t)=>{const i=e.verticalOrder,s=t.verticalOrder;return i>s?-1:i===s?0:1}))}getLevel(e){return this.filterFeatures?.levels?.levelsInfo?.find((t=>t.id===e))??null}getSite(e){return this.filterFeatures?.sites?.sitesInfo?.find((t=>t.id===e))??null}goTo(e){const{view:t}=this;if(!t||!e)return;const{geometry:i}=e;if(i&&i.extent){const e={duration:c(1e3),easing:"out-back"},t={target:i.extent,options:e};this.callGoTo(t)}}setFloors(e){this.view?.map?.allLayers?.forEach((e=>{"feature"===e.type&&this._computeViewAllModeFloors(e)})),this.view.floors=new t(this._computeFloors(e))}updateWebDocument(e){if(v(e)){const t=new y({enabled:this.enabled,longNames:this.longNames,minimized:this.minimized,pinnedLevels:this.pinnedLevels,site:this.site??null,facility:this.facility??null,level:this.level??null});e.widgets?e.widgets.floorFilter=t:e.widgets=new u({floorFilter:t})}}_computeFloors(e){if("single-floor"===this.filterMode)this._computeSingleFloor(e);else if("base-floors"===this.filterMode)return"3d"===this.view.type?this._computeBaseFloors3D(e):this._computeBaseFloors(e);return this._computeEmptyFloors()}_computeSingleFloor(e){if(!e)return this._computeEmptyFloors();const t=[];if("all"===e?.id){this.getFacilityLevels(e.facilityId).forEach((e=>{e.id&&t.push(e.id)}))}else e&&t.push(e.id);return t}_computeBaseFloors(e){const t=this.filterFeatures?.levels?.levelsInfo;if(!t||!t.length)return this._computeEmptyFloors();const i=[];if("all"===e?.id){this.getFacilityLevels(e.facilityId).forEach((e=>{e.id&&i.push(e.id)}))}else e&&i.push(e.id);const s=e?.facilityId;return t.forEach((e=>{const{id:t,facilityId:l,verticalOrder:r}=e;(s||0!==r||i.includes(t))&&(l===s||0!==r||i.includes(t))||i.push(t)})),i}_computeBaseFloors3D(e){const t=this.filterFeatures?.levels?.levelsInfo;if(!t||!t.length)return this._computeEmptyFloors();const i=[],s=e?.id.split("--");if(s?.length>1&&"all"===s[0]){this.getFacilityLevels(e.facilityId).forEach((e=>{e.id&&i.push(e.id)}))}else e&&i.push(e.id);const l=e?.facilityId;return t.forEach((e=>{const{id:t,facilityId:s}=e;(l||i.includes(t))&&(s===l||i.includes(t))||i.push(t)})),i}_computeEmptyFloors(){return[]}async _setFilterLayers(){const{view:e}=this;if(!this._isOverridden("filterLayers")){if(!v(e.map)&&!m(e.map))throw new i("Map must be a webmap or webscene");{const t=e.map,i=t?.allLayers;if(i?.items?.length>0){const e={siteLayer:null,facilityLayer:null,levelLayer:null},s=t.floorInfo?.siteLayer?.layerId,l=t.floorInfo?.facilityLayer?.layerId,r=t.floorInfo?.levelLayer?.layerId,o=t.floorInfo?.siteLayer?.sublayerId||t.floorInfo?.facilityLayer?.sublayerId||t.floorInfo?.levelLayer?.sublayerId;if(!l||!r)return;const a=i.items.filter((e=>"feature"===e.type||"scene"===e.type)),n=i.items.filter((e=>"map-image"===e.type));if(n?.length>0&&o){await Promise.all(n.map((e=>e.load())));const i=t.floorInfo?.siteLayer?.sublayerId,o=t.floorInfo?.facilityLayer?.sublayerId,a=t.floorInfo?.levelLayer?.sublayerId;n.forEach((t=>{const n=t.id,h=t?.allSublayers,c=h?.items;(n===s||n===l||n===r)&&c?.length>0&&h.items.forEach((t=>{const l=t.id;n===s&&l===i?e.siteLayer=t:l===o?e.facilityLayer=t:l===a&&(e.levelLayer=t)}))}))}a?.length>0&&a.forEach((t=>{const i=t.id;i===s?e.siteLayer=t:i===l?e.facilityLayer=t:i===r&&(e.levelLayer=t)})),this.filterLayers=e}}}}async _getFilterFeatures(){if(this._isOverridden("filterFeatures"))return this.filterFeatures;const e={sites:null,facilities:null,levels:null},t=await this._getSites();e.sites=t;const i=await this._getFacilities();e.facilities=i;const s=await this._getLevels();return e.levels=s,e}async _getSites(){const{filterLayers:e,view:t}=this,i=t.map,{siteLayer:s}=e,l={sitesInfo:[]};if(!s||!i?.floorInfo?.siteLayer)return l;const r=s.createQuery();r.returnGeometry=!0,r.outFields=["*"],r.returnZ=!0,"type"in s&&"scene"===s.type&&(r.multipatchOption="xyFootprint");const{siteIdField:o,nameField:a}=i.floorInfo.siteLayer,n=await s.queryFeatures(r);if(n?.features?.length>0){n.features.forEach((e=>{const t=e.attributes,i=e.geometry,s=t[o],r=t[a];s&&r&&l.sitesInfo.push({id:s,name:r,geometry:i})}))}return l}async _getFacilities(){const{filterLayers:e,view:t}=this,i=t.map,{facilityLayer:s}=e,l={facilitiesInfo:[]};if(!s||!i?.floorInfo?.facilityLayer)return l;const r=s.createQuery();r.returnGeometry=!0,r.outFields=["*"],r.returnZ=!0,"type"in s&&"scene"===s.type&&(r.multipatchOption="xyFootprint");const{facilityIdField:o,siteIdField:a,nameField:n}=i.floorInfo.facilityLayer,h=await s.queryFeatures(r);if(h?.features?.length>0){h.features.forEach((e=>{const t=e.attributes,i=e.geometry,s=t[o],r=t[a],h=t[n];s&&h&&l.facilitiesInfo.push({id:s,siteId:r,name:h,geometry:i})}))}return l}async _getLevels(){const{filterLayers:e,view:t}=this,i=t.map,{levelLayer:s}=e,l={levelsInfo:[]};if(!s||!i?.floorInfo?.levelLayer)return l;const r=s.createQuery();r.returnGeometry=!0,r.outFields=["*"],r.returnZ=!0;const{levelIdField:o,facilityIdField:a,longNameField:n,shortNameField:h,levelNumberField:c,verticalOrderField:d}=i.floorInfo.levelLayer,f=await s.queryFeatures(r);if(f?.features?.length>0){f.features.forEach((e=>{const t=e.attributes,i=t[o],s=t[a],r=t[n],f=t[h],u=t[c],y=t[d];i&&s&&r&&f&&"number"==typeof u&&"number"==typeof y&&l.levelsInfo.push({id:i,facilityId:s,longName:r,shortName:f,levelNumber:u,verticalOrder:y})}))}return l}_registerWidget(e){const t=e?.persistableViewModels.includes(this);t||e?.persistableViewModels.add(this)}_unregisterWidget(e){e?.persistableViewModels.remove(this)}_watchSearchResults(e){e?.on("select-result-floor",(e=>{const t=this.getLevel(e);t&&this.level!==e&&(this.level=e,this.setFloors(t))}))}async _setInitialViewState(e){if(this.view)try{await this.view.when(),await this._setFilterLayers();const t=await this._getFilterFeatures();if(!t)return;if(this.filterFeatures=t,!this.hasFacilities||!this.hasLevels)return void console.error("Facilities and Levels are required for the Floor Filter widget");if(this.hasMultipleSites||(this.filterMenuType="facility"),this.facility&&this.level){this.filterMenuType="facility";const e=this.getFacility(this.facility),t=this.getLevel(this.level);this.site||(this.site=e.siteId||void 0),this.setFloors(t),this.goTo(e)}else if(this.facility&&!this.level){this.filterMenuType="facility";const e=this.getFacility(this.facility),t=this.getBaseLevel(e);this.site||(this.site=e.siteId||void 0),this.level=t?.id||void 0,this.setFloors(t),this.goTo(e)}else if(!this.facility&&this.level){this.filterMenuType="facility";const e=this.getLevel(this.level),t=this.getFacility(e?.facilityId);this.facility=t?.id||void 0,this.site||(this.site=t?.siteId||void 0),this.setFloors(e),this.goTo(t)}else if(!this.site||this.facility||this.level){if(!e||!v(e))return void this.setFloors(null);const t=e?.widgets?.floorFilter;if(!t)return void this.setFloors(null);t.site&&!this.site&&(this.site=t.site),this.setFloors(null)}else{this.filterMenuType="site";const e=this.getSite(this.site);this.setFloors(null),this.goTo(e)}}catch(t){console.error("Couldn't retrieve sites, facilities, and levels",t)}}_callOverride(e,t){this._override(e,t)}async _updateFloorFilterFromMap(e){if(!e||!v(e))return;const t=e?.widgets?.floorFilter;t&&(this._isOverridden("enabled")||(this.enabled=t.enabled),this._isOverridden("longNames")||(this.longNames=t.longNames),this._isOverridden("minimized")||(this.minimized=t.minimized),this._isOverridden("pinnedLevels")||(this.pinnedLevels=t.pinnedLevels),this._isOverridden("site")||(this.site=t.site),this._isOverridden("facility")||(this.facility=t.facility),this._isOverridden("level")||(this.level=t.level))}_computeViewAllModeFloors(e){const{filterFeatures:i}=this;if(e.floorInfo?.viewAllMode&&this.hasLevels&&this.hasFacilities&&"base-floors"===this.filterMode){const{level:s,facility:l}=this,r=[];i.levels.levelsInfo.forEach((e=>{const{id:t,facilityId:i}=e;l&&i===l?s&&t===s&&r.push(t):r.push(t)})),e.floorInfo.viewAllLevelIds=new t(r)}}};e([d({value:!1})],F.prototype,"enabled",null),e([d({value:void 0})],F.prototype,"facility",null),e([d({value:null})],F.prototype,"filterFeatures",null),e([d({value:null})],F.prototype,"filterLayers",null),e([d()],F.prototype,"filterMenuOpen",void 0),e([d()],F.prototype,"filterMenuType",void 0),e([d()],F.prototype,"filterMode",void 0),e([d()],F.prototype,"hasFacilities",null),e([d()],F.prototype,"hasLevels",null),e([d()],F.prototype,"hasMultipleSites",null),e([d({readOnly:!0})],F.prototype,"isNormalMode",null),e([d({value:void 0})],F.prototype,"level",null),e([d({value:!1})],F.prototype,"longNames",null),e([d()],F.prototype,"levelsExpanded",void 0),e([d({value:!1})],F.prototype,"minimized",null),e([d({value:!1})],F.prototype,"pinnedLevels",null),e([d()],F.prototype,"searchTerm",void 0),e([d({value:void 0})],F.prototype,"site",null),e([d({readOnly:!0})],F.prototype,"state",null),e([d()],F.prototype,"view",void 0),e([d()],F.prototype,"_viewHeightBreakpoint",void 0),e([d()],F.prototype,"_viewWidthBreakpoint",void 0),e([d()],F.prototype,"updateWebDocument",null),F=e([f("esri/widgets/FloorFilter/FloorFilterViewModel")],F);const g=F;export{g 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.24/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 i}from"../core/watchUtils.js";import{aliasOf as s}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import r from"./FloorFilter/FloorFilterViewModel.js";import{Heading as a,incrementHeadingLevel as c}from"./support/Heading.js";import{isRTL as d,storeNode as h}from"./support/widgetUtils.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as v}from"./support/jsxFactory.js";import{substitute as f}from"../intl/substitute.js";const m={esriWidget:"esri-widget",esriWidgetButton:"esri-widget--button",esriWidgetButtonActive:"esri-widget--button-active",esriButtonDisabled:"esri-button--disabled",esriDisabled:"esri-disabled",esriIcon:"esri-icon",esriInteractive:"esri-interactive",esriWidgetContentEmpty:"esri-widget__content--empty",floorFilter:"esri-floor-filter",floorFilterLayout:"esri-floor-filter__layout--",floorFilterPosition:"esri-floor-filter__position--",buttonContainer:"esri-floor-filter__button-container",buttonContainerLevels:"esri-floor-filter__button-container--levels",buttonInfo:"esri-floor-filter__button-info",buttonLabel:"esri-floor-filter__button-label",browseButton:"esri-floor-filter__browse-button",closeLevelsButton:"esri-floor-filter__close-levels-button",zoomButton:"esri-floor-filter__zoom-button",zoomButtonLevels:"esri-floor-filter__zoom-button--levels",minimizeToggleButton:"esri-floor-filter__minimize-toggle-button",levelsContainer:"esri-floor-filter__levels-container",levelButton:"esri-floor-filter__level-button",levelButtonActive:"esri-floor-filter__level-button--active",separator:"esri-floor-filter__separator",filterMenu:"esri-floor-filter__filter-menu",filterMenuHeader:"esri-floor-filter__filter-menu-header",filterMenuHeaderTextGroup:"esri-floor-filter__filter-menu-header-text-group",filterMenuHeaderText:"esri-floor-filter__filter-menu-header-text",filterMenuHeaderSubtext:"esri-floor-filter__filter-menu-header-subtext",filterMenuHeaderBack:"esri-floor-filter__filter-menu-header-back",filterMenuSearch:"esri-floor-filter__filter-menu-search",filterMenuSearchInput:"esri-floor-filter__filter-menu-search-input",filterMenuItems:"esri-floor-filter__filter-menu-items",filterMenuItemName:"esri-floor-filter__filter-menu-item-name",filterMenuSelectedItem:"esri-floor-filter__filter-menu-item-name--selected",filterMenuSite:"esri-floor-filter__filter-menu-site",filterMenuFacility:"esri-floor-filter__filter-menu-facility",selectedItemCircle:"esri-floor-filter__selected-item-circle",urbanIcon:"esri-icon-urban-model",zoomToIcon:"esri-icon-zoom-to-object",collapseIconRight:"esri-icon-collapse",collapseIconLeft:"esri-icon-expand",expandIconRight:"esri-icon-expand",expandIconLeft:"esri-icon-collapse",closeIcon:"esri-icon-close",searchIcon:"esri-icon-search",rightIcon:"esri-icon-right",leftIcon:"esri-icon-left"},p=["ArrowUp","ArrowDown","End","Home"];let M=class extends n{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.enabled=null,this.longNames=null,this.minimized=null,this.pinnedLevels=null,this.site=null,this.facility=null,this.level=null,this.view=null,this.viewModel=new r,this.messages=null,this.messagesCommon=null,this.goToOverride=null,this.headingLevel=2,this._resizeObserver=new ResizeObserver((()=>this.scheduleRender())),this.own(i(this,"_searchInput",(()=>this._focusSearch())))}destroy(){this._resizeObserver.disconnect()}updateWebDocument(){}render(){const{longNames:e}=this,t=e&&this.viewModel.isNormalMode?"expanded":"collapsed",i=this.renderButtons(),s=this.renderFilterMenu(),l=v("div",{class:this.classes(m.separator)}),o=this._getComponentPosition(),n=this._getPosition(o),r="top-right"===o||"bottom-right"===o,a="top-left"===o||"bottom-left"===o,c=d(this.container),h=c&&a||!c&&r?s:i,u=c&&a||!c&&r?i:s;return v("div",{afterCreate:this._afterBaseNodeCreate,key:"floor-filter-menu",class:this.classes(m.floorFilter,m.esriWidget,`${m.floorFilterLayout}${t}`,`${m.floorFilterPosition}${n}`)},h,this.viewModel?.filterMenuOpen&&l,u)}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())),v("div",{key:"button-container",class:this.classes(m.esriWidget,m.buttonContainer)},t)}renderBrowseButton(){const{longNames:e,messages:t}=this;return v("button",{key:"browse-button",title:t.buttons.browse,bind:this,class:this.classes(m.esriWidget,m.esriWidgetButton,m.esriInteractive,("loading"===this.viewModel.state||"disabled"===this.viewModel.state)&&m.esriButtonDisabled,m.browseButton,this.viewModel?.filterMenuOpen&&m.esriWidgetButtonActive),"aria-expanded":this.viewModel.filterMenuOpen.toString(),"aria-label":t.buttons.browse,onclick:this._toggleFilterMenu,type:"button"},v("div",{class:this.classes(m.buttonInfo)},v("span",{class:this.classes(m.esriIcon,m.urbanIcon)}),v("span",{class:this.classes(m.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:i}=this,s=this.viewModel?.getFacility(e),l=this.viewModel?.getFacilityLevels(e),o=l.map((e=>this.renderLevelButton(e)));if(!o.length)return null;const n=s&&f(i.selector.levelsLabel,{name:`"${s.name}"`});if(this._isWebScene(this.view.map)&&o?.length>1){const i={id:`all--${e}`,facilityId:e,shortName:t.all,longName:t.all,levelNumber:null,verticalOrder:null},s=this.renderLevelButton(i);o.push(s)}return v("ul",{key:"levels-button-container",class:this.classes(m.levelsContainer),bind:this,"data-id":"levels",afterCreate:h,"data-node-ref":"_levelsListNode","aria-label":n,onkeydown:this._handleListKeydown},o)}renderLevelButton(e){const{longNames:t}=this,{shortName:i,longName:s,id:l}=e,o=`levels--${l}`,n=this.level===l,r=t&&this.viewModel.isNormalMode?s:i;return this.viewModel.isNormalMode||n||this.viewModel.levelsExpanded?v("li",{key:o},v("button",{"data-id":l,"data-list-id":"levels",bind:this,class:this.classes(m.esriWidgetButton,n?m.esriWidgetButtonActive:null,m.esriInteractive,m.levelButton),onclick:this._levelSelected,onfocus:this._onItemFocus,type:"button"},r)):null}renderCloseLevelsButton(){if(!this.level||this.viewModel.isNormalMode||!this.viewModel.levelsExpanded)return null;const{messagesCommon:e}=this;return v("button",{key:"close-levels-button",title:e.close,bind:this,class:this.classes(m.esriWidget,m.esriWidgetButton,m.esriInteractive,m.closeLevelsButton),"aria-label":e.close,onclick:this._closeLevels,type:"button"},v("div",{class:this.classes(m.buttonInfo)},v("span",{class:this.classes(m.esriIcon,m.closeIcon)})))}renderZoomButton(){const{longNames:e,messages:t,facility:i,site:s}=this,l=this.viewModel?.filterMenuType,o=this.viewModel?.filterMenuOpen,n=this.viewModel?.getSite(s),r=this.viewModel?.getFacility(i),a="site"===l&&o?!n:!r;return v("button",{key:"zoom-button",title:t.buttons.zoomTo,bind:this,class:this.classes(m.esriWidget,m.esriWidgetButton,a&&m.esriButtonDisabled,m.esriInteractive,this.viewModel?.getFacilityLevels(i).length>0?m.zoomButtonLevels:m.zoomButton),"aria-label":t.buttons.zoomTo,onclick:this._zoomToClicked,type:"button"},v("div",{class:this.classes(m.buttonInfo)},v("span",{class:this.classes(m.esriIcon,m.zoomToIcon)}),v("span",{class:this.classes(m.buttonLabel)},e&&this.viewModel.isNormalMode&&t.buttons.zoomTo)))}renderCollapseToggleButton(){const{longNames:e,messagesCommon:t}=this,i=e?m.collapseIconRight:m.expandIconRight,s=this.classes(m.esriIcon,i),l=e?t.collapse:t.expand;return v("button",{key:"minimize-toggle-button",title:l,bind:this,class:this.classes(m.esriWidget,m.esriWidgetButton,m.esriInteractive,m.minimizeToggleButton),"aria-label":l,onclick:this._toggleCollapsed,type:"button"},v("div",{class:this.classes(m.buttonInfo)},v("span",{class:s}),v("span",{class:this.classes(m.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,i=this.site?this.viewModel?.getSite(this.site)?.name:e.selector.selectSite,s=v("div",{key:"filter-menu-site-header",class:this.classes(`${m.filterMenuHeader}`)},v("div",{class:this.classes(m.filterMenuHeaderTextGroup)},v(a,{level:this.headingLevel,class:this.classes(m.filterMenuHeaderText)},i)),v("button",{bind:this,title:t.close,class:this.classes(m.esriIcon,m.closeIcon),onclick:this._closeClicked,type:"button"})),l=this.renderSearchInput(),o=this.renderSiteItems();return v("div",{key:"filter-menu-site",class:this.classes(m.filterMenu)},s,l,o)}renderFacilityFilterMenu(){const{messages:e,messagesCommon:t,site:i}=this,s=this.viewModel?.getSite(i)?.name,l=this.facility&&this.viewModel?.getFacility(this.facility)?.name||e.selector.selectFacility,o=this.viewModel.hasMultipleSites?v("button",{bind:this,title:t.back,class:this.classes(m.filterMenuHeaderBack),onclick:this._backClicked,type:"button"},v("span",{class:this.classes(d(this.container)?m.rightIcon:m.leftIcon)})):null,n=this.viewModel.hasMultipleSites?v(a,{level:c(this.headingLevel),class:this.classes(m.filterMenuHeaderSubtext)},s):null,r=v("div",{key:"filter-menu-site-header",class:this.classes(m.filterMenuHeader)},o,v("div",{class:this.classes(m.filterMenuHeaderTextGroup)},v(a,{level:this.headingLevel,class:this.classes(m.filterMenuHeaderText)},l),n),v("button",{bind:this,title:t.close,class:this.classes(m.esriIcon,m.closeIcon),onclick:this._closeClicked,type:"button"})),h=this.renderSearchInput(),u=this.renderFacilityItems();return v("div",{key:"filter-menu-facility",class:this.classes(m.filterMenu)},r,h,u)}renderSearchInput(){const{messagesCommon:e}=this;return v("div",{key:"filter-menu-search",class:this.classes(m.filterMenuSearch)},v("span",{class:this.classes(m.esriIcon,m.searchIcon)}),v("input",{bind:this,key:"filter-menu-search__input",afterCreate:h,"data-node-ref":"_searchInput",class:this.classes(m.filterMenuSearchInput),placeholder:e.search,oninput:this._onSearchChange,onpaste:this._onSearchChange,value:this.viewModel.searchTerm}))}renderBlueCircle(){return v("span",{key:"floor-filter__selected-item-circle",class:this.classes(m.selectedItemCircle)})}renderSiteItems(){if(!this.viewModel?.filterFeatures?.sites?.sitesInfo)return null;const{messages:e}=this,t=this.viewModel.filterFeatures.sites.sitesInfo,i=this.viewModel.filterSites(t).map((e=>this.renderSiteItem(e))),s=0===i.length&&this.viewModel?.searchTerm&&v("div",{class:this.classes(m.esriWidgetContentEmpty)},e.noResults);return v("ul",{key:"filter-menu-items--sites",class:this.classes(m.filterMenuItems),bind:this,afterCreate:h,"data-node-ref":"_sitesListNode","data-id":"sites",onkeydown:this._handleListKeydown,tabIndex:-1,"aria-label":e.selector.sitesLabel},i,s)}renderSiteItem(e){const{name:t,id:i}=e,s=`filter-menu-site--${i}`,l=this.site===i;return v("li",{key:s},v("button",{"data-id":i,"data-list-id":"sites",bind:this,class:this.classes(m.filterMenuSite),onclick:this._siteSelected,onfocus:this._onItemFocus,type:"button"},l&&this.renderBlueCircle(),v("span",{class:this.classes(l?m.filterMenuSelectedItem:m.filterMenuItemName)},t),v("span",{class:this.classes(d(this.container)?m.leftIcon:m.rightIcon)})))}renderFacilityItems(){if(!this.viewModel?.filterFeatures?.facilities?.facilitiesInfo)return null;const{messages:e,site:t}=this,i=this.viewModel.getSite(t),s=this.viewModel.filterFeatures.facilities.facilitiesInfo,l=this.viewModel.filterFacilities(s).map((e=>this.renderFacilityItem(e))),o=0===l.length&&this.viewModel?.searchTerm&&v("div",{class:this.classes(m.esriWidgetContentEmpty)},e.noResults),n=i?f(e.selector.siteFacilitiesLabel,{name:`"${i.name}"`}):e.selector.facilitiesLabel;return v("ul",{key:"filter-menu-items--facilities",class:this.classes(m.filterMenuItems),bind:this,afterCreate:h,"data-node-ref":"_facilitiesListNode","data-id":"facilities",onkeydown:this._handleListKeydown,tabIndex:-1,"aria-label":n},l,o)}renderFacilityItem(e){const{name:t,id:i}=e,s=`filter-menu-facility--${i}`,l=this.facility===i;return v("li",{key:s},v("button",{"data-id":i,"data-list-id":"facilities",bind:this,class:this.classes(m.filterMenuFacility),onclick:this._facilitySelected,onfocus:this._onItemFocus,type:"button"},l&&this.renderBlueCircle(),v("span",{class:this.classes(l?m.filterMenuSelectedItem:m.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"),i=this.viewModel.getSite(t);let s=!1;this.site!==t&&(this.facility=void 0,this.level=void 0,s=!0,this.viewModel.levelsExpanded=!1),this.site=t,this.viewModel.searchTerm=null,this._setFilterMenuType("facility"),this.viewModel.goTo(i),s&&this.viewModel.setFloors(null)}_facilitySelected(e){const t=e.currentTarget.getAttribute("data-id"),i=this.viewModel.getFacility(t);let s=!1;if(this.facility!==t){if("base-floors"===this.viewModel.filterMode){const e=this.viewModel?.getBaseLevel(i);this.level=e?e.id:void 0}else this.level=void 0;s=!0,this.viewModel.levelsExpanded=!1}if(this.facility=t,this.viewModel.goTo(i),s){const e=this.viewModel.getLevel(this.level);this.viewModel.setFloors(e)}if(!this.viewModel.isNormalMode){this.viewModel.getFacilityLevels(t)?.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 this.view?.ui?.getPosition(this.container)}_getPosition(e){switch(e){case"bottom-right":case"bottom-left":return"bottom";default:return"top"}}_handleListKeydown(e){const i=e.currentTarget.getAttribute("data-id");let s=null;"sites"===i||"facilities"===i?(this._activeMenu!==i&&(this._activeMenuIndex.menuItems=-1),this._activeMenu=i,s="menuItems"):"levels"===i&&(s="levels");const l="sites"===i?this._sitesListNode:"facilities"===i?this._facilitiesListNode:"levels"===i?this._levelsListNode:null,o=t(e),n="Tab"===o,r=p.includes(o);r&&e.preventDefault();const a=l?.getElementsByTagName("li");a&&0!==a.length&&(r||n)&&this._handleItemNavigation(o,e.shiftKey,a,n,s)}_handleItemNavigation(e,t,i,s,l){if(!l)return;this._activeMenuIndex[l]===i.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]=i.length-1;break;case"ArrowUp":this._activeMenuIndex[l]=this._activeMenuIndex[l]<=0?i.length-1:this._activeMenuIndex[l]-1;break;case"ArrowDown":this._activeMenuIndex[l]=this._activeMenuIndex[l]===i.length-1?0:this._activeMenuIndex[l]+1}if("Tab"===e&&t&&this._activeMenuIndex[l]>=0&&this._activeMenuIndex[l]--,"Tab"===e&&!t&&this._activeMenuIndex[l]<i.length&&this._activeMenuIndex[l]++,o!==this._activeMenuIndex[l]&&this._activeMenuIndex[l]>-1&&this._activeMenuIndex[l]<i.length&&!s){const e=i[this._activeMenuIndex[l]].getElementsByTagName("button");(1===e?.length&&e[0])?.focus()}}_focusSearch(){this._searchInput?.focus()}_focusActiveLevel(){const{level:e}=this,t=this._levelsListNode,i=t?.getElementsByTagName("li");if(!e||!t||!i)return;const s=this._facilitiesListNode?.getElementsByTagName("li");this._activeMenuIndex.menuItems=s?s.length-1:-1;const l=[];for(let o=0;o<i.length;o++){const e=i[o].getElementsByTagName("button");1===e?.length&&l.push(e[0])}l.forEach(((t,i)=>{t.getAttribute("data-id")===e&&(t.focus(),this._activeMenuIndex.levels=i)}))}_onItemFocus(e){const t=e.currentTarget,i=t.getAttribute("data-list-id"),s=t.getAttribute("data-id"),l="sites"===i?this._sitesListNode:"facilities"===i?this._facilitiesListNode:"levels"===i?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(i){case"sites":case"facilities":r="menuItems";break;case"levels":r="levels"}r&&n.forEach(((e,t)=>{e.getAttribute("data-id")===s&&this._activeMenuIndex[r]!==t&&(this._activeMenuIndex[r]=t)}))}};e([l()],M.prototype,"_searchInput",void 0),e([s("viewModel.enabled")],M.prototype,"enabled",void 0),e([s("viewModel.longNames")],M.prototype,"longNames",void 0),e([s("viewModel.minimized")],M.prototype,"minimized",void 0),e([s("viewModel.pinnedLevels")],M.prototype,"pinnedLevels",void 0),e([s("viewModel.site")],M.prototype,"site",void 0),e([s("viewModel.facility")],M.prototype,"facility",void 0),e([s("viewModel.level")],M.prototype,"level",void 0),e([s("viewModel.view")],M.prototype,"view",void 0),e([l({type:r})],M.prototype,"viewModel",void 0),e([l(),u("esri/widgets/FloorFilter/t9n/FloorFilter")],M.prototype,"messages",void 0),e([l(),u("esri/t9n/common")],M.prototype,"messagesCommon",void 0),e([s("viewModel.goToOverride")],M.prototype,"goToOverride",void 0),e([l()],M.prototype,"headingLevel",void 0),e([s("viewModel.updateWebDocument")],M.prototype,"updateWebDocument",null),M=e([o("esri.widgets.FloorFilter")],M);const g=M;export{g 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 i}from"../core/reactiveUtils.js";import{aliasOf as s}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import n from"./Widget.js";import r from"./FloorFilter/FloorFilterViewModel.js";import{Heading as a,incrementHeadingLevel as c}from"./support/Heading.js";import{isRTL as d,storeNode as h}from"./support/widgetUtils.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as v}from"./support/jsxFactory.js";import{substitute as f}from"../intl/substitute.js";const m={esriWidget:"esri-widget",esriWidgetButton:"esri-widget--button",esriWidgetButtonActive:"esri-widget--button-active",esriButtonDisabled:"esri-button--disabled",esriDisabled:"esri-disabled",esriIcon:"esri-icon",esriInteractive:"esri-interactive",esriWidgetContentEmpty:"esri-widget__content--empty",floorFilter:"esri-floor-filter",floorFilterLayout:"esri-floor-filter__layout--",floorFilterPosition:"esri-floor-filter__position--",buttonContainer:"esri-floor-filter__button-container",buttonContainerLevels:"esri-floor-filter__button-container--levels",buttonInfo:"esri-floor-filter__button-info",buttonLabel:"esri-floor-filter__button-label",browseButton:"esri-floor-filter__browse-button",closeLevelsButton:"esri-floor-filter__close-levels-button",zoomButton:"esri-floor-filter__zoom-button",zoomButtonLevels:"esri-floor-filter__zoom-button--levels",minimizeToggleButton:"esri-floor-filter__minimize-toggle-button",levelsContainer:"esri-floor-filter__levels-container",levelButton:"esri-floor-filter__level-button",levelButtonActive:"esri-floor-filter__level-button--active",separator:"esri-floor-filter__separator",filterMenu:"esri-floor-filter__filter-menu",filterMenuHeader:"esri-floor-filter__filter-menu-header",filterMenuHeaderTextGroup:"esri-floor-filter__filter-menu-header-text-group",filterMenuHeaderText:"esri-floor-filter__filter-menu-header-text",filterMenuHeaderSubtext:"esri-floor-filter__filter-menu-header-subtext",filterMenuHeaderBack:"esri-floor-filter__filter-menu-header-back",filterMenuSearch:"esri-floor-filter__filter-menu-search",filterMenuSearchInput:"esri-floor-filter__filter-menu-search-input",filterMenuItems:"esri-floor-filter__filter-menu-items",filterMenuItemName:"esri-floor-filter__filter-menu-item-name",filterMenuSelectedItem:"esri-floor-filter__filter-menu-item-name--selected",filterMenuSite:"esri-floor-filter__filter-menu-site",filterMenuFacility:"esri-floor-filter__filter-menu-facility",selectedItemCircle:"esri-floor-filter__selected-item-circle",urbanIcon:"esri-icon-urban-model",zoomToIcon:"esri-icon-zoom-to-object",collapseIconRight:"esri-icon-collapse",collapseIconLeft:"esri-icon-expand",expandIconRight:"esri-icon-expand",expandIconLeft:"esri-icon-collapse",closeIcon:"esri-icon-close",searchIcon:"esri-icon-search",rightIcon:"esri-icon-right",leftIcon:"esri-icon-left"},p=["ArrowUp","ArrowDown","End","Home"];let M=class extends n{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.enabled=null,this.longNames=null,this.minimized=null,this.pinnedLevels=null,this.site=null,this.facility=null,this.level=null,this.view=null,this.viewModel=new r,this.messages=null,this.messagesCommon=null,this.goToOverride=null,this.headingLevel=2,this._resizeObserver=new ResizeObserver((()=>this.scheduleRender())),this.own(i((()=>this._searchInput),(()=>this._focusSearch())))}destroy(){this._resizeObserver.disconnect()}updateWebDocument(){}render(){const{longNames:e}=this,t=e&&this.viewModel.isNormalMode?"expanded":"collapsed",i=this.renderButtons(),s=this.renderFilterMenu(),l=v("div",{class:this.classes(m.separator)}),o=this._getComponentPosition(),n=this._getPosition(o),r="top-right"===o||"bottom-right"===o,a="top-left"===o||"bottom-left"===o,c=d(this.container),h=c&&a||!c&&r?s:i,u=c&&a||!c&&r?i:s;return v("div",{afterCreate:this._afterBaseNodeCreate,key:"floor-filter-menu",class:this.classes(m.floorFilter,m.esriWidget,`${m.floorFilterLayout}${t}`,`${m.floorFilterPosition}${n}`)},h,this.viewModel?.filterMenuOpen&&l,u)}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())),v("div",{key:"button-container",class:this.classes(m.esriWidget,m.buttonContainer)},t)}renderBrowseButton(){const{longNames:e,messages:t}=this;return v("button",{key:"browse-button",title:t.buttons.browse,bind:this,class:this.classes(m.esriWidget,m.esriWidgetButton,m.esriInteractive,("loading"===this.viewModel.state||"disabled"===this.viewModel.state)&&m.esriButtonDisabled,m.browseButton,this.viewModel?.filterMenuOpen&&m.esriWidgetButtonActive),"aria-expanded":this.viewModel.filterMenuOpen.toString(),"aria-label":t.buttons.browse,onclick:this._toggleFilterMenu,type:"button"},v("div",{class:this.classes(m.buttonInfo)},v("span",{class:this.classes(m.esriIcon,m.urbanIcon)}),v("span",{class:this.classes(m.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:i}=this,s=this.viewModel?.getFacility(e),l=this.viewModel?.getFacilityLevels(e),o=l.map((e=>this.renderLevelButton(e)));if(!o.length)return null;const n=s&&f(i.selector.levelsLabel,{name:`"${s.name}"`});if(this._isWebScene(this.view.map)&&o?.length>1){const i={id:`all--${e}`,facilityId:e,shortName:t.all,longName:t.all,levelNumber:null,verticalOrder:null},s=this.renderLevelButton(i);o.push(s)}return v("ul",{key:"levels-button-container",class:this.classes(m.levelsContainer),bind:this,"data-id":"levels",afterCreate:h,"data-node-ref":"_levelsListNode","aria-label":n,onkeydown:this._handleListKeydown},o)}renderLevelButton(e){const{longNames:t}=this,{shortName:i,longName:s,id:l}=e,o=`levels--${l}`,n=this.level===l,r=t&&this.viewModel.isNormalMode?s:i;return this.viewModel.isNormalMode||n||this.viewModel.levelsExpanded?v("li",{key:o},v("button",{"data-id":l,"data-list-id":"levels",bind:this,class:this.classes(m.esriWidgetButton,n?m.esriWidgetButtonActive:null,m.esriInteractive,m.levelButton),onclick:this._levelSelected,onfocus:this._onItemFocus,type:"button"},r)):null}renderCloseLevelsButton(){if(!this.level||this.viewModel.isNormalMode||!this.viewModel.levelsExpanded)return null;const{messagesCommon:e}=this;return v("button",{key:"close-levels-button",title:e.close,bind:this,class:this.classes(m.esriWidget,m.esriWidgetButton,m.esriInteractive,m.closeLevelsButton),"aria-label":e.close,onclick:this._closeLevels,type:"button"},v("div",{class:this.classes(m.buttonInfo)},v("span",{class:this.classes(m.esriIcon,m.closeIcon)})))}renderZoomButton(){const{longNames:e,messages:t,facility:i,site:s}=this,l=this.viewModel?.filterMenuType,o=this.viewModel?.filterMenuOpen,n=this.viewModel?.getSite(s),r=this.viewModel?.getFacility(i),a="site"===l&&o?!n:!r;return v("button",{key:"zoom-button",title:t.buttons.zoomTo,bind:this,class:this.classes(m.esriWidget,m.esriWidgetButton,a&&m.esriButtonDisabled,m.esriInteractive,this.viewModel?.getFacilityLevels(i).length>0?m.zoomButtonLevels:m.zoomButton),"aria-label":t.buttons.zoomTo,onclick:this._zoomToClicked,type:"button"},v("div",{class:this.classes(m.buttonInfo)},v("span",{class:this.classes(m.esriIcon,m.zoomToIcon)}),v("span",{class:this.classes(m.buttonLabel)},e&&this.viewModel.isNormalMode&&t.buttons.zoomTo)))}renderCollapseToggleButton(){const{longNames:e,messagesCommon:t}=this,i=e?m.collapseIconRight:m.expandIconRight,s=this.classes(m.esriIcon,i),l=e?t.collapse:t.expand;return v("button",{key:"minimize-toggle-button",title:l,bind:this,class:this.classes(m.esriWidget,m.esriWidgetButton,m.esriInteractive,m.minimizeToggleButton),"aria-label":l,onclick:this._toggleCollapsed,type:"button"},v("div",{class:this.classes(m.buttonInfo)},v("span",{class:s}),v("span",{class:this.classes(m.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,i=this.site?this.viewModel?.getSite(this.site)?.name:e.selector.selectSite,s=v("div",{key:"filter-menu-site-header",class:this.classes(`${m.filterMenuHeader}`)},v("div",{class:this.classes(m.filterMenuHeaderTextGroup)},v(a,{level:this.headingLevel,class:this.classes(m.filterMenuHeaderText)},i)),v("button",{bind:this,title:t.close,class:this.classes(m.esriIcon,m.closeIcon),onclick:this._closeClicked,type:"button"})),l=this.renderSearchInput(),o=this.renderSiteItems();return v("div",{key:"filter-menu-site",class:this.classes(m.filterMenu)},s,l,o)}renderFacilityFilterMenu(){const{messages:e,messagesCommon:t,site:i}=this,s=this.viewModel?.getSite(i)?.name,l=this.facility&&this.viewModel?.getFacility(this.facility)?.name||e.selector.selectFacility,o=this.viewModel.hasMultipleSites?v("button",{bind:this,title:t.back,class:this.classes(m.filterMenuHeaderBack),onclick:this._backClicked,type:"button"},v("span",{class:this.classes(d(this.container)?m.rightIcon:m.leftIcon)})):null,n=this.viewModel.hasMultipleSites?v(a,{level:c(this.headingLevel),class:this.classes(m.filterMenuHeaderSubtext)},s):null,r=v("div",{key:"filter-menu-site-header",class:this.classes(m.filterMenuHeader)},o,v("div",{class:this.classes(m.filterMenuHeaderTextGroup)},v(a,{level:this.headingLevel,class:this.classes(m.filterMenuHeaderText)},l),n),v("button",{bind:this,title:t.close,class:this.classes(m.esriIcon,m.closeIcon),onclick:this._closeClicked,type:"button"})),h=this.renderSearchInput(),u=this.renderFacilityItems();return v("div",{key:"filter-menu-facility",class:this.classes(m.filterMenu)},r,h,u)}renderSearchInput(){const{messagesCommon:e}=this;return v("div",{key:"filter-menu-search",class:this.classes(m.filterMenuSearch)},v("span",{class:this.classes(m.esriIcon,m.searchIcon)}),v("input",{bind:this,key:"filter-menu-search__input",afterCreate:h,"data-node-ref":"_searchInput",class:this.classes(m.filterMenuSearchInput),placeholder:e.search,oninput:this._onSearchChange,onpaste:this._onSearchChange,value:this.viewModel.searchTerm}))}renderBlueCircle(){return v("span",{key:"floor-filter__selected-item-circle",class:this.classes(m.selectedItemCircle)})}renderSiteItems(){if(!this.viewModel?.filterFeatures?.sites?.sitesInfo)return null;const{messages:e}=this,t=this.viewModel.filterFeatures.sites.sitesInfo,i=this.viewModel.filterSites(t).map((e=>this.renderSiteItem(e))),s=0===i.length&&this.viewModel?.searchTerm&&v("div",{class:this.classes(m.esriWidgetContentEmpty)},e.noResults);return v("ul",{key:"filter-menu-items--sites",class:this.classes(m.filterMenuItems),bind:this,afterCreate:h,"data-node-ref":"_sitesListNode","data-id":"sites",onkeydown:this._handleListKeydown,tabIndex:-1,"aria-label":e.selector.sitesLabel},i,s)}renderSiteItem(e){const{name:t,id:i}=e,s=`filter-menu-site--${i}`,l=this.site===i;return v("li",{key:s},v("button",{"data-id":i,"data-list-id":"sites",bind:this,class:this.classes(m.filterMenuSite),onclick:this._siteSelected,onfocus:this._onItemFocus,type:"button"},l&&this.renderBlueCircle(),v("span",{class:this.classes(l?m.filterMenuSelectedItem:m.filterMenuItemName)},t),v("span",{class:this.classes(d(this.container)?m.leftIcon:m.rightIcon)})))}renderFacilityItems(){if(!this.viewModel?.filterFeatures?.facilities?.facilitiesInfo)return null;const{messages:e,site:t}=this,i=this.viewModel.getSite(t),s=this.viewModel.filterFeatures.facilities.facilitiesInfo,l=this.viewModel.filterFacilities(s).map((e=>this.renderFacilityItem(e))),o=0===l.length&&this.viewModel?.searchTerm&&v("div",{class:this.classes(m.esriWidgetContentEmpty)},e.noResults),n=i?f(e.selector.siteFacilitiesLabel,{name:`"${i.name}"`}):e.selector.facilitiesLabel;return v("ul",{key:"filter-menu-items--facilities",class:this.classes(m.filterMenuItems),bind:this,afterCreate:h,"data-node-ref":"_facilitiesListNode","data-id":"facilities",onkeydown:this._handleListKeydown,tabIndex:-1,"aria-label":n},l,o)}renderFacilityItem(e){const{name:t,id:i}=e,s=`filter-menu-facility--${i}`,l=this.facility===i;return v("li",{key:s},v("button",{"data-id":i,"data-list-id":"facilities",bind:this,class:this.classes(m.filterMenuFacility),onclick:this._facilitySelected,onfocus:this._onItemFocus,type:"button"},l&&this.renderBlueCircle(),v("span",{class:this.classes(l?m.filterMenuSelectedItem:m.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"),i=this.viewModel.getSite(t);let s=!1;this.site!==t&&(this.facility=void 0,this.level=void 0,s=!0,this.viewModel.levelsExpanded=!1),this.site=t,this.viewModel.searchTerm=null,this._setFilterMenuType("facility"),this.viewModel.goTo(i),s&&this.viewModel.setFloors(null)}_facilitySelected(e){const t=e.currentTarget.getAttribute("data-id"),i=this.viewModel.getFacility(t);let s=!1;if(this.facility!==t){if("base-floors"===this.viewModel.filterMode){const e=this.viewModel?.getBaseLevel(i);this.level=e?e.id:void 0}else this.level=void 0;s=!0,this.viewModel.levelsExpanded=!1}if(this.facility=t,this.viewModel.goTo(i),s){const e=this.viewModel.getLevel(this.level);this.viewModel.setFloors(e)}if(!this.viewModel.isNormalMode){this.viewModel.getFacilityLevels(t)?.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 this.view?.ui?.getPosition(this.container)}_getPosition(e){switch(e){case"bottom-right":case"bottom-left":return"bottom";default:return"top"}}_handleListKeydown(e){const i=e.currentTarget.getAttribute("data-id");let s=null;"sites"===i||"facilities"===i?(this._activeMenu!==i&&(this._activeMenuIndex.menuItems=-1),this._activeMenu=i,s="menuItems"):"levels"===i&&(s="levels");const l="sites"===i?this._sitesListNode:"facilities"===i?this._facilitiesListNode:"levels"===i?this._levelsListNode:null,o=t(e),n="Tab"===o,r=p.includes(o);r&&e.preventDefault();const a=l?.getElementsByTagName("li");a&&0!==a.length&&(r||n)&&this._handleItemNavigation(o,e.shiftKey,a,n,s)}_handleItemNavigation(e,t,i,s,l){if(!l)return;this._activeMenuIndex[l]===i.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]=i.length-1;break;case"ArrowUp":this._activeMenuIndex[l]=this._activeMenuIndex[l]<=0?i.length-1:this._activeMenuIndex[l]-1;break;case"ArrowDown":this._activeMenuIndex[l]=this._activeMenuIndex[l]===i.length-1?0:this._activeMenuIndex[l]+1}if("Tab"===e&&t&&this._activeMenuIndex[l]>=0&&this._activeMenuIndex[l]--,"Tab"===e&&!t&&this._activeMenuIndex[l]<i.length&&this._activeMenuIndex[l]++,o!==this._activeMenuIndex[l]&&this._activeMenuIndex[l]>-1&&this._activeMenuIndex[l]<i.length&&!s){const e=i[this._activeMenuIndex[l]].getElementsByTagName("button");(1===e?.length&&e[0])?.focus()}}_focusSearch(){this._searchInput?.focus()}_focusActiveLevel(){const{level:e}=this,t=this._levelsListNode,i=t?.getElementsByTagName("li");if(!e||!t||!i)return;const s=this._facilitiesListNode?.getElementsByTagName("li");this._activeMenuIndex.menuItems=s?s.length-1:-1;const l=[];for(let o=0;o<i.length;o++){const e=i[o].getElementsByTagName("button");1===e?.length&&l.push(e[0])}l.forEach(((t,i)=>{t.getAttribute("data-id")===e&&(t.focus(),this._activeMenuIndex.levels=i)}))}_onItemFocus(e){const t=e.currentTarget,i=t.getAttribute("data-list-id"),s=t.getAttribute("data-id"),l="sites"===i?this._sitesListNode:"facilities"===i?this._facilitiesListNode:"levels"===i?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(i){case"sites":case"facilities":r="menuItems";break;case"levels":r="levels"}r&&n.forEach(((e,t)=>{e.getAttribute("data-id")===s&&this._activeMenuIndex[r]!==t&&(this._activeMenuIndex[r]=t)}))}};e([l()],M.prototype,"_searchInput",void 0),e([s("viewModel.enabled")],M.prototype,"enabled",void 0),e([s("viewModel.longNames")],M.prototype,"longNames",void 0),e([s("viewModel.minimized")],M.prototype,"minimized",void 0),e([s("viewModel.pinnedLevels")],M.prototype,"pinnedLevels",void 0),e([s("viewModel.site")],M.prototype,"site",void 0),e([s("viewModel.facility")],M.prototype,"facility",void 0),e([s("viewModel.level")],M.prototype,"level",void 0),e([s("viewModel.view")],M.prototype,"view",void 0),e([l({type:r})],M.prototype,"viewModel",void 0),e([l(),u("esri/widgets/FloorFilter/t9n/FloorFilter")],M.prototype,"messages",void 0),e([l(),u("esri/t9n/common")],M.prototype,"messagesCommon",void 0),e([s("viewModel.goToOverride")],M.prototype,"goToOverride",void 0),e([l()],M.prototype,"headingLevel",void 0),e([s("viewModel.updateWebDocument")],M.prototype,"updateWebDocument",null),M=e([o("esri.widgets.FloorFilter")],M);const g=M;export{g 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.24/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/watchUtils.js";import{aliasOf as r}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{Integer as s}from"../core/accessorSupport/ensureType.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import n from"./Histogram.js";import l from"./Slider.js";import d from"./Widget.js";import h from"./HistogramRangeSlider/HistogramRangeSliderViewModel.js";import{getDeviationValues as u}from"./smartMapping/support/utils.js";import"./support/widgetUtils.js";import{messageBundle as p}from"./support/decorators/messageBundle.js";import{tsx as m}from"./support/jsxFactory.js";const c={base:"esri-histogram-range-slider",sliderContainer:"esri-histogram-range-slider__slider-container",histogramContainer:"esri-histogram-range-slider__histogram-container",rangeTypePrefix:"esri-histogram-range-slider__range-type--",esriWidget:"esri-widget",widgetIcon:"esri-icon-edit",disabled:"esri-disabled"};let g=class extends d{constructor(e,i){super(e,i),this._barElements=[],this._histogram=null,this._slider=null,this.average=null,this.barCreatedFunction=null,this.bins=null,this.dataLines=null,this.dataLineCreatedFunction=null,this.excludedBarColor=new t("#d7e5f0"),this.hasTimeData=null,this.includedBarColor=new t("#599dd4"),this.label=void 0,this.labelFormatFunction=null,this.max=null,this.messages=null,this.min=null,this.precision=4,this.rangeType=null,this.standardDeviation=null,this.standardDeviationCount=1,this.values=null,this.viewModel=new h}initialize(){const{average:e,bins:t,hasTimeData:r,max:s,min:a,viewModel:o}=this;this._updateBarFill=this._updateBarFill.bind(this),this._histogram=new n({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 l({labelFormatFunction:this.labelFormatFunction,layout:"horizontal",visibleElements:{labels:!0,rangeLabels:!0},rangeLabelInputsEnabled:!r,viewModel:o}),this.own([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",(()=>{const{_histogram:e,bins:t}=this;if(t&&e.bins){const i=e.bins.length-t.length;this._barElements.splice(-i,i)}else this._barElements=[];e.set({bins:t}),this._updateBarFills(),this.scheduleRender()})),i(this,["max","min","rangeType","values"],(()=>{const{_histogram:e,max:t,min:i}=this;e.set({max:t,min:i}),this._updateBarFills(),this.scheduleRender()})),i(this,["average","dataLines","standardDeviation","standardDeviationCount"],(()=>{const{_histogram:e,average:t}=this;e.set({average:t,dataLines:this._getDataLines()})})),i(this,"labelFormatFunction",(()=>{const{_histogram:e,labelFormatFunction:t}=this;e.set({labelFormatFunction:t})})),i(this,"hasTimeData",(()=>{this._slider.set({rangeLabelInputsEnabled:!this.hasTimeData})}))])}generateWhereClause(e){return this.viewModel.generateWhereClause(e)}render(){const{rangeType:e,viewModel:t,label:i}=this,r=this.classes(c.base,c.esriWidget,`${c.rangeTypePrefix}${e}`,"disabled"===t.state?c.disabled:null);return m("div",{"aria-label":i,class:r},"disabled"===t.state?null:this.renderContent())}renderContent(){return[this.renderHistogram(),this.renderSlider()]}renderSlider(){return m("div",{key:`${this.id}-slider-container`,class:c.sliderContainer},this._slider.render())}renderHistogram(){return m("div",{class:c.histogramContainer},this._histogram.render())}_getDataLines(){return[...this._getStandardDeviationDataLines(),...this.dataLines||[]]}_getStandardDeviationDataLines(){const{average:e,standardDeviation:t,standardDeviationCount:i}=this;return u(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(!(t&&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;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;default:return this.includedBarColor}}_getBlendedColor(e){return t.blendColors(this.excludedBarColor,this.includedBarColor,e)}};e([r("viewModel.average")],g.prototype,"average",void 0),e([a()],g.prototype,"barCreatedFunction",void 0),e([r("viewModel.bins")],g.prototype,"bins",void 0),e([a()],g.prototype,"dataLines",void 0),e([a()],g.prototype,"dataLineCreatedFunction",void 0),e([a({type:t,json:{type:[s],write:!0}})],g.prototype,"excludedBarColor",void 0),e([r("viewModel.hasTimeData")],g.prototype,"hasTimeData",void 0),e([a({type:t,json:{type:[s],write:!0}})],g.prototype,"includedBarColor",void 0),e([a({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],g.prototype,"label",void 0),e([r("viewModel.labelFormatFunction")],g.prototype,"labelFormatFunction",void 0),e([r("viewModel.max")],g.prototype,"max",void 0),e([a(),p("esri/widgets/HistogramRangeSlider/t9n/HistogramRangeSlider")],g.prototype,"messages",void 0),e([r("viewModel.min")],g.prototype,"min",void 0),e([r("viewModel.precision")],g.prototype,"precision",void 0),e([r("viewModel.rangeType")],g.prototype,"rangeType",void 0),e([r("viewModel.standardDeviation")],g.prototype,"standardDeviation",void 0),e([a()],g.prototype,"standardDeviationCount",void 0),e([r("viewModel.values")],g.prototype,"values",void 0),e([a()],g.prototype,"viewModel",void 0),g=e([o("esri.widgets.HistogramRangeSlider")],g);const v=g;export{v 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{aliasOf as r}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import"../core/has.js";import{Integer as s}from"../core/accessorSupport/ensureType.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import n from"./Histogram.js";import l from"./Slider.js";import d from"./Widget.js";import h from"./HistogramRangeSlider/HistogramRangeSliderViewModel.js";import{getDeviationValues as u}from"./smartMapping/support/utils.js";import"./support/widgetUtils.js";import{messageBundle as p}from"./support/decorators/messageBundle.js";import{tsx as m}from"./support/jsxFactory.js";const c={base:"esri-histogram-range-slider",sliderContainer:"esri-histogram-range-slider__slider-container",histogramContainer:"esri-histogram-range-slider__histogram-container",rangeTypePrefix:"esri-histogram-range-slider__range-type--",esriWidget:"esri-widget",widgetIcon:"esri-icon-edit",disabled:"esri-disabled"};let g=class extends d{constructor(e,i){super(e,i),this._barElements=[],this._histogram=null,this._slider=null,this.average=null,this.barCreatedFunction=null,this.bins=null,this.dataLines=null,this.dataLineCreatedFunction=null,this.excludedBarColor=new t("#d7e5f0"),this.hasTimeData=null,this.includedBarColor=new t("#599dd4"),this.label=void 0,this.labelFormatFunction=null,this.max=null,this.messages=null,this.min=null,this.precision=4,this.rangeType=null,this.standardDeviation=null,this.standardDeviationCount=1,this.values=null,this.viewModel=new h}initialize(){const{average:e,bins:t,hasTimeData:r,max:s,min:a,viewModel:o}=this;this._updateBarFill=this._updateBarFill.bind(this),this._histogram=new n({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 l({labelFormatFunction:this.labelFormatFunction,layout:"horizontal",visibleElements:{labels:!0,rangeLabels:!0},rangeLabelInputsEnabled:!r,viewModel:o}),this.own([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})}))])}generateWhereClause(e){return this.viewModel.generateWhereClause(e)}render(){const{rangeType:e,viewModel:t,label:i}=this,r=this.classes(c.base,c.esriWidget,`${c.rangeTypePrefix}${e}`,"disabled"===t.state?c.disabled:null);return m("div",{"aria-label":i,class:r},"disabled"===t.state?null:this.renderContent())}renderContent(){return[this.renderHistogram(),this.renderSlider()]}renderSlider(){return m("div",{key:`${this.id}-slider-container`,class:c.sliderContainer},this._slider.render())}renderHistogram(){return m("div",{class:c.histogramContainer},this._histogram.render())}_getDataLines(){return[...this._getStandardDeviationDataLines(),...this.dataLines||[]]}_getStandardDeviationDataLines(){const{average:e,standardDeviation:t,standardDeviationCount:i}=this;return u(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(!(t&&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;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;default:return this.includedBarColor}}_getBlendedColor(e){return t.blendColors(this.excludedBarColor,this.includedBarColor,e)}};e([r("viewModel.average")],g.prototype,"average",void 0),e([a()],g.prototype,"barCreatedFunction",void 0),e([r("viewModel.bins")],g.prototype,"bins",void 0),e([a()],g.prototype,"dataLines",void 0),e([a()],g.prototype,"dataLineCreatedFunction",void 0),e([a({type:t,json:{type:[s],write:!0}})],g.prototype,"excludedBarColor",void 0),e([r("viewModel.hasTimeData")],g.prototype,"hasTimeData",void 0),e([a({type:t,json:{type:[s],write:!0}})],g.prototype,"includedBarColor",void 0),e([a({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],g.prototype,"label",void 0),e([r("viewModel.labelFormatFunction")],g.prototype,"labelFormatFunction",void 0),e([r("viewModel.max")],g.prototype,"max",void 0),e([a(),p("esri/widgets/HistogramRangeSlider/t9n/HistogramRangeSlider")],g.prototype,"messages",void 0),e([r("viewModel.min")],g.prototype,"min",void 0),e([r("viewModel.precision")],g.prototype,"precision",void 0),e([r("viewModel.rangeType")],g.prototype,"rangeType",void 0),e([r("viewModel.standardDeviation")],g.prototype,"standardDeviation",void 0),e([a()],g.prototype,"standardDeviationCount",void 0),e([r("viewModel.values")],g.prototype,"values",void 0),e([a()],g.prototype,"viewModel",void 0),g=e([o("esri.widgets.HistogramRangeSlider")],g);const v=g;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.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Collection.js";import s from"../../core/Evented.js";import i from"../../core/Handles.js";import{init as r,watch as o}from"../../core/watchUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as l}from"../../core/accessorSupport/decorators/subclass.js";import n from"./ListItem.js";import{getItemLayers as c,findLayerListMode as d}from"./support/layerListUtils.js";const m={view:"view",viewLayers:"view-layers",mapLayers:"map-layers",layerViews:"layer-views",layerListMode:"layer-list-mode",children:"children"},h="hide",p=t.ofType(n);let y=class extends s.EventedAccessor{constructor(e){super(e),this._handles=new i,this.listItemCreatedFunction=null,this.operationalItems=new p,this.view=null}initialize(){this._handles.add(r(this,["view","view.ready"],(()=>this._viewHandles())),m.view)}destroy(){this._handles.destroy(),this._handles=null,this.view=null,this.operationalItems.removeAll()}get state(){const e=this.get("view");return this.get("view.ready")?"ready":e?"loading":"disabled"}triggerAction(e,t){e&&!e.disabled&&this.emit("trigger-action",{action:e,item:t})}moveListItem(e,t,s,i){const r=e?.layer;if(!r)return;const o=this.view?.map?.layers,a=t?c(t):o,l=s?c(s):o;if(!a||!l)return;const{operationalItems:n}=this,d=t?.children||n,m=s?.children||n,h=l.length-i;e.parent=s||null,d.includes(e)&&d.remove(e),a.includes(r)&&a.remove(r),m.includes(e)||m.add(e,h),l.includes(r)||l.add(r,h)}_createLayerViewHandles(e){const{_handles:t}=this;t.remove(m.layerViews),this._compileList(),e&&t.add(e.on("change",(()=>this._compileList())),m.layerViews)}_createMapLayerHandles(e){const{_handles:t}=this;t.remove(m.mapLayers),this._compileList(),e&&t.add(e.on("change",(()=>this._compileList())),m.mapLayers)}_createListItem(e){const{view:t,listItemCreatedFunction:s}=this;return new n({layer:e,listItemCreatedFunction:s,view:t})}_removeAllItems(){const{_handles:e,operationalItems:t}=this;t.forEach((t=>{e.remove(`${m.children}-${t.uid}`)})),t.removeAll()}_getViewableLayers(e){if(e)return e.filter((e=>d(e)!==h))}_watchLayersListMode(e){const{_handles:t}=this;t.remove(m.layerListMode),e&&e.forEach((e=>{t.add(o(e,"listMode",(()=>this._compileList())),m.layerListMode)}))}_compileList(){const e=this.get("view.map.layers");this._watchLayersListMode(e);const t=this._getViewableLayers(e);t&&t.length?(this._createNewItems(t),this._removeItems(t),this._sortItems(t)):this._removeAllItems()}_createNewItems(e){const{operationalItems:t}=this;e.forEach((e=>{t.find((t=>t.layer===e))||t.add(this._createListItem(e))}))}_removeItems(e){const{_handles:t,operationalItems:s}=this,i=[];s.forEach((s=>{s&&e&&e.includes(s.layer)||(t.remove(`${m.children}-${s.uid}`),i.push(s))})),s.removeMany(i)}_sortItems(e){const{operationalItems:t}=this;t.sort(((t,s)=>{const i=e.indexOf(t.layer),r=e.indexOf(s.layer);return i>r?-1:i<r?1:0}))}_viewHandles(){const{_handles:e,view:t}=this;e.remove([m.mapLayers,m.layerViews,m.viewLayers]),this._compileList(),t&&t.ready&&e.add([r(this,"view.map.allLayers",(e=>this._createMapLayerHandles(e))),r(this,"view.allLayerViews",(e=>this._createLayerViewHandles(e)))],m.viewLayers)}};e([a()],y.prototype,"listItemCreatedFunction",void 0),e([a({type:p})],y.prototype,"operationalItems",void 0),e([a({readOnly:!0})],y.prototype,"state",null),e([a()],y.prototype,"view",void 0),y=e([l("esri.widgets.LayerList.LayerListViewModel")],y);const v=y;export{v as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Collection.js";import s from"../../core/Evented.js";import i from"../../core/Handles.js";import{watch as r,initial as o}from"../../core/reactiveUtils.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as l}from"../../core/accessorSupport/decorators/subclass.js";import n from"./ListItem.js";import{getItemLayers as c,findLayerListMode as d}from"./support/layerListUtils.js";const m={view:"view",viewLayers:"view-layers",mapLayers:"map-layers",layerViews:"layer-views",layerListMode:"layer-list-mode",children:"children"},h="hide",p=t.ofType(n);let y=class extends s.EventedAccessor{constructor(e){super(e),this._handles=new i,this.listItemCreatedFunction=null,this.operationalItems=new p,this.view=null}initialize(){this._handles.add(r((()=>[this.view,this.view?.ready]),(()=>this._viewHandles()),o),m.view)}destroy(){this._handles.destroy(),this._handles=null,this.view=null,this.operationalItems.removeAll()}get state(){const e=this.get("view");return this.get("view.ready")?"ready":e?"loading":"disabled"}triggerAction(e,t){e&&!e.disabled&&this.emit("trigger-action",{action:e,item:t})}moveListItem(e,t,s,i){const r=e?.layer;if(!r)return;const o=this.view?.map?.layers,a=t?c(t):o,l=s?c(s):o;if(!a||!l)return;const{operationalItems:n}=this,d=t?.children||n,m=s?.children||n,h=l.length-i;e.parent=s||null,d.includes(e)&&d.remove(e),a.includes(r)&&a.remove(r),m.includes(e)||m.add(e,h),l.includes(r)||l.add(r,h)}_createLayerViewHandles(e){const{_handles:t}=this;t.remove(m.layerViews),this._compileList(),e&&t.add(e.on("change",(()=>this._compileList())),m.layerViews)}_createMapLayerHandles(e){const{_handles:t}=this;t.remove(m.mapLayers),this._compileList(),e&&t.add(e.on("change",(()=>this._compileList())),m.mapLayers)}_createListItem(e){const{view:t,listItemCreatedFunction:s}=this;return new n({layer:e,listItemCreatedFunction:s,view:t})}_removeAllItems(){const{_handles:e,operationalItems:t}=this;t.forEach((t=>{e.remove(`${m.children}-${t.uid}`)})),t.removeAll()}_getViewableLayers(e){if(e)return e.filter((e=>d(e)!==h))}_watchLayersListMode(e){const{_handles:t}=this;t.remove(m.layerListMode),e&&e.forEach((e=>{"listMode"in e&&t.add(r((()=>e.listMode),(()=>this._compileList())),m.layerListMode)}))}_compileList(){const e=this.get("view.map.layers");this._watchLayersListMode(e);const t=this._getViewableLayers(e);t&&t.length?(this._createNewItems(t),this._removeItems(t),this._sortItems(t)):this._removeAllItems()}_createNewItems(e){const{operationalItems:t}=this;e.forEach((e=>{t.find((t=>t.layer===e))||t.add(this._createListItem(e))}))}_removeItems(e){const{_handles:t,operationalItems:s}=this,i=[];s.forEach((s=>{s&&e&&e.includes(s.layer)||(t.remove(`${m.children}-${s.uid}`),i.push(s))})),s.removeMany(i)}_sortItems(e){const{operationalItems:t}=this;t.sort(((t,s)=>{const i=e.indexOf(t.layer),r=e.indexOf(s.layer);return i>r?-1:i<r?1:0}))}_viewHandles(){const{_handles:e,view:t}=this;e.remove([m.mapLayers,m.layerViews,m.viewLayers]),this._compileList(),t&&t.ready&&e.add([r((()=>this.view?.map?.allLayers),(e=>this._createMapLayerHandles(e)),o),r((()=>this.view?.allLayerViews),(e=>this._createLayerViewHandles(e)),o)],m.viewLayers)}};e([a()],y.prototype,"listItemCreatedFunction",void 0),e([a({type:p})],y.prototype,"operationalItems",void 0),e([a({readOnly:!0})],y.prototype,"state",null),e([a()],y.prototype,"view",void 0),y=e([l("esri.widgets.LayerList.LayerListViewModel")],y);const v=y;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.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../core/Accessor.js";import i from"../../core/Collection.js";import{HandleOwnerMixin as r}from"../../core/HandleOwner.js";import{IdentifiableMixin as s}from"../../core/Identifiable.js";import{init as o,watch as l}from"../../core/watchUtils.js";import{aliasOf as n}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{cast as a}from"../../core/accessorSupport/decorators/cast.js";import{property as p}from"../../core/accessorSupport/decorators/property.js";import{subclass as h}from"../../core/accessorSupport/decorators/subclass.js";import d from"../../support/actions/ActionBase.js";import c from"../../support/actions/ActionButton.js";import y from"../../support/actions/ActionSlider.js";import u from"../../support/actions/ActionToggle.js";import m from"./ListItemPanel.js";import{isLayerOutsideScaleRange as v,findLayerVisibilityMode as f,findLayerListMode as w,canDisplayLayer as g,getNormalizedChildLayerProperty as _}from"./support/layerListUtils.js";var b;const C=i.ofType({key:"type",defaultKeyValue:"button",base:d,typeMap:{button:c,toggle:u,slider:y}}),j=i.ofType(C),S="layer",L="child-list-mode",O="hide",I="esri.widgets.LayerList.ListItem";let P=b=class extends(s(r(e))){constructor(t){super(t),this.actionsSections=new j,this.actionsOpen=!1,this.children=new(i.ofType(b)),this.childrenSortable=!0,this.error=null,this.hidden=!1,this.layer=null,this.layerView=null,this.listItemCreatedFunction=null,this.open=!1,this.panel=null,this.parent=null,this.sortable=!0,this.view=null,this.visible=null}initialize(){if(this.handles.add([o(this,"layer",(t=>this._watchLayerProperties(t))),o(this,"view",(t=>this._updateChildren(t))),o(this,"panel",(t=>this._setListItemOnPanel(t))),o(this,["layer","view"],(()=>this._getLayerView()))]),"function"==typeof this.listItemCreatedFunction){const t={item:this};this.listItemCreatedFunction.call(null,t)}}destroy(){this.view=null}get incompatible(){const{layerView:t}=this;return!(!t||!("spatialReferenceSupported"in t))&&!t.spatialReferenceSupported}castPanel(t){return this.get("panel.open")&&!t.hasOwnProperty("open")&&(t.open=!0),t?new m(t):null}get title(){const t=this.get("layer.layer");return(!t||t&&this.get("layer.layer.loaded"))&&this.get("layer.title")||this.get("layer.attributes.title")||""}set title(t){void 0!==t?this._override("title",t):this._clearOverride("title")}get updating(){const t=this.layerView;return t?t.updating:this._isLayerUpdating(this.layer)}get visibleAtCurrentScale(){return!v(this.layer,this.get("view.scale"))}get visibilityMode(){return f(this.layer)}clone(){return new b({actionsSections:this.actionsSections.clone(),actionsOpen:this.actionsOpen,children:this.children.clone(),layer:this.layer,listItemCreatedFunction:this.listItemCreatedFunction,open:this.open,panel:this.panel,title:this.title,view:this.view,visible:this.visible})}_setListItemOnPanel(t){t&&(t.listItem=this)}_updateChildren(t){const e=this.children;e&&e.forEach((e=>e.view=t))}_addChildren(t){if(this.handles.remove(L),this.children.removeAll(),!t)return;t.forEach((e=>{this.handles.add(l(e,"listMode",(()=>this._addChildren(t))),L)}));const e=t.filter((t=>w(t)!==O));this.children.addMany(this._makeChildren(e))}_watchSublayerChanges(t){t&&this.handles.add(t.on("change",(()=>{this._addChildren(t)})),S)}_initializeChildLayers(t){this._addChildren(t),this._watchSublayerChanges(t)}_makeChildren(t){return t.map((t=>g(t)?new b({layer:t,listItemCreatedFunction:this.listItemCreatedFunction,parent:this,view:this.view}):null)).reverse()}_watchLayerProperties(t){if(!this.handles)return;if(this.handles.remove(S),this.handles.remove(L),!t)return;this.handles.add(l(t,"listMode",(()=>this._watchLayerProperties(t))),S);if("hide-children"===w(t))return void this.children.removeAll();const e=_(t);e&&this.handles.add(o(t,e,(()=>{t.hasOwnProperty(e)&&this._initializeChildLayers(t[e])})),S)}async _getLayerView(){const{layer:t,view:e}=this;if(t&&e)try{const i=await e.whenLayerView(t);if(i.layer!==this.layer)return;this._set("layerView",i)}catch{}}_isLayerUpdating(t){return t&&"loading"===t.loadStatus}};t([p({type:j})],P.prototype,"actionsSections",void 0),t([p()],P.prototype,"actionsOpen",void 0),t([p({type:i})],P.prototype,"children",void 0),t([p()],P.prototype,"childrenSortable",void 0),t([n("layer.loadError?")],P.prototype,"error",void 0),t([p()],P.prototype,"hidden",void 0),t([p({readOnly:!0})],P.prototype,"incompatible",null),t([p()],P.prototype,"layer",void 0),t([p({readOnly:!0})],P.prototype,"layerView",void 0),t([p()],P.prototype,"listItemCreatedFunction",void 0),t([p()],P.prototype,"open",void 0),t([p({type:m})],P.prototype,"panel",void 0),t([a("panel")],P.prototype,"castPanel",null),t([p()],P.prototype,"parent",void 0),t([p()],P.prototype,"sortable",void 0),t([p()],P.prototype,"title",null),t([p({readOnly:!0})],P.prototype,"updating",null),t([p({value:null})],P.prototype,"view",void 0),t([n("layer.visible")],P.prototype,"visible",void 0),t([p({readOnly:!0})],P.prototype,"visibleAtCurrentScale",null),t([p({readOnly:!0})],P.prototype,"visibilityMode",null),P=b=t([h(I)],P);const A=P;export{A as default};
5
+ import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../core/Accessor.js";import i from"../../core/Collection.js";import{HandleOwnerMixin as r}from"../../core/HandleOwner.js";import{IdentifiableMixin as s}from"../../core/Identifiable.js";import{watch as o,initial as l}from"../../core/reactiveUtils.js";import{aliasOf as n}from"../../core/accessorSupport/decorators/aliasOf.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{cast as a}from"../../core/accessorSupport/decorators/cast.js";import{property as p}from"../../core/accessorSupport/decorators/property.js";import{subclass as h}from"../../core/accessorSupport/decorators/subclass.js";import d from"../../support/actions/ActionBase.js";import c from"../../support/actions/ActionButton.js";import y from"../../support/actions/ActionSlider.js";import u from"../../support/actions/ActionToggle.js";import m from"./ListItemPanel.js";import{isLayerOutsideScaleRange as v,findLayerVisibilityMode as f,findLayerListMode as w,canDisplayLayer as g,getNormalizedChildLayerProperty as _}from"./support/layerListUtils.js";var b;const C=i.ofType({key:"type",defaultKeyValue:"button",base:d,typeMap:{button:c,toggle:u,slider:y}}),j=i.ofType(C),S="layer",L="child-list-mode",O="hide",I="esri.widgets.LayerList.ListItem";let P=b=class extends(s(r(e))){constructor(t){super(t),this.actionsSections=new j,this.actionsOpen=!1,this.children=new(i.ofType(b)),this.childrenSortable=!0,this.error=null,this.hidden=!1,this.layer=null,this.layerView=null,this.listItemCreatedFunction=null,this.open=!1,this.panel=null,this.parent=null,this.sortable=!0,this.view=null,this.visible=null}initialize(){if(this.handles.add([o((()=>this.layer),(t=>this._watchLayerProperties(t)),l),o((()=>this.view),(t=>this._updateChildren(t)),l),o((()=>this.panel),(t=>this._setListItemOnPanel(t)),l),o((()=>[this.layer,this.view]),(()=>this._getLayerView()),l)]),"function"==typeof this.listItemCreatedFunction){const t={item:this};this.listItemCreatedFunction.call(null,t)}}destroy(){this.view=null}get incompatible(){const{layerView:t}=this;return!(!t||!("spatialReferenceSupported"in t))&&!t.spatialReferenceSupported}castPanel(t){return this.get("panel.open")&&!t.hasOwnProperty("open")&&(t.open=!0),t?new m(t):null}get title(){const t=this.get("layer.layer");return(!t||t&&this.get("layer.layer.loaded"))&&this.get("layer.title")||this.get("layer.attributes.title")||""}set title(t){void 0!==t?this._override("title",t):this._clearOverride("title")}get updating(){const t=this.layerView;return t?t.updating:this._isLayerUpdating(this.layer)}get visibleAtCurrentScale(){return!v(this.layer,this.get("view.scale"))}get visibilityMode(){return f(this.layer)}clone(){return new b({actionsSections:this.actionsSections.clone(),actionsOpen:this.actionsOpen,children:this.children.clone(),layer:this.layer,listItemCreatedFunction:this.listItemCreatedFunction,open:this.open,panel:this.panel,title:this.title,view:this.view,visible:this.visible})}_setListItemOnPanel(t){t&&(t.listItem=this)}_updateChildren(t){const e=this.children;e&&e.forEach((e=>e.view=t))}_addChildren(t){if(this.handles.remove(L),this.children.removeAll(),!t)return;t.forEach((e=>{this.handles.add(o((()=>e.listMode),(()=>this._addChildren(t))),L)}));const e=t.filter((t=>w(t)!==O));this.children.addMany(this._makeChildren(e))}_watchSublayerChanges(t){t&&this.handles.add(t.on("change",(()=>{this._addChildren(t)})),S)}_initializeChildLayers(t){this._addChildren(t),this._watchSublayerChanges(t)}_makeChildren(t){return t.map((t=>g(t)?new b({layer:t,listItemCreatedFunction:this.listItemCreatedFunction,parent:this,view:this.view}):null)).reverse()}_watchLayerProperties(t){if(!this.handles)return;if(this.handles.remove(S),this.handles.remove(L),!t)return;this.handles.add(o((()=>t.listMode),(()=>this._watchLayerProperties(t))),S);if("hide-children"===w(t))return void this.children.removeAll();const e=_(t);e&&this.handles.add(o((()=>t[e]),(()=>{t.hasOwnProperty(e)&&this._initializeChildLayers(t[e])}),l),S)}async _getLayerView(){const{layer:t,view:e}=this;if(t&&e)try{const i=await e.whenLayerView(t);if(i.layer!==this.layer)return;this._set("layerView",i)}catch{}}_isLayerUpdating(t){return t&&"loading"===t.loadStatus}};t([p({type:j})],P.prototype,"actionsSections",void 0),t([p()],P.prototype,"actionsOpen",void 0),t([p({type:i})],P.prototype,"children",void 0),t([p()],P.prototype,"childrenSortable",void 0),t([n("layer.loadError?")],P.prototype,"error",void 0),t([p()],P.prototype,"hidden",void 0),t([p({readOnly:!0})],P.prototype,"incompatible",null),t([p()],P.prototype,"layer",void 0),t([p({readOnly:!0})],P.prototype,"layerView",void 0),t([p()],P.prototype,"listItemCreatedFunction",void 0),t([p()],P.prototype,"open",void 0),t([p({type:m})],P.prototype,"panel",void 0),t([a("panel")],P.prototype,"castPanel",null),t([p()],P.prototype,"parent",void 0),t([p()],P.prototype,"sortable",void 0),t([p()],P.prototype,"title",null),t([p({readOnly:!0})],P.prototype,"updating",null),t([p({value:null})],P.prototype,"view",void 0),t([n("layer.visible")],P.prototype,"visible",void 0),t([p({readOnly:!0})],P.prototype,"visibleAtCurrentScale",null),t([p({readOnly:!0})],P.prototype,"visibilityMode",null),P=b=t([h(I)],P);const A=P;export{A as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Handles.js";import{IdentifiableMixin as s}from"../../core/Identifiable.js";import{init as n}from"../../core/watchUtils.js";import{property as i}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{subclass as r}from"../../core/accessorSupport/decorators/subclass.js";import o from"../Widget.js";import{getLegendLayerInfo as l}from"./support/layerListUtils.js";import{isWidget as a}from"../support/widget.js";import{tsx as c}from"../support/jsxFactory.js";const d={base:"esri-layer-list-panel",content:"esri-layer-list-panel__content",contentLegend:"esri-layer-list-panel__content--legend",contentString:"esri-layer-list-panel__content--string",contentElement:"esri-layer-list-panel__content--html-element",contentWidget:"esri-layer-list-panel__content--widget"},h="legends";let p=class extends(s(o)){constructor(e,s){super(e,s),this._legend=null,this._handles=new t,this.content=null,this.image=null,this.listItem=null,this.open=!1,this.visible=!0}initialize(){this.own([n(this,"content",(e=>this._createLegend(e)))])}destroy(){const{_legend:e}=this;e&&e.destroy(),this._legend=null}get className(){const{image:e}=this,t=this._getFirstWidget();return this._get("className")||!e&&t?t.iconClass:""}set className(e){void 0!==e?this._override("className",e):this._clearOverride("className")}get title(){const e=this._getFirstWidget();return this._get("title")||e?e.label:""}set title(e){void 0!==e?this._override("title",e):this._clearOverride("title")}render(){return c("div",{class:d.base},this._renderContents())}_renderContent(e){const{_legend:t,listItem:s}=this;if(!e)return null;if("legend"===e){return s&&s.view&&s.layer&&t?c("div",{class:this.classes(d.content,d.contentLegend),key:t},t.render()):null}return"string"==typeof e?c("div",{class:this.classes(d.content,d.contentString),key:e,innerHTML:e}):a(e)?c("div",{class:this.classes(d.content,d.contentWidget),key:e},e.render()):e instanceof HTMLElement?c("div",{class:this.classes(d.content,d.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:[l(t)]}:{}}_createLegend(e){this._hasLegend(e)&&!this._legend&&import("../Legend.js").then((({default:e})=>{const{_handles:t}=this,s=new e(this._getLegendOptions());this._legend=s,this.notifyChange("className"),this.notifyChange("title");const i=n(this,["listItem.view","listItem.layer","listItem.layer.source","listItem.layer.parent"],(()=>this._updateLegend(s)));t.add(i,h),this.scheduleRender()}))}_hasLegend(e){const t="legend";return e===t||!!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:a(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([i()],p.prototype,"className",null),e([i()],p.prototype,"content",void 0),e([i()],p.prototype,"image",void 0),e([i()],p.prototype,"listItem",void 0),e([i()],p.prototype,"title",null),e([i()],p.prototype,"open",void 0),e([i()],p.prototype,"visible",void 0),p=e([r("esri.widgets.LayerList.ListItemPanel")],p);const g=p;export{g as default};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Handles.js";import{IdentifiableMixin as s}from"../../core/Identifiable.js";import{watch as n,initial as r}from"../../core/reactiveUtils.js";import{property as i}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/has.js";import"../../core/accessorSupport/ensureType.js";import{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 c}from"../support/widget.js";import{tsx as d}from"../support/jsxFactory.js";const h={base:"esri-layer-list-panel",content:"esri-layer-list-panel__content",contentLegend:"esri-layer-list-panel__content--legend",contentString:"esri-layer-list-panel__content--string",contentElement:"esri-layer-list-panel__content--html-element",contentWidget:"esri-layer-list-panel__content--widget"},p="legends";let g=class extends(s(l)){constructor(e,s){super(e,s),this._legend=null,this._handles=new t,this.content=null,this.image=null,this.listItem=null,this.open=!1,this.visible=!0}initialize(){this.own([n((()=>this.content),(e=>this._createLegend(e)),r)])}destroy(){const{_legend:e}=this;e&&e.destroy(),this._legend=null}get className(){const{image:e}=this,t=this._getFirstWidget();return this._get("className")||!e&&t?t.iconClass:""}set className(e){void 0!==e?this._override("className",e):this._clearOverride("className")}get title(){const e=this._getFirstWidget();return this._get("title")||e?e.label:""}set title(e){void 0!==e?this._override("title",e):this._clearOverride("title")}render(){return d("div",{class:h.base},this._renderContents())}_renderContent(e){const{_legend:t,listItem:s}=this;if(!e)return null;if("legend"===e){return s&&s.view&&s.layer&&t?d("div",{class:this.classes(h.content,h.contentLegend),key:t},t.render()):null}return"string"==typeof e?d("div",{class:this.classes(h.content,h.contentString),key:e,innerHTML:e}):c(e)?d("div",{class:this.classes(h.content,h.contentWidget),key:e},e.render()):e instanceof HTMLElement?d("div",{class:this.classes(h.content,h.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)]}:{}}_createLegend(e){this._hasLegend(e)&&!this._legend&&import("../Legend.js").then((({default:e})=>{const{_handles:t,listItem:s}=this,i=new e(this._getLegendOptions());this._legend=i,this.notifyChange("className"),this.notifyChange("title");const o=n((()=>[s?.view,s?.layer,s?.layer?.source,s?.layer?.parent]),(()=>this._updateLegend(i)),r);t.add(o,p),this.scheduleRender()}))}_hasLegend(e){const t="legend";return e===t||!!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:c(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([i()],g.prototype,"className",null),e([i()],g.prototype,"content",void 0),e([i()],g.prototype,"image",void 0),e([i()],g.prototype,"listItem",void 0),e([i()],g.prototype,"title",null),e([i()],g.prototype,"open",void 0),e([i()],g.prototype,"visible",void 0),g=e([o("esri.widgets.LayerList.ListItemPanel")],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.24/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 s from"../core/Handles.js";import o from"../core/has.js";import{on as n,watch as r,init as l}from"../core/watchUtils.js";import{aliasOf as a}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import{cast as c}from"../core/accessorSupport/decorators/cast.js";import{property as d}from"../core/accessorSupport/decorators/property.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import m from"./Widget.js";import g from"./LayerList/LayerListViewModel.js";import p from"./LayerList/ListItem.js";import{findSelectedItem as u,sortLayersToIds as _,sortChildLayersToIds as b,canSortSublayers as y}from"./LayerList/support/layerListUtils.js";import{accessibleHandler as v}from"./support/decorators/accessibleHandler.js";import{messageBundle as I}from"./support/decorators/messageBundle.js";import{vmEvent as f}from"./support/decorators/vmEvent.js";import{tsx as A}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import C from"sortablejs";function w(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const S="esri-layerlist-new-ui",k=t.ofType(p),L="data-sort-filter",M="data-layer-uid",T="layerUid",E={base:"esri-layer-list esri-widget esri-widget--panel",newUI:"esri-layer-list--new-ui",noItems:"esri-layer-list__no-items",list:"esri-layer-list__list",listRoot:"esri-layer-list__list--root",listExclusive:"esri-layer-list__list--exclusive",listInherited:"esri-layer-list__list--inherited",listIndependent:"esri-layer-list__list--independent",item:"esri-layer-list__item",itemContent:"esri-layer-list__item-content",itemMessage:"esri-layer-list__item--has-message",itemInvisible:"esri-layer-list__item--invisible",itemInvisibleAtScale:"esri-layer-list__item--invisible-at-scale",itemUpdating:"esri-layer-list__item--updating",itemChildren:"esri-layer-list__item--has-children",itemSelectable:"esri-layer-list__item--selectable",itemContainer:"esri-layer-list__item-container",actionsMenu:"esri-layer-list__item-actions-menu",actionsMenuItem:"esri-layer-list__item-actions-menu-item",actionsMenuItemActive:"esri-layer-list__item-actions-menu-item--active",actions:"esri-layer-list__item-actions",actionsList:"esri-layer-list__item-actions-list",action:"esri-layer-list__item-action",actionIcon:"esri-layer-list__item-action-icon",actionImage:"esri-layer-list__item-action-image",actionTitle:"esri-layer-list__item-action-title",actionToggle:"esri-layer-list__action-toggle",actionToggleOn:"esri-layer-list__action-toggle--on",label:"esri-layer-list__item-label",message:"esri-layer-list__item-message",title:"esri-layer-list__item-title",toggleVisible:"esri-layer-list__item-toggle",toggleVisibleIcon:"esri-layer-list__item-toggle-icon",toggleIcon:"esri-layer-list__item-toggle-icon",radioIcon:"esri-layer-list__item-radio-icon",childToggle:"esri-layer-list__child-toggle",childToggleOpen:"esri-layer-list__child-toggle--open",childOpened:"esri-layer-list__child-toggle-icon--opened",childClosed:"esri-layer-list__child-toggle-icon--closed",childClosed_RTL:"esri-layer-list__child-toggle-icon--closed-rtl",sortableChosen:"esri-layer-list--chosen",disabled:"esri-disabled",disabledElement:"esri-disabled-element",hidden:"esri-hidden",rotating:"esri-rotating",iconEllipses:"esri-icon-handle-horizontal",iconVisible:"esri-icon-visible",iconInvisible:"esri-icon-non-visible",iconRadioSelected:"esri-icon-radio-checked",iconRadioUnselected:"esri-icon-radio-unchecked",iconNoticeTriangle:"esri-icon-notice-triangle",iconChildrenOpen:"esri-icon-down-arrow",iconDownArrow:"esri-icon-down-arrow",iconRightArrow:"esri-icon-right-triangle-arrow",iconLeftArrow:"esri-icon-left-triangle-arrow",iconLoading:"esri-icon-loading-indicator",iconDefaultAction:"esri-icon-default-action",widgetIcon:"esri-icon-layers"},R={actions:"actions",actionSection:"action-section",items:"items"},x={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function U(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>U(e)))}const O="root",N={statusIndicators:!0};let j=class extends m{constructor(e,t){super(e,t),this._handles=new s,this._sortableNodes=new Map,this._sortableMap=new Map,this._focusSortUid=null,this._newUI=o(S),this._tooltipReferenceMap=new Map,this.visibleItems=null,this.iconClass=E.widgetIcon,this.label=void 0,this.listItemCanGiveFunction=null,this.listItemCanReceiveFunction=null,this.listItemCreatedFunction=null,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.operationalItems=null,this.selectionEnabled=!1,this.selectedItems=new k,this.view=null,this.viewModel=new g,this.visibleElements={...N},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:i["data-item"],from:t.el["data-item"],to:e.el["data-item"]};return!this._sortableCanSort(e,t)||"function"!=typeof s||s.call(null,o)},this._sortableCanPut=(e,t,i)=>{const{listItemCanReceiveFunction:s}=this,o={selected:i["data-item"],from:t.el["data-item"],to:e.el["data-item"]};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.own([n(this,"operationalItems","change",(()=>this._itemsChanged(e))),r(this,"errorsVisible",(()=>this._itemsChanged(e))),l(this,"selectionEnabled",(()=>this._toggleAllSorting()))])}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-tooltip-manager.js"),import("@esri/calcite-components/dist/components/calcite-tooltip.js")])}destroy(){this._destroySortables(),this._tooltipReferenceMap.clear(),this._handles.destroy(),this._handles=null}castVisibleElements(e){return{...N,...e}}triggerAction(e,t){this.viewModel.triggerAction(e,t)}render(){const{visibleItems:e,_newUI:t}=this,i=this.viewModel?.state,s={[E.newUI]:t,[E.hidden]:"loading"===i,[E.disabled]:"disabled"===i},o=this.renderItemTooltips(),n=this.renderItems();return A("div",{class:this.classes(E.base,s)},e?.length?[o,o.length?A("calcite-tooltip-manager",null,n):n]:this.renderNoItems())}renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:i}=this;return e?A("calcite-tooltip",{label:i.layerIncompatible,referenceElement:t.get(e.uid)},i.layerIncompatibleTooltip):null}renderItemTooltipNodes(e){const{incompatible:t,children:i}=e;return[t?this.renderItemTooltip(e):null,...t?[]:i?.toArray().map((e=>this.renderItemTooltipNodes(e)))]}renderItemTooltips(){return this.visibleItems.toArray().map((e=>this.renderItemTooltipNodes(e)))}renderNoItems(){return A("div",{class:E.noItems},this.messages.noItemsToDisplay)}renderItems(){const{visibleItems:e,selectionEnabled:t,messages:i}=this;return A("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(E.list,E.listRoot,E.listIndependent)},e?.map((e=>this.renderItem(e,null))).toArray())}renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[E.actionsMenuItemActive]:e.actionsOpen};return A("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(E.actionsMenuItem,s),tabindex:"0",role:"button","aria-controls":t,"aria-label":i.options,title:i.options},A("span",{"aria-hidden":"true",class:E.iconEllipses}))}renderActionsMenu(e,t,i,s){const{panel:o}=e,n=o&&o.visible?this.renderPanelButton(o):null,r=1===i&&this._getSingleActionButton(t),l=r?this.renderAction({item:e,action:r,singleAction:!0}):null,a=!r&&i?this.renderActionsMenuIcon(e,s):null;return a||n||r?A("div",{key:"actions-menu",class:E.actionsMenu},n,l,a):null}renderChildList(e,t){const{selectionEnabled:i}=this,{visibilityMode:s,children:o}=e,n=this._hasChildren(e),r=!n&&i&&"group"===e.layer?.type,{exclusive:l,inherited:a}=x,c={[E.listExclusive]:s===l,[E.listInherited]:s===a,[E.listIndependent]:s!==a&&s!==l};return n||r?A("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(E.list,c),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===l?"radiogroup":"group",hidden:!e.open&&!r||null},o?.map((t=>this.renderItem(t,e))).toArray()):null}renderChildrenToggle(e,t){const{messagesCommon:i}=this,s=this._hasChildren(e),o={[E.childToggleOpen]:e.open},n=e.open?i.collapse:i.expand;return s?A("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(E.childToggle,o),tabindex:"0",role:"button","aria-controls":t,"aria-label":n,title:n},A("span",{"aria-hidden":"true",class:this.classes(E.childClosed,E.iconRightArrow)}),A("span",{"aria-hidden":"true",class:this.classes(E.childOpened,E.iconDownArrow)}),A("span",{"aria-hidden":"true",class:this.classes(E.childClosed_RTL,E.iconLeftArrow)})):null}renderItemMessage(e){return e.error?A("div",{key:"esri-layer-list__error",class:E.message,role:"alert"},A("span",{"aria-hidden":"true",class:E.iconNoticeTriangle}),this.messages.layerError):e.incompatible?A("div",{key:"esri-layer-list__incompatible",class:E.message,role:"alert"},A("span",{bind:this,tabIndex:0,"aria-hidden":"true",class:E.iconNoticeTriangle,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`,r=`${o}__list`,{panel:l}=e,a=this._filterActions(e.actionsSections),c=this._countActions(a);return[A("div",{key:"list-item-container",class:E.itemContainer},this.renderChildrenToggle(e,r),this.renderLabel(e,t,i),this.renderActionsMenu(e,a,c,n)),this.renderItemMessage(e),c?this.renderActionsSections(e,a,n):null,l&&l.open?l.render():null,this.renderChildList(e,r)]}renderItem(e,t){const{_newUI:i,id:s,selectionEnabled:o,selectedItems:n,visibleElements:r}=this,l=`${`${s}_${e.uid}`}__title`,a=this._hasMessage(e),c=this._hasChildren(e),d={[E.itemChildren]:c,[E.itemMessage]:!!a,[E.itemUpdating]:e.updating&&!t&&r.statusIndicators,[E.itemInvisible]:i&&!e.visible,[E.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[E.itemSelectable]:o};if(o){const i={[M]:e.layer?.uid,[L]:(!e.sortable).toString()};return A("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(E.item,d),"aria-labelledby":l,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item":e,"data-group":t?t.uid:O,tabIndex:0,"aria-selected":u(e,n)?"true":"false",role:"option",...i},this.renderItemContent(e,t,l))}return A("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(E.item,d),"aria-labelledby":l},this.renderItemContent(e,t,l))}renderItemTitle(e,t){const{messages:i}=this,s=e.title||i.untitledLayer,o=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return A("span",{key:"layer-title-container",id:t,title:o,"aria-label":o,class:E.title},s)}renderItemToggleIcon(e,t){const{_newUI:i}=this,{exclusive:s}=x,o=t&&t.visibilityMode,n={[E.toggleVisibleIcon]:i,[E.toggleIcon]:i&&o!==s,[E.radioIcon]:i&&o===s,[E.iconRadioSelected]:o===s&&e.visible,[E.iconRadioUnselected]:o===s&&!e.visible,[E.iconVisible]:o!==s&&e.visible,[E.iconInvisible]:o!==s&&!e.visible};return A("span",{key:"item-toggle-icon",class:this.classes(n),"aria-hidden":"true"})}renderItemToggle(e,t,i){const{selectionEnabled:s,messages:o}=this,{exclusive:n}=x,r=t&&t.visibilityMode,l=r===n?"radio":"switch";return A("span",s?{key:"item-toggle-selection-enabled",class:E.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":r,tabIndex:0,title:e.visible?o.hideLayer:o.showLayer,"aria-checked":e.visible?"true":"false",role:l,"aria-labelledby":i}:{key:"item-toggle",class:E.toggleVisible},this.renderItemToggleIcon(e,t))}renderLabel(e,t,i){const{selectionEnabled:s,_newUI:o,messages:n}=this,{inherited:r,exclusive:l}=x,a=t?.visibilityMode,c=a===l?"radio":"switch",d=[this.renderItemToggle(e,t,i),this.renderItemTitle(e,i)];o&&d.reverse();const h=A("div",s?{key:`item-label-no-selection-${e.uid}`,class:E.label}:{key:`item-label-with-selection-${e.uid}`,class:E.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:e.visible?n.hideLayer:n.showLayer,role:c,"aria-labelledby":i},d);return a===r||e.error?A("div",{key:`item-label-container-${e.uid}`,class:E.label},this.renderItemTitle(e,i)):h}renderPanelButton(e){const{className:t,open:i,title:s,image:o}=e,n=o||t?t:E.iconDefaultAction,r=this._getIconImageStyles(e),l={[E.actionsMenuItemActive]:i},a={[E.actionImage]:!!r["background-image"]};return n&&(a[n]=!!n),A("div",{key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(E.actionsMenuItem,l),role:"button",tabindex:"0",title:s,"aria-label":s},A("span",{class:this.classes(a),styles:r}))}renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>A("ul",{key:`${e}-action-section-${i}`,class:E.actionsList},this.renderActionSection(e,t))));return A("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:E.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:E.iconDefaultAction,n={[E.actionImage]:!t&&!!s["background-image"],[E.iconLoading]:t,[E.rotating]:t};return o&&!t&&(n[o]=!0),A("span",{key:"action-icon","aria-hidden":"true",class:this.classes(E.actionIcon,n),styles:s})}renderActionTitle(e,t){return t?null:A("span",{key:"action-title",class:E.actionTitle},e)}renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:o,disabled:n,title:r}=i,l={[E.actionsMenuItem]:s&&"button"===i.type,[E.action]:o||!s&&"toggle"!==i.type,[E.actionToggle]:!o&&"toggle"===i.type,[E.actionToggleOn]:!o&&"toggle"===i.type&&i.value,[E.disabledElement]:n},a=[this.renderActionIcon(i),this.renderActionTitle(r,s)];return s?A("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabindex:"0",title:r,"aria-label":r},a):A("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabindex:"0",role:"button",title:r,"aria-label":r},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=i["data-item"],n=e["data-item"],r=t["data-item"];this.viewModel.moveListItem(o,r,n,s)}_sortLayers(e){if(!e)return;const t=e.el["data-item"],i=e.toArray();t?b(t,i):_(this.view?.map?.layers,i)}_toggleSorting(e,t){const{_sortableMap:i,selectionEnabled:s}=this,o=i.get(t),n=e["data-item"],r=(t===O||n.childrenSortable&&y(n))&&s;if(o)o.option("disabled",!r);else if(r){const s=C.create(e,{dataIdAttr:M,group:{name:t,pull:this._sortableCanPull,put:this._sortableCanPut},filter:`[${L}="true"]`,fallbackTolerance:4,onSort:this._onSortableSort,onEnd:this._onSortableEnd,disabled:!r,chosenClass:E.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.errorsVisible||!e.error)))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).getItemAt(0)}_focusListItem(e){const{_focusSortUid:t}=this;if(!e||!t)return;e["data-item"].layer?.uid===t&&(e.focus(),this._focusSortUid=null)}_watchActionSectionChanges(e,t){const i=R.actionSection+t;this._handles.add(e.on("change",this.scheduleRender.bind(this)),i),e.forEach((e=>this._renderOnActionChanges(e,t)))}_renderOnActionChanges(e,t){const i=R.actions+t;"toggle"!==e.type?"slider"!==e.type?this._handles.add([l(e,["className","image","id","title","visible"],(()=>this.scheduleRender()))],i):this._handles.add([l(e,["className","id","title","visible","value","displayValueEnabled","max","min","step"],(()=>this.scheduleRender()))],i):this._handles.add([l(e,["className","image","id","title","visible","value"],(()=>this.scheduleRender()))],i)}_renderOnItemChanges(e){const t=e.uid,i=R.items+t;this._handles.add([l(e,["actionsOpen","visible","open","updating","title","visibleAtCurrentScale","error","visibilityMode","panel","panel.title","panel.content","panel.className","sortable","childrenSortable"],(()=>this.scheduleRender())),r(e,["hidden","error"],(()=>this._setVisibleItems(this.operationalItems))),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],i),e.children.forEach((e=>this._renderOnItemChanges(e))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e,t)))}_itemsChanged(e){this._handles.removeAll(),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}")`:null}}_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=o["data-item"],{_sortableMap:r,selectedItems:l}=this,a=o.dataset.group,c=r.get(a);if(!c)return;const d=u(n,l),h=c.toArray(),m=e.target,g=h.indexOf(m.dataset[T]);if(-1!==g){if("ArrowDown"===s){const e=g+1;if(e>=h.length)return;d?(w(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?(w(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=e.currentTarget["data-item"],{actionsOpen:i}=t,s=!i;s&&this.operationalItems.forEach((e=>U(e))),t.actionsOpen=s,e.stopPropagation()}_triggerPanel(e){const t=e.currentTarget["data-panel"];t&&(t.open=!t.open),e.stopPropagation()}_triggerAction(e){const t=e.currentTarget,i=t["data-action"],s=t["data-item"];"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=t["data-item"];i===x.exclusive&&s.visible||(s.visible=!s.visible),e.stopPropagation()}_toggleChildrenClick(e){const t=e.currentTarget["data-item"];t.open=!t.open,e.stopPropagation()}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=e.currentTarget["data-item"],o=u(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)}};e([d()],j.prototype,"visibleItems",void 0),e([d()],j.prototype,"iconClass",void 0),e([d()],j.prototype,"errorsVisible",void 0),e([d({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],j.prototype,"label",void 0),e([d()],j.prototype,"listItemCanGiveFunction",void 0),e([d()],j.prototype,"listItemCanReceiveFunction",void 0),e([a("viewModel.listItemCreatedFunction")],j.prototype,"listItemCreatedFunction",void 0),e([d(),I("esri/widgets/LayerList/t9n/LayerList")],j.prototype,"messages",void 0),e([d(),I("esri/t9n/common")],j.prototype,"messagesCommon",void 0),e([d()],j.prototype,"multipleSelectionEnabled",void 0),e([a("viewModel.operationalItems")],j.prototype,"operationalItems",void 0),e([d()],j.prototype,"selectionEnabled",void 0),e([d()],j.prototype,"selectedItems",void 0),e([a("viewModel.view")],j.prototype,"view",void 0),e([f("trigger-action"),d({type:g})],j.prototype,"viewModel",void 0),e([d()],j.prototype,"visibleElements",void 0),e([c("visibleElements")],j.prototype,"castVisibleElements",null),e([a("viewModel.triggerAction")],j.prototype,"triggerAction",null),e([v()],j.prototype,"_toggleActionsOpen",null),e([v()],j.prototype,"_triggerPanel",null),e([v()],j.prototype,"_triggerAction",null),e([v()],j.prototype,"_toggleVisibility",null),e([v()],j.prototype,"_toggleChildrenClick",null),e([v()],j.prototype,"_toggleSelection",null),j=e([h("esri.widgets.LayerList")],j);const V=j;export{V 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 s from"../core/Handles.js";import o from"../core/has.js";import{on as n,watch as r,initial as l}from"../core/reactiveUtils.js";import{aliasOf as a}from"../core/accessorSupport/decorators/aliasOf.js";import"../core/arrayUtils.js";import{cast as c}from"../core/accessorSupport/decorators/cast.js";import{property as d}from"../core/accessorSupport/decorators/property.js";import{subclass as h}from"../core/accessorSupport/decorators/subclass.js";import m from"./Widget.js";import g from"./LayerList/LayerListViewModel.js";import p from"./LayerList/ListItem.js";import{findSelectedItem as u,sortLayersToIds as _,sortChildLayersToIds as b,canSortSublayers as y}from"./LayerList/support/layerListUtils.js";import{accessibleHandler as v}from"./support/decorators/accessibleHandler.js";import{messageBundle as I}from"./support/decorators/messageBundle.js";import{vmEvent as f}from"./support/decorators/vmEvent.js";import{tsx as A}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import C from"sortablejs";function w(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const S="esri-layerlist-new-ui",k=t.ofType(p),L="data-sort-filter",M="data-layer-uid",T="layerUid",E={base:"esri-layer-list esri-widget esri-widget--panel",newUI:"esri-layer-list--new-ui",noItems:"esri-layer-list__no-items",list:"esri-layer-list__list",listRoot:"esri-layer-list__list--root",listExclusive:"esri-layer-list__list--exclusive",listInherited:"esri-layer-list__list--inherited",listIndependent:"esri-layer-list__list--independent",item:"esri-layer-list__item",itemContent:"esri-layer-list__item-content",itemMessage:"esri-layer-list__item--has-message",itemInvisible:"esri-layer-list__item--invisible",itemInvisibleAtScale:"esri-layer-list__item--invisible-at-scale",itemUpdating:"esri-layer-list__item--updating",itemChildren:"esri-layer-list__item--has-children",itemSelectable:"esri-layer-list__item--selectable",itemContainer:"esri-layer-list__item-container",actionsMenu:"esri-layer-list__item-actions-menu",actionsMenuItem:"esri-layer-list__item-actions-menu-item",actionsMenuItemActive:"esri-layer-list__item-actions-menu-item--active",actions:"esri-layer-list__item-actions",actionsList:"esri-layer-list__item-actions-list",action:"esri-layer-list__item-action",actionIcon:"esri-layer-list__item-action-icon",actionImage:"esri-layer-list__item-action-image",actionTitle:"esri-layer-list__item-action-title",actionToggle:"esri-layer-list__action-toggle",actionToggleOn:"esri-layer-list__action-toggle--on",label:"esri-layer-list__item-label",message:"esri-layer-list__item-message",title:"esri-layer-list__item-title",toggleVisible:"esri-layer-list__item-toggle",toggleVisibleIcon:"esri-layer-list__item-toggle-icon",toggleIcon:"esri-layer-list__item-toggle-icon",radioIcon:"esri-layer-list__item-radio-icon",childToggle:"esri-layer-list__child-toggle",childToggleOpen:"esri-layer-list__child-toggle--open",childOpened:"esri-layer-list__child-toggle-icon--opened",childClosed:"esri-layer-list__child-toggle-icon--closed",childClosed_RTL:"esri-layer-list__child-toggle-icon--closed-rtl",sortableChosen:"esri-layer-list--chosen",disabled:"esri-disabled",disabledElement:"esri-disabled-element",hidden:"esri-hidden",rotating:"esri-rotating",iconEllipses:"esri-icon-handle-horizontal",iconVisible:"esri-icon-visible",iconInvisible:"esri-icon-non-visible",iconRadioSelected:"esri-icon-radio-checked",iconRadioUnselected:"esri-icon-radio-unchecked",iconNoticeTriangle:"esri-icon-notice-triangle",iconChildrenOpen:"esri-icon-down-arrow",iconDownArrow:"esri-icon-down-arrow",iconRightArrow:"esri-icon-right-triangle-arrow",iconLeftArrow:"esri-icon-left-triangle-arrow",iconLoading:"esri-icon-loading-indicator",iconDefaultAction:"esri-icon-default-action",widgetIcon:"esri-icon-layers"},R={actions:"actions",actionSection:"action-section",items:"items"},x={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function U(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>U(e)))}const O="root",N={statusIndicators:!0};let j=class extends m{constructor(e,t){super(e,t),this._handles=new s,this._sortableNodes=new Map,this._sortableMap=new Map,this._focusSortUid=null,this._newUI=o(S),this._tooltipReferenceMap=new Map,this.visibleItems=null,this.iconClass=E.widgetIcon,this.label=void 0,this.listItemCanGiveFunction=null,this.listItemCanReceiveFunction=null,this.listItemCreatedFunction=null,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.operationalItems=null,this.selectionEnabled=!1,this.selectedItems=new k,this.view=null,this.viewModel=new g,this.visibleElements={...N},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:i["data-item"],from:t.el["data-item"],to:e.el["data-item"]};return!this._sortableCanSort(e,t)||"function"!=typeof s||s.call(null,o)},this._sortableCanPut=(e,t,i)=>{const{listItemCanReceiveFunction:s}=this,o={selected:i["data-item"],from:t.el["data-item"],to:e.el["data-item"]};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.own([n((()=>this.operationalItems),"change",(()=>this._itemsChanged(e))),r((()=>this.errorsVisible),(()=>this._itemsChanged(e))),r((()=>this.selectionEnabled),(()=>this._toggleAllSorting()),l)])}loadDependencies(){return Promise.all([import("@esri/calcite-components/dist/components/calcite-tooltip-manager.js"),import("@esri/calcite-components/dist/components/calcite-tooltip.js")])}destroy(){this._destroySortables(),this._tooltipReferenceMap.clear(),this._handles.destroy(),this._handles=null}castVisibleElements(e){return{...N,...e}}triggerAction(e,t){this.viewModel.triggerAction(e,t)}render(){const{visibleItems:e,_newUI:t}=this,i=this.viewModel?.state,s={[E.newUI]:t,[E.hidden]:"loading"===i,[E.disabled]:"disabled"===i},o=this.renderItemTooltips(),n=this.renderItems();return A("div",{class:this.classes(E.base,s)},e?.length?[o,o.length?A("calcite-tooltip-manager",null,n):n]:this.renderNoItems())}renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:i}=this;return e?A("calcite-tooltip",{label:i.layerIncompatible,referenceElement:t.get(e.uid)},i.layerIncompatibleTooltip):null}renderItemTooltipNodes(e){const{incompatible:t,children:i}=e;return[t?this.renderItemTooltip(e):null,...t?[]:i?.toArray().map((e=>this.renderItemTooltipNodes(e)))]}renderItemTooltips(){return this.visibleItems.toArray().map((e=>this.renderItemTooltipNodes(e)))}renderNoItems(){return A("div",{class:E.noItems},this.messages.noItemsToDisplay)}renderItems(){const{visibleItems:e,selectionEnabled:t,messages:i}=this;return A("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(E.list,E.listRoot,E.listIndependent)},e?.map((e=>this.renderItem(e,null))).toArray())}renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[E.actionsMenuItemActive]:e.actionsOpen};return A("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(E.actionsMenuItem,s),tabindex:"0",role:"button","aria-controls":t,"aria-label":i.options,title:i.options},A("span",{"aria-hidden":"true",class:E.iconEllipses}))}renderActionsMenu(e,t,i,s){const{panel:o}=e,n=o&&o.visible?this.renderPanelButton(o):null,r=1===i&&this._getSingleActionButton(t),l=r?this.renderAction({item:e,action:r,singleAction:!0}):null,a=!r&&i?this.renderActionsMenuIcon(e,s):null;return a||n||r?A("div",{key:"actions-menu",class:E.actionsMenu},n,l,a):null}renderChildList(e,t){const{selectionEnabled:i}=this,{visibilityMode:s,children:o}=e,n=this._hasChildren(e),r=!n&&i&&"group"===e.layer?.type,{exclusive:l,inherited:a}=x,c={[E.listExclusive]:s===l,[E.listInherited]:s===a,[E.listIndependent]:s!==a&&s!==l};return n||r?A("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(E.list,c),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===l?"radiogroup":"group",hidden:!e.open&&!r||null},o?.map((t=>this.renderItem(t,e))).toArray()):null}renderChildrenToggle(e,t){const{messagesCommon:i}=this,s=this._hasChildren(e),o={[E.childToggleOpen]:e.open},n=e.open?i.collapse:i.expand;return s?A("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(E.childToggle,o),tabindex:"0",role:"button","aria-controls":t,"aria-label":n,title:n},A("span",{"aria-hidden":"true",class:this.classes(E.childClosed,E.iconRightArrow)}),A("span",{"aria-hidden":"true",class:this.classes(E.childOpened,E.iconDownArrow)}),A("span",{"aria-hidden":"true",class:this.classes(E.childClosed_RTL,E.iconLeftArrow)})):null}renderItemMessage(e){return e.error?A("div",{key:"esri-layer-list__error",class:E.message,role:"alert"},A("span",{"aria-hidden":"true",class:E.iconNoticeTriangle}),this.messages.layerError):e.incompatible?A("div",{key:"esri-layer-list__incompatible",class:E.message,role:"alert"},A("span",{bind:this,tabIndex:0,"aria-hidden":"true",class:E.iconNoticeTriangle,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`,r=`${o}__list`,{panel:l}=e,a=this._filterActions(e.actionsSections),c=this._countActions(a);return[A("div",{key:"list-item-container",class:E.itemContainer},this.renderChildrenToggle(e,r),this.renderLabel(e,t,i),this.renderActionsMenu(e,a,c,n)),this.renderItemMessage(e),c?this.renderActionsSections(e,a,n):null,l&&l.open?l.render():null,this.renderChildList(e,r)]}renderItem(e,t){const{_newUI:i,id:s,selectionEnabled:o,selectedItems:n,visibleElements:r}=this,l=`${`${s}_${e.uid}`}__title`,a=this._hasMessage(e),c=this._hasChildren(e),d={[E.itemChildren]:c,[E.itemMessage]:!!a,[E.itemUpdating]:e.updating&&!t&&r.statusIndicators,[E.itemInvisible]:i&&!e.visible,[E.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[E.itemSelectable]:o};if(o){const i={[M]:e.layer?.uid,[L]:(!e.sortable).toString()};return A("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(E.item,d),"aria-labelledby":l,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item":e,"data-group":t?t.uid:O,tabIndex:0,"aria-selected":u(e,n)?"true":"false",role:"option",...i},this.renderItemContent(e,t,l))}return A("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(E.item,d),"aria-labelledby":l},this.renderItemContent(e,t,l))}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 A("span",{key:"layer-title-container",id:t,title:o,"aria-label":o,class:E.title},s)}renderItemToggleIcon(e,t){const{_newUI:i}=this,{exclusive:s}=x,o=t&&t.visibilityMode,n={[E.toggleVisibleIcon]:i,[E.toggleIcon]:i&&o!==s,[E.radioIcon]:i&&o===s,[E.iconRadioSelected]:o===s&&e.visible,[E.iconRadioUnselected]:o===s&&!e.visible,[E.iconVisible]:o!==s&&e.visible,[E.iconInvisible]:o!==s&&!e.visible};return A("span",{key:"item-toggle-icon",class:this.classes(n),"aria-hidden":"true"})}renderItemToggle(e,t,i){const{selectionEnabled:s,messages:o}=this,{exclusive:n}=x,r=t&&t.visibilityMode,l=r===n?"radio":"switch";return A("span",s?{key:"item-toggle-selection-enabled",class:E.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":r,tabIndex:0,title:e.visible?o.hideLayer:o.showLayer,"aria-checked":e.visible?"true":"false",role:l,"aria-labelledby":i}:{key:"item-toggle",class:E.toggleVisible},this.renderItemToggleIcon(e,t))}renderLabel(e,t,i){const{selectionEnabled:s,_newUI:o,messages:n}=this,{inherited:r,exclusive:l}=x,a=t?.visibilityMode,c=a===l?"radio":"switch",d=[this.renderItemToggle(e,t,i),this.renderItemTitle(e,i)];o&&d.reverse();const h=A("div",s?{key:`item-label-no-selection-${e.uid}`,class:E.label}:{key:`item-label-with-selection-${e.uid}`,class:E.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:e.visible?n.hideLayer:n.showLayer,role:c,"aria-labelledby":i},d);return a===r||e.error?A("div",{key:`item-label-container-${e.uid}`,class:E.label},this.renderItemTitle(e,i)):h}renderPanelButton(e){const{className:t,open:i,title:s,image:o}=e,n=o||t?t:E.iconDefaultAction,r=this._getIconImageStyles(e),l={[E.actionsMenuItemActive]:i},a={[E.actionImage]:!!r["background-image"]};return n&&(a[n]=!!n),A("div",{key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(E.actionsMenuItem,l),role:"button",tabindex:"0",title:s,"aria-label":s},A("span",{class:this.classes(a),styles:r}))}renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>A("ul",{key:`${e}-action-section-${i}`,class:E.actionsList},this.renderActionSection(e,t))));return A("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:E.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:E.iconDefaultAction,n={[E.actionImage]:!t&&!!s["background-image"],[E.iconLoading]:t,[E.rotating]:t};return o&&!t&&(n[o]=!0),A("span",{key:"action-icon","aria-hidden":"true",class:this.classes(E.actionIcon,n),styles:s})}renderActionTitle(e,t){return t?null:A("span",{key:"action-title",class:E.actionTitle},e)}renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:o,disabled:n,title:r}=i,l={[E.actionsMenuItem]:s&&"button"===i.type,[E.action]:o||!s&&"toggle"!==i.type,[E.actionToggle]:!o&&"toggle"===i.type,[E.actionToggleOn]:!o&&"toggle"===i.type&&i.value,[E.disabledElement]:n},a=[this.renderActionIcon(i),this.renderActionTitle(r,s)];return s?A("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabindex:"0",title:r,"aria-label":r},a):A("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabindex:"0",role:"button",title:r,"aria-label":r},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=i["data-item"],n=e["data-item"],r=t["data-item"];this.viewModel.moveListItem(o,r,n,s)}_sortLayers(e){if(!e)return;const t=e.el["data-item"],i=e.toArray();t?b(t,i):_(this.view?.map?.layers,i)}_toggleSorting(e,t){const{_sortableMap:i,selectionEnabled:s}=this,o=i.get(t),n=e["data-item"],r=(t===O||n.childrenSortable&&y(n))&&s;if(o)o.option("disabled",!r);else if(r){const s=C.create(e,{dataIdAttr:M,group:{name:t,pull:this._sortableCanPull,put:this._sortableCanPut},filter:`[${L}="true"]`,fallbackTolerance:4,onSort:this._onSortableSort,onEnd:this._onSortableEnd,disabled:!r,chosenClass:E.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.errorsVisible||!e.error)))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).getItemAt(0)}_focusListItem(e){const{_focusSortUid:t}=this;if(!e||!t)return;e["data-item"].layer?.uid===t&&(e.focus(),this._focusSortUid=null)}_watchActionSectionChanges(e,t){const i=R.actionSection+t;this._handles.add(e.on("change",this.scheduleRender.bind(this)),i),e.forEach((e=>this._renderOnActionChanges(e,t)))}_renderOnActionChanges(e,t){const i=R.actions+t;"toggle"!==e.type?"slider"!==e.type?this._handles.add(r((()=>[e?.className,e?.image,e?.id,e?.title,e?.visible]),(()=>this.scheduleRender()),l),i):this._handles.add(r((()=>[e?.className,e?.id,e?.title,e?.visible,e?.value,e?.displayValueEnabled,e?.max,e?.min,e?.step]),(()=>this.scheduleRender()),l),i):this._handles.add(r((()=>[e?.className,e?.image,e?.id,e?.title,e?.visible,e?.value]),(()=>this.scheduleRender()),l),i)}_renderOnItemChanges(e){const t=e.uid,i=R.items+t;this._handles.add([r((()=>[e?.actionsOpen,e?.visible,e?.open,e?.updating,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),r((()=>[e?.hidden,e?.error]),(()=>this._setVisibleItems(this.operationalItems))),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],i),e.children.forEach((e=>this._renderOnItemChanges(e))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e,t)))}_itemsChanged(e){this._handles.removeAll(),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}")`:null}}_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=o["data-item"],{_sortableMap:r,selectedItems:l}=this,a=o.dataset.group,c=r.get(a);if(!c)return;const d=u(n,l),h=c.toArray(),m=e.target,g=h.indexOf(m.dataset[T]);if(-1!==g){if("ArrowDown"===s){const e=g+1;if(e>=h.length)return;d?(w(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?(w(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=e.currentTarget["data-item"],{actionsOpen:i}=t,s=!i;s&&this.operationalItems.forEach((e=>U(e))),t.actionsOpen=s,e.stopPropagation()}_triggerPanel(e){const t=e.currentTarget["data-panel"];t&&(t.open=!t.open),e.stopPropagation()}_triggerAction(e){const t=e.currentTarget,i=t["data-action"],s=t["data-item"];"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=t["data-item"];i===x.exclusive&&s.visible||(s.visible=!s.visible),e.stopPropagation()}_toggleChildrenClick(e){const t=e.currentTarget["data-item"];t.open=!t.open,e.stopPropagation()}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=e.currentTarget["data-item"],o=u(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)}};e([d()],j.prototype,"visibleItems",void 0),e([d()],j.prototype,"iconClass",void 0),e([d()],j.prototype,"errorsVisible",void 0),e([d({aliasOf:{source:"messages.widgetLabel",overridable:!0}})],j.prototype,"label",void 0),e([d()],j.prototype,"listItemCanGiveFunction",void 0),e([d()],j.prototype,"listItemCanReceiveFunction",void 0),e([a("viewModel.listItemCreatedFunction")],j.prototype,"listItemCreatedFunction",void 0),e([d(),I("esri/widgets/LayerList/t9n/LayerList")],j.prototype,"messages",void 0),e([d(),I("esri/t9n/common")],j.prototype,"messagesCommon",void 0),e([d()],j.prototype,"multipleSelectionEnabled",void 0),e([a("viewModel.operationalItems")],j.prototype,"operationalItems",void 0),e([d()],j.prototype,"selectionEnabled",void 0),e([d()],j.prototype,"selectedItems",void 0),e([a("viewModel.view")],j.prototype,"view",void 0),e([f("trigger-action"),d({type:g})],j.prototype,"viewModel",void 0),e([d()],j.prototype,"visibleElements",void 0),e([c("visibleElements")],j.prototype,"castVisibleElements",null),e([a("viewModel.triggerAction")],j.prototype,"triggerAction",null),e([v()],j.prototype,"_toggleActionsOpen",null),e([v()],j.prototype,"_triggerPanel",null),e([v()],j.prototype,"_triggerAction",null),e([v()],j.prototype,"_toggleVisibility",null),e([v()],j.prototype,"_toggleChildrenClick",null),e([v()],j.prototype,"_toggleSelection",null),j=e([h("esri.widgets.LayerList")],j);const V=j;export{V as default};