Files
kit/assets/dataStructures/dataStructures.min.js
2024-06-26 00:48:19 +03:00

1 line
1.4 KiB
JavaScript

__PluginManager__.register("dataStructures",function(t,e,i,o){function n(t,e,i=1e3){this.context=t||window,this.callback=e,this.interval=i}n.prototype.start=function(){this.intervalId=setInterval(function(){this.callback.apply(this.context,arguments)}.bind(this),this.interval)},n.prototype.stop=function(){this.intervalId&&clearInterval(this.intervalId)};const s={StackExecutionLimiter:(r=function(t,e,i=1e3){this.counter=0,this.timerId=0,this.timeout=0,this.arguments=null,this.context=null,this.executeBeforeTimeout=!1,this.setContext(t),this.setCallback(e),this.setTimeout(i)},r.prototype.setCallback=function(t){this.callback=t},r.prototype.setContext=function(t){this.context=t||window},r.prototype.setTimeout=function(t){this.timeout=t},r.prototype.exec=function(){this.arguments=arguments,this.counter++,0===this.timerId&&(this.executeBeforeTimeout?this.__execBeforeTimeout(this.counter):this.__execAfterDelay())},r.prototype.__execBeforeTimeout=function(t){this.timerId=setTimeout(function(){if(this.counter>t)return this.__execBeforeTimeout(this.counter),null;this.timerId=0}.bind(this),this.timeout),this.callback.apply(this.context,this.arguments)},r.prototype.__execAfterDelay=function(){this.timerId=setTimeout(function(){this.callback.apply(this.context,this.arguments),this.timerId=0}.bind(this),this.timeout)},r.prototype.reset=function(){clearTimeout(this.timerId),this.timerId=0,this.counter=0},r),Interval:n};var r;return i.exports=s});