angular-busy2
Advanced tools
Comparing version 4.1.5 to 4.1.6
@@ -43,4 +43,17 @@ angular.module('cgBusy',[]); | ||
}; | ||
tracker.isRealPromise = function (promiseThing) { | ||
var then = promiseThing && (promiseThing.then || promiseThing.$then || | ||
(promiseThing.$promise && promiseThing.$promise.then)); | ||
return typeof then !== 'undefined'; | ||
}; | ||
tracker.isPromise = function(promiseThing){ | ||
if (promiseThing === true || promiseThing === false) { | ||
return true; | ||
} | ||
if (angular.isNumber(promiseThing)) { | ||
return true; | ||
} | ||
var then = promiseThing && (promiseThing.then || promiseThing.$then || | ||
@@ -51,4 +64,27 @@ (promiseThing.$promise && promiseThing.$promise.then)); | ||
}; | ||
tracker.hide = function(promiseThing){ | ||
if(promiseThing === false){ | ||
return true; | ||
} | ||
if(promiseThing.promise === false){ | ||
return true; | ||
} | ||
if(angular.isNumber(promiseThing) === true && promiseThing <= 0){ | ||
return true; | ||
} | ||
if(angular.isNumber(promiseThing.promise) === true && promiseThing.promise <= 0){ | ||
return true; | ||
} | ||
}; | ||
tracker.callThen = function(promiseThing,success,error){ | ||
if(tracker.hide(promiseThing)){ | ||
success(); | ||
return; | ||
} | ||
if(!tracker.isRealPromise(promiseThing)){ | ||
return; | ||
} | ||
var promise; | ||
@@ -155,2 +191,16 @@ if (promiseThing.then || promiseThing.$then){ | ||
var showForce = null; | ||
if (options === true) { | ||
options = {promise:true}; | ||
} else if (options === false) { | ||
options = {promise:null}; | ||
} else if (angular.isNumber(options) === true) { | ||
if (options > 0) { | ||
options = {promise:true}; | ||
} else { | ||
options = {promise:null}; | ||
} | ||
} | ||
if (!options) { | ||
@@ -157,0 +207,0 @@ options = {promise:null}; |
@@ -11,9 +11,52 @@ angular.module('app', ['ngAnimate','cgBusy']); | ||
$scope.demo = function(){ | ||
$scope.demo = function (_promise) { | ||
if (false == angular.isUndefined(_promise)) { | ||
var promise = _promise; | ||
} else { | ||
$scope.promise = $http.get('http://httpbin.org/delay/3'); | ||
var promise = $http.get('http://httpbin.org/delay/3'); | ||
} | ||
$scope.promise = | ||
{ | ||
promise: promise, | ||
templateUrl: $scope.templateUrl, | ||
message: $scope.message, | ||
backdrop: $scope.backdrop, | ||
delay: $scope.delay, | ||
minDuration: $scope.minDuration | ||
} | ||
}; | ||
/** | ||
* Show | ||
* $scope.promise = true; | ||
* $scope.promise = 5; | ||
* | ||
* Hide | ||
* $scope.promise = false; | ||
* $scope.promise = 0; | ||
*/ | ||
$scope.demoOnTrue = function () { | ||
if ($scope.promiseShow === true) { | ||
$scope.demo(false); | ||
$scope.promiseShow = false; | ||
} else { | ||
$scope.demo(true); | ||
$scope.promiseShow = true; | ||
} | ||
}; | ||
$scope.demoOnNumber = function (v) { | ||
if (angular.isNumber(v)){ | ||
$scope.demo(v); | ||
} | ||
}; | ||
}); |
@@ -43,4 +43,17 @@ angular.module('cgBusy',[]); | ||
}; | ||
tracker.isRealPromise = function (promiseThing) { | ||
var then = promiseThing && (promiseThing.then || promiseThing.$then || | ||
(promiseThing.$promise && promiseThing.$promise.then)); | ||
return typeof then !== 'undefined'; | ||
}; | ||
tracker.isPromise = function(promiseThing){ | ||
if (promiseThing === true || promiseThing === false) { | ||
return true; | ||
} | ||
if (angular.isNumber(promiseThing)) { | ||
return true; | ||
} | ||
var then = promiseThing && (promiseThing.then || promiseThing.$then || | ||
@@ -51,4 +64,27 @@ (promiseThing.$promise && promiseThing.$promise.then)); | ||
}; | ||
tracker.hide = function(promiseThing){ | ||
if(promiseThing === false){ | ||
return true; | ||
} | ||
if(promiseThing.promise === false){ | ||
return true; | ||
} | ||
if(angular.isNumber(promiseThing) === true && promiseThing <= 0){ | ||
return true; | ||
} | ||
if(angular.isNumber(promiseThing.promise) === true && promiseThing.promise <= 0){ | ||
return true; | ||
} | ||
}; | ||
tracker.callThen = function(promiseThing,success,error){ | ||
if(tracker.hide(promiseThing)){ | ||
success(); | ||
return; | ||
} | ||
if(!tracker.isRealPromise(promiseThing)){ | ||
return; | ||
} | ||
var promise; | ||
@@ -155,2 +191,16 @@ if (promiseThing.then || promiseThing.$then){ | ||
var showForce = null; | ||
if (options === true) { | ||
options = {promise:true}; | ||
} else if (options === false) { | ||
options = {promise:null}; | ||
} else if (angular.isNumber(options) === true) { | ||
if (options > 0) { | ||
options = {promise:true}; | ||
} else { | ||
options = {promise:null}; | ||
} | ||
} | ||
if (!options) { | ||
@@ -248,56 +298,32 @@ options = {promise:null}; | ||
angular.module('cgBusy').run(['$templateCache', function($templateCache) { | ||
'use strict'; | ||
'use strict'; | ||
$templateCache.put('angular-busy.html', | ||
"<div class=\"cg-busy-default-wrapper\">\r" + | ||
"\n" + | ||
"\r" + | ||
"\n" + | ||
" <div class=\"cg-busy-default-sign\">\r" + | ||
"\n" + | ||
"\r" + | ||
"\n" + | ||
" <div class=\"cg-busy-default-spinner\">\r" + | ||
"\n" + | ||
" <div class=\"bar1\"></div>\r" + | ||
"\n" + | ||
" <div class=\"bar2\"></div>\r" + | ||
"\n" + | ||
" <div class=\"bar3\"></div>\r" + | ||
"\n" + | ||
" <div class=\"bar4\"></div>\r" + | ||
"\n" + | ||
" <div class=\"bar5\"></div>\r" + | ||
"\n" + | ||
" <div class=\"bar6\"></div>\r" + | ||
"\n" + | ||
" <div class=\"bar7\"></div>\r" + | ||
"\n" + | ||
" <div class=\"bar8\"></div>\r" + | ||
"\n" + | ||
" <div class=\"bar9\"></div>\r" + | ||
"\n" + | ||
" <div class=\"bar10\"></div>\r" + | ||
"\n" + | ||
" <div class=\"bar11\"></div>\r" + | ||
"\n" + | ||
" <div class=\"bar12\"></div>\r" + | ||
"\n" + | ||
" </div>\r" + | ||
"\n" + | ||
"\r" + | ||
"\n" + | ||
" <div class=\"cg-busy-default-text\">{{$message}}</div>\r" + | ||
"\n" + | ||
"\r" + | ||
"\n" + | ||
" </div>\r" + | ||
"\n" + | ||
"\r" + | ||
"\n" + | ||
"</div>" | ||
); | ||
$templateCache.put('angular-busy.html', | ||
"<div class=\"cg-busy-default-wrapper\">\n" + | ||
"\n" + | ||
" <div class=\"cg-busy-default-sign\">\n" + | ||
"\n" + | ||
" <div class=\"cg-busy-default-spinner\">\n" + | ||
" <div class=\"bar1\"></div>\n" + | ||
" <div class=\"bar2\"></div>\n" + | ||
" <div class=\"bar3\"></div>\n" + | ||
" <div class=\"bar4\"></div>\n" + | ||
" <div class=\"bar5\"></div>\n" + | ||
" <div class=\"bar6\"></div>\n" + | ||
" <div class=\"bar7\"></div>\n" + | ||
" <div class=\"bar8\"></div>\n" + | ||
" <div class=\"bar9\"></div>\n" + | ||
" <div class=\"bar10\"></div>\n" + | ||
" <div class=\"bar11\"></div>\n" + | ||
" <div class=\"bar12\"></div>\n" + | ||
" </div>\n" + | ||
"\n" + | ||
" <div class=\"cg-busy-default-text\">{{$message}}</div>\n" + | ||
"\n" + | ||
" </div>\n" + | ||
"\n" + | ||
"</div>" | ||
); | ||
}]); | ||
}]); |
@@ -1,1 +0,1 @@ | ||
angular.module("cgBusy",[]),angular.module("cgBusy").factory("_cgBusyTrackerFactory",["$timeout","$q",function(a,b){return function(){var c={};c.promises=[],c.delayPromise=null,c.durationPromise=null,c.delayJustFinished=!1,c.reset=function(b){c.minDuration=b.minDuration,c.promises=[],angular.forEach(b.promises,function(a){a&&!a.$cgBusyFulfilled&&d(a)}),0!==c.promises.length&&(c.delayJustFinished=!1,b.delay&&(c.delayPromise=a(function(){c.delayPromise=null,c.delayJustFinished=!0},parseInt(b.delay,10))),b.minDuration&&(c.durationPromise=a(function(){c.durationPromise=null},parseInt(b.minDuration,10)+(b.delay?parseInt(b.delay,10):0))))},c.isPromise=function(a){var b=a&&(a.then||a.$then||a.$promise&&a.$promise.then);return"undefined"!=typeof b},c.callThen=function(a,c,d){var e;a.then||a.$then?e=a:a.$promise?e=a.$promise:a.denodeify&&(e=b.when(a));var f=e.then||e.$then;f.call(e,c,d)};var d=function(a){if(!c.isPromise(a))throw new Error("cgBusy expects a promise (or something that has a .promise or .$promise");-1===c.promises.indexOf(a)&&(c.promises.push(a),c.callThen(a,function(){a.$cgBusyFulfilled=!0,-1!==c.promises.indexOf(a)&&c.promises.splice(c.promises.indexOf(a),1)},function(){a.$cgBusyFulfilled=!0,-1!==c.promises.indexOf(a)&&c.promises.splice(c.promises.indexOf(a),1)}))};return c.active=function(){return c.delayPromise?!1:c.delayJustFinished?(c.delayJustFinished=!1,0===c.promises.length&&(c.durationPromise=null),c.promises.length>0):c.durationPromise?!0:c.promises.length>0},c}}]),angular.module("cgBusy").value("cgBusyDefaults",{}),angular.module("cgBusy").directive("cgBusy",["$compile","$templateCache","cgBusyDefaults","$http","_cgBusyTrackerFactory",function(a,b,c,d,e){return{restrict:"A",link:function(f,g,h,i){var j=g.css("position");("static"===j||""===j||"undefined"==typeof j)&&g.css("position","relative");var k,l,m,n,o,p=e(),q={templateUrl:"angular-busy.html",delay:0,minDuration:0,backdrop:!0,message:"Please Wait...",wrapperClass:"cg-busy cg-busy-animation"};angular.extend(q,c),f.$watchCollection(h.cgBusy,function(c){if(c||(c={promise:null}),angular.isString(c))throw new Error("Invalid value for cg-busy. cgBusy no longer accepts string ids to represent promises/trackers.");(angular.isArray(c)||p.isPromise(c))&&(c={promise:c}),c=angular.extend(angular.copy(q),c),c.templateUrl||(c.templateUrl=q.templateUrl),angular.isArray(c.promise)||(c.promise=[c.promise]),n||(n=f.$new()),n.$message=c.message,angular.equals(p.promises,c.promise)||p.reset({promises:c.promise,delay:c.delay,minDuration:c.minDuration}),n.$cgBusyIsActive=function(){return p.active()},k&&m===c.templateUrl&&o===c.backdrop||(k&&k.remove(),l&&l.remove(),m=c.templateUrl,o=c.backdrop,d.get(m,{cache:b}).then(function(b){if(c.backdrop="undefined"==typeof c.backdrop?!0:c.backdrop,c.backdrop){var d='<div class="cg-busy cg-busy-backdrop cg-busy-backdrop-animation ng-hide" ng-show="$cgBusyIsActive()"></div>';l=a(d)(n),g.append(l)}var e='<div class="'+c.wrapperClass+' ng-hide" ng-show="$cgBusyIsActive()">'+b.data+"</div>";k=a(e)(n),angular.element(k.children()[0]).css("position","absolute").css("top",0).css("left",0).css("right",0).css("bottom",0),g.append(k)})["catch"](function(a){throw new Error("Template specified for cgBusy ("+c.templateUrl+") could not be loaded. "+a)}))},!0)}}}]),angular.module("cgBusy").run(["$templateCache",function(a){"use strict";a.put("angular-busy.html",'<div class="cg-busy-default-wrapper">\r\n\r\n <div class="cg-busy-default-sign">\r\n\r\n <div class="cg-busy-default-spinner">\r\n <div class="bar1"></div>\r\n <div class="bar2"></div>\r\n <div class="bar3"></div>\r\n <div class="bar4"></div>\r\n <div class="bar5"></div>\r\n <div class="bar6"></div>\r\n <div class="bar7"></div>\r\n <div class="bar8"></div>\r\n <div class="bar9"></div>\r\n <div class="bar10"></div>\r\n <div class="bar11"></div>\r\n <div class="bar12"></div>\r\n </div>\r\n\r\n <div class="cg-busy-default-text">{{$message}}</div>\r\n\r\n </div>\r\n\r\n</div>')}]); | ||
angular.module("cgBusy",[]),angular.module("cgBusy").factory("_cgBusyTrackerFactory",["$timeout","$q",function(a,b){return function(){var c={};c.promises=[],c.delayPromise=null,c.durationPromise=null,c.delayJustFinished=!1,c.reset=function(b){c.minDuration=b.minDuration,c.promises=[],angular.forEach(b.promises,function(a){a&&!a.$cgBusyFulfilled&&d(a)}),0!==c.promises.length&&(c.delayJustFinished=!1,b.delay&&(c.delayPromise=a(function(){c.delayPromise=null,c.delayJustFinished=!0},parseInt(b.delay,10))),b.minDuration&&(c.durationPromise=a(function(){c.durationPromise=null},parseInt(b.minDuration,10)+(b.delay?parseInt(b.delay,10):0))))},c.isRealPromise=function(a){var b=a&&(a.then||a.$then||a.$promise&&a.$promise.then);return"undefined"!=typeof b},c.isPromise=function(a){if(a===!0||a===!1)return!0;if(angular.isNumber(a))return!0;var b=a&&(a.then||a.$then||a.$promise&&a.$promise.then);return"undefined"!=typeof b},c.hide=function(a){return a===!1?!0:a.promise===!1?!0:angular.isNumber(a)===!0&&0>=a?!0:angular.isNumber(a.promise)===!0&&a.promise<=0?!0:void 0},c.callThen=function(a,d,e){if(c.hide(a))return void d();if(c.isRealPromise(a)){var f;a.then||a.$then?f=a:a.$promise?f=a.$promise:a.denodeify&&(f=b.when(a));var g=f.then||f.$then;g.call(f,d,e)}};var d=function(a){if(!c.isPromise(a))throw new Error("cgBusy expects a promise (or something that has a .promise or .$promise");-1===c.promises.indexOf(a)&&(c.promises.push(a),c.callThen(a,function(){a.$cgBusyFulfilled=!0,-1!==c.promises.indexOf(a)&&c.promises.splice(c.promises.indexOf(a),1)},function(){a.$cgBusyFulfilled=!0,-1!==c.promises.indexOf(a)&&c.promises.splice(c.promises.indexOf(a),1)}))};return c.active=function(){return c.delayPromise?!1:c.delayJustFinished?(c.delayJustFinished=!1,0===c.promises.length&&(c.durationPromise=null),c.promises.length>0):c.durationPromise?!0:c.promises.length>0},c}}]),angular.module("cgBusy").value("cgBusyDefaults",{}),angular.module("cgBusy").directive("cgBusy",["$compile","$templateCache","cgBusyDefaults","$http","_cgBusyTrackerFactory",function(a,b,c,d,e){return{restrict:"A",link:function(f,g,h,i){var j=g.css("position");"static"!==j&&""!==j&&"undefined"!=typeof j||g.css("position","relative");var k,l,m,n,o,p=e(),q={templateUrl:"angular-busy.html",delay:0,minDuration:0,backdrop:!0,message:"Please Wait...",wrapperClass:"cg-busy cg-busy-animation"};angular.extend(q,c),f.$watchCollection(h.cgBusy,function(c){if(c===!0?c={promise:!0}:c===!1?c={promise:null}:angular.isNumber(c)===!0&&(c=c>0?{promise:!0}:{promise:null}),c||(c={promise:null}),angular.isString(c))throw new Error("Invalid value for cg-busy. cgBusy no longer accepts string ids to represent promises/trackers.");(angular.isArray(c)||p.isPromise(c))&&(c={promise:c}),c=angular.extend(angular.copy(q),c),c.templateUrl||(c.templateUrl=q.templateUrl),angular.isArray(c.promise)||(c.promise=[c.promise]),n||(n=f.$new()),n.$message=c.message,angular.equals(p.promises,c.promise)||p.reset({promises:c.promise,delay:c.delay,minDuration:c.minDuration}),n.$cgBusyIsActive=function(){return p.active()},k&&m===c.templateUrl&&o===c.backdrop||(k&&k.remove(),l&&l.remove(),m=c.templateUrl,o=c.backdrop,d.get(m,{cache:b}).then(function(b){if(c.backdrop="undefined"==typeof c.backdrop?!0:c.backdrop,c.backdrop){var d='<div class="cg-busy cg-busy-backdrop cg-busy-backdrop-animation ng-hide" ng-show="$cgBusyIsActive()"></div>';l=a(d)(n),g.append(l)}var e='<div class="'+c.wrapperClass+' ng-hide" ng-show="$cgBusyIsActive()">'+b.data+"</div>";k=a(e)(n),angular.element(k.children()[0]).css("position","absolute").css("top",0).css("left",0).css("right",0).css("bottom",0),g.append(k)})["catch"](function(a){throw new Error("Template specified for cgBusy ("+c.templateUrl+") could not be loaded. "+a)}))},!0)}}}]),angular.module("cgBusy").run(["$templateCache",function(a){"use strict";a.put("angular-busy.html",'<div class="cg-busy-default-wrapper">\n\n <div class="cg-busy-default-sign">\n\n <div class="cg-busy-default-spinner">\n <div class="bar1"></div>\n <div class="bar2"></div>\n <div class="bar3"></div>\n <div class="bar4"></div>\n <div class="bar5"></div>\n <div class="bar6"></div>\n <div class="bar7"></div>\n <div class="bar8"></div>\n <div class="bar9"></div>\n <div class="bar10"></div>\n <div class="bar11"></div>\n <div class="bar12"></div>\n </div>\n\n <div class="cg-busy-default-text">{{$message}}</div>\n\n </div>\n\n</div>')}]); |
{ | ||
"name": "angular-busy2", | ||
"main": "index.js", | ||
"version": "4.1.5", | ||
"version": "4.1.6", | ||
"description": "", | ||
@@ -6,0 +6,0 @@ "repository": { |
Sorry, the diff of this file is not supported yet
41960
2269302
133