@nova-ui/dashboards
Version:
Nova Dashboards is a framework designed to provide feature developers with a common solution for presenting data coming from various sources within a single view, as well as a set of predefined widget visualizations that are 100% configuration-driven and
62 lines (61 loc) • 2.43 kB
TypeScript
import { BehaviorSubject } from "rxjs";
import { IDataField, IDataFieldsConfig } from "@nova-ui/bits";
import { IAllAround, IAccessors, IChartAssistSeries } from "@nova-ui/charts";
import { IProportionalDonutContentAggregator } from "../../functions/proportional-aggregators/types";
import { ILegendPlacementOption, LegendPlacement } from "../../widget-types/common/widget/legend";
import { IFormatter, IFormatterDefinition } from "../types";
export declare enum ProportionalWidgetChartTypes {
DonutChart = "DonutChart",
PieChart = "PieChart",
VerticalBarChart = "VerticalBarChart",
HorizontalBarChart = "HorizontalBarChart"
}
export interface IProportionalWidgetChartTypeConfiguration {
id: ProportionalWidgetChartTypes;
label: string;
}
export interface ITickLabelConfig {
maxWidth: Partial<IAllAround<number>>;
}
export interface IProportionalWidgetChartOptions {
type: ProportionalWidgetChartTypes;
contentFormatter?: IFormatter;
legendPlacement?: LegendPlacement;
legendFormatter?: IFormatter;
chartFormatterComponentType?: string;
donutContentConfig?: IDonutContentConfig;
horizontalBarTickLabelConfig?: ITickLabelConfig;
}
export interface IProportionalWidgetConfig {
chartDonutContentLabel?: string;
chartDonutContentIcon?: string;
chartOptions: IProportionalWidgetChartOptions;
/** Chart and legend will emit an INTERACTION event on click if this property is enabled */
interactive?: boolean;
chartColors?: string[] | {
[key: string]: string;
};
/** set "true" if you want for widget configuration to override colors that come built-in data */
prioritizeWidgetColors?: boolean;
}
export interface ILegendFormat {
displayValue: string;
formatKey: string;
}
export interface IProportionalWidgetChartEditorOptions {
chartTypes: ProportionalWidgetChartTypes[];
legendPlacementOptions: ILegendPlacementOption[];
legendFormats: Array<ILegendFormat>;
legendFormatters: IFormatterDefinition[];
contentFormatters?: IFormatterDefinition[];
}
export interface IDonutContentConfig {
formatter: IFormatter;
aggregator: IProportionalDonutContentAggregator;
}
export interface IProportionalDataFieldsConfig extends IDataFieldsConfig {
chartSeriesDataFields$: BehaviorSubject<IDataField[]>;
}
export interface IProportionalWidgetData extends IChartAssistSeries<IAccessors> {
link?: string;
}