angularjs-rails 1.3.9 → 1.3.10
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/angularjs-rails/version.rb +2 -2
- data/vendor/assets/javascripts/angular-animate.js +2 -2
- data/vendor/assets/javascripts/angular-aria.js +1 -1
- data/vendor/assets/javascripts/angular-cookies.js +1 -1
- data/vendor/assets/javascripts/angular-loader.js +2 -2
- data/vendor/assets/javascripts/angular-messages.js +2 -2
- data/vendor/assets/javascripts/angular-mocks.js +1 -1
- data/vendor/assets/javascripts/angular-resource.js +1 -1
- data/vendor/assets/javascripts/angular-route.js +1 -1
- data/vendor/assets/javascripts/angular-sanitize.js +1 -1
- data/vendor/assets/javascripts/angular-scenario.js +69 -37
- data/vendor/assets/javascripts/angular-touch.js +1 -1
- data/vendor/assets/javascripts/angular.js +69 -37
- data/vendor/assets/javascripts/unstable/angular-animate.js +2 -2
- data/vendor/assets/javascripts/unstable/angular-aria.js +1 -1
- data/vendor/assets/javascripts/unstable/angular-cookies.js +1 -1
- data/vendor/assets/javascripts/unstable/angular-loader.js +2 -2
- data/vendor/assets/javascripts/unstable/angular-messages.js +2 -2
- data/vendor/assets/javascripts/unstable/angular-mocks.js +1 -1
- data/vendor/assets/javascripts/unstable/angular-resource.js +1 -1
- data/vendor/assets/javascripts/unstable/angular-route.js +1 -1
- data/vendor/assets/javascripts/unstable/angular-sanitize.js +1 -1
- data/vendor/assets/javascripts/unstable/angular-scenario.js +69 -37
- data/vendor/assets/javascripts/unstable/angular-touch.js +1 -1
- data/vendor/assets/javascripts/unstable/angular.js +69 -37
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5a121dbbf6f1ca3f7e7398f18c2dc67475ef4747
|
|
4
|
+
data.tar.gz: 4156411033215270bb5a45f65efd6b5e92cc3ae3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b1d0ecd81cd37e143a25d9a1dbfff375a89b4e0eede79dcfecf37bc0539a685d97d125bdfb647046d0211ca1c509fdd7abb52f3399f7594945b14c9b8549d167
|
|
7
|
+
data.tar.gz: 27032be69e3320d65b331e8e93a265201d1b81060a4648919d620eb9d862fa5ede2fd1d3dffabd3e6c1d9b7883794a49cdd57ad731dd28cd28683df58306f7f9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license AngularJS v1.3.
|
|
2
|
+
* @license AngularJS v1.3.10
|
|
3
3
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -1875,7 +1875,7 @@ angular.module('ngAnimate', ['ng'])
|
|
|
1875
1875
|
return;
|
|
1876
1876
|
}
|
|
1877
1877
|
|
|
1878
|
-
if (!staggerTime && styles) {
|
|
1878
|
+
if (!staggerTime && styles && Object.keys(styles).length > 0) {
|
|
1879
1879
|
if (!timings.transitionDuration) {
|
|
1880
1880
|
element.css('transition', timings.animationDuration + 's linear all');
|
|
1881
1881
|
appliedStyles.push('transition');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license AngularJS v1.3.
|
|
2
|
+
* @license AngularJS v1.3.10
|
|
3
3
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -55,7 +55,7 @@ function minErr(module, ErrorConstructor) {
|
|
|
55
55
|
return match;
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
-
message = message + '\nhttp://errors.angularjs.org/1.3.
|
|
58
|
+
message = message + '\nhttp://errors.angularjs.org/1.3.10/' +
|
|
59
59
|
(module ? module + '/' : '') + code;
|
|
60
60
|
for (i = 2; i < arguments.length; i++) {
|
|
61
61
|
message = message + (i == 2 ? '?' : '&') + 'p' + (i - 2) + '=' +
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license AngularJS v1.3.
|
|
2
|
+
* @license AngularJS v1.3.10
|
|
3
3
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -178,7 +178,7 @@ angular.module('ngMessages', [])
|
|
|
178
178
|
* at a time and this depends on the prioritization of the messages within the template. (This can
|
|
179
179
|
* be changed by using the ng-messages-multiple on the directive container.)
|
|
180
180
|
*
|
|
181
|
-
* A remote template can also be used to promote message
|
|
181
|
+
* A remote template can also be used to promote message reusability and messages can also be
|
|
182
182
|
* overridden.
|
|
183
183
|
*
|
|
184
184
|
* {@link module:ngMessages Click here} to learn more about `ngMessages` and `ngMessage`.
|
|
@@ -9190,7 +9190,7 @@ return jQuery;
|
|
|
9190
9190
|
}));
|
|
9191
9191
|
|
|
9192
9192
|
/**
|
|
9193
|
-
* @license AngularJS v1.3.
|
|
9193
|
+
* @license AngularJS v1.3.10
|
|
9194
9194
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
|
9195
9195
|
* License: MIT
|
|
9196
9196
|
*/
|
|
@@ -9246,7 +9246,7 @@ function minErr(module, ErrorConstructor) {
|
|
|
9246
9246
|
return match;
|
|
9247
9247
|
});
|
|
9248
9248
|
|
|
9249
|
-
message = message + '\nhttp://errors.angularjs.org/1.3.
|
|
9249
|
+
message = message + '\nhttp://errors.angularjs.org/1.3.10/' +
|
|
9250
9250
|
(module ? module + '/' : '') + code;
|
|
9251
9251
|
for (i = 2; i < arguments.length; i++) {
|
|
9252
9252
|
message = message + (i == 2 ? '?' : '&') + 'p' + (i - 2) + '=' +
|
|
@@ -10594,7 +10594,7 @@ function angularInit(element, bootstrap) {
|
|
|
10594
10594
|
* @param {DOMElement} element DOM element which is the root of angular application.
|
|
10595
10595
|
* @param {Array<String|Function|Array>=} modules an array of modules to load into the application.
|
|
10596
10596
|
* Each item in the array should be the name of a predefined module or a (DI annotated)
|
|
10597
|
-
* function that will be invoked by the injector as a
|
|
10597
|
+
* function that will be invoked by the injector as a `config` block.
|
|
10598
10598
|
* See: {@link angular.module modules}
|
|
10599
10599
|
* @param {Object=} config an object for defining configuration options for the application. The
|
|
10600
10600
|
* following keys are supported:
|
|
@@ -11310,11 +11310,11 @@ function toDebugString(obj) {
|
|
|
11310
11310
|
* - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
|
|
11311
11311
|
*/
|
|
11312
11312
|
var version = {
|
|
11313
|
-
full: '1.3.
|
|
11313
|
+
full: '1.3.10', // all of these placeholder strings will be replaced by grunt's
|
|
11314
11314
|
major: 1, // package task
|
|
11315
11315
|
minor: 3,
|
|
11316
|
-
dot:
|
|
11317
|
-
codeName: '
|
|
11316
|
+
dot: 10,
|
|
11317
|
+
codeName: 'heliotropic-sundial'
|
|
11318
11318
|
};
|
|
11319
11319
|
|
|
11320
11320
|
|
|
@@ -13378,7 +13378,7 @@ function createInjector(modulesToLoad, strictDi) {
|
|
|
13378
13378
|
// Check if Type is annotated and use just the given function at n-1 as parameter
|
|
13379
13379
|
// e.g. someModule.factory('greeter', ['$window', function(renamed$window) {}]);
|
|
13380
13380
|
// Object creation: http://jsperf.com/create-constructor/2
|
|
13381
|
-
var instance = Object.create((isArray(Type) ? Type[Type.length - 1] : Type).prototype);
|
|
13381
|
+
var instance = Object.create((isArray(Type) ? Type[Type.length - 1] : Type).prototype || null);
|
|
13382
13382
|
var returnedValue = invoke(Type, instance, locals, serviceName);
|
|
13383
13383
|
|
|
13384
13384
|
return isObject(returnedValue) || isFunction(returnedValue) ? returnedValue : instance;
|
|
@@ -16357,6 +16357,10 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
|
|
|
16357
16357
|
|
|
16358
16358
|
// use class as directive
|
|
16359
16359
|
className = node.className;
|
|
16360
|
+
if (isObject(className)) {
|
|
16361
|
+
// Maybe SVGAnimatedString
|
|
16362
|
+
className = className.animVal;
|
|
16363
|
+
}
|
|
16360
16364
|
if (isString(className) && className !== '') {
|
|
16361
16365
|
while (match = CLASS_DIRECTIVE_REGEXP.exec(className)) {
|
|
16362
16366
|
nName = directiveNormalize(match[2]);
|
|
@@ -17623,7 +17627,7 @@ function $ControllerProvider() {
|
|
|
17623
17627
|
// Object creation: http://jsperf.com/create-constructor/2
|
|
17624
17628
|
var controllerPrototype = (isArray(expression) ?
|
|
17625
17629
|
expression[expression.length - 1] : expression).prototype;
|
|
17626
|
-
instance = Object.create(controllerPrototype);
|
|
17630
|
+
instance = Object.create(controllerPrototype || null);
|
|
17627
17631
|
|
|
17628
17632
|
if (identifier) {
|
|
17629
17633
|
addIdentifier(locals, identifier, instance, constructor || expression.name);
|
|
@@ -23692,7 +23696,7 @@ function $RootScopeProvider() {
|
|
|
23692
23696
|
* @kind function
|
|
23693
23697
|
*
|
|
23694
23698
|
* @description
|
|
23695
|
-
* Schedule the
|
|
23699
|
+
* Schedule the invocation of $apply to occur at a later time. The actual time difference
|
|
23696
23700
|
* varies across browsers, but is typically around ~10 milliseconds.
|
|
23697
23701
|
*
|
|
23698
23702
|
* This can be used to queue up multiple expressions which need to be evaluated in the same
|
|
@@ -25202,8 +25206,7 @@ var $compileMinErr = minErr('$compile');
|
|
|
25202
25206
|
function $TemplateRequestProvider() {
|
|
25203
25207
|
this.$get = ['$templateCache', '$http', '$q', function($templateCache, $http, $q) {
|
|
25204
25208
|
function handleRequestFn(tpl, ignoreRequestError) {
|
|
25205
|
-
|
|
25206
|
-
self.totalPendingRequests++;
|
|
25209
|
+
handleRequestFn.totalPendingRequests++;
|
|
25207
25210
|
|
|
25208
25211
|
var transformResponse = $http.defaults && $http.defaults.transformResponse;
|
|
25209
25212
|
|
|
@@ -25221,13 +25224,14 @@ function $TemplateRequestProvider() {
|
|
|
25221
25224
|
};
|
|
25222
25225
|
|
|
25223
25226
|
return $http.get(tpl, httpOptions)
|
|
25227
|
+
.finally(function() {
|
|
25228
|
+
handleRequestFn.totalPendingRequests--;
|
|
25229
|
+
})
|
|
25224
25230
|
.then(function(response) {
|
|
25225
|
-
self.totalPendingRequests--;
|
|
25226
25231
|
return response.data;
|
|
25227
25232
|
}, handleError);
|
|
25228
25233
|
|
|
25229
25234
|
function handleError(resp) {
|
|
25230
|
-
self.totalPendingRequests--;
|
|
25231
25235
|
if (!ignoreRequestError) {
|
|
25232
25236
|
throw $compileMinErr('tpload', 'Failed to load template: {0}', tpl);
|
|
25233
25237
|
}
|
|
@@ -26317,7 +26321,7 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZEw']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d
|
|
|
26317
26321
|
* * `'m'`: Minute in hour (0-59)
|
|
26318
26322
|
* * `'ss'`: Second in minute, padded (00-59)
|
|
26319
26323
|
* * `'s'`: Second in minute (0-59)
|
|
26320
|
-
* * `'
|
|
26324
|
+
* * `'sss'`: Millisecond in second, padded (000-999)
|
|
26321
26325
|
* * `'a'`: AM/PM marker
|
|
26322
26326
|
* * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200-+1200)
|
|
26323
26327
|
* * `'ww'`: Week of year, padded (00-53). Week 01 is the week with the first Thursday of the year
|
|
@@ -27453,6 +27457,9 @@ function FormController(element, attrs, $scope, $animate, $interpolate) {
|
|
|
27453
27457
|
forEach(form.$error, function(value, name) {
|
|
27454
27458
|
form.$setValidity(name, null, control);
|
|
27455
27459
|
});
|
|
27460
|
+
forEach(form.$$success, function(value, name) {
|
|
27461
|
+
form.$setValidity(name, null, control);
|
|
27462
|
+
});
|
|
27456
27463
|
|
|
27457
27464
|
arrayRemove(controls, control);
|
|
27458
27465
|
};
|
|
@@ -27470,23 +27477,23 @@ function FormController(element, attrs, $scope, $animate, $interpolate) {
|
|
|
27470
27477
|
addSetValidityMethod({
|
|
27471
27478
|
ctrl: this,
|
|
27472
27479
|
$element: element,
|
|
27473
|
-
set: function(object, property,
|
|
27480
|
+
set: function(object, property, controller) {
|
|
27474
27481
|
var list = object[property];
|
|
27475
27482
|
if (!list) {
|
|
27476
|
-
object[property] = [
|
|
27483
|
+
object[property] = [controller];
|
|
27477
27484
|
} else {
|
|
27478
|
-
var index = list.indexOf(
|
|
27485
|
+
var index = list.indexOf(controller);
|
|
27479
27486
|
if (index === -1) {
|
|
27480
|
-
list.push(
|
|
27487
|
+
list.push(controller);
|
|
27481
27488
|
}
|
|
27482
27489
|
}
|
|
27483
27490
|
},
|
|
27484
|
-
unset: function(object, property,
|
|
27491
|
+
unset: function(object, property, controller) {
|
|
27485
27492
|
var list = object[property];
|
|
27486
27493
|
if (!list) {
|
|
27487
27494
|
return;
|
|
27488
27495
|
}
|
|
27489
|
-
arrayRemove(list,
|
|
27496
|
+
arrayRemove(list, controller);
|
|
27490
27497
|
if (list.length === 0) {
|
|
27491
27498
|
delete object[property];
|
|
27492
27499
|
}
|
|
@@ -29831,8 +29838,9 @@ function classDirective(name, selector) {
|
|
|
29831
29838
|
* new classes are added.
|
|
29832
29839
|
*
|
|
29833
29840
|
* @animations
|
|
29834
|
-
* add - happens just before the class is applied to the
|
|
29835
|
-
*
|
|
29841
|
+
* **add** - happens just before the class is applied to the elements
|
|
29842
|
+
*
|
|
29843
|
+
* **remove** - happens just before the class is removed from the element
|
|
29836
29844
|
*
|
|
29837
29845
|
* @element ANY
|
|
29838
29846
|
* @param {expression} ngClass {@link guide/expression Expression} to eval. The result
|
|
@@ -31298,7 +31306,7 @@ var ngIfDirective = ['$animate', function($animate) {
|
|
|
31298
31306
|
* @name ngInclude#$includeContentError
|
|
31299
31307
|
* @eventType emit on the scope ngInclude was declared in
|
|
31300
31308
|
* @description
|
|
31301
|
-
* Emitted when a template HTTP request yields an
|
|
31309
|
+
* Emitted when a template HTTP request yields an erroneous response (status < 200 || status > 299)
|
|
31302
31310
|
*
|
|
31303
31311
|
* @param {Object} angularEvent Synthetic event object.
|
|
31304
31312
|
* @param {String} src URL of content to load.
|
|
@@ -32855,22 +32863,22 @@ function addSetValidityMethod(context) {
|
|
|
32855
32863
|
|
|
32856
32864
|
ctrl.$setValidity = setValidity;
|
|
32857
32865
|
|
|
32858
|
-
function setValidity(validationErrorKey, state,
|
|
32866
|
+
function setValidity(validationErrorKey, state, controller) {
|
|
32859
32867
|
if (state === undefined) {
|
|
32860
|
-
createAndSet('$pending', validationErrorKey,
|
|
32868
|
+
createAndSet('$pending', validationErrorKey, controller);
|
|
32861
32869
|
} else {
|
|
32862
|
-
unsetAndCleanup('$pending', validationErrorKey,
|
|
32870
|
+
unsetAndCleanup('$pending', validationErrorKey, controller);
|
|
32863
32871
|
}
|
|
32864
32872
|
if (!isBoolean(state)) {
|
|
32865
|
-
unset(ctrl.$error, validationErrorKey,
|
|
32866
|
-
unset(ctrl.$$success, validationErrorKey,
|
|
32873
|
+
unset(ctrl.$error, validationErrorKey, controller);
|
|
32874
|
+
unset(ctrl.$$success, validationErrorKey, controller);
|
|
32867
32875
|
} else {
|
|
32868
32876
|
if (state) {
|
|
32869
|
-
unset(ctrl.$error, validationErrorKey,
|
|
32870
|
-
set(ctrl.$$success, validationErrorKey,
|
|
32877
|
+
unset(ctrl.$error, validationErrorKey, controller);
|
|
32878
|
+
set(ctrl.$$success, validationErrorKey, controller);
|
|
32871
32879
|
} else {
|
|
32872
|
-
set(ctrl.$error, validationErrorKey,
|
|
32873
|
-
unset(ctrl.$$success, validationErrorKey,
|
|
32880
|
+
set(ctrl.$error, validationErrorKey, controller);
|
|
32881
|
+
unset(ctrl.$$success, validationErrorKey, controller);
|
|
32874
32882
|
}
|
|
32875
32883
|
}
|
|
32876
32884
|
if (ctrl.$pending) {
|
|
@@ -32898,20 +32906,21 @@ function addSetValidityMethod(context) {
|
|
|
32898
32906
|
} else {
|
|
32899
32907
|
combinedState = null;
|
|
32900
32908
|
}
|
|
32909
|
+
|
|
32901
32910
|
toggleValidationCss(validationErrorKey, combinedState);
|
|
32902
32911
|
parentForm.$setValidity(validationErrorKey, combinedState, ctrl);
|
|
32903
32912
|
}
|
|
32904
32913
|
|
|
32905
|
-
function createAndSet(name, value,
|
|
32914
|
+
function createAndSet(name, value, controller) {
|
|
32906
32915
|
if (!ctrl[name]) {
|
|
32907
32916
|
ctrl[name] = {};
|
|
32908
32917
|
}
|
|
32909
|
-
set(ctrl[name], value,
|
|
32918
|
+
set(ctrl[name], value, controller);
|
|
32910
32919
|
}
|
|
32911
32920
|
|
|
32912
|
-
function unsetAndCleanup(name, value,
|
|
32921
|
+
function unsetAndCleanup(name, value, controller) {
|
|
32913
32922
|
if (ctrl[name]) {
|
|
32914
|
-
unset(ctrl[name], value,
|
|
32923
|
+
unset(ctrl[name], value, controller);
|
|
32915
32924
|
}
|
|
32916
32925
|
if (isObjectEmpty(ctrl[name])) {
|
|
32917
32926
|
ctrl[name] = undefined;
|
|
@@ -33230,6 +33239,29 @@ var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interp
|
|
|
33230
33239
|
* Creating aliases for these properties is possible with {@link ng.directive:ngInit `ngInit`}.
|
|
33231
33240
|
* This may be useful when, for instance, nesting ngRepeats.
|
|
33232
33241
|
*
|
|
33242
|
+
* # Iterating over object properties
|
|
33243
|
+
*
|
|
33244
|
+
* It is possible to get `ngRepeat` to iterate over the properties of an object using the following
|
|
33245
|
+
* syntax:
|
|
33246
|
+
*
|
|
33247
|
+
* ```js
|
|
33248
|
+
* <div ng-repeat="(key, value) in myObj"> ... </div>
|
|
33249
|
+
* ```
|
|
33250
|
+
*
|
|
33251
|
+
* You need to be aware that the JavaScript specification does not define what order
|
|
33252
|
+
* it will return the keys for an object. In order to have a guaranteed deterministic order
|
|
33253
|
+
* for the keys, Angular versions up to and including 1.3 **sort the keys alphabetically**.
|
|
33254
|
+
*
|
|
33255
|
+
* If this is not desired, the recommended workaround is to convert your object into an array
|
|
33256
|
+
* that is sorted into the order that you prefer before providing it to `ngRepeat`. You could
|
|
33257
|
+
* do this with a filter such as [toArrayFilter](http://ngmodules.org/modules/angular-toArrayFilter)
|
|
33258
|
+
* or implement a `$watch` on the object yourself.
|
|
33259
|
+
*
|
|
33260
|
+
* In version 1.4 we will remove the sorting, since it seems that browsers generally follow the
|
|
33261
|
+
* strategy of providing keys in the order in which they were defined, although there are exceptions
|
|
33262
|
+
* when keys are deleted and reinstated.
|
|
33263
|
+
*
|
|
33264
|
+
*
|
|
33233
33265
|
* # Special repeat start and end points
|
|
33234
33266
|
* To repeat a series of elements instead of just one parent element, ngRepeat (as well as other ng directives) supports extending
|
|
33235
33267
|
* the range of the repeater by defining explicit start and end points by using **ng-repeat-start** and **ng-repeat-end** respectively.
|
|
@@ -33474,7 +33506,7 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
|
|
|
33474
33506
|
var keyIdentifier = match[2];
|
|
33475
33507
|
|
|
33476
33508
|
if (aliasAs && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(aliasAs) ||
|
|
33477
|
-
/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent)$/.test(aliasAs))) {
|
|
33509
|
+
/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(aliasAs))) {
|
|
33478
33510
|
throw ngRepeatMinErr('badident', "alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",
|
|
33479
33511
|
aliasAs);
|
|
33480
33512
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license AngularJS v1.3.
|
|
2
|
+
* @license AngularJS v1.3.10
|
|
3
3
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -54,7 +54,7 @@ function minErr(module, ErrorConstructor) {
|
|
|
54
54
|
return match;
|
|
55
55
|
});
|
|
56
56
|
|
|
57
|
-
message = message + '\nhttp://errors.angularjs.org/1.3.
|
|
57
|
+
message = message + '\nhttp://errors.angularjs.org/1.3.10/' +
|
|
58
58
|
(module ? module + '/' : '') + code;
|
|
59
59
|
for (i = 2; i < arguments.length; i++) {
|
|
60
60
|
message = message + (i == 2 ? '?' : '&') + 'p' + (i - 2) + '=' +
|
|
@@ -1402,7 +1402,7 @@ function angularInit(element, bootstrap) {
|
|
|
1402
1402
|
* @param {DOMElement} element DOM element which is the root of angular application.
|
|
1403
1403
|
* @param {Array<String|Function|Array>=} modules an array of modules to load into the application.
|
|
1404
1404
|
* Each item in the array should be the name of a predefined module or a (DI annotated)
|
|
1405
|
-
* function that will be invoked by the injector as a
|
|
1405
|
+
* function that will be invoked by the injector as a `config` block.
|
|
1406
1406
|
* See: {@link angular.module modules}
|
|
1407
1407
|
* @param {Object=} config an object for defining configuration options for the application. The
|
|
1408
1408
|
* following keys are supported:
|
|
@@ -2118,11 +2118,11 @@ function toDebugString(obj) {
|
|
|
2118
2118
|
* - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
|
|
2119
2119
|
*/
|
|
2120
2120
|
var version = {
|
|
2121
|
-
full: '1.3.
|
|
2121
|
+
full: '1.3.10', // all of these placeholder strings will be replaced by grunt's
|
|
2122
2122
|
major: 1, // package task
|
|
2123
2123
|
minor: 3,
|
|
2124
|
-
dot:
|
|
2125
|
-
codeName: '
|
|
2124
|
+
dot: 10,
|
|
2125
|
+
codeName: 'heliotropic-sundial'
|
|
2126
2126
|
};
|
|
2127
2127
|
|
|
2128
2128
|
|
|
@@ -4186,7 +4186,7 @@ function createInjector(modulesToLoad, strictDi) {
|
|
|
4186
4186
|
// Check if Type is annotated and use just the given function at n-1 as parameter
|
|
4187
4187
|
// e.g. someModule.factory('greeter', ['$window', function(renamed$window) {}]);
|
|
4188
4188
|
// Object creation: http://jsperf.com/create-constructor/2
|
|
4189
|
-
var instance = Object.create((isArray(Type) ? Type[Type.length - 1] : Type).prototype);
|
|
4189
|
+
var instance = Object.create((isArray(Type) ? Type[Type.length - 1] : Type).prototype || null);
|
|
4190
4190
|
var returnedValue = invoke(Type, instance, locals, serviceName);
|
|
4191
4191
|
|
|
4192
4192
|
return isObject(returnedValue) || isFunction(returnedValue) ? returnedValue : instance;
|
|
@@ -7165,6 +7165,10 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
|
|
|
7165
7165
|
|
|
7166
7166
|
// use class as directive
|
|
7167
7167
|
className = node.className;
|
|
7168
|
+
if (isObject(className)) {
|
|
7169
|
+
// Maybe SVGAnimatedString
|
|
7170
|
+
className = className.animVal;
|
|
7171
|
+
}
|
|
7168
7172
|
if (isString(className) && className !== '') {
|
|
7169
7173
|
while (match = CLASS_DIRECTIVE_REGEXP.exec(className)) {
|
|
7170
7174
|
nName = directiveNormalize(match[2]);
|
|
@@ -8431,7 +8435,7 @@ function $ControllerProvider() {
|
|
|
8431
8435
|
// Object creation: http://jsperf.com/create-constructor/2
|
|
8432
8436
|
var controllerPrototype = (isArray(expression) ?
|
|
8433
8437
|
expression[expression.length - 1] : expression).prototype;
|
|
8434
|
-
instance = Object.create(controllerPrototype);
|
|
8438
|
+
instance = Object.create(controllerPrototype || null);
|
|
8435
8439
|
|
|
8436
8440
|
if (identifier) {
|
|
8437
8441
|
addIdentifier(locals, identifier, instance, constructor || expression.name);
|
|
@@ -14500,7 +14504,7 @@ function $RootScopeProvider() {
|
|
|
14500
14504
|
* @kind function
|
|
14501
14505
|
*
|
|
14502
14506
|
* @description
|
|
14503
|
-
* Schedule the
|
|
14507
|
+
* Schedule the invocation of $apply to occur at a later time. The actual time difference
|
|
14504
14508
|
* varies across browsers, but is typically around ~10 milliseconds.
|
|
14505
14509
|
*
|
|
14506
14510
|
* This can be used to queue up multiple expressions which need to be evaluated in the same
|
|
@@ -16010,8 +16014,7 @@ var $compileMinErr = minErr('$compile');
|
|
|
16010
16014
|
function $TemplateRequestProvider() {
|
|
16011
16015
|
this.$get = ['$templateCache', '$http', '$q', function($templateCache, $http, $q) {
|
|
16012
16016
|
function handleRequestFn(tpl, ignoreRequestError) {
|
|
16013
|
-
|
|
16014
|
-
self.totalPendingRequests++;
|
|
16017
|
+
handleRequestFn.totalPendingRequests++;
|
|
16015
16018
|
|
|
16016
16019
|
var transformResponse = $http.defaults && $http.defaults.transformResponse;
|
|
16017
16020
|
|
|
@@ -16029,13 +16032,14 @@ function $TemplateRequestProvider() {
|
|
|
16029
16032
|
};
|
|
16030
16033
|
|
|
16031
16034
|
return $http.get(tpl, httpOptions)
|
|
16035
|
+
.finally(function() {
|
|
16036
|
+
handleRequestFn.totalPendingRequests--;
|
|
16037
|
+
})
|
|
16032
16038
|
.then(function(response) {
|
|
16033
|
-
self.totalPendingRequests--;
|
|
16034
16039
|
return response.data;
|
|
16035
16040
|
}, handleError);
|
|
16036
16041
|
|
|
16037
16042
|
function handleError(resp) {
|
|
16038
|
-
self.totalPendingRequests--;
|
|
16039
16043
|
if (!ignoreRequestError) {
|
|
16040
16044
|
throw $compileMinErr('tpload', 'Failed to load template: {0}', tpl);
|
|
16041
16045
|
}
|
|
@@ -17125,7 +17129,7 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZEw']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d
|
|
|
17125
17129
|
* * `'m'`: Minute in hour (0-59)
|
|
17126
17130
|
* * `'ss'`: Second in minute, padded (00-59)
|
|
17127
17131
|
* * `'s'`: Second in minute (0-59)
|
|
17128
|
-
* * `'
|
|
17132
|
+
* * `'sss'`: Millisecond in second, padded (000-999)
|
|
17129
17133
|
* * `'a'`: AM/PM marker
|
|
17130
17134
|
* * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200-+1200)
|
|
17131
17135
|
* * `'ww'`: Week of year, padded (00-53). Week 01 is the week with the first Thursday of the year
|
|
@@ -18261,6 +18265,9 @@ function FormController(element, attrs, $scope, $animate, $interpolate) {
|
|
|
18261
18265
|
forEach(form.$error, function(value, name) {
|
|
18262
18266
|
form.$setValidity(name, null, control);
|
|
18263
18267
|
});
|
|
18268
|
+
forEach(form.$$success, function(value, name) {
|
|
18269
|
+
form.$setValidity(name, null, control);
|
|
18270
|
+
});
|
|
18264
18271
|
|
|
18265
18272
|
arrayRemove(controls, control);
|
|
18266
18273
|
};
|
|
@@ -18278,23 +18285,23 @@ function FormController(element, attrs, $scope, $animate, $interpolate) {
|
|
|
18278
18285
|
addSetValidityMethod({
|
|
18279
18286
|
ctrl: this,
|
|
18280
18287
|
$element: element,
|
|
18281
|
-
set: function(object, property,
|
|
18288
|
+
set: function(object, property, controller) {
|
|
18282
18289
|
var list = object[property];
|
|
18283
18290
|
if (!list) {
|
|
18284
|
-
object[property] = [
|
|
18291
|
+
object[property] = [controller];
|
|
18285
18292
|
} else {
|
|
18286
|
-
var index = list.indexOf(
|
|
18293
|
+
var index = list.indexOf(controller);
|
|
18287
18294
|
if (index === -1) {
|
|
18288
|
-
list.push(
|
|
18295
|
+
list.push(controller);
|
|
18289
18296
|
}
|
|
18290
18297
|
}
|
|
18291
18298
|
},
|
|
18292
|
-
unset: function(object, property,
|
|
18299
|
+
unset: function(object, property, controller) {
|
|
18293
18300
|
var list = object[property];
|
|
18294
18301
|
if (!list) {
|
|
18295
18302
|
return;
|
|
18296
18303
|
}
|
|
18297
|
-
arrayRemove(list,
|
|
18304
|
+
arrayRemove(list, controller);
|
|
18298
18305
|
if (list.length === 0) {
|
|
18299
18306
|
delete object[property];
|
|
18300
18307
|
}
|
|
@@ -20639,8 +20646,9 @@ function classDirective(name, selector) {
|
|
|
20639
20646
|
* new classes are added.
|
|
20640
20647
|
*
|
|
20641
20648
|
* @animations
|
|
20642
|
-
* add - happens just before the class is applied to the
|
|
20643
|
-
*
|
|
20649
|
+
* **add** - happens just before the class is applied to the elements
|
|
20650
|
+
*
|
|
20651
|
+
* **remove** - happens just before the class is removed from the element
|
|
20644
20652
|
*
|
|
20645
20653
|
* @element ANY
|
|
20646
20654
|
* @param {expression} ngClass {@link guide/expression Expression} to eval. The result
|
|
@@ -22106,7 +22114,7 @@ var ngIfDirective = ['$animate', function($animate) {
|
|
|
22106
22114
|
* @name ngInclude#$includeContentError
|
|
22107
22115
|
* @eventType emit on the scope ngInclude was declared in
|
|
22108
22116
|
* @description
|
|
22109
|
-
* Emitted when a template HTTP request yields an
|
|
22117
|
+
* Emitted when a template HTTP request yields an erroneous response (status < 200 || status > 299)
|
|
22110
22118
|
*
|
|
22111
22119
|
* @param {Object} angularEvent Synthetic event object.
|
|
22112
22120
|
* @param {String} src URL of content to load.
|
|
@@ -23663,22 +23671,22 @@ function addSetValidityMethod(context) {
|
|
|
23663
23671
|
|
|
23664
23672
|
ctrl.$setValidity = setValidity;
|
|
23665
23673
|
|
|
23666
|
-
function setValidity(validationErrorKey, state,
|
|
23674
|
+
function setValidity(validationErrorKey, state, controller) {
|
|
23667
23675
|
if (state === undefined) {
|
|
23668
|
-
createAndSet('$pending', validationErrorKey,
|
|
23676
|
+
createAndSet('$pending', validationErrorKey, controller);
|
|
23669
23677
|
} else {
|
|
23670
|
-
unsetAndCleanup('$pending', validationErrorKey,
|
|
23678
|
+
unsetAndCleanup('$pending', validationErrorKey, controller);
|
|
23671
23679
|
}
|
|
23672
23680
|
if (!isBoolean(state)) {
|
|
23673
|
-
unset(ctrl.$error, validationErrorKey,
|
|
23674
|
-
unset(ctrl.$$success, validationErrorKey,
|
|
23681
|
+
unset(ctrl.$error, validationErrorKey, controller);
|
|
23682
|
+
unset(ctrl.$$success, validationErrorKey, controller);
|
|
23675
23683
|
} else {
|
|
23676
23684
|
if (state) {
|
|
23677
|
-
unset(ctrl.$error, validationErrorKey,
|
|
23678
|
-
set(ctrl.$$success, validationErrorKey,
|
|
23685
|
+
unset(ctrl.$error, validationErrorKey, controller);
|
|
23686
|
+
set(ctrl.$$success, validationErrorKey, controller);
|
|
23679
23687
|
} else {
|
|
23680
|
-
set(ctrl.$error, validationErrorKey,
|
|
23681
|
-
unset(ctrl.$$success, validationErrorKey,
|
|
23688
|
+
set(ctrl.$error, validationErrorKey, controller);
|
|
23689
|
+
unset(ctrl.$$success, validationErrorKey, controller);
|
|
23682
23690
|
}
|
|
23683
23691
|
}
|
|
23684
23692
|
if (ctrl.$pending) {
|
|
@@ -23706,20 +23714,21 @@ function addSetValidityMethod(context) {
|
|
|
23706
23714
|
} else {
|
|
23707
23715
|
combinedState = null;
|
|
23708
23716
|
}
|
|
23717
|
+
|
|
23709
23718
|
toggleValidationCss(validationErrorKey, combinedState);
|
|
23710
23719
|
parentForm.$setValidity(validationErrorKey, combinedState, ctrl);
|
|
23711
23720
|
}
|
|
23712
23721
|
|
|
23713
|
-
function createAndSet(name, value,
|
|
23722
|
+
function createAndSet(name, value, controller) {
|
|
23714
23723
|
if (!ctrl[name]) {
|
|
23715
23724
|
ctrl[name] = {};
|
|
23716
23725
|
}
|
|
23717
|
-
set(ctrl[name], value,
|
|
23726
|
+
set(ctrl[name], value, controller);
|
|
23718
23727
|
}
|
|
23719
23728
|
|
|
23720
|
-
function unsetAndCleanup(name, value,
|
|
23729
|
+
function unsetAndCleanup(name, value, controller) {
|
|
23721
23730
|
if (ctrl[name]) {
|
|
23722
|
-
unset(ctrl[name], value,
|
|
23731
|
+
unset(ctrl[name], value, controller);
|
|
23723
23732
|
}
|
|
23724
23733
|
if (isObjectEmpty(ctrl[name])) {
|
|
23725
23734
|
ctrl[name] = undefined;
|
|
@@ -24038,6 +24047,29 @@ var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interp
|
|
|
24038
24047
|
* Creating aliases for these properties is possible with {@link ng.directive:ngInit `ngInit`}.
|
|
24039
24048
|
* This may be useful when, for instance, nesting ngRepeats.
|
|
24040
24049
|
*
|
|
24050
|
+
* # Iterating over object properties
|
|
24051
|
+
*
|
|
24052
|
+
* It is possible to get `ngRepeat` to iterate over the properties of an object using the following
|
|
24053
|
+
* syntax:
|
|
24054
|
+
*
|
|
24055
|
+
* ```js
|
|
24056
|
+
* <div ng-repeat="(key, value) in myObj"> ... </div>
|
|
24057
|
+
* ```
|
|
24058
|
+
*
|
|
24059
|
+
* You need to be aware that the JavaScript specification does not define what order
|
|
24060
|
+
* it will return the keys for an object. In order to have a guaranteed deterministic order
|
|
24061
|
+
* for the keys, Angular versions up to and including 1.3 **sort the keys alphabetically**.
|
|
24062
|
+
*
|
|
24063
|
+
* If this is not desired, the recommended workaround is to convert your object into an array
|
|
24064
|
+
* that is sorted into the order that you prefer before providing it to `ngRepeat`. You could
|
|
24065
|
+
* do this with a filter such as [toArrayFilter](http://ngmodules.org/modules/angular-toArrayFilter)
|
|
24066
|
+
* or implement a `$watch` on the object yourself.
|
|
24067
|
+
*
|
|
24068
|
+
* In version 1.4 we will remove the sorting, since it seems that browsers generally follow the
|
|
24069
|
+
* strategy of providing keys in the order in which they were defined, although there are exceptions
|
|
24070
|
+
* when keys are deleted and reinstated.
|
|
24071
|
+
*
|
|
24072
|
+
*
|
|
24041
24073
|
* # Special repeat start and end points
|
|
24042
24074
|
* To repeat a series of elements instead of just one parent element, ngRepeat (as well as other ng directives) supports extending
|
|
24043
24075
|
* the range of the repeater by defining explicit start and end points by using **ng-repeat-start** and **ng-repeat-end** respectively.
|
|
@@ -24282,7 +24314,7 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
|
|
|
24282
24314
|
var keyIdentifier = match[2];
|
|
24283
24315
|
|
|
24284
24316
|
if (aliasAs && (!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(aliasAs) ||
|
|
24285
|
-
/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent)$/.test(aliasAs))) {
|
|
24317
|
+
/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(aliasAs))) {
|
|
24286
24318
|
throw ngRepeatMinErr('badident', "alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",
|
|
24287
24319
|
aliasAs);
|
|
24288
24320
|
}
|