package.dist.interfaces.components.d.ts Maven / Gradle / Ivy
import { LayoutGrowth, LegendOrientations, LegendPositions, Alignments, ToolbarControlTypes, ZoomBarTypes } from './enums';
import { Component } from '../components';
import { TruncationOptions } from './truncation';
/**
*Locale Options Interface
*/
export interface Locale {
code?: string;
number?: (value: number, language: string) => string;
date?: (value: Date, language: string, options: Intl.DateTimeFormatOptions, preformattedLocaleValue?: string) => string;
time?: (value: Date, language: string, options: Intl.DateTimeFormatOptions, preformattedLocaleValue?: string) => string;
optionsObject?: {
'15seconds'?: LocaleTimeScaleOptions;
minute?: LocaleTimeScaleOptions;
'30minutes'?: LocaleTimeScaleOptions;
hourly?: LocaleTimeScaleOptions;
daily?: LocaleTimeScaleOptions;
weekly?: LocaleTimeScaleOptions;
monthly?: LocaleTimeScaleOptions;
quarterly?: LocaleTimeScaleOptions;
yearly?: LocaleTimeScaleOptions;
};
translations?: {
group?: string;
total?: string;
meter?: {
title?: string;
};
tabularRep: {
title?: string;
downloadAsCSV?: string;
};
toolbar: {
exportAsCSV?: string;
exportAsJPG?: string;
exportAsPNG?: string;
zoomIn?: string;
zoomOut?: string;
resetZoom?: string;
moreOptions?: string;
makeFullScreen?: string;
exitFullScreen?: string;
showAsTable?: string;
};
};
}
export interface LocaleTimeScaleOptions {
primary?: Record;
secondary?: Record;
type?: string;
}
/**
* customize the overlay contents
*/
export interface LayoutComponentChild {
id: string;
/**
* the component that'll be rendered inside layout child
*/
components: Component[];
/**
* size of the layout child
*/
size?: number;
/**
* how the layout child will grow or shrink
*/
growth: LayoutGrowth | string;
}
/**
* customize the legend component
*/
export interface LegendOptions {
enabled?: boolean;
position?: LegendPositions | string;
/**
* the clickability of legend items
*/
clickable?: boolean;
truncation?: TruncationOptions;
alignment?: Alignments | string;
order?: string[];
/**
* customized legend items
*/
additionalItems?: LegendItem[];
orientation?: LegendOrientations;
}
/**
* customize the legend item
*/
export interface LegendItem {
type: string;
name: string;
fill?: string;
stroke?: string;
}
export interface TooltipOptions {
/**
* enable or disable tooltip
*/
enabled?: boolean;
/**
* a function to format the tooltip values
*/
valueFormatter?: (value: any, label: string) => string;
/**
* custom function for returning tooltip HTML
* passed an array or object with the data, the default tooltip markup
* and the corresponding datum of the hovered element
*/
customHTML?: (data: any, defaultHTML: string, datum: any) => string;
/**
* customizes the `Group` label shown inside tooltips
*/
groupLabel?: string;
/**
* show total of items
*/
showTotal?: boolean;
/**
* customizes the `Total` label shown inside tooltips
*/
totalLabel?: string;
truncation?: TruncationOptions;
}
/**
* Threshold options
*/
export interface ThresholdOptions {
/**
* threshold value
*/
value: number | Date;
/**
* a function to format the threshold values
*/
valueFormatter?: (value: any) => string;
/**
* hex threshold line color
*/
fillColor?: string;
/**
* threshold label
*/
label?: string;
}
export interface GridOptions {
y?: {
enabled?: boolean;
numberOfTicks?: number;
alignWithAxisTicks?: boolean;
};
x?: {
enabled?: boolean;
numberOfTicks?: number;
alignWithAxisTicks?: boolean;
};
}
/**
* Ruler options
*/
export interface RulerOptions {
enabled?: boolean;
}
export interface BarOptions {
width?: number;
maxWidth?: number;
spacingFactor?: number;
}
export interface StackedBarOptions extends BarOptions {
dividerSize?: number;
}
/**
* customize the Toolbar component
*/
export interface ToolbarOptions {
/**
* is the toolbar visible or not
*/
enabled?: boolean;
/**
* the maximum toolbar controls to be displayed as icons
* controls more than this number will appear in the overflow menu
* minimum is 1. (all toolbar controls are in overflow menu)
*/
numberOfIcons?: number;
/**
* toolbar controls which will be displayed following the array order
*/
controls?: ToolbarControl[];
}
/**
* options for each toolbar control
*/
export interface ToolbarControl {
/**
* the toolbar control type
*/
type: ToolbarControlTypes | string;
/**
* used as aria-label for toolbar control
*/
title?: string;
/**
* the text to display (if this control is displayed in overflow menu)
* type value will be displayed if text is not available
*/
text?: string;
/**
* custom id for button
*/
id?: string;
/**
* SVG HTML element
*/
iconSVG?: {
content?: string;
height?: string;
width?: string;
};
shouldBeDisabled?: () => boolean;
/**
* function to execute on button click
* alternatively, users can choose to not pass in a function and can
* listen for events to execute asynchronously
*/
clickFunction?: () => void;
}
/**
* customize the ZoomBars in a chart
*/
export interface ZoomBarsOptions {
/**
* a variable to handle default zoom in ratio (0 ~ 1.0)
* ex: shift click zoom in ratio
*/
zoomRatio?: number;
/**
* a variable to define the minimum zoom ratio (0 ~ 1.0)
* If ( zoom domain / max domain ) < minZoomRatio, zoom-in functions will be disabled
*/
minZoomRatio?: number;
/**
* currently only the top position is supported
*/
top?: ZoomBarOptions;
/**
* whether keep updating range axis in real time while zoom domain is changing
*/
updateRangeAxis?: boolean;
}
/**
* customize the ZoomBar component
*/
export interface ZoomBarOptions {
/**
* is the zoom-bar visible or not
*/
enabled?: boolean;
/**
* is the zoom-bar in loading state
*/
loading?: boolean;
/**
* is the zoom-bar in locked state
*/
locked?: boolean;
/**
* whether the zoom bar is showing a slider view or a graph view etc.
*/
type?: ZoomBarTypes | string;
/**
* an two element array which represents the initial zoom domain
*/
initialZoomDomain?: object[];
/**
* options related to zoom bar data
*/
data?: object[];
}
/**
* customize the Tabular Data
*/
export interface TabularRepCustomizationOptions {
/**
* option to customize the Table Headers
*/
tableHeadingFormatter?: (headings: string[]) => string[];
/**
* option to customize the Table Cells
*/
tableCellFormatter?: (cells: string[][]) => string[][];
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy