1/* Compressed by the perl version of jsmin. */ 2/* JavaScript::Minifier 0.02 */ 3 4(function(global){if(global.SessionTimeoutModal){return;} 5var DEFAULTS={title:'Still there?',continueText:'Continue working',logoutText:'Log Out',showLogout:true,classPrefix:'session-timeout'};function merge(target,source){var key;for(key in source){if(Object.prototype.hasOwnProperty.call(source,key)&&typeof source[key]!=='undefined'){target[key]=source[key];}} 6return target;} 7function getOverlayClassName(config){var classes=['lo-timeout-overlay'];if(config.classPrefix){classes.push(config.classPrefix+'-overlay');} 8return classes.join(' ');} 9function buildOverlayHtml(config){var prefix=config.classPrefix;var titleId=config.id+'-title';var descriptionId=config.id+'-description';var logoutButtonHtml=config.showLogout?'<button type="button" class="lo-timeout-btn lo-timeout-btn-primary btn-primary '+prefix+'-logout-btn"></button>':'';return{titleId:titleId,descriptionId:descriptionId,html:'<div class="lo-timeout-card '+prefix+'-card">'+'<div class="lo-timeout-header '+prefix+'-header">'+'<div class="lo-timeout-icon '+prefix+'-icon"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M12 6v6l4 2M12 3a9 9 0 100 18 9 9 0 000-18z" /></svg></div>'+'<h1 class="lo-timeout-title '+prefix+'-title" id="'+titleId+'"></h1>'+'</div>'+'<p class="lo-timeout-description '+prefix+'-description" id="'+descriptionId+'"></p>'+'<div class="lo-timeout-divider '+prefix+'-divider"></div>'+'<div class="lo-timeout-actions '+prefix+'-actions">'+'<button type="button" class="lo-timeout-btn lo-timeout-btn-outline btn-outline '+prefix+'-continue-btn"></button>'+ 10logoutButtonHtml+'</div>'+'</div>'};} 11function applyOverlayText(overlay,config){var prefix=config.classPrefix;var safeText=function(value){return(value===null||typeof value==='undefined')?'':String(value);};var titleNode=overlay.querySelector('.'+prefix+'-title');if(titleNode){titleNode.textContent=safeText(config.title);} 12var descNode=overlay.querySelector('.'+prefix+'-description');if(descNode){descNode.textContent=safeText(config.description);} 13var continueBtn=overlay.querySelector('.'+prefix+'-continue-btn');if(continueBtn){continueBtn.textContent=safeText(config.continueText);} 14var logoutBtn=overlay.querySelector('.'+prefix+'-logout-btn');if(logoutBtn){logoutBtn.textContent=safeText(config.logoutText);}} 15function ensureLogoutButton(overlay,config){var prefix=config.classPrefix;var actions=overlay.querySelector('.'+prefix+'-actions');if(!actions){return;} 16var logoutBtn=overlay.querySelector('.'+prefix+'-logout-btn');if(config.showLogout){if(!logoutBtn){logoutBtn=document.createElement('button');logoutBtn.type='button';logoutBtn.className='lo-timeout-btn lo-timeout-btn-primary btn-primary '+prefix+'-logout-btn';actions.appendChild(logoutBtn);} 17logoutBtn.textContent=config.logoutText;return;} 18if(logoutBtn&&logoutBtn.parentNode){logoutBtn.parentNode.removeChild(logoutBtn);}} 19function bindOverlayActions(overlay,config){var prefix=config.classPrefix;var continueBtn=overlay.querySelector('.'+prefix+'-continue-btn');var logoutBtn=overlay.querySelector('.'+prefix+'-logout-btn');if(continueBtn){continueBtn.onclick=function(){hide(config.id,config.openBodyClass);if(typeof config.onContinue==='function'){config.onContinue();}};if(!overlay.contains(document.activeElement)){overlay.previousFocusedElement=document.activeElement;continueBtn.focus();}} 20if(logoutBtn){logoutBtn.onclick=function(){hide(config.id,config.openBodyClass);if(typeof config.onLogout==='function'){config.onLogout();}};} 21overlay.onkeydown=function(event){var evt=event||window.event;var key=evt.key||evt.keyCode;if((config.allowEscapeClose===true)&&(key==='Escape'||key==='Esc'||key===27)){if(evt.preventDefault){evt.preventDefault();} 22hide(config.id,config.openBodyClass);return;} 23if(key!=='Tab'&&key!==9){return;} 24var currentContinue=overlay.querySelector('.'+prefix+'-continue-btn');var currentLogout=overlay.querySelector('.'+prefix+'-logout-btn');var focusable=[];
24if(currentContinue){focusable.push(currentContinue);} 25if(currentLogout){focusable.push(currentLogout);} 26if(!focusable.length){return;} 27var first=focusable[0];var last=focusable[focusable.length-1];var active=document.activeElement;if(evt.shiftKey&&active===first){if(evt.preventDefault){evt.preventDefault();} 28last.focus();}else if(!evt.shiftKey&&active===last){if(evt.preventDefault){evt.preventDefault();} 29first.focus();}};} 30function hide(id,openBodyClass){var overlay=document.getElementById(id);var previousFocusedElement=overlay?overlay.previousFocusedElement:null;if(overlay&&overlay.parentNode){overlay.parentNode.removeChild(overlay);} 31if(openBodyClass){document.body.classList.remove(openBodyClass);} 32if(previousFocusedElement&&typeof previousFocusedElement.focus==='function'&&document.body&&document.body.contains(previousFocusedElement)){try{previousFocusedElement.focus();}catch(e){}}} 33function show(userConfig){var config=merge(merge({},DEFAULTS),userConfig||{});if(!config.id){return null;} 34var existingOverlay=document.getElementById(config.id);if(existingOverlay){ensureLogoutButton(existingOverlay,config);applyOverlayText(existingOverlay,config);if(config.openBodyClass){document.body.classList.add(config.openBodyClass);} 35bindOverlayActions(existingOverlay,config);return existingOverlay;} 36var template=buildOverlayHtml(config);var overlay=document.createElement('div');overlay.id=config.id;overlay.className=getOverlayClassName(config);overlay.innerHTML=template.html;document.body.appendChild(overlay);if(config.openBodyClass){document.body.classList.add(config.openBodyClass);} 37var prefix=config.classPrefix;var card=overlay.querySelector('.'+prefix+'-card');if(card){card.setAttribute('role','dialog');card.setAttribute('aria-modal','true');card.setAttribute('aria-labelledby',template.titleId);card.setAttribute('aria-describedby',template.descriptionId);} 38applyOverlayText(overlay,config);bindOverlayActions(overlay,config);return overlay;} 39global.SessionTimeoutModal={show:show,hide:hide};})(window);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.