This repository has been archived by the owner on Oct 15, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathangular-cbuffer.min.js
1 lines (1 loc) · 4.52 KB
/
angular-cbuffer.min.js
1
!function(){"use strict";angular.module("cbuffer",[]).factory("CBuffer",function(){function a(){if(!(this instanceof a))return arguments.length>1||"number"!=typeof arguments[0]?a.apply(new a(arguments.length),arguments):new a(arguments[0]);if(0===arguments.length)throw new Error("Missing Argument: You must pass a valid buffer length");return this.size=this.start=0,this.overflow=null,arguments.length>1||"number"!=typeof arguments[0]?(this.data=new Array(arguments.length),this.end=(this.length=arguments.length)-1,this.push.apply(this,arguments)):(this.data=new Array(arguments[0]),this.end=(this.length=arguments[0])-1),this}function b(a,b){return a==b?0:a>b?1:-1}return a.prototype={constructor:a,pop:function(){var a;if(0!==this.size)return a=this.data[this.end],delete this.data[this.end],this.end=(this.end-1+this.length)%this.length,this.size--,a},push:function(){var a=0;if(this.overflow&&this.size+arguments.length>this.length)for(;a<this.size+arguments.length-this.length;a++)this.overflow(this.data[(this.end+a+1)%this.length],this);for(a=0;a<arguments.length;a++)this.data[(this.end+a+1)%this.length]=arguments[a];return this.size<this.length&&(this.size+a>this.length?this.size=this.length:this.size+=a),this.end=(this.end+a)%this.length,this.start=(this.length+this.end-this.size+1)%this.length,this.size},reverse:function(){for(var a,b=0;b<~~(this.size/2);b++)a=this.data[(this.start+b)%this.length],this.data[(this.start+b)%this.length]=this.data[(this.start+(this.size-b-1))%this.length],this.data[(this.start+(this.size-b-1))%this.length]=a;return this},rotateLeft:function(a){if("undefined"==typeof a&&(a=1),"number"!=typeof a)throw new Error("Argument must be a number");for(;--a>=0;)this.push(this.shift());return this},rotateRight:function(a){if("undefined"==typeof a&&(a=1),"number"!=typeof a)throw new Error("Argument must be a number");for(;--a>=0;)this.unshift(this.pop());return this},shift:function(){var a;if(0!==this.size)return a=this.data[this.start],this.start=(this.start+1)%this.length,this.size--,a},sort:function(a){return this.data.sort(a||b),this.start=0,this.end=this.size-1,this},unshift:function(){var a=0;if(this.overflow&&this.size+arguments.length>this.length)for(;a<this.size+arguments.length-this.length;a++)this.overflow(this.data[this.end-a%this.length],this);for(a=0;a<arguments.length;a++)this.data[(this.length+this.start-a%this.length-1)%this.length]=arguments[a];return this.length-this.size-a<0&&(this.end+=this.length-this.size-a,this.end<0&&(this.end=this.length+this.end%this.length)),this.size<this.length&&(this.size+a>this.length?this.size=this.length:this.size+=a),this.start-=arguments.length,this.start<0&&(this.start=this.length+this.start%this.length),this.size},indexOf:function(a,b){for(b||(b=0);b<this.size;b++)if(this.data[(this.start+b)%this.length]===a)return b;return-1},lastIndexOf:function(a,b){for(b||(b=this.size-1);b>=0;b--)if(this.data[(this.start+b)%this.length]===a)return b;return-1},sortedIndex:function(a,c,d){c=c||b;var e=this.start,f=this.size-1;for(e&&c.call(d,a,this.data[f])>0&&(e=0,f=this.end);f>e;){var g=e+f>>>1;c.call(d,a,this.data[g])>0?e=g+1:f=g}return((e-this.start)%this.size+this.size)%this.size},every:function(a,b){for(var c=0;c<this.size;c++)if(!a.call(b,this.data[(this.start+c)%this.length],c,this))return!1;return!0},forEach:function(a,b){for(var c=0;c<this.size;c++)a.call(b,this.data[(this.start+c)%this.length],c,this)},some:function(a,b){for(var c=0;c<this.size;c++)if(a.call(b,this.data[(this.start+c)%this.length],c,this))return!0;return!1},avg:function(){return 0==this.size?0:this.sum()/this.size},sum:function(){for(var a=this.size,b=0;a--;)b+=this.data[a];return b},median:function(){if(0===this.size)return 0;var a=this.slice().sort(b),c=Math.floor(a.length/2);return a.length%2?a[c]:(a[c-1]+a[c])/2},empty:function(){return this.size=this.start=0,this.end=this.length-1,this},fill:function(a){var b=0;if("function"==typeof a)for(;this.data[b]=a(),++b<this.length;);else for(;this.data[b]=a,++b<this.length;);return this.start=0,this.end=this.length-1,this.size=this.length,this},first:function(){return this.data[this.start]},last:function(){return this.data[this.end]},get:function(a){return this.data[(this.start+a)%this.length]},isFull:function(){return this.length===this.size},set:function(a,b){return this.data[(this.start+a)%this.length]=b},toArray:function(){return this.slice()},slice:function(a,b){var c=this.size;if(a=+a||0,0>a){if(a>=b)return[];a=-a>c?0:c+a}null==b||b>c?b=c:0>b?b+=c:b=+b||0,c=b>a?b-a:0;for(var d=Array(c),e=0;c>e;e++)d[e]=this.data[(this.start+a+e)%this.length];return d}},a})}();