backpack-ui
Version:
Lonely Planet's Components
45 lines (35 loc) • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _keys = require('babel-runtime/core-js/object/keys');
var _keys2 = _interopRequireDefault(_keys);
exports.default = function (configs) {
var styles = {};
(0, _keys2.default)(configs).map(function (key) {
var isTransform = TRANSFORMS.indexOf(key) > -1;
var value = Math.round(+configs[key] * 10000) / 10000;
if (isTransform) {
var transformProps = styles[TRANSFORM] || '';
if (UNIT_TRANSFORMS.indexOf(key) > -1) {
transformProps += key + '(' + value + 'px) ';
} else if (DEGREE_TRANFORMS.indexOf(key) > -1) {
transformProps += key + '(' + value + 'deg) ';
} else if (UNITLESS_TRANSFORMS.indexOf(key) > -1) {
transformProps += key + '(' + value + ') ';
}
styles[TRANSFORM] = transformProps;
} else {
styles[key] = value;
}
});
return styles;
};
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/* eslint-disable */
// https://github.com/souporserious/react-motion-ui-pack/blob/master/src/config-to-style.js
var TRANSFORM = require('./get-prefix')('transform');
var UNIT_TRANSFORMS = ['translateX', 'translateY', 'translateZ', 'transformPerspective'];
var DEGREE_TRANFORMS = ['rotate', 'rotateX', 'rotateY', 'rotateZ', 'skewX', 'skewY', 'scaleZ'];
var UNITLESS_TRANSFORMS = ['scale', 'scaleX', 'scaleY'];
var TRANSFORMS = UNIT_TRANSFORMS.concat(DEGREE_TRANFORMS, UNITLESS_TRANSFORMS);