{"version":3,"sources":["webpack:///./src/assets/icons/icon-link.svg","webpack:///./src/assets/img/denuncia.png","webpack:///./src/assets/icons/icon-denuncia.svg","webpack:///./src/assets/css/avisosCarousel.css?1540","webpack:///./src/assets/css/login.css?639c","webpack:///./src/assets/icons/icon-close.svg","webpack:///./src/assets/icons/icon-recibo.svg","webpack:///./src/assets/icons/seta-left.svg","webpack:///./src/assets/icons/seta-right.svg","webpack:///./src/assets/img/full-banner.png","webpack:///./src/assets/img/icon-gpi-nfse.svg","webpack:///./src/views/Login.vue?8e88","webpack:///./src/components/global/Carousel.vue?07f8","webpack:///src/components/global/Carousel.vue","webpack:///./src/components/global/Carousel.vue?9e22","webpack:///./src/components/global/Carousel.vue?d68f","webpack:///./src/components/global/AvisosCarousel.vue?dd19","webpack:///src/components/global/AvisosCarousel.vue","webpack:///./src/components/global/AvisosCarousel.vue?ea94","webpack:///./src/components/global/AvisosCarousel.vue","webpack:///./src/models/acesso/Login.js","webpack:///./src/services/nfse/numeros.js","webpack:///src/views/Login.vue","webpack:///./src/views/Login.vue?5da6","webpack:///./src/views/Login.vue","webpack:///./src/components/global/Carousel.vue?602d","webpack:///./src/assets/icons/icon-listagem.svg","webpack:///./src/assets/icons/icon-padlock.svg","webpack:///./src/assets/icons/icon-user.svg","webpack:///./src/assets/icons/icon-credencial.svg","webpack:///./src/services/nfse/dns.cliente.service.js","webpack:///./src/assets/icons/icon-doc.svg","webpack:///./src/assets/icons/icon-consultar.svg"],"names":["module","exports","render","_vm","this","_h","$createElement","_c","_self","staticClass","_m","manutencao","logoLogin","numbers","caminhoLogo","staticStyle","attrs","_e","directives","name","rawName","value","expression","nomeEntidade","_v","_s","nomeCliente","on","$event","preventDefault","handleLogin","idSimoes","login","domProps","target","composing","$set","removerErro","mensagemErro","validation","hasError","firstError","erro","class","esqueceuSenha","showJanelaCertificado","qtdeNotasEmitidasFormatado","qtdeDapsEmitidosFormatado","notaTomador","qtdeCredenciamentosFormatado","msgContatoLogin","trim","carouselButtons","AvisosCarousel","linkRps","showLinkRps","loading","copiarLinkRps","showEsqueceu","hideNovaSenha","tiposPessoa","model","callback","$$v","selectedTipoPessoa","key","loginNovaSenha","hideJanelaSenha","requisitarNovaSenha","showCertificado","hideJanelaCertificado","showCarregarCert","carregarCertificado","style","width","showCaptcha","siteKey","handleSuccess","staticRenderFns","ref","disabled","currentIndex","prevSlide","transform","translateValue","_l","group","groupIndex","button","index","slideWidth","route","action","icon","alt","text","isAtEnd","nextSlide","props","buttons","type","Array","required","data","slidesPerView","groupedSlides","computed","groupedButtons","groups","push","slice","i","length","methods","calculateSlideWidth","$refs","carouselRef","Math","floor","containerWidth","updateSlidesPerView","adjustCurrentIndex","min","maxIndex","mounted","window","addEventListener","beforeDestroy","removeEventListener","component","slide","slideIndex","item","showAviso","objeto","date","title","truncateText","content","isSmallDevice","avisoAtual","titulo","displayAviso","hideAviso","tipo","mensagem","avisoAssunto","assunto","avisoItem","pergunta","resposta","contemAvisos","avisos","items","groupedItems","itemsPerSlide","aviso","montarAvisos","forEach","retorno","maxLength","goToAviso","location","href","link","handleResize","innerWidth","setTimeout","Login","nomeAcesso","senhaAcesso","API_URL","NfsNumeros","idCliente","axios","get","headers","components","Carousel","anoAtual","currentUser","expired","showDenunciaFiscal","loginMenssagemSimoes","apresentacao","linkRequestCert","recaptchaVerified","exibirLogo","showDadosCliente","created","validators","Validator","d","Date","getFullYear","console","log","response","api_url","currentUrl","open","loginUser","processando","show","$root","$emit","limparDadosPessoa","formataValorReal","valor","isNaN","currency","formatter","format","autenticar","$router","retencao","credenciar","abrirLinkRps","contribuintes","consultarRps","denunciaFiscal","dadosContato","openDialogMsgContato","navigator","clipboard","writeText","carregarLinks","codigoErro","msg","DnsClenteService","dns"],"mappings":"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","file":"js/login.d7fd1f55.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/icon-link.a36ffb7c.svg\";","module.exports = __webpack_public_path__ + \"img/denuncia.302e7b3d.png\";","module.exports = __webpack_public_path__ + \"img/icon-denuncia.fb3065ca.svg\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./avisosCarousel.css?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./avisosCarousel.css?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./login.css?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./login.css?vue&type=style&index=0&lang=css&\"","module.exports = __webpack_public_path__ + \"img/icon-close.94f1e986.svg\";","module.exports = __webpack_public_path__ + \"img/icon-recibo.3be09d3f.svg\";","module.exports = __webpack_public_path__ + \"img/seta-left.92cff479.svg\";","module.exports = __webpack_public_path__ + \"img/seta-right.7b800712.svg\";","module.exports = __webpack_public_path__ + \"img/full-banner.4b6c45b8.png\";","module.exports = __webpack_public_path__ + \"img/icon-gpi-nfse.a779ddd0.svg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container-fluid\"},[_vm._m(0),_c('div',{staticClass:\"grid-principal\"},[_c('div',{staticClass:\"entidade\"},[(!_vm.manutencao && !_vm.logoLogin && this.numbers && this.numbers.caminhoLogo)?_c('img',{staticClass:\"icone-entidade\",staticStyle:{\"width\":\"140px !important\"},attrs:{\"src\":this.numbers.caminhoLogo,\"alt\":\"\"}}):_vm._e(),_c('img',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.exibirLogo),expression:\"exibirLogo\"}],staticClass:\"icone-entidade\",staticStyle:{\"width\":\"140px !important\"},attrs:{\"src\":_vm.logoLogin,\"alt\":\"Base64 encoded image\"}}),(!_vm.manutencao && this.numbers && this.numbers.nomeEntidade)?_c('h1',{staticClass:\"nome-entidade\"},[_vm._v(_vm._s(this.numbers.nomeEntidade))]):_vm._e(),(!_vm.manutencao && this.numbers && this.numbers.nomeCliente)?_c('h1',{staticClass:\"nome-entidade\"},[_vm._v(_vm._s(this.numbers.nomeCliente))]):_vm._e()]),_c('div',{staticClass:\"form-login\"},[_c('form',{attrs:{\"name\":\"form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.handleLogin($event)}}},[(!_vm.manutencao)?_c('div',{staticClass:\"form-title-primary\"},[_c('span',{staticClass:\"form-title-primary\"},[_vm._v(\"Entrar\")])]):_vm._e(),(_vm.manutencao)?_c('div',[[_c('img',{attrs:{\"src\":require(\"../assets/img/full-banner.png\")}})]],2):_vm._e(),(!_vm.manutencao)?_c('div',[_c('div',{staticClass:\"input\"},[_c('div',{staticClass:\"input-user\"},[_c('span',{staticClass:\"input-text\"},[_c('div',{staticClass:\"input-wrapper\"},[_c('div',{staticClass:\"input-with-icon\"},[(_vm.idSimoes === '19533831040781681800D2584C905F8A')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.login.nomeAcesso),expression:\"login.nomeAcesso\"}],staticClass:\"p-inputtext p-component p-filled\",attrs:{\"id\":\"usuario\",\"type\":\"text\",\"placeholder\":\"CPF/CNPJ\",\"autocomplete\":\"off\",\"tabindex\":\"1\"},domProps:{\"value\":(_vm.login.nomeAcesso)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(_vm.login, \"nomeAcesso\", $event.target.value)},function($event){return _vm.removerErro()}]}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.login.nomeAcesso),expression:\"login.nomeAcesso\"}],staticClass:\"p-inputtext p-component p-filled\",attrs:{\"id\":\"usuario\",\"type\":\"text\",\"placeholder\":\"Usuário\",\"autocomplete\":\"off\",\"tabindex\":\"1\"},domProps:{\"value\":(_vm.login.nomeAcesso)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(_vm.login, \"nomeAcesso\", $event.target.value)},function($event){return _vm.removerErro()}]}}),_c('img',{staticClass:\"input-icon\",attrs:{\"src\":require(\"../assets/icons/icon-user.svg\"),\"alt\":\"icon user\"}})])])])])])]):_vm._e(),(!_vm.manutencao)?_c('div',[(this.expired)?[_c('div',{staticClass:\"error-login-form\",attrs:{\"severity\":\"warn\"}},[_vm._v(\"Sua sessão expirou efetue um novo Login!\")])]:_vm._e(),(this.mensagemErro)?[_c('div',{staticClass:\"error-login-form\",attrs:{\"severity\":\"error\"}},[_vm._v(_vm._s(this.mensagemErro))])]:_vm._e(),(_vm.validation.hasError('login.nomeAcesso'))?[_c('div',{staticClass:\"error-login-form\",attrs:{\"severity\":\"error\"}},[_vm._v(_vm._s(_vm.validation.firstError(\"login.nomeAcesso\")))])]:(_vm.validation.hasError('login.senhaAcesso'))?[_c('div',{staticClass:\"error-login-form\",attrs:{\"severity\":\"error\"}},[_vm._v(_vm._s(_vm.validation.firstError(\"login.senhaAcesso\")))])]:_vm._e(),(this.erro)?[_c('div',{staticClass:\"error-login-form\",attrs:{\"severity\":\"error\"}},[_vm._v(_vm._s(this.erro))])]:_vm._e()],2):_vm._e(),_c('div',{staticClass:\"input\"},[_c('div',{staticClass:\"input-user\"},[_c('span',{staticClass:\"input-text\"},[_c('div',{staticClass:\"input-with-icon\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.login.senhaAcesso),expression:\"login.senhaAcesso\"}],staticClass:\"input-senha\",class:{'error': _vm.validation.hasError('login.senhaAcesso')},attrs:{\"id\":\"senha\",\"type\":\"password\",\"placeholder\":\"Senha\",\"autocomplete\":\"off\",\"tabindex\":\"2\"},domProps:{\"value\":(_vm.login.senhaAcesso)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(_vm.login, \"senhaAcesso\", $event.target.value)},function($event){return _vm.removerErro()}]}}),_c('img',{staticClass:\"input-icon-padlock\",attrs:{\"src\":require(\"../assets/icons/icon-padlock.svg\"),\"alt\":\"Mostrar senha\"}})])])])]),(!_vm.manutencao)?_c('div',{staticClass:\"link-esqueceu-senha\"},[_c('a',{staticClass:\"esqueceu-senha\",on:{\"click\":function($event){return _vm.esqueceuSenha()}}},[_vm._v(\"Esqueceu Sua Senha?\")])]):_vm._e(),(!_vm.manutencao)?_c('div',{staticClass:\"entrar\"},[_vm._m(1)]):_vm._e(),(!_vm.manutencao)?_c('div',{staticClass:\"outros-login\"},[_c('a',{on:{\"click\":function($event){return _vm.showJanelaCertificado()}}},[_vm._v(\"Entrar com certificado digital?\")])]):_vm._e()])]),(this.numbers)?_c('div',{staticClass:\"container-infos\"},[_c('div',{staticClass:\"infos-text\"},[_c('div',[_c('span',{staticClass:\"form-subtitle\",attrs:{\"id\":\"text1\"}},[_vm._v(_vm._s(this.numbers.qtdeNotasEmitidasFormatado)+\" NFS-e Emitidas.\")])]),(false)?_c('div',{staticClass:\"infos-text\"},[_c('span',{staticClass:\"form-subtitle\",attrs:{\"id\":\"text1\"}},[_vm._v(_vm._s(this.formataValorReal(this.numbers.devidoMunic))+\" Devido no Municipio.\")])]):_vm._e(),(false)?_c('div',{staticClass:\"infos-text\"},[_c('span',{staticClass:\"form-subtitle\",attrs:{\"id\":\"text1\"}},[_vm._v(_vm._s(this.formataValorReal(this.numbers.devidoForaMunic))+\" Devido Fora do Municipio.\")])]):_vm._e()]),_c('div',{staticClass:\"infos-text\"},[_c('span',{staticClass:\"form-subtitle\",attrs:{\"id\":\"text1\"}},[_vm._v(_vm._s(this.numbers.qtdeDapsEmitidosFormatado)+\" \"+_vm._s(_vm.notaTomador ? 'Notas Fiscais Tomador' : 'DAPS Emitidos')+\".\")])]),_c('div',{staticClass:\"infos-text\"},[_c('span',{staticClass:\"form-subtitle\",attrs:{\"id\":\"text1\"}},[_vm._v(_vm._s(this.numbers.qtdeCredenciamentosFormatado)+\" Credenciamentos.\")])]),(false)?_c('div',{staticClass:\"denuncia\"},[_vm._m(2),_c('div',{staticClass:\"denuncia-text\"},[_c('span',{staticClass:\"form-subtitle\"},[_vm._v(\"Realize uma Denúncia relacionada à Prestação de Serviços.\")]),_c('div',[_c('Button',{staticClass:\"btnDenuncia\",attrs:{\"label\":\"Denúncia Fiscal\"},on:{\"click\":function($event){return _vm.denunciaFiscal()}}})],1)])]):_vm._e()]):_vm._e(),(_vm.showDadosCliente)?_c('div',{staticClass:\"container-infos-contato\"},[_c('div',{staticClass:\"infos-text-contato\"},[_c('div',[_c('span',{staticClass:\"form-subtitle-contato\",attrs:{\"id\":\"text1\"}},[_vm._v(_vm._s(this.numbers.msgContatoLogin.trim()))])])])]):_vm._e(),_c('Carousel',{attrs:{\"buttons\":_vm.carouselButtons}}),_c('AvisosCarousel',{attrs:{\"buttons\":_vm.AvisosCarousel}})],1),(this.numbers && this.numbers.linkRps)?_c('Dialog',{attrs:{\"visible\":_vm.showLinkRps,\"modal\":true,\"closable\":false},on:{\"update:visible\":function($event){_vm.showLinkRps=$event}}},[_c('div',{staticClass:\"esqueceu-senha-modal\"},[_c('div',{staticClass:\"header-container\"},[_c('h1',{staticClass:\"titulo-header\"},[_vm._v(\"Link Envio RPS\")]),_c('button',{staticClass:\"btn-cancelar\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.showLinkRps = false}}},[_c('img',{staticClass:\"icon-close\",attrs:{\"src\":require(\"../assets/icons/icon-close.svg\"),\"alt\":\"Fechar\"}})])]),_c('div',{staticClass:\"senha-info\"},[_c('label',{staticClass:\"info-modal\"},[_vm._v(_vm._s(_vm.numbers.linkRps))])])]),_c('div',{staticClass:\"button-container\"},[_c('Button',{staticClass:\"btnAvançar\",attrs:{\"label\":\"Copiar\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.copiarLinkRps()}}})],1)]):_vm._e(),_c('Dialog',{staticStyle:{\"backdrop-filter\":\"blur(1px)\"},attrs:{\"visible\":_vm.showEsqueceu,\"modal\":true,\"closable\":false},on:{\"update:visible\":function($event){_vm.showEsqueceu=$event}}},[_c('div',{staticClass:\"esqueceu-senha-modal\"},[_c('div',{staticClass:\"header-container\"},[_c('h1',{staticClass:\"titulo-header\"},[_vm._v(\"Esqueceu sua Senha?\")]),_c('button',{staticClass:\"btn-cancelar\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.hideNovaSenha()}}},[_c('img',{staticClass:\"icon-close\",attrs:{\"src\":require(\"../assets/icons/icon-close.svg\"),\"alt\":\"Fechar\"}})])]),_c('div',{staticClass:\"senha-info\"},[_c('label',{staticClass:\"info-modal\"},[_vm._v(\"Informe o tipo e seu respectivo Documento para recuperação de senha:\")])]),_c('div',{staticClass:\"senha-options\"},[_c('label',{staticClass:\"label-tipo\",attrs:{\"for\":\"tipoPessoa\"}},[_vm._v(\"Tipo: \")]),_c('span',{staticClass:\"dropdown-container\"},[_c('Dropdown',{attrs:{\"id\":\"tipoPessoa\",\"options\":_vm.tiposPessoa,\"optionLabel\":\"name\",\"placeholder\":\"Selecione um Tipo de Pessoa\"},model:{value:(_vm.selectedTipoPessoa),callback:function ($$v) {_vm.selectedTipoPessoa=$$v},expression:\"selectedTipoPessoa\"}})],1),_c('div',{staticClass:\"input-container\"},[(_vm.selectedTipoPessoa && _vm.selectedTipoPessoa.key === 'F')?[_c('InputMask',{key:\"F\",attrs:{\"id\":\"recuperaLogin\",\"type\":\"text\",\"placeholder\":\"CPF\",\"autocomplete\":\"off\",\"mask\":\"999.999.999-99\"},model:{value:(_vm.loginNovaSenha),callback:function ($$v) {_vm.loginNovaSenha=$$v},expression:\"loginNovaSenha\"}})]:[_c('InputMask',{key:\"J\",attrs:{\"id\":\"recuperaLogin\",\"type\":\"text\",\"placeholder\":\"CNPJ\",\"autocomplete\":\"off\",\"mask\":\"99.999.999/9999-99\"},model:{value:(_vm.loginNovaSenha),callback:function ($$v) {_vm.loginNovaSenha=$$v},expression:\"loginNovaSenha\"}})]],2)])]),_c('div',{staticClass:\"botoes-avancar-voltar\"},[_c('Button',{staticClass:\"btnVoltar\",attrs:{\"label\":\"Voltar\",\"type\":\"submit\",\"id\":\"btnVoltar\",\"icon\":\"pi pi-angle-left\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.hideJanelaSenha()}}}),_c('Button',{staticClass:\"btnAvançar\",attrs:{\"label\":\"Recuperar Senha\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.requisitarNovaSenha()}}})],1)]),_c('Dialog',{staticStyle:{\"backdrop-filter\":\"blur(1px)\"},attrs:{\"visible\":_vm.showCertificado,\"modal\":true,\"closable\":false},on:{\"update:visible\":function($event){_vm.showCertificado=$event}}},[_c('div',{staticClass:\"certificado-digital-modal\"},[_c('div',{staticClass:\"header-container\"},[_c('h1',{staticClass:\"titulo-header\"},[_vm._v(\"Certificado Digital\")]),_c('button',{staticClass:\"btn-cancelar\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.hideJanelaCertificado()}}},[_c('img',{staticClass:\"icon-close\",attrs:{\"src\":require(\"../assets/icons/icon-close.svg\"),\"alt\":\"Fechar\"}})])]),_c('div',{staticClass:\"scrolable-dialog\"},[(_vm.showCarregarCert)?_c('div',{staticClass:\"certificado-info\"},[_c('div',{staticClass:\"text-center\"},[_vm._v(\"\\n          Aguarde, carregando informações do certificado..\\n        \")])]):_vm._e(),(!_vm.showCarregarCert)?_c('div',{staticClass:\"certificado-info\"},[_c('div',{staticClass:\"info-modal\"},[_vm._v(\"\\n          Certifique-se que o seu certificado digital está corretamente instalado no navegador.\\n        \")]),_c('div',{staticClass:\"botoes-avancar-voltar\"},[_c('Button',{staticClass:\"btnVoltar\",attrs:{\"label\":\"Voltar\",\"type\":\"submit\",\"id\":\"btnVoltar\",\"icon\":\"pi pi-angle-left\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.hideJanelaCertificado()}}}),_c('Button',{staticClass:\"btnAvançar\",attrs:{\"label\":\"Carregue o Certificado\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.carregarCertificado()}}})],1)]):_vm._e()])])]),_c('Dialog',{style:({ width: '25vw' }),attrs:{\"header\":\"Necessária Validação do reCAPTCHA\",\"visible\":_vm.showCaptcha,\"modal\":true,\"closable\":false},on:{\"update:visible\":function($event){_vm.showCaptcha=$event}}},[_c('div',{staticClass:\"container scrolable-dialog\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"d-flex justify-content align-items-center\",staticStyle:{\"margin\":\"0 auto\"}},[_c('VueRecaptcha',{attrs:{\"sitekey\":_vm.siteKey,\"load-recaptcha-script\":true},on:{\"verify\":_vm.handleSuccess}})],1)])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:\"header\"},[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"logo\"},[_c('img',{attrs:{\"src\":require(\"../assets/img/icon-gpi-nfse.svg\"),\"alt\":\"Logo gpi e NFSE\"}})])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"entrar-text\"},[_c('button',{staticClass:\"btnEntrar\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Entrar\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"denuncia-col\"},[_c('img',{attrs:{\"src\":require(\"../assets/img/denuncia.png\")}})])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"carouselRef\",staticClass:\"carousel-container\"},[_c('button',{staticClass:\"carousel-control prev-links\",class:{ disabled: _vm.currentIndex === 0 },attrs:{\"disabled\":_vm.currentIndex === 0,\"aria-label\":\"Previous slide\"},on:{\"click\":_vm.prevSlide}},[_c('img',{staticClass:\"setas-navegacao\",attrs:{\"src\":require(\"@/assets/icons/seta-left.svg\"),\"alt\":\"Seta para a esquerda\"}})]),_c('div',{staticClass:\"carousel\"},[_c('div',{staticClass:\"carousel-track\",style:({ transform: _vm.translateValue })},_vm._l((_vm.groupedButtons),function(group,groupIndex){return _c('div',{key:groupIndex,staticClass:\"carousel-group\"},_vm._l((group),function(button,index){return _c('div',{key:index,staticClass:\"carousel-slide\",style:({ width: (_vm.slideWidth + \"px\") })},[_c('a',{staticClass:\"carousel-button\",attrs:{\"href\":button.route},on:{\"click\":function($event){$event.preventDefault();return button.action($event)}}},[_c('img',{staticClass:\"button-icon\",attrs:{\"src\":button.icon,\"alt\":button.alt}}),_c('span',{staticClass:\"text-button\"},[_vm._v(_vm._s(button.text))])])])}),0)}),0)]),_c('button',{staticClass:\"carousel-control next-links\",class:{ disabled: _vm.isAtEnd },attrs:{\"disabled\":_vm.isAtEnd,\"aria-label\":\"Next slide\"},on:{\"click\":_vm.nextSlide}},[_c('img',{staticClass:\"setas-navegacao\",attrs:{\"src\":require(\"@/assets/icons/seta-right.svg\"),\"alt\":\"Seta para a direita\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <div class=\"carousel-container\" ref=\"carouselRef\">\r\n    <!-- Botão para navegar para o slide anterior -->\r\n    <button \r\n      @click=\"prevSlide\" \r\n      class=\"carousel-control prev-links\" \r\n      :disabled=\"currentIndex === 0\"\r\n      :class=\"{ disabled: currentIndex === 0 }\"\r\n      aria-label=\"Previous slide\"\r\n    >\r\n      <img class=\"setas-navegacao\" src=\"@/assets/icons/seta-left.svg\" alt=\"Seta para a esquerda\" />\r\n    </button>\r\n\r\n    <div class=\"carousel\">\r\n      <div class=\"carousel-track\" :style=\"{ transform: translateValue }\">\r\n        <div v-for=\"(group, groupIndex) in groupedButtons\" :key=\"groupIndex\" class=\"carousel-group\">\r\n          <div v-for=\"(button, index) in group\" :key=\"index\" \r\n               class=\"carousel-slide\" \r\n               :style=\"{ width: `${slideWidth}px` }\">\r\n            <a :href=\"button.route\" class=\"carousel-button\" @click.prevent=\"button.action\">\r\n              <img :src=\"button.icon\" :alt=\"button.alt\" class=\"button-icon\" />\r\n              <span class=\"text-button\">{{ button.text }}</span>\r\n            </a>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n    <!-- Botão para navegar para o próximo slide -->\r\n    <button \r\n      @click=\"nextSlide\" \r\n      class=\"carousel-control next-links\" \r\n      :disabled=\"isAtEnd\"\r\n      :class=\"{ disabled: isAtEnd }\"\r\n      aria-label=\"Next slide\"\r\n    >\r\n      <img class=\"setas-navegacao\" src=\"@/assets/icons/seta-right.svg\" alt=\"Seta para a direita\" />\r\n    </button>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n  name: 'Carousel',\r\n  props: {\r\n    buttons: {\r\n      type: Array,\r\n      required: true\r\n    }\r\n  },\r\n  data() {\r\n    return {\r\n      currentIndex: 0,\r\n      slideWidth: 0,\r\n      slidesPerView: 4,\r\n      groupedSlides: []\r\n    };\r\n  },\r\n  computed: {\r\n    // Agrupa os slides em conjuntos baseados no slidesPerView\r\n    groupedButtons() {\r\n      const groups = [];\r\n      for (let i = 0; i < this.buttons.length; i += this.slidesPerView) {\r\n        groups.push(this.buttons.slice(i, i + this.slidesPerView));\r\n      }\r\n      return groups;\r\n    },\r\n    isAtEnd() {\r\n      return this.currentIndex >= this.groupedButtons.length - 1;\r\n    },\r\n    translateValue() {\r\n      return `translateX(-${this.currentIndex * 100}%)`;\r\n    }\r\n  },\r\n  methods: {\r\n    calculateSlideWidth() {\r\n      if (this.$refs.carouselRef) {\r\n        const containerWidth = this.$refs.carouselRef.offsetWidth - 140; // Subtract navigation buttons width\r\n        this.slideWidth = Math.floor(containerWidth / this.slidesPerView);\r\n      }\r\n    },\r\n    updateSlidesPerView() {\r\n      const width = window.innerWidth;\r\n      if (width <= 768) {\r\n        this.slidesPerView = 1;\r\n      } else if (width <= 1200) {\r\n        this.slidesPerView = 2;\r\n      } else if (width <= 1439) {\r\n        this.slidesPerView = 3;\r\n      } else {\r\n        this.slidesPerView = 4;\r\n      }\r\n      \r\n      this.calculateSlideWidth();\r\n      this.adjustCurrentIndex();\r\n    },\r\n    adjustCurrentIndex() {\r\n      const maxIndex = Math.max(0, Math.ceil(this.buttons.length / this.slidesPerView) - 1);\r\n      this.currentIndex = Math.min(this.currentIndex, maxIndex);\r\n    },\r\n    nextSlide() {\r\n      if (!this.isAtEnd) {\r\n        this.currentIndex++;\r\n      }\r\n    },\r\n    prevSlide() {\r\n      if (this.currentIndex > 0) {\r\n        this.currentIndex--;\r\n      }\r\n    }\r\n  },\r\n  mounted() {\r\n    this.updateSlidesPerView();\r\n    window.addEventListener('resize', this.updateSlidesPerView);\r\n  },\r\n  beforeDestroy() {\r\n    window.removeEventListener('resize', this.updateSlidesPerView);\r\n  }\r\n};\r\n</script>\r\n\r\n<style>\r\n/* src=\"@/assets/css/carousel.css\" */\r\n@import '../../assets/css/variables.css';\r\n\r\n.carousel-container {\r\n  position: relative;\r\n  width: 100%;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  margin: 30px 0;\r\n  grid-column: span 3; /* Spans all 3 columns */\r\n  -webkit-box-ordinal-group: 4;\r\n  -ms-flex-order: 3;\r\n  order: 3;\r\n}\r\n\r\n.carousel {\r\n  width: calc(100% - 140px);\r\n  overflow: hidden;\r\n  margin: 0 20px;\r\n  height: 200px;\r\n  display: flex;\r\n  align-items: center;\r\n  flex-direction: column;\r\n  flex-wrap: nowrap;\r\n  justify-content: flex-start;\r\n}\r\n\r\n.carousel-track {\r\n  display: flex;\r\n  transition: transform 0.3s ease;\r\n  width: 100%;\r\n}\r\n\r\n.carousel-group {\r\n  display: flex;\r\n  flex: 0 0 100%;\r\n  justify-content: center;\r\n  gap: 20px;\r\n}\r\n\r\n.carousel-slide {\r\n  flex: 1;\r\n  min-width: 0;\r\n  padding: 0 10px;\r\n  box-sizing: border-box;\r\n}\r\n\r\n@media (max-width: 1200px) {\r\n  .carousel-group {\r\n    gap: 10px;\r\n  }\r\n}\r\n\r\n@media (max-width: 768px) {\r\n  .carousel-slide {\r\n    width: calc(100% - 20px) !important;\r\n  }\r\n  \r\n  .carousel {\r\n    width: calc(100% - 80px);\r\n  }\r\n  \r\n}\r\n\r\n/* Modified media queries for grid layout */\r\n@media (max-width: 1920px) {\r\n  .carousel-container {\r\n    max-width: 1493px; /* 383px + 580px + 384px + 146px gaps */\r\n  }\r\n}\r\n\r\n@media (max-width: 1440px) {\r\n  .carousel-container {\r\n    max-width: 100%;\r\n    margin: 30px 20px;\r\n  }\r\n}\r\n\r\n.carousel {\r\n  position: relative;\r\n  width: 100%;\r\n  max-width: 100%;\r\n  margin: auto;\r\n  height: 200px;\r\n  -webkit-box-ordinal-group: 4;\r\n  -ms-flex-order: 3;\r\n  order: 3;\r\n  grid-column: span 3;\r\n  display: flex;\r\n  -webkit-box-align: center;\r\n  align-items: center;\r\n  flex-direction: column;\r\n  flex-wrap: nowrap;\r\n  justify-content: flex-start;\r\n}\r\n\r\n.carousel-wrapper {\r\n  width: calc(100% - 425px); /* 70px para cada botão de navegação */\r\n  margin: 0 auto;\r\n  overflow: hidden;\r\n}\r\n\r\n.carousel-container {\r\n  display: flex;\r\n  transition: transform 0.3s ease;\r\n  height: 180px;\r\n  align-items: center;\r\n}\r\n\r\n.carousel-slide {\r\n  flex: 0 0 306px;\r\n  padding: 0 10px;\r\n  box-sizing: border-box;\r\n}\r\n\r\n.carousel-button {\r\n  display: flex;\r\n  align-items: center;\r\n  width: 100%;\r\n  height: var(--header-height);\r\n  padding: 8px 10px;\r\n  background-color: #DFDFDF;\r\n  color: #282828;\r\n  text-decoration: none;\r\n  border-radius: var(--border-radius);\r\n  transition: all 0.3s ease;\r\n  margin-bottom: 0 !important;\r\n}\r\n\r\n.text-button {\r\n  text-align: left;\r\n}\r\n\r\n.carousel-button:hover {\r\n  filter: drop-shadow(0px 5px 15px rgba(0, 0, 0, 0.35));\r\n}\r\n\r\n.button-icon {\r\n  margin-right: 28px;\r\n  width: 40px;\r\n  height: 47px;\r\n  flex-shrink: 0;\r\n}\r\n\r\n.carousel-control {\r\n  position: absolute;\r\n  top: 39%;\r\n  transform: translateY(-50%);\r\n  background-color: transparent;\r\n  border: none;\r\n  cursor: pointer;\r\n  padding: 10px;\r\n  z-index: 10;\r\n  transition: opacity 0.3s ease;\r\n  width: 70px;\r\n  height: 70px;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n}\r\n\r\n.setas-navegacao {\r\n  height: 35px;\r\n}\r\n\r\n.carousel-control.disabled {\r\n  opacity: 0.5;\r\n  pointer-events: none;\r\n}\r\n\r\n.prev-links {\r\n  left: -70px;\r\n}\r\n\r\n.next-links {\r\n  right: -70px;\r\n}\r\n\r\na:hover {\r\n  color: var(--primary-color);\r\n  text-decoration: none;\r\n} \r\n\r\n@media (max-width: 1920px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 410px);\r\n  }\r\n}\r\n\r\n@media (max-width: 1800px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 410px);\r\n  }\r\n}\r\n\r\n@media (max-width: 1746px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 320px); \r\n  }\r\n  .prev-links {\r\n    /* left: 100px; */\r\n  }\r\n  \r\n  .next-links {\r\n    /* right: 100px; */\r\n  }\r\n}\r\n\r\n@media (max-width: 1650px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 230px);\r\n  }\r\n}\r\n\r\n@media (max-width: 1537px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 250px); \r\n  }\r\n  .prev-links {\r\n    /* left: 0px; */\r\n  }\r\n  \r\n  .next-links {\r\n    /* right: 0px; */\r\n  }\r\n}\r\n\r\n@media (max-width: 1440px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 320px);\r\n  }\r\n  .prev-links {\r\n    left: -40px;\r\n  }\r\n  \r\n  .next-links {\r\n    right: -40px;\r\n  }\r\n}\r\n\r\n@media (max-width: 1366px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 250px);\r\n  }\r\n}\r\n\r\n@media (max-width: 1280px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 260px);\r\n  }\r\n  .prev-links {\r\n    /* left: 60px; */\r\n  }\r\n  \r\n  .next-links {\r\n    /* right: 60px; */\r\n  }\r\n}\r\n\r\n@media (max-width: 1098px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 380px);\r\n  }\r\n  .prev-links {\r\n    /* left: 120px; */\r\n  }\r\n  \r\n  .next-links {\r\n    /* right: 120px; */\r\n  }\r\n}\r\n\r\n@media (max-width: 1024px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 306px);\r\n  }\r\n}\r\n\r\n@media (max-width: 960px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 242px);\r\n  }\r\n  .prev-links {\r\n    /* left: 60px; */\r\n  }\r\n  \r\n  .next-links {\r\n    /* right: 60px; */\r\n  }\r\n}\r\n\r\n@media (max-width: 854px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 450px);\r\n  }\r\n}\r\n\r\n@media (max-width: 768px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 355px);\r\n  }\r\n  .prev-links {\r\n    left: 0px;\r\n  }\r\n  \r\n  .next-links {\r\n    right: 0px;\r\n  }\r\n}\r\n\r\n@media (max-width: 720px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 300px);\r\n  }\r\n}\r\n\r\n@media (max-width: 640px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 230px);\r\n  }\r\n  .prev-links {\r\n    /* left: 50px; */\r\n  }\r\n  \r\n  .next-links {\r\n    /* right: 50px; */\r\n  }\r\n}\r\n\r\n@media (max-width: 540px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 135px);\r\n  }\r\n}\r\n\r\n@media (max-width: 480px) {\r\n  .carousel-wrapper {\r\n    width: calc(100% - 130px);\r\n  }\r\n  .prev-links {\r\n    left: -20px;\r\n  }\r\n  \r\n  .next-links {\r\n    right: -20px;\r\n  }\r\n}\r\n\r\n@media (max-width: 414px) {\r\n  .carousel-slide {\r\n    flex: 0 0 280px;\r\n  }\r\n  .carousel-wrapper {\r\n    width: calc(100% - 95px);\r\n  }\r\n}\r\n\r\n@media (max-width: 385px) {\r\n  .carousel-slide {\r\n    flex: 0 0 280px;\r\n  }\r\n  \r\n  .carousel-wrapper {\r\n    width: calc(100% - 65px);\r\n  }\r\n  \r\n  .carousel-control {\r\n    width: 20px;\r\n  }\r\n  .next-links {\r\n    right: -5px;\r\n  }\r\n  .prev-links {\r\n    left: -5px;\r\n  }\r\n}\r\n\r\n@media (max-width: 320px) {\r\n  .carousel-slide {\r\n    flex: 0 0 230px;\r\n  }\r\n\r\n  .carousel-wrapper {\r\n    width: calc(100% - 50px);\r\n  }\r\n}\r\n\r\n@media (min-width: 1201px) and (max-width: 1439px) {\r\n  .carousel-group {\r\n    gap: 5px;\r\n  }\r\n  \r\n  .carousel-slide {\r\n    flex: 0 0 calc(33.333% - 10px);\r\n  }\r\n}\r\n\r\n@media (min-width: 1440px) {\r\n  .carousel-slide {\r\n    flex: 0 0 calc(25% - 15px);\r\n  }\r\n  \r\n  .carousel-group {\r\n    gap: 0px;\r\n  }\r\n  .next-links {\r\n    right: -20px;\r\n  }\r\n  .prev-links {\r\n    left: -20px;\r\n  }\r\n\r\n}\r\n\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Carousel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Carousel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Carousel.vue?vue&type=template&id=8e4bb368&\"\nimport script from \"./Carousel.vue?vue&type=script&lang=js&\"\nexport * from \"./Carousel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Carousel.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (this.contemAvisos)?_c('div',{staticClass:\"carousel-container-avisos\"},[_vm._m(0),_c('div',{staticClass:\"carousel-avisos-container\"},[_c('button',{staticClass:\"carousel-control-avisos prev-avisos\",class:{ disabled: _vm.currentIndex === 0 },attrs:{\"id\":\"carousel-control-avisos\",\"disabled\":_vm.currentIndex === 0,\"aria-label\":\"Slide anterior\"},on:{\"click\":_vm.prevSlide}},[_c('img',{staticClass:\"setas-navegacao\",attrs:{\"src\":require(\"@/assets/icons/seta-left.svg\"),\"alt\":\"Seta para a esquerda\"}})]),_c('button',{staticClass:\"carousel-control-avisos next-avisos\",class:{ disabled: _vm.isAtEnd },attrs:{\"id\":\"carousel-control-avisos\",\"disabled\":_vm.isAtEnd,\"aria-label\":\"Próximo slide\"},on:{\"click\":_vm.nextSlide}},[_c('img',{staticClass:\"setas-navegacao\",attrs:{\"src\":require(\"@/assets/icons/seta-right.svg\"),\"alt\":\"Seta para a direita\"}})])]),_c('div',{staticClass:\"carousel-avisos\"},[_c('div',{staticClass:\"carousel-track\",style:({ transform: (\"translateX(-\" + (_vm.currentIndex * 100) + \"%)\") })},_vm._l((_vm.groupedItems),function(slide,slideIndex){return _c('div',{key:slideIndex,staticClass:\"carousel-slide-avisos\"},_vm._l((slide),function(item,index){return _c('button',{key:index,staticClass:\"carousel-item-avisos\",on:{\"click\":function($event){return _vm.showAviso(item.objeto)}}},[_c('div',{staticClass:\"card-avisos\"},[_c('p',{staticClass:\"card-avisos-text\"},[_c('strong',{staticClass:\"date\"},[_vm._v(_vm._s(item.date)+\" - \")]),_c('strong',{staticClass:\"content-text\"},[_vm._v(_vm._s(item.title)+\" \")]),_c('span',{staticClass:\"content-text\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.truncateText(item.content, _vm.isSmallDevice ? 105 : 180))}})]),_c('a',{staticClass:\"read-more\",on:{\"click\":function($event){return _vm.showAviso(item.objeto)}}},[_vm._v(\"Leia mais...\")])])])])}),0)}),0)]),(_vm.avisoAtual && _vm.avisoAtual.titulo)?_c('Dialog',{staticStyle:{\"backdrop-filter\":\"blur(5px)\"},attrs:{\"visible\":_vm.displayAviso,\"modal\":\"true\",\"showHeader\":false},on:{\"update:visible\":function($event){_vm.displayAviso=$event}}},[_c('div',{staticClass:\"header-container\"},[_c('h1',{staticClass:\"titulo-header\"},[_vm._v(_vm._s(_vm.avisoAtual.titulo))]),_c('button',{staticClass:\"btn-cancelar\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.hideAviso()}}},[_c('img',{staticClass:\"icon-close\",attrs:{\"src\":require(\"../../assets/icons/icon-close.svg\"),\"alt\":\"Fechar\"}})])]),_c('div',{staticClass:\"scrolable-dialog\",staticStyle:{\"max-width\":\"1000px\"}},[_c('div',{staticClass:\"row\"},[(_vm.avisoAtual.tipo == 'T')?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.avisoAtual.mensagem)}}):_vm._e(),(_vm.avisoAtual.tipo == 'Q')?_c('label',[_c('b',[_vm._v(\"Assunto:\")])]):_vm._e(),(_vm.avisoAtual.tipo == 'Q')?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.avisoAtual.avisoAssunto.assunto)}}):_vm._e(),(_vm.avisoAtual.tipo == 'Q')?_c('hr'):_vm._e(),(_vm.avisoAtual.tipo == 'Q')?_c('label',[_c('b',[_vm._v(\"Pergunta:\")])]):_vm._e(),(_vm.avisoAtual.tipo == 'Q')?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.avisoAtual.avisoItem.pergunta)}}):_vm._e(),(_vm.avisoAtual.tipo == 'Q')?_c('hr'):_vm._e(),(_vm.avisoAtual.tipo == 'Q')?_c('label',[_c('b',[_vm._v(\"Resposta:\")])]):_vm._e(),(_vm.avisoAtual.tipo == 'Q')?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.avisoAtual.avisoItem.resposta)}}):_vm._e()])])]):_vm._e()],1):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-title-primary\"},[_c('span',{staticClass:\"form-title-primary\",attrs:{\"id\":\"titulo-avisos\"}},[_vm._v(\"AVISOS\")])])}]\n\nexport { render, staticRenderFns }","<!-- Seção de template do componente AvisosCarousel -->\r\n<template>\r\n  <!-- Container principal do carrossel de avisos -->\r\n  <div class=\"carousel-container-avisos\" v-if=\"this.contemAvisos\">\r\n    <!-- Título do carrossel, exibido apenas quando não está em modo de manutenção -->\r\n    <div class=\"form-title-primary\">\r\n      <span class=\"form-title-primary\" id=\"titulo-avisos\">AVISOS</span>\r\n    </div>\r\n\r\n    <div class=\"carousel-avisos-container\">\r\n    <!-- Botão para navegar para o slide anterior -->\r\n    <button @click=\"prevSlide\" class=\"carousel-control-avisos prev-avisos\" id=\"carousel-control-avisos\" :disabled=\"currentIndex === 0\"\r\n      :class=\"{ disabled: currentIndex === 0 }\" aria-label=\"Slide anterior\">\r\n      <!-- Ícone de seta para a esquerda -->\r\n      <img class=\"setas-navegacao\" src=\"@/assets/icons/seta-left.svg\" alt=\"Seta para a esquerda\" />\r\n    </button>\r\n\r\n    \r\n    <!-- Botão para navegar para o próximo slide -->\r\n    <button @click=\"nextSlide\" class=\"carousel-control-avisos next-avisos\" id=\"carousel-control-avisos\" :disabled=\"isAtEnd\"\r\n      :class=\"{ disabled: isAtEnd }\" aria-label=\"Próximo slide\">\r\n      <!-- Ícone de seta para a direita -->\r\n      <img class=\"setas-navegacao\" src=\"@/assets/icons/seta-right.svg\" alt=\"Seta para a direita\" />\r\n    </button>\r\n    </div>\r\n\r\n    <!-- Container do conteúdo do carrossel -->\r\n    <div class=\"carousel-avisos\">\r\n      <!-- Trilha do carrossel que se move para mostrar diferentes slides -->\r\n      <div class=\"carousel-track\" :style=\"{ transform: `translateX(-${currentIndex * 100}%)` }\">\r\n\r\n        <!-- Container de cada slide individual -->\r\n        <div class=\"carousel-slide-avisos\" v-for=\"(slide, slideIndex) in groupedItems\" :key=\"slideIndex\">\r\n\r\n          <!-- Item individual do carrossel (aviso) -->\r\n          <button class=\"carousel-item-avisos\" v-for=\"(item, index) in slide\" :key=\"index\"\r\n            @click=\"showAviso(item.objeto)\">\r\n            <div class=\"card-avisos\">\r\n              <p class=\"card-avisos-text\">\r\n                <!-- Data do aviso -->\r\n                <strong class=\"date\">{{ item.date }} - </strong>\r\n                <strong class=\"content-text\">{{ item.title }} </strong>\r\n                <!-- Conteúdo do aviso truncado -->\r\n                <span class=\"content-text\"><span\r\n                    v-html=\"truncateText(item.content, isSmallDevice ? 105 : 180)\" /></span>\r\n                <!-- Link \"Leia mais\" -->\r\n                <a class=\"read-more\" @click=\"showAviso(item.objeto)\">Leia mais...</a>\r\n              </p>\r\n            </div>\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n    <Dialog :visible.sync=\"displayAviso\" modal=\"true\" :showHeader=\"false\" v-if=\"avisoAtual && avisoAtual.titulo\" style=\"backdrop-filter: blur(5px);\">\r\n      <div class=\"header-container\">\r\n        <!-- Título do modal -->\r\n        <h1 class=\"titulo-header\">{{avisoAtual.titulo}}</h1>\r\n        <!-- Botão para fechar o modal -->\r\n        <button @click=\"hideAviso()\" type=\"button\" class=\"btn-cancelar\">\r\n          <!-- Ícone personalizado de fechar localizado na pasta assets -->\r\n          <img src=\"../../assets/icons/icon-close.svg\" alt=\"Fechar\" class=\"icon-close\" />\r\n        </button>\r\n      </div>\r\n\r\n      <div class=\"scrolable-dialog\" style=\"max-width: 1000px;\">\r\n        <div class=\"row\">\r\n          <div v-if=\"avisoAtual.tipo == 'T'\" v-html=\"avisoAtual.mensagem\" />\r\n          <label v-if=\"avisoAtual.tipo == 'Q'\"><b>Assunto:</b></label>\r\n          <div v-if=\"avisoAtual.tipo == 'Q'\" v-html=\"avisoAtual.avisoAssunto.assunto\" />\r\n          <hr v-if=\"avisoAtual.tipo == 'Q'\" />\r\n          <label v-if=\"avisoAtual.tipo == 'Q'\"><b>Pergunta:</b></label>\r\n          <div v-if=\"avisoAtual.tipo == 'Q'\" v-html=\"avisoAtual.avisoItem.pergunta\" />\r\n          <hr v-if=\"avisoAtual.tipo == 'Q'\" />\r\n          <label v-if=\"avisoAtual.tipo == 'Q'\"><b>Resposta:</b></label>\r\n          <div v-if=\"avisoAtual.tipo == 'Q'\" v-html=\"avisoAtual.avisoItem.resposta\" />\r\n        </div>\r\n      </div>\r\n    </Dialog>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport DnsClienteService from \"@/services/nfse/dns.cliente.service\"; // Importa o serviço de DNS para cliente relacionado a NFSe\r\nimport LoginService from \"@/services/acesso/login.service\";\r\n// Definição do componente\r\nexport default {\r\n  // Dados do componente\r\n  data() {\r\n    return {\r\n      displayAviso: false,\r\n      avisoAtual: null,\r\n      contemAvisos: false,\r\n      avisos: [],\r\n      currentIndex: 0, // Índice do slide atual\r\n      items: [],\r\n      isSmallDevice: false, // Flag para detecção de dispositivos pequenos\r\n    };\r\n  },\r\n  // Propriedades computadas\r\n  computed: {\r\n    // Agrupa os itens em slides com base no tamanho do dispositivo\r\n\r\n    groupedItems() {\r\n      const itemsPerSlide = this.isSmallDevice ? 1 : 4;\r\n      const groups = [];\r\n      for (let i = 0; i < this.items.length; i += itemsPerSlide) {\r\n        groups.push(this.items.slice(i, i + itemsPerSlide));\r\n      }\r\n      return groups;\r\n    },\r\n    // Verifica se o carrossel está no último slide\r\n    isAtEnd() {\r\n      return this.currentIndex >= this.groupedItems.length - 1;\r\n    },\r\n  },\r\n  // Métodos do componente\r\n  methods: {\r\n    hideAviso(){\r\n      this.displayAviso = false;\r\n    },\r\n    showAviso(aviso){\r\n      this.avisoAtual = aviso;\r\n      this.displayAviso = true;\r\n    },\r\n    montarAvisos() {\r\n      let retorno = [];\r\n      if (this.avisos && this.avisos.length > 0) {\r\n        this.contemAvisos = true;\r\n        this.avisos.forEach(function (aviso) {\r\n          retorno.push(\r\n            {\r\n              date: aviso.dataFormatada,\r\n              title: aviso.titulo,\r\n              content: aviso.mensagem,\r\n              objeto: aviso\r\n            }\r\n          );\r\n        });\r\n      }\r\n      return retorno;\r\n    },\r\n    // Avança para o próximo slide\r\n    nextSlide() {\r\n      if (this.currentIndex < this.groupedItems.length - 1) {\r\n        this.currentIndex++;\r\n      }\r\n    },\r\n    // Retorna para o slide anterior\r\n    prevSlide() {\r\n      if (this.currentIndex > 0) {\r\n        this.currentIndex--;\r\n      }\r\n    },\r\n    // Trunca o texto para o comprimento especificado\r\n    truncateText(text, maxLength) {\r\n      if (text.length <= maxLength) return text;\r\n      return text.slice(0, maxLength) + '...';\r\n    },\r\n    // Navega para o link do aviso\r\n    goToAviso(link) {\r\n      window.location.href = link;\r\n    },\r\n    // Lida com o redimensionamento da janela\r\n    handleResize() {\r\n      this.isSmallDevice = window.innerWidth <= 1280;\r\n      this.currentIndex = 0;\r\n    },\r\n  },\r\n  // Hooks do ciclo de vida\r\n  mounted() {\r\n    this.avisos = [];\r\n    setTimeout(async () => {\r\n      let host = window.location.hostname;\r\n      let dnsCliente = await DnsClienteService.get(host);                           // Busca os dados do cliente DNS usando o hostname\r\n\r\n      // Verifica se os dados do cliente DNS estão disponíveis\r\n      if (\r\n        dnsCliente &&\r\n        dnsCliente.data &&\r\n        dnsCliente.data.idCliente\r\n      ) {\r\n        let idCliente = dnsCliente.data.idCliente;\r\n        LoginService.findAllAvisos(idCliente).then((res) => {\r\n          this.avisos = res.data;\r\n          this.items = this.montarAvisos();\r\n        })\r\n      }\r\n    }, 250);\r\n    // Chama handleResize quando o componente é montado\r\n    this.handleResize();\r\n    // Adiciona um listener para o evento de redimensionamento da janela\r\n    window.addEventListener('resize', this.handleResize);\r\n  },\r\n  beforeDestroy() {\r\n    // Remove o listener de redimensionamento quando o componente é destruído\r\n    window.removeEventListener('resize', this.handleResize);\r\n  },\r\n};\r\n</script>\r\n\r\n<!-- Importa estilos adicionais -->\r\n<style src=\"@/assets/css/avisosCarousel.css\"></style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvisosCarousel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AvisosCarousel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AvisosCarousel.vue?vue&type=template&id=8adb6acc&\"\nimport script from \"./AvisosCarousel.vue?vue&type=script&lang=js&\"\nexport * from \"./AvisosCarousel.vue?vue&type=script&lang=js&\"\nimport style0 from \"@/assets/css/avisosCarousel.css?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","class Login {\r\n    constructor() {\r\n        this.nomeAcesso = null\r\n        this.senhaAcesso = null\r\n    }\r\n}\r\nexport default Login;","import axios from 'axios';\r\n\r\n\r\nconst API_URL = process.env.VUE_APP_BASE_URL + \"/el_nfse/vw_nfs_numeros\";\r\n\r\nclass NfsNumeros {\r\n  constructor() {\r\n  }\r\n\r\n  listarNumeros(idCliente) {\r\n    return axios.get(API_URL+'?idCliente='+idCliente, {headers: this.headers});\r\n  }\r\n}\r\nexport default new NfsNumeros();\r\n","<template>\r\n  <!-- Container principal da página -->\r\n  <div class=\"container-fluid\">\r\n    <!-- Cabeçalho da página -->\r\n    <header class=\"header\">\r\n      <div class=\"container\">\r\n        <!-- Logo -->\r\n        <div class=\"logo\">\r\n          <img src=\"../assets/img/icon-gpi-nfse.svg\" alt=\"Logo gpi e NFSE\" />\r\n        </div>\r\n      </div>\r\n    </header>\r\n\r\n    <!-- GRID DA TELA INICIAL DE LOGIN -->\r\n    <div class=\"grid-principal\">\r\n    \r\n      <!-- FLEX DO BRASAO -->\r\n      <div class=\"entidade\">\r\n\r\n        <!-- IMAGEM DO BRASAO CASO O CLIENTE TENHA NO S3-->\r\n        <img class=\"icone-entidade\" :src=\"this.numbers.caminhoLogo\" style=\"width: 140px !important;\" alt v-if=\"!manutencao && !logoLogin && this.numbers && this.numbers.caminhoLogo\" />\r\n        \r\n        <img :src=\"logoLogin\" alt=\"Base64 encoded image\" class=\"icone-entidade\" v-show=\"exibirLogo\" style=\"width: 140px !important;\"/>\r\n\r\n        <!-- Nome da entidade //// AJUSTAR --> \r\n        <h1 class=\"nome-entidade\" v-if=\"!manutencao && this.numbers && this.numbers.nomeEntidade\">{{ this.numbers.nomeEntidade }}</h1>\r\n        <!-- Nome da entidade codificada //// AJUSTAR -->\r\n        <h1 class=\"nome-entidade\" v-if=\"!manutencao && this.numbers && this.numbers.nomeCliente\">{{this.numbers.nomeCliente}}</h1>\r\n      </div>\r\n\r\n      <!-- FLEX DO FORMULARIO DO LOGIN -->\r\n      <div class=\"form-login\">\r\n        <!-- Formulário de login -->\r\n        <form name=\"form\" @submit.prevent=\"handleLogin\">\r\n          <!-- Título do formulário -->\r\n          <div class=\"form-title-primary\" v-if=\"!manutencao\">\r\n            <span class=\"form-title-primary\">Entrar</span>\r\n          </div>\r\n          <!-- Banner de manutenção -->\r\n          <div v-if=\"manutencao\">\r\n            <template>\r\n              <img src=\"../assets/img/full-banner.png\" />\r\n            </template>\r\n          </div>\r\n\r\n          <!-- INPUT DO USUARIO -->\r\n          <div v-if=\"!manutencao\">\r\n            <div class=\"input\">\r\n              <div class=\"input-user\">\r\n                <span class=\"input-text\">\r\n                  <div class=\"input-wrapper\">\r\n                    <!-- Input com ícone dentro -->\r\n                    <div class=\"input-with-icon\">\r\n                      <!-- Input para CPF/CNPJ -->\r\n                      <input \r\n                        class=\"p-inputtext p-component p-filled\" \r\n                        v-if=\"idSimoes === '19533831040781681800D2584C905F8A'\"\r\n                        @input=\"removerErro()\"\r\n                        id=\"usuario\"\r\n                        type=\"text\"\r\n                        placeholder=\"CPF/CNPJ\"\r\n                        autocomplete=\"off\"\r\n                        tabindex=\"1\"\r\n                        v-model=\"login.nomeAcesso\"\r\n                      />\r\n                      <!-- Input para usuário -->\r\n                      <input \r\n                        class=\"p-inputtext p-component p-filled\" \r\n                        v-else\r\n                        @input=\"removerErro()\"\r\n                        id=\"usuario\"\r\n                        type=\"text\"\r\n                        placeholder=\"Usuário\"\r\n                        autocomplete=\"off\"\r\n                        tabindex=\"1\"\r\n                        v-model=\"login.nomeAcesso\"\r\n                      />\r\n                      <!-- Ícone dentro do input -->\r\n                      <img src=\"../assets/icons/icon-user.svg\" alt=\"icon user\" class=\"input-icon\" />\r\n                    </div>\r\n                  </div>\r\n                </span>\r\n              </div>\r\n            </div>\r\n          </div>\r\n\r\n          <!-- MENSAGEM DE ERRO CASO USUARIO E SENHA ERRADOS -->\r\n          <div v-if=\"!manutencao\">\r\n            <!-- Mensagem de sessão expirada -->\r\n            <template v-if=\"this.expired\">\r\n              <div class=\"error-login-form\" severity=\"warn\">Sua sessão expirou efetue um novo Login!</div>\r\n            </template>\r\n\r\n            <!-- Mensagem de erro genérica -->\r\n            <template v-if=\"this.mensagemErro\">\r\n              <div class=\"error-login-form\" severity=\"error\">{{ this.mensagemErro }}</div>\r\n            </template>\r\n\r\n            <!-- Erro de validação do nome de acesso -->\r\n            <template v-if=\"validation.hasError('login.nomeAcesso')\">\r\n              <div class=\"error-login-form\" severity=\"error\">{{ validation.firstError(\"login.nomeAcesso\")}}</div>\r\n            </template>\r\n\r\n            <!-- Erro de validação da senha -->\r\n            <template v-else-if=\"validation.hasError('login.senhaAcesso')\">\r\n              <div class=\"error-login-form\" severity=\"error\">{{ validation.firstError(\"login.senhaAcesso\")}}</div>\r\n            </template>\r\n\r\n            <!-- Erro genérico -->\r\n            <template v-if=\"this.erro\">\r\n              <div class=\"error-login-form\" severity=\"error\">{{ this.erro}}</div>\r\n            </template>\r\n          </div>\r\n\r\n          <!-- INPUT SENHA -->\r\n          <div class=\"input\">\r\n            <div class=\"input-user\">\r\n              <span class=\"input-text\">\r\n                <div class=\"input-with-icon\">\r\n                  <!-- Campo de senha -->\r\n                  <input \r\n                    @input=\"removerErro()\" \r\n                    id=\"senha\" \r\n                    type=\"password\" \r\n                    placeholder=\"Senha\" \r\n                    autocomplete=\"off\"\r\n                    tabindex=\"2\" \r\n                    v-model=\"login.senhaAcesso\" \r\n                    class=\"input-senha\" \r\n                    :class=\"{'error': validation.hasError('login.senhaAcesso')}\" \r\n                  />\r\n                  <!-- Ícone de olho para visualização de senha -->\r\n                  <img src=\"../assets/icons/icon-padlock.svg\" alt=\"Mostrar senha\" class=\"input-icon-padlock\" />\r\n                </div>\r\n              </span>\r\n            </div>\r\n          </div>\r\n\r\n          <!-- LINK ESQUECEU SUA SENHA -->\r\n          <div class=\"link-esqueceu-senha\" v-if=\"!manutencao\">\r\n            <a class=\"esqueceu-senha\" @click=\"esqueceuSenha()\">Esqueceu Sua Senha?</a>\r\n          </div>\r\n\r\n          <!-- BOTAO ENTRAR -->\r\n          <div class=\"entrar\" v-if=\"!manutencao\">\r\n            <span class=\"entrar-text\">\r\n              <button type=\"submit\" class=\"btnEntrar\">Entrar</button>\r\n            </span>\r\n          </div>\r\n\r\n          <!-- BOTAO ENTRAR COM CERTIFICADO DIGITAL -->\r\n          <div class=\"outros-login\" v-if=\"!manutencao\">\r\n            <a @click=\"showJanelaCertificado()\">Entrar com certificado digital?</a>\r\n          </div>\r\n        </form>\r\n      </div>\r\n\r\n      <!-- FLEX DAS INFORMACOES -->\r\n      <div class=\"container-infos\" v-if=\"this.numbers\">\r\n        <!-- INFORMACAO DAS NOTAS EMITIDAS -->\r\n        <div class=\"infos-text\">\r\n          <div>\r\n            <span id=\"text1\" class=\"form-subtitle\">{{ this.numbers.qtdeNotasEmitidasFormatado }} NFS-e Emitidas.</span>\r\n          </div>\r\n\r\n          <!-- INFORMACAO DOS DEVIDO AO MUNICIPIO -->\r\n          <div class=\"infos-text\" v-if=\"false\">\r\n            <span id=\"text1\" class=\"form-subtitle\">{{ this.formataValorReal(this.numbers.devidoMunic) }} Devido no Municipio.</span>\r\n          </div>\r\n\r\n          <!-- INFORMACAO DOS DEVIDO FORA DO MUNICIPIO -->\r\n          <div class=\"infos-text\" v-if=\"false\">\r\n            <span id=\"text1\" class=\"form-subtitle\">{{ this.formataValorReal(this.numbers.devidoForaMunic) }} Devido Fora do Municipio.</span>\r\n          </div>\r\n        </div>\r\n\r\n        <!-- INFORMACAO DAS DAPS EMITIDAS -->\r\n        <div class=\"infos-text\">\r\n          <span id=\"text1\" class=\"form-subtitle\">{{ this.numbers.qtdeDapsEmitidosFormatado }} {{ notaTomador ? 'Notas Fiscais Tomador' : 'DAPS Emitidos'}}.</span>\r\n        </div>\r\n\r\n        <!-- INFORMACAO DOS CREDENCIAMENTOS REALIZADOS -->\r\n        <div class=\"infos-text\">\r\n          <span id=\"text1\" class=\"form-subtitle\">{{ this.numbers.qtdeCredenciamentosFormatado }} Credenciamentos.</span>\r\n        </div>\r\n\r\n        <!-- INFO DA DENUNCIA -->\r\n        <div class=\"denuncia\" v-if=\"false\">\r\n          <div class=\"denuncia-col\">\r\n            <img src=\"../assets/img/denuncia.png\"/>\r\n          </div>\r\n          <div class=\"denuncia-text\">\r\n            <span class=\"form-subtitle\">Realize uma Denúncia relacionada à Prestação de Serviços.</span>\r\n            <div>\r\n              <Button label=\"Denúncia Fiscal\" class=\"btnDenuncia\" @click=\"denunciaFiscal()\" />\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <!-- <div  class=\"container-info-contato\"> -->\r\n        <div v-if=\"showDadosCliente\" class=\"container-infos-contato\">\r\n          <!-- INFORMACAO DE CONTATO DO CLIENTE -->\r\n          <div class=\"infos-text-contato\">\r\n            <div>\r\n              <span id=\"text1\" class=\"form-subtitle-contato\">{{ this.numbers.msgContatoLogin.trim() }}</span>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      <!-- </div> -->\r\n\r\n      <!-- LINKS HORIZONTAIS -->\r\n      <Carousel :buttons=\"carouselButtons\" />\r\n\r\n      <!-- AVISOS EM CARROSSEL -->\r\n      <AvisosCarousel :buttons=\"AvisosCarousel\" />\r\n\r\n    </div>\r\n\r\n    <Dialog :visible.sync=\"showLinkRps\" :modal=\"true\" :closable=\"false\" v-if=\"this.numbers && this.numbers.linkRps\">\r\n      <!-- Contêiner principal do modal -->\r\n      <div class=\"esqueceu-senha-modal\">\r\n\r\n        <!-- Cabeçalho do modal com título e botão de fechar -->\r\n        <div class=\"header-container\">\r\n          <!-- Título do modal -->\r\n          <h1 class=\"titulo-header\">Link Envio RPS</h1>\r\n\r\n          <!-- Botão para fechar o modal ao clicar, utilizando o ícone personalizado -->\r\n          <button @click=\"showLinkRps = false\" type=\"button\" class=\"btn-cancelar\">\r\n            <img src=\"../assets/icons/icon-close.svg\" alt=\"Fechar\" class=\"icon-close\" />\r\n          </button>        \r\n        </div>\r\n\r\n        <!-- Informações de numeros da entidade -->\r\n        <div class=\"senha-info\">\r\n          <label class=\"info-modal\">{{numbers.linkRps}}</label>\r\n        </div>\r\n\r\n      </div>\r\n\r\n      <!-- Botão para requisitar nova senha -->\r\n      <div class=\"button-container\">\r\n        <!-- O botão é desativado quando a variável 'loading' está verdadeira -->\r\n        <Button @click=\"copiarLinkRps()\" label=\"Copiar\" class=\"btnAvançar\" :disabled=\"loading\" />\r\n      </div>\r\n    </Dialog>\r\n\r\n    <!-- LINK DO ESQUECEU A SENHA -->\r\n    <!-- Modal para recuperação de senha, sincronizando visibilidade com 'showEsqueceu' -->\r\n    <Dialog :visible.sync=\"showEsqueceu\" :modal=\"true\" :closable=\"false\" style=\"backdrop-filter: blur(1px);\">\r\n      <!-- Contêiner principal do modal -->\r\n      <div class=\"esqueceu-senha-modal\">\r\n\r\n        <!-- Cabeçalho do modal com título e botão de fechar -->\r\n        <div class=\"header-container\">\r\n          <!-- Título do modal -->\r\n          <h1 class=\"titulo-header\">Esqueceu sua Senha?</h1>\r\n\r\n          <!-- Botão para fechar o modal ao clicar, utilizando o ícone personalizado -->\r\n          <button @click=\"hideNovaSenha()\" type=\"button\" class=\"btn-cancelar\">\r\n            <img src=\"../assets/icons/icon-close.svg\" alt=\"Fechar\" class=\"icon-close\" />\r\n          </button>        \r\n        </div>\r\n\r\n        <!-- Informações de numeros da entidade -->\r\n        <div class=\"senha-info\">\r\n          <label class=\"info-modal\">Informe o tipo e seu respectivo Documento para recuperação de senha:</label>\r\n        </div>\r\n\r\n        <!-- Seção de seleção de tipo de pessoa e entrada de documento -->\r\n        <div class=\"senha-options\">\r\n\r\n            <!-- Rótulo para o campo de seleção de tipo de pessoa -->\r\n            <label for=\"tipoPessoa\" class=\"label-tipo\">Tipo: </label>\r\n\r\n            <!-- Dropdown para seleção do tipo de pessoa (Física ou Jurídica) -->\r\n            <span class=\"dropdown-container\">\r\n              <Dropdown id=\"tipoPessoa\" v-model=\"selectedTipoPessoa\" :options=\"tiposPessoa\" optionLabel=\"name\"\r\n                placeholder=\"Selecione um Tipo de Pessoa\" />\r\n            </span>\r\n\r\n            <!-- Campo de entrada condicional baseado no tipo de pessoa selecionado -->\r\n            <div class=\"input-container\">\r\n              <!-- Máscara de CPF quando o tipo de pessoa é 'Física' (key 'F') -->\r\n              <template v-if=\"selectedTipoPessoa && selectedTipoPessoa.key === 'F'\">\r\n                <InputMask id=\"recuperaLogin\" type=\"text\" placeholder=\"CPF\" autocomplete=\"off\"\r\n                  v-model=\"loginNovaSenha\" mask=\"999.999.999-99\" key=\"F\" />\r\n              </template>\r\n\r\n              <!-- Máscara de CNPJ quando o tipo de pessoa é 'Jurídica' (key 'J') -->\r\n              <template v-else>\r\n                <InputMask id=\"recuperaLogin\" type=\"text\" placeholder=\"CNPJ\" autocomplete=\"off\"\r\n                  v-model=\"loginNovaSenha\" mask=\"99.999.999/9999-99\" key=\"J\" />\r\n              </template>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n      <!-- Botão para requisitar nova senha -->\r\n      <div class=\"botoes-avancar-voltar\">\r\n        <Button label=\"Voltar\" type=\"submit\"  class=\"btnVoltar\" id=\"btnVoltar\" @click=\"hideJanelaSenha()\"  icon=\"pi pi-angle-left\" :disabled=\"loading\" />\r\n        <!-- O botão é desativado quando a variável 'loading' está verdadeira -->\r\n        <Button @click=\"requisitarNovaSenha()\" label=\"Recuperar Senha\" class=\"btnAvançar\" :disabled=\"loading\" />\r\n      </div>\r\n    </Dialog>\r\n\r\n  <!-- IMPORTAR CERTIFICADO DIGITAL -->\r\n  <!-- Modal para seleção de certificado digital, com visibilidade controlada pela variável 'showCertificado' -->\r\n  <Dialog :visible.sync=\"showCertificado\" :modal=\"true\" :closable=\"false\" style=\"backdrop-filter: blur(1px);\">\r\n\r\n    <!-- Contêiner principal do modal para certificado digital -->\r\n    <div class=\"certificado-digital-modal\">\r\n\r\n      <!-- Cabeçalho do modal contendo o título e o botão de fechar -->\r\n      <div class=\"header-container\">\r\n        \r\n        <!-- Título do modal -->\r\n        <h1 class=\"titulo-header\">Certificado Digital</h1>\r\n\r\n        <!-- Botão para fechar o modal, chamando a função 'hideJanelaCertificado' -->\r\n        <button @click=\"hideJanelaCertificado()\" type=\"button\" class=\"btn-cancelar\">\r\n          <!-- Ícone personalizado de fechar localizado na pasta assets -->\r\n          <img src=\"../assets/icons/icon-close.svg\" alt=\"Fechar\" class=\"icon-close\" />\r\n        </button>\r\n      </div>\r\n    \r\n      <!-- Contêiner principal do diálogo que permite rolagem -->\r\n      <div class=\"scrolable-dialog\">\r\n        <!-- Exibe informações de carregamento do certificado se 'showCarregarCert' for verdadeiro -->\r\n        <div v-if=\"showCarregarCert\" class=\"certificado-info\">\r\n          <!-- Texto centralizado que informa o usuário sobre o carregamento do certificado -->\r\n          <div class=\"text-center\">\r\n            Aguarde, carregando informações do certificado..\r\n          </div>\r\n        </div>\r\n        \r\n        <!-- Exibe o conteúdo do certificado caso 'showCarregarCert' seja falso -->\r\n        <div v-if=\"!showCarregarCert\" class=\"certificado-info\">\r\n          \r\n          <!-- Informação ao usuário sobre a instalação correta do certificado digital -->\r\n          <div class=\"info-modal\">\r\n            Certifique-se que o seu certificado digital está corretamente instalado no navegador.\r\n          </div>\r\n        \r\n          <!-- Contêiner do botão de carregar o certificado -->\r\n          <div class=\"botoes-avancar-voltar\">\r\n            <Button label=\"Voltar\" type=\"submit\"  class=\"btnVoltar\" id=\"btnVoltar\" @click=\"hideJanelaCertificado()\"  icon=\"pi pi-angle-left\" :disabled=\"loading\" />\r\n            <!-- Botão que inicia a ação de carregar o certificado digital, desativado quando 'loading' está verdadeiro -->\r\n            <Button @click=\"carregarCertificado()\" label=\"Carregue o Certificado\" class=\"btnAvançar\"  :disabled=\"loading\" />\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </Dialog>\r\n\r\n    <!-- Modal para validação do reCAPTCHA, com visibilidade controlada pela variável 'showCaptcha' -->\r\n    <Dialog header=\"Necessária Validação do reCAPTCHA\" :visible.sync=\"showCaptcha\" :modal=\"true\" :closable=\"false\"\r\n      :style=\"{ width: '25vw' }\">\r\n\r\n      <!-- Contêiner principal do modal com rolagem -->\r\n      <div class=\"container scrolable-dialog\">\r\n\r\n        <!-- Linha para posicionar o reCAPTCHA -->\r\n        <div class=\"row\">\r\n\r\n          <!-- Centraliza o componente VueRecaptcha horizontalmente e verticalmente -->\r\n          <div class=\"d-flex justify-content align-items-center\" style=\"margin: 0 auto;\">\r\n\r\n            <!-- Componente VueRecaptcha que dispara o método 'handleSuccess' ao ser verificado -->\r\n            <VueRecaptcha @verify=\"handleSuccess\" :sitekey=\"siteKey\" :load-recaptcha-script=\"true\"></VueRecaptcha>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </Dialog>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\n// Importações necessárias\r\nimport Carousel from '../components/global/Carousel.vue';             // Importa o componente de carrossel global\r\nimport AvisosCarousel from '../components/global/AvisosCarousel.vue'; // Importação correta\r\nimport Login from \"../models/acesso/Login\";                           // Importa o modelo de login\r\nimport LoginService from \"../services/acesso/login.service\";          // Importa o serviço de login\r\nimport Numero from \"../services/nfse/numeros\";                        // Importa o serviço de manipulação de números (relacionado à NFSe)\r\nimport DnsClienteService from \"../services/nfse/dns.cliente.service\"; // Importa o serviço de DNS para cliente relacionado a NFSe\r\nimport SimpleVueValidation from \"simple-vue-validator\";               // Importa a biblioteca de validação \"SimpleVueValidation\"\r\nconst Validator = SimpleVueValidation.Validator;                      // Define uma constante para o validador de formulários\r\n\r\nexport default {\r\n  name: \"login\",                                                      // Nome do componente atual\r\n  components: {                                                       // Componentes utilizados dentro deste componente\r\n    Carousel,                                                         // Componente de carrossel global\r\n    AvisosCarousel,\r\n  },\r\n\r\n  data() {\r\n    return {\r\n      // Dados do componente\r\n      anoAtual: null,               // Ano atual (pode ser atualizado dinamicamente)\r\n      erro: null,                   // Armazenamento de erros\r\n      loading: false,               // Indicador de carregamento (exemplo: durante requisições) \r\n      currentUser: null,            // Informações do usuário atual logado\r\n      expired: null,                // Informação sobre a expiração da sessão ou dados\r\n      showEsqueceu: false,          // Controle de visibilidade do modal \"Esqueceu a Senha\"\r\n      login: new Login(),           // Instância do modelo de login\r\n      loginNovaSenha: null,         // Instância do modelo de login\r\n      manutencao: false,            // Flag para indicar se o sistema está em manutenção\r\n      numbers: null,                // Armazena números relacionados à NFSe\r\n      idCliente: null,              // ID do cliente\r\n      showCertificado: false,       // Controle de visibilidade do modal de certificado digital\r\n      showCarregarCert: false,      // Controle de visibilidade durante o carregamento do certificado\r\n      notaTomador: false,           // Controle de visibilidade de notas para tomador\r\n      showDenunciaFiscal: false,    // Controle de visibilidade do modal de denúncia fiscal\r\n      loginMenssagemSimoes: null,   // Mensagem personalizada relacionada ao login de Simões\r\n      idSimoes: null,               // ID relacionado ao cliente de Simões\r\n      selectedTipoPessoa: null,     // Tipo de pessoa selecionada (Física, Jurídica ou Entidade)\r\n      tiposPessoa: [                // Opções de tipos de pessoa para seleção\r\n        { name: \"Pessoa Física\", key: \"F\" },\r\n        { name: \"Pessoa Jurídica\", key: \"J\" },\r\n        { name: \"Entidade\", key: \"E\" }\r\n      ],\r\n      apresentacao: false,            // Controle de exibição da apresentação\r\n      linkRequestCert: '',            // Link para requisição de certificado\r\n      siteKey: '6LfvEi4gAAAAAMbyRV0UO2i8ovyoQkNs0suhoMc5',  // Chave do reCAPTCHA utilizada na validação\r\n      recaptchaVerified: false,       // Status de verificação do reCAPTCHA\r\n      showCaptcha: false,             // Controle de visibilidade do modal do reCAPTCHA \r\n      exibirLogo: false,              // Controle para exibição do logo no login \r\n      logoLogin: \"\",                  // Caminho para o logo utilizado no login  \r\n      carouselButtons: [],\r\n      AvisosCarousel: [],\r\n      showLinkRps: false,             //Controle Exibição Dialog com Link do RPS\r\n      msgContatoLogin: null,\r\n      showDadosCliente: false\r\n    };\r\n  },\r\n\r\n  // Hook \"created\" (executado quando o componente é criado)\r\n  created() {\r\n  // Inicializa os dados da apresentação (caso exista a propriedade '$apresentacao', utiliza-a; caso contrário, define como 'false')\r\n  this.apresentacao = (this.$apresentacao ? this.$apresentacao : false);\r\n\r\n  // Define o tipo de pessoa selecionado como o primeiro item da lista de tipos de pessoa\r\n  this.selectedTipoPessoa = this.tiposPessoa[0];\r\n\r\n  /** Valida se o Captcha deve ser exibido */\r\n  // this.viewCaptcha(); // (Comentado, pode ser ativado se necessário para validar a exibição do Captcha)\r\n  },\r\n\r\n\r\n  // Definição dos validadores para os campos de login e senha\r\n  validators: {\r\n\r\n    // Validador para o campo \"login.nomeAcesso\"\r\n    \"login.nomeAcesso\": function (value) {\r\n      return Validator.value(value)\r\n        // Verifica se o campo \"Login\" está preenchido\r\n        .required(\"Campo Login Obrigatório\")\r\n        // Verifica se o tamanho do login não ultrapassa 200 caracteres\r\n        .maxLength(200, \"Login deve ser menor ou igual a 200\");\r\n    },\r\n\r\n    // Validador para o campo \"login.senhaAcesso\"\r\n    \"login.senhaAcesso\": function (value) {\r\n      return Validator.value(value)\r\n        // Verifica se o campo \"Senha\" está preenchido\r\n        .required(\"Campo Senha Obrigatório\")\r\n        // Verifica se o tamanho da senha não ultrapassa 50 caracteres\r\n        .maxLength(50, \"Senha deve ser menor ou igual a 50\");\r\n    },\r\n  },\r\n\r\n  // Hook \"mounted\" (executado quando o componente é montado)\r\n  mounted() {\r\n    this.currentIndex = 0;                                                           // Garantir que o carrossel comece do início\r\n    var d = new Date();                                                              // Configuração inicial\r\n    this.anoAtual = d.getFullYear();                                                 // Armazena o ano atual\r\n    setTimeout(async () => {                                                         // Aguarda 250 milissegundos antes de executar a lógica a seguir\r\n      if (this.$route.query.manutencao && this.$route.query.manutencao == \"N\") {     // Verifica se a query \"manutencao\" está presente e se é igual a \"N\"\r\n        this.manutencao = false;                                                     // Se sim, define 'manutencao' como false\r\n      } else {\r\n        document.getElementById(\"usuario\").focus();                                  // Caso contrário, foca no campo de usuário\r\n      }\r\n\r\n      let host = window.location.hostname;                                           // Obtém o hostname da URL atual\r\n      this.dnsCliente = await DnsClienteService.get(host);   \r\n      console.log(\"DNS CLIENTE: \",this.dnsCliente.data);                        // Busca os dados do cliente DNS usando o hostname\r\n      this.expired = this.$route.query.expired;                                      // Armazena se a sessão expirou com base na query\r\n\r\n      // Verifica se os dados do cliente DNS estão disponíveis\r\n      if (\r\n        this.dnsCliente &&\r\n        this.dnsCliente.data &&\r\n        this.dnsCliente.data.idCliente\r\n      ) {\r\n        this.idCliente = this.dnsCliente.data.idCliente;     \r\n        this.showDenunciaFiscal = this.apresentacao;                                 // Define se a denúncia fiscal deve ser exibida\r\n\r\n        if (\"19533831040781681800D2584C905F8A\" === this.idCliente) {                 // Verificações específicas para certos IDs de cliente\r\n          this.notaTomador = true;                                                   // Exibe nota do tomador para um cliente específico\r\n        } else if (\"ce744068-cc92-479f-bf9d-d88cf4238517\" === this.idCliente) {      // Exibe denúncia fiscal para outro cliente específico\r\n          this.showDenunciaFiscal = true;\r\n        }\r\n\r\n        this.idSimoes = this.dnsCliente.data.idCliente;                              // Armazena o ID do cliente de Simões\r\n\r\n        /*\r\n        // Código comentado que altera a mensagem de login com base no ID do cliente\r\n        if(this.dnsCliente.data.idCliente === '19533831040781681800D2584C905F8A'){\r\n          this.loginMenssagemSimoes = \"CPF/CNPJ\";\r\n        }else{\r\n          this.loginMenssagemSimoes = \"Usuário\";\r\n        }\r\n        */\r\n        Numero.listarNumeros(this.dnsCliente.data.idCliente).then((res) => {        // Lista números associados ao ID do cliente \r\n          this.numbers = res.data;                                                 // Armazena os números retornados\r\n          this.carouselButtons = this.carregarLinks();\r\n          this.msgContatoLogin = this.numbers.msgContatoLogin;\r\n          if (res.data.logoLogin) {                                                 // Se a resposta contém logo, configura para exibição  \r\n          this.exibirLogo = true; \r\n          this.logoLogin = \"data:image/jpg;base64,\".concat(                         // Se a resposta contém logo, configura para exibição  \r\n            this.logoLogin.concat(res.data.logoLogin) \r\n          );  \r\n        } \r\n          console.log(res.data);                                                    // Log dos dados retornados\r\n          this.numbers.msgContatoLogin ? this.showDadosCliente = true : this.showDadosCliente = false;\r\n        });\r\n      }\r\n    }, 250);                                                                        // Tempo de espera antes da execução da lógica\r\n\r\n    \r\n    \r\n    \r\n    // this.showDadosContato();\r\n  },\r\n\r\n  // Hook \"beforeDestroy\" (executado antes do componente ser destruído)\r\n  beforeDestroy() {\r\n    window.removeEventListener('resize', this.handleResize);                        // Remove o listener do evento de redimensionamento\r\n  },\r\n\r\n  methods: {\r\n    handleSuccess(response) {                                                       // Método para lidar com o sucesso da verificação do reCAPTCHA\r\n      console.log('reCaptcha verificado: ', response);                              // Loga a resposta da verificação do reCAPTCHA\r\n\r\n      setTimeout(() => {                                                            // Aguarda 800 milissegundos antes de executar a lógica a seguir\r\n        this.recaptchaVerified = true;                                              // Marca o reCAPTCHA como verificado\r\n        this.loginUser();                                                           // Chama o método para realizar o login do usuário\r\n        this.recaptchaVerified = false;                                             // Reseta a verificação do reCAPTCHA após o login\r\n        this.showCaptcha = false;                                                   // Esconde o modal do Captcha\r\n      }, 800);\r\n    },\r\n\r\n    showJanelaCertificado() {                                                       // Método para mostrar janela de certificado\r\n      this.showCertificado = true;                                                  // Define a variável que controla a exibição da janela de certificado como verdadeira                                             \r\n      this.showCarregarCert = false;                                                // Esconde o indicador de carregamento do certificado\r\n    },\r\n\r\n    hideJanelaCertificado() {                                                       // Método para esconder a janela de certificado\r\n      this.showCertificado = false;                                                 // Define a variável que controla a exibição da janela de certificado como falsa                                              \r\n      this.showCarregarCert = false;                                                // Esconde o indicador de carregamento do certificado\r\n    },\r\n\r\n    carregarCertificado() {                                                                             // Método para carregar certificado\r\n      this.showCarregarCert = true;                                                                     // Exibe o indicador de carregamento do certificado\r\n      let currentUrl = window.location;                                                                 // Obtém a URL atual da janela\r\n      let api_url = (this.$configAppData ? this.$configAppData.baseUrl : '');                           // Define a URL da API base, se disponível\r\n      this.linkRequestCert = 'https://certificado.cloud.el.com.br/gpilogin/base64NF';                   // Define o link para requisitar o certificado\r\n      this.linkRequestCert = this.linkRequestCert + '?urlRetorno=' + api_url + '/requestCertificado';   // Adiciona a URL de retorno à solicitação do certificado\r\n      this.linkRequestCert = this.linkRequestCert + \"&urlFront=\" + currentUrl;                          // Adiciona a URL frontal à solicitação do certificado\r\n      window.open(this.linkRequestCert, \"_self\", \"\");                                                   // Abre o link de solicitação do certificado na mesma janela\r\n      return false;                                                                                     // Retorna falso para evitar qualquer outro comportamento padrão\r\n    },\r\n\r\n    removerErro() {                                                                                     // Método para remover erro\r\n      this.erro = null;                                                                                 // Limpa a variável de erro, definindo-a como nula\r\n\r\n    },\r\n\r\n    handleLogin() {                                                                                     // Método para lidar com o login\r\n      /*desabilitado (this.apresentacao) {                                                                          // Verifica se está em modo de apresentação\r\n        this.$validate().then((success) => {                                                            // Valida os campos do formulário\r\n          if (success) {                                                                                // Se a validação for bem-sucedida\r\n            this.processando(true);                                                                     // Indica que o processamento está em andamento\r\n            if (!this.recaptchaVerified) {                                                              // Verifica se o reCAPTCHA foi verificado\r\n              this.showCaptcha = true;                                                                  // Mostra o modal do reCAPTCHA se não estiver verificado\r\n            } else {\r\n              this.loginUser();                                                                         // Realiza o login do usuário se o reCAPTCHA estiver verificado\r\n            }\r\n\r\n            this.processando(false);                                                                    // Indica que o processamento foi concluído\r\n          }\r\n        });\r\n      } else {*/\r\n        this.$validate().then((success) => {                                                             // Se não estiver em modo de apresentação, valida os campos do formulário\r\n          if (success) {                                                                                 // Se a validação for bem-sucedida\r\n            this.processando(true);                                                                      // Indica que o processamento está em andamento\r\n            this.loginUser();                                                                            // Realiza o login do usuário\r\n            this.processando(false);                                                                     // Indica que o processamento foi concluído\r\n          }\r\n        });\r\n      //}\r\n    },\r\n\r\n    loginUser() {                                                                                        // Método para realizar o login do usuário\r\n      /*desabilitado (if (this.apresentacao) {                                                                           // Verifica se está em modo de apresentação\r\n        this.showCaptcha = true;                                                                         // Exibe o modal do reCAPTCHA\r\n        if (this.recaptchaVerified) {                                                                    // Verifica se o reCAPTCHA foi verificado\r\n          LoginService.login(this.login, this.idCliente).then(                                           // Chama o serviço de login, passando as informações de login e o ID do cliente\r\n            (data) => {\r\n              //You can get warning (error: 'data' is defined but never used;), if you don't use parameters;\r\n              console.log(data); // Exibe os dados retornados (para fins de depuração)\r\n              if (LoginService.currentUserValue && LoginService.currentUserValue.homePage) {             // Verifica se o usuário atual possui uma página inicial definid\r\n                const homePage = LoginService.currentUserValue.homePage;             \r\n                this.$router.push(homePage);                                                             // Redireciona para a página inicial do usuário\r\n              } else {             \r\n                this.erro = \"Login ou Senha inválidos!\";                                                 // Define uma mensagem de erro caso o login ou a senha estejam inválidos\r\n              }\r\n            },\r\n            (error) => {                                                                                 // Exibe o erro retornado (para fins de depuração)\r\n              console.log(error);\r\n              this.erro = \"Login ou Senha inválidos!\";                                                   // Define uma mensagem de erro caso ocorra um erro durante o login\r\n            }\r\n          );\r\n        }\r\n      } else {*/\r\n        LoginService.login(this.login, this.idCliente).then(                                             // Chama o serviço de login, passando as informações de login e o ID do cliente\r\n          (data) => {\r\n            //You can get warning (error: 'data' is defined but never used;), if you don't use parameters;\r\n            if (LoginService.currentUserValue && LoginService.currentUserValue.homePage) {               // Verifica se o usuário atual possui uma página inicial definida\r\n              console.log(data);                                                                         // Exibe os dados retornados (para fins de depuração)\r\n              const homePage = LoginService.currentUserValue.homePage;\r\n              localStorage.setItem('displayInformacao', null);\r\n              this.$router.push(homePage);                                                               // Redireciona para a página inicial do usuário\r\n            } else {\r\n              this.erro = \"Login ou Senha inválidos!\";                                                   // Define uma mensagem de erro caso o login ou a senha estejam inválidos\r\n            }\r\n          },\r\n          (error) => {                                                                                   // Exibe o erro retornado (para fins de depuração)\r\n            console.log(error);\r\n            this.erro = \"Login ou Senha inválidos!\";                                                     // Define uma mensagem de erro caso ocorra um erro durante o login\r\n          }\r\n        );\r\n      //}\r\n    },\r\n\r\n    \r\n    processando(show) {                                                                                  // Método para mostrar/esconder loading\r\n      if (show) {                                                              \r\n        this.loading = true;                                                                             // Ativa o estado de loading\r\n        this.$root.$emit(\"loading:show\");                                                                // Emite um evento para mostrar o loading globalmente\r\n      } else {                                                               \r\n        this.loading = false;                                                                            // Desativa o estado de loading\r\n        this.$root.$emit(\"loading:hide\");                                                                // Emite um evento para esconder o loading globalmente\r\n      }\r\n    },\r\n\r\n    esqueceuSenha() {                                                                                    // Métodos relacionados à recuperação de senha\r\n      this.limparDadosPessoa();                                                                          // Limpa os dados da pessoa antes de mostrar a tela de recuperação                 \r\n      this.showEsqueceu = true;                                                                          // Exibe a janela de recuperação de senha          \r\n    },       \r\n\r\n    hideNovaSenha() {                                                                                         \r\n      this.loading = false;                                                                              // Desativa o loading ao fechar a janela\r\n      this.showEsqueceu = false;                                                                         // Esconde a janela de recuperação de senha                                                                                     \r\n    }, \r\n\r\n    limparDadosPessoa() {                                                                                         \r\n      this.loginNovaSenha = null;                                                                        // Limpa o campo de nova senha                 \r\n    },      \r\n\r\n    requisitarNovaSenha() {                                                                     \r\n      if (!this.loginNovaSenha) {                                                                        // Verifica se o campo de nova senha está vazio\r\n        this.$root.$emit(\"alert:warn\", \"Informe um Login válido!\");                                      // Emite um alerta de aviso                                \r\n      } else {                                                                      \r\n        this.loading = true;                                                                             // Ativa o loading ao iniciar a requisição\r\n        LoginService.recuperarSenha(this.loginNovaSenha, this.idCliente).then(                           // Chama o serviço para recuperação de senha                                             \r\n          (response) => {                                                                                \r\n            console.log(response);                                                                       // Exibe a resposta no console (para fins de depuração)\r\n            this.$root.$emit(                                                                            // Emite um alerta de sucesso informando que o e-mail foi enviado\r\n              \"alert:success\",                                                                      \r\n              \"Foi enviado um e-mail para recuperação de Senha da sua conta!\"                                                                     \r\n            );                                                                      \r\n          },                                                                      \r\n          (error) => {                                                                                   \r\n            console.log(error);                                                                          // Exibe o erro no console (para fins de depuração)\r\n            this.loading = false;                                                                        // Desativa o loading em caso de erro\r\n            this.$root.$emit(\"alert:warn\", error.response.data);                                         // Emite um alerta de aviso com a mensagem de erro                             \r\n          }                                                                     \r\n        );                                                                      \r\n      }\r\n    },\r\n\r\n    formataValorReal(valor) {                             // Método para formatar valor em Real\r\n      if (typeof valor !== 'number' || isNaN(valor)) {    // Verifica se o valor é válido e é um número\r\n        return '';                                        // Retorna uma string vazia se o valor não for um número válido\r\n      }\r\n    \r\n      const formatter = new Intl.NumberFormat('pt-BR', {  // Formatando o valor para moeda brasileira (BRL)\r\n        style: 'currency',                                // Define o estilo como moeda\r\n        currency: 'BRL'                                   // Define a moeda como Real brasileiro\r\n      });                               \r\n    \r\n      return formatter.format(valor);                     // Retorna o valor formatado\r\n    },\r\n\r\n    // Métodos de ação para os botões\r\n    autenticar() {\r\n      this.$router.push(\"/autenticacao\");\r\n    },\r\n    retencao() {\r\n      this.$router.push(\"/reciboRetencao\");\r\n    },\r\n    credenciar() {\r\n      this.$router.push(\"/credenciamento\");\r\n    },\r\n    abrirLinkRps() {\r\n      this.showLinkRps = true;\r\n    },\r\n    contribuintes() {\r\n      this.$router.push(\"/contribuintes\");\r\n    },\r\n    consultarRps() {\r\n      this.$router.push(\"/consultaRps\");\r\n    },\r\n    denunciaFiscal() {\r\n      this.$router.push(\"/denunciaFiscal\");\r\n    },\r\n    dadosContato() {\r\n      this.openDialogMsgContato = true;\r\n    },\r\n    copiarLinkRps() {\r\n      navigator.clipboard.writeText(this.numbers.linkRps);\r\n    },\r\n\r\n    \r\n\r\n    carregarLinks(){\r\n      let retorno = [];\r\n      retorno.push(\r\n        {\r\n          text: \"Clique aqui para se Credenciar\",\r\n          icon: require(\"@/assets/icons/icon-credencial.svg\"),\r\n          alt: \"Ícone credencial\",\r\n          action: this.credenciar,\r\n          route: \"/credenciamento\"\r\n        }\r\n      );\r\n      retorno.push(\r\n        {\r\n          text: \"Clique aqui para autenticar Documento\",\r\n          icon: require(\"@/assets/icons/icon-doc.svg\"),\r\n          alt: \"Ícone autenticar documento\",\r\n          action: this.autenticar,  // Ação ao clicar no botão\r\n          route: \"/autenticacao\"  // Rota para onde o botão leva\r\n        }\r\n      );\r\n      retorno.push(\r\n        {\r\n          text: \"Clique aqui para Recibo de Retenção\",\r\n          icon: require(\"@/assets/icons/icon-recibo.svg\"),\r\n          alt: \"Ícone recibo de retenção\",\r\n          action: this.retencao,\r\n          route: \"/reciboRetencao\"\r\n        }\r\n      );\r\n      if(this.numbers && this.numbers.linkRps){\r\n        retorno.push(\r\n          {\r\n            text: \"Link Envio RPS\",\r\n            icon: require(\"@/assets/icons/icon-link.svg\"),\r\n            alt: \"Ícone link envio RPS\",\r\n            action: this.abrirLinkRps,\r\n            route: null\r\n          }\r\n        );\r\n      }\r\n      retorno.push(\r\n        {\r\n          text: \"Clique para consultar RPS convertido em NFS-e.\",\r\n          icon: require(\"@/assets/icons/icon-consultar.svg\"),\r\n          alt: \"Ícone consultar\",\r\n          action: this.consultarRps,\r\n          route: \"/consultaRps\"\r\n        }\r\n      );\r\n      if(!this.manutencao && this.numbers && this.numbers.linkTutoriais){\r\n        retorno.push(\r\n          {\r\n            text: \"Acesso aos tutoriais\",\r\n            icon: require(\"@/assets/icons/icon-consultar.svg\"),\r\n            alt: \"Ícone Tutoriais\",\r\n            // Abre o link dos tutoriais em nova aba\r\n            action: () => {\r\n              window.open(this.numbers.linkTutoriais, '_blank'); // Abre o link dos tutoriais em nova aba\r\n            },\r\n            route: null\r\n          }\r\n        );\r\n      }\r\n      if(this.apresentacao){\r\n        retorno.push(\r\n          {\r\n            text: \"Listagem de Contribuintes\",\r\n            icon: require(\"@/assets/icons/icon-listagem.svg\"),\r\n            alt: \"Ícone listagem\",\r\n            action: this.contribuintes,\r\n            route: \"/contribuintes\"\r\n          }\r\n        );\r\n      }\r\n      if(this.showDenunciaFiscal){\r\n        retorno.push(\r\n          {\r\n            text: \"Realize uma Denúncia relacionada à Prestação de Serviços.\",\r\n            icon: require(\"@/assets/icons/icon-denuncia.svg\"),\r\n            alt: \"Ícone denuncia\",\r\n            action: this.denunciaFiscal,\r\n            route: \"/denunciaFiscal\"\r\n          }\r\n        );\r\n      }\r\n      return retorno;\r\n    },\r\n\r\n    hideJanelaSenha() {                                  // Método para esconder a janela de senha\r\n      this.showEsqueceu = false;                        // Define a variável que controla a exibição da janela de senha como falsa                                              \r\n      this.loading = false;                             // Esconde o indicador de loading\r\n    },\r\n\r\n  },\r\n\r\n  computed: {\r\n    mensagemErro() {                                                                                                  // Propriedade computada para gerar mensagens de erro baseadas no código de erro recebido na rota\r\n      let codigoErro = this.$route.query.erro;                                                                        // Obtém o código de erro da query da rota atual\r\n      let msg = '';                                                                   \r\n      if (codigoErro) {                                                                                               // Verifica se um código de erro foi fornecido\r\n        switch (codigoErro) {                                                                                         // Define a mensagem de erro com base no código de erro\r\n          case '1':\r\n            msg = 'Autenticador Certisign não disponivel para realizar o Login.';                                     // Mensagem para erro 1\r\n            break;                                    \r\n          case '2':                                   \r\n            msg = 'Não foi possível validar o certificado digital.';                                                  // Mensagem para erro 2\r\n            break;                                    \r\n          case '3':                                   \r\n            msg = 'Chave de criptografia do certificado inválida.';                                                   // Mensagem para erro 3\r\n            break;                                    \r\n          case '4':                                   \r\n            msg = 'Período de validade do certificado digital expirado.';                                             // Mensagem para erro 4\r\n            break;                                    \r\n          case '5':                                   \r\n            msg = 'Não foi posssível obter a data de validade do certificado.';                                       // Mensagem para erro 5\r\n            break;\r\n          case '6':\r\n            msg = 'Usuário não encontrado com documento relacionado ao certificado.';                                 // Mensagem para erro 6\r\n            break;\r\n          case '7':\r\n            msg = 'Não foi possível validar o certificado digital.';                                                  // Mensagem para erro 7\r\n            break;\r\n        }\r\n        return msg;                                                                                                   // Retorna a mensagem de erro correspondente\r\n      } else {                                                                                                  \r\n        return null;                                                                                                  // Se não houver código de erro, retorna null\r\n      }\r\n    },\r\n  }\r\n};\r\n</script>\r\n\r\n<style src=\"@/assets/css/login.css\"></style>","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Login.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Login.vue?vue&type=template&id=6f754ba8&\"\nimport script from \"./Login.vue?vue&type=script&lang=js&\"\nexport * from \"./Login.vue?vue&type=script&lang=js&\"\nimport style0 from \"@/assets/css/login.css?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Carousel.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Carousel.vue?vue&type=style&index=0&lang=css&\"","module.exports = __webpack_public_path__ + \"img/icon-listagem.dac42423.svg\";","module.exports = __webpack_public_path__ + \"img/icon-padlock.8ef23df5.svg\";","module.exports = __webpack_public_path__ + \"img/icon-user.f229e48f.svg\";","module.exports = __webpack_public_path__ + \"img/icon-credencial.4661d94b.svg\";","import axios from 'axios';\r\n\r\nconst API_URL = process.env.VUE_APP_BASE_URL + '/api/dnspublic/';\r\n\r\nclass DnsClenteService {\r\n    constructor() {\r\n    }\r\n\r\n    get(dns) {\r\n        console.log('Here');\r\n        console.log(API_URL);\r\n        return axios.get(API_URL+dns, {headers: this.headers});\r\n    }\r\n\r\n}\r\n\r\nexport default new DnsClenteService();","module.exports = __webpack_public_path__ + \"img/icon-doc.2e183818.svg\";","module.exports = __webpack_public_path__ + \"img/icon-consultar.ecf3b136.svg\";"],"sourceRoot":""}