const COMBINING_MARKS_REGEX = /[\u0300-\u036f]/g;

export function normalizeSearchText(value?: string | null): string {
  return (value ?? "")
    .normalize("NFD")
    .replace(COMBINING_MARKS_REGEX, "")
    .toLowerCase()
    .trim();
}

export function containsNormalizedText(
  value: string | null | undefined,
  query: string | null | undefined,
): boolean {
  const normalizedQuery = normalizeSearchText(query);

  if (!normalizedQuery) {
    return true;
  }

  return normalizeSearchText(value).includes(normalizedQuery);
}