mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
Merge pull request #4032 from gustavderdrache/master
Add generics to d3.d.ts
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
}
|
||||
|
||||
|
||||
var fill = d3.scale.category20();
|
||||
var fill = d3.scale.category20<number>();
|
||||
d3.layout.cloud().size([300, 300])
|
||||
.words([
|
||||
"Hello", "world", "normally", "you", "want", "more", "words",
|
||||
@@ -40,4 +40,4 @@
|
||||
return "translate(" + [d.x, d.y] + ")rotate(" + d.rotate + ")";
|
||||
})
|
||||
.text(function(d:ICompTextSize) { return d.text; });
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+69
-33
@@ -5,41 +5,77 @@
|
||||
|
||||
/// <reference path="../d3/d3.d.ts" />
|
||||
|
||||
declare module D3 {
|
||||
export module Layout {
|
||||
export interface IRotate {
|
||||
(number:number) : CloudLayout;
|
||||
(number:()=>number) : CloudLayout;
|
||||
declare module d3 {
|
||||
module layout {
|
||||
export function cloud(): Cloud<cloud.Word>;
|
||||
export function cloud<T extends cloud.Word>(): Cloud<T>;
|
||||
|
||||
module cloud {
|
||||
interface Word {
|
||||
text?: string;
|
||||
font?: string;
|
||||
style?: string;
|
||||
weight?: string | number;
|
||||
rotate?: number;
|
||||
size?: number;
|
||||
padding?: number;
|
||||
x?: number;
|
||||
y?: number;
|
||||
}
|
||||
}
|
||||
|
||||
interface Cloud<T extends cloud.Word> {
|
||||
start(): Cloud<T>;
|
||||
stop(): Cloud<T>;
|
||||
|
||||
timeInterval(): number;
|
||||
timeInterval(interval: number): Cloud<T>;
|
||||
|
||||
export interface CloudLayout {
|
||||
(layers: any[], index?: number): any[];
|
||||
values(accessor?: (d: any) => any): CloudLayout;
|
||||
offset(offset: string): CloudLayout;
|
||||
size: {
|
||||
/**
|
||||
* Gets the available layout size
|
||||
*/
|
||||
(): Array<number>;
|
||||
/**
|
||||
* Sets the available layout size
|
||||
*/
|
||||
(size: Array<number>): CloudLayout;
|
||||
};
|
||||
words: (inputArray: Array<any>) => CloudLayout;
|
||||
rotate:IRotate;
|
||||
padding: (number:number) => CloudLayout;
|
||||
font: (string:string) => CloudLayout;
|
||||
fontSize(fctn: (d: any) => number): CloudLayout;
|
||||
on: (eventname: string, callee: (words: any[]) => void) => CloudLayout;
|
||||
start: () => CloudLayout;
|
||||
words(): T[];
|
||||
words(words: T[]): Cloud<T>;
|
||||
|
||||
size(): [number, number];
|
||||
size(size: [number, number]): Cloud<T>;
|
||||
|
||||
font(): (datum: T, index: number) => string;
|
||||
font(font: string): Cloud<T>;
|
||||
font(font: (datum: T, index: number) => string): Cloud<T>;
|
||||
|
||||
fontStyle(): (datum: T, index: number) => string;
|
||||
fontStyle(style: string): Cloud<T>;
|
||||
fontStyle(style: (datum: T, index: number) => string): Cloud<T>;
|
||||
|
||||
fontWeight(): (datum: T, index: number) => string | number;
|
||||
fontWeight(weight: string | number): Cloud<T>;
|
||||
fontWeight(weight: (datum: T, index: number) => string | number): Cloud<T>;
|
||||
|
||||
rotate(): (datum: T, index: number) => number;
|
||||
rotate(rotate: number): Cloud<T>;
|
||||
rotate(rotate: (datum: T, index: number) => number): Cloud<T>;
|
||||
|
||||
text(): (datum: T, index: number) => string;
|
||||
text(text: string): Cloud<T>;
|
||||
text(text: (datum: T, index: number) => string): Cloud<T>;
|
||||
|
||||
spiral(): (size: number) => (t: number) => [number, number];
|
||||
spiral(name: string): Cloud<T>;
|
||||
spiral(spiral: (size: number) => (t: number) => [number, number]): Cloud<T>;
|
||||
|
||||
fontSize(): (datum: T, index: number) => number;
|
||||
fontSize(size: number): Cloud<T>;
|
||||
fontSize(size: (datum: T, index: number) => number): Cloud<T>;
|
||||
|
||||
padding(): (datum: T, index: number) => number;
|
||||
padding(padding: number): Cloud<T>;
|
||||
padding(padding: (datum: T, index: number) => number): Cloud<T>;
|
||||
|
||||
on(type: "word", listener: (word: T) => void): Cloud<T>;
|
||||
on(type: "end", listener: (tags: T[], bounds: { x: number; y: number }[]) => void): Cloud<T>;
|
||||
on(type: string, listener: (...args: any[]) => void): Cloud<T>;
|
||||
|
||||
on(type: "word"): (word: T) => void;
|
||||
on(type: "end"): (tags: T[], bounds: { x: number; y: number }[]) => void;
|
||||
on(type: string): (...args: any[]) => void;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export interface Layout {
|
||||
cloud(): CloudLayout;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+386
-392
File diff suppressed because it is too large
Load Diff
Vendored
+3173
-3398
File diff suppressed because it is too large
Load Diff
@@ -12,7 +12,7 @@ function superformula() {
|
||||
.attr("width", 960)
|
||||
.attr("height", 500);
|
||||
|
||||
var small = d3.superformula()
|
||||
var small = d3.superformula<string>()
|
||||
.type(function (d) { return d; } )
|
||||
.size(size);
|
||||
|
||||
@@ -37,4 +37,4 @@ function superformula() {
|
||||
.attr("class", "big")
|
||||
.attr("transform", "translate(450,250)")
|
||||
.attr("d", big);
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+28
-29
@@ -1,38 +1,37 @@
|
||||
/// <reference path="../d3.d.ts" />
|
||||
|
||||
declare module d3 {
|
||||
export function superformula<T>(): Superformula<T>;
|
||||
|
||||
declare module D3 {
|
||||
interface SuperformulaPath
|
||||
{
|
||||
superformulaPath(params: number[], n: number, diameter: number): Superformula;
|
||||
module superformula {
|
||||
interface Type {
|
||||
m: number;
|
||||
n1: number;
|
||||
n2: number;
|
||||
n3: number;
|
||||
a: number;
|
||||
b: number;
|
||||
}
|
||||
}
|
||||
|
||||
interface Superformula<T> {
|
||||
(datum: T, index: number): string;
|
||||
|
||||
interface SuperformulaType
|
||||
{
|
||||
(any: any): any;//hans
|
||||
m: number;
|
||||
n1: number;
|
||||
n2: number;
|
||||
n3: number;
|
||||
a: number;
|
||||
b: number;
|
||||
type(): (datum: T, index: number) => string;
|
||||
type(type: string): Superformula<T>;
|
||||
type(type: (datum: T, index: number) => string): Superformula<T>;
|
||||
|
||||
size(): (datum: T, index: number) => number;
|
||||
size(size: number): Superformula<T>;
|
||||
size(size: (datum: T, index: number) => number): Superformula<T>;
|
||||
|
||||
segments(): (datum: T, index: number) => number;
|
||||
segments(segments: number): Superformula<T>;
|
||||
segments(segments: (datum: T, index: number) => number): Superformula<T>;
|
||||
|
||||
param(name: string): number;
|
||||
param(name: string, value: number): Superformula<T>;
|
||||
}
|
||||
|
||||
interface Superformula
|
||||
{
|
||||
(): any;
|
||||
type(any: any): any;
|
||||
param(name: string, value: number): Superformula;
|
||||
size(x: number): Superformula;
|
||||
segments(x: number): Superformula;
|
||||
}
|
||||
|
||||
|
||||
interface Base extends Selectors
|
||||
{
|
||||
superformula: Superformula;
|
||||
superformulaPath: SuperformulaPath;
|
||||
superformulaTypes: SuperformulaType[];
|
||||
}
|
||||
export var superformulaTypes: string[];
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -24,7 +24,7 @@ declare module Dagre {
|
||||
|
||||
interface Render {
|
||||
new (): Render;
|
||||
(selection: D3.Selection, g: Dagre.Graph): void;
|
||||
(selection: d3.Selection<any>, g: Dagre.Graph): void;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Vendored
+4
-4
@@ -47,8 +47,8 @@ export interface ILegendwidget {
|
||||
legend: (l:ILegendwidget) => T;
|
||||
chartID: () => number;
|
||||
options: (o:Object)=>void ;
|
||||
select: (selector: D3.Selection) => D3.Selection;
|
||||
selectAll: (selector: D3.Selection) => D3.Selection;
|
||||
select: (selector: d3.Selection<any>) => d3.Selection<any>;
|
||||
selectAll: (selector: d3.Selection<any>) => d3.Selection<any>;
|
||||
}
|
||||
|
||||
export interface IEvents {
|
||||
@@ -85,8 +85,8 @@ export interface ILegendwidget {
|
||||
x: IGetSet<any, T>;
|
||||
y: IGetSet<any, T>;
|
||||
elasticY: IGetSet<boolean, T>;
|
||||
xAxis: IGetSet<D3.Svg.Axis, T>;
|
||||
yAxis: IGetSet<D3.Svg.Axis, T>;
|
||||
xAxis: IGetSet<d3.svg.Axis, T>;
|
||||
yAxis: IGetSet<d3.svg.Axis, T>;
|
||||
yAxisPadding: IGetSet<number, T>;
|
||||
xAxisPadding: IGetSet<number, T>;
|
||||
renderHorizontalGridLines: IGetSet<boolean, T>;
|
||||
|
||||
Vendored
+33
-23
@@ -20,6 +20,16 @@ declare module DC {
|
||||
(t: T, r?: R): V;
|
||||
}
|
||||
|
||||
export interface Scale<T> {
|
||||
(x: any): T;
|
||||
|
||||
domain(values: any[]): Scale<T>;
|
||||
domain(): any[];
|
||||
|
||||
range(values: T[]): Scale<T>;
|
||||
range(): T[];
|
||||
}
|
||||
|
||||
export interface Accessor<T, V> {
|
||||
(datum: T, index?: number): V;
|
||||
}
|
||||
@@ -86,7 +96,7 @@ declare module DC {
|
||||
clamp(n: number, min: number, max: number): number;
|
||||
uniqueId(): number;
|
||||
nameToId(name: string): string;
|
||||
appendOrSelect(parent: D3.Selection, selector: string, tag: any): D3.Selection;
|
||||
appendOrSelect(parent: d3.Selection<any>, selector: string, tag: any): d3.Selection<any>;
|
||||
safeNumber(n: any): number;
|
||||
}
|
||||
|
||||
@@ -112,11 +122,11 @@ declare module DC {
|
||||
group: IGetSet<any, T>;
|
||||
ordering: IGetSet<Accessor<any, any>, T>;
|
||||
filterAll(): void;
|
||||
select(selector: D3.Selection|string): D3.Selection;
|
||||
selectAll(selector: D3.Selection|string): D3.Selection;
|
||||
anchor(anchor: BaseMixin<any>|D3.Selection|string, chartGroup?: string): D3.Selection;
|
||||
select(selector: d3.Selection<any>|string): d3.Selection<any>;
|
||||
selectAll(selector: d3.Selection<any>|string): d3.Selection<any>;
|
||||
anchor(anchor: BaseMixin<any>|d3.Selection<any>|string, chartGroup?: string): d3.Selection<any>;
|
||||
anchorName(): string;
|
||||
svg: IGetSet<D3.Selection, D3.Selection>;
|
||||
svg: IGetSet<d3.Selection<any>, d3.Selection<any>>;
|
||||
resetSvg(): void;
|
||||
filterPrinter: IGetSet<(filters: Array<any>) => string, T>;
|
||||
turnOnControls(): void;
|
||||
@@ -160,9 +170,9 @@ declare module DC {
|
||||
}
|
||||
|
||||
export interface ColorMixin<T> {
|
||||
colors: IGetSet<D3.Scale.GenericScale<any>|Array<string>, T>;
|
||||
colors: IGetSet<Array<string> | Scale<string | d3.Color>, T>;
|
||||
ordinalColors(r: Array<string>): void;
|
||||
linearColors(r: Array<number>): void;
|
||||
linearColors(r: Array<string>): void;
|
||||
colorAccessor: IGetSet<Accessor<any, string>, T>;
|
||||
colorDomain: IGetSet<Array<any>, T>;
|
||||
calculateColorDomain(): void;
|
||||
@@ -174,12 +184,12 @@ declare module DC {
|
||||
rangeChart: IGetSet<BaseMixin<any>, T>;
|
||||
zoomScale: IGetSet<Array<any>, T>;
|
||||
zoomOutRestrict: IGetSet<boolean, T>;
|
||||
g: IGetSet<D3.Selection, T>;
|
||||
g: IGetSet<d3.Selection<any>, T>;
|
||||
mouseZoomable: IGetSet<boolean, T>;
|
||||
chartBodyG(): D3.Selection;
|
||||
x: IGetSet<D3.Scale.GenericScale<any>, T>;
|
||||
chartBodyG(): d3.Selection<any>;
|
||||
x: IGetSet<(n: any) => any, T>;
|
||||
xUnits: IGetSet<UnitFunction, T>;
|
||||
xAxis: IGetSet<D3.Svg.Axis, T>;
|
||||
xAxis: IGetSet<d3.svg.Axis, T>;
|
||||
elasticX: IGetSet<boolean, T>;
|
||||
xAxisPadding: IGetSet<number, T>;
|
||||
xUnitCount(): number;
|
||||
@@ -187,8 +197,8 @@ declare module DC {
|
||||
isOrdinal(): boolean;
|
||||
xAxisLabel: IBiGetSet<string, number, T>;
|
||||
yAxisLabel: IBiGetSet<string, number, T>;
|
||||
y: IGetSet<D3.Scale.GenericQuantitativeScale<any>, T>;
|
||||
yAxis: IGetSet<D3.Svg.Axis, T>;
|
||||
y: IGetSet<Scale<number>, T>;
|
||||
yAxis: IGetSet<d3.svg.Axis, T>;
|
||||
elasticY: IGetSet<boolean, T>;
|
||||
renderHorizontalGridLines: IGetSet<boolean, T>;
|
||||
renderVerticalGridLines: IGetSet<boolean, T>;
|
||||
@@ -209,7 +219,7 @@ declare module DC {
|
||||
hideStack(name: string): void;
|
||||
showStack(name: string): void;
|
||||
// title(stackName: string, titleFn: Accessor<any, T>);
|
||||
stackLayout: IGetSet<D3.Layout.StackLayout, T>;
|
||||
stackLayout: IGetSet<d3.layout.Stack<any[], any>, T>;
|
||||
}
|
||||
|
||||
export interface CapMixin<T> {
|
||||
@@ -219,7 +229,7 @@ declare module DC {
|
||||
}
|
||||
|
||||
export interface BubbleMixin<T> extends ColorMixin<T> {
|
||||
r: IGetSet<D3.Scale.GenericQuantitativeScale<any>, T>;
|
||||
r: IGetSet<Scale<number>, T>;
|
||||
radiusValueAccessor: IGetSet<Accessor<any, number>, T>;
|
||||
minRadiusWithLabel: IGetSet<number, T>;
|
||||
maxBubbleRelativeSize: IGetSet<number, T>;
|
||||
@@ -295,8 +305,8 @@ declare module DC {
|
||||
children(): Array<BaseMixin<any>>;
|
||||
shareColors: IGetSet<boolean, CompositeChart>;
|
||||
shareTitle: IGetSet<boolean, CompositeChart>;
|
||||
rightY: IGetSet<D3.Scale.GenericQuantitativeScale<any>, CompositeChart>;
|
||||
rightYAxis: IGetSet<D3.Svg.Axis, CompositeChart>;
|
||||
rightY: IGetSet<(n: any) => any, CompositeChart>;
|
||||
rightYAxis: IGetSet<d3.svg.Axis, CompositeChart>;
|
||||
}
|
||||
|
||||
export interface SeriesChart extends CompositeChart {
|
||||
@@ -314,9 +324,9 @@ declare module DC {
|
||||
|
||||
export interface GeoChoroplethChart extends ColorMixin<GeoChoroplethChart>, BaseMixin<GeoChoroplethChart> {
|
||||
overlayGeoJson(json: any, name: string, keyAccessor: Accessor<any, any>): void;
|
||||
projection: IGetSet<D3.Geo.Projection, GeoChoroplethChart>;
|
||||
projection: IGetSet<d3.geo.Projection, GeoChoroplethChart>;
|
||||
geoJsons(): Array<GeoChoroplethLayer>;
|
||||
geoPath(): D3.Geo.Path;
|
||||
geoPath(): d3.geo.Path;
|
||||
removeGeoJson(name: string): void;
|
||||
}
|
||||
|
||||
@@ -325,9 +335,9 @@ declare module DC {
|
||||
}
|
||||
|
||||
export interface RowChart extends CapMixin<RowChart>, MarginMixin<RowChart>, ColorMixin<RowChart>, BaseMixin<RowChart> {
|
||||
x: IGetSet<D3.Scale.GenericQuantitativeScale<any>, RowChart>;
|
||||
x: IGetSet<Scale<number>, RowChart>;
|
||||
renderTitleLabel: IGetSet<boolean, RowChart>;
|
||||
xAxis: IGetSet<D3.Svg.Axis, RowChart>;
|
||||
xAxis: IGetSet<d3.svg.Axis, RowChart>;
|
||||
fixedBarHeight: IGetSet<number, RowChart>;
|
||||
gap: IGetSet<number, RowChart>;
|
||||
elasticX: IGetSet<boolean, RowChart>;
|
||||
@@ -338,7 +348,7 @@ declare module DC {
|
||||
|
||||
export interface ScatterPlot extends CoordinateGridMixin<ScatterPlot> {
|
||||
existenceAccessor: IGetSet<Accessor<any, boolean>, ScatterPlot>;
|
||||
symbol: IGetSet<D3.Svg.Symbol, ScatterPlot>;
|
||||
symbol: IGetSet<d3.svg.Symbol<any>, ScatterPlot>;
|
||||
symbolSize: IGetSet<number, ScatterPlot>;
|
||||
highlightedSize: IGetSet<number, ScatterPlot>;
|
||||
hiddenSize: IGetSet<number, ScatterPlot>;
|
||||
@@ -392,7 +402,7 @@ declare module DC {
|
||||
renderAll(group?: string): void;
|
||||
redrawAll(group?: string): void;
|
||||
disableTransitions: boolean;
|
||||
transition(selections: D3.Selection, duration: number, callback: (s: D3.Selection) => void): void;
|
||||
transition(selections: d3.Selection<any>, duration: number, callback: (s: d3.Selection<any>) => void): void;
|
||||
|
||||
units: Units;
|
||||
events: Events;
|
||||
|
||||
Reference in New Issue
Block a user