rails-angularjs 1.4.0.pre.rc.1 → 1.4.0.pre.rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rails-angularjs/version.rb +1 -1
- data/vendor/assets/javascripts/angular-animate.js +247 -159
- data/vendor/assets/javascripts/angular-animate.min.js +45 -44
- data/vendor/assets/javascripts/angular-animate.min.js.map +3 -3
- data/vendor/assets/javascripts/angular-aria.js +1 -1
- data/vendor/assets/javascripts/angular-aria.min.js +1 -1
- data/vendor/assets/javascripts/angular-cookies.js +1 -1
- data/vendor/assets/javascripts/angular-cookies.min.js +1 -1
- data/vendor/assets/javascripts/angular-loader.js +2 -2
- data/vendor/assets/javascripts/angular-loader.min.js +2 -2
- data/vendor/assets/javascripts/angular-message-format.js +1 -1
- data/vendor/assets/javascripts/angular-message-format.min.js +1 -1
- data/vendor/assets/javascripts/angular-messages.js +1 -1
- data/vendor/assets/javascripts/angular-messages.min.js +1 -1
- data/vendor/assets/javascripts/angular-mocks.js +1 -1
- data/vendor/assets/javascripts/angular-resource.js +3 -3
- data/vendor/assets/javascripts/angular-resource.min.js +8 -8
- data/vendor/assets/javascripts/angular-resource.min.js.map +1 -1
- data/vendor/assets/javascripts/angular-route.js +1 -1
- data/vendor/assets/javascripts/angular-route.min.js +1 -1
- data/vendor/assets/javascripts/angular-sanitize.js +1 -1
- data/vendor/assets/javascripts/angular-sanitize.min.js +1 -1
- data/vendor/assets/javascripts/angular-scenario.js +316 -143
- data/vendor/assets/javascripts/angular-touch.js +12 -10
- data/vendor/assets/javascripts/angular-touch.min.js +8 -8
- data/vendor/assets/javascripts/angular-touch.min.js.map +2 -2
- data/vendor/assets/javascripts/angular.js +316 -143
- data/vendor/assets/javascripts/angular.min.js +267 -265
- data/vendor/assets/javascripts/angular.min.js.map +3 -3
- metadata +2 -3
@@ -9190,7 +9190,7 @@ return jQuery;
|
|
9190
9190
|
}));
|
9191
9191
|
|
9192
9192
|
/**
|
9193
|
-
* @license AngularJS v1.4.0-rc.
|
9193
|
+
* @license AngularJS v1.4.0-rc.2
|
9194
9194
|
* (c) 2010-2015 Google, Inc. http://angularjs.org
|
9195
9195
|
* License: MIT
|
9196
9196
|
*/
|
@@ -9249,7 +9249,7 @@ function minErr(module, ErrorConstructor) {
|
|
9249
9249
|
return match;
|
9250
9250
|
});
|
9251
9251
|
|
9252
|
-
message += '\nhttp://errors.angularjs.org/1.4.0-rc.
|
9252
|
+
message += '\nhttp://errors.angularjs.org/1.4.0-rc.2/' +
|
9253
9253
|
(module ? module + '/' : '') + code;
|
9254
9254
|
|
9255
9255
|
for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') {
|
@@ -9297,6 +9297,7 @@ function minErr(module, ErrorConstructor) {
|
|
9297
9297
|
isUndefined: true,
|
9298
9298
|
isDefined: true,
|
9299
9299
|
isObject: true,
|
9300
|
+
isBlankObject: true,
|
9300
9301
|
isString: true,
|
9301
9302
|
isNumber: true,
|
9302
9303
|
isDate: true,
|
@@ -9436,6 +9437,7 @@ var
|
|
9436
9437
|
splice = [].splice,
|
9437
9438
|
push = [].push,
|
9438
9439
|
toString = Object.prototype.toString,
|
9440
|
+
getPrototypeOf = Object.getPrototypeOf,
|
9439
9441
|
ngMinErr = minErr('ng'),
|
9440
9442
|
|
9441
9443
|
/** @name angular */
|
@@ -9461,7 +9463,9 @@ function isArrayLike(obj) {
|
|
9461
9463
|
return false;
|
9462
9464
|
}
|
9463
9465
|
|
9464
|
-
|
9466
|
+
// Support: iOS 8.2 (not reproducible in simulator)
|
9467
|
+
// "length" in obj used to prevent JIT error (gh-11508)
|
9468
|
+
var length = "length" in Object(obj) && obj.length;
|
9465
9469
|
|
9466
9470
|
if (obj.nodeType === NODE_TYPE_ELEMENT && length) {
|
9467
9471
|
return true;
|
@@ -9526,12 +9530,25 @@ function forEach(obj, iterator, context) {
|
|
9526
9530
|
}
|
9527
9531
|
} else if (obj.forEach && obj.forEach !== forEach) {
|
9528
9532
|
obj.forEach(iterator, context, obj);
|
9529
|
-
} else {
|
9533
|
+
} else if (isBlankObject(obj)) {
|
9534
|
+
// createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty
|
9535
|
+
for (key in obj) {
|
9536
|
+
iterator.call(context, obj[key], key, obj);
|
9537
|
+
}
|
9538
|
+
} else if (typeof obj.hasOwnProperty === 'function') {
|
9539
|
+
// Slow path for objects inheriting Object.prototype, hasOwnProperty check needed
|
9530
9540
|
for (key in obj) {
|
9531
9541
|
if (obj.hasOwnProperty(key)) {
|
9532
9542
|
iterator.call(context, obj[key], key, obj);
|
9533
9543
|
}
|
9534
9544
|
}
|
9545
|
+
} else {
|
9546
|
+
// Slow path for objects which do not have a method `hasOwnProperty`
|
9547
|
+
for (key in obj) {
|
9548
|
+
if (hasOwnProperty.call(obj, key)) {
|
9549
|
+
iterator.call(context, obj[key], key, obj);
|
9550
|
+
}
|
9551
|
+
}
|
9535
9552
|
}
|
9536
9553
|
}
|
9537
9554
|
return obj;
|
@@ -9757,6 +9774,16 @@ function isObject(value) {
|
|
9757
9774
|
}
|
9758
9775
|
|
9759
9776
|
|
9777
|
+
/**
|
9778
|
+
* Determine if a value is an object with a null prototype
|
9779
|
+
*
|
9780
|
+
* @returns {boolean} True if `value` is an `Object` with a null prototype
|
9781
|
+
*/
|
9782
|
+
function isBlankObject(value) {
|
9783
|
+
return value !== null && typeof value === 'object' && !getPrototypeOf(value);
|
9784
|
+
}
|
9785
|
+
|
9786
|
+
|
9760
9787
|
/**
|
9761
9788
|
* @ngdoc function
|
9762
9789
|
* @name angular.isString
|
@@ -10040,7 +10067,7 @@ function copy(source, destination, stackSource, stackDest) {
|
|
10040
10067
|
destination = new RegExp(source.source, source.toString().match(/[^\/]*$/)[0]);
|
10041
10068
|
destination.lastIndex = source.lastIndex;
|
10042
10069
|
} else if (isObject(source)) {
|
10043
|
-
var emptyObject = Object.create(
|
10070
|
+
var emptyObject = Object.create(getPrototypeOf(source));
|
10044
10071
|
destination = copy(source, emptyObject, stackSource, stackDest);
|
10045
10072
|
}
|
10046
10073
|
}
|
@@ -10059,7 +10086,7 @@ function copy(source, destination, stackSource, stackDest) {
|
|
10059
10086
|
stackDest.push(destination);
|
10060
10087
|
}
|
10061
10088
|
|
10062
|
-
var result;
|
10089
|
+
var result, key;
|
10063
10090
|
if (isArray(source)) {
|
10064
10091
|
destination.length = 0;
|
10065
10092
|
for (var i = 0; i < source.length; i++) {
|
@@ -10079,21 +10106,40 @@ function copy(source, destination, stackSource, stackDest) {
|
|
10079
10106
|
delete destination[key];
|
10080
10107
|
});
|
10081
10108
|
}
|
10082
|
-
|
10083
|
-
|
10084
|
-
|
10085
|
-
|
10086
|
-
|
10087
|
-
|
10109
|
+
if (isBlankObject(source)) {
|
10110
|
+
// createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty
|
10111
|
+
for (key in source) {
|
10112
|
+
putValue(key, source[key], destination, stackSource, stackDest);
|
10113
|
+
}
|
10114
|
+
} else if (source && typeof source.hasOwnProperty === 'function') {
|
10115
|
+
// Slow path, which must rely on hasOwnProperty
|
10116
|
+
for (key in source) {
|
10117
|
+
if (source.hasOwnProperty(key)) {
|
10118
|
+
putValue(key, source[key], destination, stackSource, stackDest);
|
10119
|
+
}
|
10120
|
+
}
|
10121
|
+
} else {
|
10122
|
+
// Slowest path --- hasOwnProperty can't be called as a method
|
10123
|
+
for (key in source) {
|
10124
|
+
if (hasOwnProperty.call(source, key)) {
|
10125
|
+
putValue(key, source[key], destination, stackSource, stackDest);
|
10088
10126
|
}
|
10089
|
-
destination[key] = result;
|
10090
10127
|
}
|
10091
10128
|
}
|
10092
10129
|
setHashKey(destination,h);
|
10093
10130
|
}
|
10094
|
-
|
10095
10131
|
}
|
10096
10132
|
return destination;
|
10133
|
+
|
10134
|
+
function putValue(key, val, destination, stackSource, stackDest) {
|
10135
|
+
// No context allocation, trivial outer scope, easily inlined
|
10136
|
+
var result = copy(val, null, stackSource, stackDest);
|
10137
|
+
if (isObject(val)) {
|
10138
|
+
stackSource.push(val);
|
10139
|
+
stackDest.push(result);
|
10140
|
+
}
|
10141
|
+
destination[key] = result;
|
10142
|
+
}
|
10097
10143
|
}
|
10098
10144
|
|
10099
10145
|
/**
|
@@ -10174,14 +10220,14 @@ function equals(o1, o2) {
|
|
10174
10220
|
} else {
|
10175
10221
|
if (isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) ||
|
10176
10222
|
isArray(o2) || isDate(o2) || isRegExp(o2)) return false;
|
10177
|
-
keySet =
|
10223
|
+
keySet = createMap();
|
10178
10224
|
for (key in o1) {
|
10179
10225
|
if (key.charAt(0) === '$' || isFunction(o1[key])) continue;
|
10180
10226
|
if (!equals(o1[key], o2[key])) return false;
|
10181
10227
|
keySet[key] = true;
|
10182
10228
|
}
|
10183
10229
|
for (key in o2) {
|
10184
|
-
if (!
|
10230
|
+
if (!(key in keySet) &&
|
10185
10231
|
key.charAt(0) !== '$' &&
|
10186
10232
|
o2[key] !== undefined &&
|
10187
10233
|
!isFunction(o2[key])) return false;
|
@@ -10218,17 +10264,17 @@ var csp = function() {
|
|
10218
10264
|
* @name ngJq
|
10219
10265
|
*
|
10220
10266
|
* @element ANY
|
10221
|
-
* @param {string=} the name of the library available under `window`
|
10267
|
+
* @param {string=} ngJq the name of the library available under `window`
|
10222
10268
|
* to be used for angular.element
|
10223
10269
|
* @description
|
10224
10270
|
* Use this directive to force the angular.element library. This should be
|
10225
10271
|
* used to force either jqLite by leaving ng-jq blank or setting the name of
|
10226
10272
|
* the jquery variable under window (eg. jQuery).
|
10227
10273
|
*
|
10228
|
-
* Since this directive
|
10229
|
-
*
|
10230
|
-
*
|
10231
|
-
* ignored.
|
10274
|
+
* Since angular looks for this directive when it is loaded (doesn't wait for the
|
10275
|
+
* DOMContentLoaded event), it must be placed on an element that comes before the script
|
10276
|
+
* which loads angular. Also, only the first instance of `ng-jq` will be used and all
|
10277
|
+
* others ignored.
|
10232
10278
|
*
|
10233
10279
|
* @example
|
10234
10280
|
* This example shows how to force jqLite using the `ngJq` directive to the `html` tag.
|
@@ -11478,11 +11524,11 @@ function toDebugString(obj) {
|
|
11478
11524
|
* - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
|
11479
11525
|
*/
|
11480
11526
|
var version = {
|
11481
|
-
full: '1.4.0-rc.
|
11527
|
+
full: '1.4.0-rc.2', // all of these placeholder strings will be replaced by grunt's
|
11482
11528
|
major: 1, // package task
|
11483
11529
|
minor: 4,
|
11484
11530
|
dot: 0,
|
11485
|
-
codeName: '
|
11531
|
+
codeName: 'rocket-zambonimation'
|
11486
11532
|
};
|
11487
11533
|
|
11488
11534
|
|
@@ -11665,7 +11711,7 @@ function publishExternalAPI(angular) {
|
|
11665
11711
|
* Angular to manipulate the DOM in a cross-browser compatible way. **jqLite** implements only the most
|
11666
11712
|
* commonly needed functionality with the goal of having a very small footprint.</div>
|
11667
11713
|
*
|
11668
|
-
* To use jQuery
|
11714
|
+
* To use `jQuery`, simply ensure it is loaded before the `angular.js` file.
|
11669
11715
|
*
|
11670
11716
|
* <div class="alert">**Note:** all element references in Angular are always wrapped with jQuery or
|
11671
11717
|
* jqLite; they are never raw DOM references.</div>
|
@@ -11681,7 +11727,7 @@ function publishExternalAPI(angular) {
|
|
11681
11727
|
* - [`children()`](http://api.jquery.com/children/) - Does not support selectors
|
11682
11728
|
* - [`clone()`](http://api.jquery.com/clone/)
|
11683
11729
|
* - [`contents()`](http://api.jquery.com/contents/)
|
11684
|
-
* - [`css()`](http://api.jquery.com/css/) - Only retrieves inline-styles, does not call `getComputedStyle()
|
11730
|
+
* - [`css()`](http://api.jquery.com/css/) - Only retrieves inline-styles, does not call `getComputedStyle()`. As a setter, does not convert numbers to strings or append 'px'.
|
11685
11731
|
* - [`data()`](http://api.jquery.com/data/)
|
11686
11732
|
* - [`detach()`](http://api.jquery.com/detach/)
|
11687
11733
|
* - [`empty()`](http://api.jquery.com/empty/)
|
@@ -12925,7 +12971,7 @@ function annotate(fn, strictDi, name) {
|
|
12925
12971
|
* Return an instance of the service.
|
12926
12972
|
*
|
12927
12973
|
* @param {string} name The name of the instance to retrieve.
|
12928
|
-
* @param {string} caller An optional string to provide the origin of the function call for error messages.
|
12974
|
+
* @param {string=} caller An optional string to provide the origin of the function call for error messages.
|
12929
12975
|
* @return {*} The instance.
|
12930
12976
|
*/
|
12931
12977
|
|
@@ -12936,8 +12982,8 @@ function annotate(fn, strictDi, name) {
|
|
12936
12982
|
* @description
|
12937
12983
|
* Invoke the method and supply the method arguments from the `$injector`.
|
12938
12984
|
*
|
12939
|
-
* @param {
|
12940
|
-
* {@link guide/di $inject Annotation} rules.
|
12985
|
+
* @param {Function|Array.<string|Function>} fn The injectable function to invoke. Function parameters are
|
12986
|
+
* injected according to the {@link guide/di $inject Annotation} rules.
|
12941
12987
|
* @param {Object=} self The `this` for the invoked method.
|
12942
12988
|
* @param {Object=} locals Optional object. If preset then any argument names are read from this
|
12943
12989
|
* object first, before the `$injector` is consulted.
|
@@ -13204,8 +13250,8 @@ function annotate(fn, strictDi, name) {
|
|
13204
13250
|
* configure your service in a provider.
|
13205
13251
|
*
|
13206
13252
|
* @param {string} name The name of the instance.
|
13207
|
-
* @param {
|
13208
|
-
*
|
13253
|
+
* @param {Function|Array.<string|Function>} $getFn The injectable $getFn for the instance creation.
|
13254
|
+
* Internally this is a short hand for `$provide.provider(name, {$get: $getFn})`.
|
13209
13255
|
* @returns {Object} registered provider instance
|
13210
13256
|
*
|
13211
13257
|
* @example
|
@@ -13240,7 +13286,8 @@ function annotate(fn, strictDi, name) {
|
|
13240
13286
|
* as a type/class.
|
13241
13287
|
*
|
13242
13288
|
* @param {string} name The name of the instance.
|
13243
|
-
* @param {Function} constructor
|
13289
|
+
* @param {Function|Array.<string|Function>} constructor An injectable class (constructor function)
|
13290
|
+
* that will be instantiated.
|
13244
13291
|
* @returns {Object} registered provider instance
|
13245
13292
|
*
|
13246
13293
|
* @example
|
@@ -13339,7 +13386,7 @@ function annotate(fn, strictDi, name) {
|
|
13339
13386
|
* object which replaces or wraps and delegates to the original service.
|
13340
13387
|
*
|
13341
13388
|
* @param {string} name The name of the service to decorate.
|
13342
|
-
* @param {
|
13389
|
+
* @param {Function|Array.<string|Function>} decorator This function will be invoked when the service needs to be
|
13343
13390
|
* instantiated and should return the decorated service instance. The function is called using
|
13344
13391
|
* the {@link auto.$injector#invoke injector.invoke} method and is therefore fully injectable.
|
13345
13392
|
* Local injection arguments:
|
@@ -13868,6 +13915,7 @@ function $AnchorScrollProvider() {
|
|
13868
13915
|
|
13869
13916
|
var $animateMinErr = minErr('$animate');
|
13870
13917
|
var ELEMENT_NODE = 1;
|
13918
|
+
var NG_ANIMATE_CLASSNAME = 'ng-animate';
|
13871
13919
|
|
13872
13920
|
function mergeClasses(a,b) {
|
13873
13921
|
if (!a && !b) return '';
|
@@ -13892,7 +13940,9 @@ function splitClasses(classes) {
|
|
13892
13940
|
classes = classes.split(' ');
|
13893
13941
|
}
|
13894
13942
|
|
13895
|
-
|
13943
|
+
// Use createMap() to prevent class assumptions involving property names in
|
13944
|
+
// Object.prototype
|
13945
|
+
var obj = createMap();
|
13896
13946
|
forEach(classes, function(klass) {
|
13897
13947
|
// sometimes the split leaves empty string values
|
13898
13948
|
// incase extra spaces were applied to the options
|
@@ -14097,6 +14147,13 @@ var $AnimateProvider = ['$provide', function($provide) {
|
|
14097
14147
|
this.classNameFilter = function(expression) {
|
14098
14148
|
if (arguments.length === 1) {
|
14099
14149
|
this.$$classNameFilter = (expression instanceof RegExp) ? expression : null;
|
14150
|
+
if (this.$$classNameFilter) {
|
14151
|
+
var reservedRegex = new RegExp("(\\s+|\\/)" + NG_ANIMATE_CLASSNAME + "(\\s+|\\/)");
|
14152
|
+
if (reservedRegex.test(this.$$classNameFilter.toString())) {
|
14153
|
+
throw $animateMinErr('nongcls','$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.', NG_ANIMATE_CLASSNAME);
|
14154
|
+
|
14155
|
+
}
|
14156
|
+
}
|
14100
14157
|
}
|
14101
14158
|
return this.$$classNameFilter;
|
14102
14159
|
};
|
@@ -15995,6 +16052,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
|
|
15995
16052
|
if (!letter || letter !== lowercase(letter)) {
|
15996
16053
|
throw $compileMinErr('baddir', "Directive name '{0}' is invalid. The first character must be a lowercase letter", name);
|
15997
16054
|
}
|
16055
|
+
if (name !== name.trim()) {
|
16056
|
+
throw $compileMinErr('baddir',
|
16057
|
+
"Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces",
|
16058
|
+
name);
|
16059
|
+
}
|
15998
16060
|
}
|
15999
16061
|
|
16000
16062
|
/**
|
@@ -18179,34 +18241,14 @@ var JSON_ENDS = {
|
|
18179
18241
|
};
|
18180
18242
|
var JSON_PROTECTION_PREFIX = /^\)\]\}',?\n/;
|
18181
18243
|
|
18182
|
-
function
|
18183
|
-
|
18184
|
-
|
18185
|
-
if (isObject(v)) {
|
18186
|
-
return isDate(v) ? v.toISOString() : toJson(v);
|
18187
|
-
}
|
18188
|
-
return v;
|
18244
|
+
function serializeValue(v) {
|
18245
|
+
if (isObject(v)) {
|
18246
|
+
return isDate(v) ? v.toISOString() : toJson(v);
|
18189
18247
|
}
|
18190
|
-
|
18191
|
-
return function paramSerializer(params) {
|
18192
|
-
if (!params) return '';
|
18193
|
-
var parts = [];
|
18194
|
-
forEachSorted(params, function(value, key) {
|
18195
|
-
if (value === null || isUndefined(value)) return;
|
18196
|
-
if (isArray(value) || isObject(value) && jQueryMode) {
|
18197
|
-
forEach(value, function(v, k) {
|
18198
|
-
var keySuffix = jQueryMode ? '[' + (!isArray(value) ? k : '') + ']' : '';
|
18199
|
-
parts.push(encodeUriQuery(key + keySuffix) + '=' + encodeUriQuery(serializeValue(v)));
|
18200
|
-
});
|
18201
|
-
} else {
|
18202
|
-
parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(value)));
|
18203
|
-
}
|
18204
|
-
});
|
18205
|
-
|
18206
|
-
return parts.length > 0 ? parts.join('&') : '';
|
18207
|
-
};
|
18248
|
+
return v;
|
18208
18249
|
}
|
18209
18250
|
|
18251
|
+
|
18210
18252
|
function $HttpParamSerializerProvider() {
|
18211
18253
|
/**
|
18212
18254
|
* @ngdoc service
|
@@ -18221,7 +18263,22 @@ function $HttpParamSerializerProvider() {
|
|
18221
18263
|
* * `{'foo': {'bar':'baz'}}` results in `foo=%7B%22bar%22%3A%22baz%22%7D"` (stringified and encoded representation of an object)
|
18222
18264
|
* */
|
18223
18265
|
this.$get = function() {
|
18224
|
-
return
|
18266
|
+
return function ngParamSerializer(params) {
|
18267
|
+
if (!params) return '';
|
18268
|
+
var parts = [];
|
18269
|
+
forEachSorted(params, function(value, key) {
|
18270
|
+
if (value === null || isUndefined(value)) return;
|
18271
|
+
if (isArray(value)) {
|
18272
|
+
forEach(value, function(v, k) {
|
18273
|
+
parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(v)));
|
18274
|
+
});
|
18275
|
+
} else {
|
18276
|
+
parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(serializeValue(value)));
|
18277
|
+
}
|
18278
|
+
});
|
18279
|
+
|
18280
|
+
return parts.join('&');
|
18281
|
+
};
|
18225
18282
|
};
|
18226
18283
|
}
|
18227
18284
|
|
@@ -18234,7 +18291,30 @@ function $HttpParamSerializerJQLikeProvider() {
|
|
18234
18291
|
* Alternative $http params serializer that follows jQuery's [`param()`](http://api.jquery.com/jquery.param/) method logic.
|
18235
18292
|
* */
|
18236
18293
|
this.$get = function() {
|
18237
|
-
return
|
18294
|
+
return function jQueryLikeParamSerializer(params) {
|
18295
|
+
if (!params) return '';
|
18296
|
+
var parts = [];
|
18297
|
+
serialize(params, '', true);
|
18298
|
+
return parts.join('&');
|
18299
|
+
|
18300
|
+
function serialize(toSerialize, prefix, topLevel) {
|
18301
|
+
if (toSerialize === null || isUndefined(toSerialize)) return;
|
18302
|
+
if (isArray(toSerialize)) {
|
18303
|
+
forEach(toSerialize, function(value) {
|
18304
|
+
serialize(value, prefix + '[]');
|
18305
|
+
});
|
18306
|
+
} else if (isObject(toSerialize) && !isDate(toSerialize)) {
|
18307
|
+
forEachSorted(toSerialize, function(value, key) {
|
18308
|
+
serialize(value, prefix +
|
18309
|
+
(topLevel ? '' : '[') +
|
18310
|
+
key +
|
18311
|
+
(topLevel ? '' : ']'));
|
18312
|
+
});
|
18313
|
+
} else {
|
18314
|
+
parts.push(encodeUriQuery(prefix) + '=' + encodeUriQuery(serializeValue(toSerialize)));
|
18315
|
+
}
|
18316
|
+
}
|
18317
|
+
};
|
18238
18318
|
};
|
18239
18319
|
}
|
18240
18320
|
|
@@ -20603,11 +20683,19 @@ var locationPrototype = {
|
|
20603
20683
|
*
|
20604
20684
|
* Return host of current url.
|
20605
20685
|
*
|
20686
|
+
* Note: compared to the non-angular version `location.host` which returns `hostname:port`, this returns the `hostname` portion only.
|
20687
|
+
*
|
20606
20688
|
*
|
20607
20689
|
* ```js
|
20608
20690
|
* // given url http://example.com/#/some/path?foo=bar&baz=xoxo
|
20609
20691
|
* var host = $location.host();
|
20610
20692
|
* // => "example.com"
|
20693
|
+
*
|
20694
|
+
* // given url http://user:password@example.com:8080/#/some/path?foo=bar&baz=xoxo
|
20695
|
+
* host = $location.host();
|
20696
|
+
* // => "example.com"
|
20697
|
+
* host = location.host;
|
20698
|
+
* // => "example.com:8080"
|
20611
20699
|
* ```
|
20612
20700
|
*
|
20613
20701
|
* @return {string} host of current url.
|
@@ -23364,9 +23452,11 @@ function $ParseProvider() {
|
|
23364
23452
|
* provide a progress indication, before the promise is resolved or rejected.
|
23365
23453
|
*
|
23366
23454
|
* This method *returns a new promise* which is resolved or rejected via the return value of the
|
23367
|
-
* `successCallback`, `errorCallback
|
23368
|
-
*
|
23369
|
-
*
|
23455
|
+
* `successCallback`, `errorCallback` (unless that value is a promise, in which case it is resolved
|
23456
|
+
* with the value which is resolved in that promise using
|
23457
|
+
* [promise chaining](http://www.html5rocks.com/en/tutorials/es6/promises/#toc-promises-queues)).
|
23458
|
+
* It also notifies via the return value of the `notifyCallback` method. The promise cannot be
|
23459
|
+
* resolved or rejected from the notifyCallback method.
|
23370
23460
|
*
|
23371
23461
|
* - `catch(errorCallback)` – shorthand for `promise.then(null, errorCallback)`
|
23372
23462
|
*
|
@@ -23802,7 +23892,7 @@ function $$RAFProvider() { //rAF
|
|
23802
23892
|
$window.webkitCancelRequestAnimationFrame;
|
23803
23893
|
|
23804
23894
|
var rafSupported = !!requestAnimationFrame;
|
23805
|
-
var
|
23895
|
+
var rafFn = rafSupported
|
23806
23896
|
? function(fn) {
|
23807
23897
|
var id = requestAnimationFrame(fn);
|
23808
23898
|
return function() {
|
@@ -23816,9 +23906,47 @@ function $$RAFProvider() { //rAF
|
|
23816
23906
|
};
|
23817
23907
|
};
|
23818
23908
|
|
23819
|
-
|
23909
|
+
queueFn.supported = rafSupported;
|
23910
|
+
|
23911
|
+
var cancelLastRAF;
|
23912
|
+
var taskCount = 0;
|
23913
|
+
var taskQueue = [];
|
23914
|
+
return queueFn;
|
23915
|
+
|
23916
|
+
function flush() {
|
23917
|
+
for (var i = 0; i < taskQueue.length; i++) {
|
23918
|
+
var task = taskQueue[i];
|
23919
|
+
if (task) {
|
23920
|
+
taskQueue[i] = null;
|
23921
|
+
task();
|
23922
|
+
}
|
23923
|
+
}
|
23924
|
+
taskCount = taskQueue.length = 0;
|
23925
|
+
}
|
23926
|
+
|
23927
|
+
function queueFn(asyncFn) {
|
23928
|
+
var index = taskQueue.length;
|
23929
|
+
|
23930
|
+
taskCount++;
|
23931
|
+
taskQueue.push(asyncFn);
|
23820
23932
|
|
23821
|
-
|
23933
|
+
if (index === 0) {
|
23934
|
+
cancelLastRAF = rafFn(flush);
|
23935
|
+
}
|
23936
|
+
|
23937
|
+
return function cancelQueueFn() {
|
23938
|
+
if (index >= 0) {
|
23939
|
+
taskQueue[index] = null;
|
23940
|
+
index = null;
|
23941
|
+
|
23942
|
+
if (--taskCount === 0 && cancelLastRAF) {
|
23943
|
+
cancelLastRAF();
|
23944
|
+
cancelLastRAF = null;
|
23945
|
+
taskQueue.length = 0;
|
23946
|
+
}
|
23947
|
+
}
|
23948
|
+
};
|
23949
|
+
}
|
23822
23950
|
}];
|
23823
23951
|
}
|
23824
23952
|
|
@@ -29124,11 +29252,11 @@ function FormController(element, attrs, $scope, $animate, $interpolate) {
|
|
29124
29252
|
<form name="myForm" ng-controller="FormController" class="my-form">
|
29125
29253
|
userType: <input name="input" ng-model="userType" required>
|
29126
29254
|
<span class="error" ng-show="myForm.input.$error.required">Required!</span><br>
|
29127
|
-
<
|
29128
|
-
<
|
29129
|
-
<
|
29130
|
-
<
|
29131
|
-
<
|
29255
|
+
<code>userType = {{userType}}</code><br>
|
29256
|
+
<code>myForm.input.$valid = {{myForm.input.$valid}}</code><br>
|
29257
|
+
<code>myForm.input.$error = {{myForm.input.$error}}</code><br>
|
29258
|
+
<code>myForm.$valid = {{myForm.$valid}}</code><br>
|
29259
|
+
<code>myForm.$error.required = {{!!myForm.$error.required}}</code><br>
|
29132
29260
|
</form>
|
29133
29261
|
</file>
|
29134
29262
|
<file name="protractor.js" type="protractor">
|
@@ -31226,7 +31354,9 @@ function classDirective(name, selector) {
|
|
31226
31354
|
}
|
31227
31355
|
|
31228
31356
|
function digestClassCounts(classes, count) {
|
31229
|
-
|
31357
|
+
// Use createMap() to prevent class assumptions involving property
|
31358
|
+
// names in Object.prototype
|
31359
|
+
var classCounts = element.data('$classCounts') || createMap();
|
31230
31360
|
var classesToUpdate = [];
|
31231
31361
|
forEach(classes, function(className) {
|
31232
31362
|
if (count > 0 || classCounts[className]) {
|
@@ -31609,17 +31739,13 @@ var ngClassEvenDirective = classDirective('Even', 1);
|
|
31609
31739
|
* document; alternatively, the css rule above must be included in the external stylesheet of the
|
31610
31740
|
* application.
|
31611
31741
|
*
|
31612
|
-
* Legacy browsers, like IE7, do not provide attribute selector support (added in CSS 2.1) so they
|
31613
|
-
* cannot match the `[ng\:cloak]` selector. To work around this limitation, you must add the css
|
31614
|
-
* class `ng-cloak` in addition to the `ngCloak` directive as shown in the example below.
|
31615
|
-
*
|
31616
31742
|
* @element ANY
|
31617
31743
|
*
|
31618
31744
|
* @example
|
31619
31745
|
<example>
|
31620
31746
|
<file name="index.html">
|
31621
31747
|
<div id="template1" ng-cloak>{{ 'hello' }}</div>
|
31622
|
-
<div id="template2"
|
31748
|
+
<div id="template2" class="ng-cloak">{{ 'world' }}</div>
|
31623
31749
|
</file>
|
31624
31750
|
<file name="protractor.js" type="protractor">
|
31625
31751
|
it('should remove the template directive and css class', function() {
|
@@ -33648,7 +33774,7 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
|
|
33648
33774
|
* If the validity changes to invalid, the model will be set to `undefined`,
|
33649
33775
|
* unless {@link ngModelOptions `ngModelOptions.allowInvalid`} is `true`.
|
33650
33776
|
* If the validity changes to valid, it will set the model to the last available valid
|
33651
|
-
* modelValue
|
33777
|
+
* `$modelValue`, i.e. either the last parsed value or the last value set from the scope.
|
33652
33778
|
*/
|
33653
33779
|
this.$validate = function() {
|
33654
33780
|
// ignore $validate before model is initialized
|
@@ -34140,10 +34266,11 @@ var NgModelController = ['$scope', '$exceptionHandler', '$attrs', '$element', '$
|
|
34140
34266
|
var _name = 'Brian';
|
34141
34267
|
$scope.user = {
|
34142
34268
|
name: function(newName) {
|
34143
|
-
|
34144
|
-
|
34145
|
-
|
34146
|
-
|
34269
|
+
// Note that newName can be undefined for two reasons:
|
34270
|
+
// 1. Because it is called as a getter and thus called with no arguments
|
34271
|
+
// 2. Because the property should actually be set to undefined. This happens e.g. if the
|
34272
|
+
// input is invalid
|
34273
|
+
return arguments.length ? (_name = newName) : _name;
|
34147
34274
|
}
|
34148
34275
|
};
|
34149
34276
|
}]);
|
@@ -34357,7 +34484,11 @@ var DEFAULT_REGEXP = /(\s+|^)default(\s+|$)/;
|
|
34357
34484
|
var _name = 'Brian';
|
34358
34485
|
$scope.user = {
|
34359
34486
|
name: function(newName) {
|
34360
|
-
|
34487
|
+
// Note that newName can be undefined for two reasons:
|
34488
|
+
// 1. Because it is called as a getter and thus called with no arguments
|
34489
|
+
// 2. Because the property should actually be set to undefined. This happens e.g. if the
|
34490
|
+
// input is invalid
|
34491
|
+
return arguments.length ? (_name = newName) : _name;
|
34361
34492
|
}
|
34362
34493
|
};
|
34363
34494
|
}]);
|
@@ -34557,11 +34688,21 @@ var ngOptionsMinErr = minErr('ngOptions');
|
|
34557
34688
|
* be nested into the `<select>` element. This element will then represent the `null` or "not selected"
|
34558
34689
|
* option. See example below for demonstration.
|
34559
34690
|
*
|
34560
|
-
*
|
34561
|
-
*
|
34562
|
-
*
|
34563
|
-
*
|
34564
|
-
*
|
34691
|
+
* ## Complex Models (objects or collections)
|
34692
|
+
*
|
34693
|
+
* **Note:** By default, `ngModel` watches the model by reference, not value. This is important when
|
34694
|
+
* binding any input directive to a model that is an object or a collection.
|
34695
|
+
*
|
34696
|
+
* Since this is a common situation for `ngOptions` the directive additionally watches the model using
|
34697
|
+
* `$watchCollection` when the select has the `multiple` attribute or when there is a `track by` clause in
|
34698
|
+
* the options expression. This allows ngOptions to trigger a re-rendering of the options even if the actual
|
34699
|
+
* object/collection has not changed identity but only a property on the object or an item in the collection
|
34700
|
+
* changes.
|
34701
|
+
*
|
34702
|
+
* Note that `$watchCollection` does a shallow comparison of the properties of the object (or the items in the collection
|
34703
|
+
* if the model is an array). This means that changing a property deeper inside the object/collection that the
|
34704
|
+
* first level will not trigger a re-rendering.
|
34705
|
+
*
|
34565
34706
|
*
|
34566
34707
|
* ## `select` **`as`**
|
34567
34708
|
*
|
@@ -34777,9 +34918,13 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
34777
34918
|
// Get the value by which we are going to track the option
|
34778
34919
|
// if we have a trackFn then use that (passing scope and locals)
|
34779
34920
|
// otherwise just hash the given viewValue
|
34780
|
-
var
|
34781
|
-
function(
|
34782
|
-
function getHashOfValue(
|
34921
|
+
var getTrackByValueFn = trackBy ?
|
34922
|
+
function(value, locals) { return trackByFn(scope, locals); } :
|
34923
|
+
function getHashOfValue(value) { return hashKey(value); };
|
34924
|
+
var getTrackByValue = function(value, key) {
|
34925
|
+
return getTrackByValueFn(value, getLocals(value, key));
|
34926
|
+
};
|
34927
|
+
|
34783
34928
|
var displayFn = $parse(match[2] || match[1]);
|
34784
34929
|
var groupByFn = $parse(match[3] || '');
|
34785
34930
|
var disableWhenFn = $parse(match[4] || '');
|
@@ -34806,6 +34951,7 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
34806
34951
|
|
34807
34952
|
return {
|
34808
34953
|
trackBy: trackBy,
|
34954
|
+
getTrackByValue: getTrackByValue,
|
34809
34955
|
getWatchables: $parse(valuesFn, function(values) {
|
34810
34956
|
// Create a collection of things that we would like to watch (watchedArray)
|
34811
34957
|
// so that they can all be watched using a single $watchCollection
|
@@ -34815,11 +34961,11 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
34815
34961
|
|
34816
34962
|
Object.keys(values).forEach(function getWatchable(key) {
|
34817
34963
|
var locals = getLocals(values[key], key);
|
34818
|
-
var selectValue =
|
34964
|
+
var selectValue = getTrackByValueFn(values[key], locals);
|
34819
34965
|
watchedArray.push(selectValue);
|
34820
34966
|
|
34821
34967
|
// Only need to watch the displayFn if there is a specific label expression
|
34822
|
-
if (match[2]) {
|
34968
|
+
if (match[2] || match[1]) {
|
34823
34969
|
var label = displayFn(scope, locals);
|
34824
34970
|
watchedArray.push(label);
|
34825
34971
|
}
|
@@ -34841,17 +34987,29 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
34841
34987
|
// The option values were already computed in the `getWatchables` fn,
|
34842
34988
|
// which must have been called to trigger `getOptions`
|
34843
34989
|
var optionValues = valuesFn(scope) || [];
|
34990
|
+
var optionValuesKeys;
|
34844
34991
|
|
34845
|
-
var keys = Object.keys(optionValues);
|
34846
|
-
keys.forEach(function getOption(key) {
|
34847
34992
|
|
34848
|
-
|
34849
|
-
|
34993
|
+
if (!keyName && isArrayLike(optionValues)) {
|
34994
|
+
optionValuesKeys = optionValues;
|
34995
|
+
} else {
|
34996
|
+
// if object, extract keys, in enumeration order, unsorted
|
34997
|
+
optionValuesKeys = [];
|
34998
|
+
for (var itemKey in optionValues) {
|
34999
|
+
if (optionValues.hasOwnProperty(itemKey) && itemKey.charAt(0) !== '$') {
|
35000
|
+
optionValuesKeys.push(itemKey);
|
35001
|
+
}
|
35002
|
+
}
|
35003
|
+
}
|
35004
|
+
|
35005
|
+
var optionValuesLength = optionValuesKeys.length;
|
34850
35006
|
|
35007
|
+
for (var index = 0; index < optionValuesLength; index++) {
|
35008
|
+
var key = (optionValues === optionValuesKeys) ? index : optionValuesKeys[index];
|
34851
35009
|
var value = optionValues[key];
|
34852
35010
|
var locals = getLocals(value, key);
|
34853
35011
|
var viewValue = viewValueFn(scope, locals);
|
34854
|
-
var selectValue =
|
35012
|
+
var selectValue = getTrackByValueFn(viewValue, locals);
|
34855
35013
|
var label = displayFn(scope, locals);
|
34856
35014
|
var group = groupByFn(scope, locals);
|
34857
35015
|
var disabled = disableWhenFn(scope, locals);
|
@@ -34859,13 +35017,13 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
34859
35017
|
|
34860
35018
|
optionItems.push(optionItem);
|
34861
35019
|
selectValueMap[selectValue] = optionItem;
|
34862
|
-
}
|
35020
|
+
}
|
34863
35021
|
|
34864
35022
|
return {
|
34865
35023
|
items: optionItems,
|
34866
35024
|
selectValueMap: selectValueMap,
|
34867
35025
|
getOptionFromViewValue: function(value) {
|
34868
|
-
return selectValueMap[getTrackByValue(value
|
35026
|
+
return selectValueMap[getTrackByValue(value)];
|
34869
35027
|
},
|
34870
35028
|
getViewValueFromOption: function(option) {
|
34871
35029
|
// If the viewValue could be an object that may be mutated by the application,
|
@@ -34943,44 +35101,54 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
34943
35101
|
};
|
34944
35102
|
|
34945
35103
|
|
34946
|
-
|
34947
|
-
|
35104
|
+
// Update the controller methods for multiple selectable options
|
35105
|
+
if (!multiple) {
|
34948
35106
|
|
34949
|
-
|
34950
|
-
|
34951
|
-
removeUnknownOption();
|
34952
|
-
removeEmptyOption();
|
35107
|
+
selectCtrl.writeValue = function writeNgOptionsValue(value) {
|
35108
|
+
var option = options.getOptionFromViewValue(value);
|
34953
35109
|
|
34954
|
-
|
34955
|
-
option.
|
34956
|
-
|
34957
|
-
|
34958
|
-
|
34959
|
-
|
34960
|
-
|
34961
|
-
|
35110
|
+
if (option && !option.disabled) {
|
35111
|
+
if (selectElement[0].value !== option.selectValue) {
|
35112
|
+
removeUnknownOption();
|
35113
|
+
removeEmptyOption();
|
35114
|
+
|
35115
|
+
selectElement[0].value = option.selectValue;
|
35116
|
+
option.element.selected = true;
|
35117
|
+
option.element.setAttribute('selected', 'selected');
|
35118
|
+
}
|
34962
35119
|
} else {
|
34963
|
-
|
34964
|
-
|
35120
|
+
if (value === null || providedEmptyOption) {
|
35121
|
+
removeUnknownOption();
|
35122
|
+
renderEmptyOption();
|
35123
|
+
} else {
|
35124
|
+
removeEmptyOption();
|
35125
|
+
renderUnknownOption();
|
35126
|
+
}
|
34965
35127
|
}
|
34966
|
-
}
|
34967
|
-
};
|
35128
|
+
};
|
34968
35129
|
|
34969
|
-
|
35130
|
+
selectCtrl.readValue = function readNgOptionsValue() {
|
34970
35131
|
|
34971
|
-
|
35132
|
+
var selectedOption = options.selectValueMap[selectElement.val()];
|
34972
35133
|
|
34973
|
-
|
34974
|
-
|
34975
|
-
|
34976
|
-
|
34977
|
-
|
34978
|
-
|
34979
|
-
|
35134
|
+
if (selectedOption && !selectedOption.disabled) {
|
35135
|
+
removeEmptyOption();
|
35136
|
+
removeUnknownOption();
|
35137
|
+
return options.getViewValueFromOption(selectedOption);
|
35138
|
+
}
|
35139
|
+
return null;
|
35140
|
+
};
|
34980
35141
|
|
35142
|
+
// If we are using `track by` then we must watch the tracked value on the model
|
35143
|
+
// since ngModel only watches for object identity change
|
35144
|
+
if (ngOptions.trackBy) {
|
35145
|
+
scope.$watch(
|
35146
|
+
function() { return ngOptions.getTrackByValue(ngModelCtrl.$viewValue); },
|
35147
|
+
function() { ngModelCtrl.$render(); }
|
35148
|
+
);
|
35149
|
+
}
|
34981
35150
|
|
34982
|
-
|
34983
|
-
if (multiple) {
|
35151
|
+
} else {
|
34984
35152
|
|
34985
35153
|
ngModelCtrl.$isEmpty = function(value) {
|
34986
35154
|
return !value || value.length === 0;
|
@@ -35012,6 +35180,22 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
35012
35180
|
|
35013
35181
|
return selections;
|
35014
35182
|
};
|
35183
|
+
|
35184
|
+
// If we are using `track by` then we must watch these tracked values on the model
|
35185
|
+
// since ngModel only watches for object identity change
|
35186
|
+
if (ngOptions.trackBy) {
|
35187
|
+
|
35188
|
+
scope.$watchCollection(function() {
|
35189
|
+
if (isArray(ngModelCtrl.$viewValue)) {
|
35190
|
+
return ngModelCtrl.$viewValue.map(function(value) {
|
35191
|
+
return ngOptions.getTrackByValue(value);
|
35192
|
+
});
|
35193
|
+
}
|
35194
|
+
}, function() {
|
35195
|
+
ngModelCtrl.$render();
|
35196
|
+
});
|
35197
|
+
|
35198
|
+
}
|
35015
35199
|
}
|
35016
35200
|
|
35017
35201
|
|
@@ -35038,11 +35222,6 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
35038
35222
|
// We will re-render the option elements if the option values or labels change
|
35039
35223
|
scope.$watchCollection(ngOptions.getWatchables, updateOptions);
|
35040
35224
|
|
35041
|
-
// We also need to watch to see if the internals of the model changes, since
|
35042
|
-
// ngModel only watches for object identity change
|
35043
|
-
if (ngOptions.trackBy) {
|
35044
|
-
scope.$watch(attr.ngModel, function() { ngModelCtrl.$render(); }, true);
|
35045
|
-
}
|
35046
35225
|
// ------------------------------------------------------------------ //
|
35047
35226
|
|
35048
35227
|
|
@@ -36386,7 +36565,7 @@ var ngStyleDirective = ngDirective(function(scope, element, attr) {
|
|
36386
36565
|
*
|
36387
36566
|
* @scope
|
36388
36567
|
* @priority 1200
|
36389
|
-
* @param {*} ngSwitch|on expression to match against <
|
36568
|
+
* @param {*} ngSwitch|on expression to match against <code>ng-switch-when</code>.
|
36390
36569
|
* On child elements add:
|
36391
36570
|
*
|
36392
36571
|
* * `ngSwitchWhen`: the case statement to match against. If match then this
|
@@ -36403,7 +36582,7 @@ var ngStyleDirective = ngDirective(function(scope, element, attr) {
|
|
36403
36582
|
<div ng-controller="ExampleController">
|
36404
36583
|
<select ng-model="selection" ng-options="item for item in items">
|
36405
36584
|
</select>
|
36406
|
-
<
|
36585
|
+
<code>selection={{selection}}</code>
|
36407
36586
|
<hr/>
|
36408
36587
|
<div class="animate-switch-container"
|
36409
36588
|
ng-switch on="selection">
|
@@ -36794,12 +36973,6 @@ var SelectController =
|
|
36794
36973
|
* be nested into the `<select>` element. This element will then represent the `null` or "not selected"
|
36795
36974
|
* option. See example below for demonstration.
|
36796
36975
|
*
|
36797
|
-
* <div class="alert alert-warning">
|
36798
|
-
* **Note:** By default, `ngModel` compares by reference, not value. This is important when binding to an
|
36799
|
-
* array of objects. See an example [in this jsfiddle](http://jsfiddle.net/qWzTb/). When using `track by`
|
36800
|
-
* in an `ngOptions` expression, however, deep equality checks will be performed.
|
36801
|
-
* </div>
|
36802
|
-
*
|
36803
36976
|
*/
|
36804
36977
|
var selectDirective = function() {
|
36805
36978
|
|
@@ -39276,5 +39449,5 @@ if (config.autotest) {
|
|
39276
39449
|
})(window, document);
|
39277
39450
|
|
39278
39451
|
|
39279
|
-
!window.angular.$$csp() && window.angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";\n\n[ng\\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak],\n.ng-cloak, .x-ng-cloak,\n.ng-hide:not(.ng-hide-animate) {\n display: none !important;\n}\n\nng\\:form {\n display: block;\n}\n\n.ng-animate-shim {\n visibility:hidden;\n}\n\n.ng-
|
39452
|
+
!window.angular.$$csp() && window.angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";\n\n[ng\\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak],\n.ng-cloak, .x-ng-cloak,\n.ng-hide:not(.ng-hide-animate) {\n display: none !important;\n}\n\nng\\:form {\n display: block;\n}\n\n.ng-animate-shim {\n visibility:hidden;\n}\n\n.ng-anchor {\n position:absolute;\n}\n</style>');
|
39280
39453
|
!window.angular.$$csp() && window.angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";\n/* CSS Document */\n\n/** Structure */\nbody {\n font-family: Arial, sans-serif;\n margin: 0;\n font-size: 14px;\n}\n\n#system-error {\n font-size: 1.5em;\n text-align: center;\n}\n\n#json, #xml {\n display: none;\n}\n\n#header {\n position: fixed;\n width: 100%;\n}\n\n#specs {\n padding-top: 50px;\n}\n\n#header .angular {\n font-family: Courier New, monospace;\n font-weight: bold;\n}\n\n#header h1 {\n font-weight: normal;\n float: left;\n font-size: 30px;\n line-height: 30px;\n margin: 0;\n padding: 10px 10px;\n height: 30px;\n}\n\n#application h2,\n#specs h2 {\n margin: 0;\n padding: 0.5em;\n font-size: 1.1em;\n}\n\n#status-legend {\n margin-top: 10px;\n margin-right: 10px;\n}\n\n#header,\n#application,\n.test-info,\n.test-actions li {\n overflow: hidden;\n}\n\n#application {\n margin: 10px;\n}\n\n#application iframe {\n width: 100%;\n height: 758px;\n}\n\n#application .popout {\n float: right;\n}\n\n#application iframe {\n border: none;\n}\n\n.tests li,\n.test-actions li,\n.test-it li,\n.test-it ol,\n.status-display {\n list-style-type: none;\n}\n\n.tests,\n.test-it ol,\n.status-display {\n margin: 0;\n padding: 0;\n}\n\n.test-info {\n margin-left: 1em;\n margin-top: 0.5em;\n border-radius: 8px 0 0 8px;\n -webkit-border-radius: 8px 0 0 8px;\n -moz-border-radius: 8px 0 0 8px;\n cursor: pointer;\n}\n\n.test-info:hover .test-name {\n text-decoration: underline;\n}\n\n.test-info .closed:before {\n content: \'\\25b8\\00A0\';\n}\n\n.test-info .open:before {\n content: \'\\25be\\00A0\';\n font-weight: bold;\n}\n\n.test-it ol {\n margin-left: 2.5em;\n}\n\n.status-display,\n.status-display li {\n float: right;\n}\n\n.status-display li {\n padding: 5px 10px;\n}\n\n.timer-result,\n.test-title {\n display: inline-block;\n margin: 0;\n padding: 4px;\n}\n\n.test-actions .test-title,\n.test-actions .test-result {\n display: table-cell;\n padding-left: 0.5em;\n padding-right: 0.5em;\n}\n\n.test-actions {\n display: table;\n}\n\n.test-actions li {\n display: table-row;\n}\n\n.timer-result {\n width: 4em;\n padding: 0 10px;\n text-align: right;\n font-family: monospace;\n}\n\n.test-it pre,\n.test-actions pre {\n clear: left;\n color: black;\n margin-left: 6em;\n}\n\n.test-describe {\n padding-bottom: 0.5em;\n}\n\n.test-describe .test-describe {\n margin: 5px 5px 10px 2em;\n}\n\n.test-actions .status-pending .test-title:before {\n content: \'\\00bb\\00A0\';\n}\n\n.scrollpane {\n max-height: 20em;\n overflow: auto;\n}\n\n/** Colors */\n\n#header {\n background-color: #F2C200;\n}\n\n#specs h2 {\n border-top: 2px solid #BABAD1;\n}\n\n#specs h2,\n#application h2 {\n background-color: #efefef;\n}\n\n#application {\n border: 1px solid #BABAD1;\n}\n\n.test-describe .test-describe {\n border-left: 1px solid #BABAD1;\n border-right: 1px solid #BABAD1;\n border-bottom: 1px solid #BABAD1;\n}\n\n.status-display {\n border: 1px solid #777;\n}\n\n.status-display .status-pending,\n.status-pending .test-info {\n background-color: #F9EEBC;\n}\n\n.status-display .status-success,\n.status-success .test-info {\n background-color: #B1D7A1;\n}\n\n.status-display .status-failure,\n.status-failure .test-info {\n background-color: #FF8286;\n}\n\n.status-display .status-error,\n.status-error .test-info {\n background-color: black;\n color: white;\n}\n\n.test-actions .status-success .test-title {\n color: #30B30A;\n}\n\n.test-actions .status-failure .test-title {\n color: #DF0000;\n}\n\n.test-actions .status-error .test-title {\n color: black;\n}\n\n.test-actions .timer-result {\n color: #888;\n}\n</style>');
|