Files
brewman/brewman/static/js/loading-bar.min.js
T

7 lines
1.8 KiB
JavaScript

/*!
* angular-loading-bar v0.0.1
* https://chieffancypants.github.io/angular-loading-bar
* Copyright (c) 2013 Wes Cruver
* License: MIT
*/
!function(){"use strict";angular.module("chieffancypants.loadingBar",[]).config(["$httpProvider",function(a){var b=["$q","$cacheFactory","cfpLoadingBar",function(b,c,d){function e(){d.complete(),h=0,g=0}function f(b){var d,e=a.defaults;if("GET"!==b.method||b.cache===!1)return b.cached=!1,!1;d=b.cache===!0&&void 0===e.cache?c.get("$http"):void 0!==e.cache?e.cache:b.cache;var f=void 0!==d?void 0!==d.get(b.url):!1;return void 0!==b.cached&&f!==b.cached?b.cached:(b.cached=f,f)}var g=0,h=0;return{request:function(a){return f(a)||(0===g&&d.start(),g++),a},response:function(a){return f(a.config)||(h++,h===g?e():d.set(h/g)),a},responseError:function(a){return f(a.config)||(h++,h===g?e():d.set(h/g)),b.reject(a)}}}];a.interceptors.push(b)}]).provider("cfpLoadingBar",function(){this.includeSpinner=!0,this.parentSelector="body",this.$get=["$document","$timeout","$animate",function(a,b,c){function d(){p=!0,b.cancel(j),c.enter(m,l),r&&c.enter(o,l),e(.02)}function e(a){if(p){var c=100*a+"%";n.css("width",c),q=a,b.cancel(i),i=b(function(){f()},250)}}function f(){if(!(g()>=1)){var a=0,b=g();a=b>=0&&.25>b?(3*Math.random()+3)/100:b>=.25&&.65>b?3*Math.random()/100:b>=.65&&.9>b?2*Math.random()/100:b>=.9&&.99>b?.005:0;var c=g()+a;e(c)}}function g(){return q}function h(){e(1),j=b(function(){c.leave(m,function(){q=0,p=!1}),c.leave(o)},500)}var i,j,k=this.parentSelector,l=a.find(k),m=angular.element('<div id="loading-bar"><div class="bar"><div class="peg"></div></div></div>'),n=m.find("div").eq(0),o=angular.element('<div id="loading-bar-spinner"><div class="spinner-icon"></div></div>'),p=!1,q=0,r=this.includeSpinner;return{start:d,set:e,status:g,inc:f,complete:h,includeSpinner:this.includeSpinner,parentSelector:this.parentSelector}}]})}();