A comprehensive guide to all breaking changes for the ArcGIS Maps SDK for JavaScript, ordered by release version. This guide is helpful for people upgrading versions of the API in their app(s). Scroll down to find the current version of the API in use, then follow the changes up to the latest version, and make the relevant updates.
To see all the latest features and advancements, please refer to the Release Notes. To see all the added features and advancements from all versions, please refer to the Previous Versions Release Notes section.
4.34
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/ | Use TableMenuConfig, Calcite components - Dropdown, Calcite components = List, or Calcite components - Menu web components instead. | 4.30 | 
esri/widgets/ | Use TableMenuItemConfig instead. | 4.30 | 
esri/widgets/ | Use TableMenuConfig, Calcite components - Dropdown, Calcite components = List, or Calcite components - Menu web components instead. | 4.30 | 
Raster | Use RasterStretchRenderer.customStatistics instead. | 4.31 | 
esri/ | Use esri/time/TimeExtent instead. | 4.31 | 
esri/ | Use esri/time/TimeInterval instead. | 4.31 | 
Version | Use esri/versionMangement/VersioningState. | 4.30 | 
Version | Use esri/versionMangement/VersioningState. | 4.30 | 
Version | Use esri/versionMangement/VersioningState. | 4.30 | 
Utility | The gdbVersion of the UtilityNetwork will be consumed directly. | 4.31 | 
Utility | The gdbVersion of the UtilityNetwork will be consumed directly. | 4.31 | 
Validate | The gdbVersion of the UtilityNetwork will be consumed directly. | 4.28 | 
Validate | Use VersionManagementService.startReading. | 4.29 | 
4.33
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: 
esriThis breaking change includes the projectOperator, shapePreservingProjectOperator, geographicTransformationUtils as well as the geodetic and geodesic operators, and the legacy projection module.Config.assets Path = "https ://mywebsite.com/assets";  polygonnow returns a result object that includes the polygon array result as well as the correspondingOverlay Operator idsthat represent the indexes of the polygons in the input array.- WebStyleSymbol.fetchSymbol now returns any type of symbol instance the WebStyleSymbol refers to. Pass 
{ acceptedas options to fetchSymbol to retrieve only 3D symbols.Formats : ["web"] }  - Cloning a Graphic no longer populates the 
layerproperty 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 thelayerproperty 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/Event | Alternate option | Version deprecated | 
|---|---|---|
LayerList List | ListItemPanel.icon | 4.30 | 
TableList List | ListItemPanel.icon | 4.30 | 
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 
serieslevel to inside of atemporalproperty.Binning  rotationproperty is moved from theserieslevel to thechartlevel.- The 
exportmethod on the Chart component is deprecated since 4.33. UseImage exportinstead.As Image  - All 
subreferences on the Chart component are renamed toTitle subtitle. Webinterface is deprecated, useMap Web Chart Webinstead.Chart Webinterface is deprecated, useMap Web Box Plot Webinstead.Box Plot Webinterface is deprecated, useMap Web Gauge Chart Webinstead.Gauge Chart Webinterface is deprecated, useMap Web Radar Chart Webinstead.Radar Chart RESTinterface is deprecated, useStatistic Type Webinstead.Chart Statistic Type percentilestatistic type is deprecated, use_cont percentile-continuousinstead.percentilestatistic type is deprecated, use_dist percentile-discreteinstead.
4.32
Core API breaking changes
- The v1 Basemap styles were deprecated at 4.28 and removed from the documentation at 4.30. The underlying services are no longer available, and we have removed the IDs from the API source code. Use v2 Basemap styles instead or see other basemap options.
 - The places service was updated in February 2025, which only affected the categoryIds. Please reference the Places category finder for the updated values.
 - By default, typings now include 
nullandundefinedwhere appropriate. This enhances type safety and makes them compatible with projects wherestrictorstrictare enabled.Null Checks  - Installations using local npm builds with the stand-alone rollup module bundler will need to modify the rollup configuration file in order to eliminate runtime errors. More information is available in the rollup sample's README.
 - The 
openproperty was removed from the UtilityNetworkAssociationType. This property is no longer needed to display associations in popups. - For AreaMeasurement2D and DistanceMeasurement2D snapping behavior is now disabled by default. See AreaMeasurement2DViewModel.snappingOptions and DistanceMeasurement2DViewModel.snappingOptions to enable snapping.
 
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 | 
|---|---|---|
Area | How area and perimeter are computed depends on the map's spatial reference. See more in the Area description. | 4.29 | 
Basemap | Use visibleElements.editTitleButton, dragEnabled and selectionMode instead | 4.29 | 
Basemap | Use selectionMode instead | 4.29 | 
Bookmarks.editing | Use visible, visible, and drag instead | 4.29 | 
Bookmarks.visible | Use visible instead | 4.29 | 
Button | Use the TableMenuItemConfig's icon property instead | 4.27 | 
Button | Use the TableMenuItemConfig's icon property instead | 4.27 | 
Create | Use the Create option instead | 4.29 | 
Create | Use the Create option instead | 4.29 | 
Create | Use the Create option instead | 4.29 | 
Create | Use the Create option instead | 4.29 | 
Create | Use the Create option instead | 4.29 | 
Distance | How distance is computed depends on the map's spatial reference. See more in the Distance description. | 4.29 | 
Editor.allowed | Use Editor.visible and Editor.visible instead | 4.29 | 
Editor | Use Editor.visible and Editor.visible instead | 4.29 | 
Editor | Use Editor instead | 4.29 | 
Elevation | How distances are computed depends on the map's spatial reference. See more in the Elevation description. | 4.29 | 
Elevation | How distances are computed depends on the map's spatial reference. See more in the Elevation description. | 4.29 | 
external | Use Render instead. | 4.29 | 
Imagery | Use ImageryTileLayer.serviceRasterInfo instead. | 4.29 | 
Layer | Use selectionMode instead | 4.29 | 
Layer | Use dragEnabled and selectionMode instead | 4.29 | 
Locate.rotation | Use Track.rotation instead | 4.29 | 
Mesh.create | Use Scene instead | 4.29 | 
Popup.collapse | Use Visible instead | 4.29 | 
Popup.spinner | Use Visible instead | 4.29 | 
Table | Use selectionMode instead | 4.29 | 
Table | Use dragEnabled and selectionMode instead | 4.29 | 
Time | Use timeUtils.getTimeSliderSettingsFromWebDocument instead. | 4.29 | 
time | Use timeUtils.getTimeSliderSettingsFromWebDocument instead. | 4.30 | 
WCS | Use WCSLayer.serviceRasterInfo instead. | 4.29 | 
Map components breaking changes
- The arcgis-map and arcgis-scene components are no longer created with a default basemap. Use the 
basemaporitem-idattribute to set the basemap on the component, or set theMapin JavaScript. Settingbasemap="none"is no longer valid; to create a map without a basemap simply avoid setting thebasemapattribute. Note that if you don't assign a basemap, thearcgisevent will not fire until the map's properties are updated.View Ready Change  - The Swipe component 
drag-labelattribute was removed. Uselabelinstead. arcgis-sketch.updatewas removed. Usearcgis-sketch.triggerinstead.Update - The default position of the Navigation Toggle component was changed to 
"top-left"to align with the default position of Zoom and Compass components. 
Charts components breaking changes
- Replaced all existing charts components with the 
arcgis-chartcomponent.- HTML tag names need to be updated from 
arcgis-charts-bar-charttoarcgis-chart. - Class references need to be updated from 
ArcgistoCharts Bar Chart Arcgis.Chart  - Typings need to be updated from 
HTMLtoArcgis Charts Bar Chart Element HTML.Arcgis Chart Element  configproperty is nowmodel.
 - HTML tag names need to be updated from 
 - Changed event payloads for 
arcgis,Data Process Complete arcgis,Legend Item Visibility Change arcgis,Series Color Change arcgisandSelection Complete arcgis.Axes Min Max Change  - Renamed 
actiontoBar Hide Actions Props hiddenfor theActions arcgis-charts-action-barcomponent.- The type 
Actionis nowBar Hide Actions Props Default.Chart Actions[]  
 - The type 
 - Removed the following interfaces: 
Web,Chart Probability Plot Series Web, andChart Profile Graph Series Web.Chart Probability Plot Kinds  - Removed 
orderfromBy Fields Web, useChart Series Query orderinstead.Options  - Updated 
settoCategory() setwhen settingX Axis Field() Xproperties in the bar chart model. 
4.31
Charts components breaking changes
Charts components are still in beta, so the API and user experience may change based on user feedback or an improved design. The following properties were updated/removed in this release:
- Set the 
binproperty toTemporal Data trueby default for Bar chart date axes; previously, it was set tofalse. - Refactored event names for all
Charts Components (e.g., 
arcgisis nowCharts Data Process Error arcgis).Data Process Error  - Removed deprecated properties from Charts Components: 
show. This feature is no longer supported.Duplicated Labels On Continuous Axis  - Removed deprecated properties from the Charts Model: 
get,Color Type() set. UseColor Type() getandColor Match() setinstead.Color Match()  - Removed deprecated properties from the chart specification: series' 
rotated, series'color, Pie series'Type sort, axis'Labels By scrollbar.Visible rotatednow is available at the chart level,colorcan be used instead ofMatch color,Type sortis nowLabels By orderandOptions axis.scrollbaris nowVisible axis.scrollbar.visible. - Moved the 
stackedproperty to a different level within the chart specification.Type  - Renamed the 
nonemode tohidein theWebspecification; the behavior remains the same.Chart Label Behavior  
Additional breaking changes
- The ArcGIS JavaScript SDK components angular wrapper package, 
@arcgis/map-components-angular, is no longer available with version 4.31. Use ESM imports to individually load components instead. See the Angular sample on the jsapi-resources GitHub repository. - Version 4.31 is the last release of the AMD npm package 
arcgis-js-api. Use components or the @arcgis/core ES modules package, instead. See the Get started with npm guide topic for more information. - The AMD TypeScript declaration files have been retired. Use components or the @arcgis/core ES modules package, instead. See the Get started with npm guide topic for more information.
 - The npm package 
@arcgis/clihas been retired. Use components or the @arcgis/core ES modules package and Calcite, instead. See the Get started with npm guide topic for more information. - The 
esri-loaderlibrary has been retired. Use components or the @arcgis/core ES modules package, instead. See the Get started with npm guide topic for more information. - Removed 
decimal-degreesvalue from property SizeVariable.valueUnit and AuthoringInfo.lengthUnit. - Removed 
layoutandTemplate Info layoutfrom PrintViewModel, use getLayoutTemplateById instead.Template North Arrow Info  - Changed name of the 
lineproperty in Association togeometry. - Removed the default 
"world-elevation"value from thearcgis-scenecomponent'sgroundproperty. Users can still set the property or attribute. The default value was removed to more closely mimic the behavior of the core API's SceneView. - The SDK will automatically use the locale defined via the lang attribute on the root html element, or the locale of the browser.
 
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 | 
|---|---|---|
Group | GroupInput.open | 4.28 | 
Handle | Accessor.addHandles() and removeHandles() | 4.28 | 
Image | ImageHistogramParameters.rasterFunction | 4.27 | 
Image | ImageIdentifyParameters.rasterFunction | 4.27 | 
Image | ImageIdentifyParameters.rasterFunctions | 4.27 | 
Imagery | ImageryLayer.rasterFunction | 4.27 | 
Mosaic | MosaicRule.itemRasterFunction | 4.27 | 
Scene | Atmosphere conditions are now automatically chosen | 4.27 | 
Voxel | VoxelVariable | 4.25 | 
Voxel | VoxelVolumeStyle | 4.25 | 
4.30
Components breaking changes
For an improved developer experience (e.g., readability and code writing), Map and Coding components have been updated to use a new event naming pattern, arcgis, instead of arcgis. For example, the Bookmarks ready event name was changed from arcgis to arcgis. This change does not affect view based components such as arcgis-map and arcgis-scene.
Navigational components, such as Zoom, no longer display by default in the arcgis-map and arcgis-scene components. The only default component in a map or scene will be the attribution. All other components need to be added manually like so:
<arcgis-map basemap="dark-gray-vector" center="-90,38" zoom="5">
  <arcgis-zoom position="top-left"></arcgis-zoom>
  <arcgis-home position="top-right"></arcgis-home>
</arcgis-map>Additional breaking changes
- 
For local builds using TypeScript, we are in the process of making the SDK's TypeScript definitions strict null compatible. To complete that process, null/undefined types have been temporarily removed at version 4.30. A potential workaround for specific SDK errors is use a
//@ts-expect-error strictcomment on the preceding line.Null Checks  - 
Earlier versions of the API will not honor the timeExtent of Bookmarks authored at version 4.30 or later due to a WebMap serialization error.
 - 
FeatureEffect.toJSON() now returns the
includedandEffect excludedas an array of objects withEffect typeandamountproperties. Previously these were string values. - 
If you are creating custom classes extending Accessor, following our guide, you need to may need update your class's constructor to pass the arguments to the super constructor:
Use dark colors for code blocks Copy @property("MyClass") class MyClass extends Accessor { constructor(properties: Pick<MyClass, "myString">) { // This previously worked // super(); // now super(properties); } @property() myString: string; } const instance = new MyClass({ myString: "test" }); console.log(instance.myString); - 
For local builds, compatibility with Webpack versions prior to
5.84.0has been removed since 4.29. Upgrade to 5.84.0 or greater. - 
The
DateandPicker Timehave been removed. Use the Input Date Picker and Input Time Picker Calcite components instead.Picker  - 
The
Directionproperty was renamed to DirectionPoint.arrivalTimeOffset.Point.end Time Offset  - 
There is no support for printing with any Printing Service published with ArcMap. Instead, publish new Print Services with ArcGIS Pro.
 - 
VersionManagementViewModel changed return types for
alter,Version change,Version delete,Version create.Version  - 
With the necessary changes needed to move to a more flexible menu system in FeatureTable, the read-only
menuproperty has been removed. Instead, access the menu via FeatureTable.menuConfig which references TableMenuConfig. - 
returnhas been removed as a parameter from the FeatureService.applyEdits method.Service Edits In Source SR  
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 | 
|---|---|---|
Bookmarks | BookmarksViewModel.capabilities | 4.27 | 
Editor.layer | Set attachments or attachments on Editor.LayerInfo | 4.26 | 
Expand.expand | Expand.expandIcon | 4.27 | 
Expand.collapse | Expand.collapseIcon | 4.27 | 
"non-metric" value of ScaleBar.unit | "imperial" | 4.27 | 
Feature | Set FeatureForm.map instead | 4.27 | 
Feature | Call removeAll() on FeatureTable.highlightIds | 4.25 | 
Feature | Call removeAll() on FeatureTableViewModel.highlightIds | 4.25 | 
Feature | Call remove() or removeMany() on FeatureTable.highlightIds | 4.25 | 
Feature | Call remove() or removeMany() on FeatureTableViewModel.highlightIds | 4.25 | 
Feature | highlightEnabled | 4.25 | 
Feature | highlightEnabled | 4.25 | 
Feature event | Listen for FeatureTable.highlightIds | 4.25 | 
Feature | Call add() or addMany() on FeatureTable.highlightIds | 4.25 | 
Feature | Call add() or addMany() on FeatureTableViewModel.highlightIds | 4.25 | 
Lighting | SunLighting | 4.24 | 
Popup.auto | View.popupEnabled | 4.27 | 
Popup | View.popupEnabled | 4.27 | 
Sun | Ambient occlusion is automatically shown and this property has no effect | 4.27 | 
Sun | Reflections are automatically shown and this property has no effect | 4.27 | 
Virtual | Ambient occlusion is automatically shown and this property has no effect | 4.27 | 
Virtual | Reflections are automatically shown and this property has no effect | 4.27 | 
Widget.icon | Widget.icon | 4.27 | 
4.29
- 
At version 4.29, only WebGL2-enabled browsers are supported for both 2D and 3D. See the System Requirements for more information.
 - 
For local builds, using Webpack versions prior to 5.84.0 is not recommended at 4.29. This is related to bug fixes in Webpack.
 - 
The hitTest() method on the MapView no longer includes
layerandId layerin the attributes of a returned graphic for VectorTileLayer. To obtain this information, use the graphic's origin property instead. See the VectorTileLayer hitTest section for more info.Index  - 
The layer property of a graphic returned in the hit test result for VectorTileLayer is now
null. Use the origin.layer property to access which VectorTileLayer the graphic originates from. - 
The
@arcgis/common-components(beta) package was removed, which included thearcgis-api-keyandarcgis-identitycomponents. - 
At version 4.29, ListItemPanels do not include any padding.
 - 
FeatureLayer can no longer be labelled with labelExpression, which is documented as only working with MapImageLayer. Use labelExpressionInfo instead.
 - 
The WFSLayer now uses pagination when fetching features from the service, meaning that multiple requests will be sent to retrieve features instead of just one. To match the previous behavior, set
maxand increase the value ofPage Count : 1 max.Record Count  - 
The Editor's view model no longer creates a single instance of FeatureFormViewModel and SketchViewModel. Prior to this release, if given an instance of EditorViewModel, its
featureandForm View Model sketchproperties always referred to the same single instance of their respective view model class for the entirety of theView Model Editorlifetime. This meant that certain operations using these view models, could run once and remain effective for all subsequent editing workflows, (e.g. setting properties or installing event listeners on them). Beginning with version 4.29, new instances of FeatureFormViewModel and SketchViewModel are used for each editing workflow. When there isn't an active edit workflow, the FeatureFormViewModel and SketchViewModel properties areView Model null. When an editing workflow begins, these properties will have values, but any changes or event handlers made to them are only applicable for the duration of that workflow. - 
The
Meshhas been removed. Use MeshGeoreferencedVertexSpace with an origin instead. If no origin is specified, the georeferenced vertex space will be considered absolute.Georeferenced Relative Vertex Space  - 
Meshes created via create functions, such as createSphere, are now always created with a relative vertex space where mesh coordinates will be offsets to the location at which the mesh is created. Before, mesh coordinates would always be absolute. If the vertex space type is not provided as an option to the create function, then the vertex space is chosen based on the spatial reference. If it is geographic or WebMercator, MeshLocalVertexSpace is used and MeshGeoreferencedVertexSpace otherwise.
 - 
Mesh centerAt will now center meshes with respect to the origin of the vertex space of the mesh. Before, creating a sphere using createSphere at a location, followed by a call to centerAt with the same location as an argument, would move the sphere such that the sphere center aligns with the location. Now calling centerAt with the same location at which the mesh was created will not have any effect. Use offset or adjust the centerAt location by
mesh.extent.height/2. - 
The
Fetchtype definition in the Popup class had the following properties removed from the API at this release:Popup Features Result Property Replacement FetchPopup Features Result.client Only Graphics FetchPopup Features Result.all Graphics Promise FetchPopup Features Result.promises Per Layer View FetchPopup Features Result.all Graphics Promise FetchPopup Features Promises Per Layer View N/A  
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 | 
|---|---|---|
Create | CreateFeaturesWorkflow | 4.23 | 
Create | CreateFeaturesWorkflowData | 4.23 | 
Editor.start | Editor.startCreateFeaturesWorkflowAtFeatureCreation | 4.23 | 
Editor.start | Editor.startCreateFeaturesWorkflowAtFeatureEdit | 4.23 | 
Editor.start | Editor.startCreateFeaturesWorkflowAtFeatureTypeSelection | 4.23 | 
Editor.use | No longer applicable | 4.23 | 
Editor | EditorViewModel.startCreateFeaturesWorkflowAtFeatureCreation | 4.23 | 
Editor | EditorViewModel.startCreateFeaturesWorkflowAtFeatureEdit | 4.23 | 
Editor | EditorViewModel.startCreateFeaturesWorkflowAtFeatureTypeSelection | 4.23 | 
Feature | FeatureFormViewModel.inputs | 4.27 | 
Feature | call removeAll from FeatureTable.highlightIds | 4.25 | 
Feature | call removeAll from FeatureTableViewModel.highlightIds | 4.25 | 
Field | FieldElement.editableExpression | 4.26 | 
Input | FieldInput | 4.27 | 
Input | GroupInput | 4.27 | 
Locate.use | No longer applicable | 4.27 | 
Track.use | Track.rotationEnabled | 4.27 | 
4.28
Removal of watchUtils
The watch class has been deprecated since version 4.24 and has been removed from the API at this release.
This is a breaking change and applications will need to use reactive instead, which provides significantly improved utilities and convenience functions for watching properties inherited from Accessor.
Check out the Why you should be using reactiveUtils instead of watchUtils blog for more details on how to migrate from watch to reactive.
| watchUtils method | reactiveUtils method | 
|---|---|
watch | reactiveUtils.watch() with the ReactiveWatchOptions initial property set to true | 
watch | reactiveUtils.on() | 
watch | reactiveUtils.once() | 
watch | n/a | 
watch | reactiveUtils.watch() | 
watch | reactiveUtils.when() | 
watch | reactiveUtils.when() | 
watch | reactiveUtils.whenOnce() | 
watch | reactiveUtils.when() | 
watch | reactiveUtils.whenOnce() | 
watch | reactiveUtils.when() | 
watch | reactiveUtils.whenOnce() | 
watch | reactiveUtils.when() | 
watch | reactiveUtils.whenOnce() | 
watch | reactiveUtils.whenOnce() | 
watch | reactiveUtils.when() | 
watch | reactiveUtils.whenOnce() | 
watch | reactiveUtils.when() | 
watch | reactiveUtils.whenOnce() | 
TypeScript breaking changes
- 
The
@types/arcgis-js-apipackage was deprecated in NPM at 4.28. This package was used in AMD-based applications. The definition files are available from the jsapi-resources archive, or NPM installarcgis-js-api. These changes do not affect applications using ES modules with@arcgis/core. - 
ITypeScript definition was removed at 4.28. Use nativePromise Promiseinstead. - 
All instances of
*TypeScript definitions were removed at 4.28. Update usage ofConstructor __esri.toModule Constructor typeof __esri., orModule importthe module from typings and change the type assignment totypeof Module, for example:Use dark colors for code blocks Copy // Type definitions at 4.27 and earlier type IEsriDeps = [ __esri.MapConstructor, __esri.MapViewConstructor ]; // Type definitions at 4.28 and later type IEsriDeps = [ typeof __esri.Map, typeof __esri.MapView ]; 
Additional breaking changes
- Authenticated users that are layer owners, administrators or users with full editing privileges will have their elevated user privileges applied in regards to editing behavior and data access. This mimic the behavior available in Map Viewer. To opt out, set esriConfig.userPrivilegesApplied to 
false. - Legacy basemaps: The legacy 
national-geographicnamed basemap was removed at 4.28. Four of the other legacy basemaps have been redefined to their vector equivalents because they were based on outdated services that are in Mature Support:topo,streets,grayanddark-gray. - The 
autoandauthorization-codevalues for OAuthInfo.flowType no longer check if thepopupproperty is set totrueorfalse. This change affects applications that use theautoflowType and set thepopupproperty totrue. The callback page being used needs to be updated to support two-factor authentication. To aid in this, the default oauth-callback.html has been updated to allow for the two-step approach and will still work if using the one-step flow. - The default format for 
datefields is nowshort-date-short-timerather thanlong-month-day-yearin the Popup, Features, or Feature widgets. For example, a date that may have previously appeared asDecember 30, 1997will now appear as12/30/1997 6.:00 PM  - The default value of VoxelLayer.popupEnabled changed from 
truetofalse. - The MapView.goTo and MapView.toScreen default behavior has been changed to automatically be normalized based on the center of the view.
Set 
pickin the GoToOptions2D or the ToScreenOptions2D toClosest Target falseto disable this behavior. - The 
maxproperty on the Popup widget has been removed due to the widget being refactored to utilize Calcite components.Inline Actions  
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 | 
|---|---|---|
watch | Use reactiveUtils instead | 4.24 | 
Feature | Set the field columns using the FeatureTable's tableTemplate property. This provides access to the columnTemplates. | 4.24 | 
Feature | Set the field columns using the FeatureTable's tableTemplate property. This provides access to the columnTemplates. | 4.24 | 
Field | Use FieldColumnTemplate instead | 4.23 | 
Field | Use FieldElement instead | 4.23 | 
Field | Use GroupElement if working with the FeatureForm widget or GroupColumnTemplate if working with the FeatureTable widget. | 4.23 | 
Utility | Use UtilityNetwork.networkSystemLayers.rulesTableId instead | 4.25 | 
Utility | Use UtilityNetwork.networkSystemLayers.rulesTableUrl instead | 4.25 | 
Utility | Use UtilityNetwork.networkSystemLayers.subnetworksTableId instead | 4.25 | 
Utility | Use UtilityNetwork.networkSystemLayers.subnetworksTableUrl instead | 4.25 | 
4.27
- The Popup widget loading is deferred until the view is ready and finished updating, and will only be loaded if 
View.popupis set toEnabled true(which is the default), whenView.openis called, or when some widgets need the popup, such as Search. In most cases, applications will not need to be updated and will continue to work. However, if attempting to access thePopup() view.popupproperty before it is instantiated, some issues may occur. See Loading the Popup for details on how to update your apps to take advantage of these performance improvements. Alternatively, you can simply create a new instance of the Popup when instantiating the View, as shown in the code snippet below. Note: this will not take advantage of the deferred loading.Use dark colors for code blocks Copy // Create a new MapView const view = new MapView({ // set the popup property to a new instance of Popup popup: new Popup(...) }); - Compatibility with implementations that don't support async/await at runtime, within AMD modules, has been removed at 4.27. For example, some SDK applications using Angular with esri-loader may experience runtime errors, and will need to migrate from AMD modules to using @arcgis/core ES modules.
 - The old workflow of creating a Directions widget without a RouteLayer was deprecated at version 4.24 and is removed at 4.27. Directions widget must be created with a RouteLayer, like in the Directions widget sample.
 - Properties SunLighting.ambientOcclusionEnabled and SunLighting.waterReflectionEnabled have been deprecated with version 4.27 and have no effect. Ambient occlusion and reflections are now automatically controlled by the new adaptive rendering behavior.
 
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 | 
|---|---|---|
promise | Promise | 4.24 | 
Directions.route | url from Directions.layer | 4.24 | 
Directions.route | directionLines from Directions.layer | 4.24 | 
Directions.stop | RouteStopSymbols from Directions.layer | 4.24 | 
Directions | DirectionsViewModel.highlight() | 4.24 | 
Directions | url from DirectionsViewModel.layer | 4.24 | 
Directions | directionLines from DirectionsViewModel.layer | 4.24 | 
Directions | stops from DirectionsViewModel.layer | 4.24 | 
Directions | RouteStopSymbols from DirectionsViewModel.layer | 4.24 | 
esri/layers/support/ | esri/rest/support/ImageParameters | 4.24 | 
4.26
- 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 
updatetoEnabled falsewill not disable the ability todeletefeatures. Prior to this release, settingupdatetoEnabled falsewould prevent both updates and deletes on a feature. Now if deletes are needed, it is necessary to also setdeletetoEnabled true. - The default value of VoxelIsosurface.colorLocked changed from 
truetofalse. - The Editor widget's UI has been slightly updated to show snapping settings using an accordion component rather than a popover.
 - The 
globalproperty of GraphSearchStreaming was replaced withIds Filter ids.Filter  - The networkService.fetchServiceDescription() method now returns an object with a 
defaultproperty of type TravelMode instead of type string.Travel Mode  
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 | 
4.25
- AggregateField is out of beta and no longer has an 
outproperty. Aggregate fields are now defined usingStatistic on, andStatistic Field on.Statistic Expression  - The default value of MapNotesLayer.listMode changed from 
showtohide-children. - The VectorTileLayer.setSpriteSource() method now accepts either a SpriteSourceUrlInfo or
SpriteSourceImageInfo object instead of a 
URLstring to the sprite source. - ClosestFacilitySolveResult.facilities, incidents, pointBarriers and ServiceAreaSolveResult.facilities, pointBarriers changed from type 
Point[]to type FeatureSet. - ClosestFacilitySolveResult.polygonBarriers and ServiceAreaSolveResult.polygonBarriers changed from type 
Polygon[]to type FeatureSet. - ClosestFacilitySolveResult.polylineBarriers and ServiceAreaSolveResult.polylineBarriers changed from type 
Polyline[]to type FeatureSet. - ClosestFacilitySolveResult.routes, ServiceAreaSolveResult.serviceAreaPolygons, and ServiceAreaSolveResult.serviceAreaPolylines changed from type 
Graphic[]to type FeatureSet. - The PopupTemplate.relatedRecordsInfo property has been removed. Use the RelationshipContent.orderByFields property to control the sorting options when working with related records in a popup.
 - The RasterShadedReliefRenderer.hillshadeType default value has been changed from 
multi-directionaltotraditional. - The TimeSlider settings from a WebMap will no longer will automatically applied to the TimeSlider widget on initialization. Use the getPropertiesFromWebMap method instead.
 
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/views/layers/support/ | Use esri/layers/support/FeatureEffect instead | 4.22 | 
esri/views/layers/support/ | Use esri/layers/support/FeatureFilter instead | 4.22 | 
Basemap and Basemap events | Watch the activeBasemap property instead | 4.22 | 
CSV | Use CSVLayerView.featureEffect instead | 4.22 | 
Feature | Use FeatureLayerView.featureEffect instead | 4.22 | 
Geo | Use GeoJSONLayerView.featureEffect instead | 4.22 | 
OGC | Use OGCFeatureLayerView.featureEffect instead | 4.22 | 
Print | Use TemplateOptions.scaleEnabled or PrintTemplate.scalePreserved instead | 4.22 | 
Search | Use SearchViewModel.defaultSymbols instead | 4.22 | 
Stream | Use StreamLayerView.featureEffect instead | 4.22 | 
WFS | Use WFSLayerView.featureEffect instead | 4.22 | 
4.24
- Tasks have been deprecated since 4.20. They were removed at 4.24. The replacements are the classes and modules in the 
esri/restfolder. This will make it easier to incorporate your code into a more modular app design, and also reduce unnecessary dependencies (you only import what you want). The new rest modules are functions, which do not require constructors, so you can use their methods immediately. See the full list of removed task modules in theComplete list of removed tasksdropdown below. - The UI location of default widgets in a MapView or SceneView no longer changes if the app is right-to-left.
 - The API now uses WebGL2 by default, and it will fallback to WebGL1 depending on the browser. Custom WebGL layers using WebGL1-only extensions will need to be updated to detect which context is present and use the correct extension/native WebGL2 feature.
 - The properties 
dateanddisplayhave been removed from the VirtualLighting since this lighting type does not depend on the date and time. But this means that theUTC Offset view.environment.lightingproperty does not always have adateordisplayproperty. For some applications that assume that this property always exists this can be a breaking change.UTC Offset  - MapView.hitTest and SceneView.hitTest hit test results now return an array of GraphicHit, MediaHit,
and RouteHit results. The existing apps that use the 
hitmethod should be updated to check for the result type.Test()  
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 | 
|---|---|---|
Field | Set the editor type via TextAreaInput or TextBoxInput classes set within the field element of a FeatureForm's template. | 4.16 | 
Bookmark.extent | Bookmark.viewpoint | 4.17 | 
promise | Promise.reject() | 4.19 | 
promise | Promise.resolve() | 4.19 | 
widget.renderable | All properties are automatically tracked now and don't need to be decorated with this decorator. | 4.19 | 
Locator | LocatorSearchSource.url | 4.22 | 
The following tasks have been deprecated for at least 3 releases and have now been removed from the API:
| Task removed | Alternate option | Version deprecated | 
|---|---|---|
esri/portal/ | Use closestFacility with helperServices | 4.21 | 
esri/portal/ | Use geometryService with helperServices | 4.21 | 
esri/portal/ | Use print with helperServices | 4.21 | 
esri/portal/ | Use route with helperServices | 4.21 | 
esri/portal/ | Use serviceArea with helperServices | 4.21 | 
esri/tasks/ | closestFacility | 4.20 | 
esri/tasks/ | find | 4.20 | 
esri/tasks/ | geometryService | 4.20 | 
esri/tasks/ | geoprocessor | 4.20 | 
esri/tasks/ | identify | 4.20 | 
esri/tasks/ | imageService | 4.20 | 
esri/tasks/ | imageService.identify | 4.18 | 
esri/tasks/ | locator | 4.20 | 
esri/tasks/ | 4.20 | |
esri/tasks/ | query | 4.20 | 
esri/tasks/ | route | 4.20 | 
esri/tasks/ | serviceArea | 4.20 | 
esri/tasks/ | n/a | 4.20 | 
esri/tasks/support | AddressCandidate | 4.20 | 
esri/tasks/support | AlgorithmicColorRamp | 4.20 | 
esri/tasks/support | AreasAndLengthsParameters | 4.20 | 
esri/tasks/support | AttachmentQuery | 4.20 | 
esri/tasks/support | BufferParameters | 4.20 | 
esri/tasks/support | ClosestFacilityParameters | 4.20 | 
esri/tasks/support | ClosestFacilitySolveResult | 4.20 | 
esri/tasks/support | ColorRamp | 4.20 | 
esri/tasks/support | DataFile | 4.20 | 
esri/tasks/support | DataLayer | 4.20 | 
esri/tasks/support | DensifyParameters | 4.20 | 
esri/tasks/support | DirectionsFeatureSet | 4.20 | 
esri/tasks/support | DistanceParameters | 4.20 | 
esri/tasks/support | FeatureSet | 4.20 | 
esri/tasks/support | FindParameters | 4.20 | 
esri/tasks/support | FindResult | 4.20 | 
esri/tasks/support | GeneralizeParameters | 4.20 | 
esri/tasks/support | GPMessage | 4.20 | 
esri/tasks/support | IdentifyParameters | 4.20 | 
esri/tasks/support | IdentifyResult | 4.20 | 
esri/tasks/support | ImageIdentifyParameters | 4.20 | 
esri/tasks/support | ImageIdentifyResult | 4.20 | 
esri/tasks/support | ImageHistogramParameters | 4.20 | 
esri/tasks/support | ImageServiceIdentifyParameters | 4.18 | 
esri/tasks/support | ImageServiceIdentifyResult | 4.18 | 
esri/tasks/support | JobInfo | 4.20 | 
esri/tasks/support | LegendLayer | 4.20 | 
esri/tasks/support | LengthsParameters | 4.20 | 
esri/tasks/support | LinearUnit | 4.20 | 
esri/tasks/support | MultipartColorRamp | 4.20 | 
esri/tasks/support | NAMessage | 4.20 | 
esri/tasks/support | OffsetParameters | 4.20 | 
esri/tasks/support | ParameterValue | 4.20 | 
esri/tasks/support | PrintParameters | 4.20 | 
esri/tasks/support | PrintTemplate | 4.20 | 
esri/tasks/support | ProjectParameters | 4.20 | 
esri/tasks/support | Query | 4.20 | 
esri/tasks/support | RasterData | 4.20 | 
esri/tasks/support | RelationParameters | 4.20 | 
esri/tasks/support | RelationshipQuery | 4.20 | 
esri/tasks/support | RouteParameters | 4.20 | 
esri/tasks/support | RouteResult | 4.20 | 
esri/tasks/support | ServiceAreaParameters | 4.20 | 
esri/tasks/support | ServiceAreaSolveResult | 4.20 | 
esri/tasks/support | StatisticDefinition | 4.20 | 
esri/tasks/support | TrimExtendParameters | 4.20 | 
4.23
Animated, which was released in beta at version 4.22, was renamed as FlowRenderer in this release.Flow Renderer - Popups using a default template will now display attachments as thumbnail images instead of listed links.
 - Directions.lastRoute and DirectionsViewModel.lastRoute now return a value of type RouteLayerSolveResult.
 - Directions.getDirections() and DirectionsViewModel.getDirections() now return a promise which resolves to RouteLayerSolveResult.
 - Stops added to DirectionsViewModel.stops using add() or addMany() must be of type Stop instead of type Graphic.
 - SliceViewModel.clear() now only clears the SliceViewModel.shape of the slice, without affecting SliceViewModel.excludedLayers and SliceViewModel.excludeGroundSurface. These properties should be cleared manually if desired.
 - In a SceneView, the default vertical alignment of a TextSymbol or TextSymbol3DLayer used outside of a label has changed from 
middletobaseline. To revert to the alignment behavior of previous releases, set theverticalof the text symbol toAlignment middle. 
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 | 
|---|---|---|
Time | timeExtent | 4.20 | 
Time | timeExtent | 4.20 | 
Point | vertices | 4.19 | 
Editor.layer | layerInfos[].formTemplate.elements[] | 4.21 | 
Editor.supporting | layerInfos[].formTemplate.elements[] | 4.21 | 
4.22
- Removed the public 
.tsxWidget view source code files for all out-of-the-box widgets. This change does not affect the ability to build custom widgets, extend the ViewModel or customize widget CSS. - Attachment elements within popups no longer display 
listas the default displayType. Instead oflist, it defaults toauto. - Originally released as beta in 4.20, the analysis layers, DirectLineMeasurementLayer and AreaMeasurementLayer, have been removed in favor of an upcoming implementation.
 - Removed 
justifyas a possible value for TextSymbol.horizontalAlignment. - The 
basemapparameter in all smartMapping methods within theesri/smartfolder was deprecated at version 4.13 and is now replaced by theMapping/renderers viewparameter. - Updated the CoordinateConversion widget by removing the Geometry Service for cases when the coordinateFormatter didn't load due to using an outdated browser. The 
requestproperty was removed from the CoordinateConversion widget and CoordinateConversionViewModel.Delay  - Updated the request flow of workers so that an after interceptor receives the expected data type.
CSVLayer will now receive the expected data types 
jsonortext. This means after interceptors that were expectingarray-buffersfor client-side layers such as GeoJSONLayer and CSVLayer will now receive the expected data typesjsonortext. 
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 | 
|---|---|---|
Chart | ChartMediaInfoValueSeries.value | 4.17 | 
Chart | ChartMediaInfoValueSeries.tooltip | 4.17 | 
decorators.declared() | declared is no longer needed to extend Accessor anymore. See Implementing Accessor for updated information. | 4.16 | 
esri/layers/support/ | esri/rest/query/support/AttachmentInfo | 4.19 | 
Field | TextAreaInput or TextBoxInput | 4.16 | 
params.color in univariateColorSize.createContinuousRenderer() | params.theme | 4.18 | 
params.color in univariateColorSize.createContinuousRenderer() | params.legend | 4.18 | 
params.size in univariateColorSize.createContinuousRenderer() | params.legend | 4.18 | 
projection.is | projection.is is no longer needed since support for IE11 was removed at version 4.18. | 4.18 | 
Slider.labels | Slider.visibleElements.labels | 4.15 | 
Slider.range | Slider.visibleElements.rangeLabels | 4.15 | 
Size | SizeVariable.valueExpression | 4.2 | 
symbol | symbolUtils | 4.11 | 
widget.@renderable | No alternative is required. | 4.19 | 
4.21
- Field configurations can no longer be set on the FeatureForm. Instead, configure the fields via the FieldElement or GroupElement. Set these elements on either the form or feature layer's formTemplate.
 - ShadowAccumulation widget has been renamed to ShadowCast widget.
 - ShadowAccumulationViewModel has been renamed to ShadowCastViewModel.
 - The FeatureForm widget has changed the way it handles a a value’s input. Prior to version 4.21, field values were processed and applied using 
on. Moving forward, this has been updated to useBlur onwith values getting validated as a user types. Date values will only be appliedInput onif the value is valid. It will subsequently be committed or discardedInput onbased on the final value.Blur  
The following classes, methods, properties and events have been deprecated for at least 2 releases and have been removed from the API:
| Class/Property/Method/Event | Alternate option | Version deprecated | 
|---|---|---|
Basemap | BasemapLayerList.visibleElements.statusIndicators | 4.15 | 
Bookmarks.bookmark | Bookmarks.defaultCreateOptions | 4.18 | 
esri/tasks/ | imageService.identify | 4.18 | 
esri/tasks/support/ | ImageIdentifyResult | 4.18 | 
esri/tasks/support/ | ImageIdentifyParameters | 4.18 | 
Feature and Feature | FormTemplate.description set either on the FeatureForm or FeatureLayer formTemplate | 4.18 | 
Feature and Feature | FieldElement/GroupElement set in the FormTemplate.elements | 4.16 | 
Feature and Feature | FormTemplate.title set either on the FeatureForm or FeatureLayer formTemplate | 4.18 | 
4.20
- CodedValueDomain.codedValues now returns an array of CodedValue type definition objects. Prior to this, it used an array of generic objects. The properties within the 
codedhave not changed.Value  Rotateis now reported in degree by the SketchViewModel.Event Info.angle - The keyboard shortcut key has changed from 
CtrltoShiftin Sketch and SketchViewModel for creating apolgyongraphic (rectangleorcircle) with predefined shapes. - The keyboard shortcut key has changed from 
CtoEnterin Sketch, SketchViewModel, and Draw for completing apolyline,polygon, orpointgraphic. 
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 | 
|---|---|---|
Bookmarks.select-bookmark | Bookmarks.bookmark-select | 4.17 | 
Bookmarks | BookmarksViewModel.BookmarkOptions.captureViewpoint | 4.17 | 
Feature | FeatureTemplates.visibleElements.filter | 4.15 | 
Popup.feature | Popup.visibleElements.featureNavigation | 4.15 | 
4.19
- The IdentityManager's 
setmethod andRedirection Handler useproperty were removed at 4.19. This was a result of Enterprise Portal apps no longer making use of this functionality beginning with the upcoming Enterprise 10.9.1 release.Sign In Page  - The InputField and FieldElement hint property has been updated to display a temporary placeholder for text and number inputs for both TextAreaInput and TextBoxInput. Prior to this, whatever was set in the FieldElement's hint would display as a tooltip while hovering over the input field.
 - In order to disable any default actions in a Popup, it is now necessary to set includeDefaultActions to 
false. Prior to version 4.19, this was not necessary. All that was needed to remove a default action, e.g. the "Zoom to" button, was to directly set the popup's actions. This would disable the "Zoom to" button from displaying. - FieldElement input types of 
InputandTexthave been removed in favor of exposing only their subclass types. These subclass types include TextAreaInput, TextBoxInput, and DateTimePickerInput. In addition to the latter three types, some additional new input types were also included at 4.19. These include BarcodeScannerInput, RadioButtonsInput, and ComboBoxInput. No properties or functionality was removed withInput InputandText. These two classes' properties are now accessible directly from their subclasses.Input  esri/layers/support/has been moved to esri/rest/query/support/AttachmentInfo. While the older class will still work with JavaScript, you will need to update the reference to the new class location to get the correct typings with TypeScript.Attachment Info - The 
@renderabledecorator has been deprecated and removed in the esri widgets helper class. Nothing else is required by the developer as widgets should still work as expected. - If extending a class that implements Accessor, it is no longer necessary to use 
dependswith theOn @propertydecorator when defining an Accessor property. - The Custom Recenter widget sample has been removed from the SDK samples. For more information visit the Building your UI guide page.
 - Removed the 
requestproperty from the following tasks (Options requestis still available as an optional method parameter): ClosestFacilityTask, FindTask, GeometryService, IdentifyTask, ImageIdentifyTask, ImageServiceIdentifyTask, PrintTask, RouteTask, ServiceAreaTask.Options  
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 | 
|---|---|---|
Project | ProjectParameters.outSpatialReference | 4.4 | 
Basemap | BasemapToggle.visibleElements.title | 4.15 | 
Area | AreaMeasurement2DViewModel.clear() | 4.16 | 
Area | AreaMeasurement2DViewModel.start() | 4.16 | 
Area | AreaMeasurement3DViewModel.clear() | 4.16 | 
Area | AreaMeasurement3DViewModel.start() | 4.16 | 
Distance | DistanceMeasurement2DViewModel.clear() | 4.16 | 
Distance | DistanceMeasurement2DViewModel.start() | 4.16 | 
Direct | DirectLineMeasurement3DViewModel.clear() | 4.16 | 
Direct | DirectLineMeasurement3DViewModel.start() | 4.16 | 
Print | PrintTemplate.scalePreserved | 4.16 | 
Slice | SliceViewModel.clear() | 4.16 | 
Slice | SliceViewModel.start() | 4.16 | 
4.18
- No support for IE11/Edge Legacy. Support for Internet Explorer 11 and Edge Legacy was deprecated at version 4.16, and ends at version 4.18. See our updated System Requirements page and the Why is Esri ending support for Internet Explorer 11? blog to learn more.
 - The default format for the 
takemethod on MapView and SceneView has changed toScreenshot() pnginstead ofjpg. - The 
mediaproperty was removed from OGCFeatureLayer. All requests for metadata and data content will be made with theType "f=json"url parameter. - FeatureForm.getValues() will now always return an Object with updated attributes. Prior to this, it would return 
nullif there was no feature provided. - FeatureForm.getValues() will return 
undefinedif there is no existing attribute on the edit feature. This is meant to distinguish from validnullvalues. - The FeatureTable widget no longer uses the layer's maxRecordCount to determine pagination size. It automatically defaults to 
50records unless the layer contains less than this. If so, it will take this count and set the pagination to it. - Updated the callback for intl.onLocalChange() to return a LocaleChangeCallback instead of a 
Function. - The default mode for the defaultCreateOptions on the Sketch widget has changed to 
clickinstead ofhybrid. - The 
Routeproperty has been removed. It was deprecated as of version 4.11. Use pointBarriers, polygonBarriers, and/or polylineBarriers instead.Parameters.barriers  
4.17
- For better memory management, 
view.destroy()now destroys all attached resources, including the map. To prevent the map from being destroyed, you can unset the map before callingdestroy(). 
// destroy the view and all attached resources
view.destroy();
// unset map from the view so that it is not destroyed
// then destroy the view and all attached resources
const map = view.map;
view.map = null;
view.destroy();- The ActionButton and ActionToggle classes now correctly implement their 
typesas eitherbuttonortoggle. Prior to this, it was set asstring. - The 
gomethod in the Feature widget and its corresponding viewModel has been renamed to setActiveMedia.To Media()  - The 
tablesproperty for WebMap now takes a collection of Layers instead of an array of Objects. - The 
Timeproperty now has a default value ofSlider.loop falseinstead oftrue. - Service metadata for all layers and tables are now collectively fetched from 
Featureendpoint as opposed to each layer fetching its metadata from its dedicated endpoint, e.g.Server/layers/ REST (.Feature Server/ <layer ID >)  Streamwas deprecated at version 4.15 and is now removed. Use StreamLayer.purgeOptions.maxObservations instead.Layer.maximum Track Points - Using applyEdits to add geometries with z-values to a FeatureLayer with 
hasno longer silently drops the z-value and now throws an error.Z : false  - Performance improvements were made to Popups. Prior to this release, it was possible to access the popup feature's geometry without having to specify 
outon the FeatureLayer or the PopupTemplate. It was always recommended to set this, but was never required. Going forward, if needing access to the underlying feature's geometry, this property must be set. This also holds true if working with WebMaps containing popups. If a popup does not have a referenced Arcade expression that works with geometry, it is now required to access either the WebMap's layer or its PopupTemplate and set theFields out.Fields  
4.16
- Removed Dojo promises. Native Promises have been activated by default. The 
hasflag"esri-native-promise"is no longer supported. - Removed use of Dojo’s 
declaremodule. This means that apps with classes that leverage the API class framework and multiple inheritance will stop working. The recommended approach is to use mixins with Accessor. - The 
Tileis removed and replaced by the ImageryTileLayer.Imagery Layer  - The TimeExtent's intersection method now returns an instance of TimeExtent with 
undefinedvalues for start and end properties if the two time extents do not intersect. - The suspended property of the View is now set to 
falsewhen the view container's css stylevisibilityis set tohidden(visibility). The view is hidden but it renders and updates data now.:hidden  - CIMSymbol's data property now only supports CIMSymbolReference JSON. The CIMSymbol JSON should be applied at 
cim.Symbol.data.symbol  
4.15
- API returns native 
Promiseby default as of 4.15. See API Modernization for more information. dgridstyles are no longer globally included. If usingdgridin your web application, you will need to reference the stylesheet separately.- Removed 
Image, which was deprecated since version 4.11. Set MeshTexture on MeshMaterial.colorTexture instead.Mesh Color  - Removed 
require, which was deprecated since version 4.10. Use promiseUtils.create() instead.Utils  - Removed 
Value, which was deprecated since version 4.11. Use MeshMaterial.color instead.Mesh Color  - Removed 
capabilitiesandversionproperties from StreamLayer. - The 
updateevent on Sketch widget and SketchViewModel no longer havecancelstate. The parameterabortedonupdateevents indicates that the process got cancelled. - The 
attachmentproperty has been removed from AttachmentsContent. It is now handled via the Attachments widget and can be accessed via its viewModel.Infos  - The Workflow.data property now returns either a CreateWorkflow or UpdateWorkflow reference.
 - The Editor widget and the EditorViewModel's 
activeproperty now returns either a reference to either a CreateWorkflow or UpdateWorkflow.Workflow  - The Workflow edits are now referenced in the Edits class.
 
4.14
- When the propagation of an event is stopped on the View, then the propagation of any derived events are stopped. For example, when 
stopis called on an immediate-click event, click and double-click events are no longer emitted. WhenPropagation() stopis called on an pointer-up event, immediate-click, click and double-click are no longer emitted. This makes implementing event handlers easier, since applications usually want to handle only one of those event types at a time.Propagation()  - FeatureLayerView.queryFeatures and GeoJSONLayerView.queryFeatures results will no longer include 
z-valuesin 2D MapView even if the query.returnZ is set totrue. - The Sketch has a new property called creationMode with a default value of 
continuous. This allows you to continuously create graphics with same geometry types by default. This is different from the widget's default behavior in previous releases, where you could create a single graphic at a time. - To select or unselect multiple vertices during a graphic update operation using the Sketch widget, we now use 
Shift + Left-clickcombination instead ofCtrl + Left-clickon vertices. - 2D measurement widgets changed the base class from 
esri-area-measurement-3dtoesri-area-measurement-2dand fromesri-direct-line-measurement-3dtoesri-distance-measurement-2d. - Removed the 
getmethod from MapImageLayer. This method was deprecated since version 4.11. We recommend extending BaseDynamicLayer instead.Image Url()  - Removed the 
value-changeandvalues-changeevents from Slider and HistogramRangeSlider. These events were deprecated since version 4.13. We recommend watching the values property or using the other widget events instead. - Removed Hindi (hi) as a supported locale.
 - Classes related to ArcGIS Workflow Manager have been removed. They were marked as deprecated starting with version 4.13.
 - The HTML sanitizer was added to all widgets to sanitize and escape strings according to the ArcGIS Online supported HTML specification. This can cause HTML set in PopupTemplate.content or in other widgets to be removed.
 
4.13
- The 
Stretchis removed and replaced by the RasterStretchRenderer.Renderer  - The Geoprocessor class has been modernized, which required several changes:
- Removed the 
updateproperty.Delay  - Removed the 
cancelmethod.Job Status Updates()  - The submitJob() method now immediately returns with a promise that resolves a JobInfo, as soon as the job is successfully submitted to the server. Previously, the returned promise was resolved only after the request succeeded. Now you can use the waitForJobCompletion() method to get notified of job completion and optionally of job status.
 - The getResultMapImageLayer() method now returns a promise, which when resolved, returns a MapImageLayer. Previously, a 
Mapwas returned.Image Layer  - When the getResultData() method requests data from 
GPorFeature Record Set Layer GPit returns a DataFile when aRecord Set urlproperty is detected. 
 - Removed the 
 - Removed the 
modeproperty from theAreaandMeasurement2 D Distancewidgets and ViewModels. See Measurement Enhancements for more information.Measurement2 D  - Removed the 
pixelandSize X pixelproperties from ImageServiceIdentifyParameters. Use pixelSize property instead.Size Y  - Removed the 
domainproperty ImageryLayer. Use fields property instead.Fields  - Removed the 
hasandRaster Attribute Table rasterproperties from ImageryLayer. Use the ImageryLayer's serviceRasterInfo.attributeTable property instead.Attribute Table  - Removed 
resetmethod from Sketch and SketchViewModel. Use cancel method on respective classes. - Removed 
value-changeevent from SliderViewModel. - Removed the default tabindex on the bars of the Histogram widget. All slider widgets that implement Histogram, including HistogramRangeSlider and all smart mapping sliders, are affected by this change. To tab through histogram bars, the app developer should use barCreatedFunction to set a tabindex of 
0to each bar element. - Removed 
filterandupdatefrom StreamLayer.Filter  - Removed 
connect,disconnect,graphics, andupdatefrom StreamLayerView.Filter  
4.12
- ClassBreaksRenderer.getClassBreakInfo() was changed from a synchronous to an asynchronous function.
 - UniqueValueRenderer.getUniqueValueInfo() was changed from a synchronous to an asynchronous function.
 - As part of performance optimizations, incorrect polygon geometries that don't follow the expected clockwise order, no longer display. Polygon rings should be clockwise, with counterclockwise rings considered holes.
 - Changed locatorTask.locationToAddress() arguments from 
(location, distance, requestto now acceptOptions) (params, request. TheOptions) paramsobject has two properties:location and location.Type  - Changed the behavior for the queries queryExtent(), queryFeatureCount(), queryFeatures() and queryObjectIds() in SceneLayerView that the required fields needs to be defined with 
Scenein advance.Layer.out Fields  - Changed the behavior of color in SceneView to be consistent with MapView. If the color value of a graphic is set to 
nullit will display transparent. - Full SQL support is now provided for where clauses on the LabelClass in 3D. Old where clauses that didn't implement strict SQL syntax might break.
 - Moved classes Search, SearchLayer and SearchLayerField from webscene.applicationProperties to the 
webdoc.applicationmodule, common for WebMap and WebScene.Properties  - Removed 
actionsproperty from Popup.Menu Enabled  - Removed 
dotandBlending Enabled referenceproperties from DotDensityRenderer.Dot Value  - Removed 
distanceparameter from esri/widgets/Search and esri/tasks/Locator as it is deprecated and no longer recognized by the World Geocoding Service. - Removed 
localandSearch Options locationproperties from esri/widgets/Search. These properties were deprecated at version 4.11.To Address Distance  - Removed 
materialproperty from the base class Symbol3DLayer. With this new behavior, subclasses of Symbol3DLayer implement thematerialproperty independently. - Removed 
noproperty from ImageServiceIdentifyParameters.Data  - Removed 
timeproperty from TimeInfo. Use fullTimeExtent property instead.Extent  - Replaced 
esri/widgets/with esri/widgets/smartMapping/ColorSizeSlider.Color Size Slider  - Replaced 
esri/widgets/with esri/widgets/smartMapping/ColorSlider.Color Slider  - Replaced 
esri/widgets/with esri/widgets/smartMapping/SizeSlider.Size Slider  - The PopupTemplate's 
contentand/ortitlecan no longer be set using a wildcard, e.g.*. Instead, set thePopup'sdefaultPopupTemplateEnabled property to true. - The 
Date,String Date, andFormat Numberformatter functions are no longer supported when used with a PopupTemplate'sFormat contentand/ortitle. Instead, set it via the FieldInfo's fieldInfoFormat. - The 
noparameter is now nested within theData Value optionsparameter when using ElevationLayer.fetchTile() method. - Use the new esri/intl module and its respective methods in places referencing the 
esri/core/lang.substitute(),dojo/number.format(), anddojo/date.format()methods. - Using parameterized functions in a PopupTemplate's 
contentand/ortitleare no longer supported. - When neither 
height, norwidthare set for PathSymbol3DLayer then the symbol doesn't render. This is a breaking change from previous versions when not settingsizeused to renderer the symbol with a height and a width of 1 meter. 
4.11
- The behavior of FeatureLayer.outFields has changed. It is no longer computed to include fields required for layer labeling, rendering, editing and elevation info. It now returns 
nullunless it is explicitly set.- In general, you no longer need to specify the outFields. The API automatically determines which fields to fetch. However, if you are using the fields in custom functionality, you might still need to explicitly add those using the outFields property.
 - To find out which fields are available client-side, use the new availableFields property. It contains a list of attribute fields fetched for each feature including fields required for layer labeling, rendering, elevation info, and any additional fields defined with the FeatureLayer.outFields property. The availableFields is populated when the layer view is finished updating.
 
 - Query.units property's default value is now 
nullinstead ofmeters. - Sublayer.createFeatureLayer() now returns a promise resolving to a FeatureLayer, as opposed to a FeatureLayer.
 - Autocasting is no longer supported for Mesh geometry.
 - Change to how texture transparency is interpreted in esri/geometry/support/MeshMaterial. Before, values below 
0.1would be interpreted as fully transparent (i.e. masking), now this threshold was moved to0.5. If the old behavior is desired, the threshold can now be explicitly changed using the alphaCutoff property. - Moved the 
selectmethod out of FeatureTemplates and into the FeatureTemplatesViewModel. - Removed 
contentproperty on both the Feature widget and the FeatureViewModel.Enabled  - Removed 
esri/geometry/class.Screen Point  - Removed 
Legendsupport from MapNotesLayer. - Removed 
tokenproperty from all layer classes. The recommended approach to pass a token on a layer is to use IdentityManager.registerToken() or to use esriConfig.request.interceptors. - Removed the 
viewproperty from Feature widget and FeatureViewModel. - The MapImageLayer.getImageUrl() method now returns 
null. - Renamed 
definitionproperty of AttachmentQuery class to where.Expression  - Renamed 
definitionproperty of RelationshipQuery class to where.Expression  - Renamed 
Templateto TemplateItemGroup.label.Item Group.name  - Renamed 
Featureclass to LayerSearchSource.Layer Search Source - The renamed LayerSearchSource class now takes a Layer property as opposed to a 
Feature.Layer  - The 
sourcesproperty within the Directions.SearchProperties object now takes a LayerSearchSource as opposed toFeature.Layer Search Source  
 - The renamed LayerSearchSource class now takes a Layer property as opposed to a 
 - As part of adding 3D drawing support, the 2D draw classes have moved:
- Moved 
esri/views/2d/draw/to esri/views/draw/Draw.Draw  - Moved 
esri/views/2d/draw/to esri/views/draw/DrawAction.Draw Action  - Moved 
esri/views/2d/draw/to esri/views/draw/PointDrawAction.Point Draw Action  - Moved 
esri/views/2d/draw/to esri/views/draw/PolylineDrawAction.Polyline Draw Action  - Moved 
esri/views/2d/draw/to esri/views/draw/PolygonDrawAction.Polygon Draw Action  - Moved 
esri/views/2d/draw/to esri/views/draw/MultipointDrawAction.Multipoint Draw Action  - Moved 
esri/views/2d/draw/to esri/views/draw/SegmentDrawAction.Segment Draw Action  
 - Moved 
 - Several popup related classes have been moved, renamed or removed:
- Removed 
Chartclass fromesri/support/.Content Element/ Media/ Chart  - Removed 
Mediaclass fromesri/support/.Content Element/ Media/ Media  - ExpressionInfo class moved from 
esri/support/toExpression Info esri/popup/.Expression Info  - FieldInfo class moved from 
esri/support/toField Info esri/popup/.Field Info  - LayerOptions class moved from 
esri/support/toLayer Options esri/popup/.Layer Options  - RelatedRecordsInfo class moved from 
esri/support/toRelated Records Info esri/popup/.Related Records Info  - Renamed 
Contentclass fromElement esri/support/to content and moved toContent Element esri/popup/content. - Renamed 
Contentclass fromElement esri/support/to Content and moved toContent Element/ Content Element esri/popup/content/.Content  - Renamed 
Attachmentsclass fromesri/support/to AttachmentsContent and moved toContent Element/ Attachments esri/popup/content/.Attachments Content  - Renamed 
Fieldsclass fromesri/support/to FieldsContent and moved toContent Element/ Fields Content esri/popup/content/.Fields Content  - Renamed 
Textclass fromesri/support/to TextContent and moved toContent Element/ Text esri/popup/content/.Text Content  - Renamed 
Mediaclass fromesri/support/to MediaContent and moved toContent Element/ Media esri/popup/content/.Media Content  - Renamed 
Barclass fromChart esri/support/to BarChartMediaInfo and moved toContent Element/ Media/ Bar Chart esri/popup/content/.Bar Chart Media Info  - Renamed 
Fieldsclass fromOrder esri/support/to RelatedRecordsInfoFieldOrder and moved toRelated Records Info/ Field Order esri/popup/support/.Related Records Info Field Order  - Renamed 
Formatclass fromesri/support/to FieldInfoFormat and moved toField Info/ Format esri/popup/support/.Field Info Format  - Renamed 
Seriesclass fromesri/support/to ChartMediaInfoValueSeries and moved toContent Element/ Media/ Chart/ Series esri/popup/content/support/.Chart Media Info Value Series  - Renamed 
Valueclass fromesri/support/to ChartMediaInfoValue and moved toContent Element/ Media/ Chart/ Value esri/popup/content/support/.Chart Media Info Value  - Renamed 
Columnclass fromChart esri/support/to ColumnChartMediaInfo and moved toContent Element/ Media/ Column Chart esri/popup/content/.Column Chart Media Info  - Renamed 
Lineclass fromChart esri/support/to LineChartMediaInfo and moved toContent Element/ Media/ Line Chart esri/popup/content/.Line Chart Media Info  - Renamed 
Pieclass fromChart esri/support/to PieChartMediaInfo and moved toContent Element/ Media/ Pie Chart esri/popup/content/.Pie Chart Media Info  - Renamed 
Imageclass fromesri/support/to ImageMediaInfo and moved toContent Element/ Media/ Image esri/popup/content/.Image Media Info  - Renamed 
Valueclass fromesri/support/to ImageMediaInfoValue and moved toContent Element/ Media/ Image/ Value esri/popup/content/support/.Image Media Info Value  
 - Removed 
 - A graphic can only be in one GraphicsLayer at a time. When adding a graphic to a graphics layer, and if it is already in another graphics layer, the graphic is moved to the destination graphics layer.
 - The developer and user experiences for 2D highlights have been improved in three ways:
- soft, anti-aliased edges
 - decreased default opacity that is now consistent with the default settings used in 3D
 - modified coverage algorithm that now highlights the transparent portions of lines and polygons
 
 
4.10
- Renamed the Esri Icon Font family from 
CalcitetoWeb Core Icons calcite-web-iconsfor 2D MapViews. - Removed FeatureLayer.capabilities.query.supportsAttachments from esri/layers/FeatureLayer.
 - Creating a FeatureLayer from client-side features now requires a 
typeproperty to be set for each field. - The 
Fieldclass has been removed and merged with the FieldConfig class.Options  - Removed the ability of 
event.stopto allow manual display of a Popup with the view's click event. Set the new autoOpenEnabled toPropagation() falseinstead. - All documentation for 
Identityhas been merged into IdentityManager.Manager Base  
4.9
- Bookmark class moved from 
esri/widgets/toBookmarks/ Bookmark esri/webmap/.Bookmark  Featuremethod is removed. Use FeatureLayer.queryAttachments instead.Layer.query Feature Attachments() - Functions can no longer be used in renderers and visual variables in place of fields. Use the valueExpression property instead.
 - Removed esriConfig's request properties: 
cors,Detection cors,Detection Timeout cors,Enabled Servers force, andProxy useproperties.Cors  - Removed the 
allowrequestOption property from the esriRequest method. Also removed it as a property from MapImageLayer, BingMapsLayer, and OpenStreetMap options. The API automatically allows this without having to explicitly set it.Image Data Access  - Removed the 
isproperty from ClassBreaksRenderer.Max Inclusive  - Removed the 
popupproperty from Search widget and SearchViewModel.Open On Select  - Set the new 
trustedproperty available in esriConfig's request property if needing to include credentials such as cookies and authorization headers in cross origin requests. Prior to version 4.9, this would be handled by setting corsEnabledServersServers withproperty toCredentials true. - CSS style, 
esri-widget, was renamed to__header .esri-widget.__heading  - SceneView.goTo() method now queries the target location for elevation if the target doesn't have a z-value. This means that the promise will not resolve immediately anymore, even if the 
animateoption is set tofalse. 
4.8
- Corrected format and layout TemplateOptions values to be consistent with documentation.
 - Removed 
minproperty from pointSizeAlgorithm.Size  - FeatureLayerView.queryFeatures() and CSVLayerView.queryFeatures() now resolve to a FeatureSet an array of graphics.
 - SketchViewModel.update() now accepts graphic instead of geometry.
 - SketchViewModel's 
draw-startevent was renamed to create-init,draw-cancelto create-cancel anddraw-completecreate-complete andupdate-startwas renamed to update-init. - The 
always()andotherwise()methods were deprecated at 4.7 and have been removed as of version 4.8. - Removed 
defaultfrom both the Search widget and SearchViewModel. Instead, use the defaultSources property.Source  - The 
stateproperty was removed from the Search widget and added into the SearchViewModel. - In 3D, during continuous camera movement, updates on FeatureLayers with large data sets may be suspended until the continuous camera movement has finished.
 - CSS class, 
.esri-widget-button, has been renamed to.esri-widget--button(take note of the two dashes--beforebutton). - The 
Actionclass has been deprecated. You should now use either ActionButton or ActionToggle in its place. - To access a Graphic's PopupTemplate, use the getEffectivePopupTemplate method. Prior to version 4.8, if the popupTemplate was not defined on the Graphic, it would use the 
popupfrom the graphic's layer.Template  - Removed support for using Bower to install the ArcGIS Maps SDK for JavaScript into a local project. We recommend moving to npm to take advantage of more web development tools.
 
4.7
- Changed 
layersproperty tolayerin AttributionItem. - Removed 
classificationproperty from ClassBreaksRenderer.Method  - Removed 
createproperty from LayerList and LayerListViewModel (useActions Function listinstead).Item Created Function  - Removed 
graphicproperty from draw-complete. - Removed 
styleproperty from LabelSymbol3D.Origin  - Removed 
then()method from all classes (use when() instead when using Promises). 
4.6
attributionandText itemhave moved from AttributionViewModel to the Attribution widget.Delimiter - Altitude constraints are no longer applied in local scenes.
 - SceneView.goTo and MapView.goTo always return a Promise and not a ViewAnimation anymore.
 - The Search widget's 
searchingproperty has been replaced with state. relationproperty on Query is renamed to relationParameter.Param relationproperty on RelationParameters is renamed to relationParameter.Param - VectorTileLayer's url property type is 
Stringonly now. When initializing a VectorTileLayer with style JSON object, use VectorTileLayer's style property instead. 
4.5
- The 
typeproperty in all renderer, symbol, and symbol layer classes is no longer read-only. - Changed 
typevalue for many renderers for consistent kebab-casing:- UniqueValueRenderer.type was changed from 
uniquetoValue unique-value. - ClassBreaksRenderer.type was changed from 
classtoBreaks class-breaks. - PointCloudClassBreaksRenderer.type was changed from 
pointtoCloud Class Breaks Renderer point-cloud-class-breaks. - PointCloudRGBRenderer.type was changed from 
pointtoCloud RGB Renderer point-cloud-rgb. - PointCloudStretchRenderer.type was changed from 
pointtoCloud Stretch Renderer point-cloud-stretch. - PointCloudUniqueValueRenderer.type was changed from 
pointtoCloud Unique Value Renderer point-cloud-unique-value. - SimpleMarkerSymbol.type was changed from 
simple-marker-symboltosimple-marker. - SimpleLineSymbol.type was changed from 
simple-line-symboltosimple-line. - SimpleFillSymbol.type was changed from 
simple-fill-symboltosimple-fill. - PictureMarkerSymbol.type was changed from 
picture-marker-symboltopicture-marker. - PictureFillSymbol.type was changed from 
picture-fill-symboltopicture-fill. - TextSymbol.type was changed from 
text-symboltotext. - PointSymbol3D.type was changed from 
point-symbol-3dtopoint-3d. - LineSymbol3D.type was changed from 
line-symbol-3dtoline-3d. - PolygonSymbol3D.type was changed from 
polygon-symbol-3dtopolygon-3d. - MeshSymbol3D.type was changed from 
mesh-symbol-3dtomesh-3d. - LabelSymbol3D.type was changed from 
label-symbol-3dtolabel-3d. - WebStyleSymbol.type was changed from 
web-style-symboltoweb-style. 
 - UniqueValueRenderer.type was changed from 
 - ElevationLayers are always visible at the slide level when saving a scene with API 4.5 to Portal 10.5.1 (or earlier).
 - The 
zoomproperty in Search sources now automatically uses the set scale. Prior to this version, it would only zoom to the scale if the search result did not have an associated extent.Scale  - The Search widget's search() method returns a Promise which, when resolved, returns a SearchResponse similar to the search-complete event.
 - Both the Search widget and its corresponding viewmodel's suggest() method returns a Promise which, when resolved, returns a SuggestResponse similar to the suggest-complete event.
 - Removed the 
cancelfrom SearchViewModel.Suggest  - Removed the Graphic 
getmethod. Instead, if the graphic's popupTemplate is not defined, it will use the graphic's layerEffective Popup Template popup.Template  - Removed 
minandScale maxproperties from ElevationLayer.Scale  
4.4
- As of version 4.4, the response for the locator.locationToAddress() method returns a proper AddressCandidate. This bug fix affects two of five AddressCandidate properties: 
addressandattributes. Note that there are no changes to the other AddressCandidate properties:extent,locationandscore.- Prior to 4.4, 
locationincorrectly returned an object that always had an emptyTo Address() attributesproperty, and theaddressstring was an object. As of 4.4, theaddressproperty is a string, and theattributesproperty will be populated. - Specifying an exact field, e.g. 
Country, should now be written asCode attributes.. (Prior to this version, it was written asCountry Code address..)Country Code  - The popup sample using reverse geocoding has been updated to reflect this change.
 
 - Prior to 4.4, 
 - Esri icon font styles and codes have been updated, resulting in some codes being changed or used for new icon fonts.
 - ViewAnimation.stop() now rejects the ViewAnimation promise.
 - 3D Symbol layer types changed name style and now use kebab-casing to be consistent with the rest of the API.
 - The orientation of 3D WebStyleSymbols was updated. Now the forward-facing side of the symbol points in the direction of the y-axis (North). Setting a heading of 
0on a ObjectSymbol3DLayer will make the symbol point North and setting it to180will make the symbol point South. In comparison to the old styles, Signs and signals and Street scene changed orientation by 180 degrees and Transportation changed by 90 degrees. - As of version 4.x, the recommended approach to pass a token on a layer is to use IdentityManager.registerToken(). Prior to this in 3.x, it was possible to pass a token to a layer either via 1) the layer's 
tokenproperty, or 2) appending it to the end of the layer URL. - The Search widget's sources property has a new 
filteroption which replaces the now deprecatedsearch,Query Params suggest, andQuery Params searchproperty.Extent  - If developing custom widgets, configuration settings should be updated to reflect 
"jsxinstead ofFactory" : "tsx", "react. This is discussed in the TypeScript setup guide topic.Namespace" : "jsx Factory",  - For the light values passed into external renderers, the balance between ambient and diffuse lighting has changed. This may result in a slightly different appearance for objects rendered with external renderers. The new light values represent colors/intensities in linear color space, and are optimized for gamma-corrected rendering with a gamma value of 2.1.
 - At 4.4, the view.click event will close the popup if the clicked location doesn't intersect a feature with a popup template. You may want to disable this default behavior if opening the popup with custom content or keep it open when the view is clicked. To do so, you must call 
stopon the click event object.Propagation()  
4.3
sizewas renamed to sizeRendererCreator.createVisualVariables() because it now returns an array of visual variables.Renderer Creator.create Visual Variable() 
4.2
- The following VectorTileLayer properties are removed: 
ACCESS_TOKEN  - To increase security, browsers are starting to block Geolocation API on insecure pages, meaning that the Locate button will not work from non-secure web pages (i.e., hosted on http). Google Chrome first implemented this in version 50(April 2016) and Apple in Safari 10 (September 2016). Mozilla/Firefox is planning to do the same. At version 4.0 and 3.17 the JSAPI no longer displayed the Locate Button for non-secure web apps in the Chrome browser. As of version 4.2 and 3.19, the JSAPI no longer displays the Locate Button for non-secure web apps in any web browser. Note that localhost is considered "potentially secure" and can be used for easy testing.
 
4.1
- The WebMap.version property was renamed to WebMap.sourceVersion
 - The WebScene.version property was renamed to WebScene.sourceVersion
 - The ClosestFacilityParameters.returnPolygonBarriers property was renamed to ClosestFacilityParameters.returnPolygonBarriers
 - The FeatureLayer.createQueryParameters property was renamed to FeatureLayer.createQuery
 - The Popup's dockOptions' position property now accepts a function in addition to a known string value.
 - The NavigationToggle was added to the default widgets for SceneView.
 - The Geoprocessor.getResultImageLayer() method was replaced by Geoprocessor.getResultMapImageLayer(). Please see its SDK documentation for signature changes.
 layer-add,layer-remove, andlayer-reorderevents were removed from GroupLayer, Map and its subclasses. Use the change event ofesri/core/instead.Collection 
4.0
This was the first official release of the 4x API. Since the prior 4x releases were in beta, they will not be considered here.