react-bootstrap
Version:
Bootstrap 3 components build with React
93 lines (73 loc) • 2.94 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _styleMaps = require('./styleMaps');
var _styleMaps2 = _interopRequireDefault(_styleMaps);
var Col = _react2['default'].createClass({
displayName: 'Col',
propTypes: {
xs: _react2['default'].PropTypes.number,
sm: _react2['default'].PropTypes.number,
md: _react2['default'].PropTypes.number,
lg: _react2['default'].PropTypes.number,
xsOffset: _react2['default'].PropTypes.number,
smOffset: _react2['default'].PropTypes.number,
mdOffset: _react2['default'].PropTypes.number,
lgOffset: _react2['default'].PropTypes.number,
xsPush: _react2['default'].PropTypes.number,
smPush: _react2['default'].PropTypes.number,
mdPush: _react2['default'].PropTypes.number,
lgPush: _react2['default'].PropTypes.number,
xsPull: _react2['default'].PropTypes.number,
smPull: _react2['default'].PropTypes.number,
mdPull: _react2['default'].PropTypes.number,
lgPull: _react2['default'].PropTypes.number,
componentClass: _react2['default'].PropTypes.node.isRequired
},
getDefaultProps: function getDefaultProps() {
return {
componentClass: 'div'
};
},
render: function render() {
var ComponentClass = this.props.componentClass;
var classes = {};
Object.keys(_styleMaps2['default'].SIZES).forEach(function (key) {
var size = _styleMaps2['default'].SIZES[key];
var prop = size;
var classPart = size + '-';
if (this.props[prop]) {
classes['col-' + classPart + this.props[prop]] = true;
}
prop = size + 'Offset';
classPart = size + '-offset-';
if (this.props[prop] >= 0) {
classes['col-' + classPart + this.props[prop]] = true;
}
prop = size + 'Push';
classPart = size + '-push-';
if (this.props[prop] >= 0) {
classes['col-' + classPart + this.props[prop]] = true;
}
prop = size + 'Pull';
classPart = size + '-pull-';
if (this.props[prop] >= 0) {
classes['col-' + classPart + this.props[prop]] = true;
}
}, this);
return _react2['default'].createElement(
ComponentClass,
_extends({}, this.props, { className: (0, _classnames2['default'])(this.props.className, classes) }),
this.props.children
);
}
});
exports['default'] = Col;
module.exports = exports['default'];