vue-data-ui
Version:
A user-empowering data visualization Vue 3 components library for eloquent data storytelling
1,636 lines (1,564 loc) • 295 kB
TypeScript
declare module "vue-data-ui" {
import { Ref, WritableComputedRef, DefineComponent } from "vue";
export type VueUiUnknownObj = {
[key: string]: unknown;
};
export const VueDataUi: DefineComponent<{
dataset?:
| VueUi3dBarDataset
| VueUiAgePyramidDataset
| VueUiAnnotatorDataset
| Array<Array<string | number>>
| VueUiChestnutDatasetRoot[]
| VueUiDashboardElement[]
| number
| string
| VueUiDonutEvolutionDatasetItem[]
| VueUiDonutDatasetItem[]
| VueUiGaugeDataset
| VueUiHeatmapDatasetItem[]
| VueUiMoleculeDatasetNode[]
| VueUiMoodRadarDataset
| VueUiNestedDonutsDatasetItem[]
| VueUiOnionDatasetItem[]
| VueUiQuadrantDatasetItem[]
| VueUiRadarDataset
| VueUiRatingDataset
| VueUiRelationCircleDatasetItem[]
| VueUiRingsDatasetItem[]
| VueUiScatterDatasetItem[]
| VueUiSparkbarDatasetItem[]
| VueUiSparkgaugeDataset
| VueUiSparkHistogramDatasetItem[]
| VueUiSparklineDatasetItem[]
| VueUiSparkStackbarDatasetItem[]
| VueUiTableSparklineDatasetItem[]
| VueUiTableDataset
| VueUiThermometerDataset
| VueUiTiremarksDataset
| VueUiVerticalBarDatasetItem[]
| VueUiHorizontalBarDatasetItem[]
| VueUiWaffleDatasetItem[]
| VueUiWheelDataset
| VueUiXyDatasetItem[]
| VueUiTreemapDatasetItem[]
| VueUiQuickChartDataset
| number[]
| Array<number | null>
| VueUiStripPlotDataset[]
| VueUiWordCloudDatasetItem[]
| VueUiXyCanvasDatasetItem[]
| VueUiFlowDatasetItem[]
| VueUiParallelCoordinatePlotDatasetItem[]
| VueUiCarouselTableDataset
| VueUiGizmoDataset
| VueUiStackbarDatasetItem[]
| VueUiBulletDataset
| VueUiFunnelDatasetItem[]
| VueUiHistoryPlotDatasetItem[]
| VueUiCirclePackDatasetItem[]
| VueUiWorldDataset
| VueUiRidgelineDatasetItem[]
| VueUiChordDataset;
config?:
| VueUi3dBarConfig
| VueUiAgePyramidConfig
| VueUiAnnotatorConfig
| VueUiCandlestickConfig
| VueUiChestnutConfig
| VueUiDashboardConfig
| VueUiDigitsConfig
| VueUiDonutEvolutionConfig
| VueUiDonutConfig
| VueUiGaugeConfig
| VueUiHeatmapConfig
| VueUiMiniLoaderConfig
| VueUiMoleculeConfig
| VueUiMoodRadarConfig
| VueUiNestedDonutsConfig
| VueUiOnionConfig
| VueUiQuadrantConfig
| VueUiRadarConfig
| VueUiRatingConfig
| VueUiRelationCircleConfig
| VueUiRingsConfig
| VueUiScatterConfig
| VueUiSkeletonConfig
| VueUiSmileyConfig
| VueUiSparkbarConfig
| VueUiSparkgaugeConfig
| VueUiSparkHistogramConfig
| VueUiSparklineConfig
| VueUiSparkStackbarConfig
| VueUiTableSparklineConfig
| VueUiTableConfig
| VueUiThermometerConfig
| VueUiTiremarksConfig
| VueUiVerticalBarConfig
| VueUiHorizontalBarConfig
| VueUiWaffleConfig
| VueUiWheelConfig
| VueUiXyConfig
| VueUiKpiConfig
| VueUiTreemapConfig
| VueUiQuickChartConfig
| VueUiCursorConfig
| VueUiSparkTrendConfig
| VueUiStripPlotConfig
| VueUiDumbbellConfig
| VueUiWordCloudConfig
| VueUiXyCanvasConfig
| VueUiFlowConfig
| VueUiParallelCoordinatePlotConfig
| VueUiTimerConfig
| VueUiCarouselTableConfig
| VueUiGizmoConfig
| VueUiStackbarConfig
| VueUiBulletConfig
| VueUiFunnelConfig
| VueUiHistoryPlotConfig
| VueUiCirclePackConfig
| VueUiWorldConfig
| VueUiRidgelineConfig
| VueUiChordConfig;
}>;
export type ChartEvent<T> = null | (({ datapoint, seriesIndex} : { datapoint: T, seriesIndex: number}) => void);
export type VueUiFlowEvent = ChartEvent<VueUiFlowNode>;
export type VueUi3dBarEvent = ChartEvent<VueUi3dBarDatapoint>;
export type VueUiDonutEvent = ChartEvent<VueUiDonutDatapoint>;
export type VueUiRadarEvent = ChartEvent<VueUiRadarDatapoint>;
export type VueUiXyEvent = ChartEvent<VueUiXyDatapointItem[]>;
export type VueUiRingsEvent = ChartEvent<VueUiRingsDatapoint>;
export type VueUiOnionEvent = ChartEvent<VueUiOnionDatapoint>;
export type VueUiWorldEvent = ChartEvent<VueUiWorldDatapoint>;
export type VueUiGalaxyEvent = ChartEvent<VueUiGalaxyDatapoint>;
export type VueUiWaffleEvent = ChartEvent<VueUiWaffleDatapoint>;
export type VueUiScatterEvent = ChartEvent<VueUiScatterDatapoint>;
export type VueUiTreemapEvent = ChartEvent<VueUiTreemapDatapoint>;
export type VueUiDumbbellEvent = ChartEvent<VueUiDumbbellDatapoint>;
export type VueUiMoleculeEvent = ChartEvent<VueUiMoleculeDatapoint>;
export type VueUiQuadrantEvent = ChartEvent<VueUiQuadrantDatapoint>;
export type VueUiSparkbarEvent = ChartEvent<VueUiSparkbarDatasetItem>;
export type VueUiWordCloudEvent = ChartEvent<VueUiWordCloudDatapoint>;
export type VueUiStripPlotEvent = ChartEvent<VueUiStripPlotDatapoint>;
export type VueUiMoodRadarEvent = ChartEvent<VueUiMoodRadarDatapoint>;
export type VueUiCirclePackEvent = ChartEvent<VueUiCirclePackDatapoint>;
export type VueUiSparklineEvent = ChartEvent<VueUiSparklineDatasetItem>;
export type VueUiAgePyramidEvent = ChartEvent<VueUiAgePyramidDatapoint>;
export type VueUiStackbarEvent = ChartEvent<VueUiStackbarDatapointItem[]>;
export type VueUiCandlestickEvent = ChartEvent<VueUiCandlestickDatapoint>;
export type VueUiRidgelineEvent = ChartEvent<VueUiRidgelineDatapointEvent>;
export type VueUiSparkStackbarEvent = ChartEvent<VueUiSparkStackbarDatapoint>;
export type VueUiHistoryPlotEvent = ChartEvent<VueUiHistoryPlotDatapointEvent>;
export type VueUiRelationCircleEvent = ChartEvent<VueUiRelationCircleDatapoint>;
export type VueUiDonutEvolutionEvent = ChartEvent<VueUiDonutEvolutionDatapoint>;
export type VueUiSparkHistogramEvent = ChartEvent<VueUiSparkHistogramDatasetItem>;
export type VueUiChordEvent = ChartEvent<VueUiChordDatapointArc | VueUiChordDatapointRibbon>;
export type VueUiParallelCoordinatePlotEvent = ChartEvent<VueUiParallelCoordinatePlotEventDatapoint>;
export type VueUiPatternName =
| "bubbles"
| "flooring"
| "grid"
| "hexagon-diamond"
| "hexagon-flooring"
| "hexagon-grid"
| "maze"
| "redrum"
| "scales"
| "squares"
| "wave"
| "zig-zag";
export const VueUiPattern: DefineComponent<{
name: VueUiPatternName;
id: string;
fill?: string;
stroke?: string;
strokeWidth?: number;
scale?: number;
}>;
export type ChartTitle = {
text?: string;
color?: string;
fontSize?: number;
bold?: boolean;
textAlign?: TextAlign;
paddingLeft?: number;
paddingRight?: number;
subtitle?: {
color?: string;
text?: string;
fontSize?: number;
bold?: boolean;
};
};
export type ChartComments = {
show?: boolean;
showInTooltip?: boolean;
width?: number;
offsetY?: number;
offsetX?: number;
};
export type ChartPadding = {
top?: number;
right?: number;
bottom?: number;
left?: number;
};
export type ChartBaseLegend = {
color?: string;
show?: boolean;
fontSize?: number;
bold?: boolean;
};
export type ChartUserOptions = {
show?: boolean;
showOnChartHover?: boolean;
keepStateOnChartLeave?: boolean;
position?: "left" | "right";
buttons?: {
animation?: boolean;
annotator?: boolean;
csv?: boolean;
fullscreen?: boolean;
img?: boolean;
labels?: boolean;
pdf?: boolean;
sort?: boolean;
stack?: boolean;
table?: boolean;
tooltip?: boolean;
};
buttonTitles?: {
animation?: string;
annotator?: string;
close?: string;
csv?: string;
fullscreen?: string;
img?: string;
labels?: string;
open?: string;
pdf?: string;
sort?: string;
stack?: string;
table?: string;
tooltip?: string;
};
callbacks?: {
animation?: null | (() => void);
annotator?: null | (() => void);
csv?: null | ((csvStr?: string) => void);
fullscreen?: null | (() => void);
img?: null | (({ domElement, imageUri, base64 }: { domElement?: string; imageUri?: string; base64?: string} = {}) => void);
labels?: null | (() => void);
pdf?: null | (({ domElement, imageUri, base64 }: { domElement?: string; imageUri?: string; base64?: string} = {}) => void);
sort?: null | (() => void);
stack?: null | (() => void);
table?: null | (() => void);
tooltip?: null | (() => void);
};
// old html2canvas options
print?: {
allowTaint?: boolean;
backgroundColor?: string;
useCORS?: boolean;
onclone?: null | ((doc: Document) => void);
scale?: number;
logging?: boolean;
};
};
export type ChartTableCell = {
backgroundColor?: string;
color?: string;
outline?: string;
};
export type ChartTooltip = {
show?: boolean;
color?: string;
backgroundColor?: string;
fontSize?: number;
borderRadius?: number;
borderColor?: string;
borderWidth?: number;
backgroundOpacity?: number;
position?: TooltipPosition;
offsetY?: number;
smooth?: boolean;
backdropFilter?: boolean;
};
export type ZoomMinimap = {
show?: boolean;
smooth?: boolean;
selectedColor?: string;
selectedColorOpacity?: number;
lineColor?: string;
selectionRadius?: number;
indicatorColor?: string;
verticalHandles?: boolean;
};
export type ChartZoom = {
show?: boolean;
color?: string;
highlightColor?: string;
fontSize?: number;
useResetSlot?: boolean;
minimap?: ZoomMinimap;
startIndex?: number | null;
endIndex?: number | null;
enableRangeHandles?: boolean;
enableSelectionDrag?: boolean;
};
export type Theme =
| ""
| "zen"
| "hack"
| "concrete"
| "celebration"
| "celebrationNight";
export type TextAlign = "left" | "center" | "right";
export type TooltipPosition = TextAlign;
export type FontVariantNumeric =
| "normal"
| "slashed-zero"
| "tabular-nums"
| "oldstyle-nums";
export type Shape =
| "circle"
| "triangle"
| "square"
| "diamond"
| "pentagon"
| "hexagon"
| "star";
export type FormatterParams = {
value: number;
config?: any;
};
export type Formatter = null | ((params: FormatterParams) => string | number);
export type Locale = "ar" | "be-cyrl" | "be-latn" | "ca" | "cs" | "da" | "de" | "el" | "en" | "es" | "et" | "fa" | "fi" | "fr" | "he" | "hi" | "hr" | "hu" | "hy" | "id" | "it" | "ja" | "ka" | "ko" | "lt" | "lv" | "ms" | "nb" | "nl" | "pl" | "pt-br" | "pt" | "rs" | "ru" | "se" | "sk" | "sl" | "sq" | "th" | "tr" | "ua" | "vi" | "zh-cn" | "zh-tw";
export type AxisDateFormatter = {
enable?: boolean;
locale?: Locale;
useUTC?: boolean;
januaryAsYear?: boolean;
options?: {
year?: string;
month?: string;
day?: string;
hour?: string;
minute?: string;
second?: string;
}
}
export type VueUiTooltipParams<
TDatapoint,
TSeries,
TConfig,
TBar = any,
TLine = any,
TPlot = any
> = {
seriesIndex?: number;
plotIndex?: number;
series?: TSeries;
datapoint?: TDatapoint;
config?: TConfig;
bars?: TBar;
lines?: TLine;
plots?: TPlot;
};
export type GetImagePromise = Promise<{
imageUri: string;
base64: string;
title: string;
width: number;
height: number;
aspectRatio: number;
}>
export type VueUiTreemapDatasetItem = {
name: string;
value: number;
children?: VueUiTreemapDatasetItem[];
parentId?: string;
color?: string;
};
export type VueUiTreemapConfig = {
debug?: boolean; // v3
loading?: boolean; // v3
responsive?: boolean;
events?: {
datapointEnter?: VueUiTreemapEvent; // v3
datapointLeave?: VueUiTreemapEvent; // v3
datapointClick?: VueUiTreemapEvent; // v3
};
theme?: Theme;
customPalette?: string[];
userOptions?: ChartUserOptions;
style?: {
fontFamily?: string;
chart?: {
backgroundColor?: string;
color?: string;
height?: number;
width?: number;
padding?: ChartPadding;
layout?: {
sorted?: boolean;
rects?: {
stroke?: string;
strokeWidth?: number;
borderRadius?: number;
colorRatio?: number;
gradient?: {
show?: boolean;
intensity?: number;
};
selected?: {
stroke?: string;
strokeWidth?: number;
unselectedOpacity?: number;
};
};
labels?: {
showDefaultLabels?: boolean;
fontSize?: number;
minFontSize?: number;
hideUnderProportion?: number;
prefix?: string;
suffix?: string;
rounding?: number;
formatter?: Formatter;
};
};
legend?: ChartBaseLegend & {
backgroundColor?: string;
roundingValue?: number;
roundingPercentage?: number;
showValue?: boolean;
showPercentage?: boolean;
position?: 'bottom' | 'top';
};
title?: ChartTitle;
tooltip?: ChartTooltip & {
roundingValue?: number;
customFormat?:
| null
| ((
params: VueUiTooltipParams<
VueUiTreemapDatapoint,
VueUiTreemapSeriesItem[],
VueUiTreemapConfig
>
) => string);
};
};
};
table?: {
show?: boolean;
responsiveBreakpoint?: number;
columnNames?: {
series?: string;
value?: string;
percentage?: string;
};
th?: ChartTableCell;
td?: ChartTableCell & {
roundingValue?: number;
roundingPercentage?: number;
};
};
};
export type VueUiTreemapDatapoint = {
children?: VueUiTreemapDatapoint[];
color: string;
id: string;
name: string;
normalizedValue: number;
parentName?: string;
parentId?: string;
proportion: number;
value: number;
x0: number;
x1: number;
y0: number;
y1: number;
};
export type VueUiTreemapSeriesItem = {
children?: VueUiTreemapSeriesItem[];
color?: string;
id?: string;
name?: string;
value?: string;
};
export type VueUiTreemapExpose = {
getData(): Promise<Array<VueUiTreemapDatapoint>>
getImage(options?: { scale?: number }): GetImagePromise
generateCsv(): void
generateImage(): void
generatePdf(): void
toggleTable(): void
toggleTooltip(): void
toggleAnnotator(): void
toggleFullscreen(): void
}
export const VueUiTreemap: DefineComponent<
{
config?: VueUiTreemapConfig;
dataset: VueUiTreemapDatasetItem[];
},
VueUiTreemapExpose
>;
export type VueUiKpiConfig = {
debug?: boolean;
animationFrames?: number;
animationValueStart?: number;
backgroundColor?: string;
fontFamily?: string;
layoutClass?: string;
layoutCss?: string;
prefix?: string;
suffix?: string;
title?: string;
titleBold?: boolean;
titleColor?: string;
titleClass?: string;
titleCss?: string;
titleFontSize?: number;
useAnimation?: boolean;
valueBold?: boolean;
valueColor?: string;
valueClass?: string;
valueCss?: string;
valueFontSize?: number;
valueRounding?: number;
formatter?: Formatter;
analogDigits?: {
show?: boolean;
height?: number;
color?: string;
skeletonColor?: string;
};
};
export const VueUiKpi: DefineComponent<{
dataset: number;
config?: VueUiKpiConfig;
}>;
export type VueUiGalaxyDatasetItem = VueUiDonutDatasetItem;
export type VueUiGalaxyConfig = {
debug?: boolean; // v3
loading?: boolean; // v3
responsive?: boolean; // v3
events?: { // v3
datapointEnter?: VueUiGalaxyEvent; // v3
datapointLeave?: VueUiGalaxyEvent; // v3
datapointClick?: VueUiGalaxyEvent; // v3
};
theme?: Theme;
customPalette?: string[];
useCssAnimation?: boolean;
useBlurOnHover?: boolean;
style?: {
fontFamily?: string;
chart?: {
backgroundColor?: string;
color?: string;
layout?: {
arcs?: {
strokeWidth?: number;
borderWidth?: number;
offsetX?: number;
offsetY?: number;
hoverEffect?: {
show?: boolean;
multiplicator?: number;
};
gradient?: {
show?: boolean;
intensity?: number;
color?: string;
};
};
labels?: {
dataLabels?: {
prefix?: string;
suffix?: string;
formatter?: Formatter;
};
};
};
legend?: ChartBaseLegend & {
backgroundColor?: string;
roundingValue?: number;
roundingPercentage?: number;
showValue?: boolean;
showPercentage?: boolean;
position?: 'bottom' | 'top';
};
title?: ChartTitle;
tooltip?: ChartTooltip & {
showValue?: boolean;
showPercentage: boolean;
roundingValue?: number;
roundingPercentage?: number;
customFormat?:
| null
| ((
params: VueUiTooltipParams<
VueUiGalaxyDatapoint,
VueUiGalaxySeriesItem[],
VueUiGalaxyConfig
>
) => string);
};
};
};
table?: {
show?: boolean;
responsiveBreakpoint?: number;
columnNames?: {
series?: string;
value?: string;
percentage?: string;
};
th?: ChartTableCell;
td?: ChartTableCell & {
roundingValue?: number;
roundingPercentage?: number;
};
};
userOptions?: ChartUserOptions;
};
export type VueUiGalaxyDatapoint = VueUiGalaxyDatasetItem & {
color: string;
id: string;
path: string;
points: number;
proportion: number;
seriesIndex: number;
value: number;
absoluteIndex: number;
};
export type VueUiGalaxySeriesItem = VueUiGalaxyDatasetItem & {
id: string;
color: string;
seriesIndex: number;
value: number;
};
export type VueUiGalaxyExpose = {
getData(): Promise<Array<{
name: string,
color: string,
value: number
}>>
getImage(options?: { scale?: number }): GetImagePromise
generateCsv(): void
generateImage(): void
generatePdf(): void
toggleTable(): void
toggleTooltip(): void
toggleAnnotator(): void
toggleFullscreen(): void
}
export const VueUiGalaxy: DefineComponent<
{
config?: VueUiGalaxyConfig;
dataset: VueUiGalaxyDatasetItem[];
},
VueUiGalaxyExpose
>;
export type VueUiSparkgaugeDataset = {
value: number;
min: number;
max: number;
title?: string;
};
export type VueUiSparkgaugeConfig = {
debug?: boolean; // v3
loading?: boolean; // v3
theme?: Theme;
style?: {
fontFamily?: string;
background?: string;
height?: number;
basePosition?: number;
animation?: {
show?: boolean;
speedMs?: number;
};
title?: {
show?: boolean;
fontSize?: number;
position?: "top" | "bottom";
textAlign?: TextAlign;
bold?: boolean;
color?: string;
};
dataLabel?: {
fontSize?: number;
autoColor?: boolean;
color?: string;
offsetY?: number;
bold?: boolean;
rounding?: number;
prefix?: string;
suffix?: string;
formatter?: Formatter;
};
colors?: {
min?: string;
max?: string;
showGradient?: boolean;
};
track?: {
autoColor?: boolean;
color?: string;
strokeLinecap?: "round" | "square" | "butt";
};
gutter?: {
color?: string;
strokeLinecap?: "round" | "square" | "butt";
};
};
};
export const VueUiSparkgauge: DefineComponent<{
dataset: VueUiSparkgaugeDataset;
config?: VueUiSparkgaugeConfig;
}>;
export type VueUiMiniLoaderConfigType = {
gutterColor?: string;
gutterOpacity?: number;
gutterBlur?: number;
trackHueRotate?: number;
trackBlur?: number;
trackColor?: string;
};
export type VueUiMiniLoaderConfig = {
type?: "line" | "bar" | "onion";
onion?: VueUiMiniLoaderConfigType;
line?: VueUiMiniLoaderConfigType;
bar?: VueUiMiniLoaderConfigType;
};
export const VueUiMiniLoader: DefineComponent<{
config?: VueUiMiniLoaderConfig;
}>;
export const Arrow: DefineComponent<{
markerEnd?: boolean;
markerSize?: number;
markerStart?: boolean;
stroke?: string;
strokeDasharray?: number;
strokeLinecap?: "round" | "butt" | "square";
strokeWidth?: number;
x1: number;
x2: number;
y1: number;
y2: number;
}>;
export type VueUiTableSparklineDatasetItem = {
name: string;
values: number[];
color?: string;
};
export type VueUiTableSparklineConfig = {
theme?: Theme;
customPalette?: string[];
responsiveBreakpoint?: number;
showAverage?: boolean;
showMedian?: boolean;
showTotal?: boolean;
roundingAverage?: number;
roundingMedian?: number;
roundingValues?: number;
roundingTotal?: number;
prefix?: string;
suffix?: string;
showSparklines?: boolean;
fontFamily?: string;
colNames?: string[];
sortedDataColumnIndices?: number[];
sortedSeriesName?: boolean;
sortedSum?: boolean;
sortedAverage?: boolean;
sortedMedian?: boolean;
resetSortOnClickOutside?: boolean;
formatter?: Formatter;
sparkline?: {
useGradient?: boolean;
showArea?: boolean;
strokeWidth?: number;
type?: "line" | "bar";
smooth?: boolean;
dimensions?: {
width?: number;
heightRatio?: number;
};
animation?: {
show?: boolean;
animationFrames?: number;
};
};
translations?: {
serie?: string;
total?: string;
average?: string;
median?: string;
chart?: string;
};
title?: {
backgroundColor?: string;
text?: string;
fontSize?: number;
color?: string;
bold?: boolean;
textAlign?: TextAlign;
subtitle?: {
text?: string;
color?: string;
fontSize?: number;
bold?: boolean;
};
};
thead?: ChartTableCell & {
fontSize?: number;
textAlign?: TextAlign;
bold?: boolean;
};
tbody?: ChartTableCell & {
fontSize?: number;
textAlign?: TextAlign;
bold?: boolean;
showColorMarker?: boolean;
selectedColor?: {
useSerieColor?: boolean;
fallback?: string;
};
};
userOptions?: ChartUserOptions;
};
export const VueUiTableSparkline: DefineComponent<{
dataset: VueUiTableSparklineDatasetItem[];
config: VueUiTableSparklineConfig;
}>;
export type VueUiMoleculeDatasetNode = {
name: string;
details?: string;
nodes?: VueUiMoleculeDatasetNode[];
color?: string;
};
export type VueUiMoleculeConfig = {
debug?: boolean; // v3
loading?: boolean; // v3
events?: {
datapointEnter?: VueUiMoleculeEvent; // v3
datapointLeave?: VueUiMoleculeEvent; // v3
datapointClick?: VueUiMoleculeEvent; // v3
};
theme?: Theme;
customPalette?: string[];
style?: {
fontFamily?: string;
chart?: {
backgroundColor?: string;
color?: string;
nodes?: {
stroke?: string;
strokeHovered?: string;
};
links?: {
stroke?: string;
};
title?: ChartTitle;
tooltip?: ChartTooltip & {
customFormat?:
| null
| ((
params: VueUiTooltipParams<
VueUiMoleculeDatapoint,
VueUiMoleculeDatapoint[],
VueUiMoleculeConfig
>
) => string);
};
zoom?: {
speed?: number;
};
};
};
table?: {
show?: boolean;
responsiveBreakpoint?: number;
th?: ChartTableCell;
td?: ChartTableCell;
translations?: {
nodeName?: string;
details?: string;
ancestor?: string;
};
};
userOptions?: ChartUserOptions;
};
export type VueUiMoleculeDatapoint = {
circleRadius: number;
color: string;
name: string;
details?: string;
nodes?: VueUiMoleculeDatapoint;
ancestor?: VueUiMoleculeDatapoint;
polygonPath: {
coordinates: Array<{
x: number;
y: number;
}>;
};
uid: string;
};
export type VueUiMoleculeExpose = {
getData(): Promise<Array<VueUiMoleculeDatapoint>>
getImage(options?: { scale?: number }): GetImagePromise
generatePdf(): void
generateCsv(): void
generateImage(): void
toggleTable(): void
toggleTooltip(): void
toggleLabels(): void
toggleAnnotator(): void
toggleFullscreen(): void
}
export const VueUiMolecule: DefineComponent<
{
dataset: VueUiMoleculeDatasetNode[];
config?: VueUiMoleculeConfig;
},
VueUiMoleculeExpose
>;
export type VueUiDigitsConfig = {
backgroundColor?: string;
height?: string;
width?: string;
digits?: {
color?: string;
skeletonColor?: string;
};
};
export const VueUiDigits: DefineComponent<{
dataset: number;
config?: VueUiDigitsConfig;
}>;
export type VueUi3dBarDatasetBreakdown = {
name: string;
value: number;
};
export type VueUi3dBarDataset = {
percentage?: number;
series?: Array<{
name: string;
value: number;
color?: string;
breakdown?: VueUi3dBarDatasetBreakdown[];
}>;
};
export type VueUi3dBarDatapoint = {
breakdown: null | Array<{
name: string;
value: number;
}>;
color: string;
fill: Object; // Feeling too lazy to drill that one
id: string;
name: string;
proportion: number;
seriesIndex: number;
value: number;
}
export type VueUi3dBarConfig = {
debug?: boolean; // v3
loading?: boolean; // v3
responsive?: boolean; // v3
events?: { // v3
datapointEnter?: VueUi3dBarEvent; // v3
datapointLeave?: VueUi3dBarEvent; // v3
datapointClick?: VueUi3dBarEvent; // v3
};
useCssAnimation?: boolean; // v3
theme?: Theme;
customPalette?: string[];
style?: {
fontFamily?: string;
shape?: "bar" | "tube";
chart?: {
animation?: {
use?: boolean;
speed?: number;
acceleration?: number;
};
backgroundColor?: string;
color?: string;
bar?: {
color?: string;
stroke?: string;
strokeWidth?: number;
shadeColor?: string;
};
box?: {
stroke?: string;
strokeWidth?: number;
strokeDasharray?: number;
dimensions?: {
width?: number;
height?: number;
top?: number;
bottom?: number;
left?: number;
right?: number;
perspective?: number;
};
};
title?: ChartTitle;
legend?: {
showDefault?: boolean;
fontSize?: number;
color?: string;
bold?: boolean;
roundingValue?: number;
roundingPercentage?: number;
prefix?: string;
suffix?: string;
hideUnderPercentage?: number;
};
dataLabel?: {
show?: boolean;
bold?: boolean;
color?: string;
fontSize?: number;
rounding?: number;
formatter?: Formatter;
};
};
};
userOptions?: ChartUserOptions;
table?: {
show?: boolean;
responsiveBreakpoint?: number;
columnNames?: {
series?: string;
value?: string;
percentage?: string;
};
th?: ChartTableCell;
td?: ChartTableCell & {
roundingValue?: number;
roundingPercentage?: number;
};
};
};
export type VueUi3dBarExpose = {
getImage(options?: { scale?: number }): GetImagePromise
generatePdf(): void
generateCsv(): void
generateImage(): void
toggleTable(): void
toggleAnnotator(): void
toggleFullscreen(): void
}
export const VueUi3dBar: DefineComponent<
{
config?: VueUi3dBarConfig;
dataset: VueUi3dBarDataset;
},
VueUi3dBarExpose
>;
export type VueUiMoodRadarDataset = {
"1": number;
"2": number;
"3": number;
"4": number;
"5": number;
};
export type VueUiMoodRadarDatapoint = {
index: number;
key: "1" | "2" | "3" | "4" | "5";
value: number;
proportion: number;
color: string;
}
export type VueUiMoodRadarConfig = {
debug?: boolean; // v3
loading?: boolean; // v3
responsive?: boolean; // v3
events?: {
datapointEnter?: VueUiMoodRadarEvent; // v3
datapointLeave?: VueUiMoodRadarEvent; // v3
datapointClick?: VueUiMoodRadarEvent; // v3
};
theme?: Theme;
style?: {
fontFamily?: string;
chart?: {
backgroundColor?: string;
color?: string;
layout?: {
grid?: {
show?: boolean;
stroke?: string;
strokeWidth?: number;
};
outerPolygon?: {
stroke?: string;
strokeWidth?: number;
};
dataPolygon?: {
color?: string;
opacity?: number;
gradient?: {
show?: boolean;
intensity?: number;
};
stroke?: string;
strokeWidth?: number;
};
smileys?: {
strokeWidth?: number;
colors?: {
"1": string;
"2": string;
"3": string;
"4": string;
"5": string;
};
};
dataLabel?: {
color?: string;
roundingPercentage?: number;
roundingValue?: number;
bold?: boolean;
formatter?: Formatter;
prefix?: string;
suffix?: string;
};
};
title?: ChartTitle;
legend?: ChartBaseLegend & {
backgroundColor?: string;
roundingPercentage?: number;
roundingValue?: number;
position?: 'bottom' | 'top';
};
};
};
table?: {
show?: boolean;
responsiveBreakpoint?: number;
columnNames?: {
series?: string;
value?: string;
percentage?: string;
};
th?: ChartTableCell;
td?: ChartTableCell & {
roundingValue?: number;
roundingPercentage?: number;
};
};
userOptions?: ChartUserOptions;
};
export type VueUiMoodRadarExpose = {
getData(): Promise<Array<{
color: string
index: number
key: string
proportion: number
value: number
}>>
getImage(options?: { scale?: number }): GetImagePromise
generatePdf(): void
generateCsv(): void
generateImage(): void
toggleTable(): void
toggleAnnotator(): void
toggleFullscreen(): void
}
export const VueUiMoodRadar: DefineComponent<
{
dataset: VueUiMoodRadarDataset;
config?: VueUiMoodRadarConfig;
},
VueUiMoodRadarExpose
>;
export type VueUiIconName =
| "accordion"
| "annotator"
| "annotatorDisabled"
| "arrowBottom"
| "arrowLeft"
| "arrowRight"
| "arrowTop"
| "battery"
| "boxes"
| "carouselTable"
| "chart3dBar"
| "chartAgePyramid"
| "chartBar"
| "chartBullet"
| "chartCandlestick"
| "chartChestnut"
| "chartCirclePack"
| "chartCluster"
| "chartDonut"
| "chartDonutEvolution"
| "chartDumbbell"
| "chartFlow"
| "chartFunnel"
| "chartGalaxy"
| "chartGauge"
| "chartHeatmap"
| "chartHistoryPlot"
| "chartLine"
| "chartMoodRadar"
| "chartNestedDonuts"
| "chartOnion"
| "chartParallelCoordinatePlot"
| "chartQuadrant"
| "chartRadar"
| "chartRelationCircle"
| "chartRings"
| "chartScatter"
| "chartSparkHistogram"
| "chartSparkStackbar"
| "chartSparkbar"
| "chartSparkline"
| "chartStackbar"
| "chartStripPlot"
| "chartTable"
| "chartTableSparkline"
| "chartThermometer"
| "chartTiremarks"
| "chartVerticalBar"
| "chartWaffle"
| "chartWheel"
| "chartWordCloud"
| "circle"
| "circleCancel"
| "circleCheck"
| "circleExclamation"
| "circleFill"
| "circleQuestion"
| "clipBoard"
| "clipboardBar"
| "clipboardDonut"
| "clipboardLine"
| "clipboardVariable"
| "close"
| "colorPicker"
| "copy"
| "copyLeft"
| "csv"
| "cursor"
| "dashboard"
| "diamond"
| "diamondFill"
| "digit0"
| "digit1"
| "digit2"
| "digit3"
| "digit4"
| "digit5"
| "digit6"
| "digit7"
| "digit8"
| "digit9"
| "excel"
| "exitFullscreen"
| "fullscreen"
| "func"
| "hexagon"
| "hexagonFill"
| "image"
| "kpi"
| "kpiBox"
| "labelClose"
| "labelOpen"
| "lambda"
| "lap"
| "legend"
| "menu"
| "moodEmbarrassed"
| "moodFlat"
| "moodHappy"
| "moodLaughing"
| "moodNeutral"
| "moodSad"
| "moodSurprised"
| "moodWink"
| "mu"
| "numbers"
| "palette"
| "pause"
| "pdf"
| "pentagon"
| "pentagonFill"
| "people"
| "play"
| "ratio"
| "refresh"
| "restart"
| "screenshot"
| "settings"
| "sigma"
| "skeleton"
| "smiley"
| "sort"
| "spin"
| "square"
| "squareFill"
| "stack"
| "star"
| "starFace"
| "starFill"
| "stop"
| "tableClose"
| "tableOpen"
| "tooltip"
| "tooltipDisabled"
| "trash"
| "trend"
| "trendDown"
| "trendUp"
| "triangle"
| "triangleFill"
| "unstack"
| "vueDataUi"
| "zoomMinus"
| "zoomPlus"
| "home"
| "homeFilled"
| "icons"
| "robot"
| "hourglass"
| "computer"
| "htmlTag"
| "curlyBrackets"
| "curlySpread"
| "text"
| "world"
| "eye"
| "chartRidgeline"
| "chartChord";
export const VueUiIcon: DefineComponent<{
name: VueUiIconName;
stroke?: string;
strokeWidth?: number;
size?: number | string;
isSpin?: boolean;
}>;
export type VueUiDonutEvolutionDatapoint = {
activeRadius: number;
donut: VueUiDonutDatapoint[];
donutFocus: VueUiDonutDatapoint[];
donutHover: VueUiDonutDatapoint[];
hoverRadius: number;
index: number;
percentages: number[0];
radius: number;
subtotal: number;
values: Array<number | null>;
x: number;
y: number;
}
export type VueUiDonutEvolutionConfig = {
debug?: boolean; // v3
loading?: boolean; // v3
responsive?: boolean; // v3
events?: { // v3
datapointEnter?: VueUiDonutEvolutionEvent; // v3
datapointLeave?: VueUiDonutEvolutionEvent; // v3
datapointClick?: VueUiDonutEvolutionEvent; // v3
};
theme?: Theme;
customPalette?: string[];
style?: {
fontFamily?: string;
chart?: {
backgroundColor?: string;
color?: string;
zoom?: ChartZoom;
donuts?: {
hover?: {
hideLabelsUnderValue?: number;
};
/** Deprecated since v2.12.4. Use style.chart.dialog */
zoom?: {
/** Deprecated since v2.12.4. Use style.chart.dialog */
hideLabelsUnderValue?: number;
}
};
dialog?: {
show?: boolean;
backgroundColor?: string;
color?: string;
header?: {
backgroundColor?: string;
color?: string;
};
donutChart?: VueUiDonutConfig;
};
layout?: {
height?: number;
width?: number;
padding?: ChartPadding;
grid?: {
show?: boolean;
stroke?: string;
strokeWidth?: number;
showVerticalLines?: boolean;
axis?: { // v3
yLabel?: string; // v3
yLabelOffsetX?: number; // v3
xLabel?: string; // v3
xLabelOffsetY?: number; // v3
fontSize?: number; // v3
color?: string; // v3
};
yAxis?: {
dataLabels?: {
show?: boolean;
fontSize?: number;
color?: string;
roundingValue?: number;
offsetX?: number;
bold?: boolean;
steps?: number;
};
};
xAxis?: {
dataLabels?: {
show?: boolean;
values?: Array<number | string>;
datetimeFormatter?: AxisDateFormatter;
fontSize?: number;
showOnlyFirstAndLast?: boolean;
color?: string;
rotation?: number;
autoRotate?: { // v3
enable?: boolean; // v3
angle?: number; // v3
};
offsetY?: number;
};
};
};
line?: {
show?: boolean;
stroke?: string;
strokeWidth?: number;
};
highlighter?: {
color?: string;
opacity?: number;
};
dataLabels?: {
show?: boolean;
fontSize?: number;
color?: string;
bold?: boolean;
rounding?: number;
prefix?: string;
suffix?: string;
offsetY?: number;
formatter?: Formatter;
};
};
title?: ChartTitle;
legend?: ChartBaseLegend & {
backgroundColor?: string;
roundingPercentage?: number;
roundingValue?: number;
showValue?: boolean;
showPercentage?: boolean;
position?: 'bottom' | 'top';
};
};
};
table?: {
show?: boolean;
responsiveBreakpoint?: number;
columnNames?: {
period?: string;
total?: string;
};
th?: ChartTableCell;
td?: ChartTableCell & {
roundingValue?: number;
roundingPercentage?: number;
};
};
userOptions?: ChartUserOptions;
};
export type VueUiDonutEvolutionDatasetItem = {
name: string;
values: Array<number | null>;
color?: string;
};
export type VueUiDonutEvolutionExpose = {
getData(): Promise<Array<{
color: string
length: number
name: string
uid: string
values: Array<number | null>
}>>
getImage(options?: { scale?: number }): GetImagePromise
generateCsv(): void
generateImage(): void
generatePdf(): void
toggleAnnotator(): void
toggleTable(): void
toggleFullscreen(): void
}
export const VueUiDonutEvolution: DefineComponent<
{
config?: VueUiDonutEvolutionConfig;
dataset: VueUiDonutEvolutionDatasetItem[];
},
VueUiDonutEvolutionExpose
>;
export type VueUiTiremarksConfig = {
debug?: boolean; // v3
loading?: boolean; // v3
responsive?: boolean; // v3
theme?: Theme;
userOptions?: ChartUserOptions;
style?: {
fontFamily?: string;
chart?: {
width?: number; // v3
height?: number; // v3
backgroundColor?: string;
color?: string;
animation?: {
use?: boolean;
speed?: number;
acceleration?: number;
};
layout?: {
display?: "horizontal" | "vertical";
crescendo?: boolean;
curved?: boolean;
curveAngleX?: number;
curveAngleY?: number;
activeColor?: string;
inactiveColor?: string;
ticks?: {
gradient?: {
show?: boolean;
shiftHueIntensity?: number;
};
};
};
percentage?: {
show?: boolean;
useGradientColor?: boolean;
color?: string;
fontSize?: number;
bold?: boolean;
rounding?: number;
verticalPosition?: "bottom" | "top";
horizontalPosition?: "left" | "right";