27 lines
1 KiB
TypeScript
27 lines
1 KiB
TypeScript
/**
|
|
* 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))
|
|
}
|