File size: 3,729 Bytes
602baf4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import gradio as gr
from modules.dados import dados_tab
from modules.planilha import planilha_tab  # Importe apenas planilha_tab, save_new_df é usado internamente no módulo
from modules.otimiza import otimiza_tab
from modules.rl import rl_tab
from modules.ml import ml_tab
from modules.evo import evo_tab

# Cria o app principal
theme = gr.themes.Citrus(
    primary_hue="gray",
)

# .css para estilizar a interface + JavaScript para ajustar o scroll
with gr.Blocks(theme=theme, css="""
    @import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@400;700&display=swap');

    .small-file-upload { 
        height: 65px; 
        text-align: center;
        color: black; /* Cor das letras */
        border: 2px solid black !important; /* Borda sólida e larga, !important para sobrepor estilos conflitantes */
        box-sizing: border-box; /* Garante que a borda não afete o tamanho total */
    }
    .small-file-upload span { 
        display: none;  /* Oculta o texto interno */
    }
    .small-file-upload input[type="file"] {
        color: black; /* Garante que o texto interno fique preto */
    }
    .small-file-upload label {
        color: black; /* Garante que o texto do rótulo fique preto */
    }
    .small span {
        font-size: 1.2em; /* Reduz o tamanho da fonte nos DataFrames */
        white-space: nowrap; /* Impede quebra de linha no cabeçalho */
        width: auto; /* Permite que a largura da coluna cresça conforme o conteúdo */
        display: inline-block; /* Garante que o ajuste de largura funcione corretamente */
    }
    .small span dados {
        font-size: 0.8em; /* Reduz o tamanho da fonte nos DataFrames */
        white-space: nowrap; /* Impede quebra de linha no cabeçalho */
        width: auto; /* Permite que a largura da coluna cresça conforme o conteúdo */
        display: inline-block; /* Garante que o ajuste de largura funcione corretamente */
    }
    
    /* Estilo para o título com fonte Quicksand */
    h1 {
        text-align: center;
        font-family: 'Quicksand', sans-serif; /* Aplica a fonte Quicksand */
        font-weight: 700; /* Peso da fonte */
        margin: 20px 0; /* Espaçamento ao redor do título */
        color: black; /* Cor do texto */
    }
    /* Estilo customizado para ajustar a altura do mapa */
    .map-container {
        height: 600px !important;
        margin: 0;
        padding: 0;
        <style>
    }
""") as app:
    # Adiciona JavaScript para rolar para o topo após ordenar tabelas
    gr.HTML("""
    <script>
        // Função para resetar o scroll ao topo da tabela
        function resetScrollToTop() {
            let tableContainer = document.querySelector(".dataframe-container");
            if (tableContainer) {
                tableContainer.scrollTop = 0; // Voltar ao topo
            }
        }

        // Monitorar cliques nos cabeçalhos da tabela
        document.addEventListener("click", function(e) {
            if (e.target.closest(".dataframe-container th")) {
                resetScrollToTop();
            }
        });
    </script>
    """)

    with gr.Tabs():     
        # Adiciona abas importadas
        dados_ui, filtered_df_output = dados_tab()  ##### MODIFICAÇÃO #####
        planilha_ui, new_df_output = planilha_tab(filtered_df_output)  ##### MODIFICAÇÃO ##### # Passa filtered_df_output para a aba Carregar Planilha
        otimiza_ui = otimiza_tab(new_df_output)     # Passa new_df_output para a aba Otimizar Modelo
        rl_ui = rl_tab()
        ml_ui = ml_tab(new_df_output)              # Passa new_df_output para a aba Machine Learning
        evo_ui = evo_tab()

# Executa o app
if __name__ == "__main__":
    app.launch(share=True)