{"version":3,"sources":["forms.umbraco.js"],"names":["app","umbracoForms","let","loggedError","init","forms","forEach","document","querySelectorAll","addEventListener","LoadingOverlay","form","submitButtons","button","formErrors","event","window","setTimeout","pushEvent","pageUrl","location","length","dataLayer","pathname","errorMessage","innerText","contains","captchaErrors","initQuoteForm","dictionary","preventDefault","textArea","querySelector","buttonContainer","createElement","fields","addProduct","classList","add","field","label","textArray","i","push","replace","trim","value","join"],"mappings":"AAIAA,IACEC,aAAA,wBAEAC,IAAIC,GAAc,EA4FlB,MAAO,CACLC,KA3FF,WAGEC,MAAMC,EAAQC,SAAAC,iBAAU,uBAAxBH,EAGMC,QAACG,SAAAA,GAFL,MAGEC,EAAeC,EAAfH,iBAAA,yBA+BJ,GA5BEI,EAAAA,iBAAsB,SAACC,SAAAA,GACrBA,eAAOJ,UADTG,EAKYE,QAAU,SAAAD,GAJpBA,EAAOJ,iBAAiB,QAAS,SAACM,GAM9BZ,GAHFa,OAKOC,WAAWC,WAJhB,IAKIC,EAAeR,EAACS,iBADmB,2BAArC,EAAAN,EAAAO,SAMDrB,IAAAsB,UAAAJ,UAAA,YAAA,CAXHC,QAAAH,OAAAI,SAAAG,SAHFC,aAAAV,EAAA,GAAAW,YAmBMtB,GAAWuB,IAElB,SAMCC,EAAAA,UAAcN,SAAY,iBAC5BO,CAAAA,IAsBKnB,EAtBLE,EASFK,OAcOa,WAACC,OAAND,YAAA,GAED,MAHDE,EAAApB,EAAAqB,cAKAC,2CAZMA,EAAkB1B,SAAS2B,cAAc,OAkBzCC,GAFRF,EAASG,UAAiBL,IAAAA,QAETpB,SAAKH,cAAiB,MAdrCK,EAAOwB,UAAUC,IAAI,UAgBrBzB,EAAKY,UAAYT,OAASa,WAAU,4BAbpChB,EAeM0B,iBAAgBb,QAAS,SAAAX,GAE7BA,EAAMyB,iBACNJ,CAOgBK,EAPLA,EAAXL,IAOgBK,EAPLA,EAUfvC,IAAAuC,EAAA,GAjBE,IAAMN,EAASxB,EAAKH,iBAAiB,wBAkBvC,IAAON,IAAAwC,EAAA,EAAAA,EAAAP,EAAAd,OAAAqB,IAAA,CACLtC,MAAMA,EAAAA,EAAAA,GADR,GAAAmC,EAAAF,UAAAX,SAAA,iCAAA,MAZI,MAAMc,EAAQD,EAAMP,cAAc,wBAiBpC/B,GAAaG,EAAjBuC,KAAAH,EAAAf,UAAAmB,QAAA,IAAA,IAAAC,OAAA,KAhBMT,OAG0B,EAAxBL,EAASe,MAAMzB,SACjBU,EAASe,OAAS,aAGpBf,EAASe,OAASL,EAAUM,KAAK,UAJjCd,EAAaa,YAAejC,GAf5BkB,EAgBEA,MAASe,MAhDX,IAKEnB,EAAApB,SAAAC,iBAID,yDAN0B,EAAvBmB,EAAcN,QAUlBL,IAAMM,UAACO,UAAmB,YAAN,CAEpBV,QAAMY,OAAWpB,SAAKqB,SAItBR,aAAMS,EAA0B,GAACC,cA1DnC,GAmGFlC,IAAIC,aAAaG","file":"../forms.umbraco.min.js","sourcesContent":["/* ========================================================================\r\n Umbraco Forms\r\n ========================================================================== */\r\n\r\napp.umbracoForms = (function () {\r\n 'use strict';\r\n\r\n let loggedError = false;\r\n\r\n function init() {\r\n const forms = document.querySelectorAll('.umbraco-forms-form');\r\n\r\n forms.forEach((form) => {\r\n const submitButtons = form.querySelectorAll('button[type=\"submit\"]');\r\n\r\n form.addEventListener('submit', (event) => {\r\n LoadingOverlay('body');\r\n });\r\n\r\n submitButtons.forEach((button) => {\r\n button.addEventListener('click', (event) => {\r\n if (loggedError) return;\r\n\r\n window.setTimeout(function () {\r\n const formErrors = form.querySelectorAll('.field-validation-error');\r\n\r\n if (formErrors.length > 0) {\r\n // DATALAYER\r\n app.dataLayer.pushEvent('formError', {\r\n pageUrl: window.location.pathname,\r\n errorMessage: formErrors[0].innerText,\r\n });\r\n\r\n loggedError = true;\r\n }\r\n }, 250);\r\n });\r\n });\r\n\r\n if (form.classList.contains('js-quote-form')) {\r\n initQuoteForm(form);\r\n }\r\n });\r\n\r\n const captchaErrors = document.querySelectorAll(\r\n '.umbraco-forms-form .ucaptcha .field-validation-error'\r\n );\r\n if (captchaErrors.length > 0) {\r\n // DATALAYER\r\n app.dataLayer.pushEvent('formError', {\r\n pageUrl: window.location.pathname,\r\n errorMessage: captchaErrors[0].innerText,\r\n });\r\n }\r\n }\r\n\r\n function initQuoteForm(form) {\r\n window.dictionary = window.dictionary || {};\r\n\r\n const textArea = form.querySelector(\r\n '.formslabelsadditionalproducts textarea'\r\n );\r\n\r\n const buttonContainer = document.createElement('div');\r\n buttonContainer.classList.add('mt-2');\r\n\r\n const button = document.createElement('a');\r\n button.classList.add('button');\r\n button.innerText = window.dictionary['Forms.Buttons.AddProduct'];\r\n\r\n button.addEventListener('click', (event) => {\r\n event.preventDefault();\r\n addProduct(form, textArea);\r\n });\r\n\r\n buttonContainer.appendChild(button);\r\n textArea.after(buttonContainer);\r\n }\r\n\r\n function addProduct(form, textArea) {\r\n let textArray = [];\r\n const fields = form.querySelectorAll('.umbraco-forms-field');\r\n\r\n for (let i = 0; i < fields.length; i++) {\r\n const field = fields[i];\r\n if (field.classList.contains('formslabelsadditionalproducts')) break;\r\n\r\n const label = field.querySelector('.umbraco-forms-label');\r\n if (label) textArray.push(label.innerText.replace('*', '').trim() + ':');\r\n }\r\n\r\n if (textArea.value.length > 0) {\r\n textArea.value += '\\n\\n';\r\n }\r\n\r\n textArea.value += textArray.join('\\n');\r\n }\r\n\r\n // Expose public functions and variables\r\n return {\r\n init: init,\r\n };\r\n})();\r\n\r\napp.umbracoForms.init();\r\n"]}