@omnimedia/omnitool
Version:
open source video processing tools
29 lines • 1.42 kB
JavaScript
import { animationPresets } from "./presets.js";
export function makeAnimationPresets(scalar, transform, transformFrom) {
const entries = Object.entries(animationPresets).map(([name, preset]) => {
const action = preset.type === "motion"
? (options) => {
const offset = options?.offset ?? 0;
return transform(options?.terp ?? preset.defaults.terp, [
[offset, transformFrom({
...preset.transform.from,
...(options?.from === undefined ? {} : { position: options.from }),
})],
[offset + (options?.duration ?? preset.defaults.duration), transformFrom({
...preset.transform.to,
...(options?.to === undefined ? {} : { position: options.to }),
})],
]);
}
: (options) => {
const offset = options?.offset ?? 0;
return scalar(options?.terp ?? preset.defaults.terp, [
[offset, options?.from ?? preset.defaults.from],
[offset + (options?.duration ?? preset.defaults.duration), options?.to ?? preset.defaults.to],
]);
};
return [name, action];
});
return Object.fromEntries(entries);
}
//# sourceMappingURL=make.js.map