UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

165 lines (163 loc) • 9.85 kB
import type UniqueValue from "./UniqueValue.js"; import type { ClonableMixin } from "../../core/Clonable.js"; import type { JSONSupport } from "../../core/JSONSupport.js"; import type { UniqueValueProperties } from "./UniqueValue.js"; import type { SymbolUnion } from "../../symbols/types.js"; import type { WebStyleSymbolProperties } from "../../symbols/WebStyleSymbol.js"; import type { PolygonSymbol3DProperties } from "../../symbols/PolygonSymbol3D.js"; import type { PointSymbol3DProperties } from "../../symbols/PointSymbol3D.js"; import type { MeshSymbol3DProperties } from "../../symbols/MeshSymbol3D.js"; import type { LineSymbol3DProperties } from "../../symbols/LineSymbol3D.js"; import type { LabelSymbol3DProperties } from "../../symbols/LabelSymbol3D.js"; import type { CIMSymbolProperties } from "../../symbols/CIMSymbol.js"; import type { TextSymbolProperties } from "../../symbols/TextSymbol.js"; import type { SimpleMarkerSymbolProperties } from "../../symbols/SimpleMarkerSymbol.js"; import type { SimpleLineSymbolProperties } from "../../symbols/SimpleLineSymbol.js"; import type { SimpleFillSymbolProperties } from "../../symbols/SimpleFillSymbol.js"; import type { PictureMarkerSymbolProperties } from "../../symbols/PictureMarkerSymbol.js"; import type { PictureFillSymbolProperties } from "../../symbols/PictureFillSymbol.js"; export interface UniqueValueClassProperties extends Partial<Pick<UniqueValueClass, "label">> { /** * Defines the symbol used to represent features containing the given [values](https://developers.arcgis.com/javascript/latest/references/core/renderers/support/UniqueValueClass/#values). * * @example * lowDensityCommercialClass.symbol = { * type: "simple-fill", * color: [255,179,219] * }; */ symbol?: (((PictureFillSymbolProperties & { type: "picture-fill" }) | (PictureMarkerSymbolProperties & { type: "picture-marker" }) | (SimpleFillSymbolProperties & { type: "simple-fill" }) | (SimpleLineSymbolProperties & { type: "simple-line" }) | (SimpleMarkerSymbolProperties & { type: "simple-marker" }) | (TextSymbolProperties & { type: "text" }) | (CIMSymbolProperties & { type: "cim" })) | ((LabelSymbol3DProperties & { type: "label-3d" }) | (LineSymbol3DProperties & { type: "line-3d" }) | (MeshSymbol3DProperties & { type: "mesh-3d" }) | (PointSymbol3DProperties & { type: "point-3d" }) | (PolygonSymbol3DProperties & { type: "polygon-3d" })) | (WebStyleSymbolProperties & { type: "web-style" })) | null; /** * An array of unique values that should be rendered with the same symbol. * This can be autocast from a single value (or an array of raw data values) if the * values come only from a [UniqueValueRenderer.field](https://developers.arcgis.com/javascript/latest/references/core/renderers/UniqueValueRenderer/#field) or * [UniqueValueRenderer.valueExpression](https://developers.arcgis.com/javascript/latest/references/core/renderers/UniqueValueRenderer/#valueExpression). If values * originate from [UniqueValueRenderer.field2](https://developers.arcgis.com/javascript/latest/references/core/renderers/UniqueValueRenderer/#field2) or * [UniqueValueRenderer.field3](https://developers.arcgis.com/javascript/latest/references/core/renderers/UniqueValueRenderer/#field3), then this * may be autocast from an object or an array of objects specifying the combinations of valid values from each field. * * @example * // Features with the value of "High" in the renderer's field * // will be represented with the symbol defined in the class. * uniqueValueClass.values = "High"; * @example * // Features with any of the values below in the renderer's field * // will be represented with the symbol defined in the class. * uniqueValueClass.values = ["R-1", "R-2", "R-3", "R-4", "R-5"]; * @example * // Features with only the combination values below from * // field, field2, and field3 in the renderer * // will be represented with the symbol defined in the class. * uniqueValueClass.values = { * value: "50,000-75,000", * value2: "Republican", * value3: "18-25" * }; * @example * // Features with any the combinations of values below from * // field and field2 in the renderer * // will be represented with the symbol defined in the class. * uniqueValueClass.values = [{ * value: "Low", * value2: "Low" * }, { * value: "Low", * value2: "High" * }, { * value: "High", * value2: "Low" * }, { * value: "High", * value2: "High" * }]; */ values?: string | number | UniqueValueProperties | string[] | number[] | UniqueValueProperties[] | null; } /** * Defines a category within a [UniqueValueGroup](https://developers.arcgis.com/javascript/latest/references/core/renderers/support/UniqueValueGroup/). This * includes the symbol and label used to represent one or more values of a field or set of fields. * A UniqueValueClass instance should be * provided to the [UniqueValueGroup.classes](https://developers.arcgis.com/javascript/latest/references/core/renderers/support/UniqueValueGroup/#classes) * property. * * @since 4.25 * @see [UniqueValueGroup.classes](https://developers.arcgis.com/javascript/latest/references/core/renderers/support/UniqueValueGroup/#classes) * @example * const lowDensityCommercialClass = new UniqueValueClass({ * label: "C-2 | Community Commercial", * symbol: { * type: "simple-fill", * color: [255,179,219] * }, * values: ["C-1", "C-2"] * }); */ export default class UniqueValueClass extends UniqueValueClassSuperclass { constructor(properties?: UniqueValueClassProperties); /** * Describes the [values](https://developers.arcgis.com/javascript/latest/references/core/renderers/support/UniqueValueClass/#values) represented by the [symbol](https://developers.arcgis.com/javascript/latest/references/core/renderers/support/UniqueValueClass/#symbol) in the * [Legend](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-legend/). * If no label is provided, then a list of each [value](https://developers.arcgis.com/javascript/latest/references/core/renderers/support/UniqueValueClass/#values) is displayed in the legend. * * @example lowDensityCommercialClass.label = "C-2 | Community Commercial"; */ accessor label: string | null | undefined; /** * Defines the symbol used to represent features containing the given [values](https://developers.arcgis.com/javascript/latest/references/core/renderers/support/UniqueValueClass/#values). * * @example * lowDensityCommercialClass.symbol = { * type: "simple-fill", * color: [255,179,219] * }; */ get symbol(): SymbolUnion | null | undefined; set symbol(value: (((PictureFillSymbolProperties & { type: "picture-fill" }) | (PictureMarkerSymbolProperties & { type: "picture-marker" }) | (SimpleFillSymbolProperties & { type: "simple-fill" }) | (SimpleLineSymbolProperties & { type: "simple-line" }) | (SimpleMarkerSymbolProperties & { type: "simple-marker" }) | (TextSymbolProperties & { type: "text" }) | (CIMSymbolProperties & { type: "cim" })) | ((LabelSymbol3DProperties & { type: "label-3d" }) | (LineSymbol3DProperties & { type: "line-3d" }) | (MeshSymbol3DProperties & { type: "mesh-3d" }) | (PointSymbol3DProperties & { type: "point-3d" }) | (PolygonSymbol3DProperties & { type: "polygon-3d" })) | (WebStyleSymbolProperties & { type: "web-style" })) | null | undefined); /** * An array of unique values that should be rendered with the same symbol. * This can be autocast from a single value (or an array of raw data values) if the * values come only from a [UniqueValueRenderer.field](https://developers.arcgis.com/javascript/latest/references/core/renderers/UniqueValueRenderer/#field) or * [UniqueValueRenderer.valueExpression](https://developers.arcgis.com/javascript/latest/references/core/renderers/UniqueValueRenderer/#valueExpression). If values * originate from [UniqueValueRenderer.field2](https://developers.arcgis.com/javascript/latest/references/core/renderers/UniqueValueRenderer/#field2) or * [UniqueValueRenderer.field3](https://developers.arcgis.com/javascript/latest/references/core/renderers/UniqueValueRenderer/#field3), then this * may be autocast from an object or an array of objects specifying the combinations of valid values from each field. * * @example * // Features with the value of "High" in the renderer's field * // will be represented with the symbol defined in the class. * uniqueValueClass.values = "High"; * @example * // Features with any of the values below in the renderer's field * // will be represented with the symbol defined in the class. * uniqueValueClass.values = ["R-1", "R-2", "R-3", "R-4", "R-5"]; * @example * // Features with only the combination values below from * // field, field2, and field3 in the renderer * // will be represented with the symbol defined in the class. * uniqueValueClass.values = { * value: "50,000-75,000", * value2: "Republican", * value3: "18-25" * }; * @example * // Features with any the combinations of values below from * // field and field2 in the renderer * // will be represented with the symbol defined in the class. * uniqueValueClass.values = [{ * value: "Low", * value2: "Low" * }, { * value: "Low", * value2: "High" * }, { * value: "High", * value2: "Low" * }, { * value: "High", * value2: "High" * }]; */ get values(): UniqueValue[] | null | undefined; set values(value: string | number | UniqueValueProperties | string[] | number[] | UniqueValueProperties[] | null | undefined); } declare const UniqueValueClassSuperclass: typeof JSONSupport & typeof ClonableMixin