angular-gem 1.2.4 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/angular-gem/version.rb +1 -1
- data/vendor/assets/javascripts/1.2.5/angular-animate.js +1323 -0
- data/vendor/assets/javascripts/1.2.5/angular-cookies.js +202 -0
- data/vendor/assets/javascripts/1.2.5/angular-loader.js +410 -0
- data/vendor/assets/javascripts/1.2.5/angular-mocks.js +2116 -0
- data/vendor/assets/javascripts/1.2.5/angular-resource.js +565 -0
- data/vendor/assets/javascripts/1.2.5/angular-route.js +911 -0
- data/vendor/assets/javascripts/1.2.5/angular-sanitize.js +622 -0
- data/vendor/assets/javascripts/1.2.5/angular-scenario.js +32374 -0
- data/vendor/assets/javascripts/1.2.5/angular-touch.js +563 -0
- data/vendor/assets/javascripts/1.2.5/angular.js +20369 -0
- data/vendor/assets/javascripts/angular-animate.js +2 -2
- data/vendor/assets/javascripts/angular-cookies.js +1 -1
- data/vendor/assets/javascripts/angular-loader.js +2 -2
- data/vendor/assets/javascripts/angular-mocks.js +4 -3
- data/vendor/assets/javascripts/angular-resource.js +23 -4
- data/vendor/assets/javascripts/angular-route.js +52 -32
- data/vendor/assets/javascripts/angular-sanitize.js +1 -1
- data/vendor/assets/javascripts/angular-scenario.js +162 -104
- data/vendor/assets/javascripts/angular-touch.js +1 -1
- data/vendor/assets/javascripts/angular.js +162 -104
- metadata +11 -1
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            /**
         | 
| 2 | 
            -
             * @license AngularJS v1.2. | 
| 2 | 
            +
             * @license AngularJS v1.2.5
         | 
| 3 3 | 
             
             * (c) 2010-2014 Google, Inc. http://angularjs.org
         | 
| 4 4 | 
             
             * License: MIT
         | 
| 5 5 | 
             
             */
         | 
| @@ -1243,7 +1243,7 @@ angular.module('ngAnimate', ['ng']) | |
| 1243 1243 | 
             
                      //make the element super hidden and override any CSS style values
         | 
| 1244 1244 | 
             
                      clone.attr('style','position:absolute; top:-9999px; left:-9999px');
         | 
| 1245 1245 | 
             
                      clone.removeAttr('id');
         | 
| 1246 | 
            -
                      clone. | 
| 1246 | 
            +
                      clone.empty();
         | 
| 1247 1247 |  | 
| 1248 1248 | 
             
                      forEach(oldClasses.split(' '), function(klass) {
         | 
| 1249 1249 | 
             
                        clone.removeClass(klass);
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            /**
         | 
| 2 | 
            -
             * @license AngularJS v1.2. | 
| 2 | 
            +
             * @license AngularJS v1.2.5
         | 
| 3 3 | 
             
             * (c) 2010-2014 Google, Inc. http://angularjs.org
         | 
| 4 4 | 
             
             * License: MIT
         | 
| 5 5 | 
             
             */
         | 
| @@ -69,7 +69,7 @@ function minErr(module) { | |
| 69 69 | 
             
                  return match;
         | 
| 70 70 | 
             
                });
         | 
| 71 71 |  | 
| 72 | 
            -
                message = message + '\nhttp://errors.angularjs.org/1.2. | 
| 72 | 
            +
                message = message + '\nhttp://errors.angularjs.org/1.2.5/' +
         | 
| 73 73 | 
             
                  (module ? module + '/' : '') + code;
         | 
| 74 74 | 
             
                for (i = 2; i < arguments.length; i++) {
         | 
| 75 75 | 
             
                  message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            /**
         | 
| 2 | 
            -
             * @license AngularJS v1.2. | 
| 2 | 
            +
             * @license AngularJS v1.2.5
         | 
| 3 3 | 
             
             * (c) 2010-2014 Google, Inc. http://angularjs.org
         | 
| 4 4 | 
             
             * License: MIT
         | 
| 5 5 | 
             
             */
         | 
| @@ -1094,7 +1094,8 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { | |
| 1094 1094 | 
             
              var definitions = [],
         | 
| 1095 1095 | 
             
                  expectations = [],
         | 
| 1096 1096 | 
             
                  responses = [],
         | 
| 1097 | 
            -
                  responsesPush = angular.bind(responses, responses.push) | 
| 1097 | 
            +
                  responsesPush = angular.bind(responses, responses.push),
         | 
| 1098 | 
            +
                  copy = angular.copy;
         | 
| 1098 1099 |  | 
| 1099 1100 | 
             
              function createResponse(status, data, headers) {
         | 
| 1100 1101 | 
             
                if (angular.isFunction(status)) return status;
         | 
| @@ -1126,7 +1127,7 @@ function createHttpBackendMock($rootScope, $delegate, $browser) { | |
| 1126 1127 | 
             
                  function handleResponse() {
         | 
| 1127 1128 | 
             
                    var response = wrapped.response(method, url, data, headers);
         | 
| 1128 1129 | 
             
                    xhr.$$respHeaders = response[2];
         | 
| 1129 | 
            -
                    callback(response[0], response[1], xhr.getAllResponseHeaders());
         | 
| 1130 | 
            +
                    callback(copy(response[0]), copy(response[1]), xhr.getAllResponseHeaders());
         | 
| 1130 1131 | 
             
                  }
         | 
| 1131 1132 |  | 
| 1132 1133 | 
             
                  function handleTimeout() {
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            /**
         | 
| 2 | 
            -
             * @license AngularJS v1.2. | 
| 2 | 
            +
             * @license AngularJS v1.2.5
         | 
| 3 3 | 
             
             * (c) 2010-2014 Google, Inc. http://angularjs.org
         | 
| 4 4 | 
             
             * License: MIT
         | 
| 5 5 | 
             
             */
         | 
| @@ -29,6 +29,25 @@ function lookupDottedPath(obj, path) { | |
| 29 29 | 
             
              return obj;
         | 
| 30 30 | 
             
            }
         | 
| 31 31 |  | 
| 32 | 
            +
            /**
         | 
| 33 | 
            +
             * Create a shallow copy of an object and clear other fields from the destination
         | 
| 34 | 
            +
             */
         | 
| 35 | 
            +
            function shallowClearAndCopy(src, dst) {
         | 
| 36 | 
            +
              dst = dst || {};
         | 
| 37 | 
            +
             | 
| 38 | 
            +
              angular.forEach(dst, function(value, key){
         | 
| 39 | 
            +
                delete dst[key];
         | 
| 40 | 
            +
              });
         | 
| 41 | 
            +
             | 
| 42 | 
            +
              for (var key in src) {
         | 
| 43 | 
            +
                if (src.hasOwnProperty(key) && key.substr(0, 2) !== '$$') {
         | 
| 44 | 
            +
                  dst[key] = src[key];
         | 
| 45 | 
            +
                }
         | 
| 46 | 
            +
              }
         | 
| 47 | 
            +
             | 
| 48 | 
            +
              return dst;
         | 
| 49 | 
            +
            }
         | 
| 50 | 
            +
             | 
| 32 51 | 
             
            /**
         | 
| 33 52 | 
             
             * @ngdoc overview
         | 
| 34 53 | 
             
             * @name ngResource
         | 
| @@ -398,7 +417,7 @@ angular.module('ngResource', ['ng']). | |
| 398 417 | 
             
                  }
         | 
| 399 418 |  | 
| 400 419 | 
             
                  function Resource(value){
         | 
| 401 | 
            -
                     | 
| 420 | 
            +
                    shallowClearAndCopy(value || {}, this);
         | 
| 402 421 | 
             
                  }
         | 
| 403 422 |  | 
| 404 423 | 
             
                  forEach(actions, function(action, name) {
         | 
| @@ -470,7 +489,7 @@ angular.module('ngResource', ['ng']). | |
| 470 489 | 
             
                        if (data) {
         | 
| 471 490 | 
             
                          // Need to convert action.isArray to boolean in case it is undefined
         | 
| 472 491 | 
             
                          // jshint -W018
         | 
| 473 | 
            -
                          if ( | 
| 492 | 
            +
                          if (angular.isArray(data) !== (!!action.isArray)) {
         | 
| 474 493 | 
             
                            throw $resourceMinErr('badcfg', 'Error in resource configuration. Expected ' +
         | 
| 475 494 | 
             
                              'response to contain an {0} but got an {1}',
         | 
| 476 495 | 
             
                              action.isArray?'array':'object', angular.isArray(data)?'array':'object');
         | 
| @@ -482,7 +501,7 @@ angular.module('ngResource', ['ng']). | |
| 482 501 | 
             
                              value.push(new Resource(item));
         | 
| 483 502 | 
             
                            });
         | 
| 484 503 | 
             
                          } else {
         | 
| 485 | 
            -
                             | 
| 504 | 
            +
                            shallowClearAndCopy(data, value);
         | 
| 486 505 | 
             
                            value.$promise = promise;
         | 
| 487 506 | 
             
                          }
         | 
| 488 507 | 
             
                        }
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            /**
         | 
| 2 | 
            -
             * @license AngularJS v1.2. | 
| 2 | 
            +
             * @license AngularJS v1.2.5
         | 
| 3 3 | 
             
             * (c) 2010-2014 Google, Inc. http://angularjs.org
         | 
| 4 4 | 
             
             * License: MIT
         | 
| 5 5 | 
             
             */
         | 
| @@ -57,13 +57,13 @@ function $RouteProvider(){ | |
| 57 57 | 
             
               *    `$location.path` will be updated to add or drop the trailing slash to exactly match the
         | 
| 58 58 | 
             
               *    route definition.
         | 
| 59 59 | 
             
               *
         | 
| 60 | 
            -
               *      * `path` can contain named groups starting with a colon  | 
| 60 | 
            +
               *      * `path` can contain named groups starting with a colon: e.g. `:name`. All characters up
         | 
| 61 61 | 
             
               *        to the next slash are matched and stored in `$routeParams` under the given `name`
         | 
| 62 62 | 
             
               *        when the route matches.
         | 
| 63 | 
            -
               *      * `path` can contain named groups starting with a colon and ending with a star | 
| 64 | 
            -
               *        All characters are eagerly stored in `$routeParams` under the given `name`
         | 
| 63 | 
            +
               *      * `path` can contain named groups starting with a colon and ending with a star:
         | 
| 64 | 
            +
               *        e.g.`:name*`. All characters are eagerly stored in `$routeParams` under the given `name`
         | 
| 65 65 | 
             
               *        when the route matches.
         | 
| 66 | 
            -
               *      * `path` can contain optional named groups with a question mark  | 
| 66 | 
            +
               *      * `path` can contain optional named groups with a question mark: e.g.`:name?`.
         | 
| 67 67 | 
             
               *
         | 
| 68 68 | 
             
               *    For example, routes like `/color/:color/largecode/:largecode*\/edit` will match
         | 
| 69 69 | 
             
               *    `/color/brown/largecode/code/with/slashs/edit` and extract:
         | 
| @@ -644,6 +644,8 @@ function $RouteParamsProvider() { | |
| 644 644 | 
             
            }
         | 
| 645 645 |  | 
| 646 646 | 
             
            ngRouteModule.directive('ngView', ngViewFactory);
         | 
| 647 | 
            +
            ngRouteModule.directive('ngView', ngViewFillContentFactory);
         | 
| 648 | 
            +
             | 
| 647 649 |  | 
| 648 650 | 
             
            /**
         | 
| 649 651 | 
             
             * @ngdoc directive
         | 
| @@ -809,8 +811,8 @@ ngRouteModule.directive('ngView', ngViewFactory); | |
| 809 811 | 
             
             * @description
         | 
| 810 812 | 
             
             * Emitted every time the ngView content is reloaded.
         | 
| 811 813 | 
             
             */
         | 
| 812 | 
            -
            ngViewFactory.$inject = ['$route', '$anchorScroll', '$ | 
| 813 | 
            -
            function ngViewFactory(   $route,   $anchorScroll,   $ | 
| 814 | 
            +
            ngViewFactory.$inject = ['$route', '$anchorScroll', '$animate'];
         | 
| 815 | 
            +
            function ngViewFactory(   $route,   $anchorScroll,   $animate) {
         | 
| 814 816 | 
             
              return {
         | 
| 815 817 | 
             
                restrict: 'ECA',
         | 
| 816 818 | 
             
                terminal: true,
         | 
| @@ -842,6 +844,7 @@ function ngViewFactory(   $route,   $anchorScroll,   $compile,   $controller, | |
| 842 844 |  | 
| 843 845 | 
             
                      if (template) {
         | 
| 844 846 | 
             
                        var newScope = scope.$new();
         | 
| 847 | 
            +
                        var current = $route.current;
         | 
| 845 848 |  | 
| 846 849 | 
             
                        // Note: This will also link all children of ng-view that were contained in the original
         | 
| 847 850 | 
             
                        // html. If that content contains controllers, ... they could pollute/change the scope.
         | 
| @@ -849,34 +852,18 @@ function ngViewFactory(   $route,   $anchorScroll,   $compile,   $controller, | |
| 849 852 | 
             
                        // Note: We can't remove them in the cloneAttchFn of $transclude as that
         | 
| 850 853 | 
             
                        // function is called before linking the content, which would apply child
         | 
| 851 854 | 
             
                        // directives to non existing elements.
         | 
| 852 | 
            -
                        var clone = $transclude(newScope,  | 
| 853 | 
            -
             | 
| 854 | 
            -
             | 
| 855 | 
            -
             | 
| 856 | 
            -
             | 
| 857 | 
            -
                             | 
| 858 | 
            -
                          }
         | 
| 855 | 
            +
                        var clone = $transclude(newScope, function(clone) {
         | 
| 856 | 
            +
                          $animate.enter(clone, null, currentElement || $element, function onNgViewEnter () {
         | 
| 857 | 
            +
                            if (angular.isDefined(autoScrollExp)
         | 
| 858 | 
            +
                              && (!autoScrollExp || scope.$eval(autoScrollExp))) {
         | 
| 859 | 
            +
                              $anchorScroll();
         | 
| 860 | 
            +
                            }
         | 
| 861 | 
            +
                          });
         | 
| 862 | 
            +
                          cleanupLastView();
         | 
| 859 863 | 
             
                        });
         | 
| 860 864 |  | 
| 861 | 
            -
                        cleanupLastView();
         | 
| 862 | 
            -
             | 
| 863 | 
            -
                        var link = $compile(clone.contents()),
         | 
| 864 | 
            -
                            current = $route.current;
         | 
| 865 | 
            -
             | 
| 866 | 
            -
                        currentScope = current.scope = newScope;
         | 
| 867 865 | 
             
                        currentElement = clone;
         | 
| 868 | 
            -
             | 
| 869 | 
            -
                        if (current.controller) {
         | 
| 870 | 
            -
                          locals.$scope = currentScope;
         | 
| 871 | 
            -
                          var controller = $controller(current.controller, locals);
         | 
| 872 | 
            -
                          if (current.controllerAs) {
         | 
| 873 | 
            -
                            currentScope[current.controllerAs] = controller;
         | 
| 874 | 
            -
                          }
         | 
| 875 | 
            -
                          clone.data('$ngControllerController', controller);
         | 
| 876 | 
            -
                          clone.children().data('$ngControllerController', controller);
         | 
| 877 | 
            -
                        }
         | 
| 878 | 
            -
             | 
| 879 | 
            -
                        link(currentScope);
         | 
| 866 | 
            +
                        currentScope = current.scope = newScope;
         | 
| 880 867 | 
             
                        currentScope.$emit('$viewContentLoaded');
         | 
| 881 868 | 
             
                        currentScope.$eval(onloadExp);
         | 
| 882 869 | 
             
                      } else {
         | 
| @@ -887,5 +874,38 @@ function ngViewFactory(   $route,   $anchorScroll,   $compile,   $controller, | |
| 887 874 | 
             
              };
         | 
| 888 875 | 
             
            }
         | 
| 889 876 |  | 
| 877 | 
            +
            // This directive is called during the $transclude call of the first `ngView` directive.
         | 
| 878 | 
            +
            // It will replace and compile the content of the element with the loaded template.
         | 
| 879 | 
            +
            // We need this directive so that the element content is already filled when
         | 
| 880 | 
            +
            // the link function of another directive on the same element as ngView
         | 
| 881 | 
            +
            // is called.
         | 
| 882 | 
            +
            ngViewFillContentFactory.$inject = ['$compile', '$controller', '$route'];
         | 
| 883 | 
            +
            function ngViewFillContentFactory($compile, $controller, $route) {
         | 
| 884 | 
            +
              return {
         | 
| 885 | 
            +
                restrict: 'ECA',
         | 
| 886 | 
            +
                priority: -400,
         | 
| 887 | 
            +
                link: function(scope, $element) {
         | 
| 888 | 
            +
                  var current = $route.current,
         | 
| 889 | 
            +
                      locals = current.locals;
         | 
| 890 | 
            +
             | 
| 891 | 
            +
                  $element.html(locals.$template);
         | 
| 892 | 
            +
             | 
| 893 | 
            +
                  var link = $compile($element.contents());
         | 
| 894 | 
            +
             | 
| 895 | 
            +
                  if (current.controller) {
         | 
| 896 | 
            +
                    locals.$scope = scope;
         | 
| 897 | 
            +
                    var controller = $controller(current.controller, locals);
         | 
| 898 | 
            +
                    if (current.controllerAs) {
         | 
| 899 | 
            +
                      scope[current.controllerAs] = controller;
         | 
| 900 | 
            +
                    }
         | 
| 901 | 
            +
                    $element.data('$ngControllerController', controller);
         | 
| 902 | 
            +
                    $element.children().data('$ngControllerController', controller);
         | 
| 903 | 
            +
                  }
         | 
| 904 | 
            +
             | 
| 905 | 
            +
                  link(scope);
         | 
| 906 | 
            +
                }
         | 
| 907 | 
            +
              };
         | 
| 908 | 
            +
            }
         | 
| 909 | 
            +
             | 
| 890 910 |  | 
| 891 911 | 
             
            })(window, window.angular);
         | 
| @@ -9790,7 +9790,7 @@ if ( typeof module === "object" && module && typeof module.exports === "object" | |
| 9790 9790 | 
             
            })( window );
         | 
| 9791 9791 |  | 
| 9792 9792 | 
             
            /**
         | 
| 9793 | 
            -
             * @license AngularJS v1.2. | 
| 9793 | 
            +
             * @license AngularJS v1.2.5
         | 
| 9794 9794 | 
             
             * (c) 2010-2014 Google, Inc. http://angularjs.org
         | 
| 9795 9795 | 
             
             * License: MIT
         | 
| 9796 9796 | 
             
             */
         | 
| @@ -9860,7 +9860,7 @@ function minErr(module) { | |
| 9860 9860 | 
             
                  return match;
         | 
| 9861 9861 | 
             
                });
         | 
| 9862 9862 |  | 
| 9863 | 
            -
                message = message + '\nhttp://errors.angularjs.org/1.2. | 
| 9863 | 
            +
                message = message + '\nhttp://errors.angularjs.org/1.2.5/' +
         | 
| 9864 9864 | 
             
                  (module ? module + '/' : '') + code;
         | 
| 9865 9865 | 
             
                for (i = 2; i < arguments.length; i++) {
         | 
| 9866 9866 | 
             
                  message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
         | 
| @@ -10264,7 +10264,7 @@ function valueFn(value) {return function() {return value;};} | |
| 10264 10264 | 
             
             * @param {*} value Reference to check.
         | 
| 10265 10265 | 
             
             * @returns {boolean} True if `value` is undefined.
         | 
| 10266 10266 | 
             
             */
         | 
| 10267 | 
            -
            function isUndefined(value){return typeof value  | 
| 10267 | 
            +
            function isUndefined(value){return typeof value === 'undefined';}
         | 
| 10268 10268 |  | 
| 10269 10269 |  | 
| 10270 10270 | 
             
            /**
         | 
| @@ -10278,7 +10278,7 @@ function isUndefined(value){return typeof value == 'undefined';} | |
| 10278 10278 | 
             
             * @param {*} value Reference to check.
         | 
| 10279 10279 | 
             
             * @returns {boolean} True if `value` is defined.
         | 
| 10280 10280 | 
             
             */
         | 
| 10281 | 
            -
            function isDefined(value){return typeof value  | 
| 10281 | 
            +
            function isDefined(value){return typeof value !== 'undefined';}
         | 
| 10282 10282 |  | 
| 10283 10283 |  | 
| 10284 10284 | 
             
            /**
         | 
| @@ -10293,7 +10293,7 @@ function isDefined(value){return typeof value != 'undefined';} | |
| 10293 10293 | 
             
             * @param {*} value Reference to check.
         | 
| 10294 10294 | 
             
             * @returns {boolean} True if `value` is an `Object` but not `null`.
         | 
| 10295 10295 | 
             
             */
         | 
| 10296 | 
            -
            function isObject(value){return value != null && typeof value  | 
| 10296 | 
            +
            function isObject(value){return value != null && typeof value === 'object';}
         | 
| 10297 10297 |  | 
| 10298 10298 |  | 
| 10299 10299 | 
             
            /**
         | 
| @@ -10307,7 +10307,7 @@ function isObject(value){return value != null && typeof value == 'object';} | |
| 10307 10307 | 
             
             * @param {*} value Reference to check.
         | 
| 10308 10308 | 
             
             * @returns {boolean} True if `value` is a `String`.
         | 
| 10309 10309 | 
             
             */
         | 
| 10310 | 
            -
            function isString(value){return typeof value  | 
| 10310 | 
            +
            function isString(value){return typeof value === 'string';}
         | 
| 10311 10311 |  | 
| 10312 10312 |  | 
| 10313 10313 | 
             
            /**
         | 
| @@ -10321,7 +10321,7 @@ function isString(value){return typeof value == 'string';} | |
| 10321 10321 | 
             
             * @param {*} value Reference to check.
         | 
| 10322 10322 | 
             
             * @returns {boolean} True if `value` is a `Number`.
         | 
| 10323 10323 | 
             
             */
         | 
| 10324 | 
            -
            function isNumber(value){return typeof value  | 
| 10324 | 
            +
            function isNumber(value){return typeof value === 'number';}
         | 
| 10325 10325 |  | 
| 10326 10326 |  | 
| 10327 10327 | 
             
            /**
         | 
| @@ -10336,7 +10336,7 @@ function isNumber(value){return typeof value == 'number';} | |
| 10336 10336 | 
             
             * @returns {boolean} True if `value` is a `Date`.
         | 
| 10337 10337 | 
             
             */
         | 
| 10338 10338 | 
             
            function isDate(value){
         | 
| 10339 | 
            -
              return toString. | 
| 10339 | 
            +
              return toString.call(value) === '[object Date]';
         | 
| 10340 10340 | 
             
            }
         | 
| 10341 10341 |  | 
| 10342 10342 |  | 
| @@ -10352,7 +10352,7 @@ function isDate(value){ | |
| 10352 10352 | 
             
             * @returns {boolean} True if `value` is an `Array`.
         | 
| 10353 10353 | 
             
             */
         | 
| 10354 10354 | 
             
            function isArray(value) {
         | 
| 10355 | 
            -
              return toString. | 
| 10355 | 
            +
              return toString.call(value) === '[object Array]';
         | 
| 10356 10356 | 
             
            }
         | 
| 10357 10357 |  | 
| 10358 10358 |  | 
| @@ -10367,7 +10367,7 @@ function isArray(value) { | |
| 10367 10367 | 
             
             * @param {*} value Reference to check.
         | 
| 10368 10368 | 
             
             * @returns {boolean} True if `value` is a `Function`.
         | 
| 10369 10369 | 
             
             */
         | 
| 10370 | 
            -
            function isFunction(value){return typeof value  | 
| 10370 | 
            +
            function isFunction(value){return typeof value === 'function';}
         | 
| 10371 10371 |  | 
| 10372 10372 |  | 
| 10373 10373 | 
             
            /**
         | 
| @@ -10378,7 +10378,7 @@ function isFunction(value){return typeof value == 'function';} | |
| 10378 10378 | 
             
             * @returns {boolean} True if `value` is a `RegExp`.
         | 
| 10379 10379 | 
             
             */
         | 
| 10380 10380 | 
             
            function isRegExp(value) {
         | 
| 10381 | 
            -
              return toString. | 
| 10381 | 
            +
              return toString.call(value) === '[object RegExp]';
         | 
| 10382 10382 | 
             
            }
         | 
| 10383 10383 |  | 
| 10384 10384 |  | 
| @@ -10400,12 +10400,12 @@ function isScope(obj) { | |
| 10400 10400 |  | 
| 10401 10401 |  | 
| 10402 10402 | 
             
            function isFile(obj) {
         | 
| 10403 | 
            -
              return toString. | 
| 10403 | 
            +
              return toString.call(obj) === '[object File]';
         | 
| 10404 10404 | 
             
            }
         | 
| 10405 10405 |  | 
| 10406 10406 |  | 
| 10407 10407 | 
             
            function isBoolean(value) {
         | 
| 10408 | 
            -
              return typeof value  | 
| 10408 | 
            +
              return typeof value === 'boolean';
         | 
| 10409 10409 | 
             
            }
         | 
| 10410 10410 |  | 
| 10411 10411 |  | 
| @@ -10509,7 +10509,7 @@ function includes(array, obj) { | |
| 10509 10509 | 
             
            function indexOf(array, obj) {
         | 
| 10510 10510 | 
             
              if (array.indexOf) return array.indexOf(obj);
         | 
| 10511 10511 |  | 
| 10512 | 
            -
              for ( | 
| 10512 | 
            +
              for (var i = 0; i < array.length; i++) {
         | 
| 10513 10513 | 
             
                if (obj === array[i]) return i;
         | 
| 10514 10514 | 
             
              }
         | 
| 10515 10515 | 
             
              return -1;
         | 
| @@ -10845,7 +10845,7 @@ function startingTag(element) { | |
| 10845 10845 | 
             
              try {
         | 
| 10846 10846 | 
             
                // turns out IE does not let you set .html() on elements which
         | 
| 10847 10847 | 
             
                // are not allowed to have children. So we just ignore it.
         | 
| 10848 | 
            -
                element. | 
| 10848 | 
            +
                element.empty();
         | 
| 10849 10849 | 
             
              } catch(e) {}
         | 
| 10850 10850 | 
             
              // As Per DOM Standards
         | 
| 10851 10851 | 
             
              var TEXT_NODE = 3;
         | 
| @@ -11559,6 +11559,7 @@ function setupModuleLoader(window) { | |
| 11559 11559 | 
             
                ngHideDirective,
         | 
| 11560 11560 | 
             
                ngIfDirective,
         | 
| 11561 11561 | 
             
                ngIncludeDirective,
         | 
| 11562 | 
            +
                ngIncludeFillContentDirective,
         | 
| 11562 11563 | 
             
                ngInitDirective,
         | 
| 11563 11564 | 
             
                ngNonBindableDirective,
         | 
| 11564 11565 | 
             
                ngPluralizeDirective,
         | 
| @@ -11620,11 +11621,11 @@ function setupModuleLoader(window) { | |
| 11620 11621 | 
             
             * - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
         | 
| 11621 11622 | 
             
             */
         | 
| 11622 11623 | 
             
            var version = {
         | 
| 11623 | 
            -
              full: '1.2. | 
| 11624 | 
            +
              full: '1.2.5',    // all of these placeholder strings will be replaced by grunt's
         | 
| 11624 11625 | 
             
              major: 1,    // package task
         | 
| 11625 11626 | 
             
              minor: 2,
         | 
| 11626 | 
            -
              dot:  | 
| 11627 | 
            -
              codeName: ' | 
| 11627 | 
            +
              dot: 5,
         | 
| 11628 | 
            +
              codeName: 'singularity-expansion'
         | 
| 11628 11629 | 
             
            };
         | 
| 11629 11630 |  | 
| 11630 11631 |  | 
| @@ -11712,6 +11713,9 @@ function publishExternalAPI(angular){ | |
| 11712 11713 | 
             
                        ngRequired: requiredDirective,
         | 
| 11713 11714 | 
             
                        ngValue: ngValueDirective
         | 
| 11714 11715 | 
             
                    }).
         | 
| 11716 | 
            +
                    directive({
         | 
| 11717 | 
            +
                      ngInclude: ngIncludeFillContentDirective
         | 
| 11718 | 
            +
                    }).
         | 
| 11715 11719 | 
             
                    directive(ngAttributeAliasDirectives).
         | 
| 11716 11720 | 
             
                    directive(ngEventDirectives);
         | 
| 11717 11721 | 
             
                  $provide.provider({
         | 
| @@ -11789,6 +11793,7 @@ function publishExternalAPI(angular){ | |
| 11789 11793 | 
             
             * - [`contents()`](http://api.jquery.com/contents/)
         | 
| 11790 11794 | 
             
             * - [`css()`](http://api.jquery.com/css/)
         | 
| 11791 11795 | 
             
             * - [`data()`](http://api.jquery.com/data/)
         | 
| 11796 | 
            +
             * - [`empty()`](http://api.jquery.com/empty/)
         | 
| 11792 11797 | 
             
             * - [`eq()`](http://api.jquery.com/eq/)
         | 
| 11793 11798 | 
             
             * - [`find()`](http://api.jquery.com/find/) - Limited to lookups by tag name
         | 
| 11794 11799 | 
             
             * - [`hasClass()`](http://api.jquery.com/hasClass/)
         | 
| @@ -12101,6 +12106,15 @@ function jqLiteInheritedData(element, name, value) { | |
| 12101 12106 | 
             
              }
         | 
| 12102 12107 | 
             
            }
         | 
| 12103 12108 |  | 
| 12109 | 
            +
            function jqLiteEmpty(element) {
         | 
| 12110 | 
            +
              for (var i = 0, childNodes = element.childNodes; i < childNodes.length; i++) {
         | 
| 12111 | 
            +
                jqLiteDealoc(childNodes[i]);
         | 
| 12112 | 
            +
              }
         | 
| 12113 | 
            +
              while (element.firstChild) {
         | 
| 12114 | 
            +
                element.removeChild(element.firstChild);
         | 
| 12115 | 
            +
              }
         | 
| 12116 | 
            +
            }
         | 
| 12117 | 
            +
             | 
| 12104 12118 | 
             
            //////////////////////////////////////////
         | 
| 12105 12119 | 
             
            // Functions which are declared directly.
         | 
| 12106 12120 | 
             
            //////////////////////////////////////////
         | 
| @@ -12295,7 +12309,9 @@ forEach({ | |
| 12295 12309 | 
             
                  jqLiteDealoc(childNodes[i]);
         | 
| 12296 12310 | 
             
                }
         | 
| 12297 12311 | 
             
                element.innerHTML = value;
         | 
| 12298 | 
            -
              }
         | 
| 12312 | 
            +
              },
         | 
| 12313 | 
            +
             | 
| 12314 | 
            +
              empty: jqLiteEmpty
         | 
| 12299 12315 | 
             
            }, function(fn, name){
         | 
| 12300 12316 | 
             
              /**
         | 
| 12301 12317 | 
             
               * Properties: writes return selection, reads return first value
         | 
| @@ -12305,11 +12321,13 @@ forEach({ | |
| 12305 12321 |  | 
| 12306 12322 | 
             
                // jqLiteHasClass has only two arguments, but is a getter-only fn, so we need to special-case it
         | 
| 12307 12323 | 
             
                // in a way that survives minification.
         | 
| 12308 | 
            -
                 | 
| 12324 | 
            +
                // jqLiteEmpty takes no arguments but is a setter.
         | 
| 12325 | 
            +
                if (fn !== jqLiteEmpty &&
         | 
| 12326 | 
            +
                    (((fn.length == 2 && (fn !== jqLiteHasClass && fn !== jqLiteController)) ? arg1 : arg2) === undefined)) {
         | 
| 12309 12327 | 
             
                  if (isObject(arg1)) {
         | 
| 12310 12328 |  | 
| 12311 12329 | 
             
                    // we are a write, but the object properties are the key/values
         | 
| 12312 | 
            -
                    for(i=0; i < this.length; i++) {
         | 
| 12330 | 
            +
                    for (i = 0; i < this.length; i++) {
         | 
| 12313 12331 | 
             
                      if (fn === jqLiteData) {
         | 
| 12314 12332 | 
             
                        // data() takes the whole object in jQuery
         | 
| 12315 12333 | 
             
                        fn(this[i], arg1);
         | 
| @@ -12334,7 +12352,7 @@ forEach({ | |
| 12334 12352 | 
             
                  }
         | 
| 12335 12353 | 
             
                } else {
         | 
| 12336 12354 | 
             
                  // we are a write, so apply to all children
         | 
| 12337 | 
            -
                  for(i=0; i < this.length; i++) {
         | 
| 12355 | 
            +
                  for (i = 0; i < this.length; i++) {
         | 
| 12338 12356 | 
             
                    fn(this[i], arg1, arg2);
         | 
| 12339 12357 | 
             
                  }
         | 
| 12340 12358 | 
             
                  // return self for chaining
         | 
| @@ -12705,6 +12723,28 @@ HashMap.prototype = { | |
| 12705 12723 | 
             
             *     $rootScope.$digest();
         | 
| 12706 12724 | 
             
             *   });
         | 
| 12707 12725 | 
             
             * </pre>
         | 
| 12726 | 
            +
             *
         | 
| 12727 | 
            +
             * Sometimes you want to get access to the injector of a currently running Angular app
         | 
| 12728 | 
            +
             * from outside Angular. Perhaps, you want to inject and compile some markup after the
         | 
| 12729 | 
            +
             * application has been bootstrapped. You can do this using extra `injector()` added
         | 
| 12730 | 
            +
             * to JQuery/jqLite elements. See {@link angular.element}.
         | 
| 12731 | 
            +
             *
         | 
| 12732 | 
            +
             * *This is fairly rare but could be the case if a third party library is injecting the
         | 
| 12733 | 
            +
             * markup.*
         | 
| 12734 | 
            +
             *
         | 
| 12735 | 
            +
             * In the following example a new block of HTML containing a `ng-controller`
         | 
| 12736 | 
            +
             * directive is added to the end of the document body by JQuery. We then compile and link
         | 
| 12737 | 
            +
             * it into the current AngularJS scope.
         | 
| 12738 | 
            +
             *
         | 
| 12739 | 
            +
             * <pre>
         | 
| 12740 | 
            +
             * var $div = $('<div ng-controller="MyCtrl">{{content.label}}</div>');
         | 
| 12741 | 
            +
             * $(document.body).append($div);
         | 
| 12742 | 
            +
             *
         | 
| 12743 | 
            +
             * angular.element(document).injector().invoke(function($compile) {
         | 
| 12744 | 
            +
             *   var scope = angular.element($div).scope();
         | 
| 12745 | 
            +
             *   $compile($div)(scope);
         | 
| 12746 | 
            +
             * });
         | 
| 12747 | 
            +
             * </pre>
         | 
| 12708 12748 | 
             
             */
         | 
| 12709 12749 |  | 
| 12710 12750 |  | 
| @@ -13425,24 +13465,9 @@ function createInjector(modulesToLoad) { | |
| 13425 13465 | 
             
                    fn = fn[length];
         | 
| 13426 13466 | 
             
                  }
         | 
| 13427 13467 |  | 
| 13428 | 
            -
             | 
| 13429 | 
            -
                  //  | 
| 13430 | 
            -
                   | 
| 13431 | 
            -
                    case  0: return fn();
         | 
| 13432 | 
            -
                    case  1: return fn(args[0]);
         | 
| 13433 | 
            -
                    case  2: return fn(args[0], args[1]);
         | 
| 13434 | 
            -
                    case  3: return fn(args[0], args[1], args[2]);
         | 
| 13435 | 
            -
                    case  4: return fn(args[0], args[1], args[2], args[3]);
         | 
| 13436 | 
            -
                    case  5: return fn(args[0], args[1], args[2], args[3], args[4]);
         | 
| 13437 | 
            -
                    case  6: return fn(args[0], args[1], args[2], args[3], args[4], args[5]);
         | 
| 13438 | 
            -
                    case  7: return fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
         | 
| 13439 | 
            -
                    case  8: return fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
         | 
| 13440 | 
            -
                    case  9: return fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7],
         | 
| 13441 | 
            -
                      args[8]);
         | 
| 13442 | 
            -
                    case 10: return fn(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7],
         | 
| 13443 | 
            -
                      args[8], args[9]);
         | 
| 13444 | 
            -
                    default: return fn.apply(self, args);
         | 
| 13445 | 
            -
                  }
         | 
| 13468 | 
            +
                  // http://jsperf.com/angularjs-invoke-apply-vs-switch
         | 
| 13469 | 
            +
                  // #5388
         | 
| 13470 | 
            +
                  return fn.apply(self, args);
         | 
| 13446 13471 | 
             
                }
         | 
| 13447 13472 |  | 
| 13448 13473 | 
             
                function instantiate(Type, locals) {
         | 
| @@ -15628,7 +15653,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { | |
| 15628 15653 | 
             
                                                    });
         | 
| 15629 15654 | 
             
                      } else {
         | 
| 15630 15655 | 
             
                        $template = jqLite(jqLiteClone(compileNode)).contents();
         | 
| 15631 | 
            -
                        $compileNode. | 
| 15656 | 
            +
                        $compileNode.empty(); // clear contents
         | 
| 15632 15657 | 
             
                        childTranscludeFn = compile($template, transcludeFn);
         | 
| 15633 15658 | 
             
                      }
         | 
| 15634 15659 | 
             
                    }
         | 
| @@ -15809,7 +15834,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { | |
| 15809 15834 | 
             
                            optional = (match[2] == '?'),
         | 
| 15810 15835 | 
             
                            mode = match[1], // @, =, or &
         | 
| 15811 15836 | 
             
                            lastValue,
         | 
| 15812 | 
            -
                            parentGet, parentSet;
         | 
| 15837 | 
            +
                            parentGet, parentSet, compare;
         | 
| 15813 15838 |  | 
| 15814 15839 | 
             
                        isolateScope.$$isolateBindings[scopeName] = mode + attrName;
         | 
| 15815 15840 |  | 
| @@ -15832,6 +15857,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { | |
| 15832 15857 | 
             
                              return;
         | 
| 15833 15858 | 
             
                            }
         | 
| 15834 15859 | 
             
                            parentGet = $parse(attrs[attrName]);
         | 
| 15860 | 
            +
                            if (parentGet.literal) {
         | 
| 15861 | 
            +
                              compare = equals;
         | 
| 15862 | 
            +
                            } else {
         | 
| 15863 | 
            +
                              compare = function(a,b) { return a === b; };
         | 
| 15864 | 
            +
                            }
         | 
| 15835 15865 | 
             
                            parentSet = parentGet.assign || function() {
         | 
| 15836 15866 | 
             
                              // reset the change, or we will throw this exception on every $digest
         | 
| 15837 15867 | 
             
                              lastValue = isolateScope[scopeName] = parentGet(scope);
         | 
| @@ -15842,10 +15872,9 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { | |
| 15842 15872 | 
             
                            lastValue = isolateScope[scopeName] = parentGet(scope);
         | 
| 15843 15873 | 
             
                            isolateScope.$watch(function parentValueWatch() {
         | 
| 15844 15874 | 
             
                              var parentValue = parentGet(scope);
         | 
| 15845 | 
            -
             | 
| 15846 | 
            -
                              if (parentValue !== isolateScope[scopeName]) {
         | 
| 15875 | 
            +
                              if (!compare(parentValue, isolateScope[scopeName])) {
         | 
| 15847 15876 | 
             
                                // we are out of sync and need to copy
         | 
| 15848 | 
            -
                                if (parentValue  | 
| 15877 | 
            +
                                if (!compare(parentValue, lastValue)) {
         | 
| 15849 15878 | 
             
                                  // parent changed and it has precedence
         | 
| 15850 15879 | 
             
                                  isolateScope[scopeName] = parentValue;
         | 
| 15851 15880 | 
             
                                } else {
         | 
| @@ -15854,7 +15883,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { | |
| 15854 15883 | 
             
                                }
         | 
| 15855 15884 | 
             
                              }
         | 
| 15856 15885 | 
             
                              return lastValue = parentValue;
         | 
| 15857 | 
            -
                            });
         | 
| 15886 | 
            +
                            }, null, parentGet.literal);
         | 
| 15858 15887 | 
             
                            break;
         | 
| 15859 15888 |  | 
| 15860 15889 | 
             
                          case '&':
         | 
| @@ -16056,7 +16085,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { | |
| 16056 16085 | 
             
                          ? origAsyncDirective.templateUrl($compileNode, tAttrs)
         | 
| 16057 16086 | 
             
                          : origAsyncDirective.templateUrl;
         | 
| 16058 16087 |  | 
| 16059 | 
            -
                  $compileNode. | 
| 16088 | 
            +
                  $compileNode.empty();
         | 
| 16060 16089 |  | 
| 16061 16090 | 
             
                  $http.get($sce.getTrustedResourceUrl(templateUrl), {cache: $templateCache}).
         | 
| 16062 16091 | 
             
                    success(function(content) {
         | 
| @@ -20371,7 +20400,7 @@ function $ParseProvider() { | |
| 20371 20400 | 
             
             *
         | 
| 20372 20401 | 
             
             * # Differences between Kris Kowal's Q and $q
         | 
| 20373 20402 | 
             
             *
         | 
| 20374 | 
            -
             *  There are  | 
| 20403 | 
            +
             *  There are two main differences:
         | 
| 20375 20404 | 
             
             *
         | 
| 20376 20405 | 
             
             * - $q is integrated with the {@link ng.$rootScope.Scope} Scope model observation
         | 
| 20377 20406 | 
             
             *   mechanism in angular, which means faster propagation of resolution or rejection into your
         | 
| @@ -20905,11 +20934,11 @@ function $RootScopeProvider(){ | |
| 20905 20934 | 
             
                   * @description
         | 
| 20906 20935 | 
             
                   * Creates a new child {@link ng.$rootScope.Scope scope}.
         | 
| 20907 20936 | 
             
                   *
         | 
| 20908 | 
            -
                   * The parent scope will propagate the {@link ng.$rootScope.Scope | 
| 20909 | 
            -
                   * {@link ng.$rootScope.Scope | 
| 20910 | 
            -
                   * scope hierarchy using {@link ng.$rootScope.Scope | 
| 20937 | 
            +
                   * The parent scope will propagate the {@link ng.$rootScope.Scope#methods_$digest $digest()} and
         | 
| 20938 | 
            +
                   * {@link ng.$rootScope.Scope#methods_$digest $digest()} events. The scope can be removed from the
         | 
| 20939 | 
            +
                   * scope hierarchy using {@link ng.$rootScope.Scope#methods_$destroy $destroy()}.
         | 
| 20911 20940 | 
             
                   *
         | 
| 20912 | 
            -
                   * {@link ng.$rootScope.Scope | 
| 20941 | 
            +
                   * {@link ng.$rootScope.Scope#methods_$destroy $destroy()} must be called on a scope when it is
         | 
| 20913 20942 | 
             
                   * desired for the scope and its child scopes to be permanently detached from the parent and
         | 
| 20914 20943 | 
             
                   * thus stop participating in model change detection and listener notification by invoking.
         | 
| 20915 20944 | 
             
                   *
         | 
| @@ -20962,11 +20991,11 @@ function $RootScopeProvider(){ | |
| 20962 20991 | 
             
                   * @description
         | 
| 20963 20992 | 
             
                   * Registers a `listener` callback to be executed whenever the `watchExpression` changes.
         | 
| 20964 20993 | 
             
                   *
         | 
| 20965 | 
            -
                   * - The `watchExpression` is called on every call to {@link ng.$rootScope.Scope | 
| 20994 | 
            +
                   * - The `watchExpression` is called on every call to {@link ng.$rootScope.Scope#methods_$digest
         | 
| 20966 20995 | 
             
                   *   $digest()} and should return the value that will be watched. (Since
         | 
| 20967 | 
            -
                   *   {@link ng.$rootScope.Scope | 
| 20996 | 
            +
                   *   {@link ng.$rootScope.Scope#methods_$digest $digest()} reruns when it detects changes the
         | 
| 20968 20997 | 
             
                   *   `watchExpression` can execute multiple times per
         | 
| 20969 | 
            -
                   *   {@link ng.$rootScope.Scope | 
| 20998 | 
            +
                   *   {@link ng.$rootScope.Scope#methods_$digest $digest()} and should be idempotent.)
         | 
| 20970 20999 | 
             
                   * - The `listener` is called only when the value from the current `watchExpression` and the
         | 
| 20971 21000 | 
             
                   *   previous call to `watchExpression` are not equal (with the exception of the initial run,
         | 
| 20972 21001 | 
             
                   *   see below). The inequality is determined according to
         | 
| @@ -20978,13 +21007,13 @@ function $RootScopeProvider(){ | |
| 20978 21007 | 
             
                   *   iteration limit is 10 to prevent an infinite loop deadlock.
         | 
| 20979 21008 | 
             
                   *
         | 
| 20980 21009 | 
             
                   *
         | 
| 20981 | 
            -
                   * If you want to be notified whenever {@link ng.$rootScope.Scope | 
| 21010 | 
            +
                   * If you want to be notified whenever {@link ng.$rootScope.Scope#methods_$digest $digest} is called,
         | 
| 20982 21011 | 
             
                   * you can register a `watchExpression` function with no `listener`. (Since `watchExpression`
         | 
| 20983 | 
            -
                   * can execute multiple times per {@link ng.$rootScope.Scope | 
| 21012 | 
            +
                   * can execute multiple times per {@link ng.$rootScope.Scope#methods_$digest $digest} cycle when a
         | 
| 20984 21013 | 
             
                   * change is detected, be prepared for multiple calls to your listener.)
         | 
| 20985 21014 | 
             
                   *
         | 
| 20986 21015 | 
             
                   * After a watcher is registered with the scope, the `listener` fn is called asynchronously
         | 
| 20987 | 
            -
                   * (via {@link ng.$rootScope.Scope | 
| 21016 | 
            +
                   * (via {@link ng.$rootScope.Scope#methods_$evalAsync $evalAsync}) to initialize the
         | 
| 20988 21017 | 
             
                   * watcher. In rare cases, this is undesirable because the listener is called when the result
         | 
| 20989 21018 | 
             
                   * of `watchExpression` didn't change. To detect this scenario within the `listener` fn, you
         | 
| 20990 21019 | 
             
                   * can compare the `newVal` and `oldVal`. If these two values are identical (`===`) then the
         | 
| @@ -21048,7 +21077,7 @@ function $RootScopeProvider(){ | |
| 21048 21077 | 
             
                   *
         | 
| 21049 21078 | 
             
                   *
         | 
| 21050 21079 | 
             
                   * @param {(function()|string)} watchExpression Expression that is evaluated on each
         | 
| 21051 | 
            -
                   *    {@link ng.$rootScope.Scope | 
| 21080 | 
            +
                   *    {@link ng.$rootScope.Scope#methods_$digest $digest} cycle. A change in the return value triggers
         | 
| 21052 21081 | 
             
                   *    a call to the `listener`.
         | 
| 21053 21082 | 
             
                   *
         | 
| 21054 21083 | 
             
                   *    - `string`: Evaluated as {@link guide/expression expression}
         | 
| @@ -21146,7 +21175,7 @@ function $RootScopeProvider(){ | |
| 21146 21175 | 
             
                   *
         | 
| 21147 21176 | 
             
                   * @param {string|Function(scope)} obj Evaluated as {@link guide/expression expression}. The
         | 
| 21148 21177 | 
             
                   *    expression value should evaluate to an object or an array which is observed on each
         | 
| 21149 | 
            -
                   *    {@link ng.$rootScope.Scope | 
| 21178 | 
            +
                   *    {@link ng.$rootScope.Scope#methods_$digest $digest} cycle. Any shallow change within the
         | 
| 21150 21179 | 
             
                   *    collection will trigger a call to the `listener`.
         | 
| 21151 21180 | 
             
                   *
         | 
| 21152 21181 | 
             
                   * @param {function(newCollection, oldCollection, scope)} listener a callback function that is
         | 
| @@ -21251,9 +21280,9 @@ function $RootScopeProvider(){ | |
| 21251 21280 | 
             
                   * @function
         | 
| 21252 21281 | 
             
                   *
         | 
| 21253 21282 | 
             
                   * @description
         | 
| 21254 | 
            -
                   * Processes all of the {@link ng.$rootScope.Scope | 
| 21255 | 
            -
                   * its children. Because a {@link ng.$rootScope.Scope | 
| 21256 | 
            -
                   * the model, the `$digest()` keeps calling the {@link ng.$rootScope.Scope | 
| 21283 | 
            +
                   * Processes all of the {@link ng.$rootScope.Scope#methods_$watch watchers} of the current scope and
         | 
| 21284 | 
            +
                   * its children. Because a {@link ng.$rootScope.Scope#methods_$watch watcher}'s listener can change
         | 
| 21285 | 
            +
                   * the model, the `$digest()` keeps calling the {@link ng.$rootScope.Scope#methods_$watch watchers}
         | 
| 21257 21286 | 
             
                   * until no more listeners are firing. This means that it is possible to get into an infinite
         | 
| 21258 21287 | 
             
                   * loop. This function will throw `'Maximum iteration limit exceeded.'` if the number of
         | 
| 21259 21288 | 
             
                   * iterations exceeds 10.
         | 
| @@ -21261,12 +21290,12 @@ function $RootScopeProvider(){ | |
| 21261 21290 | 
             
                   * Usually, you don't call `$digest()` directly in
         | 
| 21262 21291 | 
             
                   * {@link ng.directive:ngController controllers} or in
         | 
| 21263 21292 | 
             
                   * {@link ng.$compileProvider#methods_directive directives}.
         | 
| 21264 | 
            -
                   * Instead, you should call {@link ng.$rootScope.Scope | 
| 21293 | 
            +
                   * Instead, you should call {@link ng.$rootScope.Scope#methods_$apply $apply()} (typically from within
         | 
| 21265 21294 | 
             
                   * a {@link ng.$compileProvider#methods_directive directives}), which will force a `$digest()`.
         | 
| 21266 21295 | 
             
                   *
         | 
| 21267 21296 | 
             
                   * If you want to be notified whenever `$digest()` is called,
         | 
| 21268 21297 | 
             
                   * you can register a `watchExpression` function with
         | 
| 21269 | 
            -
                   * {@link ng.$rootScope.Scope | 
| 21298 | 
            +
                   * {@link ng.$rootScope.Scope#methods_$watch $watch()} with no `listener`.
         | 
| 21270 21299 | 
             
                   *
         | 
| 21271 21300 | 
             
                   * In unit tests, you may need to call `$digest()` to simulate the scope life cycle.
         | 
| 21272 21301 | 
             
                   *
         | 
| @@ -21421,7 +21450,7 @@ function $RootScopeProvider(){ | |
| 21421 21450 | 
             
                   *
         | 
| 21422 21451 | 
             
                   * @description
         | 
| 21423 21452 | 
             
                   * Removes the current scope (and all of its children) from the parent scope. Removal implies
         | 
| 21424 | 
            -
                   * that calls to {@link ng.$rootScope.Scope | 
| 21453 | 
            +
                   * that calls to {@link ng.$rootScope.Scope#methods_$digest $digest()} will no longer
         | 
| 21425 21454 | 
             
                   * propagate to the current scope and its children. Removal also implies that the current
         | 
| 21426 21455 | 
             
                   * scope is eligible for garbage collection.
         | 
| 21427 21456 | 
             
                   *
         | 
| @@ -21503,7 +21532,7 @@ function $RootScopeProvider(){ | |
| 21503 21532 | 
             
                   *
         | 
| 21504 21533 | 
             
                   *   - it will execute after the function that scheduled the evaluation (preferably before DOM
         | 
| 21505 21534 | 
             
                   *     rendering).
         | 
| 21506 | 
            -
                   *   - at least one {@link ng.$rootScope.Scope | 
| 21535 | 
            +
                   *   - at least one {@link ng.$rootScope.Scope#methods_$digest $digest cycle} will be performed after
         | 
| 21507 21536 | 
             
                   *     `expression` execution.
         | 
| 21508 21537 | 
             
                   *
         | 
| 21509 21538 | 
             
                   * Any exceptions from the execution of the expression are forwarded to the
         | 
| @@ -21548,7 +21577,7 @@ function $RootScopeProvider(){ | |
| 21548 21577 | 
             
                   * framework. (For example from browser DOM events, setTimeout, XHR or third party libraries).
         | 
| 21549 21578 | 
             
                   * Because we are calling into the angular framework we need to perform proper scope life
         | 
| 21550 21579 | 
             
                   * cycle of {@link ng.$exceptionHandler exception handling},
         | 
| 21551 | 
            -
                   * {@link ng.$rootScope.Scope | 
| 21580 | 
            +
                   * {@link ng.$rootScope.Scope#methods_$digest executing watches}.
         | 
| 21552 21581 | 
             
                   *
         | 
| 21553 21582 | 
             
                   * ## Life cycle
         | 
| 21554 21583 | 
             
                   *
         | 
| @@ -21569,11 +21598,11 @@ function $RootScopeProvider(){ | |
| 21569 21598 | 
             
                   * Scope's `$apply()` method transitions through the following stages:
         | 
| 21570 21599 | 
             
                   *
         | 
| 21571 21600 | 
             
                   * 1. The {@link guide/expression expression} is executed using the
         | 
| 21572 | 
            -
                   *    {@link ng.$rootScope.Scope | 
| 21601 | 
            +
                   *    {@link ng.$rootScope.Scope#methods_$eval $eval()} method.
         | 
| 21573 21602 | 
             
                   * 2. Any exceptions from the execution of the expression are forwarded to the
         | 
| 21574 21603 | 
             
                   *    {@link ng.$exceptionHandler $exceptionHandler} service.
         | 
| 21575 | 
            -
                   * 3. The {@link ng.$rootScope.Scope | 
| 21576 | 
            -
                   *    expression was executed using the {@link ng.$rootScope.Scope | 
| 21604 | 
            +
                   * 3. The {@link ng.$rootScope.Scope#methods_$watch watch} listeners are fired immediately after the
         | 
| 21605 | 
            +
                   *    expression was executed using the {@link ng.$rootScope.Scope#methods_$digest $digest()} method.
         | 
| 21577 21606 | 
             
                   *
         | 
| 21578 21607 | 
             
                   *
         | 
| 21579 21608 | 
             
                   * @param {(string|function())=} exp An angular expression to be executed.
         | 
| @@ -21607,7 +21636,7 @@ function $RootScopeProvider(){ | |
| 21607 21636 | 
             
                   * @function
         | 
| 21608 21637 | 
             
                   *
         | 
| 21609 21638 | 
             
                   * @description
         | 
| 21610 | 
            -
                   * Listens on events of a given type. See {@link ng.$rootScope.Scope | 
| 21639 | 
            +
                   * Listens on events of a given type. See {@link ng.$rootScope.Scope#methods_$emit $emit} for
         | 
| 21611 21640 | 
             
                   * discussion of event life cycle.
         | 
| 21612 21641 | 
             
                   *
         | 
| 21613 21642 | 
             
                   * The event listener function format is: `function(event, args...)`. The `event` object
         | 
| @@ -21648,20 +21677,20 @@ function $RootScopeProvider(){ | |
| 21648 21677 | 
             
                   *
         | 
| 21649 21678 | 
             
                   * @description
         | 
| 21650 21679 | 
             
                   * Dispatches an event `name` upwards through the scope hierarchy notifying the
         | 
| 21651 | 
            -
                   * registered {@link ng.$rootScope.Scope | 
| 21680 | 
            +
                   * registered {@link ng.$rootScope.Scope#methods_$on} listeners.
         | 
| 21652 21681 | 
             
                   *
         | 
| 21653 21682 | 
             
                   * The event life cycle starts at the scope on which `$emit` was called. All
         | 
| 21654 | 
            -
                   * {@link ng.$rootScope.Scope | 
| 21683 | 
            +
                   * {@link ng.$rootScope.Scope#methods_$on listeners} listening for `name` event on this scope get
         | 
| 21655 21684 | 
             
                   * notified. Afterwards, the event traverses upwards toward the root scope and calls all
         | 
| 21656 21685 | 
             
                   * registered listeners along the way. The event will stop propagating if one of the listeners
         | 
| 21657 21686 | 
             
                   * cancels it.
         | 
| 21658 21687 | 
             
                   *
         | 
| 21659 | 
            -
                   * Any exception emitted from the {@link ng.$rootScope.Scope | 
| 21688 | 
            +
                   * Any exception emitted from the {@link ng.$rootScope.Scope#methods_$on listeners} will be passed
         | 
| 21660 21689 | 
             
                   * onto the {@link ng.$exceptionHandler $exceptionHandler} service.
         | 
| 21661 21690 | 
             
                   *
         | 
| 21662 21691 | 
             
                   * @param {string} name Event name to emit.
         | 
| 21663 21692 | 
             
                   * @param {...*} args Optional set of arguments which will be passed onto the event listeners.
         | 
| 21664 | 
            -
                   * @return {Object} Event object (see {@link ng.$rootScope.Scope | 
| 21693 | 
            +
                   * @return {Object} Event object (see {@link ng.$rootScope.Scope#methods_$on}).
         | 
| 21665 21694 | 
             
                   */
         | 
| 21666 21695 | 
             
                  $emit: function(name, args) {
         | 
| 21667 21696 | 
             
                    var empty = [],
         | 
| @@ -21717,19 +21746,19 @@ function $RootScopeProvider(){ | |
| 21717 21746 | 
             
                   *
         | 
| 21718 21747 | 
             
                   * @description
         | 
| 21719 21748 | 
             
                   * Dispatches an event `name` downwards to all child scopes (and their children) notifying the
         | 
| 21720 | 
            -
                   * registered {@link ng.$rootScope.Scope | 
| 21749 | 
            +
                   * registered {@link ng.$rootScope.Scope#methods_$on} listeners.
         | 
| 21721 21750 | 
             
                   *
         | 
| 21722 21751 | 
             
                   * The event life cycle starts at the scope on which `$broadcast` was called. All
         | 
| 21723 | 
            -
                   * {@link ng.$rootScope.Scope | 
| 21752 | 
            +
                   * {@link ng.$rootScope.Scope#methods_$on listeners} listening for `name` event on this scope get
         | 
| 21724 21753 | 
             
                   * notified. Afterwards, the event propagates to all direct and indirect scopes of the current
         | 
| 21725 21754 | 
             
                   * scope and calls all registered listeners along the way. The event cannot be canceled.
         | 
| 21726 21755 | 
             
                   *
         | 
| 21727 | 
            -
                   * Any exception emitted from the {@link ng.$rootScope.Scope | 
| 21756 | 
            +
                   * Any exception emitted from the {@link ng.$rootScope.Scope#methods_$on listeners} will be passed
         | 
| 21728 21757 | 
             
                   * onto the {@link ng.$exceptionHandler $exceptionHandler} service.
         | 
| 21729 21758 | 
             
                   *
         | 
| 21730 21759 | 
             
                   * @param {string} name Event name to broadcast.
         | 
| 21731 21760 | 
             
                   * @param {...*} args Optional set of arguments which will be passed onto the event listeners.
         | 
| 21732 | 
            -
                   * @return {Object} Event object, see {@link ng.$rootScope.Scope | 
| 21761 | 
            +
                   * @return {Object} Event object, see {@link ng.$rootScope.Scope#methods_$on}
         | 
| 21733 21762 | 
             
                   */
         | 
| 21734 21763 | 
             
                  $broadcast: function(name, args) {
         | 
| 21735 21764 | 
             
                    var target = this,
         | 
| @@ -24466,14 +24495,16 @@ var htmlAnchorDirective = valueFn({ | |
| 24466 24495 | 
             
                  element.append(document.createComment('IE fix'));
         | 
| 24467 24496 | 
             
                }
         | 
| 24468 24497 |  | 
| 24469 | 
            -
                 | 
| 24470 | 
            -
                   | 
| 24471 | 
            -
                     | 
| 24472 | 
            -
             | 
| 24473 | 
            -
                       | 
| 24474 | 
            -
             | 
| 24475 | 
            -
             | 
| 24476 | 
            -
             | 
| 24498 | 
            +
                if (!attr.href && !attr.name) {
         | 
| 24499 | 
            +
                  return function(scope, element) {
         | 
| 24500 | 
            +
                    element.on('click', function(event){
         | 
| 24501 | 
            +
                      // if we have no href url, then don't navigate anywhere.
         | 
| 24502 | 
            +
                      if (!element.attr('href')) {
         | 
| 24503 | 
            +
                        event.preventDefault();
         | 
| 24504 | 
            +
                      }
         | 
| 24505 | 
            +
                    });
         | 
| 24506 | 
            +
                  };
         | 
| 24507 | 
            +
                }
         | 
| 24477 24508 | 
             
              }
         | 
| 24478 24509 | 
             
            });
         | 
| 24479 24510 |  | 
| @@ -26654,7 +26685,6 @@ var CONSTANT_VALUE_REGEXP = /^(true|false|\d+)$/; | |
| 26654 26685 | 
             
                                 id="{{name}}"
         | 
| 26655 26686 | 
             
                                 name="favorite">
         | 
| 26656 26687 | 
             
                        </label>
         | 
| 26657 | 
            -
                      </span>
         | 
| 26658 26688 | 
             
                      <div>You chose {{my.favorite}}</div>
         | 
| 26659 26689 | 
             
                    </form>
         | 
| 26660 26690 | 
             
                  </doc:source>
         | 
| @@ -28045,13 +28075,14 @@ var ngIfDirective = ['$animate', function($animate) { | |
| 28045 28075 | 
             
             * @description
         | 
| 28046 28076 | 
             
             * Emitted every time the ngInclude content is reloaded.
         | 
| 28047 28077 | 
             
             */
         | 
| 28048 | 
            -
            var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$ | 
| 28049 | 
            -
                              function($http,   $templateCache,   $anchorScroll,   $ | 
| 28078 | 
            +
            var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$animate', '$sce',
         | 
| 28079 | 
            +
                              function($http,   $templateCache,   $anchorScroll,   $animate,   $sce) {
         | 
| 28050 28080 | 
             
              return {
         | 
| 28051 28081 | 
             
                restrict: 'ECA',
         | 
| 28052 28082 | 
             
                priority: 400,
         | 
| 28053 28083 | 
             
                terminal: true,
         | 
| 28054 28084 | 
             
                transclude: 'element',
         | 
| 28085 | 
            +
                controller: angular.noop,
         | 
| 28055 28086 | 
             
                compile: function(element, attr) {
         | 
| 28056 28087 | 
             
                  var srcExp = attr.ngInclude || attr.src,
         | 
| 28057 28088 | 
             
                      onloadExp = attr.onload || '',
         | 
| @@ -28085,6 +28116,7 @@ var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$compile' | |
| 28085 28116 | 
             
                        $http.get(src, {cache: $templateCache}).success(function(response) {
         | 
| 28086 28117 | 
             
                          if (thisChangeId !== changeCounter) return;
         | 
| 28087 28118 | 
             
                          var newScope = scope.$new();
         | 
| 28119 | 
            +
                          ctrl.template = response;
         | 
| 28088 28120 |  | 
| 28089 28121 | 
             
                          // Note: This will also link all children of ng-include that were contained in the original
         | 
| 28090 28122 | 
             
                          // html. If that content contains controllers, ... they could pollute/change the scope.
         | 
| @@ -28092,15 +28124,14 @@ var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$compile' | |
| 28092 28124 | 
             
                          // Note: We can't remove them in the cloneAttchFn of $transclude as that
         | 
| 28093 28125 | 
             
                          // function is called before linking the content, which would apply child
         | 
| 28094 28126 | 
             
                          // directives to non existing elements.
         | 
| 28095 | 
            -
                          var clone = $transclude(newScope,  | 
| 28096 | 
            -
             | 
| 28127 | 
            +
                          var clone = $transclude(newScope, function(clone) {
         | 
| 28128 | 
            +
                            cleanupLastIncludeContent();
         | 
| 28129 | 
            +
                            $animate.enter(clone, null, $element, afterAnimation);
         | 
| 28130 | 
            +
                          });
         | 
| 28097 28131 |  | 
| 28098 28132 | 
             
                          currentScope = newScope;
         | 
| 28099 28133 | 
             
                          currentElement = clone;
         | 
| 28100 28134 |  | 
| 28101 | 
            -
                          currentElement.html(response);
         | 
| 28102 | 
            -
                          $animate.enter(currentElement, null, $element, afterAnimation);
         | 
| 28103 | 
            -
                          $compile(currentElement.contents())(currentScope);
         | 
| 28104 28135 | 
             
                          currentScope.$emit('$includeContentLoaded');
         | 
| 28105 28136 | 
             
                          scope.$eval(onloadExp);
         | 
| 28106 28137 | 
             
                        }).error(function() {
         | 
| @@ -28109,6 +28140,7 @@ var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$compile' | |
| 28109 28140 | 
             
                        scope.$emit('$includeContentRequested');
         | 
| 28110 28141 | 
             
                      } else {
         | 
| 28111 28142 | 
             
                        cleanupLastIncludeContent();
         | 
| 28143 | 
            +
                        ctrl.template = null;
         | 
| 28112 28144 | 
             
                      }
         | 
| 28113 28145 | 
             
                    });
         | 
| 28114 28146 | 
             
                  };
         | 
| @@ -28116,6 +28148,24 @@ var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$compile' | |
| 28116 28148 | 
             
              };
         | 
| 28117 28149 | 
             
            }];
         | 
| 28118 28150 |  | 
| 28151 | 
            +
            // This directive is called during the $transclude call of the first `ngInclude` directive.
         | 
| 28152 | 
            +
            // It will replace and compile the content of the element with the loaded template.
         | 
| 28153 | 
            +
            // We need this directive so that the element content is already filled when
         | 
| 28154 | 
            +
            // the link function of another directive on the same element as ngInclude
         | 
| 28155 | 
            +
            // is called.
         | 
| 28156 | 
            +
            var ngIncludeFillContentDirective = ['$compile',
         | 
| 28157 | 
            +
              function($compile) {
         | 
| 28158 | 
            +
                return {
         | 
| 28159 | 
            +
                  restrict: 'ECA',
         | 
| 28160 | 
            +
                  priority: -400,
         | 
| 28161 | 
            +
                  require: 'ngInclude',
         | 
| 28162 | 
            +
                  link: function(scope, $element, $attr, ctrl) {
         | 
| 28163 | 
            +
                    $element.html(ctrl.template);
         | 
| 28164 | 
            +
                    $compile($element.contents())(scope);
         | 
| 28165 | 
            +
                  }
         | 
| 28166 | 
            +
                };
         | 
| 28167 | 
            +
              }];
         | 
| 28168 | 
            +
             | 
| 28119 28169 | 
             
            /**
         | 
| 28120 28170 | 
             
             * @ngdoc directive
         | 
| 28121 28171 | 
             
             * @name ng.directive:ngInit
         | 
| @@ -29162,19 +29212,26 @@ var ngStyleDirective = ngDirective(function(scope, element, attr) { | |
| 29162 29212 | 
             
             * @restrict EA
         | 
| 29163 29213 | 
             
             *
         | 
| 29164 29214 | 
             
             * @description
         | 
| 29165 | 
            -
             * The ngSwitch directive is used to conditionally swap DOM structure on your template based on a scope expression.
         | 
| 29166 | 
            -
             * Elements within ngSwitch but without ngSwitchWhen or ngSwitchDefault directives will be preserved at the location
         | 
| 29215 | 
            +
             * The `ngSwitch` directive is used to conditionally swap DOM structure on your template based on a scope expression.
         | 
| 29216 | 
            +
             * Elements within `ngSwitch` but without `ngSwitchWhen` or `ngSwitchDefault` directives will be preserved at the location
         | 
| 29167 29217 | 
             
             * as specified in the template.
         | 
| 29168 29218 | 
             
             *
         | 
| 29169 29219 | 
             
             * The directive itself works similar to ngInclude, however, instead of downloading template code (or loading it
         | 
| 29170 | 
            -
             * from the template cache), ngSwitch simply choses one of the nested elements and makes it visible based on which element
         | 
| 29220 | 
            +
             * from the template cache), `ngSwitch` simply choses one of the nested elements and makes it visible based on which element
         | 
| 29171 29221 | 
             
             * matches the value obtained from the evaluated expression. In other words, you define a container element
         | 
| 29172 | 
            -
             * (where you place the directive), place an expression on the  | 
| 29173 | 
            -
             * (or the  | 
| 29222 | 
            +
             * (where you place the directive), place an expression on the **`on="..."` attribute**
         | 
| 29223 | 
            +
             * (or the **`ng-switch="..."` attribute**), define any inner elements inside of the directive and place
         | 
| 29174 29224 | 
             
             * a when attribute per element. The when attribute is used to inform ngSwitch which element to display when the on
         | 
| 29175 29225 | 
             
             * expression is evaluated. If a matching expression is not found via a when attribute then an element with the default
         | 
| 29176 29226 | 
             
             * attribute is displayed.
         | 
| 29177 29227 | 
             
             *
         | 
| 29228 | 
            +
             * <div class="alert alert-info">
         | 
| 29229 | 
            +
             * Be aware that the attribute values to match against cannot be expressions. They are interpreted
         | 
| 29230 | 
            +
             * as literal string values to match against.
         | 
| 29231 | 
            +
             * For example, **`ng-switch-when="someVal"`** will match against the string `"someVal"` not against the
         | 
| 29232 | 
            +
             * value of the expression `$scope.someVal`.
         | 
| 29233 | 
            +
             * </div>
         | 
| 29234 | 
            +
             | 
| 29178 29235 | 
             
             * @animations
         | 
| 29179 29236 | 
             
             * enter - happens after the ngSwitch contents change and the matched child element is placed inside the container
         | 
| 29180 29237 | 
             
             * leave - happens just after the ngSwitch contents change and just before the former contents are removed from the DOM
         | 
| @@ -29186,6 +29243,7 @@ var ngStyleDirective = ngDirective(function(scope, element, attr) { | |
| 29186 29243 | 
             
             *   <ANY ng-switch-default>...</ANY>
         | 
| 29187 29244 | 
             
             * </ANY>
         | 
| 29188 29245 | 
             
             *
         | 
| 29246 | 
            +
             *
         | 
| 29189 29247 | 
             
             * @scope
         | 
| 29190 29248 | 
             
             * @priority 800
         | 
| 29191 29249 | 
             
             * @param {*} ngSwitch|on expression to match against <tt>ng-switch-when</tt>.
         | 
| @@ -29403,7 +29461,7 @@ var ngTranscludeDirective = ngDirective({ | |
| 29403 29461 |  | 
| 29404 29462 | 
             
              link: function($scope, $element, $attrs, controller) {
         | 
| 29405 29463 | 
             
                controller.$transclude(function(clone) {
         | 
| 29406 | 
            -
                  $element. | 
| 29464 | 
            +
                  $element.empty();
         | 
| 29407 29465 | 
             
                  $element.append(clone);
         | 
| 29408 29466 | 
             
                });
         | 
| 29409 29467 | 
             
              }
         | 
| @@ -29787,13 +29845,13 @@ var selectDirective = ['$compile', '$parse', function($compile,   $parse) { | |
| 29787 29845 | 
             
                      // becomes the compilation root
         | 
| 29788 29846 | 
             
                      nullOption.removeClass('ng-scope');
         | 
| 29789 29847 |  | 
| 29790 | 
            -
                      // we need to remove it before calling selectElement. | 
| 29848 | 
            +
                      // we need to remove it before calling selectElement.empty() because otherwise IE will
         | 
| 29791 29849 | 
             
                      // remove the label from the element. wtf?
         | 
| 29792 29850 | 
             
                      nullOption.remove();
         | 
| 29793 29851 | 
             
                    }
         | 
| 29794 29852 |  | 
| 29795 29853 | 
             
                    // clear contents, we'll add what's needed based on the model
         | 
| 29796 | 
            -
                    selectElement. | 
| 29854 | 
            +
                    selectElement.empty();
         | 
| 29797 29855 |  | 
| 29798 29856 | 
             
                    selectElement.on('change', function() {
         | 
| 29799 29857 | 
             
                      scope.$apply(function() {
         |