{"version":3,"sources":["common.js"],"names":["trans","key","replace","translation","split","reduce","t","i","window","translations","placeholder","clearCountdown","clearInterval","cInt","playAlertSound","pspi","$","val","alertMe","localStorage","getItem","toString","e","play","formatDate","date","d","Date","month","getMonth","day","getDate","year","getFullYear","length","join","generateAnnListItem","event","live","eventID","eventClass","eventType","monitorID","lenght","remove","icon","annList","monitor","duration","alertCount","pageUrl","DOMPurify","sanitize","location","href","search","enableD","timeGMT","time","timeZone","title","content","endDate","endDateGMT","callEventFeed","fromNow","getToDate","getFromDate","outputContainer","toDate","numberOfDays","showO","fromDate","parseFloat","now","undefined","html","addClass","ajax","type","url","eventsApiPath","dataType","cache","success","data","status","meta","count","annLists","Object","values","results","map","removeClass","prepend","error","console","log","setCookie","cname","cvalue","exdays","setTime","getTime","expires","toUTCString","document","cookie","getCookie","name","ca","decodeURIComponent","c","charAt","substring","indexOf","setTimeout","reload","on","elem","documentElement","this","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","scrollTo","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","addEventListener","fullscreenElement","toggleClass","setItem","submit","text","attr","serialize","message","protocol","host","redirect","preventDefault","UIkit","util","focus","prop","sendGAEvents","gtag","event_category","event_label","emailString","token","email","pspUrlKey","_token","sendGTM","dataLayer","push","errorMessage","responseJSON","Rollbar"],"mappings":"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","file":"common.min.js","sourcesContent":["function trans(key, replace = {})\n{\n let translation = key.split('.').reduce((t, i) => t[i] || null, window.translations);\n\n for (var placeholder in replace) {\n translation = translation.replace(`:${placeholder}`, replace[placeholder]);\n }\n\n return translation;\n}\n\nfunction clearCountdown() {\n clearInterval(cInt);\n}\n\nfunction playAlertSound() {\n\n var pspi = $('input#pspi').val();\n\n try {\n // localStorage is accessible so we can save..\n var alertMe = localStorage.getItem(\"PSPNotification['\" + pspi + \"'']\").toString();\n } catch (e) {\n // localStorage is not accessible\n }\n\n if (alertMe == \"1\") {\n $(\"audio#notification\")[0].play();\n }\n}\n\n// Autoreload every hour to make it easir on RAM and load new app version - prevent runnig old PSP version opened for weeks in browser\nsetTimeout(function () {\n window.location.reload(true);\n}, 3600000);\n\n// Fomat date\n\nfunction formatDate(date) {\n var d = new Date(date),\n month = '' + (d.getMonth() + 1),\n day = '' + d.getDate(),\n year = d.getFullYear();\n\n if (month.length < 2)\n month = '0' + month;\n if (day.length < 2)\n day = '0' + day;\n\n return [year, month, day].join('-');\n}\n\n\n// Generate events list function - used on home and history page\n\nfunction generateAnnListItem(event, live) {\n\n var eventID = '';\n var eventClass = '';\n\n // this we need to test on beta...\n if (event.eventType == \"alrt\") {\n eventID = 'data-monitor-id=\"m-' + event.monitorID + '\"';\n eventID += 'data-date=\"d-' + formatDate(event.date) + '\"';\n\n if (live && $('.announcement-feed .psp-announcement[data-date=\"\"]').lenght <= 30) {\n $('.announcement-feed[data-monitor-id=\"m-' + event.monitorID + '][data-date=\"' + formatDate(event.date) + '\"]').remove();\n }\n } else {\n eventClass = \" is-\" + event.icon;\n }\n\n var annList = '
';\n annList += '
';\n\n if (live === true) {\n annList += '
' + trans('status.new') + '
'\n }\n annList += '
' + event.date + '
';\n\n annList += '
';\n\n annList += '
';\n\n // downtime alerts (alrt OR ann)\n if (event.eventType == \"alrt\") {\n\n annList += '';\n annList += '
';\n\n annList += '

' + event.monitor + ' was down for ' + event.duration + ' in total

';\n\n if (event.alertCount == 1) {\n annList += '

' + trans('common.outage_count_singular')+ '

';\n } else {\n annList += '

' + trans('common.outage_count').replace('%s', event.alertCount) + '

'\n }\n\n annList += '

';\n const pageUrl = DOMPurify.sanitize(window.location.href.replace(location.search, '').replace(/\\/$/, ''));\n\n if (window.enableD) {\n annList += '' + trans('common.see_details') + ' | ';\n }\n\n annList += '' + trans('announcement.updated_on') + ' ' + event.time + ' GMT' + window.timeZone + '\\\n

';\n\n } else {\n\n annList += '';\n annList += '
';\n\n annList += '

' + event.title + '

';\n\n annList += '

' + event.content + '

';\n\n if (event.endDate !== null) {\n\n annList += '

';\n annList += '\\\n ' + event.date + ', ' + event.time + ' GMT' + window.timeZone + ' \\\n ';\n\n annList += '\\\n  — ' + event.endDate + ' GMT' + window.timeZone + '\\\n ';\n\n annList += \"

\";\n } else {\n annList += '

' + trans('announcement.updated_on') + ' ' + event.time + ' GMT' + window.timeZone + '\\\n

';\n }\n }\n\n\n annList += '
';\n\n return annList;\n\n}\n\n\n// Call event feed function - used on home and history page\n\nfunction callEventFeed(fromNow, getToDate, getFromDate, outputContainer) {\n\n var toDate = '';\n\n var numberOfDays = 7;\n\n if (window.showO == false) {\n numberOfDays = 30;\n }\n\n // week/month before\n var fromDate = ~~((parseFloat(Date.now()) - numberOfDays * 86400000) / 1000);\n\n if (fromNow === true) {\n // 2 minute grace period\n fromDate = ~~(parseFloat((Date.now()) - 120) / 1000);\n }\n\n if (getFromDate !== null) {\n fromDate = ~~(parseFloat(getFromDate) / 1000);\n }\n\n if (getToDate !== null) {\n toDate = '&to_date=' + ~~(parseFloat(getToDate) / 1000);\n }\n\n if (outputContainer !== undefined) {\n outputContainer.html(\n '
\\\n
\\\n
\\\n
\\\n
'\n );\n\n $('.psp-calendar-nav').addClass('loading');\n }\n\n $.ajax({\n type: \"GET\",\n url: window.eventsApiPath + '?from_date=' + fromDate + toDate,\n\n dataType: \"json\",\n cache: false,\n success: function (data) {\n if (data.status === true) {\n\n $('.announcement-feed-preloader').addClass('uk-hidden');\n\n if (data.meta.count > 0) {\n var events = Object.values(data.results);\n\n // Now, iterate through the new object to output grouped alerts\n var annLists = events.map(function (event) {\n return generateAnnListItem(event, fromNow);\n });\n\n if (outputContainer !== undefined) {\n outputContainer.html(annLists.join(''));\n $('.psp-calendar-nav').removeClass('loading');\n } else {\n $('.announcement-feed').prepend(annLists.join(''));\n\n $('.announcement-last').removeClass('uk-hidden');\n\n if (fromNow) {\n $('.announcement-empty').addClass('uk-hidden');\n }\n }\n } else {\n if (outputContainer !== undefined) {\n outputContainer.html(\n '
' + trans('common.no_updates_selected_range') + '.
'\n )\n $('.psp-calendar-nav').removeClass('loading');\n } else {\n if (!fromNow) {\n $('.announcement-empty').removeClass('uk-hidden');\n }\n }\n }\n }\n\n },\n error: function (error) {\n console.log(error);\n }\n });\n}\n\n$(function () {\n\n /* Handle full screen mode */\n\n $('.enter-fullscreen').on('click', function () {\n var elem = document.documentElement;\n\n if ($(this).data('fullscreen') == false) {\n if (elem.requestFullscreen) {\n elem.requestFullscreen();\n } else if (elem.mozRequestFullScreen) { /* Firefox */\n elem.mozRequestFullScreen();\n } else if (elem.webkitRequestFullscreen) { /* Chrome, Safari & Opera */\n elem.webkitRequestFullscreen();\n } else if (elem.msRequestFullscreen) { /* IE/Edge */\n elem.msRequestFullscreen();\n }\n window.scrollTo(0, 0);\n } else {\n if (document.exitFullscreen) {\n document.exitFullscreen();\n } else if (document.mozCancelFullScreen) {\n document.mozCancelFullScreen();\n } else if (document.webkitExitFullscreen) {\n document.webkitExitFullscreen();\n } else if (document.msExitFullscreen) {\n document.msExitFullscreen();\n }\n }\n\n });\n\n document.documentElement.addEventListener('fullscreenchange', function (event) {\n // document.fullscreenElement will point to the element that\n // is in fullscreen mode if there is one. If not, the value\n // of the property is null.\n if (document.fullscreenElement === null) {\n $('.enter-fullscreen').data('fullscreen', false);\n } else {\n $('.enter-fullscreen').data('fullscreen', true);\n }\n $('html').toggleClass('is-fullscreen');\n $('.enter-fullscreen .icon').toggleClass('uk-hidden');\n });\n\n\n\n\n /* Set and toggle notification alert setting - always set to no sound on page load bcs of permissions */\n\n var pspi = $('input#pspi').val();\n try {\n // localStorage is accessible so we can save..\n localStorage.setItem(\"PSPNotification['\" + pspi + \"'']\", \"0\");\n } catch (e) {\n // localStorage is not accessible\n }\n\n $('.toggle-notif').on('click', function () {\n if ($(this).data('notif') == false) {\n try {\n // localStorage is accessible so we can save..\n localStorage.setItem(\"PSPNotification['\" + pspi + \"'']\", \"1\");\n } catch (e) {\n // localStorage is not accessible\n }\n $(this).data('notif', true);\n } else {\n try {\n // localStorage is accessible so we can save..\n localStorage.setItem(\"PSPNotification['\" + pspi + \"'']\", \"0\");\n } catch (e) {\n // localStorage is not accessible\n }\n $(this).data('notif', false);\n }\n $('.toggle-notif .icon, .toggle-notif .label').toggleClass('uk-hidden');\n });\n\n\n $(\"#login-form\").submit(function (e) {\n $('.form-message').addClass('uk-hidden');\n\n if ($('#login-form #password-input').val().length > 0) {\n $('.form-message').text('');\n $.ajax({\n type: \"POST\",\n url: $(this).attr('action'),\n data: $(this).serialize(),\n dataType: \"json\",\n cache: false,\n success: function (data) {\n $('.form-message').text(data.message);\n\n if (data.success === true) {\n $('.form-message').removeClass('uk-alert-danger').addClass('uk-alert-success');\n window.location.replace(window.location.protocol + '//' + window.location.host + '/' + data.redirect);\n } else {\n $('.form-message').removeClass('uk-alert-success').addClass('uk-alert-danger');\n }\n $('.form-message').removeClass('uk-hidden');$('.form-message').removeClass('uk-hidden');\n }, error: function() {\n $('.form-message').removeClass('uk-alert-success').addClass('uk-alert-danger').text(trans('common.try_again'));\n }\n });\n } else {\n $('.form-message').removeClass('uk-alert-success').addClass('uk-alert-danger').text(trans('common.password_required'));\n $('.form-message').removeClass('uk-hidden');$('.form-message').removeClass('uk-hidden');\n }\n e.preventDefault();\n });\n\n UIkit.util.on('#subscribe-dropdown', 'show', function () {\n $('#subscribe-dropdown input').focus();\n $('#subscribe-form .form-message').text('').addClass('uk-hidden').removeClass('uk-alert-success uk-alert-danger');\n $(\"#subscribe-form button\").prop('disabled', false);\n\n if (window.sendGAEvents) {\n gtag('event', 'UR_SP_subscribe_open', {\n 'event_category': 'UptimeRobot Status page',\n 'event_label': 'Open subscription dropdown'\n });\n }\n });\n\n\n // handle cookieconesnt\n\n if (getCookie('ckConsent') != 1) {\n $('#ck-consent').removeClass('uk-hidden');\n }\n\n $('.hide-ckc').on('click', function () {\n $('#ck-consent').remove();\n setCookie('ckConsent', 1, 7);\n });\n\n\n // Handle psp unsubscribe form\n\n $('#unsubscribe-form').on('submit', function (e) {\n\n e.preventDefault();\n\n var pspi = $('input#pspi').val();\n var emailString = $('#unsubscribe-form input[type=\"email\"]').val();\n var token = $('#unsubscribe-form input[name=\"_token\"]').val();\n //var response = grecaptcha.getResponse();\n\n $('#unsubscribe-form .form-message').text('').addClass('uk-hidden').removeClass('uk-alert-success uk-alert-danger');\n $(\"#unsubscribe-form button\").text('Processing...').prop('disabled', true);\n\n $.ajax({\n type: \"POST\",\n url: $('#unsubscribe-form').attr('action'),\n data: {\n email: emailString,\n pspUrlKey: pspi,\n _token: token\n },\n dataType: \"json\",\n cache: false,\n success: function (data) {\n\n $(\"#unsubscribe-form button\").text('Send unsubscribe link').prop('disabled', false);\n if (data.status == true) {\n $('#unsubscribe-form .form-message').html('Unsubscribe link has been sent. Confirm the unsubscribe by clicking a link in the email, please.').removeClass('uk-hidden').removeClass('uk-alert-danger').addClass('uk-alert-success');\n } else {\n $('#unsubscribe-form .form-message').text(data.message).removeClass('uk-hidden').addClass('uk-alert-danger');\n }\n\n if (window.sendGAEvents) {\n gtag('event', 'UR_SP_unsubscribe_sucessfull', {\n 'event_category': 'UptimeRobot Status page',\n 'event_label': 'Successfully unsubscribed with email'\n });\n }\n if (window.sendGTM == true) {\n dataLayer.push({ 'event': 'psp-unsubscribe-ok' });\n }\n },\n error: function (error) {\n\n $(\"#unsubscribe-form button\").text('Subscribe').prop('disabled', false);\n\n var errorMessage = trans('common.try_again');\n\n if (error.responseJSON.message == \"Subscription not found\") {\n errorMessage = 'Given email address is not suscribed to this status page.';\n } else {\n Rollbar.error(\"PSP email unsubscribe error\", { error: error });\n }\n\n $('#unsubscribe-form .form-message').text(errorMessage).removeClass('uk-hidden').addClass('uk-alert-danger');\n }\n });\n\n return false;\n\n });\n\n UIkit.util.on('#unsubscribe', 'show', function () {\n $('#unsubscribe-form .form-message').text('').addClass('uk-hidden').removeClass('uk-alert-success uk-alert-danger');\n });\n\n\n});\n\n//set cookie\nfunction setCookie(cname, cvalue, exdays) {\n var d = new Date();\n d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\n var expires = \"expires=\" + d.toUTCString();\n document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/\";\n}\n\n// get cookie\nfunction getCookie(cname) {\n var name = cname + \"=\";\n var decodedCookie = decodeURIComponent(document.cookie);\n var ca = decodedCookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) == ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) == 0) {\n return c.substring(name.length, c.length);\n }\n }\n\n return null;\n}\n\n\n\n/*\n// handle recaptcha for signup form\nfunction _beforeSubmit(e) {\n e.preventDefault();\n var emailString = $('#subscribe-form input[type=\"email\"]').val();\n\n if (emailString.length > 0) {\n grecaptcha.execute();\n }\n console.log('submit button clicked.');\n // do other things before captcha validation\n // e represents reference to original form submit event\n // return true if you want to continue triggering captcha validation, otherwise return false\n return false;\n}\n*/\n\n\n// handle subscribe form\n$('#subscribe-form').on('submit', function (e) {\n\n e.preventDefault();\n\n var pspi = $('input#pspi').val();\n var emailString = $('#subscribe-form input[type=\"email\"]').val();\n var token = $('#subscribe-form input[name=\"_token\"]').val();\n //var response = grecaptcha.getResponse();\n\n $('#subscribe-form .form-message').text('').addClass('uk-hidden').removeClass('uk-alert-success uk-alert-danger uk-alert-primary');\n $(\"#subscribe-form button\").text(trans('subscribe.processing')).prop('disabled', true);\n\n $.ajax({\n type: \"POST\",\n url: $('#subscribe-form').attr('action'),\n data: {\n email: emailString,\n pspUrlKey: pspi,\n _token: token\n },\n dataType: \"json\",\n cache: false,\n success: function(data) {\n $(\"#subscribe-form button\").text(trans('subscribe.submit_button')).prop('disabled', false);\n if (data[0] == trans('subscribe.successful')) {\n $('#subscribe-form .form-message')\n .html(trans('subscribe.mail_sent'))\n .removeClass('uk-hidden')\n .addClass('uk-alert-success')\n } else {\n $('#subscribe-form .form-message').text(data[0]).removeClass('uk-hidden').addClass('uk-alert-danger')\n }\n\n if (window.sendGAEvents) {\n gtag('event', 'UR_SP_subscribe_sucessfull', {\n 'event_category': 'UptimeRobot Status page',\n 'event_label': 'Successfully subscribed with email'\n });\n }\n if (window.sendGTM == true) {\n dataLayer.push({ 'event': 'psp-subscribe-ok' });\n }\n },\n error: function (error) {\n $('#subscribe-form button').text(trans('subscribe.submit_button')).prop('disabled', false)\n\n if (error.status == 409) {\n $('#subscribe-form .form-message').text(error.responseJSON[0]).removeClass('uk-hidden').addClass('uk-alert-primary');\n } else {\n $('#subscribe-form .form-message').text(trans('subscribe.try_again')).removeClass('uk-hidden').addClass('uk-alert-danger');\n Rollbar.error(\"PSP email subscribe error\", { error: error });\n }\n }\n });\n\n return false;\n\n});\n"]}