UNPKG

shineout

Version:

Shein 前端组件库

89 lines (70 loc) 2.54 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _styles = require("./styles"); var _support = _interopRequireDefault(require("./support")); var flexGapSupport = (0, _support.default)(); var DefaultProps = { row: 8, column: 8 }; var Gap = /*#__PURE__*/ function (_PureComponent) { (0, _inheritsLoose2.default)(Gap, _PureComponent); function Gap() { return _PureComponent.apply(this, arguments) || this; } var _proto = Gap.prototype; _proto.getStyle = function getStyle() { var _this$props = this.props, row = _this$props.row, column = _this$props.column, style = _this$props.style; var extendStyle = flexGapSupport ? { rowGap: row, columnGap: column } : { marginBottom: -Number(row) }; return Object.assign({}, style, extendStyle); }; _proto.getItemStyle = function getItemStyle(index) { var _this$props2 = this.props, row = _this$props2.row, column = _this$props2.column, itemStyle = _this$props2.itemStyle, children = _this$props2.children; if (flexGapSupport) return itemStyle; var isLast = _react.default.Children.count(children) - 1 === index; return Object.assign({}, itemStyle, { marginBottom: row }, !isLast && { marginRight: column }); }; _proto.render = function render() { var _this = this; var children = this.props.children; var className = (0, _classnames.default)((0, _styles.gapClass)('_'), this.props.className); return _react.default.createElement("div", { className: className, style: this.getStyle() }, _react.default.Children.map(children, function (child, index) { return child && _react.default.createElement("div", { className: (0, _styles.gapClass)('item'), style: _this.getItemStyle(index) }, child); })); }; return Gap; }(_react.PureComponent); (0, _defineProperty2.default)(Gap, "defaultProps", DefaultProps); var _default = Gap; exports.default = _default;