constructor(element, tween) {
    this.element = selector(element);
    this.element.tween = tween;
    this.element.tween.toolbar = this.element;
    this.element.toolbar = this;
    [this.element.output] = this.element.parentNode.getElementsByTagName('OUTPUT');

    // invalidate
    if (!(this.element instanceof HTMLInputElement)) throw TypeError('Target element is not [HTMLInputElement]');
    if (this.element.type !== 'range') throw TypeError('Target element is not a range input');
    if (!(tween instanceof connect.tween)) throw TypeError(`tween parameter is not [${connect.tween}]`);

    this.element.setAttribute('value', 0);
    this.element.setAttribute('min', 0);
    this.element.setAttribute('max', 1);
    this.element.setAttribute('step', 0.0001);

    this.element.tween._onUpdate = this.updateBar;

    this.element.addEventListener('mousedown', this.downAction, false);
  }
@constructor
@param {HTMLElement} el target or string selector
@param {KUTE.Tween} multi when true returns an array of elements