rails-angularjs 1.4.0 → 1.4.1

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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/rails-angularjs/version.rb +1 -1
  4. data/vendor/assets/javascripts/angular-animate.js +4 -3
  5. data/vendor/assets/javascripts/angular-animate.min.js +1 -1
  6. data/vendor/assets/javascripts/angular-animate.min.js.map +1 -1
  7. data/vendor/assets/javascripts/angular-aria.js +20 -11
  8. data/vendor/assets/javascripts/angular-aria.min.js +8 -8
  9. data/vendor/assets/javascripts/angular-aria.min.js.map +2 -2
  10. data/vendor/assets/javascripts/angular-cookies.js +2 -2
  11. data/vendor/assets/javascripts/angular-cookies.min.js +1 -1
  12. data/vendor/assets/javascripts/angular-loader.js +23 -10
  13. data/vendor/assets/javascripts/angular-loader.min.js +4 -4
  14. data/vendor/assets/javascripts/angular-loader.min.js.map +2 -2
  15. data/vendor/assets/javascripts/angular-message-format.js +1 -1
  16. data/vendor/assets/javascripts/angular-message-format.min.js +1 -1
  17. data/vendor/assets/javascripts/angular-messages.js +3 -3
  18. data/vendor/assets/javascripts/angular-messages.min.js +1 -1
  19. data/vendor/assets/javascripts/angular-mocks.js +2 -2
  20. data/vendor/assets/javascripts/angular-resource.js +1 -1
  21. data/vendor/assets/javascripts/angular-resource.min.js +1 -1
  22. data/vendor/assets/javascripts/angular-route.js +1 -1
  23. data/vendor/assets/javascripts/angular-route.min.js +1 -1
  24. data/vendor/assets/javascripts/angular-sanitize.js +4 -4
  25. data/vendor/assets/javascripts/angular-sanitize.min.js +4 -4
  26. data/vendor/assets/javascripts/angular-sanitize.min.js.map +1 -1
  27. data/vendor/assets/javascripts/angular-scenario.js +271 -110
  28. data/vendor/assets/javascripts/angular-touch.js +1 -1
  29. data/vendor/assets/javascripts/angular-touch.min.js +1 -1
  30. data/vendor/assets/javascripts/angular.js +271 -110
  31. data/vendor/assets/javascripts/angular.min.js +284 -283
  32. data/vendor/assets/javascripts/angular.min.js.map +3 -3
  33. metadata +2 -2
@@ -2,7 +2,7 @@
2
2
  "version":3,
3
3
  "file":"angular-sanitize.min.js",
4
4
  "lineCount":15,
5
- "mappings":"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",
5
+ "mappings":"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",
6
6
  "sources":["angular-sanitize.js"],
7
7
  "names":["window","angular","undefined","sanitizeText","chars","buf","htmlSanitizeWriter","writer","noop","join","makeMap","str","lowercaseKeys","obj","items","split","i","length","lowercase","htmlParser","html","handler","parseStartTag","tag","tagName","rest","unary","blockElements","stack","last","inlineElements","parseEndTag","optionalEndTagElements","voidElements","push","attrs","replace","ATTR_REGEXP","match","name","doubleQuotedValue","singleQuotedValue","unquotedValue","decodeEntities","start","pos","end","index","text","stack.last","specialElements","RegExp","all","COMMENT_REGEXP","CDATA_REGEXP","indexOf","lastIndexOf","comment","substring","DOCTYPE_REGEXP","test","BEGING_END_TAGE_REGEXP","END_TAG_REGEXP","BEGIN_TAG_REGEXP","START_TAG_REGEXP","$sanitizeMinErr","value","hiddenPre","innerHTML","textContent","encodeEntities","SURROGATE_PAIR_REGEXP","hi","charCodeAt","low","NON_ALPHANUMERIC_REGEXP","uriValidator","ignore","out","bind","validElements","forEach","key","lkey","isImage","validAttrs","uriAttrs","$$minErr","optionalEndTagBlockElements","optionalEndTagInlineElements","extend","svgElements","htmlAttrs","svgAttrs","document","createElement","module","provider","$SanitizeProvider","$get","$$sanitizeUri","uri","filter","$sanitize","LINKY_URL_REGEXP","MAILTO_REGEXP","target","addText","addLink","url","isDefined","raw","substr"]
8
8
  }
@@ -9190,7 +9190,7 @@ return jQuery;
9190
9190
  }));
9191
9191
 
9192
9192
  /**
9193
- * @license AngularJS v1.4.0
9193
+ * @license AngularJS v1.4.1
9194
9194
  * (c) 2010-2015 Google, Inc. http://angularjs.org
9195
9195
  * License: MIT
9196
9196
  */
@@ -9249,7 +9249,7 @@ function minErr(module, ErrorConstructor) {
9249
9249
  return match;
9250
9250
  });
9251
9251
 
9252
- message += '\nhttp://errors.angularjs.org/1.4.0/' +
9252
+ message += '\nhttp://errors.angularjs.org/1.4.1/' +
9253
9253
  (module ? module + '/' : '') + code;
9254
9254
 
9255
9255
  for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') {
@@ -10056,9 +10056,18 @@ function copy(source, destination, stackSource, stackDest) {
10056
10056
 
10057
10057
  if (!destination) {
10058
10058
  destination = source;
10059
- if (source) {
10059
+ if (isObject(source)) {
10060
+ var index;
10061
+ if (stackSource && (index = stackSource.indexOf(source)) !== -1) {
10062
+ return stackDest[index];
10063
+ }
10064
+
10065
+ // TypedArray, Date and RegExp have specific copy functionality and must be
10066
+ // pushed onto the stack before returning.
10067
+ // Array and other objects create the base object and recurse to copy child
10068
+ // objects. The array/object will be pushed onto the stack when recursed.
10060
10069
  if (isArray(source)) {
10061
- destination = copy(source, [], stackSource, stackDest);
10070
+ return copy(source, [], stackSource, stackDest);
10062
10071
  } else if (isTypedArray(source)) {
10063
10072
  destination = new source.constructor(source);
10064
10073
  } else if (isDate(source)) {
@@ -10066,9 +10075,14 @@ function copy(source, destination, stackSource, stackDest) {
10066
10075
  } else if (isRegExp(source)) {
10067
10076
  destination = new RegExp(source.source, source.toString().match(/[^\/]*$/)[0]);
10068
10077
  destination.lastIndex = source.lastIndex;
10069
- } else if (isObject(source)) {
10078
+ } else {
10070
10079
  var emptyObject = Object.create(getPrototypeOf(source));
10071
- destination = copy(source, emptyObject, stackSource, stackDest);
10080
+ return copy(source, emptyObject, stackSource, stackDest);
10081
+ }
10082
+
10083
+ if (stackDest) {
10084
+ stackSource.push(source);
10085
+ stackDest.push(destination);
10072
10086
  }
10073
10087
  }
10074
10088
  } else {
@@ -10079,9 +10093,6 @@ function copy(source, destination, stackSource, stackDest) {
10079
10093
  stackDest = stackDest || [];
10080
10094
 
10081
10095
  if (isObject(source)) {
10082
- var index = stackSource.indexOf(source);
10083
- if (index !== -1) return stackDest[index];
10084
-
10085
10096
  stackSource.push(source);
10086
10097
  stackDest.push(destination);
10087
10098
  }
@@ -10090,12 +10101,7 @@ function copy(source, destination, stackSource, stackDest) {
10090
10101
  if (isArray(source)) {
10091
10102
  destination.length = 0;
10092
10103
  for (var i = 0; i < source.length; i++) {
10093
- result = copy(source[i], null, stackSource, stackDest);
10094
- if (isObject(source[i])) {
10095
- stackSource.push(source[i]);
10096
- stackDest.push(result);
10097
- }
10098
- destination.push(result);
10104
+ destination.push(copy(source[i], null, stackSource, stackDest));
10099
10105
  }
10100
10106
  } else {
10101
10107
  var h = destination.$$hashKey;
@@ -10109,20 +10115,20 @@ function copy(source, destination, stackSource, stackDest) {
10109
10115
  if (isBlankObject(source)) {
10110
10116
  // createMap() fast path --- Safe to avoid hasOwnProperty check because prototype chain is empty
10111
10117
  for (key in source) {
10112
- putValue(key, source[key], destination, stackSource, stackDest);
10118
+ destination[key] = copy(source[key], null, stackSource, stackDest);
10113
10119
  }
10114
10120
  } else if (source && typeof source.hasOwnProperty === 'function') {
10115
10121
  // Slow path, which must rely on hasOwnProperty
10116
10122
  for (key in source) {
10117
10123
  if (source.hasOwnProperty(key)) {
10118
- putValue(key, source[key], destination, stackSource, stackDest);
10124
+ destination[key] = copy(source[key], null, stackSource, stackDest);
10119
10125
  }
10120
10126
  }
10121
10127
  } else {
10122
10128
  // Slowest path --- hasOwnProperty can't be called as a method
10123
10129
  for (key in source) {
10124
10130
  if (hasOwnProperty.call(source, key)) {
10125
- putValue(key, source[key], destination, stackSource, stackDest);
10131
+ destination[key] = copy(source[key], null, stackSource, stackDest);
10126
10132
  }
10127
10133
  }
10128
10134
  }
@@ -10130,16 +10136,6 @@ function copy(source, destination, stackSource, stackDest) {
10130
10136
  }
10131
10137
  }
10132
10138
  return destination;
10133
-
10134
- function putValue(key, val, destination, stackSource, stackDest) {
10135
- // No context allocation, trivial outer scope, easily inlined
10136
- var result = copy(val, null, stackSource, stackDest);
10137
- if (isObject(val)) {
10138
- stackSource.push(val);
10139
- stackDest.push(result);
10140
- }
10141
- destination[key] = result;
10142
- }
10143
10139
  }
10144
10140
 
10145
10141
  /**
@@ -11197,7 +11193,7 @@ function setupModuleLoader(window) {
11197
11193
  * @description
11198
11194
  * See {@link auto.$provide#provider $provide.provider()}.
11199
11195
  */
11200
- provider: invokeLater('$provide', 'provider'),
11196
+ provider: invokeLaterAndSetModuleName('$provide', 'provider'),
11201
11197
 
11202
11198
  /**
11203
11199
  * @ngdoc method
@@ -11208,7 +11204,7 @@ function setupModuleLoader(window) {
11208
11204
  * @description
11209
11205
  * See {@link auto.$provide#factory $provide.factory()}.
11210
11206
  */
11211
- factory: invokeLater('$provide', 'factory'),
11207
+ factory: invokeLaterAndSetModuleName('$provide', 'factory'),
11212
11208
 
11213
11209
  /**
11214
11210
  * @ngdoc method
@@ -11219,7 +11215,7 @@ function setupModuleLoader(window) {
11219
11215
  * @description
11220
11216
  * See {@link auto.$provide#service $provide.service()}.
11221
11217
  */
11222
- service: invokeLater('$provide', 'service'),
11218
+ service: invokeLaterAndSetModuleName('$provide', 'service'),
11223
11219
 
11224
11220
  /**
11225
11221
  * @ngdoc method
@@ -11254,7 +11250,7 @@ function setupModuleLoader(window) {
11254
11250
  * @description
11255
11251
  * See {@link auto.$provide#decorator $provide.decorator()}.
11256
11252
  */
11257
- decorator: invokeLater('$provide', 'decorator'),
11253
+ decorator: invokeLaterAndSetModuleName('$provide', 'decorator'),
11258
11254
 
11259
11255
  /**
11260
11256
  * @ngdoc method
@@ -11288,7 +11284,7 @@ function setupModuleLoader(window) {
11288
11284
  * See {@link ng.$animateProvider#register $animateProvider.register()} and
11289
11285
  * {@link ngAnimate ngAnimate module} for more information.
11290
11286
  */
11291
- animation: invokeLater('$animateProvider', 'register'),
11287
+ animation: invokeLaterAndSetModuleName('$animateProvider', 'register'),
11292
11288
 
11293
11289
  /**
11294
11290
  * @ngdoc method
@@ -11306,7 +11302,7 @@ function setupModuleLoader(window) {
11306
11302
  * (`myapp_subsection_filterx`).
11307
11303
  * </div>
11308
11304
  */
11309
- filter: invokeLater('$filterProvider', 'register'),
11305
+ filter: invokeLaterAndSetModuleName('$filterProvider', 'register'),
11310
11306
 
11311
11307
  /**
11312
11308
  * @ngdoc method
@@ -11318,7 +11314,7 @@ function setupModuleLoader(window) {
11318
11314
  * @description
11319
11315
  * See {@link ng.$controllerProvider#register $controllerProvider.register()}.
11320
11316
  */
11321
- controller: invokeLater('$controllerProvider', 'register'),
11317
+ controller: invokeLaterAndSetModuleName('$controllerProvider', 'register'),
11322
11318
 
11323
11319
  /**
11324
11320
  * @ngdoc method
@@ -11331,7 +11327,7 @@ function setupModuleLoader(window) {
11331
11327
  * @description
11332
11328
  * See {@link ng.$compileProvider#directive $compileProvider.directive()}.
11333
11329
  */
11334
- directive: invokeLater('$compileProvider', 'directive'),
11330
+ directive: invokeLaterAndSetModuleName('$compileProvider', 'directive'),
11335
11331
 
11336
11332
  /**
11337
11333
  * @ngdoc method
@@ -11381,6 +11377,19 @@ function setupModuleLoader(window) {
11381
11377
  return moduleInstance;
11382
11378
  };
11383
11379
  }
11380
+
11381
+ /**
11382
+ * @param {string} provider
11383
+ * @param {string} method
11384
+ * @returns {angular.Module}
11385
+ */
11386
+ function invokeLaterAndSetModuleName(provider, method) {
11387
+ return function(recipeName, factoryFunction) {
11388
+ if (factoryFunction && isFunction(factoryFunction)) factoryFunction.$$moduleName = name;
11389
+ invokeQueue.push([provider, method, arguments]);
11390
+ return moduleInstance;
11391
+ };
11392
+ }
11384
11393
  });
11385
11394
  };
11386
11395
  });
@@ -11524,11 +11533,11 @@ function toDebugString(obj) {
11524
11533
  * - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
11525
11534
  */
11526
11535
  var version = {
11527
- full: '1.4.0', // all of these placeholder strings will be replaced by grunt's
11536
+ full: '1.4.1', // all of these placeholder strings will be replaced by grunt's
11528
11537
  major: 1, // package task
11529
11538
  minor: 4,
11530
- dot: 0,
11531
- codeName: 'jaracimrman-existence'
11539
+ dot: 1,
11540
+ codeName: 'hyperionic-illumination'
11532
11541
  };
11533
11542
 
11534
11543
 
@@ -11854,6 +11863,13 @@ function jqLiteAcceptsData(node) {
11854
11863
  return nodeType === NODE_TYPE_ELEMENT || !nodeType || nodeType === NODE_TYPE_DOCUMENT;
11855
11864
  }
11856
11865
 
11866
+ function jqLiteHasData(node) {
11867
+ for (var key in jqCache[node.ng339]) {
11868
+ return true;
11869
+ }
11870
+ return false;
11871
+ }
11872
+
11857
11873
  function jqLiteBuildFragment(html, context) {
11858
11874
  var tmp, tag, wrap,
11859
11875
  fragment = context.createDocumentFragment(),
@@ -12228,7 +12244,8 @@ function getAliasedAttrName(element, name) {
12228
12244
 
12229
12245
  forEach({
12230
12246
  data: jqLiteData,
12231
- removeData: jqLiteRemoveData
12247
+ removeData: jqLiteRemoveData,
12248
+ hasData: jqLiteHasData
12232
12249
  }, function(fn, name) {
12233
12250
  JQLite[name] = fn;
12234
12251
  });
@@ -13437,7 +13454,7 @@ function createInjector(modulesToLoad, strictDi) {
13437
13454
  }));
13438
13455
 
13439
13456
 
13440
- forEach(loadModules(modulesToLoad), function(fn) { instanceInjector.invoke(fn || noop); });
13457
+ forEach(loadModules(modulesToLoad), function(fn) { if (fn) instanceInjector.invoke(fn); });
13441
13458
 
13442
13459
  return instanceInjector;
13443
13460
 
@@ -14660,7 +14677,7 @@ function Browser(window, document, $log, $sniffer) {
14660
14677
  // Do the assignment again so that those two variables are referentially identical.
14661
14678
  lastHistoryState = cachedState;
14662
14679
  } else {
14663
- if (!sameBase) {
14680
+ if (!sameBase || reloadLocation) {
14664
14681
  reloadLocation = url;
14665
14682
  }
14666
14683
  if (replace) {
@@ -15666,13 +15683,16 @@ function $TemplateCacheProvider() {
15666
15683
  * * `controller` - the directive's required controller instance(s) - Instances are shared
15667
15684
  * among all directives, which allows the directives to use the controllers as a communication
15668
15685
  * channel. The exact value depends on the directive's `require` property:
15686
+ * * no controller(s) required: the directive's own controller, or `undefined` if it doesn't have one
15669
15687
  * * `string`: the controller instance
15670
15688
  * * `array`: array of controller instances
15671
- * * no controller(s) required: `undefined`
15672
15689
  *
15673
15690
  * If a required controller cannot be found, and it is optional, the instance is `null`,
15674
15691
  * otherwise the {@link error:$compile:ctreq Missing Required Controller} error is thrown.
15675
15692
  *
15693
+ * Note that you can also require the directive's own controller - it will be made available like
15694
+ * like any other controller.
15695
+ *
15676
15696
  * * `transcludeFn` - A transclude linking function pre-bound to the correct transclusion scope.
15677
15697
  * This is the same as the `$transclude`
15678
15698
  * parameter of directive controllers, see there for details.
@@ -16119,6 +16139,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
16119
16139
  if (isObject(bindings.isolateScope)) {
16120
16140
  directive.$$isolateBindings = bindings.isolateScope;
16121
16141
  }
16142
+ directive.$$moduleName = directiveFactory.$$moduleName;
16122
16143
  directives.push(directive);
16123
16144
  } catch (e) {
16124
16145
  $exceptionHandler(e);
@@ -16690,8 +16711,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
16690
16711
 
16691
16712
  if (nodeLinkFn.transcludeOnThisElement) {
16692
16713
  childBoundTranscludeFn = createBoundTranscludeFn(
16693
- scope, nodeLinkFn.transclude, parentBoundTranscludeFn,
16694
- nodeLinkFn.elementTranscludeOnThisElement);
16714
+ scope, nodeLinkFn.transclude, parentBoundTranscludeFn);
16695
16715
 
16696
16716
  } else if (!nodeLinkFn.templateOnThisElement && parentBoundTranscludeFn) {
16697
16717
  childBoundTranscludeFn = parentBoundTranscludeFn;
@@ -16713,7 +16733,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
16713
16733
  }
16714
16734
  }
16715
16735
 
16716
- function createBoundTranscludeFn(scope, transcludeFn, previousBoundTranscludeFn, elementTransclusion) {
16736
+ function createBoundTranscludeFn(scope, transcludeFn, previousBoundTranscludeFn) {
16717
16737
 
16718
16738
  var boundTranscludeFn = function(transcludedScope, cloneFn, controllers, futureParentElement, containingScope) {
16719
16739
 
@@ -16812,6 +16832,13 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
16812
16832
  }
16813
16833
  break;
16814
16834
  case NODE_TYPE_TEXT: /* Text Node */
16835
+ if (msie === 11) {
16836
+ // Workaround for #11781
16837
+ while (node.parentNode && node.nextSibling && node.nextSibling.nodeType === NODE_TYPE_TEXT) {
16838
+ node.nodeValue = node.nodeValue + node.nextSibling.nodeValue;
16839
+ node.parentNode.removeChild(node.nextSibling);
16840
+ }
16841
+ }
16815
16842
  addTextInterpolateDirective(directives, node.nodeValue);
16816
16843
  break;
16817
16844
  case NODE_TYPE_COMMENT: /* Comment */
@@ -17104,7 +17131,6 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
17104
17131
 
17105
17132
  nodeLinkFn.scope = newScopeDirective && newScopeDirective.scope === true;
17106
17133
  nodeLinkFn.transcludeOnThisElement = hasTranscludeDirective;
17107
- nodeLinkFn.elementTranscludeOnThisElement = hasElementTranscludeDirective;
17108
17134
  nodeLinkFn.templateOnThisElement = hasTemplate;
17109
17135
  nodeLinkFn.transclude = childTranscludeFn;
17110
17136
 
@@ -17265,9 +17291,12 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
17265
17291
  for (i in elementControllers) {
17266
17292
  controller = elementControllers[i];
17267
17293
  var controllerResult = controller();
17294
+
17268
17295
  if (controllerResult !== controller.instance) {
17296
+ // If the controller constructor has a return value, overwrite the instance
17297
+ // from setupControllers and update the element data
17269
17298
  controller.instance = controllerResult;
17270
- $element.data('$' + directive.name + 'Controller', controllerResult);
17299
+ $element.data('$' + i + 'Controller', controllerResult);
17271
17300
  if (controller === controllerForBindings) {
17272
17301
  // Remove and re-install bindToController bindings
17273
17302
  thisLinkFn.$$destroyBindings();
@@ -17567,11 +17596,18 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
17567
17596
  return a.index - b.index;
17568
17597
  }
17569
17598
 
17570
-
17571
17599
  function assertNoDuplicate(what, previousDirective, directive, element) {
17600
+
17601
+ function wrapModuleNameIfDefined(moduleName) {
17602
+ return moduleName ?
17603
+ (' (module: ' + moduleName + ')') :
17604
+ '';
17605
+ }
17606
+
17572
17607
  if (previousDirective) {
17573
- throw $compileMinErr('multidir', 'Multiple directives [{0}, {1}] asking for {2} on: {3}',
17574
- previousDirective.name, directive.name, what, startingTag(element));
17608
+ throw $compileMinErr('multidir', 'Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}',
17609
+ previousDirective.name, wrapModuleNameIfDefined(previousDirective.$$moduleName),
17610
+ directive.name, wrapModuleNameIfDefined(directive.$$moduleName), what, startingTag(element));
17575
17611
  }
17576
17612
  }
17577
17613
 
@@ -17752,26 +17788,28 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
17752
17788
  var fragment = document.createDocumentFragment();
17753
17789
  fragment.appendChild(firstElementToRemove);
17754
17790
 
17755
- // Copy over user data (that includes Angular's $scope etc.). Don't copy private
17756
- // data here because there's no public interface in jQuery to do that and copying over
17757
- // event listeners (which is the main use of private data) wouldn't work anyway.
17758
- jqLite(newNode).data(jqLite(firstElementToRemove).data());
17759
-
17760
- // Remove data of the replaced element. We cannot just call .remove()
17761
- // on the element it since that would deallocate scope that is needed
17762
- // for the new node. Instead, remove the data "manually".
17763
- if (!jQuery) {
17764
- delete jqLite.cache[firstElementToRemove[jqLite.expando]];
17765
- } else {
17766
- // jQuery 2.x doesn't expose the data storage. Use jQuery.cleanData to clean up after
17767
- // the replaced element. The cleanData version monkey-patched by Angular would cause
17768
- // the scope to be trashed and we do need the very same scope to work with the new
17769
- // element. However, we cannot just cache the non-patched version and use it here as
17770
- // that would break if another library patches the method after Angular does (one
17771
- // example is jQuery UI). Instead, set a flag indicating scope destroying should be
17772
- // skipped this one time.
17773
- skipDestroyOnNextJQueryCleanData = true;
17774
- jQuery.cleanData([firstElementToRemove]);
17791
+ if (jqLite.hasData(firstElementToRemove)) {
17792
+ // Copy over user data (that includes Angular's $scope etc.). Don't copy private
17793
+ // data here because there's no public interface in jQuery to do that and copying over
17794
+ // event listeners (which is the main use of private data) wouldn't work anyway.
17795
+ jqLite(newNode).data(jqLite(firstElementToRemove).data());
17796
+
17797
+ // Remove data of the replaced element. We cannot just call .remove()
17798
+ // on the element it since that would deallocate scope that is needed
17799
+ // for the new node. Instead, remove the data "manually".
17800
+ if (!jQuery) {
17801
+ delete jqLite.cache[firstElementToRemove[jqLite.expando]];
17802
+ } else {
17803
+ // jQuery 2.x doesn't expose the data storage. Use jQuery.cleanData to clean up after
17804
+ // the replaced element. The cleanData version monkey-patched by Angular would cause
17805
+ // the scope to be trashed and we do need the very same scope to work with the new
17806
+ // element. However, we cannot just cache the non-patched version and use it here as
17807
+ // that would break if another library patches the method after Angular does (one
17808
+ // example is jQuery UI). Instead, set a flag indicating scope destroying should be
17809
+ // skipped this one time.
17810
+ skipDestroyOnNextJQueryCleanData = true;
17811
+ jQuery.cleanData([firstElementToRemove]);
17812
+ }
17775
17813
  }
17776
17814
 
17777
17815
  for (var k = 1, kk = elementsToRemove.length; k < kk; k++) {
@@ -17812,9 +17850,19 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
17812
17850
  lastValue,
17813
17851
  parentGet, parentSet, compare;
17814
17852
 
17853
+ if (!hasOwnProperty.call(attrs, attrName)) {
17854
+ // In the case of user defined a binding with the same name as a method in Object.prototype but didn't set
17855
+ // the corresponding attribute. We need to make sure subsequent code won't access to the prototype function
17856
+ attrs[attrName] = undefined;
17857
+ }
17858
+
17815
17859
  switch (mode) {
17816
17860
 
17817
17861
  case '@':
17862
+ if (!attrs[attrName] && !optional) {
17863
+ destination[scopeName] = undefined;
17864
+ }
17865
+
17818
17866
  attrs.$observe(attrName, function(value) {
17819
17867
  destination[scopeName] = value;
17820
17868
  });
@@ -17831,6 +17879,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
17831
17879
  return;
17832
17880
  }
17833
17881
  parentGet = $parse(attrs[attrName]);
17882
+
17834
17883
  if (parentGet.literal) {
17835
17884
  compare = equals;
17836
17885
  } else {
@@ -17869,9 +17918,6 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
17869
17918
  break;
17870
17919
 
17871
17920
  case '&':
17872
- // Don't assign Object.prototype method to scope
17873
- if (!attrs.hasOwnProperty(attrName) && optional) break;
17874
-
17875
17921
  parentGet = $parse(attrs[attrName]);
17876
17922
 
17877
17923
  // Don't assign noop to destination if expression is not valid
@@ -18272,13 +18318,17 @@ function $HttpParamSerializerProvider() {
18272
18318
  * @name $httpParamSerializer
18273
18319
  * @description
18274
18320
  *
18275
- * Default $http params serializer that converts objects to a part of a request URL
18321
+ * Default {@link $http `$http`} params serializer that converts objects to strings
18276
18322
  * according to the following rules:
18323
+ *
18277
18324
  * * `{'foo': 'bar'}` results in `foo=bar`
18278
18325
  * * `{'foo': Date.now()}` results in `foo=2015-04-01T09%3A50%3A49.262Z` (`toISOString()` and encoded representation of a Date object)
18279
18326
  * * `{'foo': ['bar', 'baz']}` results in `foo=bar&foo=baz` (repeated key for each array element)
18280
18327
  * * `{'foo': {'bar':'baz'}}` results in `foo=%7B%22bar%22%3A%22baz%22%7D"` (stringified and encoded representation of an object)
18328
+ *
18329
+ * Note that serializer will sort the request parameters alphabetically.
18281
18330
  * */
18331
+
18282
18332
  this.$get = function() {
18283
18333
  return function ngParamSerializer(params) {
18284
18334
  if (!params) return '';
@@ -18305,7 +18355,43 @@ function $HttpParamSerializerJQLikeProvider() {
18305
18355
  * @name $httpParamSerializerJQLike
18306
18356
  * @description
18307
18357
  *
18308
- * Alternative $http params serializer that follows jQuery's [`param()`](http://api.jquery.com/jquery.param/) method logic.
18358
+ * Alternative {@link $http `$http`} params serializer that follows
18359
+ * jQuery's [`param()`](http://api.jquery.com/jquery.param/) method logic.
18360
+ * The serializer will also sort the params alphabetically.
18361
+ *
18362
+ * To use it for serializing `$http` request parameters, set it as the `paramSerializer` property:
18363
+ *
18364
+ * ```js
18365
+ * $http({
18366
+ * url: myUrl,
18367
+ * method: 'GET',
18368
+ * params: myParams,
18369
+ * paramSerializer: '$httpParamSerializerJQLike'
18370
+ * });
18371
+ * ```
18372
+ *
18373
+ * It is also possible to set it as the default `paramSerializer` in the
18374
+ * {@link $httpProvider#defaults `$httpProvider`}.
18375
+ *
18376
+ * Additionally, you can inject the serializer and use it explicitly, for example to serialize
18377
+ * form data for submission:
18378
+ *
18379
+ * ```js
18380
+ * .controller(function($http, $httpParamSerializerJQLike) {
18381
+ * //...
18382
+ *
18383
+ * $http({
18384
+ * url: myUrl,
18385
+ * method: 'POST',
18386
+ * data: $httpParamSerializerJQLike(myData),
18387
+ * headers: {
18388
+ * 'Content-Type': 'application/x-www-form-urlencoded'
18389
+ * }
18390
+ * });
18391
+ *
18392
+ * });
18393
+ * ```
18394
+ *
18309
18395
  * */
18310
18396
  this.$get = function() {
18311
18397
  return function jQueryLikeParamSerializer(params) {
@@ -18479,10 +18565,11 @@ function $HttpProvider() {
18479
18565
  * - **`defaults.headers.put`**
18480
18566
  * - **`defaults.headers.patch`**
18481
18567
  *
18482
- * - **`defaults.paramSerializer`** - {string|function(Object<string,string>):string} - A function used to prepare string representation
18483
- * of request parameters (specified as an object).
18484
- * If specified as string, it is interpreted as a function registered with the {@link auto.$injector $injector}.
18485
- * Defaults to {@link ng.$httpParamSerializer $httpParamSerializer}.
18568
+ *
18569
+ * - **`defaults.paramSerializer`** - `{string|function(Object<string,string>):string}` - A function
18570
+ * used to the prepare string representation of request parameters (specified as an object).
18571
+ * If specified as string, it is interpreted as a function registered with the {@link auto.$injector $injector}.
18572
+ * Defaults to {@link ng.$httpParamSerializer $httpParamSerializer}.
18486
18573
  *
18487
18574
  **/
18488
18575
  var defaults = this.defaults = {
@@ -18948,15 +19035,17 @@ function $HttpProvider() {
18948
19035
  * properties of either $httpProvider.defaults at config-time, $http.defaults at run-time,
18949
19036
  * or the per-request config object.
18950
19037
  *
19038
+ * In order to prevent collisions in environments where multiple Angular apps share the
19039
+ * same domain or subdomain, we recommend that each application uses unique cookie name.
19040
+ *
18951
19041
  *
18952
19042
  * @param {object} config Object describing the request to be made and how it should be
18953
19043
  * processed. The object has following properties:
18954
19044
  *
18955
19045
  * - **method** – `{string}` – HTTP method (e.g. 'GET', 'POST', etc)
18956
19046
  * - **url** – `{string}` – Absolute or relative URL of the resource that is being requested.
18957
- * - **params** – `{Object.<string|Object>}` – Map of strings or objects which will be turned
18958
- * to `?key1=value1&key2=value2` after the url. If the value is not a string, it will be
18959
- * JSONified.
19047
+ * - **params** – `{Object.<string|Object>}` – Map of strings or objects which will be serialized
19048
+ * with the `paramSerializer` and appended as GET parameters.
18960
19049
  * - **data** – `{string|Object}` – Data to be sent as the request message data.
18961
19050
  * - **headers** – `{Object}` – Map of strings or functions which return strings representing
18962
19051
  * HTTP headers to send to the server. If the return value of a function is null, the
@@ -18974,10 +19063,14 @@ function $HttpProvider() {
18974
19063
  * transform function or an array of such functions. The transform function takes the http
18975
19064
  * response body, headers and status and returns its transformed (typically deserialized) version.
18976
19065
  * See {@link ng.$http#overriding-the-default-transformations-per-request
18977
- * Overriding the Default Transformations}
18978
- * - **paramSerializer** - {string|function(Object<string,string>):string} - A function used to prepare string representation
18979
- * of request parameters (specified as an object).
18980
- * Is specified as string, it is interpreted as function registered in with the {$injector}.
19066
+ * Overriding the Default TransformationjqLiks}
19067
+ * - **paramSerializer** - `{string|function(Object<string,string>):string}` - A function used to
19068
+ * prepare the string representation of request parameters (specified as an object).
19069
+ * If specified as string, it is interpreted as function registered with the
19070
+ * {@link $injector $injector}, which means you can create your own serializer
19071
+ * by registering it as a {@link auto.$provide#service service}.
19072
+ * The default serializer is the {@link $httpParamSerializer $httpParamSerializer};
19073
+ * alternatively, you can use the {@link $httpParamSerializerJQLike $httpParamSerializerJQLike}
18981
19074
  * - **cache** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the
18982
19075
  * GET request, otherwise if a cache instance built with
18983
19076
  * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for
@@ -22405,8 +22498,10 @@ ASTCompiler.prototype = {
22405
22498
  nameId.name = ast.property.name;
22406
22499
  }
22407
22500
  }
22408
- recursionFn(intoId);
22501
+ }, function() {
22502
+ self.assign(intoId, 'undefined');
22409
22503
  });
22504
+ recursionFn(intoId);
22410
22505
  }, !!create);
22411
22506
  break;
22412
22507
  case AST.CallExpression:
@@ -22444,8 +22539,10 @@ ASTCompiler.prototype = {
22444
22539
  }
22445
22540
  expression = self.ensureSafeObject(expression);
22446
22541
  self.assign(intoId, expression);
22447
- recursionFn(intoId);
22542
+ }, function() {
22543
+ self.assign(intoId, 'undefined');
22448
22544
  });
22545
+ recursionFn(intoId);
22449
22546
  });
22450
22547
  }
22451
22548
  break;
@@ -23826,6 +23923,19 @@ function qFactory(nextTick, exceptionHandler) {
23826
23923
  return result.promise.then(callback, errback, progressBack);
23827
23924
  };
23828
23925
 
23926
+ /**
23927
+ * @ngdoc method
23928
+ * @name $q#resolve
23929
+ * @kind function
23930
+ *
23931
+ * @description
23932
+ * Alias of {@link ng.$q#when when} to maintain naming consistency with ES6.
23933
+ *
23934
+ * @param {*} value Value or a promise
23935
+ * @returns {Promise} Returns a promise of the passed value or promise
23936
+ */
23937
+ var resolve = when;
23938
+
23829
23939
  /**
23830
23940
  * @ngdoc method
23831
23941
  * @name $q#all
@@ -23894,6 +24004,7 @@ function qFactory(nextTick, exceptionHandler) {
23894
24004
  $Q.defer = defer;
23895
24005
  $Q.reject = reject;
23896
24006
  $Q.when = when;
24007
+ $Q.resolve = resolve;
23897
24008
  $Q.all = all;
23898
24009
 
23899
24010
  return $Q;
@@ -27203,9 +27314,11 @@ function $FilterProvider($provide) {
27203
27314
  * `{name: {first: 'John', last: 'Doe'}}` will **not** be matched by `{name: 'John'}`, but
27204
27315
  * **will** be matched by `{$: 'John'}`.
27205
27316
  *
27206
- * - `function(value, index)`: A predicate function can be used to write arbitrary filters. The
27207
- * function is called for each element of `array`. The final result is an array of those
27208
- * elements that the predicate returned true for.
27317
+ * - `function(value, index, array)`: A predicate function can be used to write arbitrary filters.
27318
+ * The function is called for each element of the array, with the element, its index, and
27319
+ * the entire array itself as arguments.
27320
+ *
27321
+ * The final result is an array of those elements that the predicate returned true for.
27209
27322
  *
27210
27323
  * @param {function(actual, expected)|true|undefined} comparator Comparator which is used in
27211
27324
  * determining if the expected value (from the filter expression) and actual value (from
@@ -27506,9 +27619,10 @@ function currencyFilter($locale) {
27506
27619
  * @description
27507
27620
  * Formats a number as text.
27508
27621
  *
27622
+ * If the input is null or undefined, it will just be returned.
27623
+ * If the input is infinite (Infinity/-Infinity) the Infinity symbol '∞' is returned.
27509
27624
  * If the input is not a number an empty string is returned.
27510
27625
  *
27511
- * If the input is an infinite (Infinity/-Infinity) the Infinity symbol '∞' is returned.
27512
27626
  *
27513
27627
  * @param {number|string} number Number to format.
27514
27628
  * @param {(number|string)=} fractionSize Number of decimal places to round the number to.
@@ -28137,7 +28251,7 @@ function limitToFilter() {
28137
28251
  * @description
28138
28252
  * Orders a specified `array` by the `expression` predicate. It is ordered alphabetically
28139
28253
  * for strings and numerically for numbers. Note: if you notice numbers are not being sorted
28140
- * correctly, make sure they are actually being saved as numbers and not strings.
28254
+ * as expected, make sure they are actually being saved as numbers and not strings.
28141
28255
  *
28142
28256
  * @param {Array} array The array to sort.
28143
28257
  * @param {function(*)|string|Array.<(function(*)|string)>=} expression A predicate to be
@@ -28212,19 +28326,40 @@ function limitToFilter() {
28212
28326
  {name:'Mike', phone:'555-4321', age:21},
28213
28327
  {name:'Adam', phone:'555-5678', age:35},
28214
28328
  {name:'Julie', phone:'555-8765', age:29}];
28215
- $scope.predicate = '-age';
28329
+ $scope.predicate = 'age';
28330
+ $scope.reverse = true;
28331
+ $scope.order = function(predicate) {
28332
+ $scope.reverse = ($scope.predicate === predicate) ? !$scope.reverse : false;
28333
+ $scope.predicate = predicate;
28334
+ };
28216
28335
  }]);
28217
28336
  </script>
28337
+ <style type="text/css">
28338
+ .sortorder:after {
28339
+ content: '\25b2';
28340
+ }
28341
+ .sortorder.reverse:after {
28342
+ content: '\25bc';
28343
+ }
28344
+ </style>
28218
28345
  <div ng-controller="ExampleController">
28219
28346
  <pre>Sorting predicate = {{predicate}}; reverse = {{reverse}}</pre>
28220
28347
  <hr/>
28221
28348
  [ <a href="" ng-click="predicate=''">unsorted</a> ]
28222
28349
  <table class="friend">
28223
28350
  <tr>
28224
- <th><a href="" ng-click="predicate = 'name'; reverse=false">Name</a>
28225
- (<a href="" ng-click="predicate = '-name'; reverse=false">^</a>)</th>
28226
- <th><a href="" ng-click="predicate = 'phone'; reverse=!reverse">Phone Number</a></th>
28227
- <th><a href="" ng-click="predicate = 'age'; reverse=!reverse">Age</a></th>
28351
+ <th>
28352
+ <a href="" ng-click="order('name')">Name</a>
28353
+ <span class="sortorder" ng-show="predicate === 'name'" ng-class="{reverse:reverse}"></span>
28354
+ </th>
28355
+ <th>
28356
+ <a href="" ng-click="order('phone')">Phone Number</a>
28357
+ <span class="sortorder" ng-show="predicate === 'phone'" ng-class="{reverse:reverse}"></span>
28358
+ </th>
28359
+ <th>
28360
+ <a href="" ng-click="order('age')">Age</a>
28361
+ <span class="sortorder" ng-show="predicate === 'age'" ng-class="{reverse:reverse}"></span>
28362
+ </th>
28228
28363
  </tr>
28229
28364
  <tr ng-repeat="friend in friends | orderBy:predicate:reverse">
28230
28365
  <td>{{friend.name}}</td>
@@ -29387,7 +29522,7 @@ var ngFormDirective = formDirectiveFactory(true);
29387
29522
  var ISO_DATE_REGEXP = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;
29388
29523
  var URL_REGEXP = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/;
29389
29524
  var EMAIL_REGEXP = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;
29390
- var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/;
29525
+ var NUMBER_REGEXP = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/;
29391
29526
  var DATE_REGEXP = /^(\d{4})-(\d{2})-(\d{2})$/;
29392
29527
  var DATETIMELOCAL_REGEXP = /^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/;
29393
29528
  var WEEK_REGEXP = /^(\d{4})-W(\d\d)$/;
@@ -29986,6 +30121,16 @@ var inputType = {
29986
30121
  * error docs for more information and an example of how to convert your model if necessary.
29987
30122
  * </div>
29988
30123
  *
30124
+ * ## Issues with HTML5 constraint validation
30125
+ *
30126
+ * In browsers that follow the
30127
+ * [HTML5 specification](https://html.spec.whatwg.org/multipage/forms.html#number-state-%28type=number%29),
30128
+ * `input[number]` does not work as expected with {@link ngModelOptions `ngModelOptions.allowInvalid`}.
30129
+ * If a non-number is entered in the input, the browser will report the value as an empty string,
30130
+ * which means the view / model values in `ngModel` and subsequently the scope value
30131
+ * will also be an empty string.
30132
+ *
30133
+ *
29989
30134
  * @param {string} ngModel Assignable angular expression to data-bind to.
29990
30135
  * @param {string=} name Property name of the form under which the control is published.
29991
30136
  * @param {string=} min Sets the `min` validation error key if the value entered is less than `min`.
@@ -31522,7 +31667,7 @@ function classDirective(name, selector) {
31522
31667
  * @example Example that demonstrates basic bindings via ngClass directive.
31523
31668
  <example>
31524
31669
  <file name="index.html">
31525
- <p ng-class="{strike: deleted, bold: important, red: error}">Map Syntax Example</p>
31670
+ <p ng-class="{strike: deleted, bold: important, 'has-error': error}">Map Syntax Example</p>
31526
31671
  <label>
31527
31672
  <input type="checkbox" ng-model="deleted">
31528
31673
  deleted (apply "strike" class)
@@ -31533,7 +31678,7 @@ function classDirective(name, selector) {
31533
31678
  </label><br>
31534
31679
  <label>
31535
31680
  <input type="checkbox" ng-model="error">
31536
- error (apply "red" class)
31681
+ error (apply "has-error" class)
31537
31682
  </label>
31538
31683
  <hr>
31539
31684
  <p ng-class="style">Using String Syntax</p>
@@ -31562,6 +31707,10 @@ function classDirective(name, selector) {
31562
31707
  .red {
31563
31708
  color: red;
31564
31709
  }
31710
+ .has-error {
31711
+ color: red;
31712
+ background-color: yellow;
31713
+ }
31565
31714
  .orange {
31566
31715
  color: orange;
31567
31716
  }
@@ -31572,13 +31721,13 @@ function classDirective(name, selector) {
31572
31721
  it('should let you toggle the class', function() {
31573
31722
 
31574
31723
  expect(ps.first().getAttribute('class')).not.toMatch(/bold/);
31575
- expect(ps.first().getAttribute('class')).not.toMatch(/red/);
31724
+ expect(ps.first().getAttribute('class')).not.toMatch(/has-error/);
31576
31725
 
31577
31726
  element(by.model('important')).click();
31578
31727
  expect(ps.first().getAttribute('class')).toMatch(/bold/);
31579
31728
 
31580
31729
  element(by.model('error')).click();
31581
- expect(ps.first().getAttribute('class')).toMatch(/red/);
31730
+ expect(ps.first().getAttribute('class')).toMatch(/has-error/);
31582
31731
  });
31583
31732
 
31584
31733
  it('should let you toggle string example', function() {
@@ -34412,7 +34561,7 @@ var DEFAULT_REGEXP = /(\s+|^)default(\s+|$)/;
34412
34561
  * - `debounce`: integer value which contains the debounce model update value in milliseconds. A
34413
34562
  * value of 0 triggers an immediate update. If an object is supplied instead, you can specify a
34414
34563
  * custom value for each event. For example:
34415
- * `ng-model-options="{ updateOn: 'default blur', debounce: {'default': 500, 'blur': 0} }"`
34564
+ * `ng-model-options="{ updateOn: 'default blur', debounce: { 'default': 500, 'blur': 0 } }"`
34416
34565
  * - `allowInvalid`: boolean value which indicates that the model can be set with values that did
34417
34566
  * not validate correctly instead of the default behavior of setting the model to undefined.
34418
34567
  * - `getterSetter`: boolean value which determines whether or not to treat functions bound to
@@ -34662,7 +34811,9 @@ function addSetValidityMethod(context) {
34662
34811
  function isObjectEmpty(obj) {
34663
34812
  if (obj) {
34664
34813
  for (var prop in obj) {
34665
- return false;
34814
+ if (obj.hasOwnProperty(prop)) {
34815
+ return false;
34816
+ }
34666
34817
  }
34667
34818
  }
34668
34819
  return true;
@@ -35005,6 +35156,7 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
35005
35156
  values = values || [];
35006
35157
 
35007
35158
  Object.keys(values).forEach(function getWatchable(key) {
35159
+ if (key.charAt(0) === '$') return;
35008
35160
  var locals = getLocals(values[key], key);
35009
35161
  var selectValue = getTrackByValueFn(values[key], locals);
35010
35162
  watchedArray.push(selectValue);
@@ -35408,8 +35560,7 @@ var ngOptionsDirective = ['$compile', '$parse', function($compile, $parse) {
35408
35560
  // Check to see if the value has changed due to the update to the options
35409
35561
  if (!ngModelCtrl.$isEmpty(previousValue)) {
35410
35562
  var nextValue = selectCtrl.readValue();
35411
- if (ngOptions.trackBy && !equals(previousValue, nextValue) ||
35412
- previousValue !== nextValue) {
35563
+ if (ngOptions.trackBy ? !equals(previousValue, nextValue) : previousValue !== nextValue) {
35413
35564
  ngModelCtrl.$setViewValue(nextValue);
35414
35565
  ngModelCtrl.$render();
35415
35566
  }
@@ -35757,6 +35908,15 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale,
35757
35908
  * </div>
35758
35909
  * ```
35759
35910
  *
35911
+ * <div class="alert alert-warning">
35912
+ * **Note:** `track by` must always be the last expression:
35913
+ * </div>
35914
+ * ```
35915
+ * <div ng-repeat="model in collection | orderBy: 'id' as filtered_result track by model.id">
35916
+ * {{model.name}}
35917
+ * </div>
35918
+ * ```
35919
+ *
35760
35920
  * # Special repeat start and end points
35761
35921
  * To repeat a series of elements instead of just one parent element, ngRepeat (as well as other ng directives) supports extending
35762
35922
  * the range of the repeater by defining explicit start and end points by using **ng-repeat-start** and **ng-repeat-end** respectively.
@@ -35828,8 +35988,9 @@ var ngPluralizeDirective = ['$locale', '$interpolate', '$log', function($locale,
35828
35988
  * which can be used to associate the objects in the collection with the DOM elements. If no tracking expression
35829
35989
  * is specified, ng-repeat associates elements by identity. It is an error to have
35830
35990
  * more than one tracking expression value resolve to the same key. (This would mean that two distinct objects are
35831
- * mapped to the same DOM element, which is not possible.) If filters are used in the expression, they should be
35832
- * applied before the tracking expression.
35991
+ * mapped to the same DOM element, which is not possible.)
35992
+ *
35993
+ * Note that the tracking expression must come last, after any filters, and the alias expression.
35833
35994
  *
35834
35995
  * For example: `item in items` is equivalent to `item in items track by $id(item)`. This implies that the DOM elements
35835
35996
  * will be associated by item identity in the array.