Breaking changes
A comprehensive guide to all breaking changes for the ArcGIS API 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.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
takeScreenshot()
method on MapView and SceneView has changed topng
instead ofjpg
. - The
mediaType
property was removed from OGCFeatureLayer. All requests for metadata and data content will be made with the"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
RouteParameters.barriers
property has been removed. It was deprecated as of version 4.11. Use pointBarriers, polygonBarriers, and/or polylineBarriers instead.
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
goToMedia()
method in the Feature widget and its corresponding viewModel has been renamed to setActiveMedia. - The
tables
property for WebMap now takes a collection of Layers instead of an array of Objects. - The
TimeSlider.loop
property now has a default value offalse
instead oftrue
. - Service metadata for all layers and tables are now collectively fetched from
FeatureServer/layers/REST
endpoint as opposed to each layer fetching its metadata from its dedicated endpoint, e.g.(FeatureServer/<layerID>)
. StreamLayer.maximumTrackPoints
was deprecated at version 4.15 and is now removed. Use StreamLayer.purgeOptions.maxObservations instead.- Using applyEdits to add geometries with z-values to a FeatureLayer with
hasZ: false
no longer silently drops the z-value and now throws an error. - Performance improvements were made to Popups. Prior to this release, it was possible to access the popup feature's geometry without having to specify
outFields
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 theoutFields
.
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
TileImageryLayer
is removed and replaced by the ImageryTileLayer. - 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:hidden
). The view is hidden but it renders and updates data now. - CIMSymbol's data property now only supports CIMSymbolReference JSON. The CIMSymbol JSON should be applied at
cimSymbol.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
ImageMeshColor
, which was deprecated since version 4.11. Set MeshTexture on MeshMaterial.colorTexture instead. - Removed
requireUtils
, which was deprecated since version 4.10. Use promiseUtils.create() instead. - Removed
ValueMeshColor
, which was deprecated since version 4.11. Use MeshMaterial.color instead. - 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
attachmentInfos
property has been removed from AttachmentsContent. It is now handled via the Attachments widget and can be accessed via its viewModel. - The Workflow.data property now returns either a CreateWorkflow or UpdateWorkflow reference.
- The Editor widget and the EditorViewModel's
activeWorkflow
property now returns either a reference to either a CreateWorkflow or UpdateWorkflow. - 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
stopPropagation()
is called on an immediate-click event, click and double-click events are no longer emitted. WhenstopPropagation()
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. - 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
getImageUrl()
method from MapImageLayer. This method was deprecated since version 4.11. We recommend extending BaseDynamicLayer instead. - 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
StretchRenderer
is removed and replaced by the RasterStretchRenderer. - The Geoprocessor class has been modernized, which required several changes:
- Removed the
updateDelay
property. - Removed the
cancelJobStatusUpdates()
method. - 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
MapImageLayer
was returned. - When the getResultData() method requests data from
GPFeatureRecordSetLayer
orGPRecordSet
it returns a DataFile when aurl
property is detected.
- Removed the
- Removed the
mode
property from theAreaMeasurement2D
andDistanceMeasurement2D
widgets and ViewModels. See Measurement Enhancements for more information. - Removed the
pixelSizeX
andpixelSizeY
properties from ImageServiceIdentifyParameters. Use pixelSize property instead. - Removed the
domainFields
property ImageryLayer. Use fields property instead. - Removed the
hasRasterAttributeTable
andrasterAttributeTable
properties from ImageryLayer. Use the ImageryLayer's serviceRasterInfo.attributeTable property instead. - 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
andupdateFilter
from StreamLayer. - Removed
connect
,disconnect
,graphics
, andupdateFilter
from StreamLayerView.
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, requestOptions)
to now accept(params, requestOptions)
. Theparams
object has two properties:location and locationType
. - Changed the behavior for the queries queryExtent(), queryFeatureCount(), queryFeatures() and queryObjectIds() in SceneLayerView that the required fields needs to be defined with
SceneLayer.outFields
in advance. - 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.applicationProperties
module, common for WebMap and WebScene. - Removed
actionsMenuEnabled
property from Popup. - Removed
dotBlendingEnabled
andreferenceDotValue
properties from DotDensityRenderer. - 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
localSearchOptions
andlocationToAddressDistance
properties from esri/widgets/Search. These properties were deprecated at version 4.11. - Removed
material
property from the base class Symbol3DLayer. With this new behavior, subclasses of Symbol3DLayer implement thematerial
property independently. - Removed
noData
property from ImageServiceIdentifyParameters. - Removed
timeExtent
property from TimeInfo. Use fullTimeExtent property instead. - Replaced
esri/widgets/ColorSizeSlider
with esri/widgets/smartMapping/ColorSizeSlider. - Replaced
esri/widgets/ColorSlider
with esri/widgets/smartMapping/ColorSlider. - Replaced
esri/widgets/SizeSlider
with esri/widgets/smartMapping/SizeSlider. - 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
DateString
,DateFormat
, andNumberFormat
formatter functions are no longer supported when used with a PopupTemplate'scontent
and/ortitle
. Instead, set it via the FieldInfo's fieldInfoFormat. - The
noDataValue
parameter is now nested within theoptions
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
contentEnabled
property on both the Feature widget and the FeatureViewModel. - Removed
esri/geometry/ScreenPoint
class. - 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
definitionExpression
property of AttachmentQuery class to where. - Renamed
definitionExpression
property of RelationshipQuery class to where. - Renamed
TemplateItemGroup.name
to TemplateItemGroup.label. - Renamed
FeatureLayerSearchSource
class to LayerSearchSource.- The renamed LayerSearchSource class now takes a Layer property as opposed to a
FeatureLayer
. - The
sources
property within the Directions.SearchProperties object now takes a LayerSearchSource as opposed toFeatureLayerSearchSource
.
- 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/Draw
to esri/views/draw/Draw. - Moved
esri/views/2d/draw/DrawAction
to esri/views/draw/DrawAction. - Moved
esri/views/2d/draw/PointDrawAction
to esri/views/draw/PointDrawAction. - Moved
esri/views/2d/draw/PolylineDrawAction
to esri/views/draw/PolylineDrawAction. - Moved
esri/views/2d/draw/PolygonDrawAction
to esri/views/draw/PolygonDrawAction. - Moved
esri/views/2d/draw/MultipointDrawAction
to esri/views/draw/MultipointDrawAction. - Moved
esri/views/2d/draw/SegmentDrawAction
to esri/views/draw/SegmentDrawAction.
- Moved
- Several popup related classes have been moved, renamed or removed:
- Removed
Chart
class fromesri/support/ContentElement/Media/Chart
. - Removed
Media
class fromesri/support/ContentElement/Media/Media
. - ExpressionInfo class moved from
esri/support/ExpressionInfo
toesri/popup/ExpressionInfo
. - FieldInfo class moved from
esri/support/FieldInfo
toesri/popup/FieldInfo
. - LayerOptions class moved from
esri/support/LayerOptions
toesri/popup/LayerOptions
. - RelatedRecordsInfo class moved from
esri/support/RelatedRecordsInfo
toesri/popup/RelatedRecordsInfo
. - Renamed
ContentElement
class fromesri/support/ContentElement
to content and moved toesri/popup/content
. - Renamed
ContentElement
class fromesri/support/ContentElement/ContentElement
to Content and moved toesri/popup/content/Content
. - Renamed
Attachments
class fromesri/support/ContentElement/Attachments
to AttachmentsContent and moved toesri/popup/content/AttachmentsContent
. - Renamed
Fields
class fromesri/support/ContentElement/FieldsContent
to FieldsContent and moved toesri/popup/content/FieldsContent
. - Renamed
Text
class fromesri/support/ContentElement/Text
to TextContent and moved toesri/popup/content/TextContent
. - Renamed
Media
class fromesri/support/ContentElement/Media
to MediaContent and moved toesri/popup/content/MediaContent
. - Renamed
BarChart
class fromesri/support/ContentElement/Media/BarChart
to BarChartMediaInfo and moved toesri/popup/content/BarChartMediaInfo
. - Renamed
FieldsOrder
class fromesri/support/RelatedRecordsInfo/FieldOrder
to RelatedRecordsInfoFieldOrder and moved toesri/popup/support/RelatedRecordsInfoFieldOrder
. - Renamed
Format
class fromesri/support/FieldInfo/Format
to FieldInfoFormat and moved toesri/popup/support/FieldInfoFormat
. - Renamed
Series
class fromesri/support/ContentElement/Media/Chart/Series
to ChartMediaInfoValueSeries and moved toesri/popup/content/support/ChartMediaInfoValueSeries
. - Renamed
Value
class fromesri/support/ContentElement/Media/Chart/Value
to ChartMediaInfoValue and moved toesri/popup/content/support/ChartMediaInfoValue
. - Renamed
ColumnChart
class fromesri/support/ContentElement/Media/ColumnChart
to ColumnChartMediaInfo and moved toesri/popup/content/ColumnChartMediaInfo
. - Renamed
LineChart
class fromesri/support/ContentElement/Media/LineChart
to LineChartMediaInfo and moved toesri/popup/content/LineChartMediaInfo
. - Renamed
PieChart
class fromesri/support/ContentElement/Media/PieChart
to PieChartMediaInfo and moved toesri/popup/content/PieChartMediaInfo
. - Renamed
Image
class fromesri/support/ContentElement/Media/Image
to ImageMediaInfo and moved toesri/popup/content/ImageMediaInfo
. - Renamed
Value
class fromesri/support/ContentElement/Media/Image/Value
to ImageMediaInfoValue and moved toesri/popup/content/support/ImageMediaInfoValue
.
- 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
CalciteWebCoreIcons
tocalcite-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
FieldOptions
class has been removed and merged with the FieldConfig class. - Removed the ability of
event.stopPropagation()
to allow manual display of a Popup with the view's click event. Set the new autoOpenEnabled tofalse
instead. - All documentation for
IdentityManagerBase
has been merged into IdentityManager.
4.9
- Bookmark class moved from
esri/widgets/Bookmarks/Bookmark
toesri/webmap/Bookmark
. FeatureLayer.queryFeatureAttachments()
method is removed. Use FeatureLayer.queryAttachments instead.- 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:
corsDetection
,corsDetectionTimeout
,corsEnabledServers
,forceProxy
, anduseCors
properties. - Removed the
allowImageDataAccess
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. - Removed the
isMaxInclusive
property from ClassBreaksRenderer. - Removed the
popupOpenOnSelect
property from Search widget and SearchViewModel. - Set the new
trustedServers
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 corsEnabledServerswithCredentials
property totrue
. - CSS style,
esri-widget__header
, was renamed to.esri-widget__heading
. For additional information on working with this style, see the Styling guide topic. - 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
minSize
property from pointSizeAlgorithm. - 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
defaultSource
from both the Search widget and SearchViewModel. Instead, use the defaultSources property. - 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
popupTemplate
from the graphic's layer. - Removed support for using Bower to install the ArcGIS API 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
classificationMethod
property from ClassBreaksRenderer. - Removed
createActionsFunction
property from LayerList and LayerListViewModel (uselistItemCreatedFunction
instead). - Removed
graphic
property from draw-complete. - Removed
styleOrigin
property from LabelSymbol3D. - Removed
then()
method from all classes (use when() instead when using Promises).
4.6
attributionText
anditemDelimiter
have moved from AttributionViewModel to the Attribution widget.- 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. relationParam
property on Query is renamed to relationParameter.relationParam
property on RelationParameters is renamed to relationParameter.- 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
uniqueValue
tounique-value
. - ClassBreaksRenderer.type was changed from
classBreaks
toclass-breaks
. - PointCloudClassBreaksRenderer.type was changed from
pointCloudClassBreaksRenderer
topoint-cloud-class-breaks
. - PointCloudRGBRenderer.type was changed from
pointCloudRGBRenderer
topoint-cloud-rgb
. - PointCloudStretchRenderer.type was changed from
pointCloudStretchRenderer
topoint-cloud-stretch
. - PointCloudUniqueValueRenderer.type was changed from
pointCloudUniqueValueRenderer
topoint-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
zoomScale
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. - 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
cancelSuggest
from SearchViewModel. - Removed the Graphic
getEffectivePopupTemplate
method. Instead, if the graphic's popupTemplate is not defined, it will use the graphic's layerpopupTemplate
. - Removed
minScale
andmaxScale
properties from ElevationLayer.
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,
locationToAddress()
incorrectly returned an object that always had an emptyattributes
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.
CountryCode
, should now be written asattributes.CountryCode
. (Prior to this version, it was written asaddress.CountryCode
.) - 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 deprecatedsearchQueryParams
,suggestQueryParams
, andsearchExtent
property. - If developing custom widgets, configuration settings should be updated to reflect
"jsxFactory": "tsx",
instead of"reactNamespace": "jsxFactory",
. This is discussed in the TypeScript setup guide topic. - 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
stopPropagation()
on the click event object.
4.3
sizeRendererCreator.createVisualVariable()
was renamed to sizeRendererCreator.createVisualVariables() because it now returns an array of visual variables.
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.returnPolylgonBarriers 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/Collection
instead.
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.