@arcgis/core 4.28.0-next.20230921 → 4.28.0-next.20230922
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Graphic.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/date.js +1 -1
- package/arcade/functions/featuresetbase.js +1 -1
- package/arcade/functions/featuresetstats.js +1 -1
- package/arcade.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{2cb36f9686693234991a.js → 07a2dab2f645dcd7d8d6.js} +1 -1
- 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/{580039dd491854ca325c.js → 21fc02f0d5716c4a7acd.js} +1 -1
- package/assets/esri/core/workers/chunks/{072b4e041b8630c513a0.js → 243b1f9b2fba02946481.js} +1 -1
- package/assets/esri/core/workers/chunks/{dff1c3c38dda2bd1a9d6.js → 246a954347fe9318190e.js} +1 -1
- package/assets/esri/core/workers/chunks/{314c307e30f308a40a28.js → 25b09e9c0511c8e1cf8a.js} +1 -1
- package/assets/esri/core/workers/chunks/28a5ef2e2daa4207dd8b.js +1 -0
- package/assets/esri/core/workers/chunks/2b017e1aa1be71974c2e.js +1 -0
- package/assets/esri/core/workers/chunks/425b5733bb88e6efe242.js +1 -0
- package/assets/esri/core/workers/chunks/{c9dfb145f0c1d93e0fbd.js → 4bcca5fffb1fcc2d4353.js} +1 -1
- 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/{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/609a475ab395f2ce63e2.js +1 -0
- 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/{bbc0dcd316c5598bc9ad.js → 74368a5213def6c200a2.js} +1 -1
- package/assets/esri/core/workers/chunks/78e7af899d9d50aa7e74.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/83a15aa4b1c5252c651b.js +1 -0
- package/assets/esri/core/workers/chunks/85e436decdd693f240ee.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/{1f7e041140088f8ac489.js → 97073a60f0ea2a397165.js} +1 -1
- package/assets/esri/core/workers/chunks/{101f776316a85b708927.js → a99070ec4c06c435b744.js} +1 -1
- package/assets/esri/core/workers/chunks/{21a9c8aa2a9e9990df41.js → b499b4fa771e8c422b43.js} +1 -1
- package/assets/esri/core/workers/chunks/bffad8aec92f982cc75a.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/{3ca759f72d3bb29e9ea9.js → e14da83329f7771135bc.js} +2 -2
- 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/fb87fd64411b78afea23.js +1 -0
- 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/config.js +1 -1
- package/core/Accessor.js +1 -1
- package/core/has.js +1 -1
- package/core/sql/DateOnly.js +1 -1
- package/core/sql/WhereClause.js +1 -1
- package/core/sql.js +1 -1
- package/identity/IdentityForm.js +1 -1
- package/identity/IdentityModal.js +1 -1
- package/interfaces.d.ts +28 -199
- package/layers/OrientedImageryLayer.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/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/networks/Network.js +1 -1
- package/package.json +1 -1
- package/rest/featureService/FeatureService.js +1 -1
- package/support/arcadeUtils.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/support/svgUtils.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/layers/MediaLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.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/support/DisplayGL.js +1 -1
- package/views/2d/webglDeps.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/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/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/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/webgl/Texture.js +1 -1
- package/views/webgl/contextUtils.js +1 -1
- package/widgets/AreaMeasurement2D.js +1 -1
- package/widgets/AreaMeasurement3D.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/support/FeatureContentMixin.js +1 -1
- package/widgets/Feature/support/FeatureElementInfo.js +1 -1
- package/widgets/Feature.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.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/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.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/assets/esri/core/workers/chunks/092920c25cac89c038ee.js +0 -1
- package/assets/esri/core/workers/chunks/1b3655f5bf5d90fa8730.js +0 -1
- package/assets/esri/core/workers/chunks/1cf7bb514e7eefc3e9c6.js +0 -1
- package/assets/esri/core/workers/chunks/24629402c647ef6b5f6b.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/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/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/c4bb67150ccd01ea6014.js +0 -1
- package/assets/esri/core/workers/chunks/c60cf62f374e71e562fc.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/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/core/watchUtils.d.ts +0 -4
- package/core/watchUtils.js +0 -5
package/widgets/FeatureForm.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{isSome as t}from"../core/arrayUtils.js";import{deprecatedProperty as i}from"../core/deprecate.js";import o from"../core/Logger.js";import{watch as s,whenOnce as n}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import{isIntegerField as l}from"../layers/support/fieldUtils.js";import d from"./Widget.js";import{css as c}from"./FeatureForm/css.js";import{isGroupInput as p,isFieldInput as u,isRelationshipInput as m,isInputInGroupInput as h,isFieldElementWithInputType as b,getErrorMessageForFieldInput as v,getIconForFeature as g,isNumberFieldInput as _}from"./FeatureForm/featureFormUtils.js";import f from"./FeatureForm/FeatureFormViewModel.js";import{loadCalciteComponents as C}from"./support/componentsUtils.js";import{getLabelForDateFieldValue as y,prepareFieldValueForDateComponents as F,numberingSystem as R,getFieldValueFromDateComponent as w,getFieldValueFromDateComponents as I,isCalciteDateComponent as O}from"./support/dateUtils.js";import{globalCss as k}from"./support/globalCss.js";import{Heading as M,incrementHeadingLevel as x}from"./support/Heading.js";import{legacyIcon as N}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as L}from"./support/decorators/messageBundle.js";import{vmEvent as V}from"./support/decorators/vmEvent.js";import{tsx as j}from"./support/jsxFactory.js";import{substitute as D}from"../intl/substitute.js";const T="data-field-name",E="esri.widgets.FeatureForm",U=o.getLogger(E);let A=class extends d{constructor(e,t){super(e,t),this._attemptFocusOnNextRender=!1,this._dateComponentMap=new Map,this._inputsWithChanges=new Set,this._focusedFieldName=null,this._listObserverNode=null,this._listObserver=new IntersectionObserver((e=>{e.length&&e[0].isIntersecting&&this._incrementRelatedRecordPage()}),{root:window.document}),this.groupDisplay="all",this.headingLevel=2,this.messages=null,this.messagesCommon=null,this.messagesFeature=null,this.messagesTemplates=null,this.viewModel=new f,this._onShowAllRelatedRecordsClick=e=>{const{feature:t,relatedRecordCallbacks:i}=this;t&&i?.showAllRelatedRecords&&i.showAllRelatedRecords({parentFeature:t,relationshipId:e})},this._onAddRelatedRecordsClick=(e,t)=>{const{feature:i,relatedRecordCallbacks:o}=this;i&&o?.addRelatedRecord&&o.addRelatedRecord({parentFeature:i,relatedLayer:t,relationshipId:e})},this._onFormKeyDown=this._onFormKeyDown.bind(this),this._onFormSubmit=this._onFormSubmit.bind(this),this._onGroupClick=this._onGroupClick.bind(this),this._onComponentBlur=this._onComponentBlur.bind(this),this._onComponentFocus=this._onComponentFocus.bind(this),this._onComponentKeyDown=this._onComponentKeyDown.bind(this),this._afterComponentCreate=this._afterComponentCreate.bind(this),this._afterComponentCreateOrUpdate=this._afterComponentCreateOrUpdate.bind(this),this._afterDateComponentCreateOrUpdate=this._afterDateComponentCreateOrUpdate.bind(this),this._afterRadioGroupCreateOrUpdate=this._afterRadioGroupCreateOrUpdate.bind(this)}initialize(){this.addHandles([s((()=>this.feature),(()=>{n((()=>!this.viewModel.updating)).then((()=>{const e=this._getFocusableInput("forward");this._inputsWithChanges.clear(),this._dateComponentMap.clear(),this._focusedFieldName=e?.name||null,this._attemptFocusOnNextRender=!0}))})),this.on("submit",(e=>{if(e.invalid.length>0){const[t]=e.invalid;e.invalid.forEach((e=>this._inputsWithChanges.add(e))),this._focusedFieldName=t,this._attemptFocusOnNextRender=!0,this.scheduleRender()}})),s((()=>[this.viewModel.activeRelationshipInput,this._listObserverNode]),(()=>this._onObserverChange()))])}loadDependencies(){return C({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),combobox:()=>import("@esri/calcite-components/dist/components/calcite-combobox.js"),"combobox-item":()=>import("@esri/calcite-components/dist/components/calcite-combobox-item.js"),"combobox-item-group":()=>import("@esri/calcite-components/dist/components/calcite-combobox-item-group.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),input:()=>import("@esri/calcite-components/dist/components/calcite-input.js"),"input-date-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-date-picker.js"),"input-message":()=>import("@esri/calcite-components/dist/components/calcite-input-message.js"),"input-number":()=>import("@esri/calcite-components/dist/components/calcite-input-number.js"),"input-time-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-time-picker.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js"),progress:()=>import("@esri/calcite-components/dist/components/calcite-progress.js"),"radio-button":()=>import("@esri/calcite-components/dist/components/calcite-radio-button.js"),"radio-button-group":()=>import("@esri/calcite-components/dist/components/calcite-radio-button-group.js"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch.js")})}destroy(){this._listObserverNode&&this._listObserver.unobserve(this._listObserverNode)}get _relatedRecordsEnabled(){const e=this.relatedRecordCallbacks;return!(!e||!(e.addRelatedRecord||e.editRelatedRecord||e.showAllRelatedRecords))}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get feature(){return this.viewModel.feature}set feature(e){this.viewModel.feature=e}get formTemplate(){return this.viewModel.formTemplate}set formTemplate(e){this.viewModel.formTemplate=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get map(){return this.viewModel.map}set map(e){this.viewModel.map=e}get relatedRecordCallbacks(){return this.viewModel.relatedRecordCallbacks}set relatedRecordCallbacks(e){this.viewModel.relatedRecordCallbacks=e}get relationshipId(){return this.viewModel.relationshipId}set relationshipId(e){this.viewModel.relationshipId=e}get spatialReference(){return this.viewModel.spatialReference}set spatialReference(e){this.viewModel.spatialReference=e}get strict(){return this.viewModel.strict}set strict(e){this.viewModel.strict=e}get view(){return i(U,"view",{replacement:"Use FeatureForm.map instead.",version:"4.27"}),this.viewModel.view}set view(e){i(U,"view",{replacement:"Use FeatureForm.map instead.",version:"4.27"}),this.viewModel.view=e}getValues(){return this.viewModel.getValues()}submit(){return this.viewModel.submit()}render(){const{state:e}=this.viewModel;return j("div",{class:this.classes(c.base,k.widget,k.panel)},"ready"===e?this._renderForm():null)}_renderForm(){return j("form",{class:c.form,novalidate:!0,onsubmit:this._onFormSubmit,onkeydown:this._onFormKeyDown},this._renderHeader(),this._renderContent())}_renderHeader(){const e=this.viewModel;if(!e.formHeaderVisible)return;const t=null!=e.formTitle&&j(M,{key:"title",level:this.headingLevel},e.formTitle),i=null!=e.formDescription&&j("p",{class:c.description,key:"description"},e.formDescription);return j("div",{class:c.formHeader},t,i)}_renderContent(){const{viewModel:e}=this;return e.activeRelationshipInput?this._renderActiveRelationshipInput(e.activeRelationshipInput):e.inputs.filter(t).filter((e=>e.visible)).map(((e,t)=>p(e)?this._renderGroup(e,t):u(e)?this._renderLabeledField(e):m(e)?this._renderRelationshipInput(e):void 0))}_renderActiveRelationshipInput(e){return this._renderRelationshipInput(e)}_renderDescriptionOrEmpty(e,t){return null==e?null:j("div",{class:this.classes(c.description),id:t},e)}_renderGroup(e,t){const{formTemplate:i,disabled:o}=this,{description:s,inputs:n,label:r,state:a}=e,l=n.filter((e=>e.visible)),d=this.viewModel.findField(this._focusedFieldName),p=!(!d||d.group!==e),h=`${this.id}_group_${t}`,b=`${this.id}_group-label_${t}`,v=`${this.id}_group-description_${t}`,g=this._renderDescriptionOrEmpty(s,v),_="sequential"===this.groupDisplay,f=_?p:"expanded"===a,C=f?N.up:N.down;return j("fieldset",{"aria-expanded":f.toString(),"aria-labelledby":b,"aria-describedby":s?v:"",class:this.classes(c.group,_?c.groupSequential:null,f?null:c.groupCollapsed,p?c.groupActive:null,o?c.inputDisabled:null),disabled:o,"data-group":e,id:h,key:t,onclick:this._onGroupClick},j("button",{role:_?"presentation":void 0,class:c.groupHeader,type:"button",tabIndex:_?-1:0},j("div",{class:c.groupTitle},j(M,{class:c.groupLabel,id:b,level:null!=i&&i.title?x(this.headingLevel):this.headingLevel},r),g),_?null:j("span",{class:this.classes(C,c.groupToggleIcon)})),l.map((e=>u(e)?this._renderLabeledField(e):m(e)?this._renderRelationshipInput(e):void 0)))}_getFocusableInput(e,t){const i=this.viewModel.allFieldInputs,o="forward"===e?i:i.slice().reverse();let s;if(!t||m(t))s=0;else if(p(t)){const e=t.inputs.find(u);s=e?o.indexOf(e):0}else{let i;if(h(t)&&"collapsed"===t.group.state){const o=t.group.inputs.filter(u);i="forward"===e?o[o.length-1]:o[0]}else i=t;s=o.indexOf(i)+1}for(let n=s;n<o.length;n++){const e=o[n];if(e.visible&&u(e))return e}return null}_renderLabeledField(e){const{dataType:t,feature:i,label:o,layer:s,required:n}=e,r={"aria-label":n?D(this.messages.requiredFieldLabel,{name:o}):o,class:c.label,key:`${s.id}-${i.uid}-${e.name}`},a=[j("div",{class:c.labelTextContent,key:"labelTextContainer"},o,n?j("span",{title:this.messagesCommon.required,"aria-hidden":!0},"*"):void 0),"unsupported"!==t?this._renderFieldInput(e):this._renderReadOnlyComponent(e),this._renderAuxiliaryText(e)];return j("date"===t?"label":"calcite-label",{...r},a)}_renderFieldInput(e){const{dataType:t,domain:i,inputType:o,name:s,updating:n}=e,r=this.getCommonInputProps(e);if("coded-value"===i?.type){const t=this.viewModel.getFieldValueOptionsForField(s,this.messages.empty);return"switch"!==o||e.hasInvalidSwitchValue?"radio-buttons"===o?this._renderRadioButtonComponents(e,t.flat(),r):this._renderComboBoxComponent(e,t,r):this._renderSwitchComponent(e,r)}if("datetime-picker"===o||"date"===t)return this._renderDateComponents(e,r);const a="number"===t?this._renderNumberComponent(e,r):this._renderStringComponent(e,r);return n?j("div",{key:`${r.key}-input-updating-wrapper`,class:c.fieldInputWrapper},a,j("div",{class:c.fieldInputLoader},j("calcite-progress",{type:"indeterminate"}))):a}_renderStringComponent(e,t){return j("calcite-input",{...t,type:"text-area"===e.inputType?"textarea":"text",onCalciteInputInput:e=>this._saveValueFromComponent(e.target)})}_renderNumberComponent(e,t){return j("calcite-input-number",{...t,type:"number",integer:l(e.field),onCalciteInputNumberInput:e=>this._saveValueFromComponent(e.target)})}_renderDateComponents(e,t){const{dateDataType:i,includeTime:o,label:s,name:n,valid:r,value:a}=e,{class:l,max:d,min:p,key:u,readOnly:m,required:h}=t;if("string"===i)return this._renderReadOnlyComponent(e,y(e.field,t.value));const{date:b,time:v}=F(a),g=null!=d?F(d):void 0,_=null!=p?F(p):void 0,f=g?.date??void 0,C=_?.date??void 0,w={afterCreate:this._afterDateComponentCreateOrUpdate,afterUpdate:this._afterDateComponentCreateOrUpdate,"aria-invalid":!r,label:s,numberingSystem:R,overlayPositioning:"fixed",readOnly:m,required:h,tabIndex:t.tabIndex,[T]:n,onfocus:this._onComponentFocus};return j("div",{key:`${u}-date-time-container`,class:c.dateInputContainer},j("calcite-input-date-picker",{bind:this,...w,class:this.classes(l,c.inputDate),"data-date-part":"date",key:`${u}-date-input`,valueAsDate:b??void 0,maxAsDate:f,minAsDate:C,onCalciteInputDatePickerChange:e=>this._saveValueFromDateComponent(e.target),onblur:e=>{this._focusedFieldName=null,this._saveValueFromDateComponent(e.target,!0)}}),o?j("calcite-input-time-picker",{bind:this,...w,class:this.classes(l,c.inputTime),"data-date-part":"time",key:`${u}-time-input`,value:v??void 0,step:1,onCalciteInputTimePickerChange:e=>this._saveValueFromDateComponent(e.target),onblur:e=>{this._focusedFieldName=null,this._saveValueFromDateComponent(e.target,!0)}}):null)}_renderReadOnlyComponent(e,t){const i=this.getCommonInputProps(e);return j("calcite-input",{...i,class:this.classes(c.fieldInput,c.inputDisabled),readOnly:!0,type:"text",value:null!=t?`${t}`:i.value})}_renderComboBoxComponent(e,t,i){const{value:o,name:s}=e,{messages:n,messagesTemplates:r,viewModel:a,_inputsWithChanges:l}=this,d=t.map((e=>e.map((({name:e,value:t})=>j("calcite-combobox-item",{key:`#${t}`,selected:o===t,textLabel:e,value:`${t}`}))))),[c,p]=d;this.viewModel.fieldsWithInvalidCodedValue.has(e)&&p.unshift(j("calcite-combobox-item",{key:"incompatible-option",readOnly:!0,textLabel:`${e.value}`,value:`${e.value}`}));const u=p.length>0?[j("calcite-combobox-item-group",{key:"recommended",label:n.recommended},c),j("calcite-combobox-item-group",{key:"other",label:r.other},p)]:c,m="INSERT"===a.arcadeEditType,h=l.has(s),b=null==o&&(!m||h);if(e.showNoValueOptionEnabled){const t="",i=e.showNoValueLabel||n.empty;u.unshift(j("calcite-combobox-item",{value:t,textLabel:n.empty,selected:b,key:"empty-option"},i))}const v=m&&e.showNoValueOptionEnabled&&!h?()=>{}:i.onblur;return j("calcite-combobox",{...i,selectionMode:"single",disabled:i.readOnly,allowCustomValues:!1,clearDisabled:!0,overlayPositioning:"fixed",onblur:v,onCalciteComboboxChange:({target:e})=>{b&&0===e.selectedItems.length?this._ignoreDeselectionOfNoValueOption(e):this._saveValueFromComponent(e)}},u)}_renderRadioButtonComponents(e,t,i){const{name:o,value:s}=e,n=t.map((({name:e,value:t})=>this._renderRadioButtonComponent({key:e,label:e,name:o,value:t,selected:t===s,props:i})));if(e.showNoValueOptionEnabled){const t="",r=e.showNoValueLabel||this.messages.empty,a=s===t||null===s;n.unshift(this._renderRadioButtonComponent({key:"empty-option",label:r,name:o,value:t,selected:a,props:i}))}return j("calcite-radio-button-group",{afterCreate:this._afterRadioGroupCreateOrUpdate,afterUpdate:this._afterRadioGroupCreateOrUpdate,class:c.inputRadioGroup,"data-field-name":i[T],key:`${i.key}-radio-group`,layout:"vertical",name:i.key,required:i.required},n)}_renderSwitchComponent(e,t){const{value:i}=e,o=!!b(e.element,"switch")&&i===e.element.input.onValue;return j("calcite-switch",{...t,checked:o,class:c.inputSwitch,disabled:t.readOnly,onblur:()=>{this._focusedFieldName=null},onCalciteSwitchChange:e=>this._saveValueFromComponent(e.target)})}_renderRadioButtonComponent({key:e,name:t,value:i,selected:o,label:s,props:n}){return j("calcite-label",{layout:"inline",key:e,class:c.inputRadioLabel},j("calcite-radio-button",{...n,afterCreate:void 0,afterUpdate:void 0,checked:o,class:c.inputRadio,disabled:n.readOnly,name:t,value:i,onblur:()=>{this._focusedFieldName=null},onCalciteRadioButtonChange:({target:e})=>{e.checked&&this._saveValueFromComponent(e)}}),s)}_renderAuxiliaryText(e){const t=e.name,i=this._inputsWithChanges.has(t)&&!e.valid?v(e,this.messages):null!=this.viewModel.contingencyConstraintViolations.get(t)?this.messages.validationErrors.valuesIncompatible:null!=e.valueExpressionExecutor&&e.valueExpressionExecutor.stale?this.messages.valueExpressionError:null;return null!=i?j("calcite-input-message",{status:"invalid",icon:!0},i):this._renderDescriptionOrEmpty(e.description)}_renderShowAllRelatedRecordsListItem(e){const{featureCount:t,relationshipId:i,showAllActionVisible:o}=e,{relatedRecordCallbacks:s}=this;if(!o||!s?.showAllRelatedRecords)return;const n=this.messages;return j("calcite-list-item",{description:D(n.totalCount,{count:t}),label:n.showAll,value:!0,onCalciteListItemSelect:()=>this._onShowAllRelatedRecordsClick(i)},j("calcite-icon",{slot:"content-end",scale:"s",icon:"list"}))}_renderAddRelatedRecordButton(e){const{canAddRelatedFeature:t,relationshipId:i,relatedLayer:o}=e,{relatedRecordCallbacks:s}=this;if(t&&s?.addRelatedRecord&&o)return j("calcite-button",{alignment:"center",appearance:"outline-fill",class:c.centeredButton,disabled:e.updating||!e.originHasValidKey,iconStart:"plus",key:`${i}-add-button`,round:!0,scale:"s",width:"half",onclick:()=>this._onAddRelatedRecordsClick(i,o)},this.messages.addRecord)}_renderRelatedRecordListItem(e,t){const{feature:i,description:o,title:s}=e,{feature:n,relatedRecordCallbacks:r}=this,{highlightHelper:a}=this.viewModel,l=()=>{a?.removeAll(),r?.editRelatedRecord&&n&&r.editRelatedRecord({parentFeature:n,relationshipId:t,relatedFeature:i})},d=a?()=>a.add(i):void 0,c=a?()=>a.remove(i):void 0;return j("calcite-list-item",{bind:this,description:o,label:s,key:`${t}-${i.uid}`,value:s,onclick:l,onmouseenter:d,onmouseleave:c},j("calcite-icon",{slot:"content-start",scale:"m",icon:g(i)}),j("calcite-icon",{slot:"content-end",scale:"s",icon:"chevron-right"}))}_renderRelationshipInput(e){if(!this._relatedRecordsEnabled||!e.editable)return;const{featureCount:t,relationshipId:i,showAllEnabled:o}=e,s=o?null:this._renderDescriptionOrEmpty(e.description),n=t>0?this._renderRelatedRecordsList(e):e.loaded?e.originHasValidKey?this._renderNoRelatedRecordsNotice():this._renderNoValidOriginKeyNotice(e):void 0;return j("calcite-label",{class:this.classes(c.label,c.relationshipLabel),key:`relationship-${i}-container`},j("div",null,this._renderRelatedRecordsHeaderContainer(e),s,n),this._renderAddRelatedRecordButton(e))}_renderRelatedRecordsHeaderContainer(e){const t=e.updating||!e.loaded;return j("div",{class:c.relatedRecordsHeader,key:`relationship-${e.relationshipId}-header`},j("span",null,e.label),t?j("calcite-loader",{label:this.messagesCommon?.loading,inline:!0,key:"loader",scale:"s",type:"indeterminate"}):void 0)}_renderRelatedRecordsList(e){const{relationshipId:t}=e;return j("calcite-list",{class:c.relatedRecordsList},e.relatedFeatureInfos.map((e=>this._renderRelatedRecordListItem(e,t))),this._renderShowAllRelatedRecordsListItem(e),this._renderObserverNode())}_renderNoValidOriginKeyNotice(e){const{messages:t}=this,i=e.relatedLayerIsTable?t.noOriginKeyRecord:t.noOriginKeyFeature,o=e.relationship?.keyField,s=this.viewModel.findField(o),n=s?.label,r=D(i,{relatedLayerName:e.relatedLayer?.title,originKeyField:n});return j("calcite-notice",{open:!0,scale:"s",kind:"brand",icon:"information",width:"full"},j("div",{slot:"message"},r))}_renderNoRelatedRecordsNotice(){return j("calcite-notice",{open:!0,scale:"s",kind:"brand",icon:"information",width:"full"},j("div",{slot:"message"},this.messagesFeature.noRelatedFeatures))}_renderObserverNode(){if(this.viewModel.activeRelationshipInput?.showAllEnabled)return j("div",{key:"feature-observer",class:c.listObserver,bind:this,afterCreate:this._afterListObserverCreated,afterRemoved:this._afterListObserverRemoved})}getCommonInputProps(e){const{disabled:t,groupDisplay:i}=this,{editable:o,group:s,hint:n,label:r,maxLength:a,minLength:l,name:d,range:{max:p,min:u},required:m,valid:h,value:b}=e,v=this._inputsWithChanges.has(d),g=!o||t,_="all"===i&&null!=s&&"collapsed"===s.state;return{afterCreate:this._afterComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,"aria-invalid":h?"false":"true",class:this.classes(c.fieldInput,g?c.inputDisabled:null,v&&!h?c.inputInvalid:null),key:d,label:r,max:null!=p?p:void 0,min:null!=u?u:void 0,maxlength:a>-1?`${a}`:"",minlength:l>-1?`${l}`:"",placeholder:n??void 0,readOnly:g,required:m,tabIndex:_?-1:0,value:null==b?"":`${b}`,onfocus:this._onComponentFocus,onblur:this._onComponentBlur,onkeydown:this._onComponentKeyDown,[T]:d}}_getFieldInputFromHTMLElement(e){return this.viewModel.findField(e.getAttribute(T))}_afterDateComponentCreateOrUpdate(e){const{name:t}=this._getFieldInputFromHTMLElement(e),i=this._dateComponentMap.get(t),o=O(e);null!=i?o?i.date=e:i.time=e:this._dateComponentMap.set(t,{[o?"date":"time"]:e}),this._afterComponentCreateOrUpdate(e)}_afterComponentCreate(e){const t=this._getFieldInputFromHTMLElement(e);_(t)&&null!=e.value&&"setNumberValue"in e&&e.setNumberValue({committing:!1,value:e.value,origin:"direct"}),this._afterComponentCreateOrUpdate(e)}_afterRadioGroupCreateOrUpdate(e){const t=e.selectedItem,i=e.querySelector("calcite-radio-button"),o=t||i;o&&this._afterComponentCreateOrUpdate(o)}_afterComponentCreateOrUpdate(e){const{viewModel:t}=this,i=this._getFieldInputFromHTMLElement(e),o=t.findField(this._focusedFieldName);this._attemptFocusOnNextRender&&o===i&&(this._attemptFocusOnNextRender=!1,h(i)&&(i.group.state="expanded"),e.setFocus())}_onComponentFocus(e){const t=e.target,i=this._getFieldInputFromHTMLElement(t);this._focusedFieldName=i.name}_onComponentBlur(e){const t=e.target;this._focusedFieldName=null,this._saveValueFromComponent(t)}_saveValueFromDateComponent(e,t=!1){const{name:i}=this._getFieldInputFromHTMLElement(e),o=this._dateComponentMap.get(i);if(!o||!o.date)return;const s=w(e),n=this._getFieldInputFromHTMLElement(o.date),r=I(n,o.date,o.time);this.viewModel.getValue(i)!==r&&(null!==s&&null!==r?this._updateFieldValue(i,r):t&&this._updateFieldValue(i,null))}_saveValueFromComponent(e){const t=this._getFieldInputFromHTMLElement(e);this._updateFieldValue(t.name,this._parseValue(e))}_onComponentKeyDown({key:e,target:t}){const i=this._getFieldInputFromHTMLElement(t);"Enter"===e&&h(i)&&"collapsed"===i.group.state&&(i.group.state="expanded")}_updateFieldValue(e,t){if(this.viewModel.setValue(e,t),this._inputsWithChanges.add(e),this.viewModel.fieldsWithContingentValues.has(e)){const e=Object.fromEntries(Object.entries(this.getValues()).filter((([e,t])=>null!=t)));this.viewModel.validateContingencyConstraints(e)}}_parseValue(e){const t=this._getFieldInputFromHTMLElement(e),i=e.value;return b(t.element,"switch")?e.checked?t.element.input.onValue:t.element.input.offValue:null==i||""===i?null:"number"===t.dataType?"-0"===i||"-0."===i||"-0,"===i?i:parseFloat(i):i}_ignoreDeselectionOfNoValueOption(e){const{firstChild:t,selectedItems:i}=e;0===i.length&&t&&"selected"in t?t.selected=!0:U.warnOnce("Failed to override user attempt to deselect 'No value' option.")}_onGroupClick(e){const t=e.currentTarget["data-group"],i="expanded"===t.state,o="sequential"===this.groupDisplay,s=`.${c.groupHeader}`;if(!(i&&!e.target.closest(s))){if(this._focusedFieldName=this._getFocusableInput("forward",t)?.name||null,o){const o=e.target.closest(s);if(i&&!o)return;this.viewModel.inputs.forEach((e=>{p(e)&&e!==t&&(e.state="collapsed")}))}t.state=i?"collapsed":"expanded",this._attemptFocusOnNextRender=o,this.scheduleRender()}}_onFormSubmit(e){e.preventDefault()}_onFormKeyDown(e){"Enter"===e.key&&this.viewModel.submit()}_afterListObserverCreated(e){this.viewModel.activeRelationshipInput&&(this._listObserverNode=e)}_afterListObserverRemoved(){this._listObserverNode=null}_onObserverChange(){this._listObserverNode&&this._listObserver.unobserve(this._listObserverNode);const e=this.viewModel.activeRelationshipInput;if(!e)return;const{showAllEnabled:t,updating:i}=e;this._listObserverNode&&!i&&t&&this._listObserver.observe(this._listObserverNode)}_incrementRelatedRecordPage(){const e=this.viewModel.activeRelationshipInput;e?.incrementPage()}};e([r()],A.prototype,"_listObserverNode",void 0),e([r()],A.prototype,"_relatedRecordsEnabled",null),e([r()],A.prototype,"disabled",null),e([r()],A.prototype,"feature",null),e([r()],A.prototype,"formTemplate",null),e([r()],A.prototype,"groupDisplay",void 0),e([r()],A.prototype,"headingLevel",void 0),e([r()],A.prototype,"label",null),e([r()],A.prototype,"layer",null),e([r()],A.prototype,"map",null),e([r(),L("esri/widgets/FeatureForm/t9n/FeatureForm")],A.prototype,"messages",void 0),e([r(),L("esri/t9n/common")],A.prototype,"messagesCommon",void 0),e([r(),L("esri/widgets/Feature/t9n/Feature")],A.prototype,"messagesFeature",void 0),e([r(),L("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],A.prototype,"messagesTemplates",void 0),e([r()],A.prototype,"relatedRecordCallbacks",null),e([r()],A.prototype,"relationshipId",null),e([r()],A.prototype,"spatialReference",null),e([r()],A.prototype,"strict",null),e([r()],A.prototype,"view",null),e([r(),V(["value-change","submit"])],A.prototype,"viewModel",void 0),A=e([a(E)],A);const $=A;export{$ as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{isSome as t}from"../core/arrayUtils.js";import{deprecatedProperty as i}from"../core/deprecate.js";import o from"../core/Logger.js";import{watch as s,whenOnce as n}from"../core/reactiveUtils.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import{isIntegerField as l}from"../layers/support/fieldUtils.js";import d from"./Widget.js";import{css as c}from"./FeatureForm/css.js";import{isGroupInput as p,isFieldInput as u,isRelationshipInput as m,isInputInGroupInput as h,isFieldElementWithInputType as b,getErrorMessageForFieldInput as v,getIconForFeature as g,isNumberFieldInput as _}from"./FeatureForm/featureFormUtils.js";import f from"./FeatureForm/FeatureFormViewModel.js";import{loadCalciteComponents as C}from"./support/componentsUtils.js";import{getLabelForDateFieldValue as y,prepareFieldValueForDateComponents as F,numberingSystem as R,getFieldValueFromDateComponent as w,getFieldValueFromDateComponents as I,isCalciteDateComponent as O}from"./support/dateUtils.js";import{globalCss as k}from"./support/globalCss.js";import{Heading as M,incrementHeadingLevel as x}from"./support/Heading.js";import{legacyIcon as N}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as L}from"./support/decorators/messageBundle.js";import{vmEvent as V}from"./support/decorators/vmEvent.js";import{tsx as j}from"./support/jsxFactory.js";import{substitute as D}from"../intl/substitute.js";const T="data-field-name",E="esri.widgets.FeatureForm",U=o.getLogger(E);let A=class extends d{constructor(e,t){super(e,t),this._attemptFocusOnNextRender=!1,this._dateComponentMap=new Map,this._inputsWithChanges=new Set,this._focusedFieldName=null,this._listObserverNode=null,this._listObserver=new IntersectionObserver((e=>{e.length&&e[0].isIntersecting&&this._incrementRelatedRecordPage()}),{root:window.document}),this.groupDisplay="all",this.headingLevel=2,this.messages=null,this.messagesCommon=null,this.messagesFeature=null,this.messagesTemplates=null,this.viewModel=new f,this._onShowAllRelatedRecordsClick=e=>{const{feature:t,relatedRecordCallbacks:i}=this;t&&i?.showAllRelatedRecords&&i.showAllRelatedRecords({parentFeature:t,relationshipId:e})},this._onAddRelatedRecordsClick=(e,t)=>{const{feature:i,relatedRecordCallbacks:o}=this;i&&o?.addRelatedRecord&&o.addRelatedRecord({parentFeature:i,relatedLayer:t,relationshipId:e})},this._onFormKeyDown=this._onFormKeyDown.bind(this),this._onFormSubmit=this._onFormSubmit.bind(this),this._onGroupClick=this._onGroupClick.bind(this),this._onComponentBlur=this._onComponentBlur.bind(this),this._onComponentFocus=this._onComponentFocus.bind(this),this._onComponentKeyDown=this._onComponentKeyDown.bind(this),this._afterComponentCreate=this._afterComponentCreate.bind(this),this._afterComponentCreateOrUpdate=this._afterComponentCreateOrUpdate.bind(this),this._afterDateComponentCreateOrUpdate=this._afterDateComponentCreateOrUpdate.bind(this),this._afterRadioGroupCreateOrUpdate=this._afterRadioGroupCreateOrUpdate.bind(this)}initialize(){this.addHandles([s((()=>this.feature),(()=>{n((()=>!this.viewModel.updating)).then((()=>{const e=this._getFocusableInput("forward");this._inputsWithChanges.clear(),this._dateComponentMap.clear(),this._focusedFieldName=e?.name||null,this._attemptFocusOnNextRender=!0}))})),this.on("submit",(e=>{if(e.invalid.length>0){const[t]=e.invalid;e.invalid.forEach((e=>this._inputsWithChanges.add(e))),this._focusedFieldName=t,this._attemptFocusOnNextRender=!0,this.scheduleRender()}})),s((()=>[this.viewModel.activeRelationshipInput,this._listObserverNode]),(()=>this._onObserverChange()))])}loadDependencies(){return C({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),combobox:()=>import("@esri/calcite-components/dist/components/calcite-combobox.js"),"combobox-item":()=>import("@esri/calcite-components/dist/components/calcite-combobox-item.js"),"combobox-item-group":()=>import("@esri/calcite-components/dist/components/calcite-combobox-item-group.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),input:()=>import("@esri/calcite-components/dist/components/calcite-input.js"),"input-date-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-date-picker.js"),"input-message":()=>import("@esri/calcite-components/dist/components/calcite-input-message.js"),"input-number":()=>import("@esri/calcite-components/dist/components/calcite-input-number.js"),"input-time-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-time-picker.js"),label:()=>import("@esri/calcite-components/dist/components/calcite-label.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item.js"),loader:()=>import("@esri/calcite-components/dist/components/calcite-loader.js"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js"),progress:()=>import("@esri/calcite-components/dist/components/calcite-progress.js"),"radio-button":()=>import("@esri/calcite-components/dist/components/calcite-radio-button.js"),"radio-button-group":()=>import("@esri/calcite-components/dist/components/calcite-radio-button-group.js"),switch:()=>import("@esri/calcite-components/dist/components/calcite-switch.js")})}destroy(){this._listObserverNode&&this._listObserver.unobserve(this._listObserverNode)}get _relatedRecordsEnabled(){const e=this.relatedRecordCallbacks;return!(!e||!(e.addRelatedRecord||e.editRelatedRecord||e.showAllRelatedRecords))}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get feature(){return this.viewModel.feature}set feature(e){this.viewModel.feature=e}get formTemplate(){return this.viewModel.formTemplate}set formTemplate(e){this.viewModel.formTemplate=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get map(){return this.viewModel.map}set map(e){this.viewModel.map=e}get relatedRecordCallbacks(){return this.viewModel.relatedRecordCallbacks}set relatedRecordCallbacks(e){this.viewModel.relatedRecordCallbacks=e}get relationshipId(){return this.viewModel.relationshipId}set relationshipId(e){this.viewModel.relationshipId=e}get spatialReference(){return this.viewModel.spatialReference}set spatialReference(e){this.viewModel.spatialReference=e}get strict(){return this.viewModel.strict}set strict(e){this.viewModel.strict=e}get view(){return i(U,"view",{replacement:"Use FeatureForm.map instead.",version:"4.27"}),this.viewModel.view}set view(e){i(U,"view",{replacement:"Use FeatureForm.map instead.",version:"4.27"}),this.viewModel.view=e}getValues(){return this.viewModel.getValues()}submit(){return this.viewModel.submit()}render(){const{state:e}=this.viewModel;return j("div",{class:this.classes(c.base,k.widget,k.panel)},"ready"===e?this._renderForm():null)}_renderForm(){return j("form",{class:c.form,novalidate:!0,onkeydown:this._onFormKeyDown,onsubmit:this._onFormSubmit},this._renderHeader(),this._renderContent())}_renderHeader(){const e=this.viewModel;if(!e.formHeaderVisible)return;const t=null!=e.formTitle&&j(M,{key:"title",level:this.headingLevel},e.formTitle),i=null!=e.formDescription&&j("p",{class:c.description,key:"description"},e.formDescription);return j("div",{class:c.formHeader},t,i)}_renderContent(){const{viewModel:e}=this;return e.activeRelationshipInput?this._renderActiveRelationshipInput(e.activeRelationshipInput):e.inputs.filter(t).filter((e=>e.visible)).map(((e,t)=>p(e)?this._renderGroup(e,t):u(e)?this._renderLabeledField(e):m(e)?this._renderRelationshipInput(e):void 0))}_renderActiveRelationshipInput(e){return this._renderRelationshipInput(e)}_renderDescriptionOrEmpty(e,t){return null==e?null:j("div",{class:this.classes(c.description),id:t},e)}_renderGroup(e,t){const{formTemplate:i,disabled:o}=this,{description:s,inputs:n,label:r,state:a}=e,l=n.filter((e=>e.visible)),d=this.viewModel.findField(this._focusedFieldName),p=!(!d||d.group!==e),h=`${this.id}_group_${t}`,b=`${this.id}_group-label_${t}`,v=`${this.id}_group-description_${t}`,g=this._renderDescriptionOrEmpty(s,v),_="sequential"===this.groupDisplay,f=_?p:"expanded"===a,C=f?N.up:N.down;return j("fieldset",{"aria-describedby":s?v:"","aria-expanded":f.toString(),"aria-labelledby":b,class:this.classes(c.group,_?c.groupSequential:null,f?null:c.groupCollapsed,p?c.groupActive:null,o?c.inputDisabled:null),"data-group":e,disabled:o,id:h,key:t,onclick:this._onGroupClick},j("button",{class:c.groupHeader,role:_?"presentation":void 0,tabIndex:_?-1:0,type:"button"},j("div",{class:c.groupTitle},j(M,{class:c.groupLabel,id:b,level:null!=i&&i.title?x(this.headingLevel):this.headingLevel},r),g),_?null:j("span",{class:this.classes(C,c.groupToggleIcon)})),l.map((e=>u(e)?this._renderLabeledField(e):m(e)?this._renderRelationshipInput(e):void 0)))}_getFocusableInput(e,t){const i=this.viewModel.allFieldInputs,o="forward"===e?i:i.slice().reverse();let s;if(!t||m(t))s=0;else if(p(t)){const e=t.inputs.find(u);s=e?o.indexOf(e):0}else{let i;if(h(t)&&"collapsed"===t.group.state){const o=t.group.inputs.filter(u);i="forward"===e?o[o.length-1]:o[0]}else i=t;s=o.indexOf(i)+1}for(let n=s;n<o.length;n++){const e=o[n];if(e.visible&&u(e))return e}return null}_renderLabeledField(e){const{dataType:t,feature:i,label:o,layer:s,required:n}=e,r={"aria-label":n?D(this.messages.requiredFieldLabel,{name:o}):o,class:c.label,key:`${s.id}-${i.uid}-${e.name}`},a=[j("div",{class:c.labelTextContent,key:"labelTextContainer"},o,n?j("span",{"aria-hidden":!0,title:this.messagesCommon.required},"*"):void 0),"unsupported"!==t?this._renderFieldInput(e):this._renderReadOnlyComponent(e),this._renderAuxiliaryText(e)];return j("date"===t?"label":"calcite-label",{...r},a)}_renderFieldInput(e){const{dataType:t,domain:i,inputType:o,name:s,updating:n}=e,r=this.getCommonInputProps(e);if("coded-value"===i?.type){const t=this.viewModel.getFieldValueOptionsForField(s,this.messages.empty);return"switch"!==o||e.hasInvalidSwitchValue?"radio-buttons"===o?this._renderRadioButtonComponents(e,t.flat(),r):this._renderComboBoxComponent(e,t,r):this._renderSwitchComponent(e,r)}if("datetime-picker"===o||"date"===t)return this._renderDateComponents(e,r);const a="number"===t?this._renderNumberComponent(e,r):this._renderStringComponent(e,r);return n?j("div",{class:c.fieldInputWrapper,key:`${r.key}-input-updating-wrapper`},a,j("div",{class:c.fieldInputLoader},j("calcite-progress",{type:"indeterminate"}))):a}_renderStringComponent(e,t){return j("calcite-input",{...t,type:"text-area"===e.inputType?"textarea":"text",onCalciteInputInput:e=>this._saveValueFromComponent(e.target)})}_renderNumberComponent(e,t){return j("calcite-input-number",{...t,integer:l(e.field),type:"number",onCalciteInputNumberInput:e=>this._saveValueFromComponent(e.target)})}_renderDateComponents(e,t){const{dateDataType:i,includeTime:o,label:s,name:n,valid:r,value:a}=e,{class:l,max:d,min:p,key:u,readOnly:m,required:h}=t;if("string"===i)return this._renderReadOnlyComponent(e,y(e.field,t.value));const{date:b,time:v}=F(a),g=null!=d?F(d):void 0,_=null!=p?F(p):void 0,f=g?.date??void 0,C=_?.date??void 0,w={afterCreate:this._afterDateComponentCreateOrUpdate,afterUpdate:this._afterDateComponentCreateOrUpdate,"aria-invalid":!r,label:s,numberingSystem:R,overlayPositioning:"fixed",readOnly:m,required:h,tabIndex:t.tabIndex,[T]:n,onfocus:this._onComponentFocus};return j("div",{class:c.dateInputContainer,key:`${u}-date-time-container`},j("calcite-input-date-picker",{bind:this,...w,class:this.classes(l,c.inputDate),"data-date-part":"date",key:`${u}-date-input`,maxAsDate:f,minAsDate:C,onblur:e=>{this._focusedFieldName=null,this._saveValueFromDateComponent(e.target,!0)},valueAsDate:b??void 0,onCalciteInputDatePickerChange:e=>this._saveValueFromDateComponent(e.target)}),o?j("calcite-input-time-picker",{bind:this,...w,class:this.classes(l,c.inputTime),"data-date-part":"time",key:`${u}-time-input`,onblur:e=>{this._focusedFieldName=null,this._saveValueFromDateComponent(e.target,!0)},step:1,value:v??void 0,onCalciteInputTimePickerChange:e=>this._saveValueFromDateComponent(e.target)}):null)}_renderReadOnlyComponent(e,t){const i=this.getCommonInputProps(e);return j("calcite-input",{...i,class:this.classes(c.fieldInput,c.inputDisabled),readOnly:!0,type:"text",value:null!=t?`${t}`:i.value})}_renderComboBoxComponent(e,t,i){const{value:o,name:s}=e,{messages:n,messagesTemplates:r,viewModel:a,_inputsWithChanges:l}=this,d=t.map((e=>e.map((({name:e,value:t})=>j("calcite-combobox-item",{key:`#${t}`,selected:o===t,textLabel:e,value:`${t}`}))))),[c,p]=d;this.viewModel.fieldsWithInvalidCodedValue.has(e)&&p.unshift(j("calcite-combobox-item",{key:"incompatible-option",readOnly:!0,textLabel:`${e.value}`,value:`${e.value}`}));const u=p.length>0?[j("calcite-combobox-item-group",{key:"recommended",label:n.recommended},c),j("calcite-combobox-item-group",{key:"other",label:r.other},p)]:c,m="INSERT"===a.arcadeEditType,h=l.has(s),b=null==o&&(!m||h);if(e.showNoValueOptionEnabled){const t="",i=e.showNoValueLabel||n.empty;u.unshift(j("calcite-combobox-item",{key:"empty-option",selected:b,textLabel:n.empty,value:t},i))}const v=m&&e.showNoValueOptionEnabled&&!h?()=>{}:i.onblur;return j("calcite-combobox",{...i,allowCustomValues:!1,clearDisabled:!0,disabled:i.readOnly,onblur:v,overlayPositioning:"fixed",selectionMode:"single",onCalciteComboboxChange:({target:e})=>{b&&0===e.selectedItems.length?this._ignoreDeselectionOfNoValueOption(e):this._saveValueFromComponent(e)}},u)}_renderRadioButtonComponents(e,t,i){const{name:o,value:s}=e,n=t.map((({name:e,value:t})=>this._renderRadioButtonComponent({key:e,label:e,name:o,value:t,selected:t===s,props:i})));if(e.showNoValueOptionEnabled){const t="",r=e.showNoValueLabel||this.messages.empty,a=s===t||null===s;n.unshift(this._renderRadioButtonComponent({key:"empty-option",label:r,name:o,value:t,selected:a,props:i}))}return j("calcite-radio-button-group",{afterCreate:this._afterRadioGroupCreateOrUpdate,afterUpdate:this._afterRadioGroupCreateOrUpdate,class:c.inputRadioGroup,"data-field-name":i[T],key:`${i.key}-radio-group`,layout:"vertical",name:i.key,required:i.required},n)}_renderSwitchComponent(e,t){const{value:i}=e,o=!!b(e.element,"switch")&&i===e.element.input.onValue;return j("calcite-switch",{...t,checked:o,class:c.inputSwitch,disabled:t.readOnly,onblur:()=>{this._focusedFieldName=null},onCalciteSwitchChange:e=>this._saveValueFromComponent(e.target)})}_renderRadioButtonComponent({key:e,name:t,value:i,selected:o,label:s,props:n}){return j("calcite-label",{class:c.inputRadioLabel,key:e,layout:"inline"},j("calcite-radio-button",{...n,afterCreate:void 0,afterUpdate:void 0,checked:o,class:c.inputRadio,disabled:n.readOnly,name:t,onblur:()=>{this._focusedFieldName=null},value:i,onCalciteRadioButtonChange:({target:e})=>{e.checked&&this._saveValueFromComponent(e)}}),s)}_renderAuxiliaryText(e){const t=e.name,i=this._inputsWithChanges.has(t)&&!e.valid?v(e,this.messages):null!=this.viewModel.contingencyConstraintViolations.get(t)?this.messages.validationErrors.valuesIncompatible:null!=e.valueExpressionExecutor&&e.valueExpressionExecutor.stale?this.messages.valueExpressionError:null;return null!=i?j("calcite-input-message",{icon:!0,status:"invalid"},i):this._renderDescriptionOrEmpty(e.description)}_renderShowAllRelatedRecordsListItem(e){const{featureCount:t,relationshipId:i,showAllActionVisible:o}=e,{relatedRecordCallbacks:s}=this;if(!o||!s?.showAllRelatedRecords)return;const n=this.messages;return j("calcite-list-item",{description:D(n.totalCount,{count:t}),label:n.showAll,value:!0,onCalciteListItemSelect:()=>this._onShowAllRelatedRecordsClick(i)},j("calcite-icon",{icon:"list",scale:"s",slot:"content-end"}))}_renderAddRelatedRecordButton(e){const{canAddRelatedFeature:t,relationshipId:i,relatedLayer:o}=e,{relatedRecordCallbacks:s}=this;if(t&&s?.addRelatedRecord&&o)return j("calcite-button",{alignment:"center",appearance:"outline-fill",class:c.centeredButton,disabled:e.updating||!e.originHasValidKey,iconStart:"plus",key:`${i}-add-button`,onclick:()=>this._onAddRelatedRecordsClick(i,o),round:!0,scale:"s",width:"half"},this.messages.addRecord)}_renderRelatedRecordListItem(e,t){const{feature:i,description:o,title:s}=e,{feature:n,relatedRecordCallbacks:r}=this,{highlightHelper:a}=this.viewModel,l=()=>{a?.removeAll(),r?.editRelatedRecord&&n&&r.editRelatedRecord({parentFeature:n,relationshipId:t,relatedFeature:i})},d=a?()=>a.add(i):void 0,c=a?()=>a.remove(i):void 0;return j("calcite-list-item",{bind:this,description:o,key:`${t}-${i.uid}`,label:s,onclick:l,onmouseenter:d,onmouseleave:c,value:s},j("calcite-icon",{icon:g(i),scale:"m",slot:"content-start"}),j("calcite-icon",{icon:"chevron-right",scale:"s",slot:"content-end"}))}_renderRelationshipInput(e){if(!this._relatedRecordsEnabled||!e.editable)return;const{featureCount:t,relationshipId:i,showAllEnabled:o}=e,s=o?null:this._renderDescriptionOrEmpty(e.description),n=t>0?this._renderRelatedRecordsList(e):e.loaded?e.originHasValidKey?this._renderNoRelatedRecordsNotice():this._renderNoValidOriginKeyNotice(e):void 0;return j("calcite-label",{class:this.classes(c.label,c.relationshipLabel),key:`relationship-${i}-container`},j("div",null,this._renderRelatedRecordsHeaderContainer(e),s,n),this._renderAddRelatedRecordButton(e))}_renderRelatedRecordsHeaderContainer(e){const t=e.updating||!e.loaded;return j("div",{class:c.relatedRecordsHeader,key:`relationship-${e.relationshipId}-header`},j("span",null,e.label),t?j("calcite-loader",{inline:!0,key:"loader",label:this.messagesCommon?.loading,scale:"s",type:"indeterminate"}):void 0)}_renderRelatedRecordsList(e){const{relationshipId:t}=e;return j("calcite-list",{class:c.relatedRecordsList},e.relatedFeatureInfos.map((e=>this._renderRelatedRecordListItem(e,t))),this._renderShowAllRelatedRecordsListItem(e),this._renderObserverNode())}_renderNoValidOriginKeyNotice(e){const{messages:t}=this,i=e.relatedLayerIsTable?t.noOriginKeyRecord:t.noOriginKeyFeature,o=e.relationship?.keyField,s=this.viewModel.findField(o),n=s?.label,r=D(i,{relatedLayerName:e.relatedLayer?.title,originKeyField:n});return j("calcite-notice",{icon:"information",kind:"brand",open:!0,scale:"s",width:"full"},j("div",{slot:"message"},r))}_renderNoRelatedRecordsNotice(){return j("calcite-notice",{icon:"information",kind:"brand",open:!0,scale:"s",width:"full"},j("div",{slot:"message"},this.messagesFeature.noRelatedFeatures))}_renderObserverNode(){if(this.viewModel.activeRelationshipInput?.showAllEnabled)return j("div",{afterCreate:this._afterListObserverCreated,afterRemoved:this._afterListObserverRemoved,bind:this,class:c.listObserver,key:"feature-observer"})}getCommonInputProps(e){const{disabled:t,groupDisplay:i}=this,{editable:o,group:s,hint:n,label:r,maxLength:a,minLength:l,name:d,range:{max:p,min:u},required:m,valid:h,value:b}=e,v=this._inputsWithChanges.has(d),g=!o||t,_="all"===i&&null!=s&&"collapsed"===s.state;return{afterCreate:this._afterComponentCreate,afterUpdate:this._afterComponentCreateOrUpdate,"aria-invalid":h?"false":"true",class:this.classes(c.fieldInput,g?c.inputDisabled:null,v&&!h?c.inputInvalid:null),key:d,label:r,max:null!=p?p:void 0,min:null!=u?u:void 0,maxlength:a>-1?`${a}`:"",minlength:l>-1?`${l}`:"",placeholder:n??void 0,readOnly:g,required:m,tabIndex:_?-1:0,value:null==b?"":`${b}`,onfocus:this._onComponentFocus,onblur:this._onComponentBlur,onkeydown:this._onComponentKeyDown,[T]:d}}_getFieldInputFromHTMLElement(e){return this.viewModel.findField(e.getAttribute(T))}_afterDateComponentCreateOrUpdate(e){const{name:t}=this._getFieldInputFromHTMLElement(e),i=this._dateComponentMap.get(t),o=O(e);null!=i?o?i.date=e:i.time=e:this._dateComponentMap.set(t,{[o?"date":"time"]:e}),this._afterComponentCreateOrUpdate(e)}_afterComponentCreate(e){const t=this._getFieldInputFromHTMLElement(e);_(t)&&null!=e.value&&"setNumberValue"in e&&e.setNumberValue({committing:!1,value:e.value,origin:"direct"}),this._afterComponentCreateOrUpdate(e)}_afterRadioGroupCreateOrUpdate(e){const t=e.selectedItem,i=e.querySelector("calcite-radio-button"),o=t||i;o&&this._afterComponentCreateOrUpdate(o)}_afterComponentCreateOrUpdate(e){const{viewModel:t}=this,i=this._getFieldInputFromHTMLElement(e),o=t.findField(this._focusedFieldName);this._attemptFocusOnNextRender&&o===i&&(this._attemptFocusOnNextRender=!1,h(i)&&(i.group.state="expanded"),e.setFocus())}_onComponentFocus(e){const t=e.target,i=this._getFieldInputFromHTMLElement(t);this._focusedFieldName=i.name}_onComponentBlur(e){const t=e.target;this._focusedFieldName=null,this._saveValueFromComponent(t)}_saveValueFromDateComponent(e,t=!1){const{name:i}=this._getFieldInputFromHTMLElement(e),o=this._dateComponentMap.get(i);if(!o||!o.date)return;const s=w(e),n=this._getFieldInputFromHTMLElement(o.date),r=I(n,o.date,o.time);this.viewModel.getValue(i)!==r&&(null!==s&&null!==r?this._updateFieldValue(i,r):t&&this._updateFieldValue(i,null))}_saveValueFromComponent(e){const t=this._getFieldInputFromHTMLElement(e);this._updateFieldValue(t.name,this._parseValue(e))}_onComponentKeyDown({key:e,target:t}){const i=this._getFieldInputFromHTMLElement(t);"Enter"===e&&h(i)&&"collapsed"===i.group.state&&(i.group.state="expanded")}_updateFieldValue(e,t){if(this.viewModel.setValue(e,t),this._inputsWithChanges.add(e),this.viewModel.fieldsWithContingentValues.has(e)){const e=Object.fromEntries(Object.entries(this.getValues()).filter((([e,t])=>null!=t)));this.viewModel.validateContingencyConstraints(e)}}_parseValue(e){const t=this._getFieldInputFromHTMLElement(e),i=e.value;return b(t.element,"switch")?e.checked?t.element.input.onValue:t.element.input.offValue:null==i||""===i?null:"number"===t.dataType?"-0"===i||"-0."===i||"-0,"===i?i:parseFloat(i):"date"===t.field.type?parseFloat(i):i}_ignoreDeselectionOfNoValueOption(e){const{firstChild:t,selectedItems:i}=e;0===i.length&&t&&"selected"in t?t.selected=!0:U.warnOnce("Failed to override user attempt to deselect 'No value' option.")}_onGroupClick(e){const t=e.currentTarget["data-group"],i="expanded"===t.state,o="sequential"===this.groupDisplay,s=`.${c.groupHeader}`;if(!(i&&!e.target.closest(s))){if(this._focusedFieldName=this._getFocusableInput("forward",t)?.name||null,o){const o=e.target.closest(s);if(i&&!o)return;this.viewModel.inputs.forEach((e=>{p(e)&&e!==t&&(e.state="collapsed")}))}t.state=i?"collapsed":"expanded",this._attemptFocusOnNextRender=o,this.scheduleRender()}}_onFormSubmit(e){e.preventDefault()}_onFormKeyDown(e){"Enter"===e.key&&this.viewModel.submit()}_afterListObserverCreated(e){this.viewModel.activeRelationshipInput&&(this._listObserverNode=e)}_afterListObserverRemoved(){this._listObserverNode=null}_onObserverChange(){this._listObserverNode&&this._listObserver.unobserve(this._listObserverNode);const e=this.viewModel.activeRelationshipInput;if(!e)return;const{showAllEnabled:t,updating:i}=e;this._listObserverNode&&!i&&t&&this._listObserver.observe(this._listObserverNode)}_incrementRelatedRecordPage(){const e=this.viewModel.activeRelationshipInput;e?.incrementPage()}};e([r()],A.prototype,"_listObserverNode",void 0),e([r()],A.prototype,"_relatedRecordsEnabled",null),e([r()],A.prototype,"disabled",null),e([r()],A.prototype,"feature",null),e([r()],A.prototype,"formTemplate",null),e([r()],A.prototype,"groupDisplay",void 0),e([r()],A.prototype,"headingLevel",void 0),e([r()],A.prototype,"label",null),e([r()],A.prototype,"layer",null),e([r()],A.prototype,"map",null),e([r(),L("esri/widgets/FeatureForm/t9n/FeatureForm")],A.prototype,"messages",void 0),e([r(),L("esri/t9n/common")],A.prototype,"messagesCommon",void 0),e([r(),L("esri/widgets/Feature/t9n/Feature")],A.prototype,"messagesFeature",void 0),e([r(),L("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],A.prototype,"messagesTemplates",void 0),e([r()],A.prototype,"relatedRecordCallbacks",null),e([r()],A.prototype,"relationshipId",null),e([r()],A.prototype,"spatialReference",null),e([r()],A.prototype,"strict",null),e([r()],A.prototype,"view",null),e([r(),V(["value-change","submit"])],A.prototype,"viewModel",void 0),A=e([a(E)],A);const $=A;export{$ as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import"../../intl.js";import s from"../../core/Collection.js";import i from"../../core/Handles.js";import{debounce as r,ignoreAbortErrors as o}from"../../core/promiseUtils.js";import{on as l,watch as n}from"../../core/reactiveUtils.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 h}from"../../core/accessorSupport/decorators/subclass.js";import{getLowerCaseDefaultHiddenFields as d}from"../../layers/support/fieldUtils.js";import{highlightsSupported as m}from"../../views/support/layerViewUtils.js";import g from"./AttachmentsColumn.js";import c from"./FieldColumn.js";import u from"./Grid/Column.js";import p from"./Grid/Grid.js";import y from"./Grid/GridViewModel.js";import f from"./Grid/GroupColumn.js";import b from"./support/FeatureStore.js";import"../support/widgetUtils.js";import{messageBundle as _}from"../support/decorators/messageBundle.js";import{onLocaleChange as w}from"../../intl/locale.js";import{fetchMessageBundle as C}from"../../intl/messages.js";let E=class extends y{constructor(e){super(e),this._debounceRefresh=r((()=>this._refresh())),this._highlights=new i,this.activeFilters=new s,this.autoRefreshEnabled=!0,this.cellClassNameGenerator=(e,t)=>e.path||null,this.columns=new s,this.dataProvider=async(e,t)=>{const{store:s}=this,{page:i,pageSize:r,sortOrders:o}=e,l=this._sortOrdersToLayerOrderByFields(o);t&&(s?(await s.set({orderByFields:l}),"loaded"!==s.state&&"loading"!==s.state&&await s.load(),t&&t(await s.fetchItems({page:i,pageSize:r}))):t&&t([]))},this.editingEnabled=!1,this.fieldConfigs=null,this.grid=null,this.highlightEnabled=!0,this.itemIdPath="objectId",this.messagesCommon=null,this.messagesURIUtils=null,this.relatedRecordsEnabled=!1,this.returnGeometryEnabled=!1,this.store=null,this.tableTemplate=null,this.view=null,this._onLayerRefresh=this._onLayerRefresh.bind(this),this._set("store",new b),this._set("grid",new p({itemIdPath:this.itemIdPath,viewModel:this}))}initialize(){const e=async()=>{this.messages=await C("esri/widgets/FeatureTable/t9n/FeatureTable"),this.messagesCommon=await C("esri/t9n/common"),this.messagesURIUtils=await C("esri/widgets/support/t9n/uriUtils")};e(),this.addHandles([w((()=>{e(),this._generateColumns()})),l((()=>this.highlightIds),"change",(e=>this._onHighlightIdsChange(e)),{onListenerAdd:()=>{this.highlightIds.forEach((e=>this._highlight(e)))},onListenerRemove:()=>{this.highlightIds.forEach((e=>this._unhighlight(e)))}}),n((()=>this.layerView),(()=>{this._highlights.removeAll(),this.layerView&&this.highlightEnabled&&this.highlightIds?.forEach((e=>this._highlight(e)))})),n((()=>this.highlightEnabled),(()=>{this._highlights.removeAll(),this.highlightEnabled&&this.highlightIds?.forEach((e=>this._highlight(e)))})),n((()=>this.relatedRecordsEnabled),(e=>this.store.relatedRecordsEnabled=e)),n((()=>this.returnGeometryEnabled),(e=>this.store.returnGeometry=e)),n((()=>this.layer?.loaded),(e=>e&&this._onLayerLoad())),n((()=>this.store.state),(e=>{"loaded"===e&&this.grid?.scrollToTop()})),n((()=>[this.messages,this.tableTemplate,this.fieldConfigs]),(()=>this.layer?.loaded&&this._generateColumns())),n((()=>this.editingEnabled),(e=>{this.columns.forEach((t=>{"editingEnabled"in t&&(t.editingEnabled=e)})),this.grid?.onColumnChange()})),n((()=>this.layer?.definitionExpression),((e,t)=>(e||t)&&"loaded"===this.store.state&&this.reset())),n((()=>this.layer&&"timeExtent"in this.layer&&this.layer.timeExtent),((e,t)=>(e||t)&&!this.timeExtent&&"loaded"===this.store.state&&this.reset())),l((()=>this.layer),"refresh",(e=>this._onLayerRefresh(e)))])}destroy(){this._resetColumns(),this._highlights.removeAll(),this._highlights.destroy(),this.grid?.destroy(),this.columns?.destroy(),this.layer=null,this.view=null}get _defaultHiddenFields(){return d(this.layer)}get activeSortOrders(){return this.grid?.sortOrders?this.grid.sortOrders.map((({path:e,direction:t})=>({fieldName:e,direction:t}))):[]}set attachmentsEnabled(e){this.attachmentsEnabled!==e&&(this._set("attachmentsEnabled",e),this._generateColumns(),this.store.attachmentsEnabled=e)}set filterGeometry(e){if(!this.filterGeometry&&!e)return;const t=this.activeFilters.find((e=>"geometry"===e.type));t&&this.activeFilters.remove(t),this._set("filterGeometry",e),this.store.filterGeometry=e,e&&this.activeFilters.add({type:"geometry",geometry:e})}get hiddenFields(){return this._get("hiddenFields")??new s}set hiddenFields(e){Array.isArray(e)?this._set("hiddenFields",new s(e)):this._set("hiddenFields",e)}get highlightOnRowSelectEnabled(){return this.highlightEnabled}set highlightOnRowSelectEnabled(e){this.highlightEnabled=e}set layer(e){this._set("layer",e),this.grid?.clearSort(),this._resetColumns(),this.store.layer=e,e&&(e.loaded?this._onLayerLoad():e.load()),this.notifyChange("state")}get layerView(){return this.view?.allLayerViews.find((e=>e.layer===this.layer))||null}set messages(e){this.grid?.set("messages",e),this._set("messages",e)}get state(){const{store:e}=this;return e&&"disabled"!==e.state?"loading"===e.state?"loading":"loaded"===e.state?"loaded":"ready":"disabled"}set timeExtent(e){this._set("timeExtent",e),this.store.timeExtent=e}clearHighlights(){this._highlights.removeAll()}clearSelection(){this.grid?.clearSelection()}async deleteSelection(){const e=this.highlightIds.toArray();if(!e?.length)return;const{deleteFeatureResults:t}=await this.store.deleteRowsByObjectId(e),s=t.filter((e=>!e.error)).map((e=>e.objectId));s.length&&(this.deselectRows(s),await this.refresh())}deselectRows(e){const t=this._getStoreItemsFromSelectionParams(e);this.grid?.deselectRows(t)}filterBySelection(){const e=this.highlightIds.toArray();e.length&&(this.clearSelectionFilter(),this.store.objectIds=e,this.activeFilters.add({type:"selection",objectIds:e}))}getObjectIdIndex(e){return this.store?.getObjectIdIndex(e)}getValue(e,t){const s=this.store.getItemByObjectId(e);return s?.feature?.attributes[t]}get highlightIds(){return this._get("highlightIds")||new s}set highlightIds(e){Array.isArray(e)?this._set("highlightIds",new s(e)):this._set("highlightIds",e)}async refresh(){return o(this._debounceRefresh())}reset(){this.grid?.reset()}selectRows(e){const t=this._getStoreItemsFromSelectionParams(e);return this.grid?.selectRows(t)}scrollToIndex(e){this.grid?.scrollToIndex(e)}clearSelectionFilter(){this.store.objectIds=null;const e=this.activeFilters.find((e=>"selection"===e.type));e&&this.activeFilters.remove(e)}zoomToSelection(){const{layer:e,view:t}=this,s=this.highlightIds.toArray();if(!e||!t||!s.length)return;const i=e.createQuery();i.objectIds=s,i.returnGeometry=!0,e.queryFeatures(i).then((e=>{t.goTo(e.features).catch((e=>{"AbortError"!==e.name&&console.error(e)}))}))}async _refresh(){await this.store.refreshLayerInfo();const e=this.highlightIds.toArray();if(e.length){(await this.store.verifyFeaturesByObjectId(e)).forEach(((t,s)=>{t||this.deselectRows(e[s])}))}this.grid?.refreshPageCache()}_onLayerLoad(){const e=this.layer.capabilities?.query.maxRecordCount;e&&e<this.pageSize&&this.grid&&(this.grid.pageSize=e),this._generateColumns()}_onLayerRefresh(e){this.autoRefreshEnabled&&e.dataChanged&&this.refresh()}_generateColumns(){this._resetColumns();const e=[],t=this.tableTemplate?.columnTemplates?this._generateColumnsFromTemplates(this.tableTemplate.columnTemplates):this.fieldConfigs?.length?this._generateColumnsFromConfigs():this._generateDefaultFieldColumns();e.push(...t),e.length&&this.attachmentsEnabled&&e.push(this._generateDefaultAttachmentColumn()),this.columns.addMany([...e])}_generateColumnsFromTemplates(e){const{editingEnabled:t,grid:s,layer:i,messages:r,messagesCommon:o,messagesURIUtils:l,store:n,tableTemplate:a}=this,h=this.layer?.fields??[],d=e=>{const t="fieldName"in e&&e.fieldName?.toLowerCase();return h.find((e=>t===e.name?.toLowerCase()))};return e.filter((e=>null!=d(e)||"group"===e.type&&"columnTemplates"in e||"column"===e.type)).map((e=>{if("fieldName"in e){const h=d(e),m=!1===e.visible||!0!==e.visible&&this._isFieldHidden(h?.name),{direction:g,formatFunction:u,initialSortPriority:p,menuConfig:y,textAlign:f}=e;return new c({direction:g,editingEnabled:t,expressionInfos:a?.expressionInfos||null,field:h,formatFunction:u,grid:s,hidden:m,initialSortPriority:p,layer:i,messages:r,messagesCommon:o,messagesURIUtils:l,menuConfig:y,store:n,template:e,textAlign:f})}if("group"===e.type&&"columnTemplates"in e){const t=this._generateColumnsFromTemplates(e.columnTemplates),s=!1===e.visible||!0!==e.visible&&this._isFieldHidden(e.label),{label:i}=e;return new f({header:i,columns:t,hidden:s})}return new u({...e})}))}_generateColumnsFromConfigs(){const{editingEnabled:e,fieldConfigs:t,grid:s,layer:i,messages:r,messagesCommon:o,messagesURIUtils:l,store:n}=this;if(!t)return[];const a=this.layer?.fields??[],h=e=>{const t=e.name?.toLocaleLowerCase();return a.find((e=>t===e.name?.toLowerCase()))};return t.filter(h).map((t=>{const a=t.direction||null,d=t.formatFunction||null,m=t.textAlign||null,g=null!=t.initialSortPriority?t.initialSortPriority:null,u=h(t),p=!1===t.visible||!0!==t.visible&&this._isFieldHidden(u?.name),y=t.menuConfig||null;return new c({config:t,direction:a,editingEnabled:e,field:u,formatFunction:d,grid:s,hidden:p,layer:i,store:n,messages:r,messagesCommon:o,messagesURIUtils:l,menuConfig:y,textAlign:m,initialSortPriority:g})}))}_generateDefaultFieldColumns(){const{editingEnabled:e,grid:t,layer:s,messages:i,messagesCommon:r,messagesURIUtils:o,store:l}=this;return(this.layer?.fields??[]).map((n=>new c({editingEnabled:e,field:n,grid:t,hidden:this._isFieldHidden(n.name),layer:s,store:l,messages:i,messagesCommon:r,messagesURIUtils:o})))}_generateDefaultAttachmentColumn(){return new g({header:this.messages?.attachments})}_sortOrdersToLayerOrderByFields(e){return e&&e.length?e.filter(((e,t,s)=>s.map((e=>e.path)).indexOf(e.path)===t)).filter((({direction:e})=>!!e)).map((({direction:e,path:t})=>t+" "+e?.toUpperCase())):[]}_isFieldHidden(e){const t=e?.toLowerCase();return(this.hiddenFields??this._defaultHiddenFields).some((e=>e.toLowerCase()===t))}_highlight(e){this.layerView&&m(this.layerView)&&this._highlights.add(this.layerView.highlight(e),e)}_unhighlight(e){this._highlights.remove(e)}_getStoreItemsFromSelectionParams(e){const s=[];return(e=e instanceof Array?e:[e]).forEach((e=>{let i=e instanceof t?e:null;const r=i?i.getObjectId():e;if("number"==typeof r||"string"==typeof r){if(!i){const e=this.store.getItemByObjectId(r);e&&(i=e.feature)}s.push({objectId:r,feature:i})}})),s}_onHighlightIdsChange(e){const{highlightEnabled:t}=this,{added:s,removed:i}=e;t&&(s.forEach((e=>this._highlight(e))),i.forEach((e=>this._unhighlight(e))))}_resetColumns(){this.columns.items.forEach((e=>e.destroy())),this.columns.removeAll()}};e([a()],E.prototype,"_defaultHiddenFields",null),e([a({readOnly:!0})],E.prototype,"activeFilters",void 0),e([a({readOnly:!0})],E.prototype,"activeSortOrders",null),e([a()],E.prototype,"attachmentsEnabled",null),e([a()],E.prototype,"autoRefreshEnabled",void 0),e([a()],E.prototype,"cellClassNameGenerator",void 0),e([a({readOnly:!0})],E.prototype,"columns",void 0),e([a()],E.prototype,"dataProvider",void 0),e([a()],E.prototype,"editingEnabled",void 0),e([a()],E.prototype,"fieldConfigs",void 0),e([a()],E.prototype,"filterGeometry",null),e([a({readOnly:!0})],E.prototype,"grid",void 0),e([a()],E.prototype,"hiddenFields",null),e([a()],E.prototype,"highlightEnabled",void 0),e([a()],E.prototype,"highlightOnRowSelectEnabled",null),e([a({readOnly:!0})],E.prototype,"itemIdPath",void 0),e([a()],E.prototype,"layer",null),e([a()],E.prototype,"layerView",null),e([a()],E.prototype,"messages",null),e([a(),_("esri/t9n/common")],E.prototype,"messagesCommon",void 0),e([a(),_("esri/widgets/support/t9n/uriUtils")],E.prototype,"messagesURIUtils",void 0),e([a()],E.prototype,"relatedRecordsEnabled",void 0),e([a()],E.prototype,"returnGeometryEnabled",void 0),e([a({readOnly:!0})],E.prototype,"state",null),e([a({readOnly:!0,type:b})],E.prototype,"store",void 0),e([a()],E.prototype,"tableTemplate",void 0),e([a()],E.prototype,"timeExtent",null),e([a()],E.prototype,"view",void 0),e([a()],E.prototype,"highlightIds",null),E=e([h("esri.widgets.FeatureTable.FeatureTableViewModel")],E);const I=E;export{I as default};
|
|
5
|
+
import{_ as e}from"../../chunks/tslib.es6.js";import t from"../../Graphic.js";import"../../intl.js";import s from"../../core/Collection.js";import i from"../../core/Handles.js";import{debounce as r,ignoreAbortErrors as o}from"../../core/promiseUtils.js";import{on as l,watch as n}from"../../core/reactiveUtils.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 h}from"../../core/accessorSupport/decorators/subclass.js";import{getLowerCaseDefaultHiddenFields as d}from"../../layers/support/fieldUtils.js";import{highlightsSupported as m}from"../../views/support/layerViewUtils.js";import g from"./AttachmentsColumn.js";import c from"./FieldColumn.js";import u from"./Grid/Column.js";import p from"./Grid/Grid.js";import y from"./Grid/GridViewModel.js";import f from"./Grid/GroupColumn.js";import b from"./support/FeatureStore.js";import"../support/widgetUtils.js";import{messageBundle as _}from"../support/decorators/messageBundle.js";import{onLocaleChange as w}from"../../intl/locale.js";import{fetchMessageBundle as C}from"../../intl/messages.js";let E=class extends y{constructor(e){super(e),this._debounceRefresh=r((()=>this._refresh())),this._highlights=new i,this.activeFilters=new s,this.autoRefreshEnabled=!0,this.cellClassNameGenerator=(e,t)=>e.path||null,this.columns=new s,this.dataProvider=async(e,t)=>{const{store:s}=this,{page:i,pageSize:r,sortOrders:o}=e,l=this._sortOrdersToLayerOrderByFields(o);t&&(s?(await s.set({orderByFields:l}),"loaded"!==s.state&&"loading"!==s.state&&await s.load(),t&&t(await s.fetchItems({page:i,pageSize:r}))):t&&t([]))},this.editingEnabled=!1,this.fieldConfigs=null,this.grid=null,this.highlightEnabled=!0,this.itemIdPath="objectId",this.messagesCommon=null,this.messagesURIUtils=null,this.relatedRecordsEnabled=!1,this.returnGeometryEnabled=!1,this.store=null,this.tableTemplate=null,this.view=null,this._onLayerRefresh=this._onLayerRefresh.bind(this),this._set("store",new b),this._set("grid",new p({itemIdPath:this.itemIdPath,viewModel:this}))}initialize(){const e=async()=>{this.messages=await C("esri/widgets/FeatureTable/t9n/FeatureTable"),this.messagesCommon=await C("esri/t9n/common"),this.messagesURIUtils=await C("esri/widgets/support/t9n/uriUtils")};e(),this.addHandles([w((()=>{e(),this._generateColumns()})),l((()=>this.highlightIds),"change",(e=>this._onHighlightIdsChange(e)),{onListenerAdd:()=>{this.highlightIds.forEach((e=>this._highlight(e)))},onListenerRemove:()=>{this.highlightIds.forEach((e=>this._unhighlight(e)))}}),n((()=>this.layerView),(()=>{this._highlights.removeAll(),this.layerView&&this.highlightEnabled&&this.highlightIds?.forEach((e=>this._highlight(e)))})),n((()=>this.highlightEnabled),(()=>{this._highlights.removeAll(),this.highlightEnabled&&this.highlightIds?.forEach((e=>this._highlight(e)))})),n((()=>this.relatedRecordsEnabled),(e=>this.store.relatedRecordsEnabled=e)),n((()=>this.returnGeometryEnabled),(e=>this.store.returnGeometry=e)),n((()=>this.layer?.loaded),(e=>e&&this._onLayerLoad())),n((()=>this.store.state),(e=>{"loaded"===e&&this.grid?.scrollToTop()})),n((()=>[this.messages,this.tableTemplate,this.fieldConfigs]),(()=>this.layer?.loaded&&this._generateColumns())),n((()=>this.editingEnabled),(e=>{this.columns.forEach((t=>{"editingEnabled"in t&&(t.editingEnabled=e)})),this.grid?.onColumnChange()})),n((()=>this.layer?.definitionExpression),((e,t)=>(e||t)&&"loaded"===this.store.state&&this.reset())),n((()=>this.layer&&"timeExtent"in this.layer&&this.layer.timeExtent),((e,t)=>(e||t)&&!this.timeExtent&&"loaded"===this.store.state&&this.reset())),l((()=>this.layer),"refresh",(e=>this._onLayerRefresh(e)))])}destroy(){this._resetColumns(),this._highlights.removeAll(),this._highlights.destroy(),this.grid?.destroy(),this.columns?.destroy(),this.layer=null,this.view=null}get _defaultHiddenFields(){return d(this.layer)}get activeSortOrders(){return this.grid?.sortOrders?this.grid.sortOrders.map((({path:e,direction:t})=>({fieldName:e,direction:t}))):[]}set attachmentsEnabled(e){this.attachmentsEnabled!==e&&(this._set("attachmentsEnabled",e),this._generateColumns(),this.store.attachmentsEnabled=e)}set filterGeometry(e){if(!this.filterGeometry&&!e)return;const t=this.activeFilters.find((e=>"geometry"===e.type));t&&this.activeFilters.remove(t),this._set("filterGeometry",e),this.store.filterGeometry=e,e&&this.activeFilters.add({type:"geometry",geometry:e})}get hiddenFields(){return this._get("hiddenFields")??new s}set hiddenFields(e){Array.isArray(e)?this._set("hiddenFields",new s(e)):this._set("hiddenFields",e)}get highlightOnRowSelectEnabled(){return this.highlightEnabled}set highlightOnRowSelectEnabled(e){this.highlightEnabled=e}set layer(e){this._set("layer",e),this.grid?.clearSort(),this._resetColumns(),this.store.layer=e,e&&(e.loaded?this._onLayerLoad():e.load()),this.notifyChange("state")}get layerView(){return this.view?.allLayerViews.find((e=>e.layer===this.layer))||null}set messages(e){this.grid?.set("messages",e),this._set("messages",e)}get state(){const{store:e}=this;return e&&"disabled"!==e.state?"loading"===e.state?"loading":"loaded"===e.state?"loaded":"ready":"disabled"}set timeExtent(e){this._set("timeExtent",e),this.store.timeExtent=e}clearHighlights(){this._highlights.removeAll()}clearSelection(){this.grid?.clearSelection()}async deleteSelection(){const e=this.highlightIds.toArray();if(!e?.length)return;const{deleteFeatureResults:t}=await this.store.deleteRowsByObjectId(e),s=t.filter((e=>!e.error)).map((e=>e.objectId));s.length&&(this.deselectRows(s),await this.refresh())}deselectRows(e){const t=this._getStoreItemsFromSelectionParams(e);this.grid?.deselectRows(t)}filterBySelection(){const e=this.highlightIds.toArray();e.length&&(this.clearSelectionFilter(),this.store.objectIds=e,this.activeFilters.add({type:"selection",objectIds:e}))}getObjectIdIndex(e){return this.store?.getObjectIdIndex(e)}getValue(e,t){const s=this.store.getItemByObjectId(e);return s?.feature?.attributes[t]}get highlightIds(){return this._get("highlightIds")||new s}set highlightIds(e){Array.isArray(e)?this._set("highlightIds",new s(e)):this._set("highlightIds",e)}async refresh(){return o(this._debounceRefresh())}reset(){this.grid?.reset()}selectRows(e){const t=this._getStoreItemsFromSelectionParams(e);return this.grid?.selectRows(t)}scrollToIndex(e){this.grid?.scrollToIndex(e)}clearSelectionFilter(){this.store.objectIds=null;const e=this.activeFilters.find((e=>"selection"===e.type));e&&this.activeFilters.remove(e)}async zoomToSelection(){const{layer:e,view:t}=this,s=this.highlightIds.toArray();if(!e||!t||!s.length)return;const i=e.createQuery();i.objectIds=s,i.returnGeometry=!0;const r=await e.queryFeatures(i);try{await t.goTo(r.features)}catch(o){"AbortError"!==o.name&&console.error(o)}}async _refresh(){await this.store.refreshLayerInfo();const e=this.highlightIds.toArray();if(e.length){(await this.store.verifyFeaturesByObjectId(e)).forEach(((t,s)=>{t||this.deselectRows(e[s])}))}this.grid?.refreshPageCache()}_onLayerLoad(){const e=this.layer.capabilities?.query.maxRecordCount;e&&e<this.pageSize&&this.grid&&(this.grid.pageSize=e),this._generateColumns()}_onLayerRefresh(e){this.autoRefreshEnabled&&e.dataChanged&&this.refresh()}_generateColumns(){this._resetColumns();const e=[],t=this.tableTemplate?.columnTemplates?this._generateColumnsFromTemplates(this.tableTemplate.columnTemplates):this.fieldConfigs?.length?this._generateColumnsFromConfigs():this._generateDefaultFieldColumns();e.push(...t),e.length&&this.attachmentsEnabled&&e.push(this._generateDefaultAttachmentColumn()),this.columns.addMany([...e])}_generateColumnsFromTemplates(e){const{editingEnabled:t,grid:s,layer:i,messages:r,messagesCommon:o,messagesURIUtils:l,store:n,tableTemplate:a}=this,h=this.layer?.fields??[],d=e=>{const t="fieldName"in e&&e.fieldName?.toLowerCase();return h.find((e=>t===e.name?.toLowerCase()))};return e.filter((e=>null!=d(e)||"group"===e.type&&"columnTemplates"in e||"column"===e.type)).map((e=>{if("fieldName"in e){const h=d(e),m=!1===e.visible||!0!==e.visible&&this._isFieldHidden(h?.name),{direction:g,formatFunction:u,initialSortPriority:p,menuConfig:y,textAlign:f}=e;return new c({direction:g,editingEnabled:t,expressionInfos:a?.expressionInfos||null,field:h,formatFunction:u,grid:s,hidden:m,initialSortPriority:p,layer:i,messages:r,messagesCommon:o,messagesURIUtils:l,menuConfig:y,store:n,template:e,textAlign:f})}if("group"===e.type&&"columnTemplates"in e){const t=this._generateColumnsFromTemplates(e.columnTemplates),s=!1===e.visible||!0!==e.visible&&this._isFieldHidden(e.label),{label:i}=e;return new f({header:i,columns:t,hidden:s})}return new u({...e})}))}_generateColumnsFromConfigs(){const{editingEnabled:e,fieldConfigs:t,grid:s,layer:i,messages:r,messagesCommon:o,messagesURIUtils:l,store:n}=this;if(!t)return[];const a=this.layer?.fields??[],h=e=>{const t=e.name?.toLocaleLowerCase();return a.find((e=>t===e.name?.toLowerCase()))};return t.filter(h).map((t=>{const a=t.direction||null,d=t.formatFunction||null,m=t.textAlign||null,g=null!=t.initialSortPriority?t.initialSortPriority:null,u=h(t),p=!1===t.visible||!0!==t.visible&&this._isFieldHidden(u?.name),y=t.menuConfig||null;return new c({config:t,direction:a,editingEnabled:e,field:u,formatFunction:d,grid:s,hidden:p,layer:i,store:n,messages:r,messagesCommon:o,messagesURIUtils:l,menuConfig:y,textAlign:m,initialSortPriority:g})}))}_generateDefaultFieldColumns(){const{editingEnabled:e,grid:t,layer:s,messages:i,messagesCommon:r,messagesURIUtils:o,store:l}=this;return(this.layer?.fields??[]).map((n=>new c({editingEnabled:e,field:n,grid:t,hidden:this._isFieldHidden(n.name),layer:s,store:l,messages:i,messagesCommon:r,messagesURIUtils:o})))}_generateDefaultAttachmentColumn(){return new g({header:this.messages?.attachments})}_sortOrdersToLayerOrderByFields(e){return e&&e.length?e.filter(((e,t,s)=>s.map((e=>e.path)).indexOf(e.path)===t)).filter((({direction:e})=>!!e)).map((({direction:e,path:t})=>t+" "+e?.toUpperCase())):[]}_isFieldHidden(e){const t=e?.toLowerCase();return(this.hiddenFields??this._defaultHiddenFields).some((e=>e.toLowerCase()===t))}_highlight(e){this.layerView&&m(this.layerView)&&this._highlights.add(this.layerView.highlight(e),e)}_unhighlight(e){this._highlights.remove(e)}_getStoreItemsFromSelectionParams(e){const s=[];return(e=e instanceof Array?e:[e]).forEach((e=>{let i=e instanceof t?e:null;const r=i?i.getObjectId():e;if("number"==typeof r||"string"==typeof r){if(!i){const e=this.store.getItemByObjectId(r);e&&(i=e.feature)}s.push({objectId:r,feature:i})}})),s}_onHighlightIdsChange(e){const{highlightEnabled:t}=this,{added:s,removed:i}=e;t&&(s.forEach((e=>this._highlight(e))),i.forEach((e=>this._unhighlight(e))))}_resetColumns(){this.columns.items.forEach((e=>e.destroy())),this.columns.removeAll()}};e([a()],E.prototype,"_defaultHiddenFields",null),e([a({readOnly:!0})],E.prototype,"activeFilters",void 0),e([a({readOnly:!0})],E.prototype,"activeSortOrders",null),e([a()],E.prototype,"attachmentsEnabled",null),e([a()],E.prototype,"autoRefreshEnabled",void 0),e([a()],E.prototype,"cellClassNameGenerator",void 0),e([a({readOnly:!0})],E.prototype,"columns",void 0),e([a()],E.prototype,"dataProvider",void 0),e([a()],E.prototype,"editingEnabled",void 0),e([a()],E.prototype,"fieldConfigs",void 0),e([a()],E.prototype,"filterGeometry",null),e([a({readOnly:!0})],E.prototype,"grid",void 0),e([a()],E.prototype,"hiddenFields",null),e([a()],E.prototype,"highlightEnabled",void 0),e([a()],E.prototype,"highlightOnRowSelectEnabled",null),e([a({readOnly:!0})],E.prototype,"itemIdPath",void 0),e([a()],E.prototype,"layer",null),e([a()],E.prototype,"layerView",null),e([a()],E.prototype,"messages",null),e([a(),_("esri/t9n/common")],E.prototype,"messagesCommon",void 0),e([a(),_("esri/widgets/support/t9n/uriUtils")],E.prototype,"messagesURIUtils",void 0),e([a()],E.prototype,"relatedRecordsEnabled",void 0),e([a()],E.prototype,"returnGeometryEnabled",void 0),e([a({readOnly:!0})],E.prototype,"state",null),e([a({readOnly:!0,type:b})],E.prototype,"store",void 0),e([a()],E.prototype,"tableTemplate",void 0),e([a()],E.prototype,"timeExtent",null),e([a()],E.prototype,"view",void 0),e([a()],E.prototype,"highlightIds",null),E=e([h("esri.widgets.FeatureTable.FeatureTableViewModel")],E);const I=E;export{I as default};
|
|
@@ -956,4 +956,4 @@ import{_ as e}from"../../../chunks/tslib.es6.js";import{isSome as t}from"../../.
|
|
|
956
956
|
<template class="header" id="headerTemplate">
|
|
957
957
|
<vaadin-grid-sorter path="[[path]]" direction="{{direction}}">[[_getHeader(header, path)]]</vaadin-grid-sorter>
|
|
958
958
|
</template>
|
|
959
|
-
`}static get is(){return"vaadin-grid-sort-column"}static get properties(){return{path:String,direction:{type:String,notify:!0}}}_prepareHeaderTemplate(){const e=this._prepareTemplatizer(this.$.headerTemplate);return e.templatizer.dataHost=this,e}_getHeader(e,t){return e||this._generateHeader(t)}}customElements.define(Jl.is,Jl);const Xl={selectionColumn:!0,columnMenus:!0},Zl="esri-grid",Kl="compact column-borders",Ql={base:Zl,content:`${Zl}__content`,grid:`${Zl}__grid`,noColumnMenu:`${Zl}--no-column-menu`};let ed=class extends d{constructor(e,t){super(e,t),this._grid=null,this._columnElements=[],this._isDataLoaded=!1,this.itemIdPath=null,this.messages=null,this.viewModel=new h,this.visibleElements={...Xl}}initialize(){this.addHandles([this.columns.on("change",(()=>this.onColumnChange())),r((()=>this.viewModel?.size),(()=>this._updateGridSize())),r((()=>this.store?.state),((e,t)=>{"ready"!==e||"loaded"!==t&&"error"!==t||this.refreshPageCache()})),n((()=>this.highlightIds),"change",(e=>{const{added:t,removed:i}=e,s=t.map((e=>this.store?.getLocalItemByKey(e)||{objectId:e})),r=i.map((e=>this.store?.getLocalItemByKey(e)||{objectId:e}));this._deselectRows(r),this._selectRows(s)})),n((()=>this._grid?.$?.table),"scroll",(()=>this.viewModel?.closeColumnMenus()))])}destroy(){this.resetColumns(),this.columns?.destroy()}resetColumns(){this.columns.items.forEach((e=>e.destroy())),this.columns.removeAll()}get cellClassNameGenerator(){return this.viewModel.cellClassNameGenerator}set cellClassNameGenerator(e){this.viewModel.cellClassNameGenerator=e}get columns(){return this.viewModel.columns}set columns(e){this.viewModel.columns=e}get columnReorderingEnabled(){return this.viewModel.columnReorderingEnabled}set columnReorderingEnabled(e){this.viewModel.columnReorderingEnabled=e}get dataProvider(){return this.viewModel.dataProvider}set dataProvider(e){this.viewModel.dataProvider=e}get highlightIds(){return this.viewModel.highlightIds}set highlightIds(e){this.viewModel.highlightIds=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get multiSortEnabled(){return this.viewModel.multiSortEnabled}set multiSortEnabled(e){this.viewModel.multiSortEnabled=e}get pageSize(){return this.viewModel.pageSize}set pageSize(e){this.viewModel.pageSize=e}get rowDetailsRenderer(){return this.viewModel.rowDetailsRenderer}set rowDetailsRenderer(e){this.viewModel.rowDetailsRenderer=e}get size(){return this.viewModel.size}get sortOrders(){return this._grid?._sorters?this._grid._sorters.filter((e=>!!e)).map((({direction:e,path:t})=>({direction:e,path:t}))):[]}get store(){return this.viewModel.store}set store(e){this.viewModel.store=e}castVisibleElements(e){return{...Xl,...e}}getColumnProps(e,t){const{id:i}=this,{autoWidth:s,direction:r,flexGrow:n,frozen:o,header:a,hidden:l,path:d,resizable:h,textAlign:c,width:u}=e;return{autoWidth:s,direction:r,flexGrow:n,frozen:o,header:a,hidden:l,key:`${i}_${a}_${t??d}`,path:d,resizable:h,"text-align":c,width:"number"==typeof u?`${u}px`:u,bind:this,afterCreate:this._afterColumnCreate,afterRemoved:this._afterColumnRemoved}}clearSelection(){this._clearSelection(),this.scheduleRender()}clearSort(){let e=!1;if(this._grid){if(this._grid._sorters?.length&&(this._grid._sorters.forEach((e=>{e._order=null,e.direction=null})),e=!0),this.columns?.length){this.columns.some((e=>!!e.direction))&&(this.columns.forEach((e=>e.direction=null)),e=!0)}e&&(this.notifyChange("sortOrders"),this.scheduleRender())}}findColumn(e){this.viewModel.findColumn(e)}generateCellClassNames(){this._grid?.generateCellClassNames()}getSlotElementByName(e){return this._grid?.shadowRoot?.querySelector(`slot[name='${e}']`)??null}hideColumn(e){this.viewModel?.hideColumn(e),this.scheduleRender()}notifyResize(){this._grid?.notifyResize()}recalculateColumnWidths(){this._grid?.recalculateColumnWidths()}async reset(){this._isDataLoaded=!1,this._clearSelection(),await(this.store?.reset()),this.scrollToTop()}refreshPageCache(){this._grid?.clearCache()}selectRows(e){const t=e?.filter((e=>!this.highlightIds.includes(e.objectId))),i=t.map((e=>e.objectId));i.length&&(this.highlightIds.addMany(i),this._selectRows(t))}deselectRows(e){const t=e?.map((e=>e.objectId))||[];t.length&&(this.highlightIds.removeMany(t),this._deselectRows(e))}showColumn(e){this.viewModel?.showColumn(e),this.scheduleRender()}sort({path:e,direction:t}){this.viewModel?.sortColumn(e,t),this.notifyChange("sortOrders")}scrollToIndex(e){this._grid?.scrollToIndex(e)}scrollToTop(){this._grid?.scrollToIndex(0)}isEditingActive(){return!!this._getActiveEditInfo().length}onColumnChange(){this._syncColumnRenderers()}render(){const{columnMenus:e}=this.visibleElements;return _("div",{bind:this,class:this.classes(Ql.base,c.widget,{[Ql.noColumnMenu]:!e})},_("div",{bind:this,class:Ql.content},this._renderGrid()))}_renderGrid(){return _("vaadin-grid",{_safari:!1,afterCreate:this._afterGridCreate,afterUpdate:this._afterGridUpdate,bind:this,cellClassNameGenerator:this.cellClassNameGenerator,class:Ql.grid,columnReorderingAllowed:this.columnReorderingEnabled,dataProvider:this.dataProvider,id:`${this.id}_grid`,itemIdPath:this.itemIdPath,multiSort:this.multiSortEnabled,pageSize:this.pageSize,ref:"grid",rowDetailsRenderer:this.rowDetailsRenderer,size:this.size},this._renderAllColumns())}_renderAllColumns(){return"disabled"!==this.viewModel.state&&this.columns?.length?[this._renderSelectionColumn(),this._renderColumns()]:null}_renderSelectionColumn(){return _("vaadin-grid-selection-column",{_selectAllHidden:!0,selectAll:!1,bind:this,hidden:!this.visibleElements.selectionColumn,sortable:!1,frozen:!u(this.container)})}_renderColumns(){return this.columns.items.map(((e,t)=>"columns"in e?this._renderGroupColumn(e,t):_("vaadin-grid-column",{...this.getColumnProps(e,t)}))).filter(t)}_renderGroupColumn(e,t){const i=this.getColumnProps(e,t);if(i.hidden||!e.columns)return null;const s=e.columns.filter((({hidden:e})=>!e));return s.length?_("vaadin-grid-column-group",{...i},s.map((e=>_("vaadin-grid-column",{...this.getColumnProps(e,t)})))):null}_afterGridCreate(e){const t=this._grid=e;t.setAttribute("theme",Kl),customElements.whenDefined("vaadin-grid").then((()=>this._addGridEventListeners())),t.__updateSorter=e=>{const i=t._sorters,s=!i.includes(e);if(e.direction||!s)if(e._order=null,t.multiSort)t._removeArrayItem(i,e),e.direction&&(null!=e._initialOrder?(s?i[e._initialOrder]=e:i.splice(e._initialOrder,0,e),e._initialOrder=null):i.unshift(e)),t.__updateSortOrders();else if(e.direction){const s=i.filter((t=>t!==e));t._sorters=[e],s.forEach((e=>{e._order=null,e.direction=null}))}}}_afterGridUpdate(e){this._grid||(this._grid=e)}_afterColumnCreate(e){this._applyRenderersToColumnElement(e),this._columnElements.push(e)}_afterColumnRemoved(e){const t=this._columnElements.indexOf(e,0);t>-1&&this._columnElements.splice(t,1)}_syncColumnRenderers(){this._columnElements.forEach((e=>{this._applyRenderersToColumnElement(e)}))}_updateGridSize(){this._grid&&(this._grid.size=this.size||0,this.scheduleRender())}_getActiveEditInfo(){if(!this.columns||this.columns.length)return[];return this.columns.filter((e=>"activeEditInfo"in e)).map((e=>e.activeEditInfo)).items}_addGridEventListeners(){const e=this._grid;s(e),this.addHandles([i(e,"click",(e=>this._onRowClick(e))),i(e,"selected-items-changed",(e=>this._onSelectionChange(e))),i(e,"sorter-changed",(()=>this.notifyChange("sortOrders"))),i(e,"loading-changed",(e=>{this._isDataLoaded||!1===e.detail.value&&(this._isDataLoaded=!0,this._selectRowsOnLoad())}))])}_onRowClick(e){const t=this._grid;s(t);const i=t.getEventContext(e),{item:r,section:n}=i;r&&n&&"details"!==n&&"header"!==n&&this.emit("row-click",{context:i,native:e})}_clearSelection(){this._grid&&(this.highlightIds.removeAll(),this._grid.selectedItems=[],this._grid.render())}_selectRowsOnLoad(){const e=this._grid;if(!e)return;const t=e.selectedItems.slice(),i=this.highlightIds?.filter((e=>t.findIndex((t=>t.objectId===e))<0));i.forEach((t=>e.selectedItems.push(this.store?.getLocalItemByKey(t)||{objectId:t}))),e.render()}_selectRows(e){const t=this._grid;if(!t)return;const i=t.selectedItems.slice();e.filter((e=>i.findIndex((t=>t.objectId===e.objectId))<0)).forEach((e=>t.selectedItems.push(e))),t.render()}_deselectRows(e){const t=this._grid;if(!t)return;const i=t.selectedItems.slice();e.forEach((e=>{const t=i.findIndex((t=>t.objectId===e.objectId));t>-1&&i.splice(t,1)})),t.selectedItems=i,t.render()}_onSelectionChange(e){const t=e;if("selectedItems.splices"===t.detail.path){const{removed:e,object:i}=t.detail.value.indexSplices[0],s=i.filter((e=>!this.highlightIds.includes(e.objectId))).map((e=>e.objectId)),r=e.filter((e=>this.highlightIds.includes(e.objectId))).map((e=>e.objectId));this.highlightIds.removeMany(r),this.highlightIds.addMany(s)}}_applyRenderersToColumnElement(e){const t=e?.path,i=null!=t?this.viewModel.findColumn(t):void 0;if(i)try{const{renderFunction:t,footerRenderFunction:s,headerRenderFunction:r}=i;t&&"renderer"in e&&(e.renderer=(e,i,s)=>t({root:e,column:i,rowData:s})),s&&(e.footerRenderer=(e,t)=>s({root:e,column:t})),r&&(e.headerRenderer=(e,t)=>r({root:e,column:t}))}catch(s){}}};e([o()],ed.prototype,"_grid",void 0),e([o()],ed.prototype,"_isDataLoaded",void 0),e([o()],ed.prototype,"cellClassNameGenerator",null),e([o()],ed.prototype,"columns",null),e([o()],ed.prototype,"columnReorderingEnabled",null),e([o()],ed.prototype,"dataProvider",null),e([o()],ed.prototype,"highlightIds",null),e([o()],ed.prototype,"itemIdPath",void 0),e([o()],ed.prototype,"label",null),e([o(),p("esri/widgets/FeatureTable/t9n/FeatureTable")],ed.prototype,"messages",void 0),e([o()],ed.prototype,"multiSortEnabled",null),e([o()],ed.prototype,"pageSize",null),e([o()],ed.prototype,"rowDetailsRenderer",null),e([o()],ed.prototype,"size",null),e([o({readOnly:!0})],ed.prototype,"sortOrders",null),e([o()],ed.prototype,"store",null),e([o()],ed.prototype,"viewModel",void 0),e([o()],ed.prototype,"visibleElements",void 0),e([a("visibleElements")],ed.prototype,"castVisibleElements",null),ed=e([l("esri.widgets.FeatureTable.Grid.Grid")],ed);const td=ed;export{td as default};
|
|
959
|
+
`}static get is(){return"vaadin-grid-sort-column"}static get properties(){return{path:String,direction:{type:String,notify:!0}}}_prepareHeaderTemplate(){const e=this._prepareTemplatizer(this.$.headerTemplate);return e.templatizer.dataHost=this,e}_getHeader(e,t){return e||this._generateHeader(t)}}customElements.define(Jl.is,Jl);const Xl={selectionColumn:!0,columnMenus:!0},Zl="esri-grid",Kl="compact column-borders",Ql={base:Zl,content:`${Zl}__content`,grid:`${Zl}__grid`,noColumnMenu:`${Zl}--no-column-menu`};let ed=class extends d{constructor(e,t){super(e,t),this._grid=null,this._columnElements=[],this._isDataLoaded=!1,this.itemIdPath=null,this.messages=null,this.viewModel=new h,this.visibleElements={...Xl}}initialize(){this.addHandles([this.columns.on("change",(()=>this.onColumnChange())),r((()=>this.viewModel?.size),(()=>this._updateGridSize())),r((()=>this.store?.state),((e,t)=>{"ready"!==e||"loaded"!==t&&"error"!==t||this.refreshPageCache()})),n((()=>this.highlightIds),"change",(e=>{const{added:t,removed:i}=e,s=t.map((e=>this.store?.getLocalItemByKey(e)||{objectId:e})),r=i.map((e=>this.store?.getLocalItemByKey(e)||{objectId:e}));this._deselectRows(r),this._selectRows(s)})),n((()=>this._grid?.$?.table),"scroll",(()=>this.viewModel?.closeColumnMenus()))])}destroy(){this.resetColumns(),this.columns?.destroy()}resetColumns(){this.columns.items.forEach((e=>e.destroy())),this.columns.removeAll()}get cellClassNameGenerator(){return this.viewModel.cellClassNameGenerator}set cellClassNameGenerator(e){this.viewModel.cellClassNameGenerator=e}get columns(){return this.viewModel.columns}set columns(e){this.viewModel.columns=e}get columnReorderingEnabled(){return this.viewModel.columnReorderingEnabled}set columnReorderingEnabled(e){this.viewModel.columnReorderingEnabled=e}get dataProvider(){return this.viewModel.dataProvider}set dataProvider(e){this.viewModel.dataProvider=e}get highlightIds(){return this.viewModel.highlightIds}set highlightIds(e){this.viewModel.highlightIds=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get multiSortEnabled(){return this.viewModel.multiSortEnabled}set multiSortEnabled(e){this.viewModel.multiSortEnabled=e}get pageSize(){return this.viewModel.pageSize}set pageSize(e){this.viewModel.pageSize=e}get rowDetailsRenderer(){return this.viewModel.rowDetailsRenderer}set rowDetailsRenderer(e){this.viewModel.rowDetailsRenderer=e}get size(){return this.viewModel.size}get sortOrders(){return this._grid?._sorters?this._grid._sorters.filter((e=>!!e)).map((({direction:e,path:t})=>({direction:e,path:t}))):[]}get store(){return this.viewModel.store}set store(e){this.viewModel.store=e}castVisibleElements(e){return{...Xl,...e}}getColumnProps(e,t){const{id:i}=this,{autoWidth:s,direction:r,flexGrow:n,frozen:o,header:a,hidden:l,path:d,resizable:h,textAlign:c,width:u}=e;return{autoWidth:s,direction:r,flexGrow:n,frozen:o,header:a,hidden:l,key:`${i}_${a}_${t??d}`,path:d,resizable:h,"text-align":c,width:"number"==typeof u?`${u}px`:u,bind:this,afterCreate:this._afterColumnCreate,afterRemoved:this._afterColumnRemoved}}clearSelection(){this._clearSelection(),this.scheduleRender()}clearSort(){let e=!1;if(this._grid){if(this._grid._sorters?.length&&(this._grid._sorters.forEach((e=>{e._order=null,e.direction=null})),e=!0),this.columns?.length){this.columns.some((e=>!!e.direction))&&(this.columns.forEach((e=>e.direction=null)),e=!0)}e&&(this.notifyChange("sortOrders"),this.scheduleRender())}}findColumn(e){this.viewModel.findColumn(e)}generateCellClassNames(){this._grid?.generateCellClassNames()}getSlotElementByName(e){return this._grid?.shadowRoot?.querySelector(`slot[name='${e}']`)??null}hideColumn(e){this.viewModel?.hideColumn(e),this.scheduleRender()}notifyResize(){this._grid?.notifyResize()}recalculateColumnWidths(){this._grid?.recalculateColumnWidths()}async reset(){this._isDataLoaded=!1,this._clearSelection(),await(this.store?.reset()),this.scrollToTop()}refreshPageCache(){this._grid?.clearCache()}selectRows(e){const t=e?.filter((e=>!this.highlightIds.includes(e.objectId))),i=t.map((e=>e.objectId));i.length&&(this.highlightIds.addMany(i),this._selectRows(t))}deselectRows(e){const t=e?.map((e=>e.objectId))||[];t.length&&(this.highlightIds.removeMany(t),this._deselectRows(e))}showColumn(e){this.viewModel?.showColumn(e),this.scheduleRender()}sort({path:e,direction:t}){this.viewModel?.sortColumn(e,t),this.notifyChange("sortOrders")}scrollToIndex(e){this._grid?.scrollToIndex(e)}scrollToTop(){this._grid?.scrollToIndex(0)}isEditingActive(){return!!this._getActiveEditInfo().length}onColumnChange(){this._syncColumnRenderers()}render(){const{columnMenus:e}=this.visibleElements;return _("div",{bind:this,class:this.classes(Ql.base,c.widget,{[Ql.noColumnMenu]:!e})},_("div",{bind:this,class:Ql.content},this._renderGrid()))}_renderGrid(){return _("vaadin-grid",{_safari:!1,afterCreate:this._afterGridCreate,afterUpdate:this._afterGridUpdate,bind:this,cellClassNameGenerator:this.cellClassNameGenerator,class:Ql.grid,columnReorderingAllowed:this.columnReorderingEnabled,dataProvider:this.dataProvider,id:`${this.id}_grid`,itemIdPath:this.itemIdPath,multiSort:this.multiSortEnabled,pageSize:this.pageSize,ref:"grid",rowDetailsRenderer:this.rowDetailsRenderer,size:this.size},this._renderAllColumns())}_renderAllColumns(){return"disabled"!==this.viewModel.state&&this.columns?.length?[this._renderSelectionColumn(),this._renderColumns()]:null}_renderSelectionColumn(){return _("vaadin-grid-selection-column",{_selectAllHidden:!0,bind:this,frozen:!u(this.container),hidden:!this.visibleElements.selectionColumn,selectAll:!1,sortable:!1})}_renderColumns(){return this.columns.items.map(((e,t)=>"columns"in e?this._renderGroupColumn(e,t):_("vaadin-grid-column",{...this.getColumnProps(e,t)}))).filter(t)}_renderGroupColumn(e,t){const i=this.getColumnProps(e,t);if(i.hidden||!e.columns)return null;const s=e.columns.filter((({hidden:e})=>!e));return s.length?_("vaadin-grid-column-group",{...i},s.map((e=>_("vaadin-grid-column",{...this.getColumnProps(e,t)})))):null}_afterGridCreate(e){const t=this._grid=e;t.setAttribute("theme",Kl),customElements.whenDefined("vaadin-grid").then((()=>this._addGridEventListeners())),t.__updateSorter=e=>{const i=t._sorters,s=!i.includes(e);if(e.direction||!s)if(e._order=null,t.multiSort)t._removeArrayItem(i,e),e.direction&&(null!=e._initialOrder?(s?i[e._initialOrder]=e:i.splice(e._initialOrder,0,e),e._initialOrder=null):i.unshift(e)),t.__updateSortOrders();else if(e.direction){const s=i.filter((t=>t!==e));t._sorters=[e],s.forEach((e=>{e._order=null,e.direction=null}))}}}_afterGridUpdate(e){this._grid||(this._grid=e)}_afterColumnCreate(e){this._applyRenderersToColumnElement(e),this._columnElements.push(e)}_afterColumnRemoved(e){const t=this._columnElements.indexOf(e,0);t>-1&&this._columnElements.splice(t,1)}_syncColumnRenderers(){this._columnElements.forEach((e=>{this._applyRenderersToColumnElement(e)}))}_updateGridSize(){this._grid&&(this._grid.size=this.size||0,this.scheduleRender())}_getActiveEditInfo(){if(!this.columns||this.columns.length)return[];return this.columns.filter((e=>"activeEditInfo"in e)).map((e=>e.activeEditInfo)).items}_addGridEventListeners(){const e=this._grid;s(e),this.addHandles([i(e,"click",(e=>this._onRowClick(e))),i(e,"selected-items-changed",(e=>this._onSelectionChange(e))),i(e,"sorter-changed",(()=>this.notifyChange("sortOrders"))),i(e,"loading-changed",(e=>{this._isDataLoaded||!1===e.detail.value&&(this._isDataLoaded=!0,this._selectRowsOnLoad())}))])}_onRowClick(e){const t=this._grid;s(t);const i=t.getEventContext(e),{item:r,section:n}=i;r&&n&&"details"!==n&&"header"!==n&&this.emit("row-click",{context:i,native:e})}_clearSelection(){this._grid&&(this.highlightIds.removeAll(),this._grid.selectedItems=[],this._grid.render())}_selectRowsOnLoad(){const e=this._grid;if(!e)return;const t=e.selectedItems.slice(),i=this.highlightIds?.filter((e=>t.findIndex((t=>t.objectId===e))<0));i.forEach((t=>e.selectedItems.push(this.store?.getLocalItemByKey(t)||{objectId:t}))),e.render()}_selectRows(e){const t=this._grid;if(!t)return;const i=t.selectedItems.slice();e.filter((e=>i.findIndex((t=>t.objectId===e.objectId))<0)).forEach((e=>t.selectedItems.push(e))),t.render()}_deselectRows(e){const t=this._grid;if(!t)return;const i=t.selectedItems.slice();e.forEach((e=>{const t=i.findIndex((t=>t.objectId===e.objectId));t>-1&&i.splice(t,1)})),t.selectedItems=i,t.render()}_onSelectionChange(e){const t=e;if("selectedItems.splices"===t.detail.path){const{removed:e,object:i}=t.detail.value.indexSplices[0],s=i.filter((e=>!this.highlightIds.includes(e.objectId))).map((e=>e.objectId)),r=e.filter((e=>this.highlightIds.includes(e.objectId))).map((e=>e.objectId));this.highlightIds.removeMany(r),this.highlightIds.addMany(s)}}_applyRenderersToColumnElement(e){const t=e?.path,i=null!=t?this.viewModel.findColumn(t):void 0;if(i)try{const{renderFunction:t,footerRenderFunction:s,headerRenderFunction:r}=i;t&&"renderer"in e&&(e.renderer=(e,i,s)=>t({root:e,column:i,rowData:s})),s&&(e.footerRenderer=(e,t)=>s({root:e,column:t})),r&&(e.headerRenderer=(e,t)=>r({root:e,column:t}))}catch(s){}}};e([o()],ed.prototype,"_grid",void 0),e([o()],ed.prototype,"_isDataLoaded",void 0),e([o()],ed.prototype,"cellClassNameGenerator",null),e([o()],ed.prototype,"columns",null),e([o()],ed.prototype,"columnReorderingEnabled",null),e([o()],ed.prototype,"dataProvider",null),e([o()],ed.prototype,"highlightIds",null),e([o()],ed.prototype,"itemIdPath",void 0),e([o()],ed.prototype,"label",null),e([o(),p("esri/widgets/FeatureTable/t9n/FeatureTable")],ed.prototype,"messages",void 0),e([o()],ed.prototype,"multiSortEnabled",null),e([o()],ed.prototype,"pageSize",null),e([o()],ed.prototype,"rowDetailsRenderer",null),e([o()],ed.prototype,"size",null),e([o({readOnly:!0})],ed.prototype,"sortOrders",null),e([o()],ed.prototype,"store",null),e([o()],ed.prototype,"viewModel",void 0),e([o()],ed.prototype,"visibleElements",void 0),e([a("visibleElements")],ed.prototype,"castVisibleElements",null),ed=e([l("esri.widgets.FeatureTable.Grid.Grid")],ed);const td=ed;export{td 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{eventKey as t}from"../../../../core/events.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 s}from"../../../../core/accessorSupport/decorators/subclass.js";import n from"../../../Widget.js";import i from"./ButtonMenuViewModel.js";import{loadCalciteComponents as r}from"../../../support/componentsUtils.js";import{globalCss as l}from"../../../support/globalCss.js";import{storeNode as a,renderingSanitizer as c,isActivationKey as p}from"../../../support/widgetUtils.js";import{tsx as d}from"../../../support/jsxFactory.js";const m="esri-button-menu",u={base:m,content:`${m}__content`,itemWrapper:`${m}__item-wrapper`,label:`${m}__label`,icon:`${m}__icon`,item:`${m}__item`,itemLabel:`${m}__item-label`,itemLabelContent:`${m}__item-label-content`,selectableMenuItem:`${m}__item--selectable`,selectedMenuItem:`${m}__item--selected`,checkbox:`${m}__checkbox`,embeddedContentWrapper:`${m}__embedded-content-wrapper`,button:`${m}__button`,buttonSelected:`${m}__button--selected`};let b=class extends n{constructor(e,t){super(e,t),this._popover=null,this.disabled=!1,this.iconClass="",this.viewModel=new i}loadDependencies(){return r({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover.js")})}destroy(){this._popover=null}get items(){return this.viewModel.items}set items(e){this.viewModel.items=e}get open(){return this.viewModel.open}set open(e){this.viewModel.open=e}render(){const{open:e}=this,t=`${this.id}-button`;return d("div",{class:this.classes(u.base,l.widget),key:"menu"},d("calcite-button",{appearance:"transparent",bind:this,class:this.classes(u.button,e&&u.buttonSelected),disabled:this.disabled,iconStart:e?"x":"ellipsis",id:t,kind:"neutral",label:this.label||"button",onclick:()=>this._toggleOpen(e),tabIndex:0}),d("calcite-popover",{afterCreate:a,afterUpdate:()=>this._popover?.reposition(),autoClose:!0,bind:this,"data-node-ref":"_popover",label:this.label||"menu",open:e,
|
|
5
|
+
import{_ as e}from"../../../../chunks/tslib.es6.js";import{eventKey as t}from"../../../../core/events.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 s}from"../../../../core/accessorSupport/decorators/subclass.js";import n from"../../../Widget.js";import i from"./ButtonMenuViewModel.js";import{loadCalciteComponents as r}from"../../../support/componentsUtils.js";import{globalCss as l}from"../../../support/globalCss.js";import{storeNode as a,renderingSanitizer as c,isActivationKey as p}from"../../../support/widgetUtils.js";import{tsx as d}from"../../../support/jsxFactory.js";const m="esri-button-menu",u={base:m,content:`${m}__content`,itemWrapper:`${m}__item-wrapper`,label:`${m}__label`,icon:`${m}__icon`,item:`${m}__item`,itemLabel:`${m}__item-label`,itemLabelContent:`${m}__item-label-content`,selectableMenuItem:`${m}__item--selectable`,selectedMenuItem:`${m}__item--selected`,checkbox:`${m}__checkbox`,embeddedContentWrapper:`${m}__embedded-content-wrapper`,button:`${m}__button`,buttonSelected:`${m}__button--selected`};let b=class extends n{constructor(e,t){super(e,t),this._popover=null,this.disabled=!1,this.iconClass="",this.viewModel=new i}loadDependencies(){return r({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),popover:()=>import("@esri/calcite-components/dist/components/calcite-popover.js")})}destroy(){this._popover=null}get items(){return this.viewModel.items}set items(e){this.viewModel.items=e}get open(){return this.viewModel.open}set open(e){this.viewModel.open=e}render(){const{open:e}=this,t=`${this.id}-button`;return d("div",{class:this.classes(u.base,l.widget),key:"menu"},d("calcite-button",{appearance:"transparent",bind:this,class:this.classes(u.button,e&&u.buttonSelected),disabled:this.disabled,iconStart:e?"x":"ellipsis",id:t,kind:"neutral",label:this.label||"button",onclick:()=>this._toggleOpen(e),tabIndex:0}),d("calcite-popover",{afterCreate:a,afterUpdate:()=>this._popover?.reposition(),autoClose:!0,bind:this,"data-node-ref":"_popover",label:this.label||"menu",open:e,overlayPositioning:"fixed",placement:"bottom",pointerDisabled:!0,referenceElement:t,onCalcitePopoverClose:this._onPopoverClose},this._renderMenuContent()))}_onPopoverClose(){this.open=!1}_renderMenuContent(){const{id:e,open:t}=this;return d("div",{afterCreate:this._afterMenuContentNodeCreate,bind:this,class:u.content,hidden:!t,key:"esri-button-menu-content"},d("ul",{"aria-labelledby":`${e}-button`,bind:this,class:u.itemWrapper,id:`${e}-menu`,role:"menu"},this.items?.length?this._renderItems():null))}_renderItems(){return this.items?.map(((e,t)=>this._renderItem(e,t)))}_renderItem(e,t,o){const s=null!=o?`${this.id}-menu-item-${t}-${o}`:`${this.id}-menu-item-${t}`,n=`${s}-label`,i=this.classes(u.item,e.selectionEnabled?u.selectableMenuItem:null,e.selectionEnabled&&e.selected?u.selectedMenuItem:null);return d("li",{afterCreate:this._afterMenuItemCreate,bind:this,class:i,"data-item-index":t,"data-item-subIndex":o,for:s,key:s,onclick:t=>this._handleMenuItemInteraction(t,e),onkeydown:t=>this._handleMenuItemKeydown(t,e),role:"menuitem",tabIndex:this.disabled?-1:0},d("input",{checked:e.selected,class:u.checkbox,disabled:!0,id:s,name:s,tabIndex:-1,type:"checkbox"}),d("label",{class:u.itemLabel,for:s,id:n},d("span",{"aria-hidden":"true",class:this.classes(u.icon,e.iconClass)}),d("span",{class:u.itemLabelContent},c.sanitize(e.label))),d("ul",{"aria-labelledby":n,class:u.embeddedContentWrapper,id:`${this.id}-submenu`,role:"menu"},e?.items?.map(((e,o)=>this._renderItem(e,t,o)))))}_handleMenuItemInteraction(e,t){t.selected=!t.selected,t.open=!(!t.selected||!t.items),t.autoCloseMenu&&this.set("open",!1),t.clickFunction&&t.clickFunction({event:e,item:t}),e.stopPropagation()}_handleMenuItemKeydown(e,o){const s=t(e);p(s)&&this._handleMenuItemInteraction(e,o),"Escape"===s&&(this.open=!1,e.preventDefault(),e.stopPropagation())}_afterMenuContentNodeCreate(e){e.focus()}_toggleOpen(e){this.open=!e}_afterMenuItemCreate(e){0===e["data-item-index"]&&e.focus()}};e([o()],b.prototype,"disabled",void 0),e([o()],b.prototype,"iconClass",void 0),e([o()],b.prototype,"items",null),e([o()],b.prototype,"open",null),e([o()],b.prototype,"viewModel",void 0),b=e([s("esri.widgets.FeatureTable.Grid.support.ButtonMenu")],b);const h=b;export{h as default};
|
package/widgets/FeatureTable.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{deprecatedFunction as t}from"../core/deprecate.js";import i from"../core/Logger.js";import{on as l,watch as s}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import d from"./FeatureTable/FeatureTableViewModel.js";import h from"./FeatureTable/Grid/support/ButtonMenu.js";import c from"./FeatureTable/Grid/support/ButtonMenuItem.js";import{loadCalciteComponents as u}from"./support/componentsUtils.js";import{globalCss as m}from"./support/globalCss.js";import{Heading as g}from"./support/Heading.js";import{legacyIcon as p}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as b}from"./support/decorators/messageBundle.js";import{tsx as v}from"./support/jsxFactory.js";import{substitute as w}from"../intl/substitute.js";const M={header:!0,menu:!0,menuItems:{clearSelection:!0,refreshData:!0,toggleColumns:!0,selectedRecordsShowAllToggle:!0,selectedRecordsShowSelectedToggle:!0,zoomToSelection:!0,deleteSelection:!0},selectionColumn:!0,columnMenus:!0},y="esri-feature-table",f=`${y}__prompt`,_={base:y,header:`${y}__header`,title:`${y}__title`,content:`${y}__content`,loader:`${y}__loader`,loaderContainer:`${y}__loader-container`,menuContainer:`${y}__menu`,promptContainer:f,promptHeader:`${f}__header`,promptHeading:`${f}__header__heading`,promptMessage:`${f}__message`,promptDivider:`${f}__divider`,promptActions:`${f}__actions`},E=i.getLogger("esri.widgets.FeatureTable");let S=class extends a{constructor(e,t){super(e,t),this._prompt=null,this.menu=null,this.menuConfig=null,this.viewModel=new d,this.visibleElements={...M},this._showDeletePrompt=this._showDeletePrompt.bind(this),this._onDeleteSelectionClick=this._onDeleteSelectionClick.bind(this)}initialize(){this.addHandles([l((()=>this.viewModel.columns),"change",(()=>this._syncMenuConfig())),l((()=>this.viewModel.activeFilters),"change",(()=>this._syncMenuConfig())),l((()=>this.highlightIds),"change",(e=>{this._syncMenuConfig(),this._onSelectionChange(e)})),s((()=>[this.viewModel.store.querying,this.viewModel.store.syncing,this.editingEnabled]),(()=>this.scheduleRender())),s((()=>[this.menuConfig,this.editingEnabled]),(()=>this._syncMenuConfig())),s((()=>this.messages),(()=>{this.menu&&(this.menu.label=this.messages?.options),this._syncMenuConfig()}))]),this._set("menu",new h({label:this.messages?.options,iconClass:p.handleHorizontal,...this.menuConfig}));const{attachmentsEnabled:e,relatedRecordsEnabled:t}=this;this.viewModel?.store?.set({attachmentsEnabled:e,relatedRecordsEnabled:t})}loadDependencies(){return u({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")})}destroy(){this._prompt=null,this.menu?.destroy()}get activeFilters(){return this.viewModel.activeFilters}get activeSortOrders(){return this.viewModel.activeSortOrders}get attachmentsEnabled(){return this.viewModel.attachmentsEnabled}set attachmentsEnabled(e){this.viewModel.attachmentsEnabled=e}get autoRefreshEnabled(){return this.viewModel.autoRefreshEnabled}set autoRefreshEnabled(e){this.viewModel.autoRefreshEnabled=e}get columnReorderingEnabled(){return this.viewModel.columnReorderingEnabled}set columnReorderingEnabled(e){this.viewModel.columnReorderingEnabled=e}get columns(){return this.viewModel.columns}get editingEnabled(){return this.viewModel.editingEnabled}set editingEnabled(e){this.viewModel.editingEnabled=e}get fieldConfigs(){return this.viewModel.fieldConfigs??[]}set fieldConfigs(e){this.viewModel.fieldConfigs=e}get filterGeometry(){return this.viewModel.filterGeometry}set filterGeometry(e){this.viewModel.filterGeometry=e}get grid(){return this.viewModel.grid}get hiddenFields(){return this.viewModel.hiddenFields}set hiddenFields(e){this.viewModel.hiddenFields=e}get highlightEnabled(){return this.viewModel.highlightEnabled}set highlightEnabled(e){this.viewModel.highlightEnabled=e}get highlightIds(){return this.viewModel.highlightIds}set highlightIds(e){this.viewModel.highlightIds=e}get highlightOnRowSelectEnabled(){return this.viewModel.highlightEnabled}set highlightOnRowSelectEnabled(e){this.viewModel.highlightEnabled=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get messages(){return this.viewModel.messages}set messages(e){this.viewModel.messages=e}get messagesCommon(){return this.viewModel.messagesCommon}set messagesCommon(e){this.viewModel.messagesCommon=e}get messagesURIUtils(){return this.viewModel.messagesURIUtils}set messagesURIUtils(e){this.viewModel.messagesURIUtils=e}get multiSortEnabled(){return this.viewModel.multiSortEnabled}set multiSortEnabled(e){this.viewModel.multiSortEnabled=e}get pageSize(){return this.viewModel.pageSize}set pageSize(e){this.viewModel.pageSize=e}get relatedRecordsEnabled(){return this.viewModel.relatedRecordsEnabled}set relatedRecordsEnabled(e){this.viewModel.relatedRecordsEnabled=e}get state(){return this.viewModel.state}get tableTemplate(){return this.viewModel.tableTemplate}set tableTemplate(e){this.viewModel.tableTemplate=e}get timeExtent(){return this.viewModel.timeExtent}set timeExtent(e){this.viewModel.timeExtent=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){const t={...M,...e};return this.grid?.set("visibleElements",{...this.grid.visibleElements,selectionColumn:t.selectionColumn,columnMenus:t.columnMenus}),t}clearHighlights(){return t(E,"`FeatureTable.clearHighlights` is deprecated in favor of FeatureTable.highlightIds'",{replacement:"FeatureTable.highlightIds",version:"4.25",see:"https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable.html#highlightIds"}),this.viewModel.clearHighlights()}clearSelection(){return t(E,"`FeatureTable.clearSelection` is deprecated in favor of FeatureTable.highlightIds'",{replacement:"FeatureTable.highlightIds",version:"4.25",see:"https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable.html#highlightIds"}),this.viewModel.clearSelection()}clearSelectionFilter(){return this.viewModel.clearSelectionFilter()}deleteSelection(e){return this.highlightIds.length?e?(this._showDeletePrompt(),this.scheduleRender(),Promise.resolve()):this.viewModel.deleteSelection():Promise.resolve()}deselectRows(e){return this.viewModel.deselectRows(e)}filterBySelection(){return this.viewModel.filterBySelection()}findColumn(e){return this.viewModel.findColumn(e)}hideColumn(e){this.grid?.hideColumn(e),this._syncMenuConfig()}refresh(){return this.viewModel.refresh()}get returnGeometryEnabled(){return this.viewModel.returnGeometryEnabled}set returnGeometryEnabled(e){this.viewModel.returnGeometryEnabled=e}showAllColumns(){return this.viewModel.showAllColumns()}showColumn(e){this.grid?.showColumn(e),this._syncMenuConfig()}sortColumn(e,t){return this.viewModel.sortColumn(e,t)}selectRows(e){return this.viewModel.selectRows(e)}scrollToIndex(e){return this.viewModel.scrollToIndex(e)}zoomToSelection(){return this.viewModel.zoomToSelection()}render(){const{_prompt:e}=this,t=null!=e?v("calcite-scrim",null,this._renderPrompt(e)):null;return v("div",{bind:this,class:this.classes(_.base,m.widget)},this.visibleElements.header?this._renderHeader():null,v("div",{class:_.content},"disabled"!==this.state&&this.grid?.render()),t)}_renderPrompt({title:e,message:t,context:i,actions:l}){const s=v("calcite-button",{appearance:"solid",kind:"danger"===i?"danger":"brand",width:l.secondary?"half":"full",onclick:l.primary.action,key:"prompt-primary-button"},l.primary.label),o=l.secondary?v("calcite-button",{appearance:"outline",kind:"danger"===i?"danger":"brand",width:"half",onclick:l.secondary.action,key:"prompt-secondary-button"},l.secondary.label):null;return v("div",{class:`${_.promptContainer}--${i}`},v("div",{class:_.promptHeader},v("calcite-icon",{icon:"exclamation-mark-triangle"}),v(g,{class:_.promptHeading,level:2},e)),v("div",{class:_.promptMessage},t),v("div",{class:_.promptDivider}),v("div",{class:_.promptActions},o,s))}_renderHeader(){return v("div",{key:"header",class:_.header},this._renderLoader(),this._renderTitle(),this.visibleElements.menu?this._renderMenu():null)}_renderTitle(){return v("div",{class:_.title,key:"title"},this._getTitle())}_getTitle(){const{grid:e,highlightIds:t,layer:i,messages:l,viewModel:{size:s}}=this;return e&&i?w(l.header,{title:i.title,count:s,selected:t.length||0}):""}_renderLoader(){const{state:e,store:t}=this.viewModel,i="loading"===e||t.syncing||t.querying;return v("div",{class:_.loaderContainer},i?v("div",{class:_.loader,key:"loader"}):null)}_renderMenu(){return v("div",{class:_.menuContainer},this.menu?.render())}_onSelectionChange(e){const{added:t,removed:i}=e,l=t.map((e=>this.viewModel.store.getLocalItemByKey(e)||{objectId:e,feature:null,attachments:null,relatedRecords:null})),s=i.map((e=>this.viewModel.store.getLocalItemByKey(e)||{objectId:e,feature:null,attachments:null,relatedRecords:null}));this.emit("selection-change",{added:l,removed:s})}_syncMenuConfig(){this.menu?.set({...this.menuConfig,items:this._getMenuItems()})}_getMenuItems(){const e=this.menuConfig?.items,t=this._getDefaultMenuItems(),i=[];return t?.length&&i.push(...t),e?.length&&i.push(...e),i}_getDefaultMenuItems(){const{highlightIds:e,messages:t,viewModel:i,visibleElements:l}=this,{menuItems:s}=l,o=[];if(s?.refreshData&&o.push(new c({selectionEnabled:!1,label:t?.refreshData,clickFunction:()=>this.refresh()})),e.length){const i=this._getSelectionFilter();if(s?.clearSelection&&o.push(new c({selectionEnabled:!1,label:t?.clearSelection,clickFunction:()=>this.highlightIds?.removeAll()})),s?.zoomToSelection&&this.view&&o.push(new c({selectionEnabled:!1,label:t?.zoomToSelection,clickFunction:()=>this.viewModel.zoomToSelection()})),s?.selectedRecordsShowSelectedToggle&&(!i||e.length!==i.objectIds.length)){const e=t.showSelected,i=new c({selectionEnabled:!1,label:e,clickFunction:()=>{this.filterBySelection(),i.set("label",e)}});o.push(i)}s?.deleteSelection&&this.editingEnabled&&this.layer?.capabilities?.operations?.supportsDelete&&o.push(new c({selectionEnabled:!1,label:t.deleteSelection,clickFunction:this._showDeletePrompt}))}if(s?.selectedRecordsShowAllToggle&&this._hasSelectionFilter()){const e=t.showAllRecords,i=new c({selectionEnabled:!1,label:e,clickFunction:()=>{this.clearSelectionFilter(),i.set("label",e)}});o.push(i)}return s?.toggleColumns&&o.push(new c({iconClass:p.right,label:t?.toggleColumns,clickFunction:this._toggleMenuItemSelectedIcon,items:i?.columns?.items.map((({header:e,hidden:t,path:i})=>new c({label:e||i,selected:!t,selectionEnabled:!0,iconClass:p.checkMark,clickFunction:()=>this._toggleColumnFromMenuItem(i)})))})),o.length?o:null}_toggleMenuItemSelectedIcon({item:e}){e?.set("iconClass",e?.selected?p.down:p.right)}_toggleColumnFromMenuItem(e){const{grid:t,viewModel:i}=this,l=i.findColumn(e);l?.hidden?t?.showColumn(e):t?.hideColumn(e)}_showDeletePrompt(){const{messages:e,messagesCommon:t}=this,i=this.highlightIds.length||0,l=w(e.deleteSelectionCount,{count:i});this.menu&&(this.menu.open=!1),this._prompt={title:l,message:e.deleteRecordsRemoved,context:"danger",actions:{primary:{label:t.delete,action:this._onDeleteSelectionClick},secondary:{label:e.keepRecords,action:()=>this._prompt=null}}}}async _onDeleteSelectionClick(){await this.viewModel.deleteSelection(),this._prompt=null}_getSelectionFilter(){return this.viewModel.activeFilters?.find((e=>"selection"===e.type))}_hasSelectionFilter(){return!!this._getSelectionFilter()}};e([o({readOnly:!0})],S.prototype,"activeFilters",null),e([o({readOnly:!0})],S.prototype,"activeSortOrders",null),e([o()],S.prototype,"attachmentsEnabled",null),e([o()],S.prototype,"autoRefreshEnabled",null),e([o()],S.prototype,"columnReorderingEnabled",null),e([o({readOnly:!0})],S.prototype,"columns",null),e([o()],S.prototype,"editingEnabled",null),e([o()],S.prototype,"fieldConfigs",null),e([o()],S.prototype,"filterGeometry",null),e([o({readOnly:!0})],S.prototype,"grid",null),e([o()],S.prototype,"hiddenFields",null),e([o()],S.prototype,"highlightEnabled",null),e([o()],S.prototype,"highlightIds",null),e([o()],S.prototype,"highlightOnRowSelectEnabled",null),e([o()],S.prototype,"label",null),e([o()],S.prototype,"layer",null),e([o(),b("esri/widgets/FeatureTable/t9n/FeatureTable")],S.prototype,"messages",null),e([o(),b("esri/t9n/common")],S.prototype,"messagesCommon",null),e([o(),b("esri/widgets/support/t9n/uriUtils")],S.prototype,"messagesURIUtils",null),e([o({readOnly:!0})],S.prototype,"menu",void 0),e([o()],S.prototype,"menuConfig",void 0),e([o()],S.prototype,"multiSortEnabled",null),e([o()],S.prototype,"pageSize",null),e([o()],S.prototype,"relatedRecordsEnabled",null),e([o({readOnly:!0})],S.prototype,"state",null),e([o()],S.prototype,"tableTemplate",null),e([o()],S.prototype,"timeExtent",null),e([o()],S.prototype,"view",null),e([o()],S.prototype,"viewModel",void 0),e([o()],S.prototype,"visibleElements",void 0),e([n("visibleElements")],S.prototype,"castVisibleElements",null),e([o()],S.prototype,"returnGeometryEnabled",null),S=e([r("esri.widgets.FeatureTable")],S);const C=S;export{C as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import{deprecatedFunction as t}from"../core/deprecate.js";import i from"../core/Logger.js";import{on as l,watch as s}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import d from"./FeatureTable/FeatureTableViewModel.js";import h from"./FeatureTable/Grid/support/ButtonMenu.js";import c from"./FeatureTable/Grid/support/ButtonMenuItem.js";import{loadCalciteComponents as u}from"./support/componentsUtils.js";import{globalCss as m}from"./support/globalCss.js";import{Heading as g}from"./support/Heading.js";import{legacyIcon as p}from"./support/legacyIcon.js";import"./support/widgetUtils.js";import{messageBundle as b}from"./support/decorators/messageBundle.js";import{tsx as v}from"./support/jsxFactory.js";import{substitute as w}from"../intl/substitute.js";const M={header:!0,menu:!0,menuItems:{clearSelection:!0,refreshData:!0,toggleColumns:!0,selectedRecordsShowAllToggle:!0,selectedRecordsShowSelectedToggle:!0,zoomToSelection:!0,deleteSelection:!0},selectionColumn:!0,columnMenus:!0},y="esri-feature-table",f=`${y}__prompt`,_={base:y,header:`${y}__header`,title:`${y}__title`,content:`${y}__content`,loader:`${y}__loader`,loaderContainer:`${y}__loader-container`,menuContainer:`${y}__menu`,promptContainer:f,promptHeader:`${f}__header`,promptHeading:`${f}__header__heading`,promptMessage:`${f}__message`,promptDivider:`${f}__divider`,promptActions:`${f}__actions`},E=i.getLogger("esri.widgets.FeatureTable");let S=class extends a{constructor(e,t){super(e,t),this._prompt=null,this.menu=null,this.menuConfig=null,this.viewModel=new d,this.visibleElements={...M},this._showDeletePrompt=this._showDeletePrompt.bind(this),this._onDeleteSelectionClick=this._onDeleteSelectionClick.bind(this)}initialize(){this.addHandles([l((()=>this.viewModel.columns),"change",(()=>this._syncMenuConfig())),l((()=>this.viewModel.activeFilters),"change",(()=>this._syncMenuConfig())),l((()=>this.highlightIds),"change",(e=>{this._syncMenuConfig(),this._onSelectionChange(e)})),s((()=>[this.viewModel.store.querying,this.viewModel.store.syncing,this.editingEnabled]),(()=>this.scheduleRender())),s((()=>[this.menuConfig,this.editingEnabled]),(()=>this._syncMenuConfig())),s((()=>this.messages),(()=>{this.menu&&(this.menu.label=this.messages?.options),this._syncMenuConfig()}))]),this._set("menu",new h({label:this.messages?.options,iconClass:p.handleHorizontal,...this.menuConfig}));const{attachmentsEnabled:e,relatedRecordsEnabled:t}=this;this.viewModel?.store?.set({attachmentsEnabled:e,relatedRecordsEnabled:t})}loadDependencies(){return u({button:()=>import("@esri/calcite-components/dist/components/calcite-button.js"),icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")})}destroy(){this._prompt=null,this.menu?.destroy()}get activeFilters(){return this.viewModel.activeFilters}get activeSortOrders(){return this.viewModel.activeSortOrders}get attachmentsEnabled(){return this.viewModel.attachmentsEnabled}set attachmentsEnabled(e){this.viewModel.attachmentsEnabled=e}get autoRefreshEnabled(){return this.viewModel.autoRefreshEnabled}set autoRefreshEnabled(e){this.viewModel.autoRefreshEnabled=e}get columnReorderingEnabled(){return this.viewModel.columnReorderingEnabled}set columnReorderingEnabled(e){this.viewModel.columnReorderingEnabled=e}get columns(){return this.viewModel.columns}get editingEnabled(){return this.viewModel.editingEnabled}set editingEnabled(e){this.viewModel.editingEnabled=e}get fieldConfigs(){return this.viewModel.fieldConfigs??[]}set fieldConfigs(e){this.viewModel.fieldConfigs=e}get filterGeometry(){return this.viewModel.filterGeometry}set filterGeometry(e){this.viewModel.filterGeometry=e}get grid(){return this.viewModel.grid}get hiddenFields(){return this.viewModel.hiddenFields}set hiddenFields(e){this.viewModel.hiddenFields=e}get highlightEnabled(){return this.viewModel.highlightEnabled}set highlightEnabled(e){this.viewModel.highlightEnabled=e}get highlightIds(){return this.viewModel.highlightIds}set highlightIds(e){this.viewModel.highlightIds=e}get highlightOnRowSelectEnabled(){return this.viewModel.highlightEnabled}set highlightOnRowSelectEnabled(e){this.viewModel.highlightEnabled=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get messages(){return this.viewModel.messages}set messages(e){this.viewModel.messages=e}get messagesCommon(){return this.viewModel.messagesCommon}set messagesCommon(e){this.viewModel.messagesCommon=e}get messagesURIUtils(){return this.viewModel.messagesURIUtils}set messagesURIUtils(e){this.viewModel.messagesURIUtils=e}get multiSortEnabled(){return this.viewModel.multiSortEnabled}set multiSortEnabled(e){this.viewModel.multiSortEnabled=e}get pageSize(){return this.viewModel.pageSize}set pageSize(e){this.viewModel.pageSize=e}get relatedRecordsEnabled(){return this.viewModel.relatedRecordsEnabled}set relatedRecordsEnabled(e){this.viewModel.relatedRecordsEnabled=e}get state(){return this.viewModel.state}get tableTemplate(){return this.viewModel.tableTemplate}set tableTemplate(e){this.viewModel.tableTemplate=e}get timeExtent(){return this.viewModel.timeExtent}set timeExtent(e){this.viewModel.timeExtent=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){const t={...M,...e};return this.grid?.set("visibleElements",{...this.grid.visibleElements,selectionColumn:t.selectionColumn,columnMenus:t.columnMenus}),t}clearHighlights(){return t(E,"`FeatureTable.clearHighlights` is deprecated in favor of FeatureTable.highlightIds'",{replacement:"FeatureTable.highlightIds",version:"4.25",see:"https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable.html#highlightIds"}),this.viewModel.clearHighlights()}clearSelection(){return t(E,"`FeatureTable.clearSelection` is deprecated in favor of FeatureTable.highlightIds'",{replacement:"FeatureTable.highlightIds",version:"4.25",see:"https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-FeatureTable.html#highlightIds"}),this.viewModel.clearSelection()}clearSelectionFilter(){return this.viewModel.clearSelectionFilter()}deleteSelection(e){return this.highlightIds.length?e?(this._showDeletePrompt(),this.scheduleRender(),Promise.resolve()):this.viewModel.deleteSelection():Promise.resolve()}deselectRows(e){return this.viewModel.deselectRows(e)}filterBySelection(){return this.viewModel.filterBySelection()}findColumn(e){return this.viewModel.findColumn(e)}hideColumn(e){this.grid?.hideColumn(e),this._syncMenuConfig()}refresh(){return this.viewModel.refresh()}get returnGeometryEnabled(){return this.viewModel.returnGeometryEnabled}set returnGeometryEnabled(e){this.viewModel.returnGeometryEnabled=e}showAllColumns(){return this.viewModel.showAllColumns()}showColumn(e){this.grid?.showColumn(e),this._syncMenuConfig()}sortColumn(e,t){return this.viewModel.sortColumn(e,t)}selectRows(e){return this.viewModel.selectRows(e)}scrollToIndex(e){return this.viewModel.scrollToIndex(e)}zoomToSelection(){this.viewModel.zoomToSelection()}render(){const{_prompt:e}=this,t=null!=e?v("calcite-scrim",null,this._renderPrompt(e)):null;return v("div",{bind:this,class:this.classes(_.base,m.widget)},this.visibleElements.header?this._renderHeader():null,v("div",{class:_.content},"disabled"!==this.state&&this.grid?.render()),t)}_renderPrompt({title:e,message:t,context:i,actions:l}){const s=v("calcite-button",{appearance:"solid",key:"prompt-primary-button",kind:"danger"===i?"danger":"brand",onclick:l.primary.action,width:l.secondary?"half":"full"},l.primary.label),o=l.secondary?v("calcite-button",{appearance:"outline",key:"prompt-secondary-button",kind:"danger"===i?"danger":"brand",onclick:l.secondary.action,width:"half"},l.secondary.label):null;return v("div",{class:`${_.promptContainer}--${i}`},v("div",{class:_.promptHeader},v("calcite-icon",{icon:"exclamation-mark-triangle"}),v(g,{class:_.promptHeading,level:2},e)),v("div",{class:_.promptMessage},t),v("div",{class:_.promptDivider}),v("div",{class:_.promptActions},o,s))}_renderHeader(){return v("div",{class:_.header,key:"header"},this._renderLoader(),this._renderTitle(),this.visibleElements.menu?this._renderMenu():null)}_renderTitle(){return v("div",{class:_.title,key:"title"},this._getTitle())}_getTitle(){const{grid:e,highlightIds:t,layer:i,messages:l,viewModel:{size:s}}=this;return e&&i?w(l.header,{title:i.title,count:s,selected:t.length||0}):""}_renderLoader(){const{state:e,store:t}=this.viewModel,i="loading"===e||t.syncing||t.querying;return v("div",{class:_.loaderContainer},i?v("div",{class:_.loader,key:"loader"}):null)}_renderMenu(){return v("div",{class:_.menuContainer},this.menu?.render())}_onSelectionChange(e){const{added:t,removed:i}=e,l=t.map((e=>this.viewModel.store.getLocalItemByKey(e)||{objectId:e,feature:null,attachments:null,relatedRecords:null})),s=i.map((e=>this.viewModel.store.getLocalItemByKey(e)||{objectId:e,feature:null,attachments:null,relatedRecords:null}));this.emit("selection-change",{added:l,removed:s})}_syncMenuConfig(){this.menu?.set({...this.menuConfig,items:this._getMenuItems()})}_getMenuItems(){const e=this.menuConfig?.items,t=this._getDefaultMenuItems(),i=[];return t?.length&&i.push(...t),e?.length&&i.push(...e),i}_getDefaultMenuItems(){const{highlightIds:e,messages:t,viewModel:i,visibleElements:l}=this,{menuItems:s}=l,o=[];if(s?.refreshData&&o.push(new c({selectionEnabled:!1,label:t?.refreshData,clickFunction:()=>this.refresh()})),e.length){const i=this._getSelectionFilter();if(s?.clearSelection&&o.push(new c({selectionEnabled:!1,label:t?.clearSelection,clickFunction:()=>this.highlightIds?.removeAll()})),s?.zoomToSelection&&this.view&&o.push(new c({selectionEnabled:!1,label:t?.zoomToSelection,clickFunction:()=>this.viewModel.zoomToSelection()})),s?.selectedRecordsShowSelectedToggle&&(!i||e.length!==i.objectIds.length)){const e=t.showSelected,i=new c({selectionEnabled:!1,label:e,clickFunction:()=>{this.filterBySelection(),i.set("label",e)}});o.push(i)}s?.deleteSelection&&this.editingEnabled&&this.layer?.capabilities?.operations?.supportsDelete&&o.push(new c({selectionEnabled:!1,label:t.deleteSelection,clickFunction:this._showDeletePrompt}))}if(s?.selectedRecordsShowAllToggle&&this._hasSelectionFilter()){const e=t.showAllRecords,i=new c({selectionEnabled:!1,label:e,clickFunction:()=>{this.clearSelectionFilter(),i.set("label",e)}});o.push(i)}return s?.toggleColumns&&o.push(new c({iconClass:p.right,label:t?.toggleColumns,clickFunction:this._toggleMenuItemSelectedIcon,items:i?.columns?.items.map((({header:e,hidden:t,path:i})=>new c({label:e||i,selected:!t,selectionEnabled:!0,iconClass:p.checkMark,clickFunction:()=>this._toggleColumnFromMenuItem(i)})))})),o.length?o:null}_toggleMenuItemSelectedIcon({item:e}){e?.set("iconClass",e?.selected?p.down:p.right)}_toggleColumnFromMenuItem(e){const{grid:t,viewModel:i}=this,l=i.findColumn(e);l?.hidden?t?.showColumn(e):t?.hideColumn(e)}_showDeletePrompt(){const{messages:e,messagesCommon:t}=this,i=this.highlightIds.length||0,l=w(e.deleteSelectionCount,{count:i});this.menu&&(this.menu.open=!1),this._prompt={title:l,message:e.deleteRecordsRemoved,context:"danger",actions:{primary:{label:t.delete,action:this._onDeleteSelectionClick},secondary:{label:e.keepRecords,action:()=>this._prompt=null}}}}async _onDeleteSelectionClick(){await this.viewModel.deleteSelection(),this._prompt=null}_getSelectionFilter(){return this.viewModel.activeFilters?.find((e=>"selection"===e.type))}_hasSelectionFilter(){return!!this._getSelectionFilter()}};e([o({readOnly:!0})],S.prototype,"activeFilters",null),e([o({readOnly:!0})],S.prototype,"activeSortOrders",null),e([o()],S.prototype,"attachmentsEnabled",null),e([o()],S.prototype,"autoRefreshEnabled",null),e([o()],S.prototype,"columnReorderingEnabled",null),e([o({readOnly:!0})],S.prototype,"columns",null),e([o()],S.prototype,"editingEnabled",null),e([o()],S.prototype,"fieldConfigs",null),e([o()],S.prototype,"filterGeometry",null),e([o({readOnly:!0})],S.prototype,"grid",null),e([o()],S.prototype,"hiddenFields",null),e([o()],S.prototype,"highlightEnabled",null),e([o()],S.prototype,"highlightIds",null),e([o()],S.prototype,"highlightOnRowSelectEnabled",null),e([o()],S.prototype,"label",null),e([o()],S.prototype,"layer",null),e([o(),b("esri/widgets/FeatureTable/t9n/FeatureTable")],S.prototype,"messages",null),e([o(),b("esri/t9n/common")],S.prototype,"messagesCommon",null),e([o(),b("esri/widgets/support/t9n/uriUtils")],S.prototype,"messagesURIUtils",null),e([o({readOnly:!0})],S.prototype,"menu",void 0),e([o()],S.prototype,"menuConfig",void 0),e([o()],S.prototype,"multiSortEnabled",null),e([o()],S.prototype,"pageSize",null),e([o()],S.prototype,"relatedRecordsEnabled",null),e([o({readOnly:!0})],S.prototype,"state",null),e([o()],S.prototype,"tableTemplate",null),e([o()],S.prototype,"timeExtent",null),e([o()],S.prototype,"view",null),e([o()],S.prototype,"viewModel",void 0),e([o()],S.prototype,"visibleElements",void 0),e([n("visibleElements")],S.prototype,"castVisibleElements",null),e([o()],S.prototype,"returnGeometryEnabled",null),S=e([r("esri.widgets.FeatureTable")],S);const C=S;export{C 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{Heading as e}from"../support/Heading.js";import{classes as t}from"../support/widgetUtils.js";import{tsx as n}from"../support/jsxFactory.js";const l="esri-item-list",i=`${l}__list-item`,r={base:l,filterContainerSticky:`${l}__filter-container--sticky`,group:`${l}__group`,groupHeader:`${l}__group__header`,item:i,itemDisabled:`${i}--disabled`,itemIcon:`${i}-icon`,itemContentEnd:`${i}-content-end`,noMatchesMessage:`${l}__no-matches-message`,scroller:`${l}__scroller`,scrollerEnabled:`${l}__scroller--enabled`},s=4;function o(e){const{disabled:t,filterText:l="",id:i,messages:r,onFilterChange:s,...o}=e;return n("div",{key:i},e.filterEnabled??1?c({disabled:t,filterText:l,id:i,messages:r,onFilterChange:s}):null,d({...o,disabled:t,enableListScroll:e.enableListScroll??!0,filterText:l,messages:r}))}function a(e){return!!e.items}function d(e){const{headingLevel:l,items:i,...s}=e;return 0===i.length?n("div",{class:r.noMatchesMessage,key:"no-matches"},e.messages.noMatches):n("div",{class:t({[r.scroller]:!0,[r.scrollerEnabled]:!!e.enableListScroll}),key:"item-container"},i.map((e=>a(e)?b({...s,group:e,headingLevel:l}):m({...s,grouped:!0,item:e}))))}function c(e){const{disabled:t,messages:l,filterText:i,enableListScroll:s}=e;return n("div",{
|
|
5
|
+
import{Heading as e}from"../support/Heading.js";import{classes as t}from"../support/widgetUtils.js";import{tsx as n}from"../support/jsxFactory.js";const l="esri-item-list",i=`${l}__list-item`,r={base:l,filterContainerSticky:`${l}__filter-container--sticky`,group:`${l}__group`,groupHeader:`${l}__group__header`,item:i,itemDisabled:`${i}--disabled`,itemIcon:`${i}-icon`,itemContentEnd:`${i}-content-end`,noMatchesMessage:`${l}__no-matches-message`,scroller:`${l}__scroller`,scrollerEnabled:`${l}__scroller--enabled`},s=4;function o(e){const{disabled:t,filterText:l="",id:i,messages:r,onFilterChange:s,...o}=e;return n("div",{key:i},e.filterEnabled??1?c({disabled:t,filterText:l,id:i,messages:r,onFilterChange:s}):null,d({...o,disabled:t,enableListScroll:e.enableListScroll??!0,filterText:l,messages:r}))}function a(e){return!!e.items}function d(e){const{headingLevel:l,items:i,...s}=e;return 0===i.length?n("div",{class:r.noMatchesMessage,key:"no-matches"},e.messages.noMatches):n("div",{class:t({[r.scroller]:!0,[r.scrollerEnabled]:!!e.enableListScroll}),key:"item-container"},i.map((e=>a(e)?b({...s,group:e,headingLevel:l}):m({...s,grouped:!0,item:e}))))}function c(e){const{disabled:t,messages:l,filterText:i,enableListScroll:s}=e;return n("div",{class:s?void 0:r.filterContainerSticky,key:"filter"},n("calcite-input",{disabled:t,placeholder:l.filterPlaceholder,type:"search",value:i,onCalciteInputInput:t=>{const n=t.currentTarget;e.onFilterChange&&e.onFilterChange(n.value)}}))}function m(e){const{disabled:l,grouped:i,identify:s,item:o,onItemMouseEnter:a,onItemMouseLeave:d,onItemSelect:c,renderIcon:m,renderCustomItem:b,renderItemContent:g,renderItemContentEnd:f,renderItemLabel:v,renderItemDescription:_,selectedItem:h}=e,I=u(o,s),y=I===u(h,s),C=b?.(e);if(C)return C;const k=g?.(o),$=f?.(o),L=!(!o.disabled&&!l);return n("calcite-list-item",{afterUpdate:e=>{e.selected=y},"aria-level":i?"2":"",class:t({[r.item]:!0,[r.itemDisabled]:L}),"data-item":o,description:k?void 0:_?.(o)??void 0,disabled:L,key:I,label:k?void 0:v?.(o)??o.label??void 0,onmouseenter:e=>a?.(p(e)),onmouseleave:e=>d?.(p(e)),selected:y,tabIndex:L?-1:0,onCalciteListItemSelect:e=>{e.preventDefault(),c?.(p(e))}},n("div",{class:r.itemIcon,key:"content-start",slot:"content-start"},m?.(o)),k?n("div",{key:"content",slot:"content"},k):null,$?n("div",{class:r.itemContentEnd,key:"content-end",slot:"content-end"},$):null)}function u(e,t){return e?`${t?.(e)||e.id}__${e.label}`:""}function p(e){return e.currentTarget["data-item"]}function b(t){const{disabled:l,group:i,headingLevel:o=s,selectionMode:a="none",renderCustomGroupContent:d,...c}=t,u=d?.(t);return n("div",{class:r.group,key:i.label??void 0},n(e,{class:r.groupHeader,level:o},i.label),u||n("calcite-list",{disabled:l,selectionAppearance:"border",selectionMode:a},i.items.map((e=>m({...c,disabled:l,item:e,grouped:!0})))))}export{o as ItemList,b as renderGroup,m as renderItem};
|
|
@@ -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{watch as t,initial as r}from"../core/reactiveUtils.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 s}from"../core/accessorSupport/decorators/subclass.js";import{isTable as i}from"../layers/support/layerUtils.js";import n from"./Widget.js";import{isTemplateItemGroup as l}from"./FeatureForm/featureFormUtils.js";import a from"./FeatureTemplates/FeatureTemplatesViewModel.js";import{ItemList as d}from"./FeatureTemplates/ItemList.js";import c from"./FeatureTemplates/TemplateItem.js";import p from"./FeatureTemplates/VisibleElements.js";import{loadCalciteComponents as m}from"./support/componentsUtils.js";import{globalCss as u}from"./support/globalCss.js";import"./support/widgetUtils.js";import{messageBundle as h}from"./support/decorators/messageBundle.js";import{vmEvent as f}from"./support/decorators/vmEvent.js";import{tsx as v}from"./support/jsxFactory.js";const b="esri-feature-templates",I={base:b,loader:`${b}__loader`};function y(e){return e.length>0&&l(e[0])}function g(e){return e.id}let w=class extends n{constructor(e,t){super(e,t),this.enableListScroll=!0,this.filterText="",this.headingLevel=4,this.messages=null,this.selectionMode="none",this.viewModel=new a,this.visibleElements=new p,this.renderCustomItem=e=>null,this.renderCustomGroupContent=e=>null,this.renderItemLabel=()=>null,this.renderItemDescription=()=>null,this.renderItemContent=e=>null,this.renderItemContentEnd=e=>null,this._iconIntersectionObserver=new IntersectionObserver(((e,t)=>{e.forEach((async e=>{if(e.isIntersecting){const r=e.target;if(j(r))return void t.unobserve(r);const o=C(r),{layer:s,template:i}=o;F(r,!0);const n=await c.fetchThumbnail(s,i).catch((()=>(F(r,!1),null)));if(null==n)return;r.appendChild(n)}}))})),this._renderItemIcon=e=>i(e.layer)?v("span",{
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{watch as t,initial as r}from"../core/reactiveUtils.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 s}from"../core/accessorSupport/decorators/subclass.js";import{isTable as i}from"../layers/support/layerUtils.js";import n from"./Widget.js";import{isTemplateItemGroup as l}from"./FeatureForm/featureFormUtils.js";import a from"./FeatureTemplates/FeatureTemplatesViewModel.js";import{ItemList as d}from"./FeatureTemplates/ItemList.js";import c from"./FeatureTemplates/TemplateItem.js";import p from"./FeatureTemplates/VisibleElements.js";import{loadCalciteComponents as m}from"./support/componentsUtils.js";import{globalCss as u}from"./support/globalCss.js";import"./support/widgetUtils.js";import{messageBundle as h}from"./support/decorators/messageBundle.js";import{vmEvent as f}from"./support/decorators/vmEvent.js";import{tsx as v}from"./support/jsxFactory.js";const b="esri-feature-templates",I={base:b,loader:`${b}__loader`};function y(e){return e.length>0&&l(e[0])}function g(e){return e.id}let w=class extends n{constructor(e,t){super(e,t),this.enableListScroll=!0,this.filterText="",this.headingLevel=4,this.messages=null,this.selectionMode="none",this.viewModel=new a,this.visibleElements=new p,this.renderCustomItem=e=>null,this.renderCustomGroupContent=e=>null,this.renderItemLabel=()=>null,this.renderItemDescription=()=>null,this.renderItemContent=e=>null,this.renderItemContentEnd=e=>null,this._iconIntersectionObserver=new IntersectionObserver(((e,t)=>{e.forEach((async e=>{if(e.isIntersecting){const r=e.target;if(j(r))return void t.unobserve(r);const o=C(r),{layer:s,template:i}=o;F(r,!0);const n=await c.fetchThumbnail(s,i).catch((()=>(F(r,!1),null)));if(null==n)return;r.appendChild(n)}}))})),this._renderItemIcon=e=>i(e.layer)?v("span",{"data-has-icon":!0,"data-item":e,key:"icon"},v("calcite-icon",{icon:"table"})):v("span",{afterCreate:this._afterItemCreateOrUpdate,afterRemoved:this._afterItemRemoved,afterUpdate:this._afterItemCreateOrUpdate,"data-has-icon":!1,"data-item":e,key:"icon"}),this._afterItemCreateOrUpdate=e=>{this._iconIntersectionObserver?.observe(e)},this._afterItemRemoved=e=>{this._iconIntersectionObserver?.unobserve(e)}}initialize(){const e=({label:e})=>!this.filterText||!!e?.toLowerCase().includes(this.filterText.toLowerCase());this.addHandles(t((()=>this.viewModel),((t,r)=>{t&&!t.filterFunction&&(this.filterFunction=e),r&&r!==t&&r.filterFunction===e&&(r.filterFunction=null)}),r))}destroy(){this._iconIntersectionObserver?.disconnect(),this._iconIntersectionObserver=null}loadDependencies(){return m({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),input:()=>import("@esri/calcite-components/dist/components/calcite-input.js"),list:()=>import("@esri/calcite-components/dist/components/calcite-list.js"),"list-item":()=>import("@esri/calcite-components/dist/components/calcite-list-item.js"),notice:()=>import("@esri/calcite-components/dist/components/calcite-notice.js")})}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get filterFunction(){return this.viewModel.filterFunction}set filterFunction(e){this.viewModel.filterFunction=e}get groupBy(){return this.viewModel.groupBy}set groupBy(e){this.viewModel.groupBy=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get layers(){return this.viewModel.layers}set layers(e){this.viewModel.layers=e}get selectedItem(){return this.viewModel.selectedItem}select(e,t){return this.viewModel.select(e,t)}render(){const{disabled:e,enableListScroll:t,filterText:r,headingLevel:o,messages:s,viewModel:{items:i,numberOfFeatureTemplates:n,selectedItem:c,state:p}}=this,m=this.visibleElements.filter&&n>1;if(y(i)){const e=i.find((e=>e.label===a.nullGroupBy.label));e&&(e.label=s.other)}return v("div",{"aria-label":s.widgetLabel,class:this.classes(I.base,u.widget)},"loading"===p?this._renderLoader():"ready"===p?v(d,{disabled:e,enableListScroll:t,filterEnabled:m,filterText:r,headingLevel:o,id:this.id,identify:g,items:i,messages:{filterPlaceholder:s.filterPlaceholder,noItems:s.noItems,noMatches:s.noMatches},renderCustomGroupContent:this.renderCustomGroupContent,renderCustomItem:this.renderCustomItem,renderIcon:this._renderItemIcon,renderItemContent:this.renderItemContent,renderItemContentEnd:this.renderItemContentEnd,renderItemDescription:this.renderItemDescription,renderItemLabel:this.renderItemLabel,selectedItem:c??void 0,selectionMode:this.selectionMode??void 0,onFilterChange:e=>{this.filterText=e,this.viewModel.refresh()},onItemSelect:e=>!l(e)&&this.viewModel.select(e)}):null)}_renderLoader(){return v("div",{class:I.loader,key:"loader"})}};function C(e){return e?.["data-item"]}function j(e){return!!e?.["data-has-icon"]}function F(e,t){e&&(e["data-has-icon"]=t)}e([o()],w.prototype,"disabled",null),e([o()],w.prototype,"enableListScroll",void 0),e([o()],w.prototype,"filterFunction",null),e([o()],w.prototype,"filterText",void 0),e([o()],w.prototype,"groupBy",null),e([o()],w.prototype,"headingLevel",void 0),e([o()],w.prototype,"label",null),e([o()],w.prototype,"layers",null),e([o(),h("esri/widgets/FeatureTemplates/t9n/FeatureTemplates")],w.prototype,"messages",void 0),e([o({readOnly:!0})],w.prototype,"selectedItem",null),e([o()],w.prototype,"selectionMode",void 0),e([o(),f("select")],w.prototype,"viewModel",void 0),e([o({type:p,nonNullable:!0})],w.prototype,"visibleElements",void 0),e([o()],w.prototype,"renderCustomItem",void 0),e([o()],w.prototype,"renderCustomGroupContent",void 0),e([o()],w.prototype,"renderItemLabel",void 0),e([o()],w.prototype,"renderItemDescription",void 0),e([o()],w.prototype,"renderItemContent",void 0),e([o()],w.prototype,"renderItemContentEnd",void 0),w=e([s("esri.widgets.FeatureTemplates")],w);const M=w;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{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 o}from"../../core/accessorSupport/decorators/subclass.js";import s from"../Widget.js";import{css as i}from"./css.js";import{loadCalciteComponents as r}from"../support/componentsUtils.js";import"../support/widgetUtils.js";import{messageBundle as l}from"../support/decorators/messageBundle.js";import{tsx as a,tsxFragment as c}from"../support/jsxFactory.js";let n=class extends s{constructor(e,t){super(e,t),this.messages=null,this.closed=!1,this.closable=!0,this._handleOpenRelatedFeature=e=>{this.emit("open-related-feature",{feature:e})}}loadDependencies(){return r({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js")})}render(){const{flowItems:e}=this,t=e?.toArray();return a(c,null,t?.map((e=>this._renderRelatedRecordsFlowItem(e))))}_handleCloseClick(){this.emit("close")}_handleExitClick(){this.emit("exit")}_handleRelatedRecordsBackClick(){const e=this.flowItems?.pop();e&&("showAllEnabled"in e.viewModel&&(e.viewModel.showAllEnabled=!1),e&&(e.viewModel=null,e.destroy()))}_renderRelatedRecordsFlowItem(e){const{messages:t,closable:o,closed:s}=this,r="graphic"in e&&!e.isTable;return a("calcite-flow-item",{bind:this,
|
|
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 o}from"../../core/accessorSupport/decorators/subclass.js";import s from"../Widget.js";import{css as i}from"./css.js";import{loadCalciteComponents as r}from"../support/componentsUtils.js";import"../support/widgetUtils.js";import{messageBundle as l}from"../support/decorators/messageBundle.js";import{tsx as a,tsxFragment as c}from"../support/jsxFactory.js";let n=class extends s{constructor(e,t){super(e,t),this.messages=null,this.closed=!1,this.closable=!0,this._handleOpenRelatedFeature=e=>{this.emit("open-related-feature",{feature:e})}}loadDependencies(){return r({action:()=>import("@esri/calcite-components/dist/components/calcite-action.js"),"flow-item":()=>import("@esri/calcite-components/dist/components/calcite-flow-item.js")})}render(){const{flowItems:e}=this,t=e?.toArray();return a(c,null,t?.map((e=>this._renderRelatedRecordsFlowItem(e))))}_handleCloseClick(){this.emit("close")}_handleExitClick(){this.emit("exit")}_handleRelatedRecordsBackClick(){const e=this.flowItems?.pop();e&&("showAllEnabled"in e.viewModel&&(e.viewModel.showAllEnabled=!1),e&&(e.viewModel=null,e.destroy()))}_renderRelatedRecordsFlowItem(e){const{messages:t,closable:o,closed:s}=this,r="graphic"in e&&!e.isTable;return a("calcite-flow-item",{bind:this,closable:o,closed:s,description:this._getRelatedRecordsFlowItemDescription(e),heading:e.title??"",key:`flow-item-${e.viewModel.uid}`,onCalciteFlowItemBack:this._handleRelatedRecordsBackClick,onCalciteFlowItemClose:this._handleCloseClick},a("calcite-action",{appearance:"transparent",bind:this,class:i.actionExit,icon:"move-up",key:"exit-related-records-action",label:t.exitRelatedRecords,onclick:this._handleExitClick,scale:"m",slot:"header-actions-start",text:t.exitRelatedRecords,title:t.exitRelatedRecords}),r?a("calcite-action",{appearance:"transparent",bind:this,icon:"zoom-to-object",key:"open-related-feature-action",label:t.selectFeature,onclick:()=>this._handleOpenRelatedFeature(e),scale:"m",slot:"header-actions-end",text:t.selectFeature,title:t.selectFeature}):null,a("div",{class:i.container},e.render()))}_getRelatedRecordsFlowItemDescription(e){return"featureCountDescription"in e?e.featureCountDescription:e.viewModel.description??""}};e([t()],n.prototype,"flowItems",void 0),e([t(),l("esri/widgets/Features/t9n/Features")],n.prototype,"messages",void 0),e([t()],n.prototype,"closed",void 0),e([t()],n.prototype,"closable",void 0),n=e([o("esri.widgets.Features.FeaturesRelatedRecords")],n);const d=n;export{d as default};
|
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};
|