(mostrarBotaoCamera = true)} onmouseleave={() => (mostrarBotaoCamera = false)} >

{authStore.usuario?.nome}

{#if funcionario?.descricaoCargo}

{funcionario.descricaoCargo}

{/if}

{authStore.usuario?.email}

{authStore.usuario?.role?.nome || "Usuário"}
{#if meuTime}
{meuTime.nome}
{/if} {#if funcionario?.statusFerias === "em_ferias"}
🏖️ Em Férias
{:else}
✅ Ativo
{/if}
{#if ehGestor} {/if}
{#if abaAtiva === "meu-perfil"}

Seu Perfil

{authStore.usuario?.role?.nome || "Usuário"}

Seu Time

{meuTime?.nome || "Sem time"}

Status

{funcionario?.statusFerias === "em_ferias" ? "Em Férias" : "Ativo"}

Matrícula

{funcionario?.matricula || "---"}

Informações Pessoais

Nome Completo

{authStore.usuario?.nome}

E-mail Institucional

{authStore.usuario?.email}

Perfil de Acesso
{authStore.usuario?.role?.nome || "Usuário"}
{#if funcionario}

Dados Funcionais

Matrícula

{funcionario.matricula || "Não informada"}

CPF

{funcionario.cpf}

Time {#if meuTime}
{meuTime.nome}

Gestor: {meuTime.gestor?.nome}

{:else}

Não atribuído a um time

{/if}
Status Atual {#if funcionario.statusFerias === "em_ferias"}
🏖️ Em Férias
{:else}
✅ Ativo
{/if}
{/if}
{#if ehGestor}

Times que Você Gerencia
{meusTimesGestor.length}

{#if meusTimesGestor.length === 0}
Você não gerencia nenhum time no momento.
{:else}
{#each meusTimesGestor as time}

{time.nome}

{time.descricao || "Sem descrição"}

{time.membros?.length || 0} membros
Gestor
{/each}
{/if}
{/if}
{:else if abaAtiva === "minhas-ferias"}
Total
{statsMinhasFerias.total}
Solicitações
Aguardando
{statsMinhasFerias.aguardando}
Pendentes
Aprovadas
{statsMinhasFerias.aprovadas}
Deferidas
Reprovadas
{statsMinhasFerias.reprovadas}
Indeferidas
Em Férias
{statsMinhasFerias.emFerias}
Agora

Filtros

{#if funcionario} {/if}

Minhas Solicitações ({solicitacoesFiltradas.length})

{#if solicitacoesFiltradas.length === 0}
Nenhuma solicitação encontrada com os filtros aplicados.
{:else}
{#each solicitacoesFiltradas as solicitacao} {/each}
Ano Períodos Total Dias Status Solicitado em
{solicitacao.anoReferencia} {solicitacao.periodos.length} período(s) {solicitacao.periodos.reduce((acc: number, p: any) => acc + p.diasCorridos, 0)} dias
{getStatusTexto(solicitacao.status)}
{new Date(solicitacao._creationTime).toLocaleDateString("pt-BR")}
{/if}
{:else if abaAtiva === "minhas-ausencias"}
Total
{statsMinhasAusencias.total}
Solicitações
Aguardando
{statsMinhasAusencias.aguardando}
Pendentes
Aprovadas
{statsMinhasAusencias.aprovadas}
Deferidas
Reprovadas
{statsMinhasAusencias.reprovadas}
Indeferidas

Filtros

Minhas Solicitações ({ausenciasFiltradas.length})

{#if ausenciasFiltradas.length === 0}
Nenhuma solicitação encontrada com os filtros aplicados.
{:else}
{#each ausenciasFiltradas as ausencia} {/each}
Período Dias Motivo Status Solicitado em
{new Date(ausencia.dataInicio).toLocaleDateString("pt-BR")} até {new Date(ausencia.dataFim).toLocaleDateString("pt-BR")} {Math.ceil((new Date(ausencia.dataFim).getTime() - new Date(ausencia.dataInicio).getTime()) / (1000 * 60 * 60 * 24)) + 1} dias {ausencia.motivo}
{getStatusTexto(ausencia.status)}
{new Date(ausencia.criadoEm).toLocaleDateString("pt-BR")}
{/if}
{:else if abaAtiva === "aprovar-ferias"}

Solicitações da Equipe
{solicitacoesSubordinados.length}

{#if solicitacoesSubordinados.length === 0}
Nenhuma solicitação pendente no momento.
{:else}
{#each solicitacoesSubordinados as solicitacao} {/each}
Funcionário Time Ano Períodos Dias Status Ações
{solicitacao.funcionario?.nome}
{#if solicitacao.time}
{solicitacao.time.nome}
{/if}
{solicitacao.anoReferencia} {solicitacao.periodos.length} {solicitacao.periodos.reduce( (acc: number, p: any) => acc + p.diasCorridos, 0 )}
{getStatusTexto(solicitacao.status)}
{#if solicitacao.status === "aguardando_aprovacao"} {:else} {/if}
{/if}
{:else if abaAtiva === "aprovar-ausencias"}

Solicitações de Ausências da Equipe
{ausenciasSubordinados.length}

{#if ausenciasSubordinados.length === 0}
Nenhuma solicitação pendente no momento.
{:else}
{#each ausenciasSubordinados as ausencia} {/each}
Funcionário Time Período Dias Status Ações
{ausencia.funcionario?.nome || "N/A"}
{#if ausencia.time}
{ausencia.time.nome}
{/if}
{new Date(ausencia.dataInicio).toLocaleDateString("pt-BR")} até{" "} {new Date(ausencia.dataFim).toLocaleDateString("pt-BR")} {Math.ceil((new Date(ausencia.dataFim).getTime() - new Date(ausencia.dataInicio).getTime()) / (1000 * 60 * 60 * 24)) + 1} dias
{getStatusTexto(ausencia.status)}
{#if ausencia.status === "aguardando_aprovacao"} {:else} {/if}
{/if}
{/if}
{#if solicitacaoSelecionada} {/if} {#if mostrarModalFoto} {/if}
{#if mostrarWizard && funcionario} {/if} {#if mostrarWizardAusencia && funcionarioIdDisponivel} {/if} {#if solicitacaoAusenciaAprovar && authStore.usuario} {#await client.query(api.ausencias.obterDetalhes, { solicitacaoId: solicitacaoAusenciaAprovar, }) then detalhes} {#if detalhes} {/if} {/await} {/if}