{ "version": 3, "sources": ["../../../../../../../../source/febe/ui/src/scripts/ui.signup.ts"], "sourcesContent": ["import Utils from \"./classes/Utils.js\";\n\nfunction getParentWithClass(className: string, node: HTMLElement) {\n if (node instanceof HTMLElement) {\n while (node.tagName.toLowerCase() !== \"body\") {\n node = node.parentElement;\n if (node.classList.contains(className)) break;\n }\n return node;\n } else {\n return node;\n }\n}\n\n/** utilities to support visual enhancements in forms */\nglobalThis.formHandlers = {\n oninvalid: function (input: HTMLInputElement) {\n // look up surroundings (to fallback if it's not within a control element)\n const control = getParentWithClass(\"control\", input);\n // create message\n const message = document.createElement(\"p\");\n message.classList.add(\"error\");\n message.textContent = input.getAttribute(\"title\") || \"This value is incorrect\";\n // if this is contained in a control element, attach it inside the control\n // else, append message after input\n if (control) {\n control.classList.add(\"has-error\");\n if (control.querySelector(\".error\")) control.querySelector(\".error\").remove();\n control.appendChild(message);\n } else {\n input.parentElement.insertBefore(message, input.nextSibling);\n }\n return false;\n },\n};\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n /**\n * populate countries + region dropdowns\n */\n const country = document.querySelector('select[name=\"country\"]');\n const region = document.querySelector('select[name=\"region\"]');\n\n if (country !== null) {\n if (globalThis.page_data.form_data && globalThis.page_data.form_data.country) {\n country.value = globalThis.page_data.form_data.country;\n if (globalThis.page_data.form_data && globalThis.page_data.form_data.region) {\n region.value = globalThis.page_data.form_data.region;\n }\n }\n\n Utils.Request({\n url: \"/static/json/countries.json\",\n })\n .fetch()\n .then((countries: any) => {\n const loadedCountries = countries;\n\n function setRegions(country: string) {\n const divisions = loadedCountries[country].divisions;\n region.innerHTML = \"\";\n for (let div in divisions) {\n const division = divisions[div];\n const opt = document.createElement(\"option\");\n opt.value = div;\n opt.textContent = division;\n region.appendChild(opt);\n }\n }\n\n // populate countries in country select\n for (let key in countries) {\n const c = countries[key].name;\n const opt = document.createElement(\"option\");\n if (key === \"disabled\") {\n opt.disabled = true;\n }\n opt.value = key;\n opt.textContent = c;\n country.appendChild(opt);\n }\n\n country.addEventListener(\"change\", () => setRegions(country.value));\n\n if (globalThis.page_data.form_data && globalThis.page_data.form_data.country) {\n country.value = globalThis.page_data.form_data.country;\n setRegions(country.value);\n if (globalThis.page_data.form_data && globalThis.page_data.form_data.region) {\n region.value = globalThis.page_data.form_data.region;\n }\n }\n });\n }\n\n /**\n * Unlock registering after checking agreement checkbox\n */\n const tos = document.querySelector('input[name=\"tos\"]');\n const submit = document.querySelector('input[type=\"submit\"]');\n if (tos) tos.addEventListener(\"change\", () => (submit.disabled = !tos.checked));\n});\n"], "mappings": "4HAEA,SAASA,EAAmBC,EAAmBC,EAAmB,CAChE,GAAIA,aAAgB,YAAa,CAC/B,KAAOA,EAAK,QAAQ,YAAY,IAAM,SACpCA,EAAOA,EAAK,cACR,CAAAA,EAAK,UAAU,SAASD,CAAS,IAArC,CAEF,OAAOC,CACT,KACE,QAAOA,CAEX,CAGA,WAAW,aAAe,CACxB,UAAW,SAAUC,EAAyB,CAE5C,IAAMC,EAAUJ,EAAmB,UAAWG,CAAK,EAE7CE,EAAU,SAAS,cAAc,GAAG,EAC1C,OAAAA,EAAQ,UAAU,IAAI,OAAO,EAC7BA,EAAQ,YAAcF,EAAM,aAAa,OAAO,GAAK,0BAGjDC,GACFA,EAAQ,UAAU,IAAI,WAAW,EAC7BA,EAAQ,cAAc,QAAQ,GAAGA,EAAQ,cAAc,QAAQ,EAAE,OAAO,EAC5EA,EAAQ,YAAYC,CAAO,GAE3BF,EAAM,cAAc,aAAaE,EAASF,EAAM,WAAW,EAEtD,EACT,CACF,EAEA,SAAS,iBAAiB,mBAAoB,UAAY,CAIxD,IAAMG,EAAU,SAAS,cAAiC,wBAAwB,EAC5EC,EAAS,SAAS,cAAiC,uBAAuB,EAE5ED,IAAY,OACV,WAAW,UAAU,WAAa,WAAW,UAAU,UAAU,UACnEA,EAAQ,MAAQ,WAAW,UAAU,UAAU,QAC3C,WAAW,UAAU,WAAa,WAAW,UAAU,UAAU,SACnEC,EAAO,MAAQ,WAAW,UAAU,UAAU,SAIlDC,EAAM,QAAQ,CACZ,IAAK,6BACP,CAAC,EACE,MAAM,EACN,KAAMC,GAAmB,CACxB,IAAMC,EAAkBD,EAExB,SAASE,EAAWL,EAAiB,CACnC,IAAMM,EAAYF,EAAgBJ,CAAO,EAAE,UAC3CC,EAAO,UAAY,GACnB,QAASM,KAAOD,EAAW,CACzB,IAAME,EAAWF,EAAUC,CAAG,EACxBE,EAAM,SAAS,cAAc,QAAQ,EAC3CA,EAAI,MAAQF,EACZE,EAAI,YAAcD,EAClBP,EAAO,YAAYQ,CAAG,CACxB,CACF,CAGA,QAASC,KAAOP,EAAW,CACzB,IAAMQ,EAAIR,EAAUO,CAAG,EAAE,KACnBD,EAAM,SAAS,cAAc,QAAQ,EACvCC,IAAQ,aACVD,EAAI,SAAW,IAEjBA,EAAI,MAAQC,EACZD,EAAI,YAAcE,EAClBX,EAAQ,YAAYS,CAAG,CACzB,CAEAT,EAAQ,iBAAiB,SAAU,IAAMK,EAAWL,EAAQ,KAAK,CAAC,EAE9D,WAAW,UAAU,WAAa,WAAW,UAAU,UAAU,UACnEA,EAAQ,MAAQ,WAAW,UAAU,UAAU,QAC/CK,EAAWL,EAAQ,KAAK,EACpB,WAAW,UAAU,WAAa,WAAW,UAAU,UAAU,SACnEC,EAAO,MAAQ,WAAW,UAAU,UAAU,QAGpD,CAAC,GAML,IAAMW,EAAM,SAAS,cAAgC,mBAAmB,EAClEC,EAAS,SAAS,cAAgC,sBAAsB,EAC1ED,GAAKA,EAAI,iBAAiB,SAAU,IAAOC,EAAO,SAAW,CAACD,EAAI,OAAQ,CAChF,CAAC", "names": ["getParentWithClass", "className", "node", "input", "control", "message", "country", "region", "Utils", "countries", "loadedCountries", "setRegions", "divisions", "div", "division", "opt", "key", "c", "tos", "submit"] }