{"version":3,"sources":["wwwroot/js/support-form.js"],"names":["$","supportForm","supportFormSubmitButton","find","supportFormFields","supportFormComplateModal","supportFormCountdown","countdown","getCookie","Date","now","showCountdown","time","addClass","show","duration","display","hide","minutes","seconds","timer","countdownInterval","setInterval","parseInt","text","removeClass","clearInterval","startCountdown","on","prop","this","is","parent","toggleClass","e","preventDefault","formData","FormData","feedbackData","key","value","additionalData","orderId","userOrderId","userMessage","async","sendFeedBackResponse","GB","User","sendFeedback","errors","showError","message","modal","date","setTime","getTime","document","cookie","setTimeInCookie"],"mappings":"AAAAA,GAAE,WAKE,IAAIC,EAAcD,EAAE,sBAChBE,EAA0BD,EAAYE,KAAK,UAC3CC,EAAoBH,EAAYE,KAAK,mBACrCE,EAA2BL,EAAE,gCAC7BM,EAAuBN,EAAE,gCAGzBO,IADmBC,UAAU,oBAAsB,GACnBC,KAAKC,OAAO,IAkDhD,SAASC,EAAcC,EAAO,KAC1BV,EAAwBW,SAAS,WACjCP,EAAqBQ,OAUzB,SAAwBC,EAAUC,GAC9BA,EAAQC,OACR,IAAsBC,EAASC,EAA3BC,EAAQL,EACRM,EAAoBC,aAAY,WAChCJ,EAAUK,SAASH,EA7EH,GA6E4B,IAC5CD,EAAUI,SAASH,EA9EH,GA8E4B,IAE5CF,EAAUA,EA9EU,GA8EwB,IAAMA,EAAUA,EAC5DC,EAAUA,EA/EU,GA+EwB,IAAMA,EAAUA,EAE5DH,EAAQQ,KAAKN,EAAU,IAAMC,GAASL,SAEhCM,EAAQ,IACVA,EAAQL,EA7BhBb,EAAwBuB,YAAY,WACpCnB,EAAqBW,OA8BbS,cAAcL,MAvFJ,KA+DlBM,CAAef,EAAMN,EAAqBH,KAAK,uCAnD/CI,EAAY,GACZI,EAAcJ,GAGlBN,EAAY2B,GAAG,SAAS,WACpB1B,EAAwB2B,KAAK,YAAa7B,EAAE8B,MAAMC,GAAG,cAGzD3B,EAAkBwB,GAAG,SAAS,WACN5B,EAAE8B,MAAME,SACdC,YAAY,WAAYjC,EAAE8B,MAAMC,GAAG,cAGrD7B,EAAwB0B,GAAG,SAAS,SAAUM,GAE1C,GADAA,EAAEC,iBACEnC,EAAE8B,MAAMC,GAAG,aAAe/B,EAAE8B,MAAMC,GAAG,YACrC,OAEJ/B,EAAE8B,MAAMjB,SAAS,WACjB,IAAIuB,EAAW,IAAIC,SAASpC,EAAY,IACpCqC,EAAe,GACnB,IAAK,MAAOC,EAAKC,KAAUJ,EACvBE,EAAaC,GAAOC,EAExBF,EAAaG,eAAiB,CAC1BC,QAASJ,EAAaK,aAE1BL,EAAaM,YAAcN,EAAaM,YAAc,IAI1DC,eAA4BP,GACxB,IAAIQ,QAA6BC,GAAGC,KAAKC,aAAaX,GAEtD,GADApC,EAAwBuB,YAAY,WAChCqB,EAAqBI,OAErB,YADAC,UAAUL,EAAqBI,OAAOE,SAG1C/C,EAAyBgD,MAAM,QAgBnC,WACI,IAAIC,EAAO,IAAI7C,KACf6C,EAAKC,QAAQD,EAAKE,UAAY,MAC9BC,SAASC,OAAS,mBAAqBJ,EAAKE,UAlB5CG,GACAhD,IAZAsC,CAAaX","file":"support-form.min.js","sourcesContent":["$(function () {\r\n const countdownMinute = 60,\r\n countdownSecond = 1000,\r\n countdownTwoZeroLimit = 10;\r\n \r\n let supportForm = $('.support-page-form'),\r\n supportFormSubmitButton = supportForm.find('button'),\r\n supportFormFields = supportForm.find('input, textarea'),\r\n supportFormComplateModal = $('.support-form-modal-complete'),\r\n supportFormCountdown = $('.support-page-form-countdown'),\r\n sendLimitMinutes = 2,\r\n timeBeforeUnlock = getCookie('canSendFeedback') || 0,\r\n countdown = (timeBeforeUnlock - Date.now())/1000;\r\n\r\n if (countdown > 0) {\r\n showCountdown(countdown);\r\n }\r\n\r\n supportForm.on('input', function () {\r\n supportFormSubmitButton.prop('disabled', !$(this).is(':valid'));\r\n });\r\n\r\n supportFormFields.on('input', function () {\r\n let parentElement = $(this).parent();\r\n parentElement.toggleClass('invalid', !$(this).is(':valid'));\r\n });\r\n\r\n supportFormSubmitButton.on('click', function (e) {\r\n e.preventDefault();\r\n if ($(this).is('.blocked') || $(this).is('.loading'))\r\n return;\r\n\r\n $(this).addClass('loading');\r\n let formData = new FormData(supportForm[0]), \r\n feedbackData = {};\r\n for (const [key, value] of formData) {\r\n feedbackData[key] = value;\r\n }\r\n feedbackData.additionalData = {\r\n orderId: feedbackData.userOrderId\r\n }\r\n feedbackData.userMessage = feedbackData.userMessage + '.';\r\n sendFeedback(feedbackData); \r\n });\r\n\r\n async function sendFeedback(feedbackData) { \r\n let sendFeedBackResponse = await GB.User.sendFeedback(feedbackData);\r\n supportFormSubmitButton.removeClass('loading');\r\n if (sendFeedBackResponse.errors) {\r\n showError(sendFeedBackResponse.errors.message);\r\n return;\r\n }\r\n supportFormComplateModal.modal('show');\r\n setTimeInCookie();\r\n showCountdown();\r\n }\r\n\r\n function hideCountdown() {\r\n supportFormSubmitButton.removeClass('blocked');\r\n supportFormCountdown.hide();\r\n }\r\n\r\n function showCountdown(time = 120) {\r\n supportFormSubmitButton.addClass('blocked');\r\n supportFormCountdown.show();\r\n startCountdown(time, supportFormCountdown.find('.support-page-form-countdown-timer'));\r\n }\r\n\r\n function setTimeInCookie(){\r\n let date = new Date();\r\n date.setTime(date.getTime() + (sendLimitMinutes * 60 * 1000));\r\n document.cookie = \"canSendFeedback=\" + date.getTime();\r\n }\r\n\r\n function startCountdown(duration, display) {\r\n display.hide();\r\n let timer = duration, minutes, seconds;\r\n let countdownInterval = setInterval(function () {\r\n minutes = parseInt(timer / countdownMinute, 10)\r\n seconds = parseInt(timer % countdownMinute, 10);\r\n\r\n minutes = minutes < countdownTwoZeroLimit ? \"0\" + minutes : minutes;\r\n seconds = seconds < countdownTwoZeroLimit ? \"0\" + seconds : seconds;\r\n\r\n display.text(minutes + \":\" + seconds).show();\r\n\r\n if (--timer < 0) {\r\n timer = duration;\r\n hideCountdown();\r\n clearInterval(countdownInterval);\r\n }\r\n }, countdownSecond);\r\n }\r\n});\r\n"]}