rails-angularjs 1.4.0 → 1.4.1

Sign up to get free protection for your applications and to get access to all the features.
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.