Build 589089stable
Module 572377
3,650 characters · in 514.d733764d42c2ab66.jsDependencies
Source Raw
function(e,t,n){"use strict";n.d(t,{c:()=>o});var r=n(672722),i=(n(72290),function(e){return(0,r.requestAnimationFrame)(e)}),a=function(e){void 0===e&&(e=i);var t=!0,n=!1,a=0,o=[],l=0,u=new Set,c=new Set,d=new Set,f=function(e){var t=o.indexOf(e);t<0&&(t=o.findIndex(function(t){return t.priority>e.priority}),o.splice(~t?t:o.length,0,e))},p=function(){if(!t)try{g(),e(p)}catch(e){console.error(e)}},h=function(){t&&(t=!1,0==a&&(a=r.now(),e(p)))},m=[];this.setTimeout=function(e,t){var n=r.now()+t,i=function(){var e=m.findIndex(function(e){return e.cancel==i});e>=0&&m.splice(e,1)},a=s(m,function(e){return e.time>n}),o={time:n,handler:e,cancel:i};return m.splice(a,0,o),h(),o};var g=this.advance=function(){var e=r.now();if(u.size&&(u.forEach(f),u.clear()),m.length&&r.batchedUpdates(function(){var t=s(m,function(t){return t.time>e});m.splice(0,t).forEach(function(e){return e.handler()})}),e>a){var t=Math.min(64,e-a);a=e,r.batchedUpdates(function(){o.length&&(r.willAdvance(o),o=o.filter(function(e){return l=e.priority,e.idle||e.advance(t),!e.idle}),l=0),c.size&&(c.forEach(function(t){return t(e)}),c.clear()),d.size&&(n=!0,d.forEach(function(t){return t(e)}),d.clear(),n=!1)})}};this.start=function(e){l>e.priority?u.add(e):(f(e),h())},this.onFrame=function(e){c.add(e),h()},this.onWrite=function(e){n?e(a):d.add(e)}};class o extends a{constructor(){super(...arguments),this._requestAnimationFrame=e=>i(e),this._cancelAnimationFrame=e=>cancelAnimationFrame(e),this.writing=!1,this.id=0,this.lastTime=0,this.animations=[],this.priority=0,this.startQueue=new Set,this.frameQueue=new Set,this.writeQueue=new Set,this.timeoutQueue=[],this.addAnimation=e=>{let t=this.animations.indexOf(e);t<0&&(t=this.animations.findIndex(t=>t.priority>e.priority),this.animations.splice(0!=~t?t:this.animations.length,0,e))},this.loop=()=>{if(0!==this.lastTime)try{this.advance()}catch(e){console.error(e)}finally{this.animations.length>0||this.startQueue.size>0||this.frameQueue.size>0||this.writeQueue.size>0||this.timeoutQueue.length>0?this.id=this._requestAnimationFrame(this.loop):(this.lastTime=0,this.id=0)}},this.startLoop=()=>{this.lastTime>0||(this.lastTime=r.now(),this.id=this._requestAnimationFrame(this.loop))},this.advance=()=>{let e=r.now();if(this.startQueue.size>0&&(this.startQueue.forEach(this.addAnimation),this.startQueue.clear()),this.timeoutQueue.length>0&&r.batchedUpdates(()=>{let t=s(this.timeoutQueue,t=>t.time>e);this.timeoutQueue.splice(0,t).forEach(e=>e.handler())}),e>this.lastTime){let t=Math.min(64,e-this.lastTime);this.lastTime=e,r.batchedUpdates(()=>{this.animations.length>0&&(r.willAdvance(this.animations),this.animations=this.animations.filter(e=>(this.priority=e.priority,e.idle||e.advance(t),!e.idle)),this.priority=0),this.frameQueue.size>0&&(this.frameQueue.forEach(t=>t(e)),this.frameQueue.clear()),this.writeQueue.size>0&&(this.writing=!0,this.writeQueue.forEach(t=>t(e)),this.writeQueue.clear(),this.writing=!1)})}},this.start=e=>{this.priority>e.priority?this.startQueue.add(e):(this.addAnimation(e),this.startLoop())},this.setTimeout=(e,t)=>{let n=r.now()+t,i=()=>{let e=this.timeoutQueue.findIndex(e=>e.cancel===i);e>=0&&this.timeoutQueue.splice(e,1)},a=s(this.timeoutQueue,e=>e.time>n),o={time:n,handler:e,cancel:i};return this.timeoutQueue.splice(a,0,o),this.startLoop(),o},this.onFrame=e=>{this.frameQueue.add(e),this.startLoop()},this.onWrite=e=>{this.writing?e(this.lastTime):this.writeQueue.add(e)}}setRAF(e,t){0!==this.id&&(this._cancelAnimationFrame(this.id),this.id=0),this._requestAnimationFrame=e,this._cancelAnimationFrame=t,this.loop()}}function s(e,t){var n=e.findIndex(t);return n<0?e.length:n}}