mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-05-27 06:22:55 +08:00
* d3-array: Changed name of import alias in test file for consistency with other test files. Deleted excess line at end of definition. * d3-axis: Enhanced Axis.scale() getter to use generic for refined return type casting. Return type can now be more specific than AxisScale minimal interface compliance. Used `this` as return type for chainable setter methods on Axis. * d3-brush: Use ValueFn type alias from d3-selection for harmonization of callbacks. Use `this` as return type of chainable setter methods. Fixed return type of BrushBehavior.move(...) to be void * d3-chord: Use `this` as return type of chainable setter methods. * d3-collection: Use `this` as return type of chainable setter methods. * d3-color: Use `this` as return type of chainable setter methods. Added helper interface ColorCommonInstance as a fallback to allow extensibility of color spaces e.g. as through d3-hsv * d3-dispatch: Use `this` as return type of chainable setter methods. * d3-drag: Use ValueFn type alias from d3-selection for harmonization of callbacks. Use `this` as return type of chainable setter methods. * d3-ease: Removed excess space. * d3-force: Use `this` as return type of chainable setter methods. Fixed return type of Simulation.tick() to be void. Fixed Force.initialize(...) to be optional when defining a custom force. Enhanced Simulation.force(...) getter to use generic to to cast return type to specific force type, when details are know. Updated related tests. * d3-hsv: New definitions and tests added * d3-interpolate: Use ColorCommonInstance to allow more general color spaces than the color space objects defined in d3-color, e.g. d3-hsv. Added related tests. * d3-quadtree: Use `this` as return type of chainable setter methods. * d3-scale: Fixed missing support of coercible numeric value as input to ScaleSequential. Use `this` as return type of chainable setter methods. * d3-selection: Added type alias ValueFn which is used to harmonize callback functions. Use `this` as return type of chainable setter methods, where no new selection is returned. Removed outdated comments. * d3-selection-multi: Added new definitions with tests. * d3-shape: Use `this` as return type of chainable setter methods. Removed spurious `?` from callback signatures. * d3-time: Use `this` as return type of chainable setter methods. * d3-transition: Added type alias ValueFn which is used to harmonize callback functions. Use `this` as return type of chainable setter methods, where no new transition is returned. * d3-voronoi: Use `this` as return type of chainable setter methods. * d3-zoom: Use `this` as return type of chainable setter methods. Note that ZoomTransform.scale(...) and ZoomTransform.translate(...) return new ZoomTranform objects. Use ValueFn to harmonize callbacks. Updates the prime for the newly developed D3 version 4 definitions on a file-by-file basis.
47 lines
2.4 KiB
TypeScript
47 lines
2.4 KiB
TypeScript
// Type definitions for D3JS d3-brush module 1.0.1
|
|
// Project: https://github.com/d3/d3-brush/
|
|
// Definitions by: Tom Wanzek <https://github.com/tomwanzek>, Alex Ford <https://github.com/gustavderdrache>, Boris Yankov <https://github.com/borisyankov>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
|
|
import { ArrayLike, Selection, TransitionLike, ValueFn } from 'd3-selection';
|
|
|
|
/**
|
|
* Type alias for a BrushSelection. For a two-dimensional brush, it must be defined as [[x0, y0], [x1, y1]],
|
|
* where x0 is the minimum x-value, y0 is the minimum y-value, x1 is the maximum x-value, and y1 is the maximum y-value.
|
|
* For an x-brush, it must be defined as [x0, x1]; for a y-brush, it must be defined as [y0, y1].
|
|
*/
|
|
export type BrushSelection = [[number, number], [number, number]] | [number, number];
|
|
|
|
|
|
export interface BrushBehavior<Datum> {
|
|
(group: Selection<SVGGElement, Datum, any, any>, ...args: any[]): void;
|
|
move(group: Selection<SVGGElement, Datum, any, any>, selection: BrushSelection): void;
|
|
move(group: Selection<SVGGElement, Datum, any, any>, selection: ValueFn<SVGGElement, Datum, BrushSelection>): void;
|
|
move(group: TransitionLike<SVGGElement, Datum>, selection: BrushSelection): void;
|
|
move(group: TransitionLike<SVGGElement, Datum>, selection: ValueFn<SVGGElement, Datum, BrushSelection>): void;
|
|
extent(): ValueFn<SVGGElement, Datum, [[number, number], [number, number]]>;
|
|
extent(extent: [[number, number], [number, number]]): this;
|
|
extent(extent: ValueFn<SVGGElement, Datum, [[number, number], [number, number]]>): this;
|
|
filter(): ValueFn<SVGGElement, Datum, boolean>;
|
|
filter(filterFn: ValueFn<SVGGElement, Datum, boolean>): this;
|
|
handleSize(): number;
|
|
handleSize(size: number): this;
|
|
on(typenames: string): ValueFn<SVGGElement, Datum, void>;
|
|
on(typenames: string, callback: null): this;
|
|
on(typenames: string, callback: ValueFn<SVGGElement, Datum, void>): this;
|
|
|
|
}
|
|
|
|
export function brush<Datum>(): BrushBehavior<Datum>;
|
|
export function brushX<Datum>(): BrushBehavior<Datum>;
|
|
export function brushY<Datum>(): BrushBehavior<Datum>;
|
|
|
|
export function brushSelection(node: SVGGElement): BrushSelection;
|
|
|
|
export interface D3BrushEvent<Datum> {
|
|
target: BrushBehavior<Datum>;
|
|
type: 'start' | 'brush' | 'end' | string; // Leave failsafe string type for cases like 'brush.foo'
|
|
selection: BrushSelection;
|
|
sourceEvent: any;
|
|
}
|