constructor (parent, chartGroup) {
        super();

        this._select = undefined;
        this._promptText = 'Select all';
        this._multiple = false;
        this._promptValue = null;
        this._numberVisible = null;

        this.data(group => group.all().filter(this._filterDisplayed));

        this._filterDisplayed = d => this.valueAccessor()(d) > 0;

        this._order = (a, b) => {
            if (this.keyAccessor()(a) > this.keyAccessor()(b)) {
                return 1;
            }
            if (this.keyAccessor()(a) < this.keyAccessor()(b)) {
                return -1;
            }
            return 0;
        };

        this.anchor(parent, chartGroup);
    }
Create a Select Menu.
@example
// create a select menu under #select-container using the default global chart group
var select = new SelectMenu('#select-container')
               .dimension(states)
               .group(stateGroup);
// the option text can be set via the title() function
// by default the option text is '`key`: `value`'
select.title(function (d){
    return 'STATE: ' + d.key;
})
@param {String|node|d3.selection|CompositeChart} parent - Any valid
[d3 single selector](https://github.com/mbostock/d3/wiki/Selections#selecting-elements) 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 widget should be placed in.
Interaction with the widget will only trigger events and redraws within its group.