{"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":""}