@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.
- package/@angular/core/testing.es5.js +13 -3
- package/@angular/core/testing.es5.js.map +1 -1
- package/@angular/core/testing.js +12 -3
- package/@angular/core/testing.js.map +1 -1
- package/@angular/core.es5.js +280 -279
- package/@angular/core.es5.js.map +1 -1
- package/@angular/core.js +280 -280
- package/@angular/core.js.map +1 -1
- package/bundles/core-testing.umd.js +14 -4
- package/bundles/core-testing.umd.js.map +1 -1
- package/bundles/core-testing.umd.min.js +3 -3
- package/bundles/core-testing.umd.min.js.map +1 -1
- package/bundles/core.umd.js +281 -280
- package/bundles/core.umd.js.map +1 -1
- package/bundles/core.umd.min.js +18 -18
- package/bundles/core.umd.min.js.map +1 -1
- package/core.metadata.json +1 -1
- package/package.json +1 -1
- package/src/animation/dsl.d.ts +28 -1
- package/src/change_detection/constants.d.ts +2 -2
- package/src/change_detection/differs/keyvalue_differs.d.ts +2 -2
- package/src/view/element.d.ts +2 -2
- package/src/view/ng_content.d.ts +1 -1
- package/src/view/provider.d.ts +4 -4
- package/src/view/pure_expression.d.ts +3 -3
- package/src/view/text.d.ts +1 -1
- package/src/view/types.d.ts +4 -2
- package/src/view/view.d.ts +1 -1
- package/testing/src/metadata_override.metadata.json +1 -0
- package/testing/src/test_bed.d.ts +25 -0
- package/testing/src/test_bed.metadata.json +1 -1
- package/testing.d.ts +1 -1
package/@angular/core.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v4.4.
|
|
2
|
+
* @license Angular v4.4.7
|
|
3
3
|
* (c) 2010-2017 Google, Inc. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -755,7 +755,7 @@ class Version {
|
|
|
755
755
|
/**
|
|
756
756
|
* \@stable
|
|
757
757
|
*/
|
|
758
|
-
const VERSION = new Version('4.4.
|
|
758
|
+
const VERSION = new Version('4.4.7');
|
|
759
759
|
|
|
760
760
|
/**
|
|
761
761
|
* @license
|
|
@@ -5974,7 +5974,6 @@ class EventListener {
|
|
|
5974
5974
|
this.name = name;
|
|
5975
5975
|
this.callback = callback;
|
|
5976
5976
|
}
|
|
5977
|
-
;
|
|
5978
5977
|
}
|
|
5979
5978
|
/**
|
|
5980
5979
|
* \@experimental All debugging apis are currently experimental.
|
|
@@ -7935,7 +7934,6 @@ class Sanitizer {
|
|
|
7935
7934
|
* Use of this source code is governed by an MIT-style license that can be
|
|
7936
7935
|
* found in the LICENSE file at https://angular.io/license
|
|
7937
7936
|
*/
|
|
7938
|
-
|
|
7939
7937
|
/**
|
|
7940
7938
|
* Node instance data.
|
|
7941
7939
|
*
|
|
@@ -8259,7 +8257,7 @@ function checkAndUpdateBinding(view, def, bindingIdx, value) {
|
|
|
8259
8257
|
function checkBindingNoChanges(view, def, bindingIdx, value) {
|
|
8260
8258
|
const /** @type {?} */ oldValue = view.oldValues[def.bindingIndex + bindingIdx];
|
|
8261
8259
|
if ((view.state & 1 /* BeforeFirstCheck */) || !devModeEqual(oldValue, value)) {
|
|
8262
|
-
throw expressionChangedAfterItHasBeenCheckedError(Services.createDebugContext(view, def.
|
|
8260
|
+
throw expressionChangedAfterItHasBeenCheckedError(Services.createDebugContext(view, def.nodeIndex), oldValue, value, (view.state & 1 /* BeforeFirstCheck */) !== 0);
|
|
8263
8261
|
}
|
|
8264
8262
|
}
|
|
8265
8263
|
/**
|
|
@@ -8307,7 +8305,7 @@ function dispatchEvent(view, nodeIndex, eventName, event) {
|
|
|
8307
8305
|
function declaredViewContainer(view) {
|
|
8308
8306
|
if (view.parent) {
|
|
8309
8307
|
const /** @type {?} */ parentView = view.parent;
|
|
8310
|
-
return asElementData(parentView, /** @type {?} */ ((view.parentNodeDef)).
|
|
8308
|
+
return asElementData(parentView, /** @type {?} */ ((view.parentNodeDef)).nodeIndex);
|
|
8311
8309
|
}
|
|
8312
8310
|
return null;
|
|
8313
8311
|
}
|
|
@@ -8335,9 +8333,9 @@ function viewParentEl(view) {
|
|
|
8335
8333
|
function renderNode(view, def) {
|
|
8336
8334
|
switch (def.flags & 201347067 /* Types */) {
|
|
8337
8335
|
case 1 /* TypeElement */:
|
|
8338
|
-
return asElementData(view, def.
|
|
8336
|
+
return asElementData(view, def.nodeIndex).renderElement;
|
|
8339
8337
|
case 2 /* TypeText */:
|
|
8340
|
-
return asTextData(view, def.
|
|
8338
|
+
return asTextData(view, def.nodeIndex).renderText;
|
|
8341
8339
|
}
|
|
8342
8340
|
}
|
|
8343
8341
|
/**
|
|
@@ -8423,7 +8421,7 @@ function getParentRenderElement(view, renderHost, def) {
|
|
|
8423
8421
|
ViewEncapsulation.Native)) {
|
|
8424
8422
|
// only children of non components, or children of components with native encapsulation should
|
|
8425
8423
|
// be attached.
|
|
8426
|
-
return asElementData(view, /** @type {?} */ ((def.renderParent)).
|
|
8424
|
+
return asElementData(view, /** @type {?} */ ((def.renderParent)).nodeIndex).renderElement;
|
|
8427
8425
|
}
|
|
8428
8426
|
}
|
|
8429
8427
|
else {
|
|
@@ -8505,8 +8503,8 @@ function visitProjectedRenderNodes(view, ngContentIndex, action, parentNode, nex
|
|
|
8505
8503
|
}
|
|
8506
8504
|
const /** @type {?} */ hostView = ((compView)).parent;
|
|
8507
8505
|
const /** @type {?} */ hostElDef = viewParentEl(/** @type {?} */ ((compView)));
|
|
8508
|
-
const /** @type {?} */ startIndex = ((hostElDef)).
|
|
8509
|
-
const /** @type {?} */ endIndex = ((hostElDef)).
|
|
8506
|
+
const /** @type {?} */ startIndex = ((hostElDef)).nodeIndex + 1;
|
|
8507
|
+
const /** @type {?} */ endIndex = ((hostElDef)).nodeIndex + ((hostElDef)).childCount;
|
|
8510
8508
|
for (let /** @type {?} */ i = startIndex; i <= endIndex; i++) {
|
|
8511
8509
|
const /** @type {?} */ nodeDef = ((hostView)).def.nodes[i];
|
|
8512
8510
|
if (nodeDef.ngContentIndex === ngContentIndex) {
|
|
@@ -8547,7 +8545,7 @@ function visitRenderNode(view, nodeDef, action, parentNode, nextSibling, target)
|
|
|
8547
8545
|
execRenderNodeAction(view, rn, action, parentNode, nextSibling, target);
|
|
8548
8546
|
}
|
|
8549
8547
|
if (nodeDef.bindingFlags & (32 /* SyntheticHostProperty */)) {
|
|
8550
|
-
const /** @type {?} */ compView = asElementData(view, nodeDef.
|
|
8548
|
+
const /** @type {?} */ compView = asElementData(view, nodeDef.nodeIndex).componentView;
|
|
8551
8549
|
execRenderNodeAction(compView, rn, action, parentNode, nextSibling, target);
|
|
8552
8550
|
}
|
|
8553
8551
|
}
|
|
@@ -8555,13 +8553,13 @@ function visitRenderNode(view, nodeDef, action, parentNode, nextSibling, target)
|
|
|
8555
8553
|
execRenderNodeAction(view, rn, action, parentNode, nextSibling, target);
|
|
8556
8554
|
}
|
|
8557
8555
|
if (nodeDef.flags & 16777216 /* EmbeddedViews */) {
|
|
8558
|
-
const /** @type {?} */ embeddedViews = ((asElementData(view, nodeDef.
|
|
8556
|
+
const /** @type {?} */ embeddedViews = ((asElementData(view, nodeDef.nodeIndex).viewContainer))._embeddedViews;
|
|
8559
8557
|
for (let /** @type {?} */ k = 0; k < embeddedViews.length; k++) {
|
|
8560
8558
|
visitRootRenderNodes(embeddedViews[k], action, parentNode, nextSibling, target);
|
|
8561
8559
|
}
|
|
8562
8560
|
}
|
|
8563
8561
|
if (nodeDef.flags & 1 /* TypeElement */ && !((nodeDef.element)).name) {
|
|
8564
|
-
visitSiblingRenderNodes(view, action, nodeDef.
|
|
8562
|
+
visitSiblingRenderNodes(view, action, nodeDef.nodeIndex + 1, nodeDef.nodeIndex + nodeDef.childCount, parentNode, nextSibling, target);
|
|
8565
8563
|
}
|
|
8566
8564
|
}
|
|
8567
8565
|
}
|
|
@@ -8715,13 +8713,14 @@ function anchorDef(flags, matchedQueriesDsl, ngContentIndex, childCount, handleE
|
|
|
8715
8713
|
const /** @type {?} */ template = templateFactory ? resolveDefinition(templateFactory) : null;
|
|
8716
8714
|
return {
|
|
8717
8715
|
// will bet set by the view definition
|
|
8718
|
-
|
|
8716
|
+
nodeIndex: -1,
|
|
8719
8717
|
parent: null,
|
|
8720
8718
|
renderParent: null,
|
|
8721
8719
|
bindingIndex: -1,
|
|
8722
8720
|
outputIndex: -1,
|
|
8723
8721
|
// regular values
|
|
8724
8722
|
flags,
|
|
8723
|
+
checkIndex: -1,
|
|
8725
8724
|
childFlags: 0,
|
|
8726
8725
|
directChildFlags: 0,
|
|
8727
8726
|
childMatchedQueries: 0, matchedQueries, matchedQueryIds, references, ngContentIndex, childCount,
|
|
@@ -8746,6 +8745,7 @@ function anchorDef(flags, matchedQueriesDsl, ngContentIndex, childCount, handleE
|
|
|
8746
8745
|
};
|
|
8747
8746
|
}
|
|
8748
8747
|
/**
|
|
8748
|
+
* @param {?} checkIndex
|
|
8749
8749
|
* @param {?} flags
|
|
8750
8750
|
* @param {?} matchedQueriesDsl
|
|
8751
8751
|
* @param {?} ngContentIndex
|
|
@@ -8759,7 +8759,7 @@ function anchorDef(flags, matchedQueriesDsl, ngContentIndex, childCount, handleE
|
|
|
8759
8759
|
* @param {?=} componentRendererType
|
|
8760
8760
|
* @return {?}
|
|
8761
8761
|
*/
|
|
8762
|
-
function elementDef(flags, matchedQueriesDsl, ngContentIndex, childCount, namespaceAndName, fixedAttrs = [], bindings, outputs, handleEvent, componentView, componentRendererType) {
|
|
8762
|
+
function elementDef(checkIndex, flags, matchedQueriesDsl, ngContentIndex, childCount, namespaceAndName, fixedAttrs = [], bindings, outputs, handleEvent, componentView, componentRendererType) {
|
|
8763
8763
|
if (!handleEvent) {
|
|
8764
8764
|
handleEvent = NOOP;
|
|
8765
8765
|
}
|
|
@@ -8810,12 +8810,13 @@ function elementDef(flags, matchedQueriesDsl, ngContentIndex, childCount, namesp
|
|
|
8810
8810
|
flags |= 1 /* TypeElement */;
|
|
8811
8811
|
return {
|
|
8812
8812
|
// will bet set by the view definition
|
|
8813
|
-
|
|
8813
|
+
nodeIndex: -1,
|
|
8814
8814
|
parent: null,
|
|
8815
8815
|
renderParent: null,
|
|
8816
8816
|
bindingIndex: -1,
|
|
8817
8817
|
outputIndex: -1,
|
|
8818
8818
|
// regular values
|
|
8819
|
+
checkIndex,
|
|
8819
8820
|
flags,
|
|
8820
8821
|
childFlags: 0,
|
|
8821
8822
|
directChildFlags: 0,
|
|
@@ -8886,7 +8887,7 @@ function createElement(view, renderHost, def) {
|
|
|
8886
8887
|
function listenToElementOutputs(view, compView, def, el) {
|
|
8887
8888
|
for (let /** @type {?} */ i = 0; i < def.outputs.length; i++) {
|
|
8888
8889
|
const /** @type {?} */ output = def.outputs[i];
|
|
8889
|
-
const /** @type {?} */ handleEventClosure = renderEventHandlerClosure(view, def.
|
|
8890
|
+
const /** @type {?} */ handleEventClosure = renderEventHandlerClosure(view, def.nodeIndex, elementEventFullName(output.target, output.eventName));
|
|
8890
8891
|
let /** @type {?} */ listenTarget = output.target;
|
|
8891
8892
|
let /** @type {?} */ listenerView = view;
|
|
8892
8893
|
if (output.target === 'component') {
|
|
@@ -8980,7 +8981,7 @@ function checkAndUpdateElementValue(view, def, bindingIdx, value) {
|
|
|
8980
8981
|
return false;
|
|
8981
8982
|
}
|
|
8982
8983
|
const /** @type {?} */ binding = def.bindings[bindingIdx];
|
|
8983
|
-
const /** @type {?} */ elData = asElementData(view, def.
|
|
8984
|
+
const /** @type {?} */ elData = asElementData(view, def.nodeIndex);
|
|
8984
8985
|
const /** @type {?} */ renderNode$$1 = elData.renderElement;
|
|
8985
8986
|
const /** @type {?} */ name = ((binding.name));
|
|
8986
8987
|
switch (binding.flags & 15 /* Types */) {
|
|
@@ -9089,7 +9090,7 @@ function setElementProperty(view, binding, renderNode$$1, name, value) {
|
|
|
9089
9090
|
* Use of this source code is governed by an MIT-style license that can be
|
|
9090
9091
|
* found in the LICENSE file at https://angular.io/license
|
|
9091
9092
|
*/
|
|
9092
|
-
const
|
|
9093
|
+
const UNDEFINED_VALUE = new Object();
|
|
9093
9094
|
const InjectorRefTokenKey$1 = tokenKey(Injector);
|
|
9094
9095
|
const NgModuleRefTokenKey = tokenKey(NgModuleRef);
|
|
9095
9096
|
/**
|
|
@@ -9134,8 +9135,9 @@ function initNgModule(data) {
|
|
|
9134
9135
|
const /** @type {?} */ providers = data._providers = new Array(def.providers.length);
|
|
9135
9136
|
for (let /** @type {?} */ i = 0; i < def.providers.length; i++) {
|
|
9136
9137
|
const /** @type {?} */ provDef = def.providers[i];
|
|
9137
|
-
|
|
9138
|
-
_createProviderInstance$1(data, provDef);
|
|
9138
|
+
if (!(provDef.flags & 4096 /* LazyProvider */)) {
|
|
9139
|
+
providers[i] = _createProviderInstance$1(data, provDef);
|
|
9140
|
+
}
|
|
9139
9141
|
}
|
|
9140
9142
|
}
|
|
9141
9143
|
/**
|
|
@@ -9163,11 +9165,11 @@ function resolveNgModuleDep(data, depDef, notFoundValue = Injector.THROW_IF_NOT_
|
|
|
9163
9165
|
const /** @type {?} */ providerDef = data._def.providersByKey[tokenKey$$1];
|
|
9164
9166
|
if (providerDef) {
|
|
9165
9167
|
let /** @type {?} */ providerInstance = data._providers[providerDef.index];
|
|
9166
|
-
if (providerInstance ===
|
|
9168
|
+
if (providerInstance === undefined) {
|
|
9167
9169
|
providerInstance = data._providers[providerDef.index] =
|
|
9168
9170
|
_createProviderInstance$1(data, providerDef);
|
|
9169
9171
|
}
|
|
9170
|
-
return providerInstance;
|
|
9172
|
+
return providerInstance === UNDEFINED_VALUE ? undefined : providerInstance;
|
|
9171
9173
|
}
|
|
9172
9174
|
return data._parent.get(depDef.token, notFoundValue);
|
|
9173
9175
|
}
|
|
@@ -9192,7 +9194,7 @@ function _createProviderInstance$1(ngModule, providerDef) {
|
|
|
9192
9194
|
injectable = providerDef.value;
|
|
9193
9195
|
break;
|
|
9194
9196
|
}
|
|
9195
|
-
return injectable;
|
|
9197
|
+
return injectable === undefined ? UNDEFINED_VALUE : injectable;
|
|
9196
9198
|
}
|
|
9197
9199
|
/**
|
|
9198
9200
|
* @param {?} ngModule
|
|
@@ -9202,29 +9204,22 @@ function _createProviderInstance$1(ngModule, providerDef) {
|
|
|
9202
9204
|
*/
|
|
9203
9205
|
function _createClass(ngModule, ctor, deps) {
|
|
9204
9206
|
const /** @type {?} */ len = deps.length;
|
|
9205
|
-
let /** @type {?} */ injectable;
|
|
9206
9207
|
switch (len) {
|
|
9207
9208
|
case 0:
|
|
9208
|
-
|
|
9209
|
-
break;
|
|
9209
|
+
return new ctor();
|
|
9210
9210
|
case 1:
|
|
9211
|
-
|
|
9212
|
-
break;
|
|
9211
|
+
return new ctor(resolveNgModuleDep(ngModule, deps[0]));
|
|
9213
9212
|
case 2:
|
|
9214
|
-
|
|
9215
|
-
new ctor(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]));
|
|
9216
|
-
break;
|
|
9213
|
+
return new ctor(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]));
|
|
9217
9214
|
case 3:
|
|
9218
|
-
|
|
9219
|
-
break;
|
|
9215
|
+
return new ctor(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]), resolveNgModuleDep(ngModule, deps[2]));
|
|
9220
9216
|
default:
|
|
9221
9217
|
const /** @type {?} */ depValues = new Array(len);
|
|
9222
9218
|
for (let /** @type {?} */ i = 0; i < len; i++) {
|
|
9223
9219
|
depValues[i] = resolveNgModuleDep(ngModule, deps[i]);
|
|
9224
9220
|
}
|
|
9225
|
-
|
|
9221
|
+
return new ctor(...depValues);
|
|
9226
9222
|
}
|
|
9227
|
-
return injectable;
|
|
9228
9223
|
}
|
|
9229
9224
|
/**
|
|
9230
9225
|
* @param {?} ngModule
|
|
@@ -9234,29 +9229,22 @@ function _createClass(ngModule, ctor, deps) {
|
|
|
9234
9229
|
*/
|
|
9235
9230
|
function _callFactory(ngModule, factory, deps) {
|
|
9236
9231
|
const /** @type {?} */ len = deps.length;
|
|
9237
|
-
let /** @type {?} */ injectable;
|
|
9238
9232
|
switch (len) {
|
|
9239
9233
|
case 0:
|
|
9240
|
-
|
|
9241
|
-
break;
|
|
9234
|
+
return factory();
|
|
9242
9235
|
case 1:
|
|
9243
|
-
|
|
9244
|
-
break;
|
|
9236
|
+
return factory(resolveNgModuleDep(ngModule, deps[0]));
|
|
9245
9237
|
case 2:
|
|
9246
|
-
|
|
9247
|
-
factory(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]));
|
|
9248
|
-
break;
|
|
9238
|
+
return factory(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]));
|
|
9249
9239
|
case 3:
|
|
9250
|
-
|
|
9251
|
-
break;
|
|
9240
|
+
return factory(resolveNgModuleDep(ngModule, deps[0]), resolveNgModuleDep(ngModule, deps[1]), resolveNgModuleDep(ngModule, deps[2]));
|
|
9252
9241
|
default:
|
|
9253
9242
|
const /** @type {?} */ depValues = Array(len);
|
|
9254
9243
|
for (let /** @type {?} */ i = 0; i < len; i++) {
|
|
9255
9244
|
depValues[i] = resolveNgModuleDep(ngModule, deps[i]);
|
|
9256
9245
|
}
|
|
9257
|
-
|
|
9246
|
+
return factory(...depValues);
|
|
9258
9247
|
}
|
|
9259
|
-
return injectable;
|
|
9260
9248
|
}
|
|
9261
9249
|
/**
|
|
9262
9250
|
* @param {?} ngModule
|
|
@@ -9269,7 +9257,7 @@ function callNgModuleLifecycle(ngModule, lifecycles) {
|
|
|
9269
9257
|
const /** @type {?} */ provDef = def.providers[i];
|
|
9270
9258
|
if (provDef.flags & 131072 /* OnDestroy */) {
|
|
9271
9259
|
const /** @type {?} */ instance = ngModule._providers[i];
|
|
9272
|
-
if (instance && instance !==
|
|
9260
|
+
if (instance && instance !== UNDEFINED_VALUE) {
|
|
9273
9261
|
instance.ngOnDestroy();
|
|
9274
9262
|
}
|
|
9275
9263
|
}
|
|
@@ -9542,7 +9530,7 @@ class ComponentFactory_ extends ComponentFactory {
|
|
|
9542
9530
|
throw new Error('ngModule should be provided');
|
|
9543
9531
|
}
|
|
9544
9532
|
const /** @type {?} */ viewDef = resolveDefinition(this.viewDefFactory);
|
|
9545
|
-
const /** @type {?} */ componentNodeIndex = ((((viewDef.nodes[0].element)).componentProvider)).
|
|
9533
|
+
const /** @type {?} */ componentNodeIndex = ((((viewDef.nodes[0].element)).componentProvider)).nodeIndex;
|
|
9546
9534
|
const /** @type {?} */ view = Services.createRootView(injector, projectableNodes || [], rootSelectorOrNode, viewDef, ngModule, EMPTY_CONTEXT);
|
|
9547
9535
|
const /** @type {?} */ component = asProviderData(view, componentNodeIndex).instance;
|
|
9548
9536
|
if (rootSelectorOrNode) {
|
|
@@ -9568,7 +9556,7 @@ class ComponentRef_ extends ComponentRef {
|
|
|
9568
9556
|
* @return {?}
|
|
9569
9557
|
*/
|
|
9570
9558
|
get location() {
|
|
9571
|
-
return new ElementRef(asElementData(this._view, this._elDef.
|
|
9559
|
+
return new ElementRef(asElementData(this._view, this._elDef.nodeIndex).renderElement);
|
|
9572
9560
|
}
|
|
9573
9561
|
/**
|
|
9574
9562
|
* @return {?}
|
|
@@ -9578,17 +9566,14 @@ class ComponentRef_ extends ComponentRef {
|
|
|
9578
9566
|
* @return {?}
|
|
9579
9567
|
*/
|
|
9580
9568
|
get instance() { return this._component; }
|
|
9581
|
-
;
|
|
9582
9569
|
/**
|
|
9583
9570
|
* @return {?}
|
|
9584
9571
|
*/
|
|
9585
9572
|
get hostView() { return this._viewRef; }
|
|
9586
|
-
;
|
|
9587
9573
|
/**
|
|
9588
9574
|
* @return {?}
|
|
9589
9575
|
*/
|
|
9590
9576
|
get changeDetectorRef() { return this._viewRef; }
|
|
9591
|
-
;
|
|
9592
9577
|
/**
|
|
9593
9578
|
* @return {?}
|
|
9594
9579
|
*/
|
|
@@ -9674,7 +9659,6 @@ class ViewContainerRef_ {
|
|
|
9674
9659
|
* @return {?}
|
|
9675
9660
|
*/
|
|
9676
9661
|
get length() { return this._embeddedViews.length; }
|
|
9677
|
-
;
|
|
9678
9662
|
/**
|
|
9679
9663
|
* @template C
|
|
9680
9664
|
* @param {?} templateRef
|
|
@@ -9896,7 +9880,7 @@ class TemplateRef_ extends TemplateRef {
|
|
|
9896
9880
|
* @return {?}
|
|
9897
9881
|
*/
|
|
9898
9882
|
get elementRef() {
|
|
9899
|
-
return new ElementRef(asElementData(this._parentView, this._def.
|
|
9883
|
+
return new ElementRef(asElementData(this._parentView, this._def.nodeIndex).renderElement);
|
|
9900
9884
|
}
|
|
9901
9885
|
}
|
|
9902
9886
|
/**
|
|
@@ -9934,14 +9918,14 @@ class Injector_ {
|
|
|
9934
9918
|
function nodeValue(view, index) {
|
|
9935
9919
|
const /** @type {?} */ def = view.def.nodes[index];
|
|
9936
9920
|
if (def.flags & 1 /* TypeElement */) {
|
|
9937
|
-
const /** @type {?} */ elData = asElementData(view, def.
|
|
9921
|
+
const /** @type {?} */ elData = asElementData(view, def.nodeIndex);
|
|
9938
9922
|
return ((def.element)).template ? elData.template : elData.renderElement;
|
|
9939
9923
|
}
|
|
9940
9924
|
else if (def.flags & 2 /* TypeText */) {
|
|
9941
|
-
return asTextData(view, def.
|
|
9925
|
+
return asTextData(view, def.nodeIndex).renderText;
|
|
9942
9926
|
}
|
|
9943
9927
|
else if (def.flags & (20224 /* CatProvider */ | 16 /* TypePipe */)) {
|
|
9944
|
-
return asProviderData(view, def.
|
|
9928
|
+
return asProviderData(view, def.nodeIndex).instance;
|
|
9945
9929
|
}
|
|
9946
9930
|
throw new Error(`Illegal state: read nodeValue for node index ${index}`);
|
|
9947
9931
|
}
|
|
@@ -10225,8 +10209,8 @@ const ViewContainerRefTokenKey = tokenKey(ViewContainerRef);
|
|
|
10225
10209
|
const TemplateRefTokenKey = tokenKey(TemplateRef);
|
|
10226
10210
|
const ChangeDetectorRefTokenKey = tokenKey(ChangeDetectorRef);
|
|
10227
10211
|
const InjectorRefTokenKey = tokenKey(Injector);
|
|
10228
|
-
const NOT_CREATED = new Object();
|
|
10229
10212
|
/**
|
|
10213
|
+
* @param {?} checkIndex
|
|
10230
10214
|
* @param {?} flags
|
|
10231
10215
|
* @param {?} matchedQueries
|
|
10232
10216
|
* @param {?} childCount
|
|
@@ -10236,7 +10220,7 @@ const NOT_CREATED = new Object();
|
|
|
10236
10220
|
* @param {?=} outputs
|
|
10237
10221
|
* @return {?}
|
|
10238
10222
|
*/
|
|
10239
|
-
function directiveDef(flags, matchedQueries, childCount, ctor, deps, props, outputs) {
|
|
10223
|
+
function directiveDef(checkIndex, flags, matchedQueries, childCount, ctor, deps, props, outputs) {
|
|
10240
10224
|
const /** @type {?} */ bindings = [];
|
|
10241
10225
|
if (props) {
|
|
10242
10226
|
for (let /** @type {?} */ prop in props) {
|
|
@@ -10257,7 +10241,7 @@ function directiveDef(flags, matchedQueries, childCount, ctor, deps, props, outp
|
|
|
10257
10241
|
}
|
|
10258
10242
|
}
|
|
10259
10243
|
flags |= 16384 /* TypeDirective */;
|
|
10260
|
-
return _def(flags, matchedQueries, childCount, ctor, ctor, deps, bindings, outputDefs);
|
|
10244
|
+
return _def(checkIndex, flags, matchedQueries, childCount, ctor, ctor, deps, bindings, outputDefs);
|
|
10261
10245
|
}
|
|
10262
10246
|
/**
|
|
10263
10247
|
* @param {?} flags
|
|
@@ -10267,7 +10251,7 @@ function directiveDef(flags, matchedQueries, childCount, ctor, deps, props, outp
|
|
|
10267
10251
|
*/
|
|
10268
10252
|
function pipeDef(flags, ctor, deps) {
|
|
10269
10253
|
flags |= 16 /* TypePipe */;
|
|
10270
|
-
return _def(flags, null, 0, ctor, ctor, deps);
|
|
10254
|
+
return _def(-1, flags, null, 0, ctor, ctor, deps);
|
|
10271
10255
|
}
|
|
10272
10256
|
/**
|
|
10273
10257
|
* @param {?} flags
|
|
@@ -10278,9 +10262,10 @@ function pipeDef(flags, ctor, deps) {
|
|
|
10278
10262
|
* @return {?}
|
|
10279
10263
|
*/
|
|
10280
10264
|
function providerDef(flags, matchedQueries, token, value, deps) {
|
|
10281
|
-
return _def(flags, matchedQueries, 0, token, value, deps);
|
|
10265
|
+
return _def(-1, flags, matchedQueries, 0, token, value, deps);
|
|
10282
10266
|
}
|
|
10283
10267
|
/**
|
|
10268
|
+
* @param {?} checkIndex
|
|
10284
10269
|
* @param {?} flags
|
|
10285
10270
|
* @param {?} matchedQueriesDsl
|
|
10286
10271
|
* @param {?} childCount
|
|
@@ -10291,7 +10276,7 @@ function providerDef(flags, matchedQueries, token, value, deps) {
|
|
|
10291
10276
|
* @param {?=} outputs
|
|
10292
10277
|
* @return {?}
|
|
10293
10278
|
*/
|
|
10294
|
-
function _def(flags, matchedQueriesDsl, childCount, token, value, deps, bindings, outputs) {
|
|
10279
|
+
function _def(checkIndex, flags, matchedQueriesDsl, childCount, token, value, deps, bindings, outputs) {
|
|
10295
10280
|
const { matchedQueries, references, matchedQueryIds } = splitMatchedQueriesDsl(matchedQueriesDsl);
|
|
10296
10281
|
if (!outputs) {
|
|
10297
10282
|
outputs = [];
|
|
@@ -10302,12 +10287,13 @@ function _def(flags, matchedQueriesDsl, childCount, token, value, deps, bindings
|
|
|
10302
10287
|
const /** @type {?} */ depDefs = splitDepsDsl(deps);
|
|
10303
10288
|
return {
|
|
10304
10289
|
// will bet set by the view definition
|
|
10305
|
-
|
|
10290
|
+
nodeIndex: -1,
|
|
10306
10291
|
parent: null,
|
|
10307
10292
|
renderParent: null,
|
|
10308
10293
|
bindingIndex: -1,
|
|
10309
10294
|
outputIndex: -1,
|
|
10310
10295
|
// regular values
|
|
10296
|
+
checkIndex,
|
|
10311
10297
|
flags,
|
|
10312
10298
|
childFlags: 0,
|
|
10313
10299
|
directChildFlags: 0,
|
|
@@ -10327,7 +10313,7 @@ function _def(flags, matchedQueriesDsl, childCount, token, value, deps, bindings
|
|
|
10327
10313
|
* @return {?}
|
|
10328
10314
|
*/
|
|
10329
10315
|
function createProviderInstance(view, def) {
|
|
10330
|
-
return
|
|
10316
|
+
return _createProviderInstance(view, def);
|
|
10331
10317
|
}
|
|
10332
10318
|
/**
|
|
10333
10319
|
* @param {?} view
|
|
@@ -10358,7 +10344,7 @@ function createDirectiveInstance(view, def) {
|
|
|
10358
10344
|
if (def.outputs.length) {
|
|
10359
10345
|
for (let /** @type {?} */ i = 0; i < def.outputs.length; i++) {
|
|
10360
10346
|
const /** @type {?} */ output = def.outputs[i];
|
|
10361
|
-
const /** @type {?} */ subscription = instance[((output.propName))].subscribe(eventHandlerClosure(view, /** @type {?} */ ((def.parent)).
|
|
10347
|
+
const /** @type {?} */ subscription = instance[((output.propName))].subscribe(eventHandlerClosure(view, /** @type {?} */ ((def.parent)).nodeIndex, output.eventName)); /** @type {?} */
|
|
10362
10348
|
((view.disposables))[def.outputIndex + i] = subscription.unsubscribe.bind(subscription);
|
|
10363
10349
|
}
|
|
10364
10350
|
}
|
|
@@ -10397,7 +10383,7 @@ function eventHandlerClosure(view, index, eventName) {
|
|
|
10397
10383
|
* @return {?}
|
|
10398
10384
|
*/
|
|
10399
10385
|
function checkAndUpdateDirectiveInline(view, def, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {
|
|
10400
|
-
const /** @type {?} */ providerData = asProviderData(view, def.
|
|
10386
|
+
const /** @type {?} */ providerData = asProviderData(view, def.nodeIndex);
|
|
10401
10387
|
const /** @type {?} */ directive = providerData.instance;
|
|
10402
10388
|
let /** @type {?} */ changed = false;
|
|
10403
10389
|
let /** @type {?} */ changes = ((undefined));
|
|
@@ -10460,7 +10446,7 @@ function checkAndUpdateDirectiveInline(view, def, v0, v1, v2, v3, v4, v5, v6, v7
|
|
|
10460
10446
|
* @return {?}
|
|
10461
10447
|
*/
|
|
10462
10448
|
function checkAndUpdateDirectiveDynamic(view, def, values) {
|
|
10463
|
-
const /** @type {?} */ providerData = asProviderData(view, def.
|
|
10449
|
+
const /** @type {?} */ providerData = asProviderData(view, def.nodeIndex);
|
|
10464
10450
|
const /** @type {?} */ directive = providerData.instance;
|
|
10465
10451
|
let /** @type {?} */ changed = false;
|
|
10466
10452
|
let /** @type {?} */ changes = ((undefined));
|
|
@@ -10490,22 +10476,16 @@ function _createProviderInstance(view, def) {
|
|
|
10490
10476
|
// private services can see other private services
|
|
10491
10477
|
const /** @type {?} */ allowPrivateServices = (def.flags & 8192 /* PrivateProvider */) > 0;
|
|
10492
10478
|
const /** @type {?} */ providerDef = def.provider;
|
|
10493
|
-
let /** @type {?} */ injectable;
|
|
10494
10479
|
switch (def.flags & 201347067 /* Types */) {
|
|
10495
10480
|
case 512 /* TypeClassProvider */:
|
|
10496
|
-
|
|
10497
|
-
break;
|
|
10481
|
+
return createClass(view, /** @type {?} */ ((def.parent)), allowPrivateServices, /** @type {?} */ ((providerDef)).value, /** @type {?} */ ((providerDef)).deps);
|
|
10498
10482
|
case 1024 /* TypeFactoryProvider */:
|
|
10499
|
-
|
|
10500
|
-
break;
|
|
10483
|
+
return callFactory(view, /** @type {?} */ ((def.parent)), allowPrivateServices, /** @type {?} */ ((providerDef)).value, /** @type {?} */ ((providerDef)).deps);
|
|
10501
10484
|
case 2048 /* TypeUseExistingProvider */:
|
|
10502
|
-
|
|
10503
|
-
break;
|
|
10485
|
+
return resolveDep(view, /** @type {?} */ ((def.parent)), allowPrivateServices, /** @type {?} */ ((providerDef)).deps[0]);
|
|
10504
10486
|
case 256 /* TypeValueProvider */:
|
|
10505
|
-
|
|
10506
|
-
break;
|
|
10487
|
+
return ((providerDef)).value;
|
|
10507
10488
|
}
|
|
10508
|
-
return injectable;
|
|
10509
10489
|
}
|
|
10510
10490
|
/**
|
|
10511
10491
|
* @param {?} view
|
|
@@ -10517,28 +10497,22 @@ function _createProviderInstance(view, def) {
|
|
|
10517
10497
|
*/
|
|
10518
10498
|
function createClass(view, elDef, allowPrivateServices, ctor, deps) {
|
|
10519
10499
|
const /** @type {?} */ len = deps.length;
|
|
10520
|
-
let /** @type {?} */ injectable;
|
|
10521
10500
|
switch (len) {
|
|
10522
10501
|
case 0:
|
|
10523
|
-
|
|
10524
|
-
break;
|
|
10502
|
+
return new ctor();
|
|
10525
10503
|
case 1:
|
|
10526
|
-
|
|
10527
|
-
break;
|
|
10504
|
+
return new ctor(resolveDep(view, elDef, allowPrivateServices, deps[0]));
|
|
10528
10505
|
case 2:
|
|
10529
|
-
|
|
10530
|
-
break;
|
|
10506
|
+
return new ctor(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]));
|
|
10531
10507
|
case 3:
|
|
10532
|
-
|
|
10533
|
-
break;
|
|
10508
|
+
return new ctor(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]), resolveDep(view, elDef, allowPrivateServices, deps[2]));
|
|
10534
10509
|
default:
|
|
10535
10510
|
const /** @type {?} */ depValues = new Array(len);
|
|
10536
10511
|
for (let /** @type {?} */ i = 0; i < len; i++) {
|
|
10537
10512
|
depValues[i] = resolveDep(view, elDef, allowPrivateServices, deps[i]);
|
|
10538
10513
|
}
|
|
10539
|
-
|
|
10514
|
+
return new ctor(...depValues);
|
|
10540
10515
|
}
|
|
10541
|
-
return injectable;
|
|
10542
10516
|
}
|
|
10543
10517
|
/**
|
|
10544
10518
|
* @param {?} view
|
|
@@ -10550,28 +10524,22 @@ function createClass(view, elDef, allowPrivateServices, ctor, deps) {
|
|
|
10550
10524
|
*/
|
|
10551
10525
|
function callFactory(view, elDef, allowPrivateServices, factory, deps) {
|
|
10552
10526
|
const /** @type {?} */ len = deps.length;
|
|
10553
|
-
let /** @type {?} */ injectable;
|
|
10554
10527
|
switch (len) {
|
|
10555
10528
|
case 0:
|
|
10556
|
-
|
|
10557
|
-
break;
|
|
10529
|
+
return factory();
|
|
10558
10530
|
case 1:
|
|
10559
|
-
|
|
10560
|
-
break;
|
|
10531
|
+
return factory(resolveDep(view, elDef, allowPrivateServices, deps[0]));
|
|
10561
10532
|
case 2:
|
|
10562
|
-
|
|
10563
|
-
break;
|
|
10533
|
+
return factory(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]));
|
|
10564
10534
|
case 3:
|
|
10565
|
-
|
|
10566
|
-
break;
|
|
10535
|
+
return factory(resolveDep(view, elDef, allowPrivateServices, deps[0]), resolveDep(view, elDef, allowPrivateServices, deps[1]), resolveDep(view, elDef, allowPrivateServices, deps[2]));
|
|
10567
10536
|
default:
|
|
10568
10537
|
const /** @type {?} */ depValues = Array(len);
|
|
10569
10538
|
for (let /** @type {?} */ i = 0; i < len; i++) {
|
|
10570
10539
|
depValues[i] = resolveDep(view, elDef, allowPrivateServices, deps[i]);
|
|
10571
10540
|
}
|
|
10572
|
-
|
|
10541
|
+
return factory(...depValues);
|
|
10573
10542
|
}
|
|
10574
|
-
return injectable;
|
|
10575
10543
|
}
|
|
10576
10544
|
// This default value is when checking the hierarchy for a token.
|
|
10577
10545
|
//
|
|
@@ -10629,12 +10597,12 @@ function resolveDep(view, elDef, allowPrivateServices, depDef, notFoundValue = I
|
|
|
10629
10597
|
return compView.renderer;
|
|
10630
10598
|
}
|
|
10631
10599
|
case ElementRefTokenKey:
|
|
10632
|
-
return new ElementRef(asElementData(view, elDef.
|
|
10600
|
+
return new ElementRef(asElementData(view, elDef.nodeIndex).renderElement);
|
|
10633
10601
|
case ViewContainerRefTokenKey:
|
|
10634
|
-
return asElementData(view, elDef.
|
|
10602
|
+
return asElementData(view, elDef.nodeIndex).viewContainer;
|
|
10635
10603
|
case TemplateRefTokenKey: {
|
|
10636
10604
|
if (((elDef.element)).template) {
|
|
10637
|
-
return asElementData(view, elDef.
|
|
10605
|
+
return asElementData(view, elDef.nodeIndex).template;
|
|
10638
10606
|
}
|
|
10639
10607
|
break;
|
|
10640
10608
|
}
|
|
@@ -10647,9 +10615,10 @@ function resolveDep(view, elDef, allowPrivateServices, depDef, notFoundValue = I
|
|
|
10647
10615
|
default:
|
|
10648
10616
|
const /** @type {?} */ providerDef = (((allowPrivateServices ? ((elDef.element)).allProviders : ((elDef.element)).publicProviders)))[tokenKey$$1];
|
|
10649
10617
|
if (providerDef) {
|
|
10650
|
-
|
|
10651
|
-
if (providerData
|
|
10652
|
-
providerData
|
|
10618
|
+
let /** @type {?} */ providerData = asProviderData(view, providerDef.nodeIndex);
|
|
10619
|
+
if (!providerData) {
|
|
10620
|
+
providerData = { instance: _createProviderInstance(view, providerDef) };
|
|
10621
|
+
view.nodes[providerDef.nodeIndex] = (providerData);
|
|
10653
10622
|
}
|
|
10654
10623
|
return providerData.instance;
|
|
10655
10624
|
}
|
|
@@ -10680,7 +10649,7 @@ function resolveDep(view, elDef, allowPrivateServices, depDef, notFoundValue = I
|
|
|
10680
10649
|
function findCompView(view, elDef, allowPrivateServices) {
|
|
10681
10650
|
let /** @type {?} */ compView;
|
|
10682
10651
|
if (allowPrivateServices) {
|
|
10683
|
-
compView = asElementData(view, elDef.
|
|
10652
|
+
compView = asElementData(view, elDef.nodeIndex).componentView;
|
|
10684
10653
|
}
|
|
10685
10654
|
else {
|
|
10686
10655
|
compView = view;
|
|
@@ -10701,7 +10670,7 @@ function findCompView(view, elDef, allowPrivateServices) {
|
|
|
10701
10670
|
*/
|
|
10702
10671
|
function updateProp(view, providerData, def, bindingIdx, value, changes) {
|
|
10703
10672
|
if (def.flags & 32768 /* Component */) {
|
|
10704
|
-
const /** @type {?} */ compView = asElementData(view, /** @type {?} */ ((def.parent)).
|
|
10673
|
+
const /** @type {?} */ compView = asElementData(view, /** @type {?} */ ((def.parent)).nodeIndex).componentView;
|
|
10705
10674
|
if (compView.def.flags & 2 /* OnPush */) {
|
|
10706
10675
|
compView.state |= 8 /* ChecksEnabled */;
|
|
10707
10676
|
}
|
|
@@ -10747,7 +10716,7 @@ function callLifecycleHooksChildrenFirst(view, lifecycles) {
|
|
|
10747
10716
|
i += nodeDef.childCount;
|
|
10748
10717
|
}
|
|
10749
10718
|
while (parent && (parent.flags & 1 /* TypeElement */) &&
|
|
10750
|
-
i === parent.
|
|
10719
|
+
i === parent.nodeIndex + parent.childCount) {
|
|
10751
10720
|
// last child of an element
|
|
10752
10721
|
if (parent.directChildFlags & lifecycles) {
|
|
10753
10722
|
callElementProvidersLifecycles(view, parent, lifecycles);
|
|
@@ -10763,7 +10732,7 @@ function callLifecycleHooksChildrenFirst(view, lifecycles) {
|
|
|
10763
10732
|
* @return {?}
|
|
10764
10733
|
*/
|
|
10765
10734
|
function callElementProvidersLifecycles(view, elDef, lifecycles) {
|
|
10766
|
-
for (let /** @type {?} */ i = elDef.
|
|
10735
|
+
for (let /** @type {?} */ i = elDef.nodeIndex + 1; i <= elDef.nodeIndex + elDef.childCount; i++) {
|
|
10767
10736
|
const /** @type {?} */ nodeDef = view.def.nodes[i];
|
|
10768
10737
|
if (nodeDef.flags & lifecycles) {
|
|
10769
10738
|
callProviderLifecycles(view, i, nodeDef.flags & lifecycles);
|
|
@@ -10779,8 +10748,12 @@ function callElementProvidersLifecycles(view, elDef, lifecycles) {
|
|
|
10779
10748
|
* @return {?}
|
|
10780
10749
|
*/
|
|
10781
10750
|
function callProviderLifecycles(view, index, lifecycles) {
|
|
10782
|
-
const /** @type {?} */
|
|
10783
|
-
if (
|
|
10751
|
+
const /** @type {?} */ providerData = asProviderData(view, index);
|
|
10752
|
+
if (!providerData) {
|
|
10753
|
+
return;
|
|
10754
|
+
}
|
|
10755
|
+
const /** @type {?} */ provider = providerData.instance;
|
|
10756
|
+
if (!provider) {
|
|
10784
10757
|
return;
|
|
10785
10758
|
}
|
|
10786
10759
|
Services.setCurrentNode(view, index);
|
|
@@ -10822,13 +10795,14 @@ function queryDef(flags, id, bindings) {
|
|
|
10822
10795
|
}
|
|
10823
10796
|
return {
|
|
10824
10797
|
// will bet set by the view definition
|
|
10825
|
-
|
|
10798
|
+
nodeIndex: -1,
|
|
10826
10799
|
parent: null,
|
|
10827
10800
|
renderParent: null,
|
|
10828
10801
|
bindingIndex: -1,
|
|
10829
10802
|
outputIndex: -1,
|
|
10830
10803
|
// regular values
|
|
10831
|
-
|
|
10804
|
+
// TODO(vicb): check
|
|
10805
|
+
checkIndex: -1, flags,
|
|
10832
10806
|
childFlags: 0,
|
|
10833
10807
|
directChildFlags: 0,
|
|
10834
10808
|
childMatchedQueries: 0,
|
|
@@ -10863,7 +10837,7 @@ function dirtyParentQueries(view) {
|
|
|
10863
10837
|
let /** @type {?} */ tplDef = ((view.parentNodeDef));
|
|
10864
10838
|
view = view.parent;
|
|
10865
10839
|
// content queries
|
|
10866
|
-
const /** @type {?} */ end = tplDef.
|
|
10840
|
+
const /** @type {?} */ end = tplDef.nodeIndex + tplDef.childCount;
|
|
10867
10841
|
for (let /** @type {?} */ i = 0; i <= end; i++) {
|
|
10868
10842
|
const /** @type {?} */ nodeDef = view.def.nodes[i];
|
|
10869
10843
|
if ((nodeDef.flags & 67108864 /* TypeContentQuery */) &&
|
|
@@ -10871,7 +10845,7 @@ function dirtyParentQueries(view) {
|
|
|
10871
10845
|
(((nodeDef.query)).filterId & queryIds) === ((nodeDef.query)).filterId) {
|
|
10872
10846
|
asQueryList(view, i).setDirty();
|
|
10873
10847
|
}
|
|
10874
|
-
if ((nodeDef.flags & 1 /* TypeElement */ && i + nodeDef.childCount < tplDef.
|
|
10848
|
+
if ((nodeDef.flags & 1 /* TypeElement */ && i + nodeDef.childCount < tplDef.nodeIndex) ||
|
|
10875
10849
|
!(nodeDef.childFlags & 67108864 /* TypeContentQuery */) ||
|
|
10876
10850
|
!(nodeDef.childFlags & 536870912 /* DynamicQuery */)) {
|
|
10877
10851
|
// skip elements that don't contain the template element or no query.
|
|
@@ -10897,7 +10871,7 @@ function dirtyParentQueries(view) {
|
|
|
10897
10871
|
* @return {?}
|
|
10898
10872
|
*/
|
|
10899
10873
|
function checkAndUpdateQuery(view, nodeDef) {
|
|
10900
|
-
const /** @type {?} */ queryList = asQueryList(view, nodeDef.
|
|
10874
|
+
const /** @type {?} */ queryList = asQueryList(view, nodeDef.nodeIndex);
|
|
10901
10875
|
if (!queryList.dirty) {
|
|
10902
10876
|
return;
|
|
10903
10877
|
}
|
|
@@ -10905,8 +10879,8 @@ function checkAndUpdateQuery(view, nodeDef) {
|
|
|
10905
10879
|
let /** @type {?} */ newValues = ((undefined));
|
|
10906
10880
|
if (nodeDef.flags & 67108864 /* TypeContentQuery */) {
|
|
10907
10881
|
const /** @type {?} */ elementDef = ((((nodeDef.parent)).parent));
|
|
10908
|
-
newValues = calcQueryValues(view, elementDef.
|
|
10909
|
-
directiveInstance = asProviderData(view, /** @type {?} */ ((nodeDef.parent)).
|
|
10882
|
+
newValues = calcQueryValues(view, elementDef.nodeIndex, elementDef.nodeIndex + elementDef.childCount, /** @type {?} */ ((nodeDef.query)), []);
|
|
10883
|
+
directiveInstance = asProviderData(view, /** @type {?} */ ((nodeDef.parent)).nodeIndex).instance;
|
|
10910
10884
|
}
|
|
10911
10885
|
else if (nodeDef.flags & 134217728 /* TypeViewQuery */) {
|
|
10912
10886
|
newValues = calcQueryValues(view, 0, view.def.nodes.length - 1, /** @type {?} */ ((nodeDef.query)), []);
|
|
@@ -10992,25 +10966,18 @@ function calcQueryValues(view, startIndex, endIndex, queryDef, values) {
|
|
|
10992
10966
|
function getQueryValue(view, nodeDef, queryValueType) {
|
|
10993
10967
|
if (queryValueType != null) {
|
|
10994
10968
|
// a match
|
|
10995
|
-
let /** @type {?} */ value;
|
|
10996
10969
|
switch (queryValueType) {
|
|
10997
10970
|
case 1 /* RenderElement */:
|
|
10998
|
-
|
|
10999
|
-
break;
|
|
10971
|
+
return asElementData(view, nodeDef.nodeIndex).renderElement;
|
|
11000
10972
|
case 0 /* ElementRef */:
|
|
11001
|
-
|
|
11002
|
-
break;
|
|
10973
|
+
return new ElementRef(asElementData(view, nodeDef.nodeIndex).renderElement);
|
|
11003
10974
|
case 2 /* TemplateRef */:
|
|
11004
|
-
|
|
11005
|
-
break;
|
|
10975
|
+
return asElementData(view, nodeDef.nodeIndex).template;
|
|
11006
10976
|
case 3 /* ViewContainerRef */:
|
|
11007
|
-
|
|
11008
|
-
break;
|
|
10977
|
+
return asElementData(view, nodeDef.nodeIndex).viewContainer;
|
|
11009
10978
|
case 4 /* Provider */:
|
|
11010
|
-
|
|
11011
|
-
break;
|
|
10979
|
+
return asProviderData(view, nodeDef.nodeIndex).instance;
|
|
11012
10980
|
}
|
|
11013
|
-
return value;
|
|
11014
10981
|
}
|
|
11015
10982
|
}
|
|
11016
10983
|
|
|
@@ -11029,12 +10996,13 @@ function getQueryValue(view, nodeDef, queryValueType) {
|
|
|
11029
10996
|
function ngContentDef(ngContentIndex, index) {
|
|
11030
10997
|
return {
|
|
11031
10998
|
// will bet set by the view definition
|
|
11032
|
-
|
|
10999
|
+
nodeIndex: -1,
|
|
11033
11000
|
parent: null,
|
|
11034
11001
|
renderParent: null,
|
|
11035
11002
|
bindingIndex: -1,
|
|
11036
11003
|
outputIndex: -1,
|
|
11037
11004
|
// regular values
|
|
11005
|
+
checkIndex: -1,
|
|
11038
11006
|
flags: 8 /* TypeNgContent */,
|
|
11039
11007
|
childFlags: 0,
|
|
11040
11008
|
directChildFlags: 0,
|
|
@@ -11077,25 +11045,28 @@ function appendNgContent(view, renderHost, def) {
|
|
|
11077
11045
|
* found in the LICENSE file at https://angular.io/license
|
|
11078
11046
|
*/
|
|
11079
11047
|
/**
|
|
11048
|
+
* @param {?} checkIndex
|
|
11080
11049
|
* @param {?} argCount
|
|
11081
11050
|
* @return {?}
|
|
11082
11051
|
*/
|
|
11083
|
-
function purePipeDef(argCount) {
|
|
11052
|
+
function purePipeDef(checkIndex, argCount) {
|
|
11084
11053
|
// argCount + 1 to include the pipe as first arg
|
|
11085
|
-
return _pureExpressionDef(128 /* TypePurePipe */, new Array(argCount + 1));
|
|
11054
|
+
return _pureExpressionDef(128 /* TypePurePipe */, checkIndex, new Array(argCount + 1));
|
|
11086
11055
|
}
|
|
11087
11056
|
/**
|
|
11057
|
+
* @param {?} checkIndex
|
|
11088
11058
|
* @param {?} argCount
|
|
11089
11059
|
* @return {?}
|
|
11090
11060
|
*/
|
|
11091
|
-
function pureArrayDef(argCount) {
|
|
11092
|
-
return _pureExpressionDef(32 /* TypePureArray */, new Array(argCount));
|
|
11061
|
+
function pureArrayDef(checkIndex, argCount) {
|
|
11062
|
+
return _pureExpressionDef(32 /* TypePureArray */, checkIndex, new Array(argCount));
|
|
11093
11063
|
}
|
|
11094
11064
|
/**
|
|
11065
|
+
* @param {?} checkIndex
|
|
11095
11066
|
* @param {?} propToIndex
|
|
11096
11067
|
* @return {?}
|
|
11097
11068
|
*/
|
|
11098
|
-
function pureObjectDef(propToIndex) {
|
|
11069
|
+
function pureObjectDef(checkIndex, propToIndex) {
|
|
11099
11070
|
const /** @type {?} */ keys = Object.keys(propToIndex);
|
|
11100
11071
|
const /** @type {?} */ nbKeys = keys.length;
|
|
11101
11072
|
const /** @type {?} */ propertyNames = new Array(nbKeys);
|
|
@@ -11104,14 +11075,15 @@ function pureObjectDef(propToIndex) {
|
|
|
11104
11075
|
const /** @type {?} */ index = propToIndex[key];
|
|
11105
11076
|
propertyNames[index] = key;
|
|
11106
11077
|
}
|
|
11107
|
-
return _pureExpressionDef(64 /* TypePureObject */, propertyNames);
|
|
11078
|
+
return _pureExpressionDef(64 /* TypePureObject */, checkIndex, propertyNames);
|
|
11108
11079
|
}
|
|
11109
11080
|
/**
|
|
11110
11081
|
* @param {?} flags
|
|
11082
|
+
* @param {?} checkIndex
|
|
11111
11083
|
* @param {?} propertyNames
|
|
11112
11084
|
* @return {?}
|
|
11113
11085
|
*/
|
|
11114
|
-
function _pureExpressionDef(flags, propertyNames) {
|
|
11086
|
+
function _pureExpressionDef(flags, checkIndex, propertyNames) {
|
|
11115
11087
|
const /** @type {?} */ bindings = new Array(propertyNames.length);
|
|
11116
11088
|
for (let /** @type {?} */ i = 0; i < propertyNames.length; i++) {
|
|
11117
11089
|
const /** @type {?} */ prop = propertyNames[i];
|
|
@@ -11126,12 +11098,13 @@ function _pureExpressionDef(flags, propertyNames) {
|
|
|
11126
11098
|
}
|
|
11127
11099
|
return {
|
|
11128
11100
|
// will bet set by the view definition
|
|
11129
|
-
|
|
11101
|
+
nodeIndex: -1,
|
|
11130
11102
|
parent: null,
|
|
11131
11103
|
renderParent: null,
|
|
11132
11104
|
bindingIndex: -1,
|
|
11133
11105
|
outputIndex: -1,
|
|
11134
11106
|
// regular values
|
|
11107
|
+
checkIndex,
|
|
11135
11108
|
flags,
|
|
11136
11109
|
childFlags: 0,
|
|
11137
11110
|
directChildFlags: 0,
|
|
@@ -11198,7 +11171,7 @@ function checkAndUpdatePureExpressionInline(view, def, v0, v1, v2, v3, v4, v5, v
|
|
|
11198
11171
|
if (bindLen > 9 && checkAndUpdateBinding(view, def, 9, v9))
|
|
11199
11172
|
changed = true;
|
|
11200
11173
|
if (changed) {
|
|
11201
|
-
const /** @type {?} */ data = asPureExpressionData(view, def.
|
|
11174
|
+
const /** @type {?} */ data = asPureExpressionData(view, def.nodeIndex);
|
|
11202
11175
|
let /** @type {?} */ value;
|
|
11203
11176
|
switch (def.flags & 201347067 /* Types */) {
|
|
11204
11177
|
case 32 /* TypePureArray */:
|
|
@@ -11304,7 +11277,7 @@ function checkAndUpdatePureExpressionDynamic(view, def, values) {
|
|
|
11304
11277
|
}
|
|
11305
11278
|
}
|
|
11306
11279
|
if (changed) {
|
|
11307
|
-
const /** @type {?} */ data = asPureExpressionData(view, def.
|
|
11280
|
+
const /** @type {?} */ data = asPureExpressionData(view, def.nodeIndex);
|
|
11308
11281
|
let /** @type {?} */ value;
|
|
11309
11282
|
switch (def.flags & 201347067 /* Types */) {
|
|
11310
11283
|
case 32 /* TypePureArray */:
|
|
@@ -11335,32 +11308,33 @@ function checkAndUpdatePureExpressionDynamic(view, def, values) {
|
|
|
11335
11308
|
* found in the LICENSE file at https://angular.io/license
|
|
11336
11309
|
*/
|
|
11337
11310
|
/**
|
|
11311
|
+
* @param {?} checkIndex
|
|
11338
11312
|
* @param {?} ngContentIndex
|
|
11339
|
-
* @param {?}
|
|
11313
|
+
* @param {?} staticText
|
|
11340
11314
|
* @return {?}
|
|
11341
11315
|
*/
|
|
11342
|
-
function textDef(ngContentIndex,
|
|
11343
|
-
const /** @type {?} */ bindings = new Array(
|
|
11344
|
-
for (let /** @type {?} */ i = 1; i <
|
|
11316
|
+
function textDef(checkIndex, ngContentIndex, staticText) {
|
|
11317
|
+
const /** @type {?} */ bindings = new Array(staticText.length - 1);
|
|
11318
|
+
for (let /** @type {?} */ i = 1; i < staticText.length; i++) {
|
|
11345
11319
|
bindings[i - 1] = {
|
|
11346
11320
|
flags: 8 /* TypeProperty */,
|
|
11347
11321
|
name: null,
|
|
11348
11322
|
ns: null,
|
|
11349
11323
|
nonMinifiedName: null,
|
|
11350
11324
|
securityContext: null,
|
|
11351
|
-
suffix:
|
|
11325
|
+
suffix: staticText[i],
|
|
11352
11326
|
};
|
|
11353
11327
|
}
|
|
11354
|
-
const /** @type {?} */ flags = 2;
|
|
11355
11328
|
return {
|
|
11356
11329
|
// will bet set by the view definition
|
|
11357
|
-
|
|
11330
|
+
nodeIndex: -1,
|
|
11358
11331
|
parent: null,
|
|
11359
11332
|
renderParent: null,
|
|
11360
11333
|
bindingIndex: -1,
|
|
11361
11334
|
outputIndex: -1,
|
|
11362
11335
|
// regular values
|
|
11363
|
-
|
|
11336
|
+
checkIndex,
|
|
11337
|
+
flags: 2 /* TypeText */,
|
|
11364
11338
|
childFlags: 0,
|
|
11365
11339
|
directChildFlags: 0,
|
|
11366
11340
|
childMatchedQueries: 0,
|
|
@@ -11368,13 +11342,13 @@ function textDef(ngContentIndex, constants) {
|
|
|
11368
11342
|
matchedQueryIds: 0,
|
|
11369
11343
|
references: {}, ngContentIndex,
|
|
11370
11344
|
childCount: 0, bindings,
|
|
11371
|
-
bindingFlags:
|
|
11345
|
+
bindingFlags: 8 /* TypeProperty */,
|
|
11372
11346
|
outputs: [],
|
|
11373
11347
|
element: null,
|
|
11374
11348
|
provider: null,
|
|
11375
|
-
text: { prefix:
|
|
11349
|
+
text: { prefix: staticText[0] },
|
|
11376
11350
|
query: null,
|
|
11377
|
-
ngContent: null
|
|
11351
|
+
ngContent: null,
|
|
11378
11352
|
};
|
|
11379
11353
|
}
|
|
11380
11354
|
/**
|
|
@@ -11454,7 +11428,7 @@ function checkAndUpdateTextInline(view, def, v0, v1, v2, v3, v4, v5, v6, v7, v8,
|
|
|
11454
11428
|
value += _addInterpolationPart(v8, bindings[8]);
|
|
11455
11429
|
if (bindLen > 9)
|
|
11456
11430
|
value += _addInterpolationPart(v9, bindings[9]);
|
|
11457
|
-
const /** @type {?} */ renderNode$$1 = asTextData(view, def.
|
|
11431
|
+
const /** @type {?} */ renderNode$$1 = asTextData(view, def.nodeIndex).renderText;
|
|
11458
11432
|
view.renderer.setValue(renderNode$$1, value);
|
|
11459
11433
|
}
|
|
11460
11434
|
return changed;
|
|
@@ -11481,7 +11455,7 @@ function checkAndUpdateTextDynamic(view, def, values) {
|
|
|
11481
11455
|
value = value + _addInterpolationPart(values[i], bindings[i]);
|
|
11482
11456
|
}
|
|
11483
11457
|
value = ((def.text)).prefix + value;
|
|
11484
|
-
const /** @type {?} */ renderNode$$1 = asTextData(view, def.
|
|
11458
|
+
const /** @type {?} */ renderNode$$1 = asTextData(view, def.nodeIndex).renderText;
|
|
11485
11459
|
view.renderer.setValue(renderNode$$1, value);
|
|
11486
11460
|
}
|
|
11487
11461
|
return changed;
|
|
@@ -11518,33 +11492,19 @@ function viewDef(flags, nodes, updateDirectives, updateRenderer) {
|
|
|
11518
11492
|
let /** @type {?} */ viewRootNodeFlags = 0;
|
|
11519
11493
|
let /** @type {?} */ viewMatchedQueries = 0;
|
|
11520
11494
|
let /** @type {?} */ currentParent = null;
|
|
11495
|
+
let /** @type {?} */ currentRenderParent = null;
|
|
11521
11496
|
let /** @type {?} */ currentElementHasPublicProviders = false;
|
|
11522
11497
|
let /** @type {?} */ currentElementHasPrivateProviders = false;
|
|
11523
11498
|
let /** @type {?} */ lastRenderRootNode = null;
|
|
11524
11499
|
for (let /** @type {?} */ i = 0; i < nodes.length; i++) {
|
|
11525
|
-
while (currentParent && i > currentParent.index + currentParent.childCount) {
|
|
11526
|
-
const /** @type {?} */ newParent = currentParent.parent;
|
|
11527
|
-
if (newParent) {
|
|
11528
|
-
newParent.childFlags |= ((currentParent.childFlags));
|
|
11529
|
-
newParent.childMatchedQueries |= currentParent.childMatchedQueries;
|
|
11530
|
-
}
|
|
11531
|
-
currentParent = newParent;
|
|
11532
|
-
}
|
|
11533
11500
|
const /** @type {?} */ node = nodes[i];
|
|
11534
|
-
node.
|
|
11501
|
+
node.nodeIndex = i;
|
|
11535
11502
|
node.parent = currentParent;
|
|
11536
11503
|
node.bindingIndex = viewBindingCount;
|
|
11537
11504
|
node.outputIndex = viewDisposableCount;
|
|
11538
|
-
// renderParent needs to account for ng-container!
|
|
11539
|
-
let /** @type {?} */ currentRenderParent;
|
|
11540
|
-
if (currentParent && currentParent.flags & 1 /* TypeElement */ &&
|
|
11541
|
-
!((currentParent.element)).name) {
|
|
11542
|
-
currentRenderParent = currentParent.renderParent;
|
|
11543
|
-
}
|
|
11544
|
-
else {
|
|
11545
|
-
currentRenderParent = currentParent;
|
|
11546
|
-
}
|
|
11547
11505
|
node.renderParent = currentRenderParent;
|
|
11506
|
+
viewNodeFlags |= node.flags;
|
|
11507
|
+
viewMatchedQueries |= node.matchedQueryIds;
|
|
11548
11508
|
if (node.element) {
|
|
11549
11509
|
const /** @type {?} */ elDef = node.element;
|
|
11550
11510
|
elDef.publicProviders =
|
|
@@ -11553,24 +11513,11 @@ function viewDef(flags, nodes, updateDirectives, updateRenderer) {
|
|
|
11553
11513
|
// Note: We assume that all providers of an element are before any child element!
|
|
11554
11514
|
currentElementHasPublicProviders = false;
|
|
11555
11515
|
currentElementHasPrivateProviders = false;
|
|
11556
|
-
|
|
11557
|
-
|
|
11558
|
-
viewNodeFlags |= node.flags;
|
|
11559
|
-
viewMatchedQueries |= node.matchedQueryIds;
|
|
11560
|
-
if (node.element && node.element.template) {
|
|
11561
|
-
viewMatchedQueries |= node.element.template.nodeMatchedQueries;
|
|
11562
|
-
}
|
|
11563
|
-
if (currentParent) {
|
|
11564
|
-
currentParent.childFlags |= node.flags;
|
|
11565
|
-
currentParent.directChildFlags |= node.flags;
|
|
11566
|
-
currentParent.childMatchedQueries |= node.matchedQueryIds;
|
|
11567
|
-
if (node.element && node.element.template) {
|
|
11568
|
-
currentParent.childMatchedQueries |= node.element.template.nodeMatchedQueries;
|
|
11516
|
+
if (node.element.template) {
|
|
11517
|
+
viewMatchedQueries |= node.element.template.nodeMatchedQueries;
|
|
11569
11518
|
}
|
|
11570
11519
|
}
|
|
11571
|
-
|
|
11572
|
-
viewRootNodeFlags |= node.flags;
|
|
11573
|
-
}
|
|
11520
|
+
validateNode(currentParent, node, nodes.length);
|
|
11574
11521
|
viewBindingCount += node.bindings.length;
|
|
11575
11522
|
viewDisposableCount += node.outputs.length;
|
|
11576
11523
|
if (!currentRenderParent && (node.flags & 3 /* CatRenderNode */)) {
|
|
@@ -11594,7 +11541,7 @@ function viewDef(flags, nodes, updateDirectives, updateRenderer) {
|
|
|
11594
11541
|
if (!currentElementHasPrivateProviders) {
|
|
11595
11542
|
currentElementHasPrivateProviders = true; /** @type {?} */
|
|
11596
11543
|
((((
|
|
11597
|
-
// Use
|
|
11544
|
+
// Use prototypical inheritance to not get O(n^2) complexity...
|
|
11598
11545
|
currentParent)).element)).allProviders =
|
|
11599
11546
|
Object.create(/** @type {?} */ ((((currentParent)).element)).publicProviders);
|
|
11600
11547
|
} /** @type {?} */
|
|
@@ -11604,17 +11551,45 @@ function viewDef(flags, nodes, updateDirectives, updateRenderer) {
|
|
|
11604
11551
|
((((currentParent)).element)).componentProvider = node;
|
|
11605
11552
|
}
|
|
11606
11553
|
}
|
|
11607
|
-
if (
|
|
11554
|
+
if (currentParent) {
|
|
11555
|
+
currentParent.childFlags |= node.flags;
|
|
11556
|
+
currentParent.directChildFlags |= node.flags;
|
|
11557
|
+
currentParent.childMatchedQueries |= node.matchedQueryIds;
|
|
11558
|
+
if (node.element && node.element.template) {
|
|
11559
|
+
currentParent.childMatchedQueries |= node.element.template.nodeMatchedQueries;
|
|
11560
|
+
}
|
|
11561
|
+
}
|
|
11562
|
+
else {
|
|
11563
|
+
viewRootNodeFlags |= node.flags;
|
|
11564
|
+
}
|
|
11565
|
+
if (node.childCount > 0) {
|
|
11608
11566
|
currentParent = node;
|
|
11567
|
+
if (!isNgContainer(node)) {
|
|
11568
|
+
currentRenderParent = node;
|
|
11569
|
+
}
|
|
11609
11570
|
}
|
|
11610
|
-
|
|
11611
|
-
|
|
11612
|
-
|
|
11613
|
-
|
|
11614
|
-
|
|
11615
|
-
|
|
11571
|
+
else {
|
|
11572
|
+
// When the current node has no children, check if it is the last children of its parent.
|
|
11573
|
+
// When it is, propagate the flags up.
|
|
11574
|
+
// The loop is required because an element could be the last transitive children of several
|
|
11575
|
+
// elements. We loop to either the root or the highest opened element (= with remaining
|
|
11576
|
+
// children)
|
|
11577
|
+
while (currentParent && i === currentParent.nodeIndex + currentParent.childCount) {
|
|
11578
|
+
const /** @type {?} */ newParent = currentParent.parent;
|
|
11579
|
+
if (newParent) {
|
|
11580
|
+
newParent.childFlags |= currentParent.childFlags;
|
|
11581
|
+
newParent.childMatchedQueries |= currentParent.childMatchedQueries;
|
|
11582
|
+
}
|
|
11583
|
+
currentParent = newParent;
|
|
11584
|
+
// We also need to update the render parent & account for ng-container
|
|
11585
|
+
if (currentParent && isNgContainer(currentParent)) {
|
|
11586
|
+
currentRenderParent = currentParent.renderParent;
|
|
11587
|
+
}
|
|
11588
|
+
else {
|
|
11589
|
+
currentRenderParent = currentParent;
|
|
11590
|
+
}
|
|
11591
|
+
}
|
|
11616
11592
|
}
|
|
11617
|
-
currentParent = newParent;
|
|
11618
11593
|
}
|
|
11619
11594
|
const /** @type {?} */ handleEvent = (view, nodeIndex, eventName, event) => ((((nodes[nodeIndex].element)).handleEvent))(view, eventName, event);
|
|
11620
11595
|
return {
|
|
@@ -11625,12 +11600,18 @@ function viewDef(flags, nodes, updateDirectives, updateRenderer) {
|
|
|
11625
11600
|
nodeMatchedQueries: viewMatchedQueries, flags,
|
|
11626
11601
|
nodes: nodes,
|
|
11627
11602
|
updateDirectives: updateDirectives || NOOP,
|
|
11628
|
-
updateRenderer: updateRenderer || NOOP,
|
|
11629
|
-
handleEvent: handleEvent || NOOP,
|
|
11603
|
+
updateRenderer: updateRenderer || NOOP, handleEvent,
|
|
11630
11604
|
bindingCount: viewBindingCount,
|
|
11631
11605
|
outputCount: viewDisposableCount, lastRenderRootNode
|
|
11632
11606
|
};
|
|
11633
11607
|
}
|
|
11608
|
+
/**
|
|
11609
|
+
* @param {?} node
|
|
11610
|
+
* @return {?}
|
|
11611
|
+
*/
|
|
11612
|
+
function isNgContainer(node) {
|
|
11613
|
+
return (node.flags & 1 /* TypeElement */) !== 0 && ((node.element)).name === null;
|
|
11614
|
+
}
|
|
11634
11615
|
/**
|
|
11635
11616
|
* @param {?} parent
|
|
11636
11617
|
* @param {?} node
|
|
@@ -11645,28 +11626,28 @@ function validateNode(parent, node, nodeCount) {
|
|
|
11645
11626
|
}
|
|
11646
11627
|
if (template.lastRenderRootNode &&
|
|
11647
11628
|
template.lastRenderRootNode.flags & 16777216 /* EmbeddedViews */) {
|
|
11648
|
-
throw new Error(`Illegal State: Last root node of a template can't have embedded views, at index ${node.
|
|
11629
|
+
throw new Error(`Illegal State: Last root node of a template can't have embedded views, at index ${node.nodeIndex}!`);
|
|
11649
11630
|
}
|
|
11650
11631
|
}
|
|
11651
11632
|
if (node.flags & 20224 /* CatProvider */) {
|
|
11652
11633
|
const /** @type {?} */ parentFlags = parent ? parent.flags : 0;
|
|
11653
11634
|
if ((parentFlags & 1 /* TypeElement */) === 0) {
|
|
11654
|
-
throw new Error(`Illegal State:
|
|
11635
|
+
throw new Error(`Illegal State: StaticProvider/Directive nodes need to be children of elements or anchors, at index ${node.nodeIndex}!`);
|
|
11655
11636
|
}
|
|
11656
11637
|
}
|
|
11657
11638
|
if (node.query) {
|
|
11658
11639
|
if (node.flags & 67108864 /* TypeContentQuery */ &&
|
|
11659
11640
|
(!parent || (parent.flags & 16384 /* TypeDirective */) === 0)) {
|
|
11660
|
-
throw new Error(`Illegal State: Content Query nodes need to be children of directives, at index ${node.
|
|
11641
|
+
throw new Error(`Illegal State: Content Query nodes need to be children of directives, at index ${node.nodeIndex}!`);
|
|
11661
11642
|
}
|
|
11662
11643
|
if (node.flags & 134217728 /* TypeViewQuery */ && parent) {
|
|
11663
|
-
throw new Error(`Illegal State: View Query nodes have to be top level nodes, at index ${node.
|
|
11644
|
+
throw new Error(`Illegal State: View Query nodes have to be top level nodes, at index ${node.nodeIndex}!`);
|
|
11664
11645
|
}
|
|
11665
11646
|
}
|
|
11666
11647
|
if (node.childCount) {
|
|
11667
|
-
const /** @type {?} */ parentEnd = parent ? parent.
|
|
11668
|
-
if (node.
|
|
11669
|
-
throw new Error(`Illegal State: childCount of node leads outside of parent, at index ${node.
|
|
11648
|
+
const /** @type {?} */ parentEnd = parent ? parent.nodeIndex + parent.childCount : nodeCount - 1;
|
|
11649
|
+
if (node.nodeIndex <= parentEnd && node.nodeIndex + node.childCount > parentEnd) {
|
|
11650
|
+
throw new Error(`Illegal State: childCount of node leads outside of parent, at index ${node.nodeIndex}!`);
|
|
11670
11651
|
}
|
|
11671
11652
|
}
|
|
11672
11653
|
}
|
|
@@ -11755,7 +11736,7 @@ function createViewNodes(view) {
|
|
|
11755
11736
|
let /** @type {?} */ renderHost;
|
|
11756
11737
|
if (isComponentView(view)) {
|
|
11757
11738
|
const /** @type {?} */ hostDef = view.parentNodeDef;
|
|
11758
|
-
renderHost = asElementData(/** @type {?} */ ((view.parent)), /** @type {?} */ ((((hostDef)).parent)).
|
|
11739
|
+
renderHost = asElementData(/** @type {?} */ ((view.parent)), /** @type {?} */ ((((hostDef)).parent)).nodeIndex).renderElement;
|
|
11759
11740
|
}
|
|
11760
11741
|
const /** @type {?} */ def = view.def;
|
|
11761
11742
|
const /** @type {?} */ nodes = view.nodes;
|
|
@@ -11789,8 +11770,11 @@ function createViewNodes(view) {
|
|
|
11789
11770
|
case 1024 /* TypeFactoryProvider */:
|
|
11790
11771
|
case 2048 /* TypeUseExistingProvider */:
|
|
11791
11772
|
case 256 /* TypeValueProvider */: {
|
|
11792
|
-
|
|
11793
|
-
nodeData
|
|
11773
|
+
nodeData = nodes[i];
|
|
11774
|
+
if (!nodeData && !(nodeDef.flags & 4096 /* LazyProvider */)) {
|
|
11775
|
+
const /** @type {?} */ instance = createProviderInstance(view, nodeDef);
|
|
11776
|
+
nodeData = ({ instance });
|
|
11777
|
+
}
|
|
11794
11778
|
break;
|
|
11795
11779
|
}
|
|
11796
11780
|
case 16 /* TypePipe */: {
|
|
@@ -11799,11 +11783,14 @@ function createViewNodes(view) {
|
|
|
11799
11783
|
break;
|
|
11800
11784
|
}
|
|
11801
11785
|
case 16384 /* TypeDirective */: {
|
|
11802
|
-
|
|
11803
|
-
nodeData
|
|
11786
|
+
nodeData = nodes[i];
|
|
11787
|
+
if (!nodeData) {
|
|
11788
|
+
const /** @type {?} */ instance = createDirectiveInstance(view, nodeDef);
|
|
11789
|
+
nodeData = ({ instance });
|
|
11790
|
+
}
|
|
11804
11791
|
if (nodeDef.flags & 32768 /* Component */) {
|
|
11805
|
-
const /** @type {?} */ compView = asElementData(view, /** @type {?} */ ((nodeDef.parent)).
|
|
11806
|
-
initView(compView, instance, instance);
|
|
11792
|
+
const /** @type {?} */ compView = asElementData(view, /** @type {?} */ ((nodeDef.parent)).nodeIndex).componentView;
|
|
11793
|
+
initView(compView, nodeData.instance, nodeData.instance);
|
|
11807
11794
|
}
|
|
11808
11795
|
break;
|
|
11809
11796
|
}
|
|
@@ -11941,26 +11928,20 @@ function markProjectedViewsForCheck(view) {
|
|
|
11941
11928
|
* @return {?}
|
|
11942
11929
|
*/
|
|
11943
11930
|
function checkAndUpdateNodeInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {
|
|
11944
|
-
let /** @type {?} */ changed = false;
|
|
11945
11931
|
switch (nodeDef.flags & 201347067 /* Types */) {
|
|
11946
11932
|
case 1 /* TypeElement */:
|
|
11947
|
-
|
|
11948
|
-
break;
|
|
11933
|
+
return checkAndUpdateElementInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
|
|
11949
11934
|
case 2 /* TypeText */:
|
|
11950
|
-
|
|
11951
|
-
break;
|
|
11935
|
+
return checkAndUpdateTextInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
|
|
11952
11936
|
case 16384 /* TypeDirective */:
|
|
11953
|
-
|
|
11954
|
-
checkAndUpdateDirectiveInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
|
|
11955
|
-
break;
|
|
11937
|
+
return checkAndUpdateDirectiveInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
|
|
11956
11938
|
case 32 /* TypePureArray */:
|
|
11957
11939
|
case 64 /* TypePureObject */:
|
|
11958
11940
|
case 128 /* TypePurePipe */:
|
|
11959
|
-
|
|
11960
|
-
|
|
11961
|
-
|
|
11941
|
+
return checkAndUpdatePureExpressionInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
|
|
11942
|
+
default:
|
|
11943
|
+
throw 'unreachable';
|
|
11962
11944
|
}
|
|
11963
|
-
return changed;
|
|
11964
11945
|
}
|
|
11965
11946
|
/**
|
|
11966
11947
|
* @param {?} view
|
|
@@ -11969,34 +11950,20 @@ function checkAndUpdateNodeInline(view, nodeDef, v0, v1, v2, v3, v4, v5, v6, v7,
|
|
|
11969
11950
|
* @return {?}
|
|
11970
11951
|
*/
|
|
11971
11952
|
function checkAndUpdateNodeDynamic(view, nodeDef, values) {
|
|
11972
|
-
let /** @type {?} */ changed = false;
|
|
11973
11953
|
switch (nodeDef.flags & 201347067 /* Types */) {
|
|
11974
11954
|
case 1 /* TypeElement */:
|
|
11975
|
-
|
|
11976
|
-
break;
|
|
11955
|
+
return checkAndUpdateElementDynamic(view, nodeDef, values);
|
|
11977
11956
|
case 2 /* TypeText */:
|
|
11978
|
-
|
|
11979
|
-
break;
|
|
11957
|
+
return checkAndUpdateTextDynamic(view, nodeDef, values);
|
|
11980
11958
|
case 16384 /* TypeDirective */:
|
|
11981
|
-
|
|
11982
|
-
break;
|
|
11959
|
+
return checkAndUpdateDirectiveDynamic(view, nodeDef, values);
|
|
11983
11960
|
case 32 /* TypePureArray */:
|
|
11984
11961
|
case 64 /* TypePureObject */:
|
|
11985
11962
|
case 128 /* TypePurePipe */:
|
|
11986
|
-
|
|
11987
|
-
|
|
11988
|
-
|
|
11989
|
-
if (changed) {
|
|
11990
|
-
// Update oldValues after all bindings have been updated,
|
|
11991
|
-
// as a setter for a property might update other properties.
|
|
11992
|
-
const /** @type {?} */ bindLen = nodeDef.bindings.length;
|
|
11993
|
-
const /** @type {?} */ bindingStart = nodeDef.bindingIndex;
|
|
11994
|
-
const /** @type {?} */ oldValues = view.oldValues;
|
|
11995
|
-
for (let /** @type {?} */ i = 0; i < bindLen; i++) {
|
|
11996
|
-
oldValues[bindingStart + i] = values[i];
|
|
11997
|
-
}
|
|
11963
|
+
return checkAndUpdatePureExpressionDynamic(view, nodeDef, values);
|
|
11964
|
+
default:
|
|
11965
|
+
throw 'unreachable';
|
|
11998
11966
|
}
|
|
11999
|
-
return changed;
|
|
12000
11967
|
}
|
|
12001
11968
|
/**
|
|
12002
11969
|
* @param {?} view
|
|
@@ -12081,9 +12048,9 @@ function checkNoChangesNodeDynamic(view, nodeDef, values) {
|
|
|
12081
12048
|
* @return {?}
|
|
12082
12049
|
*/
|
|
12083
12050
|
function checkNoChangesQuery(view, nodeDef) {
|
|
12084
|
-
const /** @type {?} */ queryList = asQueryList(view, nodeDef.
|
|
12051
|
+
const /** @type {?} */ queryList = asQueryList(view, nodeDef.nodeIndex);
|
|
12085
12052
|
if (queryList.dirty) {
|
|
12086
|
-
throw expressionChangedAfterItHasBeenCheckedError(Services.createDebugContext(view, nodeDef.
|
|
12053
|
+
throw expressionChangedAfterItHasBeenCheckedError(Services.createDebugContext(view, nodeDef.nodeIndex), `Query ${ /** @type {?} */((nodeDef.query)).id} not dirty`, `Query ${ /** @type {?} */((nodeDef.query)).id} dirty`, (view.state & 1 /* BeforeFirstCheck */) !== 0);
|
|
12087
12054
|
}
|
|
12088
12055
|
}
|
|
12089
12056
|
/**
|
|
@@ -12276,7 +12243,7 @@ function execQueriesAction(view, queryFlags, staticDynamicQueryFlag, checkType)
|
|
|
12276
12243
|
for (let /** @type {?} */ i = 0; i < nodeCount; i++) {
|
|
12277
12244
|
const /** @type {?} */ nodeDef = view.def.nodes[i];
|
|
12278
12245
|
if ((nodeDef.flags & queryFlags) && (nodeDef.flags & staticDynamicQueryFlag)) {
|
|
12279
|
-
Services.setCurrentNode(view, nodeDef.
|
|
12246
|
+
Services.setCurrentNode(view, nodeDef.nodeIndex);
|
|
12280
12247
|
switch (checkType) {
|
|
12281
12248
|
case 0 /* CheckAndUpdate */:
|
|
12282
12249
|
checkAndUpdateQuery(view, nodeDef);
|
|
@@ -12498,7 +12465,7 @@ function applyProviderOverridesToView(def) {
|
|
|
12498
12465
|
}
|
|
12499
12466
|
if (lastElementDef && nodeDef.flags & 3840 /* CatProviderNoDirective */ &&
|
|
12500
12467
|
providerOverrides.has(/** @type {?} */ ((nodeDef.provider)).token)) {
|
|
12501
|
-
elIndicesWithOverwrittenProviders.push(/** @type {?} */ ((lastElementDef)).
|
|
12468
|
+
elIndicesWithOverwrittenProviders.push(/** @type {?} */ ((lastElementDef)).nodeIndex);
|
|
12502
12469
|
lastElementDef = null;
|
|
12503
12470
|
}
|
|
12504
12471
|
}
|
|
@@ -12517,9 +12484,6 @@ function applyProviderOverridesToView(def) {
|
|
|
12517
12484
|
return;
|
|
12518
12485
|
}
|
|
12519
12486
|
if (nodeDef.flags & 3840 /* CatProviderNoDirective */) {
|
|
12520
|
-
// Make all providers lazy, so that we don't get into trouble
|
|
12521
|
-
// with ordering problems of providers on the same element
|
|
12522
|
-
nodeDef.flags |= 4096 /* LazyProvider */;
|
|
12523
12487
|
const /** @type {?} */ provider = ((nodeDef.provider));
|
|
12524
12488
|
const /** @type {?} */ override = providerOverrides.get(provider.token);
|
|
12525
12489
|
if (override) {
|
|
@@ -12536,7 +12500,8 @@ function applyProviderOverridesToView(def) {
|
|
|
12536
12500
|
* @return {?}
|
|
12537
12501
|
*/
|
|
12538
12502
|
function applyProviderOverridesToNgModule(def) {
|
|
12539
|
-
|
|
12503
|
+
const { hasOverrides, hasDeprecatedOverrides } = calcHasOverrides(def);
|
|
12504
|
+
if (!hasOverrides) {
|
|
12540
12505
|
return def;
|
|
12541
12506
|
}
|
|
12542
12507
|
// clone the whole view definition,
|
|
@@ -12548,8 +12513,20 @@ function applyProviderOverridesToNgModule(def) {
|
|
|
12548
12513
|
* @param {?} def
|
|
12549
12514
|
* @return {?}
|
|
12550
12515
|
*/
|
|
12551
|
-
function
|
|
12552
|
-
|
|
12516
|
+
function calcHasOverrides(def) {
|
|
12517
|
+
let /** @type {?} */ hasOverrides = false;
|
|
12518
|
+
let /** @type {?} */ hasDeprecatedOverrides = false;
|
|
12519
|
+
if (providerOverrides.size === 0) {
|
|
12520
|
+
return { hasOverrides, hasDeprecatedOverrides };
|
|
12521
|
+
}
|
|
12522
|
+
def.providers.forEach(node => {
|
|
12523
|
+
const /** @type {?} */ override = providerOverrides.get(node.token);
|
|
12524
|
+
if ((node.flags & 3840 /* CatProviderNoDirective */) && override) {
|
|
12525
|
+
hasOverrides = true;
|
|
12526
|
+
hasDeprecatedOverrides = hasDeprecatedOverrides || override.deprecatedBehavior;
|
|
12527
|
+
}
|
|
12528
|
+
});
|
|
12529
|
+
return { hasOverrides, hasDeprecatedOverrides };
|
|
12553
12530
|
}
|
|
12554
12531
|
/**
|
|
12555
12532
|
* @param {?} def
|
|
@@ -12558,9 +12535,12 @@ function applyProviderOverridesToNgModule(def) {
|
|
|
12558
12535
|
function applyProviderOverrides(def) {
|
|
12559
12536
|
for (let /** @type {?} */ i = 0; i < def.providers.length; i++) {
|
|
12560
12537
|
const /** @type {?} */ provider = def.providers[i];
|
|
12561
|
-
|
|
12562
|
-
|
|
12563
|
-
|
|
12538
|
+
if (hasDeprecatedOverrides) {
|
|
12539
|
+
// We had a bug where me made
|
|
12540
|
+
// all providers lazy. Keep this logic behind a flag
|
|
12541
|
+
// for migrating existing users.
|
|
12542
|
+
provider.flags |= 4096 /* LazyProvider */;
|
|
12543
|
+
}
|
|
12564
12544
|
const /** @type {?} */ override = providerOverrides.get(provider.token);
|
|
12565
12545
|
if (override) {
|
|
12566
12546
|
provider.flags = (provider.flags & ~3840 /* CatProviderNoDirective */) | override.flags;
|
|
@@ -12572,7 +12552,7 @@ function applyProviderOverridesToNgModule(def) {
|
|
|
12572
12552
|
}
|
|
12573
12553
|
/**
|
|
12574
12554
|
* @param {?} view
|
|
12575
|
-
* @param {?}
|
|
12555
|
+
* @param {?} checkIndex
|
|
12576
12556
|
* @param {?} argStyle
|
|
12577
12557
|
* @param {?=} v0
|
|
12578
12558
|
* @param {?=} v1
|
|
@@ -12586,16 +12566,16 @@ function applyProviderOverridesToNgModule(def) {
|
|
|
12586
12566
|
* @param {?=} v9
|
|
12587
12567
|
* @return {?}
|
|
12588
12568
|
*/
|
|
12589
|
-
function prodCheckAndUpdateNode(view,
|
|
12590
|
-
const /** @type {?} */ nodeDef = view.def.nodes[
|
|
12569
|
+
function prodCheckAndUpdateNode(view, checkIndex, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {
|
|
12570
|
+
const /** @type {?} */ nodeDef = view.def.nodes[checkIndex];
|
|
12591
12571
|
checkAndUpdateNode(view, nodeDef, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
|
|
12592
12572
|
return (nodeDef.flags & 224 /* CatPureExpression */) ?
|
|
12593
|
-
asPureExpressionData(view,
|
|
12573
|
+
asPureExpressionData(view, checkIndex).value :
|
|
12594
12574
|
undefined;
|
|
12595
12575
|
}
|
|
12596
12576
|
/**
|
|
12597
12577
|
* @param {?} view
|
|
12598
|
-
* @param {?}
|
|
12578
|
+
* @param {?} checkIndex
|
|
12599
12579
|
* @param {?} argStyle
|
|
12600
12580
|
* @param {?=} v0
|
|
12601
12581
|
* @param {?=} v1
|
|
@@ -12609,11 +12589,11 @@ function prodCheckAndUpdateNode(view, nodeIndex, argStyle, v0, v1, v2, v3, v4, v
|
|
|
12609
12589
|
* @param {?=} v9
|
|
12610
12590
|
* @return {?}
|
|
12611
12591
|
*/
|
|
12612
|
-
function prodCheckNoChangesNode(view,
|
|
12613
|
-
const /** @type {?} */ nodeDef = view.def.nodes[
|
|
12592
|
+
function prodCheckNoChangesNode(view, checkIndex, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {
|
|
12593
|
+
const /** @type {?} */ nodeDef = view.def.nodes[checkIndex];
|
|
12614
12594
|
checkNoChangesNode(view, nodeDef, argStyle, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);
|
|
12615
12595
|
return (nodeDef.flags & 224 /* CatPureExpression */) ?
|
|
12616
|
-
asPureExpressionData(view,
|
|
12596
|
+
asPureExpressionData(view, checkIndex).value :
|
|
12617
12597
|
undefined;
|
|
12618
12598
|
}
|
|
12619
12599
|
/**
|
|
@@ -12701,7 +12681,7 @@ function debugUpdateDirectives(view, checkType) {
|
|
|
12701
12681
|
debugSetCurrentNode(view, nextDirectiveWithBinding(view, nodeIndex));
|
|
12702
12682
|
}
|
|
12703
12683
|
return (nodeDef.flags & 224 /* CatPureExpression */) ?
|
|
12704
|
-
asPureExpressionData(view, nodeDef.
|
|
12684
|
+
asPureExpressionData(view, nodeDef.nodeIndex).value :
|
|
12705
12685
|
undefined;
|
|
12706
12686
|
}
|
|
12707
12687
|
}
|
|
@@ -12735,7 +12715,7 @@ function debugUpdateRenderer(view, checkType) {
|
|
|
12735
12715
|
debugSetCurrentNode(view, nextRenderNodeWithBinding(view, nodeIndex));
|
|
12736
12716
|
}
|
|
12737
12717
|
return (nodeDef.flags & 224 /* CatPureExpression */) ?
|
|
12738
|
-
asPureExpressionData(view, nodeDef.
|
|
12718
|
+
asPureExpressionData(view, nodeDef.nodeIndex).value :
|
|
12739
12719
|
undefined;
|
|
12740
12720
|
}
|
|
12741
12721
|
}
|
|
@@ -12761,7 +12741,7 @@ function debugCheckAndUpdateNode(view, nodeDef, argStyle, givenValues) {
|
|
|
12761
12741
|
}
|
|
12762
12742
|
}
|
|
12763
12743
|
const /** @type {?} */ elDef = ((nodeDef.parent));
|
|
12764
|
-
const /** @type {?} */ el = asElementData(view, elDef.
|
|
12744
|
+
const /** @type {?} */ el = asElementData(view, elDef.nodeIndex).renderElement;
|
|
12765
12745
|
if (!((elDef.element)).name) {
|
|
12766
12746
|
// a comment.
|
|
12767
12747
|
view.renderer.setValue(el, `bindings=${JSON.stringify(bindingValues, null, 2)}`);
|
|
@@ -12880,7 +12860,7 @@ class DebugContext_ {
|
|
|
12880
12860
|
*/
|
|
12881
12861
|
get elOrCompView() {
|
|
12882
12862
|
// Has to be done lazily as we use the DebugContext also during creation of elements...
|
|
12883
|
-
return asElementData(this.elView, this.elDef.
|
|
12863
|
+
return asElementData(this.elView, this.elDef.nodeIndex).componentView || this.view;
|
|
12884
12864
|
}
|
|
12885
12865
|
/**
|
|
12886
12866
|
* @return {?}
|
|
@@ -12900,7 +12880,7 @@ class DebugContext_ {
|
|
|
12900
12880
|
get providerTokens() {
|
|
12901
12881
|
const /** @type {?} */ tokens = [];
|
|
12902
12882
|
if (this.elDef) {
|
|
12903
|
-
for (let /** @type {?} */ i = this.elDef.
|
|
12883
|
+
for (let /** @type {?} */ i = this.elDef.nodeIndex + 1; i <= this.elDef.nodeIndex + this.elDef.childCount; i++) {
|
|
12904
12884
|
const /** @type {?} */ childDef = this.elView.def.nodes[i];
|
|
12905
12885
|
if (childDef.flags & 20224 /* CatProvider */) {
|
|
12906
12886
|
tokens.push(/** @type {?} */ ((childDef.provider)).token);
|
|
@@ -12917,7 +12897,7 @@ class DebugContext_ {
|
|
|
12917
12897
|
const /** @type {?} */ references = {};
|
|
12918
12898
|
if (this.elDef) {
|
|
12919
12899
|
collectReferences(this.elView, this.elDef, references);
|
|
12920
|
-
for (let /** @type {?} */ i = this.elDef.
|
|
12900
|
+
for (let /** @type {?} */ i = this.elDef.nodeIndex + 1; i <= this.elDef.nodeIndex + this.elDef.childCount; i++) {
|
|
12921
12901
|
const /** @type {?} */ childDef = this.elView.def.nodes[i];
|
|
12922
12902
|
if (childDef.flags & 20224 /* CatProvider */) {
|
|
12923
12903
|
collectReferences(this.elView, childDef, references);
|
|
@@ -12951,11 +12931,11 @@ class DebugContext_ {
|
|
|
12951
12931
|
let /** @type {?} */ logNodeIndex;
|
|
12952
12932
|
if (this.nodeDef.flags & 2 /* TypeText */) {
|
|
12953
12933
|
logViewDef = this.view.def;
|
|
12954
|
-
logNodeIndex = this.nodeDef.
|
|
12934
|
+
logNodeIndex = this.nodeDef.nodeIndex;
|
|
12955
12935
|
}
|
|
12956
12936
|
else {
|
|
12957
12937
|
logViewDef = this.elView.def;
|
|
12958
|
-
logNodeIndex = this.elDef.
|
|
12938
|
+
logNodeIndex = this.elDef.nodeIndex;
|
|
12959
12939
|
}
|
|
12960
12940
|
// Note: we only generate a log function for text and element nodes
|
|
12961
12941
|
// to make the generated code as small as possible.
|
|
@@ -13001,7 +12981,7 @@ function findHostElement(view) {
|
|
|
13001
12981
|
view = ((view.parent));
|
|
13002
12982
|
}
|
|
13003
12983
|
if (view.parent) {
|
|
13004
|
-
return asElementData(view.parent, /** @type {?} */ ((viewParentEl(view))).
|
|
12984
|
+
return asElementData(view.parent, /** @type {?} */ ((viewParentEl(view))).nodeIndex);
|
|
13005
12985
|
}
|
|
13006
12986
|
return null;
|
|
13007
12987
|
}
|
|
@@ -13432,6 +13412,11 @@ class NgModuleFactory_ extends NgModuleFactory {
|
|
|
13432
13412
|
* the
|
|
13433
13413
|
* trigger is bound to (in the form of `[\@triggerName]="expression"`.
|
|
13434
13414
|
*
|
|
13415
|
+
* Animation trigger bindings strigify values and then match the previous and current values against
|
|
13416
|
+
* any linked transitions. If a boolean value is provided into the trigger binding then it will both
|
|
13417
|
+
* be represented as `1` or `true` and `0` or `false` for a true and false boolean values
|
|
13418
|
+
* respectively.
|
|
13419
|
+
*
|
|
13435
13420
|
* ### Usage
|
|
13436
13421
|
*
|
|
13437
13422
|
* `trigger` will create an animation trigger reference based on the provided `name` value. The
|
|
@@ -13914,6 +13899,21 @@ function keyframes$1(steps) {
|
|
|
13914
13899
|
* ])
|
|
13915
13900
|
* ```
|
|
13916
13901
|
*
|
|
13902
|
+
* ### Boolean values
|
|
13903
|
+
* if a trigger binding value is a boolean value then it can be matched using a transition
|
|
13904
|
+
* expression that compares `true` and `false` or `1` and `0`.
|
|
13905
|
+
*
|
|
13906
|
+
* ```
|
|
13907
|
+
* // in the template
|
|
13908
|
+
* <div [\@openClose]="open ? true : false">...</div>
|
|
13909
|
+
*
|
|
13910
|
+
* // in the component metadata
|
|
13911
|
+
* trigger('openClose', [
|
|
13912
|
+
* state('true', style({ height: '*' })),
|
|
13913
|
+
* state('false', style({ height: '0px' })),
|
|
13914
|
+
* transition('false <=> true', animate(500))
|
|
13915
|
+
* ])
|
|
13916
|
+
* ```
|
|
13917
13917
|
* {\@example core/animation/ts/dsl/animation_example.ts region='Component'}
|
|
13918
13918
|
*
|
|
13919
13919
|
* \@experimental Animation support is experimental.
|
|
@@ -13937,7 +13937,7 @@ function transition$1(stateChangeExpr, steps, options = null) {
|
|
|
13937
13937
|
* var fadeAnimation = animation([
|
|
13938
13938
|
* style({ opacity: '{{ start }}' }),
|
|
13939
13939
|
* animate('{{ time }}',
|
|
13940
|
-
* style({ opacity: '{{ end }}'))
|
|
13940
|
+
* style({ opacity: '{{ end }}'}))
|
|
13941
13941
|
* ], { params: { time: '1000ms', start: 0, end: 1 }});
|
|
13942
13942
|
* ```
|
|
13943
13943
|
*
|