@angular/core 12.0.0-rc.0 → 12.0.0
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/bundles/core-testing.umd.js +1 -1
- package/bundles/core-testing.umd.js.map +1 -1
- package/bundles/core.umd.js +95 -73
- package/bundles/core.umd.js.map +1 -1
- package/core.d.ts +58 -46
- package/core.metadata.json +1 -1
- package/esm2015/src/core_private_export.js +2 -1
- package/esm2015/src/debug/debug_node.js +11 -10
- package/esm2015/src/di/index.js +1 -1
- package/esm2015/src/di/inject_switch.js +1 -1
- package/esm2015/src/di/injector.js +1 -1
- package/esm2015/src/di/injector_compatibility.js +1 -1
- package/esm2015/src/di/interface/provider.js +1 -1
- package/esm2015/src/di/provider_token.js +9 -0
- package/esm2015/src/di/r3_injector.js +1 -1
- package/esm2015/src/metadata/di.js +1 -1
- package/esm2015/src/render3/component_ref.js +1 -1
- package/esm2015/src/render3/di.js +1 -1
- package/esm2015/src/render3/error_code.js +1 -1
- package/esm2015/src/render3/i18n/i18n_parse.js +36 -9
- package/esm2015/src/render3/instructions/di.js +1 -1
- package/esm2015/src/render3/instructions/listener.js +9 -14
- package/esm2015/src/render3/interfaces/injector.js +1 -1
- package/esm2015/src/render3/interfaces/query.js +1 -1
- package/esm2015/src/render3/interfaces/renderer.js +1 -1
- package/esm2015/src/render3/interfaces/view.js +1 -1
- package/esm2015/src/render3/jit/module.js +5 -5
- package/esm2015/src/render3/node_manipulation.js +18 -3
- package/esm2015/src/render3/query.js +1 -1
- package/esm2015/src/render3/util/discovery_utils.js +19 -28
- package/esm2015/src/render3/util/misc_utils.js +4 -4
- package/esm2015/src/render3/view_ref.js +1 -4
- package/esm2015/src/testability/testability.js +3 -3
- package/esm2015/src/version.js +1 -1
- package/esm2015/testing/src/r3_test_bed.js +1 -1
- package/esm2015/testing/src/test_bed.js +1 -1
- package/esm2015/testing/src/test_bed_common.js +1 -1
- package/fesm2015/core.js +97 -71
- package/fesm2015/core.js.map +1 -1
- package/fesm2015/testing.js +1 -1
- package/fesm2015/testing.js.map +1 -1
- package/package.json +2 -2
- package/src/r3_symbols.d.ts +15 -6
- package/testing/testing.d.ts +20 -20
- package/testing/testing.metadata.json +1 -1
- package/testing.d.ts +1 -1
package/bundles/core.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v12.0.0
|
|
2
|
+
* @license Angular v12.0.0
|
|
3
3
|
* (c) 2010-2021 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -7031,21 +7031,21 @@
|
|
|
7031
7031
|
* @codeGenApi
|
|
7032
7032
|
*/
|
|
7033
7033
|
function ɵɵresolveWindow(element) {
|
|
7034
|
-
return
|
|
7034
|
+
return element.ownerDocument.defaultView;
|
|
7035
7035
|
}
|
|
7036
7036
|
/**
|
|
7037
7037
|
*
|
|
7038
7038
|
* @codeGenApi
|
|
7039
7039
|
*/
|
|
7040
7040
|
function ɵɵresolveDocument(element) {
|
|
7041
|
-
return
|
|
7041
|
+
return element.ownerDocument;
|
|
7042
7042
|
}
|
|
7043
7043
|
/**
|
|
7044
7044
|
*
|
|
7045
7045
|
* @codeGenApi
|
|
7046
7046
|
*/
|
|
7047
7047
|
function ɵɵresolveBody(element) {
|
|
7048
|
-
return
|
|
7048
|
+
return element.ownerDocument.body;
|
|
7049
7049
|
}
|
|
7050
7050
|
/**
|
|
7051
7051
|
* The special delimiter we use to separate property names, prefixes, and suffixes
|
|
@@ -7693,11 +7693,25 @@
|
|
|
7693
7693
|
var toCall = destroyHooks[i + 1];
|
|
7694
7694
|
if (Array.isArray(toCall)) {
|
|
7695
7695
|
for (var j = 0; j < toCall.length; j += 2) {
|
|
7696
|
-
|
|
7696
|
+
var callContext = context[toCall[j]];
|
|
7697
|
+
var hook = toCall[j + 1];
|
|
7698
|
+
profiler(4 /* LifecycleHookStart */, callContext, hook);
|
|
7699
|
+
try {
|
|
7700
|
+
hook.call(callContext);
|
|
7701
|
+
}
|
|
7702
|
+
finally {
|
|
7703
|
+
profiler(5 /* LifecycleHookEnd */, callContext, hook);
|
|
7704
|
+
}
|
|
7697
7705
|
}
|
|
7698
7706
|
}
|
|
7699
7707
|
else {
|
|
7700
|
-
|
|
7708
|
+
profiler(4 /* LifecycleHookStart */, context, toCall);
|
|
7709
|
+
try {
|
|
7710
|
+
toCall.call(context);
|
|
7711
|
+
}
|
|
7712
|
+
finally {
|
|
7713
|
+
profiler(5 /* LifecycleHookEnd */, context, toCall);
|
|
7714
|
+
}
|
|
7701
7715
|
}
|
|
7702
7716
|
}
|
|
7703
7717
|
}
|
|
@@ -12394,7 +12408,7 @@
|
|
|
12394
12408
|
*/
|
|
12395
12409
|
function getComponent(element) {
|
|
12396
12410
|
assertDomElement(element);
|
|
12397
|
-
var context =
|
|
12411
|
+
var context = getLContext(element);
|
|
12398
12412
|
if (context === null)
|
|
12399
12413
|
return null;
|
|
12400
12414
|
if (context.component === undefined) {
|
|
@@ -12416,7 +12430,7 @@
|
|
|
12416
12430
|
*/
|
|
12417
12431
|
function getContext(element) {
|
|
12418
12432
|
assertDomElement(element);
|
|
12419
|
-
var context =
|
|
12433
|
+
var context = getLContext(element);
|
|
12420
12434
|
return context === null ? null : context.lView[CONTEXT];
|
|
12421
12435
|
}
|
|
12422
12436
|
/**
|
|
@@ -12435,7 +12449,7 @@
|
|
|
12435
12449
|
* @globalApi ng
|
|
12436
12450
|
*/
|
|
12437
12451
|
function getOwningComponent(elementOrDir) {
|
|
12438
|
-
var context =
|
|
12452
|
+
var context = getLContext(elementOrDir);
|
|
12439
12453
|
if (context === null)
|
|
12440
12454
|
return null;
|
|
12441
12455
|
var lView = context.lView;
|
|
@@ -12471,7 +12485,7 @@
|
|
|
12471
12485
|
* @globalApi ng
|
|
12472
12486
|
*/
|
|
12473
12487
|
function getInjector(elementOrDir) {
|
|
12474
|
-
var context =
|
|
12488
|
+
var context = getLContext(elementOrDir);
|
|
12475
12489
|
if (context === null)
|
|
12476
12490
|
return Injector.NULL;
|
|
12477
12491
|
var tNode = context.lView[TVIEW].data[context.nodeIndex];
|
|
@@ -12483,7 +12497,7 @@
|
|
|
12483
12497
|
* @param element Element for which the injection tokens should be retrieved.
|
|
12484
12498
|
*/
|
|
12485
12499
|
function getInjectionTokens(element) {
|
|
12486
|
-
var context =
|
|
12500
|
+
var context = getLContext(element);
|
|
12487
12501
|
if (context === null)
|
|
12488
12502
|
return [];
|
|
12489
12503
|
var lView = context.lView;
|
|
@@ -12533,7 +12547,7 @@
|
|
|
12533
12547
|
if (node instanceof Text) {
|
|
12534
12548
|
return [];
|
|
12535
12549
|
}
|
|
12536
|
-
var context =
|
|
12550
|
+
var context = getLContext(node);
|
|
12537
12551
|
if (context === null) {
|
|
12538
12552
|
return [];
|
|
12539
12553
|
}
|
|
@@ -12584,15 +12598,6 @@
|
|
|
12584
12598
|
}
|
|
12585
12599
|
return null;
|
|
12586
12600
|
}
|
|
12587
|
-
function loadLContext(target, throwOnNotFound) {
|
|
12588
|
-
if (throwOnNotFound === void 0) { throwOnNotFound = true; }
|
|
12589
|
-
var context = getLContext(target);
|
|
12590
|
-
if (!context && throwOnNotFound) {
|
|
12591
|
-
throw new Error(ngDevMode ? "Unable to find context associated with " + stringifyForError(target) :
|
|
12592
|
-
'Invalid ng target');
|
|
12593
|
-
}
|
|
12594
|
-
return context;
|
|
12595
|
-
}
|
|
12596
12601
|
/**
|
|
12597
12602
|
* Retrieve map of local references.
|
|
12598
12603
|
*
|
|
@@ -12602,7 +12607,7 @@
|
|
|
12602
12607
|
* the local references.
|
|
12603
12608
|
*/
|
|
12604
12609
|
function getLocalRefs(target) {
|
|
12605
|
-
var context =
|
|
12610
|
+
var context = getLContext(target);
|
|
12606
12611
|
if (context === null)
|
|
12607
12612
|
return {};
|
|
12608
12613
|
if (context.localRefs === undefined) {
|
|
@@ -12638,11 +12643,6 @@
|
|
|
12638
12643
|
var hostElement = getHostElement(component);
|
|
12639
12644
|
return hostElement.textContent || '';
|
|
12640
12645
|
}
|
|
12641
|
-
function loadLContextFromNode(node) {
|
|
12642
|
-
if (!(node instanceof Node))
|
|
12643
|
-
throw new Error('Expecting instance of DOM Element');
|
|
12644
|
-
return loadLContext(node);
|
|
12645
|
-
}
|
|
12646
12646
|
/**
|
|
12647
12647
|
* Retrieves a list of event listeners associated with a DOM element. The list does include host
|
|
12648
12648
|
* listeners, but it does not include event listeners defined outside of the Angular context
|
|
@@ -12674,7 +12674,7 @@
|
|
|
12674
12674
|
*/
|
|
12675
12675
|
function getListeners(element) {
|
|
12676
12676
|
assertDomElement(element);
|
|
12677
|
-
var lContext =
|
|
12677
|
+
var lContext = getLContext(element);
|
|
12678
12678
|
if (lContext === null)
|
|
12679
12679
|
return [];
|
|
12680
12680
|
var lView = lContext.lView;
|
|
@@ -12724,8 +12724,13 @@
|
|
|
12724
12724
|
* @param element DOM element which is owned by an existing component's view.
|
|
12725
12725
|
*/
|
|
12726
12726
|
function getDebugNode(element) {
|
|
12727
|
-
|
|
12728
|
-
|
|
12727
|
+
if (ngDevMode && !(element instanceof Node)) {
|
|
12728
|
+
throw new Error('Expecting instance of DOM Element');
|
|
12729
|
+
}
|
|
12730
|
+
var lContext = getLContext(element);
|
|
12731
|
+
if (lContext === null) {
|
|
12732
|
+
return null;
|
|
12733
|
+
}
|
|
12729
12734
|
var lView = lContext.lView;
|
|
12730
12735
|
var nodeIndex = lContext.nodeIndex;
|
|
12731
12736
|
if (nodeIndex !== -1) {
|
|
@@ -12735,9 +12740,9 @@
|
|
|
12735
12740
|
var tNode = isLView(valueInLView) ? valueInLView[T_HOST] : getTNode(lView[TVIEW], nodeIndex);
|
|
12736
12741
|
ngDevMode &&
|
|
12737
12742
|
assertEqual(tNode.index, nodeIndex, 'Expecting that TNode at index is same as index');
|
|
12738
|
-
|
|
12743
|
+
return buildDebugNode(tNode, lView);
|
|
12739
12744
|
}
|
|
12740
|
-
return
|
|
12745
|
+
return null;
|
|
12741
12746
|
}
|
|
12742
12747
|
/**
|
|
12743
12748
|
* Retrieve the component `LView` from component/element.
|
|
@@ -12748,7 +12753,7 @@
|
|
|
12748
12753
|
* @param target DOM element or component instance for which to retrieve the LView.
|
|
12749
12754
|
*/
|
|
12750
12755
|
function getComponentLView(target) {
|
|
12751
|
-
var lContext =
|
|
12756
|
+
var lContext = getLContext(target);
|
|
12752
12757
|
var nodeIndx = lContext.nodeIndex;
|
|
12753
12758
|
var lView = lContext.lView;
|
|
12754
12759
|
var componentLView = lView[nodeIndx];
|
|
@@ -15639,11 +15644,10 @@
|
|
|
15639
15644
|
* @codeGenApi
|
|
15640
15645
|
*/
|
|
15641
15646
|
function ɵɵlistener(eventName, listenerFn, useCapture, eventTargetResolver) {
|
|
15642
|
-
if (useCapture === void 0) { useCapture = false; }
|
|
15643
15647
|
var lView = getLView();
|
|
15644
15648
|
var tView = getTView();
|
|
15645
15649
|
var tNode = getCurrentTNode();
|
|
15646
|
-
listenerInternal(tView, lView, lView[RENDERER], tNode, eventName, listenerFn, useCapture, eventTargetResolver);
|
|
15650
|
+
listenerInternal(tView, lView, lView[RENDERER], tNode, eventName, listenerFn, !!useCapture, eventTargetResolver);
|
|
15647
15651
|
return ɵɵlistener;
|
|
15648
15652
|
}
|
|
15649
15653
|
/**
|
|
@@ -15667,14 +15671,13 @@
|
|
|
15667
15671
|
*
|
|
15668
15672
|
* @codeGenApi
|
|
15669
15673
|
*/
|
|
15670
|
-
function ɵɵsyntheticHostListener(eventName, listenerFn
|
|
15671
|
-
if (useCapture === void 0) { useCapture = false; }
|
|
15674
|
+
function ɵɵsyntheticHostListener(eventName, listenerFn) {
|
|
15672
15675
|
var tNode = getCurrentTNode();
|
|
15673
15676
|
var lView = getLView();
|
|
15674
15677
|
var tView = getTView();
|
|
15675
15678
|
var currentDef = getCurrentDirectiveDef(tView.data);
|
|
15676
15679
|
var renderer = loadComponentRenderer(currentDef, tNode, lView);
|
|
15677
|
-
listenerInternal(tView, lView, renderer, tNode, eventName, listenerFn,
|
|
15680
|
+
listenerInternal(tView, lView, renderer, tNode, eventName, listenerFn, false);
|
|
15678
15681
|
return ɵɵsyntheticHostListener;
|
|
15679
15682
|
}
|
|
15680
15683
|
/**
|
|
@@ -15708,7 +15711,6 @@
|
|
|
15708
15711
|
return null;
|
|
15709
15712
|
}
|
|
15710
15713
|
function listenerInternal(tView, lView, renderer, tNode, eventName, listenerFn, useCapture, eventTargetResolver) {
|
|
15711
|
-
if (useCapture === void 0) { useCapture = false; }
|
|
15712
15714
|
var isTNodeDirectiveHost = isDirectiveHost(tNode);
|
|
15713
15715
|
var firstCreatePass = tView.firstCreatePass;
|
|
15714
15716
|
var tCleanup = firstCreatePass && getOrCreateTViewCleanup(tView);
|
|
@@ -15722,11 +15724,10 @@
|
|
|
15722
15724
|
// add native event listener - applicable to elements only
|
|
15723
15725
|
if (tNode.type & 3 /* AnyRNode */) {
|
|
15724
15726
|
var native = getNativeByTNode(tNode, lView);
|
|
15725
|
-
var
|
|
15726
|
-
var target = resolved.target || native;
|
|
15727
|
+
var target = eventTargetResolver ? eventTargetResolver(native) : native;
|
|
15727
15728
|
var lCleanupIndex = lCleanup.length;
|
|
15728
15729
|
var idxOrTargetGetter = eventTargetResolver ?
|
|
15729
|
-
function (_lView) { return eventTargetResolver(unwrapRNode(_lView[tNode.index]))
|
|
15730
|
+
function (_lView) { return eventTargetResolver(unwrapRNode(_lView[tNode.index])); } :
|
|
15730
15731
|
tNode.index;
|
|
15731
15732
|
// In order to match current behavior, native DOM event listeners must be added for all
|
|
15732
15733
|
// events (including outputs).
|
|
@@ -15762,11 +15763,8 @@
|
|
|
15762
15763
|
processOutputs = false;
|
|
15763
15764
|
}
|
|
15764
15765
|
else {
|
|
15765
|
-
// The first argument of `listen` function in Procedural Renderer is:
|
|
15766
|
-
// - either a target name (as a string) in case of global target (window, document, body)
|
|
15767
|
-
// - or element reference (in all other cases)
|
|
15768
15766
|
listenerFn = wrapListener(tNode, lView, context, listenerFn, false /** preventDefault */);
|
|
15769
|
-
var cleanupFn = renderer.listen(
|
|
15767
|
+
var cleanupFn = renderer.listen(target, eventName, listenerFn);
|
|
15770
15768
|
ngDevMode && ngDevMode.rendererAddEventListener++;
|
|
15771
15769
|
lCleanup.push(listenerFn, cleanupFn);
|
|
15772
15770
|
tCleanup && tCleanup.push(eventName, idxOrTargetGetter, lCleanupIndex, lCleanupIndex + 1);
|
|
@@ -20717,7 +20715,7 @@
|
|
|
20717
20715
|
var hasBinding = text.match(BINDING_REGEXP);
|
|
20718
20716
|
var tNode = createTNodeAndAddOpCode(tView, rootTNode, existingTNodes, lView, createOpCodes, hasBinding ? null : text, false);
|
|
20719
20717
|
if (hasBinding) {
|
|
20720
|
-
generateBindingUpdateOpCodes(updateOpCodes, text, tNode.index);
|
|
20718
|
+
generateBindingUpdateOpCodes(updateOpCodes, text, tNode.index, null, 0, null);
|
|
20721
20719
|
}
|
|
20722
20720
|
}
|
|
20723
20721
|
/**
|
|
@@ -20745,7 +20743,9 @@
|
|
|
20745
20743
|
}
|
|
20746
20744
|
// i18n attributes that hit this code path are guaranteed to have bindings, because
|
|
20747
20745
|
// the compiler treats static i18n attributes as regular attribute bindings.
|
|
20748
|
-
|
|
20746
|
+
// Since this may not be the first i18n attribute on this element we need to pass in how
|
|
20747
|
+
// many previous bindings there have already been.
|
|
20748
|
+
generateBindingUpdateOpCodes(updateOpCodes, message, previousElementIndex, attrName, countBindings(updateOpCodes), null);
|
|
20749
20749
|
}
|
|
20750
20750
|
}
|
|
20751
20751
|
tView.data[index] = updateOpCodes;
|
|
@@ -20759,9 +20759,10 @@
|
|
|
20759
20759
|
* @param destinationNode Index of the destination node which will receive the binding.
|
|
20760
20760
|
* @param attrName Name of the attribute, if the string belongs to an attribute.
|
|
20761
20761
|
* @param sanitizeFn Sanitization function used to sanitize the string after update, if necessary.
|
|
20762
|
+
* @param bindingStart The lView index of the next expression that can be bound via an opCode.
|
|
20763
|
+
* @returns The mask value for these bindings
|
|
20762
20764
|
*/
|
|
20763
|
-
function generateBindingUpdateOpCodes(updateOpCodes, str, destinationNode, attrName, sanitizeFn) {
|
|
20764
|
-
if (sanitizeFn === void 0) { sanitizeFn = null; }
|
|
20765
|
+
function generateBindingUpdateOpCodes(updateOpCodes, str, destinationNode, attrName, bindingStart, sanitizeFn) {
|
|
20765
20766
|
ngDevMode &&
|
|
20766
20767
|
assertGreaterThanOrEqual(destinationNode, HEADER_OFFSET, 'Index must be in absolute LView offset');
|
|
20767
20768
|
var maskIndex = updateOpCodes.length; // Location of mask
|
|
@@ -20777,7 +20778,7 @@
|
|
|
20777
20778
|
var textValue = textParts[j];
|
|
20778
20779
|
if (j & 1) {
|
|
20779
20780
|
// Odd indexes are bindings
|
|
20780
|
-
var bindingIndex = parseInt(textValue, 10);
|
|
20781
|
+
var bindingIndex = bindingStart + parseInt(textValue, 10);
|
|
20781
20782
|
updateOpCodes.push(-1 - bindingIndex);
|
|
20782
20783
|
mask = mask | toMaskBit(bindingIndex);
|
|
20783
20784
|
}
|
|
@@ -20795,6 +20796,28 @@
|
|
|
20795
20796
|
updateOpCodes[sizeIndex] = updateOpCodes.length - startIndex;
|
|
20796
20797
|
return mask;
|
|
20797
20798
|
}
|
|
20799
|
+
/**
|
|
20800
|
+
* Count the number of bindings in the given `opCodes`.
|
|
20801
|
+
*
|
|
20802
|
+
* It could be possible to speed this up, by passing the number of bindings found back from
|
|
20803
|
+
* `generateBindingUpdateOpCodes()` to `i18nAttributesFirstPass()` but this would then require more
|
|
20804
|
+
* complexity in the code and/or transient objects to be created.
|
|
20805
|
+
*
|
|
20806
|
+
* Since this function is only called once when the template is instantiated, is trivial in the
|
|
20807
|
+
* first instance (since `opCodes` will be an empty array), and it is not common for elements to
|
|
20808
|
+
* contain multiple i18n bound attributes, it seems like this is a reasonable compromise.
|
|
20809
|
+
*/
|
|
20810
|
+
function countBindings(opCodes) {
|
|
20811
|
+
var count = 0;
|
|
20812
|
+
for (var i = 0; i < opCodes.length; i++) {
|
|
20813
|
+
var opCode = opCodes[i];
|
|
20814
|
+
// Bindings are negative numbers.
|
|
20815
|
+
if (typeof opCode === 'number' && opCode < 0) {
|
|
20816
|
+
count++;
|
|
20817
|
+
}
|
|
20818
|
+
}
|
|
20819
|
+
return count;
|
|
20820
|
+
}
|
|
20798
20821
|
/**
|
|
20799
20822
|
* Convert binding index to mask bit.
|
|
20800
20823
|
*
|
|
@@ -21046,13 +21069,13 @@
|
|
|
21046
21069
|
if (hasBinding_1) {
|
|
21047
21070
|
if (VALID_ATTRS.hasOwnProperty(lowerAttrName)) {
|
|
21048
21071
|
if (URI_ATTRS[lowerAttrName]) {
|
|
21049
|
-
generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, _sanitizeUrl);
|
|
21072
|
+
generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0, _sanitizeUrl);
|
|
21050
21073
|
}
|
|
21051
21074
|
else if (SRCSET_ATTRS[lowerAttrName]) {
|
|
21052
|
-
generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, sanitizeSrcset);
|
|
21075
|
+
generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0, sanitizeSrcset);
|
|
21053
21076
|
}
|
|
21054
21077
|
else {
|
|
21055
|
-
generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name);
|
|
21078
|
+
generateBindingUpdateOpCodes(update, attr.value, newIndex, attr.name, 0, null);
|
|
21056
21079
|
}
|
|
21057
21080
|
}
|
|
21058
21081
|
else {
|
|
@@ -21078,7 +21101,8 @@
|
|
|
21078
21101
|
addCreateNodeAndAppend(create, null, hasBinding ? '' : value, parentIdx, newIndex);
|
|
21079
21102
|
addRemoveNode(remove, newIndex, depth);
|
|
21080
21103
|
if (hasBinding) {
|
|
21081
|
-
bindingMask =
|
|
21104
|
+
bindingMask =
|
|
21105
|
+
generateBindingUpdateOpCodes(update, value, newIndex, null, 0, null) | bindingMask;
|
|
21082
21106
|
}
|
|
21083
21107
|
break;
|
|
21084
21108
|
case Node.COMMENT_NODE:
|
|
@@ -21998,7 +22022,7 @@
|
|
|
21998
22022
|
/**
|
|
21999
22023
|
* @publicApi
|
|
22000
22024
|
*/
|
|
22001
|
-
var VERSION = new Version('12.0.0
|
|
22025
|
+
var VERSION = new Version('12.0.0');
|
|
22002
22026
|
|
|
22003
22027
|
/**
|
|
22004
22028
|
* @license
|
|
@@ -23213,9 +23237,6 @@
|
|
|
23213
23237
|
/**
|
|
23214
23238
|
* Marks a view and all of its ancestors dirty.
|
|
23215
23239
|
*
|
|
23216
|
-
* It also triggers change detection by calling `scheduleTick` internally, which coalesces
|
|
23217
|
-
* multiple `markForCheck` calls to into one change detection run.
|
|
23218
|
-
*
|
|
23219
23240
|
* This can be used to ensure an {@link ChangeDetectionStrategy#OnPush OnPush} component is
|
|
23220
23241
|
* checked when it needs to be re-rendered but the two normal triggers haven't marked it
|
|
23221
23242
|
* dirty (i.e. inputs haven't changed and events haven't fired in the view).
|
|
@@ -27819,11 +27840,11 @@
|
|
|
27819
27840
|
* NgModule the component belongs to. We keep the list of compiled components here so that the
|
|
27820
27841
|
* TestBed can reset it later.
|
|
27821
27842
|
*/
|
|
27822
|
-
var ownerNgModule = new
|
|
27823
|
-
var verifiedNgModule = new
|
|
27843
|
+
var ownerNgModule = new WeakMap();
|
|
27844
|
+
var verifiedNgModule = new WeakMap();
|
|
27824
27845
|
function resetCompiledComponents() {
|
|
27825
|
-
ownerNgModule = new
|
|
27826
|
-
verifiedNgModule = new
|
|
27846
|
+
ownerNgModule = new WeakMap();
|
|
27847
|
+
verifiedNgModule = new WeakMap();
|
|
27827
27848
|
moduleQueue.length = 0;
|
|
27828
27849
|
}
|
|
27829
27850
|
/**
|
|
@@ -29406,8 +29427,8 @@
|
|
|
29406
29427
|
*/
|
|
29407
29428
|
/**
|
|
29408
29429
|
* The Testability service provides testing hooks that can be accessed from
|
|
29409
|
-
* the browser
|
|
29410
|
-
*
|
|
29430
|
+
* the browser. Each bootstrapped Angular application on the page will have
|
|
29431
|
+
* an instance of Testability.
|
|
29411
29432
|
* @publicApi
|
|
29412
29433
|
*/
|
|
29413
29434
|
var Testability = /** @class */ (function () {
|
|
@@ -30881,14 +30902,14 @@
|
|
|
30881
30902
|
});
|
|
30882
30903
|
Object.defineProperty(DebugElement__POST_R3__.prototype, "name", {
|
|
30883
30904
|
get: function () {
|
|
30884
|
-
|
|
30885
|
-
|
|
30905
|
+
var context = getLContext(this.nativeNode);
|
|
30906
|
+
if (context !== null) {
|
|
30886
30907
|
var lView = context.lView;
|
|
30887
30908
|
var tData = lView[TVIEW].data;
|
|
30888
30909
|
var tNode = tData[context.nodeIndex];
|
|
30889
30910
|
return tNode.value;
|
|
30890
30911
|
}
|
|
30891
|
-
|
|
30912
|
+
else {
|
|
30892
30913
|
return this.nativeNode.nodeName;
|
|
30893
30914
|
}
|
|
30894
30915
|
},
|
|
@@ -30909,8 +30930,8 @@
|
|
|
30909
30930
|
* - attribute bindings (e.g. `[attr.role]="menu"`)
|
|
30910
30931
|
*/
|
|
30911
30932
|
get: function () {
|
|
30912
|
-
var context =
|
|
30913
|
-
if (context
|
|
30933
|
+
var context = getLContext(this.nativeNode);
|
|
30934
|
+
if (context === null) {
|
|
30914
30935
|
return {};
|
|
30915
30936
|
}
|
|
30916
30937
|
var lView = context.lView;
|
|
@@ -30934,8 +30955,8 @@
|
|
|
30934
30955
|
if (!element) {
|
|
30935
30956
|
return attributes;
|
|
30936
30957
|
}
|
|
30937
|
-
var context =
|
|
30938
|
-
if (context
|
|
30958
|
+
var context = getLContext(element);
|
|
30959
|
+
if (context === null) {
|
|
30939
30960
|
return {};
|
|
30940
30961
|
}
|
|
30941
30962
|
var lView = context.lView;
|
|
@@ -31106,7 +31127,7 @@
|
|
|
31106
31127
|
value === null;
|
|
31107
31128
|
}
|
|
31108
31129
|
function _queryAllR3(parentElement, predicate, matches, elementsOnly) {
|
|
31109
|
-
var context =
|
|
31130
|
+
var context = getLContext(parentElement.nativeNode);
|
|
31110
31131
|
if (context !== null) {
|
|
31111
31132
|
var parentTNode = context.lView[TVIEW].data[context.nodeIndex];
|
|
31112
31133
|
_queryNodeChildrenR3(parentTNode, context.lView, predicate, matches, elementsOnly, parentElement.nativeNode);
|
|
@@ -34095,6 +34116,7 @@
|
|
|
34095
34116
|
exports.ɵRender3ComponentFactory = ComponentFactory$1;
|
|
34096
34117
|
exports.ɵRender3ComponentRef = ComponentRef$1;
|
|
34097
34118
|
exports.ɵRender3NgModuleRef = NgModuleRef$1;
|
|
34119
|
+
exports.ɵRuntimeError = RuntimeError;
|
|
34098
34120
|
exports.ɵSWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__ = SWITCH_CHANGE_DETECTOR_REF_FACTORY__POST_R3__;
|
|
34099
34121
|
exports.ɵSWITCH_COMPILE_COMPONENT__POST_R3__ = SWITCH_COMPILE_COMPONENT__POST_R3__;
|
|
34100
34122
|
exports.ɵSWITCH_COMPILE_DIRECTIVE__POST_R3__ = SWITCH_COMPILE_DIRECTIVE__POST_R3__;
|