|
import * as is from '../is'; |
|
import * as util from '../util'; |
|
import Collection from '../collection'; |
|
import Element from '../collection/element'; |
|
|
|
let corefn = { |
|
add: function( opts ){ |
|
|
|
let elements; |
|
let cy = this; |
|
|
|
|
|
if( is.elementOrCollection( opts ) ){ |
|
let eles = opts; |
|
|
|
if( eles._private.cy === cy ){ |
|
elements = eles.restore(); |
|
|
|
} else { |
|
let jsons = []; |
|
|
|
for( let i = 0; i < eles.length; i++ ){ |
|
let ele = eles[ i ]; |
|
jsons.push( ele.json() ); |
|
} |
|
|
|
elements = new Collection( cy, jsons ); |
|
} |
|
} |
|
|
|
|
|
else if( is.array( opts ) ){ |
|
let jsons = opts; |
|
|
|
elements = new Collection( cy, jsons ); |
|
} |
|
|
|
|
|
else if( is.plainObject( opts ) && (is.array( opts.nodes ) || is.array( opts.edges )) ){ |
|
let elesByGroup = opts; |
|
let jsons = []; |
|
|
|
let grs = [ 'nodes', 'edges' ]; |
|
for( let i = 0, il = grs.length; i < il; i++ ){ |
|
let group = grs[ i ]; |
|
let elesArray = elesByGroup[ group ]; |
|
|
|
if( is.array( elesArray ) ){ |
|
|
|
for( let j = 0, jl = elesArray.length; j < jl; j++ ){ |
|
let json = util.extend( { group: group }, elesArray[ j ] ); |
|
|
|
jsons.push( json ); |
|
} |
|
} |
|
} |
|
|
|
elements = new Collection( cy, jsons ); |
|
} |
|
|
|
|
|
else { |
|
let json = opts; |
|
elements = (new Element( cy, json )).collection(); |
|
} |
|
|
|
return elements; |
|
}, |
|
|
|
remove: function( collection ){ |
|
if( is.elementOrCollection( collection ) ){ |
|
|
|
} else if( is.string( collection ) ){ |
|
let selector = collection; |
|
collection = this.$( selector ); |
|
} |
|
|
|
return collection.remove(); |
|
} |
|
}; |
|
|
|
export default corefn; |
|
|