mirror of https://github.com/ghostfolio/ghostfolio
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.2 KiB
97 lines
2.2 KiB
import Selector from '../selector/index.mjs';
|
|
|
|
let elesfn = ({
|
|
allAre: function( selector ){
|
|
let selObj = new Selector( selector );
|
|
|
|
return this.every(function( ele ){
|
|
return selObj.matches( ele );
|
|
});
|
|
},
|
|
|
|
is: function( selector ){
|
|
let selObj = new Selector( selector );
|
|
|
|
return this.some(function( ele ){
|
|
return selObj.matches( ele );
|
|
});
|
|
},
|
|
|
|
some: function( fn, thisArg ){
|
|
for( let i = 0; i < this.length; i++ ){
|
|
let ret = !thisArg ? fn( this[ i ], i, this ) : fn.apply( thisArg, [ this[ i ], i, this ] );
|
|
|
|
if( ret ){
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
},
|
|
|
|
every: function( fn, thisArg ){
|
|
for( let i = 0; i < this.length; i++ ){
|
|
let ret = !thisArg ? fn( this[ i ], i, this ) : fn.apply( thisArg, [ this[ i ], i, this ] );
|
|
|
|
if( !ret ){
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
},
|
|
|
|
same: function( collection ){
|
|
// cheap collection ref check
|
|
if( this === collection ){ return true; }
|
|
|
|
collection = this.cy().collection( collection );
|
|
|
|
let thisLength = this.length;
|
|
let collectionLength = collection.length;
|
|
|
|
// cheap length check
|
|
if( thisLength !== collectionLength ){ return false; }
|
|
|
|
// cheap element ref check
|
|
if( thisLength === 1 ){ return this[0] === collection[0]; }
|
|
|
|
return this.every(function( ele ){
|
|
return collection.hasElementWithId( ele.id() );
|
|
});
|
|
},
|
|
|
|
anySame: function( collection ){
|
|
collection = this.cy().collection( collection );
|
|
|
|
return this.some(function( ele ){
|
|
return collection.hasElementWithId( ele.id() );
|
|
});
|
|
},
|
|
|
|
allAreNeighbors: function( collection ){
|
|
collection = this.cy().collection( collection );
|
|
|
|
let nhood = this.neighborhood();
|
|
|
|
return collection.every(function( ele ){
|
|
return nhood.hasElementWithId( ele.id() );
|
|
});
|
|
},
|
|
|
|
contains: function( collection ){
|
|
collection = this.cy().collection( collection );
|
|
|
|
let self = this;
|
|
|
|
return collection.every(function( ele ){
|
|
return self.hasElementWithId( ele.id() );
|
|
});
|
|
}
|
|
});
|
|
|
|
elesfn.allAreNeighbours = elesfn.allAreNeighbors;
|
|
elesfn.has = elesfn.contains;
|
|
elesfn.equal = elesfn.equals = elesfn.same;
|
|
|
|
export default elesfn;
|
|
|