@engie-group/fluid-design-system-angular
Version:
Fluid Design System Angular
32 lines (27 loc) • 1.08 kB
text/typescript
// Ignore https://angular.io/guide/angular-compiler-options#strictmetadataemit
// @dynamic
export class Utils {
static MAX_UID = 1000000;
public static isUndefinedOrNull(value: any): boolean {
return typeof value === 'undefined' || value === null;
}
public static normalizeString(text: string) {
return text.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
}
public static normalizeAndSearchInText(text: string, search: string): boolean {
if(Utils.isUndefinedOrNull(text) || Utils.isUndefinedOrNull(search)) {
return false;
}
const normalizedText = Utils.normalizeString(text);
let normalizedSearch = Utils.normalizeString(search)?.replace(/\(|\)|\\/gi, '');
const regExp = new RegExp(normalizedSearch, 'gi');
return normalizedText.search(regExp) !== -1;
}
public static getUID(prefix: string): string {
do {
// eslint-disable-next-line no-bitwise
prefix += ~~(Math.random() * Utils.MAX_UID); // "~~" acts like a faster Math.floor() here
} while (document.getElementById(prefix));
return prefix;
}
}