{"version":3,"file":"vagas-detalhes.min.js","mappings":"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","sources":["webpack://configuracao/./js/componentes/alertaVagas/templatesAlertaVaga.js","webpack://configuracao/./js/localizacao/global/global.js","webpack://configuracao/./js/localizacao/alertaVaga/alertaVaga.js","webpack://configuracao/./js/utilidades/alertaVaga.js","webpack://configuracao/./js/utilidades/banner.js","webpack://configuracao/./js/utilidades/candidaturaPendente.js","webpack://configuracao/./js/localizacao/eventoBuscarVagaRedirect/eventoBuscarVagaRedirect.js","webpack://configuracao/./js/utilidades/eventoBuscarVagaRedirect.js","webpack://configuracao/./js/utilidades/getFetch.js","webpack://configuracao/./js/utilidades/isNullOrEmpty.js","webpack://configuracao/./js/utilidades/loadFullPage.js","webpack://configuracao/./js/utilidades/obterCookie.js","webpack://configuracao/./js/utilidades/obterDispositivo.js","webpack://configuracao/./js/utilidades/obterOrigem.js","webpack://configuracao/./js/utilidades/obterQueryString.js","webpack://configuracao/./js/utilidades/postFetch.js","webpack://configuracao/./js/utilidades/salvarCookie.js","webpack://configuracao/./js/utilidades/toastErroCarregar.js","webpack://configuracao/./js/utilidades/toastSucesso.js","webpack://configuracao/./js/utilidades/trackEventos.js","webpack://configuracao/./js/utilidades/uuid.js","webpack://configuracao/./js/utilidades/validarResultado.js","webpack://configuracao/./js/localizacao/vagas-detalhes/vagas-detalhes.js","webpack://configuracao/./js/vagas-detalhes.js","webpack://configuracao/./node_modules/just-validate/dist/just-validate.es.js","webpack://configuracao/./node_modules/notiflix/build/notiflix-confirm-aio.js","webpack://configuracao/./node_modules/notiflix/build/notiflix-report-aio.js"],"sourcesContent":["import i18next from \"i18next\";\r\n\r\nexport function templateBtnAlertaVagas(data, cargo, tipoPaginaID, localidadesSeparadas = \"\"){\r\n\r\n    let btnAlertaVagas = \"\";\r\n\r\n    if(data.exibirAlertaVagas){\r\n\r\n        if(data.possuiAlertaVagas){\r\n            btnAlertaVagas = `\r\n            <button class=\"btn btn-outline-primary d-inline botao-alerta\" id=\"botao-alerta\" data-vaga-id=\"${tipoPaginaID}\" data-alerta-id=\"${data.possuiAlertaVagas.ID}\" data-profissao-id=\"${tipoPaginaID}\" data-cargo=\"${cargo}\" data-localidade=\"${localidadesSeparadas}\">\r\n            <i class=\"bi bi-gear\"></i>  ${i18next.t('AlertaVagasBtnEditar')}\r\n            </button>\r\n            `;\r\n        }\r\n\r\n        else{\r\n            btnAlertaVagas = `\r\n            <button class=\"btn btn-outline-primary d-inline botao-alerta\" id=\"botao-alerta\" data-vaga-id=\"${tipoPaginaID}\" data-profissao-id=\"${tipoPaginaID}\" data-localidade=\"${localidadesSeparadas}\" data-cargo=\"${cargo}\">\r\n            <i class=\"bi bi-bell\"></i>  ${i18next.t('AlertaVagasBtnAtivar')}</button>\r\n            `;\r\n        }\r\n    }\r\n\r\n    return btnAlertaVagas;\r\n}\r\n\r\n\r\nexport function templateCardAlertaVagas (data, cargo, tipoPaginaID, localidadesSeparadas = \"\", localidadesSeparadasVirgula = \"\") {\r\n        \r\n    let btnAlertaVagas = templateBtnAlertaVagas(data, cargo,tipoPaginaID,localidadesSeparadas);\r\n\r\n    const template = `\r\n        <div class=\"border-0 d-flex flex-row align-items-center justify-content-between\" id=\"botao-wrapper-alerta\">\r\n            <div class=\"${data.exibirAlertaVagas ?  \"col-8\" : \"col-12\"}\">\r\n                <h5 class=\"m-0\"><b>${!data.exibirAlertaVagas ?  i18next.t('AlertaVagasEntreCrieText') : (data.possuiAlertaVagas ? i18next.t('AlertaVagasEditarText') : i18next.t('AlertaVagasConfigurarAlertaText'))}</b> <b>${cargo}</b></h5>\r\n                <small>${cargo} ${i18next.t('AlertaVagasEm')}\r\n                    ${localidadesSeparadasVirgula}\r\n                </small>\r\n            </div>\r\n            ${btnAlertaVagas}\r\n        </div>\r\n    `;\r\n\r\n    return template;\r\n};","import i18next from 'i18next';import resource_0 from \"./global.ptbr.json\" assert { type: 'JSON' };import resource_1 from \"./global.es.json\" assert { type: 'JSON' };import resource_2 from \"./global.en.json\" assert { type: 'JSON' };const cultura = CULTURE_EMPREGARE.replace('-', '');export const inicializarInternacionalizacao = () => {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 i18next from 'i18next';import resource_0 from \"./alertaVaga.ptbr.json\" assert { type: 'JSON' };import resource_1 from \"./alertaVaga.es.json\" assert { type: 'JSON' };import resource_2 from \"./alertaVaga.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 { loadFullPage } from \"./loadFullPage\";\r\nimport { postFetch } from \"./postFetch\"; \r\nimport { tomSelectBuscaLocalizacao } from \"./eventoBuscarVagaRedirect\"; \r\nimport { toastErroCarregar } from \"./toastErroCarregar\";\r\nimport { toastSucesso } from './toastSucesso'\r\nimport JustValidate from \"just-validate\";\r\nimport { Confirm } from \"notiflix/build/notiflix-confirm-aio\";\r\nimport { isNullOrEmpty } from \"./isNullOrEmpty\";\r\nimport { inicializarInternacionalizacao } from \"../localizacao/alertaVaga/alertaVaga\";\r\nimport i18next from 'i18next';\r\n\r\nexport class AlertaVaga {\r\n  constructor(botao) {\r\n    this.botao = botao;\r\n    this.modalGenerico = document.getElementById('modal-generico');\r\n    this.vagaID = this.botao.getAttribute('data-vaga-id');\r\n    this.profissaoID = this.botao.getAttribute('data-profissao-id');\r\n    this.adicionais = this.botao.getAttribute('data-edicao') ?? false;\r\n    this.alertaID = this.botao.getAttribute('data-alerta-id') ?? 0;\r\n    this.localidade = this.botao.getAttribute('data-localidade')?.split('|');\r\n    this.recarregar = this.botao.getAttribute('data-recarregar') == 'true';\r\n    this.cargos = this.botao.getAttribute('data-cargo')?.split('|');\r\n\r\n    this.init = this.init.bind(this);\r\n    this.submitForm = this.submitForm.bind(this);\r\n    this.excluir = this.excluir.bind(this);\r\n    botao.addEventListener('click', this.init)\r\n  }\r\n\r\n  async init() {\r\n\r\n    try {\r\n      loadFullPage.mostrar();\r\n      inicializarInternacionalizacao();\r\n      if(!this.cargos)\r\n        this.cargos = \"\";\r\n\r\n      if(!this.alertaID)\r\n        this.alertaID = 0;\r\n\r\n      const resultado = await fetch(`/${CULTURE_EMPREGARE}/PainelAlertaVaga/ModalAlerta?id=${this.alertaID}&adicionais=${this.adicionais}&cargo=${this.cargos}`);\r\n      if (!resultado.ok) {\r\n        loadFullPage.esconder();\r\n        toastErroCarregar(i18next.t('ErroGenerico'));\r\n        return;\r\n      }\r\n      \r\n      this.modalGenerico.innerHTML = await resultado.text();\r\n      this.modalGenerico.addEventListener('hidden.bs.modal', () => this.modalGenerico.innerHTML = '');\r\n      this.alertaID = this.modalGenerico.querySelector('#alerta-id-modal')?.value;\r\n\r\n      const formValidar = new JustValidate(this.modalGenerico.querySelector('#form-alerta-vaga'), {\r\n        errorFieldCssClass: 'is-invalid',\r\n        focusInvalidField: true,\r\n        lockForm: true\r\n      }); \r\n\r\n      formValidar\r\n        .addField('#CargosAlerta', [{ rule: 'required', errorMessage: i18next.t('ErrorMessageCargo') }])\r\n        // .addField('#CidadeAlerta', [{ rule: 'required', errorMessage: 'Informe pelo menos uma cidade' }])\r\n        .onSuccess(this.submitForm);\r\n      \r\n  \r\n      if ((this.vagaID || this.profissaoID) && !this.alertaID) {\r\n        //this.modalGenerico.querySelector('#container-input-cargos').remove();\r\n        formValidar.removeField('#CargosAlerta');\r\n      }\r\n      \r\n\r\n      if (!isNullOrEmpty(this.cargos) && this.cargos.length > 0) {\r\n\r\n        // this.modalGenerico.querySelector('#texto-descritivo-alerta').innerHTML = ` de <b> ${this.cargos} </b>`;\r\n\r\n        const contagemOptions = this.modalGenerico.querySelector('#container-input-cargos').querySelectorAll(`option`).length;\r\n        \r\n        this.cargos.forEach(value => {\r\n          const option = this.modalGenerico.querySelector(`option[value='${value}']`);\r\n          \r\n          if (option && !option.selected) {\r\n              option.remove();\r\n          }\r\n        });\r\n        \r\n        const html = [];\r\n\r\n        for (const cargo of this.cargos) {\r\n          html.push(`<option value=\"${cargo}\" ${contagemOptions > 0 ? '' : 'selected'}>${cargo}</option>`)\r\n        }\r\n  \r\n        this.modalGenerico.querySelector('#CargosAlerta').innerHTML += html;\r\n      }\r\n\r\n      if (this.localidade != null && this.localidade.length > 0) {\r\n        const contagemOptions = this.modalGenerico.querySelector('#CidadeAlerta').querySelectorAll(`option`).length;\r\n        \r\n        this.localidade.forEach(value => {\r\n          const option = this.modalGenerico.querySelector(`option[value='${value}']`);\r\n          \r\n          if (option && !option.selected) {\r\n              option.remove();\r\n          }\r\n        });\r\n        \r\n        const html = [];\r\n        for (const cidade of this.localidade) {\r\n          html.push(`<option value=\"${cidade}\" ${contagemOptions > 0 ? '' : 'selected'}>${cidade}</option>`)\r\n        }\r\n  \r\n        this.modalGenerico.querySelector('#CidadeAlerta').innerHTML += html;\r\n      }\r\n      \r\n      import('tom-select').then(({ default: TomSelect }) => {\r\n        new TomSelect('#CargosAlerta', {\r\n          plugins: ['clear_button'],\r\n          maxItems: 5,            \r\n          create: true,              // Cria uma nova opção caso não exista\r\n          persist: false,            // As tags não são “persistidas” como opções fixas\r\n          createOnBlur: true,        // Ao sair do campo, cria a tag com o texto digitado\r\n          searchField: [],\r\n          createFilter: function(input) {\r\n            if (input.length > 150) {\r\n              toastErroCarregar(i18next.t(\"AlertaVagaErro150Caracteres\"));\r\n              return false; // Bloqueia a criação\r\n            }\r\n            return true; // Permite criar\r\n          },\r\n          render: {\r\n            no_results: function(data, escape) {\r\n              // Retorna string vazia para não mostrar \"No results found\"\r\n              return '';\r\n            },\r\n            option_create: function (data, escape) {\r\n              // somente remove o texto “Add” \r\n              return `<div class=\"create\"><strong>${escape(data.input)}</strong></div>`;\r\n            }\r\n          },\r\n          onInitialize: function() {\r\n            // Se já existem itens selecionados, remove placeholder\r\n            if (this.getValue().length > 0) {\r\n              this.settings.placeholder = '';\r\n              this.control_input.setAttribute('placeholder', '');\r\n            }\r\n\r\n            this.clearOptions();\r\n          },\r\n      \r\n          onChange: function(values) {\r\n            if (values.length > 0) {\r\n              // Remove placeholder\r\n              this.settings.placeholder = '';\r\n              this.control_input.setAttribute('placeholder', '');\r\n            } else {\r\n              // Reexibe placeholder\r\n              this.settings.placeholder = i18next.t('inputCargosPlaceholder');\r\n              this.control_input.setAttribute('placeholder', i18next.t('inputCargosPlaceholder'));\r\n            }\r\n          }\r\n        });\r\n      });\r\n\r\n      await tomSelectBuscaLocalizacao('#CidadeAlerta')\r\n      this.modalGenerico.querySelector('#alerta-vaga-excluir')?.addEventListener('click', this.excluir)\r\n      //this.modalGenerico.querySelector('#form-alerta-vaga').addEventListener('submit', this.submitForm);\r\n      \r\n      const isBtnCriarAlerta = this.botao.classList.contains(\"btn-criar-alerta\");\r\n\r\n      if ((!this.localidade || this.localidade?.length == 1) && !this.alertaID && !isBtnCriarAlerta) {\r\n        loadFullPage.esconder();\r\n        this.modalGenerico.querySelector('#form-alerta-vaga').dispatchEvent(new Event('submit'));\r\n        return;\r\n      }\r\n      \r\n      this.modalBootstrap = new bootstrap.Modal(this.modalGenerico, { backdrop: \"static\" });\r\n      \r\n      this.modalBootstrap.show();\r\n      loadFullPage.esconder();\r\n    } catch {\r\n      \r\n      loadFullPage.esconder();\r\n      this.modalBootstrap.hide();\r\n      toastErroCarregar(i18next.t('ErroGenerico'));\r\n    }\r\n  }\r\n\r\n  async excluir() {\r\n    Confirm.init({\r\n      className: \"confirm-empregare\",\r\n      titleColor: \"#EA1F1F\",\r\n      okButtonColor: \"#f8f8f8\",\r\n      okButtonBackground: \"#EA1F1F\",\r\n      cancelButtonColor: \"#f8f8f8\",\r\n    });\r\n\r\n    const callbackSucesso = resultado => {\r\n      \r\n      if (this.recarregar) {\r\n        location.reload();\r\n      }\r\n\r\n      this.modalBootstrap.hide();\r\n      loadFullPage.esconder();\r\n      this.botao.dispatchEvent(new Event('alerta-excluido', { bubbles: true }));\r\n      this.alertaID = 0;\r\n      this.adicionais = false;\r\n      this.botao.innerHTML = `<i class=\"bi bi-bell\"></i> ${i18next.t('BtnAtivar')}`;\r\n      this.botao.setAttribute('data-alerta-id', 0);\r\n\r\n      toastSucesso(i18next.t('AlertaExcluido'))      \r\n    };\r\n\r\n    const callbackErro = resultado => {\r\n      toastErroCarregar(resultado.mensagem);\r\n      loadFullPage.esconder();\r\n      this.modalBootstrap.hide();\r\n    }\r\n  \r\n    Confirm.show(\r\n      i18next.t('ConfirmarExcluirTitulo'),\r\n      i18next.t('ConfirmarExcluirTexto'),\r\n      i18next.t('ConfirmarExcluirBtnConfirmar'),\r\n      i18next.t('ConfirmarExcluirBtnCancelar'),\r\n      async () => {\r\n        loadFullPage.mostrar(i18next.t('ExcluindoAlerta'));\r\n        await postFetch(`/${CULTURE_EMPREGARE}/PainelAlertaVaga/Excluir/${this.alertaID}`, null, callbackSucesso, callbackErro, callbackErro);\r\n      }\r\n    );\r\n  }\r\n  \r\n  async submitForm(event) {\r\n    console.log('event', event);\r\n    \r\n    event.preventDefault();\r\n    loadFullPage.mostrar(i18next.t('LoadSalvandoAlerta'))\r\n    \r\n    const callbackSucesso = resultado => {\r\n      toastSucesso(i18next.t('AlertaSalvo'))      \r\n      if (this.recarregar) {\r\n        location.reload();\r\n      }\r\n\r\n      this.modalBootstrap?.hide();\r\n      loadFullPage.esconder();\r\n      this.alertaID = resultado.alertaID;\r\n      this.adicionais = true;\r\n      this.botao.innerHTML = '<i class=\"bi bi-gear\"></i> ' + i18next.t('btnEditar');\r\n      this.botao.setAttribute('data-alerta-id', resultado.alertaID);\r\n\r\n      this.botao.dispatchEvent(new Event('alerta-salvo', { bubbles: true }));\r\n    }\r\n  \r\n    const callBackErro = resultado => {\r\n      //this.modalBootstrap?.hide();\r\n      loadFullPage.esconder();\r\n      \r\n      if (resultado?.mensagem != null) {        \r\n        if (resultado.erroAutenticacao) {\r\n          document.querySelector('.btn-login').click();\r\n          return;\r\n        }\r\n        toastErroCarregar(resultado.mensagem);\r\n        return;\r\n      }\r\n      \r\n      toastErroCarregar(i18next.t('ErroGenerico'));\r\n    }\r\n  \r\n    const formData = new FormData(event.target);\r\n  \r\n    formData.append('VagaID', this.vagaID);\r\n    formData.append('ProfissaoID', this.profissaoID);\r\n    formData.append('ID', this.alertaID);\r\n\r\n    if (!formData.get('Localidades') && this.localidade) {\r\n      formData.delete('Localidades');\r\n      if(this.profissaoID || this.vagaID){\r\n        for (const localidade of this.localidade) {\r\n          \r\n          formData.append('Localidades', localidade);\r\n        }\r\n      }\r\n    }\r\n    \r\n    if (!formData.get('Cargos') && this.cargos && !isNullOrEmpty(this.cargos)) {\r\n      formData.delete('Cargos');\r\n      for (const cargo of this.cargos) {\r\n        \r\n        formData.append('Cargos', cargo);\r\n      }\r\n    }\r\n\r\n    await postFetch(`/${CULTURE_EMPREGARE}/PainelAlertaVaga/Salvar`, formData, callbackSucesso, callBackErro, callBackErro, false, false);\r\n  }\r\n}\r\n","export const localBanner = {\r\n    HOME: 1,\r\n    VAGA_BUSCA: 2,\r\n    VAGA_DETALHES: 3,\r\n    PAINEL: 4,\r\n    EMPLOYER_PAGE: 5,\r\n};\r\n\r\nexport const banner = {\r\n    async renderizar(containerId, local, exibirMobile = true) {\r\n        const container = document.getElementById(containerId);\r\n\r\n        if (!container) {\r\n            console.error('[banner]: não foi encontrado nenhuma div com o id especificado para renderizar o banner!');\r\n            return;\r\n        }\r\n\r\n        try {\r\n            const banner = await this._buscarBanner(local);\r\n            console.log('banner', banner)\r\n            if (banner.sucesso && banner) {\r\n                this._renderizarHTML(container, banner, local, exibirMobile);\r\n            } else {\r\n                // this._renderizarBannerPadrao(container);\r\n            }\r\n        } catch (error) {\r\n            console.error('Erro ao carregar banner:', error);\r\n            // this._renderizarBannerPadrao(container);\r\n        }\r\n    },\r\n\r\n    async _buscarBanner(local) {\r\n        try {\r\n            const response = await fetch(`/Home/GetBanner?local=${local}`, {\r\n                method: 'GET',\r\n                headers: {\r\n                    'Content-Type': 'application/json',\r\n                },\r\n            });\r\n\r\n            return await response.json();\r\n        } catch (error) {\r\n            console.error('Erro ao buscar banner:', error);\r\n            return { sucesso: false };\r\n        }\r\n    },\r\n\r\n    _renderizarHTML(container, banner, local, exibirMobile) {\r\n        const redirectUrl = `/Home/RedirectBanner?id=${banner.ID}&local=${local}`;\r\n\r\n        //const botaoFecharHTML = botaoFechar\r\n        //    ? `\r\n        //    <button class=\"btn-close position-absolute top-0 end-0 m-2\" aria-label=\"Fechar\" \r\n        //            style=\"background-color: rgba(0,0,0,0.5); color: white;\">\r\n        //    </button>`\r\n        //    : '';\r\n\r\n        const html = `\r\n        <div class=\"banner-wrapper position-relative\">\r\n            \r\n            <a href=\"${redirectUrl}\" target=\"_blank\" data-banner-id=\"${banner.ID}\" \r\n               class=\"${exibirMobile ? `d-flex` : `d-none d-md-flex`} justify-content-center\">\r\n                <picture class=\"col-12 text-center\">\r\n                    <source media=\"(max-width: 767px)\" \r\n                            srcset=\"https://storage.empregare.com/banners/${banner.ArquivoMobile}\" \r\n                            class=\"img-fluid style=\"border-radius: 3px;\">\r\n                    <img src=\"https://storage.empregare.com/banners/${banner.ArquivoDesktop}\" \r\n                         alt=\"${banner.Titulo}\" \r\n                         class=\"img-fluid\" style=\"border-radius: 3px;\"/>\r\n                </picture>\r\n            </a>\r\n        </div>`;\r\n\r\n        container.innerHTML = html;\r\n\r\n        //const botaoFecharElemento = container.querySelector('.btn-close');\r\n        //if (botaoFecharElemento) {\r\n        //    botaoFecharElemento.addEventListener('click', () => {\r\n        //        this.ocultarBanner(banner.ID);\r\n        //    });\r\n        //}\r\n\r\n        const linkElement = container.querySelector('a');\r\n        if (linkElement) {\r\n            linkElement.style.transition = 'opacity 0.3s ease-in-out';\r\n\r\n            linkElement.addEventListener('mouseover', () => {\r\n                linkElement.style.opacity = '0.8';\r\n            });\r\n\r\n            linkElement.addEventListener('mouseout', () => {\r\n                linkElement.style.opacity = '1';\r\n            });\r\n        }\r\n    },\r\n\r\n    //async ocultarBanner(bannerID) {\r\n    //    try {\r\n    //        const response = await fetch('/Company/Banner/OcultarBanner', {\r\n    //            method: 'POST',\r\n    //            headers: {\r\n    //                'Content-Type': 'application/json',\r\n    //            },\r\n    //            body: JSON.stringify({ bannerID: bannerID }),\r\n    //        });\r\n\r\n    //        const result = await response.json();\r\n\r\n    //        if (result.sucesso) {\r\n    //            const bannerElement = document.querySelector(`[data-banner-id=\"${bannerID}\"]`);\r\n    //            if (bannerElement) {\r\n    //                bannerElement.closest('.banner-wrapper').remove();\r\n    //            }\r\n    //        }\r\n    //    } catch (error) {\r\n    //        console.error('Erro ao ocultar banner:', error);\r\n    //    }\r\n    //},\r\n\r\n    //_renderizarBannerPadrao(container) {\r\n    //    const html = `\r\n    //        <div class=\"banner-container\">\r\n    //            <a href=\"#\" target=\"_blank\">\r\n    //                <img src=\"https://www.empregare.com/assetsV2/common/images/global/logo.png\" \r\n    //                     alt=\"Banner Estático\" />\r\n    //            </a>\r\n    //        </div>\r\n    //    `;\r\n    //\r\n    //    container.innerHTML = html;\r\n    //}\r\n};\r\n\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}","import i18next from 'i18next';import resource_0 from \"./eventoBuscarVagaRedirect.ptbr.json\" assert { type: 'JSON' };import resource_1 from \"./eventoBuscarVagaRedirect.es.json\" assert { type: 'JSON' };import resource_2 from \"./eventoBuscarVagaRedirect.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 { uuid } from '../utilidades/uuid.js';\r\nimport { inicializarInternacionalizacao } from '../localizacao/eventoBuscarVagaRedirect/eventoBuscarVagaRedirect.js'\r\nimport i18next from 'i18next';\r\nimport { isNullOrEmpty } from './isNullOrEmpty.js';\r\nimport { getFetch } from './getFetch.js';\r\n\r\nconst chaveLocalStorageBuscasRecentesCargo = 'vagasBuscasRecentesCargo';\r\nconst chaveLocalStorageBuscasRecentesLocalizacao = 'vagasBuscasRecentesLocalizacao';\r\nconst chaveLocalStorageCidadesSugestoes = 'sugestoesCidade';\r\ninicializarInternacionalizacao();\r\n\r\nconsole.log('eventoBuscarVagaRedirect');\r\n\r\nconst sugestoesCidadesPadrao = [\r\n    { nome: i18next.t('SugestoesCidadesPadraoRemoto') },\r\n    { nome: 'Brasília, DF' },\r\n    { nome: 'São Paulo, SP' },\r\n    { nome: 'São José do Rio Preto, SP' },\r\n    { nome: 'Cuiabá, MT' },\r\n    { nome: 'Maringá, PR' },\r\n    { nome: 'Natal, RN' },\r\n    { nome: 'Belo Horizonte, MG' },\r\n    { nome: 'Taguatinga - Brasília, DF' },\r\n    { nome: 'Rio de Janeiro, RJ' },\r\n    { nome: 'Ribeirão Preto, SP' }\r\n];\r\n\r\n\r\nexport async function obterSugestoesCidades(cb = null) {\r\n    let cacheSugestoesCidades = [];\r\n    if (sessionStorage.getItem(chaveLocalStorageCidadesSugestoes)) {\r\n        cacheSugestoesCidades = JSON.parse(sessionStorage.getItem(chaveLocalStorageCidadesSugestoes));\r\n    }\r\n\r\n    const { getGeoData } = await import('../utilidades/geoData');\r\n    let retorno = cacheSugestoesCidades;\r\n    const geoData = getGeoData();\r\n\r\n    try {\r\n        if (cacheSugestoesCidades.length == 0) {\r\n            const baseURLAPI = URL_API + 'vagas/buscar-novo';\r\n            const hotSiteEmpresaID = document.getElementById(\"hotSiteEmpresaID\");\r\n            const hotSiteUrl = document.getElementById('hotSiteUrl');\r\n\r\n            const parametrosURL = new URLSearchParams();\r\n            parametrosURL.append('pagina', 1);\r\n            parametrosURL.append('itensPagina', 1);\r\n            parametrosURL.append('ordenacao', 'Relevancia');\r\n         \r\n            if (hotSiteEmpresaID != undefined && hotSiteUrl != undefined) {\r\n                parametrosURL.append('empresa', hotSiteEmpresaID.value);\r\n                parametrosURL.append('hotSiteUrl', hotSiteUrl.value);\r\n            }\r\n\r\n            const request = await fetch(`${baseURLAPI}?${parametrosURL.toString()}`);\r\n\r\n            const response = await request.json();\r\n\r\n            if (response.sucesso) {\r\n                if (!response.model.facets || !response.model.facets.cidade) {\r\n                    retorno = sugestoesCidadesPadrao;\r\n                } else {\r\n                    const topCidades = response.model.facets.cidade.splice(0, 10);\r\n\r\n                    const possuiRemoto = response.model.facets.remoto?.filter(x => x.nome.includes('Remoto'))?.length > 0;\r\n                    if (possuiRemoto) {\r\n                        retorno.push({ nome: i18next.t('SugestoesCidadesPadraoRemoto') });\r\n                    }\r\n\r\n                    for (const cidadeObject of topCidades) {\r\n                        if (retorno.find(x => x.nome.includes(cidadeObject.nome)) || cidadeObject.nome.includes('Brasil') || cidadeObject.nome.includes('Remoto')) {\r\n                            continue;\r\n                        }\r\n\r\n                        retorno.push(cidadeObject);\r\n                    }\r\n                }\r\n\r\n                sessionStorage.setItem(chaveLocalStorageCidadesSugestoes, JSON.stringify(retorno));\r\n            } else {\r\n                retorno = sugestoesCidadesPadrao;\r\n            }\r\n        }\r\n    }\r\n    catch {\r\n        //Caso dê algum erro com o request, coloca as sugestões padrões\r\n        retorno = sugestoesCidadesPadrao;\r\n    }\r\n\r\n    if (geoData.existe) {\r\n        //Filtra a lista para não ter a mesma cidade repetida para add no topo\r\n        retorno = retorno.filter(x => !x.nome.includes(geoData.cidadeCompleta));\r\n        retorno.unshift({ nome: geoData.cidadeCompleta });\r\n    }\r\n\r\n    //Callback para indicar apenas que finalizou toda operação de request\r\n    if (cb != null) { cb(); }\r\n\r\n    return retorno;\r\n}\r\n\r\nexport function adicionarSugestaoCidade(nome, adicionarNoTopoLista = false){\r\n    if(nome == null || nome.trim().length == 0){\r\n        return;\r\n    }\r\n    \r\n    let arrayDados = [];\r\n    const dadoParaInserir = { nome };    \r\n    const dadosSalvos = obterSugestoesCidades();\r\n\r\n    if(dadosSalvos != null && dadosSalvos.length > 0)\r\n    {\r\n        //Se houver um dado igual não adiciona\r\n        if(dadosSalvos.filter(dado => dado.nome.includes(dadoParaInserir.nome)).length > 0){\r\n            return;\r\n        }\r\n        arrayDados = dadosSalvos;\r\n    }\r\n\r\n    if(adicionarNoTopoLista){\r\n        arrayDados.unshift(dadoParaInserir);\r\n    }else {\r\n        arrayDados.push(dadoParaInserir);\r\n    }\r\n    localStorage.setItem(chaveLocalStorageCidadesSugestoes, JSON.stringify(arrayDados));\r\n}\r\n\r\nexport function removerSugestaoCidade(nome){\r\n    const dadosSalvos = obterSugestoesCidades();\r\n\r\n    if(dadosSalvos == null || dadosSalvos.length == 0)\r\n    {\r\n        return;\r\n    }\r\n    const dadosSalvosNovo = dadosSalvos.filter(x => x.nome != nome);\r\n    localStorage.setItem(chaveLocalStorageCidadesSugestoes, JSON.stringify(dadosSalvosNovo));\r\n}\r\n\r\nconst templatesVagaBuscasRecentes = {\r\n    headerListagem(container){\r\n        const info = document.createElement('div');\r\n        info.setAttribute(\"class\", \"d-flex justify-content-between px-4 pt-3 pb-2\");\r\n        info.innerHTML = `\r\n            <span class=\"text-muted\" style=\"text-overflow: ellipsis; white-space: nowrap; overflow: hidden;\">\r\n                <small>${i18next.t('TemplateVagaBuscasRecentes')}</small>\r\n            </span>\r\n        `;\r\n        container.prepend(info);\r\n    },\r\n    async itemCargoListagem(elemento, data){        \r\n        elemento.setAttribute('class', `busca_${data.value.id}`);\r\n        elemento.style = \"display: flex; justify-content: space-between;\";\r\n        elemento.innerHTML = `\r\n                    <span style=\"text-overflow: ellipsis; white-space: nowrap; overflow: hidden;\">\r\n                        <small>${data.match}</small>\r\n                    </span>\r\n                    <span style=\"margin-right: -15px; display: flex; align-items: center; font-size: 13px; font-weight: 100; text-transform: uppercase; color: rgba(0,0,0,.2);\">\r\n                        <button data-id=\"${data.value.id}\" type=\"button\" class=\"fechar-modal btn-remove-busca-recente\"><i class=\"bi bi-x-circle\"></i></button>\r\n                    </span>`\r\n                ;\r\n        elemento.querySelectorAll('.btn-remove-busca-recente').forEach(el => el.addEventListener('click', () => {\r\n            //Remove do localStorage baseado na busca id\r\n            const buscaId = el.dataset.id;\r\n            vagasBuscasRecentesCargoRemover(buscaId);\r\n            document.querySelector(`.busca_${buscaId}`).remove();\r\n        }));\r\n\r\n    },\r\n    async itemLocalizacaoListagem(elemento, data){\r\n        let htmlElemento = '';\r\n\r\n        elemento.style = \"display: flex; justify-content: space-between;\";\r\n        elemento.innerHTML = `\r\n            <span style=\"text-overflow: ellipsis; white-space: nowrap; overflow: hidden;\">\r\n                <small>${data.match}</small>\r\n            </span>`;\r\n\r\n        //Se for um elemento que seja de busca recente (para nao confundir com a listagem de cidades normal) adiciona botão de remover\r\n        if(data.value.buscaRecente != undefined && data.value.buscaRecente){\r\n            elemento.setAttribute('class', `busca_${data.value.id}`);\r\n            elemento.innerHTML += `            \r\n                <span style=\"margin-right: -15px; display: flex; align-items: center; font-size: 13px; font-weight: 100; text-transform: uppercase; color: rgba(0,0,0,.2);\">\r\n                    <button data-id=\"${data.value.id}\" type=\"button\" class=\"fechar-modal btn-remove-busca-recente-localizacao\"><i class=\"bi bi-x-circle\"></i></button>\r\n                </span>\r\n            `;\r\n            elemento.querySelectorAll('.btn-remove-busca-recente-localizacao').forEach(el => el.addEventListener('click', () => {\r\n                //Remove do localStorage baseado na busca id\r\n                const buscaId = el.dataset.id;\r\n                vagasBuscasRecentesLocalizacaoRemover(buscaId);\r\n                document.querySelector(`.busca_${buscaId}`).remove();\r\n            }));\r\n        }\r\n    }\r\n};\r\n\r\nexport async function autocompleteBuscaRecenteLocalizacao(formHeaderBuscarVagas, seletorInput = '#localizacao', sugestoes = []) {\r\n\r\n    const { default: autoComplete } = await import('@tarekraafat/autocomplete.js');\r\n\r\n    let sugestoesCidades = [];\r\n    let buscasRecentesLocalizacao = vagasBuscasRecentesLocalizacaoObter();\r\n\r\n    let exibirSugestoesCidades = true;\r\n    let exibindoCidadesAPI = false;\r\n\r\n    const autoCompleteLocalizacao = new autoComplete({\r\n        diacritics: true, //entender sinais agudos e etc\r\n        submit: true,\r\n        selector: seletorInput,\r\n        placeHolder: i18next.t('AutocompletePlaceholder'),\r\n        threshold: 0,\r\n        debounce: 500,\r\n        data: {\r\n            src: async (query) => {\r\n                try {\r\n                    let retorno = [];\r\n                    let querySemAcentos = query.toLowerCase();\r\n                    querySemAcentos = querySemAcentos.normalize(\"NFD\").replace(/\\p{Diacritic}/gu, \"\");\r\n\r\n                    function _dadosDoLocalStorage(){\r\n\r\n                        exibindoCidadesAPI = false;\r\n\r\n                        buscasRecentesLocalizacao = vagasBuscasRecentesLocalizacaoObter().filter(item => {\r\n                            let nomeSemAcentos = item.nome.toLowerCase();\r\n                            nomeSemAcentos = nomeSemAcentos.normalize(\"NFD\").replace(/\\p{Diacritic}/gu, \"\");\r\n                            return nomeSemAcentos.includes(querySemAcentos);\r\n                        });\r\n\r\n                        retorno = buscasRecentesLocalizacao;\r\n                        return (buscasRecentesLocalizacao != null && buscasRecentesLocalizacao.length > 0);\r\n                    }\r\n\r\n                    /*function _possuiEmSugestoesCidades(){\r\n                        // console.log('analisando de sugestões de cidades');\r\n\r\n                        const sugestoesCidadesFiltrada = sugestoesCidades.filter(item => {\r\n                            let nomeSemAcentos = item.nome.toLowerCase();\r\n                            nomeSemAcentos = nomeSemAcentos.normalize(\"NFD\").replace(/\\p{Diacritic}/gu, \"\");\r\n                            return nomeSemAcentos.includes(querySemAcentos);\r\n                        });\r\n\r\n                        return (sugestoesCidadesFiltrada != null && sugestoesCidadesFiltrada.length > 0);\r\n                    }*/\r\n\r\n                    if(query.length >= 3){\r\n                        //console.log('buscando da API');   \r\n                        \r\n                        exibindoCidadesAPI = true;\r\n                        exibirSugestoesCidades = false;\r\n\r\n                        const requestCidades = await fetch(`${URL_API}variaveis/cidades/buscarV2?query=${query}`);\r\n                        const data = await requestCidades.json();\r\n                        retorno = data.dados;\r\n\r\n                        if(retorno == null || Object.keys(retorno).length == 0){\r\n                            exibirSugestoesCidades = true;\r\n                            _dadosDoLocalStorage();\r\n                        }                        \r\n\r\n                    }else{\r\n                        exibirSugestoesCidades = true;\r\n                        _dadosDoLocalStorage();\r\n                    }\r\n\r\n                    // console.log({retorno, query});\r\n\r\n                    return retorno;\r\n                } catch (error) {\r\n                    console.log(error);\r\n                }\r\n            },\r\n            keys: [\"nome\"]\r\n        },\r\n        resultsList: {\r\n            noResults: true, //Caso não tenha itens, permite abrir a listagem contendo as sugestões de cidade\r\n            maxResults: 20,\r\n            element: (list, data) => {\r\n                let temBuscasRecentes = false;\r\n                list.setAttribute('class', 'listagem-localizacao');\r\n                // console.log(list);\r\n\r\n                //Exibe a header de buscas recentes somente quando o termo em questão está na lista\r\n                if (buscasRecentesLocalizacao.length > 0 && !exibindoCidadesAPI) {\r\n                    temBuscasRecentes = true;\r\n                    templatesVagaBuscasRecentes.headerListagem(list);\r\n                }\r\n\r\n                //Cidades destaques\r\n                if(exibirSugestoesCidades){\r\n\r\n                    if(temBuscasRecentes){\r\n                        const linhaSeparadora = document.createElement(\"hr\");\r\n                        linhaSeparadora.setAttribute(\"style\", \"margin: 5px 0 0 0;\");\r\n                        list.append(linhaSeparadora);\r\n                    }\r\n\r\n                    const headerSugestoes = document.createElement('div');\r\n                    headerSugestoes.setAttribute(\"class\", \"d-flex justify-content-between px-4 pt-3 pb-2\");\r\n                    headerSugestoes.innerHTML = `\r\n                        <span class=\"text-muted\" style=\"text-overflow: ellipsis; white-space: nowrap; overflow: hidden;\">\r\n                            <small>${i18next.t('ResultsListSugestoes')}</small>\r\n                        </span>\r\n                    `;\r\n                    list.append(headerSugestoes);\r\n                    sugestoesCidades = sugestoesCidades.concat(sugestoes);\r\n                    sugestoesCidades.reverse()\r\n\r\n                    // remove cidades duplicadas\r\n                    sugestoesCidades = sugestoesCidades.filter((seenIds => obj => !seenIds.has(obj.id) && seenIds.add(obj.id))(new Set())); \r\n\r\n                    for(let i = 0; i < sugestoesCidades.length; ++i){\r\n                        const info = document.createElement('li');\r\n                        info.setAttribute(\"style\", \"display: flex; justify-content: space-between;\");\r\n                        info.innerHTML = `\r\n                            <span style=\"text-overflow: ellipsis; white-space: nowrap; overflow: hidden;\">\r\n                                <small class=\"cidade-destaque-item\">${sugestoesCidades[i].nome}</small>\r\n                            </span>\r\n                        `;\r\n                        list.append(info);\r\n                    }\r\n                }\r\n            }\r\n        },\r\n        resultItem: {\r\n            element: (item, data) => {\r\n                templatesVagaBuscasRecentes.itemLocalizacaoListagem(item, data);\r\n            },\r\n            highlight: true\r\n        },\r\n        events: {\r\n            input: {                \r\n                selection: (event) => {\r\n                    //Se for um item que não seja preenchido em 'data'\r\n                    if(event.detail.selection.value == undefined){\r\n                        autoCompleteLocalizacao.input.value = event.target.nextSibling.querySelectorAll('.cidade-destaque-item')[event.detail.selection.index - buscasRecentesLocalizacao.length].textContent;\r\n                    }\r\n                    else {\r\n                        const objetoSelecionado = event.detail.selection.value;\r\n                        autoCompleteLocalizacao.input.value = objetoSelecionado.nome;\r\n                    }                    \r\n                },\r\n                focus: async (event) => {\r\n                    //Ao dar focus no input, inicia o autocomplete com uma pesquisa em branco carregando todas as suas buscas recentes\r\n                    const inputLocalizacao = document.querySelector(seletorInput);\r\n                    const valorAntesLoading = inputLocalizacao.value;\r\n                    inputLocalizacao.value = i18next.t('SugestoesCidadesCarregando');\r\n\r\n                    sugestoesCidades = await obterSugestoesCidades(() => {\r\n                        inputLocalizacao.value = valorAntesLoading;\r\n                        autoCompleteLocalizacao.start();\r\n                    });\r\n                }\r\n            }\r\n        }\r\n    });\r\n\r\n    if(formHeaderBuscarVagas != null){\r\n        //Evento que ao pesquisar no form header vai redirecionar para a tela de vagas\r\n        formHeaderBuscarVagas.addEventListener('submit', eventoBuscarVagaRedirect);\r\n    }\r\n\r\n    return autoCompleteLocalizacao;\r\n}\r\n\r\nexport async function tomSelectBuscaLocalizacao(selector, multiple) {\r\n    const module = await import('tom-select');\r\n    const TomSelect = module.default;\r\n    new TomSelect(selector, {\r\n        plugins: ['clear_button'],\r\n        valueField: 'nome',\r\n        labelField: 'Localizacao',\r\n        searchField: [],\r\n        maxItems: 5,\r\n        preload: true,\r\n        load: async (query, callback) => {\r\n            try {\r\n                let retorno = [];\r\n                let buscasRecentesLocalizacao = vagasBuscasRecentesLocalizacaoObter();\r\n                function _dadosDoLocalStorage(){\r\n                    const querySemAcentos = query.toLowerCase().normalize(\"NFD\").replace(/\\p{Diacritic}/gu, \"\");\r\n                    \r\n                    buscasRecentesLocalizacao = vagasBuscasRecentesLocalizacaoObter().filter(item => {\r\n                        let nomeSemAcentos = item.nome.toLowerCase();\r\n                        nomeSemAcentos = nomeSemAcentos.normalize(\"NFD\").replace(/\\p{Diacritic}/gu, \"\");\r\n                        return nomeSemAcentos.includes(querySemAcentos);\r\n                    });\r\n\r\n                    retorno = buscasRecentesLocalizacao;\r\n                    return (buscasRecentesLocalizacao != null && buscasRecentesLocalizacao.length > 0);\r\n                }\r\n\r\n                if(query.length >= 3){\r\n                    const requestCidades = await fetch(`${URL_API}variaveis/cidades/buscar/${query}`);\r\n                    const data = await requestCidades.json();\r\n                    retorno = data.dados;\r\n\r\n                    if(retorno == null || Object.keys(retorno).length == 0){\r\n                        _dadosDoLocalStorage();\r\n                    }                        \r\n\r\n                } else \r\n                    _dadosDoLocalStorage();\r\n\r\n                callback(retorno);\r\n            } catch (error) {\r\n                console.log(error);\r\n            }\r\n        },\r\n        onInitialize: function() {\r\n            // Se já houver algum valor selecionado, remove o placeholder\r\n            // Lembrando que para \"multiple\" esse valor será array.\r\n            const currentValue = this.getValue();\r\n            \r\n            const hasValue = Array.isArray(currentValue)\r\n                ? currentValue.length > 0\r\n              : !!currentValue; // para single\r\n            \r\n            if (hasValue) {\r\n                this.settings.placeholder = '';\r\n                this.control_input.setAttribute('placeholder', '');\r\n            }\r\n        },\r\n        onChange: function(value) {\r\n\r\n            let hasValue = false;\r\n\r\n            if (Array.isArray(value)) {\r\n                hasValue = value.length > 0;\r\n            } else {\r\n                hasValue = !!value;\r\n            }\r\n\r\n            if (hasValue) {\r\n                this.settings.placeholder = '';\r\n                this.control_input.setAttribute('placeholder', '');\r\n            } else {\r\n                this.settings.placeholder = 'Procurar cidade...';\r\n                this.control_input.setAttribute('placeholder', 'Procurar cidade...');\r\n            }\r\n\r\n            if (isNullOrEmpty(value) && (typeof avisoAssuntoSelecionado !== 'undefined' && avisoAssuntoSelecionado)) {\r\n                avisoAssuntoSelecionado?.classList.add('d-none');\r\n                todoFormulario?.classList.add('d-none');\r\n                document.getElementById('row-assunto-subcategoria')?.classList.add('d-none');\r\n                return;\r\n            }\r\n            getFetch(`/${CULTURE_EMPREGARE}/PaginasEstaticas/ObterAssuntoSubcategorias?assuntoCategoriaID=` + value,\r\n                (resultado) => {\r\n\r\n                    if(!resultado.dados)\r\n                        return;\r\n\r\n                    let opcoesSubcategorias = resultado.dados;\r\n\r\n\r\n                    if (opcoesSubcategorias.length > 0  && (typeof selectAssuntoSubcategoria !== 'undefined' && selectAssuntoSubcategoria)) {\r\n\r\n                        selectAssuntoSubcategoria.clear(); //atual seleção\r\n                        selectAssuntoSubcategoria.clearOptions();\r\n                        selectAssuntoSubcategoria.addOptions(opcoesSubcategorias);\r\n\r\n                        if (opcoesSubcategorias.length == 1) {\r\n                            document.getElementById('row-assunto-subcategoria').classList.add('d-none');\r\n                            selectAssuntoSubcategoria.setValue(opcoesSubcategorias[0].ID);\r\n                        } else {\r\n                            document.getElementById('row-assunto-subcategoria').classList.remove('d-none');\r\n                            todoFormulario.classList.add('d-none');\r\n                            avisoAssuntoSelecionado.classList.add('d-none');\r\n                        }\r\n                    }\r\n\r\n                },\r\n                (erro) => {\r\n                    console.log(erro);\r\n                }\r\n            );\r\n        },\r\n        onItemAdd: function(value, item) {\r\n\r\n            function clearDynamicOptions(tomSelectInstance) {\r\n                // Pega todas as chaves (valores) das opções carregadas.\r\n                const allOptionKeys = Object.keys(tomSelectInstance.options);\r\n              \r\n                // Pega os itens selecionados. Pode vir como string (single) ou array (multiple).\r\n                let selectedKeys = tomSelectInstance.getValue();\r\n              \r\n                // Garante que `selectedKeys` seja um array para comparar.\r\n                if (!Array.isArray(selectedKeys)) {\r\n                  selectedKeys = selectedKeys ? [selectedKeys] : [];\r\n                }\r\n              \r\n                for (const key of allOptionKeys) {\r\n                  const opt = tomSelectInstance.options[key];\r\n                    \r\n                  if (opt.ispermanent !== \"true\") {\r\n                    // ...e NÃO está selecionado, removemos.\r\n                    if (!selectedKeys.includes(key)) {\r\n                      tomSelectInstance.removeOption(key);\r\n                    }\r\n                  }\r\n                }\r\n              }\r\n            // Limpa o texto que sobrou\r\n            this.setTextboxValue('');\r\n            this.close();\r\n\r\n            clearDynamicOptions(this);\r\n        },\r\n        render: {\r\n            option: function (data, escape) {\r\n                console.log(data)\r\n                return `\r\n                    <div class=\"\">\r\n                        <p class=\"mb-0\">${escape(data.nome)}</p>\r\n                    </div>\r\n                `;\r\n            },\r\n            item: function (data, escape) {\r\n                console.log(data)\r\n                return '<div title=\"' + escape(data.nome) + '\">' + escape(data.nome) + '</div>';\r\n            }\r\n        }\r\n    });\r\n}\r\n\r\nexport async function autocompleteBuscaRecenteCargo(form, seletorInput = 'input[name=\"cargo\"]'){\r\n    const { default: autoComplete } = await import('@tarekraafat/autocomplete.js');\r\n    \r\n    const autocompleteCargo = new autoComplete({\r\n        diacritics: true,\r\n        submit: true,\r\n        selector: ()  => form.querySelector(seletorInput),\r\n        threshold: 0,\r\n        data: {\r\n            src: async (query) => {\r\n                try {\r\n                    //console.log(query);\r\n                    const dadosBuscasRecentes = vagasBuscasRecentesCargoObter();\r\n                    const listaFiltradaBuscasRecentes = dadosBuscasRecentes.filter(x => x.cargo.includes(query));\r\n                    return listaFiltradaBuscasRecentes;\r\n                } catch (error) {\r\n                    console.log(error);\r\n                }\r\n            },\r\n            keys: ['cargo']\r\n            // cache: true,\r\n        },\r\n        resultsList: {\r\n            element: (list, data) => {\r\n                if (vagasBuscasRecentesCargoObter().length > 0) {\r\n                    templatesVagaBuscasRecentes.headerListagem(list);\r\n                }\r\n            }\r\n        },\r\n        resultItem: {\r\n            element: (item, data) => {\r\n                templatesVagaBuscasRecentes.itemCargoListagem(item, data);\r\n            },\r\n            highlight: true,\r\n        },\r\n        events: {\r\n            input: {\r\n                selection: (event) => {\r\n                    const objetoSelecionado = event.detail.selection.value;\r\n                    autocompleteCargo.input.value = objetoSelecionado.cargo;\r\n                },\r\n                focus: (event) => {\r\n                    //Ao dar focus no input, inicia o autocomplete com uma pesquisa em branco carregando todas as suas buscas recentes\r\n                    autocompleteCargo.start('');\r\n                }\r\n            }\r\n        }\r\n    });\r\n\r\n}\r\n\r\nfunction vagasBuscasRecentesCargoObter()\r\n{\r\n    const dadosSalvos = localStorage.getItem(chaveLocalStorageBuscasRecentesCargo);\r\n    if(dadosSalvos == null || dadosSalvos == undefined){\r\n        return [];\r\n    }\r\n    return JSON.parse(dadosSalvos) ?? [];\r\n}\r\n\r\nfunction vagasBuscasRecentesLocalizacaoObter()\r\n{\r\n    const dadosSalvos = localStorage.getItem(chaveLocalStorageBuscasRecentesLocalizacao);\r\n    if(dadosSalvos == null || dadosSalvos == undefined){\r\n        return [];\r\n    }\r\n    return JSON.parse(dadosSalvos) ?? [];\r\n}\r\n\r\nfunction vagasBuscasRecentesCargoRemover(id)\r\n{    \r\n    const dadosSalvos = vagasBuscasRecentesCargoObter();\r\n\r\n    if(dadosSalvos == null || dadosSalvos.length == 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    const dadosSalvosNovo = dadosSalvos.filter(x => x.id != id);\r\n    localStorage.setItem(chaveLocalStorageBuscasRecentesCargo, JSON.stringify(dadosSalvosNovo));    \r\n}\r\n\r\nfunction vagasBuscasRecentesLocalizacaoRemover(id)\r\n{    \r\n    const dadosSalvos = vagasBuscasRecentesLocalizacaoObter();\r\n\r\n    if(dadosSalvos == null || dadosSalvos.length == 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    const dadosSalvosNovo = dadosSalvos.filter(x => x.id != id);\r\n    localStorage.setItem(chaveLocalStorageBuscasRecentesLocalizacao, JSON.stringify(dadosSalvosNovo));    \r\n}\r\n\r\nexport function vagasBuscasRecentesCargoAdicionar(cargo)\r\n{\r\n    if(cargo == null || cargo.trim().length == 0){\r\n        return;\r\n    }\r\n    let arrayDados = [];\r\n    const dadoParaInserir = { id: uuid(), cargo };    \r\n    const dadosSalvos = vagasBuscasRecentesCargoObter();\r\n\r\n    if(dadosSalvos != null && dadosSalvos.length > 0)\r\n    {\r\n        console.log(dadosSalvos.filter(dado => dado.cargo.includes(dadoParaInserir.cargo)));\r\n        //Se houver um dado igual não adiciona\r\n        if(dadosSalvos.filter(dado => dado.cargo.includes(dadoParaInserir.cargo)).length > 0){\r\n            return;\r\n        }\r\n        arrayDados = dadosSalvos;\r\n    }\r\n\r\n    arrayDados.push(dadoParaInserir);\r\n    localStorage.setItem(chaveLocalStorageBuscasRecentesCargo, JSON.stringify(arrayDados));\r\n}\r\n\r\nexport function vagasBuscasRecentesLocalizacaoAdicionar(localizacao)\r\n{\r\n    if(localizacao == null || localizacao.trim().length == 0){\r\n        return;\r\n    }\r\n    let arrayDados = [];\r\n    const dadoParaInserir = { id: uuid(), nome: localizacao, buscaRecente: true };    \r\n    const dadosSalvos = vagasBuscasRecentesLocalizacaoObter();\r\n\r\n    if(dadosSalvos != null && dadosSalvos.length > 0)\r\n    {\r\n        //Se houver um dado igual não adiciona\r\n        if(dadosSalvos.filter(dado => dado.nome.includes(dadoParaInserir.nome)).length > 0){\r\n            return;\r\n        }\r\n        arrayDados = dadosSalvos;\r\n    }\r\n\r\n    arrayDados.push(dadoParaInserir);\r\n    localStorage.setItem(chaveLocalStorageBuscasRecentesLocalizacao, JSON.stringify(arrayDados));\r\n}\r\n\r\nexport function eventoBuscarVagaRedirect(e) {\r\n    e.preventDefault();\r\n    const inputCargo = e.target.querySelector('input[name=\"cargo\"]').value;\r\n    const inputLocalizacao = e.target.querySelector('input[name=\"localizacao\"]').value;\r\n    \r\n    vagasBuscasRecentesCargoAdicionar(inputCargo);\r\n    vagasBuscasRecentesLocalizacaoAdicionar(inputLocalizacao);\r\n    \r\n    location.href = `/${CULTURE_EMPREGARE}/vagas?query=${inputCargo}&localidade=${inputLocalizacao}`;\r\n}\r\n","import { validarResultado } from \"./validarResultado\";\r\n\r\nexport async function getFetch(url, callbackSucesso, callbackErro, callbackErroConexao, exibirToastErroConexao, exibirToastErroServidor) {\r\n    const retorno = await fetch(url, {\r\n        method: \"GET\",\r\n        headers: {\r\n            'Content-Type': 'application/json',\r\n        }\r\n    });\r\n\r\n    return validarResultado(retorno, callbackSucesso, callbackErro, callbackErroConexao, exibirToastErroConexao, exibirToastErroServidor);\r\n}\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","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 obterCookie(name) {\r\n    var nameEQ = name + \"=\";\r\n    var ca = document.cookie.split(';');\r\n    for (var i = 0; i < ca.length; i++) {\r\n        var c = ca[i];\r\n        while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\r\n    }\r\n    return null;\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}","import { isNullOrEmpty } from \"./isNullOrEmpty\";\r\nimport { obterQueryString } from \"./obterQueryString\";\r\n\r\nexport function obterOrigem() {\r\n    let origem = document.referrer.split('/')[2];\r\n    if (isNullOrEmpty(origem)) {\r\n        origem = obterQueryString().source;\r\n    }\r\n    if (isNullOrEmpty(origem)) {\r\n        origem = obterQueryString()['utm_source'];\r\n    }\r\n    return origem;\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 { validarResultado } from \"./validarResultado\";\r\n\r\nexport async function postFetch(url, body, callbackSucesso, callbackErro, callbackErroConexao, exibirToastErroConexao, exibirToastErroServidor, headers = { }) {\r\n    const retorno = await fetch(url, {\r\n        method: 'POST',\r\n        body: body,\r\n        headers,\r\n    });\r\n\r\n    return validarResultado(retorno, callbackSucesso, callbackErro, callbackErroConexao, exibirToastErroConexao, exibirToastErroServidor);\r\n}\r\n","export function salvarCookie(name, value, days) {\r\n    var expires = \"\";\r\n    if (days) {\r\n        var date = new Date();\r\n        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n        expires = \"; expires=\" + date.toUTCString();\r\n    }\r\n    document.cookie = name + \"=\" + (value || \"\") + expires + \"; path=/\";\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","import { Notify } from \"notiflix/build/notiflix-notify-aio\";\r\n\r\nexport async function toastSucesso(mensagem) {\r\n    Notify.success(mensagem);\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}","export function uuid(){\r\n    var dt = new Date().getTime();\r\n    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n        var r = (dt + Math.random()*16)%16 | 0;\r\n        dt = Math.floor(dt/16);\r\n        return (c=='x' ? r :(r&0x3|0x8)).toString(16);\r\n    });\r\n    return uuid;\r\n}","import { toastErroCarregar } from \"./toastErroCarregar\";\r\nimport { inicializarInternacionalizacao } from \"../localizacao/global/global\";\r\nimport i18next from \"i18next\";\r\n\r\nexport async function validarResultado(retorno, callbackSucesso, callbackErro, callbackErroConexao, exibirToastErroConexao = true, exibirToastErroServidor = true) {\r\n    if (retorno.status != 200) {\r\n\r\n        if (exibirToastErroConexao) {\r\n            inicializarInternacionalizacao()\r\n            toastErroCarregar(i18next.t('ErroConexaoGenerico'));\r\n        }\r\n\r\n        return callbackErroConexao ? callbackErroConexao() : null;\r\n    }\r\n\r\n    const resultados = await retorno.json();\r\n\r\n    if (resultados.sucesso || resultados.Sucesso) {\r\n        return callbackSucesso(resultados);\r\n    }\r\n\r\n\r\n    if (exibirToastErroServidor)\r\n        toastErroCarregar(resultados.mensagem);\r\n\r\n    return callbackErro ? callbackErro(resultados) : null;\r\n\r\n\r\n\r\n}\r\n","import i18next from 'i18next';import resource_0 from \"./vagas-detalhes.ptbr.json\" assert { type: 'JSON' };import resource_1 from \"./vagas-detalhes.es.json\" assert { type: 'JSON' };import resource_2 from \"./vagas-detalhes.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);}","\r\nimport { toastSucesso } from './utilidades/toastSucesso';\r\nimport { toastErroCarregar } from './utilidades/toastErroCarregar';\r\nimport { getFetch } from './utilidades/getFetch';\r\nimport { postFetch } from './utilidades/postFetch';\r\nimport { obterQueryString } from './utilidades/obterQueryString';\r\nimport { obterOrigem } from './utilidades/obterOrigem';\r\nimport { obterDispositivo } from './utilidades/obterDispositivo';\r\nimport { loadFullPage } from './utilidades/loadFullPage';\r\nimport { obterCookie } from './utilidades/obterCookie';\r\nimport { isNullOrEmpty } from './utilidades/isNullOrEmpty';\r\nimport { salvarCookie } from './utilidades/salvarCookie';\r\nimport { inicializarInternacionalizacao } from './localizacao/vagas-detalhes/vagas-detalhes';\r\nimport { addTrack } from './utilidades/trackEventos';\r\nimport { salvarCandidaturaPendente, removerCandidaturaPendente } from './utilidades/candidaturaPendente';\r\n\r\nimport { Confirm } from 'notiflix/build/notiflix-confirm-aio';\r\nimport { Report } from 'notiflix/build/notiflix-report-aio';\r\nimport { AlertaVaga } from './utilidades/alertaVaga';\r\nimport { templateCardAlertaVagas } from './componentes/alertaVagas/templatesAlertaVaga';\r\n\r\nimport i18next from 'i18next';\r\n\r\nimport { localBanner, banner } from './utilidades/banner'\r\n\r\n\r\nconst vagaDetalhes = function () {\r\n\r\n    const nomeEmpresa = document.getElementById(\"nomeEmpresa\").value;\r\n    const vagaID = document.getElementById('VagaID').value;\r\n    const vagaTitulo = document.getElementById('VagaTitulo').value;\r\n    const vagaCidadesSeparadas = document.getElementById('VagaCidadesSeparadas').value;\r\n    const vagaCidadesSeparadasVirgula = document.getElementById('VagaCidadesSeparadasVirgula').value;\r\n    const vagaCargo = document.getElementById('VagaCargo').value;\r\n    const vagaUrl = document.getElementById('VagaURL').value;\r\n    const variasCidades = document.getElementById('VariasCidades') ? document.getElementById('VariasCidades').value == 'True' : 'False';\r\n    const $containerInscrevase = document.getElementById('container-candidatar');\r\n    //const $containerInscrevaseRodape = document.getElementById('container-candidatar-rodape');\r\n    const $containerInscrevaseStick = document.getElementById('container-candidatar-stick');\r\n\r\n    const _modalCompartilharCopiarLink = function () {\r\n        const textoLinkVaga = document.querySelector('.texto-link-vaga');\r\n        const btnCopiarLinkVaga = document.querySelector('.btn-copiar-link-vaga');\r\n\r\n        function _copiarLink() {\r\n            navigator.clipboard\r\n                .writeText(textoLinkVaga.innerText)\r\n                .then(() => {\r\n                    toastSucesso(i18next.t('ModalCompartilharLinkVagaCopiado'));\r\n                })\r\n                .catch(() => {\r\n                    toastErroCarregar(i18next.t('ModalCompartilharErroCopiarLink'));\r\n                });\r\n        }\r\n        btnCopiarLinkVaga.addEventListener('click', () => _copiarLink());\r\n        textoLinkVaga.addEventListener('click', () => _copiarLink());\r\n    };\r\n    const _modalCompartilhar = function () {\r\n\r\n        if (navigator.share && obterDispositivo() != \"Desktop\") {\r\n            navigator.share({\r\n                title: `Empregare.com - ${document.getElementById('VagaTitulo').value}`,\r\n                url: vagaUrl\r\n            }).then(() => {\r\n\r\n            }).catch((erro) => {\r\n                console.log('Erro navigator share: ');\r\n                console.log(erro);\r\n            });\r\n\r\n\r\n        } else {\r\n            const $modalCompartilhar = new bootstrap.Modal(document.getElementById('modalDivulgacao'), {});\r\n            $modalCompartilhar.show();\r\n\r\n\r\n        }\r\n        addTrack('Compartilhar Vaga', { vagaID: vagaID });\r\n\r\n    };\r\n    const _modalSelecaoCega = function (tab) {\r\n        document.querySelector('#tabsInfoSelecaoCega button[data-bs-target=\"' + tab + '\"]').dispatchEvent(new Event('click'));\r\n    };\r\n    const _modalCandidatarLogin = function () {\r\n        const $modalCandidatar = bootstrap.Modal.getInstance(document.getElementById('modal-candidatar'));\r\n        $modalCandidatar.hide();\r\n\r\n        document.querySelector('.btn-login').click();\r\n\r\n        //document.getElementById('load-form-login').classList.remove('d-none');\r\n        //document.getElementById('box-mostrar-login').classList.add('d-none');\r\n    };\r\n\r\n    const _insights = async function (pessoaID) {\r\n\r\n        if (obterQueryString().confirmar === '1') {\r\n            return;\r\n        }\r\n        let formData = new FormData();\r\n        formData.append('vagaID', vagaID);\r\n        formData.append('origem', obterOrigem());\r\n        formData.append('pessoaID', pessoaID);\r\n        formData.append('url', window.location.hostname);\r\n        formData.append('dispositivo', obterDispositivo());\r\n\r\n        await fetch(`/${CULTURE_EMPREGARE}/Vagas/SalvarVisualizacao`, {\r\n            method: 'POST',\r\n            body: formData\r\n        });\r\n\r\n        addTrack('Visualizar Vaga', { vagaID: vagaID, referer: obterOrigem(), origem: obterCookie('origemCadastro') });\r\n    };\r\n\r\n    const _cancelarCandidatura = async function (candidaturaID) {\r\n        loadFullPage.mostrar();\r\n\r\n        const callbackSucesso = (resultado) => {\r\n            loadFullPage.esconder();\r\n\r\n            Report.success(\r\n                i18next.t('CancelarCandidaturaSucesso'),\r\n                '',\r\n                i18next.t('ReportOk'),\r\n                () => {\r\n                    loadFullPage.mostrar();\r\n                    window.location.reload();\r\n                }\r\n            );\r\n\r\n        }\r\n        const callbackErro = (resultado) => {\r\n            loadFullPage.esconder();\r\n        }\r\n\r\n        let formData = new FormData();\r\n        formData.append('id', candidaturaID);\r\n\r\n        await postFetch(`/${CULTURE_EMPREGARE}/PainelCandidaturas/CancelarCandidatura`, formData, callbackSucesso, callbackErro, callbackErro);\r\n    };\r\n    const _confirmarCandidatura = async function () {\r\n        loadFullPage.mostrar();\r\n        const callbackSucesso = (resultado) => {\r\n            loadFullPage.esconder();\r\n\r\n\r\n            if (resultado.id > 0) {\r\n                addTrack('Inscricao Vaga', { finalizouCandidatura: true, vagaID: vagaID });\r\n\r\n                removerCandidaturaPendente(false);\r\n\r\n                const $modalConfirmarCandidatura = bootstrap.Modal.getInstance(document.getElementById('modal-confirmar-candidatura'));\r\n\r\n                if ($modalConfirmarCandidatura) {\r\n                    $modalConfirmarCandidatura.hide();\r\n                }\r\n\r\n\r\n                if (resultado.questionario) {\r\n                    Report.success(\r\n                        i18next.t('ConfirmarCandidaturaSucesso'),\r\n                        i18next.t('ConfirmarCandidaturaQuestionario'),\r\n                        i18next.t('ConfirmarCandidaturaResponderQuestionario'),\r\n                        () => {\r\n                            loadFullPage.mostrar();\r\n                            window.location.href = `/${CULTURE_EMPREGARE}/candidato/questionarios/${vagaID}_${resultado.id}?inscricao=${vagaID}`;\r\n                        }\r\n                    );\r\n                } else {\r\n\r\n                    _botaoCandidatar();\r\n\r\n                    Report.success(\r\n                        i18next.t('ConfirmarCandidaturaSucesso'),\r\n                        i18next.t('ConfirmarCandidaturaInscricaoRealizada'),\r\n                        i18next.t('ReportOk'),\r\n                        () => {\r\n\r\n                        }\r\n                    );\r\n                    //Confirm.init({\r\n                    //    className: \"confirm-empregare\",\r\n                    //    titleColor: \"#018100\",\r\n                    //    okButtonColor: \"#ffffff\",\r\n                    //    width: '350px',\r\n                    //    okButtonBackground: \"#018100\",                       \r\n                    //    cancelButtonColor: \"#f8f8f8\",\r\n                    //});\r\n                    //Confirm.show(\r\n                    //    i18next.t('ConfirmarCandidaturaSucesso'),\r\n                    //    i18next.t('ConfirmarCandidaturaInscricaoRealizada'),\r\n                    //    i18next.t('ConfirmarCandidaturaRevisarCurriculo'),\r\n                    //    i18next.t('ConfirmarCandidaturaVisualizarCandidatura'),\r\n                    //    () => {\r\n                    //        loadFullPage.mostrar();\r\n                    //        window.location.href = `/${CULTURE_EMPREGARE}/candidato/curriculo?inscricao=${vagaID}`;\r\n                    //    },\r\n                    //    () => {\r\n                    //        loadFullPage.mostrar();\r\n                    //        window.location.href = `/${CULTURE_EMPREGARE}/candidato/inscricao_${resultado.id}?inscricao=${resultado.vagaID}`;\r\n                    //    },\r\n                    //    {},\r\n                    //);\r\n                }\r\n\r\n            } else {\r\n                if (resultado.retorno === 'CidadeNaoSelecionada') {\r\n                    Report.warning(\r\n                        i18next.t('CidadeNaoSelecionadaAtencao'),\r\n                        resultado.retornoMensagem,\r\n                        i18next.t('ReportOk'),\r\n                    );\r\n                } else {\r\n                    const $modalConfirmarCandidatura = bootstrap.Modal.getInstance(document.getElementById('modal-confirmar-candidatura'));\r\n                    if ($modalConfirmarCandidatura) {\r\n                        $modalConfirmarCandidatura.hide();\r\n                    }\r\n                    _montaBotaoCandidatar(resultado);\r\n                }\r\n            }\r\n        }\r\n        const callbackErro = (resultado) => {\r\n            loadFullPage.esconder();\r\n        }\r\n\r\n        const source = obterCookie('origemCadastro');\r\n        const origem = obterOrigem();\r\n        const dispositivo = obterDispositivo();\r\n\r\n        let formData = new FormData(document.getElementById('form-confirmar-inscricao'));\r\n        formData.append('id', vagaID);\r\n        formData.append('source', source);\r\n        formData.append('referer', origem);\r\n        formData.append('dispositivo', dispositivo);\r\n\r\n        await postFetch(`/${CULTURE_EMPREGARE}/Vagas/ConfirmarCandidatura`, formData, callbackSucesso, callbackErro, callbackErro);\r\n\r\n    };\r\n    const _redirecionarNovoCadastro = function () {\r\n        loadFullPage.mostrar();\r\n        window.location.href = `/${CULTURE_EMPREGARE}/cadastrar-curriculo`;\r\n\r\n    };\r\n\r\n    const _montaBotaoCandidatar = (resultado) => {\r\n        let gatilho = '';\r\n        let botaoCandidatarHtml = '';\r\n        if (!isNullOrEmpty(resultado.gatilho.titulo)) {\r\n            gatilho = `<small class=\"gatilho-mental p-3 text-muted\">${resultado.gatilho.icone} ${resultado.gatilho.titulo}</small>`;\r\n        }\r\n\r\n     \r\n\r\n\r\n        switch (resultado.retorno) {\r\n            case \"VagaEncerrada\":\r\n                $containerInscrevase.innerHTML = `<div class=\"alert alert-danger mb-0\">\r\n                        <h5>${i18next.t('VagaEncerradaNaoRecebeCurriculos')}</h5>\r\n                        <p class=\"mt-3 mb-0\">${i18next.t('VagaEncerradaPossiveisMotivos')}</p>\r\n                        <ul class=\"mb-0\">\r\n                            <li>${i18next.t('VagaEncerradaFechadaOuEncerrada')}</li>\r\n                            <li>${i18next.t('VagaEncerradaAtingiuDataExpiracao')}</li>\r\n                            <li>${i18next.t('VagaEncerradaVagaCancelada')}</li>\r\n                        </ul>\r\n                    </div>`;\r\n                const btnModalCompartilhar = document.querySelectorAll('.btn-abrir-modal-divulgacao');\r\n                btnModalCompartilhar.forEach(el => el.classList.add('d-none'));\r\n\r\n                removerCandidaturaPendente(false);\r\n                document.getElementById('VagaStatus').value = resultado.retorno;\r\n                return;\r\n            case \"NaoLogado\":\r\n\r\n                botaoCandidatarHtml = `<button type=\"button\" title=\"${i18next.t('BotaoCandidatarSeVaga')}\" class=\"btn btn-primary btn-fullwidth-mobile btn-candidatarse\"><i class=\"bi bi-clipboard-check\"></i> ${i18next.t('BotaoCandidatarSe')}</button>${gatilho}`;\r\n                $containerInscrevase.innerHTML = botaoCandidatarHtml;\r\n                // $containerInscrevaseRodape.querySelector('#container-candidatar-rodape-btn').innerHTML = botaoCandidatarHtml;\r\n                //  $containerInscrevaseRodape.classList.remove('d-none');\r\n\r\n                const btnCandidatar = document.querySelectorAll('.btn-candidatarse');\r\n\r\n                btnCandidatar.forEach(el => el.addEventListener('click', () => {\r\n                    document.querySelector('.btn-login').click();\r\n                    addTrack('Inscricao Vaga', { finalizouCandidatura: false, vagaID: vagaID });\r\n                    salvarCandidaturaPendente(vagaID, vagaTitulo, vagaUrl, false);\r\n                }));\r\n\r\n                _stickyTopScrollDetalhesVaga($containerInscrevase, $containerInscrevaseStick, 'NaoLogado');\r\n                return;\r\n            case \"CurriculoIncompleto\":\r\n                $containerInscrevase.innerHTML = `<div class=\"alert alert-warning mb-0\">\r\n                        <h5>${i18next.t('CurriculoIncompleto')}</h5>\r\n                        <p class=\"mb-1\">${i18next.t('CurriculoIncompletoTexto')}</p>\r\n                        <p class=\"mb-1\">${i18next.t('CurriculoIncompletoEfetueMudancas')}</p>\r\n                        <button type=\"button\" class=\"btn btn-warning text-light btn-curriculo-incompleto\"><i class=\"bi bi-file-earmark-text\" aria-hidden=\"true\"></i> ${i18next.t('CurriculoIncompletoBotao')}</button>\r\n                    </div>`;\r\n                if ($containerInscrevase.querySelector('.btn-curriculo-incompleto') != undefined) {\r\n                    $containerInscrevase.querySelector('.btn-curriculo-incompleto').addEventListener('click', async (e) => {\r\n                        loadFullPage.mostrar();\r\n                        await salvarCandidaturaPendente(vagaID, vagaTitulo, vagaUrl, true);\r\n                        window.location.href = `/${CULTURE_EMPREGARE}/candidato/curriculo-incompleto`;\r\n                    });\r\n                }\r\n                return;\r\n            case \"CurriculoNaoPermitido\":\r\n            case \"CurriculoNaoExiste\":\r\n            case \"LimiteUltrapassado\":\r\n            case \"SomenteColaboradores\":\r\n            case \"SomenteCandidatos\":\r\n            case \"DeficienciaObrigatoria\":\r\n            case \"AlunoNaoEncontrado\":\r\n            case \"AlunoExAluno\":\r\n\r\n                var mensagem = resultado.retornoMensagem;\r\n                if (nomeEmpresa) {\r\n                    mensagem = mensagem.replace(\"##nomeEmpresa##\", nomeEmpresa);\r\n                } else {\r\n                    // Se o ##nomeEmpresa## n�o existir, fazer a substitui��o por uma string vazia\r\n                    mensagem = mensagem.replace(\"##nomeEmpresa##\", \"\");\r\n                }\r\n                $containerInscrevase.innerHTML = `<div class=\"alert alert-warning mb-0\">\r\n                        <h5><i class=\"bi bi-exclamation-circle\"></i> ${i18next.t('AlunoCandidaturaBloqueada')}</h5>\r\n                        <p>${mensagem}</p>\r\n                    </div>`;\r\n\r\n                removerCandidaturaPendente(false);\r\n                document.getElementById('VagaStatus').value = resultado.retorno;\r\n                return;\r\n            case \"Inscrito\":\r\n                $containerInscrevase.innerHTML = `\r\n                        <div class=\"row\"><div class=\"col-12 text-center\"><p class=\"mb-3\"><b class=\"text-success\"><i class=\"bi bi-check2-circle\"></i> ${i18next.t('InscritoJaCandidatado')}</b><p>\r\n                        \r\n                        <a href=\"/${CULTURE_EMPREGARE}/candidato/inscricao_${resultado.id}\" class=\"btn btn-primary mb-3 btn-fullwidth-mobile\">${i18next.t('ConfirmarCandidaturaVisualizarCandidatura')}</a>\r\n                        <button type=\"button\" class=\"btn btn-outline-danger btn-cancelar mb-3 btn-fullwidth-mobile\" data-id=\"${resultado.id}\">${i18next.t('CancelarCandidatura')}</button>\r\n                </div>`;\r\n\r\n                $containerInscrevase.querySelector('.btn-cancelar').addEventListener('click', (e) => {\r\n                    const candidturaID = e.target.getAttribute('data-id');\r\n                    Confirm.show(\r\n                        i18next.t('CancelarCandidatura'),\r\n                        i18next.t('CancelarCandidaturaTexto'),\r\n                        i18next.t('CancelarCandidaturaConfirmar'),\r\n                        i18next.t('CancelarCandidaturaCancelar'),\r\n                        () => {\r\n\r\n                            _cancelarCandidatura(candidturaID);\r\n                        },\r\n                        () => { },\r\n                        {},\r\n                    );\r\n                });\r\n\r\n                removerCandidaturaPendente(false);\r\n                document.getElementById('VagaStatus').value = resultado.retorno;\r\n                return;\r\n            case \"Liberado\":\r\n            case \"Cancelado\":\r\n\r\n\r\n\r\n                if (obterQueryString().confirmar == '1') {\r\n                    const $modalConfirmarCandidatura = new bootstrap.Modal(document.getElementById('modal-confirmar-candidatura'), {});\r\n                    $modalConfirmarCandidatura.show();\r\n                }\r\n                if (variasCidades) {\r\n\r\n                    botaoCandidatarHtml = `<button type=\"button\" title=\"${i18next.t('BotaoCandidatarSeVaga')}\" class=\"btn btn-primary btn-fullwidth-mobile btn-candidatarse\" data-bs-target=\"#modal-confirmar-candidatura\" data-bs-toggle=\"modal\"><i class=\"bi bi-clipboard-check\"></i> ${i18next.t('BotaoCandidatarSe')}</button>${gatilho}`;\r\n                    $containerInscrevase.innerHTML = botaoCandidatarHtml;\r\n                    // $containerInscrevaseRodape.querySelector('#container-candidatar-rodape-btn').innerHTML = botaoCandidatarHtml;\r\n                    // $containerInscrevaseRodape.classList.remove('d-none');\r\n\r\n                    const btnCandidatar = document.querySelectorAll('.btn-candidatarse');\r\n\r\n                    btnCandidatar.forEach(el => el.addEventListener('click', async () => {\r\n                        await salvarCandidaturaPendente(vagaID, vagaTitulo, vagaUrl, true);\r\n                        addTrack('Inscricao Vaga', { finalizouCandidatura: false, vagaID: vagaID });\r\n                    }));\r\n\r\n                } else {\r\n                    botaoCandidatarHtml = `<button type=\"button\" title=\"${i18next.t('BotaoCandidatarSeVaga')}\" class=\"btn btn-primary btn-fullwidth-mobile btn-candidatarse\"><i class=\"bi bi-clipboard-check\"></i> ${i18next.t('BotaoCandidatarSe')}</button>${gatilho}`;\r\n                    $containerInscrevase.innerHTML = botaoCandidatarHtml;\r\n                    //  $containerInscrevaseRodape.querySelector('#container-candidatar-rodape-btn').innerHTML = botaoCandidatarHtml;\r\n                    //  $containerInscrevaseRodape.classList.remove('d-none');\r\n\r\n                    const btnCandidatar = document.querySelectorAll('.btn-candidatarse');\r\n\r\n                    btnCandidatar.forEach(el => el.addEventListener('click', async () => {\r\n                        _confirmarCandidatura();\r\n                    }));\r\n                }\r\n                _stickyTopScrollDetalhesVaga($containerInscrevase, $containerInscrevaseStick, 'Logado');\r\n                return;\r\n            case \"AlunoSemMatricula\":\r\n                $containerInscrevase.innerHTML = `<div class=\"alert alert-warning mb-0\">\r\n                        <h5><i class=\"bi bi-exclamation-circle\"></i> ${i18next.t('AlunoCandidaturaBloqueada')}</h5>\r\n                        <p class=\"mb-1\">${resultado.retornoMensagem}</p>\r\n                        <a class=\"btn btn-warning btn-sm text-light\" href=\"/${CULTURE_EMPREGARE}/candidato/matricula?ReturnUrl=${window.location.href}\">${i18next.t('AlunoVincularMatricula')}</a>\r\n                    </div>`;\r\n                return;\r\n            case \"Erro\":\r\n                $containerInscrevase.innerHTML = `<div class=\"alert alert-danger mb-0\">\r\n                        <h5>${i18next.t('ErroCandidatarVagaTitulo')}</h5>\r\n                        <p class=\"mb-1\">${i18next.t('ErroCandidatarVagaTexto')}</p>\r\n                        <a href=\"#\" onclick=\"window.location.reload();\" class=\"btn btn-danger text-light\">${i18next.t('ErroCandidatarVagaRecarregar')}</a>\r\n                    </div>`;\r\n\r\n                addTrack('Erro Vaga', { vagaID: vagaID });\r\n                return;\r\n            default:\r\n                return;\r\n        }\r\n    };\r\n    const _botaoCandidatar = async function () {\r\n        $containerInscrevaseStick.innerHTML = '';\r\n        document.getElementById('navbarFixadaDetalheVaga').classList.add('d-none');\r\n        const callbackSucesso = (resultado) => {\r\n            _montaBotaoCandidatar(resultado);\r\n            if (resultado.retorno != 'VagaEncerrada' && resultado.retorno != 'Inscrito') {\r\n                _insights(resultado.pessoaID);\r\n            }\r\n        }\r\n        const callbackErro = () => {\r\n            $containerInscrevase.innerHTML = `<div class=\"alert alert-danger mb-0\">\r\n                        <h5>${i18next.t('ErroCandidatarVagaTitulo')}</h5>\r\n                        <p class=\"mt-3\">${i18next.t('ErroCandidatarVagaTexto')}</p>\r\n                        <a href=\"#\" onclick=\"window.location.reload();\" class=\"btn btn-danger text-light\"><i class=\"bi bi-arrow-clockwise\"></i> ${i18next.t('ErroCandidatarVagaRecarregar')}</a>\r\n                    </div>`;\r\n        }\r\n\r\n        await getFetch(`/${CULTURE_EMPREGARE}/Vagas/BotaoCandidatar/${vagaID}`, callbackSucesso, callbackErro, callbackErro);\r\n    };\r\n\r\n    const _definirOrigemCadastro = async function () {\r\n        let source = '';\r\n\r\n        source = obterQueryString().campanha;\r\n        if (isNullOrEmpty(source)) {\r\n            source = obterQueryString().source;\r\n        }\r\n        if (isNullOrEmpty(source)) {\r\n            return;\r\n        }\r\n        salvarCookie('origemCadastro', source, 1);\r\n    };\r\n\r\n    const _stickyTopScrollDetalhesVaga = (containerInscrevase, containerInscrevaseStick, eventListner) => {\r\n        const navbarFixadaDetalheVaga = document.getElementById('navbarFixadaDetalheVaga');\r\n\r\n        const observer = new window.IntersectionObserver((e) => {\r\n            console.log(e);\r\n            if (!e[0].isIntersecting) {\r\n                navbarFixadaDetalheVaga.classList.remove('d-none');\r\n                //console.log('exibe');\r\n            } else {\r\n                navbarFixadaDetalheVaga.classList.add('d-none');\r\n                //console.log('oculta');\r\n            }\r\n        });\r\n\r\n        //Se parar de ver o card com os detalhes da vaga, exibe stick top\r\n        observer.observe(document.querySelector('.btn-candidatarse'));\r\n\r\n        containerInscrevaseStick.innerHTML = containerInscrevase.innerHTML;\r\n        const btn = containerInscrevaseStick.querySelector('button');\r\n        if (btn) {\r\n            btn.classList.add('ajuste-nav-info-vaga-btn-inscrever');\r\n            //btn.classList.remove('btn-lg');\r\n            if (eventListner == 'NaoLogado') {\r\n                btn.addEventListener('click', (e) => {\r\n                    addTrack('Inscricao Vaga', { finalizouCandidatura: false, vagaID: vagaID });\r\n                    salvarCandidaturaPendente(vagaID, vagaTitulo, vagaUrl, false);\r\n                    document.querySelector('.btn-login').click();\r\n                });\r\n            } else {\r\n                if (variasCidades) {\r\n                    btn.addEventListener('click', async (e) => {\r\n                        await salvarCandidaturaPendente(vagaID, vagaTitulo, vagaUrl, true);\r\n                        addTrack('Inscricao Vaga', { finalizouCandidatura: false, vagaID: vagaID });\r\n                    });\r\n\r\n                } else {\r\n                    btn.addEventListener('click', async (e) => {\r\n                        _confirmarCandidatura();\r\n                    });\r\n                }\r\n            }\r\n        }\r\n    };\r\n\r\n    const _atualizarContainerAlerta = evento => {\r\n        const wrapper = document.getElementById('botao-wrapper-alerta');\r\n        if (evento.type == 'alerta-excluido') {\r\n            wrapper.querySelector('h5 b').textContent = i18next.t('AlertaVagasConfigurarAlertaText');\r\n        } else if (evento.type == 'alerta-salvo') {\r\n            wrapper.querySelector('h5 b').textContent = i18next.t('AlertaVagasEditarText');\r\n        }\r\n    }\r\n\r\n    const criarBlocoAlertaVagas = async () => {\r\n        const url = `/${CULTURE_EMPREGARE}/Vagas/VerificarAlertaVagas/?vagaCargo=${vagaCargo}`;\r\n        const callbackSucesso = (data) => {\r\n            const ehUmHotsite = data.data.hotsite != null;\r\n            const hotsiteTipoExpress = 3;\r\n            const ehUmHotsiteExpress = ehUmHotsite && (data.data.hotsite != null && data.data.hotsite?.Tipo == hotsiteTipoExpress);\r\n\r\n            const vagaDetalhesContainer = document.querySelector(\"#vaga-detalhes-container\");\r\n            const blocoInformacoes = vagaDetalhesContainer?.querySelector(\".informacoes\");\r\n            const blocoAlertaVagas = blocoInformacoes?.querySelector(\".container-alerta-vagas\");\r\n            const cardAlertaVagas = blocoAlertaVagas?.querySelector(\".card-alerta-vagas\");\r\n\r\n            if((!ehUmHotsite || ehUmHotsiteExpress) && !isNullOrEmpty(vagaCargo)){\r\n                if(cardAlertaVagas){\r\n                    cardAlertaVagas.innerHTML = templateCardAlertaVagas(data.data, vagaCargo, vagaID, vagaCidadesSeparadas, vagaCidadesSeparadasVirgula);\r\n\r\n                   \r\n\r\n                    const botao = document.getElementById('botao-alerta');\r\n                    if (botao) {\r\n                        new AlertaVaga(botao);\r\n            \r\n                        const wrapperAlerta = document.getElementById('botao-wrapper-alerta');\r\n                        wrapperAlerta.addEventListener('alerta-salvo', _atualizarContainerAlerta);\r\n                        wrapperAlerta.addEventListener('alerta-excluido', _atualizarContainerAlerta);\r\n                    }\r\n                }\r\n            }\r\n            else\r\n                blocoAlertaVagas.classList.add('d-none');\r\n        };\r\n\r\n        await getFetch(url, callbackSucesso);\r\n    };\r\n\r\n    const init = function () {\r\n        banner.renderizar('banner-detalhes-vaga', localBanner.VAGA_DETALHES);\r\n\r\n        inicializarInternacionalizacao();\r\n\r\n        Confirm.init({\r\n            className: \"confirm-empregare\",\r\n            titleColor: \"#EA1F1F\",\r\n            okButtonColor: \"#f8f8f8\",\r\n            okButtonBackground: \"#EA1F1F\",\r\n            cancelButtonColor: \"#f8f8f8\",\r\n        });\r\n        _definirOrigemCadastro();\r\n        const btnModalCompartilhar = document.querySelectorAll('.btn-abrir-modal-divulgacao');\r\n        btnModalCompartilhar.forEach(el => el.addEventListener('click', () => {\r\n            _modalCompartilhar();\r\n        }));\r\n        _modalCompartilharCopiarLink();\r\n\r\n        document.querySelectorAll('.info-cega').forEach(el => el.addEventListener('click', () => {\r\n            const tabParaAbrir = el.dataset.tab;\r\n            _modalSelecaoCega(tabParaAbrir);\r\n        }));\r\n\r\n        document.getElementById('btn-login-vaga').addEventListener('click', () => {\r\n            _modalCandidatarLogin();\r\n        });\r\n        document.getElementById('btn-cadastrar-vaga').addEventListener('click', () => {\r\n            _redirecionarNovoCadastro();\r\n        });\r\n        document.getElementById('form-confirmar-inscricao').addEventListener('submit', (e) => {\r\n            _confirmarCandidatura();\r\n            e.preventDefault();\r\n        });\r\n        _botaoCandidatar();\r\n        criarBlocoAlertaVagas();\r\n\r\n        //const btnLogin = document.querySelector('.btn-login').classList;\r\n        //btnLogin.add('btn-primary');\r\n        //btnLogin.remove('btn-outline-primary');\r\n\r\n\r\n    };\r\n\r\n    return init();\r\n};\r\n\r\n// i18next.on('initialized', vagaDetalhes)\r\nvagaDetalhes();","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","/*\n* Notiflix Confirm AIO (https://notiflix.github.io)\n* Description: This file has been created automatically that using \"notiflix.js\", and \"notiflix.css\" files.\n* Version: 3.2.6\n* Author: Furkan (https://github.com/furcan)\n* Copyright 2019 - 2023 Notiflix, MIT Licence (https://opensource.org/licenses/MIT)\n*/\n\n/* global define */\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    define([], function () {\n      return factory(root);\n    });\n  } else if (typeof module === 'object' && typeof module.exports === 'object') {\n    module.exports = factory(root);\n  } else {\n    root.Notiflix = factory(root);\n  }\n})(typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this, function (window) {\n\n  'use strict';\n\n  // COMMON: SSR check: begin\n  if (typeof window === 'undefined' && typeof window.document === 'undefined') {\n    return false;\n  }\n  // COMMON: SSR check: end\n\n  // COMMON: Variables: begin\n  var notiflixNamespace = 'Notiflix';\n  var notiflixConsoleDocs = '\\n\\nVisit documentation page to learn more: https://notiflix.github.io/documentation';\n  var defaultFontFamily = '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif';\n  // COMMON: Variables: end\n\n  // CONFIRM: Default Settings: begin\n  var typesConfirm = {\n    Show: 'Show',\n    Ask: 'Ask',\n    Prompt: 'Prompt',\n  };\n  var newConfirmSettings;\n  var confirmSettings = {\n    ID: 'NotiflixConfirmWrap', // can not customizable\n    className: 'notiflix-confirm',\n    width: '300px',\n    zindex: 4003,\n    position: 'center', // 'center' - 'center-top' - 'center-bottom' - 'right-top' - 'right-center' - 'right-bottom' - 'left-top' - 'left-center' - 'left-bottom'\n    distance: '10px',\n    backgroundColor: '#f8f8f8',\n    borderRadius: '25px',\n    backOverlay: true,\n    backOverlayColor: 'rgba(0,0,0,0.5)',\n    rtl: false,\n    fontFamily: 'Quicksand',\n    cssAnimation: true,\n    cssAnimationDuration: 300,\n    cssAnimationStyle: 'fade', // 'zoom' - 'fade'\n    plainText: true,\n\n    titleColor: '#32c682',\n    titleFontSize: '16px',\n    titleMaxLength: 34,\n\n    messageColor: '#1e1e1e',\n    messageFontSize: '14px',\n    messageMaxLength: 110,\n\n    buttonsFontSize: '15px',\n    buttonsMaxLength: 34,\n    okButtonColor: '#f8f8f8',\n    okButtonBackground: '#32c682',\n    cancelButtonColor: '#f8f8f8',\n    cancelButtonBackground: '#a9a9a9',\n  };\n  // CONFIRM: Default Settings: end\n\n  // COMMON: Console Error: begin\n  var commonConsoleError = function (message) {\n    return console.error('%c ' + notiflixNamespace + ' Error ', 'padding:2px;border-radius:20px;color:#fff;background:#ff5549', '\\n' + message + notiflixConsoleDocs);\n  };\n  // COMMON: Console Error: end\n\n  // COMMON: Check Head or Body: begin\n  var commonCheckHeadOrBody = function (element) {\n    if (!element) { element = 'head'; }\n    if (window.document[element] === null) {\n      commonConsoleError('\\nNotiflix needs to be appended to the \"<' + element + '>\" element, but you called it before the \"<' + element + '>\" element has been created.');\n      return false;\n    }\n    return true;\n  };\n  // COMMON: Check Head or Body: end\n\n  // COMMON: Set Internal CSS Codes: begin\n  var commonSetInternalCSSCodes = function (getInternalCSSCodes, styleElementId) {\n    // check doc head\n    if (!commonCheckHeadOrBody('head')) { return false; }\n\n    // internal css\n    if (getInternalCSSCodes() !== null && !window.document.getElementById(styleElementId)) {\n      var internalCSS = window.document.createElement('style');\n      internalCSS.id = styleElementId;\n      internalCSS.innerHTML = getInternalCSSCodes();\n      window.document.head.appendChild(internalCSS);\n    }\n  };\n  // COMMON: Set Internal CSS Codes: end\n\n  // COMMON: Extend Options: begin\n  var commonExtendOptions = function () {\n    // variables\n    var extended = {};\n    var deep = false;\n    var i = 0;\n    // check if a deep merge\n    if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\n      deep = arguments[0];\n      i++;\n    }\n    // merge the object into the extended object\n    var merge = function (obj) {\n      for (var prop in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n          // if property is an object, merge properties\n          if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n            extended[prop] = commonExtendOptions(extended[prop], obj[prop]);\n          } else {\n            extended[prop] = obj[prop];\n          }\n        }\n      }\n    };\n    // loop through each object and conduct a merge\n    for (; i < arguments.length; i++) {\n      merge(arguments[i]);\n    }\n    return extended;\n  };\n  // COMMON: Extend Options: end\n\n  // COMMON: Get Plaintext: begin\n  var commonGetPlaintext = function (html) {\n    var htmlPool = window.document.createElement('div');\n    htmlPool.innerHTML = html;\n    return htmlPool.textContent || htmlPool.innerText || '';\n  };\n  // COMMON: Get Plaintext: end\n\n  // CONFIRM: Get Internal CSS Codes: begin\n  var confirmGetInternalCSSCodes = function () {\n    var confirmCSS = '[id^=NotiflixConfirmWrap]{position:fixed;z-index:4003;width:100%;height:100%;left:0;top:0;padding:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:transparent;font-family:\"Quicksand\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}[id^=NotiflixConfirmWrap].nx-position-center-top{-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}[id^=NotiflixConfirmWrap].nx-position-center-bottom{-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}[id^=NotiflixConfirmWrap].nx-position-left-top{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}[id^=NotiflixConfirmWrap].nx-position-left-center{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start}[id^=NotiflixConfirmWrap].nx-position-left-bottom{-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}[id^=NotiflixConfirmWrap].nx-position-right-top{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start}[id^=NotiflixConfirmWrap].nx-position-right-center{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end}[id^=NotiflixConfirmWrap].nx-position-right-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;-ms-flex-align:end;align-items:flex-end;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}[id^=NotiflixConfirmWrap] *{-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixConfirmWrap]>div[class*=\"-overlay\"]{width:100%;height:100%;left:0;top:0;background:rgba(255,255,255,.5);position:fixed;z-index:0}[id^=NotiflixConfirmWrap]>div[class*=\"-overlay\"].nx-with-animation{-webkit-animation:confirm-overlay-animation .3s ease-in-out 0s normal;animation:confirm-overlay-animation .3s ease-in-out 0s normal}@-webkit-keyframes confirm-overlay-animation{0%{opacity:0}100%{opacity:1}}@keyframes confirm-overlay-animation{0%{opacity:0}100%{opacity:1}}[id^=NotiflixConfirmWrap].nx-remove>div[class*=\"-overlay\"].nx-with-animation{opacity:0;-webkit-animation:confirm-overlay-animation-remove .3s ease-in-out 0s normal;animation:confirm-overlay-animation-remove .3s ease-in-out 0s normal}@-webkit-keyframes confirm-overlay-animation-remove{0%{opacity:1}100%{opacity:0}}@keyframes confirm-overlay-animation-remove{0%{opacity:1}100%{opacity:0}}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]{width:300px;max-width:100%;max-height:96vh;overflow-x:hidden;overflow-y:auto;border-radius:25px;padding:10px;margin:0;-webkit-filter:drop-shadow(0 0 5px rgba(0,0,0,0.05));filter:drop-shadow(0 0 5px rgba(0, 0, 0, .05));background:#f8f8f8;color:#1e1e1e;position:relative;z-index:1;text-align:center}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]::-webkit-scrollbar{width:0;height:0}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]::-webkit-scrollbar-thumb{background:transparent}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]::-webkit-scrollbar-track{background:transparent}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]{float:left;width:100%;text-align:inherit}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>h5{float:left;width:100%;margin:0;padding:0 0 10px;border-bottom:1px solid rgba(0,0,0,.1);color:#32c682;font-family:inherit!important;font-size:16px;line-height:1.4;font-weight:500;text-align:inherit}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div{font-family:inherit!important;margin:15px 0 20px;padding:0 10px;float:left;width:100%;font-size:14px;line-height:1.4;font-weight:normal;color:inherit;text-align:inherit}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div{font-family:inherit!important;float:left;width:100%;margin:15px 0 0;padding:0}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div>input{font-family:inherit!important;float:left;width:100%;height:40px;margin:0;padding:0 15px;border:1px solid rgba(0,0,0,.1);border-radius:25px;font-size:14px;font-weight:normal;line-height:1;-webkit-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;text-align:left}[id^=NotiflixConfirmWrap].nx-rtl-on>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div>input{text-align:right}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div>input:hover{border-color:rgba(0,0,0,.1)}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div>input:focus{border-color:rgba(0,0,0,.3)}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div>input.nx-validation-failure{border-color:#ff5549}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-head\"]>div>div>input.nx-validation-success{border-color:#32c682}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-buttons\"]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:inherit;float:left;width:100%;text-align:inherit}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-buttons\"]>a{cursor:pointer;font-family:inherit!important;-webkit-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;float:left;width:48%;padding:9px 5px;border-radius:inherit!important;font-weight:500;font-size:15px;line-height:1.4;color:#f8f8f8;text-align:inherit}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-buttons\"]>a.nx-confirm-button-ok{margin:0 2% 0 0;background:#32c682}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-buttons\"]>a.nx-confirm-button-cancel{margin:0 0 0 2%;background:#a9a9a9}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-buttons\"]>a.nx-full{margin:0;width:100%}[id^=NotiflixConfirmWrap]>div[class*=\"-content\"]>div[class*=\"-buttons\"]>a:hover{-webkit-box-shadow:inset 0 -60px 5px -5px rgba(0,0,0,.25);box-shadow:inset 0 -60px 5px -5px rgba(0,0,0,.25)}[id^=NotiflixConfirmWrap].nx-rtl-on>div[class*=\"-content\"]>div[class*=\"-buttons\"],[id^=NotiflixConfirmWrap].nx-rtl-on>div[class*=\"-content\"]>div[class*=\"-buttons\"]>a{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}[id^=NotiflixConfirmWrap].nx-with-animation.nx-fade>div[class*=\"-content\"]{-webkit-animation:confirm-animation-fade .3s ease-in-out 0s normal;animation:confirm-animation-fade .3s ease-in-out 0s normal}@-webkit-keyframes confirm-animation-fade{0%{opacity:0}100%{opacity:1}}@keyframes confirm-animation-fade{0%{opacity:0}100%{opacity:1}}[id^=NotiflixConfirmWrap].nx-with-animation.nx-zoom>div[class*=\"-content\"]{-webkit-animation:confirm-animation-zoom .3s ease-in-out 0s normal;animation:confirm-animation-zoom .3s ease-in-out 0s normal}@-webkit-keyframes confirm-animation-zoom{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}50%{opacity:1;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes confirm-animation-zoom{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}50%{opacity:1;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}[id^=NotiflixConfirmWrap].nx-with-animation.nx-fade.nx-remove>div[class*=\"-content\"]{opacity:0;-webkit-animation:confirm-animation-fade-remove .3s ease-in-out 0s normal;animation:confirm-animation-fade-remove .3s ease-in-out 0s normal}@-webkit-keyframes confirm-animation-fade-remove{0%{opacity:1}100%{opacity:0}}@keyframes confirm-animation-fade-remove{0%{opacity:1}100%{opacity:0}}[id^=NotiflixConfirmWrap].nx-with-animation.nx-zoom.nx-remove>div[class*=\"-content\"]{opacity:0;-webkit-animation:confirm-animation-zoom-remove .3s ease-in-out 0s normal;animation:confirm-animation-zoom-remove .3s ease-in-out 0s normal}@-webkit-keyframes confirm-animation-zoom-remove{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.5;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes confirm-animation-zoom-remove{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.5;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}';\n    return confirmCSS || null;\n  };\n  // CONFIRM: Get Internal CSS Codes: end\n\n  // CONFIRM: Create: begin\n  var confirmCreate = function (confirmType, title, messageOrQuestion, answer, okButtonText, cancelButtonText, okButtonCallback, cancelButtonCallback, options) {\n    // check doc body\n    if (!commonCheckHeadOrBody('body')) { return false; }\n\n    // if not initialized pretend like init\n    if (!newConfirmSettings) {\n      Notiflix.Confirm.init({});\n    }\n\n    // create a backup for new settings\n    var newConfirmSettingsBackup = commonExtendOptions(true, newConfirmSettings, {});\n\n    // check the \"options\": begin\n    if (typeof options === 'object' && !Array.isArray(options)) {\n      // extend new settings with the new options\n      newConfirmSettings = commonExtendOptions(true, newConfirmSettings, options);\n    }\n    // check the \"options\": end\n\n    // check the arguments: begin\n    if (typeof title !== 'string') { title = 'Notiflix Confirm'; }\n    if (typeof messageOrQuestion !== 'string') { messageOrQuestion = 'Do you agree with me?'; }\n    if (typeof okButtonText !== 'string') { okButtonText = 'Yes'; }\n    if (typeof cancelButtonText !== 'string') { cancelButtonText = 'No'; }\n    if (typeof okButtonCallback !== 'function') { okButtonCallback = undefined; }\n    if (typeof cancelButtonCallback !== 'function') { cancelButtonCallback = undefined; }\n    // check the arguments: end\n\n    // if plainText is true => HTML tags not allowed: begin\n    if (newConfirmSettings.plainText) {\n      title = commonGetPlaintext(title);\n      messageOrQuestion = commonGetPlaintext(messageOrQuestion);\n      okButtonText = commonGetPlaintext(okButtonText);\n      cancelButtonText = commonGetPlaintext(cancelButtonText);\n    }\n    // if plainText is true => HTML tags not allowed: end\n\n    // if plainText is false but the contents length more than ***MaxLength => Possible HTML tags error: begin\n    if (!newConfirmSettings.plainText) {\n      if (title.length > newConfirmSettings.titleMaxLength) {\n        title = 'Possible HTML Tags Error';\n        messageOrQuestion = 'The \"plainText\" option is \"false\" and the title content length is more than \"titleMaxLength\" option.';\n        okButtonText = 'Okay';\n        cancelButtonText = '...';\n      }\n      if (messageOrQuestion.length > newConfirmSettings.messageMaxLength) {\n        title = 'Possible HTML Tags Error';\n        messageOrQuestion = 'The \"plainText\" option is \"false\" and the message content length is more than \"messageMaxLength\" option.';\n        okButtonText = 'Okay';\n        cancelButtonText = '...';\n      }\n      if ((okButtonText.length || cancelButtonText.length) > newConfirmSettings.buttonsMaxLength) {\n        title = 'Possible HTML Tags Error';\n        messageOrQuestion = 'The \"plainText\" option is \"false\" and the buttons content length is more than \"buttonsMaxLength\" option.';\n        okButtonText = 'Okay';\n        cancelButtonText = '...';\n      }\n    }\n    // if plainText is false but the contents length more than ***MaxLength => Possible HTML tags error: end\n\n    // max length: begin\n    if (title.length > newConfirmSettings.titleMaxLength) {\n      title = title.substring(0, newConfirmSettings.titleMaxLength) + '...';\n    }\n    if (messageOrQuestion.length > newConfirmSettings.messageMaxLength) {\n      messageOrQuestion = messageOrQuestion.substring(0, newConfirmSettings.messageMaxLength) + '...';\n    }\n    if (okButtonText.length > newConfirmSettings.buttonsMaxLength) {\n      okButtonText = okButtonText.substring(0, newConfirmSettings.buttonsMaxLength) + '...';\n    }\n    if (cancelButtonText.length > newConfirmSettings.buttonsMaxLength) {\n      cancelButtonText = cancelButtonText.substring(0, newConfirmSettings.buttonsMaxLength) + '...';\n    }\n    // max length: end\n\n    // if cssAnimaion is false => duration: begin\n    if (!newConfirmSettings.cssAnimation) {\n      newConfirmSettings.cssAnimationDuration = 0;\n    }\n    // if cssAnimaion is false => duration: end\n\n    // confirm wrap: begin\n    var ntflxConfirmWrap = window.document.createElement('div');\n    ntflxConfirmWrap.id = confirmSettings.ID;\n    ntflxConfirmWrap.className = newConfirmSettings.className + (newConfirmSettings.cssAnimation ? ' nx-with-animation nx-' + newConfirmSettings.cssAnimationStyle : '');\n    ntflxConfirmWrap.style.zIndex = newConfirmSettings.zindex;\n    ntflxConfirmWrap.style.padding = newConfirmSettings.distance;\n\n    // rtl: begin\n    if (newConfirmSettings.rtl) {\n      ntflxConfirmWrap.setAttribute('dir', 'rtl');\n      ntflxConfirmWrap.classList.add('nx-rtl-on');\n    }\n    // rtl: end\n\n    // position: begin\n    var confirmPosition = typeof newConfirmSettings.position === 'string' ? newConfirmSettings.position.trim() : 'center';\n    ntflxConfirmWrap.classList.add('nx-position-' + confirmPosition);\n    // position: end\n\n    // font-family\n    ntflxConfirmWrap.style.fontFamily = '\"' + newConfirmSettings.fontFamily + '\", ' + defaultFontFamily;\n\n    // if background overlay is true: begin\n    var confirmOverlay = '';\n    if (newConfirmSettings.backOverlay) {\n      confirmOverlay = '<div class=\"' + newConfirmSettings.className + '-overlay' + (newConfirmSettings.cssAnimation ? ' nx-with-animation' : '') + '\" style=\"background:' + newConfirmSettings.backOverlayColor + ';animation-duration:' + newConfirmSettings.cssAnimationDuration + 'ms;\"></div>';\n    }\n    // if background overlay is true: end\n\n    // if have a callback => add cancel button: begin\n    var cancelButtonHTML = '';\n    if (typeof okButtonCallback === 'function') {\n      cancelButtonHTML = '<a id=\"NXConfirmButtonCancel\" class=\"nx-confirm-button-cancel\" style=\"color:' + newConfirmSettings.cancelButtonColor + ';background:' + newConfirmSettings.cancelButtonBackground + ';font-size:' + newConfirmSettings.buttonsFontSize + ';\">' + cancelButtonText + '</a>';\n    }\n    // if have a callback => add cancel button: end\n\n    // check the validation module: begin\n    var setValidationInput = '';\n    var theExpectedAnswer = null;\n    var theClientAnswer = undefined;\n    if (confirmType === typesConfirm.Ask || confirmType === typesConfirm.Prompt) {\n      theExpectedAnswer = answer || '';\n      var inputMaxLength = (confirmType === typesConfirm.Ask) ? Math.ceil(theExpectedAnswer.length * 1.5) : (theExpectedAnswer.length > 200 ? Math.ceil(theExpectedAnswer.length * 1.5) : 250);\n      var inputDefaultValueAttr = confirmType === typesConfirm.Prompt ? ('value=\"' + theExpectedAnswer + '\"') : '';\n      setValidationInput = '<div><input id=\"NXConfirmValidationInput\" type=\"text\" ' + inputDefaultValueAttr + ' maxlength=\"' + inputMaxLength + '\" style=\"font-size:' + newConfirmSettings.messageFontSize + ';border-radius: ' + newConfirmSettings.borderRadius + ';\" autocomplete=\"off\" spellcheck=\"false\" autocapitalize=\"none\" /></div>';\n    }\n    // check the validation module: end\n\n    // confirm wrap content: begin\n    ntflxConfirmWrap.innerHTML = confirmOverlay +\n      '<div class=\"' + newConfirmSettings.className + '-content\" style=\"width:' + newConfirmSettings.width + '; background:' + newConfirmSettings.backgroundColor + '; animation-duration:' + newConfirmSettings.cssAnimationDuration + 'ms; border-radius: ' + newConfirmSettings.borderRadius + ';\">' +\n      '<div class=\"' + newConfirmSettings.className + '-head\">' +\n      '<h5 style=\"color:' + newConfirmSettings.titleColor + ';font-size:' + newConfirmSettings.titleFontSize + ';\">' + title + '</h5>' +\n      '<div style=\"color:' + newConfirmSettings.messageColor + ';font-size:' + newConfirmSettings.messageFontSize + ';\">' + messageOrQuestion + setValidationInput + '</div>' +\n      '</div>' +\n      '<div class=\"' + newConfirmSettings.className + '-buttons\">' +\n      '<a id=\"NXConfirmButtonOk\" class=\"nx-confirm-button-ok' + (typeof okButtonCallback === 'function' ? '' : ' nx-full') + '\" style=\"color:' + newConfirmSettings.okButtonColor + ';background:' + newConfirmSettings.okButtonBackground + ';font-size:' + newConfirmSettings.buttonsFontSize + ';\">' + okButtonText + '</a>' +\n      cancelButtonHTML +\n      '</div>' +\n      '</div>';\n    // confirm wrap content: end\n    // confirm wrap: end\n\n    // if there is no confirm box: begin\n    if (!window.document.getElementById(ntflxConfirmWrap.id)) {\n      window.document.body.appendChild(ntflxConfirmWrap);\n\n      // buttons && input listener: begin\n      var confirmCloseWrap = window.document.getElementById(ntflxConfirmWrap.id);\n      var okButton = window.document.getElementById('NXConfirmButtonOk');\n\n      // validation input listener: begin\n      var validationInput = window.document.getElementById('NXConfirmValidationInput');\n      if (validationInput) {\n        validationInput.focus();\n        validationInput.setSelectionRange(0, (validationInput.value || '').length);\n        validationInput.addEventListener('keyup', function (event) {\n          var thisValue = event.target.value;\n          if (\n            (confirmType === typesConfirm.Ask) &&\n            (thisValue !== theExpectedAnswer)\n          ) {\n            event.preventDefault();\n            validationInput.classList.add('nx-validation-failure');\n            validationInput.classList.remove('nx-validation-success');\n          } else {\n            if (confirmType === typesConfirm.Ask) {\n              validationInput.classList.remove('nx-validation-failure');\n              validationInput.classList.add('nx-validation-success');\n            }\n            var isEnter = (event.key || '').toLocaleLowerCase('en') === 'enter' || event.keyCode === 13;\n            if (isEnter) {\n              okButton.dispatchEvent(new Event('click'));\n            }\n          }\n        });\n      }\n      // validation input listener: end\n\n      // ok button listener: begin\n      okButton.addEventListener('click', function (event) {\n        // check the answer if the type is \"Ask\": begin\n        if (confirmType === typesConfirm.Ask && theExpectedAnswer && validationInput) {\n          var inputValue = (validationInput.value || '').toString();\n          if (inputValue !== theExpectedAnswer) {\n            validationInput.focus();\n            validationInput.classList.add('nx-validation-failure');\n            event.stopPropagation();\n            event.preventDefault();\n            event.returnValue = false;\n            event.cancelBubble = true;\n            return false;\n          } else {\n            validationInput.classList.remove('nx-validation-failure');\n          }\n        }\n        // check the answer if the type is \"Ask\": end\n\n        // if ok callback && if ok callback is a function\n        if (typeof okButtonCallback === 'function') {\n          if (confirmType === typesConfirm.Prompt && validationInput) {\n            theClientAnswer = validationInput.value || '';\n          }\n          okButtonCallback(theClientAnswer);\n        }\n        confirmCloseWrap.classList.add('nx-remove');\n\n        var timeout = setTimeout(function () {\n          if (confirmCloseWrap.parentNode !== null) {\n            confirmCloseWrap.parentNode.removeChild(confirmCloseWrap);\n            clearTimeout(timeout);\n          }\n        }, newConfirmSettings.cssAnimationDuration);\n      });\n      // ok button listener: end\n\n      // if ok callback && if ok callback a function => add Cancel Button listener: begin\n      if (typeof okButtonCallback === 'function') {\n        // cancel button listener: begin\n        var cancelButton = window.document.getElementById('NXConfirmButtonCancel');\n        cancelButton.addEventListener('click', function () {\n          // if cancel callback && if cancel callback a function\n          if (typeof cancelButtonCallback === 'function') {\n            if (confirmType === typesConfirm.Prompt && validationInput) {\n              theClientAnswer = validationInput.value || '';\n            }\n            cancelButtonCallback(theClientAnswer);\n          }\n          confirmCloseWrap.classList.add('nx-remove');\n\n          var timeout = setTimeout(function () {\n            if (confirmCloseWrap.parentNode !== null) {\n              confirmCloseWrap.parentNode.removeChild(confirmCloseWrap);\n              clearTimeout(timeout);\n            }\n          }, newConfirmSettings.cssAnimationDuration);\n        });\n        // cancel button listener: end\n      }\n      // if ok callback && if ok callback a function => add Cancel Button listener: end\n      // buttons && input listener: end\n    }\n    // if there is no confirm box: end\n\n    // extend new settings with the backup settings\n    newConfirmSettings = commonExtendOptions(true, newConfirmSettings, newConfirmSettingsBackup);\n  };\n  // CONFIRM: Create: end\n\n  var Notiflix = {\n    Confirm: {\n      // Init\n      init: function (userConfirmOptions) {\n        // extend options\n        newConfirmSettings = commonExtendOptions(true, confirmSettings, userConfirmOptions);\n        // internal css if exist\n        commonSetInternalCSSCodes(confirmGetInternalCSSCodes, 'NotiflixConfirmInternalCSS');\n      },\n      // Merge First Init\n      merge: function (userConfirmExtendOptions) {\n        // if initialized already\n        if (newConfirmSettings) {\n          newConfirmSettings = commonExtendOptions(true, newConfirmSettings, userConfirmExtendOptions);\n        }\n        // initialize first\n        else {\n          commonConsoleError('You have to initialize the Confirm module before call Merge function.');\n          return false;\n        }\n      },\n      // Show\n      show: function (title, message, okButtonText, cancelButtonText, okButtonCallback, cancelButtonCallback, options) {\n        confirmCreate(typesConfirm.Show, title, message, null, okButtonText, cancelButtonText, okButtonCallback, cancelButtonCallback, options);\n      },\n      // Ask\n      ask: function (title, question, answer, okButtonText, cancelButtonText, okButtonCallback, cancelButtonCallback, options) {\n        confirmCreate(typesConfirm.Ask, title, question, answer, okButtonText, cancelButtonText, okButtonCallback, cancelButtonCallback, options);\n      },\n      // Prompt\n      prompt: function (title, question, defaultAnswer, okButtonText, cancelButtonText, okButtonCallback, cancelButtonCallback, options) {\n        confirmCreate(typesConfirm.Prompt, title, question, defaultAnswer, okButtonText, cancelButtonText, okButtonCallback, cancelButtonCallback, options);\n      },\n    },\n  };\n\n  if (typeof window.Notiflix === 'object') {\n    return commonExtendOptions(true, window.Notiflix, { Confirm: Notiflix.Confirm });\n  } else {\n    return { Confirm: Notiflix.Confirm };\n  }\n\n});","/*\n* Notiflix Report AIO (https://notiflix.github.io)\n* Description: This file has been created automatically that using \"notiflix.js\", and \"notiflix.css\" files.\n* Version: 3.2.6\n* Author: Furkan (https://github.com/furcan)\n* Copyright 2019 - 2023 Notiflix, MIT Licence (https://opensource.org/licenses/MIT)\n*/\n\n/* global define */\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    define([], function () {\n      return factory(root);\n    });\n  } else if (typeof module === 'object' && typeof module.exports === 'object') {\n    module.exports = factory(root);\n  } else {\n    root.Notiflix = factory(root);\n  }\n})(typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : this, function (window) {\n\n  'use strict';\n\n  // COMMON: SSR check: begin\n  if (typeof window === 'undefined' && typeof window.document === 'undefined') {\n    return false;\n  }\n  // COMMON: SSR check: end\n\n  // COMMON: Variables: begin\n  var notiflixNamespace = 'Notiflix';\n  var notiflixConsoleDocs = '\\n\\nVisit documentation page to learn more: https://notiflix.github.io/documentation';\n  var defaultFontFamily = '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif';\n  // COMMON: Variables: end\n\n  // REPORT: Default Settings: begin\n  var typesReport = {\n    Success: 'Success',\n    Failure: 'Failure',\n    Warning: 'Warning',\n    Info: 'Info',\n  };\n  var newReportSettings;\n  var reportSettings = {\n    ID: 'NotiflixReportWrap', // can not customizable\n    className: 'notiflix-report',\n    width: '320px',\n    backgroundColor: '#f8f8f8',\n    borderRadius: '25px',\n    rtl: false,\n    zindex: 4002,\n    backOverlay: true,\n    backOverlayColor: 'rgba(0,0,0,0.5)',\n    backOverlayClickToClose: false,\n    fontFamily: 'Quicksand',\n    svgSize: '110px',\n    plainText: true,\n    titleFontSize: '16px',\n    titleMaxLength: 34,\n    messageFontSize: '13px',\n    messageMaxLength: 400,\n    buttonFontSize: '14px',\n    buttonMaxLength: 34,\n    cssAnimation: true,\n    cssAnimationDuration: 360,\n    cssAnimationStyle: 'fade', // 'fade' - 'zoom'\n\n    success: {\n      svgColor: '#32c682',\n      titleColor: '#1e1e1e',\n      messageColor: '#242424',\n      buttonBackground: '#32c682',\n      buttonColor: '#fff',\n      backOverlayColor: 'rgba(50,198,130,0.2)',\n    },\n\n    failure: {\n      svgColor: '#ff5549',\n      titleColor: '#1e1e1e',\n      messageColor: '#242424',\n      buttonBackground: '#ff5549',\n      buttonColor: '#fff',\n      backOverlayColor: 'rgba(255,85,73,0.2)',\n    },\n\n    warning: {\n      svgColor: '#eebf31',\n      titleColor: '#1e1e1e',\n      messageColor: '#242424',\n      buttonBackground: '#eebf31',\n      buttonColor: '#fff',\n      backOverlayColor: 'rgba(238,191,49,0.2)',\n    },\n\n    info: {\n      svgColor: '#26c0d3',\n      titleColor: '#1e1e1e',\n      messageColor: '#242424',\n      buttonBackground: '#26c0d3',\n      buttonColor: '#fff',\n      backOverlayColor: 'rgba(38,192,211,0.2)',\n    },\n  };\n  // REPORT: Default Settings: end\n\n  // COMMON: Console Error: begin\n  var commonConsoleError = function (message) {\n    return console.error('%c ' + notiflixNamespace + ' Error ', 'padding:2px;border-radius:20px;color:#fff;background:#ff5549', '\\n' + message + notiflixConsoleDocs);\n  };\n  // COMMON: Console Error: end\n\n  // COMMON: Check Head or Body: begin\n  var commonCheckHeadOrBody = function (element) {\n    if (!element) { element = 'head'; }\n    if (window.document[element] === null) {\n      commonConsoleError('\\nNotiflix needs to be appended to the \"<' + element + '>\" element, but you called it before the \"<' + element + '>\" element has been created.');\n      return false;\n    }\n    return true;\n  };\n  // COMMON: Check Head or Body: end\n\n  // COMMON: Set Internal CSS Codes: begin\n  var commonSetInternalCSSCodes = function (getInternalCSSCodes, styleElementId) {\n    // check doc head\n    if (!commonCheckHeadOrBody('head')) { return false; }\n\n    // internal css\n    if (getInternalCSSCodes() !== null && !window.document.getElementById(styleElementId)) {\n      var internalCSS = window.document.createElement('style');\n      internalCSS.id = styleElementId;\n      internalCSS.innerHTML = getInternalCSSCodes();\n      window.document.head.appendChild(internalCSS);\n    }\n  };\n  // COMMON: Set Internal CSS Codes: end\n\n  // COMMON: Extend Options: begin\n  var commonExtendOptions = function () {\n    // variables\n    var extended = {};\n    var deep = false;\n    var i = 0;\n    // check if a deep merge\n    if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\n      deep = arguments[0];\n      i++;\n    }\n    // merge the object into the extended object\n    var merge = function (obj) {\n      for (var prop in obj) {\n        if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n          // if property is an object, merge properties\n          if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n            extended[prop] = commonExtendOptions(extended[prop], obj[prop]);\n          } else {\n            extended[prop] = obj[prop];\n          }\n        }\n      }\n    };\n    // loop through each object and conduct a merge\n    for (; i < arguments.length; i++) {\n      merge(arguments[i]);\n    }\n    return extended;\n  };\n  // COMMON: Extend Options: end\n\n  // COMMON: Get Plaintext: begin\n  var commonGetPlaintext = function (html) {\n    var htmlPool = window.document.createElement('div');\n    htmlPool.innerHTML = html;\n    return htmlPool.textContent || htmlPool.innerText || '';\n  };\n  // COMMON: Get Plaintext: end\n\n  // REPORT: SVG Icon Success: begin\n  var reportSvgIconSuccess = function (width, color) {\n    if (!width) { width = '110px'; }\n    if (!color) { color = '#32c682'; }\n    var reportSvgSuccess = '<svg xmlns=\"http://www.w3.org/2000/svg\" id=\"NXReportSuccess\" width=\"' + width + '\" height=\"' + width + '\" fill=\"' + color + '\" viewBox=\"0 0 120 120\"><style>@-webkit-keyframes NXReportSuccess1-animation{0%{-webkit-transform:translate(60px,57.7px) scale(.5,.5) translate(-60px,-57.7px);transform:translate(60px,57.7px) scale(.5,.5) translate(-60px,-57.7px)}50%,to{-webkit-transform:translate(60px,57.7px) scale(1,1) translate(-60px,-57.7px);transform:translate(60px,57.7px) scale(1,1) translate(-60px,-57.7px)}60%{-webkit-transform:translate(60px,57.7px) scale(.95,.95) translate(-60px,-57.7px);transform:translate(60px,57.7px) scale(.95,.95) translate(-60px,-57.7px)}}@keyframes NXReportSuccess1-animation{0%{-webkit-transform:translate(60px,57.7px) scale(.5,.5) translate(-60px,-57.7px);transform:translate(60px,57.7px) scale(.5,.5) translate(-60px,-57.7px)}50%,to{-webkit-transform:translate(60px,57.7px) scale(1,1) translate(-60px,-57.7px);transform:translate(60px,57.7px) scale(1,1) translate(-60px,-57.7px)}60%{-webkit-transform:translate(60px,57.7px) scale(.95,.95) translate(-60px,-57.7px);transform:translate(60px,57.7px) scale(.95,.95) translate(-60px,-57.7px)}}@-webkit-keyframes NXReportSuccess4-animation{0%{opacity:0}50%,to{opacity:1}}@keyframes NXReportSuccess4-animation{0%{opacity:0}50%,to{opacity:1}}@-webkit-keyframes NXReportSuccess3-animation{0%{opacity:0}40%,to{opacity:1}}@keyframes NXReportSuccess3-animation{0%{opacity:0}40%,to{opacity:1}}@-webkit-keyframes NXReportSuccess2-animation{0%{-webkit-transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px);transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px)}40%,to{-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px);transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)}60%{-webkit-transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px);transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px)}}@keyframes NXReportSuccess2-animation{0%{-webkit-transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px);transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px)}40%,to{-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px);transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)}60%{-webkit-transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px);transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px)}}#NXReportSuccess *{-webkit-animation-duration:1.2s;animation-duration:1.2s;-webkit-animation-timing-function:cubic-bezier(0,0,1,1);animation-timing-function:cubic-bezier(0,0,1,1)}</style><g style=\"-webkit-animation-name:NXReportSuccess2-animation;animation-name:NXReportSuccess2-animation;-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px);-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1)\"><path d=\"M60 115.38C29.46 115.38 4.62 90.54 4.62 60 4.62 29.46 29.46 4.62 60 4.62c30.54 0 55.38 24.84 55.38 55.38 0 30.54-24.84 55.38-55.38 55.38zM60 0C26.92 0 0 26.92 0 60s26.92 60 60 60 60-26.92 60-60S93.08 0 60 0z\" style=\"-webkit-animation-name:NXReportSuccess3-animation;animation-name:NXReportSuccess3-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1)\" fill=\"inherit\" data-animator-group=\"true\" data-animator-type=\"2\"/></g><g style=\"-webkit-animation-name:NXReportSuccess1-animation;animation-name:NXReportSuccess1-animation;-webkit-transform:translate(60px,57.7px) scale(1,1) translate(-60px,-57.7px);-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1)\"><path d=\"M88.27 35.39L52.8 75.29 31.43 58.2c-.98-.81-2.44-.63-3.24.36-.79.99-.63 2.44.36 3.24l23.08 18.46c.43.34.93.51 1.44.51.64 0 1.27-.26 1.74-.78l36.91-41.53a2.3 2.3 0 0 0-.19-3.26c-.95-.86-2.41-.77-3.26.19z\" style=\"-webkit-animation-name:NXReportSuccess4-animation;animation-name:NXReportSuccess4-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1)\" fill=\"inherit\" data-animator-group=\"true\" data-animator-type=\"2\"/></g></svg>';\n    return reportSvgSuccess;\n  };\n  // REPORT: SVG Icon Success: end\n\n  // REPORT: SVG Icon Failure: begin\n  var reportSvgIconFailure = function (width, color) {\n    if (!width) { width = '110px'; }\n    if (!color) { color = '#ff5549'; }\n    var reportSvgFailure = '<svg xmlns=\"http://www.w3.org/2000/svg\" id=\"NXReportFailure\" width=\"' + width + '\" height=\"' + width + '\" fill=\"' + color + '\" viewBox=\"0 0 120 120\"><style>@-webkit-keyframes NXReportFailure2-animation{0%{opacity:0}40%,to{opacity:1}}@keyframes NXReportFailure2-animation{0%{opacity:0}40%,to{opacity:1}}@-webkit-keyframes NXReportFailure1-animation{0%{-webkit-transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px);transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px)}40%,to{-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px);transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)}60%{-webkit-transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px);transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px)}}@keyframes NXReportFailure1-animation{0%{-webkit-transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px);transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px)}40%,to{-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px);transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)}60%{-webkit-transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px);transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px)}}@-webkit-keyframes NXReportFailure3-animation{0%{-webkit-transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px);transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px)}50%,to{-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px);transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)}60%{-webkit-transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px);transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px)}}@keyframes NXReportFailure3-animation{0%{-webkit-transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px);transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px)}50%,to{-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px);transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)}60%{-webkit-transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px);transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px)}}@-webkit-keyframes NXReportFailure4-animation{0%{opacity:0}50%,to{opacity:1}}@keyframes NXReportFailure4-animation{0%{opacity:0}50%,to{opacity:1}}#NXReportFailure *{-webkit-animation-duration:1.2s;animation-duration:1.2s;-webkit-animation-timing-function:cubic-bezier(0,0,1,1);animation-timing-function:cubic-bezier(0,0,1,1)}</style><g style=\"-webkit-animation-name:NXReportFailure1-animation;animation-name:NXReportFailure1-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1);-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)\"><path d=\"M4.35 34.95c0-16.82 13.78-30.6 30.6-30.6h50.1c16.82 0 30.6 13.78 30.6 30.6v50.1c0 16.82-13.78 30.6-30.6 30.6h-50.1c-16.82 0-30.6-13.78-30.6-30.6v-50.1zM34.95 120h50.1c19.22 0 34.95-15.73 34.95-34.95v-50.1C120 15.73 104.27 0 85.05 0h-50.1C15.73 0 0 15.73 0 34.95v50.1C0 104.27 15.73 120 34.95 120z\" style=\"-webkit-animation-name:NXReportFailure2-animation;animation-name:NXReportFailure2-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1)\" fill=\"inherit\" data-animator-group=\"true\" data-animator-type=\"2\"/></g><g style=\"-webkit-animation-name:NXReportFailure3-animation;animation-name:NXReportFailure3-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1);-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)\"><path d=\"M82.4 37.6c-.9-.9-2.37-.9-3.27 0L60 56.73 40.86 37.6a2.306 2.306 0 0 0-3.26 3.26L56.73 60 37.6 79.13c-.9.9-.9 2.37 0 3.27.45.45 1.04.68 1.63.68.59 0 1.18-.23 1.63-.68L60 63.26 79.13 82.4c.45.45 1.05.68 1.64.68.58 0 1.18-.23 1.63-.68.9-.9.9-2.37 0-3.27L63.26 60 82.4 40.86c.9-.91.9-2.36 0-3.26z\" style=\"-webkit-animation-name:NXReportFailure4-animation;animation-name:NXReportFailure4-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1)\" fill=\"inherit\" data-animator-group=\"true\" data-animator-type=\"2\"/></g></svg>';\n    return reportSvgFailure;\n  };\n  // REPORT: SVG Icon Failure: end\n\n  // REPORT: SVG Icon Warning: begin\n  var reportSvgIconWarning = function (width, color) {\n    if (!width) { width = '110px'; }\n    if (!color) { color = '#eebf31'; }\n    var reportSvgWarning = '<svg xmlns=\"http://www.w3.org/2000/svg\" id=\"NXReportWarning\" width=\"' + width + '\" height=\"' + width + '\" fill=\"' + color + '\" viewBox=\"0 0 120 120\"><style>@-webkit-keyframes NXReportWarning2-animation{0%{opacity:0}40%,to{opacity:1}}@keyframes NXReportWarning2-animation{0%{opacity:0}40%,to{opacity:1}}@-webkit-keyframes NXReportWarning1-animation{0%{-webkit-transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px);transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px)}40%,to{-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px);transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)}60%{-webkit-transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px);transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px)}}@keyframes NXReportWarning1-animation{0%{-webkit-transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px);transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px)}40%,to{-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px);transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)}60%{-webkit-transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px);transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px)}}@-webkit-keyframes NXReportWarning3-animation{0%{-webkit-transform:translate(60px,66.6px) scale(.5,.5) translate(-60px,-66.6px);transform:translate(60px,66.6px) scale(.5,.5) translate(-60px,-66.6px)}50%,to{-webkit-transform:translate(60px,66.6px) scale(1,1) translate(-60px,-66.6px);transform:translate(60px,66.6px) scale(1,1) translate(-60px,-66.6px)}60%{-webkit-transform:translate(60px,66.6px) scale(.95,.95) translate(-60px,-66.6px);transform:translate(60px,66.6px) scale(.95,.95) translate(-60px,-66.6px)}}@keyframes NXReportWarning3-animation{0%{-webkit-transform:translate(60px,66.6px) scale(.5,.5) translate(-60px,-66.6px);transform:translate(60px,66.6px) scale(.5,.5) translate(-60px,-66.6px)}50%,to{-webkit-transform:translate(60px,66.6px) scale(1,1) translate(-60px,-66.6px);transform:translate(60px,66.6px) scale(1,1) translate(-60px,-66.6px)}60%{-webkit-transform:translate(60px,66.6px) scale(.95,.95) translate(-60px,-66.6px);transform:translate(60px,66.6px) scale(.95,.95) translate(-60px,-66.6px)}}@-webkit-keyframes NXReportWarning4-animation{0%{opacity:0}50%,to{opacity:1}}@keyframes NXReportWarning4-animation{0%{opacity:0}50%,to{opacity:1}}#NXReportWarning *{-webkit-animation-duration:1.2s;animation-duration:1.2s;-webkit-animation-timing-function:cubic-bezier(0,0,1,1);animation-timing-function:cubic-bezier(0,0,1,1)}</style><g style=\"-webkit-animation-name:NXReportWarning1-animation;animation-name:NXReportWarning1-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1);-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)\"><path d=\"M115.46 106.15l-54.04-93.8c-.61-1.06-2.23-1.06-2.84 0l-54.04 93.8c-.62 1.07.21 2.29 1.42 2.29h108.08c1.21 0 2.04-1.22 1.42-2.29zM65.17 10.2l54.04 93.8c2.28 3.96-.65 8.78-5.17 8.78H5.96c-4.52 0-7.45-4.82-5.17-8.78l54.04-93.8c2.28-3.95 8.03-4 10.34 0z\" style=\"-webkit-animation-name:NXReportWarning2-animation;animation-name:NXReportWarning2-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1)\" fill=\"inherit\" data-animator-group=\"true\" data-animator-type=\"2\"/></g><g style=\"-webkit-animation-name:NXReportWarning3-animation;animation-name:NXReportWarning3-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1);-webkit-transform:translate(60px,66.6px) scale(1,1) translate(-60px,-66.6px)\"><path d=\"M57.83 94.01c0 1.2.97 2.17 2.17 2.17s2.17-.97 2.17-2.17v-3.2c0-1.2-.97-2.17-2.17-2.17s-2.17.97-2.17 2.17v3.2zm0-14.15c0 1.2.97 2.17 2.17 2.17s2.17-.97 2.17-2.17V39.21c0-1.2-.97-2.17-2.17-2.17s-2.17.97-2.17 2.17v40.65z\" style=\"-webkit-animation-name:NXReportWarning4-animation;animation-name:NXReportWarning4-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1)\" fill=\"inherit\" data-animator-group=\"true\" data-animator-type=\"2\"/></g></svg>';\n    return reportSvgWarning;\n  };\n  // REPORT: SVG Icon Warning: end\n\n  // REPORT: SVG Icon Info: begin\n  var reportSvgIconInfo = function (width, color) {\n    if (!width) { width = '110px'; }\n    if (!color) { color = '#26c0d3'; }\n    var reportSvgInfo = '<svg xmlns=\"http://www.w3.org/2000/svg\" id=\"NXReportInfo\" width=\"' + width + '\" height=\"' + width + '\" fill=\"' + color + '\" viewBox=\"0 0 120 120\"><style>@-webkit-keyframes NXReportInfo4-animation{0%{opacity:0}50%,to{opacity:1}}@keyframes NXReportInfo4-animation{0%{opacity:0}50%,to{opacity:1}}@-webkit-keyframes NXReportInfo3-animation{0%{-webkit-transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px);transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px)}50%,to{-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px);transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)}60%{-webkit-transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px);transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px)}}@keyframes NXReportInfo3-animation{0%{-webkit-transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px);transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px)}50%,to{-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px);transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)}60%{-webkit-transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px);transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px)}}@-webkit-keyframes NXReportInfo2-animation{0%{opacity:0}40%,to{opacity:1}}@keyframes NXReportInfo2-animation{0%{opacity:0}40%,to{opacity:1}}@-webkit-keyframes NXReportInfo1-animation{0%{-webkit-transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px);transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px)}40%,to{-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px);transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)}60%{-webkit-transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px);transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px)}}@keyframes NXReportInfo1-animation{0%{-webkit-transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px);transform:translate(60px,60px) scale(.5,.5) translate(-60px,-60px)}40%,to{-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px);transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)}60%{-webkit-transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px);transform:translate(60px,60px) scale(.95,.95) translate(-60px,-60px)}}#NXReportInfo *{-webkit-animation-duration:1.2s;animation-duration:1.2s;-webkit-animation-timing-function:cubic-bezier(0,0,1,1);animation-timing-function:cubic-bezier(0,0,1,1)}</style><g style=\"-webkit-animation-name:NXReportInfo1-animation;animation-name:NXReportInfo1-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1);-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)\"><path d=\"M60 115.38C29.46 115.38 4.62 90.54 4.62 60 4.62 29.46 29.46 4.62 60 4.62c30.54 0 55.38 24.84 55.38 55.38 0 30.54-24.84 55.38-55.38 55.38zM60 0C26.92 0 0 26.92 0 60s26.92 60 60 60 60-26.92 60-60S93.08 0 60 0z\" style=\"-webkit-animation-name:NXReportInfo2-animation;animation-name:NXReportInfo2-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1)\" fill=\"inherit\" data-animator-group=\"true\" data-animator-type=\"2\"/></g><g style=\"-webkit-animation-name:NXReportInfo3-animation;animation-name:NXReportInfo3-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1);-webkit-transform:translate(60px,60px) scale(1,1) translate(-60px,-60px)\"><path d=\"M57.75 43.85c0-1.24 1.01-2.25 2.25-2.25s2.25 1.01 2.25 2.25v48.18c0 1.24-1.01 2.25-2.25 2.25s-2.25-1.01-2.25-2.25V43.85zm0-15.88c0-1.24 1.01-2.25 2.25-2.25s2.25 1.01 2.25 2.25v3.32c0 1.25-1.01 2.25-2.25 2.25s-2.25-1-2.25-2.25v-3.32z\" style=\"-webkit-animation-name:NXReportInfo4-animation;animation-name:NXReportInfo4-animation;-webkit-animation-timing-function:cubic-bezier(.42,0,.58,1);animation-timing-function:cubic-bezier(.42,0,.58,1)\" fill=\"inherit\" data-animator-group=\"true\" data-animator-type=\"2\"/></g></svg>';\n    return reportSvgInfo;\n  };\n  // REPORT: SVG Icon Info: end\n\n  // REPORT: Get Internal CSS Codes: begin\n  var reportGetInternalCSSCodes = function () {\n    var reportCSS = '[id^=NotiflixReportWrap]{position:fixed;z-index:4002;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:\"Quicksand\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,sans-serif;left:0;top:0;padding:10px;color:#1e1e1e;border-radius:25px;background:transparent;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center}[id^=NotiflixReportWrap] *{-webkit-box-sizing:border-box;box-sizing:border-box}[id^=NotiflixReportWrap]>div[class*=\"-overlay\"]{width:100%;height:100%;left:0;top:0;background:rgba(255,255,255,.5);position:fixed;z-index:0}[id^=NotiflixReportWrap]>div.nx-report-click-to-close{cursor:pointer}[id^=NotiflixReportWrap]>div[class*=\"-content\"]{width:320px;max-width:100%;max-height:96vh;overflow-x:hidden;overflow-y:auto;border-radius:inherit;padding:10px;-webkit-filter:drop-shadow(0 0 5px rgba(0,0,0,0.05));filter:drop-shadow(0 0 5px rgba(0, 0, 0, .05));border:1px solid rgba(0,0,0,.03);background:#f8f8f8;position:relative;z-index:1}[id^=NotiflixReportWrap]>div[class*=\"-content\"]::-webkit-scrollbar{width:0;height:0}[id^=NotiflixReportWrap]>div[class*=\"-content\"]::-webkit-scrollbar-thumb{background:transparent}[id^=NotiflixReportWrap]>div[class*=\"-content\"]::-webkit-scrollbar-track{background:transparent}[id^=NotiflixReportWrap]>div[class*=\"-content\"]>div[class$=\"-icon\"]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:110px;height:110px;display:block;margin:6px auto 12px}[id^=NotiflixReportWrap]>div[class*=\"-content\"]>div[class$=\"-icon\"] svg{min-width:100%;max-width:100%;height:auto}[id^=NotiflixReportWrap]>*>h5{word-break:break-all;word-break:break-word;font-family:inherit!important;font-size:16px;font-weight:500;line-height:1.4;margin:0 0 10px;padding:0 0 10px;border-bottom:1px solid rgba(0,0,0,.1);float:left;width:100%;text-align:center}[id^=NotiflixReportWrap]>*>p{word-break:break-all;word-break:break-word;font-family:inherit!important;font-size:13px;line-height:1.4;font-weight:normal;float:left;width:100%;padding:0 10px;margin:0 0 10px}[id^=NotiflixReportWrap] a#NXReportButton{word-break:break-all;word-break:break-word;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:inherit!important;-webkit-transition:all .25s ease-in-out;-o-transition:all .25s ease-in-out;transition:all .25s ease-in-out;cursor:pointer;float:right;padding:7px 17px;background:#32c682;font-size:14px;line-height:1.4;font-weight:500;border-radius:inherit!important;color:#fff}[id^=NotiflixReportWrap] a#NXReportButton:hover{-webkit-box-shadow:inset 0 -60px 5px -5px rgba(0,0,0,.25);box-shadow:inset 0 -60px 5px -5px rgba(0,0,0,.25)}[id^=NotiflixReportWrap].nx-rtl-on a#NXReportButton{float:left}[id^=NotiflixReportWrap]>div[class*=\"-overlay\"].nx-with-animation{-webkit-animation:report-overlay-animation .3s ease-in-out 0s normal;animation:report-overlay-animation .3s ease-in-out 0s normal}@-webkit-keyframes report-overlay-animation{0%{opacity:0}100%{opacity:1}}@keyframes report-overlay-animation{0%{opacity:0}100%{opacity:1}}[id^=NotiflixReportWrap]>div[class*=\"-content\"].nx-with-animation.nx-fade{-webkit-animation:report-animation-fade .3s ease-in-out 0s normal;animation:report-animation-fade .3s ease-in-out 0s normal}@-webkit-keyframes report-animation-fade{0%{opacity:0}100%{opacity:1}}@keyframes report-animation-fade{0%{opacity:0}100%{opacity:1}}[id^=NotiflixReportWrap]>div[class*=\"-content\"].nx-with-animation.nx-zoom{-webkit-animation:report-animation-zoom .3s ease-in-out 0s normal;animation:report-animation-zoom .3s ease-in-out 0s normal}@-webkit-keyframes report-animation-zoom{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}50%{opacity:1;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes report-animation-zoom{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}50%{opacity:1;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}[id^=NotiflixReportWrap].nx-remove>div[class*=\"-overlay\"].nx-with-animation{opacity:0;-webkit-animation:report-overlay-animation-remove .3s ease-in-out 0s normal;animation:report-overlay-animation-remove .3s ease-in-out 0s normal}@-webkit-keyframes report-overlay-animation-remove{0%{opacity:1}100%{opacity:0}}@keyframes report-overlay-animation-remove{0%{opacity:1}100%{opacity:0}}[id^=NotiflixReportWrap].nx-remove>div[class*=\"-content\"].nx-with-animation.nx-fade{opacity:0;-webkit-animation:report-animation-fade-remove .3s ease-in-out 0s normal;animation:report-animation-fade-remove .3s ease-in-out 0s normal}@-webkit-keyframes report-animation-fade-remove{0%{opacity:1}100%{opacity:0}}@keyframes report-animation-fade-remove{0%{opacity:1}100%{opacity:0}}[id^=NotiflixReportWrap].nx-remove>div[class*=\"-content\"].nx-with-animation.nx-zoom{opacity:0;-webkit-animation:report-animation-zoom-remove .3s ease-in-out 0s normal;animation:report-animation-zoom-remove .3s ease-in-out 0s normal}@-webkit-keyframes report-animation-zoom-remove{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.5;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}@keyframes report-animation-zoom-remove{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}50%{opacity:.5;-webkit-transform:scale(1.05);transform:scale(1.05)}100%{opacity:0;-webkit-transform:scale(0);transform:scale(0)}}';\n    return reportCSS || null;\n  };\n  // REPORT: Get Internal CSS Codes: end\n\n  // REPORT: Create: begin\n  var reportCreate = function (reportType, title, message, buttonText, callbackOrOptions, options) {\n    // check doc body\n    if (!commonCheckHeadOrBody('body')) { return false; }\n\n    // if not initialized pretend like init\n    if (!newReportSettings) {\n      Notiflix.Report.init({});\n    }\n\n    // create a backup for settings\n    var newReportSettingsBackup = {};\n\n    // check callbackOrOptions and options: begin\n    if ((typeof callbackOrOptions === 'object' && !Array.isArray(callbackOrOptions)) || (typeof options === 'object' && !Array.isArray(options))) {\n      // new options\n      var newOptions = {};\n      if (typeof callbackOrOptions === 'object') {\n        newOptions = callbackOrOptions;\n      } else if (typeof options === 'object') {\n        newOptions = options;\n      }\n\n      // extend the backup settings with new settings\n      newReportSettingsBackup = commonExtendOptions(true, newReportSettings, {});\n\n      // extend new settings with the options\n      newReportSettings = commonExtendOptions(true, newReportSettings, newOptions);\n    }\n    // check callbackOrOptions and callback: end\n\n    // report type\n    var theType = newReportSettings[reportType.toLocaleLowerCase('en')];\n\n    // check the arguments: begin\n    if (typeof title !== 'string') { title = 'Notiflix ' + reportType; }\n    if (typeof message !== 'string') {\n      if (reportType === typesReport.Success) {\n        message = '\"Do not try to become a person of success but try to become a person of value.\" <br><br>- Albert Einstein';\n      }\n      else if (reportType === typesReport.Failure) {\n        message = '\"Failure is simply the opportunity to begin again, this time more intelligently.\" <br><br>- Henry Ford';\n      }\n      else if (reportType === typesReport.Warning) {\n        message = '\"The peoples who want to live comfortably without producing and fatigue; they are doomed to lose their dignity, then liberty, and then independence and destiny.\" <br><br>- Mustafa Kemal Ataturk';\n      }\n      else if (reportType === typesReport.Info) {\n        message = '\"Knowledge rests not upon truth alone, but upon error also.\" <br><br>- Carl Gustav Jung';\n      }\n    }\n    if (typeof buttonText !== 'string') { buttonText = 'Okay'; }\n    // check the arguments: end\n\n    // if plainText is true => HTML tags not allowed: begin\n    if (newReportSettings.plainText) {\n      title = commonGetPlaintext(title);\n      message = commonGetPlaintext(message);\n      buttonText = commonGetPlaintext(buttonText);\n    }\n    // if plainText is true => HTML tags not allowed: end\n\n    // if plainText is false but the contents length more than ${title | message | buttonText}MaxLength => Possible HTML tags error: begin\n    if (!newReportSettings.plainText) {\n      if (title.length > newReportSettings.titleMaxLength) {\n        title = 'Possible HTML Tags Error';\n        message = 'The \"plainText\" option is \"false\" and the title content length is more than the \"titleMaxLength\" option.';\n        buttonText = 'Okay';\n      }\n      if (message.length > newReportSettings.messageMaxLength) {\n        title = 'Possible HTML Tags Error';\n        message = 'The \"plainText\" option is \"false\" and the message content length is more than the \"messageMaxLength\" option.';\n        buttonText = 'Okay';\n      }\n      if (buttonText.length > newReportSettings.buttonMaxLength) {\n        title = 'Possible HTML Tags Error';\n        message = 'The \"plainText\" option is \"false\" and the button content length is more than the \"buttonMaxLength\" option.';\n        buttonText = 'Okay';\n      }\n    }\n    // if plainText is false but the contents length more than ${title | message | buttonText}MaxLength => Possible HTML tags error: end\n\n    // max length: begin\n    if (title.length > newReportSettings.titleMaxLength) {\n      title = title.substring(0, newReportSettings.titleMaxLength) + '...';\n    }\n    if (message.length > newReportSettings.messageMaxLength) {\n      message = message.substring(0, newReportSettings.messageMaxLength) + '...';\n    }\n    if (buttonText.length > newReportSettings.buttonMaxLength) {\n      buttonText = buttonText.substring(0, newReportSettings.buttonMaxLength) + '...';\n    }\n    // max length: end\n\n    // if cssAnimaion is false => duration: begin\n    if (!newReportSettings.cssAnimation) {\n      newReportSettings.cssAnimationDuration = 0;\n    }\n    // if cssAnimaion is false => duration: end\n\n    // report wrap: begin\n    var ntflxReportWrap = window.document.createElement('div');\n    ntflxReportWrap.id = reportSettings.ID;\n    ntflxReportWrap.className = newReportSettings.className;\n    ntflxReportWrap.style.zIndex = newReportSettings.zindex;\n    ntflxReportWrap.style.borderRadius = newReportSettings.borderRadius;\n    ntflxReportWrap.style.fontFamily = '\"' + newReportSettings.fontFamily + '\", ' + defaultFontFamily;\n\n    // rtl: begin\n    if (newReportSettings.rtl) {\n      ntflxReportWrap.setAttribute('dir', 'rtl');\n      ntflxReportWrap.classList.add('nx-rtl-on');\n    }\n    // rtl: end\n\n    // position: begin\n    ntflxReportWrap.style.display = 'flex';\n    ntflxReportWrap.style.flexWrap = 'wrap';\n    ntflxReportWrap.style.flexDirection = 'column';\n    ntflxReportWrap.style.alignItems = 'center';\n    ntflxReportWrap.style.justifyContent = 'center';\n    // position: end\n\n    // overlay: begin\n    var reportOverlay = '';\n    var reportOverlayClickToClose = newReportSettings.backOverlayClickToClose === true;\n    if (newReportSettings.backOverlay) {\n      reportOverlay = '<div class=\"' + newReportSettings.className + '-overlay' + (newReportSettings.cssAnimation ? ' nx-with-animation' : '') + (reportOverlayClickToClose ? ' nx-report-click-to-close' : '') + '\" style=\"background:' + (theType.backOverlayColor || newReportSettings.backOverlayColor) + ';animation-duration:' + newReportSettings.cssAnimationDuration + 'ms;\"></div>';\n    }\n    // overlay: end\n\n    // svg icon: begin\n    var svgIcon = '';\n    if (reportType === typesReport.Success) {\n      svgIcon = reportSvgIconSuccess(newReportSettings.svgSize, theType.svgColor);\n    } else if (reportType === typesReport.Failure) {\n      svgIcon = reportSvgIconFailure(newReportSettings.svgSize, theType.svgColor);\n    } else if (reportType === typesReport.Warning) {\n      svgIcon = reportSvgIconWarning(newReportSettings.svgSize, theType.svgColor);\n    } else if (reportType === typesReport.Info) {\n      svgIcon = reportSvgIconInfo(newReportSettings.svgSize, theType.svgColor);\n    }\n    // svg icon: end\n\n    ntflxReportWrap.innerHTML = reportOverlay + '<div class=\"' + newReportSettings.className + '-content' + (newReportSettings.cssAnimation ? ' nx-with-animation ' : '') + ' nx-' + newReportSettings.cssAnimationStyle + '\" style=\"width:' + newReportSettings.width + '; background:' + newReportSettings.backgroundColor + '; animation-duration:' + newReportSettings.cssAnimationDuration + 'ms;\">' +\n      '<div style=\"width:' + newReportSettings.svgSize + '; height:' + newReportSettings.svgSize + ';\" class=\"' + newReportSettings.className + '-icon\">' + svgIcon + '</div>' +\n      '<h5 class=\"' + newReportSettings.className + '-title\" style=\"font-weight:500; font-size:' + newReportSettings.titleFontSize + '; color:' + theType.titleColor + ';\">' + title + '</h5>' +\n      '<p class=\"' + newReportSettings.className + '-message\" style=\"font-size:' + newReportSettings.messageFontSize + '; color:' + theType.messageColor + ';\">' + message + '</p>' +\n      '<a id=\"NXReportButton\" class=\"' + newReportSettings.className + '-button\" style=\"font-weight:500; font-size:' + newReportSettings.buttonFontSize + '; background:' + theType.buttonBackground + '; color:' + theType.buttonColor + ';\">' + buttonText + '</a>' +\n      '</div>';\n\n    // if there is no report element\n    if (!window.document.getElementById(ntflxReportWrap.id)) {\n      // append\n      window.document.body.appendChild(ntflxReportWrap);\n\n      // report remove: begin\n      var reportRemove = function () {\n        var elementWrapper = window.document.getElementById(ntflxReportWrap.id);\n        elementWrapper.classList.add('nx-remove');\n        var timeout = setTimeout(function () {\n          if (elementWrapper.parentNode !== null) {\n            elementWrapper.parentNode.removeChild(elementWrapper);\n          }\n          clearTimeout(timeout);\n        }, newReportSettings.cssAnimationDuration);\n      };\n      // report remove: end\n\n      // callback: begin\n      var elementButton = window.document.getElementById('NXReportButton');\n      elementButton.addEventListener('click', function () {\n        // if callback: begin\n        if (typeof callbackOrOptions === 'function') {\n          callbackOrOptions();\n        }\n        // if callback: end\n\n        // remove report\n        reportRemove();\n      });\n      // callback: end\n\n      // overlay click to close: begin\n      if (reportOverlay && reportOverlayClickToClose) {\n        var elementOverlay = window.document.querySelector('.nx-report-click-to-close');\n        elementOverlay.addEventListener('click', function () {\n          reportRemove();\n        });\n      }\n      // overlay click to close: end\n    }\n    // report wrap: end\n\n    // extend new settings with the backup settings\n    newReportSettings = commonExtendOptions(true, newReportSettings, newReportSettingsBackup);\n\n  };\n  // REPORT: Create: end\n\n  var Notiflix = {\n    Report: {\n      // Init\n      init: function (userReportOptions) {\n        // extend options\n        newReportSettings = commonExtendOptions(true, reportSettings, userReportOptions);\n        // internal css if exist\n        commonSetInternalCSSCodes(reportGetInternalCSSCodes, 'NotiflixReportInternalCSS');\n      },\n      // Merge First Init\n      merge: function (userReportExtendOptions) {\n        // if initialized already\n        if (newReportSettings) {\n          newReportSettings = commonExtendOptions(true, newReportSettings, userReportExtendOptions);\n        }\n        // initialize first\n        else {\n          commonConsoleError('You have to initialize the Report module before call Merge function.');\n          return false;\n        }\n      },\n      // Success\n      success: function (title, message, buttonText, callbackOrOptions, options) {\n        reportCreate(typesReport.Success, title, message, buttonText, callbackOrOptions, options);\n      },\n      // Failure\n      failure: function (title, message, buttonText, callbackOrOptions, options) {\n        reportCreate(typesReport.Failure, title, message, buttonText, callbackOrOptions, options);\n      },\n      // Warning\n      warning: function (title, message, buttonText, callbackOrOptions, options) {\n        reportCreate(typesReport.Warning, title, message, buttonText, callbackOrOptions, options);\n      },\n      // Info\n      info: function (title, message, buttonText, callbackOrOptions, options) {\n        reportCreate(typesReport.Info, title, message, buttonText, callbackOrOptions, options);\n      },\n    },\n  };\n\n  if (typeof window.Notiflix === 'object') {\n    return commonExtendOptions(true, window.Notiflix, { Report: Notiflix.Report });\n  } else {\n    return { Report: Notiflix.Report };\n  }\n\n});"],"names":["templateBtnAlertaVagas","data","cargo","tipoPaginaID","localidadesSeparadas","btnAlertaVagas","exibirAlertaVagas","possuiAlertaVagas","ID","templateCardAlertaVagas","localidadesSeparadasVirgula","cultura","CULTURE_EMPREGARE","replace","inicializarInternacionalizacao","i18next","isInitialized","lng","debug","defaultNS","resources","fallbackLng","code","slice","addResources","AlertaVaga","constructor","botao","this","modalGenerico","document","getElementById","vagaID","getAttribute","profissaoID","adicionais","alertaID","localidade","split","recarregar","cargos","init","bind","submitForm","excluir","addEventListener","loadFullPage","mostrar","resultado","fetch","ok","esconder","toastErroCarregar","innerHTML","text","querySelector","value","formValidar","errorFieldCssClass","focusInvalidField","lockForm","addField","rule","errorMessage","onSuccess","removeField","isNullOrEmpty","length","contagemOptions","querySelectorAll","forEach","option","selected","remove","html","push","cidade","then","default","TomSelect","plugins","maxItems","create","persist","createOnBlur","searchField","createFilter","input","render","no_results","escape","option_create","onInitialize","getValue","settings","placeholder","control_input","setAttribute","clearOptions","onChange","values","isBtnCriarAlerta","classList","contains","dispatchEvent","Event","modalBootstrap","bootstrap","Modal","backdrop","show","hide","Confirm","className","titleColor","okButtonColor","okButtonBackground","cancelButtonColor","callbackSucesso","location","reload","bubbles","toastSucesso","callbackErro","mensagem","async","postFetch","event","console","log","preventDefault","callBackErro","erroAutenticacao","click","formData","FormData","target","append","get","delete","localBanner","HOME","VAGA_BUSCA","VAGA_DETALHES","PAINEL","EMPLOYER_PAGE","banner","renderizar","containerId","local","exibirMobile","container","_buscarBanner","sucesso","_renderizarHTML","error","response","method","headers","json","ArquivoMobile","ArquivoDesktop","Titulo","linkElement","style","transition","opacity","_chaveSessionStorageCandidatura","salvarCandidaturaPendente","titulo","url","possivelmenteLogado","localStorage","getItem","removeItem","urlSemHost","setItem","JSON","stringify","body","e","obterCandidaturaPendente","candidatura","parse","removerCandidaturaPendente","chaveLocalStorageBuscasRecentesCargo","chaveLocalStorageBuscasRecentesLocalizacao","chaveLocalStorageCidadesSugestoes","sugestoesCidadesPadrao","nome","templatesVagaBuscasRecentes","headerListagem","info","createElement","prepend","itemCargoListagem","elemento","id","match","el","buscaId","dataset","dadosSalvos","vagasBuscasRecentesCargoObter","dadosSalvosNovo","filter","x","vagasBuscasRecentesCargoRemover","itemLocalizacaoListagem","undefined","buscaRecente","vagasBuscasRecentesLocalizacaoObter","vagasBuscasRecentesLocalizacaoRemover","autocompleteBuscaRecenteLocalizacao","formHeaderBuscarVagas","seletorInput","sugestoes","autoComplete","sugestoesCidades","buscasRecentesLocalizacao","exibirSugestoesCidades","exibindoCidadesAPI","autoCompleteLocalizacao","diacritics","submit","selector","placeHolder","threshold","debounce","src","query","retorno","querySemAcentos","toLowerCase","_dadosDoLocalStorage","item","nomeSemAcentos","normalize","includes","requestCidades","URL_API","dados","Object","keys","resultsList","noResults","maxResults","element","list","temBuscasRecentes","linhaSeparadora","headerSugestoes","concat","reverse","seenIds","Set","obj","has","add","i","resultItem","highlight","events","selection","detail","nextSibling","index","textContent","objetoSelecionado","focus","inputLocalizacao","valorAntesLoading","cb","cacheSugestoesCidades","sessionStorage","getGeoData","geoData","baseURLAPI","hotSiteEmpresaID","hotSiteUrl","parametrosURL","URLSearchParams","request","toString","model","facets","topCidades","splice","remoto","cidadeObject","find","existe","cidadeCompleta","unshift","obterSugestoesCidades","start","eventoBuscarVagaRedirect","tomSelectBuscaLocalizacao","multiple","valueField","labelField","preload","load","callback","currentValue","Array","isArray","hasValue","avisoAssuntoSelecionado","todoFormulario","getFetch","opcoesSubcategorias","selectAssuntoSubcategoria","clear","addOptions","setValue","erro","onItemAdd","setTextboxValue","close","tomSelectInstance","allOptionKeys","options","selectedKeys","key","ispermanent","removeOption","clearDynamicOptions","autocompleteBuscaRecenteCargo","form","autocompleteCargo","vagasBuscasRecentesCargoAdicionar","trim","arrayDados","dadoParaInserir","uuid","dado","vagasBuscasRecentesLocalizacaoAdicionar","localizacao","inputCargo","href","callbackErroConexao","exibirToastErroConexao","exibirToastErroServidor","insertAdjacentHTML","findLoader","_removeLoader","obterCookie","name","nameEQ","ca","cookie","c","charAt","substring","indexOf","obterDispositivo","navigator","userAgent","obterOrigem","origem","referrer","source","obterQueryString","Proxy","window","search","searchParams","prop","array","iterator","getAll","salvarCookie","days","expires","date","Date","setTime","getTime","toUTCString","Notify","failure","success","addTrack","mixpanel","empresaID","hotsite","dispositivo","track","dt","r","Math","random","floor","validarResultado","status","resultados","Sucesso","nomeEmpresa","vagaTitulo","vagaCidadesSeparadas","vagaCidadesSeparadasVirgula","vagaCargo","vagaUrl","variasCidades","$containerInscrevase","$containerInscrevaseStick","_confirmarCandidatura","o","finalizouCandidatura","$modalConfirmarCandidatura","getInstance","questionario","Report","_botaoCandidatar","warning","retornoMensagem","_montaBotaoCandidatar","gatilho","botaoCandidatarHtml","icone","_stickyTopScrollDetalhesVaga","candidturaID","candidaturaID","_cancelarCandidatura","confirmar","pessoaID","hostname","referer","_insights","containerInscrevase","containerInscrevaseStick","eventListner","navbarFixadaDetalheVaga","IntersectionObserver","isIntersecting","observe","btn","_atualizarContainerAlerta","evento","wrapper","type","campanha","_definirOrigemCadastro","share","title","catch","textoLinkVaga","_copiarLink","clipboard","writeText","innerText","_modalCompartilharCopiarLink","tab","ehUmHotsite","ehUmHotsiteExpress","Tipo","vagaDetalhesContainer","blocoInformacoes","blocoAlertaVagas","cardAlertaVagas","wrapperAlerta","criarBlocoAlertaVagas","vagaDetalhes","__defProp","defineProperty","__publicField","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","cls","isElement","Element","HTMLDocument","defaultGlobalConfig","errorFieldStyle","color","border","successFieldCssClass","errorLabelStyle","errorLabelCssClass","successLabelCssClass","testingMode","validateBeforeSubmitting","JustValidate","globalConfig","dictLocale","Map","field","fieldIds","fieldSelector","k","String","size","set","tooltips","refresh","lastScrollPosition","scrollY","isScrollTick","requestAnimationFrame","refreshAllTooltips","ev","isSubmitted","validateHandler","foundKey","fields","elem","validateField","currentGroup","groupFields","group","elems","validateGroup","handleFieldChange","handleGroupChange","renderErrors","initialize","errors","isValid","errorLabels","successLabels","eventListeners","customStyleTags","currentLocale","Error","setForm","HTMLFormElement","isTooltip","styleTag","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","extInvalid","extensions","typeInvalid","types","fileIdx","validator","result","asyncCheckPending","promise","resp","promises","rules","res","config","Promise","allSettled","revalidateField","getKeyByFieldSelector","resolve","finally","clearFieldStyle","clearFieldLabel","renderFieldError","reject","setTimeout","afterSubmitValidation","forceRevalidation","validate","revalidate","_b","unlockForm","onSuccessCallback","call","onFailCallback","removeListener","formSubmitHandler","handler","func","removeEventListener","join","setKeyByFieldSelector","setListeners","getListenerType","handlerChange","clearErrors","removeGroup","addRequiredGroup","groupField","inputs","childrenInputs","from","parent","groups","parents","reversedParents","groupElem","getClosestParent","els","parentNode","getNodeParents","elem2","isDirty","_c","_d","errorStyle","key2","successStyle","successFieldStyle","_a2","tooltip","disabled","pointerEvents","webkitFilter","removeAttribute","renderTooltip","errorLabel","position","top","left","width","height","getBoundingClientRect","errorLabelRect","pos","direction","createErrorLabelElem","customErrorLabelStyle","assign","testId","createSuccessLabelElem","successLabel","customSuccessLabelStyle","successLabelStyle","renderErrorsContainer","label","errorsContainer","renderGroupLabel","isSuccess","renderFieldLabel","_e","_f","_g","labelElem","parentElement","tagName","showLabels","isError","fieldName","showErrors","showSuccessLabels","message","renderGroupError","_b2","destroy","getFieldSelectorByKey","setCurrentLocale","locale","onFail","root","g","newConfirmSettings","typesConfirm","confirmSettings","zindex","distance","backgroundColor","borderRadius","backOverlay","backOverlayColor","rtl","fontFamily","cssAnimation","cssAnimationDuration","cssAnimationStyle","plainText","titleFontSize","titleMaxLength","messageColor","messageFontSize","messageMaxLength","buttonsFontSize","buttonsMaxLength","cancelButtonBackground","commonConsoleError","commonCheckHeadOrBody","commonExtendOptions","extended","deep","prototype","arguments","merge","hasOwnProperty","commonGetPlaintext","htmlPool","confirmGetInternalCSSCodes","confirmCreate","confirmType","messageOrQuestion","answer","okButtonText","cancelButtonText","okButtonCallback","cancelButtonCallback","Notiflix","newConfirmSettingsBackup","ntflxConfirmWrap","zIndex","padding","confirmPosition","confirmOverlay","cancelButtonHTML","setValidationInput","theExpectedAnswer","theClientAnswer","inputMaxLength","ceil","confirmCloseWrap","okButton","validationInput","setSelectionRange","thisValue","toLocaleLowerCase","keyCode","stopPropagation","returnValue","cancelBubble","timeout","removeChild","clearTimeout","userConfirmOptions","getInternalCSSCodes","styleElementId","internalCSS","commonSetInternalCSSCodes","userConfirmExtendOptions","ask","question","prompt","defaultAnswer","factory","newReportSettings","typesReport","reportSettings","backOverlayClickToClose","svgSize","buttonFontSize","buttonMaxLength","svgColor","buttonBackground","buttonColor","reportGetInternalCSSCodes","reportCreate","reportType","buttonText","callbackOrOptions","newReportSettingsBackup","newOptions","theType","ntflxReportWrap","display","flexWrap","flexDirection","alignItems","justifyContent","reportOverlay","reportOverlayClickToClose","svgIcon","reportSvgIconFailure","reportSvgIconWarning","reportSvgIconInfo","reportRemove","elementWrapper","userReportOptions","userReportExtendOptions"],"sourceRoot":""}