@angular/core 19.0.5 → 19.0.7
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/LICENSE +1 -1
- package/fesm2022/core.mjs +62 -51
- package/fesm2022/core.mjs.map +1 -1
- package/fesm2022/primitives/event-dispatch.mjs +1 -24
- 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 +40 -35
- 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/bundles/{checker-eced36c5.js → checker-a3b46ff3.js} +41 -25
- package/schematics/bundles/{combine_units-438d7a79.js → combine_units-e4fe9a1e.js} +3 -3
- package/schematics/bundles/{compiler_host-82c877de.js → compiler_host-00ae769f.js} +2 -2
- package/schematics/bundles/control-flow-migration.js +3 -3
- package/schematics/bundles/explicit-standalone-flag.js +5 -5
- package/schematics/bundles/{imports-abe29092.js → imports-31a38653.js} +1 -1
- package/schematics/bundles/inject-migration.js +6 -6
- package/schematics/bundles/{leading_space-d190b83b.js → leading_space-6e7a8ec6.js} +1 -1
- package/schematics/bundles/{migrate_ts_type_references-7e102890.js → migrate_ts_type_references-c5fea22f.js} +5 -5
- package/schematics/bundles/{nodes-a9f0b985.js → nodes-88c2157f.js} +2 -2
- package/schematics/bundles/output-migration.js +5 -5
- package/schematics/bundles/pending-tasks.js +5 -5
- package/schematics/bundles/{program-c49e652e.js → program-857d3416.js} +89 -33
- package/schematics/bundles/{project_tsconfig_paths-e9ccccbf.js → project_tsconfig_paths-6c9cde78.js} +1 -1
- package/schematics/bundles/provide-initializer.js +5 -5
- package/schematics/bundles/route-lazy-loading.js +4 -4
- package/schematics/bundles/signal-input-migration.js +7 -7
- package/schematics/bundles/signal-queries-migration.js +13 -7
- package/schematics/bundles/signals.js +7 -7
- package/schematics/bundles/standalone-migration.js +8 -8
- package/testing/index.d.ts +1 -1
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
The MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2010-
|
|
3
|
+
Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/fesm2022/core.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v19.0.
|
|
2
|
+
* @license Angular v19.0.7
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -1707,8 +1707,7 @@ function getPipeDef$1(type) {
|
|
|
1707
1707
|
*/
|
|
1708
1708
|
function isStandalone(type) {
|
|
1709
1709
|
const def = getComponentDef(type) || getDirectiveDef(type) || getPipeDef$1(type);
|
|
1710
|
-
|
|
1711
|
-
return def !== null ? def.standalone : false;
|
|
1710
|
+
return def !== null && def.standalone;
|
|
1712
1711
|
}
|
|
1713
1712
|
|
|
1714
1713
|
/**
|
|
@@ -4402,7 +4401,7 @@ class NodeInjectorFactory {
|
|
|
4402
4401
|
* Example:
|
|
4403
4402
|
*
|
|
4404
4403
|
* If we have a component and directive active an a single element as declared here
|
|
4405
|
-
* ```
|
|
4404
|
+
* ```ts
|
|
4406
4405
|
* component:
|
|
4407
4406
|
* providers: [ {provide: String, useValue: 'component', multi: true} ],
|
|
4408
4407
|
* viewProviders: [ {provide: String, useValue: 'componentView', multi: true} ],
|
|
@@ -4413,7 +4412,7 @@ class NodeInjectorFactory {
|
|
|
4413
4412
|
*
|
|
4414
4413
|
* Then the expected results are:
|
|
4415
4414
|
*
|
|
4416
|
-
* ```
|
|
4415
|
+
* ```ts
|
|
4417
4416
|
* providers: ['component', 'directive']
|
|
4418
4417
|
* viewProviders: ['component', 'componentView', 'directive']
|
|
4419
4418
|
* ```
|
|
@@ -4436,7 +4435,7 @@ class NodeInjectorFactory {
|
|
|
4436
4435
|
* Example:
|
|
4437
4436
|
*
|
|
4438
4437
|
* Given:
|
|
4439
|
-
* ```
|
|
4438
|
+
* ```ts
|
|
4440
4439
|
* providers: [ {provide: String, useValue: 'all', multi: true} ],
|
|
4441
4440
|
* viewProviders: [ {provide: String, useValue: 'viewOnly', multi: true} ],
|
|
4442
4441
|
* ```
|
|
@@ -6138,7 +6137,7 @@ class PendingTasks {
|
|
|
6138
6137
|
/**
|
|
6139
6138
|
* Runs an asynchronous function and blocks the application's stability until the function completes.
|
|
6140
6139
|
*
|
|
6141
|
-
* ```
|
|
6140
|
+
* ```ts
|
|
6142
6141
|
* pendingTasks.run(async () => {
|
|
6143
6142
|
* const userData = await fetch('/api/user');
|
|
6144
6143
|
* this.userData.set(userData);
|
|
@@ -6148,7 +6147,7 @@ class PendingTasks {
|
|
|
6148
6147
|
* Application stability is at least delayed until the next tick after the `run` method resolves
|
|
6149
6148
|
* so it is safe to make additional updates to application state that would require UI synchronization:
|
|
6150
6149
|
*
|
|
6151
|
-
* ```
|
|
6150
|
+
* ```ts
|
|
6152
6151
|
* const userData = await pendingTasks.run(() => fetch('/api/user'));
|
|
6153
6152
|
* this.userData.set(userData);
|
|
6154
6153
|
* ```
|
|
@@ -6173,7 +6172,8 @@ class PendingTasks {
|
|
|
6173
6172
|
}
|
|
6174
6173
|
|
|
6175
6174
|
class EventEmitter_ extends Subject {
|
|
6176
|
-
|
|
6175
|
+
// tslint:disable-next-line:require-internal-with-underscore
|
|
6176
|
+
__isAsync;
|
|
6177
6177
|
destroyRef = undefined;
|
|
6178
6178
|
pendingTasks = undefined;
|
|
6179
6179
|
constructor(isAsync = false) {
|
|
@@ -16206,7 +16206,7 @@ function loadIcuContainerVisitor() {
|
|
|
16206
16206
|
* to determine which root belong to the ICU.
|
|
16207
16207
|
*
|
|
16208
16208
|
* Example of usage.
|
|
16209
|
-
* ```
|
|
16209
|
+
* ```ts
|
|
16210
16210
|
* const nextRNode = icuContainerIteratorStart(tIcuContainerNode, lView);
|
|
16211
16211
|
* let rNode: RNode|null;
|
|
16212
16212
|
* while(rNode = nextRNode()) {
|
|
@@ -18088,7 +18088,7 @@ function createRootComponent(componentView, rootComponentDef, rootDirectives, ho
|
|
|
18088
18088
|
function setRootNodeAttributes(hostRenderer, componentDef, hostRNode, rootSelectorOrNode) {
|
|
18089
18089
|
if (rootSelectorOrNode) {
|
|
18090
18090
|
// The placeholder will be replaced with the actual version at build time.
|
|
18091
|
-
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.
|
|
18091
|
+
setUpAttributes(hostRenderer, hostRNode, ['ng-version', '19.0.7']);
|
|
18092
18092
|
}
|
|
18093
18093
|
else {
|
|
18094
18094
|
// If host element is created as a part of this function call (i.e. `rootSelectorOrNode`
|
|
@@ -19687,7 +19687,6 @@ class NgModuleRef extends NgModuleRef$1 {
|
|
|
19687
19687
|
_parent;
|
|
19688
19688
|
// tslint:disable-next-line:require-internal-with-underscore
|
|
19689
19689
|
_bootstrapComponents = [];
|
|
19690
|
-
// tslint:disable-next-line:require-internal-with-underscore
|
|
19691
19690
|
_r3Injector;
|
|
19692
19691
|
instance;
|
|
19693
19692
|
destroyCbs = [];
|
|
@@ -21175,7 +21174,8 @@ class CachedInjectorService {
|
|
|
21175
21174
|
*
|
|
21176
21175
|
* This token is only injected in devMode
|
|
21177
21176
|
*/
|
|
21178
|
-
const DEFER_BLOCK_DEPENDENCY_INTERCEPTOR =
|
|
21177
|
+
const DEFER_BLOCK_DEPENDENCY_INTERCEPTOR =
|
|
21178
|
+
/* @__PURE__ */ new InjectionToken('DEFER_BLOCK_DEPENDENCY_INTERCEPTOR');
|
|
21179
21179
|
/**
|
|
21180
21180
|
* **INTERNAL**, token used for configuring defer block behavior.
|
|
21181
21181
|
*/
|
|
@@ -21567,7 +21567,6 @@ class Console {
|
|
|
21567
21567
|
}
|
|
21568
21568
|
// Note: for reporting errors use `DOM.logError()` as it is platform specific
|
|
21569
21569
|
warn(message) {
|
|
21570
|
-
// tslint:disable-next-line:no-console
|
|
21571
21570
|
console.warn(message);
|
|
21572
21571
|
}
|
|
21573
21572
|
static ɵfac = function Console_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Console)(); };
|
|
@@ -23004,6 +23003,15 @@ class ZoneAwareEffectScheduler {
|
|
|
23004
23003
|
schedule(handle) {
|
|
23005
23004
|
this.enqueue(handle);
|
|
23006
23005
|
}
|
|
23006
|
+
remove(handle) {
|
|
23007
|
+
const zone = handle.zone;
|
|
23008
|
+
const queue = this.queues.get(zone);
|
|
23009
|
+
if (!queue.has(handle)) {
|
|
23010
|
+
return;
|
|
23011
|
+
}
|
|
23012
|
+
queue.delete(handle);
|
|
23013
|
+
this.queuedEffectCount--;
|
|
23014
|
+
}
|
|
23007
23015
|
enqueue(handle) {
|
|
23008
23016
|
const zone = handle.zone;
|
|
23009
23017
|
if (!this.queues.has(zone)) {
|
|
@@ -23332,7 +23340,7 @@ class ApplicationRef {
|
|
|
23332
23340
|
* {@example core/ts/platform/platform.ts region='domNode'}
|
|
23333
23341
|
*/
|
|
23334
23342
|
bootstrap(componentOrFactory, rootSelectorOrNode) {
|
|
23335
|
-
(typeof ngDevMode === 'undefined' || ngDevMode) && this.
|
|
23343
|
+
(typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
|
|
23336
23344
|
const isComponentFactory = componentOrFactory instanceof ComponentFactory$1;
|
|
23337
23345
|
const initStatus = this._injector.get(ApplicationInitStatus);
|
|
23338
23346
|
if (!initStatus.done) {
|
|
@@ -23402,7 +23410,7 @@ class ApplicationRef {
|
|
|
23402
23410
|
snapshot.dispose();
|
|
23403
23411
|
return;
|
|
23404
23412
|
}
|
|
23405
|
-
(typeof ngDevMode === 'undefined' || ngDevMode) && this.
|
|
23413
|
+
(typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
|
|
23406
23414
|
if (this._runningTick) {
|
|
23407
23415
|
throw new RuntimeError(101 /* RuntimeErrorCode.RECURSIVE_APPLICATION_REF_TICK */, ngDevMode && 'ApplicationRef.tick is called recursively');
|
|
23408
23416
|
}
|
|
@@ -23533,7 +23541,7 @@ class ApplicationRef {
|
|
|
23533
23541
|
* This will throw if the view is already attached to a ViewContainer.
|
|
23534
23542
|
*/
|
|
23535
23543
|
attachView(viewRef) {
|
|
23536
|
-
(typeof ngDevMode === 'undefined' || ngDevMode) && this.
|
|
23544
|
+
(typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
|
|
23537
23545
|
const view = viewRef;
|
|
23538
23546
|
this._views.push(view);
|
|
23539
23547
|
view.attachToAppRef(this);
|
|
@@ -23542,7 +23550,7 @@ class ApplicationRef {
|
|
|
23542
23550
|
* Detaches a view from dirty checking again.
|
|
23543
23551
|
*/
|
|
23544
23552
|
detachView(viewRef) {
|
|
23545
|
-
(typeof ngDevMode === 'undefined' || ngDevMode) && this.
|
|
23553
|
+
(typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
|
|
23546
23554
|
const view = viewRef;
|
|
23547
23555
|
remove(this._views, view);
|
|
23548
23556
|
view.detachFromAppRef();
|
|
@@ -23586,7 +23594,7 @@ class ApplicationRef {
|
|
|
23586
23594
|
* @returns A function which unregisters a listener.
|
|
23587
23595
|
*/
|
|
23588
23596
|
onDestroy(callback) {
|
|
23589
|
-
(typeof ngDevMode === 'undefined' || ngDevMode) && this.
|
|
23597
|
+
(typeof ngDevMode === 'undefined' || ngDevMode) && warnIfDestroyed(this._destroyed);
|
|
23590
23598
|
this._destroyListeners.push(callback);
|
|
23591
23599
|
return () => remove(this._destroyListeners, callback);
|
|
23592
23600
|
}
|
|
@@ -23613,11 +23621,6 @@ class ApplicationRef {
|
|
|
23613
23621
|
get viewCount() {
|
|
23614
23622
|
return this._views.length;
|
|
23615
23623
|
}
|
|
23616
|
-
warnIfDestroyed() {
|
|
23617
|
-
if ((typeof ngDevMode === 'undefined' || ngDevMode) && this._destroyed) {
|
|
23618
|
-
console.warn(formatRuntimeError(406 /* RuntimeErrorCode.APPLICATION_REF_ALREADY_DESTROYED */, 'This instance of the `ApplicationRef` has already been destroyed.'));
|
|
23619
|
-
}
|
|
23620
|
-
}
|
|
23621
23624
|
static ɵfac = function ApplicationRef_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ApplicationRef)(); };
|
|
23622
23625
|
static ɵprov = /*@__PURE__*/ ɵɵdefineInjectable({ token: ApplicationRef, factory: ApplicationRef.ɵfac, providedIn: 'root' });
|
|
23623
23626
|
}
|
|
@@ -23625,6 +23628,11 @@ class ApplicationRef {
|
|
|
23625
23628
|
type: Injectable,
|
|
23626
23629
|
args: [{ providedIn: 'root' }]
|
|
23627
23630
|
}], () => [], null); })();
|
|
23631
|
+
function warnIfDestroyed(destroyed) {
|
|
23632
|
+
if (destroyed) {
|
|
23633
|
+
console.warn(formatRuntimeError(406 /* RuntimeErrorCode.APPLICATION_REF_ALREADY_DESTROYED */, 'This instance of the `ApplicationRef` has already been destroyed.'));
|
|
23634
|
+
}
|
|
23635
|
+
}
|
|
23628
23636
|
function remove(list, el) {
|
|
23629
23637
|
const index = list.indexOf(el);
|
|
23630
23638
|
if (index > -1) {
|
|
@@ -23785,7 +23793,7 @@ function triggerResourceLoading(tDetails, lView, tNode) {
|
|
|
23785
23793
|
tDetails.loadingState = DeferDependenciesLoadingState.FAILED;
|
|
23786
23794
|
if (tDetails.errorTmplIndex === null) {
|
|
23787
23795
|
const templateLocation = ngDevMode ? getTemplateLocationDetails(lView) : '';
|
|
23788
|
-
const error = new RuntimeError(750 /* RuntimeErrorCode.DEFER_LOADING_FAILED */, ngDevMode &&
|
|
23796
|
+
const error = new RuntimeError(-750 /* RuntimeErrorCode.DEFER_LOADING_FAILED */, ngDevMode &&
|
|
23789
23797
|
'Loading dependencies for `@defer` block failed, ' +
|
|
23790
23798
|
`but no \`@error\` block was configured${templateLocation}. ` +
|
|
23791
23799
|
'Consider using the `@error` block to render an error state.');
|
|
@@ -27304,7 +27312,6 @@ function reconcile(liveCollection, newCollection, trackByFn) {
|
|
|
27304
27312
|
'Duplicated keys were: \n' +
|
|
27305
27313
|
duplicatedKeysMsg.join(', \n') +
|
|
27306
27314
|
'.');
|
|
27307
|
-
// tslint:disable-next-line:no-console
|
|
27308
27315
|
console.warn(message);
|
|
27309
27316
|
}
|
|
27310
27317
|
}
|
|
@@ -28132,10 +28139,8 @@ if (typeof ngI18nClosureMode === 'undefined') {
|
|
|
28132
28139
|
// Make sure to refer to ngI18nClosureMode as ['ngI18nClosureMode'] for closure.
|
|
28133
28140
|
// NOTE: we need to have it in IIFE so that the tree-shaker is happy.
|
|
28134
28141
|
(function () {
|
|
28135
|
-
// tslint:disable-next-line:no-toplevel-property-access
|
|
28136
28142
|
_global['ngI18nClosureMode'] =
|
|
28137
28143
|
// TODO(FW-1250): validate that this actually, you know, works.
|
|
28138
|
-
// tslint:disable-next-line:no-toplevel-property-access
|
|
28139
28144
|
typeof goog !== 'undefined' && typeof goog.getMsg === 'function';
|
|
28140
28145
|
})();
|
|
28141
28146
|
}
|
|
@@ -33066,29 +33071,29 @@ function ɵɵreplaceMetadata(type, applyMetadata, namespaces, locals) {
|
|
|
33066
33071
|
}
|
|
33067
33072
|
/**
|
|
33068
33073
|
* Finds all LViews matching a specific component definition and recreates them.
|
|
33069
|
-
* @param
|
|
33074
|
+
* @param oldDef Component definition to search for.
|
|
33070
33075
|
* @param rootLView View from which to start the search.
|
|
33071
33076
|
*/
|
|
33072
|
-
function recreateMatchingLViews(
|
|
33077
|
+
function recreateMatchingLViews(oldDef, rootLView) {
|
|
33073
33078
|
ngDevMode &&
|
|
33074
|
-
assertDefined(
|
|
33079
|
+
assertDefined(oldDef.tView, 'Expected a component definition that has been instantiated at least once');
|
|
33075
33080
|
const tView = rootLView[TVIEW];
|
|
33076
33081
|
// Use `tView` to match the LView since `instanceof` can
|
|
33077
33082
|
// produce false positives when using inheritance.
|
|
33078
|
-
if (tView ===
|
|
33079
|
-
ngDevMode && assertComponentDef(
|
|
33080
|
-
recreateLView(getComponentDef(
|
|
33083
|
+
if (tView === oldDef.tView) {
|
|
33084
|
+
ngDevMode && assertComponentDef(oldDef.type);
|
|
33085
|
+
recreateLView(getComponentDef(oldDef.type), oldDef, rootLView);
|
|
33081
33086
|
return;
|
|
33082
33087
|
}
|
|
33083
33088
|
for (let i = HEADER_OFFSET; i < tView.bindingStartIndex; i++) {
|
|
33084
33089
|
const current = rootLView[i];
|
|
33085
33090
|
if (isLContainer(current)) {
|
|
33086
33091
|
for (let i = CONTAINER_HEADER_OFFSET; i < current.length; i++) {
|
|
33087
|
-
recreateMatchingLViews(
|
|
33092
|
+
recreateMatchingLViews(oldDef, current[i]);
|
|
33088
33093
|
}
|
|
33089
33094
|
}
|
|
33090
33095
|
else if (isLView(current)) {
|
|
33091
|
-
recreateMatchingLViews(
|
|
33096
|
+
recreateMatchingLViews(oldDef, current);
|
|
33092
33097
|
}
|
|
33093
33098
|
}
|
|
33094
33099
|
}
|
|
@@ -33101,15 +33106,17 @@ function recreateMatchingLViews(def, rootLView) {
|
|
|
33101
33106
|
*/
|
|
33102
33107
|
function clearRendererCache(factory, def) {
|
|
33103
33108
|
// Cast to read a private field.
|
|
33104
|
-
// NOTE: This must be kept synchronized with the renderer factory implementation in
|
|
33105
|
-
|
|
33109
|
+
// NOTE: This must be kept synchronized with the renderer factory implementation in
|
|
33110
|
+
// platform-browser and platform-browser/animations.
|
|
33111
|
+
factory.componentReplaced?.(def.id);
|
|
33106
33112
|
}
|
|
33107
33113
|
/**
|
|
33108
33114
|
* Recreates an LView in-place from a new component definition.
|
|
33109
|
-
* @param
|
|
33115
|
+
* @param newDef Definition from which to recreate the view.
|
|
33116
|
+
* @param oldDef Previous component definition being swapped out.
|
|
33110
33117
|
* @param lView View to be recreated.
|
|
33111
33118
|
*/
|
|
33112
|
-
function recreateLView(
|
|
33119
|
+
function recreateLView(newDef, oldDef, lView) {
|
|
33113
33120
|
const instance = lView[CONTEXT];
|
|
33114
33121
|
const host = lView[HOST];
|
|
33115
33122
|
// In theory the parent can also be an LContainer, but it appears like that's
|
|
@@ -33118,14 +33125,15 @@ function recreateLView(def, lView) {
|
|
|
33118
33125
|
ngDevMode && assertLView(parentLView);
|
|
33119
33126
|
const tNode = lView[T_HOST];
|
|
33120
33127
|
ngDevMode && assertTNodeType(tNode, 2 /* TNodeType.Element */);
|
|
33128
|
+
ngDevMode && assertNotEqual(newDef, oldDef, 'Expected different component definition');
|
|
33121
33129
|
// Recreate the TView since the template might've changed.
|
|
33122
|
-
const newTView = getOrCreateComponentTView(
|
|
33130
|
+
const newTView = getOrCreateComponentTView(newDef);
|
|
33123
33131
|
// Always force the creation of a new renderer to ensure state captured during construction
|
|
33124
33132
|
// stays consistent with the new component definition by clearing any old cached factories.
|
|
33125
33133
|
const rendererFactory = lView[ENVIRONMENT].rendererFactory;
|
|
33126
|
-
clearRendererCache(rendererFactory,
|
|
33134
|
+
clearRendererCache(rendererFactory, oldDef);
|
|
33127
33135
|
// Create a new LView from the new TView, but reusing the existing TNode and DOM node.
|
|
33128
|
-
const newLView = createLView(parentLView, newTView, instance, getInitialLViewFlagsFromDef(
|
|
33136
|
+
const newLView = createLView(parentLView, newTView, instance, getInitialLViewFlagsFromDef(newDef), host, tNode, null, rendererFactory.createRenderer(host, newDef), null, null, null);
|
|
33129
33137
|
// Detach the LView from its current place in the tree so we don't
|
|
33130
33138
|
// start traversing any siblings and modifying their structure.
|
|
33131
33139
|
replaceLViewInTree(parentLView, lView, newLView, tNode.index);
|
|
@@ -34567,7 +34575,7 @@ class Version {
|
|
|
34567
34575
|
/**
|
|
34568
34576
|
* @publicApi
|
|
34569
34577
|
*/
|
|
34570
|
-
const VERSION = new Version('19.0.
|
|
34578
|
+
const VERSION = new Version('19.0.7');
|
|
34571
34579
|
|
|
34572
34580
|
/**
|
|
34573
34581
|
* Combination of NgModuleFactory and ComponentFactories.
|
|
@@ -37840,7 +37848,7 @@ class IterableDiffers {
|
|
|
37840
37848
|
* which will only be applied to the injector for this component and its children.
|
|
37841
37849
|
* This step is all that's required to make a new {@link IterableDiffer} available.
|
|
37842
37850
|
*
|
|
37843
|
-
* ```
|
|
37851
|
+
* ```ts
|
|
37844
37852
|
* @Component({
|
|
37845
37853
|
* viewProviders: [
|
|
37846
37854
|
* IterableDiffers.extend([new ImmutableListDiffer()])
|
|
@@ -37914,7 +37922,7 @@ class KeyValueDiffers {
|
|
|
37914
37922
|
* which will only be applied to the injector for this component and its children.
|
|
37915
37923
|
* This step is all that's required to make a new {@link KeyValueDiffer} available.
|
|
37916
37924
|
*
|
|
37917
|
-
* ```
|
|
37925
|
+
* ```ts
|
|
37918
37926
|
* @Component({
|
|
37919
37927
|
* viewProviders: [
|
|
37920
37928
|
* KeyValueDiffers.extend([new ImmutableMapDiffer()])
|
|
@@ -39069,7 +39077,6 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
|
|
|
39069
39077
|
collectNativeNodesInLContainer(lContainer, rootNodes);
|
|
39070
39078
|
// Add defer block into info context.deferBlocks
|
|
39071
39079
|
const deferBlockInfo = {
|
|
39072
|
-
[DEFER_PARENT_BLOCK_ID]: parentDeferBlockId,
|
|
39073
39080
|
[NUM_ROOT_NODES]: rootNodes.length,
|
|
39074
39081
|
[DEFER_BLOCK_STATE$1]: lDetails[DEFER_BLOCK_STATE],
|
|
39075
39082
|
};
|
|
@@ -39077,6 +39084,10 @@ function serializeLContainer(lContainer, tNode, lView, parentDeferBlockId, conte
|
|
|
39077
39084
|
if (serializedTriggers.length > 0) {
|
|
39078
39085
|
deferBlockInfo[DEFER_HYDRATE_TRIGGERS] = serializedTriggers;
|
|
39079
39086
|
}
|
|
39087
|
+
if (parentDeferBlockId !== null) {
|
|
39088
|
+
// Serialize parent id only when it's present.
|
|
39089
|
+
deferBlockInfo[DEFER_PARENT_BLOCK_ID] = parentDeferBlockId;
|
|
39090
|
+
}
|
|
39080
39091
|
context.deferBlocks.set(deferBlockId, deferBlockInfo);
|
|
39081
39092
|
const node = unwrapRNode(lContainer);
|
|
39082
39093
|
if (node !== undefined) {
|
|
@@ -39651,7 +39662,6 @@ function withDomHydration() {
|
|
|
39651
39662
|
'thus hydration was not enabled. ' +
|
|
39652
39663
|
'Make sure the `provideClientHydration()` is included into the list ' +
|
|
39653
39664
|
'of providers in the server part of the application configuration.');
|
|
39654
|
-
// tslint:disable-next-line:no-console
|
|
39655
39665
|
console.warn(message);
|
|
39656
39666
|
}
|
|
39657
39667
|
},
|
|
@@ -40503,6 +40513,7 @@ const ROOT_EFFECT_NODE =
|
|
|
40503
40513
|
consumerDestroy$1(this);
|
|
40504
40514
|
this.onDestroyFn();
|
|
40505
40515
|
this.maybeCleanup();
|
|
40516
|
+
this.scheduler.remove(this);
|
|
40506
40517
|
},
|
|
40507
40518
|
}))();
|
|
40508
40519
|
const VIEW_EFFECT_NODE =
|
|
@@ -41107,7 +41118,7 @@ function mergeApplicationConfig(...configs) {
|
|
|
41107
41118
|
*
|
|
41108
41119
|
* @developerPreview
|
|
41109
41120
|
*/
|
|
41110
|
-
const REQUEST = new InjectionToken('REQUEST', {
|
|
41121
|
+
const REQUEST = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'REQUEST' : '', {
|
|
41111
41122
|
providedIn: 'platform',
|
|
41112
41123
|
factory: () => null,
|
|
41113
41124
|
});
|
|
@@ -41129,7 +41140,7 @@ const REQUEST = new InjectionToken('REQUEST', {
|
|
|
41129
41140
|
*
|
|
41130
41141
|
* @developerPreview
|
|
41131
41142
|
*/
|
|
41132
|
-
const RESPONSE_INIT = new InjectionToken('RESPONSE_INIT', {
|
|
41143
|
+
const RESPONSE_INIT = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'RESPONSE_INIT' : '', {
|
|
41133
41144
|
providedIn: 'platform',
|
|
41134
41145
|
factory: () => null,
|
|
41135
41146
|
});
|
|
@@ -41143,7 +41154,7 @@ const RESPONSE_INIT = new InjectionToken('RESPONSE_INIT', {
|
|
|
41143
41154
|
*
|
|
41144
41155
|
* @developerPreview
|
|
41145
41156
|
*/
|
|
41146
|
-
const REQUEST_CONTEXT = new InjectionToken('REQUEST_CONTEXT', {
|
|
41157
|
+
const REQUEST_CONTEXT = new InjectionToken(typeof ngDevMode === 'undefined' || ngDevMode ? 'REQUEST_CONTEXT' : '', {
|
|
41147
41158
|
providedIn: 'platform',
|
|
41148
41159
|
factory: () => null,
|
|
41149
41160
|
});
|