{"version":3,"file":"9537.1276a8189bfc53c06a60.js","mappings":"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","sources":["webpack://configuracao/./js/login.js","webpack://configuracao/./js/utilidades/candidaturaPendente.js","webpack://configuracao/./js/utilidades/geoData.js","webpack://configuracao/./js/utilidades/isNullOrEmpty.js","webpack://configuracao/./js/localizacao/loadBotao/loadBotao.js","webpack://configuracao/./js/utilidades/loadBotao.js","webpack://configuracao/./js/utilidades/loadFullPage.js","webpack://configuracao/./js/utilidades/obterDispositivo.js","webpack://configuracao/./js/utilidades/obterQueryString.js","webpack://configuracao/./js/utilidades/toastErroCarregar.js","webpack://configuracao/./js/utilidades/tooglePassword.js","webpack://configuracao/./js/utilidades/trackEventos.js","webpack://configuracao/./js/utilidades/usuarioLogado.js","webpack://configuracao/./node_modules/just-validate/dist/just-validate.es.js"],"sourcesContent":["import { addTrack } from './utilidades/trackEventos';\r\nimport { loadBotao } from './utilidades/loadBotao';\r\nimport { loadFullPage } from './utilidades/loadFullPage';\r\nimport { obterQueryString } from './utilidades/obterQueryString';\r\nimport { toastErroCarregar } from './utilidades/toastErroCarregar';\r\nimport { toastSucesso } from './utilidades/toastSucesso';\r\nimport { tooglePassword } from './utilidades/tooglePassword';\r\nimport { isNullOrEmpty } from './utilidades/isNullOrEmpty';\r\nimport { salvarCandidaturaPendente, obterCandidaturaPendente } from './utilidades/candidaturaPendente';\r\nimport { getGeoData } from './utilidades/geoData';\r\nimport { removeCacheUsuarioLogado } from './utilidades/usuarioLogado';\r\n\r\nimport JustValidate from 'just-validate';\r\nimport i18next from 'i18next';\r\n\r\nexport const login = async () => {\r\n\r\n let geoData;\r\n let provedorExterno;\r\n let provedorToken;\r\n let provedorUsuario;\r\n\r\n const _selecionaVariasPessoas = function (pessoaID) {\r\n let $formLogin = document.getElementById('form-login');\r\n let $modalVariasPessoas = document.getElementById('selecionar-varias-pessoas');\r\n\r\n $formLogin.querySelector('#pessoaID').value = pessoaID;\r\n $modalVariasPessoas.classList.add('d-none');\r\n _autenticar($formLogin);\r\n };\r\n\r\n const _montarModalVariasPessoas = function (arrayPessoas, functionSelecionar) {\r\n var html = [];\r\n\r\n var $modalVariasPessoas = document.getElementById('selecionar-varias-pessoas');\r\n\r\n html.push('<div class=\"list-group\">');\r\n for (var i = 0; i < arrayPessoas.length; i++) {\r\n\r\n html.push('<a href=\"javascript:void(0)\" class=\"list-group-item d-flex gap-2 align-items-center\" data-id=\"' + arrayPessoas[i].ID + '\">');\r\n\r\n html.push('<div class=\"container-foto-pessoa\" data-id=\"\"> ');\r\n if (!arrayPessoas[i].Foto || arrayPessoas[i].Foto.trim() === \"\") {\r\n html.push('<img class=\"img-rounded img-offline\" style=\"max-width: 32px; border-radius: 50%;\" src=\"https://storage.empregare.com/pessoas/sem-foto.png\" />');\r\n } else {\r\n html.push('<img class=\"img-rounded img-offline\" style=\"max-width: 32px; border-radius: 50%;\" src=\"https://storage.empregare.com/pessoas/' + arrayPessoas[i].Foto + '\" />');\r\n }\r\n html.push('</div>');\r\n\r\n html.push('<div class=\"container-cpf-idexterno\" data-id=\"\"> ');\r\n html.push('<div class=\"nome-pessoa\" data-id=\"' + arrayPessoas[i].ID + '\">' + arrayPessoas[i].Nome + '</div>');\r\n\r\n if (arrayPessoas[i].Cpf && arrayPessoas[i].Cpf.trim() !== \"\") {\r\n html.push('<small class=\"text-muted\" data-id=\"\">' + arrayPessoas[i].Cpf + '</small>');\r\n\r\n } else if (arrayPessoas[i].IDExterno && arrayPessoas[i].IDExterno.trim() !== \"\") {\r\n html.push('<small class=\"text-muted\" data-id=\"\">' + arrayPessoas[i].IDExterno + '</small>');\r\n\r\n }\r\n html.push('</div>');\r\n\r\n html.push('<div class=\"clearfix\"></div>');\r\n\r\n html.push('</a>');\r\n }\r\n html.push('</div>');\r\n $modalVariasPessoas.querySelector('.list-group').innerHTML = html.join('');\r\n\r\n Array.from($modalVariasPessoas.querySelectorAll('.list-group-item')).forEach((button) => {\r\n\r\n button.addEventListener('click', (e) => {\r\n let pessoaID = e.target.getAttribute('data-id');\r\n functionSelecionar(pessoaID);\r\n });\r\n });\r\n\r\n\r\n $modalVariasPessoas.classList.remove('d-none');\r\n };\r\n\r\n const _autenticar = async function (form) {\r\n\r\n const botaoAcessar = form.querySelector('#btn-login-acessar');\r\n loadBotao.mostrar(botaoAcessar);\r\n\r\n \r\n\r\n let returnUrl = obterQueryString().ReturnUrl;\r\n if (document.getElementById('vaga-detalhes-container')) {\r\n returnUrl = window.location.pathname + '?confirmar=1';\r\n } \r\n\r\n let timeZone = ''; \r\n\r\n try {\r\n if (geoData.existe) {\r\n timeZone = geoData.data.timezone;\r\n } else {\r\n timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n }\r\n } catch (e) { }\r\n\r\n let formData = new FormData(form);\r\n formData.append('ReturnUrl', returnUrl);\r\n formData.append('TimeZone', timeZone);\r\n\r\n if (provedorExterno != null && provedorUsuario != null && provedorToken != null) {\r\n formData.append('ProvedorExterno', provedorExterno);\r\n formData.append('Usuario', provedorUsuario);\r\n formData.append('TokenProvedorExterno', provedorToken);\r\n }\r\n\r\n const retorno = await fetch(`/${CULTURE_EMPREGARE}/Login/Autenticar`, {\r\n method: 'POST',\r\n body: formData,\r\n });\r\n\r\n if (retorno.status != 200) {\r\n addTrack('Login Request Erro', { statusCode: retorno.status });\r\n toastErroCarregar(i18next.t('LoginErro'));\r\n loadBotao.esconder(botaoAcessar);\r\n return;\r\n }\r\n\r\n const resultados = await retorno.json();\r\n\r\n if (!resultados.Sucesso) {\r\n\r\n loadBotao.esconder(botaoAcessar);\r\n form.querySelector('#pessoaID').value = '';\r\n\r\n if (resultados.Pessoas != null) {\r\n _montarModalVariasPessoas(resultados.Pessoas, _selecionaVariasPessoas);\r\n return false;\r\n }\r\n\r\n addTrack('Login Invalido', { mensagem: resultados.Mensagem, erro: resultados.Erro });\r\n toastErroCarregar(resultados.Mensagem);\r\n\r\n let rowErro = form.querySelector('.row-erro');\r\n rowErro.classList.remove('d-none');\r\n rowErro.innerHTML = `<h4 class=\"fs-5\">${resultados.Mensagem}</h4>${resultados.ErroDescricao}`;\r\n\r\n\r\n return;\r\n }\r\n \r\n addTrack('Login Valido');\r\n\r\n let redirect = resultados.Redirect;\r\n\r\n if (document.getElementById('vaga-detalhes-container')) {\r\n const vagaID = document.getElementById('VagaID').value;\r\n const vagaTitulo = document.getElementById('VagaTitulo').value;\r\n const vagaUrl = document.getElementById('VagaURL').value;\r\n await salvarCandidaturaPendente(vagaID, vagaTitulo, vagaUrl, true);\r\n } else {\r\n const candidaturaPendente = obterCandidaturaPendente();\r\n if (candidaturaPendente.vagaID != '0') {\r\n await salvarCandidaturaPendente(candidaturaPendente.vagaID, candidaturaPendente.titulo, candidaturaPendente.url, true);\r\n\r\n redirect = candidaturaPendente.url + '?confirmar=1';\r\n }\r\n }\r\n\r\n window.location.href = redirect;\r\n };\r\n\r\n\r\n\r\n const _configLogin = function (element, callbackModal) {\r\n\r\n geoData = getGeoData();\r\n removeCacheUsuarioLogado();\r\n\r\n let $formLogin = document.getElementById('form-login');\r\n let $formLoginEmpresa = document.getElementById('form-login-empresa');\r\n\r\n const validarLoginCandidato = new JustValidate($formLogin, {\r\n errorFieldCssClass: \"input-senha-nao-valido\",\r\n });\r\n const validarLoginEmpresa = new JustValidate($formLoginEmpresa, {\r\n errorFieldCssClass: \"input-senha-nao-valido\",\r\n });\r\n\r\n validarLoginCandidato\r\n .addField(\"#loginEmail\", [{ rule: \"required\", errorMessage: i18next.t('ValidacaoLoginCandidatoCpfOuEmail') },])\r\n .addField(\"#loginSenha\", [{ rule: \"required\", errorMessage: i18next.t('ValidacaoLoginSenha') }]);\r\n\r\n validarLoginEmpresa\r\n .addField(\"#loginEmailCompany\", [\r\n { rule: \"required\", errorMessage: i18next.t('ValidacaoLoginEmpresaEmailObrigatorio') },\r\n {\r\n rule: \"email\",\r\n errorMessage: i18next.t('ValidacaoLoginEmpresaEmailInvalido'),\r\n },\r\n ])\r\n .addField(\"#loginSenhaCompany\", [{ rule: \"required\", errorMessage: i18next.t('ValidacaoLoginSenha') }]);\r\n\r\n\r\n tooglePassword($formLogin.querySelector('#loginSenha'), $formLogin.querySelector('#senhaCandidatoIcon'));\r\n tooglePassword($formLoginEmpresa.querySelector('#loginSenhaCompany'), $formLoginEmpresa.querySelector('#senhaEmpresaIcon'));\r\n\r\n\r\n\r\n $formLogin.addEventListener(\"submit\", (e) => {\r\n if ($formLogin.querySelector('.row-erro')) {\r\n $formLogin.querySelector('.row-erro').classList.add('d-none');\r\n }\r\n validarLoginCandidato.revalidate().then((isValid) => {\r\n if (isValid) {\r\n _autenticar(e.target);\r\n }\r\n });\r\n e.preventDefault();\r\n });\r\n\r\n $formLoginEmpresa.addEventListener(\"submit\", (e) => {\r\n validarLoginEmpresa.revalidate().then((isValid) => {\r\n if (isValid) {\r\n e.target.submit();\r\n }\r\n });\r\n });\r\n element.querySelector('.cancelar-varias-pessoas').addEventListener(\"click\", (e) => {\r\n document.getElementById('selecionar-varias-pessoas').classList.add('d-none');\r\n document.getElementById('form-login').querySelector('#pessoaID').value = '';\r\n });\r\n \r\n const popoverTrigger = document.querySelector('#acionar-popover');\r\n\r\n if (popoverTrigger) {\r\n const popover = new bootstrap.Popover(popoverTrigger);\r\n\r\n popoverTrigger.addEventListener(\"click\", () => {\r\n popover.toggle();\r\n });\r\n }\r\n\r\n\r\n let qSCpf = obterQueryString().cpf;\r\n let qSVinculo = obterQueryString().vinculo;\r\n let qSTipoLogin = obterQueryString().tipo;\r\n if (!isNullOrEmpty(qSCpf)) {\r\n $formLogin.querySelector('#loginEmail').value = qSCpf;\r\n $formLogin.querySelector('#loginSenha').focus;\r\n }\r\n\r\n if (!isNullOrEmpty(qSVinculo)) {\r\n $formLogin.querySelector('#nao-tenho-cadastro').classList.add('d-none');\r\n $formLogin.querySelector('#vinculo').value = qSVinculo;\r\n } else {\r\n $formLogin.querySelector('#vinculo').value = '';\r\n }\r\n if (qSTipoLogin == 'empresa') {\r\n element.querySelector('#empresa-tab').click();\r\n }\r\n\r\n if (document.getElementById('vaga-detalhes-container')) {\r\n \r\n const vagaID = document.getElementById('VagaID').value;\r\n const vagaTitulo = document.getElementById('VagaTitulo').value;\r\n const vagaUrl = document.getElementById('VagaURL').value;\r\n salvarCandidaturaPendente(vagaID, vagaTitulo, vagaUrl, false);\r\n\r\n document.getElementById('tabs-login').classList.add('d-none');\r\n }\r\n\r\n //botao-google-login\r\n\r\n // Inicializa o Popover do Bootstrap\r\n const popoverTriggerList = [].slice.call(document.querySelectorAll('[data-toggle=\"popover\"]'));\r\n popoverTriggerList.map(function (popoverTriggerEl) {\r\n return new bootstrap.Popover(popoverTriggerEl);\r\n });\r\n\r\n\r\n\r\n callbackModal(element);\r\n\r\n loadFullPage.esconder();\r\n };\r\n\r\n function fetchHtml(callback) {\r\n fetch(`/${CULTURE_EMPREGARE}/Login/ModalLogin`, { cache: 'no-cache' })\r\n .then((response) => {\r\n return response.text();\r\n })\r\n .then((html) => {\r\n // console.log(html);\r\n callback(html);\r\n // document.body.innerHTML = html\r\n });\r\n }\r\n\r\n const abrirModal = async function (callbackModalAbriu = null) {\r\n\r\n //const { loadBotao, loadFullPage, obterQueryString, toastErroCarregar } = await import('./utilidades');\r\n //const { JustValidate } = await import('just-validate');\r\n\r\n loadFullPage.mostrar();\r\n\r\n function callbackModalLogin(htmlModal) {\r\n\r\n let modalLogin = document.getElementById('modalLogin');\r\n\r\n modalLogin.innerHTML = htmlModal;\r\n\r\n _configLogin(modalLogin, function (element) {\r\n const abreModal = new bootstrap.Modal(element, {});\r\n document.dispatchEvent(new CustomEvent('renderizarBotaoGoogleLogin'));\r\n abreModal.show();\r\n if (callbackModalAbriu != null) {\r\n callbackModalAbriu();\r\n }\r\n });\r\n }\r\n fetchHtml(callbackModalLogin);\r\n\r\n\r\n };\r\n const init = function () {\r\n\r\n \r\n const btnLogin = document.getElementsByClassName('btn-login');\r\n for (const btnLoginTopo of btnLogin) {\r\n btnLoginTopo.addEventListener(\"click\", (e) => {\r\n abrirModal();\r\n e.preventDefault();\r\n });\r\n }\r\n const $contentLogin = document.getElementById('content-login');\r\n\r\n if (document.contains($contentLogin)) {\r\n loadFullPage.mostrar();\r\n _configLogin($contentLogin, function () { });\r\n }\r\n\r\n document.addEventListener('googleLoginResposta', async (e) => {\r\n try {\r\n loadFullPage.mostrar();\r\n\r\n let returnUrl = obterQueryString().ReturnUrl;\r\n const dentroDaVaga = document.getElementById('vaga-detalhes-container');\r\n if (dentroDaVaga) {\r\n returnUrl = window.location.pathname + '?confirmar=1';\r\n }\r\n\r\n let timeZone = '';\r\n\r\n try {\r\n if (geoData.existe) {\r\n timeZone = geoData.data.timezone;\r\n } else {\r\n timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n }\r\n } catch (e) { }\r\n\r\n const { response } = e.detail;\r\n\r\n const request = await fetch(`/${CULTURE_EMPREGARE}/Login/GoogleLoginValidate`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n body: JSON.stringify({ credential: response.credential, returnUrl: returnUrl, timeZone: timeZone })\r\n });\r\n\r\n loadFullPage.esconder();\r\n\r\n if (!request.ok) {\r\n toastErroCarregar(i18next.t('LoginErro'));\r\n return;\r\n }\r\n\r\n const responseCallback = await request.json();\r\n\r\n if (responseCallback.Erro && responseCallback.Erro != '0' && responseCallback.ErroDescricao) {\r\n toastErroCarregar(i18next.t('LoginErro'));\r\n return;\r\n }\r\n\r\n if (dentroDaVaga) {\r\n const vagaID = document.getElementById('VagaID').value;\r\n const vagaTitulo = document.getElementById('VagaTitulo').value;\r\n const vagaUrl = document.getElementById('VagaURL').value;\r\n const vagaStatus = document.getElementById('VagaStatus').value;\r\n document.dispatchEvent(new CustomEvent('googleLoginLogadoDentroDaVaga', { detail: { vagaID, vagaTitulo, vagaUrl, vagaStatus } }));\r\n }\r\n\r\n if (responseCallback.Pessoas != null) {\r\n provedorUsuario = responseCallback.Usuario;\r\n provedorExterno = responseCallback.ProvedorExterno;\r\n provedorToken = response.credential;\r\n\r\n //Precisa verificar no caso no OneTap, se o modal de login est� aberto, se tiver fechado, abre-o\r\n let modalLogin = document.getElementById('modalLogin');\r\n if (modalLogin && !modalLogin.classList.contains('show')) {\r\n await abrirModal(() => {\r\n _montarModalVariasPessoas(responseCallback.Pessoas, _selecionaVariasPessoas);\r\n });\r\n }\r\n else {\r\n _montarModalVariasPessoas(responseCallback.Pessoas, _selecionaVariasPessoas);\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (responseCallback.Redirect) {\r\n window.location.href = responseCallback.Redirect;\r\n }\r\n }\r\n catch (error) {\r\n loadFullPage.esconder();\r\n console.log('Erro', error);\r\n toastErroCarregar(i18next.t('LoginErro'));\r\n return;\r\n }\r\n });\r\n\r\n };\r\n\r\n return init();\r\n}","const _chaveSessionStorageCandidatura = 'candidaturaPendente';\r\nexport async function salvarCandidaturaPendente(vagaID, titulo, url, possivelmenteLogado) {\r\n try {\r\n if (localStorage.getItem(_chaveSessionStorageCandidatura)) {\r\n localStorage.removeItem(_chaveSessionStorageCandidatura);\r\n }\r\n\r\n \r\n const urlSemHost = url.replace(/https?:\\/\\/[^\\/]+/, '');\r\n\r\n\r\n localStorage.setItem(_chaveSessionStorageCandidatura, JSON.stringify({ vagaID: vagaID, titulo: titulo, url: urlSemHost }));\r\n\r\n if (possivelmenteLogado) {\r\n let formData = new FormData();\r\n formData.append('vagaID', vagaID);\r\n await fetch(`/${CULTURE_EMPREGARE}/Vagas/SalvarCandidaturaPendente`, {\r\n method: 'POST',\r\n body: formData\r\n });\r\n } \r\n\r\n } catch (e) {\r\n\r\n }\r\n \r\n}\r\nexport function obterCandidaturaPendente() {\r\n try {\r\n const candidatura = localStorage.getItem(_chaveSessionStorageCandidatura);\r\n\r\n if (candidatura) {\r\n return JSON.parse(candidatura);\r\n }\r\n } catch (e) {\r\n\r\n }\r\n return { vagaID: \"0\" };\r\n}\r\nexport async function removerCandidaturaPendente(possivelmenteLogado) {\r\n try {\r\n if (localStorage.getItem(_chaveSessionStorageCandidatura)) {\r\n localStorage.removeItem(_chaveSessionStorageCandidatura); \r\n \r\n }\r\n } catch (e) {\r\n\r\n }\r\n \r\n}","const _chaveSessionStorageGeoData = 'localizacaoGeoData';\r\n\r\nexport function setGeoData(geoData) {\r\n if (localStorage.getItem(_chaveSessionStorageGeoData)) {\r\n return;\r\n }\r\n\r\n if (geoData != null && geoData != undefined && geoData.cidade != undefined) {\r\n //Decodifica string\r\n let geoDataCidadeDecode = decodeURIComponent(geoData.cidade);\r\n //Retira caracteres ainda estranhos\r\n geoDataCidadeDecode = geoDataCidadeDecode.replace(/£/g, '').replace(/Ã/g, 'ã').replace(/Â/g, 'â').replace(/Ê/g, 'ê').replace(/ÃŽ/g, 'î').replace(/Ô/g, 'ô').replace(/Û/g, 'û').replace(/Ã/g, 'á').replace(/É/g, 'é').replace(/Ã/g, 'Ã').replace(/Ó/g, 'ó').replace(/Ú/g, 'ú');\r\n geoData.cidade = geoDataCidadeDecode;\r\n localStorage.setItem(_chaveSessionStorageGeoData, JSON.stringify(geoData));\r\n }\r\n}\r\n\r\nexport function getGeoData() {\r\n if (!localStorage.getItem(_chaveSessionStorageGeoData)) {\r\n return { existe: false };\r\n }\r\n\r\n const geoDataParsed = JSON.parse(localStorage.getItem(_chaveSessionStorageGeoData));\r\n const nomeCidade = `${geoDataParsed.cidade}, ${geoDataParsed.regiaoCodigo}, ${geoDataParsed.pais}`;\r\n\r\n return { existe: true, data: geoDataParsed, cidadeCompleta: nomeCidade };\r\n}","export function isNullOrEmpty(value) {\r\n if (typeof value == 'undefined') {\r\n return true;\r\n }\r\n if (value == '' || value == null || value == 'null') {\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\n","import i18next from 'i18next';import resource_0 from \"./loadBotao.ptbr.json\" assert { type: 'JSON' };import resource_1 from \"./loadBotao.es.json\" assert { type: 'JSON' };import resource_2 from \"./loadBotao.en.json\" assert { type: 'JSON' };import { inicializarInternacionalizacao as inicializarGlobal } from '../global/global';const cultura = CULTURE_EMPREGARE.replace('-', '');export const inicializarInternacionalizacao = () => {inicializarGlobal();if (!i18next.isInitialized) {i18next.init({ lng:cultura, debug:true, defaultNS:'translation', resources: {}, fallbackLng: (code) => [ code.slice(0,2), 'ptbr' ]});}i18next.addResources('ptbr', 'translation', resource_0);i18next.addResources('es', 'translation', resource_1);i18next.addResources('en', 'translation', resource_2);}","import { inicializarInternacionalizacao } from '../localizacao/loadBotao/loadBotao'\r\nimport i18next from 'i18next';\r\n\r\nexport const loadBotao = {\r\n mostrar(elementoButton, mensagem = 'Aguarde...') {\r\n inicializarInternacionalizacao();\r\n if (mensagem == 'Aguarde...')\r\n mensagem = i18next.t('Aguarde')\r\n \r\n elementoButton.setAttribute('data-html-loader', elementoButton.innerHTML);\r\n elementoButton.setAttribute('disabled', 'disabled');\r\n elementoButton.innerHTML = '<span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span> ' + mensagem;\r\n },\r\n esconder(elementoButton) {\r\n const textoBotao = elementoButton.getAttribute('data-html-loader');\r\n elementoButton.removeAttribute('disabled');\r\n elementoButton.innerHTML = textoBotao;\r\n }\r\n};","export const loadFullPage = {\r\n mostrar(mensagem = 'Aguarde...') {\r\n let html = '';\r\n const _setLoader = function () {\r\n html = '<div id=\"loader-site\"><div id=\"loader-overlay\" tabindex=\"-1\" style=\"opacity: 1.03;\"></div><div id=\"loader-msg\" tabindex=\"-1\">';\r\n html += '<div class=\"modal\" style=\"display:block;z-index:2000\"><div class=\"modal-dialog modal-sm text-center\"><div class=\"modal-content\"><div class=\"modal-body\" style=\"padding-top: 30px;padding-bottom: 30px;\"><div class=\"spinner-border\" style=\"margin-bottom: -8px;margin-right: 10px;\" role=\"status\"><span class=\"visually-hidden\">Loading...</span></div> ' + mensagem + '</div></div></div></div>';\r\n\r\n document.body.insertAdjacentHTML(\"afterbegin\", html);\r\n\r\n };\r\n const init = function () {\r\n _setLoader();\r\n }\r\n return init();\r\n },\r\n esconder() {\r\n const _removeLoader = function () {\r\n let findLoader = document.getElementById('loader-site');\r\n if (document.contains(findLoader)) {\r\n findLoader.remove();\r\n }\r\n };\r\n const init = function () {\r\n _removeLoader();\r\n }\r\n\r\n return init();\r\n }\r\n};\r\n","export function obterDispositivo() {\r\n if (navigator.userAgent.match(/Tablet|iPad/i)) {\r\n return 'Tablet';\r\n } else if (navigator.userAgent.match(/Mobile|Windows Phone|Lumia|Android|webOS|iPhone|iPod|Blackberry|PlayBook|BB10|Opera Mini|\\bCrMo\\/|Opera Mobi/i)) {\r\n return 'Mobile';\r\n } else {\r\n return 'Desktop';\r\n }\r\n}","export function obterQueryString() {\r\n const params = new Proxy(new URLSearchParams(window.location.search), {\r\n get: (searchParams, prop) => {\r\n if (prop == 'getAll') {\r\n const array = []\r\n\r\n for (const iterator of searchParams.keys()) {\r\n array[iterator] = searchParams.getAll(iterator);\r\n }\r\n\r\n return array;\r\n }\r\n\r\n return searchParams.get(prop);\r\n }\r\n });\r\n\r\n return params;\r\n}\r\n","import { Notify } from \"notiflix/build/notiflix-notify-aio\";\r\n\r\n\r\nexport async function toastErroCarregar(mensagem) {\r\n Notify.failure(mensagem);\r\n}\r\n","// Toogle Password\r\nexport const tooglePassword = function (passwordInput, passwordIcon) {\r\n\tpasswordIcon.addEventListener(\"click\", function () {\r\n\t \t// toggle the type attribute\r\n\t \tconst type = passwordInput.getAttribute(\"type\") === \"password\" ? \"text\" : \"password\";\r\n\t \tpasswordInput.setAttribute(\"type\", type);\r\n \r\n\t \t// toggle the icon\r\n\t \tthis.classList.toggle(\"bi-eye\");\r\n\t});\r\n};\r\n","import { obterDispositivo } from './obterDispositivo';\r\n/**\r\n * Insere um novo track de evento.\r\n * @param {string} name - Nome do evento.\r\n * @param {object} data - Informa��o do evento.\r\n */\r\nexport function addTrack(name, data = {}) {\r\n if (!window.mixpanel) {\r\n return;\r\n }\r\n if (data == null || data == undefined) { data = {}; }\r\n\r\n const hotSiteEmpresaID = document.getElementById(\"hotSiteEmpresaID\");\r\n const hotSiteUrl = document.getElementById('hotSiteUrl');\r\n if (hotSiteEmpresaID != undefined && hotSiteUrl != undefined)\r\n {\r\n data.empresaID = hotSiteEmpresaID.value;\r\n data.hotsite = hotSiteUrl.value;\r\n }\r\n else {\r\n data.hotsite = 'empregare';\r\n }\r\n data.dispositivo = obterDispositivo();\r\n\r\n mixpanel.track(name, data);\r\n}","import { setGeoData } from \"./geoData\";\r\n\r\nconst _chaveSessionUsuarioLogado = 'usuarioLogado';\r\n\r\nexport async function carregarUsuarioLogado() {\r\n\r\n const _mudarLayoutLogado = function (resposta) {\r\n\r\n const headerLogado = document.getElementById('header-candidato-logado');\r\n const menuLogadoOculto = document.getElementById('menu-logado-oculto');\r\n const outrosMenusNaoLogado = document.querySelector('.menu-nao-logado');\r\n\r\n //mostrar stick footer\r\n document.getElementById('stick-footer-candidato-logado').classList.remove(\"d-none\");\r\n const footerEmpregare = document.getElementById('footer-empregare');\r\n if (document.contains(footerEmpregare)) {\r\n footerEmpregare.classList.add('mb-5', 'mb-md-0', 'pb-4', 'pb-md-0');\r\n }\r\n\r\n if (menuLogadoOculto !== null) {\r\n //mostrar menu logado\r\n document.getElementById('menu-logado-oculto').classList.remove(\"d-none\");\r\n }\r\n\r\n if (outrosMenusNaoLogado !== null) {\r\n //esconder outro menu\r\n document.querySelector('.menu-nao-logado').classList.add('d-none');\r\n }\r\n\r\n // Mudancas para caso logar em hotsite\r\n const hotsite = document.querySelector(\"#layout-hotsite\");\r\n\r\n if (hotsite) {\r\n let eventoLoginHostite = new CustomEvent(\"LoginHotsite\");\r\n dispatchEvent(eventoLoginHostite);\r\n }\r\n\r\n const fotoCandidato = headerLogado.querySelectorAll(\".img-perfil\");\r\n fotoCandidato.forEach((item) => {\r\n item.src = resposta.foto;\r\n });\r\n\r\n const nomeCandidato = headerLogado.querySelectorAll(\".header-nome-candidato\");\r\n nomeCandidato.forEach((item) => {\r\n item.innerHTML = resposta.nome;\r\n });\r\n\r\n const numeroMensagens = document.querySelectorAll('.menu-mensagens-numero');\r\n numeroMensagens.forEach((item) => { \r\n if (resposta.mensagens > 0) {\r\n item.innerHTML = resposta.mensagens;\r\n item.classList.remove('d-none');\r\n }\r\n \r\n });\r\n\r\n const numeroNotificacoes = document.querySelectorAll('.menu-noficacoes-numero');\r\n numeroNotificacoes.forEach((item) => {\r\n if (resposta.notificacoes > 0) {\r\n item.innerHTML = resposta.notificacoes;\r\n item.classList.remove('d-none');\r\n }\r\n });\r\n }\r\n\r\n const _fetchDados = async function () {\r\n await fetch(`/${CULTURE_EMPREGARE}/Login/GetUsuarioLogado`)\r\n .then(response => response.json())\r\n .then(async resposta => {\r\n sessionStorage.setItem(_chaveSessionUsuarioLogado, JSON.stringify(resposta));\r\n\r\n setGeoData(resposta.geoData);\r\n\r\n if (!resposta.logado) {\r\n const { googleLogin } = await import('../componentes/googleLogin');\r\n await googleLogin.init();\r\n document.dispatchEvent(new CustomEvent('solicitarGoogleLoginOneTap'));\r\n return;\r\n }\r\n _mudarLayoutLogado(resposta); \r\n });\r\n };\r\n\r\n\r\n const sessionLogado = sessionStorage.getItem(_chaveSessionUsuarioLogado);\r\n\r\n if (!sessionLogado) {\r\n await _fetchDados();\r\n return;\r\n }\r\n\r\n const logadoJson = JSON.parse(sessionLogado);\r\n\r\n if (!logadoJson.logado) {\r\n const { googleLogin } = await import('../componentes/googleLogin');\r\n await googleLogin.init();\r\n document.dispatchEvent(new CustomEvent('solicitarGoogleLoginOneTap'));\r\n return;\r\n }\r\n _mudarLayoutLogado(logadoJson);\r\n \r\n}\r\n\r\nexport function getUsuarioLogado() {\r\n const sessionLogado = sessionStorage.getItem(_chaveSessionUsuarioLogado);\r\n\r\n if (!sessionLogado) {\r\n return null;\r\n }\r\n\r\n return JSON.parse(sessionLogado);\r\n}\r\n\r\nexport function removeCacheUsuarioLogado() {\r\n if (sessionStorage.getItem(_chaveSessionUsuarioLogado)) {\r\n sessionStorage.removeItem(_chaveSessionUsuarioLogado);\r\n }\r\n}","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nconst EMAIL_REGEXP = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\nconst NUMBER_REGEXP = /^[0-9]+$/;\nconst PASSWORD_REGEXP = /^(?=.*[A-Za-z])(?=.*\\d).{8,}$/;\nconst STRONG_PASSWORD_REGEXP = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?&])[A-Za-z\\d@$!%*?&]{8,}$/;\nconst isEmpty = (value) => {\n let newVal = value;\n if (typeof value === \"string\") {\n newVal = value.trim();\n }\n return !newVal;\n};\nconst isEmail = (value) => {\n return EMAIL_REGEXP.test(value);\n};\nconst isLengthMoreThanMax = (value, len) => {\n return value.length > len;\n};\nconst isLengthLessThanMin = (value, len) => {\n return value.length < len;\n};\nconst isNumber = (value) => {\n return NUMBER_REGEXP.test(value);\n};\nconst isPassword = (value) => {\n return PASSWORD_REGEXP.test(value);\n};\nconst isStrongPassword = (value) => {\n return STRONG_PASSWORD_REGEXP.test(value);\n};\nconst isNumberMoreThanMax = (value, len) => {\n return value > len;\n};\nconst isNumberLessThanMin = (value, len) => {\n return value < len;\n};\nvar Rules = /* @__PURE__ */ ((Rules2) => {\n Rules2[\"Required\"] = \"required\";\n Rules2[\"Email\"] = \"email\";\n Rules2[\"MinLength\"] = \"minLength\";\n Rules2[\"MaxLength\"] = \"maxLength\";\n Rules2[\"Password\"] = \"password\";\n Rules2[\"Number\"] = \"number\";\n Rules2[\"MaxNumber\"] = \"maxNumber\";\n Rules2[\"MinNumber\"] = \"minNumber\";\n Rules2[\"StrongPassword\"] = \"strongPassword\";\n Rules2[\"CustomRegexp\"] = \"customRegexp\";\n Rules2[\"MinFilesCount\"] = \"minFilesCount\";\n Rules2[\"MaxFilesCount\"] = \"maxFilesCount\";\n Rules2[\"Files\"] = \"files\";\n return Rules2;\n})(Rules || {});\nvar GroupRules = /* @__PURE__ */ ((GroupRules2) => {\n GroupRules2[\"Required\"] = \"required\";\n return GroupRules2;\n})(GroupRules || {});\nvar CustomStyleTagIds = /* @__PURE__ */ ((CustomStyleTagIds2) => {\n CustomStyleTagIds2[\"Label\"] = \"label\";\n CustomStyleTagIds2[\"LabelArrow\"] = \"labelArrow\";\n return CustomStyleTagIds2;\n})(CustomStyleTagIds || {});\nconst defaultDictionary = [\n {\n key: Rules.Required,\n dict: {\n en: \"The field is required\"\n }\n },\n {\n key: Rules.Email,\n dict: {\n en: \"Email has invalid format\"\n }\n },\n {\n key: Rules.MaxLength,\n dict: {\n en: \"The field must contain a maximum of :value characters\"\n }\n },\n {\n key: Rules.MinLength,\n dict: {\n en: \"The field must contain a minimum of :value characters\"\n }\n },\n {\n key: Rules.Password,\n dict: {\n en: \"Password must contain minimum eight characters, at least one letter and one number\"\n }\n },\n {\n key: Rules.StrongPassword,\n dict: {\n en: \"Password should contain minimum eight characters, at least one uppercase letter, one lowercase letter, one number and one special character\"\n }\n },\n {\n key: Rules.Number,\n dict: {\n en: \"Value should be a number\"\n }\n },\n {\n key: Rules.MaxNumber,\n dict: {\n en: \"Number should be less or equal than :value\"\n }\n },\n {\n key: Rules.MinNumber,\n dict: {\n en: \"Number should be more or equal than :value\"\n }\n },\n {\n key: Rules.MinFilesCount,\n dict: {\n en: \"Files count should be more or equal than :value\"\n }\n },\n {\n key: Rules.MaxFilesCount,\n dict: {\n en: \"Files count should be less or equal than :value\"\n }\n },\n {\n key: Rules.Files,\n dict: {\n en: \"Uploaded files have one or several invalid properties (extension/size/type etc).\"\n }\n }\n];\nconst DEFAULT_ERROR_FIELD_MESSAGE = \"Value is incorrect\";\nconst isPromise = (val) => typeof val === \"object\" && val !== null && \"then\" in val && typeof val.then === \"function\";\nconst getNodeParents = (el) => {\n let elem = el;\n const els = [];\n while (elem) {\n els.unshift(elem);\n elem = elem.parentNode;\n }\n return els;\n};\nconst getClosestParent = (groups, parents) => {\n const reversedParents = [...parents].reverse();\n for (let i = 0, len = reversedParents.length; i < len; ++i) {\n const parent = reversedParents[i];\n for (const key in groups) {\n const group = groups[key];\n if (group.groupElem === parent) {\n return [key, group];\n }\n }\n }\n return null;\n};\nconst getClassList = (classList) => {\n if (Array.isArray(classList)) {\n return classList.filter((cls) => cls.length > 0);\n }\n if (typeof classList === \"string\" && classList.trim()) {\n return [...classList.split(\" \").filter((cls) => cls.length > 0)];\n }\n return [];\n};\nconst isElement = (element) => {\n return element instanceof Element || element instanceof HTMLDocument;\n};\nconst errorLabelCss = `.just-validate-error-label[data-tooltip=true]{position:fixed;padding:4px 8px;background:#423f3f;color:#fff;white-space:nowrap;z-index:10;border-radius:4px;transform:translateY(-5px)}.just-validate-error-label[data-tooltip=true]:before{content:'';width:0;height:0;border-left:solid 5px transparent;border-right:solid 5px transparent;border-bottom:solid 5px #423f3f;position:absolute;z-index:3;display:block;bottom:-5px;transform:rotate(180deg);left:calc(50% - 5px)}.just-validate-error-label[data-tooltip=true][data-direction=left]{transform:translateX(-5px)}.just-validate-error-label[data-tooltip=true][data-direction=left]:before{right:-7px;bottom:auto;left:auto;top:calc(50% - 2px);transform:rotate(90deg)}.just-validate-error-label[data-tooltip=true][data-direction=right]{transform:translateX(5px)}.just-validate-error-label[data-tooltip=true][data-direction=right]:before{right:auto;bottom:auto;left:-7px;top:calc(50% - 2px);transform:rotate(-90deg)}.just-validate-error-label[data-tooltip=true][data-direction=bottom]{transform:translateY(5px)}.just-validate-error-label[data-tooltip=true][data-direction=bottom]:before{right:auto;bottom:auto;left:calc(50% - 5px);top:-5px;transform:rotate(0)}`;\nconst TOOLTIP_ARROW_HEIGHT = 5;\nconst defaultGlobalConfig = {\n errorFieldStyle: {\n color: \"#b81111\",\n border: \"1px solid #B81111\"\n },\n errorFieldCssClass: \"just-validate-error-field\",\n successFieldCssClass: \"just-validate-success-field\",\n errorLabelStyle: {\n color: \"#b81111\"\n },\n errorLabelCssClass: \"just-validate-error-label\",\n successLabelCssClass: \"just-validate-success-label\",\n focusInvalidField: true,\n lockForm: true,\n testingMode: false,\n validateBeforeSubmitting: false\n};\nclass JustValidate {\n constructor(form, globalConfig, dictLocale) {\n __publicField(this, \"form\", null);\n __publicField(this, \"fields\", {});\n __publicField(this, \"groupFields\", {});\n __publicField(this, \"errors\", {});\n __publicField(this, \"isValid\", false);\n __publicField(this, \"isSubmitted\", false);\n __publicField(this, \"globalConfig\", defaultGlobalConfig);\n __publicField(this, \"errorLabels\", {});\n __publicField(this, \"successLabels\", {});\n __publicField(this, \"eventListeners\", []);\n __publicField(this, \"dictLocale\", defaultDictionary);\n __publicField(this, \"currentLocale\", \"en\");\n __publicField(this, \"customStyleTags\", {});\n __publicField(this, \"onSuccessCallback\");\n __publicField(this, \"onFailCallback\");\n __publicField(this, \"tooltips\", []);\n __publicField(this, \"lastScrollPosition\");\n __publicField(this, \"isScrollTick\");\n __publicField(this, \"fieldIds\", /* @__PURE__ */ new Map());\n __publicField(this, \"getKeyByFieldSelector\", (field) => {\n return this.fieldIds.get(field);\n });\n __publicField(this, \"getFieldSelectorByKey\", (key) => {\n for (const [fieldSelector, k] of this.fieldIds) {\n if (key === k) {\n return fieldSelector;\n }\n }\n return void 0;\n });\n __publicField(this, \"setKeyByFieldSelector\", (field) => {\n if (this.fieldIds.has(field)) {\n return this.fieldIds.get(field);\n }\n const key = String(this.fieldIds.size + 1);\n this.fieldIds.set(field, key);\n return key;\n });\n __publicField(this, \"refreshAllTooltips\", () => {\n this.tooltips.forEach((item) => {\n item.refresh();\n });\n });\n __publicField(this, \"handleDocumentScroll\", () => {\n this.lastScrollPosition = window.scrollY;\n if (!this.isScrollTick) {\n window.requestAnimationFrame(() => {\n this.refreshAllTooltips();\n this.isScrollTick = false;\n });\n this.isScrollTick = true;\n }\n });\n __publicField(this, \"formSubmitHandler\", (ev) => {\n ev.preventDefault();\n this.isSubmitted = true;\n this.validateHandler(ev);\n });\n __publicField(this, \"handleFieldChange\", (target) => {\n let foundKey;\n for (const key in this.fields) {\n const field = this.fields[key];\n if (field.elem === target) {\n foundKey = key;\n break;\n }\n }\n if (!foundKey) {\n return;\n }\n this.validateField(foundKey, true);\n });\n __publicField(this, \"handleGroupChange\", (target) => {\n let currentGroup;\n let foundKey;\n for (const key in this.groupFields) {\n const group = this.groupFields[key];\n if (group.elems.find((elem) => elem === target)) {\n currentGroup = group;\n foundKey = key;\n break;\n }\n }\n if (!currentGroup || !foundKey) {\n return;\n }\n this.validateGroup(foundKey, currentGroup);\n });\n __publicField(this, \"handlerChange\", (ev) => {\n if (!ev.target) {\n return;\n }\n this.handleFieldChange(ev.target);\n this.handleGroupChange(ev.target);\n this.renderErrors();\n });\n this.initialize(form, globalConfig, dictLocale);\n }\n initialize(form, globalConfig, dictLocale) {\n this.form = null;\n this.errors = {};\n this.isValid = false;\n this.isSubmitted = false;\n this.globalConfig = defaultGlobalConfig;\n this.errorLabels = {};\n this.successLabels = {};\n this.eventListeners = [];\n this.customStyleTags = {};\n this.tooltips = [];\n this.currentLocale = \"en\";\n if (typeof form === \"string\") {\n const elem = document.querySelector(form);\n if (!elem) {\n throw Error(\n `Form with ${form} selector not found! Please check the form selector`\n );\n }\n this.setForm(elem);\n } else if (form instanceof HTMLFormElement) {\n this.setForm(form);\n } else {\n throw Error(\n `Form selector is not valid. Please specify a string selector or a DOM element.`\n );\n }\n this.globalConfig = { ...defaultGlobalConfig, ...globalConfig };\n if (dictLocale) {\n this.dictLocale = [...dictLocale, ...defaultDictionary];\n }\n if (this.isTooltip()) {\n const styleTag = document.createElement(\"style\");\n styleTag.textContent = errorLabelCss;\n this.customStyleTags[CustomStyleTagIds.Label] = document.head.appendChild(styleTag);\n this.addListener(\"scroll\", document, this.handleDocumentScroll);\n }\n }\n getLocalisedString(rule, ruleValue, customMsg) {\n var _a;\n const search = customMsg != null ? customMsg : rule;\n let localisedStr = (_a = this.dictLocale.find((item) => item.key === search)) == null ? void 0 : _a.dict[this.currentLocale];\n if (!localisedStr) {\n if (customMsg) {\n localisedStr = customMsg;\n }\n }\n if (localisedStr && ruleValue !== void 0) {\n switch (rule) {\n case Rules.MaxLength:\n case Rules.MinLength:\n case Rules.MaxNumber:\n case Rules.MinNumber:\n case Rules.MinFilesCount:\n case Rules.MaxFilesCount:\n localisedStr = localisedStr.replace(\":value\", String(ruleValue));\n }\n }\n return localisedStr || customMsg || DEFAULT_ERROR_FIELD_MESSAGE;\n }\n getFieldErrorMessage(fieldRule, elem) {\n const msg = typeof fieldRule.errorMessage === \"function\" ? fieldRule.errorMessage(this.getElemValue(elem), this.fields) : fieldRule.errorMessage;\n return this.getLocalisedString(fieldRule.rule, fieldRule.value, msg);\n }\n getFieldSuccessMessage(successMessage, elem) {\n const msg = typeof successMessage === \"function\" ? successMessage(this.getElemValue(elem), this.fields) : successMessage;\n return this.getLocalisedString(void 0, void 0, msg);\n }\n getGroupErrorMessage(groupRule) {\n return this.getLocalisedString(\n groupRule.rule,\n void 0,\n groupRule.errorMessage\n );\n }\n getGroupSuccessMessage(groupRule) {\n if (!groupRule.successMessage) {\n return void 0;\n }\n return this.getLocalisedString(\n void 0,\n void 0,\n groupRule.successMessage\n );\n }\n setFieldInvalid(key, fieldRule) {\n this.fields[key].isValid = false;\n this.fields[key].errorMessage = this.getFieldErrorMessage(\n fieldRule,\n this.fields[key].elem\n );\n }\n setFieldValid(key, successMessage) {\n this.fields[key].isValid = true;\n if (successMessage !== void 0) {\n this.fields[key].successMessage = this.getFieldSuccessMessage(\n successMessage,\n this.fields[key].elem\n );\n }\n }\n setGroupInvalid(key, groupRule) {\n this.groupFields[key].isValid = false;\n this.groupFields[key].errorMessage = this.getGroupErrorMessage(groupRule);\n }\n setGroupValid(key, groupRule) {\n this.groupFields[key].isValid = true;\n this.groupFields[key].successMessage = this.getGroupSuccessMessage(groupRule);\n }\n getElemValue(elem) {\n switch (elem.type) {\n case \"checkbox\":\n return elem.checked;\n case \"file\":\n return elem.files;\n default:\n return elem.value;\n }\n }\n validateGroupRule(key, elems, groupRule) {\n switch (groupRule.rule) {\n case GroupRules.Required: {\n if (elems.every((elem) => !elem.checked)) {\n this.setGroupInvalid(key, groupRule);\n } else {\n this.setGroupValid(key, groupRule);\n }\n }\n }\n }\n validateFieldRule(key, elem, fieldRule, afterInputChanged = false) {\n const ruleValue = fieldRule.value;\n const elemValue = this.getElemValue(elem);\n if (fieldRule.plugin) {\n const result = fieldRule.plugin(\n elemValue,\n this.fields\n );\n if (!result) {\n this.setFieldInvalid(key, fieldRule);\n }\n return;\n }\n switch (fieldRule.rule) {\n case Rules.Required: {\n if (isEmpty(elemValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.Email: {\n if (typeof elemValue !== \"string\") {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (!isEmail(elemValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.MaxLength: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof ruleValue !== \"number\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] should be a number. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof elemValue !== \"string\") {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (elemValue === \"\") {\n break;\n }\n if (isLengthMoreThanMax(elemValue, ruleValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.MinLength: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof ruleValue !== \"number\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] should be a number. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof elemValue !== \"string\") {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (elemValue === \"\") {\n break;\n }\n if (isLengthLessThanMin(elemValue, ruleValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.Password: {\n if (typeof elemValue !== \"string\") {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (elemValue === \"\") {\n break;\n }\n if (!isPassword(elemValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.StrongPassword: {\n if (typeof elemValue !== \"string\") {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (elemValue === \"\") {\n break;\n }\n if (!isStrongPassword(elemValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.Number: {\n if (typeof elemValue !== \"string\") {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (elemValue === \"\") {\n break;\n }\n if (!isNumber(elemValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.MaxNumber: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof ruleValue !== \"number\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field should be a number. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof elemValue !== \"string\") {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (elemValue === \"\") {\n break;\n }\n const num = +elemValue;\n if (Number.isNaN(num) || isNumberMoreThanMax(num, ruleValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.MinNumber: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof ruleValue !== \"number\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field should be a number. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof elemValue !== \"string\") {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (elemValue === \"\") {\n break;\n }\n const num = +elemValue;\n if (Number.isNaN(num) || isNumberLessThanMin(num, ruleValue)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.CustomRegexp: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n return;\n }\n let regexp;\n try {\n regexp = new RegExp(ruleValue);\n } catch (e) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] should be a valid regexp. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n const str = String(elemValue);\n if (str !== \"\" && !regexp.test(str)) {\n this.setFieldInvalid(key, fieldRule);\n }\n break;\n }\n case Rules.MinFilesCount: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof ruleValue !== \"number\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field should be a number. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (Number.isFinite(elemValue == null ? void 0 : elemValue.length) && elemValue.length < ruleValue) {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n break;\n }\n case Rules.MaxFilesCount: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (typeof ruleValue !== \"number\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field should be a number. The field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n if (Number.isFinite(elemValue == null ? void 0 : elemValue.length) && elemValue.length > ruleValue) {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n break;\n }\n case Rules.Files: {\n if (ruleValue === void 0) {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field is not defined. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n return;\n }\n if (typeof ruleValue !== \"object\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field should be an object. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n return;\n }\n const filesConfig = ruleValue.files;\n if (typeof filesConfig !== \"object\") {\n console.error(\n `Value for ${fieldRule.rule} rule for [${key}] field should be an object with files array. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n return;\n }\n const isFilePropsInvalid = (file, fileConfig) => {\n const minSizeInvalid = Number.isFinite(fileConfig.minSize) && file.size < fileConfig.minSize;\n const maxSizeInvalid = Number.isFinite(fileConfig.maxSize) && file.size > fileConfig.maxSize;\n const nameInvalid = Array.isArray(fileConfig.names) && !fileConfig.names.includes(file.name);\n const extInvalid = Array.isArray(fileConfig.extensions) && !fileConfig.extensions.includes(\n file.name.split(\".\")[file.name.split(\".\").length - 1]\n );\n const typeInvalid = Array.isArray(fileConfig.types) && !fileConfig.types.includes(file.type);\n return minSizeInvalid || maxSizeInvalid || nameInvalid || extInvalid || typeInvalid;\n };\n if (typeof elemValue === \"object\" && elemValue !== null) {\n for (let fileIdx = 0, len = elemValue.length; fileIdx < len; ++fileIdx) {\n const file = elemValue.item(fileIdx);\n if (!file) {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n const filesInvalid = isFilePropsInvalid(file, filesConfig);\n if (filesInvalid) {\n this.setFieldInvalid(key, fieldRule);\n break;\n }\n }\n }\n break;\n }\n default: {\n if (typeof fieldRule.validator !== \"function\") {\n console.error(\n `Validator for custom rule for [${key}] field should be a function. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n return;\n }\n const result = fieldRule.validator(\n elemValue,\n this.fields\n );\n if (typeof result !== \"boolean\" && typeof result !== \"function\") {\n console.error(\n `Validator return value for [${key}] field should be boolean or function. It will be cast to boolean.`\n );\n }\n if (typeof result === \"function\") {\n if (afterInputChanged) {\n this.fields[key].asyncCheckPending = true;\n } else {\n this.fields[key].asyncCheckPending = false;\n const promise = result();\n if (!isPromise(promise)) {\n console.error(\n `Validator function for custom rule for [${key}] field should return a Promise. This field will be always invalid.`\n );\n this.setFieldInvalid(key, fieldRule);\n return;\n }\n return promise.then((resp) => {\n if (!resp) {\n this.setFieldInvalid(key, fieldRule);\n }\n }).catch(() => {\n this.setFieldInvalid(key, fieldRule);\n });\n }\n }\n if (!result) {\n this.setFieldInvalid(key, fieldRule);\n }\n }\n }\n }\n validateField(key, afterInputChanged = false) {\n var _a;\n const field = this.fields[key];\n field.isValid = true;\n const promises = [];\n [...field.rules].reverse().forEach((rule) => {\n const res = this.validateFieldRule(\n key,\n field.elem,\n rule,\n afterInputChanged\n );\n if (isPromise(res)) {\n promises.push(res);\n }\n });\n if (field.isValid) {\n this.setFieldValid(key, (_a = field.config) == null ? void 0 : _a.successMessage);\n }\n return Promise.allSettled(promises);\n }\n revalidateField(fieldSelector) {\n if (typeof fieldSelector !== \"string\" && !isElement(fieldSelector)) {\n throw Error(\n `Field selector is not valid. Please specify a string selector or a valid DOM element.`\n );\n }\n const key = this.getKeyByFieldSelector(fieldSelector);\n if (!key || !this.fields[key]) {\n console.error(`Field not found. Check the field selector.`);\n return Promise.reject();\n }\n return new Promise((resolve) => {\n this.validateField(key, true).finally(() => {\n this.clearFieldStyle(key);\n this.clearFieldLabel(key);\n this.renderFieldError(key);\n resolve(!!this.fields[key].isValid);\n });\n });\n }\n validateGroup(key, group) {\n const promises = [];\n [...group.rules].reverse().forEach((rule) => {\n const res = this.validateGroupRule(key, group.elems, rule);\n if (isPromise(res)) {\n promises.push(res);\n }\n });\n return Promise.allSettled(promises);\n }\n focusInvalidField() {\n for (const key in this.fields) {\n const field = this.fields[key];\n if (!field.isValid) {\n setTimeout(() => field.elem.focus(), 0);\n break;\n }\n }\n }\n afterSubmitValidation(forceRevalidation = false) {\n this.renderErrors(forceRevalidation);\n if (this.globalConfig.focusInvalidField) {\n this.focusInvalidField();\n }\n }\n validate(forceRevalidation = false) {\n return new Promise((resolve) => {\n const promises = [];\n Object.keys(this.fields).forEach((key) => {\n const promise = this.validateField(key);\n if (isPromise(promise)) {\n promises.push(promise);\n }\n });\n Object.keys(this.groupFields).forEach((key) => {\n const group = this.groupFields[key];\n const promise = this.validateGroup(key, group);\n if (isPromise(promise)) {\n promises.push(promise);\n }\n });\n if (promises.length) {\n Promise.allSettled(promises).then(() => {\n this.afterSubmitValidation(forceRevalidation);\n resolve(true);\n });\n } else {\n this.afterSubmitValidation(forceRevalidation);\n resolve(false);\n }\n });\n }\n revalidate() {\n return new Promise((resolve) => {\n this.validateHandler(void 0, true).finally(() => {\n if (this.globalConfig.focusInvalidField) {\n this.focusInvalidField();\n }\n resolve(this.isValid);\n });\n });\n }\n validateHandler(ev, forceRevalidation = false) {\n if (this.globalConfig.lockForm) {\n this.lockForm();\n }\n return this.validate(forceRevalidation).finally(() => {\n var _a, _b;\n if (this.globalConfig.lockForm) {\n this.unlockForm();\n }\n if (this.isValid) {\n (_a = this.onSuccessCallback) == null ? void 0 : _a.call(this, ev);\n } else {\n (_b = this.onFailCallback) == null ? void 0 : _b.call(this, this.fields, this.groupFields);\n }\n });\n }\n setForm(form) {\n this.form = form;\n this.form.setAttribute(\"novalidate\", \"novalidate\");\n this.removeListener(\"submit\", this.form, this.formSubmitHandler);\n this.addListener(\"submit\", this.form, this.formSubmitHandler);\n }\n addListener(type, elem, handler) {\n elem.addEventListener(type, handler);\n this.eventListeners.push({ type, elem, func: handler });\n }\n removeListener(type, elem, handler) {\n elem.removeEventListener(type, handler);\n this.eventListeners = this.eventListeners.filter(\n (item) => item.type !== type || item.elem !== elem\n );\n }\n addField(fieldSelector, rules, config) {\n if (typeof fieldSelector !== \"string\" && !isElement(fieldSelector)) {\n throw Error(\n `Field selector is not valid. Please specify a string selector or a valid DOM element.`\n );\n }\n let elem;\n if (typeof fieldSelector === \"string\") {\n elem = this.form.querySelector(fieldSelector);\n } else {\n elem = fieldSelector;\n }\n if (!elem) {\n throw Error(\n `Field doesn't exist in the DOM! Please check the field selector.`\n );\n }\n if (!Array.isArray(rules) || !rules.length) {\n throw Error(\n `Rules argument should be an array and should contain at least 1 element.`\n );\n }\n rules.forEach((item) => {\n if (!(\"rule\" in item || \"validator\" in item || \"plugin\" in item)) {\n throw Error(\n `Rules argument must contain at least one rule or validator property.`\n );\n }\n if (!item.validator && !item.plugin && (!item.rule || !Object.values(Rules).includes(item.rule))) {\n throw Error(\n `Rule should be one of these types: ${Object.values(Rules).join(\n \", \"\n )}. Provided value: ${item.rule}`\n );\n }\n });\n const key = this.setKeyByFieldSelector(fieldSelector);\n this.fields[key] = {\n elem,\n rules,\n isValid: void 0,\n config\n };\n this.setListeners(elem);\n if (this.isSubmitted) {\n this.validate();\n }\n return this;\n }\n removeField(fieldSelector) {\n if (typeof fieldSelector !== \"string\" && !isElement(fieldSelector)) {\n throw Error(\n `Field selector is not valid. Please specify a string selector or a valid DOM element.`\n );\n }\n const key = this.getKeyByFieldSelector(fieldSelector);\n if (!key || !this.fields[key]) {\n console.error(`Field not found. Check the field selector.`);\n return this;\n }\n const type = this.getListenerType(this.fields[key].elem.type);\n this.removeListener(type, this.fields[key].elem, this.handlerChange);\n this.clearErrors();\n delete this.fields[key];\n return this;\n }\n removeGroup(group) {\n if (typeof group !== \"string\") {\n throw Error(\n `Group selector is not valid. Please specify a string selector.`\n );\n }\n const key = this.getKeyByFieldSelector(group);\n if (!key || !this.groupFields[key]) {\n console.error(`Group not found. Check the group selector.`);\n return this;\n }\n this.groupFields[key].elems.forEach((elem) => {\n const type = this.getListenerType(elem.type);\n this.removeListener(type, elem, this.handlerChange);\n });\n this.clearErrors();\n delete this.groupFields[key];\n return this;\n }\n addRequiredGroup(groupField, errorMessage, config, successMessage) {\n if (typeof groupField !== \"string\") {\n throw Error(\n `Group selector is not valid. Please specify a string selector.`\n );\n }\n const elem = this.form.querySelector(groupField);\n if (!elem) {\n throw Error(\n `Group with ${groupField} selector not found! Please check the group selector.`\n );\n }\n const inputs = elem.querySelectorAll(\"input\");\n const childrenInputs = Array.from(inputs).filter((input) => {\n const parent = getClosestParent(this.groupFields, getNodeParents(input));\n if (!parent) {\n return true;\n }\n return parent[1].elems.find((elem2) => elem2 !== input);\n });\n const key = this.setKeyByFieldSelector(groupField);\n this.groupFields[key] = {\n rules: [\n {\n rule: GroupRules.Required,\n errorMessage,\n successMessage\n }\n ],\n groupElem: elem,\n elems: childrenInputs,\n isDirty: false,\n isValid: void 0,\n config\n };\n inputs.forEach((input) => {\n this.setListeners(input);\n });\n return this;\n }\n getListenerType(type) {\n switch (type) {\n case \"checkbox\":\n case \"select-one\":\n case \"file\":\n case \"radio\": {\n return \"change\";\n }\n default: {\n return \"input\";\n }\n }\n }\n setListeners(elem) {\n const type = this.getListenerType(elem.type);\n this.removeListener(type, elem, this.handlerChange);\n this.addListener(type, elem, this.handlerChange);\n }\n clearFieldLabel(key) {\n var _a, _b;\n (_a = this.errorLabels[key]) == null ? void 0 : _a.remove();\n (_b = this.successLabels[key]) == null ? void 0 : _b.remove();\n }\n clearFieldStyle(key) {\n var _a, _b, _c, _d;\n const field = this.fields[key];\n const errorStyle = ((_a = field.config) == null ? void 0 : _a.errorFieldStyle) || this.globalConfig.errorFieldStyle;\n Object.keys(errorStyle).forEach((key2) => {\n field.elem.style[key2] = \"\";\n });\n const successStyle = ((_b = field.config) == null ? void 0 : _b.successFieldStyle) || this.globalConfig.successFieldStyle || {};\n Object.keys(successStyle).forEach((key2) => {\n field.elem.style[key2] = \"\";\n });\n field.elem.classList.remove(\n ...getClassList(\n ((_c = field.config) == null ? void 0 : _c.errorFieldCssClass) || this.globalConfig.errorFieldCssClass\n ),\n ...getClassList(\n ((_d = field.config) == null ? void 0 : _d.successFieldCssClass) || this.globalConfig.successFieldCssClass\n )\n );\n }\n clearErrors() {\n var _a, _b;\n Object.keys(this.errorLabels).forEach(\n (key) => this.errorLabels[key].remove()\n );\n Object.keys(this.successLabels).forEach(\n (key) => this.successLabels[key].remove()\n );\n for (const key in this.fields) {\n this.clearFieldStyle(key);\n }\n for (const key in this.groupFields) {\n const group = this.groupFields[key];\n const errorStyle = ((_a = group.config) == null ? void 0 : _a.errorFieldStyle) || this.globalConfig.errorFieldStyle;\n Object.keys(errorStyle).forEach((key2) => {\n group.elems.forEach((elem) => {\n var _a2;\n elem.style[key2] = \"\";\n elem.classList.remove(\n ...getClassList(\n ((_a2 = group.config) == null ? void 0 : _a2.errorFieldCssClass) || this.globalConfig.errorFieldCssClass\n )\n );\n });\n });\n const successStyle = ((_b = group.config) == null ? void 0 : _b.successFieldStyle) || this.globalConfig.successFieldStyle || {};\n Object.keys(successStyle).forEach((key2) => {\n group.elems.forEach((elem) => {\n var _a2;\n elem.style[key2] = \"\";\n elem.classList.remove(\n ...getClassList(\n ((_a2 = group.config) == null ? void 0 : _a2.successFieldCssClass) || this.globalConfig.successFieldCssClass\n )\n );\n });\n });\n }\n this.tooltips = [];\n }\n isTooltip() {\n return !!this.globalConfig.tooltip;\n }\n lockForm() {\n const elems = this.form.querySelectorAll(\n \"input, textarea, button, select\"\n );\n for (let i = 0, len = elems.length; i < len; ++i) {\n elems[i].setAttribute(\n \"data-just-validate-fallback-disabled\",\n elems[i].disabled ? \"true\" : \"false\"\n );\n elems[i].setAttribute(\"disabled\", \"disabled\");\n elems[i].style.pointerEvents = \"none\";\n elems[i].style.webkitFilter = \"grayscale(100%)\";\n elems[i].style.filter = \"grayscale(100%)\";\n }\n }\n unlockForm() {\n const elems = this.form.querySelectorAll(\n \"input, textarea, button, select\"\n );\n for (let i = 0, len = elems.length; i < len; ++i) {\n if (elems[i].getAttribute(\"data-just-validate-fallback-disabled\") !== \"true\") {\n elems[i].removeAttribute(\"disabled\");\n }\n elems[i].style.pointerEvents = \"\";\n elems[i].style.webkitFilter = \"\";\n elems[i].style.filter = \"\";\n }\n }\n renderTooltip(elem, errorLabel, position) {\n var _a;\n const { top, left, width, height } = elem.getBoundingClientRect();\n const errorLabelRect = errorLabel.getBoundingClientRect();\n const pos = position || ((_a = this.globalConfig.tooltip) == null ? void 0 : _a.position);\n switch (pos) {\n case \"left\": {\n errorLabel.style.top = `${top + height / 2 - errorLabelRect.height / 2}px`;\n errorLabel.style.left = `${left - errorLabelRect.width - TOOLTIP_ARROW_HEIGHT}px`;\n break;\n }\n case \"top\": {\n errorLabel.style.top = `${top - errorLabelRect.height - TOOLTIP_ARROW_HEIGHT}px`;\n errorLabel.style.left = `${left + width / 2 - errorLabelRect.width / 2}px`;\n break;\n }\n case \"right\": {\n errorLabel.style.top = `${top + height / 2 - errorLabelRect.height / 2}px`;\n errorLabel.style.left = `${left + width + TOOLTIP_ARROW_HEIGHT}px`;\n break;\n }\n case \"bottom\": {\n errorLabel.style.top = `${top + height + TOOLTIP_ARROW_HEIGHT}px`;\n errorLabel.style.left = `${left + width / 2 - errorLabelRect.width / 2}px`;\n break;\n }\n }\n errorLabel.dataset.direction = pos;\n const refresh = () => {\n this.renderTooltip(elem, errorLabel, position);\n };\n return {\n refresh\n };\n }\n createErrorLabelElem(key, errorMessage, config) {\n const errorLabel = document.createElement(\"div\");\n errorLabel.innerHTML = errorMessage;\n const customErrorLabelStyle = this.isTooltip() ? config == null ? void 0 : config.errorLabelStyle : (config == null ? void 0 : config.errorLabelStyle) || this.globalConfig.errorLabelStyle;\n Object.assign(errorLabel.style, customErrorLabelStyle);\n errorLabel.classList.add(\n ...getClassList(\n (config == null ? void 0 : config.errorLabelCssClass) || this.globalConfig.errorLabelCssClass\n ),\n \"just-validate-error-label\"\n );\n if (this.isTooltip()) {\n errorLabel.dataset.tooltip = \"true\";\n }\n if (this.globalConfig.testingMode) {\n errorLabel.dataset.testId = `error-label-${key}`;\n }\n this.errorLabels[key] = errorLabel;\n return errorLabel;\n }\n createSuccessLabelElem(key, successMessage, config) {\n if (successMessage === void 0) {\n return null;\n }\n const successLabel = document.createElement(\"div\");\n successLabel.innerHTML = successMessage;\n const customSuccessLabelStyle = (config == null ? void 0 : config.successLabelStyle) || this.globalConfig.successLabelStyle;\n Object.assign(successLabel.style, customSuccessLabelStyle);\n successLabel.classList.add(\n ...getClassList(\n (config == null ? void 0 : config.successLabelCssClass) || this.globalConfig.successLabelCssClass\n ),\n \"just-validate-success-label\"\n );\n if (this.globalConfig.testingMode) {\n successLabel.dataset.testId = `success-label-${key}`;\n }\n this.successLabels[key] = successLabel;\n return successLabel;\n }\n renderErrorsContainer(label, errorsContainer) {\n const container = errorsContainer || this.globalConfig.errorsContainer;\n if (typeof container === \"string\") {\n const elem = this.form.querySelector(container);\n if (elem) {\n elem.appendChild(label);\n return true;\n } else {\n console.error(\n `Error container with ${container} selector not found. Errors will be rendered as usual`\n );\n }\n }\n if (container instanceof Element) {\n container.appendChild(label);\n return true;\n }\n if (container !== void 0) {\n console.error(\n `Error container not found. It should be a string or existing Element. Errors will be rendered as usual`\n );\n }\n return false;\n }\n renderGroupLabel(elem, label, errorsContainer, isSuccess) {\n if (!isSuccess) {\n const renderedInErrorsContainer = this.renderErrorsContainer(\n label,\n errorsContainer\n );\n if (renderedInErrorsContainer) {\n return;\n }\n }\n elem.appendChild(label);\n }\n renderFieldLabel(elem, label, errorsContainer, isSuccess) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (!isSuccess) {\n const renderedInErrorsContainer = this.renderErrorsContainer(\n label,\n errorsContainer\n );\n if (renderedInErrorsContainer) {\n return;\n }\n }\n if (elem.type === \"checkbox\" || elem.type === \"radio\") {\n const labelElem = document.querySelector(\n `label[for=\"${elem.getAttribute(\"id\")}\"]`\n );\n if (((_b = (_a = elem.parentElement) == null ? void 0 : _a.tagName) == null ? void 0 : _b.toLowerCase()) === \"label\") {\n (_d = (_c = elem.parentElement) == null ? void 0 : _c.parentElement) == null ? void 0 : _d.appendChild(label);\n } else if (labelElem) {\n (_e = labelElem.parentElement) == null ? void 0 : _e.appendChild(label);\n } else {\n (_f = elem.parentElement) == null ? void 0 : _f.appendChild(label);\n }\n } else {\n (_g = elem.parentElement) == null ? void 0 : _g.appendChild(label);\n }\n }\n showLabels(fields, isError) {\n Object.keys(fields).forEach((fieldName, i) => {\n const error = fields[fieldName];\n const key = this.getKeyByFieldSelector(fieldName);\n if (!key || !this.fields[key]) {\n console.error(`Field not found. Check the field selector.`);\n return;\n }\n const field = this.fields[key];\n field.isValid = !isError;\n this.clearFieldStyle(key);\n this.clearFieldLabel(key);\n this.renderFieldError(key, error);\n if (i === 0 && this.globalConfig.focusInvalidField) {\n setTimeout(() => field.elem.focus(), 0);\n }\n });\n }\n showErrors(fields) {\n if (typeof fields !== \"object\") {\n throw Error(\n \"[showErrors]: Errors should be an object with key: value format\"\n );\n }\n this.showLabels(fields, true);\n }\n showSuccessLabels(fields) {\n if (typeof fields !== \"object\") {\n throw Error(\n \"[showSuccessLabels]: Labels should be an object with key: value format\"\n );\n }\n this.showLabels(fields, false);\n }\n renderFieldError(key, message) {\n var _a, _b, _c, _d, _e, _f;\n const field = this.fields[key];\n if (field.isValid === void 0) {\n return;\n }\n if (field.isValid) {\n if (!field.asyncCheckPending) {\n const successLabel = this.createSuccessLabelElem(\n key,\n message !== void 0 ? message : field.successMessage,\n field.config\n );\n if (successLabel) {\n this.renderFieldLabel(\n field.elem,\n successLabel,\n (_a = field.config) == null ? void 0 : _a.errorsContainer,\n true\n );\n }\n field.elem.classList.add(\n ...getClassList(\n ((_b = field.config) == null ? void 0 : _b.successFieldCssClass) || this.globalConfig.successFieldCssClass\n )\n );\n }\n return;\n }\n this.isValid = false;\n field.elem.classList.add(\n ...getClassList(\n ((_c = field.config) == null ? void 0 : _c.errorFieldCssClass) || this.globalConfig.errorFieldCssClass\n )\n );\n const errorLabel = this.createErrorLabelElem(\n key,\n message !== void 0 ? message : field.errorMessage,\n field.config\n );\n this.renderFieldLabel(\n field.elem,\n errorLabel,\n (_d = field.config) == null ? void 0 : _d.errorsContainer\n );\n if (this.isTooltip()) {\n this.tooltips.push(\n this.renderTooltip(\n field.elem,\n errorLabel,\n (_f = (_e = field.config) == null ? void 0 : _e.tooltip) == null ? void 0 : _f.position\n )\n );\n }\n }\n renderGroupError(key) {\n var _a, _b, _c, _d;\n const group = this.groupFields[key];\n if (group.isValid === void 0) {\n return;\n }\n if (group.isValid) {\n group.elems.forEach((elem) => {\n var _a2, _b2;\n Object.assign(\n elem.style,\n ((_a2 = group.config) == null ? void 0 : _a2.successFieldStyle) || this.globalConfig.successFieldStyle\n );\n elem.classList.add(\n ...getClassList(\n ((_b2 = group.config) == null ? void 0 : _b2.successFieldCssClass) || this.globalConfig.successFieldCssClass\n )\n );\n });\n const successLabel = this.createSuccessLabelElem(\n key,\n group.successMessage,\n group.config\n );\n if (successLabel) {\n this.renderGroupLabel(\n group.groupElem,\n successLabel,\n (_a = group.config) == null ? void 0 : _a.errorsContainer,\n true\n );\n }\n return;\n }\n this.isValid = false;\n group.elems.forEach((elem) => {\n var _a2, _b2;\n Object.assign(\n elem.style,\n ((_a2 = group.config) == null ? void 0 : _a2.errorFieldStyle) || this.globalConfig.errorFieldStyle\n );\n elem.classList.add(\n ...getClassList(\n ((_b2 = group.config) == null ? void 0 : _b2.errorFieldCssClass) || this.globalConfig.errorFieldCssClass\n )\n );\n });\n const errorLabel = this.createErrorLabelElem(\n key,\n group.errorMessage,\n group.config\n );\n this.renderGroupLabel(\n group.groupElem,\n errorLabel,\n (_b = group.config) == null ? void 0 : _b.errorsContainer\n );\n if (this.isTooltip()) {\n this.tooltips.push(\n this.renderTooltip(\n group.groupElem,\n errorLabel,\n (_d = (_c = group.config) == null ? void 0 : _c.tooltip) == null ? void 0 : _d.position\n )\n );\n }\n }\n renderErrors(forceRevalidation = false) {\n if (!this.isSubmitted && !forceRevalidation && !this.globalConfig.validateBeforeSubmitting) {\n return;\n }\n this.clearErrors();\n this.isValid = true;\n for (const key in this.groupFields) {\n this.renderGroupError(key);\n }\n for (const key in this.fields) {\n this.renderFieldError(key);\n }\n }\n destroy() {\n this.eventListeners.forEach((event) => {\n this.removeListener(event.type, event.elem, event.func);\n });\n Object.keys(this.customStyleTags).forEach((key) => {\n this.customStyleTags[key].remove();\n });\n this.clearErrors();\n if (this.globalConfig.lockForm) {\n this.unlockForm();\n }\n }\n refresh() {\n this.destroy();\n if (!this.form) {\n console.error(\"Cannot initialize the library! Form is not defined\");\n } else {\n this.initialize(this.form, this.globalConfig);\n Object.keys(this.fields).forEach((key) => {\n const fieldSelector = this.getFieldSelectorByKey(key);\n if (fieldSelector) {\n this.addField(\n fieldSelector,\n [...this.fields[key].rules],\n this.fields[key].config\n );\n }\n });\n }\n }\n setCurrentLocale(locale) {\n if (typeof locale !== \"string\" && locale !== void 0) {\n console.error(\"Current locale should be a string\");\n return;\n }\n this.currentLocale = locale;\n if (this.isSubmitted) {\n this.validate();\n }\n }\n onSuccess(callback) {\n this.onSuccessCallback = callback;\n return this;\n }\n onFail(callback) {\n this.onFailCallback = callback;\n return this;\n }\n}\nexport {\n CustomStyleTagIds,\n GroupRules,\n Rules,\n JustValidate as default\n};\n"],"names":["login","async","geoData","provedorExterno","provedorToken","provedorUsuario","_selecionaVariasPessoas","pessoaID","$formLogin","document","getElementById","$modalVariasPessoas","querySelector","value","classList","add","_autenticar","_montarModalVariasPessoas","arrayPessoas","functionSelecionar","html","push","i","length","ID","Foto","trim","Nome","Cpf","IDExterno","innerHTML","join","Array","from","querySelectorAll","forEach","button","addEventListener","e","target","getAttribute","remove","form","botaoAcessar","mostrar","returnUrl","ReturnUrl","window","location","pathname","timeZone","existe","data","timezone","Intl","DateTimeFormat","resolvedOptions","formData","FormData","append","retorno","fetch","CULTURE_EMPREGARE","method","body","status","statusCode","esconder","resultados","json","Sucesso","Pessoas","mensagem","Mensagem","erro","Erro","rowErro","ErroDescricao","redirect","Redirect","vagaID","vagaTitulo","vagaUrl","salvarCandidaturaPendente","candidaturaPendente","titulo","url","href","_configLogin","element","callbackModal","getGeoData","$formLoginEmpresa","validarLoginCandidato","errorFieldCssClass","validarLoginEmpresa","addField","rule","errorMessage","revalidate","then","isValid","preventDefault","submit","popoverTrigger","popover","bootstrap","Popover","toggle","qSCpf","cpf","qSVinculo","vinculo","qSTipoLogin","tipo","focus","click","slice","call","map","popoverTriggerEl","abrirModal","callbackModalAbriu","callback","htmlModal","modalLogin","abreModal","Modal","dispatchEvent","CustomEvent","show","cache","response","text","btnLogin","getElementsByClassName","btnLoginTopo","$contentLogin","contains","dentroDaVaga","detail","request","headers","JSON","stringify","credential","ok","responseCallback","vagaStatus","Usuario","ProvedorExterno","error","console","log","init","_chaveSessionStorageCandidatura","possivelmenteLogado","localStorage","getItem","removeItem","urlSemHost","replace","setItem","obterCandidaturaPendente","candidatura","parse","removerCandidaturaPendente","_chaveSessionStorageGeoData","setGeoData","undefined","cidade","geoDataCidadeDecode","decodeURIComponent","geoDataParsed","cidadeCompleta","regiaoCodigo","pais","isNullOrEmpty","cultura","loadBotao","elementoButton","i18next","isInitialized","lng","debug","defaultNS","resources","fallbackLng","code","addResources","setAttribute","textoBotao","removeAttribute","loadFullPage","insertAdjacentHTML","findLoader","_removeLoader","obterDispositivo","navigator","userAgent","match","obterQueryString","Proxy","URLSearchParams","search","get","searchParams","prop","array","iterator","keys","getAll","toastErroCarregar","Notify","failure","tooglePassword","passwordInput","passwordIcon","type","this","addTrack","name","mixpanel","hotSiteEmpresaID","hotSiteUrl","empresaID","hotsite","dispositivo","track","_chaveSessionUsuarioLogado","carregarUsuarioLogado","_mudarLayoutLogado","resposta","headerLogado","menuLogadoOculto","outrosMenusNaoLogado","footerEmpregare","eventoLoginHostite","item","src","foto","nome","mensagens","notificacoes","sessionLogado","sessionStorage","s","logado","googleLogin","_fetchDados","logadoJson","getUsuarioLogado","removeCacheUsuarioLogado","__defProp","Object","defineProperty","__publicField","obj","key","enumerable","configurable","writable","__defNormalProp","EMAIL_REGEXP","NUMBER_REGEXP","PASSWORD_REGEXP","STRONG_PASSWORD_REGEXP","Rules","Rules2","GroupRules","GroupRules2","CustomStyleTagIds","CustomStyleTagIds2","defaultDictionary","Required","dict","en","Email","MaxLength","MinLength","Password","StrongPassword","Number","MaxNumber","MinNumber","MinFilesCount","MaxFilesCount","Files","isPromise","val","getClassList","isArray","filter","cls","split","isElement","Element","HTMLDocument","defaultGlobalConfig","errorFieldStyle","color","border","successFieldCssClass","errorLabelStyle","errorLabelCssClass","successLabelCssClass","focusInvalidField","lockForm","testingMode","validateBeforeSubmitting","JustValidate","constructor","globalConfig","dictLocale","Map","field","fieldIds","fieldSelector","k","has","String","size","set","tooltips","refresh","lastScrollPosition","scrollY","isScrollTick","requestAnimationFrame","refreshAllTooltips","ev","isSubmitted","validateHandler","foundKey","fields","elem","validateField","currentGroup","groupFields","group","elems","find","validateGroup","handleFieldChange","handleGroupChange","renderErrors","initialize","errors","errorLabels","successLabels","eventListeners","customStyleTags","currentLocale","Error","setForm","HTMLFormElement","isTooltip","styleTag","createElement","textContent","Label","head","appendChild","addListener","handleDocumentScroll","getLocalisedString","ruleValue","customMsg","_a","localisedStr","getFieldErrorMessage","fieldRule","msg","getElemValue","getFieldSuccessMessage","successMessage","getGroupErrorMessage","groupRule","getGroupSuccessMessage","setFieldInvalid","setFieldValid","setGroupInvalid","setGroupValid","checked","files","validateGroupRule","every","validateFieldRule","afterInputChanged","elemValue","plugin","newVal","isEmpty","test","len","isLengthMoreThanMax","isLengthLessThanMin","isPassword","isStrongPassword","isNumber","num","isNaN","isNumberMoreThanMax","isNumberLessThanMin","CustomRegexp","regexp","RegExp","str","isFinite","filesConfig","isFilePropsInvalid","file","fileConfig","minSizeInvalid","minSize","maxSizeInvalid","maxSize","nameInvalid","names","includes","extInvalid","extensions","typeInvalid","types","fileIdx","validator","result","asyncCheckPending","promise","resp","catch","promises","rules","reverse","res","config","Promise","allSettled","revalidateField","getKeyByFieldSelector","resolve","finally","clearFieldStyle","clearFieldLabel","renderFieldError","reject","setTimeout","afterSubmitValidation","forceRevalidation","validate","_b","unlockForm","onSuccessCallback","onFailCallback","removeListener","formSubmitHandler","handler","func","removeEventListener","values","setKeyByFieldSelector","setListeners","removeField","getListenerType","handlerChange","clearErrors","removeGroup","addRequiredGroup","groupField","inputs","childrenInputs","input","parent","groups","parents","reversedParents","groupElem","getClosestParent","el","els","unshift","parentNode","getNodeParents","elem2","isDirty","_c","_d","errorStyle","key2","style","successStyle","successFieldStyle","_a2","tooltip","disabled","pointerEvents","webkitFilter","renderTooltip","errorLabel","position","top","left","width","height","getBoundingClientRect","errorLabelRect","pos","dataset","direction","createErrorLabelElem","customErrorLabelStyle","assign","testId","createSuccessLabelElem","successLabel","customSuccessLabelStyle","successLabelStyle","renderErrorsContainer","label","errorsContainer","container","renderGroupLabel","isSuccess","renderFieldLabel","_e","_f","_g","labelElem","parentElement","tagName","toLowerCase","showLabels","isError","fieldName","showErrors","showSuccessLabels","message","renderGroupError","_b2","destroy","event","getFieldSelectorByKey","setCurrentLocale","locale","onSuccess","onFail"],"sourceRoot":""}