{"version":3,"file":"estebyan.min.js","sources":["estebyan.js"],"sourcesContent":["// #region Page load\r\n\r\nconst _surveyLink = getSurveyLink();\r\n\r\nlet _workflowUniqueKey;\r\n\r\nlet _builder, _builderHidden, _globalForm;\r\nlet _formSchema;\r\nlet _startTime;\r\n\r\nlet _surveyTitle, _surveyId;\r\n\r\nlet _languageContainer = {},\r\n _isMultiLanguage = false,\r\n _languageNames = [\r\n { label: \"English\", tag: \"en\", htmlLang: \"en\", dir: \"ltr\" },\r\n { label: \"Arabic\", tag: \"ar\", htmlLang: \"ar\", dir: \"rtl\" },\r\n { label: \"Hindi\", tag: \"hi\", htmlLang: \"hi\", dir: \"ltr\" },\r\n { label: \"Urdu\", tag: \"ur\", htmlLang: \"ur\", dir: \"rtl\" },\r\n ],\r\n _defaultLanguage = { label: \"English\", tag: \"en\" },\r\n _userLanguage;\r\n\r\nlet _surveyImages,\r\n _fileData = [],\r\n _submissionLogos = [];\r\n\r\nlet _audioCtx,\r\n _canvasCtx,\r\n _recorderMainSection,\r\n _recorderCanvas,\r\n _recordingBlob,\r\n _recordingClipLabel,\r\n _recordingData = [];\r\n\r\nlet _fileUploadData = [];\r\n\r\nlet _customCss = [];\r\n\r\nlet _submissionMessage = \"Thank you for taking the survey.\";\r\n\r\nlet _surveyValidation = [],\r\n _uniquenessValidatedComponents = [],\r\n _requiredValidationErrors = [];\r\n\r\nlet _linkedQuestions = [];\r\n\r\nlet _alias = [];\r\n\r\nlet _linkedData = [],\r\n _linkedSurveyData = [],\r\n _multidataLinkedDetails = [],\r\n _multidataLinkedCurrent = {};\r\n\r\nlet _linkedPictures = [];\r\n\r\nlet _otpDetails = [];\r\n\r\nlet _formSubmissionMessageDetails = [],\r\n _duplicateSubmissionMessage = {},\r\n _formSubmissionMessageAnswers = [];\r\n\r\nlet _questionList = [];\r\n\r\nlet _pageBackground = {};\r\n\r\nlet _certificate = {},\r\n _enablePrinting = false;\r\n\r\nlet _noneOfAboveDetails = [];\r\n\r\nlet _locationInfo = {},\r\n _isLocationAccessGranted = false,\r\n _locationFetched = false,\r\n _locationAccessReqComplete = false,\r\n _locationAccuracy;\r\n\r\nlet _timerInfo = {};\r\n\r\nlet _workflowDetails = {};\r\n\r\nlet _categoryLimit = [],\r\n _categoryLimitErrors = [],\r\n _categoryLimitExceeded = [];\r\n\r\nlet _advancedValidationSurveyData = [],\r\n _advancedValidationSurveyAnswerList = [];\r\n\r\nlet _editGridComponentChangedCount = 0;\r\n\r\nlet _optionContact = [],\r\n _isEmailOptionEnabled = false;\r\n\r\nlet _hiddenCount = 0,\r\n _totalPages = 1,\r\n _currentPage = 0;\r\n\r\nlet _currentQuestionKey,\r\n _currentFormChange = 0,\r\n _prevFormChange = 0;\r\n\r\nlet _surveyAttempt = {};\r\n\r\nlet _draftData = [];\r\n\r\nlet _shuffleId = Date.now();\r\n\r\nlet _uniqueQuestions = [],\r\n _uniqueQuestionsValidationResults = [];\r\n\r\nconst _defaultFormTranslation = {\r\n ar: {\r\n Submit: \"التسليم\",\r\n Cancel: \"حذف\",\r\n Save: \"حفظ\",\r\n \"Add Another\": \"إضافة آخر\",\r\n },\r\n hi: {\r\n Submit: \"सबमिट\",\r\n Cancel: \"रद्द\",\r\n Save: \"सहेजें\",\r\n \"Add Another\": \"एक अन्य जोड़ें\",\r\n },\r\n ur: {\r\n Submit: \"جمع کرائیں\",\r\n Cancel: \"منسوخ کریں\",\r\n Save: \"محفوظ کریں\",\r\n \"Add Another\": \"ایک دیگر اضافہ\",\r\n },\r\n};\r\n\r\nlet _translationData = {\r\n en: {\r\n timeLeft: \"Time left\",\r\n recordNameLabel: \"Enter a name for your sound clip?\",\r\n recordName: \"My unnamed clip\",\r\n recordAudio: \"Record audio\",\r\n record: \"Record\",\r\n stop: \"Stop\",\r\n delete: \"Delete\",\r\n save: \"Save\",\r\n close: \"Close\",\r\n cancel: \"Cancel\",\r\n load: \"Load\",\r\n generateOtp: \"Generate OTP\",\r\n otpValidFor: \"OTP valid for\",\r\n submitOtp: \"Submit OTP\",\r\n otpExpired: \"Your OTP has expired. Please try again after some time.\",\r\n otpMobileNum: \"Please enter the mobile number\",\r\n enterOtp: \"Please enter the OTP\",\r\n otpVerified: \"OTP verified successfully\",\r\n otpIncorrect: \"Incorrect OTP\",\r\n duplicateSubmission:\r\n \"You filled this survey before! You are not allowed to fill this survey more than once.\",\r\n duplicateRanking: \"Duplicate ranking found in multi-choice questions!\",\r\n invalidRanking: \"Invalid ranking found in multi-choice questions!\",\r\n userName: \"User name\",\r\n password: \"Password\",\r\n next: \"Next\",\r\n previous: \"Previous\",\r\n surveyStatus: \"Survey status\",\r\n print: \"Print\",\r\n saveDraft: \"Save draft\",\r\n loadDraft: \"Load draft\",\r\n surveyStatus: \"Survey status\",\r\n draftSubmission: \"Draft submission\",\r\n userName: \"User name\",\r\n password: \"Password\",\r\n validUserName: \"Please provide a valid user name.\",\r\n validPassword: \"Please provide a valid password.\",\r\n workflowStatus: \"Workflow status\",\r\n workflowUniqueKey: \"Workflow unique key\",\r\n forgotUniqueKey: \"Forgot unique key?\",\r\n resendUniqueKey: \"Resend unique key\",\r\n validWorkflowUniqueKey: \"Please provide the workflow unique key.\",\r\n search: \"Search\",\r\n allowLocationAccess: \"Please allow location access to take the survey.\",\r\n submittedDetails: \"Your data has been successfully submitted!\",\r\n uniqueKeyIs: \"Your unique key is {UNIQUEKEY}\",\r\n savingDraft: \"Saving draft...\",\r\n savedDraft: \"Successfully saved draft.\",\r\n loadingDraft: \"Loading draft...\",\r\n back: \"Back\",\r\n enterNameSoundClip: \"Enter a new name for your sound clip?\",\r\n enterOtpHere: \"Enter otp here\",\r\n progress: \"Progress\",\r\n fileSizeError: \"Total file size should not exceed 60 MB\",\r\n accepted: \"Accepted\",\r\n rejected: \"Rejected\",\r\n inprogress: \"In progress\",\r\n },\r\n ar: {\r\n timeLeft: \"الوقت المتبقي\",\r\n recordNameLabel: \"ادخل اسم لتسجيلك الصوتي\",\r\n recordName: \"مقطع تسجيل بلا اسم\",\r\n recordAudio: \"تسجيل صوتي\",\r\n record: \"سجِلّ\",\r\n stop: \"إيقاف\",\r\n delete: \"إلغاء\",\r\n save: \"حفظ\",\r\n close: \"إغلاق\",\r\n cancel: \"إغلاق\",\r\n load: \"تحميل\",\r\n generateOtp: \"إنشاء رمز التحقق\",\r\n otpValidFor: \"OTP صالح لـ\",\r\n submitOtp: \"تسليم رمز التحقق\",\r\n otpExpired: \"انتهت صلاحية رمز التحقق. الرجاء المحاولة مرة أخرى.\",\r\n otpMobileNum: \"الرجاء إدخال رقم الهاتف المحمول\",\r\n enterOtp: \"الرجاء إدخال كلمة المرور لمرة واحدة\",\r\n otpVerified: \"رمز التحقق صحيح\",\r\n otpIncorrect: \"رمز التحقق غير صحيح.\",\r\n duplicateSubmission:\r\n \"لقد ملأت الاستبيان من قبل! لا يسمح لك بملء هذا الاستبيان أكثر من مرة.\",\r\n duplicateRanking: \"تم العثور على ترتيب مكرر في أسئلة الاختيار من متعدد!\",\r\n invalidRanking: \"تم العثور على طلب غير صالح في أسئلة الاختيار من متعدد\",\r\n userName: \"اسم المستخدم\",\r\n password: \"كلمة المرور\",\r\n next: \"التالي\",\r\n previous: \"السابق\",\r\n surveyStatus: \"حالة الاستطلاع\",\r\n print: \"طباعة\",\r\n saveDraft: \"حفظ المسودة\",\r\n loadDraft: \"تحميل المسودة\",\r\n surveyStatus: \"حالة الاستطلاع\",\r\n draftSubmission: \"تسليم المسودة\",\r\n userName: \"اسم المستخدم\",\r\n password: \"كلمة المرور\",\r\n validUserName: \"الرجاء توفير اسم المستخدم.\",\r\n validPassword: \"الرجاء توفير كلمة المرور\",\r\n workflowStatus: \"حالة نظام التتبع\",\r\n workflowUniqueKey: \"المفتاح الأساسي لنظام التتبع\",\r\n forgotUniqueKey: \"هل نسيت المفتاح الأساسي لنظام التتبع؟\",\r\n resendUniqueKey: \"إعادة إرسال المفتاح الأساسي لنظام التتبع\",\r\n validWorkflowUniqueKey: \"الرجاء توفير المفتاح الأساسي لنظام التتبع\",\r\n search: \"البحث\",\r\n allowLocationAccess: \"يرجى السماح بالوصول إلى الموقع لإجراء الاستطلاع.\",\r\n submittedDetails: \"لقد تم إرسال بياناتكم بنجاح!\",\r\n uniqueKeyIs: \"المفتاحك الرئيسي هو {UNIQUEKEY}\",\r\n savingDraft: \"جارٍ حفظ المسودة...\",\r\n savedDraft: \"تم حفظ المسودة بنجاح.\",\r\n loadingDraft: \"جارٍ تحميل المسودة...\",\r\n back: \"الخلفي\",\r\n enterNameSoundClip: \"أدخل اسمًا جديدًا لمقطع الصوت الخاص بك؟\",\r\n enterOtpHere: \"أدخل كلمة المرور لمرة واحدة هنا\",\r\n progress: \"التقدم\",\r\n fileSizeError: \"يجب ألا يتجاوز حجم الملف الإجمالي 60 ميجا بايت\",\r\n accepted: \"مقبول\",\r\n rejected: \"مرفوض\",\r\n inprogress: \"قيد التنفيذ\",\r\n },\r\n hi: {\r\n timeLeft: \"शेष समय\",\r\n recordNameLabel: \"अपनी ध्वनि क्लिप के लिए एक नाम दर्ज करें\",\r\n recordName: \"मेरी अनाम क्लिप\",\r\n recordAudio: \"ऑडियो रिकॉर्ड करें\",\r\n record: \"रिकॉर्ड\",\r\n stop: \"रुको\",\r\n delete: \"मिटाना\",\r\n save: \"सहेजें\",\r\n close: \"बंद\",\r\n cancel: \"रद्द\",\r\n load: \"लोड\",\r\n generateOtp: \"OTP जनरेट करें\",\r\n otpValidFor: \"OTP वैध\",\r\n submitOtp: \"OTP सबमिट करें\",\r\n otpExpired:\r\n \"OTP ओटीपी समाप्त हो गया है। कृपया कुछ समय बाद पुन: प्रयास करें।\",\r\n otpMobileNum: \"मोबाइल नंबर दर्ज करें\",\r\n enterOtp: \"कृपया OTP दर्ज करें\",\r\n otpVerified: \"OTP सफलतापूर्वक सत्यापित किया गया\",\r\n otpIncorrect: \"गलत OTP\",\r\n duplicateSubmission:\r\n \"आपने यह सर्वेक्षण पहले भरा था! आपको इस सर्वेक्षण को एक से अधिक बार भरने की अनुमति नहीं है।\",\r\n duplicateRanking: \"बहुविकल्पीय प्रश्नों में डुप्लीकेट रैंकिंग मिली!\",\r\n invalidRanking: \"बहुविकल्पीय प्रश्नों में मिला अमान्य क्रम\",\r\n userName: \"उपयोगकर्ता नाम\",\r\n password: \"पासवर्ड\",\r\n next: \"अगला\",\r\n previous: \"पिछला\",\r\n surveyStatus: \"सर्वेक्षण स्थिति\",\r\n print: \"फ़ोटो\",\r\n saveDraft: \"ड्राफ़्ट सहेजें\",\r\n loadDraft: \"ड्राफ्ट लोड करें\",\r\n surveyStatus: \"सर्वेक्षण की स्थिति\",\r\n draftSubmission: \"ड्राफ्ट सबमिशन\",\r\n userName: \"उपयोगकर्ता नाम\",\r\n password: \"पासवर्ड\",\r\n validUserName: \"कृपया कोई मान्य उपयोगकर्ता नाम प्रदान करें.\",\r\n validPassword: \"कृपया एक मान्य पासवर्ड प्रदान करें.\",\r\n workflowStatus: \"कृपया कोई मान्य पासवर्ड प्रदान करें.\",\r\n workflowUniqueKey: \"कार्यप्रवाह कुंजी\",\r\n validWorkflowUniqueKey: \"कृपया वर्कफ़्लो कुंजी प्रदान करें.\",\r\n search: \"तलाश\",\r\n allowLocationAccess:\r\n \"कृपया सर्वेक्षण करने के लिए स्थान एक्सेस की अनुमति दें.\",\r\n submittedDetails: \"आपका डेटा सफलतापूर्वक सबमिट कर दिया गया है!\",\r\n uniqueKeyIs: \"आपकी कुंजी है {UNIQUEKEY}\",\r\n savingDraft: \"ड्राफ़्ट सहेजना...\",\r\n savedDraft: \"सफलतापूर्वक सहेजा गया ड्राफ़्ट.\",\r\n loadingDraft: \"ड्राफ्ट लोड हो रहा है...\",\r\n back: \"पीछे\",\r\n enterNameSoundClip: \"अपनी ध्वनि क्लिप के लिए कोई नया नाम दर्ज करें?\",\r\n enterOtpHere: \"यहां ओटीपी दर्ज करें\",\r\n progress: \"प्रगति\",\r\n fileSizeError: \"कुल फ़ाइल आकार 60 MB से अधिक नहीं होना चाहिए\",\r\n accepted: \"स्वीकृत\",\r\n rejected: \"अस्वीकृत\",\r\n inprogress: \"प्रगति पर है\",\r\n },\r\n ur: {\r\n timeLeft: \"وقت رہ گیا۔\",\r\n recordNameLabel: \"اپنے ساؤنڈ کلپ کے لیے ایک نام درج کریں۔\",\r\n recordName: \"میرا بے نام کلپ\",\r\n recordAudio: \"آڈیو ریکارڈ کریں\",\r\n record: \"ریکارڈ\",\r\n stop: \"رکو\",\r\n delete: \"مٹانا\",\r\n save: \"محفوظ کریں\",\r\n close: \"بند کریں\",\r\n cancel: \"منسوخ کریں۔\",\r\n load: \"لادنا\",\r\n generateOtp: \"OTP بنائیں\",\r\n otpValidFor: \"OTP کے لیے درست ہے۔\",\r\n submitOtp: \"OTP جمع کروائیں۔\",\r\n otpExpired:\r\n \"OTP کی میعاد ختم ہو گئی ہے۔ براہ کرم کچھ دیر بعد دوبارہ کوشش کریں۔\",\r\n otpMobileNum: \"براہ کرم موبائل نمبر درج کریں۔\",\r\n enterOtp: \"براہ کرم OTP درج کریں۔\",\r\n otpVerified: \"OTP کی کامیابی سے تصدیق ہو گئی۔\",\r\n otpIncorrect: \"غلط OTP\",\r\n duplicateSubmission:\r\n \"آپ نے اس سروے کو پہلے پُر کیا تھا! آپ کو اس سروے کو ایک سے زیادہ بار بھرنے کی اجازت نہیں ہے۔\",\r\n duplicateRanking: \"کثیر انتخابی سوالات میں ڈپلیکیٹ درجہ بندی پائی گئی۔!\",\r\n invalidRanking: \"متعدد انتخاب کے سوالات میں غیر قانونی آرڈر پایا گیا\",\r\n userName: \"صارف کا نام\",\r\n password: \"پاس ورڈ\",\r\n next: \"اگلے\",\r\n previous: \"پچھلا\",\r\n surveyStatus: \"سروے کی حیثیت\",\r\n print: \"چھاپ کریں۔\",\r\n saveDraft: \"مسودہ محفوظ کریں\",\r\n loadDraft: \"مسودہ لوڈ کریں\",\r\n surveyStatus: \"وضعیت سروے\",\r\n draftSubmission: \"مسودہ جمع کریں\",\r\n userName: \"نام\",\r\n password: \"پاسورڈ\",\r\n validUserName: \"براہ مہربانی ایک درست نام فراہم کریں.\",\r\n validPassword: \"براہ کرم ایک درست پاس ورڈ فراہم کریں.\",\r\n workflowStatus: \"Workflow کی حیثیت\",\r\n workflowUniqueKey: \"Workflow unique key\",\r\n validWorkflowUniqueKey: \"براہ کرم ورک فلو کلید فراہم کریں.\",\r\n search: \"تلاش\",\r\n allowLocationAccess:\r\n \"براہ کرم سروے لینے کے لئے مقام تک رسائی کی اجازت دیں.\",\r\n submittedDetails: \"آپ کا ڈیٹا کامیابی سے جمع کرا دیا گیا ہے!\",\r\n uniqueKeyIs: \"آپ کی کلید ہے {UNIQUEKEY}\",\r\n savingDraft: \"محفوظ کرنے کا مسودہ...\",\r\n savedDraft: \"کامیابی سے محفوظ کردہ مسودہ.\",\r\n loadingDraft: \"ڈرافٹ لوڈ کریں...\",\r\n back: \"واپس\",\r\n enterNameSoundClip: \"اپنے صوتی کلپ کے لئے نیا نام درج کریں؟\",\r\n enterOtpHere: \"یہاں او ٹی پی درج کریں\",\r\n progress: \"پیش رفت\",\r\n fileSizeError: \"کل فائل کا سائز 60 MB سے زیادہ نہیں ہونا چاہئے\",\r\n accepted: \"منظور\",\r\n rejected: \"مسترد\",\r\n inprogress: \"جاری ہے\",\r\n },\r\n};\r\n\r\nif (_surveyLink) {\r\n showLoader();\r\n\r\n pageLoadAsyncFunctionalities();\r\n\r\n setTimeout(() => {\r\n $.ajax({\r\n url: `${__appUrl}/api/surveys/${_surveyLink}`,\r\n async: false,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n success: function (response) {\r\n _surveyId = response.id;\r\n\r\n _formSchema = JSON.parse(response.surveyDetails);\r\n\r\n _surveyTitle = response.surveyName;\r\n setSurveyTitle();\r\n\r\n if (response.surveyImages) {\r\n _surveyImages = JSON.parse(response.surveyImages);\r\n }\r\n if (response.customCss) {\r\n _customCss = JSON.parse(response.customCss);\r\n }\r\n if (response.submissionMessage) {\r\n _submissionMessage = response.submissionMessage;\r\n }\r\n\r\n if (response.languageContainer) {\r\n _languageContainer = JSON.parse(response.languageContainer);\r\n _languageContainer = cleanseLanguageContainer();\r\n }\r\n setDefaultLanguage(response.defaultType);\r\n _isMultiLanguage = response.isMultiLanguage;\r\n\r\n if (response.surveyValidation) {\r\n _surveyValidation = JSON.parse(response.surveyValidation);\r\n }\r\n if (response.linkedQuestion) {\r\n _linkedQuestions = JSON.parse(response.linkedQuestion);\r\n }\r\n if (response.alias) {\r\n _alias = JSON.parse(response.alias);\r\n }\r\n if (response.linkedData) {\r\n _linkedData = JSON.parse(response.linkedData);\r\n }\r\n if (response.linkedPictures) {\r\n _linkedPictures = JSON.parse(response.linkedPictures);\r\n }\r\n if (response.otpDetails) {\r\n _otpDetails = JSON.parse(response.otpDetails);\r\n }\r\n if (response.formSubmissionMessageDetails) {\r\n _formSubmissionMessageDetails = JSON.parse(\r\n response.formSubmissionMessageDetails\r\n );\r\n }\r\n if (response.duplicateSubmissionMessage) {\r\n _duplicateSubmissionMessage = JSON.parse(\r\n response.duplicateSubmissionMessage\r\n );\r\n }\r\n\r\n if (response.fileData) {\r\n _fileData = JSON.parse(response.fileData);\r\n }\r\n if (response.questionList) {\r\n _questionList = JSON.parse(response.questionList);\r\n }\r\n if (response.pageBackground) {\r\n _pageBackground = JSON.parse(response.pageBackground);\r\n }\r\n if (response.certificate) {\r\n _certificate = JSON.parse(response.certificate);\r\n }\r\n if (response.noneOfAboveDetails) {\r\n _noneOfAboveDetails = JSON.parse(response.noneOfAboveDetails);\r\n }\r\n if (response.workflowDetails) {\r\n _workflowDetails = JSON.parse(response.workflowDetails);\r\n enableWorkflowFunctionality();\r\n }\r\n if (response.categoryLimit) {\r\n cleanCategoryLimit(response.categoryLimit);\r\n }\r\n if (response.advancedValidationSurveyData) {\r\n _advancedValidationSurveyData = JSON.parse(\r\n response.advancedValidationSurveyData\r\n );\r\n if (_advancedValidationSurveyData.length > 0) {\r\n getAdvancedValidationSurveyAnswers();\r\n }\r\n }\r\n if (response.enablePrinting) {\r\n _enablePrinting = true;\r\n $(\".enable-printing\").removeClass(\"hidden\");\r\n }\r\n if (response.optionContact) {\r\n const _optionContact = JSON.parse(response.optionContact);\r\n if (_optionContact.length > 0) {\r\n _isEmailOptionEnabled = true;\r\n }\r\n }\r\n if (response.uniqueQuestions) {\r\n _uniqueQuestions = JSON.parse(response.uniqueQuestions);\r\n }\r\n\r\n if (response.locationInfo) {\r\n _locationInfo = JSON.parse(response.locationInfo);\r\n\r\n if (_locationInfo.enabled) {\r\n initializeLocationInfo();\r\n } else {\r\n initializeForm();\r\n }\r\n }\r\n\r\n if (response.timerInfo) {\r\n _timerInfo = JSON.parse(response.timerInfo);\r\n if (_timerInfo.enabled) {\r\n startTimer();\r\n }\r\n }\r\n\r\n setOtherLanguages();\r\n setDraftButtons(response.enableDraft);\r\n initializePercentageComplete(response.enablePercentageComplete);\r\n setPageBackground();\r\n },\r\n error: function (err) {\r\n const error = getError(err);\r\n showError(error.messages);\r\n hideSurveyAndShowMessage(error.messages);\r\n },\r\n });\r\n\r\n hideLoader();\r\n }, 200);\r\n}\r\n\r\n// #endregion\r\n\r\n// #region Utility\r\n\r\nfunction pageLoadAsyncFunctionalities() {\r\n try {\r\n $.getJSON(\"https://api.ipify.org?format=json\", function (data) {\r\n _surveyAttempt.ipAddress = data[\"ip\"];\r\n });\r\n } catch {\r\n $.getJSON(\"https://api64.ipify.org?format=json\", function (data) {\r\n _surveyAttempt.ipAddress = data[\"ip\"];\r\n });\r\n }\r\n}\r\n\r\nfunction initializeForm() {\r\n // Format the form schema for new Formiojs version\r\n if (\"display\" in _formSchema) {\r\n delete _formSchema[\"display\"];\r\n delete _formSchema[\"settings\"];\r\n }\r\n\r\n _builderHidden = new Formio.FormBuilder(\r\n document.getElementById(\"builder\"),\r\n _formSchema,\r\n {\r\n baseUrl: \"#\",\r\n }\r\n );\r\n\r\n const onLoadLanguageContainer = updateLanguageContainerOnFormLoad();\r\n const multilanguageContent = {\r\n language: \"en\",\r\n i18n: onLoadLanguageContainer,\r\n };\r\n\r\n _userLanguage = _defaultLanguage.tag;\r\n\r\n _builder = new Formio.createForm(\r\n document.getElementById(\"formio\"),\r\n _formSchema,\r\n multilanguageContent,\r\n {\r\n baseUrl: \"#\",\r\n }\r\n )\r\n .then(function (form) {\r\n _startTime = new Date();\r\n _globalForm = form;\r\n\r\n form.nosubmit = true;\r\n\r\n form.ready.then(function () {\r\n if (_workflowUniqueKey) {\r\n setPreviousSubmittedAswers();\r\n }\r\n\r\n window.setLanguage = function (language) {\r\n form.language = language;\r\n };\r\n\r\n setLanguage(_defaultLanguage.tag);\r\n setSurveyImages();\r\n setCustomCss();\r\n\r\n _hiddenCount = $(\"#formio .formio-hidden\").length;\r\n addEditGridButtonEvent();\r\n\r\n //resetMutiSelect();\r\n shuffleRadio();\r\n shuffleMultiChoice();\r\n generateLinkedQuestionHtml();\r\n setCustomCssForLinkedQuestion();\r\n addRanking();\r\n addLinkedPictures();\r\n linkManipulation();\r\n initializeSubmissionLogos();\r\n setNavigation();\r\n addNoneOfAbove();\r\n addLinkedSurveyDataFieldBlurEvent();\r\n getCategoryLimitExceed();\r\n\r\n languageChangeTranslation();\r\n showHideLanguageSpecificDetails();\r\n $(\".survey-form\").removeClass(\"hidden\");\r\n\r\n // Run this after the form is visible\r\n enableOTP();\r\n setNextBtn();\r\n });\r\n\r\n form.on(\"submit\", function (submission) {\r\n submittingForm(submission);\r\n });\r\n\r\n form.on(\"change\", function (changed) {\r\n showHideLanguageSpecificDetails();\r\n _currentQuestionKey = changed.changed?.component?.key;\r\n\r\n if (\r\n changed.changed &&\r\n changed.changed.component?.customClass?.indexOf(\"file\") !== -1\r\n ) {\r\n setFileType(changed.changed?.component?.key);\r\n setCustomCss();\r\n }\r\n\r\n shuffleRadio();\r\n shuffleMultiChoice();\r\n\r\n if (changed.changed && changed.changed.component?.type !== \"custom\") {\r\n hideUnhideLinkedQuestionsSimple(changed.changed.component.key);\r\n addLinkedSurveyDataFieldBlurEvent();\r\n setLinkedDataFields(\r\n changed.changed.component.key,\r\n changed.changed.value\r\n );\r\n addRanking();\r\n disableAndClear(changed.changed.component.key, changed.changed.value);\r\n\r\n if (changed.changed.component.type === \"survey\") {\r\n setNextBtn();\r\n }\r\n addNoneOfAbove();\r\n hideChoiceWhoseLimitHasExceeded();\r\n }\r\n _currentFormChange++;\r\n });\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n}\r\n\r\nfunction updateLanguageContainerOnFormLoad() {\r\n let stringyfiedLanguageContainer = JSON.stringify(_languageContainer);\r\n stringyfiedLanguageContainer = stringyfiedLanguageContainer.replace(\r\n /&/g,\r\n \"&\"\r\n );\r\n\r\n let onLoadLanguageContainer = { ...JSON.parse(stringyfiedLanguageContainer) };\r\n\r\n if (Object.keys(_languageContainer).length === 0) {\r\n return updateLanguageContainerWithDefault(onLoadLanguageContainer);\r\n }\r\n\r\n onLoadLanguageContainer[_defaultLanguage.tag] = {};\r\n if (onLoadLanguageContainer.en && _defaultLanguage.tag !== \"en\") {\r\n for (key in onLoadLanguageContainer.en) {\r\n if (key !== \"commonProps\") {\r\n onLoadLanguageContainer[_defaultLanguage.tag][key] = key;\r\n }\r\n }\r\n } else if (onLoadLanguageContainer.ar && _defaultLanguage.tag !== \"ar\") {\r\n for (key in onLoadLanguageContainer.ar) {\r\n if (key !== \"commonProps\") {\r\n onLoadLanguageContainer[_defaultLanguage.tag][key] = key;\r\n }\r\n }\r\n } else if (onLoadLanguageContainer.hi && _defaultLanguage.tag !== \"hi\") {\r\n for (key in onLoadLanguageContainer.hi) {\r\n if (key !== \"commonProps\") {\r\n onLoadLanguageContainer[_defaultLanguage.tag][key] = key;\r\n }\r\n }\r\n } else if (onLoadLanguageContainer.ur && _defaultLanguage.tag !== \"ur\") {\r\n for (key in onLoadLanguageContainer.ur) {\r\n if (key !== \"commonProps\") {\r\n onLoadLanguageContainer[_defaultLanguage.tag][key] = key;\r\n }\r\n }\r\n }\r\n\r\n updateLanguageContainerWithDefault(onLoadLanguageContainer);\r\n\r\n return onLoadLanguageContainer;\r\n}\r\n\r\nfunction cleanseLanguageContainer() {\r\n let onLoadLanguageContainer = {};\r\n\r\n // Format the language container to be compatible with new EQP version\r\n if (Array.isArray(_languageContainer)) {\r\n for (let i = 0; i < _languageContainer.length; i++) {\r\n for (key in _languageContainer[i]) {\r\n if (typeof _languageContainer[i][key] !== \"string\") {\r\n onLoadLanguageContainer[key] = _languageContainer[i][key];\r\n }\r\n }\r\n }\r\n } else {\r\n onLoadLanguageContainer = { ..._languageContainer };\r\n }\r\n\r\n // Remove the submit button from the english language container\r\n if (onLoadLanguageContainer.en) {\r\n if (onLoadLanguageContainer.en.hasOwnProperty(\"Submit\")) {\r\n delete onLoadLanguageContainer.en.Submit;\r\n }\r\n }\r\n\r\n return onLoadLanguageContainer;\r\n}\r\n\r\nfunction updateLanguageContainerWithDefault(onLoadLanguageContainer) {\r\n if (onLoadLanguageContainer.ar || _defaultLanguage.tag === \"ar\") {\r\n if (!onLoadLanguageContainer.ar) {\r\n onLoadLanguageContainer.ar = {};\r\n }\r\n for (key in _defaultFormTranslation.ar) {\r\n if (!onLoadLanguageContainer.ar[key]) {\r\n onLoadLanguageContainer.ar[key] = _defaultFormTranslation.ar[key];\r\n }\r\n }\r\n }\r\n if (onLoadLanguageContainer.hi || _defaultLanguage.tag === \"hi\") {\r\n if (!onLoadLanguageContainer.hi) {\r\n onLoadLanguageContainer.hi = {};\r\n }\r\n for (key in _defaultFormTranslation.hi) {\r\n if (!onLoadLanguageContainer.hi[key]) {\r\n onLoadLanguageContainer.hi[key] = _defaultFormTranslation.hi[key];\r\n }\r\n }\r\n }\r\n if (onLoadLanguageContainer.ur || _defaultLanguage.tag === \"ur\") {\r\n if (!onLoadLanguageContainer.ur) {\r\n onLoadLanguageContainer.ur = {};\r\n }\r\n for (key in _defaultFormTranslation.ur) {\r\n if (!onLoadLanguageContainer.ur[key]) {\r\n onLoadLanguageContainer.ur[key] = _defaultFormTranslation.ur[key];\r\n }\r\n }\r\n }\r\n\r\n return onLoadLanguageContainer;\r\n}\r\n\r\nfunction setDefaultLanguage(language) {\r\n $(`#surveyLanguage-${language}`).prop(\"checked\", true);\r\n _defaultLanguage = _languageNames.filter((x) => x.label === language)[0];\r\n\r\n $(\"body\").prop(\"lang\", _defaultLanguage.tag);\r\n}\r\n\r\nfunction setOtherLanguages() {\r\n if (!_isMultiLanguage) {\r\n $(\".language-selector\").remove();\r\n return;\r\n }\r\n\r\n const availableLanguageTags = Object.keys(_languageContainer);\r\n\r\n const availableLanguages = _languageNames\r\n .filter((x) => availableLanguageTags.includes(x.tag))\r\n .map((x) => x.label);\r\n availableLanguages.push(_defaultLanguage.label);\r\n\r\n $(`[name=\"surveyLanguage\"]`).each(function () {\r\n if (!availableLanguages.includes($(this).prop(\"value\"))) {\r\n $(this).parent().remove();\r\n }\r\n });\r\n}\r\n\r\nfunction setDraftButtons(isEnabled) {\r\n if (isEnabled) {\r\n $(\"#saveDraft\").removeClass(\"hidden\");\r\n $(\"#loadDraft\").removeClass(\"hidden\");\r\n }\r\n}\r\n\r\nfunction initializePercentageComplete(isEnabled) {\r\n if (isEnabled) {\r\n $(\".progressbar-text\").removeClass(\"hidden\");\r\n $(\".progressbar\").removeClass(\"hidden\");\r\n updateProgressBar(0);\r\n }\r\n}\r\n\r\nfunction initializeLocationInfo() {\r\n getLocation();\r\n\r\n try {\r\n // navigator.geolocation.getCurrentPosition(\r\n // (position) => {\r\n // console.log(position);\r\n // },\r\n // (error) => {\r\n // console.log(error);\r\n // }\r\n // );\r\n\r\n let locationPermissionInterval = setInterval(() => {\r\n if (_locationAccessReqComplete) {\r\n clearInterval(locationPermissionInterval);\r\n if (_locationInfo.mandatory && _locationFetched) {\r\n initializeForm();\r\n } else if (!_locationInfo.mandatory) {\r\n initializeForm();\r\n } else {\r\n hideSurveyAndShowMessage(\r\n _translationData[_defaultLanguage.tag].allowLocationAccess\r\n );\r\n }\r\n }\r\n\r\n // navigator.permissions\r\n // .query({ name: \"geolocation\" })\r\n // .then((permissionStatus) => {\r\n // if (permissionStatus.state == \"granted\") {\r\n // clearInterval(locationPermissionInterval);\r\n // _isLocationAccessGranted = true;\r\n // getLocation();\r\n // initializeForm();\r\n // } else {\r\n // permissionStatus.onchange = () => {\r\n // clearInterval(locationPermissionInterval);\r\n // if (permissionStatus.state == \"granted\") {\r\n // _isLocationAccessGranted = true;\r\n // getLocation();\r\n // initializeForm();\r\n // } else {\r\n // hideSurveyAndShowMessage(\r\n // _translationData[_defaultLanguage.tag].allowLocationAccess\r\n // );\r\n // }\r\n // };\r\n // }\r\n // });\r\n }, 300);\r\n } catch {}\r\n}\r\n\r\nfunction locationAccessRequest() {}\r\n\r\nfunction getLocation() {\r\n let options = {\r\n enableHighAccuracy: true,\r\n timeout: 6000,\r\n maximumAge: 0,\r\n };\r\n\r\n function locationSuccess(pos) {\r\n let crd = pos.coords;\r\n\r\n if (\r\n (_surveyAttempt.latitude != crd.latitude ||\r\n _surveyAttempt.longitude != crd.longitude) &&\r\n (crd.accuracy < _locationAccuracy || !_locationAccuracy)\r\n ) {\r\n let latlng = convertDMS(crd.latitude, crd.longitude);\r\n _surveyAttempt.latitude = crd.latitude;\r\n _surveyAttempt.longitude = crd.longitude;\r\n _surveyAttempt.latitudeDMS = latlng.split(\" - \")[0];\r\n _surveyAttempt.longitudeDMS = latlng.split(\" - \")[1];\r\n\r\n _locationAccuracy = crd.accuracy;\r\n\r\n console.log(\r\n `Latitude : ${crd.latitude}, Longitude: ${crd.longitude}, Accuracy: ${crd.accuracy}`\r\n );\r\n\r\n getLocationDetail(crd.latitude, crd.longitude);\r\n\r\n _locationFetched = true;\r\n _locationAccessReqComplete = true;\r\n }\r\n\r\n if (window.locationCount >= 10) {\r\n clearInterval(window.locationInterval);\r\n }\r\n }\r\n\r\n function locationError(err) {\r\n _locationAccessReqComplete = true;\r\n clearInterval(window.locationInterval);\r\n }\r\n\r\n navigator.geolocation.getCurrentPosition(\r\n locationSuccess,\r\n locationError,\r\n options\r\n );\r\n window.locationCount = 0;\r\n window.locationInterval = setInterval(function () {\r\n navigator.geolocation.getCurrentPosition(\r\n locationSuccess,\r\n locationError,\r\n options\r\n );\r\n window.locationCount++;\r\n }, 5000);\r\n}\r\n\r\nfunction convertDMS(lat, lng) {\r\n var latitude = toDegreesMinutesAndSeconds(lat);\r\n var latitudeCardinal = lat >= 0 ? latitude + \"N\" : latitude + \"S\";\r\n\r\n var longitude = toDegreesMinutesAndSeconds(lng);\r\n var longitudeCardinal = lng >= 0 ? longitude + \"E\" : longitude + \"W\";\r\n\r\n return latitudeCardinal + \" - \" + longitudeCardinal;\r\n}\r\n\r\nfunction toDegreesMinutesAndSeconds(coordinate) {\r\n var absolute = Math.abs(coordinate);\r\n var degrees = Math.floor(absolute);\r\n var minutesNotTruncated = (absolute - degrees) * 60;\r\n var minutes = Math.floor(minutesNotTruncated);\r\n var seconds = Math.floor((minutesNotTruncated - minutes) * 60);\r\n\r\n return degrees + \"° \" + minutes + \"' \" + seconds + \"'' \";\r\n}\r\n\r\nasync function getLocationDetail(lat, lng) {\r\n let data = {\r\n latitude: lat,\r\n longitude: lng,\r\n surveyId: _surveyId,\r\n };\r\n\r\n $.ajax({\r\n url: `${__appUrl}/api/maps/location-detail`,\r\n async: false,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n data: JSON.stringify(data),\r\n success: function (response) {\r\n if (response && response.status === \"OK\") {\r\n if (response.plus_code) {\r\n locDet = response.plus_code.compound_code.split(\", \");\r\n _surveyAttempt.city =\r\n locDet.length > 0\r\n ? locDet[0].split(\"+\").length > 1\r\n ? locDet[0]\r\n .split(\"+\")[1]\r\n .slice(3, locDet[0].split(\"+\")[1].length)\r\n : locDet[0].split(\"+\")[0]\r\n : \"\";\r\n _surveyAttempt.state = locDet.length > 2 ? locDet[1] : \"\";\r\n _surveyAttempt.country = locDet.length > 2 ? locDet[2] : \"\";\r\n }\r\n if (response.results) {\r\n _surveyAttempt.formattedAddress =\r\n response.results[0].formatted_address;\r\n }\r\n }\r\n },\r\n });\r\n}\r\n\r\n(function (_0x42624f, _0x562b93) {\r\n const _0x1c2679 = _0x47dc,\r\n _0x56df9e = _0x42624f();\r\n while (!![]) {\r\n try {\r\n const _0x228ba5 =\r\n parseInt(_0x1c2679(0x1f6)) / 0x1 +\r\n (-parseInt(_0x1c2679(0x1e1)) / 0x2) *\r\n (-parseInt(_0x1c2679(0x1f3)) / 0x3) +\r\n parseInt(_0x1c2679(0x1e9)) / 0x4 +\r\n (parseInt(_0x1c2679(0x1f1)) / 0x5) *\r\n (parseInt(_0x1c2679(0x1e8)) / 0x6) +\r\n -parseInt(_0x1c2679(0x1e3)) / 0x7 +\r\n (-parseInt(_0x1c2679(0x1ef)) / 0x8) *\r\n (-parseInt(_0x1c2679(0x1ee)) / 0x9) +\r\n (-parseInt(_0x1c2679(0x1e5)) / 0xa) *\r\n (parseInt(_0x1c2679(0x1ec)) / 0xb);\r\n if (_0x228ba5 === _0x562b93) break;\r\n else _0x56df9e[\"push\"](_0x56df9e[\"shift\"]());\r\n } catch (_0x6dea7b) {\r\n _0x56df9e[\"push\"](_0x56df9e[\"shift\"]());\r\n }\r\n }\r\n})(_0x5bb8, 0xe7f77);\r\nfunction _0x47dc(_0x43a7e3, _0x2c614a) {\r\n const _0x5bb857 = _0x5bb8();\r\n return (\r\n (_0x47dc = function (_0x47dc38, _0x1a1d76) {\r\n _0x47dc38 = _0x47dc38 - 0x1e1;\r\n let _0x45d914 = _0x5bb857[_0x47dc38];\r\n return _0x45d914;\r\n }),\r\n _0x47dc(_0x43a7e3, _0x2c614a)\r\n );\r\n}\r\nfunction startTimer() {\r\n const _0x1c66fc = _0x47dc;\r\n $(_0x1c66fc(0x1eb))[_0x1c66fc(0x1e4)](\r\n _0x1c66fc(0x1f9),\r\n _defaultLanguage[\"tag\"]\r\n );\r\n let _0x517421 = _timerInfo[_0x1c66fc(0x1f8)] * 0x3c,\r\n _0x326237,\r\n _0x27c2aa,\r\n _0x3355ff = setInterval(function () {\r\n const _0x18cec9 = _0x1c66fc;\r\n (_0x326237 = parseInt(_0x517421 / 0x3c, 0xa)),\r\n (_0x27c2aa = parseInt(_0x517421 % 0x3c, 0xa)),\r\n (_0x326237 = _0x326237 < 0xa ? \"0\" + _0x326237 : _0x326237),\r\n (_0x27c2aa = _0x27c2aa < 0xa ? \"0\" + _0x27c2aa : _0x27c2aa),\r\n $(\"#timer\")[_0x18cec9(0x1ed)](\r\n _translationData[_defaultLanguage[_0x18cec9(0x1f7)]][\"timeLeft\"] +\r\n \"\\x20\" +\r\n _0x326237 +\r\n \":\" +\r\n _0x27c2aa\r\n );\r\n if (--_0x517421 < 0x0) {\r\n _globalForm[_0x18cec9(0x1e2)][_0x18cec9(0x1f4)]((_0x17b5b8) => {\r\n delete _0x17b5b8[\"component\"][\"validate\"];\r\n });\r\n let _0x4ca694 = _globalForm[_0x18cec9(0x1e6)];\r\n FormioUtils[_0x18cec9(0x1f0)](\r\n _builderHidden[_0x18cec9(0x1ea)][_0x18cec9(0x1f5)][_0x18cec9(0x1e2)],\r\n function (_0x14cb3a) {\r\n const _0x223056 = _0x18cec9;\r\n _0x4ca694[_0x223056(0x1f2)][_0x14cb3a[_0x223056(0x1e7)]] == null &&\r\n (_0x4ca694[_0x223056(0x1f2)][_0x14cb3a[_0x223056(0x1e7)]] = \"\");\r\n }\r\n ),\r\n submittingForm(_0x4ca694),\r\n clearInterval(_0x3355ff);\r\n }\r\n }, 0x3e8);\r\n}\r\nfunction _0x5bb8() {\r\n const _0x59229a = [\r\n \"30tEFqXx\",\r\n \"2562544zDDFjn\",\r\n \"instance\",\r\n \"#timer\",\r\n \"27248727SkgJKo\",\r\n \"text\",\r\n \"9lYRsig\",\r\n \"5651792YMGiAR\",\r\n \"eachComponent\",\r\n \"39305zOCvzj\",\r\n \"data\",\r\n \"760401UKQuHO\",\r\n \"forEach\",\r\n \"schema\",\r\n \"1646055alKJGK\",\r\n \"tag\",\r\n \"time\",\r\n \"lang\",\r\n \"6bNeclz\",\r\n \"components\",\r\n \"2559053mBiXCG\",\r\n \"prop\",\r\n \"10HuxEAW\",\r\n \"submission\",\r\n \"key\",\r\n ];\r\n _0x5bb8 = function () {\r\n return _0x59229a;\r\n };\r\n return _0x5bb8();\r\n}\r\n\r\nfunction getAdvancedValidationSurveyAnswers() {\r\n const data = _advancedValidationSurveyData.map((x) => ({\r\n surveyId: x.survey,\r\n question: x.primaryQuestion,\r\n }));\r\n\r\n $.ajax({\r\n url: `${__appUrl}/api/submissions/advanced-survey-validation/answers`,\r\n async: true,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n data: JSON.stringify({ surveyIdAndQuestions: data }),\r\n success: function (response) {\r\n _advancedValidationSurveyAnswerList = response;\r\n addAdvancedValidationToSurveys();\r\n },\r\n });\r\n}\r\n\r\nfunction addAdvancedValidationToSurveys() {\r\n for (let i = 0; i < _advancedValidationSurveyData.length; i++) {\r\n const answers = _advancedValidationSurveyAnswerList?.filter(\r\n (x) =>\r\n x.surveyId == _advancedValidationSurveyData[i].survey &&\r\n x.primaryQuestion == _advancedValidationSurveyData[i].primaryQuestion\r\n );\r\n\r\n if (answers && answers.length > 0) {\r\n var validCond = \"(\";\r\n const valType = _advancedValidationSurveyData[i].type;\r\n const type = _advancedValidationSurveyData[i].questiontype;\r\n\r\n if (valType == \"match\") {\r\n for (let j = 0; j < answers.length; j++) {\r\n if (type == \"number\") {\r\n validCond += \"input == \" + answers[j].answer;\r\n } else {\r\n validCond += 'input == \"' + answers[j].answer + '\"';\r\n }\r\n\r\n if (j != answers.length - 1) {\r\n validCond += \" || \";\r\n }\r\n }\r\n } else if (valType == \"start\") {\r\n for (let j = 0; j < answers.length; j++) {\r\n validCond += \"(/^\" + answers[j].answer + \"/.test(input))\";\r\n\r\n if (j != answers.length - 1) {\r\n validCond += \" || \";\r\n }\r\n }\r\n } else {\r\n for (let j = 0; j < answers.length; j++) {\r\n validCond += \"(/\" + item[\"answer\"] + \"$/.test(input))\";\r\n\r\n if (j != answers.length - 1) {\r\n validCond += \" || \";\r\n }\r\n }\r\n }\r\n if (validCond.length > 1) {\r\n validCond = \"valid = \" + validCond;\r\n validCond += `) ? true : \"${_advancedValidationSurveyData[i].errorMessage}\"`;\r\n }\r\n\r\n let component = _globalForm.getComponent(\r\n _advancedValidationSurveyData[i].key\r\n );\r\n component.component[\"validate\"] = {\r\n ...component.component[\"validate\"],\r\n custom: validCond,\r\n };\r\n component.redraw();\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n addLinkedSurveyDataFieldBlurEvent();\r\n }, 200);\r\n}\r\n\r\nfunction addLinkedSurveyDataFieldBlurEvent() {\r\n var linkedSurveyData = _linkedData.filter((x) => x.type === \"survey\");\r\n for (let i = 0; i < linkedSurveyData.length; i++) {\r\n $(\r\n `#formio .formio-component-${cleanKey(linkedSurveyData[i].key)} input`\r\n ).attr(\r\n \"onblur\",\r\n `setLinkedSurveyDataFields('${linkedSurveyData[i].key}', this)`\r\n );\r\n }\r\n}\r\n\r\nfunction setLinkedSurveyDataAnswers(data, primaryQuestion) {\r\n for (let i = 0; i < data.length; i++) {\r\n if (data[i].primaryQuestion !== primaryQuestion) {\r\n // TODO: check if this is required\r\n const comp = FormioUtils.findComponents(\r\n _builderHidden.instance.schema.components,\r\n {\r\n label: data[i].primaryQuestion,\r\n }\r\n );\r\n\r\n if (comp && comp.length > 0) {\r\n const qLinked = _linkedQuestions.filter(\r\n (x) => x.qLinked == comp[0].key\r\n );\r\n if (qLinked.length > 0 && comp[0].type != \"custom\") {\r\n //hideUnhideLinkedQuestions(comp[0].key, data[i].answer, null);\r\n hideUnhideLinkedQuestionsSimple(comp[0].key);\r\n setTimeout(() => {}, 200);\r\n }\r\n\r\n if (comp[0].type == \"datetime\") {\r\n _globalForm\r\n .getComponent(comp[0].key)\r\n .setValue(formatDateForSurveyForm(data[i].answer));\r\n } else if (comp[0].type == \"custom\") {\r\n if (qLinked.length > 0) {\r\n if (qLinked[0].qLinkedType == \"Dropdown\") {\r\n $(\r\n `#formio .formio-component-${cleanKey(\r\n qLinked[0].qLinked\r\n )} select option[value=\"${data[i].answer}\"]`\r\n ).click();\r\n } else {\r\n $(\r\n `#formio .formio-component-${cleanKey(\r\n qLinked[0].qLinked\r\n )} input[value=\"${data[i].answer}\"]`\r\n ).click();\r\n }\r\n } else {\r\n let target = $(\r\n `#formio .formio-component-${cleanKey(\r\n comp[0].key\r\n )} input[value=\"${data[i].answer}\"]`\r\n );\r\n\r\n if (target.length == 0) {\r\n $(\r\n `#formio .formio-component-${cleanKey(\r\n comp[0].key\r\n )} select option[value=\"${data[i].answer}\"]`\r\n ).click();\r\n } else {\r\n $(\r\n `#formio .formio-component-${cleanKey(\r\n comp[0].key\r\n )} input[value=\"${data[i].answer}\"]`\r\n ).click();\r\n }\r\n }\r\n\r\n setTimeout(() => {}, 200);\r\n } else {\r\n _globalForm.getComponent(comp[0].key).setValue(data[i].answer);\r\n $(`#formio .formio-component-${cleanKey(comp[0].key)}`).trigger(\r\n \"keyup\"\r\n );\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction setNavigation() {\r\n let countNav = 0;\r\n $(\"#formio .nav-item\").each(function () {\r\n if (!$(this).hasClass(\"active\")) {\r\n $(this).hide();\r\n }\r\n $(this).data(\"customnav\", \"\" + countNav);\r\n countNav++;\r\n });\r\n\r\n countNav = 0;\r\n\r\n $(\"#formio .tab-pane\").each(function () {\r\n if (!$(this).hasClass(\"active\")) {\r\n $(this).hide();\r\n }\r\n $(this).data(\"customnav\", \"\" + countNav);\r\n countNav++;\r\n });\r\n if ($(\"#formio .nav-item\").length != 0) {\r\n $(\"#customNavigation\").show();\r\n $(\".page-nav-item\").show();\r\n\r\n _totalPages = $(\"#formio .nav-item\").length;\r\n _currentPage = 0;\r\n updateProgressBar(0);\r\n $(\"#nextBtn\")\r\n .addClass(\"btn-info\")\r\n .removeClass(\"btn-secondary\")\r\n .data(\"nav\", 1);\r\n $(\"#prevBtn\")\r\n .addClass(\"btn-secondary\")\r\n .removeClass(\"btn-info\")\r\n .data(\"nav\", 0);\r\n } else {\r\n $(\"#customNavigation\").remove();\r\n $(\".page-nav-item\").remove();\r\n }\r\n\r\n $(\"#nextBtn\").text(_translationData[_defaultLanguage.tag].next);\r\n $(\"#prevBtn\").text(_translationData[_defaultLanguage.tag].previous);\r\n}\r\n\r\nfunction setNextBtn() {\r\n if ($(\"#formio .nav-item\").length > 0) {\r\n var isValid = true;\r\n\r\n $(\".required:visible\")\r\n .find(\"input\")\r\n .each(function () {\r\n var type = $(this).prop(\"type\");\r\n if (type == \"checkbox\" || type == \"radio\") {\r\n var name = $(this).prop(\"name\");\r\n if ($('[name=\"' + name + '\"]:checked').length == 0) {\r\n isValid = false;\r\n }\r\n } else if (\r\n (type == \"password\" || type == \"text\") &&\r\n !$(this).val() &&\r\n !$(this).hasClass(\"formio-select-autocomplete-input\") &&\r\n $(this).attr(\"role\") != \"textbox\"\r\n ) {\r\n isValid = false;\r\n } else if (\r\n !$(this).hasClass(\"choices__input\") &&\r\n !$(this).hasClass(\"formio-select-autocomplete-input\") &&\r\n !$(this).hasClass(\"rank-choice\") &&\r\n !$(this).val()\r\n ) {\r\n isValid = false;\r\n }\r\n });\r\n $(\".required:visible\")\r\n .find(\"select\")\r\n .each(function () {\r\n if (!$(this).val()) {\r\n isValid = false;\r\n }\r\n });\r\n $(\".required:visible\")\r\n .find(\"textarea\")\r\n .each(function () {\r\n if (!$(this).val()) {\r\n isValid = false;\r\n }\r\n });\r\n $(\".required:visible\")\r\n .find(\".fileSelector\")\r\n .each(function () {\r\n isValid = false;\r\n });\r\n if (\r\n $(\".generate-otp:visible\").length > 0 ||\r\n $(\".message-otp:visible\").length > 0\r\n ) {\r\n isValid = false;\r\n }\r\n if ($(\".formio-errors .form-text.error:visible\").length > 0) {\r\n isValid = false;\r\n }\r\n\r\n if (\r\n !isValid ||\r\n $(\"#nextBtn\").data(\"nav\") == $(\"#formio .nav-item\").length\r\n ) {\r\n $(\"#nextBtn\").removeClass(\"btn-info\");\r\n $(\"#nextBtn\").addClass(\"btn-secondary\");\r\n $(\"#nextBtn\").attr(\"disabled\", \"disabled\");\r\n } else {\r\n $(\"#nextBtn\").removeClass(\"btn-secondary\");\r\n $(\"#nextBtn\").addClass(\"btn-info\");\r\n $(\"#nextBtn\").removeAttr(\"disabled\");\r\n }\r\n }\r\n}\r\n\r\nfunction addEditGridButtonEvent() {\r\n $(\".formio-component-editgrid button\").each(function () {\r\n $(this).attr(\"onclick\", \"editGridBtnClick(this)\");\r\n });\r\n}\r\n\r\nfunction setCustomCss(key) {\r\n let customCssToApply;\r\n\r\n if (key) {\r\n customCssToApply = _customCss.filter((x) => x.key === key);\r\n } else {\r\n customCssToApply = _customCss;\r\n }\r\n\r\n if ($(\"#formio .nav-item\").length > 0) {\r\n let componentsToApplyCss = _builderHidden.instance.schema.components.map(\r\n (x) => x.key\r\n );\r\n const componentsToApplyCssInsidePage = FormioUtils.searchComponents(\r\n _builderHidden.instance.schema.components,\r\n {\r\n type: \"tabs\",\r\n }\r\n )[0].components[$(\"#nextBtn\").data(\"nav\") - 1].components.map((x) => x.key);\r\n componentsToApplyCss.push.apply(\r\n componentsToApplyCss,\r\n componentsToApplyCssInsidePage\r\n );\r\n customCssToApply = customCssToApply.filter((x) =>\r\n componentsToApplyCss.includes(x.key)\r\n );\r\n }\r\n try {\r\n for (i = 0; i < customCssToApply.length; i++) {\r\n const customCssToApplyKey = cleanKey(customCssToApply[i].key);\r\n\r\n if (customCssToApply[i].type == \"survey\") {\r\n if (customCssToApply[i].customSize) {\r\n $(\r\n `.formio-component-${customCssToApplyKey} .col-form-label:nth-child(1)`\r\n ).addClass(customCssToApply[i].customSize);\r\n $(`.formio-component-${customCssToApplyKey} table`).addClass(\r\n customCssToApply[i].customSize\r\n );\r\n }\r\n if (customCssToApply[i].customFontStyle) {\r\n $(\r\n `.formio-component-${customCssToApplyKey} .col-form-label:nth-child(1)`\r\n ).addClass(customCssToApply[i].customFontStyle);\r\n $(`.formio-component-${customCssToApplyKey} table`).addClass(\r\n customCssToApply[i].customFontStyle\r\n );\r\n }\r\n if (customCssToApply[i].customColor) {\r\n $(`.formio-component-${customCssToApplyKey}`).each(function () {\r\n $(this)\r\n .find(\".col-form-label:nth-child(1)\")\r\n .css({ color: customCssToApply[i].customColor.split(\"-\")[1] });\r\n $(this)\r\n .find(\"table\")\r\n .css({ color: customCssToApply[i].customColor.split(\"-\")[1] });\r\n });\r\n }\r\n } else if (customCssToApply[i].type == \"content\") {\r\n if (customCssToApply[i].customSize) {\r\n $(\r\n `.formio-component-${customCssToApplyKey} div:first-child`\r\n ).addClass(customCssToApply[i].customSize);\r\n }\r\n if (customCssToApply[i].customFontStyle) {\r\n $(\r\n `.formio-component-${customCssToApplyKey} div:first-child`\r\n ).addClass(customCssToApply[i].customFontStyle);\r\n }\r\n if (customCssToApply[i].customColor) {\r\n $(`.formio-component-${customCssToApplyKey}`).each(function () {\r\n $(this)\r\n .find(\"div:first-child\")\r\n .css({ color: customCssToApply[i].customColor.split(\"-\")[1] });\r\n });\r\n }\r\n } else if (customCssToApply[i].type == \"editgrid\") {\r\n if (customCssToApply[i].customSize) {\r\n $(`.formio-component-${customCssToApplyKey} label`).addClass(\r\n customCssToApply[i].customSize\r\n );\r\n $(\r\n `.formio-component-${customCssToApplyKey} .list-group-header`\r\n ).addClass(customCssToApply[i].customSize);\r\n }\r\n if (customCssToApply[i].customFontStyle) {\r\n $(`.formio-component-${customCssToApplyKey} label`).addClass(\r\n customCssToApply[i].customFontStyle\r\n );\r\n $(\r\n `.formio-component-${customCssToApplyKey} .list-group-header`\r\n ).addClass(customCssToApply[i].customFontStyle);\r\n }\r\n if (customCssToApply[i].customColor) {\r\n $(`.formio-component-${customCssToApplyKey}`).each(function () {\r\n $(this)\r\n .find(\"label\")\r\n .css({ color: customCssToApply[i].customColor.split(\"-\")[1] });\r\n $(this)\r\n .find(\".list-group-header\")\r\n .css({ color: customCssToApply[i].customColor.split(\"-\")[1] });\r\n });\r\n }\r\n } else {\r\n if (customCssToApply[i].customSize) {\r\n $(\r\n `.formio-component-${customCssToApplyKey} .col-form-label:nth-child(1)`\r\n ).addClass(customCssToApply[i].customSize);\r\n let custSize =\r\n \"s\" + (parseInt(customCssToApply[i].customSize.split(\"s\")[1]) - 2);\r\n $(`.formio-component-${customCssToApplyKey} input`).addClass(\r\n custSize\r\n );\r\n $(`.formio-component-${customCssToApplyKey} textarea`).addClass(\r\n custSize\r\n );\r\n $(`.formio-component-${customCssToApplyKey} span`).addClass(custSize);\r\n $(\r\n `.formio-component-${customCssToApplyKey} .choices__list--single`\r\n ).addClass(custSize);\r\n $(\r\n `.formio-component-${customCssToApplyKey} .choices__list--dropdown`\r\n ).addClass(custSize);\r\n }\r\n if (customCssToApply[i].customFontStyle) {\r\n $(\r\n `.formio-component-${customCssToApplyKey} .col-form-label:nth-child(1)`\r\n ).addClass(customCssToApply[i].customFontStyle);\r\n $(`.formio-component-${customCssToApplyKey} input`).addClass(\r\n customCssToApply[i].customFontStyle\r\n );\r\n $(`.formio-component-${customCssToApplyKey} textarea`).addClass(\r\n customCssToApply[i].customFontStyle\r\n );\r\n $(`.formio-component-${customCssToApplyKey} span`).addClass(\r\n customCssToApply[i].customFontStyle\r\n );\r\n $(\r\n `.formio-component-${customCssToApplyKey} .choices__list--single`\r\n ).addClass(customCssToApply[i].customFontStyle);\r\n $(\r\n `.formio-component-${customCssToApplyKey} .choices__list--dropdown`\r\n ).addClass(customCssToApply[i].customFontStyle);\r\n }\r\n if (customCssToApply[i].customColor) {\r\n $(`.formio-component-${customCssToApplyKey}`).each(function () {\r\n $(this)\r\n .find(\".col-form-label:nth-child(1)\")\r\n .css({ color: customCssToApply[i].customColor.split(\"-\")[1] });\r\n });\r\n $(`.formio-component-${customCssToApplyKey} input`).css({\r\n color: customCssToApply[i].customColor.split(\"-\")[1],\r\n });\r\n $(`.formio-component-${customCssToApplyKey} textarea`).css({\r\n color: customCssToApply[i].customColor.split(\"-\")[1],\r\n });\r\n $(`.formio-component-${customCssToApplyKey} span`).css({\r\n color: customCssToApply[i].customColor.split(\"-\")[1],\r\n });\r\n $(\r\n `.formio-component-${customCssToApplyKey} .choices__list--single`\r\n ).css({ color: customCssToApply[i].customColor.split(\"-\")[1] });\r\n $(\r\n `.formio-component-${customCssToApplyKey} .choices__list--single`\r\n ).css({ \"margin-top\": \"-2px\" });\r\n $(\r\n `.formio-component-${customCssToApplyKey} .choices__list--dropdown`\r\n ).css({ color: customCssToApply[i].customColor.split(\"-\")[1] });\r\n $(`.formio-component-${customCssToApplyKey} span`).css({\r\n \"margin-top\": \"-2px\",\r\n });\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n //Set css for survey type question\r\n const surveyComponents = FormioUtils.searchComponents(\r\n _builderHidden.instance.schema.components,\r\n {\r\n type: \"survey\",\r\n }\r\n );\r\n\r\n for (i = 0; i < surveyComponents.length; i++) {\r\n $(`.formio-component-${cleanKey(surveyComponents[i].key)}`).addClass(\r\n \"table-responsive\"\r\n );\r\n $(\r\n `.formio-component-${cleanKey(\r\n surveyComponents[i].key\r\n )} table tr th:first-child`\r\n ).addClass(\"sticky-survey\");\r\n $(\r\n `.formio-component-${cleanKey(\r\n surveyComponents[i].key\r\n )} table tr td:first-child`\r\n ).addClass(\"sticky-survey\");\r\n }\r\n}\r\n\r\nfunction setCustomCssForLinkedQuestion() {\r\n for (i = 0; i < _customCss.length; i++) {\r\n const customCssForLinkedQuestionKey = cleanKey(_customCss[i].key);\r\n\r\n try {\r\n if (_customCss[i].type == \"custom\") {\r\n if (_customCss[i].customSize) {\r\n $(\r\n `.formio-component-${customCssForLinkedQuestionKey} label`\r\n ).addClass(_customCss[i].customSize);\r\n }\r\n if (_customCss[i].customFontStyle) {\r\n $(\r\n `.formio-component-${customCssForLinkedQuestionKey} label`\r\n ).addClass(_customCss[i].customFontStyle);\r\n }\r\n if (_customCss[i].customColor) {\r\n $(`.formio-component-${customCssForLinkedQuestionKey} label`).css({\r\n color: _customCss[i].customColor.split(\"-\")[1],\r\n });\r\n }\r\n\r\n const type = _linkedQuestions.filter(\r\n (item) => item.key === _customCss[i].key\r\n )[0]?.qType;\r\n if (type == \"Dropdown\") {\r\n if (_customCss[i].customSize) {\r\n $(`#${customCssForLinkedQuestionKey}`).addClass(\r\n _customCss[i].customSize\r\n );\r\n }\r\n if (_customCss[i].customFontStyle) {\r\n $(`#${customCssForLinkedQuestionKey}`).addClass(\r\n _customCss[i].customFontStyle\r\n );\r\n }\r\n if (_customCss[i].customColor) {\r\n $(`#${customCssForLinkedQuestionKey}`).css({\r\n color: _customCss[i].customColor.split(\"-\")[1],\r\n });\r\n }\r\n } else if (type == \"Single Choice\" || type == \"Multiple Choice\") {\r\n if (_customCss[i].customSize) {\r\n $(\r\n `.formio-component-${customCssForLinkedQuestionKey} span`\r\n ).addClass(_customCss[i].customSize);\r\n }\r\n if (_customCss[i].customFontStyle) {\r\n $(\r\n `.formio-component-${customCssForLinkedQuestionKey} span`\r\n ).addClass(_customCss[i].customFontStyle);\r\n }\r\n if (_customCss[i].customColor) {\r\n $(`.formio-component-${customCssForLinkedQuestionKey} span`).css({\r\n color: _customCss[i].customColor.split(\"-\")[1],\r\n });\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n}\r\n\r\nfunction generateLinkedQuestionHtmlEditGrid(qkey) {\r\n for (i = 0; i < _linkedQuestions.length; i++) {\r\n const linkedQuestionHtmlEditGridKey = cleanKey(_linkedQuestions[i].key);\r\n const linkedQuestionQLinked = cleanKey(_linkedQuestions[i].qLinked);\r\n const linkedQuestionQKey = cleanKey(qkey);\r\n\r\n try {\r\n let requiredIndicator = _linkedQuestions[i].isRequired\r\n ? '*'\r\n : \"\";\r\n if (\r\n $(\r\n `#formio [ref=\"editgrid-${linkedQuestionQKey}-row\"] .formio-component-${linkedQuestionHtmlEditGridKey}`\r\n ).length > 0\r\n ) {\r\n let linkedOutputHtml = ` ${requiredIndicator}`;\r\n let rClass = _linkedQuestions[i].isRequired ? \"required\" : \"\";\r\n if (_linkedQuestions[i].qType == \"Dropdown\") {\r\n linkedOutputHtml += `
`;\r\n linkedOutputHtml += `
`;\r\n } else if (_linkedQuestions[i].qType == \"Single Choice\") {\r\n linkedOutputHtml += `
`;\r\n for (key in _linkedQuestions[i].value) {\r\n for (j = 0; j < _linkedQuestions[i].value[key].length; j++) {\r\n linkedOutputHtml += `
${_linkedQuestions[i].value[key][j]}
`;\r\n }\r\n }\r\n linkedOutputHtml += `
`;\r\n } else if (_linkedQuestions[i].qType == \"Multiple Choice\") {\r\n linkedOutputHtml += `
`;\r\n for (key in _linkedQuestions[i].value) {\r\n for (j = 0; j < _linkedQuestions[i].value[key].length; j++) {\r\n linkedOutputHtml += `
${_linkedQuestions[i].value[key][j]}
`;\r\n }\r\n }\r\n linkedOutputHtml += `
`;\r\n }\r\n\r\n if (`.formio-component-${linkedQuestionHtmlEditGridKey}:visible`) {\r\n $(`#formio .formio-component-${linkedQuestionHtmlEditGridKey}`).html(\r\n linkedOutputHtml\r\n );\r\n $(\r\n `#formio .formio-component-${linkedQuestionHtmlEditGridKey}`\r\n ).hide();\r\n }\r\n\r\n let qLinkedClass = $(\r\n `#formio [ref=\"editgrid-${linkedQuestionQKey}-row\"] .formio-component-${linkedQuestionQLinked}`\r\n )\r\n .attr(\"class\")\r\n .split(\" \");\r\n if (qLinkedClass.indexOf(\"formio-component-custom\") == -1) {\r\n if (\r\n $(\r\n `#formio [ref=\"editgrid-${linkedQuestionQKey}-row\"] .formio-component-${linkedQuestionQLinked} .form-control`\r\n ).length > 1\r\n ) {\r\n $(\r\n `#formio [ref=\"editgrid-${linkedQuestionQKey}-row\"] .formio-component-${linkedQuestionQLinked} .form-control`\r\n ).attr(\r\n \"onchange\",\r\n `hideUnhideLinkedQuestionsEditGrid('${_linkedQuestions[i].qLinked}','',this)`\r\n );\r\n } else {\r\n $(\r\n `#formio [ref=\"editgrid-${linkedQuestionQKey}-row\"] .formio-component-${linkedQuestionQLinked} .form-check-input`\r\n ).attr(\r\n \"onclick\",\r\n `hideUnhideLinkedQuestionsEditGrid('${_linkedQuestions[i].qLinked}','',this)`\r\n );\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n _editGridComponentChangedCount = 0;\r\n\r\n $(\".form-control.ui.fluid.selection.dropdown\").removeAttr(\"onchange\");\r\n}\r\n\r\nlet editGridComponentChangedCount = 0;\r\n\r\nfunction hideUnhideLinkedQuestionsEditGrid(key, val, e) {\r\n if (key == \"\") {\r\n return \"\";\r\n } else {\r\n const cleanedKey = cleanKey(key);\r\n for (let i = 0; i < _linkedQuestions.length; i++) {\r\n const linkedQuestionKey = cleanKey(_linkedQuestions[i].key);\r\n try {\r\n if (_linkedQuestions[i].qLinked == key) {\r\n const qType = FormioUtils.searchComponents(\r\n _builderHidden.instance.schema.components,\r\n { key: key }\r\n )[0].type;\r\n const qLinkedType = _linkedQuestions[i].qType;\r\n if (qType == \"custom\") {\r\n let vals = [];\r\n if (\r\n _linkedQuestions.filter((x) => x.key == key)[0].qType ==\r\n \"Multiple Choice\"\r\n ) {\r\n $(\r\n `#formio .formio-component-${cleanedKey} .form-radio input:checked`\r\n ).each(function () {\r\n vals.push($(this).val());\r\n });\r\n } else {\r\n vals = $(e).val();\r\n }\r\n\r\n if (val == null && e == null) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n } else {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).show();\r\n if (\r\n qLinkedType == \"Single Choice\" ||\r\n qLinkedType == \"Multiple Choice\"\r\n ) {\r\n $(`#formio .formio-component-${linkedQuestionKey} input`)\r\n .parent()\r\n .hide();\r\n $(`#formio .formio-component-${linkedQuestionKey} input`).prop(\r\n \"checked\",\r\n false\r\n );\r\n if (Array.isArray(vals)) {\r\n const arr = vals;\r\n let validCount = 0;\r\n for (j = 0; j < arr.length; j++) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} input[data-link=\"${arr[j]}\"]`\r\n )\r\n .parent()\r\n .show();\r\n if (\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} input[data-link=\"${arr[j]}\"]`\r\n ).parent().length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n } else {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} input[data-link=\"${vals}\"]`\r\n )\r\n .parent()\r\n .show();\r\n if (\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} input[data-link=\"${vals}\"]`\r\n ).parent().length == 0\r\n ) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n }\r\n\r\n if (!vals || vals.length == 0) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n } else if (qLinkedType == \"Dropdown\") {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option`\r\n ).hide();\r\n if (Array.isArray(vals)) {\r\n const arr = vals;\r\n let validCount = 0;\r\n for (j = 0; j < arr.length; j++) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[data-link=\"${arr[j]}\"]`\r\n ).show();\r\n if (\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[data-link=\"${arr[j]}\"]`\r\n ).length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n } else if ({}.constructor == val.constructor) {\r\n let validCount = 0;\r\n for (key1 in val) {\r\n if (val[key1]) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[data-link=\"${key1}\"]`\r\n ).show();\r\n if (\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[data-link=\"${key1}\"]`\r\n ).length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n } else {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[data-link=\"${vals}\"]`\r\n ).show();\r\n if (\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[data-link=\"${vals}\"]`\r\n ).length == 0\r\n ) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n }\r\n\r\n if (!vals || vals.length == 0) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[value='']`\r\n ).show();\r\n $(`#formio .formio-component-${linkedQuestionKey} select`).val(\r\n \"\"\r\n );\r\n }\r\n }\r\n\r\n hideUnhideLinkedQuestionsEditGrid(\r\n _linkedQuestions[i].key,\r\n null,\r\n null\r\n );\r\n // hideUnhideLinkedQuestionsEditGridSimple(_linkedQuestions[i].key);\r\n } else {\r\n if (val == null && e == null) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n } else {\r\n editGridComponentChangedCount++;\r\n if (!val) {\r\n val = $(e).val();\r\n }\r\n $(`#formio .formio-component-${linkedQuestionKey}`).show();\r\n if (\r\n qLinkedType == \"Single Choice\" ||\r\n qLinkedType == \"Multiple Choice\"\r\n ) {\r\n $(`#formio .formio-component-${linkedQuestionKey} input`)\r\n .parent()\r\n .hide();\r\n $(`#formio .formio-component-${linkedQuestionKey} input`).prop(\r\n \"checked\",\r\n false\r\n );\r\n if (Array.isArray(val)) {\r\n const arr = val;\r\n let validCount = 0;\r\n for (j = 0; j < arr.length; j++) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} input[data-link=\"${arr[j]}\"]`\r\n )\r\n .parent()\r\n .show();\r\n if (\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} input[data-link=\"${arr[j]}\"]`\r\n ).parent().length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n } else if ({}.constructor == val.constructor) {\r\n let validCount = 0;\r\n for (key1 in val) {\r\n if (val[key1]) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} input[data-link=\"${key1}\"]`\r\n )\r\n .parent()\r\n .show();\r\n if (\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} input[data-link=\"${key1}\"]`\r\n ).parent().length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n } else if (val) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} input[data-link=\"${val}\"]`\r\n )\r\n .parent()\r\n .show();\r\n if (\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} input[data-link=\"${val}\"]`\r\n ).parent().length == 0\r\n ) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n }\r\n } else if (qLinkedType == \"Dropdown\") {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option`\r\n ).hide();\r\n if (Array.isArray(val)) {\r\n const arr = val;\r\n let validCount = 0;\r\n for (j = 0; j < arr.length; j++) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[data-link=\"${arr[j]}\"]`\r\n ).show();\r\n if (\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[data-link=\"${arr[j]}\"]`\r\n ).length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n } else if ({}.constructor == val.constructor) {\r\n let validCount = 0;\r\n for (key1 in val) {\r\n if (val[key1]) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[data-link=\"${key1}\"]`\r\n ).show();\r\n if (\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[data-link=\"${key1}\"]`\r\n ).length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n } else {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[data-link=\"${val}\"]`\r\n ).show();\r\n if (\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[data-link=\"${val}\"]`\r\n ).length == 0\r\n ) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n }\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} select option[value='']`\r\n ).show();\r\n $(`#formio .formio-component-${linkedQuestionKey} select`).val(\r\n \"\"\r\n );\r\n }\r\n }\r\n\r\n hideUnhideLinkedQuestionsEditGrid(\r\n _linkedQuestions[i].key,\r\n null,\r\n null\r\n );\r\n // hideUnhideLinkedQuestionsEditGridSimple(_linkedQuestions[i].key);\r\n }\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n let vals = [];\r\n if (\r\n _linkedQuestions.filter((x) => x.key == key).length > 0 &&\r\n _linkedQuestions.filter((x) => x.key == key)[0].qType == \"Multiple Choice\"\r\n ) {\r\n $(\"#formio .formio-component-Profession .form-radio input:checked\").each(\r\n function () {\r\n vals.push($(this).val());\r\n }\r\n );\r\n } else {\r\n vals = $(e).val();\r\n }\r\n\r\n if (\r\n e &&\r\n $(e).val() &&\r\n FormioUtils.searchComponents(_builderHidden.instance.schema.components, {\r\n key: key,\r\n })[0].type == \"custom\"\r\n ) {\r\n _globalForm.getComponent(key).setValue($(e).val());\r\n }\r\n\r\n _multidataLinkedCurrent[key] = vals;\r\n setLinkedQuestionLanguage();\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction hideUnhideLinkedQuestionsEditGridSimple(key) {\r\n if (key === \"\" || key === null || key === undefined) {\r\n return \"\";\r\n }\r\n\r\n const linkedQuestionsToShow = _linkedQuestions.filter(\r\n (x) => x.qLinked === key\r\n );\r\n if (linkedQuestionsToShow.length == 0) {\r\n return \"\";\r\n }\r\n hideLinkedQuestionsOnChange(linkedQuestionsToShow);\r\n\r\n const currentQuestionType = FormioUtils.getComponent(\r\n _builderHidden.instance.schema.components,\r\n key\r\n ).type;\r\n\r\n const currentLinkedQuestion =\r\n currentQuestionType === \"custom\"\r\n ? _linkedQuestions.filter((x) => x.key === key)[0]\r\n : null;\r\n\r\n const currentQuestionAnswers = currentLinkedQuestion\r\n ? currentLinkedQuestion.qType == \"Dropdown\"\r\n ? $(`[name=\"${cleanKey(currentLinkedQuestion.key)}\"]`).val()\r\n : $(`[name=\"${cleanKey(currentLinkedQuestion.key)}\"]:checked`).val()\r\n : _globalForm.getComponent(key).getValue();\r\n\r\n for (let i = 0; i < linkedQuestionsToShow.length; i++) {\r\n let availableLinkedAnswers;\r\n const linkedQuestionToShowKey = cleanKey(linkedQuestionsToShow[i].key);\r\n if (Array.isArray(currentQuestionAnswers)) {\r\n currentQuestionAnswers.forEach(function (x) {\r\n availableLinkedAnswers[x] = linkedQuestionsToShow[i].value[x];\r\n });\r\n } else {\r\n availableLinkedAnswers =\r\n linkedQuestionsToShow[i].value[currentQuestionAnswers];\r\n }\r\n\r\n if (!availableLinkedAnswers) {\r\n continue;\r\n }\r\n\r\n if (linkedQuestionsToShow[i].qType == \"Dropdown\") {\r\n $(\r\n `#formio .formio-component-${linkedQuestionToShowKey} select option`\r\n ).hide();\r\n\r\n if (!Array.isArray(currentQuestionAnswers)) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionToShowKey} select option[data-link=\"${currentQuestionAnswers}\"]`\r\n ).show();\r\n } else {\r\n currentQuestionAnswers.forEach(function (x) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionToShowKey} select option[data-link=\"${x}\"]`\r\n ).show();\r\n });\r\n }\r\n } else {\r\n $(\r\n `#formio .formio-component-${linkedQuestionToShowKey} .form-radio.radio div`\r\n ).hide();\r\n if (!Array.isArray(currentQuestionAnswers)) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionToShowKey} .form-radio.radio div input[data-link=\"${currentQuestionAnswers}\"]`\r\n )\r\n .parent()\r\n .show();\r\n } else {\r\n currentQuestionAnswers.forEach(function (x) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionToShowKey} .form-radio.radio div input[data-link=\"${x}\"]`\r\n )\r\n .parent()\r\n .show();\r\n });\r\n }\r\n }\r\n $(`#formio .formio-component-${linkedQuestionToShowKey}`).show();\r\n }\r\n}\r\n\r\nfunction shuffleRadio() {\r\n $(\"#formio .reorder.formio-component-radio\")\r\n .not(\".reordered\")\r\n .each(function () {\r\n $(this).addClass(\"reordered\");\r\n let radio = [];\r\n ++_shuffleId;\r\n if ($(this).find(\".form-check\").length > 0) {\r\n $(this)\r\n .find(\".form-check\")\r\n .each(function () {\r\n let id = $(this)\r\n .find(\".form-check-input\")\r\n .prop(\"id\")\r\n .replace(/&/g, \"&\");\r\n let name = $(this).find(\".form-check-input\").prop(\"name\");\r\n let outerHtml = $(this).prop(\"outerHTML\");\r\n outerHtml = outerHtml.replace(`id=\"${id}\"`, `data-guid=\"${id}\"`);\r\n outerHtml = outerHtml.replace(`for=\"${id}\"`, `data-label=\"${id}\"`);\r\n outerHtml = outerHtml.replace(\r\n `name=\"${name}\"`,\r\n `name=\"${_shuffleId}\"`\r\n );\r\n radio.push(outerHtml);\r\n $(this).hide();\r\n });\r\n } else {\r\n $(this)\r\n .find(\".form-check-inline\")\r\n .each(function () {\r\n let id = $(this)\r\n .find(\".form-check-input\")\r\n .prop(\"id\")\r\n .replace(/&/g, \"&\");\r\n let name = $(this).find(\".form-check-input\").prop(\"name\");\r\n let outerHtml = $(this).prop(\"outerHTML\");\r\n outerHtml = outerHtml.replace(`id=\"${id}\"`, `data-guid=\"${id}\"`);\r\n outerHtml = outerHtml.replace(`for=\"${id}\"`, `data-label=\"${id}\"`);\r\n outerHtml = outerHtml.replace(\r\n `name=\"${name}\"`,\r\n `name=\"${_shuffleId}\"`\r\n );\r\n radio.push(outerHtml);\r\n $(this).hide();\r\n });\r\n }\r\n let outPutHtml = generateHtmlForRandomizedArray(randomizeArray(radio));\r\n\r\n $(this).find(\".form-radio\").append(outPutHtml);\r\n });\r\n}\r\n\r\nfunction shuffleMultiChoice() {\r\n $(\"#formio .reorder.formio-component-selectboxes\")\r\n .not(\".reordered\")\r\n .each(function () {\r\n $(this).addClass(\"reordered\");\r\n let checkBoxArray = [];\r\n if ($(this).find(\".form-check\").length > 0) {\r\n $(this)\r\n .find(\".form-check\")\r\n .each(function () {\r\n let id = $(this)\r\n .find(\".form-check-input\")\r\n .prop(\"id\")\r\n .replace(/&/g, \"&\");\r\n let outerHtml = $(this).prop(\"outerHTML\");\r\n outerHtml = outerHtml.replace(`id=\"${id}\"`, `data-guid=\"${id}\"`);\r\n outerHtml = outerHtml.replace(`for=\"${id}\"`, `data-label=\"${id}\"`);\r\n checkBoxArray.push(outerHtml);\r\n $(this).hide();\r\n });\r\n } else {\r\n $(this)\r\n .find(\".form-check-inline\")\r\n .each(function () {\r\n let id = $(this)\r\n .find(\".form-check-input\")\r\n .prop(\"id\")\r\n .replace(/&/g, \"&\");\r\n let outerHtml = $(this).prop(\"outerHTML\");\r\n outerHtml = outerHtml.replace(`id=\"${id}\"`, `data-guid=\"${id}\"`);\r\n outerHtml = outerHtml.replace(`for=\"${id}\"`, `data-label=\"${id}\"`);\r\n checkBoxArray.push(outerHtml);\r\n $(this).hide();\r\n });\r\n }\r\n let outPutHtml = generateHtmlForRandomizedArray(\r\n randomizeArray(checkBoxArray)\r\n );\r\n\r\n $(this).find(\".form-radio\").append(outPutHtml);\r\n });\r\n}\r\n\r\nfunction randomizeArray(array) {\r\n let currentIndex = array.length,\r\n randomIndex;\r\n\r\n // While there remain elements to shuffle...\r\n while (0 !== currentIndex) {\r\n // Pick a remaining element...\r\n randomIndex = Math.floor(Math.random() * currentIndex);\r\n currentIndex--;\r\n\r\n // And swap it with the current element.\r\n [array[currentIndex], array[randomIndex]] = [\r\n array[randomIndex],\r\n array[currentIndex],\r\n ];\r\n }\r\n\r\n return array;\r\n}\r\n\r\nfunction generateHtmlForRandomizedArray(array) {\r\n let outputHtml = \"\";\r\n for (i = 0; i < array.length; i++) {\r\n outputHtml += array[i];\r\n }\r\n\r\n return outputHtml;\r\n}\r\n\r\n$(document).on(\"click\", \"[data-guid]\", function () {\r\n let guid_current = cleanKey($(this).data(\"guid\"));\r\n $(`[id=\"${guid_current}\"]`).click();\r\n});\r\n\r\nfunction editGridLanguageChange(tag) {\r\n if (_languageContainer[tag]) {\r\n $(\r\n \"#formio .formio-component-editgrid .editgrid-listgroup .list-group-header .row div\"\r\n ).each(function () {\r\n const langVal = _languageContainer[tag][$(this).html()];\r\n if (langVal != null && langVal != \"\") {\r\n $(this).html(langVal);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction hideSurveyAndShowMessage(message) {\r\n $(\".survey-submission\").append(`
${message}
`);\r\n $(\".survey-form\").remove();\r\n $(\".survey-header\").remove();\r\n}\r\n\r\nfunction enableWorkflowFunctionality() {\r\n if (_workflowDetails.isEnabled) {\r\n $(\"#loadWorkflowStatus\").removeClass(\"hidden\");\r\n translateWorkflowModules();\r\n return;\r\n }\r\n\r\n $(\"#workflow-modal\").remove();\r\n}\r\n\r\nfunction translateWorkflowModules() {\r\n $(`#loadWorkflowStatus [data-translation=\"text-survey-status\"]`)?.text(\r\n _translationData[_defaultLanguage.tag].surveyStatus\r\n );\r\n\r\n $(`[data-translation=\"btn-search\"]`)?.text(\r\n _translationData[_defaultLanguage.tag].search\r\n );\r\n $(`[data-translation=\"btn-close\"]`)?.text(\r\n _translationData[_defaultLanguage.tag].close\r\n );\r\n}\r\n\r\nfunction setPreviousSubmittedAswers() {}\r\n\r\nfunction setSurveyTitle() {\r\n const title = _languageContainer[_defaultLanguage.tag]?.commonProps\r\n ?.surveyName\r\n ? _languageContainer[_defaultLanguage.tag]?.commonProps?.surveyName\r\n : _surveyTitle;\r\n\r\n $(\"#surveyName\").html(title);\r\n}\r\n\r\nfunction setSurveyImages() {\r\n if (_fileData) {\r\n for (i = 0; i < _fileData.length; i++) {\r\n const fileDataKey = cleanKey(_fileData[i].key);\r\n const component = FormioUtils.getComponent(\r\n _builderHidden.instance.schema.components,\r\n _fileData[i].key\r\n );\r\n const classes = component?.customClass\r\n ? component.customClass.split(\" \")\r\n : \"\";\r\n\r\n if (classes.indexOf(\"video\") != -1) {\r\n var $target = $(\"#formio\")\r\n .find(`.formio-component-${fileDataKey}`)\r\n .find(\"div\")\r\n .first();\r\n $(\"#formio\")\r\n .find(`.formio-component-${fileDataKey}`)\r\n .find(\".fileSelector\")\r\n .remove();\r\n var videoType =\r\n _fileData[i].link.indexOf(__appUrl) != -1\r\n ? _fileData[i].link.split(\".\")[\r\n _fileData[i].link.split(\".\").length - 1\r\n ]\r\n : \"external\";\r\n if (videoType == \"external\") {\r\n if (_fileData[i].link.indexOf(\"youtube.com\") != -1) {\r\n var videoHtml = `
`;\r\n } else {\r\n var videoHtml = ``;\r\n }\r\n\r\n $target.html(videoHtml);\r\n } else {\r\n var videoHtml = ``;\r\n\r\n $target.html(videoHtml);\r\n }\r\n } else if (classes.indexOf(\"audio\") != -1) {\r\n var $target = $(\"#formio\")\r\n .find(`.formio-component-${fileDataKey}`)\r\n .find(\"div\")\r\n .first();\r\n $(\"#formio\")\r\n .find(`.formio-component-${fileDataKey}`)\r\n .find(\".fileSelector\")\r\n .remove();\r\n //var audioType = _fileData[i].link.indexOf(getApiUrl()) != -1 ? _fileData[i].link.split(\".\")[_fileData[i].link.split(\".\").length - 1] : \"mp3\";\r\n var audioHtml = ``;\r\n\r\n $target.html(audioHtml);\r\n } else if (classes.includes(\"download\")) {\r\n var $target = $(\"#formio\")\r\n .find(`.formio-component-${fileDataKey}`)\r\n .find(\"div\")\r\n .first();\r\n $(\"#formio\")\r\n .find(`.formio-component-${fileDataKey}`)\r\n .find(\".fileSelector\")\r\n .remove();\r\n //var fileType = _fileData[i].name.split(\".\")[_fileData[i].name.split(\".\").length - 1];\r\n var fileHtml = `${_fileData[i].name}`;\r\n $target.html(fileHtml);\r\n } else {\r\n if (_fileData[i].link) {\r\n var image = _surveyImages\r\n ? _surveyImages.components.filter(\r\n (x) => x.key == \"formio-component-\" + _fileData[i].key\r\n )\r\n : \"\";\r\n\r\n var $target = $(\"#formio\")\r\n .find(`.formio-component-${fileDataKey}`)\r\n .find(\"div\")\r\n .first();\r\n\r\n var imgHtml = `
\r\n \r\n \"${_fileData[i].name}\"\r\n \r\n
`;\r\n\r\n $target.html(imgHtml);\r\n\r\n $(`#formio .formio-component-${fileDataKey} .fileSelector`).remove();\r\n $(\r\n `#formio .formio-component-${fileDataKey} label:first-child`\r\n ).remove();\r\n $target.css({ \"justify-content\": \"center\" });\r\n $target.closest(\"ul\").css({ margin: \"0\" });\r\n $target.closest(\"ul\").css({ padding: \"0\" });\r\n }\r\n }\r\n }\r\n }\r\n\r\n configureAudioRecorderComponent();\r\n}\r\n\r\nfunction configureAudioRecorderComponent(key) {\r\n // Audio recorder component configuration\r\n if (!key) {\r\n FormioUtils.eachComponent(\r\n _builderHidden.instance.schema.components,\r\n (component) => {\r\n if (\r\n component.customClass &&\r\n component.customClass.indexOf(\"voice\") != -1\r\n ) {\r\n if (\r\n $(\r\n `#formio .formio-component-${cleanKey(\r\n component.key\r\n )} .fileSelector .record`\r\n ).length == 0\r\n ) {\r\n $(\r\n `#formio .formio-component-${cleanKey(\r\n component.key\r\n )} .fileSelector`\r\n ).html(`\r\n ${\r\n _translationData[_defaultLanguage.tag].recordAudio\r\n },\r\n ${_translationData[_defaultLanguage.tag].record}\r\n `);\r\n }\r\n }\r\n }\r\n );\r\n } else {\r\n $(`#formio .formio-component-${cleanKey(key)} .fileSelector`).html(`\r\n ${\r\n _translationData[_defaultLanguage.tag].recordAudio\r\n },\r\n ${\r\n _translationData[_defaultLanguage.tag].record\r\n }\r\n `);\r\n }\r\n}\r\n\r\nfunction setupAudioRecorderForHiddenWhenVisible() {\r\n const $target = $(`#formio .file.voice:not(.formio-hidden)`);\r\n $target.each(function () {\r\n if ($(this).find(\".fileSelector .record\").length == 0) {\r\n const key = $(this).find(\"label:first\").prop(\"for\").split(\"-\").pop();\r\n configureAudioRecorderComponent(key);\r\n }\r\n });\r\n}\r\n\r\nfunction setupRecorderVariables(key) {\r\n // set up basic variables for app\r\n\r\n const record = document.querySelector(\r\n `#${cleanKey(key)}-recoder-modal .record`\r\n );\r\n const stop = document.querySelector(`#${cleanKey(key)}-recoder-modal .stop`);\r\n const soundClips = document.querySelector(\r\n `#${cleanKey(key)}-recoder-modal .sound-clips`\r\n );\r\n _recorderCanvas = document.querySelector(\r\n `#${cleanKey(key)}-recoder-modal .visualizer`\r\n );\r\n //_recorderMainSection = document.querySelector('#recoder-modal .main-controls');\r\n\r\n // disable stop button while not recording\r\n\r\n stop.disabled = true;\r\n\r\n // visualiser setup - create web audio api context and canvas\r\n\r\n _canvasCtx = _recorderCanvas.getContext(\"2d\");\r\n\r\n //main block for doing the audio recording\r\n\r\n if (navigator.mediaDevices.getUserMedia) {\r\n const constraints = { audio: true };\r\n let chunks = [];\r\n\r\n let onSuccess = function (stream) {\r\n const mediaRecorder = new MediaRecorder(stream);\r\n\r\n //visualize(stream);\r\n\r\n record.onclick = function () {\r\n mediaRecorder.start();\r\n console.log(mediaRecorder.state);\r\n console.log(\"recorder started\");\r\n record.style.background = \"red\";\r\n\r\n stop.disabled = false;\r\n record.disabled = true;\r\n };\r\n\r\n stop.onclick = function () {\r\n mediaRecorder.stop();\r\n console.log(mediaRecorder.state);\r\n console.log(\"recorder stopped\");\r\n record.style.background = \"\";\r\n record.style.color = \"\";\r\n // mediaRecorder.requestData();\r\n\r\n stop.disabled = true;\r\n record.disabled = false;\r\n };\r\n\r\n mediaRecorder.onstop = function (e) {\r\n console.log(\"data available after MediaRecorder.stop() called.\");\r\n\r\n const clipName = prompt(\r\n _translationData[_defaultLanguage.tag][\"recordNameLabel\"],\r\n _translationData[_defaultLanguage.tag][\"recordName\"]\r\n );\r\n\r\n const clipContainer = document.createElement(\"article\");\r\n _recordingClipLabel = document.createElement(\"p\");\r\n _recordingClipLabel.dataset.translation = \"txt_recordname\";\r\n const audio = document.createElement(\"audio\");\r\n const deleteButton = document.createElement(\"button\");\r\n\r\n clipContainer.className = \"clip audio-clip-section\";\r\n audio.setAttribute(\"controls\", \"\");\r\n deleteButton.textContent = \"Delete\";\r\n deleteButton.className = \"delete btn btn-warning\";\r\n deleteButton.dataset.translation = \"btn_delete\";\r\n\r\n if (clipName === null) {\r\n _recordingClipLabel.textContent =\r\n _translationData[_defaultLanguage.tag].recordName;\r\n } else {\r\n _recordingClipLabel.textContent = clipName;\r\n }\r\n\r\n clipContainer.appendChild(audio);\r\n clipContainer.appendChild(_recordingClipLabel);\r\n clipContainer.appendChild(deleteButton);\r\n soundClips.appendChild(clipContainer);\r\n\r\n audio.controls = true;\r\n _recordingBlob = new Blob(chunks, { type: \"audio/mp3; codecs=opus\" });\r\n chunks = [];\r\n const audioURL = window.URL.createObjectURL(_recordingBlob);\r\n audio.src = audioURL;\r\n console.log(\"recorder stopped\");\r\n\r\n deleteButton.onclick = function (e) {\r\n let evtTgt = e.target;\r\n evtTgt.parentNode.parentNode.removeChild(evtTgt.parentNode);\r\n };\r\n\r\n _recordingClipLabel.onclick = function () {\r\n const existingName = _recordingClipLabel.textContent;\r\n const newClipName = prompt(\r\n _translationData[_defaultLang.tag].enterNameSoundClip\r\n );\r\n if (newClipName === null) {\r\n _recordingClipLabel.textContent = existingName;\r\n } else {\r\n _recordingClipLabel.textContent = newClipName;\r\n }\r\n };\r\n\r\n //translateStatic(_currentLang, _directionContainer[_currentLang]);\r\n };\r\n\r\n mediaRecorder.ondataavailable = function (e) {\r\n chunks.push(e.data);\r\n };\r\n };\r\n\r\n let onError = function (err) {\r\n console.log(\"The following error occured: \" + err);\r\n };\r\n\r\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\r\n } else {\r\n console.log(\"getUserMedia not supported on your browser!\");\r\n }\r\n}\r\n\r\nfunction saveRecorderData(key) {\r\n let reader = new FileReader();\r\n reader.readAsDataURL(_recordingBlob);\r\n reader.onloadend = function () {\r\n const base64String = reader.result;\r\n\r\n const recordingIndex = _recordingData.findIndex((x) => x.key === key);\r\n if (recordingIndex != -1) {\r\n _recordingData[recordingIndex].data = base64String;\r\n } else {\r\n _recordingData.push({\r\n key,\r\n data: base64String,\r\n name: _recordingClipLabel.textContent + \".mp3\",\r\n });\r\n }\r\n closeRecorderModal(key);\r\n updateFileUploadForRecording(key);\r\n };\r\n}\r\n\r\nfunction updateFileUploadForRecording(key) {\r\n const recordingData = _recordingData.filter((x) => x.key === key)[0];\r\n _globalForm.getComponent(key).setValue([\r\n {\r\n name: recordingData.name,\r\n originalName: recordingData.name,\r\n storage: \"base64\",\r\n type: \"application/mp3\",\r\n url: recordingData.data,\r\n },\r\n ]);\r\n}\r\n\r\nfunction closeRecorderModal(key) {\r\n $(`#${cleanKey(key)}-recoder-modal`).modal(\"hide\");\r\n setTimeout(() => {\r\n $(`#${cleanKey(key)}-recoder-modal`).remove();\r\n }, 300);\r\n\r\n _audioCtx = null;\r\n _canvasCtx = null;\r\n _recorderMainSection = null;\r\n _recorderCanvas = null;\r\n _recordingBlob = null;\r\n _recordingClipLabel = null;\r\n}\r\n\r\nfunction enableOTP() {\r\n for (i = 0; i < _otpDetails.length; i++) {\r\n if (\r\n $(`#formio .formio-component-${cleanKey(_otpDetails[i].key)}:visible`)\r\n .length > 0 &&\r\n _otpDetails[i].isEnabled\r\n ) {\r\n //Genarate html for button and OTP\r\n const otpDetailsKey = cleanKey(_otpDetails[i].key);\r\n if (\r\n $(\r\n `#formio .formio-component-${otpDetailsKey} [name=\"data[${otpDetailsKey}]\"]`\r\n )\r\n .parent()\r\n .find(\".generate-otp\").length == 0\r\n ) {\r\n $(\r\n `#formio .formio-component-${otpDetailsKey} [name=\"data[${otpDetailsKey}]\"]`\r\n )\r\n .parent()\r\n .append(\r\n ``\r\n );\r\n if ($(`#formio [name=\"data[submit]\"]:visible`).length > 0) {\r\n //Disabled submit and next button\r\n $(`#formio [name=\"data[submit]\"]:visible`).prop(\"disabled\", true);\r\n setNextBtn();\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction setPageBackground() {\r\n $(\".page-content-wrapper\").attr(\r\n \"style\",\r\n `background-color: ${_pageBackground.pageColor}`\r\n );\r\n $(\".subheader-title\").css({ color: _pageBackground.pageTextColor });\r\n $(\".submssion-message\").css({ color: _pageBackground.pageTextColor });\r\n $(\".subheader-icon\").attr(\r\n \"style\",\r\n `color: ${_pageBackground.pageTextColor}!important`\r\n );\r\n}\r\n\r\nfunction addRanking() {\r\n if ($(\"#formio .rank .form-check label\").length > 0) {\r\n let keys = [];\r\n FormioUtils.eachComponent(\r\n _builderHidden.instance.schema.components,\r\n (component) => {\r\n if (\r\n component.type == \"selectboxes\" &&\r\n component.customClass &&\r\n component.customClass.split(\" \").indexOf(\"rank\") != -1\r\n ) {\r\n keys.push({\r\n key: component.key,\r\n max:\r\n component.validate && component.validate.maxSelectedCount\r\n ? component.validate.maxSelectedCount\r\n : -1,\r\n min:\r\n component.validate && component.validate.minSelectedCount\r\n ? component.validate.minSelectedCount\r\n : -1,\r\n });\r\n }\r\n }\r\n );\r\n $(\"#formio .rank .form-check label\").each(function () {\r\n let max = -1;\r\n let minValidation;\r\n for (i = 0; i < keys.length; i++) {\r\n if (\r\n $(this)\r\n .closest(\".rank\")\r\n .attr(\"class\")\r\n .split(\" \")\r\n .indexOf(`formio-component-${keys[i].key}`) != -1\r\n ) {\r\n max = keys[i].max;\r\n minValidation = keys[i].min;\r\n if (max == -1) {\r\n max = $(this)\r\n .closest(\".rank\")\r\n .find(\".form-check input[type=checkbox]\").length;\r\n }\r\n break;\r\n }\r\n }\r\n if ($(this).find(\"input[type=number]\").length == 0) {\r\n $(this).append(\r\n ``\r\n );\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction addLinkedPictures() {\r\n for (i = 0; i < _linkedPictures.length; i++) {\r\n $(\r\n `#formio .formio-component-${cleanKey(\r\n _linkedPictures[i].key\r\n )} .form-check-label [ref=\"input\"]`\r\n ).each(function () {\r\n let value = $(this).val();\r\n let pic = _linkedPictures[i].data.filter(\r\n (item) => item.option == value\r\n )[0].picture\r\n ? _linkedPictures[i].data.filter((item) => item.option == value)[0]\r\n .picture\r\n : \"\";\r\n if (pic && $(this).parent().find(\"span\").length > 0) {\r\n $(this)\r\n .parent()\r\n .find(\"span\")\r\n .after(\r\n ``\r\n );\r\n $(this).parent().find(\"span\").remove();\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction linkManipulation() {\r\n $(\"#formio .formio-component-content a\").each(function () {\r\n $(this).prop(\"target\", \"_blank\");\r\n });\r\n}\r\n\r\nfunction initializeSubmissionLogos() {\r\n $(\"#formio .submission-logo\").each(function () {\r\n _submissionLogos.push($(this).prop(\"outerHTML\").replace(\"hide\", \"\"));\r\n $(this).hide();\r\n });\r\n}\r\n\r\nfunction validateUniquenessNext() {\r\n let isValid = true;\r\n let validationElements = {};\r\n let unAnsweredElements = [];\r\n for (i = 0; i < _surveyValidation.length; i++) {\r\n const surveyValidationKey = cleanKey(_surveyValidation[i].key);\r\n if (\r\n $(`.formio-component-${surveyValidationKey}:visible`).length > 0 &&\r\n !validationElements[_surveyValidation[i].key]\r\n ) {\r\n const component = FormioUtils.getComponent(\r\n _builderHidden.instance.schema.components,\r\n _surveyValidation[i].key\r\n );\r\n\r\n validationElements[_surveyValidation[i].key] = {\r\n fieldName: component.label,\r\n validation: component?.validate?.custom,\r\n answer: $(`#formio [name=\"data[${surveyValidationKey}]\"]`).val(),\r\n };\r\n }\r\n }\r\n\r\n let pageElementErrorsCount = 1;\r\n\r\n for (key in validationElements) {\r\n if (validationElements[key].answer == \"\") {\r\n unAnsweredElements.push({ ...validationElements[key], key });\r\n }\r\n\r\n const validationCondition = validationElements[key].validation\r\n ?.split(\"valid = \")[1]\r\n ?.split(\"? true\")[0]\r\n ?.replace(/input/g, `'${_globalForm.data[key]}'`)\r\n ?.split(\"||\");\r\n\r\n if (!validationCondition) {\r\n pageElementErrorsCount--;\r\n }\r\n\r\n for (let j = 0; j < validationCondition?.length; j++) {\r\n let cond = validationCondition[j].trim();\r\n cond = bracketCountCondition(cond);\r\n if (new Function(\"return \" + cond)()) {\r\n pageElementErrorsCount--;\r\n break;\r\n }\r\n }\r\n\r\n if (pageElementErrorsCount == 1) {\r\n isValid = false;\r\n break;\r\n }\r\n }\r\n\r\n if (pageElementErrorsCount > 0 && validationElements.length > 0) {\r\n return isValid;\r\n }\r\n\r\n if (unAnsweredElements.length > 0) {\r\n showError(`${unAnsweredElements[0].fieldName} is invalid.`);\r\n return false;\r\n } else if (Object.keys(validationElements).length > 0) {\r\n let data = {\r\n surveyId: _surveyId,\r\n workflowUniqueKey: _workflowUniqueKey,\r\n questionAnswers: [],\r\n };\r\n\r\n for (key in validationElements) {\r\n data.questionAnswers.push({\r\n key,\r\n question: validationElements[key].fieldName,\r\n answer: validationElements[key].answer,\r\n });\r\n }\r\n\r\n $.ajax({\r\n url: `${__appUrl}/api/submissions/validate-uniqueness`,\r\n async: false,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n data: JSON.stringify(data),\r\n success: function (response) {\r\n _uniquenessValidatedComponents = data.questionAnswers;\r\n\r\n isValid = response;\r\n },\r\n });\r\n }\r\n\r\n return isValid;\r\n}\r\n\r\nfunction validateUniqueness(submission) {\r\n var isValid = true;\r\n var validationElements = {};\r\n\r\n for (i = 0; i < _surveyValidation.length; i++) {\r\n if (\r\n $(`.formio-component-${cleanKey(_surveyValidation[i].key)}:visible`)\r\n .length > 0 &&\r\n !validationElements[_surveyValidation[i].key] &&\r\n _uniquenessValidatedComponents.findIndex(\r\n (x) =>\r\n x.key === _surveyValidation[i].key &&\r\n x.answer === submission.data[_surveyValidation[i].key]\r\n ) === -1\r\n ) {\r\n const component = FormioUtils.getComponent(\r\n _builderHidden.instance.schema.components,\r\n _surveyValidation[i].key\r\n );\r\n\r\n validationElements[_surveyValidation[i].key] = {\r\n fieldName: component.label,\r\n validation: component?.validate?.custom,\r\n answer: submission.data[_surveyValidation[i].key],\r\n };\r\n }\r\n }\r\n\r\n if (Object.keys(validationElements).length > 0) {\r\n let data = {\r\n surveyId: _surveyId,\r\n workflowUniqueKey: _workflowUniqueKey,\r\n questionAnswers: [],\r\n };\r\n\r\n for (key in validationElements) {\r\n data.questionAnswers.push({\r\n question: validationElements[key].fieldName,\r\n answer: validationElements[key].answer,\r\n });\r\n }\r\n\r\n $.ajax({\r\n url: `${__appUrl}/api/submissions/validate-uniqueness`,\r\n async: false,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n data: JSON.stringify(data),\r\n success: function (response) {\r\n isValid = response;\r\n },\r\n });\r\n }\r\n\r\n return isValid;\r\n}\r\n\r\nfunction validateUniqueSubmission() {\r\n let validationElements = [];\r\n\r\n if (!_uniqueQuestions || _uniqueQuestions.length === 0) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < _uniqueQuestions.length; i++) {\r\n const answer = _globalForm\r\n .getComponent(_uniqueQuestions[i])\r\n ?.getValue(_uniqueQuestions[i]);\r\n if (!answer) {\r\n continue;\r\n }\r\n\r\n let existingValidation = _uniqueQuestionsValidationResults.filter(\r\n (x) => x.key === _uniqueQuestions[i]\r\n );\r\n if (existingValidation.length > 0) {\r\n if (\r\n existingValidation[0].answer === answer &&\r\n existingValidation[0].isValid\r\n ) {\r\n continue;\r\n }\r\n }\r\n\r\n _uniqueQuestionsValidationResults.push({\r\n key: _uniqueQuestions[i],\r\n answer: answer,\r\n isValid: false,\r\n });\r\n\r\n validationElements.push({\r\n key: _uniqueQuestions[i],\r\n answer: answer,\r\n });\r\n }\r\n\r\n if (validationElements.length === 0) {\r\n return true;\r\n }\r\n\r\n let data = {\r\n surveyId: _surveyId,\r\n workflowUniqueKey: _workflowUniqueKey,\r\n keyAnswers: validationElements,\r\n };\r\n\r\n let isValid = true;\r\n $.ajax({\r\n url: `${__appUrl}/api/submissions/validate-unique-submission`,\r\n async: false,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n data: JSON.stringify(data),\r\n success: function (response) {\r\n isValid = response;\r\n },\r\n });\r\n\r\n if (isValid) {\r\n for (let i = 0; i < _uniqueQuestionsValidationResults.length; i++) {\r\n _uniqueQuestionsValidationResults[i].isValid = true;\r\n }\r\n }\r\n\r\n return isValid;\r\n}\r\n\r\nfunction bracketCountCondition(cond) {\r\n let bracketCount = 0;\r\n for (z = 0; z < cond.length; z++) {\r\n if (cond[z] == \"(\") {\r\n bracketCount++;\r\n } else if (cond[z] == \")\") {\r\n bracketCount--;\r\n }\r\n }\r\n\r\n if (bracketCount > 0) {\r\n for (z = 0; z < bracketCount; z++) {\r\n cond = cond.replace(\"(\", \"\");\r\n }\r\n } else if (bracketCount < 0) {\r\n lastIndex = -1;\r\n for (z = 0; z > bracketCount; z--) {\r\n lastIndex = cond.lastIndexOf(\")\");\r\n cond = cond.replaceAt(lastIndex, \"\");\r\n }\r\n }\r\n\r\n return cond;\r\n}\r\n\r\nfunction validateCategoryLimit() {\r\n let isValid = true;\r\n if (_categoryLimit && _categoryLimit.length > 0) {\r\n const data = {\r\n surveyId: _surveyId,\r\n questionAnswers: _categoryLimit.reduce((acc, x) => {\r\n if (_globalForm.getComponent(x.key)) {\r\n acc.push({\r\n key: x.key,\r\n primaryQuestion: x.data[0].primaryQuestion,\r\n answer: _globalForm.getComponent(x.key).getValue(),\r\n });\r\n }\r\n return acc;\r\n }, []),\r\n };\r\n\r\n $.ajax({\r\n url: `${__appUrl}/api/submissions/validate-category-limit`,\r\n async: false,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n data: JSON.stringify(data),\r\n success: function (response) {\r\n _categoryLimitErrors = response.errorMessages;\r\n if (_categoryLimitErrors && _categoryLimitErrors.length > 0) {\r\n isValid = false;\r\n }\r\n },\r\n });\r\n }\r\n\r\n return isValid;\r\n}\r\n\r\nfunction validateRankingOnPageChange() {\r\n let errorMessage = [];\r\n if ($(\"#formio .rank:visible\").length > 0) {\r\n $(\"#formio .rank:visible\").each(function () {\r\n let isValid = true;\r\n let numVals = [];\r\n $(this)\r\n .find(\".form-check label input[type=checkbox]:checked:visible\")\r\n .each(function () {\r\n if ($(this).parent().find(\"input[type=number]\").val() == \"\") {\r\n isValid = false;\r\n $(this).parent().find(\"input[type=number]\").addClass(\"error\");\r\n }\r\n if (\r\n numVals.indexOf(\r\n $(this).parent().find(\"input[type=number]\").val()\r\n ) != -1 &&\r\n $(this).parent().find(\"input[type=number]\").val() != \"\"\r\n ) {\r\n isValid = false;\r\n $(this).parent().find(\"input[type=number]\").addClass(\"error\");\r\n } else {\r\n numVals.push($(this).parent().find(\"input[type=number]\").val());\r\n }\r\n });\r\n\r\n if (isValid) {\r\n isValid = new Set(numVals).size === numVals.length;\r\n }\r\n\r\n if (!isValid) {\r\n errorMessage.push($(this).attr(\"class\"));\r\n }\r\n });\r\n }\r\n\r\n if (!errorMessage.length == 0) {\r\n showError(_translationData[_defaultLanguage.tag].duplicateRanking);\r\n }\r\n\r\n return errorMessage.length == 0;\r\n}\r\n\r\nfunction validateRanking() {\r\n let isValid = true;\r\n if ($(\"#formio .rank\").length > 0) {\r\n $(\"#formio .rank\").each(function () {\r\n let numVals = [];\r\n $(this)\r\n .find(\".form-check label input[type=checkbox]:checked:visible\")\r\n .each(function () {\r\n if ($(this).parent().find(\"input[type=number]\").val() == \"\") {\r\n isValid = false;\r\n $(this).parent().find(\"input[type=number]\").addClass(\"error\");\r\n }\r\n if (\r\n numVals.indexOf(\r\n $(this).parent().find(\"input[type=number]\").val()\r\n ) != -1 &&\r\n $(this).parent().find(\"input[type=number]\").val() != \"\"\r\n ) {\r\n isValid = false;\r\n $(this).parent().find(\"input[type=number]\").addClass(\"error\");\r\n } else {\r\n numVals.push($(this).parent().find(\"input[type=number]\").val());\r\n }\r\n });\r\n\r\n if (isValid) {\r\n isValid = new Set(numVals).size === numVals.length;\r\n }\r\n });\r\n }\r\n return isValid;\r\n}\r\n\r\nfunction validateRankingOnChange(e) {\r\n const minValidation = parseInt($(e).data(\"minvalidation\"));\r\n const max = minValidation !== -1 ? minValidation : parseInt($(e).prop(\"max\"));\r\n if ($(e).val() > max || $(e).val() <= 0) {\r\n $(e).val(\"\");\r\n $(e).addClass(\"is-invalid\").addClass(\"was-validated\");\r\n } else {\r\n $(e).removeClass(\"is-invalid\").removeClass(\"was-validated\");\r\n }\r\n}\r\n\r\nfunction addNoneOfAbove() {\r\n for (let i = 0; i < _noneOfAboveDetails.length; i++) {\r\n const noneOfAboveKey = cleanKey(_noneOfAboveDetails[i].key);\r\n if ($(`#formio .formio-component-${noneOfAboveKey}`).length > 0) {\r\n if (_noneOfAboveDetails[i].type == \"all\") {\r\n $(\r\n `#formio .formio-component-${noneOfAboveKey} .form-radio .form-check:last-child input`\r\n ).addClass(\"all-of-above\");\r\n $(\r\n `#formio .formio-component-${noneOfAboveKey} .form-radio .form-check:last-child input`\r\n ).addClass(`${_noneOfAboveDetails[i].key}-all-of-above`);\r\n continue;\r\n }\r\n $(\r\n `#formio .formio-component-${noneOfAboveKey} .form-radio .form-check:last-child input`\r\n ).addClass(\"none-of-above\");\r\n $(\r\n `#formio .formio-component-${noneOfAboveKey} .form-radio .form-check:last-child input`\r\n ).addClass(`${_noneOfAboveDetails[i].key}-none-of-above`);\r\n }\r\n }\r\n}\r\n\r\nfunction getCategoryLimitExceed() {\r\n var isShouldHideWhenLimitExceedsEnabled =\r\n _categoryLimit.filter((x) => x.shouldHideWhenLimitExceeds).length > 0;\r\n if (\r\n isShouldHideWhenLimitExceedsEnabled &&\r\n _categoryLimitExceeded.length == 0\r\n ) {\r\n $.ajax({\r\n url: `${__appUrl}/api/submissions/category-limit-exceeded/${_surveyId}`,\r\n async: false,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n success: function (response) {\r\n _categoryLimitExceeded = response;\r\n hideChoiceWhoseLimitHasExceeded();\r\n },\r\n });\r\n }\r\n}\r\n\r\nfunction hideChoiceWhoseLimitHasExceeded() {\r\n if (_categoryLimitExceeded.length > 0) {\r\n var currentPrimaryQuestion = \"\";\r\n var currentComponent = \"\";\r\n for (let i = 0; i < _categoryLimitExceeded.length; i++) {\r\n if (currentPrimaryQuestion != _categoryLimitExceeded[i].primaryQuestion) {\r\n currentPrimaryQuestion = _categoryLimitExceeded[i].primaryQuestion;\r\n currentComponent = FormioUtils.findComponents(\r\n _builderHidden.instance.schema.components,\r\n {\r\n label: currentPrimaryQuestion,\r\n }\r\n );\r\n }\r\n\r\n currentComponent = currentComponent.filter(\r\n (x) =>\r\n x.type === \"radio\" || x.type === \"selectboxes\" || x.type === \"select\"\r\n );\r\n\r\n if (\r\n currentComponent[0].type === \"radio\" ||\r\n currentComponent[0].type === \"selectboxes\"\r\n ) {\r\n var $target = $(\r\n `#formio .formio-component-${cleanKey(\r\n currentComponent[0].key\r\n )} .radio.form-check label[for$=\"--${\r\n _categoryLimitExceeded[i].answer\r\n }\"]`\r\n ).parent();\r\n $target.remove();\r\n } else {\r\n let component = _globalForm.getComponent(currentComponent[0].key);\r\n component.component.data.values =\r\n component.component.data.values.filter(\r\n (x) => x.value !== _categoryLimitExceeded[i].answer\r\n );\r\n component.redraw();\r\n setTimeout(() => {\r\n setCustomCss(component.key);\r\n }, 200);\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction setFileType(key) {\r\n $($(`#formio .formio-component-${cleanKey(key)}`).find(\"img\")).each(\r\n function () {\r\n var name = $(this).attr(\"alt\");\r\n $(this)\r\n .parent()\r\n .prepend(\r\n `${name}`\r\n );\r\n $(this).css({ display: \"none\" });\r\n }\r\n );\r\n}\r\n\r\nfunction setLinkedDataFields(key, value, e) {\r\n let linkedDataVals = _linkedData.filter(\r\n (item) => item.key === key && item.type !== \"survey\"\r\n );\r\n if (linkedDataVals.length > 0) {\r\n let data = linkedDataVals[0].data.filter((item) => item[key] == value);\r\n if (data.length > 0) {\r\n for (item in data[0]) {\r\n if (item !== key) {\r\n if (_globalForm.getComponent(item).type === \"datetime\") {\r\n _globalForm.getComponent(item).setValue(new Date(data[0][item]));\r\n } else {\r\n _globalForm.getComponent(item).setValue(data[0][item]);\r\n }\r\n }\r\n }\r\n $(`#formio [name=\"data[${key}]\"]`).blur();\r\n }\r\n }\r\n}\r\n\r\nfunction disableAndClear(key, value) {\r\n const cleanedKey = cleanKey(key);\r\n\r\n if (\r\n $(`.formio-component-${cleanedKey}`)\r\n .attr(\"class\")\r\n .split(\" \")\r\n .indexOf(\"rank\") != -1\r\n ) {\r\n $(\r\n `.formio-component-${cleanedKey} .form-check label input[type=number]`\r\n ).each(function () {\r\n if (value[$(this).data(\"choiceval\")] == false) {\r\n $(this).val(\"\");\r\n $(this).attr(\"disabled\", \"disabled\");\r\n } else {\r\n $(this).removeAttr(\"disabled\");\r\n $(this).focus();\r\n }\r\n });\r\n }\r\n const searchedComponents = FormioUtils.searchComponents(\r\n _builderHidden.instance.schema.components,\r\n { key: key }\r\n );\r\n let maxCount =\r\n searchedComponents[0].validate &&\r\n searchedComponents[0].validate.maxSelectedCount\r\n ? searchedComponents[0].validate.maxSelectedCount\r\n : -1;\r\n if (maxCount != -1) {\r\n let val = _globalForm.getComponent(key).getValue();\r\n selectedCount = 0;\r\n for (item in val) {\r\n if (val[item]) {\r\n selectedCount++;\r\n }\r\n }\r\n if (selectedCount < maxCount) {\r\n $(\r\n `.formio-component-${cleanedKey} .form-check label input[type=checkbox]`\r\n ).removeAttr(\"disabled\");\r\n } else if (selectedCount == maxCount) {\r\n $(\r\n `.formio-component-${cleanedKey} .form-check label input[type=checkbox]`\r\n ).each(function () {\r\n if (!$(this).prop(\"checked\")) {\r\n $(this).attr(\"disabled\", true);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nfunction validateRequiredForLinkedQuestion() {\r\n let isValid = true;\r\n _requiredValidationErrors = [];\r\n let currentQuestionSet = _linkedQuestions.filter(\r\n (q) => q.isRequired && !q.isMultidata\r\n );\r\n for (let i = 0; i < currentQuestionSet.length; i++) {\r\n const currentQuestionSetKey = cleanKey(currentQuestionSet[i].key);\r\n\r\n if (\r\n $(`.formio-component-${currentQuestionSetKey}:visible`).length > 0 &&\r\n currentQuestionSet[i].isRequired\r\n ) {\r\n if (\r\n currentQuestionSet[i].qType == \"Dropdown\" &&\r\n !$(`#${currentQuestionSetKey}`).val()\r\n ) {\r\n isValid = false;\r\n _requiredValidationErrors.push(\r\n `${currentQuestionSet[i].label} is required.`\r\n );\r\n } else if (\r\n currentQuestionSet[i].qType == \"Single Choice\" ||\r\n currentQuestionSet[i].qType == \"Multiple Choice\"\r\n ) {\r\n if ($(`[name=\"${currentQuestionSetKey}\"]:checked`).length === 0) {\r\n isValid = false;\r\n _requiredValidationErrors.push(\r\n `${currentQuestionSet[i].label} is required.`\r\n );\r\n }\r\n }\r\n }\r\n }\r\n if (isValid) {\r\n let currentMultidataQuestionSet = _linkedQuestions.filter(\r\n (q) => q.isRequired && q.isMultidata && q.multidataQuestion\r\n );\r\n isValid = validateRequiredForLinkedQuestionMultidata(\r\n currentMultidataQuestionSet\r\n );\r\n }\r\n\r\n return isValid;\r\n}\r\n\r\nfunction validateRequiredForLinkedQuestionMultidata(multidataQuestionSet) {\r\n let isValid = true;\r\n for (let i = 0; i < multidataQuestionSet.length; i++) {\r\n let values = _globalForm\r\n .getComponent(multidataQuestionSet[i].multidataQuestion)\r\n .getValue();\r\n\r\n if (values.filter((q) => !q[multidataQuestionSet[i].key]).length > 0) {\r\n isValid = false;\r\n _requiredValidationErrors.push(\r\n `${multidataQuestionSet[i].label} is required.`\r\n );\r\n break;\r\n }\r\n }\r\n return isValid;\r\n}\r\n\r\nfunction mobileAndTabletcheck() {\r\n var isMobileOrTablet = false;\r\n (function (a) {\r\n if (\r\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(\r\n a\r\n ) ||\r\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(\r\n a.substr(0, 4)\r\n )\r\n )\r\n check = true;\r\n })(navigator.userAgent || navigator.vendor || window.opera);\r\n return isMobileOrTablet;\r\n}\r\n\r\nfunction browserDetector() {\r\n // Opera 8.0+\r\n var isOpera =\r\n (!!window.opr && !!opr.addons) ||\r\n !!window.opera ||\r\n navigator.userAgent.indexOf(\" OPR/\") >= 0;\r\n\r\n // Firefox 1.0+\r\n var isFirefox = typeof InstallTrigger !== \"undefined\";\r\n\r\n // Safari 3.0+ \"[object HTMLElementConstructor]\"\r\n var isSafari =\r\n /constructor/i.test(window.HTMLElement) ||\r\n (function (p) {\r\n return p.toString() === \"[object SafariRemoteNotification]\";\r\n })(\r\n !window[\"safari\"] ||\r\n (typeof safari !== \"undefined\" && safari.pushNotification)\r\n );\r\n\r\n // Internet Explorer 6-11\r\n var isIE = /*@cc_on!@*/ false || !!document.documentMode;\r\n\r\n // Edge 20+\r\n var isEdge = !isIE && !!window.StyleMedia;\r\n\r\n // Chrome 1 - 79\r\n var isChrome =\r\n !!window.chrome && (!!window.chrome.webstore || !!window.chrome.runtime);\r\n\r\n // Edge (based on chromium) detection\r\n var isEdgeChromium = isChrome && navigator.userAgent.indexOf(\"Edg\") != -1;\r\n\r\n // Blink engine detection\r\n //var isBlink = (isChrome || isOpera) && !!window.CSS;\r\n\r\n return isOpera\r\n ? \"Opera\"\r\n : isFirefox\r\n ? \"Firefox\"\r\n : isSafari\r\n ? \"Safari\"\r\n : isIE\r\n ? \"InternetExplorer\"\r\n : isEdge\r\n ? \"Edge\"\r\n : isChrome\r\n ? \"Chrome\"\r\n : isEdgeChromium\r\n ? \"EdgeChromium\"\r\n : \"Others\";\r\n}\r\n\r\nfunction getWorkflowDetails() {\r\n let isResubmission = _workflowUniqueKey ? true : false;\r\n const uniqueKey = _workflowUniqueKey\r\n ? _workflowUniqueKey\r\n : $.uuid().replace(/-/g, \"\");\r\n\r\n _workflowUniqueKey = uniqueKey;\r\n const lang = _defaultLanguage.tag;\r\n let submissionMessageFormSubmit =\r\n _languageContainer[lang] &&\r\n _languageContainer[lang]?.commonProps?.surveyMessage\r\n ? _languageContainer[lang].commonProps.surveyMessage\r\n : _submissionMessage;\r\n\r\n if (_workflowDetails?.isEnabled) {\r\n if (\r\n submissionMessageFormSubmit.toLowerCase().indexOf(\"{uniquekey}\") !== -1\r\n ) {\r\n submissionMessageFormSubmit.replace(/{uniquekey}/g, uniqueKey);\r\n } else {\r\n submissionMessageFormSubmit += _translationData[\r\n _defaultLanguage.tag\r\n ].uniqueKeyIs.replace(\"{UNIQUEKEY}\", uniqueKey);\r\n }\r\n }\r\n\r\n let workflowDetails = {\r\n workflowUniqueKey: uniqueKey,\r\n isReSubmission: isResubmission,\r\n };\r\n\r\n return workflowDetails;\r\n}\r\n\r\nfunction printSurveyBeforeSubmission() {\r\n $(\".survey-print-container\").remove();\r\n\r\n let source = document.createElement(\"div\");\r\n source.className = \"survey-print-container d-flex flex-column p-5 mt-4 w-100\";\r\n $(\"body\").append(source);\r\n $(\".survey-print-container\").attr(\"style\", \"width: 980px\");\r\n $(\".survey-print-container\").append(\r\n `
${_surveyTitle}
`\r\n );\r\n\r\n const componentsTobeIgnored = [\r\n \"panel\",\r\n \"column\",\r\n \"table\",\r\n \"tabs\",\r\n \"button\",\r\n \"editgrid\",\r\n ];\r\n FormioUtils.eachComponent(\r\n _builderHidden.instance.schema.components,\r\n (component) => {\r\n if (\r\n componentsTobeIgnored.includes(component.type) ||\r\n component.type == undefined\r\n ) {\r\n return;\r\n }\r\n\r\n let element = `
`;\r\n\r\n if (component.type === \"selectboxes\") {\r\n element += ``;\r\n for (let i = 0; i < component.values.length; i++) {\r\n element += `
`;\r\n }\r\n } else if (component.type === \"survey\") {\r\n element += ``;\r\n element += '';\r\n for (let i = 0; i < component.values.length; i++) {\r\n element += ``;\r\n }\r\n element += \"\";\r\n\r\n for (let i = 0; i < component.questions.length; i++) {\r\n element += \"\";\r\n for (let j = 0; j < component.values.length; j++) {\r\n element += ``;\r\n }\r\n element += \"\";\r\n }\r\n element += \"
${component.values[i].label}
\";\r\n } else if (component.type === \"file\") {\r\n if (\r\n !(\r\n component.customClass?.includes(\"file\") ||\r\n component.customClass?.includes(\"audio\") ||\r\n component.customClass?.includes(\"video\") ||\r\n component.customClass?.includes(\"record\") ||\r\n component.customClass?.includes(\"voice\") ||\r\n component.customClass?.includes(\"download\")\r\n )\r\n ) {\r\n const img = $(`.formio-component-${component.type}`)\r\n .find(\"img\")\r\n .parent()\r\n .html();\r\n let imgElement = $(`${img}`);\r\n imgElement.addClass(\"m-auto\");\r\n\r\n element += imgElement.prop(\"outerHTML\");\r\n }\r\n } else if (component.type === \"editgrid\") {\r\n } else if (component.type === \"custom\") {\r\n element += ``;\r\n const linkedQuestion = _linkedQuestions.filter(\r\n (x) => x.key === component.key\r\n );\r\n if (linkedQuestion && linkedQuestion.length === 1) {\r\n if (linkedQuestion[0].qType === \"Multiple Choice\") {\r\n for (key in linkedQuestion[0].value) {\r\n for (let i = 0; i < linkedQuestion[0].value[key].length; i++) {\r\n element += `
`;\r\n }\r\n }\r\n } else {\r\n for (key in linkedQuestion[0].value) {\r\n for (let i = 0; i < linkedQuestion[0].value[key].length; i++) {\r\n element += `
`;\r\n }\r\n }\r\n }\r\n }\r\n } else if (component.type === \"select\") {\r\n element += ``;\r\n for (let i = 0; i < component.data.values.length; i++) {\r\n element += `
`;\r\n }\r\n } else if (component.type === \"radio\") {\r\n element += ``;\r\n for (let i = 0; i < component.values.length; i++) {\r\n element += `
`;\r\n }\r\n } else if (component.type === \"content\") {\r\n element += component.html;\r\n } else if (component.type === \"textarea\") {\r\n element += ``;\r\n element += ``;\r\n } else {\r\n element += ``;\r\n element += ``;\r\n }\r\n\r\n element += \"
\";\r\n\r\n $(\".survey-print-container\").append(element);\r\n },\r\n true\r\n );\r\n\r\n $(\".survey-print-container\").prop(\"lang\", _defaultLanguage.tag);\r\n\r\n $(\".survey-print-container\").append(`\r\n
\r\n
\r\n ${new Date().toLocaleString()}\r\n
\r\n
\r\n Data Mining - Estebyan\r\n
\r\n
`);\r\n\r\n $(\".survey-print-container\").append(\r\n `
`\r\n );\r\n $(\".main-container\").hide();\r\n $(\".site-footer\").addClass(\"hidden\");\r\n window.scrollTo(0, document.body.scrollHeight);\r\n setTimeout(() => {\r\n window.print();\r\n }, 500);\r\n}\r\n\r\nfunction printSurveyAfterSubmission() {\r\n $(\".survey-print-container\").remove();\r\n\r\n let source = document.createElement(\"div\");\r\n source.className = \"survey-print-container d-flex flex-column p-5 mt-4 w-100\";\r\n $(\"body\").append(source);\r\n $(\".survey-print-container\").attr(\"style\", \"width: 980px\");\r\n $(\".survey-print-container\").append(\r\n `
${_surveyTitle}
`\r\n );\r\n\r\n const componentsTobeIgnored = [\r\n \"panel\",\r\n \"column\",\r\n \"table\",\r\n \"tabs\",\r\n \"button\",\r\n \"editgrid\",\r\n ];\r\n FormioUtils.eachComponent(\r\n _builderHidden.instance.schema.components,\r\n (component) => {\r\n if (\r\n componentsTobeIgnored.includes(component.type) ||\r\n component.type == undefined\r\n ) {\r\n return;\r\n }\r\n\r\n let element = `
`;\r\n\r\n if (component.type === \"file\") {\r\n if (\r\n !(\r\n component.customClass?.includes(\"file\") ||\r\n component.customClass?.includes(\"audio\") ||\r\n component.customClass?.includes(\"video\") ||\r\n component.customClass?.includes(\"record\") ||\r\n component.customClass?.includes(\"voice\") ||\r\n component.customClass?.includes(\"download\")\r\n )\r\n ) {\r\n const img = $(`.formio-component-${component.type}`)\r\n .find(\"img\")\r\n .parent()\r\n .html();\r\n let imgElement = $(`${img}`);\r\n imgElement.addClass(\"m-auto\");\r\n\r\n element += imgElement.prop(\"outerHTML\");\r\n }\r\n } else if (component.type === \"content\") {\r\n element += component.html;\r\n } else if (component.type === \"select\") {\r\n element += ``;\r\n const answer = _globalForm.getComponent(component.key).getValue();\r\n const questions = component.data.values;\r\n const answerLabel =\r\n questions.filter((x) => x.value === answer)[0]?.label ?? \"\";\r\n element += `

${answerLabel}

`;\r\n } else if (component.type === \"radio\") {\r\n element += ``;\r\n const answer = _globalForm.getComponent(component.key).getValue();\r\n const questions = component.values;\r\n const answerLabel =\r\n questions.filter((x) => x.value === answer)[0]?.label ?? \"\";\r\n element += `

${answerLabel}

`;\r\n } else if (component.type === \"selectboxes\") {\r\n element += `
`;\r\n const answers = _globalForm.getComponent(component.key).getValue();\r\n const questions = component.values;\r\n for (key in answers) {\r\n const answerLabel =\r\n questions.filter((x) => x.value === key)[0]?.label ?? \"\";\r\n if (answers[key]) {\r\n element += `

${answerLabel}

`;\r\n }\r\n }\r\n element += \"
\";\r\n } else if (component.type === \"survey\") {\r\n element += `
`;\r\n const answers = _globalForm.getComponent(component.key).getValue();\r\n const questions = component.questions;\r\n for (key in answers) {\r\n const questionLabel =\r\n questions.filter((x) => x.value === key)[0]?.label ?? \"\";\r\n element += `

${questionLabel}-${answers[key]}

`;\r\n }\r\n } else if (component.type === \"datetime\") {\r\n const answer = _globalForm.getComponent(component.key).getValue();\r\n const formatedAnswer = formatDateTimeForSurveyForm(\r\n answer,\r\n component.format\r\n );\r\n element += ``;\r\n element += `

${formatedAnswer}

`;\r\n } else {\r\n element += ``;\r\n element += `

${_globalForm\r\n .getComponent(component.key)\r\n .getValue()}

`;\r\n }\r\n\r\n element += \"
\";\r\n\r\n $(\".survey-print-container\").append(element);\r\n },\r\n true\r\n );\r\n\r\n $(\".survey-print-container\").append(`\r\n
\r\n
\r\n ${new Date().toLocaleString()}\r\n
\r\n
\r\n Data Mining - Estebyan\r\n
\r\n
`);\r\n\r\n $(\".survey-print-container\").prop(\"lang\", _defaultLanguage.tag);\r\n $(\".survey-print-container\").append(\r\n `
`\r\n );\r\n $(\".main-container\").hide();\r\n $(\".site-footer\").addClass(\"hidden\");\r\n window.scrollTo(0, document.body.scrollHeight);\r\n setTimeout(() => {\r\n window.print();\r\n }, 500);\r\n}\r\n\r\nfunction closePrintSurvey() {\r\n $(\".main-container\").show();\r\n $(\".survey-print-container\").remove();\r\n $(\".site-footer\").removeClass(\"hidden\");\r\n}\r\n\r\nfunction printCertificate() {\r\n if (_certificate && _certificate.template) {\r\n $(\".site-header\").hide();\r\n $(\".site-footer\").hide();\r\n $(\".survey-submission\").hide();\r\n\r\n $(\".certificate-module\").html($.parseHTML(_certificate.template));\r\n $(\".certificate-module .certificate-img-container span\").remove();\r\n $(\".certificate-module [contenteditable]\").removeAttr(\"contenteditable\");\r\n $(\".certificate-module .survey-question\").each(function () {\r\n const key = $(this).find(\"select .selected\").val();\r\n $(this).html(_globalForm.getComponent(key).getValue());\r\n });\r\n\r\n const isImg = certificateConfiguration(_certificate.name);\r\n\r\n if (!isImg) {\r\n const doc = new jspdf.jsPDF(\r\n \"l\",\r\n \"px\",\r\n _certificateConfig[_certificate.name].size,\r\n true\r\n );\r\n const element = document.querySelector(\".main-container\");\r\n doc.html(element, {\r\n callback: function (doc) {\r\n doc.save(\"certificate.pdf\");\r\n },\r\n x: 15,\r\n y: 15,\r\n });\r\n $(\".certificate-module\").html(\"\");\r\n } else {\r\n $(\".submssion-message\").remove();\r\n setTimeout(() => {\r\n window.print();\r\n }, 500);\r\n }\r\n }\r\n}\r\n\r\nfunction certificateConfiguration(certificate) {\r\n if (\r\n certificate == \"certificate2.html\" ||\r\n certificate == \"certificate3.html\" ||\r\n certificate == \"certificate4.html\"\r\n ) {\r\n $(\".certificate-module .main-container\").attr(\r\n \"style\",\r\n \"display: flex; flex-direction: column; gap: 45px; font-family: Roboto, sans-serif; margin: 30px; min-height: 682px; width: 887px; padding: 30px 45px; background-color: none; color: black; position: relative;\"\r\n );\r\n $(\".certificate-module .main-container\").append(\r\n ``\r\n );\r\n $(\".certificate-module .main-container .certificate-sections\").css({\r\n \"z-index\": \"2\",\r\n });\r\n $(\".certificate-module\").css({ margin: \"0 auto\" });\r\n const cert = $(\".main-container\");\r\n $(\"#bg-img\").height(cert.height() + 60);\r\n $(\"#bg-img\").width(cert.width() + 90);\r\n $(\".submssion-message\").hide();\r\n return true;\r\n } else if (\r\n certificate == \"certificate8.html\" ||\r\n certificate == \"certificate9.html\"\r\n ) {\r\n $(\".certificate-module .main-container\").attr(\r\n \"style\",\r\n \"display: flex; flex-direction: column; gap: 45px; font-family: Roboto, sans-serif; margin: 30px; min-height: 682px; width: 887px; padding: 30px 45px; background-color: none; color: black; position: relative;\"\r\n );\r\n $(\".certificate-module .main-container\").append(\r\n ``\r\n );\r\n $(\".certificate-module .main-container .certificate-sections\").css({\r\n \"z-index\": \"2\",\r\n });\r\n $(\".certificate-module\").css({ margin: \"0 auto\" });\r\n const cert = $(\".main-container\");\r\n $(\"#bg-img\").height(cert.height() + 60);\r\n $(\"#bg-img\").width(cert.width() + 90);\r\n $(\".submssion-message\").hide();\r\n return true;\r\n } else if (\r\n certificate == \"certificate13.html\" ||\r\n certificate == \"certificate14.html\"\r\n ) {\r\n $(\".certificate-module .main-container\").attr(\r\n \"style\",\r\n \"display: flex; flex-direction: column; gap: 45px; font-family: Roboto, sans-serif; margin: 30px; min-height: 682px; width: 887px; padding: 30px 45px; background-color: none; color: black; position: relative;\"\r\n );\r\n $(\".certificate-module .main-container\").append(\r\n ``\r\n );\r\n $(\".certificate-module .main-container .certificate-sections\").css({\r\n \"z-index\": \"2\",\r\n });\r\n $(\".certificate-module\").css({ margin: \"0 auto\" });\r\n const cert = $(\".main-container\");\r\n $(\"#bg-img\").height(cert.height() + 60);\r\n $(\"#bg-img\").width(cert.width() + 90);\r\n $(\".submssion-message\").hide();\r\n return true;\r\n } else if (\r\n certificate == \"certificate5.html\" ||\r\n certificate == \"certificate6.html\" ||\r\n certificate == \"certificate7.html\" ||\r\n certificate == \"certificate10.html\" ||\r\n certificate == \"certificate11.html\" ||\r\n certificate == \"certificate12.html\"\r\n ) {\r\n $(\".certificate-module\").css({ \"margin-top\": \"20px\" });\r\n $(\".certificate-module .main-container\").width(950);\r\n $(\".certificate-module .main-container>div>div\").css({\r\n \"min-height\": \"500px\",\r\n });\r\n $(\".certificate-module .main-container>div>div\").css({\r\n \"justify-content\": \"space-between\",\r\n });\r\n $(\".submssion-message\").hide();\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nfunction showHideLanguageSpecificDetails() {\r\n for (let i = 0; i < _languageNames.length; i++) {\r\n if (_languageNames[i].label === _defaultLanguage.label) {\r\n $(`.${_languageNames[i].label.toLocaleLowerCase()}`).show();\r\n } else {\r\n $(`.${_languageNames[i].label.toLocaleLowerCase()}`).hide();\r\n }\r\n }\r\n}\r\n\r\nfunction setLinkedQuestionLanguage() {\r\n $(\"[data-linkedlang]\").each(function () {\r\n if (_languageContainer[_defaultLanguage.tag]) {\r\n const langVal =\r\n _languageContainer[_defaultLanguage.tag][$(this).data(\"linkedlang\")];\r\n if (langVal != null && langVal != \"\") {\r\n $(this).text(langVal);\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction hideUnhideDepedentLinkedQuestions() {\r\n for (let i = 0; i < _linkedQuestions.length; i++) {\r\n const isHidden = $(\r\n `#formio .formio-component-${cleanKey(_linkedQuestions[i].qLinked)}`\r\n )\r\n .prop(\"class\")\r\n .includes(\"formio-hidden\");\r\n\r\n if (isHidden) {\r\n const linkedQuestionKey = cleanKey(_linkedQuestions[i].key);\r\n if (_linkedQuestions[i].qType === \"Dropdown\") {\r\n $(`#formio .formio-component-${linkedQuestionKey} select`).val(\"\");\r\n } else {\r\n $(`#formio .formio-component-${linkedQuestionKey} input`).each(\r\n function () {\r\n $(this).prop(\"checked\", false);\r\n }\r\n );\r\n }\r\n\r\n $(`#formio .formio-component-${linkedQuestionKey}`).addClass(\r\n \"formio-hidden\"\r\n );\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n }\r\n }\r\n}\r\n\r\nfunction setDraftData() {\r\n for (let i = 0; i < _draftData.length; i++) {\r\n const draftDataKey = cleanKey(_draftData[i].key);\r\n if (_draftData[i].value) {\r\n if (_draftData[i].componentType != \"custom\") {\r\n if (\r\n FormioUtils.getComponent(\r\n _builderHidden.instance.schema.components,\r\n _draftData[i].key\r\n )\r\n ) {\r\n //For all the non-linked questions\r\n _globalForm\r\n .getComponent(_draftData[i].key)\r\n .setValue(_draftData[i].value);\r\n //hideUnhideLinkedQuestions(_draftData[i].key, _draftData[i].value);\r\n hideUnhideLinkedQuestionsSimple(_draftData[i].key);\r\n } else if (_globalForm.getComponent(_draftData[i].key)) {\r\n _globalForm\r\n .getComponent(_draftData[i].key)\r\n .setValue(_draftData[i].value); //for editgrid\r\n let $target = $(`#formio [ref=\"editgrid-${draftDataKey}-addRow\"]`);\r\n editGridBtnClick($target);\r\n }\r\n } else {\r\n //For all the linked questions\r\n let linkedQuestion = _linkedQuestions.filter(\r\n (q) => q.key == _draftData[i].key\r\n )[0];\r\n if (linkedQuestion.qType == \"Single Choice\") {\r\n $(\r\n `#formio [name=\"${draftDataKey}\"][value=\"${cleanKey(\r\n _draftData[i].value\r\n )}\"]`\r\n ).click();\r\n } else if (linkedQuestion.qType == \"Multiple Choice\") {\r\n let dataValues = _draftData[i].value.split(\";\");\r\n for (item in dataValues) {\r\n if (dataValues[item]) {\r\n $(\r\n `#formio [name=\"${draftDataKey}\"][value=\"${cleanKey(\r\n dataValues[item]\r\n )}\"]`\r\n ).click();\r\n }\r\n }\r\n } else if (linkedQuestion.qType == \"Dropdown\") {\r\n $(`#formio #${draftDataKey}`).val(_draftData[i].value);\r\n $(`#formio #${draftDataKey}`).change();\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nasync function setWorkflowSurveyResponseForReSubmission(response) {\r\n const answers = response.surveyResults;\r\n\r\n for (let i = 0; i < _questionList.length; i++) {\r\n const key = _questionList[i].key;\r\n const prevAnswers = answers.filter(\r\n (ans) =>\r\n ans.primaryQuestion === _questionList[i].question ||\r\n ans.alias === _questionList[i].question\r\n );\r\n\r\n if (_questionList[i].type === \"file\") {\r\n const id = $.uuid();\r\n let originalName =\r\n prevAnswers[0]?.answer.split(\"/\")[\r\n prevAnswers[0]?.answer.split(\"/\").length - 1\r\n ];\r\n if (originalName.includes(\"\\\\\")) {\r\n originalName =\r\n originalName.split(\"\\\\\")[originalName.split(\"\\\\\").length - 1];\r\n }\r\n const name = id + originalName;\r\n const blobVal = await getBlob(prevAnswers[0]?.answer);\r\n const ans = [\r\n {\r\n name: name,\r\n originalName: originalName,\r\n size: blobVal.size,\r\n type: blobVal.type,\r\n url: await blobToBase64(blobVal),\r\n },\r\n ];\r\n\r\n _globalForm.getComponent(key)?.setValue(ans);\r\n setFileType(key);\r\n continue;\r\n }\r\n if (_questionList[i].type === \"survey\") {\r\n let ans = {};\r\n for (let j = 0; j < prevAnswers.length; j++) {\r\n ans[prevAnswers[j].secondaryQuestion] = prevAnswers[j].answer;\r\n }\r\n _globalForm.getComponent(key)?.setValue(ans);\r\n continue;\r\n }\r\n if (_questionList[i].type === \"custom\") {\r\n let linkedQuestion = _linkedQuestions.filter((q) => q.key == key)[0];\r\n const dataLinked = _globalForm\r\n .getComponent(linkedQuestion.qLinked)\r\n .getValue();\r\n if (linkedQuestion.qType == \"Single Choice\") {\r\n $(\r\n `#formio [name=\"${key}\"][value=\"${cleanKey(\r\n prevAnswers[0]?.answer\r\n )}\"][data-link=\"${cleanKey(dataLinked)}\"]`\r\n ).click();\r\n } else if (linkedQuestion.qType == \"Multiple Choice\") {\r\n let dataValues = prevAnswers[0]?.answer\r\n .substring(0, prevAnswers[0]?.answer.length - 1)\r\n .split(\";\");\r\n for (item in dataValues) {\r\n if (dataValues[item]) {\r\n $(\r\n `#formio [name=\"${key}\"][value=\"${cleanKey(\r\n dataValues[item]\r\n )}\"][data-link=\"${cleanKey(dataLinked)}\"]`\r\n ).click();\r\n }\r\n }\r\n } else if (linkedQuestion.qType == \"Dropdown\") {\r\n $(`#formio #${key}`).val(prevAnswers[0]?.answer);\r\n $(`#formio #${key}`).change();\r\n }\r\n continue;\r\n }\r\n if (_questionList[i].type === \"editgrid\") {\r\n const ans = prevAnswers?.map((x) => JSON.parse(x.answer));\r\n if (ans) {\r\n _globalForm.getComponent(key)?.setValue(ans);\r\n }\r\n continue;\r\n }\r\n if (_questionList[i].type === \"selectboxes\") {\r\n const ans = prevAnswers[0]?.answer\r\n .substring(0, prevAnswers[0]?.answer.length - 1)\r\n .split(\";\");\r\n _globalForm.getComponent(key)?.setValue(ans);\r\n continue;\r\n }\r\n\r\n _globalForm.getComponent(key)?.setValue(prevAnswers[0]?.answer);\r\n\r\n const isLinked =\r\n _linkedQuestions.filter((x) => x.qLinked === key).length > 0;\r\n if (isLinked) {\r\n //hideUnhideLinkedQuestions(key, prevAnswers[0]?.answer);\r\n hideUnhideLinkedQuestionsSimple(key);\r\n }\r\n }\r\n}\r\n\r\nasync function getBlob(url) {\r\n const file = await fetch(url);\r\n return await file.blob();\r\n}\r\n\r\nfunction blobToBase64(blob) {\r\n return new Promise((resolve, _) => {\r\n const reader = new FileReader();\r\n reader.onloadend = () => resolve(reader.result);\r\n reader.readAsDataURL(blob);\r\n });\r\n}\r\n\r\nfunction languageChangeTranslation() {\r\n $(\"[data-languagetranslation]\").each(function () {\r\n const translationValue = $(this).data(\"languagetranslation\");\r\n $(this).text(_translationData[_defaultLanguage.tag][translationValue]);\r\n $(this).prop(\"lang\", _defaultLanguage.tag);\r\n });\r\n}\r\n\r\nfunction cleanCategoryLimit(categoryLimit) {\r\n _categoryLimit = JSON.parse(categoryLimit);\r\n\r\n for (let i = 0; i < _categoryLimit.length; i++) {\r\n if (_categoryLimit[i].key === \"add-category-limit-unsaved\") {\r\n _categoryLimit.splice(i, 1);\r\n }\r\n }\r\n}\r\n\r\nfunction resetMutiSelect() {\r\n var components = FormioUtils.searchComponents(\r\n _builderHidden.instance.schema.components,\r\n { type: \"selectboxes\" }\r\n );\r\n for (i = 0; i < components.length; i++) {\r\n _globalForm\r\n .getComponent(components[i].key)\r\n .setValue(_globalForm.getComponent(components[i].key).getValue());\r\n }\r\n}\r\n\r\n// #endregion\r\n\r\n// #region Events\r\n\r\nfunction updateProgressBar(progress) {\r\n if (!progress) {\r\n progress = Math.floor((_currentPage * 100) / _totalPages);\r\n }\r\n\r\n const progressBar = document.querySelector(\".progressbar\");\r\n progressBar.setAttribute(\"aria-valuenow\", progress);\r\n progressBar.style.setProperty(\"--progress\", progress + \"%\");\r\n}\r\n\r\nfunction submittingForm(submissionData) {\r\n showLoader();\r\n\r\n setTimeout(() => {\r\n let isValid = true;\r\n\r\n isValid = validateUniqueness(submissionData) && validateUniqueSubmission();\r\n if (!isValid) {\r\n const message = _duplicateSubmissionMessage[_defaultLanguage.tag]\r\n ? _duplicateSubmissionMessage[_defaultLanguage.tag]\r\n : _translationData[_defaultLanguage.tag].duplicateSubmission;\r\n\r\n _globalForm.emit(\"error\", submissionData);\r\n hideLoader();\r\n showError(message);\r\n return;\r\n }\r\n\r\n isValid = validateRequiredForLinkedQuestion();\r\n if (!isValid) {\r\n const message = _requiredValidationErrors.join(\"\\n\");\r\n _globalForm.emit(\"error\", submissionData);\r\n hideLoader();\r\n showError(message);\r\n return;\r\n }\r\n\r\n isValid = validateCategoryLimit();\r\n if (!isValid) {\r\n const message = _categoryLimitErrors.join(\"\\n\");\r\n _globalForm.emit(\"error\", submissionData);\r\n hideLoader();\r\n showError(message);\r\n return;\r\n }\r\n\r\n isValid = validateRanking();\r\n if (!isValid) {\r\n _globalForm.emit(\"error\", submissionData);\r\n hideLoader();\r\n showError(_translationData[_defaultLanguage.tag].invalidRanking);\r\n return;\r\n }\r\n\r\n if (isValid) {\r\n submitForm(submissionData);\r\n }\r\n\r\n hideLoader();\r\n }, 200);\r\n}\r\n\r\nfunction submitForm(submissionData) {\r\n _surveyAttempt.surveyId = _surveyId;\r\n _surveyAttempt.surveyResults = getSurveyData(submissionData);\r\n _surveyAttempt.formSubmissionMessageDetails = _formSubmissionMessageAnswers;\r\n _surveyAttempt.files = _fileUploadData;\r\n\r\n if (_fileUploadData && _fileUploadData.length > 0) {\r\n const totalSize =\r\n _fileUploadData.reduce((acc, file) => acc + file.size, 0) / 1024 / 1024;\r\n\r\n if (totalSize > 100) {\r\n _globalForm.refresh();\r\n showError(_translationData[_defaultLanguage.tag].fileSizeError);\r\n return;\r\n }\r\n }\r\n\r\n _surveyAttempt.isEmailOptionEnabled = _isEmailOptionEnabled;\r\n _surveyAttempt.timeTaken =\r\n (new Date().getTime() - _startTime.getTime()) / 1000;\r\n const isMobileOrTablet = mobileAndTabletcheck();\r\n _surveyAttempt.device = isMobileOrTablet ? \"Mobile/Tablet\" : \"Desktop/Laptop\";\r\n _surveyAttempt.browser = isMobileOrTablet\r\n ? \"Mobile Browser\"\r\n : browserDetector();\r\n _surveyAttempt.attemptLanguage = _defaultLanguage.label;\r\n if (_workflowDetails?.isEnabled) {\r\n _surveyAttempt.workflowDetails = getWorkflowDetails();\r\n }\r\n\r\n $.ajax({\r\n url: `${__appUrl}/api/submissions`,\r\n async: false,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n data: JSON.stringify(_surveyAttempt),\r\n success: function (response) {\r\n afterSubmitAction();\r\n },\r\n error: function (err) {\r\n const error = getError(err);\r\n if (error.messages[0] == \"Duplicate\") {\r\n const message = _duplicateSubmissionMessage[_defaultLanguage.tag]\r\n ? _duplicateSubmissionMessage[_defaultLanguage.tag]\r\n : _translationData[_defaultLanguage.tag].duplicateSubmission;\r\n showError(message);\r\n return;\r\n }\r\n showError(error.messages);\r\n },\r\n });\r\n}\r\n\r\nfunction afterSubmitAction() {\r\n showSuccessSurveySubmission(\r\n _translationData[_defaultLanguage.tag].submittedDetails,\r\n () => {\r\n if (_enablePrinting) {\r\n printSurveyAfterSubmission();\r\n }\r\n\r\n let submissionMessage = _languageContainer[_defaultLanguage.tag]\r\n ?.commonProps?.surveyMessage\r\n ? _languageContainer[_defaultLanguage.tag].commonProps.surveyMessage\r\n : _submissionMessage;\r\n\r\n if (_workflowDetails?.isEnabled) {\r\n const uniquekey = _workflowUniqueKey;\r\n\r\n if (submissionMessage.toLowerCase().indexOf(\"{uniquekey}\") !== -1) {\r\n submissionMessage = submissionMessage.replace(\r\n /{uniquekey}/g,\r\n uniquekey\r\n );\r\n } else {\r\n submissionMessage += ` ${_translationData[\r\n _defaultLanguage.tag\r\n ].uniqueKeyIs.replace(\"{UNIQUEKEY}\", uniquekey)}`;\r\n }\r\n }\r\n\r\n hideSurveyAndShowMessage(submissionMessage);\r\n\r\n let submissionLogoHtml = \"\";\r\n if (_submissionLogos.length > 0) {\r\n submissionLogoHtml = _submissionLogos.map((x) => {\r\n return `
${x}
`;\r\n });\r\n }\r\n if (submissionLogoHtml) {\r\n $(\".survey-submission\").append(submissionLogoHtml.join(\"\"));\r\n }\r\n\r\n printCertificate();\r\n }\r\n );\r\n}\r\n\r\nfunction getSurveyData(submission) {\r\n var result = [];\r\n for (let question in submission.data) {\r\n const cleanQuestion = cleanKey(question);\r\n if (question.trim() !== \"\" && question != \"submit\") {\r\n const component = FormioUtils.getComponent(\r\n _builderHidden.instance.schema.components,\r\n question\r\n );\r\n const questionType = component ? component.type : \"editgrid\";\r\n if (questionType == \"selectboxes\") {\r\n let surveyAnswers = \"\";\r\n if (\r\n $(`#formio .formio-component-${cleanQuestion}`)\r\n ?.attr(\"class\")\r\n ?.split(\" \")\r\n ?.indexOf(\"rank\") != -1\r\n ) {\r\n if (\r\n $(`#formio .formio-component-${cleanQuestion}`)\r\n ?.attr(\"class\")\r\n ?.split(\" \")\r\n ?.indexOf(\"reorder\") != -1\r\n ) {\r\n for (let items in submission.data[question]) {\r\n if (submission.data[question][items]) {\r\n const val = $(\r\n `.formio-component-${cleanQuestion} .form-check:visible label [data-choiceval=\"${cleanKey(\r\n items\r\n )}\"]`\r\n ).val();\r\n surveyAnswers += `${items}~${val};`;\r\n }\r\n }\r\n } else {\r\n for (var items in submission.data[question]) {\r\n if (submission.data[question][items]) {\r\n const val = $(\r\n `.formio-component-${cleanQuestion} .form-check label [data-choiceval=\"${cleanKey(\r\n items\r\n )}\"]`\r\n ).val();\r\n surveyAnswers += `${items}~${val};`;\r\n }\r\n }\r\n }\r\n } else {\r\n for (var items in submission.data[question]) {\r\n if (submission.data[question][items]) {\r\n surveyAnswers += `${items};`;\r\n }\r\n }\r\n }\r\n\r\n if (surveyAnswers) {\r\n result.push({\r\n primaryQuestion: component.label,\r\n secondaryQuestion: \"\",\r\n answer: surveyAnswers,\r\n questionType: questionType,\r\n alias: _alias[question],\r\n key: question,\r\n });\r\n }\r\n } else if (questionType == \"survey\") {\r\n const surveyQuestions = component.questions;\r\n for (let i = 0; i < surveyQuestions.length; i++) {\r\n for (let items in submission.data[question]) {\r\n if (surveyQuestions[i].value == items) {\r\n result.push({\r\n primaryQuestion: component.label,\r\n secondaryQuestion: surveyQuestions[i].value,\r\n answer: submission.data[question][items],\r\n questionType: questionType,\r\n alias: _alias[question],\r\n key: question,\r\n });\r\n break;\r\n }\r\n }\r\n }\r\n } else if (questionType == \"file\") {\r\n addFileUploadData(result, question, questionType, submission);\r\n } else if (questionType == \"editgrid\") {\r\n const editgridCompoenent = FormioUtils.searchComponents(\r\n _builderHidden.instance.schema.components,\r\n { key: question }\r\n )[0];\r\n const editgridQuestion = editgridCompoenent.label;\r\n let innerAnswer = {};\r\n for (let i = 0; i < submission.data[question].length; i++) {\r\n innerAnswer = {};\r\n for (key in submission.data[question][i]) {\r\n const innerQComponent = FormioUtils.searchComponents(\r\n _builderHidden.instance.schema.components,\r\n { key: key }\r\n );\r\n const innerQuestion = innerQComponent ? innerQComponent[0] : \"\";\r\n if (innerQuestion) {\r\n if (\r\n innerQuestion.type === \"file\" &&\r\n submission.data[question][i][key] != null &&\r\n submission.data[question][i][key].length > 0\r\n ) {\r\n addFileUploadData(\r\n result,\r\n question,\r\n questionType,\r\n submission.data[question][i][key][0],\r\n true,\r\n innerQuestion\r\n );\r\n innerAnswer[\r\n innerQuestion.label\r\n ] = `${submission.data[question][i][key][0].name}`;\r\n } else {\r\n innerAnswer[innerQuestion.label] =\r\n submission.data[question][i][key];\r\n }\r\n }\r\n }\r\n\r\n result.push({\r\n primaryQuestion: editgridQuestion,\r\n secondaryQuestion: \"\",\r\n answer: JSON.stringify(innerAnswer),\r\n questionType: \"Multi-Data\",\r\n alias: _alias[question],\r\n key: question,\r\n });\r\n }\r\n } else if (questionType == \"datetime\") {\r\n var answer = $(\"#formio\")\r\n .find(`.formio-component-${cleanQuestion}`)\r\n .find(\".input-group\")\r\n .find(\".input\")\r\n .val();\r\n result.push({\r\n primaryQuestion: component.label,\r\n secondaryQuestion: \"\",\r\n answer: answer,\r\n questionType: questionType,\r\n alias: _alias[question],\r\n key: question,\r\n });\r\n } else if (\r\n questionType.toLowerCase() == \"phonenumber\" ||\r\n questionType.toLowerCase() == \"email\"\r\n ) {\r\n result.push({\r\n primaryQuestion: component.label,\r\n secondaryQuestion: \"\",\r\n answer: submission.data[question],\r\n questionType: questionType,\r\n alias: _alias[question],\r\n key: question,\r\n });\r\n\r\n const formSubmissionMessage = _formSubmissionMessageDetails.filter(\r\n (item) => item.key === question\r\n );\r\n if (formSubmissionMessage && formSubmissionMessage.length > 0) {\r\n const message =\r\n _defaultLanguage.tag === \"ar\"\r\n ? formSubmissionMessage[0].messageAr\r\n : formSubmissionMessage[0].messageEn;\r\n\r\n setFormSubmissionMessageAnswers(\r\n question,\r\n submission.data[question],\r\n questionType.toLowerCase(),\r\n message\r\n );\r\n }\r\n } else if (questionType == \"custom\") {\r\n } else {\r\n result.push({\r\n primaryQuestion: component.label,\r\n secondaryQuestion: \"\",\r\n answer: submission.data[question],\r\n questionType: questionType,\r\n alias: _alias[question],\r\n key: question,\r\n });\r\n }\r\n }\r\n }\r\n\r\n for (let j = 0; j < _linkedQuestions.length; j++) {\r\n if (!_linkedQuestions[j].isMultidata) {\r\n const questionType =\r\n _linkedQuestions[j].qType == \"Dropdown\"\r\n ? \"select\"\r\n : _linkedQuestions[j].qType == \"Multiple Choice\"\r\n ? \"selectboxes\"\r\n : \"radio\";\r\n\r\n result.push({\r\n primaryQuestion: _linkedQuestions[j].label,\r\n secondaryQuestion: \"\",\r\n answer: getLinkedQuestionAnswer(j),\r\n questionType: questionType,\r\n alias: _alias[_linkedQuestions[j].key],\r\n key: _linkedQuestions[j].key,\r\n });\r\n }\r\n }\r\n\r\n for (j = 0; j < _linkedData.length; j++) {\r\n const key = _linkedData[j].key;\r\n const linkedQ = result.filter((item) => item.key == key);\r\n if (linkedQ.length > 0) {\r\n let answer = linkedQ[0].answer;\r\n let data =\r\n _linkedData[j].type === \"survey\"\r\n ? _linkedSurveyData.filter((x) => x.key === key && answer === answer)\r\n : _linkedData[j].data.filter((item) => item[key] == answer);\r\n\r\n if (data && data.length > 0) {\r\n if (_linkedData[j].type === \"survey\") {\r\n data = data[0].data;\r\n\r\n for (let k = 0; k < data.length; k++) {\r\n const component = FormioUtils.findComponents(\r\n _builderHidden.instance.schema.components,\r\n { label: data[k].primaryQuestion }\r\n )[0];\r\n if (\r\n component &&\r\n $(`#formio .formio-component-${cleanKey(component.key)}`)\r\n ?.attr(\"class\")\r\n ?.split(\" \")\r\n .indexOf(\"formio-hidden\") !== -1\r\n ) {\r\n if (\r\n result.filter(\r\n (x) =>\r\n x.primaryQuestion == component.label &&\r\n x.answer != undefined &&\r\n x.answer != null &&\r\n x.answer != \"\"\r\n ).length == 0\r\n ) {\r\n result.push({\r\n primaryQuestion: component.label,\r\n secondaryQuestion: \"\",\r\n answer: data[k].answer,\r\n questionType:\r\n component.type == \"editgrid\"\r\n ? \"Multi-Data\"\r\n : component.type,\r\n alias: data[k].alias,\r\n key: component.key,\r\n });\r\n }\r\n }\r\n }\r\n } else {\r\n for (item in data[0]) {\r\n if (\r\n $(`#formio .formio-component-${cleanKey(item)}`)\r\n .attr(\"class\")\r\n ?.split(\" \")\r\n .indexOf(\"formio-hidden\") != -1\r\n ) {\r\n const component = FormioUtils.getComponent(\r\n _builderHidden.instance.schema.components,\r\n item\r\n );\r\n if (\r\n result.filter(\r\n (x) =>\r\n x.primaryQuestion == component.label &&\r\n x.answer != undefined &&\r\n x.answer != null &&\r\n x.answer != \"\"\r\n ).length == 0\r\n ) {\r\n result.push({\r\n primaryQuestion: component.label,\r\n secondaryQuestion: \"\",\r\n answer: data[0][item],\r\n questionType:\r\n component.type == \"editgrid\"\r\n ? \"Multi-Data\"\r\n : component.type,\r\n alias: _alias[item],\r\n key: component.key,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction addFileUploadData(\r\n result,\r\n question,\r\n questionType,\r\n submission,\r\n isPartOfMultiData,\r\n innerQ\r\n) {\r\n var fileClasses = $(`#formio .formio-component-${cleanKey(question)}`)\r\n ?.attr(\"class\")\r\n ?.split(\" \");\r\n if (!fileClasses || fileClasses.length == 0) {\r\n return;\r\n }\r\n var isFileValidType =\r\n fileClasses.filter((cls) => cls == \"file\").length > 0 ? true : false;\r\n if (isPartOfMultiData) {\r\n fileClasses = innerQ.customClass.split(\" \");\r\n isFileValidType =\r\n fileClasses.filter((cls) => cls == \"file\").length > 0 ? true : false;\r\n }\r\n if (isFileValidType) {\r\n const component = FormioUtils.getComponent(\r\n _builderHidden.instance.schema.components,\r\n question\r\n );\r\n if (isPartOfMultiData) {\r\n if (fileClasses.includes(\"voice\")) {\r\n const recordingIndex = _recordingData.findIndex(\r\n (x) => x.key === innerQ.key\r\n );\r\n if (recordingIndex != -1) {\r\n _fileUploadData.push({\r\n primaryQuestion: component.label,\r\n name: _recordingData[recordingIndex].name,\r\n size: (_recordingData[recordingIndex].data.length * 6) / 8,\r\n url: _recordingData[recordingIndex].data,\r\n key: question,\r\n alias: _alias[innerQ.key],\r\n });\r\n }\r\n } else {\r\n _fileUploadData.push({\r\n primaryQuestion: component.label,\r\n name: submission.name,\r\n size: submission.size,\r\n url: submission.url,\r\n key: question,\r\n alias: _alias[innerQ.key],\r\n });\r\n }\r\n } else {\r\n if (\r\n submission.data[question].length > 0 ||\r\n fileClasses.includes(\"voice\")\r\n ) {\r\n result.push({\r\n primaryQuestion: component.label,\r\n secondaryQuestion: \"\",\r\n answer: \"\",\r\n questionType: questionType,\r\n alias: _alias[question],\r\n key: question,\r\n });\r\n }\r\n\r\n if (\r\n submission.data[question].length > 0 &&\r\n !fileClasses.includes(\"voice\")\r\n ) {\r\n _fileUploadData.push({\r\n primaryQuestion: component.label,\r\n name: submission.data[question][0].originalName,\r\n size: submission.data[question][0].size,\r\n url: submission.data[question][0].url,\r\n key: question,\r\n alias: _alias[question],\r\n });\r\n } else {\r\n const recordingIndex = _recordingData.findIndex(\r\n (x) => x.key === question\r\n );\r\n if (recordingIndex != -1) {\r\n _fileUploadData.push({\r\n primaryQuestion: component.label,\r\n name: _recordingData[recordingIndex].name,\r\n size: (_recordingData[recordingIndex].data.length * 6) / 8,\r\n url: _recordingData[recordingIndex].data,\r\n key: question,\r\n alias: _alias[question],\r\n });\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction setFormSubmissionMessageAnswers(key, value, type, message) {\r\n _formSubmissionMessageAnswers.push({\r\n key: key,\r\n value: value,\r\n type: type,\r\n lang: _defaultLanguage.label.toLocaleLowerCase(),\r\n message: message,\r\n });\r\n}\r\n\r\nfunction getLinkedQuestionAnswer(index) {\r\n let ans = \"\";\r\n const linkedQuestionKey = cleanKey(_linkedQuestions[index].key);\r\n if (_linkedQuestions[index].qType == \"Dropdown\") {\r\n ans = $(`#${linkedQuestionKey}`).val();\r\n } else if (_linkedQuestions[index].qType == \"Single Choice\") {\r\n ans = $(`[name=\"${linkedQuestionKey}\"]:checked`).val();\r\n } else if (_linkedQuestions[index].qType == \"Multiple Choice\") {\r\n $(`[name=\"${linkedQuestionKey}\"]:checked`).each(function () {\r\n ans += $(this).val() + \";\";\r\n });\r\n }\r\n\r\n if (ans) {\r\n return ans;\r\n } else {\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction setLinkedSurveyDataFields(key, e) {\r\n const linkedSurveyDataCurrent = _linkedSurveyData.filter(\r\n (x) => x.key === key\r\n );\r\n const surveyIds = _linkedData\r\n .filter((x) => x.key === key && x.type === \"survey\")\r\n .map((x) => x.data);\r\n const primaryQuestion = _globalForm.getComponent(key).label;\r\n const answer = _globalForm.getComponent(key).getValue();\r\n\r\n if (!answer) {\r\n return;\r\n }\r\n\r\n if (linkedSurveyDataCurrent && linkedSurveyDataCurrent.length > 0) {\r\n if (\r\n linkedSurveyDataCurrent[0].primaryQuestion === primaryQuestion &&\r\n linkedSurveyDataCurrent[0].answer === answer\r\n ) {\r\n setLinkedSurveyDataAnswers(\r\n linkedSurveyDataCurrent[0].data,\r\n primaryQuestion\r\n );\r\n return;\r\n }\r\n\r\n let linkedDataIndex = _linkedSurveyData.findIndex(\r\n (item) => item.key === key\r\n );\r\n if (linkedDataIndex != -1) {\r\n _linkedSurveyData.splice(linkedDataIndex, 1);\r\n }\r\n }\r\n\r\n const data = {\r\n surveyId: surveyIds[0],\r\n question: primaryQuestion,\r\n answer: answer,\r\n };\r\n\r\n if (surveyIds && surveyIds.length > 0) {\r\n showLoader();\r\n\r\n setTimeout(() => {\r\n $.ajax({\r\n url: `${__appUrl}/api/submissions/linked-survey-submission-data`,\r\n async: false,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n data: JSON.stringify(data),\r\n success: function (response) {\r\n _linkedSurveyData.push({\r\n key,\r\n primaryQuestion,\r\n answer,\r\n data: response,\r\n });\r\n setLinkedSurveyDataAnswers(response, primaryQuestion);\r\n },\r\n });\r\n\r\n hideLoader();\r\n }, 200);\r\n }\r\n}\r\n\r\nfunction generateLinkedQuestionHtml() {\r\n for (i = 0; i < _linkedQuestions.length; i++) {\r\n const linkedQuestionKey = cleanKey(_linkedQuestions[i].key);\r\n try {\r\n let requiredIndicator = _linkedQuestions[i].isRequired\r\n ? '*'\r\n : \"\";\r\n let linkedOutputHtml = ` ${requiredIndicator}`;\r\n let rClass = _linkedQuestions[i].isRequired ? \"required\" : \"\";\r\n if (_linkedQuestions[i].qType == \"Dropdown\") {\r\n linkedOutputHtml += `
`;\r\n linkedOutputHtml += `
`;\r\n } else if (_linkedQuestions[i].qType == \"Single Choice\") {\r\n linkedOutputHtml += `
`;\r\n for (key in _linkedQuestions[i].value) {\r\n for (j = 0; j < _linkedQuestions[i].value[key].length; j++) {\r\n linkedOutputHtml += `
${_linkedQuestions[i].value[key][j]}
`;\r\n }\r\n }\r\n linkedOutputHtml += `
`;\r\n } else if (_linkedQuestions[i].qType == \"Multiple Choice\") {\r\n linkedOutputHtml += `
`;\r\n for (key in _linkedQuestions[i].value) {\r\n for (j = 0; j < _linkedQuestions[i].value[key].length; j++) {\r\n linkedOutputHtml += `
${_linkedQuestions[i].value[key][j]}
`;\r\n }\r\n }\r\n linkedOutputHtml += `
`;\r\n }\r\n\r\n if (`.formio-component-${linkedQuestionKey}:visible`) {\r\n $(`#formio .formio-component-${linkedQuestionKey}`).html(\r\n linkedOutputHtml\r\n );\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n $(`#formio .formio-component-${linkedQuestionKey}`).addClass(rClass);\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n}\r\n\r\n// Depricated\r\nfunction hideUnhideLinkedQuestions(key, val, e) {\r\n if (key == \"\") {\r\n return \"\";\r\n } else {\r\n for (let i = 0; i < _linkedQuestions.length; i++) {\r\n try {\r\n if (_linkedQuestions[i].qLinked == key) {\r\n // TODO: check if this is required\r\n const qType = FormioUtils.getComponent(\r\n _builderHidden.instance.schema.components,\r\n key\r\n ).type;\r\n const qLinkedType = _linkedQuestions[i].qType;\r\n if (qType == \"custom\") {\r\n let vals = [];\r\n if (\r\n _linkedQuestions.filter((x) => x.key == key)[0].qType ==\r\n \"Multiple Choice\"\r\n ) {\r\n $(\r\n `#formio .formio-component-${key} .form-radio input:checked`\r\n ).each(function () {\r\n vals.push($(this).val());\r\n });\r\n } else {\r\n vals = $(e).val();\r\n }\r\n\r\n if (val == null && e == null) {\r\n $(\"#formio .formio-component-\" + _linkedQuestions[i].key).hide();\r\n } else {\r\n $(\"#formio .formio-component-\" + _linkedQuestions[i].key).show();\r\n if (\r\n qLinkedType == \"Single Choice\" ||\r\n qLinkedType == \"Multiple Choice\"\r\n ) {\r\n $(`#formio .formio-component-${_linkedQuestions[i].key} input`)\r\n .parent()\r\n .hide();\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} input`\r\n ).prop(\"checked\", false);\r\n if (Array.isArray(vals)) {\r\n const arr = vals;\r\n let validCount = 0;\r\n for (j = 0; j < arr.length; j++) {\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} input[data-link=\"${arr[j]}\"]`\r\n )\r\n .parent()\r\n .show();\r\n if (\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} input[data-link=\"${arr[j]}\"]`\r\n ).parent().length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(\r\n \"#formio .formio-component-\" + _linkedQuestions[i].key\r\n ).hide();\r\n }\r\n } else {\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} input[data-link=\"${vals}\"]`\r\n )\r\n .parent()\r\n .show();\r\n if (\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} input[data-link=\"${vals}\"]`\r\n ).parent().length == 0\r\n ) {\r\n $(\r\n \"#formio .formio-component-\" + _linkedQuestions[i].key\r\n ).hide();\r\n }\r\n }\r\n\r\n if (!vals || vals.length == 0) {\r\n $(\r\n \"#formio .formio-component-\" + _linkedQuestions[i].key\r\n ).hide();\r\n }\r\n } else if (qLinkedType == \"Dropdown\") {\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option`\r\n ).hide();\r\n\r\n if (Array.isArray(vals)) {\r\n const arr = vals;\r\n let validCount = 0;\r\n for (j = 0; j < arr.length; j++) {\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[data-link=\"${arr[j]}\"]`\r\n ).show();\r\n if (\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[data-link=\"${arr[j]}\"]`\r\n ).length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(\r\n \"#formio .formio-component-\" + _linkedQuestions[i].key\r\n ).hide();\r\n }\r\n } else if ({}.constructor == val.constructor) {\r\n let validCount = 0;\r\n for (key1 in val) {\r\n if (val[key1]) {\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[data-link=\"${key1}\"]`\r\n ).show();\r\n if (\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[data-link=\"${key1}\"]`\r\n ).length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(\r\n \"#formio .formio-component-\" + _linkedQuestions[i].key\r\n ).hide();\r\n }\r\n } else {\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[data-link=\"${vals}\"]`\r\n ).show();\r\n if (\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[data-link=\"${vals}\"]`\r\n ).length == 0\r\n ) {\r\n $(\r\n \"#formio .formio-component-\" + _linkedQuestions[i].key\r\n ).hide();\r\n }\r\n }\r\n\r\n if (!vals || vals.length == 0) {\r\n $(\r\n \"#formio .formio-component-\" + _linkedQuestions[i].key\r\n ).hide();\r\n }\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[value='']`\r\n ).show();\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select`\r\n ).val(\"\");\r\n }\r\n }\r\n\r\n //hideUnhideLinkedQuestions(_linkedQuestions[i].key, null, null);\r\n hideUnhideLinkedQuestionsSimple(_linkedQuestions[i].key);\r\n } else {\r\n if (val == null && e == null) {\r\n $(\"#formio .formio-component-\" + _linkedQuestions[i].key).hide();\r\n } else {\r\n $(\"#formio .formio-component-\" + _linkedQuestions[i].key).show();\r\n if (\r\n qLinkedType == \"Single Choice\" ||\r\n qLinkedType == \"Multiple Choice\"\r\n ) {\r\n $(`#formio .formio-component-${_linkedQuestions[i].key} input`)\r\n .parent()\r\n .hide();\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} input`\r\n ).prop(\"checked\", false);\r\n\r\n if (Array.isArray(val)) {\r\n const arr = val;\r\n let validCount = 0;\r\n for (j = 0; j < arr.length; j++) {\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} input[data-link=\"${arr[j]}\"]`\r\n )\r\n .parent()\r\n .show();\r\n if (\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} input[data-link=\"${arr[j]}\"]`\r\n ).parent().length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(\r\n \"#formio .formio-component-\" + _linkedQuestions[i].key\r\n ).hide();\r\n }\r\n } else if ({}.constructor == val.constructor) {\r\n let validCount = 0;\r\n for (key1 in val) {\r\n if (val[key1]) {\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} input[data-link=\"${key1}\"]`\r\n )\r\n .parent()\r\n .show();\r\n if (\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} input[data-link=\"${key1}\"]`\r\n ).parent().length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(\r\n \"#formio .formio-component-\" + _linkedQuestions[i].key\r\n ).hide();\r\n }\r\n } else if (val) {\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} input[data-link=\"${val}\"]`\r\n )\r\n .parent()\r\n .show();\r\n if (\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} input[data-link=\"${val}\"]`\r\n ).parent().length == 0\r\n ) {\r\n $(\r\n \"#formio .formio-component-\" + _linkedQuestions[i].key\r\n ).hide();\r\n }\r\n }\r\n } else if (qLinkedType == \"Dropdown\") {\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option`\r\n ).hide();\r\n\r\n if (Array.isArray(val)) {\r\n const arr = val;\r\n let validCount = 0;\r\n for (j = 0; j < arr.length; j++) {\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[data-link=\"${arr[j]}\"]`\r\n ).show();\r\n if (\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[data-link=\"${arr[j]}\"]`\r\n ).length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(\r\n \"#formio .formio-component-\" + _linkedQuestions[i].key\r\n ).hide();\r\n }\r\n } else if ({}.constructor == val.constructor) {\r\n let validCount = 0;\r\n for (key1 in val) {\r\n if (val[key1]) {\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[data-link=\"${key1}\"]`\r\n ).show();\r\n if (\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[data-link=\"${key1}\"]`\r\n ).length > 0\r\n ) {\r\n validCount++;\r\n }\r\n }\r\n }\r\n if (validCount == 0) {\r\n $(\r\n \"#formio .formio-component-\" + _linkedQuestions[i].key\r\n ).hide();\r\n }\r\n } else {\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[data-link=\"${val}\"]`\r\n ).show();\r\n if (\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[data-link=\"${val}\"]`\r\n ).length == 0\r\n ) {\r\n $(\r\n \"#formio .formio-component-\" + _linkedQuestions[i].key\r\n ).hide();\r\n }\r\n }\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select option[value='']`\r\n ).show();\r\n $(\r\n `#formio .formio-component-${_linkedQuestions[i].key} select`\r\n ).val(\"\");\r\n }\r\n }\r\n\r\n hideUnhideLinkedQuestions(_linkedQuestions[i].key, null, null);\r\n }\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n // TODO: check if this is required\r\n if (\r\n e &&\r\n $(e).val() &&\r\n FormioUtils.getComponent(_builderHidden.instance.schema.components, key)\r\n .type == \"custom\"\r\n ) {\r\n _globalForm.getComponent(key).setValue($(e).val());\r\n }\r\n setNextBtn();\r\n\r\n return \"\";\r\n }\r\n}\r\n\r\nfunction hideUnhideLinkedQuestionsSimple(key) {\r\n if (key === \"\" || key === null) {\r\n return \"\";\r\n }\r\n\r\n let linkedQuestionsToShow = _linkedQuestions.filter(\r\n (x) => x.qLinked === key && !x.multidataQuestion\r\n );\r\n\r\n if (linkedQuestionsToShow.length == 0) {\r\n setNextBtn();\r\n return \"\";\r\n }\r\n\r\n hideLinkedQuestionsOnChange(linkedQuestionsToShow);\r\n\r\n const currentQuestionType = FormioUtils.getComponent(\r\n _builderHidden.instance.schema.components,\r\n key\r\n ).type;\r\n\r\n const currentLinkedQuestion =\r\n currentQuestionType === \"custom\"\r\n ? _linkedQuestions.filter((x) => x.key === key)[0]\r\n : null;\r\n\r\n const currentQuestionAnswers = currentLinkedQuestion\r\n ? currentLinkedQuestion.qType == \"Dropdown\"\r\n ? $(`[name=\"${cleanKey(currentLinkedQuestion.key)}\"]`).val()\r\n : $(`[name=\"${cleanKey(currentLinkedQuestion.key)}\"]:checked`).val()\r\n : _globalForm.getComponent(key).getValue();\r\n\r\n for (let i = 0; i < linkedQuestionsToShow.length; i++) {\r\n let availableLinkedAnswers;\r\n const linkedQuestionToShowKey = cleanKey(linkedQuestionsToShow[i].key);\r\n if (Array.isArray(currentQuestionAnswers)) {\r\n currentQuestionAnswers.forEach(function (x) {\r\n availableLinkedAnswers[x] = linkedQuestionsToShow[i].value[x];\r\n });\r\n } else {\r\n availableLinkedAnswers =\r\n linkedQuestionsToShow[i].value[currentQuestionAnswers];\r\n }\r\n\r\n if (!availableLinkedAnswers) {\r\n continue;\r\n }\r\n\r\n if (linkedQuestionsToShow[i].qType == \"Dropdown\") {\r\n $(\r\n `#formio .formio-component-${linkedQuestionToShowKey} select option`\r\n ).hide();\r\n\r\n if (!Array.isArray(currentQuestionAnswers)) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionToShowKey} select option[data-link=\"${currentQuestionAnswers}\"]`\r\n ).show();\r\n } else {\r\n currentQuestionAnswers.forEach(function (x) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionToShowKey} select option[data-link=\"${x}\"]`\r\n ).show();\r\n });\r\n }\r\n } else {\r\n $(\r\n `#formio .formio-component-${linkedQuestionToShowKey} .form-radio.radio div`\r\n ).hide();\r\n if (!Array.isArray(currentQuestionAnswers)) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionToShowKey} .form-radio.radio div input[data-link=\"${cleanKey(\r\n currentQuestionAnswers\r\n )}\"]`\r\n )\r\n .parent()\r\n .show();\r\n } else {\r\n currentQuestionAnswers.forEach(function (x) {\r\n $(\r\n `#formio .formio-component-${linkedQuestionToShowKey} .form-radio.radio div input[data-link=\"${x}\"]`\r\n )\r\n .parent()\r\n .show();\r\n });\r\n }\r\n }\r\n $(`#formio .formio-component-${linkedQuestionToShowKey}`).show();\r\n }\r\n\r\n setNextBtn();\r\n}\r\n\r\nfunction hideLinkedQuestionsOnChange(linkedQuestionsToShow) {\r\n if (linkedQuestionsToShow == null || linkedQuestionsToShow.length == 0) {\r\n return;\r\n }\r\n\r\n for (i = 0; i < linkedQuestionsToShow.length; i++) {\r\n const linkedQuestionKey = cleanKey(linkedQuestionsToShow[i].key);\r\n $(`#formio .formio-component-${linkedQuestionKey}`).hide();\r\n if (linkedQuestionsToShow[i].qType == \"Dropdown\") {\r\n $(`#formio .formio-component-${linkedQuestionKey} select`).val(\"\");\r\n } else {\r\n $(\r\n `#formio .formio-component-${linkedQuestionKey} .form-radio.radio div input`\r\n ).each(function () {\r\n $(this).prop(\"checked\", false);\r\n });\r\n }\r\n const childLinkedQuestions = _linkedQuestions.filter(\r\n (x) => x.qLinked === linkedQuestionsToShow[i].key\r\n );\r\n\r\n hideLinkedQuestionsOnChange(childLinkedQuestions);\r\n }\r\n}\r\n\r\nfunction editGridBtnClick(e) {\r\n // TODO: check if key can be passed\r\n setCustomCss();\r\n\r\n let ref = $(e).attr(\"ref\");\r\n\r\n if (\r\n $('#formio [ref=\"' + ref + '\"]')\r\n .parent()\r\n .find(\".formio-component-custom\").length > 0\r\n ) {\r\n generateLinkedQuestionHtmlEditGrid(\r\n ref.replace(\"-addRow\", \"\").replace(\"editgrid-\", \"\")\r\n );\r\n setCustomCssForLinkedQuestion();\r\n\r\n $('#formio [ref=\"' + ref + '\"]')\r\n .parent()\r\n .find(`[ref=\"${ref.replace(\"-addRow\", \"\")}-saveRow\"]`)\r\n .addClass(\"multidataLinkedSave\");\r\n }\r\n\r\n //Save multidata linked questions\r\n if ($(e).hasClass(\"multidataLinkedSave\")) {\r\n ref = $(e).attr(\"ref\").replace(\"-saveRow\", \"\").replace(\"editgrid-\", \"\");\r\n let rowNum = -1;\r\n let innerComponents = _globalForm\r\n .getComponent(ref)\r\n .component.components.map((x) => x.key);\r\n if (_multidataLinkedDetails[ref]) {\r\n let multiDataObj = {};\r\n let multidataLinkedLatest = _multidataLinkedDetails[ref].pop();\r\n for (i = 0; i < innerComponents.length; i++) {\r\n multiDataObj[innerComponents[i]] = _multidataLinkedCurrent[\r\n innerComponents[i]\r\n ]\r\n ? _multidataLinkedCurrent[innerComponents[i]]\r\n : multidataLinkedLatest[innerComponents[i]]\r\n ? multidataLinkedLatest[innerComponents[i]]\r\n : \"\";\r\n }\r\n\r\n _multidataLinkedDetails[ref].push(multiDataObj);\r\n } else {\r\n _multidataLinkedDetails[ref] = [];\r\n let multiDataObj = {};\r\n let multidataLinkedLatest = _globalForm.getComponent(ref).getValue()[0];\r\n for (i = 0; i < innerComponents.length; i++) {\r\n multiDataObj[innerComponents[i]] = _multidataLinkedCurrent[\r\n innerComponents[i]\r\n ]\r\n ? _multidataLinkedCurrent[innerComponents[i]]\r\n : multidataLinkedLatest[innerComponents[i]]\r\n ? multidataLinkedLatest[innerComponents[i]]\r\n : \"\";\r\n }\r\n _multidataLinkedDetails[ref].push(multiDataObj);\r\n }\r\n _multidataLinkedCurrent = {};\r\n _globalForm.getComponent(ref).setValue(_multidataLinkedDetails[ref]);\r\n _globalForm.getComponent(ref).redraw();\r\n $(`[ref=\"editgrid-${ref}-row\"]:nth-of-type(${rowNum + 1}`)\r\n .find(\".removeRow\")\r\n .data(\"rownum\", rowNum);\r\n $(`[ref=\"editgrid-${ref}-row\"]:nth-of-type(${rowNum + 1}`)\r\n .find(\".removeRow\")\r\n .data(\"ref\", ref);\r\n $(`[ref=\"editgrid-${ref}-row\"]:nth-of-type(${rowNum + 1}`)\r\n .find(\".removeRow\")\r\n .addClass(\"multidataLinkedRemove\");\r\n $(`[ref=\"editgrid-${ref}-row\"] .editRow`).remove();\r\n } else if ($(e).hasClass(\"multidataLinkedRemove\")) {\r\n ref = $(e).data(\"ref\");\r\n let rowNum = $(e).data(\"rownum\");\r\n _multidataLinkedDetails[ref].splice(rowNum, 1);\r\n _globalForm.getComponent(ref).setValue(_multidataLinkedDetails[ref]);\r\n _globalForm.getComponent(ref).redraw();\r\n }\r\n $(\".formio-component-editgrid button\").each(function () {\r\n $(this).attr(\"onclick\", \"editGridBtnClick(this)\");\r\n });\r\n shuffleRadio();\r\n shuffleMultiChoice();\r\n\r\n // Edit grid language change\r\n editGridLanguageChange(_defaultLanguage.tag);\r\n}\r\n\r\nfunction updateLanguage(e) {\r\n const language = $(e).val();\r\n if (_defaultLanguage?.label !== language) {\r\n _defaultLanguage = _languageNames.filter((x) => x.label === language)[0];\r\n\r\n _userLanguage = _defaultLanguage.tag;\r\n\r\n setLanguage(_defaultLanguage.tag);\r\n editGridLanguageChange(_defaultLanguage.tag);\r\n setSurveyTitle();\r\n setSurveyImages();\r\n generateLinkedQuestionHtml();\r\n setLinkedQuestionLanguage();\r\n setNavigation();\r\n setCustomCssForLinkedQuestion();\r\n showHideLanguageSpecificDetails();\r\n setCustomCss();\r\n languageChangeTranslation();\r\n\r\n $(\"body\").prop(\"lang\", _defaultLanguage.tag);\r\n }\r\n}\r\n\r\nfunction addRecoderForm(key) {\r\n $(\"body\").append(`\r\n
\r\n
\r\n
\r\n
\r\n

\r\n ${_translationData[_defaultLanguage.tag].recordAudio}\r\n

\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n `);\r\n\r\n setupRecorderVariables(key);\r\n\r\n //translateStatic(_currentLang, _directionContainer[_currentLang]);\r\n\r\n $(`#${key}-recoder-modal`).modal(\"show\");\r\n\r\n $(\"#recoder-modal .visualizer\").css({ width: \"100%\" });\r\n}\r\n\r\nfunction generateOTP(e, key) {\r\n let phoneNumber = $(e).parent().find(\"input\").val();\r\n key = key.trim();\r\n let time = 180;\r\n\r\n if (phoneNumber) {\r\n showLoader();\r\n\r\n setTimeout(() => {\r\n const data = {\r\n surveyId: _surveyId,\r\n phoneNumber: phoneNumber,\r\n language: _defaultLanguage.label,\r\n };\r\n\r\n $.ajax({\r\n url: `${__appUrl}/api/notifications/send-otp`,\r\n async: false,\r\n type: \"POST\",\r\n dataType: \"text\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n data: JSON.stringify(data),\r\n success: function (response) {\r\n $(e).hide();\r\n $(`.${key}-otp-error`).text(\"\");\r\n // $(`.${key}-label`).removeClass(\"text-danger\");\r\n $(e).parent().append(`\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n `);\r\n\r\n let otptimer = setInterval(function () {\r\n if (time > 0) {\r\n time--;\r\n $(`.${key}-otp-countdown-time`).text(time);\r\n } else {\r\n clearInterval(otptimer);\r\n $(`.${key}-btn`).show();\r\n $(`.${key}-otp-submission`).remove();\r\n // $(`.${key}-label`).addClass(\"text-danger\");\r\n $(`.${key}-otp-error`).text(\r\n _translationData[_defaultLanguage.tag].otpExpired\r\n );\r\n }\r\n }, 1000);\r\n },\r\n error: function (err) {\r\n const error = getError(err);\r\n showError(error.messages);\r\n },\r\n });\r\n\r\n hideLoader();\r\n }, 100);\r\n } else {\r\n showError(_translationData[_defaultLanguage.tag].otpMobileNum);\r\n }\r\n}\r\n\r\nfunction submitOTP(e, key) {\r\n const cleanedKey = cleanKey(key);\r\n let otp = $(`.${cleanedKey}-otp`).val();\r\n if (isNaN(otp)) {\r\n $(`.${cleanedKey}-otp-error`).addClass(\"text-danger\");\r\n $(`.${cleanedKey}-otp-error`).text(\r\n _translationData[_defaultLanguage.tag].otpIncorrect\r\n );\r\n return;\r\n }\r\n if (otp) {\r\n showLoader();\r\n\r\n setTimeout(() => {\r\n $.ajax({\r\n url: `${__appUrl}/api/notifications/verify-otp/${otp}`,\r\n async: false,\r\n type: \"GET\",\r\n dataType: \"text\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n success: function (response) {\r\n if (response.includes(\"Success\")) {\r\n $('#formio [name=\"data[submit]\"]:visible').removeAttr(\"disabled\");\r\n\r\n $(`.${cleanedKey}-otp-error`).addClass(\"text-danger\");\r\n $(`.${cleanedKey}-otp-error`).addClass(\"text-success\");\r\n $(`.${cleanedKey}-otp-submission`).remove();\r\n $(\r\n `#formio .formio-component-${cleanedKey} [name=\"data[${cleanedKey}]\"]`\r\n ).prop(\"disabled\", true);\r\n $(`.${cleanedKey}-otp-error`).text(\r\n _translationData[_defaultLanguage.tag].otpVerified\r\n );\r\n setNextBtn();\r\n } else if (response.includes(\"Incorrect\")) {\r\n $(`.${cleanedKey}-otp-error`).addClass(\"text-danger\");\r\n $(`.${cleanedKey}-otp-error`).text(\r\n _translationData[_defaultLanguage.tag].otpIncorrect\r\n );\r\n // $(e)\r\n // .parent()\r\n // .find(\".error-message-otp\")\r\n // .text(_translationData[_defaultLanguage.tag].otpIncorrect);\r\n } else if (response.includes(\"Expired\")) {\r\n $(`.${cleanedKey}-btn`).show();\r\n $(`.${cleanedKey}-otp-submission`).remove();\r\n $(`.${cleanedKey}-otp-error`).addClass(\"text-danger\");\r\n $(`.${cleanedKey}-otp-error`).text(\r\n _translationData[_defaultLanguage.tag].otpExpired\r\n );\r\n }\r\n },\r\n error: function (err) {\r\n const error = getError(err);\r\n showError(error.messages);\r\n },\r\n });\r\n\r\n hideLoader();\r\n }, 100);\r\n } else {\r\n $(e)\r\n .parent()\r\n .find(\".error-message-otp\")\r\n .text(_translationData[_defaultLanguage.tag].enterOtp);\r\n }\r\n}\r\n\r\nfunction navigate(e) {\r\n event.preventDefault();\r\n _globalForm.triggerChange();\r\n let isValid = true;\r\n let isValidRanking = true;\r\n let isValidCategoryLimit = true;\r\n if ($(e).prop(\"id\") == \"nextBtn\") {\r\n isValid = validateUniquenessNext() && validateUniqueSubmission();\r\n if (!isValid) {\r\n const message = _duplicateSubmissionMessage[_defaultLanguage.tag]\r\n ? _duplicateSubmissionMessage[_defaultLanguage.tag]\r\n : _translationData[_defaultLanguage.tag].duplicateSubmission;\r\n showError(message);\r\n return;\r\n }\r\n isValidCategoryLimit = validateCategoryLimit();\r\n if (!isValidCategoryLimit) {\r\n showError(_categoryLimitErrors.join(\" ,\"));\r\n return;\r\n }\r\n isValidRanking = validateRankingOnPageChange();\r\n if (!isValidRanking) {\r\n return;\r\n }\r\n }\r\n\r\n var nav = $(e).data(\"nav\");\r\n var preNav = \"\" + (parseInt($(e).data(\"nav\")) - 1);\r\n var postNav = \"\" + (parseInt($(e).data(\"nav\")) + 1);\r\n\r\n if ($(e).prop(\"id\") == \"nextBtn\") {\r\n $(\"#formio .nav-item\").each(function () {\r\n if ($(this).data(\"customnav\") == nav) {\r\n $(this).addClass(\"active\");\r\n $(this).find(\"a\").addClass(\"active\");\r\n $(this).show();\r\n } else if ($(this).data(\"customnav\") == preNav) {\r\n $(this).removeClass(\"active\");\r\n $(this).find(\"a\").removeClass(\"active\");\r\n $(this).hide();\r\n }\r\n });\r\n $(\"#formio .tab-pane\").each(function () {\r\n if ($(this).data(\"customnav\") == nav) {\r\n $(this).addClass(\"active\");\r\n $(this).show();\r\n } else if ($(this).data(\"customnav\") == preNav) {\r\n $(this).removeClass(\"active\");\r\n $(this).hide();\r\n }\r\n });\r\n\r\n $(e).data(\"nav\", postNav);\r\n $(\"#prevBtn\").data(\"nav\", nav);\r\n\r\n if ($(\"#formio .nav-item\").length == postNav) {\r\n $(e).removeClass(\"btn-info\");\r\n $(e).addClass(\"btn-secondary\");\r\n $(e).attr(\"disabled\", \"disabled\");\r\n }\r\n if (preNav == 0) {\r\n $(\"#prevBtn\").removeClass(\"btn-secondary\");\r\n $(\"#prevBtn\").addClass(\"btn-info\");\r\n $(\"#prevBtn\").removeAttr(\"disabled\");\r\n }\r\n setNextBtn();\r\n enableOTP();\r\n\r\n if (\r\n $(\r\n \"#formio .tab-pane.active .formio-component:visible:not(.formio-hidden)\"\r\n ).length == 0\r\n ) {\r\n $(\"#nextBtn\").click();\r\n }\r\n\r\n _currentPage++;\r\n\r\n document.body.scrollTop = 0; // For Safari\r\n document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera\r\n } else if ($(e).prop(\"id\") == \"prevBtn\") {\r\n $(\"#formio .nav-item\").each(function () {\r\n if ($(this).data(\"customnav\") == preNav) {\r\n $(this).addClass(\"active\");\r\n $(this).find(\"a\").addClass(\"active\");\r\n $(this).show();\r\n } else if ($(this).data(\"customnav\") == nav) {\r\n $(this).removeClass(\"active\");\r\n $(this).find(\"a\").removeClass(\"active\");\r\n $(this).hide();\r\n }\r\n });\r\n $(\"#formio .tab-pane\").each(function () {\r\n if ($(this).data(\"customnav\") == preNav) {\r\n $(this).addClass(\"active\");\r\n $(this).show();\r\n } else if ($(this).data(\"customnav\") == nav) {\r\n $(this).removeClass(\"active\");\r\n $(this).hide();\r\n }\r\n });\r\n $(e).data(\"nav\", preNav);\r\n $(\"#nextBtn\").data(\"nav\", nav);\r\n\r\n if (preNav == 0) {\r\n $(e).removeClass(\"btn-info\");\r\n $(e).addClass(\"btn-secondary\");\r\n $(e).attr(\"disabled\", \"disabled\");\r\n }\r\n if ($(\"#formio .nav-item\").length == postNav) {\r\n $(\"#nextBtn\").removeClass(\"btn-secondary\");\r\n $(\"#nextBtn\").addClass(\"btn-info\");\r\n $(\"#nextBtn\").removeAttr(\"disabled\");\r\n }\r\n setNextBtn();\r\n if (\r\n $(\r\n \"#formio .tab-pane.active .formio-component:visible:not(.formio-hidden)\"\r\n ).length == 0\r\n ) {\r\n $(\"#prevBtn\").click();\r\n }\r\n\r\n _currentPage--;\r\n }\r\n\r\n updateProgressBar();\r\n setCustomCss();\r\n addEditGridButtonEvent();\r\n setSurveyImages();\r\n}\r\n\r\n$(document).on(\"keyup\", \".form-control:not('.not-survey')\", function () {\r\n const element = $(this);\r\n setTimeout(function () {\r\n const previousFormChangeCopy = _prevFormChange;\r\n actionsIfFormOnChangeFails(element);\r\n if ($(\"#formio .formio-hidden\").length != _hiddenCount) {\r\n if (previousFormChangeCopy != _prevFormChange) {\r\n showHideLanguageSpecificDetails();\r\n }\r\n\r\n setCustomCss();\r\n addLinkedPictures();\r\n _hiddenCount = $(\"#formio .formio-hidden\").length;\r\n enableOTP();\r\n $(\".formio-component-editgrid button\").each(function () {\r\n $(this).attr(\"onclick\", \"editGridBtnClick(this)\");\r\n });\r\n linkManipulation();\r\n setupAudioRecorderForHiddenWhenVisible();\r\n hideUnhideDepedentLinkedQuestions();\r\n addLinkedSurveyDataFieldBlurEvent();\r\n }\r\n setNextBtn();\r\n }, 400);\r\n});\r\n\r\n$(document).on(\"change\", \".form-control:not('.not-survey')\", function () {\r\n const element = $(this);\r\n setTimeout(function () {\r\n const previousFormChangeCopy = _prevFormChange;\r\n actionsIfFormOnChangeFails(element);\r\n if ($(\"#formio .formio-hidden\").length != _hiddenCount) {\r\n if (previousFormChangeCopy != _prevFormChange) {\r\n showHideLanguageSpecificDetails();\r\n }\r\n setCustomCss();\r\n addLinkedPictures();\r\n _hiddenCount = $(\"#formio .formio-hidden\").length;\r\n enableOTP();\r\n $(\".formio-component-editgrid button\").each(function () {\r\n $(this).attr(\"onclick\", \"editGridBtnClick(this)\");\r\n });\r\n linkManipulation();\r\n setupAudioRecorderForHiddenWhenVisible();\r\n hideUnhideDepedentLinkedQuestions();\r\n addLinkedSurveyDataFieldBlurEvent();\r\n }\r\n setNextBtn();\r\n }, 400);\r\n});\r\n\r\n$(document).on(\"click\", \".form-check-input\", function () {\r\n const element = $(this);\r\n setTimeout(function () {\r\n const previousFormChangeCopy = _prevFormChange;\r\n actionsIfFormOnChangeFails(element);\r\n if ($(\"#formio .formio-hidden\").length != _hiddenCount) {\r\n if (previousFormChangeCopy != _prevFormChange) {\r\n showHideLanguageSpecificDetails();\r\n }\r\n setCustomCss();\r\n addLinkedPictures();\r\n _hiddenCount = $(\"#formio .formio-hidden\").length;\r\n $(\".formio-component-editgrid button\").each(function () {\r\n $(this).attr(\"onclick\", \"editGridBtnClick(this)\");\r\n });\r\n linkManipulation();\r\n setupAudioRecorderForHiddenWhenVisible();\r\n hideUnhideDepedentLinkedQuestions();\r\n addLinkedSurveyDataFieldBlurEvent();\r\n }\r\n setNextBtn();\r\n }, 400);\r\n});\r\n\r\nconst actionsIfFormOnChangeFails = (e) => {\r\n if (_prevFormChange == _currentFormChange) {\r\n showHideLanguageSpecificDetails();\r\n const currentComponent = getValidComponentKeyIfFormOnChangeFails(e);\r\n if (currentComponent) {\r\n // hideUnhideLinkedQuestions(\r\n // currentComponent.key,\r\n // currentComponent.getValue()\r\n // );\r\n hideUnhideLinkedQuestionsSimple(currentComponent.key);\r\n setLinkedDataFields(currentComponent.key, currentComponent.getValue());\r\n addRanking();\r\n disableAndClear(currentComponent.key, currentComponent.getValue());\r\n }\r\n\r\n // if (currentComponent.type == \"survey\") {\r\n // setNextBtn();\r\n // }\r\n addNoneOfAbove();\r\n hideChoiceWhoseLimitHasExceeded();\r\n } else {\r\n _prevFormChange++;\r\n }\r\n};\r\n\r\nfunction getValidComponentKeyIfFormOnChangeFails(e) {\r\n const potentialKeyList = $(e)\r\n .closest('[ref=\"component\"]')\r\n ?.attr(\"class\")\r\n ?.split(\" \")\r\n ?.filter((x) => x.includes(\"formio-component-\"))\r\n ?.map((x) => x.replace(\"formio-component-\", \"\"));\r\n if (potentialKeyList) {\r\n for (i = 0; i < potentialKeyList.length; i++) {\r\n if (_globalForm.getComponent(potentialKeyList[i]) != null) {\r\n return _globalForm.getComponent(potentialKeyList[i]);\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction saveDraft() {\r\n $(`[data-translation=\"text-draft-submission\"]`).text(\r\n _translationData[_defaultLanguage.tag].draftSubmission\r\n );\r\n $(`[data-translation=\"invalid-feedback-user-name\"]`).text(\r\n _translationData[_defaultLanguage.tag].validUserName\r\n );\r\n $(`[data-translation=\"invalid-feedback-password\"]`).text(\r\n _translationData[_defaultLanguage.tag].validPassword\r\n );\r\n $(`[for=\"userName\"]`).text(_translationData[_defaultLanguage.tag].userName);\r\n $(`[for=\"password\"]`).text(_translationData[_defaultLanguage.tag].password);\r\n $(\"#saveorloaddraft\").attr(\"onclick\", \"saveDraftSubmission()\");\r\n $(\"#saveorloaddraft\").text(_translationData[_defaultLanguage.tag].save);\r\n $(\"#closedraft\").text(_translationData[_defaultLanguage.tag].close);\r\n\r\n $(\"#draft-modal\").modal(\"show\");\r\n}\r\n\r\nfunction loadDraft() {\r\n $(`[data-translation=\"text-draft-submission\"]`).text(\r\n _translationData[_defaultLanguage.tag].draftSubmission\r\n );\r\n $(`[data-translation=\"invalid-feedback-user-name\"]`).text(\r\n _translationData[_defaultLanguage.tag].validUserName\r\n );\r\n $(`[data-translation=\"invalid-feedback-password\"]`).text(\r\n _translationData[_defaultLanguage.tag].validPassword\r\n );\r\n $(`[for=\"userName\"]`).text(_translationData[_defaultLanguage.tag].userName);\r\n $(`[for=\"password\"]`).text(_translationData[_defaultLanguage.tag].password);\r\n $(\"#saveorloaddraft\").attr(\"onclick\", \"loadDraftSubmission()\");\r\n $(\"#saveorloaddraft\").text(_translationData[_defaultLanguage.tag].load);\r\n $(\"#closedraft\").text(_translationData[_defaultLanguage.tag].close);\r\n\r\n $(\"#draft-modal\").modal(\"show\");\r\n}\r\n\r\nfunction saveDraftSubmission() {\r\n let ignoreTypes = [\r\n \"tabs\",\r\n \"button\",\r\n \"file\",\r\n \"content\",\r\n \"columns\",\r\n \"panel\",\r\n \"table\",\r\n ];\r\n\r\n let data = {\r\n type: \"SurveySubmission\",\r\n details: \"\",\r\n userName: $(\"#userName\").val(),\r\n password: $(\"#password\").val(),\r\n surveyLink: window.location.href,\r\n };\r\n\r\n const isValid = validateRequired({\r\n userName: $(\"#userName\").val(),\r\n password: $(\"#password\").val(),\r\n });\r\n\r\n if (!isValid) {\r\n return;\r\n }\r\n\r\n let details = [];\r\n let accountedFor = [];\r\n\r\n let editgridMembers = [];\r\n\r\n FormioUtils.eachComponent(\r\n _builderHidden.instance.schema.components,\r\n (component) => {\r\n if (\r\n component.type != \"custom\" &&\r\n ignoreTypes.indexOf(component.type) == -1\r\n ) {\r\n if (\r\n _globalForm.getComponent(component.key) &&\r\n _globalForm.getComponent(component.key).getValue()\r\n ) {\r\n if (component.type == \"editgrid\") {\r\n editgridMembers = [\r\n ...editgridMembers,\r\n ...component.components.map((x) => x.key),\r\n ];\r\n\r\n const innerQuestions = component.components.map((x) => ({\r\n key: x.key,\r\n label: x.label,\r\n }));\r\n\r\n details.push({\r\n key: component.key,\r\n value: _globalForm.getComponent(component.key).getValue(),\r\n componentType: component.type,\r\n primaryQuestion: component.label,\r\n alias: _alias[component.key],\r\n innerQuestions,\r\n });\r\n accountedFor.push(component.key);\r\n } else {\r\n if (!editgridMembers.includes(component.key)) {\r\n details.push({\r\n key: component.key,\r\n value: _globalForm.getComponent(component.key).getValue(),\r\n componentType: component.type,\r\n primaryQuestion: component.label,\r\n alias: _alias[component.key],\r\n });\r\n accountedFor.push(component.key);\r\n }\r\n }\r\n }\r\n } else if (component.type == \"custom\") {\r\n let linkedQuestion = _linkedQuestions.filter(\r\n (q) => q.key == component.key\r\n )[0];\r\n let value = getLinkedQuestionAnswer(\r\n _linkedQuestions.indexOf(linkedQuestion)\r\n );\r\n\r\n if (value) {\r\n details.push({\r\n key: component.key,\r\n value: value,\r\n componentType: \"custom\",\r\n primaryQuestion: component.label,\r\n alias: _alias[component.key],\r\n });\r\n accountedFor.push(component.key);\r\n }\r\n }\r\n }\r\n );\r\n\r\n data.details = JSON.stringify(details, null, 0);\r\n\r\n showLoader(_translationData[_defaultLanguage.tag].savingDraft);\r\n\r\n setTimeout(() => {\r\n $.ajax({\r\n url: `${__appUrl}/api/submissions/draft-submissions-surveys`,\r\n async: false,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n data: JSON.stringify(data),\r\n success: function (response) {\r\n showSuccess(_translationData[_defaultLanguage.tag].savedDraft);\r\n },\r\n });\r\n\r\n hideLoader();\r\n closeDraft();\r\n }, 200);\r\n}\r\n\r\nfunction loadDraftSubmission() {\r\n let data = {\r\n userName: $(\"#userName\").val(),\r\n password: $(\"#password\").val(),\r\n surveyLink: window.location.href,\r\n };\r\n\r\n const isValid = validateRequired({\r\n userName: $(\"#userName\").val(),\r\n password: $(\"#password\").val(),\r\n });\r\n\r\n if (!isValid) {\r\n return;\r\n }\r\n\r\n showLoader(_translationData[_defaultLanguage.tag].loadingDraft);\r\n\r\n setTimeout(() => {\r\n $.ajax({\r\n url: `${__appUrl}/api/submissions/draft-submissions-surveys/fetch`,\r\n async: false,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n data: JSON.stringify(data),\r\n success: function (response) {\r\n _draftData = JSON.parse(response.details);\r\n _surveyAttempt.draftId = response.id;\r\n setDraftData();\r\n },\r\n error: function (err) {\r\n const error = getError(err);\r\n showError(error.messages);\r\n },\r\n });\r\n\r\n hideLoader();\r\n closeDraft();\r\n }, 200);\r\n}\r\n\r\nfunction closeDraft() {\r\n $(\"#draftUserName\").val(\"\");\r\n $(\"#draftPassword\").val(\"\");\r\n $(\"#draft-modal\").modal(\"hide\");\r\n}\r\n\r\nfunction loadWorkflowStatus() {\r\n $(\"#workflow-modal\").modal(\"show\");\r\n}\r\n\r\nfunction searchWorkflow() {\r\n event.preventDefault();\r\n\r\n const isValid = validateRequired({\r\n workflowUniqueKey: $(\"#workflowUniqueKey\").val(),\r\n });\r\n\r\n if (!isValid) {\r\n return;\r\n }\r\n\r\n showLoader();\r\n\r\n setTimeout(() => {\r\n $.ajax({\r\n url: `${__appUrl}/api/workflows/status-check/${$(\r\n \"#workflowUniqueKey\"\r\n ).val()}`,\r\n async: false,\r\n type: \"GET\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n success: function (response) {\r\n showWorkflowStatusCheck(response);\r\n },\r\n error: function (err) {\r\n const error = getError(err);\r\n showError(error.messages);\r\n },\r\n });\r\n\r\n hideLoader();\r\n }, 200);\r\n}\r\n\r\nfunction forgotWorkflowKey() {\r\n $(\".workflowUniqueKeyDetails\").hide();\r\n $(\".workflowStatusCheckDetails\").hide();\r\n $(`[data-translation=\"btn-search\"]`).hide();\r\n $(\".forgotWorkflowKeyDetails label\").text(_workflowDetails.contactQuestion);\r\n let errorMessageText = $(\r\n `.forgotWorkflowKeyDetails [data-translation=\"invalid-feedback-workflow-contact-question\"]`\r\n ).text();\r\n $(\r\n `.forgotWorkflowKeyDetails [data-translation=\"invalid-feedback-workflow-contact-question\"]`\r\n ).text(\r\n errorMessageText.replace(\r\n \"{WORKFLOWCONTACTQUESTION}\",\r\n _workflowDetails.contactQuestion\r\n )\r\n );\r\n $(`[data-translation=\"btn-forgotworkflowkey\"]`).text(\r\n _translationData[_defaultLanguage.tag].resendUniqueKey\r\n );\r\n $(`[data-translation=\"btn-forgotworkflowkey\"]`).attr(\r\n \"onclick\",\r\n \"resendWorkflowKey()\"\r\n );\r\n $(\".forgotWorkflowKeyDetails\").removeClass(\"hidden\");\r\n}\r\n\r\nfunction resendWorkflowKey() {\r\n event.preventDefault();\r\n\r\n const isValid = validateRequired({\r\n workflowContactQuestion: $(\"#workflowContactQuestion\").val(),\r\n });\r\n\r\n if (!isValid) {\r\n return;\r\n }\r\n\r\n showLoader();\r\n\r\n const data = {\r\n contactQuestion: _workflowDetails.contactQuestion,\r\n contactQuestionAnswer: $(\"#workflowContactQuestion\").val(),\r\n contactQuestionType: _workflowDetails.contactType,\r\n surveyId: _surveyId,\r\n };\r\n\r\n setTimeout(() => {\r\n $.ajax({\r\n url: `${__appUrl}/api/workflows/resend-unique-key`,\r\n async: false,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n data: JSON.stringify(data),\r\n success: function (response) {\r\n showWorkflowStatusCheck(response);\r\n },\r\n error: function (err) {\r\n const error = getError(err);\r\n showError(error.messages);\r\n },\r\n });\r\n\r\n hideLoader();\r\n }, 200);\r\n}\r\n\r\nfunction showWorkflowStatusCheck(workflowStatusCheck) {\r\n let isReSubmitable = false;\r\n const workflowStatus = JSON.parse(workflowStatusCheck.workflowStatus);\r\n let workflowStatusHtml = \"\";\r\n\r\n for (key in workflowStatus) {\r\n if (workflowStatus[key] !== \"completed\") {\r\n isReSubmitable = true;\r\n }\r\n const status =\r\n workflowStatus[key] === \"completed\"\r\n ? _translationData[_defaultLanguage.tag].accepted\r\n : workflowStatus[key] === \"rejected\"\r\n ? _translationData[_defaultLanguage.tag].rejected\r\n : _translationData[_defaultLanguage.tag].inprogress;\r\n workflowStatusHtml += `\r\n
\r\n
\r\n ${key}\r\n
\r\n
\r\n ${status}\r\n
\r\n
\r\n `;\r\n }\r\n\r\n isReSubmitable =\r\n isReSubmitable && workflowStatusCheck.isOpenedForReSubmission;\r\n\r\n const workflowComments = workflowStatusCheck.workflowComments?.map((x) => {\r\n return `\r\n
\r\n
\r\n ${formatDateTime(x.createdDate)}\r\n
\r\n
\r\n ${x.comment}\r\n
\r\n
\r\n `;\r\n });\r\n\r\n const editSubmission = isReSubmitable\r\n ? `\r\n
\r\n \r\n
\r\n `\r\n : \"\";\r\n\r\n $(\"#workflow-modal #workflow-body .workflowStatusCheckDetails\").html(`\r\n
\r\n ${workflowComments.join(\"\")}\r\n
\r\n
\r\n ${workflowStatusHtml}\r\n
\r\n ${editSubmission}\r\n `);\r\n}\r\n\r\nfunction closeWorkflow() {\r\n $(\".workflowUniqueKeyDetails\").show();\r\n $(\".workflowStatusCheckDetails\").show();\r\n $(`[data-translation=\"btn-search\"]`).show();\r\n $(\"#workflow-modal .workflow-body .workflowstatuscheck\").remove();\r\n\r\n $(\".forgotWorkflowKeyDetails label\").text(\"\");\r\n let errorMessageText = $(\r\n `.forgotWorkflowKeyDetails [data-translation=\"invalid-feedback-workflow-contact-question\"]`\r\n ).text();\r\n $(\r\n `.forgotWorkflowKeyDetails [data-translation=\"invalid-feedback-workflow-contact-question\"]`\r\n ).text(\r\n errorMessageText.replace(\r\n _workflowDetails.contactQuestion,\r\n \"{WORKFLOWCONTACTQUESTION}\"\r\n )\r\n );\r\n $(`[data-translation=\"btn-forgotworkflowkey\"]`).text(\r\n _translationData[_defaultLanguage.tag].forgotUniqueKey\r\n );\r\n $(`[data-translation=\"btn-forgotworkflowkey\"]`).attr(\r\n \"onclick\",\r\n \"forgotWorkflowKey()\"\r\n );\r\n $(\".forgotWorkflowKeyDetails\").addClass(\"hidden\");\r\n\r\n $(\"#workflow-modal\").modal(\"hide\");\r\n}\r\n\r\nfunction loadWorkflowSubmission(attemptId, workflowUniqueKey) {\r\n var data = {\r\n attemptId,\r\n workflowUniqueKey,\r\n };\r\n\r\n showLoader();\r\n\r\n setTimeout(() => {\r\n $.ajax({\r\n url: `${__appUrl}/api/workflows/resubmission`,\r\n async: false,\r\n type: \"POST\",\r\n dataType: \"json\",\r\n contentType: \"application/json;charset=UTF-8\",\r\n data: JSON.stringify(data),\r\n success: function (response) {\r\n _workflowUniqueKey = workflowUniqueKey;\r\n setWorkflowSurveyResponseForReSubmission(response);\r\n },\r\n error: function (err) {\r\n const error = getError(err);\r\n showError(error.messages);\r\n },\r\n });\r\n\r\n hideLoader();\r\n closeWorkflow();\r\n }, 200);\r\n}\r\n\r\n$(document).on(\"change\", \".none-of-above\", function () {\r\n const classes = $(this).attr(\"class\").split(\" \");\r\n const keyClass = classes.filter((x) => x.includes(\"-none-of-above\"))[0]; //classes[classes.length - 1];\r\n const key = keyClass.split(\"-none-of-above\")[0];\r\n if ($(this).prop(\"checked\")) {\r\n $(this)\r\n .closest(\".form-radio\")\r\n .find(\".form-check input:not(.none-of-above)\")\r\n .attr(\"disabled\", true);\r\n $(this)\r\n .closest(\".form-radio\")\r\n .find(\".form-check input:not(.none-of-above)\")\r\n .prop(\"checked\", false);\r\n setTimeout(() => {\r\n const val = _globalForm.getComponent(key).getValue();\r\n _globalForm.getComponent(key).setValue(val);\r\n }, 300);\r\n return;\r\n } else {\r\n $(this)\r\n .closest(\".form-radio\")\r\n .find(\".form-check input:not(.none-of-above)\")\r\n .removeAttr(\"disabled\");\r\n }\r\n});\r\n\r\n$(document).on(\"change\", \".all-of-above\", function () {\r\n const classes = $(this).attr(\"class\").split(\" \");\r\n const keyClass = classes.filter((x) => x.includes(\"-all-of-above\"))[0];\r\n const key = keyClass.split(\"-all-of-above\")[0];\r\n if ($(this).prop(\"checked\")) {\r\n $(this)\r\n .closest(\".form-radio\")\r\n .find(\".form-check input:not(.all-of-above)\")\r\n .attr(\"disabled\", true);\r\n $(this)\r\n .closest(\".form-radio\")\r\n .find(\".form-check input:not(.all-of-above)\")\r\n .prop(\"checked\", true);\r\n setTimeout(() => {\r\n const val = _globalForm.getComponent(key).getValue();\r\n _globalForm.getComponent(key).setValue(val);\r\n }, 300);\r\n return;\r\n } else {\r\n $(this)\r\n .closest(\".form-radio\")\r\n .find(\".form-check input:not(.all-of-above)\")\r\n .removeAttr(\"disabled\");\r\n $(this)\r\n .closest(\".form-radio\")\r\n .find(\".form-check input:not(.all-of-above)\")\r\n .prop(\"checked\", false);\r\n }\r\n});\r\n\r\n// #endregion\r\n"],"names":["_surveyLink","getSurveyLink","let","_workflowUniqueKey","_builder","_builderHidden","_globalForm","_formSchema","_startTime","_surveyTitle","_surveyId","_languageContainer","_isMultiLanguage","_languageNames","label","tag","htmlLang","dir","_defaultLanguage","_userLanguage","_surveyImages","_fileData","_submissionLogos","_audioCtx","_canvasCtx","_recorderMainSection","_recorderCanvas","_recordingBlob","_recordingClipLabel","_recordingData","_fileUploadData","_customCss","_submissionMessage","_surveyValidation","_uniquenessValidatedComponents","_requiredValidationErrors","_linkedQuestions","_alias","_linkedData","_linkedSurveyData","_multidataLinkedDetails","_multidataLinkedCurrent","_linkedPictures","_otpDetails","_formSubmissionMessageDetails","_duplicateSubmissionMessage","_formSubmissionMessageAnswers","_questionList","_pageBackground","_certificate","_enablePrinting","_noneOfAboveDetails","_locationInfo","_isLocationAccessGranted","_locationFetched","_locationAccessReqComplete","_locationAccuracy","_timerInfo","_workflowDetails","_categoryLimit","_categoryLimitErrors","_categoryLimitExceeded","_advancedValidationSurveyData","_advancedValidationSurveyAnswerList","_editGridComponentChangedCount","_optionContact","_isEmailOptionEnabled","_hiddenCount","_totalPages","_currentPage","_currentQuestionKey","_currentFormChange","_prevFormChange","_surveyAttempt","_draftData","_shuffleId","Date","now","_uniqueQuestions","_uniqueQuestionsValidationResults","_defaultFormTranslation","ar","Submit","Cancel","Save","Add Another","hi","ur","_translationData","en","timeLeft","recordNameLabel","recordName","recordAudio","record","stop","delete","save","close","cancel","load","generateOtp","otpValidFor","submitOtp","otpExpired","otpMobileNum","enterOtp","otpVerified","otpIncorrect","duplicateSubmission","duplicateRanking","invalidRanking","userName","password","next","previous","surveyStatus","print","saveDraft","loadDraft","draftSubmission","validUserName","validPassword","workflowStatus","workflowUniqueKey","forgotUniqueKey","resendUniqueKey","validWorkflowUniqueKey","search","allowLocationAccess","submittedDetails","uniqueKeyIs","savingDraft","savedDraft","loadingDraft","back","enterNameSoundClip","enterOtpHere","progress","fileSizeError","accepted","rejected","inprogress","pageLoadAsyncFunctionalities","$","getJSON","data","ipAddress","initializeForm","Formio","FormBuilder","document","getElementById","baseUrl","multilanguageContent","language","i18n","updateLanguageContainerOnFormLoad","createForm","then","form","nosubmit","ready","setPreviousSubmittedAswers","window","setLanguage","setSurveyImages","setCustomCss","length","addEditGridButtonEvent","shuffleRadio","shuffleMultiChoice","generateLinkedQuestionHtml","setCustomCssForLinkedQuestion","addRanking","addLinkedPictures","linkManipulation","initializeSubmissionLogos","setNavigation","addNoneOfAbove","addLinkedSurveyDataFieldBlurEvent","getCategoryLimitExceed","languageChangeTranslation","showHideLanguageSpecificDetails","removeClass","enableOTP","setNextBtn","on","submission","submittingForm","changed","component","key","customClass","indexOf","setFileType","type","hideUnhideLinkedQuestionsSimple","setLinkedDataFields","value","disableAndClear","hideChoiceWhoseLimitHasExceeded","catch","error","console","log","stringyfiedLanguageContainer","JSON","stringify","replace","onLoadLanguageContainer","parse","Object","keys","updateLanguageContainerWithDefault","cleanseLanguageContainer","Array","isArray","i","hasOwnProperty","setDefaultLanguage","prop","filter","x","setOtherLanguages","availableLanguageTags","availableLanguages","includes","map","push","each","this","parent","remove","setDraftButtons","isEnabled","initializePercentageComplete","updateProgressBar","initializeLocationInfo","getLocation","locationPermissionInterval","setInterval","clearInterval","mandatory","hideSurveyAndShowMessage","locationAccessRequest","options","enableHighAccuracy","timeout","maximumAge","locationSuccess","pos","latlng","crd","coords","latitude","longitude","accuracy","convertDMS","latitudeDMS","split","longitudeDMS","getLocationDetail","locationCount","locationInterval","locationError","err","navigator","geolocation","getCurrentPosition","lat","lng","toDegreesMinutesAndSeconds","latitudeCardinal","coordinate","absolute","Math","abs","degrees","floor","minutesNotTruncated","minutes","async","surveyId","ajax","url","__appUrl","dataType","contentType","success","response","status","plus_code","locDet","compound_code","city","slice","state","country","results","formattedAddress","formatted_address","_0x47dc","_0x43a7e3","_0x2c614a","_0x5bb857","_0x5bb8","_0x47dc38","_0x1a1d76","startTimer","_0x1c66fc","_0x517421","_0x326237","_0x27c2aa","_0x3355ff","_0x18cec9","parseInt","_0x17b5b8","_0x4ca694","FormioUtils","_0x14cb3a","_0x223056","_0x59229a","getAdvancedValidationSurveyAnswers","survey","question","primaryQuestion","surveyIdAndQuestions","addAdvancedValidationToSurveys","answers","validCond","valType","questiontype","j","answer","item","errorMessage","getComponent","custom","redraw","setTimeout","linkedSurveyData","cleanKey","attr","setLinkedSurveyDataAnswers","comp","findComponents","instance","schema","components","qLinked","setValue","formatDateForSurveyForm","qLinkedType","click","trigger","countNav","hasClass","hide","show","addClass","text","isValid","find","name","val","removeAttr","customCssToApply","componentsToApplyCss","componentsToApplyCssInsidePage","searchComponents","apply","custSize","customCssToApplyKey","customSize","customFontStyle","customColor","css","color","margin-top","e","surveyComponents","customCssForLinkedQuestionKey","qType","generateLinkedQuestionHtmlEditGrid","qkey","linkedQuestionHtmlEditGridKey","linkedQuestionQLinked","linkedQuestionQKey","requiredIndicator","isRequired","linkedOutputHtml","rClass","html","showLoader","id","surveyDetails","surveyName","setSurveyTitle","surveyImages","customCss","submissionMessage","languageContainer","defaultType","isMultiLanguage","surveyValidation","linkedQuestion","alias","linkedData","linkedPictures","otpDetails","formSubmissionMessageDetails","duplicateSubmissionMessage","fileData","questionList","pageBackground","certificate","noneOfAboveDetails","workflowDetails","enableWorkflowFunctionality","categoryLimit","cleanCategoryLimit","advancedValidationSurveyData","enablePrinting","optionContact","uniqueQuestions","locationInfo","enabled","timerInfo","enableDraft","enablePercentageComplete","setPageBackground","getError","showError","messages","hideLoader","_0x1c2679","_0x56df9e","_0x6dea7b","editGridComponentChangedCount","hideUnhideLinkedQuestionsEditGrid","cleanedKey","linkedQuestionKey","vals","arr","validCount","constructor","key1","setLinkedQuestionLanguage","hideUnhideLinkedQuestionsEditGridSimple","linkedQuestionsToShow","hideLinkedQuestionsOnChange","currentLinkedQuestion","currentQuestionAnswers","getValue","availableLinkedAnswers","linkedQuestionToShowKey","forEach","not","radio","outerHtml","outPutHtml","generateHtmlForRandomizedArray","randomizeArray","append","checkBoxArray","array","currentIndex","randomIndex","random","outputHtml","editGridLanguageChange","langVal","message","translateWorkflowModules","title","commonProps","audioHtml","$target","fileDataKey","classes","first","videoHtml","videoType","link","fileHtml","image","imgHtml","style","justify-content","closest","margin","padding","configureAudioRecorderComponent","eachComponent","setupAudioRecorderForHiddenWhenVisible","pop","setupRecorderVariables","querySelector","soundClips","disabled","getContext","mediaDevices","getUserMedia","chunks","audio","stream","mediaRecorder","MediaRecorder","onclick","start","background","onstop","clipName","prompt","clipContainer","createElement","dataset","translation","deleteButton","audioURL","className","setAttribute","textContent","appendChild","controls","Blob","URL","createObjectURL","src","evtTgt","target","parentNode","removeChild","existingName","newClipName","_defaultLang","ondataavailable","saveRecorderData","reader","FileReader","readAsDataURL","onloadend","base64String","result","recordingIndex","findIndex","closeRecorderModal","updateFileUploadForRecording","recordingData","originalName","storage","modal","otpDetailsKey","pageColor","pageTextColor","max","validate","maxSelectedCount","min","minSelectedCount","minValidation","pic","option","picture","after","validateUniquenessNext","validationElements","unAnsweredElements","surveyValidationKey","fieldName","validation","pageElementErrorsCount","validationCondition","cond","bracketCountCondition","trim","Function","questionAnswers","validateUniqueness","validateUniqueSubmission","existingValidation","keyAnswers","bracketCount","z","lastIndex","lastIndexOf","replaceAt","validateCategoryLimit","reduce","acc","errorMessages","validateRankingOnPageChange","numVals","Set","size","validateRanking","validateRankingOnChange","noneOfAboveKey","shouldHideWhenLimitExceeds","currentPrimaryQuestion","currentComponent","values","prepend","display","linkedDataVals","blur","searchedComponents","focus","maxCount","selectedCount","validateRequiredForLinkedQuestion","currentMultidataQuestionSet","currentQuestionSet","q","isMultidata","currentQuestionSetKey","multidataQuestion","validateRequiredForLinkedQuestionMultidata","multidataQuestionSet","mobileAndTabletcheck","a","userAgent","vendor","opera","test","substr","check","browserDetector","isOpera","opr","addons","isFirefox","InstallTrigger","isSafari","HTMLElement","safari","pushNotification","toString","isIE","documentMode","isEdge","StyleMedia","isChrome","chrome","webstore","runtime","isEdgeChromium","getWorkflowDetails","isResubmission","uniqueKey","uuid","lang","submissionMessageFormSubmit","surveyMessage","toLowerCase","isReSubmission","printSurveyBeforeSubmission","source","componentsTobeIgnored","undefined","element","questions","imgElement","img","toLocaleString","scrollTo","body","scrollHeight","printSurveyAfterSubmission","answerLabel","questionLabel","formatedAnswer","formatDateTimeForSurveyForm","format","closePrintSurvey","printCertificate","doc","template","parseHTML","certificateConfiguration","jspdf","jsPDF","_certificateConfig","callback","y","cert","z-index","height","width","min-height","toLocaleLowerCase","hideUnhideDepedentLinkedQuestions","setDraftData","draftDataKey","componentType","editGridBtnClick","dataValues","change","setWorkflowSurveyResponseForReSubmission","surveyResults","ans","prevAnswers","blobVal","await","getBlob","blobToBase64","secondaryQuestion","dataLinked","substring","fetch","blob","Promise","resolve","_","translationValue","splice","resetMutiSelect","progressBar","setProperty","submissionData","submitForm","emit","join","getSurveyData","files","file","refresh","isEmailOptionEnabled","timeTaken","getTime","isMobileOrTablet","device","browser","attemptLanguage","afterSubmitAction","showSuccessSurveySubmission","uniquekey","submissionLogoHtml","questionType","cleanQuestion","formSubmissionMessage","surveyAnswers","items","surveyQuestions","addFileUploadData","editgridQuestion","innerAnswer","innerQComponent","innerQuestion","messageAr","messageEn","setFormSubmissionMessageAnswers","getLinkedQuestionAnswer","linkedQ","k","isPartOfMultiData","innerQ","fileClasses","isFileValidType","cls","index","setLinkedSurveyDataFields","linkedSurveyDataCurrent","surveyIds","linkedDataIndex","hideUnhideLinkedQuestions","childLinkedQuestions","ref","innerComponents","multiDataObj","multidataLinkedLatest","rowNum","updateLanguage","addRecoderForm","generateOTP","phoneNumber","time","otptimer","submitOTP","otp","isNaN","navigate","event","preventDefault","triggerChange","nav","preNav","postNav","scrollTop","documentElement","guid_current","previousFormChangeCopy","actionsIfFormOnChangeFails","getValidComponentKeyIfFormOnChangeFails","potentialKeyList","saveDraftSubmission","ignoreTypes","details","surveyLink","location","href","validateRequired","accountedFor","editgridMembers","innerQuestions","showSuccess","closeDraft","loadDraftSubmission","draftId","loadWorkflowStatus","searchWorkflow","showWorkflowStatusCheck","forgotWorkflowKey","contactQuestion","errorMessageText","resendWorkflowKey","workflowContactQuestion","contactQuestionAnswer","contactQuestionType","contactType","workflowStatusCheck","isReSubmitable","workflowStatusHtml","isOpenedForReSubmission","workflowComments","formatDateTime","createdDate","comment","editSubmission","attemptId","closeWorkflow","loadWorkflowSubmission"],"mappings":"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"}