UNPKG

7.22 kBJavaScriptView Raw
1'use strict';
2
3exports.__esModule = true;
4exports.default = undefined;
5
6var _extends4 = require('babel-runtime/helpers/extends');
7
8var _extends5 = _interopRequireDefault(_extends4);
9
10var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
11
12var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
13
14var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
15
16var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
17
18var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
19
20var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
21
22var _inherits2 = require('babel-runtime/helpers/inherits');
23
24var _inherits3 = _interopRequireDefault(_inherits2);
25
26var _class, _temp;
27
28var _react = require('react');
29
30var _react2 = _interopRequireDefault(_react);
31
32var _propTypes = require('prop-types');
33
34var _propTypes2 = _interopRequireDefault(_propTypes);
35
36var _classnames = require('classnames');
37
38var _classnames2 = _interopRequireDefault(_classnames);
39
40function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
41
42/**
43 * Grid.Row
44 * @order 1
45 */
46var Row = (_temp = _class = function (_Component) {
47 (0, _inherits3.default)(Row, _Component);
48
49 function Row() {
50 (0, _classCallCheck3.default)(this, Row);
51 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
52 }
53
54 Row.prototype.render = function render() {
55 var _extends2, _extends3;
56
57 /* eslint-disable no-unused-vars */
58 var _props = this.props,
59 prefix = _props.prefix,
60 pure = _props.pure,
61 wrap = _props.wrap,
62 fixed = _props.fixed,
63 gutter = _props.gutter,
64 fixedWidth = _props.fixedWidth,
65 align = _props.align,
66 justify = _props.justify,
67 hidden = _props.hidden,
68 className = _props.className,
69 Tag = _props.component,
70 children = _props.children,
71 rtl = _props.rtl,
72 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'pure', 'wrap', 'fixed', 'gutter', 'fixedWidth', 'align', 'justify', 'hidden', 'className', 'component', 'children', 'rtl']);
73 /* eslint-enable no-unused-vars */
74
75 var hiddenClassObj = void 0;
76 if (hidden === true) {
77 var _hiddenClassObj;
78
79 hiddenClassObj = (_hiddenClassObj = {}, _hiddenClassObj[prefix + 'row-hidden'] = true, _hiddenClassObj);
80 } else if (typeof hidden === 'string') {
81 var _hiddenClassObj2;
82
83 hiddenClassObj = (_hiddenClassObj2 = {}, _hiddenClassObj2[prefix + 'row-' + hidden + '-hidden'] = !!hidden, _hiddenClassObj2);
84 } else if (Array.isArray(hidden)) {
85 hiddenClassObj = hidden.reduce(function (ret, point) {
86 ret[prefix + 'row-' + point + '-hidden'] = !!point;
87 return ret;
88 }, {});
89 }
90
91 var newClassName = (0, _classnames2.default)((0, _extends5.default)((_extends2 = {}, _extends2[prefix + 'row'] = true, _extends2[prefix + 'row-wrap'] = wrap, _extends2[prefix + 'row-fixed'] = fixed, _extends2[prefix + 'row-fixed-' + fixedWidth] = !!fixedWidth, _extends2[prefix + 'row-justify-' + justify] = !!justify, _extends2[prefix + 'row-align-' + align] = !!align, _extends2), hiddenClassObj, (_extends3 = {}, _extends3[className] = !!className, _extends3)));
92
93 var newChildren = children;
94 var gutterNumber = parseInt(gutter, 10);
95 if (gutterNumber !== 0) {
96 var halfGutterString = gutterNumber / 2 + 'px';
97 others.style = (0, _extends5.default)({
98 marginLeft: '-' + halfGutterString,
99 marginRight: '-' + halfGutterString
100 }, others.style || {});
101 newChildren = _react.Children.map(children, function (child) {
102 if (child && child.type && typeof child.type === 'function' && child.type.isNextCol) {
103 var newChild = (0, _react.cloneElement)(child, {
104 style: (0, _extends5.default)({
105 paddingLeft: halfGutterString,
106 paddingRight: halfGutterString
107 }, child.style || {})
108 });
109 return newChild;
110 }
111
112 return child;
113 });
114 }
115
116 return _react2.default.createElement(
117 Tag,
118 (0, _extends5.default)({
119 dir: rtl ? 'rtl' : 'ltr',
120 role: 'row',
121 className: newClassName
122 }, others),
123 newChildren
124 );
125 };
126
127 return Row;
128}(_react.Component), _class.propTypes = {
129 prefix: _propTypes2.default.string,
130 pure: _propTypes2.default.bool,
131 rtl: _propTypes2.default.bool,
132 className: _propTypes2.default.string,
133 style: _propTypes2.default.object,
134 /**
135 * 行内容
136 */
137 children: _propTypes2.default.node,
138 /**
139 * 列间隔
140 */
141 gutter: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
142 /**
143 * 列在行中宽度溢出后是否换行
144 */
145 wrap: _propTypes2.default.bool,
146 /**
147 * 行在某一断点下宽度是否保持不变(默认行宽度随视口变化而变化)
148 */
149 fixed: _propTypes2.default.bool,
150 /**
151 * 固定行的宽度为某一断点的宽度,不受视口影响而变动
152 * @enumdesc 320px, 480px, 720px, 990px, 1200px, 1500px
153 */
154 fixedWidth: _propTypes2.default.oneOf(['xxs', 'xs', 's', 'm', 'l', 'xl']),
155 /**
156 * (不支持IE9浏览器)多列垂直方向对齐方式
157 * @enumdesc 顶部对齐, 居中对齐, 底部对齐, 按第一行文字基线对齐, 未设置高度或设为 auto,将占满整个容器的高度
158 */
159 align: _propTypes2.default.oneOf(['top', 'center', 'bottom', 'baseline', 'stretch']),
160 /**
161 * (不支持IE9浏览器)行内具有多余空间时的布局方式
162 * @enumdesc 左对齐, 居中对齐, 右对齐, 两端对齐,列之间间距相等, 每列具有相同的左右间距,行两端间距是列间距的二分之一
163 */
164 justify: _propTypes2.default.oneOf(['start', 'center', 'end', 'space-between', 'space-around']),
165 /**
166 * 行在不同断点下的显示与隐藏<br><br>**可选值**:<br>true(在所有断点下隐藏)<br>false(在所有断点下显示)<br>'xs'(在 xs 断点下隐藏)<br>['xxs', 'xs', 's', 'm', 'l', 'xl'](在 xxs, xs, s, m, l, xl 断点下隐藏)
167 */
168 hidden: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string, _propTypes2.default.array]),
169 /**
170 * 指定以何种元素渲染该节点
171 * - 默认为 'div'
172 */
173 component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func])
174}, _class.defaultProps = {
175 prefix: 'next-',
176 pure: false,
177 fixed: false,
178 gutter: 0,
179 wrap: false,
180 component: 'div'
181}, _temp);
182Row.displayName = 'Row';
183exports.default = Row;
184module.exports = exports['default'];
\No newline at end of file