| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | 
							- // @flow
 - import React, { Component } from 'react';
 - 
 - import Tab from './Tab';
 - 
 - /**
 -  * The type of the React {@code Component} props of {@link Tabs}
 -  */
 - type Props = {
 - 
 -     /**
 -      * Handler for selecting the tab.
 -      */
 -     onSelect: Function,
 - 
 -     /**
 -      * The index of the selected tab.
 -      */
 -     selected: number,
 - 
 -     /**
 -      * Tabs information.
 -      */
 -     tabs: Object
 - };
 - 
 - /**
 -  * A React component that implements tabs.
 -  *
 -  */
 - export default class Tabs extends Component<Props> {
 -     static defaultProps = {
 -         tabs: [],
 -         selected: 0
 -     };
 - 
 -     /**
 -      * Implements the React Components's render method.
 -      *
 -      * @inheritdoc
 -      */
 -     render() {
 -         const { onSelect, selected, tabs } = this.props;
 -         const { content = null } = tabs.length
 -             ? tabs[Math.min(selected, tabs.length - 1)]
 -             : {};
 - 
 -         return (
 -             <div className = 'tab-container'>
 -                 <div className = 'tab-content'>
 -                     { content }
 -                 </div>
 -                 { tabs.length > 1 ? (
 -                     <div className = 'tab-buttons'>
 -                         {
 -                             tabs.map((tab, index) => (
 -                                 <Tab
 -                                     index = { index }
 -                                     isSelected = { index === selected }
 -                                     key = { index }
 -                                     label = { tab.label }
 -                                     onSelect = { onSelect } />
 -                             ))
 -                         }
 -                     </div>) : null
 -                 }
 -             </div>
 -         );
 -     }
 - }
 
 
  |