@arcgis/core 4.28.0-next.20230921 → 4.28.0-next.20230923
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.
- package/Graphic.js +1 -1
- package/PopupTemplate.js +1 -1
- package/TimeExtent.js +1 -1
- package/arcade/ArcadeDate.js +1 -1
- package/arcade/Feature.js +1 -1
- package/arcade/featureSetUtils.js +1 -1
- package/arcade/featureset/actions/Adapted.js +1 -1
- package/arcade/featureset/actions/GroupBy.js +1 -1
- package/arcade/featureset/support/FeatureSet.js +1 -1
- package/arcade/featureset/support/FeatureSetIterator.js +1 -1
- package/arcade/featureset/support/StatsField.js +1 -1
- package/arcade/featureset/support/sqlUtils.js +1 -1
- package/arcade/functions/convertdirection.js +1 -1
- package/arcade/functions/date.js +1 -1
- package/arcade/functions/featuresetbase.js +1 -1
- package/arcade/functions/featuresetstats.js +1 -1
- package/arcade/treeAnalysis.js +1 -1
- package/arcade.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/02156fd04279f4d0fd3f.js +1 -0
- package/assets/esri/core/workers/chunks/07f6175b52366b2c28bd.js +1 -0
- package/assets/esri/core/workers/chunks/098073c3b2849f56dad8.js +1 -0
- package/assets/esri/core/workers/chunks/1186ba1947bd0c32f148.js +1 -0
- package/assets/esri/core/workers/chunks/186445b9fbedd261f684.js +1 -0
- package/assets/esri/core/workers/chunks/{580039dd491854ca325c.js → 21fc02f0d5716c4a7acd.js} +1 -1
- package/assets/esri/core/workers/chunks/{dff1c3c38dda2bd1a9d6.js → 246a954347fe9318190e.js} +1 -1
- package/assets/esri/core/workers/chunks/{c9dfb145f0c1d93e0fbd.js → 250bb6ae6f1992b5b4f9.js} +1 -1
- package/assets/esri/core/workers/chunks/{314c307e30f308a40a28.js → 25b09e9c0511c8e1cf8a.js} +1 -1
- package/assets/esri/core/workers/chunks/2a0b3b52ecd787a613bc.js +1 -0
- package/assets/esri/core/workers/chunks/2bc9b55e655968229ef4.js +1 -0
- package/assets/esri/core/workers/chunks/2f0924e7aa89e689da4a.js +1 -0
- package/assets/esri/core/workers/chunks/3f218d65ec451b2a1027.js +1 -0
- package/assets/esri/core/workers/chunks/425b5733bb88e6efe242.js +1 -0
- package/assets/esri/core/workers/chunks/45d6b942cdccca2ce44a.js +1 -0
- package/assets/esri/core/workers/chunks/4bf1a7e82a68ccee0ee1.js +1 -0
- package/assets/esri/core/workers/chunks/4c110c7f4f940ec58010.js +1 -0
- package/assets/esri/core/workers/chunks/{bde89b2684b6185992ef.js → 4ed77097e69fa3096ce4.js} +1 -1
- package/assets/esri/core/workers/chunks/4fe5bac782a742d5b1c0.js +1 -0
- package/assets/esri/core/workers/chunks/{1cbaba30f55f00f7498b.js → 51324d042f469f3b8914.js} +1 -1
- package/assets/esri/core/workers/chunks/{3f4e9b1663ec521bfe00.js → 542ce10e1872399790b4.js} +1 -1
- package/assets/esri/core/workers/chunks/54d2b7e2ac4ba883bee8.js +1 -0
- package/assets/esri/core/workers/chunks/54ecb6cae310818d1aa2.js +1 -0
- package/assets/esri/core/workers/chunks/57c932e289d89d97da4b.js +1 -0
- package/assets/esri/core/workers/chunks/{6403de6fc067cf8f7436.js → 592c1fb531f2be928e8a.js} +1 -1
- package/assets/esri/core/workers/chunks/59a807220d6f0dd18776.js +1 -0
- package/assets/esri/core/workers/chunks/59dff10d7ad2b1bf469e.js +1 -0
- package/assets/esri/core/workers/chunks/609a475ab395f2ce63e2.js +1 -0
- package/assets/esri/core/workers/chunks/612c485c5aad1548d708.js +1 -0
- package/assets/esri/core/workers/chunks/{2bb69d76a13564e8e455.js → 645ba2d5c10184632d23.js} +1 -1
- package/assets/esri/core/workers/chunks/{332689bf60d246485993.js → 65186e168dd112ac6221.js} +1 -1
- package/assets/esri/core/workers/chunks/6b9248fb2d6aadbce7bb.js +1 -0
- package/assets/esri/core/workers/chunks/709465832d306e02df52.js +1 -0
- package/assets/esri/core/workers/chunks/72c5bd6f7b8541b8d69e.js +1 -0
- package/assets/esri/core/workers/chunks/{bbc0dcd316c5598bc9ad.js → 74368a5213def6c200a2.js} +1 -1
- package/assets/esri/core/workers/chunks/{94188fe381239d48a975.js → 76483c9a8848f3106126.js} +1 -1
- package/assets/esri/core/workers/chunks/7aa58c96798447ce5907.js +1 -0
- package/assets/esri/core/workers/chunks/7d078b8b9997b5300c0a.js +1 -0
- package/assets/esri/core/workers/chunks/7fe641cf1467496e670a.js +1 -0
- package/assets/esri/core/workers/chunks/{df8f62beb36fb9d2ac81.js → 810c8d6ff19976fd1366.js} +1 -1
- package/assets/esri/core/workers/chunks/8458ed96f3e72814cef2.js +1 -0
- package/assets/esri/core/workers/chunks/{243a4eed107d363dfad8.js → 887652bbdb3b71d0a089.js} +1 -1
- package/assets/esri/core/workers/chunks/896bfda379cf620b63ec.js +1 -0
- package/assets/esri/core/workers/chunks/91c9f0d59eaed7a735ce.js +1 -0
- package/assets/esri/core/workers/chunks/{1f7e041140088f8ac489.js → 97073a60f0ea2a397165.js} +1 -1
- package/assets/esri/core/workers/chunks/97658ac749664a07c92d.js +1 -0
- package/assets/esri/core/workers/chunks/{1da74a306aa5b4eacaae.js → 9866bbaeaf885c2dcca9.js} +1 -1
- package/assets/esri/core/workers/chunks/a39ae87298ac674f129d.js +1 -0
- package/assets/esri/core/workers/chunks/a7b3048c19348540e004.js +1 -0
- package/assets/esri/core/workers/chunks/a8ca4b116909e47722f9.js +1 -0
- package/assets/esri/core/workers/chunks/{101f776316a85b708927.js → a99070ec4c06c435b744.js} +1 -1
- package/assets/esri/core/workers/chunks/ab145d13932d87dd7bf9.js +1 -0
- package/assets/esri/core/workers/chunks/{77c15b1c2729c780f75a.js → aeeeb386134b341d7ad2.js} +1 -1
- package/assets/esri/core/workers/chunks/{3ca759f72d3bb29e9ea9.js → af54b233f6d6ad70b4a3.js} +2 -2
- package/assets/esri/core/workers/chunks/b9146daae8457224fd08.js +1 -0
- package/assets/esri/core/workers/chunks/bcdd2e8841abcb4df6da.js +1 -0
- package/assets/esri/core/workers/chunks/be05cc0cdabd5e051045.js +1 -0
- package/assets/esri/core/workers/chunks/c5f5f37bef11c6fbdc40.js +1 -0
- package/assets/esri/core/workers/chunks/d414dba3179bcf75bc6b.js +1 -0
- package/assets/esri/core/workers/chunks/{b449d6bd5851187d419f.js → d6e5408f9fa6b4bcd118.js} +1 -1
- package/assets/esri/core/workers/chunks/d9fb500cbd0f04d219a3.js +1 -0
- package/assets/esri/core/workers/chunks/e0dd6789fb797e9b7206.js +1 -0
- package/assets/esri/core/workers/chunks/{6f271249e042086d5a16.js → e4e49deae8da74f629db.js} +1 -1
- package/assets/esri/core/workers/chunks/e5dcff7a4fa84ba09670.js +1 -0
- package/assets/esri/core/workers/chunks/{f508ccfde6425dabe9ac.js → ee0bf611d191103a7046.js} +1 -1
- package/assets/esri/core/workers/chunks/{ed1fbc1bc8d50453e2f5.js → f793cd41fcd022baeea2.js} +1 -1
- package/assets/esri/core/workers/chunks/fad6a7bb82a0a2df726f.js +1 -0
- package/assets/esri/themes/base/widgets/_FeatureForm.scss +2 -84
- package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +2 -0
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/chunks/arcade.js +1 -1
- package/config.js +1 -1
- package/core/Accessor.js +1 -1
- package/core/accessorSupport/diffUtils.js +1 -1
- package/core/has.js +1 -1
- package/core/number.js +1 -1
- package/core/reactiveUtils.js +1 -1
- package/core/sql/DateOnly.js +1 -1
- package/core/sql/WhereClause.js +1 -1
- package/core/sql.js +1 -1
- package/core/timeUtils.js +1 -1
- package/identity/IdentityForm.js +1 -1
- package/identity/IdentityModal.js +1 -1
- package/interfaces.d.ts +48 -203
- package/layers/LinkChartLayer.js +1 -1
- package/layers/OrientedImageryLayer.js +1 -1
- package/layers/SceneLayer.js +1 -1
- package/layers/graphics/applyEditsUtils.js +5 -0
- package/layers/graphics/editingSupport.js +1 -1
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/knowledgeGraph/KnowledgeGraphLayerDataManager.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/mixins/EditBusLayer.js +1 -1
- package/layers/orientedImagery/core/CameraOrientationLTP.js +1 -1
- package/layers/orientedImagery/core/ElevationSourceDefinitions.js +5 -0
- package/layers/orientedImagery/core/ExposurePoint.js +1 -1
- package/layers/orientedImagery/core/cameraOrientationFactory.js +1 -1
- package/layers/orientedImagery/core/utils.js +5 -0
- package/layers/orientedImagery/transformations/groundToImageUtils.js +1 -1
- package/layers/support/fieldProperties.js +1 -1
- package/layers/support/fieldUtils.js +1 -1
- package/layers/support/imageryRendererUtils.js +1 -1
- package/layers/support/kmlUtils.js +1 -1
- package/layers/support/rasterFunctions/BaseRasterFunction.js +1 -1
- package/layers/support/rasterFunctions/creators/createDataManagementFunctions.js +1 -1
- package/networks/Network.js +1 -1
- package/package.json +1 -1
- package/request.js +1 -1
- package/rest/featureService/FeatureService.js +1 -1
- package/rest/support/DirectionsFeatureSet.js +1 -1
- package/smartMapping/renderers/pieChart.js +1 -1
- package/smartMapping/renderers/relationship.js +1 -1
- package/smartMapping/renderers/support/utils.js +1 -1
- package/smartMapping/statistics/support/ageUtils.js +1 -1
- package/smartMapping/support/adapters/support/utils.js +1 -1
- package/smartMapping/support/utils.js +1 -1
- package/support/apiKeyUtils.js +1 -1
- package/support/arcadeUtils.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/symbols/support/svgUtils.js +1 -1
- package/time/TimeReference.js +1 -1
- package/time/timeReferenceUtils.js +1 -1
- package/versionManagement/VersionManagementService.js +1 -1
- package/versionManagement/support/EditMomentStack.js +5 -0
- package/versionManagement/support/versionManagementUtils.js +1 -1
- package/views/2d/engine/Container.js +1 -1
- package/views/2d/engine/DisplayObject.js +1 -1
- package/views/2d/engine/ManagedCanvas.js +5 -0
- package/views/2d/engine/Stage.js +1 -1
- package/views/2d/engine/webgl/GroupContainer.js +1 -1
- package/views/2d/engine/webgl/Painter.js +1 -1
- package/views/2d/engine/webgl/WGLContainer.js +1 -1
- package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
- package/views/2d/engine/webgl/effects/FeatureEffect.js +1 -1
- package/views/2d/engine/webgl/effects/HighlightEffect.js +1 -1
- package/views/2d/engine/webgl/effects/HittestEffectVTL.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/interactive/editingTools/TransformTool.js +1 -1
- package/views/2d/layers/GeoRSSLayerView2D.js +1 -1
- package/views/2d/layers/MediaLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/WMTSLayerView2D.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
- package/views/2d/layers/features/tileRenderers/support/WGLFeatureView.js +1 -1
- package/views/2d/layers/graphics/BaseGraphicContainer.js +1 -1
- package/views/2d/layers/graphics/GraphicContainer.js +1 -1
- package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
- package/views/2d/layers/graphics/HighlightGraphicContainer.js +1 -1
- package/views/2d/layers/imagery/VectorFieldView2D.js +1 -1
- package/views/2d/layers/support/DisplayGL.js +1 -1
- package/views/2d/webglDeps.js +1 -1
- package/views/3d/glTF/loader.js +1 -1
- package/views/3d/interactive/editingTools/manipulations/MoveManipulation.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/isSupportedGraphic.js +1 -1
- package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/SceneLayerView3D.js +1 -1
- package/views/3d/layers/graphics/ElevationAligners.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Labeler.js +1 -1
- package/views/3d/layers/graphics/graphicUtils.js +1 -1
- package/views/3d/layers/i3s/featureEditing.js +1 -1
- package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
- package/views/3d/state/ViewStateManager.js +1 -1
- package/views/3d/support/buffer/glUtil.js +1 -1
- package/views/3d/support/engineContent/line.js +1 -1
- package/views/3d/support/viewpointUtils.js +1 -1
- package/views/3d/webgl-engine/Stage.js +1 -1
- package/views/3d/webgl-engine/effects/RenderPluginInput.js +1 -1
- package/views/3d/webgl-engine/effects/blit/Blit.js +5 -0
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
- package/views/3d/webgl-engine/lib/Geometry.js +1 -1
- package/views/3d/webgl-engine/lib/ModelDirtySet.js +1 -1
- package/views/3d/webgl-engine/lib/Object3D.js +1 -1
- package/views/3d/webgl-engine/lib/RenderSlot.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
- package/views/3d/webgl-engine/lib/TextTextureFactory.js +1 -1
- package/views/3d/webgl-engine/lib/VertexAttribute.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/edgeProcessing.js +1 -1
- package/views/View.js +1 -1
- package/views/interactive/tooltip/TooltipContentWithHelpMessage.js +1 -1
- package/views/interactive/tooltip/TooltipEditableField.js +1 -1
- package/views/interactive/tooltip/constraintUtils.js +1 -1
- package/views/interactive/tooltip/content/Fields.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawCircle.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawMesh.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawPoint.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawPolygon.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawPolyline.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawRectangle.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentExtentRotate.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentExtentScale.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentReshapeEdgeOffset.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTransformAbsolute.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTransformRotate.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTransformScale.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateGraphic.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateGraphicXY.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateGraphicZ.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateVertex.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateVertexXY.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateVertexZ.js +1 -1
- package/views/support/angularMeasurementUtils.js +1 -1
- package/views/ui/UI.js +1 -1
- package/views/webgl/ShaderTranspiler.js +1 -1
- package/views/webgl/Texture.js +1 -1
- package/views/webgl/contextUtils.js +1 -1
- package/webmap/InitialViewProperties.js +1 -1
- package/widgets/AreaMeasurement2D.js +1 -1
- package/widgets/AreaMeasurement3D.js +1 -1
- package/widgets/Attachments/AttachmentsViewModel.js +1 -1
- package/widgets/Attachments.js +1 -1
- package/widgets/Attribution.js +1 -1
- package/widgets/BasemapGallery.js +1 -1
- package/widgets/BasemapLayerList.js +1 -1
- package/widgets/BasemapToggle.js +1 -1
- package/widgets/Bookmarks.js +1 -1
- package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
- package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/Label.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/LevelItem.js +1 -1
- package/widgets/BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js +1 -1
- package/widgets/BuildingExplorer.js +1 -1
- package/widgets/Compass.js +1 -1
- package/widgets/CoordinateConversion.js +1 -1
- package/widgets/Daylight/support/SliderWithDropdown.js +1 -1
- package/widgets/Daylight.js +1 -1
- package/widgets/DirectLineMeasurement3D.js +1 -1
- package/widgets/DirectionalPad.js +1 -1
- package/widgets/Directions/components/SaveLayer.js +1 -1
- package/widgets/Directions.js +1 -1
- package/widgets/DistanceMeasurement2D.js +1 -1
- package/widgets/Editor/components/FooterActions.js +1 -1
- package/widgets/Editor/components/Notices.js +1 -1
- package/widgets/Editor/components/PanelContent.js +1 -1
- package/widgets/Editor/components/PanelToolbar.js +1 -1
- package/widgets/Editor/components/Prompt.js +1 -1
- package/widgets/Editor/components/Settings.js +1 -1
- package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
- package/widgets/Editor/components/UploadDetails.js +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/ElevationProfile/components/LegendItem.js +1 -1
- package/widgets/ElevationProfile/components/SettingsButton.js +1 -1
- package/widgets/ElevationProfile/components/Statistics.js +1 -1
- package/widgets/ElevationProfile.js +1 -1
- package/widgets/Expand.js +1 -1
- package/widgets/Feature/FeatureContent.js +1 -1
- package/widgets/Feature/FeatureExpression.js +1 -1
- package/widgets/Feature/FeatureFields.js +1 -1
- package/widgets/Feature/FeatureMedia.js +1 -1
- package/widgets/Feature/FeatureRelationship.js +1 -1
- package/widgets/Feature/FeatureViewModel.js +1 -1
- package/widgets/Feature/support/FeatureContentMixin.js +1 -1
- package/widgets/Feature/support/FeatureElementInfo.js +1 -1
- package/widgets/Feature.js +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
- package/widgets/FeatureForm/GroupInput.js +1 -1
- package/widgets/FeatureForm/css.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/Grid/Grid.js +1 -1
- package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/FeatureTemplates/ItemList.js +1 -1
- package/widgets/FeatureTemplates.js +1 -1
- package/widgets/Features/FeaturesRelatedRecords.js +1 -1
- package/widgets/Features.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/FloorFilter.js +1 -1
- package/widgets/Fullscreen.js +1 -1
- package/widgets/Histogram.js +1 -1
- package/widgets/HistogramRangeSlider.js +1 -1
- package/widgets/Home.js +1 -1
- package/widgets/LayerList/ListItemPanel.js +1 -1
- package/widgets/LayerList.js +1 -1
- package/widgets/Legend/LegendViewModel.js +1 -1
- package/widgets/Legend/styles/Card.js +1 -1
- package/widgets/Legend/styles/Classic.js +1 -1
- package/widgets/Legend/styles/support/relationshipUtils.js +1 -1
- package/widgets/Legend/styles/support/univariateUtils.js +1 -1
- package/widgets/LineOfSight.js +1 -1
- package/widgets/Locate.js +1 -1
- package/widgets/NavigationToggle.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/Popup.js +1 -1
- package/widgets/Print.js +1 -1
- package/widgets/ScaleRangeSlider/scalePreviewUtils.js +1 -1
- package/widgets/ScaleRangeSlider.js +1 -1
- package/widgets/Search/SearchResultRenderer.js +1 -1
- package/widgets/Search.js +1 -1
- package/widgets/ShadowCast/components/DiscreteConfigurator.js +1 -1
- package/widgets/ShadowCast/components/DurationConfigurator.js +1 -1
- package/widgets/ShadowCast/components/ShadowTooltipContent.js +1 -1
- package/widgets/ShadowCast/components/ThresholdConfigurator.js +1 -1
- package/widgets/ShadowCast.js +1 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/Slice.js +1 -1
- package/widgets/Slider.js +1 -1
- package/widgets/Swipe.js +1 -1
- package/widgets/TableList.js +1 -1
- package/widgets/TimeSlider.js +1 -1
- package/widgets/Track.js +1 -1
- package/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsLineSymbolPicker.js +1 -1
- package/widgets/UtilityNetworkAssociations.js +1 -1
- package/widgets/UtilityNetworkTrace.js +1 -1
- package/widgets/UtilityNetworkValidateTopology.js +1 -1
- package/widgets/ValuePicker.js +1 -1
- package/widgets/VideoPlayer/components/PlayerControlsGroup.js +1 -1
- package/widgets/VideoPlayer/components/SettingsButton.js +1 -1
- package/widgets/VideoPlayer.js +1 -1
- package/widgets/Weather/LabeledSlider.js +1 -1
- package/widgets/Weather.js +1 -1
- package/widgets/Zoom/IconButton.js +1 -1
- package/widgets/smartMapping/BinaryColorSizeSlider.js +1 -1
- package/widgets/smartMapping/ClassedColorSlider.js +1 -1
- package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
- package/widgets/smartMapping/ColorSizeSlider.js +1 -1
- package/widgets/smartMapping/ColorSlider.js +1 -1
- package/widgets/smartMapping/HeatmapSlider.js +1 -1
- package/widgets/smartMapping/OpacitySlider.js +1 -1
- package/widgets/smartMapping/SizeSlider.js +1 -1
- package/widgets/smartMapping/SmartMappingSliderBase.js +1 -1
- package/widgets/support/ColorPicker.js +1 -1
- package/widgets/support/DatePicker.js +1 -1
- package/widgets/support/Heading.js +1 -1
- package/widgets/support/LabeledSwitch.js +1 -1
- package/widgets/support/MeasurementWidgetContent.js +1 -1
- package/widgets/support/Popover.js +1 -1
- package/widgets/support/SelectionToolbar.js +1 -1
- package/widgets/support/SketchTooltipControls.js +1 -1
- package/widgets/support/SnappingControls.js +1 -1
- package/widgets/support/TimePicker.js +1 -1
- package/widgets/support/TimezonePicker.js +1 -1
- package/widgets/support/UnitSelect.js +1 -1
- package/widgets/support/dateUtils.js +1 -1
- package/assets/esri/core/workers/chunks/072b4e041b8630c513a0.js +0 -1
- package/assets/esri/core/workers/chunks/092920c25cac89c038ee.js +0 -1
- package/assets/esri/core/workers/chunks/114269dda1d296893908.js +0 -1
- package/assets/esri/core/workers/chunks/126df6237fc80608344e.js +0 -1
- package/assets/esri/core/workers/chunks/1b3655f5bf5d90fa8730.js +0 -1
- package/assets/esri/core/workers/chunks/1c83f47d446f2bca1721.js +0 -1
- package/assets/esri/core/workers/chunks/1cf7bb514e7eefc3e9c6.js +0 -1
- package/assets/esri/core/workers/chunks/21a9c8aa2a9e9990df41.js +0 -1
- package/assets/esri/core/workers/chunks/24629402c647ef6b5f6b.js +0 -1
- package/assets/esri/core/workers/chunks/2a1c1be9c202462cf54d.js +0 -1
- package/assets/esri/core/workers/chunks/2cb36f9686693234991a.js +0 -1
- package/assets/esri/core/workers/chunks/2d0d03cbea83c868edba.js +0 -1
- package/assets/esri/core/workers/chunks/2e130cb2f1038055c07b.js +0 -1
- package/assets/esri/core/workers/chunks/3619e04cbb6691549014.js +0 -1
- package/assets/esri/core/workers/chunks/3dbfb4f370a874393822.js +0 -1
- package/assets/esri/core/workers/chunks/406db5c90271a3a203d4.js +0 -1
- package/assets/esri/core/workers/chunks/4369a6c1e0a82ab4db6a.js +0 -1
- package/assets/esri/core/workers/chunks/4f4a424d1747d04501df.js +0 -1
- package/assets/esri/core/workers/chunks/59c00d6fba0fd1c03d01.js +0 -1
- package/assets/esri/core/workers/chunks/5a5720caa64a46daadf9.js +0 -1
- package/assets/esri/core/workers/chunks/5edb99b58549cd66b394.js +0 -1
- package/assets/esri/core/workers/chunks/6203ddf6caad3d356327.js +0 -1
- package/assets/esri/core/workers/chunks/650a317b6dc245a7060f.js +0 -1
- package/assets/esri/core/workers/chunks/7a358b1fd0c0cce59e9b.js +0 -1
- package/assets/esri/core/workers/chunks/83d1a1b3d371c991cc4c.js +0 -1
- package/assets/esri/core/workers/chunks/846b7a81b870c8b238a1.js +0 -1
- package/assets/esri/core/workers/chunks/8ab832468300cc4feb5a.js +0 -1
- package/assets/esri/core/workers/chunks/bc1dc6383e60e7e61d50.js +0 -1
- package/assets/esri/core/workers/chunks/bc6323bdc98013da6fe5.js +0 -1
- package/assets/esri/core/workers/chunks/c4bb67150ccd01ea6014.js +0 -1
- package/assets/esri/core/workers/chunks/c60cf62f374e71e562fc.js +0 -1
- package/assets/esri/core/workers/chunks/c6ea5aac232d1eca04dd.js +0 -1
- package/assets/esri/core/workers/chunks/c8438c2d9ac48afe4033.js +0 -1
- package/assets/esri/core/workers/chunks/c8f239c25fe864f0e47a.js +0 -1
- package/assets/esri/core/workers/chunks/cad260881653567bc8f9.js +0 -1
- package/assets/esri/core/workers/chunks/d824f4b405a72cd2fa74.js +0 -1
- package/assets/esri/core/workers/chunks/dd7508d4016715371e0c.js +0 -1
- package/assets/esri/core/workers/chunks/e55f7fc7eff0074ce0fc.js +0 -1
- package/assets/esri/core/workers/chunks/eef27d305023034084a4.js +0 -1
- package/assets/esri/core/workers/chunks/f38c54ada9e7012a2960.js +0 -1
- package/assets/esri/core/workers/chunks/f5e0ff5292b9fd18fc92.js +0 -1
- package/assets/esri/core/workers/chunks/f5eb8b5021620be7538e.js +0 -1
- package/core/watchUtils.d.ts +0 -4
- package/core/watchUtils.js +0 -5
package/widgets/Features.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import s from"../core/Logger.js";import{watch as o,when as r}from"../core/reactiveUtils.js";import{throttle as n}from"../core/throttle.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import d from"./Feature.js";import c from"./Spinner.js";import u from"./Widget.js";import{css as h}from"./Feature/resources.js";import{FeatureContentMixin as p}from"./Feature/support/FeatureContentMixin.js";import{css as m}from"./Features/css.js";import v from"./Features/FeaturesRelatedRecords.js";import g from"./Features/FeaturesViewModel.js";import w from"./Features/FeaturesVisibleElements.js";import{ActionsCollection as _}from"./Popup/actions.js";import{getPointFromGeometry as f}from"./Popup/actionUtils.js";import{loadCalciteComponents as F}from"./support/componentsUtils.js";import{globalCss as M}from"./support/globalCss.js";import{Heading as b}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as y}from"./support/decorators/messageBundle.js";import{vmEvent as I}from"./support/decorators/vmEvent.js";import{tsx as C}from"./support/jsxFactory.js";import{substitute as A}from"../intl/substitute.js";import{formatNumber as x}from"../intl/number.js";const R="selected-index",j=0,k="features-spinner";let N=class extends(p(u)){constructor(e,i){super(e,i),this._featureMenuIntersectionObserverCallback=([e])=>{e?.isIntersecting&&null!=this.viewModel.featurePage&&this.viewModel.featurePage++},this._featureMenuIntersectionObserver=new IntersectionObserver(this._featureMenuIntersectionObserverCallback,{root:window.document}),this._featureMenuIntersectionObserverNode=null,this._focusFeatureMenuFlowItem=!1,this._spinner=null,this._feature=null,this._relatedRecordsFlowItems=new t,this._relatedRecordsWidget=new v({flowItems:this._relatedRecordsFlowItems}),this._focusRootFlowItem=!1,this._rootFlowItemNode=null,this._featureMenuViewportNode=null,this.collapsed=!1,this.icon=null,this.featureNavigationTop=!1,this.headerActions=new _,this.headingLevel=2,this.messages=null,this.messagesCommon=null,this.responsiveActionsEnabled=!1,this.viewModel=new g,this.visibleElements=new w,this._renderAction=(e,t)=>{const i=this._getActionTitle(e),{type:s,active:o,uid:r,disabled:n,indicator:a}=e;return e.visible?C("calcite-action",{appearance:"solid",bind:this,icon:this._getActionIcon(e),onclick:this._triggerAction,"data-action-uid":r,disabled:n,indicator:a,loading:o,title:this._hideActionText?i:void 0,active:"toggle"===s&&e.value,key:`action-${t}`,text:i,scale:"s"},this._getFallbackIcon(e)):null},this._openFeatureMenu=()=>{this.featureMenuOpen=!0},this._previousFeature=()=>{this.viewModel.selectedFeatureIndex--},this._nextFeature=()=>{this.viewModel.selectedFeatureIndex++},this._handleFeatureMenuBack=()=>{this._focusRootFlowItem=!0,this.featureMenuOpen=!1,this.viewModel.browseClusterEnabled=!1},this._displaySpinnerThrottled=n((()=>this._displaySpinner()),j),this._addSelectedFeatureIndexHandle(),this.addHandles([this._displaySpinnerThrottled,o((()=>this.viewModel?.active),(()=>this._toggleScreenLocationEnabled())),o((()=>this.viewModel?.active),(e=>this._relatedRecordsWidget.closed=!e)),o((()=>this.visibleElements?.closeButton),(e=>this._relatedRecordsWidget.closable=e)),o((()=>this.visibleElements?.spinner),(e=>this._spinnerEnabledChange(e))),o((()=>this.viewModel?.view),((e,t)=>this._viewChange(e,t))),o((()=>this.viewModel?.view?.ready),((e,t)=>this._viewReadyChange(e??!1,t??!1))),o((()=>[this.viewModel?.waitingForResult,this.viewModel?.location]),(()=>{this._hideSpinner(),this._displaySpinnerThrottled()})),o((()=>this.selectedFeatureWidget),(()=>this._destroyRelatedRecordsFlowItemWidgets())),o((()=>{const e=this.selectedFeatureWidget?.viewModel;return[e?.title,e?.state]}),(()=>this._setTitleFromFeatureWidget())),o((()=>{const e=this.selectedFeatureWidget?.viewModel;return[e?.content,e?.state]}),(()=>this._setContentFromFeatureWidget())),o((()=>this.viewModel?.featureViewModels),(()=>this._featureMenuViewportScrollTop())),this._relatedRecordsWidget.on("close",(()=>this.close())),this._relatedRecordsWidget.on("exit",(()=>this._destroyRelatedRecordsFlowItemWidgets())),this._relatedRecordsWidget.on("open-related-feature",(({feature:e})=>this._openRelatedFeature(e)))])}loadDependencies(){return F({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar.js"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group.js"),button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow.js"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item.js"),"list-item-group":()=>import("@esri/calcite-components/dist/components/calcite-list-item-group.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js")})}destroy(){this._destroyRelatedRecordsFlowItemWidgets(),this._destroySelectedFeatureWidget(),this._destroySpinner(),this._unobserveFeatureMenuObserver(),this._featureMenuIntersectionObserver?.disconnect(),this._relatedRecordsWidget?.destroy()}get _hideActionText(){if(!this.responsiveActionsEnabled)return!1;const e=this.view?.widthBreakpoint;return"xsmall"===e||"small"===e||"medium"===e}get _featureNavigationVisible(){return this.viewModel.active&&this.viewModel.featureCount>1&&this.visibleElements.featureNavigation}get _isCollapsed(){return this._collapseEnabled&&this.collapsed}get _collapseEnabled(){return this.visibleElements.collapseButton&&!!this.title&&!!this.content}get content(){return this.viewModel.content}set content(e){this.viewModel.content=e}get featureMenuOpen(){return this.viewModel.featureMenuOpen}set featureMenuOpen(e){this.viewModel.featureMenuOpen=e}get features(){return this.viewModel.features}set features(e){this.viewModel.features=e}get location(){return this.viewModel.location}set location(e){this.viewModel.location=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get promises(){return this.viewModel.promises}set promises(e){this.viewModel.promises=e}get selectedFeature(){return this.viewModel.selectedFeature}get selectedFeatureIndex(){return this.viewModel.selectedFeatureIndex}set selectedFeatureIndex(e){this.viewModel.selectedFeatureIndex=e}get selectedFeatureWidget(){const{_feature:e,headingLevel:t,_relatedRecordsFlowItems:i}=this,{selectedFeatureViewModel:s}=this.viewModel,o={title:!1};return s?(e?(e.viewModel=s,e.visibleElements=o):this._feature=new d({flowItems:i,headingLevel:t+1,viewModel:s,visibleElements:o}),this._feature):null}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}get updateLocationEnabled(){return this.viewModel.updateLocationEnabled}set updateLocationEnabled(e){this.viewModel.updateLocationEnabled=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}blur(){const{active:e}=this.viewModel;e||s.getLogger(this.declaredClass).warn("Features can only be blurred when currently active."),this._rootFlowItemNode?.blur()}clear(){return this.viewModel.clear()}close(){this.viewModel.visible=!1}fetchFeatures(e,t){return this.viewModel.fetchFeatures(e,t)}focus(){const{container:e}=this,{active:t}=this.viewModel;if(t||s.getLogger(this.declaredClass).warn("Features can only be blurred when currently active."),!e)return;const i=e.querySelectorAll("calcite-flow-item"),o=i[i?.length-1];this.scheduleRender(),requestAnimationFrame((()=>o?.setFocus()))}next(){return this.viewModel.next()}open(e){this.removeHandles(R);const t={collapsed:e?.collapsed??!1};this.set(t),this.viewModel.open(e),this.addHandles(r((()=>!this.viewModel.waitingForResult),(()=>this._addSelectedFeatureIndexHandle()),{once:!0}))}previous(){return this.viewModel.previous()}triggerAction(e){return this.viewModel.triggerAction(e)}render(){return C("div",{class:this.classes(m.base,M.widget,M.panel)},this._renderHeader(),this._renderContentContainer())}_renderFeatureNavigation(){return[this._renderPagination(),this._renderFeatureMenuButton()]}_renderHeader(){return!this.featureMenuOpen&&this.featureNavigationTop&&this._featureNavigationVisible?C("div",{class:m.header,key:"header-actions"},this._renderFeatureNavigation()):null}_renderFooter(){return this.featureMenuOpen||this.featureNavigationTop||!this._featureNavigationVisible?null:C("div",{slot:"footer",class:m.footer,key:"footer-actions"},this._renderFeatureNavigation())}_renderFeatureMenuButton(){const{messages:e,viewModel:t}=this,{featureCount:i,selectedFeatureIndex:s,pendingPromisesCount:o}=t;return C("calcite-action",{loading:o>0,appearance:"solid",key:"feature-menu-button",bind:this,textEnabled:!0,label:e.selectFeature,text:A(e.pageText,{index:x(s+1),total:x(i)}),title:e.selectFeature,onclick:this._openFeatureMenu,icon:"list",scale:"s"})}_renderPagination(){const{previous:e,next:t}=this.messagesCommon.pagination;return C("calcite-action-bar",{layout:"horizontal",key:"pagination-action-bar",expandDisabled:!0,class:m.paginationActionBar,scale:"s",overflowActionsDisabled:!0},C("calcite-action-group",{scale:"s"},C("calcite-action",{appearance:"solid",class:m.paginationPrevious,label:e,title:e,text:e,iconFlipRtl:!0,icon:"chevron-left",onclick:this._previousFeature,scale:"s"}),C("calcite-action",{appearance:"solid",label:t,text:t,title:t,iconFlipRtl:!0,icon:"chevron-right",onclick:this._nextFeature,scale:"s"})))}_renderFeatureMenuItem(e){const{selectedFeatureViewModel:t,featureViewModels:i}=this.viewModel,s=e===t,o=i.indexOf(e);return C("calcite-list-item",{bind:this,key:`feature-menu-item-${e.uid}`,selected:s,onblur:this._removeActiveFeature,onfocus:this._setActiveFeature,onmouseover:this._setActiveFeature,onmouseleave:this._removeActiveFeature,"data-feature-index":o,onCalciteListItemSelect:this._selectFeature},C("span",{slot:"content",innerHTML:e.title||this.messagesCommon.untitled}))}_groupResultsByLayer(){const{featureViewModels:e}=this.viewModel,t=new Map;return e.forEach((e=>{const i=e?.graphic;if(!i)return;const s=i.sourceLayer??i.layer,o=t.get(s)??[];t.set(s,[...o,e])})),t}_renderFeatureMenu(){const{featureViewModels:e}=this.viewModel,t=this._groupResultsByLayer();return e.length?C("calcite-list",{selectionMode:"single",selectionAppearance:"icon"},Array.from(t.keys()).map((e=>C("calcite-list-item-group",{key:e?.uid||"untitled",heading:e?.title??this.messagesCommon.untitled},t.get(e)?.map((e=>this._renderFeatureMenuItem(e))))))):null}_renderCollapseAction(){const{messagesCommon:e,_collapseEnabled:t,_isCollapsed:i,featureNavigationTop:s}=this,o=i?e.expand:e.collapse,r=["chevron-up","chevron-down"];return s&&r.reverse(),t?C("calcite-action",{bind:this,class:m.actionCollapse,"aria-expanded":(!i).toString(),key:"collapse-button",icon:i?r[0]:r[1],slot:"header-actions-end",onclick:this._toggleCollapsed,text:e.collapse,title:o,scale:"m"}):null}_renderHeaderAction(e,t){return e.visible?C("calcite-action",{appearance:"solid",bind:this,slot:"header-actions-end",icon:e.icon||"",onclick:this._triggerHeaderAction,"data-action-uid":e.uid,disabled:e.disabled,indicator:e.indicator,loading:e.active,active:"toggle"===e.type&&e.value,key:`header-action-${t}`,text:e.title||"",title:e.title||"",scale:"m"}):null}_renderHeaderActions(){return this.headerActions.map(((e,t)=>this._renderHeaderAction(e,t))).toArray()}_renderContentFeature(){const{headingLevel:e,visibleElements:t}=this,{title:i,active:s}=this.viewModel,o=t.heading&&i?i:"";return C("calcite-flow-item",{bind:this,closed:!s,class:this.classes({[m.contentFeature]:!0,[m.flowItemCollapsed]:this._isCollapsed}),closable:t.closeButton,headingLevel:e,onCalciteFlowItemClose:this.close,afterCreate:this._focusRootFlowItemNode,afterUpdate:this._focusRootFlowItemNode,key:"root-flow-item",onkeydown:this._onMainKeydown},o?C(b,{class:this.classes(m.featuresHeading,M.heading),level:this.headingLevel,key:"header-content",slot:"header-content",innerHTML:o}):null,this._renderCollapseAction(),this._renderHeaderActions(),this._renderActionBar(),this._isCollapsed?null:C("div",{class:this.classes(m.container,m.contentContainer)},this._renderContent()),this._renderFooter())}_renderFeatureMenuContainer(){const{viewModel:e,featureMenuOpen:t,messages:i,messagesCommon:s}=this,{active:o,featureViewModels:r,pendingPromisesCount:n}=e;return t?C("calcite-flow-item",{bind:this,closable:!1,closed:!o,afterCreate:this._focusFeatureMenuFlowItemNode,afterUpdate:this._focusFeatureMenuFlowItemNode,loading:e.waitingForContents,heading:i.selectFeature,description:A(i.total,{total:r.length}),key:"feature-menu",onCalciteFlowItemBack:this._handleFeatureMenuBack},n>0?C("calcite-loader",{inline:!0,class:m.loader,key:"feature-menu-loader",scale:"m",label:s.loading,slot:"header-actions-end"}):null,C("div",{class:m.container},this._renderFeatureMenu()),C("div",{class:m.featureMenuObserver,bind:this,afterCreate:this._featureMenuIntersectionObserverCreated}),C("calcite-button",{onclick:this._handleFeatureMenuBack,slot:"footer-actions",appearance:"transparent",width:"full"},s.back)):null}_renderContentContainer(){const{content:e}=this.viewModel;return C("calcite-flow",{key:e??"content"},this._renderContentFeature(),this._renderFeatureMenuContainer(),this._relatedRecordsWidget.render())}_getIconStyles(e){return{"background-image":e?`url(${e})`:""}}_getActionImage(e){const{selectedFeature:t}=this,i=t?.attributes,{image:s}=e;return s&&i?A(s,i):s??""}_getFallbackIcon(e){const{className:t,icon:i}=e;if(i)return null;const s=this._getActionImage(e),o={[m.icon]:!!t,[m.actionImage]:!!s};return t&&(o[t]=!0),s||t?C("span",{key:"icon","aria-hidden":"true",class:this.classes(m.icon,o),styles:s&&this._getIconStyles(s)}):null}_renderActionBar(){return!this._isCollapsed&&this.visibleElements.actionBar&&this.viewModel.allActions?.length?C("calcite-action-bar",{key:"header-action-bar",expanded:!this._hideActionText,expandDisabled:!0,slot:"action-bar",scale:"s"},C("calcite-action-group",{scale:"s",overlayPositioning:"fixed"},this._renderActions())):null}_renderActions(){return this.viewModel.allActions.toArray().map(this._renderAction)}_renderContent(){const e=this.viewModel?.content;return e?"string"==typeof e?C("div",{class:h.contentNode,key:e,innerHTML:e}):this.renderNodeContent(e):null}_toggleCollapsed(){this.collapsed=!this.collapsed}async _openRelatedFeature(e){await e.viewModel.updateGeometry();const t=e.graphic,i=t?.geometry;if(null==i||null==t)return;this._destroyRelatedRecordsFlowItemWidgets(),await this.viewModel.zoomTo({target:i});const s=f(i);this.open({features:[t],location:null!=s?s:void 0})}_focusRootFlowItemNode(e){this._rootFlowItemNode=e,this._focusRootFlowItem&&(this._focusRootFlowItem=!1,requestAnimationFrame((()=>e?.setFocus())))}_focusFeatureMenuFlowItemNode(e){this._featureMenuViewportNode=e,this._focusFeatureMenuFlowItem&&(this._focusFeatureMenuFlowItem=!1,requestAnimationFrame((()=>e?.setFocus())))}_setActiveFeature(e){const{viewModel:t}=this,i=e.currentTarget["data-feature-index"];t.activeFeature=t.features?.[i]||null}_removeActiveFeature(){this.viewModel.activeFeature=null}_selectFeature(e){const t=e.currentTarget["data-feature-index"];isNaN(t)||(this.viewModel.selectedFeatureIndex=t),this.featureMenuOpen=!1,this._focusFeatureMenuFlowItem=!0}_unobserveFeatureMenuObserver(){this._featureMenuIntersectionObserverNode&&this._featureMenuIntersectionObserver.unobserve(this._featureMenuIntersectionObserverNode)}_featureMenuIntersectionObserverCreated(e){this._unobserveFeatureMenuObserver(),this._featureMenuIntersectionObserver.observe(e),this._featureMenuIntersectionObserverNode=e}_getActionIcon(e){return e.icon?e.icon:e.image||e.className?void 0:"question"}_getActionTitle(e){const{messages:t,selectedFeature:i,messagesCommon:s}=this,{id:o}=e,r=i?.attributes,n=e.title??"",a="zoom-to-feature"===o?A(n,{messages:t}):"remove-selected-feature"===o?A(n,{messages:s}):"zoom-to-clustered-features"===o||"browse-clustered-features"===o?A(n,{messages:t}):e.title;return a&&r?A(a,r):a??""}_onMainKeydown(e){const t=i(e);"ArrowLeft"===t&&(e.stopPropagation(),this.previous()),"ArrowRight"===t&&(e.stopPropagation(),this.next())}_featureMenuViewportScrollTop(){this._featureMenuViewportNode&&this._featureMenuViewportNode.scrollContentTo({top:0})}_setContentFromFeatureWidget(){const{selectedFeatureWidget:e}=this;e&&(this.viewModel.content=e)}_setTitleFromFeatureWidget(){const{selectedFeatureWidget:e,messagesCommon:t}=this,i=e?.viewModel;e&&(this.viewModel.title="error"===i?.state?t?.errorMessage:i?.title||"")}_addSelectedFeatureIndexHandle(){const e=o((()=>this.viewModel?.selectedFeatureIndex),((e,t)=>this._selectedFeatureIndexUpdated(e,t)));this.addHandles(e,R)}_selectedFeatureIndexUpdated(e,t){const{featureCount:i}=this.viewModel;i&&e!==t&&-1!==e&&(this._destroyRelatedRecordsFlowItemWidgets(),this.featureMenuOpen=!1,this._rootFlowItemNode&&this._rootFlowItemNode.scrollContentTo({top:0}))}_triggerHeaderAction(e){const t=e.currentTarget;if(t.disabled)return;const i=t.dataset.actionUid,s=this.headerActions.find((({uid:e})=>e===i));s&&!s.disabled&&("toggle"===s?.type&&(s.value=!s.value),this.emit("trigger-header-action",{action:s}))}_triggerAction(e){const t=e.currentTarget;if(t.disabled)return;const i=t.dataset.actionUid,{allActions:s}=this.viewModel,o=s.findIndex((e=>e.uid===i)),r=s.at(o);r&&"toggle"===r.type&&(r.value=!r.value),this.viewModel.triggerAction(o)}_createSpinner(e){e&&(this._spinner=new c({view:e}),e.ui.add(this._spinner,{key:k,position:"manual",internal:!0}))}_wireUpView(e){this._destroySpinner(),e&&this.visibleElements?.spinner&&this._createSpinner(e)}_hideSpinner(){const{_spinner:e}=this;e&&(e.location=null,e.hide())}_viewReadyChange(e,t){e?this._wireUpView(this.viewModel?.view):t&&this.viewModel.clear()}_viewChange(e,t){e&&t&&this.viewModel.clear()}_destroySelectedFeatureWidget(){const{_feature:e}=this;e&&(e.viewModel=null,!e.destroyed&&e.destroy()),this._feature=null}_destroyRelatedRecordsFlowItemWidgets(){this._relatedRecordsFlowItems.removeAll().forEach((e=>{"showAllEnabled"in e.viewModel&&(e.viewModel.showAllEnabled=!1),e.viewModel=null,e.destroy()}))}_toggleScreenLocationEnabled(){const{viewModel:e}=this;e&&(e.screenLocationEnabled=e.active)}_displaySpinner(){const{_spinner:e}=this;if(!e)return;const{location:t,waitingForResult:i}=this.viewModel;i&&t?e.show({location:t}):e.hide()}_destroySpinner(){const{_spinner:e,view:t}=this;e&&(t?.ui?.remove(e,k),e.destroy(),this._spinner=null)}_spinnerEnabledChange(e){this._destroySpinner(),e&&this._createSpinner(this.viewModel?.view)}};e([a()],N.prototype,"_focusFeatureMenuFlowItem",void 0),e([a()],N.prototype,"_relatedRecordsFlowItems",void 0),e([a()],N.prototype,"_focusRootFlowItem",void 0),e([a()],N.prototype,"_hideActionText",null),e([a()],N.prototype,"_featureNavigationVisible",null),e([a()],N.prototype,"_isCollapsed",null),e([a()],N.prototype,"_collapseEnabled",null),e([a()],N.prototype,"collapsed",void 0),e([a()],N.prototype,"content",null),e([a()],N.prototype,"icon",void 0),e([a()],N.prototype,"featureMenuOpen",null),e([a()],N.prototype,"featureNavigationTop",void 0),e([a()],N.prototype,"features",null),e([a({type:_})],N.prototype,"headerActions",void 0),e([a()],N.prototype,"headingLevel",void 0),e([a()],N.prototype,"location",null),e([a()],N.prototype,"label",null),e([a(),y("esri/widgets/Features/t9n/Features")],N.prototype,"messages",void 0),e([a(),y("esri/t9n/common")],N.prototype,"messagesCommon",void 0),e([a()],N.prototype,"promises",null),e([a()],N.prototype,"responsiveActionsEnabled",void 0),e([a({readOnly:!0})],N.prototype,"selectedFeature",null),e([a()],N.prototype,"selectedFeatureIndex",null),e([a({readOnly:!0})],N.prototype,"selectedFeatureWidget",null),e([a()],N.prototype,"title",null),e([a()],N.prototype,"updateLocationEnabled",null),e([a()],N.prototype,"view",null),e([a({type:g}),I(["triggerAction","trigger-action"])],N.prototype,"viewModel",void 0),e([a({type:w,nonNullable:!0})],N.prototype,"visibleElements",void 0),e([a()],N.prototype,"visible",null),N=e([l("esri.widgets.Features")],N);const E=N;export{E as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import s from"../core/Logger.js";import{watch as o,when as r}from"../core/reactiveUtils.js";import{throttle as n}from"../core/throttle.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import d from"./Feature.js";import c from"./Spinner.js";import u from"./Widget.js";import{css as h}from"./Feature/resources.js";import{FeatureContentMixin as p}from"./Feature/support/FeatureContentMixin.js";import{css as m}from"./Features/css.js";import v from"./Features/FeaturesRelatedRecords.js";import g from"./Features/FeaturesViewModel.js";import w from"./Features/FeaturesVisibleElements.js";import{ActionsCollection as _}from"./Popup/actions.js";import{getPointFromGeometry as f}from"./Popup/actionUtils.js";import{loadCalciteComponents as F}from"./support/componentsUtils.js";import{globalCss as M}from"./support/globalCss.js";import{Heading as b}from"./support/Heading.js";import"./support/widgetUtils.js";import{messageBundle as y}from"./support/decorators/messageBundle.js";import{vmEvent as I}from"./support/decorators/vmEvent.js";import{tsx as C}from"./support/jsxFactory.js";import{substitute as A}from"../intl/substitute.js";import{formatNumber as x}from"../intl/number.js";const R="selected-index",j=0,k="features-spinner";let N=class extends(p(u)){constructor(e,i){super(e,i),this._featureMenuIntersectionObserverCallback=([e])=>{e?.isIntersecting&&null!=this.viewModel.featurePage&&this.viewModel.featurePage++},this._featureMenuIntersectionObserver=new IntersectionObserver(this._featureMenuIntersectionObserverCallback,{root:window.document}),this._featureMenuIntersectionObserverNode=null,this._focusFeatureMenuFlowItem=!1,this._spinner=null,this._feature=null,this._relatedRecordsFlowItems=new t,this._relatedRecordsWidget=new v({flowItems:this._relatedRecordsFlowItems}),this._focusRootFlowItem=!1,this._rootFlowItemNode=null,this._featureMenuViewportNode=null,this.collapsed=!1,this.icon=null,this.featureNavigationTop=!1,this.headerActions=new _,this.headingLevel=2,this.messages=null,this.messagesCommon=null,this.responsiveActionsEnabled=!1,this.viewModel=new g,this.visibleElements=new w,this._renderAction=(e,t)=>{const i=this._getActionTitle(e),{type:s,active:o,uid:r,disabled:n,indicator:a}=e;return e.visible?C("calcite-action",{active:"toggle"===s&&e.value,appearance:"solid",bind:this,"data-action-uid":r,disabled:n,icon:this._getActionIcon(e),indicator:a,key:`action-${t}`,loading:o,onclick:this._triggerAction,scale:"s",text:i,title:this._hideActionText?i:void 0},this._getFallbackIcon(e)):null},this._openFeatureMenu=()=>{this.featureMenuOpen=!0},this._previousFeature=()=>{this.viewModel.selectedFeatureIndex--},this._nextFeature=()=>{this.viewModel.selectedFeatureIndex++},this._handleFeatureMenuBack=()=>{this._focusRootFlowItem=!0,this.featureMenuOpen=!1,this.viewModel.browseClusterEnabled=!1},this._displaySpinnerThrottled=n((()=>this._displaySpinner()),j),this._addSelectedFeatureIndexHandle(),this.addHandles([this._displaySpinnerThrottled,o((()=>this.viewModel?.active),(()=>this._toggleScreenLocationEnabled())),o((()=>this.viewModel?.active),(e=>this._relatedRecordsWidget.closed=!e)),o((()=>this.visibleElements?.closeButton),(e=>this._relatedRecordsWidget.closable=e)),o((()=>this.visibleElements?.spinner),(e=>this._spinnerEnabledChange(e))),o((()=>this.viewModel?.view),((e,t)=>this._viewChange(e,t))),o((()=>this.viewModel?.view?.ready),((e,t)=>this._viewReadyChange(e??!1,t??!1))),o((()=>[this.viewModel?.waitingForResult,this.viewModel?.location]),(()=>{this._hideSpinner(),this._displaySpinnerThrottled()})),o((()=>this.selectedFeatureWidget),(()=>this._destroyRelatedRecordsFlowItemWidgets())),o((()=>{const e=this.selectedFeatureWidget?.viewModel;return[e?.title,e?.state]}),(()=>this._setTitleFromFeatureWidget())),o((()=>{const e=this.selectedFeatureWidget?.viewModel;return[e?.content,e?.state]}),(()=>this._setContentFromFeatureWidget())),o((()=>this.viewModel?.featureViewModels),(()=>this._featureMenuViewportScrollTop())),this._relatedRecordsWidget.on("close",(()=>this.close())),this._relatedRecordsWidget.on("exit",(()=>this._destroyRelatedRecordsFlowItemWidgets())),this._relatedRecordsWidget.on("open-related-feature",(({feature:e})=>this._openRelatedFeature(e)))])}loadDependencies(){return F({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"action-bar":()=>import("@esri/calcite-components/dist/components/calcite-action-bar.js"),"action-group":()=>import("@esri/calcite-components/dist/components/calcite-action-group.js"),button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),flow:()=>import("@esri/calcite-components/dist/components/calcite-flow.js"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item.js"),"list-item-group":()=>import("@esri/calcite-components/dist/components/calcite-list-item-group.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js")})}destroy(){this._destroyRelatedRecordsFlowItemWidgets(),this._destroySelectedFeatureWidget(),this._destroySpinner(),this._unobserveFeatureMenuObserver(),this._featureMenuIntersectionObserver?.disconnect(),this._relatedRecordsWidget?.destroy()}get _hideActionText(){if(!this.responsiveActionsEnabled)return!1;const e=this.view?.widthBreakpoint;return"xsmall"===e||"small"===e||"medium"===e}get _featureNavigationVisible(){return this.viewModel.active&&this.viewModel.featureCount>1&&this.visibleElements.featureNavigation}get _isCollapsed(){return this._collapseEnabled&&this.collapsed}get _collapseEnabled(){return this.visibleElements.collapseButton&&!!this.title&&!!this.content}get content(){return this.viewModel.content}set content(e){this.viewModel.content=e}get featureMenuOpen(){return this.viewModel.featureMenuOpen}set featureMenuOpen(e){this.viewModel.featureMenuOpen=e}get features(){return this.viewModel.features}set features(e){this.viewModel.features=e}get location(){return this.viewModel.location}set location(e){this.viewModel.location=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get promises(){return this.viewModel.promises}set promises(e){this.viewModel.promises=e}get selectedFeature(){return this.viewModel.selectedFeature}get selectedFeatureIndex(){return this.viewModel.selectedFeatureIndex}set selectedFeatureIndex(e){this.viewModel.selectedFeatureIndex=e}get selectedFeatureWidget(){const{_feature:e,headingLevel:t,_relatedRecordsFlowItems:i}=this,{selectedFeatureViewModel:s}=this.viewModel,o={title:!1};return s?(e?(e.viewModel=s,e.visibleElements=o):this._feature=new d({flowItems:i,headingLevel:t+1,viewModel:s,visibleElements:o}),this._feature):null}get title(){return this.viewModel.title}set title(e){this.viewModel.title=e}get updateLocationEnabled(){return this.viewModel.updateLocationEnabled}set updateLocationEnabled(e){this.viewModel.updateLocationEnabled=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get visible(){return this.viewModel.visible}set visible(e){this.viewModel.visible=e}blur(){const{active:e}=this.viewModel;e||s.getLogger(this.declaredClass).warn("Features can only be blurred when currently active."),this._rootFlowItemNode?.blur()}clear(){return this.viewModel.clear()}close(){this.viewModel.visible=!1}fetchFeatures(e,t){return this.viewModel.fetchFeatures(e,t)}focus(){const{container:e}=this,{active:t}=this.viewModel;if(t||s.getLogger(this.declaredClass).warn("Features can only be blurred when currently active."),!e)return;const i=e.querySelectorAll("calcite-flow-item"),o=i[i?.length-1];this.scheduleRender(),requestAnimationFrame((()=>o?.setFocus()))}next(){return this.viewModel.next()}open(e){this.removeHandles(R);const t={collapsed:e?.collapsed??!1};this.set(t),this.viewModel.open(e),this.addHandles(r((()=>!this.viewModel.waitingForResult),(()=>this._addSelectedFeatureIndexHandle()),{once:!0}))}previous(){return this.viewModel.previous()}triggerAction(e){return this.viewModel.triggerAction(e)}render(){return C("div",{class:this.classes(m.base,M.widget,M.panel)},this._renderHeader(),this._renderContentContainer())}_renderFeatureNavigation(){return[this._renderPagination(),this._renderFeatureMenuButton()]}_renderHeader(){return!this.featureMenuOpen&&this.featureNavigationTop&&this._featureNavigationVisible?C("div",{class:m.header,key:"header-actions"},this._renderFeatureNavigation()):null}_renderFooter(){return this.featureMenuOpen||this.featureNavigationTop||!this._featureNavigationVisible?null:C("div",{class:m.footer,key:"footer-actions",slot:"footer"},this._renderFeatureNavigation())}_renderFeatureMenuButton(){const{messages:e,viewModel:t}=this,{featureCount:i,selectedFeatureIndex:s,pendingPromisesCount:o}=t;return C("calcite-action",{appearance:"solid",bind:this,icon:"list",key:"feature-menu-button",label:e.selectFeature,loading:o>0,onclick:this._openFeatureMenu,scale:"s",text:A(e.pageText,{index:x(s+1),total:x(i)}),textEnabled:!0,title:e.selectFeature})}_renderPagination(){const{previous:e,next:t}=this.messagesCommon.pagination;return C("calcite-action-bar",{class:m.paginationActionBar,expandDisabled:!0,key:"pagination-action-bar",layout:"horizontal",overflowActionsDisabled:!0,scale:"s"},C("calcite-action-group",{scale:"s"},C("calcite-action",{appearance:"solid",class:m.paginationPrevious,icon:"chevron-left",iconFlipRtl:!0,label:e,onclick:this._previousFeature,scale:"s",text:e,title:e}),C("calcite-action",{appearance:"solid",icon:"chevron-right",iconFlipRtl:!0,label:t,onclick:this._nextFeature,scale:"s",text:t,title:t})))}_renderFeatureMenuItem(e){const{selectedFeatureViewModel:t,featureViewModels:i}=this.viewModel,s=e===t,o=i.indexOf(e);return C("calcite-list-item",{bind:this,"data-feature-index":o,key:`feature-menu-item-${e.uid}`,onblur:this._removeActiveFeature,onfocus:this._setActiveFeature,onmouseleave:this._removeActiveFeature,onmouseover:this._setActiveFeature,selected:s,onCalciteListItemSelect:this._selectFeature},C("span",{innerHTML:e.title||this.messagesCommon.untitled,slot:"content"}))}_groupResultsByLayer(){const{featureViewModels:e}=this.viewModel,t=new Map;return e.forEach((e=>{const i=e?.graphic;if(!i)return;const s=i.sourceLayer??i.layer,o=t.get(s)??[];t.set(s,[...o,e])})),t}_renderFeatureMenu(){const{featureViewModels:e}=this.viewModel,t=this._groupResultsByLayer();return e.length?C("calcite-list",{selectionAppearance:"icon",selectionMode:"single"},Array.from(t.keys()).map((e=>C("calcite-list-item-group",{heading:e?.title??this.messagesCommon.untitled,key:e?.uid||"untitled"},t.get(e)?.map((e=>this._renderFeatureMenuItem(e))))))):null}_renderCollapseAction(){const{messagesCommon:e,_collapseEnabled:t,_isCollapsed:i,featureNavigationTop:s}=this,o=i?e.expand:e.collapse,r=["chevron-up","chevron-down"];return s&&r.reverse(),t?C("calcite-action",{"aria-expanded":(!i).toString(),bind:this,class:m.actionCollapse,icon:i?r[0]:r[1],key:"collapse-button",onclick:this._toggleCollapsed,scale:"m",slot:"header-actions-end",text:e.collapse,title:o}):null}_renderHeaderAction(e,t){return e.visible?C("calcite-action",{active:"toggle"===e.type&&e.value,appearance:"solid",bind:this,"data-action-uid":e.uid,disabled:e.disabled,icon:e.icon||"",indicator:e.indicator,key:`header-action-${t}`,loading:e.active,onclick:this._triggerHeaderAction,scale:"m",slot:"header-actions-end",text:e.title||"",title:e.title||""}):null}_renderHeaderActions(){return this.headerActions.map(((e,t)=>this._renderHeaderAction(e,t))).toArray()}_renderContentFeature(){const{headingLevel:e,visibleElements:t}=this,{title:i,active:s}=this.viewModel,o=t.heading&&i?i:"";return C("calcite-flow-item",{afterCreate:this._focusRootFlowItemNode,afterUpdate:this._focusRootFlowItemNode,bind:this,class:this.classes({[m.contentFeature]:!0,[m.flowItemCollapsed]:this._isCollapsed}),closable:t.closeButton,closed:!s,headingLevel:e,key:"root-flow-item",onkeydown:this._onMainKeydown,onCalciteFlowItemClose:this.close},o?C(b,{class:this.classes(m.featuresHeading,M.heading),innerHTML:o,key:"header-content",level:this.headingLevel,slot:"header-content"}):null,this._renderCollapseAction(),this._renderHeaderActions(),this._renderActionBar(),this._isCollapsed?null:C("div",{class:this.classes(m.container,m.contentContainer)},this._renderContent()),this._renderFooter())}_renderFeatureMenuContainer(){const{viewModel:e,featureMenuOpen:t,messages:i,messagesCommon:s}=this,{active:o,featureViewModels:r,pendingPromisesCount:n}=e;return t?C("calcite-flow-item",{afterCreate:this._focusFeatureMenuFlowItemNode,afterUpdate:this._focusFeatureMenuFlowItemNode,bind:this,closable:!1,closed:!o,description:A(i.total,{total:r.length}),heading:i.selectFeature,key:"feature-menu",loading:e.waitingForContents,onCalciteFlowItemBack:this._handleFeatureMenuBack},n>0?C("calcite-loader",{class:m.loader,inline:!0,key:"feature-menu-loader",label:s.loading,scale:"m",slot:"header-actions-end"}):null,C("div",{class:m.container},this._renderFeatureMenu()),C("div",{afterCreate:this._featureMenuIntersectionObserverCreated,bind:this,class:m.featureMenuObserver}),C("calcite-button",{appearance:"transparent",onclick:this._handleFeatureMenuBack,slot:"footer-actions",width:"full"},s.back)):null}_renderContentContainer(){const{content:e}=this.viewModel;return C("calcite-flow",{key:e??"content"},this._renderContentFeature(),this._renderFeatureMenuContainer(),this._relatedRecordsWidget.render())}_getIconStyles(e){return{"background-image":e?`url(${e})`:""}}_getActionImage(e){const{selectedFeature:t}=this,i=t?.attributes,{image:s}=e;return s&&i?A(s,i):s??""}_getFallbackIcon(e){const{className:t,icon:i}=e;if(i)return null;const s=this._getActionImage(e),o={[m.icon]:!!t,[m.actionImage]:!!s};return t&&(o[t]=!0),s||t?C("span",{"aria-hidden":"true",class:this.classes(m.icon,o),key:"icon",styles:s?this._getIconStyles(s):{}}):null}_renderActionBar(){return!this._isCollapsed&&this.visibleElements.actionBar&&this.viewModel.allActions?.length?C("calcite-action-bar",{expandDisabled:!0,expanded:!this._hideActionText,key:"header-action-bar",scale:"s",slot:"action-bar"},C("calcite-action-group",{overlayPositioning:"fixed",scale:"s"},this._renderActions())):null}_renderActions(){return this.viewModel.allActions.toArray().map(this._renderAction)}_renderContent(){const e=this.viewModel?.content;return e?"string"==typeof e?C("div",{class:h.contentNode,innerHTML:e,key:e}):this.renderNodeContent(e):null}_toggleCollapsed(){this.collapsed=!this.collapsed}async _openRelatedFeature(e){await e.viewModel.updateGeometry();const t=e.graphic,i=t?.geometry;if(null==i||null==t)return;this._destroyRelatedRecordsFlowItemWidgets(),await this.viewModel.zoomTo({target:i});const s=f(i);this.open({features:[t],location:null!=s?s:void 0})}_focusRootFlowItemNode(e){this._rootFlowItemNode=e,this._focusRootFlowItem&&(this._focusRootFlowItem=!1,requestAnimationFrame((()=>e?.setFocus())))}_focusFeatureMenuFlowItemNode(e){this._featureMenuViewportNode=e,this._focusFeatureMenuFlowItem&&(this._focusFeatureMenuFlowItem=!1,requestAnimationFrame((()=>e?.setFocus())))}_setActiveFeature(e){const{viewModel:t}=this,i=e.currentTarget["data-feature-index"];t.activeFeature=t.features?.[i]||null}_removeActiveFeature(){this.viewModel.activeFeature=null}_selectFeature(e){const t=e.currentTarget["data-feature-index"];isNaN(t)||(this.viewModel.selectedFeatureIndex=t),this.featureMenuOpen=!1,this._focusFeatureMenuFlowItem=!0}_unobserveFeatureMenuObserver(){this._featureMenuIntersectionObserverNode&&this._featureMenuIntersectionObserver.unobserve(this._featureMenuIntersectionObserverNode)}_featureMenuIntersectionObserverCreated(e){this._unobserveFeatureMenuObserver(),this._featureMenuIntersectionObserver.observe(e),this._featureMenuIntersectionObserverNode=e}_getActionIcon(e){return e.icon?e.icon:e.image||e.className?void 0:"question"}_getActionTitle(e){const{messages:t,selectedFeature:i,messagesCommon:s}=this,{id:o}=e,r=i?.attributes,n=e.title??"",a="zoom-to-feature"===o?A(n,{messages:t}):"remove-selected-feature"===o?A(n,{messages:s}):"zoom-to-clustered-features"===o||"browse-clustered-features"===o?A(n,{messages:t}):e.title;return a&&r?A(a,r):a??""}_onMainKeydown(e){const t=i(e);"ArrowLeft"===t&&(e.stopPropagation(),this.previous()),"ArrowRight"===t&&(e.stopPropagation(),this.next())}_featureMenuViewportScrollTop(){this._featureMenuViewportNode&&this._featureMenuViewportNode.scrollContentTo({top:0})}_setContentFromFeatureWidget(){const{selectedFeatureWidget:e}=this;e&&(this.viewModel.content=e)}_setTitleFromFeatureWidget(){const{selectedFeatureWidget:e,messagesCommon:t}=this,i=e?.viewModel;e&&(this.viewModel.title="error"===i?.state?t?.errorMessage:i?.title||"")}_addSelectedFeatureIndexHandle(){const e=o((()=>this.viewModel?.selectedFeatureIndex),((e,t)=>this._selectedFeatureIndexUpdated(e,t)));this.addHandles(e,R)}_selectedFeatureIndexUpdated(e,t){const{featureCount:i}=this.viewModel;i&&e!==t&&-1!==e&&(this._destroyRelatedRecordsFlowItemWidgets(),this.featureMenuOpen=!1,this._rootFlowItemNode&&this._rootFlowItemNode.scrollContentTo({top:0}))}_triggerHeaderAction(e){const t=e.currentTarget;if(t.disabled)return;const i=t.dataset.actionUid,s=this.headerActions.find((({uid:e})=>e===i));s&&!s.disabled&&("toggle"===s?.type&&(s.value=!s.value),this.emit("trigger-header-action",{action:s}))}_triggerAction(e){const t=e.currentTarget;if(t.disabled)return;const i=t.dataset.actionUid,{allActions:s}=this.viewModel,o=s.findIndex((e=>e.uid===i)),r=s.at(o);r&&"toggle"===r.type&&(r.value=!r.value),this.viewModel.triggerAction(o)}_createSpinner(e){e&&(this._spinner=new c({view:e}),e.ui.add(this._spinner,{key:k,position:"manual",internal:!0}))}_wireUpView(e){this._destroySpinner(),e&&this.visibleElements?.spinner&&this._createSpinner(e)}_hideSpinner(){const{_spinner:e}=this;e&&(e.location=null,e.hide())}_viewReadyChange(e,t){e?this._wireUpView(this.viewModel?.view):t&&this.viewModel.clear()}_viewChange(e,t){e&&t&&this.viewModel.clear()}_destroySelectedFeatureWidget(){const{_feature:e}=this;e&&(e.viewModel=null,!e.destroyed&&e.destroy()),this._feature=null}_destroyRelatedRecordsFlowItemWidgets(){this._relatedRecordsFlowItems.removeAll().forEach((e=>{"showAllEnabled"in e.viewModel&&(e.viewModel.showAllEnabled=!1),e.viewModel=null,e.destroy()}))}_toggleScreenLocationEnabled(){const{viewModel:e}=this;e&&(e.screenLocationEnabled=e.active)}_displaySpinner(){const{_spinner:e}=this;if(!e)return;const{location:t,waitingForResult:i}=this.viewModel;i&&t?e.show({location:t}):e.hide()}_destroySpinner(){const{_spinner:e,view:t}=this;e&&(t?.ui?.remove(e,k),e.destroy(),this._spinner=null)}_spinnerEnabledChange(e){this._destroySpinner(),e&&this._createSpinner(this.viewModel?.view)}};e([a()],N.prototype,"_focusFeatureMenuFlowItem",void 0),e([a()],N.prototype,"_relatedRecordsFlowItems",void 0),e([a()],N.prototype,"_focusRootFlowItem",void 0),e([a()],N.prototype,"_hideActionText",null),e([a()],N.prototype,"_featureNavigationVisible",null),e([a()],N.prototype,"_isCollapsed",null),e([a()],N.prototype,"_collapseEnabled",null),e([a()],N.prototype,"collapsed",void 0),e([a()],N.prototype,"content",null),e([a()],N.prototype,"icon",void 0),e([a()],N.prototype,"featureMenuOpen",null),e([a()],N.prototype,"featureNavigationTop",void 0),e([a()],N.prototype,"features",null),e([a({type:_})],N.prototype,"headerActions",void 0),e([a()],N.prototype,"headingLevel",void 0),e([a()],N.prototype,"location",null),e([a()],N.prototype,"label",null),e([a(),y("esri/widgets/Features/t9n/Features")],N.prototype,"messages",void 0),e([a(),y("esri/t9n/common")],N.prototype,"messagesCommon",void 0),e([a()],N.prototype,"promises",null),e([a()],N.prototype,"responsiveActionsEnabled",void 0),e([a({readOnly:!0})],N.prototype,"selectedFeature",null),e([a()],N.prototype,"selectedFeatureIndex",null),e([a({readOnly:!0})],N.prototype,"selectedFeatureWidget",null),e([a()],N.prototype,"title",null),e([a()],N.prototype,"updateLocationEnabled",null),e([a()],N.prototype,"view",null),e([a({type:g}),I(["triggerAction","trigger-action"])],N.prototype,"viewModel",void 0),e([a({type:w,nonNullable:!0})],N.prototype,"visibleElements",void 0),e([a()],N.prototype,"visible",null),N=e([l("esri.widgets.Features")],N);const E=N;export{E as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Accessor.js";import{createTask as i}from"../../core/asyncUtils.js";import s from"../../core/Collection.js";import l from"../../core/Error.js";import{throwIfAborted as r}from"../../core/promiseUtils.js";import{watch as o,initial as a,syncAndInitial as n}from"../../core/reactiveUtils.js";import{Milliseconds as h}from"../../core/time.js";import{property as d}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as c}from"../../core/accessorSupport/decorators/subclass.js";import u from"../../webdoc/Widgets.js";import f from"../../webdoc/widgets/FloorFilter.js";import{GoToMixin as y}from"../support/GoTo.js";function p(e){return"esri.WebMap"===e.declaredClass}function v(e){return"esri.WebScene"===e.declaredClass}let m=class extends(y(t)){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,this._viewHeightBreakpoint=null,this._viewWidthBreakpoint=null}initialize(){this.addHandles([o((()=>this.view?.map),(e=>{null!=this._updateFloorFilterTask&&(this._updateFloorFilterTask.abort(),this._updateFloorFilterTask=null),this._updateFloorFilterTask=i((async t=>{await this._updateFloorFilterFromMap(e),r(t),this._setInitialViewState(e)}))}),a),o((()=>this.view),((e,t)=>{this._unregisterWidget(t),this._registerWidget(e),this._watchSearchResults(e)}),n),o((()=>this.view?.widthBreakpoint??null),(e=>{this._viewWidthBreakpoint=e})),o((()=>this.view?.heightBreakpoint??null),(e=>{this._viewHeightBreakpoint=e}))])}destroy(){this._unregisterWidget(this.view),this.view=null,null!=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||null)}this._callOverride("facility",e)}set filterFeatures(e){this._callOverride("filterFeatures",e)}set filterLayers(e){this._callOverride("filterLayers",e)}get hasFacilities(){return null!=this.filterLayers?.facilityLayer&&this.filterFeatures?.facilities?.facilitiesInfo?.length>0}get hasLevels(){return null!=this.filterLayers?.levelLayer&&this.filterFeatures?.levels?.levelsInfo?.length>0}get hasMultipleSites(){return null!=this.filterLayers?.siteLayer&&this.filterFeatures?.sites?.sitesInfo?.length>1}get isNormalMode(){let e=!0;const t=this._viewWidthBreakpoint;return"xsmall"!==this._viewHeightBreakpoint&&"xsmall"!==t||(e=!1),e}set level(e){if(!e)return this._callOverride("level",e),this.facility=null,this.site=null,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??null),this.level!==e||this.isNormalMode||this.levelsExpanded)t&&this.hasFacilities&&this.hasLevels?(this.facility=i,this.hasMultipleSites&&(this.site=this.getFacility(i)?.siteId||null),this.setFloors(t)):this._isOverridden("level")&&(this.facility=null,this.site=null,this.hasMultipleSites&&(this.filterMenuType="site"),this.setFloors(null)),this._callOverride("level",e);else{const e=this.getFacilityLevels(i);e?.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;if(t&&t.length>0&&(t.forEach((e=>{0===e.verticalOrder&&e.facilityId===s&&(i=e)})),!i)){let e=null;t.forEach((t=>{t.facilityId===s&&(e?(t.verticalOrder??0)>=0?null!=e.verticalOrder&&(e.verticalOrder<0||(t.verticalOrder??0)<e.verticalOrder)&&(e=t):null!=e.verticalOrder&&null!=t.verticalOrder&&e.verticalOrder<0&&t.verticalOrder>e.verticalOrder&&(e=t):e=t)})),e&&(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??0,s=t.verticalOrder??0;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;i&&i.extent&&this.callGoTo({target:i.extent,options:{duration:h(1e3),easing:"in-out-quad"}})}setFloors(e){const{view:t}=this;t&&(t?.map?.allLayers?.forEach((e=>{"feature"===e.type&&this._computeViewAllModeFloors(e)})),t.floors=new s(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 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(e&&!this._isOverridden("filterLayers")){if(!p(e.map)&&!v(e.map))throw new l("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,d=h?.items;(n===s||n===l||n===r)&&d?.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,t,i]=await Promise.all([this._getSites(),this._getFacilities(),this._getLevels()]);return{sites:e,facilities:t,levels:i}}async _getSites(){const e={sitesInfo:[]},{filterLayers:t,view:i}=this,s=i?.map,{siteLayer:l}=t;if(!l||!s?.floorInfo?.siteLayer)return e;const r=l.createQuery();r.returnGeometry=!0,r.outFields=["*"],r.returnZ=!0,"type"in l&&"scene"===l.type&&(r.multipatchOption="xyFootprint");const{siteIdField:o,nameField:a}=s.floorInfo.siteLayer,n=await l.queryFeatures(r);if(n?.features?.length>0){const t=n.features,i=l?.fieldsIndex.get(o)?.name||o,s=l?.fieldsIndex.get(a)?.name||a;null!=i&&null!=s&&t.forEach((t=>{const l=t.attributes,r=t.geometry,o=l[i],a=l[s];o&&a&&e.sitesInfo.push({id:o,name:a,geometry:r})}))}return e}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){const e=h.features,t=s?.fieldsIndex.get(o)?.name||o,i=s?.fieldsIndex.get(a)?.name||a,r=s?.fieldsIndex.get(n)?.name||n;t&&i&&r&&e.forEach((e=>{const s=e.attributes,o=e.geometry,a=s[t],n=s[i],h=s[r];a&&h&&l.facilitiesInfo.push({id:a,siteId:n,name:h,geometry:o})}))}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:d,verticalOrderField:c}=i.floorInfo.levelLayer,u=await s.queryFeatures(r);if(u?.features?.length>0){const e=u.features,t=s?.fieldsIndex.get(o)?.name||o,i=s?.fieldsIndex.get(a)?.name||a,r=s?.fieldsIndex.get(n)?.name||n,f=s?.fieldsIndex.get(h)?.name||h,y=s?.fieldsIndex.get(d)?.name||d,p=s?.fieldsIndex.get(c)?.name||c;t&&i&&r&&f&&y&&p&&e.forEach((e=>{const s=e.attributes,o=s[t],a=s[i],n=s[r],h=s[f],d=s[y],c=s[p];o&&a&&n&&h&&"number"==typeof d&&"number"==typeof c&&l.levelsInfo.push({id:o,facilityId:a,longName:n,shortName:h,levelNumber:d,verticalOrder:c})}))}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)}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)}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)}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.filterMenuType="facility"),this.setFloors(null)}else this.filterMenuType="site",this.setFloors(null)}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:t}=this;if(e.floorInfo?.viewAllMode&&this.hasLevels&&this.hasFacilities&&"base-floors"===this.filterMode){const{level:i,facility:l}=this,r=[];t.levels.levelsInfo.forEach((e=>{const{id:t,facilityId:s}=e;l&&s===l?i&&t===i&&r.push(t):r.push(t)})),e.floorInfo.viewAllLevelIds=new s(r)}}};e([d({value:!1})],m.prototype,"enabled",null),e([d({value:void 0})],m.prototype,"facility",null),e([d({value:null})],m.prototype,"filterFeatures",null),e([d({value:null})],m.prototype,"filterLayers",null),e([d()],m.prototype,"filterMenuOpen",void 0),e([d()],m.prototype,"filterMenuType",void 0),e([d()],m.prototype,"filterMode",void 0),e([d()],m.prototype,"hasFacilities",null),e([d()],m.prototype,"hasLevels",null),e([d()],m.prototype,"hasMultipleSites",null),e([d({readOnly:!0})],m.prototype,"isNormalMode",null),e([d({value:void 0})],m.prototype,"level",null),e([d({value:!1})],m.prototype,"longNames",null),e([d()],m.prototype,"levelsExpanded",void 0),e([d({value:!1})],m.prototype,"minimized",null),e([d({value:!1})],m.prototype,"pinnedLevels",null),e([d()],m.prototype,"searchTerm",void 0),e([d({value:void 0})],m.prototype,"site",null),e([d({readOnly:!0})],m.prototype,"state",null),e([d()],m.prototype,"view",void 0),e([d()],m.prototype,"_viewHeightBreakpoint",void 0),e([d()],m.prototype,"_viewWidthBreakpoint",void 0),e([d()],m.prototype,"updateWebDocument",null),m=e([c("esri/widgets/FloorFilter/FloorFilterViewModel")],m);const F=m;export{F as default};
|
|
5
|
+
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../core/Accessor.js";import{createTask as i}from"../../core/asyncUtils.js";import s from"../../core/Collection.js";import l from"../../core/Error.js";import{throwIfAborted as r}from"../../core/promiseUtils.js";import{watch as o,initial as a,syncAndInitial as n}from"../../core/reactiveUtils.js";import{Milliseconds as h}from"../../core/time.js";import{property as d}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as c}from"../../core/accessorSupport/decorators/subclass.js";import u from"../../webdoc/Widgets.js";import f from"../../webdoc/widgets/FloorFilter.js";import{GoToMixin as y}from"../support/GoTo.js";function p(e){return"esri.WebMap"===e.declaredClass}function v(e){return"esri.WebScene"===e.declaredClass}let m=class extends(y(t)){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,this._viewHeightBreakpoint=null,this._viewWidthBreakpoint=null}initialize(){this.addHandles([o((()=>this.view?.map),(e=>{null!=this._updateFloorFilterTask&&(this._updateFloorFilterTask.abort(),this._updateFloorFilterTask=null),this._updateFloorFilterTask=i((async t=>{await this._updateFloorFilterFromMap(e),r(t),this._setInitialViewState(e)}))}),a),o((()=>this.view),((e,t)=>{this._unregisterWidget(t),this._registerWidget(e),this._watchSearchResults(e)}),n),o((()=>this.view?.widthBreakpoint??null),(e=>{this._viewWidthBreakpoint=e})),o((()=>this.view?.heightBreakpoint??null),(e=>{this._viewHeightBreakpoint=e}))])}destroy(){this._unregisterWidget(this.view),this.view=null,null!=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||null)}this._callOverride("facility",e)}set filterFeatures(e){this._callOverride("filterFeatures",e)}set filterLayers(e){this._callOverride("filterLayers",e)}get hasFacilities(){return null!=this.filterLayers?.facilityLayer&&this.filterFeatures?.facilities?.facilitiesInfo?.length>0}get hasLevels(){return null!=this.filterLayers?.levelLayer&&this.filterFeatures?.levels?.levelsInfo?.length>0}get hasMultipleSites(){return null!=this.filterLayers?.siteLayer&&this.filterFeatures?.sites?.sitesInfo?.length>1}get isNormalMode(){let e=!0;const t=this._viewWidthBreakpoint;return"xsmall"!==this._viewHeightBreakpoint&&"xsmall"!==t||(e=!1),e}set level(e){if(!e)return this._callOverride("level",e),this.facility=null,this.site=null,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??null),this.level!==e||this.isNormalMode||this.levelsExpanded)t&&this.hasFacilities&&this.hasLevels?(this.facility=i,this.hasMultipleSites&&(this.site=this.getFacility(i)?.siteId||null),this.setFloors(t)):this._isOverridden("level")&&(this.facility=null,this.site=null,this.hasMultipleSites&&(this.filterMenuType="site"),this.setFloors(null)),this._callOverride("level",e);else{const e=this.getFacilityLevels(i);e?.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.localeCompare(s,void 0,{sensitivity:"base"})}))}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.localeCompare(s,void 0,{sensitivity:"base"})}))}getBaseLevel(e){const t=this.filterFeatures?.levels?.levelsInfo;let i=null;if(e){const{id:s}=e;if(t&&t.length>0&&(t.forEach((e=>{0===e.verticalOrder&&e.facilityId===s&&(i=e)})),!i)){let e=null;t.forEach((t=>{t.facilityId===s&&(e?(t.verticalOrder??0)>=0?null!=e.verticalOrder&&(e.verticalOrder<0||(t.verticalOrder??0)<e.verticalOrder)&&(e=t):null!=e.verticalOrder&&null!=t.verticalOrder&&e.verticalOrder<0&&t.verticalOrder>e.verticalOrder&&(e=t):e=t)})),e&&(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??0,s=t.verticalOrder??0;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;i&&i.extent&&this.callGoTo({target:i.extent,options:{duration:h(1e3),easing:"in-out-quad"}})}setFloors(e){const{view:t}=this;t&&(t?.map?.allLayers?.forEach((e=>{"feature"===e.type&&this._computeViewAllModeFloors(e)})),t.floors=new s(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 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(e&&!this._isOverridden("filterLayers")){if(!p(e.map)&&!v(e.map))throw new l("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,d=h?.items;(n===s||n===l||n===r)&&d?.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,t,i]=await Promise.all([this._getSites(),this._getFacilities(),this._getLevels()]);return{sites:e,facilities:t,levels:i}}async _getSites(){const e={sitesInfo:[]},{filterLayers:t,view:i}=this,s=i?.map,{siteLayer:l}=t;if(!l||!s?.floorInfo?.siteLayer)return e;const r=l.createQuery();r.returnGeometry=!0,r.outFields=["*"],r.returnZ=!0,"type"in l&&"scene"===l.type&&(r.multipatchOption="xyFootprint");const{siteIdField:o,nameField:a}=s.floorInfo.siteLayer,n=await l.queryFeatures(r);if(n?.features?.length>0){const t=n.features,i=l?.fieldsIndex.get(o)?.name||o,s=l?.fieldsIndex.get(a)?.name||a;null!=i&&null!=s&&t.forEach((t=>{const l=t.attributes,r=t.geometry,o=l[i],a=l[s];o&&a&&e.sitesInfo.push({id:o,name:a,geometry:r})}))}return e}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){const e=h.features,t=s?.fieldsIndex.get(o)?.name||o,i=s?.fieldsIndex.get(a)?.name||a,r=s?.fieldsIndex.get(n)?.name||n;t&&i&&r&&e.forEach((e=>{const s=e.attributes,o=e.geometry,a=s[t],n=s[i],h=s[r];a&&h&&l.facilitiesInfo.push({id:a,siteId:n,name:h,geometry:o})}))}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:d,verticalOrderField:c}=i.floorInfo.levelLayer,u=await s.queryFeatures(r);if(u?.features?.length>0){const e=u.features,t=s?.fieldsIndex.get(o)?.name||o,i=s?.fieldsIndex.get(a)?.name||a,r=s?.fieldsIndex.get(n)?.name||n,f=s?.fieldsIndex.get(h)?.name||h,y=s?.fieldsIndex.get(d)?.name||d,p=s?.fieldsIndex.get(c)?.name||c;t&&i&&r&&f&&y&&p&&e.forEach((e=>{const s=e.attributes,o=s[t],a=s[i],n=s[r],h=s[f],d=s[y],c=s[p];o&&a&&n&&h&&"number"==typeof d&&"number"==typeof c&&l.levelsInfo.push({id:o,facilityId:a,longName:n,shortName:h,levelNumber:d,verticalOrder:c})}))}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)}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)}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)}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.filterMenuType="facility"),this.setFloors(null)}else this.filterMenuType="site",this.setFloors(null)}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:t}=this;if(e.floorInfo?.viewAllMode&&this.hasLevels&&this.hasFacilities&&"base-floors"===this.filterMode){const{level:i,facility:l}=this,r=[];t.levels.levelsInfo.forEach((e=>{const{id:t,facilityId:s}=e;l&&s===l?i&&t===i&&r.push(t):r.push(t)})),e.floorInfo.viewAllLevelIds=new s(r)}}};e([d({value:!1})],m.prototype,"enabled",null),e([d({value:void 0})],m.prototype,"facility",null),e([d({value:null})],m.prototype,"filterFeatures",null),e([d({value:null})],m.prototype,"filterLayers",null),e([d()],m.prototype,"filterMenuOpen",void 0),e([d()],m.prototype,"filterMenuType",void 0),e([d()],m.prototype,"filterMode",void 0),e([d()],m.prototype,"hasFacilities",null),e([d()],m.prototype,"hasLevels",null),e([d()],m.prototype,"hasMultipleSites",null),e([d({readOnly:!0})],m.prototype,"isNormalMode",null),e([d({value:void 0})],m.prototype,"level",null),e([d({value:!1})],m.prototype,"longNames",null),e([d()],m.prototype,"levelsExpanded",void 0),e([d({value:!1})],m.prototype,"minimized",null),e([d({value:!1})],m.prototype,"pinnedLevels",null),e([d()],m.prototype,"searchTerm",void 0),e([d({value:void 0})],m.prototype,"site",null),e([d({readOnly:!0})],m.prototype,"state",null),e([d()],m.prototype,"view",void 0),e([d()],m.prototype,"_viewHeightBreakpoint",void 0),e([d()],m.prototype,"_viewWidthBreakpoint",void 0),e([d()],m.prototype,"updateWebDocument",null),m=e([c("esri/widgets/FloorFilter/FloorFilterViewModel")],m);const F=m;export{F as default};
|
package/widgets/FloorFilter.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{eventKey as t}from"../core/events.js";import{watch as s}from"../core/reactiveUtils.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import o from"./Widget.js";import{css as n}from"./FloorFilter/css.js";import r from"./FloorFilter/FloorFilterViewModel.js";import{globalCss as a}from"./support/globalCss.js";import{Heading as c,incrementHeadingLevel as d}from"./support/Heading.js";import{legacyIcon as h}from"./support/legacyIcon.js";import{isRTL as u,storeNode as v}from"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as p}from"./support/jsxFactory.js";import{substitute as M}from"../intl/substitute.js";const f=["ArrowUp","ArrowDown","End","Home"];let g=class extends o{constructor(e,t){super(e,t),this._activeMenu=null,this._activeMenuIndex={levels:-1,menuItems:-1},this._baseNode=null,this._facilitiesListNode=null,this._levelsListNode=null,this._sitesListNode=null,this._searchInput=null,this.viewModel=new r,this.messages=null,this.messagesCommon=null,this.headingLevel=2,this._resizeObserver=new ResizeObserver((()=>this.scheduleRender())),this.addHandles(s((()=>this._searchInput),(()=>this._focusSearch())))}destroy(){this._resizeObserver?.disconnect()}get enabled(){return this.viewModel.enabled}set enabled(e){this.viewModel.enabled=e}get longNames(){return this.viewModel.longNames}set longNames(e){this.viewModel.longNames=e}get minimized(){return this.viewModel.minimized}set minimized(e){this.viewModel.minimized=e}get pinnedLevels(){return this.viewModel.pinnedLevels}set pinnedLevels(e){this.viewModel.pinnedLevels=e}get site(){return this.viewModel.site}set site(e){this.viewModel.site=e}get facility(){return this.viewModel.facility}set facility(e){this.viewModel.facility=e}get level(){return this.viewModel.level}set level(e){this.viewModel.level=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}updateWebDocument(e){return this.viewModel.updateWebDocument(e)}render(){const{longNames:e}=this,t=e&&this.viewModel.isNormalMode?"expanded":"collapsed",s=this._renderButtons(),i=this._renderFilterMenu(),l=p("div",{class:this.classes(n.separator)}),o=this._getComponentPosition(),r=this._getPosition(o),c="top-right"===o||"bottom-right"===o,d="top-left"===o||"bottom-left"===o,h=u(this.container),v=h&&d||!h&&c?i:s,m=h&&d||!h&&c?s:i;return p("div",{afterCreate:this._afterBaseNodeCreate,key:"floor-filter-menu",class:this.classes(n.floorFilter,a.widget,`${n.floorFilterLayout}${t}`,`${n.floorFilterPosition}${r}`)},v,this.viewModel?.filterMenuOpen&&l,m)}_renderButtons(){const e=this._getComponentPosition(),t=[];return"top"===this._getPosition(e)?(t.push(this._renderBrowseButton()),t.push(this._renderLevelButtons()),t.push(this._renderCloseLevelsButton()),t.push(this._renderZoomButton()),t.push(this._renderCollapseToggleButton())):(t.push(this._renderCollapseToggleButton()),t.push(this._renderZoomButton()),t.push(this._renderCloseLevelsButton()),t.push(this._renderLevelButtons()),t.push(this._renderBrowseButton())),p("div",{key:"button-container",class:this.classes(a.widget,n.buttonContainer)},t)}_renderBrowseButton(){const{longNames:e,messages:t}=this;return p("button",{key:"browse-button",title:t.buttons.browse,bind:this,class:this.classes(a.widget,a.widgetButton,a.interactive,("loading"===this.viewModel.state||"disabled"===this.viewModel.state)&&a.buttonDisabled,n.browseButton,this.viewModel?.filterMenuOpen&&a.widgetButtonActive),"aria-expanded":this.viewModel.filterMenuOpen.toString(),"aria-label":t.buttons.browse,onclick:this._toggleFilterMenu,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:this.classes(h.icon,h.urbanModel)}),p("span",{class:this.classes(n.buttonLabel)},e&&this.viewModel.isNormalMode&&t.buttons.browse)))}_renderLevelButtons(){if(!this.viewModel?.filterFeatures?.levels?.levelsInfo||!this.facility)return null;const{facility:e,messagesCommon:t,messages:s}=this,i=this.viewModel?.getFacility(e),l=this.viewModel?.getFacilityLevels(e),o=l.map((e=>this._renderLevelButton(e)));if(!o.length)return null;const r=i&&M(s.selector.levelsLabel,{name:`"${i.name}"`});if(this._isWebScene(this.view?.map)&&o?.length>1){const s={id:`all--${e}`,facilityId:e,shortName:t.all,longName:t.all,levelNumber:null,verticalOrder:null},i=this._renderLevelButton(s);o.push(i)}return p("ul",{key:"levels-button-container",class:this.classes(n.levelsContainer),bind:this,"data-id":"levels",afterCreate:v,"data-node-ref":"_levelsListNode","aria-label":r,onkeydown:this._handleListKeydown},o)}_renderLevelButton(e){const{longNames:t}=this,{shortName:s,longName:i,id:l}=e,o=`levels--${l}`,r=this.level===l,c=t&&this.viewModel.isNormalMode?i:s;return this.viewModel.isNormalMode||r||this.viewModel.levelsExpanded?p("li",{key:o},p("button",{"data-id":l,"data-list-id":"levels",bind:this,class:this.classes(a.widgetButton,r?a.widgetButtonActive:null,a.interactive,n.levelButton),onclick:this._levelSelected,onfocus:this._onItemFocus,type:"button"},c)):null}_renderCloseLevelsButton(){if(!this.level||this.viewModel.isNormalMode||!this.viewModel.levelsExpanded)return null;const{messagesCommon:e}=this;return p("button",{key:"close-levels-button",title:e.close,bind:this,class:this.classes(a.widget,a.widgetButton,a.interactive,n.closeLevelsButton),"aria-label":e.close,onclick:this._closeLevels,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:this.classes(h.icon,h.close)})))}_renderZoomButton(){const{longNames:e,messages:t,facility:s,site:i}=this,l=this.viewModel?.filterMenuType,o=this.viewModel?.filterMenuOpen,r=this.viewModel?.getSite(i),c=this.viewModel?.getFacility(s),d="site"===l&&o?!r:!c;return p("button",{key:"zoom-button",title:t.buttons.zoomTo,bind:this,class:this.classes(a.widget,a.widgetButton,d&&a.buttonDisabled,a.interactive,this.viewModel?.getFacilityLevels(s).length>0?n.zoomButtonLevels:n.zoomButton),"aria-label":t.buttons.zoomTo,onclick:this._zoomToClicked,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:this.classes(h.icon,h.zoomToObject)}),p("span",{class:this.classes(n.buttonLabel)},e&&this.viewModel.isNormalMode&&t.buttons.zoomTo)))}_renderCollapseToggleButton(){const{longNames:e,messagesCommon:t}=this,s=e?h.collapse:h.expand,i=this.classes(h.icon,s),l=e?t.collapse:t.expand;return p("button",{key:"minimize-toggle-button",title:l,bind:this,class:this.classes(a.widget,a.widgetButton,a.interactive,n.minimizeToggleButton),"aria-label":l,onclick:this._toggleCollapsed,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:i}),p("span",{class:this.classes(n.buttonLabel)},e&&this.viewModel.isNormalMode&&t.collapse)))}_renderFilterMenu(){return this.viewModel?.filterMenuOpen?"site"===this.viewModel?.filterMenuType?this._renderSiteFilterMenu():"facility"===this.viewModel?.filterMenuType?this._renderFacilityFilterMenu():null:null}_renderSiteFilterMenu(){const{messages:e,messagesCommon:t}=this,s=this.site?this.viewModel?.getSite(this.site)?.name:e.selector.selectSite,i=p("div",{key:"filter-menu-site-header",class:this.classes(`${n.filterMenuHeader}`)},p("div",{class:this.classes(n.filterMenuHeaderTextGroup)},p(c,{level:this.headingLevel,class:this.classes(n.filterMenuHeaderText)},s)),p("button",{bind:this,title:t.close,class:this.classes(h.icon,h.close),onclick:this._closeClicked,type:"button"})),l=this._renderSearchInput(),o=this._renderSiteItems();return p("div",{key:"filter-menu-site",class:this.classes(n.filterMenu)},i,l,o)}_renderFacilityFilterMenu(){const{messages:e,messagesCommon:t,site:s}=this,i=this.viewModel?.getSite(s)?.name,l=this.facility&&this.viewModel?.getFacility(this.facility)?.name||e.selector.selectFacility,o=this.viewModel.hasMultipleSites?p("button",{bind:this,title:t.back,class:this.classes(n.filterMenuHeaderBack),onclick:this._backClicked,type:"button"},p("span",{class:this.classes(u(this.container)?h.right:h.left)})):null,r=this.viewModel.hasMultipleSites?p(c,{level:d(this.headingLevel),class:this.classes(n.filterMenuHeaderSubtext)},i):null,a=p("div",{key:"filter-menu-site-header",class:this.classes(n.filterMenuHeader)},o,p("div",{class:this.classes(n.filterMenuHeaderTextGroup)},p(c,{level:this.headingLevel,class:this.classes(n.filterMenuHeaderText)},l),r),p("button",{bind:this,title:t.close,class:this.classes(h.icon,h.close),onclick:this._closeClicked,type:"button"})),v=this._renderSearchInput(),m=this._renderFacilityItems();return p("div",{key:"filter-menu-facility",class:this.classes(n.filterMenu)},a,v,m)}_renderSearchInput(){const{messagesCommon:e}=this;return p("div",{key:"filter-menu-search",class:this.classes(n.filterMenuSearch)},p("span",{class:this.classes(h.icon,h.search)}),p("input",{bind:this,key:"filter-menu-search__input",afterCreate:v,"data-node-ref":"_searchInput",class:this.classes(n.filterMenuSearchInput),placeholder:e.search,oninput:this._onSearchChange,onpaste:this._onSearchChange,value:this.viewModel.searchTerm??void 0}))}_renderBlueCircle(){return p("span",{key:"floor-filter__selected-item-circle",class:this.classes(n.selectedItemCircle)})}_renderSiteItems(){if(!this.viewModel?.filterFeatures?.sites?.sitesInfo)return null;const{messages:e}=this,t=this.viewModel.filterFeatures.sites.sitesInfo,s=this.viewModel.filterSites(t).map((e=>this._renderSiteItem(e))),i=0===s.length&&this.viewModel?.searchTerm&&p("div",{class:this.classes(a.empty)},e.noResults);return p("ul",{key:"filter-menu-items--sites",class:this.classes(n.filterMenuItems),bind:this,afterCreate:v,"data-node-ref":"_sitesListNode","data-id":"sites",onkeydown:this._handleListKeydown,tabIndex:-1,"aria-label":e.selector.sitesLabel},s,i)}_renderSiteItem(e){const{name:t,id:s}=e,i=`filter-menu-site--${s}`,l=this.site===s;return p("li",{key:i},p("button",{"data-id":s,"data-list-id":"sites",bind:this,class:this.classes(n.filterMenuSite),onclick:this._siteSelected,onfocus:this._onItemFocus,type:"button"},l&&this._renderBlueCircle(),p("span",{class:this.classes(l?n.filterMenuSelectedItem:n.filterMenuItemName)},t),p("span",{class:this.classes(u(this.container)?h.left:h.right)})))}_renderFacilityItems(){if(!this.viewModel?.filterFeatures?.facilities?.facilitiesInfo)return null;const{messages:e,site:t}=this,s=this.viewModel.getSite(t),i=this.viewModel.filterFeatures.facilities.facilitiesInfo,l=this.viewModel.filterFacilities(i).map((e=>this._renderFacilityItem(e))),o=0===l.length&&this.viewModel?.searchTerm&&p("div",{class:this.classes(a.empty)},e.noResults),r=s?M(e.selector.siteFacilitiesLabel,{name:`"${s.name}"`}):e.selector.facilitiesLabel;return p("ul",{key:"filter-menu-items--facilities",class:this.classes(n.filterMenuItems),bind:this,afterCreate:v,"data-node-ref":"_facilitiesListNode","data-id":"facilities",onkeydown:this._handleListKeydown,tabIndex:-1,"aria-label":r},l,o)}_renderFacilityItem(e){const{name:t,id:s}=e,i=`filter-menu-facility--${s}`,l=this.facility===s;return p("li",{key:i},p("button",{"data-id":s,"data-list-id":"facilities",bind:this,class:this.classes(n.filterMenuFacility),onclick:this._facilitySelected,onfocus:this._onItemFocus,type:"button"},l&&this._renderBlueCircle(),p("span",{class:this.classes(l?n.filterMenuSelectedItem:n.filterMenuItemName)},t)))}_afterBaseNodeCreate(e){this._baseNode&&this._resizeObserver?.unobserve(this._baseNode),this._baseNode=e,this._resizeObserver?.observe(this._baseNode)}_toggleCollapsed(){this.longNames=!this.longNames}_toggleFilterMenu(){const e=this.viewModel?.filterMenuOpen??!1;this.viewModel.filterMenuOpen=!e}_setFilterMenuType(e){this.viewModel.filterMenuType=e}_zoomToClicked(){if(this.site&&"site"===this.viewModel?.filterMenuType&&this.viewModel?.filterMenuOpen){const e=this.viewModel?.getSite(this.site);this.viewModel.goTo(e)}else if(this.facility){const e=this.viewModel?.getFacility(this.facility);this.viewModel.goTo(e)}else if(this.site){const e=this.viewModel?.getSite(this.site);this.viewModel.goTo(e)}}_onSearchChange(e){const t=e.target;""===t.value?this.viewModel.searchTerm=null:t.value&&this.viewModel?.searchTerm!==t.value&&(this.viewModel.searchTerm=t.value.toLowerCase().trim())}_closeClicked(){this.viewModel.searchTerm=null,this.viewModel.filterMenuOpen=!1}_backClicked(){this._setFilterMenuType("site"),this.viewModel.searchTerm=null}_siteSelected(e){const t=e.currentTarget.getAttribute("data-id"),s=this.viewModel.getSite(t);let i=!1;this.site!==t&&(this.facility=null,this.level=null,i=!0,this.viewModel.levelsExpanded=!1),this.site=t,this.viewModel.searchTerm=null,this._setFilterMenuType("facility"),this.viewModel.goTo(s),i&&this.viewModel.setFloors(null)}_facilitySelected(e){const t=e.currentTarget.getAttribute("data-id"),s=this.viewModel.getFacility(t);let i=!1;if(this.facility!==t){if("base-floors"===this.viewModel.filterMode){const e=this.viewModel?.getBaseLevel(s);this.level=e?e.id:null}else this.level=null;i=!0,this.viewModel.levelsExpanded=!1}if(this.facility=t,this.viewModel.goTo(s),i){const e=this.viewModel.getLevel(this.level);this.viewModel.setFloors(e)}if(!this.viewModel.isNormalMode){const e=this.viewModel.getFacilityLevels(t);e?.length>1&&(this.viewModel.levelsExpanded=!0)}setTimeout((()=>this._focusActiveLevel()),50)}_levelSelected(e){const t=e.currentTarget.getAttribute("data-id");this.level=t}_closeLevels(){this.viewModel.levelsExpanded=!1}_isWebScene(e){return"esri.WebScene"===e?.declaredClass}_getComponentPosition(){return null!=this.container?this.view?.ui?.getPosition(this.container):null}_getPosition(e){switch(e){case"bottom-right":case"bottom-left":return"bottom";default:return"top"}}_handleListKeydown(e){const s=e.currentTarget.getAttribute("data-id");let i=null;"sites"===s||"facilities"===s?(this._activeMenu!==s&&(this._activeMenuIndex.menuItems=-1),this._activeMenu=s,i="menuItems"):"levels"===s&&(i="levels");const l="sites"===s?this._sitesListNode:"facilities"===s?this._facilitiesListNode:"levels"===s?this._levelsListNode:null,o=t(e),n="Tab"===o,r=f.includes(o);r&&e.preventDefault();const a=l?.getElementsByTagName("li");a&&0!==a.length&&(r||n)&&this._handleItemNavigation(o,e.shiftKey,a,n,i)}_handleItemNavigation(e,t,s,i,l){if(!l)return;this._activeMenuIndex[l]===s.length&&this._activeMenuIndex[l]--,-1===this._activeMenuIndex[l]&&this._activeMenuIndex[l]++;const o=this._activeMenuIndex[l];switch(e){case"Home":this._activeMenuIndex[l]=0;break;case"End":this._activeMenuIndex[l]=s.length-1;break;case"ArrowUp":this._activeMenuIndex[l]=this._activeMenuIndex[l]<=0?s.length-1:this._activeMenuIndex[l]-1;break;case"ArrowDown":this._activeMenuIndex[l]=this._activeMenuIndex[l]===s.length-1?0:this._activeMenuIndex[l]+1}if("Tab"===e&&t&&this._activeMenuIndex[l]>=0&&this._activeMenuIndex[l]--,"Tab"===e&&!t&&this._activeMenuIndex[l]<s.length&&this._activeMenuIndex[l]++,o!==this._activeMenuIndex[l]&&this._activeMenuIndex[l]>-1&&this._activeMenuIndex[l]<s.length&&!i){const e=s[this._activeMenuIndex[l]].getElementsByTagName("button"),t=1===e?.length?e[0]:null;t?.focus()}}_focusSearch(){this._searchInput?.focus()}_focusActiveLevel(){const{level:e}=this,t=this._levelsListNode,s=t?.getElementsByTagName("li");if(!e||!t||!s)return;const i=this._facilitiesListNode?.getElementsByTagName("li");this._activeMenuIndex.menuItems=i?i.length-1:-1;const l=[];for(let o=0;o<s.length;o++){const e=s[o].getElementsByTagName("button");1===e?.length&&l.push(e[0])}l.forEach(((t,s)=>{t.getAttribute("data-id")===e&&(t.focus(),this._activeMenuIndex.levels=s)}))}_onItemFocus(e){const t=e.currentTarget,s=t.getAttribute("data-list-id"),i=t.getAttribute("data-id"),l="sites"===s?this._sitesListNode:"facilities"===s?this._facilitiesListNode:"levels"===s?this._levelsListNode:null;if(!l)return;const o=l?.getElementsByTagName("li");if(!o)return;const n=[];Array.from(o).forEach((e=>{const t=e.getElementsByTagName("button");1===t?.length&&n.push(t[0])}));let r=null;switch(s){case"sites":case"facilities":r="menuItems";break;case"levels":r="levels"}if(!r)return;const a=r;n.forEach(((e,t)=>{e.getAttribute("data-id")===i&&this._activeMenuIndex[a]!==t&&(this._activeMenuIndex[a]=t)}))}};e([i()],g.prototype,"_searchInput",void 0),e([i()],g.prototype,"enabled",null),e([i()],g.prototype,"longNames",null),e([i()],g.prototype,"minimized",null),e([i()],g.prototype,"pinnedLevels",null),e([i()],g.prototype,"site",null),e([i()],g.prototype,"facility",null),e([i()],g.prototype,"level",null),e([i()],g.prototype,"view",null),e([i({type:r})],g.prototype,"viewModel",void 0),e([i(),m("esri/widgets/FloorFilter/t9n/FloorFilter")],g.prototype,"messages",void 0),e([i(),m("esri/t9n/common")],g.prototype,"messagesCommon",void 0),e([i()],g.prototype,"goToOverride",null),e([i()],g.prototype,"headingLevel",void 0),g=e([l("esri.widgets.FloorFilter")],g);const _=g;export{_ as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{eventKey as t}from"../core/events.js";import{watch as s}from"../core/reactiveUtils.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import o from"./Widget.js";import{css as n}from"./FloorFilter/css.js";import r from"./FloorFilter/FloorFilterViewModel.js";import{globalCss as a}from"./support/globalCss.js";import{Heading as c,incrementHeadingLevel as d}from"./support/Heading.js";import{legacyIcon as h}from"./support/legacyIcon.js";import{isRTL as u,storeNode as v}from"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as p}from"./support/jsxFactory.js";import{substitute as M}from"../intl/substitute.js";const f=new Set(["ArrowUp","ArrowDown","End","Home"]);let g=class extends o{constructor(e,t){super(e,t),this._activeMenu=null,this._activeMenuIndex={levels:-1,menuItems:-1},this._baseNode=null,this._facilitiesListNode=null,this._levelsListNode=null,this._sitesListNode=null,this._searchInput=null,this.viewModel=new r,this.messages=null,this.messagesCommon=null,this.headingLevel=2,this._resizeObserver=new ResizeObserver((()=>this.scheduleRender())),this.addHandles(s((()=>this._searchInput),(()=>this._focusSearch())))}destroy(){this._resizeObserver?.disconnect()}get enabled(){return this.viewModel.enabled}set enabled(e){this.viewModel.enabled=e}get longNames(){return this.viewModel.longNames}set longNames(e){this.viewModel.longNames=e}get minimized(){return this.viewModel.minimized}set minimized(e){this.viewModel.minimized=e}get pinnedLevels(){return this.viewModel.pinnedLevels}set pinnedLevels(e){this.viewModel.pinnedLevels=e}get site(){return this.viewModel.site}set site(e){this.viewModel.site=e}get facility(){return this.viewModel.facility}set facility(e){this.viewModel.facility=e}get level(){return this.viewModel.level}set level(e){this.viewModel.level=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}updateWebDocument(e){return this.viewModel.updateWebDocument(e)}render(){const{longNames:e}=this,t=e&&this.viewModel.isNormalMode?"expanded":"collapsed",s=this._renderButtons(),i=this._renderFilterMenu(),l=p("div",{class:this.classes(n.separator)}),o=this._getComponentPosition(),r=this._getPosition(o),c="top-right"===o||"bottom-right"===o,d="top-left"===o||"bottom-left"===o,h=u(this.container),v=h&&d||!h&&c?i:s,m=h&&d||!h&&c?s:i;return p("div",{afterCreate:this._afterBaseNodeCreate,class:this.classes(n.floorFilter,a.widget,`${n.floorFilterLayout}${t}`,`${n.floorFilterPosition}${r}`),key:"floor-filter-menu"},v,this.viewModel?.filterMenuOpen?l:null,m)}_renderButtons(){const e=this._getComponentPosition(),t=[];return"top"===this._getPosition(e)?(t.push(this._renderBrowseButton()),t.push(this._renderLevelButtons()),t.push(this._renderCloseLevelsButton()),t.push(this._renderZoomButton()),t.push(this._renderCollapseToggleButton())):(t.push(this._renderCollapseToggleButton()),t.push(this._renderZoomButton()),t.push(this._renderCloseLevelsButton()),t.push(this._renderLevelButtons()),t.push(this._renderBrowseButton())),p("div",{class:this.classes(a.widget,n.buttonContainer),key:"button-container"},t)}_renderBrowseButton(){const{longNames:e,messages:t}=this;return p("button",{"aria-expanded":this.viewModel.filterMenuOpen.toString(),"aria-label":t.buttons.browse,bind:this,class:this.classes(a.widget,a.widgetButton,a.interactive,("loading"===this.viewModel.state||"disabled"===this.viewModel.state)&&a.buttonDisabled,n.browseButton,this.viewModel?.filterMenuOpen&&a.widgetButtonActive),key:"browse-button",onclick:this._toggleFilterMenu,title:t.buttons.browse,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:this.classes(h.icon,h.urbanModel)}),p("span",{class:this.classes(n.buttonLabel)},e&&this.viewModel.isNormalMode?t.buttons.browse:null)))}_renderLevelButtons(){if(!this.viewModel?.filterFeatures?.levels?.levelsInfo||!this.facility)return null;const{facility:e,messagesCommon:t,messages:s}=this,i=this.viewModel?.getFacility(e),l=this.viewModel?.getFacilityLevels(e),o=l.map((e=>this._renderLevelButton(e)));if(!o.length)return null;const r=i&&M(s.selector.levelsLabel,{name:`"${i.name}"`});if(this._isWebScene(this.view?.map)&&o?.length>1){const s={id:`all--${e}`,facilityId:e,shortName:t.all,longName:t.all,levelNumber:null,verticalOrder:null},i=this._renderLevelButton(s);o.push(i)}return p("ul",{afterCreate:v,"aria-label":r,bind:this,class:this.classes(n.levelsContainer),"data-id":"levels","data-node-ref":"_levelsListNode",key:"levels-button-container",onkeydown:this._handleListKeydown},o)}_renderLevelButton(e){const{longNames:t}=this,{shortName:s,longName:i,id:l}=e,o=`levels--${l}`,r=this.level===l,c=t&&this.viewModel.isNormalMode?i:s;return this.viewModel.isNormalMode||r||this.viewModel.levelsExpanded?p("li",{key:o},p("button",{bind:this,class:this.classes(a.widgetButton,r?a.widgetButtonActive:null,a.interactive,n.levelButton),"data-id":l,"data-list-id":"levels",onclick:this._levelSelected,onfocus:this._onItemFocus,type:"button"},c)):null}_renderCloseLevelsButton(){if(!this.level||this.viewModel.isNormalMode||!this.viewModel.levelsExpanded)return null;const{messagesCommon:e}=this;return p("button",{"aria-label":e.close,bind:this,class:this.classes(a.widget,a.widgetButton,a.interactive,n.closeLevelsButton),key:"close-levels-button",onclick:this._closeLevels,title:e.close,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:this.classes(h.icon,h.close)})))}_renderZoomButton(){const{longNames:e,messages:t,facility:s,site:i}=this,l=this.viewModel?.filterMenuType,o=this.viewModel?.filterMenuOpen,r=this.viewModel?.getSite(i),c=this.viewModel?.getFacility(s),d="site"===l&&o?!r:!c;return p("button",{"aria-label":t.buttons.zoomTo,bind:this,class:this.classes(a.widget,a.widgetButton,d&&a.buttonDisabled,a.interactive,this.viewModel?.getFacilityLevels(s).length>0?n.zoomButtonLevels:n.zoomButton),key:"zoom-button",onclick:this._zoomToClicked,title:t.buttons.zoomTo,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:this.classes(h.icon,h.zoomToObject)}),p("span",{class:this.classes(n.buttonLabel)},e&&this.viewModel.isNormalMode?t.buttons.zoomTo:null)))}_renderCollapseToggleButton(){const{longNames:e,messagesCommon:t}=this,s=e?h.collapse:h.expand,i=this.classes(h.icon,s),l=e?t.collapse:t.expand;return p("button",{"aria-label":l,bind:this,class:this.classes(a.widget,a.widgetButton,a.interactive,n.minimizeToggleButton),key:"minimize-toggle-button",onclick:this._toggleCollapsed,title:l,type:"button"},p("div",{class:this.classes(n.buttonInfo)},p("span",{class:i}),p("span",{class:this.classes(n.buttonLabel)},e&&this.viewModel.isNormalMode?t.collapse:null)))}_renderFilterMenu(){return this.viewModel?.filterMenuOpen?"site"===this.viewModel?.filterMenuType?this._renderSiteFilterMenu():"facility"===this.viewModel?.filterMenuType?this._renderFacilityFilterMenu():null:null}_renderSiteFilterMenu(){const{messages:e,messagesCommon:t}=this,s=this.site?this.viewModel?.getSite(this.site)?.name:e.selector.selectSite,i=p("div",{class:this.classes(`${n.filterMenuHeader}`),key:"filter-menu-site-header"},p("div",{class:this.classes(n.filterMenuHeaderTextGroup)},p(c,{class:this.classes(n.filterMenuHeaderText),level:this.headingLevel},s)),p("button",{bind:this,class:this.classes(h.icon,h.close),onclick:this._closeClicked,title:t.close,type:"button"})),l=this._renderSearchInput(),o=this._renderSiteItems();return p("div",{class:this.classes(n.filterMenu),key:"filter-menu-site"},i,l,o)}_renderFacilityFilterMenu(){const{messages:e,messagesCommon:t,site:s}=this,i=this.viewModel?.getSite(s)?.name,l=this.facility&&this.viewModel?.getFacility(this.facility)?.name||e.selector.selectFacility,o=this.viewModel.hasMultipleSites?p("button",{bind:this,class:this.classes(n.filterMenuHeaderBack),onclick:this._backClicked,title:t.back,type:"button"},p("span",{class:this.classes(u(this.container)?h.right:h.left)})):null,r=this.viewModel.hasMultipleSites?p(c,{class:this.classes(n.filterMenuHeaderSubtext),level:d(this.headingLevel)},i):null,a=p("div",{class:this.classes(n.filterMenuHeader),key:"filter-menu-site-header"},o,p("div",{class:this.classes(n.filterMenuHeaderTextGroup)},p(c,{class:this.classes(n.filterMenuHeaderText),level:this.headingLevel},l),r),p("button",{bind:this,class:this.classes(h.icon,h.close),onclick:this._closeClicked,title:t.close,type:"button"})),v=this._renderSearchInput(),m=this._renderFacilityItems();return p("div",{class:this.classes(n.filterMenu),key:"filter-menu-facility"},a,v,m)}_renderSearchInput(){const{messagesCommon:e}=this;return p("div",{class:this.classes(n.filterMenuSearch),key:"filter-menu-search"},p("span",{class:this.classes(h.icon,h.search)}),p("input",{afterCreate:v,bind:this,class:this.classes(n.filterMenuSearchInput),"data-node-ref":"_searchInput",key:"filter-menu-search__input",oninput:this._onSearchChange,onpaste:this._onSearchChange,placeholder:e.search,value:this.viewModel.searchTerm??void 0}))}_renderBlueCircle(){return p("span",{class:this.classes(n.selectedItemCircle),key:"floor-filter__selected-item-circle"})}_renderSiteItems(){if(!this.viewModel?.filterFeatures?.sites?.sitesInfo)return null;const{messages:e}=this,t=this.viewModel.filterFeatures.sites.sitesInfo,s=this.viewModel.filterSites(t).map((e=>this._renderSiteItem(e))),i=0===s.length&&this.viewModel?.searchTerm&&p("div",{class:this.classes(a.empty)},e.noResults);return p("ul",{afterCreate:v,"aria-label":e.selector.sitesLabel,bind:this,class:this.classes(n.filterMenuItems),"data-id":"sites","data-node-ref":"_sitesListNode",key:"filter-menu-items--sites",onkeydown:this._handleListKeydown,tabIndex:-1},s,i)}_renderSiteItem(e){const{name:t,id:s}=e,i=`filter-menu-site--${s}`,l=this.site===s;return p("li",{key:i},p("button",{bind:this,class:this.classes(n.filterMenuSite),"data-id":s,"data-list-id":"sites",onclick:this._siteSelected,onfocus:this._onItemFocus,type:"button"},l?this._renderBlueCircle():null,p("span",{class:this.classes(l?n.filterMenuSelectedItem:n.filterMenuItemName)},t),p("span",{class:this.classes(u(this.container)?h.left:h.right)})))}_renderFacilityItems(){if(!this.viewModel?.filterFeatures?.facilities?.facilitiesInfo)return null;const{messages:e,site:t}=this,s=this.viewModel.getSite(t),i=this.viewModel.filterFeatures.facilities.facilitiesInfo,l=this.viewModel.filterFacilities(i).map((e=>this._renderFacilityItem(e))),o=0===l.length&&this.viewModel?.searchTerm&&p("div",{class:this.classes(a.empty)},e.noResults),r=s?M(e.selector.siteFacilitiesLabel,{name:`"${s.name}"`}):e.selector.facilitiesLabel;return p("ul",{afterCreate:v,"aria-label":r,bind:this,class:this.classes(n.filterMenuItems),"data-id":"facilities","data-node-ref":"_facilitiesListNode",key:"filter-menu-items--facilities",onkeydown:this._handleListKeydown,tabIndex:-1},l,o)}_renderFacilityItem(e){const{name:t,id:s}=e,i=`filter-menu-facility--${s}`,l=this.facility===s;return p("li",{key:i},p("button",{bind:this,class:this.classes(n.filterMenuFacility),"data-id":s,"data-list-id":"facilities",onclick:this._facilitySelected,onfocus:this._onItemFocus,type:"button"},l?this._renderBlueCircle():null,p("span",{class:this.classes(l?n.filterMenuSelectedItem:n.filterMenuItemName)},t)))}_afterBaseNodeCreate(e){this._baseNode&&this._resizeObserver?.unobserve(this._baseNode),this._baseNode=e,this._resizeObserver?.observe(this._baseNode)}_toggleCollapsed(){this.longNames=!this.longNames}_toggleFilterMenu(){const e=this.viewModel?.filterMenuOpen??!1;this.viewModel.filterMenuOpen=!e}_setFilterMenuType(e){this.viewModel.filterMenuType=e}_zoomToClicked(){if(this.site&&"site"===this.viewModel?.filterMenuType&&this.viewModel?.filterMenuOpen){const e=this.viewModel?.getSite(this.site);this.viewModel.goTo(e)}else if(this.facility){const e=this.viewModel?.getFacility(this.facility);this.viewModel.goTo(e)}else if(this.site){const e=this.viewModel?.getSite(this.site);this.viewModel.goTo(e)}}_onSearchChange(e){const t=e.target;""===t.value?this.viewModel.searchTerm=null:t.value&&this.viewModel?.searchTerm!==t.value&&(this.viewModel.searchTerm=t.value.toLowerCase().trim())}_closeClicked(){this.viewModel.searchTerm=null,this.viewModel.filterMenuOpen=!1}_backClicked(){this._setFilterMenuType("site"),this.viewModel.searchTerm=null}_siteSelected(e){const t=e.currentTarget.getAttribute("data-id"),s=this.viewModel.getSite(t);let i=!1;this.site!==t&&(this.facility=null,this.level=null,i=!0,this.viewModel.levelsExpanded=!1),this.site=t,this.viewModel.searchTerm=null,this._setFilterMenuType("facility"),this.viewModel.goTo(s),i&&this.viewModel.setFloors(null)}_facilitySelected(e){const t=e.currentTarget.getAttribute("data-id"),s=this.viewModel.getFacility(t);let i=!1;if(this.facility!==t){if("base-floors"===this.viewModel.filterMode){const e=this.viewModel?.getBaseLevel(s);this.level=e?e.id:null}else this.level=null;i=!0,this.viewModel.levelsExpanded=!1}if(this.facility=t,this.viewModel.goTo(s),i){const e=this.viewModel.getLevel(this.level);this.viewModel.setFloors(e)}if(!this.viewModel.isNormalMode){const e=this.viewModel.getFacilityLevels(t);e?.length>1&&(this.viewModel.levelsExpanded=!0)}setTimeout((()=>this._focusActiveLevel()),50)}_levelSelected(e){const t=e.currentTarget.getAttribute("data-id");this.level=t}_closeLevels(){this.viewModel.levelsExpanded=!1}_isWebScene(e){return"esri.WebScene"===e?.declaredClass}_getComponentPosition(){return null!=this.container?this.view?.ui?.getPosition(this.container):null}_getPosition(e){switch(e){case"bottom-right":case"bottom-left":return"bottom";default:return"top"}}_handleListKeydown(e){const s=e.currentTarget.getAttribute("data-id");let i=null;"sites"===s||"facilities"===s?(this._activeMenu!==s&&(this._activeMenuIndex.menuItems=-1),this._activeMenu=s,i="menuItems"):"levels"===s&&(i="levels");const l="sites"===s?this._sitesListNode:"facilities"===s?this._facilitiesListNode:"levels"===s?this._levelsListNode:null,o=t(e),n="Tab"===o,r=f.has(o);r&&e.preventDefault();const a=l?.getElementsByTagName("li");a&&0!==a.length&&(r||n)&&this._handleItemNavigation(o,e.shiftKey,a,n,i)}_handleItemNavigation(e,t,s,i,l){if(!l)return;this._activeMenuIndex[l]===s.length&&this._activeMenuIndex[l]--,-1===this._activeMenuIndex[l]&&this._activeMenuIndex[l]++;const o=this._activeMenuIndex[l];switch(e){case"Home":this._activeMenuIndex[l]=0;break;case"End":this._activeMenuIndex[l]=s.length-1;break;case"ArrowUp":this._activeMenuIndex[l]=this._activeMenuIndex[l]<=0?s.length-1:this._activeMenuIndex[l]-1;break;case"ArrowDown":this._activeMenuIndex[l]=this._activeMenuIndex[l]===s.length-1?0:this._activeMenuIndex[l]+1}if("Tab"===e&&t&&this._activeMenuIndex[l]>=0&&this._activeMenuIndex[l]--,"Tab"===e&&!t&&this._activeMenuIndex[l]<s.length&&this._activeMenuIndex[l]++,o!==this._activeMenuIndex[l]&&this._activeMenuIndex[l]>-1&&this._activeMenuIndex[l]<s.length&&!i){const e=s[this._activeMenuIndex[l]].getElementsByTagName("button"),t=1===e?.length?e[0]:null;t?.focus()}}_focusSearch(){this._searchInput?.focus()}_focusActiveLevel(){const{level:e}=this,t=this._levelsListNode,s=t?.getElementsByTagName("li");if(!e||!t||!s)return;const i=this._facilitiesListNode?.getElementsByTagName("li");this._activeMenuIndex.menuItems=i?i.length-1:-1;const l=[];for(let o=0;o<s.length;o++){const e=s[o].getElementsByTagName("button");1===e?.length&&l.push(e[0])}l.forEach(((t,s)=>{t.getAttribute("data-id")===e&&(t.focus(),this._activeMenuIndex.levels=s)}))}_onItemFocus(e){const t=e.currentTarget,s=t.getAttribute("data-list-id"),i=t.getAttribute("data-id"),l="sites"===s?this._sitesListNode:"facilities"===s?this._facilitiesListNode:"levels"===s?this._levelsListNode:null;if(!l)return;const o=l?.getElementsByTagName("li");if(!o)return;const n=[];Array.from(o).forEach((e=>{const t=e.getElementsByTagName("button");1===t?.length&&n.push(t[0])}));let r=null;switch(s){case"sites":case"facilities":r="menuItems";break;case"levels":r="levels"}if(!r)return;const a=r;n.forEach(((e,t)=>{e.getAttribute("data-id")===i&&this._activeMenuIndex[a]!==t&&(this._activeMenuIndex[a]=t)}))}};e([i()],g.prototype,"_searchInput",void 0),e([i()],g.prototype,"enabled",null),e([i()],g.prototype,"longNames",null),e([i()],g.prototype,"minimized",null),e([i()],g.prototype,"pinnedLevels",null),e([i()],g.prototype,"site",null),e([i()],g.prototype,"facility",null),e([i()],g.prototype,"level",null),e([i()],g.prototype,"view",null),e([i({type:r})],g.prototype,"viewModel",void 0),e([i(),m("esri/widgets/FloorFilter/t9n/FloorFilter")],g.prototype,"messages",void 0),e([i(),m("esri/t9n/common")],g.prototype,"messagesCommon",void 0),e([i()],g.prototype,"goToOverride",null),e([i()],g.prototype,"headingLevel",void 0),g=e([l("esri.widgets.FloorFilter")],g);const _=g;export{_ as default};
|
package/widgets/Fullscreen.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as s}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import o from"./Fullscreen/FullscreenViewModel.js";import{globalCss as l}from"./support/globalCss.js";import{legacyIcon as i}from"./support/legacyIcon.js";import{accessibleHandler as n}from"./support/decorators/accessibleHandler.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import{tsx as p}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const c={base:"esri-fullscreen"};let d=class extends r{constructor(e,t){super(e,t),this.messages=null,this.viewModel=new o}get element(){return this.viewModel.element}set element(e){this.viewModel.element=e}get fullscreenTitle(){const e=this.viewModel?.state;return"active"===e?this.messages.exit:"ready"===e?this.messages.enter:""}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const e=this.viewModel?.state,{fullscreenTitle:t}=this,s={[l.disabled]:"disabled"===e||"feature-unsupported"===e};return p("div",{bind:this,class:this.classes(c.base,l.widget,l.widgetButton,s),
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as s}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import o from"./Fullscreen/FullscreenViewModel.js";import{globalCss as l}from"./support/globalCss.js";import{legacyIcon as i}from"./support/legacyIcon.js";import{accessibleHandler as n}from"./support/decorators/accessibleHandler.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import{tsx as p}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const c={base:"esri-fullscreen"};let d=class extends r{constructor(e,t){super(e,t),this.messages=null,this.viewModel=new o}get element(){return this.viewModel.element}set element(e){this.viewModel.element=e}get fullscreenTitle(){const e=this.viewModel?.state;return"active"===e?this.messages.exit:"ready"===e?this.messages.enter:""}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const e=this.viewModel?.state,{fullscreenTitle:t}=this,s={[l.disabled]:"disabled"===e||"feature-unsupported"===e};return p("div",{"aria-label":t,bind:this,class:this.classes(c.base,l.widget,l.widgetButton,s),onclick:this._toggle,onkeydown:this._toggle,role:"button",tabIndex:0,title:t},this._renderIcon(),this._renderTitle())}_renderIcon(){const e=this.viewModel?.state,t={[i.zoomOutFixed]:"ready"===e||"disabled"===e||"feature-unsupported"===e,[i.zoomInFixed]:"active"===e};return p("span",{"aria-hidden":"true",class:this.classes(i.icon,t)})}_renderTitle(){return p("span",{class:i.fontFallbackText},this.fullscreenTitle)}_toggle(){this.viewModel.toggle()}};e([t()],d.prototype,"element",null),e([t({readOnly:!0})],d.prototype,"fullscreenTitle",null),e([t()],d.prototype,"label",null),e([t(),a("esri/widgets/Fullscreen/t9n/Fullscreen")],d.prototype,"messages",void 0),e([t()],d.prototype,"view",null),e([t({type:o})],d.prototype,"viewModel",void 0),e([n()],d.prototype,"_toggle",null),d=e([s("esri.widgets.Fullscreen")],d);const u=d;export{u as default};
|
package/widgets/Histogram.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import s from"./Histogram/HistogramViewModel.js";import{globalCss as a}from"./support/globalCss.js";import{legacyIcon as n}from"./support/legacyIcon.js";import{onResize as o}from"./support/widgetUtils.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import{tsx as d}from"./support/jsxFactory.js";import{substitute as u}from"../intl/substitute.js";var h;const c="esri-histogram",p={base:c,widgetIcon:n.edit,horizontalLayout:`${c}--horizontal`,verticalLayout:`${c}--vertical`,content:`${c}__content`,svg:`${c}__svg`,bar:`${c}__bar`,bars:`${c}__bars`,label:`${c}__label`,dataLines:`${c}__data-lines`,dataLinesSubgroup:`${c}__data-lines-subgroup`,dataLine:`${c}__data-line`,averageLabel:`${c}__average-label`,averageDataLine:`${c}__average-data-line`,averageSymbol:`${c}__average-symbol`};let g=h=class extends r{constructor(e,t){super(e,t),this._bgFillId=`${this.id}-bg-fill`,this._containerNode=null,this._containerDimensions={width:0,height:0},this._defaultBarColor="#d8d8d8",this.barCreatedFunction=null,this.dataLines=null,this.dataLineCreatedFunction=null,this.dataLineUpdatedFunction=null,this.messages=null,this.viewModel=new s}get average(){return this.viewModel.average}set average(e){this.viewModel.average=e}get bins(){return this.viewModel.bins}set bins(e){this.viewModel.bins=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelFormatFunction(){return this.viewModel.labelFormatFunction}set labelFormatFunction(e){this.viewModel.labelFormatFunction=e}set layout(e){"vertical"!==e&&(e="horizontal"),this._set("layout",e)}get max(){return this.viewModel.max}set max(e){this.viewModel.max=e}get min(){return this.viewModel.min}set min(e){this.viewModel.min=e}get state(){return this.viewModel.state}static fromHistogramResult(e){const{bins:t,maxValue:i,minValue:r}=e;return new h({bins:t,max:i,min:r})}render(){const{label:e,layout:t,state:i}=this,r=this.classes(p.base,a.widget,"horizontal"===t?p.horizontalLayout:p.verticalLayout,"disabled"===i?a.disabled:null);return d("div",{"aria-label":e,
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{property as t}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import r from"./Widget.js";import s from"./Histogram/HistogramViewModel.js";import{globalCss as a}from"./support/globalCss.js";import{legacyIcon as n}from"./support/legacyIcon.js";import{onResize as o}from"./support/widgetUtils.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import{tsx as d}from"./support/jsxFactory.js";import{substitute as u}from"../intl/substitute.js";var h;const c="esri-histogram",p={base:c,widgetIcon:n.edit,horizontalLayout:`${c}--horizontal`,verticalLayout:`${c}--vertical`,content:`${c}__content`,svg:`${c}__svg`,bar:`${c}__bar`,bars:`${c}__bars`,label:`${c}__label`,dataLines:`${c}__data-lines`,dataLinesSubgroup:`${c}__data-lines-subgroup`,dataLine:`${c}__data-line`,averageLabel:`${c}__average-label`,averageDataLine:`${c}__average-data-line`,averageSymbol:`${c}__average-symbol`};let g=h=class extends r{constructor(e,t){super(e,t),this._bgFillId=`${this.id}-bg-fill`,this._containerNode=null,this._containerDimensions={width:0,height:0},this._defaultBarColor="#d8d8d8",this.barCreatedFunction=null,this.dataLines=null,this.dataLineCreatedFunction=null,this.dataLineUpdatedFunction=null,this.messages=null,this.viewModel=new s}get average(){return this.viewModel.average}set average(e){this.viewModel.average=e}get bins(){return this.viewModel.bins}set bins(e){this.viewModel.bins=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelFormatFunction(){return this.viewModel.labelFormatFunction}set labelFormatFunction(e){this.viewModel.labelFormatFunction=e}set layout(e){"vertical"!==e&&(e="horizontal"),this._set("layout",e)}get max(){return this.viewModel.max}set max(e){this.viewModel.max=e}get min(){return this.viewModel.min}set min(e){this.viewModel.min=e}get state(){return this.viewModel.state}static fromHistogramResult(e){const{bins:t,maxValue:i,minValue:r}=e;return new h({bins:t,max:i,min:r})}render(){const{label:e,layout:t,state:i}=this,r=this.classes(p.base,a.widget,"horizontal"===t?p.horizontalLayout:p.verticalLayout,"disabled"===i?a.disabled:null);return d("div",{afterCreate:this._afterContainerNodeCreate,"aria-label":e,bind:this,class:r},"ready"===i?this._renderContent():null)}_renderContent(){if(!this._containerNode)return;const e=this._bgFillId,t=`clip-path: url(#${e})`;return d("div",{class:p.content},d("svg",{class:p.svg,xmlns:"http://www.w3.org/2000/svg"},d("defs",null,this._renderFillDefinition(e)),d("g",{style:t},this._renderBarsGroup()),this._renderLinesGroup()))}_renderBarsGroup(){return d("g",{class:this.classes(p.bars)},this._renderBars())}_renderBars(){const{layout:e,viewModel:{binRange:t,range:i}}=this;if(!t||!i)return;const r=t/i,{width:s,height:a}=this._containerDimensions;if(0===a&&0===s)return;if(0===a&&0!==s)return void this.scheduleRender();const[n,o]="vertical"===e?[a*r,s]:[a,s*r];return this._getBarDimensions(n,o).map((([e,t],i)=>this._renderBar(i,e,t)))}_renderBar(e,t,i){const{bins:r,layout:s,max:a,messages:n,viewModel:{range:o}}=this;if(!r||null==a)return;const{width:l,height:h}=this._containerDimensions,c=r.slice()[e],{count:g,maxValue:m,minValue:_}=c,b=a-m,[v,L]="vertical"===s?[0,b*(h/o)]:[l-i-b*(l/o),h-t],f=u(n.barLabel,{count:g,maxValue:m,minValue:_});return d("rect",{afterCreate:this._afterBarCreate,"aria-label":f,bind:this,class:p.bar,"data-index":e,fill:this._defaultBarColor,height:t,role:"img","shape-rendering":"crispEdges","stroke-width":"0",width:i,x:v,y:L})}_renderLinesGroup(){return d("g",{class:this.classes(p.dataLines)},this._renderAverageLine(),this._renderCustomLines())}_renderAverageLine(){const{average:e}=this;if(null==e)return;const t=[d("tspan",{class:this.classes(p.averageSymbol)},"x̄ "),d("tspan",{class:this.classes(p.averageLabel)},this.labelFormatFunction?this.labelFormatFunction(e,"average"):e)];return d("g",{afterCreate:this._afterLinesSubgroupCreate,afterUpdate:this._afterLinesSubgroupUpdate,bind:this,class:this.classes(p.dataLinesSubgroup)},d("title",{key:"title"},e),this._renderLine(e,this.classes(p.averageDataLine)),this._renderLabel({label:t,value:e}))}_renderCustomLines(){if(this.dataLines&&this.dataLines.length)return this.dataLines.map(((e,t)=>this._renderLineSubgroup(e,t)))}_renderLineSubgroup(e,t){const{value:i}=e;return d("g",{afterCreate:this._afterLinesSubgroupCreate,afterUpdate:this._afterLinesSubgroupUpdate,bind:this,class:this.classes(p.dataLinesSubgroup),"data-index":t},d("title",{key:"title"},i),this._renderLine(i),this._renderLabel(e))}_renderLine(e,t){const[i,r,s,a]=this._getLinePosition(e);return d("line",{class:this.classes(p.dataLine,t),"shape-rendering":"crispEdges",x1:i,x2:r,y1:s,y2:a})}_renderLabel(e,t){const{label:i,value:r}=e,[s,a]=this._getLabelPosition(r),n=2;return d("text",{class:this.classes(p.label,t),"text-anchor":"end",transform:"horizontal"===this.layout?"rotate(270)":null,x:s,y:a-n},i??"")}_renderFillDefinition(e){const{width:t,height:i}=this._containerDimensions;return d("clipPath",{id:e},d("rect",{height:i,width:t,x:"0",y:"0"}))}_afterContainerNodeCreate(e){this._containerNode=e,this.addHandles(o(e,(e=>{const{width:t,height:i}=e.contentRect;this._containerDimensions={width:t,height:i}})))}_getIndexFromElement(e){const t=e.dataset?.index,i=e.getAttribute("data-index");return null!=t?parseInt(t,10):null!=i?parseInt(i,10):null}_afterBarCreate(e){if(this.barCreatedFunction){const t=this._getIndexFromElement(e)??-1;this.barCreatedFunction(t,e)}}_afterLinesSubgroupCreate(e){if(this.dataLineCreatedFunction){const t=this._getIndexFromElement(e),i=e.childNodes[1],r=e.childNodes[2]?e.childNodes[2]:null;this.dataLineCreatedFunction(i,r,t)}}_afterLinesSubgroupUpdate(e){if(this.dataLineUpdatedFunction){const t=this._getIndexFromElement(e),i=e.childNodes[1],r=e.childNodes[2]?e.childNodes[2]:null;this.dataLineUpdatedFunction(i,r,t)}}_getBarDimensions(e,t){const{bins:i,layout:r}=this,s=i?i.map((e=>e.count)):[],a=Math.max.apply(Math,s);return s.map((i=>"vertical"===r?[e/s.length,0!==a?i/a*t:0]:[0!==a?i/a*e:0,t/s.length]))}_getLinePosition(e){const{layout:t,min:i,viewModel:{range:r}}=this;if(null==i)return[0,0,0,0];const s=Math.round((e-i)/r*100)/100,{width:a,height:n}=this._containerDimensions,[o,l]=[s*a||1,n-s*n||1];return"vertical"===t?[0,"100%",l,l]:[o,o,"100%",0]}_getLabelPosition(e){const{layout:t,min:i,viewModel:{range:r}}=this;if(null==i)return[0,0];const s=Math.round((e-i)/r*100)/100,{width:a,height:n}=this._containerDimensions;return"vertical"===t?[a,n-s*n]:[0,s*a]}};e([t()],g.prototype,"_bgFillId",void 0),e([t()],g.prototype,"_containerNode",void 0),e([t()],g.prototype,"_containerDimensions",void 0),e([t()],g.prototype,"_defaultBarColor",void 0),e([t()],g.prototype,"average",null),e([t()],g.prototype,"barCreatedFunction",void 0),e([t()],g.prototype,"dataLines",void 0),e([t()],g.prototype,"dataLineCreatedFunction",void 0),e([t()],g.prototype,"dataLineUpdatedFunction",void 0),e([t()],g.prototype,"label",null),e([t()],g.prototype,"labelFormatFunction",null),e([t({value:"horizontal"})],g.prototype,"layout",null),e([t()],g.prototype,"max",null),e([t(),l("esri/widgets/Histogram/t9n/Histogram")],g.prototype,"messages",void 0),e([t()],g.prototype,"min",null),e([t({readOnly:!0})],g.prototype,"state",null),e([t()],g.prototype,"viewModel",void 0),g=h=e([i("esri.widgets.Histogram")],g);const m=g;export{m as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import t from"../Color.js";import{watch as i}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{Integer as s}from"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import o from"./Histogram.js";import n from"./Slider.js";import l from"./Widget.js";import d from"./HistogramRangeSlider/HistogramRangeSliderViewModel.js";import{getDeviationValues as h}from"./smartMapping/support/utils.js";import{globalCss as u}from"./support/globalCss.js";import{legacyIcon as p}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as g}from"./support/jsxFactory.js";const c="esri-histogram-range-slider",v={base:c,widgetIcon:p.edit,sliderContainer:`${c}__slider-container`,histogramContainer:`${c}__histogram-container`,rangeTypePrefix:`${c}__range-type--`};let b=class extends l{constructor(e,i){super(e,i),this._barElements=[],this._histogram=null,this._slider=null,this.barCreatedFunction=null,this.dataLines=null,this.dataLineCreatedFunction=null,this.excludedBarColor=new t("#d7e5f0"),this.includedBarColor=new t("#599dd4"),this.messages=null,this.standardDeviationCount=1,this.viewModel=new d}initialize(){const{average:e,bins:t,hasTimeData:r,max:s,min:a,viewModel:l}=this;this._updateBarFill=this._updateBarFill.bind(this),this._histogram=new o({average:e,bins:t,barCreatedFunction:(e,t)=>{0===e&&(this._barElements=[]),this._barElements.push(t),this._updateBarFill(e,t),this.barCreatedFunction&&this.barCreatedFunction(e,t)},dataLines:this._getDataLines(),dataLineCreatedFunction:(e,t)=>{this.dataLineCreatedFunction&&this.dataLineCreatedFunction(e,t)},labelFormatFunction:this.labelFormatFunction,layout:"horizontal",max:s,min:a}),this._slider=new n({labelFormatFunction:this.labelFormatFunction,layout:"horizontal",visibleElements:{labels:!0,rangeLabels:!0},rangeLabelInputsEnabled:!r,viewModel:l}),this.addHandles([this._slider.on(["max-change","min-change"],(e=>this.emit(e.type,e))),this._slider.on(["segment-drag","thumb-change","thumb-drag"],(e=>{this._updateBarFills(),this.emit(e.type,e)})),i((()=>this.bins),(e=>{if(e&&this._histogram.bins){const t=this._histogram.bins.length-e.length;this._barElements.splice(-t,t)}else this._barElements=[];this._histogram.set({bins:e}),this._updateBarFills(),this.scheduleRender()})),i((()=>[this.max,this.min,this.rangeType,this.values]),(([e,t])=>{this._histogram.set({max:e,min:t}),this._updateBarFills(),this.scheduleRender()})),i((()=>[this.average,this.dataLines,this.standardDeviation,this.standardDeviationCount]),(([e])=>{this._histogram.set({average:e,dataLines:this._getDataLines()})})),i((()=>this.labelFormatFunction),(e=>{this._histogram.set({labelFormatFunction:e})})),i((()=>this.hasTimeData),(e=>{this._slider.set({rangeLabelInputsEnabled:!e})}))])}get average(){return this.viewModel.average}set average(e){this.viewModel.average=e}get bins(){return this.viewModel.bins}set bins(e){this.viewModel.bins=e}get hasTimeData(){return this.viewModel.hasTimeData}set hasTimeData(e){this.viewModel.hasTimeData=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelFormatFunction(){return this.viewModel.labelFormatFunction}set labelFormatFunction(e){this.viewModel.labelFormatFunction=e}get max(){return this.viewModel.max}set max(e){this.viewModel.max=e}get min(){return this.viewModel.min}set min(e){this.viewModel.min=e}get precision(){return this.viewModel.precision}set precision(e){this.viewModel.precision=e}get rangeType(){return this.viewModel.rangeType}set rangeType(e){this.viewModel.rangeType=e}get standardDeviation(){return this.viewModel.standardDeviation}set standardDeviation(e){this.viewModel.standardDeviation=e}get values(){return this.viewModel.values}set values(e){this.viewModel.values=e}generateWhereClause(e){return this.viewModel.generateWhereClause(e)}render(){const{rangeType:e,viewModel:t,label:i}=this,r=this.classes(v.base,u.widget,`${v.rangeTypePrefix}${e}`,"disabled"===t.state?u.disabled:null);return g("div",{"aria-label":i,class:r},"disabled"===t.state?null:this._renderContent())}_renderContent(){return[this._renderHistogram(),this._renderSlider()]}_renderSlider(){return g("div",{key:`${this.id}-slider-container
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import t from"../Color.js";import{watch as i}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{Integer as s}from"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import o from"./Histogram.js";import n from"./Slider.js";import l from"./Widget.js";import d from"./HistogramRangeSlider/HistogramRangeSliderViewModel.js";import{getDeviationValues as h}from"./smartMapping/support/utils.js";import{globalCss as u}from"./support/globalCss.js";import{legacyIcon as p}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as g}from"./support/jsxFactory.js";const c="esri-histogram-range-slider",v={base:c,widgetIcon:p.edit,sliderContainer:`${c}__slider-container`,histogramContainer:`${c}__histogram-container`,rangeTypePrefix:`${c}__range-type--`};let b=class extends l{constructor(e,i){super(e,i),this._barElements=[],this._histogram=null,this._slider=null,this.barCreatedFunction=null,this.dataLines=null,this.dataLineCreatedFunction=null,this.excludedBarColor=new t("#d7e5f0"),this.includedBarColor=new t("#599dd4"),this.messages=null,this.standardDeviationCount=1,this.viewModel=new d}initialize(){const{average:e,bins:t,hasTimeData:r,max:s,min:a,viewModel:l}=this;this._updateBarFill=this._updateBarFill.bind(this),this._histogram=new o({average:e,bins:t,barCreatedFunction:(e,t)=>{0===e&&(this._barElements=[]),this._barElements.push(t),this._updateBarFill(e,t),this.barCreatedFunction&&this.barCreatedFunction(e,t)},dataLines:this._getDataLines(),dataLineCreatedFunction:(e,t)=>{this.dataLineCreatedFunction&&this.dataLineCreatedFunction(e,t)},labelFormatFunction:this.labelFormatFunction,layout:"horizontal",max:s,min:a}),this._slider=new n({labelFormatFunction:this.labelFormatFunction,layout:"horizontal",visibleElements:{labels:!0,rangeLabels:!0},rangeLabelInputsEnabled:!r,viewModel:l}),this.addHandles([this._slider.on(["max-change","min-change"],(e=>this.emit(e.type,e))),this._slider.on(["segment-drag","thumb-change","thumb-drag"],(e=>{this._updateBarFills(),this.emit(e.type,e)})),i((()=>this.bins),(e=>{if(e&&this._histogram.bins){const t=this._histogram.bins.length-e.length;this._barElements.splice(-t,t)}else this._barElements=[];this._histogram.set({bins:e}),this._updateBarFills(),this.scheduleRender()})),i((()=>[this.max,this.min,this.rangeType,this.values]),(([e,t])=>{this._histogram.set({max:e,min:t}),this._updateBarFills(),this.scheduleRender()})),i((()=>[this.average,this.dataLines,this.standardDeviation,this.standardDeviationCount]),(([e])=>{this._histogram.set({average:e,dataLines:this._getDataLines()})})),i((()=>this.labelFormatFunction),(e=>{this._histogram.set({labelFormatFunction:e})})),i((()=>this.hasTimeData),(e=>{this._slider.set({rangeLabelInputsEnabled:!e})}))])}get average(){return this.viewModel.average}set average(e){this.viewModel.average=e}get bins(){return this.viewModel.bins}set bins(e){this.viewModel.bins=e}get hasTimeData(){return this.viewModel.hasTimeData}set hasTimeData(e){this.viewModel.hasTimeData=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get labelFormatFunction(){return this.viewModel.labelFormatFunction}set labelFormatFunction(e){this.viewModel.labelFormatFunction=e}get max(){return this.viewModel.max}set max(e){this.viewModel.max=e}get min(){return this.viewModel.min}set min(e){this.viewModel.min=e}get precision(){return this.viewModel.precision}set precision(e){this.viewModel.precision=e}get rangeType(){return this.viewModel.rangeType}set rangeType(e){this.viewModel.rangeType=e}get standardDeviation(){return this.viewModel.standardDeviation}set standardDeviation(e){this.viewModel.standardDeviation=e}get values(){return this.viewModel.values}set values(e){this.viewModel.values=e}generateWhereClause(e){return this.viewModel.generateWhereClause(e)}render(){const{rangeType:e,viewModel:t,label:i}=this,r=this.classes(v.base,u.widget,`${v.rangeTypePrefix}${e}`,"disabled"===t.state?u.disabled:null);return g("div",{"aria-label":i,class:r},"disabled"===t.state?null:this._renderContent())}_renderContent(){return[this._renderHistogram(),this._renderSlider()]}_renderSlider(){return g("div",{class:v.sliderContainer,key:`${this.id}-slider-container`},this._slider.render())}_renderHistogram(){return g("div",{class:v.histogramContainer},this._histogram.render())}_getDataLines(){return[...this._getStandardDeviationDataLines(),...this.dataLines||[]]}_getStandardDeviationDataLines(){const{average:e,standardDeviation:t,standardDeviationCount:i}=this;return h(t,e,i).map((e=>({value:e})))}_updateBarFills(){this._barElements.forEach(((e,t)=>this._updateBarFill(t,e)))}_updateBarFill(e,t){t.setAttribute("fill",this._getFillForBar(e)?.toHex()??"")}_getFillForBar(e){const{bins:t,rangeType:i,values:r}=this;if(-1===e||!t?.length||!i||!r?.length)return null;const s=t[e];if(!s)return null;const{maxValue:a,minValue:o}=s,n=a-o,l=r[0]>o&&r[0]<a;switch(i){case"equal":case"not-equal":return this.includedBarColor;case"less-than":case"at-most":return l?this._getBlendedColor((r[0]-o)/n):a<=r[0]?this.includedBarColor:this.excludedBarColor;case"greater-than":case"at-least":return l?this._getBlendedColor(1-(r[0]-o)/n):o>=r[0]?this.includedBarColor:this.excludedBarColor;case"between":if(2===r.length)return r[0]>o&&r[0]<a?this._getBlendedColor(1-(r[0]-o)/n):r[1]>o&&r[1]<a?this._getBlendedColor((r[1]-o)/n):o>=r[0]&&a<=r[1]?this.includedBarColor:this.excludedBarColor;break;case"not-between":if(2===r.length)return r[0]>o&&r[0]<a?this._getBlendedColor((r[0]-o)/n):r[1]>o&&r[1]<a?this._getBlendedColor(1-(r[1]-o)/n):o>r[0]&&a<r[1]?this.excludedBarColor:this.includedBarColor}return this.includedBarColor}_getBlendedColor(e){return t.blendColors(this.excludedBarColor,this.includedBarColor,e)}};e([r()],b.prototype,"average",null),e([r()],b.prototype,"barCreatedFunction",void 0),e([r()],b.prototype,"bins",null),e([r()],b.prototype,"dataLines",void 0),e([r()],b.prototype,"dataLineCreatedFunction",void 0),e([r({type:t,json:{type:[s],write:!0}})],b.prototype,"excludedBarColor",void 0),e([r()],b.prototype,"hasTimeData",null),e([r({type:t,json:{type:[s],write:!0}})],b.prototype,"includedBarColor",void 0),e([r()],b.prototype,"label",null),e([r()],b.prototype,"labelFormatFunction",null),e([r()],b.prototype,"max",null),e([r(),m("esri/widgets/HistogramRangeSlider/t9n/HistogramRangeSlider")],b.prototype,"messages",void 0),e([r()],b.prototype,"min",null),e([r()],b.prototype,"precision",null),e([r()],b.prototype,"rangeType",null),e([r()],b.prototype,"standardDeviation",null),e([r()],b.prototype,"standardDeviationCount",void 0),e([r()],b.prototype,"values",null),e([r()],b.prototype,"viewModel",void 0),b=e([a("esri.widgets.HistogramRangeSlider")],b);const _=b;export{_ as default};
|
package/widgets/Home.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as t}from"../core/accessorSupport/decorators/subclass.js";import s from"./Widget.js";import i from"./Home/HomeViewModel.js";import{loadCalciteComponents as r}from"./support/componentsUtils.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as c}from"./support/legacyIcon.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import{vmEvent as p}from"./support/decorators/vmEvent.js";import{tsx as d}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const m={base:"esri-home",widgetIcon:c.home},g="home";let u=class extends s{constructor(e,o){super(e,o),this.iconClass=m.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.uiStrings=void 0,this.viewModel=new i}loadDependencies(){return r({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js")})}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get viewpoint(){return this.viewModel.viewpoint}set viewpoint(e){this.viewModel.viewpoint=e}cancelGo(){this.viewModel.cancelGo()}go(){return this.viewModel.go()}render(){const e=this.viewModel?.state,{messagesCommon:o,messages:t}=this,s={[n.disabled]:"disabled"===e};return d("div",{bind:this,class:this.classes(m.base,n.widget,n.widgetButton,s),
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as t}from"../core/accessorSupport/decorators/subclass.js";import s from"./Widget.js";import i from"./Home/HomeViewModel.js";import{loadCalciteComponents as r}from"./support/componentsUtils.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as c}from"./support/legacyIcon.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as a}from"./support/decorators/messageBundle.js";import{vmEvent as p}from"./support/decorators/vmEvent.js";import{tsx as d}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const m={base:"esri-home",widgetIcon:c.home},g="home";let u=class extends s{constructor(e,o){super(e,o),this.iconClass=m.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.uiStrings=void 0,this.viewModel=new i}loadDependencies(){return r({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js")})}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}get viewpoint(){return this.viewModel.viewpoint}set viewpoint(e){this.viewModel.viewpoint=e}cancelGo(){this.viewModel.cancelGo()}go(){return this.viewModel.go()}render(){const e=this.viewModel?.state,{messagesCommon:o,messages:t}=this,s={[n.disabled]:"disabled"===e};return d("div",{"aria-label":t.widgetLabel,bind:this,class:this.classes(m.base,n.widget,n.widgetButton,s),onclick:this._go,onkeydown:this._go,role:"button",tabIndex:0,title:"going-home"===e?o.cancel:t.title},this._renderIcon())}_renderIcon(){const{icon:e,iconClass:o,viewModel:t}=this;return"going-home"===t?.state?d("calcite-loader",{inline:!0,key:"loader",label:"",scale:"s",type:"indeterminate"}):e?this._renderCalciteIcon(e):o&&o!==m.widgetIcon?this._renderLegacyIcon(o):this._renderCalciteIcon(g)}_renderCalciteIcon(e){return d("calcite-icon",{icon:e,key:"icon",scale:"s"})}_renderLegacyIcon(e){return d("span",{"aria-hidden":"true",class:this.classes(c.icon,e),key:"legacy-icon"})}_go(){const{viewModel:e}=this;"going-home"===e.state?e.cancelGo():e.go()}};e([o()],u.prototype,"goToOverride",null),e([o()],u.prototype,"iconClass",void 0),e([o()],u.prototype,"icon",void 0),e([o()],u.prototype,"label",null),e([o(),a("esri/widgets/Home/t9n/Home")],u.prototype,"messages",void 0),e([o(),a("esri/t9n/common")],u.prototype,"messagesCommon",void 0),e([o()],u.prototype,"uiStrings",void 0),e([o()],u.prototype,"view",null),e([o({type:i}),p("go")],u.prototype,"viewModel",void 0),e([o()],u.prototype,"viewpoint",null),e([l()],u.prototype,"_go",null),u=e([t("esri.widgets.Home")],u);const v=u;export{v as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../chunks/tslib.es6.js";import{IdentifiableMixin as t}from"../../core/Identifiable.js";import{destroyMaybe as s}from"../../core/maybe.js";import{watch as n,initial as i}from"../../core/reactiveUtils.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import l from"../Widget.js";import{getLegendLayerInfo as a}from"./support/layerListUtils.js";import{isWidget as d}from"../support/widget.js";import{tsx as c}from"../support/jsxFactory.js";const g="esri-layer-list-panel",h=`${g}__content`,p={base:g,content:h,contentLegend:`${h}--legend`,contentString:`${h}--string`,contentElement:`${h}--html-element`,contentWidget:`${h}--widget`},m="legends";let u=class extends(t(l)){constructor(e,t){super(e,t),this._legend=null,this.content=null,this.image=null,this.listItem=null,this.open=!1,this.visible=!0}initialize(){this.addHandles(n((()=>this.content),(e=>this._createLegend(e)),i))}destroy(){this._legend=s(this._legend)}get className(){const{image:e}=this,t=this._getFirstWidget();return this._get("className")||(!e&&t?t.iconClass??"":"")}set className(e){this._override("className",e)}get disabled(){const{listItem:e,_legend:t,content:s}=this;return!e||!(Array.isArray(s)&&s.length>1)&&(!!t&&(!t.activeLayerInfos?.length||!e.visibleAtCurrentScale||!e.visible))}set disabled(e){this._overrideIfSome("disabled",e)}get title(){const e=this._getFirstWidget();return this._get("title")||(e?.label??"")}set title(e){this._override("title",e)}render(){return c("div",{class:p.base},this._renderContents())}_renderContent(e){const{_legend:t,disabled:s}=this;return!e||s?null:"legend"===e&&t?c("div",{class:this.classes(p.content,p.contentLegend),key:t},t.render()):"string"==typeof e?c("div",{class:this.classes(p.content,p.contentString),
|
|
5
|
+
import{_ as e}from"../../chunks/tslib.es6.js";import{IdentifiableMixin as t}from"../../core/Identifiable.js";import{destroyMaybe as s}from"../../core/maybe.js";import{watch as n,initial as i}from"../../core/reactiveUtils.js";import{property as r}from"../../core/accessorSupport/decorators/property.js";import"../../core/accessorSupport/ensureType.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import l from"../Widget.js";import{getLegendLayerInfo as a}from"./support/layerListUtils.js";import{isWidget as d}from"../support/widget.js";import{tsx as c}from"../support/jsxFactory.js";const g="esri-layer-list-panel",h=`${g}__content`,p={base:g,content:h,contentLegend:`${h}--legend`,contentString:`${h}--string`,contentElement:`${h}--html-element`,contentWidget:`${h}--widget`},m="legends";let u=class extends(t(l)){constructor(e,t){super(e,t),this._legend=null,this.content=null,this.image=null,this.listItem=null,this.open=!1,this.visible=!0}initialize(){this.addHandles(n((()=>this.content),(e=>this._createLegend(e)),i))}destroy(){this._legend=s(this._legend)}get className(){const{image:e}=this,t=this._getFirstWidget();return this._get("className")||(!e&&t?t.iconClass??"":"")}set className(e){this._override("className",e)}get disabled(){const{listItem:e,_legend:t,content:s}=this;return!e||!(Array.isArray(s)&&s.length>1)&&(!!t&&(!t.activeLayerInfos?.length||!e.visibleAtCurrentScale||!e.visible))}set disabled(e){this._overrideIfSome("disabled",e)}get title(){const e=this._getFirstWidget();return this._get("title")||(e?.label??"")}set title(e){this._override("title",e)}render(){return c("div",{class:p.base},this._renderContents())}_renderContent(e){const{_legend:t,disabled:s}=this;return!e||s?null:"legend"===e&&t?c("div",{class:this.classes(p.content,p.contentLegend),key:t},t.render()):"string"==typeof e?c("div",{class:this.classes(p.content,p.contentString),innerHTML:e,key:e}):d(e)?c("div",{class:this.classes(p.content,p.contentWidget),key:e},e.render()):e instanceof HTMLElement?c("div",{afterCreate:this._attachToNode,bind:e,class:this.classes(p.content,p.contentElement),key:e}):null}_renderContents(){const{content:e}=this;return Array.isArray(e)?e.map((e=>this._renderContent(e))):this._renderContent(e)}_getLegendOptions(){const{listItem:e}=this;if(!e)return{};const{layer:t,view:s}=e;return t&&s?{view:s,layerInfos:[a(t)]}:{}}async _createLegend(e){if(!this._hasLegend(e)||this._legend)return;const{default:t}=await import("../Legend.js"),{listItem:s}=this,r=new t(this._getLegendOptions());this._legend=r,this.notifyChange("className"),this.notifyChange("title");const o=n((()=>[s?.view,s?.layer,s?.layer?.source,s?.layer?.parent]),(()=>this._updateLegend(r)),i);this.addHandles(o,m),this.scheduleRender()}_hasLegend(e){const t="legend";return e===t||null!=e&&!!Array.isArray(e)&&e.includes(t)}_attachToNode(e){e.appendChild(this)}_updateLegend(e){e.set(this._getLegendOptions()),this.scheduleRender()}_getWidget(e){return"legend"===e?this._legend:d(e)?e:null}_getFirstWidget(){const{content:e}=this;if(Array.isArray(e)){let t=null;return e.some((e=>{const s=this._getWidget(e);return s&&(t=s),!!s})),t}return this._getWidget(e)}};e([r()],u.prototype,"_legend",void 0),e([r()],u.prototype,"className",null),e([r()],u.prototype,"content",void 0),e([r()],u.prototype,"disabled",null),e([r()],u.prototype,"image",void 0),e([r()],u.prototype,"listItem",void 0),e([r()],u.prototype,"title",null),e([r()],u.prototype,"open",void 0),e([r()],u.prototype,"visible",void 0),u=e([o("esri.widgets.LayerList.ListItemPanel")],u);const y=u;export{y as default};
|
package/widgets/LayerList.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{on as s,watch as o,initial as n,syncAndInitial as l}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{cast as a}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import h from"./LayerList/LayerListViewModel.js";import u from"./LayerList/ListItem.js";import{findSelectedItem as m,sortLayersToIds as g,sortChildLayersToIds as p,canSortSublayers as _}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as b}from"./support/componentsUtils.js";import{globalCss as y}from"./support/globalCss.js";import{legacyIcon as I}from"./support/legacyIcon.js";import{accessibleHandler as v}from"./support/decorators/accessibleHandler.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{vmEvent as C}from"./support/decorators/vmEvent.js";import{tsx as S}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import A from"sortablejs";function $(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const w=t.ofType(u),k="data-sort-filter",M="data-layer-uid",T="layerUid",E="esri-layer-list",L=`${E}__item`,x={base:E,widgetIcon:I.layers,newUI:`${E}--new-ui`,noItems:`${E}__no-items`,list:`${E}__list`,listRoot:`${E}__list--root`,listExclusive:`${E}__list--exclusive`,listEmpty:`${E}__list--empty`,listEmptyState:`${E}__list-empty-state`,listEmptyStateDragEnabled:`${E}__list-empty-state--drag-enabled`,listInherited:`${E}__list--inherited`,listIndependent:`${E}__list--independent`,item:L,itemContent:`${L}-content`,itemMessage:`${L}--has-message`,itemInvisible:`${L}--invisible`,itemInvisibleAtScale:`${L}--invisible-at-scale`,itemChildren:`${L}--has-children`,itemSelectable:`${L}--selectable`,itemContainer:`${L}-container`,actionsMenu:`${L}-actions-menu`,actionsMenuItem:`${L}-actions-menu-item`,actionsMenuItemActive:`${L}-actions-menu-item--active`,actions:`${L}-actions`,actionsList:`${L}-actions-list`,action:`${L}-action`,actionIcon:`${L}-action-icon`,actionImage:`${L}-action-image`,actionTitle:`${L}-action-title`,actionToggle:`${E}__action-toggle`,actionToggleOn:`${E}__action-toggle--on`,label:`${L}-label`,message:`${L}-message`,title:`${L}-title`,statusIndicator:`${E}__status-indicator`,publishing:`${E}__publishing`,updating:`${E}__updating`,connectionStatus:`${E}__connection-status`,connectionStatusConnected:`${E}__connection-status--connected`,toggleVisible:`${L}-toggle`,toggleVisibleIcon:`${L}-toggle-icon`,toggleIcon:`${L}-toggle-icon`,radioIcon:`${L}-radio-icon`,childToggle:`${E}__child-toggle`,childToggleOpen:`${E}__child-toggle--open`,childOpened:`${E}__child-toggle-icon--opened`,childClosed:`${E}__child-toggle-icon--closed`,childClosed_RTL:`${E}__child-toggle-icon--closed-rtl`,sortableChosen:`${E}--chosen`},R={actions:"actions",actionSection:"action-section",items:"items"},N={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function j(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>j(e)))}const O="root",U={statusIndicators:!0,errors:!1};let V=class extends d{constructor(e,t){super(e,t),this._sortableNodes=new Map,this._sortableMap=new Map,this._focusSortUid=null,this._tooltipReferenceMap=new Map,this.visibleItems=null,this.iconClass=x.widgetIcon,this.icon=null,this.listItemCanGiveFunction=null,this.listItemCanReceiveFunction=null,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.selectionEnabled=!1,this.selectedItems=new w,this.style="classic",this.viewModel=new h,this.visibleElements={...U},this._onSortableSort=({to:e,from:t,item:i,newIndex:s})=>{t&&e&&(t===e?this._sortLayers(this._sortableMap.get(t.dataset.group)):this._moveLayerFromChildList({to:e,from:t,item:i,newIndex:s}))},this._sortableCanSort=(e,t)=>!(!e.el.dataset.group||!t.el.dataset.group),this._sortableCanPull=(e,t,i)=>{const{listItemCanGiveFunction:s}=this,o={selected:P(i),from:P(t.el),to:P(e.el)};return!this._sortableCanSort(e,t)||"function"!=typeof s||s.call(null,o)},this._sortableCanPut=(e,t,i)=>{const{listItemCanReceiveFunction:s}=this,o={selected:P(i),from:P(t.el),to:P(e.el)};return!this._sortableCanSort(e,t)||"function"!=typeof s||s.call(null,o)},this._onSortableEnd=({oldIndex:e,from:t,to:i,item:s})=>{t!==i&&t.insertBefore(s,t.children[e])}}initialize(){const e=this.operationalItems;this._setVisibleItems(e),this.addHandles([s((()=>this.operationalItems),"change",(()=>this._itemsChanged(e))),o((()=>this.visibleElements),(()=>this._itemsChanged(e))),o((()=>this.selectionEnabled),(()=>this._toggleAllSorting()),n)])}loadDependencies(){return b({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}destroy(){this._destroySortables(),this._tooltipReferenceMap.clear()}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get listItemCreatedFunction(){return this.viewModel.listItemCreatedFunction}set listItemCreatedFunction(e){this.viewModel.listItemCreatedFunction=e}get operationalItems(){return this.viewModel.operationalItems}set operationalItems(e){this.viewModel.operationalItems=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...U,...e}}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const{visibleItems:e,style:t}=this,i=this.viewModel?.state,s={[x.newUI]:"modern"===t,[y.hidden]:"loading"===i,[y.disabled]:"disabled"===i},o=this._renderItemTooltips(),n=this._renderItems();return S("div",{class:this.classes(x.base,y.widget,y.panel,s)},e.length?[o,n]:this._renderNoItems())}_renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:i}=this;return e?S("calcite-tooltip",{referenceElement:t.get(e.uid)},i.layerIncompatibleTooltip):null}_renderItemTooltipNodes(e){const{incompatible:t,children:i}=e;return[t?this._renderItemTooltip(e):null,...!t&&i?i.toArray().map((e=>this._renderItemTooltipNodes(e))):[]]}_renderItemTooltips(){return this.visibleItems.toArray().map((e=>this._renderItemTooltipNodes(e)))??[]}_renderNoItems(){return S("div",{class:x.noItems},this.messages.noItemsToDisplay)}_renderItems(){const{visibleItems:e,selectionEnabled:t,messages:i}=this;return S("ul",{"aria-label":i.widgetLabel,role:t?"listbox":void 0,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,"data-group":O,bind:this,class:this.classes(x.list,x.listRoot,x.listIndependent)},e.map((e=>this._renderItem(e,null))).toArray())}_renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[x.actionsMenuItemActive]:e.actionsOpen};return S("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(x.actionsMenuItem,s),tabIndex:0,role:"button","aria-controls":t,"aria-label":i.options,title:i.options},S("span",{"aria-hidden":"true",class:I.handleHorizontal}))}_renderActionsMenu(e,t,i,s){const{panel:o}=e,n=o&&o.visible?this._renderPanelButton(o):null,l=1===i&&this._getSingleActionButton(t),r=l?this._renderAction({item:e,action:l,singleAction:!0}):null,a=!l&&i?this._renderActionsMenuIcon(e,s):null;return a||n||l?S("div",{key:"actions-menu",class:x.actionsMenu},n,r,a):null}_renderChildList(e,t){const{selectionEnabled:i}=this,{visibilityMode:s,children:o}=e,n=this._hasChildren(e),l=!n&&i&&"group"===e.layer?.type,{exclusive:r,inherited:a}=N,c={[x.listEmpty]:!n,[x.listExclusive]:s===r,[x.listInherited]:s===a,[x.listIndependent]:s!==a&&s!==r},d={[x.listEmptyState]:!0,[x.listEmptyStateDragEnabled]:i};return n||l?n?S("ul",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,class:this.classes(x.list,c),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===r?"radiogroup":"group",hidden:!e.open&&!l||null},o?.map((t=>this._renderItem(t,e))).toArray()):S("div",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,class:this.classes(d)},this.messages.noItemsToDisplay):null}_renderChildrenToggle(e,t){const{messagesCommon:i}=this,s=this._hasChildren(e),o={[x.childToggleOpen]:e.open},n=e.open?i.collapse:i.expand;return s?S("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(x.childToggle,o),tabIndex:0,role:"button","aria-controls":t,"aria-label":n,title:n},S("span",{"aria-hidden":"true",class:this.classes(x.childClosed,I.rightTriangleArrow)}),S("span",{"aria-hidden":"true",class:this.classes(x.childOpened,I.downArrow)}),S("span",{"aria-hidden":"true",class:this.classes(x.childClosed_RTL,I.leftTriangleArrow)})):null}_renderItemMessage(e){return e.error?S("div",{key:"esri-layer-list__error",class:x.message,role:"alert"},S("span",{"aria-hidden":"true",class:I.noticeTriangle}),this.messages.layerError):e.incompatible?S("div",{key:"esri-layer-list__incompatible",class:x.message,role:"alert"},S("span",{bind:this,tabIndex:0,"aria-hidden":"true",class:I.noticeTriangle,afterCreate:t=>this._setTooltipReference(t,e)}),this.messages.layerIncompatible):null}_renderItemContent(e,t,i){const{id:s}=this,o=`${s}_${e.uid}`,n=`${o}_actions`,l=`${o}__list`,{panel:r}=e,a=this._filterActions(e.actionsSections),c=this._countActions(a);return[S("div",{key:"list-item-container",class:x.itemContainer},this._renderChildrenToggle(e,l),this._renderLabel(e,t,i),this._renderActionsMenu(e,a,c,n)),this._renderItemMessage(e),c?this._renderActionsSections(e,a,n):null,r&&r.open&&!r.disabled?r.render():null,this._renderChildList(e,l)]}_renderItem(e,t){const{style:i,id:s,selectionEnabled:o,selectedItems:n}=this,l=`${`${s}_${e.uid}`}__title`,r=this._hasMessage(e),a=this._hasChildren(e),c={[x.itemChildren]:a,[x.itemMessage]:!!r,[x.itemInvisible]:"modern"===i&&!e.visible,[x.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[x.itemSelectable]:o};if(o){const i={[M]:e.layer?.uid,[k]:(!e.sortable).toString()};return S("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(x.item,c),"aria-labelledby":l,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item":e,"data-group":t?t.uid:O,tabIndex:0,"aria-selected":m(e,n)?"true":"false",role:"option",...i},this._renderItemContent(e,t,l))}return S("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(x.item,c),"aria-labelledby":l},this._renderItemContent(e,t,l))}_renderConnectionIcon(e){const{connectionStatus:t}=e;return null!=t?S("calcite-icon",{icon:"connected"===t?"beacon":"offline",scale:"s"}):null}_renderItemStatus(e,t){const{visibleElements:i}=this;if(!i.statusIndicators)return null;const{connectionStatus:s,publishing:o,updating:n}=e,l=n&&!t,r=!!s;return S("span",{class:this.classes({[x.statusIndicator]:!0,[x.publishing]:o,[x.updating]:l,[x.connectionStatus]:r,[x.connectionStatusConnected]:r&&"connected"===s}),key:"layer-item-status"},this._renderConnectionIcon(e))}_renderItemTitle(e,t){const{messages:i}=this;if(!e)return null;const s=e.title||i.untitledLayer,o=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return S("span",{key:"layer-title-container",id:t,title:o,"aria-label":o,class:x.title},s)}_renderItemToggleIcon({visible:e},t){const{style:i}=this,{exclusive:s}=N,o=t?.visibilityMode,n="modern"===i,l=o===s,r={[x.toggleVisibleIcon]:n,[x.toggleIcon]:n&&!l,[x.radioIcon]:n&&l,[I.radioChecked]:l&&e,[I.radioUnchecked]:l&&!e,[I.visible]:!l&&e,[I.nonVisible]:!l&&!e};return S("span",{key:"item-toggle-icon",class:this.classes(r),"aria-hidden":"true"})}_renderItemToggle(e,t,i){const{selectionEnabled:s,messages:o}=this,{exclusive:n}=N,l=t?.visibilityMode,r=l===n?"radio":"switch";return S("span",s?{key:"item-toggle-selection-enabled",class:x.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":l,tabIndex:0,title:o.layerVisibility,"aria-checked":e.visible?"true":"false",role:r,"aria-labelledby":i}:{key:"item-toggle",class:x.toggleVisible},this._renderItemToggleIcon(e,t))}_renderLabel(e,t,i){const{selectionEnabled:s,style:o,messages:n}=this,{inherited:l,exclusive:r}=N,a=t?.visibilityMode,c=a===r?"radio":"switch",d=this._renderItemTitle(e,i),h=this._renderItemStatus(e,t),u=this._renderItemToggle(e,t,i),m="modern"===o?[d,h,u]:[u,d,h],g=S("div",s?{key:`item-label-no-selection-${e.uid}`,class:x.label}:{key:`item-label-with-selection-${e.uid}`,class:x.label,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":a,tabIndex:0,"aria-checked":e.visible?"true":"false",title:n.layerVisibility,role:c,"aria-labelledby":i},m);return a===l||e.error?S("div",{key:`item-label-container-${e.uid}`,class:x.label},this._renderItemTitle(e,i),this._renderItemStatus(e,t)):g}_renderPanelButton(e){const{className:t,open:i,title:s,image:o,disabled:n}=e,l=o||t?t:I.defaultAction,r=this._getIconImageStyles(e),a={[x.actionsMenuItemActive]:i&&!n},c={[x.actionImage]:!!r["background-image"],[y.disabledElement]:e.disabled};return l&&(c[l]=!!l),S("div",{"aria-disabled":e.disabled.toString(),key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(x.actionsMenuItem,a),role:"button",tabIndex:e.disabled?void 0:0,title:s,"aria-label":s},S("span",{class:this.classes(c),styles:r}))}_renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>S("ul",{key:`${e}-action-section-${i}`,class:x.actionsList},this._renderActionSection(e,t))));return S("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:x.actions,hidden:!e.actionsOpen||null},s)}_renderActionSection(e,t){return(t&&t.toArray()).map((t=>this._renderAction({item:e,action:t})))}_renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),o="button"!==e.type||e.image||i?i:I.defaultAction,n={[x.actionImage]:!t&&!!s["background-image"],[I.loadingIndicator]:t,[y.rotating]:t};return o&&!t&&(n[o]=!0),S("span",{key:"action-icon","aria-hidden":"true",class:this.classes(x.actionIcon,n),styles:s})}_renderActionTitle(e,t){return t?null:S("span",{key:"action-title",class:x.actionTitle},e)}_renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:o,disabled:n,title:l}=i,r={[x.actionsMenuItem]:s&&"button"===i.type,[x.action]:o||!s&&"toggle"!==i.type,[x.actionToggle]:!o&&"toggle"===i.type,[x.actionToggleOn]:!o&&"toggle"===i.type&&i.value,[y.disabledElement]:n},a=[this._renderActionIcon(i),this._renderActionTitle(l,s)];return s?S("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:r,tabIndex:0,title:l??void 0,"aria-label":l??void 0},a):S("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:r,tabIndex:0,role:"button",title:l??void 0,"aria-label":l??void 0},a)}_setTooltipReference(e,t){this._tooltipReferenceMap.set(t.uid,e),this.scheduleRender()}_hasMessage(e){return!!e.error||e.incompatible}_hasChildren(e){return!!e.children.length&&!this._hasMessage(e)}_sortNodeRemoved(e){const{_sortableMap:t}=this,i=e.dataset.group,s=t.get(i);s&&s.destroy(),t.delete(i)}_destroySortables(){const{_sortableMap:e,_sortableNodes:t}=this;e.forEach((e=>e&&e.destroy())),e.clear(),t.clear()}_moveLayerFromChildList({to:e,from:t,item:i,newIndex:s}){const o=P(i),n=P(e),l=P(t);this.viewModel.moveListItem(o,l,n,s)}_sortLayers(e){if(!e)return;const t=P(e.el),i=e.toArray();t?p(t,i):g(this.view?.map?.layers,i)}_toggleSorting(e,t){const{_sortableMap:i,selectionEnabled:s}=this,o=i.get(t),n=P(e),l=(t===O||n?.childrenSortable&&_(n))&&s;if(o)o.option("disabled",!l);else if(l){const s=A.create(e,{dataIdAttr:M,group:{name:t,pull:this._sortableCanPull,put:this._sortableCanPut},filter:`[${k}="true"]`,fallbackTolerance:4,onSort:this._onSortableSort,onEnd:this._onSortableEnd,disabled:!l,chosenClass:x.sortableChosen});i.set(t,s)}}_toggleAllSorting(){this._sortableNodes.forEach(((e,t)=>this._toggleSorting(e,t)))}_sortNodeCreated(e){const t=e.dataset.group;t&&(this._sortableNodes.set(t,e),this._toggleSorting(e,t))}_setVisibleItems(e){this.visibleItems=e.filter((e=>!e.hidden&&(this.visibleElements.errors||!e.error)))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).at(0)}_focusListItem(e){const{_focusSortUid:t}=this;if(!e||!t)return;const i=P(e);i?.layer?.uid===t&&(e.focus(),this._focusSortUid=null)}_watchActionSectionChanges(e){this.addHandles(e.on("change",this.scheduleRender.bind(this)),R.actionSection),e.forEach((e=>this._renderOnActionChanges(e)))}_renderOnActionChanges(e){"toggle"!==e.type?"slider"!==e.type?this.addHandles(o((()=>[e?.className,e?.image,e?.id,e?.title,e?.visible]),(()=>this.scheduleRender()),n),R.actions):this.addHandles(o((()=>[e?.className,e?.id,e?.title,e?.visible,e?.value,e?.displayValueEnabled,e?.max,e?.min,e?.step]),(()=>this.scheduleRender()),n),R.actions):this.addHandles(o((()=>[e?.className,e?.image,e?.id,e?.title,e?.visible,e?.value]),(()=>this.scheduleRender()),n),R.actions)}_renderOnItemChanges(e){this.addHandles([o((()=>[e?.actionsOpen,e?.visible,e?.open,e?.updating,e?.connectionStatus,e?.publishing,e?.title,e?.visibleAtCurrentScale,e?.error,e?.visibilityMode,e?.panel,e?.panel?.title,e?.panel?.content,e?.panel?.className,e?.sortable,e?.childrenSortable]),(()=>this.scheduleRender()),l),o((()=>[e?.hidden,e?.error]),(()=>this._setVisibleItems(this.operationalItems))),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],R.items),e.children.forEach((e=>this._renderOnItemChanges(e))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e)))}_itemsChanged(e){this.removeHandles(R.items),this.removeHandles(R.actions),this.removeHandles(R.actionSection),e.forEach((e=>this._renderOnItemChanges(e))),this._tooltipReferenceMap.clear(),this._setVisibleItems(e),this.scheduleRender()}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="esri.widgets.LayerList.ListItemPanel"===e.declaredClass||"esri.support.Action.ActionButton"===e.declaredClass||"esri.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:void 0}}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(!t.includes(s))return void this._toggleSelection(e);e.stopPropagation();const o=e.currentTarget,n=P(o),{_sortableMap:l,selectedItems:r}=this,a=o.dataset.group,c=l.get(a);if(!c||!n)return;const d=m(n,r),h=c.toArray(),u=e.target,g=h.indexOf(u.dataset[T]);if(-1!==g){if("ArrowDown"===s){const e=g+1;if(e>=h.length)return;d?($(h,g,e),c.sort(h),this._sortLayers(c),this._focusSortUid=n.layer?.uid):(this._focusSortUid=n.layer?.uid,this.scheduleRender())}if("ArrowUp"===s){const e=g-1;if(e<=-1)return;d?($(h,g,e),c.sort(h),this._sortLayers(c),this._focusSortUid=n.layer?.uid):(this._focusSortUid=n.layer?.uid,this.scheduleRender())}}}_toggleActionsOpen(e){const t=P(e.currentTarget);if(!t)return;const{actionsOpen:i}=t,s=!i;s&&this.operationalItems.forEach((e=>j(e))),t.actionsOpen=s,e.stopPropagation()}_triggerPanel(e){const t=F(e.currentTarget);e.stopPropagation(),t&&!t.disabled&&(t.open=!t.open)}_triggerAction(e){const t=e.currentTarget,i=H(t),s=P(t);i&&s&&("toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s),e.stopPropagation())}_toggleVisibility(e){const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=P(t);s&&(i===N.exclusive&&s.visible||(s.visible=!s.visible),e.stopPropagation())}_toggleChildrenClick(e){const t=P(e.currentTarget);t&&(t.open=!t.open,e.stopPropagation())}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=P(e.currentTarget);if(!s)return;const o=m(s,i),{length:n}=i;if(!t)return n&&!(o&&1===n)?(i.removeAll(),void i.add(s)):void(o?i.remove?.(o):i.add(s));o?i.remove?.(o):i.add(s)}get test(){return{visibleItems:this.visibleItems}}};function P(e){return e?.["data-item"]}function F(e){return e?.["data-panel"]}function H(e){return e?.["data-action"]}e([r()],V.prototype,"visibleItems",void 0),e([r()],V.prototype,"iconClass",void 0),e([r()],V.prototype,"icon",void 0),e([r()],V.prototype,"label",null),e([r()],V.prototype,"listItemCanGiveFunction",void 0),e([r()],V.prototype,"listItemCanReceiveFunction",void 0),e([r()],V.prototype,"listItemCreatedFunction",null),e([r(),f("esri/widgets/LayerList/t9n/LayerList")],V.prototype,"messages",void 0),e([r(),f("esri/t9n/common")],V.prototype,"messagesCommon",void 0),e([r()],V.prototype,"multipleSelectionEnabled",void 0),e([r()],V.prototype,"operationalItems",null),e([r()],V.prototype,"selectionEnabled",void 0),e([r()],V.prototype,"selectedItems",void 0),e([r()],V.prototype,"style",void 0),e([r()],V.prototype,"view",null),e([C("trigger-action"),r({type:h})],V.prototype,"viewModel",void 0),e([r()],V.prototype,"visibleElements",void 0),e([a("visibleElements")],V.prototype,"castVisibleElements",null),e([v()],V.prototype,"_toggleActionsOpen",null),e([v()],V.prototype,"_triggerPanel",null),e([v()],V.prototype,"_triggerAction",null),e([v()],V.prototype,"_toggleVisibility",null),e([v()],V.prototype,"_toggleChildrenClick",null),e([v()],V.prototype,"_toggleSelection",null),V=e([c("esri.widgets.LayerList")],V);const B=V;export{B as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{on as s,watch as o,initial as n,syncAndInitial as l}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import{cast as a}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import h from"./LayerList/LayerListViewModel.js";import u from"./LayerList/ListItem.js";import{findSelectedItem as m,sortLayersToIds as g,sortChildLayersToIds as p,canSortSublayers as _}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as b}from"./support/componentsUtils.js";import{globalCss as y}from"./support/globalCss.js";import{legacyIcon as I}from"./support/legacyIcon.js";import{accessibleHandler as v}from"./support/decorators/accessibleHandler.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{vmEvent as C}from"./support/decorators/vmEvent.js";import{tsx as S}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import A from"sortablejs";function $(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const w=t.ofType(u),k="data-sort-filter",M="data-layer-uid",T="layerUid",E="esri-layer-list",L=`${E}__item`,x={base:E,widgetIcon:I.layers,newUI:`${E}--new-ui`,noItems:`${E}__no-items`,list:`${E}__list`,listRoot:`${E}__list--root`,listExclusive:`${E}__list--exclusive`,listEmpty:`${E}__list--empty`,listEmptyState:`${E}__list-empty-state`,listEmptyStateDragEnabled:`${E}__list-empty-state--drag-enabled`,listInherited:`${E}__list--inherited`,listIndependent:`${E}__list--independent`,item:L,itemContent:`${L}-content`,itemMessage:`${L}--has-message`,itemInvisible:`${L}--invisible`,itemInvisibleAtScale:`${L}--invisible-at-scale`,itemChildren:`${L}--has-children`,itemSelectable:`${L}--selectable`,itemContainer:`${L}-container`,actionsMenu:`${L}-actions-menu`,actionsMenuItem:`${L}-actions-menu-item`,actionsMenuItemActive:`${L}-actions-menu-item--active`,actions:`${L}-actions`,actionsList:`${L}-actions-list`,action:`${L}-action`,actionIcon:`${L}-action-icon`,actionImage:`${L}-action-image`,actionTitle:`${L}-action-title`,actionToggle:`${E}__action-toggle`,actionToggleOn:`${E}__action-toggle--on`,label:`${L}-label`,message:`${L}-message`,title:`${L}-title`,statusIndicator:`${E}__status-indicator`,publishing:`${E}__publishing`,updating:`${E}__updating`,connectionStatus:`${E}__connection-status`,connectionStatusConnected:`${E}__connection-status--connected`,toggleVisible:`${L}-toggle`,toggleVisibleIcon:`${L}-toggle-icon`,toggleIcon:`${L}-toggle-icon`,radioIcon:`${L}-radio-icon`,childToggle:`${E}__child-toggle`,childToggleOpen:`${E}__child-toggle--open`,childOpened:`${E}__child-toggle-icon--opened`,childClosed:`${E}__child-toggle-icon--closed`,childClosed_RTL:`${E}__child-toggle-icon--closed-rtl`,sortableChosen:`${E}--chosen`},R={actions:"actions",actionSection:"action-section",items:"items"},N={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function j(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>j(e)))}const O="root",U={statusIndicators:!0,errors:!1};let V=class extends d{constructor(e,t){super(e,t),this._sortableNodes=new Map,this._sortableMap=new Map,this._focusSortUid=null,this._tooltipReferenceMap=new Map,this.visibleItems=null,this.iconClass=x.widgetIcon,this.icon=null,this.listItemCanGiveFunction=null,this.listItemCanReceiveFunction=null,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.selectionEnabled=!1,this.selectedItems=new w,this.style="classic",this.viewModel=new h,this.visibleElements={...U},this._onSortableSort=({to:e,from:t,item:i,newIndex:s})=>{t&&e&&(t===e?this._sortLayers(this._sortableMap.get(t.dataset.group)):this._moveLayerFromChildList({to:e,from:t,item:i,newIndex:s}))},this._sortableCanSort=(e,t)=>!(!e.el.dataset.group||!t.el.dataset.group),this._sortableCanPull=(e,t,i)=>{const{listItemCanGiveFunction:s}=this,o={selected:P(i),from:P(t.el),to:P(e.el)};return!this._sortableCanSort(e,t)||"function"!=typeof s||s.call(null,o)},this._sortableCanPut=(e,t,i)=>{const{listItemCanReceiveFunction:s}=this,o={selected:P(i),from:P(t.el),to:P(e.el)};return!this._sortableCanSort(e,t)||"function"!=typeof s||s.call(null,o)},this._onSortableEnd=({oldIndex:e,from:t,to:i,item:s})=>{t!==i&&t.insertBefore(s,t.children[e])}}initialize(){const e=this.operationalItems;this._setVisibleItems(e),this.addHandles([s((()=>this.operationalItems),"change",(()=>this._itemsChanged(e))),o((()=>this.visibleElements),(()=>this._itemsChanged(e))),o((()=>this.selectionEnabled),(()=>this._toggleAllSorting()),n)])}loadDependencies(){return b({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}destroy(){this._destroySortables(),this._tooltipReferenceMap.clear()}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get listItemCreatedFunction(){return this.viewModel.listItemCreatedFunction}set listItemCreatedFunction(e){this.viewModel.listItemCreatedFunction=e}get operationalItems(){return this.viewModel.operationalItems}set operationalItems(e){this.viewModel.operationalItems=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...U,...e}}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const{visibleItems:e,style:t}=this,i=this.viewModel?.state,s={[x.newUI]:"modern"===t,[y.hidden]:"loading"===i,[y.disabled]:"disabled"===i},o=this._renderItemTooltips(),n=this._renderItems();return S("div",{class:this.classes(x.base,y.widget,y.panel,s)},e.length?[o,n]:this._renderNoItems())}_renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:i}=this;return e?S("calcite-tooltip",{referenceElement:t.get(e.uid)},i.layerIncompatibleTooltip):null}_renderItemTooltipNodes(e){const{incompatible:t,children:i}=e;return[t?this._renderItemTooltip(e):null,...!t&&i?i.toArray().map((e=>this._renderItemTooltipNodes(e))):[]]}_renderItemTooltips(){return this.visibleItems.toArray().map((e=>this._renderItemTooltipNodes(e)))??[]}_renderNoItems(){return S("div",{class:x.noItems},this.messages.noItemsToDisplay)}_renderItems(){const{visibleItems:e,selectionEnabled:t,messages:i}=this;return S("ul",{afterCreate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,afterUpdate:this._sortNodeCreated,"aria-label":i.widgetLabel,bind:this,class:this.classes(x.list,x.listRoot,x.listIndependent),"data-group":O,role:t?"listbox":void 0},e.map((e=>this._renderItem(e,null))).toArray())}_renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[x.actionsMenuItemActive]:e.actionsOpen};return S("div",{"aria-controls":t,"aria-label":i.options,bind:this,class:this.classes(x.actionsMenuItem,s),"data-item":e,key:"actions-menu-toggle",onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,role:"button",tabIndex:0,title:i.options},S("span",{"aria-hidden":"true",class:I.handleHorizontal}))}_renderActionsMenu(e,t,i,s){const{panel:o}=e,n=o&&o.visible?this._renderPanelButton(o):null,l=1===i&&this._getSingleActionButton(t),r=l?this._renderAction({item:e,action:l,singleAction:!0}):null,a=!l&&i?this._renderActionsMenuIcon(e,s):null;return a||n||l?S("div",{class:x.actionsMenu,key:"actions-menu"},n,r,a):null}_renderChildList(e,t){const{selectionEnabled:i}=this,{visibilityMode:s,children:o}=e,n=this._hasChildren(e),l=!n&&i&&"group"===e.layer?.type,{exclusive:r,inherited:a}=N,c={[x.listEmpty]:!n,[x.listExclusive]:s===r,[x.listInherited]:s===a,[x.listIndependent]:s!==a&&s!==r},d={[x.listEmptyState]:!0,[x.listEmptyStateDragEnabled]:i};return n||l?n?S("ul",{afterCreate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,afterUpdate:this._sortNodeCreated,"aria-expanded":e.open?"true":"false",bind:this,class:this.classes(x.list,c),"data-group":e.uid,"data-item":e,hidden:!e.open&&!l||null,id:t,key:"list-items",role:i?"listbox":s===r?"radiogroup":"group"},o?.map((t=>this._renderItem(t,e))).toArray()):S("div",{afterCreate:this._sortNodeCreated,afterRemoved:this._sortNodeRemoved,afterUpdate:this._sortNodeCreated,bind:this,class:this.classes(d),"data-group":e.uid,"data-item":e,id:t,key:"list-items"},this.messages.noItemsToDisplay):null}_renderChildrenToggle(e,t){const{messagesCommon:i}=this,s=this._hasChildren(e),o={[x.childToggleOpen]:e.open},n=e.open?i.collapse:i.expand;return s?S("span",{"aria-controls":t,"aria-label":n,class:this.classes(x.childToggle,o),"data-item":e,key:"toggle-children",onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,role:"button",tabIndex:0,title:n},S("span",{"aria-hidden":"true",class:this.classes(x.childClosed,I.rightTriangleArrow)}),S("span",{"aria-hidden":"true",class:this.classes(x.childOpened,I.downArrow)}),S("span",{"aria-hidden":"true",class:this.classes(x.childClosed_RTL,I.leftTriangleArrow)})):null}_renderItemMessage(e){return e.error?S("div",{class:x.message,key:"esri-layer-list__error",role:"alert"},S("span",{"aria-hidden":"true",class:I.noticeTriangle}),this.messages.layerError):e.incompatible?S("div",{class:x.message,key:"esri-layer-list__incompatible",role:"alert"},S("span",{afterCreate:t=>this._setTooltipReference(t,e),"aria-hidden":"true",bind:this,class:I.noticeTriangle,tabIndex:0}),this.messages.layerIncompatible):null}_renderItemContent(e,t,i){const{id:s}=this,o=`${s}_${e.uid}`,n=`${o}_actions`,l=`${o}__list`,{panel:r}=e,a=this._filterActions(e.actionsSections),c=this._countActions(a);return[S("div",{class:x.itemContainer,key:"list-item-container"},this._renderChildrenToggle(e,l),this._renderLabel(e,t,i),this._renderActionsMenu(e,a,c,n)),this._renderItemMessage(e),c?this._renderActionsSections(e,a,n):null,r&&r.open&&!r.disabled?r.render():null,this._renderChildList(e,l)]}_renderItem(e,t){const{style:i,id:s,selectionEnabled:o,selectedItems:n}=this,l=`${`${s}_${e.uid}`}__title`,r=this._hasMessage(e),a=this._hasChildren(e),c={[x.itemChildren]:a,[x.itemMessage]:!!r,[x.itemInvisible]:"modern"===i&&!e.visible,[x.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[x.itemSelectable]:o};if(o){const i={[M]:e.layer?.uid,[k]:(!e.sortable).toString()};return S("li",{afterCreate:this._focusListItem,afterUpdate:this._focusListItem,"aria-labelledby":l,"aria-selected":m(e,n)?"true":"false",bind:this,class:this.classes(x.item,c),"data-group":t?t.uid:O,"data-item":e,key:`item-with-selection-${e.uid}`,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,role:"option",tabIndex:0,...i},this._renderItemContent(e,t,l))}return S("li",{afterCreate:this._focusListItem,afterUpdate:this._focusListItem,"aria-labelledby":l,bind:this,class:this.classes(x.item,c),key:`item-no-selection-${e.uid}`},this._renderItemContent(e,t,l))}_renderConnectionIcon(e){const{connectionStatus:t}=e;return null!=t?S("calcite-icon",{icon:"connected"===t?"beacon":"offline",scale:"s"}):null}_renderItemStatus(e,t){const{visibleElements:i}=this;if(!i.statusIndicators)return null;const{connectionStatus:s,publishing:o,updating:n}=e,l=n&&!t,r=!!s;return S("span",{class:this.classes({[x.statusIndicator]:!0,[x.publishing]:o,[x.updating]:l,[x.connectionStatus]:r,[x.connectionStatusConnected]:r&&"connected"===s}),key:"layer-item-status"},this._renderConnectionIcon(e))}_renderItemTitle(e,t){const{messages:i}=this;if(!e)return null;const s=e.title||i.untitledLayer,o=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return S("span",{"aria-label":o,class:x.title,id:t,key:"layer-title-container",title:o},s)}_renderItemToggleIcon({visible:e},t){const{style:i}=this,{exclusive:s}=N,o=t?.visibilityMode,n="modern"===i,l=o===s,r={[x.toggleVisibleIcon]:n,[x.toggleIcon]:n&&!l,[x.radioIcon]:n&&l,[I.radioChecked]:l&&e,[I.radioUnchecked]:l&&!e,[I.visible]:!l&&e,[I.nonVisible]:!l&&!e};return S("span",{"aria-hidden":"true",class:this.classes(r),key:"item-toggle-icon"})}_renderItemToggle(e,t,i){const{selectionEnabled:s,messages:o}=this,{exclusive:n}=N,l=t?.visibilityMode,r=l===n?"radio":"switch";return S("span",s?{"aria-checked":e.visible?"true":"false","aria-labelledby":i,bind:this,class:x.toggleVisible,"data-item":e,"data-parent-visibility":l,key:"item-toggle-selection-enabled",onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,role:r,tabIndex:0,title:o.layerVisibility}:{class:x.toggleVisible,key:"item-toggle"},this._renderItemToggleIcon(e,t))}_renderLabel(e,t,i){const{selectionEnabled:s,style:o,messages:n}=this,{inherited:l,exclusive:r}=N,a=t?.visibilityMode,c=a===r?"radio":"switch",d=this._renderItemTitle(e,i),h=this._renderItemStatus(e,t),u=this._renderItemToggle(e,t,i),m="modern"===o?[d,h,u]:[u,d,h],g=S("div",s?{class:x.label,key:`item-label-no-selection-${e.uid}`}:{"aria-checked":e.visible?"true":"false","aria-labelledby":i,bind:this,class:x.label,"data-item":e,"data-parent-visibility":a,key:`item-label-with-selection-${e.uid}`,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,role:c,tabIndex:0,title:n.layerVisibility},m);return a===l||e.error?S("div",{class:x.label,key:`item-label-container-${e.uid}`},this._renderItemTitle(e,i),this._renderItemStatus(e,t)):g}_renderPanelButton(e){const{className:t,open:i,title:s,image:o,disabled:n}=e,l=o||t?t:I.defaultAction,r=this._getIconImageStyles(e),a={[x.actionsMenuItemActive]:i&&!n},c={[x.actionImage]:!!r["background-image"],[y.disabledElement]:e.disabled};return l&&(c[l]=!!l),S("div",{"aria-disabled":e.disabled.toString(),"aria-label":s,bind:this,class:this.classes(x.actionsMenuItem,a),"data-panel":e,key:`panel-${e.uid}`,onclick:this._triggerPanel,onkeydown:this._triggerPanel,role:"button",tabIndex:e.disabled?void 0:0,title:s},S("span",{class:this.classes(c),styles:r}))}_renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>S("ul",{class:x.actionsList,key:`${e}-action-section-${i}`},this._renderActionSection(e,t))));return S("div",{"aria-expanded":e.actionsOpen?"true":"false",class:x.actions,hidden:!e.actionsOpen||null,id:i,key:"actions-section",role:"group"},s)}_renderActionSection(e,t){return(t&&t.toArray()).map((t=>this._renderAction({item:e,action:t})))}_renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),o="button"!==e.type||e.image||i?i:I.defaultAction,n={[x.actionImage]:!t&&!!s["background-image"],[I.loadingIndicator]:t,[y.rotating]:t};return o&&!t&&(n[o]=!0),S("span",{"aria-hidden":"true",class:this.classes(x.actionIcon,n),key:"action-icon",styles:s})}_renderActionTitle(e,t){return t?null:S("span",{class:x.actionTitle,key:"action-title"},e)}_renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:o,disabled:n,title:l}=i,r={[x.actionsMenuItem]:s&&"button"===i.type,[x.action]:o||!s&&"toggle"!==i.type,[x.actionToggle]:!o&&"toggle"===i.type,[x.actionToggleOn]:!o&&"toggle"===i.type&&i.value,[y.disabledElement]:n},a=[this._renderActionIcon(i),this._renderActionTitle(l,s)];return s?S("div",{"aria-label":l??void 0,bind:this,classes:r,"data-action":i,"data-item":t,key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,role:"button",tabIndex:0,title:l??void 0},a):S("li",{"aria-label":l??void 0,bind:this,classes:r,"data-action":i,"data-item":t,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,role:"button",tabIndex:0,title:l??void 0},a)}_setTooltipReference(e,t){this._tooltipReferenceMap.set(t.uid,e),this.scheduleRender()}_hasMessage(e){return!!e.error||e.incompatible}_hasChildren(e){return!!e.children.length&&!this._hasMessage(e)}_sortNodeRemoved(e){const{_sortableMap:t}=this,i=e.dataset.group,s=t.get(i);s&&s.destroy(),t.delete(i)}_destroySortables(){const{_sortableMap:e,_sortableNodes:t}=this;e.forEach((e=>e&&e.destroy())),e.clear(),t.clear()}_moveLayerFromChildList({to:e,from:t,item:i,newIndex:s}){const o=P(i),n=P(e),l=P(t);this.viewModel.moveListItem(o,l,n,s)}_sortLayers(e){if(!e)return;const t=P(e.el),i=e.toArray();t?p(t,i):g(this.view?.map?.layers,i)}_toggleSorting(e,t){const{_sortableMap:i,selectionEnabled:s}=this,o=i.get(t),n=P(e),l=(t===O||n?.childrenSortable&&_(n))&&s;if(o)o.option("disabled",!l);else if(l){const s=A.create(e,{dataIdAttr:M,group:{name:t,pull:this._sortableCanPull,put:this._sortableCanPut},filter:`[${k}="true"]`,fallbackTolerance:4,onSort:this._onSortableSort,onEnd:this._onSortableEnd,disabled:!l,chosenClass:x.sortableChosen});i.set(t,s)}}_toggleAllSorting(){this._sortableNodes.forEach(((e,t)=>this._toggleSorting(e,t)))}_sortNodeCreated(e){const t=e.dataset.group;t&&(this._sortableNodes.set(t,e),this._toggleSorting(e,t))}_setVisibleItems(e){this.visibleItems=e.filter((e=>!e.hidden&&(this.visibleElements.errors||!e.error)))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).at(0)}_focusListItem(e){const{_focusSortUid:t}=this;if(!e||!t)return;const i=P(e);i?.layer?.uid===t&&(e.focus(),this._focusSortUid=null)}_watchActionSectionChanges(e){this.addHandles(e.on("change",this.scheduleRender.bind(this)),R.actionSection),e.forEach((e=>this._renderOnActionChanges(e)))}_renderOnActionChanges(e){"toggle"!==e.type?"slider"!==e.type?this.addHandles(o((()=>[e?.className,e?.image,e?.id,e?.title,e?.visible]),(()=>this.scheduleRender()),n),R.actions):this.addHandles(o((()=>[e?.className,e?.id,e?.title,e?.visible,e?.value,e?.displayValueEnabled,e?.max,e?.min,e?.step]),(()=>this.scheduleRender()),n),R.actions):this.addHandles(o((()=>[e?.className,e?.image,e?.id,e?.title,e?.visible,e?.value]),(()=>this.scheduleRender()),n),R.actions)}_renderOnItemChanges(e){this.addHandles([o((()=>[e?.actionsOpen,e?.visible,e?.open,e?.updating,e?.connectionStatus,e?.publishing,e?.title,e?.visibleAtCurrentScale,e?.error,e?.visibilityMode,e?.panel,e?.panel?.title,e?.panel?.content,e?.panel?.className,e?.sortable,e?.childrenSortable]),(()=>this.scheduleRender()),l),o((()=>[e?.hidden,e?.error]),(()=>this._setVisibleItems(this.operationalItems))),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],R.items),e.children.forEach((e=>this._renderOnItemChanges(e))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e)))}_itemsChanged(e){this.removeHandles(R.items),this.removeHandles(R.actions),this.removeHandles(R.actionSection),e.forEach((e=>this._renderOnItemChanges(e))),this._tooltipReferenceMap.clear(),this._setVisibleItems(e),this.scheduleRender()}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="esri.widgets.LayerList.ListItemPanel"===e.declaredClass||"esri.support.Action.ActionButton"===e.declaredClass||"esri.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:void 0}}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(!t.includes(s))return void this._toggleSelection(e);e.stopPropagation();const o=e.currentTarget,n=P(o),{_sortableMap:l,selectedItems:r}=this,a=o.dataset.group,c=l.get(a);if(!c||!n)return;const d=m(n,r),h=c.toArray(),u=e.target,g=h.indexOf(u.dataset[T]);if(-1!==g){if("ArrowDown"===s){const e=g+1;if(e>=h.length)return;d?($(h,g,e),c.sort(h),this._sortLayers(c),this._focusSortUid=n.layer?.uid):(this._focusSortUid=n.layer?.uid,this.scheduleRender())}if("ArrowUp"===s){const e=g-1;if(e<=-1)return;d?($(h,g,e),c.sort(h),this._sortLayers(c),this._focusSortUid=n.layer?.uid):(this._focusSortUid=n.layer?.uid,this.scheduleRender())}}}_toggleActionsOpen(e){const t=P(e.currentTarget);if(!t)return;const{actionsOpen:i}=t,s=!i;s&&this.operationalItems.forEach((e=>j(e))),t.actionsOpen=s,e.stopPropagation()}_triggerPanel(e){const t=F(e.currentTarget);e.stopPropagation(),t&&!t.disabled&&(t.open=!t.open)}_triggerAction(e){const t=e.currentTarget,i=H(t),s=P(t);i&&s&&("toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s),e.stopPropagation())}_toggleVisibility(e){const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=P(t);s&&(i===N.exclusive&&s.visible||(s.visible=!s.visible),e.stopPropagation())}_toggleChildrenClick(e){const t=P(e.currentTarget);t&&(t.open=!t.open,e.stopPropagation())}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=P(e.currentTarget);if(!s)return;const o=m(s,i),{length:n}=i;if(!t)return n&&!(o&&1===n)?(i.removeAll(),void i.add(s)):void(o?i.remove?.(o):i.add(s));o?i.remove?.(o):i.add(s)}get test(){return{visibleItems:this.visibleItems}}};function P(e){return e?.["data-item"]}function F(e){return e?.["data-panel"]}function H(e){return e?.["data-action"]}e([r()],V.prototype,"visibleItems",void 0),e([r()],V.prototype,"iconClass",void 0),e([r()],V.prototype,"icon",void 0),e([r()],V.prototype,"label",null),e([r()],V.prototype,"listItemCanGiveFunction",void 0),e([r()],V.prototype,"listItemCanReceiveFunction",void 0),e([r()],V.prototype,"listItemCreatedFunction",null),e([r(),f("esri/widgets/LayerList/t9n/LayerList")],V.prototype,"messages",void 0),e([r(),f("esri/t9n/common")],V.prototype,"messagesCommon",void 0),e([r()],V.prototype,"multipleSelectionEnabled",void 0),e([r()],V.prototype,"operationalItems",null),e([r()],V.prototype,"selectionEnabled",void 0),e([r()],V.prototype,"selectedItems",void 0),e([r()],V.prototype,"style",void 0),e([r()],V.prototype,"view",null),e([C("trigger-action"),r({type:h})],V.prototype,"viewModel",void 0),e([r()],V.prototype,"visibleElements",void 0),e([a("visibleElements")],V.prototype,"castVisibleElements",null),e([v()],V.prototype,"_toggleActionsOpen",null),e([v()],V.prototype,"_triggerPanel",null),e([v()],V.prototype,"_triggerAction",null),e([v()],V.prototype,"_toggleVisibility",null),e([v()],V.prototype,"_toggleChildrenClick",null),e([v()],V.prototype,"_toggleSelection",null),V=e([c("esri.widgets.LayerList")],V);const B=V;export{B as default};
|