49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
|
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
|
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
|
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
|
var _merge = _interopRequireDefault(require("./merge"));
|
|
|
|
function omit(input, fields) {
|
|
var output = {};
|
|
Object.keys(input).forEach(function (prop) {
|
|
if (fields.indexOf(prop) === -1) {
|
|
output[prop] = input[prop];
|
|
}
|
|
});
|
|
return output;
|
|
}
|
|
|
|
function css(styleFunction) {
|
|
var newStyleFunction = function newStyleFunction(props) {
|
|
var output = styleFunction(props);
|
|
|
|
if (props.css) {
|
|
return (0, _extends2.default)({}, (0, _merge.default)(output, styleFunction((0, _extends2.default)({
|
|
theme: props.theme
|
|
}, props.css))), {}, omit(props.css, [styleFunction.filterProps]));
|
|
}
|
|
|
|
return output;
|
|
};
|
|
|
|
newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? (0, _extends2.default)({}, styleFunction.propTypes, {
|
|
css: _propTypes.default.object
|
|
}) : {};
|
|
newStyleFunction.filterProps = ['css'].concat((0, _toConsumableArray2.default)(styleFunction.filterProps));
|
|
return newStyleFunction;
|
|
}
|
|
|
|
var _default = css;
|
|
exports.default = _default; |