| import "../selection/filter"; | |
| import "transition"; | |
| d3_transitionPrototype.filter = function(filter) { | |
| var subgroups = [], | |
| subgroup, | |
| group, | |
| node; | |
| if (typeof filter !== "function") filter = d3_selection_filter(filter); | |
| for (var j = 0, m = this.length; j < m; j++) { | |
| subgroups.push(subgroup = []); | |
| for (var group = this[j], i = 0, n = group.length; i < n; i++) { | |
| if ((node = group[i]) && filter.call(node, node.__data__, i, j)) { | |
| subgroup.push(node); | |
| } | |
| } | |
| } | |
| return d3_transition(subgroups, this.id); | |
| }; |