@angular/core 18.1.0-next.1 → 18.1.0-next.3
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/rxjs-interop/src/to_signal.mjs +7 -3
- package/esm2022/src/authoring/model/model_signal.mjs +2 -3
- package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +2 -2
- package/esm2022/src/core.mjs +1 -1
- package/esm2022/src/core_render3_private_export.mjs +2 -2
- package/esm2022/src/defer/instructions.mjs +2 -10
- package/esm2022/src/errors.mjs +1 -1
- package/esm2022/src/event_emitter.mjs +20 -11
- package/esm2022/src/hydration/event_replay.mjs +32 -14
- package/esm2022/src/linker/component_factory.mjs +1 -1
- package/esm2022/src/pending_tasks.mjs +15 -20
- package/esm2022/src/render3/after_render_hooks.mjs +67 -132
- package/esm2022/src/render3/chained_injector.mjs +34 -0
- package/esm2022/src/render3/component.mjs +1 -1
- package/esm2022/src/render3/component_ref.mjs +23 -35
- package/esm2022/src/render3/index.mjs +2 -2
- package/esm2022/src/render3/instructions/all.mjs +2 -1
- package/esm2022/src/render3/instructions/change_detection.mjs +27 -24
- package/esm2022/src/render3/instructions/let_declaration.mjs +39 -0
- package/esm2022/src/render3/jit/environment.mjs +4 -1
- package/esm2022/src/render3/reactive_lview_consumer.mjs +56 -3
- package/esm2022/src/render3/util/injector_discovery_utils.mjs +14 -5
- package/esm2022/src/render3/util/injector_utils.mjs +10 -1
- package/esm2022/src/version.mjs +1 -1
- package/esm2022/testing/src/logger.mjs +3 -3
- package/fesm2022/core.mjs +500 -424
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs +7 -3
- package/fesm2022/rxjs-interop.mjs.map +1 -1
- package/fesm2022/testing.mjs +1 -1
- package/index.d.ts +246 -32
- package/package.json +1 -1
- package/primitives/event-dispatch/index.d.ts +1 -1
- package/primitives/signals/index.d.ts +1 -1
- package/rxjs-interop/index.d.ts +13 -6
- package/schematics/migrations/after-render-phase/bundle.js +623 -0
- package/schematics/migrations/after-render-phase/bundle.js.map +7 -0
- package/schematics/migrations/invalid-two-way-bindings/bundle.js +265 -61
- package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +4 -4
- package/schematics/migrations.json +5 -0
- package/schematics/ng-generate/control-flow-migration/bundle.js +272 -61
- package/schematics/ng-generate/control-flow-migration/bundle.js.map +4 -4
- package/schematics/ng-generate/standalone-migration/bundle.js +320 -727
- package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
- package/testing/index.d.ts +1 -1
package/fesm2022/core.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v18.1.0-next.
|
|
2
|
+
* @license Angular v18.1.0-next.3
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { SIGNAL_NODE as SIGNAL_NODE$1, signalSetFn as signalSetFn$1, producerAccessed as producerAccessed$1, SIGNAL as SIGNAL$1, getActiveConsumer as getActiveConsumer$1, setActiveConsumer as setActiveConsumer$1, consumerDestroy as consumerDestroy$1, REACTIVE_NODE as REACTIVE_NODE$1, consumerBeforeComputation as consumerBeforeComputation$1, consumerAfterComputation as consumerAfterComputation$1, consumerPollProducersForChange as consumerPollProducersForChange$1, createSignal as createSignal$1, signalUpdateFn as signalUpdateFn$1, createComputed as createComputed$1, setThrowInvalidWriteToSignalError as setThrowInvalidWriteToSignalError$1, createWatch as createWatch$1 } from '@angular/core/primitives/signals';
|
|
8
|
-
import { Subject, Subscription
|
|
8
|
+
import { BehaviorSubject, Subject, Subscription } from 'rxjs';
|
|
9
9
|
import { map, first } from 'rxjs/operators';
|
|
10
10
|
import * as Attributes from '@angular/core/primitives/event-dispatch';
|
|
11
11
|
import { EventContract, EventContractContainer, EventDispatcher, registerDispatcher, isSupportedEvent, isCaptureEvent } from '@angular/core/primitives/event-dispatch';
|
|
@@ -5403,6 +5403,50 @@ function assertPureTNodeType(type) {
|
|
|
5403
5403
|
}
|
|
5404
5404
|
}
|
|
5405
5405
|
|
|
5406
|
+
// This default value is when checking the hierarchy for a token.
|
|
5407
|
+
//
|
|
5408
|
+
// It means both:
|
|
5409
|
+
// - the token is not provided by the current injector,
|
|
5410
|
+
// - only the element injectors should be checked (ie do not check module injectors
|
|
5411
|
+
//
|
|
5412
|
+
// mod1
|
|
5413
|
+
// /
|
|
5414
|
+
// el1 mod2
|
|
5415
|
+
// \ /
|
|
5416
|
+
// el2
|
|
5417
|
+
//
|
|
5418
|
+
// When requesting el2.injector.get(token), we should check in the following order and return the
|
|
5419
|
+
// first found value:
|
|
5420
|
+
// - el2.injector.get(token, default)
|
|
5421
|
+
// - el1.injector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) -> do not check the module
|
|
5422
|
+
// - mod2.injector.get(token, default)
|
|
5423
|
+
const NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR = {};
|
|
5424
|
+
|
|
5425
|
+
/**
|
|
5426
|
+
* Injector that looks up a value using a specific injector, before falling back to the module
|
|
5427
|
+
* injector. Used primarily when creating components or embedded views dynamically.
|
|
5428
|
+
*/
|
|
5429
|
+
class ChainedInjector {
|
|
5430
|
+
constructor(injector, parentInjector) {
|
|
5431
|
+
this.injector = injector;
|
|
5432
|
+
this.parentInjector = parentInjector;
|
|
5433
|
+
}
|
|
5434
|
+
get(token, notFoundValue, flags) {
|
|
5435
|
+
flags = convertToBitFlags(flags);
|
|
5436
|
+
const value = this.injector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, flags);
|
|
5437
|
+
if (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR ||
|
|
5438
|
+
notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) {
|
|
5439
|
+
// Return the value from the root element injector when
|
|
5440
|
+
// - it provides it
|
|
5441
|
+
// (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)
|
|
5442
|
+
// - the module injector should not be checked
|
|
5443
|
+
// (notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)
|
|
5444
|
+
return value;
|
|
5445
|
+
}
|
|
5446
|
+
return this.parentInjector.get(token, notFoundValue, flags);
|
|
5447
|
+
}
|
|
5448
|
+
}
|
|
5449
|
+
|
|
5406
5450
|
/// Parent Injector Utils ///////////////////////////////////////////////////////////////
|
|
5407
5451
|
function hasParentInjector(parentLocation) {
|
|
5408
5452
|
return parentLocation !== NO_PARENT_INJECTOR;
|
|
@@ -5441,6 +5485,14 @@ function getParentInjectorView(location, startView) {
|
|
|
5441
5485
|
}
|
|
5442
5486
|
return parentView;
|
|
5443
5487
|
}
|
|
5488
|
+
/**
|
|
5489
|
+
* Detects whether an injector is an instance of a `ChainedInjector`,
|
|
5490
|
+
* created based on the `OutletInjector`.
|
|
5491
|
+
*/
|
|
5492
|
+
function isRouterOutletInjector(currentInjector) {
|
|
5493
|
+
return (currentInjector instanceof ChainedInjector &&
|
|
5494
|
+
typeof currentInjector.injector.__ngOutletInjector === 'function');
|
|
5495
|
+
}
|
|
5444
5496
|
|
|
5445
5497
|
/**
|
|
5446
5498
|
* Defines if the call to `inject` should include `viewProviders` in its resolution.
|
|
@@ -6917,15 +6969,102 @@ function unwrapElementRef(value) {
|
|
|
6917
6969
|
return value instanceof ElementRef ? value.nativeElement : value;
|
|
6918
6970
|
}
|
|
6919
6971
|
|
|
6972
|
+
/**
|
|
6973
|
+
* Internal implementation of the pending tasks service.
|
|
6974
|
+
*/
|
|
6975
|
+
class PendingTasks {
|
|
6976
|
+
constructor() {
|
|
6977
|
+
this.taskId = 0;
|
|
6978
|
+
this.pendingTasks = new Set();
|
|
6979
|
+
this.hasPendingTasks = new BehaviorSubject(false);
|
|
6980
|
+
}
|
|
6981
|
+
get _hasPendingTasks() {
|
|
6982
|
+
return this.hasPendingTasks.value;
|
|
6983
|
+
}
|
|
6984
|
+
add() {
|
|
6985
|
+
if (!this._hasPendingTasks) {
|
|
6986
|
+
this.hasPendingTasks.next(true);
|
|
6987
|
+
}
|
|
6988
|
+
const taskId = this.taskId++;
|
|
6989
|
+
this.pendingTasks.add(taskId);
|
|
6990
|
+
return taskId;
|
|
6991
|
+
}
|
|
6992
|
+
remove(taskId) {
|
|
6993
|
+
this.pendingTasks.delete(taskId);
|
|
6994
|
+
if (this.pendingTasks.size === 0 && this._hasPendingTasks) {
|
|
6995
|
+
this.hasPendingTasks.next(false);
|
|
6996
|
+
}
|
|
6997
|
+
}
|
|
6998
|
+
ngOnDestroy() {
|
|
6999
|
+
this.pendingTasks.clear();
|
|
7000
|
+
if (this._hasPendingTasks) {
|
|
7001
|
+
this.hasPendingTasks.next(false);
|
|
7002
|
+
}
|
|
7003
|
+
}
|
|
7004
|
+
/** @nocollapse */
|
|
7005
|
+
static { this.ɵprov = ɵɵdefineInjectable({
|
|
7006
|
+
token: PendingTasks,
|
|
7007
|
+
providedIn: 'root',
|
|
7008
|
+
factory: () => new PendingTasks(),
|
|
7009
|
+
}); }
|
|
7010
|
+
}
|
|
7011
|
+
/**
|
|
7012
|
+
* Experimental service that keeps track of pending tasks contributing to the stableness of Angular
|
|
7013
|
+
* application. While several existing Angular services (ex.: `HttpClient`) will internally manage
|
|
7014
|
+
* tasks influencing stability, this API gives control over stability to library and application
|
|
7015
|
+
* developers for specific cases not covered by Angular internals.
|
|
7016
|
+
*
|
|
7017
|
+
* The concept of stability comes into play in several important scenarios:
|
|
7018
|
+
* - SSR process needs to wait for the application stability before serializing and sending rendered
|
|
7019
|
+
* HTML;
|
|
7020
|
+
* - tests might want to delay assertions until the application becomes stable;
|
|
7021
|
+
*
|
|
7022
|
+
* @usageNotes
|
|
7023
|
+
* ```typescript
|
|
7024
|
+
* const pendingTasks = inject(ExperimentalPendingTasks);
|
|
7025
|
+
* const taskCleanup = pendingTasks.add();
|
|
7026
|
+
* // do work that should block application's stability and then:
|
|
7027
|
+
* taskCleanup();
|
|
7028
|
+
* ```
|
|
7029
|
+
*
|
|
7030
|
+
* This API is experimental. Neither the shape, nor the underlying behavior is stable and can change
|
|
7031
|
+
* in patch versions. We will iterate on the exact API based on the feedback and our understanding
|
|
7032
|
+
* of the problem and solution space.
|
|
7033
|
+
*
|
|
7034
|
+
* @publicApi
|
|
7035
|
+
* @experimental
|
|
7036
|
+
*/
|
|
7037
|
+
class ExperimentalPendingTasks {
|
|
7038
|
+
constructor() {
|
|
7039
|
+
this.internalPendingTasks = inject(PendingTasks);
|
|
7040
|
+
}
|
|
7041
|
+
/**
|
|
7042
|
+
* Adds a new task that should block application's stability.
|
|
7043
|
+
* @returns A cleanup function that removes a task when called.
|
|
7044
|
+
*/
|
|
7045
|
+
add() {
|
|
7046
|
+
const taskId = this.internalPendingTasks.add();
|
|
7047
|
+
return () => this.internalPendingTasks.remove(taskId);
|
|
7048
|
+
}
|
|
7049
|
+
/** @nocollapse */
|
|
7050
|
+
static { this.ɵprov = ɵɵdefineInjectable({
|
|
7051
|
+
token: ExperimentalPendingTasks,
|
|
7052
|
+
providedIn: 'root',
|
|
7053
|
+
factory: () => new ExperimentalPendingTasks(),
|
|
7054
|
+
}); }
|
|
7055
|
+
}
|
|
7056
|
+
|
|
6920
7057
|
class EventEmitter_ extends Subject {
|
|
6921
7058
|
constructor(isAsync = false) {
|
|
6922
7059
|
super();
|
|
6923
7060
|
this.destroyRef = undefined;
|
|
7061
|
+
this.pendingTasks = undefined;
|
|
6924
7062
|
this.__isAsync = isAsync;
|
|
6925
|
-
// Attempt to retrieve a `DestroyRef` optionally.
|
|
6926
|
-
// For backwards compatibility reasons, this cannot be required
|
|
7063
|
+
// Attempt to retrieve a `DestroyRef` and `PendingTasks` optionally.
|
|
7064
|
+
// For backwards compatibility reasons, this cannot be required.
|
|
6927
7065
|
if (isInInjectionContext()) {
|
|
6928
7066
|
this.destroyRef = inject(DestroyRef, { optional: true }) ?? undefined;
|
|
7067
|
+
this.pendingTasks = inject(PendingTasks, { optional: true }) ?? undefined;
|
|
6929
7068
|
}
|
|
6930
7069
|
}
|
|
6931
7070
|
emit(value) {
|
|
@@ -6948,12 +7087,12 @@ class EventEmitter_ extends Subject {
|
|
|
6948
7087
|
completeFn = observer.complete?.bind(observer);
|
|
6949
7088
|
}
|
|
6950
7089
|
if (this.__isAsync) {
|
|
6951
|
-
errorFn =
|
|
7090
|
+
errorFn = this.wrapInTimeout(errorFn);
|
|
6952
7091
|
if (nextFn) {
|
|
6953
|
-
nextFn =
|
|
7092
|
+
nextFn = this.wrapInTimeout(nextFn);
|
|
6954
7093
|
}
|
|
6955
7094
|
if (completeFn) {
|
|
6956
|
-
completeFn =
|
|
7095
|
+
completeFn = this.wrapInTimeout(completeFn);
|
|
6957
7096
|
}
|
|
6958
7097
|
}
|
|
6959
7098
|
const sink = super.subscribe({ next: nextFn, error: errorFn, complete: completeFn });
|
|
@@ -6962,11 +7101,17 @@ class EventEmitter_ extends Subject {
|
|
|
6962
7101
|
}
|
|
6963
7102
|
return sink;
|
|
6964
7103
|
}
|
|
6965
|
-
|
|
6966
|
-
|
|
6967
|
-
|
|
6968
|
-
|
|
6969
|
-
|
|
7104
|
+
wrapInTimeout(fn) {
|
|
7105
|
+
return (value) => {
|
|
7106
|
+
const taskId = this.pendingTasks?.add();
|
|
7107
|
+
setTimeout(() => {
|
|
7108
|
+
fn(value);
|
|
7109
|
+
if (taskId !== undefined) {
|
|
7110
|
+
this.pendingTasks?.remove(taskId);
|
|
7111
|
+
}
|
|
7112
|
+
});
|
|
7113
|
+
};
|
|
7114
|
+
}
|
|
6970
7115
|
}
|
|
6971
7116
|
/**
|
|
6972
7117
|
* @publicApi
|
|
@@ -12895,6 +13040,59 @@ const REACTIVE_LVIEW_CONSUMER_NODE = {
|
|
|
12895
13040
|
this.lView[REACTIVE_TEMPLATE_CONSUMER] = this;
|
|
12896
13041
|
},
|
|
12897
13042
|
};
|
|
13043
|
+
/**
|
|
13044
|
+
* Creates a temporary consumer for use with `LView`s that should not have consumers.
|
|
13045
|
+
* If the LView already has a consumer, returns the existing one instead.
|
|
13046
|
+
*
|
|
13047
|
+
* This is necessary because some APIs may cause change detection directly on an LView
|
|
13048
|
+
* that we do not want to have a consumer (Embedded views today). As a result, there
|
|
13049
|
+
* would be no active consumer from running change detection on its host component
|
|
13050
|
+
* and any signals in the LView template would be untracked. Instead, we create
|
|
13051
|
+
* this temporary consumer that marks the first parent that _should_ have a consumer
|
|
13052
|
+
* for refresh. Once change detection runs as part of that refresh, we throw away
|
|
13053
|
+
* this consumer because its signals will then be tracked by the parent's consumer.
|
|
13054
|
+
*/
|
|
13055
|
+
function getOrCreateTemporaryConsumer(lView) {
|
|
13056
|
+
const consumer = lView[REACTIVE_TEMPLATE_CONSUMER] ?? Object.create(TEMPORARY_CONSUMER_NODE);
|
|
13057
|
+
consumer.lView = lView;
|
|
13058
|
+
return consumer;
|
|
13059
|
+
}
|
|
13060
|
+
const TEMPORARY_CONSUMER_NODE = {
|
|
13061
|
+
...REACTIVE_NODE$1,
|
|
13062
|
+
consumerIsAlwaysLive: true,
|
|
13063
|
+
consumerMarkedDirty: (node) => {
|
|
13064
|
+
let parent = getLViewParent(node.lView);
|
|
13065
|
+
while (parent && !viewShouldHaveReactiveConsumer(parent[TVIEW])) {
|
|
13066
|
+
parent = getLViewParent(parent);
|
|
13067
|
+
}
|
|
13068
|
+
if (!parent) {
|
|
13069
|
+
// If we can't find an appropriate parent that should have a consumer, we
|
|
13070
|
+
// don't have a way of appropriately refreshing this LView as part of application synchronization.
|
|
13071
|
+
return;
|
|
13072
|
+
}
|
|
13073
|
+
markViewForRefresh(parent);
|
|
13074
|
+
},
|
|
13075
|
+
consumerOnSignalRead() {
|
|
13076
|
+
this.lView[REACTIVE_TEMPLATE_CONSUMER] = this;
|
|
13077
|
+
},
|
|
13078
|
+
};
|
|
13079
|
+
/**
|
|
13080
|
+
* Indicates if the view should get its own reactive consumer node.
|
|
13081
|
+
*
|
|
13082
|
+
* In the current design, all embedded views share a consumer with the component view. This allows
|
|
13083
|
+
* us to refresh at the component level rather than at a per-view level. In addition, root views get
|
|
13084
|
+
* their own reactive node because root component will have a host view that executes the
|
|
13085
|
+
* component's host bindings. This needs to be tracked in a consumer as well.
|
|
13086
|
+
*
|
|
13087
|
+
* To get a more granular change detection than per-component, all we would just need to update the
|
|
13088
|
+
* condition here so that a given view gets a reactive consumer which can become dirty independently
|
|
13089
|
+
* from its parent component. For example embedded views for signal components could be created with
|
|
13090
|
+
* a new type "SignalEmbeddedView" and the condition here wouldn't even need updating in order to
|
|
13091
|
+
* get granular per-view change detection for signal components.
|
|
13092
|
+
*/
|
|
13093
|
+
function viewShouldHaveReactiveConsumer(tView) {
|
|
13094
|
+
return tView.type !== 2 /* TViewType.Embedded */;
|
|
13095
|
+
}
|
|
12898
13096
|
|
|
12899
13097
|
/**
|
|
12900
13098
|
* The maximum number of times the change detection traversal will rerun before throwing an error.
|
|
@@ -12993,11 +13191,29 @@ function refreshView(tView, lView, templateFn, context) {
|
|
|
12993
13191
|
// - We might already be in a reactive context if this is an embedded view of the host.
|
|
12994
13192
|
// - We might be descending into a view that needs a consumer.
|
|
12995
13193
|
enterView(lView);
|
|
13194
|
+
let returnConsumerToPool = true;
|
|
12996
13195
|
let prevConsumer = null;
|
|
12997
13196
|
let currentConsumer = null;
|
|
12998
|
-
if (!isInCheckNoChangesPass
|
|
12999
|
-
|
|
13000
|
-
|
|
13197
|
+
if (!isInCheckNoChangesPass) {
|
|
13198
|
+
if (viewShouldHaveReactiveConsumer(tView)) {
|
|
13199
|
+
currentConsumer = getOrBorrowReactiveLViewConsumer(lView);
|
|
13200
|
+
prevConsumer = consumerBeforeComputation$1(currentConsumer);
|
|
13201
|
+
}
|
|
13202
|
+
else if (getActiveConsumer$1() === null) {
|
|
13203
|
+
// If the current view should not have a reactive consumer but we don't have an active consumer,
|
|
13204
|
+
// we still need to create a temporary consumer to track any signal reads in this template.
|
|
13205
|
+
// This is a rare case that can happen with `viewContainerRef.createEmbeddedView(...).detectChanges()`.
|
|
13206
|
+
// This temporary consumer marks the first parent that _should_ have a consumer for refresh.
|
|
13207
|
+
// Once that refresh happens, the signals will be tracked in the parent consumer and we can destroy
|
|
13208
|
+
// the temporary one.
|
|
13209
|
+
returnConsumerToPool = false;
|
|
13210
|
+
currentConsumer = getOrCreateTemporaryConsumer(lView);
|
|
13211
|
+
prevConsumer = consumerBeforeComputation$1(currentConsumer);
|
|
13212
|
+
}
|
|
13213
|
+
else if (lView[REACTIVE_TEMPLATE_CONSUMER]) {
|
|
13214
|
+
consumerDestroy$1(lView[REACTIVE_TEMPLATE_CONSUMER]);
|
|
13215
|
+
lView[REACTIVE_TEMPLATE_CONSUMER] = null;
|
|
13216
|
+
}
|
|
13001
13217
|
}
|
|
13002
13218
|
try {
|
|
13003
13219
|
resetPreOrderHookFlags(lView);
|
|
@@ -13123,28 +13339,13 @@ function refreshView(tView, lView, templateFn, context) {
|
|
|
13123
13339
|
finally {
|
|
13124
13340
|
if (currentConsumer !== null) {
|
|
13125
13341
|
consumerAfterComputation$1(currentConsumer, prevConsumer);
|
|
13126
|
-
|
|
13342
|
+
if (returnConsumerToPool) {
|
|
13343
|
+
maybeReturnReactiveLViewConsumer(currentConsumer);
|
|
13344
|
+
}
|
|
13127
13345
|
}
|
|
13128
13346
|
leaveView();
|
|
13129
13347
|
}
|
|
13130
13348
|
}
|
|
13131
|
-
/**
|
|
13132
|
-
* Indicates if the view should get its own reactive consumer node.
|
|
13133
|
-
*
|
|
13134
|
-
* In the current design, all embedded views share a consumer with the component view. This allows
|
|
13135
|
-
* us to refresh at the component level rather than at a per-view level. In addition, root views get
|
|
13136
|
-
* their own reactive node because root component will have a host view that executes the
|
|
13137
|
-
* component's host bindings. This needs to be tracked in a consumer as well.
|
|
13138
|
-
*
|
|
13139
|
-
* To get a more granular change detection than per-component, all we would just need to update the
|
|
13140
|
-
* condition here so that a given view gets a reactive consumer which can become dirty independently
|
|
13141
|
-
* from its parent component. For example embedded views for signal components could be created with
|
|
13142
|
-
* a new type "SignalEmbeddedView" and the condition here wouldn't even need updating in order to
|
|
13143
|
-
* get granular per-view change detection for signal components.
|
|
13144
|
-
*/
|
|
13145
|
-
function viewShouldHaveReactiveConsumer(tView) {
|
|
13146
|
-
return tView.type !== 2 /* TViewType.Embedded */;
|
|
13147
|
-
}
|
|
13148
13349
|
/**
|
|
13149
13350
|
* Goes over embedded views (ones created through ViewContainerRef APIs) and refreshes
|
|
13150
13351
|
* them by executing an associated template function.
|
|
@@ -15302,25 +15503,6 @@ class Sanitizer {
|
|
|
15302
15503
|
}); }
|
|
15303
15504
|
}
|
|
15304
15505
|
|
|
15305
|
-
// This default value is when checking the hierarchy for a token.
|
|
15306
|
-
//
|
|
15307
|
-
// It means both:
|
|
15308
|
-
// - the token is not provided by the current injector,
|
|
15309
|
-
// - only the element injectors should be checked (ie do not check module injectors
|
|
15310
|
-
//
|
|
15311
|
-
// mod1
|
|
15312
|
-
// /
|
|
15313
|
-
// el1 mod2
|
|
15314
|
-
// \ /
|
|
15315
|
-
// el2
|
|
15316
|
-
//
|
|
15317
|
-
// When requesting el2.injector.get(token), we should check in the following order and return the
|
|
15318
|
-
// first found value:
|
|
15319
|
-
// - el2.injector.get(token, default)
|
|
15320
|
-
// - el1.injector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) -> do not check the module
|
|
15321
|
-
// - mod2.injector.get(token, default)
|
|
15322
|
-
const NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR = {};
|
|
15323
|
-
|
|
15324
15506
|
/**
|
|
15325
15507
|
* Asserts that the current stack frame is not within a reactive context. Useful
|
|
15326
15508
|
* to disallow certain code from running inside a reactive context (see {@link toSignal}).
|
|
@@ -15881,15 +16063,17 @@ function getNgZone(ngZoneToUse = 'zone.js', options) {
|
|
|
15881
16063
|
* manual DOM access, ensuring the best experience for the end users of your application
|
|
15882
16064
|
* or library.
|
|
15883
16065
|
*
|
|
15884
|
-
* @
|
|
16066
|
+
* @deprecated Specify the phase for your callback to run in by passing a spec-object as the first
|
|
16067
|
+
* parameter to `afterRender` or `afterNextRender` instead of a function.
|
|
15885
16068
|
*/
|
|
15886
16069
|
var AfterRenderPhase;
|
|
15887
16070
|
(function (AfterRenderPhase) {
|
|
15888
16071
|
/**
|
|
15889
16072
|
* Use `AfterRenderPhase.EarlyRead` for callbacks that only need to **read** from the
|
|
15890
16073
|
* DOM before a subsequent `AfterRenderPhase.Write` callback, for example to perform
|
|
15891
|
-
* custom layout that the browser doesn't natively support.
|
|
15892
|
-
*
|
|
16074
|
+
* custom layout that the browser doesn't natively support. Prefer the
|
|
16075
|
+
* `AfterRenderPhase.EarlyRead` phase if reading can wait until after the write phase.
|
|
16076
|
+
* **Never** write to the DOM in this phase.
|
|
15893
16077
|
*
|
|
15894
16078
|
* <div class="alert is-important">
|
|
15895
16079
|
*
|
|
@@ -15901,25 +16085,25 @@ var AfterRenderPhase;
|
|
|
15901
16085
|
AfterRenderPhase[AfterRenderPhase["EarlyRead"] = 0] = "EarlyRead";
|
|
15902
16086
|
/**
|
|
15903
16087
|
* Use `AfterRenderPhase.Write` for callbacks that only **write** to the DOM. **Never**
|
|
15904
|
-
*
|
|
16088
|
+
* read from the DOM in this phase.
|
|
15905
16089
|
*/
|
|
15906
16090
|
AfterRenderPhase[AfterRenderPhase["Write"] = 1] = "Write";
|
|
15907
16091
|
/**
|
|
15908
16092
|
* Use `AfterRenderPhase.MixedReadWrite` for callbacks that read from or write to the
|
|
15909
|
-
* DOM, that haven't been refactored to use a different phase. **Never** use this phase
|
|
15910
|
-
*
|
|
16093
|
+
* DOM, that haven't been refactored to use a different phase. **Never** use this phase if
|
|
16094
|
+
* it is possible to divide the work among the other phases instead.
|
|
15911
16095
|
*
|
|
15912
16096
|
* <div class="alert is-critical">
|
|
15913
16097
|
*
|
|
15914
16098
|
* Using this value can **significantly** degrade performance.
|
|
15915
|
-
* Instead, prefer
|
|
16099
|
+
* Instead, prefer dividing work into the appropriate phase callbacks.
|
|
15916
16100
|
*
|
|
15917
16101
|
* </div>
|
|
15918
16102
|
*/
|
|
15919
16103
|
AfterRenderPhase[AfterRenderPhase["MixedReadWrite"] = 2] = "MixedReadWrite";
|
|
15920
16104
|
/**
|
|
15921
16105
|
* Use `AfterRenderPhase.Read` for callbacks that only **read** from the DOM. **Never**
|
|
15922
|
-
*
|
|
16106
|
+
* write to the DOM in this phase.
|
|
15923
16107
|
*/
|
|
15924
16108
|
AfterRenderPhase[AfterRenderPhase["Read"] = 3] = "Read";
|
|
15925
16109
|
})(AfterRenderPhase || (AfterRenderPhase = {}));
|
|
@@ -15951,55 +16135,7 @@ function internalAfterNextRender(callback, options) {
|
|
|
15951
16135
|
const afterRenderEventManager = injector.get(AfterRenderEventManager);
|
|
15952
16136
|
afterRenderEventManager.internalCallbacks.push(callback);
|
|
15953
16137
|
}
|
|
15954
|
-
|
|
15955
|
-
* Register a callback to be invoked each time the application
|
|
15956
|
-
* finishes rendering.
|
|
15957
|
-
*
|
|
15958
|
-
* <div class="alert is-critical">
|
|
15959
|
-
*
|
|
15960
|
-
* You should always explicitly specify a non-default [phase](api/core/AfterRenderPhase), or you
|
|
15961
|
-
* risk significant performance degradation.
|
|
15962
|
-
*
|
|
15963
|
-
* </div>
|
|
15964
|
-
*
|
|
15965
|
-
* Note that the callback will run
|
|
15966
|
-
* - in the order it was registered
|
|
15967
|
-
* - once per render
|
|
15968
|
-
* - on browser platforms only
|
|
15969
|
-
*
|
|
15970
|
-
* <div class="alert is-important">
|
|
15971
|
-
*
|
|
15972
|
-
* Components are not guaranteed to be [hydrated](guide/hydration) before the callback runs.
|
|
15973
|
-
* You must use caution when directly reading or writing the DOM and layout.
|
|
15974
|
-
*
|
|
15975
|
-
* </div>
|
|
15976
|
-
*
|
|
15977
|
-
* @param callback A callback function to register
|
|
15978
|
-
*
|
|
15979
|
-
* @usageNotes
|
|
15980
|
-
*
|
|
15981
|
-
* Use `afterRender` to read or write the DOM after each render.
|
|
15982
|
-
*
|
|
15983
|
-
* ### Example
|
|
15984
|
-
* ```ts
|
|
15985
|
-
* @Component({
|
|
15986
|
-
* selector: 'my-cmp',
|
|
15987
|
-
* template: `<span #content>{{ ... }}</span>`,
|
|
15988
|
-
* })
|
|
15989
|
-
* export class MyComponent {
|
|
15990
|
-
* @ViewChild('content') contentRef: ElementRef;
|
|
15991
|
-
*
|
|
15992
|
-
* constructor() {
|
|
15993
|
-
* afterRender(() => {
|
|
15994
|
-
* console.log('content height: ' + this.contentRef.nativeElement.scrollHeight);
|
|
15995
|
-
* }, {phase: AfterRenderPhase.Read});
|
|
15996
|
-
* }
|
|
15997
|
-
* }
|
|
15998
|
-
* ```
|
|
15999
|
-
*
|
|
16000
|
-
* @developerPreview
|
|
16001
|
-
*/
|
|
16002
|
-
function afterRender(callback, options) {
|
|
16138
|
+
function afterRender(callbackOrSpec, options) {
|
|
16003
16139
|
ngDevMode &&
|
|
16004
16140
|
assertNotInReactiveContext(afterRender, 'Call `afterRender` outside of a reactive context. For example, schedule the render ' +
|
|
16005
16141
|
'callback inside the component constructor`.');
|
|
@@ -16009,101 +16145,80 @@ function afterRender(callback, options) {
|
|
|
16009
16145
|
return NOOP_AFTER_RENDER_REF;
|
|
16010
16146
|
}
|
|
16011
16147
|
performanceMarkFeature('NgAfterRender');
|
|
16012
|
-
|
|
16013
|
-
|
|
16014
|
-
// tree-shaken if `afterRender` and `afterNextRender` aren't used.
|
|
16015
|
-
const callbackHandler = (afterRenderEventManager.handler ??=
|
|
16016
|
-
new AfterRenderCallbackHandlerImpl());
|
|
16017
|
-
const phase = options?.phase ?? AfterRenderPhase.MixedReadWrite;
|
|
16018
|
-
const destroy = () => {
|
|
16019
|
-
callbackHandler.unregister(instance);
|
|
16020
|
-
unregisterFn();
|
|
16021
|
-
};
|
|
16022
|
-
const unregisterFn = injector.get(DestroyRef).onDestroy(destroy);
|
|
16023
|
-
const instance = runInInjectionContext(injector, () => new AfterRenderCallback(phase, callback));
|
|
16024
|
-
callbackHandler.register(instance);
|
|
16025
|
-
return { destroy };
|
|
16148
|
+
return afterRenderImpl(callbackOrSpec, injector,
|
|
16149
|
+
/* once */ false, options?.phase ?? AfterRenderPhase.MixedReadWrite);
|
|
16026
16150
|
}
|
|
16027
|
-
|
|
16028
|
-
* Register a callback to be invoked the next time the application
|
|
16029
|
-
* finishes rendering.
|
|
16030
|
-
*
|
|
16031
|
-
* <div class="alert is-critical">
|
|
16032
|
-
*
|
|
16033
|
-
* You should always explicitly specify a non-default [phase](api/core/AfterRenderPhase), or you
|
|
16034
|
-
* risk significant performance degradation.
|
|
16035
|
-
*
|
|
16036
|
-
* </div>
|
|
16037
|
-
*
|
|
16038
|
-
* Note that the callback will run
|
|
16039
|
-
* - in the order it was registered
|
|
16040
|
-
* - on browser platforms only
|
|
16041
|
-
*
|
|
16042
|
-
* <div class="alert is-important">
|
|
16043
|
-
*
|
|
16044
|
-
* Components are not guaranteed to be [hydrated](guide/hydration) before the callback runs.
|
|
16045
|
-
* You must use caution when directly reading or writing the DOM and layout.
|
|
16046
|
-
*
|
|
16047
|
-
* </div>
|
|
16048
|
-
*
|
|
16049
|
-
* @param callback A callback function to register
|
|
16050
|
-
*
|
|
16051
|
-
* @usageNotes
|
|
16052
|
-
*
|
|
16053
|
-
* Use `afterNextRender` to read or write the DOM once,
|
|
16054
|
-
* for example to initialize a non-Angular library.
|
|
16055
|
-
*
|
|
16056
|
-
* ### Example
|
|
16057
|
-
* ```ts
|
|
16058
|
-
* @Component({
|
|
16059
|
-
* selector: 'my-chart-cmp',
|
|
16060
|
-
* template: `<div #chart>{{ ... }}</div>`,
|
|
16061
|
-
* })
|
|
16062
|
-
* export class MyChartCmp {
|
|
16063
|
-
* @ViewChild('chart') chartRef: ElementRef;
|
|
16064
|
-
* chart: MyChart|null;
|
|
16065
|
-
*
|
|
16066
|
-
* constructor() {
|
|
16067
|
-
* afterNextRender(() => {
|
|
16068
|
-
* this.chart = new MyChart(this.chartRef.nativeElement);
|
|
16069
|
-
* }, {phase: AfterRenderPhase.Write});
|
|
16070
|
-
* }
|
|
16071
|
-
* }
|
|
16072
|
-
* ```
|
|
16073
|
-
*
|
|
16074
|
-
* @developerPreview
|
|
16075
|
-
*/
|
|
16076
|
-
function afterNextRender(callback, options) {
|
|
16151
|
+
function afterNextRender(callbackOrSpec, options) {
|
|
16077
16152
|
!options && assertInInjectionContext(afterNextRender);
|
|
16078
16153
|
const injector = options?.injector ?? inject(Injector);
|
|
16079
16154
|
if (!isPlatformBrowser(injector)) {
|
|
16080
16155
|
return NOOP_AFTER_RENDER_REF;
|
|
16081
16156
|
}
|
|
16082
16157
|
performanceMarkFeature('NgAfterNextRender');
|
|
16158
|
+
return afterRenderImpl(callbackOrSpec, injector,
|
|
16159
|
+
/* once */ true, options?.phase ?? AfterRenderPhase.MixedReadWrite);
|
|
16160
|
+
}
|
|
16161
|
+
function getSpec(callbackOrSpec, phase) {
|
|
16162
|
+
if (callbackOrSpec instanceof Function) {
|
|
16163
|
+
switch (phase) {
|
|
16164
|
+
case AfterRenderPhase.EarlyRead:
|
|
16165
|
+
return { earlyRead: callbackOrSpec };
|
|
16166
|
+
case AfterRenderPhase.Write:
|
|
16167
|
+
return { write: callbackOrSpec };
|
|
16168
|
+
case AfterRenderPhase.MixedReadWrite:
|
|
16169
|
+
return { mixedReadWrite: callbackOrSpec };
|
|
16170
|
+
case AfterRenderPhase.Read:
|
|
16171
|
+
return { read: callbackOrSpec };
|
|
16172
|
+
}
|
|
16173
|
+
}
|
|
16174
|
+
return callbackOrSpec;
|
|
16175
|
+
}
|
|
16176
|
+
/**
|
|
16177
|
+
* Shared implementation for `afterRender` and `afterNextRender`.
|
|
16178
|
+
*/
|
|
16179
|
+
function afterRenderImpl(callbackOrSpec, injector, once, phase) {
|
|
16180
|
+
const spec = getSpec(callbackOrSpec, phase);
|
|
16083
16181
|
const afterRenderEventManager = injector.get(AfterRenderEventManager);
|
|
16084
16182
|
// Lazily initialize the handler implementation, if necessary. This is so that it can be
|
|
16085
16183
|
// tree-shaken if `afterRender` and `afterNextRender` aren't used.
|
|
16086
16184
|
const callbackHandler = (afterRenderEventManager.handler ??=
|
|
16087
16185
|
new AfterRenderCallbackHandlerImpl());
|
|
16088
|
-
const
|
|
16186
|
+
const pipelinedArgs = [];
|
|
16187
|
+
const instances = [];
|
|
16089
16188
|
const destroy = () => {
|
|
16090
|
-
|
|
16189
|
+
for (const instance of instances) {
|
|
16190
|
+
callbackHandler.unregister(instance);
|
|
16191
|
+
}
|
|
16091
16192
|
unregisterFn();
|
|
16092
16193
|
};
|
|
16093
16194
|
const unregisterFn = injector.get(DestroyRef).onDestroy(destroy);
|
|
16094
|
-
const
|
|
16095
|
-
|
|
16096
|
-
|
|
16097
|
-
|
|
16098
|
-
|
|
16195
|
+
const registerCallback = (phase, phaseCallback) => {
|
|
16196
|
+
if (!phaseCallback) {
|
|
16197
|
+
return;
|
|
16198
|
+
}
|
|
16199
|
+
const callback = once
|
|
16200
|
+
? (...args) => {
|
|
16201
|
+
destroy();
|
|
16202
|
+
phaseCallback(...args);
|
|
16203
|
+
}
|
|
16204
|
+
: phaseCallback;
|
|
16205
|
+
const instance = runInInjectionContext(injector, () => new AfterRenderCallback(phase, pipelinedArgs, callback));
|
|
16206
|
+
callbackHandler.register(instance);
|
|
16207
|
+
instances.push(instance);
|
|
16208
|
+
};
|
|
16209
|
+
registerCallback(AfterRenderPhase.EarlyRead, spec.earlyRead);
|
|
16210
|
+
registerCallback(AfterRenderPhase.Write, spec.write);
|
|
16211
|
+
registerCallback(AfterRenderPhase.MixedReadWrite, spec.mixedReadWrite);
|
|
16212
|
+
registerCallback(AfterRenderPhase.Read, spec.read);
|
|
16099
16213
|
return { destroy };
|
|
16100
16214
|
}
|
|
16101
16215
|
/**
|
|
16102
16216
|
* A wrapper around a function to be used as an after render callback.
|
|
16103
16217
|
*/
|
|
16104
16218
|
class AfterRenderCallback {
|
|
16105
|
-
constructor(phase, callbackFn) {
|
|
16219
|
+
constructor(phase, pipelinedArgs, callbackFn) {
|
|
16106
16220
|
this.phase = phase;
|
|
16221
|
+
this.pipelinedArgs = pipelinedArgs;
|
|
16107
16222
|
this.callbackFn = callbackFn;
|
|
16108
16223
|
this.zone = inject(NgZone);
|
|
16109
16224
|
this.errorHandler = inject(ErrorHandler, { optional: true });
|
|
@@ -16112,7 +16227,9 @@ class AfterRenderCallback {
|
|
|
16112
16227
|
}
|
|
16113
16228
|
invoke() {
|
|
16114
16229
|
try {
|
|
16115
|
-
this.zone.runOutsideAngular(this.callbackFn);
|
|
16230
|
+
const result = this.zone.runOutsideAngular(() => this.callbackFn.apply(null, this.pipelinedArgs));
|
|
16231
|
+
// Clear out the args and add the result which will be passed to the next phase.
|
|
16232
|
+
this.pipelinedArgs.splice(0, this.pipelinedArgs.length, result);
|
|
16116
16233
|
}
|
|
16117
16234
|
catch (err) {
|
|
16118
16235
|
this.errorHandler?.handleError(err);
|
|
@@ -16560,7 +16677,7 @@ class ComponentFactoryResolver extends ComponentFactoryResolver$1 {
|
|
|
16560
16677
|
return new ComponentFactory(componentDef, this.ngModule);
|
|
16561
16678
|
}
|
|
16562
16679
|
}
|
|
16563
|
-
function toRefArray(map) {
|
|
16680
|
+
function toRefArray(map, isInputMap) {
|
|
16564
16681
|
const array = [];
|
|
16565
16682
|
for (const publicName in map) {
|
|
16566
16683
|
if (!map.hasOwnProperty(publicName)) {
|
|
@@ -16570,10 +16687,22 @@ function toRefArray(map) {
|
|
|
16570
16687
|
if (value === undefined) {
|
|
16571
16688
|
continue;
|
|
16572
16689
|
}
|
|
16573
|
-
|
|
16574
|
-
|
|
16575
|
-
|
|
16576
|
-
|
|
16690
|
+
const isArray = Array.isArray(value);
|
|
16691
|
+
const propName = isArray ? value[0] : value;
|
|
16692
|
+
const flags = isArray ? value[1] : InputFlags.None;
|
|
16693
|
+
if (isInputMap) {
|
|
16694
|
+
array.push({
|
|
16695
|
+
propName: propName,
|
|
16696
|
+
templateName: publicName,
|
|
16697
|
+
isSignal: (flags & InputFlags.SignalBased) !== 0,
|
|
16698
|
+
});
|
|
16699
|
+
}
|
|
16700
|
+
else {
|
|
16701
|
+
array.push({
|
|
16702
|
+
propName: propName,
|
|
16703
|
+
templateName: publicName,
|
|
16704
|
+
});
|
|
16705
|
+
}
|
|
16577
16706
|
}
|
|
16578
16707
|
return array;
|
|
16579
16708
|
}
|
|
@@ -16581,30 +16710,6 @@ function getNamespace(elementName) {
|
|
|
16581
16710
|
const name = elementName.toLowerCase();
|
|
16582
16711
|
return name === 'svg' ? SVG_NAMESPACE : name === 'math' ? MATH_ML_NAMESPACE : null;
|
|
16583
16712
|
}
|
|
16584
|
-
/**
|
|
16585
|
-
* Injector that looks up a value using a specific injector, before falling back to the module
|
|
16586
|
-
* injector. Used primarily when creating components or embedded views dynamically.
|
|
16587
|
-
*/
|
|
16588
|
-
class ChainedInjector {
|
|
16589
|
-
constructor(injector, parentInjector) {
|
|
16590
|
-
this.injector = injector;
|
|
16591
|
-
this.parentInjector = parentInjector;
|
|
16592
|
-
}
|
|
16593
|
-
get(token, notFoundValue, flags) {
|
|
16594
|
-
flags = convertToBitFlags(flags);
|
|
16595
|
-
const value = this.injector.get(token, NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR, flags);
|
|
16596
|
-
if (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR ||
|
|
16597
|
-
notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR) {
|
|
16598
|
-
// Return the value from the root element injector when
|
|
16599
|
-
// - it provides it
|
|
16600
|
-
// (value !== NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)
|
|
16601
|
-
// - the module injector should not be checked
|
|
16602
|
-
// (notFoundValue === NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR)
|
|
16603
|
-
return value;
|
|
16604
|
-
}
|
|
16605
|
-
return this.parentInjector.get(token, notFoundValue, flags);
|
|
16606
|
-
}
|
|
16607
|
-
}
|
|
16608
16713
|
/**
|
|
16609
16714
|
* ComponentFactory interface implementation.
|
|
16610
16715
|
*/
|
|
@@ -16612,7 +16717,7 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
16612
16717
|
get inputs() {
|
|
16613
16718
|
const componentDef = this.componentDef;
|
|
16614
16719
|
const inputTransforms = componentDef.inputTransforms;
|
|
16615
|
-
const refArray = toRefArray(componentDef.inputs);
|
|
16720
|
+
const refArray = toRefArray(componentDef.inputs, true);
|
|
16616
16721
|
if (inputTransforms !== null) {
|
|
16617
16722
|
for (const input of refArray) {
|
|
16618
16723
|
if (inputTransforms.hasOwnProperty(input.propName)) {
|
|
@@ -16623,7 +16728,7 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
16623
16728
|
return refArray;
|
|
16624
16729
|
}
|
|
16625
16730
|
get outputs() {
|
|
16626
|
-
return toRefArray(this.componentDef.outputs);
|
|
16731
|
+
return toRefArray(this.componentDef.outputs, false);
|
|
16627
16732
|
}
|
|
16628
16733
|
/**
|
|
16629
16734
|
* @param componentDef The component definition.
|
|
@@ -16906,7 +17011,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
|
|
|
16906
17011
|
function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
|
|
16907
17012
|
if (rootSelectorOrNode) {
|
|
16908
17013
|
// The placeholder will be replaced with the actual version at build time.
|
|
16909
|
-
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.1.0-next.
|
|
17014
|
+
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.1.0-next.3']);
|
|
16910
17015
|
}
|
|
16911
17016
|
else {
|
|
16912
17017
|
// If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
|
|
@@ -18097,7 +18202,7 @@ function createModelSignal(initialValue) {
|
|
|
18097
18202
|
/** Asserts that a model's value is set. */
|
|
18098
18203
|
function assertModelSet(value) {
|
|
18099
18204
|
if (value === REQUIRED_UNSET_VALUE) {
|
|
18100
|
-
throw new RuntimeError(
|
|
18205
|
+
throw new RuntimeError(952 /* RuntimeErrorCode.REQUIRED_MODEL_NO_VALUE */, ngDevMode && 'Model is required but no value is available yet.');
|
|
18101
18206
|
}
|
|
18102
18207
|
}
|
|
18103
18208
|
|
|
@@ -19048,190 +19153,6 @@ class CachedInjectorService {
|
|
|
19048
19153
|
}); }
|
|
19049
19154
|
}
|
|
19050
19155
|
|
|
19051
|
-
/**
|
|
19052
|
-
* The name of a field that Angular monkey-patches onto a component
|
|
19053
|
-
* class to store a function that loads defer-loadable dependencies
|
|
19054
|
-
* and applies metadata to a class.
|
|
19055
|
-
*/
|
|
19056
|
-
const ASYNC_COMPONENT_METADATA_FN = '__ngAsyncComponentMetadataFn__';
|
|
19057
|
-
/**
|
|
19058
|
-
* If a given component has unresolved async metadata - returns a reference
|
|
19059
|
-
* to a function that applies component metadata after resolving defer-loadable
|
|
19060
|
-
* dependencies. Otherwise - this function returns `null`.
|
|
19061
|
-
*/
|
|
19062
|
-
function getAsyncClassMetadataFn(type) {
|
|
19063
|
-
const componentClass = type; // cast to `any`, so that we can read a monkey-patched field
|
|
19064
|
-
return componentClass[ASYNC_COMPONENT_METADATA_FN] ?? null;
|
|
19065
|
-
}
|
|
19066
|
-
/**
|
|
19067
|
-
* Handles the process of applying metadata info to a component class in case
|
|
19068
|
-
* component template has defer blocks (thus some dependencies became deferrable).
|
|
19069
|
-
*
|
|
19070
|
-
* @param type Component class where metadata should be added
|
|
19071
|
-
* @param dependencyLoaderFn Function that loads dependencies
|
|
19072
|
-
* @param metadataSetterFn Function that forms a scope in which the `setClassMetadata` is invoked
|
|
19073
|
-
*/
|
|
19074
|
-
function setClassMetadataAsync(type, dependencyLoaderFn, metadataSetterFn) {
|
|
19075
|
-
const componentClass = type; // cast to `any`, so that we can monkey-patch it
|
|
19076
|
-
componentClass[ASYNC_COMPONENT_METADATA_FN] = () => Promise.all(dependencyLoaderFn()).then((dependencies) => {
|
|
19077
|
-
metadataSetterFn(...dependencies);
|
|
19078
|
-
// Metadata is now set, reset field value to indicate that this component
|
|
19079
|
-
// can by used/compiled synchronously.
|
|
19080
|
-
componentClass[ASYNC_COMPONENT_METADATA_FN] = null;
|
|
19081
|
-
return dependencies;
|
|
19082
|
-
});
|
|
19083
|
-
return componentClass[ASYNC_COMPONENT_METADATA_FN];
|
|
19084
|
-
}
|
|
19085
|
-
/**
|
|
19086
|
-
* Adds decorator, constructor, and property metadata to a given type via static metadata fields
|
|
19087
|
-
* on the type.
|
|
19088
|
-
*
|
|
19089
|
-
* These metadata fields can later be read with Angular's `ReflectionCapabilities` API.
|
|
19090
|
-
*
|
|
19091
|
-
* Calls to `setClassMetadata` can be guarded by ngDevMode, resulting in the metadata assignments
|
|
19092
|
-
* being tree-shaken away during production builds.
|
|
19093
|
-
*/
|
|
19094
|
-
function setClassMetadata(type, decorators, ctorParameters, propDecorators) {
|
|
19095
|
-
return noSideEffects(() => {
|
|
19096
|
-
const clazz = type;
|
|
19097
|
-
if (decorators !== null) {
|
|
19098
|
-
if (clazz.hasOwnProperty('decorators') && clazz.decorators !== undefined) {
|
|
19099
|
-
clazz.decorators.push(...decorators);
|
|
19100
|
-
}
|
|
19101
|
-
else {
|
|
19102
|
-
clazz.decorators = decorators;
|
|
19103
|
-
}
|
|
19104
|
-
}
|
|
19105
|
-
if (ctorParameters !== null) {
|
|
19106
|
-
// Rather than merging, clobber the existing parameters. If other projects exist which
|
|
19107
|
-
// use tsickle-style annotations and reflect over them in the same way, this could
|
|
19108
|
-
// cause issues, but that is vanishingly unlikely.
|
|
19109
|
-
clazz.ctorParameters = ctorParameters;
|
|
19110
|
-
}
|
|
19111
|
-
if (propDecorators !== null) {
|
|
19112
|
-
// The property decorator objects are merged as it is possible different fields have
|
|
19113
|
-
// different decorator types. Decorators on individual fields are not merged, as it's
|
|
19114
|
-
// also incredibly unlikely that a field will be decorated both with an Angular
|
|
19115
|
-
// decorator and a non-Angular decorator that's also been downleveled.
|
|
19116
|
-
if (clazz.hasOwnProperty('propDecorators') && clazz.propDecorators !== undefined) {
|
|
19117
|
-
clazz.propDecorators = { ...clazz.propDecorators, ...propDecorators };
|
|
19118
|
-
}
|
|
19119
|
-
else {
|
|
19120
|
-
clazz.propDecorators = propDecorators;
|
|
19121
|
-
}
|
|
19122
|
-
}
|
|
19123
|
-
});
|
|
19124
|
-
}
|
|
19125
|
-
|
|
19126
|
-
/*
|
|
19127
|
-
* This file exists to support compilation of @angular/core in Ivy mode.
|
|
19128
|
-
*
|
|
19129
|
-
* When the Angular compiler processes a compilation unit, it normally writes imports to
|
|
19130
|
-
* @angular/core. When compiling the core package itself this strategy isn't usable. Instead, the
|
|
19131
|
-
* compiler writes imports to this file.
|
|
19132
|
-
*
|
|
19133
|
-
* Only a subset of such imports are supported - core is not allowed to declare components or pipes.
|
|
19134
|
-
* A check in ngtsc's `R3SymbolsImportRewriter` validates this condition. The rewriter is only used
|
|
19135
|
-
* when compiling @angular/core and is responsible for translating an external name (prefixed with
|
|
19136
|
-
* ɵ) to the internal symbol name as exported below.
|
|
19137
|
-
*
|
|
19138
|
-
* The below symbols are used for @Injectable and @NgModule compilation.
|
|
19139
|
-
*/
|
|
19140
|
-
/**
|
|
19141
|
-
* The existence of this constant (in this particular file) informs the Angular compiler that the
|
|
19142
|
-
* current program is actually @angular/core, which needs to be compiled specially.
|
|
19143
|
-
*/
|
|
19144
|
-
const ITS_JUST_ANGULAR = true;
|
|
19145
|
-
|
|
19146
|
-
/**
|
|
19147
|
-
* Internal implementation of the pending tasks service.
|
|
19148
|
-
*/
|
|
19149
|
-
class PendingTasks {
|
|
19150
|
-
constructor() {
|
|
19151
|
-
this.taskId = 0;
|
|
19152
|
-
this.pendingTasks = new Set();
|
|
19153
|
-
this.hasPendingTasks = new BehaviorSubject(false);
|
|
19154
|
-
}
|
|
19155
|
-
get _hasPendingTasks() {
|
|
19156
|
-
return this.hasPendingTasks.value;
|
|
19157
|
-
}
|
|
19158
|
-
add() {
|
|
19159
|
-
if (!this._hasPendingTasks) {
|
|
19160
|
-
this.hasPendingTasks.next(true);
|
|
19161
|
-
}
|
|
19162
|
-
const taskId = this.taskId++;
|
|
19163
|
-
this.pendingTasks.add(taskId);
|
|
19164
|
-
return taskId;
|
|
19165
|
-
}
|
|
19166
|
-
remove(taskId) {
|
|
19167
|
-
this.pendingTasks.delete(taskId);
|
|
19168
|
-
if (this.pendingTasks.size === 0 && this._hasPendingTasks) {
|
|
19169
|
-
this.hasPendingTasks.next(false);
|
|
19170
|
-
}
|
|
19171
|
-
}
|
|
19172
|
-
ngOnDestroy() {
|
|
19173
|
-
this.pendingTasks.clear();
|
|
19174
|
-
if (this._hasPendingTasks) {
|
|
19175
|
-
this.hasPendingTasks.next(false);
|
|
19176
|
-
}
|
|
19177
|
-
}
|
|
19178
|
-
static { this.ɵfac = function PendingTasks_Factory(t) { return new (t || PendingTasks)(); }; }
|
|
19179
|
-
static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: PendingTasks, factory: PendingTasks.ɵfac, providedIn: 'root' }); }
|
|
19180
|
-
}
|
|
19181
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(PendingTasks, [{
|
|
19182
|
-
type: Injectable,
|
|
19183
|
-
args: [{
|
|
19184
|
-
providedIn: 'root',
|
|
19185
|
-
}]
|
|
19186
|
-
}], null, null); })();
|
|
19187
|
-
/**
|
|
19188
|
-
* Experimental service that keeps track of pending tasks contributing to the stableness of Angular
|
|
19189
|
-
* application. While several existing Angular services (ex.: `HttpClient`) will internally manage
|
|
19190
|
-
* tasks influencing stability, this API gives control over stability to library and application
|
|
19191
|
-
* developers for specific cases not covered by Angular internals.
|
|
19192
|
-
*
|
|
19193
|
-
* The concept of stability comes into play in several important scenarios:
|
|
19194
|
-
* - SSR process needs to wait for the application stability before serializing and sending rendered
|
|
19195
|
-
* HTML;
|
|
19196
|
-
* - tests might want to delay assertions until the application becomes stable;
|
|
19197
|
-
*
|
|
19198
|
-
* @usageNotes
|
|
19199
|
-
* ```typescript
|
|
19200
|
-
* const pendingTasks = inject(ExperimentalPendingTasks);
|
|
19201
|
-
* const taskCleanup = pendingTasks.add();
|
|
19202
|
-
* // do work that should block application's stability and then:
|
|
19203
|
-
* taskCleanup();
|
|
19204
|
-
* ```
|
|
19205
|
-
*
|
|
19206
|
-
* This API is experimental. Neither the shape, nor the underlying behavior is stable and can change
|
|
19207
|
-
* in patch versions. We will iterate on the exact API based on the feedback and our understanding
|
|
19208
|
-
* of the problem and solution space.
|
|
19209
|
-
*
|
|
19210
|
-
* @publicApi
|
|
19211
|
-
* @experimental
|
|
19212
|
-
*/
|
|
19213
|
-
class ExperimentalPendingTasks {
|
|
19214
|
-
constructor() {
|
|
19215
|
-
this.internalPendingTasks = inject(PendingTasks);
|
|
19216
|
-
}
|
|
19217
|
-
/**
|
|
19218
|
-
* Adds a new task that should block application's stability.
|
|
19219
|
-
* @returns A cleanup function that removes a task when called.
|
|
19220
|
-
*/
|
|
19221
|
-
add() {
|
|
19222
|
-
const taskId = this.internalPendingTasks.add();
|
|
19223
|
-
return () => this.internalPendingTasks.remove(taskId);
|
|
19224
|
-
}
|
|
19225
|
-
static { this.ɵfac = function ExperimentalPendingTasks_Factory(t) { return new (t || ExperimentalPendingTasks)(); }; }
|
|
19226
|
-
static { this.ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ExperimentalPendingTasks, factory: ExperimentalPendingTasks.ɵfac, providedIn: 'root' }); }
|
|
19227
|
-
}
|
|
19228
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(ExperimentalPendingTasks, [{
|
|
19229
|
-
type: Injectable,
|
|
19230
|
-
args: [{
|
|
19231
|
-
providedIn: 'root',
|
|
19232
|
-
}]
|
|
19233
|
-
}], null, null); })();
|
|
19234
|
-
|
|
19235
19156
|
function isIterable(obj) {
|
|
19236
19157
|
return obj !== null && typeof obj === 'object' && obj[Symbol.iterator] !== undefined;
|
|
19237
19158
|
}
|
|
@@ -20664,14 +20585,6 @@ function renderDeferBlockState(newState, tNode, lContainer, skipTimerScheduling
|
|
|
20664
20585
|
}
|
|
20665
20586
|
}
|
|
20666
20587
|
}
|
|
20667
|
-
/**
|
|
20668
|
-
* Detects whether an injector is an instance of a `ChainedInjector`,
|
|
20669
|
-
* created based on the `OutletInjector`.
|
|
20670
|
-
*/
|
|
20671
|
-
function isRouterOutletInjector(currentInjector) {
|
|
20672
|
-
return (currentInjector instanceof ChainedInjector &&
|
|
20673
|
-
typeof currentInjector.injector.__ngOutletInjector === 'function');
|
|
20674
|
-
}
|
|
20675
20588
|
/**
|
|
20676
20589
|
* Creates an instance of the `OutletInjector` using a private factory
|
|
20677
20590
|
* function available on the `OutletInjector` class.
|
|
@@ -28440,6 +28353,45 @@ function ɵɵtwoWayListener(eventName, listenerFn) {
|
|
|
28440
28353
|
return ɵɵtwoWayListener;
|
|
28441
28354
|
}
|
|
28442
28355
|
|
|
28356
|
+
/*!
|
|
28357
|
+
* @license
|
|
28358
|
+
* Copyright Google LLC All Rights Reserved.
|
|
28359
|
+
*
|
|
28360
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
28361
|
+
* found in the LICENSE file at https://angular.io/license
|
|
28362
|
+
*/
|
|
28363
|
+
/**
|
|
28364
|
+
* Declares an `@let` at a specific data slot.
|
|
28365
|
+
*
|
|
28366
|
+
* @param index Index at which to declare the `@let`.
|
|
28367
|
+
*
|
|
28368
|
+
* @codeGenApi
|
|
28369
|
+
*/
|
|
28370
|
+
function ɵɵdeclareLet(index) {
|
|
28371
|
+
// TODO(crisbeto): implement this
|
|
28372
|
+
return ɵɵdeclareLet;
|
|
28373
|
+
}
|
|
28374
|
+
/**
|
|
28375
|
+
* Instruction that stores the value of a `@let` declaration on the current view.
|
|
28376
|
+
*
|
|
28377
|
+
* @codeGenApi
|
|
28378
|
+
*/
|
|
28379
|
+
function ɵɵstoreLet(value) {
|
|
28380
|
+
// TODO(crisbeto): implement this
|
|
28381
|
+
return value;
|
|
28382
|
+
}
|
|
28383
|
+
/**
|
|
28384
|
+
* Retrieves the value of a `@let` declaration defined within the same view.
|
|
28385
|
+
*
|
|
28386
|
+
* @param index Index of the declaration within the view.
|
|
28387
|
+
*
|
|
28388
|
+
* @codeGenApi
|
|
28389
|
+
*/
|
|
28390
|
+
function ɵɵreadContextLet(index) {
|
|
28391
|
+
// TODO(crisbeto): implement this
|
|
28392
|
+
return null;
|
|
28393
|
+
}
|
|
28394
|
+
|
|
28443
28395
|
/*
|
|
28444
28396
|
* This file re-exports all symbols contained in this directory.
|
|
28445
28397
|
*
|
|
@@ -28858,6 +28810,81 @@ function maybeUnwrapModuleWithProviders(value) {
|
|
|
28858
28810
|
return isModuleWithProviders(value) ? value.ngModule : value;
|
|
28859
28811
|
}
|
|
28860
28812
|
|
|
28813
|
+
/**
|
|
28814
|
+
* The name of a field that Angular monkey-patches onto a component
|
|
28815
|
+
* class to store a function that loads defer-loadable dependencies
|
|
28816
|
+
* and applies metadata to a class.
|
|
28817
|
+
*/
|
|
28818
|
+
const ASYNC_COMPONENT_METADATA_FN = '__ngAsyncComponentMetadataFn__';
|
|
28819
|
+
/**
|
|
28820
|
+
* If a given component has unresolved async metadata - returns a reference
|
|
28821
|
+
* to a function that applies component metadata after resolving defer-loadable
|
|
28822
|
+
* dependencies. Otherwise - this function returns `null`.
|
|
28823
|
+
*/
|
|
28824
|
+
function getAsyncClassMetadataFn(type) {
|
|
28825
|
+
const componentClass = type; // cast to `any`, so that we can read a monkey-patched field
|
|
28826
|
+
return componentClass[ASYNC_COMPONENT_METADATA_FN] ?? null;
|
|
28827
|
+
}
|
|
28828
|
+
/**
|
|
28829
|
+
* Handles the process of applying metadata info to a component class in case
|
|
28830
|
+
* component template has defer blocks (thus some dependencies became deferrable).
|
|
28831
|
+
*
|
|
28832
|
+
* @param type Component class where metadata should be added
|
|
28833
|
+
* @param dependencyLoaderFn Function that loads dependencies
|
|
28834
|
+
* @param metadataSetterFn Function that forms a scope in which the `setClassMetadata` is invoked
|
|
28835
|
+
*/
|
|
28836
|
+
function setClassMetadataAsync(type, dependencyLoaderFn, metadataSetterFn) {
|
|
28837
|
+
const componentClass = type; // cast to `any`, so that we can monkey-patch it
|
|
28838
|
+
componentClass[ASYNC_COMPONENT_METADATA_FN] = () => Promise.all(dependencyLoaderFn()).then((dependencies) => {
|
|
28839
|
+
metadataSetterFn(...dependencies);
|
|
28840
|
+
// Metadata is now set, reset field value to indicate that this component
|
|
28841
|
+
// can by used/compiled synchronously.
|
|
28842
|
+
componentClass[ASYNC_COMPONENT_METADATA_FN] = null;
|
|
28843
|
+
return dependencies;
|
|
28844
|
+
});
|
|
28845
|
+
return componentClass[ASYNC_COMPONENT_METADATA_FN];
|
|
28846
|
+
}
|
|
28847
|
+
/**
|
|
28848
|
+
* Adds decorator, constructor, and property metadata to a given type via static metadata fields
|
|
28849
|
+
* on the type.
|
|
28850
|
+
*
|
|
28851
|
+
* These metadata fields can later be read with Angular's `ReflectionCapabilities` API.
|
|
28852
|
+
*
|
|
28853
|
+
* Calls to `setClassMetadata` can be guarded by ngDevMode, resulting in the metadata assignments
|
|
28854
|
+
* being tree-shaken away during production builds.
|
|
28855
|
+
*/
|
|
28856
|
+
function setClassMetadata(type, decorators, ctorParameters, propDecorators) {
|
|
28857
|
+
return noSideEffects(() => {
|
|
28858
|
+
const clazz = type;
|
|
28859
|
+
if (decorators !== null) {
|
|
28860
|
+
if (clazz.hasOwnProperty('decorators') && clazz.decorators !== undefined) {
|
|
28861
|
+
clazz.decorators.push(...decorators);
|
|
28862
|
+
}
|
|
28863
|
+
else {
|
|
28864
|
+
clazz.decorators = decorators;
|
|
28865
|
+
}
|
|
28866
|
+
}
|
|
28867
|
+
if (ctorParameters !== null) {
|
|
28868
|
+
// Rather than merging, clobber the existing parameters. If other projects exist which
|
|
28869
|
+
// use tsickle-style annotations and reflect over them in the same way, this could
|
|
28870
|
+
// cause issues, but that is vanishingly unlikely.
|
|
28871
|
+
clazz.ctorParameters = ctorParameters;
|
|
28872
|
+
}
|
|
28873
|
+
if (propDecorators !== null) {
|
|
28874
|
+
// The property decorator objects are merged as it is possible different fields have
|
|
28875
|
+
// different decorator types. Decorators on individual fields are not merged, as it's
|
|
28876
|
+
// also incredibly unlikely that a field will be decorated both with an Angular
|
|
28877
|
+
// decorator and a non-Angular decorator that's also been downleveled.
|
|
28878
|
+
if (clazz.hasOwnProperty('propDecorators') && clazz.propDecorators !== undefined) {
|
|
28879
|
+
clazz.propDecorators = { ...clazz.propDecorators, ...propDecorators };
|
|
28880
|
+
}
|
|
28881
|
+
else {
|
|
28882
|
+
clazz.propDecorators = propDecorators;
|
|
28883
|
+
}
|
|
28884
|
+
}
|
|
28885
|
+
});
|
|
28886
|
+
}
|
|
28887
|
+
|
|
28861
28888
|
/**
|
|
28862
28889
|
* Bindings for pure functions are stored after regular bindings.
|
|
28863
28890
|
*
|
|
@@ -29634,6 +29661,9 @@ const angularCoreEnv = (() => ({
|
|
|
29634
29661
|
'ɵɵregisterNgModuleType': registerNgModuleType,
|
|
29635
29662
|
'ɵɵgetComponentDepsFactory': ɵɵgetComponentDepsFactory,
|
|
29636
29663
|
'ɵsetClassDebugInfo': ɵsetClassDebugInfo,
|
|
29664
|
+
'ɵɵdeclareLet': ɵɵdeclareLet,
|
|
29665
|
+
'ɵɵstoreLet': ɵɵstoreLet,
|
|
29666
|
+
'ɵɵreadContextLet': ɵɵreadContextLet,
|
|
29637
29667
|
'ɵɵsanitizeHtml': ɵɵsanitizeHtml,
|
|
29638
29668
|
'ɵɵsanitizeStyle': ɵɵsanitizeStyle,
|
|
29639
29669
|
'ɵɵsanitizeResourceUrl': ɵɵsanitizeResourceUrl,
|
|
@@ -30815,7 +30845,27 @@ class Version {
|
|
|
30815
30845
|
/**
|
|
30816
30846
|
* @publicApi
|
|
30817
30847
|
*/
|
|
30818
|
-
const VERSION = new Version('18.1.0-next.
|
|
30848
|
+
const VERSION = new Version('18.1.0-next.3');
|
|
30849
|
+
|
|
30850
|
+
/*
|
|
30851
|
+
* This file exists to support compilation of @angular/core in Ivy mode.
|
|
30852
|
+
*
|
|
30853
|
+
* When the Angular compiler processes a compilation unit, it normally writes imports to
|
|
30854
|
+
* @angular/core. When compiling the core package itself this strategy isn't usable. Instead, the
|
|
30855
|
+
* compiler writes imports to this file.
|
|
30856
|
+
*
|
|
30857
|
+
* Only a subset of such imports are supported - core is not allowed to declare components or pipes.
|
|
30858
|
+
* A check in ngtsc's `R3SymbolsImportRewriter` validates this condition. The rewriter is only used
|
|
30859
|
+
* when compiling @angular/core and is responsible for translating an external name (prefixed with
|
|
30860
|
+
* ɵ) to the internal symbol name as exported below.
|
|
30861
|
+
*
|
|
30862
|
+
* The below symbols are used for @Injectable and @NgModule compilation.
|
|
30863
|
+
*/
|
|
30864
|
+
/**
|
|
30865
|
+
* The existence of this constant (in this particular file) informs the Angular compiler that the
|
|
30866
|
+
* current program is actually @angular/core, which needs to be compiled specially.
|
|
30867
|
+
*/
|
|
30868
|
+
const ITS_JUST_ANGULAR = true;
|
|
30819
30869
|
|
|
30820
30870
|
class Console {
|
|
30821
30871
|
log(message) {
|
|
@@ -31572,7 +31622,16 @@ function getInjectorResolutionPathHelper(injector, resolutionPath) {
|
|
|
31572
31622
|
*/
|
|
31573
31623
|
function getInjectorParent(injector) {
|
|
31574
31624
|
if (injector instanceof R3Injector) {
|
|
31575
|
-
|
|
31625
|
+
const parent = injector.parent;
|
|
31626
|
+
if (isRouterOutletInjector(parent)) {
|
|
31627
|
+
// This is a special case for a `ChainedInjector` instance, which represents
|
|
31628
|
+
// a combination of a Router's `OutletInjector` and an EnvironmentInjector,
|
|
31629
|
+
// which represents a `@defer` block. Since the `OutletInjector` doesn't store
|
|
31630
|
+
// any tokens itself, we point to the parent injector instead. See the
|
|
31631
|
+
// `OutletInjector.__ngOutletInjector` field for additional information.
|
|
31632
|
+
return parent.parentInjector;
|
|
31633
|
+
}
|
|
31634
|
+
return parent;
|
|
31576
31635
|
}
|
|
31577
31636
|
let tNode;
|
|
31578
31637
|
let lView;
|
|
@@ -31587,7 +31646,7 @@ function getInjectorParent(injector) {
|
|
|
31587
31646
|
return injector.parentInjector;
|
|
31588
31647
|
}
|
|
31589
31648
|
else {
|
|
31590
|
-
throwError('getInjectorParent only support injectors of type R3Injector, NodeInjector, NullInjector
|
|
31649
|
+
throwError('getInjectorParent only support injectors of type R3Injector, NodeInjector, NullInjector');
|
|
31591
31650
|
}
|
|
31592
31651
|
const parentLocation = getParentInjectorLocation(tNode, lView);
|
|
31593
31652
|
if (hasParentInjector(parentLocation)) {
|
|
@@ -33235,7 +33294,7 @@ class ChangeDetectionSchedulerImpl {
|
|
|
33235
33294
|
function provideExperimentalZonelessChangeDetection() {
|
|
33236
33295
|
performanceMarkFeature('NgZoneless');
|
|
33237
33296
|
if ((typeof ngDevMode === 'undefined' || ngDevMode) && typeof Zone !== 'undefined' && Zone) {
|
|
33238
|
-
const message = formatRuntimeError(914 /* RuntimeErrorCode.UNEXPECTED_ZONEJS_PRESENT_IN_ZONELESS_MODE */, `The application is using zoneless change detection, but is still loading Zone.js
|
|
33297
|
+
const message = formatRuntimeError(914 /* RuntimeErrorCode.UNEXPECTED_ZONEJS_PRESENT_IN_ZONELESS_MODE */, `The application is using zoneless change detection, but is still loading Zone.js. ` +
|
|
33239
33298
|
`Consider removing Zone.js to get the full benefits of zoneless. ` +
|
|
33240
33299
|
`In applications using the Angular CLI, Zone.js is typically included in the "polyfills" section of the angular.json file.`);
|
|
33241
33300
|
console.warn(message);
|
|
@@ -36614,6 +36673,13 @@ const jsactionSet = new Set();
|
|
|
36614
36673
|
function isGlobalEventDelegationEnabled(injector) {
|
|
36615
36674
|
return injector.get(IS_GLOBAL_EVENT_DELEGATION_ENABLED, false);
|
|
36616
36675
|
}
|
|
36676
|
+
/**
|
|
36677
|
+
* Determines whether Event Replay feature should be activated on the client.
|
|
36678
|
+
*/
|
|
36679
|
+
function shouldEnableEventReplay(injector) {
|
|
36680
|
+
return (injector.get(IS_EVENT_REPLAY_ENABLED, EVENT_REPLAY_ENABLED_DEFAULT) &&
|
|
36681
|
+
!isGlobalEventDelegationEnabled(injector));
|
|
36682
|
+
}
|
|
36617
36683
|
/**
|
|
36618
36684
|
* Returns a set of providers required to setup support for event replay.
|
|
36619
36685
|
* Requires hydration to be enabled separately.
|
|
@@ -36622,19 +36688,31 @@ function withEventReplay() {
|
|
|
36622
36688
|
return [
|
|
36623
36689
|
{
|
|
36624
36690
|
provide: IS_EVENT_REPLAY_ENABLED,
|
|
36625
|
-
|
|
36691
|
+
useFactory: () => {
|
|
36692
|
+
let isEnabled = true;
|
|
36693
|
+
if (isPlatformBrowser()) {
|
|
36694
|
+
// Note: globalThis[CONTRACT_PROPERTY] may be undefined in case Event Replay feature
|
|
36695
|
+
// is enabled, but there are no events configured in this application, in which case
|
|
36696
|
+
// we don't activate this feature, since there are no events to replay.
|
|
36697
|
+
const appId = inject(APP_ID);
|
|
36698
|
+
isEnabled = !!globalThis[CONTRACT_PROPERTY]?.[appId];
|
|
36699
|
+
}
|
|
36700
|
+
if (isEnabled) {
|
|
36701
|
+
performanceMarkFeature('NgEventReplay');
|
|
36702
|
+
}
|
|
36703
|
+
return isEnabled;
|
|
36704
|
+
},
|
|
36626
36705
|
},
|
|
36627
36706
|
{
|
|
36628
36707
|
provide: ENVIRONMENT_INITIALIZER,
|
|
36629
36708
|
useValue: () => {
|
|
36630
36709
|
const injector = inject(Injector);
|
|
36631
|
-
if (
|
|
36632
|
-
|
|
36710
|
+
if (isPlatformBrowser(injector) && shouldEnableEventReplay(injector)) {
|
|
36711
|
+
setStashFn((rEl, eventName, listenerFn) => {
|
|
36712
|
+
sharedStashFunction(rEl, eventName, listenerFn);
|
|
36713
|
+
jsactionSet.add(rEl);
|
|
36714
|
+
});
|
|
36633
36715
|
}
|
|
36634
|
-
setStashFn((rEl, eventName, listenerFn) => {
|
|
36635
|
-
sharedStashFunction(rEl, eventName, listenerFn);
|
|
36636
|
-
jsactionSet.add(rEl);
|
|
36637
|
-
});
|
|
36638
36716
|
},
|
|
36639
36717
|
multi: true,
|
|
36640
36718
|
},
|
|
@@ -36645,13 +36723,13 @@ function withEventReplay() {
|
|
|
36645
36723
|
const injector = inject(Injector);
|
|
36646
36724
|
const appRef = inject(ApplicationRef);
|
|
36647
36725
|
return () => {
|
|
36726
|
+
if (!shouldEnableEventReplay(injector)) {
|
|
36727
|
+
return;
|
|
36728
|
+
}
|
|
36648
36729
|
// Kick off event replay logic once hydration for the initial part
|
|
36649
36730
|
// of the application is completed. This timing is similar to the unclaimed
|
|
36650
36731
|
// dehydrated views cleanup timing.
|
|
36651
36732
|
whenStable(appRef).then(() => {
|
|
36652
|
-
if (isGlobalEventDelegationEnabled(injector)) {
|
|
36653
|
-
return;
|
|
36654
|
-
}
|
|
36655
36733
|
const globalEventDelegation = injector.get(GlobalEventDelegation);
|
|
36656
36734
|
initEventReplay(globalEventDelegation, injector);
|
|
36657
36735
|
jsactionSet.forEach(removeListeners);
|
|
@@ -36674,8 +36752,6 @@ function getJsactionData(container) {
|
|
|
36674
36752
|
const initEventReplay = (eventDelegation, injector) => {
|
|
36675
36753
|
const appId = injector.get(APP_ID);
|
|
36676
36754
|
// This is set in packages/platform-server/src/utils.ts
|
|
36677
|
-
// Note: globalThis[CONTRACT_PROPERTY] may be undefined in case Event Replay feature
|
|
36678
|
-
// is enabled, but there are no events configured in an application.
|
|
36679
36755
|
const container = globalThis[CONTRACT_PROPERTY]?.[appId];
|
|
36680
36756
|
const earlyJsactionData = getJsactionData(container);
|
|
36681
36757
|
const eventContract = (eventDelegation.eventContract = new EventContract(new EventContractContainer(earlyJsactionData.c)));
|
|
@@ -38063,5 +38139,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
38063
38139
|
* Generated bundle index. Do not edit.
|
|
38064
38140
|
*/
|
|
38065
38141
|
|
|
38066
|
-
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, ExperimentalPendingTasks, HOST_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as 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, OutputEmitterRef, 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, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderEventManager as ɵAfterRenderEventManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, 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, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, 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, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, 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, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _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, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, 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, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalAfterNextRender as ɵinternalAfterNextRender, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, 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, queueStateUpdate as ɵqueueStateUpdate, readHydrationInfo as ɵreadHydrationInfo, 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, ɵunwrapWritableSignal, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, ɵɵ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, ɵɵcontentQuerySignal, ɵɵ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, ɵɵngDeclareClassMetadataAsync, ɵɵ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, ɵɵqueryAdvance, ɵɵ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, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
|
|
38142
|
+
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, ExperimentalPendingTasks, HOST_TAG_NAME, Host, HostAttributeToken, HostBinding, HostListener, INJECTOR$1 as 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, OutputEmitterRef, 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, contentChild, contentChildren, createComponent, createEnvironmentInjector, createNgModule, createNgModuleRef, createPlatform, createPlatformFactory, defineInjectable, destroyPlatform, effect, enableProdMode, forwardRef, getDebugNode, getModuleFactory, getNgModuleById, getPlatform, importProvidersFrom, inject, input, isDevMode, isSignal, isStandalone, makeEnvironmentProviders, makeStateKey, mergeApplicationConfig, model, numberAttribute, output, platformCore, provideExperimentalCheckNoChangesForDebug, provideExperimentalZonelessChangeDetection, provideZoneChangeDetection, reflectComponentType, resolveForwardRef, runInInjectionContext, setTestabilityGetter, signal, untracked, viewChild, viewChildren, ALLOW_MULTIPLE_PLATFORMS as ɵALLOW_MULTIPLE_PLATFORMS, AfterRenderEventManager as ɵAfterRenderEventManager, CONTAINER_HEADER_OFFSET as ɵCONTAINER_HEADER_OFFSET, ChangeDetectionScheduler as ɵChangeDetectionScheduler, ChangeDetectionSchedulerImpl as ɵChangeDetectionSchedulerImpl, 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, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, 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, PROVIDED_NG_ZONE as ɵPROVIDED_NG_ZONE, 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, ZONELESS_ENABLED as ɵZONELESS_ENABLED, _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, detectChangesInViewIfRequired as ɵdetectChangesInViewIfRequired, 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, getOutputDestroyRef as ɵgetOutputDestroyRef, getSanitizationBypassType as ɵgetSanitizationBypassType, ɵgetUnknownElementStrictMode, ɵgetUnknownPropertyStrictMode, _global as ɵglobal, injectChangeDetectorRef as ɵinjectChangeDetectorRef, internalAfterNextRender as ɵinternalAfterNextRender, internalCreateApplication as ɵinternalCreateApplication, internalProvideZoneChangeDetection as ɵinternalProvideZoneChangeDetection, 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, queueStateUpdate as ɵqueueStateUpdate, readHydrationInfo as ɵreadHydrationInfo, 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, ɵunwrapWritableSignal, whenStable as ɵwhenStable, withDomHydration as ɵwithDomHydration, withEventReplay as ɵwithEventReplay, withI18nSupport as ɵwithI18nSupport, ɵɵ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, ɵɵcontentQuerySignal, ɵɵdeclareLet, ɵɵ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, ɵɵngDeclareClassMetadataAsync, ɵɵ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, ɵɵqueryAdvance, ɵɵqueryRefresh, ɵɵreadContextLet, ɵɵreference, registerNgModuleType as ɵɵregisterNgModuleType, ɵɵrepeater, ɵɵrepeaterCreate, ɵɵrepeaterTrackByIdentity, ɵɵrepeaterTrackByIndex, ɵɵresetView, ɵɵresolveBody, ɵɵresolveDocument, ɵɵresolveWindow, ɵɵrestoreView, ɵɵsanitizeHtml, ɵɵsanitizeResourceUrl, ɵɵsanitizeScript, ɵɵsanitizeStyle, ɵɵsanitizeUrl, ɵɵsanitizeUrlOrResourceUrl, ɵɵsetComponentScope, ɵɵsetNgModuleScope, ɵɵstoreLet, ɵɵ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, ɵɵtwoWayBindingSet, ɵɵtwoWayListener, ɵɵtwoWayProperty, ɵɵvalidateIframeAttribute, ɵɵviewQuery, ɵɵviewQuerySignal };
|
|
38067
38143
|
//# sourceMappingURL=core.mjs.map
|