UNPKG

motion

Version:

The Motion library for the web

37 lines (32 loc) 1.24 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var popmotion = require('popmotion'); var array = require('../../../../utils/array.cjs.js'); var getEasing = require('../../../js/utils/get-easing.cjs.js'); function eraseKeyframes(sequence, startTime, endTime) { for (let i = 0; i < sequence.length; i++) { const keyframe = sequence[i]; if (keyframe.at > startTime && keyframe.at < endTime) { array.removeItem(sequence, keyframe); // If we remove this item we have to push the pointer back one i--; } } } function addKeyframes(sequence, keyframes, easing, offset, startTime, endTime) { /** * Erase every existing value between currentTime and targetTime, * this will essentially splice this timeline into any currently * defined ones. */ eraseKeyframes(sequence, startTime, endTime); for (let i = 0; i < keyframes.length; i++) { sequence.push({ value: keyframes[i], at: popmotion.mix(startTime, endTime, offset[i]), easing: getEasing.getEasingForSegment(easing, i), }); } } exports.addKeyframes = addKeyframes; exports.eraseKeyframes = eraseKeyframes;