just-animate
Version:
_Making Animation Simple_
35 lines (34 loc) • 1.18 kB
JavaScript
import { _ } from '../utils/constants';
import { isDefined } from '../utils/inspect';
import { list } from '../utils/lists';
import { insert } from './insert';
export const append = (model, data, ctx) => {
const cursor = model.cursor;
const opts2 = list(data).map(opt => {
const { to, from, duration } = opt;
const hasTo = isDefined(to);
const hasFrom = isDefined(from);
const hasDuration = isDefined(duration);
const opt2 = opt;
opt2.to =
hasTo && (hasFrom || hasDuration)
? to
: hasDuration && hasFrom
? from + duration
: hasTo && !hasDuration
? cursor + to
: hasDuration
? cursor + duration
: _;
opt2.from =
hasFrom && (hasTo || hasDuration)
? from
: hasTo && hasDuration
? to - duration
: hasTo || hasDuration
? cursor
: _;
return opt2;
});
insert(model, opts2, ctx);
};