February 2023
Features can be highlighted with different symbols per layer
At this release, features can be highlighted with different symbols per layer in a 2D MapView. This can be done by setting the highlightOptions on the corresponding layerView. In a future release, we will add support for this in a 3D SceneView and explore additional highlight options to make the highlighted features stand out from the rest of the map.

Apply a background and border to your FeatureLayer labels
We enhanced the TextSymbol class to allow backgroundColor, borderLineColor, and borderLineSize properties to now work with FeatureLayer instead of just MapImageLayer. This can be very useful for labeling, as shown in the updated sample below.

Clustering and binning maximum scale
You can now disable clustering and binning visualizations when the user zooms beyond a given max
. This is useful for apps where the user is required to zoom to a large scale where the clustering or binning configuration is no longer needed and individual point locations should display.
The Clustering - generate suggested configuration sample demonstrates this behavior.

Sort features drawn in view based on unique values
UniqueValueRenderer added the orderByClassesEnabled property. When enabled, this sorts the order of features in the view so they match the order defined for the unique values in the legend.
This is useful for cases where you want to display higher priority features on top of features with a lower priority. The Sort features by legend order sample demonstrates this by rendering car crash locations in three categories, crashes that resulted in:
- fatalities
- injuries
- no injuries or fatalities
Without controlling how these features are drawn in the view, the more important features (fatalities) would be mostly hidden by features with a lesser priority. By setting unique
, the view more appropriately renders the higher priority features on top of lesser priority features.
Default order | Order by classes enabled |
---|---|
![]() |
![]() |
3D updates
Snapping in 3D measurement tools
Accurately measure lengths and areas of, for example, building roofs and facades. Direct line and area measurements now snap to features and 3D objects in your scene. Snapping is enabled by default and can be toggled by holding the Control key.
All tools that rely on snapping in 3D scenes benefit from improved hints, making it easier to snap to draped features or complex BIM data.
Explore the buildings of San Francisco using the updated Measurement in 3D sample.

Voxel layer popups and interactive slice
Explore the properties of individual voxels by enabling popups on your voxel layer. The popup shows attributes value, variable and voxel position, and if available also depth and time. Added support for the Slice widget allows you to interactively look inside your dataset and select any voxel.
Try out the new web-based VoxelLayer capabilities with a range of new samples.

Improved terrain
Experience improved terrain with enhanced shading and increased resolution for all quality modes. Besides additional contrast, the shading added in 4.25 has been intensified by visualizing the terrain with more detailed geometry. This additional information on the client comes without performance impact thanks to various optimizations in the terrain rendering.

Layer updates
MediaLayer authoring experience
We added support for an authoring experience for MediaLayer in the Map Viewer, allowing you to add media to your map, adjust the control points, resize your image, and save it to a WebMap.

Process pixels with client-side raster functions
ImageryTileLayer now supports client-side raster functions (released in beta). The client-side raster functions are operations that apply processing directly to the source image pixels. The calculations are only applied to the source pixels that are visible in the map as you pan and zoom within the map. In upcoming releases, we will continue to add more functions and make the public API easier to work with.
The following sample demonstrates how you can use a client-side NDVI
raster function to quantify vegetation greenness and use the Colormap raster function to display the result.
ImageryLayer mensuration
ImageryLayer now supports various mensuration operations. You can call measureAreaAndPerimeter(), measureDistanceAndAngle(), measureHeight(), and measurePointOrCentroid() methods to take various measurements on an image service.
StreamLayer updates
We added many new properties and methods this release that should improve your experience working with StreamLayers:
- The sendMessageToSocket() method can be used to send a message over the websocket to the server.
- The StreamLayerView.message-received event fires when the layer view receives a new message sent to the websocket connection.
- The pause() and resume() methods on StreamLayerView can be used to pause and resume the connection.
Users now can create a client-side StreamLayer by taking advantage of the sendMessageToClient() method. To create a client-side layer, one must provide all properties required to create the StreamLayer schema. Then, call send
to add, remove, or update features.
Check out this sample for an example.
KnowledgeGraphLayer
KnowledgeGraphLayer (released in beta) is a new layer type for visualizing data from a knowledgeGraphService on a map. A KnowledgeGraphLayer is a composite layer with sublayers for spatial and non-spatial entity and relationship types. Spatial sublayers can be used with renderers, have configured popups and used in other spatial analysis. A KnowledgeGraphLayer can only be added to an instance of a map. Currently, it cannot be saved as an ArcGIS Enterprise Portal item, used in an web map or added as a layer in Map Viewer.
SubtypeGroupLayer rotation visual variables
SubtypeGroupLayer added support for the RotationVariable visual variable. Support for ColorVariable, OpacityVariable, and SizeVariable will be coming at a future release.

Widget updates
Popup
Select feature in related records popup
The new Select feature
action button within RelationshipContent provides a way to highlight and zoom to the selected related feature while also opening the related feature's popup.
Popup chart colors reflect renderer colors
Popup chart colors now automatically respect feature reduction renderer colors when visualizing data with specific renderers. This is supported for binning with the predominance, dot density, and the pie chart renderers, along with clustering with the pie chart renderer.

Sketch
The Sketch widget added a duplicate() method that duplicates graphic(s) in an update workflow and adds the new graphic copies to the widget's GraphicsLayer. The widget displays a duplicate (or copy) button when a single or multiple graphics are selected and in an update workflow. The Graphic attributes, geometry, and symbol properties are copied over to the new graphics.

Editor
The Editor was updated to support selecting features that do not have update
capabilities, e.g. allowed
. Prior to this release, the UI's select
tool would not become enabled to support feature selection, even if the underlying data supported these operations. This recent update was necessary to be able to select and delete a feature. In addition, this update was needed for workflows where editing or creating attachments was a requirement.
FeatureForm
The FeatureForm widget was updated to make use of Calcite's Date Picker and Time Picker components.
Legend
- We added sendMessageToClient() and sendMessageToSocket() methods on StreamLayer. Newly added methods can be used to send client-side messages or send a message over the websocket to the server.
- We also added StreamLayerView.message-received event that fires in response to when the layer view receives a new message sent to the websocket connection.
The field alias is no longer displayed in the Legend widget by default for UniqueValueRenderer.
Set the legendOptions
title
to the field alias if needed.
Utility network
The UtilityNetwork added the ability to validate a network's topology with the synchronous validateTopology() and asynchronous submitTopologyValidationJob() methods.
UtilityNetworkAssociations widget
The new UtilityNetworkAssociations widget allows users to query and visualize the associations of a utility network within the current extent of the view. The widget supports viewing connectivity and structural attachment associations.
By default, a user can manually refresh the associations after an extent change, but they can also be refreshed automatically when a user pans or zooms the map by setting the autoRefreshAssociations property to true
.
To allow users to adjust the number of maxAllowableAssociations, you can display the max allowable associations slider within the widget.
If the number of associations queries exceeds the value set for maxAllowableAssociations, then the server will not return any associations.
CIMSymbol updates
At this release, we made the following enhancements to CIMSymbol:
- Introduced support for CIMGeometricEffectDonut, which creates a dynamic polygon ring of a specified width in relation to the outline of polygon features. The example below uses a CIMPolygonSymbol with the donut effect to visualize the boundary of Grand Canyon National Park.
- Added support for animated picture markers placed within a polygon
- Added support for primitive overrides on marker placement properties
- Fixed bugs and improved performance of other geometric effects
Print non-spatial tables
We added a new property to the PrintTemplate to allow users to print tables using the print
and PrintViewModel.print() methods. When
PrintTemplate.includeTables is true
, tables will be
included in the printout request. A table is a non-spatial dataset in a feature service or map service. This is only applicable
to print templates that are configured to support tables.
Downloadable samples using ES modules
ES module (ESM) samples are being added to the SDK that provide the same functionality as the existing AMD samples. However, the ESM samples use @arcgis/core and are available as a downloadable Vite.js project that can be installed and built locally using NPM. ESM works with most modern JavaScript frameworks and module bundlers without the need for additional loaders or specialized configurations. Visit the Sample page for the latest list.
Added classes, properties, methods, events
- esri/layers/KnowledgeGraphLayer
- esri/layers/support/rasterFunctionConstants
- esri/networks/support/TopologyValidationJobInfo
- esri/rest/knowledgeGraph/SearchIndex
- esri/rest/knowledgeGraph/ServiceDefinition
- esri/rest/networks/support/ValidateNetworkTopologyParameters
- esri/rest/support/ImageAreaParameters
- esri/rest/support/ImageAreaResult
- esri/rest/support/ImageDistanceParameters
- esri/rest/support/ImageDistanceResult
- esri/rest/support/ImageHeightParameters
- esri/rest/support/ImageHeightResult
- esri/rest/support/ImagePointParameters
- esri/rest/support/ImagePointResult
- esri/widgets/UtilityNetworkAssociations
- esri/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel
esri/geometry/
Spatial Reference - Added properties: metersPerUnit, unit
esri/layers/
Stream Layer - Added methods: sendMessageToClient, sendMessageToSocket
- Added methods: findSublayerForFeature, loadAll
esri/layers/support/
Subtype Sublayer - Added properties: effectiveEditingEnabled, objectIdField, spatialReference
- Added methods: addAttachment, deleteAttachments, get, queryAttachments, updateAttachment
esri/layers/
Voxel Layer - Added properties: legendEnabled, popupEnabled
esri/rest/knowledge
Graph/ Data Model - Added properties: arcgisManaged, identifierInfo, searchIndexes
esri/symbols/support/symbol
Utils - Added methods: renderPieChartPreviewHTML, renderRelationshipRampPreviewHTML
esri/views/layers/
OGC Feature Layer View - Added properties: highlightOptions, maximumNumberOfFeatures, maximumNumberOfFeaturesExceeded
esri/views/layers/
Stream Layer View - Added property: highlightOptions to
esri/views/layers/
Stream Layer View - Added methods: pause, resume
- Added event: message-received to
esri/views/layers/
Stream Layer View
- Added property: highlightOptions to
esri/webmap/
Bookmark - Added properties:
attachments
andOn Create Enabled attachments
to Editor.layerInfos.On Update Enabled - Added property:
coverage
to esri/layers/WCSLayerInfo - Added property:
effective
to esri/layers/FeatureLayer, esri/layers/SubtypeGroupLayer - Added property:Capabilities effective
to esri/layers/FeatureLayer, esri/layers/SubtypeGroupLayer, esri/layers/support/SubtypeSublayerEditing Enabled - Added property:
end
to esri/rest/knowledgeGraph/RelationshipTypePoints - Added property:
errors
to esri/widgets/BasemapLayerList.visibleElements, esri/widgets/LayerList.visibleElements - Added property:
highlight
to esri/views/layers/CSVLayerView, esri/views/layers/FeatureLayerView, esri/views/layers/GeoJSONLayerView, esri/views/layers/GraphicsLayerView, esri/views/layers/ImageryLayerView, esri/views/layers/OGCFeatureLayerView, esri/views/layers/StreamLayerView, esri/views/layers/WFSLayerViewOptions - Added property:
http
to esri/request.RequestResponseStatus - Added property:
icon
to esri/widgets/support/SnappingControlsClass - Added property:
ids
to esri/rest/knowledgeGraph/GraphSearchStreamingFilter - Added property:
include
to esri/rest/support/PrintTemplateTables - Added property:
is
to esri/portal/PortalItemOrg Item - Added property:
max
to esri/layers/support/FeatureReductionBinning, esri/layers/support/FeatureReductionClusterScale - Added property:
order
to esri/renderers/UniqueValueRendererBy Classes Enabled - Added property:
progress
to esri/rest/support/JobInfo - Added property:
raster
to esri/layers/ImageryTileLayerFunction - Added property:
role
to esri/rest/knowledgeGraph/GraphProperty - Added property:
sketch
to esri/widgets/Editor.visibleElementsTooltip Controls - Added method:
duplicate
to esri/widgets/Sketch, esri/widgets/Sketch/SketchViewModel - Added method:
find
to esri/layers/SubtypeGroupLayerSublayer For Feature - Added method:
from
to esri/webmap/BookmarkJSON - Added method:
load
to esri/layers/SubtypeGroupLayer, esri/layers/TileLayerAll - Added method:
measure
to esri/layers/ImageryLayer, esri/rest/imageServiceArea And Perimeter - Added method:
measure
to esri/layers/ImageryLayer, esri/rest/imageServiceDistance And Angle - Added method:
measure
to esri/layers/ImageryLayer, esri/rest/imageServiceHeight - Added method:
measure
to esri/layers/ImageryLayer, esri/rest/imageServicePoint Or Centroid - Added method:
query
to esri/layers/support/Sublayer, esri/layers/support/SubtypeSublayerAttachments - Added method:
submit
to esri/networks/Network, esri/networks/UtilityNetworkTopology Validation Job - Added method:
to
to esri/webmap/BookmarkJSON - Added method:
validate
to esri/networks/Network, esri/networks/UtilityNetworkTopology
Deprecated classes, properties, methods, events
View Popup autocasting deprecation
In a continuous effort to optimize the performance of the API, more specifically the load time, the decision was made to stop bundling the Popup with the MapView and SceneView. The Popup widget receives new features regularly, such as when browsing related records. Each new feature added to the popup widget increases the amount of built code and size of the widget that is being sent to the web browser. For example, the Popup module, which is bundled with the MapView, represents around 50% of the size of the bundle.
In a future release, the Popup widget loading will be deferred until the view is ready and will only be loaded if there are layers with a popup configured since it is only useful once content is displayed on the view. This will not disturb the user experience and the popup will still show up when the end user clicks on popup enabled content.
If you are interested in testing this optimization, make sure to check out the early access release description in the CHANGELOG, where we will provide more details and strategies to upgrade your code as we get closer to the next release.
The following are deprecated and will be removed in a future release:
- Compatibility with implementations that don't support async/await at runtime, within AMD modules, is deprecated since version 4.25. For example, Angular applications using esri-loader will need to migrate from AMD modules to using @arcgis/core ES modules.
- CreateWorkflow deprecated since version 4.23. Use CreateFeaturesWorkflow instead.
- CreateWorkflowData.edits deprecated since 4.23. Use CreateFeaturesWorkflow.pendingFeatures to access edits made to the workflow data.
- CreateWorkflowData deprecated since version 4.23. Use CreateFeaturesWorkflowData instead.
Directions.route
deprecated since version 4.24. Use url from layer instead.Service Url Directions.route
deprecated since version 4.24. Use directionLines from layer instead.Symbol Directions.stop
deprecated since version 4.24. Use RouteStopSymbols from layer instead.Symbols Directions
deprecated since version 4.24. Use highlight instead.View Model.highlight Segment Directions
deprecated since version 4.24. Use url from layer instead.View Model.route Service Url Directions
deprecated since version 4.24. Use directionLines from layer instead.View Model.route Symbol Directions
deprecated since version 4.24. Use stops from layer instead.View Model.stops Directions
deprecated since version 4.24. Use RouteStopSymbols from layer instead.View Model.stop Symbols - Editor.startCreateWorkflowAtFeatureCreation deprecated since version 4.23. Instead use startCreateFeaturesWorkflowAtFeatureCreation
- Editor.startCreateWorkflowAtFeatureEdit deprecated since 4.23
- Editor.startCreateWorkflowAtFeatureTypeSelection deprecated since version 4.23. Instead use startCreateFeaturesWorkflowAtFeatureTypeSelection instead.
- Editor.useDeprecatedCreateWorkflow deprecated since version 4.23. Although new at 4.23, this property was introduced to help migrate from the legacy CreateWorkflow to the updated CreateFeaturesWorkflow. Once CreateWorkflow is fully removed, this property will no longer be necessary.
- EditorViewModel.startCreateWorkflowAtFeatureCreation deprecated since version 4.23. Instead use startCreateFeaturesWorkflowAtFeatureCreation.
- EditorViewModel.startCreateWorkflowAtFeatureEdit deprecated since 4.23
- EditorViewModel.startCreateWorkflowAtFeatureTypeSelection deprecated since version 4.23. Instead use startCreateFeaturesWorkflowAtFeatureTypeSelection.
- EventAttachedCallback.EventAttachedCallback deprecated since version 4.24. Use reactiveUtils.ReactiveListenerChangeCallback() instead.
- FeatureTable.clearHighlights deprecated since version 4.25. Use highlightIds.removeAll() instead.
- FeatureTable.clearSelection deprecated since version 4.25. Use highlightIds.removeAll() instead.
- FeatureTable.deselectRows deprecated since 4.25. Use highlightIds.remove() instead.
- FeatureTable.fieldConfigs deprecated since version 4.24. Use FieldColumnTemplate via the FeatureTable's tableTemplate.
- FeatureTable.highlightOnRowSelectEnabled deprecated since version 4.25. Use highlightEnabled instead.
- FeatureTable.selection-change deprecated since version 4.25. Listen for changes on highlightIds instead.
- FeatureTable.selectRows deprecated since 4.25. Use highlightIds.add() instead.
- FeatureTableViewModel.clearHighlights deprecated since version 4.25. Use highlightEnabled instead.
- FeatureTableViewModel.clearSelection deprecated since version 4.25. Use highlightEnabled instead.
- FeatureTableViewModel.fieldConfigs deprecated since version 4.24. Use FieldColumnTemplate via the FeatureTable's tableTemplate.
- FeatureTableViewModel.highlightOnRowSelectEnabled deprecated since version 4.25. Use highlightEnabled instead.
- FeatureTableViewModel.selectRows deprecated since 4.25. Use highlightIds.add() instead.
- FieldColumn.config deprecated since version 4.24. Use FieldColumnTemplate via the FeatureTable's tableTemplate.
- FieldColumnConfig deprecated since version 4.24. Use FieldColumnTemplate via the FeatureTable's tableTemplate.
- FieldElement.editable deprecated since version 4.26. Use
editable
instead. AssigningExpression editable
values ofExpression "true"
and"false"
will have the same effect as assigningtrue
andfalse
toeditable
. - FieldGroupConfig.visibilityExpression deprecated since version 4.23. Set fields via the GroupElement.visibilityExpression
- FieldGroupConfig deprecated since version 4.23. Set field groupings via the GroupElement.
esri/layers/support/
deprecated since version 4.24. Use ImageParameters instead.Image Parameters Heatmap
is deprecated since version 4.24. Use radius instead.Renderer.blur Radius Heatmap
is deprecated since version 4.24. Use maxDensity instead.Renderer.max Pixel Intensity Heatmap
is deprecated since version 4.24. Use minDensity instead.Renderer.min Pixel Intensity - InputFieldGroup.visibilityExpression deprecated Since 4.23. Use groupElement.visibilityExpression
- Lighting deprecated since version 4.24. Use SunLighting instead.
- PausableWatchHandle.PausableWatchHandle deprecated since version 4.24.
- PromisedWatchHandle.PromisedWatchHandle deprecated since version 4.24. Use Promise instead.
- promiseUtils.create deprecated since version 4.24. Use Promise instead.
- The
allow
property within Editor.layerInfos is deprecated at 4.25. Use eitherAttachments attachments
orOn Create Enabled attachments
instead.On Update Enabled - UtilityNetwork.rulesTableId deprecated since version 4.25. Use networkSystemLayers.rulesTableId instead.
- UtilityNetwork.rulesTableUrl deprecated since version 4.25. Use networkSystemLayers.rulesTableUrl instead.
- UtilityNetwork.subnetworksTableId deprecated since version 4.25. Use networkSystemLayers.subnetworksTableId instead.
- UtilityNetwork.subnetworksTableUrl deprecated since version 4.25. Use networkSystemLayers.subnetworksTableUrl instead.
- VoxelVariable deprecated since 4.25. Use VoxelVariable instead.
- VoxelVolumeStyle deprecated since 4.25. Use VoxelVolumeStyle instead.
- watchUtils.init deprecated since 4.24. Use reactiveUtils.watch() instead.
- watchUtils.on deprecated since 4.24. Use reactiveUtils.on() instead.
- watchUtils.once deprecated since 4.24. Use reactiveUtils.once() instead.
- watchUtils.pausable deprecated Since 4.24.
- watchUtils.watch deprecated since 4.24. Use reactiveUtils.watch() instead.
- watchUtils.when deprecated since 4.24. Use reactiveUtils.when() instead.
- watchUtils.whenDefined deprecated since 4.24. Use reactiveUtils.when() instead.
- watchUtils.whenDefinedOnce deprecated since 4.24. Use reactiveUtils.whenOnce() instead.
- watchUtils.whenEqual deprecated since 4.24. Use reactiveUtils.when() instead
- watchUtils.whenEqualOnce deprecated since 4.24. Use reactiveUtils.whenOnce() instead.
- watchUtils.whenFalse deprecated since 4.24. Use reactiveUtils.when() instead.
- watchUtils.whenFalseOnce deprecated since 4.24. Use reactiveUtils.whenOnce() instead.
- watchUtils.whenNot deprecated since 4.24. Use reactiveUtils.when() instead.
- watchUtils.whenNotOnce deprecated since 4.24. Use reactiveUtils.whenOnce() instead.
- watchUtils.whenOnce deprecated since 4.24. Use reactiveUtils.whenOnce() instead.
- watchUtils.whenTrue deprecated since 4.24. Use reactiveUtils.when() instead.
- watchUtils.whenTrueOnce deprecated since 4.24. Use reactiveUtils.whenOnce() instead.
- watchUtils.whenUndefined deprecated since 4.24. Use reactiveUtils.when() instead.
- watchUtils.whenUndefinedOnce deprecated since 4.24. Use reactiveUtils.whenOnce() instead.
- watchUtils deprecated since version 4.24. Use reactiveUtils instead.
The following are deprecated from the public TypeScript definitions and will be removed in a future release.
I
deprecated since version 4.25. Use nativePromise Promise
instead.- Instances of
*
deprecated since 4.25. Update usage ofConstructor __esri.
toModule Constructor typeof __esri.
, orModule import
the module from typings and change the type assignment totypeof Module
.
Breaking changes
- ImageryTileLayer's default title is now created from its URL like other layers instead of the name property from the service's root resource.
- Setting Editor.layerInfos
update
toEnabled false
will not disable the ability todelete
features. Prior to this release, settingupdate
toEnabled false
would prevent both updates and deletes on a feature. Now if deletes are needed, it is necessary to also setdelete
toEnabled true
. - The default value of VoxelIsosurface.colorLocked changed from
true
tofalse
. - The Editor widget's UI has been slightly updated to show snapping settings using an accordion component rather than a popover.
- The
global
property of GraphSearchStreaming was replaced withIds Filter ids
.Filter - The networkService.fetchServiceDescription() method now returns an object with a
default
property of type TravelMode instead of type string.Travel Mode - Retired WebGL1: Loading a SceneView now requires a device which supports WebGL2.
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/Event | Alternate option | Version deprecated |
---|---|---|
esri/widgets/ | esri/analysis/SlicePlane | 4.23 |
Knowledge Graph beta changes
The knowledgeGraphService remains in beta. Capabilities in version 4.26 are only supported against ArcGIS Enterprise 11.1 and later. To access a knowledgeGraphService on ArcGIS Enterprise 11.0 and earlier, use version 4.25.
In 4.26/Enterprise 11.1, the data model and service definition of knowledge graph services were updated.
With the exception of Graph
, this change will not break client-side code written using the methods for knowledgeGraphService.
The table below lists the knowledge graph properties that have been removed at this release:
Property | Alternate Option |
---|---|
Knowledge | fetchKnowledgeGraph() returns the data model |
Graph | idsFilter |
Graph | SearchIndex |
Relationship and Relationship | RelationshipType.endpoints |
Relationship and Relationship | none |
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-000135050: Fixed an issue where Popups would not display attachments when sublayers on a MapImageLayers had AttachmentsContent configured. This only applies to map services on ArcGIS Enterprise version 10.8.1 and above.
- BUG-000146636: Fixed an issue where using the Zoom To action in popups would zoom passed the selected geometry's extent.
- BUG-000153564: Fixed an issue where VectorTileLayer intermittently stopped drawing some tiles at certain zoom levels.
- BUG-000153928: Fixed an issue where Area Measurement failed if the second point was added via a double-click instead of single click.
- BUG-000154063: Fixed an issue in the FeatureTable widget where edits would periodically not save correctly after quickly scrolling through table records.
- BUG-000154321: Fixed an issue where LineOfSightViewModel
observer
andtargets
returned z-values in varying elevation modes. Now all z-positions are returned as absolute values. - BUG-000154335: Fixed an issue in the FeatureTable widget where only the default fields were displayed for SceneLayer with associated FeatureLayer.
- BUG-000154436: Fixed an issue in the FeatureTable widget where hiding a child column contained within a grouped column would not work correctly. This has been fixed and these contained columns can be hidden when programmatically setting their visibility to
false
. - BUG-000154467: Fixed an issue where null or invalid values were returned in form expressions when the calculation was dependent on the field currently being calculated.
- BUG-000154629: Fixed an issue where DynamicLayer was not honoring transparency.
- BUG-000154645: Fixed an issue where calling FeatureLayer.save() resulted in bad JSON if the layer had a renderer with UniqueValueGroups containing values with the less-than sign (<) or the greater-than sign (>).
- BUG-000151127: Fixed an issue where a WebScene with 3D symbols does not display if the portal URL is set to a different portal.
- Esri Community - 1231460: Fixed an issue where users aren't able to set a container coming from another context (iframe, window).
- Esri Community - 1240962: Fixed a regression in WebTileLayer where
fetch
could not be overridden when creating a custom subclass.Tile() - Esri Community - 1241411: Fixed an issue where an AbortError thrown when deleting a layer after changing its definitionExpression.
- Esri Community - 1242600: Fixed an issue where the MapView.takeScreenshot() was not taking high resolution screenshots.
- Esri Community - 1248727: Fixed a Dutch translation issue with the Search widget results popup title.
- Esri Community - 1250753: Fixed an issue where StreamLayer custom parameters were not updated at runtime.
- Fixed an issue where an ImageryLayer was displaying a white background around the exported image causing layers underneath to not be visible.
- Fixed an issue where MediaContent charts in a popup displaying information from a relationship were only showing one related feature.
- Fixed an issue where MediaContent charts in a popup were not drawing when displaying information from a related table.
- Fixed an issue where two
query
requests were sent to the service when selecting a feature that had AttachmentsContent in its Popup.Attachments - ENH-000121116: Enhanced the TextSymbol class to allow backgroundColor, borderLineColor, and borderLineSize properties to now work with FeatureLayer.
- ENH-000152699: Added support for ImageryTileLayer referencing a tiled image services with LODs that are not power of two.
- ENH-000155208: Enhanced TileLayer to highlight the selected feature when displaying its Popup.
- Enhanced the Directions widget with improved summary and per-turn distances.
- MediaLayer.source can now be an individual ImageElement or VideoElement. The source can still be a collection of image and video elements.
- Enhanced the SpatialReference by adding unit to return the unit of measure for the spatial reference and metersPerUnit to easily convert from one spatial reference unit to another.
Additional packages
Version 4.26 of the ArcGIS Maps SDK for JavaScript uses ArcGIS Arcade 1.21 (since 4.26).
Version 4.26 of the ArcGIS Maps SDK for JavaScript uses Calcite Design System, version 1.0.7.
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
- Version 4.30 - June 2024
- Version 4.29 - February 2024
- Version 4.28 - October 2023
- Version 4.27 - June 2023
- Version 4.26 - February 2023
- Version 4.25 - November 2022
- Version 4.24 - June 2022
- Version 4.23 - March 2022
- Version 4.22 - December 2021