UNPKG

4.85 kBTypeScriptView Raw
1// Type definitions for D3JS d3-interpolate module 1.1.0
2// Project: https://github.com/d3/d3-interpolate/
3// Definitions by: Tom Wanzek <https://github.com/tomwanzek>, Alex Ford <https://github.com/gustavderdrache>, Boris Yankov <https://github.com/borisyankov>
4// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5
6import { ColorCommonInstance } from 'd3-color';
7
8
9// --------------------------------------------------------------------------
10// Shared Type Definitions and Interfaces
11// --------------------------------------------------------------------------
12
13
14export interface ZoomInterpolator extends Function {
15 (t: number): ZoomView;
16 /**
17 * Recommended duration of zoom transition in ms
18 */
19 duration: number;
20}
21
22export interface ColorGammaInterpolationFactory extends Function {
23 (a: string | ColorCommonInstance, b: string | ColorCommonInstance): ((t: number) => string);
24 gamma(g: number): ColorGammaInterpolationFactory;
25}
26
27/**
28 * Type zoomView is used to represent a numeric array with three elements.
29 * In order of appearance the elements correspond to:
30 * - cx: x-coordinate of the center of the viewport
31 * - cy: y-coordinate of the center of the viewport
32 * - width: size of the viewport
33 */
34export type ZoomView = [number, number, number];
35
36// --------------------------------------------------------------------------
37// Interpolation Function Factories
38// --------------------------------------------------------------------------
39
40export function interpolate(a: any, b: null): ((t: number) => null);
41export function interpolate(a: number | { valueOf(): number }, b: number): ((t: number) => number);
42export function interpolate(a: any, b: ColorCommonInstance): ((t: number) => string);
43export function interpolate(a: Date, b: Date): ((t: number) => Date);
44export function interpolate(a: string | { toString(): string }, b: string): ((t: number) => string);
45export function interpolate<U extends Array<any>>(a: Array<any>, b: U): ((t: number) => U);
46export function interpolate(a: number | { valueOf(): number }, b: { valueOf(): number }): ((t: number) => number);
47export function interpolate<U extends Object>(a: any, b: U): ((t: number) => U);
48export function interpolate(a: any, b: { [key: string]: any }): ((t: number) => { [key: string]: any });
49
50
51export function interpolateNumber(a: number | { valueOf(): number }, b: number | { valueOf(): number }): ((t: number) => number);
52
53export function interpolateRound(a: number | { valueOf(): number }, b: number | { valueOf(): number }): ((t: number) => number);
54
55export function interpolateString(a: string | { toString(): string }, b: string | { toString(): string }): ((t: number) => string);
56
57export function interpolateDate(a: Date, b: Date): ((t: number) => Date);
58
59export function interpolateArray<A extends Array<any>>(a: Array<any>, b: A): ((t: number) => A);
60
61export function interpolateObject<U extends Object>(a: any, b: U): ((t: number) => U);
62export function interpolateObject(a: { [key: string]: any }, b: { [key: string]: any }): ((t: number) => { [key: string]: any });
63
64
65
66export function interpolateTransformCss(a: string, b: string): ((t: number) => string);
67export function interpolateTransformSvg(a: string, b: string): ((t: number) => string);
68
69/**
70 * Create Interpolator for zoom views
71 */
72export function interpolateZoom(a: ZoomView, b: ZoomView): ZoomInterpolator;
73
74
75export function quantize<T>(interpolator: ((t: number) => T), n: number): Array<T>;
76
77// Color interpolation related
78
79export var interpolateRgb: ColorGammaInterpolationFactory;
80
81export function interpolateRgbBasis(colors: Array<string | ColorCommonInstance>): ((t: number) => string);
82export function interpolateRgbBasisClosed(colors: Array<string | ColorCommonInstance>): ((t: number) => string);
83
84export function interpolateHsl(a: string | ColorCommonInstance, b: string | ColorCommonInstance): ((t: number) => string);
85export function interpolateHslLong(a: string | ColorCommonInstance, b: string | ColorCommonInstance): ((t: number) => string);
86export function interpolateLab(a: string | ColorCommonInstance, b: string | ColorCommonInstance): ((t: number) => string);
87export function interpolateHcl(a: string | ColorCommonInstance, b: string | ColorCommonInstance): ((t: number) => string);
88export function interpolateHclLong(a: string | ColorCommonInstance, b: string | ColorCommonInstance): ((t: number) => string);
89export var interpolateCubehelix: ColorGammaInterpolationFactory;
90export var interpolateCubehelixLong: ColorGammaInterpolationFactory;
91
92// Spline related
93
94export function interpolateBasis(splineNodes: Array<number>): ((t: number) => number);
95export function interpolateBasisClosed(splineNodes: Array<number>): ((t: number) => number);
96
\No newline at end of file