mirror of
https://github.com/richard-loafle/fuse-angular.git
synced 2025-01-11 13:05:08 +00:00
94 lines
2.0 KiB
TypeScript
94 lines
2.0 KiB
TypeScript
export class FuseUtils
|
|
{
|
|
|
|
public static filterArrayByString(mainArr, searchText)
|
|
{
|
|
if ( searchText === '' )
|
|
{
|
|
return mainArr;
|
|
}
|
|
|
|
searchText = searchText.toLowerCase();
|
|
|
|
return mainArr.filter(itemObj => {
|
|
return this.searchInObj(itemObj, searchText);
|
|
});
|
|
}
|
|
|
|
public static searchInObj(itemObj, searchText)
|
|
{
|
|
|
|
for ( const prop in itemObj )
|
|
{
|
|
if ( !itemObj.hasOwnProperty(prop) )
|
|
{
|
|
continue;
|
|
}
|
|
|
|
const value = itemObj[prop];
|
|
|
|
if ( typeof value === 'string' )
|
|
{
|
|
if ( this.searchInSting(value, searchText) )
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
else if ( Array.isArray(value) )
|
|
{
|
|
if ( this.searchInArray(value, searchText) )
|
|
{
|
|
return true;
|
|
}
|
|
|
|
}
|
|
|
|
if ( typeof value === 'object' )
|
|
{
|
|
if ( this.searchInObj(value, searchText) )
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static searchInArray(arr, searchText)
|
|
{
|
|
for ( const value of arr )
|
|
{
|
|
if ( typeof value === 'string' )
|
|
{
|
|
if ( this.searchInSting(value, searchText) )
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
|
|
if ( typeof value === 'object' )
|
|
{
|
|
if ( this.searchInObj(value, searchText) )
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static searchInSting(value, searchText)
|
|
{
|
|
return value.toLowerCase().includes(searchText);
|
|
}
|
|
|
|
public static genearateGUID()
|
|
{
|
|
function S4()
|
|
{
|
|
return (((1 + Math.random()) * 0x10000) || 0).toString(16).substring(1);
|
|
}
|
|
|
|
return (S4() + S4());
|
|
}
|
|
}
|