mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
[d3-zoom] Minor Version 1.7 (#21052)
* [FEATURE] Add `constrain(...)` method * [DOC] Fix spelling error in JSDoc comment for `clickDistance(...)` * [CHORE] Bump minor version number
This commit is contained in:
parent
2b447c6558
commit
bbe1bc92cf
@ -121,6 +121,26 @@ let svgZoom: d3Zoom.ZoomBehavior<SVGRectElement, SVGDatum>;
|
||||
|
||||
svgZoom = d3Zoom.zoom<SVGRectElement, SVGDatum>();
|
||||
|
||||
// constrain() -------------------------------------------------------------
|
||||
|
||||
// chainable
|
||||
svgZoom = svgZoom.constrain((transform, extent, translateExtent) => {
|
||||
const t: d3Zoom.ZoomTransform = transform;
|
||||
const ve: [[number, number], [number, number]] = extent;
|
||||
const te: [[number, number], [number, number]] = translateExtent;
|
||||
const dx0 = t.invertX(ve[0][0]) - te[0][0];
|
||||
const dx1 = t.invertX(ve[1][0]) - te[1][0];
|
||||
const dy0 = transform.invertY(ve[0][1]) - te[0][1];
|
||||
const dy1 = transform.invertY(ve[1][1]) - te[1][1];
|
||||
return t.translate(
|
||||
dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),
|
||||
dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)
|
||||
);
|
||||
});
|
||||
|
||||
let constraintFn: (transform: d3Zoom.ZoomTransform, extent: [[number, number], [number, number]], translateExtent: [[number, number], [number, number]]) => d3Zoom.ZoomTransform;
|
||||
constraintFn = svgZoom.constrain();
|
||||
|
||||
// filter() ----------------------------------------------------------------
|
||||
|
||||
// chainable
|
||||
|
||||
19
types/d3-zoom/index.d.ts
vendored
19
types/d3-zoom/index.d.ts
vendored
@ -1,9 +1,9 @@
|
||||
// Type definitions for d3JS d3-zoom module 1.6
|
||||
// Type definitions for d3JS d3-zoom module 1.7
|
||||
// Project: https://github.com/d3/d3-zoom/
|
||||
// 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
|
||||
|
||||
// Last module patch version validated against: 1.6.0
|
||||
// Last module patch version validated against: 1.7.0
|
||||
|
||||
import { ArrayLike, Selection, TransitionLike, ValueFn } from 'd3-selection';
|
||||
import { ZoomView, ZoomInterpolator } from 'd3-interpolate';
|
||||
@ -499,6 +499,19 @@ export interface ZoomBehavior<ZoomRefElement extends ZoomedElementBaseType, Datu
|
||||
*/
|
||||
scaleTo(transition: TransitionLike<ZoomRefElement, Datum>, k: ValueFn<ZoomRefElement, Datum, number>): void;
|
||||
|
||||
/**
|
||||
* Returns the current constraint function.
|
||||
* The default implementation attempts to ensure that the viewport extent does not go outside the translate extent.
|
||||
*/
|
||||
constrain(): (transform: ZoomTransform, extent: [[number, number], [number, number]], translateExtent: [[number, number], [number, number]]) => ZoomTransform;
|
||||
/**
|
||||
* Sets the transform constraint function to the specified function and returns the zoom behavior.
|
||||
*
|
||||
* @param constraint A constraint function which returns a transform given the current transform, viewport extent and translate extent.
|
||||
* The default implementation attempts to ensure that the viewport extent does not go outside the translate extent.
|
||||
*/
|
||||
constrain(constraint: ((transform: ZoomTransform, extent: [[number, number], [number, number]], translateExtent: [[number, number], [number, number]]) => ZoomTransform)): this;
|
||||
|
||||
/**
|
||||
* Returns the current filter function.
|
||||
*/
|
||||
@ -647,7 +660,7 @@ export interface ZoomBehavior<ZoomRefElement extends ZoomedElementBaseType, Datu
|
||||
/**
|
||||
* Set the maximum distance that the mouse can move between mousedown and mouseup that will trigger
|
||||
* a subsequent click event. If at any point between mousedown and mouseup the mouse is greater than or equal to
|
||||
* distance from its position on mousedown, the click event follwing mouseup will be suppressed.
|
||||
* distance from its position on mousedown, the click event following mouseup will be suppressed.
|
||||
*
|
||||
* @param distance The distance threshold between mousedown and mouseup measured in client coordinates (event.clientX and event.clientY).
|
||||
* The default is zero.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user