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.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 strict
comment 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
included
andEffect excluded
as an array of objects withEffect type
andamount
properties. 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.0
has been removed since 4.29. Upgrade to 5.84.0 or greater. - The
Date
andPicker Time
have been removed. Use the Input Date Picker and Input Time Picker Calcite components instead.Picker - The
Direction
property 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
menu
property has been removed. Instead, access the menu via FeatureTable.menuConfig which references TableMenuConfig. return
has 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
layer
andId layer
in 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-key
andarcgis-identity
components. -
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
max
and 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
feature
andForm View Model sketch
properties always referred to the same single instance of their respective view model class for the entirety of theView Model Editor
lifetime. 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
Mesh
has 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
Fetch
type definition in the Popup class had the following properties removed from the API at this release:Popup Features Result Property Replacement Fetch
Popup Features Result.client Only Graphics Fetch
Popup Features Result.all Graphics Promise Fetch
Popup Features Result.promises Per Layer View Fetch
Popup Features Result.all Graphics Promise Fetch
Popup 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-api
package was deprecated in NPM at 4.28. This package was used in AMD-based applications. Download the latest definition files from the jsapi-resources archive, or NPM installarcgis-js-api
. These changes do not affect applications using ES modules with@arcgis/core
. -
I
TypeScript definition was removed at 4.28. Use nativePromise Promise
instead. -
All instances of
*
TypeScript definitions were removed at 4.28. Update usage ofConstructor __esri.
toModule Constructor typeof __esri.
, orModule import
the 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-geographic
named 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
,gray
anddark-gray
. - The
auto
andauthorization-code
values for OAuthInfo.flowType no longer check if thepopup
property is set totrue
orfalse
. This change affects applications that use theauto
flowType and set thepopup
property 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
date
fields is nowshort-date-short-time
rather thanlong-month-day-year
in the Popup, Features, or Feature widgets. For example, a date that may have previously appeared asDecember 30, 1997
will now appear as12/30/1997 6
.:00 PM - The default value of VoxelLayer.popupEnabled changed from
true
tofalse
. - The MapView.goTo and MapView.toScreen default behavior has been changed to automatically be normalized based on the center of the view.
Set
pick
in the GoToOptions2D or the ToScreenOptions2D toClosest Target false
to disable this behavior. - The
max
property 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.popup
is set toEnabled true
(which is the default), whenView.open
is 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.popup
property 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
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
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
out
property. Aggregate fields are now defined usingStatistic on
, andStatistic Field on
.Statistic Expression - The default value of MapNotesLayer.listMode changed from
show
tohide-children
. - The VectorTileLayer.setSpriteSource() method now accepts either a SpriteSourceUrlInfo or
SpriteSourceImageInfo object instead of a
URL
string 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-directional
totraditional
. - 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/rest
folder. 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 tasks
dropdown 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
date
anddisplay
have 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.lighting
property does not always have adate
ordisplay
property. 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
hit
method 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
middle
tobaseline
. To revert to the alignment behavior of previous releases, set thevertical
of 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
.tsx
Widget 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
list
as 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
justify
as a possible value for TextSymbol.horizontalAlignment. - The
basemap
parameter in all smartMapping methods within theesri/smart
folder was deprecated at version 4.13 and is now replaced by theMapping/renderers view
parameter. - Updated the CoordinateConversion widget by removing the Geometry Service for cases when the coordinateFormatter didn't load due to using an outdated browser. The
request
property 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
json
ortext
. This means after interceptors that were expectingarray-buffers
for client-side layers such as GeoJSONLayer and CSVLayer will now receive the expected data typesjson
ortext
.
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 on
with values getting validated as a user types. Date values will only be appliedInput on
if the value is valid. It will subsequently be committed or discardedInput on
based 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
coded
have not changed.Value Rotate
is now reported in degree by the SketchViewModel.Event Info.angle - The keyboard shortcut key has changed from
Ctrl
toShift
in Sketch and SketchViewModel for creating apolgyon
graphic (rectangle
orcircle
) with predefined shapes. - The keyboard shortcut key has changed from
C
toEnter
in Sketch, SketchViewModel, and Draw for completing apolyline
,polygon
, orpoint
graphic.
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
set
method andRedirection Handler use
property 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
Input
andText
have 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 Input
andText
. 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
@renderable
decorator 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
depends
with theOn @property
decorator when defining an Accessor property. - The Custom Recenter widget sample has been removed from the SDK samples. For more information visit the Custom UI basics guide page.
- Removed the
request
property from the following tasks (Options request
is 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
take
method on MapView and SceneView has changed toScreenshot() png
instead ofjpg
. - The
media
property 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
null
if there was no feature provided. - FeatureForm.getValues() will return
undefined
if there is no existing attribute on the edit feature. This is meant to distinguish from validnull
values. - The FeatureTable widget no longer uses the layer's maxRecordCount to determine pagination size. It automatically defaults to
50
records 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
click
instead ofhybrid
. - The
Route
property 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
types
as eitherbutton
ortoggle
. Prior to this, it was set asstring
. - The
go
method in the Feature widget and its corresponding viewModel has been renamed to setActiveMedia.To Media() - The
tables
property for WebMap now takes a collection of Layers instead of an array of Objects. - The
Time
property now has a default value ofSlider.loop false
instead oftrue
. - Service metadata for all layers and tables are now collectively fetched from
Feature
endpoint as opposed to each layer fetching its metadata from its dedicated endpoint, e.g.Server/layers/ REST (
.Feature Server/ <layer ID >) Stream
was 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
has
no 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
out
on 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
has
flag"esri-native-promise"
is no longer supported. - Removed use of Dojo’s
declare
module. 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
Tile
is removed and replaced by the ImageryTileLayer.Imagery Layer - The TimeExtent's intersection method now returns an instance of TimeExtent with
undefined
values for start and end properties if the two time extents do not intersect. - The suspended property of the View is now set to
false
when the view container's css stylevisibility
is 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
Promise
by default as of 4.15. See API Modernization for more information. dgrid
styles are no longer globally included. If usingdgrid
in 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
capabilities
andversion
properties from StreamLayer. - The
update
event on Sketch widget and SketchViewModel no longer havecancel
state. The parameteraborted
onupdate
events indicates that the process got cancelled. - The
attachment
property 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
active
property 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
stop
is called on an immediate-click event, click and double-click events are no longer emitted. WhenPropagation() stop
is 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-values
in 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-click
combination instead ofCtrl + Left-click
on vertices. - 2D measurement widgets changed the base class from
esri-area-measurement-3d
toesri-area-measurement-2d
and fromesri-direct-line-measurement-3d
toesri-distance-measurement-2d
. - Removed the
get
method from MapImageLayer. This method was deprecated since version 4.11. We recommend extending BaseDynamicLayer instead.Image Url() - Removed the
value-change
andvalues-change
events 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
Stretch
is removed and replaced by the RasterStretchRenderer.Renderer - The Geoprocessor class has been modernized, which required several changes:
- Removed the
update
property.Delay - Removed the
cancel
method.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
Map
was returned.Image Layer - When the getResultData() method requests data from
GP
orFeature Record Set Layer GP
it returns a DataFile when aRecord Set url
property is detected.
- Removed the
- Removed the
mode
property from theArea
andMeasurement2 D Distance
widgets and ViewModels. See Measurement Enhancements for more information.Measurement2 D - Removed the
pixel
andSize X pixel
properties from ImageServiceIdentifyParameters. Use pixelSize property instead.Size Y - Removed the
domain
property ImageryLayer. Use fields property instead.Fields - Removed the
has
andRaster Attribute Table raster
properties from ImageryLayer. Use the ImageryLayer's serviceRasterInfo.attributeTable property instead.Attribute Table - Removed
reset
method from Sketch and SketchViewModel. Use cancel method on respective classes. - Removed
value-change
event 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
0
to each bar element. - Removed
filter
andupdate
from StreamLayer.Filter - Removed
connect
,disconnect
,graphics
, andupdate
from 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, request
to now acceptOptions) (params, request
. TheOptions) params
object 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
Scene
in 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
null
it 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.application
module, common for WebMap and WebScene.Properties - Removed
actions
property from Popup.Menu Enabled - Removed
dot
andBlending Enabled reference
properties from DotDensityRenderer.Dot Value - Removed
distance
parameter from esri/widgets/Search and esri/tasks/Locator as it is deprecated and no longer recognized by the World Geocoding Service. - Removed
local
andSearch Options location
properties from esri/widgets/Search. These properties were deprecated at version 4.11.To Address Distance - Removed
material
property from the base class Symbol3DLayer. With this new behavior, subclasses of Symbol3DLayer implement thematerial
property independently. - Removed
no
property from ImageServiceIdentifyParameters.Data - Removed
time
property 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
content
and/ortitle
can no longer be set using a wildcard, e.g.*
. Instead, set thePopup's
defaultPopupTemplateEnabled property to true. - The
Date
,String Date
, andFormat Number
formatter functions are no longer supported when used with a PopupTemplate'sFormat content
and/ortitle
. Instead, set it via the FieldInfo's fieldInfoFormat. - The
no
parameter is now nested within theData Value options
parameter 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
content
and/ortitle
are no longer supported. - When neither
height
, norwidth
are set for PathSymbol3DLayer then the symbol doesn't render. This is a breaking change from previous versions when not settingsize
used 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
null
unless 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
null
instead 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.1
would 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
select
method out of FeatureTemplates and into the FeatureTemplatesViewModel. - Removed
content
property on both the Feature widget and the FeatureViewModel.Enabled - Removed
esri/geometry/
class.Screen Point - Removed
Legend
support from MapNotesLayer. - Removed
token
property 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
view
property from Feature widget and FeatureViewModel. - The MapImageLayer.getImageUrl() method now returns
null
. - Renamed
definition
property of AttachmentQuery class to where.Expression - Renamed
definition
property of RelationshipQuery class to where.Expression - Renamed
Template
to TemplateItemGroup.label.Item Group.name - Renamed
Feature
class to LayerSearchSource.Layer Search Source - The renamed LayerSearchSource class now takes a Layer property as opposed to a
Feature
.Layer - The
sources
property 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
Chart
class fromesri/support/
.Content Element/ Media/ Chart - Removed
Media
class 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
Content
class fromElement esri/support/
to content and moved toContent Element esri/popup/content
. - Renamed
Content
class fromElement esri/support/
to Content and moved toContent Element/ Content Element esri/popup/content/
.Content - Renamed
Attachments
class fromesri/support/
to AttachmentsContent and moved toContent Element/ Attachments esri/popup/content/
.Attachments Content - Renamed
Fields
class fromesri/support/
to FieldsContent and moved toContent Element/ Fields Content esri/popup/content/
.Fields Content - Renamed
Text
class fromesri/support/
to TextContent and moved toContent Element/ Text esri/popup/content/
.Text Content - Renamed
Media
class fromesri/support/
to MediaContent and moved toContent Element/ Media esri/popup/content/
.Media Content - Renamed
Bar
class fromChart esri/support/
to BarChartMediaInfo and moved toContent Element/ Media/ Bar Chart esri/popup/content/
.Bar Chart Media Info - Renamed
Fields
class fromOrder esri/support/
to RelatedRecordsInfoFieldOrder and moved toRelated Records Info/ Field Order esri/popup/support/
.Related Records Info Field Order - Renamed
Format
class fromesri/support/
to FieldInfoFormat and moved toField Info/ Format esri/popup/support/
.Field Info Format - Renamed
Series
class fromesri/support/
to ChartMediaInfoValueSeries and moved toContent Element/ Media/ Chart/ Series esri/popup/content/support/
.Chart Media Info Value Series - Renamed
Value
class fromesri/support/
to ChartMediaInfoValue and moved toContent Element/ Media/ Chart/ Value esri/popup/content/support/
.Chart Media Info Value - Renamed
Column
class fromChart esri/support/
to ColumnChartMediaInfo and moved toContent Element/ Media/ Column Chart esri/popup/content/
.Column Chart Media Info - Renamed
Line
class fromChart esri/support/
to LineChartMediaInfo and moved toContent Element/ Media/ Line Chart esri/popup/content/
.Line Chart Media Info - Renamed
Pie
class fromChart esri/support/
to PieChartMediaInfo and moved toContent Element/ Media/ Pie Chart esri/popup/content/
.Pie Chart Media Info - Renamed
Image
class fromesri/support/
to ImageMediaInfo and moved toContent Element/ Media/ Image esri/popup/content/
.Image Media Info - Renamed
Value
class 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
Calcite
toWeb Core Icons calcite-web-icons
for 2D MapViews. - Removed FeatureLayer.capabilities.query.supportsAttachments from esri/layers/FeatureLayer.
- Creating a FeatureLayer from client-side features now requires a
type
property to be set for each field. - The
Field
class has been removed and merged with the FieldConfig class.Options - Removed the ability of
event.stop
to allow manual display of a Popup with the view's click event. Set the new autoOpenEnabled toPropagation() false
instead. - All documentation for
Identity
has been merged into IdentityManager.Manager Base
4.9
- Bookmark class moved from
esri/widgets/
toBookmarks/ Bookmark esri/webmap/
.Bookmark Feature
method 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 use
properties.Cors - Removed the
allow
requestOption 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
is
property from ClassBreaksRenderer.Max Inclusive - Removed the
popup
property from Search widget and SearchViewModel.Open On Select - Set the new
trusted
property 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 with
property toCredentials true
. - CSS style,
esri-widget
, was renamed to__header .esri-widget
. For additional information on working with this style, see the Styling guide topic.__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
animate
option is set tofalse
.
4.8
- Corrected format and layout TemplateOptions values to be consistent with documentation.
- Removed
min
property 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-start
event was renamed to create-init,draw-cancel
to create-cancel anddraw-complete
create-complete andupdate-start
was renamed to update-init. - The
always()
andotherwise()
methods were deprecated at 4.7 and have been removed as of version 4.8. - Removed
default
from both the Search widget and SearchViewModel. Instead, use the defaultSources property.Source - The
state
property 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
Action
class 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
popup
from 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
layers
property tolayer
in AttributionItem. - Removed
classification
property from ClassBreaksRenderer.Method - Removed
create
property from LayerList and LayerListViewModel (useActions Function list
instead).Item Created Function - Removed
graphic
property from draw-complete. - Removed
style
property from LabelSymbol3D.Origin - Removed
then()
method from all classes (use when() instead when using Promises).
4.6
attribution
andText item
have 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
searching
property has been replaced with state. relation
property on Query is renamed to relationParameter.Param relation
property on RelationParameters is renamed to relationParameter.Param - VectorTileLayer's url property type is
String
only now. When initializing a VectorTileLayer with style JSON object, use VectorTileLayer's style property instead.
4.5
- The
type
property in all renderer, symbol, and symbol layer classes is no longer read-only. - Changed
type
value for many renderers for consistent kebab-casing:- UniqueValueRenderer.type was changed from
unique
toValue unique-value
. - ClassBreaksRenderer.type was changed from
class
toBreaks class-breaks
. - PointCloudClassBreaksRenderer.type was changed from
point
toCloud Class Breaks Renderer point-cloud-class-breaks
. - PointCloudRGBRenderer.type was changed from
point
toCloud RGB Renderer point-cloud-rgb
. - PointCloudStretchRenderer.type was changed from
point
toCloud Stretch Renderer point-cloud-stretch
. - PointCloudUniqueValueRenderer.type was changed from
point
toCloud Unique Value Renderer point-cloud-unique-value
. - SimpleMarkerSymbol.type was changed from
simple-marker-symbol
tosimple-marker
. - SimpleLineSymbol.type was changed from
simple-line-symbol
tosimple-line
. - SimpleFillSymbol.type was changed from
simple-fill-symbol
tosimple-fill
. - PictureMarkerSymbol.type was changed from
picture-marker-symbol
topicture-marker
. - PictureFillSymbol.type was changed from
picture-fill-symbol
topicture-fill
. - TextSymbol.type was changed from
text-symbol
totext
. - PointSymbol3D.type was changed from
point-symbol-3d
topoint-3d
. - LineSymbol3D.type was changed from
line-symbol-3d
toline-3d
. - PolygonSymbol3D.type was changed from
polygon-symbol-3d
topolygon-3d
. - MeshSymbol3D.type was changed from
mesh-symbol-3d
tomesh-3d
. - LabelSymbol3D.type was changed from
label-symbol-3d
tolabel-3d
. - WebStyleSymbol.type was changed from
web-style-symbol
toweb-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
zoom
property 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
cancel
from SearchViewModel.Suggest - Removed the Graphic
get
method. Instead, if the graphic's popupTemplate is not defined, it will use the graphic's layerEffective Popup Template popup
.Template - Removed
min
andScale max
properties 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:
address
andattributes
. Note that there are no changes to the other AddressCandidate properties:extent
,location
andscore
.- Prior to 4.4,
location
incorrectly returned an object that always had an emptyTo Address() attributes
property, and theaddress
string was an object. As of 4.4, theaddress
property is a string, and theattributes
property 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
0
on a ObjectSymbol3DLayer will make the symbol point North and setting it to180
will 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
token
property, or 2) appending it to the end of the layer URL. - The Search widget's sources property has a new
filter
option which replaces the now deprecatedsearch
,Query Params suggest
, andQuery Params search
property.Extent - If developing custom widgets, configuration settings should be updated to reflect
"jsx
instead 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
stop
on the click event object.Propagation()
4.3
size
was 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-reorder
events 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.