Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 41a5c40

Browse files
author
Misko Hevery
committed
tests pass jstd has issues
1 parent c4ef1f2 commit 41a5c40

File tree

7 files changed

+804
-34
lines changed

7 files changed

+804
-34
lines changed

angular-debug.js

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ function extensionMap(angular, name) {
107107
}
108108

109109
function jqLiteWrap(element) {
110-
if (typeof element == 'string') {
110+
if (isString(element)) {
111111
var div = document.createElement('div');
112112
div.innerHTML = element;
113113
element = div.childNodes[0];
@@ -126,6 +126,12 @@ function lowercase(value){ return isString(value) ? value.toLowerCase() : value;
126126
function uppercase(value){ return isString(value) ? value.toUpperCase() : value; }
127127
function trim(value) { return isString(value) ? value.replace(/^\s*/, '').replace(/\s*$/, '') : value; }
128128
function nodeName(element) { return (element[0] || element).nodeName; }
129+
130+
function isVisible(element) {
131+
var rect = element[0].getBoundingClientRect();
132+
return rect.width !=0 && rect.height !=0;
133+
}
134+
129135
function map(obj, iterator, context) {
130136
var results = [];
131137
foreach(obj, function(value, index, list) {
@@ -1940,6 +1946,11 @@ JQLite.prototype = {
19401946
this[0].className = trim((" " + this[0].className + " ").replace(/[\n\t]/g, " ").replace(" " + selector + " ", ""));
19411947
},
19421948

1949+
toggleClass: function(selector, condition) {
1950+
var self = this;
1951+
(condition ? self.addClass : self.removeClass).call(self, selector);
1952+
},
1953+
19431954
addClass: function( selector ) {
19441955
if (!this.hasClass(selector)) {
19451956
this[0].className = trim(this[0].className + ' ' + selector);
@@ -2361,7 +2372,7 @@ var angularFilterGoogleChartApi;
23612372

23622373
foreach({
23632374
'currency': function(amount){
2364-
jQuery(this.$element).toggleClass('ng-format-negative', amount < 0);
2375+
this.$element.toggleClass('ng-format-negative', amount < 0);
23652376
return '$' + angularFilter['number'].apply(this, [amount, 2]);
23662377
},
23672378

@@ -2397,7 +2408,7 @@ foreach({
23972408
},
23982409

23992410
'json': function(object) {
2400-
jQuery(this.$element).addClass("ng-monospace");
2411+
this.$element.addClass("ng-monospace");
24012412
return toJson(object, true);
24022413
},
24032414

@@ -3124,7 +3135,9 @@ function valueAccessor(scope, element) {
31243135
required = required || required === '';
31253136
if (!validator) throw "Validator named '" + validatorName + "' not found.";
31263137
function validate(value) {
3127-
var error = required && !trim(value) ? "Required" : validator({state:scope, scope:{get:scope.$get, set:scope.$set}}, value);
3138+
var error = required && !trim(value) ?
3139+
"Required" :
3140+
validator({state:scope, scope:{get:scope.$get, set:scope.$set}}, value);
31283141
if (error !== lastError) {
31293142
elementError(element, NG_VALIDATION_ERROR, error);
31303143
lastError = error;
@@ -3450,6 +3463,13 @@ angularService("$invalidWidgets", function(){
34503463
if (index === -1)
34513464
invalidWidgets.push(element);
34523465
};
3466+
invalidWidgets.visible = function() {
3467+
var count = 0;
3468+
foreach(invalidWidgets, function(widget){
3469+
count = count + (isVisible(widget) ? 1 : 0);
3470+
});
3471+
return count;
3472+
};
34533473
return invalidWidgets;
34543474
});
34553475
var browserSingleton;

0 commit comments

Comments
 (0)