@angular/core 14.0.0-next.3 → 14.0.0-next.6
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/core.d.ts +59 -15
- package/esm2020/src/application_init.mjs +4 -3
- package/esm2020/src/application_module.mjs +5 -95
- package/esm2020/src/application_ref.mjs +4 -3
- package/esm2020/src/application_tokens.mjs +5 -2
- package/esm2020/src/core_render3_private_export.mjs +2 -1
- package/esm2020/src/debug/debug_node.mjs +11 -10
- package/esm2020/src/i18n/tokens.mjs +39 -3
- package/esm2020/src/linker/compiler.mjs +4 -3
- package/esm2020/src/linker/template_ref.mjs +3 -3
- package/esm2020/src/linker/view_container_ref.mjs +12 -3
- package/esm2020/src/render3/component.mjs +3 -3
- package/esm2020/src/render3/component_ref.mjs +22 -26
- package/esm2020/src/render3/context_discovery.mjs +34 -30
- package/esm2020/src/render3/di.mjs +177 -97
- package/esm2020/src/render3/hooks.mjs +3 -3
- package/esm2020/src/render3/instructions/lview_debug.mjs +6 -3
- package/esm2020/src/render3/instructions/shared.mjs +16 -7
- package/esm2020/src/render3/interfaces/context.mjs +35 -2
- package/esm2020/src/render3/interfaces/injector.mjs +1 -1
- package/esm2020/src/render3/interfaces/lview_tracking.mjs +33 -0
- package/esm2020/src/render3/interfaces/renderer_dom.mjs +1 -1
- package/esm2020/src/render3/interfaces/view.mjs +4 -2
- package/esm2020/src/render3/node_manipulation.mjs +12 -3
- package/esm2020/src/render3/util/discovery_utils.mjs +33 -22
- package/esm2020/src/version.mjs +1 -1
- package/esm2020/testing/src/fake_async.mjs +3 -2
- package/esm2020/testing/src/logger.mjs +3 -3
- package/esm2020/testing/src/ng_zone_mock.mjs +3 -3
- package/fesm2015/core.mjs +442 -297
- package/fesm2015/core.mjs.map +1 -1
- package/fesm2015/testing.mjs +3 -2
- package/fesm2015/testing.mjs.map +1 -1
- package/fesm2020/core.mjs +442 -290
- package/fesm2020/core.mjs.map +1 -1
- package/fesm2020/testing.mjs +3 -2
- package/fesm2020/testing.mjs.map +1 -1
- package/package.json +2 -2
- package/schematics/migrations/entry-components/util.js +2 -2
- package/schematics/migrations/typed-forms/index.d.ts +1 -5
- package/schematics/migrations/typed-forms/index.js +12 -34
- package/schematics/migrations/typed-forms/util.d.ts +6 -9
- package/schematics/migrations/typed-forms/util.js +63 -40
- package/schematics/utils/import_manager.js +13 -12
- package/schematics/utils/typescript/imports.js +6 -5
- package/schematics/utils/typescript/parse_tsconfig.js +6 -2
- package/schematics/utils/typescript/symbol.js +4 -3
- package/testing/testing.d.ts +3 -2
package/fesm2020/core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v14.0.0-next.
|
|
2
|
+
* @license Angular v14.0.0-next.6
|
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -1172,6 +1172,8 @@ const DECLARATION_COMPONENT_VIEW = 16;
|
|
|
1172
1172
|
const DECLARATION_LCONTAINER = 17;
|
|
1173
1173
|
const PREORDER_HOOK_FLAGS = 18;
|
|
1174
1174
|
const QUERIES = 19;
|
|
1175
|
+
const ID = 20;
|
|
1176
|
+
const EMBEDDED_VIEW_INJECTOR = 21;
|
|
1175
1177
|
/**
|
|
1176
1178
|
* Size of LView's header. Necessary to adjust for it when setting slots.
|
|
1177
1179
|
*
|
|
@@ -1179,7 +1181,7 @@ const QUERIES = 19;
|
|
|
1179
1181
|
* instruction index into `LView` index. All other indexes should be in the `LView` index space and
|
|
1180
1182
|
* there should be no need to refer to `HEADER_OFFSET` anywhere else.
|
|
1181
1183
|
*/
|
|
1182
|
-
const HEADER_OFFSET =
|
|
1184
|
+
const HEADER_OFFSET = 22;
|
|
1183
1185
|
/**
|
|
1184
1186
|
* Converts `TViewType` into human readable text.
|
|
1185
1187
|
* Make sure this matches with `TViewType`
|
|
@@ -2474,7 +2476,7 @@ function incrementInitPhaseFlags(lView, initPhase) {
|
|
|
2474
2476
|
assertNotEqual(initPhase, 3 /* InitPhaseCompleted */, 'Init hooks phase should not be incremented after all init hooks have been run.');
|
|
2475
2477
|
let flags = lView[FLAGS];
|
|
2476
2478
|
if ((flags & 3 /* InitPhaseStateMask */) === initPhase) {
|
|
2477
|
-
flags &=
|
|
2479
|
+
flags &= 4095 /* IndexWithinInitPhaseReset */;
|
|
2478
2480
|
flags += 1 /* InitPhaseStateIncrementer */;
|
|
2479
2481
|
lView[FLAGS] = flags;
|
|
2480
2482
|
}
|
|
@@ -2538,12 +2540,12 @@ function callHook(currentView, initPhase, arr, i) {
|
|
|
2538
2540
|
const directiveIndex = isInitHook ? -arr[i] : arr[i];
|
|
2539
2541
|
const directive = currentView[directiveIndex];
|
|
2540
2542
|
if (isInitHook) {
|
|
2541
|
-
const indexWithintInitPhase = currentView[FLAGS] >>
|
|
2543
|
+
const indexWithintInitPhase = currentView[FLAGS] >> 12 /* IndexWithinInitPhaseShift */;
|
|
2542
2544
|
// The init phase state must be always checked here as it may have been recursively updated.
|
|
2543
2545
|
if (indexWithintInitPhase <
|
|
2544
2546
|
(currentView[PREORDER_HOOK_FLAGS] >> 16 /* NumberOfInitHooksCalledShift */) &&
|
|
2545
2547
|
(currentView[FLAGS] & 3 /* InitPhaseStateMask */) === initPhase) {
|
|
2546
|
-
currentView[FLAGS] +=
|
|
2548
|
+
currentView[FLAGS] += 4096 /* IndexWithinInitPhaseIncrementer */;
|
|
2547
2549
|
profiler(4 /* LifecycleHookStart */, directive, hook);
|
|
2548
2550
|
try {
|
|
2549
2551
|
hook.call(directive);
|
|
@@ -3104,6 +3106,8 @@ const BLOOM_MASK = BLOOM_SIZE - 1;
|
|
|
3104
3106
|
const BLOOM_BUCKET_BITS = 5;
|
|
3105
3107
|
/** Counter used to generate unique IDs for directives. */
|
|
3106
3108
|
let nextNgElementId = 0;
|
|
3109
|
+
/** Value used when something wasn't found by an injector. */
|
|
3110
|
+
const NOT_FOUND = {};
|
|
3107
3111
|
/**
|
|
3108
3112
|
* Registers this directive as present in its node's injector by flipping the directive's
|
|
3109
3113
|
* corresponding bit in the injector's bloom filter.
|
|
@@ -3215,23 +3219,7 @@ function getParentInjectorLocation(tNode, lView) {
|
|
|
3215
3219
|
// `LView` hierarchy and look for it. If we walk of the top, that means that there is no parent
|
|
3216
3220
|
// `NodeInjector`.
|
|
3217
3221
|
while (lViewCursor !== null) {
|
|
3218
|
-
|
|
3219
|
-
const tView = lViewCursor[TVIEW];
|
|
3220
|
-
const tViewType = tView.type;
|
|
3221
|
-
if (tViewType === 2 /* Embedded */) {
|
|
3222
|
-
ngDevMode &&
|
|
3223
|
-
assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');
|
|
3224
|
-
parentTNode = tView.declTNode;
|
|
3225
|
-
}
|
|
3226
|
-
else if (tViewType === 1 /* Component */) {
|
|
3227
|
-
// Components don't have `TView.declTNode` because each instance of component could be
|
|
3228
|
-
// inserted in different location, hence `TView.declTNode` is meaningless.
|
|
3229
|
-
parentTNode = lViewCursor[T_HOST];
|
|
3230
|
-
}
|
|
3231
|
-
else {
|
|
3232
|
-
ngDevMode && assertEqual(tView.type, 0 /* Root */, 'Root type expected');
|
|
3233
|
-
parentTNode = null;
|
|
3234
|
-
}
|
|
3222
|
+
parentTNode = getTNodeFromLView(lViewCursor);
|
|
3235
3223
|
if (parentTNode === null) {
|
|
3236
3224
|
// If we have no parent, than we are done.
|
|
3237
3225
|
return NO_PARENT_INJECTOR;
|
|
@@ -3392,93 +3380,116 @@ function lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue) {
|
|
|
3392
3380
|
*/
|
|
3393
3381
|
function getOrCreateInjectable(tNode, lView, token, flags = InjectFlags.Default, notFoundValue) {
|
|
3394
3382
|
if (tNode !== null) {
|
|
3395
|
-
|
|
3396
|
-
//
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
if (
|
|
3400
|
-
|
|
3401
|
-
// flag, the module injector is not searched for that token in Ivy.
|
|
3402
|
-
return (flags & InjectFlags.Host) ?
|
|
3403
|
-
notFoundValueOrThrow(notFoundValue, token, flags) :
|
|
3404
|
-
lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);
|
|
3383
|
+
// If the view or any of its ancestors have an embedded
|
|
3384
|
+
// view injector, we have to look it up there first.
|
|
3385
|
+
if (lView[FLAGS] & 2048 /* HasEmbeddedViewInjector */) {
|
|
3386
|
+
const embeddedInjectorValue = lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, NOT_FOUND);
|
|
3387
|
+
if (embeddedInjectorValue !== NOT_FOUND) {
|
|
3388
|
+
return embeddedInjectorValue;
|
|
3405
3389
|
}
|
|
3406
|
-
|
|
3407
|
-
|
|
3408
|
-
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
|
|
3412
|
-
|
|
3413
|
-
|
|
3390
|
+
}
|
|
3391
|
+
// Otherwise try the node injector.
|
|
3392
|
+
const value = lookupTokenUsingNodeInjector(tNode, lView, token, flags, NOT_FOUND);
|
|
3393
|
+
if (value !== NOT_FOUND) {
|
|
3394
|
+
return value;
|
|
3395
|
+
}
|
|
3396
|
+
}
|
|
3397
|
+
// Finally, fall back to the module injector.
|
|
3398
|
+
return lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);
|
|
3399
|
+
}
|
|
3400
|
+
/**
|
|
3401
|
+
* Returns the value associated to the given token from the node injector.
|
|
3402
|
+
*
|
|
3403
|
+
* @param tNode The Node where the search for the injector should start
|
|
3404
|
+
* @param lView The `LView` that contains the `tNode`
|
|
3405
|
+
* @param token The token to look for
|
|
3406
|
+
* @param flags Injection flags
|
|
3407
|
+
* @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`
|
|
3408
|
+
* @returns the value from the injector, `null` when not found, or `notFoundValue` if provided
|
|
3409
|
+
*/
|
|
3410
|
+
function lookupTokenUsingNodeInjector(tNode, lView, token, flags, notFoundValue) {
|
|
3411
|
+
const bloomHash = bloomHashBitOrFactory(token);
|
|
3412
|
+
// If the ID stored here is a function, this is a special object like ElementRef or TemplateRef
|
|
3413
|
+
// so just call the factory function to create it.
|
|
3414
|
+
if (typeof bloomHash === 'function') {
|
|
3415
|
+
if (!enterDI(lView, tNode, flags)) {
|
|
3416
|
+
// Failed to enter DI, try module injector instead. If a token is injected with the @Host
|
|
3417
|
+
// flag, the module injector is not searched for that token in Ivy.
|
|
3418
|
+
return (flags & InjectFlags.Host) ?
|
|
3419
|
+
notFoundValueOrThrow(notFoundValue, token, flags) :
|
|
3420
|
+
lookupTokenUsingModuleInjector(lView, token, flags, notFoundValue);
|
|
3421
|
+
}
|
|
3422
|
+
try {
|
|
3423
|
+
const value = bloomHash(flags);
|
|
3424
|
+
if (value == null && !(flags & InjectFlags.Optional)) {
|
|
3425
|
+
throwProviderNotFoundError(token);
|
|
3414
3426
|
}
|
|
3415
|
-
|
|
3416
|
-
|
|
3417
|
-
}
|
|
3418
|
-
}
|
|
3419
|
-
else if (typeof bloomHash === 'number') {
|
|
3420
|
-
// A reference to the previous injector TView that was found while climbing the element
|
|
3421
|
-
// injector tree. This is used to know if viewProviders can be accessed on the current
|
|
3422
|
-
// injector.
|
|
3423
|
-
let previousTView = null;
|
|
3424
|
-
let injectorIndex = getInjectorIndex(tNode, lView);
|
|
3425
|
-
let parentLocation = NO_PARENT_INJECTOR;
|
|
3426
|
-
let hostTElementNode = flags & InjectFlags.Host ? lView[DECLARATION_COMPONENT_VIEW][T_HOST] : null;
|
|
3427
|
-
// If we should skip this injector, or if there is no injector on this node, start by
|
|
3428
|
-
// searching the parent injector.
|
|
3429
|
-
if (injectorIndex === -1 || flags & InjectFlags.SkipSelf) {
|
|
3430
|
-
parentLocation = injectorIndex === -1 ? getParentInjectorLocation(tNode, lView) :
|
|
3431
|
-
lView[injectorIndex + 8 /* PARENT */];
|
|
3432
|
-
if (parentLocation === NO_PARENT_INJECTOR || !shouldSearchParent(flags, false)) {
|
|
3433
|
-
injectorIndex = -1;
|
|
3434
|
-
}
|
|
3435
|
-
else {
|
|
3436
|
-
previousTView = lView[TVIEW];
|
|
3437
|
-
injectorIndex = getParentInjectorIndex(parentLocation);
|
|
3438
|
-
lView = getParentInjectorView(parentLocation, lView);
|
|
3439
|
-
}
|
|
3427
|
+
else {
|
|
3428
|
+
return value;
|
|
3440
3429
|
}
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
|
|
3463
|
-
|
|
3464
|
-
|
|
3465
|
-
|
|
3466
|
-
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3430
|
+
}
|
|
3431
|
+
finally {
|
|
3432
|
+
leaveDI();
|
|
3433
|
+
}
|
|
3434
|
+
}
|
|
3435
|
+
else if (typeof bloomHash === 'number') {
|
|
3436
|
+
// A reference to the previous injector TView that was found while climbing the element
|
|
3437
|
+
// injector tree. This is used to know if viewProviders can be accessed on the current
|
|
3438
|
+
// injector.
|
|
3439
|
+
let previousTView = null;
|
|
3440
|
+
let injectorIndex = getInjectorIndex(tNode, lView);
|
|
3441
|
+
let parentLocation = NO_PARENT_INJECTOR;
|
|
3442
|
+
let hostTElementNode = flags & InjectFlags.Host ? lView[DECLARATION_COMPONENT_VIEW][T_HOST] : null;
|
|
3443
|
+
// If we should skip this injector, or if there is no injector on this node, start by
|
|
3444
|
+
// searching the parent injector.
|
|
3445
|
+
if (injectorIndex === -1 || flags & InjectFlags.SkipSelf) {
|
|
3446
|
+
parentLocation = injectorIndex === -1 ? getParentInjectorLocation(tNode, lView) :
|
|
3447
|
+
lView[injectorIndex + 8 /* PARENT */];
|
|
3448
|
+
if (parentLocation === NO_PARENT_INJECTOR || !shouldSearchParent(flags, false)) {
|
|
3449
|
+
injectorIndex = -1;
|
|
3450
|
+
}
|
|
3451
|
+
else {
|
|
3452
|
+
previousTView = lView[TVIEW];
|
|
3453
|
+
injectorIndex = getParentInjectorIndex(parentLocation);
|
|
3454
|
+
lView = getParentInjectorView(parentLocation, lView);
|
|
3455
|
+
}
|
|
3456
|
+
}
|
|
3457
|
+
// Traverse up the injector tree until we find a potential match or until we know there
|
|
3458
|
+
// *isn't* a match.
|
|
3459
|
+
while (injectorIndex !== -1) {
|
|
3460
|
+
ngDevMode && assertNodeInjector(lView, injectorIndex);
|
|
3461
|
+
// Check the current injector. If it matches, see if it contains token.
|
|
3462
|
+
const tView = lView[TVIEW];
|
|
3463
|
+
ngDevMode &&
|
|
3464
|
+
assertTNodeForLView(tView.data[injectorIndex + 8 /* TNODE */], lView);
|
|
3465
|
+
if (bloomHasToken(bloomHash, injectorIndex, tView.data)) {
|
|
3466
|
+
// At this point, we have an injector which *may* contain the token, so we step through
|
|
3467
|
+
// the providers and directives associated with the injector's corresponding node to get
|
|
3468
|
+
// the instance.
|
|
3469
|
+
const instance = searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode);
|
|
3470
|
+
if (instance !== NOT_FOUND) {
|
|
3471
|
+
return instance;
|
|
3473
3472
|
}
|
|
3474
3473
|
}
|
|
3474
|
+
parentLocation = lView[injectorIndex + 8 /* PARENT */];
|
|
3475
|
+
if (parentLocation !== NO_PARENT_INJECTOR &&
|
|
3476
|
+
shouldSearchParent(flags, lView[TVIEW].data[injectorIndex + 8 /* TNODE */] === hostTElementNode) &&
|
|
3477
|
+
bloomHasToken(bloomHash, injectorIndex, lView)) {
|
|
3478
|
+
// The def wasn't found anywhere on this node, so it was a false positive.
|
|
3479
|
+
// Traverse up the tree and continue searching.
|
|
3480
|
+
previousTView = tView;
|
|
3481
|
+
injectorIndex = getParentInjectorIndex(parentLocation);
|
|
3482
|
+
lView = getParentInjectorView(parentLocation, lView);
|
|
3483
|
+
}
|
|
3484
|
+
else {
|
|
3485
|
+
// If we should not search parent OR If the ancestor bloom filter value does not have the
|
|
3486
|
+
// bit corresponding to the directive we can give up on traversing up to find the specific
|
|
3487
|
+
// injector.
|
|
3488
|
+
injectorIndex = -1;
|
|
3489
|
+
}
|
|
3475
3490
|
}
|
|
3476
3491
|
}
|
|
3477
|
-
return
|
|
3478
|
-
}
|
|
3479
|
-
const NOT_FOUND = {};
|
|
3480
|
-
function createNodeInjector() {
|
|
3481
|
-
return new NodeInjector(getCurrentTNode(), getLView());
|
|
3492
|
+
return notFoundValue;
|
|
3482
3493
|
}
|
|
3483
3494
|
function searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode) {
|
|
3484
3495
|
const currentTView = lView[TVIEW];
|
|
@@ -3652,6 +3663,10 @@ class NodeInjector {
|
|
|
3652
3663
|
return getOrCreateInjectable(this._tNode, this._lView, token, flags, notFoundValue);
|
|
3653
3664
|
}
|
|
3654
3665
|
}
|
|
3666
|
+
/** Creates a `NodeInjector` for the current node. */
|
|
3667
|
+
function createNodeInjector() {
|
|
3668
|
+
return new NodeInjector(getCurrentTNode(), getLView());
|
|
3669
|
+
}
|
|
3655
3670
|
/**
|
|
3656
3671
|
* @codeGenApi
|
|
3657
3672
|
*/
|
|
@@ -3690,6 +3705,73 @@ function getFactoryOf(type) {
|
|
|
3690
3705
|
}
|
|
3691
3706
|
return getFactoryDef(type);
|
|
3692
3707
|
}
|
|
3708
|
+
/**
|
|
3709
|
+
* Returns a value from the closest embedded or node injector.
|
|
3710
|
+
*
|
|
3711
|
+
* @param tNode The Node where the search for the injector should start
|
|
3712
|
+
* @param lView The `LView` that contains the `tNode`
|
|
3713
|
+
* @param token The token to look for
|
|
3714
|
+
* @param flags Injection flags
|
|
3715
|
+
* @param notFoundValue The value to return when the injection flags is `InjectFlags.Optional`
|
|
3716
|
+
* @returns the value from the injector, `null` when not found, or `notFoundValue` if provided
|
|
3717
|
+
*/
|
|
3718
|
+
function lookupTokenUsingEmbeddedInjector(tNode, lView, token, flags, notFoundValue) {
|
|
3719
|
+
let currentTNode = tNode;
|
|
3720
|
+
let currentLView = lView;
|
|
3721
|
+
// When an LView with an embedded view injector is inserted, it'll likely be interlaced with
|
|
3722
|
+
// nodes who may have injectors (e.g. node injector -> embedded view injector -> node injector).
|
|
3723
|
+
// Since the bloom filters for the node injectors have already been constructed and we don't
|
|
3724
|
+
// have a way of extracting the records from an injector, the only way to maintain the correct
|
|
3725
|
+
// hierarchy when resolving the value is to walk it node-by-node while attempting to resolve
|
|
3726
|
+
// the token at each level.
|
|
3727
|
+
while (currentTNode !== null && currentLView !== null &&
|
|
3728
|
+
(currentLView[FLAGS] & 2048 /* HasEmbeddedViewInjector */) &&
|
|
3729
|
+
!(currentLView[FLAGS] & 512 /* IsRoot */)) {
|
|
3730
|
+
ngDevMode && assertTNodeForLView(currentTNode, currentLView);
|
|
3731
|
+
// Note that this lookup on the node injector is using the `Self` flag, because
|
|
3732
|
+
// we don't want the node injector to look at any parent injectors since we
|
|
3733
|
+
// may hit the embedded view injector first.
|
|
3734
|
+
const nodeInjectorValue = lookupTokenUsingNodeInjector(currentTNode, currentLView, token, flags | InjectFlags.Self, NOT_FOUND);
|
|
3735
|
+
if (nodeInjectorValue !== NOT_FOUND) {
|
|
3736
|
+
return nodeInjectorValue;
|
|
3737
|
+
}
|
|
3738
|
+
// Has an explicit type due to a TS bug: https://github.com/microsoft/TypeScript/issues/33191
|
|
3739
|
+
let parentTNode = currentTNode.parent;
|
|
3740
|
+
// `TNode.parent` includes the parent within the current view only. If it doesn't exist,
|
|
3741
|
+
// it means that we've hit the view boundary and we need to go up to the next view.
|
|
3742
|
+
if (!parentTNode) {
|
|
3743
|
+
// Before we go to the next LView, check if the token exists on the current embedded injector.
|
|
3744
|
+
const embeddedViewInjector = currentLView[EMBEDDED_VIEW_INJECTOR];
|
|
3745
|
+
if (embeddedViewInjector) {
|
|
3746
|
+
const embeddedViewInjectorValue = embeddedViewInjector.get(token, NOT_FOUND, flags);
|
|
3747
|
+
if (embeddedViewInjectorValue !== NOT_FOUND) {
|
|
3748
|
+
return embeddedViewInjectorValue;
|
|
3749
|
+
}
|
|
3750
|
+
}
|
|
3751
|
+
// Otherwise keep going up the tree.
|
|
3752
|
+
parentTNode = getTNodeFromLView(currentLView);
|
|
3753
|
+
currentLView = currentLView[DECLARATION_VIEW];
|
|
3754
|
+
}
|
|
3755
|
+
currentTNode = parentTNode;
|
|
3756
|
+
}
|
|
3757
|
+
return notFoundValue;
|
|
3758
|
+
}
|
|
3759
|
+
/** Gets the TNode associated with an LView inside of the declaration view. */
|
|
3760
|
+
function getTNodeFromLView(lView) {
|
|
3761
|
+
const tView = lView[TVIEW];
|
|
3762
|
+
const tViewType = tView.type;
|
|
3763
|
+
// The parent pointer differs based on `TView.type`.
|
|
3764
|
+
if (tViewType === 2 /* Embedded */) {
|
|
3765
|
+
ngDevMode && assertDefined(tView.declTNode, 'Embedded TNodes should have declaration parents.');
|
|
3766
|
+
return tView.declTNode;
|
|
3767
|
+
}
|
|
3768
|
+
else if (tViewType === 1 /* Component */) {
|
|
3769
|
+
// Components don't have `TView.declTNode` because each instance of component could be
|
|
3770
|
+
// inserted in different location, hence `TView.declTNode` is meaningless.
|
|
3771
|
+
return lView[T_HOST];
|
|
3772
|
+
}
|
|
3773
|
+
return null;
|
|
3774
|
+
}
|
|
3693
3775
|
|
|
3694
3776
|
/**
|
|
3695
3777
|
* @license
|
|
@@ -6170,6 +6252,78 @@ function getSanitizer() {
|
|
|
6170
6252
|
return lView && lView[SANITIZER];
|
|
6171
6253
|
}
|
|
6172
6254
|
|
|
6255
|
+
/**
|
|
6256
|
+
* @license
|
|
6257
|
+
* Copyright Google LLC All Rights Reserved.
|
|
6258
|
+
*
|
|
6259
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6260
|
+
* found in the LICENSE file at https://angular.io/license
|
|
6261
|
+
*/
|
|
6262
|
+
// Keeps track of the currently-active LViews.
|
|
6263
|
+
const TRACKED_LVIEWS = new Map();
|
|
6264
|
+
// Used for generating unique IDs for LViews.
|
|
6265
|
+
let uniqueIdCounter = 0;
|
|
6266
|
+
/** Gets a unique ID that can be assigned to an LView. */
|
|
6267
|
+
function getUniqueLViewId() {
|
|
6268
|
+
return uniqueIdCounter++;
|
|
6269
|
+
}
|
|
6270
|
+
/** Starts tracking an LView. */
|
|
6271
|
+
function registerLView(lView) {
|
|
6272
|
+
ngDevMode && assertNumber(lView[ID], 'LView must have an ID in order to be registered');
|
|
6273
|
+
TRACKED_LVIEWS.set(lView[ID], lView);
|
|
6274
|
+
}
|
|
6275
|
+
/** Gets an LView by its unique ID. */
|
|
6276
|
+
function getLViewById(id) {
|
|
6277
|
+
ngDevMode && assertNumber(id, 'ID used for LView lookup must be a number');
|
|
6278
|
+
return TRACKED_LVIEWS.get(id) || null;
|
|
6279
|
+
}
|
|
6280
|
+
/** Stops tracking an LView. */
|
|
6281
|
+
function unregisterLView(lView) {
|
|
6282
|
+
ngDevMode && assertNumber(lView[ID], 'Cannot stop tracking an LView that does not have an ID');
|
|
6283
|
+
TRACKED_LVIEWS.delete(lView[ID]);
|
|
6284
|
+
}
|
|
6285
|
+
|
|
6286
|
+
/**
|
|
6287
|
+
* @license
|
|
6288
|
+
* Copyright Google LLC All Rights Reserved.
|
|
6289
|
+
*
|
|
6290
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6291
|
+
* found in the LICENSE file at https://angular.io/license
|
|
6292
|
+
*/
|
|
6293
|
+
/**
|
|
6294
|
+
* The internal view context which is specific to a given DOM element, directive or
|
|
6295
|
+
* component instance. Each value in here (besides the LView and element node details)
|
|
6296
|
+
* can be present, null or undefined. If undefined then it implies the value has not been
|
|
6297
|
+
* looked up yet, otherwise, if null, then a lookup was executed and nothing was found.
|
|
6298
|
+
*
|
|
6299
|
+
* Each value will get filled when the respective value is examined within the getContext
|
|
6300
|
+
* function. The component, element and each directive instance will share the same instance
|
|
6301
|
+
* of the context.
|
|
6302
|
+
*/
|
|
6303
|
+
class LContext {
|
|
6304
|
+
constructor(
|
|
6305
|
+
/**
|
|
6306
|
+
* ID of the component's parent view data.
|
|
6307
|
+
*/
|
|
6308
|
+
lViewId,
|
|
6309
|
+
/**
|
|
6310
|
+
* The index instance of the node.
|
|
6311
|
+
*/
|
|
6312
|
+
nodeIndex,
|
|
6313
|
+
/**
|
|
6314
|
+
* The instance of the DOM node that is attached to the lNode.
|
|
6315
|
+
*/
|
|
6316
|
+
native) {
|
|
6317
|
+
this.lViewId = lViewId;
|
|
6318
|
+
this.nodeIndex = nodeIndex;
|
|
6319
|
+
this.native = native;
|
|
6320
|
+
}
|
|
6321
|
+
/** Component's parent view data. */
|
|
6322
|
+
get lView() {
|
|
6323
|
+
return getLViewById(this.lViewId);
|
|
6324
|
+
}
|
|
6325
|
+
}
|
|
6326
|
+
|
|
6173
6327
|
/**
|
|
6174
6328
|
* @license
|
|
6175
6329
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -6202,7 +6356,7 @@ function getLContext(target) {
|
|
|
6202
6356
|
if (mpValue) {
|
|
6203
6357
|
// only when it's an array is it considered an LView instance
|
|
6204
6358
|
// ... otherwise it's an already constructed LContext instance
|
|
6205
|
-
if (
|
|
6359
|
+
if (isLView(mpValue)) {
|
|
6206
6360
|
const lView = mpValue;
|
|
6207
6361
|
let nodeIndex;
|
|
6208
6362
|
let component = undefined;
|
|
@@ -6261,13 +6415,7 @@ function getLContext(target) {
|
|
|
6261
6415
|
while (parent = parent.parentNode) {
|
|
6262
6416
|
const parentContext = readPatchedData(parent);
|
|
6263
6417
|
if (parentContext) {
|
|
6264
|
-
|
|
6265
|
-
if (Array.isArray(parentContext)) {
|
|
6266
|
-
lView = parentContext;
|
|
6267
|
-
}
|
|
6268
|
-
else {
|
|
6269
|
-
lView = parentContext.lView;
|
|
6270
|
-
}
|
|
6418
|
+
const lView = Array.isArray(parentContext) ? parentContext : parentContext.lView;
|
|
6271
6419
|
// the edge of the app was also reached here through another means
|
|
6272
6420
|
// (maybe because the DOM was changed manually).
|
|
6273
6421
|
if (!lView) {
|
|
@@ -6290,14 +6438,7 @@ function getLContext(target) {
|
|
|
6290
6438
|
* Creates an empty instance of a `LContext` context
|
|
6291
6439
|
*/
|
|
6292
6440
|
function createLContext(lView, nodeIndex, native) {
|
|
6293
|
-
return
|
|
6294
|
-
lView,
|
|
6295
|
-
nodeIndex,
|
|
6296
|
-
native,
|
|
6297
|
-
component: undefined,
|
|
6298
|
-
directives: undefined,
|
|
6299
|
-
localRefs: undefined,
|
|
6300
|
-
};
|
|
6441
|
+
return new LContext(lView[ID], nodeIndex, native);
|
|
6301
6442
|
}
|
|
6302
6443
|
/**
|
|
6303
6444
|
* Takes a component instance and returns the view for that component.
|
|
@@ -6306,21 +6447,24 @@ function createLContext(lView, nodeIndex, native) {
|
|
|
6306
6447
|
* @returns The component's view
|
|
6307
6448
|
*/
|
|
6308
6449
|
function getComponentViewByInstance(componentInstance) {
|
|
6309
|
-
let
|
|
6310
|
-
let
|
|
6311
|
-
if (
|
|
6312
|
-
const
|
|
6313
|
-
|
|
6314
|
-
|
|
6450
|
+
let patchedData = readPatchedData(componentInstance);
|
|
6451
|
+
let lView;
|
|
6452
|
+
if (isLView(patchedData)) {
|
|
6453
|
+
const contextLView = patchedData;
|
|
6454
|
+
const nodeIndex = findViaComponent(contextLView, componentInstance);
|
|
6455
|
+
lView = getComponentLViewByIndex(nodeIndex, contextLView);
|
|
6456
|
+
const context = createLContext(contextLView, nodeIndex, lView[HOST]);
|
|
6315
6457
|
context.component = componentInstance;
|
|
6316
6458
|
attachPatchData(componentInstance, context);
|
|
6317
6459
|
attachPatchData(context.native, context);
|
|
6318
6460
|
}
|
|
6319
6461
|
else {
|
|
6320
|
-
const context =
|
|
6321
|
-
|
|
6462
|
+
const context = patchedData;
|
|
6463
|
+
const contextLView = context.lView;
|
|
6464
|
+
ngDevMode && assertLView(contextLView);
|
|
6465
|
+
lView = getComponentLViewByIndex(context.nodeIndex, contextLView);
|
|
6322
6466
|
}
|
|
6323
|
-
return
|
|
6467
|
+
return lView;
|
|
6324
6468
|
}
|
|
6325
6469
|
/**
|
|
6326
6470
|
* This property will be monkey-patched on elements, components and directives.
|
|
@@ -6332,7 +6476,16 @@ const MONKEY_PATCH_KEY_NAME = '__ngContext__';
|
|
|
6332
6476
|
*/
|
|
6333
6477
|
function attachPatchData(target, data) {
|
|
6334
6478
|
ngDevMode && assertDefined(target, 'Target expected');
|
|
6335
|
-
|
|
6479
|
+
// Only attach the ID of the view in order to avoid memory leaks (see #41047). We only do this
|
|
6480
|
+
// for `LView`, because we have control over when an `LView` is created and destroyed, whereas
|
|
6481
|
+
// we can't know when to remove an `LContext`.
|
|
6482
|
+
if (isLView(data)) {
|
|
6483
|
+
target[MONKEY_PATCH_KEY_NAME] = data[ID];
|
|
6484
|
+
registerLView(data);
|
|
6485
|
+
}
|
|
6486
|
+
else {
|
|
6487
|
+
target[MONKEY_PATCH_KEY_NAME] = data;
|
|
6488
|
+
}
|
|
6336
6489
|
}
|
|
6337
6490
|
/**
|
|
6338
6491
|
* Returns the monkey-patch value data present on the target (which could be
|
|
@@ -6340,12 +6493,13 @@ function attachPatchData(target, data) {
|
|
|
6340
6493
|
*/
|
|
6341
6494
|
function readPatchedData(target) {
|
|
6342
6495
|
ngDevMode && assertDefined(target, 'Target expected');
|
|
6343
|
-
|
|
6496
|
+
const data = target[MONKEY_PATCH_KEY_NAME];
|
|
6497
|
+
return (typeof data === 'number') ? getLViewById(data) : data || null;
|
|
6344
6498
|
}
|
|
6345
6499
|
function readPatchedLView(target) {
|
|
6346
6500
|
const value = readPatchedData(target);
|
|
6347
6501
|
if (value) {
|
|
6348
|
-
return
|
|
6502
|
+
return isLView(value) ? value : value.lView;
|
|
6349
6503
|
}
|
|
6350
6504
|
return null;
|
|
6351
6505
|
}
|
|
@@ -7292,6 +7446,8 @@ function cleanUpView(tView, lView) {
|
|
|
7292
7446
|
lQueries.detachView(tView);
|
|
7293
7447
|
}
|
|
7294
7448
|
}
|
|
7449
|
+
// Unregister the view once everything else has been cleaned up.
|
|
7450
|
+
unregisterLView(lView);
|
|
7295
7451
|
}
|
|
7296
7452
|
}
|
|
7297
7453
|
/** Removes listeners and unsubscribes from output subscriptions */
|
|
@@ -7459,7 +7615,8 @@ function nativeInsertBefore(renderer, parent, child, beforeNode, isMove) {
|
|
|
7459
7615
|
renderer.insertBefore(parent, child, beforeNode, isMove);
|
|
7460
7616
|
}
|
|
7461
7617
|
else {
|
|
7462
|
-
parent.
|
|
7618
|
+
const targetParent = isTemplateNode(parent) ? parent.content : parent;
|
|
7619
|
+
targetParent.insertBefore(child, beforeNode, isMove);
|
|
7463
7620
|
}
|
|
7464
7621
|
}
|
|
7465
7622
|
function nativeAppendChild(renderer, parent, child) {
|
|
@@ -7469,7 +7626,8 @@ function nativeAppendChild(renderer, parent, child) {
|
|
|
7469
7626
|
renderer.appendChild(parent, child);
|
|
7470
7627
|
}
|
|
7471
7628
|
else {
|
|
7472
|
-
parent.
|
|
7629
|
+
const targetParent = isTemplateNode(parent) ? parent.content : parent;
|
|
7630
|
+
targetParent.appendChild(child);
|
|
7473
7631
|
}
|
|
7474
7632
|
}
|
|
7475
7633
|
function nativeAppendOrInsertBefore(renderer, parent, child, beforeNode, isMove) {
|
|
@@ -7489,6 +7647,10 @@ function nativeRemoveChild(renderer, parent, child, isHostElement) {
|
|
|
7489
7647
|
parent.removeChild(child);
|
|
7490
7648
|
}
|
|
7491
7649
|
}
|
|
7650
|
+
/** Checks if an element is a `<template>` node. */
|
|
7651
|
+
function isTemplateNode(node) {
|
|
7652
|
+
return node.tagName === 'TEMPLATE' && node.content !== undefined;
|
|
7653
|
+
}
|
|
7492
7654
|
/**
|
|
7493
7655
|
* Returns a native parent of a given native node.
|
|
7494
7656
|
*/
|
|
@@ -9009,7 +9171,7 @@ class LViewDebug {
|
|
|
9009
9171
|
attached: !!(flags & 128 /* Attached */),
|
|
9010
9172
|
destroyed: !!(flags & 256 /* Destroyed */),
|
|
9011
9173
|
isRoot: !!(flags & 512 /* IsRoot */),
|
|
9012
|
-
indexWithinInitPhase: flags >>
|
|
9174
|
+
indexWithinInitPhase: flags >> 12 /* IndexWithinInitPhaseShift */,
|
|
9013
9175
|
};
|
|
9014
9176
|
}
|
|
9015
9177
|
get parent() {
|
|
@@ -9072,6 +9234,9 @@ class LViewDebug {
|
|
|
9072
9234
|
get tHost() {
|
|
9073
9235
|
return this._raw_lView[T_HOST];
|
|
9074
9236
|
}
|
|
9237
|
+
get id() {
|
|
9238
|
+
return this._raw_lView[ID];
|
|
9239
|
+
}
|
|
9075
9240
|
get decls() {
|
|
9076
9241
|
return toLViewRange(this.tView, this._raw_lView, HEADER_OFFSET, this.tView.bindingStartIndex);
|
|
9077
9242
|
}
|
|
@@ -9301,10 +9466,14 @@ function renderChildComponents(hostLView, components) {
|
|
|
9301
9466
|
renderComponent$1(hostLView, components[i]);
|
|
9302
9467
|
}
|
|
9303
9468
|
}
|
|
9304
|
-
function createLView(parentLView, tView, context, flags, host, tHostNode, rendererFactory, renderer, sanitizer, injector) {
|
|
9469
|
+
function createLView(parentLView, tView, context, flags, host, tHostNode, rendererFactory, renderer, sanitizer, injector, embeddedViewInjector) {
|
|
9305
9470
|
const lView = ngDevMode ? cloneToLViewFromTViewBlueprint(tView) : tView.blueprint.slice();
|
|
9306
9471
|
lView[HOST] = host;
|
|
9307
9472
|
lView[FLAGS] = flags | 4 /* CreationMode */ | 128 /* Attached */ | 8 /* FirstLViewPass */;
|
|
9473
|
+
if (embeddedViewInjector !== null ||
|
|
9474
|
+
(parentLView && (parentLView[FLAGS] & 2048 /* HasEmbeddedViewInjector */))) {
|
|
9475
|
+
lView[FLAGS] |= 2048 /* HasEmbeddedViewInjector */;
|
|
9476
|
+
}
|
|
9308
9477
|
resetPreOrderHookFlags(lView);
|
|
9309
9478
|
ngDevMode && tView.declTNode && parentLView && assertTNodeForLView(tView.declTNode, parentLView);
|
|
9310
9479
|
lView[PARENT] = lView[DECLARATION_VIEW] = parentLView;
|
|
@@ -9316,6 +9485,8 @@ function createLView(parentLView, tView, context, flags, host, tHostNode, render
|
|
|
9316
9485
|
lView[SANITIZER] = sanitizer || parentLView && parentLView[SANITIZER] || null;
|
|
9317
9486
|
lView[INJECTOR$1] = injector || parentLView && parentLView[INJECTOR$1] || null;
|
|
9318
9487
|
lView[T_HOST] = tHostNode;
|
|
9488
|
+
lView[ID] = getUniqueLViewId();
|
|
9489
|
+
lView[EMBEDDED_VIEW_INJECTOR] = embeddedViewInjector;
|
|
9319
9490
|
ngDevMode &&
|
|
9320
9491
|
assertEqual(tView.type == 2 /* Embedded */ ? parentLView !== null : true, true, 'Embedded views must have parentLView');
|
|
9321
9492
|
lView[DECLARATION_COMPONENT_VIEW] =
|
|
@@ -10324,7 +10495,6 @@ function instantiateAllDirectives(tView, lView, tNode, native) {
|
|
|
10324
10495
|
function invokeDirectivesHostBindings(tView, lView, tNode) {
|
|
10325
10496
|
const start = tNode.directiveStart;
|
|
10326
10497
|
const end = tNode.directiveEnd;
|
|
10327
|
-
const firstCreatePass = tView.firstCreatePass;
|
|
10328
10498
|
const elementIndex = tNode.index;
|
|
10329
10499
|
const currentDirectiveIndex = getCurrentDirectiveIndex();
|
|
10330
10500
|
try {
|
|
@@ -10471,7 +10641,7 @@ function addComponentLogic(lView, hostTNode, def) {
|
|
|
10471
10641
|
// Only component views should be added to the view tree directly. Embedded views are
|
|
10472
10642
|
// accessed through their containers because they may be removed / re-added later.
|
|
10473
10643
|
const rendererFactory = lView[RENDERER_FACTORY];
|
|
10474
|
-
const componentView = addToViewTree(lView, createLView(lView, tView, null, def.onPush ? 64 /* Dirty */ : 16 /* CheckAlways */, native, hostTNode, rendererFactory, rendererFactory.createRenderer(native, def), null, null));
|
|
10644
|
+
const componentView = addToViewTree(lView, createLView(lView, tView, null, def.onPush ? 64 /* Dirty */ : 16 /* CheckAlways */, native, hostTNode, rendererFactory, rendererFactory.createRenderer(native, def), null, null, null));
|
|
10475
10645
|
// Component view will always be created before any injected LContainers,
|
|
10476
10646
|
// so this is a regular element, wrap it with the component view
|
|
10477
10647
|
lView[hostTNode.index] = componentView;
|
|
@@ -10840,8 +11010,11 @@ function tickRootContext(rootContext) {
|
|
|
10840
11010
|
for (let i = 0; i < rootContext.components.length; i++) {
|
|
10841
11011
|
const rootComponent = rootContext.components[i];
|
|
10842
11012
|
const lView = readPatchedLView(rootComponent);
|
|
10843
|
-
|
|
10844
|
-
|
|
11013
|
+
// We might not have an `LView` if the component was destroyed.
|
|
11014
|
+
if (lView !== null) {
|
|
11015
|
+
const tView = lView[TVIEW];
|
|
11016
|
+
renderComponentOrTemplate(tView, lView, tView.template, rootComponent);
|
|
11017
|
+
}
|
|
10845
11018
|
}
|
|
10846
11019
|
}
|
|
10847
11020
|
function detectChangesInternal(tView, lView, context) {
|
|
@@ -11699,12 +11872,16 @@ Injector.__NG_ELEMENT_ID__ = -1 /* Injector */;
|
|
|
11699
11872
|
* @globalApi ng
|
|
11700
11873
|
*/
|
|
11701
11874
|
function getComponent$1(element) {
|
|
11702
|
-
assertDomElement(element);
|
|
11875
|
+
ngDevMode && assertDomElement(element);
|
|
11703
11876
|
const context = getLContext(element);
|
|
11704
11877
|
if (context === null)
|
|
11705
11878
|
return null;
|
|
11706
11879
|
if (context.component === undefined) {
|
|
11707
|
-
|
|
11880
|
+
const lView = context.lView;
|
|
11881
|
+
if (lView === null) {
|
|
11882
|
+
return null;
|
|
11883
|
+
}
|
|
11884
|
+
context.component = getComponentAtNodeIndex(context.nodeIndex, lView);
|
|
11708
11885
|
}
|
|
11709
11886
|
return context.component;
|
|
11710
11887
|
}
|
|
@@ -11723,7 +11900,8 @@ function getComponent$1(element) {
|
|
|
11723
11900
|
function getContext(element) {
|
|
11724
11901
|
assertDomElement(element);
|
|
11725
11902
|
const context = getLContext(element);
|
|
11726
|
-
|
|
11903
|
+
const lView = context ? context.lView : null;
|
|
11904
|
+
return lView === null ? null : lView[CONTEXT];
|
|
11727
11905
|
}
|
|
11728
11906
|
/**
|
|
11729
11907
|
* Retrieves the component instance whose view contains the DOM element.
|
|
@@ -11742,11 +11920,10 @@ function getContext(element) {
|
|
|
11742
11920
|
*/
|
|
11743
11921
|
function getOwningComponent(elementOrDir) {
|
|
11744
11922
|
const context = getLContext(elementOrDir);
|
|
11745
|
-
|
|
11923
|
+
let lView = context ? context.lView : null;
|
|
11924
|
+
if (lView === null)
|
|
11746
11925
|
return null;
|
|
11747
|
-
let lView = context.lView;
|
|
11748
11926
|
let parent;
|
|
11749
|
-
ngDevMode && assertLView(lView);
|
|
11750
11927
|
while (lView[TVIEW].type === 2 /* Embedded */ && (parent = getLViewParent(lView))) {
|
|
11751
11928
|
lView = parent;
|
|
11752
11929
|
}
|
|
@@ -11764,7 +11941,8 @@ function getOwningComponent(elementOrDir) {
|
|
|
11764
11941
|
* @globalApi ng
|
|
11765
11942
|
*/
|
|
11766
11943
|
function getRootComponents(elementOrDir) {
|
|
11767
|
-
|
|
11944
|
+
const lView = readPatchedLView(elementOrDir);
|
|
11945
|
+
return lView !== null ? [...getRootContext(lView).components] : [];
|
|
11768
11946
|
}
|
|
11769
11947
|
/**
|
|
11770
11948
|
* Retrieves an `Injector` associated with an element, component or directive instance.
|
|
@@ -11778,10 +11956,11 @@ function getRootComponents(elementOrDir) {
|
|
|
11778
11956
|
*/
|
|
11779
11957
|
function getInjector(elementOrDir) {
|
|
11780
11958
|
const context = getLContext(elementOrDir);
|
|
11781
|
-
|
|
11959
|
+
const lView = context ? context.lView : null;
|
|
11960
|
+
if (lView === null)
|
|
11782
11961
|
return Injector.NULL;
|
|
11783
|
-
const tNode =
|
|
11784
|
-
return new NodeInjector(tNode,
|
|
11962
|
+
const tNode = lView[TVIEW].data[context.nodeIndex];
|
|
11963
|
+
return new NodeInjector(tNode, lView);
|
|
11785
11964
|
}
|
|
11786
11965
|
/**
|
|
11787
11966
|
* Retrieve a set of injection tokens at a given DOM node.
|
|
@@ -11790,9 +11969,9 @@ function getInjector(elementOrDir) {
|
|
|
11790
11969
|
*/
|
|
11791
11970
|
function getInjectionTokens(element) {
|
|
11792
11971
|
const context = getLContext(element);
|
|
11793
|
-
|
|
11972
|
+
const lView = context ? context.lView : null;
|
|
11973
|
+
if (lView === null)
|
|
11794
11974
|
return [];
|
|
11795
|
-
const lView = context.lView;
|
|
11796
11975
|
const tView = lView[TVIEW];
|
|
11797
11976
|
const tNode = tView.data[context.nodeIndex];
|
|
11798
11977
|
const providerTokens = [];
|
|
@@ -11842,10 +12021,10 @@ function getDirectives(node) {
|
|
|
11842
12021
|
return [];
|
|
11843
12022
|
}
|
|
11844
12023
|
const context = getLContext(node);
|
|
11845
|
-
|
|
12024
|
+
const lView = context ? context.lView : null;
|
|
12025
|
+
if (lView === null) {
|
|
11846
12026
|
return [];
|
|
11847
12027
|
}
|
|
11848
|
-
const lView = context.lView;
|
|
11849
12028
|
const tView = lView[TVIEW];
|
|
11850
12029
|
const nodeIndex = context.nodeIndex;
|
|
11851
12030
|
if (!tView?.data[nodeIndex]) {
|
|
@@ -11905,7 +12084,11 @@ function getLocalRefs(target) {
|
|
|
11905
12084
|
if (context === null)
|
|
11906
12085
|
return {};
|
|
11907
12086
|
if (context.localRefs === undefined) {
|
|
11908
|
-
|
|
12087
|
+
const lView = context.lView;
|
|
12088
|
+
if (lView === null) {
|
|
12089
|
+
return {};
|
|
12090
|
+
}
|
|
12091
|
+
context.localRefs = discoverLocalRefs(lView, context.nodeIndex);
|
|
11909
12092
|
}
|
|
11910
12093
|
return context.localRefs || {};
|
|
11911
12094
|
}
|
|
@@ -11969,11 +12152,11 @@ function getRenderedText(component) {
|
|
|
11969
12152
|
* @globalApi ng
|
|
11970
12153
|
*/
|
|
11971
12154
|
function getListeners(element) {
|
|
11972
|
-
assertDomElement(element);
|
|
12155
|
+
ngDevMode && assertDomElement(element);
|
|
11973
12156
|
const lContext = getLContext(element);
|
|
11974
|
-
|
|
12157
|
+
const lView = lContext === null ? null : lContext.lView;
|
|
12158
|
+
if (lView === null)
|
|
11975
12159
|
return [];
|
|
11976
|
-
const lView = lContext.lView;
|
|
11977
12160
|
const tView = lView[TVIEW];
|
|
11978
12161
|
const lCleanup = lView[CLEANUP];
|
|
11979
12162
|
const tCleanup = tView.cleanup;
|
|
@@ -12024,10 +12207,10 @@ function getDebugNode$1(element) {
|
|
|
12024
12207
|
throw new Error('Expecting instance of DOM Element');
|
|
12025
12208
|
}
|
|
12026
12209
|
const lContext = getLContext(element);
|
|
12027
|
-
|
|
12210
|
+
const lView = lContext ? lContext.lView : null;
|
|
12211
|
+
if (lView === null) {
|
|
12028
12212
|
return null;
|
|
12029
12213
|
}
|
|
12030
|
-
const lView = lContext.lView;
|
|
12031
12214
|
const nodeIndex = lContext.nodeIndex;
|
|
12032
12215
|
if (nodeIndex !== -1) {
|
|
12033
12216
|
const valueInLView = lView[nodeIndex];
|
|
@@ -12052,6 +12235,7 @@ function getComponentLView(target) {
|
|
|
12052
12235
|
const lContext = getLContext(target);
|
|
12053
12236
|
const nodeIndx = lContext.nodeIndex;
|
|
12054
12237
|
const lView = lContext.lView;
|
|
12238
|
+
ngDevMode && assertLView(lView);
|
|
12055
12239
|
const componentLView = lView[nodeIndx];
|
|
12056
12240
|
ngDevMode && assertLView(componentLView);
|
|
12057
12241
|
return componentLView;
|
|
@@ -12199,7 +12383,7 @@ function renderComponent(componentType /* Type as workaround for: Microsoft/Type
|
|
|
12199
12383
|
const rootContext = createRootContext(opts.scheduler, opts.playerHandler);
|
|
12200
12384
|
const renderer = rendererFactory.createRenderer(hostRNode, componentDef);
|
|
12201
12385
|
const rootTView = createTView(0 /* Root */, null, null, 1, 0, null, null, null, null, null);
|
|
12202
|
-
const rootView = createLView(null, rootTView, rootContext, rootFlags, null, null, rendererFactory, renderer, null, opts.injector || null);
|
|
12386
|
+
const rootView = createLView(null, rootTView, rootContext, rootFlags, null, null, rendererFactory, renderer, null, opts.injector || null, null);
|
|
12203
12387
|
enterView(rootView);
|
|
12204
12388
|
let component;
|
|
12205
12389
|
try {
|
|
@@ -12254,7 +12438,7 @@ function createRootComponentView(rNode, def, rootView, rendererFactory, hostRend
|
|
|
12254
12438
|
}
|
|
12255
12439
|
}
|
|
12256
12440
|
const viewRenderer = rendererFactory.createRenderer(rNode, def);
|
|
12257
|
-
const componentView = createLView(rootView, getOrCreateTComponentView(def), null, def.onPush ? 64 /* Dirty */ : 16 /* CheckAlways */, rootView[index], tNode, rendererFactory, viewRenderer, sanitizer || null, null);
|
|
12441
|
+
const componentView = createLView(rootView, getOrCreateTComponentView(def), null, def.onPush ? 64 /* Dirty */ : 16 /* CheckAlways */, rootView[index], tNode, rendererFactory, viewRenderer, sanitizer || null, null, null);
|
|
12258
12442
|
if (tView.firstCreatePass) {
|
|
12259
12443
|
diPublicInInjector(getOrCreateNodeInjectorForNode(tNode, rootView), tView, def.type);
|
|
12260
12444
|
markAsComponentHost(tView, tNode);
|
|
@@ -21102,7 +21286,7 @@ class Version {
|
|
|
21102
21286
|
/**
|
|
21103
21287
|
* @publicApi
|
|
21104
21288
|
*/
|
|
21105
|
-
const VERSION = new Version('14.0.0-next.
|
|
21289
|
+
const VERSION = new Version('14.0.0-next.6');
|
|
21106
21290
|
|
|
21107
21291
|
/**
|
|
21108
21292
|
* @license
|
|
@@ -21508,29 +21692,27 @@ function getNamespace(elementName) {
|
|
|
21508
21692
|
return name === 'svg' ? SVG_NAMESPACE : (name === 'math' ? MATH_ML_NAMESPACE : null);
|
|
21509
21693
|
}
|
|
21510
21694
|
/**
|
|
21511
|
-
*
|
|
21512
|
-
*
|
|
21695
|
+
* Injector that looks up a value using a specific injector, before falling back to the module
|
|
21696
|
+
* injector. Used primarily when creating components or embedded views dynamically.
|
|
21513
21697
|
*/
|
|
21514
|
-
|
|
21515
|
-
|
|
21516
|
-
|
|
21517
|
-
|
|
21518
|
-
|
|
21519
|
-
|
|
21520
|
-
get
|
|
21521
|
-
|
|
21522
|
-
|
|
21523
|
-
|
|
21524
|
-
|
|
21525
|
-
|
|
21526
|
-
|
|
21527
|
-
|
|
21528
|
-
|
|
21529
|
-
return value;
|
|
21530
|
-
}
|
|
21531
|
-
return moduleInjector.get(token, notFoundValue, flags);
|
|
21698
|
+
class ChainedInjector {
|
|
21699
|
+
constructor(injector, parentInjector) {
|
|
21700
|
+
this.injector = injector;
|
|
21701
|
+
this.parentInjector = parentInjector;
|
|
21702
|
+
}
|
|
21703
|
+
get(token, notFoundValue, flags) {
|
|
21704
|
+
const value = this.injector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, flags);
|
|
21705
|
+
if (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR ||
|
|
21706
|
+
notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) {
|
|
21707
|
+
// Return the value from the root element injector when
|
|
21708
|
+
// - it provides it
|
|
21709
|
+
// (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)
|
|
21710
|
+
// - the module injector should not be checked
|
|
21711
|
+
// (notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)
|
|
21712
|
+
return value;
|
|
21532
21713
|
}
|
|
21533
|
-
|
|
21714
|
+
return this.parentInjector.get(token, notFoundValue, flags);
|
|
21715
|
+
}
|
|
21534
21716
|
}
|
|
21535
21717
|
/**
|
|
21536
21718
|
* Render3 implementation of {@link viewEngine_ComponentFactory}.
|
|
@@ -21558,7 +21740,7 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
21558
21740
|
}
|
|
21559
21741
|
create(injector, projectableNodes, rootSelectorOrNode, ngModule) {
|
|
21560
21742
|
ngModule = ngModule || this.ngModule;
|
|
21561
|
-
const rootViewInjector = ngModule ?
|
|
21743
|
+
const rootViewInjector = ngModule ? new ChainedInjector(injector, ngModule.injector) : injector;
|
|
21562
21744
|
const rendererFactory = rootViewInjector.get(RendererFactory2, domRendererFactory3);
|
|
21563
21745
|
const sanitizer = rootViewInjector.get(Sanitizer, null);
|
|
21564
21746
|
const hostRenderer = rendererFactory.createRenderer(null, this.componentDef);
|
|
@@ -21573,7 +21755,7 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
21573
21755
|
const rootContext = createRootContext();
|
|
21574
21756
|
// Create the root view. Uses empty TView and ContentTemplate.
|
|
21575
21757
|
const rootTView = createTView(0 /* Root */, null, null, 1, 0, null, null, null, null, null);
|
|
21576
|
-
const rootLView = createLView(null, rootTView, rootContext, rootFlags, null, null, rendererFactory, hostRenderer, sanitizer, rootViewInjector);
|
|
21758
|
+
const rootLView = createLView(null, rootTView, rootContext, rootFlags, null, null, rendererFactory, hostRenderer, sanitizer, rootViewInjector, null);
|
|
21577
21759
|
// rootView is the parent when bootstrapping
|
|
21578
21760
|
// TODO(misko): it looks like we are entering view here but we don't really need to as
|
|
21579
21761
|
// `renderView` does that. However as the code is written it is needed because
|
|
@@ -22693,9 +22875,9 @@ const R3TemplateRef = class TemplateRef extends ViewEngineTemplateRef {
|
|
|
22693
22875
|
this._declarationTContainer = _declarationTContainer;
|
|
22694
22876
|
this.elementRef = elementRef;
|
|
22695
22877
|
}
|
|
22696
|
-
createEmbeddedView(context) {
|
|
22878
|
+
createEmbeddedView(context, injector) {
|
|
22697
22879
|
const embeddedTView = this._declarationTContainer.tViews;
|
|
22698
|
-
const embeddedLView = createLView(this._declarationLView, embeddedTView, context, 16 /* CheckAlways */, null, embeddedTView.declTNode, null, null, null, null);
|
|
22880
|
+
const embeddedLView = createLView(this._declarationLView, embeddedTView, context, 16 /* CheckAlways */, null, embeddedTView.declTNode, null, null, null, null, injector || null);
|
|
22699
22881
|
const declarationLContainer = this._declarationLView[this._declarationTContainer.index];
|
|
22700
22882
|
ngDevMode && assertLContainer(declarationLContainer);
|
|
22701
22883
|
embeddedLView[DECLARATION_LCONTAINER] = declarationLContainer;
|
|
@@ -22811,8 +22993,17 @@ const R3ViewContainerRef = class ViewContainerRef extends VE_ViewContainerRef {
|
|
|
22811
22993
|
get length() {
|
|
22812
22994
|
return this._lContainer.length - CONTAINER_HEADER_OFFSET;
|
|
22813
22995
|
}
|
|
22814
|
-
createEmbeddedView(templateRef, context,
|
|
22815
|
-
|
|
22996
|
+
createEmbeddedView(templateRef, context, indexOrOptions) {
|
|
22997
|
+
let index;
|
|
22998
|
+
let injector;
|
|
22999
|
+
if (typeof indexOrOptions === 'number') {
|
|
23000
|
+
index = indexOrOptions;
|
|
23001
|
+
}
|
|
23002
|
+
else if (indexOrOptions != null) {
|
|
23003
|
+
index = indexOrOptions.index;
|
|
23004
|
+
injector = indexOrOptions.injector;
|
|
23005
|
+
}
|
|
23006
|
+
const viewRef = templateRef.createEmbeddedView(context || {}, injector);
|
|
22816
23007
|
this.insert(viewRef, index);
|
|
22817
23008
|
return viewRef;
|
|
22818
23009
|
}
|
|
@@ -24844,9 +25035,10 @@ class ApplicationInitStatus {
|
|
|
24844
25035
|
}
|
|
24845
25036
|
}
|
|
24846
25037
|
ApplicationInitStatus.ɵfac = function ApplicationInitStatus_Factory(t) { return new (t || ApplicationInitStatus)(ɵɵinject(APP_INITIALIZER, 8)); };
|
|
24847
|
-
ApplicationInitStatus.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ApplicationInitStatus, factory: ApplicationInitStatus.ɵfac });
|
|
25038
|
+
ApplicationInitStatus.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ApplicationInitStatus, factory: ApplicationInitStatus.ɵfac, providedIn: 'root' });
|
|
24848
25039
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ApplicationInitStatus, [{
|
|
24849
|
-
type: Injectable
|
|
25040
|
+
type: Injectable,
|
|
25041
|
+
args: [{ providedIn: 'root' }]
|
|
24850
25042
|
}], function () { return [{ type: undefined, decorators: [{
|
|
24851
25043
|
type: Inject,
|
|
24852
25044
|
args: [APP_INITIALIZER]
|
|
@@ -24872,7 +25064,10 @@ ApplicationInitStatus.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Appli
|
|
|
24872
25064
|
*
|
|
24873
25065
|
* @publicApi
|
|
24874
25066
|
*/
|
|
24875
|
-
const APP_ID = new InjectionToken('AppId'
|
|
25067
|
+
const APP_ID = new InjectionToken('AppId', {
|
|
25068
|
+
providedIn: 'root',
|
|
25069
|
+
factory: _appIdRandomProviderFactory,
|
|
25070
|
+
});
|
|
24876
25071
|
function _appIdRandomProviderFactory() {
|
|
24877
25072
|
return `${_randomChar()}${_randomChar()}${_randomChar()}`;
|
|
24878
25073
|
}
|
|
@@ -24956,6 +25151,33 @@ Console.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Console, factory: C
|
|
|
24956
25151
|
* Use of this source code is governed by an MIT-style license that can be
|
|
24957
25152
|
* found in the LICENSE file at https://angular.io/license
|
|
24958
25153
|
*/
|
|
25154
|
+
/**
|
|
25155
|
+
* Work out the locale from the potential global properties.
|
|
25156
|
+
*
|
|
25157
|
+
* * Closure Compiler: use `goog.getLocale()`.
|
|
25158
|
+
* * Ivy enabled: use `$localize.locale`
|
|
25159
|
+
*/
|
|
25160
|
+
function getGlobalLocale() {
|
|
25161
|
+
if (typeof ngI18nClosureMode !== 'undefined' && ngI18nClosureMode &&
|
|
25162
|
+
typeof goog !== 'undefined' && goog.getLocale() !== 'en') {
|
|
25163
|
+
// * The default `goog.getLocale()` value is `en`, while Angular used `en-US`.
|
|
25164
|
+
// * In order to preserve backwards compatibility, we use Angular default value over
|
|
25165
|
+
// Closure Compiler's one.
|
|
25166
|
+
return goog.getLocale();
|
|
25167
|
+
}
|
|
25168
|
+
else {
|
|
25169
|
+
// KEEP `typeof $localize !== 'undefined' && $localize.locale` IN SYNC WITH THE LOCALIZE
|
|
25170
|
+
// COMPILE-TIME INLINER.
|
|
25171
|
+
//
|
|
25172
|
+
// * During compile time inlining of translations the expression will be replaced
|
|
25173
|
+
// with a string literal that is the current locale. Other forms of this expression are not
|
|
25174
|
+
// guaranteed to be replaced.
|
|
25175
|
+
//
|
|
25176
|
+
// * During runtime translation evaluation, the developer is required to set `$localize.locale`
|
|
25177
|
+
// if required, or just to provide their own `LOCALE_ID` provider.
|
|
25178
|
+
return (typeof $localize !== 'undefined' && $localize.locale) || DEFAULT_LOCALE_ID;
|
|
25179
|
+
}
|
|
25180
|
+
}
|
|
24959
25181
|
/**
|
|
24960
25182
|
* Provide this token to set the locale of your application.
|
|
24961
25183
|
* It is used for i18n extraction, by i18n pipes (DatePipe, I18nPluralPipe, CurrencyPipe,
|
|
@@ -24978,7 +25200,10 @@ Console.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Console, factory: C
|
|
|
24978
25200
|
*
|
|
24979
25201
|
* @publicApi
|
|
24980
25202
|
*/
|
|
24981
|
-
const LOCALE_ID = new InjectionToken('LocaleId'
|
|
25203
|
+
const LOCALE_ID = new InjectionToken('LocaleId', {
|
|
25204
|
+
providedIn: 'root',
|
|
25205
|
+
factory: () => inject(LOCALE_ID, InjectFlags.Optional | InjectFlags.SkipSelf) || getGlobalLocale(),
|
|
25206
|
+
});
|
|
24982
25207
|
/**
|
|
24983
25208
|
* Provide this token to set the default currency code your application uses for
|
|
24984
25209
|
* CurrencyPipe when there is no currency code passed into it. This is only used by
|
|
@@ -25017,7 +25242,10 @@ const LOCALE_ID = new InjectionToken('LocaleId');
|
|
|
25017
25242
|
*
|
|
25018
25243
|
* @publicApi
|
|
25019
25244
|
*/
|
|
25020
|
-
const DEFAULT_CURRENCY_CODE = new InjectionToken('DefaultCurrencyCode'
|
|
25245
|
+
const DEFAULT_CURRENCY_CODE = new InjectionToken('DefaultCurrencyCode', {
|
|
25246
|
+
providedIn: 'root',
|
|
25247
|
+
factory: () => USD_CURRENCY_CODE,
|
|
25248
|
+
});
|
|
25021
25249
|
/**
|
|
25022
25250
|
* Use this token at bootstrap to provide the content of your translation file (`xtb`,
|
|
25023
25251
|
* `xlf` or `xlf2`) when you want to translate your application in another language.
|
|
@@ -25184,9 +25412,10 @@ class Compiler {
|
|
|
25184
25412
|
}
|
|
25185
25413
|
}
|
|
25186
25414
|
Compiler.ɵfac = function Compiler_Factory(t) { return new (t || Compiler)(); };
|
|
25187
|
-
Compiler.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Compiler, factory: Compiler.ɵfac });
|
|
25415
|
+
Compiler.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: Compiler, factory: Compiler.ɵfac, providedIn: 'root' });
|
|
25188
25416
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Compiler, [{
|
|
25189
|
-
type: Injectable
|
|
25417
|
+
type: Injectable,
|
|
25418
|
+
args: [{ providedIn: 'root' }]
|
|
25190
25419
|
}], null, null); })();
|
|
25191
25420
|
/**
|
|
25192
25421
|
* Token to provide CompilerOptions in the platform injector.
|
|
@@ -26547,9 +26776,10 @@ class ApplicationRef {
|
|
|
26547
26776
|
}
|
|
26548
26777
|
}
|
|
26549
26778
|
ApplicationRef.ɵfac = function ApplicationRef_Factory(t) { return new (t || ApplicationRef)(ɵɵinject(NgZone), ɵɵinject(Injector), ɵɵinject(ErrorHandler), ɵɵinject(ComponentFactoryResolver$1), ɵɵinject(ApplicationInitStatus)); };
|
|
26550
|
-
ApplicationRef.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ApplicationRef, factory: ApplicationRef.ɵfac });
|
|
26779
|
+
ApplicationRef.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ApplicationRef, factory: ApplicationRef.ɵfac, providedIn: 'root' });
|
|
26551
26780
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ApplicationRef, [{
|
|
26552
|
-
type: Injectable
|
|
26781
|
+
type: Injectable,
|
|
26782
|
+
args: [{ providedIn: 'root' }]
|
|
26553
26783
|
}], function () { return [{ type: NgZone }, { type: Injector }, { type: ErrorHandler }, { type: ComponentFactoryResolver$1 }, { type: ApplicationInitStatus }]; }, null); })();
|
|
26554
26784
|
function remove(list, el) {
|
|
26555
26785
|
const index = list.indexOf(el);
|
|
@@ -26955,8 +27185,8 @@ class DebugElement extends DebugNode {
|
|
|
26955
27185
|
*/
|
|
26956
27186
|
get name() {
|
|
26957
27187
|
const context = getLContext(this.nativeNode);
|
|
26958
|
-
|
|
26959
|
-
|
|
27188
|
+
const lView = context ? context.lView : null;
|
|
27189
|
+
if (lView !== null) {
|
|
26960
27190
|
const tData = lView[TVIEW].data;
|
|
26961
27191
|
const tNode = tData[context.nodeIndex];
|
|
26962
27192
|
return tNode.value;
|
|
@@ -26979,10 +27209,10 @@ class DebugElement extends DebugNode {
|
|
|
26979
27209
|
*/
|
|
26980
27210
|
get properties() {
|
|
26981
27211
|
const context = getLContext(this.nativeNode);
|
|
26982
|
-
|
|
27212
|
+
const lView = context ? context.lView : null;
|
|
27213
|
+
if (lView === null) {
|
|
26983
27214
|
return {};
|
|
26984
27215
|
}
|
|
26985
|
-
const lView = context.lView;
|
|
26986
27216
|
const tData = lView[TVIEW].data;
|
|
26987
27217
|
const tNode = tData[context.nodeIndex];
|
|
26988
27218
|
const properties = {};
|
|
@@ -27003,10 +27233,10 @@ class DebugElement extends DebugNode {
|
|
|
27003
27233
|
return attributes;
|
|
27004
27234
|
}
|
|
27005
27235
|
const context = getLContext(element);
|
|
27006
|
-
|
|
27236
|
+
const lView = context ? context.lView : null;
|
|
27237
|
+
if (lView === null) {
|
|
27007
27238
|
return {};
|
|
27008
27239
|
}
|
|
27009
|
-
const lView = context.lView;
|
|
27010
27240
|
const tNodeAttrs = lView[TVIEW].data[context.nodeIndex].attrs;
|
|
27011
27241
|
const lowercaseTNodeAttrs = [];
|
|
27012
27242
|
// For debug nodes we take the element's attribute directly from the DOM since it allows us
|
|
@@ -27200,9 +27430,10 @@ function isPrimitiveValue(value) {
|
|
|
27200
27430
|
}
|
|
27201
27431
|
function _queryAll(parentElement, predicate, matches, elementsOnly) {
|
|
27202
27432
|
const context = getLContext(parentElement.nativeNode);
|
|
27203
|
-
|
|
27204
|
-
|
|
27205
|
-
|
|
27433
|
+
const lView = context ? context.lView : null;
|
|
27434
|
+
if (lView !== null) {
|
|
27435
|
+
const parentTNode = lView[TVIEW].data[context.nodeIndex];
|
|
27436
|
+
_queryNodeChildren(parentTNode, lView, predicate, matches, elementsOnly, parentElement.nativeNode);
|
|
27206
27437
|
}
|
|
27207
27438
|
else {
|
|
27208
27439
|
// If the context is null, then `parentElement` was either created with Renderer2 or native DOM
|
|
@@ -28553,88 +28784,10 @@ const platformCore = createPlatformFactory(null, 'core', _CORE_PLATFORM_PROVIDER
|
|
|
28553
28784
|
* Use of this source code is governed by an MIT-style license that can be
|
|
28554
28785
|
* found in the LICENSE file at https://angular.io/license
|
|
28555
28786
|
*/
|
|
28556
|
-
function _localeFactory(locale) {
|
|
28557
|
-
return locale || getGlobalLocale();
|
|
28558
|
-
}
|
|
28559
|
-
/**
|
|
28560
|
-
* Work out the locale from the potential global properties.
|
|
28561
|
-
*
|
|
28562
|
-
* * Closure Compiler: use `goog.getLocale()`.
|
|
28563
|
-
* * Ivy enabled: use `$localize.locale`
|
|
28564
|
-
*/
|
|
28565
|
-
function getGlobalLocale() {
|
|
28566
|
-
if (typeof ngI18nClosureMode !== 'undefined' && ngI18nClosureMode &&
|
|
28567
|
-
typeof goog !== 'undefined' && goog.getLocale() !== 'en') {
|
|
28568
|
-
// * The default `goog.getLocale()` value is `en`, while Angular used `en-US`.
|
|
28569
|
-
// * In order to preserve backwards compatibility, we use Angular default value over
|
|
28570
|
-
// Closure Compiler's one.
|
|
28571
|
-
return goog.getLocale();
|
|
28572
|
-
}
|
|
28573
|
-
else {
|
|
28574
|
-
// KEEP `typeof $localize !== 'undefined' && $localize.locale` IN SYNC WITH THE LOCALIZE
|
|
28575
|
-
// COMPILE-TIME INLINER.
|
|
28576
|
-
//
|
|
28577
|
-
// * During compile time inlining of translations the expression will be replaced
|
|
28578
|
-
// with a string literal that is the current locale. Other forms of this expression are not
|
|
28579
|
-
// guaranteed to be replaced.
|
|
28580
|
-
//
|
|
28581
|
-
// * During runtime translation evaluation, the developer is required to set `$localize.locale`
|
|
28582
|
-
// if required, or just to provide their own `LOCALE_ID` provider.
|
|
28583
|
-
return (typeof $localize !== 'undefined' && $localize.locale) || DEFAULT_LOCALE_ID;
|
|
28584
|
-
}
|
|
28585
|
-
}
|
|
28586
|
-
/**
|
|
28587
|
-
* A built-in [dependency injection token](guide/glossary#di-token)
|
|
28588
|
-
* that is used to configure the root injector for bootstrapping.
|
|
28589
|
-
*/
|
|
28590
|
-
const APPLICATION_MODULE_PROVIDERS = [
|
|
28591
|
-
{
|
|
28592
|
-
provide: ApplicationRef,
|
|
28593
|
-
useClass: ApplicationRef,
|
|
28594
|
-
deps: [NgZone, Injector, ErrorHandler, ComponentFactoryResolver$1, ApplicationInitStatus]
|
|
28595
|
-
},
|
|
28596
|
-
{ provide: SCHEDULER, deps: [NgZone], useFactory: zoneSchedulerFactory },
|
|
28597
|
-
{
|
|
28598
|
-
provide: ApplicationInitStatus,
|
|
28599
|
-
useClass: ApplicationInitStatus,
|
|
28600
|
-
deps: [[new Optional(), APP_INITIALIZER]]
|
|
28601
|
-
},
|
|
28602
|
-
{ provide: Compiler, useClass: Compiler, deps: [] },
|
|
28603
|
-
APP_ID_RANDOM_PROVIDER,
|
|
28604
|
-
{
|
|
28605
|
-
provide: LOCALE_ID,
|
|
28606
|
-
useFactory: _localeFactory,
|
|
28607
|
-
deps: [[new Inject(LOCALE_ID), new Optional(), new SkipSelf()]]
|
|
28608
|
-
},
|
|
28609
|
-
{ provide: DEFAULT_CURRENCY_CODE, useValue: USD_CURRENCY_CODE },
|
|
28610
|
-
];
|
|
28611
|
-
/**
|
|
28612
|
-
* Schedule work at next available slot.
|
|
28613
|
-
*
|
|
28614
|
-
* In Ivy this is just `requestAnimationFrame`. For compatibility reasons when bootstrapped
|
|
28615
|
-
* using `platformRef.bootstrap` we need to use `NgZone.onStable` as the scheduling mechanism.
|
|
28616
|
-
* This overrides the scheduling mechanism in Ivy to `NgZone.onStable`.
|
|
28617
|
-
*
|
|
28618
|
-
* @param ngZone NgZone to use for scheduling.
|
|
28619
|
-
*/
|
|
28620
|
-
function zoneSchedulerFactory(ngZone) {
|
|
28621
|
-
let queue = [];
|
|
28622
|
-
ngZone.onStable.subscribe(() => {
|
|
28623
|
-
while (queue.length) {
|
|
28624
|
-
queue.pop()();
|
|
28625
|
-
}
|
|
28626
|
-
});
|
|
28627
|
-
return function (fn) {
|
|
28628
|
-
queue.push(fn);
|
|
28629
|
-
};
|
|
28630
|
-
}
|
|
28631
28787
|
/**
|
|
28632
|
-
* Configures the root injector for an app with
|
|
28633
|
-
* providers of `@angular/core` dependencies that `ApplicationRef` needs
|
|
28634
|
-
* to bootstrap components.
|
|
28635
|
-
*
|
|
28636
28788
|
* Re-exported by `BrowserModule`, which is included automatically in the root
|
|
28637
|
-
* `AppModule` when you create a new app with the CLI `new` command.
|
|
28789
|
+
* `AppModule` when you create a new app with the CLI `new` command. Eagerly injects
|
|
28790
|
+
* `ApplicationRef` to instantiate it.
|
|
28638
28791
|
*
|
|
28639
28792
|
* @publicApi
|
|
28640
28793
|
*/
|
|
@@ -28644,10 +28797,9 @@ class ApplicationModule {
|
|
|
28644
28797
|
}
|
|
28645
28798
|
ApplicationModule.ɵfac = function ApplicationModule_Factory(t) { return new (t || ApplicationModule)(ɵɵinject(ApplicationRef)); };
|
|
28646
28799
|
ApplicationModule.ɵmod = /*@__PURE__*/ ɵɵdefineNgModule({ type: ApplicationModule });
|
|
28647
|
-
ApplicationModule.ɵinj = /*@__PURE__*/ ɵɵdefineInjector({
|
|
28800
|
+
ApplicationModule.ɵinj = /*@__PURE__*/ ɵɵdefineInjector({});
|
|
28648
28801
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ApplicationModule, [{
|
|
28649
|
-
type: NgModule
|
|
28650
|
-
args: [{ providers: APPLICATION_MODULE_PROVIDERS }]
|
|
28802
|
+
type: NgModule
|
|
28651
28803
|
}], function () { return [{ type: ApplicationRef }]; }, null); })();
|
|
28652
28804
|
|
|
28653
28805
|
/**
|
|
@@ -28819,5 +28971,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
28819
28971
|
* Generated bundle index. Do not edit.
|
|
28820
28972
|
*/
|
|
28821
28973
|
|
|
28822
|
-
export { ANALYZE_FOR_ENTRY_COMPONENTS, ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, Directive, ElementRef, EmbeddedViewRef, ErrorHandler, EventEmitter, Host, HostBinding, HostListener, INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, ReflectiveInjector, ReflectiveKey, Renderer2, RendererFactory2, RendererStyleFlags2, ResolvedReflectiveFactory, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, asNativeElements, assertPlatform, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, inject, isDevMode, platformCore, resolveForwardRef, setTestabilityGetter, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, APP_ID_RANDOM_PROVIDER as ɵAPP_ID_RANDOM_PROVIDER, ChangeDetectorStatus as ɵChangeDetectorStatus, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, ViewRef$1 as ɵViewRef, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, coerceToBoolean as ɵcoerceToBoolean, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, detectChanges as ɵdetectChanges, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, getDebugNode as ɵgetDebugNode, getDebugNodeR2 as ɵgetDebugNodeR2, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getSanitizationBypassType as ɵgetSanitizationBypassType, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, isBoundToModule as ɵisBoundToModule, isDefaultChangeDetectionStrategy as ɵisDefaultChangeDetectionStrategy, isListLikeIterable as ɵisListLikeIterable, isObservable as ɵisObservable, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, ɵivyEnabled, makeDecorator as ɵmakeDecorator, markDirty as ɵmarkDirty, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, publishDefaultGlobalUtils$1 as ɵpublishDefaultGlobalUtils, publishGlobalUtil as ɵpublishGlobalUtil, registerLocaleData as ɵregisterLocaleData, registerNgModuleType as ɵregisterNgModuleType, renderComponent as ɵrenderComponent, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, setClassMetadata as ɵsetClassMetadata, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setLocaleId as ɵsetLocaleId, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, whenRendered as ɵwhenRendered, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcontentQuery, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryRefresh, ɵɵreference, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵviewQuery };
|
|
28974
|
+
export { ANALYZE_FOR_ENTRY_COMPONENTS, ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, ChangeDetectorRef, Compiler, CompilerFactory, Component, ComponentFactory$1 as ComponentFactory, ComponentFactoryResolver$1 as ComponentFactoryResolver, ComponentRef$1 as ComponentRef, ContentChild, ContentChildren, DEFAULT_CURRENCY_CODE, DebugElement, DebugEventListener, DebugNode, DefaultIterableDiffer, Directive, ElementRef, EmbeddedViewRef, ErrorHandler, EventEmitter, Host, HostBinding, HostListener, INJECTOR, Inject, InjectFlags, Injectable, InjectionToken, Injector, Input, IterableDiffers, KeyValueDiffers, LOCALE_ID, MissingTranslationStrategy, ModuleWithComponentFactories, NO_ERRORS_SCHEMA, NgModule, NgModuleFactory$1 as NgModuleFactory, NgModuleRef$1 as NgModuleRef, NgProbeToken, NgZone, Optional, Output, PACKAGE_ROOT_URL, PLATFORM_ID, PLATFORM_INITIALIZER, Pipe, PlatformRef, Query, QueryList, ReflectiveInjector, ReflectiveKey, Renderer2, RendererFactory2, RendererStyleFlags2, ResolvedReflectiveFactory, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, asNativeElements, assertPlatform, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, inject, isDevMode, platformCore, resolveForwardRef, setTestabilityGetter, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, APP_ID_RANDOM_PROVIDER as ɵAPP_ID_RANDOM_PROVIDER, ChangeDetectorStatus as ɵChangeDetectorStatus, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, LContext as ɵLContext, LifecycleHooksFeature as ɵLifecycleHooksFeature, LocaleDataIndex as ɵLocaleDataIndex, NG_COMP_DEF as ɵNG_COMP_DEF, NG_DIR_DEF as ɵNG_DIR_DEF, NG_ELEMENT_ID as ɵNG_ELEMENT_ID, NG_INJ_DEF as ɵNG_INJ_DEF, NG_MOD_DEF as ɵNG_MOD_DEF, NG_PIPE_DEF as ɵNG_PIPE_DEF, NG_PROV_DEF as ɵNG_PROV_DEF, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR as ɵNOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, NO_CHANGE as ɵNO_CHANGE, NgModuleFactory as ɵNgModuleFactory, NoopNgZone as ɵNoopNgZone, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, ViewRef$1 as ɵViewRef, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, coerceToBoolean as ɵcoerceToBoolean, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, detectChanges as ɵdetectChanges, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, getDebugNode as ɵgetDebugNode, getDebugNodeR2 as ɵgetDebugNodeR2, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getSanitizationBypassType as ɵgetSanitizationBypassType, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, isBoundToModule as ɵisBoundToModule, isDefaultChangeDetectionStrategy as ɵisDefaultChangeDetectionStrategy, isListLikeIterable as ɵisListLikeIterable, isObservable as ɵisObservable, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, ɵivyEnabled, makeDecorator as ɵmakeDecorator, markDirty as ɵmarkDirty, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, publishDefaultGlobalUtils$1 as ɵpublishDefaultGlobalUtils, publishGlobalUtil as ɵpublishGlobalUtil, registerLocaleData as ɵregisterLocaleData, registerNgModuleType as ɵregisterNgModuleType, renderComponent as ɵrenderComponent, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, setClassMetadata as ɵsetClassMetadata, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setLocaleId as ɵsetLocaleId, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, whenRendered as ɵwhenRendered, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcontentQuery, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetCurrentView, ɵɵgetInheritedFactory, ɵɵhostProperty, ɵɵi18n, ɵɵi18nApply, ɵɵi18nAttributes, ɵɵi18nEnd, ɵɵi18nExp, ɵɵi18nPostprocess, ɵɵi18nStart, ɵɵinject, ɵɵinjectAttribute, ɵɵinvalidFactory, ɵɵinvalidFactoryDep, ɵɵlistener, ɵɵloadQuery, ɵɵnamespaceHTML, ɵɵnamespaceMathML, ɵɵnamespaceSVG, ɵɵnextContext, ɵɵngDeclareClassMetadata, ɵɵngDeclareComponent, ɵɵngDeclareDirective, ɵɵngDeclareFactory, ɵɵngDeclareInjectable, ɵɵngDeclareInjector, ɵɵngDeclareNgModule, ɵɵngDeclarePipe, ɵɵpipe, ɵɵpipeBind1, ɵɵpipeBind2, ɵɵpipeBind3, ɵɵpipeBind4, ɵɵpipeBindV, ɵɵprojection, ɵɵprojectionDef, ɵɵproperty, ɵɵpropertyInterpolate, ɵɵpropertyInterpolate1, ɵɵpropertyInterpolate2, ɵɵpropertyInterpolate3, ɵɵpropertyInterpolate4, ɵɵpropertyInterpolate5, ɵɵpropertyInterpolate6, ɵɵpropertyInterpolate7, ɵɵpropertyInterpolate8, ɵɵpropertyInterpolateV, ɵɵpureFunction0, ɵɵpureFunction1, ɵɵpureFunction2, ɵɵpureFunction3, ɵɵpureFunction4, ɵɵpureFunction5, ɵɵpureFunction6, ɵɵpureFunction7, ɵɵpureFunction8, ɵɵpureFunctionV, ɵɵqueryRefresh, ɵɵreference, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstyleMap, ɵɵstyleMapInterpolate1, ɵɵstyleMapInterpolate2, ɵɵstyleMapInterpolate3, ɵɵstyleMapInterpolate4, ɵɵstyleMapInterpolate5, ɵɵstyleMapInterpolate6, ɵɵstyleMapInterpolate7, ɵɵstyleMapInterpolate8, ɵɵstyleMapInterpolateV, ɵɵstyleProp, ɵɵstylePropInterpolate1, ɵɵstylePropInterpolate2, ɵɵstylePropInterpolate3, ɵɵstylePropInterpolate4, ɵɵstylePropInterpolate5, ɵɵstylePropInterpolate6, ɵɵstylePropInterpolate7, ɵɵstylePropInterpolate8, ɵɵstylePropInterpolateV, ɵɵsyntheticHostListener, ɵɵsyntheticHostProperty, ɵɵtemplate, ɵɵtemplateRefExtractor, ɵɵtext, ɵɵtextInterpolate, ɵɵtextInterpolate1, ɵɵtextInterpolate2, ɵɵtextInterpolate3, ɵɵtextInterpolate4, ɵɵtextInterpolate5, ɵɵtextInterpolate6, ɵɵtextInterpolate7, ɵɵtextInterpolate8, ɵɵtextInterpolateV, ɵɵtrustConstantHtml, ɵɵtrustConstantResourceUrl, ɵɵviewQuery };
|
|
28823
28975
|
//# sourceMappingURL=core.mjs.map
|