angularjs-rails 1.0.5 → 1.0.6
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/angularjs-rails/version.rb +1 -1
- data/vendor/assets/javascripts/angular-bootstrap-prettify.js +3 -1
- data/vendor/assets/javascripts/angular-bootstrap.js +2 -1
- data/vendor/assets/javascripts/angular-cookies.js +2 -1
- data/vendor/assets/javascripts/angular-loader.js +2 -1
- data/vendor/assets/javascripts/angular-mocks.js +9 -5
- data/vendor/assets/javascripts/angular-resource.js +14 -2
- data/vendor/assets/javascripts/angular-sanitize.js +3 -1
- data/vendor/assets/javascripts/angular-scenario.js +89 -61
- data/vendor/assets/javascripts/angular.js +88 -61
- metadata +1 -1
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.0.
|
2
|
+
* @license AngularJS v1.0.6
|
3
3
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -290,6 +290,7 @@ service.getEmbeddedTemplate = ['reindentCode', function(reindentCode) {
|
|
290
290
|
|
291
291
|
|
292
292
|
angular.module('bootstrapPrettify', []).directive(directive).factory(service);
|
293
|
+
|
293
294
|
// Copyright (C) 2006 Google Inc.
|
294
295
|
//
|
295
296
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
@@ -1829,5 +1830,6 @@ var REGEXP_PRECEDER_PATTERN = '(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[
|
|
1829
1830
|
}
|
1830
1831
|
})();
|
1831
1832
|
|
1833
|
+
|
1832
1834
|
})(window, window.angular);
|
1833
1835
|
angular.element(document).find('head').append('<style type="text/css">.com{color:#93a1a1;}.lit{color:#195f91;}.pun,.opn,.clo{color:#93a1a1;}.fun{color:#dc322f;}.str,.atv{color:#D14;}.kwd,.linenums .tag{color:#1e347b;}.typ,.atn,.dec,.var{color:teal;}.pln{color:#48484c;}.prettyprint{padding:8px;background-color:#f7f7f9;border:1px solid #e1e1e8;}.prettyprint.linenums{-webkit-box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0;-moz-box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0;box-shadow:inset 40px 0 0 #fbfbfc,inset 41px 0 0 #ececf0;}ol.linenums{margin:0 0 0 33px;}ol.linenums li{padding-left:12px;color:#bebec5;line-height:18px;text-shadow:0 1px 0 #fff;}</style>');
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.0.
|
2
|
+
* @license AngularJS v1.0.6
|
3
3
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -163,4 +163,5 @@ directive.tabPane = function() {
|
|
163
163
|
|
164
164
|
angular.module('bootstrap', []).directive(directive);
|
165
165
|
|
166
|
+
|
166
167
|
})(window, window.angular);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.0.
|
2
|
+
* @license AngularJS v1.0.6
|
3
3
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*
|
@@ -244,7 +244,7 @@ angular.mock.$ExceptionHandlerProvider = function() {
|
|
244
244
|
* - `rethrow`: If any errors are are passed into the handler in tests, it typically
|
245
245
|
* means that there is a bug in the application or test, so this mock will
|
246
246
|
* make these tests fail.
|
247
|
-
* - `log`: Sometimes it is desirable to test that an error is
|
247
|
+
* - `log`: Sometimes it is desirable to test that an error is thrown, for this case the `log` mode stores an
|
248
248
|
* array of errors in `$exceptionHandler.errors`, to allow later assertion of them.
|
249
249
|
* See {@link ngMock.$log#assertEmpty assertEmpty()} and
|
250
250
|
* {@link ngMock.$log#reset reset()}
|
@@ -430,7 +430,7 @@ angular.mock.$LogProvider = function() {
|
|
430
430
|
*
|
431
431
|
* *NOTE*: this is not an injectable instance, just a globally available mock class of `Date`.
|
432
432
|
*
|
433
|
-
* Mock of the Date type which has its timezone specified via
|
433
|
+
* Mock of the Date type which has its timezone specified via constructor arg.
|
434
434
|
*
|
435
435
|
* The main purpose is to create Date-like instances with timezone fixed to the specified timezone
|
436
436
|
* offset, so that we can test code that depends on local timezone settings without dependency on
|
@@ -1653,7 +1653,7 @@ window.jasmine && (function(window) {
|
|
1653
1653
|
* @name angular.mock.module
|
1654
1654
|
* @description
|
1655
1655
|
*
|
1656
|
-
* *NOTE*: This
|
1656
|
+
* *NOTE*: This function is also published on window for easy access.<br>
|
1657
1657
|
* *NOTE*: Only available with {@link http://pivotal.github.com/jasmine/ jasmine}.
|
1658
1658
|
*
|
1659
1659
|
* This function registers a module configuration code. It collects the configuration information
|
@@ -1687,8 +1687,12 @@ window.jasmine && (function(window) {
|
|
1687
1687
|
* @name angular.mock.inject
|
1688
1688
|
* @description
|
1689
1689
|
*
|
1690
|
+
<<<<<<< HEAD
|
1690
1691
|
* *NOTE*: This is function is also published on window for easy access.<br>
|
1691
1692
|
* *NOTE*: Only available with {@link http://pivotal.github.com/jasmine/ jasmine}.
|
1693
|
+
=======
|
1694
|
+
* *NOTE*: This function is also published on window for easy access.<br>
|
1695
|
+
>>>>>>> 8dca056... docs(mocks): fix typos
|
1692
1696
|
*
|
1693
1697
|
* The inject function wraps a function into an injectable function. The inject() creates new
|
1694
1698
|
* instance of {@link AUTO.$injector $injector} per test, which is then used for
|
@@ -1753,7 +1757,7 @@ window.jasmine && (function(window) {
|
|
1753
1757
|
try {
|
1754
1758
|
injector.invoke(blockFns[i] || angular.noop, this);
|
1755
1759
|
} catch (e) {
|
1756
|
-
if(e.stack) e.stack += '\n' + errorForStack.stack;
|
1760
|
+
if(e.stack && errorForStack) e.stack += '\n' + errorForStack.stack;
|
1757
1761
|
throw e;
|
1758
1762
|
} finally {
|
1759
1763
|
errorForStack = null;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.0.
|
2
|
+
* @license AngularJS v1.0.6
|
3
3
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -24,6 +24,17 @@
|
|
24
24
|
* The returned resource object has action methods which provide high-level behaviors without
|
25
25
|
* the need to interact with the low level {@link ng.$http $http} service.
|
26
26
|
*
|
27
|
+
* # Installation
|
28
|
+
* To use $resource make sure you have included the `angular-resource.js` that comes in Angular
|
29
|
+
* package. You can also find this file on Google CDN, bower as well as at
|
30
|
+
* {@link http://code.angularjs.org/ code.angularjs.org}.
|
31
|
+
*
|
32
|
+
* Finally load the module in your application:
|
33
|
+
*
|
34
|
+
* angular.module('app', ['ngResource']);
|
35
|
+
*
|
36
|
+
* and you are ready to get started!
|
37
|
+
*
|
27
38
|
* @param {string} url A parameterized URL template with parameters prefixed by `:` as in
|
28
39
|
* `/user/:username`. If you are using a URL with a port number (e.g.
|
29
40
|
* `http://example.com:8080/api`), you'll need to escape the colon character before the port
|
@@ -268,7 +279,7 @@ angular.module('ngResource', ['ng']).
|
|
268
279
|
replace(/%3A/gi, ':').
|
269
280
|
replace(/%24/g, '$').
|
270
281
|
replace(/%2C/gi, ',').
|
271
|
-
replace((pctEncodeSpaces ?
|
282
|
+
replace(/%20/g, (pctEncodeSpaces ? '%20' : '+'));
|
272
283
|
}
|
273
284
|
|
274
285
|
function Route(template, defaults) {
|
@@ -442,4 +453,5 @@ angular.module('ngResource', ['ng']).
|
|
442
453
|
return ResourceFactory;
|
443
454
|
}]);
|
444
455
|
|
456
|
+
|
445
457
|
})(window, window.angular);
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.0.
|
2
|
+
* @license AngularJS v1.0.6
|
3
3
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -422,6 +422,7 @@ angular.module('ngSanitize').directive('ngBindHtml', ['$sanitize', function($san
|
|
422
422
|
});
|
423
423
|
};
|
424
424
|
}]);
|
425
|
+
|
425
426
|
/**
|
426
427
|
* @ngdoc filter
|
427
428
|
* @name ngSanitize.filter:linky
|
@@ -532,4 +533,5 @@ angular.module('ngSanitize').filter('linky', function() {
|
|
532
533
|
};
|
533
534
|
});
|
534
535
|
|
536
|
+
|
535
537
|
})(window, window.angular);
|
@@ -9403,8 +9403,9 @@ if ( typeof define === "function" && define.amd && define.amd.jQuery ) {
|
|
9403
9403
|
|
9404
9404
|
|
9405
9405
|
})( window );
|
9406
|
+
|
9406
9407
|
/**
|
9407
|
-
* @license AngularJS v1.0.
|
9408
|
+
* @license AngularJS v1.0.6
|
9408
9409
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
9409
9410
|
* License: MIT
|
9410
9411
|
*/
|
@@ -9439,12 +9440,12 @@ var uppercase = function(string){return isString(string) ? string.toUpperCase()
|
|
9439
9440
|
|
9440
9441
|
var manualLowercase = function(s) {
|
9441
9442
|
return isString(s)
|
9442
|
-
? s.replace(/[A-Z]/g, function(ch) {return fromCharCode(ch.charCodeAt(0) | 32);})
|
9443
|
+
? s.replace(/[A-Z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) | 32);})
|
9443
9444
|
: s;
|
9444
9445
|
};
|
9445
9446
|
var manualUppercase = function(s) {
|
9446
9447
|
return isString(s)
|
9447
|
-
? s.replace(/[a-z]/g, function(ch) {return fromCharCode(ch.charCodeAt(0) & ~32);})
|
9448
|
+
? s.replace(/[a-z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) & ~32);})
|
9448
9449
|
: s;
|
9449
9450
|
};
|
9450
9451
|
|
@@ -9457,8 +9458,6 @@ if ('i' !== 'I'.toLowerCase()) {
|
|
9457
9458
|
uppercase = manualUppercase;
|
9458
9459
|
}
|
9459
9460
|
|
9460
|
-
function fromCharCode(code) {return String.fromCharCode(code);}
|
9461
|
-
|
9462
9461
|
|
9463
9462
|
var /** holds major version number for IE or NaN for real browsers */
|
9464
9463
|
msie = int((/msie (\d+)/.exec(lowercase(navigator.userAgent)) || [])[1]),
|
@@ -10266,7 +10265,7 @@ function encodeUriQuery(val, pctEncodeSpaces) {
|
|
10266
10265
|
replace(/%3A/gi, ':').
|
10267
10266
|
replace(/%24/g, '$').
|
10268
10267
|
replace(/%2C/gi, ',').
|
10269
|
-
replace((pctEncodeSpaces ?
|
10268
|
+
replace(/%20/g, (pctEncodeSpaces ? '%20' : '+'));
|
10270
10269
|
}
|
10271
10270
|
|
10272
10271
|
|
@@ -10355,22 +10354,38 @@ function angularInit(element, bootstrap) {
|
|
10355
10354
|
* @returns {AUTO.$injector} Returns the newly created injector for this app.
|
10356
10355
|
*/
|
10357
10356
|
function bootstrap(element, modules) {
|
10358
|
-
|
10359
|
-
|
10360
|
-
|
10361
|
-
|
10362
|
-
|
10363
|
-
|
10364
|
-
|
10365
|
-
|
10366
|
-
['$rootScope', '$rootElement', '$compile', '$injector',
|
10367
|
-
|
10368
|
-
|
10369
|
-
|
10370
|
-
|
10371
|
-
|
10372
|
-
|
10373
|
-
|
10357
|
+
var resumeBootstrapInternal = function() {
|
10358
|
+
element = jqLite(element);
|
10359
|
+
modules = modules || [];
|
10360
|
+
modules.unshift(['$provide', function($provide) {
|
10361
|
+
$provide.value('$rootElement', element);
|
10362
|
+
}]);
|
10363
|
+
modules.unshift('ng');
|
10364
|
+
var injector = createInjector(modules);
|
10365
|
+
injector.invoke(['$rootScope', '$rootElement', '$compile', '$injector',
|
10366
|
+
function(scope, element, compile, injector) {
|
10367
|
+
scope.$apply(function() {
|
10368
|
+
element.data('$injector', injector);
|
10369
|
+
compile(element)(scope);
|
10370
|
+
});
|
10371
|
+
}]
|
10372
|
+
);
|
10373
|
+
return injector;
|
10374
|
+
};
|
10375
|
+
|
10376
|
+
var NG_DEFER_BOOTSTRAP = /^NG_DEFER_BOOTSTRAP!/;
|
10377
|
+
|
10378
|
+
if (window && !NG_DEFER_BOOTSTRAP.test(window.name)) {
|
10379
|
+
return resumeBootstrapInternal();
|
10380
|
+
}
|
10381
|
+
|
10382
|
+
window.name = window.name.replace(NG_DEFER_BOOTSTRAP, '');
|
10383
|
+
angular.resumeBootstrap = function(extraModules) {
|
10384
|
+
forEach(extraModules, function(module) {
|
10385
|
+
modules.push(module);
|
10386
|
+
});
|
10387
|
+
resumeBootstrapInternal();
|
10388
|
+
};
|
10374
10389
|
}
|
10375
10390
|
|
10376
10391
|
var SNAKE_CASE_REGEXP = /[A-Z]/g;
|
@@ -10684,11 +10699,11 @@ function setupModuleLoader(window) {
|
|
10684
10699
|
* - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
|
10685
10700
|
*/
|
10686
10701
|
var version = {
|
10687
|
-
full: '1.0.
|
10688
|
-
major: 1, //
|
10702
|
+
full: '1.0.6', // all of these placeholder strings will be replaced by grunt's
|
10703
|
+
major: 1, // package task
|
10689
10704
|
minor: 0,
|
10690
|
-
dot:
|
10691
|
-
codeName: '
|
10705
|
+
dot: 6,
|
10706
|
+
codeName: 'universal-irreversibility'
|
10692
10707
|
};
|
10693
10708
|
|
10694
10709
|
|
@@ -11773,15 +11788,15 @@ function annotate(fn) {
|
|
11773
11788
|
*
|
11774
11789
|
* <pre>
|
11775
11790
|
* // inferred (only works if code not minified/obfuscated)
|
11776
|
-
* $
|
11791
|
+
* $injector.invoke(function(serviceA){});
|
11777
11792
|
*
|
11778
11793
|
* // annotated
|
11779
11794
|
* function explicit(serviceA) {};
|
11780
11795
|
* explicit.$inject = ['serviceA'];
|
11781
|
-
* $
|
11796
|
+
* $injector.invoke(explicit);
|
11782
11797
|
*
|
11783
11798
|
* // inline
|
11784
|
-
* $
|
11799
|
+
* $injector.invoke(['serviceA', function(serviceA){}]);
|
11785
11800
|
* </pre>
|
11786
11801
|
*
|
11787
11802
|
* ## Inference
|
@@ -11927,7 +11942,7 @@ function annotate(fn) {
|
|
11927
11942
|
* @description
|
11928
11943
|
*
|
11929
11944
|
* Use `$provide` to register new providers with the `$injector`. The providers are the factories for the instance.
|
11930
|
-
* The providers share the same name as the instance they create with
|
11945
|
+
* The providers share the same name as the instance they create with `Provider` suffixed to them.
|
11931
11946
|
*
|
11932
11947
|
* A provider is an object with a `$get()` method. The injector calls the `$get` method to create a new instance of
|
11933
11948
|
* a service. The Provider can have additional methods which would allow for configuration of the provider.
|
@@ -12275,6 +12290,7 @@ function createInjector(modulesToLoad) {
|
|
12275
12290
|
};
|
12276
12291
|
}
|
12277
12292
|
}
|
12293
|
+
|
12278
12294
|
/**
|
12279
12295
|
* @ngdoc function
|
12280
12296
|
* @name ng.$anchorScroll
|
@@ -12703,6 +12719,7 @@ function $BrowserProvider(){
|
|
12703
12719
|
return new Browser($window, $document, $log, $sniffer);
|
12704
12720
|
}];
|
12705
12721
|
}
|
12722
|
+
|
12706
12723
|
/**
|
12707
12724
|
* @ngdoc object
|
12708
12725
|
* @name ng.$cacheFactory
|
@@ -13030,7 +13047,7 @@ function $CompileProvider($provide) {
|
|
13030
13047
|
COMMENT_DIRECTIVE_REGEXP = /^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,
|
13031
13048
|
CLASS_DIRECTIVE_REGEXP = /(([\d\w\-_]+)(?:\:([^;]+))?;?)/,
|
13032
13049
|
MULTI_ROOT_TEMPLATE_ERROR = 'Template must have exactly one root element. was: ',
|
13033
|
-
urlSanitizationWhitelist = /^\s*(https?|ftp|mailto):/;
|
13050
|
+
urlSanitizationWhitelist = /^\s*(https?|ftp|mailto|file):/;
|
13034
13051
|
|
13035
13052
|
|
13036
13053
|
/**
|
@@ -13232,7 +13249,7 @@ function $CompileProvider($provide) {
|
|
13232
13249
|
|
13233
13250
|
function compile($compileNodes, transcludeFn, maxPriority) {
|
13234
13251
|
if (!($compileNodes instanceof jqLite)) {
|
13235
|
-
// jquery always rewraps,
|
13252
|
+
// jquery always rewraps, whereas we need to preserve the original selector so that we can modify it.
|
13236
13253
|
$compileNodes = jqLite($compileNodes);
|
13237
13254
|
}
|
13238
13255
|
// We can not compile top level text elements since text nodes can be merged and we will
|
@@ -13284,7 +13301,7 @@ function $CompileProvider($provide) {
|
|
13284
13301
|
* functions return values - the linking functions - are combined into a composite linking
|
13285
13302
|
* function, which is the a linking function for the node.
|
13286
13303
|
*
|
13287
|
-
* @param {NodeList} nodeList an array of nodes to compile
|
13304
|
+
* @param {NodeList} nodeList an array of nodes or NodeList to compile
|
13288
13305
|
* @param {function(angular.Scope[, cloneAttachFn]} transcludeFn A linking function, where the
|
13289
13306
|
* scope argument is auto-generated to the new child of the transcluded parent scope.
|
13290
13307
|
* @param {DOMElement=} $rootElement If the nodeList is the root of the compilation tree then the
|
@@ -13307,7 +13324,7 @@ function $CompileProvider($provide) {
|
|
13307
13324
|
? applyDirectivesToNode(directives, nodeList[i], attrs, transcludeFn, $rootElement)
|
13308
13325
|
: null;
|
13309
13326
|
|
13310
|
-
childLinkFn = (nodeLinkFn && nodeLinkFn.terminal || !nodeList[i].childNodes.length)
|
13327
|
+
childLinkFn = (nodeLinkFn && nodeLinkFn.terminal || !nodeList[i].childNodes || !nodeList[i].childNodes.length)
|
13311
13328
|
? null
|
13312
13329
|
: compileNodes(nodeList[i].childNodes,
|
13313
13330
|
nodeLinkFn ? nodeLinkFn.transclude : transcludeFn);
|
@@ -13866,7 +13883,7 @@ function $CompileProvider($provide) {
|
|
13866
13883
|
|
13867
13884
|
directives.unshift(derivedSyncDirective);
|
13868
13885
|
afterTemplateNodeLinkFn = applyDirectivesToNode(directives, compileNode, tAttrs, childTranscludeFn);
|
13869
|
-
afterTemplateChildLinkFn = compileNodes($compileNode.
|
13886
|
+
afterTemplateChildLinkFn = compileNodes($compileNode[0].childNodes, childTranscludeFn);
|
13870
13887
|
|
13871
13888
|
|
13872
13889
|
while(linkQueue.length) {
|
@@ -14131,7 +14148,7 @@ function $ControllerProvider() {
|
|
14131
14148
|
* @description
|
14132
14149
|
* `$controller` service is responsible for instantiating controllers.
|
14133
14150
|
*
|
14134
|
-
* It's just simple call to {@link AUTO.$injector $injector}, but extracted into
|
14151
|
+
* It's just a simple call to {@link AUTO.$injector $injector}, but extracted into
|
14135
14152
|
* a service, so that one can override this service with {@link https://gist.github.com/1649788
|
14136
14153
|
* BC version}.
|
14137
14154
|
*/
|
@@ -14372,7 +14389,7 @@ function $InterpolateProvider() {
|
|
14372
14389
|
}];
|
14373
14390
|
}
|
14374
14391
|
|
14375
|
-
var URL_MATCH = /^([^:]+):\/\/(\w+:{0,1}\w*@)?([\w\.-]
|
14392
|
+
var URL_MATCH = /^([^:]+):\/\/(\w+:{0,1}\w*@)?(\{?[\w\.-]*\}?)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,
|
14376
14393
|
PATH_MATCH = /^([^\?#]*)?(\?([^#]*))?(#(.*))?$/,
|
14377
14394
|
HASH_MATCH = PATH_MATCH,
|
14378
14395
|
DEFAULT_PORTS = {'http': 80, 'https': 443, 'ftp': 21};
|
@@ -14451,7 +14468,8 @@ function convertToHashbangUrl(url, basePath, hashPrefix) {
|
|
14451
14468
|
var match = matchUrl(url);
|
14452
14469
|
|
14453
14470
|
// already hashbang url
|
14454
|
-
if (decodeURIComponent(match.path) == basePath)
|
14471
|
+
if (decodeURIComponent(match.path) == basePath && !isUndefined(match.hash) &&
|
14472
|
+
match.hash.indexOf(hashPrefix) === 0) {
|
14455
14473
|
return url;
|
14456
14474
|
// convert html5 url -> hashbang url
|
14457
14475
|
} else {
|
@@ -16645,8 +16663,9 @@ function $RouteProvider(){
|
|
16645
16663
|
* {@link ng.directive:ngView ngView} listens for the directive
|
16646
16664
|
* to instantiate the controller and render the view.
|
16647
16665
|
*
|
16666
|
+
* @param {Object} angularEvent Synthetic event object.
|
16648
16667
|
* @param {Route} current Current route information.
|
16649
|
-
* @param {Route} previous Previous route information.
|
16668
|
+
* @param {Route|Undefined} previous Previous route information, or undefined if current is first route entered.
|
16650
16669
|
*/
|
16651
16670
|
|
16652
16671
|
/**
|
@@ -16744,7 +16763,7 @@ function $RouteProvider(){
|
|
16744
16763
|
var next = parseRoute(),
|
16745
16764
|
last = $route.current;
|
16746
16765
|
|
16747
|
-
if (next && last && next
|
16766
|
+
if (next && last && next.$$route === last.$$route
|
16748
16767
|
&& equals(next.pathParams, last.pathParams) && !next.reloadOnSearch && !forceReload) {
|
16749
16768
|
last.params = next.params;
|
16750
16769
|
copy(last.params, $routeParams);
|
@@ -16823,7 +16842,7 @@ function $RouteProvider(){
|
|
16823
16842
|
match = inherit(route, {
|
16824
16843
|
params: extend({}, $location.search(), params),
|
16825
16844
|
pathParams: params});
|
16826
|
-
match
|
16845
|
+
match.$$route = route;
|
16827
16846
|
}
|
16828
16847
|
});
|
16829
16848
|
// No route matched; fallback to "otherwise" route
|
@@ -18013,10 +18032,14 @@ function $HttpProvider() {
|
|
18013
18032
|
* - if XSRF prefix is detected, strip it (see Security Considerations section below)
|
18014
18033
|
* - if json response is detected, deserialize it using a JSON parser
|
18015
18034
|
*
|
18016
|
-
* To override
|
18017
|
-
*
|
18018
|
-
*
|
18019
|
-
*
|
18035
|
+
* To globally augment or override the default transforms, modify the `$httpProvider.defaults.transformRequest` and
|
18036
|
+
* `$httpProvider.defaults.transformResponse` properties of the `$httpProvider`. These properties are by default an
|
18037
|
+
* array of transform functions, which allows you to `push` or `unshift` a new transformation function into the
|
18038
|
+
* transformation chain. You can also decide to completely override any default transformations by assigning your
|
18039
|
+
* transformation functions to these properties directly without the array wrapper.
|
18040
|
+
*
|
18041
|
+
* Similarly, to locally override the request/response transforms, augment the `transformRequest` and/or
|
18042
|
+
* `transformResponse` properties of the config object passed into `$http`.
|
18020
18043
|
*
|
18021
18044
|
*
|
18022
18045
|
* # Caching
|
@@ -18534,6 +18557,7 @@ function $HttpProvider() {
|
|
18534
18557
|
|
18535
18558
|
}];
|
18536
18559
|
}
|
18560
|
+
|
18537
18561
|
var XHR = window.XMLHttpRequest || function() {
|
18538
18562
|
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch (e1) {}
|
18539
18563
|
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch (e2) {}
|
@@ -18846,7 +18870,7 @@ function $TimeoutProvider() {
|
|
18846
18870
|
*
|
18847
18871
|
* Filters are just functions which transform input to an output. However filters need to be Dependency Injected. To
|
18848
18872
|
* achieve this a filter definition consists of a factory function which is annotated with dependencies and is
|
18849
|
-
* responsible for creating a
|
18873
|
+
* responsible for creating a filter function.
|
18850
18874
|
*
|
18851
18875
|
* <pre>
|
18852
18876
|
* // Filter registration
|
@@ -18984,22 +19008,22 @@ function $FilterProvider($provide) {
|
|
18984
19008
|
|
18985
19009
|
Search: <input ng-model="searchText">
|
18986
19010
|
<table id="searchTextResults">
|
18987
|
-
<tr><th>Name</th><th>Phone</th
|
19011
|
+
<tr><th>Name</th><th>Phone</th></tr>
|
18988
19012
|
<tr ng-repeat="friend in friends | filter:searchText">
|
18989
19013
|
<td>{{friend.name}}</td>
|
18990
19014
|
<td>{{friend.phone}}</td>
|
18991
|
-
|
19015
|
+
</tr>
|
18992
19016
|
</table>
|
18993
19017
|
<hr>
|
18994
19018
|
Any: <input ng-model="search.$"> <br>
|
18995
19019
|
Name only <input ng-model="search.name"><br>
|
18996
19020
|
Phone only <input ng-model="search.phone"å><br>
|
18997
19021
|
<table id="searchObjResults">
|
18998
|
-
<tr><th>Name</th><th>Phone</th
|
19022
|
+
<tr><th>Name</th><th>Phone</th></tr>
|
18999
19023
|
<tr ng-repeat="friend in friends | filter:search">
|
19000
19024
|
<td>{{friend.name}}</td>
|
19001
19025
|
<td>{{friend.phone}}</td>
|
19002
|
-
|
19026
|
+
</tr>
|
19003
19027
|
</table>
|
19004
19028
|
</doc:source>
|
19005
19029
|
<doc:scenario>
|
@@ -19318,7 +19342,8 @@ function timeZoneGetter(date) {
|
|
19318
19342
|
var zone = -1 * date.getTimezoneOffset();
|
19319
19343
|
var paddedZone = (zone >= 0) ? "+" : "";
|
19320
19344
|
|
19321
|
-
paddedZone += padNumber(zone
|
19345
|
+
paddedZone += padNumber(Math[zone > 0 ? 'floor' : 'ceil'](zone / 60), 2) +
|
19346
|
+
padNumber(Math.abs(zone % 60), 2);
|
19322
19347
|
|
19323
19348
|
return paddedZone;
|
19324
19349
|
}
|
@@ -19384,7 +19409,7 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+
|
|
19384
19409
|
* * `'ss'`: Second in minute, padded (00-59)
|
19385
19410
|
* * `'s'`: Second in minute (0-59)
|
19386
19411
|
* * `'a'`: am/pm marker
|
19387
|
-
* * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200
|
19412
|
+
* * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200-+1200)
|
19388
19413
|
*
|
19389
19414
|
* `format` string can also be one of the following predefined
|
19390
19415
|
* {@link guide/i18n localizable formats}:
|
@@ -19696,12 +19721,12 @@ function limitToFilter(){
|
|
19696
19721
|
(<a href ng-click="predicate = '-name'; reverse=false">^</a>)</th>
|
19697
19722
|
<th><a href="" ng-click="predicate = 'phone'; reverse=!reverse">Phone Number</a></th>
|
19698
19723
|
<th><a href="" ng-click="predicate = 'age'; reverse=!reverse">Age</a></th>
|
19699
|
-
|
19724
|
+
</tr>
|
19700
19725
|
<tr ng-repeat="friend in friends | orderBy:predicate:reverse">
|
19701
19726
|
<td>{{friend.name}}</td>
|
19702
19727
|
<td>{{friend.phone}}</td>
|
19703
19728
|
<td>{{friend.age}}</td>
|
19704
|
-
|
19729
|
+
</tr>
|
19705
19730
|
</table>
|
19706
19731
|
</div>
|
19707
19732
|
</doc:source>
|
@@ -22064,7 +22089,7 @@ var ngClassEvenDirective = classDirective('Even', 1);
|
|
22064
22089
|
* `angular.min.js` files. Following is the css rule:
|
22065
22090
|
*
|
22066
22091
|
* <pre>
|
22067
|
-
* [ng\:cloak], [ng-cloak], .ng-cloak {
|
22092
|
+
* [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
|
22068
22093
|
* display: none;
|
22069
22094
|
* }
|
22070
22095
|
* </pre>
|
@@ -22957,7 +22982,7 @@ var ngRepeatDirective = ngDirective({
|
|
22957
22982
|
// Same as lastOrder but it has the current state. It will become the
|
22958
22983
|
// lastOrder on the next iteration.
|
22959
22984
|
nextOrder = new HashQueueMap(),
|
22960
|
-
|
22985
|
+
arrayBound,
|
22961
22986
|
childScope,
|
22962
22987
|
key, value, // key/value of iteration
|
22963
22988
|
array,
|
@@ -22978,7 +23003,7 @@ var ngRepeatDirective = ngDirective({
|
|
22978
23003
|
array = collection || [];
|
22979
23004
|
}
|
22980
23005
|
|
22981
|
-
|
23006
|
+
arrayBound = array.length-1;
|
22982
23007
|
|
22983
23008
|
// we are not using forEach for perf reasons (trying to avoid #call)
|
22984
23009
|
for (index = 0, length = array.length; index < length; index++) {
|
@@ -23015,7 +23040,7 @@ var ngRepeatDirective = ngDirective({
|
|
23015
23040
|
childScope.$index = index;
|
23016
23041
|
|
23017
23042
|
childScope.$first = (index === 0);
|
23018
|
-
childScope.$last = (index ===
|
23043
|
+
childScope.$last = (index === arrayBound);
|
23019
23044
|
childScope.$middle = !(childScope.$first || childScope.$last);
|
23020
23045
|
|
23021
23046
|
if (!last) {
|
@@ -23182,11 +23207,13 @@ var ngStyleDirective = ngDirective(function(scope, element, attr) {
|
|
23182
23207
|
* @description
|
23183
23208
|
* Conditionally change the DOM structure.
|
23184
23209
|
*
|
23185
|
-
* @
|
23186
|
-
* <ANY ng-switch
|
23210
|
+
* @usage
|
23211
|
+
* <ANY ng-switch="expression">
|
23212
|
+
* <ANY ng-switch-when="matchValue1">...</ANY>
|
23187
23213
|
* <ANY ng-switch-when="matchValue2">...</ANY>
|
23188
23214
|
* ...
|
23189
23215
|
* <ANY ng-switch-default>...</ANY>
|
23216
|
+
* </ANY>
|
23190
23217
|
*
|
23191
23218
|
* @scope
|
23192
23219
|
* @param {*} ngSwitch|on expression to match against <tt>ng-switch-when</tt>.
|
@@ -23675,7 +23702,7 @@ var scriptDirective = ['$templateCache', function($templateCache) {
|
|
23675
23702
|
|
23676
23703
|
var ngOptionsDirective = valueFn({ terminal: true });
|
23677
23704
|
var selectDirective = ['$compile', '$parse', function($compile, $parse) {
|
23678
|
-
//
|
23705
|
+
//0000111110000000000022220000000000000000000000333300000000000000444444444444444440000000005555555555555555500000006666666666666666600000000000000077770
|
23679
23706
|
var NG_OPTIONS_REGEXP = /^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w\d]*)|(?:\(\s*([\$\w][\$\w\d]*)\s*,\s*([\$\w][\$\w\d]*)\s*\)))\s+in\s+(.*)$/,
|
23680
23707
|
nullModelCtrl = {$setViewValue: noop};
|
23681
23708
|
|
@@ -26169,6 +26196,7 @@ angular.scenario.output('xml', function(context, runner, model) {
|
|
26169
26196
|
angular.scenario.output('object', function(context, runner, model) {
|
26170
26197
|
runner.$window.$result = model.value;
|
26171
26198
|
});
|
26199
|
+
|
26172
26200
|
bindJQuery();
|
26173
26201
|
publishExternalAPI(angular);
|
26174
26202
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.0.
|
2
|
+
* @license AngularJS v1.0.6
|
3
3
|
* (c) 2010-2012 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -34,12 +34,12 @@ var uppercase = function(string){return isString(string) ? string.toUpperCase()
|
|
34
34
|
|
35
35
|
var manualLowercase = function(s) {
|
36
36
|
return isString(s)
|
37
|
-
? s.replace(/[A-Z]/g, function(ch) {return fromCharCode(ch.charCodeAt(0) | 32);})
|
37
|
+
? s.replace(/[A-Z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) | 32);})
|
38
38
|
: s;
|
39
39
|
};
|
40
40
|
var manualUppercase = function(s) {
|
41
41
|
return isString(s)
|
42
|
-
? s.replace(/[a-z]/g, function(ch) {return fromCharCode(ch.charCodeAt(0) & ~32);})
|
42
|
+
? s.replace(/[a-z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) & ~32);})
|
43
43
|
: s;
|
44
44
|
};
|
45
45
|
|
@@ -52,8 +52,6 @@ if ('i' !== 'I'.toLowerCase()) {
|
|
52
52
|
uppercase = manualUppercase;
|
53
53
|
}
|
54
54
|
|
55
|
-
function fromCharCode(code) {return String.fromCharCode(code);}
|
56
|
-
|
57
55
|
|
58
56
|
var /** holds major version number for IE or NaN for real browsers */
|
59
57
|
msie = int((/msie (\d+)/.exec(lowercase(navigator.userAgent)) || [])[1]),
|
@@ -861,7 +859,7 @@ function encodeUriQuery(val, pctEncodeSpaces) {
|
|
861
859
|
replace(/%3A/gi, ':').
|
862
860
|
replace(/%24/g, '$').
|
863
861
|
replace(/%2C/gi, ',').
|
864
|
-
replace((pctEncodeSpaces ?
|
862
|
+
replace(/%20/g, (pctEncodeSpaces ? '%20' : '+'));
|
865
863
|
}
|
866
864
|
|
867
865
|
|
@@ -950,22 +948,38 @@ function angularInit(element, bootstrap) {
|
|
950
948
|
* @returns {AUTO.$injector} Returns the newly created injector for this app.
|
951
949
|
*/
|
952
950
|
function bootstrap(element, modules) {
|
953
|
-
|
954
|
-
|
955
|
-
|
956
|
-
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
['$rootScope', '$rootElement', '$compile', '$injector',
|
962
|
-
|
963
|
-
|
964
|
-
|
965
|
-
|
966
|
-
|
967
|
-
|
968
|
-
|
951
|
+
var resumeBootstrapInternal = function() {
|
952
|
+
element = jqLite(element);
|
953
|
+
modules = modules || [];
|
954
|
+
modules.unshift(['$provide', function($provide) {
|
955
|
+
$provide.value('$rootElement', element);
|
956
|
+
}]);
|
957
|
+
modules.unshift('ng');
|
958
|
+
var injector = createInjector(modules);
|
959
|
+
injector.invoke(['$rootScope', '$rootElement', '$compile', '$injector',
|
960
|
+
function(scope, element, compile, injector) {
|
961
|
+
scope.$apply(function() {
|
962
|
+
element.data('$injector', injector);
|
963
|
+
compile(element)(scope);
|
964
|
+
});
|
965
|
+
}]
|
966
|
+
);
|
967
|
+
return injector;
|
968
|
+
};
|
969
|
+
|
970
|
+
var NG_DEFER_BOOTSTRAP = /^NG_DEFER_BOOTSTRAP!/;
|
971
|
+
|
972
|
+
if (window && !NG_DEFER_BOOTSTRAP.test(window.name)) {
|
973
|
+
return resumeBootstrapInternal();
|
974
|
+
}
|
975
|
+
|
976
|
+
window.name = window.name.replace(NG_DEFER_BOOTSTRAP, '');
|
977
|
+
angular.resumeBootstrap = function(extraModules) {
|
978
|
+
forEach(extraModules, function(module) {
|
979
|
+
modules.push(module);
|
980
|
+
});
|
981
|
+
resumeBootstrapInternal();
|
982
|
+
};
|
969
983
|
}
|
970
984
|
|
971
985
|
var SNAKE_CASE_REGEXP = /[A-Z]/g;
|
@@ -1279,11 +1293,11 @@ function setupModuleLoader(window) {
|
|
1279
1293
|
* - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
|
1280
1294
|
*/
|
1281
1295
|
var version = {
|
1282
|
-
full: '1.0.
|
1283
|
-
major: 1, //
|
1296
|
+
full: '1.0.6', // all of these placeholder strings will be replaced by grunt's
|
1297
|
+
major: 1, // package task
|
1284
1298
|
minor: 0,
|
1285
|
-
dot:
|
1286
|
-
codeName: '
|
1299
|
+
dot: 6,
|
1300
|
+
codeName: 'universal-irreversibility'
|
1287
1301
|
};
|
1288
1302
|
|
1289
1303
|
|
@@ -2368,15 +2382,15 @@ function annotate(fn) {
|
|
2368
2382
|
*
|
2369
2383
|
* <pre>
|
2370
2384
|
* // inferred (only works if code not minified/obfuscated)
|
2371
|
-
* $
|
2385
|
+
* $injector.invoke(function(serviceA){});
|
2372
2386
|
*
|
2373
2387
|
* // annotated
|
2374
2388
|
* function explicit(serviceA) {};
|
2375
2389
|
* explicit.$inject = ['serviceA'];
|
2376
|
-
* $
|
2390
|
+
* $injector.invoke(explicit);
|
2377
2391
|
*
|
2378
2392
|
* // inline
|
2379
|
-
* $
|
2393
|
+
* $injector.invoke(['serviceA', function(serviceA){}]);
|
2380
2394
|
* </pre>
|
2381
2395
|
*
|
2382
2396
|
* ## Inference
|
@@ -2522,7 +2536,7 @@ function annotate(fn) {
|
|
2522
2536
|
* @description
|
2523
2537
|
*
|
2524
2538
|
* Use `$provide` to register new providers with the `$injector`. The providers are the factories for the instance.
|
2525
|
-
* The providers share the same name as the instance they create with
|
2539
|
+
* The providers share the same name as the instance they create with `Provider` suffixed to them.
|
2526
2540
|
*
|
2527
2541
|
* A provider is an object with a `$get()` method. The injector calls the `$get` method to create a new instance of
|
2528
2542
|
* a service. The Provider can have additional methods which would allow for configuration of the provider.
|
@@ -2870,6 +2884,7 @@ function createInjector(modulesToLoad) {
|
|
2870
2884
|
};
|
2871
2885
|
}
|
2872
2886
|
}
|
2887
|
+
|
2873
2888
|
/**
|
2874
2889
|
* @ngdoc function
|
2875
2890
|
* @name ng.$anchorScroll
|
@@ -3298,6 +3313,7 @@ function $BrowserProvider(){
|
|
3298
3313
|
return new Browser($window, $document, $log, $sniffer);
|
3299
3314
|
}];
|
3300
3315
|
}
|
3316
|
+
|
3301
3317
|
/**
|
3302
3318
|
* @ngdoc object
|
3303
3319
|
* @name ng.$cacheFactory
|
@@ -3625,7 +3641,7 @@ function $CompileProvider($provide) {
|
|
3625
3641
|
COMMENT_DIRECTIVE_REGEXP = /^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,
|
3626
3642
|
CLASS_DIRECTIVE_REGEXP = /(([\d\w\-_]+)(?:\:([^;]+))?;?)/,
|
3627
3643
|
MULTI_ROOT_TEMPLATE_ERROR = 'Template must have exactly one root element. was: ',
|
3628
|
-
urlSanitizationWhitelist = /^\s*(https?|ftp|mailto):/;
|
3644
|
+
urlSanitizationWhitelist = /^\s*(https?|ftp|mailto|file):/;
|
3629
3645
|
|
3630
3646
|
|
3631
3647
|
/**
|
@@ -3827,7 +3843,7 @@ function $CompileProvider($provide) {
|
|
3827
3843
|
|
3828
3844
|
function compile($compileNodes, transcludeFn, maxPriority) {
|
3829
3845
|
if (!($compileNodes instanceof jqLite)) {
|
3830
|
-
// jquery always rewraps,
|
3846
|
+
// jquery always rewraps, whereas we need to preserve the original selector so that we can modify it.
|
3831
3847
|
$compileNodes = jqLite($compileNodes);
|
3832
3848
|
}
|
3833
3849
|
// We can not compile top level text elements since text nodes can be merged and we will
|
@@ -3879,7 +3895,7 @@ function $CompileProvider($provide) {
|
|
3879
3895
|
* functions return values - the linking functions - are combined into a composite linking
|
3880
3896
|
* function, which is the a linking function for the node.
|
3881
3897
|
*
|
3882
|
-
* @param {NodeList} nodeList an array of nodes to compile
|
3898
|
+
* @param {NodeList} nodeList an array of nodes or NodeList to compile
|
3883
3899
|
* @param {function(angular.Scope[, cloneAttachFn]} transcludeFn A linking function, where the
|
3884
3900
|
* scope argument is auto-generated to the new child of the transcluded parent scope.
|
3885
3901
|
* @param {DOMElement=} $rootElement If the nodeList is the root of the compilation tree then the
|
@@ -3902,7 +3918,7 @@ function $CompileProvider($provide) {
|
|
3902
3918
|
? applyDirectivesToNode(directives, nodeList[i], attrs, transcludeFn, $rootElement)
|
3903
3919
|
: null;
|
3904
3920
|
|
3905
|
-
childLinkFn = (nodeLinkFn && nodeLinkFn.terminal || !nodeList[i].childNodes.length)
|
3921
|
+
childLinkFn = (nodeLinkFn && nodeLinkFn.terminal || !nodeList[i].childNodes || !nodeList[i].childNodes.length)
|
3906
3922
|
? null
|
3907
3923
|
: compileNodes(nodeList[i].childNodes,
|
3908
3924
|
nodeLinkFn ? nodeLinkFn.transclude : transcludeFn);
|
@@ -4461,7 +4477,7 @@ function $CompileProvider($provide) {
|
|
4461
4477
|
|
4462
4478
|
directives.unshift(derivedSyncDirective);
|
4463
4479
|
afterTemplateNodeLinkFn = applyDirectivesToNode(directives, compileNode, tAttrs, childTranscludeFn);
|
4464
|
-
afterTemplateChildLinkFn = compileNodes($compileNode.
|
4480
|
+
afterTemplateChildLinkFn = compileNodes($compileNode[0].childNodes, childTranscludeFn);
|
4465
4481
|
|
4466
4482
|
|
4467
4483
|
while(linkQueue.length) {
|
@@ -4726,7 +4742,7 @@ function $ControllerProvider() {
|
|
4726
4742
|
* @description
|
4727
4743
|
* `$controller` service is responsible for instantiating controllers.
|
4728
4744
|
*
|
4729
|
-
* It's just simple call to {@link AUTO.$injector $injector}, but extracted into
|
4745
|
+
* It's just a simple call to {@link AUTO.$injector $injector}, but extracted into
|
4730
4746
|
* a service, so that one can override this service with {@link https://gist.github.com/1649788
|
4731
4747
|
* BC version}.
|
4732
4748
|
*/
|
@@ -4967,7 +4983,7 @@ function $InterpolateProvider() {
|
|
4967
4983
|
}];
|
4968
4984
|
}
|
4969
4985
|
|
4970
|
-
var URL_MATCH = /^([^:]+):\/\/(\w+:{0,1}\w*@)?([\w\.-]
|
4986
|
+
var URL_MATCH = /^([^:]+):\/\/(\w+:{0,1}\w*@)?(\{?[\w\.-]*\}?)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,
|
4971
4987
|
PATH_MATCH = /^([^\?#]*)?(\?([^#]*))?(#(.*))?$/,
|
4972
4988
|
HASH_MATCH = PATH_MATCH,
|
4973
4989
|
DEFAULT_PORTS = {'http': 80, 'https': 443, 'ftp': 21};
|
@@ -5046,7 +5062,8 @@ function convertToHashbangUrl(url, basePath, hashPrefix) {
|
|
5046
5062
|
var match = matchUrl(url);
|
5047
5063
|
|
5048
5064
|
// already hashbang url
|
5049
|
-
if (decodeURIComponent(match.path) == basePath)
|
5065
|
+
if (decodeURIComponent(match.path) == basePath && !isUndefined(match.hash) &&
|
5066
|
+
match.hash.indexOf(hashPrefix) === 0) {
|
5050
5067
|
return url;
|
5051
5068
|
// convert html5 url -> hashbang url
|
5052
5069
|
} else {
|
@@ -7240,8 +7257,9 @@ function $RouteProvider(){
|
|
7240
7257
|
* {@link ng.directive:ngView ngView} listens for the directive
|
7241
7258
|
* to instantiate the controller and render the view.
|
7242
7259
|
*
|
7260
|
+
* @param {Object} angularEvent Synthetic event object.
|
7243
7261
|
* @param {Route} current Current route information.
|
7244
|
-
* @param {Route} previous Previous route information.
|
7262
|
+
* @param {Route|Undefined} previous Previous route information, or undefined if current is first route entered.
|
7245
7263
|
*/
|
7246
7264
|
|
7247
7265
|
/**
|
@@ -7339,7 +7357,7 @@ function $RouteProvider(){
|
|
7339
7357
|
var next = parseRoute(),
|
7340
7358
|
last = $route.current;
|
7341
7359
|
|
7342
|
-
if (next && last && next
|
7360
|
+
if (next && last && next.$$route === last.$$route
|
7343
7361
|
&& equals(next.pathParams, last.pathParams) && !next.reloadOnSearch && !forceReload) {
|
7344
7362
|
last.params = next.params;
|
7345
7363
|
copy(last.params, $routeParams);
|
@@ -7418,7 +7436,7 @@ function $RouteProvider(){
|
|
7418
7436
|
match = inherit(route, {
|
7419
7437
|
params: extend({}, $location.search(), params),
|
7420
7438
|
pathParams: params});
|
7421
|
-
match
|
7439
|
+
match.$$route = route;
|
7422
7440
|
}
|
7423
7441
|
});
|
7424
7442
|
// No route matched; fallback to "otherwise" route
|
@@ -8608,10 +8626,14 @@ function $HttpProvider() {
|
|
8608
8626
|
* - if XSRF prefix is detected, strip it (see Security Considerations section below)
|
8609
8627
|
* - if json response is detected, deserialize it using a JSON parser
|
8610
8628
|
*
|
8611
|
-
* To override
|
8612
|
-
*
|
8613
|
-
*
|
8614
|
-
*
|
8629
|
+
* To globally augment or override the default transforms, modify the `$httpProvider.defaults.transformRequest` and
|
8630
|
+
* `$httpProvider.defaults.transformResponse` properties of the `$httpProvider`. These properties are by default an
|
8631
|
+
* array of transform functions, which allows you to `push` or `unshift` a new transformation function into the
|
8632
|
+
* transformation chain. You can also decide to completely override any default transformations by assigning your
|
8633
|
+
* transformation functions to these properties directly without the array wrapper.
|
8634
|
+
*
|
8635
|
+
* Similarly, to locally override the request/response transforms, augment the `transformRequest` and/or
|
8636
|
+
* `transformResponse` properties of the config object passed into `$http`.
|
8615
8637
|
*
|
8616
8638
|
*
|
8617
8639
|
* # Caching
|
@@ -9129,6 +9151,7 @@ function $HttpProvider() {
|
|
9129
9151
|
|
9130
9152
|
}];
|
9131
9153
|
}
|
9154
|
+
|
9132
9155
|
var XHR = window.XMLHttpRequest || function() {
|
9133
9156
|
try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch (e1) {}
|
9134
9157
|
try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch (e2) {}
|
@@ -9441,7 +9464,7 @@ function $TimeoutProvider() {
|
|
9441
9464
|
*
|
9442
9465
|
* Filters are just functions which transform input to an output. However filters need to be Dependency Injected. To
|
9443
9466
|
* achieve this a filter definition consists of a factory function which is annotated with dependencies and is
|
9444
|
-
* responsible for creating a
|
9467
|
+
* responsible for creating a filter function.
|
9445
9468
|
*
|
9446
9469
|
* <pre>
|
9447
9470
|
* // Filter registration
|
@@ -9579,22 +9602,22 @@ function $FilterProvider($provide) {
|
|
9579
9602
|
|
9580
9603
|
Search: <input ng-model="searchText">
|
9581
9604
|
<table id="searchTextResults">
|
9582
|
-
<tr><th>Name</th><th>Phone</th
|
9605
|
+
<tr><th>Name</th><th>Phone</th></tr>
|
9583
9606
|
<tr ng-repeat="friend in friends | filter:searchText">
|
9584
9607
|
<td>{{friend.name}}</td>
|
9585
9608
|
<td>{{friend.phone}}</td>
|
9586
|
-
|
9609
|
+
</tr>
|
9587
9610
|
</table>
|
9588
9611
|
<hr>
|
9589
9612
|
Any: <input ng-model="search.$"> <br>
|
9590
9613
|
Name only <input ng-model="search.name"><br>
|
9591
9614
|
Phone only <input ng-model="search.phone"å><br>
|
9592
9615
|
<table id="searchObjResults">
|
9593
|
-
<tr><th>Name</th><th>Phone</th
|
9616
|
+
<tr><th>Name</th><th>Phone</th></tr>
|
9594
9617
|
<tr ng-repeat="friend in friends | filter:search">
|
9595
9618
|
<td>{{friend.name}}</td>
|
9596
9619
|
<td>{{friend.phone}}</td>
|
9597
|
-
|
9620
|
+
</tr>
|
9598
9621
|
</table>
|
9599
9622
|
</doc:source>
|
9600
9623
|
<doc:scenario>
|
@@ -9913,7 +9936,8 @@ function timeZoneGetter(date) {
|
|
9913
9936
|
var zone = -1 * date.getTimezoneOffset();
|
9914
9937
|
var paddedZone = (zone >= 0) ? "+" : "";
|
9915
9938
|
|
9916
|
-
paddedZone += padNumber(zone
|
9939
|
+
paddedZone += padNumber(Math[zone > 0 ? 'floor' : 'ceil'](zone / 60), 2) +
|
9940
|
+
padNumber(Math.abs(zone % 60), 2);
|
9917
9941
|
|
9918
9942
|
return paddedZone;
|
9919
9943
|
}
|
@@ -9979,7 +10003,7 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+
|
|
9979
10003
|
* * `'ss'`: Second in minute, padded (00-59)
|
9980
10004
|
* * `'s'`: Second in minute (0-59)
|
9981
10005
|
* * `'a'`: am/pm marker
|
9982
|
-
* * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200
|
10006
|
+
* * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200-+1200)
|
9983
10007
|
*
|
9984
10008
|
* `format` string can also be one of the following predefined
|
9985
10009
|
* {@link guide/i18n localizable formats}:
|
@@ -10291,12 +10315,12 @@ function limitToFilter(){
|
|
10291
10315
|
(<a href ng-click="predicate = '-name'; reverse=false">^</a>)</th>
|
10292
10316
|
<th><a href="" ng-click="predicate = 'phone'; reverse=!reverse">Phone Number</a></th>
|
10293
10317
|
<th><a href="" ng-click="predicate = 'age'; reverse=!reverse">Age</a></th>
|
10294
|
-
|
10318
|
+
</tr>
|
10295
10319
|
<tr ng-repeat="friend in friends | orderBy:predicate:reverse">
|
10296
10320
|
<td>{{friend.name}}</td>
|
10297
10321
|
<td>{{friend.phone}}</td>
|
10298
10322
|
<td>{{friend.age}}</td>
|
10299
|
-
|
10323
|
+
</tr>
|
10300
10324
|
</table>
|
10301
10325
|
</div>
|
10302
10326
|
</doc:source>
|
@@ -12659,7 +12683,7 @@ var ngClassEvenDirective = classDirective('Even', 1);
|
|
12659
12683
|
* `angular.min.js` files. Following is the css rule:
|
12660
12684
|
*
|
12661
12685
|
* <pre>
|
12662
|
-
* [ng\:cloak], [ng-cloak], .ng-cloak {
|
12686
|
+
* [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
|
12663
12687
|
* display: none;
|
12664
12688
|
* }
|
12665
12689
|
* </pre>
|
@@ -13552,7 +13576,7 @@ var ngRepeatDirective = ngDirective({
|
|
13552
13576
|
// Same as lastOrder but it has the current state. It will become the
|
13553
13577
|
// lastOrder on the next iteration.
|
13554
13578
|
nextOrder = new HashQueueMap(),
|
13555
|
-
|
13579
|
+
arrayBound,
|
13556
13580
|
childScope,
|
13557
13581
|
key, value, // key/value of iteration
|
13558
13582
|
array,
|
@@ -13573,7 +13597,7 @@ var ngRepeatDirective = ngDirective({
|
|
13573
13597
|
array = collection || [];
|
13574
13598
|
}
|
13575
13599
|
|
13576
|
-
|
13600
|
+
arrayBound = array.length-1;
|
13577
13601
|
|
13578
13602
|
// we are not using forEach for perf reasons (trying to avoid #call)
|
13579
13603
|
for (index = 0, length = array.length; index < length; index++) {
|
@@ -13610,7 +13634,7 @@ var ngRepeatDirective = ngDirective({
|
|
13610
13634
|
childScope.$index = index;
|
13611
13635
|
|
13612
13636
|
childScope.$first = (index === 0);
|
13613
|
-
childScope.$last = (index ===
|
13637
|
+
childScope.$last = (index === arrayBound);
|
13614
13638
|
childScope.$middle = !(childScope.$first || childScope.$last);
|
13615
13639
|
|
13616
13640
|
if (!last) {
|
@@ -13777,11 +13801,13 @@ var ngStyleDirective = ngDirective(function(scope, element, attr) {
|
|
13777
13801
|
* @description
|
13778
13802
|
* Conditionally change the DOM structure.
|
13779
13803
|
*
|
13780
|
-
* @
|
13781
|
-
* <ANY ng-switch
|
13804
|
+
* @usage
|
13805
|
+
* <ANY ng-switch="expression">
|
13806
|
+
* <ANY ng-switch-when="matchValue1">...</ANY>
|
13782
13807
|
* <ANY ng-switch-when="matchValue2">...</ANY>
|
13783
13808
|
* ...
|
13784
13809
|
* <ANY ng-switch-default>...</ANY>
|
13810
|
+
* </ANY>
|
13785
13811
|
*
|
13786
13812
|
* @scope
|
13787
13813
|
* @param {*} ngSwitch|on expression to match against <tt>ng-switch-when</tt>.
|
@@ -14270,7 +14296,7 @@ var scriptDirective = ['$templateCache', function($templateCache) {
|
|
14270
14296
|
|
14271
14297
|
var ngOptionsDirective = valueFn({ terminal: true });
|
14272
14298
|
var selectDirective = ['$compile', '$parse', function($compile, $parse) {
|
14273
|
-
//
|
14299
|
+
//0000111110000000000022220000000000000000000000333300000000000000444444444444444440000000005555555555555555500000006666666666666666600000000000000077770
|
14274
14300
|
var NG_OPTIONS_REGEXP = /^\s*(.*?)(?:\s+as\s+(.*?))?(?:\s+group\s+by\s+(.*))?\s+for\s+(?:([\$\w][\$\w\d]*)|(?:\(\s*([\$\w][\$\w\d]*)\s*,\s*([\$\w][\$\w\d]*)\s*\)))\s+in\s+(.*)$/,
|
14275
14301
|
nullModelCtrl = {$setViewValue: noop};
|
14276
14302
|
|
@@ -14719,6 +14745,7 @@ var styleDirective = valueFn({
|
|
14719
14745
|
restrict: 'E',
|
14720
14746
|
terminal: true
|
14721
14747
|
});
|
14748
|
+
|
14722
14749
|
//try to bind to jquery now so that one can write angular.element().read()
|
14723
14750
|
//but we will rebind on bootstrap again.
|
14724
14751
|
bindJQuery();
|