feat(library): add vocation filter, normalize categories, improve grid layout

Added vocation state and included it in query string builder, updated onFilter to accept a vocation parameter, improved grid layout with grid flow classes, normalized category names for consistent item icons, and refined stats mapping to handle type safety.
This commit is contained in:
Evandro Fonseca Junior committed 2025-10-30 18:44:52 -03:00
1 parent 44d7f8ce81
commit 2b790d8eb4
19 files changed
+2638 -173

No files matched your search

+42
View File
@@ -96,3 +96,45 @@ def clean_text(text):
return cleaned
def normalize_column_name(column_name):
"""
Normaliza nome de coluna para identificador SQL válido
Args:
column_name: Nome da coluna original
Returns:
str: Nome normalizado (lowercase, sem acentos, underscores, válido para SQL)
Exemplos:
"Lvl" -> "lvl"
"Dano Elemental" -> "dano_elemental"
"Mod. de Defesa" -> "mod_de_defesa"
"Dropa de" -> "dropa_de"
"""
if not column_name:
return ""
# Remove acentos
nfd = unicodedata.normalize('NFD', column_name)
name_no_accent = ''.join(c for c in nfd if unicodedata.category(c) != 'Mn')
# Converte para lowercase
normalized = name_no_accent.lower()
# Substitui caracteres não alfanuméricos por underscore
normalized = re.sub(r'[^a-z0-9]+', '_', normalized)
# Remove underscores do início e fim
normalized = normalized.strip('_')
# Garante que não começa com número
if normalized and normalized[0].isdigit():
normalized = 'col_' + normalized
# Se ficou vazio, retorna um nome padrão
if not normalized:
return "coluna_sem_nome"
return normalized