{"version":3,"file":"js/9369.d87698dff00509dd.js","mappings":"sIAEAA,SAASC,OAAM,KACX,MAAMC,EAAOF,SAASG,eAAe,iBACrC,IAAKD,EAAM,OAEX,MAAME,EAAQF,EAAKG,cAAc,SAC3BC,EAAYJ,EAAKG,cAAc,eAC/BE,EAAUD,EAAUE,aAAa,YAEjCC,EAAiBP,EAAKG,cAA2B,qBAEjDK,EAAgBR,EAAKS,iBAA8B,oBAEnDC,EAAeV,EAAKG,cAA2B,2BAC/CQ,EAAiBX,EAAKG,cAA2B,6BACjDS,EAAoBZ,EAAKG,cAA2B,gCAEpDU,EAAcA,KAChB,IAAIC,EAAMZ,EAAMa,MAGhBD,EAAMA,EAAIE,QAAQ,MAAO,IAGzB,IAAIC,EAAiBH,EAAIE,QAAQ,iBAAkB,OAG/CF,EAAII,OAAS,IAAM,IACnBD,EAAiBA,EAAeE,QAGpCjB,EAAMa,MAAQE,CAAc,EAG1BG,EAAgBA,KAClB,MAAMN,EAAMZ,EAAMa,MACZM,EAAkB,qCACxB,OAAOA,EAAgBC,KAAKR,EAAI,EAG9BS,EAAWA,KACb,MAAMC,EAAUJ,IAYhB,OAXIR,IACAA,EAAkBa,MAAMC,QAAUF,EAAU,OAAS,QACrDZ,EAAkBa,MAAME,QAAUH,EAAU,IAAM,KAElDjB,IACIiB,EACAjB,EAAeqB,UAAUC,OAAO,SAEhCtB,EAAeqB,UAAUE,IAAI,UAG9BN,CAAO,EAGZO,EAAmBA,KACjBvB,GACAA,EAAcwB,SAASC,IACnBA,EAAMR,MAAMC,QAAU,OACtBO,EAAMR,MAAME,QAAU,GAAG,IAG7BpB,IACAA,EAAeqB,UAAUC,OAAO,WAChCtB,EAAeqB,UAAUC,OAAO,SACpC,EAGEK,EAAYA,KACVxB,IACAA,EAAae,MAAMC,QAAU,QAC7BhB,EAAae,MAAME,QAAU,KAE7BpB,GACAA,EAAeqB,UAAUE,IAAI,QACjC,EAGEK,EAAcA,KACZxB,IACAA,EAAec,MAAMC,QAAU,QAC/Bf,EAAec,MAAME,QAAU,KAG/BpB,GACAA,EAAeqB,UAAUE,IAAI,WAGjCM,YAAW,KACPL,GAAkB,GACnB,IAAK,EAGNM,EAASC,UACXlC,EAAUwB,UAAUE,IAAI,WACxB,UACUS,EAAAA,EAAWC,KAAK,4BAA6B,CAAEC,OAAQvC,EAAMa,MAAOV,YAC1E8B,GACJ,CAAE,MACED,GACJ,CAAE,QACE9B,EAAUwB,UAAUC,OAAO,UAC/B,GAGJ3B,EAAMwC,iBAAiB,SAAS,WAC5BX,IACAlB,GACJ,IAEAT,EAAUsC,iBAAiB,SAAS,KAChCX,IACIR,KACAc,GACJ,GACF,G","sources":["webpack://@sazka/web/./js/app/mobile-apps/widgets/_send-sms.ts"],"sourcesContent":["import { httpClient } from \"@sazka/utils/http-clients/http-client\";\r\n\r\ndocument.ready(() => {\r\n const root = document.getElementById(\"send-sms-root\");\r\n if (!root) return;\r\n\r\n const input = root.querySelector(\"input\");\r\n const submitBtn = root.querySelector(\"#btn-submit\");\r\n const appCode = submitBtn.getAttribute(\"data-app\");\r\n\r\n const wrapperElement = root.querySelector<HTMLElement>(\".send-sms-wrapper\");\r\n\r\n const labelElements = root.querySelectorAll<HTMLElement>(\".send-sms__label\");\r\n\r\n const errorElement = root.querySelector<HTMLElement>(\".send-sms__label--error\");\r\n const successElement = root.querySelector<HTMLElement>(\".send-sms__label--success\");\r\n const validationElement = root.querySelector<HTMLElement>(\".send-sms__label--validation\");\r\n\r\n const formatInput = () => {\r\n let val = input.value;\r\n\r\n // Remove all non-digit characters (including existing spaces)\r\n val = val.replace(/\\D/g, \"\");\r\n\r\n // Format the input into groups of three digits from the left side\r\n let formattedInput = val.replace(/(\\d{3})(?=\\d)/g, \"$1 \");\r\n\r\n // Ensure no trailing space if the number of digits is a multiple of three\r\n if (val.length % 3 === 0) {\r\n formattedInput = formattedInput.trim();\r\n }\r\n\r\n input.value = formattedInput;\r\n };\r\n\r\n const validateInput = () => {\r\n const val = input.value;\r\n const validationRegex = /^(\\+420|00420)?[ ]*([0-9][ ]*){9}$/;\r\n return validationRegex.test(val);\r\n };\r\n\r\n const validate = () => {\r\n const isValid = validateInput();\r\n if (validationElement) {\r\n validationElement.style.display = isValid ? \"none\" : \"block\";\r\n validationElement.style.opacity = isValid ? \"0\" : \"1\";\r\n }\r\n if (wrapperElement) {\r\n if (isValid) {\r\n wrapperElement.classList.remove(\"error\");\r\n } else {\r\n wrapperElement.classList.add(\"error\");\r\n }\r\n }\r\n return isValid;\r\n };\r\n\r\n const resetStateLabels = () => {\r\n if (labelElements) {\r\n labelElements.forEach((label) => {\r\n label.style.display = \"none\";\r\n label.style.opacity = \"0\";\r\n });\r\n }\r\n if (wrapperElement) {\r\n wrapperElement.classList.remove(\"success\");\r\n wrapperElement.classList.remove(\"error\");\r\n }\r\n };\r\n\r\n const showError = () => {\r\n if (errorElement) {\r\n errorElement.style.display = \"block\";\r\n errorElement.style.opacity = \"1\";\r\n }\r\n if (wrapperElement) {\r\n wrapperElement.classList.add(\"error\");\r\n }\r\n };\r\n\r\n const showSuccess = () => {\r\n if (successElement) {\r\n successElement.style.display = \"block\";\r\n successElement.style.opacity = \"1\";\r\n }\r\n\r\n if (wrapperElement) {\r\n wrapperElement.classList.add(\"success\");\r\n }\r\n\r\n setTimeout(() => {\r\n resetStateLabels();\r\n }, 3000);\r\n };\r\n\r\n const submit = async () => {\r\n submitBtn.classList.add(\"loading\");\r\n try {\r\n await httpClient.post(\"/api/mobile-apps/send-sms\", { number: input.value, appCode });\r\n showSuccess();\r\n } catch {\r\n showError();\r\n } finally {\r\n submitBtn.classList.remove(\"loading\");\r\n }\r\n };\r\n\r\n input.addEventListener(\"input\", function () {\r\n resetStateLabels();\r\n formatInput();\r\n });\r\n\r\n submitBtn.addEventListener(\"click\", () => {\r\n resetStateLabels();\r\n if (validate()) {\r\n submit();\r\n }\r\n });\r\n});\r\n"],"names":["document","ready","root","getElementById","input","querySelector","submitBtn","appCode","getAttribute","wrapperElement","labelElements","querySelectorAll","errorElement","successElement","validationElement","formatInput","val","value","replace","formattedInput","length","trim","validateInput","validationRegex","test","validate","isValid","style","display","opacity","classList","remove","add","resetStateLabels","forEach","label","showError","showSuccess","setTimeout","submit","async","httpClient","post","number","addEventListener"],"sourceRoot":""}