UNPKG

@engie-group/fluid-design-system-angular

Version:

Fluid Design System Angular

32 lines (27 loc) 1.08 kB
// 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; } }