UNPKG

@grafana/ui

Version:
43 lines (42 loc) 1.68 kB
import * as React from 'react'; import { DataFrameFieldIndex, DisplayValue } from '@grafana/data'; import { LegendDisplayMode, LegendPlacement, LineStyle } from '@grafana/schema'; export declare enum SeriesVisibilityChangeBehavior { Isolate = 0, Hide = 1 } export interface VizLegendBaseProps<T> { placement: LegendPlacement; className?: string; items: Array<VizLegendItem<T>>; thresholdItems?: Array<VizLegendItem<T>>; mappingItems?: Array<VizLegendItem<T>>; seriesVisibilityChangeBehavior?: SeriesVisibilityChangeBehavior; onLabelClick?: (item: VizLegendItem<T>, event: React.MouseEvent<HTMLButtonElement>) => void; itemRenderer?: (item: VizLegendItem<T>, index: number) => JSX.Element; onLabelMouseOver?: (item: VizLegendItem, event: React.MouseEvent<HTMLButtonElement> | React.FocusEvent<HTMLButtonElement>) => void; onLabelMouseOut?: (item: VizLegendItem, event: React.MouseEvent<HTMLButtonElement> | React.FocusEvent<HTMLButtonElement>) => void; readonly?: boolean; } export interface VizLegendTableProps<T> extends VizLegendBaseProps<T> { sortBy?: string; sortDesc?: boolean; onToggleSort?: (sortBy: string) => void; isSortable?: boolean; } export interface LegendProps<T = any> extends VizLegendBaseProps<T>, VizLegendTableProps<T> { displayMode: LegendDisplayMode; } export interface VizLegendItem<T = any> { getItemKey?: () => string; label: string; color?: string; gradient?: string; yAxis: number; disabled?: boolean; getDisplayValues?: () => DisplayValue[]; fieldIndex?: DataFrameFieldIndex; fieldName?: string; data?: T; lineStyle?: LineStyle; }