understyle
Version:
Functional style utilities for authoring JavaScript style objects
64 lines (40 loc) • 2.14 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createUnderstyle = undefined;
var _objectAssign = require('object-assign');
var _objectAssign2 = _interopRequireDefault(_objectAssign);
var _deepmerge = require('deepmerge');
var _deepmerge2 = _interopRequireDefault(_deepmerge);
var _defaultConfig = require('./default-config');
var _defaultConfig2 = _interopRequireDefault(_defaultConfig);
var _createStyle = require('./create-style');
var _createStyle2 = _interopRequireDefault(_createStyle);
var _convertShorthandProps = require('./convert-shorthand-props');
var _convertShorthandProps2 = _interopRequireDefault(_convertShorthandProps);
var _util = require('./util');
var _propTypes = require('./prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var createUnderstyle = exports.createUnderstyle = function createUnderstyle() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var colors = options.color ? { colors: (0, _util.flattenColors)(palx(color)) } : null;
var config = (0, _objectAssign2.default)({}, _defaultConfig2.default, options, colors);
return function () {
var rawProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var parsedProps = (0, _convertShorthandProps2.default)(config)(rawProps);
var styles = (0, _util.objToArr)(parsedProps).filter(function (prop) {
return _propTypes2.default[prop.key];
}).map((0, _createStyle2.default)(config)).filter(function (style) {
return style !== null;
});
var style = _deepmerge2.default.all([{}, { boxSizing: 'border-box' }].concat(_toConsumableArray(styles)));
return style;
};
};
var _style = function _style(props, options) {
return createUnderstyle(options)(props);
};
exports.default = _style;
;