angularjs-rails 1.0.5 → 1.0.6
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.
- 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();
|