Skip to content

Commit

Permalink
transition.remove() fix
Browse files Browse the repository at this point in the history
transition.remove() ought to work even when a delayed transition
was preempted by the current transition.
  • Loading branch information
robinhouston committed Apr 2, 2015
1 parent 3abb001 commit ac8bd3c
Show file tree
Hide file tree
Showing 9 changed files with 40 additions and 13 deletions.
2 changes: 1 addition & 1 deletion bower.json
@@ -1,6 +1,6 @@
{
"name": "d3",
"version": "3.5.5",
"version": "3.5.6-kiln",
"main": "d3.js",
"scripts": [
"d3.js"
Expand Down
2 changes: 1 addition & 1 deletion component.json
Expand Up @@ -10,7 +10,7 @@
"animation",
"canvas"
],
"version": "3.5.5",
"version": "3.5.6-kiln",
"main": "d3.js",
"scripts": [
"d3.js"
Expand Down
10 changes: 8 additions & 2 deletions d3.js
@@ -1,6 +1,6 @@
!function() {
var d3 = {
version: "3.5.5"
version: "3.5.6-kiln"
};
var d3_arraySlice = [].slice, d3_array = function(list) {
return d3_arraySlice.call(list);
Expand Down Expand Up @@ -8790,8 +8790,14 @@
d3_transitionPrototype.remove = function() {
var ns = this.namespace;
return this.each("end.transition", function() {
var lock = this[ns];
var p;
if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);
if (lock.count > 1) {
for (var n in lock) {
if (n.match(/^\d+$/) && parseInt(n) > lock.active) return;
}
}
if (p = this.parentNode) p.removeChild(this);
});
};
d3_transitionPrototype.ease = function(value) {
Expand Down
10 changes: 5 additions & 5 deletions d3.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.js
Expand Up @@ -3,7 +3,7 @@
Package.describe({
name: "d3js:d3", // http://atmospherejs.com/d3js/d3
summary: "D3 (official): A JavaScript visualization library for HTML and SVG.",
version: "3.5.5",
version: "3.5.6-kiln",
git: "https://github.com/mbostock/d3.git"
});

Expand Down
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "d3",
"version": "3.5.5",
"version": "3.5.6-kiln",
"description": "A JavaScript visualization library for HTML and SVG.",
"keywords": [
"dom",
Expand Down
2 changes: 1 addition & 1 deletion src/start.js
@@ -1,2 +1,2 @@
!function(){
var d3 = {version: "3.5.5"}; // semver
var d3 = {version: "3.5.6-kiln"}; // semver
8 changes: 7 additions & 1 deletion src/transition/remove.js
Expand Up @@ -3,7 +3,13 @@ import "transition";
d3_transitionPrototype.remove = function() {
var ns = this.namespace;
return this.each("end.transition", function() {
var lock = this[ns];
var p;
if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);
if (lock.count > 1) {
for (var n in lock) {
if (n.match(/^\d+$/) && parseInt(n) > lock.active) return;
}
}
if (p = this.parentNode) p.removeChild(this);
});
};
15 changes: 15 additions & 0 deletions test/transition/transition-test-remove.js
Expand Up @@ -53,5 +53,20 @@ module.exports = {
"does nothing": function(selection) {
assert.equal(selection[0][0].parentNode.tagName, "BODY");
}
},

"when a delayed transition has been preempted": {
"topic": function(d3) {
var callback = this.callback,
s = d3.select("body").append("div");
s.transition().delay(1000);
s.transition().duration(50).remove();
setTimeout(function() {
callback(null, s)
}, 100);
},
"the element is still removed": function(selection) {
assert.domEqual(selection[0][0].parentNode, null);
}
}
};

0 comments on commit ac8bd3c

Please sign in to comment.