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.
@@ -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: