packages/odo-tabs/dist/odo-tabs.js
function Tabs(element) {
      classCallCheck(this, Tabs);

      /** @type {Element} */
      var _this = possibleConstructorReturn(this, _TinyEmitter.call(this));

      _this.element = element;

      /** @private {number} */
      _this._selectedIndex = -1;

      /**
       * List items, children of the tabs list.
       * @type {Array.<Element>}
       */
      _this.tabs = Array.from(_this.element.children);

      /**
       * Anchor elements inside the tab.
       * @type {Array.<HTMLAnchorElement>}
       */
      _this.anchors = _this.tabs.map(function (tab) {
        return tab.querySelector('a');
      });

      /**
       * Tab pane elements.
       * @type {Array.<HTMLElement>}
       */
      _this.panes = _this.anchors.map(function (anchor) {
        return document.getElementById(anchor.getAttribute('href').substring(1));
      });

      /**
       * Wrapper for the panes.
       * @type {HTMLElement}
       */
      _this.panesContainer = _this.panes[0].parentElement;

      /**
       * Get an array of [possible] hashes.
       * @type {Array.<?string>}
       */
      _this.hashes = _this.anchors.map(function (anchor) {
        return anchor.getAttribute('data-hash');
      });

      _this.init();
      return _this;
    }
function Tabs(element) {
      classCallCheck(this, Tabs);

      /** @type {Element} */
      var _this = possibleConstructorReturn(this, _TinyEmitter.call(this));

      _this.element = element;

      /** @private {number} */
      _this._selectedIndex = -1;

      /**
       * List items, children of the tabs list.
       * @type {Array.<Element>}
       */
      _this.tabs = Array.from(_this.element.children);

      /**
       * Anchor elements inside the tab.
       * @type {Array.<HTMLAnchorElement>}
       */
      _this.anchors = _this.tabs.map(function (tab) {
        return tab.querySelector('a');
      });

      /**
       * Tab pane elements.
       * @type {Array.<HTMLElement>}
       */
      _this.panes = _this.anchors.map(function (anchor) {
        return document.getElementById(anchor.getAttribute('href').substring(1));
      });

      /**
       * Wrapper for the panes.
       * @type {HTMLElement}
       */
      _this.panesContainer = _this.panes[0].parentElement;

      /**
       * Get an array of [possible] hashes.
       * @type {Array.<?string>}
       */
      _this.hashes = _this.anchors.map(function (anchor) {
        return anchor.getAttribute('data-hash');
      });

      _this.init();
      return _this;
    }
function Tabs ( element ) { classCallCheck ( this , Tabs ) ; /** @type {Element} */ var _this = possibleConstructorReturn ( this , _TinyEmitter . call ( this ) ) ; _this . element = element ; /** @private {number} */ _this . _selectedIndex = - 1 ; /**
       * List items, children of the tabs list.
       * @type {Array.<Element>}
       */ _this . tabs = Array . from ( _this . element . children ) ; /**
       * Anchor elements inside the tab.
       * @type {Array.<HTMLAnchorElement>}
       */ _this . anchors = _this . tabs . map ( function ( tab ) { return tab . querySelector ( 'a' ) ; } ) ; /**
       * Tab pane elements.
       * @type {Array.<HTMLElement>}
       */ _this . panes = _this . anchors . map ( function ( anchor ) { return document . getElementById ( anchor . getAttribute ( 'href' ) . substring ( 1 ) ) ; } ) ; /**
       * Wrapper for the panes.
       * @type {HTMLElement}
       */ _this . panesContainer = _this . panes [ 0 ] . parentElement ; /**
       * Get an array of [possible] hashes.
       * @type {Array.<?string>}
       */ _this . hashes = _this . anchors . map ( function ( anchor ) { return anchor . getAttribute ( 'data-hash' ) ; } ) ; _this . init ( ) ; return _this ; }
A tabs component.
@param {Element} element The tabs list element.
@constructor
A tabs component .