@angular/core 17.0.0-next.0 → 17.0.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/esm2022/rxjs-interop/src/to_signal.mjs +4 -6
  2. package/esm2022/src/application_ref.mjs +3 -3
  3. package/esm2022/src/core_private_export.mjs +2 -2
  4. package/esm2022/src/core_render3_private_export.mjs +5 -2
  5. package/esm2022/src/di/injection_token.mjs +12 -7
  6. package/esm2022/src/hydration/annotate.mjs +53 -25
  7. package/esm2022/src/render3/after_render_hooks.mjs +6 -3
  8. package/esm2022/src/render3/assert.mjs +2 -3
  9. package/esm2022/src/render3/collect_native_nodes.mjs +30 -23
  10. package/esm2022/src/render3/definition.mjs +2 -34
  11. package/esm2022/src/render3/deps_tracker/deps_tracker.mjs +2 -5
  12. package/esm2022/src/render3/index.mjs +4 -3
  13. package/esm2022/src/render3/instructions/advance.mjs +3 -3
  14. package/esm2022/src/render3/instructions/control_flow.mjs +158 -2
  15. package/esm2022/src/render3/instructions/defer.mjs +347 -17
  16. package/esm2022/src/render3/instructions/template.mjs +2 -1
  17. package/esm2022/src/render3/interfaces/defer.mjs +9 -0
  18. package/esm2022/src/render3/interfaces/definition.mjs +1 -1
  19. package/esm2022/src/render3/interfaces/type_checks.mjs +4 -1
  20. package/esm2022/src/render3/interfaces/view.mjs +1 -1
  21. package/esm2022/src/render3/jit/environment.mjs +6 -1
  22. package/esm2022/src/render3/local_compilation.mjs +5 -3
  23. package/esm2022/src/render3/scope.mjs +61 -0
  24. package/esm2022/src/util/dom.mjs +2 -2
  25. package/esm2022/src/version.mjs +1 -1
  26. package/esm2022/testing/src/logger.mjs +3 -3
  27. package/esm2022/testing/src/test_bed.mjs +3 -4
  28. package/esm2022/testing/src/test_bed_compiler.mjs +9 -13
  29. package/esm2022/testing/src/test_hooks.mjs +7 -3
  30. package/fesm2022/core.mjs +18194 -17659
  31. package/fesm2022/core.mjs.map +1 -1
  32. package/fesm2022/rxjs-interop.mjs +9 -708
  33. package/fesm2022/rxjs-interop.mjs.map +1 -1
  34. package/fesm2022/testing.mjs +42 -25660
  35. package/fesm2022/testing.mjs.map +1 -1
  36. package/index.d.ts +434 -122
  37. package/package.json +1 -1
  38. package/rxjs-interop/index.d.ts +1 -1
  39. package/schematics/migrations/guard-and-resolve-interfaces/bundle.js +13 -13
  40. package/schematics/migrations/remove-module-id/bundle.js +14 -14
  41. package/schematics/ng-generate/standalone-migration/bundle.js +7656 -6903
  42. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  43. package/testing/index.d.ts +2 -2
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v17.0.0-next.0
2
+ * @license Angular v17.0.0-next.2
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1466,6 +1466,11 @@ declare interface ComponentDefinition<T> extends Omit<DirectiveDefinition<T>, 'f
1466
1466
  schemas?: SchemaMetadata[] | null;
1467
1467
  }
1468
1468
 
1469
+ /** Component dependencies info as calculated during runtime by the deps tracker. */
1470
+ declare interface ComponentDependencies {
1471
+ dependencies: DependencyTypeList;
1472
+ }
1473
+
1469
1474
  /**
1470
1475
  * Base class for a factory that can create a component dynamically.
1471
1476
  * Instantiate a factory for a given type of component with `resolveComponentFactory()`.
@@ -2401,7 +2406,25 @@ export declare class DefaultIterableDiffer<V> implements IterableDiffer<V>, Iter
2401
2406
  private _addToRemovals;
2402
2407
  }
2403
2408
 
2404
- declare type DeferredDepsFn = () => Array<Promise<Type<unknown>> | Type<unknown>>;
2409
+ /**
2410
+ * Describes the state of defer block dependency loading.
2411
+ */
2412
+ declare const enum DeferDependenciesLoadingState {
2413
+ /** Initial state, dependency loading is not yet triggered */
2414
+ NOT_STARTED = 0,
2415
+ /** Dependency loading is in progress */
2416
+ IN_PROGRESS = 1,
2417
+ /** Dependency loading has completed successfully */
2418
+ COMPLETE = 2,
2419
+ /** Dependency loading has failed */
2420
+ FAILED = 3
2421
+ }
2422
+
2423
+ /** Configuration object for a `{:loading}` block as it is stored in the component constants. */
2424
+ declare type DeferredLoadingBlockConfig = [minimumTime: number | null, afterTime: number | null];
2425
+
2426
+ /** Configuration object for a `{:placeholder}` block as it is stored in the component constants. */
2427
+ declare type DeferredPlaceholderBlockConfig = [afterTime: number | null];
2405
2428
 
2406
2429
  /**
2407
2430
  * @deprecated in v8, delete after v10. This API should be used only by generated code, and that
@@ -2460,7 +2483,103 @@ declare interface DehydratedView {
2460
2483
  disconnectedNodes?: Set<number> | null;
2461
2484
  }
2462
2485
 
2463
- declare type DependencyTypeList = (ɵDirectiveType<any> | ɵComponentType<any> | PipeType<any> | Type<any>)[];
2486
+ /**
2487
+ * Describes the shape of a function generated by the compiler
2488
+ * to download dependencies that can be defer-loaded.
2489
+ */
2490
+ declare type DependencyResolverFn = () => Array<Promise<DependencyType>>;
2491
+
2492
+ declare type DependencyType = ɵDirectiveType<any> | ɵComponentType<any> | PipeType<any> | Type<any>;
2493
+
2494
+ declare type DependencyTypeList = Array<DependencyType>;
2495
+
2496
+ /**
2497
+ * An implementation of DepsTrackerApi which will be used for JIT and local compilation.
2498
+ */
2499
+ declare class DepsTracker implements DepsTrackerApi {
2500
+ private ownerNgModule;
2501
+ private ngModulesWithSomeUnresolvedDecls;
2502
+ private ngModulesScopeCache;
2503
+ private standaloneComponentsScopeCache;
2504
+ /**
2505
+ * Attempts to resolve ng module's forward ref declarations as much as possible and add them to
2506
+ * the `ownerNgModule` map. This method normally should be called after the initial parsing when
2507
+ * all the forward refs are resolved (e.g., when trying to render a component)
2508
+ */
2509
+ private resolveNgModulesDecls;
2510
+ /** @override */
2511
+ getComponentDependencies(type: ɵComponentType<any>, rawImports?: RawScopeInfoFromDecorator[]): ComponentDependencies;
2512
+ /**
2513
+ * @override
2514
+ * This implementation does not make use of param scopeInfo since it assumes the scope info is
2515
+ * already added to the type itself through methods like {@link ɵɵsetNgModuleScope}
2516
+ */
2517
+ registerNgModule(type: Type<any>, scopeInfo: NgModuleScopeInfoFromDecorator): void;
2518
+ /** @override */
2519
+ clearScopeCacheFor(type: Type<any>): void;
2520
+ /** @override */
2521
+ getNgModuleScope(type: ɵNgModuleType<any>): NgModuleScope;
2522
+ /** Compute NgModule scope afresh. */
2523
+ private computeNgModuleScope;
2524
+ /** @override */
2525
+ getStandaloneComponentScope(type: ɵComponentType<any>, rawImports?: RawScopeInfoFromDecorator[]): StandaloneComponentScope;
2526
+ private computeStandaloneComponentScope;
2527
+ }
2528
+
2529
+ /**
2530
+ * Public API for runtime deps tracker (RDT).
2531
+ *
2532
+ * All downstream tools should only use these methods.
2533
+ */
2534
+ declare interface DepsTrackerApi {
2535
+ /**
2536
+ * Computes the component dependencies, i.e., a set of components/directive/pipes that could be
2537
+ * present in the component's template (This set might contain directives/components/pipes not
2538
+ * necessarily used in the component's template depending on the implementation).
2539
+ *
2540
+ * Standalone components should specify `rawImports` as this information is not available from
2541
+ * their type. The consumer (e.g., {@link getStandaloneDefFunctions}) is expected to pass this
2542
+ * parameter.
2543
+ *
2544
+ * The implementation is expected to use some caching mechanism in order to optimize the resources
2545
+ * needed to do this computation.
2546
+ */
2547
+ getComponentDependencies(cmp: ɵComponentType<any>, rawImports?: (Type<any> | (() => Type<any>))[]): ComponentDependencies;
2548
+ /**
2549
+ * Registers an NgModule into the tracker with the given scope info.
2550
+ *
2551
+ * This method should be called for every NgModule whether it is compiled in local mode or not.
2552
+ * This is needed in order to compute component's dependencies as some dependencies might be in
2553
+ * different compilation units with different compilation mode.
2554
+ */
2555
+ registerNgModule(type: Type<any>, scopeInfo: NgModuleScopeInfoFromDecorator): void;
2556
+ /**
2557
+ * Clears the scope cache for NgModule or standalone component. This will force re-calculation of
2558
+ * the scope, which could be an expensive operation as it involves aggregating transitive closure.
2559
+ *
2560
+ * The main application of this method is for test beds where we want to clear the cache to
2561
+ * enforce scope update after overriding.
2562
+ */
2563
+ clearScopeCacheFor(type: Type<any>): void;
2564
+ /**
2565
+ * Returns the scope of NgModule. Mainly to be used by JIT and test bed.
2566
+ *
2567
+ * The scope value here is memoized. To enforce a new calculation bust the cache by using
2568
+ * `clearScopeCacheFor` method.
2569
+ */
2570
+ getNgModuleScope(type: ɵNgModuleType<any>): NgModuleScope;
2571
+ /**
2572
+ * Returns the scope of standalone component. Mainly to be used by JIT. This method should be
2573
+ * called lazily after the initial parsing so that all the forward refs can be resolved.
2574
+ *
2575
+ * @param rawImports the imports statement as appears on the component decorate which consists of
2576
+ * Type as well as forward refs.
2577
+ *
2578
+ * The scope value here is memoized. To enforce a new calculation bust the cache by using
2579
+ * `clearScopeCacheFor` method.
2580
+ */
2581
+ getStandaloneComponentScope(type: ɵComponentType<any>, rawImports: (Type<any> | (() => Type<any>))[]): StandaloneComponentScope;
2582
+ }
2464
2583
 
2465
2584
  declare const DESCENDANT_VIEWS_TO_REFRESH = 5;
2466
2585
 
@@ -4592,11 +4711,17 @@ export declare enum InjectFlags {
4592
4711
  * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by
4593
4712
  * the `Injector`. This provides an additional level of type safety.
4594
4713
  *
4595
- * ```
4596
- * interface MyInterface {...}
4597
- * const myInterface = injector.get(new InjectionToken<MyInterface>('SomeToken'));
4598
- * // myInterface is inferred to be MyInterface.
4599
- * ```
4714
+ * <div class="alert is-helpful">
4715
+ *
4716
+ * **Important Note**: Ensure that you use the same instance of the `InjectionToken` in both the
4717
+ * provider and the injection call. Creating a new instance of `InjectionToken` in different places,
4718
+ * even with the same description, will be treated as different tokens by Angular's DI system,
4719
+ * leading to a `NullInjectorError`.
4720
+ *
4721
+ * </div>
4722
+ *
4723
+ * <code-example format="typescript" language="typescript" path="injection-token/src/main.ts"
4724
+ * region="InjectionToken"></code-example>
4600
4725
  *
4601
4726
  * When creating an `InjectionToken`, you can optionally specify a factory function which returns
4602
4727
  * (possibly by creating) a default value of the parameterized type `T`. This sets up the
@@ -4623,7 +4748,6 @@ export declare enum InjectFlags {
4623
4748
  *
4624
4749
  * {@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}
4625
4750
  *
4626
- *
4627
4751
  * @publicApi
4628
4752
  */
4629
4753
  export declare class InjectionToken<T> {
@@ -6067,19 +6191,33 @@ export declare abstract class NgModuleRef<T> {
6067
6191
  abstract onDestroy(callback: () => void): void;
6068
6192
  }
6069
6193
 
6194
+ /** Represents scope data for NgModule as calculated during runtime by the deps tracker. */
6195
+ declare interface NgModuleScope {
6196
+ compilation: ScopeData;
6197
+ exported: ScopeData;
6198
+ }
6199
+
6070
6200
  /**
6071
- * NgModule scope info as provided by NgModule decorator.
6201
+ * NgModule scope info as provided by AoT compiler
6202
+ *
6203
+ * In full compilation Ivy resolved all the "module with providers" and forward refs the whole array
6204
+ * if at least one element is forward refed. So we end up with type `Type<any>[]|(() =>
6205
+ * Type<any>[])`.
6206
+ *
6207
+ * In local mode the compiler passes the raw info as they are to the runtime functions as it is not
6208
+ * possible to resolve them any further due to limited info at compile time. So we end up with type
6209
+ * `RawScopeInfoFromDecorator[]`.
6072
6210
  */
6073
6211
  declare interface NgModuleScopeInfoFromDecorator {
6074
6212
  /** List of components, directives, and pipes declared by this module. */
6075
- declarations?: Type<any>[] | (() => Type<any>[]);
6076
- /** List of modules or `ModuleWithProviders` imported by this module. */
6077
- imports?: Type<any>[] | (() => Type<any>[]);
6213
+ declarations?: Type<any>[] | (() => Type<any>[]) | RawScopeInfoFromDecorator[];
6214
+ /** List of modules or `ModuleWithProviders` or standalone components imported by this module. */
6215
+ imports?: Type<any>[] | (() => Type<any>[]) | RawScopeInfoFromDecorator[];
6078
6216
  /**
6079
6217
  * List of modules, `ModuleWithProviders`, components, directives, or pipes exported by this
6080
6218
  * module.
6081
6219
  */
6082
- exports?: Type<any>[] | (() => Type<any>[]);
6220
+ exports?: Type<any>[] | (() => Type<any>[]) | RawScopeInfoFromDecorator[];
6083
6221
  }
6084
6222
 
6085
6223
  /**
@@ -6263,7 +6401,7 @@ export declare class NgZone {
6263
6401
  *
6264
6402
  * @publicApi
6265
6403
  *
6266
- * @see provideZoneChangeDetection
6404
+ * @see {@link provideZoneChangeDetection}
6267
6405
  */
6268
6406
  export declare interface NgZoneOptions {
6269
6407
  /**
@@ -6842,8 +6980,8 @@ export declare type ProviderToken<T> = Type<T> | AbstractType<T> | InjectionToke
6842
6980
  * ```
6843
6981
  *
6844
6982
  * @publicApi
6845
- * @see bootstrapApplication
6846
- * @see NgZoneOptions
6983
+ * @see {@link bootstrapApplication}
6984
+ * @see {@link NgZoneOptions}
6847
6985
  */
6848
6986
  export declare function provideZoneChangeDetection(options?: NgZoneOptions): EnvironmentProviders;
6849
6987
 
@@ -7212,6 +7350,11 @@ declare class R3Injector extends EnvironmentInjector {
7212
7350
  private removeOnDestroy;
7213
7351
  }
7214
7352
 
7353
+ /**
7354
+ * The array element type passed to:
7355
+ * - NgModule's annotation imports/exports/declarations fields
7356
+ * - standalone component annotation imports field
7357
+ */
7215
7358
  declare type RawScopeInfoFromDecorator = Type<any> | ModuleWithProviders<any> | (() => Type<any>) | (() => ModuleWithProviders<any>);
7216
7359
 
7217
7360
  declare interface RComment extends RNode {
@@ -7776,90 +7919,6 @@ declare interface RText extends RNode {
7776
7919
  */
7777
7920
  export declare function runInInjectionContext<ReturnT>(injector: Injector, fn: () => ReturnT): ReturnT;
7778
7921
 
7779
-
7780
- /**
7781
- * The list of error codes used in runtime code of the `core` package.
7782
- * Reserved error code range: 100-999.
7783
- *
7784
- * Note: the minus sign denotes the fact that a particular code has a detailed guide on
7785
- * angular.io. This extra annotation is needed to avoid introducing a separate set to store
7786
- * error codes which have guides, which might leak into runtime code.
7787
- *
7788
- * Full list of available error guides can be found at https://angular.io/errors.
7789
- *
7790
- * Error code ranges per package:
7791
- * - core (this package): 100-999
7792
- * - forms: 1000-1999
7793
- * - common: 2000-2999
7794
- * - animations: 3000-3999
7795
- * - router: 4000-4999
7796
- * - platform-browser: 5000-5500
7797
- */
7798
- declare const enum RuntimeErrorCode {
7799
- EXPRESSION_CHANGED_AFTER_CHECKED = -100,
7800
- RECURSIVE_APPLICATION_REF_TICK = 101,
7801
- RECURSIVE_APPLICATION_RENDER = 102,
7802
- CYCLIC_DI_DEPENDENCY = -200,
7803
- PROVIDER_NOT_FOUND = -201,
7804
- INVALID_FACTORY_DEPENDENCY = 202,
7805
- MISSING_INJECTION_CONTEXT = -203,
7806
- INVALID_INJECTION_TOKEN = 204,
7807
- INJECTOR_ALREADY_DESTROYED = 205,
7808
- PROVIDER_IN_WRONG_CONTEXT = 207,
7809
- MISSING_INJECTION_TOKEN = 208,
7810
- INVALID_MULTI_PROVIDER = -209,
7811
- MISSING_DOCUMENT = 210,
7812
- MULTIPLE_COMPONENTS_MATCH = -300,
7813
- EXPORT_NOT_FOUND = -301,
7814
- PIPE_NOT_FOUND = -302,
7815
- UNKNOWN_BINDING = 303,
7816
- UNKNOWN_ELEMENT = 304,
7817
- TEMPLATE_STRUCTURE_ERROR = 305,
7818
- INVALID_EVENT_BINDING = 306,
7819
- HOST_DIRECTIVE_UNRESOLVABLE = 307,
7820
- HOST_DIRECTIVE_NOT_STANDALONE = 308,
7821
- DUPLICATE_DIRECTITVE = 309,
7822
- HOST_DIRECTIVE_COMPONENT = 310,
7823
- HOST_DIRECTIVE_UNDEFINED_BINDING = 311,
7824
- HOST_DIRECTIVE_CONFLICTING_ALIAS = 312,
7825
- MULTIPLE_MATCHING_PIPES = 313,
7826
- MULTIPLE_PLATFORMS = 400,
7827
- PLATFORM_NOT_FOUND = 401,
7828
- MISSING_REQUIRED_INJECTABLE_IN_BOOTSTRAP = 402,
7829
- BOOTSTRAP_COMPONENTS_NOT_FOUND = -403,
7830
- PLATFORM_ALREADY_DESTROYED = 404,
7831
- ASYNC_INITIALIZERS_STILL_RUNNING = 405,
7832
- APPLICATION_REF_ALREADY_DESTROYED = 406,
7833
- RENDERER_NOT_FOUND = 407,
7834
- HYDRATION_NODE_MISMATCH = -500,
7835
- HYDRATION_MISSING_SIBLINGS = -501,
7836
- HYDRATION_MISSING_NODE = -502,
7837
- UNSUPPORTED_PROJECTION_DOM_NODES = -503,
7838
- INVALID_SKIP_HYDRATION_HOST = -504,
7839
- MISSING_HYDRATION_ANNOTATIONS = -505,
7840
- HYDRATION_STABLE_TIMEDOUT = -506,
7841
- MISSING_SSR_CONTENT_INTEGRITY_MARKER = -507,
7842
- SIGNAL_WRITE_FROM_ILLEGAL_CONTEXT = 600,
7843
- REQUIRE_SYNC_WITHOUT_SYNC_EMIT = 601,
7844
- INVALID_I18N_STRUCTURE = 700,
7845
- MISSING_LOCALE_DATA = 701,
7846
- IMPORT_PROVIDERS_FROM_STANDALONE = 800,
7847
- INVALID_DIFFER_INPUT = 900,
7848
- NO_SUPPORTING_DIFFER_FACTORY = 901,
7849
- VIEW_ALREADY_ATTACHED = 902,
7850
- INVALID_INHERITANCE = 903,
7851
- UNSAFE_VALUE_IN_RESOURCE_URL = 904,
7852
- UNSAFE_VALUE_IN_SCRIPT = 905,
7853
- MISSING_GENERATED_DEF = 906,
7854
- TYPE_IS_NOT_STANDALONE = 907,
7855
- MISSING_ZONEJS = 908,
7856
- UNEXPECTED_ZONE_STATE = 909,
7857
- UNSAFE_IFRAME_ATTRS = -910,
7858
- VIEW_ALREADY_DESTROYED = 911,
7859
- COMPONENT_ID_COLLISION = -912,
7860
- RUNTIME_DEPS_INVALID_IMPORTED_TYPE = 1000
7861
- }
7862
-
7863
7922
  /**
7864
7923
  * Sanitizer is used by the views to sanitize potentially dangerous values.
7865
7924
  *
@@ -7892,6 +7951,24 @@ export declare interface SchemaMetadata {
7892
7951
  name: string;
7893
7952
  }
7894
7953
 
7954
+ /**
7955
+ * Represents the set of dependencies of a type in a certain context.
7956
+ */
7957
+ declare interface ScopeData {
7958
+ pipes: Set<PipeType<any>>;
7959
+ directives: Set<ɵDirectiveType<any> | ɵComponentType<any> | Type<any>>;
7960
+ /**
7961
+ * If true it indicates that calculating this scope somehow was not successful. The consumers
7962
+ * should interpret this as empty dependencies. The application of this flag is when calculating
7963
+ * scope recursively, the presence of this flag in a scope dependency implies that the scope is
7964
+ * also poisoned and thus we can return immediately without having to continue the recursion. The
7965
+ * reason for this error is displayed as an error message in the console as per JIT behavior
7966
+ * today. In addition to that, in local compilation the other build/compilations run in parallel
7967
+ * with local compilation may or may not reveal some details about the error as well.
7968
+ */
7969
+ isPoisoned?: boolean;
7970
+ }
7971
+
7895
7972
 
7896
7973
  /**
7897
7974
  * A SecurityContext marks a location that has dangerous security implications, e.g. a DOM property
@@ -8163,6 +8240,13 @@ export declare interface SkipSelfDecorator {
8163
8240
  new (): SkipSelf;
8164
8241
  }
8165
8242
 
8243
+ /**
8244
+ * Represents scope data for standalone component as calculated during runtime by the deps tracker.
8245
+ */
8246
+ declare interface StandaloneComponentScope {
8247
+ compilation: ScopeData;
8248
+ }
8249
+
8166
8250
 
8167
8251
  /**
8168
8252
  * A type-safe key to use with `TransferState`.
@@ -8324,7 +8408,57 @@ declare interface TContainerNode extends TNode {
8324
8408
  *
8325
8409
  * Injector bloom filters are also stored here.
8326
8410
  */
8327
- declare type TData = (TNode | ɵPipeDef<any> | ɵDirectiveDef<any> | ɵComponentDef<any> | number | TStylingRange | TStylingKey | ProviderToken<any> | TI18n | I18nUpdateOpCodes | TIcu | null | string)[];
8411
+ declare type TData = (TNode | ɵPipeDef<any> | ɵDirectiveDef<any> | ɵComponentDef<any> | number | TStylingRange | TStylingKey | ProviderToken<any> | TI18n | I18nUpdateOpCodes | TIcu | null | string | TDeferBlockDetails)[];
8412
+
8413
+ /**
8414
+ * Describes the data shared across all instances of a {#defer} block.
8415
+ */
8416
+ declare interface TDeferBlockDetails {
8417
+ /**
8418
+ * Index in an LView and TData arrays where a template for the primary content
8419
+ * can be found.
8420
+ */
8421
+ primaryTmplIndex: number;
8422
+ /**
8423
+ * Index in an LView and TData arrays where a template for the `{:loading}`
8424
+ * block can be found.
8425
+ */
8426
+ loadingTmplIndex: number | null;
8427
+ /**
8428
+ * Extra configuration parameters (such as `after` and `minimum`)
8429
+ * for the `{:loading}` block.
8430
+ */
8431
+ loadingBlockConfig: DeferredLoadingBlockConfig | null;
8432
+ /**
8433
+ * Index in an LView and TData arrays where a template for the `{:placeholder}`
8434
+ * block can be found.
8435
+ */
8436
+ placeholderTmplIndex: number | null;
8437
+ /**
8438
+ * Extra configuration parameters (such as `after` and `minimum`)
8439
+ * for the `{:placeholder}` block.
8440
+ */
8441
+ placeholderBlockConfig: DeferredPlaceholderBlockConfig | null;
8442
+ /**
8443
+ * Index in an LView and TData arrays where a template for the `{:error}`
8444
+ * block can be found.
8445
+ */
8446
+ errorTmplIndex: number | null;
8447
+ /**
8448
+ * Compiler-generated function that loads all dependencies for a `{#defer}` block.
8449
+ */
8450
+ dependencyResolverFn: DependencyResolverFn | null;
8451
+ /**
8452
+ * Keeps track of the current loading state of defer block dependencies.
8453
+ */
8454
+ loadingState: DeferDependenciesLoadingState;
8455
+ /**
8456
+ * Dependency loading Promise. This Promise is helpful for cases when there
8457
+ * are multiple instances of a defer block (e.g. if it was used inside of an *ngFor),
8458
+ * which all await the same set of dependencies.
8459
+ */
8460
+ loadingPromise: Promise<unknown> | null;
8461
+ }
8328
8462
 
8329
8463
  /** Static data for an <ng-container> */
8330
8464
  declare interface TElementContainerNode extends TNode {
@@ -10857,6 +10991,36 @@ export declare const ɵdefaultIterableDiffers: IterableDiffers;
10857
10991
 
10858
10992
  export declare const ɵdefaultKeyValueDiffers: KeyValueDiffers;
10859
10993
 
10994
+ /**
10995
+ * **INTERNAL**, avoid referencing it in application code.
10996
+ *
10997
+ * Injector token that allows to provide `DeferBlockDependencyInterceptor` class
10998
+ * implementation.
10999
+ */
11000
+ export declare const ɵDEFER_BLOCK_DEPENDENCY_INTERCEPTOR: InjectionToken<ɵDeferBlockDependencyInterceptor>;
11001
+
11002
+ /**
11003
+ * **INTERNAL**, avoid referencing it in application code.
11004
+ *
11005
+ * Describes a helper class that allows to intercept a call to retrieve current
11006
+ * dependency loading function and replace it with a different implementation.
11007
+ * This interceptor class is needed to allow testing blocks in different states
11008
+ * by simulating loading response.
11009
+ */
11010
+ export declare interface ɵDeferBlockDependencyInterceptor {
11011
+ /**
11012
+ * Invoked for each defer block when dependency loading function is accessed.
11013
+ */
11014
+ intercept(dependencyFn: DependencyResolverFn | null): DependencyResolverFn | null;
11015
+ /**
11016
+ * Allows to configure an interceptor function.
11017
+ */
11018
+ setInterceptor(interceptorFn: (current: DependencyResolverFn) => DependencyResolverFn): void;
11019
+ }
11020
+
11021
+ /** The deps tracker to be used in the current Angular app in dev mode. */
11022
+ export declare const ɵdepsTracker: DepsTracker;
11023
+
10860
11024
  /**
10861
11025
  * Synchronously perform change detection on a component (and possibly its sub-components).
10862
11026
  *
@@ -11062,7 +11226,15 @@ export declare function ɵflushModuleScopingQueueAsMuchAsPossible(): void;
11062
11226
  * Called to format a runtime error.
11063
11227
  * See additional info on the `message` argument type in the `RuntimeError` class description.
11064
11228
  */
11065
- export declare function ɵformatRuntimeError<T extends number = RuntimeErrorCode>(code: T, message: null | false | string): string;
11229
+ export declare function ɵformatRuntimeError<T extends number = ɵRuntimeErrorCode>(code: T, message: null | false | string): string;
11230
+
11231
+ export declare function ɵgenerateStandaloneInDeclarationsError(type: Type<any>, location: string): string;
11232
+
11233
+ /**
11234
+ * If a given component has unresolved async metadata - this function returns a reference to
11235
+ * a Promise that represents dependency loading. Otherwise - this function returns `null`.
11236
+ */
11237
+ export declare function ɵgetAsyncClassMetadata(type: Type<unknown>): Promise<Array<Type<unknown>>> | null;
11066
11238
 
11067
11239
  /**
11068
11240
  * Retrieves directive instances associated with a given DOM node. Does not include
@@ -11253,6 +11425,8 @@ export declare const ɵIS_HYDRATION_DOM_REUSE_ENABLED: InjectionToken<boolean>;
11253
11425
 
11254
11426
  export declare function ɵisBoundToModule<C>(cf: ComponentFactory<C>): boolean;
11255
11427
 
11428
+ export declare function ɵisComponentDefPendingResolution(type: Type<any>): boolean;
11429
+
11256
11430
  export declare function ɵisEnvironmentProviders(value: Provider | EnvironmentProviders | ɵInternalEnvironmentProviders): value is ɵInternalEnvironmentProviders;
11257
11431
 
11258
11432
  export declare function ɵisInjectable(type: any): boolean;
@@ -11756,6 +11930,8 @@ export declare function ɵresolveComponentResources(resourceResolver: (url: stri
11756
11930
  text(): Promise<string>;
11757
11931
  }>)): Promise<void>;
11758
11932
 
11933
+ export declare function ɵrestoreComponentResolutionQueue(queue: Map<Type<any>, Component>): void;
11934
+
11759
11935
  /**
11760
11936
  * Class that represents a runtime error.
11761
11937
  * Formats and outputs the error message in a consistent way.
@@ -11772,11 +11948,95 @@ export declare function ɵresolveComponentResources(resourceResolver: (url: stri
11772
11948
  * `message` argument becomes `false`, thus we account for it in the typings and the runtime
11773
11949
  * logic.
11774
11950
  */
11775
- export declare class ɵRuntimeError<T extends number = RuntimeErrorCode> extends Error {
11951
+ export declare class ɵRuntimeError<T extends number = ɵRuntimeErrorCode> extends Error {
11776
11952
  code: T;
11777
11953
  constructor(code: T, message: null | false | string);
11778
11954
  }
11779
11955
 
11956
+
11957
+ /**
11958
+ * The list of error codes used in runtime code of the `core` package.
11959
+ * Reserved error code range: 100-999.
11960
+ *
11961
+ * Note: the minus sign denotes the fact that a particular code has a detailed guide on
11962
+ * angular.io. This extra annotation is needed to avoid introducing a separate set to store
11963
+ * error codes which have guides, which might leak into runtime code.
11964
+ *
11965
+ * Full list of available error guides can be found at https://angular.io/errors.
11966
+ *
11967
+ * Error code ranges per package:
11968
+ * - core (this package): 100-999
11969
+ * - forms: 1000-1999
11970
+ * - common: 2000-2999
11971
+ * - animations: 3000-3999
11972
+ * - router: 4000-4999
11973
+ * - platform-browser: 5000-5500
11974
+ */
11975
+ export declare const enum ɵRuntimeErrorCode {
11976
+ EXPRESSION_CHANGED_AFTER_CHECKED = -100,
11977
+ RECURSIVE_APPLICATION_REF_TICK = 101,
11978
+ RECURSIVE_APPLICATION_RENDER = 102,
11979
+ CYCLIC_DI_DEPENDENCY = -200,
11980
+ PROVIDER_NOT_FOUND = -201,
11981
+ INVALID_FACTORY_DEPENDENCY = 202,
11982
+ MISSING_INJECTION_CONTEXT = -203,
11983
+ INVALID_INJECTION_TOKEN = 204,
11984
+ INJECTOR_ALREADY_DESTROYED = 205,
11985
+ PROVIDER_IN_WRONG_CONTEXT = 207,
11986
+ MISSING_INJECTION_TOKEN = 208,
11987
+ INVALID_MULTI_PROVIDER = -209,
11988
+ MISSING_DOCUMENT = 210,
11989
+ MULTIPLE_COMPONENTS_MATCH = -300,
11990
+ EXPORT_NOT_FOUND = -301,
11991
+ PIPE_NOT_FOUND = -302,
11992
+ UNKNOWN_BINDING = 303,
11993
+ UNKNOWN_ELEMENT = 304,
11994
+ TEMPLATE_STRUCTURE_ERROR = 305,
11995
+ INVALID_EVENT_BINDING = 306,
11996
+ HOST_DIRECTIVE_UNRESOLVABLE = 307,
11997
+ HOST_DIRECTIVE_NOT_STANDALONE = 308,
11998
+ DUPLICATE_DIRECTITVE = 309,
11999
+ HOST_DIRECTIVE_COMPONENT = 310,
12000
+ HOST_DIRECTIVE_UNDEFINED_BINDING = 311,
12001
+ HOST_DIRECTIVE_CONFLICTING_ALIAS = 312,
12002
+ MULTIPLE_MATCHING_PIPES = 313,
12003
+ MULTIPLE_PLATFORMS = 400,
12004
+ PLATFORM_NOT_FOUND = 401,
12005
+ MISSING_REQUIRED_INJECTABLE_IN_BOOTSTRAP = 402,
12006
+ BOOTSTRAP_COMPONENTS_NOT_FOUND = -403,
12007
+ PLATFORM_ALREADY_DESTROYED = 404,
12008
+ ASYNC_INITIALIZERS_STILL_RUNNING = 405,
12009
+ APPLICATION_REF_ALREADY_DESTROYED = 406,
12010
+ RENDERER_NOT_FOUND = 407,
12011
+ HYDRATION_NODE_MISMATCH = -500,
12012
+ HYDRATION_MISSING_SIBLINGS = -501,
12013
+ HYDRATION_MISSING_NODE = -502,
12014
+ UNSUPPORTED_PROJECTION_DOM_NODES = -503,
12015
+ INVALID_SKIP_HYDRATION_HOST = -504,
12016
+ MISSING_HYDRATION_ANNOTATIONS = -505,
12017
+ HYDRATION_STABLE_TIMEDOUT = -506,
12018
+ MISSING_SSR_CONTENT_INTEGRITY_MARKER = -507,
12019
+ SIGNAL_WRITE_FROM_ILLEGAL_CONTEXT = 600,
12020
+ REQUIRE_SYNC_WITHOUT_SYNC_EMIT = 601,
12021
+ INVALID_I18N_STRUCTURE = 700,
12022
+ MISSING_LOCALE_DATA = 701,
12023
+ IMPORT_PROVIDERS_FROM_STANDALONE = 800,
12024
+ INVALID_DIFFER_INPUT = 900,
12025
+ NO_SUPPORTING_DIFFER_FACTORY = 901,
12026
+ VIEW_ALREADY_ATTACHED = 902,
12027
+ INVALID_INHERITANCE = 903,
12028
+ UNSAFE_VALUE_IN_RESOURCE_URL = 904,
12029
+ UNSAFE_VALUE_IN_SCRIPT = 905,
12030
+ MISSING_GENERATED_DEF = 906,
12031
+ TYPE_IS_NOT_STANDALONE = 907,
12032
+ MISSING_ZONEJS = 908,
12033
+ UNEXPECTED_ZONE_STATE = 909,
12034
+ UNSAFE_IFRAME_ATTRS = -910,
12035
+ VIEW_ALREADY_DESTROYED = 911,
12036
+ COMPONENT_ID_COLLISION = -912,
12037
+ RUNTIME_DEPS_INVALID_IMPORTED_TYPE = 1000
12038
+ }
12039
+
11780
12040
  /**
11781
12041
  * Marker interface for a value that's safe to use as HTML.
11782
12042
  *
@@ -11939,6 +12199,15 @@ export declare function ɵunwrapSafeValue(value: ɵSafeValue): string;
11939
12199
 
11940
12200
  export declare function ɵunwrapSafeValue<T>(value: T): T;
11941
12201
 
12202
+ /**
12203
+ * Indicates whether to use the runtime dependency tracker for scope calculation in JIT compilation.
12204
+ * The value "false" means the old code path based on patching scope info into the types will be
12205
+ * used.
12206
+ *
12207
+ * @deprecated For migration purposes only, to be removed soon.
12208
+ */
12209
+ export declare const ɵUSE_RUNTIME_DEPS_TRACKER_FOR_JIT = false;
12210
+
11942
12211
  export declare class ɵViewRef<T> implements EmbeddedViewRef<T>, InternalViewRef, ChangeDetectorRefInterface {
11943
12212
  /**
11944
12213
  * This represents the `LView` associated with the point where `ChangeDetectorRef` was
@@ -12830,7 +13099,6 @@ export declare type ɵɵComponentDeclaration<T, Selector extends String, ExportA
12830
13099
  [key: string]: string;
12831
13100
  }, QueryFields extends string[], NgContentSelectors extends string[], IsStandalone extends boolean = false, HostDirectives = never, IsSignal extends boolean = false> = unknown;
12832
13101
 
12833
-
12834
13102
  /**
12835
13103
  * The conditional instruction represents the basic building block on the runtime side to support
12836
13104
  * built-in "if" and "switch". On the high level this instruction is responsible for adding and
@@ -12879,20 +13147,20 @@ export declare function ɵɵCopyDefinitionFeature(definition: ɵDirectiveDef<any
12879
13147
  /**
12880
13148
  * Creates runtime data structures for `{#defer}` blocks.
12881
13149
  *
12882
- * @param deferIndex Index of the underlying deferred block data structure.
12883
- * @param primaryTemplateIndex Index of the template function with the block's content.
12884
- * @param deferredDepsFn Function that contains dependencies for this defer block
12885
- * @param loadingIndex Index of the template with the `{:loading}` block content.
12886
- * @param placeholderIndex Index of the template with the `{:placeholder}` block content.
12887
- * @param error Index of the template with the `{:error}` block content.
12888
- * @param loadingConfigIndex Index in the constants array of the configuration of the `{:loading}`
13150
+ * @param index Index of the `defer` instruction.
13151
+ * @param primaryTmplIndex Index of the template with the primary block content.
13152
+ * @param dependencyResolverFn Function that contains dependencies for this defer block.
13153
+ * @param loadingTmplIndex Index of the template with the `{:loading}` block content.
13154
+ * @param placeholderTmplIndex Index of the template with the `{:placeholder}` block content.
13155
+ * @param errorTmplIndex Index of the template with the `{:error}` block content.
13156
+ * @param loadingConfigIndex Index in the constants array of the configuration of the `{:loading}`.
12889
13157
  * block.
12890
13158
  * @param placeholderConfigIndexIndex in the constants array of the configuration of the
12891
13159
  * `{:placeholder}` block.
12892
13160
  *
12893
13161
  * @codeGenApi
12894
13162
  */
12895
- 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;
13163
+ 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;
12896
13164
 
12897
13165
  /**
12898
13166
  * Creates runtime data structures for the `on hover` deferred trigger.
@@ -12901,7 +13169,7 @@ export declare function ɵɵdefer(deferIndex: number, primaryTemplateIndex: numb
12901
13169
  export declare function ɵɵdeferOnHover(): void;
12902
13170
 
12903
13171
  /**
12904
- * Creates runtime data structures for the `on idle` deferred trigger.
13172
+ * Sets up handlers that represent `on idle` deferred trigger.
12905
13173
  * @codeGenApi
12906
13174
  */
12907
13175
  export declare function ɵɵdeferOnIdle(): void;
@@ -12934,19 +13202,19 @@ export declare function ɵɵdeferOnTimer(delay: number): void;
12934
13202
  export declare function ɵɵdeferOnViewport(target?: unknown): void;
12935
13203
 
12936
13204
  /**
12937
- * Creates runtime data structures for the `prefetech on hover` deferred trigger.
13205
+ * Creates runtime data structures for the `prefetch on hover` deferred trigger.
12938
13206
  * @codeGenApi
12939
13207
  */
12940
13208
  export declare function ɵɵdeferPrefetchOnHover(): void;
12941
13209
 
12942
13210
  /**
12943
- * Creates runtime data structures for the `prefetech on idle` deferred trigger.
13211
+ * Creates runtime data structures for the `prefetch on idle` deferred trigger.
12944
13212
  * @codeGenApi
12945
13213
  */
12946
13214
  export declare function ɵɵdeferPrefetchOnIdle(): void;
12947
13215
 
12948
13216
  /**
12949
- * Creates runtime data structures for the `prefetech on immediate` deferred trigger.
13217
+ * Creates runtime data structures for the `prefetch on immediate` deferred trigger.
12950
13218
  * @codeGenApi
12951
13219
  */
12952
13220
  export declare function ɵɵdeferPrefetchOnImmediate(): void;
@@ -12976,13 +13244,13 @@ export declare function ɵɵdeferPrefetchOnViewport(target?: unknown): void;
12976
13244
  * Prefetches the deferred content when a value becomes truthy.
12977
13245
  * @codeGenApi
12978
13246
  */
12979
- export declare function ɵɵdeferPrefetchWhen(value: unknown): void;
13247
+ export declare function ɵɵdeferPrefetchWhen(rawValue: unknown): void;
12980
13248
 
12981
13249
  /**
12982
- * Loads the deferred content when a value becomes truthy.
13250
+ * Loads defer block dependencies when a trigger value becomes truthy.
12983
13251
  * @codeGenApi
12984
13252
  */
12985
- export declare function ɵɵdeferWhen(value: unknown): void;
13253
+ export declare function ɵɵdeferWhen(rawValue: unknown): void;
12986
13254
 
12987
13255
  /**
12988
13256
  * Create a component definition object.
@@ -13291,7 +13559,7 @@ export declare enum ɵɵFactoryTarget {
13291
13559
  NgModule = 4
13292
13560
  }
13293
13561
 
13294
- export declare function ɵɵgetComponentDepsFactory(type: Type<any>, rawImports?: RawScopeInfoFromDecorator): () => DependencyTypeList;
13562
+ export declare function ɵɵgetComponentDepsFactory(type: ɵComponentType<any>, rawImports?: RawScopeInfoFromDecorator[]): () => DependencyTypeList;
13295
13563
 
13296
13564
  /**
13297
13565
  * Returns the current OpaqueViewState instance.
@@ -14519,6 +14787,50 @@ export declare function ɵɵreference<T>(index: number): T;
14519
14787
  */
14520
14788
  export declare function ɵɵregisterNgModuleType(ngModuleType: ɵNgModuleType, id: string): void;
14521
14789
 
14790
+ /**
14791
+ * The repeater instruction does update-time diffing of a provided collection (against the
14792
+ * collection seen previously) and maps changes in the collection to views structure (by adding,
14793
+ * removing or moving views as needed).
14794
+ * @param metadataSlotIdx - index in data where we can find an instance of RepeaterMetadata with
14795
+ * additional information (ex. differ) needed to process collection diffing and view
14796
+ * manipulation
14797
+ * @param collection - the collection instance to be checked for changes
14798
+ * @codeGenApi
14799
+ */
14800
+ export declare function ɵɵrepeater(metadataSlotIdx: number, collection: Iterable<unknown> | undefined | null): void;
14801
+
14802
+ /**
14803
+ * The repeaterCreate instruction runs in the creation part of the template pass and initializes
14804
+ * internal data structures required by the update pass of the built-in repeater logic. Repeater
14805
+ * metadata are allocated in the data part of LView with the following layout:
14806
+ * - LView[HEADER_OFFSET + index] - metadata
14807
+ * - LView[HEADER_OFFSET + index + 1] - reference to a template function rendering an item
14808
+ * - LView[HEADER_OFFSET + index + 2] - optional reference to a template function rendering an empty
14809
+ * block
14810
+ *
14811
+ * @codeGenApi
14812
+ */
14813
+ export declare function ɵɵrepeaterCreate(index: number, templateFn: ComponentTemplate<unknown>, decls: number, vars: number, trackByFn: TrackByFunction<unknown>, emptyTemplateFn?: ComponentTemplate<unknown>, emptyDecls?: number, emptyVars?: number): void;
14814
+
14815
+ /**
14816
+ * A built-in trackBy function used for situations where users specified collection item reference
14817
+ * as a tracking expression. Having this function body in the runtime avoids unnecessary code
14818
+ * generation.
14819
+ *
14820
+ * @param index
14821
+ * @returns
14822
+ */
14823
+ export declare function ɵɵrepeaterTrackByIdentity<T>(_: number, value: T): T;
14824
+
14825
+ /**
14826
+ * A built-in trackBy function used for situations where users specified collection index as a
14827
+ * tracking expression. Having this function body in the runtime avoids unnecessary code generation.
14828
+ *
14829
+ * @param index
14830
+ * @returns
14831
+ */
14832
+ export declare function ɵɵrepeaterTrackByIndex(index: number): number;
14833
+
14522
14834
  /**
14523
14835
  * Clears the view set in `ɵɵrestoreView` from memory. Returns the passed in
14524
14836
  * value so that it can be used as a return value of an instruction.
@@ -15395,7 +15707,7 @@ export declare function ɵɵsyntheticHostProperty<T>(propName: string, value: T
15395
15707
  *
15396
15708
  * @codeGenApi
15397
15709
  */
15398
- 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;
15710
+ 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;
15399
15711
 
15400
15712
  /**
15401
15713
  * Retrieves `TemplateRef` instance from `Injector` when a local reference is placed on the