UNPKG

@v4fire/client

Version:

V4Fire client core library

2 lines (1 loc) 2.2 kB
!function(e){"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():window.idleCallbackShim=e()}(function(){"use strict";var o,u,a,e,t,n,i,l,r="undefined"!=typeof window?window:null!=typeof global?global:this||{},c=r.cancelRequestAnimationFrame&&r.requestAnimationFrame||setTimeout,d=r.cancelRequestAnimationFrame||clearTimeout,s=[],m=0,f=!1,b=7,v=35,p=125,w=0,g=0,k=0,h={get didTimeout(){return!1},timeRemaining:function(){var e=b-(Date.now()-g);return e<0?0:e}},y=(t=function(){b=22,p=66,v=0},l=function(){var e=Date.now()-i;e<99?n=setTimeout(l,99-e):(n=null,t())},function(){i=Date.now(),n=n||setTimeout(l,99)});function C(){125!=p&&(b=7,p=125,v=35,f&&(f&&(e&&d(e),a&&clearTimeout(a),f=!1),I())),y()}function q(){e=null,a=setTimeout(E,0)}function D(){a=null,c(q)}function I(){f||(u=p-(Date.now()-g),o=Date.now(),f=!0,v&&u<v&&(u=v),9<u?a=setTimeout(D,u):(u=0,D()))}function E(){var e,t,n,i=9<b?9:1;if(g=Date.now(),f=!1,a=null,2<m||g-u-50<o)for(t=0,n=s.length;t<n&&h.timeRemaining()>i;t++)e=s.shift(),k++,e&&e(h);s.length?I():m=0}function T(e){return w++,s.push(e),I(),w}function L(e){var t=e-1-k;s[t]&&(s[t]=null)}if(r.requestIdleCallback&&r.cancelIdleCallback)try{r.requestIdleCallback(function(){},{timeout:0})}catch(e){!function(n){var e,t;if(r.requestIdleCallback=function(e,t){return t&&"number"==typeof t.timeout?n(e,t.timeout):n(e)},r.IdleCallbackDeadline&&(e=IdleCallbackDeadline.prototype)){if(!(t=Object.getOwnPropertyDescriptor(e,"timeRemaining"))||!t.configurable||!t.get)return;Object.defineProperty(e,"timeRemaining",{value:function(){return t.get.call(this)},enumerable:!0,configurable:!0})}}(r.requestIdleCallback)}else r.requestIdleCallback=T,r.cancelIdleCallback=L,r.document&&document.addEventListener&&(r.addEventListener("scroll",C,!0),r.addEventListener("resize",C),document.addEventListener("focus",C,!0),document.addEventListener("mouseover",C,!0),["click","keypress","touchstart","mousedown"].forEach(function(e){document.addEventListener(e,C,{capture:!0,passive:!0})}),r.MutationObserver&&new MutationObserver(C).observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0}));return{request:T,cancel:L}});