UNPKG

@alifd/next

Version:

A configurable component library for web built on React.

90 lines (89 loc) 5.47 kB
import { __assign, __extends, __rest } from "tslib"; import React, { Component } from 'react'; import PropTypes from 'prop-types'; import cx from 'classnames'; import ConfigProvider from '../config-provider'; import { obj } from '../util'; var breakPoints = ['xxs', 'xs', 's', 'm', 'l', 'xl']; /** * Grid.Col * @order 2 */ var Col = /** @class */ (function (_super) { __extends(Col, _super); function Col() { return _super !== null && _super.apply(this, arguments) || this; } Col.prototype.render = function () { var _a, _b, _c, _d; var _this = this; var _e = this.props, prefix = _e.prefix, pure = _e.pure, span = _e.span, offset = _e.offset, fixedSpan = _e.fixedSpan, fixedOffset = _e.fixedOffset, hidden = _e.hidden, align = _e.align, xxs = _e.xxs, xs = _e.xs, s = _e.s, m = _e.m, l = _e.l, xl = _e.xl, component = _e.component, className = _e.className, children = _e.children, rtl = _e.rtl, others = __rest(_e, ["prefix", "pure", "span", "offset", "fixedSpan", "fixedOffset", "hidden", "align", "xxs", "xs", "s", "m", "l", "xl", "component", "className", "children", "rtl"]); var domOtherProps = obj.pickOthers(Col.propTypes, others); var Tag = component; var pointClassObj = breakPoints.reduce(function (ret, point) { var pointProps = {}; var pointValue = _this.props[point]; if (typeof pointValue === 'object' && pointValue !== null) { pointProps = pointValue; } else { pointProps.span = pointValue; } ret["".concat(prefix, "col-").concat(point, "-").concat(pointProps.span)] = !!pointProps.span; ret["".concat(prefix, "col-").concat(point, "-offset-").concat(pointProps.offset)] = !!pointProps.offset; return ret; }, {}); var hiddenClassObj = {}; if (hidden === true) { hiddenClassObj = (_a = {}, _a["".concat(prefix, "col-hidden")] = true, _a); } else if (typeof hidden === 'string') { hiddenClassObj = (_b = {}, _b["".concat(prefix, "col-").concat(hidden, "-hidden")] = !!hidden, _b); } else if (Array.isArray(hidden)) { hiddenClassObj = hidden.reduce(function (ret, point) { ret["".concat(prefix, "col-").concat(point, "-hidden")] = !!point; return ret; }, {}); } var classes = cx(__assign(__assign(__assign((_c = {}, _c["".concat(prefix, "col")] = true, _c["".concat(prefix, "col-").concat(span)] = !!span, _c["".concat(prefix, "col-fixed-").concat(fixedSpan)] = !!fixedSpan, _c["".concat(prefix, "col-offset-").concat(offset)] = !!offset, _c["".concat(prefix, "col-offset-fixed-").concat(fixedOffset)] = !!fixedOffset, _c["".concat(prefix, "col-").concat(align)] = !!align, _c), pointClassObj), hiddenClassObj), (_d = {}, _d[className] = !!className, _d))); return (React.createElement(Tag, __assign({ dir: rtl ? 'rtl' : 'ltr', role: "gridcell", className: classes }, domOtherProps), children)); }; Col.isNextCol = true; Col.propTypes = __assign(__assign({}, ConfigProvider.propTypes), { prefix: PropTypes.string, pure: PropTypes.bool, rtl: PropTypes.bool, className: PropTypes.string, /** * 列内容 */ children: PropTypes.node, /** * 列宽度<br><br>**可选值**:<br>1, 2, 3, ..., 22, 23, 24 */ span: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), /** * 固定列宽度,宽度值为20 * 栅格数<br><br>**可选值**:<br>1, 2, 3, ..., 28, 29, 30 */ fixedSpan: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), /** * (不支持IE9浏览器)列偏移<br><br>**可选值**:<br>1, 2, 3, ..., 22, 23, 24 */ offset: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), /** * (不支持IE9浏览器)固定列偏移,宽度值为20 * 栅格数<br><br>**可选值**:<br>1, 2, 3, ..., 28, 29, 30 */ fixedOffset: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), /** * (不支持IE9浏览器)多列垂直方向对齐方式,可覆盖Row的align属性 */ align: PropTypes.oneOf(['top', 'center', 'bottom', 'baseline', 'stretch']), /** * 列在不同断点下的显示与隐藏<br><br>**可选值**:<br>true(在所有断点下隐藏)<br>false(在所有断点下显示)<br>'xs'(在 xs 断点下隐藏)<br>['xxs', 'xs', 's', 'm', 'l', 'xl'](在 xxs, xs, s, m, l, xl 断点下隐藏) */ hidden: PropTypes.oneOfType([PropTypes.bool, PropTypes.string, PropTypes.array]), xxs: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]), xs: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]), s: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]), m: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]), l: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]), xl: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]), component: PropTypes.oneOfType([PropTypes.string, PropTypes.func]) }); Col.defaultProps = { prefix: 'next-', pure: false, component: 'div', }; return Col; }(Component)); export default Col;