{"version":3,"file":"js/6703-9e86dcbc5e88a879337b.chunk.js","mappings":"2FAAA,MAAMA,EAAa,kBAEnB,MAAMC,UAAsCC,YACtCC,WACF,OAAOC,KAAKC,cAAc,OAC5B,CAEIC,oBACF,OAAOF,KAAKG,iBAAiB,2BAC/B,CAEIC,0BACF,OAAOJ,KAAKC,cAAc,mBAAmBL,KAC/C,CAEIS,uBACF,OAAOL,KAAKM,QAAQD,gBACtB,CAEIE,aACF,OAAOP,KAAKM,QAAQC,MACtB,CAEAC,oBACER,KAAKE,cAAcO,SAASC,IAC1BA,EAAOC,iBAAiB,QAASX,KAAKY,cAAcC,KAAKb,KAAMU,GAAQ,GAE3E,CAEAE,cAAcF,EAAQI,GACpBA,EAAMC,iBAEFC,WACFA,WAAWC,OAAM,KACfD,WACGE,QAAQlB,KAAKK,iBAAkB,CAAEE,OAAQP,KAAKO,SAC9CY,MAAMC,IACLpB,KAAKqB,2BAA2BC,MAAQF,EACxCpB,KAAKD,KAAKwB,cAAcb,EAAO,GAC/B,IAGNV,KAAKD,KAAKwB,eAEd,CAEAF,2BACE,IAAKrB,KAAKI,oBAAqB,CAC7B,MAAMoB,EAAQC,SAASC,cAAc,SACrCF,EAAMG,KAAO,SACbH,EAAMI,KAAOhC,EACbI,KAAKD,KAAK8B,YAAYL,EACxB,CAEA,OAAOxB,KAAKI,mBACd,EAGG0B,OAAOC,eAAeC,IAAI,gCAC7BF,OAAOjC,8BAAgCA,EACvCiC,OAAOC,eAAeE,OACpB,6BACApC,G","sources":["webpack://endrun/./app/components/captcha_protected_form.js"],"sourcesContent":["const INPUT_NAME = 'recaptcha_token';\n\nclass CaptchaProtectedFormComponent extends HTMLElement {\n get form() {\n return this.querySelector('form');\n }\n\n get submitButtons() {\n return this.querySelectorAll('form button[type=submit]');\n }\n\n get recaptchaTokenInput() {\n return this.querySelector(`form input[name=${INPUT_NAME}]`);\n }\n\n get recaptchaSiteKey() {\n return this.dataset.recaptchaSiteKey;\n }\n\n get action() {\n return this.dataset.action;\n }\n\n connectedCallback() {\n this.submitButtons.forEach((button) => {\n button.addEventListener('click', this.captureSubmit.bind(this, button));\n });\n }\n\n captureSubmit(button, event) {\n event.preventDefault();\n\n if (grecaptcha) {\n grecaptcha.ready(() => {\n grecaptcha\n .execute(this.recaptchaSiteKey, { action: this.action })\n .then((token) => {\n this.findOrCreateCaptchaInput().value = token;\n this.form.requestSubmit(button);\n });\n });\n } else {\n this.form.requestSubmit();\n }\n }\n\n findOrCreateCaptchaInput() {\n if (!this.recaptchaTokenInput) {\n const input = document.createElement('input');\n input.type = 'hidden';\n input.name = INPUT_NAME;\n this.form.appendChild(input);\n }\n\n return this.recaptchaTokenInput;\n }\n}\n\nif (!window.customElements.get('tmp-captcha-protected-form')) {\n window.CaptchaProtectedFormComponent = CaptchaProtectedFormComponent;\n window.customElements.define(\n 'tmp-captcha-protected-form',\n CaptchaProtectedFormComponent\n );\n}\n"],"names":["INPUT_NAME","CaptchaProtectedFormComponent","HTMLElement","form","this","querySelector","submitButtons","querySelectorAll","recaptchaTokenInput","recaptchaSiteKey","dataset","action","connectedCallback","forEach","button","addEventListener","captureSubmit","bind","event","preventDefault","grecaptcha","ready","execute","then","token","findOrCreateCaptchaInput","value","requestSubmit","input","document","createElement","type","name","appendChild","window","customElements","get","define"],"sourceRoot":""}