{"version":3,"mappings":"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","names":["TIPO_FORMA_INGRESSO","VESTIBULAR_ONLINE","VESTIBULAR_PRESENCIAL","ENEM","PORTADOR_DIPLOMA","TRANSFERENCIA","REINGRESSO_POS_ABANDONO","CURSO_EXTENSAO","POS_GRADUACAO","i0","ctx_r29","oxw","ctx_r48","ctx_r83","ctx_r95","ctx_r120","ctx_r146","ctx_r169","ctx_r189","ctx_r216","ctx_r239","ctx_r259","ctx_r266","Quill","import","fonts","sizes","routes","path","component","constructor","activatedRoute","paginaService","arquivoService","functionsService","sanitizer","popoverController","mensagemService","formaIngressoService","seoService","this","PaginaDTO","TIPO_SECAO_PAGINA","window","screen","width","whitelist","ngOnInit","ionViewWillEnter","presentLoading","params","subscribe","urlParams","findByNome","nome","resp","pagina","secoesResumo","secoes","filter","secao","tipo","resumoPagina","length","texto","secoesTexto","tempDiv","document","createElement","innerHTML","textContent","innerText","updateSEO","titleTag","metaDescription","tags","sortSections","forEach","sessao","GALERIA_VIDEOS","galeriaVideos","video","safePath","getSafeURL","dismissLoading","error","errorURLParam","console","log","getStyle","margemSuperior","o","i","_a","estiloCSS","_b","parseInt","toString","margemDireita","a","n","_c","_d","c","l","_e","_f","margemInferior","u","_","_g","_h","margemEsquerda","D","x","_j","_k","padding","url","bypassSecurityTrustResourceUrl","arr","sort","b","ordemExibicao","setSectionHeight","id","height","getElementById","style","minHeight","maxHeight","getMaxSlidesPerView","arraySize","getFilePublicURL","fullPath","fileName","API_CONFIG","getFormatedText","text","replace","bypassSecurityTrustHtml","openFile","arquivo","goToPath","openLink","openCompartilhamento","event","popover","create","PopoverCompartilharComponent","componentProps","translucent","showBackdrop","backdropDismiss","reference","side","align","arrow","dismissOnSelect","mode","cssClass","present","onDidDismiss","then","data","get","index","getEmptyAreaMaxHeight","clientHeight","setEmptyAreaStyle","imageElement","emptyAreaElement","textContainer","marginBottom","validateForm","form","habilitarCampoEmail","campoEmail","habilitarCampoTelefone","campoTelefone","sendMessage","sendFormMessage","next","showAlert","setPhoneMask","target","value","setCelPhoneMask","enableSubjectField","habilitarCampoAssunto","habilitarAssuntoDuvida","habilitarAssuntoElogio","habilitarAssuntoInteresse","habilitarAssuntoOpiniao","habilitarAssuntoReclamacao","openNewsPage","noticia","titulo","toLocaleLowerCase","open","setElementColor","idElement","color","getListaOriginal","fonteDados","campo","formularioPersonalizado","campos","find","opcoes","getListasFormulario","lista","listasFormularioPersonalizado","entry","modalidadesOriginais","modalidadesSelecionadas","formacoesOriginais","formacoesSelecionadas","habilitacoesOriginais","habilitacoesSelecionadas","turnosOriginais","turnosSelecionados","cursosOriginais","cursosSelecionados","formasIngressoOriginais","formasIngressoSelecionadas","textosOriginais","textosSelecionados","push","atualizarHabilitacoesSelecionaveis","idsFormacoes","map","formacao","opcaoHabilitacao","includes","habilitacao","atualizarCursosSelecionaveis","idsModalidades","item","idsHabilitacoes","idsTurnos","opcaoCurso","modalidadeValida","curso","modalidade","formacaoValida","habilitacaoValida","S","turnoValido","disponibilidades","some","disponibilidade","disponibilidadeTurnos","disponibilidadeTurno","turno","habilitado","atualizarValoresSelecionados","valoresSelecionados","detail","listas","opcao","formaIngresso","warn","getKeyFonteDados","nomeFonteDados","keyNameMap","modalidades","formacoes","habilitacoes","cursos","turnos","formasIngresso","textos","Object","keys","key","isChecked","selecionadosKey","atualizarValoresCheckbox","checked","toLowerCase","valor","getNomeFormaIngressoFormatado","getNomeFormatado","abrirSeletorArquivo","fileLoader","click","onchange","file","files","fileType","name","split","pop","tiposPermitidos","tipoArquivo","join","enviarFormulario","formulario","mensagem","valorCampo","Array","isArray","label","sendMessageWithAttachments","emailsDestinatarios","salvarCopiaInterna","location","href","mensagemPosEnvio","isFormularioValido","every","getTiposArquivosAceitos","tiposArquivosSelecionados","opcaoTipoArquivo","DetalharPaginaPage","selectors","DetalharPaginaPageRoutingModule","RouterModule","DetalharPaginaPageModule","CommonModule","FormsModule","IonicModule","ComponentsModule","QuillModule","SwiperModule","FormaIngressoService","http","findAll","getTiposFormaIngresso","arrTiposFormaIngresso","enem","TipoFormaIngressoDTO","descricao","temEntregaDocumentacao","temLocal","temProva","podeEscolherDataProva","vestibularOnline","vestibularPresencial","portadorDiploma","transferencia","reingresso","cursoExtensao","posGraduacao","getTipoFormaIngresso","countInscritos","idFormaIngresso","countInscritosComProvaAgendada","validadeSubscpriptionPeriod","idsFormaIngresso","getUltimaProva","ultimaProva","ProvaDTO","dataInicio","Date","provas","prova","getTime","sortArrayProvas","factory"],"sources":["./src/app/config/tipo-forma-ingresso.config.ts","./src/app/models/vestibular/provaDTO.ts","./src/app/models/vestibular/tipoFormaIngressoDTO.ts","./src/app/pages/detalhar-pagina/detalhar-pagina.page.html","./src/app/pages/detalhar-pagina/detalhar-pagina.page.ts","./src/app/pages/detalhar-pagina/detalhar-pagina-routing.module.ts","./src/app/pages/detalhar-pagina/detalhar-pagina.module.ts","./src/app/services/forma-ingresso/forma-ingresso.service.ts"],"sourcesContent":["export const TIPO_FORMA_INGRESSO = {\r\n \r\n VESTIBULAR_ONLINE: \"VESTIBULAR_ONLINE\",\r\n\tVESTIBULAR_PRESENCIAL: \"VESTIBULAR_PRESENCIAL\",\r\n\tENEM: \"ENEM\",\r\n\tPORTADOR_DIPLOMA: \"PORTADOR_DIPLOMA\",\r\n\tTRANSFERENCIA: \"TRANSFERENCIA\",\r\n REINGRESSO_POS_ABANDONO: \"REINGRESSO_POS_ABANDONO\",\r\n\tCURSO_EXTENSAO: \"CURSO_EXTENSAO\",\r\n\tPOS_GRADUACAO: \"POS_GRADUACAO\"\r\n \r\n}","export class ProvaDTO{\r\n\r\n id!: number;\r\n dataInicio!: Date;\r\n dataFim!:Date;\r\n horaInicio!: string;\r\n horaFim!: string;\r\n local!: string;\r\n totalVagas!: number;\r\n totalInscricoes!: number; //essa propriedade não é preenchida pela api\r\n idVestibular!: number;\r\n idFormaIngresso !: number;\r\n}","import { VestibularDTO } from './vestibularDTO';\r\nimport { FuncionarioDTO } from '../controle-acesso/funcionarioDTO';\r\nimport { CandidatoDTO } from './candidatoDTO';\r\n\r\nexport class TipoFormaIngressoDTO{\r\n\r\n codigo!: number;\r\n nome!: string;\r\n descricao!: string;\r\n temProva!: boolean;\r\n temEntregaDocumentacao!:boolean;\r\n temLocal!:boolean;\r\n podeEscolherDataProva!:boolean\r\n \r\n}"," \n\n\n\n \n \n
\n \n \n\n
\n\n \n
\n \n
\n \n \n
\n \n
\n
\n
\n\n
\n \n
\n\n\n \n
\n \n
\n\n {{setSectionHeight('secao-'+i, secao.altura)}} \n\n
\n \n
\n\n \n \n
\n \n
\n\n \n \n \n \n \n \n \n \n
\n \n
\n\n\n\n \n
\n \n
\n\n \n
\n \n
\n
\n
\n \n
\n\n
\n\n\n\n \n
\n \n
\n\n \n
0\" >\n \n getMaxSlidesPerView(secao.noticiasDestaques?.length)\"\n effect=\"slide\"\n [slidesPerView]=\"getMaxSlidesPerView(secao.noticiasDestaques?.length)\" >\n \n \n \n \n \n \n \n \n \n \n \n \n {{noticiaDestaque?.noticia?.dataCriacao | date: 'MMMM dd, yyyy'}}\n \n \n \n {{noticiaDestaque.noticia.titulo}}\n \n \n \n \n \n
\n
\n \n
\n \n
\n \n
\n \n
\n \n
\n \n \n
\n
\n
\n\n\n\n\n \n
\n \n
\n \n
\n\n
\n \n \n
\n
\n \n\n
\n
\n
\n
\n \n
\n \n \n \n
\n \n
\n \n \n {{setEmptyAreaStyle(i)}}\n \n
\n\n
\n\n
\n\n \n\n\n \n
\n \n
\n\n
\n \n
\n
\n
\n\n
\n\n
\n\n\n\n\n \n
\n \n
\n\n
\n \n \n
\n \n
\n
\n
\n\n \n
\n \n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n \n
\n\n
\n\n
\n\n\n\n \n
\n \n
\n\n
\n \n \n
\n \n
\n
\n
\n\n
\n \n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n \n
\n\n
\n\n
\n\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n
\n {{pdf.legenda}}\n
\n \n\n {{setElementColor('pdf-'+secao.id+'-'+indexPDF, secao.corFonte)}}\n
\n\n \n \n
\n\n \n \n \n
\n \n
\n \n\n\n \n
\n \n
\n\n \n
\n \n
\n
\n
\n\n
\n \n \n\n \n
\n \n \n
\n \n
\n\n\n\n\n \n
\n \n
\n\n \n
\n \n
\n
\n
\n\n \n \n \n \n \n \n \n \n
\n \n
\n\n\n\n\n \n
\n \n
\n\n \n
\n \n
\n
\n
\n \n \n \n \n\n \n \n \n \n \n \n \n
\n \n
\n\n\n\n \n
\n \n
\n \n\n \n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n\n\n\n \n
\n \n
\n\n \n \n \n \n
\n \n
\n \n \n
\n \n
\n
\n
\n
\n\n \n
\n\n \n \n {{dest.nome}}\n \n \n\n \n
\n\n \n \n \n \n\n \n \n \n \n \n\n \n\n \n \n \n\n \n\n \n \n \n\n \n\n \n \n Dúvida\n Reclamação\n Elogio\n Opinião\n Interesse\n \n\n \n\n \n\n
\n\n \n
\n
\n\n
\n\n
\n\n \n \n
\n\n \n Enviar  \n \n \n
\n \n \n \n
\n
\n\n
\n
\n\n\n \n
\n
\n\n \n \n \n
\n \n \n
\n \n {{ campo.label }}\n \n \n
\n\n \n \n
\n \n \n {{ campo.label }}\n \n \n\n \n Upload  \n \n \n
\n
{{getTiposArquivosAceitos(campo)}}
\n\n \n
\n \n {{ campo.label }}\n \n \n
\n\n \n
\n \n {{ campo.label }}\n \n \n {{ opcao?.modalidade?.nome }}\n {{ opcao?.formacao?.nome }}\n {{ opcao?.habilitacao?.nome }}\n {{ opcao?.curso?.nome }}\n {{ opcao?.turno?.nome }}\n  {{getNomeFormaIngressoFormatado(opcao?.tipoFormaIngresso.toString())}}\n {{ opcao?.texto }}\n \n \n \n
\n\n \n
\n
\n {{ campo.label }}\n
\n \n
\n \n \n {{ opcao?.modalidade?.nome }}\n {{ opcao?.formacao?.nome }}\n {{ opcao?.habilitacao?.nome }}\n {{ opcao?.curso?.nome }}\n {{ opcao?.turno?.nome }}\n  {{getNomeFormaIngressoFormatado(opcao?.tipoFormaIngresso.toString())}}\n {{ opcao?.texto }}\n \n
\n
\n
\n\n \n
0\" class=\"options-list\">\n
\n {{ campo.label }}\n
\n
\n \n \n \n {{ opcao?.modalidade?.nome }}\n {{ opcao?.formacao?.nome }}\n {{ opcao?.habilitacao?.nome }}\n {{ opcao?.curso?.nome }}\n {{ opcao?.turno?.nome }}\n  {{getNomeFormaIngressoFormatado(opcao?.tipoFormaIngresso.toString())}}\n {{ opcao?.texto }}\n \n
\n
\n
\n\n \n
\n Enviar\n
\n
\n\n \n
\n
\n \n \n
\n
\n\n \n\n
\n","import { FormularioPersonalizadoDTO } from './../../models/site/formularioPersonalizadoDTO';\nimport { Component, OnInit, ViewChild } from '@angular/core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { ActivatedRoute } from '@angular/router';\nimport { API_CONFIG } from 'src/app/config/api.config';\nimport { TIPO_SECAO_PAGINA } from 'src/app/config/tipo-secao-pagina.config';\nimport { ArquivoDTO } from 'src/app/models/arquivoDTO';\nimport { PaginaDTO } from 'src/app/models/site/paginaDTO';\nimport { ArquivoService } from 'src/app/services/arquivo/arquivo.service';\nimport { FunctionsService } from 'src/app/services/common/functions.service';\nimport { PaginaService } from 'src/app/services/pagina/pagina.service';\nimport { PopoverCompartilharComponent } from '../detalhar-curso/components/popover-compartilhar/popover-compartilhar.component';\nimport { PopoverController } from '@ionic/angular';\n\nimport * as Quill from 'quill'\nimport { MensagemService } from 'src/app/services/mensagem/mensagem.service';\nimport { FormularioDTO } from 'src/app/models/site/formularioDTO';\nimport { NoticiaDTO } from 'src/app/models/site/noticiaDTO';\nimport { SecaoPaginaDTO } from 'src/app/models/site/secaoPaginaDTO';\nimport { CampoFormularioDTO } from 'src/app/models/site/campoFormularioDTO';\nimport { OpcaoDTO } from 'src/app/models/site/opcaoDTO';\nimport { FormaIngressoService } from 'src/app/services/forma-ingresso/forma-ingresso.service';\nimport { SeoService } from 'src/app/services/seo/seo.service';\nconst quill: any = Quill\nconst icons = quill.import('ui/icons');\nconst fonts = Quill.import(\"attributors/style/font\");\nconst sizes = Quill.import('attributors/style/size');\n\n\nexport interface ListasFormularioPersonalizado {\n secao: SecaoPaginaDTO;\n modalidadesOriginais: OpcaoDTO[];\n modalidadesSelecionadas: OpcaoDTO[];\n formacoesOriginais: OpcaoDTO[];\n formacoesSelecionadas: OpcaoDTO[];\n habilitacoesOriginais: OpcaoDTO[];\n habilitacoesSelecionadas: OpcaoDTO[];\n turnosOriginais: OpcaoDTO[];\n turnosSelecionados: OpcaoDTO[];\n cursosOriginais: OpcaoDTO[];\n cursosSelecionados: OpcaoDTO[];\n formasIngressoOriginais: OpcaoDTO[];\n formasIngressoSelecionadas: OpcaoDTO[];\n textosOriginais: OpcaoDTO[];\n textosSelecionados: OpcaoDTO[];\n}\n\n\n@Component({\n selector: 'app-detalhar-pagina',\n templateUrl: './detalhar-pagina.page.html',\n styleUrls: ['./detalhar-pagina.page.scss'],\n})\nexport class DetalharPaginaPage implements OnInit {\n\n //@ViewChild('contentBox') contentBox: HTMLElement;\n\n pagina: PaginaDTO = new PaginaDTO();\n originalMaxHeight: string = 'auto';\n\n TITULO_PAGINA = TIPO_SECAO_PAGINA.TITULO_SECAO;\n CARROSSEL_BANNERS = TIPO_SECAO_PAGINA.CARROSSEL_BANNERS;\n RESUMO_PAGINA = TIPO_SECAO_PAGINA.RESUMO_PAGINA;\n DESTAQUE_NOTICIAS = TIPO_SECAO_PAGINA.DESTAQUE_NOTICIAS;\n IMAGEM_E_TEXTO = TIPO_SECAO_PAGINA.IMAGEM_E_TEXTO;\n TEXTO_NORMAL = TIPO_SECAO_PAGINA.TEXTO_NORMAL;\n TEXTO_EM_2_COLUNAS = TIPO_SECAO_PAGINA.TEXTO_EM_2_COLUNAS;\n TEXTO_EM_3_COLUNAS = TIPO_SECAO_PAGINA.TEXTO_EM_3_COLUNAS;\n LISTA_PDF = TIPO_SECAO_PAGINA.LISTA_PDF;\n LISTA_LINKS = TIPO_SECAO_PAGINA.LISTA_LINKS;\n GALERIA_FOTOS = TIPO_SECAO_PAGINA.GALERIA_FOTOS;\n GALERIA_VIDEOS = TIPO_SECAO_PAGINA.GALERIA_VIDEOS;\n BOTAO_COMPARTILHAR = TIPO_SECAO_PAGINA.BOTAO_COMPARTILHAR;\n FORMULARIO = TIPO_SECAO_PAGINA.FORMULARIO;\n FORMULARIO_PERSONALIZADO = TIPO_SECAO_PAGINA.FORMULARIO_PERSONALIZADO;\n ESPACAMENTO = TIPO_SECAO_PAGINA.ESPACAMENTO;\n\n tela = window.screen.width;\n\n listasFormularioPersonalizado: ListasFormularioPersonalizado[] = [];\n\n constructor( private activatedRoute: ActivatedRoute\n , private paginaService: PaginaService\n , private arquivoService: ArquivoService\n , private functionsService: FunctionsService\n , private sanitizer: DomSanitizer\n , private popoverController: PopoverController\n , private mensagemService: MensagemService \n , private formaIngressoService: FormaIngressoService\n , private seoService: SeoService ) { \n\n fonts.whitelist = [ \"Montserrat\"\n , \"Montserrat-Black\"\n , \"Montserrat-Bold\",\n , \"Montserrat-ExtraBold\",\n , \"Myriad\"\n , \"OpenSans\"\n , \"OpenSans-Bold\"\n , \"OpenSans-ExtraBold\"\n , \"OpenSans-SemiBold\"\n , \"Poppins-Regular\" ];\n Quill.register(fonts, true);\n\n //font size\n sizes.whitelist = ['6px', '8px', '9px','10px', '11px', '12px', '13px', '14px', '16px', '18px', '24px', '30px', '36px', '48px', '56px', '64px'];\n Quill.register(sizes, true); \n \n }\n\n ngOnInit() {\n }\n\n \n\n\n ionViewWillEnter(){\n \n this.functionsService.presentLoading();\n\n this.activatedRoute.params.subscribe(\n urlParams => {\n \n const nome = urlParams['nome'];\n this.paginaService.findByNome(nome).subscribe(\n resp=>{\n this.pagina = resp;\n\n const secoesResumo = this.pagina.secoes.filter(secao=> secao.tipo==TIPO_SECAO_PAGINA.RESUMO_PAGINA);\n let resumoPagina = '';\n\n if(secoesResumo.length>0){\n resumoPagina = secoesResumo[0].texto;\n }else{\n\n const secoesTexto = this.pagina.secoes.filter(secao=> secao.tipo==TIPO_SECAO_PAGINA.TEXTO_NORMAL);\n if(secoesTexto.length>0){\n resumoPagina = secoesTexto[0].texto;\n }else{\n resumoPagina = this.pagina.nome;\n }\n \n }\n\n // Remover as tags HTML utilizando um elemento DOM temporário\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = resumoPagina;\n resumoPagina = tempDiv.textContent || tempDiv.innerText;\n\n const seoPagina = {\n titleTag: this.pagina.titleTag ? this.pagina.titleTag : this.pagina.nome, \n nome: this.pagina.nome, \n metaDescription: this.pagina.metaDescription ? this.pagina.metaDescription : resumoPagina, \n tags: (this.pagina.tags && this.pagina.tags.length>0) ? this.pagina.tags : [this.pagina.nome]\n };\n \n this.seoService.updateSEO(seoPagina);\n \n this.sortSections(this.pagina.secoes);\n \n this.pagina.secoes.forEach(sessao=>{\n if(sessao.tipo==this.GALERIA_VIDEOS){\n\n sessao.galeriaVideos.forEach(video=>{\n video.safePath = this.getSafeURL(video.path);\n });\n\n }\n });\n \n this.functionsService.dismissLoading();\n //this.setMargins();\n \n },\n error=>{\n this.functionsService.dismissLoading();\n }\n );\n \n },\n errorURLParam=>{\n console.log(errorURLParam);\n this.functionsService.dismissLoading();\n });\n\n }\n\n \n getStyle(): Object{\n\n let margemSuperior = '80';\n \n if(window.screen.width<=1016){\n margemSuperior = '0'\n }\n\n if(this.pagina?.estiloCSS?.margemSuperior){\n\n if(window.screen.width<=1016){\n margemSuperior = parseInt(this.pagina.estiloCSS.margemSuperior).toString();\n }else{\n margemSuperior = (62 + parseInt(this.pagina.estiloCSS.margemSuperior)).toString();\n }\n \n }\n\n \n let margemDireita = '0';\n if(this.pagina?.estiloCSS?.margemDireita){\n margemDireita = this.pagina?.estiloCSS?.margemDireita\n }\n\n let margemInferior = '0';\n if(this.pagina?.estiloCSS?.margemInferior){\n margemInferior = this.pagina.estiloCSS.margemInferior;\n }\n\n let margemEsquerda = '0';\n if(this.pagina?.estiloCSS?.margemEsquerda){\n margemEsquerda = this.pagina.estiloCSS.margemEsquerda\n }\n \n let margens = margemSuperior + 'px ' + margemDireita + 'px ' + margemInferior + 'px ' + margemEsquerda + 'px';\n \n //envia como padding para não criar áreas sem cores fora das margens da página\n return {'padding': margens};\n \n \n }\n\n getSafeURL(url: string): SafeResourceUrl{\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n\n sortSections(arr){\n \n arr.sort(function (a, b) {\n if (a.ordemExibicao > b.ordemExibicao) {\n return 1;\n }\n if (a.ordemExibicao < b.ordemExibicao) {\n return -1;\n }\n // a must be equal to b\n return 0;\n });\n\n }\n\n \n\n\n setSectionHeight(id: string, height: number){\n document.getElementById(id).style.minHeight = height + 'px';\n document.getElementById(id).style.height = height + 'px';\n document.getElementById(id).style.maxHeight = height + 'px';\n }\n \n\n getMaxSlidesPerView( arraySize: number): number{\n \n if(screen.width>700){\n\n if(arraySize<3){\n return arraySize;\n }\n\n return 3;\n\n }else{\n return 1;\n }\n }\n\n\n\n getFilePublicURL(fullPath: string, fileName: string): string{\n \n if(!fullPath || !fileName){\n return API_CONFIG.iisVirtualDirectoryURL + 'empty_photo.jpg';\n }\n\n return this.arquivoService.getFilePublicURL(fullPath, fileName);\n }\n\n\n\n \n \n \n \n getFormatedText(text: string): any{\n \n if(!text){\n return;\n }\n\n text = text.replace(/class=\"ql-align-right\"/g,'style=\"text-align:right\"');\n text = text.replace(/class=\"ql-align-left\"/g,'style=\"text-align:left\"');\n text = text.replace(/class=\"ql-align-center\"/g,'style=\"text-align:center\"');\n text = text.replace(/class=\"ql-align-justify\"/g,'style=\"text-align:justify\"');\n\n //para exibir corretamente a formatação do texto\n return this.sanitizer.bypassSecurityTrustHtml(text);\n\n\n }\n\n\n openFile(arquivo: ArquivoDTO){\n let path = arquivo.path.replace(API_CONFIG.iisVirtualDirectoryPath, API_CONFIG.iisVirtualDirectoryURL); \n this.functionsService.goToPath(path + '/' + arquivo.nome, true);\n }\n\n openLink(url: string){\n this.functionsService.goToPath(url, true);\n }\n\n\n\n async openCompartilhamento(event) {\n \n const popover = await this.popoverController.create({\n component: PopoverCompartilharComponent,\n componentProps: {'pagina': this.pagina},\n translucent: true,\n showBackdrop: true,\n backdropDismiss: true,\n reference:\"trigger\",\n event: event,\n side: 'top',\n align: 'center',\n arrow: true,\n dismissOnSelect: true,\n mode: \"md\",\n cssClass: 'popover-compartilhar-curso', \n \n });\n\n \n await popover.present();\n \n \n await popover.onDidDismiss().then((data)=>{\n\n });\n \n \n }\n\n\n get(index: number){\n return this.getEmptyAreaMaxHeight(index) + ' - ' + document.getElementById('text-container-'+index).clientHeight;\n }\n \n\n //ajusta o estilo do texto de acordo com o tamanho da imagem que for adicionada pelo usuário\n setEmptyAreaStyle(index: number){\n\n var imageElement = document.getElementById('img-'+index);\n var emptyAreaElement = document.getElementById('empty-area-'+index);\n var textContainer = document.getElementById('text-container-'+index);\n \n \n if(emptyAreaElement){\n \n \n emptyAreaElement.style.minHeight = this.getEmptyAreaMaxHeight(index) + 'px';\n emptyAreaElement.style.maxHeight = this.getEmptyAreaMaxHeight(index) + 'px';\n emptyAreaElement.style.height = this.getEmptyAreaMaxHeight(index) + 'px';\n \n if(textContainer && imageElement && textContainer.clientHeight<=imageElement.clientHeight){\n emptyAreaElement.style.marginBottom = '0px'; //remove a margem inferior\n textContainer.style.maxHeight = imageElement.clientHeight + 'px';\n textContainer.style.height = textContainer.style.maxHeight;\n\n }else{ //+30 é devido a margem inferior da empty área\n textContainer.style.minHeight = (this.getEmptyAreaMaxHeight(index)+30) + 'px'; \n }\n \n \n\n\n //textContainer.style.marginBottom = '-14px';\n /*\n console.log(this.getEmptyAreaMaxHeight(index))\n if(this.getEmptyAreaMaxHeight(index)<=350){\n //alert(this.getEmptyAreaMaxHeight(index))\n \n }else{\n textContainer.style.marginBottom = '-14px'; \n }\n */\n\n if(window.screen.width<600){\n textContainer.style.minHeight = '10px';\n textContainer.style.height = 'auto';\n textContainer.style.maxHeight = 'auto';\n }\n\n }\n \n //emptyAreaElement.click();\n }\n\n //a altura da área vazia depende da altura da imagem\n getEmptyAreaMaxHeight(index: number): number{\n\n var imageElement = document.getElementById('img-'+index);\n\n \n if(imageElement){\n \n return imageElement.clientHeight;\n }\n\n return 350;\n \n }\n\n\n \n\n\n validateForm(form: FormularioDTO): boolean{\n\n if(form.habilitarCampoEmail && (!form.campoEmail || form.campoEmail.length<3)){\n return false;\n }\n\n if(form.habilitarCampoTelefone && (!form.campoTelefone || form.campoTelefone.length<14)){\n return false;\n }\n\n return true;\n\n }\n\n sendMessage(form: FormularioDTO){\n\n this.functionsService.presentLoading();\n\n this.mensagemService.sendFormMessage(form).subscribe({\n next:(resp)=>{\n \n this.functionsService.dismissLoading();\n this.functionsService.showAlert('Sucesso!', 'Sua mensagem foi enviada!', ['Ok']);\n\n },\n error:(error)=>{\n \n console.log(error)\n this.functionsService.dismissLoading();\n this.functionsService.showAlert(\"Op's\", 'Estamos com dificuldades para enviar sua mensagem agora.
Por favor, tente novamente em instantes.', ['Ok']);\n\n }\n });\n }\n\n\n setPhoneMask(event){\n\n if(event.target.value.length<=14){\n this.functionsService.setPhoneMask(event, '(00) 0000-0000');\n }else{\n this.functionsService.setCelPhoneMask(event, '(00) 00000-0000');\n }\n \n\n }\n\n enableSubjectField(form: FormularioDTO): boolean{\n\n if(form.habilitarCampoAssunto){\n\n if(!form.habilitarAssuntoDuvida && \n !form.habilitarAssuntoElogio &&\n !form.habilitarAssuntoInteresse &&\n !form.habilitarAssuntoOpiniao &&\n !form.habilitarAssuntoReclamacao){\n \n //não tem nenhum assunto habilitado, então não exibe o campo \n return false; \n }\n\n return true;\n }\n\n return false;\n }\n\n\n openNewsPage(noticia: NoticiaDTO){\n \n const url = '/noticia/' + \n noticia.id + '/' + \n noticia.titulo.replace(/ /g, '_').toLocaleLowerCase();\n \n this.functionsService.goToPath(url);\n\n\n\n }\n\n\n open(url: string){\n this.functionsService.goToPath(url, true);\n }\n\n\n setElementColor(idElement: string, color: string){\n document.getElementById(idElement).style.color = color; \n }\n\n\n\n\n private getListaOriginal(fonteDados: string, secao: SecaoPaginaDTO): any[] {\n const campo = secao.formularioPersonalizado.campos.find((campo) => campo.fonteDados === fonteDados);\n\n if (campo) {\n // Retorna as opções originais da fonte de dados\n return campo.opcoes ? [...campo.opcoes] : [];\n }\n\n // Retorna uma lista vazia se não houver campo correspondente\n return [];\n }\n\n getListasFormulario(secao: SecaoPaginaDTO): ListasFormularioPersonalizado {\n let lista = this.listasFormularioPersonalizado.find((entry) => entry.secao === secao);\n \n if (!lista) {\n lista = {\n secao,\n modalidadesOriginais: this.getListaOriginal('Modalidades', secao),\n modalidadesSelecionadas: [],\n formacoesOriginais: this.getListaOriginal('Formações', secao),\n formacoesSelecionadas: [],\n habilitacoesOriginais: this.getListaOriginal('Habilitações', secao),\n habilitacoesSelecionadas: [],\n turnosOriginais: this.getListaOriginal('Turnos', secao),\n turnosSelecionados: [],\n cursosOriginais: this.getListaOriginal('Cursos', secao),\n cursosSelecionados: [],\n formasIngressoOriginais: this.getListaOriginal('Formas de Ingresso', secao),\n formasIngressoSelecionadas: [],\n textosOriginais: this.getListaOriginal('Textos', secao),\n textosSelecionados: [],\n };\n\n this.listasFormularioPersonalizado.push(lista);\n }\n\n return lista;\n }\n \n\n // Atualiza habilitações com base nas formações selecionadas\n atualizarHabilitacoesSelecionaveis(secao: SecaoPaginaDTO) {\n const lista = this.getListasFormulario(secao);\n \n const idsFormacoes = lista.formacoesSelecionadas.map((formacao) => formacao.id);\n \n if(idsFormacoes && idsFormacoes.length>0){\n // Atualiza as habilitações com base nas formações selecionadas\n secao.formularioPersonalizado.campos = secao.formularioPersonalizado.campos.map((campo) => {\n if (campo.fonteDados === 'Habilitações') {\n\n campo.opcoes = lista.habilitacoesOriginais.filter((opcaoHabilitacao) =>\n idsFormacoes.includes(opcaoHabilitacao.habilitacao.formacao.id)\n );\n }\n return campo;\n });\n }\n \n }\n \n \n\n // Atualiza cursos com base em seleções de modalidades, formações, habilitações e turnos\n atualizarCursosSelecionaveis(secao: SecaoPaginaDTO) {\n const lista = this.getListasFormulario(secao);\n \n const idsModalidades = lista.modalidadesSelecionadas.map((item) => item.id);\n const idsFormacoes = lista.formacoesSelecionadas.map((item) => item.id);\n const idsHabilitacoes = lista.habilitacoesSelecionadas.map((item) => item.id);\n const idsTurnos = lista.turnosSelecionados.map((item) => item.id);\n \n secao.formularioPersonalizado.campos = secao.formularioPersonalizado.campos.map((campo) => {\n if (campo.fonteDados === 'Cursos') {\n \n campo.opcoes = lista.cursosOriginais.filter((opcaoCurso) => {\n\n const modalidadeValida = !idsModalidades.length || idsModalidades.includes(opcaoCurso.curso.modalidade?.id);\n const formacaoValida = !idsFormacoes.length || idsFormacoes.includes(opcaoCurso.curso.formacao?.id);\n const habilitacaoValida = !idsHabilitacoes.length || idsHabilitacoes.includes(opcaoCurso.curso.habilitacao?.id);\n \n const turnoValido = !idsTurnos.length ||\n opcaoCurso.curso.disponibilidades.some((disponibilidade) =>\n disponibilidade.disponibilidadeTurnos.some((disponibilidadeTurno) =>\n idsTurnos.includes(disponibilidadeTurno.turno.id) && disponibilidadeTurno.habilitado\n )\n );\n \n return modalidadeValida && formacaoValida && habilitacaoValida && turnoValido;\n });\n \n }\n return campo;\n });\n }\n \n\n atualizarValoresSelecionados(secao: SecaoPaginaDTO, campo: CampoFormularioDTO, event: any) {\n\n \n let valoresSelecionados;\n if(event.detail){\n valoresSelecionados = [event.detail.value];\n }else{\n valoresSelecionados = event;\n }\n \n const listas = this.getListasFormulario(secao);\n \n switch (campo.fonteDados) {\n case 'Modalidades':\n listas.modalidadesSelecionadas = valoresSelecionados.map((opcao) => opcao.modalidade);\n listas.formacoesSelecionadas = [];\n listas.habilitacoesSelecionadas = [];\n listas.cursosSelecionados = [];\n break;\n \n case 'Formações':\n listas.formacoesSelecionadas = valoresSelecionados.map((opcao) => opcao.formacao);\n listas.habilitacoesSelecionadas = [];\n listas.cursosSelecionados = [];\n break;\n \n case 'Habilitações':\n listas.habilitacoesSelecionadas = valoresSelecionados.map((opcao) => opcao.habilitacao);\n listas.cursosSelecionados = [];\n\n break;\n \n case 'Turnos':\n listas.turnosSelecionados = valoresSelecionados.map((opcao) => opcao.turno);\n listas.cursosSelecionados = [];\n break;\n \n case 'Cursos':\n listas.cursosSelecionados = valoresSelecionados.map((opcao) => opcao.curso);\n listas.cursosSelecionados = [];\n break;\n \n case 'Formas de Ingresso':\n listas.formasIngressoSelecionadas = valoresSelecionados.map((opcao) => opcao.formaIngresso);\n break;\n \n case 'Textos':\n listas.textosSelecionados = valoresSelecionados.map((opcao) => opcao.texto);\n break;\n \n default:\n console.warn(`Fonte de dados desconhecida: ${campo.fonteDados}`);\n }\n \n \n \n // Atualiza os cursos sempre que uma fonte relacionada for alterada\n if (['Modalidades', 'Formações', 'Habilitações', 'Turnos'].includes(campo.fonteDados)) {\n this.atualizarHabilitacoesSelecionaveis(secao); // Atualiza habilitações\n this.atualizarCursosSelecionaveis(secao); // Atualiza cursos\n }\n }\n\n\n getKeyFonteDados(nomeFonteDados: string): string {\n const keyNameMap = {\n modalidades: 'Modalidades',\n formacoes: 'Formações',\n habilitacoes: 'Habilitações',\n cursos: 'Cursos',\n turnos: 'Turnos',\n formasIngresso: 'Formas de Ingresso',\n textos: 'Textos'\n };\n \n // Busca a chave correspondente ao valor fornecido\n return Object.keys(keyNameMap).find(key => keyNameMap[key] === nomeFonteDados) || '';\n }\n \n\n isChecked(secao: SecaoPaginaDTO, campo: CampoFormularioDTO, opcao: OpcaoDTO): boolean {\n const lista = this.getListasFormulario(secao);\n let selecionadosKey = `${this.getKeyFonteDados(campo.fonteDados)}Selecionadas`;\n \n if(campo.fonteDados=='Cursos' || campo.fonteDados=='Turnos' || campo.fonteDados=='Textos'){\n selecionadosKey.replace('Selecionadas', 'Selecionados');\n }\n return lista[selecionadosKey]?.some(item => item && item.id === opcao.id) || false;\n }\n \n atualizarValoresCheckbox(secao: SecaoPaginaDTO, campo: CampoFormularioDTO, opcao: OpcaoDTO, event: any) {\n const isChecked = event.detail.checked;\n const lista = this.getListasFormulario(secao); // Obtém a lista associada à seção\n let selecionadosKey = `${campo.fonteDados.toLowerCase()}Selecionadas`; // Define a chave dinamicamente\n \n if(campo.fonteDados=='Cursos' || campo.fonteDados=='Turnos' || campo.fonteDados=='Textos'){\n selecionadosKey.replace('Selecionadas', 'Selecionados');\n }\n\n // Garante que a lista de selecionados exista antes de usá-la\n if (!lista[selecionadosKey]) {\n lista[selecionadosKey] = []; // Inicializa como um array vazio\n }\n \n if (isChecked) {\n // Adiciona a opção selecionada\n lista[selecionadosKey] = [...lista[selecionadosKey], opcao]; \n } else {\n // Remove a opção desmarcada\n lista[selecionadosKey] = lista[selecionadosKey].filter(item => item !== opcao);\n }\n campo.valor = lista[selecionadosKey];\n \n this.atualizarValoresSelecionados(secao,campo, lista[selecionadosKey]);\n }\n \n\n getNomeFormaIngressoFormatado(formaIngresso: string): string{\n return this.formaIngressoService.getNomeFormatado(formaIngresso);\n }\n\n\n abrirSeletorArquivo(fileLoader: HTMLInputElement, campo: CampoFormularioDTO) {\n // Dispara o seletor de arquivos\n fileLoader.click();\n \n // Ouça a mudança no input de arquivo\n fileLoader.onchange = () => {\n const file = fileLoader.files?.[0]; // Captura o primeiro arquivo selecionado\n\n if (file) {\n\n const fileType = file.name.split('.').pop()?.toLowerCase(); // Obtém a extensão do arquivo em letras minúsculas\n\n // Obtém os tipos permitidos a partir das opções do campo\n const tiposPermitidos = campo.opcoes.map(opcao => opcao.tipoArquivo?.toLowerCase())\n .filter(tipo => !!tipo); // Remove valores nulos ou indefinidos\n\n // Verifica se o tipo do arquivo selecionado é permitido\n if (fileType && (tiposPermitidos.includes(fileType) || tiposPermitidos.length==0)) {\n campo.valor = file.name; // Exibe o nome do arquivo no campo do formulário\n campo.arquivo = file; // Armazena o arquivo para posterior envio\n } else {\n this.functionsService.showAlert(\n 'Atenção!',\n `O tipo de arquivo selecionado não é permitido.
Os tipos permitidos são: ${tiposPermitidos.join(', ')}`,\n ['Ok']\n );\n campo.valor = ''; // Limpa o valor caso o tipo não seja permitido\n campo.arquivo = null; // Remove qualquer arquivo anterior\n return;\n }\n\n\n campo.valor = file.name; // Exibe o nome do arquivo no campo do formulário\n campo.arquivo = file; // Armazena o arquivo para posterior envio\n } else {\n campo.valor = ''; // Limpa o valor caso nenhum arquivo seja selecionado\n campo.arquivo = null; // Remove qualquer arquivo anterior\n }\n };\n }\n \n \n\n\n enviarFormulario(formulario: FormularioPersonalizadoDTO) {\n this.functionsService.presentLoading();\n \n \n // Montar o corpo da mensagem dinamicamente com os campos do formulário\n let mensagem = '';//'
Detalhes do formulário:
';\n \n //console.log(formulario.campos)\n // Iterar sobre os campos do formulário para adicionar detalhes\n formulario.campos.forEach((campo: CampoFormularioDTO) => {\n if (campo.tipo !== 'anexos') {\n let valorCampo = '';\n\n // Tratar os casos onde o valor é um objeto ou uma lista de objetos\n if (Array.isArray(campo.valor)) {\n \n // Para listas, extrair os nomes e separá-los por vírgulas\n if(campo.fonteDados!='Textos'){\n valorCampo = campo.valor.map((item: any) => item.nome).join(', ');\n }else{\n valorCampo = campo.valor.map((item: any) => item.texto).join(', ');\n }\n\n } else if (campo.valor && typeof campo.valor === 'object' && campo.fonteDados!='Textos') {\n // Para um único objeto, extrair o nome\n valorCampo = campo.valor.nome || '';\n } else if (campo.valor && typeof campo.valor === 'object' && campo.fonteDados=='Textos') {\n // Para um único objeto, extrair o nome\n valorCampo = campo.valor.texto || '';\n } else {\n // Para valores simples\n valorCampo = campo.valor || 'Não preenchido';\n }\n\n mensagem += `

${campo.label}: ${valorCampo}

`;\n }\n });\n\n\n // Enviar o formulário com anexos\n this.mensagemService.sendMessageWithAttachments(\n formulario.emailsDestinatarios,\n formulario.titulo,\n mensagem,\n formulario.salvarCopiaInterna,\n window.location.href,\n formulario.campos\n .filter((campo: any) => campo.tipo === 'anexos' && campo.arquivo)\n .map((campo: any) => campo.arquivo) // Mapeia para obter os arquivos\n ).subscribe({\n next:() => {\n\n this.functionsService.dismissLoading();\n this.functionsService.showAlert('', formulario.mensagemPosEnvio, ['Ok']);\n },\n error: () => {\n\n this.functionsService.dismissLoading();\n this.functionsService.showAlert('', 'Estamos com dificuldades para processar sua mensagem no momento.
Por favor, tente novamente mais tarde.', ['Ok']);\n }\n });\n }\n \n \n isFormularioValido(formulario: FormularioPersonalizadoDTO): boolean {\n if (!formulario || !formulario.campos) {\n return false; // Se o formulário ou os campos não existirem, é inválido\n }\n \n return formulario.campos.every((campo: CampoFormularioDTO) => {\n\n // Verifica campos obrigatórios que não são do tipo 'anexos'\n if (campo.tipo !== 'anexos') {\n if (Array.isArray(campo.valor)) {\n return campo.valor.length > 0; // Deve ter ao menos um valor selecionado\n } else if (typeof campo.valor === 'object') {\n return campo?.valor?.nome; // Verifica se o objeto tem a propriedade 'nome'\n } else {\n return !!campo.valor; // Verifica valores simples\n }\n }\n \n // Para campos do tipo 'anexos', verifica se o arquivo foi anexado\n if (campo.tipo === 'anexos') {\n return !!campo.arquivo; // Deve haver um arquivo associado\n }\n \n return true; // Considera campos opcionais como válidos\n });\n }\n \n\n getTiposArquivosAceitos(campo: CampoFormularioDTO): string{\n \n if(campo.fonteDados=='Tipos de Arquivos' && campo?.opcoes){\n \n let tiposArquivosSelecionados = [];\n for(var opcaoTipoArquivo of campo.opcoes){\n tiposArquivosSelecionados.push(opcaoTipoArquivo.tipoArquivo);\n }\n \n return 'Arquivos ' + tiposArquivosSelecionados.join(', ');\n }\n \n return 'Aceita todos tipos de arquivos';\n \n }\n \n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { DetalharPaginaPage } from './detalhar-pagina.page';\n\nconst routes: Routes = [\n {\n path: '',\n component: DetalharPaginaPage\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class DetalharPaginaPageRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { IonicModule } from '@ionic/angular';\n\nimport { DetalharPaginaPageRoutingModule } from './detalhar-pagina-routing.module';\n\nimport { DetalharPaginaPage } from './detalhar-pagina.page';\nimport { ComponentsModule } from 'src/app/components/components.module';\nimport { SwiperModule } from 'swiper/angular';\nimport { QuillModule } from 'ngx-quill';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n IonicModule,\n DetalharPaginaPageRoutingModule,\n ComponentsModule,\n QuillModule,\n SwiperModule\n ],\n declarations: [DetalharPaginaPage]\n})\nexport class DetalharPaginaPageModule {}\n","import { ProvaDTO } from '../../models/vestibular/provaDTO';\nimport { TIPO_FORMA_INGRESSO } from './../../config/tipo-forma-ingresso.config';\nimport { TipoFormaIngressoDTO } from '../../models/vestibular/tipoFormaIngressoDTO';\nimport { API_CONFIG } from './../../config/api.config';\nimport { Observable } from 'rxjs/internal/Observable';\nimport { FormaIngressoDTO } from '../../models/vestibular/formaIngressoDTO';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormaIngressoService {\n\n constructor(private http: HttpClient) { }\n\n findAll() : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/formasingresso');\n\n }\n\n find(id: number) : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/formasingresso/' + id);\n\n }\n\n \n getTiposFormaIngresso() : TipoFormaIngressoDTO[] {\n\n let arrTiposFormaIngresso: TipoFormaIngressoDTO[] = [];\n \n let enem = new TipoFormaIngressoDTO();\n enem.nome = TIPO_FORMA_INGRESSO.ENEM;\n enem.descricao = 'Utilize sua nota do ENEM para ingressar em um dos nossos cursos de graduação.';\n enem.temEntregaDocumentacao = true;\n enem.temLocal = false;\n enem.temProva = false;\n enem.podeEscolherDataProva = false;\n\n arrTiposFormaIngresso.push(enem);\n \n let vestibularOnline = new TipoFormaIngressoDTO();\n vestibularOnline.nome = TIPO_FORMA_INGRESSO.VESTIBULAR_ONLINE;\n vestibularOnline.descricao = 'Redação Online disponível para ser realizada 48h após a sua inscrição.';\n vestibularOnline.temEntregaDocumentacao = false;\n vestibularOnline.temLocal = false;\n vestibularOnline.temProva = true;\n vestibularOnline.podeEscolherDataProva = true;\n\n arrTiposFormaIngresso.push(vestibularOnline);\n\n let vestibularPresencial = new TipoFormaIngressoDTO();\n vestibularPresencial.nome = TIPO_FORMA_INGRESSO.VESTIBULAR_PRESENCIAL;\n vestibularPresencial.descricao = 'Redação Presencial realizada nas Faculdades Souza Marques em data e horário previamente definidos.';\n vestibularPresencial.temEntregaDocumentacao = false;\n vestibularPresencial.temLocal = true;\n vestibularPresencial.temProva = true;\n vestibularPresencial.podeEscolherDataProva = false;\n \n arrTiposFormaIngresso.push(vestibularPresencial);\n\n let portadorDiploma = new TipoFormaIngressoDTO();\n portadorDiploma.nome = TIPO_FORMA_INGRESSO.PORTADOR_DIPLOMA;\n portadorDiploma.descricao = 'Ingresse em um de nossos cursos de graduação utilizando seu Diploma.';\n portadorDiploma.temEntregaDocumentacao = true;\n portadorDiploma.temLocal = false;\n portadorDiploma.temProva = false;\n portadorDiploma.podeEscolherDataProva = false;\n \n arrTiposFormaIngresso.push(portadorDiploma);\n\n\n let transferencia = new TipoFormaIngressoDTO();\n transferencia.nome = TIPO_FORMA_INGRESSO.TRANSFERENCIA;\n transferencia.descricao = 'Ingresse em um de nossos cursos de graduação realizando a transferência de outra universidade.';\n transferencia.temEntregaDocumentacao = true;\n transferencia.temLocal = false;\n transferencia.temProva = false;\n transferencia.podeEscolherDataProva = false;\n \n arrTiposFormaIngresso.push(transferencia);\n\n\n let reingresso = new TipoFormaIngressoDTO();\n reingresso.nome = TIPO_FORMA_INGRESSO.REINGRESSO_POS_ABANDONO;\n reingresso.descricao = 'Reingresse no curso que você abandonou.';\n reingresso.temEntregaDocumentacao = true;\n reingresso.temLocal = false;\n reingresso.temProva = false;\n reingresso.podeEscolherDataProva = false;\n \n arrTiposFormaIngresso.push(reingresso);\n\n\n let cursoExtensao = new TipoFormaIngressoDTO();\n cursoExtensao.nome = TIPO_FORMA_INGRESSO.CURSO_EXTENSAO;\n cursoExtensao.descricao = 'Curso de Extensão.';\n cursoExtensao.temEntregaDocumentacao = false;\n cursoExtensao.temLocal = false;\n cursoExtensao.temProva = false;\n cursoExtensao.podeEscolherDataProva = false;\n \n arrTiposFormaIngresso.push(cursoExtensao);\n\n let posGraduacao = new TipoFormaIngressoDTO();\n posGraduacao.nome = TIPO_FORMA_INGRESSO.POS_GRADUACAO;\n posGraduacao.descricao = 'Pós-Graduação.';\n posGraduacao.temEntregaDocumentacao = true;\n posGraduacao.temLocal = false;\n posGraduacao.temProva = false;\n posGraduacao.podeEscolherDataProva = false;\n \n arrTiposFormaIngresso.push(posGraduacao);\n \n return arrTiposFormaIngresso;\n\n }\n\n getTipoFormaIngresso(descricao: any) : TipoFormaIngressoDTO {\n\n if(descricao === TIPO_FORMA_INGRESSO.ENEM){\n\n let enem = new TipoFormaIngressoDTO();\n enem.nome = TIPO_FORMA_INGRESSO.ENEM;\n enem.descricao = 'Utilize sua nota do ENEM para ingressar em um dos nossos cursos de graduação.';\n enem.temEntregaDocumentacao = true;\n enem.temLocal = false;\n enem.temProva = false;\n enem.podeEscolherDataProva = false;\n\n return enem;\n\n }else if(descricao === TIPO_FORMA_INGRESSO.VESTIBULAR_ONLINE){\n \n let vestibularOnline = new TipoFormaIngressoDTO();\n vestibularOnline.nome = TIPO_FORMA_INGRESSO.VESTIBULAR_ONLINE;\n vestibularOnline.descricao = 'Redação Online disponível para ser realizada 48h após a sua inscrição.';\n vestibularOnline.temEntregaDocumentacao = false;\n vestibularOnline.temLocal = false;\n vestibularOnline.temProva = true;\n vestibularOnline.podeEscolherDataProva = true;\n\n return vestibularOnline;\n\n }else if(descricao === TIPO_FORMA_INGRESSO.VESTIBULAR_PRESENCIAL){\n\n let vestibularPresencial = new TipoFormaIngressoDTO();\n vestibularPresencial.nome = TIPO_FORMA_INGRESSO.VESTIBULAR_PRESENCIAL;\n vestibularPresencial.descricao = 'Redação Presencial realizada nas Faculdades Souza Marques em data e horário previamente definidos.';\n vestibularPresencial.temEntregaDocumentacao = false;\n vestibularPresencial.temLocal = true;\n vestibularPresencial.temProva = true;\n vestibularPresencial.podeEscolherDataProva = true;\n\n return vestibularPresencial;\n \n }else if(descricao === TIPO_FORMA_INGRESSO.PORTADOR_DIPLOMA){\n\n let portadorDiploma = new TipoFormaIngressoDTO();\n portadorDiploma.nome = TIPO_FORMA_INGRESSO.PORTADOR_DIPLOMA;\n portadorDiploma.descricao = 'Ingresse em um de nossos cursos de graduação utilizando seu diploma em outras áreas.';\n portadorDiploma.temEntregaDocumentacao = true;\n portadorDiploma.temLocal = false;\n portadorDiploma.temProva = false;\n portadorDiploma.podeEscolherDataProva = false;\n\n return portadorDiploma;\n\n }else if(descricao === TIPO_FORMA_INGRESSO.TRANSFERENCIA){\n\n let transferencia = new TipoFormaIngressoDTO();\n transferencia.nome = TIPO_FORMA_INGRESSO.TRANSFERENCIA;\n transferencia.descricao = 'Ingresse em um de nossos cursos transferindo-se de outras instituições.';\n transferencia.temEntregaDocumentacao = true;\n transferencia.temLocal = false;\n transferencia.temProva = false;\n transferencia.podeEscolherDataProva = false;\n\n return transferencia;\n \n }else if(descricao === TIPO_FORMA_INGRESSO.REINGRESSO_POS_ABANDONO){\n\n let reingresso = new TipoFormaIngressoDTO();\n reingresso.nome = TIPO_FORMA_INGRESSO.REINGRESSO_POS_ABANDONO;\n reingresso.descricao = 'Reingresse no curso que você abandonou.';\n reingresso.temEntregaDocumentacao = true;\n reingresso.temLocal = false;\n reingresso.temProva = false;\n reingresso.podeEscolherDataProva = false;\n\n return reingresso;\n \n }else if(descricao === TIPO_FORMA_INGRESSO.CURSO_EXTENSAO){\n\n let cursoExtensao = new TipoFormaIngressoDTO();\n cursoExtensao.nome = TIPO_FORMA_INGRESSO.CURSO_EXTENSAO;\n cursoExtensao.descricao = 'Curso de Extensão.';\n cursoExtensao.temEntregaDocumentacao = false;\n cursoExtensao.temLocal = false;\n cursoExtensao.temProva = false;\n cursoExtensao.podeEscolherDataProva = false;\n\n return cursoExtensao;\n\n }else if(descricao === TIPO_FORMA_INGRESSO.POS_GRADUACAO){\n\n let posGraduacao = new TipoFormaIngressoDTO();\n posGraduacao.nome = TIPO_FORMA_INGRESSO.POS_GRADUACAO;\n posGraduacao.descricao = 'Pós-Graduação.';\n posGraduacao.temEntregaDocumentacao = true;\n posGraduacao.temLocal = false;\n posGraduacao.temProva = false;\n posGraduacao.podeEscolherDataProva = false;\n\n return posGraduacao;\n }\n\n return null;\n\n }\n\n getNomeFormatado(tipo: string) : string {\n\n if(tipo === TIPO_FORMA_INGRESSO.ENEM){\n return 'ENEM';\n }else if(tipo === TIPO_FORMA_INGRESSO.VESTIBULAR_ONLINE){\n return 'Vestibular Online';\n }else if(tipo === TIPO_FORMA_INGRESSO.VESTIBULAR_PRESENCIAL){\n return 'Vestibular Presencial';\n }else if(tipo === TIPO_FORMA_INGRESSO.PORTADOR_DIPLOMA){\n return 'Portador de Diploma';\n }else if(tipo === TIPO_FORMA_INGRESSO.TRANSFERENCIA){\n return 'Transferência Externa';\n }else if(tipo === TIPO_FORMA_INGRESSO.REINGRESSO_POS_ABANDONO){\n return 'Reingresso após Abandono';\n }else if(tipo === TIPO_FORMA_INGRESSO.CURSO_EXTENSAO){\n return 'Curso de Extensão';\n }else if(tipo === TIPO_FORMA_INGRESSO.POS_GRADUACAO){\n return 'Pós-Graduação';\n }\n\n return '';\n\n }\n\n \n countInscritos(idFormaIngresso: number) : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/formasingresso/countInscritos?idFormaIngresso=' + idFormaIngresso);\n\n }\n\n countInscritosComProvaAgendada(idFormaIngresso: number) : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/formasingresso/countInscritosComProvaAgendada?idFormaIngresso=' + idFormaIngresso);\n\n }\n\n validadeSubscpriptionPeriod(idsFormaIngresso: number[]) : Observable {\n\n return this.http.get( API_CONFIG.apiURL+'/formasingresso/validadeSubscpriptionPeriod?idsFormaIngresso=' + idsFormaIngresso); \n\n }\n\n \n\n getUltimaProva(formaIngresso: FormaIngressoDTO): ProvaDTO{\n\n \n let ultimaProva = new ProvaDTO();\n ultimaProva.dataInicio = new Date('1950-01-01');\n\n for(var i=0; i new Date(ultimaProva.dataInicio).getTime()){\n ultimaProva = prova;\n }\n\n }\n\n return ultimaProva;\n\n }\n\n sortArrayProvas(formaIngresso: FormaIngressoDTO){\n\n //ordena o array de provas pela data da prova\n formaIngresso.provas.sort(function (a, b) {\n \n if (new Date(a.dataInicio).getTime() > new Date(b.dataInicio).getTime()) {\n return 1;\n }\n if ( new Date(a.dataInicio).getTime() < new Date(b.dataInicio).getTime()) {\n return -1;\n }\n // a must be equal to b\n return 0;\n });\n\n }\n}\n"],"sourceRoot":"webpack:///","file":"6498.ce0d02b505abaeba.js"}