@stiunb/unb-lib-components 18.0.24 → 18.0.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -0
- package/esm2022/lib/unb-pessoa/unb-pessoa-email-form/unb-pessoa-email-list.mjs +1 -1
- package/esm2022/lib/unb-pessoa/unb-pessoa-form/unb-pessoa-form.component.mjs +77 -40
- package/esm2022/lib/unb-pessoa/unb-pessoa-models/unb-pessoa.model.mjs +1 -1
- package/esm2022/lib/unb-pessoa/unb-pessoa-pesquisar/unb-pessoa-pesquisar.component.mjs +132 -65
- package/esm2022/lib/unb-pessoa/unb-pessoa.service.mjs +4 -4
- package/esm2022/lib/unb-pessoa/unb-tipo-pessoa.enum.mjs +7 -7
- package/fesm2022/stiunb-unb-lib-components.mjs +198 -95
- package/fesm2022/stiunb-unb-lib-components.mjs.map +1 -1
- package/lib/unb-pessoa/unb-pessoa-form/unb-pessoa-form.component.d.ts +16 -7
- package/lib/unb-pessoa/unb-pessoa-models/unb-pessoa.model.d.ts +2 -2
- package/lib/unb-pessoa/unb-pessoa-pesquisar/unb-pessoa-pesquisar.component.d.ts +29 -10
- package/lib/unb-pessoa/unb-pessoa.service.d.ts +2 -2
- package/lib/unb-pessoa/unb-tipo-pessoa.enum.d.ts +4 -4
- package/package.json +2 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Component, Input, NgModule, ViewChild, Inject, EventEmitter, Output } from '@angular/core';
|
|
2
|
+
import { Injectable, Component, Input, NgModule, ViewChild, Inject, EventEmitter, booleanAttribute, Output } from '@angular/core';
|
|
3
3
|
import { Subject, BehaviorSubject, throwError, catchError, of, map, forkJoin } from 'rxjs';
|
|
4
4
|
import * as i4 from '@angular/common';
|
|
5
5
|
import { CommonModule, DatePipe, CurrencyPipe } from '@angular/common';
|
|
@@ -27,7 +27,7 @@ import * as i6 from '@angular/forms';
|
|
|
27
27
|
import { FormsModule } from '@angular/forms';
|
|
28
28
|
import * as i12 from '@angular/material/core';
|
|
29
29
|
import { MatNativeDateModule } from '@angular/material/core';
|
|
30
|
-
import * as
|
|
30
|
+
import * as i15 from '@angular/material/datepicker';
|
|
31
31
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
32
32
|
import { MatExpansionModule } from '@angular/material/expansion';
|
|
33
33
|
import * as i9 from '@angular/material/form-field';
|
|
@@ -35,7 +35,7 @@ import { MatFormFieldModule } from '@angular/material/form-field';
|
|
|
35
35
|
import * as i10 from '@angular/material/input';
|
|
36
36
|
import { MatInputModule } from '@angular/material/input';
|
|
37
37
|
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
38
|
-
import * as
|
|
38
|
+
import * as i14 from '@angular/material/progress-bar';
|
|
39
39
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
40
40
|
import * as i11$1 from '@angular/material/progress-spinner';
|
|
41
41
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
@@ -424,12 +424,12 @@ class UnbPessoaEmail {
|
|
|
424
424
|
class UnbPessoaEmailTipo {
|
|
425
425
|
}
|
|
426
426
|
|
|
427
|
-
var
|
|
428
|
-
(function (
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
})(
|
|
427
|
+
var UnbTipoPessoaEnum;
|
|
428
|
+
(function (UnbTipoPessoaEnum) {
|
|
429
|
+
UnbTipoPessoaEnum["FISICA"] = "FISICA";
|
|
430
|
+
UnbTipoPessoaEnum["JURIDICA"] = "JURIDICA";
|
|
431
|
+
UnbTipoPessoaEnum["ESTRANGEIRA"] = "ESTRANGEIRA";
|
|
432
|
+
})(UnbTipoPessoaEnum || (UnbTipoPessoaEnum = {}));
|
|
433
433
|
|
|
434
434
|
class UnBPessoaService {
|
|
435
435
|
constructor(http) {
|
|
@@ -573,10 +573,10 @@ class UnBPessoaService {
|
|
|
573
573
|
// 2. Delegação
|
|
574
574
|
// Como savePessoaFisica e savePessoaJuridica JÁ TÊM o .pipe(catchError),
|
|
575
575
|
// aqui nós apenas retornamos o Observable deles. O erro subirá tratado.
|
|
576
|
-
if (tipoPessoa ==
|
|
576
|
+
if (tipoPessoa == UnbTipoPessoaEnum.FISICA || tipoPessoa == UnbTipoPessoaEnum.ESTRANGEIRA) {
|
|
577
577
|
return this.savePessoaFisica(payload);
|
|
578
578
|
}
|
|
579
|
-
else if (tipoPessoa ==
|
|
579
|
+
else if (tipoPessoa == UnbTipoPessoaEnum.JURIDICA) {
|
|
580
580
|
return this.savePessoaJuridica(payload);
|
|
581
581
|
}
|
|
582
582
|
return of(null);
|
|
@@ -1208,18 +1208,23 @@ class UnbPessoaPesquisarComponent {
|
|
|
1208
1208
|
this.isLoading = false;
|
|
1209
1209
|
// Configuração da API. Exemplo SGI.unb.br/pessoa-api
|
|
1210
1210
|
this.backendURL = "";
|
|
1211
|
+
// Flags de Pesquisa (com conversão automática de string para boolean)
|
|
1211
1212
|
this.pesquisarPorCPF = true;
|
|
1212
1213
|
this.pesquisarPorCNPJ = true;
|
|
1213
|
-
this.pesquisarPorEstrangeiro =
|
|
1214
|
+
this.pesquisarPorEstrangeiro = false;
|
|
1215
|
+
// Configurações de UI e Comportamento
|
|
1216
|
+
this.defaultTipoPessoa = UnbTipoPessoaEnum.FISICA;
|
|
1214
1217
|
this.campoPesquisaMaxWidth = '400px';
|
|
1215
|
-
this.pessoaEmitted = new EventEmitter();
|
|
1216
|
-
this.pessoa = new UnbPessoaModel();
|
|
1217
1218
|
this.mostrarPesquisa = true;
|
|
1218
|
-
this.limparAposPesquisa = false;
|
|
1219
|
-
|
|
1220
|
-
this.
|
|
1221
|
-
this.
|
|
1222
|
-
|
|
1219
|
+
this.limparAposPesquisa = false;
|
|
1220
|
+
// Textos e Labels
|
|
1221
|
+
this.label = "Digite o CPF/CNPJ ou Passaporte";
|
|
1222
|
+
this.placeholder = "";
|
|
1223
|
+
this.hint = "";
|
|
1224
|
+
// Dados e Eventos
|
|
1225
|
+
this.pessoa = new UnbPessoaModel();
|
|
1226
|
+
this.pessoaEmitted = new EventEmitter();
|
|
1227
|
+
this.isLoadingChange = new EventEmitter();
|
|
1223
1228
|
this.pessoaEncontrado = false;
|
|
1224
1229
|
this.listaTipoEndereco = [];
|
|
1225
1230
|
this.listaTipoTelefone = [];
|
|
@@ -1227,13 +1232,13 @@ class UnbPessoaPesquisarComponent {
|
|
|
1227
1232
|
this.idMensagemService = "UnbPessoaPesquisar";
|
|
1228
1233
|
}
|
|
1229
1234
|
ngOnInit() {
|
|
1230
|
-
|
|
1231
|
-
|
|
1235
|
+
// 1. Validação de Inicialização da API
|
|
1236
|
+
if (!this.backendURL) {
|
|
1237
|
+
this.handleErrorPrintConsole("[UnbPessoaPesquisarComponent] ERROR: backendURL está null.");
|
|
1232
1238
|
return;
|
|
1233
1239
|
}
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
}
|
|
1240
|
+
this.pessoaService.setBackendUrl(this.backendURL);
|
|
1241
|
+
// 2. Carregamento de Dados de Apoio
|
|
1237
1242
|
forkJoin({
|
|
1238
1243
|
tiposEnd: this.pessoaService.getTipoEndereco(),
|
|
1239
1244
|
tiposTel: this.pessoaService.getTipoTelefone(),
|
|
@@ -1246,56 +1251,76 @@ class UnbPessoaPesquisarComponent {
|
|
|
1246
1251
|
},
|
|
1247
1252
|
error: (err) => {
|
|
1248
1253
|
this.handleError("Falha ao carregar dados de apoio. Recarregue a página.");
|
|
1249
|
-
console.error("Erro no forkJoin
|
|
1254
|
+
console.error("Erro no forkJoin:", err);
|
|
1250
1255
|
}
|
|
1251
1256
|
});
|
|
1252
|
-
//
|
|
1253
|
-
const opcoesAtivas = [this.pesquisarPorCPF, this.pesquisarPorCNPJ, this.pesquisarPorEstrangeiro].filter(
|
|
1254
|
-
//
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
+
// 3. Definição da Lógica de Exibição e Tipo Padrão
|
|
1258
|
+
const opcoesAtivas = [this.pesquisarPorCPF, this.pesquisarPorCNPJ, this.pesquisarPorEstrangeiro].filter(v => v).length;
|
|
1259
|
+
// Só mostra o rádio se houver escolha real (mais de uma opção ativa)
|
|
1260
|
+
this.mostrarTipoPessoa = opcoesAtivas > 1;
|
|
1261
|
+
if (opcoesAtivas === 0) {
|
|
1262
|
+
this.handleErrorPrintConsole("[UnbPessoaPesquisarComponent] ERROR: Nenhuma opção de pesquisa (CPF/CNPJ/Estrangeiro) está ativa.");
|
|
1263
|
+
return;
|
|
1264
|
+
}
|
|
1265
|
+
// 4. Atribuição do Tipo Inicial (Ordem de prioridade: Valor padrão -> Opção Única -> CPF)
|
|
1266
|
+
this.definirTipoPessoaInicial();
|
|
1267
|
+
}
|
|
1268
|
+
/**
|
|
1269
|
+
* Define qual tipo de pessoa estará selecionado ao carregar o componente
|
|
1270
|
+
*/
|
|
1271
|
+
definirTipoPessoaInicial() {
|
|
1272
|
+
// Verifica se o padrão passado é permitido pelas flags de pesquisa
|
|
1273
|
+
const padraoEhValido = (this.defaultTipoPessoa === UnbTipoPessoaEnum.FISICA && this.pesquisarPorCPF) ||
|
|
1274
|
+
(this.defaultTipoPessoa === UnbTipoPessoaEnum.JURIDICA && this.pesquisarPorCNPJ) ||
|
|
1275
|
+
(this.defaultTipoPessoa === UnbTipoPessoaEnum.ESTRANGEIRA && this.pesquisarPorEstrangeiro);
|
|
1276
|
+
if (padraoEhValido) {
|
|
1277
|
+
// Como o valor da string é igual ao valor do Enum, a atribuição é direta
|
|
1278
|
+
this.pessoa.tipoPessoa = this.defaultTipoPessoa;
|
|
1257
1279
|
}
|
|
1258
1280
|
else {
|
|
1259
|
-
|
|
1281
|
+
if (this.defaultTipoPessoa) {
|
|
1282
|
+
console.warn(`[UnbPessoaPesquisar] O valor defaultTipoPessoa='${this.defaultTipoPessoa}' é incompatível com as opções de pesquisa ativas. Selecionando a primeira disponível.`);
|
|
1283
|
+
}
|
|
1284
|
+
// Fallback para a primeira opção ativa
|
|
1260
1285
|
if (this.pesquisarPorCPF) {
|
|
1261
|
-
this.pessoa.tipoPessoa =
|
|
1286
|
+
this.pessoa.tipoPessoa = UnbTipoPessoaEnum.FISICA;
|
|
1262
1287
|
}
|
|
1263
1288
|
else if (this.pesquisarPorCNPJ) {
|
|
1264
|
-
this.pessoa.tipoPessoa =
|
|
1289
|
+
this.pessoa.tipoPessoa = UnbTipoPessoaEnum.JURIDICA;
|
|
1265
1290
|
}
|
|
1266
1291
|
else if (this.pesquisarPorEstrangeiro) {
|
|
1267
|
-
this.pessoa.tipoPessoa =
|
|
1292
|
+
this.pessoa.tipoPessoa = UnbTipoPessoaEnum.ESTRANGEIRA;
|
|
1268
1293
|
}
|
|
1269
|
-
else {
|
|
1270
|
-
this.handleErrorPrintConsole("[UnbPessoaPesquisarComponent] ERROR: pesquisarPorCPF, pesquisarPorCNPJ e pesquisarPorEstrangeiro está falso. Marque pelo menos um como true");
|
|
1271
|
-
return;
|
|
1272
|
-
}
|
|
1273
|
-
}
|
|
1274
|
-
// seleciona o radio button padrao
|
|
1275
|
-
if (this.defaultTipoPessoa == TipoPessoaEnum.FISICA && this.pesquisarPorCPF) {
|
|
1276
|
-
this.pessoa.tipoPessoa = this.defaultTipoPessoa;
|
|
1277
|
-
}
|
|
1278
|
-
else if (this.defaultTipoPessoa == TipoPessoaEnum.JURIDICA && this.pesquisarPorCNPJ) {
|
|
1279
|
-
this.pessoa.tipoPessoa = this.defaultTipoPessoa;
|
|
1280
|
-
}
|
|
1281
|
-
else if (this.defaultTipoPessoa == TipoPessoaEnum.ESTRANGEIRA && this.pesquisarPorEstrangeiro) {
|
|
1282
|
-
this.pessoa.tipoPessoa = this.defaultTipoPessoa;
|
|
1283
1294
|
}
|
|
1284
1295
|
}
|
|
1296
|
+
onTipoPessoaChange() {
|
|
1297
|
+
// Cria uma nova pessoa limpa com o tipo selecionado
|
|
1298
|
+
const novaPessoa = new UnbPessoaModel();
|
|
1299
|
+
novaPessoa.tipoPessoa = this.pessoa.tipoPessoa;
|
|
1300
|
+
// Inicializa arrays vazios
|
|
1301
|
+
novaPessoa.telefones = [];
|
|
1302
|
+
novaPessoa.enderecos = [];
|
|
1303
|
+
novaPessoa.emails = [];
|
|
1304
|
+
// Substitui a pessoa atual
|
|
1305
|
+
this.pessoa = novaPessoa;
|
|
1306
|
+
// Emite a nova pessoa limpa para o componente pai (form)
|
|
1307
|
+
this.pessoaEmitted.emit(this.pessoa);
|
|
1308
|
+
}
|
|
1285
1309
|
pesquisar() {
|
|
1286
1310
|
if (this.validar() == false)
|
|
1287
1311
|
return;
|
|
1288
1312
|
this.isLoading = true;
|
|
1313
|
+
this.isLoadingChange.emit(true);
|
|
1289
1314
|
let result;
|
|
1290
|
-
if (this.pessoa.tipoPessoa ==
|
|
1315
|
+
if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.FISICA) {
|
|
1291
1316
|
let cpf = this.pessoa.cpf.match(/\d/g)?.join(""); // remove caracteres
|
|
1292
1317
|
result = this.pessoaService.findByCpf(cpf);
|
|
1293
1318
|
}
|
|
1294
|
-
else if (this.pessoa.tipoPessoa ==
|
|
1319
|
+
else if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.JURIDICA) {
|
|
1295
1320
|
let cnpj = this.pessoa.cnpj.match(/\d/g)?.join(""); // remove caracteres
|
|
1296
1321
|
result = this.pessoaService.findByCnpj(cnpj);
|
|
1297
1322
|
}
|
|
1298
|
-
else if (this.pessoa.tipoPessoa ==
|
|
1323
|
+
else if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.ESTRANGEIRA) {
|
|
1299
1324
|
result = this.pessoaService.findByPassaporte(this.pessoa.passaporte);
|
|
1300
1325
|
}
|
|
1301
1326
|
if (result) {
|
|
@@ -1310,7 +1335,7 @@ class UnbPessoaPesquisarComponent {
|
|
|
1310
1335
|
this.handleErrorPrintConsole("[UnbPessoaPesquisarComponent] ERROR: backendURL.url está null. Insira o parâmetro (backendURL) com o valor da URL do seu Backend!");
|
|
1311
1336
|
return false;
|
|
1312
1337
|
}
|
|
1313
|
-
if (this.pessoa.tipoPessoa ==
|
|
1338
|
+
if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.FISICA) {
|
|
1314
1339
|
if (this.pessoa.cpf == null || (this.pessoa.cpf != null && this.pessoa.cpf == "")) {
|
|
1315
1340
|
this.handleError("CPF é um campo obrigatório.");
|
|
1316
1341
|
return false;
|
|
@@ -1320,7 +1345,7 @@ class UnbPessoaPesquisarComponent {
|
|
|
1320
1345
|
return false;
|
|
1321
1346
|
}
|
|
1322
1347
|
}
|
|
1323
|
-
else if (this.pessoa.tipoPessoa ==
|
|
1348
|
+
else if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.JURIDICA) {
|
|
1324
1349
|
if (this.pessoa.cnpj == null || (this.pessoa.cnpj != null && this.pessoa.cnpj == "")) {
|
|
1325
1350
|
this.handleError("CNPJ é um campo obrigatório");
|
|
1326
1351
|
return false;
|
|
@@ -1330,7 +1355,7 @@ class UnbPessoaPesquisarComponent {
|
|
|
1330
1355
|
return false;
|
|
1331
1356
|
}
|
|
1332
1357
|
}
|
|
1333
|
-
else if (this.pessoa.tipoPessoa ==
|
|
1358
|
+
else if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.ESTRANGEIRA) {
|
|
1334
1359
|
if (this.pessoa.passaporte == null || (this.pessoa.passaporte != null && this.pessoa.passaporte == "")) {
|
|
1335
1360
|
this.handleError("Passaporte é um campo obrigatório");
|
|
1336
1361
|
return false;
|
|
@@ -1345,9 +1370,13 @@ class UnbPessoaPesquisarComponent {
|
|
|
1345
1370
|
// Em unb-pessoa-pesquisar.component.ts
|
|
1346
1371
|
hadleResult(resultado) {
|
|
1347
1372
|
this.isLoading = false;
|
|
1373
|
+
this.isLoadingChange.emit(false);
|
|
1348
1374
|
if (resultado) {
|
|
1349
1375
|
resultado.tipoPessoa = this.pessoa.tipoPessoa; // o backend nao retorna o tipo pessoa. entao tenho que atribuir antes
|
|
1350
1376
|
this.pessoa = resultado;
|
|
1377
|
+
this.pessoa.enderecos = this.pessoa.enderecos || [];
|
|
1378
|
+
this.pessoa.telefones = this.pessoa.telefones || [];
|
|
1379
|
+
this.pessoa.emails = this.pessoa.emails || [];
|
|
1351
1380
|
// --- SEÇÃO DE LIMPEZA DE DADOS PRINCIPAIS (VOCÊ JÁ TINHA) ---
|
|
1352
1381
|
if (this.pessoa.sexo) {
|
|
1353
1382
|
if (this.pessoa.sexo.toUpperCase().trim() === 'FEMININO') {
|
|
@@ -1422,21 +1451,23 @@ class UnbPessoaPesquisarComponent {
|
|
|
1422
1451
|
email.ordem = email.ordem || (i + 1);
|
|
1423
1452
|
});
|
|
1424
1453
|
}
|
|
1425
|
-
if (this.pessoa.tipoPessoa ==
|
|
1454
|
+
if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.FISICA) {
|
|
1426
1455
|
this.pessoa.cpf = UnbUtils.formataCpf(resultado.cpf);
|
|
1427
1456
|
}
|
|
1428
|
-
else if (this.pessoa.tipoPessoa ==
|
|
1457
|
+
else if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.JURIDICA) {
|
|
1429
1458
|
this.pessoa.cnpj = UnbUtils.formataCnpj(resultado.cnpj);
|
|
1430
1459
|
}
|
|
1460
|
+
else if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.ESTRANGEIRA) {
|
|
1461
|
+
}
|
|
1431
1462
|
}
|
|
1432
1463
|
else {
|
|
1433
1464
|
// se chegar aki eh pq nao encontrou... (lógica que já existe)
|
|
1434
1465
|
let novaPessoa = new UnbPessoaModel();
|
|
1435
1466
|
novaPessoa.tipoPessoa = this.pessoa.tipoPessoa;
|
|
1436
|
-
if (this.pessoa.tipoPessoa ==
|
|
1467
|
+
if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.FISICA) {
|
|
1437
1468
|
novaPessoa.cpf = this.pessoa.cpf;
|
|
1438
1469
|
}
|
|
1439
|
-
else if (this.pessoa.tipoPessoa ==
|
|
1470
|
+
else if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.JURIDICA) {
|
|
1440
1471
|
novaPessoa.cnpj = this.pessoa.cnpj;
|
|
1441
1472
|
}
|
|
1442
1473
|
else {
|
|
@@ -1485,6 +1516,7 @@ class UnbPessoaPesquisarComponent {
|
|
|
1485
1516
|
}
|
|
1486
1517
|
handleError(erro) {
|
|
1487
1518
|
this.isLoading = false;
|
|
1519
|
+
this.isLoadingChange.emit(false);
|
|
1488
1520
|
this.pessoaEncontrado = false;
|
|
1489
1521
|
let erroTratado;
|
|
1490
1522
|
// --- ADAPTER: Converte string para o Objeto Padrão ---
|
|
@@ -1520,40 +1552,75 @@ class UnbPessoaPesquisarComponent {
|
|
|
1520
1552
|
});
|
|
1521
1553
|
}
|
|
1522
1554
|
tipoPessoaEnum() {
|
|
1523
|
-
return
|
|
1555
|
+
return UnbTipoPessoaEnum;
|
|
1556
|
+
}
|
|
1557
|
+
/**
|
|
1558
|
+
* Formata o CPF enquanto o usuário digita
|
|
1559
|
+
*/
|
|
1560
|
+
formatarCpf(event) {
|
|
1561
|
+
let valor = event.target.value.replace(/\D/g, ''); // Remove tudo que não é dígito
|
|
1562
|
+
if (valor.length <= 11) {
|
|
1563
|
+
// Aplica máscara: 000.000.000-00
|
|
1564
|
+
valor = valor.replace(/(\d{3})(\d)/, '$1.$2');
|
|
1565
|
+
valor = valor.replace(/(\d{3})(\d)/, '$1.$2');
|
|
1566
|
+
valor = valor.replace(/(\d{3})(\d{1,2})$/, '$1-$2');
|
|
1567
|
+
this.pessoa.cpf = valor;
|
|
1568
|
+
}
|
|
1569
|
+
}
|
|
1570
|
+
/**
|
|
1571
|
+
* Formata o CNPJ enquanto o usuário digita
|
|
1572
|
+
*/
|
|
1573
|
+
formatarCnpj(event) {
|
|
1574
|
+
let valor = event.target.value.replace(/\D/g, ''); // Remove tudo que não é dígito
|
|
1575
|
+
if (valor.length <= 14) {
|
|
1576
|
+
// Aplica máscara: 00.000.000/0000-00
|
|
1577
|
+
valor = valor.replace(/(\d{2})(\d)/, '$1.$2');
|
|
1578
|
+
valor = valor.replace(/(\d{3})(\d)/, '$1.$2');
|
|
1579
|
+
valor = valor.replace(/(\d{3})(\d)/, '$1/$2');
|
|
1580
|
+
valor = valor.replace(/(\d{4})(\d{1,2})$/, '$1-$2');
|
|
1581
|
+
this.pessoa.cnpj = valor;
|
|
1582
|
+
}
|
|
1524
1583
|
}
|
|
1525
1584
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbPessoaPesquisarComponent, deps: [{ token: UnBPessoaService }, { token: i1$2.MatSnackBar }, { token: UnbMensagemService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1526
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1585
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.2", type: UnbPessoaPesquisarComponent, selector: "lib-unb-pessoa-pesquisar", inputs: { backendURL: "backendURL", pesquisarPorCPF: ["pesquisarPorCPF", "pesquisarPorCPF", booleanAttribute], pesquisarPorCNPJ: ["pesquisarPorCNPJ", "pesquisarPorCNPJ", booleanAttribute], pesquisarPorEstrangeiro: ["pesquisarPorEstrangeiro", "pesquisarPorEstrangeiro", booleanAttribute], defaultTipoPessoa: "defaultTipoPessoa", campoPesquisaMaxWidth: "campoPesquisaMaxWidth", mostrarPesquisa: ["mostrarPesquisa", "mostrarPesquisa", booleanAttribute], limparAposPesquisa: ["limparAposPesquisa", "limparAposPesquisa", booleanAttribute], label: "label", placeholder: "placeholder", hint: "hint", pessoa: "pessoa" }, outputs: { pessoaEmitted: "pessoaEmitted", isLoadingChange: "isLoadingChange" }, ngImport: i0, template: "<form #pessoaForm=\"ngForm\" class=\"pesquisa-container\" [ngStyle]=\"{'--tamanho-maximo': campoPesquisaMaxWidth}\"\r\n (ngSubmit)=\"pesquisar()\">\r\n <div class=\"mensagem-container\" style=\"width: 100%;\">\r\n <unb-mensagem [identificador]=\"idMensagemService\" class=\"mensagem-form\"></unb-mensagem>\r\n </div>\r\n\r\n <div class=\"form-wrapper\">\r\n <div *ngIf=\"mostrarTipoPessoa\" class=\"radio-container\">\r\n <mat-radio-group aria-label=\"Tipo de Pessoa\" [(ngModel)]=\"pessoa.tipoPessoa\" #tipoPessoa=\"ngModel\"\r\n name=\"tipoPessoa\" (change)=\"onTipoPessoaChange()\">\r\n <mat-radio-button *ngIf=\"pesquisarPorCPF\" value=\"{{ tipoPessoaEnum().FISICA}}\">Pessoa F\u00EDsica</mat-radio-button>\r\n <mat-radio-button *ngIf=\"pesquisarPorCNPJ\" value=\"{{tipoPessoaEnum().JURIDICA}}\"> Pessoa\r\n Jur\u00EDdica</mat-radio-button>\r\n <mat-radio-button *ngIf=\"pesquisarPorEstrangeiro\"\r\n value=\"{{tipoPessoaEnum().ESTRANGEIRA}}\">Estrangeiro</mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n\r\n <div class=\"break\"></div>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa === tipoPessoaEnum().FISICA\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>CPF</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.cpf\" name=\"cpf\" #cpf=\"ngModel\" required={{true}}\r\n (input)=\"formatarCpf($event)\" maxlength=\"14\" placeholder=\"000.000.000-00\" />\r\n <button matSuffix mat-icon-button type=\"button\" aria-label=\"Pesquisar\" [disabled]=\"isLoading\"\r\n (click)=\"pesquisar()\">\r\n <ng-container *ngIf=\"!isLoading; else loadingIcon\">\r\n <mat-icon>search</mat-icon>\r\n </ng-container>\r\n <ng-template #loadingIcon>\r\n <mat-progress-spinner [diameter]=\"20\" mode=\"indeterminate\" color=\"primary\" class=\"spinner-button\">\r\n </mat-progress-spinner>\r\n </ng-template>\r\n </button>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa === tipoPessoaEnum().ESTRANGEIRA\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>Passaporte</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.passaporte\" name=\"passaporte\" required=\"true\" />\r\n <button matSuffix mat-icon-button type=\"button\" aria-label=\"Pesquisar\" (click)=\"pesquisar()\">\r\n <ng-container *ngIf=\"!isLoading; else loadingIcon\">\r\n <mat-icon>search</mat-icon>\r\n </ng-container>\r\n <ng-template #loadingIcon>\r\n <mat-progress-spinner [diameter]=\"20\" mode=\"indeterminate\" color=\"primary\" class=\"spinner-button\">\r\n </mat-progress-spinner>\r\n </ng-template>\r\n </button>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa === tipoPessoaEnum().JURIDICA\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>CNPJ</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.cnpj\" name=\"cnpj\" required=\"true\"\r\n (input)=\"formatarCnpj($event)\" maxlength=\"18\" placeholder=\"00.000.000/0000-00\" />\r\n <button matSuffix mat-icon-button type=\"button\" aria-label=\"Pesquisar\" (click)=\"pesquisar()\">\r\n <ng-container *ngIf=\"!isLoading; else loadingIcon\">\r\n <mat-icon>search</mat-icon>\r\n </ng-container>\r\n <ng-template #loadingIcon>\r\n <mat-progress-spinner [diameter]=\"20\" mode=\"indeterminate\" color=\"primary\" class=\"spinner-button\">\r\n </mat-progress-spinner>\r\n </ng-template>\r\n </button>\r\n </mat-form-field>\r\n </ng-container>\r\n </div>\r\n</form>", styles: [".pesquisa-container{display:flex;flex-direction:column;align-items:flex-start}.form-wrapper{display:flex;flex-direction:column;width:100%;max-width:var(--tamanho-maximo);gap:5px}.mensagem-form{display:block;width:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: UnbMensagemComponent, selector: "unb-mensagem", inputs: ["mensagem", "tipo", "identificador"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i12$1.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i12$1.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }] }); }
|
|
1527
1586
|
}
|
|
1528
1587
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbPessoaPesquisarComponent, decorators: [{
|
|
1529
1588
|
type: Component,
|
|
1530
|
-
args: [{ selector: 'lib-unb-pessoa-pesquisar', standalone: false, template: "<form #pessoaForm=\"ngForm\" class=\"pesquisa-container\" [ngStyle]=\"{'--tamanho-maximo': campoPesquisaMaxWidth}\"
|
|
1589
|
+
args: [{ selector: 'lib-unb-pessoa-pesquisar', standalone: false, template: "<form #pessoaForm=\"ngForm\" class=\"pesquisa-container\" [ngStyle]=\"{'--tamanho-maximo': campoPesquisaMaxWidth}\"\r\n (ngSubmit)=\"pesquisar()\">\r\n <div class=\"mensagem-container\" style=\"width: 100%;\">\r\n <unb-mensagem [identificador]=\"idMensagemService\" class=\"mensagem-form\"></unb-mensagem>\r\n </div>\r\n\r\n <div class=\"form-wrapper\">\r\n <div *ngIf=\"mostrarTipoPessoa\" class=\"radio-container\">\r\n <mat-radio-group aria-label=\"Tipo de Pessoa\" [(ngModel)]=\"pessoa.tipoPessoa\" #tipoPessoa=\"ngModel\"\r\n name=\"tipoPessoa\" (change)=\"onTipoPessoaChange()\">\r\n <mat-radio-button *ngIf=\"pesquisarPorCPF\" value=\"{{ tipoPessoaEnum().FISICA}}\">Pessoa F\u00EDsica</mat-radio-button>\r\n <mat-radio-button *ngIf=\"pesquisarPorCNPJ\" value=\"{{tipoPessoaEnum().JURIDICA}}\"> Pessoa\r\n Jur\u00EDdica</mat-radio-button>\r\n <mat-radio-button *ngIf=\"pesquisarPorEstrangeiro\"\r\n value=\"{{tipoPessoaEnum().ESTRANGEIRA}}\">Estrangeiro</mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n\r\n <div class=\"break\"></div>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa === tipoPessoaEnum().FISICA\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>CPF</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.cpf\" name=\"cpf\" #cpf=\"ngModel\" required={{true}}\r\n (input)=\"formatarCpf($event)\" maxlength=\"14\" placeholder=\"000.000.000-00\" />\r\n <button matSuffix mat-icon-button type=\"button\" aria-label=\"Pesquisar\" [disabled]=\"isLoading\"\r\n (click)=\"pesquisar()\">\r\n <ng-container *ngIf=\"!isLoading; else loadingIcon\">\r\n <mat-icon>search</mat-icon>\r\n </ng-container>\r\n <ng-template #loadingIcon>\r\n <mat-progress-spinner [diameter]=\"20\" mode=\"indeterminate\" color=\"primary\" class=\"spinner-button\">\r\n </mat-progress-spinner>\r\n </ng-template>\r\n </button>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa === tipoPessoaEnum().ESTRANGEIRA\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>Passaporte</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.passaporte\" name=\"passaporte\" required=\"true\" />\r\n <button matSuffix mat-icon-button type=\"button\" aria-label=\"Pesquisar\" (click)=\"pesquisar()\">\r\n <ng-container *ngIf=\"!isLoading; else loadingIcon\">\r\n <mat-icon>search</mat-icon>\r\n </ng-container>\r\n <ng-template #loadingIcon>\r\n <mat-progress-spinner [diameter]=\"20\" mode=\"indeterminate\" color=\"primary\" class=\"spinner-button\">\r\n </mat-progress-spinner>\r\n </ng-template>\r\n </button>\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa === tipoPessoaEnum().JURIDICA\">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>CNPJ</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.cnpj\" name=\"cnpj\" required=\"true\"\r\n (input)=\"formatarCnpj($event)\" maxlength=\"18\" placeholder=\"00.000.000/0000-00\" />\r\n <button matSuffix mat-icon-button type=\"button\" aria-label=\"Pesquisar\" (click)=\"pesquisar()\">\r\n <ng-container *ngIf=\"!isLoading; else loadingIcon\">\r\n <mat-icon>search</mat-icon>\r\n </ng-container>\r\n <ng-template #loadingIcon>\r\n <mat-progress-spinner [diameter]=\"20\" mode=\"indeterminate\" color=\"primary\" class=\"spinner-button\">\r\n </mat-progress-spinner>\r\n </ng-template>\r\n </button>\r\n </mat-form-field>\r\n </ng-container>\r\n </div>\r\n</form>", styles: [".pesquisa-container{display:flex;flex-direction:column;align-items:flex-start}.form-wrapper{display:flex;flex-direction:column;width:100%;max-width:var(--tamanho-maximo);gap:5px}.mensagem-form{display:block;width:100%}\n"] }]
|
|
1531
1590
|
}], ctorParameters: () => [{ type: UnBPessoaService }, { type: i1$2.MatSnackBar }, { type: UnbMensagemService }], propDecorators: { backendURL: [{
|
|
1532
|
-
type: Input
|
|
1591
|
+
type: Input,
|
|
1592
|
+
args: [{ required: true }]
|
|
1533
1593
|
}], pesquisarPorCPF: [{
|
|
1534
|
-
type: Input
|
|
1594
|
+
type: Input,
|
|
1595
|
+
args: [{ transform: booleanAttribute }]
|
|
1535
1596
|
}], pesquisarPorCNPJ: [{
|
|
1536
|
-
type: Input
|
|
1597
|
+
type: Input,
|
|
1598
|
+
args: [{ transform: booleanAttribute }]
|
|
1537
1599
|
}], pesquisarPorEstrangeiro: [{
|
|
1538
|
-
type: Input
|
|
1600
|
+
type: Input,
|
|
1601
|
+
args: [{ transform: booleanAttribute }]
|
|
1539
1602
|
}], defaultTipoPessoa: [{
|
|
1540
1603
|
type: Input
|
|
1541
1604
|
}], campoPesquisaMaxWidth: [{
|
|
1542
1605
|
type: Input
|
|
1543
|
-
}], pessoaEmitted: [{
|
|
1544
|
-
type: Output
|
|
1545
|
-
}], pessoa: [{
|
|
1546
|
-
type: Input
|
|
1547
1606
|
}], mostrarPesquisa: [{
|
|
1548
|
-
type: Input
|
|
1607
|
+
type: Input,
|
|
1608
|
+
args: [{ transform: booleanAttribute }]
|
|
1549
1609
|
}], limparAposPesquisa: [{
|
|
1550
|
-
type: Input
|
|
1610
|
+
type: Input,
|
|
1611
|
+
args: [{ transform: booleanAttribute }]
|
|
1551
1612
|
}], label: [{
|
|
1552
1613
|
type: Input
|
|
1553
1614
|
}], placeholder: [{
|
|
1554
1615
|
type: Input
|
|
1555
1616
|
}], hint: [{
|
|
1556
1617
|
type: Input
|
|
1618
|
+
}], pessoa: [{
|
|
1619
|
+
type: Input
|
|
1620
|
+
}], pessoaEmitted: [{
|
|
1621
|
+
type: Output
|
|
1622
|
+
}], isLoadingChange: [{
|
|
1623
|
+
type: Output
|
|
1557
1624
|
}] } });
|
|
1558
1625
|
|
|
1559
1626
|
class UnbPessoaTelefone {
|
|
@@ -2191,19 +2258,26 @@ class UnbPessoaFormComponent {
|
|
|
2191
2258
|
this.buscaRealizada = false;
|
|
2192
2259
|
this.endereco = new UnbPessoaEndereco();
|
|
2193
2260
|
this.email = new UnbPessoaEmail();
|
|
2194
|
-
this.tiposPessoa =
|
|
2261
|
+
this.tiposPessoa = UnbTipoPessoaEnum;
|
|
2195
2262
|
this.pessoa = new UnbPessoaModel(); // inicializa com pessoa
|
|
2196
2263
|
this.dadosSalvos = {}; // Armazena os dados ao trocar de tipo
|
|
2197
2264
|
// Quando verdadeiro, o formulário e ações ficam desabilitados porque os dados
|
|
2198
2265
|
// devem ser alterados apenas pelo app SouGov (matricula SIAPE presente)
|
|
2199
2266
|
this.isReadonlyFromSiape = false;
|
|
2267
|
+
// Mantemos o required se este componente também não funcionar sem a URL
|
|
2200
2268
|
this.backendURL = "";
|
|
2269
|
+
// Transformamos em booleanAttribute para aceitar pesquisarPorCPF="true"
|
|
2201
2270
|
this.pesquisarPorCPF = true;
|
|
2202
2271
|
this.pesquisarPorCNPJ = true;
|
|
2203
|
-
this.pesquisarPorEstrangeiro =
|
|
2272
|
+
this.pesquisarPorEstrangeiro = false;
|
|
2204
2273
|
this.campoPesquisaMaxWidth = '400px';
|
|
2205
2274
|
this.pessoaEmitted = new EventEmitter();
|
|
2275
|
+
this.isLoadingChange = new EventEmitter();
|
|
2206
2276
|
this.idMensagemService = "unbPessoaForm";
|
|
2277
|
+
// Controla se está incluindo nova pessoa ou editando existente
|
|
2278
|
+
this.documentoPesquisado = '';
|
|
2279
|
+
this.incluindoNovaPessoa = false;
|
|
2280
|
+
this.editandoPessoa = false;
|
|
2207
2281
|
}
|
|
2208
2282
|
ngOnInit() {
|
|
2209
2283
|
this.alertService.hideMessage(this.idMensagemService);
|
|
@@ -2223,6 +2297,10 @@ class UnbPessoaFormComponent {
|
|
|
2223
2297
|
this.buscaRealizada = true;
|
|
2224
2298
|
this.pessoa = pessoaRecebida;
|
|
2225
2299
|
this.alertService.hideMessage(this.idMensagemService);
|
|
2300
|
+
// Reseta o formulário quando uma nova pessoa é recebida
|
|
2301
|
+
if (this.pessoaForm) {
|
|
2302
|
+
this.pessoaForm.resetForm();
|
|
2303
|
+
}
|
|
2226
2304
|
// inicializa pra nao quebrar
|
|
2227
2305
|
if (!this.pessoa.enderecos)
|
|
2228
2306
|
this.pessoa.enderecos = [];
|
|
@@ -2230,15 +2308,20 @@ class UnbPessoaFormComponent {
|
|
|
2230
2308
|
this.pessoa.emails = [];
|
|
2231
2309
|
if (!this.pessoa.telefones)
|
|
2232
2310
|
this.pessoa.telefones = [];
|
|
2233
|
-
//
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
2241
|
-
this.
|
|
2311
|
+
// 1. Verifica se é um registro que já existe no banco
|
|
2312
|
+
const existeRegistro = !!this.pessoa?.codigoPessoa;
|
|
2313
|
+
// 2. Verifica se é bloqueado pelo SIAPE (Só faz sentido se o registro existir)
|
|
2314
|
+
this.isReadonlyFromSiape = existeRegistro && !!this.pessoa?.matriculaSiape;
|
|
2315
|
+
// 3. Define o documento (usando aquele mapa limpo)
|
|
2316
|
+
const docMap = {
|
|
2317
|
+
[UnbTipoPessoaEnum.FISICA]: this.pessoa.cpf,
|
|
2318
|
+
[UnbTipoPessoaEnum.JURIDICA]: this.pessoa.cnpj,
|
|
2319
|
+
[UnbTipoPessoaEnum.ESTRANGEIRA]: this.pessoa.passaporte
|
|
2320
|
+
};
|
|
2321
|
+
this.documentoPesquisado = docMap[this.pessoa.tipoPessoa] || '';
|
|
2322
|
+
// 4. (Opcional) Snackbar se for SIAPE
|
|
2323
|
+
if (this.isReadonlyFromSiape) {
|
|
2324
|
+
this.openSnackBar('Dados importados do SIAPE não podem ser alterados.');
|
|
2242
2325
|
}
|
|
2243
2326
|
}
|
|
2244
2327
|
salvar(form) {
|
|
@@ -2247,12 +2330,14 @@ class UnbPessoaFormComponent {
|
|
|
2247
2330
|
if (!this.validar(form))
|
|
2248
2331
|
return;
|
|
2249
2332
|
this.isLoading = true;
|
|
2333
|
+
this.isLoadingChange.emit(true);
|
|
2250
2334
|
const payload = this.convertPessoaToPayload(this.pessoa);
|
|
2251
2335
|
// O service já tem o .pipe(catchError) interno, então o erro chega tratado
|
|
2252
2336
|
this.service.salvar(payload, this.pessoa.tipoPessoa)
|
|
2253
2337
|
.subscribe({
|
|
2254
2338
|
next: (resposta) => {
|
|
2255
2339
|
this.isLoading = false;
|
|
2340
|
+
this.isLoadingChange.emit(false);
|
|
2256
2341
|
// Mensagem de Sucesso
|
|
2257
2342
|
this.alertService.showMessage("<strong>Registro salvo com sucesso!</strong>", UnbTipoMensagemEnum.SUCCESS, this.idMensagemService);
|
|
2258
2343
|
// Atualiza dados retornados (IDs gerados)
|
|
@@ -2291,7 +2376,7 @@ class UnbPessoaFormComponent {
|
|
|
2291
2376
|
this.openSnackBar("Cadastre pelo menos um e-mail no botão Cadastrar Novo Email");
|
|
2292
2377
|
return false;
|
|
2293
2378
|
}
|
|
2294
|
-
if (this.pessoa.tipoPessoa ==
|
|
2379
|
+
if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.FISICA) {
|
|
2295
2380
|
if (!this.pessoa.nome || (this.pessoa && this.pessoa.nome == "")) {
|
|
2296
2381
|
this.openSnackBar("Nome é um campo obrigatório");
|
|
2297
2382
|
return false;
|
|
@@ -2301,7 +2386,7 @@ class UnbPessoaFormComponent {
|
|
|
2301
2386
|
return false;
|
|
2302
2387
|
}
|
|
2303
2388
|
}
|
|
2304
|
-
if (this.pessoa.tipoPessoa ==
|
|
2389
|
+
if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.ESTRANGEIRA) {
|
|
2305
2390
|
if (!this.pessoa.nome || (this.pessoa && this.pessoa.nome == "")) {
|
|
2306
2391
|
this.openSnackBar("Nome é um campo obrigatório");
|
|
2307
2392
|
return false;
|
|
@@ -2311,7 +2396,7 @@ class UnbPessoaFormComponent {
|
|
|
2311
2396
|
return false;
|
|
2312
2397
|
}
|
|
2313
2398
|
}
|
|
2314
|
-
if (this.pessoa.tipoPessoa ==
|
|
2399
|
+
if (this.pessoa.tipoPessoa == UnbTipoPessoaEnum.JURIDICA) {
|
|
2315
2400
|
if (this.pessoa.cnpj == null || (this.pessoa.cnpj != null && this.pessoa.cnpj == "")) {
|
|
2316
2401
|
this.openSnackBar("CNPJ é um campo obrigatório");
|
|
2317
2402
|
return false;
|
|
@@ -2334,7 +2419,7 @@ class UnbPessoaFormComponent {
|
|
|
2334
2419
|
});
|
|
2335
2420
|
}
|
|
2336
2421
|
tipoPessoaEnum() {
|
|
2337
|
-
return
|
|
2422
|
+
return UnbTipoPessoaEnum;
|
|
2338
2423
|
}
|
|
2339
2424
|
getListaEstados() {
|
|
2340
2425
|
return listaEstados;
|
|
@@ -2456,6 +2541,7 @@ class UnbPessoaFormComponent {
|
|
|
2456
2541
|
}
|
|
2457
2542
|
handleError(erro) {
|
|
2458
2543
|
this.isLoading = false;
|
|
2544
|
+
this.isLoadingChange.emit(false);
|
|
2459
2545
|
// 1. Mostra a mensagem curta/simples no SnackBar (Fundo da tela)
|
|
2460
2546
|
// Ex: "O formulário possui erros de validação." ou "Sessão expirada."
|
|
2461
2547
|
if (erro.mensagemSimples) {
|
|
@@ -2469,26 +2555,43 @@ class UnbPessoaFormComponent {
|
|
|
2469
2555
|
this.alertService.showMessage(erro.mensagemHtml, UnbTipoMensagemEnum.DANGER, this.idMensagemService);
|
|
2470
2556
|
}
|
|
2471
2557
|
}
|
|
2558
|
+
getLabelDocumento() {
|
|
2559
|
+
switch (this.pessoa.tipoPessoa) {
|
|
2560
|
+
case this.tipoPessoaEnum().FISICA: return 'CPF';
|
|
2561
|
+
case this.tipoPessoaEnum().JURIDICA: return 'CNPJ';
|
|
2562
|
+
case this.tipoPessoaEnum().ESTRANGEIRA: return 'Passaporte';
|
|
2563
|
+
default: return 'Documento';
|
|
2564
|
+
}
|
|
2565
|
+
}
|
|
2472
2566
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbPessoaFormComponent, deps: [{ token: UnBPessoaService }, { token: i1$2.MatSnackBar }, { token: UnbMensagemService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2473
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: UnbPessoaFormComponent, selector: "lib-unb-pessoa-form", inputs: { backendURL: "backendURL", defaultTipoPessoa: "defaultTipoPessoa", pesquisarPorCPF: "pesquisarPorCPF", pesquisarPorCNPJ: "pesquisarPorCNPJ", pesquisarPorEstrangeiro: "pesquisarPorEstrangeiro", campoPesquisaMaxWidth: "campoPesquisaMaxWidth" }, outputs: { pessoaEmitted: "pessoaEmitted" }, ngImport: i0, template: "<mat-progress-bar *ngIf=\"isLoading\" mode=\"indeterminate\"></mat-progress-bar>\r\n\r\n<div class=\"form-container\" [class.disabled-wrapper]=\"isLoading\">\r\n <lib-unb-pessoa-pesquisar \r\n [backendURL]=\"backendURL\" \r\n [defaultTipoPessoa]=\"defaultTipoPessoa\"\r\n [pesquisarPorCNPJ]=\"pesquisarPorCNPJ\"\r\n [pesquisarPorCPF]=\"pesquisarPorCPF\"\r\n [pesquisarPorEstrangeiro]=\"pesquisarPorEstrangeiro\"\r\n [campoPesquisaMaxWidth]=\"campoPesquisaMaxWidth\" (pessoaEmitted)=\"pessoaRecebida($event)\">\r\n </lib-unb-pessoa-pesquisar>\r\n</div>\r\n\r\n<unb-mensagem [identificador]=\"idMensagemService\"></unb-mensagem>\r\n\r\n<form #pessoaForm=\"ngForm\" [class.readonly]=\"isReadonlyFromSiape || isLoading\" class=\"form-container mt-2\"\r\n *ngIf=\"buscaRealizada\" (ngSubmit)=\"salvar(pessoaForm)\">\r\n\r\n <!-- Campos Pessoa F\u00EDsica e Estrangeira -->\r\n <ng-container\r\n *ngIf=\"pessoa.tipoPessoa == tipoPessoaEnum().FISICA || pessoa.tipoPessoa == tipoPessoaEnum().ESTRANGEIRA\">\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nome\" name=\"nome\" #nome=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Sexo</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoSexo\" name=\"codigoSexo\" #codigoSexo=\"ngModel\" required>\r\n <mat-option [value]=\"1\">Masculino</mat-option>\r\n <mat-option [value]=\"2\">Feminino</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-15\" appearance=\"outline\">\r\n <mat-label>Data Nascimento</mat-label>\r\n <input matInput [matDatepicker]=\"dataNascimentoPicker\" [(ngModel)]=\"pessoa.dataNascimento\" name=\"dataNascimento\"\r\n #dataNascimento=\"ngModel\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"dataNascimentoPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #dataNascimentoPicker></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Estado Civil</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoEstadoCivil\" name=\"codigoEstadoCivil\" #codigoEstadoCivil=\"ngModel\">\r\n <mat-option *ngFor=\"let estado of estadosCivil | async\" [value]=\"estado.codigo\">\r\n {{ estado.denominacao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <!--\r\n <mat-form-field class=\"form-15\" appearance=\"outline\">\r\n <mat-label>Naturalidade</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.naturalidade\" name=\"naturalidade\" #naturalidade=\"ngModel\" required>\r\n <mat-option *ngFor=\"let cidade of getListaEstados()\" [value]=\"cidade.codigo\">\r\n {{ cidade.descricao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n -->\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Pa\u00EDs Nascimento</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoPaisNascimento\" name=\"codigoPaisNascimento\" #codigoPaisNascimento=\"ngModel\"\r\n required>\r\n <mat-option *ngFor=\"let paisNascimento of paises | async\" [value]=\"paisNascimento.codigo\">\r\n <span *ngIf=\"paisNascimento.denominacao === 'BRASIL'\">\uD83C\uDDE7\uD83C\uDDF7 <b>{{ paisNascimento.denominacao }}</b></span>\r\n <span *ngIf=\"paisNascimento.denominacao !== 'BRASIL'\">{{ paisNascimento.denominacao }}</span>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\" *ngIf=\"pessoa.codigoPaisNascimento == 22\"> <!-- 22 eh Brasil-->\r\n <mat-label>UF Nascimento</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.ufNascimento\" name=\"ufNascimento\" #ufNascimento=\"ngModel\" required>\r\n <mat-option *ngFor=\"let ufNascimento of getListaEstados()\" [value]=\"ufNascimento.identificador\">\r\n {{ ufNascimento.identificador }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-15\" appearance=\"outline\" *ngIf=\"pessoa.codigoPaisNascimento == 22\">\r\n <mat-label>Naturalidade</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.naturalidade\" name=\"naturalidade\" #naturalidade=\"ngModel\"\r\n required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Escolaridade</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.escolaridade\" name=\"codigoEscolaridade\" #codigoEscolaridade=\"ngModel\" required>\r\n <mat-option *ngFor=\"let escolaridade of escolaridade | async\" [value]=\"escolaridade.codigo\">\r\n {{ escolaridade.denominacao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome Social</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomeSocial\" name=\"nomeSocial\" #nomeSocial=\"ngModel\" />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome da M\u00E3e</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomeMae\" name=\"nomeMae\" #nomeMae=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome do Pai</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomePai\" name=\"nomePai\" #nomePai=\"ngModel\" required />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Campos Pessoa Jur\u00EDdica -->\r\n <ng-container *ngIf=\"pessoa.tipoPessoa === tipoPessoaEnum().JURIDICA\">\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Raz\u00E3o Social</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.razaoSocial\" name=\"razaoSocial\" />\r\n </mat-form-field>\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome Fantasia</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomeFantasia\" name=\"nomeFantasia\" />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa == tipoPessoaEnum().FISICA\">\r\n <b style=\"flex: 1 1 100%; margin-bottom: 10px;\">Documenta\u00E7\u00E3o</b>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Identidade</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.rg\" name=\"rg\" #rg=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>\u00D3rg\u00E3o Emissor</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.rgOrgao\" name=\"rgOrgao\" #rgOrgao=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Unidade Federativa</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.rgUf\" name=\"rgUf\" #rgUf=\"ngModel\" required>\r\n <mat-option *ngFor=\"let cidade of getListaEstados()\" [value]=\"cidade.identificador\">\r\n {{ cidade.identificador }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-20\" appearance=\"outline\">\r\n <mat-label>Data de Emiss\u00E3o</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.rgDataEmissao\" name=\"rgDataEmissao\" #rgDataEmissao=\"ngModel\" />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa == tipoPessoaEnum().ESTRANGEIRA \">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>Data Chegada Brasil</mat-label>\r\n <input matInput [matDatepicker]=\"dataChegadaBrasilPicker\" [(ngModel)]=\"pessoa.dataChegadaBrasil\"\r\n name=\"dataChegadaBrasil\" #dataChegadaBrasil=\"ngModel\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"dataChegadaBrasilPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #dataChegadaBrasilPicker></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Pa\u00EDs Passaporte</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoPaisPassaporte\" name=\"codigoPaisPassaporte\" #codigoPaisPassaporte=\"ngModel\"\r\n required>\r\n <mat-option *ngFor=\"let paisNascimento of paises | async\" [value]=\"paisNascimento.codigo\">\r\n {{ paisNascimento.denominacao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>N\u00FAmero Passaporte</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.passaporte\" name=\"passaporte\" #passaporte=\"ngModel\" required />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <lib-unb-pessoa-telefone-list style=\"flex: 1 1 100%;\" [backendURL]=\"backendURL\"\r\n [telefones]=\"pessoa.telefones\" (telefonesEmitted)=\"telefonesEmitted($event)\"></lib-unb-pessoa-telefone-list>\r\n\r\n <lib-unb-pessoa-endereco-list style=\"flex: 1 1 100%;\" [backendURL]=\"backendURL\"\r\n [enderecos]=\"pessoa.enderecos\" (enderecosEmitted)=\"enderecosEmitted($event)\"></lib-unb-pessoa-endereco-list>\r\n\r\n <lib-unb-pessoa-email-list style=\"flex: 1 1 100%;\" [backendURL]=\"backendURL\" [emails]=\"pessoa.emails\"\r\n (emailsEmitted)=\"emailsEmitted($event)\"></lib-unb-pessoa-email-list>\r\n\r\n <div *ngIf=\"isReadonlyFromSiape\" style=\"flex:1 1 100%; margin-bottom:10px;\">\r\n <mat-card>\r\n <mat-card-content>\r\n <strong>Servidor com matr\u00EDcula SIAPE deve ter seus dados autalizados pelo aplicativo do sougov</strong>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n\r\n <mat-card-actions class=\"card-actions-buttons\" *ngIf=\"buscaRealizada\">\r\n <button mat-flat-button [disabled]=\"isLoading || isReadonlyFromSiape\" type=\"submit\" color=\"primary\">\r\n Salvar\r\n </button>\r\n </mat-card-actions>\r\n\r\n</form>", styles: [".card-actions-buttons{display:flex;gap:5px;flex-wrap:wrap}.form-container{display:flex;flex-wrap:wrap;column-gap:10px}:host{display:block}@media (max-width: 1000px){.form-container{flex-direction:column;gap:5px}}.break{flex-basis:100%;height:0}.form-5{flex:1 1 5%}.inline-table-container{display:flex;align-items:center;justify-content:space-between;padding:5px}@media (max-width: 600px){.form-5,.form-10,.form-15{flex:1 1 100%}}.form-10{flex:1 1 10%}.form-15{flex:1 1 15%}.form-20{flex:1 1 20%}.form-25{flex:1 1 25%}.form-30{flex:1 1 30%}.form-35{flex:1 1 35%}.form-40{flex:1 1 40%}.form-45{flex:1 1 45%}.form-50{flex:1 1 50%}.form-100{flex:1 1 100%;min-width:250px}.readonly{pointer-events:none;opacity:.6}.disabled-wrapper{pointer-events:none;opacity:.6;filter:grayscale(1)}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: UnbMensagemComponent, selector: "unb-mensagem", inputs: ["mensagem", "tipo", "identificador"] }, { kind: "component", type: i7$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i7$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i7$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i13.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i14.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i14.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i14.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: UnbPessoaPesquisarComponent, selector: "lib-unb-pessoa-pesquisar", inputs: ["backendURL", "pesquisarPorCPF", "pesquisarPorCNPJ", "pesquisarPorEstrangeiro", "defaultTipoPessoa", "campoPesquisaMaxWidth", "pessoa", "mostrarPesquisa", "limparAposPesquisa", "label", "placeholder", "hint"], outputs: ["pessoaEmitted"] }, { kind: "component", type: UnbPessoaTelefoneListComponent, selector: "lib-unb-pessoa-telefone-list", inputs: ["podeEditar", "telefones", "backendURL"], outputs: ["telefonesEmitted"] }, { kind: "component", type: UnbPessoaenderecoListComponent, selector: "lib-unb-pessoa-endereco-list", inputs: ["podeEditar", "enderecos", "backendURL"], outputs: ["enderecosEmitted"] }, { kind: "component", type: UnbPessoaEmailListComponent, selector: "lib-unb-pessoa-email-list", inputs: ["podeEditar", "emails", "backendURL"], outputs: ["emailsEmitted"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
|
|
2567
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.2", type: UnbPessoaFormComponent, selector: "lib-unb-pessoa-form", inputs: { backendURL: "backendURL", pesquisarPorCPF: ["pesquisarPorCPF", "pesquisarPorCPF", booleanAttribute], pesquisarPorCNPJ: ["pesquisarPorCNPJ", "pesquisarPorCNPJ", booleanAttribute], pesquisarPorEstrangeiro: ["pesquisarPorEstrangeiro", "pesquisarPorEstrangeiro", booleanAttribute], defaultTipoPessoa: "defaultTipoPessoa", campoPesquisaMaxWidth: "campoPesquisaMaxWidth" }, outputs: { pessoaEmitted: "pessoaEmitted", isLoadingChange: "isLoadingChange" }, viewQueries: [{ propertyName: "pessoaForm", first: true, predicate: ["pessoaForm"], descendants: true }], ngImport: i0, template: "<mat-progress-bar *ngIf=\"isLoading\" mode=\"indeterminate\"></mat-progress-bar>\r\n\r\n<div class=\"form-container\" [class.disabled-wrapper]=\"isLoading\">\r\n <lib-unb-pessoa-pesquisar \r\n [backendURL]=\"backendURL\" \r\n [defaultTipoPessoa]=\"defaultTipoPessoa\"\r\n [pesquisarPorCNPJ]=\"pesquisarPorCNPJ\" \r\n [pesquisarPorCPF]=\"pesquisarPorCPF\"\r\n [pesquisarPorEstrangeiro]=\"pesquisarPorEstrangeiro\" \r\n [campoPesquisaMaxWidth]=\"campoPesquisaMaxWidth\"\r\n (pessoaEmitted)=\"pessoaRecebida($event)\">\r\n </lib-unb-pessoa-pesquisar>\r\n</div>\r\n\r\n<unb-mensagem [identificador]=\"idMensagemService\"></unb-mensagem>\r\n\r\n<!-- Label indicando que est\u00E1 incluindo nova pessoa -->\r\n<div *ngIf=\"documentoPesquisado\"\r\n class=\"status-banner\" \r\n [ngClass]=\"{\r\n 'status-inclusao': !pessoa.codigoPessoa,\r\n 'status-edicao': pessoa.codigoPessoa && !isReadonlyFromSiape,\r\n 'status-bloqueado': isReadonlyFromSiape\r\n }\">\r\n\r\n <mat-icon>\r\n {{ !pessoa.codigoPessoa ? 'person_add' : (isReadonlyFromSiape ? 'lock' : 'edit') }}\r\n </mat-icon>\r\n\r\n <span>\r\n <ng-container *ngIf=\"!pessoa.codigoPessoa\">Incluindo nova pessoa</ng-container>\r\n <ng-container *ngIf=\"pessoa.codigoPessoa && !isReadonlyFromSiape\">Editando pessoa</ng-container>\r\n <ng-container *ngIf=\"isReadonlyFromSiape\">Registro SIAPE (Visualiza\u00E7\u00E3o)</ng-container>\r\n\r\n com <strong>{{ getLabelDocumento() }} {{ documentoPesquisado }}</strong>\r\n </span>\r\n\r\n</div>\r\n\r\n\r\n<form #pessoaForm=\"ngForm\" [class.readonly]=\"isReadonlyFromSiape || isLoading\" class=\"form-container mt-2\"\r\n *ngIf=\"buscaRealizada\" (ngSubmit)=\"salvar(pessoaForm)\">\r\n\r\n <!-- Campos Pessoa F\u00EDsica e Estrangeira -->\r\n <ng-container\r\n *ngIf=\"pessoa.tipoPessoa == tipoPessoaEnum().FISICA || pessoa.tipoPessoa == tipoPessoaEnum().ESTRANGEIRA\">\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nome\" name=\"nome\" #nome=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Sexo</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoSexo\" name=\"codigoSexo\" #codigoSexo=\"ngModel\" required>\r\n <mat-option [value]=\"1\">Masculino</mat-option>\r\n <mat-option [value]=\"2\">Feminino</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-15\" appearance=\"outline\">\r\n <mat-label>Data Nascimento</mat-label>\r\n <input matInput [matDatepicker]=\"dataNascimentoPicker\" [(ngModel)]=\"pessoa.dataNascimento\" name=\"dataNascimento\"\r\n #dataNascimento=\"ngModel\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"dataNascimentoPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #dataNascimentoPicker></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Estado Civil</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoEstadoCivil\" name=\"codigoEstadoCivil\" #codigoEstadoCivil=\"ngModel\">\r\n <mat-option *ngFor=\"let estado of estadosCivil | async\" [value]=\"estado.codigo\">\r\n {{ estado.denominacao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <!--\r\n <mat-form-field class=\"form-15\" appearance=\"outline\">\r\n <mat-label>Naturalidade</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.naturalidade\" name=\"naturalidade\" #naturalidade=\"ngModel\" required>\r\n <mat-option *ngFor=\"let cidade of getListaEstados()\" [value]=\"cidade.codigo\">\r\n {{ cidade.descricao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n -->\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Pa\u00EDs Nascimento</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoPaisNascimento\" name=\"codigoPaisNascimento\" #codigoPaisNascimento=\"ngModel\"\r\n required>\r\n <mat-option *ngFor=\"let paisNascimento of paises | async\" [value]=\"paisNascimento.codigo\">\r\n <span *ngIf=\"paisNascimento.denominacao === 'BRASIL'\">\uD83C\uDDE7\uD83C\uDDF7 <b>{{ paisNascimento.denominacao }}</b></span>\r\n <span *ngIf=\"paisNascimento.denominacao !== 'BRASIL'\">{{ paisNascimento.denominacao }}</span>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\" *ngIf=\"pessoa.codigoPaisNascimento == 22\"> <!-- 22 eh Brasil-->\r\n <mat-label>UF Nascimento</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.ufNascimento\" name=\"ufNascimento\" #ufNascimento=\"ngModel\" required>\r\n <mat-option *ngFor=\"let estado of getListaEstados()\" [value]=\"estado.identificador\">\r\n {{ estado.identificador }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-15\" appearance=\"outline\" *ngIf=\"pessoa.codigoPaisNascimento == 22\">\r\n <mat-label>Naturalidade</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.naturalidade\" name=\"naturalidade\" #naturalidade=\"ngModel\"\r\n required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Escolaridade</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.escolaridade\" name=\"codigoEscolaridade\" #codigoEscolaridade=\"ngModel\" required>\r\n <mat-option *ngFor=\"let escolaridade of escolaridade | async\" [value]=\"escolaridade.codigo\">\r\n {{ escolaridade.denominacao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome Social</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomeSocial\" name=\"nomeSocial\" #nomeSocial=\"ngModel\" />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome da M\u00E3e</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomeMae\" name=\"nomeMae\" #nomeMae=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome do Pai</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomePai\" name=\"nomePai\" #nomePai=\"ngModel\" required />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Campos Pessoa Jur\u00EDdica -->\r\n <ng-container *ngIf=\"pessoa.tipoPessoa === tipoPessoaEnum().JURIDICA\">\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Raz\u00E3o Social</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.razaoSocial\" name=\"razaoSocial\" />\r\n </mat-form-field>\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome Fantasia</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomeFantasia\" name=\"nomeFantasia\" />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa == tipoPessoaEnum().FISICA\">\r\n <b style=\"flex: 1 1 100%; margin-bottom: 10px;\">Documenta\u00E7\u00E3o</b>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Identidade</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.rg\" name=\"rg\" #rg=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>\u00D3rg\u00E3o Emissor</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.rgOrgao\" name=\"rgOrgao\" #rgOrgao=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Unidade Federativa</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.rgUf\" name=\"rgUf\" #rgUf=\"ngModel\" required>\r\n <mat-option *ngFor=\"let estado of getListaEstados()\" [value]=\"estado.identificador\">\r\n {{ estado.identificador }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-20\" appearance=\"outline\">\r\n <mat-label>Data de Emiss\u00E3o</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.rgDataEmissao\" name=\"rgDataEmissao\" #rgDataEmissao=\"ngModel\" />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa == tipoPessoaEnum().ESTRANGEIRA \">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>Data Chegada Brasil</mat-label>\r\n <input matInput [matDatepicker]=\"dataChegadaBrasilPicker\" [(ngModel)]=\"pessoa.dataChegadaBrasil\"\r\n name=\"dataChegadaBrasil\" #dataChegadaBrasil=\"ngModel\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"dataChegadaBrasilPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #dataChegadaBrasilPicker></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Pa\u00EDs Passaporte</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoPaisPassaporte\" name=\"codigoPaisPassaporte\" #codigoPaisPassaporte=\"ngModel\"\r\n required>\r\n <mat-option *ngFor=\"let paisNascimento of paises | async\" [value]=\"paisNascimento.codigo\">\r\n {{ paisNascimento.denominacao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>N\u00FAmero Passaporte</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.passaporte\" name=\"passaporte\" #passaporte=\"ngModel\" required />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <lib-unb-pessoa-telefone-list style=\"flex: 1 1 100%;\" [backendURL]=\"backendURL\" [telefones]=\"pessoa.telefones\"\r\n (telefonesEmitted)=\"telefonesEmitted($event)\"></lib-unb-pessoa-telefone-list>\r\n\r\n <lib-unb-pessoa-endereco-list style=\"flex: 1 1 100%;\" [backendURL]=\"backendURL\" [enderecos]=\"pessoa.enderecos\"\r\n (enderecosEmitted)=\"enderecosEmitted($event)\"></lib-unb-pessoa-endereco-list>\r\n\r\n <lib-unb-pessoa-email-list style=\"flex: 1 1 100%;\" [backendURL]=\"backendURL\" [emails]=\"pessoa.emails\"\r\n (emailsEmitted)=\"emailsEmitted($event)\"></lib-unb-pessoa-email-list>\r\n\r\n <div *ngIf=\"isReadonlyFromSiape\" style=\"flex:1 1 100%; margin-bottom:10px;\">\r\n <mat-card>\r\n <mat-card-content>\r\n <strong>Servidor com matr\u00EDcula SIAPE deve ter seus dados autalizados pelo aplicativo do sougov</strong>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n\r\n <mat-card-actions class=\"card-actions-buttons\" *ngIf=\"buscaRealizada\">\r\n <button mat-flat-button [disabled]=\"isLoading || isReadonlyFromSiape\" type=\"submit\" color=\"primary\">\r\n Salvar\r\n </button>\r\n </mat-card-actions>\r\n\r\n</form>", styles: [".card-actions-buttons{display:flex;gap:5px;flex-wrap:wrap}.form-container{display:flex;flex-wrap:wrap;column-gap:10px}:host{display:block}@media (max-width: 1000px){.form-container{flex-direction:column;gap:5px}}.break{flex-basis:100%;height:0}.form-5{flex:1 1 5%}.inline-table-container{display:flex;align-items:center;justify-content:space-between;padding:5px}@media (max-width: 600px){.form-5,.form-10,.form-15{flex:1 1 100%}}.form-10{flex:1 1 10%}.form-15{flex:1 1 15%}.form-20{flex:1 1 20%}.form-25{flex:1 1 25%}.form-30{flex:1 1 30%}.form-35{flex:1 1 35%}.form-40{flex:1 1 40%}.form-45{flex:1 1 45%}.form-50{flex:1 1 50%}.form-100{flex:1 1 100%;min-width:250px}.readonly{pointer-events:none;opacity:.6}.disabled-wrapper{pointer-events:none;opacity:.6;filter:grayscale(1)}.status-banner{display:flex;align-items:center;gap:8px;padding:10px 16px;margin:2px 0;border-radius:6px;font-size:14px;font-weight:500}.status-banner.status-inclusao{background-color:#e3f2fd;color:#1565c0;border:1px solid #bbdefb}.status-banner.status-edicao{background-color:#fff3e0;color:#ef6c00;border:1px solid #ffe0b2}.status-banner.status-bloqueado{background-color:#fce4ec;color:#c2185b;border:1px solid #f8bbd0}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: UnbMensagemComponent, selector: "unb-mensagem", inputs: ["mensagem", "tipo", "identificador"] }, { kind: "component", type: i7$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i7$1.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i7$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i14.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i15.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i15.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i15.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: UnbPessoaPesquisarComponent, selector: "lib-unb-pessoa-pesquisar", inputs: ["backendURL", "pesquisarPorCPF", "pesquisarPorCNPJ", "pesquisarPorEstrangeiro", "defaultTipoPessoa", "campoPesquisaMaxWidth", "mostrarPesquisa", "limparAposPesquisa", "label", "placeholder", "hint", "pessoa"], outputs: ["pessoaEmitted", "isLoadingChange"] }, { kind: "component", type: UnbPessoaTelefoneListComponent, selector: "lib-unb-pessoa-telefone-list", inputs: ["podeEditar", "telefones", "backendURL"], outputs: ["telefonesEmitted"] }, { kind: "component", type: UnbPessoaenderecoListComponent, selector: "lib-unb-pessoa-endereco-list", inputs: ["podeEditar", "enderecos", "backendURL"], outputs: ["enderecosEmitted"] }, { kind: "component", type: UnbPessoaEmailListComponent, selector: "lib-unb-pessoa-email-list", inputs: ["podeEditar", "emails", "backendURL"], outputs: ["emailsEmitted"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
|
|
2474
2568
|
}
|
|
2475
2569
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UnbPessoaFormComponent, decorators: [{
|
|
2476
2570
|
type: Component,
|
|
2477
|
-
args: [{ selector: 'lib-unb-pessoa-form', standalone: false, template: "<mat-progress-bar *ngIf=\"isLoading\" mode=\"indeterminate\"></mat-progress-bar>\r\n\r\n<div class=\"form-container\" [class.disabled-wrapper]=\"isLoading\">\r\n <lib-unb-pessoa-pesquisar \r\n [backendURL]=\"backendURL\" \r\n [defaultTipoPessoa]=\"defaultTipoPessoa\"\r\n [pesquisarPorCNPJ]=\"pesquisarPorCNPJ\"\r\n [pesquisarPorCPF]=\"pesquisarPorCPF\"\r\n [pesquisarPorEstrangeiro]=\"pesquisarPorEstrangeiro\"\r\n [campoPesquisaMaxWidth]=\"campoPesquisaMaxWidth\" (pessoaEmitted)=\"pessoaRecebida($event)\">\r\n </lib-unb-pessoa-pesquisar>\r\n</div>\r\n\r\n<unb-mensagem [identificador]=\"idMensagemService\"></unb-mensagem>\r\n\r\n<form #pessoaForm=\"ngForm\" [class.readonly]=\"isReadonlyFromSiape || isLoading\" class=\"form-container mt-2\"\r\n *ngIf=\"buscaRealizada\" (ngSubmit)=\"salvar(pessoaForm)\">\r\n\r\n <!-- Campos Pessoa F\u00EDsica e Estrangeira -->\r\n <ng-container\r\n *ngIf=\"pessoa.tipoPessoa == tipoPessoaEnum().FISICA || pessoa.tipoPessoa == tipoPessoaEnum().ESTRANGEIRA\">\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nome\" name=\"nome\" #nome=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Sexo</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoSexo\" name=\"codigoSexo\" #codigoSexo=\"ngModel\" required>\r\n <mat-option [value]=\"1\">Masculino</mat-option>\r\n <mat-option [value]=\"2\">Feminino</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-15\" appearance=\"outline\">\r\n <mat-label>Data Nascimento</mat-label>\r\n <input matInput [matDatepicker]=\"dataNascimentoPicker\" [(ngModel)]=\"pessoa.dataNascimento\" name=\"dataNascimento\"\r\n #dataNascimento=\"ngModel\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"dataNascimentoPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #dataNascimentoPicker></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Estado Civil</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoEstadoCivil\" name=\"codigoEstadoCivil\" #codigoEstadoCivil=\"ngModel\">\r\n <mat-option *ngFor=\"let estado of estadosCivil | async\" [value]=\"estado.codigo\">\r\n {{ estado.denominacao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <!--\r\n <mat-form-field class=\"form-15\" appearance=\"outline\">\r\n <mat-label>Naturalidade</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.naturalidade\" name=\"naturalidade\" #naturalidade=\"ngModel\" required>\r\n <mat-option *ngFor=\"let cidade of getListaEstados()\" [value]=\"cidade.codigo\">\r\n {{ cidade.descricao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n -->\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Pa\u00EDs Nascimento</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoPaisNascimento\" name=\"codigoPaisNascimento\" #codigoPaisNascimento=\"ngModel\"\r\n required>\r\n <mat-option *ngFor=\"let paisNascimento of paises | async\" [value]=\"paisNascimento.codigo\">\r\n <span *ngIf=\"paisNascimento.denominacao === 'BRASIL'\">\uD83C\uDDE7\uD83C\uDDF7 <b>{{ paisNascimento.denominacao }}</b></span>\r\n <span *ngIf=\"paisNascimento.denominacao !== 'BRASIL'\">{{ paisNascimento.denominacao }}</span>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\" *ngIf=\"pessoa.codigoPaisNascimento == 22\"> <!-- 22 eh Brasil-->\r\n <mat-label>UF Nascimento</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.ufNascimento\" name=\"ufNascimento\" #ufNascimento=\"ngModel\" required>\r\n <mat-option *ngFor=\"let ufNascimento of getListaEstados()\" [value]=\"ufNascimento.identificador\">\r\n {{ ufNascimento.identificador }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-15\" appearance=\"outline\" *ngIf=\"pessoa.codigoPaisNascimento == 22\">\r\n <mat-label>Naturalidade</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.naturalidade\" name=\"naturalidade\" #naturalidade=\"ngModel\"\r\n required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Escolaridade</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.escolaridade\" name=\"codigoEscolaridade\" #codigoEscolaridade=\"ngModel\" required>\r\n <mat-option *ngFor=\"let escolaridade of escolaridade | async\" [value]=\"escolaridade.codigo\">\r\n {{ escolaridade.denominacao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome Social</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomeSocial\" name=\"nomeSocial\" #nomeSocial=\"ngModel\" />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome da M\u00E3e</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomeMae\" name=\"nomeMae\" #nomeMae=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome do Pai</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomePai\" name=\"nomePai\" #nomePai=\"ngModel\" required />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Campos Pessoa Jur\u00EDdica -->\r\n <ng-container *ngIf=\"pessoa.tipoPessoa === tipoPessoaEnum().JURIDICA\">\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Raz\u00E3o Social</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.razaoSocial\" name=\"razaoSocial\" />\r\n </mat-form-field>\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome Fantasia</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomeFantasia\" name=\"nomeFantasia\" />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa == tipoPessoaEnum().FISICA\">\r\n <b style=\"flex: 1 1 100%; margin-bottom: 10px;\">Documenta\u00E7\u00E3o</b>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Identidade</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.rg\" name=\"rg\" #rg=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>\u00D3rg\u00E3o Emissor</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.rgOrgao\" name=\"rgOrgao\" #rgOrgao=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Unidade Federativa</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.rgUf\" name=\"rgUf\" #rgUf=\"ngModel\" required>\r\n <mat-option *ngFor=\"let cidade of getListaEstados()\" [value]=\"cidade.identificador\">\r\n {{ cidade.identificador }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-20\" appearance=\"outline\">\r\n <mat-label>Data de Emiss\u00E3o</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.rgDataEmissao\" name=\"rgDataEmissao\" #rgDataEmissao=\"ngModel\" />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa == tipoPessoaEnum().ESTRANGEIRA \">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>Data Chegada Brasil</mat-label>\r\n <input matInput [matDatepicker]=\"dataChegadaBrasilPicker\" [(ngModel)]=\"pessoa.dataChegadaBrasil\"\r\n name=\"dataChegadaBrasil\" #dataChegadaBrasil=\"ngModel\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"dataChegadaBrasilPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #dataChegadaBrasilPicker></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Pa\u00EDs Passaporte</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoPaisPassaporte\" name=\"codigoPaisPassaporte\" #codigoPaisPassaporte=\"ngModel\"\r\n required>\r\n <mat-option *ngFor=\"let paisNascimento of paises | async\" [value]=\"paisNascimento.codigo\">\r\n {{ paisNascimento.denominacao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>N\u00FAmero Passaporte</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.passaporte\" name=\"passaporte\" #passaporte=\"ngModel\" required />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <lib-unb-pessoa-telefone-list style=\"flex: 1 1 100%;\" [backendURL]=\"backendURL\"\r\n [telefones]=\"pessoa.telefones\" (telefonesEmitted)=\"telefonesEmitted($event)\"></lib-unb-pessoa-telefone-list>\r\n\r\n <lib-unb-pessoa-endereco-list style=\"flex: 1 1 100%;\" [backendURL]=\"backendURL\"\r\n [enderecos]=\"pessoa.enderecos\" (enderecosEmitted)=\"enderecosEmitted($event)\"></lib-unb-pessoa-endereco-list>\r\n\r\n <lib-unb-pessoa-email-list style=\"flex: 1 1 100%;\" [backendURL]=\"backendURL\" [emails]=\"pessoa.emails\"\r\n (emailsEmitted)=\"emailsEmitted($event)\"></lib-unb-pessoa-email-list>\r\n\r\n <div *ngIf=\"isReadonlyFromSiape\" style=\"flex:1 1 100%; margin-bottom:10px;\">\r\n <mat-card>\r\n <mat-card-content>\r\n <strong>Servidor com matr\u00EDcula SIAPE deve ter seus dados autalizados pelo aplicativo do sougov</strong>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n\r\n <mat-card-actions class=\"card-actions-buttons\" *ngIf=\"buscaRealizada\">\r\n <button mat-flat-button [disabled]=\"isLoading || isReadonlyFromSiape\" type=\"submit\" color=\"primary\">\r\n Salvar\r\n </button>\r\n </mat-card-actions>\r\n\r\n</form>", styles: [".card-actions-buttons{display:flex;gap:5px;flex-wrap:wrap}.form-container{display:flex;flex-wrap:wrap;column-gap:10px}:host{display:block}@media (max-width: 1000px){.form-container{flex-direction:column;gap:5px}}.break{flex-basis:100%;height:0}.form-5{flex:1 1 5%}.inline-table-container{display:flex;align-items:center;justify-content:space-between;padding:5px}@media (max-width: 600px){.form-5,.form-10,.form-15{flex:1 1 100%}}.form-10{flex:1 1 10%}.form-15{flex:1 1 15%}.form-20{flex:1 1 20%}.form-25{flex:1 1 25%}.form-30{flex:1 1 30%}.form-35{flex:1 1 35%}.form-40{flex:1 1 40%}.form-45{flex:1 1 45%}.form-50{flex:1 1 50%}.form-100{flex:1 1 100%;min-width:250px}.readonly{pointer-events:none;opacity:.6}.disabled-wrapper{pointer-events:none;opacity:.6;filter:grayscale(1)}\n"] }]
|
|
2478
|
-
}], ctorParameters: () => [{ type: UnBPessoaService }, { type: i1$2.MatSnackBar }, { type: UnbMensagemService }], propDecorators: {
|
|
2479
|
-
type:
|
|
2480
|
-
|
|
2481
|
-
|
|
2571
|
+
args: [{ selector: 'lib-unb-pessoa-form', standalone: false, template: "<mat-progress-bar *ngIf=\"isLoading\" mode=\"indeterminate\"></mat-progress-bar>\r\n\r\n<div class=\"form-container\" [class.disabled-wrapper]=\"isLoading\">\r\n <lib-unb-pessoa-pesquisar \r\n [backendURL]=\"backendURL\" \r\n [defaultTipoPessoa]=\"defaultTipoPessoa\"\r\n [pesquisarPorCNPJ]=\"pesquisarPorCNPJ\" \r\n [pesquisarPorCPF]=\"pesquisarPorCPF\"\r\n [pesquisarPorEstrangeiro]=\"pesquisarPorEstrangeiro\" \r\n [campoPesquisaMaxWidth]=\"campoPesquisaMaxWidth\"\r\n (pessoaEmitted)=\"pessoaRecebida($event)\">\r\n </lib-unb-pessoa-pesquisar>\r\n</div>\r\n\r\n<unb-mensagem [identificador]=\"idMensagemService\"></unb-mensagem>\r\n\r\n<!-- Label indicando que est\u00E1 incluindo nova pessoa -->\r\n<div *ngIf=\"documentoPesquisado\"\r\n class=\"status-banner\" \r\n [ngClass]=\"{\r\n 'status-inclusao': !pessoa.codigoPessoa,\r\n 'status-edicao': pessoa.codigoPessoa && !isReadonlyFromSiape,\r\n 'status-bloqueado': isReadonlyFromSiape\r\n }\">\r\n\r\n <mat-icon>\r\n {{ !pessoa.codigoPessoa ? 'person_add' : (isReadonlyFromSiape ? 'lock' : 'edit') }}\r\n </mat-icon>\r\n\r\n <span>\r\n <ng-container *ngIf=\"!pessoa.codigoPessoa\">Incluindo nova pessoa</ng-container>\r\n <ng-container *ngIf=\"pessoa.codigoPessoa && !isReadonlyFromSiape\">Editando pessoa</ng-container>\r\n <ng-container *ngIf=\"isReadonlyFromSiape\">Registro SIAPE (Visualiza\u00E7\u00E3o)</ng-container>\r\n\r\n com <strong>{{ getLabelDocumento() }} {{ documentoPesquisado }}</strong>\r\n </span>\r\n\r\n</div>\r\n\r\n\r\n<form #pessoaForm=\"ngForm\" [class.readonly]=\"isReadonlyFromSiape || isLoading\" class=\"form-container mt-2\"\r\n *ngIf=\"buscaRealizada\" (ngSubmit)=\"salvar(pessoaForm)\">\r\n\r\n <!-- Campos Pessoa F\u00EDsica e Estrangeira -->\r\n <ng-container\r\n *ngIf=\"pessoa.tipoPessoa == tipoPessoaEnum().FISICA || pessoa.tipoPessoa == tipoPessoaEnum().ESTRANGEIRA\">\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nome\" name=\"nome\" #nome=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Sexo</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoSexo\" name=\"codigoSexo\" #codigoSexo=\"ngModel\" required>\r\n <mat-option [value]=\"1\">Masculino</mat-option>\r\n <mat-option [value]=\"2\">Feminino</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-15\" appearance=\"outline\">\r\n <mat-label>Data Nascimento</mat-label>\r\n <input matInput [matDatepicker]=\"dataNascimentoPicker\" [(ngModel)]=\"pessoa.dataNascimento\" name=\"dataNascimento\"\r\n #dataNascimento=\"ngModel\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"dataNascimentoPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #dataNascimentoPicker></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Estado Civil</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoEstadoCivil\" name=\"codigoEstadoCivil\" #codigoEstadoCivil=\"ngModel\">\r\n <mat-option *ngFor=\"let estado of estadosCivil | async\" [value]=\"estado.codigo\">\r\n {{ estado.denominacao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <!--\r\n <mat-form-field class=\"form-15\" appearance=\"outline\">\r\n <mat-label>Naturalidade</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.naturalidade\" name=\"naturalidade\" #naturalidade=\"ngModel\" required>\r\n <mat-option *ngFor=\"let cidade of getListaEstados()\" [value]=\"cidade.codigo\">\r\n {{ cidade.descricao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n -->\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Pa\u00EDs Nascimento</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoPaisNascimento\" name=\"codigoPaisNascimento\" #codigoPaisNascimento=\"ngModel\"\r\n required>\r\n <mat-option *ngFor=\"let paisNascimento of paises | async\" [value]=\"paisNascimento.codigo\">\r\n <span *ngIf=\"paisNascimento.denominacao === 'BRASIL'\">\uD83C\uDDE7\uD83C\uDDF7 <b>{{ paisNascimento.denominacao }}</b></span>\r\n <span *ngIf=\"paisNascimento.denominacao !== 'BRASIL'\">{{ paisNascimento.denominacao }}</span>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\" *ngIf=\"pessoa.codigoPaisNascimento == 22\"> <!-- 22 eh Brasil-->\r\n <mat-label>UF Nascimento</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.ufNascimento\" name=\"ufNascimento\" #ufNascimento=\"ngModel\" required>\r\n <mat-option *ngFor=\"let estado of getListaEstados()\" [value]=\"estado.identificador\">\r\n {{ estado.identificador }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-15\" appearance=\"outline\" *ngIf=\"pessoa.codigoPaisNascimento == 22\">\r\n <mat-label>Naturalidade</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.naturalidade\" name=\"naturalidade\" #naturalidade=\"ngModel\"\r\n required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Escolaridade</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.escolaridade\" name=\"codigoEscolaridade\" #codigoEscolaridade=\"ngModel\" required>\r\n <mat-option *ngFor=\"let escolaridade of escolaridade | async\" [value]=\"escolaridade.codigo\">\r\n {{ escolaridade.denominacao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome Social</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomeSocial\" name=\"nomeSocial\" #nomeSocial=\"ngModel\" />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome da M\u00E3e</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomeMae\" name=\"nomeMae\" #nomeMae=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome do Pai</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomePai\" name=\"nomePai\" #nomePai=\"ngModel\" required />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <!-- Campos Pessoa Jur\u00EDdica -->\r\n <ng-container *ngIf=\"pessoa.tipoPessoa === tipoPessoaEnum().JURIDICA\">\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Raz\u00E3o Social</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.razaoSocial\" name=\"razaoSocial\" />\r\n </mat-form-field>\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Nome Fantasia</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.nomeFantasia\" name=\"nomeFantasia\" />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa == tipoPessoaEnum().FISICA\">\r\n <b style=\"flex: 1 1 100%; margin-bottom: 10px;\">Documenta\u00E7\u00E3o</b>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Identidade</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.rg\" name=\"rg\" #rg=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>\u00D3rg\u00E3o Emissor</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.rgOrgao\" name=\"rgOrgao\" #rgOrgao=\"ngModel\" required />\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-25\" appearance=\"outline\">\r\n <mat-label>Unidade Federativa</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.rgUf\" name=\"rgUf\" #rgUf=\"ngModel\" required>\r\n <mat-option *ngFor=\"let estado of getListaEstados()\" [value]=\"estado.identificador\">\r\n {{ estado.identificador }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-20\" appearance=\"outline\">\r\n <mat-label>Data de Emiss\u00E3o</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.rgDataEmissao\" name=\"rgDataEmissao\" #rgDataEmissao=\"ngModel\" />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"pessoa.tipoPessoa == tipoPessoaEnum().ESTRANGEIRA \">\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>Data Chegada Brasil</mat-label>\r\n <input matInput [matDatepicker]=\"dataChegadaBrasilPicker\" [(ngModel)]=\"pessoa.dataChegadaBrasil\"\r\n name=\"dataChegadaBrasil\" #dataChegadaBrasil=\"ngModel\" required>\r\n <mat-datepicker-toggle matSuffix [for]=\"dataChegadaBrasilPicker\"></mat-datepicker-toggle>\r\n <mat-datepicker #dataChegadaBrasilPicker></mat-datepicker>\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"form-10\" appearance=\"outline\">\r\n <mat-label>Pa\u00EDs Passaporte</mat-label>\r\n <mat-select [(ngModel)]=\"pessoa.codigoPaisPassaporte\" name=\"codigoPaisPassaporte\" #codigoPaisPassaporte=\"ngModel\"\r\n required>\r\n <mat-option *ngFor=\"let paisNascimento of paises | async\" [value]=\"paisNascimento.codigo\">\r\n {{ paisNascimento.denominacao }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\">\r\n <mat-label>N\u00FAmero Passaporte</mat-label>\r\n <input type=\"text\" matInput [(ngModel)]=\"pessoa.passaporte\" name=\"passaporte\" #passaporte=\"ngModel\" required />\r\n </mat-form-field>\r\n </ng-container>\r\n\r\n <lib-unb-pessoa-telefone-list style=\"flex: 1 1 100%;\" [backendURL]=\"backendURL\" [telefones]=\"pessoa.telefones\"\r\n (telefonesEmitted)=\"telefonesEmitted($event)\"></lib-unb-pessoa-telefone-list>\r\n\r\n <lib-unb-pessoa-endereco-list style=\"flex: 1 1 100%;\" [backendURL]=\"backendURL\" [enderecos]=\"pessoa.enderecos\"\r\n (enderecosEmitted)=\"enderecosEmitted($event)\"></lib-unb-pessoa-endereco-list>\r\n\r\n <lib-unb-pessoa-email-list style=\"flex: 1 1 100%;\" [backendURL]=\"backendURL\" [emails]=\"pessoa.emails\"\r\n (emailsEmitted)=\"emailsEmitted($event)\"></lib-unb-pessoa-email-list>\r\n\r\n <div *ngIf=\"isReadonlyFromSiape\" style=\"flex:1 1 100%; margin-bottom:10px;\">\r\n <mat-card>\r\n <mat-card-content>\r\n <strong>Servidor com matr\u00EDcula SIAPE deve ter seus dados autalizados pelo aplicativo do sougov</strong>\r\n </mat-card-content>\r\n </mat-card>\r\n </div>\r\n\r\n <mat-card-actions class=\"card-actions-buttons\" *ngIf=\"buscaRealizada\">\r\n <button mat-flat-button [disabled]=\"isLoading || isReadonlyFromSiape\" type=\"submit\" color=\"primary\">\r\n Salvar\r\n </button>\r\n </mat-card-actions>\r\n\r\n</form>", styles: [".card-actions-buttons{display:flex;gap:5px;flex-wrap:wrap}.form-container{display:flex;flex-wrap:wrap;column-gap:10px}:host{display:block}@media (max-width: 1000px){.form-container{flex-direction:column;gap:5px}}.break{flex-basis:100%;height:0}.form-5{flex:1 1 5%}.inline-table-container{display:flex;align-items:center;justify-content:space-between;padding:5px}@media (max-width: 600px){.form-5,.form-10,.form-15{flex:1 1 100%}}.form-10{flex:1 1 10%}.form-15{flex:1 1 15%}.form-20{flex:1 1 20%}.form-25{flex:1 1 25%}.form-30{flex:1 1 30%}.form-35{flex:1 1 35%}.form-40{flex:1 1 40%}.form-45{flex:1 1 45%}.form-50{flex:1 1 50%}.form-100{flex:1 1 100%;min-width:250px}.readonly{pointer-events:none;opacity:.6}.disabled-wrapper{pointer-events:none;opacity:.6;filter:grayscale(1)}.status-banner{display:flex;align-items:center;gap:8px;padding:10px 16px;margin:2px 0;border-radius:6px;font-size:14px;font-weight:500}.status-banner.status-inclusao{background-color:#e3f2fd;color:#1565c0;border:1px solid #bbdefb}.status-banner.status-edicao{background-color:#fff3e0;color:#ef6c00;border:1px solid #ffe0b2}.status-banner.status-bloqueado{background-color:#fce4ec;color:#c2185b;border:1px solid #f8bbd0}\n"] }]
|
|
2572
|
+
}], ctorParameters: () => [{ type: UnBPessoaService }, { type: i1$2.MatSnackBar }, { type: UnbMensagemService }], propDecorators: { pessoaForm: [{
|
|
2573
|
+
type: ViewChild,
|
|
2574
|
+
args: ['pessoaForm']
|
|
2575
|
+
}], backendURL: [{
|
|
2576
|
+
type: Input,
|
|
2577
|
+
args: [{ required: true }]
|
|
2482
2578
|
}], pesquisarPorCPF: [{
|
|
2483
|
-
type: Input
|
|
2579
|
+
type: Input,
|
|
2580
|
+
args: [{ transform: booleanAttribute }]
|
|
2484
2581
|
}], pesquisarPorCNPJ: [{
|
|
2485
|
-
type: Input
|
|
2582
|
+
type: Input,
|
|
2583
|
+
args: [{ transform: booleanAttribute }]
|
|
2486
2584
|
}], pesquisarPorEstrangeiro: [{
|
|
2585
|
+
type: Input,
|
|
2586
|
+
args: [{ transform: booleanAttribute }]
|
|
2587
|
+
}], defaultTipoPessoa: [{
|
|
2487
2588
|
type: Input
|
|
2488
2589
|
}], campoPesquisaMaxWidth: [{
|
|
2489
2590
|
type: Input
|
|
2490
2591
|
}], pessoaEmitted: [{
|
|
2491
2592
|
type: Output
|
|
2593
|
+
}], isLoadingChange: [{
|
|
2594
|
+
type: Output
|
|
2492
2595
|
}] } });
|
|
2493
2596
|
|
|
2494
2597
|
class UnbPessoaModule {
|
|
@@ -2623,5 +2726,5 @@ class UnbPessoaRacaCor {
|
|
|
2623
2726
|
* Generated bundle index. Do not edit.
|
|
2624
2727
|
*/
|
|
2625
2728
|
|
|
2626
|
-
export {
|
|
2729
|
+
export { UnBPessoaService, UnbAuthService, UnbMensagemComponent, UnbMensagemModule, UnbMensagemService, UnbNavBarComponent, UnbNavBarModule, UnbPessoaEmail, UnbPessoaEmailFormComponent, UnbPessoaEmailListComponent, UnbPessoaEmailTipo, UnbPessoaEndereco, UnbPessoaEnderecoFormComponent, UnbPessoaEnderecoTipo, UnbPessoaEscolaridade, UnbPessoaEstadoCivil, UnbPessoaFormComponent, UnbPessoaModel, UnbPessoaModule, UnbPessoaMunincipio, UnbPessoaPais, UnbPessoaPesquisarComponent, UnbPessoaRacaCor, UnbPessoaTelefone, UnbPessoaTelefoneFormComponent, UnbPessoaTelefoneListComponent, UnbPessoaTelefoneTipo, UnbPessoaenderecoListComponent, UnbTipoMensagemEnum, UnbTipoPessoaEnum, UnbUsuarioModel, listaEstados };
|
|
2627
2730
|
//# sourceMappingURL=stiunb-unb-lib-components.mjs.map
|