{"version":3,"sources":["newsletterSignupBlock.js"],"names":["recaptchaCallBack","token","newsLetterForm","document","querySelector","form","FormData","window","fetch","method","body","then","response","headers","has","get","indexOf","json","model","redirect","location","href","ok","text","html","thankYouEle","parentNode","innerHTML","remove","_","setTimeout","Promise","reject","status","statusText","siteKeyValue","newsletterSignup","handleValidation","el","errorInfo","classList","toggle","submitButton","addEventListener","e","preventDefault","inputFields","Array","from","querySelectorAll","forEach","input","checkValidity","type","nextElementSibling","closest","add","formValid","every","formData","disabled","contentType","data","errorMessage","initBlock","ControlBinders","register"],"mappings":"AAAA,SAASA,kBAAkBC,GACzB,MAAMC,EAAiBC,SAASC,cAAc,iCACxCC,EAAO,IAAIC,SAASJ,GAC1B,OAAOK,OAAOC,MAAM,gDAAiD,CACnEC,OAAQ,OACRC,KAAML,IACLM,KAAKC,GACFA,EAASC,QAAQC,IAAI,iBAAwF,IAArEF,EAASC,QAAQE,IAAI,gBAAgBC,QAAQ,oBAChFJ,EAASK,OAAON,KAAKO,IACtBA,EAAMC,WACRZ,OAAOa,SAASC,KAAOH,EAAMC,YAK5BP,EAASU,GAAKV,EAASW,OAAOZ,KAAKa,IACxC,MAAMC,EAAcvB,EAAewB,WAAWtB,cAAc,+BAExC,OAAhBqB,IACFA,EAAYE,UAAYH,GAG1BtB,EAAe0B,WACdjB,KAAKkB,GAAKC,WAAW,OAAU,KAAOC,QAAQC,OAAO,CACtDC,OAAQrB,EAASqB,OACjBvB,KAAME,EAASsB,cAKrB,IAAIC,aAAe,GAEnB,MAAMC,iBAAmB,MACvB,MAIMC,EAAmBC,IACvB,MAAMjC,EAAOiC,EAAGlC,cAAc,QACxBmC,EAAYpC,SAASC,cAAc,yBAGzC,GAFAmC,EAAUC,UAAUC,OAAO,UAAU,GAEjCpC,EAAM,CACR,MAAMqC,EAAerC,EAAKD,cAAc,yBACxCsC,EAAaC,iBAAiB,QAASC,IACrCA,EAAEC,iBACF,MAAMC,EAAcC,MAAMC,KAAK3C,EAAK4C,iBAAiB,iBACrDH,EAAYI,QAAQC,IAClB,GAAIA,EAAMC,gBACW,UAAfD,EAAME,OACRF,EAAMX,UAAUZ,OAAO,0BACvBuB,EAAMG,mBAAmBd,UAAUZ,OAAO,kCAG5C,GAAmB,UAAfuB,EAAME,KAAkB,CACHF,EAAMI,QAAQ,0BACtBnD,cAAc,4BAA4BoC,UAAUgB,IAAI,iCAEvEL,EAAMX,UAAUgB,IAAI,0BACpBL,EAAMG,mBAAmBd,UAAUgB,IAAI,8BAI7C,MAAMC,EAAYX,EAAYY,MAAMP,GAASA,EAAMC,iBAC7ClD,EAAiBC,SAASC,cAAc,iCACxCuD,EAAW,IAAIrD,SAASJ,GAE1BuD,IACFf,EAAakB,UAAW,EACxBrD,OAAOC,MAAM,gDAAiD,CAC5DC,OAAQ,OACRC,KAAMiD,IACLhD,KAAKC,IACN,MAAMiD,EAAcjD,EAASC,QAAQE,IAAI,gBAEzC,OAAI8C,IAA4D,IAA7CA,EAAY7C,QAAQ,oBAC9BJ,EAASK,OAAON,KAAKmD,IAC1BvB,EAAUZ,UAAYmC,EAAKC,aAC3BxB,EAAUC,UAAUC,OAAO,UAAU,GACrCC,EAAakB,UAAW,IAGnBhD,EAASW,OAAOZ,KAAKY,IACVpB,SAASC,cAAc,kBAC/BuB,UAAYJ,WASlC,MAAO,CACLyC,UA7DgB1B,IAChBD,EAAiBC,MAFI,GAkEzB2B,eAAeC,SAAS,2BAA4B5B,GAAMF,iBAAiB4B,UAAU1B","sourcesContent":["function recaptchaCallBack(token) {\r\n const newsLetterForm = document.querySelector('.newsletter-signup-block form');\r\n const form = new FormData(newsLetterForm);\r\n\r\n return window.fetch(`/umbraco/surface/NewsletterSignupBlock/Submit`, {\r\n method: \"post\",\r\n body: form\r\n })\r\n .then(response => {\r\n if (response.headers.has(\"Content-Type\") && response.headers.get(\"Content-Type\").indexOf(\"application/json\") === 0) {\r\n return response.json()\r\n .then(model =>{\r\n if (model.redirect) {\r\n window.location.href = model.redirect;\r\n }\r\n });\r\n }\r\n\r\n return response.ok\r\n ? response.text()\r\n .then(html => {\r\n const thankYouEle = newsLetterForm.parentNode.querySelector(\"[data-newsletter-thank-you]\");\r\n\r\n if(thankYouEle !== null){\r\n thankYouEle.innerHTML = html;\r\n }\r\n\r\n newsLetterForm.remove();\r\n })\r\n .then(_ => setTimeout(() => {\r\n \r\n }, 10))\r\n : Promise.reject({\r\n status: response.status,\r\n body: response.statusText\r\n });\r\n });\r\n}\r\n\r\nlet siteKeyValue = '';\r\n\r\n\r\nconst newsletterSignup = (() => {\r\n const initBlock = (el) => {\r\n handleValidation(el);\r\n };\r\n \r\n const handleValidation = (el) => {\r\n const form = el.querySelector('form');\r\n const errorInfo = document.querySelector(\"[data-error-info-bar]\")\r\n errorInfo.classList.toggle(\"hidden\",true);\r\n if (form){\r\n const submitButton = form.querySelector('button[type=\"submit\"]');\r\n submitButton.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n \r\n const inputFields = Array.from(form.querySelectorAll('[data-input]'));\r\n \r\n inputFields.forEach(input => {\r\n if(input.checkValidity()){\r\n if (input.type !== \"radio\"){\r\n input.classList.remove('validation-error-input');\r\n input.nextElementSibling.classList.remove('validation-error-message'); \r\n }\r\n } else {\r\n if (input.type === \"radio\"){\r\n const surroundingEle = input.closest(\"[data-checkbox-inputs]\"); \r\n surroundingEle.querySelector(\"span[data-error-message]\").classList.add('validation-error-message');\r\n }else{\r\n input.classList.add('validation-error-input');\r\n input.nextElementSibling.classList.add('validation-error-message'); \r\n } \r\n }\r\n });\r\n \r\n const formValid = inputFields.every(input => input.checkValidity());\r\n const newsLetterForm = document.querySelector('.newsletter-signup-block form');\r\n const formData = new FormData(newsLetterForm);\r\n if(formValid){\r\n submitButton.disabled = true;\r\n window.fetch(`/umbraco/surface/NewsletterSignupBlock/Submit`, {\r\n method: \"post\",\r\n body: formData\r\n }).then(response=>{\r\n\r\n const contentType = response.headers.get(\"content-type\");\r\n if (contentType && contentType.indexOf(\"application/json\") !== -1) {\r\n return response.json().then(data => {\r\n errorInfo.innerHTML = data.errorMessage;\r\n errorInfo.classList.toggle(\"hidden\",false);\r\n submitButton.disabled = false;\r\n });\r\n } else {\r\n return response.text().then(text => {\r\n const content = document.querySelector(\"[data-content]\")\r\n content.innerHTML = text;\r\n });\r\n }\r\n \r\n });\r\n }\r\n \r\n \r\n })\r\n }\r\n };\r\n \r\n return {\r\n initBlock\r\n };\r\n})();\r\n\r\nControlBinders.register('.newsletter-signup-block', el => newsletterSignup.initBlock(el));\r\n"],"file":"newsletterSignupBlock-min.js"}