Skip to content

February 2026

Improved drawing experience

The drawing system has been overhauled to enhance both new and existing 2D workflows, introducing true curve geometry support and a segment-focused drawing experience.

Segment-based drawing

Users can now switch between drawing tools (line, freehand, and new curve tools) while actively drawing geometry segments on a polyline or polygon. This improvement allows for finer-grained control when digitizing geometries. This is integrated natively into the Sketch and Editor component user interfaces.

Curve support

At this release, we added support for drawing, editing, querying, and snapping with true curve segments. A user will now be able to construct geometries containing curve segments when drawing. New curve tools include Bezier curve, Arc segment, and Endpoint arc segment tools, enabling the construction of Bezier and circular arcs.

Additionally, it is now possible to convert an existing straight-line segment to circular arcs by holding Shift and dragging the midpoint vertex manipulator of the straight-line segment. The new curve drawing tools are integrated natively into the Sketch and Editor components.

Editor snapping and true curve support

Update and create workflows with true curves

Editor now natively supports adding and updating geometries with true curves. For editing workflows, support is dependent on the feature service capabilities. The drawing toolbar will display the segment tools while drawing a polyline or polygon, including the new curve tools.

  • Update: If the feature service supports true curves, Editor fetches and allows modification of curve geometries. If the service does not support updating true curves, then geometry updates will be turned off for the true curve geometries.

  • Create: Regardless of whether the feature service supports true curves or not, Editor will provide the curve drawing tools to construct curve geometries. If the service doesn’t support the drawn curve type, segments are densified upon submission, with a warning provided to the user.

Snapping with true curves

The snapping engine now supports true curves, allowing snapping to any point along a curve segment. Snapping behavior depends on feature service support; unsupported curve types revert to densified geometry snapping.

FeatureTable enhancements

Contingent Attribute Value Constraints

The FeatureTable component and widget now respect contingent attribute value constraints during cell editing, with no additional configuration required. When contingent values are configured in the data, the FeatureTable automatically presents the recommended values while editing. Automatic saving is disabled so that invalid entries are flagged in the UI, giving users a chance to correct them before saving.

Disable auto-save behavior

It is now possible to disable automatic saving while editing in the FeatureTable component and widget. By default, any updates made to individual cell values are saved without needing any manual interaction to save. This behavior is disabled by default for data that contains contingent attribute values. Applications can be configured to disable automatic saving regardless of the dataset being edited. This is handled by setting the autoSaveDisabled to true. The FeatureTable will display a UI to proceed with saving edits.

Improved attachment viewing experience

The default attachment viewing experience in the FeatureTable component and widget has been enhanced to provide richer file details, including name, type, size, and keywords. Image attachments can now be viewed directly within the table and expanded to full-page view without opening a new browser tab. This improvement streamlines review and editing workflows while minimizing context switching.

FeatureTable attachment experience

Syncing selection via SelectionManager (beta)

The SelectionManager (currently in beta), manages feature selection across layers and tables within a MapView or SceneView to help manage feature selection. It can be configured to listen for edits on selectable layers and automatically update selections in response, providing a centralized way to manage selection state within a view.

To support this workflow, new properties were added to the Editor and FeatureTable components and widgets. The syncViewSelection property allows a component to participate in the view’s shared selection state by syncing with the view’s selectionManager. When syncViewSelection is set to true, the component responds to selection changes managed by the view. This enables selections to remain consistent across different parts of an application that rely on the view’s selection state, without requiring direct coordination between individual components. The video below demonstrates this.

Light-emitting symbols and glow

3D scenes now support light-emitting visualization through emissive material properties and a global Glow effect.

Emissive materials make symbols produce light, enabling realistic nighttime scenes as well as visual emphasis and improved legibility. The emissive strength of individual symbols controls how much light they emit and can be used as an additional visual aspect to communicate information.

Any volumetric symbol can be turned into a light-emitting element by using source: "color" — well-suited for highlighting selected features, routes, or categories that should stand out in a scene. For realistic nighttime rendering, set source: "emissive" to display emissive information authored directly into 3D models (such as illuminated signage or windows) so they render naturally.

An optional global glow effect can be enabled to apply a more stylized look across the scene. Without glow, emissive elements display with a bright, natural appearance.

See the Visualizations with light-emitting symbols sample to learn how to use emissive materials and glow to highlight features and build nighttime scenes.

Gaussian splat layer

We are introducing the GaussianSplatLayer, a new 3D layer type that provides photorealistic visualization of complex built and natural environments in a 3D Scene. It delivers high-detail rendering for thin and intricate structures such as powerlines, railings, antennas, and dense vegetation, along with smooth transparency for materials like glass and other semi-translucent surfaces. These enhancements support advanced workflows like inspection, vegetation analysis, and high-fidelity presentation workflows.

GaussianSplatLayer integrates seamlessly with existing 3D and 2D content, enhancing overall scene realism. A multi-resolution level-of-detail system maintains smooth navigation by drawing higher detail only where it matters most. For data preparation, refer to the GaussianSplatLayer documentation. The layer also supports the ESRI_CRS vendor extension for 3D Tiles, ensuring correct visualization of projected datasets in both local and global scenes.

A new sample is available — jump in and experience how simple it is to add and visualize a Gaussian splat layer in a scene.

AI components (beta)

The new AI components (beta) package contains a set of components that enables developers to build agentic mapping web applications. It includes the Assistant component, which provides a chat interface that allows users to interact with a web map and its data using natural language.

This package also includes the following agents that can be registered with the Assistant component:

Read more about how to build agentic web applications in the AI components guide.

Map components

New map components

The following map components were added at this release:

Refactoring web components

The following components in map-components have been updated internally so they no longer wrap widget code in their implementation for this release:

By making components consistent across the SDK, their behavior will also more closely mimic what is expected from a standard web component. We will continue to work on the remaining components in @arcgis/map-components that are currently wrapping widget code in their implementation. See Esri’s move to web components for more information about the widget transition period and future.

Adjust component size

The visualScale property was added to the Compass, Expand, Fullscreen, Home, Locate, Navigation Toggle, Track, and Zoom components to adjust the size of the component.

CSS Variable for focus color

The following CSS variable was added to the Map components package:

Legacy components

The following components were added at this release, but are designated as legacy, which means that they still rely on an underlying widget as part of the migration to native web components. Fully native replacements for these components are in development, and will be released when they reach feature parity. At that point, the legacy component will be deprecated, and development should use the native component.

New analysis-based components

Elevation Profile, and Shadow Cast components have been refactored to utilize the ElevationProfileAnalysis and the ShadowCastAnalysis. Similarly, Volume Measurement (beta) was created as a new component on top of VolumeMeasurementAnalysis. This means the underlying logic of all these components is managed by an analysis object, while the component handles the UI and user interactions. When you connect an analysis-based component to a Map or Scene, it automatically creates an analysis object and adds it to the view.analyses collection. The analysis is then automatically removed when the component is destroyed.

Utility Network Trace Analysis component

Utility Network Trace Analysis component is now available. The Utility Network Trace Analysis component supersedes the Utility Network Trace component and is now the preferred approach for running Utility Network traces. The Utility Network Trace component is deprecated and planned for removal in a future major release.

Volume Measurement component (beta)

The new Volume Measurement component is now available in beta. It provides a declarative way to add volume measurement capabilities to web scenes using Cut & Fill and Stockpile modes. To use the Volume Measurement component, add it to the Scene component:

<arcgis-scene item-id="45f0389d12c44784891ac11342b94dd5">
<arcgis-volume-measurement slot="top-right"></arcgis-volume-measurement>
</arcgis-scene>

Oriented Imagery

  • The Oriented Imagery Viewer component (and widget) interface has been redesigned to deliver a more streamlined and intuitive user experience. Key tools with overlapping or related functionality are now grouped under consolidated parent toggles, reducing visual clutter and providing a cleaner, more organized layout.
  • A new Search Tools group has been introduced to the component, providing three options for accessing imagery from an oriented imagery layer:
    • Explore Images: Performs a best image search based on the user-selected map location.
    • Explore Images 3D: Extends the explore images workflow by incorporating height-based filtering using the feature’s Z values.
    • Display Images: Allows users to select an oriented imagery feature directly on the map or scene to view its associated image.
  • Image caching can now be enabled during directional and sequential navigation, improving overall viewer performance and reducing image load times.
  • Time Info filtering is now supported when querying for images, enabling retrieval based on temporal constraints for more precise and context-aware results.

Attribution updates

Attribution displays pipe (|) separators between items instead of commas and was enhanced to avoid duplication of attribution items.

Default Popup component

The Popup component (beta) can now be used as the default popup for the Map, Scene, and Link Chart components by setting the popup-component-enabled attribute. This enables the popup component to open automatically (instead of the widget) when features are selected in the view component.

<arcgis-map item-id="WEBMAP-ID" popup-component-enabled></arcgis-map>

When the popup component is enabled, the new popupElement property on the Map, Scene, and Link Chart components can be used to reference the default popup component to set properties such as docking options.

const viewElement = document.querySelector("arcgis-map");
await viewElement.viewOnReady();
viewElement.popupElement.dockEnabled = true;
viewElement.popupElement.dockOptions = {
buttonEnabled: false,
breakpoint: false,
position: "top-right",
};

AttachmentsContent refreshed design

When viewing attachments with AttachmentsContent in the Popup component, a refreshed design has been applied to improve usability and accessibility by updating it to use Calcite Design System.

Edit waypoints within Directions component

The Directions component now allows users to fine-tune routes with waypoints in a familiar “drag-and-drop” experience. Waypoints are locations that routes must travel through but do not need to stop at. Selecting the Edit route button now allows you to add, move, and remove waypoints. To add a new waypoint, first hover the cursor over the route and select the desired point. Then select and drag the point to move and place the waypoint.

drag-and-drop

Printing UI updates and dynamic legend items

We enhanced printing to deliver a better user experience with several new capabilities. First, the Print component now allows users to choose scalebar units directly in the UI. We also added a configurable property that automatically populates the Author field when the user is signed in to a portal. Finally, we added support for Dynamic legend items, which requires a minimum of an 11.4 print service. When enabled, only currently visible features appear in the printed legend. When disabled, all features appear in the printed legend. Because ArcGIS print services have dynamic‑legend enabled by default for all layout templates, this option lets users turn it off for templates that support it, which will print all features in the legend, whether visible or not. See the image below for an example.

Dynamic legend enabledDynamic legend disabled
dynamic-enabledynamic-disable

BuildingFilter with BuildingSceneLayer

As of this release, the Building Explorer component no longer wraps the Building Explorer widget. As a result, the associated BuildingExplorerViewModel, along with its subclasses BuildingLevel and BuildingPhase, have been deprecated. The component’s public API has been enhanced with two new events, arcgisBuildingLevelChange and arcgisBuildingPhaseChange, which are emitted when the selected building level or construction phase changes.

Filtering features is an essential capability in BIM-related workflows. The BuildingSceneLayer supports attribute-based filtering through the BuildingFilter class, which defines the expressions and visual modes that are added to the BuildingSceneLayer#filters to show or hide specific features. Filtering is based on modelNames that are common to all BuildingSceneLayer. To filter a layer by level or construction phase, use bldgLevel, createdPhase, and demolishedPhase as the corresponding modelNames in #filterExpression.

Explore this new sample to see BuildingFilter in use.

Charts components

Class break support for heat charts

Class breaks can now be defined for heat charts to visualize data in distinct ranges. Use heatRulesType from the heat chart model to switch between renderer and gradient legend types.

  • When using class breaks, an extra null value marker is added to represent the empty cells.
  • Customization can be done via the chartRenderer property from the heat chart model.

Common components

The new Common components package contains a set of shared UI components used by some of the higher-level components in the JavaScript Maps SDK. It includes the Slider, Histogram, and Ticks components.

ArcGIS Maps SDK common components

CDN specific changes

Single script tag for CDN users

As of 5.0, the main CDN entry point at https://js.arcgis.com/5.0/ is module-based and includes core, map-components, charts-components, coding-components, ai-components, common-components, and calcite-components.

Thus, only a single script tag is needed in CDN-based apps.

<!-- Load the ArcGIS Maps SDK for JavaScript from CDN -->
<script type="module" src="https://js.arcgis.com/5.0/"></script>

Prior to 5.0, you might have used multiple script tags like:

<!-- Load Calcite components from CDN -->
<script type="module" src="https://js.arcgis.com/calcite-components/3.3.3/calcite.esm.js"></script>
<!-- Load the ArcGIS Maps SDK for JavaScript from CDN -->
<script src="https://js.arcgis.com/4.34/"></script>
<!-- Load Map components from CDN -->
<script type="module" src="https://js.arcgis.com/4.34/map-components/"></script>

If you still want to use the old behavior to access only the core API, use https://js.arcgis.com/5.0/core.js.

Patch versions on CDN

As of 5.0, we provide CDN versions for specific patches in MAJOR.MINOR.PATCH format, for example https://js.arcgis.com/5.0.0/. This URL will also be used as the default assetsPath for ⁠CDN-hosted assets when working with npm and local builds. The MAJOR.MINOR syntax for 5+ is an alias to the latest patch. Use this syntax if you always want the latest CDN version, even though it might impact your application in unintended ways.

TypeScript import changes

The __esri namespace is no longer supported for importing types and will be removed at 6.0. Use individual ESM imports to directly import types from their respective module files instead.

See example below:

import type Geometry from "@arcgis/core/geometry/Geometry";
import type FeatureLayer from "@arcgis/core/layers/FeatureLayer";
let geometry: __esri.Geometry;
const layer = arcgisMapView.map?.allLayers.find((l) => l.id === layerId) as __esri.FeatureLayer;
let geometry: Geometry;
const layer = arcgisMapView.map?.allLayers.find((l) => l.id === layerId) as FeatureLayer;

Codemod to refactor types

A codemod has been provided that automatically refactors existing __esri usages to the recommended ESM imports. Please refer to the documentation.

Auto-reposition polygon labels

We enhanced polygon labeling by enhancing how labels are automatically repositioned when a polygon’s centroid is partially or fully out of view. This results in more labels appearing fully visible, and even partial labels can now be placed in areas where labels previously could not be shown. In the image below, compare the county labels when zoomed-in close in Alaska. Most of the county areas are outside the view of the map, but now more labels can display.

4.345.0
ak-counties-434ak-counties-50

Improved Transparent Ground Rendering

We improved the rendering of transparent terrain for the Google Photorealistic 3D Basemap and the new label and icon visibility modes. All transparent data, including terrain, is now rendered with the same order-independent transparency algorithm. This algorithm produces a close approximation of the physically correct visualization.

Icons and labels behind transparent geometries now behave in the same way, no matter if they are behind terrain or other data. For example, in mountainous areas it becomes easier to understand the spatial relationship of hills, valleys, and 3D data on the ground.

The Google integrated mesh ground layer can also be visualized with partial opacity, and is also drawn with order-independent transparency.

New ShadowCastAnalysis

Shadow cast is now available as an analysis object, replacing the deprecated programmatic ShadowCastViewModel pattern and aligning with the SDK’s analysis framework.

The analysis supports three visualization modes, as well as measuring shadow duration at the cursor location via view.whenAnalysisView() and getDurationAtScreen(). You can use the analysis and build custom panels, workflows, controls, and integrations while following the same analysis lifecycle as other analysis types.

Explore it in the Shadow Cast analysis object sample.

Migration notes

  • The widget’s visualizationType maps to mode:
    • thresholdmin-duration
    • durationtotal-duration
    • discretediscrete
  • Mode-specific settings are now grouped under:
    • minDurationOptions, totalDurationOptions, and discreteOptions
  • The corresponding Shadow Cast component provides a user interface to the analysis.

Improved occlusion handling for 3D labels and icons

This release introduces enhanced control over the visibility of labels and icons in 3D scenes with the new occludedVisibility property. Previously, labels and icons would disappear when hidden by buildings or terrain, causing users to lose context during navigation. Labels and icons now remain recognizable even when partially or fully occluded, providing better context, orientation, and spatial awareness.

When using either the adaptive or visible mode, occluded parts are rendered semi-opaque during navigation to provide depth cues, while labels become fully opaque when the view is idle for optimal readability. The new occludedVisibility property is available for both IconSymbol3DLayer and TextSymbol3DLayer, supporting three modes:

  • Adaptive (default): Labels and icons that are behind other objects can still be rendered depending on how far behind an object they are. This automatically provides a good balance between depth cues, readability, and reduced distractions while navigating the scene. This mode is used in the 3D Basemaps.
  • Visible: Labels and icons behind other objects are always rendered.
  • Hidden: Labels and icons behind other objects are not rendered. This matches behavior of previous versions of the SDK.

Try out the new occlusion handling in the Basemap Gallery sample, featuring New York with the Topographic 3D Basemap, and experience adaptive labels and icons as you navigate the city. Additionally, explore the extended Point styles for cities sample, now showcasing all three occludedVisibility modes, to see how each setting affects label and icon visibility in the scene.

VolumeMeasurementAnalysis enhancements

VolumeMeasurementAnalysis was introduced as beta in 4.34, allowing you to interactively measure and visualize ground surface volumes in 3D web scenes using Cut & Fill and Stockpile measurements.

With this release, we improved the consistency of the measurement experience and updated the API.

Notable improvements

  • Improved the heuristics for accuracy estimation
  • Added supporting area and perimeter measurements to the input polygon
  • Added support for self-intersecting polygons
  • Improved label placement

Explore it in the Volume measurement analysis object sample.

ElevationProfileAnalysis out of beta

ElevationProfileAnalysis supports creating custom elevation profile workflows and was introduced as beta in version 4.34. It enables generating profiles from a drawn line or from an existing feature in the view using the new setGeometryFromFeature() method. As of this release, the API is considered complete and stable.

Explore it in the Elevation Profile Analysis sample.

Google Photorealistic 3D basemaps (beta)

The new Google Photorealistic 3D basemaps provide a three-dimensional mesh textured with high-resolution imagery. See 3D Basemaps for more information. In support of the new Photorealistic 3D basemaps, various related enhancements and fixes have been made to the SDK, including performance improvements for 3D Tiles integrated meshes and improved rendering of transparent ground.

Google Photorealistic 3D Basemap

FlowRenderer - continuous flow in 2D

The FlowRenderer now supports continuous flow in 2D, resulting in a smoother experience when zooming, panning, or changing the time extent.

Graphic’s origin

The Graphic.origin property is now populated when working with various layer types, providing contextual information about where a graphic originates from. For example, graphic’s origin is populated for graphics returned from MapView.hitTest or queryFeatures() on a layer or layer view instance. Use the Graphic.origin property in place of the removed Graphic.layer property.

Feature reduction field formatting

You can now use field configurations with both FeatureReductionBinning and FeatureReductionCluster on service-backed FeatureLayers. Incremental support for field configurations will be introduced in upcoming releases, enhancing areas of the SDK that involve working with field information.

Basemap sessions

Added a new basemap session API to support the session usage model for basemap styles, providing more control over how basemap requests are authenticated in applications. This is only supported for Location Platform.

import config from "@arcgis/core/config";
config.apiKey = "YOUR_API_KEY";
config.sessions = {
basemap: {
enabled: true,
styleFamily: "arcgis", // only access styles in the "arcgis" family
autoRefresh: true, // automatically generate new token at end of duration
duration: 3600, // session lasts 1 hour
},
};

The sql utility functions

Added sqlBooleanLiteral, sqlNumericLiteral, sqlStringLiteral, sqlDateLiteral, sqlTimeLiteral, and sqlTimestampLiteral for safely creating SQL expressions from JavaScript values. Typed values are converted as needed; untyped timestamps are passed through. For unknown types, use sqlLiteral.

Documentation improvements

Mapping application layouts

A new guide page Mapping application layouts introduces recommended patterns for structuring web mapping applications. The guide covers layout responsibilities and best practices for building scalable applications using the Calcite Design System and JavaScript Maps SDK. Three new layout-focused samples are now available under layout applications.

Get started with @arcgis/create

The Get started guide has been updated with guidance on creating an app with npm using the @arcgis/create CLI tool and starter templates from Esri/jsapi-resources. Now, you can create a ready-to-use application with one simple command:

npx @arcgis/create -n my-arcgis-app -t vite

For the full walkthrough and more template options, see Create an app with npm and Use @arcgis/create. Template sources are in jsapi-resources/templates.

Sample updates

The majority of the samples have been updated to use components to reflect the recommended usage patterns and best practices. The samples have been refreshed with a new search experience and UI design, allowing you to view the description, sample code, and live sample within the same page. This update also provides a better experience for users on mobile devices.

Improved types

With the TypeScript import changes, the TypeScript definitions now include type parameters, providing stronger type checking and an improved developer experience. This update provides more detailed and accurate information about types, parameters, and return values. Due to the improved types, some existing code may require adjustments to comply with the updated type definitions. See the added types in the SDK changes for more details.

Documentation for previous versions

Starting with version 4.34, we plan to make previous versions of the documentation easily available for supported versions of the SDK. These will be hosted on our website, allowing you to access the specific documentation you need for your project instead of having to download the SDK locally.

Map components changes

Charts components changes

Coding components changes

Core API changes

Breaking changes

Core API breaking changes

  • Setting locale with dojoConfig.locale is no longer supported. See the Localization guide for more information on how to set the locale in your JavaScript Maps SDK applications.
  • The following named easing presets on GoToOptions3D presets were deprecated at 4.33 and have now been removed: in-cubic, out-cubic, in-out-cubic, in-expo, out-expo, in-out-expo, and in-out-coast-quad. Please use a supported EasingName instead.
  • The IPSInfo.SmoothingProperties are no longer enabled by default. To enable smoothing, set the enabled property to true.
  • Attribution is no longer in the DefaultUI and is now a part of the View. To control the visibility of the attribution, use the attributionVisible property on the Map, Scene, Link Chart, and View.
  • The attributionText property on the Attribution widget is no longer accessible. To access the attribution text, use the attributionItems property on the Map, Scene, Link Chart, and View, which contains an array of attribution items with their respective text and score.
  • The SceneLayer.convertMesh now returns an object containing the converted mesh and optional georeferenceInfo. It no longer returns a Mesh directly.
  • The projectOperator may apply a linear Z unit conversion for projecting geometries with Z values (when needed and supported).

The following classes, methods, properties and events were previously deprecated and have now been removed from the API:

Class/Property/Method/EventAlternate optionVersion deprecated
esri/geometryUse GeometryUnion or import geometry classes directly, for example esri/geometry/Point.4.32
esri/geometry#Extentesri/geometry/Extent4.32
esri/geometry#Geometryesri/geometry/Geometry4.32
esri/geometry#Multipointesri/geometry/Multipoint4.32
esri/geometry#Pointesri/geometry/Point4.32
esri/geometry#Polygonesri/geometry/Polygon4.32
esri/geometry#Polylineesri/geometry/Polyline4.32
esri/geometry#SpatialReferenceesri/geometry/SpatialReference4.32
esri/geometry/geometryEngineAsyncgeometry operators4.32
esri/geometry/projection@arcgis/core/geometry/operators/projectOperator4.32
esri/geometry/support/GeographicTransformation@arcgis/core/geometry/operators/support/GeographicTransformation4.32
esri/geometry/support/GeographicTransformationStep@arcgis/core/geometry/operator/support/GeographicTransformationStep4.32
esri/layers/ImageryLayer.fetchImageImageryLayer.fetchPixels4.33
esri/pointCloudRenderersUse PointCloudRendererUnion or import classes directly, for example esri/renderers/PointCloudStretchRenderer.4.32
esri/pointCloudRenderers#PointCloudClassBreaksRendereresri/renderers/PointCloudClassBreaksRenderer4.32
esri/pointCloudRenderers#PointCloudRGBRendereresri/renderers/PointCloudRGBRenderer4.32
esri/pointCloudRenderers#PointCloudStretchRendereresri/renderers/PointCloudStretchRenderer4.32
esri/pointCloudRenderers#PointCloudUniqueValueRendereresri/renderers/PointCloudUniqueValueRenderer4.32
esri/rasterRenderersUse RasterRendererUnion or import classes directly, for example esri/renderers/RasterStretchRenderer.4.32
esri/rasterRenderers#ClassBreaksRendereresri/renderers/ClassBreaksRenderer4.32
esri/rasterRenderers#FlowRendereresri/renderers/FlowRenderer4.32
esri/rasterRenderers#RasterColormapRendereresri/renderers/RasterColormapRenderer4.32
esri/rasterRenderers#RasterShadedReliefRendereresri/renderers/RasterShadedReliefRenderer4.32
esri/rasterRenderers#RasterStretchRendereresri/renderers/RasterStretchRenderer4.32
esri/rasterRenderers#UniqueValueRendereresri/renderers/UniqueValueRenderer4.32
esri/rasterRenderers#VectorFieldRendereresri/renderers/VectorFieldRenderer4.32
esri/renderersUse RendererUnion or import classes directly, for example esri/renderers/DotDensityRenderer.4.32
esri/renderers#ClassBreaksRendereresri/renderers/ClassBreaksRenderer4.32
esri/renderers#DictionaryRendereresri/renderers/DictionaryRenderer4.32
esri/renderers#DotDensityRendereresri/renderers/DotDensityRenderer4.32
esri/renderers#HeatmapRendereresri/renderers/HeatmapRenderer4.32
esri/renderers#PieChartRendereresri/renderers/PieChartRenderer4.32
esri/renderers#RendererWithVisualVariablesUse RendererWithVisualVariablesUnion from esri/unionTypes.4.32
esri/renderers#SimpleRendereresri/renderers/SimpleRenderer4.32
esri/renderers#UniqueValueRendereresri/renderers/UniqueValueRenderer4.32
esri/views/View2D#highlightOptionsesri/views/View2D#highlights4.32
esri/views/SceneView#highlightOptionsesri/views/SceneView#highlights4.32
esri/widgets/FeatureTable#clearSelectionFilterfilterBySelectionEnabled or objectIds4.30
esri/widgets/FeatureTable#filterBySelectionfilterBySelectionEnabled or objectIds4.30
GeographicParameters.geographicUse the mesh vertexSpace together with the spatial reference to control global versus local operations.4.30
meshUtils.georeference()meshUtils.convertVertexSpace4.30
meshUtils.ungeoreference()meshUtils.convertVertexSpace4.30
Navigation.mouseWheelZoomEnabledSet Navigation.actionMap.mouseWheel to control mouse-wheel behavior.4.32
Polygon.isSelfIntersectingUse simplifyOperator.isSimple to validate polygon geometry.4.33
WebStyleSymbol.fetchCIMSymbol()WebStyleSymbol.fetchSymbol()4.33
ConvertMeshOptions.locationConvertMeshOptions.origin4.34

Map components breaking changes

  • State property changes no longer reflect to DOM attributes. As a result, any CSS or JavaScript that depended on observing state via reflected attributes (for example, attribute selectors, getAttribute, or mutation observers) will no longer work and should be updated to rely on property values or other supported APIs.
  • The Time Zone Label component is no longer expandable by default. To keep the previous behavior, add Time Zone Label to an Expand component explicitly.
  • The expandDirection and expanded properties have been removed from Time Zone Label since it no longer manages its own Expand behavior.
  • The Time Zone Label component no longer displays a time-zone calcite icon by default. To display an icon, set its actionIcon property to any Calcite icon.

The following components, methods, properties and events have been removed from the API:

Component/Property/Method/EventAlternate optionVersion deprecated
arcgis-placement componentUse the slot attribute directly on a component or element instead.4.34
position attributeUse slot instead.4.34
arcgis-map#highlightOptionsUse arcgis-map#highlights4.32
arcgis-scene#highlightOptionsUse arcgis-scene#highlights4.32
hideFlow property on BasemapLayerList, Bookmarks, CatalogLayerList, Editor, Features, LayerList, and TableList componentsN/AN/A
addLayer() on Map, Scene, and Link Chart componentsMap.add()4.33
addLayers() on Map, Scene, and Link Chart componentsMap.addMany()4.33
addTable() on Map, Scene, and Link Chart componentsMap.tables.add()4.33
addTables() on Map, Scene, and Link Chart componentsMap.tables.addMany()4.33
ElevationProfile.effectiveUnitseffectiveDisplayUnitsN/A
ElevationProfile.hideSketchButtonhideStartButtonN/A
ElevationProfile.hideUnitSelectorhideDistanceDisplayUnitSelect or hideElevationDisplayUnitSelectN/A
ElevationProfile.highlightEnabledhighlightDisabledN/A
ElevationProfile.hoveredChartPositionindicatorRelativePositionN/A
ElevationProfile.inputfeature or geometryN/A
ElevationProfile.unitdistanceUnit or elevationUnitN/A
ElevationProfile.unitOptionsdistanceUnitOptions or elevationUnitOptionsN/A
Expand.focusTrapEnabledExpand.focusTrapDisabled4.33
Feature.hideContentAttachments propertyhideAttachmentsContent4.34
Feature.hideContentExpression propertyhideContentExpression4.34
Feature.hideContentFields propertyhideFieldsContent4.34
Feature.hideContentMedia propertyhideMediaContent4.34
Feature.hideContentText propertyhideTextContent4.34
Feature.hideLastEditInfo propertyhideLastEditedInfo4.33
Feature.hideTitle propertyhideHeading4.34
Features.closed propertyopen4.34
Features.featuresTitle propertyheading4.34
Features.open() methodopen propertyN/A
Features.visible propertyopen propertyN/A
Legend.respectLayerVisibilityDisabled property.ignoreLayerVisibility4.34
Popup.open() methodopen propertyN/A
Popup.visible propertyopen propertyN/A
UtilityNetworkAssociations.visibleElementsConnectivityAssociationsSettingsArrowsToggle propertyshowConnectivityAssociationsSettingsArrowsToggle4.32
UtilityNetworkAssociations.visibleElementsConnectivityAssociationsSettingsCapSelect propertyshowConnectivityAssociationsSettingsCapSelect4.32
UtilityNetworkAssociations.visibleElementsConnectivityAssociationsSettingsColorPicker propertyhideConnectivityAssociationsSettingsColorPicker4.32
UtilityNetworkAssociations.visibleElementsConnectivityAssociationsSettingsStylePicker propertyhideConnectivityAssociationsSettingsStylePicker4.32
UtilityNetworkAssociations.visibleElementsConnectivityAssociationsSettingsWidthInput propertyhideConnectivityAssociationsSettingsWidthInput4.32
UtilityNetworkAssociations.visibleElementsMaxAllowableAssociationsSlider propertyshowMaxAllowableAssociationsSlider4.32
UtilityNetworkAssociations.visibleElementsStructuralAttachmentAssociationsSettingsArrowsToggle propertyshowStructuralAttachmentAssociationsSettingsArrowsToggle4.32
UtilityNetworkAssociations.visibleElementsStructuralAttachmentAssociationsSettingsCapSelect propertyshowStructuralAttachmentAssociationsSettingsCapSelect4.32
UtilityNetworkAssociations.visibleElementsStructuralAttachmentAssociationsSettingsColorPicker propertyhideStructuralAttachmentAssociationsSettingsColorPicker4.32
UtilityNetworkAssociations.visibleElementsStructuralAttachmentAssociationsSettingsStylePicker propertyhideStructuralAttachmentAssociationsSettingsStylePicker4.32
UtilityNetworkAssociations.visibleElementsStructuralAttachmentAssociationsSettingsWidthInput propertyhideStructuralAttachmentAssociationsSettingsWidthInput4.32

Charts components breaking changes

Coding components breaking changes

  • The getScript() method has been removed from the Arcade Editor component. Instead, use the script attribute/property.
  • The getTestResult() method has been removed from the Arcade Editor component. Test results are no longer exposed via this component API.

Bug fixes and enhancements

  • BUG-000105331: Resolved an issue where SimpleMarkerSymbol point graphic where not visible when positioned behind a transparent polygon graphic.
  • BUG-000146922: Fixed an issue with printing without a legend includes the background and legend title.
  • BUG-000171108: Fixed an issue that prevented saving a WebMap when its spatialReference differed from the basemap’s spatialReference.
  • BUG-000173701: Fixed an issue where rendering large features in client-side FeatureLayers resulted in poor performance.
  • BUG-000174729: Fixed an issue where the Shadow Cast component displays shadows for zero time range in “Area above threshold” visualization.
  • BUG-000176561: Fixed an issue where a dashed line CIMSymbol was not rendering correctly if the dashTemplate had an odd number of values.
  • BUG-000176880: Fixed the loading order of the IntegratedMeshLayer when its elevation differs from terrain elevation.
  • BUG-000178607: Fixed an issue where VectorTileLayer did not return results from hitTest when the allow-overlapping and ignore-placement layout styles were set to true for icon and text layers.
  • BUG-000178993: Fixed an issue with some MapImageLayer visibility not updating until there was movement in the map.
  • BUG-000179403: Fixed an issue when printing a map with a GCS projection, the printout scale was different from the set scale.
  • BUG-000179696: Fixed an issue when printing a map with a GCS projection, adjusting the DPI value can affect the preview size.
  • BUG-000181304: Fixed an issue in the LayerList component where legends for nested sublayers were not displaying correctly.
  • BUG-000181339: Fixed an issue with the Area Measurement 2D component where it did not expose any activation event or state change.
  • BUG-000181712: Fixed and issue where popups/hittest didn’t work in specific local scenes.
  • BUG-000181749: Fixed an issue that prevented saving a WebScene with a WMTS basemap layer belonging to a Presentation Slide.
  • BUG-000181813: Fixed an issue where the Config.apiKey was being used to request a FeatureLayer’s data when the layer was configured with its own API key.
  • BUG-000182193: Fixed an issue when enabling geometry editing in the Editor canceled the active selection operation. This did not occur in attribute-only mode.
  • BUG-000182829: Fixed an issue where MapView.hitTest() returned inaccurate results for line features in VectorTileLayer.
  • BUG-000182732: Fixed an issue with the Directions component display when placed inside an Expand component on some mobile devices.
  • BUG-000182788: Fixed an issue where the Expand component’s close button would become inaccessible on some mobile devices.
  • Esri Community - 1680182: Fixed an issue where the Coordinate Conversion component’s display can become truncated.
  • Fixed a issue with print filtering the sublayers based on the entered export scale.
  • Fixed a memory leak in the geodeticAreaOperator.
  • Fixed an issue in the Legend component where the basemapLegendVisible property was not working as expected.
  • Fixed an issue in the Locate component where the goToOverride function was not being returned.
  • Fixed an issue in the Video Player component where the “Settings” string was not being localized.
  • Fixed an issue with the integrateOperator to allow for the returning of null values that indicate when geometries were removed, e.g. slivers and collapsed close vertices. The use case is to match the number of input geometries with the same number of output values (null or geometry). This will allow users to determine which vertices got removed as a result of the operation.
  • Fixed an issue with the focus order for Map components. The focus will now go to the Map, Scene, Link Chart, or Video first before focusing on any slotted components.
  • ENH-000169527: Enhanced polygon labeling by better auto-repositioning the label when the polygon centroid is not in view.
  • ENH-000173303: Enhanced the Print component to allow users to select the units for the scalebar.
  • ENH-000179216: Enhanced the Print component to have a parameter that allows for disabling access to the advanced options.
  • ENH-000181991: Added support for locate_settings in RouteParameters.
  • Enhanced the projectOperator to apply a linear Z unit conversion when projecting Z-aware geometries (when needed and supported).
  • To allow users to easily set their own styling on Map components, we’ve removed the default padding when a component is not slotted in the Map, Scene, Link Chart, or Video components.
  • Added the double-tap-drag and vertical-two-finger-drag view events to provide more control over view navigation.
  • Enhanced the Print component by adding support for a configurable property to allow Author be auto-populated by the current signed-in user.
  • Enhanced the Print component to support Dynamic legend items(requires 11.4 print service).
  • Enhanced the Print component to support printing tables with a supported layout template.
  • Enhanced the Directions component with the ability to add and edit Waypoints.
  • Added the colorMode property to CIMSymbolAnimationColor to provide control over how the animation color combines with symbol layer colors.
  • Added the keepUpright property to CIMMarkerStrokePlacement to allow markers to stay upright when angled to the line.
  • Added properties to the DictionaryRenderer to support getting information about the style properties, such as the dictionary name, configuration properties, symbol fields, and more.

Charts components fixes and enhancements

  • Hide empty rows and columns via the hideEmptyRowsAndColumns property from the heat chart model.
  • Added support for legend positioning via the legendPosition property and legend title customization via the legendTitleText and legendTitleSymbol properties from the heat chart model.
  • Added support for including leap day, this is false by default and can be enabled via the includeLeapDay property from the heat chart model.
  • Added support for coded domains and subtypes on the heat chart leveraging one or multiple category axes.
  • Added support for sorting x and y axes orders via the setXAxisSortOrder and setYAxisSortOrder properties from the heat chart model.

Additional packages

Version 5.0 of the ArcGIS Maps SDK for JavaScript uses ArcGIS Arcade 1.35 (since 5.0).

Version 5.0 of the ArcGIS Maps SDK for JavaScript uses Calcite Design System, version 5.0.2. In your application, we recommend using the same version or any minor version greater than ^5.0.2.

How to access the SDK

  • The API library is available on both CDN and npm, read more at Get started.
  • For supported versions, you can also download both the documentation and the API library. These downloads are typically available 3-4 weeks after release.