@arcgis/core 4.28.0-next.20230921 → 4.28.0-next.20230923
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Graphic.js +1 -1
- package/PopupTemplate.js +1 -1
- package/TimeExtent.js +1 -1
- package/arcade/ArcadeDate.js +1 -1
- package/arcade/Feature.js +1 -1
- package/arcade/featureSetUtils.js +1 -1
- package/arcade/featureset/actions/Adapted.js +1 -1
- package/arcade/featureset/actions/GroupBy.js +1 -1
- package/arcade/featureset/support/FeatureSet.js +1 -1
- package/arcade/featureset/support/FeatureSetIterator.js +1 -1
- package/arcade/featureset/support/StatsField.js +1 -1
- package/arcade/featureset/support/sqlUtils.js +1 -1
- package/arcade/functions/convertdirection.js +1 -1
- package/arcade/functions/date.js +1 -1
- package/arcade/functions/featuresetbase.js +1 -1
- package/arcade/functions/featuresetstats.js +1 -1
- package/arcade/treeAnalysis.js +1 -1
- package/arcade.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/02156fd04279f4d0fd3f.js +1 -0
- package/assets/esri/core/workers/chunks/07f6175b52366b2c28bd.js +1 -0
- package/assets/esri/core/workers/chunks/098073c3b2849f56dad8.js +1 -0
- package/assets/esri/core/workers/chunks/1186ba1947bd0c32f148.js +1 -0
- package/assets/esri/core/workers/chunks/186445b9fbedd261f684.js +1 -0
- package/assets/esri/core/workers/chunks/{580039dd491854ca325c.js → 21fc02f0d5716c4a7acd.js} +1 -1
- package/assets/esri/core/workers/chunks/{dff1c3c38dda2bd1a9d6.js → 246a954347fe9318190e.js} +1 -1
- package/assets/esri/core/workers/chunks/{c9dfb145f0c1d93e0fbd.js → 250bb6ae6f1992b5b4f9.js} +1 -1
- package/assets/esri/core/workers/chunks/{314c307e30f308a40a28.js → 25b09e9c0511c8e1cf8a.js} +1 -1
- package/assets/esri/core/workers/chunks/2a0b3b52ecd787a613bc.js +1 -0
- package/assets/esri/core/workers/chunks/2bc9b55e655968229ef4.js +1 -0
- package/assets/esri/core/workers/chunks/2f0924e7aa89e689da4a.js +1 -0
- package/assets/esri/core/workers/chunks/3f218d65ec451b2a1027.js +1 -0
- package/assets/esri/core/workers/chunks/425b5733bb88e6efe242.js +1 -0
- package/assets/esri/core/workers/chunks/45d6b942cdccca2ce44a.js +1 -0
- package/assets/esri/core/workers/chunks/4bf1a7e82a68ccee0ee1.js +1 -0
- package/assets/esri/core/workers/chunks/4c110c7f4f940ec58010.js +1 -0
- package/assets/esri/core/workers/chunks/{bde89b2684b6185992ef.js → 4ed77097e69fa3096ce4.js} +1 -1
- package/assets/esri/core/workers/chunks/4fe5bac782a742d5b1c0.js +1 -0
- package/assets/esri/core/workers/chunks/{1cbaba30f55f00f7498b.js → 51324d042f469f3b8914.js} +1 -1
- package/assets/esri/core/workers/chunks/{3f4e9b1663ec521bfe00.js → 542ce10e1872399790b4.js} +1 -1
- package/assets/esri/core/workers/chunks/54d2b7e2ac4ba883bee8.js +1 -0
- package/assets/esri/core/workers/chunks/54ecb6cae310818d1aa2.js +1 -0
- package/assets/esri/core/workers/chunks/57c932e289d89d97da4b.js +1 -0
- package/assets/esri/core/workers/chunks/{6403de6fc067cf8f7436.js → 592c1fb531f2be928e8a.js} +1 -1
- package/assets/esri/core/workers/chunks/59a807220d6f0dd18776.js +1 -0
- package/assets/esri/core/workers/chunks/59dff10d7ad2b1bf469e.js +1 -0
- package/assets/esri/core/workers/chunks/609a475ab395f2ce63e2.js +1 -0
- package/assets/esri/core/workers/chunks/612c485c5aad1548d708.js +1 -0
- package/assets/esri/core/workers/chunks/{2bb69d76a13564e8e455.js → 645ba2d5c10184632d23.js} +1 -1
- package/assets/esri/core/workers/chunks/{332689bf60d246485993.js → 65186e168dd112ac6221.js} +1 -1
- package/assets/esri/core/workers/chunks/6b9248fb2d6aadbce7bb.js +1 -0
- package/assets/esri/core/workers/chunks/709465832d306e02df52.js +1 -0
- package/assets/esri/core/workers/chunks/72c5bd6f7b8541b8d69e.js +1 -0
- package/assets/esri/core/workers/chunks/{bbc0dcd316c5598bc9ad.js → 74368a5213def6c200a2.js} +1 -1
- package/assets/esri/core/workers/chunks/{94188fe381239d48a975.js → 76483c9a8848f3106126.js} +1 -1
- package/assets/esri/core/workers/chunks/7aa58c96798447ce5907.js +1 -0
- package/assets/esri/core/workers/chunks/7d078b8b9997b5300c0a.js +1 -0
- package/assets/esri/core/workers/chunks/7fe641cf1467496e670a.js +1 -0
- package/assets/esri/core/workers/chunks/{df8f62beb36fb9d2ac81.js → 810c8d6ff19976fd1366.js} +1 -1
- package/assets/esri/core/workers/chunks/8458ed96f3e72814cef2.js +1 -0
- package/assets/esri/core/workers/chunks/{243a4eed107d363dfad8.js → 887652bbdb3b71d0a089.js} +1 -1
- package/assets/esri/core/workers/chunks/896bfda379cf620b63ec.js +1 -0
- package/assets/esri/core/workers/chunks/91c9f0d59eaed7a735ce.js +1 -0
- package/assets/esri/core/workers/chunks/{1f7e041140088f8ac489.js → 97073a60f0ea2a397165.js} +1 -1
- package/assets/esri/core/workers/chunks/97658ac749664a07c92d.js +1 -0
- package/assets/esri/core/workers/chunks/{1da74a306aa5b4eacaae.js → 9866bbaeaf885c2dcca9.js} +1 -1
- package/assets/esri/core/workers/chunks/a39ae87298ac674f129d.js +1 -0
- package/assets/esri/core/workers/chunks/a7b3048c19348540e004.js +1 -0
- package/assets/esri/core/workers/chunks/a8ca4b116909e47722f9.js +1 -0
- package/assets/esri/core/workers/chunks/{101f776316a85b708927.js → a99070ec4c06c435b744.js} +1 -1
- package/assets/esri/core/workers/chunks/ab145d13932d87dd7bf9.js +1 -0
- package/assets/esri/core/workers/chunks/{77c15b1c2729c780f75a.js → aeeeb386134b341d7ad2.js} +1 -1
- package/assets/esri/core/workers/chunks/{3ca759f72d3bb29e9ea9.js → af54b233f6d6ad70b4a3.js} +2 -2
- package/assets/esri/core/workers/chunks/b9146daae8457224fd08.js +1 -0
- package/assets/esri/core/workers/chunks/bcdd2e8841abcb4df6da.js +1 -0
- package/assets/esri/core/workers/chunks/be05cc0cdabd5e051045.js +1 -0
- package/assets/esri/core/workers/chunks/c5f5f37bef11c6fbdc40.js +1 -0
- package/assets/esri/core/workers/chunks/d414dba3179bcf75bc6b.js +1 -0
- package/assets/esri/core/workers/chunks/{b449d6bd5851187d419f.js → d6e5408f9fa6b4bcd118.js} +1 -1
- package/assets/esri/core/workers/chunks/d9fb500cbd0f04d219a3.js +1 -0
- package/assets/esri/core/workers/chunks/e0dd6789fb797e9b7206.js +1 -0
- package/assets/esri/core/workers/chunks/{6f271249e042086d5a16.js → e4e49deae8da74f629db.js} +1 -1
- package/assets/esri/core/workers/chunks/e5dcff7a4fa84ba09670.js +1 -0
- package/assets/esri/core/workers/chunks/{f508ccfde6425dabe9ac.js → ee0bf611d191103a7046.js} +1 -1
- package/assets/esri/core/workers/chunks/{ed1fbc1bc8d50453e2f5.js → f793cd41fcd022baeea2.js} +1 -1
- package/assets/esri/core/workers/chunks/fad6a7bb82a0a2df726f.js +1 -0
- package/assets/esri/themes/base/widgets/_FeatureForm.scss +2 -84
- package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +2 -0
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/chunks/arcade.js +1 -1
- package/config.js +1 -1
- package/core/Accessor.js +1 -1
- package/core/accessorSupport/diffUtils.js +1 -1
- package/core/has.js +1 -1
- package/core/number.js +1 -1
- package/core/reactiveUtils.js +1 -1
- package/core/sql/DateOnly.js +1 -1
- package/core/sql/WhereClause.js +1 -1
- package/core/sql.js +1 -1
- package/core/timeUtils.js +1 -1
- package/identity/IdentityForm.js +1 -1
- package/identity/IdentityModal.js +1 -1
- package/interfaces.d.ts +48 -203
- package/layers/LinkChartLayer.js +1 -1
- package/layers/OrientedImageryLayer.js +1 -1
- package/layers/SceneLayer.js +1 -1
- package/layers/graphics/applyEditsUtils.js +5 -0
- package/layers/graphics/editingSupport.js +1 -1
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/knowledgeGraph/KnowledgeGraphLayerDataManager.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/mixins/EditBusLayer.js +1 -1
- package/layers/orientedImagery/core/CameraOrientationLTP.js +1 -1
- package/layers/orientedImagery/core/ElevationSourceDefinitions.js +5 -0
- package/layers/orientedImagery/core/ExposurePoint.js +1 -1
- package/layers/orientedImagery/core/cameraOrientationFactory.js +1 -1
- package/layers/orientedImagery/core/utils.js +5 -0
- package/layers/orientedImagery/transformations/groundToImageUtils.js +1 -1
- package/layers/support/fieldProperties.js +1 -1
- package/layers/support/fieldUtils.js +1 -1
- package/layers/support/imageryRendererUtils.js +1 -1
- package/layers/support/kmlUtils.js +1 -1
- package/layers/support/rasterFunctions/BaseRasterFunction.js +1 -1
- package/layers/support/rasterFunctions/creators/createDataManagementFunctions.js +1 -1
- package/networks/Network.js +1 -1
- package/package.json +1 -1
- package/request.js +1 -1
- package/rest/featureService/FeatureService.js +1 -1
- package/rest/support/DirectionsFeatureSet.js +1 -1
- package/smartMapping/renderers/pieChart.js +1 -1
- package/smartMapping/renderers/relationship.js +1 -1
- package/smartMapping/renderers/support/utils.js +1 -1
- package/smartMapping/statistics/support/ageUtils.js +1 -1
- package/smartMapping/support/adapters/support/utils.js +1 -1
- package/smartMapping/support/utils.js +1 -1
- package/support/apiKeyUtils.js +1 -1
- package/support/arcadeUtils.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/symbols/support/svgUtils.js +1 -1
- package/time/TimeReference.js +1 -1
- package/time/timeReferenceUtils.js +1 -1
- package/versionManagement/VersionManagementService.js +1 -1
- package/versionManagement/support/EditMomentStack.js +5 -0
- package/versionManagement/support/versionManagementUtils.js +1 -1
- package/views/2d/engine/Container.js +1 -1
- package/views/2d/engine/DisplayObject.js +1 -1
- package/views/2d/engine/ManagedCanvas.js +5 -0
- package/views/2d/engine/Stage.js +1 -1
- package/views/2d/engine/webgl/GroupContainer.js +1 -1
- package/views/2d/engine/webgl/Painter.js +1 -1
- package/views/2d/engine/webgl/WGLContainer.js +1 -1
- package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
- package/views/2d/engine/webgl/effects/FeatureEffect.js +1 -1
- package/views/2d/engine/webgl/effects/HighlightEffect.js +1 -1
- package/views/2d/engine/webgl/effects/HittestEffectVTL.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/interactive/editingTools/TransformTool.js +1 -1
- package/views/2d/layers/GeoRSSLayerView2D.js +1 -1
- package/views/2d/layers/MediaLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/WMTSLayerView2D.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
- package/views/2d/layers/features/tileRenderers/support/WGLFeatureView.js +1 -1
- package/views/2d/layers/graphics/BaseGraphicContainer.js +1 -1
- package/views/2d/layers/graphics/GraphicContainer.js +1 -1
- package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
- package/views/2d/layers/graphics/HighlightGraphicContainer.js +1 -1
- package/views/2d/layers/imagery/VectorFieldView2D.js +1 -1
- package/views/2d/layers/support/DisplayGL.js +1 -1
- package/views/2d/webglDeps.js +1 -1
- package/views/3d/glTF/loader.js +1 -1
- package/views/3d/interactive/editingTools/manipulations/MoveManipulation.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/isSupportedGraphic.js +1 -1
- package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/SceneLayerView3D.js +1 -1
- package/views/3d/layers/graphics/ElevationAligners.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Labeler.js +1 -1
- package/views/3d/layers/graphics/graphicUtils.js +1 -1
- package/views/3d/layers/i3s/featureEditing.js +1 -1
- package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
- package/views/3d/state/ViewStateManager.js +1 -1
- package/views/3d/support/buffer/glUtil.js +1 -1
- package/views/3d/support/engineContent/line.js +1 -1
- package/views/3d/support/viewpointUtils.js +1 -1
- package/views/3d/webgl-engine/Stage.js +1 -1
- package/views/3d/webgl-engine/effects/RenderPluginInput.js +1 -1
- package/views/3d/webgl-engine/effects/blit/Blit.js +5 -0
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
- package/views/3d/webgl-engine/lib/Geometry.js +1 -1
- package/views/3d/webgl-engine/lib/ModelDirtySet.js +1 -1
- package/views/3d/webgl-engine/lib/Object3D.js +1 -1
- package/views/3d/webgl-engine/lib/RenderSlot.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
- package/views/3d/webgl-engine/lib/TextTextureFactory.js +1 -1
- package/views/3d/webgl-engine/lib/VertexAttribute.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/edgeProcessing.js +1 -1
- package/views/View.js +1 -1
- package/views/interactive/tooltip/TooltipContentWithHelpMessage.js +1 -1
- package/views/interactive/tooltip/TooltipEditableField.js +1 -1
- package/views/interactive/tooltip/constraintUtils.js +1 -1
- package/views/interactive/tooltip/content/Fields.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawCircle.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawMesh.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawPoint.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawPolygon.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawPolyline.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawRectangle.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentExtentRotate.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentExtentScale.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentReshapeEdgeOffset.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTransformAbsolute.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTransformRotate.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTransformScale.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateGraphic.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateGraphicXY.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateGraphicZ.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateVertex.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateVertexXY.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateVertexZ.js +1 -1
- package/views/support/angularMeasurementUtils.js +1 -1
- package/views/ui/UI.js +1 -1
- package/views/webgl/ShaderTranspiler.js +1 -1
- package/views/webgl/Texture.js +1 -1
- package/views/webgl/contextUtils.js +1 -1
- package/webmap/InitialViewProperties.js +1 -1
- package/widgets/AreaMeasurement2D.js +1 -1
- package/widgets/AreaMeasurement3D.js +1 -1
- package/widgets/Attachments/AttachmentsViewModel.js +1 -1
- package/widgets/Attachments.js +1 -1
- package/widgets/Attribution.js +1 -1
- package/widgets/BasemapGallery.js +1 -1
- package/widgets/BasemapLayerList.js +1 -1
- package/widgets/BasemapToggle.js +1 -1
- package/widgets/Bookmarks.js +1 -1
- package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
- package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/Label.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/LevelItem.js +1 -1
- package/widgets/BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js +1 -1
- package/widgets/BuildingExplorer.js +1 -1
- package/widgets/Compass.js +1 -1
- package/widgets/CoordinateConversion.js +1 -1
- package/widgets/Daylight/support/SliderWithDropdown.js +1 -1
- package/widgets/Daylight.js +1 -1
- package/widgets/DirectLineMeasurement3D.js +1 -1
- package/widgets/DirectionalPad.js +1 -1
- package/widgets/Directions/components/SaveLayer.js +1 -1
- package/widgets/Directions.js +1 -1
- package/widgets/DistanceMeasurement2D.js +1 -1
- package/widgets/Editor/components/FooterActions.js +1 -1
- package/widgets/Editor/components/Notices.js +1 -1
- package/widgets/Editor/components/PanelContent.js +1 -1
- package/widgets/Editor/components/PanelToolbar.js +1 -1
- package/widgets/Editor/components/Prompt.js +1 -1
- package/widgets/Editor/components/Settings.js +1 -1
- package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
- package/widgets/Editor/components/UploadDetails.js +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/ElevationProfile/components/LegendItem.js +1 -1
- package/widgets/ElevationProfile/components/SettingsButton.js +1 -1
- package/widgets/ElevationProfile/components/Statistics.js +1 -1
- package/widgets/ElevationProfile.js +1 -1
- package/widgets/Expand.js +1 -1
- package/widgets/Feature/FeatureContent.js +1 -1
- package/widgets/Feature/FeatureExpression.js +1 -1
- package/widgets/Feature/FeatureFields.js +1 -1
- package/widgets/Feature/FeatureMedia.js +1 -1
- package/widgets/Feature/FeatureRelationship.js +1 -1
- package/widgets/Feature/FeatureViewModel.js +1 -1
- package/widgets/Feature/support/FeatureContentMixin.js +1 -1
- package/widgets/Feature/support/FeatureElementInfo.js +1 -1
- package/widgets/Feature.js +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
- package/widgets/FeatureForm/GroupInput.js +1 -1
- package/widgets/FeatureForm/css.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/Grid/Grid.js +1 -1
- package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/FeatureTemplates/ItemList.js +1 -1
- package/widgets/FeatureTemplates.js +1 -1
- package/widgets/Features/FeaturesRelatedRecords.js +1 -1
- package/widgets/Features.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/FloorFilter.js +1 -1
- package/widgets/Fullscreen.js +1 -1
- package/widgets/Histogram.js +1 -1
- package/widgets/HistogramRangeSlider.js +1 -1
- package/widgets/Home.js +1 -1
- package/widgets/LayerList/ListItemPanel.js +1 -1
- package/widgets/LayerList.js +1 -1
- package/widgets/Legend/LegendViewModel.js +1 -1
- package/widgets/Legend/styles/Card.js +1 -1
- package/widgets/Legend/styles/Classic.js +1 -1
- package/widgets/Legend/styles/support/relationshipUtils.js +1 -1
- package/widgets/Legend/styles/support/univariateUtils.js +1 -1
- package/widgets/LineOfSight.js +1 -1
- package/widgets/Locate.js +1 -1
- package/widgets/NavigationToggle.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/Popup.js +1 -1
- package/widgets/Print.js +1 -1
- package/widgets/ScaleRangeSlider/scalePreviewUtils.js +1 -1
- package/widgets/ScaleRangeSlider.js +1 -1
- package/widgets/Search/SearchResultRenderer.js +1 -1
- package/widgets/Search.js +1 -1
- package/widgets/ShadowCast/components/DiscreteConfigurator.js +1 -1
- package/widgets/ShadowCast/components/DurationConfigurator.js +1 -1
- package/widgets/ShadowCast/components/ShadowTooltipContent.js +1 -1
- package/widgets/ShadowCast/components/ThresholdConfigurator.js +1 -1
- package/widgets/ShadowCast.js +1 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/Slice.js +1 -1
- package/widgets/Slider.js +1 -1
- package/widgets/Swipe.js +1 -1
- package/widgets/TableList.js +1 -1
- package/widgets/TimeSlider.js +1 -1
- package/widgets/Track.js +1 -1
- package/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsLineSymbolPicker.js +1 -1
- package/widgets/UtilityNetworkAssociations.js +1 -1
- package/widgets/UtilityNetworkTrace.js +1 -1
- package/widgets/UtilityNetworkValidateTopology.js +1 -1
- package/widgets/ValuePicker.js +1 -1
- package/widgets/VideoPlayer/components/PlayerControlsGroup.js +1 -1
- package/widgets/VideoPlayer/components/SettingsButton.js +1 -1
- package/widgets/VideoPlayer.js +1 -1
- package/widgets/Weather/LabeledSlider.js +1 -1
- package/widgets/Weather.js +1 -1
- package/widgets/Zoom/IconButton.js +1 -1
- package/widgets/smartMapping/BinaryColorSizeSlider.js +1 -1
- package/widgets/smartMapping/ClassedColorSlider.js +1 -1
- package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
- package/widgets/smartMapping/ColorSizeSlider.js +1 -1
- package/widgets/smartMapping/ColorSlider.js +1 -1
- package/widgets/smartMapping/HeatmapSlider.js +1 -1
- package/widgets/smartMapping/OpacitySlider.js +1 -1
- package/widgets/smartMapping/SizeSlider.js +1 -1
- package/widgets/smartMapping/SmartMappingSliderBase.js +1 -1
- package/widgets/support/ColorPicker.js +1 -1
- package/widgets/support/DatePicker.js +1 -1
- package/widgets/support/Heading.js +1 -1
- package/widgets/support/LabeledSwitch.js +1 -1
- package/widgets/support/MeasurementWidgetContent.js +1 -1
- package/widgets/support/Popover.js +1 -1
- package/widgets/support/SelectionToolbar.js +1 -1
- package/widgets/support/SketchTooltipControls.js +1 -1
- package/widgets/support/SnappingControls.js +1 -1
- package/widgets/support/TimePicker.js +1 -1
- package/widgets/support/TimezonePicker.js +1 -1
- package/widgets/support/UnitSelect.js +1 -1
- package/widgets/support/dateUtils.js +1 -1
- package/assets/esri/core/workers/chunks/072b4e041b8630c513a0.js +0 -1
- package/assets/esri/core/workers/chunks/092920c25cac89c038ee.js +0 -1
- package/assets/esri/core/workers/chunks/114269dda1d296893908.js +0 -1
- package/assets/esri/core/workers/chunks/126df6237fc80608344e.js +0 -1
- package/assets/esri/core/workers/chunks/1b3655f5bf5d90fa8730.js +0 -1
- package/assets/esri/core/workers/chunks/1c83f47d446f2bca1721.js +0 -1
- package/assets/esri/core/workers/chunks/1cf7bb514e7eefc3e9c6.js +0 -1
- package/assets/esri/core/workers/chunks/21a9c8aa2a9e9990df41.js +0 -1
- package/assets/esri/core/workers/chunks/24629402c647ef6b5f6b.js +0 -1
- package/assets/esri/core/workers/chunks/2a1c1be9c202462cf54d.js +0 -1
- package/assets/esri/core/workers/chunks/2cb36f9686693234991a.js +0 -1
- package/assets/esri/core/workers/chunks/2d0d03cbea83c868edba.js +0 -1
- package/assets/esri/core/workers/chunks/2e130cb2f1038055c07b.js +0 -1
- package/assets/esri/core/workers/chunks/3619e04cbb6691549014.js +0 -1
- package/assets/esri/core/workers/chunks/3dbfb4f370a874393822.js +0 -1
- package/assets/esri/core/workers/chunks/406db5c90271a3a203d4.js +0 -1
- package/assets/esri/core/workers/chunks/4369a6c1e0a82ab4db6a.js +0 -1
- package/assets/esri/core/workers/chunks/4f4a424d1747d04501df.js +0 -1
- package/assets/esri/core/workers/chunks/59c00d6fba0fd1c03d01.js +0 -1
- package/assets/esri/core/workers/chunks/5a5720caa64a46daadf9.js +0 -1
- package/assets/esri/core/workers/chunks/5edb99b58549cd66b394.js +0 -1
- package/assets/esri/core/workers/chunks/6203ddf6caad3d356327.js +0 -1
- package/assets/esri/core/workers/chunks/650a317b6dc245a7060f.js +0 -1
- package/assets/esri/core/workers/chunks/7a358b1fd0c0cce59e9b.js +0 -1
- package/assets/esri/core/workers/chunks/83d1a1b3d371c991cc4c.js +0 -1
- package/assets/esri/core/workers/chunks/846b7a81b870c8b238a1.js +0 -1
- package/assets/esri/core/workers/chunks/8ab832468300cc4feb5a.js +0 -1
- package/assets/esri/core/workers/chunks/bc1dc6383e60e7e61d50.js +0 -1
- package/assets/esri/core/workers/chunks/bc6323bdc98013da6fe5.js +0 -1
- package/assets/esri/core/workers/chunks/c4bb67150ccd01ea6014.js +0 -1
- package/assets/esri/core/workers/chunks/c60cf62f374e71e562fc.js +0 -1
- package/assets/esri/core/workers/chunks/c6ea5aac232d1eca04dd.js +0 -1
- package/assets/esri/core/workers/chunks/c8438c2d9ac48afe4033.js +0 -1
- package/assets/esri/core/workers/chunks/c8f239c25fe864f0e47a.js +0 -1
- package/assets/esri/core/workers/chunks/cad260881653567bc8f9.js +0 -1
- package/assets/esri/core/workers/chunks/d824f4b405a72cd2fa74.js +0 -1
- package/assets/esri/core/workers/chunks/dd7508d4016715371e0c.js +0 -1
- package/assets/esri/core/workers/chunks/e55f7fc7eff0074ce0fc.js +0 -1
- package/assets/esri/core/workers/chunks/eef27d305023034084a4.js +0 -1
- package/assets/esri/core/workers/chunks/f38c54ada9e7012a2960.js +0 -1
- package/assets/esri/core/workers/chunks/f5e0ff5292b9fd18fc92.js +0 -1
- package/assets/esri/core/workers/chunks/f5eb8b5021620be7538e.js +0 -1
- package/core/watchUtils.d.ts +0 -4
- package/core/watchUtils.js +0 -5
package/views/webgl/Texture.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 t from"../../core/Error.js";import"../../core/has.js";import{isPowerOfTwo as e}from"../../core/mathUtils.js";import{checkWebGLError as i}from"./checkWebGLError.js";import{ContextType as r}from"./contextUtils.js";import{ResourceType as s,TextureType as o,TextureSamplingMode as a,PixelFormat as n,PixelType as h,SizedPixelFormat as p,TextureWrapMode as l,CompressedTextureFormat as d}from"./enums.js";import{GLObjectType as c}from"./GLObjectType.js";import{estimateMemory as _}from"./TextureDescriptor.js";import{ValidatedTextureDescriptor as m}from"./ValidatedTextureDescriptor.js";const u=4;let T=class{constructor(e,i=null,a=null){if(this.type=c.Texture,this._glName=null,this._samplingModeDirty=!1,this._wrapModeDirty=!1,this._wasImmutablyAllocated=!1,"context"in e)this._descriptor=e,a=i;else{const r=m.validate(e,i);if(!r)throw new t("Texture descriptor invalid");this._descriptor=r}if(this._descriptor.context.instanceCounter.increment(s.Texture,this),this._descriptor.context.type!==r.WEBGL2&&(this._descriptor.isImmutable&&(this._descriptor.isImmutable=!1),R(this._descriptor.target)))throw new t("3D and array textures are not supported in WebGL1");this._descriptor.target===o.TEXTURE_CUBE_MAP?this._setDataCubeMap(a):this.setData(a)}get glName(){return this._glName}get descriptor(){return this._descriptor}get gpuMemoryUsage(){return P.delete(this),_(this._descriptor)}get isDirty(){return this._samplingModeDirty||this._wrapModeDirty}dispose(){this._descriptor.context.gl&&this._glName&&(this._descriptor.context.unbindTexture(this),this._descriptor.context.gl.deleteTexture(this._glName),this._descriptor.context.instanceCounter.decrement(s.Texture,this),this._glName=null)}release(){this.dispose()}resize(e,i){const r=this._descriptor;if(r.width!==e||r.height!==i){if(this._wasImmutablyAllocated)throw new t("Immutable textures can't be resized!");r.width=e,r.height=i,this._descriptor.target===o.TEXTURE_CUBE_MAP?this._setDataCubeMap(null):this.setData(null)}}_setDataCubeMap(t=null){for(let e=o.TEXTURE_CUBE_MAP_POSITIVE_X;e<=o.TEXTURE_CUBE_MAP_NEGATIVE_Z;e++)this._setData(t,e)}setData(t){this._setData(t)}_setData(e,r){if(!this._descriptor.context||!this._descriptor.context.gl)return;const s=this._descriptor.context.gl;i(s),this._glName||(this._glName=s.createTexture()),void 0===e&&(e=null);const o=this._descriptor,a=r??o.target,n=R(a);null===e&&(o.width=o.width||u,o.height=o.height||u,n&&(o.depth=o.depth??1));const h=this._descriptor.context.bindTexture(this,T.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.setActiveTexture(T.TEXTURE_UNIT_FOR_UPDATES),g(this._descriptor.context,o),this._configurePixelStorage(),i(s);const p=this._deriveInternalFormat();if(D(e)){let t="width"in e?e.width:e.codedWidth,r="height"in e?e.height:e.codedHeight;const h=1;e instanceof HTMLVideoElement&&(t=e.videoWidth,r=e.videoHeight),o.width&&o.height,n&&o.depth,o.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(a,p,o.hasMipmap,t,r,h),this._texImage(a,0,p,t,r,h,e),i(s),o.hasMipmap&&this.generateMipmap(),o.width||(o.width=t),o.height||(o.height=r),n&&!o.depth&&(o.depth=h)}else{const{width:r,height:h,depth:l}=o;if(null==r||null==h)throw new t("Width and height must be specified!");if(n&&null==l)throw new t("Depth must be specified!");if(o.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(a,p,o.hasMipmap,r,h,l),A(e)){const i=e.levels,n=b(a,r,h,l),d=Math.min(n-1,i.length-1);null!=this._descriptor.context.gl2?s.texParameteri(o.target,this._descriptor.context.gl2.TEXTURE_MAX_LEVEL,d):o.hasMipmap=o.hasMipmap&&n===i.length;const c=p;if(!w(c))throw new t("Attempting to use compressed data with an uncompressed format!");this._forEachMipmapLevel(((t,e,r,s)=>{const o=i[Math.min(t,i.length-1)];this._compressedTexImage(a,t,c,e,r,s,o)}),d)}else this._texImage(a,0,p,r,h,l,e),i(s),o.hasMipmap&&this.generateMipmap()}x(s,this._descriptor),E(s,this._descriptor),f(this._descriptor.context,this._descriptor),i(s),this._descriptor.context.bindTexture(h,T.TEXTURE_UNIT_FOR_UPDATES)}updateData(e,i,r,s,o,a,n=0){a||console.error("An attempt to use uninitialized data!"),this._glName||console.error("An attempt to update uninitialized texture!");const h=this._descriptor.context.gl,p=this._descriptor.context.gl2,l=this._descriptor,d=this._deriveInternalFormat(),{pixelFormat:c,dataType:_,target:m,isImmutable:u}=l;if(u&&!this._wasImmutablyAllocated)throw new t("Cannot update immutable texture before allocation!");const g=this._descriptor.context.bindTexture(this,T.TEXTURE_UNIT_FOR_UPDATES,!0);if((i<0||r<0||s>l.width||o>l.height||i+s>l.width||r+o>l.height)&&console.error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage(),n){if(!p)return void console.error("Webgl2 must be enabled to use dataRowOffset!");h.pixelStorei(p.UNPACK_SKIP_ROWS,n)}if(D(a)?p?p.texSubImage2D(m,e,i,r,s,o,c,_,a):h.texSubImage2D(m,e,i,r,c,_,a):A(a)?h.compressedTexSubImage2D(m,e,i,r,s,o,d,a.levels[e]):h.texSubImage2D(m,e,i,r,s,o,c,_,a),n){if(!p)return void console.error("Webgl2 must be enabled to use dataRowOffset!");h.pixelStorei(p.UNPACK_SKIP_ROWS,0)}this._descriptor.context.bindTexture(g,T.TEXTURE_UNIT_FOR_UPDATES)}updateData3D(e,i,r,s,o,a,n,h){h||console.error("An attempt to use uninitialized data!"),this._glName||console.error("An attempt to update uninitialized texture!");const p=this._descriptor.context.gl2;if(null==p)throw new t("3D textures are not supported in WebGL1");const l=this._descriptor,d=this._deriveInternalFormat(),{pixelFormat:c,dataType:_,isImmutable:m,target:u}=l;if(m&&!this._wasImmutablyAllocated)throw new t("Cannot update immutable texture before allocation!");R(u)||console.warn("Attempting to set 3D texture data on a non-3D texture");const g=this._descriptor.context.bindTexture(this,T.TEXTURE_UNIT_FOR_UPDATES);if(this._descriptor.context.setActiveTexture(T.TEXTURE_UNIT_FOR_UPDATES),(i<0||r<0||s<0||o>l.width||a>l.height||n>l.depth||i+o>l.width||r+a>l.height||s+n>l.depth)&&console.error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage(),A(h))h=h.levels[e],p.compressedTexSubImage3D(u,e,i,r,s,o,a,n,d,h);else{const t=h;p.texSubImage3D(u,e,i,r,s,o,a,n,c,_,t)}this._descriptor.context.bindTexture(g,T.TEXTURE_UNIT_FOR_UPDATES)}generateMipmap(){const e=this._descriptor;if(!e.hasMipmap){if(this._wasImmutablyAllocated)throw new t("Cannot add mipmaps to immutable texture after allocation");e.hasMipmap=!0,this._samplingModeDirty=!0,g(this._descriptor.context,e)}e.samplingMode===a.LINEAR?(this._samplingModeDirty=!0,e.samplingMode=a.LINEAR_MIPMAP_NEAREST):e.samplingMode===a.NEAREST&&(this._samplingModeDirty=!0,e.samplingMode=a.NEAREST_MIPMAP_NEAREST);const i=this._descriptor.context.bindTexture(this,T.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.setActiveTexture(T.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.gl.generateMipmap(e.target),this._descriptor.context.bindTexture(i,T.TEXTURE_UNIT_FOR_UPDATES)}setSamplingMode(t){t!==this._descriptor.samplingMode&&(this._descriptor.samplingMode=t,this._samplingModeDirty=!0)}setWrapMode(t){t!==this._descriptor.wrapMode&&(this._descriptor.wrapMode=t,g(this._descriptor.context,this._descriptor),this._wrapModeDirty=!0)}applyChanges(){const t=this._descriptor.context.gl,e=this._descriptor;this._samplingModeDirty&&(x(t,e),this._samplingModeDirty=!1),this._wrapModeDirty&&(E(t,e),this._wrapModeDirty=!1)}_deriveInternalFormat(){if(this._descriptor.context.type===r.WEBGL1)return this._descriptor.internalFormat=this._descriptor.pixelFormat;if(null!=this._descriptor.internalFormat)return this._descriptor.internalFormat===n.DEPTH_STENCIL&&(this._descriptor.internalFormat=n.DEPTH24_STENCIL8),this._descriptor.internalFormat;switch(this._descriptor.dataType){case h.FLOAT:switch(this._descriptor.pixelFormat){case n.RGBA:return this._descriptor.internalFormat=p.RGBA32F;case n.RGB:return this._descriptor.internalFormat=p.RGB32F;default:throw new t("Unable to derive format")}case h.UNSIGNED_BYTE:switch(this._descriptor.pixelFormat){case n.RGBA:return this._descriptor.internalFormat=p.RGBA8;case n.RGB:return this._descriptor.internalFormat=p.RGB8}}return this._descriptor.internalFormat=this._descriptor.pixelFormat===n.DEPTH_STENCIL?n.DEPTH24_STENCIL8:this._descriptor.pixelFormat}_configurePixelStorage(){const t=this._descriptor.context.gl,{unpackAlignment:e,flipped:i,preMultiplyAlpha:r}=this._descriptor;t.pixelStorei(t.UNPACK_ALIGNMENT,e),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,i?1:0),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r?1:0)}_texStorage(e,i,r,s,o,a){const n=this._descriptor.context.gl2;if(null==n)throw new t("Immutable textures are not supported in WebGL1");if(!M(i))throw new t("Immutable textures must have a sized internal format");if(!this._descriptor.isImmutable)return;const h=r?b(e,s,o,a):1;if(R(e)){if(null==a)throw new t("Missing depth dimension for 3D texture upload");n.texStorage3D(e,h,i,s,o,a)}else n.texStorage2D(e,h,i,s,o);this._wasImmutablyAllocated=!0}_texImage(e,i,s,o,a,n,h){const p=this._descriptor.context.gl,l=R(e),{isImmutable:d,pixelFormat:c,dataType:_}=this._descriptor,m=this._descriptor.context.type===r.WEBGL2,u=m?p:null;if(m||!D(h))if(d){if(null!=h){const r=h;if(l){if(null==n)throw new t("Missing depth dimension for 3D texture upload");u.texSubImage3D(e,i,0,0,0,o,a,n,c,_,r)}else p.texSubImage2D(e,i,0,0,o,a,c,_,r)}}else{const r=h;if(l){if(null==n)throw new t("Missing depth dimension for 3D texture upload");u.texImage3D(e,i,s,o,a,n,0,c,_,r)}else p.texImage2D(e,i,s,o,a,0,c,_,r)}else p.texImage2D(e,0,s,c,_,h)}_compressedTexImage(e,i,s,o,a,n,h){const p=this._descriptor.context.gl;let l=null;const d=R(e),c=this._descriptor.isImmutable;if(d){if(this._descriptor.context.type!==r.WEBGL2)throw new t("3D textures are not supported in WebGL1");l=p}if(c){if(null!=h)if(d){if(null==n)throw new t("Missing depth dimension for 3D texture upload");l.compressedTexSubImage3D(e,i,0,0,0,o,a,n,s,h)}else p.compressedTexSubImage2D(e,i,0,0,o,a,s,h)}else if(d){if(null==n)throw new t("Missing depth dimension for 3D texture upload");l.compressedTexImage3D(e,i,s,o,a,n,0,h)}else p.compressedTexImage2D(e,i,s,o,a,0,h)}_forEachMipmapLevel(e,i=1/0){let{width:r,height:s,depth:a,hasMipmap:n,target:h}=this._descriptor;const p=h===o.TEXTURE_3D;if(null==r||null==s||p&&null==a)throw new t("Missing texture dimensions for mipmap calculation");for(let t=0;e(t,r,s,a),n&&(1!==r||1!==s||p&&1!==a)&&!(t>=i);++t)r=Math.max(1,r>>1),s=Math.max(1,s>>1),p&&(a=Math.max(1,a>>1))}};function g(t,i){(null!=i.width&&i.width<0||null!=i.height&&i.height<0||null!=i.depth&&i.depth<0)&&console.error("Negative dimension parameters are not allowed!");const s=t.type===r.WEBGL2;if(s||!i.isImmutable&&!R(i.target)||console.error("Immutable and 3D-like textures are not supported in WebGL1!"),s)return;null!=i.width&&e(i.width)&&null!=i.height&&e(i.height)||("number"==typeof i.wrapMode?i.wrapMode!==l.CLAMP_TO_EDGE&&console.error("Non-power-of-two textures must have a wrap mode of CLAMP_TO_EDGE!"):i.wrapMode.s===l.CLAMP_TO_EDGE&&i.wrapMode.t===l.CLAMP_TO_EDGE||console.error("Non-power-of-two textures must have a wrap mode of CLAMP_TO_EDGE!"),i.hasMipmap&&console.error("Mipmapping requires power-of-two textures!"))}function x(t,e){let i=e.samplingMode,r=e.samplingMode;i===a.LINEAR_MIPMAP_NEAREST||i===a.LINEAR_MIPMAP_LINEAR?(i=a.LINEAR,e.hasMipmap||(r=a.LINEAR)):i!==a.NEAREST_MIPMAP_NEAREST&&i!==a.NEAREST_MIPMAP_LINEAR||(i=a.NEAREST,e.hasMipmap||(r=a.NEAREST)),t.texParameteri(e.target,t.TEXTURE_MAG_FILTER,i),t.texParameteri(e.target,t.TEXTURE_MIN_FILTER,r)}function E(t,e){"number"==typeof e.wrapMode?(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode)):(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode.s),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode.t))}function f(t,e){const i=t.capabilities.textureFilterAnisotropic;if(!i)return;t.gl.texParameterf(e.target,i.TEXTURE_MAX_ANISOTROPY,e.maxAnisotropy??1)}function M(t){return t in p}function w(t){return t in d}function A(t){return null!=t&&"type"in t&&"compressed"===t.type}function I(t){return null!=t&&"byteLength"in t}function D(t){return null!=t&&!A(t)&&!I(t)}function R(t){return t===o.TEXTURE_3D||t===o.TEXTURE_2D_ARRAY}function b(t,e,i,r=1){let s=Math.max(e,i);return t===o.TEXTURE_3D&&(s=Math.max(s,r)),Math.round(Math.log(s)/Math.LN2)+1}function U(){if(0===P.size)return;const t=new Array;return P.forEach(((e,i)=>t.push([i.gpuMemoryUsage,e]))),P.clear(),t.sort(((t,e)=>e[0]-t[0])),t.reduce(((t,e)=>`${t}\n\n${Math.round(e[0]/1024)}KB: ${e[1]}`),`Total unestimated texture memory: ${Math.round(t.reduce(((t,e)=>t+e[0]),0)/1024)}KB`)}T.TEXTURE_UNIT_FOR_UPDATES=0;const P=new Map;export{T as Texture,U as clearUnestimatedTextures};
|
|
5
|
+
import t from"../../core/Error.js";import"../../core/has.js";import{isPowerOfTwo as e}from"../../core/mathUtils.js";import{checkWebGLError as i}from"./checkWebGLError.js";import{ContextType as r}from"./contextUtils.js";import{TextureType as s,ResourceType as o,TextureSamplingMode as a,PixelFormat as n,PixelType as h,SizedPixelFormat as p,TextureWrapMode as l,CompressedTextureFormat as d}from"./enums.js";import{GLObjectType as c}from"./GLObjectType.js";import{estimateMemory as _}from"./TextureDescriptor.js";import{ValidatedTextureDescriptor as m}from"./ValidatedTextureDescriptor.js";const u=4;let T=class{constructor(e,i=null,o=null){if(this.type=c.Texture,this._glName=null,this._samplingModeDirty=!1,this._wrapModeDirty=!1,this._wasImmutablyAllocated=!1,"context"in e)this._descriptor=e,o=i;else{const r=m.validate(e,i);if(!r)throw new t("Texture descriptor invalid");this._descriptor=r}if(this._descriptor.context.type!==r.WEBGL2&&(this._descriptor.isImmutable&&(this._descriptor.isImmutable=!1),R(this._descriptor.target)))throw new t("3D and array textures are not supported in WebGL1");this._descriptor.target===s.TEXTURE_CUBE_MAP?this._setDataCubeMap(o):this.setData(o)}get glName(){return this._glName}get descriptor(){return this._descriptor}get gpuMemoryUsage(){return P.delete(this),_(this._descriptor)}get isDirty(){return this._samplingModeDirty||this._wrapModeDirty}dispose(){this._glName&&this._descriptor.context.instanceCounter.decrement(o.Texture,this),this._descriptor.context.gl&&this._glName&&(this._descriptor.context.unbindTexture(this),this._descriptor.context.gl.deleteTexture(this._glName),this._glName=null)}release(){this.dispose()}resize(e,i){const r=this._descriptor;if(r.width!==e||r.height!==i){if(this._wasImmutablyAllocated)throw new t("Immutable textures can't be resized!");r.width=e,r.height=i,this._descriptor.target===s.TEXTURE_CUBE_MAP?this._setDataCubeMap(null):this.setData(null)}}_setDataCubeMap(t=null){for(let e=s.TEXTURE_CUBE_MAP_POSITIVE_X;e<=s.TEXTURE_CUBE_MAP_NEGATIVE_Z;e++)this._setData(t,e)}setData(t){this._setData(t)}_setData(e,r){if(!this._descriptor.context||!this._descriptor.context.gl)return;const s=this._descriptor.context.gl;i(s),this._glName||(this._glName=s.createTexture(),this._glName&&this._descriptor.context.instanceCounter.increment(o.Texture,this)),void 0===e&&(e=null);const a=this._descriptor,n=r??a.target,h=R(n);null===e&&(a.width=a.width||u,a.height=a.height||u,h&&(a.depth=a.depth??1));const p=this._descriptor.context.bindTexture(this,T.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.setActiveTexture(T.TEXTURE_UNIT_FOR_UPDATES),g(this._descriptor.context,a),this._configurePixelStorage(),i(s);const l=this._deriveInternalFormat();if(D(e)){let t="width"in e?e.width:e.codedWidth,r="height"in e?e.height:e.codedHeight;const o=1;e instanceof HTMLVideoElement&&(t=e.videoWidth,r=e.videoHeight),a.width&&a.height,h&&a.depth,a.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(n,l,a.hasMipmap,t,r,o),this._texImage(n,0,l,t,r,o,e),i(s),a.hasMipmap&&this.generateMipmap(),a.width||(a.width=t),a.height||(a.height=r),h&&!a.depth&&(a.depth=o)}else{const{width:r,height:o,depth:p}=a;if(null==r||null==o)throw new t("Width and height must be specified!");if(h&&null==p)throw new t("Depth must be specified!");if(a.isImmutable&&!this._wasImmutablyAllocated&&this._texStorage(n,l,a.hasMipmap,r,o,p),A(e)){const i=e.levels,h=b(n,r,o,p),d=Math.min(h-1,i.length-1);null!=this._descriptor.context.gl2?s.texParameteri(a.target,this._descriptor.context.gl2.TEXTURE_MAX_LEVEL,d):a.hasMipmap=a.hasMipmap&&h===i.length;const c=l;if(!w(c))throw new t("Attempting to use compressed data with an uncompressed format!");this._forEachMipmapLevel(((t,e,r,s)=>{const o=i[Math.min(t,i.length-1)];this._compressedTexImage(n,t,c,e,r,s,o)}),d)}else this._texImage(n,0,l,r,o,p,e),i(s),a.hasMipmap&&this.generateMipmap()}x(s,this._descriptor),E(s,this._descriptor),f(this._descriptor.context,this._descriptor),i(s),this._descriptor.context.bindTexture(p,T.TEXTURE_UNIT_FOR_UPDATES)}updateData(e,i,r,s,o,a,n=0){a||console.error("An attempt to use uninitialized data!"),this._glName||console.error("An attempt to update uninitialized texture!");const h=this._descriptor.context.gl,p=this._descriptor.context.gl2,l=this._descriptor,d=this._deriveInternalFormat(),{pixelFormat:c,dataType:_,target:m,isImmutable:u}=l;if(u&&!this._wasImmutablyAllocated)throw new t("Cannot update immutable texture before allocation!");const g=this._descriptor.context.bindTexture(this,T.TEXTURE_UNIT_FOR_UPDATES,!0);if((i<0||r<0||s>l.width||o>l.height||i+s>l.width||r+o>l.height)&&console.error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage(),n){if(!p)return void console.error("Webgl2 must be enabled to use dataRowOffset!");h.pixelStorei(p.UNPACK_SKIP_ROWS,n)}if(D(a)?p?p.texSubImage2D(m,e,i,r,s,o,c,_,a):h.texSubImage2D(m,e,i,r,c,_,a):A(a)?h.compressedTexSubImage2D(m,e,i,r,s,o,d,a.levels[e]):h.texSubImage2D(m,e,i,r,s,o,c,_,a),n){if(!p)return void console.error("Webgl2 must be enabled to use dataRowOffset!");h.pixelStorei(p.UNPACK_SKIP_ROWS,0)}this._descriptor.context.bindTexture(g,T.TEXTURE_UNIT_FOR_UPDATES)}updateData3D(e,i,r,s,o,a,n,h){h||console.error("An attempt to use uninitialized data!"),this._glName||console.error("An attempt to update uninitialized texture!");const p=this._descriptor.context.gl2;if(null==p)throw new t("3D textures are not supported in WebGL1");const l=this._descriptor,d=this._deriveInternalFormat(),{pixelFormat:c,dataType:_,isImmutable:m,target:u}=l;if(m&&!this._wasImmutablyAllocated)throw new t("Cannot update immutable texture before allocation!");R(u)||console.warn("Attempting to set 3D texture data on a non-3D texture");const g=this._descriptor.context.bindTexture(this,T.TEXTURE_UNIT_FOR_UPDATES);if(this._descriptor.context.setActiveTexture(T.TEXTURE_UNIT_FOR_UPDATES),(i<0||r<0||s<0||o>l.width||a>l.height||n>l.depth||i+o>l.width||r+a>l.height||s+n>l.depth)&&console.error("An attempt to update out of bounds of the texture!"),this._configurePixelStorage(),A(h))h=h.levels[e],p.compressedTexSubImage3D(u,e,i,r,s,o,a,n,d,h);else{const t=h;p.texSubImage3D(u,e,i,r,s,o,a,n,c,_,t)}this._descriptor.context.bindTexture(g,T.TEXTURE_UNIT_FOR_UPDATES)}generateMipmap(){const e=this._descriptor;if(!e.hasMipmap){if(this._wasImmutablyAllocated)throw new t("Cannot add mipmaps to immutable texture after allocation");e.hasMipmap=!0,this._samplingModeDirty=!0,g(this._descriptor.context,e)}e.samplingMode===a.LINEAR?(this._samplingModeDirty=!0,e.samplingMode=a.LINEAR_MIPMAP_NEAREST):e.samplingMode===a.NEAREST&&(this._samplingModeDirty=!0,e.samplingMode=a.NEAREST_MIPMAP_NEAREST);const i=this._descriptor.context.bindTexture(this,T.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.setActiveTexture(T.TEXTURE_UNIT_FOR_UPDATES);this._descriptor.context.gl.generateMipmap(e.target),this._descriptor.context.bindTexture(i,T.TEXTURE_UNIT_FOR_UPDATES)}setSamplingMode(t){t!==this._descriptor.samplingMode&&(this._descriptor.samplingMode=t,this._samplingModeDirty=!0)}setWrapMode(t){t!==this._descriptor.wrapMode&&(this._descriptor.wrapMode=t,g(this._descriptor.context,this._descriptor),this._wrapModeDirty=!0)}applyChanges(){const t=this._descriptor.context.gl,e=this._descriptor;this._samplingModeDirty&&(x(t,e),this._samplingModeDirty=!1),this._wrapModeDirty&&(E(t,e),this._wrapModeDirty=!1)}_deriveInternalFormat(){if(this._descriptor.context.type===r.WEBGL1)return this._descriptor.internalFormat=this._descriptor.pixelFormat;if(null!=this._descriptor.internalFormat)return this._descriptor.internalFormat===n.DEPTH_STENCIL&&(this._descriptor.internalFormat=n.DEPTH24_STENCIL8),this._descriptor.internalFormat;switch(this._descriptor.dataType){case h.FLOAT:switch(this._descriptor.pixelFormat){case n.RGBA:return this._descriptor.internalFormat=p.RGBA32F;case n.RGB:return this._descriptor.internalFormat=p.RGB32F;default:throw new t("Unable to derive format")}case h.UNSIGNED_BYTE:switch(this._descriptor.pixelFormat){case n.RGBA:return this._descriptor.internalFormat=p.RGBA8;case n.RGB:return this._descriptor.internalFormat=p.RGB8}}return this._descriptor.internalFormat=this._descriptor.pixelFormat===n.DEPTH_STENCIL?n.DEPTH24_STENCIL8:this._descriptor.pixelFormat}_configurePixelStorage(){const t=this._descriptor.context.gl,{unpackAlignment:e,flipped:i,preMultiplyAlpha:r}=this._descriptor;t.pixelStorei(t.UNPACK_ALIGNMENT,e),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,i?1:0),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r?1:0)}_texStorage(e,i,r,s,o,a){const n=this._descriptor.context.gl2;if(null==n)throw new t("Immutable textures are not supported in WebGL1");if(!M(i))throw new t("Immutable textures must have a sized internal format");if(!this._descriptor.isImmutable)return;const h=r?b(e,s,o,a):1;if(R(e)){if(null==a)throw new t("Missing depth dimension for 3D texture upload");n.texStorage3D(e,h,i,s,o,a)}else n.texStorage2D(e,h,i,s,o);this._wasImmutablyAllocated=!0}_texImage(e,i,s,o,a,n,h){const p=this._descriptor.context.gl,l=R(e),{isImmutable:d,pixelFormat:c,dataType:_}=this._descriptor,m=this._descriptor.context.type===r.WEBGL2,u=m?p:null;if(m||!D(h))if(d){if(null!=h){const r=h;if(l){if(null==n)throw new t("Missing depth dimension for 3D texture upload");u.texSubImage3D(e,i,0,0,0,o,a,n,c,_,r)}else p.texSubImage2D(e,i,0,0,o,a,c,_,r)}}else{const r=h;if(l){if(null==n)throw new t("Missing depth dimension for 3D texture upload");u.texImage3D(e,i,s,o,a,n,0,c,_,r)}else p.texImage2D(e,i,s,o,a,0,c,_,r)}else p.texImage2D(e,0,s,c,_,h)}_compressedTexImage(e,i,s,o,a,n,h){const p=this._descriptor.context.gl;let l=null;const d=R(e),c=this._descriptor.isImmutable;if(d){if(this._descriptor.context.type!==r.WEBGL2)throw new t("3D textures are not supported in WebGL1");l=p}if(c){if(null!=h)if(d){if(null==n)throw new t("Missing depth dimension for 3D texture upload");l.compressedTexSubImage3D(e,i,0,0,0,o,a,n,s,h)}else p.compressedTexSubImage2D(e,i,0,0,o,a,s,h)}else if(d){if(null==n)throw new t("Missing depth dimension for 3D texture upload");l.compressedTexImage3D(e,i,s,o,a,n,0,h)}else p.compressedTexImage2D(e,i,s,o,a,0,h)}_forEachMipmapLevel(e,i=1/0){let{width:r,height:o,depth:a,hasMipmap:n,target:h}=this._descriptor;const p=h===s.TEXTURE_3D;if(null==r||null==o||p&&null==a)throw new t("Missing texture dimensions for mipmap calculation");for(let t=0;e(t,r,o,a),n&&(1!==r||1!==o||p&&1!==a)&&!(t>=i);++t)r=Math.max(1,r>>1),o=Math.max(1,o>>1),p&&(a=Math.max(1,a>>1))}};function g(t,i){(null!=i.width&&i.width<0||null!=i.height&&i.height<0||null!=i.depth&&i.depth<0)&&console.error("Negative dimension parameters are not allowed!");const s=t.type===r.WEBGL2;if(s||!i.isImmutable&&!R(i.target)||console.error("Immutable and 3D-like textures are not supported in WebGL1!"),s)return;null!=i.width&&e(i.width)&&null!=i.height&&e(i.height)||("number"==typeof i.wrapMode?i.wrapMode!==l.CLAMP_TO_EDGE&&console.error("Non-power-of-two textures must have a wrap mode of CLAMP_TO_EDGE!"):i.wrapMode.s===l.CLAMP_TO_EDGE&&i.wrapMode.t===l.CLAMP_TO_EDGE||console.error("Non-power-of-two textures must have a wrap mode of CLAMP_TO_EDGE!"),i.hasMipmap&&console.error("Mipmapping requires power-of-two textures!"))}function x(t,e){let i=e.samplingMode,r=e.samplingMode;i===a.LINEAR_MIPMAP_NEAREST||i===a.LINEAR_MIPMAP_LINEAR?(i=a.LINEAR,e.hasMipmap||(r=a.LINEAR)):i!==a.NEAREST_MIPMAP_NEAREST&&i!==a.NEAREST_MIPMAP_LINEAR||(i=a.NEAREST,e.hasMipmap||(r=a.NEAREST)),t.texParameteri(e.target,t.TEXTURE_MAG_FILTER,i),t.texParameteri(e.target,t.TEXTURE_MIN_FILTER,r)}function E(t,e){"number"==typeof e.wrapMode?(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode)):(t.texParameteri(e.target,t.TEXTURE_WRAP_S,e.wrapMode.s),t.texParameteri(e.target,t.TEXTURE_WRAP_T,e.wrapMode.t))}function f(t,e){const i=t.capabilities.textureFilterAnisotropic;if(!i)return;t.gl.texParameterf(e.target,i.TEXTURE_MAX_ANISOTROPY,e.maxAnisotropy??1)}function M(t){return t in p}function w(t){return t in d}function A(t){return null!=t&&"type"in t&&"compressed"===t.type}function I(t){return null!=t&&"byteLength"in t}function D(t){return null!=t&&!A(t)&&!I(t)}function R(t){return t===s.TEXTURE_3D||t===s.TEXTURE_2D_ARRAY}function b(t,e,i,r=1){let o=Math.max(e,i);return t===s.TEXTURE_3D&&(o=Math.max(o,r)),Math.round(Math.log(o)/Math.LN2)+1}function U(){if(0===P.size)return;const t=new Array;return P.forEach(((e,i)=>t.push([i.gpuMemoryUsage,e]))),P.clear(),t.sort(((t,e)=>e[0]-t[0])),t.reduce(((t,e)=>`${t}\n\n${Math.round(e[0]/1024)}KB: ${e[1]}`),`Total unestimated texture memory: ${Math.round(t.reduce(((t,e)=>t+e[0]),0)/1024)}KB`)}T.TEXTURE_UNIT_FOR_UPDATES=0;const P=new Map;export{T as Texture,U as clearUnestimatedTextures};
|
|
@@ -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 has from"../../core/has.js";var n;function
|
|
5
|
+
import has from"../../core/has.js";var n;function r(r,t,o={}){const e=t===n.WEBGL1?"webgl":"webgl2",c=r.getContext(e,o);return c||null}function t(n,t,e={}){const c=o(n);for(const o of c){const n=r(t,o,e);if(n)return n}return null}function o(r){if("3d"===r)return[n.WEBGL2];const t=has("esri-force-webgl");return t===n.WEBGL1||t===n.WEBGL2?[t]:has("mac")&&has("chrome")?[n.WEBGL1,n.WEBGL2]:[n.WEBGL2,n.WEBGL1]}!function(n){n[n.WEBGL1=1]="WEBGL1",n[n.WEBGL2=2]="WEBGL2"}(n||(n={}));export{n as ContextType,r as createContext,t as createContextForView,o as getContextTypes};
|
|
@@ -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 o}from"../chunks/tslib.es6.js";import r from"../Viewpoint.js";import e from"../core/Accessor.js";import{ClonableMixin as t}from"../core/Clonable.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as p}from"../core/accessorSupport/decorators/subclass.js";import i from"../geometry/SpatialReference.js";import c from"../webdoc/RangeInfo.js";import
|
|
5
|
+
import{_ as o}from"../chunks/tslib.es6.js";import r from"../Viewpoint.js";import e from"../core/Accessor.js";import{ClonableMixin as t}from"../core/Clonable.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as p}from"../core/accessorSupport/decorators/subclass.js";import i from"../geometry/SpatialReference.js";import{system as n}from"../time/timeZoneUtils.js";import c from"../webdoc/RangeInfo.js";import a from"./background/ColorBackground.js";let m=class extends(t(e)){constructor(o){super(o),this.background=null,this.rangeInfo=null,this.spatialReference=null,this.timeZone=n,this.viewpoint=null}};o([s({type:a})],m.prototype,"background",void 0),o([s({type:c})],m.prototype,"rangeInfo",void 0),o([s({type:i})],m.prototype,"spatialReference",void 0),o([s({nonNullable:!0})],m.prototype,"timeZone",void 0),o([s({type:r})],m.prototype,"viewpoint",void 0),m=o([p("esri.webmap.InitialViewProperties")],m);const l=m;export{l 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{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import i from"./Widget.js";import r from"./AreaMeasurement2D/AreaMeasurement2DViewModel.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as a}from"./support/legacyIcon.js";import{MeasurementWidgetContent as p}from"./support/MeasurementWidgetContent.js";import"./support/widgetUtils.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import{tsx as u}from"./support/jsxFactory.js";const m="esri-area-measurement-2d",c={base:m,newMeasurementButton:`${m}__clear-button`,widgetIcon:a.measureArea};let d=class extends i{constructor(e,t){super(e,t),this.iconClass=c.widgetIcon,this.icon=null,this.messages=null,this.messagesUnits=null,this.messagesCommon=null,this.viewModel=new r}get active(){return this.viewModel.active}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=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}render(){const{messages:e,messagesCommon:s,messagesUnits:o,unit:i,unitOptions:r,viewModel:a,visible:l}=this,{active:m,measurementLabel:d,state:v,supported:g}=a;return u("div",{"aria-label":e.widgetLabel,
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import i from"./Widget.js";import r from"./AreaMeasurement2D/AreaMeasurement2DViewModel.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as a}from"./support/legacyIcon.js";import{MeasurementWidgetContent as p}from"./support/MeasurementWidgetContent.js";import"./support/widgetUtils.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import{tsx as u}from"./support/jsxFactory.js";const m="esri-area-measurement-2d",c={base:m,newMeasurementButton:`${m}__clear-button`,widgetIcon:a.measureArea};let d=class extends i{constructor(e,t){super(e,t),this.iconClass=c.widgetIcon,this.icon=null,this.messages=null,this.messagesUnits=null,this.messagesCommon=null,this.viewModel=new r}get active(){return this.viewModel.active}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=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}render(){const{messages:e,messagesCommon:s,messagesUnits:o,unit:i,unitOptions:r,viewModel:a,visible:l}=this,{active:m,measurementLabel:d,state:v,supported:g}=a;return u("div",{"aria-label":e.widgetLabel,class:this.classes(c.base,n.widget,n.panel),key:this,role:"presentation"},l?u(p,{active:m,measurementItems:[{key:"area",title:o?.measures.area,value:d?.area},{key:"perimeter",title:e.perimeter,value:d?.perimeter}],messages:{...e,notApplicable:s.notApplicable},newMeasurementButtonClass:c.newMeasurementButton,state:v,supported:g,unit:i,unitOptions:r,onNewMeasurementClick:()=>{t(a.start())},onUnitChange:e=>{this.unit=e}}):null)}};e([s({readOnly:!0})],d.prototype,"active",null),e([s()],d.prototype,"iconClass",void 0),e([s()],d.prototype,"icon",void 0),e([s()],d.prototype,"label",null),e([s(),l("esri/widgets/AreaMeasurement2D/t9n/AreaMeasurement2D")],d.prototype,"messages",void 0),e([s(),l("esri/core/t9n/Units")],d.prototype,"messagesUnits",void 0),e([s(),l("esri/t9n/common")],d.prototype,"messagesCommon",void 0),e([s()],d.prototype,"uiStrings",void 0),e([s()],d.prototype,"unit",null),e([s()],d.prototype,"unitOptions",null),e([s()],d.prototype,"view",null),e([s({type:r})],d.prototype,"viewModel",void 0),e([s({type:Boolean})],d.prototype,"visible",null),d=e([o("esri.widgets.AreaMeasurement2D")],d);const v=d;export{v as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import o from"./Widget.js";import r from"./AreaMeasurement3D/AreaMeasurement3DViewModel.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as a}from"./support/legacyIcon.js";import{MeasurementWidgetContent as l}from"./support/MeasurementWidgetContent.js";import"./support/widgetUtils.js";import{messageBundle as p}from"./support/decorators/messageBundle.js";import{tsx as u}from"./support/jsxFactory.js";const m="esri-area-measurement-3d",c={base:m,newMeasurementButton:`${m}__clear-button`,widgetIcon:a.measureArea};let d=class extends o{constructor(e,t){super(e,t),this.iconClass=c.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.viewModel=new r}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}get active(){return this.viewModel.active}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}render(){const{messages:e,messagesCommon:s,messagesUnits:i,unit:o,unitOptions:r,viewModel:a}=this,{active:p,measurement:m,state:d,supported:g}=a;return u("div",{"aria-label":this.messages.widgetLabel,
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{ignoreAbortErrors as t}from"../core/promiseUtils.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import o from"./Widget.js";import r from"./AreaMeasurement3D/AreaMeasurement3DViewModel.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as a}from"./support/legacyIcon.js";import{MeasurementWidgetContent as l}from"./support/MeasurementWidgetContent.js";import"./support/widgetUtils.js";import{messageBundle as p}from"./support/decorators/messageBundle.js";import{tsx as u}from"./support/jsxFactory.js";const m="esri-area-measurement-3d",c={base:m,newMeasurementButton:`${m}__clear-button`,widgetIcon:a.measureArea};let d=class extends o{constructor(e,t){super(e,t),this.iconClass=c.widgetIcon,this.icon=null,this.messages=null,this.messagesCommon=null,this.messagesUnits=null,this.viewModel=new r}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}get active(){return this.viewModel.active}get analysis(){return this.viewModel.analysis}set analysis(e){this.viewModel.analysis=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get unitOptions(){return this.viewModel.unitOptions}set unitOptions(e){this.viewModel.unitOptions=e}get unit(){return this.viewModel.unit}set unit(e){this.viewModel.unit=e}render(){const{messages:e,messagesCommon:s,messagesUnits:i,unit:o,unitOptions:r,viewModel:a}=this,{active:p,measurement:m,state:d,supported:g}=a;return u("div",{"aria-label":this.messages.widgetLabel,class:this.classes(c.base,n.widget,n.panel),key:this,role:"presentation"},this.visible?u(l,{active:p,measurementItems:[{key:"direct",title:i.measures.area,value:v(m?.area)},{key:"perimeter",title:e.perimeterLength,value:v(m?.perimeterLength)}],messages:{...e,notApplicable:s.notApplicable},newMeasurementButtonClass:c.newMeasurementButton,state:d,supported:g,unit:o,unitOptions:r,onNewMeasurementClick:()=>{t(this.viewModel.start())},onUnitChange:e=>{this.unit=e}}):null)}};function v(e){return"available"===e?.state?e.text:null}e([s()],d.prototype,"view",null),e([s()],d.prototype,"visible",null),e([s()],d.prototype,"active",null),e([s({constructOnly:!0,nonNullable:!0})],d.prototype,"analysis",null),e([s()],d.prototype,"iconClass",void 0),e([s()],d.prototype,"icon",void 0),e([s()],d.prototype,"label",null),e([s(),p("esri/widgets/AreaMeasurement3D/t9n/AreaMeasurement3D")],d.prototype,"messages",void 0),e([s(),p("esri/t9n/common")],d.prototype,"messagesCommon",void 0),e([s(),p("esri/core/t9n/Units")],d.prototype,"messagesUnits",void 0),e([s()],d.prototype,"uiStrings",void 0),e([s({type:r})],d.prototype,"viewModel",void 0),e([s()],d.prototype,"unitOptions",null),e([s()],d.prototype,"unit",null),d=e([i("esri.widgets.AreaMeasurement3D")],d);const g=d;export{g as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../Graphic.js";import a from"../../core/Accessor.js";import i from"../../core/Collection.js";import n from"../../core/Error.js";import{watch as r,initial as s}from"../../core/reactiveUtils.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import{cast as c}from"../../core/accessorSupport/decorators/cast.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as h}from"../../core/accessorSupport/decorators/subclass.js";import l from"../../rest/query/support/AttachmentInfo.js";import d from"../../rest/support/AttachmentQuery.js";import{getSourceLayer as p}from"../Feature/support/featureUtils.js";const m={editing:!1,operations:{add:!0,update:!0,delete:!0}},f=i.ofType(l);let u=class extends a{constructor(t){super(t),this._getAttachmentsPromise=null,this._attachmentLayer=null,this.capabilities={...m},this.activeAttachmentInfo=null,this.activeFileInfo=null,this.attachmentInfos=new f,this.fileInfos=new i,this.graphic=null,this.mode="view",this.filesEnabled=!1,this.addHandles(r((()=>this.graphic),(()=>this._graphicChanged()),s))}destroy(){this._attachmentLayer=null,this.graphic=null}castCapabilities(t){return{...m,...t}}get state(){return this._getAttachmentsPromise?"loading":this.graphic?"ready":"disabled"}get supportsResizeAttachments(){const{graphic:t}=this;if(!t)return!1;const e=t.layer||t.sourceLayer;return e?.loaded&&"capabilities"in e&&e.capabilities&&"operations"in e.capabilities&&"supportsResizeAttachments"in e.capabilities.operations&&e.capabilities.operations.supportsResizeAttachments||!1}async getAttachments(){const{_attachmentLayer:t,attachmentInfos:e}=this;if(!t||"function"!=typeof t.queryAttachments)throw new n("invalid-layer","getAttachments(): A valid layer is required.");const a=this._getObjectId(),i=new d({objectIds:[a],returnMetadata:!0}),r=[],s=t.queryAttachments(i).then((t=>t[a]||r)).catch((()=>r));this._getAttachmentsPromise=s,this.notifyChange("state");const o=await s;return e.removeAll(),o.length&&e.addMany(o),this._getAttachmentsPromise=null,this.notifyChange("state"),o}async addAttachment(t,e=this.graphic){const{_attachmentLayer:a,attachmentInfos:i,capabilities:r}=this;if(!e)throw new n("invalid-graphic","addAttachment(): A valid graphic is required.",{graphic:e});if(!t)throw new n("invalid-attachment","addAttachment(): An attachment is required.",{attachment:t});if(!r.operations?.add)throw new n("invalid-capabilities","addAttachment(): add capabilities are required.");if(!a||"function"!=typeof a.addAttachment)throw new n("invalid-layer","addAttachment(): A valid layer is required.");const s=a.addAttachment(e,t).then((t=>this._queryAttachment(t.objectId,e))),o=await s;return i.add(o),o}async deleteAttachment(t){const{_attachmentLayer:e,attachmentInfos:a,graphic:i,capabilities:r}=this;if(!t)throw new n("invalid-attachment-info","deleteAttachment(): An attachmentInfo is required.",{attachmentInfo:t});if(!r.operations?.delete)throw new n("invalid-capabilities","deleteAttachment(): delete capabilities are required.");if(!e||"function"!=typeof e.deleteAttachments)throw new n("invalid-layer","deleteAttachment(): A valid layer is required.");if(!i)throw new n("invalid-graphic","deleteAttachment(): A graphic is required.");const s=e.deleteAttachments(i,[t.id]).then((()=>t)),o=await s;return a.remove(o),o}async updateAttachment(t,e=this.activeAttachmentInfo){const{_attachmentLayer:a,attachmentInfos:i,graphic:r,capabilities:s}=this;if(!t)throw new n("invalid-attachment","updateAttachment(): An attachment is required.",{attachment:t});if(!e)throw new n("invalid-attachment-info","updateAttachment(): An attachmentInfo is required.",{attachmentInfo:e});if(!s.operations?.update)throw new n("invalid-capabilities","updateAttachment(): Update capabilities are required.");const o=i.
|
|
5
|
+
import{_ as t}from"../../chunks/tslib.es6.js";import e from"../../Graphic.js";import a from"../../core/Accessor.js";import i from"../../core/Collection.js";import n from"../../core/Error.js";import{watch as r,initial as s}from"../../core/reactiveUtils.js";import{property as o}from"../../core/accessorSupport/decorators/property.js";import{cast as c}from"../../core/accessorSupport/decorators/cast.js";import"../../core/arrayUtils.js";import"../../core/has.js";import{subclass as h}from"../../core/accessorSupport/decorators/subclass.js";import l from"../../rest/query/support/AttachmentInfo.js";import d from"../../rest/support/AttachmentQuery.js";import{getSourceLayer as p}from"../Feature/support/featureUtils.js";const m={editing:!1,operations:{add:!0,update:!0,delete:!0}},f=i.ofType(l);let u=class extends a{constructor(t){super(t),this._getAttachmentsPromise=null,this._attachmentLayer=null,this.capabilities={...m},this.activeAttachmentInfo=null,this.activeFileInfo=null,this.attachmentInfos=new f,this.fileInfos=new i,this.graphic=null,this.mode="view",this.filesEnabled=!1,this.addHandles(r((()=>this.graphic),(()=>this._graphicChanged()),s))}destroy(){this._attachmentLayer=null,this.graphic=null}castCapabilities(t){return{...m,...t}}get state(){return this._getAttachmentsPromise?"loading":this.graphic?"ready":"disabled"}get supportsResizeAttachments(){const{graphic:t}=this;if(!t)return!1;const e=t.layer||t.sourceLayer;return e?.loaded&&"capabilities"in e&&e.capabilities&&"operations"in e.capabilities&&"supportsResizeAttachments"in e.capabilities.operations&&e.capabilities.operations.supportsResizeAttachments||!1}async getAttachments(){const{_attachmentLayer:t,attachmentInfos:e}=this;if(!t||"function"!=typeof t.queryAttachments)throw new n("invalid-layer","getAttachments(): A valid layer is required.");const a=this._getObjectId(),i=new d({objectIds:[a],returnMetadata:!0}),r=[],s=t.queryAttachments(i).then((t=>t[a]||r)).catch((()=>r));this._getAttachmentsPromise=s,this.notifyChange("state");const o=await s;return e.removeAll(),o.length&&e.addMany(o),this._getAttachmentsPromise=null,this.notifyChange("state"),o}async addAttachment(t,e=this.graphic){const{_attachmentLayer:a,attachmentInfos:i,capabilities:r}=this;if(!e)throw new n("invalid-graphic","addAttachment(): A valid graphic is required.",{graphic:e});if(!t)throw new n("invalid-attachment","addAttachment(): An attachment is required.",{attachment:t});if(!r.operations?.add)throw new n("invalid-capabilities","addAttachment(): add capabilities are required.");if(!a||"function"!=typeof a.addAttachment)throw new n("invalid-layer","addAttachment(): A valid layer is required.");const s=a.addAttachment(e,t).then((t=>this._queryAttachment(t.objectId,e))),o=await s;return i.add(o),o}async deleteAttachment(t){const{_attachmentLayer:e,attachmentInfos:a,graphic:i,capabilities:r}=this;if(!t)throw new n("invalid-attachment-info","deleteAttachment(): An attachmentInfo is required.",{attachmentInfo:t});if(!r.operations?.delete)throw new n("invalid-capabilities","deleteAttachment(): delete capabilities are required.");if(!e||"function"!=typeof e.deleteAttachments)throw new n("invalid-layer","deleteAttachment(): A valid layer is required.");if(!i)throw new n("invalid-graphic","deleteAttachment(): A graphic is required.");const s=e.deleteAttachments(i,[t.id]).then((()=>t)),o=await s;return a.remove(o),o}async updateAttachment(t,e=this.activeAttachmentInfo){const{_attachmentLayer:a,attachmentInfos:i,graphic:r,capabilities:s}=this;if(!t)throw new n("invalid-attachment","updateAttachment(): An attachment is required.",{attachment:t});if(!e)throw new n("invalid-attachment-info","updateAttachment(): An attachmentInfo is required.",{attachmentInfo:e});if(!s.operations?.update)throw new n("invalid-capabilities","updateAttachment(): Update capabilities are required.");const o=i.indexOf(e);if(!a||"function"!=typeof a.updateAttachment)throw new n("invalid-layer","updateAttachment(): A valid layer is required.");if(!r)throw new n("invalid-graphic","updateAttachment(): A graphic is required.");const c=a.updateAttachment(r,e.id,t).then((t=>this._queryAttachment(t.objectId))),h=await c;return i.splice(o,1,h),h}async commitFiles(){return await Promise.all(this.fileInfos.items.map((t=>this.addAttachment(t.form)))),this.fileInfos.removeAll(),this.getAttachments()}addFile(t,e){if(!t||!e)return null;const a={file:t,form:e};return this.fileInfos.add(a),a}updateFile(t,e,a=this.activeFileInfo){if(!t||!e||!a)return null;const i=this.fileInfos.indexOf(a);return i>-1&&this.fileInfos.splice(i,1,{file:t,form:e}),this.fileInfos.items[i]}deleteFile(t){const e=this.fileInfos.find((e=>e.file===t));return e?(this.fileInfos.remove(e),e):null}async _queryAttachment(t,e){const{_attachmentLayer:a}=this;if(!t||!a?.queryAttachments)throw new n("invalid-attachment-id","Could not query attachment.");const i=this._getObjectId(e),r=new d({objectIds:[i],attachmentsWhere:`AttachmentId=${t}`,returnMetadata:!0});return a.queryAttachments(r).then((t=>t[i][0]))}_getObjectId(t=this.graphic){return t?.getObjectId()??null}_graphicChanged(){this.graphic&&(this._setAttachmentLayer(),this.getAttachments().catch((()=>{})))}_setAttachmentLayer(){const{graphic:t}=this,e=p(t);this._attachmentLayer=e?"scene"===e.type&&null!=e.associatedLayer?e.associatedLayer:e:null}};t([o()],u.prototype,"capabilities",void 0),t([c("capabilities")],u.prototype,"castCapabilities",null),t([o()],u.prototype,"activeAttachmentInfo",void 0),t([o()],u.prototype,"activeFileInfo",void 0),t([o({readOnly:!0,type:f})],u.prototype,"attachmentInfos",void 0),t([o()],u.prototype,"fileInfos",void 0),t([o({type:e})],u.prototype,"graphic",void 0),t([o()],u.prototype,"mode",void 0),t([o({readOnly:!0})],u.prototype,"state",null),t([o()],u.prototype,"filesEnabled",void 0),t([o({readOnly:!0})],u.prototype,"supportsResizeAttachments",null),u=t([h("esri.widgets.Attachments.AttachmentsViewModel")],u);const y=u;export{y as default};
|
package/widgets/Attachments.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Error.js";import{on as s,watch as i,initial as a}from"../core/reactiveUtils.js";import{formatFileSize as n}from"../core/unitFormatUtils.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import m from"./Attachments/AttachmentsViewModel.js";import{getIconPath as c,isSupportedImage as h}from"./Attachments/support/attachmentUtils.js";import{loadCalciteComponents as u}from"./support/componentsUtils.js";import{globalCss as p}from"./support/globalCss.js";import{legacyIcon as b}from"./support/legacyIcon.js";import{storeNode as _,discardNode as g,isRTL as f}from"./support/widgetUtils.js";import{messageBundle as v}from"./support/decorators/messageBundle.js";import{tsx as y}from"./support/jsxFactory.js";const A={addButton:!0,addSubmitButton:!0,cancelAddButton:!0,cancelUpdateButton:!0,deleteButton:!0,errorMessage:!0,progressBar:!0,updateButton:!0},w="esri-attachments",F={base:w,loaderContainer:`${w}__loader-container`,loader:`${w}__loader`,fadeIn:`${w}--fade-in`,container:`${w}__container`,containerList:`${w}__container--list`,containerPreview:`${w}__container--preview`,actions:`${w}__actions`,deleteButton:`${w}__delete-button`,addAttachmentButton:`${w}__add-attachment-button`,errorMessage:`${w}__error-message`,items:`${w}__items`,item:`${w}__item`,itemButton:`${w}__item-button`,itemMask:`${w}__item-mask`,itemMaskIcon:`${w}__item-mask--icon`,itemImage:`${w}__image`,itemImageResizable:`${w}__image--resizable`,itemLabel:`${w}__label`,itemFilename:`${w}__filename`,itemChevronIcon:`${w}__item-chevron-icon`,itemLink:`${w}__item-link`,itemLinkOverlay:`${w}__item-link-overlay`,itemLinkOverlayIcon:`${w}__item-link-overlay-icon`,itemEditIcon:`${w}__item-edit-icon`,itemAddIcon:`${w}__item-add-icon`,itemAddButton:`${w}__item-add-button`,formNode:`${w}__form-node`,fileFieldset:`${w}__file-fieldset`,fileLabel:`${w}__file-label`,fileName:`${w}__file-name`,fileInput:`${w}__file-input`,metadata:`${w}__metadata`,metadataFieldset:`${w}__metadata-fieldset`,progressBar:`${w}__progress-bar`},k=window.CSS;let M=class extends d{constructor(e,t){super(e,t),this.displayType="auto",this.messages=null,this.messagesUnits=null,this.selectedFile=null,this.submitting=!1,this.viewModel=null,this.visibleElements={...A},this._supportsImageOrientation=k&&k.supports&&k.supports("image-orientation","from-image"),this._addAttachmentForm=null,this._updateAttachmentForm=null}normalizeCtorArgs(e){return e?.viewModel||(e={viewModel:new m,...e}),e}initialize(){this.addHandles([s((()=>this.viewModel?.attachmentInfos),"change",(()=>this.scheduleRender())),s((()=>this.viewModel?.fileInfos),"change",(()=>this.scheduleRender())),i((()=>this.viewModel?.mode),(()=>this._modeChanged()),a)])}loadDependencies(){return u({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}get capabilities(){return this.viewModel.capabilities}set capabilities(e){this.viewModel.capabilities=e}get effectiveDisplayType(){const{displayType:e}=this;return e&&"auto"!==e?e:this.viewModel.supportsResizeAttachments?"preview":"list"}get graphic(){return this.viewModel.graphic}set graphic(e){this.viewModel.graphic=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}castVisibleElements(e){return{...A,...e}}addAttachment(){const{_addAttachmentForm:e,viewModel:s}=this;return this._set("submitting",!0),this._set("error",null),s.addAttachment(e).then((e=>(this._set("submitting",!1),this._set("error",null),s.mode="view",e))).catch((e=>{throw this._set("submitting",!1),this._set("error",new t("attachments:add-attachment",this.messages.addErrorMessage,e)),e}))}deleteAttachment(e){const{viewModel:s}=this;return this._set("submitting",!0),this._set("error",null),s.deleteAttachment(e).then((e=>(this._set("submitting",!1),this._set("error",null),s.mode="view",e))).catch((e=>{throw this._set("submitting",!1),this._set("error",new t("attachments:delete-attachment",this.messages.deleteErrorMessage,e)),e}))}updateAttachment(){const{viewModel:e}=this,{_updateAttachmentForm:s}=this;return this._set("submitting",!0),this._set("error",null),e.updateAttachment(s).then((t=>(this._set("submitting",!1),this._set("error",null),e.mode="view",t))).catch((e=>{throw this._set("submitting",!1),this._set("error",new t("attachments:update-attachment",this.messages.updateErrorMessage,e)),e}))}addFile(){const e=this.viewModel.addFile(this.selectedFile,this._addAttachmentForm);return this.viewModel.mode="view",e}updateFile(){const{viewModel:e}=this,t=e.updateFile(this.selectedFile,this._updateAttachmentForm,e.activeFileInfo);return e.mode="view",t}deleteFile(e){const t=this.viewModel.deleteFile(e||this.viewModel.activeFileInfo?.file);return this.viewModel.mode="view",t}render(){const{submitting:e,viewModel:t}=this,{state:s}=t;return y("div",{class:this.classes(F.base,p.widget)},e?this._renderProgressBar():null,"loading"===s?this._renderLoading():this._renderAttachments(),this._renderErrorMessage())}_renderErrorMessage(){const{error:e,visibleElements:t}=this;return e&&t.errorMessage?y("div",{key:"error-message",class:F.errorMessage},e.message):null}_renderAttachments(){const{activeFileInfo:e,mode:t,activeAttachmentInfo:s}=this.viewModel;return"add"===t?this._renderAddForm():"edit"===t?this._renderDetailsForm(s||e):this._renderAttachmentContainer()}_renderLoading(){return y("div",{class:F.loaderContainer,key:"loader"},y("div",{class:F.loader}))}_renderProgressBar(){return this.visibleElements.progressBar?y("div",{class:F.progressBar,key:"progress-bar"}):null}_renderAddForm(){const{submitting:e,selectedFile:t}=this,s=e||!t,i=this.visibleElements.cancelAddButton?y("button",{type:"button",bind:this,disabled:e,onclick:this._cancelForm,class:this.classes(p.button,p.buttonTertiary,p.buttonSmall,p.buttonHalf,e&&p.buttonDisabled)},this.messages.cancel):null,a=this.visibleElements.addSubmitButton?y("button",{type:"submit",disabled:s,class:this.classes(p.button,p.buttonSecondary,p.buttonSmall,p.buttonHalf,{[p.buttonDisabled]:s})},this.messages.add):null,n=t?y("span",{key:"file-name",class:F.fileName},t.name):null,l=y("form",{bind:this,afterCreate:_,afterRemoved:g,"data-node-ref":"_addAttachmentForm",onsubmit:this._submitAddAttachment},y("fieldset",{class:F.fileFieldset},n,y("label",{class:this.classes(F.fileLabel,p.button,p.buttonSecondary)},t?this.messages.changeFile:this.messages.selectFile,y("input",{class:F.fileInput,type:"file",name:"attachment",bind:this,onchange:this._handleFileInputChange}))),a,i);return y("div",{key:"add-form-container",class:F.formNode},l)}_renderDetailsForm(e){const{visibleElements:t,viewModel:s,selectedFile:i,submitting:a}=this,{capabilities:l}=s,r=a||!i;let o,d,m,c;i?(o=i.type,d=i.name,m=i.size):e&&"file"in e?(o=e.file.type,d=e.file.name,m=e.file.size):e&&"contentType"in e&&(o=e.contentType,d=e.name,m=e.size,c=e.url);const h=l.editing&&l.operations?.delete&&t.deleteButton?y("button",{key:"delete-button",type:"button",disabled:a,bind:this,onclick:t=>this._submitDeleteAttachment(t,e),class:this.classes(p.button,p.buttonSmall,p.buttonTertiary,F.deleteButton,{[p.buttonDisabled]:a})},this.messages.delete):void 0,u=l.editing&&l.operations?.update&&t.updateButton?y("button",{disabled:r,key:"update-button",type:"submit",class:this.classes(p.button,p.buttonSmall,p.buttonThird,{[p.buttonDisabled]:r})},this.messages.update):void 0,b=this.visibleElements.cancelUpdateButton?y("button",{disabled:a,key:"cancel-button",type:"button",bind:this,onclick:this._cancelForm,class:this.classes(p.button,p.buttonSmall,p.buttonTertiary,p.buttonThird,{[p.buttonDisabled]:a})},this.messages.cancel):void 0,f=l.editing&&l.operations?.update?y("fieldset",{key:"file",class:F.fileFieldset},y("span",{key:"file-name",class:F.fileName},d),y("label",{class:this.classes(F.fileLabel,p.button,p.buttonSecondary)},this.messages.changeFile,y("input",{class:F.fileInput,type:"file",name:"attachment",bind:this,onchange:this._handleFileInputChange}))):void 0,v=y("fieldset",{key:"size",class:F.metadataFieldset},y("label",null,n(this.messagesUnits,m??0))),A=y("fieldset",{key:"content-type",class:F.metadataFieldset},y("label",null,o)),w=null!=c?y("a",{class:F.itemLink,href:c,rel:"noreferrer",target:"_blank"},this._renderImageMask(e,400),y("div",{class:F.itemLinkOverlay},y("span",{class:F.itemLinkOverlayIcon},y("calcite-icon",{icon:"launch"})))):this._renderImageMask(e,400),k=y("form",{bind:this,afterCreate:_,afterRemoved:g,"data-node-ref":"_updateAttachmentForm",onsubmit:t=>this._submitUpdateAttachment(t,e)},y("div",{class:F.metadata},v,A),f,y("div",{class:F.actions},h,b,u));return y("div",{key:"edit-form-container",class:F.formNode},w,k)}_renderImageMask(e,t){return e?"file"in e?this._renderGenericImageMask(e.file.name,e.file.type):this._renderImageMaskForAttachment(e,t):null}_renderGenericImageMask(e,t){const{supportsResizeAttachments:s}=this.viewModel,i=c(t),a={[F.itemImageResizable]:s};return y("div",{key:i,class:this.classes(F.itemMaskIcon,F.itemMask)},y("img",{title:e,alt:e,src:i,class:this.classes(a,F.itemImage)}))}_renderImageMaskForAttachment(e,t){const{supportsResizeAttachments:s}=this.viewModel;if(!e)return null;const{contentType:i,name:a,url:n}=e;if(!s||!h(i))return this._renderGenericImageMask(a,i);const l=this._getCSSTransform(e),r=l?{transform:l,"image-orientation":"none"}:{},o=`${n}${n?.includes("?")?"&":"?"}w=${t}`,d={[F.itemImageResizable]:s};return y("div",{key:o,class:this.classes(F.itemMask)},y("img",{styles:r,alt:a,title:a,src:o,class:this.classes(d,F.itemImage)}))}_renderFile(e){const{file:t}=e;return y("li",{class:F.item,key:t},y("button",{key:"details-button",bind:this,class:F.itemButton,title:this.messages.attachmentDetails,"aria-label":this.messages.attachmentDetails,onclick:()=>this._startEditFile(e),type:"button"},this._renderImageMask(e),y("label",{class:F.itemLabel},y("span",{class:F.itemFilename},t.name||this.messages.noTitle),y("span",{"aria-hidden":"true",class:this.classes(F.itemChevronIcon,f(this.container)?b.left:b.right)}))))}_renderAttachmentInfo({attachmentInfo:e,displayType:t}){const{viewModel:s,effectiveDisplayType:i}=this,{capabilities:a,supportsResizeAttachments:n}=s,{contentType:l,name:r,url:o}=e,d=this._renderImageMask(e,"list"===t?48:400),m=a.editing?y("span",{"aria-hidden":"true",class:this.classes(F.itemChevronIcon,f(this.container)?b.left:b.right)}):null,c=[d,"preview"===i&&n&&h(l)?null:y("label",{class:F.itemLabel},y("span",{class:F.itemFilename},r||this.messages.noTitle),m)],u=a.editing?y("button",{key:"details-button",bind:this,class:F.itemButton,title:this.messages.attachmentDetails,"aria-label":this.messages.attachmentDetails,"data-attachment-info-id":e.id,onclick:()=>this._startEditAttachment(e),type:"button"},c):y("a",{key:"details-link",class:F.itemButton,href:o??void 0,target:"_blank"},c);return y("li",{class:F.item,key:e},u)}_renderAttachmentContainer(){const{effectiveDisplayType:e,viewModel:t,visibleElements:s}=this,{attachmentInfos:i,capabilities:a,fileInfos:n}=t,l=!!i?.length,r=!!n?.length,o={[F.containerList]:"preview"!==e,[F.containerPreview]:"preview"===e},d=a.editing&&a.operations?.add&&s.addButton?y("button",{bind:this,onclick:()=>this._startAddAttachment(),class:this.classes(p.button,p.buttonTertiary,F.addAttachmentButton),type:"button"},y("span",{"aria-hidden":"true",class:this.classes(F.itemAddIcon,b.plus)}),this.messages.add):void 0,m=l?y("ul",{key:"attachments-list",class:F.items},i.toArray().map((t=>this._renderAttachmentInfo({attachmentInfo:t,displayType:e})))):void 0,c=r?y("ul",{key:"file-list",class:F.items},n.toArray().map((e=>this._renderFile(e)))):void 0,h=r||l?void 0:y("div",{class:p.empty},this.messages.noAttachments);return y("div",{key:"attachments-container",class:this.classes(F.container,o)},m,c,h,d)}_modeChanged(){this._set("error",null),this._set("selectedFile",null)}_handleFileInputChange(e){const t=e.target,s=t&&t.files&&t.files.item(0);this._set("selectedFile",s)}_submitDeleteAttachment(e,t){e.preventDefault(),t&&("file"in t?this.deleteFile(t.file):t&&this.deleteAttachment(t))}_submitAddAttachment(e){e.preventDefault(),this.viewModel.filesEnabled?this.addFile():this.addAttachment()}_submitUpdateAttachment(e,t){e.preventDefault(),t&&"file"in t?this.updateFile():this.updateAttachment()}_startEditAttachment(e){const{viewModel:t}=this;t.activeFileInfo=null,t.activeAttachmentInfo=e,t.mode="edit"}_startEditFile(e){const{viewModel:t}=this;t.activeAttachmentInfo=null,t.activeFileInfo=e,t.mode="edit"}_startAddAttachment(){this.viewModel.mode="add"}_cancelForm(e){e.preventDefault(),this.viewModel.mode="view"}_getCSSTransform(e){const{orientationInfo:t}=e;return!this._supportsImageOrientation&&t?[t.rotation?`rotate(${t.rotation}deg)`:"",t.mirrored?"scaleX(-1)":""].join(" "):""}};e([l()],M.prototype,"capabilities",null),e([l()],M.prototype,"displayType",void 0),e([l({readOnly:!0})],M.prototype,"effectiveDisplayType",null),e([l()],M.prototype,"graphic",null),e([l()],M.prototype,"label",null),e([l(),v("esri/widgets/Attachments/t9n/Attachments")],M.prototype,"messages",void 0),e([l(),v("esri/core/t9n/Units")],M.prototype,"messagesUnits",void 0),e([l({readOnly:!0})],M.prototype,"selectedFile",void 0),e([l({readOnly:!0})],M.prototype,"submitting",void 0),e([l({readOnly:!0})],M.prototype,"error",void 0),e([l({type:m})],M.prototype,"viewModel",void 0),e([l()],M.prototype,"visibleElements",void 0),e([r("visibleElements")],M.prototype,"castVisibleElements",null),M=e([o("esri.widgets.Attachments")],M);const I=M;export{I as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Error.js";import{on as s,watch as i,initial as a}from"../core/reactiveUtils.js";import{formatFileSize as n}from"../core/unitFormatUtils.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import{cast as r}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import m from"./Attachments/AttachmentsViewModel.js";import{getIconPath as c,isSupportedImage as h}from"./Attachments/support/attachmentUtils.js";import{loadCalciteComponents as u}from"./support/componentsUtils.js";import{globalCss as p}from"./support/globalCss.js";import{legacyIcon as b}from"./support/legacyIcon.js";import{storeNode as _,discardNode as g,isRTL as f}from"./support/widgetUtils.js";import{messageBundle as v}from"./support/decorators/messageBundle.js";import{tsx as y}from"./support/jsxFactory.js";const A={addButton:!0,addSubmitButton:!0,cancelAddButton:!0,cancelUpdateButton:!0,deleteButton:!0,errorMessage:!0,progressBar:!0,updateButton:!0},w="esri-attachments",F={base:w,loaderContainer:`${w}__loader-container`,loader:`${w}__loader`,fadeIn:`${w}--fade-in`,container:`${w}__container`,containerList:`${w}__container--list`,containerPreview:`${w}__container--preview`,actions:`${w}__actions`,deleteButton:`${w}__delete-button`,addAttachmentButton:`${w}__add-attachment-button`,errorMessage:`${w}__error-message`,items:`${w}__items`,item:`${w}__item`,itemButton:`${w}__item-button`,itemMask:`${w}__item-mask`,itemMaskIcon:`${w}__item-mask--icon`,itemImage:`${w}__image`,itemImageResizable:`${w}__image--resizable`,itemLabel:`${w}__label`,itemFilename:`${w}__filename`,itemChevronIcon:`${w}__item-chevron-icon`,itemLink:`${w}__item-link`,itemLinkOverlay:`${w}__item-link-overlay`,itemLinkOverlayIcon:`${w}__item-link-overlay-icon`,itemEditIcon:`${w}__item-edit-icon`,itemAddIcon:`${w}__item-add-icon`,itemAddButton:`${w}__item-add-button`,formNode:`${w}__form-node`,fileFieldset:`${w}__file-fieldset`,fileLabel:`${w}__file-label`,fileName:`${w}__file-name`,fileInput:`${w}__file-input`,metadata:`${w}__metadata`,metadataFieldset:`${w}__metadata-fieldset`,progressBar:`${w}__progress-bar`},k=window.CSS;let M=class extends d{constructor(e,t){super(e,t),this.displayType="auto",this.messages=null,this.messagesUnits=null,this.selectedFile=null,this.submitting=!1,this.viewModel=null,this.visibleElements={...A},this._supportsImageOrientation=k&&k.supports&&k.supports("image-orientation","from-image"),this._addAttachmentForm=null,this._updateAttachmentForm=null}normalizeCtorArgs(e){return e?.viewModel||(e={viewModel:new m,...e}),e}initialize(){this.addHandles([s((()=>this.viewModel?.attachmentInfos),"change",(()=>this.scheduleRender())),s((()=>this.viewModel?.fileInfos),"change",(()=>this.scheduleRender())),i((()=>this.viewModel?.mode),(()=>this._modeChanged()),a)])}loadDependencies(){return u({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js")})}get capabilities(){return this.viewModel.capabilities}set capabilities(e){this.viewModel.capabilities=e}get effectiveDisplayType(){const{displayType:e}=this;return e&&"auto"!==e?e:this.viewModel.supportsResizeAttachments?"preview":"list"}get graphic(){return this.viewModel.graphic}set graphic(e){this.viewModel.graphic=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}castVisibleElements(e){return{...A,...e}}addAttachment(){const{_addAttachmentForm:e,viewModel:s}=this;return this._set("submitting",!0),this._set("error",null),s.addAttachment(e).then((e=>(this._set("submitting",!1),this._set("error",null),s.mode="view",e))).catch((e=>{throw this._set("submitting",!1),this._set("error",new t("attachments:add-attachment",this.messages.addErrorMessage,e)),e}))}deleteAttachment(e){const{viewModel:s}=this;return this._set("submitting",!0),this._set("error",null),s.deleteAttachment(e).then((e=>(this._set("submitting",!1),this._set("error",null),s.mode="view",e))).catch((e=>{throw this._set("submitting",!1),this._set("error",new t("attachments:delete-attachment",this.messages.deleteErrorMessage,e)),e}))}updateAttachment(){const{viewModel:e}=this,{_updateAttachmentForm:s}=this;return this._set("submitting",!0),this._set("error",null),e.updateAttachment(s).then((t=>(this._set("submitting",!1),this._set("error",null),e.mode="view",t))).catch((e=>{throw this._set("submitting",!1),this._set("error",new t("attachments:update-attachment",this.messages.updateErrorMessage,e)),e}))}addFile(){const e=this.viewModel.addFile(this.selectedFile,this._addAttachmentForm);return this.viewModel.mode="view",e}updateFile(){const{viewModel:e}=this,t=e.updateFile(this.selectedFile,this._updateAttachmentForm,e.activeFileInfo);return e.mode="view",t}deleteFile(e){const t=this.viewModel.deleteFile(e||this.viewModel.activeFileInfo?.file);return this.viewModel.mode="view",t}render(){const{submitting:e,viewModel:t}=this,{state:s}=t;return y("div",{class:this.classes(F.base,p.widget)},e?this._renderProgressBar():null,"loading"===s?this._renderLoading():this._renderAttachments(),this._renderErrorMessage())}_renderErrorMessage(){const{error:e,visibleElements:t}=this;return e&&t.errorMessage?y("div",{class:F.errorMessage,key:"error-message"},e.message):null}_renderAttachments(){const{activeFileInfo:e,mode:t,activeAttachmentInfo:s}=this.viewModel;return"add"===t?this._renderAddForm():"edit"===t?this._renderDetailsForm(s||e):this._renderAttachmentContainer()}_renderLoading(){return y("div",{class:F.loaderContainer,key:"loader"},y("div",{class:F.loader}))}_renderProgressBar(){return this.visibleElements.progressBar?y("div",{class:F.progressBar,key:"progress-bar"}):null}_renderAddForm(){const{submitting:e,selectedFile:t}=this,s=e||!t,i=this.visibleElements.cancelAddButton?y("button",{bind:this,class:this.classes(p.button,p.buttonTertiary,p.buttonSmall,p.buttonHalf,e&&p.buttonDisabled),disabled:e,onclick:this._cancelForm,type:"button"},this.messages.cancel):null,a=this.visibleElements.addSubmitButton?y("button",{class:this.classes(p.button,p.buttonSecondary,p.buttonSmall,p.buttonHalf,{[p.buttonDisabled]:s}),disabled:s,type:"submit"},this.messages.add):null,n=t?y("span",{class:F.fileName,key:"file-name"},t.name):null,l=y("form",{afterCreate:_,afterRemoved:g,bind:this,"data-node-ref":"_addAttachmentForm",onsubmit:this._submitAddAttachment},y("fieldset",{class:F.fileFieldset},n,y("label",{class:this.classes(F.fileLabel,p.button,p.buttonSecondary)},t?this.messages.changeFile:this.messages.selectFile,y("input",{bind:this,class:F.fileInput,name:"attachment",onchange:this._handleFileInputChange,type:"file"}))),a,i);return y("div",{class:F.formNode,key:"add-form-container"},l)}_renderDetailsForm(e){const{visibleElements:t,viewModel:s,selectedFile:i,submitting:a}=this,{capabilities:l}=s,r=a||!i;let o,d,m,c;i?(o=i.type,d=i.name,m=i.size):e&&"file"in e?(o=e.file.type,d=e.file.name,m=e.file.size):e&&"contentType"in e&&(o=e.contentType,d=e.name,m=e.size,c=e.url);const h=l.editing&&l.operations?.delete&&t.deleteButton?y("button",{bind:this,class:this.classes(p.button,p.buttonSmall,p.buttonTertiary,F.deleteButton,{[p.buttonDisabled]:a}),disabled:a,key:"delete-button",onclick:t=>this._submitDeleteAttachment(t,e),type:"button"},this.messages.delete):void 0,u=l.editing&&l.operations?.update&&t.updateButton?y("button",{class:this.classes(p.button,p.buttonSmall,p.buttonThird,{[p.buttonDisabled]:r}),disabled:r,key:"update-button",type:"submit"},this.messages.update):void 0,b=this.visibleElements.cancelUpdateButton?y("button",{bind:this,class:this.classes(p.button,p.buttonSmall,p.buttonTertiary,p.buttonThird,{[p.buttonDisabled]:a}),disabled:a,key:"cancel-button",onclick:this._cancelForm,type:"button"},this.messages.cancel):void 0,f=l.editing&&l.operations?.update?y("fieldset",{class:F.fileFieldset,key:"file"},y("span",{class:F.fileName,key:"file-name"},d),y("label",{class:this.classes(F.fileLabel,p.button,p.buttonSecondary)},this.messages.changeFile,y("input",{bind:this,class:F.fileInput,name:"attachment",onchange:this._handleFileInputChange,type:"file"}))):void 0,v=y("fieldset",{class:F.metadataFieldset,key:"size"},y("label",null,n(this.messagesUnits,m??0))),A=y("fieldset",{class:F.metadataFieldset,key:"content-type"},y("label",null,o)),w=null!=c?y("a",{class:F.itemLink,href:c,rel:"noreferrer",target:"_blank"},this._renderImageMask(e,400),y("div",{class:F.itemLinkOverlay},y("span",{class:F.itemLinkOverlayIcon},y("calcite-icon",{icon:"launch"})))):this._renderImageMask(e,400),k=y("form",{afterCreate:_,afterRemoved:g,bind:this,"data-node-ref":"_updateAttachmentForm",onsubmit:t=>this._submitUpdateAttachment(t,e)},y("div",{class:F.metadata},v,A),f,y("div",{class:F.actions},h,b,u));return y("div",{class:F.formNode,key:"edit-form-container"},w,k)}_renderImageMask(e,t){return e?"file"in e?this._renderGenericImageMask(e.file.name,e.file.type):this._renderImageMaskForAttachment(e,t):null}_renderGenericImageMask(e,t){const{supportsResizeAttachments:s}=this.viewModel,i=c(t),a={[F.itemImageResizable]:s};return y("div",{class:this.classes(F.itemMaskIcon,F.itemMask),key:i},y("img",{alt:e,class:this.classes(a,F.itemImage),src:i,title:e}))}_renderImageMaskForAttachment(e,t){const{supportsResizeAttachments:s}=this.viewModel;if(!e)return null;const{contentType:i,name:a,url:n}=e;if(!s||!h(i))return this._renderGenericImageMask(a,i);const l=this._getCSSTransform(e),r=l?{transform:l,"image-orientation":"none"}:{},o=`${n}${n?.includes("?")?"&":"?"}w=${t}`,d={[F.itemImageResizable]:s};return y("div",{class:this.classes(F.itemMask),key:o},y("img",{alt:a,class:this.classes(d,F.itemImage),src:o,styles:r,title:a}))}_renderFile(e){const{file:t}=e;return y("li",{class:F.item,key:t},y("button",{"aria-label":this.messages.attachmentDetails,bind:this,class:F.itemButton,key:"details-button",onclick:()=>this._startEditFile(e),title:this.messages.attachmentDetails,type:"button"},this._renderImageMask(e),y("label",{class:F.itemLabel},y("span",{class:F.itemFilename},t.name||this.messages.noTitle),y("span",{"aria-hidden":"true",class:this.classes(F.itemChevronIcon,f(this.container)?b.left:b.right)}))))}_renderAttachmentInfo({attachmentInfo:e,displayType:t}){const{viewModel:s,effectiveDisplayType:i}=this,{capabilities:a,supportsResizeAttachments:n}=s,{contentType:l,name:r,url:o}=e,d=this._renderImageMask(e,"list"===t?48:400),m=a.editing?y("span",{"aria-hidden":"true",class:this.classes(F.itemChevronIcon,f(this.container)?b.left:b.right)}):null,c=[d,"preview"===i&&n&&h(l)?null:y("label",{class:F.itemLabel},y("span",{class:F.itemFilename},r||this.messages.noTitle),m)],u=a.editing?y("button",{"aria-label":this.messages.attachmentDetails,bind:this,class:F.itemButton,"data-attachment-info-id":e.id,key:"details-button",onclick:()=>this._startEditAttachment(e),title:this.messages.attachmentDetails,type:"button"},c):y("a",{class:F.itemButton,href:o??void 0,key:"details-link",target:"_blank"},c);return y("li",{class:F.item,key:e},u)}_renderAttachmentContainer(){const{effectiveDisplayType:e,viewModel:t,visibleElements:s}=this,{attachmentInfos:i,capabilities:a,fileInfos:n}=t,l=!!i?.length,r=!!n?.length,o={[F.containerList]:"preview"!==e,[F.containerPreview]:"preview"===e},d=a.editing&&a.operations?.add&&s.addButton?y("button",{bind:this,class:this.classes(p.button,p.buttonTertiary,F.addAttachmentButton),onclick:()=>this._startAddAttachment(),type:"button"},y("span",{"aria-hidden":"true",class:this.classes(F.itemAddIcon,b.plus)}),this.messages.add):void 0,m=l?y("ul",{class:F.items,key:"attachments-list"},i.toArray().map((t=>this._renderAttachmentInfo({attachmentInfo:t,displayType:e})))):void 0,c=r?y("ul",{class:F.items,key:"file-list"},n.toArray().map((e=>this._renderFile(e)))):void 0,h=r||l?void 0:y("div",{class:p.empty},this.messages.noAttachments);return y("div",{class:this.classes(F.container,o),key:"attachments-container"},m,c,h,d)}_modeChanged(){this._set("error",null),this._set("selectedFile",null)}_handleFileInputChange(e){const t=e.target,s=t&&t.files&&t.files.item(0);this._set("selectedFile",s)}_submitDeleteAttachment(e,t){e.preventDefault(),t&&("file"in t?this.deleteFile(t.file):t&&this.deleteAttachment(t))}_submitAddAttachment(e){e.preventDefault(),this.viewModel.filesEnabled?this.addFile():this.addAttachment()}_submitUpdateAttachment(e,t){e.preventDefault(),t&&"file"in t?this.updateFile():this.updateAttachment()}_startEditAttachment(e){const{viewModel:t}=this;t.activeFileInfo=null,t.activeAttachmentInfo=e,t.mode="edit"}_startEditFile(e){const{viewModel:t}=this;t.activeAttachmentInfo=null,t.activeFileInfo=e,t.mode="edit"}_startAddAttachment(){this.viewModel.mode="add"}_cancelForm(e){e.preventDefault(),this.viewModel.mode="view"}_getCSSTransform(e){const{orientationInfo:t}=e;return!this._supportsImageOrientation&&t?[t.rotation?`rotate(${t.rotation}deg)`:"",t.mirrored?"scaleX(-1)":""].join(" "):""}};e([l()],M.prototype,"capabilities",null),e([l()],M.prototype,"displayType",void 0),e([l({readOnly:!0})],M.prototype,"effectiveDisplayType",null),e([l()],M.prototype,"graphic",null),e([l()],M.prototype,"label",null),e([l(),v("esri/widgets/Attachments/t9n/Attachments")],M.prototype,"messages",void 0),e([l(),v("esri/core/t9n/Units")],M.prototype,"messagesUnits",void 0),e([l({readOnly:!0})],M.prototype,"selectedFile",void 0),e([l({readOnly:!0})],M.prototype,"submitting",void 0),e([l({readOnly:!0})],M.prototype,"error",void 0),e([l({type:m})],M.prototype,"viewModel",void 0),e([l()],M.prototype,"visibleElements",void 0),e([r("visibleElements")],M.prototype,"castVisibleElements",null),M=e([o("esri.widgets.Attachments")],M);const I=M;export{I as default};
|
package/widgets/Attribution.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{on as t}from"../core/reactiveUtils.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import s from"./Widget.js";import o from"./Attribution/AttributionViewModel.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as p}from"./support/legacyIcon.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import{tsx as d}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const a="esri-attribution",h={base:a,poweredBy:`${a}__powered-by`,sources:`${a}__sources`,open:`${a}--open`,sourcesOpen:`${a}__sources--open`,link:`${a}__link`,widgetIcon:p.description};let u=class extends s{constructor(e,t){super(e,t),this._isOpen=!1,this._attributionTextOverflowed=!1,this._prevSourceNodeHeight=0,this._resizeObserver=new ResizeObserver((e=>e.forEach((({target:e})=>this._checkSourceTextOverflow(e))))),this.iconClass=h.widgetIcon,this.icon=null,this.itemDelimiter=" | ",this.messages=null,this.viewModel=new o}initialize(){this.addHandles(t((()=>this.viewModel?.items),"change",(()=>this.scheduleRender())))}destroy(){this._resizeObserver?.disconnect()}get _isInteractive(){return this._isOpen||this._attributionTextOverflowed}get attributionText(){return this.viewModel.items.reduce(((e,t)=>(e.includes(t.text)||e.push(t.text),e)),[]).join(this.itemDelimiter)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const e={[h.open]:this._isOpen};return d("div",{bind:this,class:this.classes(h.base,n.widget,e),dir:"ltr",onclick:this._toggleState,onkeydown:this._toggleState},this._renderSourcesNode(),this._renderPoweredBy())}_renderPoweredBy(){return d("div",{class:h.poweredBy},"Powered by"," ",d("a",{class:h.link,href:"http://www.esri.com/",
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{on as t}from"../core/reactiveUtils.js";import{property as i}from"../core/accessorSupport/decorators/property.js";import"../core/accessorSupport/ensureType.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import s from"./Widget.js";import o from"./Attribution/AttributionViewModel.js";import{globalCss as n}from"./support/globalCss.js";import{legacyIcon as p}from"./support/legacyIcon.js";import{accessibleHandler as l}from"./support/decorators/accessibleHandler.js";import{messageBundle as c}from"./support/decorators/messageBundle.js";import{tsx as d}from"./support/jsxFactory.js";import"./support/widgetUtils.js";const a="esri-attribution",h={base:a,poweredBy:`${a}__powered-by`,sources:`${a}__sources`,open:`${a}--open`,sourcesOpen:`${a}__sources--open`,link:`${a}__link`,widgetIcon:p.description};let u=class extends s{constructor(e,t){super(e,t),this._isOpen=!1,this._attributionTextOverflowed=!1,this._prevSourceNodeHeight=0,this._resizeObserver=new ResizeObserver((e=>e.forEach((({target:e})=>this._checkSourceTextOverflow(e))))),this.iconClass=h.widgetIcon,this.icon=null,this.itemDelimiter=" | ",this.messages=null,this.viewModel=new o}initialize(){this.addHandles(t((()=>this.viewModel?.items),"change",(()=>this.scheduleRender())))}destroy(){this._resizeObserver?.disconnect()}get _isInteractive(){return this._isOpen||this._attributionTextOverflowed}get attributionText(){return this.viewModel.items.reduce(((e,t)=>(e.includes(t.text)||e.push(t.text),e)),[]).join(this.itemDelimiter)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const e={[h.open]:this._isOpen};return d("div",{bind:this,class:this.classes(h.base,n.widget,e),dir:"ltr",onclick:this._toggleState,onkeydown:this._toggleState},this._renderSourcesNode(),this._renderPoweredBy())}_renderPoweredBy(){return d("div",{class:h.poweredBy},"Powered by"," ",d("a",{class:h.link,href:"http://www.esri.com/",rel:"noreferrer",target:"_blank"},"Esri"))}_renderSourcesNode(){const e=this._isOpen,t=this._isInteractive,i=t?0:void 0,{attributionText:r}=this,s={[h.sourcesOpen]:e,[n.interactive]:t};return d("div",{afterCreate:this._afterSourcesNodeCreate,bind:this,class:this.classes(h.sources,s),innerHTML:r,tabIndex:i})}_afterSourcesNodeCreate(e){this._prevSourceNodeHeight=e.clientWidth,this._resizeObserver.observe(e)}_checkSourceTextOverflow(e){let t=!1;const{clientHeight:i,clientWidth:r,scrollWidth:s}=e,o=s>r,n=this._attributionTextOverflowed!==o;if(this._attributionTextOverflowed=o,n&&(t=!0),this._isOpen){const e=i<this._prevSourceNodeHeight;this._prevSourceNodeHeight=i,e&&(this._isOpen=!1,t=!0)}t&&this.scheduleRender()}_toggleState(){this._isInteractive&&(this._isOpen=!this._isOpen)}};e([i()],u.prototype,"_isOpen",void 0),e([i()],u.prototype,"_isInteractive",null),e([i()],u.prototype,"_attributionTextOverflowed",void 0),e([i()],u.prototype,"_prevSourceNodeHeight",void 0),e([i({readOnly:!0,dependsOn:["viewModel.items.length","itemDelimiter"]})],u.prototype,"attributionText",null),e([i()],u.prototype,"iconClass",void 0),e([i()],u.prototype,"icon",void 0),e([i()],u.prototype,"itemDelimiter",void 0),e([i()],u.prototype,"label",null),e([i(),c("esri/widgets/Attribution/t9n/Attribution")],u.prototype,"messages",void 0),e([i()],u.prototype,"view",null),e([i({type:o})],u.prototype,"viewModel",void 0),e([l()],u.prototype,"_toggleState",null),u=e([r("esri.widgets.Attribution")],u);const _=u;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{getAssetUrl as t}from"../assets.js";import{when as s}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 i}from"../core/accessorSupport/decorators/subclass.js";import{getBasemapThumbnailUrl as
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{getAssetUrl as t}from"../assets.js";import{when as s}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 i}from"../core/accessorSupport/decorators/subclass.js";import{getBasemapThumbnailUrl as r,isBasemap3D as o}from"../support/basemapUtils.js";import l from"./Widget.js";import n from"./BasemapGallery/BasemapGalleryViewModel.js";import{css as d}from"./BasemapGallery/css.js";import{loadCalciteComponents as p}from"./support/componentsUtils.js";import{globalCss as c}from"./support/globalCss.js";import{Heading as m}from"./support/Heading.js";import{accessibleHandler as h}from"./support/decorators/accessibleHandler.js";import{messageBundle as u}from"./support/decorators/messageBundle.js";import{tsx as g}from"./support/jsxFactory.js";import{onResize as v}from"./support/widgetUtils.js";const y={small:200,default:280,wide:420};let b=class extends l{constructor(e,t){super(e,t),this.disabled=!1,this.headingLevel=2,this.iconClass=d.widgetIcon,this.icon=null,this.messages=null,this.viewModel=new n,this._focusBasemapItemEnabled=!1,this._container=null,this._width=0,this._onContainerCreated=e=>{this._container=e}}initialize(){this.addHandles([v((()=>this._container),(({contentRect:e})=>{this._width=e.width})),s((()=>this.source),(()=>this.viewModel.load()),{sync:!0,initial:!0,once:!0})])}loadDependencies(){return p({scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js"),chip:()=>import("@esri/calcite-components/dist/components/calcite-chip.js")})}get activeBasemap(){return this.viewModel.activeBasemap}set activeBasemap(e){this.viewModel.activeBasemap=e}get includeCurrentBasemap(){return this.viewModel.includeCurrentBasemap}set includeCurrentBasemap(e){this.viewModel.includeCurrentBasemap=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get source(){return this.viewModel.source}set source(e){this.viewModel.source=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}render(){const e="loading"===this.source.state,t=this.disabled||"disabled"===this.viewModel.state,s=this.viewModel.items,a={[d.sourceLoading]:e,[c.disabled]:t},i=this._width;i<=y.small||i>=y.wide?a[d.layoutGrid]=!0:i<y.default&&(a[d.narrowItems]=!0);const r=e?g("div",{class:d.loader,key:"loader"}):null,o=e?null:s.length>0?g("ul",{"aria-disabled":this.disabled,"aria-label":this.label,bind:this,class:d.itemContainer,key:"item-container",onkeydown:this._handleKeyDown,role:"radiogroup"},s.map(((e,t)=>this._renderBasemapGalleryItem(e,t))).toArray()):g("div",{class:c.empty,key:"empty-message"},g(m,{level:this.headingLevel},this.messages.noBasemaps));return g("div",{afterCreate:this._onContainerCreated,class:this.classes(d.base,c.widget,c.panelHeightOnly,a),key:"container"},0===this._width?null:[r,o])}_getRoundRobinIndex(e,t){return(e+t)%t}_handleKeyDown(e){const{key:t}=e;if(!["ArrowUp","ArrowDown","ArrowRight","ArrowLeft"].includes(t))return;e.preventDefault();const{items:s,activeBasemapIndex:a}=this.viewModel,i="ArrowUp"===t||"ArrowLeft"===t?this._getRoundRobinIndex(Math.max(a-1,-1),s.length):this._getRoundRobinIndex(a+1,s.length),r=s.at(i);"ready"===r?.state&&(this.viewModel.activeBasemap=r.basemap),this._focusBasemapItemEnabled=!0}_focusBasemapItem(e){this._focusBasemapItemEnabled&&0===e.tabIndex&&(e.focus(),this._focusBasemapItemEnabled=!1)}_handleClick(e){const t=e.currentTarget["data-item"];"ready"===t.state&&(this.viewModel.activeBasemap=t.basemap)}_renderBasemapGalleryItem(e,s){const a=r(e.basemap)||t("esri/themes/base/images/basemap-toggle-64.svg"),i=e.basemap.title,l=e.basemap.portalItem?.snippet,n=e.error?.message||l||i,{viewModel:{state:p,activeBasemapIndex:m}}=this,h=this.disabled||"disabled"===p,u=m===s,v=u||-1===m&&0===s?0:-1,y="loading"===p,b={[d.selectedItem]:u,[d.itemError]:"error"===e.state},w=`basemapgallery-item-${e.uid}`;return g("li",{afterUpdate:this._focusBasemapItem,"aria-checked":u.toString(),"aria-disabled":h.toString(),"aria-labelledby":w,bind:this,class:this.classes(d.item,b),"data-item":e,key:e.uid,onclick:this._handleClick,onkeydown:this._handleClick,role:"radio",tabIndex:v,title:n},g("img",{alt:"",class:d.itemThumbnail,src:a}),g("div",{class:d.itemContent,key:"content"},g("div",{class:d.itemTitle,key:"title"},g("span",{id:w},i)),o(e.basemap)?this._renderTags(e.basemap.portalItem?.tags):null),"loading"===e.state||u&&y?g("calcite-scrim",null,g("span",{"aria-hidden":"true",class:c.loaderAnimation,key:"loader",role:"presentation"})):null)}_renderTags(e){const t=e?.includes("beta");return g("div",{class:d.itemTagsContainer,key:"tag"},this._render3DTag(),t?this._renderBetaTag():null)}_render3DTag(){const{messages:e}=this;return g("calcite-chip",{key:"tag-3d",scale:"s",value:e.tag3D},this.messages.tag3D)}_renderBetaTag(){const{messages:e}=this;return g("calcite-chip",{appearance:"outline-fill",key:"tag-beta",scale:"s",value:e.tagBeta},this.messages.tagBeta)}};e([a()],b.prototype,"activeBasemap",null),e([a()],b.prototype,"disabled",void 0),e([a()],b.prototype,"headingLevel",void 0),e([a()],b.prototype,"iconClass",void 0),e([a()],b.prototype,"icon",void 0),e([a()],b.prototype,"label",null),e([a(),u("esri/widgets/BasemapGallery/t9n/BasemapGallery")],b.prototype,"messages",void 0),e([a()],b.prototype,"source",null),e([a()],b.prototype,"view",null),e([a()],b.prototype,"viewModel",void 0),e([a()],b.prototype,"_focusBasemapItemEnabled",void 0),e([a()],b.prototype,"_container",void 0),e([a()],b.prototype,"_width",void 0),e([h()],b.prototype,"_handleClick",null),b=e([i("esri.widgets.BasemapGallery")],b);const w=b;export{w as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{watch as s,on as n,initial as r}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import c from"./BasemapLayerList/BasemapLayerListViewModel.js";import h from"./LayerList/ListItem.js";import{findSelectedItem as u}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as m}from"./support/componentsUtils.js";import{globalCss as g}from"./support/globalCss.js";import{Heading as p,incrementHeadingLevel as _}from"./support/Heading.js";import{legacyIcon as b}from"./support/legacyIcon.js";import{accessibleHandler as y}from"./support/decorators/accessibleHandler.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{vmEvent as I}from"./support/decorators/vmEvent.js";import{tsx as v}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import C from"sortablejs";const T=t.ofType(h);function L(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const A=".*\\S+.*",S="root-layers",$="data-layer-uid",E="layerUid",w="esri-basemap-layer-list",k=`${w}__item`,M=`${w}__list`,B={base:w,widgetIcon:b.layers,newUI:`${w}--new-ui`,titleContainer:`${w}__title-container`,mainHeading:`${w}__main-heading`,editingCard:`${w}__editing-card`,editingInput:`${w}__editing-input`,editingActions:`${w}__editing-actions`,editButton:`${w}__edit-button`,editButtonIcon:`${w}__edit-button-icon`,submitButton:`${w}__submit-button`,cancelButton:`${w}__cancel-button`,noItems:`${w}__no-items`,horizontalRule:`${w}__hr`,list:M,listHeading:`${M}-heading`,listRoot:`${M}--root`,listExclusive:`${M}--exclusive`,listEmpty:`${w}__list--empty`,listEmptyState:`${w}__list-empty-state`,listInherited:`${M}--inherited`,listIndependent:`${M}--independent`,item:k,itemOnlyChild:`${k}--only-child`,itemContent:`${k}-content`,itemMessage:`${k}--has-message`,itemInvisible:`${k}--invisible`,itemInvisibleAtScale:`${k}--invisible-at-scale`,itemChildren:`${k}--has-children`,itemSelectable:`${k}--selectable`,itemContainer:`${k}-container`,actionsMenu:`${k}-actions-menu`,actionsMenuItem:`${k}-actions-menu-item`,actionsMenuItemActive:`${k}-actions-menu-item--active`,actions:`${k}-actions`,actionsList:`${k}-actions-list`,action:`${k}-action`,actionIcon:`${k}-action-icon`,actionImage:`${k}-action-image`,actionTitle:`${k}-action-title`,actionToggle:`${w}__action-toggle`,actionToggleOn:`${w}__action-toggle--on`,label:`${k}-label`,message:`${k}-message`,title:`${k}-title`,statusIndicator:`${w}__status-indicator`,publishing:`${w}__publishing`,updating:`${w}__updating`,connectionStatus:`${w}__connection-status`,connectionStatusConnected:`${w}__connection-status--connected`,toggleVisible:`${k}-toggle`,toggleVisibleIcon:`${k}-toggle-icon`,toggleIcon:`${k}-toggle-icon`,radioIcon:`${k}-radio-icon`,childToggle:`${w}__child-toggle`,childToggleOpen:`${w}__child-toggle--open`,childOpened:`${w}__child-toggle-icon--opened`,childClosed:`${w}__child-toggle-icon--closed`,childClosed_RTL:`${w}__child-toggle-icon--closed-rtl`,sortableChosen:`${w}--chosen`},R={actions:"actions",actionSection:"action-section",baseItems:"base-items",referenceItems:"reference-items"},O={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function x(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>x(e)))}const j={baseLayers:!0,referenceLayers:!0,statusIndicators:!0,errors:!1};let N=class extends d{constructor(e,t){super(e,t),this._tooltipReferenceMap=new Map,this._editingTitle=!1,this._editTitleInput=null,this._editTitleButton=null,this._focusOnElement=null,this._sortableBaseLayers=null,this._sortableReferenceLayers=null,this._sortableBaseLayersNode=null,this._sortableReferenceLayersNode=null,this._focusSortUid=null,this.visibleItems=null,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=B.widgetIcon,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.selectedItems=new T,this.style="classic",this.viewModel=new c,this.visibleElements={...j}}initialize(){const{baseItems:e,referenceItems:t}=this;this._setVisibleItems(),this.addHandles([s((()=>this.visibleElements),(()=>{this._itemsChanged(e,R.baseItems),this._itemsChanged(t,R.referenceItems)})),n((()=>this.baseItems),"change",(()=>{this._itemsChanged(e,R.baseItems)})),n((()=>this.referenceItems),"change",(()=>this._itemsChanged(t,R.referenceItems))),s((()=>this.editingEnabled),(()=>this._toggleSorting()),r)])}loadDependencies(){return m({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}destroy(){this._destroyBaseSortable(),this._destroyReferenceSortable(),this._tooltipReferenceMap.clear()}get basemapTitle(){return this.viewModel.basemapTitle}set basemapTitle(e){this.viewModel.basemapTitle=e}get baseListItemCreatedFunction(){return this.viewModel.baseListItemCreatedFunction}set baseListItemCreatedFunction(e){this.viewModel.baseListItemCreatedFunction=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get referenceListItemCreatedFunction(){return this.viewModel.referenceListItemCreatedFunction}set referenceListItemCreatedFunction(e){this.viewModel.referenceListItemCreatedFunction=e}get baseItems(){return this.viewModel.baseItems}get referenceItems(){return this.viewModel.referenceItems}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...j,...e}}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const{state:e}=this.viewModel,t={[B.newUI]:"modern"===this.style,[g.hidden]:"loading"===e,[g.disabled]:"disabled"===e},i=this._renderItemTooltips(),s=this._renderReferenceSection(),n=this._renderBaseSection(),r=s&&n?v("hr",{class:B.horizontalRule}):null,o=[this._renderTitleContainer(),s,r,n];return v("div",{class:this.classes(B.base,g.widget,g.panel,t)},[i,o])}_renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:i}=this;return e?v("calcite-tooltip",{referenceElement:t.get(e.uid)},i.layerIncompatibleTooltip):null}_renderItemTooltipNodes(e){const{incompatible:t,children:i}=e;return[t?this._renderItemTooltip(e):null,...!t&&i?i.toArray().map((e=>this._renderItemTooltipNodes(e))):[]]}_renderItemTooltips(){return this.visibleItems?.toArray().map((e=>this._renderItemTooltipNodes(e)))??[]}_renderEditingInput(){const{messages:e}=this,{basemapTitle:t}=this.viewModel;return v("label",{class:B.editingInput},e.basemapTitle,v("input",{bind:this,class:g.input,title:e.basemapTitle,"aria-label":e.basemapTitle,placeholder:e.basemapTitle,type:"text",role:"textbox",required:!0,pattern:A,value:t??void 0,afterCreate:this._storeEditTitleInput,afterUpdate:this._focusEditElement}))}_renderCancelButton(){const{messagesCommon:e}=this;return v("button",{title:e.cancel,"aria-label":e.cancel,type:"button",bind:this,class:this.classes(g.button,g.buttonTertiary),onclick:this._toggleEditingTitle},e.cancel)}_renderSubmitButton(){const{messagesCommon:e}=this;return v("button",{title:e.form.submit,"aria-label":e.form.submit,type:"submit",bind:this,class:g.button},e.form.ok)}_renderEditingForm(){return v("div",{class:B.editingCard},v("form",{bind:this,onsubmit:this._formSubmit},this._renderEditingInput(),v("div",{class:B.editingActions},this._renderCancelButton(),this._renderSubmitButton())))}_renderBasemapTitle(){const{basemapTitle:e}=this.viewModel;return v(p,{level:this.headingLevel,class:this.classes(g.heading,B.mainHeading)},e)}_renderEditTitleButton(){const{_editingTitle:e,editingEnabled:t,messagesCommon:i}=this;return t&&!e?v("button",{bind:this,class:B.editButton,title:i.edit,"aria-label":i.edit,onclick:this._toggleEditingTitle,afterCreate:this._storeEditTitleButton,afterUpdate:this._focusEditElement,"data-node-ref":"_editButtonNode",type:"button"},v("span",{"aria-hidden":"true",class:this.classes(b.edit,B.editButtonIcon)})):null}_renderTitleContainer(){return v("div",{class:B.titleContainer},this._editingTitle?this._renderEditingForm():this._renderBasemapTitle(),this._renderEditTitleButton())}_renderNoLayersInfo(e,t){return v("div",{key:t,class:B.noItems},e)}_renderList(e,t){const{messages:i}=this,s="reference"===t?this._destroyReferenceSortable:this._destroyBaseSortable;return v("ul",{key:t,"aria-label":i.widgetLabel,role:this.editingEnabled&&e.length?"listbox":void 0,afterCreate:this._sortNodeCreated,afterRemoved:s,"data-node-ref":t,bind:this,class:this.classes(B.list,B.listRoot,B.listIndependent)},e.map((i=>this._renderItem({item:i,parent:null,itemType:t,isOnlyChild:1===e.length}))))}_renderBaseHeader(){return v(p,{key:"base-heading",level:_(this.headingLevel),class:this.classes(g.heading,B.listHeading)},this.messages.baseHeading)}_renderBaseSection(){const{baseItems:e,messages:t,visibleElements:i}=this;if(!i.baseLayers)return null;const s=this._getItems(e),n="base";return[this._renderBaseHeader(),[0===s.length?this._renderNoLayersInfo(t.noBaseLayers,n):null,this._renderList(s,n)]]}_renderReferenceHeader(){return v(p,{key:"reference-heading",level:_(this.headingLevel),class:this.classes(g.heading,B.listHeading)},this.messages.referenceHeading)}_renderReferenceSection(){const{referenceItems:e,messages:t,visibleElements:i}=this;if(!i.referenceLayers)return null;const s=this._getItems(e),n="reference";return[this._renderReferenceHeader(),[0===s.length?this._renderNoLayersInfo(t.noReferenceLayers,n):null,this._renderList(s,n)]]}_renderChildrenToggle(e,t){const{messagesCommon:i}=this,{children:s}=e,n=!!e.error,r=!!s.length&&!n,o={[B.childToggleOpen]:e.open},l=e.open?i.collapse:i.expand;return r?v("span",{onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,"data-item":e,key:"toggle-children",class:this.classes(B.childToggle,o),tabIndex:0,role:"button","aria-controls":t,"aria-label":l,title:l},v("span",{"aria-hidden":"true",class:this.classes(B.childClosed,b.rightTriangleArrow)}),v("span",{"aria-hidden":"true",class:this.classes(B.childOpened,b.downArrow)}),v("span",{"aria-hidden":"true",class:this.classes(B.childClosed_RTL,b.leftTriangleArrow)})):null}_renderItemMessage(e){return e.error?v("div",{key:"esri-basemap-layer-list__error",class:B.message,role:"alert"},v("span",{"aria-hidden":"true",class:b.noticeTriangle}),this.messages.layerError):e.incompatible?v("div",{key:"esri-basemap-layer-list__incompatible",class:B.message,role:"alert"},v("span",{bind:this,tabIndex:0,"aria-hidden":"true",class:b.noticeTriangle,afterCreate:t=>this._setTooltipReference(t,e)}),this.messages.layerIncompatible):null}_renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[B.actionsMenuItemActive]:e.actionsOpen};return v("div",{key:"actions-menu-toggle","data-item":e,bind:this,onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,class:this.classes(B.actionsMenuItem,s),tabIndex:0,role:"button","aria-controls":t,"aria-label":i.options,title:i.options},v("span",{"aria-hidden":"true",class:b.handleHorizontal}))}_renderActionsMenu(e,t,i,s){const{panel:n}=e,r=n&&n.visible?this._renderPanelButton(n):null,o=1===i&&this._getSingleActionButton(t),l=o?this._renderAction({item:e,action:o,singleAction:!0}):null,a=!o&&i?this._renderActionsMenuIcon(e,s):null;return a||r||o?v("div",{key:"actions-menu",class:B.actionsMenu},r,l,a):null}_renderChildList(e,t){const{editingEnabled:i}=this,{visibilityMode:s,children:n}=e,r=this._hasChildren(e),o=!r&&i&&"group"===e.layer?.type,{exclusive:l,inherited:a}=O,d={[B.listEmpty]:!r,[B.listExclusive]:s===l,[B.listInherited]:s===a,[B.listIndependent]:s!==a&&s!==l};return r||o?r?v("ul",{bind:this,key:"list-items",id:t,"data-group":e.uid,"data-item":e,afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,class:this.classes(B.list,d),"aria-expanded":e.open?"true":"false",role:i?"listbox":s===l?"radiogroup":"group",hidden:!e.open||null},n?.map((t=>this._renderItem({item:t,parent:e}))).toArray()):v("div",{bind:this,key:"list-items",id:t,class:B.listEmptyState},this.messages.noItemsToDisplay):null}_renderItemContent(e,t,i){const{id:s}=this,n=`${s}_${e.uid}`,r=`${n}_actions`,o=`${n}__list`,{panel:l}=e,a=this._filterActions(e.actionsSections),d=this._countActions(a);return[v("div",{key:"list-item-container",class:B.itemContainer},this._renderChildrenToggle(e,o),this._renderLabel(e,t,i),this._renderActionsMenu(e,a,d,r)),this._renderItemMessage(e),d?this._renderActionsSections(e,a,r):null,l&&l.open&&!l.disabled?l.render():null,this._renderChildList(e,o)]}_renderItem({item:e,parent:t,itemType:i,isOnlyChild:s}){const{style:n,id:r,editingEnabled:o,selectedItems:l}=this,a=`${`${r}_${e.uid}`}__title`,d=this._hasMessage(e),c=this._hasChildren(e),h={[B.itemChildren]:c,[B.itemMessage]:!!d,[B.itemInvisible]:"modern"===n&&!e.visible,[B.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[B.itemSelectable]:o};if(o){const n={[$]:e.layer?.uid};return v("li",{key:`item-with-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(B.item,h,{[B.itemOnlyChild]:!!s}),"aria-labelledby":a,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,"data-item-type":i,"data-item":e,tabIndex:0,"aria-selected":u(e,l)?"true":"false",role:"option",...n},this._renderItemContent(e,t,a))}return v("li",{key:`item-no-selection-${e.uid}`,bind:this,afterCreate:this._focusListItem,afterUpdate:this._focusListItem,class:this.classes(B.item,h),"aria-labelledby":a},this._renderItemContent(e,t,a))}_renderConnectionIcon(e){const{connectionStatus:t}=e;return null!=t?v("calcite-icon",{icon:"connected"===t?"check-circle":"offline",scale:"s"}):null}_renderItemStatus(e,t){const{visibleElements:i}=this;if(!i.statusIndicators)return null;const{connectionStatus:s,publishing:n,updating:r}=e,o=r&&!t,l=!!s;return v("span",{class:this.classes({[B.statusIndicator]:!0,[B.publishing]:n,[B.updating]:o,[B.connectionStatus]:l,[B.connectionStatusConnected]:l&&"connected"===s}),key:"layer-item-status"},this._renderConnectionIcon(e))}_renderItemTitle(e,t){const{messages:i}=this,s=e.title||i.untitledLayer,n=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return v("span",{key:"layer-title-container",id:t,title:n,"aria-label":n,class:B.title},s)}_renderItemToggleIcon({visible:e},t){const{style:i}=this,{exclusive:s}=O,n=t?.visibilityMode,r="modern"===i,o=n===s,l={[B.toggleVisibleIcon]:r,[B.toggleIcon]:r&&!o,[B.radioIcon]:r&&o,[b.radioChecked]:o&&e,[b.radioUnchecked]:o&&!e,[b.visible]:!o&&e,[b.nonVisible]:!o&&!e};return v("span",{key:"item-toggle-icon",class:this.classes(l),"aria-hidden":"true"})}_renderItemToggle(e,t,i){const{editingEnabled:s,messages:n}=this,{exclusive:r}=O,o=t&&t.visibilityMode,l=o===r?"radio":"switch";return v("span",s?{key:"item-toggle-selection-enabled",class:B.toggleVisible,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":o,tabIndex:0,"aria-checked":e.visible?"true":"false",title:n.layerVisibility,role:l,"aria-labelledby":i}:{key:"item-toggle",class:B.toggleVisible},this._renderItemToggleIcon(e,t))}_renderLabel(e,t,i){const{editingEnabled:s,style:n,messages:r}=this,{inherited:o,exclusive:l}=O,a=t?.visibilityMode,d=a===l?"radio":"switch",c=this._renderItemTitle(e,i),h=this._renderItemStatus(e,t),u=this._renderItemToggle(e,t,i),m="modern"===n?[c,h,u]:[u,c,h],g=v("div",s?{key:`item-label-no-selection-${e.uid}`,class:B.label}:{key:`item-label-with-selection-${e.uid}`,class:B.label,bind:this,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,"data-item":e,"data-parent-visibility":a,tabIndex:0,title:r.layerVisibility,"aria-checked":e.visible?"true":"false",role:d,"aria-labelledby":i},m);return a===o||e.error?v("div",{key:`item-label-container-${e.uid}`,class:B.label},this._renderItemTitle(e,i),this._renderItemStatus(e,t)):g}_renderPanelButton(e){const{className:t,open:i,title:s,image:n,disabled:r}=e,o=n||t?t:b.defaultAction,l=this._getIconImageStyles(e),a={[B.actionsMenuItemActive]:i&&!r},d={[B.actionImage]:!!l["background-image"],[g.disabledElement]:e.disabled};return o&&(d[o]=!!o),v("div",{"aria-disabled":e.disabled.toString(),key:`panel-${e.uid}`,bind:this,"data-panel":e,onclick:this._triggerPanel,onkeydown:this._triggerPanel,class:this.classes(B.actionsMenuItem,a),role:"button",tabIndex:e.disabled?void 0:0,title:s,"aria-label":s},v("span",{class:this.classes(d),styles:l}))}_renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>v("ul",{key:`${e}-action-section-${i}`,class:B.actionsList},this._renderActionSection(e,t))));return v("div",{role:"group","aria-expanded":e.actionsOpen?"true":"false",key:"actions-section",id:i,class:B.actions,hidden:!e.actionsOpen||null},s)}_renderActionSection(e,t){return(t&&t.toArray()).map((t=>this._renderAction({item:e,action:t})))}_renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),n="button"!==e.type||e.image||i?i:b.defaultAction,r={[B.actionImage]:!t&&!!s["background-image"],[b.loadingIndicator]:t,[g.rotating]:t};return n&&!t&&(r[n]=!0),v("span",{key:"action-icon","aria-hidden":"true",class:this.classes(B.actionIcon,r),styles:s})}_renderActionTitle(e,t){return t?null:v("span",{key:"action-title",class:B.actionTitle},e)}_renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:n,disabled:r,title:o}=i,l={[B.actionsMenuItem]:s&&"button"===i.type,[B.action]:n||!s&&"toggle"!==i.type,[B.actionToggle]:!n&&"toggle"===i.type,[B.actionToggleOn]:!n&&"toggle"===i.type&&i.value,[g.disabledElement]:r},a=[this._renderActionIcon(i),this._renderActionTitle(o,s)];return s?v("div",{bind:this,"data-item":t,"data-action":i,role:"button",key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabIndex:0,title:o??void 0,"aria-label":o},a):v("li",{bind:this,"data-item":t,"data-action":i,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,classes:l,tabIndex:0,role:"button",title:o??void 0,"aria-label":o},a)}_setVisibleItems(){const{referenceItems:e,baseItems:t,visibleElements:i}=this,s=e.concat(t);this.visibleItems=s?.filter((e=>!e.hidden&&(i.errors||!e.error)))}_setTooltipReference(e,t){this._tooltipReferenceMap.set(t.uid,e),this.scheduleRender()}_hasMessage(e){return!!e.error||e.incompatible}_hasChildren(e){return!!e.children.length&&!this._hasMessage(e)}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_destroyReferenceSortable(){const{_sortableReferenceLayers:e}=this;e?.el&&e.destroy(),this._sortableReferenceLayersNode=null}_destroyBaseSortable(){const{_sortableBaseLayers:e}=this;e?.el&&e.destroy(),this._sortableBaseLayersNode=null}_toggleEditingTitle(){const{_editingTitle:e}=this,t=!e;this._editingTitle=t,this._focusOnElement=t?"edit-input":"edit-button",this.scheduleRender()}_storeEditTitleInput(e){this._editTitleInput=e,this._focusEditElement()}_focusEditElement(){this._editTitleInput&&"edit-input"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleInput.focus()),this._editTitleButton&&"edit-button"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleButton.focus())}_storeEditTitleButton(e){this._editTitleButton=e,this._focusEditElement()}_formSubmit(e){e.preventDefault();const t=this._editTitleInput?.value;t?.trim()&&(this.basemapTitle=t),this._toggleEditingTitle()}_itemMovedList(e){const t=H(e.item);if(!t)return;const i=e.to.dataset.nodeRef,s=e.from.dataset.nodeRef,n=e.newIndex;this.viewModel.transferListItem({listItem:t,from:s,to:i,newIndex:n})}_toggleSortingBaseLayers(){const{_sortableBaseLayers:e,_sortableBaseLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=C.create(t,{dataIdAttr:$,group:S,filter:`.${B.itemOnlyChild}`,fallbackTolerance:4,disabled:s,onSort:()=>this._sortLayersToItems({type:"base",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:B.sortableChosen});this._sortableBaseLayers=e}}_toggleSortingReferenceLayers(){const{_sortableReferenceLayers:e,_sortableReferenceLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=C.create(t,{dataIdAttr:$,group:S,disabled:s,fallbackTolerance:4,onSort:()=>this._sortLayersToItems({type:"reference",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:B.sortableChosen});this._sortableReferenceLayers=e}}_toggleSorting(){this._toggleSortingBaseLayers(),this._toggleSortingReferenceLayers()}_sortNodeCreated(e){const t=e.getAttribute("data-node-ref");"base"===t&&(this._sortableBaseLayersNode=e),"reference"===t&&(this._sortableReferenceLayersNode=e),this._toggleSorting()}_getItems(e){return e.toArray().filter((e=>!e.hidden&&(this.visibleElements.errors||!e.error)))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).at(0)}_sortLayersToItems({type:e,itemIds:t}){const i="base"===e?this.view?.map?.basemap?.baseLayers:"reference"===e?this.view?.map?.basemap?.referenceLayers:null;i&&i.sort(((e,i)=>{const s=t.indexOf(e.uid),n=t.indexOf(i.uid);return s>n?-1:s<n?1:0}))}_focusListItem(e){const{_focusSortUid:t}=this;if(!e||!t)return;const i=H(e);i?.layer?.uid===t&&(e.focus(),this._focusSortUid=null)}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(!t.includes(s))return void this._toggleSelection(e);e.stopPropagation();const n=e.currentTarget,r=H(n),o=n.dataset.itemType,{_sortableBaseLayers:l,_sortableReferenceLayers:a,selectedItems:d}=this,c="base"===o?l:"reference"===o?a:null;if(!c||!r)return;const h=u(r,d),m=c.toArray(),g=e.target,p=m.indexOf(g.dataset[E]),{baseItems:_,referenceItems:b}=this.viewModel;if(-1!==p){if("ArrowDown"===s){const e=p+1,t=e>=m.length;if(t&&"reference"===o&&h){const e=_.length;return this.viewModel.transferListItem({listItem:r,from:"reference",to:"base",newIndex:e}),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if(t&&"reference"===o){const e=_.at(0);return this._focusSortUid=e?.layer?.uid,void this.scheduleRender()}if(t)return;return h&&(L(m,p,e),c.sort(m),this._sortLayersToItems({type:o,itemIds:c.toArray()})),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if("ArrowUp"===s){const e=p-1,t=e<0;if(t&&"base"===o&&h){if(1===_.length)return;const e=0;return this.viewModel.transferListItem({listItem:r,from:"base",to:"reference",newIndex:e}),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if(t&&"base"===o){const e=b.at(-1);return this._focusSortUid=e?.layer?.uid,void this.scheduleRender()}if(t)return;h&&(L(m,p,e),c.sort(m),this._sortLayersToItems({type:o,itemIds:c.toArray()})),this._focusSortUid=r.layer?.uid,this.scheduleRender()}}}_watchActionSectionChanges(e,t){this.addHandles(e.on("change",(()=>this.scheduleRender())),t),e.forEach((e=>this._renderOnActionChanges(e,t)))}_renderOnActionChanges(e,t){"toggle"!==e.type?"slider"!==e.type?this.addHandles([s((()=>[e.className,e.image,e.id,e.title,e.visible]),(()=>this.scheduleRender()),r)],t):this.addHandles([s((()=>[e.className,e.id,e.title,e.visible,e.value,e.displayValueEnabled,e.max,e.min,e.step]),(()=>this.scheduleRender()),r)],t):this.addHandles([s((()=>[e.className,e.image,e.id,e.title,e.visible,e.value]),(()=>this.scheduleRender()),r)],t)}_renderOnItemChanges(e,t){this.addHandles([s((()=>[e.actionsOpen,e.visible,e.open,e.updating,e.connectionStatus,e.publishing,e.title,e.visibleAtCurrentScale,e.error,e.visibilityMode,e.panel,e.panel?.title,e.panel?.content,e.panel?.className]),(()=>this.scheduleRender()),r),s((()=>[e.hidden,e.error]),(()=>this._setVisibleItems())),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],t),e.children.forEach((e=>this._renderOnItemChanges(e,t))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e,t)))}_itemsChanged(e,t){this.removeHandles(t),this._tooltipReferenceMap.clear(),this._setVisibleItems(),e.forEach((e=>this._renderOnItemChanges(e,t))),this.scheduleRender()}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="esri.widgets.LayerList.ListItemPanel"===e.declaredClass||"esri.support.Action.ActionButton"===e.declaredClass||"esri.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:""}}_toggleActionsOpen(e){e.stopPropagation();const t=H(e.currentTarget);if(!t)return;const{actionsOpen:i}=t,s=!i,{baseItems:n,referenceItems:r}=this;s&&(n.forEach((e=>x(e))),r.forEach((e=>x(e)))),t.actionsOpen=s}_triggerPanel(e){e.stopPropagation();const t=V(e.currentTarget);t&&!t.disabled&&(t.open=!t.open)}_triggerAction(e){e.stopPropagation();const t=e.currentTarget,i=U(t),s=H(t);s&&i&&("toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s))}_toggleVisibility(e){e.stopPropagation();const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=H(t);s&&(i===O.exclusive&&s.visible||(s.visible=!s.visible))}_toggleChildrenClick(e){e.stopPropagation();const t=H(e.currentTarget);t&&(t.open=!t.open)}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=t&&(e.metaKey||e.ctrlKey),n=H(e.currentTarget);if(!n)return;const r=u(n,i),{length:o}=i;if(!s)return o&&!(r&&1===o)?(i.removeAll(),void i.add(n)):void(r?i.remove(r):i.add(n));r?i.remove(r):i.add(n)}get test(){return{visibleItems:this.visibleItems}}};function U(e){return e["data-action"]}function V(e){return e["data-panel"]}function H(e){return e["data-item"]}e([o()],N.prototype,"visibleItems",void 0),e([o()],N.prototype,"basemapTitle",null),e([o()],N.prototype,"baseListItemCreatedFunction",null),e([o()],N.prototype,"editingEnabled",void 0),e([o()],N.prototype,"headingLevel",void 0),e([o()],N.prototype,"iconClass",void 0),e([o()],N.prototype,"label",null),e([o(),f("esri/widgets/BasemapLayerList/t9n/BasemapLayerList")],N.prototype,"messages",void 0),e([o(),f("esri/t9n/common")],N.prototype,"messagesCommon",void 0),e([o()],N.prototype,"multipleSelectionEnabled",void 0),e([o()],N.prototype,"referenceListItemCreatedFunction",null),e([o({readOnly:!0})],N.prototype,"baseItems",null),e([o({readOnly:!0})],N.prototype,"referenceItems",null),e([o()],N.prototype,"selectedItems",void 0),e([o()],N.prototype,"style",void 0),e([o()],N.prototype,"view",null),e([I("trigger-action"),o({type:c})],N.prototype,"viewModel",void 0),e([o()],N.prototype,"visibleElements",void 0),e([l("visibleElements")],N.prototype,"castVisibleElements",null),e([y()],N.prototype,"_toggleActionsOpen",null),e([y()],N.prototype,"_triggerPanel",null),e([y()],N.prototype,"_triggerAction",null),e([y()],N.prototype,"_toggleVisibility",null),e([y()],N.prototype,"_toggleChildrenClick",null),e([y()],N.prototype,"_toggleSelection",null),N=e([a("esri.widgets.BasemapLayerList")],N);const P=N;export{P as default};
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Collection.js";import{eventKey as i}from"../core/events.js";import{watch as s,on as n,initial as r}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import{cast as l}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as a}from"../core/accessorSupport/decorators/subclass.js";import d from"./Widget.js";import c from"./BasemapLayerList/BasemapLayerListViewModel.js";import h from"./LayerList/ListItem.js";import{findSelectedItem as u}from"./LayerList/support/layerListUtils.js";import{loadCalciteComponents as m}from"./support/componentsUtils.js";import{globalCss as g}from"./support/globalCss.js";import{Heading as p,incrementHeadingLevel as _}from"./support/Heading.js";import{legacyIcon as b}from"./support/legacyIcon.js";import{accessibleHandler as y}from"./support/decorators/accessibleHandler.js";import{messageBundle as f}from"./support/decorators/messageBundle.js";import{vmEvent as I}from"./support/decorators/vmEvent.js";import{tsx as v}from"./support/jsxFactory.js";import"./support/widgetUtils.js";import C from"sortablejs";const T=t.ofType(h);function L(e,t,i){e.splice(i,0,e.splice(t,1)[0])}const A=".*\\S+.*",S="root-layers",$="data-layer-uid",E="layerUid",w="esri-basemap-layer-list",k=`${w}__item`,M=`${w}__list`,B={base:w,widgetIcon:b.layers,newUI:`${w}--new-ui`,titleContainer:`${w}__title-container`,mainHeading:`${w}__main-heading`,editingCard:`${w}__editing-card`,editingInput:`${w}__editing-input`,editingActions:`${w}__editing-actions`,editButton:`${w}__edit-button`,editButtonIcon:`${w}__edit-button-icon`,submitButton:`${w}__submit-button`,cancelButton:`${w}__cancel-button`,noItems:`${w}__no-items`,horizontalRule:`${w}__hr`,list:M,listHeading:`${M}-heading`,listRoot:`${M}--root`,listExclusive:`${M}--exclusive`,listEmpty:`${w}__list--empty`,listEmptyState:`${w}__list-empty-state`,listInherited:`${M}--inherited`,listIndependent:`${M}--independent`,item:k,itemOnlyChild:`${k}--only-child`,itemContent:`${k}-content`,itemMessage:`${k}--has-message`,itemInvisible:`${k}--invisible`,itemInvisibleAtScale:`${k}--invisible-at-scale`,itemChildren:`${k}--has-children`,itemSelectable:`${k}--selectable`,itemContainer:`${k}-container`,actionsMenu:`${k}-actions-menu`,actionsMenuItem:`${k}-actions-menu-item`,actionsMenuItemActive:`${k}-actions-menu-item--active`,actions:`${k}-actions`,actionsList:`${k}-actions-list`,action:`${k}-action`,actionIcon:`${k}-action-icon`,actionImage:`${k}-action-image`,actionTitle:`${k}-action-title`,actionToggle:`${w}__action-toggle`,actionToggleOn:`${w}__action-toggle--on`,label:`${k}-label`,message:`${k}-message`,title:`${k}-title`,statusIndicator:`${w}__status-indicator`,publishing:`${w}__publishing`,updating:`${w}__updating`,connectionStatus:`${w}__connection-status`,connectionStatusConnected:`${w}__connection-status--connected`,toggleVisible:`${k}-toggle`,toggleVisibleIcon:`${k}-toggle-icon`,toggleIcon:`${k}-toggle-icon`,radioIcon:`${k}-radio-icon`,childToggle:`${w}__child-toggle`,childToggleOpen:`${w}__child-toggle--open`,childOpened:`${w}__child-toggle-icon--opened`,childClosed:`${w}__child-toggle-icon--closed`,childClosed_RTL:`${w}__child-toggle-icon--closed-rtl`,sortableChosen:`${w}--chosen`},R={actions:"actions",actionSection:"action-section",baseItems:"base-items",referenceItems:"reference-items"},O={exclusive:"exclusive",inherited:"inherited",independent:"independent"};function x(e){const{actionsOpen:t,children:i}=e;t&&(e.actionsOpen=!1),i.forEach((e=>x(e)))}const j={baseLayers:!0,referenceLayers:!0,statusIndicators:!0,errors:!1};let N=class extends d{constructor(e,t){super(e,t),this._tooltipReferenceMap=new Map,this._editingTitle=!1,this._editTitleInput=null,this._editTitleButton=null,this._focusOnElement=null,this._sortableBaseLayers=null,this._sortableReferenceLayers=null,this._sortableBaseLayersNode=null,this._sortableReferenceLayersNode=null,this._focusSortUid=null,this.visibleItems=null,this.editingEnabled=!1,this.headingLevel=2,this.iconClass=B.widgetIcon,this.messages=null,this.messagesCommon=null,this.multipleSelectionEnabled=!1,this.selectedItems=new T,this.style="classic",this.viewModel=new c,this.visibleElements={...j}}initialize(){const{baseItems:e,referenceItems:t}=this;this._setVisibleItems(),this.addHandles([s((()=>this.visibleElements),(()=>{this._itemsChanged(e,R.baseItems),this._itemsChanged(t,R.referenceItems)})),n((()=>this.baseItems),"change",(()=>{this._itemsChanged(e,R.baseItems)})),n((()=>this.referenceItems),"change",(()=>this._itemsChanged(t,R.referenceItems))),s((()=>this.editingEnabled),(()=>this._toggleSorting()),r)])}loadDependencies(){return m({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip.js")})}destroy(){this._destroyBaseSortable(),this._destroyReferenceSortable(),this._tooltipReferenceMap.clear()}get basemapTitle(){return this.viewModel.basemapTitle}set basemapTitle(e){this.viewModel.basemapTitle=e}get baseListItemCreatedFunction(){return this.viewModel.baseListItemCreatedFunction}set baseListItemCreatedFunction(e){this.viewModel.baseListItemCreatedFunction=e}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get referenceListItemCreatedFunction(){return this.viewModel.referenceListItemCreatedFunction}set referenceListItemCreatedFunction(e){this.viewModel.referenceListItemCreatedFunction=e}get baseItems(){return this.viewModel.baseItems}get referenceItems(){return this.viewModel.referenceItems}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...j,...e}}triggerAction(e,t){return this.viewModel.triggerAction(e,t)}render(){const{state:e}=this.viewModel,t={[B.newUI]:"modern"===this.style,[g.hidden]:"loading"===e,[g.disabled]:"disabled"===e},i=this._renderItemTooltips(),s=this._renderReferenceSection(),n=this._renderBaseSection(),r=s&&n?v("hr",{class:B.horizontalRule}):null,o=[this._renderTitleContainer(),s,r,n];return v("div",{class:this.classes(B.base,g.widget,g.panel,t)},[i,o])}_renderItemTooltip(e){const{_tooltipReferenceMap:t,messages:i}=this;return e?v("calcite-tooltip",{referenceElement:t.get(e.uid)},i.layerIncompatibleTooltip):null}_renderItemTooltipNodes(e){const{incompatible:t,children:i}=e;return[t?this._renderItemTooltip(e):null,...!t&&i?i.toArray().map((e=>this._renderItemTooltipNodes(e))):[]]}_renderItemTooltips(){return this.visibleItems?.toArray().map((e=>this._renderItemTooltipNodes(e)))??[]}_renderEditingInput(){const{messages:e}=this,{basemapTitle:t}=this.viewModel;return v("label",{class:B.editingInput},e.basemapTitle,v("input",{afterCreate:this._storeEditTitleInput,afterUpdate:this._focusEditElement,"aria-label":e.basemapTitle,bind:this,class:g.input,pattern:A,placeholder:e.basemapTitle,required:!0,role:"textbox",title:e.basemapTitle,type:"text",value:t??void 0}))}_renderCancelButton(){const{messagesCommon:e}=this;return v("button",{"aria-label":e.cancel,bind:this,class:this.classes(g.button,g.buttonTertiary),onclick:this._toggleEditingTitle,title:e.cancel,type:"button"},e.cancel)}_renderSubmitButton(){const{messagesCommon:e}=this;return v("button",{"aria-label":e.form.submit,bind:this,class:g.button,title:e.form.submit,type:"submit"},e.form.ok)}_renderEditingForm(){return v("div",{class:B.editingCard},v("form",{bind:this,onsubmit:this._formSubmit},this._renderEditingInput(),v("div",{class:B.editingActions},this._renderCancelButton(),this._renderSubmitButton())))}_renderBasemapTitle(){const{basemapTitle:e}=this.viewModel;return v(p,{class:this.classes(g.heading,B.mainHeading),level:this.headingLevel},e)}_renderEditTitleButton(){const{_editingTitle:e,editingEnabled:t,messagesCommon:i}=this;return t&&!e?v("button",{afterCreate:this._storeEditTitleButton,afterUpdate:this._focusEditElement,"aria-label":i.edit,bind:this,class:B.editButton,"data-node-ref":"_editButtonNode",onclick:this._toggleEditingTitle,title:i.edit,type:"button"},v("span",{"aria-hidden":"true",class:this.classes(b.edit,B.editButtonIcon)})):null}_renderTitleContainer(){return v("div",{class:B.titleContainer},this._editingTitle?this._renderEditingForm():this._renderBasemapTitle(),this._renderEditTitleButton())}_renderNoLayersInfo(e,t){return v("div",{class:B.noItems,key:t},e)}_renderList(e,t){const{messages:i}=this,s="reference"===t?this._destroyReferenceSortable:this._destroyBaseSortable;return v("ul",{afterCreate:this._sortNodeCreated,afterRemoved:s,"aria-label":i.widgetLabel,bind:this,class:this.classes(B.list,B.listRoot,B.listIndependent),"data-node-ref":t,key:t,role:this.editingEnabled&&e.length?"listbox":void 0},e.map((i=>this._renderItem({item:i,parent:null,itemType:t,isOnlyChild:1===e.length}))))}_renderBaseHeader(){return v(p,{class:this.classes(g.heading,B.listHeading),key:"base-heading",level:_(this.headingLevel)},this.messages.baseHeading)}_renderBaseSection(){const{baseItems:e,messages:t,visibleElements:i}=this;if(!i.baseLayers)return null;const s=this._getItems(e),n="base";return[this._renderBaseHeader(),[0===s.length?this._renderNoLayersInfo(t.noBaseLayers,n):null,this._renderList(s,n)]]}_renderReferenceHeader(){return v(p,{class:this.classes(g.heading,B.listHeading),key:"reference-heading",level:_(this.headingLevel)},this.messages.referenceHeading)}_renderReferenceSection(){const{referenceItems:e,messages:t,visibleElements:i}=this;if(!i.referenceLayers)return null;const s=this._getItems(e),n="reference";return[this._renderReferenceHeader(),[0===s.length?this._renderNoLayersInfo(t.noReferenceLayers,n):null,this._renderList(s,n)]]}_renderChildrenToggle(e,t){const{messagesCommon:i}=this,{children:s}=e,n=!!e.error,r=!!s.length&&!n,o={[B.childToggleOpen]:e.open},l=e.open?i.collapse:i.expand;return r?v("span",{"aria-controls":t,"aria-label":l,class:this.classes(B.childToggle,o),"data-item":e,key:"toggle-children",onclick:this._toggleChildrenClick,onkeydown:this._toggleChildrenClick,role:"button",tabIndex:0,title:l},v("span",{"aria-hidden":"true",class:this.classes(B.childClosed,b.rightTriangleArrow)}),v("span",{"aria-hidden":"true",class:this.classes(B.childOpened,b.downArrow)}),v("span",{"aria-hidden":"true",class:this.classes(B.childClosed_RTL,b.leftTriangleArrow)})):null}_renderItemMessage(e){return e.error?v("div",{class:B.message,key:"esri-basemap-layer-list__error",role:"alert"},v("span",{"aria-hidden":"true",class:b.noticeTriangle}),this.messages.layerError):e.incompatible?v("div",{class:B.message,key:"esri-basemap-layer-list__incompatible",role:"alert"},v("span",{afterCreate:t=>this._setTooltipReference(t,e),"aria-hidden":"true",bind:this,class:b.noticeTriangle,tabIndex:0}),this.messages.layerIncompatible):null}_renderActionsMenuIcon(e,t){const{messagesCommon:i}=this,s={[B.actionsMenuItemActive]:e.actionsOpen};return v("div",{"aria-controls":t,"aria-label":i.options,bind:this,class:this.classes(B.actionsMenuItem,s),"data-item":e,key:"actions-menu-toggle",onclick:this._toggleActionsOpen,onkeydown:this._toggleActionsOpen,role:"button",tabIndex:0,title:i.options},v("span",{"aria-hidden":"true",class:b.handleHorizontal}))}_renderActionsMenu(e,t,i,s){const{panel:n}=e,r=n&&n.visible?this._renderPanelButton(n):null,o=1===i&&this._getSingleActionButton(t),l=o?this._renderAction({item:e,action:o,singleAction:!0}):null,a=!o&&i?this._renderActionsMenuIcon(e,s):null;return a||r||o?v("div",{class:B.actionsMenu,key:"actions-menu"},r,l,a):null}_renderChildList(e,t){const{editingEnabled:i}=this,{visibilityMode:s,children:n}=e,r=this._hasChildren(e),o=!r&&i&&"group"===e.layer?.type,{exclusive:l,inherited:a}=O,d={[B.listEmpty]:!r,[B.listExclusive]:s===l,[B.listInherited]:s===a,[B.listIndependent]:s!==a&&s!==l};return r||o?r?v("ul",{afterCreate:this._sortNodeCreated,afterUpdate:this._sortNodeCreated,"aria-expanded":e.open?"true":"false",bind:this,class:this.classes(B.list,d),"data-group":e.uid,"data-item":e,hidden:!e.open||null,id:t,key:"list-items",role:i?"listbox":s===l?"radiogroup":"group"},n?.map((t=>this._renderItem({item:t,parent:e}))).toArray()):v("div",{bind:this,class:B.listEmptyState,id:t,key:"list-items"},this.messages.noItemsToDisplay):null}_renderItemContent(e,t,i){const{id:s}=this,n=`${s}_${e.uid}`,r=`${n}_actions`,o=`${n}__list`,{panel:l}=e,a=this._filterActions(e.actionsSections),d=this._countActions(a);return[v("div",{class:B.itemContainer,key:"list-item-container"},this._renderChildrenToggle(e,o),this._renderLabel(e,t,i),this._renderActionsMenu(e,a,d,r)),this._renderItemMessage(e),d?this._renderActionsSections(e,a,r):null,l&&l.open&&!l.disabled?l.render():null,this._renderChildList(e,o)]}_renderItem({item:e,parent:t,itemType:i,isOnlyChild:s}){const{style:n,id:r,editingEnabled:o,selectedItems:l}=this,a=`${`${r}_${e.uid}`}__title`,d=this._hasMessage(e),c=this._hasChildren(e),h={[B.itemChildren]:c,[B.itemMessage]:!!d,[B.itemInvisible]:"modern"===n&&!e.visible,[B.itemInvisibleAtScale]:!e.visibleAtCurrentScale,[B.itemSelectable]:o};if(o){const n={[$]:e.layer?.uid};return v("li",{afterCreate:this._focusListItem,afterUpdate:this._focusListItem,"aria-labelledby":a,"aria-selected":u(e,l)?"true":"false",bind:this,class:this.classes(B.item,h,{[B.itemOnlyChild]:!!s}),"data-item":e,"data-item-type":i,key:`item-with-selection-${e.uid}`,onclick:this._toggleSelection,onkeydown:this._selectionKeydown,role:"option",tabIndex:0,...n},this._renderItemContent(e,t,a))}return v("li",{afterCreate:this._focusListItem,afterUpdate:this._focusListItem,"aria-labelledby":a,bind:this,class:this.classes(B.item,h),key:`item-no-selection-${e.uid}`},this._renderItemContent(e,t,a))}_renderConnectionIcon(e){const{connectionStatus:t}=e;return null!=t?v("calcite-icon",{icon:"connected"===t?"check-circle":"offline",scale:"s"}):null}_renderItemStatus(e,t){const{visibleElements:i}=this;if(!i.statusIndicators)return null;const{connectionStatus:s,publishing:n,updating:r}=e,o=r&&!t,l=!!s;return v("span",{class:this.classes({[B.statusIndicator]:!0,[B.publishing]:n,[B.updating]:o,[B.connectionStatus]:l,[B.connectionStatusConnected]:l&&"connected"===s}),key:"layer-item-status"},this._renderConnectionIcon(e))}_renderItemTitle(e,t){const{messages:i}=this,s=e.title||i.untitledLayer,n=e.visibleAtCurrentScale?s:`${s} (${i.layerInvisibleAtScale})`;return v("span",{"aria-label":n,class:B.title,id:t,key:"layer-title-container",title:n},s)}_renderItemToggleIcon({visible:e},t){const{style:i}=this,{exclusive:s}=O,n=t?.visibilityMode,r="modern"===i,o=n===s,l={[B.toggleIcon]:r&&!o,[B.radioIcon]:r&&o,[b.radioChecked]:o&&e,[b.radioUnchecked]:o&&!e,[b.visible]:!o&&e,[b.nonVisible]:!o&&!e};return v("span",{"aria-hidden":"true",class:this.classes(l),key:"item-toggle-icon"})}_renderItemToggle(e,t,i){const{editingEnabled:s,messages:n}=this,{exclusive:r}=O,o=t&&t.visibilityMode,l=o===r?"radio":"switch";return v("span",s?{"aria-checked":e.visible?"true":"false","aria-labelledby":i,bind:this,class:B.toggleVisible,"data-item":e,"data-parent-visibility":o,key:"item-toggle-selection-enabled",onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,role:l,tabIndex:0,title:n.layerVisibility}:{class:B.toggleVisible,key:"item-toggle"},this._renderItemToggleIcon(e,t))}_renderLabel(e,t,i){const{editingEnabled:s,style:n,messages:r}=this,{inherited:o,exclusive:l}=O,a=t?.visibilityMode,d=a===l?"radio":"switch",c=this._renderItemTitle(e,i),h=this._renderItemStatus(e,t),u=this._renderItemToggle(e,t,i),m="modern"===n?[c,h,u]:[u,c,h],g=v("div",s?{class:B.label,key:`item-label-no-selection-${e.uid}`}:{"aria-checked":e.visible?"true":"false","aria-labelledby":i,bind:this,class:B.label,"data-item":e,"data-parent-visibility":a,key:`item-label-with-selection-${e.uid}`,onclick:this._toggleVisibility,onkeydown:this._toggleVisibility,role:d,tabIndex:0,title:r.layerVisibility},m);return a===o||e.error?v("div",{class:B.label,key:`item-label-container-${e.uid}`},this._renderItemTitle(e,i),this._renderItemStatus(e,t)):g}_renderPanelButton(e){const{className:t,open:i,title:s,image:n,disabled:r}=e,o=n||t?t:b.defaultAction,l=this._getIconImageStyles(e),a={[B.actionsMenuItemActive]:i&&!r},d={[B.actionImage]:!!l["background-image"],[g.disabledElement]:e.disabled};return o&&(d[o]=!!o),v("div",{"aria-disabled":e.disabled.toString(),"aria-label":s,bind:this,class:this.classes(B.actionsMenuItem,a),"data-panel":e,key:`panel-${e.uid}`,onclick:this._triggerPanel,onkeydown:this._triggerPanel,role:"button",tabIndex:e.disabled?void 0:0,title:s},v("span",{class:this.classes(d),styles:l}))}_renderActionsSections(e,t,i){const s=t.toArray().map(((t,i)=>v("ul",{class:B.actionsList,key:`${e}-action-section-${i}`},this._renderActionSection(e,t))));return v("div",{"aria-expanded":e.actionsOpen?"true":"false",class:B.actions,hidden:!e.actionsOpen||null,id:i,key:"actions-section",role:"group"},s)}_renderActionSection(e,t){return(t&&t.toArray()).map((t=>this._renderAction({item:e,action:t})))}_renderActionIcon(e){const{active:t,className:i}=e,s=this._getIconImageStyles(e),n="button"!==e.type||e.image||i?i:b.defaultAction,r={[B.actionImage]:!t&&!!s["background-image"],[b.loadingIndicator]:t,[g.rotating]:t};return n&&!t&&(r[n]=!0),v("span",{"aria-hidden":"true",class:this.classes(B.actionIcon,r),key:"action-icon",styles:s})}_renderActionTitle(e,t){return t?null:v("span",{class:B.actionTitle,key:"action-title"},e)}_renderAction(e){const{item:t,action:i,singleAction:s}=e,{active:n,disabled:r,title:o}=i,l={[B.actionsMenuItem]:s&&"button"===i.type,[B.action]:n||!s&&"toggle"!==i.type,[B.actionToggle]:!n&&"toggle"===i.type,[B.actionToggleOn]:!n&&"toggle"===i.type&&i.value,[g.disabledElement]:r},a=[this._renderActionIcon(i),this._renderActionTitle(o,s)];return s?v("div",{"aria-label":o,bind:this,classes:l,"data-action":i,"data-item":t,key:`single-action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,role:"button",tabIndex:0,title:o??void 0},a):v("li",{"aria-label":o,bind:this,classes:l,"data-action":i,"data-item":t,key:`action-${i.uid}`,onclick:this._triggerAction,onkeydown:this._triggerAction,role:"button",tabIndex:0,title:o??void 0},a)}_setVisibleItems(){const{referenceItems:e,baseItems:t,visibleElements:i}=this,s=e.concat(t);this.visibleItems=s?.filter((e=>!e.hidden&&(i.errors||!e.error)))}_setTooltipReference(e,t){this._tooltipReferenceMap.set(t.uid,e),this.scheduleRender()}_hasMessage(e){return!!e.error||e.incompatible}_hasChildren(e){return!!e.children.length&&!this._hasMessage(e)}_filterActions(e){return e.map((e=>e.filter((e=>e.visible))))}_destroyReferenceSortable(){const{_sortableReferenceLayers:e}=this;e?.el&&e.destroy(),this._sortableReferenceLayersNode=null}_destroyBaseSortable(){const{_sortableBaseLayers:e}=this;e?.el&&e.destroy(),this._sortableBaseLayersNode=null}_toggleEditingTitle(){const{_editingTitle:e}=this,t=!e;this._editingTitle=t,this._focusOnElement=t?"edit-input":"edit-button",this.scheduleRender()}_storeEditTitleInput(e){this._editTitleInput=e,this._focusEditElement()}_focusEditElement(){this._editTitleInput&&"edit-input"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleInput.focus()),this._editTitleButton&&"edit-button"===this._focusOnElement&&(this._focusOnElement=null,this._editTitleButton.focus())}_storeEditTitleButton(e){this._editTitleButton=e,this._focusEditElement()}_formSubmit(e){e.preventDefault();const t=this._editTitleInput?.value;t?.trim()&&(this.basemapTitle=t),this._toggleEditingTitle()}_itemMovedList(e){const t=V(e.item);if(!t)return;const i=e.to.dataset.nodeRef,s=e.from.dataset.nodeRef,n=e.newIndex;this.viewModel.transferListItem({listItem:t,from:s,to:i,newIndex:n})}_toggleSortingBaseLayers(){const{_sortableBaseLayers:e,_sortableBaseLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=C.create(t,{dataIdAttr:$,group:S,filter:`.${B.itemOnlyChild}`,fallbackTolerance:4,disabled:s,onSort:()=>this._sortLayersToItems({type:"base",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:B.sortableChosen});this._sortableBaseLayers=e}}_toggleSortingReferenceLayers(){const{_sortableReferenceLayers:e,_sortableReferenceLayersNode:t,editingEnabled:i}=this;if(!t)return;const s=!i;if(e)e.option("disabled",s);else{const e=C.create(t,{dataIdAttr:$,group:S,disabled:s,fallbackTolerance:4,onSort:()=>this._sortLayersToItems({type:"reference",itemIds:e.toArray()}),onAdd:e=>this._itemMovedList(e),chosenClass:B.sortableChosen});this._sortableReferenceLayers=e}}_toggleSorting(){this._toggleSortingBaseLayers(),this._toggleSortingReferenceLayers()}_sortNodeCreated(e){const t=e.getAttribute("data-node-ref");"base"===t&&(this._sortableBaseLayersNode=e),"reference"===t&&(this._sortableReferenceLayersNode=e),this._toggleSorting()}_getItems(e){return e.toArray().filter((e=>!e.hidden&&(this.visibleElements.errors||!e.error)))}_getSingleActionButton(e){return e.reduce((e=>e)).filter((e=>e&&"button"===e.type)).at(0)}_sortLayersToItems({type:e,itemIds:t}){const i="base"===e?this.view?.map?.basemap?.baseLayers:"reference"===e?this.view?.map?.basemap?.referenceLayers:null;i&&i.sort(((e,i)=>{const s=t.indexOf(e.uid),n=t.indexOf(i.uid);return s>n?-1:s<n?1:0}))}_focusListItem(e){const{_focusSortUid:t}=this;if(!e||!t)return;const i=V(e);i?.layer?.uid===t&&(e.focus(),this._focusSortUid=null)}_selectionKeydown(e){const t=["ArrowDown","ArrowUp"],s=i(e);if(!t.includes(s))return void this._toggleSelection(e);e.stopPropagation();const n=e.currentTarget,r=V(n),o=n.dataset.itemType,{_sortableBaseLayers:l,_sortableReferenceLayers:a,selectedItems:d}=this,c="base"===o?l:"reference"===o?a:null;if(!c||!r)return;const h=u(r,d),m=c.toArray(),g=e.target,p=m.indexOf(g.dataset[E]),{baseItems:_,referenceItems:b}=this.viewModel;if(-1!==p){if("ArrowDown"===s){const e=p+1,t=e>=m.length;if(t&&"reference"===o&&h){const e=_.length;return this.viewModel.transferListItem({listItem:r,from:"reference",to:"base",newIndex:e}),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if(t&&"reference"===o){const e=_.at(0);return this._focusSortUid=e?.layer?.uid,void this.scheduleRender()}if(t)return;return h&&(L(m,p,e),c.sort(m),this._sortLayersToItems({type:o,itemIds:c.toArray()})),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if("ArrowUp"===s){const e=p-1,t=e<0;if(t&&"base"===o&&h){if(1===_.length)return;const e=0;return this.viewModel.transferListItem({listItem:r,from:"base",to:"reference",newIndex:e}),this._focusSortUid=r.layer?.uid,void this.scheduleRender()}if(t&&"base"===o){const e=b.at(-1);return this._focusSortUid=e?.layer?.uid,void this.scheduleRender()}if(t)return;h&&(L(m,p,e),c.sort(m),this._sortLayersToItems({type:o,itemIds:c.toArray()})),this._focusSortUid=r.layer?.uid,this.scheduleRender()}}}_watchActionSectionChanges(e,t){this.addHandles(e.on("change",(()=>this.scheduleRender())),t),e.forEach((e=>this._renderOnActionChanges(e,t)))}_renderOnActionChanges(e,t){"toggle"!==e.type?"slider"!==e.type?this.addHandles([s((()=>[e.className,e.image,e.id,e.title,e.visible]),(()=>this.scheduleRender()),r)],t):this.addHandles([s((()=>[e.className,e.id,e.title,e.visible,e.value,e.displayValueEnabled,e.max,e.min,e.step]),(()=>this.scheduleRender()),r)],t):this.addHandles([s((()=>[e.className,e.image,e.id,e.title,e.visible,e.value]),(()=>this.scheduleRender()),r)],t)}_renderOnItemChanges(e,t){this.addHandles([s((()=>[e.actionsOpen,e.visible,e.open,e.updating,e.connectionStatus,e.publishing,e.title,e.visibleAtCurrentScale,e.error,e.visibilityMode,e.panel,e.panel?.title,e.panel?.content,e.panel?.className]),(()=>this.scheduleRender()),r),s((()=>[e.hidden,e.error]),(()=>this._setVisibleItems())),e.actionsSections.on("change",(()=>this.scheduleRender())),e.children.on("change",(()=>this.scheduleRender()))],t),e.children.forEach((e=>this._renderOnItemChanges(e,t))),e.actionsSections.forEach((e=>this._watchActionSectionChanges(e,t)))}_itemsChanged(e,t){this.removeHandles(t),this._tooltipReferenceMap.clear(),this._setVisibleItems(),e.forEach((e=>this._renderOnItemChanges(e,t))),this.scheduleRender()}_countActions(e){return e.reduce(((e,t)=>e+t.length),0)}_getIconImageStyles(e){const t="esri.widgets.LayerList.ListItemPanel"===e.declaredClass||"esri.support.Action.ActionButton"===e.declaredClass||"esri.support.Action.ActionToggle"===e.declaredClass?e.image:null;return{"background-image":t?`url("${t}")`:""}}_toggleActionsOpen(e){e.stopPropagation();const t=V(e.currentTarget);if(!t)return;const{actionsOpen:i}=t,s=!i,{baseItems:n,referenceItems:r}=this;s&&(n.forEach((e=>x(e))),r.forEach((e=>x(e)))),t.actionsOpen=s}_triggerPanel(e){e.stopPropagation();const t=H(e.currentTarget);t&&!t.disabled&&(t.open=!t.open)}_triggerAction(e){e.stopPropagation();const t=e.currentTarget,i=U(t),s=V(t);s&&i&&("toggle"===i.type&&(i.value=!i.value),this.triggerAction(i,s))}_toggleVisibility(e){e.stopPropagation();const t=e.currentTarget,i=t.getAttribute("data-parent-visibility"),s=V(t);s&&(i===O.exclusive&&s.visible||(s.visible=!s.visible))}_toggleChildrenClick(e){e.stopPropagation();const t=V(e.currentTarget);t&&(t.open=!t.open)}_toggleSelection(e){e.stopPropagation();const{multipleSelectionEnabled:t,selectedItems:i}=this,s=t&&(e.metaKey||e.ctrlKey),n=V(e.currentTarget);if(!n)return;const r=u(n,i),{length:o}=i;if(!s)return o&&!(r&&1===o)?(i.removeAll(),void i.add(n)):void(r?i.remove(r):i.add(n));r?i.remove(r):i.add(n)}get test(){return{visibleItems:this.visibleItems}}};function U(e){return e["data-action"]}function H(e){return e["data-panel"]}function V(e){return e["data-item"]}e([o()],N.prototype,"visibleItems",void 0),e([o()],N.prototype,"basemapTitle",null),e([o()],N.prototype,"baseListItemCreatedFunction",null),e([o()],N.prototype,"editingEnabled",void 0),e([o()],N.prototype,"headingLevel",void 0),e([o()],N.prototype,"iconClass",void 0),e([o()],N.prototype,"label",null),e([o(),f("esri/widgets/BasemapLayerList/t9n/BasemapLayerList")],N.prototype,"messages",void 0),e([o(),f("esri/t9n/common")],N.prototype,"messagesCommon",void 0),e([o()],N.prototype,"multipleSelectionEnabled",void 0),e([o()],N.prototype,"referenceListItemCreatedFunction",null),e([o({readOnly:!0})],N.prototype,"baseItems",null),e([o({readOnly:!0})],N.prototype,"referenceItems",null),e([o()],N.prototype,"selectedItems",void 0),e([o()],N.prototype,"style",void 0),e([o()],N.prototype,"view",null),e([I("trigger-action"),o({type:c})],N.prototype,"viewModel",void 0),e([o()],N.prototype,"visibleElements",void 0),e([l("visibleElements")],N.prototype,"castVisibleElements",null),e([y()],N.prototype,"_toggleActionsOpen",null),e([y()],N.prototype,"_triggerPanel",null),e([y()],N.prototype,"_triggerAction",null),e([y()],N.prototype,"_toggleVisibility",null),e([y()],N.prototype,"_toggleChildrenClick",null),e([y()],N.prototype,"_toggleSelection",null),N=e([a("esri.widgets.BasemapLayerList")],N);const P=N;export{P as default};
|
package/widgets/BasemapToggle.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import{cast as t}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import{getBasemapThumbnailUrl as i}from"../support/basemapUtils.js";import a from"./Widget.js";import l from"./BasemapToggle/BasemapToggleViewModel.js";import{css as r}from"./BasemapToggle/css.js";import{loadCalciteComponents as n}from"./support/componentsUtils.js";import{globalCss as p}from"./support/globalCss.js";import{accessibleHandler as c}from"./support/decorators/accessibleHandler.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as d}from"./support/jsxFactory.js";import"./support/widgetUtils.js";function g(e){const s=i(e);return s?{backgroundImage:"url("+s+")"}:{backgroundImage:""}}const u={title:!1};let v=class extends a{constructor(e,s){super(e,s),this.messages=null,this.viewModel=new l,this.visibleElements={...u}}loadDependencies(){return n({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")})}get activeBasemap(){return this.viewModel.activeBasemap}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get nextBasemap(){return this.viewModel.nextBasemap}set nextBasemap(e){this.viewModel.nextBasemap=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...u,...e}}toggle(){return this.viewModel.toggle()}render(){const e=this.viewModel,s="disabled"===e.state?null:e.activeBasemap,t="disabled"===e.state?null:e.nextBasemap,o="loading"===e.state,i="incompatible-next-basemap"===e.state,a=t?.title??"",l=t&&"loaded"!==t.loadStatus;let n;const c=this.visibleElements.title&&a,m=i;return(c||m)&&(n=d("div",{class:r.overlay,key:"overlay"},c?d("span",{class:r.title,title:a},a):null,m?d("calcite-scrim",{class:r.overlayScrim,title:this.messages.incompatibleSpatialReference},d("calcite-icon",{icon:"exclamation-mark-triangle"})):null)),d("div",{class:this.classes(r.base,p.widget,i?p.disabled:null),
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import{cast as t}from"../core/accessorSupport/decorators/cast.js";import"../core/arrayUtils.js";import"../core/has.js";import{subclass as o}from"../core/accessorSupport/decorators/subclass.js";import{getBasemapThumbnailUrl as i}from"../support/basemapUtils.js";import a from"./Widget.js";import l from"./BasemapToggle/BasemapToggleViewModel.js";import{css as r}from"./BasemapToggle/css.js";import{loadCalciteComponents as n}from"./support/componentsUtils.js";import{globalCss as p}from"./support/globalCss.js";import{accessibleHandler as c}from"./support/decorators/accessibleHandler.js";import{messageBundle as m}from"./support/decorators/messageBundle.js";import{tsx as d}from"./support/jsxFactory.js";import"./support/widgetUtils.js";function g(e){const s=i(e);return s?{backgroundImage:"url("+s+")"}:{backgroundImage:""}}const u={title:!1};let v=class extends a{constructor(e,s){super(e,s),this.messages=null,this.viewModel=new l,this.visibleElements={...u}}loadDependencies(){return n({icon:()=>import("@esri/calcite-components/dist/components/calcite-icon.js"),scrim:()=>import("@esri/calcite-components/dist/components/calcite-scrim.js")})}get activeBasemap(){return this.viewModel.activeBasemap}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get nextBasemap(){return this.viewModel.nextBasemap}set nextBasemap(e){this.viewModel.nextBasemap=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}castVisibleElements(e){return{...u,...e}}toggle(){return this.viewModel.toggle()}render(){const e=this.viewModel,s="disabled"===e.state?null:e.activeBasemap,t="disabled"===e.state?null:e.nextBasemap,o="loading"===e.state,i="incompatible-next-basemap"===e.state,a=t?.title??"",l=t&&"loaded"!==t.loadStatus;let n;const c=this.visibleElements.title&&a,m=i;return(c||m)&&(n=d("div",{class:r.overlay,key:"overlay"},c?d("span",{class:r.title,title:a},a):null,m?d("calcite-scrim",{class:r.overlayScrim,title:this.messages.incompatibleSpatialReference},d("calcite-icon",{icon:"exclamation-mark-triangle"})):null)),d("div",{bind:this,class:this.classes(r.base,p.widget,i?p.disabled:null),"data-basemap-id":t?t.id:"",onclick:this._toggle,onkeydown:this._toggle,role:"button",tabIndex:i?-1:0,title:this.label},d("div",{class:this.classes(r.container,r.secondaryBasemapImage)},d("div",{class:r.image,styles:g(s)})),d("div",{class:r.container},d("div",{class:this.classes(r.image,l?r.imageLoading:null),styles:g(t)},l||o?d("calcite-scrim",null,d("span",{"aria-hidden":"true",class:p.loaderAnimation,role:"presentation"})):null),n))}_toggle(){this.toggle()}};e([s({readOnly:!0})],v.prototype,"activeBasemap",null),e([s()],v.prototype,"label",null),e([s(),m("esri/widgets/BasemapToggle/t9n/BasemapToggle")],v.prototype,"messages",void 0),e([s()],v.prototype,"nextBasemap",null),e([s()],v.prototype,"view",null),e([s({type:l})],v.prototype,"viewModel",void 0),e([s()],v.prototype,"visibleElements",void 0),e([t("visibleElements")],v.prototype,"castVisibleElements",null),e([c()],v.prototype,"_toggle",null),v=e([o("esri.widgets.BasemapToggle")],v);const b=v;export{b as default};
|