constructor (parent, chartGroup) {
        super();

        this._children = [];

        this._childOptions = {};

        this._shareColors = false;
        this._shareTitle = true;
        this._alignYAxes = false;

        this._rightYAxis = axisRight();
        this._rightYAxisLabel = 0;
        this._rightYAxisLabelPadding = DEFAULT_RIGHT_Y_AXIS_LABEL_PADDING;
        this._rightY = undefined;
        this._rightAxisGridLines = false;

        this._mandatoryAttributes([]);
        this.transitionDuration(500);
        this.transitionDelay(0);

        this.on('filtered.dcjs-composite-chart', chart => {
            // Propagate the filters onto the children
            // Notice that on children the call is .replaceFilter and not .filter
            //   the reason is that _chart.filter() returns the entire current set of filters not just the last added one
            for (let i = 0; i < this._children.length; ++i) {
                this._children[i].replaceFilter(this.filter());
            }
        });

        this.anchor(parent, chartGroup);
    }
Create a Composite Chart.
@example
// create a composite chart under #chart-container1 element using the default global chart group
var compositeChart1 = new CompositeChart('#chart-container1');
// create a composite chart under #chart-container2 element using chart group A
var compositeChart2 = new CompositeChart('#chart-container2', 'chartGroupA');
@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.