123456789101112131415161718192021222324252627282930313233 |
- define([], function () {
- return function (filter) {
- return function (data) {
- var n = Object.create(data)
- n.nodes = {}
- for (var key in data.nodes) {
- n.nodes[key] = data.nodes[key].filter(filter)
- }
- var filteredIds = new Set()
- n.graph = {}
- n.graph.nodes = data.graph.nodes.filter( function (d) {
- if (!d.node)
- return true
- var r = filter(d.node)
- if (r)
- filteredIds.add(d.id)
- return r
- })
- n.graph.links = data.graph.links.filter( function (d) {
- return filteredIds.has(d.source.id) && filteredIds.has(d.target.id)
- })
- return n
- }
- }
- })
|