UNPKG

understyle

Version:

Functional style utilities for authoring JavaScript style objects

64 lines (40 loc) 2.14 kB
'use strict'; 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;