25 lines
665 B
JavaScript
25 lines
665 B
JavaScript
import {STARTING, ENDING, ENDED} from "./transition/schedule";
|
|
|
|
export default function(node, name) {
|
|
var schedules = node.__transition,
|
|
schedule,
|
|
active,
|
|
empty = true,
|
|
i;
|
|
|
|
if (!schedules) return;
|
|
|
|
name = name == null ? null : name + "";
|
|
|
|
for (i in schedules) {
|
|
if ((schedule = schedules[i]).name !== name) { empty = false; continue; }
|
|
active = schedule.state > STARTING && schedule.state < ENDING;
|
|
schedule.state = ENDED;
|
|
schedule.timer.stop();
|
|
if (active) schedule.on.call("interrupt", node, node.__data__, schedule.index, schedule.group);
|
|
delete schedules[i];
|
|
}
|
|
|
|
if (empty) delete node.__transition;
|
|
}
|