angularjs-rails 1.2.21 → 1.2.22
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/angularjs-rails/version.rb +2 -2
- data/vendor/assets/javascripts/angular-animate.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-mocks.js +2 -2
- data/vendor/assets/javascripts/angular-resource.js +5 -3
- data/vendor/assets/javascripts/angular-route.js +1 -1
- data/vendor/assets/javascripts/angular-sanitize.js +8 -1
- data/vendor/assets/javascripts/angular-scenario.js +91 -52
- data/vendor/assets/javascripts/angular-touch.js +1 -1
- data/vendor/assets/javascripts/angular.js +91 -52
- data/vendor/assets/javascripts/unstable/angular-animate.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 +1 -1
- data/vendor/assets/javascripts/unstable/angular-mocks.js +88 -35
- data/vendor/assets/javascripts/unstable/angular-resource.js +6 -4
- data/vendor/assets/javascripts/unstable/angular-route.js +1 -1
- data/vendor/assets/javascripts/unstable/angular-sanitize.js +8 -1
- data/vendor/assets/javascripts/unstable/angular-scenario.js +5222 -5700
- data/vendor/assets/javascripts/unstable/angular-touch.js +1 -1
- data/vendor/assets/javascripts/unstable/angular.js +321 -199
- 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: 649f17ca80321144324cca4ae9bb9feb10bfdfa7
|
4
|
+
data.tar.gz: 66f31ac37434d76ebaf6d4e2247b3d84731c9947
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4597d4e60774c5f3ae525efae1938f0f9d00abb4863742d117bccf0a97797803a766c7e5c9e4c5abf0bcb29d64398c97d874c7be263f24e51fa4848a15ff1027
|
7
|
+
data.tar.gz: 1317b9faa6e5c66f713454010b50867d6f1eb6936d7f71488f299119d8d894ea1c376a910a8c9f650c9b0a59e971e303c6e1b5bda075b68e740547268a8f757a
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.2.
|
2
|
+
* @license AngularJS v1.2.22
|
3
3
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -69,7 +69,7 @@ function minErr(module) {
|
|
69
69
|
return match;
|
70
70
|
});
|
71
71
|
|
72
|
-
message = message + '\nhttp://errors.angularjs.org/1.2.
|
72
|
+
message = message + '\nhttp://errors.angularjs.org/1.2.22/' +
|
73
73
|
(module ? module + '/' : '') + code;
|
74
74
|
for (i = 2; i < arguments.length; i++) {
|
75
75
|
message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.2.
|
2
|
+
* @license AngularJS v1.2.22
|
3
3
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -1786,7 +1786,7 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
|
1786
1786
|
* use the `passThrough` request handler of `when` instead of `respond`.
|
1787
1787
|
*
|
1788
1788
|
* Additionally, we don't want to manually have to flush mocked out requests like we do during unit
|
1789
|
-
* testing. For this reason the e2e $httpBackend
|
1789
|
+
* testing. For this reason the e2e $httpBackend flushes mocked out requests
|
1790
1790
|
* automatically, closely simulating the behavior of the XMLHttpRequest object.
|
1791
1791
|
*
|
1792
1792
|
* To setup the application to run with this http backend, you have to create a module that depends
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.2.
|
2
|
+
* @license AngularJS v1.2.22
|
3
3
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -99,8 +99,10 @@ function shallowClearAndCopy(src, dst) {
|
|
99
99
|
* Given a template `/path/:verb` and parameter `{verb:'greet', salutation:'Hello'}` results in
|
100
100
|
* URL `/path/greet?salutation=Hello`.
|
101
101
|
*
|
102
|
-
* If the parameter value is prefixed with `@` then the value
|
103
|
-
* from the corresponding
|
102
|
+
* If the parameter value is prefixed with `@` then the value for that parameter will be extracted
|
103
|
+
* from the corresponding property on the `data` object (provided when calling an action method). For
|
104
|
+
* example, if the `defaultParam` object is `{someParam: '@someProp'}` then the value of `someParam`
|
105
|
+
* will be `data.someProp`.
|
104
106
|
*
|
105
107
|
* @param {Object.<Object>=} actions Hash with declaration of custom action that should extend
|
106
108
|
* the default set of resource actions. The declaration should be created in the format of {@link
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.2.
|
2
|
+
* @license AngularJS v1.2.22
|
3
3
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -237,6 +237,13 @@ function makeMap(str) {
|
|
237
237
|
* @param {object} handler
|
238
238
|
*/
|
239
239
|
function htmlParser( html, handler ) {
|
240
|
+
if (typeof html !== 'string') {
|
241
|
+
if (html === null || typeof html === 'undefined') {
|
242
|
+
html = '';
|
243
|
+
} else {
|
244
|
+
html = '' + html;
|
245
|
+
}
|
246
|
+
}
|
240
247
|
var index, chars, match, stack = [], last = html, text;
|
241
248
|
stack.last = function() { return stack[ stack.length - 1 ]; };
|
242
249
|
|
@@ -9790,7 +9790,7 @@ if ( typeof module === "object" && module && typeof module.exports === "object"
|
|
9790
9790
|
})( window );
|
9791
9791
|
|
9792
9792
|
/**
|
9793
|
-
* @license AngularJS v1.2.
|
9793
|
+
* @license AngularJS v1.2.22
|
9794
9794
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
9795
9795
|
* License: MIT
|
9796
9796
|
*/
|
@@ -9860,7 +9860,7 @@ function minErr(module) {
|
|
9860
9860
|
return match;
|
9861
9861
|
});
|
9862
9862
|
|
9863
|
-
message = message + '\nhttp://errors.angularjs.org/1.2.
|
9863
|
+
message = message + '\nhttp://errors.angularjs.org/1.2.22/' +
|
9864
9864
|
(module ? module + '/' : '') + code;
|
9865
9865
|
for (i = 2; i < arguments.length; i++) {
|
9866
9866
|
message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
|
@@ -11769,11 +11769,11 @@ function setupModuleLoader(window) {
|
|
11769
11769
|
* - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
|
11770
11770
|
*/
|
11771
11771
|
var version = {
|
11772
|
-
full: '1.2.
|
11772
|
+
full: '1.2.22', // all of these placeholder strings will be replaced by grunt's
|
11773
11773
|
major: 1, // package task
|
11774
11774
|
minor: 2,
|
11775
|
-
dot:
|
11776
|
-
codeName: '
|
11775
|
+
dot: 22,
|
11776
|
+
codeName: 'finicky-pleasure'
|
11777
11777
|
};
|
11778
11778
|
|
11779
11779
|
|
@@ -11786,11 +11786,11 @@ function publishExternalAPI(angular){
|
|
11786
11786
|
'element': jqLite,
|
11787
11787
|
'forEach': forEach,
|
11788
11788
|
'injector': createInjector,
|
11789
|
-
'noop':noop,
|
11790
|
-
'bind':bind,
|
11789
|
+
'noop': noop,
|
11790
|
+
'bind': bind,
|
11791
11791
|
'toJson': toJson,
|
11792
11792
|
'fromJson': fromJson,
|
11793
|
-
'identity':identity,
|
11793
|
+
'identity': identity,
|
11794
11794
|
'isUndefined': isUndefined,
|
11795
11795
|
'isDefined': isDefined,
|
11796
11796
|
'isString': isString,
|
@@ -12849,21 +12849,37 @@ forEach({
|
|
12849
12849
|
|
12850
12850
|
clone: jqLiteClone,
|
12851
12851
|
|
12852
|
-
triggerHandler: function(element,
|
12853
|
-
// Copy event handlers in case event handlers array is modified during execution.
|
12854
|
-
var eventFns = (jqLiteExpandoStore(element, 'events') || {})[eventName],
|
12855
|
-
eventFnsCopy = shallowCopy(eventFns || []);
|
12852
|
+
triggerHandler: function(element, event, extraParameters) {
|
12856
12853
|
|
12857
|
-
|
12854
|
+
var dummyEvent, eventFnsCopy, handlerArgs;
|
12855
|
+
var eventName = event.type || event;
|
12856
|
+
var eventFns = (jqLiteExpandoStore(element, 'events') || {})[eventName];
|
12858
12857
|
|
12859
|
-
|
12860
|
-
preventDefault: noop,
|
12861
|
-
stopPropagation: noop
|
12862
|
-
}];
|
12858
|
+
if (eventFns) {
|
12863
12859
|
|
12864
|
-
|
12865
|
-
|
12866
|
-
|
12860
|
+
// Create a dummy event to pass to the handlers
|
12861
|
+
dummyEvent = {
|
12862
|
+
preventDefault: function() { this.defaultPrevented = true; },
|
12863
|
+
isDefaultPrevented: function() { return this.defaultPrevented === true; },
|
12864
|
+
stopPropagation: noop,
|
12865
|
+
type: eventName,
|
12866
|
+
target: element
|
12867
|
+
};
|
12868
|
+
|
12869
|
+
// If a custom event was provided then extend our dummy event with it
|
12870
|
+
if (event.type) {
|
12871
|
+
dummyEvent = extend(dummyEvent, event);
|
12872
|
+
}
|
12873
|
+
|
12874
|
+
// Copy event handlers in case event handlers array is modified during execution.
|
12875
|
+
eventFnsCopy = shallowCopy(eventFns);
|
12876
|
+
handlerArgs = extraParameters ? [dummyEvent].concat(extraParameters) : [dummyEvent];
|
12877
|
+
|
12878
|
+
forEach(eventFnsCopy, function(fn) {
|
12879
|
+
fn.apply(element, handlerArgs);
|
12880
|
+
});
|
12881
|
+
|
12882
|
+
}
|
12867
12883
|
}
|
12868
12884
|
}, function(fn, name){
|
12869
12885
|
/**
|
@@ -15108,7 +15124,7 @@ function $TemplateCacheProvider() {
|
|
15108
15124
|
*
|
15109
15125
|
* #### `template`
|
15110
15126
|
* HTML markup that may:
|
15111
|
-
* * Replace the contents of the directive's element (
|
15127
|
+
* * Replace the contents of the directive's element (default).
|
15112
15128
|
* * Replace the directive's element itself (if `replace` is true - DEPRECATED).
|
15113
15129
|
* * Wrap the contents of the directive's element (if `transclude` is true).
|
15114
15130
|
*
|
@@ -16368,7 +16384,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
|
|
16368
16384
|
if (parentGet.literal) {
|
16369
16385
|
compare = equals;
|
16370
16386
|
} else {
|
16371
|
-
compare = function(a,b) { return a === b; };
|
16387
|
+
compare = function(a,b) { return a === b || (a !== a && b !== b); };
|
16372
16388
|
}
|
16373
16389
|
parentSet = parentGet.assign || function() {
|
16374
16390
|
// reset the change, or we will throw this exception on every $digest
|
@@ -17396,6 +17412,7 @@ function $HttpProvider() {
|
|
17396
17412
|
* - {@link ng.$http#put $http.put}
|
17397
17413
|
* - {@link ng.$http#delete $http.delete}
|
17398
17414
|
* - {@link ng.$http#jsonp $http.jsonp}
|
17415
|
+
* - {@link ng.$http#patch $http.patch}
|
17399
17416
|
*
|
17400
17417
|
*
|
17401
17418
|
* # Setting HTTP Headers
|
@@ -17697,7 +17714,7 @@ function $HttpProvider() {
|
|
17697
17714
|
* - **timeout** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise}
|
17698
17715
|
* that should abort the request when resolved.
|
17699
17716
|
* - **withCredentials** - `{boolean}` - whether to set the `withCredentials` flag on the
|
17700
|
-
* XHR object. See [requests with credentials]https://developer.mozilla.org/
|
17717
|
+
* XHR object. See [requests with credentials](https://developer.mozilla.org/docs/Web/HTTP/Access_control_CORS#Requests_with_credentials)
|
17701
17718
|
* for more information.
|
17702
17719
|
* - **responseType** - `{string}` - see
|
17703
17720
|
* [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType).
|
@@ -18066,7 +18083,8 @@ function $HttpProvider() {
|
|
18066
18083
|
promise.then(removePendingReq, removePendingReq);
|
18067
18084
|
|
18068
18085
|
|
18069
|
-
if ((config.cache || defaults.cache) && config.cache !== false &&
|
18086
|
+
if ((config.cache || defaults.cache) && config.cache !== false &&
|
18087
|
+
(config.method === 'GET' || config.method === 'JSONP')) {
|
18070
18088
|
cache = isObject(config.cache) ? config.cache
|
18071
18089
|
: isObject(defaults.cache) ? defaults.cache
|
18072
18090
|
: defaultCache;
|
@@ -19538,6 +19556,8 @@ function $LocationProvider(){
|
|
19538
19556
|
$location = new LocationMode(appBase, '#' + hashPrefix);
|
19539
19557
|
$location.$$parse($location.$$rewrite(initialUrl));
|
19540
19558
|
|
19559
|
+
var IGNORE_URI_REGEXP = /^\s*(javascript|mailto):/i;
|
19560
|
+
|
19541
19561
|
$rootElement.on('click', function(event) {
|
19542
19562
|
// TODO(vojta): rewrite link when opening in new tab/window (in legacy browser)
|
19543
19563
|
// currently we open nice url link and redirect then
|
@@ -19560,6 +19580,9 @@ function $LocationProvider(){
|
|
19560
19580
|
absHref = urlResolve(absHref.animVal).href;
|
19561
19581
|
}
|
19562
19582
|
|
19583
|
+
// Ignore when url is started with javascript: or mailto:
|
19584
|
+
if (IGNORE_URI_REGEXP.test(absHref)) return;
|
19585
|
+
|
19563
19586
|
// Make relative links work in HTML5 mode for legacy browsers (or at least IE8 & 9)
|
19564
19587
|
// The href should be a regular url e.g. /link/somewhere or link/somewhere or ../somewhere or
|
19565
19588
|
// somewhere#anchor or http://example.com/somewhere
|
@@ -20431,9 +20454,9 @@ Parser.prototype = {
|
|
20431
20454
|
var middle;
|
20432
20455
|
var token;
|
20433
20456
|
if ((token = this.expect('?'))) {
|
20434
|
-
middle = this.
|
20457
|
+
middle = this.assignment();
|
20435
20458
|
if ((token = this.expect(':'))) {
|
20436
|
-
return this.ternaryFn(left, middle, this.
|
20459
|
+
return this.ternaryFn(left, middle, this.assignment());
|
20437
20460
|
} else {
|
20438
20461
|
this.throwError('expected :', token);
|
20439
20462
|
}
|
@@ -20521,7 +20544,9 @@ Parser.prototype = {
|
|
20521
20544
|
return getter(self || object(scope, locals));
|
20522
20545
|
}, {
|
20523
20546
|
assign: function(scope, value, locals) {
|
20524
|
-
|
20547
|
+
var o = object(scope, locals);
|
20548
|
+
if (!o) object.assign(scope, o = {});
|
20549
|
+
return setter(o, field, value, parser.text, parser.options);
|
20525
20550
|
}
|
20526
20551
|
});
|
20527
20552
|
},
|
@@ -20551,10 +20576,11 @@ Parser.prototype = {
|
|
20551
20576
|
return v;
|
20552
20577
|
}, {
|
20553
20578
|
assign: function(self, value, locals) {
|
20554
|
-
var key = indexFn(self, locals);
|
20579
|
+
var key = ensureSafeMemberName(indexFn(self, locals), parser.text);
|
20555
20580
|
// prevent overwriting of Function.constructor which would break ensureSafeObject check
|
20556
|
-
var
|
20557
|
-
|
20581
|
+
var o = ensureSafeObject(obj(self, locals), parser.text);
|
20582
|
+
if (!o) obj.assign(self, o = {});
|
20583
|
+
return o[key] = value;
|
20558
20584
|
}
|
20559
20585
|
});
|
20560
20586
|
},
|
@@ -24920,7 +24946,7 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+
|
|
24920
24946
|
* (e.g. `"h 'o''clock'"`).
|
24921
24947
|
*
|
24922
24948
|
* @param {(Date|number|string)} date Date to format either as Date object, milliseconds (string or
|
24923
|
-
* number) or various ISO 8601 datetime string formats (e.g. yyyy-MM-ddTHH:mm:ss.
|
24949
|
+
* number) or various ISO 8601 datetime string formats (e.g. yyyy-MM-ddTHH:mm:ss.sssZ and its
|
24924
24950
|
* shorter versions like yyyy-MM-ddTHH:mmZ, yyyy-MM-dd or yyyyMMddTHHmmssZ). If no timezone is
|
24925
24951
|
* specified in the string input, the time is considered to be in the local timezone.
|
24926
24952
|
* @param {string=} format Formatting rules (see Description). If not specified,
|
@@ -29084,6 +29110,13 @@ forEach(
|
|
29084
29110
|
* server and reloading the current page), but only if the form does not contain `action`,
|
29085
29111
|
* `data-action`, or `x-action` attributes.
|
29086
29112
|
*
|
29113
|
+
* <div class="alert alert-warning">
|
29114
|
+
* **Warning:** Be careful not to cause "double-submission" by using both the `ngClick` and
|
29115
|
+
* `ngSubmit` handlers together. See the
|
29116
|
+
* {@link form#submitting-a-form-and-preventing-the-default-action `form` directive documentation}
|
29117
|
+
* for a detailed discussion of when `ngSubmit` may be triggered.
|
29118
|
+
* </div>
|
29119
|
+
*
|
29087
29120
|
* @element form
|
29088
29121
|
* @priority 0
|
29089
29122
|
* @param {expression} ngSubmit {@link guide/expression Expression} to eval.
|
@@ -31401,21 +31434,37 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
31401
31434
|
value = valueFn(scope, locals);
|
31402
31435
|
}
|
31403
31436
|
}
|
31404
|
-
// Update the null option's selected property here so $render cleans it up correctly
|
31405
|
-
if (optionGroupsCache[0].length > 1) {
|
31406
|
-
if (optionGroupsCache[0][1].id !== key) {
|
31407
|
-
optionGroupsCache[0][1].selected = false;
|
31408
|
-
}
|
31409
|
-
}
|
31410
31437
|
}
|
31411
31438
|
ctrl.$setViewValue(value);
|
31439
|
+
render();
|
31412
31440
|
});
|
31413
31441
|
});
|
31414
31442
|
|
31415
31443
|
ctrl.$render = render;
|
31416
31444
|
|
31417
|
-
|
31418
|
-
|
31445
|
+
scope.$watchCollection(valuesFn, render);
|
31446
|
+
if ( multiple ) {
|
31447
|
+
scope.$watchCollection(function() { return ctrl.$modelValue; }, render);
|
31448
|
+
}
|
31449
|
+
|
31450
|
+
function getSelectedSet() {
|
31451
|
+
var selectedSet = false;
|
31452
|
+
if (multiple) {
|
31453
|
+
var modelValue = ctrl.$modelValue;
|
31454
|
+
if (trackFn && isArray(modelValue)) {
|
31455
|
+
selectedSet = new HashMap([]);
|
31456
|
+
var locals = {};
|
31457
|
+
for (var trackIndex = 0; trackIndex < modelValue.length; trackIndex++) {
|
31458
|
+
locals[valueName] = modelValue[trackIndex];
|
31459
|
+
selectedSet.put(trackFn(scope, locals), modelValue[trackIndex]);
|
31460
|
+
}
|
31461
|
+
} else {
|
31462
|
+
selectedSet = new HashMap(modelValue);
|
31463
|
+
}
|
31464
|
+
}
|
31465
|
+
return selectedSet;
|
31466
|
+
}
|
31467
|
+
|
31419
31468
|
|
31420
31469
|
function render() {
|
31421
31470
|
// Temporary location for the option groups before we render them
|
@@ -31433,22 +31482,11 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
31433
31482
|
groupIndex, index,
|
31434
31483
|
locals = {},
|
31435
31484
|
selected,
|
31436
|
-
selectedSet =
|
31485
|
+
selectedSet = getSelectedSet(),
|
31437
31486
|
lastElement,
|
31438
31487
|
element,
|
31439
31488
|
label;
|
31440
31489
|
|
31441
|
-
if (multiple) {
|
31442
|
-
if (trackFn && isArray(modelValue)) {
|
31443
|
-
selectedSet = new HashMap([]);
|
31444
|
-
for (var trackIndex = 0; trackIndex < modelValue.length; trackIndex++) {
|
31445
|
-
locals[valueName] = modelValue[trackIndex];
|
31446
|
-
selectedSet.put(trackFn(scope, locals), modelValue[trackIndex]);
|
31447
|
-
}
|
31448
|
-
} else {
|
31449
|
-
selectedSet = new HashMap(modelValue);
|
31450
|
-
}
|
31451
|
-
}
|
31452
31490
|
|
31453
31491
|
// We now build up the list of options we need (we merge later)
|
31454
31492
|
for (index = 0; length = keys.length, index < length; index++) {
|
@@ -31544,7 +31582,7 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
31544
31582
|
lastElement.val(existingOption.id = option.id);
|
31545
31583
|
}
|
31546
31584
|
// lastElement.prop('selected') provided by jQuery has side-effects
|
31547
|
-
if (
|
31585
|
+
if (lastElement[0].selected !== option.selected) {
|
31548
31586
|
lastElement.prop('selected', (existingOption.selected = option.selected));
|
31549
31587
|
if (msie) {
|
31550
31588
|
// See #7692
|
@@ -31567,6 +31605,7 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
31567
31605
|
(element = optionTemplate.clone())
|
31568
31606
|
.val(option.id)
|
31569
31607
|
.prop('selected', option.selected)
|
31608
|
+
.attr('selected', option.selected)
|
31570
31609
|
.text(option.label);
|
31571
31610
|
}
|
31572
31611
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.2.
|
2
|
+
* @license AngularJS v1.2.22
|
3
3
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -68,7 +68,7 @@ function minErr(module) {
|
|
68
68
|
return match;
|
69
69
|
});
|
70
70
|
|
71
|
-
message = message + '\nhttp://errors.angularjs.org/1.2.
|
71
|
+
message = message + '\nhttp://errors.angularjs.org/1.2.22/' +
|
72
72
|
(module ? module + '/' : '') + code;
|
73
73
|
for (i = 2; i < arguments.length; i++) {
|
74
74
|
message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
|
@@ -1977,11 +1977,11 @@ function setupModuleLoader(window) {
|
|
1977
1977
|
* - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
|
1978
1978
|
*/
|
1979
1979
|
var version = {
|
1980
|
-
full: '1.2.
|
1980
|
+
full: '1.2.22', // all of these placeholder strings will be replaced by grunt's
|
1981
1981
|
major: 1, // package task
|
1982
1982
|
minor: 2,
|
1983
|
-
dot:
|
1984
|
-
codeName: '
|
1983
|
+
dot: 22,
|
1984
|
+
codeName: 'finicky-pleasure'
|
1985
1985
|
};
|
1986
1986
|
|
1987
1987
|
|
@@ -1994,11 +1994,11 @@ function publishExternalAPI(angular){
|
|
1994
1994
|
'element': jqLite,
|
1995
1995
|
'forEach': forEach,
|
1996
1996
|
'injector': createInjector,
|
1997
|
-
'noop':noop,
|
1998
|
-
'bind':bind,
|
1997
|
+
'noop': noop,
|
1998
|
+
'bind': bind,
|
1999
1999
|
'toJson': toJson,
|
2000
2000
|
'fromJson': fromJson,
|
2001
|
-
'identity':identity,
|
2001
|
+
'identity': identity,
|
2002
2002
|
'isUndefined': isUndefined,
|
2003
2003
|
'isDefined': isDefined,
|
2004
2004
|
'isString': isString,
|
@@ -3057,21 +3057,37 @@ forEach({
|
|
3057
3057
|
|
3058
3058
|
clone: jqLiteClone,
|
3059
3059
|
|
3060
|
-
triggerHandler: function(element,
|
3061
|
-
// Copy event handlers in case event handlers array is modified during execution.
|
3062
|
-
var eventFns = (jqLiteExpandoStore(element, 'events') || {})[eventName],
|
3063
|
-
eventFnsCopy = shallowCopy(eventFns || []);
|
3060
|
+
triggerHandler: function(element, event, extraParameters) {
|
3064
3061
|
|
3065
|
-
|
3062
|
+
var dummyEvent, eventFnsCopy, handlerArgs;
|
3063
|
+
var eventName = event.type || event;
|
3064
|
+
var eventFns = (jqLiteExpandoStore(element, 'events') || {})[eventName];
|
3066
3065
|
|
3067
|
-
|
3068
|
-
preventDefault: noop,
|
3069
|
-
stopPropagation: noop
|
3070
|
-
}];
|
3066
|
+
if (eventFns) {
|
3071
3067
|
|
3072
|
-
|
3073
|
-
|
3074
|
-
|
3068
|
+
// Create a dummy event to pass to the handlers
|
3069
|
+
dummyEvent = {
|
3070
|
+
preventDefault: function() { this.defaultPrevented = true; },
|
3071
|
+
isDefaultPrevented: function() { return this.defaultPrevented === true; },
|
3072
|
+
stopPropagation: noop,
|
3073
|
+
type: eventName,
|
3074
|
+
target: element
|
3075
|
+
};
|
3076
|
+
|
3077
|
+
// If a custom event was provided then extend our dummy event with it
|
3078
|
+
if (event.type) {
|
3079
|
+
dummyEvent = extend(dummyEvent, event);
|
3080
|
+
}
|
3081
|
+
|
3082
|
+
// Copy event handlers in case event handlers array is modified during execution.
|
3083
|
+
eventFnsCopy = shallowCopy(eventFns);
|
3084
|
+
handlerArgs = extraParameters ? [dummyEvent].concat(extraParameters) : [dummyEvent];
|
3085
|
+
|
3086
|
+
forEach(eventFnsCopy, function(fn) {
|
3087
|
+
fn.apply(element, handlerArgs);
|
3088
|
+
});
|
3089
|
+
|
3090
|
+
}
|
3075
3091
|
}
|
3076
3092
|
}, function(fn, name){
|
3077
3093
|
/**
|
@@ -5316,7 +5332,7 @@ function $TemplateCacheProvider() {
|
|
5316
5332
|
*
|
5317
5333
|
* #### `template`
|
5318
5334
|
* HTML markup that may:
|
5319
|
-
* * Replace the contents of the directive's element (
|
5335
|
+
* * Replace the contents of the directive's element (default).
|
5320
5336
|
* * Replace the directive's element itself (if `replace` is true - DEPRECATED).
|
5321
5337
|
* * Wrap the contents of the directive's element (if `transclude` is true).
|
5322
5338
|
*
|
@@ -6576,7 +6592,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
|
|
6576
6592
|
if (parentGet.literal) {
|
6577
6593
|
compare = equals;
|
6578
6594
|
} else {
|
6579
|
-
compare = function(a,b) { return a === b; };
|
6595
|
+
compare = function(a,b) { return a === b || (a !== a && b !== b); };
|
6580
6596
|
}
|
6581
6597
|
parentSet = parentGet.assign || function() {
|
6582
6598
|
// reset the change, or we will throw this exception on every $digest
|
@@ -7604,6 +7620,7 @@ function $HttpProvider() {
|
|
7604
7620
|
* - {@link ng.$http#put $http.put}
|
7605
7621
|
* - {@link ng.$http#delete $http.delete}
|
7606
7622
|
* - {@link ng.$http#jsonp $http.jsonp}
|
7623
|
+
* - {@link ng.$http#patch $http.patch}
|
7607
7624
|
*
|
7608
7625
|
*
|
7609
7626
|
* # Setting HTTP Headers
|
@@ -7905,7 +7922,7 @@ function $HttpProvider() {
|
|
7905
7922
|
* - **timeout** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise}
|
7906
7923
|
* that should abort the request when resolved.
|
7907
7924
|
* - **withCredentials** - `{boolean}` - whether to set the `withCredentials` flag on the
|
7908
|
-
* XHR object. See [requests with credentials]https://developer.mozilla.org/
|
7925
|
+
* XHR object. See [requests with credentials](https://developer.mozilla.org/docs/Web/HTTP/Access_control_CORS#Requests_with_credentials)
|
7909
7926
|
* for more information.
|
7910
7927
|
* - **responseType** - `{string}` - see
|
7911
7928
|
* [requestType](https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType).
|
@@ -8274,7 +8291,8 @@ function $HttpProvider() {
|
|
8274
8291
|
promise.then(removePendingReq, removePendingReq);
|
8275
8292
|
|
8276
8293
|
|
8277
|
-
if ((config.cache || defaults.cache) && config.cache !== false &&
|
8294
|
+
if ((config.cache || defaults.cache) && config.cache !== false &&
|
8295
|
+
(config.method === 'GET' || config.method === 'JSONP')) {
|
8278
8296
|
cache = isObject(config.cache) ? config.cache
|
8279
8297
|
: isObject(defaults.cache) ? defaults.cache
|
8280
8298
|
: defaultCache;
|
@@ -9746,6 +9764,8 @@ function $LocationProvider(){
|
|
9746
9764
|
$location = new LocationMode(appBase, '#' + hashPrefix);
|
9747
9765
|
$location.$$parse($location.$$rewrite(initialUrl));
|
9748
9766
|
|
9767
|
+
var IGNORE_URI_REGEXP = /^\s*(javascript|mailto):/i;
|
9768
|
+
|
9749
9769
|
$rootElement.on('click', function(event) {
|
9750
9770
|
// TODO(vojta): rewrite link when opening in new tab/window (in legacy browser)
|
9751
9771
|
// currently we open nice url link and redirect then
|
@@ -9768,6 +9788,9 @@ function $LocationProvider(){
|
|
9768
9788
|
absHref = urlResolve(absHref.animVal).href;
|
9769
9789
|
}
|
9770
9790
|
|
9791
|
+
// Ignore when url is started with javascript: or mailto:
|
9792
|
+
if (IGNORE_URI_REGEXP.test(absHref)) return;
|
9793
|
+
|
9771
9794
|
// Make relative links work in HTML5 mode for legacy browsers (or at least IE8 & 9)
|
9772
9795
|
// The href should be a regular url e.g. /link/somewhere or link/somewhere or ../somewhere or
|
9773
9796
|
// somewhere#anchor or http://example.com/somewhere
|
@@ -10639,9 +10662,9 @@ Parser.prototype = {
|
|
10639
10662
|
var middle;
|
10640
10663
|
var token;
|
10641
10664
|
if ((token = this.expect('?'))) {
|
10642
|
-
middle = this.
|
10665
|
+
middle = this.assignment();
|
10643
10666
|
if ((token = this.expect(':'))) {
|
10644
|
-
return this.ternaryFn(left, middle, this.
|
10667
|
+
return this.ternaryFn(left, middle, this.assignment());
|
10645
10668
|
} else {
|
10646
10669
|
this.throwError('expected :', token);
|
10647
10670
|
}
|
@@ -10729,7 +10752,9 @@ Parser.prototype = {
|
|
10729
10752
|
return getter(self || object(scope, locals));
|
10730
10753
|
}, {
|
10731
10754
|
assign: function(scope, value, locals) {
|
10732
|
-
|
10755
|
+
var o = object(scope, locals);
|
10756
|
+
if (!o) object.assign(scope, o = {});
|
10757
|
+
return setter(o, field, value, parser.text, parser.options);
|
10733
10758
|
}
|
10734
10759
|
});
|
10735
10760
|
},
|
@@ -10759,10 +10784,11 @@ Parser.prototype = {
|
|
10759
10784
|
return v;
|
10760
10785
|
}, {
|
10761
10786
|
assign: function(self, value, locals) {
|
10762
|
-
var key = indexFn(self, locals);
|
10787
|
+
var key = ensureSafeMemberName(indexFn(self, locals), parser.text);
|
10763
10788
|
// prevent overwriting of Function.constructor which would break ensureSafeObject check
|
10764
|
-
var
|
10765
|
-
|
10789
|
+
var o = ensureSafeObject(obj(self, locals), parser.text);
|
10790
|
+
if (!o) obj.assign(self, o = {});
|
10791
|
+
return o[key] = value;
|
10766
10792
|
}
|
10767
10793
|
});
|
10768
10794
|
},
|
@@ -15128,7 +15154,7 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+
|
|
15128
15154
|
* (e.g. `"h 'o''clock'"`).
|
15129
15155
|
*
|
15130
15156
|
* @param {(Date|number|string)} date Date to format either as Date object, milliseconds (string or
|
15131
|
-
* number) or various ISO 8601 datetime string formats (e.g. yyyy-MM-ddTHH:mm:ss.
|
15157
|
+
* number) or various ISO 8601 datetime string formats (e.g. yyyy-MM-ddTHH:mm:ss.sssZ and its
|
15132
15158
|
* shorter versions like yyyy-MM-ddTHH:mmZ, yyyy-MM-dd or yyyyMMddTHHmmssZ). If no timezone is
|
15133
15159
|
* specified in the string input, the time is considered to be in the local timezone.
|
15134
15160
|
* @param {string=} format Formatting rules (see Description). If not specified,
|
@@ -19292,6 +19318,13 @@ forEach(
|
|
19292
19318
|
* server and reloading the current page), but only if the form does not contain `action`,
|
19293
19319
|
* `data-action`, or `x-action` attributes.
|
19294
19320
|
*
|
19321
|
+
* <div class="alert alert-warning">
|
19322
|
+
* **Warning:** Be careful not to cause "double-submission" by using both the `ngClick` and
|
19323
|
+
* `ngSubmit` handlers together. See the
|
19324
|
+
* {@link form#submitting-a-form-and-preventing-the-default-action `form` directive documentation}
|
19325
|
+
* for a detailed discussion of when `ngSubmit` may be triggered.
|
19326
|
+
* </div>
|
19327
|
+
*
|
19295
19328
|
* @element form
|
19296
19329
|
* @priority 0
|
19297
19330
|
* @param {expression} ngSubmit {@link guide/expression Expression} to eval.
|
@@ -21609,21 +21642,37 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
21609
21642
|
value = valueFn(scope, locals);
|
21610
21643
|
}
|
21611
21644
|
}
|
21612
|
-
// Update the null option's selected property here so $render cleans it up correctly
|
21613
|
-
if (optionGroupsCache[0].length > 1) {
|
21614
|
-
if (optionGroupsCache[0][1].id !== key) {
|
21615
|
-
optionGroupsCache[0][1].selected = false;
|
21616
|
-
}
|
21617
|
-
}
|
21618
21645
|
}
|
21619
21646
|
ctrl.$setViewValue(value);
|
21647
|
+
render();
|
21620
21648
|
});
|
21621
21649
|
});
|
21622
21650
|
|
21623
21651
|
ctrl.$render = render;
|
21624
21652
|
|
21625
|
-
|
21626
|
-
|
21653
|
+
scope.$watchCollection(valuesFn, render);
|
21654
|
+
if ( multiple ) {
|
21655
|
+
scope.$watchCollection(function() { return ctrl.$modelValue; }, render);
|
21656
|
+
}
|
21657
|
+
|
21658
|
+
function getSelectedSet() {
|
21659
|
+
var selectedSet = false;
|
21660
|
+
if (multiple) {
|
21661
|
+
var modelValue = ctrl.$modelValue;
|
21662
|
+
if (trackFn && isArray(modelValue)) {
|
21663
|
+
selectedSet = new HashMap([]);
|
21664
|
+
var locals = {};
|
21665
|
+
for (var trackIndex = 0; trackIndex < modelValue.length; trackIndex++) {
|
21666
|
+
locals[valueName] = modelValue[trackIndex];
|
21667
|
+
selectedSet.put(trackFn(scope, locals), modelValue[trackIndex]);
|
21668
|
+
}
|
21669
|
+
} else {
|
21670
|
+
selectedSet = new HashMap(modelValue);
|
21671
|
+
}
|
21672
|
+
}
|
21673
|
+
return selectedSet;
|
21674
|
+
}
|
21675
|
+
|
21627
21676
|
|
21628
21677
|
function render() {
|
21629
21678
|
// Temporary location for the option groups before we render them
|
@@ -21641,22 +21690,11 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
21641
21690
|
groupIndex, index,
|
21642
21691
|
locals = {},
|
21643
21692
|
selected,
|
21644
|
-
selectedSet =
|
21693
|
+
selectedSet = getSelectedSet(),
|
21645
21694
|
lastElement,
|
21646
21695
|
element,
|
21647
21696
|
label;
|
21648
21697
|
|
21649
|
-
if (multiple) {
|
21650
|
-
if (trackFn && isArray(modelValue)) {
|
21651
|
-
selectedSet = new HashMap([]);
|
21652
|
-
for (var trackIndex = 0; trackIndex < modelValue.length; trackIndex++) {
|
21653
|
-
locals[valueName] = modelValue[trackIndex];
|
21654
|
-
selectedSet.put(trackFn(scope, locals), modelValue[trackIndex]);
|
21655
|
-
}
|
21656
|
-
} else {
|
21657
|
-
selectedSet = new HashMap(modelValue);
|
21658
|
-
}
|
21659
|
-
}
|
21660
21698
|
|
21661
21699
|
// We now build up the list of options we need (we merge later)
|
21662
21700
|
for (index = 0; length = keys.length, index < length; index++) {
|
@@ -21752,7 +21790,7 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
21752
21790
|
lastElement.val(existingOption.id = option.id);
|
21753
21791
|
}
|
21754
21792
|
// lastElement.prop('selected') provided by jQuery has side-effects
|
21755
|
-
if (
|
21793
|
+
if (lastElement[0].selected !== option.selected) {
|
21756
21794
|
lastElement.prop('selected', (existingOption.selected = option.selected));
|
21757
21795
|
if (msie) {
|
21758
21796
|
// See #7692
|
@@ -21775,6 +21813,7 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
21775
21813
|
(element = optionTemplate.clone())
|
21776
21814
|
.val(option.id)
|
21777
21815
|
.prop('selected', option.selected)
|
21816
|
+
.attr('selected', option.selected)
|
21778
21817
|
.text(option.label);
|
21779
21818
|
}
|
21780
21819
|
|