(self.webpackChunkacademia_app=self.webpackChunkacademia_app||[]).push([[2410],{16082:function(e,t,n){var r="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g;e.exports=r},27607:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},31146:function(e,t,n){var r=n(82119);e.exports=function(){return r.Date.now()}},31848:function(e,t,n){var r=n(36646),i=n(73840);e.exports=function(e){return"symbol"==typeof e||i(e)&&"[object Symbol]"==r(e)}},36646:function(e,t,n){var r=n(76827),i=n(40909),s=n(57816),o=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":o&&o in Object(e)?i(e):s(e)}},36691:function(e,t){var n;(()=>{((r,i)=>{if(e.exports)return e.exports=i();void 0===(n=(()=>r.TimeMe=i()).apply(t,[]))||(e.exports=n)})(this,(()=>{let e={startStopTimes:{},idleTimeoutMs:3e4,currentIdleTimeMs:0,checkIdleStateRateMs:250,isUserCurrentlyOnPage:!0,isUserCurrentlyIdle:!1,currentPageName:"default-page-name",timeElapsedCallbacks:[],userLeftCallbacks:[],userReturnCallbacks:[],trackTimeOnElement:t=>{let n=document.getElementById(t);n&&(n.addEventListener("mouseover",(()=>{e.startTimer(t)})),n.addEventListener("mousemove",(()=>{e.startTimer(t)})),n.addEventListener("mouseleave",(()=>{e.stopTimer(t)})),n.addEventListener("keypress",(()=>{e.startTimer(t)})),n.addEventListener("focus",(()=>{e.startTimer(t)})))},getTimeOnElementInSeconds:t=>e.getTimeOnPageInSeconds(t)||0,startTimer:(t,n)=>{if(t||(t=e.currentPageName),void 0===e.startStopTimes[t])e.startStopTimes[t]=[];else{let n=e.startStopTimes[t],r=n[n.length-1];if(void 0!==r&&void 0===r.stopTime)return}e.startStopTimes[t].push({startTime:n||new Date,stopTime:void 0})},stopAllTimers:()=>{let t=Object.keys(e.startStopTimes);for(let n=0;n{t||(t=e.currentPageName);let r=e.startStopTimes[t];void 0!==r&&0!==r.length&&void 0===r[r.length-1].stopTime&&(r[r.length-1].stopTime=n||new Date)},getTimeOnCurrentPageInSeconds:()=>e.getTimeOnPageInSeconds(e.currentPageName),getTimeOnPageInSeconds:t=>{let n=e.getTimeOnPageInMilliseconds(t);return void 0===n?void 0:n/1e3},getTimeOnCurrentPageInMilliseconds:()=>e.getTimeOnPageInMilliseconds(e.currentPageName),getTimeOnPageInMilliseconds:t=>{let n=0,r=e.startStopTimes[t];if(void 0===r)return;let i=0;for(let e=0;e{let t=[],n=Object.keys(e.startStopTimes);for(let r=0;r{let n=parseFloat(t);if(!1!==isNaN(n))throw{name:"InvalidDurationException",message:"An invalid duration time ("+t+") was provided."};e.idleTimeoutMs=1e3*t},setCurrentPageName:t=>{e.currentPageName=t},resetRecordedPageTime:t=>{delete e.startStopTimes[t]},resetAllRecordedPageTimes:()=>{let t=Object.keys(e.startStopTimes);for(let n=0;n{e.isUserCurrentlyIdle&&e.triggerUserHasReturned(),e.resetIdleCountdown()},resetIdleCountdown:()=>{e.isUserCurrentlyIdle=!1,e.currentIdleTimeMs=0},callWhenUserLeaves:(t,n)=>{e.userLeftCallbacks.push({callback:t,numberOfTimesToInvoke:n})},callWhenUserReturns:(t,n)=>{e.userReturnCallbacks.push({callback:t,numberOfTimesToInvoke:n})},triggerUserHasReturned:()=>{if(!e.isUserCurrentlyOnPage){e.isUserCurrentlyOnPage=!0,e.resetIdleCountdown();for(let t=0;t0)&&(n.numberOfTimesToInvoke-=1,n.callback())}}e.startTimer()},triggerUserHasLeftPageOrGoneIdle:()=>{if(e.isUserCurrentlyOnPage){e.isUserCurrentlyOnPage=!1;for(let t=0;t0)&&(n.numberOfTimesToInvoke-=1,n.callback())}}e.stopAllTimers()},callAfterTimeElapsedInSeconds:(t,n)=>{e.timeElapsedCallbacks.push({timeInSeconds:t,callback:n,pending:!0})},checkIdleState:()=>{for(let t=0;te.timeElapsedCallbacks[t].timeInSeconds&&(e.timeElapsedCallbacks[t].callback(),e.timeElapsedCallbacks[t].pending=!1);!1===e.isUserCurrentlyIdle&&e.currentIdleTimeMs>e.idleTimeoutMs?(e.isUserCurrentlyIdle=!0,e.triggerUserHasLeftPageOrGoneIdle()):e.currentIdleTimeMs+=e.checkIdleStateRateMs},visibilityChangeEventName:void 0,hiddenPropName:void 0,listenForVisibilityEvents:(t,n)=>{t&&e.listenForUserLeavesOrReturnsEvents(),n&&e.listForIdleEvents()},listenForUserLeavesOrReturnsEvents:()=>{void 0!==document.hidden?(e.hiddenPropName="hidden",e.visibilityChangeEventName="visibilitychange"):void 0!==document.mozHidden?(e.hiddenPropName="mozHidden",e.visibilityChangeEventName="mozvisibilitychange"):void 0!==document.msHidden?(e.hiddenPropName="msHidden",e.visibilityChangeEventName="msvisibilitychange"):void 0!==document.webkitHidden&&(e.hiddenPropName="webkitHidden",e.visibilityChangeEventName="webkitvisibilitychange"),document.addEventListener(e.visibilityChangeEventName,(()=>{document[e.hiddenPropName]?e.triggerUserHasLeftPageOrGoneIdle():e.triggerUserHasReturned()}),!1),window.addEventListener("blur",(()=>{e.triggerUserHasLeftPageOrGoneIdle()})),window.addEventListener("focus",(()=>{e.triggerUserHasReturned()}))},listForIdleEvents:()=>{document.addEventListener("mousemove",(()=>{e.userActivityDetected()})),document.addEventListener("keyup",(()=>{e.userActivityDetected()})),document.addEventListener("touchstart",(()=>{e.userActivityDetected()})),window.addEventListener("scroll",(()=>{e.userActivityDetected()})),setInterval((()=>{!0!==e.isUserCurrentlyIdle&&e.checkIdleState()}),e.checkIdleStateRateMs)},websocket:void 0,websocketHost:void 0,setUpWebsocket:t=>{if(window.WebSocket&&t){let n=t.websocketHost;try{e.websocket=new WebSocket(n),window.onbeforeunload=()=>{e.sendCurrentTime(t.appId)},e.websocket.onopen=()=>{e.sendInitWsRequest(t.appId)},e.websocket.onerror=e=>{console&&console.log("Error occurred in websocket connection: "+e)},e.websocket.onmessage=e=>{console&&console.log(e.data)}}catch(e){console&&console.error("Failed to connect to websocket host. Error:"+e)}}},websocketSend:t=>{e.websocket.send(JSON.stringify(t))},sendCurrentTime:t=>{let n={type:"INSERT_TIME",appId:t,timeOnPageMs:e.getTimeOnCurrentPageInMilliseconds(),pageName:e.currentPageName};e.websocketSend(n)},sendInitWsRequest:t=>{let n={type:"INIT",appId:t};e.websocketSend(n)},initialize:t=>{let n,r,i=e.idleTimeoutMs||30,s=e.currentPageName||"default-page-name",o=!0,a=!0;t&&(i=t.idleTimeoutInSeconds||i,s=t.currentPageName||s,n=t.websocketOptions,r=t.initialStartTime,!1===t.trackWhenUserLeavesPage&&(o=!1),!1===t.trackWhenUserGoesIdle&&(a=!1)),e.setIdleDurationInSeconds(i),e.setCurrentPageName(s),e.setUpWebsocket(n),e.listenForVisibilityEvents(o,a),e.startTimer(void 0,r)}};return e}))}).call(this)},40909:function(e,t,n){var r=n(76827),i=Object.prototype,s=i.hasOwnProperty,o=i.toString,a=r?r.toStringTag:void 0;e.exports=function(e){var t=s.call(e,a),n=e[a];try{e[a]=void 0;var r=!0}catch(e){}var i=o.call(e);return r&&(t?e[a]=n:delete e[a]),i}},48162:function(e,t,n){var r=n(70014),i=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(i,""):e}},57816:function(e){var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},65772:function(e,t,n){var r=n(82819),i=n(27607);e.exports=function(e,t,n){var s=!0,o=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return i(n)&&(s="leading"in n?!!n.leading:s,o="trailing"in n?!!n.trailing:o),r(e,t,{leading:s,maxWait:t,trailing:o})}},70014:function(e){var t=/\s/;e.exports=function(e){for(var n=e.length;n--&&t.test(e.charAt(n)););return n}},73840:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},76827:function(e,t,n){var r=n(82119).Symbol;e.exports=r},82119:function(e,t,n){var r=n(16082),i="object"==typeof self&&self&&self.Object===Object&&self,s=r||i||Function("return this")();e.exports=s},82819:function(e,t,n){var r=n(27607),i=n(31146),s=n(87852),o=Math.max,a=Math.min;e.exports=function(e,t,n){var l,c,d,u,m,g,v=0,p=!1,f=!1,b=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function T(t){var n=l,r=c;return l=c=void 0,v=t,u=e.apply(r,n)}function I(e){var n=e-g;return void 0===g||n>=t||n<0||f&&e-v>=d}function k(){var e=i();if(I(e))return h(e);m=setTimeout(k,function(e){var n=t-(e-g);return f?a(n,d-(e-v)):n}(e))}function h(e){return m=void 0,b&&l?T(e):(l=c=void 0,u)}function y(){var e=i(),n=I(e);if(l=arguments,c=this,g=e,n){if(void 0===m)return function(e){return v=e,m=setTimeout(k,t),p?T(e):u}(g);if(f)return clearTimeout(m),m=setTimeout(k,t),T(g)}return void 0===m&&(m=setTimeout(k,t)),u}return t=s(t)||0,r(n)&&(p=!!n.leading,d=(f="maxWait"in n)?o(s(n.maxWait)||0,t):d,b="trailing"in n?!!n.trailing:b),y.cancel=function(){void 0!==m&&clearTimeout(m),v=0,l=g=c=m=void 0},y.flush=function(){return void 0===m?u:h(i())},y}},87852:function(e,t,n){var r=n(48162),i=n(27607),s=n(31848),o=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(s(e))return NaN;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=a.test(e);return n||l.test(e)?c(e.slice(2),n?2:8):o.test(e)?NaN:+e}}}]); //# sourceMappingURL=2410-7ee24c6af6d2a3be43ef.js.map