d3-jsnext
Version:
d3, but futuristic
22 lines (19 loc) • 899 B
JavaScript
import { d3_transition, d3_transitionNode, d3_transitionInherit, d3_transitionNamespace, d3_transitionId, d3_transitionInheritId } from '../transition/transition';
import { d3_ease_cubicInOut } from '../interpolate/ease';
import { d3_selectionPrototype } from './selection';
d3_selectionPrototype.transition = function(name) {
var id = d3_transitionInheritId || ++d3_transitionId,
ns = d3_transitionNamespace(name),
subgroups = [],
subgroup,
node,
transition = d3_transitionInherit || {time: Date.now(), ease: d3_ease_cubicInOut, delay: 0, duration: 250};
for (var j = -1, m = this.length; ++j < m;) {
subgroups.push(subgroup = []);
for (var group = this[j], i = -1, n = group.length; ++i < n;) {
if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);
subgroup.push(node);
}
}
return d3_transition(subgroups, ns, id);
};