vendor: 2,971 bytes, lines 1-30
1/* 2 * Exit Popup 3 * Exit Popup enabling you to display a modal before a user leaves your website 4 * 5 * Brontobytes 6 * www.brontobytes.com 7*/ 8(function(root,factory){if(typeof define==='function'&&define.amd){define(factory);}else if(typeof exports==='object'){module.exports=factory(require,exports,module);}else{root.exitpopup=factory();}}(this,function(require,exports,module){return function exitpopup(el,custom_config){"use strict";var config=custom_config||{},aggressive=config.aggressive||false,sensitivity=setDefault(config.sensitivity,20),timer=setDefault(config.timer,1000),delay=setDefault(config.delay,0),callback=config.callback||function(){},cookieExpire=setDefaultCookieExpire(config.cookieExpire)||'',cookieDomain=config.cookieDomain?';domain='+config.cookieDomain:'',cookieName=config.cookieName?config.cookieName:'viewedExitPopupWP',sitewide=config.sitewide===true?';path=/':'',_delayTimer=null,_html=document.documentElement;function setDefault(_property,_default){return typeof _property==='undefined'?_default:_property;} 9function setDefaultCookieExpire(days){var ms=days*24*60*60*1000;var date=new Date();date.setTime(date.getTime()+ms);return"; expires="+date.toUTCString();} 10setTimeout(attachexitpopup,timer);function attachexitpopup(){if(isDisabled()){return;} 11_html.addEventListener('mouseleave',handleMouseleave);_html.addEventListener('mouseenter',handleMouseenter);_html.addEventListener('keydown',handleKeydown);} 12function handleMouseleave(e){if(e.clientY>sensitivity){return;} 13_delayTimer=setTimeout(fire,delay);} 14function handleMouseenter(){if(_delayTimer){clearTimeout(_delayTimer);_delayTimer=null;}} 15var disableKeydown=false;function handleKeydown(e){if(disableKeydown){return;} 16else if(!e.metaKey||e.keyCode!==76){return;} 17disableKeydown=true;_delayTimer=setTimeout(fire,delay);} 18function checkCookieValue(cookieName,value){return parseCookies()[cookieName]===value;} 19function parseCookies(){var cookies=document.cookie.split('; ');var ret={};for(var i=cookies.length-1;i>=0;i--){var el=cookies[i].split('=');ret[el[0]]=el[1];} 20return ret;} 21function isDisabled(){return checkCookieValue(cookieName,'true')&&!aggressive;} 22function fire(){if(isDisabled()){return;} 23if(el){el.style.display='block';} 24callback();disable();} 25function disable(custom_options){var options=custom_options||{};if(typeof options.cookieExpire!=='undefined'){cookieExpire=setDefaultCookieExpire(options.cookieExpire);} 26if(options.sitewide===true){sitewide=';path=/';} 27if(typeof options.cookieDomain!=='undefined'){cookieDomain=';domain='+options.cookieDomain;} 28if(typeof options.cookieName!=='undefined'){cookieName=options.cookieName;} 29document.cookie=cookieName+'=true'+cookieExpire+cookieDomain+sitewide;_html.removeEventListener('mouseleave',handleMouseleave);_html.removeEventListener('mouseenter',handleMouseenter);_html.removeEventListener('keydown',handleKeydown);} 30return{fire:fire,disable:disable,isDisabled:isDisabled};};}));
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.