As the JavaScript Maps SDK evolves and transitions from widgets to web components, we are changing how view models, the underlying business logic of the widgets, will be made available in the SDK.
This guide is intended for developers who directly import and use widget view models to build custom workflows outside of the widget or component UI.
For the most commonly used view models, the underlying business logic from the widget/component will still be made available to you in other ways. As the new functionality becomes available, view models will be deprecated, and we will follow semantic versioning; no breaking changes will occur before version 6.0 (Q1 2027). The table below outlines the roadmap for view models.
For more information on the reasoning behind this decision, see Transition plan: widgets to components and the blog Evolution of view models and building custom workflows with the JavaScript Maps SDK.
Business logic remains available in a new location
| View model | Replacement module |
|---|---|
| AreaMeasurement2DViewModel | AreaMeasurementAnalysis |
| AreaMeasurement3DViewModel | AreaMeasurementAnalysis |
| AttributionViewModel | Map attributionItems, Scene attributionItems, Link Chart attributionItems, View.attributionItems |
| BasemapGalleryViewModel | In product plan |
| BatchAttributeFormViewModel | In product plan |
| CoordinateConversionViewModel | In product plan |
| DaylightViewModel | SceneView.environment.lighting |
| DirectionsViewModel | In product plan |
| DirectLineMeasurement3DViewModel | DirectLineMeasurementAnalysis |
| DistanceMeasurement2DViewModel | DistanceMeasurementAnalysis |
| EditorViewModel | In product plan |
| ElevationProfileViewModel | ElevationProfileAnalysis |
| FeaturesViewModel | Features |
| FeatureViewModel | Feature |
| FeatureTemplatesViewModel | In product plan |
| FloorFilterViewModel | In product plan |
| GridControlsViewModel | In product plan |
| LayerListViewModel | In product plan |
| LegendViewModel | In product plan |
| LineOfSightViewModel | LineOfSightAnalysis |
| PopupViewModel | Features |
| PrintViewModel | In product plan |
| SearchViewModel | In product plan |
| ShadowCastViewModel | ShadowCastAnalysis |
| SketchViewModel | In product plan |
| SliceViewModel | SliceAnalysis |
| SwipeViewModel | In product plan |
| UtilityNetworkAssociationsViewModel | UtilityNetworkAssociations |
| UtilityNetworkTraceAnalysisViewModel | UtilityNetworkTraceAnalysis |
| VersionManagementViewModel | VersionManager |
| WeatherViewModel | SceneView.environment |
View model will be publicly removed
The following view models are deprecated and are planned for removal from the SDK as early as version 6.0 (Q1 2027). These view models do not expose unique business logic beyond what the component already provides, and will not have a standalone replacement API.
| View model | Component | Notes |
|---|---|---|
| BasemapLayerListViewModel | Basemap Layer List | |
| BasemapToggleViewModel | Basemap Toggle | |
| BinaryColorSizeSliderViewModel | Slider Binary Color Size | |
| BookmarksViewModel | Bookmarks | |
| BuildingExplorerViewModel | Building Explorer | |
| CatalogLayerListViewModel | Catalog Layer List | |
| ClassedColorSliderViewModel | Slider Classed Color | |
| ClassedSizeSliderViewModel | Slider Classed Size | |
| ColorSizeSliderViewModel | Slider Color Size | |
| ColorSliderViewModel | Slider Color | |
| CompassViewModel | Compass | |
| DirectionalPadViewModel | Directional Pad | |
| ExpandViewModel | Expand | |
| FeatureFormViewModel | Feature Form | |
| FeatureTableViewModel | Feature Table | |
| FullscreenViewModel | Fullscreen | The JavaScript Fullscreen API can also be used directly. |
| HeatmapSliderViewModel | Slider Heatmap | |
| HistogramRangeSliderViewModel | In product plan | |
| HistogramViewModel | Histogram | This component resides in the common-components package. |
| HomeViewModel | Home | |
| LinkChartLayoutSwitcherViewModel | Link Chart Layout Switcher | |
| LocateViewModel | Locate | |
| NavigationToggleViewModel | Navigation Toggle | |
| OpacitySliderViewModel | Slider Opacity | |
| OrientedImageryViewerViewModel | Oriented Imagery Viewer | |
| ScaleBarViewModel | Scale Bar | |
| ScaleRangeSliderViewModel | Scale Range Slider | |
| SizeSliderViewModel | Slider Size | |
| SliderViewModel | Slider | This component resides in the common-components package. |
| SmartMappingPrimaryHandleSliderViewModel | Not Planned | |
| SmartMappingSliderViewModel | Not Planned | |
| SnappingControlsViewModel | Snapping Controls | |
| TableListViewModel | Table List | |
| TimeSliderViewModel | Time Slider | |
| TimeZoneLabelViewModel | Time Zone Label | |
| TrackViewModel | Track | |
| UtilityNetworkTraceViewModel | Utility Network Trace | |
| UtilityNetworkValidateTopologyViewModel | Utility Network Validate Topology | |
| VideoPlayerViewModel | Video Player | |
| ZoomViewModel | Zoom | To access the canZoomIn, canZoomOut, zoomIn(), and zoomOut() functionality, use the corresponding properties and methods on the Map component, Scene component, MapView, or SceneView directly. |
We’d love your feedback
If you have questions, concerns, or workflows that depend on view models, let us know in the ArcGIS Maps SDK for JavaScript community.