@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
101 lines (98 loc) • 5.75 kB
TypeScript
import type Layer from "../../layers/Layer.js";
import type Accessor from "../../core/Accessor.js";
import type Sublayer from "../../layers/support/Sublayer.js";
import type ScaleRanges from "./ScaleRanges.js";
import type SliderViewModel from "../Slider/SliderViewModel.js";
import type { MapViewOrSceneView } from "../../views/MapViewOrSceneView.js";
import type { SliderViewModelProperties } from "../Slider/SliderViewModel.js";
export interface ScaleRangeSliderViewModelProperties extends Partial<Pick<ScaleRangeSliderViewModel, "layer" | "maxScaleLimit" | "minScaleLimit" | "view">> {
/**
* The maximum scale of the active scale range. When the maxScale
* reaches the [maxScaleLimit](https://developers.arcgis.com/javascript/latest/references/core/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel/#maxScaleLimit), the maxScale
* value becomes 0 and there is no maximum scale set.
*/
maxScale?: number;
/**
* The minimum scale of the active scale range. When the minScale
* reaches the [minScaleLimit](https://developers.arcgis.com/javascript/latest/references/core/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel/#minScaleLimit), the minScale
* value becomes 0 and there is no minimum scale set.
*/
minScale?: number;
/**
* The [SliderViewModel][SliderViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Slider/SliderViewModel/)
* for supporting the scale range slider widget.
*/
sliderViewModel?: SliderViewModelProperties;
}
export type ScaleRangeSliderViewModelState = "disabled" | "ready";
/**
* Provides the logic for the [ScaleRangeSlider](https://developers.arcgis.com/javascript/latest/references/core/widgets/ScaleRangeSlider/) widget and [component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-scale-range-slider/).
*
* @since 4.13
* @see [ScaleRangeSlider](https://developers.arcgis.com/javascript/latest/references/core/widgets/ScaleRangeSlider/) widget
* @see [Scale Range Slider component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-scale-range-slider/)
* @see [ScaleRanges](https://developers.arcgis.com/javascript/latest/references/core/widgets/ScaleRangeSlider/ScaleRanges/)
* @see [Programming patterns: Widget viewModel pattern](https://developers.arcgis.com/javascript/latest/programming-patterns/#widget-viewmodel-pattern)
*/
export default class ScaleRangeSliderViewModel extends Accessor {
constructor(properties?: ScaleRangeSliderViewModelProperties);
/**
* When provided, the initial [minScale](https://developers.arcgis.com/javascript/latest/references/core/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel/#minScale) and [maxScale](https://developers.arcgis.com/javascript/latest/references/core/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel/#maxScale) values will match the layer's.
*
* When a tiled layer is used, the slider will be restricted from moving the slider thumbs past the `lods` of the layer's tiling scheme.
* Since version 4.28, when a [MapImageLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MapImageLayer/) is used, the slider will be restricted from moving past the min/max scale defined on the map service.
* The unavailable scale range will be designated with a dashed line.
*/
accessor layer: Layer | Sublayer | null | undefined;
/**
* The maximum scale of the active scale range. When the maxScale
* reaches the [maxScaleLimit](https://developers.arcgis.com/javascript/latest/references/core/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel/#maxScaleLimit), the maxScale
* value becomes 0 and there is no maximum scale set.
*/
get maxScale(): number;
set maxScale(value: number | undefined);
/** The lowest possible maximum scale value from the slider. */
accessor maxScaleLimit: number;
/**
* The minimum scale of the active scale range. When the minScale
* reaches the [minScaleLimit](https://developers.arcgis.com/javascript/latest/references/core/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel/#minScaleLimit), the minScale
* value becomes 0 and there is no minimum scale set.
*/
get minScale(): number;
set minScale(value: number | undefined);
/** The highest possible minimum scale value from the slider. */
accessor minScaleLimit: number;
/** The valid scale ranges available based on the slider position. */
get scaleRanges(): ReturnType<typeof ScaleRanges.fromScaleRange>;
/**
* The [SliderViewModel][SliderViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Slider/SliderViewModel/)
* for supporting the scale range slider widget.
*/
get sliderViewModel(): SliderViewModel;
set sliderViewModel(value: SliderViewModelProperties);
/**
* The current state of the widget.
*
* @default "disabled"
*/
get state(): ScaleRangeSliderViewModelState;
/**
* 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;
/**
* Utility method for converting scale-to-slider values.
*
* @param scale - The map scale to be converted.
* @returns The value of the slider.
*/
mapScaleToSlider(scale: number): number;
/**
* Utility method for converting slider-to-scale values.
*
* @param value - The value of the slider.
* @returns The map scale that corresponds to the value of the slider.
*/
mapSliderToScale(value: number): number;
}