@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
92 lines (89 loc) • 4.45 kB
TypeScript
import type Widget from "./Widget.js";
import type ZoomViewModel from "./Zoom/ZoomViewModel.js";
import type { Icon } from "@esri/calcite-components/components/calcite-icon";
import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js";
import type { WidgetProperties } from "./Widget.js";
import type { ZoomViewModelProperties } from "./Zoom/ZoomViewModel.js";
export interface ZoomProperties extends WidgetProperties, Partial<Pick<Zoom, "layout" | "view">> {
/**
* Icon which represents the widget. It is typically used when the widget is controlled by another
* one (e.g. in the Expand widget).
*
* @default "magnifying-glass-plus"
* @since 4.27
* @see [Calcite Icon Search](https://developers.arcgis.com/calcite-design-system/icons/)
* @see [Calcite Icon Search](https://developers.arcgis.com/calcite-design-system/icons/)
*/
icon?: Icon["icon"] | null;
/**
* The widget's default label.
*
* @since 4.7
*/
label?: string | null;
/**
* The view model for this widget. This is a class that contains all the logic
* (properties and methods) that controls this widget's behavior. See the
* [ZoomViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Zoom/ZoomViewModel/) class to access
* all properties and methods on the widget.
*/
viewModel?: ZoomViewModelProperties;
}
export type ZoomLayout = "vertical" | "horizontal";
/**
* The Zoom widget allows users to zoom in/out within a view.
*
* An instance of the Zoom widget is available in every
* [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) and [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/) by default.
* See [DefaultUI](https://developers.arcgis.com/javascript/latest/references/core/views/ui/DefaultUI/) for details on how to place the Zoom widget
* in other parts of the view.
*
* @deprecated since version 4.32. Use the [Zoom component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-zoom/) instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/).
* @since 4.0
* @see [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/)
* @see [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/)
* @see [ZoomViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Zoom/ZoomViewModel/)
* @see [DefaultUI](https://developers.arcgis.com/javascript/latest/references/core/views/ui/DefaultUI/)
*/
export default class Zoom extends Widget {
constructor(properties?: ZoomProperties);
/**
* Icon which represents the widget. It is typically used when the widget is controlled by another
* one (e.g. in the Expand widget).
*
* @default "magnifying-glass-plus"
* @since 4.27
* @see [Calcite Icon Search](https://developers.arcgis.com/calcite-design-system/icons/)
* @see [Calcite Icon Search](https://developers.arcgis.com/calcite-design-system/icons/)
*/
get icon(): Icon["icon"];
set icon(value: Icon["icon"] | null | undefined);
/**
* The widget's default label.
*
* @since 4.7
*/
get label(): string;
set label(value: string | null | undefined);
/**
* Determines the layout/orientation of the Zoom widget.
*
* @default "vertical"
* @since 4.5
*/
accessor layout: ZoomLayout;
/** A reference to the [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) or [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/). Set this to link the widget to a specific view. */
accessor view: MapViewOrSceneView | null | undefined;
/**
* The view model for this widget. This is a class that contains all the logic
* (properties and methods) that controls this widget's behavior. See the
* [ZoomViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Zoom/ZoomViewModel/) class to access
* all properties and methods on the widget.
*/
get viewModel(): ZoomViewModel;
set viewModel(value: ZoomViewModelProperties);
/** Zooms the view in by an LOD factor of 0.5. */
zoomIn(): void;
/** Zooms the view out by an LOD factor of 2. */
zoomOut(): void;
}