@angular/core 17.0.0-next.1 → 17.0.0-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/esm2022/rxjs-interop/src/to_signal.mjs +4 -6
  2. package/esm2022/src/core_private_export.mjs +2 -2
  3. package/esm2022/src/core_render3_private_export.mjs +5 -2
  4. package/esm2022/src/di/injection_token.mjs +12 -7
  5. package/esm2022/src/hydration/annotate.mjs +61 -30
  6. package/esm2022/src/hydration/cleanup.mjs +2 -2
  7. package/esm2022/src/linker/template_ref.mjs +3 -3
  8. package/esm2022/src/linker/view_container_ref.mjs +80 -25
  9. package/esm2022/src/render3/after_render_hooks.mjs +74 -43
  10. package/esm2022/src/render3/assert.mjs +2 -3
  11. package/esm2022/src/render3/collect_native_nodes.mjs +30 -23
  12. package/esm2022/src/render3/component.mjs +4 -3
  13. package/esm2022/src/render3/di.mjs +1 -1
  14. package/esm2022/src/render3/index.mjs +2 -2
  15. package/esm2022/src/render3/instructions/advance.mjs +3 -3
  16. package/esm2022/src/render3/instructions/all.mjs +2 -1
  17. package/esm2022/src/render3/instructions/change_detection.mjs +5 -6
  18. package/esm2022/src/render3/instructions/component_instance.mjs +23 -0
  19. package/esm2022/src/render3/instructions/control_flow.mjs +175 -3
  20. package/esm2022/src/render3/instructions/defer.mjs +409 -18
  21. package/esm2022/src/render3/instructions/shared.mjs +20 -14
  22. package/esm2022/src/render3/instructions/template.mjs +2 -1
  23. package/esm2022/src/render3/interfaces/defer.mjs +9 -0
  24. package/esm2022/src/render3/interfaces/definition.mjs +1 -1
  25. package/esm2022/src/render3/interfaces/injector.mjs +1 -1
  26. package/esm2022/src/render3/interfaces/node.mjs +16 -1
  27. package/esm2022/src/render3/interfaces/styling.mjs +4 -7
  28. package/esm2022/src/render3/interfaces/type_checks.mjs +4 -1
  29. package/esm2022/src/render3/interfaces/view.mjs +1 -1
  30. package/esm2022/src/render3/jit/environment.mjs +6 -1
  31. package/esm2022/src/render3/node_manipulation.mjs +4 -3
  32. package/esm2022/src/render3/reactive_lview_consumer.mjs +25 -45
  33. package/esm2022/src/render3/reactivity/effect.mjs +8 -8
  34. package/esm2022/src/render3/util/injector_utils.mjs +1 -1
  35. package/esm2022/src/render3/view_manipulation.mjs +13 -2
  36. package/esm2022/src/signals/index.mjs +4 -4
  37. package/esm2022/src/signals/src/api.mjs +2 -11
  38. package/esm2022/src/signals/src/computed.mjs +43 -93
  39. package/esm2022/src/signals/src/graph.mjs +238 -162
  40. package/esm2022/src/signals/src/signal.mjs +59 -79
  41. package/esm2022/src/signals/src/watch.mjs +38 -52
  42. package/esm2022/src/signals/src/weak_ref.mjs +2 -29
  43. package/esm2022/src/util/dom.mjs +2 -2
  44. package/esm2022/src/util/security/trusted_type_defs.mjs +1 -1
  45. package/esm2022/src/util/security/trusted_types.mjs +1 -1
  46. package/esm2022/src/version.mjs +1 -1
  47. package/esm2022/src/zone/ng_zone.mjs +16 -1
  48. package/esm2022/testing/src/logger.mjs +3 -3
  49. package/esm2022/testing/src/test_bed.mjs +2 -3
  50. package/esm2022/testing/src/test_bed_compiler.mjs +9 -13
  51. package/fesm2022/core.mjs +18796 -18114
  52. package/fesm2022/core.mjs.map +1 -1
  53. package/fesm2022/rxjs-interop.mjs +9 -708
  54. package/fesm2022/rxjs-interop.mjs.map +1 -1
  55. package/fesm2022/testing.mjs +35 -25672
  56. package/fesm2022/testing.mjs.map +1 -1
  57. package/index.d.ts +549 -232
  58. package/package.json +1 -1
  59. package/rxjs-interop/index.d.ts +1 -1
  60. package/schematics/ng-generate/standalone-migration/bundle.js +7307 -6572
  61. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  62. package/testing/index.d.ts +1 -1
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v17.0.0-next.1
2
+ * @license Angular v17.0.0-next.3
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -164,16 +164,6 @@ export declare function afterNextRender(callback: VoidFunction, options?: AfterR
164
164
  */
165
165
  export declare function afterRender(callback: VoidFunction, options?: AfterRenderOptions): AfterRenderRef;
166
166
 
167
- /**
168
- * A wrapper around a function to be used as an after render callback.
169
- * @private
170
- */
171
- declare class AfterRenderCallback {
172
- private callback;
173
- constructor(callback: VoidFunction);
174
- invoke(): void;
175
- }
176
-
177
167
  /**
178
168
  * Options passed to `afterRender` and `afterNextRender`.
179
169
  *
@@ -1466,6 +1456,11 @@ declare interface ComponentDefinition<T> extends Omit<DirectiveDefinition<T>, 'f
1466
1456
  schemas?: SchemaMetadata[] | null;
1467
1457
  }
1468
1458
 
1459
+ /** Component dependencies info as calculated during runtime by the deps tracker. */
1460
+ declare interface ComponentDependencies {
1461
+ dependencies: DependencyTypeList;
1462
+ }
1463
+
1469
1464
  /**
1470
1465
  * Base class for a factory that can create a component dynamically.
1471
1466
  * Instantiate a factory for a given type of component with `resolveComponentFactory()`.
@@ -1937,17 +1932,18 @@ declare const CONTEXT = 8;
1937
1932
  * const applicationRef = await bootstrapApplication(RootComponent);
1938
1933
  *
1939
1934
  * // Locate a DOM node that would be used as a host.
1940
- * const host = document.getElementById('hello-component-host');
1935
+ * const hostElement = document.getElementById('hello-component-host');
1941
1936
  *
1942
1937
  * // Get an `EnvironmentInjector` instance from the `ApplicationRef`.
1943
1938
  * const environmentInjector = applicationRef.injector;
1944
1939
  *
1945
1940
  * // We can now create a `ComponentRef` instance.
1946
- * const componentRef = createComponent(HelloComponent, {host, environmentInjector});
1941
+ * const componentRef = createComponent(HelloComponent, {hostElement, environmentInjector});
1947
1942
  *
1948
1943
  * // Last step is to register the newly created ref using the `ApplicationRef` instance
1949
1944
  * // to include the component view into change detection cycles.
1950
1945
  * applicationRef.attachView(componentRef.hostView);
1946
+ * componentRef.changeDetectorRef.detectChanges();
1951
1947
  * ```
1952
1948
  *
1953
1949
  * @param component Component class reference.
@@ -2401,7 +2397,27 @@ export declare class DefaultIterableDiffer<V> implements IterableDiffer<V>, Iter
2401
2397
  private _addToRemovals;
2402
2398
  }
2403
2399
 
2404
- declare type DeferredDepsFn = () => Array<Promise<Type<unknown>> | Type<unknown>>;
2400
+ /**
2401
+ * Describes the state of defer block dependency loading.
2402
+ */
2403
+ declare const enum DeferDependenciesLoadingState {
2404
+ /** Initial state, dependency loading is not yet triggered */
2405
+ NOT_STARTED = 0,
2406
+ /** Dependency loading was scheduled (e.g. `on idle`), but has not started yet */
2407
+ SCHEDULED = 1,
2408
+ /** Dependency loading is in progress */
2409
+ IN_PROGRESS = 2,
2410
+ /** Dependency loading has completed successfully */
2411
+ COMPLETE = 3,
2412
+ /** Dependency loading has failed */
2413
+ FAILED = 4
2414
+ }
2415
+
2416
+ /** Configuration object for a `{:loading}` block as it is stored in the component constants. */
2417
+ declare type DeferredLoadingBlockConfig = [minimumTime: number | null, afterTime: number | null];
2418
+
2419
+ /** Configuration object for a `{:placeholder}` block as it is stored in the component constants. */
2420
+ declare type DeferredPlaceholderBlockConfig = [afterTime: number | null];
2405
2421
 
2406
2422
  /**
2407
2423
  * @deprecated in v8, delete after v10. This API should be used only by generated code, and that
@@ -2460,7 +2476,103 @@ declare interface DehydratedView {
2460
2476
  disconnectedNodes?: Set<number> | null;
2461
2477
  }
2462
2478
 
2463
- declare type DependencyTypeList = (ɵDirectiveType<any> | ɵComponentType<any> | PipeType<any> | Type<any>)[];
2479
+ /**
2480
+ * Describes the shape of a function generated by the compiler
2481
+ * to download dependencies that can be defer-loaded.
2482
+ */
2483
+ declare type DependencyResolverFn = () => Array<Promise<DependencyType>>;
2484
+
2485
+ declare type DependencyType = ɵDirectiveType<any> | ɵComponentType<any> | PipeType<any> | Type<any>;
2486
+
2487
+ declare type DependencyTypeList = Array<DependencyType>;
2488
+
2489
+ /**
2490
+ * An implementation of DepsTrackerApi which will be used for JIT and local compilation.
2491
+ */
2492
+ declare class DepsTracker implements DepsTrackerApi {
2493
+ private ownerNgModule;
2494
+ private ngModulesWithSomeUnresolvedDecls;
2495
+ private ngModulesScopeCache;
2496
+ private standaloneComponentsScopeCache;
2497
+ /**
2498
+ * Attempts to resolve ng module's forward ref declarations as much as possible and add them to
2499
+ * the `ownerNgModule` map. This method normally should be called after the initial parsing when
2500
+ * all the forward refs are resolved (e.g., when trying to render a component)
2501
+ */
2502
+ private resolveNgModulesDecls;
2503
+ /** @override */
2504
+ getComponentDependencies(type: ɵComponentType<any>, rawImports?: RawScopeInfoFromDecorator[]): ComponentDependencies;
2505
+ /**
2506
+ * @override
2507
+ * This implementation does not make use of param scopeInfo since it assumes the scope info is
2508
+ * already added to the type itself through methods like {@link ɵɵsetNgModuleScope}
2509
+ */
2510
+ registerNgModule(type: Type<any>, scopeInfo: NgModuleScopeInfoFromDecorator): void;
2511
+ /** @override */
2512
+ clearScopeCacheFor(type: Type<any>): void;
2513
+ /** @override */
2514
+ getNgModuleScope(type: ɵNgModuleType<any>): NgModuleScope;
2515
+ /** Compute NgModule scope afresh. */
2516
+ private computeNgModuleScope;
2517
+ /** @override */
2518
+ getStandaloneComponentScope(type: ɵComponentType<any>, rawImports?: RawScopeInfoFromDecorator[]): StandaloneComponentScope;
2519
+ private computeStandaloneComponentScope;
2520
+ }
2521
+
2522
+ /**
2523
+ * Public API for runtime deps tracker (RDT).
2524
+ *
2525
+ * All downstream tools should only use these methods.
2526
+ */
2527
+ declare interface DepsTrackerApi {
2528
+ /**
2529
+ * Computes the component dependencies, i.e., a set of components/directive/pipes that could be
2530
+ * present in the component's template (This set might contain directives/components/pipes not
2531
+ * necessarily used in the component's template depending on the implementation).
2532
+ *
2533
+ * Standalone components should specify `rawImports` as this information is not available from
2534
+ * their type. The consumer (e.g., {@link getStandaloneDefFunctions}) is expected to pass this
2535
+ * parameter.
2536
+ *
2537
+ * The implementation is expected to use some caching mechanism in order to optimize the resources
2538
+ * needed to do this computation.
2539
+ */
2540
+ getComponentDependencies(cmp: ɵComponentType<any>, rawImports?: (Type<any> | (() => Type<any>))[]): ComponentDependencies;
2541
+ /**
2542
+ * Registers an NgModule into the tracker with the given scope info.
2543
+ *
2544
+ * This method should be called for every NgModule whether it is compiled in local mode or not.
2545
+ * This is needed in order to compute component's dependencies as some dependencies might be in
2546
+ * different compilation units with different compilation mode.
2547
+ */
2548
+ registerNgModule(type: Type<any>, scopeInfo: NgModuleScopeInfoFromDecorator): void;
2549
+ /**
2550
+ * Clears the scope cache for NgModule or standalone component. This will force re-calculation of
2551
+ * the scope, which could be an expensive operation as it involves aggregating transitive closure.
2552
+ *
2553
+ * The main application of this method is for test beds where we want to clear the cache to
2554
+ * enforce scope update after overriding.
2555
+ */
2556
+ clearScopeCacheFor(type: Type<any>): void;
2557
+ /**
2558
+ * Returns the scope of NgModule. Mainly to be used by JIT and test bed.
2559
+ *
2560
+ * The scope value here is memoized. To enforce a new calculation bust the cache by using
2561
+ * `clearScopeCacheFor` method.
2562
+ */
2563
+ getNgModuleScope(type: ɵNgModuleType<any>): NgModuleScope;
2564
+ /**
2565
+ * Returns the scope of standalone component. Mainly to be used by JIT. This method should be
2566
+ * called lazily after the initial parsing so that all the forward refs can be resolved.
2567
+ *
2568
+ * @param rawImports the imports statement as appears on the component decorate which consists of
2569
+ * Type as well as forward refs.
2570
+ *
2571
+ * The scope value here is memoized. To enforce a new calculation bust the cache by using
2572
+ * `clearScopeCacheFor` method.
2573
+ */
2574
+ getStandaloneComponentScope(type: ɵComponentType<any>, rawImports: (Type<any> | (() => Type<any>))[]): StandaloneComponentScope;
2575
+ }
2464
2576
 
2465
2577
  declare const DESCENDANT_VIEWS_TO_REFRESH = 5;
2466
2578
 
@@ -4592,11 +4704,17 @@ export declare enum InjectFlags {
4592
4704
  * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by
4593
4705
  * the `Injector`. This provides an additional level of type safety.
4594
4706
  *
4595
- * ```
4596
- * interface MyInterface {...}
4597
- * const myInterface = injector.get(new InjectionToken<MyInterface>('SomeToken'));
4598
- * // myInterface is inferred to be MyInterface.
4599
- * ```
4707
+ * <div class="alert is-helpful">
4708
+ *
4709
+ * **Important Note**: Ensure that you use the same instance of the `InjectionToken` in both the
4710
+ * provider and the injection call. Creating a new instance of `InjectionToken` in different places,
4711
+ * even with the same description, will be treated as different tokens by Angular's DI system,
4712
+ * leading to a `NullInjectorError`.
4713
+ *
4714
+ * </div>
4715
+ *
4716
+ * <code-example format="typescript" language="typescript" path="injection-token/src/main.ts"
4717
+ * region="InjectionToken"></code-example>
4600
4718
  *
4601
4719
  * When creating an `InjectionToken`, you can optionally specify a factory function which returns
4602
4720
  * (possibly by creating) a default value of the parameterized type `T`. This sets up the
@@ -4623,7 +4741,6 @@ export declare enum InjectFlags {
4623
4741
  *
4624
4742
  * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}
4625
4743
  *
4626
- *
4627
4744
  * @publicApi
4628
4745
  */
4629
4746
  export declare class InjectionToken<T> {
@@ -6067,6 +6184,12 @@ export declare abstract class NgModuleRef<T> {
6067
6184
  abstract onDestroy(callback: () => void): void;
6068
6185
  }
6069
6186
 
6187
+ /** Represents scope data for NgModule as calculated during runtime by the deps tracker. */
6188
+ declare interface NgModuleScope {
6189
+ compilation: ScopeData;
6190
+ exported: ScopeData;
6191
+ }
6192
+
6070
6193
  /**
6071
6194
  * NgModule scope info as provided by AoT compiler
6072
6195
  *
@@ -7245,116 +7368,94 @@ declare const REACTIVE_HOST_BINDING_CONSUMER = 24;
7245
7368
 
7246
7369
  declare const REACTIVE_TEMPLATE_CONSUMER = 23;
7247
7370
 
7248
- declare class ReactiveLViewConsumer extends ReactiveNode {
7249
- protected consumerAllowSignalWrites: boolean;
7250
- private _lView;
7251
- set lView(lView: LView);
7252
- protected onConsumerDependencyMayHaveChanged(): void;
7253
- protected onProducerUpdateValueVersion(): void;
7254
- get hasReadASignal(): boolean;
7255
- runInContext(fn: HostBindingsFunction<unknown> | ComponentTemplate<unknown>, rf: ɵRenderFlags, ctx: unknown): void;
7256
- destroy(): void;
7371
+ declare interface ReactiveLViewConsumer extends ReactiveNode {
7372
+ lView: LView | null;
7257
7373
  }
7258
7374
 
7259
7375
  /**
7260
- * A node in the reactive graph.
7261
- *
7262
- * Nodes can be producers of reactive values, consumers of other reactive values, or both.
7263
- *
7264
- * Producers are nodes that produce values, and can be depended upon by consumer nodes.
7376
+ * A producer and/or consumer which participates in the reactive graph.
7265
7377
  *
7266
- * Producers expose a monotonic `valueVersion` counter, and are responsible for incrementing this
7267
- * version when their value semantically changes. Some producers may produce their values lazily and
7268
- * thus at times need to be polled for potential updates to their value (and by extension their
7269
- * `valueVersion`). This is accomplished via the `onProducerUpdateValueVersion` method for
7270
- * implemented by producers, which should perform whatever calculations are necessary to ensure
7271
- * `valueVersion` is up to date.
7378
+ * Producer `ReactiveNode`s which are accessed when a consumer `ReactiveNode` is the
7379
+ * `activeConsumer` are tracked as dependencies of that consumer.
7272
7380
  *
7273
- * Consumers are nodes that depend on the values of producers and are notified when those values
7274
- * might have changed.
7381
+ * Certain consumers are also tracked as "live" consumers and create edges in the other direction,
7382
+ * from producer to consumer. These edges are used to propagate change notifications when a
7383
+ * producer's value is updated.
7275
7384
  *
7276
- * Consumers do not wrap the reads they consume themselves, but rather can be set as the active
7277
- * reader via `setActiveConsumer`. Reads of producers that happen while a consumer is active will
7278
- * result in those producers being added as dependencies of that consumer node.
7279
- *
7280
- * The set of dependencies of a consumer is dynamic. Implementers expose a monotonically increasing
7281
- * `trackingVersion` counter, which increments whenever the consumer is about to re-run any reactive
7282
- * reads it needs and establish a new set of dependencies as a result.
7283
- *
7284
- * Producers store the last `trackingVersion` they've seen from `Consumer`s which have read them.
7285
- * This allows a producer to identify whether its record of the dependency is current or stale, by
7286
- * comparing the consumer's `trackingVersion` to the version at which the dependency was
7287
- * last observed.
7385
+ * A `ReactiveNode` may be both a producer and consumer.
7288
7386
  */
7289
- declare abstract class ReactiveNode {
7290
- private readonly id;
7291
- /**
7292
- * A cached weak reference to this node, which will be used in `ReactiveEdge`s.
7293
- */
7294
- private readonly ref;
7295
- /**
7296
- * Edges to producers on which this node depends (in its consumer capacity).
7297
- */
7298
- private readonly producers;
7387
+ declare interface ReactiveNode {
7299
7388
  /**
7300
- * Edges to consumers on which this node depends (in its producer capacity).
7301
- */
7302
- private readonly consumers;
7303
- /**
7304
- * Monotonically increasing counter representing a version of this `Consumer`'s
7305
- * dependencies.
7306
- */
7307
- protected trackingVersion: number;
7308
- /**
7309
- * Monotonically increasing counter which increases when the value of this `Producer`
7310
- * semantically changes.
7389
+ * Version of the value that this node produces.
7390
+ *
7391
+ * This is incremented whenever a new value is produced by this node which is not equal to the
7392
+ * previous value (by whatever definition of equality is in use).
7311
7393
  */
7312
- protected valueVersion: number;
7394
+ version: Version_2;
7313
7395
  /**
7314
- * Whether signal writes should be allowed while this `ReactiveNode` is the current consumer.
7396
+ * Whether this node (in its consumer capacity) is dirty.
7397
+ *
7398
+ * Only live consumers become dirty, when receiving a change notification from a dependency
7399
+ * producer.
7315
7400
  */
7316
- protected abstract readonly consumerAllowSignalWrites: boolean;
7401
+ dirty: boolean;
7317
7402
  /**
7318
- * Called for consumers whenever one of their dependencies notifies that it might have a new
7319
- * value.
7403
+ * Producers which are dependencies of this consumer.
7404
+ *
7405
+ * Uses the same indices as the `producerLastReadVersion` and `producerIndexOfThis` arrays.
7320
7406
  */
7321
- protected abstract onConsumerDependencyMayHaveChanged(): void;
7407
+ producerNode: ReactiveNode[] | undefined;
7322
7408
  /**
7323
- * Called for producers when a dependent consumer is checking if the producer's value has actually
7324
- * changed.
7409
+ * `Version` of the value last read by a given producer.
7410
+ *
7411
+ * Uses the same indices as the `producerNode` and `producerIndexOfThis` arrays.
7325
7412
  */
7326
- protected abstract onProducerUpdateValueVersion(): void;
7413
+ producerLastReadVersion: Version_2[] | undefined;
7327
7414
  /**
7328
- * Polls dependencies of a consumer to determine if they have actually changed.
7415
+ * Index of `this` (consumer) in each producer's `liveConsumers` array.
7416
+ *
7417
+ * This value is only meaningful if this node is live (`liveConsumers.length > 0`). Otherwise
7418
+ * these indices are stale.
7329
7419
  *
7330
- * If this returns `false`, then even though the consumer may have previously been notified of a
7331
- * change, the values of its dependencies have not actually changed and the consumer should not
7332
- * rerun any reactions.
7420
+ * Uses the same indices as the `producerNode` and `producerLastReadVersion` arrays.
7333
7421
  */
7334
- protected consumerPollProducersForChange(): boolean;
7422
+ producerIndexOfThis: number[] | undefined;
7335
7423
  /**
7336
- * Notify all consumers of this producer that its value may have changed.
7424
+ * Index into the producer arrays that the next dependency of this node as a consumer will use.
7425
+ *
7426
+ * This index is zeroed before this node as a consumer begins executing. When a producer is read,
7427
+ * it gets inserted into the producers arrays at this index. There may be an existing dependency
7428
+ * in this location which may or may not match the incoming producer, depending on whether the
7429
+ * same producers were read in the same order as the last computation.
7337
7430
  */
7338
- protected producerMayHaveChanged(): void;
7431
+ nextProducerIndex: number;
7339
7432
  /**
7340
- * Mark that this producer node has been accessed in the current reactive context.
7433
+ * Array of consumers of this producer that are "live" (they require push notifications).
7434
+ *
7435
+ * `liveConsumerNode.length` is effectively our reference count for this node.
7341
7436
  */
7342
- protected producerAccessed(): void;
7437
+ liveConsumerNode: ReactiveNode[] | undefined;
7343
7438
  /**
7344
- * Whether this consumer currently has any producers registered.
7439
+ * Index of `this` (producer) in each consumer's `producerNode` array.
7440
+ *
7441
+ * Uses the same indices as the `liveConsumerNode` array.
7345
7442
  */
7346
- protected get hasProducers(): boolean;
7443
+ liveConsumerIndexOfThis: number[] | undefined;
7347
7444
  /**
7348
- * Whether this `ReactiveNode` in its producer capacity is currently allowed to initiate updates,
7349
- * based on the current consumer context.
7445
+ * Whether writes to signals are allowed when this consumer is the `activeConsumer`.
7446
+ *
7447
+ * This is used to enforce guardrails such as preventing writes to writable signals in the
7448
+ * computation function of computed signals, which is supposed to be pure.
7350
7449
  */
7351
- protected get producerUpdatesAllowed(): boolean;
7450
+ consumerAllowSignalWrites: boolean;
7451
+ readonly consumerIsAlwaysLive: boolean;
7352
7452
  /**
7353
- * Checks if a `Producer` has a current value which is different than the value
7354
- * last seen at a specific version by a `Consumer` which recorded a dependency on
7355
- * this `Producer`.
7453
+ * Tracks whether producers need to recompute their value independently of the reactive graph (for
7454
+ * example, if no initial value has been computed).
7356
7455
  */
7357
- private producerPollStatus;
7456
+ producerMustRecompute(node: unknown): boolean;
7457
+ producerRecomputeValue(node: unknown): void;
7458
+ consumerMarkedDirty(node: unknown): void;
7358
7459
  }
7359
7460
 
7360
7461
  /**
@@ -7789,90 +7890,6 @@ declare interface RText extends RNode {
7789
7890
  */
7790
7891
  export declare function runInInjectionContext<ReturnT>(injector: Injector, fn: () => ReturnT): ReturnT;
7791
7892
 
7792
-
7793
- /**
7794
- * The list of error codes used in runtime code of the `core` package.
7795
- * Reserved error code range: 100-999.
7796
- *
7797
- * Note: the minus sign denotes the fact that a particular code has a detailed guide on
7798
- * angular.io. This extra annotation is needed to avoid introducing a separate set to store
7799
- * error codes which have guides, which might leak into runtime code.
7800
- *
7801
- * Full list of available error guides can be found at https://angular.io/errors.
7802
- *
7803
- * Error code ranges per package:
7804
- * - core (this package): 100-999
7805
- * - forms: 1000-1999
7806
- * - common: 2000-2999
7807
- * - animations: 3000-3999
7808
- * - router: 4000-4999
7809
- * - platform-browser: 5000-5500
7810
- */
7811
- declare const enum RuntimeErrorCode {
7812
- EXPRESSION_CHANGED_AFTER_CHECKED = -100,
7813
- RECURSIVE_APPLICATION_REF_TICK = 101,
7814
- RECURSIVE_APPLICATION_RENDER = 102,
7815
- CYCLIC_DI_DEPENDENCY = -200,
7816
- PROVIDER_NOT_FOUND = -201,
7817
- INVALID_FACTORY_DEPENDENCY = 202,
7818
- MISSING_INJECTION_CONTEXT = -203,
7819
- INVALID_INJECTION_TOKEN = 204,
7820
- INJECTOR_ALREADY_DESTROYED = 205,
7821
- PROVIDER_IN_WRONG_CONTEXT = 207,
7822
- MISSING_INJECTION_TOKEN = 208,
7823
- INVALID_MULTI_PROVIDER = -209,
7824
- MISSING_DOCUMENT = 210,
7825
- MULTIPLE_COMPONENTS_MATCH = -300,
7826
- EXPORT_NOT_FOUND = -301,
7827
- PIPE_NOT_FOUND = -302,
7828
- UNKNOWN_BINDING = 303,
7829
- UNKNOWN_ELEMENT = 304,
7830
- TEMPLATE_STRUCTURE_ERROR = 305,
7831
- INVALID_EVENT_BINDING = 306,
7832
- HOST_DIRECTIVE_UNRESOLVABLE = 307,
7833
- HOST_DIRECTIVE_NOT_STANDALONE = 308,
7834
- DUPLICATE_DIRECTITVE = 309,
7835
- HOST_DIRECTIVE_COMPONENT = 310,
7836
- HOST_DIRECTIVE_UNDEFINED_BINDING = 311,
7837
- HOST_DIRECTIVE_CONFLICTING_ALIAS = 312,
7838
- MULTIPLE_MATCHING_PIPES = 313,
7839
- MULTIPLE_PLATFORMS = 400,
7840
- PLATFORM_NOT_FOUND = 401,
7841
- MISSING_REQUIRED_INJECTABLE_IN_BOOTSTRAP = 402,
7842
- BOOTSTRAP_COMPONENTS_NOT_FOUND = -403,
7843
- PLATFORM_ALREADY_DESTROYED = 404,
7844
- ASYNC_INITIALIZERS_STILL_RUNNING = 405,
7845
- APPLICATION_REF_ALREADY_DESTROYED = 406,
7846
- RENDERER_NOT_FOUND = 407,
7847
- HYDRATION_NODE_MISMATCH = -500,
7848
- HYDRATION_MISSING_SIBLINGS = -501,
7849
- HYDRATION_MISSING_NODE = -502,
7850
- UNSUPPORTED_PROJECTION_DOM_NODES = -503,
7851
- INVALID_SKIP_HYDRATION_HOST = -504,
7852
- MISSING_HYDRATION_ANNOTATIONS = -505,
7853
- HYDRATION_STABLE_TIMEDOUT = -506,
7854
- MISSING_SSR_CONTENT_INTEGRITY_MARKER = -507,
7855
- SIGNAL_WRITE_FROM_ILLEGAL_CONTEXT = 600,
7856
- REQUIRE_SYNC_WITHOUT_SYNC_EMIT = 601,
7857
- INVALID_I18N_STRUCTURE = 700,
7858
- MISSING_LOCALE_DATA = 701,
7859
- IMPORT_PROVIDERS_FROM_STANDALONE = 800,
7860
- INVALID_DIFFER_INPUT = 900,
7861
- NO_SUPPORTING_DIFFER_FACTORY = 901,
7862
- VIEW_ALREADY_ATTACHED = 902,
7863
- INVALID_INHERITANCE = 903,
7864
- UNSAFE_VALUE_IN_RESOURCE_URL = 904,
7865
- UNSAFE_VALUE_IN_SCRIPT = 905,
7866
- MISSING_GENERATED_DEF = 906,
7867
- TYPE_IS_NOT_STANDALONE = 907,
7868
- MISSING_ZONEJS = 908,
7869
- UNEXPECTED_ZONE_STATE = 909,
7870
- UNSAFE_IFRAME_ATTRS = -910,
7871
- VIEW_ALREADY_DESTROYED = 911,
7872
- COMPONENT_ID_COLLISION = -912,
7873
- RUNTIME_DEPS_INVALID_IMPORTED_TYPE = 1000
7874
- }
7875
-
7876
7893
  /**
7877
7894
  * Sanitizer is used by the views to sanitize potentially dangerous values.
7878
7895
  *
@@ -7905,6 +7922,24 @@ export declare interface SchemaMetadata {
7905
7922
  name: string;
7906
7923
  }
7907
7924
 
7925
+ /**
7926
+ * Represents the set of dependencies of a type in a certain context.
7927
+ */
7928
+ declare interface ScopeData {
7929
+ pipes: Set<PipeType<any>>;
7930
+ directives: Set<ɵDirectiveType<any> | ɵComponentType<any> | Type<any>>;
7931
+ /**
7932
+ * If true it indicates that calculating this scope somehow was not successful. The consumers
7933
+ * should interpret this as empty dependencies. The application of this flag is when calculating
7934
+ * scope recursively, the presence of this flag in a scope dependency implies that the scope is
7935
+ * also poisoned and thus we can return immediately without having to continue the recursion. The
7936
+ * reason for this error is displayed as an error message in the console as per JIT behavior
7937
+ * today. In addition to that, in local compilation the other build/compilations run in parallel
7938
+ * with local compilation may or may not reveal some details about the error as well.
7939
+ */
7940
+ isPoisoned?: boolean;
7941
+ }
7942
+
7908
7943
 
7909
7944
  /**
7910
7945
  * A SecurityContext marks a location that has dangerous security implications, e.g. a DOM property
@@ -8176,6 +8211,13 @@ export declare interface SkipSelfDecorator {
8176
8211
  new (): SkipSelf;
8177
8212
  }
8178
8213
 
8214
+ /**
8215
+ * Represents scope data for standalone component as calculated during runtime by the deps tracker.
8216
+ */
8217
+ declare interface StandaloneComponentScope {
8218
+ compilation: ScopeData;
8219
+ }
8220
+
8179
8221
 
8180
8222
  /**
8181
8223
  * A type-safe key to use with `TransferState`.
@@ -8337,7 +8379,57 @@ declare interface TContainerNode extends TNode {
8337
8379
  *
8338
8380
  * Injector bloom filters are also stored here.
8339
8381
  */
8340
- declare type TData = (TNode | ɵPipeDef<any> | ɵDirectiveDef<any> | ɵComponentDef<any> | number | TStylingRange | TStylingKey | ProviderToken<any> | TI18n | I18nUpdateOpCodes | TIcu | null | string)[];
8382
+ declare type TData = (TNode | ɵPipeDef<any> | ɵDirectiveDef<any> | ɵComponentDef<any> | number | TStylingRange | TStylingKey | ProviderToken<any> | TI18n | I18nUpdateOpCodes | TIcu | null | string | TDeferBlockDetails)[];
8383
+
8384
+ /**
8385
+ * Describes the data shared across all instances of a {#defer} block.
8386
+ */
8387
+ declare interface TDeferBlockDetails {
8388
+ /**
8389
+ * Index in an LView and TData arrays where a template for the primary content
8390
+ * can be found.
8391
+ */
8392
+ primaryTmplIndex: number;
8393
+ /**
8394
+ * Index in an LView and TData arrays where a template for the `{:loading}`
8395
+ * block can be found.
8396
+ */
8397
+ loadingTmplIndex: number | null;
8398
+ /**
8399
+ * Extra configuration parameters (such as `after` and `minimum`)
8400
+ * for the `{:loading}` block.
8401
+ */
8402
+ loadingBlockConfig: DeferredLoadingBlockConfig | null;
8403
+ /**
8404
+ * Index in an LView and TData arrays where a template for the `{:placeholder}`
8405
+ * block can be found.
8406
+ */
8407
+ placeholderTmplIndex: number | null;
8408
+ /**
8409
+ * Extra configuration parameters (such as `after` and `minimum`)
8410
+ * for the `{:placeholder}` block.
8411
+ */
8412
+ placeholderBlockConfig: DeferredPlaceholderBlockConfig | null;
8413
+ /**
8414
+ * Index in an LView and TData arrays where a template for the `{:error}`
8415
+ * block can be found.
8416
+ */
8417
+ errorTmplIndex: number | null;
8418
+ /**
8419
+ * Compiler-generated function that loads all dependencies for a `{#defer}` block.
8420
+ */
8421
+ dependencyResolverFn: DependencyResolverFn | null;
8422
+ /**
8423
+ * Keeps track of the current loading state of defer block dependencies.
8424
+ */
8425
+ loadingState: DeferDependenciesLoadingState;
8426
+ /**
8427
+ * Dependency loading Promise. This Promise is helpful for cases when there
8428
+ * are multiple instances of a defer block (e.g. if it was used inside of an *ngFor),
8429
+ * which all await the same set of dependencies.
8430
+ */
8431
+ loadingPromise: Promise<unknown> | null;
8432
+ }
8341
8433
 
8342
8434
  /** Static data for an <ng-container> */
8343
8435
  declare interface TElementContainerNode extends TNode {
@@ -9415,17 +9507,17 @@ export declare const TRANSLATIONS_FORMAT: InjectionToken<string>;
9415
9507
  * https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/trusted-types/index.d.ts
9416
9508
  * but restricted to the API surface used within Angular.
9417
9509
  */
9418
- declare interface TrustedHTML {
9510
+ declare type TrustedHTML = string & {
9419
9511
  __brand__: 'TrustedHTML';
9420
- }
9512
+ };
9421
9513
 
9422
- declare interface TrustedScript {
9514
+ declare type TrustedScript = string & {
9423
9515
  __brand__: 'TrustedScript';
9424
- }
9516
+ };
9425
9517
 
9426
- declare interface TrustedScriptURL {
9518
+ declare type TrustedScriptURL = string & {
9427
9519
  __brand__: 'TrustedScriptURL';
9428
- }
9520
+ };
9429
9521
 
9430
9522
  /**
9431
9523
  * Value stored in the `TData` which is needed to re-concatenate the styling.
@@ -9474,9 +9566,9 @@ declare type TStylingKeyPrimitive = string | null | false;
9474
9566
  *
9475
9567
  * NOTE: `0` has special significance and represents `null` as in no additional pointer.
9476
9568
  */
9477
- declare interface TStylingRange {
9569
+ declare type TStylingRange = number & {
9478
9570
  __brand__: 'TStylingRange';
9479
- }
9571
+ };
9480
9572
 
9481
9573
  /**
9482
9574
  * Store the static values for the styling binding.
@@ -9959,6 +10051,10 @@ export declare class Version {
9959
10051
  constructor(full: string);
9960
10052
  }
9961
10053
 
10054
+ declare type Version_2 = number & {
10055
+ __brand: 'Version';
10056
+ };
10057
+
9962
10058
  declare const VIEW_REFS = 8;
9963
10059
 
9964
10060
  /**
@@ -10141,6 +10237,40 @@ export declare interface ViewChildrenDecorator {
10141
10237
  * A view container instance can contain other view containers,
10142
10238
  * creating a [view hierarchy](guide/glossary#view-hierarchy).
10143
10239
  *
10240
+ * @usageNotes
10241
+ *
10242
+ * The example below demonstrates how the `createComponent` function can be used
10243
+ * to create an instance of a ComponentRef dynamically and attach it to an ApplicationRef,
10244
+ * so that it gets included into change detection cycles.
10245
+ *
10246
+ * Note: the example uses standalone components, but the function can also be used for
10247
+ * non-standalone components (declared in an NgModule) as well.
10248
+ *
10249
+ * ```typescript
10250
+ * @Component({
10251
+ * standalone: true,
10252
+ * selector: 'dynamic',
10253
+ * template: `<span>This is a content of a dynamic component.</span>`,
10254
+ * })
10255
+ * class DynamicComponent {
10256
+ * vcr = inject(ViewContainerRef);
10257
+ * }
10258
+ *
10259
+ * @Component({
10260
+ * standalone: true,
10261
+ * selector: 'app',
10262
+ * template: `<main>Hi! This is the main content.</main>`,
10263
+ * })
10264
+ * class AppComponent {
10265
+ * vcr = inject(ViewContainerRef);
10266
+ *
10267
+ * ngAfterViewInit() {
10268
+ * const compRef = this.vcr.createComponent(DynamicComponent);
10269
+ * compRef.changeDetectorRef.detectChanges();
10270
+ * }
10271
+ * }
10272
+ * ```
10273
+ *
10144
10274
  * @see {@link ComponentRef}
10145
10275
  * @see {@link EmbeddedViewRef}
10146
10276
  *
@@ -10379,14 +10509,6 @@ declare interface ViewRefTracker {
10379
10509
  detachView(viewRef: ViewRef): void;
10380
10510
  }
10381
10511
 
10382
- declare interface WeakRef<T extends object> {
10383
- deref(): T | undefined;
10384
- }
10385
-
10386
- declare interface WeakRefCtor {
10387
- new <T extends object>(value: T): WeakRef<T>;
10388
- }
10389
-
10390
10512
  /**
10391
10513
  * A `Signal` with a value that can be mutated via a setter interface.
10392
10514
  *
@@ -10425,25 +10547,21 @@ export declare function ɵ_sanitizeHtml(defaultDoc: any, unsafeHtmlInput: string
10425
10547
  export declare function ɵ_sanitizeUrl(url: string): string;
10426
10548
 
10427
10549
  /**
10428
- * Implements `afterRender` and `afterNextRender` callback manager logic.
10550
+ * Implements core timing for `afterRender` and `afterNextRender` events.
10551
+ * Delegates to an optional `AfterRenderCallbackHandler` for implementation.
10429
10552
  */
10430
10553
  export declare class ɵAfterRenderEventManager {
10431
- private callbacks;
10432
- private deferredCallbacks;
10433
10554
  private renderDepth;
10434
- private runningCallbacks;
10435
10555
  /**
10436
10556
  * Mark the beginning of a render operation (i.e. CD cycle).
10437
- * Throws if called from an `afterRender` callback.
10557
+ * Throws if called while executing callbacks.
10438
10558
  */
10439
10559
  begin(): void;
10440
10560
  /**
10441
- * Mark the end of a render operation. Registered callbacks
10442
- * are invoked if there are no more pending operations.
10561
+ * Mark the end of a render operation. Callbacks will be
10562
+ * executed if there are no more pending operations.
10443
10563
  */
10444
10564
  end(): void;
10445
- register(callback: AfterRenderCallback): void;
10446
- unregister(callback: AfterRenderCallback): void;
10447
10565
  ngOnDestroy(): void;
10448
10566
  /** @nocollapse */
10449
10567
  static ɵprov: unknown;
@@ -10870,6 +10988,36 @@ export declare const ɵdefaultIterableDiffers: IterableDiffers;
10870
10988
 
10871
10989
  export declare const ɵdefaultKeyValueDiffers: KeyValueDiffers;
10872
10990
 
10991
+ /**
10992
+ * **INTERNAL**, avoid referencing it in application code.
10993
+ *
10994
+ * Injector token that allows to provide `DeferBlockDependencyInterceptor` class
10995
+ * implementation.
10996
+ */
10997
+ export declare const ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR: InjectionToken<ɵDeferBlockDependencyInterceptor>;
10998
+
10999
+ /**
11000
+ * **INTERNAL**, avoid referencing it in application code.
11001
+ *
11002
+ * Describes a helper class that allows to intercept a call to retrieve current
11003
+ * dependency loading function and replace it with a different implementation.
11004
+ * This interceptor class is needed to allow testing blocks in different states
11005
+ * by simulating loading response.
11006
+ */
11007
+ export declare interface ɵDeferBlockDependencyInterceptor {
11008
+ /**
11009
+ * Invoked for each defer block when dependency loading function is accessed.
11010
+ */
11011
+ intercept(dependencyFn: DependencyResolverFn | null): DependencyResolverFn | null;
11012
+ /**
11013
+ * Allows to configure an interceptor function.
11014
+ */
11015
+ setInterceptor(interceptorFn: (current: DependencyResolverFn) => DependencyResolverFn): void;
11016
+ }
11017
+
11018
+ /** The deps tracker to be used in the current Angular app in dev mode. */
11019
+ export declare const ɵdepsTracker: DepsTracker;
11020
+
10873
11021
  /**
10874
11022
  * Synchronously perform change detection on a component (and possibly its sub-components).
10875
11023
  *
@@ -11075,7 +11223,15 @@ export declare function ɵflushModuleScopingQueueAsMuchAsPossible(): void;
11075
11223
  * Called to format a runtime error.
11076
11224
  * See additional info on the `message` argument type in the `RuntimeError` class description.
11077
11225
  */
11078
- export declare function ɵformatRuntimeError<T extends number = RuntimeErrorCode>(code: T, message: null | false | string): string;
11226
+ export declare function ɵformatRuntimeError<T extends number = ɵRuntimeErrorCode>(code: T, message: null | false | string): string;
11227
+
11228
+ export declare function ɵgenerateStandaloneInDeclarationsError(type: Type<any>, location: string): string;
11229
+
11230
+ /**
11231
+ * If a given component has unresolved async metadata - this function returns a reference to
11232
+ * a Promise that represents dependency loading. Otherwise - this function returns `null`.
11233
+ */
11234
+ export declare function ɵgetAsyncClassMetadata(type: Type<unknown>): Promise<Array<Type<unknown>>> | null;
11079
11235
 
11080
11236
  /**
11081
11237
  * Retrieves directive instances associated with a given DOM node. Does not include
@@ -11266,6 +11422,8 @@ export declare const ɵIS_HYDRATION_DOM_REUSE_ENABLED: InjectionToken<boolean>;
11266
11422
 
11267
11423
  export declare function ɵisBoundToModule<C>(cf: ComponentFactory<C>): boolean;
11268
11424
 
11425
+ export declare function ɵisComponentDefPendingResolution(type: Type<any>): boolean;
11426
+
11269
11427
  export declare function ɵisEnvironmentProviders(value: Provider | EnvironmentProviders | ɵInternalEnvironmentProviders): value is ɵInternalEnvironmentProviders;
11270
11428
 
11271
11429
  export declare function ɵisInjectable(type: any): boolean;
@@ -11769,6 +11927,8 @@ export declare function ɵresolveComponentResources(resourceResolver: (url: stri
11769
11927
  text(): Promise<string>;
11770
11928
  }>)): Promise<void>;
11771
11929
 
11930
+ export declare function ɵrestoreComponentResolutionQueue(queue: Map<Type<any>, Component>): void;
11931
+
11772
11932
  /**
11773
11933
  * Class that represents a runtime error.
11774
11934
  * Formats and outputs the error message in a consistent way.
@@ -11785,11 +11945,95 @@ export declare function ɵresolveComponentResources(resourceResolver: (url: stri
11785
11945
  * `message` argument becomes `false`, thus we account for it in the typings and the runtime
11786
11946
  * logic.
11787
11947
  */
11788
- export declare class ɵRuntimeError<T extends number = RuntimeErrorCode> extends Error {
11948
+ export declare class ɵRuntimeError<T extends number = ɵRuntimeErrorCode> extends Error {
11789
11949
  code: T;
11790
11950
  constructor(code: T, message: null | false | string);
11791
11951
  }
11792
11952
 
11953
+
11954
+ /**
11955
+ * The list of error codes used in runtime code of the `core` package.
11956
+ * Reserved error code range: 100-999.
11957
+ *
11958
+ * Note: the minus sign denotes the fact that a particular code has a detailed guide on
11959
+ * angular.io. This extra annotation is needed to avoid introducing a separate set to store
11960
+ * error codes which have guides, which might leak into runtime code.
11961
+ *
11962
+ * Full list of available error guides can be found at https://angular.io/errors.
11963
+ *
11964
+ * Error code ranges per package:
11965
+ * - core (this package): 100-999
11966
+ * - forms: 1000-1999
11967
+ * - common: 2000-2999
11968
+ * - animations: 3000-3999
11969
+ * - router: 4000-4999
11970
+ * - platform-browser: 5000-5500
11971
+ */
11972
+ export declare const enum ɵRuntimeErrorCode {
11973
+ EXPRESSION_CHANGED_AFTER_CHECKED = -100,
11974
+ RECURSIVE_APPLICATION_REF_TICK = 101,
11975
+ RECURSIVE_APPLICATION_RENDER = 102,
11976
+ CYCLIC_DI_DEPENDENCY = -200,
11977
+ PROVIDER_NOT_FOUND = -201,
11978
+ INVALID_FACTORY_DEPENDENCY = 202,
11979
+ MISSING_INJECTION_CONTEXT = -203,
11980
+ INVALID_INJECTION_TOKEN = 204,
11981
+ INJECTOR_ALREADY_DESTROYED = 205,
11982
+ PROVIDER_IN_WRONG_CONTEXT = 207,
11983
+ MISSING_INJECTION_TOKEN = 208,
11984
+ INVALID_MULTI_PROVIDER = -209,
11985
+ MISSING_DOCUMENT = 210,
11986
+ MULTIPLE_COMPONENTS_MATCH = -300,
11987
+ EXPORT_NOT_FOUND = -301,
11988
+ PIPE_NOT_FOUND = -302,
11989
+ UNKNOWN_BINDING = 303,
11990
+ UNKNOWN_ELEMENT = 304,
11991
+ TEMPLATE_STRUCTURE_ERROR = 305,
11992
+ INVALID_EVENT_BINDING = 306,
11993
+ HOST_DIRECTIVE_UNRESOLVABLE = 307,
11994
+ HOST_DIRECTIVE_NOT_STANDALONE = 308,
11995
+ DUPLICATE_DIRECTITVE = 309,
11996
+ HOST_DIRECTIVE_COMPONENT = 310,
11997
+ HOST_DIRECTIVE_UNDEFINED_BINDING = 311,
11998
+ HOST_DIRECTIVE_CONFLICTING_ALIAS = 312,
11999
+ MULTIPLE_MATCHING_PIPES = 313,
12000
+ MULTIPLE_PLATFORMS = 400,
12001
+ PLATFORM_NOT_FOUND = 401,
12002
+ MISSING_REQUIRED_INJECTABLE_IN_BOOTSTRAP = 402,
12003
+ BOOTSTRAP_COMPONENTS_NOT_FOUND = -403,
12004
+ PLATFORM_ALREADY_DESTROYED = 404,
12005
+ ASYNC_INITIALIZERS_STILL_RUNNING = 405,
12006
+ APPLICATION_REF_ALREADY_DESTROYED = 406,
12007
+ RENDERER_NOT_FOUND = 407,
12008
+ HYDRATION_NODE_MISMATCH = -500,
12009
+ HYDRATION_MISSING_SIBLINGS = -501,
12010
+ HYDRATION_MISSING_NODE = -502,
12011
+ UNSUPPORTED_PROJECTION_DOM_NODES = -503,
12012
+ INVALID_SKIP_HYDRATION_HOST = -504,
12013
+ MISSING_HYDRATION_ANNOTATIONS = -505,
12014
+ HYDRATION_STABLE_TIMEDOUT = -506,
12015
+ MISSING_SSR_CONTENT_INTEGRITY_MARKER = -507,
12016
+ SIGNAL_WRITE_FROM_ILLEGAL_CONTEXT = 600,
12017
+ REQUIRE_SYNC_WITHOUT_SYNC_EMIT = 601,
12018
+ INVALID_I18N_STRUCTURE = 700,
12019
+ MISSING_LOCALE_DATA = 701,
12020
+ IMPORT_PROVIDERS_FROM_STANDALONE = 800,
12021
+ INVALID_DIFFER_INPUT = 900,
12022
+ NO_SUPPORTING_DIFFER_FACTORY = 901,
12023
+ VIEW_ALREADY_ATTACHED = 902,
12024
+ INVALID_INHERITANCE = 903,
12025
+ UNSAFE_VALUE_IN_RESOURCE_URL = 904,
12026
+ UNSAFE_VALUE_IN_SCRIPT = 905,
12027
+ MISSING_GENERATED_DEF = 906,
12028
+ TYPE_IS_NOT_STANDALONE = 907,
12029
+ MISSING_ZONEJS = 908,
12030
+ UNEXPECTED_ZONE_STATE = 909,
12031
+ UNSAFE_IFRAME_ATTRS = -910,
12032
+ VIEW_ALREADY_DESTROYED = 911,
12033
+ COMPONENT_ID_COLLISION = -912,
12034
+ RUNTIME_DEPS_INVALID_IMPORTED_TYPE = 1000
12035
+ }
12036
+
11793
12037
  /**
11794
12038
  * Marker interface for a value that's safe to use as HTML.
11795
12039
  *
@@ -11847,7 +12091,8 @@ export declare interface ɵSafeValue {
11847
12091
  */
11848
12092
  export declare function ɵsetAllowDuplicateNgModuleIdsForTest(allowDuplicates: boolean): void;
11849
12093
 
11850
- export declare function ɵsetAlternateWeakRefImpl(impl: WeakRefCtor): void;
12094
+
12095
+ export declare function ɵsetAlternateWeakRefImpl(impl: unknown): void;
11851
12096
 
11852
12097
  /**
11853
12098
  * Adds decorator, constructor, and property metadata to a given type via static metadata fields
@@ -11952,6 +12197,15 @@ export declare function ɵunwrapSafeValue(value: ɵSafeValue): string;
11952
12197
 
11953
12198
  export declare function ɵunwrapSafeValue<T>(value: T): T;
11954
12199
 
12200
+ /**
12201
+ * Indicates whether to use the runtime dependency tracker for scope calculation in JIT compilation.
12202
+ * The value "false" means the old code path based on patching scope info into the types will be
12203
+ * used.
12204
+ *
12205
+ * @deprecated For migration purposes only, to be removed soon.
12206
+ */
12207
+ export declare const ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT = false;
12208
+
11955
12209
  export declare class ɵViewRef<T> implements EmbeddedViewRef<T>, InternalViewRef, ChangeDetectorRefInterface {
11956
12210
  /**
11957
12211
  * This represents the `LView` associated with the point where `ChangeDetectorRef` was
@@ -12843,6 +13097,14 @@ export declare type ɵɵComponentDeclaration<T, Selector extends String, ExportA
12843
13097
  [key: string]: string;
12844
13098
  }, QueryFields extends string[], NgContentSelectors extends string[], IsStandalone extends boolean = false, HostDirectives = never, IsSignal extends boolean = false> = unknown;
12845
13099
 
13100
+ /**
13101
+ * Instruction that returns the component instance in which the current instruction is executing.
13102
+ * This is a constant-time version of `nextContent` for the case where we know that we need the
13103
+ * component instance specifically, rather than the context of a particular template.
13104
+ *
13105
+ * @codeGenApi
13106
+ */
13107
+ export declare function ɵɵcomponentInstance(): unknown;
12846
13108
 
12847
13109
  /**
12848
13110
  * The conditional instruction represents the basic building block on the runtime side to support
@@ -12892,20 +13154,20 @@ export declare function ɵɵCopyDefinitionFeature(definition: ɵDirectiveDef<any
12892
13154
  /**
12893
13155
  * Creates runtime data structures for `{#defer}` blocks.
12894
13156
  *
12895
- * @param deferIndex Index of the underlying deferred block data structure.
12896
- * @param primaryTemplateIndex Index of the template function with the block's content.
12897
- * @param deferredDepsFn Function that contains dependencies for this defer block
12898
- * @param loadingIndex Index of the template with the `{:loading}` block content.
12899
- * @param placeholderIndex Index of the template with the `{:placeholder}` block content.
12900
- * @param error Index of the template with the `{:error}` block content.
12901
- * @param loadingConfigIndex Index in the constants array of the configuration of the `{:loading}`
13157
+ * @param index Index of the `defer` instruction.
13158
+ * @param primaryTmplIndex Index of the template with the primary block content.
13159
+ * @param dependencyResolverFn Function that contains dependencies for this defer block.
13160
+ * @param loadingTmplIndex Index of the template with the `{:loading}` block content.
13161
+ * @param placeholderTmplIndex Index of the template with the `{:placeholder}` block content.
13162
+ * @param errorTmplIndex Index of the template with the `{:error}` block content.
13163
+ * @param loadingConfigIndex Index in the constants array of the configuration of the `{:loading}`.
12902
13164
  * block.
12903
13165
  * @param placeholderConfigIndexIndex in the constants array of the configuration of the
12904
13166
  * `{:placeholder}` block.
12905
13167
  *
12906
13168
  * @codeGenApi
12907
13169
  */
12908
- export declare function ɵɵdefer(deferIndex: number, primaryTemplateIndex: number, deferredDepsFn?: DeferredDepsFn | null, loadingIndex?: number | null, placeholderIndex?: number | null, errorIndex?: number | null, loadingConfigIndex?: number | null, placeholderConfigIndex?: number | null): void;
13170
+ export declare function ɵɵdefer(index: number, primaryTmplIndex: number, dependencyResolverFn?: DependencyResolverFn | null, loadingTmplIndex?: number | null, placeholderTmplIndex?: number | null, errorTmplIndex?: number | null, loadingConfigIndex?: number | null, placeholderConfigIndex?: number | null): void;
12909
13171
 
12910
13172
  /**
12911
13173
  * Creates runtime data structures for the `on hover` deferred trigger.
@@ -12914,7 +13176,7 @@ export declare function ɵɵdefer(deferIndex: number, primaryTemplateIndex: numb
12914
13176
  export declare function ɵɵdeferOnHover(): void;
12915
13177
 
12916
13178
  /**
12917
- * Creates runtime data structures for the `on idle` deferred trigger.
13179
+ * Sets up handlers that represent `on idle` deferred trigger.
12918
13180
  * @codeGenApi
12919
13181
  */
12920
13182
  export declare function ɵɵdeferOnIdle(): void;
@@ -12947,19 +13209,19 @@ export declare function ɵɵdeferOnTimer(delay: number): void;
12947
13209
  export declare function ɵɵdeferOnViewport(target?: unknown): void;
12948
13210
 
12949
13211
  /**
12950
- * Creates runtime data structures for the `prefetech on hover` deferred trigger.
13212
+ * Creates runtime data structures for the `prefetch on hover` deferred trigger.
12951
13213
  * @codeGenApi
12952
13214
  */
12953
13215
  export declare function ɵɵdeferPrefetchOnHover(): void;
12954
13216
 
12955
13217
  /**
12956
- * Creates runtime data structures for the `prefetech on idle` deferred trigger.
13218
+ * Creates runtime data structures for the `prefetch on idle` deferred trigger.
12957
13219
  * @codeGenApi
12958
13220
  */
12959
13221
  export declare function ɵɵdeferPrefetchOnIdle(): void;
12960
13222
 
12961
13223
  /**
12962
- * Creates runtime data structures for the `prefetech on immediate` deferred trigger.
13224
+ * Creates runtime data structures for the `prefetch on immediate` deferred trigger.
12963
13225
  * @codeGenApi
12964
13226
  */
12965
13227
  export declare function ɵɵdeferPrefetchOnImmediate(): void;
@@ -12989,13 +13251,13 @@ export declare function ɵɵdeferPrefetchOnViewport(target?: unknown): void;
12989
13251
  * Prefetches the deferred content when a value becomes truthy.
12990
13252
  * @codeGenApi
12991
13253
  */
12992
- export declare function ɵɵdeferPrefetchWhen(value: unknown): void;
13254
+ export declare function ɵɵdeferPrefetchWhen(rawValue: unknown): void;
12993
13255
 
12994
13256
  /**
12995
- * Loads the deferred content when a value becomes truthy.
13257
+ * Loads defer block dependencies when a trigger value becomes truthy.
12996
13258
  * @codeGenApi
12997
13259
  */
12998
- export declare function ɵɵdeferWhen(value: unknown): void;
13260
+ export declare function ɵɵdeferWhen(rawValue: unknown): void;
12999
13261
 
13000
13262
  /**
13001
13263
  * Create a component definition object.
@@ -14532,6 +14794,61 @@ export declare function ɵɵreference<T>(index: number): T;
14532
14794
  */
14533
14795
  export declare function ɵɵregisterNgModuleType(ngModuleType: ɵNgModuleType, id: string): void;
14534
14796
 
14797
+ /**
14798
+ * The repeater instruction does update-time diffing of a provided collection (against the
14799
+ * collection seen previously) and maps changes in the collection to views structure (by adding,
14800
+ * removing or moving views as needed).
14801
+ * @param metadataSlotIdx - index in data where we can find an instance of RepeaterMetadata with
14802
+ * additional information (ex. differ) needed to process collection diffing and view
14803
+ * manipulation
14804
+ * @param collection - the collection instance to be checked for changes
14805
+ * @codeGenApi
14806
+ */
14807
+ export declare function ɵɵrepeater(metadataSlotIdx: number, collection: Iterable<unknown> | undefined | null): void;
14808
+
14809
+ /**
14810
+ * The repeaterCreate instruction runs in the creation part of the template pass and initializes
14811
+ * internal data structures required by the update pass of the built-in repeater logic. Repeater
14812
+ * metadata are allocated in the data part of LView with the following layout:
14813
+ * - LView[HEADER_OFFSET + index] - metadata
14814
+ * - LView[HEADER_OFFSET + index + 1] - reference to a template function rendering an item
14815
+ * - LView[HEADER_OFFSET + index + 2] - optional reference to a template function rendering an empty
14816
+ * block
14817
+ *
14818
+ * @param index Index at which to store the metadata of the repeater.
14819
+ * @param templateFn Reference to the template of the main repeater block.
14820
+ * @param decls The number of nodes, local refs, and pipes for the main block.
14821
+ * @param vars The number of bindings for the main block.
14822
+ * @param trackByFn Reference to the tracking function.
14823
+ * @param trackByUsesComponentInstance Whether the tracking function has any references to the
14824
+ * component instance. If it doesn't, we can avoid rebinding it.
14825
+ * @param emptyTemplateFn Reference to the template function of the empty block.
14826
+ * @param emptyDecls The number of nodes, local refs, and pipes for the empty block.
14827
+ * @param emptyVars The number of bindings for the empty block.
14828
+ *
14829
+ * @codeGenApi
14830
+ */
14831
+ export declare function ɵɵrepeaterCreate(index: number, templateFn: ComponentTemplate<unknown>, decls: number, vars: number, trackByFn: TrackByFunction<unknown>, trackByUsesComponentInstance?: boolean, emptyTemplateFn?: ComponentTemplate<unknown>, emptyDecls?: number, emptyVars?: number): void;
14832
+
14833
+ /**
14834
+ * A built-in trackBy function used for situations where users specified collection item reference
14835
+ * as a tracking expression. Having this function body in the runtime avoids unnecessary code
14836
+ * generation.
14837
+ *
14838
+ * @param index
14839
+ * @returns
14840
+ */
14841
+ export declare function ɵɵrepeaterTrackByIdentity<T>(_: number, value: T): T;
14842
+
14843
+ /**
14844
+ * A built-in trackBy function used for situations where users specified collection index as a
14845
+ * tracking expression. Having this function body in the runtime avoids unnecessary code generation.
14846
+ *
14847
+ * @param index
14848
+ * @returns
14849
+ */
14850
+ export declare function ɵɵrepeaterTrackByIndex(index: number): number;
14851
+
14535
14852
  /**
14536
14853
  * Clears the view set in `ɵɵrestoreView` from memory. Returns the passed in
14537
14854
  * value so that it can be used as a return value of an instruction.
@@ -15408,7 +15725,7 @@ export declare function ɵɵsyntheticHostProperty<T>(propName: string, value: T
15408
15725
  *
15409
15726
  * @codeGenApi
15410
15727
  */
15411
- export declare function ɵɵtemplate(index: number, templateFn: ComponentTemplate<any> | null, decls: number, vars: number, tagName?: string | null, attrsIndex?: number | null, localRefsIndex?: number | null, localRefExtractor?: LocalRefExtractor): void;
15728
+ export declare function ɵɵtemplate(index: number, templateFn: ComponentTemplate<any> | null, decls: number, vars: number, tagName?: string | null, attrsIndex?: number | null, localRefsIndex?: number | null, localRefExtractor?: LocalRefExtractor): typeof ɵɵtemplate;
15412
15729
 
15413
15730
  /**
15414
15731
  * Retrieves `TemplateRef` instance from `Injector` when a local reference is placed on the