import {STARTING, ENDING, ENDED} from "./transition/schedule.js"; | |
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(); | |
schedule.on.call(active ? "interrupt" : "cancel", node, node.__data__, schedule.index, schedule.group); | |
delete schedules[i]; | |
} | |
if (empty) delete node.__transition; | |
} | |