Skip to content

Abstract Class: D3PTool<D, M> ​

Defined in: core/tools/base.ts:23

Base of the tools. A tool is active on a chart iff it is attached to it; it resolves its axes on every event and acts only by writing axis domains.

Extends ​

Extended by ​

Type Parameters ​

D ​

D = { }

M ​

M extends object = { }

Constructors ​

Constructor ​

ts
new D3PTool<D, M>(
   name, 
   eventNames, 
   opts?
): D3PTool<D, M>;

Defined in: core/tools/base.ts:27

Parameters ​

name ​

string

eventNames ​

readonly (keyof M & string)[]

opts? ​

D3PToolOptions = {}

Returns ​

D3PTool<D, M>

Overrides ​

D3PAttachable.constructor

Methods ​

addToChart() ​

ts
addToChart(chart): void;

Defined in: core/object.ts:77

Attaches the object to a chart; nothing happens if it already is attached to it.

Parameters ​

chart ​

D3PChart

Returns ​

void

Inherited from ​

D3PAttachable.addToChart


attached() ​

ts
abstract protected attached(
   chart, 
   data, 
   subs
): void;

Defined in: core/object.ts:72

Subscribe / create DOM. Subscriptions added to subs are released on detach.

Parameters ​

chart ​

D3PChart

data ​

D

subs ​

D3PSubscriptions

Returns ​

void

Inherited from ​

D3PAttachable.attached


createData() ​

ts
abstract protected createData(chart): D;

Defined in: core/object.ts:70

Build the per-chart record. Must not rely on other objects of the chart.

Parameters ​

chart ​

D3PChart

Returns ​

D

Inherited from ​

D3PAttachable.createData


destroy() ​

ts
destroy(): void;

Defined in: core/object.ts:51

Detaches the object from all its charts, announces destroyed and releases its subscriptions. The object cannot be used afterwards.

Returns ​

void

Inherited from ​

D3PAttachable.destroy


detached() ​

ts
protected detached(_chart, _data): void;

Defined in: core/object.ts:74

DOM / registry cleanup (subscriptions are released afterwards).

Parameters ​

_chart ​

D3PChart

_data ​

D

Returns ​

void

Inherited from ​

D3PAttachable.detached


fire() ​

ts
protected fire<P>(event, ...args): void;

Defined in: core/object.ts:41

Emits one of its own events on the bus.

Type Parameters ​

P ​

P

Parameters ​

event ​

D3PEvent<P>

args ​

...P extends void ? [] : [payload: P]

Returns ​

void

Inherited from ​

D3PAttachable.fire


getCharts() ​

ts
getCharts(): D3PChart[];

Defined in: core/object.ts:105

The charts the object is attached to.

Returns ​

D3PChart[]

Inherited from ​

D3PAttachable.getCharts


hasChart() ​

ts
hasChart(chart): boolean;

Defined in: core/object.ts:110

Whether the object is attached to this chart.

Parameters ​

chart ​

D3PChart

Returns ​

boolean

Inherited from ​

D3PAttachable.hasChart


isActiveOn() ​

ts
protected isActiveOn(chart): boolean;

Defined in: core/tools/base.ts:55

Whether the tool is attached to this chart and alive.

Parameters ​

chart ​

D3PChart

Returns ​

boolean


onDestroy() ​

ts
protected onDestroy(): void;

Defined in: core/object.ts:114

Hook run first on destroy (detach from partners, release DOM...).

Returns ​

void

Inherited from ​

D3PAttachable.onDestroy


rangeOf() ​

ts
protected rangeOf(
   axis, 
   point, 
   system?, 
   cache?
): number | undefined;

Defined in: core/tools/base.ts:44

Position of point along axis, in the range units of its system (pixels for a cartesian axis, radians or distance to the center for a polar one). Not limited to the system, so a drag keeps working when the pointer leaves it. system defaults to the live one of the axis; a gesture that compares with its start passes the system of its snapshot.

Parameters ​

axis ​

D3PAxis

point ​

D3PViewportPoint

system? ​

D3PSystemProjector | undefined = ...

cache? ​

D3PProjectionCache

Returns ​

number | undefined


removeFromChart() ​

ts
removeFromChart(chart): void;

Defined in: core/object.ts:95

Detaches the object from a chart; nothing happens if it is not attached to it.

Parameters ​

chart ​

D3PChart

Returns ​

void

Inherited from ​

D3PAttachable.removeFromChart


render() ​

ts
render(_chart): void | Promise<void>;

Defined in: core/object.ts:129

Draws the object on a chart. The render manager calls it, once per frame, for the objects that asked for it.

Parameters ​

_chart ​

D3PChart

Returns ​

void | Promise<void>

Inherited from ​

D3PAttachable.render


requireArea() ​

ts
protected requireArea(chart): void;

Defined in: core/tools/base.ts:50

Ask for an interaction area (tools driven by the mouse need one).

Parameters ​

chart ​

D3PChart

Returns ​

void


resolveAxes() ​

ts
protected resolveAxes(chart): D3PAxis[];

Defined in: core/tools/base.ts:33

The axes the tool acts on: the ones it is restricted to, or all those of the chart.

Parameters ​

chart ​

D3PChart

Returns ​

D3PAxis[]


tagDirty() ​

ts
tagDirty(chart?): void;

Defined in: core/object.ts:119

Schedule a redraw on one chart (or all attached charts).

Parameters ​

chart? ​

D3PChart

Returns ​

void

Inherited from ​

D3PAttachable.tagDirty

Properties ​

axes ​

ts
readonly axes: D3PAxisFilter | undefined;

Defined in: core/tools/base.ts:25

The axes the tool is restricted to (objects or names), if any.


bus ​

ts
readonly bus: D3PBus;

Defined in: core/object.ts:27

The bus the object uses for its events.

Inherited from ​

D3PAttachable.bus


chartData ​

ts
protected readonly chartData: Map<D3PChart, D>;

Defined in: core/object.ts:66

What the object keeps for each chart it is attached to.

Inherited from ​

D3PAttachable.chartData


e ​

ts
readonly e: D3PEventTable<M & object>;

Defined in: core/object.ts:29

The events of the object, by name: destroyed for all, and its own (axis.e.scaleChanged).

Inherited from ​

D3PAttachable.e


isDestroying ​

ts
isDestroying: boolean = false;

Defined in: core/object.ts:31

Set when destroy starts: the object is not drawn after that.

Inherited from ​

D3PAttachable.isDestroying


name ​

ts
readonly name: string;

Defined in: core/tools/base.ts:27


subs ​

ts
protected readonly subs: D3PSubscriptions;

Defined in: core/object.ts:33

The subscriptions of the object, released when it is destroyed.

Inherited from ​

D3PAttachable.subs