{"version":3,"sources":["Pages/Global.js"],"names":["isUserLoggedIn","getAlertMessage","key","alertContainer","store","get","message","extendedMessage","$","extend","alertClass","alert","title","alertMessage","append","appendTo","remove","postAsJson","url","data","success","error","ajax","type","dataType","contentType","postAsForm","path","params","method","form","document","createElement","setAttribute","requestVerificationTokenField","Cookies","appendChild","hasOwnProperty","hiddenField","body","submit","tagUserAccount","userAccountId","isTagged","callback","JSON","stringify","getFilterParams","value","Array","isArray","join","param","getQueryStringParameterByName","name","replace","toLowerCase","results","RegExp","exec","location","search","decodeURIComponent","Date","now","loadingCount","registerPopovers","popover","on","popoverClasses","this","tip","addClass","registerAjaxEvents","ajaxError","event","jqxhr","settings","exception","ajaxSetup","headers","RequestVerificationToken","beforeSend","jqXHR","completeEvents","push","textStatus","hideLoadingSpinner","complete","each","ev","showLoadingSpinner","cache","removeClass","show","hide","introJsAfterCurrentStepAction","pageGuidedHelp","pageHelpHints","startPageHelp","guidedHelp","length","i","userStatus","userGuidedHelp","guidedHelpKey","hasUserCompleted","hasUserDismissed","startIntroJs","introJs","currentStep","helpLink","click","modal","onchange","targetElement","_currentStep","_options","steps","beforeAction","afterAction","console","log","guidedHelpPageKey","oncomplete","onexit","setOptions","exitOnOverlayClick","start","goToStep","getCommaSepString","selector","obj","val","setDefaultListPageFilters","setDefaultBtn","filters","listPageKey","defaultListPageFilters","result","find","stringToBool","string","undefined","valid","validate","pendingRequest","prop","e","pageHintsIntroJs","hints","addHints","not","focus","fn","dataTable","defaults","responsive","highContrastCookie","set","post","window","reload","exists"],"mappings":"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","file":"Global.min.js","sourcesContent":["var isUserLoggedIn;\n\nDate.now = Date.now || function () { return +new Date; }; //IE8 Compatibility\n\n//Helper methods\nfunction getAlertMessage(key, alertContainer) {\n if (store.get(key)) {\n var message = store.get(key);\n var defaults = {\n alertClass: 'alert-success'\n };\n var extendedMessage = $.extend(true, {}, defaults, message);\n\n var alert = $('
' + extendedMessage.alertMessage + '
');\n }\n alert.appendTo(alertContainer || '#alertContainer');\n store.remove(key);\n }\n}\n\nfunction postAsJson(url, data, success, error) {\n $.ajax({\n url: url,\n type: \"POST\",\n dataType: \"json\", // expected format for response\n contentType: \"application/json\", // send as JSON\n data: data,\n success: success,\n error: error\n });\n}\n\n// create a form on the page and post it via a normal browser submit\nfunction postAsForm(path, params, method) {\n method = method || \"post\"; // Set method to post by default if not specified.\n\n // The rest of this code assumes you are not using a library.\n // It can be made less wordy if you use one.\n var form = document.createElement(\"form\");\n form.setAttribute(\"method\", method);\n form.setAttribute(\"action\", path);\n\n var requestVerificationTokenField = document.createElement(\"input\");\n requestVerificationTokenField.setAttribute(\"type\", \"hidden\");\n requestVerificationTokenField.setAttribute(\"name\", \"__RequestVerificationToken\");\n requestVerificationTokenField.setAttribute(\"value\", Cookies.get('CSRF-TOKEN'));\n\n form.appendChild(requestVerificationTokenField);\n\n for (var key in params) {\n if (params.hasOwnProperty(key)) {\n var hiddenField = document.createElement(\"input\");\n hiddenField.setAttribute(\"type\", \"hidden\");\n hiddenField.setAttribute(\"name\", key);\n hiddenField.setAttribute(\"value\", params[key]);\n\n form.appendChild(hiddenField);\n }\n }\n\n document.body.appendChild(form);\n form.submit();\n}\n\nfunction tagUserAccount(userAccountId, isTagged, callback) {\n postAsJson('/api/Admin/UserAccountTag/' + userAccountId, JSON.stringify({ isTagged: isTagged }), function (success) {\n if (success) {\n if (callback) {\n callback();\n }\n }\n });\n}\n\nfunction getFilterParams(data) {\n for (key in data) {\n var value = data[key];\n if (value == null || value == \"\") {\n delete data[key];\n }\n else if (Array.isArray(data[key])) {\n data[key] = data[key].join(\",\");\n }\n }\n\n var params = $.param(data);\n\n if (params) {\n return '?' + params;\n }\n\n return '?clear=true';\n}\n\nfunction getQueryStringParameterByName(name) {\n name = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\").toLowerCase();\n\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=([^]*)\"), results = regex.exec(location.search.toLowerCase());\n\n return results === null ? \"\" : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\n}\n\nvar loadingCount = 0;\n\nfunction registerPopovers() {\n //Show popover tooltips\n $('.popoverHelp').popover({\n title: ' Help'\n }).on(\"show.bs.popover\", function () {\n var popoverClasses = $(this).data('popoverClasses');\n if (popoverClasses) {\n $(this).data(\"bs.popover\").tip().addClass(popoverClasses);\n }\n });\n}\n\nfunction registerAjaxEvents() {\n $(document).ajaxError(function (event, jqxhr, settings, exception) {\n try {\n }\n catch (err) {\n //Do nothing. We don't want this to throw another error and cause issues with the app\n }\n });\n\n $.ajaxSetup({\n headers: {\n RequestVerificationToken: Cookies.get('CSRF-TOKEN'),\n },\n beforeSend: function (jqXHR, settings) {\n loadingCount++;\n\n var completeEvents = [];\n\n completeEvents.push(function (jqXHR, textStatus) {\n loadingCount--;\n if (loadingCount <= 0) {\n // hide gif here\n hideLoadingSpinner();\n }\n });\n\n if (settings.complete) {\n if ($.isArray(settings.complete)) {\n $.each(settings.complete, function (ev) {\n completeEvents.push(ev);\n });\n }\n else {\n completeEvents.push(settings.complete);\n }\n }\n\n settings.complete = completeEvents;\n\n // show gif here\n showLoadingSpinner();\n },\n cache: false //prevent caching in internet explorer\n });\n}\n\nfunction showLoadingSpinner() {\n $(\"#loading\").removeClass('hide');\n $(\"#loading\").show();\n}\n\nfunction hideLoadingSpinner() {\n $(\"#loading\").addClass('hide');\n $(\"#loading\").hide();\n}\n\nvar pageGuidedHelp = [];\nvar pageHelpHints = [];\nvar introJsAfterCurrentStepAction;\n\n// This should be called from each page once all the guided help is registered in the pageGuidedHelp array\nfunction startPageHelp() {\n var guidedHelp;\n\n if (pageGuidedHelp.length > 0) {\n for (var i = 0; i < pageGuidedHelp.length; i++) {\n guidedHelp = pageGuidedHelp[i];\n\n // Check to see if the user has already completed this guided help.\n var userStatus = userGuidedHelp[guidedHelp.guidedHelpKey];\n\n if (userStatus != null) {\n // If the user has started the help but not completed then start it at the latest step. Other wise skip the help if they have completed\n if (userStatus.hasUserCompleted || userStatus.hasUserDismissed) {\n continue;\n }\n else {\n startIntroJs(guidedHelp, guidedHelp.introJs, userStatus.currentStep);\n break;\n }\n }\n else {\n // If the user hasn't started the help then start it and log the first step as completed\n startIntroJs(guidedHelp, guidedHelp.introJs);\n break;\n }\n }\n }\n\n // Add a link to each guided help to the help modal container\n for (i = 0; i < pageGuidedHelp.length; i++) {\n guidedHelp = pageGuidedHelp[i];\n\n var helpLink = $('' + guidedHelp.title + '');\n\n helpLink.click(function () {\n $(\"#publicHelpModal\").modal('hide');\n\n startIntroJs(guidedHelp, guidedHelp.introJs);\n });\n\n helpLink.appendTo(\"#guidedHelpContainer\");\n }\n\n if (pageGuidedHelp.length > 0) {\n $(\"#guidedHelpContainer\").removeClass('hidden');\n }\n\n if (pageHelpHints.length > 0) {\n $(\"#showPageHints\").removeClass('hidden');\n }\n}\n\nfunction startIntroJs(guidedHelp, introJs, currentStep) {\n introJs.onchange(function (targetElement) {\n var currentStep = this._currentStep; // this is the introJs object in this scope\n\n if (typeof introJsAfterCurrentStepAction === 'function') {\n introJsAfterCurrentStepAction();\n introJsAfterCurrentStepAction = null;\n }\n\n if (typeof this._options.steps[currentStep].beforeAction === 'function') {\n this._options.steps[currentStep].beforeAction();\n }\n\n if (typeof this._options.steps[currentStep].afterAction === 'function') {\n introJsAfterCurrentStepAction = this._options.steps[currentStep].afterAction;\n }\n\n console.log('current step is ' + currentStep);\n postAsJson('/GuidedHelpCompletedStep/' + userGuidedHelp.guidedHelpPageKey + '/' + guidedHelp.guidedHelpKey + '/' + (currentStep + 1));\n });\n\n introJs.oncomplete(function () {\n if (typeof introJsAfterCurrentStepAction === 'function') {\n introJsAfterCurrentStepAction();\n introJsAfterCurrentStepAction = null;\n }\n\n introJs.onexit(function () { }); //don't dismiss on exit once completed\n postAsJson('/GuidedHelpCompleted/' + userGuidedHelp.guidedHelpPageKey + '/' + guidedHelp.guidedHelpKey);\n });\n\n introJs.onexit(function () {\n if (typeof introJsAfterCurrentStepAction === 'function') {\n introJsAfterCurrentStepAction();\n introJsAfterCurrentStepAction = null;\n }\n\n postAsJson('/GuidedHelpDismissed/' + userGuidedHelp.guidedHelpPageKey + '/' + guidedHelp.guidedHelpKey);\n });\n\n introJs.setOptions({\n exitOnOverlayClick: false\n });\n\n introJs.start();\n\n if (typeof currentStep !== 'undefined') {\n introJs.goToStep(currentStep);\n }\n}\n\n\nfunction getCommaSepString(selector) {\n var obj = $(selector);\n if (obj && obj.val()) {\n var length = obj.length;\n if (length > 0) {\n if (Array.isArray(obj.val())) {\n return obj.val().join();\n }\n if (length === 1) {\n return obj.val();\n }\n else {\n return obj.val().join();\n }\n }\n }\n\n return null;\n}\n\nfunction setDefaultListPageFilters(setDefaultBtn, filters) {\n var listPageKey = setDefaultBtn.data('listPageKey');\n\n var data = {\n listPageKey: listPageKey,\n defaultListPageFilters: JSON.stringify(filters, (key, value) => {\n if (value !== null) {\n return value\n }\n })\n }\n\n postAsJson('/api/Admin/SetDefaultListPageFilters', JSON.stringify(data), function (result) {\n if (result.success) {\n setDefaultBtn.find('i.fa').removeClass('fa-star-o').addClass('fa-star');\n }\n });\n}\n\nfunction stringToBool(string) {\n if (string === 'False' || string === 'false' || string === 'undefined' || string === 'null' || string === '0' || string === 'off' || string === '' || string === false || string === undefined) {\n return false;\n }\n\n return true;\n}\n\n$(function ($) {\n registerPopovers();\n\n registerAjaxEvents();\n\n //Prevents a double click on form submits\n $('form').submit(function () {\n //**Need to check to make sure there isn't a pending request here. If using remote validation valid will return true\n //if the api call hasn't came back yet. JE 5/11/2018\n if (!$(this).valid || ($(this).valid() && $(this).validate().pendingRequest === 0)) { //Added check.. valid() will fail on pages that do not include jquery validation js - STH 04/13/2017\n $(this).find(':submit').prop('disabled', true);\n\n //Used when the form is submitted through jQuery\n $('.saveButton').addClass('disabled');\n }\n });\n\n $('#showPageHints').click(function (e) {\n $(\"#publicHelpModal\").modal('hide');\n\n if (pageHelpHints.length > 0) {\n pageHintsIntroJs = new introJs();\n\n pageHintsIntroJs.setOptions({\n hints: pageHelpHints\n });\n\n pageHintsIntroJs.addHints();\n }\n });\n\n //Ensure submit button, disabled on submit, is re-enabled\n $(\".modal\").on('shown.bs.modal', function () {\n $(this).find(':submit').not('.deleteConfirmButton').prop('disabled', false);\n $(this).find('.saveButton').not('.deleteConfirmButton').removeClass('disabled');\n $(this).find('.disabled').not('.deleteConfirmButton').not('.excludeFromReEnable').removeClass('disabled');\n $(this).find('[autofocus]').focus();\n });\n\n $('.saveButton').click(function () {\n $(this).addClass('disabled');\n });\n\n if (typeof ($.fn.dataTable) === 'function') {\n $.extend($.fn.dataTable.defaults, {\n responsive: true\n });\n }\n\n //High Contrast Mode\n $(\"#highContrastToggle\").click(function () {\n var highContrastCookie = Cookies.get('HighContrast');\n if (isUserLoggedIn) {\n Cookies.set('HighContrast', 'Off');\n $.post('/api/Home/UpdateUserAccountContrastSetting', null, function (success) {\n if (success) {\n window.location.reload();\n }\n });\n }\n else {\n if (highContrastCookie == null) {\n Cookies.set('HighContrast', 'On');\n window.location.reload();\n }\n else if (highContrastCookie == 'On') {\n Cookies.set('HighContrast', 'Off');\n window.location.reload();\n }\n else if (highContrastCookie == 'Off') {\n Cookies.set('HighContrast', 'On');\n window.location.reload();\n }\n }\n });\n});\n\n$.fn.exists = function () {\n return this.length !== 0;\n}\n"]}