Files
Webklar.com/node_modules/motion-dom/dist/es/effects/style/transform.mjs
Basilosaurusrex f027651f9b main repo
2025-11-24 18:09:40 +01:00

39 lines
1.2 KiB
JavaScript

import { transformPropOrder } from '../../render/utils/keys-transform.mjs';
const translateAlias = {
x: "translateX",
y: "translateY",
z: "translateZ",
transformPerspective: "perspective",
};
function buildTransform(state) {
let transform = "";
let transformIsDefault = true;
/**
* Loop over all possible transforms in order, adding the ones that
* are present to the transform string.
*/
for (let i = 0; i < transformPropOrder.length; i++) {
const key = transformPropOrder[i];
const value = state.latest[key];
if (value === undefined)
continue;
let valueIsDefault = true;
if (typeof value === "number") {
valueIsDefault = value === (key.startsWith("scale") ? 1 : 0);
}
else {
valueIsDefault = parseFloat(value) === 0;
}
if (!valueIsDefault) {
transformIsDefault = false;
const transformName = translateAlias[key] || key;
const valueToRender = state.latest[key];
transform += `${transformName}(${valueToRender}) `;
}
}
return transformIsDefault ? "none" : transform.trim();
}
export { buildTransform };