feat: update ESLint and TypeScript configurations across frontend and backend; enhance component structure and improve data handling in various modules

This commit is contained in:
2025-12-02 16:36:02 -03:00
parent f48d28067c
commit d79e6959c3
215 changed files with 29474 additions and 28173 deletions

View File

@@ -34,7 +34,7 @@
}
}
async function aceitarTermo() {
async function aceitarTermo() {
if (termoObrigatorio && !aceito) {
erro = 'Você precisa aceitar o termo para continuar';
return;
@@ -68,15 +68,15 @@
}
</script>
<div class="container mx-auto px-4 py-8 max-w-4xl">
<div class="container mx-auto max-w-4xl px-4 py-8">
<!-- Header -->
<div class="mb-8">
<div class="flex items-center gap-4 mb-4">
<div class="p-3 bg-primary/10 rounded-xl">
<Shield class="h-8 w-8 text-primary" strokeWidth={2} />
<div class="mb-4 flex items-center gap-4">
<div class="bg-primary/10 rounded-xl p-3">
<Shield class="text-primary h-8 w-8" strokeWidth={2} />
</div>
<div>
<h1 class="text-3xl font-bold text-base-content">Termo de Consentimento</h1>
<h1 class="text-base-content text-3xl font-bold">Termo de Consentimento</h1>
<p class="text-base-content/60 mt-1">
Termo de Uso e Consentimento para Tratamento de Dados Pessoais
</p>
@@ -85,20 +85,21 @@
</div>
{#if consentimentoQuery === undefined}
<div class="flex justify-center items-center py-20">
<div class="flex items-center justify-center py-20">
<span class="loading loading-spinner loading-lg text-primary"></span>
</div>
{:else if jaAceitou}
<!-- Já aceitou -->
<div class="card bg-base-100 shadow-xl">
<div class="card-body text-center">
<CheckCircle class="h-16 w-16 text-success mx-auto mb-4" strokeWidth={2} />
<h2 class="card-title text-2xl justify-center mb-4">Termo Já Aceito</h2>
<CheckCircle class="text-success mx-auto mb-4 h-16 w-16" strokeWidth={2} />
<h2 class="card-title mb-4 justify-center text-2xl">Termo Já Aceito</h2>
<p class="text-base-content/80 mb-6">
Você já aceitou este termo de consentimento (versão {versaoTermoAtual}). Se desejar revogar seu consentimento ou
gerenciar suas preferências de privacidade, acesse a página de privacidade.
Você já aceitou este termo de consentimento (versão {versaoTermoAtual}). Se desejar
revogar seu consentimento ou gerenciar suas preferências de privacidade, acesse a página
de privacidade.
</p>
<div class="flex flex-col sm:flex-row gap-4 justify-center">
<div class="flex flex-col justify-center gap-4 sm:flex-row">
<a href={resolve('/privacidade')} class="btn btn-primary">
<FileText class="h-5 w-5" />
Ver Política de Privacidade
@@ -114,8 +115,8 @@
<!-- Sucesso -->
<div class="card bg-base-100 shadow-xl">
<div class="card-body text-center">
<CheckCircle class="h-16 w-16 text-success mx-auto mb-4" strokeWidth={2} />
<h2 class="card-title text-2xl justify-center mb-4">Termo Aceito com Sucesso!</h2>
<CheckCircle class="text-success mx-auto mb-4 h-16 w-16" strokeWidth={2} />
<h2 class="card-title mb-4 justify-center text-2xl">Termo Aceito com Sucesso!</h2>
<p class="text-base-content/80 mb-6">
Seu consentimento foi registrado. Você pode acessar o sistema normalmente.
</p>
@@ -126,28 +127,27 @@
</div>
{:else}
<!-- Termo -->
<div class="card bg-base-100 shadow-xl mb-6">
<div class="card bg-base-100 mb-6 shadow-xl">
<div class="card-body">
<div class="prose max-w-none">
<h2 class="text-2xl font-bold mb-4">Termo de Uso e Consentimento</h2>
<h2 class="mb-4 text-2xl font-bold">Termo de Uso e Consentimento</h2>
<section class="mb-6">
<h3 class="text-xl font-semibold mb-3">1. Aceitação dos Termos</h3>
<h3 class="mb-3 text-xl font-semibold">1. Aceitação dos Termos</h3>
<p class="text-base-content/80 mb-4">
Ao utilizar o Sistema de Gestão da Secretaria de Esportes (SGSE), você concorda
com os termos e condições estabelecidos neste documento, bem como com a
Política de Privacidade do sistema.
Ao utilizar o Sistema de Gestão da Secretaria de Esportes (SGSE), você concorda com os
termos e condições estabelecidos neste documento, bem como com a Política de
Privacidade do sistema.
</p>
</section>
<section class="mb-6">
<h3 class="text-xl font-semibold mb-3">2. Tratamento de Dados Pessoais</h3>
<h3 class="mb-3 text-xl font-semibold">2. Tratamento de Dados Pessoais</h3>
<p class="text-base-content/80 mb-4">
Você consente que a Secretaria de Esportes do Estado de Pernambuco trate seus
dados pessoais para as finalidades descritas na Política de Privacidade,
incluindo:
Você consente que a Secretaria de Esportes do Estado de Pernambuco trate seus dados
pessoais para as finalidades descritas na Política de Privacidade, incluindo:
</p>
<ul class="list-disc list-inside space-y-2 text-base-content/80 mb-4">
<ul class="text-base-content/80 mb-4 list-inside list-disc space-y-2">
<li>Gestão de recursos humanos e folha de pagamento</li>
<li>Controle de ponto e registro de jornada de trabalho</li>
<li>Gestão de férias, ausências e licenças</li>
@@ -158,33 +158,33 @@
</section>
<section class="mb-6">
<h3 class="text-xl font-semibold mb-3">3. Base Legal</h3>
<h3 class="mb-3 text-xl font-semibold">3. Base Legal</h3>
<p class="text-base-content/80 mb-4">
O tratamento de seus dados pessoais fundamenta-se nas seguintes bases legais,
conforme previsto na Lei Geral de Proteção de Dados (LGPD):
O tratamento de seus dados pessoais fundamenta-se nas seguintes bases legais, conforme
previsto na Lei Geral de Proteção de Dados (LGPD):
</p>
<ul class="list-disc list-inside space-y-2 text-base-content/80">
<ul class="text-base-content/80 list-inside list-disc space-y-2">
<li>
<strong>Execução de Políticas Públicas:</strong> Para a execução de políticas
públicas previstas em leis ou regulamentos
<strong>Execução de Políticas Públicas:</strong> Para a execução de políticas públicas
previstas em leis ou regulamentos
</li>
<li>
<strong>Cumprimento de Obrigação Legal:</strong> Para cumprimento de
obrigação legal ou regulatória
<strong>Cumprimento de Obrigação Legal:</strong> Para cumprimento de obrigação legal
ou regulatória
</li>
<li>
<strong>Execução de Contrato:</strong> Para a execução de contrato ou de
procedimentos preliminares relacionados a contrato
<strong>Execução de Contrato:</strong> Para a execução de contrato ou de procedimentos
preliminares relacionados a contrato
</li>
</ul>
</section>
<section class="mb-6">
<h3 class="text-xl font-semibold mb-3">4. Direitos do Titular</h3>
<h3 class="mb-3 text-xl font-semibold">4. Direitos do Titular</h3>
<p class="text-base-content/80 mb-4">
Você possui os seguintes direitos em relação aos seus dados pessoais:
</p>
<ul class="list-disc list-inside space-y-2 text-base-content/80">
<ul class="text-base-content/80 list-inside list-disc space-y-2">
<li>Confirmar a existência de tratamento de dados</li>
<li>Acessar seus dados pessoais</li>
<li>Corrigir dados incompletos, inexatos ou desatualizados</li>
@@ -202,30 +202,29 @@
</section>
<section class="mb-6">
<h3 class="text-xl font-semibold mb-3">5. Segurança dos Dados</h3>
<h3 class="mb-3 text-xl font-semibold">5. Segurança dos Dados</h3>
<p class="text-base-content/80 mb-4">
A Secretaria de Esportes adota medidas técnicas e administrativas para proteger
seus dados pessoais contra acesso não autorizado, alteração, divulgação ou
destruição.
A Secretaria de Esportes adota medidas técnicas e administrativas para proteger seus
dados pessoais contra acesso não autorizado, alteração, divulgação ou destruição.
</p>
</section>
<section class="mb-6">
<h3 class="text-xl font-semibold mb-3">6. Revogação do Consentimento</h3>
<h3 class="mb-3 text-xl font-semibold">6. Revogação do Consentimento</h3>
<p class="text-base-content/80 mb-4">
Você pode revogar seu consentimento a qualquer momento através da página de
gerenciamento de privacidade. No entanto, a revogação pode impedir o acesso a
algumas funcionalidades do sistema que dependem do tratamento de dados pessoais.
gerenciamento de privacidade. No entanto, a revogação pode impedir o acesso a algumas
funcionalidades do sistema que dependem do tratamento de dados pessoais.
</p>
</section>
<section class="mb-6">
<h3 class="text-xl font-semibold mb-3">7. Contato</h3>
<h3 class="mb-3 text-xl font-semibold">7. Contato</h3>
<p class="text-base-content/80 mb-4">
Para questões relacionadas ao tratamento de dados pessoais, entre em contato com
o Encarregado de Proteção de Dados:
Para questões relacionadas ao tratamento de dados pessoais, entre em contato com o
Encarregado de Proteção de Dados:
</p>
<div class="bg-base-200 p-4 rounded-lg">
<div class="bg-base-200 rounded-lg p-4">
<p class="text-sm">
<strong>E-mail:</strong> lgpd@esportes.pe.gov.br
</p>
@@ -239,17 +238,17 @@
<div class="alert alert-warning mb-6">
<AlertCircle class="h-5 w-5" />
<p class="text-sm">
<strong>Atenção:</strong> O aceite deste termo é obrigatório para utilização do
sistema. Ao aceitar, você confirma que leu, compreendeu e concorda com todos os
termos e condições estabelecidos.
<strong>Atenção:</strong> O aceite deste termo é obrigatório para utilização do sistema.
Ao aceitar, você confirma que leu, compreendeu e concorda com todos os termos e condições
estabelecidos.
</p>
</div>
{:else}
<div class="alert alert-info mb-6">
<AlertCircle class="h-5 w-5" />
<p class="text-sm">
<strong>Informação:</strong> O aceite deste termo é opcional. Você pode aceitar
voluntariamente ou continuar sem aceitar.
<strong>Informação:</strong> O aceite deste termo é opcional. Você pode aceitar voluntariamente
ou continuar sem aceitar.
</p>
</div>
{/if}
@@ -260,7 +259,7 @@
<!-- Formulário de Aceite -->
<div class="card bg-base-100 shadow-xl">
<div class="card-body">
<h2 class="card-title text-xl mb-4">Aceitar Termo</h2>
<h2 class="card-title mb-4 text-xl">Aceitar Termo</h2>
{#if erro}
<div class="alert alert-error mb-4">
@@ -271,14 +270,10 @@
<div class="form-control mb-6">
<label class="label cursor-pointer justify-start gap-4">
<input
type="checkbox"
bind:checked={aceito}
class="checkbox checkbox-primary"
/>
<input type="checkbox" bind:checked={aceito} class="checkbox checkbox-primary" />
<span class="label-text text-base-content/80">
Declaro que li, compreendi e aceito os termos e condições estabelecidos neste
Termo de Consentimento e na{' '}
Declaro que li, compreendi e aceito os termos e condições estabelecidos neste Termo de
Consentimento e na{' '}
<a href={resolve('/privacidade')} class="link link-primary" target="_blank">
Política de Privacidade
</a>
@@ -287,7 +282,7 @@
</label>
</div>
<div class="flex flex-col sm:flex-row gap-4">
<div class="flex flex-col gap-4 sm:flex-row">
<button
onclick={aceitarTermo}
disabled={(termoObrigatorio && !aceito) || carregando}
@@ -310,4 +305,3 @@
</div>
{/if}
</div>