timen
Version:
Time manager.
1 lines • 2.02 kB
JavaScript
!function(e,t){for(var n in t)e[n]=t[n]}(exports,function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";n.r(t),n.d(t,"create",(function(){return s})),n.d(t,"at",(function(){return c})),n.d(t,"after",(function(){return i})),n.d(t,"every",(function(){return f})),n.d(t,"tick",(function(){return a})),n.d(t,"nextTick",(function(){return l}));const r={};let o=!1;function u(e,t){return r[e]?r[e].push(t):r[e]=[t],o||p(),()=>{if(!r[e])return;const n=r[e].indexOf(t);r[e].splice(n,1),0===r[e].length&&delete r[e]}}const c=(e,t)=>u(e,{cb:t}),i=(e,t)=>u(Date.now()+e,{cb:t}),f=(e,t)=>{let n;const r=()=>{u(Date.now()+e,{cb:()=>{n||(t(),r())}})};return r(),()=>n=!0},a=e=>u(Date.now(),{cb:()=>{e(),f(1,e)}}),l=e=>c(Date.now()+1,e);function s(){const e=new Map;return{after(t,n){const r=e.get(n);r&&r(),e.set(n,i(t,n))},clear(t){if(t){const n=e.get(t);n&&n()}else e.forEach(e=>e())}}}function d(){const e=Date.now();Object.keys(r).some(t=>{parseInt(t,10)>e||(r[t]&&r[t].forEach(({cb:e})=>{try{e()}catch(e){}}),delete r[t])}),o=Object.keys(r).length>0,o&&p()}function p(){"undefined"!=typeof window&&window.requestAnimationFrame(d)}}]));