UNPKG

activity-listener

Version:

Respond to ui-events before or after ordinary event-handlers do

3 lines (2 loc) 1.33 kB
const t=function(){let t=!0;const e={passive:!0,capture:!0},n={passive:!0,capture:!1},o={},c={},i=function(t,e,n,o){const c=`on${e}`;c in window?window[t+"EventListener"](e,n,o):c in document?document[t+"EventListener"](e,n,o):"add"===t&&console.warn(`activityListener rejected ${e}-event`)},r=function(t,n){const c=o[t].get(n).procedure,r=o[t].get(n).options;i("remove",t,c,r);const s=o[t].get(n).timer;i("remove",t,s,e),o[t].delete(n),o[t].size||delete o[t]},s=function(){Object.keys(o).forEach((t=>{for(let e of o[t].keys())r(t,e)}))};return{clear:s,destroy:s,erase:r,pause:function(){t=!1},register:function(s,u,a,f=50){const d=function(n,r,u){const a=function(e){!function(t){const e=`${t.type}-${t.timeStamp}`;c[e]&&(clearTimeout(c[e]),delete c[e])}(e),function(e,n,o){if(!t)return;const c=function(){try{e(o)}catch(t){console.error("activityListener caught faulty callback")}};n?setTimeout(c,n):c()}(n,u,e)};o[s]||(o[s]=new Map);const d={procedure:a,options:r};i("add",s,a,r),!1===r.capture&&(d.timer=function(t,n,o){const r=function(t){const e=`${t.type}-${t.timeStamp}`,i=setTimeout((function(){c[e]&&n(t)}),o+25);c[e]=i};return i("add",t,r,e),r}(s,a,f)),o[s].set(n,d)};return u&&d(u,e,0),a&&d(a,n,f),function(){u&&r(s,u),a&&r(s,a)}},resume:function(){t=!0}}}();export default t; //# sourceMappingURL=activityListener.js.map