{"version":3,"sources":["Assets/pc/scripts/GSS.portal.js"],"names":["closeSideNav","sideNavTabSelection","$","removeClass","addClass","attr","isOpen","removeAttr","each","closest","trigger","GSS","portal","urls","logout","errorContent","content","idleMonitor","extendSessionTimer","idleTime","expirationFlagEnabled","sessionExpirationId","pageActivityDetected","extendSessionMessage","settings","timerIncrementInterval","idleTimeWarning","idleTimeLogout","extendTokenInterval","setup","description","initialize","getFeatureFlag","token","common","manageInfo","ajax","type","url","cache","contentType","headers","Authorization","done","data","Enabled","Math","floor","Date","getTime","setInterval","process","document","on","registerPageActivity","formatSeconds","seconds","createBackdrop","parentElement","backdrop","createElement","className","id","prepend","body","classList","contains","add","MINUTE","HOUR","expirationTime","window","localStorage","getItem","exprDiffTime","getElementById","_session","session","_sessionItem","value","refreshTokenAsync","resetTimer","wrapElement","logoutDiffTime","diffTime","dialogElement","open","showModal","dialog","role","innerHTML","openModals","querySelectorAll","length","minutes","hours","abs","PortalContainer","extendSession","confirm","analytics","event","event_category","event_label","sessionStorage","removeItem","signOut","submit","closeModal","remove","extendToken","history","enableHistory","initialLoad","activateHistory","History","enabled","Adapter","bind","handleStateChangeEvent","replaceState","activategssHistory","gssHistory","init","changeClient","e","clientId","_curClientId","location","href","replace","signOutOption","val","modal","size","large","small","wrap","contentDiv","onHiddenFunc","_size","modalValues","container","class","tabindex","aria-labelledby","_modalContainer","unwrap","getFunction","is","hide","unWrap","setupTileResponsiveness","enquire","tiles","row","rowLength","rowLarge","i","tile","height","parseInt","getAttribute","width","setAttribute","min","push","j","t","tw","max","tileResize","el","this","register","match","logoutUrl","widgetErrorMessage","stopImpersonating","_dashboardWidgetId","getDashboardWidgetId","_data","setRequiredData","jQuery","param","append","setDefaultLanguage","_url","isoCode","currentTarget","isRedirect","redirectUrl","reload","configProgress","options","_defaults","delay","duration","message","anchor","_options","extend","ready","_$container","setPageTitle","title","PageTitlePrefix","isFeatureGSS33712On","currentUrl","urlToUse","queryString","split","queryUrlParams","URLSearchParams","decodeURIComponent","get","popover","selector","html","keyCode","which","last","shiftKey"],"mappings":"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","file":"Assets/pc/scripts/GSS.portal.min.js","sourcesContent":["/*!--------------------------------------------------------------------------\r\n// \r\n// Copyright (c) The Gallup Organization. All rights reserved.\r\n// \r\n//--------------------------------------------------------------------------*/\r\n/// \r\n/// \r\nvar GSS = GSS || {};\r\nGSS.portal = {\r\n urls: {\r\n logout: ''\r\n },\r\n errorContent: {\r\n content: ''\r\n },\r\n idleMonitor: {\r\n extendSessionTimer: 0,\r\n idleTime: 0,\r\n expirationFlagEnabled: false,\r\n sessionExpirationId: \"sessionExpiration\",\r\n pageActivityDetected: false,\r\n extendSessionMessage: \"Your session is expiring. Click OK to extend your session.\",\r\n settings: {\r\n timerIncrementInterval: 1000, // 1 minute in miliseconds\r\n idleTimeWarning: 25, //25 minutes\r\n idleTimeLogout: 29, //29 minutes\r\n extendTokenInterval: 3300 //55 minutes in seconds\r\n },\r\n setup: function (description) {\r\n GSS.portal.idleMonitor.pageActivityDetected = false;\r\n GSS.portal.idleMonitor.extendSessionMessage = description;\r\n },\r\n initialize: function () {\r\n function getFeatureFlag() {\r\n // Get an initial expiration and token information\r\n const token = GSS.common.manageInfo();\r\n\r\n return $.ajax({\r\n type: \"GET\",\r\n url: '../_Home/FeatureFlag?featureFlagName=gss-enable-session-expiration-modal-gss-33341',\r\n cache: false,\r\n contentType: \"application/json\",\r\n headers: { \"Authorization\": \"Bearer \" + token },\r\n }).done(function (data) {\r\n if (!data.Enabled) {\r\n GSS.portal.idleMonitor.settings.timerIncrementInterval = 60000;\r\n GSS.portal.idleMonitor.settings.extendTokenInterval = 5; //5 minutes\r\n } else {\r\n // Getting the actual time for idleTimeLogout\r\n // This will account for navigating away from the browser, etc.\r\n GSS.portal.idleMonitor.settings.idleTimeLogout = Math.floor(new Date().getTime() / 1000) + 1800;\r\n }\r\n\r\n GSS.portal.idleMonitor.expirationFlagEnabled = data.Enabled;\r\n setInterval(GSS.portal.idleMonitor.process, GSS.portal.idleMonitor.settings.timerIncrementInterval);\r\n });\r\n }\r\n \r\n // Initialize to a future time\r\n GSS.portal.idleMonitor.settings.idleTimeLogout = Math.floor(new Date().getTime() / 1000) + 1800;\r\n\r\n getFeatureFlag();\r\n\r\n $(document).on('click', GSS.portal.idleMonitor.registerPageActivity);\r\n $(document).on('keypress', GSS.portal.idleMonitor.registerPageActivity);\r\n },\r\n process: function () {\r\n if (GSS.portal.idleMonitor.expirationFlagEnabled) {\r\n const MINUTE = 60;\r\n const HOUR = 60 * MINUTE;\r\n\r\n function formatSeconds(seconds) {\r\n if (seconds < 10) {\r\n return \"0\" + seconds;\r\n }\r\n\r\n return seconds;\r\n }\r\n\r\n function createBackdrop(parentElement) {\r\n const backdrop = document.createElement(\"div\");\r\n backdrop.className = \"modal-backdrop fade in\";\r\n backdrop.id = \"sessionExpirationBackdrop\";\r\n\r\n parentElement.prepend(backdrop);\r\n\r\n if (!document.body.classList.contains(\"modal-open\")) {\r\n document.body.classList.add(\"modal-open\");\r\n }\r\n }\r\n\r\n // Check for page activity to see if a refresh is needed.\r\n if (GSS.portal.idleMonitor.pageActivityDetected) {\r\n GSS.portal.idleMonitor.pageActivityDetected = false;\r\n const expirationTime = window.localStorage.getItem(\"expiration\") - 300;\r\n const exprDiffTime = expirationTime - Math.floor(new Date().getTime() / 1000);\r\n \r\n if (!document.getElementById(GSS.portal.idleMonitor.sessionExpirationId)) {\r\n const _session = new GSS.common.session(true);\r\n const _sessionItem = _session.getItem(\"__client_user_data\");\r\n\r\n if (_sessionItem && _sessionItem.value) {\r\n\r\n if (exprDiffTime <= 600) {\r\n GSS.common.refreshTokenAsync();\r\n }\r\n\r\n }\r\n\r\n GSS.portal.idleMonitor.resetTimer();\r\n }\r\n }\r\n\r\n const wrapElement = document.getElementById(\"wrap\");\r\n if (wrapElement) {\r\n const logoutDiffTime = GSS.portal.idleMonitor.settings.idleTimeLogout - Math.floor(new Date().getTime() / 1000);\r\n const expirationTime = window.localStorage.getItem(\"expiration\") - 300;\r\n const exprDiffTime = expirationTime - Math.floor(new Date().getTime() / 1000);\r\n\r\n const diffTime = logoutDiffTime < exprDiffTime ? logoutDiffTime : exprDiffTime;\r\n\r\n if (diffTime <= 300 && !GSS.portal.idleMonitor.pageActivityDetected && window.localStorage.getItem(\"expiration\")) {\r\n const dialogElement = document.getElementById(GSS.portal.idleMonitor.sessionExpirationId);\r\n\r\n if (!dialogElement) {\r\n const dialog = document.createElement(\"dialog\");\r\n dialog.className = \"c-well__no-border\";\r\n dialog.id = GSS.portal.idleMonitor.sessionExpirationId;\r\n dialog.role = \"alertDialog\";\r\n\r\n dialog.innerHTML =\r\n \"\";\r\n \r\n const openModals = document.querySelectorAll(\".fade.in\");\r\n \r\n if (openModals.length > 0) {\r\n openModals[0].prepend(dialog);\r\n } else {\r\n wrapElement.prepend(dialog);\r\n createBackdrop(wrapElement);\r\n }\r\n\r\n dialog.showModal();\r\n } else if (dialogElement && !dialogElement.open) {\r\n dialogElement.showModal();\r\n createBackdrop(wrapElement);\r\n }\r\n }\r\n\r\n const body = document.getElementById(\"sessionExpirationBody\");\r\n if (window.localStorage.getItem(\"expiration\") && body && diffTime < GSS.portal.idleMonitor.settings.extendTokenInterval) {\r\n var seconds = 0;\r\n var minutes = 0;\r\n var hours = 0;\r\n\r\n // Manage the time otherwise if the session has expired, otherwise logout.\r\n if (diffTime > 0) {\r\n seconds = Math.floor((Math.abs(diffTime)) % 60);\r\n minutes = Math.floor((Math.abs(diffTime) / MINUTE) % 60);\r\n hours = Math.floor((Math.abs(diffTime) / HOUR) % 60);\r\n } else {\r\n GSS.portal.idleMonitor.logout();\r\n }\r\n\r\n body.innerHTML = GSS.portal.idleMonitor.extendSessionMessage + \"\" + \" \" + hours * 60 + minutes + \":\" + formatSeconds(seconds) + \"\";\r\n }\r\n }\r\n } else {\r\n GSS.portal.idleMonitor.extendSessionTimer = GSS.portal.idleMonitor.extendSessionTimer + 1;\r\n if (GSS.portal.idleMonitor.pageActivityDetected) {\r\n if (GSS.portal.idleMonitor.extendSessionTimer >= GSS.portal.idleMonitor.settings.extendTokenInterval) {\r\n GSS.PortalContainer.extendSession();\r\n GSS.portal.idleMonitor.resetTimer();\r\n GSS.portal.idleMonitor.pageActivityDetected = false;\r\n }\r\n } else {\r\n GSS.portal.idleMonitor.idleTime = GSS.portal.idleMonitor.idleTime + 1;\r\n if (GSS.portal.idleMonitor.idleTime >= GSS.portal.idleMonitor.settings.idleTimeLogout) {\r\n GSS.portal.idleMonitor.logout();\r\n }\r\n\r\n if (GSS.portal.idleMonitor.idleTime == GSS.portal.idleMonitor.settings.idleTimeWarning) {\r\n if (window.confirm(GSS.portal.idleMonitor.extendSessionMessage)) {\r\n if (typeof GSS.analytics !== 'undefined') {\r\n GSS.analytics.event(\"button_click\", { event_category: \"session_alert\", event_label: \"OK\" });\r\n }\r\n\r\n GSS.portal.idleMonitor.resetTimer();\r\n GSS.PortalContainer.extendSession();\r\n } else {\r\n GSS.portal.idleMonitor.logout();\r\n }\r\n }\r\n }\r\n }\r\n },\r\n resetTimer: function () {\r\n if (GSS.portal.idleMonitor.expirationFlagEnabled) {\r\n GSS.portal.idleMonitor.settings.idleTimeLogout = Math.floor(new Date().getTime() / 1000) + 1800;\r\n }\r\n\r\n GSS.portal.idleMonitor.idleTime = 0;\r\n GSS.portal.idleMonitor.extendSessionTimer = 0;\r\n },\r\n registerPageActivity: function () {\r\n GSS.portal.idleMonitor.pageActivityDetected = true;\r\n },\r\n logout: function () {\r\n if (GSS.portal.idleMonitor.expirationFlagEnabled) {\r\n sessionStorage.removeItem(\"__client_user_data\");\r\n window.localStorage.removeItem(\"expiration\");\r\n }\r\n\r\n const signOut = document.getElementById(\"signOut\");\r\n GSS.portal.idleMonitor.resetTimer();\r\n\r\n if (signOut && signOut.parentElement) {\r\n signOut.parentElement.submit();\r\n } else {\r\n GSS.portal.logout();\r\n }\r\n \r\n },\r\n closeModal: function() {\r\n GSS.portal.idleMonitor.pageActivityDetected = false;\r\n GSS.portal.idleMonitor.resetTimer();\r\n const backdrop = document.getElementById(\"sessionExpirationBackdrop\");\r\n const dialog = document.getElementById(GSS.portal.idleMonitor.sessionExpirationId);\r\n\r\n // Checking for other open modals, and only removing backdrop \r\n // and scroll bar disable if session expiration is the only modal open\r\n const openModals = document.querySelectorAll(\".fade.in\");\r\n\r\n if (document.body.classList.contains(\"modal-open\") && openModals.length <= 1) {\r\n document.body.classList.remove(\"modal-open\");\r\n }\r\n\r\n if (backdrop && openModals.length <= 1) {\r\n backdrop.remove();\r\n }\r\n\r\n if (dialog) {\r\n dialog.remove();\r\n }\r\n },\r\n extendToken: function() {\r\n GSS.portal.idleMonitor.closeModal();\r\n\r\n if (typeof GSS.analytics !== 'undefined') {\r\n GSS.analytics.event(\"button_click\", { event_category: \"session_alert\", event_label: \"OK\" });\r\n }\r\n\r\n GSS.common.refreshTokenAsync();\r\n }\r\n },\r\n history: {\r\n enableHistory: false,\r\n initialLoad: null,\r\n activateHistory: function () {\r\n // Add event handlers for history.\r\n if (window.History.enabled) {\r\n GSS.portal.history.enableHistory = true;\r\n GSS.portal.history.initialLoad = true;\r\n window.History.Adapter.bind(window, 'statechange', GSS.PortalContainer.History.handleStateChangeEvent); // handles back button\r\n GSS.PortalContainer.History.replaceState(); // captures initial load of full app to store instance in history\r\n\r\n // TODO: Enable page refresh handler\r\n //$(window).on('beforeunload', GSS.PortalContainer.handleBeforeUnloadEvent); // handles page refresh\r\n }\r\n },\r\n activategssHistory: function () {\r\n if (window.History.enabled) {\r\n GSS.gssHistory.init();\r\n }\r\n }\r\n },\r\n changeClient: function (e, clientId) {\r\n // Changes the client in the url.\r\n // The event.\r\n // The new client id value.\r\n var _curClientId = $('[data-gss-clientid]').attr('data-gss-clientid');\r\n window.location.href = window.location.href.replace(\"gssClientId=\" + _curClientId, \"gssClientId=\" + clientId);\r\n \r\n },\r\n logout: function (e) {\r\n // Logs the user out.\r\n var signOutOption = $('#signOut');\r\n if (signOutOption.val()) {\r\n signOutOption.trigger('click');\r\n }\r\n },\r\n modal: {\r\n size: {\r\n large: 'modal-lg',\r\n small: 'modal-sm',\r\n },\r\n wrap: function (contentDiv, size, onHiddenFunc) {\r\n // Wrap the modal window to the content div.\r\n // The content within a div\r\n // The size of the modal window\r\n // The function is called after the window hides\r\n\r\n // Set the size of the modal window\r\n var _size = size || GSS.portal.modal.size.large;\r\n\r\n // Wrap the content with modal divs\r\n $(contentDiv).wrap($('
', {\r\n 'id': GSS.PortalContainer.modalValues.container,\r\n 'class': 'modal fade in',\r\n 'tabindex': -1,\r\n 'role': 'dialog',\r\n 'aria-labelledby': GSS.PortalContainer.modalValues.container\r\n }))\r\n .wrap($('
', { 'class': 'modal-dialog ' + _size }))\r\n .wrap($('
', { 'class': 'modal-content' }));\r\n\r\n // Find the modal container and show the modal window\r\n var _modalContainer = $(contentDiv).closest('#' + GSS.PortalContainer.modalValues.container);\r\n _modalContainer.modal('show');\r\n\r\n // Add the onHiddenFunc to on hidden event\r\n $(_modalContainer).on('hidden.bs.modal', function () {\r\n $(contentDiv).unwrap().unwrap().unwrap();\r\n\r\n // If there is a onHiddenFunc defined, then call the onHiddenFunc,\r\n // otherwise just hide the content div\r\n if (onHiddenFunc) {\r\n if (typeof (onHiddenFunc) === \"function\") {\r\n onHiddenFunc();\r\n }\r\n else if (typeof (onHiddenFunc) === \"string\") {\r\n GSS.common.getFunction(onHiddenFunc());\r\n }\r\n } else {\r\n if ($(contentDiv).is('.show')) {\r\n $(contentDiv).removeClass('show').addClass('hidden').hide();\r\n }\r\n }\r\n });\r\n\r\n return contentDiv;\r\n },\r\n unWrap: function (contentDiv) {\r\n // Hide the modal window of the content div.\r\n // The content within a div wrapped with modal window\r\n var _modalContainer = $(contentDiv).closest('#' + GSS.PortalContainer.modalValues.container);\r\n _modalContainer.modal('hide');\r\n },\r\n },\r\n setupTileResponsiveness: function (document, $, enquire) {\r\n \"use strict\";\r\n // Sets up logic for tile resizing on different viewports.\r\n // Global document scope.\r\n // jQuery instance\r\n // enquire instance\r\n var tiles = document.querySelectorAll(\"#dashtile-container > .gss-tile\");\r\n if (!tiles.length) {\r\n return;\r\n }\r\n\r\n var row = [];\r\n var rowLength = 0; // Current total width of tiles in the row\r\n var rowLarge = 0; // The number of rows that are reduced due to a tall tile\r\n\r\n for (var i = 0; i < tiles.length; i++) {\r\n var tile = tiles[i];\r\n var height = parseInt(tile.getAttribute(\"data-gss-widget-height\"));\r\n var width = parseInt(tile.getAttribute(\"data-gss-widget-width\"));\r\n // Put the tiles into rows based on their width and a max per row of 3\r\n // TODO: Support for half sizes?\r\n rowLength += width;\r\n\r\n // Store the original tile size\r\n $(tile).addClass(\"gss-tile-x\" + (width * 10));\r\n // All tiles are sized 10 when in 1 column mode\r\n tile.setAttribute(\"data-tile-x-sm\", 10);\r\n // Until we know otherwise, set 2 and 3 col modes to default configured sized\r\n tile.setAttribute(\"data-tile-x-md\", (Math.min(2, width) * 10));\r\n tile.setAttribute(\"data-tile-x-default\", (width * 10));\r\n\r\n // Add the tile to this row if there is room for it\r\n if (rowLength + rowLarge <= 3) {\r\n row.push(tile);\r\n\r\n // The next row spaces should be reduced by tall tiles\r\n if (height > 1) {\r\n rowLarge += height;\r\n }\r\n } else {\r\n // There's no more room - do the existing items need to stretch?\r\n if (row.length === 1) {\r\n // We have no room after one tile? What do we do about that?\r\n } else if (row.length === 2) {\r\n for (var j = 0; j < row.length; j++) {\r\n var t = row[j];\r\n var tw = parseInt(t.getAttribute(\"data-gss-widget-width\"));\r\n // one of the items is 2 wide by default, make it 1 in medium view\r\n if (tw == 2) {\r\n t.setAttribute(\"data-tile-x-sm\", 10);\r\n }\r\n if (j === 1 && tw === 1) {\r\n // If we don't want to leave a gap, we could do this:\r\n // We have two tiles only on this row, make this one double-width on desktop\r\n //t.setAttribute(\"data-tile-x-default\", 20);\r\n }\r\n }\r\n } else if (row.length === 3) {\r\n // The first item in a three column, three item row\r\n // becomes two wide.\r\n row[0].setAttribute(\"data-tile-x-md\", 20);\r\n }\r\n // Not enough space, make a new row\r\n row = [tile];\r\n rowLength = width;\r\n rowLarge = Math.max(0, rowLarge - 1);\r\n }\r\n\r\n // If our last row was three tiles, tweak the first in that row\r\n if (row.length === 3) {\r\n // The first item in a three column, three item row\r\n // becomes two wide.\r\n row[0].setAttribute(\"data-tile-x-md\", 20);\r\n }\r\n }\r\n\r\n var tileResize = function (size) {\r\n $(\".gss-tile\").each(function () {\r\n var el = $(this);\r\n // Remove current sizing classes, add the one for this particular screen size\r\n el.removeClass(\"gss-tile-sized-x10\");\r\n el.removeClass(\"gss-tile-sized-x20\");\r\n el.removeClass(\"gss-tile-sized-x30\");\r\n el.addClass(\"gss-tile-sized-x\" + el.data(\"tile-x-\" + size));\r\n });\r\n }\r\n\r\n // When in non-desktop modes, add the gss-tile-sized classes.\r\n // Two columns viewport is 832px wide, Three is 1247px\r\n enquire.register(\"screen and (max-width: 831px)\", {\r\n match: function () {\r\n return tileResize(\"sm\");\r\n }\r\n });\r\n enquire.register(\"screen and (max-width: 1247px) and (min-width: 832px)\", {\r\n match: function () {\r\n return tileResize(\"md\");\r\n }\r\n });\r\n enquire.register(\"screen and (min-width: 1248px)\", {\r\n match: function () {\r\n return tileResize(\"default\");\r\n }\r\n }, true); // Browsers that can't tell us their media queries are always shown as 3 column\r\n },\r\n setup: function (logoutUrl, widgetErrorMessage) {\r\n // Sets the needed properties for the portal to function.\r\n // The logout url.\r\n GSS.portal.urls.logout = logoutUrl;\r\n\r\n // Set the error message to show in the widget in error status.\r\n GSS.portal.errorContent.content = widgetErrorMessage;\r\n },\r\n\r\n stopImpersonating: function (el, e) {\r\n var _dashboardWidgetId = PortalContainer.getDashboardWidgetId(el);\r\n var _data = {};\r\n\r\n _data = PortalContainer.setRequiredData(_dashboardWidgetId, _data);\r\n $.ajax({ type: 'POST', url: '../_Account/StopImpersonating', data: jQuery.param(_data), cache: false })\r\n .done(function (data) {\r\n if (data) {\r\n $('body').append(data);\r\n }\r\n });\r\n },\r\n\r\n setDefaultLanguage: function (e) {\r\n var _data = { isoCode: e.currentTarget.getAttribute('gss-data-language-selection-dropdown') };\r\n var _url;\r\n if (e.currentTarget.getAttribute('gss-data-from-landing')) {\r\n _url = window.location + '/_Home/SetLanguage';\r\n }\r\n else {\r\n _url = '../_Home/SetLanguage'\r\n }\r\n\r\n $.ajax({ type: 'POST', url: _url, data: jQuery.param(_data), cache: false })\r\n .done(function (data) {\r\n if (data.isRedirect) {\r\n window.location.href = data.redirectUrl;\r\n }\r\n else {\r\n location.reload();\r\n }\r\n });\r\n },\r\n\r\n configProgress: function (options) {\r\n var _defaults = {\r\n delay: 500,\r\n duration: 3000,\r\n message: 'Please wait while your data is loaded.',\r\n anchor: '#wrap',\r\n };\r\n var _options = $.extend({}, _defaults, options);\r\n\r\n $(document).ready(function () {\r\n var _$container = $(_options.anchor);\r\n if (_$container.length > 0) {\r\n _$container.data('message', _options.message);\r\n _$container.data('delay', _options.delay);\r\n _$container.data('duration', _options.duration);\r\n }\r\n });\r\n },\r\n\r\n setPageTitle: function (title) {\r\n if (title) {\r\n document.title = title + \" \" + GSS.PageTitlePrefix;\r\n }\r\n },\r\n}\r\n\r\n// Dynamic event binding\r\n$(document).on('click', 'li[gss-data-language-selection-dropdown]', GSS.portal.setDefaultLanguage);\r\n\r\n$(document).ready(function () {\r\n \r\n const isFeatureGSS33712On = $('#persistLastSelectedClientIdFeatureOn').val();\r\n if (isFeatureGSS33712On) { \r\n const currentUrl = $('a#navbarbrand').attr('href');\r\n if (currentUrl) {\r\n\r\n const urlToUse = sessionStorage.getItem('homeUrl');\r\n if (urlToUse) {\r\n // get the query string of current url and query the url params.\r\n const queryString = currentUrl.split('?')[1] || '';\r\n const queryUrlParams = new URLSearchParams(queryString ? decodeURIComponent(queryString) : '');\r\n\r\n // If there is a valid URL to use, and if the current url is empty with no client id parameter then use the session stored url.\r\n if (!queryUrlParams.get('gssClientId')) {\r\n $('#navbarbrand').attr('href', urlToUse);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n var signOutOption = $(\"#signOut\");\r\n if (signOutOption.val()) {\r\n GSS.portal.idleMonitor.initialize();\r\n }\r\n $('.c-sidenav__link').each(function () { $('.c-sidenav__link').attr('tabindex', -1); });\r\n});\r\n\r\n// help text popover binding\r\n$(document).popover({\r\n selector: '[data-help-icon=\"popover\"]',\r\n container: 'body',\r\n trigger: 'focus',\r\n html: true\r\n});\r\n//Check if Side Menu expanded on Language DropDown\r\n$(document).on('click', 'a[data-language-anchor=\"\"]', function (e) { if ($('#btc-sidenav').attr('aria-expanded') === 'true') { sideNavTabSelection(true); } });\r\n//Check if Side Menu expanded UerClient DropDown\r\n$(document).on('click', 'a[data-userclient-anchor=\"\"]', function (e) { if ($('#btc-sidenav').attr('aria-expanded') === 'true') { sideNavTabSelection(true); } });\r\n//Check if Side Menu expanded on CartNav\r\n$(document).on('click', 'a[data-gss-name=\"cartNav\"]', function (e) { if ($('#btc-sidenav').attr('aria-expanded') === 'true') { sideNavTabSelection(true); } });\r\n//Check if Side Menu expanded on User Login DropDown\r\n$(document).on('click', 'a[data-userlogin-anchor=\"\"]', function (e) { if ($('#btc-sidenav').attr('aria-expanded') === 'true') { sideNavTabSelection(true); } });\r\nfunction closeSideNav() {\r\n sideNavTabSelection(true);\r\n $('#btc-sidenav').removeClass('c-sidenav__toggle hidden-mobile-nav');\r\n $('#btc-sidenav').addClass('c-sidenav__toggle hidden-mobile-nav collapsed');\r\n $('#btc-sidenav').attr('aria-expanded', 'false');\r\n $('#c-sidenav').removeClass('c-sidenav visible-desktop-nav collapse in');\r\n $('#c-sidenav').addClass('c-sidenav visible-desktop-nav collapse');\r\n $('#c-sidenav').attr('aria-expanded', 'false');\r\n $('#c-sidenav').attr('aria-expanded', 'false');\r\n}\r\n//Click event setting the Tabindexing for the Side Nav Menu\r\n$(document).on('click', 'button[data-nav-button=\"\"]', function (e) {\r\n if ($('#btc-sidenav').attr('aria-expanded') === 'true') { sideNavTabSelection(false); }\r\n else { sideNavTabSelection(true); }\r\n});\r\n// fuction that sets the tabindex\r\nfunction sideNavTabSelection(isOpen) {\r\n if (isOpen) {\r\n $(\"#navbarbrand\").removeAttr('tabindex');\r\n $('a[data-gss-name=\"cartNav\"]').removeAttr('tabindex');\r\n $('a[data-gss-name=\"bellNotificationNav\"]').removeAttr('tabindex');\r\n $('a[data-userlogin-anchor=\"\"]').each(function () { $('a[data-userlogin-anchor=\"\"]').removeAttr('tabindex'); });\r\n $('a[data-language-anchor=\"\"]').each(function () { $('a[data-language-anchor=\"\"]').removeAttr('tabindex'); });\r\n $('a[data-userclient-anchor=\"\"]').each(function () { $('a[data-userclient-anchor=\"\"]').removeAttr('tabindex'); });\r\n $('.c-sidenav__link').each(function () { $('.c-sidenav__link').attr('tabindex', -1); });\r\n }\r\n else {\r\n $('a[data-language-anchor=\"\"]').each(function () { $('a[data-language-anchor=\"\"]').attr('tabindex', -1); });\r\n $('a[data-userclient-anchor=\"\"]').each(function () { $('a[data-userclient-anchor=\"\"]').attr('tabindex', -1); });\r\n $('a[data-userlogin-anchor=\"\"]').each(function () { $('a[data-userlogin-anchor=\"\"]').attr('tabindex', -1); });\r\n $(\"#navbarbrand\").attr('tabindex', -1);\r\n $('a[data-gss-name=\"cartNav\"]').attr('tabindex', -1);\r\n $('a[data-gss-name=\"bellNotificationNav\"]').attr('tabindex', -1);\r\n $('#c-sidenav').closest('a').trigger('focus');\r\n $('.c-sidenav__link').each(function () { $('.c-sidenav__link').attr('tabindex', 0); });\r\n }\r\n}\r\n//Check Keyup event for Excape,Enter Space bar and TAb\r\n$(document).on('keyup', function (e) {\r\n\r\n //escape key and if focus is on side nav button or side mav menu\r\n if (e.keyCode == 27 || e.which === 27) {\r\n //If focus is on the nav menu\r\n if (($('#btc-sidenav').attr('aria-expanded') === 'true') && $('#c-sidenav').is(':focus')) { closeSideNav(); $('#btc-sidenav').trigger('focus'); }\r\n //If focus is on an anchor in the nav menu\r\n else if (($('#btc-sidenav').attr('aria-expanded') === 'true') && $('.c-sidenav__link').is(':focus')) { closeSideNav(); $('#btc-sidenav').trigger('focus'); }\r\n else { if ($('#btc-sidenav').attr('aria-expanded') === 'true') { closeSideNav(); } }\r\n }\r\n //enter key\r\n if (e.keyCode === 13 || e.which === 13) { if ($('#btc-sidenav').attr('aria-expanded') === 'false' && $('#btc-sidenav').is(':focus')) { sideNavTabSelection(false); } }\r\n //space bar\r\n if (e.keyCode === 32 || e.which === 32) { if ($('#btc-sidenav').attr('aria-expanded') === 'false' && $('#btc-sidenav').is(':focus')) { sideNavTabSelection(false); } }\r\n \r\n});\r\n\r\n//Check Keydown event for Tab\r\n$('.c-sidenav').on('keydown', function (e) {\r\n if (e.keyCode === 9 ) {\r\n //tabing out of the last anchor\r\n if ($('.c-sidenav__link').last().is(':focus')) {\r\n $('#btc-sidenav').trigger('focus');\r\n }\r\n \r\n }\r\n if (e.which === 9 && e.shiftKey) {\r\n if ($('#btc-sidenav').is(':focus') && $('#btc-sidenav').attr('aria-expanded') === 'true') {\r\n $('.c-sidenav__link').last().trigger('focus');\r\n }\r\n }\r\n});\r\n\r\n/// suppress the side nav tabing when he page is loaded\r\n$(document).on('load', function (e) {\r\n $('.c-sidenav__link').each(function () { $('.c-sidenav__link').attr('tabindex', -1); });\r\n});\r\n"],"sourceRoot":"/source/"}