Skip to content

Release notes for 4.34

October 2025

FlowRenderer in 3D scenes

The FlowRenderer is now supported in 3D scenes. It enables animated visualization of directional raster data (Vector-UV or Vector-MagDir) on ImageryTileLayer or ImageryLayer. The flow can be visualized at different altitudes by configuring the layer’s elevationInfo with on-the-ground, relative-to-ground, or absolute-height modes.

Try out the FlowRenderer in a 3D scene and the FlowRenderer with elevation modes samples.

Editing enhancements

Split and merge workflows

The Editor now includes new split and merge workflows to improve feature editing flexibility. These workflows are currently supported in 2D only.

The split workflow allows users to divide an existing feature into multiple parts during an update. When editing polygon, polyline, or multipoint layers, a new Split action is available in the toolbar. This provides the ability to divide a selected feature into multiple parts using either a point, line, or polygon input split geometry, depending on the geometry type being split. After performing a split, the resulting features are displayed, and each feature’s attributes can be reviewed individually before committing the changes.

The merge workflow enables users to combine multiple features into a single feature. Once features are selected, a merge workflow can be initiated either the update toolbar or from individual layer items in the selection list. During the merge process, the feature form is displayed in a read-only state so users can review attribute information before confirming which feature to retain. Once the merge is committed, the selected feature is updated and the remaining features are removed.

Add, remove, and replace selections

In the Editor selection toolbar, you can now choose to add to, remove from, or replace the current selection when selecting features for editing.

Editor selection tools

Map components

Slots and shadow DOM

We have implemented slots and shadow DOM in our Map components for improved encapsulation and flexibility. This enhancement allows for better isolation of styles and functionality within the components, leading to more robust and maintainable applications.

With this change, there are a few key updates to be a aware of:

  • Slot attribute: Instead of using position for placing components and other UI elements in your map/scene, we now recommend utilizing the slot attribute. Possible values are "top-right", "top-left", "bottom-right", "bottom-left", "top-start", "top-end", "bottom-start", "bottom-end".
    • If you would like to manually position a component or UI element in the view, no slot is needed and you can just use CSS directly.
    • The position attribute will continue to work for backwards-compatibility, but is now deprecated and the default position of components is no longer supported.
  • Placement component is no longer needed and is now deprecated. Instead, you can directly add the slot attribute on the element you wish to place in the map.
  • When using Map components, there is no longer a need to include a link to core CSS stylesheet. Light and dark themes can be configured via Calcite modes: <body class="calcite-mode-dark">
Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
9
10
11
<!-- use the calcite themes for light/dark mode -->
<body class="calcite-mode-dark">
  <arcgis-map item-id="237b9584339446a0b56317b5962a4971">
    <!-- use slot instead of position for UI positioning within the map or scene components -->
    <arcgis-zoom slot="top-left"></arcgis-zoom>
    <arcgis-legend slot="bottom-right"></arcgis-legend>
    <!-- previously this button had to be wrapped in a arcgis-placement component
      now, the slot can be added directly to the component -->
    <calcite-button slot="top-right">Click me!</calcite-button>
  </arcgis-map>
</body>

Layout CSS variables

The Map, Scene, Link Chart, and Video components now provide the following CSS variables that reserve space around their content to prevent overlaying UI elements (like toolbars, legends, or panels) from obscuring slotted components.

Use dark colors for code blocksCopy
1
2
3
4
--arcgis-layout-overlay-space-top
--arcgis-layout-overlay-space-right
--arcgis-layout-overlay-space-bottom
--arcgis-layout-overlay-space-left

Error handling

To improve error handling and debugging, the Map, Scene, and Link Chart components now support a loadErrorSources property and two new events: arcgisLoadError and arcgisViewReadyError. These additions help you detect and respond to loading issues with the component's underlying view or associated resources.

Refactoring web components

The following components in map-components have been updated under the hood to 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.

Charts components

Charts components are out of beta and ready for production use. Check out the introduction page to learn how to use charts components.

Heat chart

The new heat chart allows you to configure data in a matrix form to uncover patterns, relationships, and trends across large datasets. It supports calendar-based binning with discrete date parts as well as matrix-based grouping using two discrete category fields or axes.

The heat chart below visualizes the average hotel prices in New York City by month of the year and day of the week. Each cell represents a combination of month and weekday, with the color intensity reflecting the average price for that period — darker shades indicate higher prices, while lighter tones represent lower averages. Learn more in the create a heat chart tutorial. Heat chart

Declaratively load charts

We have introduced new HTML attributes for the Chart component to directly load an existing chart saved in a feature layer item. By providing the layer-item-id and chart-index attributes, you can easily display a specific chart from the feature layer in your application without using JavaScript.

Use dark colors for code blocksCopy
1
<arcgis-chart layer-item-id="8871626e970a4f3e9d6113ec63a92f2f" chart-index="0"></arcgis-chart>

Refined charts model pattern

We have updated the charts model usage pattern by transitioning from using only getters and setters to a clearer split between properties and methods. This applies to all chart models, and the documentation for each chart model has been updated to split properties and methods accordingly.

Use dark colors for code blocksCopy
1
2
3
4
5
// New pattern
barChartModel.title = "Updated Title"; // property

// Old pattern
barChartModel.setTitle("Updated Title"); // method

Flexible field formatting

The new FieldConfiguration class streamlines field settings management at the layer level, allowing for consistent formatting across the SDK. Users can now configure aliases and date and number formatting directly within the FeatureLayer, rather than just through popups and the FieldInfoFormat.

This update enhances formatting options to align with internationalization (intl) standards, enabling automatic adjustments based on a user's locale and maintaining consistency across locales. Field configurations are supported with various components, including Popup, FeatureTable, Editor, and Search and can be saved to web maps and ArcGIS Online hosted feature layers, ensuring a unified display when maps are shared.

The FieldConfiguration approach is now recommended for managing field settings, offering a more consistent intl-aware experience, while existing applications using FieldInfo will still function as before. Currently, this release supports feature service-based layers and tables, with plans to expand to additional layer types. Some components may not fully support all settings yet; refer to the Known Limitations section for more details.

The new Popup component is now available in beta. It provides a declarative way to display and manage popups in your map, scene, or link chart components. To use the popup component with a view component, simply add it as a child element and assign it to the popup slot.

Use dark colors for code blocksCopy
1
2
3
<arcgis-map item-id="237b9584339446a0b56317b5962a4971">
  <arcgis-popup slot="popup"></arcgis-popup>
</arcgis-map>

For more information on how to use the Popup component, see the Popup component reference.

Updated field formatting

The FieldInfo class now includes a fieldFormat property to define formatting for date and number fields in FieldContent for FeatureLayers. This allows you to customize how field values are displayed directly within the Popup, Feature or Features components. Set this property if wanting to override any formatting from the layer field configurations for a specific field. Otherwise, the layer's field configuration settings will be used by default.

Filter attachments in Features and Popup

Attachments displayed in the Features and Popup components can now be filtered by the new attachmentType and attachmentKeywords properties in the AttachmentsContent class. These properties allow you to define multiple levels of filtering based on attachment keywords and/or MIME types. For example, you can choose to display only image attachments or filter attachments based on specific keywords.

New VolumeMeasurementAnalysis (beta)

VolumeMeasurementAnalysis lets you interactively measure and visualize ground surface volumes directly in 3D. This beta release introduces two measure types, each designed for a specific purpose:

  • cut-fill: Computes cut and fill volumes relative to a flat, horizontal surface defined by the input polygon. Ideal for estimating the amount of material to remove or add to level terrain for construction.

  • stockpile: Calculates cut and fill volumes against a surface approximated from the polygon's coordinates. Useful for estimating the volume of temporary ground features such as piles of material, mounds or depressions.

VolumeMeasurementAnalysis aligns with the other existing analysis tools, providing results and allowing you to place new or edit existing geometry inputs through its analysis view. Currently, it supports analysis on the ground, IntegratedMeshLayer and an IntegratedMesh3DTilesLayer.

Elevation profile analysis for customized experiences (beta)

Create tailored user experiences to analyze the profiles of your maps and scenes using the ElevationProfileAnalysis. This analysis allows you to build custom elements to either draw a new profile line or select a feature from the map or scene as an input. Both the 2D and 3D analysis views provide access to the analysis results, including statistics and profile samples. These results can be visualized in the app UI using any charting library.

Explore the analysis capabilities in this new sample.

Improved the depth perception of lines in 3D

This enhancement ensures that lines farther from the camera appear thinner, while those closer appear thicker, imitating real-world perspective. You can control this behavior for both points and lines using the screenSizePerspectiveEnabled property, available on most layer types that display client side features.

Upload georeferenced 3D models

This update extends the SceneLayer editing capabilities to automatically place uploaded 3D models based on their intrinsic georeferencing information. This simplifies how 3D models can be brought into web scenes by removing the need for manual placement. Models that include georeferencing information - for example, IFCv4 files - are placed automatically in the scene. Models in other supported formats can also be placed automatically when uploaded in a zip archive containing a world file and an Esri PRJ file.

SceneLayer.convertMesh now returns a Mesh that is automatically georeferenced when such information is available.

The updated sample and guide page on 3D object workflows in the SDK show how you can use the new options.

Accessibility enhancements

Disable animations in 2D Maps

Some users experience motion sensitivity or may prefer less animation in their applications. Providing a way to disable animations helps ensure your maps are comfortable and accessible to everyone.

The new animationsDisabled property on the Map component and animationsEnabled on MapView let you control all animations in a 2D view, including animated symbols, renderers, layers, and navigation. You can use these in conjunction with the CSS prefers-reduced-motion media query to build accessible applications that respect reduced motion preferences. See it in action in the updated Animated symbols sample.

ARIA attributes on Map and Scene

ARIA attributes are now supported on the Map and Scene components, as well as on MapView and SceneView, through the aria property. You can use label, description, labelledByElements, and describedByElements to provide accessible names and descriptions for the view container. These attributes improve screen reader support and help you build more inclusive applications.

Use dark colors for code blocksCopy
1
2
3
4
5
const viewElement = document.querySelector("arcgis-map");
viewElement.aria = {
  label: "New York Transit Map",
  description: "A map showcasing New York City's public transit lines across the five boroughs."
};

Changes to core stylesheet usage

In vanilla JavaScript and HTML applications using components via the ArcGIS CDN, there is no longer a need to include a link to the core API CSS stylesheet. In applications that meet system requirements and install the SDK via a package manager such as npm, all stylesheets (including Calcite) are automatically loaded for you. All component samples have been updated to reflect this change.

ParquetLayer (beta) enhancements

The ParquetLayer (beta) allows you to visualize and analyze data stored in the Parquet format in 2D maps. Parquet is a columnar storage file format optimized for use with big data processing frameworks. This layer type is currently in beta and the following has been added this release:

  • Support for non-spatial data, allowing you to visualize tabular data within the ParquetLayer.
  • Displaying ParquetLayer data in the FeatureTable.
  • Ability to query data at the feature level.

See the ParquetLayer sample to explore these new features.

Oriented imagery

The Oriented Imagery Viewer component (and widget) now supports visualizing tiled image formats (MRF and COG) for 360 imagery, which load faster than traditional JPG images, resulting in improved overall performance.

Labeling updates

For 2D maps, we enhanced the deconfliction strategy to build upon and optimize the work we did at version 4.33. Deconfliction for labels of the same feature can now display more labels on the map. To maximize the labels displayed on the map, set: labelClass.deconflictionStrategy = "none";.

Last Mile Delivery

Last Mile Delivery (LMD) is a type of Vehicle Routing Problem (VRP) operation that can find the most optimized routes for a fleet of vehicles that need to make deliveries, based on different parameters.

Documentation updates

All the tutorials and map component samples have been updated to reflect the recommended usage patterns and best practices.

Version matrix

A new Version matrix page has been introduced, which illustrates the relationships between various versions of the SDK and ArcGIS Enterprise. Additionally, it outlines the specific versions of Calcite and Arcade that the SDK utilizes. This resource effectively replaces the Additional Packages and Previous Releases sections found in the version-specific release notes.

Building your UI

The new Building your UI guide page was introduced to help you learn how to place built-in components and custom content using slots, style them with Calcite's CSS variables, toggle between light and dark modes, and integrate your own content. It also provides best practices and migration tips for developers updating from older SDK patterns.

Added classes, properties, methods, events

Core API

Map components

Charts components

Deprecations

To learn more about our deprecation policy, see the FAQ.

Core API deprecations

Map components deprecations

Breaking changes

Core API breaking changes

The following classes, methods, properties and events have been deprecated for at least 2 releases and have now been removed from the API:

Class/Property/Method/EventAlternate optionVersion deprecated
esri/widgets/FeatureTable/Grid/support/ButtonMenuUse TableMenuConfig, Calcite components - Dropdown, Calcite components = List, or Calcite components - Menu web components instead.4.30
esri/widgets/FeatureTable/Grid/support/ButtonMenuUse TableMenuItemConfig instead.4.30
esri/widgets/FeatureTable/Grid/support/ButtonMenuViewModelUse TableMenuConfig, Calcite components - Dropdown, Calcite components = List, or Calcite components - Menu web components instead.4.30
RasterStretchRenderer.statisticsUse RasterStretchRenderer.customStatistics instead.4.31
esri/TimeExtentUse esri/time/TimeExtent instead.4.31
esri/TimeIntervalUse esri/time/TimeInterval instead.4.31
VersionManagementViewModel.versionIdentifierLookupUse esri/versionMangement/VersioningState.4.30
VersionManagementViewModel.versionInfoLookupUse esri/versionMangement/VersioningState.4.30
VersionManagementViewModel.versionManagementServiceLookupUse esri/versionMangement/VersioningState.4.30
UtilityNetworkTrace.gdbVersionThe gdbVersion of the UtilityNetwork will be consumed directly.4.31
UtilityNetworkTraceViewModel.gdbVersionThe gdbVersion of the UtilityNetwork will be consumed directly.4.31
ValidateTopologyProps.gdbVersionThe gdbVersion of the UtilityNetwork will be consumed directly.4.28
ValidateTopologyProps.sessionIDUse VersionManagementService.startReading.4.29

Map components breaking changes

Charts components breaking changes

  • All imports now come from @arcgis/charts-components. This includes anything that was previously imported from @arcgis/charts-spec as well as model imports that used to come from @arcgis/charts-components/model.
  • Charts model methods for data filters have been renamed across all chart types. getDataFilter is now getDataFilters, and setDataFilter is now setDataFilters.
  • Certain charts model methods have been refactored into properties. Refer to the individual chart model documentation for details.
  • showUIMessages and nullAsValid properties are now at the root level of ChartOptions interface.

Please refer to the Breaking changes guide topic for a complete list of breaking changes across all releases of the 4.x API.

Bug fixes and enhancements

  • Installed a workaround for a Safari ImageBitmap leak that was introduced in iOS 18.4. The workaround manually closes dropped bitmaps for layers using image tiles including raster basemaps, MapImageLayer, ImageryLayer and WMTSLayer. This will reduce the potential for memory-related crashes on iOS devices.
  • BUG-000179255: Fixed an issue where some MapImageLayers failed to display without a basemap.
  • BUG-000178834: Fixed an issue where custom print services fail to load if the method name isn't ExportWebMap.
  • BUG-000179184: Fixed an issue where OGC data referenced as ImageryTileLayer failed to print.
  • BUG-000169012: Fixed an issue where MediaLayer with an imageElement prints incorrectly when rotated.
  • BUG-000178364: Fixed an issue where some line labels with TextFormatting.NewLine did not display correctly.
  • BUG-000178875: Fixed an issue where a feature in a client-side FeatureLayer was duplicated across tiles during zoom.
  • BUG-000170455: Fixed an issue where WebStyleSymbol did not retain their symbology when exported by a print service.
  • BUG-000173759: Fixed an issue where the 'Template' option in Print widget/component was missing an aria-label attribute.
  • BUG-000176398: Fixed an issue where the Copy button overlay displayed incorrectly with the Coordinate Conversion component.
  • BUG-000176396: Fixed an issue with incorrect or missing tooltips on buttons with the Coordinate Conversion component.
  • BUG-000178951: Fixed an issue where coincident features do not display their labels correctly.
  • BUG-000144007: Fixed an issue where scene layers with very large geometry wouldn't render.
  • BUG-000147785: Fixed an issue where the size of the "Other" symbol in the legend was inconsistent with the sizes of the unique symbols when using a UniqueValueRenderer.
  • BUG-000169012: Fixed an issue where MediaLayer with an imageElement prints incorrectly when rotated.
  • BUG-000170445: Fixed an issue where adjusting symbol size by scale was not working for non-editable layers.
  • BUG-000170455: Fixed an issue where WebStyleSymbol did not retain their symbology when exported by a print service.
  • BUG-000171234: Remove limitations on creating and updating geometries with active featureExpressionInfo on elevationInfo when editing features in a scene with Editor component.
  • BUG-000173527: Fixed an issue where sketching a polygon graphic would not display the trajectory line following the mouse cursor after the first click.
  • BUG-000173759: Fixed an issue where the 'Template' option in Print widget/component was missing an aria-label attribute.
  • BUG-000175010: Fixed an issue where the FeatureLayer did not refresh properly after applyEdits caused features to no longer satisfy the layer's definitionExpression.
  • BUG-000175498: Fixed an issue where deleted features remained on the map when the client-side FeatureLayer was not visible at the time of deletion.
  • BUG-000176396: Fixed an issue with incorrect or missing tooltips on buttons with the CoordinateConversion component.
  • BUG-000176398: Fixed an issue where the Copy button overlay displayed incorrectly with the CoordinateConversion component.
  • BUG-000177013: Fixed an issue where negative sizes were disallowed for ExtrudeSymbol3DLayer.
  • BUG-000177308: Fixed an issue where updates to OGCFeatureLayer.customParameters at runtime were not being honored.
  • BUG-000177502: For increased accessibility, we added an underline to "Esri" in the Attribution component and widget's "Powered by Esri".
  • BUG-000177794: Fixed an issue where non-administrator/owner users were able to delete attachments from a feature Layer even if the layer is set to only allow updates.
  • BUG-000178364: Fixed an issue where some line labels with TextFormatting.NewLine did not display correctly.
  • BUG-000178432: Fixed an issue where Enterprise feature service features not fully loading when exceedsLimit is true.
  • BUG-000178555: Fixed an issue where Sketch caused the browser to freeze when tooltips were enabled and a polyline was moved while editing vertices.
  • BUG-000178706: Fixed an issue where the Expand component and widget were exceeding the screen height on mobile devices.
  • BUG-000178834: Fixed an issue where custom print services fail to load if the method name isn't ExportWebMap.
  • BUG-000178875: Fixed an issue where a feature in a client-side FeatureLayer was duplicated across tiles during zoom.
  • BUG-000178951: Fixed an issue where coincident features do not display their labels correctly.
  • BUG-000179143: Fixed an issue where line, bar, and column charts were displaying null chart values as zero in the Popup, Features, and Feature widgets/components.
  • BUG-000179184: Fixed an issue where OGC data referenced as ImageryTileLayer failed to print.
  • BUG-000179255: Fixed an issue where some MapImageLayers failed to display without a basemap.
  • Esri Community - 1645973: Fixed an issue where the colorLocked property was not properly honored in a CIMHatchFill symbol layer.
  • Fixed an issue where the Legend did not correctly display UniqueValueRenderer's when using size visual variables and definition expressions.
  • Fixed an issue where TableTemplate.clone could not be called.
  • Fixed an issue in FeatureTable that was causing problems with opening menus while the table was scrolled horizontally.
  • Fixed an issue in FeatureTable where definition expressions would not work on subtype sublayers.
  • ENH-000124805: Added an order property to the legendOptions of the ClassBreaksRenderer, FlowRenderer, PieChartRenderer, PointCloudClassBreaksRenderer, PointCloudStretchRenderer, PointCloudUniqueValueRenderer, and UniqueValueRenderer to specify whether individual legend item values are displayed in ascending or descending order..
  • ENH-000177959: Added support to consume TileJSON directly via VectorTileLayer
  • Esri Community - 49701: Enhanced the glTF loader to support Draco-compressed models used in ObjectSymbol3DLayer.resource or when creating a Mesh with createFromGLTF().
  • Esri Community - 1579003: Fixed an issue where on SceneView the StreamLayerView3D property updating was always set to true.
  • Esri Community - 1582608: Fixed an issue where labels were not displayed when real world size visual variables were used.
  • Enhanced the Legend to improve performance when rendering legends with many layers and sublayers.
  • Enhanced the Legend to support feature reduction when respectLayerDefinitionExpression is true.
  • Enhanced the Legend to support SubtypeGroupLayers when using hideLayersNotInCurrentView.
  • Enhanced the Legend to improve the alt text for legend item symbols.
  • Enhanced the Legend and LegendViewModel by adding the loading property to indicate when the legend is loading or updating.
  • Added support for deep cloning IntegratedMeshLayer and PointCloudLayer.
  • Enhanced knowledge graph search to support provenance.
  • Enhanced SubtypeGroupLayer to support color, size, and opacity visual variables on its sublayers.
  • Enhanced Sketch to support MapNotesLayer.
  • Enhanced Editor to support batch editing up to 2,000 features.
  • Enhanced Editor to support KnowledgeGraphSublayer.
  • Enhanced Coordinate Conversion to always display the default XY format when adding new formats to the component.
  • The new geodeticUtilsOperator provides the calculateDistanceAndAzimuth() and pointFromDistance() functions as replacements for similar functionality in the deprecated geodesicUtils module.
  • A TileJSON source can now be added directly to a VectorTileLayer by setting the url property to the TileJSON endpoint.
  • Polygon, polyline, and multipoint 2D FeatureLayers and ArcGIS Enterprise features services have been optimized to retrieve all features simultaneously from the server when specific conditions are satisfied. Once loaded, the features won't need to be re-requested from the server, which will make future redraws after panning and zooming much faster.

Patch fixes

Core API

Note: Current version at https://js.arcgis.com/4.34/ CDN is 4.34.6.

4.34.1 through 4.34.6 [10-21-2025 to 10-30-2025]

  • Various fixes to support ArcGIS online, including:
    • BUG-000178355: Fixed an issue in Editor where the subtype domain options displayed for the previous subtype after switching subtypes in a create operation.
    • BUG-000180384: Fixed an issue where if multiple features had a value updated via batch editing in Editor, there were inconsistencies where some of the values were not being properly updated.
    • BUG-000180440: Fixed an issue where fields with calculated expressions in Smart Forms appeared as empty when editing an existing feature.
    • Fixed an issue where a CIMGradientStroke with gradientMethod: "AlongLine" was rendering its color ramp in the opposite direction.
    • Fixed an issue where some of the selection tools in Editor were hidden.
    • Fixed an issue where the Attribution ellipsis did not trigger expansion of the widget on initial load.
    • Fixed an issue where the Popup and FeatureTable were throwing an error when switching the view's time zone to the data's time zone and a date field was formatted with timeStyle "full".
    • Fixed an issue where the Popup was not closing automatically when clicking on an empty area in the map.
    • Fixed an issue where the upload icon was cut off in the attachments view of FeatureTable.
    • Fixed an issue with the VideoPlayerViewModel when it was set to followingMode = "none".

Components

Note: Current version at https://js.arcgis.com/4.34/*-components/ CDN is 4.34.7.

4.34.1 through 4.34.7 [10-21-2025 to 10-30-2025]

  • Various fixes to support ArcGIS Online, including:
    • BUG-000180551: Fixed an issue where the $userInput Arcade variable was not working when used in the Popup and Features component.
    • Fixed an issue where Popup component actions were still displaying when the visible property was set to false.
    • Improved the placement of the Expand component when in floating mode in the -start and -end slots.

Additional packages

Version 4.34 of the ArcGIS Maps SDK for JavaScript uses ArcGIS Arcade 1.34 (since 4.34).

Version 4.34 of the ArcGIS Maps SDK for JavaScript uses Calcite Design System, version 3.3.2. In your application, we recommend using the same version or any minor version greater than ^3.3.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.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.