constructor (parent, chartGroup) {
        super();

        /**
         * **mandatory**
         *
         * Set the underlying svg image element. Unlike other dc charts this chart will not generate a svg
         * element; therefore the bubble overlay chart will not work if this function is not invoked. If the
         * underlying image is a bitmap, then an empty svg will need to be created on top of the image.
         * @example
         * // set up underlying svg element
         * chart.svg(d3.select('#chart svg'));
         * @param {SVGElement|d3.selection} [imageElement]
         * @returns {BubbleOverlay}
         */
        this._g = undefined;
        this._points = [];
        this._keyboardAccessible = false;

        this.transitionDuration(750);

        this.transitionDelay(0);

        this.radiusValueAccessor(d => d.value);

        this.anchor(parent, chartGroup);
    }
Create a Bubble Overlay.

@example
// create a bubble overlay chart on top of the '#chart-container1 svg' element using the default global chart group
var bubbleChart1 = BubbleOverlayChart('#chart-container1').svg(d3.select('#chart-container1 svg'));
// create a bubble overlay chart on top of the '#chart-container2 svg' element using chart group A
var bubbleChart2 = new CompositeChart('#chart-container2', 'chartGroupA').svg(d3.select('#chart-container2 svg'));
@param {String|node|d3.selection} parent - Any valid
{@link https://github.com/d3/d3-selection/blob/master/README.md#select d3 single selector} specifying
a dom block element such as a div; or a dom element or d3 selection.
@param {String} [chartGroup] - The name of the chart group this chart instance should be placed in.
Interaction with a chart will only trigger events and redraws within the chart's group.