export interface IFont { color?: string, // the font family is not yet being used // family: string, size?: number, italic?: boolean, bold?: boolean } export type IDashStyle = 'solid' | 'dotted' | 'dashed' | 'dashed-dotted'; export interface ILine { color?: string, width?: number, dash?: IDashStyle, } export type IAlign = 'start' | 'center' | 'end'; export type IPosition = 'top' | 'left' | 'bottom' | 'right'; export interface ISpacingBetweenTicks { type: 'count' | 'value', value: number, } export interface IAxisTitle { text: string, align?: IAlign, font?: IFont } export interface IAxisGrid extends ILine { display?: boolean, } export interface IAxisTicks extends ILine { display?: boolean, length?: number, } export interface IAxisLabels extends IFont { display?: boolean, } export interface IBorder { color?: string, width?: number, } export interface IGenericAxis { title?: IAxisTitle, reverse?: boolean, border?: IBorder, ticks?: IAxisTicks, labels?: IAxisLabels, grid?: IAxisGrid } export interface IPercentLinearAxis extends IGenericAxis { spacingBetweenTicks?: ISpacingBetweenTicks, } export interface ILinearAxis extends IGenericAxis { min?: number, max?: number, forceTheLimits?: boolean, spacingBetweenTicks?: ISpacingBetweenTicks, // It would also be possible to define the formatting of the axis items // format: object, } export interface IRadialAxis { reverse?: boolean, spacingBetweenTicks?: ISpacingBetweenTicks, ticks?: IAxisLabels, pointLabels?: IAxisLabels, grid?: IAxisGrid, angleLines?: IAxisGrid, min?: number, max?: number, forceTheLimits?: boolean, } export interface ITitle { text: string, align?: IAlign, font?: IFont, position?: IPosition } export type IPointStyle = 'circle' | 'cross' | 'crossRot' | 'dash' | 'line' | 'rect' | 'rectRounded' | 'rectRot' | 'star' | 'triangle' | false;