function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } /** * Copyright (c) Nicolas Gallagher. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * */ import normalizeValueWithProperty from './normalizeValueWithProperty'; import resolveShadowValue from './resolveShadowValue'; var defaultOffset = { height: 0, width: 0 }; function boxShadowReducer(resolvedStyle, style) { var boxShadow = style.boxShadow; var shadow = resolveShadowValue(style); if (shadow != null) { resolvedStyle.boxShadow = boxShadow ? boxShadow + ", " + shadow : shadow; } } function textShadowReducer(resolvedStyle, style) { var textShadowColor = style.textShadowColor, textShadowOffset = style.textShadowOffset, textShadowRadius = style.textShadowRadius; var _ref = textShadowOffset || defaultOffset, height = _ref.height, width = _ref.width; var radius = textShadowRadius || 0; var offsetX = normalizeValueWithProperty(width); var offsetY = normalizeValueWithProperty(height); var blurRadius = normalizeValueWithProperty(radius); var color = normalizeValueWithProperty(textShadowColor, 'textShadowColor'); if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) { resolvedStyle.textShadow = offsetX + " " + offsetY + " " + blurRadius + " " + color; } } var createCompileableStyle = function createCompileableStyle(styles) { var shadowColor = styles.shadowColor, shadowOffset = styles.shadowOffset, shadowOpacity = styles.shadowOpacity, shadowRadius = styles.shadowRadius, textShadowColor = styles.textShadowColor, textShadowOffset = styles.textShadowOffset, textShadowRadius = styles.textShadowRadius, nextStyles = _objectWithoutPropertiesLoose(styles, ["shadowColor", "shadowOffset", "shadowOpacity", "shadowRadius", "textShadowColor", "textShadowOffset", "textShadowRadius"]); if (shadowColor != null || shadowOffset != null || shadowOpacity != null || shadowRadius != null) { boxShadowReducer(nextStyles, styles); } if (textShadowColor != null || textShadowOffset != null || textShadowRadius != null) { textShadowReducer(nextStyles, styles); } return nextStyles; }; export default createCompileableStyle;