87 lines
3.0 KiB
JavaScript
87 lines
3.0 KiB
JavaScript
"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; |