import “../core/array”; import “../core/document”; import “../core/subclass”; import “../core/vendor”;
function d3_selection(groups) {
d3_subclass(groups, d3_selectionPrototype); return groups;
}
var d3_select = function(s, n) { return n.querySelector(s); },
d3_selectAll = function(s, n) { return n.querySelectorAll(s); }, d3_selectMatcher = d3_documentElement[d3_vendorSymbol(d3_documentElement, "matchesSelector")], d3_selectMatches = function(n, s) { return d3_selectMatcher.call(n, s); };
// Prefer Sizzle, if available. if (typeof Sizzle === “function”) {
d3_select = function(s, n) { return Sizzle(s, n)[0] || null; }; d3_selectAll = function(s, n) { return Sizzle.uniqueSort(Sizzle(s, n)); }; d3_selectMatches = Sizzle.matchesSelector;
}
d3.selection = function() {
return d3_selectionRoot;
};
var d3_selectionPrototype = d3.selection.prototype = [];
import “select”; import “selectAll”; import “attr”; import “classed”; import “style”; import “property”; import “text”; import “html”; import “append”; import “insert”; import “remove”; import “data”; import “datum”; import “filter”; import “order”; import “sort”; import “on”; import “each”; import “call”; import “empty”; import “node”; import “size”; import “enter”; import “transition”;
// TODO fast singleton implementation? d3.select = function(node) {
var group = [typeof node === "string" ? d3_select(node, d3_document) : node]; group.parentNode = d3_documentElement; return d3_selection([group]);
};
d3.selectAll = function(nodes) {
var group = d3_array(typeof nodes === "string" ? d3_selectAll(nodes, d3_document) : nodes); group.parentNode = d3_documentElement; return d3_selection([group]);
};
var d3_selectionRoot = d3.select(d3_documentElement);