'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.autoprefix = undefined; var _forOwn2 = require('lodash/forOwn'); var _forOwn3 = _interopRequireDefault(_forOwn2); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var transforms = { borderRadius: function borderRadius(value) { return { msBorderRadius: value, MozBorderRadius: value, OBorderRadius: value, WebkitBorderRadius: value, borderRadius: value }; }, boxShadow: function boxShadow(value) { return { msBoxShadow: value, MozBoxShadow: value, OBoxShadow: value, WebkitBoxShadow: value, boxShadow: value }; }, userSelect: function userSelect(value) { return { WebkitTouchCallout: value, KhtmlUserSelect: value, MozUserSelect: value, msUserSelect: value, WebkitUserSelect: value, userSelect: value }; }, flex: function flex(value) { return { WebkitBoxFlex: value, MozBoxFlex: value, WebkitFlex: value, msFlex: value, flex: value }; }, flexBasis: function flexBasis(value) { return { WebkitFlexBasis: value, flexBasis: value }; }, justifyContent: function justifyContent(value) { return { WebkitJustifyContent: value, justifyContent: value }; }, transition: function transition(value) { return { msTransition: value, MozTransition: value, OTransition: value, WebkitTransition: value, transition: value }; }, transform: function transform(value) { return { msTransform: value, MozTransform: value, OTransform: value, WebkitTransform: value, transform: value }; }, absolute: function absolute(value) { var direction = value && value.split(' '); return { position: 'absolute', top: direction && direction[0], right: direction && direction[1], bottom: direction && direction[2], left: direction && direction[3] }; }, extend: function extend(name, otherElementStyles) { var otherStyle = otherElementStyles[name]; if (otherStyle) { return otherStyle; } return { 'extend': name }; } }; var autoprefix = exports.autoprefix = function autoprefix(elements) { var prefixed = {}; (0, _forOwn3.default)(elements, function (styles, element) { var expanded = {}; (0, _forOwn3.default)(styles, function (value, key) { var transform = transforms[key]; if (transform) { expanded = _extends({}, expanded, transform(value)); } else { expanded[key] = value; } }); prefixed[element] = expanded; }); return prefixed; }; exports.default = autoprefix;