{"version":3,"file":"form-protection-C0sjAgrJ.js","sources":["../../../../assets/default/js/form/form-protection.js"],"sourcesContent":["export class Form {\n #isDirty = false;\n\n constructor(\n w = window,\n confirmMessage = 'Het lijkt er op dat je iets aan het bewerken bent. Als je weggaat zonder op te slaan, gaan je wijzigingen verloren.',\n ) {\n this.window = w;\n this.confirmMessage = confirmMessage;\n this.bindUnload();\n }\n\n clean() {\n return !this.#isDirty;\n }\n\n start() {\n this.#isDirty = true;\n }\n\n finish() {\n this.#isDirty = false;\n }\n\n confirmationMessage() {\n return this.confirmMessage;\n }\n\n bindUnload() {\n this.window.addEventListener('beforeunload', (e) => {\n if (this.clean()) {\n return undefined;\n }\n\n e.returnValue = this.confirmationMessage();\n return e.returnValue;\n });\n }\n}\nexport default function bindToForm(formElement, message) {\n const form = new Form(window, message);\n\n for (const element of formElement.querySelectorAll('input,select,textarea')) {\n element.addEventListener('change', () => {\n form.start();\n });\n }\n\n formElement.addEventListener('change', () => {\n form.start();\n });\n\n formElement.addEventListener('submit', () => {\n form.finish();\n });\n\n return form;\n}\n"],"names":["Form","w","confirmMessage","__privateAdd","_isDirty","__privateGet","__privateSet","e","bindToForm","formElement","message","form","element"],"mappings":"+sBAAO,MAAMA,CAAK,CAGd,YACIC,EAAI,OACJC,EAAiB,sHACnB,CALFC,EAAA,KAAAC,EAAW,IAMP,KAAK,OAASH,EACd,KAAK,eAAiBC,EACtB,KAAK,WAAY,CACzB,CAEI,OAAQ,CACJ,MAAO,CAACG,EAAA,KAAKD,EACrB,CAEI,OAAQ,CACJE,EAAA,KAAKF,EAAW,GACxB,CAEI,QAAS,CACLE,EAAA,KAAKF,EAAW,GACxB,CAEI,qBAAsB,CAClB,OAAO,KAAK,cACpB,CAEI,YAAa,CACT,KAAK,OAAO,iBAAiB,eAAiBG,GAAM,CAChD,GAAI,MAAK,QAIT,OAAAA,EAAE,YAAc,KAAK,oBAAqB,EACnCA,EAAE,WACrB,CAAS,CACT,CACA,CArCIH,EAAA,YAsCW,SAASI,EAAWC,EAAaC,EAAS,CACrD,MAAMC,EAAO,IAAIX,EAAK,OAAQU,CAAO,EAErC,UAAWE,KAAWH,EAAY,iBAAiB,uBAAuB,EACtEG,EAAQ,iBAAiB,SAAU,IAAM,CACrCD,EAAK,MAAO,CACxB,CAAS,EAGL,OAAAF,EAAY,iBAAiB,SAAU,IAAM,CACzCE,EAAK,MAAO,CACpB,CAAK,EAEDF,EAAY,iBAAiB,SAAU,IAAM,CACzCE,EAAK,OAAQ,CACrB,CAAK,EAEMA,CACX"}