UNPKG

rsuite

Version:

A suite of react components

87 lines (64 loc) 3.05 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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var React = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _recompose = require("recompose"); var _prefix = _interopRequireDefault(require("./prefix")); var _extendReactStatics = _interopRequireDefault(require("./extendReactStatics")); var _constants = require("../constants"); var _refType = _interopRequireDefault(require("./refType")); function withStyleProps(options) { if (options === void 0) { options = {}; } return function (BaseComponent) { var _options = options, hasSize = _options.hasSize, hasStatus = _options.hasStatus, hasColor = _options.hasColor, defaultColor = _options.defaultColor; var WithStyleComponent = React.forwardRef(function (props, ref) { var _classNames; var classPrefix = props.classPrefix, size = props.size, color = props.color, status = props.status, className = props.className, rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["classPrefix", "size", "color", "status", "className"]); var addPrefix = (0, _prefix.default)(classPrefix); var classes = (0, _classnames.default)(className, (_classNames = {}, _classNames[addPrefix(size)] = hasSize && size, _classNames[addPrefix(color)] = hasColor && color, _classNames[addPrefix(defaultColor)] = !color, _classNames[addPrefix(status)] = hasStatus && status, _classNames)); return React.createElement(BaseComponent, (0, _extends2.default)({}, rest, { ref: ref, classPrefix: classPrefix, className: classes })); }); var propTypes = { innerRef: _refType.default }; if (hasSize) { propTypes.size = _propTypes.default.oneOf(_constants.SIZE); } if (hasColor) { propTypes.color = _propTypes.default.oneOf(_constants.COLOR); } if (hasStatus) { propTypes.status = _propTypes.default.oneOf(_constants.STATUS); } (0, _extendReactStatics.default)(WithStyleComponent, BaseComponent); (0, _recompose.setPropTypes)(propTypes)(WithStyleComponent); if (process.env.RUN_ENV === 'test') { return (0, _recompose.setDisplayName)((0, _recompose.wrapDisplayName)(BaseComponent, '__test__'))(WithStyleComponent); } return (0, _recompose.setDisplayName)((0, _recompose.wrapDisplayName)(BaseComponent, 'withStyleProps'))(WithStyleComponent); }; } var _default = withStyleProps; exports.default = _default; module.exports = exports.default;