motion
Version:
The Motion library for the web
37 lines (32 loc) • 1.27 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var transforms = require('../../dom/utils/transforms.cjs.js');
function convertKeyframesToStyles(keyframes) {
const initialKeyframes = {};
const transformKeys = [];
for (let key in keyframes) {
const value = keyframes[key];
if (transforms.isTransform(key)) {
if (transforms.transformAlias[key])
key = transforms.transformAlias[key];
transformKeys.push(key);
key = transforms.asTransformCssVar(key);
}
let initialKeyframe = Array.isArray(value) ? value[0] : value;
/**
* If this is a number and we have a default value type, convert the number
* to this type.
*/
const definition = transforms.transformPropertyDefinitions.get(key);
if (definition) {
initialKeyframe =
typeof value === "number" ? definition.toDefaultUnit(value) : value;
}
initialKeyframes[key] = initialKeyframe;
}
if (transformKeys.length) {
initialKeyframes.transform = transforms.buildTransformTemplate(transformKeys);
}
return initialKeyframes;
}
exports.convertKeyframesToStyles = convertKeyframesToStyles;