1 | import Selector from '../selector';
|
2 |
|
3 | let elesfn = ({
|
4 | allAre: function( selector ){
|
5 | let selObj = new Selector( selector );
|
6 |
|
7 | return this.every(function( ele ){
|
8 | return selObj.matches( ele );
|
9 | });
|
10 | },
|
11 |
|
12 | is: function( selector ){
|
13 | let selObj = new Selector( selector );
|
14 |
|
15 | return this.some(function( ele ){
|
16 | return selObj.matches( ele );
|
17 | });
|
18 | },
|
19 |
|
20 | some: function( fn, thisArg ){
|
21 | for( let i = 0; i < this.length; i++ ){
|
22 | let ret = !thisArg ? fn( this[ i ], i, this ) : fn.apply( thisArg, [ this[ i ], i, this ] );
|
23 |
|
24 | if( ret ){
|
25 | return true;
|
26 | }
|
27 | }
|
28 |
|
29 | return false;
|
30 | },
|
31 |
|
32 | every: function( fn, thisArg ){
|
33 | for( let i = 0; i < this.length; i++ ){
|
34 | let ret = !thisArg ? fn( this[ i ], i, this ) : fn.apply( thisArg, [ this[ i ], i, this ] );
|
35 |
|
36 | if( !ret ){
|
37 | return false;
|
38 | }
|
39 | }
|
40 |
|
41 | return true;
|
42 | },
|
43 |
|
44 | same: function( collection ){
|
45 |
|
46 | if( this === collection ){ return true; }
|
47 |
|
48 | collection = this.cy().collection( collection );
|
49 |
|
50 | let thisLength = this.length;
|
51 | let collectionLength = collection.length;
|
52 |
|
53 |
|
54 | if( thisLength !== collectionLength ){ return false; }
|
55 |
|
56 |
|
57 | if( thisLength === 1 ){ return this[0] === collection[0]; }
|
58 |
|
59 | return this.every(function( ele ){
|
60 | return collection.hasElementWithId( ele.id() );
|
61 | });
|
62 | },
|
63 |
|
64 | anySame: function( collection ){
|
65 | collection = this.cy().collection( collection );
|
66 |
|
67 | return this.some(function( ele ){
|
68 | return collection.hasElementWithId( ele.id() );
|
69 | });
|
70 | },
|
71 |
|
72 | allAreNeighbors: function( collection ){
|
73 | collection = this.cy().collection( collection );
|
74 |
|
75 | let nhood = this.neighborhood();
|
76 |
|
77 | return collection.every(function( ele ){
|
78 | return nhood.hasElementWithId( ele.id() );
|
79 | });
|
80 | },
|
81 |
|
82 | contains: function( collection ){
|
83 | collection = this.cy().collection( collection );
|
84 |
|
85 | let self = this;
|
86 |
|
87 | return collection.every(function( ele ){
|
88 | return self.hasElementWithId( ele.id() );
|
89 | });
|
90 | }
|
91 | });
|
92 |
|
93 | elesfn.allAreNeighbours = elesfn.allAreNeighbors;
|
94 | elesfn.has = elesfn.contains;
|
95 | elesfn.equal = elesfn.equals = elesfn.same;
|
96 |
|
97 | export default elesfn;
|