@angular/core 4.4.3 → 4.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import * as tslib_1 from "tslib";
2
2
  /**
3
- * @license Angular v4.4.3
3
+ * @license Angular v4.4.7
4
4
  * (c) 2010-2017 Google, Inc. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -796,7 +796,7 @@ var Version = (function () {
796
796
  /**
797
797
  * \@stable
798
798
  */
799
- var VERSION = new Version('4.4.3');
799
+ var VERSION = new Version('4.4.7');
800
800
  /**
801
801
  * @license
802
802
  * Copyright Google Inc. All Rights Reserved.
@@ -6216,7 +6216,6 @@ var EventListener = (function () {
6216
6216
  this.name = name;
6217
6217
  this.callback = callback;
6218
6218
  }
6219
- ;
6220
6219
  return EventListener;
6221
6220
  }());
6222
6221
  /**
@@ -8573,7 +8572,7 @@ function checkAndUpdateBinding(view, def, bindingIdx, value) {
8573
8572
  function checkBindingNoChanges(view, def, bindingIdx, value) {
8574
8573
  var /** @type {?} */ oldValue = view.oldValues[def.bindingIndex + bindingIdx];
8575
8574
  if ((view.state & 1 /* BeforeFirstCheck */) || !devModeEqual(oldValue, value)) {
8576
- throw expressionChangedAfterItHasBeenCheckedError(Services.createDebugContext(view, def.index), oldValue, value, (view.state & 1 /* BeforeFirstCheck */) !== 0);
8575
+ throw expressionChangedAfterItHasBeenCheckedError(Services.createDebugContext(view, def.nodeIndex), oldValue, value, (view.state & 1 /* BeforeFirstCheck */) !== 0);
8577
8576
  }
8578
8577
  }
8579
8578
  /**
@@ -8621,7 +8620,7 @@ function dispatchEvent(view, nodeIndex, eventName, event) {
8621
8620
  function declaredViewContainer(view) {
8622
8621
  if (view.parent) {
8623
8622
  var /** @type {?} */ parentView = view.parent;
8624
- return asElementData(parentView, /** @type {?} */ ((view.parentNodeDef)).index);
8623
+ return asElementData(parentView, /** @type {?} */ ((view.parentNodeDef)).nodeIndex);
8625
8624
  }
8626
8625
  return null;
8627
8626
  }
@@ -8649,9 +8648,9 @@ function viewParentEl(view) {
8649
8648
  function renderNode(view, def) {
8650
8649
  switch (def.flags & 201347067 /* Types */) {
8651
8650
  case 1 /* TypeElement */:
8652
- return asElementData(view, def.index).renderElement;
8651
+ return asElementData(view, def.nodeIndex).renderElement;
8653
8652
  case 2 /* TypeText */:
8654
- return asTextData(view, def.index).renderText;
8653
+ return asTextData(view, def.nodeIndex).renderText;
8655
8654
  }
8656
8655
  }
8657
8656
  /**
@@ -8738,7 +8737,7 @@ function getParentRenderElement(view, renderHost, def) {
8738
8737
  ViewEncapsulation.Native)) {
8739
8738
  // only children of non components, or children of components with native encapsulation should
8740
8739
  // be attached.
8741
- return asElementData(view, /** @type {?} */ ((def.renderParent)).index).renderElement;
8740
+ return asElementData(view, /** @type {?} */ ((def.renderParent)).nodeIndex).renderElement;
8742
8741
  }
8743
8742
  }
8744
8743
  else {
@@ -8820,8 +8819,8 @@ function visitProjectedRenderNodes(view, ngContentIndex, action, parentNode, nex
8820
8819
  }
8821
8820
  var /** @type {?} */ hostView = ((compView)).parent;
8822
8821
  var /** @type {?} */ hostElDef = viewParentEl(/** @type {?} */ ((compView)));
8823
- var /** @type {?} */ startIndex = ((hostElDef)).index + 1;
8824
- var /** @type {?} */ endIndex = ((hostElDef)).index + ((hostElDef)).childCount;
8822
+ var /** @type {?} */ startIndex = ((hostElDef)).nodeIndex + 1;
8823
+ var /** @type {?} */ endIndex = ((hostElDef)).nodeIndex + ((hostElDef)).childCount;
8825
8824
  for (var /** @type {?} */ i = startIndex; i <= endIndex; i++) {
8826
8825
  var /** @type {?} */ nodeDef = ((hostView)).def.nodes[i];
8827
8826
  if (nodeDef.ngContentIndex === ngContentIndex) {
@@ -8862,7 +8861,7 @@ function visitRenderNode(view, nodeDef, action, parentNode, nextSibling, target)
8862
8861
  execRenderNodeAction(view, rn, action, parentNode, nextSibling, target);
8863
8862
  }
8864
8863
  if (nodeDef.bindingFlags & (32 /* SyntheticHostProperty */)) {
8865
- var /** @type {?} */ compView = asElementData(view, nodeDef.index).componentView;
8864
+ var /** @type {?} */ compView = asElementData(view, nodeDef.nodeIndex).componentView;
8866
8865
  execRenderNodeAction(compView, rn, action, parentNode, nextSibling, target);
8867
8866
  }
8868
8867
  }
@@ -8870,13 +8869,13 @@ function visitRenderNode(view, nodeDef, action, parentNode, nextSibling, target)
8870
8869
  execRenderNodeAction(view, rn, action, parentNode, nextSibling, target);
8871
8870
  }
8872
8871
  if (nodeDef.flags & 16777216 /* EmbeddedViews */) {
8873
- var /** @type {?} */ embeddedViews = ((asElementData(view, nodeDef.index).viewContainer))._embeddedViews;
8872
+ var /** @type {?} */ embeddedViews = ((asElementData(view, nodeDef.nodeIndex).viewContainer))._embeddedViews;
8874
8873
  for (var /** @type {?} */ k = 0; k < embeddedViews.length; k++) {
8875
8874
  visitRootRenderNodes(embeddedViews[k], action, parentNode, nextSibling, target);
8876
8875
  }
8877
8876
  }
8878
8877
  if (nodeDef.flags & 1 /* TypeElement */ && !((nodeDef.element)).name) {
8879
- visitSiblingRenderNodes(view, action, nodeDef.index + 1, nodeDef.index + nodeDef.childCount, parentNode, nextSibling, target);
8878
+ visitSiblingRenderNodes(view, action, nodeDef.nodeIndex + 1, nodeDef.nodeIndex + nodeDef.childCount, parentNode, nextSibling, target);
8880
8879
  }
8881
8880
  }
8882
8881
  }
@@ -9029,13 +9028,14 @@ function anchorDef(flags, matchedQueriesDsl, ngContentIndex, childCount, handleE
9029
9028
  var /** @type {?} */ template = templateFactory ? resolveDefinition(templateFactory) : null;
9030
9029
  return {
9031
9030
  // will bet set by the view definition
9032
- index: -1,
9031
+ nodeIndex: -1,
9033
9032
  parent: null,
9034
9033
  renderParent: null,
9035
9034
  bindingIndex: -1,
9036
9035
  outputIndex: -1,
9037
9036
  // regular values
9038
9037
  flags: flags,
9038
+ checkIndex: -1,
9039
9039
  childFlags: 0,
9040
9040
  directChildFlags: 0,
9041
9041
  childMatchedQueries: 0, matchedQueries: matchedQueries, matchedQueryIds: matchedQueryIds, references: references, ngContentIndex: ngContentIndex, childCount: childCount,
@@ -9060,6 +9060,7 @@ function anchorDef(flags, matchedQueriesDsl, ngContentIndex, childCount, handleE
9060
9060
  };
9061
9061
  }
9062
9062
  /**
9063
+ * @param {?} checkIndex
9063
9064
  * @param {?} flags
9064
9065
  * @param {?} matchedQueriesDsl
9065
9066
  * @param {?} ngContentIndex
@@ -9073,7 +9074,7 @@ function anchorDef(flags, matchedQueriesDsl, ngContentIndex, childCount, handleE
9073
9074
  * @param {?=} componentRendererType
9074
9075
  * @return {?}
9075
9076
  */
9076
- function elementDef(flags, matchedQueriesDsl, ngContentIndex, childCount, namespaceAndName, fixedAttrs, bindings, outputs, handleEvent, componentView, componentRendererType) {
9077
+ function elementDef(checkIndex, flags, matchedQueriesDsl, ngContentIndex, childCount, namespaceAndName, fixedAttrs, bindings, outputs, handleEvent, componentView, componentRendererType) {
9077
9078
  if (fixedAttrs === void 0) { fixedAttrs = []; }
9078
9079
  if (!handleEvent) {
9079
9080
  handleEvent = NOOP;
@@ -9126,12 +9127,13 @@ function elementDef(flags, matchedQueriesDsl, ngContentIndex, childCount, namesp
9126
9127
  flags |= 1 /* TypeElement */;
9127
9128
  return {
9128
9129
  // will bet set by the view definition
9129
- index: -1,
9130
+ nodeIndex: -1,
9130
9131
  parent: null,
9131
9132
  renderParent: null,
9132
9133
  bindingIndex: -1,
9133
9134
  outputIndex: -1,
9134
9135
  // regular values
9136
+ checkIndex: checkIndex,
9135
9137
  flags: flags,
9136
9138
  childFlags: 0,
9137
9139
  directChildFlags: 0,
@@ -9203,7 +9205,7 @@ function createElement(view, renderHost, def) {
9203
9205
  function listenToElementOutputs(view, compView, def, el) {
9204
9206
  for (var /** @type {?} */ i = 0; i < def.outputs.length; i++) {
9205
9207
  var /** @type {?} */ output = def.outputs[i];
9206
- var /** @type {?} */ handleEventClosure = renderEventHandlerClosure(view, def.index, elementEventFullName(output.target, output.eventName));
9208
+ var /** @type {?} */ handleEventClosure = renderEventHandlerClosure(view, def.nodeIndex, elementEventFullName(output.target, output.eventName));
9207
9209
  var /** @type {?} */ listenTarget = output.target;
9208
9210
  var /** @type {?} */ listenerView = view;
9209
9211
  if (output.target === 'component') {
@@ -9297,7 +9299,7 @@ function checkAndUpdateElementValue(view, def, bindingIdx, value) {
9297
9299
  return false;
9298
9300
  }
9299
9301
  var /** @type {?} */ binding = def.bindings[bindingIdx];
9300
- var /** @type {?} */ elData = asElementData(view, def.index);
9302
+ var /** @type {?} */ elData = asElementData(view, def.nodeIndex);
9301
9303
  var /** @type {?} */ renderNode$$1 = elData.renderElement;
9302
9304
  var /** @type {?} */ name = ((binding.name));
9303
9305
  switch (binding.flags & 15 /* Types */) {
@@ -9405,7 +9407,7 @@ function setElementProperty(view, binding, renderNode$$1, name, value) {
9405
9407
  * Use of this source code is governed by an MIT-style license that can be
9406
9408
  * found in the LICENSE file at https://angular.io/license
9407
9409
  */
9408
- var NOT_CREATED$1 = new Object();
9410
+ var UNDEFINED_VALUE = new Object();
9409
9411
  var InjectorRefTokenKey$1 = tokenKey(Injector);
9410
9412
  var NgModuleRefTokenKey = tokenKey(NgModuleRef);
9411
9413
  /**
@@ -9450,8 +9452,9 @@ function initNgModule(data) {
9450
9452
  var /** @type {?} */ providers = data._providers = new Array(def.providers.length);
9451
9453
  for (var /** @type {?} */ i = 0; i < def.providers.length; i++) {
9452
9454
  var /** @type {?} */ provDef = def.providers[i];
9453
- providers[i] = provDef.flags & 4096 /* LazyProvider */ ? NOT_CREATED$1 :
9454
- _createProviderInstance$1(data, provDef);
9455
+ if (!(provDef.flags & 4096 /* LazyProvider */)) {
9456
+ providers[i] = _createProviderInstance$1(data, provDef);
9457
+ }
9455
9458
  }
9456
9459
  }
9457
9460
  /**
@@ -9480,11 +9483,11 @@ function resolveNgModuleDep(data, depDef, notFoundValue) {
9480
9483
  var /** @type {?} */ providerDef = data._def.providersByKey[tokenKey$$1];
9481
9484
  if (providerDef) {
9482
9485
  var /** @type {?} */ providerInstance = data._providers[providerDef.index];
9483
- if (providerInstance === NOT_CREATED$1) {
9486
+ if (providerInstance === undefined) {
9484
9487
  providerInstance = data._providers[providerDef.index] =
9485
9488
  _createProviderInstance$1(data, providerDef);
9486
9489
  }
9487
- return providerInstance;
9490
+ return providerInstance === UNDEFINED_VALUE ? undefined : providerInstance;
9488
9491
  }
9489
9492
  return data._parent.get(depDef.token, notFoundValue);
9490
9493
  }
@@ -9509,7 +9512,7 @@ function _createProviderInstance$1(ngModule, providerDef) {
9509
9512
  injectable = providerDef.value;
9510
9513
  break;
9511
9514
  }
9512
- return injectable;
9515
+ return injectable === undefined ? UNDEFINED_VALUE : injectable;
9513
9516
  }
9514
9517
  /**
9515
9518
  * @param {?} ngModule
@@ -9519,29 +9522,22 @@ function _createProviderInstance$1(ngModule, providerDef) {
9519
9522
  */
9520
9523
  function _createClass(ngModule, ctor, deps) {
9521
9524
  var /** @type {?} */ len = deps.length;
9522
- var /** @type {?} */ injectable;
9523
9525
  switch (len) {
9524
9526
  case 0:
9525
- injectable = new ctor();
9526
- break;
9527
+ return new ctor();
9527
9528
  case 1:
9528
- injectable = new ctor(resolveNgModuleDep(ngModule, deps[0]));
9529
- break;
9529
+ return new ctor(resolveNgModuleDep(ngModule, deps[0]));
9530
9530
  case 2:
9531
- injectable =
9532
- new ctor(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]));
9533
- break;
9531
+ return new ctor(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]));
9534
9532
  case 3:
9535
- injectable = new ctor(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]), resolveNgModuleDep(ngModule, deps[2]));
9536
- break;
9533
+ return new ctor(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]), resolveNgModuleDep(ngModule, deps[2]));
9537
9534
  default:
9538
9535
  var /** @type {?} */ depValues = new Array(len);
9539
9536
  for (var /** @type {?} */ i = 0; i < len; i++) {
9540
9537
  depValues[i] = resolveNgModuleDep(ngModule, deps[i]);
9541
9538
  }
9542
- injectable = new (ctor.bind.apply(ctor, [void 0].concat(depValues)))();
9539
+ return new (ctor.bind.apply(ctor, [void 0].concat(depValues)))();
9543
9540
  }
9544
- return injectable;
9545
9541
  }
9546
9542
  /**
9547
9543
  * @param {?} ngModule
@@ -9551,29 +9547,22 @@ function _createClass(ngModule, ctor, deps) {
9551
9547
  */
9552
9548
  function _callFactory(ngModule, factory, deps) {
9553
9549
  var /** @type {?} */ len = deps.length;
9554
- var /** @type {?} */ injectable;
9555
9550
  switch (len) {
9556
9551
  case 0:
9557
- injectable = factory();
9558
- break;
9552
+ return factory();
9559
9553
  case 1:
9560
- injectable = factory(resolveNgModuleDep(ngModule, deps[0]));
9561
- break;
9554
+ return factory(resolveNgModuleDep(ngModule, deps[0]));
9562
9555
  case 2:
9563
- injectable =
9564
- factory(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]));
9565
- break;
9556
+ return factory(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]));
9566
9557
  case 3:
9567
- injectable = factory(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]), resolveNgModuleDep(ngModule, deps[2]));
9568
- break;
9558
+ return factory(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]), resolveNgModuleDep(ngModule, deps[2]));
9569
9559
  default:
9570
9560
  var /** @type {?} */ depValues = Array(len);
9571
9561
  for (var /** @type {?} */ i = 0; i < len; i++) {
9572
9562
  depValues[i] = resolveNgModuleDep(ngModule, deps[i]);
9573
9563
  }
9574
- injectable = factory.apply(void 0, depValues);
9564
+ return factory.apply(void 0, depValues);
9575
9565
  }
9576
- return injectable;
9577
9566
  }
9578
9567
  /**
9579
9568
  * @param {?} ngModule
@@ -9586,7 +9575,7 @@ function callNgModuleLifecycle(ngModule, lifecycles) {
9586
9575
  var /** @type {?} */ provDef = def.providers[i];
9587
9576
  if (provDef.flags & 131072 /* OnDestroy */) {
9588
9577
  var /** @type {?} */ instance = ngModule._providers[i];
9589
- if (instance && instance !== NOT_CREATED$1) {
9578
+ if (instance && instance !== UNDEFINED_VALUE) {
9590
9579
  instance.ngOnDestroy();
9591
9580
  }
9592
9581
  }
@@ -9868,7 +9857,7 @@ var ComponentFactory_ = (function (_super) {
9868
9857
  throw new Error('ngModule should be provided');
9869
9858
  }
9870
9859
  var /** @type {?} */ viewDef = resolveDefinition(this.viewDefFactory);
9871
- var /** @type {?} */ componentNodeIndex = ((((viewDef.nodes[0].element)).componentProvider)).index;
9860
+ var /** @type {?} */ componentNodeIndex = ((((viewDef.nodes[0].element)).componentProvider)).nodeIndex;
9872
9861
  var /** @type {?} */ view = Services.createRootView(injector, projectableNodes || [], rootSelectorOrNode, viewDef, ngModule, EMPTY_CONTEXT);
9873
9862
  var /** @type {?} */ component = asProviderData(view, componentNodeIndex).instance;
9874
9863
  if (rootSelectorOrNode) {
@@ -9898,7 +9887,7 @@ var ComponentRef_ = (function (_super) {
9898
9887
  * @return {?}
9899
9888
  */
9900
9889
  get: function () {
9901
- return new ElementRef(asElementData(this._view, this._elDef.index).renderElement);
9890
+ return new ElementRef(asElementData(this._view, this._elDef.nodeIndex).renderElement);
9902
9891
  },
9903
9892
  enumerable: true,
9904
9893
  configurable: true
@@ -9919,7 +9908,6 @@ var ComponentRef_ = (function (_super) {
9919
9908
  enumerable: true,
9920
9909
  configurable: true
9921
9910
  });
9922
- ;
9923
9911
  Object.defineProperty(ComponentRef_.prototype, "hostView", {
9924
9912
  /**
9925
9913
  * @return {?}
@@ -9928,7 +9916,6 @@ var ComponentRef_ = (function (_super) {
9928
9916
  enumerable: true,
9929
9917
  configurable: true
9930
9918
  });
9931
- ;
9932
9919
  Object.defineProperty(ComponentRef_.prototype, "changeDetectorRef", {
9933
9920
  /**
9934
9921
  * @return {?}
@@ -9937,7 +9924,6 @@ var ComponentRef_ = (function (_super) {
9937
9924
  enumerable: true,
9938
9925
  configurable: true
9939
9926
  });
9940
- ;
9941
9927
  Object.defineProperty(ComponentRef_.prototype, "componentType", {
9942
9928
  /**
9943
9929
  * @return {?}
@@ -10044,7 +10030,6 @@ var ViewContainerRef_ = (function () {
10044
10030
  enumerable: true,
10045
10031
  configurable: true
10046
10032
  });
10047
- ;
10048
10033
  /**
10049
10034
  * @template C
10050
10035
  * @param {?} templateRef
@@ -10283,7 +10268,7 @@ var TemplateRef_ = (function (_super) {
10283
10268
  * @return {?}
10284
10269
  */
10285
10270
  get: function () {
10286
- return new ElementRef(asElementData(this._parentView, this._def.index).renderElement);
10271
+ return new ElementRef(asElementData(this._parentView, this._def.nodeIndex).renderElement);
10287
10272
  },
10288
10273
  enumerable: true,
10289
10274
  configurable: true
@@ -10327,14 +10312,14 @@ var Injector_ = (function () {
10327
10312
  function nodeValue(view, index) {
10328
10313
  var /** @type {?} */ def = view.def.nodes[index];
10329
10314
  if (def.flags & 1 /* TypeElement */) {
10330
- var /** @type {?} */ elData = asElementData(view, def.index);
10315
+ var /** @type {?} */ elData = asElementData(view, def.nodeIndex);
10331
10316
  return ((def.element)).template ? elData.template : elData.renderElement;
10332
10317
  }
10333
10318
  else if (def.flags & 2 /* TypeText */) {
10334
- return asTextData(view, def.index).renderText;
10319
+ return asTextData(view, def.nodeIndex).renderText;
10335
10320
  }
10336
10321
  else if (def.flags & (20224 /* CatProvider */ | 16 /* TypePipe */)) {
10337
- return asProviderData(view, def.index).instance;
10322
+ return asProviderData(view, def.nodeIndex).instance;
10338
10323
  }
10339
10324
  throw new Error("Illegal state: read nodeValue for node index " + index);
10340
10325
  }
@@ -10632,8 +10617,8 @@ var ViewContainerRefTokenKey = tokenKey(ViewContainerRef);
10632
10617
  var TemplateRefTokenKey = tokenKey(TemplateRef);
10633
10618
  var ChangeDetectorRefTokenKey = tokenKey(ChangeDetectorRef);
10634
10619
  var InjectorRefTokenKey = tokenKey(Injector);
10635
- var NOT_CREATED = new Object();
10636
10620
  /**
10621
+ * @param {?} checkIndex
10637
10622
  * @param {?} flags
10638
10623
  * @param {?} matchedQueries
10639
10624
  * @param {?} childCount
@@ -10643,7 +10628,7 @@ var NOT_CREATED = new Object();
10643
10628
  * @param {?=} outputs
10644
10629
  * @return {?}
10645
10630
  */
10646
- function directiveDef(flags, matchedQueries, childCount, ctor, deps, props, outputs) {
10631
+ function directiveDef(checkIndex, flags, matchedQueries, childCount, ctor, deps, props, outputs) {
10647
10632
  var /** @type {?} */ bindings = [];
10648
10633
  if (props) {
10649
10634
  for (var /** @type {?} */ prop in props) {
@@ -10664,7 +10649,7 @@ function directiveDef(flags, matchedQueries, childCount, ctor, deps, props, outp
10664
10649
  }
10665
10650
  }
10666
10651
  flags |= 16384 /* TypeDirective */;
10667
- return _def(flags, matchedQueries, childCount, ctor, ctor, deps, bindings, outputDefs);
10652
+ return _def(checkIndex, flags, matchedQueries, childCount, ctor, ctor, deps, bindings, outputDefs);
10668
10653
  }
10669
10654
  /**
10670
10655
  * @param {?} flags
@@ -10674,7 +10659,7 @@ function directiveDef(flags, matchedQueries, childCount, ctor, deps, props, outp
10674
10659
  */
10675
10660
  function pipeDef(flags, ctor, deps) {
10676
10661
  flags |= 16 /* TypePipe */;
10677
- return _def(flags, null, 0, ctor, ctor, deps);
10662
+ return _def(-1, flags, null, 0, ctor, ctor, deps);
10678
10663
  }
10679
10664
  /**
10680
10665
  * @param {?} flags
@@ -10685,9 +10670,10 @@ function pipeDef(flags, ctor, deps) {
10685
10670
  * @return {?}
10686
10671
  */
10687
10672
  function providerDef(flags, matchedQueries, token, value, deps) {
10688
- return _def(flags, matchedQueries, 0, token, value, deps);
10673
+ return _def(-1, flags, matchedQueries, 0, token, value, deps);
10689
10674
  }
10690
10675
  /**
10676
+ * @param {?} checkIndex
10691
10677
  * @param {?} flags
10692
10678
  * @param {?} matchedQueriesDsl
10693
10679
  * @param {?} childCount
@@ -10698,7 +10684,7 @@ function providerDef(flags, matchedQueries, token, value, deps) {
10698
10684
  * @param {?=} outputs
10699
10685
  * @return {?}
10700
10686
  */
10701
- function _def(flags, matchedQueriesDsl, childCount, token, value, deps, bindings, outputs) {
10687
+ function _def(checkIndex, flags, matchedQueriesDsl, childCount, token, value, deps, bindings, outputs) {
10702
10688
  var _a = splitMatchedQueriesDsl(matchedQueriesDsl), matchedQueries = _a.matchedQueries, references = _a.references, matchedQueryIds = _a.matchedQueryIds;
10703
10689
  if (!outputs) {
10704
10690
  outputs = [];
@@ -10709,12 +10695,13 @@ function _def(flags, matchedQueriesDsl, childCount, token, value, deps, bindings
10709
10695
  var /** @type {?} */ depDefs = splitDepsDsl(deps);
10710
10696
  return {
10711
10697
  // will bet set by the view definition
10712
- index: -1,
10698
+ nodeIndex: -1,
10713
10699
  parent: null,
10714
10700
  renderParent: null,
10715
10701
  bindingIndex: -1,
10716
10702
  outputIndex: -1,
10717
10703
  // regular values
10704
+ checkIndex: checkIndex,
10718
10705
  flags: flags,
10719
10706
  childFlags: 0,
10720
10707
  directChildFlags: 0,
@@ -10734,7 +10721,7 @@ function _def(flags, matchedQueriesDsl, childCount, token, value, deps, bindings
10734
10721
  * @return {?}
10735
10722
  */
10736
10723
  function createProviderInstance(view, def) {
10737
- return def.flags & 4096 /* LazyProvider */ ? NOT_CREATED : _createProviderInstance(view, def);
10724
+ return _createProviderInstance(view, def);
10738
10725
  }
10739
10726
  /**
10740
10727
  * @param {?} view
@@ -10765,7 +10752,7 @@ function createDirectiveInstance(view, def) {
10765
10752
  if (def.outputs.length) {
10766
10753
  for (var /** @type {?} */ i = 0; i < def.outputs.length; i++) {
10767
10754
  var /** @type {?} */ output = def.outputs[i];
10768
- var /** @type {?} */ subscription = instance[((output.propName))].subscribe(eventHandlerClosure(view, /** @type {?} */ ((def.parent)).index, output.eventName)); /** @type {?} */
10755
+ var /** @type {?} */ subscription = instance[((output.propName))].subscribe(eventHandlerClosure(view, /** @type {?} */ ((def.parent)).nodeIndex, output.eventName)); /** @type {?} */
10769
10756
  ((view.disposables))[def.outputIndex + i] = subscription.unsubscribe.bind(subscription);
10770
10757
  }
10771
10758
  }
@@ -10804,7 +10791,7 @@ function eventHandlerClosure(view, index, eventName) {
10804
10791
  * @return {?}
10805
10792
  */
10806
10793
  function checkAndUpdateDirectiveInline(view, def, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {
10807
- var /** @type {?} */ providerData = asProviderData(view, def.index);
10794
+ var /** @type {?} */ providerData = asProviderData(view, def.nodeIndex);
10808
10795
  var /** @type {?} */ directive = providerData.instance;
10809
10796
  var /** @type {?} */ changed = false;
10810
10797
  var /** @type {?} */ changes = ((undefined));
@@ -10867,7 +10854,7 @@ function checkAndUpdateDirectiveInline(view, def, v0, v1, v2, v3, v4, v5, v6, v7
10867
10854
  * @return {?}
10868
10855
  */
10869
10856
  function checkAndUpdateDirectiveDynamic(view, def, values) {
10870
- var /** @type {?} */ providerData = asProviderData(view, def.index);
10857
+ var /** @type {?} */ providerData = asProviderData(view, def.nodeIndex);
10871
10858
  var /** @type {?} */ directive = providerData.instance;
10872
10859
  var /** @type {?} */ changed = false;
10873
10860
  var /** @type {?} */ changes = ((undefined));
@@ -10897,22 +10884,16 @@ function _createProviderInstance(view, def) {
10897
10884
  // private services can see other private services
10898
10885
  var /** @type {?} */ allowPrivateServices = (def.flags & 8192 /* PrivateProvider */) > 0;
10899
10886
  var /** @type {?} */ providerDef = def.provider;
10900
- var /** @type {?} */ injectable;
10901
10887
  switch (def.flags & 201347067 /* Types */) {
10902
10888
  case 512 /* TypeClassProvider */:
10903
- injectable = createClass(view, /** @type {?} */ ((def.parent)), allowPrivateServices, /** @type {?} */ ((providerDef)).value, /** @type {?} */ ((providerDef)).deps);
10904
- break;
10889
+ return createClass(view, /** @type {?} */ ((def.parent)), allowPrivateServices, /** @type {?} */ ((providerDef)).value, /** @type {?} */ ((providerDef)).deps);
10905
10890
  case 1024 /* TypeFactoryProvider */:
10906
- injectable = callFactory(view, /** @type {?} */ ((def.parent)), allowPrivateServices, /** @type {?} */ ((providerDef)).value, /** @type {?} */ ((providerDef)).deps);
10907
- break;
10891
+ return callFactory(view, /** @type {?} */ ((def.parent)), allowPrivateServices, /** @type {?} */ ((providerDef)).value, /** @type {?} */ ((providerDef)).deps);
10908
10892
  case 2048 /* TypeUseExistingProvider */:
10909
- injectable = resolveDep(view, /** @type {?} */ ((def.parent)), allowPrivateServices, /** @type {?} */ ((providerDef)).deps[0]);
10910
- break;
10893
+ return resolveDep(view, /** @type {?} */ ((def.parent)), allowPrivateServices, /** @type {?} */ ((providerDef)).deps[0]);
10911
10894
  case 256 /* TypeValueProvider */:
10912
- injectable = ((providerDef)).value;
10913
- break;
10895
+ return ((providerDef)).value;
10914
10896
  }
10915
- return injectable;
10916
10897
  }
10917
10898
  /**
10918
10899
  * @param {?} view
@@ -10924,28 +10905,22 @@ function _createProviderInstance(view, def) {
10924
10905
  */
10925
10906
  function createClass(view, elDef, allowPrivateServices, ctor, deps) {
10926
10907
  var /** @type {?} */ len = deps.length;
10927
- var /** @type {?} */ injectable;
10928
10908
  switch (len) {
10929
10909
  case 0:
10930
- injectable = new ctor();
10931
- break;
10910
+ return new ctor();
10932
10911
  case 1:
10933
- injectable = new ctor(resolveDep(view, elDef, allowPrivateServices, deps[0]));
10934
- break;
10912
+ return new ctor(resolveDep(view, elDef, allowPrivateServices, deps[0]));
10935
10913
  case 2:
10936
- injectable = new ctor(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]));
10937
- break;
10914
+ return new ctor(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]));
10938
10915
  case 3:
10939
- injectable = new ctor(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]), resolveDep(view, elDef, allowPrivateServices, deps[2]));
10940
- break;
10916
+ return new ctor(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]), resolveDep(view, elDef, allowPrivateServices, deps[2]));
10941
10917
  default:
10942
10918
  var /** @type {?} */ depValues = new Array(len);
10943
10919
  for (var /** @type {?} */ i = 0; i < len; i++) {
10944
10920
  depValues[i] = resolveDep(view, elDef, allowPrivateServices, deps[i]);
10945
10921
  }
10946
- injectable = new (ctor.bind.apply(ctor, [void 0].concat(depValues)))();
10922
+ return new (ctor.bind.apply(ctor, [void 0].concat(depValues)))();
10947
10923
  }
10948
- return injectable;
10949
10924
  }
10950
10925
  /**
10951
10926
  * @param {?} view
@@ -10957,28 +10932,22 @@ function createClass(view, elDef, allowPrivateServices, ctor, deps) {
10957
10932
  */
10958
10933
  function callFactory(view, elDef, allowPrivateServices, factory, deps) {
10959
10934
  var /** @type {?} */ len = deps.length;
10960
- var /** @type {?} */ injectable;
10961
10935
  switch (len) {
10962
10936
  case 0:
10963
- injectable = factory();
10964
- break;
10937
+ return factory();
10965
10938
  case 1:
10966
- injectable = factory(resolveDep(view, elDef, allowPrivateServices, deps[0]));
10967
- break;
10939
+ return factory(resolveDep(view, elDef, allowPrivateServices, deps[0]));
10968
10940
  case 2:
10969
- injectable = factory(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]));
10970
- break;
10941
+ return factory(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]));
10971
10942
  case 3:
10972
- injectable = factory(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]), resolveDep(view, elDef, allowPrivateServices, deps[2]));
10973
- break;
10943
+ return factory(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]), resolveDep(view, elDef, allowPrivateServices, deps[2]));
10974
10944
  default:
10975
10945
  var /** @type {?} */ depValues = Array(len);
10976
10946
  for (var /** @type {?} */ i = 0; i < len; i++) {
10977
10947
  depValues[i] = resolveDep(view, elDef, allowPrivateServices, deps[i]);
10978
10948
  }
10979
- injectable = factory.apply(void 0, depValues);
10949
+ return factory.apply(void 0, depValues);
10980
10950
  }
10981
- return injectable;
10982
10951
  }
10983
10952
  // This default value is when checking the hierarchy for a token.
10984
10953
  //
@@ -11037,12 +11006,12 @@ function resolveDep(view, elDef, allowPrivateServices, depDef, notFoundValue) {
11037
11006
  return compView.renderer;
11038
11007
  }
11039
11008
  case ElementRefTokenKey:
11040
- return new ElementRef(asElementData(view, elDef.index).renderElement);
11009
+ return new ElementRef(asElementData(view, elDef.nodeIndex).renderElement);
11041
11010
  case ViewContainerRefTokenKey:
11042
- return asElementData(view, elDef.index).viewContainer;
11011
+ return asElementData(view, elDef.nodeIndex).viewContainer;
11043
11012
  case TemplateRefTokenKey: {
11044
11013
  if (((elDef.element)).template) {
11045
- return asElementData(view, elDef.index).template;
11014
+ return asElementData(view, elDef.nodeIndex).template;
11046
11015
  }
11047
11016
  break;
11048
11017
  }
@@ -11055,9 +11024,10 @@ function resolveDep(view, elDef, allowPrivateServices, depDef, notFoundValue) {
11055
11024
  default:
11056
11025
  var /** @type {?} */ providerDef_1 = (((allowPrivateServices ? ((elDef.element)).allProviders : ((elDef.element)).publicProviders)))[tokenKey$$1];
11057
11026
  if (providerDef_1) {
11058
- var /** @type {?} */ providerData = asProviderData(view, providerDef_1.index);
11059
- if (providerData.instance === NOT_CREATED) {
11060
- providerData.instance = _createProviderInstance(view, providerDef_1);
11027
+ var /** @type {?} */ providerData = asProviderData(view, providerDef_1.nodeIndex);
11028
+ if (!providerData) {
11029
+ providerData = { instance: _createProviderInstance(view, providerDef_1) };
11030
+ view.nodes[providerDef_1.nodeIndex] = (providerData);
11061
11031
  }
11062
11032
  return providerData.instance;
11063
11033
  }
@@ -11088,7 +11058,7 @@ function resolveDep(view, elDef, allowPrivateServices, depDef, notFoundValue) {
11088
11058
  function findCompView(view, elDef, allowPrivateServices) {
11089
11059
  var /** @type {?} */ compView;
11090
11060
  if (allowPrivateServices) {
11091
- compView = asElementData(view, elDef.index).componentView;
11061
+ compView = asElementData(view, elDef.nodeIndex).componentView;
11092
11062
  }
11093
11063
  else {
11094
11064
  compView = view;
@@ -11109,7 +11079,7 @@ function findCompView(view, elDef, allowPrivateServices) {
11109
11079
  */
11110
11080
  function updateProp(view, providerData, def, bindingIdx, value, changes) {
11111
11081
  if (def.flags & 32768 /* Component */) {
11112
- var /** @type {?} */ compView = asElementData(view, /** @type {?} */ ((def.parent)).index).componentView;
11082
+ var /** @type {?} */ compView = asElementData(view, /** @type {?} */ ((def.parent)).nodeIndex).componentView;
11113
11083
  if (compView.def.flags & 2 /* OnPush */) {
11114
11084
  compView.state |= 8 /* ChecksEnabled */;
11115
11085
  }
@@ -11155,7 +11125,7 @@ function callLifecycleHooksChildrenFirst(view, lifecycles) {
11155
11125
  i += nodeDef.childCount;
11156
11126
  }
11157
11127
  while (parent && (parent.flags & 1 /* TypeElement */) &&
11158
- i === parent.index + parent.childCount) {
11128
+ i === parent.nodeIndex + parent.childCount) {
11159
11129
  // last child of an element
11160
11130
  if (parent.directChildFlags & lifecycles) {
11161
11131
  callElementProvidersLifecycles(view, parent, lifecycles);
@@ -11171,7 +11141,7 @@ function callLifecycleHooksChildrenFirst(view, lifecycles) {
11171
11141
  * @return {?}
11172
11142
  */
11173
11143
  function callElementProvidersLifecycles(view, elDef, lifecycles) {
11174
- for (var /** @type {?} */ i = elDef.index + 1; i <= elDef.index + elDef.childCount; i++) {
11144
+ for (var /** @type {?} */ i = elDef.nodeIndex + 1; i <= elDef.nodeIndex + elDef.childCount; i++) {
11175
11145
  var /** @type {?} */ nodeDef = view.def.nodes[i];
11176
11146
  if (nodeDef.flags & lifecycles) {
11177
11147
  callProviderLifecycles(view, i, nodeDef.flags & lifecycles);
@@ -11187,8 +11157,12 @@ function callElementProvidersLifecycles(view, elDef, lifecycles) {
11187
11157
  * @return {?}
11188
11158
  */
11189
11159
  function callProviderLifecycles(view, index, lifecycles) {
11190
- var /** @type {?} */ provider = asProviderData(view, index).instance;
11191
- if (provider === NOT_CREATED) {
11160
+ var /** @type {?} */ providerData = asProviderData(view, index);
11161
+ if (!providerData) {
11162
+ return;
11163
+ }
11164
+ var /** @type {?} */ provider = providerData.instance;
11165
+ if (!provider) {
11192
11166
  return;
11193
11167
  }
11194
11168
  Services.setCurrentNode(view, index);
@@ -11229,13 +11203,14 @@ function queryDef(flags, id, bindings) {
11229
11203
  }
11230
11204
  return {
11231
11205
  // will bet set by the view definition
11232
- index: -1,
11206
+ nodeIndex: -1,
11233
11207
  parent: null,
11234
11208
  renderParent: null,
11235
11209
  bindingIndex: -1,
11236
11210
  outputIndex: -1,
11237
11211
  // regular values
11238
- flags: flags,
11212
+ // TODO(vicb): check
11213
+ checkIndex: -1, flags: flags,
11239
11214
  childFlags: 0,
11240
11215
  directChildFlags: 0,
11241
11216
  childMatchedQueries: 0,
@@ -11270,7 +11245,7 @@ function dirtyParentQueries(view) {
11270
11245
  var /** @type {?} */ tplDef = ((view.parentNodeDef));
11271
11246
  view = view.parent;
11272
11247
  // content queries
11273
- var /** @type {?} */ end = tplDef.index + tplDef.childCount;
11248
+ var /** @type {?} */ end = tplDef.nodeIndex + tplDef.childCount;
11274
11249
  for (var /** @type {?} */ i = 0; i <= end; i++) {
11275
11250
  var /** @type {?} */ nodeDef = view.def.nodes[i];
11276
11251
  if ((nodeDef.flags & 67108864 /* TypeContentQuery */) &&
@@ -11278,7 +11253,7 @@ function dirtyParentQueries(view) {
11278
11253
  (((nodeDef.query)).filterId & queryIds) === ((nodeDef.query)).filterId) {
11279
11254
  asQueryList(view, i).setDirty();
11280
11255
  }
11281
- if ((nodeDef.flags & 1 /* TypeElement */ && i + nodeDef.childCount < tplDef.index) ||
11256
+ if ((nodeDef.flags & 1 /* TypeElement */ && i + nodeDef.childCount < tplDef.nodeIndex) ||
11282
11257
  !(nodeDef.childFlags & 67108864 /* TypeContentQuery */) ||
11283
11258
  !(nodeDef.childFlags & 536870912 /* DynamicQuery */)) {
11284
11259
  // skip elements that don't contain the template element or no query.
@@ -11304,7 +11279,7 @@ function dirtyParentQueries(view) {
11304
11279
  * @return {?}
11305
11280
  */
11306
11281
  function checkAndUpdateQuery(view, nodeDef) {
11307
- var /** @type {?} */ queryList = asQueryList(view, nodeDef.index);
11282
+ var /** @type {?} */ queryList = asQueryList(view, nodeDef.nodeIndex);
11308
11283
  if (!queryList.dirty) {
11309
11284
  return;
11310
11285
  }
@@ -11312,8 +11287,8 @@ function checkAndUpdateQuery(view, nodeDef) {
11312
11287
  var /** @type {?} */ newValues = ((undefined));
11313
11288
  if (nodeDef.flags & 67108864 /* TypeContentQuery */) {
11314
11289
  var /** @type {?} */ elementDef_1 = ((((nodeDef.parent)).parent));
11315
- newValues = calcQueryValues(view, elementDef_1.index, elementDef_1.index + elementDef_1.childCount, /** @type {?} */ ((nodeDef.query)), []);
11316
- directiveInstance = asProviderData(view, /** @type {?} */ ((nodeDef.parent)).index).instance;
11290
+ newValues = calcQueryValues(view, elementDef_1.nodeIndex, elementDef_1.nodeIndex + elementDef_1.childCount, /** @type {?} */ ((nodeDef.query)), []);
11291
+ directiveInstance = asProviderData(view, /** @type {?} */ ((nodeDef.parent)).nodeIndex).instance;
11317
11292
  }
11318
11293
  else if (nodeDef.flags & 134217728 /* TypeViewQuery */) {
11319
11294
  newValues = calcQueryValues(view, 0, view.def.nodes.length - 1, /** @type {?} */ ((nodeDef.query)), []);
@@ -11399,25 +11374,18 @@ function calcQueryValues(view, startIndex, endIndex, queryDef, values) {
11399
11374
  function getQueryValue(view, nodeDef, queryValueType) {
11400
11375
  if (queryValueType != null) {
11401
11376
  // a match
11402
- var /** @type {?} */ value = void 0;
11403
11377
  switch (queryValueType) {
11404
11378
  case 1 /* RenderElement */:
11405
- value = asElementData(view, nodeDef.index).renderElement;
11406
- break;
11379
+ return asElementData(view, nodeDef.nodeIndex).renderElement;
11407
11380
  case 0 /* ElementRef */:
11408
- value = new ElementRef(asElementData(view, nodeDef.index).renderElement);
11409
- break;
11381
+ return new ElementRef(asElementData(view, nodeDef.nodeIndex).renderElement);
11410
11382
  case 2 /* TemplateRef */:
11411
- value = asElementData(view, nodeDef.index).template;
11412
- break;
11383
+ return asElementData(view, nodeDef.nodeIndex).template;
11413
11384
  case 3 /* ViewContainerRef */:
11414
- value = asElementData(view, nodeDef.index).viewContainer;
11415
- break;
11385
+ return asElementData(view, nodeDef.nodeIndex).viewContainer;
11416
11386
  case 4 /* Provider */:
11417
- value = asProviderData(view, nodeDef.index).instance;
11418
- break;
11387
+ return asProviderData(view, nodeDef.nodeIndex).instance;
11419
11388
  }
11420
- return value;
11421
11389
  }
11422
11390
  }
11423
11391
  /**
@@ -11435,12 +11403,13 @@ function getQueryValue(view, nodeDef, queryValueType) {
11435
11403
  function ngContentDef(ngContentIndex, index) {
11436
11404
  return {
11437
11405
  // will bet set by the view definition
11438
- index: -1,
11406
+ nodeIndex: -1,
11439
11407
  parent: null,
11440
11408
  renderParent: null,
11441
11409
  bindingIndex: -1,
11442
11410
  outputIndex: -1,
11443
11411
  // regular values
11412
+ checkIndex: -1,
11444
11413
  flags: 8 /* TypeNgContent */,
11445
11414
  childFlags: 0,
11446
11415
  directChildFlags: 0,
@@ -11482,25 +11451,28 @@ function appendNgContent(view, renderHost, def) {
11482
11451
  * found in the LICENSE file at https://angular.io/license
11483
11452
  */
11484
11453
  /**
11454
+ * @param {?} checkIndex
11485
11455
  * @param {?} argCount
11486
11456
  * @return {?}
11487
11457
  */
11488
- function purePipeDef(argCount) {
11458
+ function purePipeDef(checkIndex, argCount) {
11489
11459
  // argCount + 1 to include the pipe as first arg
11490
- return _pureExpressionDef(128 /* TypePurePipe */, new Array(argCount + 1));
11460
+ return _pureExpressionDef(128 /* TypePurePipe */, checkIndex, new Array(argCount + 1));
11491
11461
  }
11492
11462
  /**
11463
+ * @param {?} checkIndex
11493
11464
  * @param {?} argCount
11494
11465
  * @return {?}
11495
11466
  */
11496
- function pureArrayDef(argCount) {
11497
- return _pureExpressionDef(32 /* TypePureArray */, new Array(argCount));
11467
+ function pureArrayDef(checkIndex, argCount) {
11468
+ return _pureExpressionDef(32 /* TypePureArray */, checkIndex, new Array(argCount));
11498
11469
  }
11499
11470
  /**
11471
+ * @param {?} checkIndex
11500
11472
  * @param {?} propToIndex
11501
11473
  * @return {?}
11502
11474
  */
11503
- function pureObjectDef(propToIndex) {
11475
+ function pureObjectDef(checkIndex, propToIndex) {
11504
11476
  var /** @type {?} */ keys = Object.keys(propToIndex);
11505
11477
  var /** @type {?} */ nbKeys = keys.length;
11506
11478
  var /** @type {?} */ propertyNames = new Array(nbKeys);
@@ -11509,14 +11481,15 @@ function pureObjectDef(propToIndex) {
11509
11481
  var /** @type {?} */ index = propToIndex[key];
11510
11482
  propertyNames[index] = key;
11511
11483
  }
11512
- return _pureExpressionDef(64 /* TypePureObject */, propertyNames);
11484
+ return _pureExpressionDef(64 /* TypePureObject */, checkIndex, propertyNames);
11513
11485
  }
11514
11486
  /**
11515
11487
  * @param {?} flags
11488
+ * @param {?} checkIndex
11516
11489
  * @param {?} propertyNames
11517
11490
  * @return {?}
11518
11491
  */
11519
- function _pureExpressionDef(flags, propertyNames) {
11492
+ function _pureExpressionDef(flags, checkIndex, propertyNames) {
11520
11493
  var /** @type {?} */ bindings = new Array(propertyNames.length);
11521
11494
  for (var /** @type {?} */ i = 0; i < propertyNames.length; i++) {
11522
11495
  var /** @type {?} */ prop = propertyNames[i];
@@ -11531,12 +11504,13 @@ function _pureExpressionDef(flags, propertyNames) {
11531
11504
  }
11532
11505
  return {
11533
11506
  // will bet set by the view definition
11534
- index: -1,
11507
+ nodeIndex: -1,
11535
11508
  parent: null,
11536
11509
  renderParent: null,
11537
11510
  bindingIndex: -1,
11538
11511
  outputIndex: -1,
11539
11512
  // regular values
11513
+ checkIndex: checkIndex,
11540
11514
  flags: flags,
11541
11515
  childFlags: 0,
11542
11516
  directChildFlags: 0,
@@ -11603,7 +11577,7 @@ function checkAndUpdatePureExpressionInline(view, def, v0, v1, v2, v3, v4, v5, v
11603
11577
  if (bindLen > 9 && checkAndUpdateBinding(view, def, 9, v9))
11604
11578
  changed = true;
11605
11579
  if (changed) {
11606
- var /** @type {?} */ data = asPureExpressionData(view, def.index);
11580
+ var /** @type {?} */ data = asPureExpressionData(view, def.nodeIndex);
11607
11581
  var /** @type {?} */ value = void 0;
11608
11582
  switch (def.flags & 201347067 /* Types */) {
11609
11583
  case 32 /* TypePureArray */:
@@ -11709,7 +11683,7 @@ function checkAndUpdatePureExpressionDynamic(view, def, values) {
11709
11683
  }
11710
11684
  }
11711
11685
  if (changed) {
11712
- var /** @type {?} */ data = asPureExpressionData(view, def.index);
11686
+ var /** @type {?} */ data = asPureExpressionData(view, def.nodeIndex);
11713
11687
  var /** @type {?} */ value = void 0;
11714
11688
  switch (def.flags & 201347067 /* Types */) {
11715
11689
  case 32 /* TypePureArray */:
@@ -11739,32 +11713,33 @@ function checkAndUpdatePureExpressionDynamic(view, def, values) {
11739
11713
  * found in the LICENSE file at https://angular.io/license
11740
11714
  */
11741
11715
  /**
11716
+ * @param {?} checkIndex
11742
11717
  * @param {?} ngContentIndex
11743
- * @param {?} constants
11718
+ * @param {?} staticText
11744
11719
  * @return {?}
11745
11720
  */
11746
- function textDef(ngContentIndex, constants) {
11747
- var /** @type {?} */ bindings = new Array(constants.length - 1);
11748
- for (var /** @type {?} */ i = 1; i < constants.length; i++) {
11721
+ function textDef(checkIndex, ngContentIndex, staticText) {
11722
+ var /** @type {?} */ bindings = new Array(staticText.length - 1);
11723
+ for (var /** @type {?} */ i = 1; i < staticText.length; i++) {
11749
11724
  bindings[i - 1] = {
11750
11725
  flags: 8 /* TypeProperty */,
11751
11726
  name: null,
11752
11727
  ns: null,
11753
11728
  nonMinifiedName: null,
11754
11729
  securityContext: null,
11755
- suffix: constants[i]
11730
+ suffix: staticText[i],
11756
11731
  };
11757
11732
  }
11758
- var /** @type {?} */ flags = 2;
11759
11733
  return {
11760
11734
  // will bet set by the view definition
11761
- index: -1,
11735
+ nodeIndex: -1,
11762
11736
  parent: null,
11763
11737
  renderParent: null,
11764
11738
  bindingIndex: -1,
11765
11739
  outputIndex: -1,
11766
11740
  // regular values
11767
- flags: flags,
11741
+ checkIndex: checkIndex,
11742
+ flags: 2 /* TypeText */,
11768
11743
  childFlags: 0,
11769
11744
  directChildFlags: 0,
11770
11745
  childMatchedQueries: 0,
@@ -11772,13 +11747,13 @@ function textDef(ngContentIndex, constants) {
11772
11747
  matchedQueryIds: 0,
11773
11748
  references: {}, ngContentIndex: ngContentIndex,
11774
11749
  childCount: 0, bindings: bindings,
11775
- bindingFlags: calcBindingFlags(bindings),
11750
+ bindingFlags: 8 /* TypeProperty */,
11776
11751
  outputs: [],
11777
11752
  element: null,
11778
11753
  provider: null,
11779
- text: { prefix: constants[0] },
11754
+ text: { prefix: staticText[0] },
11780
11755
  query: null,
11781
- ngContent: null
11756
+ ngContent: null,
11782
11757
  };
11783
11758
  }
11784
11759
  /**
@@ -11858,7 +11833,7 @@ function checkAndUpdateTextInline(view, def, v0, v1, v2, v3, v4, v5, v6, v7, v8,
11858
11833
  value += _addInterpolationPart(v8, bindings[8]);
11859
11834
  if (bindLen > 9)
11860
11835
  value += _addInterpolationPart(v9, bindings[9]);
11861
- var /** @type {?} */ renderNode$$1 = asTextData(view, def.index).renderText;
11836
+ var /** @type {?} */ renderNode$$1 = asTextData(view, def.nodeIndex).renderText;
11862
11837
  view.renderer.setValue(renderNode$$1, value);
11863
11838
  }
11864
11839
  return changed;
@@ -11885,7 +11860,7 @@ function checkAndUpdateTextDynamic(view, def, values) {
11885
11860
  value = value + _addInterpolationPart(values[i], bindings[i]);
11886
11861
  }
11887
11862
  value = ((def.text)).prefix + value;
11888
- var /** @type {?} */ renderNode$$1 = asTextData(view, def.index).renderText;
11863
+ var /** @type {?} */ renderNode$$1 = asTextData(view, def.nodeIndex).renderText;
11889
11864
  view.renderer.setValue(renderNode$$1, value);
11890
11865
  }
11891
11866
  return changed;
@@ -11921,33 +11896,19 @@ function viewDef(flags, nodes, updateDirectives, updateRenderer) {
11921
11896
  var /** @type {?} */ viewRootNodeFlags = 0;
11922
11897
  var /** @type {?} */ viewMatchedQueries = 0;
11923
11898
  var /** @type {?} */ currentParent = null;
11899
+ var /** @type {?} */ currentRenderParent = null;
11924
11900
  var /** @type {?} */ currentElementHasPublicProviders = false;
11925
11901
  var /** @type {?} */ currentElementHasPrivateProviders = false;
11926
11902
  var /** @type {?} */ lastRenderRootNode = null;
11927
11903
  for (var /** @type {?} */ i = 0; i < nodes.length; i++) {
11928
- while (currentParent && i > currentParent.index + currentParent.childCount) {
11929
- var /** @type {?} */ newParent = currentParent.parent;
11930
- if (newParent) {
11931
- newParent.childFlags |= ((currentParent.childFlags));
11932
- newParent.childMatchedQueries |= currentParent.childMatchedQueries;
11933
- }
11934
- currentParent = newParent;
11935
- }
11936
11904
  var /** @type {?} */ node = nodes[i];
11937
- node.index = i;
11905
+ node.nodeIndex = i;
11938
11906
  node.parent = currentParent;
11939
11907
  node.bindingIndex = viewBindingCount;
11940
11908
  node.outputIndex = viewDisposableCount;
11941
- // renderParent needs to account for ng-container!
11942
- var /** @type {?} */ currentRenderParent = void 0;
11943
- if (currentParent && currentParent.flags & 1 /* TypeElement */ &&
11944
- !((currentParent.element)).name) {
11945
- currentRenderParent = currentParent.renderParent;
11946
- }
11947
- else {
11948
- currentRenderParent = currentParent;
11949
- }
11950
11909
  node.renderParent = currentRenderParent;
11910
+ viewNodeFlags |= node.flags;
11911
+ viewMatchedQueries |= node.matchedQueryIds;
11951
11912
  if (node.element) {
11952
11913
  var /** @type {?} */ elDef = node.element;
11953
11914
  elDef.publicProviders =
@@ -11956,24 +11917,11 @@ function viewDef(flags, nodes, updateDirectives, updateRenderer) {
11956
11917
  // Note: We assume that all providers of an element are before any child element!
11957
11918
  currentElementHasPublicProviders = false;
11958
11919
  currentElementHasPrivateProviders = false;
11959
- }
11960
- validateNode(currentParent, node, nodes.length);
11961
- viewNodeFlags |= node.flags;
11962
- viewMatchedQueries |= node.matchedQueryIds;
11963
- if (node.element && node.element.template) {
11964
- viewMatchedQueries |= node.element.template.nodeMatchedQueries;
11965
- }
11966
- if (currentParent) {
11967
- currentParent.childFlags |= node.flags;
11968
- currentParent.directChildFlags |= node.flags;
11969
- currentParent.childMatchedQueries |= node.matchedQueryIds;
11970
- if (node.element && node.element.template) {
11971
- currentParent.childMatchedQueries |= node.element.template.nodeMatchedQueries;
11920
+ if (node.element.template) {
11921
+ viewMatchedQueries |= node.element.template.nodeMatchedQueries;
11972
11922
  }
11973
11923
  }
11974
- else {
11975
- viewRootNodeFlags |= node.flags;
11976
- }
11924
+ validateNode(currentParent, node, nodes.length);
11977
11925
  viewBindingCount += node.bindings.length;
11978
11926
  viewDisposableCount += node.outputs.length;
11979
11927
  if (!currentRenderParent && (node.flags & 3 /* CatRenderNode */)) {
@@ -11997,7 +11945,7 @@ function viewDef(flags, nodes, updateDirectives, updateRenderer) {
11997
11945
  if (!currentElementHasPrivateProviders) {
11998
11946
  currentElementHasPrivateProviders = true; /** @type {?} */
11999
11947
  ((((
12000
- // Use protoyypical inheritance to not get O(n^2) complexity...
11948
+ // Use prototypical inheritance to not get O(n^2) complexity...
12001
11949
  currentParent)).element)).allProviders =
12002
11950
  Object.create(/** @type {?} */ ((((currentParent)).element)).publicProviders);
12003
11951
  } /** @type {?} */
@@ -12007,17 +11955,45 @@ function viewDef(flags, nodes, updateDirectives, updateRenderer) {
12007
11955
  ((((currentParent)).element)).componentProvider = node;
12008
11956
  }
12009
11957
  }
12010
- if (node.childCount) {
11958
+ if (currentParent) {
11959
+ currentParent.childFlags |= node.flags;
11960
+ currentParent.directChildFlags |= node.flags;
11961
+ currentParent.childMatchedQueries |= node.matchedQueryIds;
11962
+ if (node.element && node.element.template) {
11963
+ currentParent.childMatchedQueries |= node.element.template.nodeMatchedQueries;
11964
+ }
11965
+ }
11966
+ else {
11967
+ viewRootNodeFlags |= node.flags;
11968
+ }
11969
+ if (node.childCount > 0) {
12011
11970
  currentParent = node;
11971
+ if (!isNgContainer(node)) {
11972
+ currentRenderParent = node;
11973
+ }
12012
11974
  }
12013
- }
12014
- while (currentParent) {
12015
- var /** @type {?} */ newParent = currentParent.parent;
12016
- if (newParent) {
12017
- newParent.childFlags |= currentParent.childFlags;
12018
- newParent.childMatchedQueries |= currentParent.childMatchedQueries;
11975
+ else {
11976
+ // When the current node has no children, check if it is the last children of its parent.
11977
+ // When it is, propagate the flags up.
11978
+ // The loop is required because an element could be the last transitive children of several
11979
+ // elements. We loop to either the root or the highest opened element (= with remaining
11980
+ // children)
11981
+ while (currentParent && i === currentParent.nodeIndex + currentParent.childCount) {
11982
+ var /** @type {?} */ newParent = currentParent.parent;
11983
+ if (newParent) {
11984
+ newParent.childFlags |= currentParent.childFlags;
11985
+ newParent.childMatchedQueries |= currentParent.childMatchedQueries;
11986
+ }
11987
+ currentParent = newParent;
11988
+ // We also need to update the render parent & account for ng-container
11989
+ if (currentParent && isNgContainer(currentParent)) {
11990
+ currentRenderParent = currentParent.renderParent;
11991
+ }
11992
+ else {
11993
+ currentRenderParent = currentParent;
11994
+ }
11995
+ }
12019
11996
  }
12020
- currentParent = newParent;
12021
11997
  }
12022
11998
  var /** @type {?} */ handleEvent = function (view, nodeIndex, eventName, event) { return ((((nodes[nodeIndex].element)).handleEvent))(view, eventName, event); };
12023
11999
  return {
@@ -12028,12 +12004,18 @@ function viewDef(flags, nodes, updateDirectives, updateRenderer) {
12028
12004
  nodeMatchedQueries: viewMatchedQueries, flags: flags,
12029
12005
  nodes: nodes,
12030
12006
  updateDirectives: updateDirectives || NOOP,
12031
- updateRenderer: updateRenderer || NOOP,
12032
- handleEvent: handleEvent || NOOP,
12007
+ updateRenderer: updateRenderer || NOOP, handleEvent: handleEvent,
12033
12008
  bindingCount: viewBindingCount,
12034
12009
  outputCount: viewDisposableCount, lastRenderRootNode: lastRenderRootNode
12035
12010
  };
12036
12011
  }
12012
+ /**
12013
+ * @param {?} node
12014
+ * @return {?}
12015
+ */
12016
+ function isNgContainer(node) {
12017
+ return (node.flags & 1 /* TypeElement */) !== 0 && ((node.element)).name === null;
12018
+ }
12037
12019
  /**
12038
12020
  * @param {?} parent
12039
12021
  * @param {?} node
@@ -12048,28 +12030,28 @@ function validateNode(parent, node, nodeCount) {
12048
12030
  }
12049
12031
  if (template.lastRenderRootNode &&
12050
12032
  template.lastRenderRootNode.flags & 16777216 /* EmbeddedViews */) {
12051
- throw new Error("Illegal State: Last root node of a template can't have embedded views, at index " + node.index + "!");
12033
+ throw new Error("Illegal State: Last root node of a template can't have embedded views, at index " + node.nodeIndex + "!");
12052
12034
  }
12053
12035
  }
12054
12036
  if (node.flags & 20224 /* CatProvider */) {
12055
12037
  var /** @type {?} */ parentFlags = parent ? parent.flags : 0;
12056
12038
  if ((parentFlags & 1 /* TypeElement */) === 0) {
12057
- throw new Error("Illegal State: Provider/Directive nodes need to be children of elements or anchors, at index " + node.index + "!");
12039
+ throw new Error("Illegal State: StaticProvider/Directive nodes need to be children of elements or anchors, at index " + node.nodeIndex + "!");
12058
12040
  }
12059
12041
  }
12060
12042
  if (node.query) {
12061
12043
  if (node.flags & 67108864 /* TypeContentQuery */ &&
12062
12044
  (!parent || (parent.flags & 16384 /* TypeDirective */) === 0)) {
12063
- throw new Error("Illegal State: Content Query nodes need to be children of directives, at index " + node.index + "!");
12045
+ throw new Error("Illegal State: Content Query nodes need to be children of directives, at index " + node.nodeIndex + "!");
12064
12046
  }
12065
12047
  if (node.flags & 134217728 /* TypeViewQuery */ && parent) {
12066
- throw new Error("Illegal State: View Query nodes have to be top level nodes, at index " + node.index + "!");
12048
+ throw new Error("Illegal State: View Query nodes have to be top level nodes, at index " + node.nodeIndex + "!");
12067
12049
  }
12068
12050
  }
12069
12051
  if (node.childCount) {
12070
- var /** @type {?} */ parentEnd = parent ? parent.index + parent.childCount : nodeCount - 1;
12071
- if (node.index <= parentEnd && node.index + node.childCount > parentEnd) {
12072
- throw new Error("Illegal State: childCount of node leads outside of parent, at index " + node.index + "!");
12052
+ var /** @type {?} */ parentEnd = parent ? parent.nodeIndex + parent.childCount : nodeCount - 1;
12053
+ if (node.nodeIndex <= parentEnd && node.nodeIndex + node.childCount > parentEnd) {
12054
+ throw new Error("Illegal State: childCount of node leads outside of parent, at index " + node.nodeIndex + "!");
12073
12055
  }
12074
12056
  }
12075
12057
  }
@@ -12158,7 +12140,7 @@ function createViewNodes(view) {
12158
12140
  var /** @type {?} */ renderHost;
12159
12141
  if (isComponentView(view)) {
12160
12142
  var /** @type {?} */ hostDef = view.parentNodeDef;
12161
- renderHost = asElementData(/** @type {?} */ ((view.parent)), /** @type {?} */ ((((hostDef)).parent)).index).renderElement;
12143
+ renderHost = asElementData(/** @type {?} */ ((view.parent)), /** @type {?} */ ((((hostDef)).parent)).nodeIndex).renderElement;
12162
12144
  }
12163
12145
  var /** @type {?} */ def = view.def;
12164
12146
  var /** @type {?} */ nodes = view.nodes;
@@ -12192,8 +12174,11 @@ function createViewNodes(view) {
12192
12174
  case 1024 /* TypeFactoryProvider */:
12193
12175
  case 2048 /* TypeUseExistingProvider */:
12194
12176
  case 256 /* TypeValueProvider */: {
12195
- var /** @type {?} */ instance = createProviderInstance(view, nodeDef);
12196
- nodeData = ({ instance: instance });
12177
+ nodeData = nodes[i];
12178
+ if (!nodeData && !(nodeDef.flags & 4096 /* LazyProvider */)) {
12179
+ var /** @type {?} */ instance = createProviderInstance(view, nodeDef);
12180
+ nodeData = ({ instance: instance });
12181
+ }
12197
12182
  break;
12198
12183
  }
12199
12184
  case 16 /* TypePipe */: {
@@ -12202,11 +12187,14 @@ function createViewNodes(view) {
12202
12187
  break;
12203
12188
  }
12204
12189
  case 16384 /* TypeDirective */: {
12205
- var /** @type {?} */ instance = createDirectiveInstance(view, nodeDef);
12206
- nodeData = ({ instance: instance });
12190
+ nodeData = nodes[i];
12191
+ if (!nodeData) {
12192
+ var /** @type {?} */ instance = createDirectiveInstance(view, nodeDef);
12193
+ nodeData = ({ instance: instance });
12194
+ }
12207
12195
  if (nodeDef.flags & 32768 /* Component */) {
12208
- var /** @type {?} */ compView = asElementData(view, /** @type {?} */ ((nodeDef.parent)).index).componentView;
12209
- initView(compView, instance, instance);
12196
+ var /** @type {?} */ compView = asElementData(view, /** @type {?} */ ((nodeDef.parent)).nodeIndex).componentView;
12197
+ initView(compView, nodeData.instance, nodeData.instance);
12210
12198
  }
12211
12199
  break;
12212
12200
  }
@@ -12344,26 +12332,20 @@ function markProjectedViewsForCheck(view) {
12344
12332
  * @return {?}
12345
12333
  */
12346
12334
  function checkAndUpdateNodeInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {
12347
- var /** @type {?} */ changed = false;
12348
12335
  switch (nodeDef.flags & 201347067 /* Types */) {
12349
12336
  case 1 /* TypeElement */:
12350
- changed = checkAndUpdateElementInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
12351
- break;
12337
+ return checkAndUpdateElementInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
12352
12338
  case 2 /* TypeText */:
12353
- changed = checkAndUpdateTextInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
12354
- break;
12339
+ return checkAndUpdateTextInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
12355
12340
  case 16384 /* TypeDirective */:
12356
- changed =
12357
- checkAndUpdateDirectiveInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
12358
- break;
12341
+ return checkAndUpdateDirectiveInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
12359
12342
  case 32 /* TypePureArray */:
12360
12343
  case 64 /* TypePureObject */:
12361
12344
  case 128 /* TypePurePipe */:
12362
- changed =
12363
- checkAndUpdatePureExpressionInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
12364
- break;
12345
+ return checkAndUpdatePureExpressionInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
12346
+ default:
12347
+ throw 'unreachable';
12365
12348
  }
12366
- return changed;
12367
12349
  }
12368
12350
  /**
12369
12351
  * @param {?} view
@@ -12372,34 +12354,20 @@ function checkAndUpdateNodeInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7,
12372
12354
  * @return {?}
12373
12355
  */
12374
12356
  function checkAndUpdateNodeDynamic(view, nodeDef, values) {
12375
- var /** @type {?} */ changed = false;
12376
12357
  switch (nodeDef.flags & 201347067 /* Types */) {
12377
12358
  case 1 /* TypeElement */:
12378
- changed = checkAndUpdateElementDynamic(view, nodeDef, values);
12379
- break;
12359
+ return checkAndUpdateElementDynamic(view, nodeDef, values);
12380
12360
  case 2 /* TypeText */:
12381
- changed = checkAndUpdateTextDynamic(view, nodeDef, values);
12382
- break;
12361
+ return checkAndUpdateTextDynamic(view, nodeDef, values);
12383
12362
  case 16384 /* TypeDirective */:
12384
- changed = checkAndUpdateDirectiveDynamic(view, nodeDef, values);
12385
- break;
12363
+ return checkAndUpdateDirectiveDynamic(view, nodeDef, values);
12386
12364
  case 32 /* TypePureArray */:
12387
12365
  case 64 /* TypePureObject */:
12388
12366
  case 128 /* TypePurePipe */:
12389
- changed = checkAndUpdatePureExpressionDynamic(view, nodeDef, values);
12390
- break;
12391
- }
12392
- if (changed) {
12393
- // Update oldValues after all bindings have been updated,
12394
- // as a setter for a property might update other properties.
12395
- var /** @type {?} */ bindLen = nodeDef.bindings.length;
12396
- var /** @type {?} */ bindingStart = nodeDef.bindingIndex;
12397
- var /** @type {?} */ oldValues = view.oldValues;
12398
- for (var /** @type {?} */ i = 0; i < bindLen; i++) {
12399
- oldValues[bindingStart + i] = values[i];
12400
- }
12367
+ return checkAndUpdatePureExpressionDynamic(view, nodeDef, values);
12368
+ default:
12369
+ throw 'unreachable';
12401
12370
  }
12402
- return changed;
12403
12371
  }
12404
12372
  /**
12405
12373
  * @param {?} view
@@ -12484,9 +12452,9 @@ function checkNoChangesNodeDynamic(view, nodeDef, values) {
12484
12452
  * @return {?}
12485
12453
  */
12486
12454
  function checkNoChangesQuery(view, nodeDef) {
12487
- var /** @type {?} */ queryList = asQueryList(view, nodeDef.index);
12455
+ var /** @type {?} */ queryList = asQueryList(view, nodeDef.nodeIndex);
12488
12456
  if (queryList.dirty) {
12489
- throw expressionChangedAfterItHasBeenCheckedError(Services.createDebugContext(view, nodeDef.index), "Query " + ((nodeDef.query)).id + " not dirty", "Query " + ((nodeDef.query)).id + " dirty", (view.state & 1 /* BeforeFirstCheck */) !== 0);
12457
+ throw expressionChangedAfterItHasBeenCheckedError(Services.createDebugContext(view, nodeDef.nodeIndex), "Query " + ((nodeDef.query)).id + " not dirty", "Query " + ((nodeDef.query)).id + " dirty", (view.state & 1 /* BeforeFirstCheck */) !== 0);
12490
12458
  }
12491
12459
  }
12492
12460
  /**
@@ -12679,7 +12647,7 @@ function execQueriesAction(view, queryFlags, staticDynamicQueryFlag, checkType)
12679
12647
  for (var /** @type {?} */ i = 0; i < nodeCount; i++) {
12680
12648
  var /** @type {?} */ nodeDef = view.def.nodes[i];
12681
12649
  if ((nodeDef.flags & queryFlags) && (nodeDef.flags & staticDynamicQueryFlag)) {
12682
- Services.setCurrentNode(view, nodeDef.index);
12650
+ Services.setCurrentNode(view, nodeDef.nodeIndex);
12683
12651
  switch (checkType) {
12684
12652
  case 0 /* CheckAndUpdate */:
12685
12653
  checkAndUpdateQuery(view, nodeDef);
@@ -12900,7 +12868,7 @@ function applyProviderOverridesToView(def) {
12900
12868
  }
12901
12869
  if (lastElementDef && nodeDef.flags & 3840 /* CatProviderNoDirective */ &&
12902
12870
  providerOverrides.has(/** @type {?} */ ((nodeDef.provider)).token)) {
12903
- elIndicesWithOverwrittenProviders.push(/** @type {?} */ ((lastElementDef)).index);
12871
+ elIndicesWithOverwrittenProviders.push(/** @type {?} */ ((lastElementDef)).nodeIndex);
12904
12872
  lastElementDef = null;
12905
12873
  }
12906
12874
  }
@@ -12919,9 +12887,6 @@ function applyProviderOverridesToView(def) {
12919
12887
  return;
12920
12888
  }
12921
12889
  if (nodeDef.flags & 3840 /* CatProviderNoDirective */) {
12922
- // Make all providers lazy, so that we don't get into trouble
12923
- // with ordering problems of providers on the same element
12924
- nodeDef.flags |= 4096 /* LazyProvider */;
12925
12890
  var /** @type {?} */ provider = ((nodeDef.provider));
12926
12891
  var /** @type {?} */ override = providerOverrides.get(provider.token);
12927
12892
  if (override) {
@@ -12938,7 +12903,8 @@ function applyProviderOverridesToView(def) {
12938
12903
  * @return {?}
12939
12904
  */
12940
12905
  function applyProviderOverridesToNgModule(def) {
12941
- if (providerOverrides.size === 0 || !hasOverrrides(def)) {
12906
+ var _a = calcHasOverrides(def), hasOverrides = _a.hasOverrides, hasDeprecatedOverrides = _a.hasDeprecatedOverrides;
12907
+ if (!hasOverrides) {
12942
12908
  return def;
12943
12909
  }
12944
12910
  // clone the whole view definition,
@@ -12950,8 +12916,20 @@ function applyProviderOverridesToNgModule(def) {
12950
12916
  * @param {?} def
12951
12917
  * @return {?}
12952
12918
  */
12953
- function hasOverrrides(def) {
12954
- return def.providers.some(function (node) { return !!(node.flags & 3840 /* CatProviderNoDirective */) && providerOverrides.has(node.token); });
12919
+ function calcHasOverrides(def) {
12920
+ var /** @type {?} */ hasOverrides = false;
12921
+ var /** @type {?} */ hasDeprecatedOverrides = false;
12922
+ if (providerOverrides.size === 0) {
12923
+ return { hasOverrides: hasOverrides, hasDeprecatedOverrides: hasDeprecatedOverrides };
12924
+ }
12925
+ def.providers.forEach(function (node) {
12926
+ var /** @type {?} */ override = providerOverrides.get(node.token);
12927
+ if ((node.flags & 3840 /* CatProviderNoDirective */) && override) {
12928
+ hasOverrides = true;
12929
+ hasDeprecatedOverrides = hasDeprecatedOverrides || override.deprecatedBehavior;
12930
+ }
12931
+ });
12932
+ return { hasOverrides: hasOverrides, hasDeprecatedOverrides: hasDeprecatedOverrides };
12955
12933
  }
12956
12934
  /**
12957
12935
  * @param {?} def
@@ -12960,9 +12938,12 @@ function applyProviderOverridesToNgModule(def) {
12960
12938
  function applyProviderOverrides(def) {
12961
12939
  for (var /** @type {?} */ i = 0; i < def.providers.length; i++) {
12962
12940
  var /** @type {?} */ provider = def.providers[i];
12963
- // Make all providers lazy, so that we don't get into trouble
12964
- // with ordering problems of providers on the same element
12965
- provider.flags |= 4096 /* LazyProvider */;
12941
+ if (hasDeprecatedOverrides) {
12942
+ // We had a bug where me made
12943
+ // all providers lazy. Keep this logic behind a flag
12944
+ // for migrating existing users.
12945
+ provider.flags |= 4096 /* LazyProvider */;
12946
+ }
12966
12947
  var /** @type {?} */ override = providerOverrides.get(provider.token);
12967
12948
  if (override) {
12968
12949
  provider.flags = (provider.flags & ~3840 /* CatProviderNoDirective */) | override.flags;
@@ -12974,7 +12955,7 @@ function applyProviderOverridesToNgModule(def) {
12974
12955
  }
12975
12956
  /**
12976
12957
  * @param {?} view
12977
- * @param {?} nodeIndex
12958
+ * @param {?} checkIndex
12978
12959
  * @param {?} argStyle
12979
12960
  * @param {?=} v0
12980
12961
  * @param {?=} v1
@@ -12988,16 +12969,16 @@ function applyProviderOverridesToNgModule(def) {
12988
12969
  * @param {?=} v9
12989
12970
  * @return {?}
12990
12971
  */
12991
- function prodCheckAndUpdateNode(view, nodeIndex, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {
12992
- var /** @type {?} */ nodeDef = view.def.nodes[nodeIndex];
12972
+ function prodCheckAndUpdateNode(view, checkIndex, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {
12973
+ var /** @type {?} */ nodeDef = view.def.nodes[checkIndex];
12993
12974
  checkAndUpdateNode(view, nodeDef, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
12994
12975
  return (nodeDef.flags & 224 /* CatPureExpression */) ?
12995
- asPureExpressionData(view, nodeIndex).value :
12976
+ asPureExpressionData(view, checkIndex).value :
12996
12977
  undefined;
12997
12978
  }
12998
12979
  /**
12999
12980
  * @param {?} view
13000
- * @param {?} nodeIndex
12981
+ * @param {?} checkIndex
13001
12982
  * @param {?} argStyle
13002
12983
  * @param {?=} v0
13003
12984
  * @param {?=} v1
@@ -13011,11 +12992,11 @@ function prodCheckAndUpdateNode(view, nodeIndex, argStyle, v0, v1, v2, v3, v4, v
13011
12992
  * @param {?=} v9
13012
12993
  * @return {?}
13013
12994
  */
13014
- function prodCheckNoChangesNode(view, nodeIndex, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {
13015
- var /** @type {?} */ nodeDef = view.def.nodes[nodeIndex];
12995
+ function prodCheckNoChangesNode(view, checkIndex, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {
12996
+ var /** @type {?} */ nodeDef = view.def.nodes[checkIndex];
13016
12997
  checkNoChangesNode(view, nodeDef, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
13017
12998
  return (nodeDef.flags & 224 /* CatPureExpression */) ?
13018
- asPureExpressionData(view, nodeIndex).value :
12999
+ asPureExpressionData(view, checkIndex).value :
13019
13000
  undefined;
13020
13001
  }
13021
13002
  /**
@@ -13107,7 +13088,7 @@ function debugUpdateDirectives(view, checkType) {
13107
13088
  debugSetCurrentNode(view, nextDirectiveWithBinding(view, nodeIndex));
13108
13089
  }
13109
13090
  return (nodeDef.flags & 224 /* CatPureExpression */) ?
13110
- asPureExpressionData(view, nodeDef.index).value :
13091
+ asPureExpressionData(view, nodeDef.nodeIndex).value :
13111
13092
  undefined;
13112
13093
  }
13113
13094
  }
@@ -13145,7 +13126,7 @@ function debugUpdateRenderer(view, checkType) {
13145
13126
  debugSetCurrentNode(view, nextRenderNodeWithBinding(view, nodeIndex));
13146
13127
  }
13147
13128
  return (nodeDef.flags & 224 /* CatPureExpression */) ?
13148
- asPureExpressionData(view, nodeDef.index).value :
13129
+ asPureExpressionData(view, nodeDef.nodeIndex).value :
13149
13130
  undefined;
13150
13131
  }
13151
13132
  }
@@ -13171,7 +13152,7 @@ function debugCheckAndUpdateNode(view, nodeDef, argStyle, givenValues) {
13171
13152
  }
13172
13153
  }
13173
13154
  var /** @type {?} */ elDef = ((nodeDef.parent));
13174
- var /** @type {?} */ el = asElementData(view, elDef.index).renderElement;
13155
+ var /** @type {?} */ el = asElementData(view, elDef.nodeIndex).renderElement;
13175
13156
  if (!((elDef.element)).name) {
13176
13157
  // a comment.
13177
13158
  view.renderer.setValue(el, "bindings=" + JSON.stringify(bindingValues, null, 2));
@@ -13297,7 +13278,7 @@ var DebugContext_ = (function () {
13297
13278
  */
13298
13279
  get: function () {
13299
13280
  // Has to be done lazily as we use the DebugContext also during creation of elements...
13300
- return asElementData(this.elView, this.elDef.index).componentView || this.view;
13281
+ return asElementData(this.elView, this.elDef.nodeIndex).componentView || this.view;
13301
13282
  },
13302
13283
  enumerable: true,
13303
13284
  configurable: true
@@ -13333,7 +13314,7 @@ var DebugContext_ = (function () {
13333
13314
  get: function () {
13334
13315
  var /** @type {?} */ tokens = [];
13335
13316
  if (this.elDef) {
13336
- for (var /** @type {?} */ i = this.elDef.index + 1; i <= this.elDef.index + this.elDef.childCount; i++) {
13317
+ for (var /** @type {?} */ i = this.elDef.nodeIndex + 1; i <= this.elDef.nodeIndex + this.elDef.childCount; i++) {
13337
13318
  var /** @type {?} */ childDef = this.elView.def.nodes[i];
13338
13319
  if (childDef.flags & 20224 /* CatProvider */) {
13339
13320
  tokens.push(/** @type {?} */ ((childDef.provider)).token);
@@ -13354,7 +13335,7 @@ var DebugContext_ = (function () {
13354
13335
  var /** @type {?} */ references = {};
13355
13336
  if (this.elDef) {
13356
13337
  collectReferences(this.elView, this.elDef, references);
13357
- for (var /** @type {?} */ i = this.elDef.index + 1; i <= this.elDef.index + this.elDef.childCount; i++) {
13338
+ for (var /** @type {?} */ i = this.elDef.nodeIndex + 1; i <= this.elDef.nodeIndex + this.elDef.childCount; i++) {
13358
13339
  var /** @type {?} */ childDef = this.elView.def.nodes[i];
13359
13340
  if (childDef.flags & 20224 /* CatProvider */) {
13360
13341
  collectReferences(this.elView, childDef, references);
@@ -13403,11 +13384,11 @@ var DebugContext_ = (function () {
13403
13384
  var /** @type {?} */ logNodeIndex;
13404
13385
  if (this.nodeDef.flags & 2 /* TypeText */) {
13405
13386
  logViewDef = this.view.def;
13406
- logNodeIndex = this.nodeDef.index;
13387
+ logNodeIndex = this.nodeDef.nodeIndex;
13407
13388
  }
13408
13389
  else {
13409
13390
  logViewDef = this.elView.def;
13410
- logNodeIndex = this.elDef.index;
13391
+ logNodeIndex = this.elDef.nodeIndex;
13411
13392
  }
13412
13393
  // Note: we only generate a log function for text and element nodes
13413
13394
  // to make the generated code as small as possible.
@@ -13455,7 +13436,7 @@ function findHostElement(view) {
13455
13436
  view = ((view.parent));
13456
13437
  }
13457
13438
  if (view.parent) {
13458
- return asElementData(view.parent, /** @type {?} */ ((viewParentEl(view))).index);
13439
+ return asElementData(view.parent, /** @type {?} */ ((viewParentEl(view))).nodeIndex);
13459
13440
  }
13460
13441
  return null;
13461
13442
  }
@@ -13890,6 +13871,11 @@ var NgModuleFactory_ = (function (_super) {
13890
13871
  * the
13891
13872
  * trigger is bound to (in the form of `[\@triggerName]="expression"`.
13892
13873
  *
13874
+ * Animation trigger bindings strigify values and then match the previous and current values against
13875
+ * any linked transitions. If a boolean value is provided into the trigger binding then it will both
13876
+ * be represented as `1` or `true` and `0` or `false` for a true and false boolean values
13877
+ * respectively.
13878
+ *
13893
13879
  * ### Usage
13894
13880
  *
13895
13881
  * `trigger` will create an animation trigger reference based on the provided `name` value. The
@@ -14375,6 +14361,21 @@ function keyframes$1(steps) {
14375
14361
  * ])
14376
14362
  * ```
14377
14363
  *
14364
+ * ### Boolean values
14365
+ * if a trigger binding value is a boolean value then it can be matched using a transition
14366
+ * expression that compares `true` and `false` or `1` and `0`.
14367
+ *
14368
+ * ```
14369
+ * // in the template
14370
+ * <div [\@openClose]="open ? true : false">...</div>
14371
+ *
14372
+ * // in the component metadata
14373
+ * trigger('openClose', [
14374
+ * state('true', style({ height: '*' })),
14375
+ * state('false', style({ height: '0px' })),
14376
+ * transition('false <=> true', animate(500))
14377
+ * ])
14378
+ * ```
14378
14379
  * {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
14379
14380
  *
14380
14381
  * \@experimental Animation support is experimental.
@@ -14399,7 +14400,7 @@ function transition$1(stateChangeExpr, steps, options) {
14399
14400
  * var fadeAnimation = animation([
14400
14401
  * style({ opacity: '{{ start }}' }),
14401
14402
  * animate('{{ time }}',
14402
- * style({ opacity: '{{ end }}'))
14403
+ * style({ opacity: '{{ end }}'}))
14403
14404
  * ], { params: { time: '1000ms', start: 0, end: 1 }});
14404
14405
  * ```
14405
14406
  *