mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
602 lines
14 KiB
TypeScript
602 lines
14 KiB
TypeScript
// Type definitions for react-native-charts-wrapper 0.5
|
|
// Project: https://github.com/wuxudong/react-native-charts-wrapper
|
|
// Definitions by: Connor Love <https://github.com/dotconnor>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
|
|
import { Component } from 'react';
|
|
import { ViewProps, NativeSyntheticEvent } from 'react-native';
|
|
|
|
export type EasingType =
|
|
| 'Linear'
|
|
| 'EaseInQuad'
|
|
| 'EaseOutQuad'
|
|
| 'EaseInOutQuad'
|
|
| 'EaseInCubic'
|
|
| 'EaseOutCubic'
|
|
| 'EaseInOutCubic'
|
|
| 'EaseInQuart'
|
|
| 'EaseOutQuart'
|
|
| 'EaseInOutQuart'
|
|
| 'EaseInSine'
|
|
| 'EaseOutSine'
|
|
| 'EaseInOutSine'
|
|
| 'EaseInExpo'
|
|
| 'EaseOutExpo'
|
|
| 'EaseInOutExpo'
|
|
| 'EaseInCirc'
|
|
| 'EaseOutCirc'
|
|
| 'EaseInOutCirc'
|
|
| 'EaseInElastic'
|
|
| 'EaseOutElastic'
|
|
| 'EaseInOutElastic'
|
|
| 'EaseInBack'
|
|
| 'EaseOutBack'
|
|
| 'EaseInOutBack'
|
|
| 'EaseInBounce'
|
|
| 'EaseOutBounce'
|
|
| 'EaseInOutBounce';
|
|
/**
|
|
* use `processColor` from `react-native` to generate the corrsponding number from a color (named, hex, rgba, etc.).
|
|
*/
|
|
export type Color = number;
|
|
|
|
export type ValueFormatter = ('largeValue' | 'percent' | 'date') | string | string[];
|
|
|
|
export type AxisDependency = 'LEFT' | 'RIGHT';
|
|
|
|
export interface ChartDescription {
|
|
text?: string;
|
|
textColor?: Color;
|
|
textSize?: number;
|
|
|
|
positionX?: number;
|
|
positionY?: number;
|
|
}
|
|
|
|
export interface ChartLegend {
|
|
enabled?: boolean;
|
|
textColor?: Color;
|
|
textSize?: number;
|
|
fontFamily?: string;
|
|
fontStyle?: number;
|
|
fontWeight?: number;
|
|
|
|
wordWrapEnabled?: boolean;
|
|
maxSizePercent?: number;
|
|
|
|
horizontalAlignment?: 'LEFT' | 'CENTER' | 'RIGHT';
|
|
verticalAlignment?: 'TOP' | 'CENTER' | 'BOTTOM';
|
|
orientation?: 'HORIZONTAL' | 'VERTICAL';
|
|
drawInside?: boolean;
|
|
direction?: 'LEFT_TO_RIGHT' | 'RIGHT_TO_LEFT';
|
|
|
|
form?: 'NONE' | 'EMPTY' | 'DEFAULT' | 'SQUARE' | 'CIRCLE' | 'LINE';
|
|
formSize?: number;
|
|
xEntrySpace?: number;
|
|
yEntrySpace?: number;
|
|
formToTextSpace?: number;
|
|
|
|
custom?: {
|
|
colors?: Color[];
|
|
labels?: string[];
|
|
};
|
|
}
|
|
|
|
export interface Axis {
|
|
enabled?: boolean;
|
|
drawLabels?: boolean;
|
|
drawAxisLines?: boolean;
|
|
drawGridLines?: boolean;
|
|
|
|
textColor?: Color;
|
|
textSize?: number;
|
|
fontFamily?: string;
|
|
fontStyle?: string;
|
|
fontWeight?: number;
|
|
gridColor?: Color;
|
|
gridLineWidth?: number;
|
|
axisLineColor?: Color;
|
|
axisLineWidth?: number;
|
|
gridDashedLine?: {
|
|
lineLength?: number;
|
|
spaceLength?: number;
|
|
phase?: number;
|
|
};
|
|
|
|
limitLines?: Array<{
|
|
limit: number;
|
|
label?: string;
|
|
lineColor?: Color;
|
|
lineWidth?: number;
|
|
valueTextColor?: Color;
|
|
valueFont?: string;
|
|
labelPosition?: 'LEFT_TOP' | 'LEFT_BOTTOM' | 'RIGHT_TOP' | 'RIGHT_BOTTOM';
|
|
lineDashPhase?: number;
|
|
lineDashLengths?: number[];
|
|
}>;
|
|
drawLimitLinesBehindData?: boolean;
|
|
|
|
axisMaximum?: number;
|
|
axisMinimum?: number;
|
|
granularity?: number;
|
|
granularityEnabled?: boolean;
|
|
|
|
labelCount?: number;
|
|
labelCountForce?: boolean;
|
|
|
|
centerAxisLabels?: boolean;
|
|
|
|
valueFormatter?: ValueFormatter;
|
|
|
|
valueFormatterPattern?: string;
|
|
since?: number;
|
|
timeUnit?: 'MILLISECONDS' | 'SECONDS' | 'MINUTES' | 'HOURS' | 'DAYS';
|
|
}
|
|
|
|
export interface xAxis extends Axis {
|
|
labelRotationAngle?: number;
|
|
avoidFirstLastClipping?: boolean;
|
|
position?: 'TOP' | 'BOTTOM' | 'BOTH_SIDED' | 'TOP_INSIDE' | 'BOTTOM_INSIDE';
|
|
yOffset?: number;
|
|
}
|
|
|
|
export interface yAxis extends Axis {
|
|
inverted?: boolean;
|
|
spaceTop?: number;
|
|
spaceBottom?: number;
|
|
|
|
position?: 'OUTSIDE_CHART' | 'INSIDE_CHART';
|
|
|
|
maxWidth?: number;
|
|
minWidth?: number;
|
|
|
|
zeroLine?: {
|
|
enabled?: boolean;
|
|
lineWidth?: number;
|
|
lineColor?: Color;
|
|
};
|
|
}
|
|
|
|
export interface Offsets {
|
|
top?: number;
|
|
left?: number;
|
|
bottom?: number;
|
|
right?: number;
|
|
}
|
|
|
|
export interface ChartBase extends ViewProps {
|
|
animation?: {
|
|
durationX?: number;
|
|
durationY?: number;
|
|
easingX?: EasingType;
|
|
easingY?: EasingType;
|
|
};
|
|
|
|
chartBackgroundColor?: Color;
|
|
logEnabled?: boolean;
|
|
noDataText?: string;
|
|
|
|
touchEnabled?: boolean;
|
|
dragDecelerationEnabled?: boolean;
|
|
dragDecelerationFrictionCoef?: number;
|
|
|
|
highlightPerTapEnabled?: boolean;
|
|
chartDescription?: ChartDescription;
|
|
|
|
legend?: ChartLegend;
|
|
|
|
xAxis?: xAxis;
|
|
|
|
marker?: {
|
|
enabled?: boolean;
|
|
digits?: number;
|
|
markerColor?: Color;
|
|
textColor?: Color;
|
|
textSize?: number;
|
|
};
|
|
|
|
highlights?: Array<{
|
|
x: number;
|
|
dataSetIndex?: number;
|
|
dataIndex?: number;
|
|
y?: number;
|
|
stackIndex?: number;
|
|
}>;
|
|
|
|
onSelect?: (event: ChartSelectEvent) => void;
|
|
onChange?: (event: ChartChangeEvent) => void;
|
|
}
|
|
export interface BarLineChartBase extends ChartBase {
|
|
maxHighlightDistance?: number;
|
|
drawGridBackground?: boolean;
|
|
gridBackgroundColor?: number;
|
|
|
|
drawBorders?: boolean;
|
|
borderColor?: Color;
|
|
borderWidth?: number;
|
|
|
|
minOffset?: number;
|
|
maxVisibleValueCount?: number;
|
|
visibleRange?: {
|
|
x?: {
|
|
min?: number;
|
|
max?: number;
|
|
};
|
|
y?: {
|
|
left?: {
|
|
min?: number;
|
|
max?: number;
|
|
};
|
|
right?: {
|
|
min?: number;
|
|
max?: number;
|
|
};
|
|
};
|
|
};
|
|
autoScaleMinMaxEnabled?: boolean;
|
|
keepPositionOnRotation?: boolean;
|
|
|
|
highlightPerDragEnabled?: boolean;
|
|
|
|
scaleEnabled?: boolean;
|
|
scaleXEnabled?: boolean;
|
|
scaleYEnabled?: boolean;
|
|
dragEnabled?: boolean;
|
|
pinchZoom?: boolean;
|
|
doubleTapToZoomEnabled?: boolean;
|
|
|
|
yAxis?: {
|
|
left?: yAxis;
|
|
right?: yAxis;
|
|
};
|
|
zoom?: {
|
|
scaleX: number;
|
|
scaleY: number;
|
|
xValue: number;
|
|
yValue: number;
|
|
axisDependency?: AxisDependency;
|
|
};
|
|
|
|
viewPortOffsets?: Offsets;
|
|
extraOffsets?: Offsets;
|
|
|
|
group?: string;
|
|
identifier?: string;
|
|
syncX?: boolean;
|
|
syncY?: boolean;
|
|
}
|
|
|
|
export interface PieRadarChartBase extends ChartBase {
|
|
minOffset?: number;
|
|
rotationEnabled?: boolean;
|
|
rotationAngle?: number;
|
|
}
|
|
|
|
export interface LineValue {
|
|
x?: number;
|
|
y: number;
|
|
marker?: string;
|
|
}
|
|
|
|
export interface CommonDatasetConfig {
|
|
color?: Color;
|
|
colors?: Color[];
|
|
highlightEnabled?: boolean;
|
|
drawValues?: boolean;
|
|
valueTextSize?: number;
|
|
valueTextColor?: Color;
|
|
visible?: boolean;
|
|
valueFormatter?: ValueFormatter;
|
|
axisDependency?: AxisDependency;
|
|
}
|
|
|
|
export interface BarLineScatterCandleBubbleConfig {
|
|
highlightColor?: Color;
|
|
}
|
|
|
|
export interface LineScatterCandleRadarConfig {
|
|
drawVerticalHighlightIndicator?: boolean;
|
|
drawHorizontalHighlightIndicator?: boolean;
|
|
highlightLineWidth?: number;
|
|
drawHighlightIndicators?: boolean;
|
|
}
|
|
|
|
export interface LineRadarConfig {
|
|
fillGradient?: {
|
|
colors?: Color[];
|
|
positions?: number[];
|
|
angle?: number;
|
|
orientation?: 'TOP_BOTTOM' | 'TR_BL' | 'RIGHT_LEFT' | 'BR_TL' | 'BOTTOM_TOP' | 'BL_TR' | 'LEFT_RIGHT' | 'TL_BR';
|
|
};
|
|
fillColor?: Color;
|
|
fillAlpha?: number;
|
|
drawFilled?: boolean;
|
|
lineWidth?: number;
|
|
}
|
|
|
|
export interface LineDatasetConfig
|
|
extends CommonDatasetConfig,
|
|
BarLineScatterCandleBubbleConfig,
|
|
LineScatterCandleRadarConfig,
|
|
LineRadarConfig {
|
|
circleRadius?: number;
|
|
drawCircles?: boolean;
|
|
mode?: 'LINEAR' | 'STEPPED' | 'CUBIC_BEZIER' | 'HORIZONTAL_BEZIER';
|
|
drawCubicIntensity?: number;
|
|
circleColor?: Color;
|
|
circleColors?: Color[];
|
|
circleHoleColor?: Color;
|
|
drawCircleHole?: boolean;
|
|
dashedLine?: {
|
|
lineLength: number;
|
|
spaceLength: number;
|
|
phase?: number;
|
|
};
|
|
}
|
|
|
|
export interface Dataset {
|
|
label?: string;
|
|
}
|
|
|
|
export interface LineDataset extends Dataset {
|
|
values?: Array<number | LineValue>;
|
|
config?: LineDatasetConfig;
|
|
}
|
|
export interface LineData {
|
|
dataSets?: LineDataset[];
|
|
}
|
|
|
|
export type ChartSelectEvent = NativeSyntheticEvent<{ x: number; y: number } | null>;
|
|
export type ChartChangeEvent = NativeSyntheticEvent<{
|
|
action: string;
|
|
scaleX?: number;
|
|
scaleY?: number;
|
|
centerX?: number;
|
|
centerY?: number;
|
|
|
|
left?: number;
|
|
bottom?: number;
|
|
right?: number;
|
|
top?: number;
|
|
}>;
|
|
export interface LineChartProps extends BarLineChartBase {
|
|
data: LineData;
|
|
}
|
|
export class LineChart extends Component<LineChartProps> {}
|
|
|
|
export interface BarValue {
|
|
x?: number;
|
|
y?: number | number[];
|
|
marker?: string | string[];
|
|
}
|
|
|
|
export interface BarDatasetConfig extends CommonDatasetConfig, BarLineScatterCandleBubbleConfig {
|
|
barShadowColor?: Color;
|
|
highlightAlpha?: number;
|
|
stackLabels?: string[];
|
|
}
|
|
|
|
export interface BarDataset extends Dataset {
|
|
values?: Array<BarValue | number | number[]>;
|
|
config?: BarDatasetConfig;
|
|
}
|
|
|
|
export interface BarData {
|
|
dataSets?: BarDataset[];
|
|
|
|
config?: {
|
|
barWidth?: number;
|
|
group?: {
|
|
fromX: number;
|
|
groupSpace: number;
|
|
barSpace: number;
|
|
};
|
|
};
|
|
}
|
|
|
|
export interface BarChartProps extends BarLineChartBase {
|
|
drawValueAboveBar?: boolean;
|
|
drawBarShadow?: boolean;
|
|
highlightFullBarEnabled?: boolean;
|
|
|
|
data: BarData;
|
|
}
|
|
export class BarChart extends Component<BarChartProps> {}
|
|
|
|
export interface BubbleValue {
|
|
x?: number;
|
|
y: number;
|
|
size: number;
|
|
marker?: string;
|
|
}
|
|
|
|
export interface BubbleDatasetConfig extends CommonDatasetConfig, BarLineScatterCandleBubbleConfig {
|
|
highlightCircleWidth?: number;
|
|
}
|
|
|
|
export interface BubbleDataset extends Dataset {
|
|
values?: BubbleValue[];
|
|
label: string;
|
|
config?: BubbleDatasetConfig;
|
|
}
|
|
|
|
export interface BubbleData {
|
|
dataSets?: BubbleDataset[];
|
|
}
|
|
|
|
export interface BubbleChartProps extends BarLineChartBase {
|
|
data?: BubbleData;
|
|
}
|
|
|
|
export class BubbleChart extends Component<BubbleChartProps> {}
|
|
|
|
export interface CandleStickValue {
|
|
x?: number;
|
|
shadowH: number;
|
|
shadowL: number;
|
|
open: number;
|
|
close: number;
|
|
marker?: string;
|
|
}
|
|
|
|
export type CandleStickPaintStyle = 'FILL' | 'STROKE' | 'FILL_AND_STROKE';
|
|
|
|
export interface CandleStickDatasetConfig
|
|
extends CommonDatasetConfig,
|
|
BarLineScatterCandleBubbleConfig,
|
|
LineScatterCandleRadarConfig {
|
|
barSpace?: number;
|
|
shadowWidth?: number;
|
|
shadowColor?: Color;
|
|
shadowColorSameAsCandle?: boolean;
|
|
neutralColor?: Color;
|
|
decreasingColor?: Color;
|
|
decreasingPaintStyle?: CandleStickPaintStyle;
|
|
increasingColor?: Color;
|
|
increasingPaintStyle?: CandleStickPaintStyle;
|
|
}
|
|
|
|
export interface CandleStickDataset extends Dataset {
|
|
values?: CandleStickValue[];
|
|
label: string;
|
|
config?: CandleStickDatasetConfig;
|
|
}
|
|
|
|
export interface CandleStickData {
|
|
dataSets?: CandleStickDataset[];
|
|
}
|
|
|
|
export interface CandleStickChartProps extends BarLineChartBase {
|
|
data?: CandleStickData;
|
|
}
|
|
|
|
export class CandleStickChart extends Component<CandleStickChartProps> {}
|
|
|
|
export type PieValuePosition = 'INSIDE_SLICE' | 'OUTSIDE_SLICE';
|
|
|
|
export interface PieDatasetConfig extends CommonDatasetConfig {
|
|
sliceSpace?: number;
|
|
selectionShift?: number;
|
|
xValuePosition?: PieValuePosition;
|
|
yValuePosition?: PieValuePosition;
|
|
valueLinePart1Length?: number;
|
|
valueLinePart2Length?: number;
|
|
valueLineColor?: Color;
|
|
valueLineWidth?: number;
|
|
valueLinePart1OffsetPercentage?: number;
|
|
valueLineVariableLength?: boolean;
|
|
}
|
|
|
|
export interface PieValue {
|
|
value: number;
|
|
label?: string;
|
|
}
|
|
|
|
export interface PieDataset extends Dataset {
|
|
values?: Array<PieValue | number>;
|
|
label: string;
|
|
config?: PieDatasetConfig;
|
|
}
|
|
|
|
export interface PieData {
|
|
dataSets?: PieDataset[];
|
|
}
|
|
|
|
export interface PieChartProps extends PieRadarChartBase {
|
|
drawEntryLabels?: boolean;
|
|
usePercentValues?: boolean;
|
|
|
|
centerText?: string;
|
|
styledCenterText?: {
|
|
text?: string;
|
|
color?: Color;
|
|
size?: number;
|
|
};
|
|
centerTextRadiusPercent?: number;
|
|
holeRadius?: number;
|
|
holeColor?: Color;
|
|
transparentCircleRadius?: number;
|
|
transparentCircleColor?: Color;
|
|
|
|
entryLabelColor?: Color;
|
|
entryLabelTextSize?: number;
|
|
maxAngle?: number;
|
|
|
|
data?: PieData;
|
|
}
|
|
|
|
export class PieChart extends Component<PieChartProps> {}
|
|
|
|
export interface RadarDatasetConfig extends CommonDatasetConfig, LineScatterCandleRadarConfig, LineRadarConfig {}
|
|
|
|
export interface RadarDataset extends Dataset {
|
|
values?: Array<{ value: number } | number>;
|
|
label: string;
|
|
config?: RadarDatasetConfig;
|
|
}
|
|
|
|
export interface RadarData {
|
|
dataSets?: RadarDataset[];
|
|
labels?: string[];
|
|
}
|
|
|
|
export interface RadarChartProps extends PieRadarChartBase {
|
|
yAxis?: yAxis;
|
|
|
|
drawWeb?: boolean;
|
|
skipWebLineCount?: number;
|
|
|
|
webLineWidth?: number;
|
|
webLineWidthInner?: number;
|
|
webAlpha?: number;
|
|
webColor?: Color;
|
|
webColorInner?: Color;
|
|
|
|
data?: RadarData;
|
|
}
|
|
|
|
export class RadarChart extends Component<RadarChartProps> {}
|
|
|
|
export interface ScatterDatasetConfig extends CommonDatasetConfig, BarLineScatterCandleBubbleConfig, LineScatterCandleRadarConfig {
|
|
scatterShapeSize?: number;
|
|
scatterShape?: "SQUARE" | "CIRCLE" | "TRIANGLE" | "CROSS" | "X";
|
|
scatterShapeHoleColor?: Color;
|
|
scatterShapeHoleRadius?: number;
|
|
}
|
|
|
|
export interface ScatterDataset extends Dataset {
|
|
values?: Array<LineValue | number>;
|
|
label: string;
|
|
config?: ScatterDatasetConfig;
|
|
}
|
|
|
|
export interface ScatterData {
|
|
dataSets: ScatterDataset[];
|
|
}
|
|
|
|
export interface ScatterChartProps extends BarLineChartBase {
|
|
data?: ScatterData;
|
|
}
|
|
|
|
export class ScatterChart extends Component<ScatterChartProps> {}
|
|
|
|
export interface CombinedData {
|
|
lineData?: LineData;
|
|
barData?: BarData;
|
|
scatterData?: ScatterData;
|
|
candleData?: CandleStickData;
|
|
bubbleData?: BubbleData;
|
|
}
|
|
|
|
export interface CombinedChartProps extends BarLineChartBase {
|
|
drawOrder?: Array<("BAR" | "BUBBLE" | "LINE" | "CANDLE" | "SCATTER")>;
|
|
drawValueAboveBar?: boolean;
|
|
highlightFullBarEnabled?: boolean;
|
|
drawBarShadow?: boolean;
|
|
data?: CombinedData;
|
|
}
|
|
|
|
export class CombinedChart extends Component<CombinedChartProps> {}
|
|
|
|
export class HorizontalBarChart extends Component<BarChartProps> {}
|