Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
94ed079
build: adiciona o luxon para a manipulação de datas
Nov 26, 2025
43b68aa
feat: adiciona uma função para recuperar o objeto de gênero pelo tipo
Nov 26, 2025
34c1242
feat: adiciona o componente para a section do card de visualização do…
Nov 27, 2025
57773bf
feat: adiciona o componente para a visualização do resumo de informaç…
Nov 27, 2025
f5b1312
test: adiciona o código de teste para o novo componente
Nov 27, 2025
cbe0dd2
feat: Adiciona novas regras de validação do vee validate
lucasn4s Nov 27, 2025
a7b69e4
feat: Adiciona novos tipos
lucasn4s Nov 27, 2025
7378a2a
feat: Adiciona novos campos ao cidadão
lucasn4s Nov 27, 2025
49ee6f8
feat: Adiciona novos campos à sidesheet de criação de cidadão
lucasn4s Nov 27, 2025
645b265
Cria getter de gestante
lucasn4s Nov 27, 2025
ab1636a
feat: Adiciona formatação do campo de raça/cor
lucasn4s Nov 27, 2025
699a5d2
fix: Ajusta importação de tipos
lucasn4s Nov 27, 2025
051253f
feat: Adiciona exibição condicional do campo de raça/cor
lucasn4s Nov 27, 2025
4b97f47
feat: Adiciona props de controle de exibição das ações do componente
lucasn4s Dec 1, 2025
d8b42fe
Cria testes para o componente de resumo de cidadão
lucasn4s Dec 1, 2025
e0a2fac
feat: Separa campos do form em um arquivo separado para facilitar a e…
lucasn4s Dec 1, 2025
46bdf00
test: Adiciona novo teste de habilitação do checkbox de gestante
lucasn4s Dec 1, 2025
64020aa
Move form de criação de cidadão para um componente separado
lucasn4s Dec 2, 2025
0237dca
fix: Ajusta nome de classe
lucasn4s Dec 2, 2025
dbafb6c
feat: Adiciona regra de required condicional
lucasn4s Dec 3, 2025
68d37b0
Adiciona lógica de busca de cidades por estado
lucasn4s Dec 3, 2025
b700c45
Atualiza snapshot
lucasn4s Dec 3, 2025
78a7ab3
Merge branch 'feature/add-citizen-resume-viewer' of https://github.co…
lucasn4s Dec 3, 2025
00fc933
Adiciona nova rota de update de cidadão
lucasn4s Dec 4, 2025
bb4f2e2
Cria tipo endereço
lucasn4s Dec 4, 2025
a623677
fix: Remove props não utilizadas internamente
lucasn4s Dec 4, 2025
27331bd
fix: Ajusta tipo endereço
lucasn4s Dec 4, 2025
7c55ad6
feat: Cria testes para o CitizenForm
lucasn4s Dec 4, 2025
a77b498
fix: Ajusta tipos
lucasn4s Dec 4, 2025
e80cfac
fix: Remove console.log
lucasn4s Dec 4, 2025
117d72c
feat: Passa a seguir o padrão de 12 colunas no grid do form de cidadão
lucasn4s Dec 4, 2025
ae548a7
feat: adiciona lógica de preenchimento de selects de cidade e estado
lucasn4s Dec 4, 2025
2b07644
Cria componente de sidesheet para edição de cidadão
lucasn4s Dec 4, 2025
33b8c8a
Atualiza snapshot
lucasn4s Dec 4, 2025
28d27fc
feat: Adiciona método de leitura de um único cidadão da API
lucasn4s Dec 5, 2025
21fb4d5
feat: Passa a receber um documento de identificação do cidadão para p…
lucasn4s Dec 5, 2025
be32e4e
test: Ajusta mock de cidadão para usar CPF e CNS válidos
lucasn4s Dec 5, 2025
3587c52
test: Ajusta nome de arquivo de mocks
lucasn4s Dec 5, 2025
901944a
fix: Remove bypass acidental
lucasn4s Dec 5, 2025
e5c63c9
test: Adiciona mock de data atual
lucasn4s Dec 5, 2025
f14395c
doc: Adiciona novos componentes na listagem do readme
lucasn4s Dec 5, 2025
60e7e4f
feat: Adiciona exportações de componentes novos
lucasn4s Dec 10, 2025
6cc39f3
feat: Passa a emitir um evento de sucesso com as novas informações do…
lucasn4s Dec 10, 2025
7e5b4ac
fix: Ajusta tipos
lucasn4s Dec 10, 2025
4ae7b35
feat: Adiciona empty state ao CitizenSummaryViewer
lucasn4s Dec 11, 2025
b7a6a83
feat: Passa a emitir um evento no caso de não ter encontrado o cidadão
lucasn4s Dec 11, 2025
2d40e9b
fix: Ajusta edição de cidadão para ser feita baseada em um documento …
lucasn4s Dec 11, 2025
824e778
fix: Ajusta tipo de resposta de leitura de cidadão para que seja um a…
lucasn4s Dec 11, 2025
1258e8d
feat: Cria método para ajustar tipo
lucasn4s Dec 11, 2025
fd5cd7a
feat: Unifica tipo citizen
lucasn4s Dec 11, 2025
2ac6001
feat: Adiciona prop para sobrescrever listagem de cidades e estados d…
lucasn4s Dec 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ Este pacote fornece componentes reutilizáveis para integração com APIs de cid

- **CitizenSelect**: Componente de busca e seleção de cidadãos com dropdown
- **CitizenService**: Serviço para buscar dados de cidadãos via API ou mock
- **CreateCitizenSidesheet**: Componente para a criação de um novo cidadão
- **EditCitizenSidesheet**: Componente para a edição de um cidadão
- **CitizenSummaryViewer**: Componente para exibir um resumo estruturado dos dados mais relevantes de um cidadão
- Suporte a fallback para dados mockados quando a API não está configurada
- TypeScript com tipos exportados

Expand Down
31 changes: 3 additions & 28 deletions env.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
/// <reference types="vite/client" />
import type { Citizen } from './src/services/citizen/citizen.types';

declare module '*.vue' {
import type { DefineComponent } from 'vue';
Expand All @@ -7,39 +8,13 @@ declare module '*.vue' {
}

declare global {
// eslint-disable-next-line no-unused-vars
type Nullable<T> = T | null;

// eslint-disable-next-line no-unused-vars
type CitizenSelectModelType = Citizen | Partial<Citizen> | string | null;

interface Citizen {
id: string;
cpf: string;
cns: string;
name: string;
gender: string;
cpf_responsible: Nullable<string>;
mother_name: string;
birth_date: string;
phone: Nullable<string>;
cellphone: Nullable<string>;
email: Nullable<string>;
address: {
cep: Nullable<string>;
street: Nullable<string>;
number: Nullable<string>;
complement: Nullable<string>;
neighborhood: Nullable<string>;
city: Nullable<string>;
uf: Nullable<string>;
};
race: string;
co_cidadao: number;
is_dead: boolean;
pregnant?: boolean | null;
identification_document?: Nullable<string>;
issuing_agency?: Nullable<string>;
}
Citizen;
}

export {};
41 changes: 22 additions & 19 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,11 @@
"semantic-release:test": "semantic-release --dry-run --no-ci"
},
"dependencies": {
"@vee-validate/i18n": "^4.15.1",
"@vee-validate/rules": "^4.15.1",
"@vueuse/core": "^13.9.0",
"lodash": "^4.17.21"
"lodash": "^4.17.21",
"luxon": "^3.7.2"
},
"peerDependencies": {
"@sysvale/cuida": "^3.148.0",
Expand Down
18 changes: 18 additions & 0 deletions scripts/generate-index-types.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,28 @@ export interface CreateCitizenSidesheetProps {
size?: 'sm' | 'md' | 'lg' | 'xl';
}

export interface EditCitizenSidesheetProps {
okButtonText?: string;
cancelButtonText?: string;
actionButtonVariant?: string;
size?: 'sm' | 'md' | 'lg' | 'xl';
citizen: string;
}

export interface CitizenSummaryViewerProps {
citizen: Partial<Citizen>,
fluid?: boolean,
hideEditButton?: boolean,
hideCloseButton?: boolean,
hideActions?: boolean,
}

// Export components
export declare const CitizenSelect: DefineComponent<CitizenSelectProps>;
export declare const CitizenTable: DefineComponent<CitizenTableProps>;
export declare const CreateCitizenSidesheet: DefineComponent<CreateCitizenSidesheetProps>;
export declare const EditCitizenSidesheet: DefineComponent<EditCitizenSidesheetProps>;
export declare const CitizenSummaryViewer: DefineComponent<CitizenSummaryViewerProps>;

// Export plugin
export declare const CitizenComponentsPlugin: Plugin;
Expand Down
13 changes: 11 additions & 2 deletions src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,23 @@
>
Change Model
</CdsButton>

<CdsFlexbox justify="center" style="background-color: grey; padding: 30px">
<div style="width: 1000px;">
<CitizenResumeViewer :citizen="citizen" />
</div>
</CdsFlexbox>
</div>
</template>

<script setup lang="ts">
import { ref } from 'vue';
import CitizenSelect from './components/CitizenSelect.vue';
import CitizenResumeViewer from './components/CitizenResumeViewer.vue';
const citizen = ref<CitizenSelectModelType>(null);

changeModel();

function changeModel() {
console.log('no change model')
citizen.value = {
Expand All @@ -34,7 +43,7 @@ function changeModel() {
'birth_date': '1946-10-02',
'phone': '38 4017-7733',
'cellphone': '83 7530-1849',
'email': 'Delta1@hotmail.com',
'email': 'joaopaulosncastro@sysvale.com.br',
'address': {
'cep': '44443',
'street': 'Jakubowski Manors',
Expand All @@ -47,7 +56,7 @@ function changeModel() {
'race': 'black',
'co_cidadao': 2852,
'is_dead': true,
'pregnant': false,
'pregnant': true,
'identification_document': '040516263',
'issuing_agency': 'SSP'
}
Expand Down
Loading
Loading