{"version":3,"file":"inactivityMonitor-4c658ebbd8.js","sources":["inactivityMonitor-4c658ebbd8.js"],"sourcesContent":["import { display } from \"./inactivityPrompt.js\";\r\nimport { cookieValue } from \"./utilities.js\";\r\n\r\nconst inactivityCookieName = 'stInactivity';\r\nconst logOutUrl = '/account/logout?timeOut=true';\r\nconst lastActivityKey = 'lastActivityTime';\r\nconst broadcastChannelName = 'inactivityBroadcastChannel';\r\nconst promptBroadcastKey = 'promptBroadcast';\r\nconst logOutBroadcastKey = 'logOutBroadcast';\r\n\r\nconst promptPeriodMinutes = cookieValue(inactivityCookieName);\r\nconst logOutPeriodMinutes = 0.5;\r\n\r\nconst minutesToMiliseconds = (minutes) => minutes * 60 * 1000;\r\nconst promptPeriodMiliseconds = minutesToMiliseconds(promptPeriodMinutes);\r\nconst logOutPeriodMiliseconds = minutesToMiliseconds(logOutPeriodMinutes);\r\n\r\nlet timer;\r\n\r\nconst broadcastChannel = new BroadcastChannel(broadcastChannelName);\r\nconst setLastActivity = () => {\r\n\tclearTimeout(timer);\r\n\ttimer = setTimeout(checkForUserPrompt, promptPeriodMiliseconds);\r\n\tlocalStorage.setItem(lastActivityKey, Date.now());\r\n}\r\n\r\nconst checkForUserPrompt = () => {\r\n\tvar lastActivity = localStorage.getItem(lastActivityKey);\r\n\tif (lastActivity && (Date.now() - lastActivity) >= promptPeriodMiliseconds) {\r\n\t\tpromptUser();\r\n\t\tbroadcastChannel.postMessage(promptBroadcastKey)\r\n\t}\r\n}\r\n\r\nconst promptUser = () => {\r\n\tdisplay();\r\n\ttimer = setTimeout(checkForLogOut, logOutPeriodMiliseconds);\r\n}\r\n\r\nconst checkForLogOut = () => {\r\n\tconst lastActivity = localStorage.getItem(lastActivityKey);\r\n\tif (lastActivity && (Date.now() - lastActivity) >= promptPeriodMiliseconds + logOutPeriodMiliseconds) {\r\n\t\tlogOut();\r\n\t\tbroadcastChannel.postMessage(logOutBroadcastKey)\r\n\t}\r\n}\r\n\r\nconst logOut = () => {\r\n\twindow.location.href = logOutUrl;\r\n}\r\n\r\nconst resetTimerOnInteraction = () => window.site.doc.on('mousemove keydown scroll click', setLastActivity);\r\nconst resetTimerOnClick = () => window.site.doc.on('click', setLastActivity);\r\nconst removeAll = () => window.site.doc.off('mousemove keydown scroll click');\r\n\r\nconst init = () => {\r\n\r\n\t// If page has timed out and reloaded with the popup message visible (from Partials/InactivityLogOutMessage.cshtml)\r\n\t// this popup needs to be closed\r\n\t$('body').one('click', function() {\r\n\t\t$('.m-popup-new, .popupFade-new').remove()\r\n\t});\r\n\r\n\tif (cookieValue(inactivityCookieName) != null) {\r\n\t\tsetLastActivity();\r\n\t\tresetTimerOnInteraction();\r\n\r\n\t\tbroadcastChannel.onmessage = function(event) {\r\n\t\t\tif (event.data === logOutBroadcastKey) {\r\n\t\t\t\tlogOut();\r\n\t\t\t} else if (event.data === promptBroadcastKey) {\r\n\t\t\t\tpromptUser();\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport default init;\r\nexport { resetTimerOnClick, removeAll, resetTimerOnInteraction }\r\n"],"names":["display","cookieValue","inactivityCookieName","logOutUrl","lastActivityKey","broadcastChannelName","promptBroadcastKey","logOutBroadcastKey","promptPeriodMinutes","logOutPeriodMinutes","minutesToMiliseconds","minutes","promptPeriodMiliseconds","logOutPeriodMiliseconds","let","timer","broadcastChannel","BroadcastChannel","setLastActivity","clearTimeout","setTimeout","checkForUserPrompt","localStorage","setItem","Date","now","lastActivity","getItem","promptUser","postMessage","checkForLogOut","logOut","window","location","href","resetTimerOnInteraction","site","doc","on","resetTimerOnClick","removeAll","off","init","$","one","remove","onmessage","event","data"],"mappings":"OAASA,OAAsC,KAAvB,+BACfC,WAAmC,KAAhB,iBAE5B,MAAMC,qBAAuB,eACvBC,UAAY,+BACZC,gBAAkB,mBAClBC,qBAAuB,6BACvBC,mBAAqB,kBACrBC,mBAAqB,kBAErBC,oBAAsBP,YAAYC,oBAAoB,EACtDO,oBAAsB,GAEtBC,qBAAuB,GAAuB,GAAVC,EAAe,IACnDC,wBAA0BF,qBAAqBF,mBAAmB,EAClEK,wBAA0BH,qBAAqBD,mBAAmB,EAExEK,IAAIC,MAEJ,MAAMC,iBAAmB,IAAIC,iBAAiBZ,oBAAoB,EAC5Da,gBAAkB,KACvBC,aAAaJ,KAAK,EAClBA,MAAQK,WAAWC,mBAAoBT,uBAAuB,EAC9DU,aAAaC,QAAQnB,gBAAiBoB,KAAKC,IAAI,CAAC,CACjD,EAEMJ,mBAAqB,KAC1B,IAAIK,EAAeJ,aAAaK,QAAQvB,eAAe,EACnDsB,GAAiBF,KAAKC,IAAI,EAAIC,GAAiBd,0BAClDgB,WAAW,EACXZ,iBAAiBa,YAAYvB,kBAAkB,EAEjD,EAEMsB,WAAa,KAClB5B,QAAQ,EACRe,MAAQK,WAAWU,eAAgBjB,uBAAuB,CAC3D,EAEMiB,eAAiB,KACtB,IAAMJ,EAAeJ,aAAaK,QAAQvB,eAAe,EACrDsB,GAAiBF,KAAKC,IAAI,EAAIC,GAAiBd,wBAA0BC,0BAC5EkB,OAAO,EACPf,iBAAiBa,YAAYtB,kBAAkB,EAEjD,EAEMwB,OAAS,KACdC,OAAOC,SAASC,KAAO/B,SACxB,EAEMgC,wBAA0B,IAAMH,OAAOI,KAAKC,IAAIC,GAAG,iCAAkCpB,eAAe,EACpGqB,kBAAoB,IAAMP,OAAOI,KAAKC,IAAIC,GAAG,QAASpB,eAAe,EACrEsB,UAAY,IAAMR,OAAOI,KAAKC,IAAII,IAAI,gCAAgC,EAEtEC,KAAO,KAIZC,EAAE,MAAM,EAAEC,IAAI,QAAS,WACtBD,EAAE,8BAA8B,EAAEE,OAAO,CAC1C,CAAC,EAEwC,MAArC5C,YAAYC,oBAAoB,IACnCgB,gBAAgB,EAChBiB,wBAAwB,EAExBnB,iBAAiB8B,UAAY,SAASC,GACjCA,EAAMC,OAASzC,mBAClBwB,OAAO,EACGgB,EAAMC,OAAS1C,oBACzBsB,WAAW,CAEb,EAEF,iBAEec,YACNH,kBAAmBC,UAAWL,uBAAwB"}