Release notes for 4.33

June 2025

New CDN endpoint for components

The CDN endpoint for component packages has been updated to follow a pattern consistent with the core API. The new format simplifies versioning and improves alignment across resources.

New pattern: https://js.arcgis.com/{version-number}/{component-package}/

Example:

Use dark colors for code blocksCopy
1
2
3
4
5
<!-- New endpoint -->
<script type="module" src="https://js.arcgis.com/4.33/map-components/"></script>

<!-- Old endpoint -->
<script type="module" src="https://js.arcgis.com/map-components/4.33/arcgis-map-components.esm.js"></script>

The updated structure provides a cleaner and more intuitive way to load component packages alongside the core API.

Batch editing

The Editor component and (and widget) now support batch attribute updates, deletes, and movement of multiple features. The selection UI includes a comprehensive toolbar with tools for various selection methods, enabling users to make selections within a single layer or across multiple layers. Additionally, users can easily view, refine, and manage their selections for both individual and batch edits across all selected features. Once selected, users can move, delete, or update attributes on all features in the same layer at once.

Batch attribute editing is built into the Editor component (and widget) but can also be accessed on its own using the BatchAttributeForm. Developers can provide batch editing capabilities wherever needed, independent of the full editing workflow offered by the Editor. This flexibility allows for tailored user experiences, such as dedicated attribute update panels or streamlined data management tools, making it a valuable addition for applications that require efficient bulk attribute editing.

Focus area

Focus areas highlight and focus the viewers' attention to a certain part of their scene. Two predefined styles, dark or bright, allow to choose a visualization with good contrasts for scenes with different coloring. A focus area can optionally have a colored outline, which is helpful to distinguish multiple focus areas in a scene. Focus areas can be captured in slides and shared as part of the webscene.

Explore this functionality in this new sample.

Labeling multipoint geometries

We added support for labeling multipoint geometries. This was a long-requested enhancement. Note that printing these geometries may result in a different output based on the algorithms used to compute labels on the print server versus that of the ArcGIS Maps SDK for JavaScript.

Multipoint label

Map components

The following new components have been added to the map-components package:

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.

viewOnReady method

The viewOnReady method on the Map, Scene, and Link Chart components allows you to wait until the component's internal view is fully initialized and ready to be used. This is useful when you are dynamically importing other modules or setting up logic that depends on the view being fully initialized.

Use dark colors for code blocksCopy
1
2
3
4
5
6
7
8
<arcgis-map item-id="332e5d145bec4c2c860d65f7ca494b23"></arcgis-map>

<script type="module">
  const viewElement = document.querySelector("arcgis-map");
  // Wait for the internal MapView to be ready
  await viewElement.viewOnReady();
  console.log("MapView is ready:", viewElement.view);
</script>

reactiveUtils support for components

ArcGIS Maps SDK components properties are now watchable with reactiveUtils, the same utility used to observe changes in core API properties. Use reactiveUtils.watch(), .on(), .once(), .when(), or .whenOnce() to observe component state exactly as you would watch view.zoom or layer.loaded. This provides developers migrating a widget-based application to components with a familiar way to observe changes on component properties.

See the updated guide on watching for components changes using reactiveUtils.

Modernize with $arcgis.import()

The new $arcgis.import() global function is a modern replacement for AMD require when building apps via CDN. The function accepts a module path or an array of module paths and returns a promise that resolves with the requested module(s).

Use dark colors for code blocksCopy
1
2
3
4
5
6
7
<script type="module">
  // Import Map and Feature Layer modules
  const [Map, FeatureLayer] = await $arcgis.import([
    "@arcgis/core/Map.js",
    "@arcgis/core/layers/FeatureLayer.js"
  ]);
</script>

The documentation has been updated to use this new pattern, including getting started, tutorials and samples. While require is still supported, we would encourage developers to adopt this more modular and modern approach.

3D Tiles integrated mesh improvements

The IntegratedMesh3DTilesLayer now supports applying client-side modifications using the same SceneModifications class used by the I3S IntegratedMeshLayer. This enables you to focus on specific areas of a mesh, trim its outline, or replace a section with alternative 3D data. You can also persist and share your modified mesh through web scenes. The visibility of a 3D Tiles integrated mesh will now also conform to any clipping area used to define the visible extent of a local 3D scene.

The updated sample shows how you can utilize the SketchViewModel to apply clip, mask, and replace modifications to tailor an integrated mesh layer to suit your needs.

IntegratedMesh modifications

Layer-based scale range

Seamless visibility switches between different layer types based on the scale are now possible in 3D. With the introduction of layer-based scale ranges, the visibility of entire layers can be toggled according to the scale of the view, allowing for more efficient transitions between different representations in a scene. In contrast, prior to this release, visibility for layers such as FeatureLayer and SceneLayer (Point) was determined through a feature-based scale evaluation. This approach could lead to a mixed display of layer components rather than a clean transition at specific scales. To address this, the following remaining and suitable layers now support layer-based scale ranges: CatalogFootprintLayer, CSVLayer, FeatureLayer, GeoJSONLayer, GraphicsLayer, OGCFeatureLayer, OrientedImageryLayer, SceneLayer (Point), StreamLayer and WFSLayer. Note that an initial set of layers was already ported in 4.30.

Check out the example video demonstrating switching layers at a specific scale setting. It shows a feature layer with accident locations as heatmap. This is shown alongside the point and 3D object scene layers of the Topographic 3D Basemap as an overview. As you zoom in (scale < 1000), the renderer for the accidents is switched to show individual points and the Topographic 3D Basemap is turned off in favor of the integrated mesh 3D tiles layer. This switch gives the user a more detailed real-world context and helps them gain insights into where and potentially why the accidents occurred.

Placement and interactivity of analyses

We have added a place() method to the 3D analysis views to allow interactive creation of all the analyses. This applies to the area measurement, direct line measurement, slice, line of sight, viewshed, and dimension 3D analysis views. place() can also be called directly on the affiliated layer views: line of sight, viewshed, and dimension. Additionally, with SliceAnalysisView3D.pickLayerToExclude method it is possible to start the interactive operation to click to select a layer to be excluded from the slice analysis.

Existing analyses can be edited by enabling the interactive property on their respective analysis views. These enhancements align all analysis tools and allow implementing more customized user experiences. For example, an app could either place a single analysis at once or create multiple analyses consecutively.

Try it out in the updated Analysis objects sample.

Performance improvements

FeatureLayer performance in 2D

At this release, we improved the performance of polygon, polyline, and multipoint FeatureLayers hosted on ArcGIS Online. In 2D maps, the FeatureLayer has 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. We will continue to add support for other feature services in the next few upcoming releases.

Improved DictionaryRenderer symbol caching

Significantly improved the performance and load time of the DictionaryRenderer by optimizing how symbols are computed and cached. Instead of generating a unique symbol for each feature, the renderer now reuses symbols when possible and performs more precomputations up front.

3D memory optimizations

For raster tile layers and select gltf model textures, we now automatically compress loaded images in the browser. This saves 75% of the uncompressed memory used previously. Compression happens asynchronous and in parallel in web workers, thus coming at no cost to performance in existing web applications. Together with other optimizations, which pack 3D vertex data more compactly, this leads to memory savings of 10-50% in typical web scenes.

We will extend the use of client-side texture compression in other layer types in future releases and keep working on reducing our memory footprint in other areas of the code.

Smart mapping spike theme

We added a new 2D spike theme to the size renderer creator. This theme visualizes numeric data as spikes where the height of the spike corresponds to a value. This theme works best for skewed datasets with outliers on the high end of the data range, such as total population counts. As opposed to graduated symbols, spikes can make it easier to see the relative differences in values, especially when the data has a large range of values.

spike size theme

We also added various symbol styles for the spike theme, including but not limited to the following:

spike symbol styles

Layer enhancements

Client-side PointCloudLayerView queries

We updated the PointCloudLayerView to enable client-side spatial queries of the PointCloudLayer. You can retrieve individual points, their count or extent. For example, you can set a polyline as a geometry and specify a distance to the query object, allowing you to isolate a thin section of your point cloud data along a specified path.

VideoLayer enhancements

We introduced the Video and Video Player map components and deprecated the VideoPlayer widget. The Video component allows video display outside of the Video Player, enabling custom user interfaces for playback without using the Video Player controls. VideoLayers can now be persisted in a web map, allowing you to save the layer's configuration, such as the video source URL, and restore it when the web map is opened again. VideoLayer also includes new properties for customizing telemetry graphics and video playback.

MapImageLayer persistence

MapImageLayers can now be saved either as a new item or to an existing one within ArcGIS Online or ArcGIS Enterprise. The MapImageLayer save() or saveAs() methods can be used to persist the layer's configuration, including its sublayers, popup templates, and other properties to an existing or new map image layer item.

Raster layers

We added getSamples() method on ImageryTileLayer and WCSLayer. This method returns sample point locations, pixel values and corresponding resolutions of the source data for a given geometry. For example, you can construct a wind rose chart that shows the most frequent wind speeds and directions at the specified location for given number of years.

ImageryLayer.fetchPixels() method fetches raw pixel data for a specified extent, width, and height, preserving full pixel depth and including all bands without applying renderer to the layer.

ParquetLayer (beta)

The ParquetLayer (currently in beta) enables visualization of parquet files on a map. In upcoming releases, we plan to expand support to include additional capabilities, such as feature querying.

Point label deconfliction

We enhanced the deconfliction for point geometry labels. Now, we promote displaying as many individual labels as possible for features with multiple label classes. Previously, we promoted as many feature labels as possible, meaning that if some labels of a feature could not be displayed, then none were displayed. See the images below to compare 4.32 (left) with 4.33 (right).

4.32 - point feature with 4 label classes4.33 - point feature with 4 label classes
point labels point labels

Oriented imagery

Enhanced measurement capabilities

The Oriented Imagery Viewer now includes triangulated measurement tools, enabling users to calculate distance, area, and location by intersecting vectors from measurement points captured from two different viewpoints. These tools enhance the precision of measurement within a defined area of interest.

Available tools:

  • Triangulated Distance – Accurately measures the distance between two points using image pairs taken from different perspectives.
  • Triangulated Area – Calculates the area of a region by utilizing overlapping imagery.
  • Triangulated Location – Determines the exact geographic coordinates based on triangulated input from two images.

Image navigation

The Oriented Imagery Viewer component (and widget) provides enhanced tools for effortlessly transitioning between adjacent or sequential images, allowing for a smoother exploration of visual data in context. These upgrades are designed to create a more intuitive and efficient experience when working with oriented imagery. The are two types of navigation tools added:

  • Directional Navigation – Easily move between available adjacent images using directional arrows. See the OrientedImageryLayer in SceneView sample to explore this tool.

  • Sequential Navigation – Navigate through images using previous/next buttons, based on a user-defined field.

Video support

The Oriented Imagery Viewer supports playback of videos compatible with web browsers. Users can interact with videos using familiar controls such as play, pause, video slider, and audio button. During playback, the essential oriented imagery tools like current and additional footprints, camera locations, and image enhancement remain fully accessible, ensuring a seamless and interactive viewing experience.

Charts components (beta)

When rendering a scatterplot with the chart component, performance has been enhanced by optimizing how data is grouped into categories based on specific intervals and ranges. We also added the new viewTimeExtentChangePolicy property on the chart component. When set to 'refresh' and the chart’s view is linked to the map’s view, the chart will automatically update to reflect the map’s current time extent. Another new feature is the ability to export charts as an image or CSV table from the charts action bar component, making it easier to incorporate chart visuals and data into presentations, reports and analytical tools.

Charts action bar export

Charts model updates

The @arcgis/charts-model package has been merged into the @arcgis/charts-components package, so all imports now come from @arcgis/charts-components. We simplified creating and modifying charts when using charts models by adding a createModel() method. This is the recommended way to create a chart model instead of instantiating a new model object for individual charts models. Support has been added for configuring combo bar line charts and radar charts with charts model. See the example below to leverage these new features:

Use dark colors for code blocksCopy
1
2
3
4
5
// Import the createModel function from the charts components package
import { createModel } from "@arcgis/charts-components/model";

// Create a chart model for a combo bar line chart with a feature layer
const chartModel = await createModel({ layer: featureLayer, chartType: "comboBarLineChart" });

Component and widget updates

Directions printing (beta)

The Directions component (and widget) now offer printed directions in beta. Additional functionality and enhancements are planned for future releases. This is available in the options of the completed route.

Directions printing

Additional context for Shadow Cast threshold mode

The Shadow Cast component (and widget) now provide additional context for analyzing surfaces that remain in shadow longer than a specified duration. With the discrete context enabled, shadows at configurable intervals are displayed in addition to the threshold visualization. This offers a more comprehensive understanding of why a particular surface is classified as either over or under the threshold. Try it out in the updated Shadow Cast sample.

The Popup widget and Features component (and widget) now support configuring relationship elements for nested MapImageLayer sublayers. Previously, this was only supported for relationships between layers in the same level of the service hierarchy. Now, you can add RelationshipContent to a sublayer's popup template that has a relationship with any layer within the MapImageLayer.

Feature Table

The Feature Table component (and widget) now support configuring attribute table relationship elements for nested MapImageLayer sublayers and subtables.

Support was added for managing and configuring how tables in MapImageLayer sublayers display their columns. This is accomplished via the AttributeTableTemplate which was recently added to Sublayer.

Daylight

The Daylight component (and widget) no longer enable shadows (view.environment.lighting.directShadowsEnabled) when the user first interacts with the slider or clicks one of the play buttons. Applications that wish to implement the previous behavior can do so by listening to the "user-date-time-change" event which is emitted by the widget and view model or the "arcgisUserDateTimeChange" event which is emitted by the component.

Search popup

We enhanced the popup for Search component and Search widget to use Calcite. Now, the number of additional results is displayed without requiring the results to be expanded first.

Search popup

Geometry operators

The simplifyOGCOperator is now available. This operator can be used to enforce topological correctness according to the OGC Simple Feature Access specification 1.2.1. It uses stricter rules than simplifyOperator. For example, it does not allow for self-intersection in polylines, and polygon rings cannot have self-intersection or self-tangency.

Utility Network associations with spatial selection

The Editor component (and widget) now supports adding associations by spatially selecting features on the map to form associations with. This provides a faster and more intuitive way to create associations between features in Editor.

Adding Utility Network associations with spatial selection

When adding a new association in Editor, a spatial selection toolbar appears if any compatible layers are visible on the map. The toolbar can be used to select a single point or define a region containing features. The selected features appear in a list to choose from; the chosen feature is used to create the association.

Knowledge graph data model editing

We have added data model editing support for knowledge graph services. You can now add, update and delete entity types and relationship types from your knowledge graph. You can also add, update and delete the properties for those entity and relationship types, as well as the field indexes and the knowledge graph search index.

New geometric effects for CIMSymbol

We've added support for four new geometric effects in CIMSymbol, expanding the possibilities for advanced symbology and bringing features previously only available in ArcGIS Pro to the JavaScript SDK:

  • Enclosing polygon - Creates a dynamic polygon from the spatial extent of a line or polygon.
  • Radial - Creates a dynamic line at a specified angle and length from a given point.
  • Suppress - Hides segments of a stroke between pairs of control points.
  • Tapered Polygon - Creates a dynamic polygon that tapers in width along a line.

Localization updates

  • When specifying the Nynorsk locale ("nn" or "nn-no"), it will now default to Norwegian string translations ("no") instead of English. This is similar to the existing behavior of other locales where we don't have specific string translations, such as French Canadian ("fr-CA").
  • New documentation about Locale fallback to clarify how strings and formatting works for locales without direct translation support.
  • We also added a section about how to change specific strings using messageOverrides in components.

Globally configured API key updates

A new apiKeys property has been added to esriConfig, allowing you to set an API key for the basemap style service and/or secured ArcGIS Enterprise items/services globally. See the API key guide topic for more information on how to configure API keys with ArcGIS Maps SDK for JavaScript applications.

Added classes, properties, methods, events

Deprecations

Core API deprecations

Map components deprecations

Charts components deprecations

  • The exportImage method on the Chart component is deprecated since 4.33. Use exportAsImage instead.
  • All subTitle references on the Chart component are renamed to subtitle.
  • WebMapWebChart interface is deprecated, use WebChart instead.
  • WebMapWebBoxPlot interface is deprecated, use WebBoxPlot instead.
  • WebMapWebGaugeChart interface is deprecated, use WebGaugeChart instead.
  • WebMapWebRadarChart interface is deprecated, use WebRadarChart instead.
  • RESTStatisticType interface is deprecated, use WebChartStatisticType instead.
    • percentile_cont statistic type is deprecated, use percentile-continuous instead.
    • percentile_dist statistic type is deprecated, use percentile-discrete instead.

Breaking changes

Core API breaking changes

  • When using projection operators in native Node.js applications, the associated assets (e.g., .wasm files) are now served via the ArcGIS CDN by default. This is similar to how other default SDK assets are hosted. Additionally, it is no longer necessary to transpile to CommonJS (CJS). If you need to host the SDK's assets locally, you can serve them from your web server and reference them in your application. For example: esriConfig.assetsPath = "https://mywebsite.com/assets"; This breaking change includes the projectOperator, shapePreservingProjectOperator, geographicTransformationUtils as well as the geodetic and geodesic operators, and the legacy projection module.
  • polygonOverlayOperator now returns a result object that includes the polygon array result as well as the corresponding ids that represent the indexes of the polygons in the input array.
  • WebStyleSymbol.fetchSymbol now returns any type of symbol instance the WebStyleSymbol refers to. Pass { acceptedFormats: ["web"] } as options to fetchSymbol to retrieve only 3D symbols.
  • Cloning a Graphic no longer populates the layer property of the cloned graphic. This is because the cloned graphic is not associated with any layer. If you need to clone a graphic and associate it with a specific layer, set the layer property manually after cloning. This affects any workflows that result in cloned graphics, such as search result graphics.
  • Renamed DimensionAnalysisView to DimensionAnalysisView3D.

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
LayerList ListItemPanel.classNameListItemPanel.icon4.30
TableList ListItemPanel.classNameListItemPanel.icon4.30

General components breaking changes

  • Due to ArcGIS CDN endpoint changes for components, component package assets have moved from /dist/arcgis-<package-name>/assets/ to /dist/cdn/assets/. Ensure that assets are being pulled from the correct path when working with assets in disconnected environments.

Map components breaking changes

  • Setting any of the camera-related attributes on the Scene component on its initialization will not overwrite any of the other camera settings anymore.

Charts components breaking changes

  • Temporal binning information moved from the series level to inside of a temporalBinning property.
  • rotation property is moved from the series level to the chart level.

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

  • BUG-000137435: Fixed an issue where ImageryLayer was not supported in the uniqueValues statistic function.
  • BUG-000137586: Added support for labeling Multipoint geometries.
  • BUG-000166150: Fixed an issue with WMSLayer where a "Maximum call stack size exceeded" error would sometimes occur when parsing the GetCapabilities response.
  • BUG-000167329: Fixed an issue where minScale and maxScale properties between multiple LabelClasses were not properly honored.
  • BUG-000170778: Fixed an issue where some webmap labels would flicker or blink when opening the webmap.
  • BUG-000171220: Fixed an issue where the LayerView filter property did not hide the labels of features being filtered when the deconflictionStrategy was set to ‘none’.
  • BUG-000171954: Fixed an issue where the size visual variable would not scale some symbols proportionally in a DictionaryRenderer.
  • BUG-000172156: Fixed an issue with performance at large scales when zooming and panning around a CIMSymbol with marker placements and geometric effects.
  • BUG-000172707: Fixed an issue where coordinateFormatter converted points incorrectly when the toLatitudeLongitude method had the decimalPlaces parameter set to zero.
  • BUG-000173156: Fixed an issue where the Show print area area extent changes if DPI value is modified and scale has been set with Print widget and Print component.
  • BUG-000173208: Fixed an issue where the update button is greyed out when a calculated expression is used to calculate a field from edits of related data.
  • BUG-000173550: Fixed an issue where the visibility toggle buttons in the Layer List component did not properly announce the associated layer to assistive technologies, such as screen readers.
  • BUG-000173556: Fixed an issue where attempting to access a secured layer in an IWA environment was causing a request loop with a 403 response.
  • BUG-000173886: Fixed a performance issue when rendering a large number of points with the DictionaryRenderer. See DictionaryRenderer performance for more details.
  • BUG-000174204: Fixed an issue where the Legend for a CIMLineSymbol with dashes and a size visual variable with a minValue of 0 would cause the map to freeze.
  • BUG-000174593: Fixed as issue where some labels did not display if the spatial reference was changed at runtime.
  • BUG-000174923: Fixed an issue where the incorrect calcite-icon was used for Reset in the CoordinateConversion widget and Coordinate Conversion component.
  • BUG-000175232: Fixed an issue where a browser crashing on iOS devices when an ImageryTileLayer with COG (Cloud Optimized GeoTIFF) is viewed.
  • BUG-000175384: Fixed an issue where the Popup was initially opening outside the map extent when calling view.openPopup().
  • BUG-000175392: Fixed an issue where some polyline labels with more than one line were duplicated.
  • BUG-000175439: Fixed an issue where setting displayFilterInfo on a FeatureLayer rendered with DictionaryRenderer would cause the app to crash after zooming in.
  • BUG-000175505: Fixed an issue where a non-public SubtypeGroupLayer would fail to print.
  • BUG-000175584: Fixed an issue where the extent of a WMSLayer was sometimes incorrectly parsed from the service.
  • BUG-000175667: Fixed an issue where Search widget with a polyline LayerSearchSource sometimes did not zoom to the correct feature.
  • BUG-000175815: Fixed an issue where the middle index of a stop was not initially honored in Directions component and Directions widget.
  • BUG-000175850: Fixed an issue where COG files with large headers were not displaying correctly with ImageryTileLayer.
  • BUG-000175875: Fixed an issue with WFSLayer, improving parsing of the GetCapabilities response.
  • BUG-000176071: Fixed an issue where a multidimensional ImageryTileLayer would not display a popup when used in conjunction with a TimeSlider.
  • BUG-000176076: Fixed an issue where Print widget and Print component had an error when the service is published from ArcGIS Pro without using English as the display language.
  • BUG-000176159: Fixed an issue where using the TimeSlider with the DictionaryRenderer would cause the map to crash after changing the time extent and zoom level.
  • BUG-000176175: Fixed an issue where a fully transparent terrain let to unexpected navigation behavior in SceneView.
  • BUG-000176790: Fixed an issue where Search widget inside Expand widget did not display suggestions on some iOS devices.
  • Esri Community - 1612421: Fixed an issue where custom parameters on BuildingSceneLayer were not included in requests to the summary endpoint.
  • Fixed an issue where charts displayed in MediaContent weren't rendering when configured with raster fields.
  • Fixed an issue where some fields did not display in RouteLayer popups.
  • Fixed an issue where the Popup widget and Features component were not fetching more features when paging passed the featuresPerPage value.
  • Fixed date and number formatting for Bosnian (bs) locale in Google Chrome browser (which does not offer full Bosnian support).
  • ENH-000173871: Added printing capability to Directions widget and Directions component.
  • ENH-000174368: Added an apiKeys property to esriConfig to allow configuring global API keys for the basemap style service and/or secured ArcGIS Enterprise items/services.
  • ENH-000175566: Added editRouteButton to disable route editing with the Directions widget.
  • ENH-000176701: Documented a known limitation when using blendMode within a GroupLayer in a 3D SceneView.
  • Esri Community - 1594685: Enhanced WFSLayer to disable paging when the maxPageCount is set to 0 or 1.
  • Enhanced AreaMeasurement2D and DistanceMeasurement2D widgets to use geometry operators instead of geometryEngine.
  • Enhanced printing to now support printing TrackInfo and trackLines.
  • Enhanced the kernel module's fullVersion property to include the patch number or next version for CDN and SDK downloads. This was already true for npm builds.
  • Updated the lyr3DWorker.wasm, lyr3DMain.wasm, and vxlLayer.wasm files to use version 1.3.1 of the zlib library, addressing security scanner warnings.

Map components enhancements

Charts components enhancements

  • Added viewTimeExtentChangePolicy property on the chart component, when set to "refresh" and the chart's view is set to the map's view, the chart will automatically update in response to changes in the view's time extent.
  • Added hideOversizedStackedLabels property on bar series, this can be configured with setSeriesHideOversizedStackedLabels method on the bar chart model and combo bar line chart model to hide labels that are too large to fit in the bar.
  • Added dataLabelsInside property on pie series, this can be configured with setDataLabelsInside method on the pie chart model to position labels inside slices, hide ticks, and disable alignment and space optimization.
  • Added export feature to the charts action bar component, allowing charts to be saved as an image (defaulting to PNG, but configurable as JPEG or SVG) or as a CSV table. Image export is supported for all chart types, while CSV export is available for all chart types except box plots and scatterplots.
  • Added support for the dateBin option from the QueryBins API in time-series serial chart configurations.
  • Extended support for esriFieldTypeDateOnly, esriFieldTypeBigInteger, and esriFieldTypeTimestampOffset field types in charts components configuration.
  • Added support for customizing the chart's loading curtain and spinner colors via the loaderColors property on the Chart component.
  • Aligned WebChartDataFilters with @arcgis/core's FeatureFilter, adding support for objectIds and spatialRelationship in both runtime and config-based dataFilters.
  • Added additional getters and setters across chart models, including support for subtitle, axis behavior, tooltip, legend, pie label, and data filter configurations.
  • Enabled client-side trend-line calculation with R-squared value for aggregated scatterplots when filter by extent is enabled on the charts action bar component.

Patch fixes

Core API

Note: Current version at https://js.arcgis.com/4.33/ CDN is 4.33.6.

4.33.6 [2025-06-30]

  • BUG-000177549: Fixed an issue where imagery KML layers were not loading correctly.
  • PathSymbol3DLayer: Fixed an issue where multi path defined lines were not rendering correctly.
  • Various fixes to support ArcGIS Online.

4.33.5 [2025-06-27]

  • BUG-000177496: Fixed an issue where URLs with % charaters were being encoded in Popups and Feature Table.
  • BatchAttributeForm: Fixed an issue where number inputs were incrementing indefinitely when value change was triggering expression execution.
  • Fixed an issue where changing Polygon visual variables was causing flickering.
  • Esri Community issue: Fixed an issue where DictionaryRenderers in SceneViews were causing ERR_INSUFFICIENT_RESOURCES errors.
  • Various fixes to support ArcGIS Online.

4.33.4 [2025-06-26]

  • Fixed WebGL errors when updating a geometry in the VideoView.
  • Fixed an issue where where updating sizeStops and/or spikeSymbolStyle were causing colors to not persist with spike maps.
  • Various fixes for ArcGIS Online.

4.33.3 [2025-06-25]

  • WFSLayer: assume KVP format is supported if not specified.
  • Various fixes for ArcGIS Online.

4.33.2 [2025-06-24]

  • VideoView: Fixed an issue with the proportions when the aspect ratio of the video did not match the aspect ratio of the canvas.
  • Various fixes for renderer regeneration.
  • Updated documentation.
  • Various fixes for ArcGIS Online.

4.33.1 [2025-06-23]

  • VideoLayer: Metadata bug fixes for Excalibur.
  • Oriented Imagery Viewer: Missing alert for invalid camera heading.
  • Oriented Imagery Viewer: Reset VideoElement properly when a new layer is selected.
  • Scene: Graphic jitters when scaling in 3D.
  • BatchAttributeForm: Implement payload for batch form submit event.
  • SketchViewModel: Update cursor used by GraphicMover with multiple graphics.

Components

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

4.33.8 [2025-07-01]

  • Various fixes to support ArcGIS Online.

4.33.7 [2025-06-30]

  • Various fixes to support ArcGIS Online.

4.33.6 [2025-06-27]

  • Various fixes to support ArcGIS Online.

4.33.5 [2025-06-26]

  • Various fixes to support ArcGIS Online.

4.33.4 [2025-06-25]

4.33.3 [2025-06-24]

  • Various fixes to support ArcGIS Online.

4.33.2 [2025-06-23]

  • Various fixes to support ArcGIS Online.

4.33.1 [2025-06-20]

  • Fix nullable typing of arcgis-link-chart.map.
  • Utility Network Associations: Documentation has been updated to clearly indicate which properties should be used in place of deprecated ones.

Additional packages

Version 4.33 of the ArcGIS Maps SDK for JavaScript uses ArcGIS Arcade 1.32 (since 4.33).

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

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.

Previous releases

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