-
Notifications
You must be signed in to change notification settings - Fork 76
/
Copy pathreact-simpletabs.min.js
10 lines (10 loc) · 3.2 KB
/
react-simpletabs.min.js
1
2
3
4
5
6
7
8
9
10
/*!
*
* React Simpletabs - Just a simple tabs component built with React
* @version v0.6.1
* @link https://github.com/pedronauck/react-simpletabs
* @license MIT
* @author Pedro Nauck (https://github.com/pedronauck)
*
*/
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ReactSimpleTabs=t(require("react")):e.ReactSimpleTabs=t(e.React)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var s=n[r]={exports:{},id:r,loaded:!1};return e[r].call(s.exports,s,s.exports,t),s.loaded=!0,s.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";var r=n(1),s=n(2);n(3);var i=r.createClass({displayName:"Tabs",propTypes:{className:r.PropTypes.oneOfType([r.PropTypes.array,r.PropTypes.string,r.PropTypes.object]),tabActive:r.PropTypes.number,onMount:r.PropTypes.func,onBeforeChange:r.PropTypes.func,onAfterChange:r.PropTypes.func,children:r.PropTypes.node.isRequired},getDefaultProps:function(){return{tabActive:1}},getInitialState:function(){return{tabActive:this.props.tabActive}},componentDidMount:function(){var e=this.state.tabActive,t=this.refs["tab-panel"],n=this.refs["tab-menu-"+e];this.props.onMount&&this.props.onMount(e,t,n)},componentWillReceiveProps:function(e){e.tabActive&&this.setState({tabActive:e.tabActive})},render:function(){var e=s("tabs",this.props.className);return r.createElement("div",{className:e},this._getMenuItems(),this._getSelectedPanel())},setActive:function(e,t){var n=this.props.onAfterChange,r=this.props.onBeforeChange,s=this.refs["tab-panel"],i=this.refs["tab-menu-"+e];if(r){var a=r(e,s,i);if(a===!1)return}this.setState({tabActive:e},function(){n&&n(e,s,i)}),t.preventDefault()},_getMenuItems:function(){if(!this.props.children)throw new Error("Tabs must contain at least one Tabs.Panel");var e=r.Children.map(this.props.children,function(e,t){"function"==typeof e&&(e=e());var n="tab-menu-"+(t+1),i=e.props.title,a=s("tabs-menu-item",this.state.tabActive===t+1&&"is-active");return r.createElement("li",{ref:n,key:t,className:a},r.createElement("a",{href:"#",onClick:this.setActive.bind(this,t+1)},i))}.bind(this));return r.createElement("nav",{className:"tabs-navigation"},r.createElement("ul",{className:"tabs-menu"},e))},_getSelectedPanel:function(){var e,t=this.state.tabActive-1;return r.Children.forEach(this.props.children,function(n,r){return t===r?void(e=n):void 0}),r.createElement("article",{ref:"tab-panel",className:"tab-panel"},e)}});i.Panel=r.createClass({displayName:"Panel",propTypes:{title:r.PropTypes.oneOfType([r.PropTypes.string,r.PropTypes.element]).isRequired,children:r.PropTypes.node.isRequired},render:function(){return r.createElement("div",null,this.props.children)}}),e.exports=i},function(t,n,r){t.exports=e},function(e,t,n){function r(){for(var e,t="",n=0;n<arguments.length;n++)if(e=arguments[n])if("string"==typeof e||"number"==typeof e)t+=" "+e;else if("[object Array]"===Object.prototype.toString.call(e))t+=" "+r.apply(null,e);else if("object"==typeof e)for(var s in e)e.hasOwnProperty(s)&&e[s]&&(t+=" "+s);return t.substr(1)}"undefined"!=typeof e&&e.exports&&(e.exports=r)},function(e,t,n){}])});