Expose transition id.
This commit is contained in:
Родитель
1704957cb0
Коммит
553bd4e36b
|
@ -1776,16 +1776,17 @@ function d3_selection_transition() {
|
|||
}
|
||||
}
|
||||
|
||||
return d3_transition(subgroups);
|
||||
return d3_transition(subgroups, d3_transitionInheritId || ++d3_transitionId);
|
||||
}
|
||||
function d3_transition(groups) {
|
||||
function d3_transition(groups, id) {
|
||||
d3_arraySubclass(groups, d3_transitionPrototype);
|
||||
|
||||
var id = d3_transitionInheritId || ++d3_transitionId,
|
||||
tweens = {},
|
||||
var tweens = {},
|
||||
event = d3.dispatch("start", "end"),
|
||||
ease = d3_transitionEase;
|
||||
|
||||
groups.id = id;
|
||||
|
||||
groups.tween = function(name, tween) {
|
||||
if (arguments.length < 2) return tweens[name];
|
||||
if (tween == null) delete tweens[name];
|
||||
|
@ -1914,7 +1915,7 @@ function d3_transition_select(selector) {
|
|||
}
|
||||
}
|
||||
|
||||
return d3_transition(subgroups).ease(this.ease());
|
||||
return d3_transition(subgroups, this.id).ease(this.ease());
|
||||
}
|
||||
function d3_transition_selectAll(selector) {
|
||||
var subgroups = [],
|
||||
|
@ -1934,7 +1935,7 @@ function d3_transition_selectAll(selector) {
|
|||
}
|
||||
}
|
||||
|
||||
return d3_transition(subgroups).ease(this.ease());
|
||||
return d3_transition(subgroups, this.id).ease(this.ease());
|
||||
}
|
||||
function d3_transition_attr(name, value) {
|
||||
return this.attrTween(name, d3_transitionTween(value));
|
||||
|
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -10,5 +10,5 @@ function d3_selection_transition() {
|
|||
}
|
||||
}
|
||||
|
||||
return d3_transition(subgroups);
|
||||
return d3_transition(subgroups, d3_transitionInheritId || ++d3_transitionId);
|
||||
}
|
||||
|
|
|
@ -18,5 +18,5 @@ function d3_transition_select(selector) {
|
|||
}
|
||||
}
|
||||
|
||||
return d3_transition(subgroups).ease(this.ease());
|
||||
return d3_transition(subgroups, this.id).ease(this.ease());
|
||||
}
|
||||
|
|
|
@ -16,5 +16,5 @@ function d3_transition_selectAll(selector) {
|
|||
}
|
||||
}
|
||||
|
||||
return d3_transition(subgroups).ease(this.ease());
|
||||
return d3_transition(subgroups, this.id).ease(this.ease());
|
||||
}
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
function d3_transition(groups) {
|
||||
function d3_transition(groups, id) {
|
||||
d3_arraySubclass(groups, d3_transitionPrototype);
|
||||
|
||||
var id = d3_transitionInheritId || ++d3_transitionId,
|
||||
tweens = {},
|
||||
var tweens = {},
|
||||
event = d3.dispatch("start", "end"),
|
||||
ease = d3_transitionEase;
|
||||
|
||||
groups.id = id;
|
||||
|
||||
groups.tween = function(name, tween) {
|
||||
if (arguments.length < 2) return tweens[name];
|
||||
if (tween == null) delete tweens[name];
|
||||
|
|
|
@ -36,7 +36,8 @@ module.exports = {
|
|||
context: context,
|
||||
data: data,
|
||||
index: index,
|
||||
count: count
|
||||
count: count,
|
||||
id: transition.id
|
||||
});
|
||||
});
|
||||
},
|
||||
|
@ -66,7 +67,7 @@ module.exports = {
|
|||
},
|
||||
|
||||
"sets an exclusive lock on transitioning nodes": function(result) {
|
||||
var id = result.selection[0][0].__transition__.owner;
|
||||
var id = result.id;
|
||||
assert.isTrue(id > 0);
|
||||
assert.equal(result.selection[0][0].__transition__.owner, id);
|
||||
assert.equal(result.selection[0][1].__transition__.owner, id);
|
||||
|
@ -87,13 +88,7 @@ module.exports = {
|
|||
data = [],
|
||||
index = [],
|
||||
count = [],
|
||||
delay = [],
|
||||
id;
|
||||
|
||||
// A callback to grab the transition id.
|
||||
transition.each("start", function() {
|
||||
id = this.__transition__.active;
|
||||
});
|
||||
delay = [];
|
||||
|
||||
// A callback to verify that multiple callbacks are allowed.
|
||||
transition.each("end", function() {
|
||||
|
@ -114,7 +109,7 @@ module.exports = {
|
|||
data: data,
|
||||
index: index,
|
||||
count: count,
|
||||
id: id
|
||||
id: transition.id
|
||||
});
|
||||
});
|
||||
},
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
require("../env");
|
||||
require("../../d3");
|
||||
|
||||
var assert = require("assert");
|
||||
|
||||
module.exports = {
|
||||
topic: function() {
|
||||
return d3.select("body").append("div").transition();
|
||||
},
|
||||
"has a positive integer id": function(transition) {
|
||||
var id = transition.id;
|
||||
assert.isTrue(id > 0);
|
||||
assert.equal(~~id, id);
|
||||
},
|
||||
"increases monotonically across transitions": function(transition) {
|
||||
var t0 = d3.select("body").append("div").transition(),
|
||||
t1 = d3.select("body").append("div").transition();
|
||||
assert.isTrue(t1.id > t0.id);
|
||||
}
|
||||
};
|
|
@ -52,5 +52,12 @@ module.exports = {
|
|||
"returns null if no match is found": function(transition) {
|
||||
var t = transition.select("span");
|
||||
assert.isNull(t[0][0]);
|
||||
},
|
||||
"inherits transition id": function(transition) {
|
||||
var id = transition.id,
|
||||
t0 = transition.select("span"),
|
||||
t1 = transition.select("span");
|
||||
assert.equal(t0.id, id);
|
||||
assert.equal(t1.id, id);
|
||||
}
|
||||
};
|
||||
|
|
|
@ -44,5 +44,12 @@ module.exports = {
|
|||
"returns empty if no match is found": function(transition) {
|
||||
var t = transition.selectAll("span");
|
||||
assert.isEmpty(t[0]);
|
||||
},
|
||||
"inherits transition id": function(transition) {
|
||||
var id = transition.id,
|
||||
t0 = transition.selectAll("span"),
|
||||
t1 = transition.selectAll("span");
|
||||
assert.equal(t0.id, id);
|
||||
assert.equal(t1.id, id);
|
||||
}
|
||||
};
|
||||
|
|
|
@ -43,7 +43,8 @@ suite.addBatch({
|
|||
// Control
|
||||
"each": require("./transition-test-each"),
|
||||
"call": require("./transition-test-call"),
|
||||
"tween": require("./transition-test-tween")
|
||||
"tween": require("./transition-test-tween"),
|
||||
"id": require("./transition-test-id")
|
||||
|
||||
});
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче