UNPKG

2.34 kBTypeScriptView Raw
1import * as React from 'react'
2import {
3 Box,
4 Theme,
5 Dimensions,
6 MotionProps,
7 ColorProps,
8 GetColor,
9 SvgDefsAndFill,
10} from '@nivo/core'
11
12declare module '@nivo/waffle' {
13 export type WaffleFillDirection = 'top' | 'right' | 'bottom' | 'left'
14
15 export interface WaffleDatum {
16 id: string | number
17 value: number
18 label: string | number
19 }
20
21 export type WaffleTooltipData = WaffleDatum & {
22 color: string
23 position: number
24 row: number
25 column: number
26 groupIndex: number
27 startAt: number
28 endAt: number
29 }
30
31 export type ValueFormatter = (value: number) => string | number
32
33 export interface WaffleBaseProps {
34 total: number
35 data: object[]
36 rows: number
37 columns: number
38 }
39
40 export type WaffleCommonProps = ColorProps<WaffleDatum> &
41 Partial<{
42 margin: Box
43 fillDirection: WaffleFillDirection
44 padding: number
45
46 theme: Theme
47 emptyColor: string
48 emptyOpacity: number
49 borderWidth: number
50 borderColor: string | GetColor<WaffleDatum>
51
52 enableLabels: boolean
53
54 isInteractive: boolean
55 onClick: (datum: WaffleDatum, event: React.MouseEvent<HTMLCanvasElement>) => void
56 tooltipFormat: string | ValueFormatter
57 tooltip: React.StatelessComponent<WaffleTooltipData>
58 }>
59
60 export type WaffleSvgProps = WaffleBaseProps &
61 WaffleCommonProps &
62 MotionProps &
63 SvgDefsAndFill<WaffleDatum>
64
65 export class Waffle extends React.Component<WaffleSvgProps & Dimensions> {}
66 export class ResponsiveWaffle extends React.Component<WaffleSvgProps> {}
67
68 export type WaffleHtmlProps = WaffleBaseProps & WaffleCommonProps & MotionProps
69
70 export class WaffleHtml extends React.Component<WaffleHtmlProps & Dimensions> {}
71 export class ResponsiveWaffleHtml extends React.Component<WaffleHtmlProps> {}
72
73 export type WaffleCanvasProps = WaffleBaseProps &
74 WaffleCommonProps &
75 Partial<{
76 pixelRatio: number
77 }>
78
79 export class WaffleCanvas extends React.Component<WaffleCanvasProps & Dimensions> {}
80 export class ResponsiveWaffleCanvas extends React.Component<WaffleCanvasProps> {}
81}