@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
99 lines (97 loc) • 4.58 kB
TypeScript
import type Accessor from "../../core/Accessor.js";
import type { HistogramBin } from "../../smartMapping/statistics/types.js";
import type { HistogramLabelFormatFunction } from "../types.js";
import type { HistogramState } from "./types.js";
export interface HistogramViewModelProperties extends Partial<Pick<HistogramViewModel, "average" | "bins" | "labelFormatFunction" | "max" | "min">> {}
/**
* Provides the logic for the [Histogram](https://developers.arcgis.com/javascript/latest/references/core/widgets/Histogram/) widget.
*
* @since 4.12
* @see [Histogram](https://developers.arcgis.com/javascript/latest/references/core/widgets/Histogram/)
* @see [Programming patterns: Widget viewModel pattern](https://developers.arcgis.com/javascript/latest/programming-patterns/#widget-viewmodel-pattern)
*/
export default class HistogramViewModel extends Accessor {
constructor(properties?: HistogramViewModelProperties);
/**
* The statistical average of the data in the histogram. You would typically
* get this value from the `avg` property of
* [SummaryStatisticsResult](https://developers.arcgis.com/javascript/latest/references/core/smartMapping/statistics/types/#SummaryStatisticsResult),
* which is the result of the
* [summaryStatistics](https://developers.arcgis.com/javascript/latest/references/core/smartMapping/statistics/summaryStatistics/) function.
*
* When set, this value will render on the histogram with a symbol indicating it is the average.
*
* @example
* // sets result returned from a smart mapping method
* // to the histogram
* histogramVM.average = response.statistics.avg;
* @example histogramVM.average = 34.5;
*/
accessor average: number | null | undefined;
/**
* The range of values for the histogram calculated from the bins. This is calculated by
* subtracting the min value of the first bin from the max
* value of the last bin.
*/
get binRange(): number;
/**
* An array of objects representing each bin in the histogram. This
* information is typically returned from the
* [histogram](https://developers.arcgis.com/javascript/latest/references/core/smartMapping/statistics/histogram/) function.
*
* @example
* // sets the bins of the histogram from the bins in the histogram() result
* histogramVM.bins = histogramResult.bins;
* @example
* // Creates a histogram with 7 bins.
* histogramVM.bins = [
* { minValue: 0, maxValue: 10, count: 4 },
* { minValue: 10.1, maxValue: 20, count: 14 },
* { minValue: 20.1, maxValue: 30, count: 9 },
* { minValue: 30.1, maxValue: 40, count: 34 },
* { minValue: 40.1, maxValue: 50, count: 351 },
* { minValue: 50.1, maxValue: 60, count: 100 },
* { minValue: 60.1, maxValue: 70, count: 1 }
* ];
*/
accessor bins: HistogramBin[] | null | undefined;
/**
* A function used to format labels. Overrides the default label formatter.
*
* @example
* // For thumb values, rounds each label to whole numbers.
* slider.viewModel.labelFormatFunction = function(value) {
* return value.toFixed(0);
* }
*/
accessor labelFormatFunction: HistogramLabelFormatFunction | null | undefined;
/**
* The maximum value or bound of the entire histogram. This
* should match the maximum bound of the last [bin](https://developers.arcgis.com/javascript/latest/references/core/widgets/Histogram/HistogramViewModel/#bins).
*
* @example histogramVM.max = 100;
* @example
* // sets result returned from a smart mapping method
* // to the histogram
* histogramVM.max = response.statistics.max;
*/
accessor max: number | null | undefined;
/**
* The minimum value or bound of the entire histogram. This
* should match the minimum bound of the first [bin](https://developers.arcgis.com/javascript/latest/references/core/widgets/Histogram/HistogramViewModel/#bins).
*
* @example histogramVM.min = 0;
* @example
* // sets result returned from a smart mapping method
* // to the histogram
* histogramVM.min = response.statistics.min;
*/
accessor min: number | null | undefined;
/**
* The range of values for the histogram. This is calculated by
* subtracting the [min](https://developers.arcgis.com/javascript/latest/references/core/widgets/Histogram/HistogramViewModel/#min) from the [max](https://developers.arcgis.com/javascript/latest/references/core/widgets/Histogram/HistogramViewModel/#max).
*/
get range(): number;
/** The current state of the view model. */
get state(): HistogramState;
}