/** * Utilitário de filtragem para os componentes de seleção (EliEntradaSelecao e EliEntradaSelecaoMultipla). * * Normaliza a string removendo acentos e convertendo para minúsculas antes de comparar, * garantindo que "São Paulo" seja encontrado digitando "sao paulo" ou "SÃO PAULO". */ /** Remove acentos e converte para minúsculas para comparação insensível. */ function normalizar(texto: string): string { return texto .normalize("NFD") // decompõe caracteres acentuados (ex: "ã" → "a" + diacrítico) .replace(/\p{Diacritic}/gu, "") // remove os diacríticos .toLowerCase() } /** * Função de filtro customizada para v-autocomplete do Vuetify. * * Vuetify passa (value, query, item): * - `value` → texto do item renderizado (item-title resolvido) * - `query` → texto digitado pelo usuário * - `item` → objeto completo do item (não usado aqui) */ export function filtroSelecao(value: string, query: string): boolean { if (!query) return true return normalizar(value).includes(normalizar(query)) }