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 topnginstead ofjpg. - The
mediaTypeproperty 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
nullif there was no feature provided. - FeatureForm.getValues() will return
undefinedif there is no existing attribute on the edit feature. This is meant to distinguish from validnullvalues. - The FeatureTable widget no longer uses the layer's maxRecordCount to determine pagination size. It automatically defaults to
50records unless the layer contains less than this. If so, it will take this count and set the pagination to it. - Updated the callback for intl.onLocalChange() to return a LocaleChangeCallback instead of a
Function. - The default mode for the defaultCreateOptions on the Sketch widget has changed to
clickinstead ofhybrid. - The
RouteParameters.barriersproperty 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
typesas eitherbuttonortoggle. Prior to this, it was set asstring. - The
goToMedia()method in the Feature widget and its corresponding viewModel has been renamed to setActiveMedia. - The
tablesproperty for WebMap now takes a collection of Layers instead of an array of Objects. - The
TimeSlider.loopproperty now has a default value offalseinstead oftrue. - Service metadata for all layers and tables are now collectively fetched from
FeatureServer/layers/RESTendpoint as opposed to each layer fetching its metadata from its dedicated endpoint, e.g.(FeatureServer/<layerID>). StreamLayer.maximumTrackPointswas 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: falseno 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
outFieldson 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
hasflag"esri-native-promise"is no longer supported. - Removed use of Dojo’s
declaremodule. This means that apps with classes that leverage the API class framework and multiple inheritance will stop working. The recommended approach is to use mixins with Accessor. - The
TileImageryLayeris removed and replaced by the ImageryTileLayer. - The TimeExtent's intersection method now returns an instance of TimeExtent with
undefinedvalues for start and end properties if the two time extents do not intersect. - The suspended property of the View is now set to
falsewhen the view container's css stylevisibilityis set tohidden(visibility: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
Promiseby default as of 4.15. See API Modernization for more information. dgridstyles are no longer globally included. If usingdgridin your web application, you will need to reference the stylesheet separately.- Removed
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
capabilitiesandversionproperties from StreamLayer. - The
updateevent on Sketch widget and SketchViewModel no longer havecancelstate. The parameterabortedonupdateevents indicates that the process got cancelled. - The
attachmentInfosproperty 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
activeWorkflowproperty 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-valuesin 2D MapView even if the query.returnZ is set totrue. - The Sketch has a new property called creationMode with a default value of
continuous. This allows you to continuously create graphics with same geometry types by default. This is different from the widget's default behavior in previous releases, where you could create a single graphic at a time. - To select or unselect multiple vertices during a graphic update operation using the Sketch widget, we now use
Shift + Left-clickcombination instead ofCtrl + Left-clickon vertices. - 2D measurement widgets changed the base class from
esri-area-measurement-3dtoesri-area-measurement-2dand fromesri-direct-line-measurement-3dtoesri-distance-measurement-2d. - Removed the
getImageUrl()method from MapImageLayer. This method was deprecated since version 4.11. We recommend extending BaseDynamicLayer instead. - Removed the
value-changeandvalues-changeevents from Slider and HistogramRangeSlider. These events were deprecated since version 4.13. We recommend watching the values property or using the other widget events instead. - Removed Hindi (hi) as a supported locale.
- Classes related to ArcGIS Workflow Manager have been removed. They were marked as deprecated starting with version 4.13.
- The HTML sanitizer was added to all widgets to sanitize and escape strings according to the ArcGIS Online supported HTML specification. This can cause HTML set in PopupTemplate.content or in other widgets to be removed.
4.13
- The
StretchRendereris removed and replaced by the RasterStretchRenderer. - The Geoprocessor class has been modernized, which required several changes:
- Removed the
updateDelayproperty. - 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
MapImageLayerwas returned. - When the getResultData() method requests data from
GPFeatureRecordSetLayerorGPRecordSetit returns a DataFile when aurlproperty is detected.
- Removed the
- Removed the
modeproperty from theAreaMeasurement2DandDistanceMeasurement2Dwidgets and ViewModels. See Measurement Enhancements for more information. - Removed the
pixelSizeXandpixelSizeYproperties from ImageServiceIdentifyParameters. Use pixelSize property instead. - Removed the
domainFieldsproperty ImageryLayer. Use fields property instead. - Removed the
hasRasterAttributeTableandrasterAttributeTableproperties from ImageryLayer. Use the ImageryLayer's serviceRasterInfo.attributeTable property instead. - Removed
resetmethod from Sketch and SketchViewModel. Use cancel method on respective classes. - Removed
value-changeevent from SliderViewModel. - Removed the default tabindex on the bars of the Histogram widget. All slider widgets that implement Histogram, including HistogramRangeSlider and all smart mapping sliders, are affected by this change. To tab through histogram bars, the app developer should use barCreatedFunction to set a tabindex of
0to each bar element. - Removed
filterandupdateFilterfrom StreamLayer. - Removed
connect,disconnect,graphics, andupdateFilterfrom 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). Theparamsobject 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.outFieldsin advance. - Changed the behavior of color in SceneView to be consistent with MapView. If the color value of a graphic is set to
nullit will display transparent. - Full SQL support is now provided for where clauses on the LabelClass in 3D. Old where clauses that didn't implement strict SQL syntax might break.
- Moved classes Search, SearchLayer and SearchLayerField from webscene.applicationProperties to the
webdoc.applicationPropertiesmodule, common for WebMap and WebScene. - Removed
actionsMenuEnabledproperty from Popup. - Removed
dotBlendingEnabledandreferenceDotValueproperties from DotDensityRenderer. - Removed
distanceparameter from esri/widgets/Search and esri/tasks/Locator as it is deprecated and no longer recognized by the World Geocoding Service. - Removed
localSearchOptionsandlocationToAddressDistanceproperties from esri/widgets/Search. These properties were deprecated at version 4.11. - Removed
materialproperty from the base class Symbol3DLayer. With this new behavior, subclasses of Symbol3DLayer implement thematerialproperty independently. - Removed
noDataproperty from ImageServiceIdentifyParameters. - Removed
timeExtentproperty from TimeInfo. Use fullTimeExtent property instead. - Replaced
esri/widgets/ColorSizeSliderwith esri/widgets/smartMapping/ColorSizeSlider. - Replaced
esri/widgets/ColorSliderwith esri/widgets/smartMapping/ColorSlider. - Replaced
esri/widgets/SizeSliderwith esri/widgets/smartMapping/SizeSlider. - The PopupTemplate's
contentand/ortitlecan no longer be set using a wildcard, e.g.*. Instead, set thePopup'sdefaultPopupTemplateEnabled property to true. - The
DateString,DateFormat, andNumberFormatformatter functions are no longer supported when used with a PopupTemplate'scontentand/ortitle. Instead, set it via the FieldInfo's fieldInfoFormat. - The
noDataValueparameter is now nested within theoptionsparameter when using ElevationLayer.fetchTile() method. - Use the new esri/intl module and its respective methods in places referencing the
esri/core/lang.substitute(),dojo/number.format(), anddojo/date.format()methods. - Using parameterized functions in a PopupTemplate's
contentand/ortitleare no longer supported. - When neither
height, norwidthare set for PathSymbol3DLayer then the symbol doesn't render. This is a breaking change from previous versions when not settingsizeused to renderer the symbol with a height and a width of 1 meter.
4.11
- The behavior of FeatureLayer.outFields has changed. It is no longer computed to include fields required for layer labeling, rendering, editing and elevation info. It now returns
nullunless it is explicitly set.- In general, you no longer need to specify the outFields. The API automatically determines which fields to fetch. However, if you are using the fields in custom functionality, you might still need to explicitly add those using the outFields property.
- To find out which fields are available client-side, use the new availableFields property. It contains a list of attribute fields fetched for each feature including fields required for layer labeling, rendering, elevation info, and any additional fields defined with the FeatureLayer.outFields property. The availableFields is populated when the layer view is finished updating.
- Query.units property's default value is now
nullinstead ofmeters. - Sublayer.createFeatureLayer() now returns a promise resolving to a FeatureLayer, as opposed to a FeatureLayer.
- Autocasting is no longer supported for Mesh geometry.
- Change to how texture transparency is interpreted in esri/geometry/support/MeshMaterial. Before, values below
0.1would be interpreted as fully transparent (i.e. masking), now this threshold was moved to0.5. If the old behavior is desired, the threshold can now be explicitly changed using the alphaCutoff property. - Moved the
selectmethod out of FeatureTemplates and into the FeatureTemplatesViewModel. - Removed
contentEnabledproperty on both the Feature widget and the FeatureViewModel. - Removed
esri/geometry/ScreenPointclass. - Removed
Legendsupport from MapNotesLayer. - Removed
tokenproperty from all layer classes. The recommended approach to pass a token on a layer is to use IdentityManager.registerToken() or to use esriConfig.request.interceptors. - Removed the
viewproperty from Feature widget and FeatureViewModel. - The MapImageLayer.getImageUrl() method now returns
null. - Renamed
definitionExpressionproperty of AttachmentQuery class to where. - Renamed
definitionExpressionproperty of RelationshipQuery class to where. - Renamed
TemplateItemGroup.nameto TemplateItemGroup.label. - Renamed
FeatureLayerSearchSourceclass to LayerSearchSource.- The renamed LayerSearchSource class now takes a Layer property as opposed to a
FeatureLayer. - The
sourcesproperty 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/Drawto esri/views/draw/Draw. - Moved
esri/views/2d/draw/DrawActionto esri/views/draw/DrawAction. - Moved
esri/views/2d/draw/PointDrawActionto esri/views/draw/PointDrawAction. - Moved
esri/views/2d/draw/PolylineDrawActionto esri/views/draw/PolylineDrawAction. - Moved
esri/views/2d/draw/PolygonDrawActionto esri/views/draw/PolygonDrawAction. - Moved
esri/views/2d/draw/MultipointDrawActionto esri/views/draw/MultipointDrawAction. - Moved
esri/views/2d/draw/SegmentDrawActionto esri/views/draw/SegmentDrawAction.
- Moved
- Several popup related classes have been moved, renamed or removed:
- Removed
Chartclass fromesri/support/ContentElement/Media/Chart. - Removed
Mediaclass fromesri/support/ContentElement/Media/Media. - ExpressionInfo class moved from
esri/support/ExpressionInfotoesri/popup/ExpressionInfo. - FieldInfo class moved from
esri/support/FieldInfotoesri/popup/FieldInfo. - LayerOptions class moved from
esri/support/LayerOptionstoesri/popup/LayerOptions. - RelatedRecordsInfo class moved from
esri/support/RelatedRecordsInfotoesri/popup/RelatedRecordsInfo. - Renamed
ContentElementclass fromesri/support/ContentElementto content and moved toesri/popup/content. - Renamed
ContentElementclass fromesri/support/ContentElement/ContentElementto Content and moved toesri/popup/content/Content. - Renamed
Attachmentsclass fromesri/support/ContentElement/Attachmentsto AttachmentsContent and moved toesri/popup/content/AttachmentsContent. - Renamed
Fieldsclass fromesri/support/ContentElement/FieldsContentto FieldsContent and moved toesri/popup/content/FieldsContent. - Renamed
Textclass fromesri/support/ContentElement/Textto TextContent and moved toesri/popup/content/TextContent. - Renamed
Mediaclass fromesri/support/ContentElement/Mediato MediaContent and moved toesri/popup/content/MediaContent. - Renamed
BarChartclass fromesri/support/ContentElement/Media/BarChartto BarChartMediaInfo and moved toesri/popup/content/BarChartMediaInfo. - Renamed
FieldsOrderclass fromesri/support/RelatedRecordsInfo/FieldOrderto RelatedRecordsInfoFieldOrder and moved toesri/popup/support/RelatedRecordsInfoFieldOrder. - Renamed
Formatclass fromesri/support/FieldInfo/Formatto FieldInfoFormat and moved toesri/popup/support/FieldInfoFormat. - Renamed
Seriesclass fromesri/support/ContentElement/Media/Chart/Seriesto ChartMediaInfoValueSeries and moved toesri/popup/content/support/ChartMediaInfoValueSeries. - Renamed
Valueclass fromesri/support/ContentElement/Media/Chart/Valueto ChartMediaInfoValue and moved toesri/popup/content/support/ChartMediaInfoValue. - Renamed
ColumnChartclass fromesri/support/ContentElement/Media/ColumnChartto ColumnChartMediaInfo and moved toesri/popup/content/ColumnChartMediaInfo. - Renamed
LineChartclass fromesri/support/ContentElement/Media/LineChartto LineChartMediaInfo and moved toesri/popup/content/LineChartMediaInfo. - Renamed
PieChartclass fromesri/support/ContentElement/Media/PieChartto PieChartMediaInfo and moved toesri/popup/content/PieChartMediaInfo. - Renamed
Imageclass fromesri/support/ContentElement/Media/Imageto ImageMediaInfo and moved toesri/popup/content/ImageMediaInfo. - Renamed
Valueclass fromesri/support/ContentElement/Media/Image/Valueto 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
CalciteWebCoreIconstocalcite-web-iconsfor 2D MapViews. - Removed FeatureLayer.capabilities.query.supportsAttachments from esri/layers/FeatureLayer.
- Creating a FeatureLayer from client-side features now requires a
typeproperty to be set for each field. - The
FieldOptionsclass 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 tofalseinstead. - All documentation for
IdentityManagerBasehas been merged into IdentityManager.
4.9
- Bookmark class moved from
esri/widgets/Bookmarks/Bookmarktoesri/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, anduseCorsproperties. - Removed the
allowImageDataAccessrequestOption 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
isMaxInclusiveproperty from ClassBreaksRenderer. - Removed the
popupOpenOnSelectproperty from Search widget and SearchViewModel. - Set the new
trustedServersproperty 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 corsEnabledServerswithCredentialsproperty 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
animateoption is set tofalse.
4.8
- Corrected format and layout TemplateOptions values to be consistent with documentation.
- Removed
minSizeproperty 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-startevent was renamed to create-init,draw-cancelto create-cancel anddraw-completecreate-complete andupdate-startwas renamed to update-init. - The
always()andotherwise()methods were deprecated at 4.7 and have been removed as of version 4.8. - Removed
defaultSourcefrom both the Search widget and SearchViewModel. Instead, use the defaultSources property. - The
stateproperty was removed from the Search widget and added into the SearchViewModel. - In 3D, during continuous camera movement, updates on FeatureLayers with large data sets may be suspended until the continuous camera movement has finished.
- CSS class,
.esri-widget-button, has been renamed to.esri-widget--button(take note of the two dashes--beforebutton). - The
Actionclass has been deprecated. You should now use either ActionButton or ActionToggle in its place. - To access a Graphic's PopupTemplate, use the getEffectivePopupTemplate method. Prior to version 4.8, if the popupTemplate was not defined on the Graphic, it would use the
popupTemplatefrom 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
layersproperty tolayerin AttributionItem. - Removed
classificationMethodproperty from ClassBreaksRenderer. - Removed
createActionsFunctionproperty from LayerList and LayerListViewModel (uselistItemCreatedFunctioninstead). - Removed
graphicproperty from draw-complete. - Removed
styleOriginproperty from LabelSymbol3D. - Removed
then()method from all classes (use when() instead when using Promises).
4.6
attributionTextanditemDelimiterhave 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
searchingproperty has been replaced with state. relationParamproperty on Query is renamed to relationParameter.relationParamproperty on RelationParameters is renamed to relationParameter.- VectorTileLayer's url property type is
Stringonly now. When initializing a VectorTileLayer with style JSON object, use VectorTileLayer's style property instead.
4.5
- The
typeproperty in all renderer, symbol, and symbol layer classes is no longer read-only. - Changed
typevalue for many renderers for consistent kebab-casing:- UniqueValueRenderer.type was changed from
uniqueValuetounique-value. - ClassBreaksRenderer.type was changed from
classBreakstoclass-breaks. - PointCloudClassBreaksRenderer.type was changed from
pointCloudClassBreaksRenderertopoint-cloud-class-breaks. - PointCloudRGBRenderer.type was changed from
pointCloudRGBRenderertopoint-cloud-rgb. - PointCloudStretchRenderer.type was changed from
pointCloudStretchRenderertopoint-cloud-stretch. - PointCloudUniqueValueRenderer.type was changed from
pointCloudUniqueValueRenderertopoint-cloud-unique-value. - SimpleMarkerSymbol.type was changed from
simple-marker-symboltosimple-marker. - SimpleLineSymbol.type was changed from
simple-line-symboltosimple-line. - SimpleFillSymbol.type was changed from
simple-fill-symboltosimple-fill. - PictureMarkerSymbol.type was changed from
picture-marker-symboltopicture-marker. - PictureFillSymbol.type was changed from
picture-fill-symboltopicture-fill. - TextSymbol.type was changed from
text-symboltotext. - PointSymbol3D.type was changed from
point-symbol-3dtopoint-3d. - LineSymbol3D.type was changed from
line-symbol-3dtoline-3d. - PolygonSymbol3D.type was changed from
polygon-symbol-3dtopolygon-3d. - MeshSymbol3D.type was changed from
mesh-symbol-3dtomesh-3d. - LabelSymbol3D.type was changed from
label-symbol-3dtolabel-3d. - WebStyleSymbol.type was changed from
web-style-symboltoweb-style.
- UniqueValueRenderer.type was changed from
- ElevationLayers are always visible at the slide level when saving a scene with API 4.5 to Portal 10.5.1 (or earlier).
- The
zoomScaleproperty 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
cancelSuggestfrom SearchViewModel. - Removed the Graphic
getEffectivePopupTemplatemethod. Instead, if the graphic's popupTemplate is not defined, it will use the graphic's layerpopupTemplate. - Removed
minScaleandmaxScaleproperties 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:
addressandattributes. Note that there are no changes to the other AddressCandidate properties:extent,locationandscore.- Prior to 4.4,
locationToAddress()incorrectly returned an object that always had an emptyattributesproperty, and theaddressstring was an object. As of 4.4, theaddressproperty is a string, and theattributesproperty 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
0on a ObjectSymbol3DLayer will make the symbol point North and setting it to180will make the symbol point South. In comparison to the old styles, Signs and signals and Street scene changed orientation by 180 degrees and Transportation changed by 90 degrees. - As of version 4.x, the recommended approach to pass a token on a layer is to use IdentityManager.registerToken(). Prior to this in 3.x, it was possible to pass a token to a layer either via 1) the layer's
tokenproperty, or 2) appending it to the end of the layer URL. - The Search widget's sources property has a new
filteroption which replaces the now deprecatedsearchQueryParams,suggestQueryParams, andsearchExtentproperty. - 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-reorderevents were removed from GroupLayer, Map and its subclasses. Use the change event ofesri/core/Collectioninstead.
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.