@analytics/activity-utils
Version:
User activity listener utilities
3 lines (2 loc) • 2.05 kB
JavaScript
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@analytics/listener-utils"),require("analytics-plugin-tab-events")):"function"==typeof define&&define.amd?define(["exports","@analytics/listener-utils","analytics-plugin-tab-events"],n):n((t||self).utilActivity={},t.listenerUtils,t.analyticsPluginTabEvents)}(this,function(t,n,e){function i(){return i=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var e=arguments[n];for(var i in e)({}).hasOwnProperty.call(e,i)&&(t[i]=e[i])}return t},i.apply(null,arguments)}var o=["mousemove","mousedown","touchmove","touchstart","touchend","keydown"];function r(t,i){void 0===i&&(i={});var r=function(t,n){var e=this,i=!1;return function(o){i||(t.call(e,o),i=!0,setTimeout(function(){return i=!1},n))}}(t,i.throttle||1e4),u=[];function a(){var t=e.onTabChange(function(t){t||r({type:"tabVisible"})});return u=[t].concat(o.map(function(t){return n.addListener(document,t,r)})).concat(n.addListener(window,"load",r)).concat(n.addListener(window,"scroll",r,{capture:!0,passive:!0})),c}function c(){u.map(function(t){return t()})}return a(),function(){return c(),a}}function u(t){var n,e,i=t.onIdle,o=t.onWakeUp,u=t.onHeartbeat,c=t.timeout,l=void 0===c?1e4:c,s=t.throttle,d=void 0===s?2e3:s,f=!1,v=!1,p=new Date,y=function(){return clearTimeout(n)};function m(t){y(),u&&!f&&u(a(p,v),t),o&&f&&(f=!1,o(a(e,v),t),p=new Date),n=setTimeout(function(){f=!0,i&&(e=new Date,i(a(p,v),t))},l)}var b=r(m,{throttle:d});return m({type:"init"}),{disable:function(){v=!0,f=!1,y();var t=b();return function(){return v=!1,p=new Date,m({type:"load"}),t()}},getStatus:function(){return{isIdle:f,isDisabled:v,active:f?0:a(p,v),idle:f?a(e,v):0}}}}function a(t,n){return n?0:Math.round(((new Date).getTime()-t.getTime())/1e3)}t.onDomActivity=r,t.onIdle=function(t,n){return void 0===n&&(n={}),u(i({onIdle:t},n))},t.onUserActivity=u,t.onWakeUp=function(t,n){return void 0===n&&(n={}),u(i({onWakeUp:t},n))}});
//# sourceMappingURL=analytics-util-activity.umd.js.map