{"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":""}