@arcgis/map-components
Version:
ArcGIS Map Components
1,412 lines • 81.6 kB
TypeScript
/// <reference path="../../index.d.ts" />
import type MapView from "@arcgis/core/views/MapView.js";
import type Collection from "@arcgis/core/core/Collection.js";
import type Layer from "@arcgis/core/layers/Layer.js";
import type Analysis from "@arcgis/core/analysis/Analysis.js";
import type Point from "@arcgis/core/geometry/Point.js";
import type Viewpoint from "@arcgis/core/Viewpoint.js";
import type Ground from "@arcgis/core/Ground.js";
import type GamepadSettings from "@arcgis/core/views/input/gamepad/GamepadSettings.js";
import type Basemap from "@arcgis/core/Basemap.js";
import type Map from "@arcgis/core/Map.js";
import type Graphic from "@arcgis/core/Graphic.js";
import type LayerView from "@arcgis/core/views/layers/LayerView.js";
import type ColorBackground from "@arcgis/core/webmap/background/ColorBackground.js";
import type BasemapView from "@arcgis/core/views/BasemapView.js";
import type MapViewConstraints from "@arcgis/core/views/2d/MapViewConstraints.js";
import type Error from "@arcgis/core/core/Error.js";
import type HighlightOptions from "@arcgis/core/views/support/HighlightOptions.js";
import type IPSInfo from "@arcgis/core/webdoc/IPSInfo.js";
import type Magnifier from "@arcgis/core/views/Magnifier.js";
import type Navigation from "@arcgis/core/views/navigation/Navigation.js";
import type Popup from "@arcgis/core/widgets/Popup.js";
import type SelectionManager from "@arcgis/core/views/SelectionManager.js";
import type SpatialReference from "@arcgis/core/geometry/SpatialReference.js";
import type Theme from "@arcgis/core/views/Theme.js";
import type TimeExtent from "@arcgis/core/time/TimeExtent.js";
import type Polygon from "@arcgis/core/geometry/Polygon.js";
import type { PublicLitElement as LitElement } from "@arcgis/lumina";
import type { LoadErrorSource } from "../types.js";
import type { ArcgisPopup } from "../arcgis-popup/customElement.js";
import type { LayerView2DFor, ResizeAlign } from "@arcgis/core/views/2d/types.js";
import type { DoubleClickEvent, DoubleTapDragEvent, VerticalTwoFingerDragEvent, PointerUpEvent, PointerMoveEvent, PointerLeaveEvent, PointerEnterEvent, PointerDownEvent, ViewMouseWheelEvent, LayerViewDestroyEvent, LayerViewCreateErrorEvent, LayerViewCreateEvent, KeyUpEvent, KeyDownEvent, ImmediateDoubleClickEvent, ImmediateClickEvent, HoldEvent, DragEvent, ClickEvent } from "@arcgis/core/views/input/types.js";
import type { AnalysisViewDestroyEvent, AnalysisViewCreateErrorEvent, AnalysisViewCreateEvent, ToScreenOptions2D, Screenshot, UserSettings, ViewHitTestResult, HitTestOptions, GoToOptions2D, GoToTarget2D } from "@arcgis/core/views/types.js";
import type { AnalysisView2DUnion } from "@arcgis/core/views/2d/analysis/types.js";
import type { ScreenPoint, ScreenRect } from "@arcgis/core/core/types.js";
import type { FetchPopupFeaturesOptions, ViewPopupOpenOptions } from "@arcgis/core/views/PopupView.js";
import type { ReadonlyCollection } from "@arcgis/core/core/Collection.js";
import type { ViewPadding } from "@arcgis/core/views/ui/types.js";
import type { SlotGroupRefs } from "../../support/slots.js";
/**
* The ArcGIS Map component is used to add 2D maps to web applications. For 3D maps, use the
* [arcgis-scene](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-scene/).
*
* #### Initializing the Map component
* The Map component creates a [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/)
* and can be initialized in one of three ways:
*
* ##### 1. Using a WebMap
* Load a [WebMap](https://developers.arcgis.com/javascript/latest/references/core/WebMap/) from [ArcGIS Online](https://www.arcgis.com/home/index.html)
* or an [ArcGIS Enterprise portal](https://doc.esri.com/en/arcgis-enterprise/latest/plan/what-is-portal-for-arcgis-.html) by specifying the [itemId](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#itemId) attribute.
*
* ```html
* <arcgis-map item-id="05e015c5f0314db9a487a9b46cb37eca"></arcgis-map>
* ```
*
* ##### 2. Setting Map component attributes directly
* Define the Map component using attributes like [basemap](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#basemap), [center](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#center), and [zoom](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#zoom) directly.
*
* ```html
* <arcgis-map basemap="satellite" center="-154.88, 19.46" zoom="15"></arcgis-map>
* ```
*
* ##### 3. Providing a Map instance
* Alternatively, you can provide your own [Map](https://developers.arcgis.com/javascript/latest/references/core/Map/) instance to the component.
* This allows full control over map configuration, including [basemap](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#basemap), operational [layers](https://developers.arcgis.com/javascript/latest/references/core/Map/#layers)
* and [spatialReference](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#spatialReference). See the [Select features by rectangle sample](https://developers.arcgis.com/javascript/latest/sample-code/highlight-features-by-geometry/)
* for an example of this approach in action.
*
* ```html
* <arcgis-map></arcgis-map>
* <script type="module">
* const viewElement = document.querySelector("arcgis-map");
*
* // set the basemap of the map to states feature layer
* // add national parks feature layer and a polygon graphics layer
* viewElement.map = new Map({
* basemap: new Basemap({ baseLayers: [states] }),
* layers: [nationalParksLayer, polygonGraphicsLayer]
* });
*
* // set the spatial reference of the map to NAD 1983 Albers contiguous USA
* viewElement.spatialReference = { wkid: 102003 };
* </script>
* ```
* #### Adding components and customizing the Map
*
* Other components can be added and connected to the Map component.
*
* ```html
* <arcgis-map item-id="05e015c5f0314db9a487a9b46cb37eca">
* <arcgis-zoom slot="top-left"></arcgis-zoom>
* <arcgis-legend slot="bottom-left"></arcgis-legend>
* </arcgis-map>
* ```
*
* The Map component can be customized further using any of the [core API functionalities](https://developers.arcgis.com/javascript/latest/references/core/) of the ArcGIS Maps SDK for JavaScript.
*
* ```js
* const viewElement = document.querySelector("arcgis-map");
* viewElement.addEventListener("arcgisViewReadyChange", () => {
* const layer = new GraphicsLayer({ title: "My Layer" });
* viewElement.map.add(layer);
* });
* ```
*
* See also:
* - [SDK sample apps using the Map component](https://developers.arcgis.com/javascript/latest/sample-code/?tagged=arcgis-map)
* - [Get started](https://developers.arcgis.com/javascript/latest/get-started/)
* - [Programming patterns](https://developers.arcgis.com/javascript/latest/programming-patterns/)
*
* @cssproperty [--arcgis-layout-overlay-space-top] - _Since 4.34_ Specifies the top padding for the layout.
* @cssproperty [--arcgis-layout-overlay-space-bottom] - _Since 4.34_ Specifies the bottom padding for the layout.
* @cssproperty [--arcgis-layout-overlay-space-left] - _Since 4.34_ Specifies the left padding for the layout.
* @cssproperty [--arcgis-layout-overlay-space-right] - _Since 4.34_ Specifies the right padding for the layout.
* @cssproperty [--arcgis-view-color-focus] - _Since 5.0_ Specifies the focus outline color for the view.
* @cssproperty [--arcgis-table-row-background-color] - _Since 5.1_ Specifies the background color for table rows.
* @cssproperty [--arcgis-table-row-alt-background-color] - _Since 5.1_ Specifies the background color for alternate table rows.
* @slot - Default slot for adding components to the map. User is responsible for positioning the content via CSS.
* @slot [top-left] - Slot for components positioned in the top-left corner.
* @slot [top-right] - Slot for components positioned in the top-right corner.
* @slot [bottom-left] - Slot for components positioned in the bottom-left corner.
* @slot [bottom-right] - Slot for components positioned in the bottom-right corner.
* @slot [top-start] - Slot for components positioned at the top-start (top-left in LTR, top-right in RTL).
* @slot [top-end] - Slot for components positioned at the top-end (top-right in LTR, top-left in RTL).
* @slot [bottom-start] - Slot for components positioned at the bottom-start (bottom-left in LTR, bottom-right in RTL).
* @slot [bottom-end] - Slot for components positioned at the bottom-end (bottom-right in LTR, bottom-left in RTL).
* @slot [popup] - Slot for the [arcgis-popup](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-popup/) component to open automatically on click. Only the Popup component can be placed in this slot.
* @since 4.28
*/
export abstract class ArcgisMap extends LitElement {
/**
* Collection containing a flat list of all the created LayerViews
* related to the basemap, operational layers, and group layers in this view.
*
* @see [LayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/)
*/
get allLayerViews(): ReadonlyCollection<LayerView>;
/**
* A collection of analyses associated with the view.
*
* @since 4.34
* @example
* ```js
* // Adds an analysis to the View
* view.analyses.add(elevationProfileAnalysis);
* ```
* @example
* ```js
* // Removes an analysis from the View
* view.analyses.remove(elevationProfileAnalysis);
* ```
*/
accessor analyses: Collection<Analysis>;
/**
* Indicates whether animations are disabled in the view. This includes animated symbols (animated
* [CIMSymbol](https://developers.arcgis.com/javascript/latest/references/core/symbols/CIMSymbol/),
* [PictureMarkerSymbol](https://developers.arcgis.com/javascript/latest/references/core/symbols/PictureMarkerSymbol/)
* from a GIF/animated PNG), animated renderers
* ([FlowRenderer](https://developers.arcgis.com/javascript/latest/references/core/renderers/FlowRenderer/)),
* animated layers ([MediaLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MediaLayer/),
* [VideoLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/VideoLayer/)), and
* animations triggered by view navigation (for example,
* [goTo()](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#goTo)).
* Setting this property to `true` disables all animations in the view.
*
* @default false
* @since 4.34
*/
accessor animationsDisabled: boolean;
/**
* The ARIA attributes for the view container. Provides accessibility information to assistive technologies such as screen readers. Supports the following properties: [`label`](https://developer.mozilla.org/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-label), [`description`](https://developer.mozilla.org/docs/Web/Accessibility/ARIA/Reference/Attributes/aria-description), [`describedByElements`](https://developer.mozilla.org/docs/Web/API/Element/ariaDescribedByElements), and [`labelledByElements`](https://developer.mozilla.org/docs/Web/API/Element/ariaLabelledByElements).
*
* @since 4.34
*/
accessor aria: MapView["aria"];
/**
* The attribution items displayed in the view's attribution.
*
* @since 5.0
*/
get attributionItems(): MapView["attributionItems"];
/**
* The light or dark mode used to display the attribution.
* By default, the mode is inherited from the [Calcite's mode](https://developers.arcgis.com/calcite-design-system/core-concepts/#modes).
* You can override the value to style the attribution alongside the map or scene content.
*
* @since 5.0
*/
accessor attributionMode: "dark" | "light" | null | undefined;
/**
* If true, the component will not be destroyed automatically when it is
* disconnected from the document. This is useful when you want to move the
* component to a different place on the page, or temporarily hide it. If this
* is set, make sure to call the [destroy()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#destroy) method when you are done to
* prevent memory leaks.
*
* @default false
*/
accessor autoDestroyDisabled: boolean;
/**
* The background color of the Map component.
*
* @example
* ```js
* const viewElement = document.querySelector("arcgis-map");
* viewElement.background = new ColorBackground ({
* color: "magenta" // autocasts as new Color()
* });
* ```
*/
accessor background: ColorBackground | null | undefined;
/**
* Specifies a basemap for the map. The basemap is a set of layers that give
* geographic context to the view and the other operational layers
* in the map.
*
* The basemap can be set from a basemap ID string from the [basemap styles service](https://developers.arcgis.com/javascript/latest/references/core/support/BasemapStyle/), such as `arcgis/navigation`, or from the [Basemap](https://developers.arcgis.com/javascript/latest/references/core/Basemap/) class.
*
* > [!NOTE]
* > Accessing the basemap styles service requires authentication, see [Authentication and access tokens](https://developers.arcgis.com/javascript/latest/authentication/access-tokens/) for more information.
*
* @example
* ```html
* <!-- Basemap set using a basemap ID string from the basemap styles service -->
* <arcgis-map basemap="arcgis/navigation" center="-98, 39" zoom="4"></arcgis-map>
* ```
* @example
* ```js
* // Basemap set using a Basemap instance
* const viewElement = document.querySelector("arcgis-map");
* viewElement.basemap = new Basemap({
* title: "Terrain",
* baseLayers: [
* new VectorTileLayer({
* url: "https://arcgis.com/sharing/rest/content/items/b5676525747f499687f12746441101ef/resources/styles/root.json",
* })
* ]
* });
* ```
* @see [Map.basemap](https://developers.arcgis.com/javascript/latest/references/core/Map/#basemap)
* @see [Basemap](https://developers.arcgis.com/javascript/latest/references/core/Basemap/)
* @see [BasemapStyle](https://developers.arcgis.com/javascript/latest/references/core/support/BasemapStyle/)
* @see [Authentication and access tokens](https://developers.arcgis.com/javascript/latest/authentication/access-tokens/)
*/
accessor basemap: Basemap | string | undefined;
/** Represents the view for a single basemap after it has been added to the map. */
accessor basemapView: BasemapView<LayerView>;
/**
* Indicates if the view component can zoom in.
*
* @default false
* @since 5.0
*/
get canZoomIn(): boolean;
/**
* Indicates if the view component can zoom out.
*
* @default false
* @since 5.0
*/
get canZoomOut(): boolean;
/**
* Represents the view's center point; when setting the center, you may pass a
* [Point](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/) instance, numbers representing
* a longitude/latitude pair (`[-100.4593, 36.9014]`), or a string attribute representing a longitude/latitude pair ("-100.4593, 36.9014").
* Setting the `center` immediately changes the current view. For animating the view, see this component's [goTo()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#goTo) method.
*
* The returned [Point](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/) object is always
* in the spatial reference of the view and may be modified internally.
* To persist the returned object, create a clone using [clone()](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/#clone) method.
*
* **Notes**
*
* * If the spatial reference of `center` set in the constructor does not match the [spatialReference](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#spatialReference) of the view, then the
* [projectOperator](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/) will be loaded dynamically.
* * At runtime, the [projectOperator](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/) must be
* [loaded](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#load) when
* setting the `center` to a spatial reference that doesn't match the view spatial reference. You can check if the projectOperator is
* loaded prior to setting the center by calling [isLoaded()](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#isLoaded)
* method. If it is not yet loaded, you can call [load()](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#load) method.
*
* @example
* ```html
* <arcgis-map zoom="4" center="-98, 39"></arcgis-map>
* ```
* @example
* ```js
* // Sets the initial center point of the map component to lon/lat coordinates
* // lon/lat will be projected to match the spatial reference of the view
* const viewElement = document.querySelector("arcgis-map");
* viewElement.center = [-98, 39]; // lon, lat
* ```
* @example
* ```js
* // Updates the view's center point to a pre-determined Point object
* let centerPoint = new Point({
* x: 12804.24,
* y: -1894032.09,
* spatialReference: {
* wkid: viewElement.spatialReference // wkid 2027
* }
* });
* const viewElement = document.querySelector("arcgis-map");
* viewElement.center = centerPoint;
* ```
* @example
* ```js
* // the point's spatialReference does not match the view's spatialReference
* // the projectOperator will be used to project the point to match
* // the view's spatialReference
* const centerPoint = new Point({
* x: -8746995,
* y: 4352308,
* spatialReference: {
* wkid: 8857
* }
* });
* if (!projectOperator.isLoaded()) {
* await projectOperator.load();
* }
* const viewElement = document.querySelector("arcgis-map");
* viewElement.center = centerPoint;
* ```
*/
get center(): MapView["center"];
set center(value: MapView["center"] | null | undefined | number[] | string);
/**
* Specifies constraints to scale, zoom, and rotation that may be applied to the Map.
*
* @see [MapViewConstraints](https://developers.arcgis.com/javascript/latest/references/core/views/2d/MapViewConstraints/)
* @see [TileInfo#create()](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TileInfo/#create)
* @see [Zoom and LODs](https://developers.arcgis.com/javascript/latest/references/core/views/View2D/#mapview-lods)
* @example
* ```js
* const viewElement = document.querySelector("arcgis-map");
* viewElement.constraints = new MapViewConstraints({
* geometry: { // Constrain lateral movement to Lower Manhattan
* type: "extent",
* xmin: -74.020,
* ymin: 40.700,
* xmax: -73.971,
* ymax: 40.73
* },
* minScale: 500000, // User cannot zoom out beyond a scale of 1:500,000
* maxScale: 0, // User can overzoom tiles
* rotationEnabled: false // Disables map rotation
* });
* ```
* @example
* ```js
* // This snippet shows how to set the Map scale 1:1 while generating additional LODs for the constraints.
* const spatialReference = new SpatialReference({
* wkid: 2154
* });
* const center = new Point({
* x: 0,
* y: 0,
* spatialReference
* });
*
* // Create LODs from level 0 to 31
* const tileInfo = TileInfo.create({
* spatialReference,
* numLODs: 32
* });
* const lods = tileInfo.lods;
*
* const constraints = new MapViewConstraints({
* snapToZoom: false,
* lods
* });
*
* const viewElement = document.querySelector("arcgis-map");
* viewElement.spatialReference = spatialReference;
* viewElement.center = center;
* viewElement.scale = 1;
* viewElement.constraints = constraints;
* ```
*/
accessor constraints: MapViewConstraints;
/**
* Indicates whether a layer's `displayFilterInfo` is honored when rendering layers in the view.
* If `false`, display filters are ignored and all features are rendered.
*
* @default false
*/
accessor displayFilterDisabled: boolean;
/**
* The extent represents the visible portion of a map within the view as an instance of [Extent](https://developers.arcgis.com/javascript/latest/references/core/geometry/Extent/).
* Setting the extent immediately changes the view without animation. To animate
* the view, see this component's [goTo()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#goTo) method.
* When the view is rotated, the extent does not update to include the newly visible portions of the map.
*
* **Notes**
*
* * If the spatial reference of `extent` set does not match the [spatialReference](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#spatialReference) of the view, then the
* [projectOperator](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/) will be loaded dynamically.
* * At runtime, the [projectOperator](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/)
* must be [loaded](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#load) when
* setting the `extent` to a spatial reference that doesn't match the view spatial reference. You can check if the projectOperator is
* loaded prior to setting the extent by calling [isLoaded()](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#isLoaded)
* method. If it is not yet loaded, you can call the [load](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#load) method.
*/
accessor extent: MapView["extent"];
/**
* A rejected view indicates a fatal error making it unable to display.
*
* @since 4.12
* @see [tryFatalErrorRecovery()](https://developers.arcgis.com/javascript/latest/references/core/views/View/#tryFatalErrorRecovery)
* @example
* ```js
* reactiveUtils.when(
* () => viewElement.fatalError,
* () => {
* console.error("Fatal Error! View has lost its WebGL context. Attempting to recover...");
* viewElement.tryFatalErrorRecovery();
* }
* );
* ```
*/
accessor fatalError: Error<any> | null | undefined;
/**
* Applies a display filter on the view for a specific set of floor levels.
* It can filter the map display on floor-aware layers by zero or more level IDs.
*/
accessor floors: Collection<string>;
/** Gamepad input specific configuration settings. */
get gamepad(): GamepadSettings;
/**
* Allows for adding graphics directly to the default graphics in the map component.
*
* @example
* ```js
* // Adds a graphic to the map component.
* viewElement.graphics.add(pointGraphic);
* ```
* @example
* ```js
* // Removes a graphic from the map component.
* viewElement.graphics.remove(pointGraphic);
* ```
* @see [Graphic](https://developers.arcgis.com/javascript/latest/references/core/Graphic/)
* @see [GraphicsLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GraphicsLayer/)
* @see [Intro to graphics](https://developers.arcgis.com/javascript/latest/sample-code/intro-graphics/)
*/
accessor graphics: Collection<Graphic>;
/**
* Specifies the surface properties for the map.
*
* @see [ElevationLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ElevationLayer/)
* @see [Ground](https://developers.arcgis.com/javascript/latest/references/core/Ground/)
* @example
* ```js
* // Create a map with the world elevation layer overlaid by a custom elevation layer
* const worldElevation = new ElevationLayer({
* url: "//elevation3d.arcgis.com/arcgis/rest/services/WorldElevation3D/Terrain3D/ImageServer"
* });
* const customElevation = new ElevationLayer({
* url: "https://my.server.com/arcgis/rest/service/MyElevationService/ImageServer"
* });
* const map = new Map({
* basemap: "topo-vector",
* ground: new Ground({
* layers: [ worldElevation, customElevation ]
* })
* });
*
* viewElement.map = map;
* ```
*/
get ground(): Ground;
set ground(value: Ground | string);
/**
* Indicates whether the attribution is hidden in the view.
*
* Esri requires that when you use an ArcGIS Online basemap in your app, the map must include Esri attribution and you must be licensed to use the content.
* For detailed guidelines on working with attribution, please visit the official [attribution in your app](https://developers.arcgis.com/terms/attribution/) documentation.
* For information on terms of use, see the [Terms of Use FAQ](https://developers.arcgis.com/terms/faq/).
*
* @default false
* @since 5.0
*/
accessor hideAttribution: boolean;
/**
* Represents a collection of [HighlightOptions](https://developers.arcgis.com/javascript/latest/references/core/views/support/HighlightOptions/)
* objects which can be used to highlight features throughout an application. Highlighting works by applying highlight options to one or
* more features. You can configure these options (such as color or opacity) to define how a feature will be visually
* emphasized.
*
* A maximum of six [HighlightOptions](https://developers.arcgis.com/javascript/latest/references/core/views/support/HighlightOptions/)
* objects are supported in the collection, and they can be added, removed, and reordered freely. Their order in the collection determines priority, with the last
* object having the highest priority. If you apply more than one highlight to a feature, the one that is last within
* the collection will be applied. The [HighlightOptions](https://developers.arcgis.com/javascript/latest/references/core/views/support/HighlightOptions/)
* object must be part of this collection in order to be applied to features.
*
* To highlight a feature, use the [highlight()](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#highlight)
* method on the relevant [LayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/) instance. To apply specific
* [HighlightOptions](https://developers.arcgis.com/javascript/latest/references/core/views/support/HighlightOptions/), include the
* [name](https://developers.arcgis.com/javascript/latest/references/core/views/support/HighlightOptions/#name) in the `highlight()` method's `options` parameter.
* If no `name` is provided, the feature will use the `default` highlight options.
*
* The table below shows the default highlight options in the View's highlights collection if the collection has not
* been modified:
*
* | Highlight options name | Description | Default settings |
* | ---------------------- | ----------- | ---------------- |
* | default | The default highlight options. Used when `layerView.highlight()` is called without specifying any particular highlight options. | ` { name: "default", color: "cyan", haloOpacity: 1, fillOpacity: 0.25, shadowColor: "black", shadowOpacity: 0.4, shadowDifference: 0.2}` |
* | temporary | The temporary highlight options, pre-configured for common use cases such as hovering over a feature in the view. | `{ name: "temporary", color: "yellow", haloOpacity: 1, fillOpacity: 0.25, shadowColor: "black", shadowOpacity: 0.4, shadowDifference: 0.2 }` |
*
* @see [Sample: Highlight features by geometry](https://developers.arcgis.com/javascript/latest/sample-code/highlight-features-by-geometry/)
* @see [Sample: Highlight point features](https://developers.arcgis.com/javascript/latest/sample-code/highlight-point-features/)
* @since 4.32
* @example
* ```js
* // Use the default highlights collection to apply a highlight to features when you hover over them
* // A handler can be used to remove any previous highlight when applying a new one
* let hoverHighlight;
*
* viewElement.addEventListener("arcgisViewPointerMove", async (event) => {
* try {
* await updateHoverHighlight(event);
* } catch (error) {
* if (error.name !== "AbortError") {
* console.error(error);
* }
* }
* });
*
* const updateHoverHighlight = promiseUtils.debounce(async (event) => {
* // Search for the first feature in the featureLayer at the hovered location
* const response = await viewElement.hitTest(event.detail, { include: featureLayer });
* const result = response.results[0];
*
* // Remove any previous highlight, if it exists
* hoverHighlight?.remove();
*
* if (result?.type === "graphic") {
* // Highlight the hit feature with the temporary highlight options
* hoverHighlight = layerView.highlight(result.graphic, { name: "temporary" });
* }
* });
* ```
* @example
* ```js
* // Override the default highlights collection
* const viewElement = document.querySelector("arcgis-map");
* viewElement.highlights = new Collection([
* { name: "default", color: "orange" },
* { name: "temporary", color: "magenta" },
* { name: "table", color: "cyan", fillOpacity: 0.5, haloOpacity: 0}
* ]);
* ```
* @example
* ```js
* // Add highlight options to the collection after initialization
*
* const selectionHighlightOptions = {
* name: "selection",
* color: "#ff00ff", // bright fuchsia
* haloOpacity: 0.8,
* fillOpacity: 0.2
* };
*
* // Add the options to the highlights collection at the first position
* viewElement.highlights.add(selectionGroup, 0);
* ```
*/
accessor highlights: Collection<HighlightOptions>;
/**
* Indicates whether the view is being interacted with (for example, when panning or via an interactive tool).
*
* @default false
*/
get interacting(): boolean;
/**
* Contains indoor positioning system information for the map.
*
* @since 4.31
*/
accessor ipsInfo: IPSInfo | null | undefined;
/**
* The ID of a WebMap from ArcGIS Online or ArcGIS Enterprise portal.
*
* To configure the portal url you must set the [`portalUrl` property on `config`](https://developers.arcgis.com/javascript/latest/references/core/config/#portalUrl) before the Map component loads.
*/
accessor itemId: null | undefined | string;
/**
* A collection containing a hierarchical list of all the created
* [LayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/)s of the
* [operational layers](https://developers.arcgis.com/javascript/latest/references/core/Map/#layers) in the map.
*
* @see [LayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/)
*/
get layerViews(): Collection<LayerView>;
/**
* An array of objects that encountered an error while loading the component or any of its dependencies (e.g., basemap, ground, layers, tables). You may inspect the errors by accessing each object's `loadError` property.
*
* @since 4.34
*/
accessor loadErrorSources: LoadErrorSource[] | undefined;
/**
* The magnifier allows for showing a portion of the view as a magnifier image on top of the view.
*
* @since 4.19
*/
get magnifier(): Magnifier;
/** An instance of a [Map](https://developers.arcgis.com/javascript/latest/references/core/Map/) object to display in the view. */
accessor map: Map | null | undefined;
/**
* Indication whether the view is being navigated (for example when panning).
*
* @default false
*/
get navigating(): boolean;
/**
* Options to configure the navigation behavior of the View.
*
* @since 4.9
* @example
* ```js
* // Disable the gamepad usage, single touch panning, panning momentum and mouse wheel zooming.
* const viewElement = document.querySelector("arcgis-map");
* viewElement.navigation = {
* gamepad: {
* enabled: false
* },
* actionMap: {
* dragSecondary: "none", // Disable rotating the view with the right mouse button
* mouseWheel: "none" // Disable zooming with the mouse wheel
* },
* browserTouchPanEnabled: false,
* momentumEnabled: false,
* };
* ```
*/
accessor navigation: Navigation;
/**
* Padding to make the map's center and extent work off a
* subsection of the full map. This is particularly useful when layering UI
* elements or semi-transparent content on top of portions of the map.
*
* @default {left: 0, top: 0, right: 0, bottom: 0}
* @see [Sample: Map padding](https://developers.arcgis.com/javascript/latest/sample-code/map-padding/)
*/
accessor padding: ViewPadding;
/**
* A [Popup](https://developers.arcgis.com/javascript/latest/references/core/widgets/Popup/) widget object that displays general content or attributes from [layers](https://developers.arcgis.com/javascript/latest/references/core/Map/#layers) in the [map](https://developers.arcgis.com/javascript/latest/references/core/views/View/#map). Consider using the [popupElement](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#popupElement) (beta), which represents the Popup component, instead.
*
* By default, the `popup` property is an empty object that allows you to set the popup options. A [Popup](https://developers.arcgis.com/javascript/latest/references/core/widgets/Popup/) instance is automatically created and assigned to the view's [popup](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#popup) when the user clicks on the view and [popupEnabled](https://developers.arcgis.com/javascript/latest/references/core/views/PopupView/#popupEnabled) is `true`, when the [openPopup()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#openPopup) method is called, or when some widgets need the popup, such as [Search](https://developers.arcgis.com/javascript/latest/references/core/widgets/Search/). If [popup](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#popup) is `null`, the popup instance will not be created.
*
* @see [popupElement](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#popupElement)
* @see [popupDisabled](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#popupDisabled)
* @see [openPopup()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#openPopup)
*/
accessor popup: Popup | null | undefined;
/**
* Indicates whether the [popup component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#popupElement) (beta) is enabled as the default popup. When set to `true`, the [popupElement](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#popupElement) property (representing the component) will be used for popups instead of the [popup](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#popup) property (representing the widget).
*
* **Note:** This is a beta feature and may change in future releases. At version 6.0, the Popup component will be used by default instead of the Popup widget and the `popup-component-enabled` attribute will no longer be necessary.
*
* @default false
* @beta
* @since 5.0
* @see [popupElement](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#popupElement)
* @example
* ```html
* <arcgis-map item-id="WEBMAP-ID" popup-component-enabled></arcgis-map>
* ```
*/
accessor popupComponentEnabled: boolean;
/**
* Controls whether the default popup opens automatically when users click on the view. This controls both the [popupElement](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#popupElement) and [popup](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#popup) properties. When set to `true`, the popup will not open on click or when triggered programmatically.
*
* @default false
* @see [openPopup()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#openPopup)
*/
accessor popupDisabled: boolean;
/**
* A reference to the current [arcgis-popup](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-popup/) (beta). The [popupComponentEnabled](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#popupComponentEnabled) property must be set to `true` to use this property.
*
* **Note:** This is a beta feature and may change in future releases.
*
* @beta
* @since 5.0
* @see [popupComponentEnabled](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#popupComponentEnabled)
* @example
* ```html
* <arcgis-map item-id="WEBMAP-ID" popup-component-enabled></arcgis-map>
* <script type="module">
* const viewElement = document.querySelector("arcgis-map");
* await viewElement.viewOnReady();
* viewElement.popupElement.dockEnabled = true;
* viewElement.popupElement.dockOptions = {
* buttonEnabled: false,
* breakpoint: false,
* position: "top-right",
* };
* </script>
* ```
*/
get popupElement(): ArcgisPopup | null;
/**
* When `true`, this property indicates whether the [view](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#view) has successfully satisfied all dependencies, signaling that the following conditions are met:
*
* * The view has a [map](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#map). If [map](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#map)
* is a [WebMap](https://developers.arcgis.com/javascript/latest/references/core/WebMap/), then the map
* must be [loaded](https://developers.arcgis.com/javascript/latest/references/core/WebMap/#loaded).
* * The view has a [spatialReference](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#spatialReference), a [center](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#center), and a [scale](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#scale).
* These also can be inferred by setting an [extent](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#extent).
*
* When a view becomes ready it will resolve itself and invoke
* the callback defined in [viewOnReady()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#viewOnReady) where code can execute on a working view.
*
* @default false
* @see [when()](https://developers.arcgis.com/javascript/latest/references/core/views/View/#when)
*/
get ready(): boolean;
/**
* Defines which anchor stays still while resizing the browser window. The default, `center`,
* ensures the view's center point remains constantly visible as the window size changes. The other
* options allow the respective portion of the view to remain visible when the window's size is changed.
*
* @default "center"
*/
accessor resizeAlign: ResizeAlign;
/**
* Represents the current value of one pixel in the unit of the view's spatialReference.
* The value of resolution is calculated by dividing the view's extent width
* by its width.
*
* @since 4.9
*/
get resolution(): number;
/**
* The clockwise rotation of due north in relation to the top of the view in degrees.
* The view may be rotated by directly setting
* the rotation or by using the following mouse event: `Right-click + Drag`.
* Map rotation may be disabled by setting the `rotationEnabled` property
* in [constraints](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#constraints) to `false`. See the code snippet below for
* an example of this.
*
* @default 0
* @example
* ```html
* <!-- Due north is rotated 90 degrees, pointing to the right side of the view -->
* <arcgis-map basemap="satellite" rotation="90"></arcgis-map>
* ```
* @example
* ```js
* // Due north is rotated 180 degrees, pointing to the bottom of the view
* viewElement.rotation = 180;
* ```
* @example
* ```js
* // Due north is rotated 270 degrees, pointing to the left side of the view
* viewElement.rotation = 270;
* ```
* @example
* ```js
* // Due north is rotated 0 degrees, pointing to the top of the view (the default)
* viewElement.rotation = 0; // 360 or multiple of 360 (e.g. 720) works here as well.
* ```
* @example
* ```js
* // Disables map rotation
* viewElement.constraints = {
* rotationEnabled: false
* };
* ```
*/
accessor rotation: number;
/**
* Represents the map scale at the center of the view. Setting the scale immediately changes the view. For animating
* the view, see this component's [goTo()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#goTo) method.
*/
accessor scale: number;
/**
* The default [SelectionManager](https://developers.arcgis.com/javascript/latest/references/core/views/SelectionManager/) for this view. Used to manage selections of features across layers.
*
* @since 5.0
* @beta
*/
get selectionManager(): SelectionManager;
/** @internal */
get slotGroupRefs(): SlotGroupRefs;
/**
* The spatial reference of the view. This indicates the projected or geographic coordinate system used to locate geographic features in the map.
* You can change the spatialReference of the view after it is initialized by either directly changing
* this property, or by changing the basemap from the [arcgis-basemap-gallery](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-basemap-gallery/)
* and [arcgis-basemap-toggle](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-basemap-toggle/) components.
* Set [spatialReferenceLocked](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#spatialReferenceLocked) property to `true` to prevent users from changing the view's spatial reference at runtime.
*
* Prior to changing the spatial reference, check if the [projectOperator](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/)
* is loaded by calling [projectOperator.isLoaded()](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#isLoaded) method.
* If it is not yet loaded, call [projectOperator.load()](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#load) method.
* If the `projectOperator` is not loaded, the view's [center](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#center) will default to `[0, 0]` in the new spatial reference of the view and a console error will be thrown.
*
* **Notes**
*
* * [LayerViews](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/) not compatible with the view's spatial reference
* are not displayed. In such case, the layer view's [suspended](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/#suspended)
* property is `true` and [spatialReferenceSupported](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/#spatialReferenceSupported)
* property is `false`.
* * When setting view's spatial reference, the [center](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#center), [extent](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#extent) or [viewpoint](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#viewpoint) properties are projected to the new spatial
* reference. The [scale](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#scale) and [rotation](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#rotation) properties are adjusted to keep the content of the map at the same size and orientation on screen.
* * To ensure [TileLayers](https://developers.arcgis.com/javascript/latest/references/core/layers/TileLayer/) and
* [VectorTileLayers](https://developers.arcgis.com/javascript/latest/references/core/layers/VectorTileLayer/)
* are displayed in a [basemap](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#basemap) correctly, the spatialReference of the view must be set match their
* [tileInfo's](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TileInfo/) spatial reference.
* * Switching spatial reference with an [imageCoordinateSystem](https://developers.arcgis.com/javascript/latest/references/core/geometry/SpatialReference/#imageCoordinateSystem)
* is not supported.
*
* @see [spatialReferenceLocked](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#spatialReferenceLocked)
* @example
* ```js
* const viewElement = document.querySelector("arcgis-map");
* // check if the projectOperator is loaded
* if (!projectOperator.isLoaded()) {
* // load the projectOperator if it is not loaded
* projectOperator.load().then(() => {
* // change the spatial reference of the map component to equal earth projection
* viewElement.spatialReference = new SpatialReference({
* wkid: 54035 //equal earth projection
* });
* });
* } else {
* // the projectOperator is already loaded.
* // change the spatial reference of the view to equal earth projection
* viewElement.spatialReference = new SpatialReference({
* wkid: 54035 //equal earth projection
* });
* }
* ```
*/
accessor spatialReference: SpatialReference;
/**
* Indicates if the map's [spatialReference](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#spatialReference) can be changed after it is ready.
* The default is `false`, indicating the map's spatialReference can be changed at runtime.
* When true, basemaps with spatial references that do not match the map's spatial reference
* will be disabled in [arcgis-basemap-gallery](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-basemap-gallery/) and [arcgis-basemap-toggle](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-basemap-toggle/) components and the map's spatialReference cannot be changed at runtime.
*
* @default false
* @since 4.34
*/
accessor spatialReferenceLocked: boolean;
/**
* Indication whether the view is animating, being navigated with or resizing.
*
* @default false
*/
get stationary(): boolean;
/**
* Indicates if the view is visible on the page.
*
* @default false
*/
get suspended(): boolean;
/**
* This property specifies the base colors used by some components to render graphics and labels.
*
* @since 4.28
* @see [Theme](https://developers.arcgis.com/javascript/latest/references/core/views/Theme/)
* @see [Sample - Color theming for interactive tools](https://developers.arcgis.com/javascript/latest/sample-code/view-theme/)
* @example
* ```js
* // Update the theme to use purple graphics
* // and slightly transparent green text
* view.theme = new Theme({
* accentColor: "purple",
* textColor: [125, 255, 13, 0.9]
* });
* ```
*/
accessor theme: Theme | null | undefined;
/**
* The view's time extent. Time-aware layers display their temporal data that falls within
* the view's time extent. Setting the view's time extent is similar to setting the spatial
* extent because once the time extent is set, the
* view updates automatically to conform to the change.
*
* @since 4.12
* @example
* ```js
* // Create a csv layer from an online spreadsheet.
* const csvLayer = new CSVLayer({
* url: "http://test.com/daily-magazines-sold-in-new-york.csv",
* timeInfo: {
* startField: "SaleDate" // The csv field contains date information.
* }
* });
* viewElement.map.add(csvLayer);
*
* viewElement.timeExtent = {
* start: new Date("2019, 2, 24"),
* end: new Date("2019, 2, 31")
* };
* ```
*/
accessor timeExtent: TimeExtent | null | undefined;
/**
* Defines the time zone of the view.
* The time zone property determines how dates and times are represented to the user,
* but the underlying data is unchanged.
*
* @default "system"
* @see [wikipedia - List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
* @example
* ```js
* // Date and time will be displayed in Pacific/Auckland (NZ) time zone
* const viewElement = document.querySelector("arcgis-map");
* viewElement.timeZone = "Pacific/Auckland";
* ```
*/
accessor timeZone: string;
/**
* Indicates whether the view is being updated by additional data requests to the network,
* or by processing received data.
*
* @default false
*/
get updating(): boolean;
/** The [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) instance created and managed by the component. Accessible once the component is fully loaded. */
get view(): MapView;
/**
* Represents the current view as a Viewpoint or point of observation on the view.
* Setting the viewpoint immediately changes the current view. For animating
* the view, see this component's [goTo()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#goTo) method.
*
* @example
* ```js
* // Set the viewpoint to the Empire State Building in New York City
* const viewElement = document.querySelector("arcgis-map");
* viewElement.viewpoint = new Viewpoint({
* targetGeometry: new Point({
* longitude: -73.9857,
* latitude: 40.7484
* }),
* scale: 5000
* });
* ```
* @example
* ```js
* // Get the initial viewpoint of the view once the view is ready
* const viewElement = document.querySelector("arcgis-map");
* await viewElement.viewOnReady();
* const initialViewpoint = viewElement.viewpoint.clone();
* ```
*/
accessor viewpoint: Viewpoint;
/**
* The visibleArea represents the visible portion of a [Map](https://developers.arcgis.com/javascript/latest/references/core/Map/) within the view as
* an instance of a [Polygon](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polygon/). This is similar to the view
* [MapView#extent](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#extent) but is a more accurate representation of the visible area especially
* when the view is rotated. An example use of the visible area is to spatially filter visible features
* in a layer view query.
*
* @since 4.31
* @see [MapView#extent](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#extent)
*/
get visibleArea(): Polygon | null | undefined;
/**
* Represents the level of detail (LOD) at the center of the map.
* A zoom level (or scale) is a number that defines how large or small the contents of a map appear in a Map component.
* Zoom level is a number usually between 0 (global view) and 23 (very detailed view) and is used as a shorthand for predetermined scale values.
* A value of -1 means the map has no LODs.
* When setting the zoom value, the component converts it to the corresponding scale, or interpolates it if the zoom is a fractional number.
*
* Setting the zoom immediately changes the current view. For animating the view, see this component's [goTo()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#goTo) method.
* Setting this property in conjunction with `center` is a convenient way to set the initial extent of the view.
*/
accessor zoom: number;
/** Closes the popup. */
closePopup(): Promise<void>;
/** Destroys the view, and any associated resources, including its map, popup, and UI elements. */
destroy(): Promise<void>;
/**
* Use this method to query for features at a given screen location. These features come from origins (layers and sublayers) configured with a [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/) and have its [FeatureLayer.popupEnabled](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#popupEnabled) set. One example could be a custom side panel that displays feature-specific information based on an end user's click location. This method allows a developer to control how the input location is handled, and then subsequently, what to do with the results.
* > [!WARNING]
* > Using [ScreenRect](https://developers.arcgis.com/javascript/latest/references/core/core/types/#ScreenRect) as the hit target is considered **[beta](https://developers.arcgis.com/javascript/latest/faq/#what-does-the-beta-tag-mean)** functionality.
*
* @param hitTarget
* @param options
* @since 5.1
* @example
* ```js
* const viewElement = document.querySelector("arcgis-map");
* // Get viewElement's click event
* viewElement.addEventListener("arcgisViewClick", async (event) => {
* const generator = await viewElement.fetchPopupFeatures(event.detail.screenPoint, {
* pointerType: event.detail.pointerType
* });
* // Access the features returned from the generator
* for await (const feature of generator) {
* console.log(feature);
* }
* });
* ```
* @example
* ```js
* // Wait for all the features to be available
* view.on("click", async (event) => {
* const generator = view.fetchPopupFeatures(event.screenPoint, {
* pointerType: event.pointerType
* });
*
* const features = await Array.fromAsync(generator);
* });
*/
fetchPopupFeatures(hitTarget: ScreenPoint | ScreenRect, options?: FetchPopupFeaturesOptions): Promise<AsyncGenerator<Graphic>>;
/**
* Sets the view to a given target.
*
* @param target
* @param options
*/
goTo(target: GoToTarget2D, options?: GoToOptions2D): Promise<unknown>;
/**
* Returns [hit test results](https://developers.arcgis.com/javascript/latest/references/core/views/types/#ViewHitTestResult) from each layer that intersects the specified screen point or screen rectangle.
* The results are organized as an array of objects containing different [ViewHit](https://developers.arcgis.com/javascript/latest/references/core/views/types/#ViewHit) result types such as graphics, raster pixels, media elements, or routes.
*
* **2D hitTest() behavior by layer type**
* | Layer type | Hit test behavior |
* | :--- | :--- |
* | [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer), [CatalogFootprintLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/catalog/CatalogFootprintLayer), [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer), [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer), [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OGCFeatureLayer), [OrientedImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OrientedImageryLayer), [ParquetLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer), [StreamLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/StreamLayer), [SubtypeGroupLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SubtypeGroupLayer), [WFSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/WFSLayer) | Returns all intersecting [GraphicHit](https://developers.arcgis.com/javascript/latest/references/core/views/types/#GraphicHit) features at the hit location. |
* | [GeoRSSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoRSSLayer), [GraphicsLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GraphicsLayer), [KMLLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/KMLLayer), [MapNotesLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MapNotesLayer) | Returns all intersecting [GraphicHit](https://developers.arcgis.com/javascript/latest/references/core/views/types/#GraphicHit) features at the hit location. |
* | [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer), [ImageryTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer)| Returns [RasterHit](https://developers.arcgis.com/javascript/latest/references/core/views/types/#RasterHit) result containing raster pixel value used in rendering and bandId info on intersecting pixels. Support was added in version 5.1. The `screenRect` hitTarget returns hit result at the center of the rectangle. |
* | [VectorTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/VectorTileLayer) | Returns a result for all intersecting [GraphicHit](https://developers.arcgis.com/javascript/latest/references/core/views/types/#GraphicHit) features containing attributes of style layers (as of version 4.29; in prior releases, only the topmost style layer result was returned). In addition, the graphic's [origin](https://developers.arcgis.com/javascript/latest/references/core/Graphic#origin) contains the style layer's [id](https://maplibre.org/maplibre-style-spec/layers/#id) and layer index within the [vector tile style](https://doc.arcgis.com/en/arcgis-online/reference/tile-layers.htm#ESRI_SECTION1_8F68399EB47B48FF9EF46719FCC96978). Spatial information about the actual feature represented in the style layer is returned only if the style layer is a [symbol layer](https://maplibre.org/maplibre-style-spec/layers/#symbol). Otherwise, the graphic's geometry is `null`. |
* | [MediaLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MediaLayer) | Returns [MediaHit](https://developers.arcgis.com/javascript/latest/references/core/views/types/#MediaHit) result containing all media elements if the hit is made on intersecting elements. |
* | [RouteLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/RouteLayer) | Returns [RouteHit](https://developers.arcgis.com/javascript/latest/references/core/views/types/#RouteHit) result containing all intersecting route elements if the hit is made on intersecting elements. |
*
* **Note:** If the [Polygon](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polygon) feature's symbol [SimpleFillSymbol.style](https://developers.arcgis.com/javascript/latest/references/core/symbols/SimpleFillSymbol#style) is set to "none", the hitTest method will not
* return results when the fill is clicked. However, it will return results when the outline is clicked. To get results when clicking the fill, set the
* [SimpleFillSymbol.color](https://developers.arcgis.com/javascript/latest/references/core/symbols/SimpleFillSymbol#color) to a transparent color instead.
*
* Release-specific changes:
* * At version 5.1, **[beta](https://developers.arcgis.com/javascript/latest/faq/#what-does-the-beta-tag-mean)** support was added for [ScreenRect](https://developers.arcgis.com/javascript/latest/references/core/core/types/#ScreenRect), allowing hit tests across rectangular screen areas.
* * At version 4.24, [ViewHitTestResult](https://developers.arcgis.com/javascript/latest/references/core/views/types/#ViewHitTestResult) returns an array of objects containing [GraphicHit](https://developers.arcgis.com/javascript/latest/references/core/views/types/#GraphicHit) graphic, [MediaHit](https://developers.arcgis.com/javascript/latest/references/core/views/types/#MediaHit) media element, and [RouteHit](https://developers.arcgis.com/javascript/latest/references/core/views/types/#RouteHit) route.
* * At version 4.23, all hit test features from feature layers are returned in the result. In prior releases, only the top most feature was returned.
*
* @param hitTarget
* @param options
* @see [Sample - Access features with hitTest](https://developers.arcgis.com/javascript/latest/sample-code/map-component-hittest/)
* @see [Sample - Hit test features by screen rectangle](https://developers.arcgis.com/javascript/latest/sample-code/map-hittest-screen-rectangle/)
* @see [Sample - VectorTileLayer hitTest](https://developers.arcgis.com/javascript/latest/sample-code/layers-vectortilelayer-hittest/)
* @example
* ```js
* viewElement.addEventListener("arcgisViewClick", async (event) => {
* const response = await viewElement.hitTest(event.detail);
* const result = response.results[0];
* if (result?.type === "graphic") {
* const { longitude, latitude } = result.mapPoint;
* console.log(`Hit graphic at (${longitude}, ${latitude})`, result.graphic);
* } else {
* console.log("Did not hit any graphic");
* }
* });
* ```
* @example
* ```js
* // get screenpoint from view's click event
* viewElement.addEventListener("arcgisViewClick", async (event) => {
* // Search for all media elements only on included mediaLayer at the clicked location
* const response = await viewElement.hitTest(event.detail, {
* include: {mediaLayer}
* });
* // if media elements are returned from the mediaLayer, do something with results
* if (response.results.length){
* // do something
* console.log(response.results.length, "elements returned");
* }
* });
* ```
*/
hitTest(hitTarget: MouseEvent | ScreenPoint | ScreenRect, options?: HitTestOptions): Promise<ViewHitTestResult>;
/**
* Opens the popup at the given location with content defined either explicitly with content or driven
* from the PopupTemplate of input features.
*
* @param options
*/
openPopup(options?: ViewPopupOpenOptions): Promise<void>;
/**
* Create a screenshot of the current view.
*
* @param options
*/
takeScreenshot(options?: UserSettings): Promise<Screenshot>;
/** @param screenPoint */
toMap(screenPoint: MouseEvent | ScreenPoint): Point;
/**
* @param point
* @param options
*/
toScreen(point: Point, options?: ToScreenOptions2D): ScreenPoint | null | undefined;
/** Call this method to clear any fatal errors resulting from a lost WebGL context. */
tryFatalErrorRecovery(): Promise<void>;
/**
* `viewOnReady()` may be leveraged once an instance of the component and its underlying [view](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#view) is created and ready.
* This method takes two input parameters, a `callback` function and an `errback` function, and returns a promise. The `callback` executes when the promise resolves, and the `errback` executes if the promise is rejected.
*
* @param callback
* @param errback
* @since 4.33
* @see [Watch for changes - waiting for components or views to be ready](https://developers.arcgis.com/javascript/latest/watch-for-changes/#waiting-for-components-or-views-to-be-ready)
* @example
* ```js
* const viewElement = document.querySelector("arcgis-map");
* await viewElement.viewOnReady();
* // The view is now ready to be used.
* viewElement.map.add(new FeatureLayer({...}));
* ```
*/
viewOnReady(callback?: () => void, errback?: (error: Error) => void): Promise<void>;
/**
* Gets the analysis view created for the given analysis object.
*
* [Read more](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#whenAnalysisView)
*
* @param analysis
* @since 4.34
*/
whenAnalysisView(analysis: Analysis): Promise<AnalysisView2DUnion>;
/**
* Gets the LayerView created on the view for the given layer.
*
* [Read more](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#whenLayerView)
*
* @param layer
*/
whenLayerView<TLayer extends Layer>(layer: TLayer): Promise<LayerView2DFor<TLayer>>;
/**
* Zooms in the view component by a factor of 2.
*
* @since 5.0
*/
zoomIn(): Promise<void>;
/**
* Zooms out the view component by a factor of 2.
*
* @since 5.0
*/
zoomOut(): Promise<void>;
"@setterTypes": {
center?: MapView["center"] | null | undefined | number[] | string;
ground?: Ground | string;
};
/**
* Fires when an arcgis-map fails to load or if one of its dependencies fails to load (e.g., basemap, ground, layers).
*
* @since 4.34
* @see [loadErrorSources](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#loadErrorSources)
* @example
* ```js
* viewElement.addEventListener("arcgisLoadError", () => {
* console.log(viewElement.loadErrorSources);
* });
* ```
*/
readonly arcgisLoadError: import("@arcgis/lumina").TargetedEvent<this, void>;
/**
* Fires when the view for an analysis is created.
*
* [Read more](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#event-analysis-view-create)
*
* @since 4.34
*/
readonly arcgisViewAnalysisViewCreate: import("@arcgis/lumina").TargetedEvent<this, AnalysisViewCreateEvent>;
/**
* Fires when an error occurs during the creation of an analysis view after an analysis is added to the view.
*
* [Read more](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#event-analysis-view-create-error)
*
* @since 4.34
*/
readonly arcgisViewAnalysisViewCreateError: import("@arcgis/lumina").TargetedEvent<this, AnalysisViewCreateErrorEvent>;
/**
* Fires after an analysis view is destroyed.
*
* [Read more](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#event-analysis-view-destroy)
*
* @since 4.34
*/
readonly arcgisViewAnalysisViewDestroy: import("@arcgis/lumina").TargetedEvent<this, AnalysisViewDestroyEvent>;
/**
* This event is triggered when view-related properties change, such as [zoom](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#zoom), [scale](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#scale), [center](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#center), [rotation](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#rotation), [extent](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#extent),
* [viewpoint](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#viewpoint), or [stationary](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#stationary).
* It reflects user interactions (e.g. panning or zooming) or programmatic updates to the view.
*
* > The `arcgisViewChange` event may be emitted before the view is fully ready.
* > This means the event can fire before the component's `stationary` property is `true` or before the view has completed its initial setup.
* > For actions that require the view to be ready and stationary, combine this event with checks on the component's `stationary` and `ready` properties.
*
* @example
* ```js
* // get the number of features in a layer view whenever the view becomes stationary
* viewElement.addEventListener("arcgisViewChange", async (event) =>{
* if (viewElement.ready && viewElement.stationary) {
* // Returns number of features available for drawing in a given layer view
* const count = await layerView.queryFeatureCount({
* geometry: viewElement.extent
* });
* // use the features count
* }
* });
* ```
*/
readonly arcgisViewChange: import("@arcgis/lumina").TargetedEvent<this, void>;
/**
* Fires after a user clicks on the view. This event emits slightly slower than an [@arcgisViewImmediateClick](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#event-arcgisViewImmediateClick)
* event to make sure that an [@arcgisViewDoubleClick](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#event-arcgisViewDoubleClick) event isn't triggered instead. The `arcgisViewImmediateClick`
* event can be used for responding to an `arcgisViewClick` event without delay.
*
* @example
* ```js
* // Listen for clicks on the view and perform a hit test on a feature layer
* viewElement.addEventListener("arcgisViewClick", (event) => {
* // Return hit test results from the feature layer
* // where it intersects the screen coordinates from the click event.
* // The result is a polygon representing the state that was clicked.
* viewElement.hitTest(event.detail).then((response) => {
* if (response.results.length) {
* const stateBoundaryPolygon = response.results.find((result) => {
* return result.graphic.layer === stateBoundaryFeatureLayer;
* }).graphic.geometry;
*
* getPolygonCentroid(stateBoundaryPolygon);
* }
* });
* });
* ```
*/
readonly arcgisViewClick: import("@arcgis/lumina").TargetedEvent<this, ClickEvent>;
/**
* Fires after double-clicking on the view.
*
* @example
* ```js
* viewElement.addEventListener("arcgisViewDoubleClick", async (event) => {
* // Prevent the default zoom-in behavior on double-click
* event.detail.stopPropagation();
* });
* ```
*/
readonly arcgisViewDoubleClick: import("@arcgis/lumina").TargetedEvent<this, DoubleClickEvent>;
/**
* Fires while the pointer is dragged following a double-tap gesture on the view.
*
* [Read more](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#event-double-tap-drag)
*
* @since 5.0
* @example
* ```js
* viewElement.addEventListener("arcgisViewDoubleTapDrag", (event) => {
* // Display the distance moved from the drag origin.
* console.log("x distance:", event.detail.x, "y distance:", event.detail.y);
* });
* ```
*/
readonly arcgisViewDoubleTapDrag: import("@arcgis/lumina").TargetedEvent<this, DoubleTapDragEvent>;
/** Fires during a pointer drag on the view. */
readonly arcgisViewDrag: import("@arcgis/lumina").TargetedEvent<this, DragEvent>;
/** Fires after holding either a mouse button or a single finger on the view for a short amount of time. */
readonly arcgisViewHold: import("@arcgis/lumina").TargetedEvent<this, HoldEvent>;
/**
* Fires right after a user clicks on the view. In contrast to the [@arcgisViewClick](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#event-arcgisViewClick) event, the `arcgisViewImmediateClick`
* is emitted as soon as the user clicks on the view, and is not inhibited by a [@arcgisViewDoubleClick](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#event-arcgisViewDoubleClick) event.
* This event is useful for interactive experiences that require feedback without delay.
*
* @example
* ```js
* viewElement.addEventListener("arcgisViewImmediateClick", async (event) => {
* // Prevent the default zoom-in behavior on arcgisViewImmediateClick
* event.detail.stopPropagation();
* });
* ```
*/
readonly arcgisViewImmediateClick: import("@arcgis/lumina").TargetedEvent<this, ImmediateClickEvent>;
/**
* Fires after two consecutive [@arcgisViewImmediateClick](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#event-arcgisViewImmediateClick) events. In contrast to [@arcgisViewDoubleClick](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#event-arcgisViewDoubleClick),
* an `arcgisViewImmediateDoubleClick` cannot be prevented by use of `stopPropagation()` on the [@arcgisViewImmediateClick](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#event-arcgisViewImmediateClick)
* event and can therefore be used to react to double-clicking independently of usage of the [@arcgisViewImmediateClick](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#event-arcgisViewImmediateClick) event.
*/
readonly arcgisViewImmediateDoubleClick: import("@arcgis/lumina").TargetedEvent<this, ImmediateDoubleClickEvent>;
/**
* Fires after a keyboard key is pressed.
*
* @example
* ```js
* // Disable zooming with the keyboard
* // Stop event propagation when `+` and `-` keys are pressed.
* viewElement.addEventListener("arcgisViewKeyDown", function(event){
* console.log("key-down", event);
*
* const prohibitedKeys = ["+", "-"];
* const keyPressed = event.detail.key;
* if (prohibitedKeys.indexOf(keyPressed) !== -1) {
* event.detail.stopPropagation();
* }
* });
* ```
*/
readonly arcgisViewKeyDown: import("@arcgis/lumina").TargetedEvent<this, KeyDownEvent>;
/** Fires after a keyboard key is released. */
readonly arcgisViewKeyUp: import("@arcgis/lumina").TargetedEvent<this, KeyUpEvent>;
/**
* Fires after each layer in the map has a corresponding
* [LayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/)
* created and rendered in the view.
*/
readonly arcgisViewLayerviewCreate: import("@arcgis/lumina").TargetedEvent<this, LayerViewCreateEvent>;
/**
* Fires when an error occurs during the creation of a [LayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/)
* after a layer has been added to the map.
*/
readonly arcgisViewLayerviewCreateError: import("@arcgis/lumina").TargetedEvent<this, LayerViewCreateErrorEvent>;
/**
* Fires after a [LayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/)
* is destroyed and is no longer rendered in the view.
*/
readonly arcgisViewLayerviewDestroy: import("@arcgis/lumina").TargetedEvent<this, LayerViewDestroyEvent>;
/**
* Fires when a wheel button of a pointing device (typically a mouse) is scrolled on the view.
*
* @example
* ```js
* viewElement.addEventListener("arcgisViewMouseWheel", async (event) => {
* // Prevent the default zoom-in and zoom-out behavior on arcgisViewMouseWheel
* event.detail.stopPropagation();
* });
* ```
*/
readonly arcgisViewMouseWheel: import("@arcgis/lumina").TargetedEvent<this, ViewMouseWheelEvent>;
/**
* Fires after a mouse button is pressed, or a finger touches the display.
*
* @see [Sample: Access features with hitTest](https://developers.arcgis.com/javascript/latest/sample-code/map-component-hittest/)
*/
readonly arcgisViewPointerDown: import("@arcgis/lumina").TargetedEvent<this, PointerDownEvent>;
/** Fires after a mouse cursor enters the view, or a display touch begins. */
readonly arcgisViewPointerEnter: import("@arcgis/lumina").TargetedEvent<this, PointerEnterEvent>;
/** Fires after a mouse cursor leaves the view, or a display touch ends. */
readonly arcgisViewPointerLeave: import("@arcgis/lumina").TargetedEvent<this, PointerLeaveEvent>;
/**
* Fires after the mouse or a finger on the display moves.
*
* @see [Sample: Access features with hitTest](https://developers.arcgis.com/javascript/latest/sample-code/map-component-hittest/)
*/
readonly arcgisViewPointerMove: import("@arcgis/lumina").TargetedEvent<this, PointerMoveEvent>;
/** Fires after a mouse button is released, or a display touch ends. */
readonly arcgisViewPointerUp: import("@arcgis/lumina").TargetedEvent<this, PointerUpEvent>;
/**
* This event is for the `ready` property and is emitted when the view is ready.
* Fires also when the [map](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-map/#map) is updated.
*/
readonly arcgisViewReadyChange: import("@arcgis/lumina").TargetedEvent<this, void>;
/**
* Fires if the view encounters a content or rendering error.
*
* @since 4.34
* @example
* ```js
* viewElement.addEventListener("arcgisViewReadyError", () => {
* // handle error
* });
* ```
*/
readonly arcgisViewReadyError: import("@arcgis/lumina").TargetedEvent<this, void>;
/**
* Fires while the two pointers are dragged vertically on the view.
*
* [Read more](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#event-vertical-two-finger-drag)
*
* @since 5.0
* @example
* ```js
* viewElement.addEventListener("arcgisViewVerticalTwoFingerDrag", (event) => {
* // Display the distance moved vertically from the drag origin.
* console.log("y distance:", event.detail.y);
* });
* ```
*/
readonly arcgisViewVerticalTwoFingerDrag: import("@arcgis/lumina").TargetedEvent<this, VerticalTwoFingerDragEvent>;
readonly "@eventTypes": {
arcgisLoadError: ArcgisMap["arcgisLoadError"]["detail"];
arcgisViewAnalysisViewCreate: ArcgisMap["arcgisViewAnalysisViewCreate"]["detail"];
arcgisViewAnalysisViewCreateError: ArcgisMap["arcgisViewAnalysisViewCreateError"]["detail"];
arcgisViewAnalysisViewDestroy: ArcgisMap["arcgisViewAnalysisViewDestroy"]["detail"];
arcgisViewChange: ArcgisMap["arcgisViewChange"]["detail"];
arcgisViewClick: ArcgisMap["arcgisViewClick"]["detail"];
arcgisViewDoubleClick: ArcgisMap["arcgisViewDoubleClick"]["detail"];
arcgisViewDoubleTapDrag: ArcgisMap["arcgisViewDoubleTapDrag"]["detail"];
arcgisViewDrag: ArcgisMap["arcgisViewDrag"]["detail"];
arcgisViewHold: ArcgisMap["arcgisViewHold"]["detail"];
arcgisViewImmediateClick: ArcgisMap["arcgisViewImmediateClick"]["detail"];
arcgisViewImmediateDoubleClick: ArcgisMap["arcgisViewImmediateDoubleClick"]["detail"];
arcgisViewKeyDown: ArcgisMap["arcgisViewKeyDown"]["detail"];
arcgisViewKeyUp: ArcgisMap["arcgisViewKeyUp"]["detail"];
arcgisViewLayerviewCreate: ArcgisMap["arcgisViewLayerviewCreate"]["detail"];
arcgisViewLayerviewCreateError: ArcgisMap["arcgisViewLayerviewCreateError"]["detail"];
arcgisViewLayerviewDestroy: ArcgisMap["arcgisViewLayerviewDestroy"]["detail"];
arcgisViewMouseWheel: ArcgisMap["arcgisViewMouseWheel"]["detail"];
arcgisViewPointerDown: ArcgisMap["arcgisViewPointerDown"]["detail"];
arcgisViewPointerEnter: ArcgisMap["arcgisViewPointerEnter"]["detail"];
arcgisViewPointerLeave: ArcgisMap["arcgisViewPointerLeave"]["detail"];
arcgisViewPointerMove: ArcgisMap["arcgisViewPointerMove"]["detail"];
arcgisViewPointerUp: ArcgisMap["arcgisViewPointerUp"]["detail"];
arcgisViewReadyChange: ArcgisMap["arcgisViewReadyChange"]["detail"];
arcgisViewReadyError: ArcgisMap["arcgisViewReadyError"]["detail"];
arcgisViewVerticalTwoFingerDrag: ArcgisMap["arcgisViewVerticalTwoFingerDrag"]["detail"];
};
}