UNPKG

antd

Version:

An enterprise-class UI design language and React-based implementation

208 lines (173 loc) 8.03 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _extends4 = require('babel-runtime/helpers/extends'); var _extends5 = _interopRequireDefault(_extends4); var _typeof2 = require('babel-runtime/helpers/typeof'); var _typeof3 = _interopRequireDefault(_typeof2); var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck'); var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); var _createClass2 = require('babel-runtime/helpers/createClass'); var _createClass3 = _interopRequireDefault(_createClass2); var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn'); var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); var _inherits2 = require('babel-runtime/helpers/inherits'); var _inherits3 = _interopRequireDefault(_inherits2); var _react = require('react'); var React = _interopRequireWildcard(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _propTypes = require('prop-types'); var PropTypes = _interopRequireWildcard(_propTypes); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var __rest = undefined && undefined.__rest || function (s, e) { var t = {}; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; }if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]]; }return t; }; // matchMedia polyfill for // https://github.com/WickyNilliams/enquire.js/issues/82 var enquire = void 0; if (typeof window !== 'undefined') { var matchMediaPolyfill = function matchMediaPolyfill(mediaQuery) { return { media: mediaQuery, matches: false, addListener: function addListener() {}, removeListener: function removeListener() {} }; }; window.matchMedia = window.matchMedia || matchMediaPolyfill; enquire = require('enquire.js'); } var responsiveArray = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs']; var responsiveMap = { xs: '(max-width: 575px)', sm: '(min-width: 576px)', md: '(min-width: 768px)', lg: '(min-width: 992px)', xl: '(min-width: 1200px)', xxl: '(min-width: 1600px)' }; var Row = function (_React$Component) { (0, _inherits3['default'])(Row, _React$Component); function Row() { (0, _classCallCheck3['default'])(this, Row); var _this = (0, _possibleConstructorReturn3['default'])(this, (Row.__proto__ || Object.getPrototypeOf(Row)).apply(this, arguments)); _this.state = { screens: {} }; return _this; } (0, _createClass3['default'])(Row, [{ key: 'componentDidMount', value: function componentDidMount() { var _this2 = this; Object.keys(responsiveMap).map(function (screen) { return enquire.register(responsiveMap[screen], { match: function match() { if ((0, _typeof3['default'])(_this2.props.gutter) !== 'object') { return; } _this2.setState(function (prevState) { return { screens: (0, _extends5['default'])({}, prevState.screens, (0, _defineProperty3['default'])({}, screen, true)) }; }); }, unmatch: function unmatch() { if ((0, _typeof3['default'])(_this2.props.gutter) !== 'object') { return; } _this2.setState(function (prevState) { return { screens: (0, _extends5['default'])({}, prevState.screens, (0, _defineProperty3['default'])({}, screen, false)) }; }); }, // Keep a empty destory to avoid triggering unmatch when unregister destroy: function destroy() {} }); }); } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { Object.keys(responsiveMap).map(function (screen) { return enquire.unregister(responsiveMap[screen]); }); } }, { key: 'getGutter', value: function getGutter() { var gutter = this.props.gutter; if ((typeof gutter === 'undefined' ? 'undefined' : (0, _typeof3['default'])(gutter)) === 'object') { for (var i = 0; i <= responsiveArray.length; i++) { var breakpoint = responsiveArray[i]; if (this.state.screens[breakpoint] && gutter[breakpoint] !== undefined) { return gutter[breakpoint]; } } } return gutter; } }, { key: 'render', value: function render() { var _classNames; var _a = this.props, type = _a.type, justify = _a.justify, align = _a.align, className = _a.className, style = _a.style, children = _a.children, _a$prefixCls = _a.prefixCls, prefixCls = _a$prefixCls === undefined ? 'ant-row' : _a$prefixCls, others = __rest(_a, ["type", "justify", "align", "className", "style", "children", "prefixCls"]); var gutter = this.getGutter(); var classes = (0, _classnames2['default'])((_classNames = {}, (0, _defineProperty3['default'])(_classNames, prefixCls, !type), (0, _defineProperty3['default'])(_classNames, prefixCls + '-' + type, type), (0, _defineProperty3['default'])(_classNames, prefixCls + '-' + type + '-' + justify, type && justify), (0, _defineProperty3['default'])(_classNames, prefixCls + '-' + type + '-' + align, type && align), _classNames), className); var rowStyle = gutter > 0 ? (0, _extends5['default'])({ marginLeft: gutter / -2, marginRight: gutter / -2 }, style) : style; var cols = _react.Children.map(children, function (col) { if (!col) { return null; } if (col.props && gutter > 0) { return (0, _react.cloneElement)(col, { style: (0, _extends5['default'])({ paddingLeft: gutter / 2, paddingRight: gutter / 2 }, col.props.style) }); } return col; }); var otherProps = (0, _extends5['default'])({}, others); delete otherProps.gutter; return React.createElement( 'div', (0, _extends5['default'])({}, otherProps, { className: classes, style: rowStyle }), cols ); } }]); return Row; }(React.Component); exports['default'] = Row; Row.defaultProps = { gutter: 0 }; Row.propTypes = { type: PropTypes.string, align: PropTypes.string, justify: PropTypes.string, className: PropTypes.string, children: PropTypes.node, gutter: PropTypes.oneOfType([PropTypes.object, PropTypes.number]), prefixCls: PropTypes.string }; module.exports = exports['default'];