@amcharts/amcharts5
Version:
amCharts 5
171 lines • 4.85 kB
TypeScript
import type { DataItem } from "../../core/render/Component";
import { Series, ISeriesSettings, ISeriesDataItem, ISeriesPrivate, ISeriesEvents } from "./Series";
import { Container } from "../../core/render/Container";
import { Label } from "../../core/render/Label";
import { RoundedRectangle } from "../../core/render/RoundedRectangle";
import { ListTemplate } from "../../core/util/List";
import type { Entity, IEntitySettings } from "../../core/util/Entity";
import type { Color } from "../../core/util/Color";
export interface ILegendDataItem extends ISeriesDataItem {
/**
* [[Container]] element holding all other legend item elements, labels,
* markers, etc.
*/
itemContainer: Container;
/**
* Marker element.
*/
marker: Container;
/**
* Marker rectangle element.
*/
markerRectangle: RoundedRectangle;
/**
* Label element.
*/
label: Label;
/**
* Value label element.
*/
valueLabel: Label;
/**
* Marker fill color.
*/
fill?: Color;
/**
* Marker stroke (outline) color.
*/
stroke?: Color;
/**
* Name of the legend item.
*/
name?: string;
}
export interface ILegendItemSettings extends IEntitySettings {
visible?: boolean;
}
/**
* @ignore
*/
export interface ILegendItem extends Entity {
_settings: ILegendItemSettings;
isHidden?: () => boolean;
show?: () => void;
hide?: () => void;
createLegendMarker?: () => {};
component?: Series;
updateLegendValue?: () => {};
}
export interface ILegendSettings extends ISeriesSettings {
/**
* If set to `true` the legend will not try to mimic appearance of the actual
* item but rather show default square marker.
*
* @default false
*/
useDefaultMarker?: boolean;
/**
* A key to look up in data for a name of the data item.
*
* @default "name"
*/
nameField?: string;
/**
* A key to look up in data for a fill of the data item.
*
* @default "fill"
*/
fillField?: string;
/**
* A key to look up in data for a stroke of the data item.
*
* @default "stroke"
*/
strokeField?: string;
/**
* Which legend item element will be clickable to toggle related chart item:
* * `"itemContainer"` - the whole legend item (default).
* * `"marker"` - legend item marker.
* * `"none"` - disables toggling of legend item.
*
* @default "itemContainer"
* @since 5.0.13
*/
clickTarget?: "itemContainer" | "marker" | "none";
}
export interface ILegendPrivate extends ISeriesPrivate {
}
export interface ILegendEvents extends ISeriesEvents {
}
/**
* A universal legend control.
*
* @important
* @see {@link https://www.amcharts.com/docs/v5/concepts/legend/} for more info
*/
export declare class Legend extends Series {
protected _afterNew(): void;
static className: string;
static classNames: Array<string>;
_settings: ILegendSettings;
_privateSettings: ILegendPrivate;
_dataItemSettings: ILegendDataItem;
_events: ILegendEvents;
/**
* List of all [[Container]] elements for legend items.
*
* @default new ListTemplate<Container>
*/
readonly itemContainers: ListTemplate<Container>;
/**
* @ignore
*/
makeItemContainer(dataItem: DataItem<this["_dataItemSettings"]>): Container;
/**
* @ignore
*/
makeMarker(): Container;
/**
* List of legend marker elements.
*
* @default new ListTemplate<Container>
*/
readonly markers: ListTemplate<Container>;
/**
* @ignore
*/
makeLabel(): Label;
/**
* List of legend label elements.
*
* @default new ListTemplate<Label>
*/
readonly labels: ListTemplate<Label>;
/**
* @ignore
*/
makeValueLabel(): Label;
/**
* List of legend value label elements.
*
* @default new ListTemplate<label>
*/
readonly valueLabels: ListTemplate<Label>;
/**
* @ignore
*/
makeMarkerRectangle(): RoundedRectangle;
/**
* List of rectangle elements used for default legend markers.
*
* @default new ListTemplate<RoundedRectangle>
*/
readonly markerRectangles: ListTemplate<RoundedRectangle>;
protected processDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void;
protected _addClickEvents(container: Container, item: ILegendItem, dataItem: DataItem<this["_dataItemSettings"]>): void;
/**
* @ignore
*/
disposeDataItem(dataItem: DataItem<this["_dataItemSettings"]>): void;
}
//# sourceMappingURL=Legend.d.ts.map