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.
@@ -1,5 +1,5 @@
1
1
  module AngularJS
2
2
  module Rails
3
- VERSION = "1.0.5"
3
+ VERSION = "1.0.6"
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.0.5
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.5
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.5
2
+ * @license AngularJS v1.0.6
3
3
  * (c) 2010-2012 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -180,4 +180,5 @@ angular.module('ngCookies', ['ng']).
180
180
 
181
181
  }]);
182
182
 
183
+
183
184
  })(window, window.angular);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.0.5
2
+ * @license AngularJS v1.0.6
3
3
  * (c) 2010-2012 Google, Inc. http://angularjs.org
4
4
  * License: MIT
5
5
  */
@@ -254,6 +254,7 @@ function setupModuleLoader(window) {
254
254
  });
255
255
 
256
256
  }
257
+
257
258
  )(window);
258
259
 
259
260
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license AngularJS v1.0.5
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 throw, for this case the `log` mode stores an
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 constroctor arg.
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 is function is also published on window for easy access.<br>
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.5
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 ? null : /%20/g), '+');
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.5
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.5
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 ? null : /%20/g), '+');
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
- 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(
10366
- ['$rootScope', '$rootElement', '$compile', '$injector', function(scope, element, compile, injector){
10367
- scope.$apply(function() {
10368
- element.data('$injector', injector);
10369
- compile(element)(scope);
10370
- });
10371
- }]
10372
- );
10373
- return injector;
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.5', // all of these placeholder strings will be replaced by rake's
10688
- major: 1, // compile task
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: 5,
10691
- codeName: 'flatulent-propulsion'
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
- * $inject.invoke(function(serviceA){});
11791
+ * $injector.invoke(function(serviceA){});
11777
11792
  *
11778
11793
  * // annotated
11779
11794
  * function explicit(serviceA) {};
11780
11795
  * explicit.$inject = ['serviceA'];
11781
- * $inject.invoke(explicit);
11796
+ * $injector.invoke(explicit);
11782
11797
  *
11783
11798
  * // inline
11784
- * $inject.invoke(['serviceA', function(serviceA){}]);
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 the `Provider` suffixed to them.
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, where as we need to preserve the original selector so that we can modify it.
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.contents(), childTranscludeFn);
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\.-]*)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,
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.$route === last.$route
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.$route = route;
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 these transformation locally, specify transform functions as `transformRequest`
18017
- * and/or `transformResponse` properties of the config object. To globally override the default
18018
- * transforms, override the `$httpProvider.defaults.transformRequest` and
18019
- * `$httpProvider.defaults.transformResponse` properties of the `$httpProvider`.
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 the filter function.
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><tr>
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
- <tr>
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><tr>
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
- <tr>
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 / 60, 2) + padNumber(Math.abs(zone % 60), 2);
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-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
- <tr>
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
- <tr>
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
- arrayLength,
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
- arrayLength = array.length;
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 === (arrayLength - 1));
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
- * @usageContent
23186
- * <ANY ng-switch-when="matchValue1">...</ANY>
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
- //00001111100000000000222200000000000000000000003333000000000000044444444444444444000000000555555555555555550000000666666666666666660000000000000007777
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.5
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 ? null : /%20/g), '+');
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
- element = jqLite(element);
954
- modules = modules || [];
955
- modules.unshift(['$provide', function($provide) {
956
- $provide.value('$rootElement', element);
957
- }]);
958
- modules.unshift('ng');
959
- var injector = createInjector(modules);
960
- injector.invoke(
961
- ['$rootScope', '$rootElement', '$compile', '$injector', function(scope, element, compile, injector){
962
- scope.$apply(function() {
963
- element.data('$injector', injector);
964
- compile(element)(scope);
965
- });
966
- }]
967
- );
968
- return injector;
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.5', // all of these placeholder strings will be replaced by rake's
1283
- major: 1, // compile task
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: 5,
1286
- codeName: 'flatulent-propulsion'
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
- * $inject.invoke(function(serviceA){});
2385
+ * $injector.invoke(function(serviceA){});
2372
2386
  *
2373
2387
  * // annotated
2374
2388
  * function explicit(serviceA) {};
2375
2389
  * explicit.$inject = ['serviceA'];
2376
- * $inject.invoke(explicit);
2390
+ * $injector.invoke(explicit);
2377
2391
  *
2378
2392
  * // inline
2379
- * $inject.invoke(['serviceA', function(serviceA){}]);
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 the `Provider` suffixed to them.
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, where as we need to preserve the original selector so that we can modify it.
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.contents(), childTranscludeFn);
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\.-]*)(:([0-9]+))?(\/[^\?#]*)?(\?([^#]*))?(#(.*))?$/,
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.$route === last.$route
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.$route = route;
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 these transformation locally, specify transform functions as `transformRequest`
8612
- * and/or `transformResponse` properties of the config object. To globally override the default
8613
- * transforms, override the `$httpProvider.defaults.transformRequest` and
8614
- * `$httpProvider.defaults.transformResponse` properties of the `$httpProvider`.
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 the filter function.
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><tr>
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
- <tr>
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><tr>
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
- <tr>
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 / 60, 2) + padNumber(Math.abs(zone % 60), 2);
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-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
- <tr>
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
- <tr>
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
- arrayLength,
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
- arrayLength = array.length;
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 === (arrayLength - 1));
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
- * @usageContent
13781
- * <ANY ng-switch-when="matchValue1">...</ANY>
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
- //00001111100000000000222200000000000000000000003333000000000000044444444444444444000000000555555555555555550000000666666666666666660000000000000007777
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();
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: angularjs-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: