1class NewsletterForm{constructor(form){this.form=form,this.messageContainer=form.querySelector("[data-newsletter-message]"),this.submitButton=form.querySelector(".newsletter-submit-btn"),this.originalButtonText=this.submitButton.textContent,this.init()}init(){this.form.addEventListener("submit",this.handleSubmit.bind(this))}getNewsletterVal(selector){const element=this.form.querySelector(selector);return element?element.type==="radio"?element.checked?element.value:"":element.value.trim():""}collectFormData(){const radioButtons=this.form.querySelectorAll('input[name="shoe_interest"]:checked');let selectedInterest="";return radioButtons.length>0&&(selectedInterest=radioButtons[0].value),{responsibleName:this.getNewsletterVal("#responsible-name"),childName:this.getNewsletterVal("#child_name"),email:this.getNewsletterVal("#email-responsible"),interest:selectedInterest}}findAppForm(){console.log("Procurando formul\xE1rio do app...");const appEmbed=document.getElementById("app-embed");if(appEmbed&&appEmbed.shadowRoot){console.log("Encontrado #app-embed com shadowRoot");const shadowForm=appEmbed.shadowRoot.querySelector("form");if(shadowForm)return console.log("Formul\xE1rio encontrado no shadowRoot:",shadowForm),shadowForm}const appForm=document.querySelector('form[data-testid="form"]');if(appForm)return console.log('Formul\xE1rio encontrado com data-testid="form":',appForm),appForm;const forms=document.querySelectorAll("form");console.log("Procurando em",forms.length,"formul\xE1rios...");for(let form of forms){const hasFirstName=form.querySelector("#first_name"),hasEmail=form.querySelector("#email"),hasCustomField=form.querySelector('#custom\\#nome-crianca, [id*="nome-crianca"]');if(hasFirstName&&hasEmail&&hasCustomField)return console.log("Formul\xE1rio encontrado por campos espec\xEDficos:",form),form}return console.log("Nenhum formul\xE1rio do app encontrado"),null}async waitForAppForm(maxAttempts=10){for(let i=0;i<maxAttempts;i++){console.log(`Tentativa ${i+1} de encontrar o formul\xE1rio do app...`);const appForm=this.findAppForm();if(appForm)return console.log("Formul\xE1rio do app encontrado!"),appForm;await new Promise(resolve=>setTimeout(resolve,500))}return console.log("Formul\xE1rio do app n\xE3o encontrado ap\xF3s todas as tentativas"),null}fillAppForm(data){const appForm=this.findAppForm();if(!appForm)return console.error("Formul\xE1rio do app n\xE3o encontrado"),!1;console.log("=== INICIANDO PREENCHIMENTO DO FORMUL\xC1RIO DO APP ==="),console.log("Dados recebidos:",data),console.log("Formul\xE1rio do app encontrado:",appForm);try{console.log("--- Preenchendo nome do respons\xE1vel ---");const firstNameField=appForm.querySelector("#first_name");console.log("Campo first_name encontrado:",firstNameField),firstNameField&&data.responsibleName?(console.log("Valor antes:",firstNameField.value),firstNameField.value=data.responsibleName,console.log("Valor depois:",firstNameField.value),firstNameField.dispatchEvent(new Event("input",{bubbles:!0})),firstNameField.dispatchEvent(new Event("change",{bubbles:!0})),firstNameField.dispatchEvent(new Event("blur",{bubbles:!0})),firstNameField.focus(),setTimeout(()=>firstNameField.blur(),100)):console.log("Campo first_name n\xE3o encontrado ou dados vazios"),console.log("--- Preenchendo email ---");const emailField=appForm.querySelector("#email");console.log("Campo email encontrado:",emailField),emailField&&data.email?(console.log("Valor antes:",emailField.value),emailField.value=data.email,console.log("Valor depois:",emailField.value),emailField.dispatchEvent(new Event("input",{bubbles:!0})),emailField.dispatchEvent(new Event("change",{bubbles:!0})),emailField.dispatchEvent(new Event("blur",{bubbles:!0})),emailField.focus(),setTimeout(()=>emailField.blur(),100)):console.log("Campo email n\xE3o encontrado ou dados vazios"),console.log("--- Preenchendo nome da crian\xE7a ---");const childNameField=appForm.querySelector("#custom\\#nome-crianca");if(console.log("Campo nome-crianca encontrado:",childNameField),childNameField&&data.childName?(console.log("Valor antes:",childNameField.value),
1childNameField.value=data.childName,console.log("Valor depois:",childNameField.value),childNameField.dispatchEvent(new Event("input",{bubbles:!0})),childNameField.dispatchEvent(new Event("change",{bubbles:!0})),childNameField.dispatchEvent(new Event("blur",{bubbles:!0})),childNameField.focus(),setTimeout(()=>childNameField.blur(),100)):console.log("Campo nome-crianca n\xE3o encontrado ou dados vazios"),console.log("--- Selecionando interesse ---"),console.log("Interesse recebido:",data.interest),data.interest){let targetRadio=null;if(data.interest.toLowerCase().includes("menino")&&!data.interest.toLowerCase().includes("menina")?(console.log("Procurando radio para Meninos..."),targetRadio=appForm.querySelector("#custom\\#tenho_interesse_em_calados_para-Meninos")):data.interest.toLowerCase().includes("menina")&&!data.interest.toLowerCase().includes("menino")?(console.log("Procurando radio para Meninas..."),targetRadio=appForm.querySelector("#custom\\#tenho_interesse_em_calados_para-Meninas")):(data.interest.toLowerCase().includes("ambos")||data.interest.toLowerCase().includes("menino")&&data.interest.toLowerCase().includes("menina"))&&(console.log("Procurando radio para Meninos e Meninas..."),targetRadio=appForm.querySelector("#custom\\#tenho_interesse_em_calados_para-Meninos\\ e\\ Meninas")),console.log("Radio button encontrado:",targetRadio),targetRadio)console.log("Selecionando radio button..."),targetRadio.checked=!0,targetRadio.dispatchEvent(new Event("change",{bubbles:!0})),targetRadio.dispatchEvent(new Event("click",{bubbles:!0})),console.log("Radio button selecionado:",targetRadio.checked);else{console.log("Radio button n\xE3o encontrado para interesse:",data.interest);const allRadios=appForm.querySelectorAll('input[type="radio"]');console.log("Radio buttons dispon\xEDveis:",allRadios),allRadios.forEach((radio,index)=>{console.log(`Radio ${index}:`,radio.id,radio.value,radio.name)})}}return console.log("=== PREENCHIMENTO CONCLU\xCDDO ==="),!0}catch(error){return console.error("Erro ao preencher formul\xE1rio do app:",error),!1}}submitAppForm(){const appForm=this.findAppForm();if(!appForm)return console.error("Formul\xE1rio do app n\xE3o encontrado para submiss\xE3o"),!1;console.log("=== INICIANDO SUBMISS\xC3O DO FORMUL\xC1RIO DO APP ==="),console.log("Formul\xE1rio do app:",appForm);try{const submitButton=appForm.querySelector('button[type="submit"], [data-testid="bt
1n-form-submit"]');if(console.log("Bot\xE3o submit encontrado:",submitButton),submitButton)return console.log("Bot\xE3o habilitado:",!submitButton.disabled),console.log("Aria-disabled:",submitButton.getAttribute("aria-disabled")),(submitButton.disabled||submitButton.getAttribute("aria-disabled")==="true")&&(console.log("Bot\xE3o est\xE1 desabilitado, tentando habilitar..."),submitButton.disabled=!1,submitButton.setAttribute("aria-disabled","false")),console.log("Clicando no bot\xE3o submit..."),submitButton.click(),setTimeout(()=>{console.log("Tentando submit direto do formul\xE1rio..."),appForm.requestSubmit?appForm.requestSubmit():appForm.submit()},200),console.log("=== SUBMISS\xC3O INICIADA ==="),!0;{console.log("Bot\xE3o submit n\xE3o encontrado");const allButtons=appForm.querySelectorAll("button");return console.log("Bot\xF5es dispon\xEDveis:",allButtons),allButtons.forEach((btn,index)=>{console.log(`Bot\xE3o ${index}:`,btn.type,btn.textContent,btn.getAttribute("data-testid"))}),console.log("Tentando submit direto do formul\xE1rio..."),appForm.requestSubmit?appForm.requestSubmit():appForm.submit(),!0}}catch(error){return console.error("Erro ao submeter formul\xE1rio do app:",error),!1}}validateForm(data){const errors=[];data.responsibleName||errors.push("Nome do respons\xE1vel \xE9 obrigat\xF3rio"),data.email?this.isValidEmail(data.email)||errors.push("E-mail inv\xE1lido"):errors.push("E-mail \xE9 obrigat\xF3rio");const childNameField=this.form.querySelector("#child_name");return childNameField&&childNameField.hasAttribute("required")&&!data.childName&&errors.push("Nome da crian\xE7a \xE9 obrigat\xF3rio"),errors}isValidEmail(email){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)}showMessage(message,type="success"){this.messageContainer&&(this.messageContainer.innerHTML=` 2 <div class="newsletter-message--${type}"> 3 ${message} 4 </div> 5 `,setTimeout(()=>{this.messageContainer.innerHTML=""},5e3))}setLoadingState(isLoading){isLoading?(this.submitButton.disabled=!0,this.submitButton.textContent="Enviando...",this.submitButton.classList.add("loading")):(this.submitButton.disabled=!1,this.submitButton.textContent=this.originalButtonText,this.submitButton.classList.remove("loading"))}async useAppController(formData){if(console.log("=== TENTANDO USAR CONTROLADOR GLOBAL ==="),window.NewsletterAppController&&typeof window.NewsletterAppController.completeNewsletterFormAndSubmit=="function"){console.log("NewsletterAppController encontrado, usando m\xE9todo personalizado...");try{return await window.NewsletterAppController.completeNewsletterFormAndSubmit(formData)}catch(error){console.error("Erro no NewsletterAppController:",error)}}if(window.AppNewsletterController&&typeof window.AppNewsletterController.completeShopifyFormsAndSubmit=="function"){console.log("AppNewsletterController encontrado, usando m\xE9todo global..."),window.AppNewsletterController.setName&&formData.responsibleName&&window.AppNewsletterController.setName(formData.responsibleName),window.AppNewsletterController.setEmail&&formData.email&&window.AppNewsletterController.setEmail(formData.email);try{return await window.AppNewsletterController.completeShopifyFormsAndSubmit(),!0}catch(error){console.error("Erro no AppNewsletterController:",error)}}return console.log("Nenhum controlador global encontrado, usando m\xE9todo direto..."),!1}async handleSubmit(event){event.preventDefault();const formData=this.collectFormData(),errors=this.validateForm(formData);if(errors.length>0){this.showMessage(errors.join("<br>"),"error");return}this.setLoadingState(!0);try{if(console.log("=== INICIANDO PROCESSO DE SUBMISS\xC3O ==="),console.log("Dados coletados:",formData),await this.useAppController(formData)){console.log("Submiss\xE3o via controlador global bem-sucedida"),this.showMessage(`Cadastro realizado com sucesso! 6 Obrigado por se inscrever.`,"success"),this.form.reset();return}if(console.log("Usando m\xE9todo direto..."),console.log("Procurando formul\xE1rio do app..."),!await this.waitForAppForm()){console.error("Formul\xE1rio do app n\xE3o encontrado ap\xF3s aguardar"),this.showMessage("Erro: Formul\xE1rio do app n\xE3o encontrado. Verifique se o app est\xE1 carregado n
6a p\xE1gina.","error");return}if(console.log("Formul\xE1rio do app encontrado, iniciando preenchimento..."),!this.fillAppForm(formData)){this.showMessage("Erro ao preencher dados no formul\xE1rio do app.","error");return}console.log("Aguardando preenchimento dos campos..."),await new Promise(resolve=>setTimeout(resolve,1e3)),console.log("Iniciando submiss\xE3o do formul\xE1rio do app..."),this.submitAppForm()?(console.log("Aguardando processamento do app..."),await new Promise(resolve=>setTimeout(resolve,2e3)),this.showMessage("Cadastro realizado com sucesso! Obrigado por se inscrever.","success"),this.form.reset()):this.showMessage("Erro ao submeter formul\xE1rio do app.","error")}catch(error){console.error("Erro ao processar formul\xE1rio:",error),this.showMessage("Erro ao realizar cadastro. Tente novamente.","error")}finally{this.setLoadingState(!1)}}}(function(){"use strict";function dispatchInput(el){el.dispatchEvent(new Event("input",{bubbles:!0}))}function getNewsletterForm(){const host=document.getElementById("app-embed");if(host&&host.shadowRoot){const form=host.shadowRoot.querySelector("form");if(form)return form}return document.querySelector('form[data-testid="form"]')||document.querySelector('form[id*="newsletter"], form[class*="newsletter"]')}async function completeNewsletterFormAndSubmit(formData){console.log("=== CONTROLADOR GLOBAL: INICIANDO SUBMISS\xC3O ==="),console.log("Dados recebidos:",formData);const newsletterForm=getNewsletterForm();if(!newsletterForm)return console.warn("Formul\xE1rio do app n\xE3o encontrado via controlador global"),!1;console.log("Formul\xE1rio do app encontrado:",newsletterForm);function setAppValue(appId,value){const el=newsletterForm.querySelector(`#${CSS.escape(appId)}`);if(!el){console.log(`Campo ${appId} n\xE3o encontrado no app`);return}console.log(`Preenchendo ${appId} com:`,value),el.value=value||"",dispatchInput(el),el.dispatchEvent(new Event("change",{bubbles:!0})),el.dispatchEvent(new Event("blur",{bubbles:!0}))}if(formData.responsibleName&&setAppValue("first_name",formData.responsibleName),formData.email&&setAppValue("email",formData.email),formData.childName&&setAppValue("custom#nome-crianca",formData.childName),formData.interest){console.log("Selecionando interesse:",formData.interest);let targetRadioId=null;if(formData.interest.toLowerCase().includes("menino")&&!formData.interest.toLowerCase().includes("menina")?targetRadioId="custom#tenho_interesse_em_calados_para-Meninos":formData.interest.toLowerCase().includes("menina")&&!formData.interest.toLowerCase().includes("menino")?targetRadioId="custom#tenho_interesse_em_calados_para-Meninas":(formData.interest.toLowerCase().includes("ambos")||formData.interest.toLowerCase().includes("menino")&&formData.interest.toLowerCase().includes("menina"))&&(targetRadioId="custom#tenho_interesse_em_calados_para-Meninos e Meninas"),targetRadioId){const radioEl=newsletterForm.querySelector(`#${CSS.escape(targetRadioId)}`);radioEl?(console.log("Selecionando radio:",targetRadioId),radioEl.checked=!0,radioEl.dispatchEvent(new Event("change",{bubbles:!0})),radioEl.dispatchEvent(new Event("click",{bubbles:!0}))):console.log("Radio button n\xE3o encontrado:",targetRadioId)}}await new Promise(resolve=>setTimeout(resolve,500));
6const button=newsletterForm.querySelector('[data-testid="btn-form-submit"]')||newsletterForm.querySelector('button[type="submit"]')||newsletterForm.querySelector("button");return button?(console.log("Clicando no bot\xE3o submit:",button),button.click(),!0):(console.warn("Bot\xE3o do formul\xE1rio n\xE3o encontrado."),!1)}window.NewsletterAppController={completeNewsletterFormAndSubmit,getNewsletterForm},console.log("NewsletterAppController inicializado")})(),document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll("[data-newsletter-form]").forEach(form=>{new NewsletterForm(form)})}),typeof module<"u"&&module.exports&&(module.exports=NewsletterForm); 7//# sourceMappingURL=/cdn/shop/t/19/assets/component-form-newsletter.js.map?v=65705828669384555701782309883
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.