{"version":3,"file":"y-form-controller-DdjxJ00c.js","sources":["../../../app/frontend/src/yobbers/js/controllers/y-form-controller.js"],"sourcesContent":["import { Controller } from '@hotwired/stimulus';\n\nexport default class extends Controller {\n connect() {\n this.handleFormError();\n\n this.submitButton = this.element.querySelector('button[type=\"submit\"]');\n if (this.submitButton) this.oldSubmitText = this.submitButton.innerText;\n\n this.element.addEventListener('turbo:submit-start', this.disableSubmit);\n this.element.addEventListener('turbo:submit-end', this.handleSubmit);\n this.element.addEventListener('turbo:submit-end', this.handleFormError);\n }\n\n disconnect() {\n this.element.removeEventListener('turbo:submit-start', this.disableSubmit);\n this.element.removeEventListener('turbo:submit-end', this.handleSubmit);\n this.element.removeEventListener('turbo:submit-end', this.handleFormError);\n }\n\n handleFormError = () => {\n // Selecting the error class when the input tag does not include the form-error class.\n // For example date pickers and select elements etc.\n const formErrorEl =\n this.element.querySelector('input.form-error') ||\n this.element.querySelector('.form-group-error');\n\n if (!formErrorEl) return;\n\n formErrorEl.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'start'\n });\n\n if (formErrorEl.tagName.toLowerCase() !== 'input') return;\n\n setTimeout(() => {\n formErrorEl.focus();\n }, 10);\n };\n\n handleSubmit = (e) => {\n if (this.oldSubmitText) this.enableSubmit();\n\n if (e.detail.success) {\n this.dispatch('submit-success');\n }\n };\n\n disableSubmit = () => {\n if (!this.submitButton) return;\n\n const dataset = this.submitButton?.dataset;\n if (!dataset) return;\n\n const replacement = dataset.turboDisableWith || dataset.disableWith;\n\n if (!replacement) return;\n this.submitButton.innerHTML = replacement;\n };\n\n enableSubmit = () => {\n this.submitButton = this.oldSubmitText;\n };\n\n getTopOffset(controlEl) {\n const labelOffset = 80;\n return controlEl.getBoundingClientRect().top + window.scrollY - labelOffset;\n }\n}\n"],"names":["YFormController","Controller","__publicField","formErrorEl","e","dataset","_a","replacement","controlEl"],"mappings":"2NAEe,MAAKA,UAASC,CAAW,CAAzB,kCAkBbC,EAAA,uBAAkB,IAAM,CAGtB,MAAMC,EACJ,KAAK,QAAQ,cAAc,kBAAkB,GAC7C,KAAK,QAAQ,cAAc,mBAAmB,EAE3CA,IAELA,EAAY,eAAe,CACzB,SAAU,SACV,MAAO,UACP,OAAQ,OACd,CAAK,EAEGA,EAAY,QAAQ,YAAW,IAAO,SAE1C,WAAW,IAAM,CACfA,EAAY,MAAO,CACpB,EAAE,EAAE,EACN,GAEDD,EAAA,oBAAgBE,GAAM,CAChB,KAAK,eAAe,KAAK,aAAc,EAEvCA,EAAE,OAAO,SACX,KAAK,SAAS,gBAAgB,CAEjC,GAEDF,EAAA,qBAAgB,IAAM,OACpB,GAAI,CAAC,KAAK,aAAc,OAExB,MAAMG,GAAUC,EAAA,KAAK,eAAL,YAAAA,EAAmB,QACnC,GAAI,CAACD,EAAS,OAEd,MAAME,EAAcF,EAAQ,kBAAoBA,EAAQ,YAEnDE,IACL,KAAK,aAAa,UAAYA,EAC/B,GAEDL,EAAA,oBAAe,IAAM,CACnB,KAAK,aAAe,KAAK,aAC1B,GA7DD,SAAU,CACR,KAAK,gBAAiB,EAEtB,KAAK,aAAe,KAAK,QAAQ,cAAc,uBAAuB,EAClE,KAAK,eAAc,KAAK,cAAgB,KAAK,aAAa,WAE9D,KAAK,QAAQ,iBAAiB,qBAAsB,KAAK,aAAa,EACtE,KAAK,QAAQ,iBAAiB,mBAAoB,KAAK,YAAY,EACnE,KAAK,QAAQ,iBAAiB,mBAAoB,KAAK,eAAe,CAC1E,CAEE,YAAa,CACX,KAAK,QAAQ,oBAAoB,qBAAsB,KAAK,aAAa,EACzE,KAAK,QAAQ,oBAAoB,mBAAoB,KAAK,YAAY,EACtE,KAAK,QAAQ,oBAAoB,mBAAoB,KAAK,eAAe,CAC7E,CAgDE,aAAaM,EAAW,CAEtB,OAAOA,EAAU,sBAAuB,EAAC,IAAM,OAAO,QAAU,EACpE,CACA"}