@angular/core 17.0.7 → 17.0.9
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/esm2022/src/application/application_ref.mjs +24 -12
- package/esm2022/src/application/create_application.mjs +2 -2
- package/esm2022/src/change_detection/flags.mjs +16 -0
- package/esm2022/src/change_detection/scheduling/ng_zone_scheduling.mjs +164 -0
- package/esm2022/src/change_detection/scheduling/zoneless_scheduling.mjs +13 -0
- package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +56 -0
- package/esm2022/src/core.mjs +2 -2
- package/esm2022/src/core_private_export.mjs +5 -2
- package/esm2022/src/core_render3_private_export.mjs +1 -2
- package/esm2022/src/defer/dom_triggers.mjs +1 -5
- package/esm2022/src/di/inject_switch.mjs +2 -3
- package/esm2022/src/di/r3_injector.mjs +8 -6
- package/esm2022/src/errors.mjs +1 -1
- package/esm2022/src/event_emitter.mjs +1 -2
- package/esm2022/src/hydration/utils.mjs +2 -2
- package/esm2022/src/hydration/views.mjs +2 -2
- package/esm2022/src/linker/view_container_ref.mjs +2 -2
- package/esm2022/src/pending_tasks.mjs +57 -0
- package/esm2022/src/platform/platform_ref.mjs +2 -2
- package/esm2022/src/render3/after_render_hooks.mjs +16 -34
- package/esm2022/src/render3/collect_native_nodes.mjs +2 -3
- package/esm2022/src/render3/component_ref.mjs +13 -9
- package/esm2022/src/render3/debug/injector_profiler.mjs +1 -1
- package/esm2022/src/render3/errors_di.mjs +4 -3
- package/esm2022/src/render3/instructions/advance.mjs +2 -2
- package/esm2022/src/render3/instructions/change_detection.mjs +1 -6
- package/esm2022/src/render3/instructions/mark_view_dirty.mjs +4 -3
- package/esm2022/src/render3/instructions/shared.mjs +4 -3
- package/esm2022/src/render3/interfaces/container.mjs +1 -6
- package/esm2022/src/render3/interfaces/view.mjs +1 -1
- package/esm2022/src/render3/node_manipulation.mjs +8 -8
- package/esm2022/src/render3/reactivity/effect.mjs +8 -6
- package/esm2022/src/render3/styling/style_binding_list.mjs +4 -4
- package/esm2022/src/render3/util/discovery_utils.mjs +3 -3
- package/esm2022/src/render3/util/global_utils.mjs +28 -28
- package/esm2022/src/render3/util/injector_discovery_utils.mjs +1 -1
- package/esm2022/src/render3/util/injector_utils.mjs +6 -5
- package/esm2022/src/render3/util/view_traversal_utils.mjs +3 -12
- package/esm2022/src/render3/util/view_utils.mjs +36 -19
- package/esm2022/src/render3/view_ref.mjs +2 -1
- package/esm2022/src/version.mjs +6 -5
- package/esm2022/src/zone/ng_zone.mjs +1 -61
- package/esm2022/testing/src/component_fixture.mjs +62 -58
- package/esm2022/testing/src/logger.mjs +3 -3
- package/fesm2022/core.mjs +374 -309
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/testing.mjs +62 -58
- package/fesm2022/testing.mjs.map +1 -1
- package/index.d.ts +405 -46
- package/package.json +1 -1
- package/primitives/signals/index.d.ts +1 -1
- package/rxjs-interop/index.d.ts +1 -1
- package/schematics/migrations/block-template-entities/bundle.js +332 -330
- package/schematics/migrations/block-template-entities/bundle.js.map +4 -4
- package/schematics/ng-generate/control-flow-migration/bundle.js +498 -397
- package/schematics/ng-generate/control-flow-migration/bundle.js.map +4 -4
- package/schematics/ng-generate/standalone-migration/bundle.js +349 -323
- package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
- package/testing/index.d.ts +6 -2
- package/esm2022/src/change_detection/scheduling.mjs +0 -103
- package/esm2022/src/initial_render_pending_tasks.mjs +0 -49
package/fesm2022/core.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v17.0.
|
|
2
|
+
* @license Angular v17.0.9
|
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, SIGNAL as SIGNAL$1, createComputed as createComputed$1, createSignal as createSignal$1, signalSetFn as signalSetFn$1, signalUpdateFn as signalUpdateFn$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, getActiveConsumer as getActiveConsumer$1, createWatch as createWatch$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1 } from '@angular/core/primitives/signals';
|
|
8
|
-
import { Subject, Subscription,
|
|
9
|
-
import {
|
|
8
|
+
import { Subject, Subscription, BehaviorSubject } from 'rxjs';
|
|
9
|
+
import { map, first } from 'rxjs/operators';
|
|
10
10
|
|
|
11
11
|
function getClosureSafeProperty(objWithPropertyToExtract) {
|
|
12
12
|
for (let key in objWithPropertyToExtract) {
|
|
@@ -313,8 +313,9 @@ function throwInvalidProviderError(ngModuleType, providers, provider) {
|
|
|
313
313
|
}
|
|
314
314
|
/** Throws an error when a token is not found in DI. */
|
|
315
315
|
function throwProviderNotFoundError(token, injectorName) {
|
|
316
|
-
const
|
|
317
|
-
|
|
316
|
+
const errorMessage = ngDevMode &&
|
|
317
|
+
`No provider for ${stringifyForError(token)} found${injectorName ? ` in ${injectorName}` : ''}`;
|
|
318
|
+
throw new RuntimeError(-201 /* RuntimeErrorCode.PROVIDER_NOT_FOUND */, errorMessage);
|
|
318
319
|
}
|
|
319
320
|
|
|
320
321
|
// The functions in this file verify that the assumptions we are making
|
|
@@ -585,7 +586,7 @@ function injectRootLimpMode(token, notFoundValue, flags) {
|
|
|
585
586
|
return null;
|
|
586
587
|
if (notFoundValue !== undefined)
|
|
587
588
|
return notFoundValue;
|
|
588
|
-
throwProviderNotFoundError(
|
|
589
|
+
throwProviderNotFoundError(token, 'Injector');
|
|
589
590
|
}
|
|
590
591
|
/**
|
|
591
592
|
* Assert that `_injectImplementation` is not `fn`.
|
|
@@ -2247,11 +2248,6 @@ var LContainerFlags;
|
|
|
2247
2248
|
* This flag, once set, is never unset for the `LContainer`.
|
|
2248
2249
|
*/
|
|
2249
2250
|
LContainerFlags[LContainerFlags["HasTransplantedViews"] = 2] = "HasTransplantedViews";
|
|
2250
|
-
/**
|
|
2251
|
-
* Indicates that this LContainer has a view underneath it that needs to be refreshed during
|
|
2252
|
-
* change detection.
|
|
2253
|
-
*/
|
|
2254
|
-
LContainerFlags[LContainerFlags["HasChildViewsToRefresh"] = 4] = "HasChildViewsToRefresh";
|
|
2255
2251
|
})(LContainerFlags || (LContainerFlags = {}));
|
|
2256
2252
|
|
|
2257
2253
|
/**
|
|
@@ -2565,6 +2561,15 @@ const profiler = function (event, instance, hookOrListener) {
|
|
|
2565
2561
|
const SVG_NAMESPACE = 'svg';
|
|
2566
2562
|
const MATH_ML_NAMESPACE = 'math';
|
|
2567
2563
|
|
|
2564
|
+
// TODO(atscott): flip default internally ASAP and externally for v18 (#52928)
|
|
2565
|
+
let _ensureDirtyViewsAreAlwaysReachable = false;
|
|
2566
|
+
function getEnsureDirtyViewsAreAlwaysReachable() {
|
|
2567
|
+
return _ensureDirtyViewsAreAlwaysReachable;
|
|
2568
|
+
}
|
|
2569
|
+
function setEnsureDirtyViewsAreAlwaysReachable(v) {
|
|
2570
|
+
_ensureDirtyViewsAreAlwaysReachable = v;
|
|
2571
|
+
}
|
|
2572
|
+
|
|
2568
2573
|
/**
|
|
2569
2574
|
* For efficiency reasons we often put several different data types (`RNode`, `LView`, `LContainer`)
|
|
2570
2575
|
* in same location in `LView`. This is because we don't want to pre-allocate space for it
|
|
@@ -2731,10 +2736,21 @@ function requiresRefreshOrTraversal(lView) {
|
|
|
2731
2736
|
* parents above.
|
|
2732
2737
|
*/
|
|
2733
2738
|
function updateAncestorTraversalFlagsOnAttach(lView) {
|
|
2734
|
-
|
|
2735
|
-
|
|
2739
|
+
// TODO(atscott): Simplify if...else cases once getEnsureDirtyViewsAreAlwaysReachable is always
|
|
2740
|
+
// `true`. When we attach a view that's marked `Dirty`, we should ensure that it is reached during
|
|
2741
|
+
// the next CD traversal so we add the `RefreshView` flag and mark ancestors accordingly.
|
|
2742
|
+
if (requiresRefreshOrTraversal(lView)) {
|
|
2743
|
+
markAncestorsForTraversal(lView);
|
|
2744
|
+
}
|
|
2745
|
+
else if (lView[FLAGS] & 64 /* LViewFlags.Dirty */) {
|
|
2746
|
+
if (getEnsureDirtyViewsAreAlwaysReachable()) {
|
|
2747
|
+
lView[FLAGS] |= 1024 /* LViewFlags.RefreshView */;
|
|
2748
|
+
markAncestorsForTraversal(lView);
|
|
2749
|
+
}
|
|
2750
|
+
else {
|
|
2751
|
+
lView[ENVIRONMENT].changeDetectionScheduler?.notify();
|
|
2752
|
+
}
|
|
2736
2753
|
}
|
|
2737
|
-
markAncestorsForTraversal(lView);
|
|
2738
2754
|
}
|
|
2739
2755
|
/**
|
|
2740
2756
|
* Ensures views above the given `lView` are traversed during change detection even when they are
|
|
@@ -2744,24 +2760,19 @@ function updateAncestorTraversalFlagsOnAttach(lView) {
|
|
|
2744
2760
|
* flag is already `true` or the `lView` is detached.
|
|
2745
2761
|
*/
|
|
2746
2762
|
function markAncestorsForTraversal(lView) {
|
|
2747
|
-
|
|
2763
|
+
lView[ENVIRONMENT].changeDetectionScheduler?.notify();
|
|
2764
|
+
let parent = getLViewParent(lView);
|
|
2748
2765
|
while (parent !== null) {
|
|
2749
2766
|
// We stop adding markers to the ancestors once we reach one that already has the marker. This
|
|
2750
2767
|
// is to avoid needlessly traversing all the way to the root when the marker already exists.
|
|
2751
|
-
if (
|
|
2752
|
-
(isLView(parent) && parent[FLAGS] & 8192 /* LViewFlags.HasChildViewsToRefresh */))) {
|
|
2768
|
+
if (parent[FLAGS] & 8192 /* LViewFlags.HasChildViewsToRefresh */) {
|
|
2753
2769
|
break;
|
|
2754
2770
|
}
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
else {
|
|
2759
|
-
parent[FLAGS] |= 8192 /* LViewFlags.HasChildViewsToRefresh */;
|
|
2760
|
-
if (!viewAttachedToChangeDetector(parent)) {
|
|
2761
|
-
break;
|
|
2762
|
-
}
|
|
2771
|
+
parent[FLAGS] |= 8192 /* LViewFlags.HasChildViewsToRefresh */;
|
|
2772
|
+
if (!viewAttachedToChangeDetector(parent)) {
|
|
2773
|
+
break;
|
|
2763
2774
|
}
|
|
2764
|
-
parent = parent
|
|
2775
|
+
parent = getLViewParent(parent);
|
|
2765
2776
|
}
|
|
2766
2777
|
}
|
|
2767
2778
|
/**
|
|
@@ -2787,6 +2798,16 @@ function removeLViewOnDestroy(lView, onDestroyCallback) {
|
|
|
2787
2798
|
lView[ON_DESTROY_HOOKS].splice(destroyCBIdx, 1);
|
|
2788
2799
|
}
|
|
2789
2800
|
}
|
|
2801
|
+
/**
|
|
2802
|
+
* Gets the parent LView of the passed LView, if the PARENT is an LContainer, will get the parent of
|
|
2803
|
+
* that LContainer, which is an LView
|
|
2804
|
+
* @param lView the lView whose parent to get
|
|
2805
|
+
*/
|
|
2806
|
+
function getLViewParent(lView) {
|
|
2807
|
+
ngDevMode && assertLView(lView);
|
|
2808
|
+
const parent = lView[PARENT];
|
|
2809
|
+
return isLContainer(parent) ? parent[PARENT] : parent;
|
|
2810
|
+
}
|
|
2790
2811
|
|
|
2791
2812
|
const instructionState = {
|
|
2792
2813
|
lFrame: createLFrame(null),
|
|
@@ -3779,11 +3800,12 @@ function hasParentInjector(parentLocation) {
|
|
|
3779
3800
|
return parentLocation !== NO_PARENT_INJECTOR;
|
|
3780
3801
|
}
|
|
3781
3802
|
function getParentInjectorIndex(parentLocation) {
|
|
3782
|
-
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
3803
|
+
if (ngDevMode) {
|
|
3804
|
+
assertNumber(parentLocation, 'Number expected');
|
|
3805
|
+
assertNotEqual(parentLocation, -1, 'Not a valid state.');
|
|
3806
|
+
const parentInjectorIndex = parentLocation & 32767 /* RelativeInjectorLocationFlags.InjectorIndexMask */;
|
|
3786
3807
|
assertGreaterThan(parentInjectorIndex, HEADER_OFFSET, 'Parent injector must be pointing past HEADER_OFFSET.');
|
|
3808
|
+
}
|
|
3787
3809
|
return parentLocation & 32767 /* RelativeInjectorLocationFlags.InjectorIndexMask */;
|
|
3788
3810
|
}
|
|
3789
3811
|
function getParentInjectorViewOffset(parentLocation) {
|
|
@@ -6150,9 +6172,11 @@ class R3Injector extends EnvironmentInjector {
|
|
|
6150
6172
|
multiRecord.multi.push(provider);
|
|
6151
6173
|
}
|
|
6152
6174
|
else {
|
|
6153
|
-
|
|
6154
|
-
|
|
6155
|
-
|
|
6175
|
+
if (ngDevMode) {
|
|
6176
|
+
const existing = this.records.get(token);
|
|
6177
|
+
if (existing && existing.multi !== undefined) {
|
|
6178
|
+
throwMixedMultiProviderError();
|
|
6179
|
+
}
|
|
6156
6180
|
}
|
|
6157
6181
|
}
|
|
6158
6182
|
this.records.set(token, record);
|
|
@@ -6220,8 +6244,8 @@ function getUndecoratedInjectableFactory(token) {
|
|
|
6220
6244
|
// If the token has parameters then it has dependencies that we cannot resolve implicitly.
|
|
6221
6245
|
const paramLength = token.length;
|
|
6222
6246
|
if (paramLength > 0) {
|
|
6223
|
-
|
|
6224
|
-
|
|
6247
|
+
throw new RuntimeError(204 /* RuntimeErrorCode.INVALID_INJECTION_TOKEN */, ngDevMode &&
|
|
6248
|
+
`Can't resolve all parameters for ${stringify(token)}: (${newArray(paramLength, '?').join(', ')}).`);
|
|
6225
6249
|
}
|
|
6226
6250
|
// The constructor function appears to have no parameters.
|
|
6227
6251
|
// This might be because it inherits from a super-class. In which case, use an injectable
|
|
@@ -7915,63 +7939,6 @@ function ensureIcuContainerVisitorLoaded(loader) {
|
|
|
7915
7939
|
}
|
|
7916
7940
|
}
|
|
7917
7941
|
|
|
7918
|
-
/**
|
|
7919
|
-
* Gets the parent LView of the passed LView, if the PARENT is an LContainer, will get the parent of
|
|
7920
|
-
* that LContainer, which is an LView
|
|
7921
|
-
* @param lView the lView whose parent to get
|
|
7922
|
-
*/
|
|
7923
|
-
function getLViewParent(lView) {
|
|
7924
|
-
ngDevMode && assertLView(lView);
|
|
7925
|
-
const parent = lView[PARENT];
|
|
7926
|
-
return isLContainer(parent) ? parent[PARENT] : parent;
|
|
7927
|
-
}
|
|
7928
|
-
/**
|
|
7929
|
-
* Retrieve the root view from any component or `LView` by walking the parent `LView` until
|
|
7930
|
-
* reaching the root `LView`.
|
|
7931
|
-
*
|
|
7932
|
-
* @param componentOrLView any component or `LView`
|
|
7933
|
-
*/
|
|
7934
|
-
function getRootView(componentOrLView) {
|
|
7935
|
-
ngDevMode && assertDefined(componentOrLView, 'component');
|
|
7936
|
-
let lView = isLView(componentOrLView) ? componentOrLView : readPatchedLView(componentOrLView);
|
|
7937
|
-
while (lView && !(lView[FLAGS] & 512 /* LViewFlags.IsRoot */)) {
|
|
7938
|
-
lView = getLViewParent(lView);
|
|
7939
|
-
}
|
|
7940
|
-
ngDevMode && assertLView(lView);
|
|
7941
|
-
return lView;
|
|
7942
|
-
}
|
|
7943
|
-
/**
|
|
7944
|
-
* Returns the context information associated with the application where the target is situated. It
|
|
7945
|
-
* does this by walking the parent views until it gets to the root view, then getting the context
|
|
7946
|
-
* off of that.
|
|
7947
|
-
*
|
|
7948
|
-
* @param viewOrComponent the `LView` or component to get the root context for.
|
|
7949
|
-
*/
|
|
7950
|
-
function getRootContext(viewOrComponent) {
|
|
7951
|
-
const rootView = getRootView(viewOrComponent);
|
|
7952
|
-
ngDevMode &&
|
|
7953
|
-
assertDefined(rootView[CONTEXT], 'Root view has no context. Perhaps it is disconnected?');
|
|
7954
|
-
return rootView[CONTEXT];
|
|
7955
|
-
}
|
|
7956
|
-
/**
|
|
7957
|
-
* Gets the first `LContainer` in the LView or `null` if none exists.
|
|
7958
|
-
*/
|
|
7959
|
-
function getFirstLContainer(lView) {
|
|
7960
|
-
return getNearestLContainer(lView[CHILD_HEAD]);
|
|
7961
|
-
}
|
|
7962
|
-
/**
|
|
7963
|
-
* Gets the next `LContainer` that is a sibling of the given container.
|
|
7964
|
-
*/
|
|
7965
|
-
function getNextLContainer(container) {
|
|
7966
|
-
return getNearestLContainer(container[NEXT]);
|
|
7967
|
-
}
|
|
7968
|
-
function getNearestLContainer(viewOrContainer) {
|
|
7969
|
-
while (viewOrContainer !== null && !isLContainer(viewOrContainer)) {
|
|
7970
|
-
viewOrContainer = viewOrContainer[NEXT];
|
|
7971
|
-
}
|
|
7972
|
-
return viewOrContainer;
|
|
7973
|
-
}
|
|
7974
|
-
|
|
7975
7942
|
/**
|
|
7976
7943
|
* NOTE: for performance reasons, the possible actions are inlined within the function instead of
|
|
7977
7944
|
* being passed as an argument.
|
|
@@ -8054,8 +8021,7 @@ function createElementNode(renderer, name, namespace) {
|
|
|
8054
8021
|
* @param lView The view from which elements should be added or removed
|
|
8055
8022
|
*/
|
|
8056
8023
|
function removeViewFromDOM(tView, lView) {
|
|
8057
|
-
|
|
8058
|
-
applyView(tView, lView, renderer, 2 /* WalkTNodeTreeAction.Detach */, null, null);
|
|
8024
|
+
detachViewFromDOM(tView, lView);
|
|
8059
8025
|
lView[HOST] = null;
|
|
8060
8026
|
lView[T_HOST] = null;
|
|
8061
8027
|
}
|
|
@@ -8085,6 +8051,9 @@ function addViewToDOM(tView, parentTNode, renderer, lView, parentNativeNode, bef
|
|
|
8085
8051
|
* @param lView the `LView` to be detached.
|
|
8086
8052
|
*/
|
|
8087
8053
|
function detachViewFromDOM(tView, lView) {
|
|
8054
|
+
// The scheduler must be notified because the animation engine is what actually does the DOM
|
|
8055
|
+
// removal and only runs at the end of change detection.
|
|
8056
|
+
lView[ENVIRONMENT].changeDetectionScheduler?.notify();
|
|
8088
8057
|
applyView(tView, lView, lView[RENDERER], 2 /* WalkTNodeTreeAction.Detach */, null, null);
|
|
8089
8058
|
}
|
|
8090
8059
|
/**
|
|
@@ -8216,8 +8185,7 @@ function detachMovedView(declarationContainer, lView) {
|
|
|
8216
8185
|
assertDefined(declarationContainer[MOVED_VIEWS], 'A projected view should belong to a non-empty projected views collection');
|
|
8217
8186
|
const movedViews = declarationContainer[MOVED_VIEWS];
|
|
8218
8187
|
const declarationViewIndex = movedViews.indexOf(lView);
|
|
8219
|
-
|
|
8220
|
-
ngDevMode && assertLContainer(insertionLContainer);
|
|
8188
|
+
ngDevMode && assertLContainer(lView[PARENT]);
|
|
8221
8189
|
movedViews.splice(declarationViewIndex, 1);
|
|
8222
8190
|
}
|
|
8223
8191
|
/**
|
|
@@ -9841,6 +9809,12 @@ function getSanitizer() {
|
|
|
9841
9809
|
return lView && lView[ENVIRONMENT].sanitizer;
|
|
9842
9810
|
}
|
|
9843
9811
|
|
|
9812
|
+
/**
|
|
9813
|
+
* Injectable that is notified when an `LView` is made aware of changes to application state.
|
|
9814
|
+
*/
|
|
9815
|
+
class ChangeDetectionScheduler {
|
|
9816
|
+
}
|
|
9817
|
+
|
|
9844
9818
|
/**
|
|
9845
9819
|
* Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.
|
|
9846
9820
|
*
|
|
@@ -10021,7 +9995,7 @@ const SSR_CONTENT_INTEGRITY_MARKER = 'nghm';
|
|
|
10021
9995
|
* @param injector Injector that this component has access to.
|
|
10022
9996
|
* @param isRootView Specifies whether we trying to read hydration info for the root view.
|
|
10023
9997
|
*/
|
|
10024
|
-
let _retrieveHydrationInfoImpl = (
|
|
9998
|
+
let _retrieveHydrationInfoImpl = () => null;
|
|
10025
9999
|
function retrieveHydrationInfoImpl(rNode, injector, isRootView = false) {
|
|
10026
10000
|
let nghAttrValue = rNode.getAttribute(NGH_ATTR_NAME);
|
|
10027
10001
|
if (nghAttrValue == null)
|
|
@@ -10411,24 +10385,6 @@ class Sanitizer {
|
|
|
10411
10385
|
}); }
|
|
10412
10386
|
}
|
|
10413
10387
|
|
|
10414
|
-
/**
|
|
10415
|
-
* @description Represents the version of Angular
|
|
10416
|
-
*
|
|
10417
|
-
* @publicApi
|
|
10418
|
-
*/
|
|
10419
|
-
class Version {
|
|
10420
|
-
constructor(full) {
|
|
10421
|
-
this.full = full;
|
|
10422
|
-
this.major = full.split('.')[0];
|
|
10423
|
-
this.minor = full.split('.')[1];
|
|
10424
|
-
this.patch = full.split('.').slice(2).join('.');
|
|
10425
|
-
}
|
|
10426
|
-
}
|
|
10427
|
-
/**
|
|
10428
|
-
* @publicApi
|
|
10429
|
-
*/
|
|
10430
|
-
const VERSION = new Version('17.0.7');
|
|
10431
|
-
|
|
10432
10388
|
// This default value is when checking the hierarchy for a token.
|
|
10433
10389
|
//
|
|
10434
10390
|
// It means both:
|
|
@@ -11703,6 +11659,53 @@ const REACTIVE_LVIEW_CONSUMER_NODE = {
|
|
|
11703
11659
|
},
|
|
11704
11660
|
};
|
|
11705
11661
|
|
|
11662
|
+
/**
|
|
11663
|
+
* Retrieve the root view from any component or `LView` by walking the parent `LView` until
|
|
11664
|
+
* reaching the root `LView`.
|
|
11665
|
+
*
|
|
11666
|
+
* @param componentOrLView any component or `LView`
|
|
11667
|
+
*/
|
|
11668
|
+
function getRootView(componentOrLView) {
|
|
11669
|
+
ngDevMode && assertDefined(componentOrLView, 'component');
|
|
11670
|
+
let lView = isLView(componentOrLView) ? componentOrLView : readPatchedLView(componentOrLView);
|
|
11671
|
+
while (lView && !(lView[FLAGS] & 512 /* LViewFlags.IsRoot */)) {
|
|
11672
|
+
lView = getLViewParent(lView);
|
|
11673
|
+
}
|
|
11674
|
+
ngDevMode && assertLView(lView);
|
|
11675
|
+
return lView;
|
|
11676
|
+
}
|
|
11677
|
+
/**
|
|
11678
|
+
* Returns the context information associated with the application where the target is situated. It
|
|
11679
|
+
* does this by walking the parent views until it gets to the root view, then getting the context
|
|
11680
|
+
* off of that.
|
|
11681
|
+
*
|
|
11682
|
+
* @param viewOrComponent the `LView` or component to get the root context for.
|
|
11683
|
+
*/
|
|
11684
|
+
function getRootContext(viewOrComponent) {
|
|
11685
|
+
const rootView = getRootView(viewOrComponent);
|
|
11686
|
+
ngDevMode &&
|
|
11687
|
+
assertDefined(rootView[CONTEXT], 'Root view has no context. Perhaps it is disconnected?');
|
|
11688
|
+
return rootView[CONTEXT];
|
|
11689
|
+
}
|
|
11690
|
+
/**
|
|
11691
|
+
* Gets the first `LContainer` in the LView or `null` if none exists.
|
|
11692
|
+
*/
|
|
11693
|
+
function getFirstLContainer(lView) {
|
|
11694
|
+
return getNearestLContainer(lView[CHILD_HEAD]);
|
|
11695
|
+
}
|
|
11696
|
+
/**
|
|
11697
|
+
* Gets the next `LContainer` that is a sibling of the given container.
|
|
11698
|
+
*/
|
|
11699
|
+
function getNextLContainer(container) {
|
|
11700
|
+
return getNearestLContainer(container[NEXT]);
|
|
11701
|
+
}
|
|
11702
|
+
function getNearestLContainer(viewOrContainer) {
|
|
11703
|
+
while (viewOrContainer !== null && !isLContainer(viewOrContainer)) {
|
|
11704
|
+
viewOrContainer = viewOrContainer[NEXT];
|
|
11705
|
+
}
|
|
11706
|
+
return viewOrContainer;
|
|
11707
|
+
}
|
|
11708
|
+
|
|
11706
11709
|
const ERROR_ORIGINAL_ERROR = 'ngOriginalError';
|
|
11707
11710
|
function wrappedError(message, originalError) {
|
|
11708
11711
|
const msg = `${message} caused by: ${originalError instanceof Error ? originalError.message : originalError}`;
|
|
@@ -11944,7 +11947,7 @@ const NO_CHANGE = (typeof ngDevMode === 'undefined' || ngDevMode) ? { __brand__:
|
|
|
11944
11947
|
*
|
|
11945
11948
|
* @codeGenApi
|
|
11946
11949
|
*/
|
|
11947
|
-
function ɵɵadvance(delta) {
|
|
11950
|
+
function ɵɵadvance(delta = 1) {
|
|
11948
11951
|
ngDevMode && assertGreaterThan(delta, 0, 'Can only advance forward');
|
|
11949
11952
|
selectIndexInternal(getTView(), getLView(), getSelectedIndex() + delta, !!ngDevMode && isInCheckNoChangesMode());
|
|
11950
11953
|
}
|
|
@@ -12043,7 +12046,8 @@ function processHostBindingOpCodes(tView, lView) {
|
|
|
12043
12046
|
function createLView(parentLView, tView, context, flags, host, tHostNode, environment, renderer, injector, embeddedViewInjector, hydrationInfo) {
|
|
12044
12047
|
const lView = tView.blueprint.slice();
|
|
12045
12048
|
lView[HOST] = host;
|
|
12046
|
-
lView[FLAGS] = flags | 4 /* LViewFlags.CreationMode */ | 128 /* LViewFlags.Attached */ | 8 /* LViewFlags.FirstLViewPass
|
|
12049
|
+
lView[FLAGS] = flags | 4 /* LViewFlags.CreationMode */ | 128 /* LViewFlags.Attached */ | 8 /* LViewFlags.FirstLViewPass */ |
|
|
12050
|
+
64 /* LViewFlags.Dirty */;
|
|
12047
12051
|
if (embeddedViewInjector !== null ||
|
|
12048
12052
|
(parentLView && (parentLView[FLAGS] & 2048 /* LViewFlags.HasEmbeddedViewInjector */))) {
|
|
12049
12053
|
lView[FLAGS] |= 2048 /* LViewFlags.HasEmbeddedViewInjector */;
|
|
@@ -12353,7 +12357,7 @@ function applyRootElementTransform(rootElement) {
|
|
|
12353
12357
|
*
|
|
12354
12358
|
* @param rootElement the app root HTML Element
|
|
12355
12359
|
*/
|
|
12356
|
-
let _applyRootElementTransformImpl = (
|
|
12360
|
+
let _applyRootElementTransformImpl = () => null;
|
|
12357
12361
|
/**
|
|
12358
12362
|
* Processes text node markers before hydration begins. This replaces any special comment
|
|
12359
12363
|
* nodes that were added prior to serialization are swapped out to restore proper text
|
|
@@ -13309,14 +13313,12 @@ const MAXIMUM_REFRESH_RERUNS = 100;
|
|
|
13309
13313
|
function detectChangesInternal(lView, notifyErrorHandler = true) {
|
|
13310
13314
|
const environment = lView[ENVIRONMENT];
|
|
13311
13315
|
const rendererFactory = environment.rendererFactory;
|
|
13312
|
-
const afterRenderEventManager = environment.afterRenderEventManager;
|
|
13313
13316
|
// Check no changes mode is a dev only mode used to verify that bindings have not changed
|
|
13314
13317
|
// since they were assigned. We do not want to invoke renderer factory functions in that mode
|
|
13315
13318
|
// to avoid any possible side-effects.
|
|
13316
13319
|
const checkNoChangesMode = !!ngDevMode && isInCheckNoChangesMode();
|
|
13317
13320
|
if (!checkNoChangesMode) {
|
|
13318
13321
|
rendererFactory.begin?.();
|
|
13319
|
-
afterRenderEventManager?.begin();
|
|
13320
13322
|
}
|
|
13321
13323
|
try {
|
|
13322
13324
|
detectChangesInViewWhileDirty(lView);
|
|
@@ -13333,8 +13335,6 @@ function detectChangesInternal(lView, notifyErrorHandler = true) {
|
|
|
13333
13335
|
// One final flush of the effects queue to catch any effects created in `ngAfterViewInit` or
|
|
13334
13336
|
// other post-order hooks.
|
|
13335
13337
|
environment.inlineEffectRunner?.flush();
|
|
13336
|
-
// Invoke all callbacks registered via `after*Render`, if needed.
|
|
13337
|
-
afterRenderEventManager?.end();
|
|
13338
13338
|
}
|
|
13339
13339
|
}
|
|
13340
13340
|
}
|
|
@@ -13540,7 +13540,6 @@ function viewShouldHaveReactiveConsumer(tView) {
|
|
|
13540
13540
|
*/
|
|
13541
13541
|
function detectChangesInEmbeddedViews(lView, mode) {
|
|
13542
13542
|
for (let lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {
|
|
13543
|
-
lContainer[FLAGS] &= ~LContainerFlags.HasChildViewsToRefresh;
|
|
13544
13543
|
for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
|
|
13545
13544
|
const embeddedLView = lContainer[i];
|
|
13546
13545
|
detectChangesInViewIfAttached(embeddedLView, mode);
|
|
@@ -13652,6 +13651,7 @@ function detectChangesInChildComponents(hostLView, components, mode) {
|
|
|
13652
13651
|
* @returns the root LView
|
|
13653
13652
|
*/
|
|
13654
13653
|
function markViewDirty(lView) {
|
|
13654
|
+
lView[ENVIRONMENT].changeDetectionScheduler?.notify();
|
|
13655
13655
|
while (lView) {
|
|
13656
13656
|
lView[FLAGS] |= 64 /* LViewFlags.Dirty */;
|
|
13657
13657
|
const parent = getLViewParent(lView);
|
|
@@ -13945,6 +13945,7 @@ class ViewRef$1 {
|
|
|
13945
13945
|
throw new RuntimeError(902 /* RuntimeErrorCode.VIEW_ALREADY_ATTACHED */, ngDevMode && 'This view is already attached to a ViewContainer!');
|
|
13946
13946
|
}
|
|
13947
13947
|
this._appRef = appRef;
|
|
13948
|
+
updateAncestorTraversalFlagsOnAttach(this._lView);
|
|
13948
13949
|
}
|
|
13949
13950
|
}
|
|
13950
13951
|
|
|
@@ -14204,11 +14205,11 @@ class ZoneAwareMicrotaskScheduler {
|
|
|
14204
14205
|
* available/requested.
|
|
14205
14206
|
*/
|
|
14206
14207
|
class EffectHandle {
|
|
14207
|
-
constructor(scheduler, effectFn, creationZone, destroyRef,
|
|
14208
|
+
constructor(scheduler, effectFn, creationZone, destroyRef, injector, allowSignalWrites) {
|
|
14208
14209
|
this.scheduler = scheduler;
|
|
14209
14210
|
this.effectFn = effectFn;
|
|
14210
14211
|
this.creationZone = creationZone;
|
|
14211
|
-
this.
|
|
14212
|
+
this.injector = injector;
|
|
14212
14213
|
this.watcher = createWatch$1((onCleanup) => this.runEffect(onCleanup), () => this.schedule(), allowSignalWrites);
|
|
14213
14214
|
this.unregisterOnDestroy = destroyRef?.onDestroy(() => this.destroy());
|
|
14214
14215
|
}
|
|
@@ -14217,7 +14218,10 @@ class EffectHandle {
|
|
|
14217
14218
|
this.effectFn(onCleanup);
|
|
14218
14219
|
}
|
|
14219
14220
|
catch (err) {
|
|
14220
|
-
|
|
14221
|
+
// Inject the `ErrorHandler` here in order to avoid circular DI error
|
|
14222
|
+
// if the effect is used inside of a custom `ErrorHandler`.
|
|
14223
|
+
const errorHandler = this.injector.get(ErrorHandler, null, { optional: true });
|
|
14224
|
+
errorHandler?.handleError(err);
|
|
14221
14225
|
}
|
|
14222
14226
|
}
|
|
14223
14227
|
run() {
|
|
@@ -14244,9 +14248,8 @@ function effect(effectFn, options) {
|
|
|
14244
14248
|
'effect inside the component constructor.');
|
|
14245
14249
|
!options?.injector && assertInInjectionContext(effect);
|
|
14246
14250
|
const injector = options?.injector ?? inject(Injector);
|
|
14247
|
-
const errorHandler = injector.get(ErrorHandler, null, { optional: true });
|
|
14248
14251
|
const destroyRef = options?.manualCleanup !== true ? injector.get(DestroyRef) : null;
|
|
14249
|
-
const handle = new EffectHandle(injector.get(APP_EFFECT_SCHEDULER), effectFn, (typeof Zone === 'undefined') ? null : Zone.current, destroyRef,
|
|
14252
|
+
const handle = new EffectHandle(injector.get(APP_EFFECT_SCHEDULER), effectFn, (typeof Zone === 'undefined') ? null : Zone.current, destroyRef, injector, options?.allowSignalWrites ?? false);
|
|
14250
14253
|
// Effects need to be marked dirty manually to trigger their initial run. The timing of this
|
|
14251
14254
|
// marking matters, because the effects may read signals that track component inputs, which are
|
|
14252
14255
|
// only available after those components have had their first update pass.
|
|
@@ -14289,7 +14292,6 @@ function performanceMarkFeature(feature) {
|
|
|
14289
14292
|
performance?.mark?.('mark_feature_usage', { detail: { feature } });
|
|
14290
14293
|
}
|
|
14291
14294
|
|
|
14292
|
-
/// <reference types="rxjs" />
|
|
14293
14295
|
class EventEmitter_ extends Subject {
|
|
14294
14296
|
constructor(isAsync = false) {
|
|
14295
14297
|
super();
|
|
@@ -14788,63 +14790,6 @@ class NoopNgZone {
|
|
|
14788
14790
|
return fn.apply(applyThis, applyArgs);
|
|
14789
14791
|
}
|
|
14790
14792
|
}
|
|
14791
|
-
/**
|
|
14792
|
-
* Token used to drive ApplicationRef.isStable
|
|
14793
|
-
*
|
|
14794
|
-
* TODO: This should be moved entirely to NgZone (as a breaking change) so it can be tree-shakeable
|
|
14795
|
-
* for `NoopNgZone` which is always just an `Observable` of `true`. Additionally, we should consider
|
|
14796
|
-
* whether the property on `NgZone` should be `Observable` or `Signal`.
|
|
14797
|
-
*/
|
|
14798
|
-
const ZONE_IS_STABLE_OBSERVABLE = new InjectionToken(ngDevMode ? 'isStable Observable' : '', {
|
|
14799
|
-
providedIn: 'root',
|
|
14800
|
-
// TODO(atscott): Replace this with a suitable default like `new
|
|
14801
|
-
// BehaviorSubject(true).asObservable`. Again, long term this won't exist on ApplicationRef at
|
|
14802
|
-
// all but until we can remove it, we need a default value zoneless.
|
|
14803
|
-
factory: isStableFactory,
|
|
14804
|
-
});
|
|
14805
|
-
function isStableFactory() {
|
|
14806
|
-
const zone = inject(NgZone);
|
|
14807
|
-
let _stable = true;
|
|
14808
|
-
const isCurrentlyStable = new Observable((observer) => {
|
|
14809
|
-
_stable = zone.isStable && !zone.hasPendingMacrotasks && !zone.hasPendingMicrotasks;
|
|
14810
|
-
zone.runOutsideAngular(() => {
|
|
14811
|
-
observer.next(_stable);
|
|
14812
|
-
observer.complete();
|
|
14813
|
-
});
|
|
14814
|
-
});
|
|
14815
|
-
const isStable = new Observable((observer) => {
|
|
14816
|
-
// Create the subscription to onStable outside the Angular Zone so that
|
|
14817
|
-
// the callback is run outside the Angular Zone.
|
|
14818
|
-
let stableSub;
|
|
14819
|
-
zone.runOutsideAngular(() => {
|
|
14820
|
-
stableSub = zone.onStable.subscribe(() => {
|
|
14821
|
-
NgZone.assertNotInAngularZone();
|
|
14822
|
-
// Check whether there are no pending macro/micro tasks in the next tick
|
|
14823
|
-
// to allow for NgZone to update the state.
|
|
14824
|
-
queueMicrotask(() => {
|
|
14825
|
-
if (!_stable && !zone.hasPendingMacrotasks && !zone.hasPendingMicrotasks) {
|
|
14826
|
-
_stable = true;
|
|
14827
|
-
observer.next(true);
|
|
14828
|
-
}
|
|
14829
|
-
});
|
|
14830
|
-
});
|
|
14831
|
-
});
|
|
14832
|
-
const unstableSub = zone.onUnstable.subscribe(() => {
|
|
14833
|
-
NgZone.assertInAngularZone();
|
|
14834
|
-
if (_stable) {
|
|
14835
|
-
_stable = false;
|
|
14836
|
-
zone.runOutsideAngular(() => {
|
|
14837
|
-
observer.next(false);
|
|
14838
|
-
});
|
|
14839
|
-
}
|
|
14840
|
-
});
|
|
14841
|
-
return () => {
|
|
14842
|
-
stableSub.unsubscribe();
|
|
14843
|
-
unstableSub.unsubscribe();
|
|
14844
|
-
};
|
|
14845
|
-
});
|
|
14846
|
-
return merge$1(isCurrentlyStable, isStable.pipe(share()));
|
|
14847
|
-
}
|
|
14848
14793
|
function shouldBeIgnoredByZone(applyArgs) {
|
|
14849
14794
|
if (!Array.isArray(applyArgs)) {
|
|
14850
14795
|
return false;
|
|
@@ -14867,8 +14812,6 @@ function getNgZone(ngZoneToUse = 'zone.js', options) {
|
|
|
14867
14812
|
return ngZoneToUse;
|
|
14868
14813
|
}
|
|
14869
14814
|
|
|
14870
|
-
// Public API for Zone
|
|
14871
|
-
|
|
14872
14815
|
/**
|
|
14873
14816
|
* The phase to run an `afterRender` or `afterNextRender` callback in.
|
|
14874
14817
|
*
|
|
@@ -15137,13 +15080,6 @@ class AfterRenderCallbackHandlerImpl {
|
|
|
15137
15080
|
};
|
|
15138
15081
|
this.deferredCallbacks = new Set();
|
|
15139
15082
|
}
|
|
15140
|
-
validateBegin() {
|
|
15141
|
-
if (this.executingCallbacks) {
|
|
15142
|
-
throw new RuntimeError(102 /* RuntimeErrorCode.RECURSIVE_APPLICATION_RENDER */, ngDevMode &&
|
|
15143
|
-
'A new render operation began before the previous operation ended. ' +
|
|
15144
|
-
'Did you trigger change detection from afterRender or afterNextRender?');
|
|
15145
|
-
}
|
|
15146
|
-
}
|
|
15147
15083
|
register(callback) {
|
|
15148
15084
|
// If we're currently running callbacks, new callbacks should be deferred
|
|
15149
15085
|
// until the next render operation.
|
|
@@ -15155,9 +15091,11 @@ class AfterRenderCallbackHandlerImpl {
|
|
|
15155
15091
|
this.deferredCallbacks.delete(callback);
|
|
15156
15092
|
}
|
|
15157
15093
|
execute() {
|
|
15094
|
+
let callbacksExecuted = false;
|
|
15158
15095
|
this.executingCallbacks = true;
|
|
15159
15096
|
for (const bucket of Object.values(this.buckets)) {
|
|
15160
15097
|
for (const callback of bucket) {
|
|
15098
|
+
callbacksExecuted = true;
|
|
15161
15099
|
callback.invoke();
|
|
15162
15100
|
}
|
|
15163
15101
|
}
|
|
@@ -15166,6 +15104,7 @@ class AfterRenderCallbackHandlerImpl {
|
|
|
15166
15104
|
this.buckets[callback.phase].add(callback);
|
|
15167
15105
|
}
|
|
15168
15106
|
this.deferredCallbacks.clear();
|
|
15107
|
+
return callbacksExecuted;
|
|
15169
15108
|
}
|
|
15170
15109
|
destroy() {
|
|
15171
15110
|
for (const bucket of Object.values(this.buckets)) {
|
|
@@ -15180,37 +15119,25 @@ class AfterRenderCallbackHandlerImpl {
|
|
|
15180
15119
|
*/
|
|
15181
15120
|
class AfterRenderEventManager {
|
|
15182
15121
|
constructor() {
|
|
15183
|
-
this.renderDepth = 0;
|
|
15184
15122
|
/* @internal */
|
|
15185
15123
|
this.handler = null;
|
|
15186
15124
|
/* @internal */
|
|
15187
15125
|
this.internalCallbacks = [];
|
|
15188
15126
|
}
|
|
15189
15127
|
/**
|
|
15190
|
-
*
|
|
15191
|
-
* Throws if called while executing callbacks.
|
|
15128
|
+
* Executes callbacks. Returns `true` if any callbacks executed.
|
|
15192
15129
|
*/
|
|
15193
|
-
|
|
15194
|
-
|
|
15195
|
-
|
|
15196
|
-
|
|
15197
|
-
|
|
15198
|
-
|
|
15199
|
-
|
|
15200
|
-
|
|
15201
|
-
end() {
|
|
15202
|
-
ngDevMode && assertGreaterThan(this.renderDepth, 0, 'renderDepth must be greater than 0');
|
|
15203
|
-
this.renderDepth--;
|
|
15204
|
-
if (this.renderDepth === 0) {
|
|
15205
|
-
// Note: internal callbacks power `internalAfterNextRender`. Since internal callbacks
|
|
15206
|
-
// are fairly trivial, they are kept separate so that `AfterRenderCallbackHandlerImpl`
|
|
15207
|
-
// can still be tree-shaken unless used by the application.
|
|
15208
|
-
for (const callback of this.internalCallbacks) {
|
|
15209
|
-
callback();
|
|
15210
|
-
}
|
|
15211
|
-
this.internalCallbacks.length = 0;
|
|
15212
|
-
this.handler?.execute();
|
|
15130
|
+
execute() {
|
|
15131
|
+
// Note: internal callbacks power `internalAfterNextRender`. Since internal callbacks
|
|
15132
|
+
// are fairly trivial, they are kept separate so that `AfterRenderCallbackHandlerImpl`
|
|
15133
|
+
// can still be tree-shaken unless used by the application.
|
|
15134
|
+
const callbacks = [...this.internalCallbacks];
|
|
15135
|
+
this.internalCallbacks.length = 0;
|
|
15136
|
+
for (const callback of callbacks) {
|
|
15137
|
+
callback();
|
|
15213
15138
|
}
|
|
15139
|
+
const handlerCallbacksExecuted = this.handler?.execute();
|
|
15140
|
+
return !!handlerCallbacksExecuted || callbacks.length > 0;
|
|
15214
15141
|
}
|
|
15215
15142
|
ngOnDestroy() {
|
|
15216
15143
|
this.handler?.destroy();
|
|
@@ -15486,12 +15413,14 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
15486
15413
|
}
|
|
15487
15414
|
const sanitizer = rootViewInjector.get(Sanitizer, null);
|
|
15488
15415
|
const afterRenderEventManager = rootViewInjector.get(AfterRenderEventManager, null);
|
|
15416
|
+
const changeDetectionScheduler = rootViewInjector.get(ChangeDetectionScheduler, null);
|
|
15489
15417
|
const environment = {
|
|
15490
15418
|
rendererFactory,
|
|
15491
15419
|
sanitizer,
|
|
15492
15420
|
// We don't use inline effects (yet).
|
|
15493
15421
|
inlineEffectRunner: null,
|
|
15494
15422
|
afterRenderEventManager,
|
|
15423
|
+
changeDetectionScheduler,
|
|
15495
15424
|
};
|
|
15496
15425
|
const hostRenderer = rendererFactory.createRenderer(null, this.componentDef);
|
|
15497
15426
|
// Determine a tag name used for creating host elements when this component is created
|
|
@@ -15500,12 +15429,13 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
15500
15429
|
const hostRNode = rootSelectorOrNode ?
|
|
15501
15430
|
locateHostElement(hostRenderer, rootSelectorOrNode, this.componentDef.encapsulation, rootViewInjector) :
|
|
15502
15431
|
createElementNode(hostRenderer, elementName, getNamespace(elementName));
|
|
15503
|
-
|
|
15504
|
-
|
|
15505
|
-
|
|
15506
|
-
|
|
15507
|
-
|
|
15508
|
-
|
|
15432
|
+
let rootFlags = 512 /* LViewFlags.IsRoot */;
|
|
15433
|
+
if (this.componentDef.signals) {
|
|
15434
|
+
rootFlags |= 4096 /* LViewFlags.SignalView */;
|
|
15435
|
+
}
|
|
15436
|
+
else if (!this.componentDef.onPush) {
|
|
15437
|
+
rootFlags |= 16 /* LViewFlags.CheckAlways */;
|
|
15438
|
+
}
|
|
15509
15439
|
let hydrationInfo = null;
|
|
15510
15440
|
if (hostRNode !== null) {
|
|
15511
15441
|
hydrationInfo = retrieveHydrationInfo(hostRNode, rootViewInjector, true /* isRootView */);
|
|
@@ -15712,7 +15642,8 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
|
|
|
15712
15642
|
/** Sets the static attributes on a root component. */
|
|
15713
15643
|
function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
|
|
15714
15644
|
if (rootSelectorOrNode) {
|
|
15715
|
-
|
|
15645
|
+
// The placeholder will be replaced with the actual version at build time.
|
|
15646
|
+
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '17.0.9']);
|
|
15716
15647
|
}
|
|
15717
15648
|
else {
|
|
15718
15649
|
// If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
|
|
@@ -17064,8 +16995,8 @@ function insertTStylingBinding(tData, tNode, tStylingKeyWithStatic, index, isHos
|
|
|
17064
16995
|
if (isKeyDuplicateOfStatic) {
|
|
17065
16996
|
tData[index + 1] = setTStylingRangePrevDuplicate(tData[index + 1]);
|
|
17066
16997
|
}
|
|
17067
|
-
markDuplicates(tData, tStylingKey, index, true
|
|
17068
|
-
markDuplicates(tData, tStylingKey, index, false
|
|
16998
|
+
markDuplicates(tData, tStylingKey, index, true);
|
|
16999
|
+
markDuplicates(tData, tStylingKey, index, false);
|
|
17069
17000
|
markDuplicateOfResidualStyling(tNode, tStylingKey, tData, index, isClassBinding);
|
|
17070
17001
|
tBindings = toTStylingRange(tmplHead, tmplTail);
|
|
17071
17002
|
if (isClassBinding) {
|
|
@@ -17149,7 +17080,7 @@ function markDuplicateOfResidualStyling(tNode, tStylingKey, tData, index, isClas
|
|
|
17149
17080
|
* - `true` for previous (lower priority);
|
|
17150
17081
|
* - `false` for next (higher priority).
|
|
17151
17082
|
*/
|
|
17152
|
-
function markDuplicates(tData, tStylingKey, index, isPrevDir
|
|
17083
|
+
function markDuplicates(tData, tStylingKey, index, isPrevDir) {
|
|
17153
17084
|
const tStylingAtIndex = tData[index + 1];
|
|
17154
17085
|
const isMap = tStylingKey === null;
|
|
17155
17086
|
let cursor = isPrevDir ? getTStylingRangePrev(tStylingAtIndex) : getTStylingRangeNext(tStylingAtIndex);
|
|
@@ -19451,7 +19382,7 @@ function locateDehydratedViewsInContainer(currentRNode, serializedViews) {
|
|
|
19451
19382
|
* stored on a given lContainer.
|
|
19452
19383
|
* Returns `null` by default, when hydration is not enabled.
|
|
19453
19384
|
*/
|
|
19454
|
-
let _findMatchingDehydratedViewImpl = (
|
|
19385
|
+
let _findMatchingDehydratedViewImpl = () => null;
|
|
19455
19386
|
/**
|
|
19456
19387
|
* Retrieves the next dehydrated view from the LContainer and verifies that
|
|
19457
19388
|
* it matches a given template id (from the TView that was used to create this
|
|
@@ -20191,7 +20122,7 @@ function insertAnchorNode(hostLView, hostTNode) {
|
|
|
20191
20122
|
return commentNode;
|
|
20192
20123
|
}
|
|
20193
20124
|
let _locateOrCreateAnchorNode = createAnchorNode;
|
|
20194
|
-
let _populateDehydratedViewsInLContainer = (
|
|
20125
|
+
let _populateDehydratedViewsInLContainer = () => false; // noop by default
|
|
20195
20126
|
/**
|
|
20196
20127
|
* Looks up dehydrated views that belong to a given LContainer and populates
|
|
20197
20128
|
* this information into the `LContainer[DEHYDRATED_VIEWS]` slot. When running
|
|
@@ -20767,6 +20698,8 @@ function invokeAllTriggerCleanupFns(lDetails) {
|
|
|
20767
20698
|
invokeTriggerCleanupFns(0 /* TriggerType.Regular */, lDetails);
|
|
20768
20699
|
}
|
|
20769
20700
|
|
|
20701
|
+
// Public API for Zone
|
|
20702
|
+
|
|
20770
20703
|
/**
|
|
20771
20704
|
* Calculates a data slot index for defer block info (either static or
|
|
20772
20705
|
* instance-specific), given an index of a defer instruction.
|
|
@@ -20936,8 +20869,6 @@ function onInteraction(trigger, callback) {
|
|
|
20936
20869
|
// are referencing it.
|
|
20937
20870
|
entry = new DeferEventEntry();
|
|
20938
20871
|
interactionTriggers.set(trigger, entry);
|
|
20939
|
-
// Ensure that the handler runs in the NgZone
|
|
20940
|
-
ngDevMode && NgZone.assertInAngularZone();
|
|
20941
20872
|
for (const name of interactionEventNames) {
|
|
20942
20873
|
trigger.addEventListener(name, entry.listener, eventListenerOptions);
|
|
20943
20874
|
}
|
|
@@ -20965,8 +20896,6 @@ function onHover(trigger, callback) {
|
|
|
20965
20896
|
if (!entry) {
|
|
20966
20897
|
entry = new DeferEventEntry();
|
|
20967
20898
|
hoverTriggers.set(trigger, entry);
|
|
20968
|
-
// Ensure that the handler runs in the NgZone
|
|
20969
|
-
ngDevMode && NgZone.assertInAngularZone();
|
|
20970
20899
|
for (const name of hoverEventNames) {
|
|
20971
20900
|
trigger.addEventListener(name, entry.listener, eventListenerOptions);
|
|
20972
20901
|
}
|
|
@@ -29969,6 +29898,25 @@ const NgModule = makeDecorator('NgModule', (ngModule) => ngModule, undefined, un
|
|
|
29969
29898
|
* to be used by the decorator versions of these annotations.
|
|
29970
29899
|
*/
|
|
29971
29900
|
|
|
29901
|
+
/**
|
|
29902
|
+
* @description Represents the version of Angular
|
|
29903
|
+
*
|
|
29904
|
+
* @publicApi
|
|
29905
|
+
*/
|
|
29906
|
+
class Version {
|
|
29907
|
+
constructor(full) {
|
|
29908
|
+
this.full = full;
|
|
29909
|
+
const parts = full.split('.');
|
|
29910
|
+
this.major = parts[0];
|
|
29911
|
+
this.minor = parts[1];
|
|
29912
|
+
this.patch = parts.slice(2).join('.');
|
|
29913
|
+
}
|
|
29914
|
+
}
|
|
29915
|
+
/**
|
|
29916
|
+
* @publicApi
|
|
29917
|
+
*/
|
|
29918
|
+
const VERSION = new Version('17.0.9');
|
|
29919
|
+
|
|
29972
29920
|
/*
|
|
29973
29921
|
* This file exists to support compilation of @angular/core in Ivy mode.
|
|
29974
29922
|
*
|
|
@@ -30007,45 +29955,6 @@ class Console {
|
|
|
30007
29955
|
args: [{ providedIn: 'platform' }]
|
|
30008
29956
|
}], null, null); })();
|
|
30009
29957
|
|
|
30010
|
-
/**
|
|
30011
|
-
* *Internal* service that keeps track of pending tasks happening in the system
|
|
30012
|
-
* during the initial rendering. No tasks are tracked after an initial
|
|
30013
|
-
* rendering.
|
|
30014
|
-
*
|
|
30015
|
-
* This information is needed to make sure that the serialization on the server
|
|
30016
|
-
* is delayed until all tasks in the queue (such as an initial navigation or a
|
|
30017
|
-
* pending HTTP request) are completed.
|
|
30018
|
-
*/
|
|
30019
|
-
class InitialRenderPendingTasks {
|
|
30020
|
-
constructor() {
|
|
30021
|
-
this.taskId = 0;
|
|
30022
|
-
this.pendingTasks = new Set();
|
|
30023
|
-
this.hasPendingTasks = new BehaviorSubject(false);
|
|
30024
|
-
}
|
|
30025
|
-
add() {
|
|
30026
|
-
this.hasPendingTasks.next(true);
|
|
30027
|
-
const taskId = this.taskId++;
|
|
30028
|
-
this.pendingTasks.add(taskId);
|
|
30029
|
-
return taskId;
|
|
30030
|
-
}
|
|
30031
|
-
remove(taskId) {
|
|
30032
|
-
this.pendingTasks.delete(taskId);
|
|
30033
|
-
if (this.pendingTasks.size === 0) {
|
|
30034
|
-
this.hasPendingTasks.next(false);
|
|
30035
|
-
}
|
|
30036
|
-
}
|
|
30037
|
-
ngOnDestroy() {
|
|
30038
|
-
this.pendingTasks.clear();
|
|
30039
|
-
this.hasPendingTasks.next(false);
|
|
30040
|
-
}
|
|
30041
|
-
static { this.ɵfac = function InitialRenderPendingTasks_Factory(t) { return new (t || InitialRenderPendingTasks)(); }; }
|
|
30042
|
-
static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: InitialRenderPendingTasks, factory: InitialRenderPendingTasks.ɵfac, providedIn: 'root' }); }
|
|
30043
|
-
}
|
|
30044
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(InitialRenderPendingTasks, [{
|
|
30045
|
-
type: Injectable,
|
|
30046
|
-
args: [{ providedIn: 'root' }]
|
|
30047
|
-
}], null, null); })();
|
|
30048
|
-
|
|
30049
29958
|
/**
|
|
30050
29959
|
* Combination of NgModuleFactory and ComponentFactories.
|
|
30051
29960
|
*
|
|
@@ -30152,6 +30061,53 @@ const COMPILER_OPTIONS = new InjectionToken('compilerOptions');
|
|
|
30152
30061
|
class CompilerFactory {
|
|
30153
30062
|
}
|
|
30154
30063
|
|
|
30064
|
+
/**
|
|
30065
|
+
* *Internal* service that keeps track of pending tasks happening in the system.
|
|
30066
|
+
*
|
|
30067
|
+
* This information is needed to make sure that the serialization on the server
|
|
30068
|
+
* is delayed until all tasks in the queue (such as an initial navigation or a
|
|
30069
|
+
* pending HTTP request) are completed.
|
|
30070
|
+
*
|
|
30071
|
+
* Pending tasks continue to contribute to the stableness of `ApplicationRef`
|
|
30072
|
+
* throughout the lifetime of the application.
|
|
30073
|
+
*/
|
|
30074
|
+
class PendingTasks {
|
|
30075
|
+
constructor() {
|
|
30076
|
+
this.taskId = 0;
|
|
30077
|
+
this.pendingTasks = new Set();
|
|
30078
|
+
this.hasPendingTasks = new BehaviorSubject(false);
|
|
30079
|
+
}
|
|
30080
|
+
get _hasPendingTasks() {
|
|
30081
|
+
return this.hasPendingTasks.value;
|
|
30082
|
+
}
|
|
30083
|
+
add() {
|
|
30084
|
+
if (!this._hasPendingTasks) {
|
|
30085
|
+
this.hasPendingTasks.next(true);
|
|
30086
|
+
}
|
|
30087
|
+
const taskId = this.taskId++;
|
|
30088
|
+
this.pendingTasks.add(taskId);
|
|
30089
|
+
return taskId;
|
|
30090
|
+
}
|
|
30091
|
+
remove(taskId) {
|
|
30092
|
+
this.pendingTasks.delete(taskId);
|
|
30093
|
+
if (this.pendingTasks.size === 0 && this._hasPendingTasks) {
|
|
30094
|
+
this.hasPendingTasks.next(false);
|
|
30095
|
+
}
|
|
30096
|
+
}
|
|
30097
|
+
ngOnDestroy() {
|
|
30098
|
+
this.pendingTasks.clear();
|
|
30099
|
+
if (this._hasPendingTasks) {
|
|
30100
|
+
this.hasPendingTasks.next(false);
|
|
30101
|
+
}
|
|
30102
|
+
}
|
|
30103
|
+
static { this.ɵfac = function PendingTasks_Factory(t) { return new (t || PendingTasks)(); }; }
|
|
30104
|
+
static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: PendingTasks, factory: PendingTasks.ɵfac, providedIn: 'root' }); }
|
|
30105
|
+
}
|
|
30106
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(PendingTasks, [{
|
|
30107
|
+
type: Injectable,
|
|
30108
|
+
args: [{ providedIn: 'root' }]
|
|
30109
|
+
}], null, null); })();
|
|
30110
|
+
|
|
30155
30111
|
/**
|
|
30156
30112
|
* These are the data structures that our framework injector profiler will fill with data in order
|
|
30157
30113
|
* to support DI debugging APIs.
|
|
@@ -30957,6 +30913,28 @@ function getModuleInjectorOfNodeInjector(injector) {
|
|
|
30957
30913
|
* tools are patched (window.ng).
|
|
30958
30914
|
* */
|
|
30959
30915
|
const GLOBAL_PUBLISH_EXPANDO_KEY = 'ng';
|
|
30916
|
+
const globalUtilsFunctions = {
|
|
30917
|
+
/**
|
|
30918
|
+
* Warning: functions that start with `ɵ` are considered *INTERNAL* and should not be relied upon
|
|
30919
|
+
* in application's code. The contract of those functions might be changed in any release and/or a
|
|
30920
|
+
* function can be removed completely.
|
|
30921
|
+
*/
|
|
30922
|
+
'ɵgetDependenciesFromInjectable': getDependenciesFromInjectable,
|
|
30923
|
+
'ɵgetInjectorProviders': getInjectorProviders,
|
|
30924
|
+
'ɵgetInjectorResolutionPath': getInjectorResolutionPath,
|
|
30925
|
+
'ɵgetInjectorMetadata': getInjectorMetadata,
|
|
30926
|
+
'ɵsetProfiler': setProfiler,
|
|
30927
|
+
'getDirectiveMetadata': getDirectiveMetadata$1,
|
|
30928
|
+
'getComponent': getComponent,
|
|
30929
|
+
'getContext': getContext,
|
|
30930
|
+
'getListeners': getListeners,
|
|
30931
|
+
'getOwningComponent': getOwningComponent,
|
|
30932
|
+
'getHostElement': getHostElement,
|
|
30933
|
+
'getInjector': getInjector,
|
|
30934
|
+
'getRootComponents': getRootComponents,
|
|
30935
|
+
'getDirectives': getDirectives,
|
|
30936
|
+
'applyChanges': applyChanges,
|
|
30937
|
+
};
|
|
30960
30938
|
let _published = false;
|
|
30961
30939
|
/**
|
|
30962
30940
|
* Publishes a collection of default debug tools onto`window.ng`.
|
|
@@ -30968,26 +30946,9 @@ function publishDefaultGlobalUtils$1() {
|
|
|
30968
30946
|
if (!_published) {
|
|
30969
30947
|
_published = true;
|
|
30970
30948
|
setupFrameworkInjectorProfiler();
|
|
30971
|
-
|
|
30972
|
-
|
|
30973
|
-
|
|
30974
|
-
publishGlobalUtil('ɵgetInjectorMetadata', getInjectorMetadata);
|
|
30975
|
-
/**
|
|
30976
|
-
* Warning: this function is *INTERNAL* and should not be relied upon in application's code.
|
|
30977
|
-
* The contract of the function might be changed in any release and/or the function can be
|
|
30978
|
-
* removed completely.
|
|
30979
|
-
*/
|
|
30980
|
-
publishGlobalUtil('ɵsetProfiler', setProfiler);
|
|
30981
|
-
publishGlobalUtil('getDirectiveMetadata', getDirectiveMetadata$1);
|
|
30982
|
-
publishGlobalUtil('getComponent', getComponent);
|
|
30983
|
-
publishGlobalUtil('getContext', getContext);
|
|
30984
|
-
publishGlobalUtil('getListeners', getListeners);
|
|
30985
|
-
publishGlobalUtil('getOwningComponent', getOwningComponent);
|
|
30986
|
-
publishGlobalUtil('getHostElement', getHostElement);
|
|
30987
|
-
publishGlobalUtil('getInjector', getInjector);
|
|
30988
|
-
publishGlobalUtil('getRootComponents', getRootComponents);
|
|
30989
|
-
publishGlobalUtil('getDirectives', getDirectives);
|
|
30990
|
-
publishGlobalUtil('applyChanges', applyChanges);
|
|
30949
|
+
for (const [methodName, method] of Object.entries(globalUtilsFunctions)) {
|
|
30950
|
+
publishGlobalUtil(methodName, method);
|
|
30951
|
+
}
|
|
30991
30952
|
}
|
|
30992
30953
|
}
|
|
30993
30954
|
/**
|
|
@@ -31002,13 +30963,8 @@ function publishGlobalUtil(name, fn) {
|
|
|
31002
30963
|
// for typings for AngularJS (via `goog.provide('ng....')`).
|
|
31003
30964
|
const w = _global;
|
|
31004
30965
|
ngDevMode && assertDefined(fn, 'function not defined');
|
|
31005
|
-
|
|
31006
|
-
|
|
31007
|
-
if (!container) {
|
|
31008
|
-
container = w[GLOBAL_PUBLISH_EXPANDO_KEY] = {};
|
|
31009
|
-
}
|
|
31010
|
-
container[name] = fn;
|
|
31011
|
-
}
|
|
30966
|
+
w[GLOBAL_PUBLISH_EXPANDO_KEY] ??= {};
|
|
30967
|
+
w[GLOBAL_PUBLISH_EXPANDO_KEY][name] = fn;
|
|
31012
30968
|
}
|
|
31013
30969
|
}
|
|
31014
30970
|
|
|
@@ -31695,7 +31651,7 @@ class ApplicationRef {
|
|
|
31695
31651
|
/** @internal */
|
|
31696
31652
|
this._views = [];
|
|
31697
31653
|
this.internalErrorHandler = inject(INTERNAL_APPLICATION_ERROR_HANDLER);
|
|
31698
|
-
this.
|
|
31654
|
+
this.afterRenderEffectManager = inject(AfterRenderEventManager);
|
|
31699
31655
|
/**
|
|
31700
31656
|
* Get a list of component types registered to this application.
|
|
31701
31657
|
* This list is populated even before the component is created.
|
|
@@ -31708,8 +31664,7 @@ class ApplicationRef {
|
|
|
31708
31664
|
/**
|
|
31709
31665
|
* Returns an Observable that indicates when the application is stable or unstable.
|
|
31710
31666
|
*/
|
|
31711
|
-
this.isStable = inject(
|
|
31712
|
-
.hasPendingTasks.pipe(switchMap(hasPendingTasks => hasPendingTasks ? of(false) : this.zoneIsStable), distinctUntilChanged());
|
|
31667
|
+
this.isStable = inject(PendingTasks).hasPendingTasks.pipe(map(pending => !pending));
|
|
31713
31668
|
this._injector = inject(EnvironmentInjector);
|
|
31714
31669
|
}
|
|
31715
31670
|
/**
|
|
@@ -31767,10 +31722,12 @@ class ApplicationRef {
|
|
|
31767
31722
|
const initStatus = this._injector.get(ApplicationInitStatus);
|
|
31768
31723
|
if (!initStatus.done) {
|
|
31769
31724
|
const standalone = !isComponentFactory && isStandalone(componentOrFactory);
|
|
31770
|
-
const errorMessage =
|
|
31771
|
-
|
|
31772
|
-
|
|
31773
|
-
|
|
31725
|
+
const errorMessage = (typeof ngDevMode === 'undefined' || ngDevMode) &&
|
|
31726
|
+
'Cannot bootstrap as there are still asynchronous initializers running.' +
|
|
31727
|
+
(standalone ?
|
|
31728
|
+
'' :
|
|
31729
|
+
' Bootstrap components in the `ngDoBootstrap` method of the root module.');
|
|
31730
|
+
throw new RuntimeError(405 /* RuntimeErrorCode.ASYNC_INITIALIZERS_STILL_RUNNING */, errorMessage);
|
|
31774
31731
|
}
|
|
31775
31732
|
let componentFactory;
|
|
31776
31733
|
if (isComponentFactory) {
|
|
@@ -31831,6 +31788,18 @@ class ApplicationRef {
|
|
|
31831
31788
|
this.internalErrorHandler(e);
|
|
31832
31789
|
}
|
|
31833
31790
|
finally {
|
|
31791
|
+
// Catch any `ExpressionChanged...` errors and report them to error handler like above
|
|
31792
|
+
try {
|
|
31793
|
+
const callbacksExecuted = this.afterRenderEffectManager.execute();
|
|
31794
|
+
if ((typeof ngDevMode === 'undefined' || ngDevMode) && callbacksExecuted) {
|
|
31795
|
+
for (let view of this._views) {
|
|
31796
|
+
view.checkNoChanges();
|
|
31797
|
+
}
|
|
31798
|
+
}
|
|
31799
|
+
}
|
|
31800
|
+
catch (e) {
|
|
31801
|
+
this.internalErrorHandler(e);
|
|
31802
|
+
}
|
|
31834
31803
|
this._runningTick = false;
|
|
31835
31804
|
}
|
|
31836
31805
|
}
|
|
@@ -32013,8 +31982,17 @@ function internalProvideZoneChangeDetection(ngZoneFactory) {
|
|
|
32013
31982
|
return () => ngZoneChangeDetectionScheduler.initialize();
|
|
32014
31983
|
},
|
|
32015
31984
|
},
|
|
31985
|
+
{
|
|
31986
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
31987
|
+
multi: true,
|
|
31988
|
+
useFactory: () => {
|
|
31989
|
+
const service = inject(ZoneStablePendingTask);
|
|
31990
|
+
return () => {
|
|
31991
|
+
service.initialize();
|
|
31992
|
+
};
|
|
31993
|
+
}
|
|
31994
|
+
},
|
|
32016
31995
|
{ provide: INTERNAL_APPLICATION_ERROR_HANDLER, useFactory: ngZoneApplicationErrorHandlerFactory },
|
|
32017
|
-
{ provide: ZONE_IS_STABLE_OBSERVABLE, useFactory: isStableFactory },
|
|
32018
31996
|
];
|
|
32019
31997
|
}
|
|
32020
31998
|
function ngZoneApplicationErrorHandlerFactory() {
|
|
@@ -32060,6 +32038,50 @@ function getNgZoneOptions(options) {
|
|
|
32060
32038
|
shouldCoalesceRunChangeDetection: options?.runCoalescing ?? false,
|
|
32061
32039
|
};
|
|
32062
32040
|
}
|
|
32041
|
+
class ZoneStablePendingTask {
|
|
32042
|
+
constructor() {
|
|
32043
|
+
this.subscription = new Subscription();
|
|
32044
|
+
this.initialized = false;
|
|
32045
|
+
this.zone = inject(NgZone);
|
|
32046
|
+
this.pendingTasks = inject(PendingTasks);
|
|
32047
|
+
}
|
|
32048
|
+
initialize() {
|
|
32049
|
+
if (this.initialized) {
|
|
32050
|
+
return;
|
|
32051
|
+
}
|
|
32052
|
+
this.initialized = true;
|
|
32053
|
+
let task = null;
|
|
32054
|
+
if (!this.zone.isStable && !this.zone.hasPendingMacrotasks && !this.zone.hasPendingMicrotasks) {
|
|
32055
|
+
task = this.pendingTasks.add();
|
|
32056
|
+
}
|
|
32057
|
+
this.zone.runOutsideAngular(() => {
|
|
32058
|
+
this.subscription.add(this.zone.onStable.subscribe(() => {
|
|
32059
|
+
NgZone.assertNotInAngularZone();
|
|
32060
|
+
// Check whether there are no pending macro/micro tasks in the next tick
|
|
32061
|
+
// to allow for NgZone to update the state.
|
|
32062
|
+
queueMicrotask(() => {
|
|
32063
|
+
if (task !== null && !this.zone.hasPendingMacrotasks && !this.zone.hasPendingMicrotasks) {
|
|
32064
|
+
this.pendingTasks.remove(task);
|
|
32065
|
+
task = null;
|
|
32066
|
+
}
|
|
32067
|
+
});
|
|
32068
|
+
}));
|
|
32069
|
+
});
|
|
32070
|
+
this.subscription.add(this.zone.onUnstable.subscribe(() => {
|
|
32071
|
+
NgZone.assertInAngularZone();
|
|
32072
|
+
task ??= this.pendingTasks.add();
|
|
32073
|
+
}));
|
|
32074
|
+
}
|
|
32075
|
+
ngOnDestroy() {
|
|
32076
|
+
this.subscription.unsubscribe();
|
|
32077
|
+
}
|
|
32078
|
+
static { this.ɵfac = function ZoneStablePendingTask_Factory(t) { return new (t || ZoneStablePendingTask)(); }; }
|
|
32079
|
+
static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ZoneStablePendingTask, factory: ZoneStablePendingTask.ɵfac, providedIn: 'root' }); }
|
|
32080
|
+
}
|
|
32081
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ZoneStablePendingTask, [{
|
|
32082
|
+
type: Injectable,
|
|
32083
|
+
args: [{ providedIn: 'root' }]
|
|
32084
|
+
}], null, null); })();
|
|
32063
32085
|
|
|
32064
32086
|
/**
|
|
32065
32087
|
* Work out the locale from the potential global properties.
|
|
@@ -34022,6 +34044,49 @@ function internalCreateApplication(config) {
|
|
|
34022
34044
|
}
|
|
34023
34045
|
}
|
|
34024
34046
|
|
|
34047
|
+
class ChangeDetectionSchedulerImpl {
|
|
34048
|
+
constructor() {
|
|
34049
|
+
this.appRef = inject(ApplicationRef);
|
|
34050
|
+
this.taskService = inject(PendingTasks);
|
|
34051
|
+
this.pendingRenderTaskId = null;
|
|
34052
|
+
}
|
|
34053
|
+
notify() {
|
|
34054
|
+
if (this.pendingRenderTaskId !== null)
|
|
34055
|
+
return;
|
|
34056
|
+
this.pendingRenderTaskId = this.taskService.add();
|
|
34057
|
+
setTimeout(() => {
|
|
34058
|
+
try {
|
|
34059
|
+
if (!this.appRef.destroyed) {
|
|
34060
|
+
this.appRef.tick();
|
|
34061
|
+
}
|
|
34062
|
+
}
|
|
34063
|
+
finally {
|
|
34064
|
+
// If this is the last task, the service will synchronously emit a stable notification. If
|
|
34065
|
+
// there is a subscriber that then acts in a way that tries to notify the scheduler again,
|
|
34066
|
+
// we need to be able to respond to schedule a new change detection. Therefore, we should
|
|
34067
|
+
// clear the task ID before removing it from the pending tasks (or the tasks service should
|
|
34068
|
+
// not synchronously emit stable, similar to how Zone stableness only happens if it's still
|
|
34069
|
+
// stable after a microtask).
|
|
34070
|
+
const taskId = this.pendingRenderTaskId;
|
|
34071
|
+
this.pendingRenderTaskId = null;
|
|
34072
|
+
this.taskService.remove(taskId);
|
|
34073
|
+
}
|
|
34074
|
+
});
|
|
34075
|
+
}
|
|
34076
|
+
static { this.ɵfac = function ChangeDetectionSchedulerImpl_Factory(t) { return new (t || ChangeDetectionSchedulerImpl)(); }; }
|
|
34077
|
+
static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ChangeDetectionSchedulerImpl, factory: ChangeDetectionSchedulerImpl.ɵfac, providedIn: 'root' }); }
|
|
34078
|
+
}
|
|
34079
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ChangeDetectionSchedulerImpl, [{
|
|
34080
|
+
type: Injectable,
|
|
34081
|
+
args: [{ providedIn: 'root' }]
|
|
34082
|
+
}], null, null); })();
|
|
34083
|
+
function provideZonelessChangeDetection() {
|
|
34084
|
+
return makeEnvironmentProviders([
|
|
34085
|
+
{ provide: ChangeDetectionScheduler, useExisting: ChangeDetectionSchedulerImpl },
|
|
34086
|
+
{ provide: NgZone, useClass: NoopNgZone },
|
|
34087
|
+
]);
|
|
34088
|
+
}
|
|
34089
|
+
|
|
34025
34090
|
/**
|
|
34026
34091
|
* Retrieves all defer blocks in a given LView.
|
|
34027
34092
|
*
|
|
@@ -35074,5 +35139,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
35074
35139
|
* Generated bundle index. Do not edit.
|
|
35075
35140
|
*/
|
|
35076
35141
|
|
|
35077
|
-
export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, 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, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, 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, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterNextRender, afterRender, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, numberAttribute, platformCore, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderEventManager as ɵAfterRenderEventManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, InitialRenderPendingTasks as ɵInitialRenderPendingTasks, 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, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZoneAwareQueueingScheduler as ɵZoneAwareQueueingScheduler, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalAfterNextRender as ɵinternalAfterNextRender, internalCreateApplication as ɵinternalCreateApplication, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, publishDefaultGlobalUtils$1 as ɵpublishDefaultGlobalUtils, publishGlobalUtil as ɵpublishGlobalUtil, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵ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, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵresetView, ɵɵ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, ɵɵvalidateIframeAttribute, ɵɵviewQuery };
|
|
35142
|
+
export { ANIMATION_MODULE_TYPE, APP_BOOTSTRAP_LISTENER, APP_ID, APP_INITIALIZER, AfterRenderPhase, ApplicationInitStatus, ApplicationModule, ApplicationRef, Attribute, COMPILER_OPTIONS, CSP_NONCE, 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, DestroyRef, Directive, ENVIRONMENT_INITIALIZER, ElementRef, EmbeddedViewRef, EnvironmentInjector, 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, Renderer2, RendererFactory2, RendererStyleFlags2, Sanitizer, SecurityContext, Self, SimpleChange, SkipSelf, TRANSLATIONS, TRANSLATIONS_FORMAT, TemplateRef, Testability, TestabilityRegistry, TransferState, Type, VERSION, Version, ViewChild, ViewChildren, ViewContainerRef, ViewEncapsulation$1 as ViewEncapsulation, ViewRef, afterNextRender, afterRender, asNativeElements, assertInInjectionContext, assertNotInReactiveContext, assertPlatform, booleanAttribute, computed, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, numberAttribute, platformCore, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderEventManager as ɵAfterRenderEventManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ComponentFactory$1 as ɵComponentFactory, Console as ɵConsole, DEFAULT_LOCALE_ID as ɵDEFAULT_LOCALE_ID, DEFER_BLOCK_CONFIG as ɵDEFER_BLOCK_CONFIG, DEFER_BLOCK_DEPENDENCY_INTERCEPTOR as ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR, DeferBlockBehavior as ɵDeferBlockBehavior, DeferBlockState as ɵDeferBlockState, EffectScheduler as ɵEffectScheduler, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, 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, PendingTasks as ɵPendingTasks, ReflectionCapabilities as ɵReflectionCapabilities, ComponentFactory as ɵRender3ComponentFactory, ComponentRef as ɵRender3ComponentRef, NgModuleRef as ɵRender3NgModuleRef, RuntimeError as ɵRuntimeError, SSR_CONTENT_INTEGRITY_MARKER as ɵSSR_CONTENT_INTEGRITY_MARKER, TESTABILITY as ɵTESTABILITY, TESTABILITY_GETTER as ɵTESTABILITY_GETTER, USE_RUNTIME_DEPS_TRACKER_FOR_JIT as ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT, ViewRef$1 as ɵViewRef, XSS_SECURITY_URL as ɵXSS_SECURITY_URL, ZoneAwareQueueingScheduler as ɵZoneAwareQueueingScheduler, _sanitizeHtml as ɵ_sanitizeHtml, _sanitizeUrl as ɵ_sanitizeUrl, allowSanitizationBypassAndThrow as ɵallowSanitizationBypassAndThrow, annotateForHydration as ɵannotateForHydration, bypassSanitizationTrustHtml as ɵbypassSanitizationTrustHtml, bypassSanitizationTrustResourceUrl as ɵbypassSanitizationTrustResourceUrl, bypassSanitizationTrustScript as ɵbypassSanitizationTrustScript, bypassSanitizationTrustStyle as ɵbypassSanitizationTrustStyle, bypassSanitizationTrustUrl as ɵbypassSanitizationTrustUrl, clearResolutionOfComponentResourcesQueue as ɵclearResolutionOfComponentResourcesQueue, compileComponent as ɵcompileComponent, compileDirective as ɵcompileDirective, compileNgModule as ɵcompileNgModule, compileNgModuleDefs as ɵcompileNgModuleDefs, compileNgModuleFactory as ɵcompileNgModuleFactory, compilePipe as ɵcompilePipe, convertToBitFlags as ɵconvertToBitFlags, createInjector as ɵcreateInjector, defaultIterableDiffers as ɵdefaultIterableDiffers, defaultKeyValueDiffers as ɵdefaultKeyValueDiffers, depsTracker as ɵdepsTracker, devModeEqual as ɵdevModeEqual, findLocaleData as ɵfindLocaleData, flushModuleScopingQueueAsMuchAsPossible as ɵflushModuleScopingQueueAsMuchAsPossible, formatRuntimeError as ɵformatRuntimeError, generateStandaloneInDeclarationsError as ɵgenerateStandaloneInDeclarationsError, getAsyncClassMetadataFn as ɵgetAsyncClassMetadataFn, getDebugNode as ɵgetDebugNode, getDeferBlocks as ɵgetDeferBlocks, getDirectives as ɵgetDirectives, getEnsureDirtyViewsAreAlwaysReachable as ɵgetEnsureDirtyViewsAreAlwaysReachable, getHostElement as ɵgetHostElement, getInjectableDef as ɵgetInjectableDef, getLContext as ɵgetLContext, getLocaleCurrencyCode as ɵgetLocaleCurrencyCode, getLocalePluralCase as ɵgetLocalePluralCase, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalAfterNextRender as ɵinternalAfterNextRender, internalCreateApplication as ɵinternalCreateApplication, isBoundToModule as ɵisBoundToModule, isComponentDefPendingResolution as ɵisComponentDefPendingResolution, isEnvironmentProviders as ɵisEnvironmentProviders, isInjectable as ɵisInjectable, isNgModule as ɵisNgModule, isPromise as ɵisPromise, isSubscribable as ɵisSubscribable, noSideEffects as ɵnoSideEffects, patchComponentDefWithScope as ɵpatchComponentDefWithScope, performanceMarkFeature as ɵperformanceMarkFeature, provideZonelessChangeDetection as ɵprovideZonelessChangeDetection, registerLocaleData as ɵregisterLocaleData, renderDeferBlockState as ɵrenderDeferBlockState, resetCompiledComponents as ɵresetCompiledComponents, resetJitOptions as ɵresetJitOptions, resolveComponentResources as ɵresolveComponentResources, restoreComponentResolutionQueue as ɵrestoreComponentResolutionQueue, setAllowDuplicateNgModuleIdsForTest as ɵsetAllowDuplicateNgModuleIdsForTest, setAlternateWeakRefImpl as ɵsetAlternateWeakRefImpl, ɵsetClassDebugInfo, setClassMetadata as ɵsetClassMetadata, setClassMetadataAsync as ɵsetClassMetadataAsync, setCurrentInjector as ɵsetCurrentInjector, setDocument as ɵsetDocument, setEnsureDirtyViewsAreAlwaysReachable as ɵsetEnsureDirtyViewsAreAlwaysReachable, setInjectorProfilerContext as ɵsetInjectorProfilerContext, setLocaleId as ɵsetLocaleId, ɵsetUnknownElementStrictMode, ɵsetUnknownPropertyStrictMode, store as ɵstore, stringify as ɵstringify, transitiveScopesFor as ɵtransitiveScopesFor, triggerResourceLoading as ɵtriggerResourceLoading, truncateMiddle as ɵtruncateMiddle, unregisterAllLocaleData as ɵunregisterLocaleData, unwrapSafeValue as ɵunwrapSafeValue, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, ɵɵCopyDefinitionFeature, FactoryTarget as ɵɵFactoryTarget, ɵɵHostDirectivesFeature, ɵɵInheritDefinitionFeature, ɵɵInputTransformsFeature, ɵɵNgOnChangesFeature, ɵɵProvidersFeature, ɵɵStandaloneFeature, ɵɵadvance, ɵɵattribute, ɵɵattributeInterpolate1, ɵɵattributeInterpolate2, ɵɵattributeInterpolate3, ɵɵattributeInterpolate4, ɵɵattributeInterpolate5, ɵɵattributeInterpolate6, ɵɵattributeInterpolate7, ɵɵattributeInterpolate8, ɵɵattributeInterpolateV, ɵɵclassMap, ɵɵclassMapInterpolate1, ɵɵclassMapInterpolate2, ɵɵclassMapInterpolate3, ɵɵclassMapInterpolate4, ɵɵclassMapInterpolate5, ɵɵclassMapInterpolate6, ɵɵclassMapInterpolate7, ɵɵclassMapInterpolate8, ɵɵclassMapInterpolateV, ɵɵclassProp, ɵɵcomponentInstance, ɵɵconditional, ɵɵcontentQuery, ɵɵdefer, ɵɵdeferEnableTimerScheduling, ɵɵdeferOnHover, ɵɵdeferOnIdle, ɵɵdeferOnImmediate, ɵɵdeferOnInteraction, ɵɵdeferOnTimer, ɵɵdeferOnViewport, ɵɵdeferPrefetchOnHover, ɵɵdeferPrefetchOnIdle, ɵɵdeferPrefetchOnImmediate, ɵɵdeferPrefetchOnInteraction, ɵɵdeferPrefetchOnTimer, ɵɵdeferPrefetchOnViewport, ɵɵdeferPrefetchWhen, ɵɵdeferWhen, ɵɵdefineComponent, ɵɵdefineDirective, ɵɵdefineInjectable, ɵɵdefineInjector, ɵɵdefineNgModule, ɵɵdefinePipe, ɵɵdirectiveInject, ɵɵdisableBindings, ɵɵelement, ɵɵelementContainer, ɵɵelementContainerEnd, ɵɵelementContainerStart, ɵɵelementEnd, ɵɵelementStart, ɵɵenableBindings, ɵɵgetComponentDepsFactory, ɵɵ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, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵresetView, ɵɵ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, ɵɵvalidateIframeAttribute, ɵɵviewQuery };
|
|
35078
35143
|
//# sourceMappingURL=core.mjs.map
|