Skip to content

Commit

Permalink
Merge branch 'release'
Browse files Browse the repository at this point in the history
  • Loading branch information
mbostock committed Aug 24, 2011
2 parents 2db0875 + c63abd7 commit 6c4c7d8
Show file tree
Hide file tree
Showing 18 changed files with 96 additions and 86 deletions.
68 changes: 26 additions & 42 deletions d3.js
@@ -1,4 +1,4 @@
(function(){d3 = {version: "2.0.0"}; // semver
(function(){d3 = {version: "2.0.1"}; // semver
if (!Date.now) Date.now = function() {
return +new Date;
};
Expand All @@ -7,24 +7,6 @@ if (!Object.create) Object.create = function(o) {
f.prototype = o;
return new f;
};
var d3_array = d3_arraySlice; // conversion for NodeLists

function d3_arrayCopy(pseudoarray) {
var i = -1, n = pseudoarray.length, array = [];
while (++i < n) array.push(pseudoarray[i]);
return array;
}

function d3_arraySlice(pseudoarray) {
return Array.prototype.slice.call(pseudoarray);
}

try {
d3_array(document.documentElement.childNodes)[0].nodeType;
} catch(e) {
d3_array = d3_arrayCopy;
}

var d3_arraySubclass = [].__proto__?

// Until ECMAScript supports array subclassing, prototype injection works well.
Expand Down Expand Up @@ -1207,15 +1189,15 @@ d3.select = function(selector) {
d3.selectAll = function(selector) {
return typeof selector === "string"
? d3_selectionRoot.selectAll(selector)
: d3_selection([d3_array(selector)]); // assume node[]
: d3_selection([selector]); // assume node[]
};
function d3_selection(groups) {
d3_arraySubclass(groups, d3_selectionPrototype);
return groups;
}

var d3_select = function(s, n) { return n.querySelector(s); },
d3_selectAll = function(s, n) { return d3_array(n.querySelectorAll(s)); };
d3_selectAll = function(s, n) { return n.querySelectorAll(s); };

// Prefer Sizzle, if available.
if (typeof Sizzle === "function") {
Expand Down Expand Up @@ -1247,7 +1229,7 @@ d3_selectionPrototype.select = function(selector) {
subgroup.parentNode = (group = this[j]).parentNode;
for (var i = -1, n = group.length; ++i < n;) {
if (node = group[i]) {
subgroup.push(subnode = selector(node));
subgroup.push(subnode = selector.call(node, node.__data__, i));
if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
} else {
subgroup.push(null);
Expand All @@ -1259,8 +1241,8 @@ d3_selectionPrototype.select = function(selector) {
};

function d3_selection_selector(selector) {
return function(node) {
return d3_select(selector, node);
return function() {
return d3_select(selector, this);
};
}
d3_selectionPrototype.selectAll = function(selector) {
Expand All @@ -1273,7 +1255,7 @@ d3_selectionPrototype.selectAll = function(selector) {
for (var j = -1, m = this.length; ++j < m;) {
for (var group = this[j], i = -1, n = group.length; ++i < n;) {
if (node = group[i]) {
subgroups.push(subgroup = selector(node));
subgroups.push(subgroup = selector.call(node, node.__data__, i));
subgroup.parentNode = node;
}
}
Expand All @@ -1283,8 +1265,8 @@ d3_selectionPrototype.selectAll = function(selector) {
};

function d3_selection_selectorAll(selector) {
return function(node) {
return d3_selectAll(selector, node);
return function() {
return d3_selectAll(selector, this);
};
}
d3_selectionPrototype.attr = function(name, value) {
Expand Down Expand Up @@ -1443,12 +1425,12 @@ d3_selectionPrototype.html = function(value) {
d3_selectionPrototype.append = function(name) {
name = d3.ns.qualify(name);

function append(node) {
return node.appendChild(document.createElement(name));
function append() {
return this.appendChild(document.createElement(name));
}

function appendNS(node) {
return node.appendChild(document.createElementNS(name.space, name.local));
function appendNS() {
return this.appendChild(document.createElementNS(name.space, name.local));
}

return this.select(name.local ? appendNS : append);
Expand All @@ -1459,16 +1441,16 @@ d3_selectionPrototype.append = function(name) {
d3_selectionPrototype.insert = function(name, before) {
name = d3.ns.qualify(name);

function insert(node) {
return node.insertBefore(
function insert() {
return this.insertBefore(
document.createElement(name),
d3_select(before, node));
d3_select(before, this));
}

function insertNS(node) {
return node.insertBefore(
function insertNS() {
return this.insertBefore(
document.createElementNS(name.space, name.local),
d3_select(before, node));
d3_select(before, this));
}

return this.select(name.local ? insertNS : insert);
Expand Down Expand Up @@ -1616,7 +1598,7 @@ d3_selection_enterPrototype.select = function(selector) {
subgroup.parentNode = group.parentNode;
for (var i = -1, n = group.length; ++i < n;) {
if (node = group[i]) {
subgroup.push(upgroup[i] = subnode = selector(group.parentNode));
subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
subnode.__data__ = node.__data__;
} else {
subgroup.push(null);
Expand Down Expand Up @@ -1865,7 +1847,7 @@ d3_transitionPrototype.select = function(selector) {
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]) && (subnode = selector(node.node))) {
if ((node = group[i]) && (subnode = selector.call(node.node, node.node.__data__, i))) {
if ("__data__" in node.node) subnode.__data__ = node.node.__data__;
subgroup.push({node: subnode, delay: node.delay, duration: node.duration});
} else {
Expand All @@ -1886,7 +1868,7 @@ d3_transitionPrototype.selectAll = function(selector) {
for (var j = -1, m = this.length; ++j < m;) {
for (var group = this[j], i = -1, n = group.length; ++i < n;) {
if (node = group[i]) {
subgroups.push(subgroup = selector(node.node));
subgroups.push(subgroup = selector.call(node.node, node.node.__data__, i));
for (var k = -1, o = subgroup.length; ++k < o;) {
subgroup[k] = {node: subgroup[k], delay: node.delay, duration: node.duration};
}
Expand Down Expand Up @@ -3401,7 +3383,7 @@ function d3_svg_mousePoint(container, e) {
};
d3.svg.touches = function(container) {
var touches = d3.event.touches;
return touches ? d3_array(touches).map(function(touch) {
return touches ? Array.prototype.map.call(touches, function(touch) {
var point = d3_svg_mousePoint(container, touch);
point.identifier = touch.identifier;
return point;
Expand Down Expand Up @@ -3727,6 +3709,7 @@ d3.behavior.drag = function() {

var d3_behavior_dragEvent,
d3_behavior_dragTarget,
d3_behavior_dragArguments,
d3_behavior_dragOffset,
d3_behavior_dragMoved,
d3_behavior_dragStopClick;
Expand Down Expand Up @@ -3772,7 +3755,7 @@ function d3_behavior_dragMove() {
function d3_behavior_dragUp() {
if (!d3_behavior_dragTarget) return;
d3_behavior_dragDispatch("dragend");
d3_behavior_dragForce = d3_behavior_dragTarget = null;
d3_behavior_dragTarget = null;

// If the node was moved, prevent the mouseup from propagating.
// Also prevent the subsequent click from propagating (e.g., for anchors).
Expand Down Expand Up @@ -3873,6 +3856,7 @@ var d3_behavior_zoomDiv,
d3_behavior_zoomDispatch,
d3_behavior_zoomTarget,
d3_behavior_zoomArguments,
d3_behavior_zoomMoved,
d3_behavior_zoomStopClick;

function d3_behavior_zoomLocation(point) {
Expand Down
4 changes: 2 additions & 2 deletions d3.min.js

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion src/behavior/drag.js
Expand Up @@ -37,6 +37,7 @@ d3.behavior.drag = function() {

var d3_behavior_dragEvent,
d3_behavior_dragTarget,
d3_behavior_dragArguments,
d3_behavior_dragOffset,
d3_behavior_dragMoved,
d3_behavior_dragStopClick;
Expand Down Expand Up @@ -82,7 +83,7 @@ function d3_behavior_dragMove() {
function d3_behavior_dragUp() {
if (!d3_behavior_dragTarget) return;
d3_behavior_dragDispatch("dragend");
d3_behavior_dragForce = d3_behavior_dragTarget = null;
d3_behavior_dragTarget = null;

// If the node was moved, prevent the mouseup from propagating.
// Also prevent the subsequent click from propagating (e.g., for anchors).
Expand Down
1 change: 1 addition & 0 deletions src/behavior/zoom.js
Expand Up @@ -78,6 +78,7 @@ var d3_behavior_zoomDiv,
d3_behavior_zoomDispatch,
d3_behavior_zoomTarget,
d3_behavior_zoomArguments,
d3_behavior_zoomMoved,
d3_behavior_zoomStopClick;

function d3_behavior_zoomLocation(point) {
Expand Down
18 changes: 0 additions & 18 deletions src/core/array.js
@@ -1,21 +1,3 @@
var d3_array = d3_arraySlice; // conversion for NodeLists

function d3_arrayCopy(pseudoarray) {
var i = -1, n = pseudoarray.length, array = [];
while (++i < n) array.push(pseudoarray[i]);
return array;
}

function d3_arraySlice(pseudoarray) {
return Array.prototype.slice.call(pseudoarray);
}

try {
d3_array(document.documentElement.childNodes)[0].nodeType;
} catch(e) {
d3_array = d3_arrayCopy;
}

var d3_arraySubclass = [].__proto__?

// Until ECMAScript supports array subclassing, prototype injection works well.
Expand Down
2 changes: 1 addition & 1 deletion src/core/core.js
@@ -1 +1 @@
d3 = {version: "2.0.0"}; // semver
d3 = {version: "2.0.1"}; // semver
2 changes: 1 addition & 1 deletion src/core/selectAll.js
@@ -1,5 +1,5 @@
d3.selectAll = function(selector) {
return typeof selector === "string"
? d3_selectionRoot.selectAll(selector)
: d3_selection([d3_array(selector)]); // assume node[]
: d3_selection([selector]); // assume node[]
};
8 changes: 4 additions & 4 deletions src/core/selection-append.js
Expand Up @@ -3,12 +3,12 @@
d3_selectionPrototype.append = function(name) {
name = d3.ns.qualify(name);

function append(node) {
return node.appendChild(document.createElement(name));
function append() {
return this.appendChild(document.createElement(name));
}

function appendNS(node) {
return node.appendChild(document.createElementNS(name.space, name.local));
function appendNS() {
return this.appendChild(document.createElementNS(name.space, name.local));
}

return this.select(name.local ? appendNS : append);
Expand Down
2 changes: 1 addition & 1 deletion src/core/selection-enter-select.js
Expand Up @@ -12,7 +12,7 @@ d3_selection_enterPrototype.select = function(selector) {
subgroup.parentNode = group.parentNode;
for (var i = -1, n = group.length; ++i < n;) {
if (node = group[i]) {
subgroup.push(upgroup[i] = subnode = selector(group.parentNode));
subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
subnode.__data__ = node.__data__;
} else {
subgroup.push(null);
Expand Down
12 changes: 6 additions & 6 deletions src/core/selection-insert.js
Expand Up @@ -4,16 +4,16 @@
d3_selectionPrototype.insert = function(name, before) {
name = d3.ns.qualify(name);

function insert(node) {
return node.insertBefore(
function insert() {
return this.insertBefore(
document.createElement(name),
d3_select(before, node));
d3_select(before, this));
}

function insertNS(node) {
return node.insertBefore(
function insertNS() {
return this.insertBefore(
document.createElementNS(name.space, name.local),
d3_select(before, node));
d3_select(before, this));
}

return this.select(name.local ? insertNS : insert);
Expand Down
6 changes: 3 additions & 3 deletions src/core/selection-select.js
Expand Up @@ -12,7 +12,7 @@ d3_selectionPrototype.select = function(selector) {
subgroup.parentNode = (group = this[j]).parentNode;
for (var i = -1, n = group.length; ++i < n;) {
if (node = group[i]) {
subgroup.push(subnode = selector(node));
subgroup.push(subnode = selector.call(node, node.__data__, i));
if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
} else {
subgroup.push(null);
Expand All @@ -24,7 +24,7 @@ d3_selectionPrototype.select = function(selector) {
};

function d3_selection_selector(selector) {
return function(node) {
return d3_select(selector, node);
return function() {
return d3_select(selector, this);
};
}
6 changes: 3 additions & 3 deletions src/core/selection-selectAll.js
Expand Up @@ -8,7 +8,7 @@ d3_selectionPrototype.selectAll = function(selector) {
for (var j = -1, m = this.length; ++j < m;) {
for (var group = this[j], i = -1, n = group.length; ++i < n;) {
if (node = group[i]) {
subgroups.push(subgroup = selector(node));
subgroups.push(subgroup = selector.call(node, node.__data__, i));
subgroup.parentNode = node;
}
}
Expand All @@ -18,7 +18,7 @@ d3_selectionPrototype.selectAll = function(selector) {
};

function d3_selection_selectorAll(selector) {
return function(node) {
return d3_selectAll(selector, node);
return function() {
return d3_selectAll(selector, this);
};
}
2 changes: 1 addition & 1 deletion src/core/selection.js
Expand Up @@ -4,7 +4,7 @@ function d3_selection(groups) {
}

var d3_select = function(s, n) { return n.querySelector(s); },
d3_selectAll = function(s, n) { return d3_array(n.querySelectorAll(s)); };
d3_selectAll = function(s, n) { return n.querySelectorAll(s); };

// Prefer Sizzle, if available.
if (typeof Sizzle === "function") {
Expand Down
2 changes: 1 addition & 1 deletion src/core/transition-select.js
Expand Up @@ -9,7 +9,7 @@ d3_transitionPrototype.select = function(selector) {
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]) && (subnode = selector(node.node))) {
if ((node = group[i]) && (subnode = selector.call(node.node, node.node.__data__, i))) {
if ("__data__" in node.node) subnode.__data__ = node.node.__data__;
subgroup.push({node: subnode, delay: node.delay, duration: node.duration});
} else {
Expand Down
2 changes: 1 addition & 1 deletion src/core/transition-selectAll.js
Expand Up @@ -8,7 +8,7 @@ d3_transitionPrototype.selectAll = function(selector) {
for (var j = -1, m = this.length; ++j < m;) {
for (var group = this[j], i = -1, n = group.length; ++i < n;) {
if (node = group[i]) {
subgroups.push(subgroup = selector(node.node));
subgroups.push(subgroup = selector.call(node.node, node.node.__data__, i));
for (var k = -1, o = subgroup.length; ++k < o;) {
subgroup[k] = {node: subgroup[k], delay: node.delay, duration: node.duration};
}
Expand Down
2 changes: 1 addition & 1 deletion src/svg/touches.js
@@ -1,6 +1,6 @@
d3.svg.touches = function(container) {
var touches = d3.event.touches;
return touches ? d3_array(touches).map(function(touch) {
return touches ? Array.prototype.map.call(touches, function(touch) {
var point = d3_svg_mousePoint(container, touch);
point.identifier = touch.identifier;
return point;
Expand Down

0 comments on commit 6c4c7d8

Please sign in to comment.