1 | import * as React from 'react'
|
2 | import {
|
3 | Box,
|
4 | Theme,
|
5 | Dimensions,
|
6 | MotionProps,
|
7 | ColorProps,
|
8 | GetColor,
|
9 | SvgDefsAndFill,
|
10 | } from '@nivo/core'
|
11 |
|
12 | declare 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 | }
|