@angular/core 18.2.1 → 18.2.2
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/primitives/event-dispatch/src/event_dispatcher.mjs +7 -1
- package/esm2022/src/application/application_ref.mjs +107 -37
- package/esm2022/src/change_detection/scheduling/zoneless_scheduling.mjs +1 -1
- package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +37 -13
- package/esm2022/src/core.mjs +3 -2
- package/esm2022/src/core_private_export.mjs +1 -2
- package/esm2022/src/core_render3_private_export.mjs +2 -2
- package/esm2022/src/defer/dom_triggers.mjs +13 -8
- package/esm2022/src/render3/after_render/api.mjs +70 -0
- package/esm2022/src/render3/after_render/hooks.mjs +70 -0
- package/esm2022/src/render3/after_render/manager.mjs +141 -0
- package/esm2022/src/render3/component_ref.mjs +14 -6
- package/esm2022/src/render3/interfaces/view.mjs +1 -1
- package/esm2022/src/render3/node_manipulation.mjs +1 -1
- package/esm2022/src/render3/util/view_utils.mjs +1 -1
- package/esm2022/src/version.mjs +1 -1
- package/esm2022/testing/src/application_error_handler.mjs +3 -3
- package/esm2022/testing/src/logger.mjs +3 -3
- package/fesm2022/core.mjs +448 -407
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +6 -1
- package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
- package/fesm2022/primitives/signals.mjs +1 -1
- package/fesm2022/rxjs-interop.mjs +1 -1
- package/fesm2022/testing.mjs +4 -4
- package/index.d.ts +85 -72
- 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 +1 -1
- package/schematics/migrations/after-render-phase/bundle.js +3694 -3575
- package/schematics/migrations/http-providers/bundle.js +3694 -3575
- package/schematics/migrations/invalid-two-way-bindings/bundle.js +3694 -3575
- package/schematics/ng-generate/control-flow-migration/bundle.js +3726 -3607
- package/schematics/ng-generate/inject-migration/bundle.js +3694 -3575
- package/schematics/ng-generate/route-lazy-loading/bundle.js +3694 -3575
- package/schematics/ng-generate/standalone-migration/bundle.js +3744 -3601
- package/testing/index.d.ts +1 -1
- package/esm2022/src/render3/after_render_hooks.mjs +0 -299
- package/esm2022/src/render3/queue_state_update.mjs +0 -39
- package/schematics/migrations/after-render-phase/bundle.js.map +0 -7
- package/schematics/migrations/http-providers/bundle.js.map +0 -7
- package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +0 -7
- package/schematics/ng-generate/control-flow-migration/bundle.js.map +0 -7
- package/schematics/ng-generate/inject-migration/bundle.js.map +0 -7
- package/schematics/ng-generate/route-lazy-loading/bundle.js.map +0 -7
- package/schematics/ng-generate/standalone-migration/bundle.js.map +0 -7
package/fesm2022/core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v18.2.
|
|
2
|
+
* @license Angular v18.2.2
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -4327,7 +4327,7 @@ function requiresRefreshOrTraversal(lView) {
|
|
|
4327
4327
|
* parents above.
|
|
4328
4328
|
*/
|
|
4329
4329
|
function updateAncestorTraversalFlagsOnAttach(lView) {
|
|
4330
|
-
lView[ENVIRONMENT].changeDetectionScheduler?.notify(
|
|
4330
|
+
lView[ENVIRONMENT].changeDetectionScheduler?.notify(8 /* NotificationSource.ViewAttached */);
|
|
4331
4331
|
if (lView[FLAGS] & 64 /* LViewFlags.Dirty */) {
|
|
4332
4332
|
lView[FLAGS] |= 1024 /* LViewFlags.RefreshView */;
|
|
4333
4333
|
}
|
|
@@ -11030,7 +11030,7 @@ function detachViewFromDOM(tView, lView) {
|
|
|
11030
11030
|
// When we remove a view from the DOM, we need to rerun afterRender hooks
|
|
11031
11031
|
// We don't necessarily needs to run change detection. DOM removal only requires
|
|
11032
11032
|
// change detection if animations are enabled (this notification is handled by animations).
|
|
11033
|
-
lView[ENVIRONMENT].changeDetectionScheduler?.notify(
|
|
11033
|
+
lView[ENVIRONMENT].changeDetectionScheduler?.notify(9 /* NotificationSource.ViewDetachedFromDOM */);
|
|
11034
11034
|
applyView(tView, lView, lView[RENDERER], 2 /* WalkTNodeTreeAction.Detach */, null, null);
|
|
11035
11035
|
}
|
|
11036
11036
|
/**
|
|
@@ -16247,323 +16247,6 @@ class Sanitizer {
|
|
|
16247
16247
|
}); }
|
|
16248
16248
|
}
|
|
16249
16249
|
|
|
16250
|
-
/**
|
|
16251
|
-
* Asserts that the current stack frame is not within a reactive context. Useful
|
|
16252
|
-
* to disallow certain code from running inside a reactive context (see {@link toSignal}).
|
|
16253
|
-
*
|
|
16254
|
-
* @param debugFn a reference to the function making the assertion (used for the error message).
|
|
16255
|
-
*
|
|
16256
|
-
* @publicApi
|
|
16257
|
-
*/
|
|
16258
|
-
function assertNotInReactiveContext(debugFn, extraContext) {
|
|
16259
|
-
// Taking a `Function` instead of a string name here prevents the un-minified name of the function
|
|
16260
|
-
// from being retained in the bundle regardless of minification.
|
|
16261
|
-
if (getActiveConsumer$1() !== null) {
|
|
16262
|
-
throw new RuntimeError(-602 /* RuntimeErrorCode.ASSERTION_NOT_INSIDE_REACTIVE_CONTEXT */, ngDevMode &&
|
|
16263
|
-
`${debugFn.name}() cannot be called from within a reactive context.${extraContext ? ` ${extraContext}` : ''}`);
|
|
16264
|
-
}
|
|
16265
|
-
}
|
|
16266
|
-
|
|
16267
|
-
const markedFeatures = new Set();
|
|
16268
|
-
// tslint:disable:ban
|
|
16269
|
-
/**
|
|
16270
|
-
* A guarded `performance.mark` for feature marking.
|
|
16271
|
-
*
|
|
16272
|
-
* This method exists because while all supported browser and node.js version supported by Angular
|
|
16273
|
-
* support performance.mark API. This is not the case for other environments such as JSDOM and
|
|
16274
|
-
* Cloudflare workers.
|
|
16275
|
-
*/
|
|
16276
|
-
function performanceMarkFeature(feature) {
|
|
16277
|
-
if (markedFeatures.has(feature)) {
|
|
16278
|
-
return;
|
|
16279
|
-
}
|
|
16280
|
-
markedFeatures.add(feature);
|
|
16281
|
-
performance?.mark?.('mark_feature_usage', { detail: { feature } });
|
|
16282
|
-
}
|
|
16283
|
-
|
|
16284
|
-
/**
|
|
16285
|
-
* The phase to run an `afterRender` or `afterNextRender` callback in.
|
|
16286
|
-
*
|
|
16287
|
-
* Callbacks in the same phase run in the order they are registered. Phases run in the
|
|
16288
|
-
* following order after each render:
|
|
16289
|
-
*
|
|
16290
|
-
* 1. `AfterRenderPhase.EarlyRead`
|
|
16291
|
-
* 2. `AfterRenderPhase.Write`
|
|
16292
|
-
* 3. `AfterRenderPhase.MixedReadWrite`
|
|
16293
|
-
* 4. `AfterRenderPhase.Read`
|
|
16294
|
-
*
|
|
16295
|
-
* Angular is unable to verify or enforce that phases are used correctly, and instead
|
|
16296
|
-
* relies on each developer to follow the guidelines documented for each value and
|
|
16297
|
-
* carefully choose the appropriate one, refactoring their code if necessary. By doing
|
|
16298
|
-
* so, Angular is better able to minimize the performance degradation associated with
|
|
16299
|
-
* manual DOM access, ensuring the best experience for the end users of your application
|
|
16300
|
-
* or library.
|
|
16301
|
-
*
|
|
16302
|
-
* @deprecated Specify the phase for your callback to run in by passing a spec-object as the first
|
|
16303
|
-
* parameter to `afterRender` or `afterNextRender` instead of a function.
|
|
16304
|
-
*/
|
|
16305
|
-
var AfterRenderPhase;
|
|
16306
|
-
(function (AfterRenderPhase) {
|
|
16307
|
-
/**
|
|
16308
|
-
* Use `AfterRenderPhase.EarlyRead` for callbacks that only need to **read** from the
|
|
16309
|
-
* DOM before a subsequent `AfterRenderPhase.Write` callback, for example to perform
|
|
16310
|
-
* custom layout that the browser doesn't natively support. Prefer the
|
|
16311
|
-
* `AfterRenderPhase.EarlyRead` phase if reading can wait until after the write phase.
|
|
16312
|
-
* **Never** write to the DOM in this phase.
|
|
16313
|
-
*
|
|
16314
|
-
* <div class="alert is-important">
|
|
16315
|
-
*
|
|
16316
|
-
* Using this value can degrade performance.
|
|
16317
|
-
* Instead, prefer using built-in browser functionality when possible.
|
|
16318
|
-
*
|
|
16319
|
-
* </div>
|
|
16320
|
-
*/
|
|
16321
|
-
AfterRenderPhase[AfterRenderPhase["EarlyRead"] = 0] = "EarlyRead";
|
|
16322
|
-
/**
|
|
16323
|
-
* Use `AfterRenderPhase.Write` for callbacks that only **write** to the DOM. **Never**
|
|
16324
|
-
* read from the DOM in this phase.
|
|
16325
|
-
*/
|
|
16326
|
-
AfterRenderPhase[AfterRenderPhase["Write"] = 1] = "Write";
|
|
16327
|
-
/**
|
|
16328
|
-
* Use `AfterRenderPhase.MixedReadWrite` for callbacks that read from or write to the
|
|
16329
|
-
* DOM, that haven't been refactored to use a different phase. **Never** use this phase if
|
|
16330
|
-
* it is possible to divide the work among the other phases instead.
|
|
16331
|
-
*
|
|
16332
|
-
* <div class="alert is-critical">
|
|
16333
|
-
*
|
|
16334
|
-
* Using this value can **significantly** degrade performance.
|
|
16335
|
-
* Instead, prefer dividing work into the appropriate phase callbacks.
|
|
16336
|
-
*
|
|
16337
|
-
* </div>
|
|
16338
|
-
*/
|
|
16339
|
-
AfterRenderPhase[AfterRenderPhase["MixedReadWrite"] = 2] = "MixedReadWrite";
|
|
16340
|
-
/**
|
|
16341
|
-
* Use `AfterRenderPhase.Read` for callbacks that only **read** from the DOM. **Never**
|
|
16342
|
-
* write to the DOM in this phase.
|
|
16343
|
-
*/
|
|
16344
|
-
AfterRenderPhase[AfterRenderPhase["Read"] = 3] = "Read";
|
|
16345
|
-
})(AfterRenderPhase || (AfterRenderPhase = {}));
|
|
16346
|
-
/** `AfterRenderRef` that does nothing. */
|
|
16347
|
-
const NOOP_AFTER_RENDER_REF = {
|
|
16348
|
-
destroy() { },
|
|
16349
|
-
};
|
|
16350
|
-
/**
|
|
16351
|
-
* Register a callback to run once before any userspace `afterRender` or
|
|
16352
|
-
* `afterNextRender` callbacks.
|
|
16353
|
-
*
|
|
16354
|
-
* This function should almost always be used instead of `afterRender` or
|
|
16355
|
-
* `afterNextRender` for implementing framework functionality. Consider:
|
|
16356
|
-
*
|
|
16357
|
-
* 1.) `AfterRenderPhase.EarlyRead` is intended to be used for implementing
|
|
16358
|
-
* custom layout. If the framework itself mutates the DOM after *any*
|
|
16359
|
-
* `AfterRenderPhase.EarlyRead` callbacks are run, the phase can no
|
|
16360
|
-
* longer reliably serve its purpose.
|
|
16361
|
-
*
|
|
16362
|
-
* 2.) Importing `afterRender` in the framework can reduce the ability for it
|
|
16363
|
-
* to be tree-shaken, and the framework shouldn't need much of the behavior.
|
|
16364
|
-
*/
|
|
16365
|
-
function internalAfterNextRender(callback, options) {
|
|
16366
|
-
const injector = options?.injector ?? inject(Injector);
|
|
16367
|
-
// Similarly to the public `afterNextRender` function, an internal one
|
|
16368
|
-
// is only invoked in a browser as long as the runOnServer option is not set.
|
|
16369
|
-
if (!options?.runOnServer && !isPlatformBrowser(injector))
|
|
16370
|
-
return;
|
|
16371
|
-
const afterRenderEventManager = injector.get(AfterRenderEventManager);
|
|
16372
|
-
afterRenderEventManager.internalCallbacks.push(callback);
|
|
16373
|
-
}
|
|
16374
|
-
function afterRender(callbackOrSpec, options) {
|
|
16375
|
-
ngDevMode &&
|
|
16376
|
-
assertNotInReactiveContext(afterRender, 'Call `afterRender` outside of a reactive context. For example, schedule the render ' +
|
|
16377
|
-
'callback inside the component constructor`.');
|
|
16378
|
-
!options && assertInInjectionContext(afterRender);
|
|
16379
|
-
const injector = options?.injector ?? inject(Injector);
|
|
16380
|
-
if (!isPlatformBrowser(injector)) {
|
|
16381
|
-
return NOOP_AFTER_RENDER_REF;
|
|
16382
|
-
}
|
|
16383
|
-
performanceMarkFeature('NgAfterRender');
|
|
16384
|
-
return afterRenderImpl(callbackOrSpec, injector,
|
|
16385
|
-
/* once */ false, options?.phase ?? AfterRenderPhase.MixedReadWrite);
|
|
16386
|
-
}
|
|
16387
|
-
function afterNextRender(callbackOrSpec, options) {
|
|
16388
|
-
!options && assertInInjectionContext(afterNextRender);
|
|
16389
|
-
const injector = options?.injector ?? inject(Injector);
|
|
16390
|
-
if (!isPlatformBrowser(injector)) {
|
|
16391
|
-
return NOOP_AFTER_RENDER_REF;
|
|
16392
|
-
}
|
|
16393
|
-
performanceMarkFeature('NgAfterNextRender');
|
|
16394
|
-
return afterRenderImpl(callbackOrSpec, injector,
|
|
16395
|
-
/* once */ true, options?.phase ?? AfterRenderPhase.MixedReadWrite);
|
|
16396
|
-
}
|
|
16397
|
-
function getSpec(callbackOrSpec, phase) {
|
|
16398
|
-
if (callbackOrSpec instanceof Function) {
|
|
16399
|
-
switch (phase) {
|
|
16400
|
-
case AfterRenderPhase.EarlyRead:
|
|
16401
|
-
return { earlyRead: callbackOrSpec };
|
|
16402
|
-
case AfterRenderPhase.Write:
|
|
16403
|
-
return { write: callbackOrSpec };
|
|
16404
|
-
case AfterRenderPhase.MixedReadWrite:
|
|
16405
|
-
return { mixedReadWrite: callbackOrSpec };
|
|
16406
|
-
case AfterRenderPhase.Read:
|
|
16407
|
-
return { read: callbackOrSpec };
|
|
16408
|
-
}
|
|
16409
|
-
}
|
|
16410
|
-
return callbackOrSpec;
|
|
16411
|
-
}
|
|
16412
|
-
/**
|
|
16413
|
-
* Shared implementation for `afterRender` and `afterNextRender`.
|
|
16414
|
-
*/
|
|
16415
|
-
function afterRenderImpl(callbackOrSpec, injector, once, phase) {
|
|
16416
|
-
const spec = getSpec(callbackOrSpec, phase);
|
|
16417
|
-
const afterRenderEventManager = injector.get(AfterRenderEventManager);
|
|
16418
|
-
// Lazily initialize the handler implementation, if necessary. This is so that it can be
|
|
16419
|
-
// tree-shaken if `afterRender` and `afterNextRender` aren't used.
|
|
16420
|
-
const callbackHandler = (afterRenderEventManager.handler ??=
|
|
16421
|
-
new AfterRenderCallbackHandlerImpl());
|
|
16422
|
-
const pipelinedArgs = [];
|
|
16423
|
-
const instances = [];
|
|
16424
|
-
const destroy = () => {
|
|
16425
|
-
for (const instance of instances) {
|
|
16426
|
-
callbackHandler.unregister(instance);
|
|
16427
|
-
}
|
|
16428
|
-
unregisterFn();
|
|
16429
|
-
};
|
|
16430
|
-
const unregisterFn = injector.get(DestroyRef).onDestroy(destroy);
|
|
16431
|
-
let callbacksLeftToRun = 0;
|
|
16432
|
-
const registerCallback = (phase, phaseCallback) => {
|
|
16433
|
-
if (!phaseCallback) {
|
|
16434
|
-
return;
|
|
16435
|
-
}
|
|
16436
|
-
const callback = once
|
|
16437
|
-
? (...args) => {
|
|
16438
|
-
callbacksLeftToRun--;
|
|
16439
|
-
if (callbacksLeftToRun < 1) {
|
|
16440
|
-
destroy();
|
|
16441
|
-
}
|
|
16442
|
-
return phaseCallback(...args);
|
|
16443
|
-
}
|
|
16444
|
-
: phaseCallback;
|
|
16445
|
-
const instance = runInInjectionContext(injector, () => new AfterRenderCallback(phase, pipelinedArgs, callback));
|
|
16446
|
-
callbackHandler.register(instance);
|
|
16447
|
-
instances.push(instance);
|
|
16448
|
-
callbacksLeftToRun++;
|
|
16449
|
-
};
|
|
16450
|
-
registerCallback(AfterRenderPhase.EarlyRead, spec.earlyRead);
|
|
16451
|
-
registerCallback(AfterRenderPhase.Write, spec.write);
|
|
16452
|
-
registerCallback(AfterRenderPhase.MixedReadWrite, spec.mixedReadWrite);
|
|
16453
|
-
registerCallback(AfterRenderPhase.Read, spec.read);
|
|
16454
|
-
return { destroy };
|
|
16455
|
-
}
|
|
16456
|
-
/**
|
|
16457
|
-
* A wrapper around a function to be used as an after render callback.
|
|
16458
|
-
*/
|
|
16459
|
-
class AfterRenderCallback {
|
|
16460
|
-
constructor(phase, pipelinedArgs, callbackFn) {
|
|
16461
|
-
this.phase = phase;
|
|
16462
|
-
this.pipelinedArgs = pipelinedArgs;
|
|
16463
|
-
this.callbackFn = callbackFn;
|
|
16464
|
-
this.zone = inject(NgZone);
|
|
16465
|
-
this.errorHandler = inject(ErrorHandler, { optional: true });
|
|
16466
|
-
// Registering a callback will notify the scheduler.
|
|
16467
|
-
inject(ChangeDetectionScheduler, { optional: true })?.notify(6 /* NotificationSource.NewRenderHook */);
|
|
16468
|
-
}
|
|
16469
|
-
invoke() {
|
|
16470
|
-
try {
|
|
16471
|
-
const result = this.zone.runOutsideAngular(() => this.callbackFn.apply(null, this.pipelinedArgs));
|
|
16472
|
-
// Clear out the args and add the result which will be passed to the next phase.
|
|
16473
|
-
this.pipelinedArgs.splice(0, this.pipelinedArgs.length, result);
|
|
16474
|
-
}
|
|
16475
|
-
catch (err) {
|
|
16476
|
-
this.errorHandler?.handleError(err);
|
|
16477
|
-
}
|
|
16478
|
-
}
|
|
16479
|
-
}
|
|
16480
|
-
/**
|
|
16481
|
-
* Core functionality for `afterRender` and `afterNextRender`. Kept separate from
|
|
16482
|
-
* `AfterRenderEventManager` for tree-shaking.
|
|
16483
|
-
*/
|
|
16484
|
-
class AfterRenderCallbackHandlerImpl {
|
|
16485
|
-
constructor() {
|
|
16486
|
-
this.executingCallbacks = false;
|
|
16487
|
-
this.buckets = {
|
|
16488
|
-
// Note: the order of these keys controls the order the phases are run.
|
|
16489
|
-
[AfterRenderPhase.EarlyRead]: new Set(),
|
|
16490
|
-
[AfterRenderPhase.Write]: new Set(),
|
|
16491
|
-
[AfterRenderPhase.MixedReadWrite]: new Set(),
|
|
16492
|
-
[AfterRenderPhase.Read]: new Set(),
|
|
16493
|
-
};
|
|
16494
|
-
this.deferredCallbacks = new Set();
|
|
16495
|
-
}
|
|
16496
|
-
register(callback) {
|
|
16497
|
-
// If we're currently running callbacks, new callbacks should be deferred
|
|
16498
|
-
// until the next render operation.
|
|
16499
|
-
const target = this.executingCallbacks ? this.deferredCallbacks : this.buckets[callback.phase];
|
|
16500
|
-
target.add(callback);
|
|
16501
|
-
}
|
|
16502
|
-
unregister(callback) {
|
|
16503
|
-
this.buckets[callback.phase].delete(callback);
|
|
16504
|
-
this.deferredCallbacks.delete(callback);
|
|
16505
|
-
}
|
|
16506
|
-
execute() {
|
|
16507
|
-
this.executingCallbacks = true;
|
|
16508
|
-
for (const bucket of Object.values(this.buckets)) {
|
|
16509
|
-
for (const callback of bucket) {
|
|
16510
|
-
callback.invoke();
|
|
16511
|
-
}
|
|
16512
|
-
}
|
|
16513
|
-
this.executingCallbacks = false;
|
|
16514
|
-
for (const callback of this.deferredCallbacks) {
|
|
16515
|
-
this.buckets[callback.phase].add(callback);
|
|
16516
|
-
}
|
|
16517
|
-
this.deferredCallbacks.clear();
|
|
16518
|
-
}
|
|
16519
|
-
destroy() {
|
|
16520
|
-
for (const bucket of Object.values(this.buckets)) {
|
|
16521
|
-
bucket.clear();
|
|
16522
|
-
}
|
|
16523
|
-
this.deferredCallbacks.clear();
|
|
16524
|
-
}
|
|
16525
|
-
}
|
|
16526
|
-
/**
|
|
16527
|
-
* Implements core timing for `afterRender` and `afterNextRender` events.
|
|
16528
|
-
* Delegates to an optional `AfterRenderCallbackHandler` for implementation.
|
|
16529
|
-
*/
|
|
16530
|
-
class AfterRenderEventManager {
|
|
16531
|
-
constructor() {
|
|
16532
|
-
/* @internal */
|
|
16533
|
-
this.handler = null;
|
|
16534
|
-
/* @internal */
|
|
16535
|
-
this.internalCallbacks = [];
|
|
16536
|
-
}
|
|
16537
|
-
/**
|
|
16538
|
-
* Executes internal and user-provided callbacks.
|
|
16539
|
-
*/
|
|
16540
|
-
execute() {
|
|
16541
|
-
this.executeInternalCallbacks();
|
|
16542
|
-
this.handler?.execute();
|
|
16543
|
-
}
|
|
16544
|
-
executeInternalCallbacks() {
|
|
16545
|
-
// Note: internal callbacks power `internalAfterNextRender`. Since internal callbacks
|
|
16546
|
-
// are fairly trivial, they are kept separate so that `AfterRenderCallbackHandlerImpl`
|
|
16547
|
-
// can still be tree-shaken unless used by the application.
|
|
16548
|
-
const callbacks = [...this.internalCallbacks];
|
|
16549
|
-
this.internalCallbacks.length = 0;
|
|
16550
|
-
for (const callback of callbacks) {
|
|
16551
|
-
callback();
|
|
16552
|
-
}
|
|
16553
|
-
}
|
|
16554
|
-
ngOnDestroy() {
|
|
16555
|
-
this.handler?.destroy();
|
|
16556
|
-
this.handler = null;
|
|
16557
|
-
this.internalCallbacks.length = 0;
|
|
16558
|
-
}
|
|
16559
|
-
/** @nocollapse */
|
|
16560
|
-
static { this.ɵprov = ɵɵdefineInjectable({
|
|
16561
|
-
token: AfterRenderEventManager,
|
|
16562
|
-
providedIn: 'root',
|
|
16563
|
-
factory: () => new AfterRenderEventManager(),
|
|
16564
|
-
}); }
|
|
16565
|
-
}
|
|
16566
|
-
|
|
16567
16250
|
function isModuleWithProviders(value) {
|
|
16568
16251
|
return value.ngModule !== undefined;
|
|
16569
16252
|
}
|
|
@@ -17017,14 +16700,12 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
17017
16700
|
'Make sure that any injector used to create this component has a correct parent.');
|
|
17018
16701
|
}
|
|
17019
16702
|
const sanitizer = rootViewInjector.get(Sanitizer, null);
|
|
17020
|
-
const afterRenderEventManager = rootViewInjector.get(AfterRenderEventManager, null);
|
|
17021
16703
|
const changeDetectionScheduler = rootViewInjector.get(ChangeDetectionScheduler, null);
|
|
17022
16704
|
const environment = {
|
|
17023
16705
|
rendererFactory,
|
|
17024
16706
|
sanitizer,
|
|
17025
16707
|
// We don't use inline effects (yet).
|
|
17026
16708
|
inlineEffectRunner: null,
|
|
17027
|
-
afterRenderEventManager,
|
|
17028
16709
|
changeDetectionScheduler,
|
|
17029
16710
|
};
|
|
17030
16711
|
const hostRenderer = rendererFactory.createRenderer(null, this.componentDef);
|
|
@@ -17057,6 +16738,7 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
17057
16738
|
enterView(rootLView);
|
|
17058
16739
|
let component;
|
|
17059
16740
|
let tElementNode;
|
|
16741
|
+
let componentView = null;
|
|
17060
16742
|
try {
|
|
17061
16743
|
const rootComponentDef = this.componentDef;
|
|
17062
16744
|
let rootDirectives;
|
|
@@ -17072,7 +16754,7 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
17072
16754
|
rootDirectives = [rootComponentDef];
|
|
17073
16755
|
}
|
|
17074
16756
|
const hostTNode = createRootComponentTNode(rootLView, hostRNode);
|
|
17075
|
-
|
|
16757
|
+
componentView = createRootComponentView(hostTNode, hostRNode, rootComponentDef, rootDirectives, rootLView, environment, hostRenderer);
|
|
17076
16758
|
tElementNode = getTNode(rootTView, HEADER_OFFSET);
|
|
17077
16759
|
// TODO(crisbeto): in practice `hostRNode` should always be defined, but there are some
|
|
17078
16760
|
// tests where the renderer is mocked out and `undefined` is returned. We should update the
|
|
@@ -17088,6 +16770,15 @@ class ComponentFactory extends ComponentFactory$1 {
|
|
|
17088
16770
|
component = createRootComponent(componentView, rootComponentDef, rootDirectives, hostDirectiveDefs, rootLView, [LifecycleHooksFeature]);
|
|
17089
16771
|
renderView(rootTView, rootLView, null);
|
|
17090
16772
|
}
|
|
16773
|
+
catch (e) {
|
|
16774
|
+
// Stop tracking the views if creation failed since
|
|
16775
|
+
// the consumer won't have a way to dereference them.
|
|
16776
|
+
if (componentView !== null) {
|
|
16777
|
+
unregisterLView(componentView);
|
|
16778
|
+
}
|
|
16779
|
+
unregisterLView(rootLView);
|
|
16780
|
+
throw e;
|
|
16781
|
+
}
|
|
17091
16782
|
finally {
|
|
17092
16783
|
leaveView();
|
|
17093
16784
|
}
|
|
@@ -17252,7 +16943,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
|
|
|
17252
16943
|
function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
|
|
17253
16944
|
if (rootSelectorOrNode) {
|
|
17254
16945
|
// The placeholder will be replaced with the actual version at build time.
|
|
17255
|
-
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.2.
|
|
16946
|
+
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '18.2.2']);
|
|
17256
16947
|
}
|
|
17257
16948
|
else {
|
|
17258
16949
|
// If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
|
|
@@ -18148,6 +17839,23 @@ function getQueryResults(lView, queryIndex) {
|
|
|
18148
17839
|
: materializeViewResults(tView, lView, tQuery, queryIndex);
|
|
18149
17840
|
}
|
|
18150
17841
|
|
|
17842
|
+
const markedFeatures = new Set();
|
|
17843
|
+
// tslint:disable:ban
|
|
17844
|
+
/**
|
|
17845
|
+
* A guarded `performance.mark` for feature marking.
|
|
17846
|
+
*
|
|
17847
|
+
* This method exists because while all supported browser and node.js version supported by Angular
|
|
17848
|
+
* support performance.mark API. This is not the case for other environments such as JSDOM and
|
|
17849
|
+
* Cloudflare workers.
|
|
17850
|
+
*/
|
|
17851
|
+
function performanceMarkFeature(feature) {
|
|
17852
|
+
if (markedFeatures.has(feature)) {
|
|
17853
|
+
return;
|
|
17854
|
+
}
|
|
17855
|
+
markedFeatures.add(feature);
|
|
17856
|
+
performance?.mark?.('mark_feature_usage', { detail: { feature } });
|
|
17857
|
+
}
|
|
17858
|
+
|
|
18151
17859
|
/**
|
|
18152
17860
|
* Checks if the given `value` is a reactive `Signal`.
|
|
18153
17861
|
*/
|
|
@@ -19789,6 +19497,268 @@ function invokeAllTriggerCleanupFns(lDetails) {
|
|
|
19789
19497
|
invokeTriggerCleanupFns(0 /* TriggerType.Regular */, lDetails);
|
|
19790
19498
|
}
|
|
19791
19499
|
|
|
19500
|
+
/**
|
|
19501
|
+
* Asserts that the current stack frame is not within a reactive context. Useful
|
|
19502
|
+
* to disallow certain code from running inside a reactive context (see {@link toSignal}).
|
|
19503
|
+
*
|
|
19504
|
+
* @param debugFn a reference to the function making the assertion (used for the error message).
|
|
19505
|
+
*
|
|
19506
|
+
* @publicApi
|
|
19507
|
+
*/
|
|
19508
|
+
function assertNotInReactiveContext(debugFn, extraContext) {
|
|
19509
|
+
// Taking a `Function` instead of a string name here prevents the un-minified name of the function
|
|
19510
|
+
// from being retained in the bundle regardless of minification.
|
|
19511
|
+
if (getActiveConsumer$1() !== null) {
|
|
19512
|
+
throw new RuntimeError(-602 /* RuntimeErrorCode.ASSERTION_NOT_INSIDE_REACTIVE_CONTEXT */, ngDevMode &&
|
|
19513
|
+
`${debugFn.name}() cannot be called from within a reactive context.${extraContext ? ` ${extraContext}` : ''}`);
|
|
19514
|
+
}
|
|
19515
|
+
}
|
|
19516
|
+
|
|
19517
|
+
/**
|
|
19518
|
+
* The phase to run an `afterRender` or `afterNextRender` callback in.
|
|
19519
|
+
*
|
|
19520
|
+
* Callbacks in the same phase run in the order they are registered. Phases run in the
|
|
19521
|
+
* following order after each render:
|
|
19522
|
+
*
|
|
19523
|
+
* 1. `AfterRenderPhase.EarlyRead`
|
|
19524
|
+
* 2. `AfterRenderPhase.Write`
|
|
19525
|
+
* 3. `AfterRenderPhase.MixedReadWrite`
|
|
19526
|
+
* 4. `AfterRenderPhase.Read`
|
|
19527
|
+
*
|
|
19528
|
+
* Angular is unable to verify or enforce that phases are used correctly, and instead
|
|
19529
|
+
* relies on each developer to follow the guidelines documented for each value and
|
|
19530
|
+
* carefully choose the appropriate one, refactoring their code if necessary. By doing
|
|
19531
|
+
* so, Angular is better able to minimize the performance degradation associated with
|
|
19532
|
+
* manual DOM access, ensuring the best experience for the end users of your application
|
|
19533
|
+
* or library.
|
|
19534
|
+
*
|
|
19535
|
+
* @deprecated Specify the phase for your callback to run in by passing a spec-object as the first
|
|
19536
|
+
* parameter to `afterRender` or `afterNextRender` instead of a function.
|
|
19537
|
+
*/
|
|
19538
|
+
var AfterRenderPhase;
|
|
19539
|
+
(function (AfterRenderPhase) {
|
|
19540
|
+
/**
|
|
19541
|
+
* Use `AfterRenderPhase.EarlyRead` for callbacks that only need to **read** from the
|
|
19542
|
+
* DOM before a subsequent `AfterRenderPhase.Write` callback, for example to perform
|
|
19543
|
+
* custom layout that the browser doesn't natively support. Prefer the
|
|
19544
|
+
* `AfterRenderPhase.EarlyRead` phase if reading can wait until after the write phase.
|
|
19545
|
+
* **Never** write to the DOM in this phase.
|
|
19546
|
+
*
|
|
19547
|
+
* <div class="alert is-important">
|
|
19548
|
+
*
|
|
19549
|
+
* Using this value can degrade performance.
|
|
19550
|
+
* Instead, prefer using built-in browser functionality when possible.
|
|
19551
|
+
*
|
|
19552
|
+
* </div>
|
|
19553
|
+
*/
|
|
19554
|
+
AfterRenderPhase[AfterRenderPhase["EarlyRead"] = 0] = "EarlyRead";
|
|
19555
|
+
/**
|
|
19556
|
+
* Use `AfterRenderPhase.Write` for callbacks that only **write** to the DOM. **Never**
|
|
19557
|
+
* read from the DOM in this phase.
|
|
19558
|
+
*/
|
|
19559
|
+
AfterRenderPhase[AfterRenderPhase["Write"] = 1] = "Write";
|
|
19560
|
+
/**
|
|
19561
|
+
* Use `AfterRenderPhase.MixedReadWrite` for callbacks that read from or write to the
|
|
19562
|
+
* DOM, that haven't been refactored to use a different phase. **Never** use this phase if
|
|
19563
|
+
* it is possible to divide the work among the other phases instead.
|
|
19564
|
+
*
|
|
19565
|
+
* <div class="alert is-critical">
|
|
19566
|
+
*
|
|
19567
|
+
* Using this value can **significantly** degrade performance.
|
|
19568
|
+
* Instead, prefer dividing work into the appropriate phase callbacks.
|
|
19569
|
+
*
|
|
19570
|
+
* </div>
|
|
19571
|
+
*/
|
|
19572
|
+
AfterRenderPhase[AfterRenderPhase["MixedReadWrite"] = 2] = "MixedReadWrite";
|
|
19573
|
+
/**
|
|
19574
|
+
* Use `AfterRenderPhase.Read` for callbacks that only **read** from the DOM. **Never**
|
|
19575
|
+
* write to the DOM in this phase.
|
|
19576
|
+
*/
|
|
19577
|
+
AfterRenderPhase[AfterRenderPhase["Read"] = 3] = "Read";
|
|
19578
|
+
})(AfterRenderPhase || (AfterRenderPhase = {}));
|
|
19579
|
+
|
|
19580
|
+
class AfterRenderManager {
|
|
19581
|
+
constructor() {
|
|
19582
|
+
this.impl = null;
|
|
19583
|
+
}
|
|
19584
|
+
execute() {
|
|
19585
|
+
this.impl?.execute();
|
|
19586
|
+
}
|
|
19587
|
+
/** @nocollapse */
|
|
19588
|
+
static { this.ɵprov = ɵɵdefineInjectable({
|
|
19589
|
+
token: AfterRenderManager,
|
|
19590
|
+
providedIn: 'root',
|
|
19591
|
+
factory: () => new AfterRenderManager(),
|
|
19592
|
+
}); }
|
|
19593
|
+
}
|
|
19594
|
+
class AfterRenderImpl {
|
|
19595
|
+
constructor() {
|
|
19596
|
+
this.ngZone = inject(NgZone);
|
|
19597
|
+
this.scheduler = inject(ChangeDetectionScheduler);
|
|
19598
|
+
this.errorHandler = inject(ErrorHandler, { optional: true });
|
|
19599
|
+
/** Current set of active sequences. */
|
|
19600
|
+
this.sequences = new Set();
|
|
19601
|
+
/** Tracks registrations made during the current set of executions. */
|
|
19602
|
+
this.deferredRegistrations = new Set();
|
|
19603
|
+
/** Whether the `AfterRenderManager` is currently executing hooks. */
|
|
19604
|
+
this.executing = false;
|
|
19605
|
+
}
|
|
19606
|
+
static { this.PHASES = [
|
|
19607
|
+
AfterRenderPhase.EarlyRead,
|
|
19608
|
+
AfterRenderPhase.Write,
|
|
19609
|
+
AfterRenderPhase.MixedReadWrite,
|
|
19610
|
+
AfterRenderPhase.Read,
|
|
19611
|
+
]; }
|
|
19612
|
+
/**
|
|
19613
|
+
* Run the sequence of phases of hooks, once through. As a result of executing some hooks, more
|
|
19614
|
+
* might be scheduled.
|
|
19615
|
+
*/
|
|
19616
|
+
execute() {
|
|
19617
|
+
this.executing = true;
|
|
19618
|
+
for (const phase of AfterRenderImpl.PHASES) {
|
|
19619
|
+
for (const sequence of this.sequences) {
|
|
19620
|
+
if (sequence.erroredOrDestroyed || !sequence.hooks[phase]) {
|
|
19621
|
+
continue;
|
|
19622
|
+
}
|
|
19623
|
+
try {
|
|
19624
|
+
sequence.pipelinedValue = this.ngZone.runOutsideAngular(() => sequence.hooks[phase](sequence.pipelinedValue));
|
|
19625
|
+
}
|
|
19626
|
+
catch (err) {
|
|
19627
|
+
sequence.erroredOrDestroyed = true;
|
|
19628
|
+
this.errorHandler?.handleError(err);
|
|
19629
|
+
}
|
|
19630
|
+
}
|
|
19631
|
+
}
|
|
19632
|
+
this.executing = false;
|
|
19633
|
+
// Cleanup step to reset sequence state and also collect one-shot sequences for removal.
|
|
19634
|
+
for (const sequence of this.sequences) {
|
|
19635
|
+
sequence.afterRun();
|
|
19636
|
+
if (sequence.once) {
|
|
19637
|
+
this.sequences.delete(sequence);
|
|
19638
|
+
}
|
|
19639
|
+
}
|
|
19640
|
+
for (const sequence of this.deferredRegistrations) {
|
|
19641
|
+
this.sequences.add(sequence);
|
|
19642
|
+
}
|
|
19643
|
+
if (this.deferredRegistrations.size > 0) {
|
|
19644
|
+
this.scheduler.notify(7 /* NotificationSource.DeferredRenderHook */);
|
|
19645
|
+
}
|
|
19646
|
+
this.deferredRegistrations.clear();
|
|
19647
|
+
}
|
|
19648
|
+
register(sequence) {
|
|
19649
|
+
if (!this.executing) {
|
|
19650
|
+
this.sequences.add(sequence);
|
|
19651
|
+
// Trigger an `ApplicationRef.tick()` if one is not already pending/running, because we have a
|
|
19652
|
+
// new render hook that needs to run.
|
|
19653
|
+
this.scheduler.notify(6 /* NotificationSource.RenderHook */);
|
|
19654
|
+
}
|
|
19655
|
+
else {
|
|
19656
|
+
this.deferredRegistrations.add(sequence);
|
|
19657
|
+
}
|
|
19658
|
+
}
|
|
19659
|
+
unregister(sequence) {
|
|
19660
|
+
if (this.executing && this.sequences.has(sequence)) {
|
|
19661
|
+
// We can't remove an `AfterRenderSequence` in the middle of iteration.
|
|
19662
|
+
// Instead, mark it as destroyed so it doesn't run any more, and mark it as one-shot so it'll
|
|
19663
|
+
// be removed at the end of the current execution.
|
|
19664
|
+
sequence.erroredOrDestroyed = true;
|
|
19665
|
+
sequence.pipelinedValue = undefined;
|
|
19666
|
+
sequence.once = true;
|
|
19667
|
+
}
|
|
19668
|
+
else {
|
|
19669
|
+
// It's safe to directly remove this sequence.
|
|
19670
|
+
this.sequences.delete(sequence);
|
|
19671
|
+
this.deferredRegistrations.delete(sequence);
|
|
19672
|
+
}
|
|
19673
|
+
}
|
|
19674
|
+
/** @nocollapse */
|
|
19675
|
+
static { this.ɵprov = ɵɵdefineInjectable({
|
|
19676
|
+
token: AfterRenderImpl,
|
|
19677
|
+
providedIn: 'root',
|
|
19678
|
+
factory: () => new AfterRenderImpl(),
|
|
19679
|
+
}); }
|
|
19680
|
+
}
|
|
19681
|
+
class AfterRenderSequence {
|
|
19682
|
+
constructor(impl, hooks, once, destroyRef) {
|
|
19683
|
+
this.impl = impl;
|
|
19684
|
+
this.hooks = hooks;
|
|
19685
|
+
this.once = once;
|
|
19686
|
+
/**
|
|
19687
|
+
* Whether this sequence errored or was destroyed during this execution, and hooks should no
|
|
19688
|
+
* longer run for it.
|
|
19689
|
+
*/
|
|
19690
|
+
this.erroredOrDestroyed = false;
|
|
19691
|
+
/**
|
|
19692
|
+
* The value returned by the last hook execution (if any), ready to be pipelined into the next
|
|
19693
|
+
* one.
|
|
19694
|
+
*/
|
|
19695
|
+
this.pipelinedValue = undefined;
|
|
19696
|
+
this.unregisterOnDestroy = destroyRef.onDestroy(() => this.destroy());
|
|
19697
|
+
}
|
|
19698
|
+
afterRun() {
|
|
19699
|
+
this.erroredOrDestroyed = false;
|
|
19700
|
+
this.pipelinedValue = undefined;
|
|
19701
|
+
}
|
|
19702
|
+
destroy() {
|
|
19703
|
+
this.impl.unregister(this);
|
|
19704
|
+
this.unregisterOnDestroy();
|
|
19705
|
+
}
|
|
19706
|
+
}
|
|
19707
|
+
|
|
19708
|
+
function afterRender(callbackOrSpec, options) {
|
|
19709
|
+
ngDevMode &&
|
|
19710
|
+
assertNotInReactiveContext(afterRender, 'Call `afterRender` outside of a reactive context. For example, schedule the render ' +
|
|
19711
|
+
'callback inside the component constructor`.');
|
|
19712
|
+
!options?.injector && assertInInjectionContext(afterRender);
|
|
19713
|
+
const injector = options?.injector ?? inject(Injector);
|
|
19714
|
+
if (!isPlatformBrowser(injector)) {
|
|
19715
|
+
return NOOP_AFTER_RENDER_REF;
|
|
19716
|
+
}
|
|
19717
|
+
performanceMarkFeature('NgAfterRender');
|
|
19718
|
+
return afterRenderImpl(callbackOrSpec, injector, options, /* once */ false);
|
|
19719
|
+
}
|
|
19720
|
+
function afterNextRender(callbackOrSpec, options) {
|
|
19721
|
+
!options?.injector && assertInInjectionContext(afterNextRender);
|
|
19722
|
+
const injector = options?.injector ?? inject(Injector);
|
|
19723
|
+
if (!isPlatformBrowser(injector)) {
|
|
19724
|
+
return NOOP_AFTER_RENDER_REF;
|
|
19725
|
+
}
|
|
19726
|
+
performanceMarkFeature('NgAfterNextRender');
|
|
19727
|
+
return afterRenderImpl(callbackOrSpec, injector, options, /* once */ true);
|
|
19728
|
+
}
|
|
19729
|
+
function getHooks(callbackOrSpec, phase) {
|
|
19730
|
+
if (callbackOrSpec instanceof Function) {
|
|
19731
|
+
const hooks = [undefined, undefined, undefined, undefined];
|
|
19732
|
+
hooks[phase] = callbackOrSpec;
|
|
19733
|
+
return hooks;
|
|
19734
|
+
}
|
|
19735
|
+
else {
|
|
19736
|
+
return [
|
|
19737
|
+
callbackOrSpec.earlyRead,
|
|
19738
|
+
callbackOrSpec.write,
|
|
19739
|
+
callbackOrSpec.mixedReadWrite,
|
|
19740
|
+
callbackOrSpec.read,
|
|
19741
|
+
];
|
|
19742
|
+
}
|
|
19743
|
+
}
|
|
19744
|
+
/**
|
|
19745
|
+
* Shared implementation for `afterRender` and `afterNextRender`.
|
|
19746
|
+
*/
|
|
19747
|
+
function afterRenderImpl(callbackOrSpec, injector, options, once) {
|
|
19748
|
+
const manager = injector.get(AfterRenderManager);
|
|
19749
|
+
// Lazily initialize the handler implementation, if necessary. This is so that it can be
|
|
19750
|
+
// tree-shaken if `afterRender` and `afterNextRender` aren't used.
|
|
19751
|
+
manager.impl ??= injector.get(AfterRenderImpl);
|
|
19752
|
+
const hooks = options?.phase ?? AfterRenderPhase.MixedReadWrite;
|
|
19753
|
+
const sequence = new AfterRenderSequence(manager.impl, getHooks(callbackOrSpec, hooks), once, injector.get(DestroyRef));
|
|
19754
|
+
manager.impl.register(sequence);
|
|
19755
|
+
return sequence;
|
|
19756
|
+
}
|
|
19757
|
+
/** `AfterRenderRef` that does nothing. */
|
|
19758
|
+
const NOOP_AFTER_RENDER_REF = {
|
|
19759
|
+
destroy() { },
|
|
19760
|
+
};
|
|
19761
|
+
|
|
19792
19762
|
/**
|
|
19793
19763
|
* Calculates a data slot index for defer block info (either static or
|
|
19794
19764
|
* instance-specific), given an index of a defer instruction.
|
|
@@ -20100,6 +20070,7 @@ function getTriggerElement(triggerLView, triggerIndex) {
|
|
|
20100
20070
|
*/
|
|
20101
20071
|
function registerDomTrigger(initialLView, tNode, triggerIndex, walkUpTimes, registerFn, callback, type) {
|
|
20102
20072
|
const injector = initialLView[INJECTOR];
|
|
20073
|
+
const zone = injector.get(NgZone);
|
|
20103
20074
|
function pollDomTrigger() {
|
|
20104
20075
|
// If the initial view was destroyed, we don't need to do anything.
|
|
20105
20076
|
if (isDestroyed(initialLView)) {
|
|
@@ -20115,7 +20086,7 @@ function registerDomTrigger(initialLView, tNode, triggerIndex, walkUpTimes, regi
|
|
|
20115
20086
|
const triggerLView = getTriggerLView(initialLView, tNode, walkUpTimes);
|
|
20116
20087
|
// Keep polling until we resolve the trigger's LView.
|
|
20117
20088
|
if (!triggerLView) {
|
|
20118
|
-
|
|
20089
|
+
afterNextRender({ read: pollDomTrigger }, { injector });
|
|
20119
20090
|
return;
|
|
20120
20091
|
}
|
|
20121
20092
|
// It's possible that the trigger's view was destroyed before we resolved the trigger element.
|
|
@@ -20124,10 +20095,14 @@ function registerDomTrigger(initialLView, tNode, triggerIndex, walkUpTimes, regi
|
|
|
20124
20095
|
}
|
|
20125
20096
|
const element = getTriggerElement(triggerLView, triggerIndex);
|
|
20126
20097
|
const cleanup = registerFn(element, () => {
|
|
20127
|
-
|
|
20128
|
-
|
|
20129
|
-
|
|
20130
|
-
|
|
20098
|
+
// `pollDomTrigger` runs outside the zone (because of `afterNextRender`) and registers its
|
|
20099
|
+
// listeners outside the zone, so we jump back into the zone prior to running the callback.
|
|
20100
|
+
zone.run(() => {
|
|
20101
|
+
if (initialLView !== triggerLView) {
|
|
20102
|
+
removeLViewOnDestroy(triggerLView, cleanup);
|
|
20103
|
+
}
|
|
20104
|
+
callback();
|
|
20105
|
+
});
|
|
20131
20106
|
}, injector);
|
|
20132
20107
|
// The trigger and deferred block might be in different LViews.
|
|
20133
20108
|
// For the main LView the cleanup would happen as a part of
|
|
@@ -20140,7 +20115,7 @@ function registerDomTrigger(initialLView, tNode, triggerIndex, walkUpTimes, regi
|
|
|
20140
20115
|
storeTriggerCleanupFn(type, lDetails, cleanup);
|
|
20141
20116
|
}
|
|
20142
20117
|
// Begin polling for the trigger.
|
|
20143
|
-
|
|
20118
|
+
afterNextRender({ read: pollDomTrigger }, { injector });
|
|
20144
20119
|
}
|
|
20145
20120
|
|
|
20146
20121
|
/**
|
|
@@ -31058,7 +31033,7 @@ class Version {
|
|
|
31058
31033
|
/**
|
|
31059
31034
|
* @publicApi
|
|
31060
31035
|
*/
|
|
31061
|
-
const VERSION = new Version('18.2.
|
|
31036
|
+
const VERSION = new Version('18.2.2');
|
|
31062
31037
|
|
|
31063
31038
|
/*
|
|
31064
31039
|
* This file exists to support compilation of @angular/core in Ivy mode.
|
|
@@ -32604,8 +32579,23 @@ class ApplicationRef {
|
|
|
32604
32579
|
/** @internal */
|
|
32605
32580
|
this._views = [];
|
|
32606
32581
|
this.internalErrorHandler = inject(INTERNAL_APPLICATION_ERROR_HANDLER);
|
|
32607
|
-
this.
|
|
32582
|
+
this.afterRenderManager = inject(AfterRenderManager);
|
|
32608
32583
|
this.zonelessEnabled = inject(ZONELESS_ENABLED);
|
|
32584
|
+
/**
|
|
32585
|
+
* Current dirty state of the application across a number of dimensions (views, afterRender hooks,
|
|
32586
|
+
* etc).
|
|
32587
|
+
*
|
|
32588
|
+
* A flag set here means that `tick()` will attempt to resolve the dirtiness when executed.
|
|
32589
|
+
*
|
|
32590
|
+
* @internal
|
|
32591
|
+
*/
|
|
32592
|
+
this.dirtyFlags = 0 /* ApplicationRefDirtyFlags.None */;
|
|
32593
|
+
/**
|
|
32594
|
+
* Like `dirtyFlags` but don't cause `tick()` to loop.
|
|
32595
|
+
*
|
|
32596
|
+
* @internal
|
|
32597
|
+
*/
|
|
32598
|
+
this.deferredDirtyFlags = 0 /* ApplicationRefDirtyFlags.None */;
|
|
32609
32599
|
// Needed for ComponentFixture temporarily during migration of autoDetect behavior
|
|
32610
32600
|
// Eventually the hostView of the fixture should just attach to ApplicationRef.
|
|
32611
32601
|
this.externalTestViews = new Set();
|
|
@@ -32751,10 +32741,13 @@ class ApplicationRef {
|
|
|
32751
32741
|
* detection pass during which all change detection must complete.
|
|
32752
32742
|
*/
|
|
32753
32743
|
tick() {
|
|
32754
|
-
this.
|
|
32744
|
+
if (!this.zonelessEnabled) {
|
|
32745
|
+
this.dirtyFlags |= 1 /* ApplicationRefDirtyFlags.ViewTreeGlobal */;
|
|
32746
|
+
}
|
|
32747
|
+
this._tick();
|
|
32755
32748
|
}
|
|
32756
32749
|
/** @internal */
|
|
32757
|
-
_tick(
|
|
32750
|
+
_tick() {
|
|
32758
32751
|
(typeof ngDevMode === 'undefined' || ngDevMode) && this.warnIfDestroyed();
|
|
32759
32752
|
if (this._runningTick) {
|
|
32760
32753
|
throw new RuntimeError(101 /* RuntimeErrorCode.RECURSIVE_APPLICATION_REF_TICK */, ngDevMode && 'ApplicationRef.tick is called recursively');
|
|
@@ -32762,7 +32755,7 @@ class ApplicationRef {
|
|
|
32762
32755
|
const prevConsumer = setActiveConsumer$1(null);
|
|
32763
32756
|
try {
|
|
32764
32757
|
this._runningTick = true;
|
|
32765
|
-
this.
|
|
32758
|
+
this.synchronize();
|
|
32766
32759
|
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
32767
32760
|
for (let view of this._views) {
|
|
32768
32761
|
view.checkNoChanges();
|
|
@@ -32779,42 +32772,21 @@ class ApplicationRef {
|
|
|
32779
32772
|
this.afterTick.next();
|
|
32780
32773
|
}
|
|
32781
32774
|
}
|
|
32782
|
-
|
|
32775
|
+
/**
|
|
32776
|
+
* Performs the core work of synchronizing the application state with the UI, resolving any
|
|
32777
|
+
* pending dirtiness (potentially in a loop).
|
|
32778
|
+
*/
|
|
32779
|
+
synchronize() {
|
|
32783
32780
|
let rendererFactory = null;
|
|
32784
32781
|
if (!this._injector.destroyed) {
|
|
32785
32782
|
rendererFactory = this._injector.get(RendererFactory2, null, { optional: true });
|
|
32786
32783
|
}
|
|
32784
|
+
// When beginning synchronization, all deferred dirtiness becomes active dirtiness.
|
|
32785
|
+
this.dirtyFlags |= this.deferredDirtyFlags;
|
|
32786
|
+
this.deferredDirtyFlags = 0 /* ApplicationRefDirtyFlags.None */;
|
|
32787
32787
|
let runs = 0;
|
|
32788
|
-
|
|
32789
|
-
|
|
32790
|
-
const isFirstPass = runs === 0;
|
|
32791
|
-
// Some notifications to run a `tick` will only trigger render hooks. so we skip refreshing views the first time through.
|
|
32792
|
-
// After the we execute render hooks in the first pass, we loop while views are marked dirty and should refresh them.
|
|
32793
|
-
if (refreshViews || !isFirstPass) {
|
|
32794
|
-
this.beforeRender.next(isFirstPass);
|
|
32795
|
-
for (let { _lView, notifyErrorHandler } of this._views) {
|
|
32796
|
-
detectChangesInViewIfRequired(_lView, notifyErrorHandler, isFirstPass, this.zonelessEnabled);
|
|
32797
|
-
}
|
|
32798
|
-
}
|
|
32799
|
-
else {
|
|
32800
|
-
// If we skipped refreshing views above, there might still be unflushed animations
|
|
32801
|
-
// because we never called `detectChangesInternal` on the views.
|
|
32802
|
-
rendererFactory?.begin?.();
|
|
32803
|
-
rendererFactory?.end?.();
|
|
32804
|
-
}
|
|
32805
|
-
runs++;
|
|
32806
|
-
afterRenderEffectManager.executeInternalCallbacks();
|
|
32807
|
-
// If we have a newly dirty view after running internal callbacks, recheck the views again
|
|
32808
|
-
// before running user-provided callbacks
|
|
32809
|
-
if (this.allViews.some(({ _lView }) => requiresRefreshOrTraversal(_lView))) {
|
|
32810
|
-
continue;
|
|
32811
|
-
}
|
|
32812
|
-
afterRenderEffectManager.execute();
|
|
32813
|
-
// If after running all afterRender callbacks we have no more views that need to be refreshed,
|
|
32814
|
-
// we can break out of the loop
|
|
32815
|
-
if (!this.allViews.some(({ _lView }) => requiresRefreshOrTraversal(_lView))) {
|
|
32816
|
-
break;
|
|
32817
|
-
}
|
|
32788
|
+
while (this.dirtyFlags !== 0 /* ApplicationRefDirtyFlags.None */ && runs++ < MAXIMUM_REFRESH_RERUNS) {
|
|
32789
|
+
this.synchronizeOnce(rendererFactory);
|
|
32818
32790
|
}
|
|
32819
32791
|
if ((typeof ngDevMode === 'undefined' || ngDevMode) && runs >= MAXIMUM_REFRESH_RERUNS) {
|
|
32820
32792
|
throw new RuntimeError(103 /* RuntimeErrorCode.INFINITE_CHANGE_DETECTION */, ngDevMode &&
|
|
@@ -32823,6 +32795,79 @@ class ApplicationRef {
|
|
|
32823
32795
|
'that afterRender hooks always mark views for check.');
|
|
32824
32796
|
}
|
|
32825
32797
|
}
|
|
32798
|
+
/**
|
|
32799
|
+
* Perform a single synchronization pass.
|
|
32800
|
+
*/
|
|
32801
|
+
synchronizeOnce(rendererFactory) {
|
|
32802
|
+
// If we happened to loop, deferred dirtiness can be processed as active dirtiness again.
|
|
32803
|
+
this.dirtyFlags |= this.deferredDirtyFlags;
|
|
32804
|
+
this.deferredDirtyFlags = 0 /* ApplicationRefDirtyFlags.None */;
|
|
32805
|
+
// First check dirty views, if there are any.
|
|
32806
|
+
if (this.dirtyFlags & 7 /* ApplicationRefDirtyFlags.ViewTreeAny */) {
|
|
32807
|
+
// Change detection on views starts in targeted mode (only check components if they're
|
|
32808
|
+
// marked as dirty) unless global checking is specifically requested via APIs like
|
|
32809
|
+
// `ApplicationRef.tick()` and the `NgZone` integration.
|
|
32810
|
+
const useGlobalCheck = Boolean(this.dirtyFlags & 1 /* ApplicationRefDirtyFlags.ViewTreeGlobal */);
|
|
32811
|
+
// Clear the view-related dirty flags.
|
|
32812
|
+
this.dirtyFlags &= ~7 /* ApplicationRefDirtyFlags.ViewTreeAny */;
|
|
32813
|
+
// Set the AfterRender bit, as we're checking views and will need to run afterRender hooks.
|
|
32814
|
+
this.dirtyFlags |= 8 /* ApplicationRefDirtyFlags.AfterRender */;
|
|
32815
|
+
// Check all potentially dirty views.
|
|
32816
|
+
this.beforeRender.next(useGlobalCheck);
|
|
32817
|
+
for (let { _lView, notifyErrorHandler } of this._views) {
|
|
32818
|
+
detectChangesInViewIfRequired(_lView, notifyErrorHandler, useGlobalCheck, this.zonelessEnabled);
|
|
32819
|
+
}
|
|
32820
|
+
// If `markForCheck()` was called during view checking, it will have set the `ViewTreeCheck`
|
|
32821
|
+
// flag. We clear the flag here because, for backwards compatibility, `markForCheck()`
|
|
32822
|
+
// during view checking doesn't cause the view to be re-checked.
|
|
32823
|
+
this.dirtyFlags &= ~4 /* ApplicationRefDirtyFlags.ViewTreeCheck */;
|
|
32824
|
+
// Check if any views are still dirty after checking and we need to loop back.
|
|
32825
|
+
this.syncDirtyFlagsWithViews();
|
|
32826
|
+
if (this.dirtyFlags & 7 /* ApplicationRefDirtyFlags.ViewTreeAny */) {
|
|
32827
|
+
// If any views are still dirty after checking, loop back before running render hooks.
|
|
32828
|
+
return;
|
|
32829
|
+
}
|
|
32830
|
+
}
|
|
32831
|
+
else {
|
|
32832
|
+
// If we skipped refreshing views above, there might still be unflushed animations
|
|
32833
|
+
// because we never called `detectChangesInternal` on the views.
|
|
32834
|
+
rendererFactory?.begin?.();
|
|
32835
|
+
rendererFactory?.end?.();
|
|
32836
|
+
}
|
|
32837
|
+
// Even if there were no dirty views, afterRender hooks might still be dirty.
|
|
32838
|
+
if (this.dirtyFlags & 8 /* ApplicationRefDirtyFlags.AfterRender */) {
|
|
32839
|
+
this.dirtyFlags &= ~8 /* ApplicationRefDirtyFlags.AfterRender */;
|
|
32840
|
+
this.afterRenderManager.execute();
|
|
32841
|
+
// afterRender hooks might influence dirty flags.
|
|
32842
|
+
}
|
|
32843
|
+
this.syncDirtyFlagsWithViews();
|
|
32844
|
+
}
|
|
32845
|
+
/**
|
|
32846
|
+
* Checks `allViews` for views which require refresh/traversal, and updates `dirtyFlags`
|
|
32847
|
+
* accordingly, with two potential behaviors:
|
|
32848
|
+
*
|
|
32849
|
+
* 1. If any of our views require updating, then this adds the `ViewTreeTraversal` dirty flag.
|
|
32850
|
+
* This _should_ be a no-op, since the scheduler should've added the flag at the same time the
|
|
32851
|
+
* view was marked as needing updating.
|
|
32852
|
+
*
|
|
32853
|
+
* TODO(alxhub): figure out if this behavior is still needed for edge cases.
|
|
32854
|
+
*
|
|
32855
|
+
* 2. If none of our views require updating, then clear the view-related `dirtyFlag`s. This
|
|
32856
|
+
* happens when the scheduler is notified of a view becoming dirty, but the view itself isn't
|
|
32857
|
+
* reachable through traversal from our roots (e.g. it's detached from the CD tree).
|
|
32858
|
+
*/
|
|
32859
|
+
syncDirtyFlagsWithViews() {
|
|
32860
|
+
if (this.allViews.some(({ _lView }) => requiresRefreshOrTraversal(_lView))) {
|
|
32861
|
+
// If after running all afterRender callbacks new views are dirty, ensure we loop back.
|
|
32862
|
+
this.dirtyFlags |= 2 /* ApplicationRefDirtyFlags.ViewTreeTraversal */;
|
|
32863
|
+
return;
|
|
32864
|
+
}
|
|
32865
|
+
else {
|
|
32866
|
+
// Even though this flag may be set, none of _our_ views require traversal, and so the
|
|
32867
|
+
// `ApplicationRef` doesn't require any repeated checking.
|
|
32868
|
+
this.dirtyFlags &= ~7 /* ApplicationRefDirtyFlags.ViewTreeAny */;
|
|
32869
|
+
}
|
|
32870
|
+
}
|
|
32826
32871
|
/**
|
|
32827
32872
|
* Attaches a view so that it will be dirty checked.
|
|
32828
32873
|
* The view will be automatically detached when it is destroyed.
|
|
@@ -33315,7 +33360,6 @@ class ChangeDetectionSchedulerImpl {
|
|
|
33315
33360
|
this.zoneIsDefined &&
|
|
33316
33361
|
(inject(SCHEDULE_IN_ROOT_ZONE, { optional: true }) ?? false);
|
|
33317
33362
|
this.cancelScheduledCallback = null;
|
|
33318
|
-
this.shouldRefreshViews = false;
|
|
33319
33363
|
this.useMicrotaskScheduler = false;
|
|
33320
33364
|
this.runningTick = false;
|
|
33321
33365
|
this.pendingRenderTaskId = null;
|
|
@@ -33357,23 +33401,34 @@ class ChangeDetectionSchedulerImpl {
|
|
|
33357
33401
|
return;
|
|
33358
33402
|
}
|
|
33359
33403
|
switch (source) {
|
|
33404
|
+
case 0 /* NotificationSource.MarkAncestorsForTraversal */: {
|
|
33405
|
+
this.appRef.dirtyFlags |= 2 /* ApplicationRefDirtyFlags.ViewTreeTraversal */;
|
|
33406
|
+
break;
|
|
33407
|
+
}
|
|
33360
33408
|
case 3 /* NotificationSource.DebugApplyChanges */:
|
|
33361
33409
|
case 2 /* NotificationSource.DeferBlockStateUpdate */:
|
|
33362
|
-
case 0 /* NotificationSource.MarkAncestorsForTraversal */:
|
|
33363
33410
|
case 4 /* NotificationSource.MarkForCheck */:
|
|
33364
33411
|
case 5 /* NotificationSource.Listener */:
|
|
33365
33412
|
case 1 /* NotificationSource.SetInput */: {
|
|
33366
|
-
this.
|
|
33413
|
+
this.appRef.dirtyFlags |= 4 /* ApplicationRefDirtyFlags.ViewTreeCheck */;
|
|
33414
|
+
break;
|
|
33415
|
+
}
|
|
33416
|
+
case 7 /* NotificationSource.DeferredRenderHook */: {
|
|
33417
|
+
// Render hooks are "deferred" when they're triggered from other render hooks. Using the
|
|
33418
|
+
// deferred dirty flags ensures that adding new hooks doesn't automatically trigger a loop
|
|
33419
|
+
// inside tick().
|
|
33420
|
+
this.appRef.deferredDirtyFlags |= 8 /* ApplicationRefDirtyFlags.AfterRender */;
|
|
33367
33421
|
break;
|
|
33368
33422
|
}
|
|
33369
|
-
case
|
|
33370
|
-
case
|
|
33371
|
-
case 6 /* NotificationSource.
|
|
33372
|
-
case
|
|
33423
|
+
case 9 /* NotificationSource.ViewDetachedFromDOM */:
|
|
33424
|
+
case 8 /* NotificationSource.ViewAttached */:
|
|
33425
|
+
case 6 /* NotificationSource.RenderHook */:
|
|
33426
|
+
case 10 /* NotificationSource.AsyncAnimationsLoaded */:
|
|
33373
33427
|
default: {
|
|
33374
33428
|
// These notifications only schedule a tick but do not change whether we should refresh
|
|
33375
33429
|
// views. Instead, we only need to run render hooks unless another notification from the
|
|
33376
33430
|
// other set is also received before `tick` happens.
|
|
33431
|
+
this.appRef.dirtyFlags |= 8 /* ApplicationRefDirtyFlags.AfterRender */;
|
|
33377
33432
|
}
|
|
33378
33433
|
}
|
|
33379
33434
|
if (!this.shouldScheduleTick()) {
|
|
@@ -33393,10 +33448,10 @@ class ChangeDetectionSchedulerImpl {
|
|
|
33393
33448
|
: scheduleCallbackWithRafRace;
|
|
33394
33449
|
this.pendingRenderTaskId = this.taskService.add();
|
|
33395
33450
|
if (this.scheduleInRootZone) {
|
|
33396
|
-
this.cancelScheduledCallback = Zone.root.run(() => scheduleCallback(() => this.tick(
|
|
33451
|
+
this.cancelScheduledCallback = Zone.root.run(() => scheduleCallback(() => this.tick()));
|
|
33397
33452
|
}
|
|
33398
33453
|
else {
|
|
33399
|
-
this.cancelScheduledCallback = this.ngZone.runOutsideAngular(() => scheduleCallback(() => this.tick(
|
|
33454
|
+
this.cancelScheduledCallback = this.ngZone.runOutsideAngular(() => scheduleCallback(() => this.tick()));
|
|
33400
33455
|
}
|
|
33401
33456
|
}
|
|
33402
33457
|
shouldScheduleTick() {
|
|
@@ -33425,18 +33480,33 @@ class ChangeDetectionSchedulerImpl {
|
|
|
33425
33480
|
* @param shouldRefreshViews Passed directly to `ApplicationRef._tick` and skips straight to
|
|
33426
33481
|
* render hooks when `false`.
|
|
33427
33482
|
*/
|
|
33428
|
-
tick(
|
|
33483
|
+
tick() {
|
|
33429
33484
|
// When ngZone.run below exits, onMicrotaskEmpty may emit if the zone is
|
|
33430
33485
|
// stable. We want to prevent double ticking so we track whether the tick is
|
|
33431
33486
|
// already running and skip it if so.
|
|
33432
33487
|
if (this.runningTick || this.appRef.destroyed) {
|
|
33433
33488
|
return;
|
|
33434
33489
|
}
|
|
33490
|
+
// The scheduler used to pass "whether to check views" as a boolean flag instead of setting
|
|
33491
|
+
// fine-grained dirtiness flags, and global checking was always used on the first pass. This
|
|
33492
|
+
// created an interesting edge case: if a notification made a view dirty and then ticked via the
|
|
33493
|
+
// scheduler (and not the zone) a global check was still performed.
|
|
33494
|
+
//
|
|
33495
|
+
// Ideally, this would not be the case, and only zone-based ticks would do global passes.
|
|
33496
|
+
// However this is a breaking change and requires fixes in g3. Until this cleanup can be done,
|
|
33497
|
+
// we add the `ViewTreeGlobal` flag to request a global check if any views are dirty in a
|
|
33498
|
+
// scheduled tick (unless zoneless is enabled, in which case global checks aren't really a
|
|
33499
|
+
// thing).
|
|
33500
|
+
//
|
|
33501
|
+
// TODO(alxhub): clean up and remove this workaround as a breaking change.
|
|
33502
|
+
if (!this.zonelessEnabled && this.appRef.dirtyFlags & 7 /* ApplicationRefDirtyFlags.ViewTreeAny */) {
|
|
33503
|
+
this.appRef.dirtyFlags |= 1 /* ApplicationRefDirtyFlags.ViewTreeGlobal */;
|
|
33504
|
+
}
|
|
33435
33505
|
const task = this.taskService.add();
|
|
33436
33506
|
try {
|
|
33437
33507
|
this.ngZone.run(() => {
|
|
33438
33508
|
this.runningTick = true;
|
|
33439
|
-
this.appRef._tick(
|
|
33509
|
+
this.appRef._tick();
|
|
33440
33510
|
}, undefined, this.schedulerTickApplyArgs);
|
|
33441
33511
|
}
|
|
33442
33512
|
catch (e) {
|
|
@@ -33462,7 +33532,6 @@ class ChangeDetectionSchedulerImpl {
|
|
|
33462
33532
|
this.cleanup();
|
|
33463
33533
|
}
|
|
33464
33534
|
cleanup() {
|
|
33465
|
-
this.shouldRefreshViews = false;
|
|
33466
33535
|
this.runningTick = false;
|
|
33467
33536
|
this.cancelScheduledCallback?.();
|
|
33468
33537
|
this.cancelScheduledCallback = null;
|
|
@@ -37891,34 +37960,6 @@ function provideGlobalEventDelegation(multiContract = false) {
|
|
|
37891
37960
|
];
|
|
37892
37961
|
}
|
|
37893
37962
|
|
|
37894
|
-
/**
|
|
37895
|
-
* Queue a state update to be performed asynchronously.
|
|
37896
|
-
*
|
|
37897
|
-
* This is useful to safely update application state that is used in an expression that was already
|
|
37898
|
-
* checked during change detection. This defers the update until later and prevents
|
|
37899
|
-
* `ExpressionChangedAfterItHasBeenChecked` errors. Using signals for state is recommended instead,
|
|
37900
|
-
* but it's not always immediately possible to change the state to a signal because it would be a
|
|
37901
|
-
* breaking change. When the callback updates state used in an expression, this needs to be
|
|
37902
|
-
* accompanied by an explicit notification to the framework that something has changed (i.e.
|
|
37903
|
-
* updating a signal or calling `ChangeDetectorRef.markForCheck()`) or may still cause
|
|
37904
|
-
* `ExpressionChangedAfterItHasBeenChecked` in dev mode or fail to synchronize the state to the DOM
|
|
37905
|
-
* in production.
|
|
37906
|
-
*/
|
|
37907
|
-
function queueStateUpdate(callback, options) {
|
|
37908
|
-
!options && assertInInjectionContext(queueStateUpdate);
|
|
37909
|
-
const injector = options?.injector ?? inject(Injector);
|
|
37910
|
-
const appRef = injector.get(ApplicationRef);
|
|
37911
|
-
let executed = false;
|
|
37912
|
-
const runCallbackOnce = () => {
|
|
37913
|
-
if (executed || appRef.destroyed)
|
|
37914
|
-
return;
|
|
37915
|
-
executed = true;
|
|
37916
|
-
callback();
|
|
37917
|
-
};
|
|
37918
|
-
internalAfterNextRender(runCallbackOnce, { injector, runOnServer: true });
|
|
37919
|
-
queueMicrotask(runCallbackOnce);
|
|
37920
|
-
}
|
|
37921
|
-
|
|
37922
37963
|
/**
|
|
37923
37964
|
* Transforms a value (typically a string) to a boolean.
|
|
37924
37965
|
* Intended to be used as a transform function of an input.
|
|
@@ -38456,5 +38497,5 @@ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
|
38456
38497
|
* Generated bundle index. Do not edit.
|
|
38457
38498
|
*/
|
|
38458
38499
|
|
|
38459
|
-
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, GLOBAL_EVENT_DELEGATION as ɵGLOBAL_EVENT_DELEGATION, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, INTERNAL_APPLICATION_ERROR_HANDLER as ɵINTERNAL_APPLICATION_ERROR_HANDLER, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, 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, provideGlobalEventDelegation as ɵprovideGlobalEventDelegation, 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 };
|
|
38500
|
+
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, AfterRenderManager as ɵAfterRenderManager, 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, GLOBAL_EVENT_DELEGATION as ɵGLOBAL_EVENT_DELEGATION, IMAGE_CONFIG as ɵIMAGE_CONFIG, IMAGE_CONFIG_DEFAULTS as ɵIMAGE_CONFIG_DEFAULTS, INJECTOR_SCOPE as ɵINJECTOR_SCOPE, ɵINPUT_SIGNAL_BRAND_WRITE_TYPE, INTERNAL_APPLICATION_ERROR_HANDLER as ɵINTERNAL_APPLICATION_ERROR_HANDLER, IS_HYDRATION_DOM_REUSE_ENABLED as ɵIS_HYDRATION_DOM_REUSE_ENABLED, JSACTION_EVENT_CONTRACT as ɵJSACTION_EVENT_CONTRACT, 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, 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, provideGlobalEventDelegation as ɵprovideGlobalEventDelegation, 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 };
|
|
38460
38501
|
//# sourceMappingURL=core.mjs.map
|