{"version":3,"file":"site.min.js","sources":["site.js"],"sourcesContent":["const _siteMessageTranslations = {\r\n en: {\r\n warning: \"Warning!\",\r\n loggOff: \"You will be logged off in 5 mins. Please save your work!\",\r\n error: \"Error!\",\r\n success: \"Success!\",\r\n info: \"Info!\",\r\n aiName: \"Ahmed AI\",\r\n aiWelcome:\r\n \"Welcome to Ahmed AI! I'm here to help you create effective and insightful surveys. To get started, simply tell me what type of survey you need, and I'll do the rest.\",\r\n aiDailyLimit:\r\n \"Daily limit for AI usage has been reached. Please try again tomorrow.\",\r\n aiSuccess: \"Successfully generated form.\",\r\n aiUsageLimit:\r\n \"AI Usage limit has been reached. Please contact your administrator.\",\r\n },\r\n ar: {\r\n warning: \"تحذير!\",\r\n loggOff: \"سوف تخرج خلال 5 دقائق. الرجاء حفظ عملك!\",\r\n error: \"هناك خطأ\",\r\n success: \"نجاح\",\r\n info: \"الاعلام\",\r\n aiName: \"أحمد مساعد\",\r\n aiWelcome:\r\n \"مرحباً بكم مع أحمد مساعد الذكاء الاصطناعي! أنا هنا لمساعدتكم في إنشاء استطلاعات فعّالة ومفيدة. للبدء، ما عليك إلا إبلاغي بنوع الاستطلاع أو الاستمارة، وسأقوم أنا بالباقي\",\r\n aiDailyLimit:\r\n \"تم الوصول إلى الحد اليومي لاستخدام الذكاء الاصطناعي ، الرجاء المحاولة مرة أخرى غداً.\",\r\n aiSuccess: \"تم إنشاء النموذج بنجاح.\",\r\n aiUsageLimit:\r\n \"تم الوصول إلى الحد الأعلى لاستخدام خاصية الذكاء الاصطناعي. الرجاء الاتصال بمسؤول النظام.\",\r\n },\r\n};\r\n\r\nsetLoggedUserDetails();\r\nrunPageLoadValidations();\r\n\r\nconst _emailRegex =\r\n /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i;\r\nconst _passwordRegex =\r\n /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@$!%*?])[A-Za-z\\d@$!%*?]{8,}$/;\r\n\r\nfunction validateRequired(data, shouldHighlight = true) {\r\n let isValid = true;\r\n let count = 0;\r\n let firstKey;\r\n if (typeof data === \"object\" && data !== null && data !== undefined) {\r\n for (const key in data) {\r\n if (data[key] === \"\" || data[key] === null || data[key] === undefined) {\r\n if (shouldHighlight) {\r\n $(`#${key}:visible`).addClass(\"is-invalid\").addClass(\"was-validated\");\r\n if (count === 0) {\r\n firstKey = key;\r\n count++;\r\n }\r\n }\r\n isValid = false;\r\n } else {\r\n $(`#${key}:visible`)\r\n .removeClass(\"is-invalid\")\r\n .removeClass(\"was-validated\");\r\n }\r\n }\r\n } else {\r\n if (data === \"\" || data === null || data === undefined) {\r\n if (shouldHighlight) {\r\n $(`#${key}:visible`).addClass(\"is-invalid\").addClass(\"was-validated\");\r\n if (count === 0) {\r\n firstKey = key;\r\n count++;\r\n }\r\n }\r\n isValid = false;\r\n } else {\r\n $(`#${key}:visible`)\r\n .removeClass(\"is-invalid\")\r\n .removeClass(\"was-validated\");\r\n }\r\n }\r\n\r\n if (firstKey) {\r\n document.getElementById(firstKey).scrollIntoView();\r\n $(`#${firstKey}`).focus();\r\n }\r\n\r\n return isValid;\r\n}\r\n\r\nfunction validateEmail(email) {\r\n let isValid = true;\r\n if (\r\n email === \"\" ||\r\n email === null ||\r\n email === undefined ||\r\n !_emailRegex.test(email)\r\n ) {\r\n isValid = false;\r\n }\r\n return isValid;\r\n}\r\n\r\nfunction validatePassword(password) {\r\n let isValid = true;\r\n if (\r\n password === \"\" ||\r\n password === null ||\r\n password === undefined ||\r\n !_passwordRegex.test(password)\r\n ) {\r\n isValid = false;\r\n }\r\n return isValid;\r\n}\r\n\r\nfunction getUser() {\r\n const userDetails = sessionStorage.getItem(\"eqp_user\");\r\n if (!userDetails) {\r\n window.location = \"/login\";\r\n }\r\n return JSON.parse(userDetails);\r\n}\r\n\r\nfunction getToken() {\r\n const user = getUser();\r\n return user.token;\r\n}\r\n\r\nfunction storeUser(user) {\r\n sessionStorage.setItem(\"eqp_user\", JSON.stringify(user));\r\n}\r\n\r\n//let isLoginExpiryAccepted = false;\r\nfunction initiateLoginExpiryProcess() {\r\n const loginExpiryInterval = setInterval(() => {\r\n // const tokenJson = parseJwt();\r\n // const offset = Math.abs(new Date().getTimezoneOffset());\r\n // const offSetDiff = parseInt(tokenJson.toffset / 10000) - offset * 60 * 1000;\r\n // const exp = new Date(tokenJson.exp * 1000 + offSetDiff);\r\n // const timeRemaining = (exp - new Date()) / (1000 * 60);\r\n // console.log(timeRemaining);\r\n let timeRemaining = parseInt(\r\n sessionStorage.getItem(\"isLoginExpiryTimeRemaining\")\r\n );\r\n let isLoginExpiryAccepted = sessionStorage.getItem(\"isLoginExpiryAccepted\");\r\n\r\n timeRemaining -= 5;\r\n sessionStorage.setItem(\"isLoginExpiryTimeRemaining\", timeRemaining);\r\n\r\n if (timeRemaining < 300 && isLoginExpiryAccepted === \"false\") {\r\n showWarning(getMessageForUserLanguage(\"loggOff\"), false, () => {\r\n isLoginExpiryAccepted = true;\r\n sessionStorage.setItem(\"isLoginExpiryAccepted\", true);\r\n });\r\n }\r\n\r\n if (timeRemaining <= 0) {\r\n clearInterval(loginExpiryInterval);\r\n logout();\r\n }\r\n }, 5000);\r\n}\r\n\r\nfunction showLoader(message) {\r\n $(\"body\").append(`\r\n