code: function MaterialLayoutTab(tab, tabs, panels, layout) {
  
      /**
       * Auxiliary method to programmatically select a tab in the UI.
       */
      function selectTab() {
        var href = tab.href.split('#')[1];
        var panel = layout.content_.querySelector('#' + href);
        layout.resetTabState_(tabs);
        layout.resetPanelState_(panels);
        tab.classList.add(layout.CssClasses_.IS_ACTIVE);
        panel.classList.add(layout.CssClasses_.IS_ACTIVE);
      }
  
      if (layout.tabBar_.classList.contains(
          layout.CssClasses_.JS_RIPPLE_EFFECT)) {
        var rippleContainer = document.createElement('span');
        rippleContainer.classList.add(layout.CssClasses_.RIPPLE_CONTAINER);
        rippleContainer.classList.add(layout.CssClasses_.JS_RIPPLE_EFFECT);
        var ripple = document.createElement('span');
        ripple.classList.add(layout.CssClasses_.RIPPLE);
        rippleContainer.appendChild(ripple);
        tab.appendChild(rippleContainer);
      }
  
      if (!layout.tabBar_.classList.contains(
        layout.CssClasses_.TAB_MANUAL_SWITCH)) {
        tab.addEventListener('click', function(e) {
          if (tab.getAttribute('href').charAt(0) === '#') {
            e.preventDefault();
            selectTab();
          }
        });
      }
  
      tab.show = selectTab;
    }
docs: Constructor for an individual tab.
  
  @constructor
  @param {HTMLElement} tab The HTML element for the tab.
  @param {!Array<HTMLElement>} tabs Array with HTML elements for all tabs.
  @param {!Array<HTMLElement>} panels Array with HTML elements for all panels.
  @param {MaterialLayout} layout The MaterialLayout object that owns the tab.