Interface BrushBehavior<Datum>

A D3 brush behavior

The generic refers to the type of the datum for the group element on which brush behavior is defined.

interface BrushBehavior {
    clear(group, event?): void;
    extent(): ValueFn<SVGGElement, Datum, [[number, number], [number, number]]>;
    extent(extent): BrushBehavior<Datum>;
    extent(extent): BrushBehavior<Datum>;
    filter(): ((this, event, d) => boolean);
    filter(filterFn): BrushBehavior<Datum>;
    handleSize(): number;
    handleSize(size): BrushBehavior<Datum>;
    keyModifiers(): boolean;
    keyModifiers(modifiers): BrushBehavior<Datum>;
    move(group, selection, event?): void;
    on(typenames): ((this, event, d) => void);
    on(typenames, listener): BrushBehavior<Datum>;
    on(typenames, listener): BrushBehavior<Datum>;
    touchable(): ValueFn<SVGGElement, Datum, boolean>;
    touchable(touchable): BrushBehavior<Datum>;
    touchable(touchable): BrushBehavior<Datum>;
    (group, ...args): void;
}

Type Parameters

  • Datum

  • Applies the brush to the specified group, which must be a selection of SVG G elements. This function is typically not invoked directly, and is instead invoked via selection.call.

    For details see: https://github.com/d3/d3-brush#_brush

    Parameters

    • group: Selection<SVGGElement, Datum, any, any>

      A D3 selection of SVG G elements.

    • Rest ...args: any[]

      Optional arguments to be passed in.

    Returns void

Methods

  • Clear the active selection of the brush on the specified SVG G element(s) selection.

    Parameters

    Returns void

  • Returns the current extent accessor.

    Returns ValueFn<SVGGElement, Datum, [[number, number], [number, number]]>

  • Set the brushable extent to the specified array of points and returns this brush.

    The brush extent determines the size of the invisible overlay and also constrains the brush selection; the brush selection cannot go outside the brush extent.

    Parameters

    • extent: [[number, number], [number, number]]

      array of points [[x0, y0], [x1, y1]], where [x0, y0] is the top-left corner and [x1, y1] is the bottom-right corner.

    Returns BrushBehavior<Datum>

  • Set the brushable extent to the specified array of points returned by the accessor function evaluated for each element in the selection/transition and returns this brush.

    The brush extent determines the size of the invisible overlay and also constrains the brush selection; the brush selection cannot go outside the brush extent.

    Parameters

    • extent: ValueFn<SVGGElement, Datum, [[number, number], [number, number]]>

      An extent accessor function which is evaluated for each selected element, in order, being passed the current datum (d), the current index (i), and the current group (nodes), with this as the current DOM element. The function returns an array of points [[x0, y0], [x1, y1]], where [x0, y0] is the top-left corner and [x1, y1] is the bottom-right corner.

    Returns BrushBehavior<Datum>

  • Returns the current filter function.

    Returns ((this, event, d) => boolean)

      • (this, event, d): boolean
      • Returns the current filter function.

        Parameters

        Returns boolean

  • Sets the filter to the specified filter function and returns the brush.

    If the filter returns falsey, the initiating event is ignored and no brush gesture is started. Thus, the filter determines which input events are ignored. The default filter ignores mousedown events on secondary buttons, since those buttons are typically intended for other purposes, such as the context menu.

    Parameters

    • filterFn: ((this, event, d) => boolean)

      A filter function which is evaluated for each selected element, in order, being passed the current event event and datum d, with the this context as the current DOM element. The function returns a boolean value.

        • (this, event, d): boolean
        • Parameters

          Returns boolean

    Returns BrushBehavior<Datum>

  • Returns the current handle size, which defaults to six.

    Returns number

  • Sets the size of the brush handles to the specified number and returns the brush.

    This method must be called before applying the brush to a selection; changing the handle size does not affect brushes that were previously rendered. The default size is 6.

    Parameters

    • size: number

      Size of the handle.

    Returns BrushBehavior<Datum>

  • Returns the current key modifiers flag.

    Returns boolean

  • Sets the key modifiers flag and returns the brush.

    The key modifiers flag determines whether the brush listens to key events during brushing. The default value is true.

    Parameters

    • modifiers: boolean

      New value for key modifiers flag.

    Returns BrushBehavior<Datum>

  • Clear the active selection of the brush on the specified SVG G element(s) selection.

    Parameters

    • group: Selection<SVGGElement, Datum, any, any> | TransitionLike<SVGGElement, Datum>

      A selection or a transition of SVG G elements

    • selection: BrushSelection | ValueFn<SVGGElement, Datum, BrushSelection>

      The selection must be defined as an array of numbers, or null to clear the brush selection. 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]. The selection may also be specified as a function which returns such an array; if a function, it is invoked for each selected element, being passed the current datum d and index i, with the this context as the current DOM element. The returned array defines the brush selection for that element.

    • Optional event: Event

    Returns void

  • Returns the first currently-assigned listener matching the specified typenames, if any.

    Parameters

    • typenames: string

      The typenames is a string containing one or more typename separated by whitespace. Each typename is a type, optionally followed by a period (.) and a name, such as "brush.foo"" and "brush.bar"; the name allows multiple listeners to be registered for the same type. The type must be one of the following: start (at the start of a brush gesture, such as on mousedown), brush (when the brush moves, such as on mousemove), or end (at the end of a brush gesture, such as on mouseup.)

    Returns ((this, event, d) => void)

      • (this, event, d): void
      • Parameters

        Returns void

  • Removes the current event listeners for the specified typenames, if any.

    Parameters

    • typenames: string

      The typenames is a string containing one or more typename separated by whitespace. Each typename is a type, optionally followed by a period (.) and a name, such as "brush.foo"" and "brush.bar"; the name allows multiple listeners to be registered for the same type. The type must be one of the following: start (at the start of a brush gesture, such as on mousedown), brush (when the brush moves, such as on mousemove), or end (at the end of a brush gesture, such as on mouseup.)

    • listener: null

      Use null to remove the listener.

    Returns BrushBehavior<Datum>

  • Sets the event listener for the specified typenames and returns the brush. If an event listener was already registered for the same type and name, the existing listener is removed before the new listener is added. When a specified event is dispatched, each listener will be invoked with the same context and arguments as selection.on listeners.

    Parameters

    • typenames: string

      The typenames is a string containing one or more typename separated by whitespace. Each typename is a type, optionally followed by a period (.) and a name, such as "brush.foo"" and "brush.bar"; the name allows multiple listeners to be registered for the same type. The type must be one of the following: start (at the start of a brush gesture, such as on mousedown), brush (when the brush moves, such as on mousemove), or end (at the end of a brush gesture, such as on mouseup.)

    • listener: ((this, event, d) => void)

      An event listener function which is evaluated for each selected element, in order, being passed the current event event and datum d, with the this context as the current DOM element.

        • (this, event, d): void
        • Parameters

          Returns void

    Returns BrushBehavior<Datum>

  • Returns the current touch support detector, which defaults to a function returning true, if the "ontouchstart" event is supported on the current element.

    Returns ValueFn<SVGGElement, Datum, boolean>

  • Sets the touch support detector to the specified boolean value and returns the brush.

    Touch event listeners are only registered if the detector returns truthy for the corresponding element when the brush is applied. The default detector works well for most browsers that are capable of touch input, but not all; Chrome’s mobile device emulator, for example, fails detection.

    Parameters

    • touchable: boolean

      A boolean value. true when touch event listeners should be applied to the corresponding element, otherwise false.

    Returns BrushBehavior<Datum>

  • Sets the touch support detector to the specified function and returns the drag behavior.

    Touch event listeners are only registered if the detector returns truthy for the corresponding element when the brush is applied. The default detector works well for most browsers that are capable of touch input, but not all; Chrome’s mobile device emulator, for example, fails detection.

    Parameters

    • touchable: ValueFn<SVGGElement, Datum, boolean>

      A touch support detector function, which returns true when touch event listeners should be applied to the corresponding element. The function is evaluated for each selected element to which the brush was applied, in order, being passed the current datum (d), the current index (i), and the current group (nodes), with this as the current DOM element. The function returns a boolean value.

    Returns BrushBehavior<Datum>