@angular/core 19.0.0-next.6 → 19.0.0-next.8

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.
Files changed (37) hide show
  1. package/LICENSE +21 -0
  2. package/fesm2022/core.mjs +648 -273
  3. package/fesm2022/core.mjs.map +1 -1
  4. package/fesm2022/primitives/event-dispatch.mjs +1 -1
  5. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  6. package/fesm2022/primitives/signals.mjs +1 -1
  7. package/fesm2022/primitives/signals.mjs.map +1 -1
  8. package/fesm2022/rxjs-interop.mjs +25 -4
  9. package/fesm2022/rxjs-interop.mjs.map +1 -1
  10. package/fesm2022/testing.mjs +12 -11
  11. package/fesm2022/testing.mjs.map +1 -1
  12. package/index.d.ts +232 -148
  13. package/package.json +1 -1
  14. package/primitives/event-dispatch/index.d.ts +1 -1
  15. package/primitives/signals/index.d.ts +1 -1
  16. package/rxjs-interop/index.d.ts +3 -1
  17. package/schematics/bundles/{checker-dcf9a14e.js → checker-e68dd7ce.js} +34 -13
  18. package/schematics/bundles/{compiler_host-6026cdf8.js → compiler_host-9a4d0c2b.js} +2 -2
  19. package/schematics/bundles/control-flow-migration.js +3 -3
  20. package/schematics/bundles/explicit-standalone-flag.js +5 -5
  21. package/schematics/bundles/group_replacements-472b2387.js +31445 -0
  22. package/schematics/bundles/{imports-44987700.js → imports-4ac08251.js} +1 -1
  23. package/schematics/bundles/inject-migration.js +28 -32
  24. package/schematics/bundles/leading_space-d190b83b.js +30 -0
  25. package/schematics/bundles/{nodes-b12e919a.js → nodes-0e7d45ca.js} +2 -2
  26. package/schematics/bundles/pending-tasks.js +103 -0
  27. package/schematics/bundles/{program-4dc8c0fa.js → program-105283c5.js} +1865 -1489
  28. package/schematics/bundles/{project_tsconfig_paths-6c9cde78.js → project_tsconfig_paths-e9ccccbf.js} +1 -1
  29. package/schematics/bundles/route-lazy-loading.js +4 -4
  30. package/schematics/bundles/signal-input-migration.js +706 -31790
  31. package/schematics/bundles/signal-queries-migration.js +905 -0
  32. package/schematics/bundles/standalone-migration.js +12 -12
  33. package/schematics/collection.json +6 -0
  34. package/schematics/migrations.json +5 -0
  35. package/schematics/ng-generate/signal-input-migration/schema.json +5 -0
  36. package/schematics/ng-generate/signal-queries-migration/schema.json +19 -0
  37. package/testing/index.d.ts +3 -1
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.0-next.6
2
+ * @license Angular v19.0.0-next.8
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -10,12 +10,12 @@ import { EnvironmentProviders as EnvironmentProviders_2 } from '@angular/core';
10
10
  import { EventContract } from '@angular/core/primitives/event-dispatch';
11
11
  import { Observable } from 'rxjs';
12
12
  import { ReactiveNode } from '@angular/core/primitives/signals';
13
- import { SIGNAL } from '@angular/core/primitives/signals';
14
13
  import { SignalNode } from '@angular/core/primitives/signals';
15
14
  import { Subject } from 'rxjs';
16
15
  import { Subscribable } from 'rxjs';
17
16
  import { Subscription } from 'rxjs';
18
17
  import { ɵProfiler as ɵProfiler_2 } from '@angular/core';
18
+ import { SIGNAL as ɵSIGNAL } from '@angular/core/primitives/signals';
19
19
 
20
20
  /**
21
21
  * @description
@@ -503,6 +503,13 @@ export declare interface AfterRenderOptions {
503
503
  * If this is not provided, the current injection context will be used instead (via `inject`).
504
504
  */
505
505
  injector?: Injector;
506
+ /**
507
+ * Whether the hook should require manual cleanup.
508
+ *
509
+ * If this is `false` (the default) the hook will automatically register itself to be cleaned up
510
+ * with the current `DestroyRef`.
511
+ */
512
+ manualCleanup?: boolean;
506
513
  /**
507
514
  * The phase the callback should be invoked in.
508
515
  *
@@ -609,7 +616,7 @@ declare class AfterRenderSequence implements AfterRenderRef {
609
616
  */
610
617
  pipelinedValue: unknown;
611
618
  private unregisterOnDestroy;
612
- constructor(impl: AfterRenderImpl, hooks: AfterRenderHooks, once: boolean, destroyRef: DestroyRef);
619
+ constructor(impl: AfterRenderImpl, hooks: AfterRenderHooks, once: boolean, destroyRef: DestroyRef | null);
613
620
  afterRun(): void;
614
621
  destroy(): void;
615
622
  }
@@ -980,6 +987,7 @@ export declare class ApplicationRef {
980
987
  private readonly internalErrorHandler;
981
988
  private readonly afterRenderManager;
982
989
  private readonly zonelessEnabled;
990
+ private readonly rootEffectScheduler;
983
991
  private externalTestViews;
984
992
  /**
985
993
  * Indicates whether this instance was destroyed.
@@ -1762,9 +1770,10 @@ export declare interface ComponentDecorator {
1762
1770
  * Unlike other directives, only one component can be instantiated for a given element in a
1763
1771
  * template.
1764
1772
  *
1765
- * A component must belong to an NgModule in order for it to be available
1766
- * to another component or application. To make it a member of an NgModule,
1767
- * list it in the `declarations` field of the `NgModule` metadata.
1773
+ * Standalone components can be directly imported in any other standalone component or NgModule.
1774
+ * NgModule based apps on the other hand require components to belong to an NgModule in
1775
+ * order for them to be available to another component or application. To make a component a
1776
+ * member of an NgModule, list it in the `declarations` field of the `NgModule` metadata.
1768
1777
  *
1769
1778
  * Note that, in addition to these options for configuring a directive,
1770
1779
  * you can control a component's runtime behavior by implementing
@@ -2282,7 +2291,7 @@ export declare const ContentChild: ContentChildDecorator;
2282
2291
  * ```
2283
2292
  *
2284
2293
  * @initializerApiFunction
2285
- * @developerPreview
2294
+ * @publicAPI
2286
2295
  */
2287
2296
  export declare const contentChild: ContentChildFunction;
2288
2297
 
@@ -2369,7 +2378,7 @@ export declare interface ContentChildDecorator {
2369
2378
  * The contentChild function creates a singular content query. It is a special function that also
2370
2379
  * provides access to required query results via the `.required` property.
2371
2380
  *
2372
- * @developerPreview
2381
+ * @publicAPI
2373
2382
  * @docsPrivate Ignored because `contentChild` is the canonical API entry.
2374
2383
  */
2375
2384
  export declare interface ContentChildFunction {
@@ -2377,7 +2386,7 @@ export declare interface ContentChildFunction {
2377
2386
  * Initializes a content child query.
2378
2387
  *
2379
2388
  * Consider using `contentChild.required` for queries that should always match.
2380
- * @developerPreview
2389
+ * @publicAPI
2381
2390
  */
2382
2391
  <LocatorT>(locator: ProviderToken<LocatorT> | string, opts?: {
2383
2392
  descendants?: boolean;
@@ -2614,10 +2623,12 @@ export declare interface CreateEffectOptions {
2614
2623
  */
2615
2624
  manualCleanup?: boolean;
2616
2625
  /**
2617
- * Whether the `effect` should allow writing to signals.
2618
- *
2619
- * Using effects to synchronize data by writing to signals can lead to confusing and potentially
2620
- * incorrect behavior, and should be enabled only when necessary.
2626
+ * Always create a root effect (which is scheduled as a microtask) regardless of whether `effect`
2627
+ * is called within a component.
2628
+ */
2629
+ forceRoot?: true;
2630
+ /**
2631
+ * @deprecated no longer required, signal writes are allowed by default.
2621
2632
  */
2622
2633
  allowSignalWrites?: boolean;
2623
2634
  }
@@ -3255,7 +3266,6 @@ declare type DestroyHookData = (HookEntry | HookData)[];
3255
3266
  */
3256
3267
  export declare function destroyPlatform(): void;
3257
3268
 
3258
-
3259
3269
  /**
3260
3270
  * `DestroyRef` lets you set callbacks to run for any cleanup or destruction behavior.
3261
3271
  * The scope of this destruction depends on where `DestroyRef` is injected. If `DestroyRef`
@@ -3892,7 +3902,20 @@ export declare interface DoCheck {
3892
3902
  }
3893
3903
 
3894
3904
  /**
3895
- * Create a global `Effect` for the given reactive function.
3905
+ * Registers an "effect" that will be scheduled & executed whenever the signals that it reads
3906
+ * changes.
3907
+ *
3908
+ * Angular has two different kinds of effect: component effects and root effects. Component effects
3909
+ * are created when `effect()` is called from a component, directive, or within a service of a
3910
+ * component/directive. Root effects are created when `effect()` is called from outside the
3911
+ * component tree, such as in a root service, or when the `forceRoot` option is provided.
3912
+ *
3913
+ * The two effect types differ in their timing. Component effects run as a component lifecycle
3914
+ * event during Angular's synchronization (change detection) process, and can safely read input
3915
+ * signals or create/destroy views that depend on component state. Root effects run as microtasks
3916
+ * and have no connection to the component tree or change detection.
3917
+ *
3918
+ * `effect()` must be run in injection context, unless the `injector` option is manually specified.
3896
3919
  *
3897
3920
  * @developerPreview
3898
3921
  */
@@ -3914,6 +3937,17 @@ export declare type EffectCleanupFn = () => void;
3914
3937
  */
3915
3938
  export declare type EffectCleanupRegisterFn = (cleanupFn: EffectCleanupFn) => void;
3916
3939
 
3940
+ declare interface EffectNode extends ReactiveNode, SchedulableEffect {
3941
+ hasRun: boolean;
3942
+ cleanupFns: EffectCleanupFn[] | undefined;
3943
+ injector: Injector;
3944
+ onDestroyFn: () => void;
3945
+ fn: (cleanupFn: EffectCleanupRegisterFn) => void;
3946
+ run(): void;
3947
+ destroy(): void;
3948
+ maybeCleanup(): void;
3949
+ }
3950
+
3917
3951
  /**
3918
3952
  * A global reactive effect, which can be manually destroyed.
3919
3953
  *
@@ -3926,6 +3960,8 @@ export declare interface EffectRef {
3926
3960
  destroy(): void;
3927
3961
  }
3928
3962
 
3963
+ declare const EFFECTS = 23;
3964
+
3929
3965
  declare const EFFECTS_TO_SCHEDULE = 22;
3930
3966
 
3931
3967
  /**
@@ -4305,65 +4341,6 @@ export declare interface ExistingSansProvider {
4305
4341
  useExisting: any;
4306
4342
  }
4307
4343
 
4308
- /**
4309
- * Experimental service that keeps track of pending tasks contributing to the stableness of Angular
4310
- * application. While several existing Angular services (ex.: `HttpClient`) will internally manage
4311
- * tasks influencing stability, this API gives control over stability to library and application
4312
- * developers for specific cases not covered by Angular internals.
4313
- *
4314
- * The concept of stability comes into play in several important scenarios:
4315
- * - SSR process needs to wait for the application stability before serializing and sending rendered
4316
- * HTML;
4317
- * - tests might want to delay assertions until the application becomes stable;
4318
- *
4319
- * @usageNotes
4320
- * ```typescript
4321
- * const pendingTasks = inject(ExperimentalPendingTasks);
4322
- * const taskCleanup = pendingTasks.add();
4323
- * // do work that should block application's stability and then:
4324
- * taskCleanup();
4325
- * ```
4326
- *
4327
- * This API is experimental. Neither the shape, nor the underlying behavior is stable and can change
4328
- * in patch versions. We will iterate on the exact API based on the feedback and our understanding
4329
- * of the problem and solution space.
4330
- *
4331
- * @publicApi
4332
- * @experimental
4333
- */
4334
- export declare class ExperimentalPendingTasks {
4335
- private internalPendingTasks;
4336
- private scheduler;
4337
- /**
4338
- * Adds a new task that should block application's stability.
4339
- * @returns A cleanup function that removes a task when called.
4340
- */
4341
- add(): () => void;
4342
- /**
4343
- * Runs an asynchronous function and blocks the application's stability until the function completes.
4344
- *
4345
- * ```
4346
- * pendingTasks.run(async () => {
4347
- * const userData = await fetch('/api/user');
4348
- * this.userData.set(userData);
4349
- * });
4350
- * ```
4351
- *
4352
- * Application stability is at least delayed until the next tick after the `run` method resolves
4353
- * so it is safe to make additional updates to application state that would require UI synchronization:
4354
- *
4355
- * ```
4356
- * const userData = await pendingTasks.run(() => fetch('/api/user'));
4357
- * this.userData.set(userData);
4358
- * ```
4359
- *
4360
- * @param fn The asynchronous function to execute
4361
- */
4362
- run<T>(fn: () => Promise<T>): Promise<T>;
4363
- /** @nocollapse */
4364
- static ɵprov: unknown;
4365
- }
4366
-
4367
4344
  /**
4368
4345
  * Definition of what a factory function should look like.
4369
4346
  */
@@ -4716,21 +4693,6 @@ export declare interface GetTestability {
4716
4693
  * */
4717
4694
  declare const GLOBAL_PUBLISH_EXPANDO_KEY = "ng";
4718
4695
 
4719
- /**
4720
- * This class is the delegate for `EventDelegationPlugin`. It represents the
4721
- * noop version of this class, with the enabled version set when
4722
- * `provideGlobalEventDelegation` is called.
4723
- */
4724
- declare class GlobalEventDelegation implements OnDestroy {
4725
- private eventContractDetails;
4726
- ngOnDestroy(): void;
4727
- supports(eventType: string): boolean;
4728
- addEventListener(element: HTMLElement, eventType: string, handler: Function): Function;
4729
- removeEventListener(element: HTMLElement, eventType: string, callback: Function): void;
4730
- static ɵfac: i0.ɵɵFactoryDeclaration<GlobalEventDelegation, never>;
4731
- static ɵprov: i0.ɵɵInjectableDeclaration<GlobalEventDelegation>;
4732
- }
4733
-
4734
4696
  /**
4735
4697
  * The goal here is to make sure that the browser DOM API is the Renderer.
4736
4698
  * We do this by defining a subset of DOM API to be the renderer and then
@@ -6300,27 +6262,6 @@ export declare type InputOptionsWithTransform<T, TransformT> = Required<Pick<Inp
6300
6262
  export declare interface InputSignal<T> extends InputSignalWithTransform<T, T> {
6301
6263
  }
6302
6264
 
6303
- /**
6304
- * Reactive node type for an input signal. An input signal extends a signal.
6305
- * There are special properties to enable transforms and required inputs.
6306
- */
6307
- declare interface InputSignalNode<T, TransformT> extends SignalNode<T> {
6308
- /**
6309
- * User-configured transform that will run whenever a new value is applied
6310
- * to the input signal node.
6311
- */
6312
- transformFn: ((value: TransformT) => T) | undefined;
6313
- /**
6314
- * Applies a new value to the input signal. Expects transforms to be run
6315
- * manually before.
6316
- *
6317
- * This function is called by the framework runtime code whenever a binding
6318
- * changes. The value can in practice be anything at runtime, but for typing
6319
- * purposes we assume it's a valid `T` value. Type-checking will enforce that.
6320
- */
6321
- applyValueToInputSignal<T, TransformT>(node: InputSignalNode<T, TransformT>, value: T): void;
6322
- }
6323
-
6324
6265
  /**
6325
6266
  * `InputSignalWithTransform` represents a special `Signal` for a
6326
6267
  * directive/component input with a `transform` function.
@@ -6346,7 +6287,7 @@ declare interface InputSignalNode<T, TransformT> extends SignalNode<T> {
6346
6287
  * @publicAPI
6347
6288
  */
6348
6289
  export declare interface InputSignalWithTransform<T, TransformT> extends Signal<T> {
6349
- [SIGNAL]: InputSignalNode<T, TransformT>;
6290
+ [ɵSIGNAL]: ɵInputSignalNode<T, TransformT>;
6350
6291
  [ɵINPUT_SIGNAL_BRAND_READ_TYPE]: T;
6351
6292
  [ɵINPUT_SIGNAL_BRAND_WRITE_TYPE]: TransformT;
6352
6293
  }
@@ -7143,6 +7084,7 @@ declare interface LView<T = unknown> extends Array<any> {
7143
7084
  * Effect scheduling operations that need to run during this views's update pass.
7144
7085
  */
7145
7086
  [EFFECTS_TO_SCHEDULE]: Array<() => void> | null;
7087
+ [EFFECTS]: Set<ViewEffectNode> | null;
7146
7088
  /**
7147
7089
  * A collection of callbacks functions that are executed when a given LView is destroyed. Those
7148
7090
  * are user defined, LView-specific destroy callbacks that don't have any corresponding TView
@@ -7166,8 +7108,6 @@ declare interface LViewEnvironment {
7166
7108
  rendererFactory: RendererFactory;
7167
7109
  /** An optional custom sanitizer. */
7168
7110
  sanitizer: Sanitizer | null;
7169
- /** Container for reactivity system `effect`s. */
7170
- inlineEffectRunner: ɵEffectScheduler | null;
7171
7111
  /** Scheduler for change detection to notify when application state changes. */
7172
7112
  changeDetectionScheduler: ɵChangeDetectionScheduler | null;
7173
7113
  }
@@ -7396,7 +7336,7 @@ export declare interface ModelOptions {
7396
7336
  * @publicAPI
7397
7337
  */
7398
7338
  export declare interface ModelSignal<T> extends WritableSignal<T>, InputSignal<T>, OutputRef<T> {
7399
- [SIGNAL]: InputSignalNode<T, T>;
7339
+ [ɵSIGNAL]: ɵInputSignalNode<T, T>;
7400
7340
  }
7401
7341
 
7402
7342
  /**
@@ -8317,6 +8257,78 @@ export declare const PACKAGE_ROOT_URL: InjectionToken<string>;
8317
8257
 
8318
8258
  declare const PARENT = 3;
8319
8259
 
8260
+ /**
8261
+ * Service that keeps track of pending tasks contributing to the stableness of Angular
8262
+ * application. While several existing Angular services (ex.: `HttpClient`) will internally manage
8263
+ * tasks influencing stability, this API gives control over stability to library and application
8264
+ * developers for specific cases not covered by Angular internals.
8265
+ *
8266
+ * The concept of stability comes into play in several important scenarios:
8267
+ * - SSR process needs to wait for the application stability before serializing and sending rendered
8268
+ * HTML;
8269
+ * - tests might want to delay assertions until the application becomes stable;
8270
+ *
8271
+ * @usageNotes
8272
+ * ```typescript
8273
+ * const pendingTasks = inject(PendingTasks);
8274
+ * const taskCleanup = pendingTasks.add();
8275
+ * // do work that should block application's stability and then:
8276
+ * taskCleanup();
8277
+ * ```
8278
+ *
8279
+ * @publicApi
8280
+ * @developerPreview
8281
+ */
8282
+ export declare class PendingTasks {
8283
+ private internalPendingTasks;
8284
+ private scheduler;
8285
+ /**
8286
+ * Adds a new task that should block application's stability.
8287
+ * @returns A cleanup function that removes a task when called.
8288
+ */
8289
+ add(): () => void;
8290
+ /**
8291
+ * Runs an asynchronous function and blocks the application's stability until the function completes.
8292
+ *
8293
+ * ```
8294
+ * pendingTasks.run(async () => {
8295
+ * const userData = await fetch('/api/user');
8296
+ * this.userData.set(userData);
8297
+ * });
8298
+ * ```
8299
+ *
8300
+ * Application stability is at least delayed until the next tick after the `run` method resolves
8301
+ * so it is safe to make additional updates to application state that would require UI synchronization:
8302
+ *
8303
+ * ```
8304
+ * const userData = await pendingTasks.run(() => fetch('/api/user'));
8305
+ * this.userData.set(userData);
8306
+ * ```
8307
+ *
8308
+ * @param fn The asynchronous function to execute
8309
+ */
8310
+ run<T>(fn: () => Promise<T>): Promise<T>;
8311
+ /** @nocollapse */
8312
+ static ɵprov: unknown;
8313
+ }
8314
+
8315
+ /**
8316
+ * Internal implementation of the pending tasks service.
8317
+ */
8318
+ declare class PendingTasksInternal implements OnDestroy {
8319
+ private taskId;
8320
+ private pendingTasks;
8321
+ private get _hasPendingTasks();
8322
+ hasPendingTasks: BehaviorSubject<boolean>;
8323
+ add(): number;
8324
+ remove(taskId: number): void;
8325
+ ngOnDestroy(): void;
8326
+ /** @nocollapse */
8327
+ static ɵprov: unknown;
8328
+ }
8329
+ export { PendingTasksInternal as ɵPendingTasks }
8330
+ export { PendingTasksInternal as ɵPendingTasksInternal }
8331
+
8320
8332
  /**
8321
8333
  * Type of the Pipe metadata.
8322
8334
  *
@@ -9030,7 +9042,7 @@ declare interface RDomTokenList {
9030
9042
  remove(token: string): void;
9031
9043
  }
9032
9044
 
9033
- declare const REACTIVE_TEMPLATE_CONSUMER = 23;
9045
+ declare const REACTIVE_TEMPLATE_CONSUMER = 24;
9034
9046
 
9035
9047
  declare interface ReactiveLViewConsumer extends ReactiveNode {
9036
9048
  lView: LView | null;
@@ -9391,6 +9403,11 @@ export declare interface RendererType2 {
9391
9403
  data: {
9392
9404
  [kind: string]: any;
9393
9405
  };
9406
+ /**
9407
+ * A function added by the {@link ɵɵExternalStylesFeature} and used by the framework to create
9408
+ * the list of external runtime style URLs.
9409
+ */
9410
+ getExternalStyles?: ((encapsulationId?: string) => string[]) | null;
9394
9411
  }
9395
9412
 
9396
9413
  /**
@@ -9480,9 +9497,15 @@ export declare abstract class Sanitizer {
9480
9497
  */
9481
9498
  declare type SanitizerFn = (value: any, tagName?: string, propName?: string) => string | TrustedHTML | TrustedScript | TrustedScriptURL;
9482
9499
 
9500
+
9501
+ /**
9502
+ * Abstraction that encompasses any kind of effect that can be scheduled.
9503
+ */
9483
9504
  declare interface SchedulableEffect {
9484
9505
  run(): void;
9485
- creationZone: unknown;
9506
+ zone: {
9507
+ run<T>(fn: () => T): T;
9508
+ } | null;
9486
9509
  }
9487
9510
 
9488
9511
 
@@ -9699,7 +9722,7 @@ export declare function setTestabilityGetter(getter: GetTestability): void;
9699
9722
  * Ordinary values can be turned into `Signal`s with the `signal` function.
9700
9723
  */
9701
9724
  export declare type Signal<T> = (() => T) & {
9702
- [SIGNAL]: unknown;
9725
+ [ɵSIGNAL]: unknown;
9703
9726
  };
9704
9727
 
9705
9728
  /**
@@ -11667,7 +11690,7 @@ export declare const ViewChild: ViewChildDecorator;
11667
11690
  * }
11668
11691
  * ```
11669
11692
  *
11670
- * @developerPreview
11693
+ * @publicAPI
11671
11694
  * @initializerApiFunction
11672
11695
  */
11673
11696
  export declare const viewChild: ViewChildFunction;
@@ -11749,7 +11772,7 @@ export declare interface ViewChildDecorator {
11749
11772
  * It is a special function that also provides access to required query results via the `.required`
11750
11773
  * property.
11751
11774
  *
11752
- * @developerPreview
11775
+ * @publicAPI
11753
11776
  * @docsPrivate Ignored because `viewChild` is the canonical API entry.
11754
11777
  */
11755
11778
  export declare interface ViewChildFunction {
@@ -11757,7 +11780,7 @@ export declare interface ViewChildFunction {
11757
11780
  * Initializes a view child query. Consider using `viewChild.required` for queries that should
11758
11781
  * always match.
11759
11782
  *
11760
- * @developerPreview
11783
+ * @publicAPI
11761
11784
  */
11762
11785
  <LocatorT>(locator: ProviderToken<LocatorT> | string): Signal<LocatorT | undefined>;
11763
11786
  <LocatorT, ReadT>(locator: ProviderToken<LocatorT> | string, opts: {
@@ -11766,7 +11789,7 @@ export declare interface ViewChildFunction {
11766
11789
  /**
11767
11790
  * Initializes a view child query that is expected to always match an element.
11768
11791
  *
11769
- * @developerPreview
11792
+ * @publicAPI
11770
11793
  */
11771
11794
  required: {
11772
11795
  <LocatorT>(locator: ProviderToken<LocatorT> | string): Signal<LocatorT>;
@@ -12064,6 +12087,10 @@ export declare abstract class ViewContainerRef {
12064
12087
  abstract detach(index?: number): ViewRef | null;
12065
12088
  }
12066
12089
 
12090
+ declare interface ViewEffectNode extends EffectNode {
12091
+ view: LView;
12092
+ }
12093
+
12067
12094
 
12068
12095
  /**
12069
12096
  * Defines the CSS styles encapsulation policies for the {@link Component} decorator's
@@ -12170,6 +12197,27 @@ export declare interface WritableSignal<T> extends Signal<T> {
12170
12197
  asReadonly(): Signal<T>;
12171
12198
  }
12172
12199
 
12200
+ /**
12201
+ * A wrapper around `ZoneAwareQueueingScheduler` that schedules flushing via the microtask queue
12202
+ * when.
12203
+ */
12204
+ declare class ZoneAwareEffectScheduler implements ɵEffectScheduler {
12205
+ private queuedEffectCount;
12206
+ private queues;
12207
+ private readonly pendingTasks;
12208
+ protected taskId: number | null;
12209
+ schedule(handle: SchedulableEffect): void;
12210
+ private enqueue;
12211
+ /**
12212
+ * Run all scheduled effects.
12213
+ *
12214
+ * Execution order of effects within the same zone is guaranteed to be FIFO, but there is no
12215
+ * ordering guarantee between effects scheduled in different zones.
12216
+ */
12217
+ flush(): void;
12218
+ private flushQueue;
12219
+ }
12220
+
12173
12221
  /**
12174
12222
  * Sanitizes the given unsafe, untrusted HTML fragment, and returns HTML text that is safe to add to
12175
12223
  * the DOM in a browser environment.
@@ -12624,6 +12672,11 @@ export declare interface ɵComponentDef<T> extends ɵDirectiveDef<T> {
12624
12672
  * standalone injectors.
12625
12673
  */
12626
12674
  getStandaloneInjector: ((parentInjector: EnvironmentInjector) => EnvironmentInjector | null) | null;
12675
+ /**
12676
+ * A function added by the {@link ɵɵExternalStylesFeature} and used by the framework to create
12677
+ * the list of external runtime style URLs.
12678
+ */
12679
+ getExternalStyles: ((encapsulationId?: string) => string[]) | null;
12627
12680
  /**
12628
12681
  * Used to store the result of `noSideEffects` function so that it is not removed by closure
12629
12682
  * compiler. The property should never be read.
@@ -12931,7 +12984,7 @@ export declare interface ɵDirectiveDef<T> {
12931
12984
  findHostDirectiveDefs: ((currentDef: ɵDirectiveDef<unknown>, matchedDefs: ɵDirectiveDef<unknown>[], hostDirectiveDefs: HostDirectiveDefs) => void) | null;
12932
12985
  /** Additional directives to be applied whenever the directive has been matched. */
12933
12986
  hostDirectives: HostDirectiveDef[] | null;
12934
- setInput: (<U extends T>(this: ɵDirectiveDef<U>, instance: U, inputSignalNode: null | InputSignalNode<unknown, unknown>, value: any, publicName: string, privateName: string) => void) | null;
12987
+ setInput: (<U extends T>(this: ɵDirectiveDef<U>, instance: U, inputSignalNode: null | ɵInputSignalNode<unknown, unknown>, value: any, publicName: string, privateName: string) => void) | null;
12935
12988
  }
12936
12989
 
12937
12990
  /**
@@ -12952,7 +13005,7 @@ export declare abstract class ɵEffectScheduler {
12952
13005
  *
12953
13006
  * It is an error to attempt to execute any effects synchronously during a scheduling operation.
12954
13007
  */
12955
- abstract scheduleEffect(e: SchedulableEffect): void;
13008
+ abstract schedule(e: SchedulableEffect): void;
12956
13009
  /**
12957
13010
  * Run any scheduled effects.
12958
13011
  */
@@ -13130,8 +13183,6 @@ export declare function ɵgetUnknownPropertyStrictMode(): boolean;
13130
13183
 
13131
13184
  export declare const ɵglobal: any;
13132
13185
 
13133
- export declare const ɵGLOBAL_EVENT_DELEGATION: InjectionToken<GlobalEventDelegation>;
13134
-
13135
13186
  /**
13136
13187
  * Default debug tools available under `window.ng`.
13137
13188
  */
@@ -13216,6 +13267,27 @@ declare const ɵINPUT_SIGNAL_BRAND_READ_TYPE: unique symbol;
13216
13267
 
13217
13268
  export declare const ɵINPUT_SIGNAL_BRAND_WRITE_TYPE: unique symbol;
13218
13269
 
13270
+ /**
13271
+ * Reactive node type for an input signal. An input signal extends a signal.
13272
+ * There are special properties to enable transforms and required inputs.
13273
+ */
13274
+ export declare interface ɵInputSignalNode<T, TransformT> extends SignalNode<T> {
13275
+ /**
13276
+ * User-configured transform that will run whenever a new value is applied
13277
+ * to the input signal node.
13278
+ */
13279
+ transformFn: ((value: TransformT) => T) | undefined;
13280
+ /**
13281
+ * Applies a new value to the input signal. Expects transforms to be run
13282
+ * manually before.
13283
+ *
13284
+ * This function is called by the framework runtime code whenever a binding
13285
+ * changes. The value can in practice be anything at runtime, but for typing
13286
+ * purposes we assume it's a valid `T` value. Type-checking will enforce that.
13287
+ */
13288
+ applyValueToInputSignal<T, TransformT>(node: ɵInputSignalNode<T, TransformT>, value: T): void;
13289
+ }
13290
+
13219
13291
  /**
13220
13292
  * `InjectionToken` used to configure how to call the `ErrorHandler`.
13221
13293
  *
@@ -13385,6 +13457,17 @@ export declare enum ɵLocaleDataIndex {
13385
13457
  ExtraData = 21
13386
13458
  }
13387
13459
 
13460
+ /**
13461
+ * Create a global `Effect` for the given reactive function.
13462
+ */
13463
+ export declare function ɵmicrotaskEffect(effectFn: (onCleanup: EffectCleanupRegisterFn) => void, options?: CreateEffectOptions): EffectRef;
13464
+
13465
+ export declare class ɵMicrotaskEffectScheduler extends ZoneAwareEffectScheduler {
13466
+ schedule(effect: SchedulableEffect): void;
13467
+ /** @nocollapse */
13468
+ static ɵprov: unknown;
13469
+ }
13470
+
13388
13471
 
13389
13472
  export declare const ɵNG_COMP_DEF: string;
13390
13473
 
@@ -13530,7 +13613,8 @@ export declare const enum ɵNotificationSource {
13530
13613
  ViewAttached = 9,
13531
13614
  ViewDetachedFromDOM = 10,
13532
13615
  AsyncAnimationsLoaded = 11,
13533
- PendingTaskRemoved = 12
13616
+ PendingTaskRemoved = 12,
13617
+ RootEffect = 13
13534
13618
  }
13535
13619
 
13536
13620
  /**
@@ -13539,21 +13623,6 @@ export declare const enum ɵNotificationSource {
13539
13623
  */
13540
13624
  export declare function ɵpatchComponentDefWithScope<C>(componentDef: ɵComponentDef<C>, transitiveScopes: ɵNgModuleTransitiveScopes): void;
13541
13625
 
13542
- /**
13543
- * Internal implementation of the pending tasks service.
13544
- */
13545
- export declare class ɵPendingTasks implements OnDestroy {
13546
- private taskId;
13547
- private pendingTasks;
13548
- private get _hasPendingTasks();
13549
- hasPendingTasks: BehaviorSubject<boolean>;
13550
- add(): number;
13551
- remove(taskId: number): void;
13552
- ngOnDestroy(): void;
13553
- /** @nocollapse */
13554
- static ɵprov: unknown;
13555
- }
13556
-
13557
13626
 
13558
13627
  /**
13559
13628
  * A guarded `performance.mark` for feature marking.
@@ -13664,13 +13733,6 @@ export declare const enum ɵProfilerEvent {
13664
13733
  */
13665
13734
  export declare const ɵPROVIDED_NG_ZONE: InjectionToken<boolean>;
13666
13735
 
13667
- /**
13668
- * Returns a set of providers required to setup support for event delegation.
13669
- * @param multiContract - Experimental support to provide one event contract
13670
- * when there are multiple binaries on the page.
13671
- */
13672
- export declare function ɵprovideGlobalEventDelegation(multiContract?: boolean): Provider[];
13673
-
13674
13736
  /**
13675
13737
  * An object that contains information about a provider that has been configured
13676
13738
  *
@@ -14106,6 +14168,8 @@ export declare function ɵsetUnknownElementStrictMode(shouldThrow: boolean): voi
14106
14168
  */
14107
14169
  export declare function ɵsetUnknownPropertyStrictMode(shouldThrow: boolean): void;
14108
14170
 
14171
+ export { ɵSIGNAL }
14172
+
14109
14173
  /**
14110
14174
  * Marker used in a comment node to ensure hydration content integrity
14111
14175
  */
@@ -15658,6 +15722,18 @@ export declare function ɵɵelementStart(index: number, name: string, attrsIndex
15658
15722
  */
15659
15723
  export declare function ɵɵenableBindings(): void;
15660
15724
 
15725
+ /**
15726
+ * A feature that adds support for external runtime styles for a component.
15727
+ * An external runtime style is a URL to a CSS stylesheet that contains the styles
15728
+ * for a given component. For browsers, this URL will be used in an appended `link` element
15729
+ * when the component is rendered. This feature is typically used for Hot Module Replacement
15730
+ * (HMR) of component stylesheets by leveraging preexisting global stylesheet HMR available
15731
+ * in most development servers.
15732
+ *
15733
+ * @codeGenApi
15734
+ */
15735
+ export declare function ɵɵExternalStylesFeature(styleUrls: string[]): ComponentDefFeature;
15736
+
15661
15737
  /**
15662
15738
  * @publicApi
15663
15739
  */
@@ -17006,6 +17082,14 @@ export declare function ɵɵrepeaterTrackByIdentity<T>(_: number, value: T): T;
17006
17082
  */
17007
17083
  export declare function ɵɵrepeaterTrackByIndex(index: number): number;
17008
17084
 
17085
+ /**
17086
+ * Replaces the metadata of a component type and re-renders all live instances of the component.
17087
+ * @param type Class whose metadata will be replaced.
17088
+ * @param applyMetadata Callback that will apply a new set of metadata on the `type` when invoked.
17089
+ * @codeGenApi
17090
+ */
17091
+ export declare function ɵɵreplaceMetadata(type: Type<unknown>, applyMetadata: () => void): void;
17092
+
17009
17093
  /**
17010
17094
  * Clears the view set in `ɵɵrestoreView` from memory. Returns the passed in
17011
17095
  * value so that it can be used as a return value of an instruction.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/core",
3
- "version": "19.0.0-next.6",
3
+ "version": "19.0.0-next.8",
4
4
  "description": "Angular - the core framework",
5
5
  "author": "angular",
6
6
  "license": "MIT",
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.0-next.6
2
+ * @license Angular v19.0.0-next.8
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */